Transferências entre registos 1 Registos Registo – Conjunto de flip-flops e portas lógicas adicionais que permite o armazenamento e manipulação de informação Operações típicas Inicializar o registo com 0’s – Clear (ou Reset) Carregar o registo com novos dados – Load Deslocar os bits dentro do registo – Shift 2 Registos Exemplo de um circuito Din Variáveis de controlo: L1 – carregamento de R1 R2 L2 Load C1 – Clear de R1 (activo a low) L2 – Carregamento de R2 S – Selecção da operação: 0 – soma S Add/Sub 1 – subtrai R1 Load Clear L1 C1 Linhas grossas são barramentos ou Bus Dout 3 Registos Exemplos de operações C1 L1 L2 S Operação 0 x 0 x R1 0 1 0 0 x NOP (não faz nada) 1 0 1 x R2 Din 1 1 0 0 R1 R1 + R2 1 1 0 1 R1 R1 – R2 1 1 1 0 R1 R1 + R2, R2 Din 1 1 1 1 R1 R1 – R2, R2 Din Din R2 S Add/Sub R1 Dout L2 Load Load Clear L1 C1 4 Notação utilizada Designação Significado Exemplos Letras (e números) Registos R0; AC; PC; IR Parêntesis Partes de um registo R2(1); R2(0...3); AC(8..15) Carregamento R3 R2 + R1; R0 4 Vírgula Operações em simultâneo R1 R0, R2 R3+R1 M[x] Posição de memória x R0 M[1023]; R2 M[R1] Conteúdo do endereço 1023 Operação Significado Conteúdo do endereço indicado pelo registo R1 Operação Significado ~ Negação (bit-a-bit) + Soma & AND (bit-a-bit) - Subtracção | OR (bit-a-bit) Multiplicação XOR (bit-a-bit) << Deslocamento para a esquerda 5 Utilização de multiplexers Selecção da origem de dados Variáveis de controlo C1 C2 S Load R1 n 0 MUX n 1 n R0 C2 C1 Função 0 x --- 1 0 R0 R1 1 1 R0 R2 R2 6 Utilização de multiplexers R0 C1 L0 Load R1 Load R2 L2 Exemplos de operações Operação S1 L1 C0 0 1 2 3 S0 MUX C1 C0 L2 L1 L0 R0 R1 0 1 0 0 1 R0 R1, R2 R1 0 1 1 0 1 R1 Din 1 1 0 1 0 R0 R1, R2 R0 Impossível Bus de dados externos Load Din 7 Utilização de multiplexers Selecção das operações R1 R2 S0 L0 S0 Função 0 x --- 1 0 R0 ~R2 1 1 R0 R1 + R2 MUX Add S 0 1 L0 Load R0 8 Utilização de portas tri-state Princípio de funcionamento Enable Enable = 0 A A Y Y Enable A Y 0 x alta impedância 1 0 0 1 1 1 Y fica isolado de A (alta impedância) Enable = 1 A Y Y=A 9 Utilização de portas tri-state Registos bidireccionais Reg Registo bidireccional com saídas tri-state EN Dados Load Esquema Reg Dados Nota: existe uma porta tri-state por cada linha de dados Load EN 10 Utilização de portas tri-state EN – Controlo da saída Load – Controlo da entrada R0 L0 E0 Exemplos Operação R1 E2 E1 E0 L2 L1 L0 R0 R1 0 1 0 0 0 1 R0 R1, R2 R1 0 1 0 1 0 1 R1 Din 1 0 0 0 1 0 R0 R1, R2 R0 Load EN Din, Dout L1 E1 Load EN R2 Impossível L2 E2 Load EN 11 Utilização de portas tri-state 2/4 RD0 RD1 A0 A1 R0 0 1 2 3 L0 E0 Selecção do registo destino Load EN R1 L1 Selecção do registo fonte E1 2/4 RF0 RF1 A0 A1 D in, Dout Load EN R2 0 1 2 3 L2 E2 Load EN 12 Exemplo Fonte para o Bus B FB0 FB1 S1 S0 R0 0 1 MUX 2 3 Load Destino R1 2/4 RD0 RD1 A0 A1 Load 0 1 2 3 R2 Load 0 1 2 MUX 3 Data in S1 S0 Data out Fonte para o Bus A FA1 FA0 A B ALU C 13 Arquitectura básica de um CPU 14 Datapath Juntando mais alguns componentes... LE H RB0 RB1 S 1 S0 Load Dec RC0 RC1 A0 A1 Load 0 1 2 3 Load Load R0 0 1 2 3 MUX BUS B Deslocamento R1 R2 0 1 2 3 R3 ALU MUX S 1 S0 RA1 RA0 BUS A 0 F E S 1 MUX MF BUS C 15 Datapath Em blocos: BUS C RA RB 2 F 2 3 H MF Estado 2 4 BUS B RC 2 LE Guardar dados Banco de Registos Unidade Funcional BUS A Operações aritméticas Operações lógicas 16 Datapath Contudo, este esquema ainda não é operacional Falta-lhe a possibilidade de comunicar com o exterior Com uma memória RAM, por exemplo E a possibilidade de carregar constantes Como resolver? Uma hipótese será: Acrescentar mais multiplexers e mais sinais de controlo Os barramentos A, B e C passam a ter funcionalidades adicionais: Bus A – para endereçar a memória Bus B – para constantes e dados a escrever na memória Bus C – para dados lidos da memória 17 Comunicação datapath-memória Selecção de constantes Selecção de dados vindos da memória BUS C RA RB 2 Constante MB F 2 H MF Estado 3 0 2 4 MD BUS B 1 RC 2 Banco de Registos LE Unidade Funcional BUS A 0 1 MW Memória Controlo de escrita/leitura na memória D in Endereço Dout R/W 18 Palavras de controlo Combinação binária correspondente ao conjunto dos sinais de controlo Possível estrutura de uma palavra de controlo para o esquema anterior: 15 14 RC 13 12 RB Registos 11 10 RA 9 8 F 7 6 5 H 4 MF Unidade funcional 3 2 1 0 LE MD MB WR Mem / Reg / Const 19 Unidade de controlo Gera as palavras de controlo de acordo com as instruções de um programa Dados Registos Sinais de controlo Memória Endereços Unidade de Controlo Sinais de controlo Unidade funcional Flags Dados 20 Execução de uma instrução Micro-processador 3. Palavra de Unidadecontrolo de Controlo Datapath 4. Flags 1. Endereço de instrução End. D in R/W 2. Instrução D out Memória 21