Buscar

Prova 1 2017/2 arquitetura de computadores 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de Computação 
Disciplina de Arquitetura de Computadores II – 2017 / 2 
Professora: Débora Matos 
 
Prova 1: Leia com atenção: Leia atentamente cada questão. A interpretação faz parte da prova. A prova é 
individual e sem consulta. A prova está contabilizada em 10 pontos. 
 
Nome: ___________________________________________________________________ 
Questão 1: (0,6) Verifique as sentenças abaixo: 
I. Os compiladores têm como função transformar um código descrito em uma linguagem de mais alto nível 
para uma linguagem de mais baixo nível para que, assim, o mesmo possa ser executado pelo 
processador. Um exemplo dessa etapa ocorre na tradução de um programa descrito em C para linguagem 
binária. 
II. Um programa descrito em linguagem interpretada tem como vantagem que, uma vez traduzido, gera um 
executável que pode ser executado em qualquer máquina com arquitetura compatível ao processador 
onde foi traduzido. 
III. Assembly é uma linguagem de programação de mais baixo nível composta por instruções mais simples 
que realizam apenas uma operação por vez. Já o assembler é o montador que transforma o assembly no 
código binário que será executado pela máquina. 
IV. Um carregador ou loader é um software responsável por alocar espaço de memória para um programa. 
Além disso, é função desse software a resolução dos endereços simbólicos a endereços físicos e a carga 
do programa na memória. 
V. Assembly é uma linguagem de programação que pode ser gerada a partir de um programa que já foi 
descrito nesse nível ou o mesmo pode ser obtido a partir da compilação de um programa implementado 
em uma linguagem de mais alto nível. Sendo assim, assembly é uma linguagem de programação que 
precisa ser compilada para ser executada. 
 
Marque a alternativa que apresenta todas as sentenças corretas: 
a) ( ) I e V; 
b) ( ) I, II e III; 
c) ( ) II, III e IV; 
d) ( ) III e IV; 
e) ( ) II, IV e V. 
Questão 2: (0,6) Sobre as etapas de compilação, verifique as sentenças a seguir: 
I. A análise léxica é a primeira fase de um processo de compilação e sua função é fazer a leitura do 
programa fonte caractere a caractere e agrupá-los em lexemas; 
II. A etapa final da análise léxica consiste em produzir uma sequência de símbolos léxicos que são 
conhecidos como tokens. Um token é um símbolo que representa a unidade léxica como, por exemplo, 
palavras reservadas; identificadores; números, etc. 
III. A análise semântica trata a entrada sintática e a transforma em uma representação mais simples. Além 
disso, essa camada também é responsável por analisar os identificadores e realizar a ligação de cada um 
deles a sua declaração. 
IV. A análise semântica é a etapa que verifica se cada expressão definida tem um tipo adequado, conforme as 
regras próprias da linguagem. Por exemplo, nessa etapa é que serão verificadas se as declarações de 
cada variável utilizada em uma expressão podem ser satisfeitas (exemplo: uso de int, floats, char, dentre 
outros). 
V. A análise sintática valida às regras conforme a sintaxe da linguagem de programação. Nesta etapa, os 
tokens são agrupados de acordo com a estrutura sintática da linguagem, gerando uma árvore de 
derivação. 
 
Marque a sentença que apresenta todas as alternativas que estão INCORRETAS: 
a) ( ) Apenas as alternativas I e V estão incorretas; 
b) ( ) Apenas as alternativas III e IV estão incorretas; 
c) ( ) Apenas a alternativa IV está incorreta; 
d) ( ) Todas as alternativas estão incorretas; 
e) ( ) Nenhuma alternativa está incorreta. 
 
