Você está na página 1de 8

Curso de Tecnologia em Sistemas de Computação

Disciplina: Organização de Computadores


GABARITO DA AP1 do 2° semestre de 2016.

1. (2,0) Suponha que você deve projetar uma máquina com as seguintes especificações:

• Capaz de endereçar 256 M células de memória principal, sendo que cada célula armazena
2 bytes.
• Deve possuir os registradores RDM (utilizado para enviar e receber dados para/de o
barramento de dados), REM (utilizado para enviar endereços no barramento de
endereços), CI (utilizado para indicar o endereço da instrução a ser lida da memória) e RI
(utilizado para armazenar uma instrução).
• Cada instrução deve conter um código de operação e um operando como mostrado
abaixo:

Cód. Operando
Oper
onde Operando é um endereço da memória principal.
• Deve poder ter um máximo de 16 códigos de operação diferentes.

a) (0,2) Indique qual deve ser o tamanho mínimo em bits do REM


Memória com 256M células => N = 256M células
tamanho mínimo do REM será o tamanho do barramento de endereços necessário
para endereçar toda a memória.
Barramento de endereços (BE) = log2 N = log2 256M = 28 bits
REM = tamanho do BE = 28 bits

b) (0,2) Indique qual deve ser o tamanho mínimo em bits do do barramento de endereços.
tamanho do BE = 28 bits

c) (0,4) Calcule o número de células que uma instrução necessita para ser armazenada.
Cada instrução = código de operação + 1 operando
1o.. operando = endereço de uma célula = 28 bits
cod.operação = tamanho necessário para 16 códigos diferentes = 4 bits
tamanho da instrução = 4 + 28 = 32 bits

d) (0,6) Indique o tamanho do RDM e do barramento de dados de modo que a Unidade


Central de Processamento obtenha uma instrução da memória principal realizando
somente um acesso à memória principal.
RDM = barramento de dados = tamanho necessário para transferir uma instrução
RDM = barramento de dados = 32 bits (2 células).

e) (0,6) Calcule a capacidade de armazenamento em bits dos registradores RI e CI,


utilizando-se os valores calculados nos itens anteriores.
CI = tamanho necessário para endereçar toda a memória = 28 bits
RI = tamanho necessário para uma instrução = 32 bits
2. (2,0) Considere uma máquina que possa endereçar 512 Mbytes de memória física,
utilizando endereço referenciando byte, e que tenha a sua memória organizada em blocos
de 16 bytes. Ela possui uma memória cache que pode armazenar 4K blocos, sendo um
bloco por linha (ou quadro). Mostre o formato da memória cache, indicando os campos
necessários (tag, bloco) e o número de bits para cada campo, e o formato de um endereço
da memória principal, indicando os bits que referenciam os campos da cache, para os
seguintes mapeamentos:

a) Mapeamento direto.

Memória Principal
• Tamanho da memória (em bytes) = 512Mbytes, como cada célula contém 1 byte, temos, então, N = 512M
células
• A MP está organizada em blocos de 16 células (K=16 células)
• N = 512M células e K = 16 células / bloco, o total de blocos da MP ( B ) será:
Total de blocos: B = N / K => B = 512M células / 16 células/bloco => B = 32 M blocos

Memória Cache
OBS: O K (quantidade de células/bloco) tem de ser igual a MP.
• Tamanho da memória cache (em blocos ou linhas) => Q = 4K blocos
• Tamanho da memória cache em células = Q x K = 4K blocos x 16 células/blocos = 64 Kcélulas
(64Kbytes)

Memória principal
512M células: N Organização da cache
32M blocos: B linha válido tag Conteúdo (bloco)
0 1 bit 13 bits 16 células de 8 bits cada = 128bits
1
2
3
4
5
…...
Q-2
Q-1
Para endereçarmos toda a MP precisamos da seguinte quantidade de bits ( E )
sendo N = 2E => N = 512M células => N = 229 => E = 29 bits

Tamanho do endereço da MP = 29 bits

13 12 4

Corresponde ao endereço da célula no bloco:


Corresponde a tag: 16 células por bloco = 24
tag = B / Q = 32M / 4K = 8K = 213 palavra = 4 bits
tag = 13 bits
Corresponde ao nº da linha:
Q = 4K linhas ou quadros (máximo) => 212
b) Mapeamento totalmente associativo. linha = 12 bits

Memória Principal
=> N = 512M células
=> K = 16
=> B = 32 M blocos

Memória Cache
OBS: O K (quantidade de células/bloco) tem de ser igual a MP.
=> Q = 4K blocos
=> Tamanho da memória cache = 4Kblocos = = 64 K células

Memória principal
512M células: N Organização da cache
32M blocos: B linha válido tag Conteúdo (bloco)
0 1 bit 25 bits 16 células de 8 bits cada = 128bits
1
2
3
4
5
…...
Q-2
Q-1
Tamanho do endereço da MP = 29 bits

25 4

Corresponde ao endereço da célula no bloco:


Corresponde ao bloco da MP: 16 células por bloco = 24
tag = B = 32M = 225 palavra = 4 bits
tag = 25 bits
c) Mapeamento associativo por conjunto, onde cada conjunto possui duas linhas,
cada uma de um bloco.

Memória Principal
=> N = 512M células
=> K = 16
=> B = 32 M blocos

