You are on page 1of 9

QUESTÕES COMENTADAS – POSCOMP 2011

Questão 26: Letra B

Para resolução da questão, torna-se necessário o conhecimento sobre Organização Básica de


Computadores, conteúdo abordado nas disciplinas Introdução à Computação e Organização e
Arquitetura de Computadores I.

Observar as alternativas e os comentários correspondentes.

I. Deve obrigatoriamente fazer acesso a um dispositivo de entrada e saída.


Comentário: Para executar uma instrução, o processador não precisa, necessariamente, fazer
acesso a um dispositivo de entrada e saída (Ex.: Uma instrução de soma que utiliza operandos
já disponíveis na memória). Logo, esta afirmação é FALSA.
II. Deve obrigatoriamente ler e escrever na memória principal do processador.
Comentário: Considerando que existe “uma organização de computador convencional, dotada
de um processador de uma instrução, memória e periféricos de entrada e saída”, essa
instrução deve ser lida da memória e o seu resultado escrito na memória. Logo, esta afirmação
é VERDADEIRA.
III. Deve obrigatoriamente calcular uma soma de produtos de literais booleanos. Logo, esta
afirmação é FALSA.
Comentário: A instrução não precisa ser, obrigatoriamente, uma soma de produtos de literais
booleanos. Logo, esta afirmação é FALSA.
IV. Deve obrigatoriamente realizar um teste, e sua ação deve ser condicionada ao resultado
deste teste. Logo, esta afirmação é VERDADEIRA.

Portanto, diante do texto supracitado, a resposta correta é a Letra B (Somente as afirmativas II


e IV são corretas).

Livros para consulta:


 TANENBAUM, A. S. Structured Computer Organization, 5th Edition, Prentice Hall, 2005.
 STALLINGS, W., Arquitetura e Organização de Computadores, 5a Edição, Prentice Hall,
2002.

Questão 28: Letra A


Para resolução da questão, torna-se necessário o conhecimento sobre o Ciclo de Busca-
Decodificação-Execução de uma Instrução, com ênfase na Execução Sequencial e em
Pipeline, conteúdo abordado na disciplina Organização e Arquitetura de Computadores I.

Importante:

Pipeline (Figura 1) – técnica que permite a sobreposição temporal das diversas fases de
execução de instrução (também chamada de overlap). Aumenta o número de instruções
executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de
tempo (aumento significativo do throughput). Pipeline é uma técnica de projeto em que o
hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução
termine antes de começar a outra. O pipeline consiste em colocar instruções em uma linha de
produção de modo que torne o processamento mais rápido.
Obs.: O pipeline não reduz o tempo gasto para completar cada instrução individualmente.

Figura 1: (a) Pipeline de 5 estágios. (b) Estado de cada um dos estágios em função do tempo
(estão ilustrados 9 períodos do clock).

Um sinal de relógio comum sincroniza os latches da pipeline em cada estágio, e dessa forma
todos os latches guardam os dados produzidos de cada estágio ao mesmo tempo. O relógio vai
assim "bombeando" as instruções ao longo do pipeline. No início de um período de relógio, ou
ciclo de relógio, os dados e controle das instruções parcialmente processadas são mantidos
num pipeline latch até ao final desse ciclo.
Projeto Pipeline (ver figura a seguir): Todos os estágios gastam um único ciclo. Logo, o ciclo de
clock deve ser grande o suficiente para agregar a operação mais lenta.

O módulo ou subsistema é dividido em 2 ou mais estágios separados por latches (latch é um


elemento de memória em que o valor de saída é igual ao valor do estado contido nesse
elemento e esse estado é alterado sempre que os valores de entrada apropriados são
alterados, em sincronização com o sinal de relógio). Observar a Figura 2.

Figura: Exemplo de processador sem pipeline e com pipeline.

Fonte: CARTER, N. ARQUITETURA DE COMPUTADORESNICHOLAS

