Buscar

Unidade III - Processadores e Pipeline

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 24 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

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 6, do total de 24 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

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 9, do total de 24 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

Organização de 
Computadores
Material Teórico
Responsável pelo Conteúdo:
Profa. Ms. Fábio Peppe Beraldo
Revisão Textual:
Profa. Esp. Márcia Ota 
Processadores e Pipeline
• Organização de Computadores
• O Pipeline
• Fechamento
• Estudo Complementar
 · O objetivo dessa unidade é capacitar o aluno a usar corretamente 
os registradores do computador consumindo menos memória ao 
mesmo tempo que acelera o ciclo de instruções.
OBJETIVO DE APRENDIZADO
Nesta Unidade, vamos aprender um pouco mais sobre o que é a Organiza-
ção de processadores, o ciclo de instrução e o pipeline de instrução, comple-
mentando as ideias de instruções já aprendidas.
Leia o material com atenção e, se sentir necessidade, releia para que sua 
absorção seja adequada. Fique atento (a) nessa etapa, pois é o momento 
oportuno para registrar suas dúvidas; por isso, não deixe de registrá-las e 
transmiti-las ao professor-tutor. 
Além disso, para que a sua aprendizagem ocorra num ambiente mais 
interativo possível, na pasta de atividades, você também encontrará as 
atividades de avaliação, uma atividade reflexiva e a videoaula. Cada material 
disponibilizado é mais um elemento para seu aprendizado, por favor, estude 
todos com atenção!
ORIENTAÇÕES
Processadores e Pipeline
UNIDADE Processadores e Pipeline
Contextualização
A Unidade Central de Processamento ou Central Processing Unit (CPU) é 
considerada por muitos o cérebro do computador; porém, podemos dizer que ele 
é o coração também, uma vez que gera informações que alimentam o sistema 
operacional e este, por usa vez, os programas.
Tecnicamente, sua função é executar programas armazenados na memória 
principal, buscando suas instruções, examinando essas instruções e identificando 
seus comandos, então, executá-las sequencialmente.
Nesta unidade da disciplina, aprenderemos como que a CPU realiza sua função 
e como as instruções se comportam quando migram entre as memórias.
6
7
Organização de Computadores
Processadores
Um processador tem a função de armazenar dados em uma memória e, então, 
usar esses dados para o correto processamento. Esse processamento envolve a 
busca de instruções do programa armazenado, exame e identificação dos opcodes 
e operandos dessa instrução e, por fim, a execução do mesmo para que o programa 
“rode” corretamente.
Como já mencionado, para executar o processamento das instruções, a CPU 
usa uma quantidade de memória para o armazenamento temporário de dados, ela 
mantém a posição de memória da última instrução e, com isso, ela recebe o valor de 
endereçamento onde obtém a instrução seguinte para o processamento contínuo.
Para realizar todo o trabalho corretamente, a CPU segue alguns passos como 
descritos a seguir:
1. Busca de instrução: a CPU lê uma instrução da memória.
2. Interpretação de instrução: a instrução é decodificada para determinar a 
ação requerida.
3. Busca de dados: a execução de uma instrução pode requerer leitura de 
dados da memória ou de um módulo de E/S.
4. Processamento de dados: a execução de uma instrução pode requerer 
efetuar uma operação aritmética ou lógica sobre os dados.
5. Escrita de dados: os resultados da execução podem requerer escrever 
dados na memória ou em um módulo de E/S.
Na figura 1, há um diagrama simplificado da CPU. Conforme a figura, podemos 
resumir a CPU como um dispositivo composto por uma ULA (Unidade Lógica 
e Aritmética) e uma UC (Unidade de Controle), vimos na última unidade que a 
ULA tema a função de processar todas as instruções, conforme sua construção 
de opcodes e operandos, já a UC é responsável por controlar a transferência de 
dados e instruções entre a CPU e os demais componentes do computador, além 
de controlar o próprio funcionamento da ULA. Faz parte também da composição 
de uma CPU uma quantidade de memória especial chamada Registrador que tem 
a função de armazenar dados imediatos para o processamento.
7
UNIDADE Processadores e Pipeline
UAL
UCP
RDM (MBR)
ACC
CI (PC)
REM (MAR)
MP
UC
RI (IR)
Decodi�cador
de instruçõesRelógio
Controle
Barramento de controle
Barramento
de endereços
Barramento
de dados
Dados/Endereço
Registradores
0 a R1
Figura 1: Estrutura da CPU com destaque para a ULA
Fonte: Monteiro, M., Introdução a Organização de Computadores
Uma visão mais atenta da figura 1 nos mostra todos os caminhos percorridos 
por um sinal dentro da CPU, sendo eles os caminhos de transferência de dados e 
a sinalização de controle da UC que por muitos é chamado de barramento interno 
de CPU. Esse sinal de controle é utilizado apenas para transferência interna das 
partes da instrução durante seu trabalho, sem contato com o ambiente externo à 
CPU, a esta comunicação externa cabe o trabalho do barramento de transferência 
de dados.
Registradores
Os registradores são unidades de memória de alto nível ou hierarquia que 
possuem duas funções definidas:
 · Registradores visíveis para o usuário: possibilitam ao programador de 
