X
xarvia
I've got a pure math problem implemented in C that will take about 3
years to solve using all 5pcs available to me (the algorithm is about
as efficient as it will get without some major mathematical insights).
The funny thing about this problem is that I can easily split it into
smaller problems each of which only requires about 1000 bytes of memory
and only uses bitwise operations and additions mod 256.
I was considering the possibility of creating a network of
microcontrollers, probably using I2C, with one main processor dishing
out smaller sub problems and reporting results back to a PC. To date I
have only used Microchip PICs, primarily the 18f4550 and done my
programming in MPLAB ASM. I think I could easily implement this setup
using these chips but they are too slow (40MHz about 20Mips I think).
I have heard that there are some high speed microcontrollers out there,
I had a quick look at Freescales range of PowerPC based embedded
processors. These are about $25/800Mips - as far as I can tell this
would be significantly cheaper on a per MIP basis than buying computer
hardware (even omitting the hdd and using minimal ram).
My questions:
1. What is the best $/Mips microcontroller out there, preferably with
I2C.
2. What is the best $/Mips microcontroller that I will be able to
understand without too much trouble given that I have only used
Microchip products so far?
3. The technical docs for the Freescale embedded processors left me
somewhat confused (quite a jump up from microchip microcontrollers!!!)
what external components do these devices need to run? In particular is
the program code stored in the device or does it obtain this via the
bus?
4. Now I'm not sure about the gory technical details but I assume that
given the simplicity of the instructions my program needs to execute
the MIPS figures for microcontrollers should be fairly comparable with
that for desktops. The main difference I can see here would be
regarding branching - I've heard that modern processors go to great
lengths to predict which instructions will be executed so that no time
is wasted while retrieving program instructions...
5. Another possibility that would keep me busy for a while is
implementing the program in assembler on my PC. Unfortunately every
computer that I have access to has a different architecture
(Athlon,Sempron,Duron,2xPentium M) so I guess I would have to restrict
myself to x86 instruction set? What sort of performance increase do you
think this might produce?
Thank you very much for your time and I look forward to hearing from
you!
years to solve using all 5pcs available to me (the algorithm is about
as efficient as it will get without some major mathematical insights).
The funny thing about this problem is that I can easily split it into
smaller problems each of which only requires about 1000 bytes of memory
and only uses bitwise operations and additions mod 256.
I was considering the possibility of creating a network of
microcontrollers, probably using I2C, with one main processor dishing
out smaller sub problems and reporting results back to a PC. To date I
have only used Microchip PICs, primarily the 18f4550 and done my
programming in MPLAB ASM. I think I could easily implement this setup
using these chips but they are too slow (40MHz about 20Mips I think).
I have heard that there are some high speed microcontrollers out there,
I had a quick look at Freescales range of PowerPC based embedded
processors. These are about $25/800Mips - as far as I can tell this
would be significantly cheaper on a per MIP basis than buying computer
hardware (even omitting the hdd and using minimal ram).
My questions:
1. What is the best $/Mips microcontroller out there, preferably with
I2C.
2. What is the best $/Mips microcontroller that I will be able to
understand without too much trouble given that I have only used
Microchip products so far?
3. The technical docs for the Freescale embedded processors left me
somewhat confused (quite a jump up from microchip microcontrollers!!!)
what external components do these devices need to run? In particular is
the program code stored in the device or does it obtain this via the
bus?
4. Now I'm not sure about the gory technical details but I assume that
given the simplicity of the instructions my program needs to execute
the MIPS figures for microcontrollers should be fairly comparable with
that for desktops. The main difference I can see here would be
regarding branching - I've heard that modern processors go to great
lengths to predict which instructions will be executed so that no time
is wasted while retrieving program instructions...
5. Another possibility that would keep me busy for a while is
implementing the program in assembler on my PC. Unfortunately every
computer that I have access to has a different architecture
(Athlon,Sempron,Duron,2xPentium M) so I guess I would have to restrict
myself to x86 instruction set? What sort of performance increase do you
think this might produce?
Thank you very much for your time and I look forward to hearing from
you!