Questão 3: (0,6) Sobre softwares de sistemas e suas partes, verifique as sentenças a seguir: 
I. Graças aos linkers, é possível alterar parte do programa e compilar apenas o procedimento alterado. Com isso, o 
linker fará a ligação do procedimento ao programa de forma independente, evitando a recompilação de todo o 
programa novamente. 
II. Um interpretador alterna ações de tradução e execução, já o compilador atua exclusivamente na tradução do 
programa fonte e não na execução. 
III. Uma subrotina é caracterizada por um desvio para a execução de instruções em outra posição e um retorno de onde a 
mesma foi chamada no programa. É uma prática comum nas construções de subrotinas o uso de pilhas para salvar o 
contexto de registradores antes da execução das instruções referentes à subrotina. 
IV. Subrotinas são conjuntos de instruções pré-definidas que são chamadas no programa, semelhantemente a chamada 
de funções em biblioteca e, portanto, não precisam ser descritas no programa. 
V. Na chamada da subrotina, sempre deve ser fornecido o endereço de memória onde a subrotina foi armazenada. Em 
assembly significa que haverá uma instrução de chamada da subrotina e o retorno deve ser sempre realizado com 
uma instrução do tipo jump para o endereço de início para a subrotina. 
 
Marque a sentença que apresenta todas as alternativas que estão INCORRETAS: 
a) ( ) Apenas as alternativas II e III; 
b) ( ) Apenas as alternativas III e IV; 
c) ( ) Apenas as alternativas I e V; 
d) ( ) Apenas as alternativas IV e V; 
e) ( ) Todas as alternativas estão incorretas. 
Questão 4: (0,6) Sobre os processadores RISC e CISC, analise as sentenças abaixo: 
I. Os processadores CISC possuem uma lógica de decodificação complexa devido à falta de padronização das 
instruções, já que variam muito com relação ao número de bytes utilizados. Além disso, estes processadores 
apresentam muitos modos de endereçamento, podendo apresentar modos que requerem vários acessos à memória; 
II. Os processadores CISC possuem um número considerável de registradores de propósito específico e geral. Sendo 
assim, além dos registradores definidos para uso do programador, a organização interna apresenta registradores 
intermediários necessários para armazenar os dados ao longo do caminho de dados entre os componentes da unidade 
operativa; 
III. Os processadores RISC, ao contrário dos processadores CISC, apresentam hardware específico para atenderem a 
algumas instruções que são inseridas na ISA para que a compatibilidade possa ser mantida; 
IV. Os processadores RISC possuem um conjunto de instruções enxuto, com tempos de execução semelhantes entre as 
instruções, baixa capacidade de endereçamento com acessos a memória e regularidade na decodificação das 
mesmas. 
V. Os processadores CISC podem apresentar instruções que levam muitos ciclos de clock, porém são projetados para 
que possam ser implementadas técnicas de paralelismo, como, por exemplo, o uso de pipeline, onde cada instrução 
atua sobre uma unidade operacional diferente em um mesmo ciclo de clock. 
 
Marque a sentença que apresenta todas as alternativas que estão CORRETAS: 
a) ( ) I e III; 
b) ( ) II e IV; 
c) ( ) I e IV; 
d) ( ) II e V; 
e) ( ) I, IV e V. 
Questão 5 (1,6): Sobre a técnica de pipeline, responda as seguintes questões: 
a) (0,5) Explique o funcionamento desta técnica. 
 
 
b) (0,5) É verdade dizer que com a técnica de pipeline uma instrução é executada mais rapidamente do que se a mesma 
tivesse toda a organização do processador disponível apenas para a sua execução. Justifique sua resposta: 
 
 
c) (0,6) Apresente exemplos de instruções e o que acontece em cada ciclo de clock para cada uma delas quando 
aplicada a técnica de pipeline. (Para melhor responder a questão, podem ser descritos/desenhados os módulos da 
unidade operativa e/ou descrever as etapas de execução de cada instrução). 
 
Questão 6 (1,6 – 0,4 cada): Para cada sentença a seguir, indique se a mesma corresponde a uma vantagem ou desvantagem 
(ou se há vantagens e desvantagens) e comente porque. Além disso, marque se é uma característica que se refere a 
compiladores ou a interpretadores: 
a. Geram arquivos executáveis, permitindo mais autonomia e segurança do código fonte. 
( ) Compilador ( )Interpretador 
 
 
b. Depuração do programa é mais simples. 
( ) Compilador ( ) Interpretador 
 
 
c. Apresenta várias etapas de tradução. 
( ) Compilador ( ) Interpretador 
 
 
d. Necessário fornecer o programa fonte quando há necessidade de execução em um processador diferente. 
( ) Compilador ( ) Interpretador 
 
 
Questão 7 (0,8): Sobre a linguagem Java, descreva sucintamente as etapas de compilação e interpretação em que um 
programa implementado em Java precisa percorrer até a sua execução: 
 
 
 
