Professional Documents
Culture Documents
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.
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
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).
Vale lembrar:
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).