O Ciclo de instruções

Propaganda
Revisão
Conceitos Fundamentais

Arquitetura da CPU
Unidade
de
Controle
Registradores
Unidade
lógica e
Aritmética
Registradores




Conjunto de unidades de armazenamento;
Funcionam num nível de hierarquia acima da
memória principal e da memória cache;
Também conhecida como memória de
rascunho;
Divide-se em dois tipos:
–
–
Visíveis ao usuário;
Controle e estado;
Registradores visíveis ao usuário



Podem ser acessados pelo usuário através
das linguagens de maquina ou de montagem;
Minimizam as referencias a memória principal;
São classificados em:
–
–
–
–
Registrador de Propósito geral
Registrador de dados;
Registrador de endereço;
Registrador de código de condição;
Registradores de código de
condição (flags)




Armazenam bits que definem o resultado de uma
operação;
Esses bits podem indicar se o resultado produzido é
positivo, negativo, zero ou overflow;
Em algumas arquiteturas é representado por um único
registrador (de controle);
As linguagens de máquina permitem ler esses bits
mas não alterar seu valor;
Registradores de controle e estado




São usados para controlar as ações da CPU;
É comum que eles não sejam visíveis ao
usuário;
Contudo alguns podem ser visíveis no nível de
linguagem de maquina e nível de SO
Existem várias classificações para esse tipo de
registrador, variando de máquina para
máquina
Registradores de controle e estado

Contador de Programas (PC)
–
–
–

Contem o endereço da instrução a ser buscada;
É atualizado pela CPU depois de cada busca;
Um salto ou desvio também alteram seu valor;
Registrador de instrução (IR);
–
Contem a ultima instrução buscada;
Registradores de controle e estado