Questão 8 (1,2): Abaixo tem a descrição de um programa descrito para o processador Ramses. Considere que a nota da 
primeira área de Arquitetura de Computadores II será a média da nota do trabalho com a nota da prova (neste caso, trabalho e 
prova possuem o mesmo peso). A nota do trabalho está em um vetor a partir da posição 140 e a nota da prova está em um 
vetor a partir da posição 170. Considere que a ordem das notas dos alunos tem o mesmo aluno em cada posição do vetor. A 
média final deve ser inteira e salva a partir da posição 200, mas apenas para alunos que possuem até 4 faltas. Aqueles que 
possuem mais de 4 faltas devem ficar com nota zero. As faltas totais de cada aluno constam a partir da posição 230 (é definida 
uma posição para cada aluno com o total de faltas). 
Verifique se o programa tem algum erro, se sim, indique-o e apresente um possível mapa de memória para o programa. 
retorna: LDR B 139 
 JZ fim 
 SUB B #1 
 STR B 139 
 ADD X #1 
 LDR A 229,X 
 SUB A #4 
 JN continua 
 JZ continua 
 JMP zera 
continua:LDR A 139,X 
 ADD A 169,X 
 SHR A 
 STR A 199,X 
 JMP retorna 
fim: HLT 
 
zera: LDR A #0 
 STR A 199,X 
 JMP retorna 
 
 
 
 
Questão 9 (1,2): O programa abaixo foi descrito para o processador Cesar. Indique qual a função do mesmo. 
 MOV #65498, R3 
 MOV #65500, R1 
 MOV #65499, R2 
 MOV #65535, R5 
 MOV R1, R4 
 CLR (R3) 
espera: 
 TST (R3) 
 BEQ espera 
 MOV 65499, (R1) 
jmp_rig: 
 INC R1 
 MOV (R2), (R1) 
 MOV #32, (R4) 
 INC R4 
 DEC (R2) 
 CMP (R2),#47 
 BNE pula 
 MOV #57, (R2) 
pula: MOV #60, R3 
ag: SOB R3, ag 
 CMP R1, #65535 
 BNE jmp_rig 
 BR jmp_left 
jmp_left: 
 DEC R1 
 MOV (R2), (R1) 
 MOV #32, (R4) 
 DEC R4 
 DEC (R2) 
 CMP (R2),#47 
 BNE pula2 
 MOV #57, (R2) 
pula2: MOV #60, R3 
ag2: SOB R3, ag2 
 CMP R1, #65500 
 BNE jmp_left 
 JMP jmp_rig 
 
Questão 10 (1,2): O programa abaixo foi descrito conforme as instruções do Ramses. A função do programa é identifica 
números ímpares e negativos ao mesmo tempo. No entanto há 2 situações que precisam ser identificadas: (1) a primeira delas 
é um erro que compromete o funcionamento do programa. O segundo (2) é uma parte do programa desnecessária, mas que 
não compromete o resultado. Indentifique-os considerando o mapa de memória informado na sequência, indicando no 
programa as situações (1) e (2). 
 LDR A #0 
 STR A 129 
volta: LDR A 130,I 
 JN cont_teste 
proximo: LDR A 130 
 ADD A #1 
 STR A 130 
 LDR B 131 
 SUB B #1 
 STR B 131,I 
 JZ fim 
 JMP volta 
cont_teste: SHR A 
 JC cont_teste2 
 JMP proximo 
 
cont_teste2: LDA B 129 
 SUB B #2 
 JMP contabiliza 
 
contabiliza: LDR B 129 
 ADD B #1 
 STR A 129 
 JMP proximo 
fim: HLT 
Mapa de memória de dados questão 7: 
Endereço Dado 
129 0 
 130 133 
131 10 
133 131 
134 4 
135 1 
136 255 
137 250 
138 5 
139 0 
140 125 
141 121 
142 252 
143 247 
144 13 
145 251

Continue navegando