Tuesday, July 24, 2012

Are FPGAs the future of password cracking and supercomputing?


Field-programmable gate arrays (FPGAs) are versatile silicon chips that are proving to be extremely fast at certain operations. Laid out on silicon much like any other chip, FPGAs are packed with configurable logic blocks that are wired together with interconnects and switches, and a small amount of memory in the form of SRAM, EEPROM, or an antifuse for each programmable element. In addition, FPGAs also have some special hardware to govern global clock cycles (clock drivers) and can be fitted with specific-function embedded cores such as digital signal processors (DSP).
Xilinx Virtex 7 FPGA with 2 million logic cells and four FPGA dieThe best part about FPGAs though, as their name suggests, is that they are fully programmable. The chip will have input and output pins, and using schematics or a software programming language like VHDL, you are able to design the digital circuitry necessary to perform tasks. You could take two input values and use the logic blocks and look up tables to add the values together and return the result, for a simple example. Alternatively, you could have the FPGA constantly adjusting fan speed based upon a temperature sensor input. Whatever your task, you generally load it onto the FPGA chip using an external memory device that programs the logic and flips the appropriate switches closed to connect various logic blocks and other hardware together.
Unlike a traditional CPU or GPU, FPGAs do not run code. In essence, an FPGA is equivalent to a silicon chip that has been specially made for a very specific task. In a traditional CPU, the operating system queues up instructions for the processor to carry out one at a time. FPGAs on the other hand are hard wired in a way that, for sake of simplicity and visualization, essentially means that the FPGA is the program (rather than it running a program).
It is here that FPGAs get interesting. Although they run at much lower clockspeeds than “hardwired” CPUs and GPUs, they are truly parallel designs — from the loop and task level down to the bit and instruction level — that are further free from instruction fetching operations (because the instructions are built-in).
Pico Computing FPGA module
FPGAs can accelerate simulations, encryption and decryption tasks, Bitcoin mining, and can even be used to brute force passwords. Many of those tasks are either starting to or are already commonly run on graphics cards using software programming languages like CUDA and OpenCL. Today’s graphics cards are quite fast (especially on the AMD side with its Graphics Core Next architecture), and running programs on the GPU can greatly speed up tasks that involve large amounts of data and highly paralleled processes. Nvidia’s Tesla cards are a good example of the GPU’s speed, where a few graphics cards are able to be used in place of a small CPU cluster (generally for simulations and modeling tasks).

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Design Blog, Make Online Money