Revisão. Conceitos Fundamentais Arquitetura da CPU Unidade de Controle Unidade lógica e...
Transcript of Revisão. Conceitos Fundamentais Arquitetura da CPU Unidade de Controle Unidade lógica e...
Revisão
Conceitos Fundamentais
Arquitetura da CPU
Unidade de
Controle
Unidade lógica e
Aritmética
Barram
ento
intern
o
Registradores
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 011. 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 Fim Busca da próxima instrução
Execução da
instrução
Ciclo de busca
Ciclo de execução
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
Formato dos números
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
Código da operação
Endereço
Sinal Magnitude
0 3 4 15
0 1 15
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:
1940
5941
2941
0003
0002
300
1940
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 1
O Ciclo de instruções
Exemplo:
1940
5941
2941
0003
0002
301
0003
1940
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 2
O Ciclo de instruções
Exemplo:
1940
5941
2941
0003
0002
301
0003
5941
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 3
O Ciclo de instruções
Exemplo:
1940
5941
2941
0003
0002
302
0005
5941
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 4
3 + 2 = 5
O Ciclo de instruções
Exemplo:
1940
5941
2941
0003
0002
302
0005
2941
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 5
O Ciclo de instruções
Exemplo:
1940
5941
2941
0003
0005
303
0005
2941
300
301
302
940
941
942
PC
AC
IR
Memória Registradores da CPU
Passo 6
O Ciclo de instruções
Ciclo ampliado
Busca da instrução
Execução da instrução
Interpretação da instrução
Calculo de
endereço do
operando
Busca de operando
Armazenamento do operando
Cálculo do
endereç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 da instrução
Execução da
instruçãoInterpretação da instrução
Calculo de
endereço do
operando
Busca de operando
Armazenamento do operando
Cálculo do endereç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 3Instrução Instante de Tempo
1 2 3 4 5 6 7 8 9
1BI DI CO BO EI AO
2BI DI CO BO EI AO
3BI DI CO BO EI AO
4BI DI CO BO EI 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 4Instrução Instante de Tempo
1 2 3 4 5 6 7 8 9
1 BI
DI COBO
EI AO
2 BI
DI COBO
EI AO
3 BI
DI COBO
EI AO
4 BI
DI COBO
EI AO
Pipeline do ciclo
Exemplo 5Instrução Instante de Tempo
1 2 3 4 5 6 7 8 9
1 BI
DI COBO
EI AO
2 BI
DI COBO
EIAO
3 BI
DI COBO
EI AO
4 BI
DI COBO
EI AO
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 6Instrução Instante de Tempo
1 2 3 4 5 6 7 8 9
1 BI
DI COBO
EI AO
2 (salto p/ 5)
BI
DI COBO
EI AO
3 BI
DI COBO
4 BI
DI CO
5 BI
DI CO
Pipeline do ciclo c/ desvio
Exemplo 6 (continuação)Instrução Instante de Tempo
10 11 12 13 14 15 16 17 18
1
2 (salto p/ 5)
3 EI AO
4 BO
EI AO
5 (salto p/3)
BO
EI AO
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 vice-versa), 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
Esta sujeito a erros mais barato
– Espaço Fixo – O cabeçote é posicionado a uma certa de distancia do disco
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