MICROPROCESSADORES 2º TESTE - A Ano Lectivo: 2005/2006 Data: 8 de Maio de 2006 Ano Curricular: 1º Ano 2º Semestre Duração: 2h00 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). 3. Responda no espaço delimitado a seguir a cada questão. 4. Utilize o verso da página, onde se encontra a pergunta, para rascunho ou para espaço adicional. 5. A não entrega do teste tem o mesmo significado da não comparência ao teste. 1 de 6
I - Unidade de Controlo de Ciclo Múltiplo 1. [4 Val] Analise a arquitectura apresentada e assinale a resposta correcta em cada alínea: a) O registo IR é utilizado para guardar. os operandos imediatos; a instrução a ser executada; os operandos do CAR; os dados do programa. b) O registo PC é utilizado para guardar um/uma para acesso à memória de. endereço, controlo; endereço, instruções e dados; instrução, instruções e dados; instrução, controlo; c) Os microprogramas que implementam o conjunto de instruções assembly do computador são guardados na memória: de programa; de instruções e dados; de controlo; CAR. d) O endereçamento dos registos da unidade de armazenamento é realizado com recuso a 4 bits. A presente unidade de armazenamento é composta por registos, podendo o programador aceder apenas a registos directamente através das instruções. 9, 3; 9,8; 16, 3; 16,8; e) Na arquitectura apresentada, os operandos imediatos podem assumir valores entre e. -32, 31; 0, 63; 0,7; -4,3. f) Na arquitectura apresentada, o deslocamento associado a uma instrução de salto pode assumir valores entre e. -32, 31; 0, 63; 0,7; -4,3. g) Na arquitectura apresentada, a memória de instruções e dado tem como dimensão máxima palavras de bits. 2^8, 16; 2^16, 16; 2^9; 8 2^16, 8; h) Na arquitectura apresentada os microprogramas para implementação de uma instrução tem início (1ª microinstrução) num endereço até e as restantes microinstruções podem estar localizadas em/na parte da memória. 127, qualquer; 255, qualquer; 255; restante 127, restante; 2 de 6
2. Considere o seguinte formato para as microinstruções e a gama de valores, para os sinais de controlo, descrita nas tabelas apresentadas. a) [2 Val] Complete as linhas da memória de controlo de modo a definir o conjunto de micro-instruções (IF, EX0,...) necessárias à execução das seguintes instruções (utilize notação simbólica): Instrução SUB DR, SA, SB ADI DR, SA, Constante ST SA, SB LD DR, SA NOT DR, SA Descrição (DR) (SA)-(SB) (DR) (DR)+Constante M[(SA) (SB) (DR) M[(SA)] (DR) NOT (SA) Conteúdo parcial da memória de controlo: Endereço NA* MS MC IL PI PL TD** TA** TB** MB FS MD RW MM MW IF EX0 NXT NXA LDI INP NLP --- --- --- --- ------------ --- NW PC NW EX0 --- NXT OPC NLI NLP NLP --- --- --- --- ------------ --- NW --- NW SUB IF NXT NXA NLI NLP NLP DR SA SB REG A-B FU WR --- NW ADI ST IF LOAD MC NL NI NL DR SA SB RG A+B FC WR -- NW LD IF LOAD MC NL NI NL -- SA SB -- -- -- SW -- NW NOT IF LOAD MC NL NI NL -- SA SB -- -- -- NW RG WR *NA = Next Address (utilizar mnemónica para indicar o próximo endereço) **Nos campos TD, TA e TB indique se utiliza o registo auxiliar R8 ou o registo indicado na instrução. 3 de 6
b) [4 Val] Considere a instrução de multiplicação e desenvolva o microprograma correspondente segundo uma implementação da multiplicação por somas sucessivas. Apresente um fluxograma ASM correspondente à sua concretização e escreva o microprograma correspondente à sua execução. MUL DR, SA, SB ; Multiplicação (DR) < (SA) + (SA) + + (SA), soma com (SB) termos. FLUXOGRAMA ASM Conteúdo parcial da memória de controlo: (MICROPROGRAMA) Endereço NA* MS MC IL PI PL TD TA TB MB FS MD RW MM MW IF EX0 NXT NXA LDI INP NLP --- --- --- --- ------------ --- NW PC NW EX0 --- NXT OPC NLI NLP NLP --- --- --- --- ------------ --- NW --- NW * NA = Next Address (utilizar mnemónica para indicar o próximo endereço) 3. [2 Val] A arquitectura apresentada não permite a programação com recurso a subrotinas. Descreva, sucintamente, como poderia alterar a corrente arquitectura, minimizando o hardware adicional, de forma a permitir a utilização de subrotinas. Indique também quais as consequências dessa alteração ao nível da unidade de controlo? 4 de 6
II Arquitectura de uma CPU CISC L 1. [2 Val] Considere a arquitectura CISC apresentada e assinale a resposta correcta em cada alínea: a) Na arquitectura CISC apresentada qual a finalidade do bloco Instruction Decoder : Gerar sinais de controlo para a UP e UC Gerar endereço para acesso à memória de controlo Gerar endereço de acesso a subrotina Gerar offset para instrução de salto b) Na arquitectura CISC apresentada qual a finalidade do registo MSTS: Programação Endereçamento de Memória Microprogramação Guardar Microinstrução c) Na arquitectura CISC apresentada qual a finalidade do registo SBR: Guardar o endereço de retorno de uma subrotina Guardar o endereço de retorno de uma microsubrotina Guardar o endereço de acesso a uma subrotina Guardar o endereço de acesso a uma microsubrotina d) Na arquitectura CISC apresentada o stack ou pilha é utilizado para: Apontar para uma posição de memória Guardar microinstruções em execução Armazenar informação durante a execução do prog. Apontar para a próxima instrução a ser executada 5 de 6
III Arquitectura do Conjunto de Instruções 1. [2 Val] Assinale a resposta correcta em cada alínea: a) Comparativamente, uma arquitectura RISC possuí mais e menos do que uma arquitectura CISC. Modos de Endereçamento/Registos na UA Registos na UA/Modos de Endereçamento Registos na UA/ Memórias de Dados Modos de Endereçamento/Memórias de Dados b) Numa Unidade de Controlo a utilização de microrotinas permite minimizar ou reutilizar o código associado à execução de complexas. hardwired/instruções microprogramada/micro-instruções microprogramada/instruções hardwired/ micro-instruções c) O endereço efectivo corresponde à localização do de uma instrução indicado pelo(s) associado(s) a essa instrução. registo/código de operação modo de endereçamento/sinais de controlo operando/modo de endereçamento código de operação/registos d) Na utilização do modo de endereçamento o operando encontra-se. indirecto/num registo imediato/na instrução por registo/em memória directo/num registo 2. [4 Val] Complete a tabela de instruções considerando que cada instrução se executa isoladamente e tendo sempre como referência os conteúdos dos registos e memória indicados. Mais, o prefixo h (hexadecimal) e b (binário) são utilizados para indicar o sistema de numeração utilizado em cada caso. Registos Memória Registos Conteúdo Endereço Conteúdo R1 1020h 1020h 00A7h R2 1021h 1021h 1023h PC 1000h 1022h 00ADh SP 1025h 1023h 1026h FLAGS (ZNCV) 1000b 1024h 0000h 1025h 0071h 1026h 0012h Instrução Modo de Endereçamento R1 R2 PC SP Endereço efectivo PUSH R1 Registo -- -- 1001h 1024h R1 OR R1, M[R2] Registo Indirecto 1023h -- 1001h -- 1021h AND R2, 1000h Imediato -- 1000h 1001h -- Instrução BRZ 1024H Directo -- -- 1024h -- 1024h ADD R2, M[R1 + 03h] Indexado -- 2047h 1001h -- 1023h MOV R1, M[M[R1 + 01h]] Indexado Indirecto 1026h -- 1001h -- 1023h CALL 20h Relativo -- -- 1020h 1024h 1020h POP M[R1] Registo Indirecto -- -- 1001h 1026h 1020h Nota: nas instruções com 2 operandos explícitos, considere que o primeiro é o de destino e, se estas instruções implementarem operações lógicas ou aritméticas, o operando é, simultaneamente, de origem. Por exemplo, AND R1, R2 corresponde a (R1) < (R1)+(R2). 6 de 6