Você está na página 1de 2

1/2 www.ni.

com
1.
2.
3.
4.
5.
6.
Entendendo Hardware Paralelo: Multiprocessadores, Hyperthreading, Dual-Core, Multicore e FPGAs
Publicao: Jan 18, 2010
Viso geral
Este documento parte da srie
Multicore Programming Fundamentals Whitepaper Series
Multicore Programming Fundamentals Whitepaper Series
O hardware paralelo est se tornando um componente onipresente na tecnologia de processamento computacional, e as arquiteturas de chips esto se desenvolvendo cada vez mais, permitindo
que engenheiros tenham melhores ganhos de desempenho. Aprenda as diferenas entre arquiteturas de hardware paralelo comumente encontrado no mercado hoje, incluindo
Multiprocessadores, Hyperthreading, Dual-Core, Multicore e FPGAs.
ndice
Multiprocessadores
Hyperthreading
Processadores Dual-Core e Multicore
FPGAs
Como o LabVIEW programa hardware paralelo
Mais recursos sobre programao Multicore
1. Multiprocessadores
Sistemas com Multiprocessadores contm mltiplas CPUs que no esto no mesmo chip. Estes foram feitos nos anos 90 para o propsito de servidores de TI. Naquele tempo eles eram
tipicamente placas de processadores que se conectavam montados dentro de um servidor. Hoje, multiprocessadores so comumente encontrados na mesma placa fsica e conectados atravs
de uma interface de comunicao de alta velocidade.
Figura 1. O sistema de multiprocessadores tem um cache dividido e MMU com longas interligaes
Sistemas Multiprocessadores so menos complexos que sistemas Multicore porque so CPUs de chips nicos e essenciais conectados juntos. A desvantagem de sistemas multiprocessadores
que estes so mais caros pois requerem vrios chips que, por sua vez, so mais caros do que uma soluo de chip nico.
2. Hyperthreading
Hyperthreading uma tecnologia que foi introduzida pela Intel com o principal propsito de aumentar o suporte ao cdigo multi-threaded. Em determinadas situaes, a tecnologia
hyperthreading prov o uso mais eficiente dos recursos da CPU, executando threads em paralelo em um nico processador.
Um processador equipado com recursos hyperthreading pretende ser dois processadores lgicos para o sistema operacional, permitindo ao sistema operacional agendar dois threads ou
processos simultaneamente. As vantagens do hyperthreading so: suporte implementado para cdigo multi-threaded, permitir que mltiplas threads rodem simultaneamente e prover ganhos de
reao e tempo de resposta.
Processadores Pentium 4 so um exemplo de CPUs que utilizam hyperthreading.
3. Processadores Dual-Core e Multicore
Processadores Dual-core so duas CPUs em um nico chip. Processadores Multicore so uma famlia de processadores que contm algum nmero de CPUs no mesmo chip, como 2, 4 e 8
ncleos. O desafio com processadores Multicore na rea de desenvolvimento de software. O aumento de velocidade est diretamente relacionado a como tornar paralelo o cdigo fonte de uma
aplicao que foi escrita atravs de multi-threading.
Figura 2. Os processadores multicore dividem a cache e MMU com curtas interligaes
4. FPGAs
Um FPGA (Field Programmable Gate Arrays) um equipamento que contm uma matriz de circuitos com portas reconfigurveis. Quando um FPGA est configurado, o circuito interno est
conectado de modo que cria uma implementao em hardware da aplicao no software. Diferente de processadores, o FPGAs usa hardware dedicado para processamento lgico e no tem um
sistema operacional.
Um nico FPGA pode repor milhares de componentes discretos incorporando milhes de lgicas nas portas em um nico chip de circuito integrado (IC). Os recursos internos do chip FPGA
2/2 www.ni.com
Um nico FPGA pode repor milhares de componentes discretos incorporando milhes de lgicas nas portas em um nico chip de circuito integrado (IC). Os recursos internos do chip FPGA
consistem em uma matriz de blocos lgicos configurveis (CLBs) circundada perifericamente de blocos de E/S. Sinais so roteados na matriz FPGA por chaves programveis interconectadas e
rotas de ligao.
Figure 3. FPGA allows the user to program gates into parallel hardware paths
Considerando que FPGAs so enormes campos de portas programveis, eles podem ser programados criando diversos caminhos de hardware paralelo. FPGAs so verdadeiramente paralelos
em sua natureza pois diferentes operaes de processamento no tm que competir pelos mesmos recursos. Programadores podem automaticamente mapear suas necessidades diretamente
para a fbrica do FPGA. Isto permite aos usurios criar qualquer nmero de ncleos de tarefas especficas, pois todas iro rodar como circuitos paralelos simultneos dentro de um chip FPGA.
A execuo no hardware prov aumento de desempenho e determinismo quando comparado com a grande maioria das solues baseadas em processadores. A natureza paralela das portas
lgicas no FPGA permite uma altssima transferncia de dados. Uma vez que o cdigo for compilado e estiver rodando no FPGA, no haver nenhuma variao de tempo associada com a
execuo de software e priorizao de thread - tpica nos mais comuns sistemas operacionais e tambm presente em um grau menor em sistemas operacionais de tempo real.
Para mais informao, visite:
Optimizing your LabVIEW FPGA VIs: Parallel Execution and Pipelining
5. Como o LabVIEW programa hardware paralelo
O LabVIEW uma linguagem multi-threaded desde a verso 5.0 introduzida em 1998. O fluxo de dados natural do LabVIEW permite que cdigos em paralelo facilmente mapeiem hardware
paralelo. Por este motivo, ele a linguagem de programao ideal para direcionar multiprocessadores, hyperthead e sistemas de processadores multicore.
No caso de programao de FPGAs, o LabVIEW gera o cdigo VHDL que automaticamente compilado para um pacote de dados que pode ser direcionado aos FPGAs da Xilinx.
6. Mais recursos sobre programao Multicore
Multicore Programming Fundamentals Whitepaper Series
www.ni.com/multicore
Overcoming Multicore Programming Challenges with LabVIEW
Differences between Multithreading and Multitasking
Why Dataflow Programming Languages are Ideal for Programming Parallel Hardware?
Learn more about NI LabVIEW

Você também pode gostar