LEEC/MEEC (2006/07 2º Sem.) Nuno Cavaco Gomes Horta e Paulo Lopes Universidade Técnica de Lisboa / Instituto Superior Técnico
Sumário Introdução Unidade de Controlo Conjunto de Instruções Unidade Central de Processamento (CPU) Unidade de Entrada/Saída (I/O) Unidade de Memória Perspectiva Evolutiva das Arquitecturas de Computadores 2
3
Sistemas Digitais Complexos: + Unidade de Controlo (Datapath): Módulo responsável pela execução das operações de processamento de dados. Unidade de Controlo: Módulo responsável pelo controlo da sequência de operações a executar na Datapath para implementação de uma tarefa. 4
Datapath: Caracteriza-se pelo conjunto de registos e pelo conjunto de operações realizado sobre os dados armazenados nos registos. Operações Elementares sobre Registos: Shift (Deslocamento), Clear (Apagar), Load (Carregamento), Incrementar, Decrementar, Somar, Subtrair, etc. Microoperações (Aritméticas, Lógicas, Deslocamento): Operações elementares aplicadas sobre os dados em registos. Unidade de Controlo: Fornece os sinais que permitem sequenciar as microoperações de um modo definido, e.g., sequência do conjunto de operações para realizar uma multiplicação. 5
Datapath: Caracteriza-se pelo conjunto de registos (Unidade de Armazenamento) e pelo conjunto de operações (Unidade Funcional) realizado sobre os dados armazenados nesses registos. 6
Datapath (Exemplo) Unidade de Armazenamento Unidade Funcional ALU: Unidade Lógica e Aritmética Shifter: Unidade de Deslocamento (Exemplo de Operação) Entradas de Controlo (da U. de Controlo) Selecção de A Selecção de B Selecção de G Selecção de H Selecção de MB Selecção de MF Selecção de MD Selecção do Destino Carregamento do Resultado Operação relizada num 1 ciclo de relógio N. (Cálculo Horta, IST e Carregamento) - UTL Arquitectura de Computadores 7
Microprocessadores Exemplo de Operação: 8
Microprocessadores Unidade de Armazenamento: 9
Registo: Elemento básico de memória que permite armazenar um conjunto de N bits (dimensão do registo). 10
Register a collection of binary storage elements In theory, a register is sequential logic which can be defined by a state table More often, think of a register as storing a vector of binary values Frequently used to perform simple data storage and data movement and processing operations Chapter 7 - Part 1 11
Operação de Transferência de Dados entre 2 Registos: Controlo : Microoperação K1 : R2 R1 R1 R2 CP_H M1[Load] C2 K1 M1[Load] C2 D0 1, 2D 1, 2D Q0 D1 Q1 D2 Q2 D3 Q3 12
Chapter 7 - Part 1 13 Arquitectura de Computadores Expectations: A register can store information for multiple clock cycles To store or load information should be controlled by a signal Reality: A D flip-flop register loads information on every clock cycle Realizing expectations: Use a signal to block the clock to the register, Use a signal to control feedback of the output of the register back to its inputs, or Use other SR or JK flip-flops, that for (0,0) applied, store their state Load is a frequent name for the signal that controls register storage and loading Load = 1: Load the values on the data inputs Load = 0: Store the values in the register
The Load signal enables the clock signal to pass through if 1 and prevents the clock signal from passing through if 0. Example: For Positive Edge-Triggered or Negative Pulse Master-Slave Flip-flop: What logic is needed for gating? What is the problem? Gated Clock = Clock + Load Clock Skew of gated clocks with respect to clock or each other Chapter 7 - Part 1 14 Clock Load Gated Clock to FF
Chapter 7 - Part 1 15 Arquitectura de Computadores A more reliable way to selectively load a register: Run the clock continuously, and Selectively use a load control to change the register contents. 2-to-1 Multiplexers Example: 2-bit register with Load Control: For Load = 0, (hold current values) For Load = 1, Load loads input values In1 (load new values) Hardware more complex than clock gating In0 Clock D C D C A1 Q A0 Q Y1 Y0
Simbologia: (Transferências de Registos)? 16
Operações de Transferência entre Registos: (Multiplexagem) K1 : R0 R1, K1K2 : R0 R2... 17
Operações de Transferência entre Registos: (BUS) Multiplexers Dedicados BUS Único Multiplexers Dedicados: 9 portas lógicas (3x(2AND+1OR)), 6 linhas de entrada. BUS: 4 portas lógicas (1x(3AND+1OR)), 3 linhas de entrada. 18
Operações de Transferência entre Registos: (BUS) Exemplo: O número de registos fonte em transferências simultâneas condiciona o número mínimo de BUSES no sistema BUS Único 19
Operações de Transferência entre Registos: (BUS Tri-State)? BUS Único BUS Three-State 20
Datapath (Exemplo) Unidade de Armazenamento Unidade Funcional ALU: Unidade Logica e Aritmética Shifter: Unidade de Deslocamento (Exemplo de Operação) Entradas de Controlo (da U. de Controlo) Selecção de A Selecção de B Selecção de G Selecção de MB Selecção de MF Selecção de MD Selecção do Destino Carregamento do Resultado Operação relizada num 1 ciclo de relógio (Cálculo e Carregamento) 21
Microprocessadores Exemplo de Operação: 22
Microprocessadores Unidade Funcional: Unidade Aritmética e Lógica (ALU) 23
Microoperações: (Aritméticas)? 24
Microoperações: (Lógicas) 25
Microoperações: (Deslocamento)? 26
ALU: Unidade Lógica e Aritmética 27
ALU: Circuito Aritmético (Exemplo) 28
ALU: Circuito Aritmético? X Y i C i 0 = = A i i B S = C in 0 + B S i 1 29
ALU: Circuito Aritmético (Exemplo) Soma Subtracção Incremento Decremento Transferência...? 30
ALU: Circuito Lógico (Exemplo) AND OR XOR NOT? 31
ALU: Circuitos Aritmético e Lógico (Exemplo) 32
Microprocessadores Unidade Funcional: Unidade de Deslocamento 33
Unidade de Deslocamento: Circuito (Exemplo1) 34
Unidade de Deslocamento: Circuito (Exemplo2) 35
Datapath: Representação Hierárquica Diagrama de Blocos: Unidade de Armazenamento Unidade Funcional 36
Datapath: Representação Hierárquica Diagrama de Blocos: Unidade de Armazenamento Unidade Funcional 37
Datapath: Palavra de Controlo Palavra de Controlo: Conjunto de bits correspondente às variáveis de controlo que permitem seleccionar as microoperações. AA Selecção do Registo A BA Selecção do Registo B DA Selecção do R. de Destino MB Selecção do Operando B FS Selecção da Função na U. Funcional MD Sel. dos Dados para R. de Destino RW - Carregamento 38
Datapath: Codificação da Palavra de Controlo Nota: o número de palavras de controlo, com significado no presente caso, não é 2^17=131072, mas apenas 61440, justifique! 39
Datapath: Palavra de Controlo (Exemplo de Microoperações) 40
Datapath: Palavra de Controlo (Exemplo de Microoperações - Codificação)? 41
Datapath: Simulação da Execução de uma Sequência de Microoperações (Exemplo) 42
Unidade de Processamento: Arquitectura de Computadores Microprocessadores Temporizações Fmax = 1/Tmin Fmax Frequência máxima de funcionamento Tmin Período mínimo que respeita todos as restrições temporais impostas por cada componente Fmax = 1/(Tua+Tuf+Tlc) Tua Restrição temporal imposta pela UA Tuf Restrição temporal imposta pela UF Tlc Restrição temporal impostas pela lógica combinatória adicional 43
UP: Unidade de Armazenamento Arquitectura de Computadores Microprocessadores Temporizações Tua Restrição temporal imposta pela UA Não considerando, para já, a geração dos sinais de controlo, a contribuição da UA para a definição do período do sinal de relógio corresponde, por um lado, ao caminho dos dados que inclui o tempo de propagação nos registos e o tempo de propagação nos MUXs e, por outro lado, ao caminho dos sinais de controlo correspondentes à geração do sinal de load. Estes 2 caminhos são concorrentes na determinação do período máximo devendo ser considerada a situação mais desfavorável. 44
UP: Unidade Funcional (1) Unidade Aritmética Arquitectura de Computadores Microprocessadores Temporizações Tuf Restrição temporal imposta pela UF Neste caso há que considerar a situação mais desfavorável para a propagação do sinal ao nivel dos vários circuitos combinatórios: Unidade Aritmética, Unidade Lógica e Unidade de Deslocamento. Na Unidade Aritmética há que ter em conta a propagação do Carry ao longo do somador. 45
UP: Unidade Funcional (2) Unidade Lógica Arquitectura de Computadores Microprocessadores Temporizações Na Unidade Lógica há que ter em conta a diferente complexidade das várias portas lógicas envolvidas. Considerando o bloco U. Aritmetica e Lógica deve, neste caso, ser considerado o maior dos atrasos associados a estes blocos e adicionar o atraso associado ao MUX de interligação. 46
UP: Unidade Funcional (2) Unidade de Deslocamento Arquitectura de Computadores Microprocessadores Temporizações Na U. De Deslocamento há que considerar o tempo de propagação atarvés dos MUXs (1 nível de MUXs) Em conjugação com Uarit. e Ulog deve ser considerado ainda o tempo de propagação no associado ao MUX de interligação. 47
UP: Projecto no Xilinx (Especificação e Hierarquia) UP de 4 bits UA com 4 Registos de 4 bits Escrita possível em apenas um registo por cada ciclo Leitura de qualquer dos registos para obter operando A e B UF composta por UArit, ULog, UDesl Operações: A, A-B, A+B, A+1, NAND(A,B), NOR(A,B), SR(B), SL(B) Bits de Estado (Flags): C,V,N,Z MUX de interligação Permitir a selecção de uma constante em alternativa ao conteúdo do registo para o operando B. Permitir a selecção de uma palavra de memória em alternativa à saída da UF par escrita na UA. Unidade de Processamento Unidade de Armazenamento Unidade Funcional MUX Interligação Registo MUX Selecção Descodificador Unidade Aritmética Unidade Lógica Unidade de Deslocamento.. 48
Microprocessadores UP: Projecto no Xilinx (Esquemático de Topo) UP de 4 bits UA com 4 Registos de 4 bits Escrita possível em apenas um registo por cada ciclo Leitura de qualquer dos registos para obter operando A e B UF composta por UArit, ULog, UDesl Operações: A, A-B, A+B, A+1, NAND(A,B), NOR(A,B), SR(B), SL(B) Bits de Estado (Flags): C,V,N,Z MUX de interligação Permitir a selecção de uma constante em alternativa ao conteúdo do registo para o operando B. Permitir a selecção de uma palavra de memória em alternativa à saída da UF par escrita na UA. 49
UP: Projecto no Xilinx Arquitectura de Computadores Microprocessadores (UA Esquemático e Teste) 50
UP: Projecto no Xilinx Arquitectura de Computadores Microprocessadores (UF Esquemático e Teste) 51
Datapath: Arquitectura Convencional vs Arquitectura Pipeline Convencional Unidades a funcionar sequencialmente. Pipeline Unidades a funcionar em simultaneo. OF Operand Fetch EX Execute WB Write Back Pipeline oferece maior rapidez mas obriga a hardware adicional, 3 estruturas de Registos. 52
Datapath: Execução de Microoperações na Arquitectura Pipeline Execução Convencional: 7x12=84ns Execução Pipelined: 9x5=45ns!! 53
BIBLIOGRAFIA [1] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals, Prentice-Hall International, Inc. (Capítulo 7) 54
Problemas de Registos (Mano): Arquitectura de Computadores 7.1) Determine o diagrama lógico que implementa a seguinte operação de transferência entre registos: C3 : R2 R1, R1 R2 R1 R2 LOAD_H CP_H M1[Load] C2 LOAD_H CP_H M1[Load] C2 D0 1, 2D Q0 D0 1, 2D Q0 D1 Q1 D1 Q1 D2 Q2 D2 Q2 D3 Q3 D3 Q3 55
Problemas de Registos (Mano): Arquitectura de Computadores 7.3) Determine a lógica combinatória adicional para implementar as seguintes operações: R1 C C C 0 1 2 : R2 0 : R2 R1 : R2 R2 R2 LOAD_H CP_H M1[Load] C2 LOAD_H CP_H M1[Load] C2 D0 1, 2D Q0 D0 1, 2D Q0 D1 Q1 D1 Q1 D2 Q2 D2 Q2 D3 Q3 D3 Q3 *(a) considerando Cs mutuamente exclusivos; **(b) considerando prioridades (+C2,C1,C0-). 56
Problemas de Registos (Mano): Arquitectura de Computadores 7.6) Determine a lógica combinatória adicional para implementar as seguintes operações: C 1 C C 1 : R1 2 : R1 R1 + R2 R1 + 1 LOAD_H CP_H M1[Load] C2 D0 1, 2D Q0 D1 Q1 Σ 0 }P 1 2 3 0 1 } 2 0 3 1 2 Q 3 D2 D3 LOAD_H CP_H M1[Load] C2 Q2 Q3 CI CO D0 1, 2D Q0 D1 Q1 D2 Q2 D3 Q3 57
CIRCUITO SOMADOR/SUBTRACTOR B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 SOMA_L C C FA 3 C 4 FA 2 C FA 1 FA OVERFLOW S 3 S 2 S 1 S 0 Overflow = Carry N CarryN 1 0 1 0 0 1 0 0 0 4 0 1 0 0 4 1 1 0 0 +5 +0101 +( 5) + 1 0 1 1 ovfl. 1 0 0 1 ovfl. 0 1 1 1 58
Problemas de Registos (Mano): Arquitectura de Computadores 7.9) Realize as operações lógicas binárias, AND, OR e XOR sobre os seguintes operandos: 01011110 e 11000101. 7.11) Realize as operações de deslocamento para a direita (SR) e deslocamento para a esquerda (SL) sobre o seguinte operando: 01001101 59
Problemas de Registos (Mano): Arquitectura de Computadores 7.14) Considere que um sistema implementa o seguinte conjunto de operações de transferência entre registos: C C C C a b c d : R0 R1 : R3 R1, R1 R4, R4 : R2 R3, R0 R2 : R2 R4, R4 R2 a) Identifique, para cada registo de destino, todos os registos de origem. b) Identifique, para cada registo de origem, todos os registos de destino. c) Considerando as transferências simultâneas, qual o menor número de buses para implementar este conjunto de operações. (Cada registo terá um único bus nas suas entradas.) Sugestão: Utilize um mapa de compatibilidades para determinar, de uma forma sistemática, o número mínimo de multiplexers. d) Desenhe um diagrama de blocos contendo os vários registos, buses e as suas interligações. R0 60
Microprocessadores 61
ALU: Circuito Aritmético? X Y i C i 0 = = A i i B S = C in 0 + B S i 1 62
Problemas sobre Unidades Aritméticas (Mano): 7.22) Projecte um circuito aritmético de 4 bits com duas variáveis de selecção, S0 e S1, para realizar as seguintes operações: S1S 0 C in = 0 C in = 1 00 01 10 11 F = A + B F = A F = B F = A + B F = A + B + 1 F = A + 1 F = B + 1 F = A + B + 1 Desenhe o diagrama lógico para a estrutura associada a um dos bits. 63
Problemas sobre Unidades Lógicas (Mano): 7.24) Projecte um circuito lógico de 4 bits, que permita executar as operações EXOR, EXNOR, NOR e NAND sobre os registos A e B, considere duas variáveis de selecção, S0 e S1. a) Utilizando os mapas de Karnaugh determine a lógica mínima necessária para implementar a estrutura associada a um bit. b) Altere a os códigos de selecção e verifique se a lógica pode ainda ser minimizada. 64
Problemas sobre Unidades Lógicas (Mano): 7.28) Considere as seguintes palavras de controlo de 17 bit, definida para a. Determine (a) a microoperação executada e (b) a alteração no conteúdo dos registos (de 8 bit), assumindo que foram inicializados com o valor da sua designação (5H no R5), o valor de Constant é 11H e de Data In é 12H. (a) 101 100 101 0 01000 0 1 (b) 110 010 100 0 00101 0 1 65
Microoperações: (Aritméticas) Implementação de Microoperações de Soma e Subtracção Soma e Subtracção X K1 : R1 R1 + R2 XK : R1 R1 + R2 1 + 1! 66