linguagem de montagem ou de máquina minimizar referências à memória, 
pela otimização do uso de registradores.
 · Registradores de controle e de estado: são usados pela unidade de 
controle para controlar a operação da CPU e por programas privilegiados 
do sistema operacional para controlar a execução de programas.
Registradores Visíveis ao usuário
Esses registradores são aqueles que o programador pode referenciar por conta 
própria via linguagem de máquina executada pela CPU e pode ser dividido em:
8
9
 · Registradores de propósito geral: podem conter operandos que 
executem qualquer tipo de operação, sendo de propósito geral; porém, 
como tudo na vida, há exceções, onde esses registradores podem 
armazenar valores não gerais, como operações com número de 
ponto fl utuante ou pilhas.
 · Registradores de dados: podem ser usados apenas para conter dados e 
não podem ser empregados no cálculo de endereços de operandos.
 · Registradores de endereços: podem funcionar como os de propósito 
geral ou para um endereçamento especial como:
* Registradores de segmento: utilizados para armazenar endereçamentos 
segmentados.
* Registradores de índices: utilizados para endereçamentos indexados.
* Apontador de topo de pilha: utilizado na pilha visível para o usuário; 
dessa forma, a pilha ficará alocada na memória, onde um registro especial 
endereçará o topo da pilha.
 · Registradores de códigos de condição ou fl ags: são bits utilizados 
pela CPU como resultados de operações.
Registradores de controle e de estado
Uma CPU utiliza vários tipos de registradores para controlar a operação e, por 
sua vez, a maioria dessas não são visíveis para o programador, em contraposto 
ao modelo anterior. Lembrando que diversas máquinas possuem registradores 
construídos de forma diferente. Então, foi preciso criar um padrão de registradores 
para funções específicas, como segue:
 · Contador de programa (PC): contém o endereço da instrução a ser 
buscada.
 · Registrador de instrução (IR): contém a última instrução buscada.
 · Registrador de endereçamento à memória (MAR): contém o endereço 
de uma posição de memória.
 · Registrador de armazenamento temporário de dados (MBR): contém 
uma palavra de dados a ser escrita na memória ou a palavra lida mais 
recentemente.
Esses registradores são responsáveis pelo transporte de dados entre CPU e 
memória externa, sem que o usuário tome conhecimento dessa ação, sendo 
que dentro da CPU esses dados são entregues somente para a ULA. Há ainda 
a possibilidade de um registrador intermediário que interage entre o MBR e a 
E/S da ULA.
9
UNIDADE Processadores e Pipeline
Uma vez clara a necessidade de diversos tipos de registradores na CPU, criou-se 
um conjunto conhecido como Palavra de Estado de Programa (PSW) que irá conter 
os códigos de condição além de informações do estado da instrução, constituídos 
dos seguintes campos:
 · Sinal: contém o bit de sinal do resultado da última operação aritmética.
 · Zero: atualizado com valor 1 se o resultado da última operação for O.
 · ‘Vai-um’:atualizado com valor 1 se uma operação resultar em um ‘vai-um’ 
