1 / 79

Aula 2 (Teórico-Prática)

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.

larue
Download Presentation

Aula 2 (Teórico-Prática)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitectura de Sistemas Computacionais Aula 2 (Teórico-Prática)

  2. Aplicações práticas

  3. Sistemas computacionais

  4. Modelo básico de funcionamento de hardware

  5. Unidade de Controlo Interacção: Unidade de Controlo - Unidade de Execução Unidade de Execução Control Unit

  6. Controlo

  7. Hardware e Software

  8. 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

  9. Relação entre Software e Hardware

  10. 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.

  11. 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

  12. 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.

  13. 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

  14. Memória estática Virtex-4-5 11 FPGA da Xilinx 10 1G Dual core Processadores Intel 9 8 7 Número de transístores10 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.2106; 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

  15. 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

  16. 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

  17. 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

  18. F1 F2 Rg AND x1 x2 y1 y2 y3 y4 D1 D2 OR

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. Lei de Moore Dados da Intel

  25. 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

  26. FPGA: Fluxo de Projecto

  27. 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

  28. 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

  29. 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

  30. 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

  31. Tendências no futuros % de sistema reconfigurável 1 International Technology Roadmap for Semiconductors, 2005, Design

  32. 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

  33. Interface socket

  34. USB module Bluetooth module

  35. 1 1 1 1 1 1 1 1 1 Matrizes binárias e ternárias Cobertura de matrizes

  36. 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 -

  37. 1 2 3 4 5 6 7 8 9 10 Coloração de grafos

  38. 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

  39. Sistemas de Projecto Assistido por Computador

  40. 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

  41. Xilinx ISE Demonstração

  42. 10 11 12 13 14 15 16 17 18 19 20 rc mover apagar

  43. 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')

  44. Relação entre Linguagens de Programação e Linguagens de Descrição de Hardware

  45. 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.

  46. 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

  47. 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

  48. Projectos de Alunos

More Related