O tempo de ciclo t de um pipeline de instrução é o tempo requerido para avançar um conjunto


de instruções de um estágio. O tempo de ciclo pode ser determinado da seguinte forma:

t  max(t i )  d  t m  d ,1  i  k
em que:
tm = atraso máximo de estágio
k = número de estágios do pipeline de instrução
d = tempo necessário para propagar sinais e dados de um estágio para o próximo

Em geral, d é equivalente ao pulso de um relógio e tm >> d.


Observando o enunciado da questão, tem-se: Um processador RISC implementado em duas
versões de organização síncrona (Versão 1 e Versão 2).
Versão 1
 Monociclo, em que cada instrução executa em exatamente um ciclo de relógio, e
 Frequência máxima de operação = 100 MHz
Versão 2
 Pipeline de 5 estágios. Os estágios são: (1) busca de instrução, (2) busca de
operandos, (3) execução da operação, (4) acesso à memória e (5) atualização do banco
de registradores.
 Frequência máxima de operação = 400 MHz

Programa X usado para comparar o desempenho das organizações


 Executa 200 instruções
o 40% fazem acesso à memória
o as demais (60%) operam apenas sobre registradores internos da organização.
 O programa não apresenta nenhum conflito de dados ou de controle entre instruções
que podem estar simultaneamente dentro do pipeline da segunda organização.

Tempo de execução do programa X nas organizações monociclo e pipeline:

1) Organização da máquina Versão 1


Período para execução de uma instrução
[1/(100 x 106)] s = 10 ns
Período para execução de 200 instruções
200 x 10 ns = 2.000 ns

2) Organização da máquina segundo uma estrutura de um pipeline com 5 estágios,


considerando cada módulo como indivisível e sem atraso.
Período do pipeline [1/(400 x 106)] s = 2,5 ns
Período para execução de 200 instruções (Observar o princípio da Figura 1)
 40% fazem acesso à memória (80 instruções – utilizam 5 estágios)
 60% operam apenas sobre registradores internos da organização (120 instruções –
utilizam 4 estágios).
 Estágio 1: 200 períodos de clock (200 instruções)
 Estágio 2: tem início no segundo período de clock para a instrução 1. Logo, para
execução deste estágio em todas as instruções, tem-se mais um período de clock em
relação ao estágio anterior;
 Estágio 3: tem início no terceiro período de clock para a instrução 1. Logo, para
execução deste estágio em todas as instruções, tem-se mais um período de clock em
relação ao estágio anterior;
 Estágio 4: tem início no terceiro período de clock para a instrução 1. Logo, para
execução deste estágio em todas as instruções, tem-se mais um período de clock em
relação ao estágio anterior;
 Estágio 5: tem início no terceiro período de clock para a instrução 1. Logo, para
execução deste estágio em todas as instruções, tem-se mais um período de clock em
relação ao estágio anterior.
 Importante: 40% e 80% (descritos anteriormente) estarão inseridos no tempo
necessários à execução do pior caso (5 estágios).
 Logo, o período para execução das 200 instruções é:
(200 + 1 + 1 +1 +1) x 2,5 ns = 510 ns

Portanto, diante do texto supracitado, a resposta correta é a Letra A (2.000 nanossegundos e


510 nanossegundos).

Livros para consulta:


 TANENBAUM, A. S. Structured Computer Organization, 5th Edition, Prentice Hall, 2005.
 STALLINGS, W., Arquitetura e Organização de Computadores, 5a Edição, Prentice Hall,
2002.

Questão 29: Letra D

Para resolução da questão, torna-se necessário o conhecimento sobre a execução de


instruções, conteúdo abordado na disciplina Organização e Arquitetura de Computadores I.