para fora do bit de ordem superior (adição) ou em um ‘vem-um’ para o 
bit de ordem superior (subtração). É usado por operações aritméticas de 
múltiplas palavras.
 · Igual: atualizado com valor 1 se uma comparação lógica resultar em igualdade.
 · Overflow: usado para indicar overflow aritmético.
 · Habilitar/desabilitar interrupção: usada para habilitar ou desabilitar 
interrupções.
 · Supervisor: indica se a CPU está executando em modo supervisor ou em 
modo de usuário. Certas instruções privilegiadas apenas podem ser executadas 
no modo supervisor, assim como certas áreas de memória apenas podem ser 
acessadas no modo supervisor.
É necessário também que a CPU possua um registrador que sempre aponte para 
um ponto na memória, onde haja informações do estado original da instrução. 
Quando esse ponto na memória for especificamente uma memória virtual, esse 
registrador apontará para a tabela de páginas.
Uma forma de facilitar o desenvolvimento correto dos registradores ocorre 
quando o programador tem conhecimento total sobre sistemas operacionais, pois 
ele sabe como o sistema irá interagir com a CPU.
O Clico de Instrução
O ciclo de instruções de um computador ocorre quando a CPU busca uma 
instrução em um campo de memória. Para tanto, é utilizado um registrador chamado 
contador de instruções que sempre irá guardar o endereçamento da instrução a ser 
executa, ou seja, após fazer uma busca, o contador de instruções já armazena o 
endereçamento da próxima instrução para manter o processamento sequencial.
Após a busca, a instrução deve ser entregue para o processador e isso ocorre 
através do carregamento dos dados no registrador de instruções do processador 
que criará bits que identificarão que ação o processador deve executar nos dados. 
Assim, ele pode interpretar a instrução e executar cada ação corretamente. Essas 
ações estão listadas a seguir:
10
11
 · Processador-memória: transferência de dados do processador para a 
memória ou da memória para o processador.
 · Processador E/S: transferência de dados entre o processador e um 
dispositivo periférico por meio de um módulo de E/S.
 · Processamento de dados: execução de operações aritméticas ou lógicas 
sobre os dados.
 · Controle: determinadas instruções podem especificar que a sequência 
de execução de instruções seja alterada.
O computador possui uma memória ou registro de armazenamento chamado 
AC (acumulador), considerando instruções e dados de 16 bits, organizamos a 
palavra do processador em 16 bits; assim, a instrução é construída contendo 4 bits 
para o código de operação, conforme estudado anteriormente.
Para exemplificar o funcionamento do ciclo de instrução, vamos analisar a 
execução parcial de uma aplicação mostrada na figura 2.
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 1
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 3
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 5
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 2
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 4
Memória
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Passo 6
Registradores da CPU
3 0 0 PC
AC
1 9 4 0 IR
Registradores da CPU
3 0 1 PC
0 0 0 3 AC
5 9 4 1 IR
Registradores da CPU
3 0 2 PC
0 0 0 5 AC
2 9 4 1 IR
Registradores da CPU
3 0 1 PC
0 0 0 3 AC
1 9 4 0 IR
Registradores da CPU
3 0 2 PC
0 0 0 5 AC
5 9 4 1 IR
3 + 2 = 5
Registradores da CPU
3 0 3 PC
0 0 0 5 AC
2 9 4 1 IR
Figura 2: Diagramação do Ciclo de Instrução
Fonte: Stallings, W., Arquitetura e Organização de Computadores
No passo 1, temos que o PC (contador de instruções) está em 300, ou seja, o 
programa já rodou 299 instruções e está, agora, executando a instrução 300 que 
é carregada no IR (registrador de instruções).
No passo 2, os quatro primeiros bits do IR são interpretados, de forma que seu 
comando é o armazenamento do AC (acumulador) de um valor. O valor que deve 
ser armazenado no AC está descrito e endereçado (endereço 940) nos 12 bits 
restantes da instrução do IR.
11
UNIDADE Processadores e Pipeline
No passo 3, o PC sobe para 301, ou seja, para o próximo ciclo de instrução que 
é, então, carregada para o IR.
No passo 4, a instrução é interpretada e, como no passo 2, é identificado que 
uma soma deve ser feita com o conteúdo endereçado como AC e o endereçado 
como 941; por fim, o resultado deve ser endereçado de volta para AC, apagando 
o valor que lá havia.
No passo 5, o PC muda, mais uma vez, para a próxima instrução que é buscada 
e carregada em IR.
No passo 6, novamente, da mesma forma que no passo 2, a instrução é 
interpretada como a ação de armazenamento do valor do AC para o endereço de 
memória 941, sobrescrevendo o valor existente nessa posição.
Na figura 2, foi descrito o funcionamento de uma execução de programa, 
utilizando três ciclos de instruções, todos com os momentos de busca e execução. 
Como sabemos, há processadores com arquiteturas complexas que podem ter 
vários comandos e endereçamentos de memória, o que reduziria o número de 
ciclos e, possivelmente, o tempo de processamento.
Os estados de um ciclo de instruções podem ser descritos por:
 · Cálculo de endereço de instrução (CEI) - instruction address calculation: 