Memória Cache
OBS: O K (quantidade de células/bloco) tem de ser igual a MP.
=> Q = 4K blocos
=> Tamanho da memória cache = 4Kblocos = 64 K células
=> 1 conjunto = 2 linhas (ou quadros) => Total de conjuntos ( C ) = 4K blocos / 2 => C = 2K conjuntos

Memória principal
512M células: N Organização da cache
32M blocos: B Conjunto linha válido tag Conteúdo (bloco)
0 0 1 bit 14 bits 16 células de 8 bits cada = 128bits
1
1 2
3
2 4
5
…...
C-1 Q-2
Q-1

Tamanho do endereço da MP = 29 bits


14 11 4

Corresponde a tag: Corresponde ao endereço da célula no bloco:


B / C = 32M / 2K = 16K = 214 16 células por bloco = 24
tag = 14 bits palavra = 4 bits

Corresponde ao nº do conjunto da memória cache:


C = 2K conjuntos (máximo) => 211
conjunto = 11 bits

3. (2,5) Considere uma máquina que pode ter seu ciclo de busca e execução de uma
instrução dividido em 5 estágios totalmente independentes: 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 5 ns e cada estágio DE, EX e LD tem duração de 2
ns. Cada instrução desta máquina precisa executar os 5 estágios.

a) (0,5) Uma implementação desta máquina 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.
1º. Estágio 2º. Estágio 3º. Estágio 4º. Estágio 5º. Estágio

BI DE EX LD ER
5ns 2ns 2ns 2ns 5ns

O ciclo de relógio deverá ter o tempo de 16ns (5ns + 2ns + 2ns + 2ns + 5ns)

b) (0,5) Como cada estágio é independente um do outro, implementou-se uma nova


arquitetura utilizando-se um pipeline de 5 estágios. Calcule a duração do ciclo de
relógio que a implementação pipeline deve ter. Considere que qualquer estágio do
pipeline deve poder ser realizado em um único ciclo de relógio.

1º. Estágio 2º. Estágio 3º. Estágio 4º. Estágio 5º. Estágio
5ns 5ns 5ns 5ns 5ns
BI DE EX LD ER

Ciclo de relógio será igual ao tempo do estágio


com maior tempo de execução = 5ns

c) (1,0) Mostre o tempo em que um programa que contenha 100 instruções será
executado pela implementação do item a e do item b. Considere que estas 100
instruções podem ser executadas em fluxo constante.
Seja Tex = tempo de execução de uma instrução = número de estágios x ciclo de
relógio (determinado nos itens anteriores)
Para o item a (sem pipeline) :
Tex = 1 estágio de 16ns = 16ns
Ttotal = 100 instruções x Tex = 1600 ns

Para o item b (pipeline: 5 estágios) :


Tex = 5 estágios de 5ns cada = 25ns
Ttotal = Tex + 99 x tempo de 1 estágio
Ttotal = 25ns + 99 x 5ns = 520 ns
4. (1,5) A tabela abaixo descreve detalhadamente todos os passos para execução da
instrução STR Op., indicando como o Registrador de Instrução (RI), Contador de
Instrução (CI), Acumulador (ACC), Registrador de Dados da Memória (RDM),
Registrador de Endereços da Memória (REM), Unidade Aritmética Lógica (UAL) e
Barramento de controle, de dados e de endereços são utilizados na execução desta
instrução. Lembre-se que a instrução STR Op., quando executada, carrega o conteúdo do
Acumulador na memória cujo endereço é Op..

STR Op
1 CI <- CI + 1

2 RI <- (CI)

3 recebe os bits do código de operação

4 produz sinais para a execução da operação de escrita

5 A UC emite sinais para que o valor do campo operando = Op seja


transferido para a REM

6 Conteúdo do Acumulador (ACC) é transferido para RDM (RDM ← ACC)

7 A UC ativa a linha WRITE do barramento de controle

8 O REM passa o conteúdo para o barramento de endereços

9 O RDM passa o conteúdo para o barramento de dados

10 A memória grava o dado recebido no endereço que consta do


barramento de endereços
Os números da coluna da esquerda representam a ordem em que são realizados cada um
dos passos na execução da instrução STR Op.. No entanto, a ordem dos passos pode não
estar correta. Baseado na tabela acima e nas 3 afirmações abaixo, assinale a opção correta:

Afirmações

I O passo 2 deveria acontecer antes do passo 1.


II O passo 4 deveria acontecer antes do passo 3.
III O passo 9 deveria acontecer antes do passo 8.
a) As afirmações I e III estão corretas
b) Apenas a afirmação II está correta
c) Nenhuma das afirmações estão corretas
d) As afirmações I e II estão corretas
e) Apenas a afirmação I está correta

5. (2,0) Explique a função de cada um dos seguintes barramentos vistos em aula:


barramento de dados, barramento de endereços e barramento de controle

• Barramento de dados interliga a CPU à Memória principal. Trafegam ali os


dados ou instruções da memória para a CPU (processo de leitura em MP) ou da
CPU para a memória (processo de gravação em MP).

• Barramento de endereços interliga a CPU à Memória principal. Trafegam ali os


endereços originados da CPU para a memória principal, sendo essa
transferência unidirecional.

• Barramento de Controle interliga a CPU com diversos componentes do sistema


computacional, como a MP e o chipset. Trafegam ali os sinais de controle como:
leitura, escrita, wait, clock, IRQ, entre outros.

Você também pode gostar