Registrador de endereçamento (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 recentemente;
Usado para trocar dados com os registradores visíveis ao
usuário;
Pode ser acessado diretamente pela ULA;
Registradores de controle e estado

Registradores de Armazenamento temporários
Projeto de Registradores Visíveis
ao usuário

Decidir entre propósito geral ou uso
especifico;
–
–

A especialização economiza bits, porem limita a
flexibilidade da programação
A tendência atual é especializar
Decidir o número de registradores
–
–
Um numero elevado requer mais bits para
especificar um operando
Um numero reduzido implica em mais acessos a
memória
Projeto de Registradores Visíveis
ao usuário

Decidir o tamanho dos registradores
–
–
Devem ter tamanho suficiente para conter o maior
endereço de memória;
Devem ser capazes de conter os dados da
maioria dos tipos disponíveis
Projeto de Registradores de
Controle e Estado

Decidir sobre o suporte ao SO
–
–

Certos tipos de informações de controle são úteis
ao SO
O projeto pode ser feito de acordo com as
necessidades do SO
Decidir sobre a alocação de dados de controle
entre os registradores e a memória
–
Levando em conta custo e taxa de acesso o que
deve ficar na em cada um?
Respostas

Trabalho 01
1.
Descreva a arquitetura básica da CPU,
mostrando seus componentes e a função de
cada um deles.
Tarefas da CPU





Buscar instruções
Interpretar Instruções
Buscar dados
Processar dados
Escrever Dados
O Ciclo de instruções

Ciclo simples
Inicio
Ciclo de
busca
Ciclo de
execução
Busca da
próxima
instrução
Execução
da
instrução
Fim
O Ciclo de instruções

Ciclo de busca
–
–
–
–
Lê a próxima instrução da memória
Essa instrução esta armazenada no Contador de
Programas (PC)
O processador incrementa o valor de PC
A instrução buscada é armazenada no registrador
de instruções (IR)
O Ciclo de instruções

Ciclo de Execução
–
–
Interpreta o código da operação e efetua a mesma;
As ações efetuadas podem ser:




Processador-memória
Processador-E/S
Processamento de dados
Controle
O Ciclo de instruções

Exemplo:

Formato da instrução
Código da
Endereço
operação
0

34
Formato dos números
Sinal
0

15
Magnitude
1
15
Lista de operações
0001 (1) – Carregar o valor em AC
– 0010 (2) – Armazenar o valor de AC na memória
– 0101 (5) – Somar o valor de AC com o valor de um endereço
–
O Ciclo de instruções

Exemplo:
–
–
Ciclo de instruções para o código A = A + B;
São necessárias 3 instruções:



–
Carregar o valor de A
Somar o valor de B com valor de A
Guardar o resultado em A e armazenar na memória
Será realizado é 3 ciclos de busca e execução
totalizando 6 passos;
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0002
942
Registradores da CPU
300
PC
AC
1940
IR
Passo 1
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0002
942
Registradores da CPU
301
0003
1940
PC
AC
IR
Passo 2
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0002
942
Registradores da CPU
301
0003
5941
PC
AC
IR
Passo 3
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0002
942
Registradores da CPU
302
0005
5941
PC
AC
IR
3+2=5
Passo 4
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0002
942
Registradores da CPU
302
0005
2941
PC
AC
IR
Passo 5
O Ciclo de instruções

Exemplo:
Memória
300
301
302
1940
5941
2941
940 0003
941 0005
942
Registradores da CPU
303
0005
2941
PC
AC
IR
Passo 6
O Ciclo de instruções

Ciclo ampliado
Interpretação
da instrução
Cálculo
do
endereço
da
instrução
Armazenamento
do operando
Busca de
operando
Busca da
instrução
Calculo
de
endereço
do
operando
Execução da
instrução
Calculo
de
endereço
do
operando
Interrupções



Mecanismo pelo qual um componente de
arquitetural pode interromper a seqüência
normal de execução
Visa a melhoria no desempenho do
processador
São agrupadas em:
–
–
–
–
Interrupção de Software
Interrupção de relógio
Interrupção de E/S
Interrupção de falha de hardware
Interrupções

Exemplo:
–
–
–
Um dada impressora recebe um fluxo de dados
provenientes do final de um ciclo de execução;
Essa impressora demora muito para terminar
imprimir os dados no papel;
O que a CPU deve fazer enquanto espera esses
dados serem impressos?


Sem um sistema de interrupção ela fica parada
Com sistema de interrupção ela faz pequenas pausas.
Interrupção

Ciclo com interrupção
Busca de
operando
Busca da
instrução
Interpretação
da instrução
Cálculo do
endereço
da
instrução
Armazenamento
do operando
Calculo
de
endereço
do
operando
Execução
da
instrução
Calculo
de
endereço
do
operando
Verifica
ocorrência
de
interrupção
Interrupção
Pipeline




Técnica de implementação de processadores que
permite a sobreposição temporal das diversas fases
de execução das instruções
Constituído por seqüência de estágios operando em
paralelo
Funciona de modo semelhante a uma linha de
montagem
Seu uso visa a melhora no desempenho do
processador
Características do Pipeline




Aumenta o número de instruções executadas
simultaneamente
Aumenta taxa de instruções iniciadas e
terminadas por unidade de tempo
Melhora o desempenho do processo
(throughput)
Não reduz o tempo gasto para completar cada
instrução individualmente.
Pipeline do ciclo de instrução

Suponha que o ciclo pudesse ser resumido
dos seguintes estágios:
–
–
–
–
–
–
Busca de Instrução (BI)
Decodificação da Instrução (DI)
Cálculo de (endereço) Operandos (CO)
Busca de Operandos (BO)
Execução da Instrução (EI)
Armazenamento de Operandos (AO)
Pipeline do ciclo

Exemplo 3
Instrução
1
2
3
4
Instante de Tempo
1
2
3
4
5
6
7
8
BI
DI
CO
BO
EI
AO
BI
DI
CO
BO
EI
AO
BI
DI
CO
BO
EI
AO
BI
DI
CO
BO
EI
9
AO
Características do Pipeline


Deve-se procurar dividir a execução da
instrução em estágios com o mesmo Tempo
Contudo alguns estágios são mais lentos:
–

O estagio execução é geralmente mais lento que o
de busca
Quando os estágios não tem o mesmo tempo:
–
–
Algumas instruções podem ter o seu tempo
aumentado
Isso ocorre pois elas atravessam estágios em que
não realizam nenhuma operação útil
Pipeline do ciclo

Exemplo 4
Instrução
Instante de Tempo
1
1
2
3
4
2
B
DI
I
3
4
B
EI
O
CO
B
DI
I
5
8
9
AO
B
EI
O
CO
B
DI
I
7
AO
B
EI
O
CO
B
DI
I
6
CO
AO
B
EI
O
AO
Pipeline do ciclo

Exemplo 5
Instrução
Instante de Tempo
1
1
2
3
4
B
I
2
DI
3
5
B
EI
O
CO
B
DI
I
4
B
DI
I
B
DI
I
AO
B
EI
O
CO
CO
7
AO
B
EI
O
CO
6
B
EI
O
AO
AO
8
9
Conflitos



Situações que impedem a próxima instrução
dentro de uma fila de ser executada no ciclo
esperado
Os Conflitos reduzem o tempo de ganho obtido
pelo pipelining
Existem três classes de conflitos:
–
–
–
Estrutural
de Dados
de Controle
Conflitos Estruturais


Oriundos de um hardware que não suporta a
sobreposição simultânea de todas as etapas
de instruções
No exemplo da lavanderia seria o equivalente
a implementar um pipeline onde só existisse
uma tomada para a máquina de lavar e para a
máquina de secar.
Conflitos de Dados


Ocorrem quando uma instrução para ser
executada depende dos resultados gerados
por alguma instrução anterior que ainda não foi
completada
No exemplo da lavanderia seria um caso em
que a secadora demorou demais para secar
uma roupa e já tem a roupa lavada de outro
cliente na fila para secar.
Conflito de Controle

Ocorrem quando uma instrução de salto
condicional (desvio) entra no pipeline
provocando o cancelamento de instruções
subsequentes que também entraram no
pipeline.
Pipeline do ciclo c/ desvio

Exemplo 6
Instrução
Instante de Tempo
1
1
2 (salto
p/ 5)
3
4
5
2
B
DI
I
3
4
B
EI
O
CO
B
DI
I
5
7
9
AO
B
O
CO
B
DI
I
8
AO
B
EI
O
CO
B
DI
I
6
CO
B
DI
I
CO
Pipeline do ciclo c/ desvio

Exemplo 6 (continuação)
Instrução
Instante de Tempo
10
11
12
13
EI
AO
14
15
1
2 (salto
p/ 5)
3
4
5 (salto
p/3)
B
EI
O
B
EI
O
AO
AO
16
17
18
Memória Principal




Memória que armazena os dados e programas em
linguagem de máquina em execução corrente
Razoavelmente barata
Tempo de acesso da ordem de nano-segundos a
dezenas de nano-segundos
Freqüência de acesso alta. Se não existisse a
memória Cache, seria acessada a cada ciclo de
busca-decodificação-execução
Hierarquia de memória

Modelo hierárquico
Memória Principal


Cada posição da memória principal tem um
endereço único
Geralmente é combinada com uma memória
Cache menor e mais veloz
–
–
A Cache geralmente não é visível ao usuário
È usada para melhorar o desempenho
Endereçamento



A memória principal é organizada como um
conjunto de n células (ou posições) capazes de
armazenar, cada uma, m bits.
Cada célula é identificada por um endereço (código
binário associado) de k bits através do qual é
referenciada.
Os endereços são numerados de zero a n-1.
Endereçamento




Existem 2k possíveis endereços. Assim, o máximo
número de células endereçáveis é 2k.
A célula é a menor unidade de memória endereçável
Uma célula poderá armazenar qualquer uma das 2m
possíveis combinações diferentes dos seus m bits.
Onde m é independente de n.
Endereçamento


Os m de bits de uma célula são acessados
simultaneamente
m pode ser qualquer número inteiro mas, nos
últimos anos, os fabricantes padronizaram um
tamanho de 8 bits (1 byte).
Endereçamento



Bytes são agrupados em Palavras
A maioria das instruções opera sobre palavras
Registradores da CPU geralmente são do tamanho
de uma palavra.
Ordenação



Os bytes de uma palavra podem ser numerados da
esquerda para a direita ou da direita para a esquerda
Quando a numeração dos bytes começa da esquerda
para a direita da palavra, a ordenação dos bytes é
dita Big Endian
Quando a numeração dos bytes começa da direita
para a esquerda da palavra, a ordenação dos bytes é
dita Little Endian
Ordenação

Big Endian
Ordenação

Little Endian
Ordenação

Problema: ao transmitir informações de uma
máquina big endian para uma little endian, (ou viceversa), os bytes de uma palavra são invertidos (o
seu valor numérico muda completamente).
Evolução




O aperfeiçoamento das memórias centrou-se no
aumento da sua capacidade de armazenar
O aperfeiçoamento das CPU's centrou-se no seu
desempenho
A memória principal tem grande capacidade de
armazenamento porem seu acesso é lento
Ela pode se tornar um "gargalo" para a CPU, que deve
esperar muito para receber os dados dela
Soluções




É possível projetar uma memória com
velocidade compatível com a CPU?
Sim, mas é muito caro!
Seria possível embutir a memória no chip da
CPU e reduzir o uso do barramento?
Sim, mas existem restrições ao aumento do
tamanho do chip!
A melhor Solução



Memória Cache!
Memória rápida, porem cara e de menor capacidade
Contudo, associada à memória principal, (barata e de
grande capacidade), resulta num sistema:
–
–
–
razoavelmente barato
razoavelmente rápida
de grande capacidade
Memória Cache


Na Cache são mantidas as palavras mais
usadas pelo processador
Se a maior parte dos acessos for resolvida
pela Cache, o tempo médio de acesso será
próximo do tempo de acesso ao Cache, que é
pequeno.
Arquitetura com a Cache

Conexão Lógica entre CPU, Cache e Memória
Principal.
X=X+Y
Notas importantes




O acesso à RAM não é totalmente aleatório
Referências à memória num certo intervalo de
tempo pequeno tendem a acessar uma pequena parte
da memória total
Essa pequena parte é geralmente chamada de bloco
Nestes blocos os endereços estão ordenados numa
seqüência lógica para a execução da CPU
Principio da Localidade

Definição:
–

Existe grande probabilidade que palavras próximas
a uma palavra recentemente referenciada também
sejam referenciadas nos próximos acessos
Aplicação:
–
Quando uma palavra é referenciada pelo
processador, se ela não estiver no Cache, ela é
trazida para o mesmo junto com palavras de
endereços vizinhos na memória principal
Organização




Memória principal é divididas em blocos de
endereços de tamanho fixo
A Cache é dividida em linhas
Sempre que uma endereço procurada não
estiver no Cache o bloco correspondente é
trazido da memória principal
É mais eficiente trazer k endereços de uma
vez do que uma endereço k vezes
Mapeamento


Como associar um dado na memória principal
a uma posição na Cache?
Mapeamento:
–
–
–
Direto
Associativo
Associativo por conjuntos
Mapeamento Direto



Cada bloco da memória principal é mapeado numa
linha na Cache, e cada linha da Cache possui um
rótulo
Como a Cache é muito menor do que a memória
principal, muitos endereços compartilham a mesma
linha
Um endereço é dividido em:
–
–
–
Rótulo
Linha
Palavra
Mapeamento Direto


O campo linha do endereço é usado para
endereçar a Cache e o campo Rótulo do
endereço é comparado com o campo Rótulo
da linha na Cache
É verificado se, dentre as palavras mapeadas
naquele linha existe a palavra que esta sendo
buscada
Mapeamento Direto



Endereços diferentes são mapeados na mesmo linha
Isso pode comprometer o desempenho, pois
palavras irrelevantes podem estar armazenadas na
mesma linha, enquanto palavras importantes podem
estar armazenadas em linhas diferentes da Cache
Se elas estão em diferentes linhas levará mais tempo
para encontra-las
Mapeamento Associativo



Permite que cada bloco da memória seja
carregado em qualquer linha da Cache
Nesse sistema a Cache é formada apenas por
um Rótulo e uma Palavra
Um rótulo identifica um bloco da memória
principal
Mapeamento Associativo


A busca de uma palavra na cache envolve duas
fases:
Determinação do número do bloco a partir do
endereço
–

Obtido dividindo o endereço pelo tamanho b do bloco.
Busca da linha que contém este número de bloco
–
Comparar simultaneamente os campos de número de
bloco de todos os linhas com o número de bloco
procurado
Mapeamento Associativo



Na cache associativa, a ordem das entradas é
aleatória
O microprograma busca a palavra na cache e, se não
estiver lá, vai a memória principal armazenando-a
Caso a cache esteja cheia alguma palavra deverá ser
descartada, de acordo com uma política de
substituição adequada
Comparação

Direto vs Associativo
Memória Secundaria




Memória de grande capacidade (dezenas de
Gigabytes).
Armazenamento massivo
Implementada em meio magnético (hard disk, fitas
magnéticas) ou ótico (CD-ROM, DVD-ROM).
Armazena programas e dados não processados
correntemente, mas que poderão eventualmente ser
utilizados (freqüência de acesso pequena).
Memória Secundária




Memória lenta e barata
Tempo de acesso da ordem de milissegundos
Pode também ser utilizada para emular memória
principal
Isso aumenta o espaço de endereçamento disponível
através de técnicas de memória virtual
Disco Magnético




Constituído de um prato circular de metal ou
de plástico, coberto com um material que pode
ser magnetizado
Os dados são gravados e posteriormente lidos
por meio de uma bobina chamada cabeçote
Durante a leitura o cabeçote permanece
estático, enquanto o disco gira embaixo dele
Durante a escrita ele emite pulsos magneticos
que gravam os dados no disco
Disco Magnético


Os dados são organizados no disco em forma
de círculos concêntricos chamados de trilha
Cada trilha tem a mesma largura do cabeçote
Disco Magnético




Trilhas adjacentes são separadas por espaços
Isso evita a ocorrência de erros devido a falta
de alinhamento do cabeçote ou a interferência
de campos magnéticos
Os dados são transferidos de e para o disco
em blocos
Os dados são armazenados em regiões do
tamanho de um bloco, chamadas setores
Características físicas

Movimento do cabeçote
–
–

Fixo – Existe um cabeçote para cada trilha
Móvel – Um por disco, que se move para alcançar
as trilhas
Transportabilidade do disco
–
–
Não-Removível – Montado permanentemente na
unidade de disco
Removível – Pode ser substituído por outro disco
na unidade
Características físicas

Lados
–
–

Único – Só um lado do disco é magnetizável
Duplo – Os dois lados são magnetizáveis
Pratos
–
–
Único
Múltiplos
Características físicas

Mecanismo do Cabeçote
–
Contato – O cabeçote toca o disco

–
Espaço Fixo – O cabeçote é posicionado a uma
certa de distancia do disco

–
Esta sujeito a erros mais barato
Os dados trafegam mais devagar que o anterior
Espaço Aerodinâmico – Evolução do mecanismo de
espaço físico, com cabeçote mais estreito e mais
próximo do disco
Características físicas

Cabeçote com Espaço Aerodinâmico
–
–
–
–
Aumenta a densidade de dados que trafegam
Disco fica envolvido numa região quase sem ar,
livre de varias impurezas
O cabeçote tem formato aerodinâmico
Foi desenvolvido para o modelo de disco
Winchester
Memória Óptica





Desenvolvida a partir de 1983
Surgiu com o CD
Era destinado apenas para o armazenamento
de áudio digital
Com CD-ROM passou a armazenar dados
Evoluiu para DVD, inicialmente proposto para
armazenar vídeo de alta qualidade
Memória Óptica


O disco é constituído de uma resina de
policarbonato
È depois revestida com uma superfície com
alto índice de reflexão
–

Geralmente alumínio
A informação digital é registrada na superfície
reflexiva como uma serie de sulcos
microscópicos
Memória Óptica



A gravação é feita primeiro com um laser de alta
intensidade muito bem focado para criar a um disco
matriz
Essa matriz é um molde para as cópias
A superfície sulcada é protegida contra pó e
arranhões
Memória Óptica




A leitura é feita com um laser de baixa
potencia
O feixe passa através da cobertura protetora
enquanto o motor gira o disco
Ao encontrar um sulco a intensidade da luz
muda
Essa mudança é detectada por um foto-sensor
e convertida num sinal digital
Download