Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
733
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
67
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. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa MEEC - Arquitectura de Computadores 2011/2012 Nome: Nº:____________ ARQUITECTURA DE COMPUTADORES Indique o tipo de prova: 1º TESTE (GRUPOS I e II) 2º TESTE (GRUPOS III, IV e V) EXAME (GRUPOS I, II, III, IV e V) Ano Lectivo: 2011/2012 Data: 25 de Junho de 2012 Duração: 1h30 (Teste) / 2h30 (Exame) INFORMAÇÕES GERAIS 1. Identifique todas as folhas do enunciado com nome e nº. 2. 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. 3. Responda no espaço delimitado a seguir a cada questão. 4. A não entrega do teste ou exame tem o mesmo significado da não comparência. 5. Justifique todas as respostas. LISTA DE INSTRUÇÕES ASSEMBLY (P3) Instrução Flags Afectadas Instrução Flags Afectadas ADD op1, op2 ADDC op1, op2 AND op1, op2 BR <deslocamento> BR.cond <deslocamento> CALL <endereço> CALL.cond <endereço> CLC CMC CMP op1, op2 COM op DEC op DIV op1, op2 DSI ENI INC op INT const JMP <endereço> JMP.cond <endereço> MOV op1, op2 MUL op1, op2 MVBH op1, op2 MVBL op1, op2 Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: NEG op NOP OR op1, op2 POP op PUSH op RET RETN const ROL op, const ROLC op, const ROR op, const RORC op, const RTI SHL op, const SHLA op, const SHR op, const SHRA op, const STC SUB op1, op2 SUBB op1, op2 TEST op1, op2 XCH op1, op2 XOR op1, op2 Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: Flags: ZCNO ZCNO ZN ------------C C ZCNO ZN ZCNO ZCNO E E ZCNO ZCNOE ---------ZCNO ------- Flags Transporte Sinal Excesso - C – N - O ZCNO ---ZN ------------ZCN ZCN ZCN ZCN EZCNO ZCN ZCNO ZCN ZCNO C ZCNO ZCNO ZN ---ZN Condições (V/F) Zero – Z Interrupção – E Positivo - P Transporte– C/NC Zero – Z/NZ Sinal – N/NN Interrupção – I/NI Excesso - O/NO Positivo - P/NP
  • 2. I – Arquitectura de Ciclo Único Flags F(V,N,Z,C) FW DATA Registo de estado Sel D DA Bits de estado S(V,N,Z,C) FORMATOS DAS INSTRUÇÕES (32 BITS): WE Formato A OpCode DR SA Formato B OpCode DR SA Formato C OpCode Offset Unidade de Armazenamento PL Offset WE Sel A Controlo de Salto AA Sel B BA A B Endereço Registo PC DATA_OUT Zero Fill MW Const. MA 0 1 MUX A 0 1 MUX B MB MM A B DATA_IN End. FSUF Memória Dados Unidade Funcional Flags DATA_ OUT Descodificador de Instruções DATA_IN UC SelA, SelB, SelD, WE, MA, MB, MM, FSUF, FW, MW, MD, PL UP 0 1 MUX D BUS de Dados MD Função ASR (B) ASL (B) A–1 A+1 B A–B A+B A FSUF Flags N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C,V Cod. 000 001 010 011 100 101 110 111 PC – Registo de 32 bits Status Register (N,Z,C,V) – Registo de 4 bits  As flags são guardadas no Status Register de acordo com o sinal FW: FW = 0000 Não escreve, FW = 0001 Escreve V, FW = 0010 Escreve C, FW = 0100 Escreve Z, FW = 1000 Escreve N, Etc. CONTROLO DA UC: Tabela I: Micro-operações na UF e UA DA, AA, BA Função Cod. R0 0000 R1 0001 ... ... R15 1111 Const REGISTOS DA UC: 0 1 MUX M Memória de Programa FSUF SB WE Função Não Escreve R[DA] = DATA Cod 0 1 PL1 PL0 00 – Incrementa PC 01 – Salto Incondicional 10 – Salta se Z (Zero) 11 – Salta se N (Negative) CONTROLO DA MEMÓRIA DE DADOS: MW – (0- Não Escreve ou 1- Escreve) Escrita Síncrona e Leitura Assíncrona UNIDADE DE ARMAZENAMENTO: Tabela II: Instruções a Implementar OpCode 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1101 1110 1111 1110 1111 Operação MOV DR, SA MOVI DR, Const ADDI DR, Const SUBI DR, Const NEG DR, SA ADD DR, SA, SB SUB DR, SA, SB ASR DR, SA, SB ASL DR, SA, SB LD DR, SB ST SA, SB BR Offset BR.Z Offset BR.N Offset BR.C Offset BR.V Offset Descrição R[DR]  R[SA] R[DR]  Const R[DR]  R[SA] + Const R[DR]  R[SA] – Const R[DR]  – R[SB] R[DR]  R[SA] + R[SB] R[DR]  R[SA] – R[SB] R[DR]  ASR( R[SB] ) R[DR]  ASL( R[SB] ) R[DR]  M[ R[SB] ] M[ R[SB] ]  R[SA] (PC)  (PC) + Offset Z: (PC)  (PC) + Offset N: (PC)  (PC) + Offset C: (PC)  (PC) + Offset V: (PC)  (PC) + Offset Bits de Estado N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V N, Z, C, V não são alterados não são alterados não são alterados não são alterados não são alterados não são alterados não são alterados Contém 16 registos de 32 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 DE PROPAGAÇÃO: Propagação Setup (escrita) 30ns 20ns 5ns - 240ns - 2ns - ● Descodificador 18ns - ● Controlo de salto 15ns - 200ns 150ns 2ns 1ns Unidade ● UA ● MUX A/B/M/D ● UF ● Zero Fill ● Memórias ● Registos PC/Status
  • 3. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa Nome: MEEC - Arquitectura de Computadores 2011/2012 Nº:____________ 1) [3 Val] Considere a Unidade Funcional da Arquitectura de Ciclo Único. Admita que as operações aritméticas descritas na tabela e seleccionadas por FSUF são implentadas por uma Unidade Aritmética constituida por um somador completo de 32 bits e alguma lógica combinatória adicional para transformar os operandos A e B nas entradas do somador. Esboçe o esquema da unidade aritmética. Utilize o mínimo de lógica combinatória. Nota: A resolução do problema com multiplexers implica uma penalização de 1 val. 2) [1 Val] Considere que pretende implementar um descodificador de instruções com recurso a memória. Indique a dimensão da memória (número e dimensão das palavras de memória). Indique os sinais que deverá colocar dentro da memória.
  • 4. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa Nome: 3) MEEC - Arquitectura de Computadores 2011/2012 Nº:____________ [2 Val] Considere que pretende calcular a frequência máxima de relógio do processador. Esboce um esquema que ilustre qual o caminho crítico, i.e., que restringe o periodo mínimo de relógio. Indique ainda a frequência máxima de relógio (pode apresentar o resultado sob a forma de uma fracção).
  • 5. II – Arquitectura de Ciclo Múltiplo UC Flags CLK Status WE Register MS Unidade de controlo Flags F(Z,N,C,V) StatusBits S(Z,N,C,V) StatusBits Flags DATA MUX S CLK CLK PL TB,BA TD,DA Unidade de WE Armazenam. DATA A PC MEM_DATA PC Const. MA 1 0 AA PC MB A BA MM B Data Dimensão: 32 bits UNIDADE DE ARMAZENAMENTO:   B 0 1 DA  Const. 0 1 CLK IR: Instruction Register IL OPCODE DA AA BA KNS PALAVRA DE INSTRUÇÃO Unidade de processamento CLK TD,DA WE PC: Program counter PL CLK IL CLK UP TB,BA TA,AA Extensão de sinal CLK FW TA,AA 16 registos de uso geral (32 bits) 3 registos auxiliaries (32 bits) para uso ao nível da microprogramação. REGISTOS DE CONTROLO: Address PC – Registo de 32 bits IR – Registo de 32 bits 1 0 MC CLK CL CLK CL Unidade Funcional CAR FSUF FSUF D CLK Z C N O CLK MW WE MEMÓRIA: Flags(3:0) NA MS FW PL IL MC MS TA TB MA MB FSUF MW MM MD TD WE PL IL MC MS TA TB MA MB FSUF MW MM MD TD WE Memória de u-ops STATUS REGISTER: Data_out 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. MEM_DATA (descodificação da u-op e geração dos sinais de controlo) 0 1 MD DATA Sinais de controlo para a UC Program Counter (PC) PL Operação 0 NOP 1 LOAD PC Instruction Register (IR) IL Operação 0 NOP 1 LOAD IR Control Address Register (CAR) CL Operação 0 INC CAR 1 LOAD CAR Sinais de controlo para a UP Jump control (MUX S) MS Saída Operação 0XX0 0 CNT 0XX1 1 JMP 1000 S(Z) JMP.Z 1001 S(N) JMP.N 1010 not S(Z) JMP.NZ 1011 not S(N) JMP.NN 1100 F(Z) TJ.Z 1101 F(N) TJ.N 1110 not F(Z) TJ.NZ 1111 not F(N) TJ.NN Unidade de Armazenamento (UA) TA/TB Saída A Saída B 00 R[AA] R[BA] 01 AR0 AR0 10 AR1 AR1 11 SP SP Unidade de Armazenamento (UA) TD WE Registo de destino XX 0 00 1 R[DA] 01 1 AR0 10 1 AR1 11 1 SP Unidade Funcional (UF) FSUF Operação 0000 A 0001 A+1 0010 A+B 0011 A-B 0100 A-1 0101 -A 0110 not B 0111 A and B 1000 A or B 1001 A xor B 1010 lsl B 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 00h 01h 02h 03h 04h 05h ... 80h 81h ... PL 0 0 0 0 0 0 ... ? ? ... IL 0 0 0 0 0 0 ... ? ? ... MC 0 0 0 0 0 0 ... ? ? ... MS 0001 0001 0001 0001 0001 0001 ... ? ? ... NA 80h 80h 80h 80h 80h 80h ... ? ? ... TA 00 00 00 00 00 00 ... ? ? ... TB 00 00 00 00 00 00 ... ? ? ... TD 00 00 00 00 00 00 ... ? ? ... WE 0 1 1 1 1 1 ... ? ? ... MA 0 0 0 0 0 0 ... ? ? ... MB 0 0 0 0 0 0 ... ? ? ... FSUF 0000 0010 0011 0101 0001 0100 ... ? ? ... FW 0000 1111 1111 1111 1111 1111 ... ? ? ... MM 0 0 0 0 0 0 ... ? ? ... MW 0 0 0 0 0 0 ... ? ? ... MD 1 1 1 1 1 1 ... ? ? ...
  • 6. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa MEEC - Arquitectura de Computadores 2011/2012 Nome: Nº:____________ 4) Considere o fluxograma ASM apresentado, correspondente à instrução “ABC DR,SA,SB”. a) [2 Val] Indique o número de ciclos de relógio necessários à execução da instrução e ainda o valor final dos registos R1, R2 e R3 admitindo que:  no momento inicial R0=0, R1=1, R2=2, R3=3, ...  DR=1,SA=2,SB=3 IR ß M[PC] AR0 ß PC CAR ß CAR + 1 PC ß PC + 1 CAR ß Opcode IF CAR=80h EX0 CAR=81h CAR=? AR1 ß 0 CAR ß 90h ABC CAR=14h AR0 ß R[SA] CAR ß CAR + 1 AR0 ß AR0 – 1 CAR ß 93h if F(N)=1 AR0<0 ABC2 CAR=90h ABC3 CAR=91h TJ.N AR1 ß AR1 + R[SB] CAR ß 91h ABC4 R[DR] ß AR1 CAR ß 80h ABC5 CAR=92h CAR=93h b) [2 Val] Indique o conteúdo da memória de micro-instruções nos endereços 80h, 81h e 91h. Assinale com “X” sempre que o valor seja indiferente. Endereço 80h 81h 91h PL IL MC MS NA TA TB TD WE MA MB FSUF FW MM MW MD
  • 7. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa MEEC - Arquitectura de Computadores 2011/2012 Nome: Nº:____________ III – Assembly 5) Considere o seguinte troço de código, o qual é executado no processador P3. Assim:  A pilha cresce no sentido de endereços decrescentes;  O registo SP aponta para a primeira posição vazia a) [1,0 val] Indique o conteúdo da pilha antes da primeira execução da instrução “RET” (endereço 010Ah). SP_INIT EQU ORIG 0000h 0002h 0003h 0005h 0007h FIM: 0100h 0101h 0102h 0103h 0105h 0106h CALC: 0107h 0108h 0109h 010Ah CUM_SUM: BFFFh 0000h MOV MOV MOV CALL XOR ... PUSH MOV MOV CALL POP RET R1,SP_INIT SP,R1 R2,4 CALC R0,R0 ADD DEC CALL.NZ RET R2,R1 R1 CUM_SUM R1 R1,R2 R2,R0 CUM_SUM R1 b) [1,0 val] Indique o valor dos registos R1 e R2 antes de cada execução das instruções “CALL CUM_SUM” (endereço 0103h), “CALL.NZ CUM_SUM” (endereço 0109h) e “XOR R0,R0” (endereço 0007h).
  • 8. 6) [1,0 val] Considere uma única alteração ao código da alínea anterior, correspondente à introdução da instrução “PUSH R0” entre as instruções com endereço 0100h e 0101h. Indique qual o endereço de retorno da rotina CALC. 7) [2,0 Val] Admita que, tal como no processador P3: a) a tabela de vectores de interrupções (TVI) está armazenada nas posições de memória M[FE00h] a M[FE0Fh], correspondentes às interrupções 0 a 15, respectivamente; b) a máscara de interrupções encontra-se na posição de memória M[FFFAh]. Indique o código assembly que permite associar as interrupções geradas pelo periférico 3 à rotina de tratamento de interrupções INT3. Inclua o código que activa o tratamento das interrupções geradas pelos periféricos 0, 3 e 15.
  • 9. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa Nome: MEEC - Arquitectura de Computadores 2011/2012 Nº:____________ IV – Memória Cache 8) Considere um sistema com endereços de 32-bits e memória cache hierárquica com 3 níveis: L1, L2 e L3. Considere que em todos os níveis os blocos (linhas) são de 8 palavras de 32-bits. L1 L2 L3 Memória 32KB 128KB 2MB 2GB Dimensão total 4 8 16 Número de vias 1ns 4ns 30ns 80ns Tempo de acesso 2% 5% 10% Taxa média de falhas (miss-rate) a) [2 Val] Para cada uma das caches, decomponha a palavra de endereço e indique (sucintamente) para que serve cada campo. b) [1 Val] Para cada caso, indique quantas posições alternativas existem para guardar uma dada palavra na cache. c) [1 Val] Determine o tempo médio de acesso à memória considerando apenas as cache L1 e L2 e a memória (i.e., assuma que remove a cache L3 do sistema).
  • 10. Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico - Universidade Técnica de Lisboa MEEC - Arquitectura de Computadores 2011/2012 Nome: Nº:____________ V – Memória Virtual 9) [1 Val] Considere um processador de 32-bits com o seguinte sistema de memória virtual:  endereços físicos de 36 bits, com uma memória endereçável ao byte;  páginas de 4KB, onde cada entrada na tabela de páginas (ou do directório) tem 32 bits. Assinale a resposta certa a cada uma das seguintes questões. Note que uma resposta errada corresponde a uma penalização de 1/3 na cotação dessa alínea. A. O Directory Page Pointer é:  Um buffer de escrita de instruções em memória.  Uma cache de tradução de endereço virtual em endereço físico.  Um ponteiro para a tabela de directório.  Nenhuma das anteriores. B. Considerando a inexistência de uma TLB, o número de acessos à memória para realizar a tradução de um endereço virtual em endereço físico é:  1  2  3  4 C. Considerando a inexistência de uma TLB, o número de acessos à memória para obter a palavra de memória endereçada é:  1  2  3  4 D. A utilização de uma TLB num sistema de memória virtual permite:  Reduzir o tempo de acesso à memória.  Aumentar a dimensão das páginas de memória.  A partilha de um único espaço de endereçamento físico por diferentes processos.  Aumentar o número de conflitos no acessso à memória entre diferentes processos. E. Considere que durante a tradução de endereço virtual em endereço físico, ocorre uma falha no acesso a uma página. Considerando que a página é inválida, o sistema de memória virtual vai:  Carregar a página do disco rígido para memória RAM.  Terminar abruptamente o programa com indicação de “segmentation fault”.  Ler uma palavra de memória da próxima página válida em memória.  Usar o endereço virtual para endereçar directamente a memória física. F. O sistema de memória virtual é implementado por:  Processador  Sistema Operativo  Processador e Sistema Operativo  Processador, Sistema Operativo e pelos diferentes processos (programas).