Desenho do Processador Lís Nogeira lis@dei.isep.ipp.pt Departamento Engenharia Informática Institto Sperior de Engenharia do Porto Desenho do processador p.
Introdção Definindo o seginte sbconjnto da ISA IPS Aritméticas e lógicas: add, sb, and, or, slt Acesso à memória: lw, sw Salto condicional e incondicional: beq, bne, j Desenhar m processador Qe componentes precisamos? Como ligamos os componentes? Como controlamos o flo de eecção? Análise ISA inflencia a implementação Estratégias segidas inflenciam ciclo de relógio Desenho do processador p. 2
Componentes necessários emória de instrções - contém programa a eectar PC - endereço da próima instrção Incrementador - avançar PC para próima instrção Instrction address Instrction PC Add Sm Instrction memory a. Instrction memory b. Program conter c. Adder Desenho do processador p. 3
Componentes necessários Registos - armazenar operandos e resltados - cálclo aritmético e lógico Register nmbers Data 5 5 5 register register 2 register Data Registers 2 Data 4 operation Zero reslt Reg a. Registers b. Desenho do processador p. 4
Componentes necessários emória de dados - armazenar valores Conversor 6/32 bits - maniplação de endereços em Address Data memory 6 Sign 32 etend em a. Data memory nit b. Sign-etension nit Desenho do processador p. 5
Classificação dos componentes Elementos fncionais (lógica combinacional) Dado o mesmo inpt prodzem sempre o mesmo otpt Não gardam informação internamente, incrementador, conversor Elementos com estado Armazenam dados, instrções e resltados temporários Contêm informação necessária à re-inicialização Registos, memórias, PC Desenho do processador p. 6
Sinal de relógio Sinal eléctrico com ma dada freqência (Hz) Decide momento de actalização dos elementos com estado Dois estados: () sinal activo, (0) sinal inactivo Sinal rectanglar: mdança de estado nos lados verticais State element Combinational logic State element 2 Clock cycle Desenho do processador p. 7
Ciclo de eecção de ma instrção. Obter instrção da memória apontada por PC 2. Obter os operandos (endereço o registos) 3. eecta operação o calcla endereço 4. Instrções lw/sw acedem à memória 5. Resltado é armazenado (a) Dados da memória são escritos em registos (b) Resltado da escrito em registo (c) Novo endereço escrito no PC Como interligar os componentes? Desenho do processador p. 8
Obter instrção apontada por PC Aceder à memória de instrções Preparar a eecção da instrção seginte Incrementar PC Add 4 PC address Instrction memory Instrction Desenho do processador p. 9
Instrções formato R e lw/sw Instrções aritméticas e de acesso à memória são similares calcla operação sobre registos o endereços Resltado armazenado em registo o memória Instrction register register 2 Registers register Reg 2 Src 0 4 operation Zero reslt Address em Data memory emtoreg 0 6 Sign 32 etend em Desenho do processador p. 0
Instrções de salto condicional Comparar valor dos registos Calclar endereço destino PC+4 from instrction path Add Sm Branch target Shift left 2 Instrction register register 2 register Registers 2 4 operation Zero To branch control logic Reg 6 Sign 32 etend Desenho do processador p.
Arqitectra do processador PCSrc 4 Add Add reslt Shift left 2 PC address Instrction Instrction memory register register 2 Registers register Reg 2 Src 4 operation Zero reslt Address em Data memory emtoreg 6 Sign 32 etend em Desenho do processador p. 2
Controlo do flo de informação Necessário garantir qe... próima instrção só começa qando actal termina eecta operação correcta drante escrita de registos não há leitras de registo drante escrita na memória não há leitras da memória PC avança para próima instrção o salta nma instrção lw/sw gera endereço de memória após instrção aritmética o resltado é escrito nm registo Desenho do processador p. 3
Controlo do flo de informação Relógio Sinal de controlo global qe afecta todos os componentes Determina ritmo a qe a informação circla Eemplo: GHz eqivale a m ciclo de nano-segndo Sinais de controlo Activam apenas ma parte do circito Dependem do tipo de instrção e da fase em qe a instrção se encontra São despoletados pelo opcode da instrção Desenho do processador p. 4
Sinais de controlo Formato R opcode rs rt rd shamt fnct 3:26 25:2 20:6 5: 0:6 5:0 Formato I opcode rs rt addr 3:26 25:2 20:6 5:0 Registo destino rt em lw nos bits 20:6 rd em instrções formato R nos bits 5: Adicionar mltipleador para seleccionar campo da instrção Desenho do processador p. 5
Sinais de controlo Op tipo de operação na RegDest registo de destino Src distinge instrções formato R e I PCSrc/Branch determina se PC avança 4 bytes o salta em controla leitra da memória em controla escrita na memória emtoreg selecciona resltado da o da memória Reg controla escrita nos registos Desenho do processador p. 6
Sinais de controlo Instrção RegDest Src emtoreg Reg Formato R 0 0 lw 0 sw X X 0 beq/bne X 0 X 0 Instrção em em Branch Op Formato R 0 0 0 0 lw 0 0 00 sw 0 0 00 beq/bne 0 0 0 Desenho do processador p. 7
Sinais de controlo 0 4 Add Add reslt Instrction [3 26] Control RegDst Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [25 2] register Instrction [20 6] register 2 Zero Instrction 0 [3 0] 0 2 reslt Instrction Instrction [5 ] register memory Registers Address Data memory 0 Instrction [5 0] 6 Sign 32 etend control Instrction [5 0] Desenho do processador p. 8
Controlo de flo lw $,offset($2). Instrção é obtida da memória de instrções e PC é incrementado 2. Instrção descodificada. Valor do registo $2 é lido dos registos Branch=0 3. calcla soma do valor do registo e deslocamento convertido Src=, op=00 4. Resltado da sado como endereço na memória de dados em=, em=0 5. Valor em endereço escrito no registo destino RegDest=0, Reg=, emtoreg= Desenho do processador p. 9
Saltos absoltos Formato J opcode addr 3:26 25:0 Endereço final Conversor 26 para 28 bits Últimos 4 bits são dependentes do PC Acrescentar ao processador Sinal de controlo Jmp ltipleador (salto condicional o absolto) Desenho do processador p. 20
Saltos absoltos 4 Add Instrction [25 0] Shift Jmp address [3 0] left 2 26 28 PC + 4 [3 28] Add reslt 0 0 Instrction [3 26] Control RegDst Jmp Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [3 0] Instrction memory Instrction [25 2] Instrction [20 6] Instrction [5 ] 0 register register 2 register 2 Registers 0 Zero reslt Address Data memory 0 Instrction [5 0] 6 Sign 32 etend control Instrction [5 0] Desenho do processador p. 2
Implementação do controlo Hardwired Directamente nos circitos Possível se ISA tem pocas e simples instrções ais rápido icrocódigo Em ROs/PLAs com peqenos programas Programas activam sinais de controlo em fnção do opcode Eemplo: Intel IA-32 Desenho do processador p. 22
Controlador de microcódigo icrocode storage Otpts Datapath control otpts Inpt Adder icroprogram conter Seqencing control Address select logic Inpts from instrction register opcode field Desenho do processador p. 23
Intel IA-32 Instrções compleas qe demoram vários ciclos de relógio aior n o e compleidade de modos de endereçamento Adaptar flo de dados Instrções variam no n o de ciclos de relógio Retilização de componentes nma instrção A partir do 80486 combinação de controlo hardwired e microcódigo Hardwired para instrções simples icrocódigo para instrções compleas Desenho do processador p. 24
Intel IA-32 Tradção de instrções compleas em micro-instrções Semelhantes a instrções IPS Controlo hardwired das micro-instrções Pentim II, Pentim III e Pentim Pro Lê 3 instrções IA-32 simltaneamente Usa PLAs para gerar até 6 micro-instrções enor ciclo de relógio do Pentim 4 eigi alterações Se tradção origina até 3 micro-instrções trace cache aior n o de micro-instrções RO de micro-instrções (8000 instrções) Desenho do processador p. 25