Introdução à arquitetura do hardware • Descodificação de endereços • Núcleo do processador • Microprogramação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 1 Espaço de endereçamento Processador Bus de endereços Unidade de controlo Bus de controlo Bus de dados Espaço de endereçamento (com 16 bits) Unidadede dados José Delgado © 2012 Memória 1 0000H Periférico 1 Periférico 2 Periférico 3 Memória 2 Arquitetura de Computadores – Introdução à arquitetura do hardware FFFFH 2 Diagrama de blocos Bus de endereços RD WR Processador Memória Periférico CS1 Descodificador de endereços CS2 Bus de dados José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 3 Ciclo de bus com chip select Relógio Bus de endereços endereço RD WR Chip select Bus de dados José Delgado © 2012 • Os chip selects são normalmente ativos a zero • Os flancos ascendentes dos sinais de RD e WR devem ocorrer “dentro” do período ativo do chip select. dados Arquitetura de Computadores – Introdução à arquitetura do hardware 4 Descodificação de endereços Bus de endereços RD WR Processador Memória Descodificador de endereços Periférico CS2 CS1 Bus de dados • Cada dispositivo liga aos bits de menor peso do bus de endereços • O descodificador de endereços liga aos bits de maior peso do bus de endereços. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 5 Mapa de endereços • Supondo um processador de 8 bits com este mapa de endereços: – Quantos bits deve ter no mínimo o bus de endereços? 24 – Qual o espaço de endereçamento deste mapa de endereços? 16 MB – Qual a capacidade da RAM? 2 MB – Qual a capacidade da ROM? 8 MB – Qual o espaço reservado para periféricos? 4 KB – Qual o espaço livre? 6 MB – 4 KB – Quantos bits de endereço devem ligar a cada módulo de RAM? 20 – E à ROM? 23 José Delgado © 2012 000000 RAM 0 0FFFFF 100000 RAM 1 1FFFFF Periféricos 500000 500FFF 800000 ROM Arquitetura de Computadores – Introdução à arquitetura do hardware FFFFFF 6 Geração dos chip selects 000000 RAM 0 0FFFFF 100000 A20 A21 A22 RAM 1 1FFFFF Decoder 1 para 8 Periféricos 500000 A23 500FFF 800000 A12..A19 ROM FFFFFF José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 7 Geração dos chip selects • A geração do chip select dos “GRANDES” dispositivos é geralmente simples e feita à medida. • A geração do chip select dos dispositivos “médios” é geralmente feita com descodificadores que dividem o mapa de endereços em bocados iguais. RAM 0 RAM 1 A20 A21 A22 Decoder 000000 0FFFFF 100000 1FFFFF 1 para 8 Periféricos A23 A12..A19 ROM 500000 500FFF 800000 FFFFFF • A geração do chip select dos “pequenos” dispositivos é geralmente feita por discriminação de um bocado médio (com gates ou com outros descodificadores). • Regra geral, não deve haver sobreposições. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 8 Descodificação com PROM Neste caso é possível programar os endereços em módulos de 4K. 000000 RAM 0 0FFFFF 100000 RAM 1 A23 . . . 1FFFFF PROM (Programmable ROM) Periféricos 500000 500FFF A12 800000 Em cada palavra da PROM, só um bit pode estar a 0. José Delgado © 2012 ROM Arquitetura de Computadores – Introdução à arquitetura do hardware FFFFFF 9 Descodificação com PROM • A PROM permite gerar tantos chip selects . quantos os bits da sua A12 PROM . largura. ( A23 ROM) . • Em cada palavra, só pode haver um bit a 0. • Os bits de endereço da PROM ligam aos bits de maior peso do bus de endereços. RAM 0 RAM 1 000000 0FFFFF 100000 1FFFFF Programmable Periféricos ROM 500000 500FFF 800000 FFFFFF • São precisos tantos bits quantos os requeridos pelo dispositivo de endereçamento mais fino (que ocupará apenas uma palavra da PROM). • Os dispositivos “maiores” (RAM, por exemplo) ocuparão várias palavras da PROM com o bit da saída respetiva a 0. • Zonas do espaço de endereçamento sem dispositivo têm a palavra respetiva com os bits todos a 1. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 10 Descodificação com PROM • Neste exemplo, cada palavra da PROM corresponde a 4 K . PROM A23 endereços do processador ( . (para bater certo com o ROM) A12 . requerido pelos periféricos). • Quantas palavras deve ter a PROM? 4 K • Qual o conteúdo da PROM? RAM 0 RAM 1 000000 0FFFFF 100000 1FFFFF Programmable ROM vazio periféricos vazio RAM 1 RAM 0 1111 0111 1111 1111 1111 1011 1111 1111 1111 1101 1111 1110 José Delgado © 2012 800 a FFF 501 a 7FF 500 200 a 4FF 100 a 1FF 000 a 0FF Periféricos ROM 500000 500FFF 800000 FFFFFF • Mudar o mapa de endereços implica apenas substituir ou reprogramar a PROM (que deve ser EPROM, EEPROM, FLASH, etc). Arquitetura de Computadores – Introdução à arquitetura do hardware 11 Descodificação mista Isto permite que a PROM seja 8 vezes mais pequena, com menos palavras repetidas. 000000 RAM 0 0FFFFF 100000 A12 A13 A14 RAM 1 1FFFFF A15 PROM (Programmable Decoder ROM) 1 para 8 Periféricos 500000 500FFF . . . A23 800000 ROM FFFFFF José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 12 Endereçamento de byte e de palavra • A memória é vista como um vetor linear : – de bytes (8 bits), ou – de palavras do processador (N bits) • Endereçamento de byte: Endereçamento de palavra 00H 01H 02H 03H 04H – Permite acesso direto a um byte Endereçamento – Complica interface de memória (acesso de byte (P de 32 bits) aos bytes que não sejam o de menor peso de cada palavra) 00H – Espaço de endereçamento é menor 04H – PC e SP têm de variar de 2 em 2 (processador de 16 bits) ou de 4 em 4 08H (processador de 32 bits) 0CH 10H José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 13 “Big-endian” vs “little-endian” 03 0F 0A 07 H Exemplo 00H 04H 08H 0CH 10H 0 1 2 3 4 5 6 7 8 9 A B Big-endian 03 0F 0A 07 H 00H 04H 08H 0CH 10H 0 1 2 3 4 5 6 7 8 9 A B Little-endian • Em ambos os casos, os inteiros representam-se com os bits de maior peso à esquerda. • A diferença está na ordem pela qual os bytes aparecem. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 14 “Big-endian” vs “little-endian” 03 0F 0A 07 H Exemplo 00H 04H 08H 0CH 10H 0 1 2 3 4 5 6 7 8 9 A B Big-endian 03 0F 0A 07 H 00H 04H 08H 0CH 10H 0 1 2 3 4 5 6 7 8 9 A B Little-endian • No big-endian, o byte de maior peso está no byte com menor endereço (isto é, aparece primeiro quando se vai incrementando os endereços). • No little-endian, é o byte de menor peso que aparece primeiro. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 15 “Big-endian” vs “little-endian” 03 0F 0A 07 H Exemplo 00H 04H 08H 0CH 10H 0 1 2 3 4 5 6 7 8 9 A B 03 0F 0A 07 H 00H 04H 08H 0CH 10H Big-endian 0 1 2 3 4 5 6 7 8 9 A B Little-endian • Esta distinção só é importante: – Ao aceder aos bytes individuais de uma palavra; – Ao trocar dados entre computadores. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 16 Acessos à memória flexíveis Acesso desalinhado (32 bits, endereço 01H) Acessos alinhados em 8, 16 e 32 bits 00H 04H 08H 0CH 10H 0 4 8 C 10 1 5 9 D 11 2 6 A E 12 3 7 B F 13 • Alguns processadores suportam: – Acessos a bytes e a palavras de 16 bits e 32 bits (potências de 8 bits até à largura da palavra do processador). Cada instrução tem de indicar o tipo de acesso; – Acessos desalinhados a palavras, em qualquer endereço, o que pode implicar dois acessos e corte e costura...). José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 17 Bits de menor peso Endereçamento de palavra • As memórias são geralmente feitas com chips (circuitos integrados) com largura de 8 bits, por isso são precisos: – 2 em paralelo para fazer 16 bits. – 4 em paralelo para fazer 32 bits. 00H 01H 02H 03H 04H • Os vários chips em paralelo podem Endereçamento ser acedidos simultaneamente em cada acesso, e é o processador que de byte (P de 32 bits) depois individualiza os bytes, se 00H necessário. 04H • No endereçamento de byte, os bits de 08H menor peso do bus de endereço não 0CH ligam à memória: – num processador de 16 bits, A0 – num processador de 32 bits, A1 e A0 José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 10H 18 Ligação de RAMs em paralelo Bus de endereços An..A2 An..A2 An..A2 RD An..A2 WR Processador RAM RAM RAM RAM Descodificador (32 bits) (8 bits) (8 bits) (8 bits) (8 bits) de endereços CS-RAM 31..24 23..16 15..8 7..0 Bus de dados BS0 BS3 • BS3..0 (Byte Select) – Indica que bytes são acedidos. José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 19 Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2 + 1 1. 2. 3. 4. 5. 6. 7. 8. soma 0 temp N Se (temp < 0) salta para 8 Se (temp = 0) salta para 8 soma soma + temp temp temp – 1 Salta para 4 Salta para 8 José Delgado © 2012 (inicializa soma com zero) (inicializa temp com N) (se temp for negativo, salta para o fim) (se temp for zero, salta para o fim) (adiciona temp a soma) (decrementa temp) (salta para o passo 4) (fim do programa) Arquitetura de Computadores – Introdução à arquitetura do hardware 20 Só uma constante por instrução • • • Decompôr instruções com várias constantes em instruções mais simples, cada uma só com uma constante. Já não há endereços e valores numéricos na mesma instrução). Usa-se um registo auxiliar (A) para guardar valores entre instruções. 0 1 2 3 A0 M[soma] A AN M[temp] A Se (M[temp] < 0) PC 7 4 (A < 0) : PC 12 3 Se (M[temp] = 0) PC 7 4 M[soma] M[soma] + M[temp] 5 M[temp] M[temp] – 1 6 7 PC 3 PC 7 5 6 7 8 9 10 11 12 (A = 0) : PC 12 A A + M[soma] M[soma] A A M[temp] AA–1 M[temp] A PC 5 PC 12 0 M[soma] 0 1 M[temp] N 2 José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 21 Que operações são necessárias? • Para correr o programa anterior, o hardware tem de suportar as seguintes operações: Operação Exemplo Escrever uma constante no registo A A0 Armazenar o registo A na memória M[soma] A Ler uma célula de memória e escrever no A M[temp] registo A Operação com o registo A e uma célula de memória como operandos A A + M[soma] Operação com o registo A e uma constante como operandos AA–1 Salto incondicional PC 7 Salto condicional (A = 0) : PC 12 José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 22 Arquitetura de base endereço de instruções Memória de instruções Memória de dados endereço de dados PC WR SEL_A MUX ESCR_A Registo A 1.º operando 2.º operando SEL_ALU ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 23 A M[endereço] endereço de instruções Memória de instruções Memória de dados endereço de dados PC WR SEL_A MUX ESCR_A Registo A 1.º operando 2.º operando SEL_ALU ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 24 M[endereço] A endereço de instruções Memória de instruções Memória de dados endereço de dados PC WR SEL_A MUX ESCR_A Registo A 1.º operando 2.º operando SEL_ALU ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 25 A A + M[endereço] endereço de instruções Memória de instruções Memória de dados endereço de dados PC WR SEL_A MUX ESCR_A Registo A 2.º operando SEL_ALU ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 26 A 0 ??? endereço de instruções Memória de instruções Memória de dados endereço de dados PC WR SEL_A MUX ESCR_A Registo A 1.º operando 2.º operando SEL_ALU ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 27 A constante Memória de instruções Memória de dados endereço de instruções constante PC WR SEL_B SEL_A ESCR_A MUX_B MUX_A Registo A 1.º operando SEL_ALU 2.º operando ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 28 A A + constante Memória de instruções Memória de dados endereço de instruções constante PC WR SEL_B SEL_A ESCR_A MUX_B MUX_A Registo A 1.º operando SEL_ALU 2.º operando ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 29 Salto (PC 7) ??? Memória de instruções Memória de dados endereço de instruções constante PC WR SEL_B SEL_A ESCR_A MUX_B MUX_A Registo A 1.º operando SEL_ALU 2.º operando ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 30 PC constante Memória de instruções Memória de dados endereço de instruções ESCR_PC PC constante WR SEL_B SEL_A ESCR_A MUX_B MUX_A Registo A 1.º operando SEL_ALU 2.º operando ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 31 (A = 0) : PC constante • SEL_PC (2 bits): não salta, salto incondicional, salto condicional (se A = 0 e se A < 0) Memória de instruções Memória de dados endereço de instruções constante SEL_PC PC ESCR_PC MUX_B SEL_A MUX_PC 0 1 WR SEL_B MUX_A Registo A ESCR_A 1 1 bit de maior peso ... SEL_ALU 8 8 1.º operando 2.º operando ALU resultado da operação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 32 PEPE-8: instruções com todos os sinais de controlo Memória de instruções endereço de instruções Memória de dados constante SEL_PC WR SEL_B PC ESCR_PC SEL_A MUX_PC MUX_A Registo A ESCR_A 1 0 1 MUX_B bit de maior peso ... 1 8 8 1.º operando 2.º operando ALU SEL_ALU resultado da operação Unidade de Controlo Unidade de Dados Processador (PEPE-8), versão preliminar José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 33 PEPE-8: instruções com opcodes Memória de instruções opcode endereço de instruções Memória de dados constante ROM de descodificação PC SEL_PC constante WR SEL_B MUX_B SEL_A MUX_A ESCR_PC ESCR_A MUX_PC 1 Registo A bit de maior peso 0 1 ... 1 8 8 SEL_ALU 1.º operando 2.º operando ALU resultado da operação Unidade de Controlo Unidade de Dados Processador (PEPE-8) José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 34 Linguagem assembly Instrução Categoria Transferência de dados Operações aritméticas Operações lógicas Saltos Diversos assembly Significado Opcode Descrição em RTL LD valor Load (imediato) 00H A valor LD [endereço] Load (memória) 01H A M[endereço] ST [endereço] Store (memória) 02H M[endereço] A ADD valor Add (imediato) 03H A A + valor ADD [endereço] Add (memória) 04H A A + M[endereço] SUB valor Subtract (imediato) 05H A A – valor SUB [endereço] Subtract (memória) 06H A A – M[endereço] AND valor AND (imediato) 07H A A valor AND [endereço] AND (memória) 08H A A M[endereço] OR valor OR (imediato) 09H A A valor OR [endereço] OR (memória) 0AH A A M[endereço] JMP endereço Jump 0BH PC endereço JZ endereço Jump if zero 0CH (A=0) : PC endereço JN endereço Jump if negative 0DH (A<0) : PC endereço No operation 0EH NOP José Delgado © 2012 Arquitectura de Computadores – Introdução à arquitectura do hardware 35 Instrução LD [endereço] Memória de instruções opcode endereço de instruções Memória de dados constante ROM de descodificação PC SEL_PC constante WR SEL_B MUX_B SEL_A MUX_A ESCR_PC ESCR_A MUX_PC 1 Registo A bit de maior peso 0 1 ... 1 8 8 SEL_ALU 1.º operando 2.º operando ALU resultado da operação Unidade de Controlo Unidade de Dados Processador (PEPE-8) José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 36 Instrução ADD valor Memória de instruções opcode endereço de instruções Memória de dados constante ROM de descodificação PC SEL_PC constante WR SEL_B MUX_B SEL_A MUX_A ESCR_PC ESCR_A MUX_PC 1 Registo A bit de maior peso 0 1 ... 1 8 8 SEL_ALU 1.º operando 2.º operando ALU resultado da operação Unidade de Controlo Unidade de Dados Processador (PEPE-8) José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 37 Programação em assembly Programa em RTL 0 1 2 3 4 5 6 7 8 9 10 11 12 A0 M[soma] A AN M[temp] A (A < 0) : PC 12 (A = 0) : PC 12 A A + M[soma] M[soma] A A M[temp] AA–1 M[temp] A PC 5 PC 12 José Delgado © 2012 Programa em assembly 00H início: LD 01H ST 02H LD 03H ST 04H JN 05H teste: JZ 06H ADD 07H ST 08H LD 09H SUB 0AH ST 0BH JMP 0CH fim: JMP 0 [soma] N [temp] fim fim [soma] [soma] [temp] 1 [temp] teste fim Arquitectura de Computadores – Introdução à arquitectura do hardware 38 Agora um processador de 16 bits • Já não faz uma instrução por ciclo de relógio • Tem um ciclo de ações elementares por cada instrução instruções endereços de instruções Núcleo do processador dados dados endereços de dados Cache de instruções endereços Interface de memória Cache de dados dados/instruções Memória principal (dados e instruções) WR RD Processador José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 39 Ciclo do processador Unidade de controlo Banco de registos PC MPX A endereços B dados Unidade aritmética e lógica (ALU) Controlo F CLK flags José Delgado © 2012 de dados dados/instr. Interface de memória Registo de instrução Busca instrução Descodifica Busca operandos Unidade de Executa (memória) (registos) processamento Escreve resultado Bus end. Bus dados Bus contr. MPX Arquitetura de Computadores – Introdução à arquitetura do hardware 40 MOV R2, [R3] Exemplo Unidade de controlo R2 R1 R1 M[R3] M[R3] +R1 R2 endereços B dados Unidade aritmética e lógica (ALU) Controlo F CLK flags dados/instr. Interface de memória MPX A José Delgado © 2012 MOV [R3], R1 Unidade de processamento RI M[PC] de dados PC PC + 2 Banco de registos PC PC Registo de instrução ADD R1, R2 Bus end. Bus dados Bus contr. MPX Arquitetura de Computadores – Introdução à arquitetura do hardware 41 Estrutura do processador Registo de instruções Banco de registos ALU MUX PC REM MUX Unidade de Controlo NÚCLEO Gerador de constantes Unidade de exceções D-Cache Interface de memória MUX ACESSO À MEMÓRIA I-Cache Portas tristate WR RD BA WAIT BGT BRQ INT3 INT2 INT1 INT0 RESET José Delgado © 2012 Barramento Barramento de endereços de dados A15..A0 D15..D0 Arquitetura de Computadores – Introdução à arquitetura do hardware 42 Núcleo do processador 3..0 Registo de instruções 7..4 Cache de instruções IND_A PA_A PA_A SEL_A 4 ENTR_RE IND_B SAIDA_RE SEL_RE LE_USP Exceções de busca ESCR_USP 4 SEL_RE D_LE D_BA M U X ESCR_REM Cache de dados D_OK Condições de salto (Z, NZ, N, NN, C, GT, LE, etc) 3 0 1 MUX +2 4 SEL_SALTO NUM_EXC Sinais de controlo EXC_FIM Unidade de Controlo D_BARR_END Para a Unidade de Exceções 16 Gerador de constantes SEL_CONST MAP D_BA D_SAIDA ESCR_C SEL_BARR_C 4 M U X D_LE D_ESCR D_ESCR 4 4 PC D_ENTR Para a Unidade de Exceções SEL_OP_B PA_C PA_C 4 REG_C OP_ALU 16 3 IND_C M U X 5 BARR_B SAZ, EXCESSO SAN, DIV0 SAC, C_RE SAV 1 ESCR_C ESCR_RI Para a Unidade de Exceções M U X BARR_C SEL_C I_OK_M SEL_OP_A LE_USP ESCR_USP OP_ALU REM I_OK ALU BARR_A SAIDA_ALU Banco de Registos REG_A I_BARR_END M U X BARR_A BARR_B 15..12 11..8 I_SAIDA 4 M U X EXC ESCR_RI Relógio Unidade de Exceções Fontes de exceções SALTA_PC José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 43 Controlo microprogramado Entradas da unidade de controlo Bits de estado (flags) Gerador do próximo endereço relógio Registo de endereço de controlo Endereço da microinstrução microinstrução ROM com microprograma Próximo endereço Saídas para unidade de controlo José Delgado © 2012 Saídas para unidade de processamento de dados Arquitetura de Computadores – Introdução à arquitetura do hardware 44 Controlo e circuito controlado ESCR_RA SHR_RA X N RA RB ESCR_RB DEC_RB nZ MICRO_SALTO Z +1 0 M U X 1 MPC MUX2 2 1 Z José Delgado © 2012 nZ ROM de microcódigo ESCR_RA SHR_RA ESCR_RB DEC_RB SEL_MICRO_SALTO Deslocar o registo X de N bits Arquitetura de Computadores – Introdução à arquitetura do hardware 45 ESCR_RA SHR_RA X N RA RB ESCR_RB DEC_RB nZ MICRO_SALTO Z Microprograma +1 0 M U X 1 MPC MUX2 2 1 Z ROM de microcódigo ESCR_RA SHR_RA ESCR_RB DEC_RB SEL_MICRO_SALTO nZ José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 46 Descodificação da instrução Registo de instrução opcode ROM de mapeamento Entradas da unidade de controlo Bits de estado (flags) Gerador do próximo endereço relógio Registo de endereço de controlo Endereço da microinstrução microinstrução ROM com microprograma Próximo endereço José Delgado © 2012 Saídas para unidade de controlo Saídas para unidade de processamento de dados Arquitetura de Computadores – Introdução à arquitetura do hardware 47 Unidade de controlo 3..0 Registo de instruções 7..4 Cache de instruções IND_A M U X BARR_A PA_A PA_A SEL_A Banco de Registos ESCR_USP ESCR_RI I_BARR_END 3 PA_C PA_C 4 Para a Unidade de Exceções 16 Gerador de constantes D_OK Condições de salto (Z, NZ, N, NN, C, GT, LE, etc) 3 NUM_EXC 0 1 MUX +2 4 SEL_SALTO MICRO_SALTO I_OK_M m_BSC1 Sinais de controlo +1 M U X ROM de Mapeamento Cache de dados D_SAIDA ESCR_C SEL_CONST M U X D_BARR_END ESCR_REM SEL_BARR_C 4 PC D_BA 4 4 REG_C M U X ESCR_C D_LE D_ESCR D_BA Para a Unidade de Exceções SEL_OP_B SEL_RE IND_C M U X Para a Unidade de Exceções D_LE D_ESCR 1 BARR_C SEL_C D_ENTR 16 LE_USP ESCR_USP OP_ALU REM Exceções de busca 5 BARR_B SAZ, EXCESSO SAN, DIV0 SAC, C_RE SAV 4 SEL_RE LE_USP M U X SEL_OP_A ENTR_RE IND_B SAIDA_RE I_OK OP_ALU SAIDA_ALU REG_A 4 I_OK_M ALU BARR_A BARR_B 15..12 11..8 I_SAIDA 4 M U X m_EXC1 M U X MP C ROM de microcódigo Relógio EXC_FIM 3 Controlo MPC EXC ESCR_RI Unidade de Exceções SALTA_MPC MAP Unidade de Controlo MUX SEL_MICRO_SALTO 0 1 SA0 SAZ SAN nSA0 nSAZ Fontes de exceções SALTA_PC José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 48 Microprogramação José Delgado © 2012 Arquitetura de Computadores – Introdução à arquitetura do hardware 49