Arquitetura de Um Processador III José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-11-15 José Costa (DEI/IST) Arquitetura de Um Processador III 1 Sumário Micro-Programação José Costa (DEI/IST) Arquitetura de Um Processador III 2 Micro-Programação Carregamento da Instrução OPCODE OPCODE=00... OPCODE=01... Carregamento do Operando Execução da Instrução Execução da Instrução (PUSH) OPCODE=10... Carregamento dos Operandos Execução da Instrução Escrita Resultado OPCODE=11... Carregamento do Operando Execução da Instrução (TEST, CMP) Teste de Interrupções José Costa (DEI/IST) Arquitetura de Um Processador III 3 Carregamento do Registo de Instrução IF0: IF1: José Costa (DEI/IST) RI←M[PC] PC←PC+1, CAR←ROMA[OPCODE] Arquitetura de Um Processador III ; Carrega RI ; Incrementa PC 4 Carregamento dos Operandos O registo EA (R12) é usado para guardar o endereço efectivo de um operando sempre que este operando provenha de memória (do inglês, effective address). O valor do primeiro operando deve ser copiado para o registo RD (R13). Após os cálculos, o resultado da operação deve ser guardado nesse mesmo registo. O valor do segundo operando deve ser copiado para o registo SD (R11), sempre que a instrução use dois operandos. José Costa (DEI/IST) Arquitetura de Um Processador III 5 Carregamento dos Operandos 1 Operando F1R0: RD←R[IR1], CAR←SBR ; Copia operando F1RI0: F1RI1: EA←R[IR1] RD←M[EA], CAR←SBR ; Carrega o endereço ; Copia operando F1IM0: F1IM1: RD←M[PC] PC←PC+1, CAR←SBR ; Carrega o operando ; Incrementa o PC F1IN0: F1IN1: F1IN2: F1IN3: EA←M[PC] PC←PC+1 EA←EA+R[IR1] RD←M[EA], CAR←SBR ; ; ; ; José Costa (DEI/IST) Carrega a constante W Incrementa PC Guarda o endereço Carrega o operando Arquitetura de Um Processador III 6 Carregamento dos Operandos 2 Operandos (S = 0) F2R0: F2R1: RD←R[IR1] SD←R[IR2], CAR←SBR ; Copia primeiro operando ; Copia segundo operando F2RI0: F2RI1: F2RI2: EA←R[IR1] RD←M[EA] SD←R[IR2], CAR←SBR ; Guarda endereço ; Copia primeiro operando ; Copia segundo operando F2IM0: F2IM1: F2IM2: RD←M[PC] PC←PC+1 SD←R[IR2], CAR←SBR ; Copia primeiro operando ; Incrementa o PC ; Copia segundo operando F2IN0: F2IN1: F2IN2: F2IN3: F2IN4: EA←M[PC] PC←PC+1 EA←EA+R[IR1] RD←M[EA] SD←R[IR2], CAR←SBR ; ; ; ; ; José Costa (DEI/IST) Carrega a constante W Incrementa o PC Guarda o endereço Copia primeiro operando Copia segundo operando Arquitetura de Um Processador III 7 Carregamento dos Operandos 2 Operandos (S = 1) F2RS0: F2RS1: SD←R[IR1] RD←R[IR2], CAR←SBR ; Copia segundo operando ; Copia primeiro operando F2RIS0: F2RIS1: F2RIS2: EA←R[IR1] SD←M[EA] RD←R[IR2], CAR←SBR ; End. do seg. operando ; Copia segundo operando ; Copia primeiro operando F2IMS0: F2IMS1: F2IMS2: SD←M[PC] PC←PC+1 RD←R[IR2], CAR←SBR ; Copia segundo operando ; Incrementa PC ; Copia primeiro operando F2INS0: F2INS1: F2INS2: F2INS3: F2INS4: EA←M[PC] PC←PC+1 EA←EA+R[IR1] SD←M[EA] RD←R[IR2], CAR←SBR ; ; ; ; ; José Costa (DEI/IST) Carrega a constante W Incrementa PC Guarda endereço Copia segundo operando Copia primeiro operando Arquitetura de Um Processador III 8 Execução das Instruções ADD0: ADD1: CAR←ROMB[1|S|M], SBR←CAR+1 RD←RD+SD, FM←Fh, CAR←ROMB[0|1|M] ; Copia Ops ; Adição PUSH0: PUSH1: PUSH2: CAR←ROMB[0|0|M], SBR←CAR+1 M[SP]←RD, SP←SP-1 CAR←IH0 ; Copia operando ; Escrita ; Salto para IH CALL0: CALL1: CALL2: CALL3: CAR←ROMB[0|0|M], SBR←CAR+1 M[SP]←PC, SP←SP-1 PC←RD CAR←IH0 ; ; ; ; José Costa (DEI/IST) Carregar endereço Push do PC Carregamento do PC Salto para IH Arquitetura de Um Processador III 9 Escrita do Resultado WBR0: WBR1: R[WBR]←RD CAR←IH0 ; Escrita em registo ; Tratamento de interrupções WBM0: WBM1: WBM2: S: CAR←WBR0 M[EA]←RD CAR←IH0 ; Escrita em registo se S = 1 ; Escrita do resultado ; Tratamento de interrupções José Costa (DEI/IST) Arquitetura de Um Processador III 10 Teste de Interrupções IH0: IH1: IH2: IH3: IH4: IH5: IH6: IH7: R8←RE, EINT: CAR←IF0 M[SP]←R8, SP←SP-1 M[SP]←PC, SP←SP-1, IAK←1 R9←VECTINT R8←0200h R9←R9-R8 PC←M[R9] RE←R0, CAR←IF0 José Costa (DEI/IST) ; Guarda RE Arquitetura de Um Processador III 11 Controlo do Circuito de Dados 16 WR SelAD SelB D 4 Banco de Registos 4 Reset A B 16 16 0 MA 1 F 16 0 MB MUXA 1 WM MUXB Memória W F Endereço 11111111111111111111 00000000000000000000 16 Escrita de dados FM BUS A BUS B 16 4 F LF 16 FIN F Estado ULA Leitura de dados 5 16 RE FR CULA 5 16 4 Registo de Estado FOUT 4 5 000h 11 16 2 José Costa (DEI/IST) CONST 12 MD 0 1 2 MUXD 3 4 0000 LI F Arquitetura de Um Processador III RI 12 Unidade de Controlo LI REGISTO DE INSTRUÇÃO OP M S IR1 IR2 1 0 MUX1 4 INT 3 E RI14 S M0 4 M1 5 1 MUX6 0 C 9 RI6 SelAD 4 0 RAD 9 F SBR LS MAD 9 MUX4 COND 6 RI15 1 0 9 9 M5 2 0 1 2 3 MUX5 7 N 2 O 3 MCOND P 4 3 INT 9 F 3 Z 4 4 EINT RI15 CC 1 2 MRB WBR MUXAD 1 c M2 END B END A 4 RB 1 z 4 0 0 MUXCOND 1 4 MEMÓRIA B MUX3 MEMÓRIA A SelB 4 1 2 MUXRB 1 0 0 SR2 6 MUX2 SR1 M2 S CAR +1 9 5 NA 3 RI9−7 MEMÓRIA Controlo 32 MICRO−INSTRUÇÃO José Costa (DEI/IST) Arquitetura de Um Processador III 13 Unidade Lógica e Aritmética S4 S3 S2 S1 S0 00000 00001 00010 00011 00100 00101 00110 00111 01-00 01-01 01-10 01-11 10000 10001 10010 10011 10100 10101 10110 10111 11- - José Costa (DEI/IST) R R R R R R R R R R R R R R R R R R R R R ←A+B ←A−B ←A+B +C ←A−B −C ←A−1 ←A+1 ←A−C ←A+C ←A ←A∧B ←A∨B ←A⊕B ← shr A ← shl A ← shra A ← shla A ← ror A ← rol A ← rorc A ← rolc A ←A Operação soma subtracção soma com bit transporte subtracção com transporte negado decremento incremento decremento, se C = 0 incremento, se C = 1 complemento conjunção disjunção disjunção exclusiva deslocamento lógico à direita deslocamento lógico à esquerda deslocamento aritmético à direita deslocamento aritmético à esquerda rotação à direita rotação à esquerda rotação à direita com transporte rotação à esquerda com transporte transferência Arquitetura de Um Processador III 14 Formato das Micro-Instruções 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 0 M5 S R 1 S R 2 I A K FM S R 1 S R 2 L S MCOND CALU M A M B M 2 M R B RB 8 7 W W M R 6 5 4 3 2 1 MD M A D RAD MD M A D RAD 0 F 1 M5 José Costa (DEI/IST) C C L I L F CONST/NA Arquitetura de Um Processador III W R 15 Sumário Micro-Programação José Costa (DEI/IST) Arquitetura de Um Processador III 16 Referências Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, G. Arroz, J. Monteiro, A. Oliveira, Secções 12.3 José Costa (DEI/IST) Arquitetura de Um Processador III 17 Próxima Aula Arquitetura de Um Processador (cont.) José Costa (DEI/IST) Arquitetura de Um Processador III 18