Importante:
Multicore - Processador Multicore é aquele formado por mais de um núcleo (core) de
processamento. O Multicore formado por dois núcleos é chamado Dual-Core. O Multicore
formado por quatro núcleos é chamado Quad-Core. Logo, Multicore representa múltiplos
processadores em um único encapsulamento.
Superpipeline - Os processadores superpipelined alcançam o paralelismo a partir da extensão
do comprimento do pipeline, decrescendo assim a sua granularidade e aumentando o número
de instruções executadas por ciclo. Portanto, superpipeline representa pipelines com grande
número de estágios.
Superescalar - Uma arquitetura superescalar aumenta o paralelismo por operar vários
processadores pipelined separados simultaneamente. Assim, superescalar representa
Múltiplos pipelines que operam em paralelo.
Pipeline dinâmico - Consiste em várias unidades de processamento em paralelo. O
processador executa instruções de tipos diferentes em paralelo e em ordem invertida. Seria
mais ou menos o seguinte, o processador teria um paralelo especializado em instruções de
Ponto Fixo (Soma e Subtração), outro paralelo para Ponto Flutuante (senos e cosenos) e, às
vezes, um terceiro paralelo para Multimídia (Som, Vídeo). Portanto, pipeline dinâmico
representa a execução de instruções fora de ordem em um pipeline.
Multiprocessadores – Sistema composto de vários processadores independentes que
compartilham uma mesma memória por um barramento principal ou compartilham uma
memória e tem memórias locais, por exemplo. Logo, multiprocessadores representam
múltiplos processadores compartilhando um espaço de endereços.

Portanto, diante do texto supracitado, a resposta correta é a Letra D (I-E, II-C, III-A, IV-B, V-D).

Livros para consulta:


 TANENBAUM, A. S. Structured Computer Organization, 5th Edition, Prentice Hall, 2005.
 STALLINGS, W., Arquitetura e Organização de Computadores, 5a Edição, Prentice Hall,
2002.

Questão 30: Letra B


Para resolução da questão, torna-se necessário o conhecimento sobre organização de um
computador, conteúdo abordado na disciplina Organização e Arquitetura de Computadores I.

Vale lembrar:

Memória Cache – Mapeamento Direto


 O endereço é dividido em 2 partes
- parte menos significativa: índice, usado como endereço na cache onde será
armazenada a palavra
- parte mais significativa: tag, armazenado na cache junto com o conteúdo da
posição de memória
• Quando acesso é feito, índice é usado para encontrar palavra na cache
- se tag armazenado na palavra da cache é igual ao tag do endereço procurado,
então houve hit
• Endereços com mesmo índice são mapeados sempre para a mesma palavra da
cache.

Mapeamento direto – uso de linhas.


Características do sistema computacional apresentado na questão.
Mapa de memória: 4 GB, usando endereçamento a byte.
Memória cache: mapeamento direto. A cache tem capacidade de armazenar até 1.024 palavras
de 32 bits provenientes do mapa de memória. A cache sempre é escrita de forma atômica com
quatro bytes vindos de um endereço de memória alinhado em uma fronteira de palavra de 32
bits, e que ela usa 1 bit de validade por linha de cache.

Logo,
1024 palavras = 2’0 palavras, ou seja, o índice apresenta 10 bits
Quantidade de linhas (índice) = 1024, 1 K →10 bits para Linha (índice).
Quantidade de bytes por linha = 4 = 22 → 2 bits para Byte.
Quantidade de blocos / linha (tag) = (4 GB) / (1K x 4 B) = 220 → 20 bits por Tag.
Total de bits da cache = total de bits de dados + total de bits dos tags + bit de validade
Total de bits da cache = 32 + 20 + 1 = 53 bits
Tamanho da cache = 210 x 53 bits
Tamanho da cache = 54.272 bits

Neste caso, as dimensões do rótulo (tag) da cache, do índice e o tamanho da cache são,
respectivamente, 20 bits, 10 bits e 54.272 bits (Letra C).

Livros para consulta:


 TANENBAUM, A. S. Structured Computer Organization, 5th Edition, Prentice Hall, 2005.
 STALLINGS, W., Arquitetura e Organização de Computadores, 5a Edição, Prentice Hall,
2002.

You might also like