Your SlideShare is downloading. ×
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
1 testeac1213
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
715
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Nome: Nº:____________ 1 de 9 ARQUITECTURA DE COMPUTADORES 1º TESTE Ano Lectivo: 2012/2013 Data: 16 de Abril de 2013 Duração: 1h30 INFORMAÇÕES GERAIS  Identifique todas as folhas do enunciado com nome e nº.  Mantenha na secretária apenas a sua identificação e uma caneta (azul ou preta), não são aceites testes ou exames realizados a lápis.  Responda no espaço delimitado a seguir a cada questão.  Utilize o verso da página, onde se encontra a pergunta, para rascunho ou para espaço adicional.  A não entrega do teste tem o mesmo significado da não comparência ao teste.  Justifique todas as respostas.
  • 2. 2 de 9 I – Arquitectura de Ciclo Único UC UP Memória Dados DATA_OUT DATA_IN End. Unidade Funcional A B FSUF Const. FSUF Flags Unidade de Armazenamento A AA BA DA DATA FSUA Sel A Sel B Sel D FSUA B Endereço BUS de Dados Memória de Programa Controlo de Salto Registo PC Descodificador de Instruções SelA, SelB, SelD, FSUA, MA, MB, MM, FSUF, FW, MW, MD, PL MW Offset Zero Fill DATA_OUT MB MUX B 0 1 MD MUX D 0 1 DATA_IN MUX A 0 1MA MUX M 0 1MM PL Registo de estado Flags F(V,N,Z,C) FW Bits de estado S(V,N,Z,C) Tabela I: Micro-operações na UF e UA DA, AA, BA FSUF FSUA Função Cod. Função Flags Cod. Função Cod. R0 00 A N,Z,C,V 000 Não Escreve 00 R1 01 A + B N,Z,C,V 001 R[DA] = 0 01 R2 10 – A N,Z,C,V 010 R[DA] = DATA 10 R3 11 A - B N,Z,C,V 011 R[DA] = R[AA] 11 A + 1 N,Z,C,V 100 A - 1 N,Z,C,V 101 NAND (A,B) Z 110 LSR (B) Z,C 111 Tabela II: Instruções a Implementar OpCode Operação Descrição Bits de Estado 0000 MOV DR, SA R[DR]  R[SA] N, Z, C, V 0001 MOVI DR, Const R[DR]  Const N, Z, C, V 0010 ADDI DR, SA, Const R[DR]  R[SA] + Const N, Z, C, V 0011 SUBI DR, SA, Const R[DR]  R[SA] – Const N, Z, C, V 0100 NEG DR, SA R[DR]  – R[SA] N, Z, C, V 0101 ADD DR, SA, SB R[DR]  R[SA] + R[SB] N, Z, C, V 0110 SUB DR, SA, SB R[DR]  R[SA] – R[SB] N, Z, C, V 0111 INC DR, SA R[DR]  R[SA] + 1 N, Z, C, V 1000 DEC DR, SA R[DR]  R[SA] – 1 N, Z, C, V 1001 LD DR, SB (DR)  M[(SB)] não são alterados 1010 ST SA, SB M[(SB)]  (SA) não são alterados 1011 ST SB, Const M[(SB)]  Const não são alterados 1100 NAND DR, SA, SB (DR)  (SA) NAND (SB) Z 1101 BR Offset (PC)  (PC) + Offset não são alterados 1110 BR.Z Offset Z: (PC)  (PC) + Offset não são alterados 1111 BR.N Offset N: (PC)  (PC) + Offset não são alterados Formatos das Instruções (16 bits): Formato A OpCode DR SA SB Formato B OpCode DR SA Const Formato C OpCode Offset Registos da UC: PC – Registo de 16 bits Flags: As flags (V,N,Z,C) são guardadas num registo da UF. FW – Enable de escrita das flags no registo de estado. 0000 Não escreve, 0001 Escreve V, 0010 Escreve C, 0100 Escreve Z, 1000 Escreve N, Etc. Sinais de Controlo para a UC: PL1 PL0 00 – Incrementa PC 01 – Salto Incondicional 10 – Salta se Z (Zero) 11 – Salta se N (Negative) Sinais de Controlo para a Memória de Dados: MW – (0- Não Escreve ou 1- Escreve) Escrita Síncrona e Leitura Assíncrona Unidade de Armazenamento: Contém 4 registos de 16 bits e implementa as micro-operações descritas por FSUA (Tabela I). Unidade Funcional: Implementa as micro-operações descritas por FSUF (Tabela I). Tempos de setup e propagação: Unidade Propagação Setup (escrita) ● UA 30ns 5ns ● MUX A/B/M/D 5ns - ● UF 250ns - ● Zero Fill 2ns - ● Descodificador 25ns - ● Controlo de salto 15ns - ● Memórias 200ns 150ns ● Registos PC/Status 2ns 1ns
  • 3. Nome: Nº:____________ 3 de 9 A FSUF Z C N O Unidade Funcional B D A B TA,AA TB,BA CLK TD,DA WE DATA 0 1 0 1 Unidade de Armazenam. MEMÓRIA: Flags(3:0) Data_out TA,AA TB,BA CLK TD,DA WE MB MD Data CLK WE CLK MW Const. Unidade de controlo Unidade de controlo FSUF CLKCLK Status Register CLKCLK WEFW Flags UCUC Unidade de processamento Unidade de processamento UPUP 0 1 MA 1 0 MM PC IR: Instruction RegisterCLK MEM_DATA PC: Program counter CLK MEM_DATA OPCODE DA CARCLK CLK PLPL ILIL CL 1 0 MC MUX S StatusBitsMS Address AA BA DA AA BA StatusBits S(Z,N,C,V) Flags F(Z,N,C,V) Extensão desinal DATA DATA Const. PC PC Flags CL Memória de u-ops (descodificação da u-op e geração dos sinais de controlo) PL PL IL IL WE WE MB MB FSUF FSUF MD MD MW MW FW MA MA NA MC MC MS TB TB TA TA TD TD MS MS MM MM KNS II – Arquitectura de Ciclo Múltiplo Dimensão da Instrução: (32 bits) Unidade de Armazenamento:  16 registos de uso geral (32 bits)  3 registos auxiliaries (32 bits) para uso ao nível da microprogramação. Registos de Controlo: PC – Registo de 32 bits IR – Registo de 32 bits Status Register: A escrita é controlada pelo sinal FW tal como no processador de ciclo único: 0000 Não escreve, 0001 Escreve V, 0010 Escreve C, 0100 Escreve Z, 1000 Escreve N, Etc. Sinais de controlo para a UC Sinais de controlo para a UP Program Counter (PC) Jump control (MUX S) Unidade de Armazenamento (UA) Unidade Funcional (UF) PL Operação MS Saída Operação TA/TB Saída A Saída B FSUF Operação 0 NOP 0XX0 0 CNT 00 R[AA] R[BA] 0000 A 1 LOAD PC 0XX1 1 JMP 01 AR0 AR0 0001 A+1 1000 S(Z) JMP.Z 10 AR1 AR1 0010 A+B Instruction Register (IR) 1001 S(N) JMP.N 11 SP SP 0011 A-B IL Operação 1010 not S(Z) JMP.NZ 0100 A-1 0 NOP 1011 not S(N) JMP.NN Unidade de Armazenamento (UA) 0101 -A 1 LOAD IR 1100 F(Z) TJ.Z TD WE Registo de destino 0110 not B 1101 F(N) TJ.N XX 0 - 0111 A and B Control Address Register (CAR) 1110 not F(Z) TJ.NZ 00 1 R[DA] 1000 A or B CL Operação 1111 not F(N) TJ.NN 01 1 AR0 1001 A xor B 0 INC CAR 10 1 AR0 1010 lsl B 1 LOAD CAR 11 1 SP 1011 lsr B 1100 asl B 1101 asr B 1110 rol B 1111 ror B Conteúdo da memória de micro-instruções Endereço PL IL MC MS NA TA TB TD WE MA MB FSUF FW MM MW MD 00h (A) 0 0 0 0001 80h 00 00 00 0 0 0 0000 0000 0 0 1 01h (A+B) 0 0 0 0001 80h 00 00 00 1 0 0 0010 1111 0 0 1 02h (A-B) 0 0 0 0001 80h 00 00 00 1 0 0 0011 1111 0 0 1 03h (-A) 0 0 0 0001 80h 00 00 00 1 0 0 0101 1111 0 0 1 04h (A+1) 0 0 0 0001 80h 00 00 00 1 0 0 0001 1111 0 0 1 05h (A-1) 0 0 0 0001 80h 00 00 00 1 0 0 0100 1111 0 0 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 80h (IF) 0 1 1 0000 00h 11 11 01 1 1 0 0000 0000 1 0 1 81h (EX) 1 0 1 0001 00h 11 11 01 0 1 0 0001 0000 1 0 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
  • 4. 4 de 9 III – Arquitectura Pipeline REGISTO DE ESTADO REGISTOS:DECODE&OPERANDFETCH(DOF) REGISTOS:INSTRUCTIONFETCH(IF) A SA Result B SB UNIDADE FUNCIONAL (UF) REGISTOS:EXECUTE/MEMORY(EX/MEM) PC BC I NextPC UNIDADE DE DESCODIFICAÇÃO DE INSTRUÇÕES (UDI) S F UNIDADE DE ARMAZENAMENTO (UA) DAD WR Address CLK Flags (Z,N,C,V) MUXD Data_out Data_in FS FS SH SH MUXB MEMÓRIA DE PROGRAMA (INST_MEM) Data Endereço UNIDADE DE CONTROLO DE SALTO (UCS) I MW MBAA JB PL AD MW MD DA WR FS SH AA BA AB KNS KNS FW FW F Instruction Fetch (IF) Decode and Operand Fetch (DOF) Execute / Memory (EX/MEM) Write Back (WB) MEMÓRIA DE DADOS (DATA_MEM) KNSBA CLK Leitura assincrona dos registos Escrita sincrona nos registos FS BC JB PL AD F Escrita sincrona das flags Leitura assincrona do registo de estado Instruções de dados RTL Assembly Exemplo NOP NOP NOP NOP Move DR  SA MOV RD,SA MOV R2,R1 Increment DR  SA + 1 INC RD,SA INC R1,R2 Add DR  SA + SB ADD RD,SA,SB ADD R2,R3,R4 Subtract DR  SA – SB SUB RD,SA,SB SUB R0,R1,R2 Decrement DR  SA – 1 DEC RD,SA DEC R1,R1 AND DR  SA & RB AND DR,SA,SB AND R3,R2,R5 OR DR  SA | RB OR DR,SA,SB OR R3,R2,R5 Exclusive OR DR  SA  RB XOR DR,SA,SB XOR R3,R2,R5 NOT DR  !SA NOT DR,SA NOT R3,R2 Arithmetic Shift Right DR  SA >> OP ASR DR,SA,OP ASR R2,R3,31 Arithmetic Shift Left DR  SA << OP ASL DR,SA,OP ASL R2,R3,31 Load Immediate DR  OP LDI DR,OP LDI R0,10011b Add Immediate DR  SA + OP ADI DR,SA,OP ADI R0,R1,7h Load DR  M[SA] LD DR,SA LD R2,R5 Store M[SA]  SB ST SA,SB ST R5,R2 Instruções de dados RTL Assembler Exemplo Test and Branch on Zero if TR=0 (1) PC  PC + AD TBZ TR,AD TBZ R7,-2 Test and Branch on Negative if TR<0 (1) PC  PC + AD TBZ TR,AD TBZ R7,-2 Branch on Zero if S(Z)=1 (1) PC  PC + AD BZ AD BZ -27 Branch on Non Zero if S(Z)=0 (1) PC  PC + AD BNZ AD BNZ 22 Branch on Negative if S(Z)=1 (1) PC  PC + AD BN AD BN 143 Branch on Overflow if S(Z)=1 (1) PC  PC + AD BV AD BV 2 Jump PC  PC + AD JMP AD JMP -4 (1) Else: PC  PC +1
  • 5. Nome: Nº:____________ 5 de 9 I – Arquitectura de Ciclo Único 1) [3 Val] Considere a Unidade Funcional da Arquitectura de Ciclo Único. Admita que as operações aritméticas descritas na tabela e selecionadas por FSUF são implementadas por uma Unidade Aritmética constituída por um somador completo de 16 bits e alguma lógica combinatória adicional para transformar os operandos A e B nas entradas do somador. Esboce o esquema da unidade aritmética. Utilize o mínimo de lógica combinatória. 2) [1 Val] Considere que pretende implementar um descodificador de instruções com recurso a memória. Descreva a dimensão da memória (número de endereços, dimensão das palavras, número de bits) e indique os sinais de controlo que deverá colocar dentro da memória. Descreva o conteúdo de memória para descodificação da instrução INC DR, SA
  • 6. 6 de 9 3) [2 Val] Para cada uma das operações indicadas indique se é possível executá-las num único ciclo de relógio. Para os casos possíveis indique o valor dos sinais de controlo que a implementa, para os outros casos indique a limitação ao nível da arquitectura. 4) [1 Val] Considerando as temporizações indicadas qual a frequência máxima de funcionamento da Arquitectura de Ciclo Único apresentada. Sinais de controlo, constante e offset: INSTRUÇÃO SelA SelB SelD FSUA MA MB FSUF FW MM MW MD PL CONST OFFSET M(R2)  16 R1  R2 + M(R3) BR.Z 20 R0  R1 and R2
  • 7. Nome: Nº:____________ 7 de 9 II – Arquitectura de Ciclo Múltiplo 5) [3 Val] Complete o diagrama temporal apresentado indicando, em cada ciclo de relógio A-E, quais as operações efectuadas sobre todos os registos do processador. CLK PC CAR 14h 93h 80h 14h Ciclo A Ciclo B Ciclo C Ciclo D Ciclo E 6) [3 Val] Apresente um fluxograma ASM correspondente à implementação de uma instrução descrita por: Descreva as operações efectuadas entre registos em cada um dos estados (ciclos). 0000001 0010 OPCODE DA 1111 AA 1110 BA 0000000000100 KNS 13h 14h 0000010 0001 0010 0000 0000000000011 0000001 0010 0001 0011 0000000000100 Endereço 15h 0000100 0011 0010 0100 000000000001016h Excerto da memória de dados e instruções
  • 8. 8 de 9
  • 9. Nome: Nº:____________ 9 de 9 III – Arquitectura Pipeline 7) [4 Val] Admitindo que se pretende executar o seguinte troço de código na Arquitectura Pipeline, (a) indique todas as situações correspondentes a conflitos de dados e a conflitos de controlo. (b) Resolva esses conflitos (dados e controlo) por software e determine o limite do ganho de eficiência ao executar o código na Arquitectura Pipeline vs na Arquitectura Convencional, por simplicidade considere que o sinal de relógio do Pipeline é 4 vezes mais rápido que o da Arquitectura Convencional. (c) Determine como se alterariam os resultados se os conflitos de dados fossem resolvidos por forwarding. LDI R1, 2 LDI R2, 10 LDI R3, 0 LOOP0: MOV R4, R1 LOOP1: ADD R3, R3, R4 DEC R4, R4 BNZ LOOP1 DEC R2, R2 BNZ LOOP0 ASR R3, R3, 1 END: NOP 8) [2 Val] Considere as temporizações indicadas para cada andar do Pipeline, nas quais já estão incluídos os custos de 5ns por cada registo auxiliar necessário à implementação do pipeline. (a) Determine nestas condições qual o limite do ganho de eficiência da Arquitectura Pipeline vs na Arquitectura Convencional. TP nos andares do Pipeline  1º Andar – 20ns  2º Andar – 25ns  3º Andar – 25ns  4º Andar – 20ns 9) [1 Val] Considere que a resolução de conflitos é por software. Deduza uma expressão que lhe permita determinar o ganho do pipeline em função das seguintes variáveis: Ninst – nº de instruções executadas; Sstages – Nº de andares do Pipeline; Cpipconv – Relação entre a frequência do sinal de relógio na Arquitectura Pipeline e na Arquitectura Convencional; DH – a percentagem de ocorrência de Conflitos de Dados (se tiver necessidade pode decompor DH em mais do que um parâmetro); CH - a percentagem de ocorrência de Conflitos de Controlo.

×