o endereço da próxima instrução a ser executada é determinado. Isso, 
geralmente, envolve a soma de um valor constante ao endereço da 
instrução anterior.
 · Busca de instrução (BI) - instruction fetch: uma instrução é lida da 
memória e armazenada no processador.
 · Decodificação de instrução (DI) - instruction operation decoding: o 
código da instrução a ser executada é analisado, para determinar qual é a 
operação a ser realizada e o(s) operando(s) a ser(em) usado(s).
 · Cálculo de endereço de operando (CEO) - operand address calculation: 
se a operação envolver a referência a um operando na memória ou se 
estiver disponível via E/S, o endereço do operando será determinado.
 · Busca de operando (BO) - operand fetch: o operando é localizado na 
memória ou é lido no dispositivo de E/S.
 · Execução da operação (EO) - data operation: a operação indicada na 
instrução é executada.
 · Armazenamento de resultado (AR) - operand store: o resultado é 
escrito na memória ou no dispositivo de E/S.
12
13
Instruction
Fetch
operando
múltiplos
retorno de
cadeia de
caracteres
ou vetor
instrução completa,
busca de nova instrução
sem
interrupção
resultados
múltiplos
Data
Operation
Instruction
Address
Calculation
Instruction
Operation
Deconding
Operand
Address
Calculation
Interrupt
Operand
Fetch
Interrupt
Check
Operand
Address
Calculation
Operand
Store
Figura 3: Diagrama de transição de estados de um ciclo de instrução
Fonte: Stallings, W., Arquitetura e Organização de Computadores
Os estados na parte superior da figura 3 envolvem transferências de valores 
entre o processador, de um lado, e a memória ou um dispositivo de E/S, de outro. 
Os estados na parte inferior do diagrama envolvem apenas operações realizadas 
internamente no processador. O estado (CEO) aparece duas vezes, pois uma 
instrução pode envolver uma operação de leitura.
Fluxo de dados do clico de instruções
Não existe uma sequência correta única para o fluxo de dados, pois esse fluxo 
depende da forma como a CPU foi projetada; porém, é possível que se estime uma 
estrutura, ao menos, lógica, de como deve ser a sequência.
Basicamente, um ciclo de busca é constituído de um momento onde a instrução é 
lida da memória. Nessa sequência, o PC mantém o endereço da próxima instrução 
que deve ser carregada. Esse endereço é carregado para o MAR (via address bus), 
A UC comanda que seja feita a leitura da memória e o valor lido é copiado no 
MBR e, então, para o IR (via data bus), o contador sobe um valor que é a próxima 
instrução a ser executada.
A figura 4 mostra uma sequência de ciclo de instruções, demonstrando o fluxodas informações, semelhante ao apresentado na figura 2; porém, com a adição 
dos barramentos que realizam o transporte dos dados da instrução para seus 
respectivos controladores.
13
UNIDADE Processadores e Pipeline
Unidade de
Controle
PC MAR
CPU
Memória
MBR
Barramento
de endereço
IR
Barramento
de dados
Barramento
de controle
Figura 4: Fluxo de dados do clico de busca
Fonte: Stallings, W., Arquitetura e Organização de Computadores
O Pipeline
Podemos dizer que um pipeline funciona de forma semelhante a uma linha 
de montagem uma vez que as instruções passam por uma sequência de estágios. 
Vamos tomar o seguinte exemplo:
Sabemos que um ciclo de instrução possui várias etapas. Então, vamos pegar 
as etapas de busca e execução das instruções, enquanto parte da instrução está 
sendo executada a memória não está trabalhando. Nesse momento, nesse instante, 
a memória poderia ser utilizada em paralelo com a execução; dessa forma, o 
pipeline executa duas funções paralelamente, enquanto uma parte da instrução 
é executada a próxima está sendo armazenada de forma temporária, quando a 
execução termina, a memória de trabalho recebe o valor carregado na memória 
temporária e começa uma nova execução. Enquanto isso, uma nova instrução 
é carregada temporariamente e assim por diante. Chamamos essa sequência 
de trocas de função de busca antecipada de instrução (instruction prefetch) ou 
superposição de busca (jetch overlap).
A figura 5 mostra duas formas de execução: na primeira (a), há uma execução 
sem pipeline e na segunda forma (b), há uma execução com pipeline, conforme a 
descrição de pipeline.
14
15
Busca
Instrução
Execução
Instrução
(a)
Resultado
Busca
Instrução
Execução
Instrução
Novo endereçoEsfera
(b)
Descarte
Resultado
Esfera
Figura 5: Demonstração lógica do trabalho do pipeline
Fonte: Stallings, W., Arquitetura e Organização de Computadores
Com essa explicação, fica óbvio que usando o pipeline o tempo de execução do 
ciclo diminui bastante; porém, isso só ocorre quando os tempos de busca e execução 
são o mesmo, o que dificilmente acontece, pois é comum que o tempo de execução 
seja maior que o de busca devido às maiores operações que devem ser feitas.
Quando há instruções de desvio, a próxima instrução que deve ser buscada não teve 
aquele carregamento prévio pois seu endereçamento não é conhecido, e a busca 
em paralelo com a execução não é possível, pois essa descoberta só ocorre durante 
a execução.
O desvio condicional é quando uma instrução sendo executada faz referência 
a outra instrução ou dado em um determinado endereçamento diferente daquele 
sequencial à execução do programa. Essa referência servirá como dado para 
se alcançar o resultado da instrução em execução no momento e despois é 
descartada; porém, esse desvio de percurso gera um atraso no ciclo e impede a 
correta execução do pipeline.
Para tentar solucionar o problema das instruções de desvio ou desvio condicional, 
é executada uma estratégia de adivinhação, tecnicamente chamada de preempção, 
ou seja, quando uma instrução de desvio condicional é passada do estágio de 
busca para o de execução, o estágio de busca obtém na memória a instrução, 
imediatamente, seguinte à instrução de desvio. Então, se não ocorrer o desvio, 
nenhum tempo será perdido. Se ocorrer o desvio, a instrução buscada deve ser 
descartada, sendo buscada uma nova instrução.
15
UNIDADE Processadores e Pipeline
As instruções de desvio, realmente, interferem no tempo do ciclo de instruções e 
mesmo com a preempção de endereçamento não se obtém uma solução otimizada. 
Para tanto, é preciso que o pipeline tenha mais estágios de trabalho paralelo, 
da mesma forma que demonstrada quando falamos sobre os estados do clico de 
instrução:
 · Busca de instrução (BI);
 · Decodificação da instrução (DI);
 · Cálculo de operandos (CD);
 · Busca de operandos (BD);
 · Execução da instrução (EI);
 · Escrita de operando (ED).
