RISC simples Aula 7 31 de Março de 2005 1
Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de dados A unidade de controlo Ref: Hennessy e Patterson, 2.12 31 de Março de 2005 Arquitectura de Computadores 2004/05 2 - Aula 7
Processadores RISC (1) Reduced Instruction Set Computer (RISC): conjunto de instruções reduzido mas completo ISA apenas com operações reg-reg modos de endereçamentos simples => nº reduzido de acessos à memória => unidade de controlo simples 31 de Março de 2005 Arquitectura de Computadores 2004/05 3 - Aula 7
Processadores RISC (2) Características de um processador RISC típico (MIPS): Instruções codificadas com formato fixo de 32 bits (3 formatos) registos GPR que suportam inteiros com 8-16-32-(64) bits organização little-endian por omissão registos FPR que suportam números em vírgula flutuante (FP) formato IEEE 754 com precisão simples e precisão dupla Operações do tipo reg-reg com 3 endereços Modos simples de endereçamento apenas para instruções load/store: imediato e indirecto por registo (base+ deslocamento) e acesso alinhado => não há indexações Condições simples de salto (Ra==Rb? ; Ra==0?) => não há registo de flags 31 de Março de 2005 Arquitectura de Computadores 2004/05 4 - Aula 7
Registos do MIPS64 (1) 32 registos GPR de 64 bits (registos inteiros) R0, R1,..., R31 R0 tem a constante 0 32 registos FPR (para vírgula flutuante, FP) de 64 bits F0, F1,..., F31 Cada FPR pode conter um número em FP de precisão simples (32 bits em metade do registo) ou um número em FP de precisão dupla (64 bits) Existem instruções para operar em 2 números de FP em precisão simples num registo FPR É possível transferir um dado entre um GPR e um FPR 31 de Março de 2005 Arquitectura de Computadores 2004/05 5 - Aula 7
Registos do MIPS64 (2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 6 - Aula 7
Registos do MIPS64 (3) Os dados podem ser de 1 byte 2 bytes (meia palavra) 4 bytes (uma palavra) 8 bytes (dupla palavra) para inteiros 4 bytes (uma palavra) para números em FP e precisão simples 8 bytes (dupla palavra) para números em FP e precisão dupla Bytes, meias palavras e palavras são carregados nos GPR com zeros ou com réplicas do bit de sinal, por forma a preencher todos os 64 bits 31 de Março de 2005 Arquitectura de Computadores 2004/05 7 - Aula 7
MIPS64: instruções Classes de Instruções Aritméticas e Lógicas DADD, DADDI, DAADU, DSUB, DSUBU, DMUL, DMULU, DDIV, DDIVU, MADD, AND, ANDI, OR, ORI, XOR, XORI, LUI De acesso à memória LB, LBU, LH, LHU, LW, LWU, LD, SB, SH, SW, SD, L.S, L.D, S.s, S.D De controlo J, JAL, JR, JALR, BEZ, BNEZ 31 de Março de 2005 Arquitectura de Computadores 2004/05 8 - Aula 7
Formato das instruções do MIPS64 O formato das instruções (todas com 32 bits) é: Tipo R 6 5 5 5 5 6 op rs rt rd shamt funct Registo-registo ALU: rd rs funct rt Tipo I 6 5 5 16 op rs rt Immediate Loads e Stores, Imediatos: rt rs op immediate Saltos condicionados (branches) dependem de rs e rt Jump registo, jump and link registo rs=destino, immediate=0, rt=0 Tipo J 6 26 op Jump, jump and link Trap, return from exception Offset adicionado a PC 31 de Março de 2005 Arquitectura de Computadores 2004/05 9 - Aula 7
Microarquitectura Data path - estrutura de interligação entre componentes ou unidades funcionais (estática) Controlo sequência de transferência de dados entre componentes (dinâmica) 31 de Março de 2005 Arquitectura de Computadores 2004/05 10 - Aula 7
Ciclo de instrução típico IF = instruction fetch Obtém instrução da memória (cache) de instruções (arquitectura de Harvard) ID = instruction decode Identifica opcode, gera sinais de controlo OF = operand fetch Lê registos, encaminha quantidade imediata EX = execute Executa operação, gera endereço,acede à memória (cache) de dados (Harvard) RS = result store Escreve registos, escreve memória NI = next instruction Incrementa PC ou actualiza PC com ender. próxima instrução 31 de Março de 2005 Arquitectura de Computadores 2004/05 11 - Aula 7
Classes de instruções do MIPS 31 de Março de 2005 Arquitectura de Computadores 2004/05 12 - Aula 7
Processador de ciclo único Pretende-se construir um caminho de dados (datapath) e um controlo que consigam executar uma instrução num ciclo de relógio Ou seja, um datapath com um ciclo por instrução (CPI) CPI = 1 Vantagens: Simples e de fácil compreensão Obtém-se directamente a partir do ISA (não muito flexível, difícil de alterar) Inconvenientes: Lllllllleeeeeennnnnnttttttoooooo OK, na próxima lição veremos como melhorar 31 de Março de 2005 Arquitectura de Computadores 2004/05 13 - Aula 7
Datapath e controlo (1) Tipos principais de instruções Operações aritméticas e lógicas (tipo R) add, sub, multiply, shift left, shift right, compare Leitura e escrita na memória de dados (tipo I) load, store Que mudam o fluxo de controlo (tipo J) Jumps (saltos incondicionais), branches (saltos condicionados) 31 de Março de 2005 Arquitectura de Computadores 2004/05 14 - Aula 7
Datapath e controlo (2) Principais unidades funcionais Register file memória rápida (array de registos, RAM?) Registos especiais - para o PC (Program Counter) e para resultados temporários (intermédios) ALU para processar as operações aritméticas e lógicas (e os cálculos sobre endereços?) Multiplexers e barramentos - para a ligação das unidades funcionais Lógica de controlo - para controlar o fluxo de dados e a operação das unidades funcionais O datapath serve de suporte à execução das instruções A lógica de controlo fornece os sinais de controlo requeridos pelo datapath 31 de Março de 2005 Arquitectura de Computadores 2004/05 15 - Aula 7
ALU 31 de Março de 2005 Arquitectura de Computadores 2004/05 16 - Aula 7
IFU Instruction Fetch Unit (1) Memória (cache) para guardar as instruções PC para apontar para a instrução corrente Somador para incrementar o PC (que passa a apontar para a instrução seguinte a ser adquirida e executada a seguir) Porquê? 31 de Março de 2005 Arquitectura de Computadores 2004/05 17 - Aula 7
IFU Instruction Fetch Unit (2) Para a arquitectura MIPS32, a maioria dos registos e barramentos tem 32 bits 31 de Março de 2005 Arquitectura de Computadores 2004/05 18 - Aula 7
Instruções do tipo R Exemplo: ADD R1,R2,R3 Precisa da Register File e da ALU 31 de Março de 2005 Arquitectura de Computadores 2004/05 19 - Aula 7
Exemplo: ADD R1,R2,R3 ADD R1,R2,R3 31 de Março de 2005 Arquitectura de Computadores 2004/05 20 - Aula 7
Instruções do tipo I Loads e Stores (únicas para acesso à memória (cache) de dados Exemplo: LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 21 - Aula 7
Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 22 - Aula 7
Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 23 - Aula 7
Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 24 - Aula 7
Extensão do sinal 31 de Março de 2005 Arquitectura de Computadores 2004/05 25 - Aula 7
Exemplo: SW R4,10(R2) SW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 26 - Aula 7
Instruções do tipo J Jumps e Branches (saltos condicionados) Não há flags Exemplo: BEQ R2,R3,offset Comparação efectuada por subtracção (R2-R3) e detecção de 0 31 de Março de 2005 Arquitectura de Computadores 2004/05 27 - Aula 7
Mais um somador Mais um somador para calcular o endereço alvo BEQ R2,R3,offset 31 de Março de 2005 Arquitectura de Computadores 2004/05 28 - Aula 7
Datapah para instr. R e memória Muxs necessários 31 de Março de 2005 Arquitectura de Computadores 2004/05 29 - Aula 7
Datapath (quase) completo 31 de Março de 2005 Arquitectura de Computadores 2004/05 30 - Aula 7
Sinais de controlo do datapath 31 de Março de 2005 Arquitectura de Computadores 2004/05 31 - Aula 7
Atenção Assegure-se que o datapath contém todas as unidades funcionais que são necessárias para implementar as instruções do ISA Ex., precisa de uma ALU, de um somador para calcular o próximo PC, e de um 2º somador para calcular o endereço de salto Se não o fizer, pode ter surpresas desagradáveis Assegure-se que tem todos os sinais de controlo para cada unidade funcional do datapath, e que sabe o que esses sinais fazem Alguns são directos ; por ex, o sinal que escreve num registo Outros são indirectos ; por ex., os sinais que dizem à ALU o que ela deve fazer NÃO estão incluídos na instrução, é preciso gerá-los com um bocado de lógica combinatória 31 de Março de 2005 Arquitectura de Computadores 2004/05 32 - Aula 7
Datapaths em silício - Pentium 31 de Março de 2005 Arquitectura de Computadores 2004/05 33 - Aula 7
Datapaths em silício - Alpha 31 de Março de 2005 Arquitectura de Computadores 2004/05 34 - Aula 7
Datapaths em silício Power PC 31 de Março de 2005 Arquitectura de Computadores 2004/05 35 - Aula 7
Formato dos datapaths (1) Possuem todos sensivelmente o mesmo formato: alto e estreito 31 de Março de 2005 Arquitectura de Computadores 2004/05 36 - Aula 7
Formato dos datapaths (2) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 37 - Aula 7
Formato dos datapaths (3) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 38 - Aula 7
Formato dos datapaths (4) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 39 - Aula 7
Controlo em silício - Pentium Notar controlo desordenado, característico de um controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 40 - Aula 7
Controlo em silício Power PC Outro exemplo: ainda com controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 41 - Aula 7
Processador embebido (1) 31 de Março de 2005 Arquitectura de Computadores 2004/05 42 - Aula 7
Processador embebido (2) Ampliação do processador anterio Notar o controlo desordenado, característico de um controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 43 - Aula 7
Microarquitectura Voltemos ao esquema geral da microarquitectura do datapath e do controlo Como organizar o controlo? 31 de Março de 2005 Arquitectura de Computadores 2004/05 44 - Aula 7
Controlo microprogramado (1) Uma solução usa microprogramação A lógica de estado seguinte e a lógica de saída vêm numa tabela em ROM 31 de Março de 2005 Arquitectura de Computadores 2004/05 45 - Aula 7
Controlo microprogramado (2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 46 - Aula 7
Controlo microprogramado (3) Exemplo de microprograma 31 de Março de 2005 Arquitectura de Computadores 2004/05 47 - Aula 7
Controlo microprogramado (4) Exemplo de microprograma (cont.) 31 de Março de 2005 Arquitectura de Computadores 2004/05 48 - Aula 7
Controlo microprogramado (5) Primeira tentativa de solução (ex.) 31 de Março de 2005 Arquitectura de Computadores 2004/05 49 - Aula 7
Controlo microprogramado (6) Tamanho da ROM com o microprograma MIPS: w = 6+2 c = 17 s =? no. de estados por opcode = 4 a 6 + sequência de fetch no. total de estados = (4 ciclos por opcode) x n. de opcodes + + sequência de fetch comum = 4 x 8 + 10 estados = 42 estados => s = 6 Tamanho ROM de controlo = 2(8+6) x 23 bits ~ 48 Kbytes 31 de Março de 2005 Arquitectura de Computadores 2004/05 50 - Aula 7
Controlo microprogramado (7) ROM de controlo tem que ser rápida => dispendiosa Redução da altura da ROM (menos bits de endereço) Reduzir as entradas recorrendo a lógica externa Cada bit de entrada duplica o tamanho da ROM Reduzir o número de estados, agrupando opcodes Encontrar sequências comuns de microcódigo Condensar os bits de estado (entrada) Combinar todas as excepções numa única, por ex., excepção /ausência de excepção Redução da largura da ROM (palavras mais curtas) Restringir a codificação do estado seguinte Codificar os sinais de controlo em determinados campos (microprogramação vertical) 31 de Março de 2005 Arquitectura de Computadores 2004/05 51 - Aula 7
Controlo microprogramado (8) Microprogramação vertical 31 de Março de 2005 Arquitectura de Computadores 2004/05 52 - Aula 7
Microprogramação horizontal Micro-programação horizontal 1 bit por cada linha de controlo Várias microoperações podem ser realizadas simultaneamente Mas: Há microoperações que nunca acontecem simultaneamente Podem-se codificar diversas microoperações que nunca acontecem em simultâneo 31 de Março de 2005 Arquitectura de Computadores 2004/05 53 - Aula 7
Microprogramação vertical Por exemplo, não há instruções que envolvam simultaneamente operações na ALU e na memória (Load/Store) Micro-programação vertical Mais compacta Potencialmente mais lenta 31 de Março de 2005 Arquitectura de Computadores 2004/05 54 - Aula 7
Próxima aula RISC multiciclo Comparação com os RISC de ciclo único RISC com pipeline simples Estrutura de um pipeline típico com 5 andares 31 de Março de 2005 Arquitectura de Computadores 2004/05 55 - Aula 7