2 ms·
Note: I am not an expert in the subject. Think of it this way. At the basic level, you have logic gates. CPUs are massive ensembles of these which then run y
by alok-g 14y ago
Note: I am not an expert in the subject.
Think of it this way. At the basic level, you have logic gates. CPUs are massive ensembles of these which then run your program majorly sequentially. GPUs/GPGPUs are smaller ensembles that can be configured better for specific tasks, resulting in better performance/power ratio. At the other end of the scale is using HDLs to program the gates directly for the specific task at hand, which would offer best performance/power ratio. The development process is however more involved. In-between the last two is reconfigurable computing.
A MicroBlaze is just a regular CPU instantiated on an FPGA, most likely controlling other logic around it designed using HDLs -- HDLs portions taking over compute-intensive tasks while the CPU takes over (relatively) low-speed control logic. A reconfigurable computing environment would try to make this more symmetric.
In my opinion, there is a continuum between more complex units (CPUs) that have a large number of logic gates and offer lots of features, and between less complex units (logic gates directly) offering very small functionality. At the end of the day, it is all about finding the right architecture for this "unit", which may vary from application to application.
There is a lot of development going around these days for using OpenCL to program FPGAs directly. E.g.: http://www.altera.com/products/software/opencl/opencl-index.html http://www.altera.com/products/software/opencl/opencl-index....