Na figura 6, temos a demonstração de um pipeline, onde nove instruções 
tiveram seu tempo de processamento conjunto reduzido de 54 unidades de tempo 
(9 instruções de 6 unidades de tempo) para 14 unidades de tempo, usando os 
estados de ciclo de instruções.
1 2
Tempo
3 4 5 6 7 8 9 10 11 12 1413
BIInstrução 1
Instrução 2
Instrução 3
Instrução 4
Instrução 5
Instrução 6
Instrução 7
Instrução 8
Instrução 9
DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
Figura 6: Diagrama de tempo para operação da pipeline de instruções
Fonte: Stallings, W., Arquitetura e Organização de Computadores
Em contraponto, no caso de uma interrupção (parada da execução devido à 
alta prioridade de um outro processo ou programa) ou um desvio condicional, se 
imaginarmos as mesmas nove instruções de 6 unidades de tempo; porém, com um 
desvio condicional ocorrendo da instrução três para a instrução 15.
16
17
Nesse caso, a CPU não tem como saber de que modo fazer a preempção, ou 
seja, a instrução 4 é carregada e sua execução ocorre, normalmente, até que no 
momento de desvio da instrução 3, acontece paralelamente, chame ou referencie 
a instrução 15. Nesse momento, todas as instruções ocorrendo em paralelo são 
interrompidas e aguardam o fim da instrução 15 e suas subsequentes. Quando o 
resultado dessas execuções subsequentes terminarem e o valor resultado indicar o 
retorno para a instrução 3, todas as instruções interrompidas retomam seu trabalho, 
caso contrário, elas irão aguardar o fim das instruções, subsequente à instrução 15 
e depois serão retomadas, como demonstrado na figura 7.
1 2
Tempo
3 4 5 6 7 8 9 10 11 12 1413
BIInstrução 1
Instrução 2
Instrução 3
Instrução 4
Instrução 5
Instrução 6
Instrução 7
Instrução 15
Instrução 16
DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO EI EO
BI DI CO BO
BI DI CO
BI DI
BI
BI DI CO BO EI EO
BI DI CO BO EI EO
Penalidade
devido ao desvio
Figura 7: Desvio condicional na operação de uma pipeline de instruções
Fonte: Stallings, W., Arquitetura e Organização de Computadores
Desempenho da pipeline
Além de lidar com os desvios condicionais da pipeline e as interrupções, é 
muito importante sabermos como se dará o desempenho da pipeline. Para tanto, 
veremos algumas equações para fazer essa medição de desempenho.
Podemos dizer que o tempo relativo de uma pipeline de instrução é o tempo 
que um conjunto inteiro de instruções leva para avançar um estágio da pipeline. 
Esse tempo de ciclo pode ser determinado pela equação:
τ τ τ= [ ]+ → + ≤ ≤max i md d i, i k1
17
UNIDADE Processadores e Pipeline
Onde:
tm = atraso máximo de estágio (atraso por meio do estágio de maior atraso).
K = número de estágios da pipeline de instrução.
D = tempo necessário para propagar sinais e dados de um estágio para o próximo.
Nessa equação, o (d) é a aproximação ao pulso de um relógio e () >> d. Se 
considerarmos que uma quantidade de instruções representada por (n) sem o desvio 
condicional, o tempo total para executar todas as (n) instruções é representado por:
T k nk = + −( ) ×1 τ
Se lembrarmos do exemplo gráfico anterior (figuras 5 e 6), onde havia 9 
instruções com 6 unidades de tempo cada e sem desvio condicional teríamos, 
então, 14 unidades de tempo para todo o clico do conjunto de instruções, provado 
pela equação:
14 6 9 1= + −( ) 
É possível calcular o quão mais rápido uma execução com pipeline sobre uma 
execução sem pipeline, calculando o speedup (comparação de velocidades) entre 
elas, da seguinte forma:
S T
T
n k
k n
n k
k nk k
= =
× ×
+ −( ) ×
=
×
+ −( )
1
1 1
τ
τ
A figura 8 demonstra duas vertentes de avaliação de desempenho de ciclo 
de instruções. Na parte (a), é demonstrado um speedup de execução de um 
conjunto de instruções em função de instruções executadas em cada conjunto 
sem a presença do desvio condicional. N parte (b), é demonstrado um gráfico de 
speedup; porém, dessa vez, em função da quantidade deestágios de pipeline 
que cada conjunto possui, onde se pode notar que quanto maior o número de 
estágios, maior o speedup.
É possível notar que somente aumentar a quantidade de estágios acelera o 
processo, isso se torna claro na parte (b) da figura 8, onde o speedup aumenta 
quando se aumentou demais o número de estágios; porém, o número de instruções 
diminuiu. Isso ocorre devido ao aumento de custo, por atrasos entre estágios e 
pelo fato de que instruções de desvio requerem que a pipeline seja esvaziada, ou 
seja, o uso de um número de estágios entre 6 e 9 parece ser mais adequado, sendo 
contraproducente o uso de um número de estágios maior.
18
19
1
0
2
4
6
18
10
12
Speedup
2 4 8 16
Número de instruções
(a)
32 64 128
k = 6 estágios
k = 9 estágios
k = 12 estágios
0 5 10 15 20
 0 
