Escolar Documentos
Profissional Documentos
Cultura Documentos
1. (3,0 pontos) Imagine que você foi contratado(a) para criar um programa em linguagem de montagem
para um sistema de folha de pagamento de uma empresa. Esse programa deve calcular o ganho total
de cada funcionário com base em diferentes componentes, como o ganho bruto, um bônus, um teto
salarial e um ganho adicional.
O cálculo do ganho total, a ser armazenado no endereço 19, é definido pela expressão:
iv. Some o valor do registrador ao valor no endereço 18. O resultado deve ser armazenado
no endereço 19.
2. (4,0 pontos) Considere que a máquina da Questão 1 tenha palavras de 16 bits. Lembre-se que há 8
(oito) operações no conjunto de instruções (tabela da questão anterior) e uma instrução possui um
código de operação e um operando, que indica um endereço da memória principal. Ao longo desta
questão, assuma que os operandos das instruções conseguem acessar qualquer palavra de memória.
Responda:
a. (0,5 ponto) Suponha que cada instrução (isto é, código e operando) faça uso completo de uma
palavra de memória, e que utilize o número mínimo de bits para armazenar o código de
instrução, sendo o restante usado para armazenar o operando. Indique o tamanho do REM
(utilizado para enviar endereços no barramento de endereços).
Código de operação terá o tamanho necessário para atender 8 instruções
Código de operação = 3bits
Tamanho da intrução = código de operação + operando
Operando = tamanho da instrução – código de operação = 16 -3 = 13 bits
O operando indica um endereço da memória principal, tem o tamanho em bits necessário para
endereçar qualquer posição de memória, assim, podemos concluir que
REM = BE = operando = 13 bits
b. (0,5 ponto) Indique o tamanho do RDM (utilizado para enviar e receber dados para/de o
barramento de dados) supondo que cada acesso à memória obtém uma palavra completa.
c. (0,5 ponto) Qual o tamanho máximo que a memória pode ter, em bytes, supondo que a palavra
seja a menor unidade endereçável? (pode deixar as contas indicadas)
e = BE = REM = 13 bits
N (quantidade de células) = 2^e = 2^13 = 8K células
M (quantidade de bits por célula) = palavra, já que é a menor unidade endereçavel = 16bits/célula
e. (0,5 ponto) Qual o tamanho do CI (contador de instrução, utilizado para indicar o endereço da
próxima instrução a ser lida da memória) ?
f. (1,0 ponto) Suponha que agora haja 16 possíveis operações, com as mesmas condições
exploradas nos itens anteriores. Calcule os novos valores de REM, RI e CI.
OBS: as condições anteriores podem ser entendidas como manter o tamanho da instrução ou manter o
tamanho do operando, assim, serão aceitos qualquer uma das soluções abaixo
Com barramento de dados menor, uma quantidade maior de acessos à memória é necessária
para obter uma instrução, tornando mais lento a execução de um programa.
3. (2,0 pontos) Considere uma máquina que pode ter seu ciclo de busca e execução de uma instrução
dividido em 5 estágios: Busca (BI), Decodificação (DE), Execução (EX), Leitura de Dados (LD) e
Escrita de Resultado (ER). Cada um dos estágios BI e ER possui a duração de 8 ns e cada estágio DE,
EX e LD tem duração de 4 ns. Cada instrução desta máquina precisa executar os 5 estágios.
a. (0,5 ponto) Uma implementação desta máquina, no modelo sequencial, sem pipeline, foi
realizada de modo que cada instrução deve ser completamente realizada em um único ciclo de
relógio e uma instrução só começa a ser realizada após o término da anterior. Calcule a duração
do ciclo de relógio que esta implementação deve possuir. Lembre-se que todas as instruções
necessitam dos 5 estágios.
No pipeline, todos os estágios deverão ter o mesmo tempo de execução, sendo adotado o de maior
tempo = 8ns, Testg = 8ns = ciclo de relógio
Tempo para execução instruções extras. As instruções são executadas sequencialmente (uma depois da
outra) levando cada uma um ciclo de relógio . Textra = 2 x ciclo = 2 x 8ns = 16ns
Tempo total para execução de N instruções em pipeline = Textra + Tinst + (N -1) Testg
= 16ns + 40ns + (N -1) 8ns = 56ns + 8ns N – 8ns => Texc_pip = ( 8 N + 48 )ns
c. (0,5 ponto) Mostre o tempo em que um programa que contenha 2 instruções será executado
pela implementação do item a e do item b. Considere que estas 2 instruções podem ser
executadas em fluxo constante.
Para N = 2
Na máquina do item a
Texc_seq = ( 28 N ) ns = 28 x 2 = 56 ns
Na máquina do item b
Texc_pip = ( 8 N + 48 ) ns = 8 x 2 +48 = 64ns
d. (0,5 ponto) Calcule o mínimo de instruções que um programa deve ter para que o tempo de
execução do programa com o pipeline do item 'b' seja menor ou igual ao tempo da máquina
sem pipeline do item 'a'.
Texc_pip ≤ Texc_seq
Para ser vantajoso a máquina do item b deverá executar programas igual ou maior que 3
instruções
No topo da pirâmide temos os registradores, que são pequenas unidades de memória que armazenam
dados dentro do núcleo da UCP. Os registradores são dispositivos de maior velocidade com tempo de acesso em
torno de 1 ciclo de memória, possui a menor capacidade de armazenamento e também o menor tempo de
armazenamento.
Em um nível abaixo temos a memória cache, cuja função é acelerar a velocidade de transferência das
informações entre UCP e a memória principal (MP), aumentando, assim, o desempenho do sistema. A UCP
procura informações primeiro na cache e caso não as encontre, estas serão transferidas da MP para a cache. A
cache possui tempo de acesso menor que a da MP, embora seja superior aos dos registradores. A capacidade da
cache é bem inferior à da MP, mas possui um tamanho capaz de armazenar uma apreciável quantidade de
informações. O tempo de permanência do dado é menor do que o tempo de duração do programa a que pertence.
Abaixo da memória cache temos a memória básica de um sistema de computação, que é a memória
principal (MP). A MP armazena e disponibiliza o programa (e seus dados) à UCP para que este, durante a
execução, busque instrução a instrução. A MP é mais lenta que a cache e mais rápida que a memória secundária,
possui capacidade bem superior à da cache e os dados ou instruções permanecem na MP enquanto durar a
execução do programa.
b. (0,5 ponto) Explique o conceito de cache e como ele se relaciona à hierarquia de memória.
Descreva a função principal do cache e como ele ajuda a melhorar o desempenho do acesso à
memória.