790 likes | 941 Views
Arquitectura de Sistemas Computacionais. Aula 2 (Teórico-Prática). Aplicações práticas. Sistemas computacionais. Modelo básico de funcionamento de hardware. Unidade de Controlo. Interacção: Unidade de Controlo - Unidade de Execução. Unidade de Execução. Control Unit. Controlo.
E N D
Arquitectura de Sistemas Computacionais Aula 2 (Teórico-Prática)
Sistemas computacionais
Modelo básico de funcionamento de hardware
Unidade de Controlo Interacção: Unidade de Controlo - Unidade de Execução Unidade de Execução Control Unit
Linguagens de baixo nível (Assembly) Sistemas de Operação Linguagens de alto nível (exemplos: C/C++, Java, Pascal, etc.) Software Microprogramas Circuitos electrónicos Hardware
Relação entre Software e Hardware
Implementação em Hardware Implementação em Software • Muito rápido; • Optimizado para a própria aplicação; • Eficiente do ponto de vista dos recursos e do tempo de execução; • etc. • Flexível • Reprogramável • Barato • etc. • Muito caro; • Demora muito tempo • para projectar; • etc. • Mais lente; • Não optimizado para aplicação; • Tem grande atraso em resposta; • etc.
I/O FPGA DLL3 DLL2 Array de CLBs max 1200 pinos (XC2VP125) I/O Block RAM Block RAM max 2 (XC2VP125) DLL1 DLL0 max 556 (XC2VP125) max 556 blocos (18 Kbits) ou 10 008 Kbits (XC2VP125) max 24 (XC2VP125) processador PowerPC max 55616 slices (XC2VP125) multiplicação de 18 * 18 bits Rocket I/O transceiver blocks
O primeiro trabalho na área da computação reconfigurável foi feito na “University of California at Los Angeles (UCLA)” Fixed + Variable structure computer F V Um array de hardware reconfigurável V Processador standard F complementado com In/Out Humanos Supervisory Control G. Estrin, “Organization of Computer Systems – The Fixed Plus Variable Structure Computer”, Proc. Western Joint Computer Conf., New York, 1960, pp. 33-40. G. Estrin, “Reconfigurable Computer Origins: The UCLA Fixed-Plus-Variable (F+V) Structure Computer”, IEEE Annals of the History of Computing, 2002, pp. 3-9.
Eventos importantes • 1947 Shockley, et al. – primeiro transistor nos Bell Labs; • 1958 Jack Kilby – primeiro circuito integrado; • 1959-1960 G. Estrin, ideia sobre computação reconfigurável; • Hofstein, et al. - metal-oxide semiconductor field- effect transistor (MOSFET); • Intel – primeira DRAM de 1024 bits; • 1970 Fairchild – primeira SRAM de 256 bits; • 1970 Ron Cline (Signetics) – primeiro PLD (PLA); • 1971 Intel – primeiro microprocessador, 4004; • 1984 Altera – primeiro CPLD; • 1985 Xilinx - primeira FPGA, the XC2064™ - uma forma principalmente nova para lógica reprogramável; • 1991 Primeiro computador reconfigurável Algotronix CHS2X4
Memória estática Virtex-4-5 11 FPGA da Xilinx 10 1G Dual core Processadores Intel 9 8 7 Número de transístores10 8 6 Virtex-IIPro Itanium 2 (9MB cache) 5 256M Virtex-II 4 3 Virtex-E Itanium 2 2 1 64M Pentium 4 Virtex Ano 2000 2010 1990 Relação com a Lei de Moore 4004 (1971) – 2300; 8080 (1974) – 4500; 8086 (1978) – 29000; Intel286 (1982) – 134000; Intel386 (1985) – 275000; Intel486 (1989) – 1.2106; Pentium (1993) – 3.1 106; Pentium II (1997) – 7.5 106; Pentium III (1999) – 9.5 106. • Revolutionary Architecture for the Next Generation Platform FPGAs, December 8, 2003. Available at: http://www.xilinx.com/company/press/kits/asmbl/asmbl_arch_pres.pdf. • Moore’s low. Available at: http://www.intel.com/technology/mooreslaw/index.htm. • Ralph H.J.M. Otten, Paul Stravers. Challenges in Physical Chip Design. Available at: http://delivery.acm.org/10.1145/610000/602923/p84-otten.pdf?key1=602923&key2=5142353611&coll= GUIDE&dl=GUIDE&CFID=4553126&CFTOKEN=37443806 • Available at: http://conferences.ece.ubc.ca/isfpga2007/www/2006/panel.html
BCD y1 a y2 BCD para segmentos b BCD segmentos c d a b c d y1 y2 y3 y4 y5 y6 y7 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 y7 y5= abcd+ abcd+ abcd+ abcd; 4 variáveis 1 (y1) 2 y2 PROM 3 y3
dados BCD segmentos a b c d y1 y2 y3 y4 y5 y6 y7 y1 y2 y3 y4 y5 y6 y7 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 RAM/ROM (PROM) a b c d endereço PROM
y1 Begin a0 y2 a0 00 a1 01 1 D2 y1 a1 01 a0 00 x1 - y2 a2 10 x1x2 D1 a3 11 x1x2 D1D2 a2 10 a0 00 x1 - y3 a2 10 x1x2 D1 a3 11 x1x2 D1D2 a3 11 a0 00 x1 - y3 a2 10 x1x2 D1 y4 a3 11 x1x2 D1D2 a1 1 x1 0 End a0 0 1 x2 y3 y3,y4 a2 a3 y1 a3 a1 a0 a2 1 y2 x1 x1 x1 y3,y4 y3 x1x2 x1x2 x1x2 x1x2 x1x2 x1x2 Conta o número de uns num vector binário
F1 F2 Rg AND x1 x2 y1 y2 y3 y4 D1 D2 OR
DLL3 DLL2 I/O Block RAM Block RAM Block RAM Block RAM I/O I/O DLL1 DLL0 I/O DLL4 DLL2 DLL1 DLL3 Spartan-IIE FPGA Family:. Available at: http://direct.xilinx.com/bvdocs/publications/ds077.pdf
DCM DCM DCM DCM Multiplier Multiplier Block RAM Block RAM Spartan-3 Architecture Layout [1] I/O I/O I/O I/O 1. Xilinx Spartan-3 FPGA Family: Complete Data Sheet. Available at: http://direct.xilinx.com/bvdocs/publications/ds099.pdf
XC4000 FPGAs – relógio de sistema até 80 MHz [1] FPGA mais rápida de Achronix Semiconductor – até 1.93 GHz [2] Spartan FPGAs – Portas de sistema: max – 40K = 40 000 [1] Spartan-3 FPGA – Portas de sistema: max – 5M = 5 000 000 [3] Evolução de FPGAs • The Programmable Logic Data Book. Xilinx, Inc., 1999. • 2. Achronix Semiconductor Announces 1.93 GHz 90nm 'ULTRA' FPGA Prototype First Silicon Success. APRIL 26 2006. Available at: http://www.dsp-fpga.com/news/db/?2614 • 3. Xilinx Spartan-3 FPGA Family: Complete Data Sheet. Available at: http://direct.xilinx.com/bvdocs/publications/ds099.pdf
Malachy Devlin. Multi-FPGA systems for High Performance Computing applications Available at: http://www.iee.org/oncomms/sector/electronics/Articles/Object/23057E18-0825-84BD-6C1F87BD5B887FF9 Malachy Devlin, Reconfigurable Computing Architectures for High Performance Analysis. Available at: http://conferences.iee.org/medsip/Presentations/day1/Medsip-Reconfigurable-Computing-Architectures.pdf
FPGAs [1]: • Podem ser considerados como ‘Soft’ ASICs; • Introduzem um paradigma de computação novo; • Não é necessário utilizar arquitectura von Neumann; • Permitem aos utilizadores a implementarem algoritmos directamente no silício; • Paralelismo é uma oportunidade chave; • Permitem implementar qualquer interface externa. Malachy Devlin, Reconfigurable Computing Architectures for High Performance Analysis. Available at: http://conferences.iee.org/medsip/Presentations/day1/Medsip-Reconfigurable-Computing-Architectures.pdf
Lei de Moore Dados da Intel
This file is licensed under Creative Commons Attribution 1.0 License Lei de Kurzweil - Extende a lei de Moore a outras tecnologias Continuação da lei de Moore até 2019 vai reduzir o tamanho de transístores até uns átomos Depois uma tecnologia nova vai substituir a tecnologia actual dos circuitos integrados A lei de Moore não pode ser usada durante mais que 600 anos para qualquer tecnologia 1 L.M. Krauss, G.D. Starkman, “Universal Limits of Computation”, http://arxiv.org/abs/astro-ph/0404510&e=10129
Especificação e síntese • Esquemáticos • Linguagens de descrição de hardware • Linguagens de especificação ao nível de sistema • Linguagens de programação de uso geral Libraries Graphical FSM editors IP cores
Exemplo Celoxica DK Design Suite 1 Xilinx ISE 2 Especificação em VHDL Especificação em Handel-C XST Xilinx ISE Quartus II Symplify Pro Precision Synthesis ficheiro EDIF Implementação 1 http://www.celoxica.com 2 http://www.xilinx.com
Partição software/ hardware Simulação do algoritmo Geração do código sintetizável numa HDL Geração de interfaces software/hardware Envio para ferramentes de implementação Exemplo Especificação em C/C++ Catapult Synthesis CoDeveloper 1 http://www.celoxica.com 2 http://www.xilinx.com
Productividade de desenvolvimento (escala logarítmica) Complexidade de circuito (escala logarítmica) Tempo Design Productivity Gap - herdado de ASIC Platform FPGA Lei de Moore Design flow Productividade de desenvolvimento
Tendências no futuros % de sistema reconfigurável 1 International Technology Roadmap for Semiconductors, 2005, Design
A placa foi desenvolvida por Manuel Almeida O nosso departamento tem experiência com placas do protótipo seguintes • Annapolis FireFlyTM (FPGA XC6216/6264) - 1997-2001; • XESS XS40 (FPGA XC4010XL) - 1998-2002; • Alpha Data ADM-XRC (FPGA Virtex-EM XCV812E) - 2000-2003; • Alpha Data ADM-XPL (FPGA Virtex-II Pro XC2VP7) - 2003; • XESS XSA100 (FPGA Spartan-II XC2S100) - 2002; • Trenz TE-XC2Se (FPGAs Spartan-IIE XC2S300E/400E) - 2002; • Celoxica RC100 (FPGA Spartan-II XC2S200) - 2002; • Celoxica RC200 (FPGA Virtex-II XC2V1000) - 2003; • Celoxica RC10 (FPGA Spartan-3 XC3S1500L) - 2005; • DETIUA-S3 (FPGA Spartan-3 XC3S400 ) - 2005; • NEXYS2 (FPGA Spartan-3E XC3s500e) - 2008; • FX12 (FPGA Virtex-4) - 2008; • XUPV5-LX110T Development System (VPGA Virtex-5 • XC5VLX110T) - 2009 Software foi desenvolvido por Bruno Pimentel
Interface socket
USB module Bluetooth module
1 1 1 1 1 1 1 1 1 Matrizes binárias e ternárias Cobertura de matrizes
A B C D E F G 1 1 - - 1 - - - 2 1 - - 0 - 1 - 3 1 - - 1 - - 0 4 1 - - - - 0 - 5 0 - 0 - 1 - - 6 0 - 0 - 0 - - 7 0 - 1 1 1 - 1 8 0 - 1 - 0 0 - ; Ortogonalidade 0 1 1 0 Matrizes binárias e ternárias Computationally intensive algorithms SAT A B C D E F G 0 - 1 0 - 1 -
1 2 3 4 5 6 7 8 9 10 Coloração de grafos
Raíz da árvore binária Nó esquerdo porque 6 < 17 6 5 18 9 21 Nó esquerdo do nó 6 porque 5 < 17 e 5 < 6 Nó diréito porque 18 > 17 Nó direito do nó 18 porque 21 > 17 e 21 > 18 17 • 17 • 6 • 18 • 9 • 5 • 21 • … Árvore binária Nó diréito do nó 6 porque 9 < 17 e 9 > 6
Sistemas de Projecto Assistido por Computador
case 2: switch(state) { case 0: if (reg != lf) next_state(1); else next_state(4); break; case 1: par { next_state(2); local_stack[local_sp]= reg; local_sp++; reg=RAM[reg][2]; new_module(2); } break; case 2: par { next_state(3); output_stack[output_sp] = 000@RAM[reg][0]; output_sp++; } break; Handel-C EDIF bit-stream Carregar
Xilinx ISE Demonstração
10 11 12 13 14 15 16 17 18 19 20 rc mover apagar
adicionar umestado adicionar uma transição adicionar o sinalreset inserir comentários criar código VHDL simular a MEF ldb adicionar um vector lb not (SW3 = '1' and SW2 = '0' and SW1 = '0')
Relação entre Linguagens de Programação e Linguagens de Descrição de Hardware
FPGA da família Spartan-IIE: XC2S300E Divider LED led clk reset Pino: C15 VHDL Pino: P15 Pino: T9 48 MHz RESET Implementar em FPGA um circuito simples que controla um LED ligado a um pino da FPGA, ligando e desligando-o com uma frequência de ~1 Hz.
c) a) entity led_on_off is Port ( clk : in std_logic; reset : in std_logic; led : out std_logic); end led_on_off; NET "clk" LOC = "T9" ; NET "reset" LOC = "P15" ; NET “led" LOC = "C15" ; Pin: T9 reset Pin: P15 Pin: C15 25 0 d) Signal declaration Synthesis LED b) Mapping, placement, routing architecture Behavioral of led_on_off is signal internal_clock : std_logic_vector (25 downto 0); begin process(clk,reset) begin if reset = ‘0’ then internal_clock <= (others=>’0’); elsif clk’event and clk = ‘1’ then internal_clock <= internal_clock+1; end if; end process; led <= internal_clock(internal_clock’left); end Behavioral; Sensitivity list 00000000000000000000000000 Bit-stream loading Bit-stream generation process e) concurrent signal assignment switch on/off (~1 Hz) 48 MHz
Begin x 1 y3 r3 3 r6 6 r10 7 r13 9 d) m2 switch(module) { case 0: switch(state) { // . . . . . . . . . . . . . . . . . . } break; // . . . . . . . . . . . . . . . . . . . . . .. case 2: switch(state) { case 0: if (reg != 31) next_state(1); else next_state(4); break; case 1: par { next_state(2); new_module(2); } break; case 2: par { next_state(3); } break; case 3 par { next_state(4); new_module(2); } break; case 4: par { end_module(); } break; } // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b) a0 a) 7 c1 r16 0 c11 r10 3 9 c2 1 c12 r15 a1 r13 y1,y2,m2 c14 r9 r3 c4 6 a2 c5 r8 c7 r6 y1,y4,m2 a3 a4 End y5