2
4
6
8
10
12
14
Speedup
Número de estágios
(b)
n = 10 instruções
n = 20 instruções
n = 30 instruções
Figura 7: Speedups obtidos com o uso de pipeline de instruções
Fonte: Stallings, W., Arquitetura e Organização de Computadores
Fechamento
Nesta unidade, abordamos os conceitos gerais de ciclo de instruções e seus 
interferentes bem como a pipeline; ambos fatores que atingem diretamente o 
funcionamento da CPU e a velocidade de resposta de programas, dependendo 
da arquitetura dos microprocessadores. É possível aprofundar-se mais no assunto, 
tomando o estudo da engenharia de hardware e construção de microchips mais 
avançados; para tanto, não deixe de ler os materiais complementares indicados. 
19
UNIDADE Processadores e Pipeline
Estudo Complementar
O conceito de pipeline é de extrema importância para o correto desenvolvimento 
de hardware e software. Assim, para ser um bom profissional da área de tecnologia 
é preciso sempre estudar e se aprofundar.
Partindo desse princípio, há no material complementar um link para um 
simulador de pipeline chamado PS-CAS MIPS, mais especificamente um medidor 
de desempenho de pipeline, que mede o sppedup de um conjunto de instruções 
já definido; porém, que você pode alterar, conforme o aprendido até agora na 
disciplina e verificar o quanto você otimiza ou não o projeto.
No endereço indicado, há um material criado pelo desenvolvedor do simulador 
que auxilia no uso do simulador e dá a você uma maior compreensão de como 
simuladores funcionam.
Não deixe de experimentar o simulador e discutir com seus companheiros de 
classe, bem como com seu professor sobre suas experiências.
Bons estudos!!!
20
21
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Vídeos
Passos para execução de uma instrução
https://goo.gl/qkZCq1
 Sites
SIMULADOR PS - CAS MIPS
https://goo.gl/FYluWC
Arquiteturas de Computadores
http://goo.gl/xAbmdT
Tópicos de Informática Aplicados à Administração
http://goo.gl/Pk4El3
21
UNIDADE Processadores e Pipeline
Referências
ALA-HARJA, M.; HELGASON, S. Em direção às melhores práticas de avaliação. 
Revista do Serviço Público, Brasília, v. 51, n. 4, p. 5-59, out./dez. 2000.
BECKER, D.; EDMUNDO, K. O direito à saúde: sonho de liberdade. In: Influir em 
políticas públicas e provocar mudanças sociais: experiências a partir da sociedade 
civil brasileira. GHANEM, E. (Org). São Paulo: Ashoka: Avina: Imprensa Oficial do 
Estado de São Paulo, 2007.
CHIAVENATO, I. Introdução à teoria geral da administração. 5. ed. São Paulo: 
Makron Books, 1997.
22

Continue navegando