Anda di halaman 1dari 63

Arquitetura de Computadores

Olivert
Organização Básica

• Composição básica de um Computador


eletrônico digital

– Processador

Memória Principal
– Memória
Memória Secundária

– Dispositivos de entrada e saída interligados


Memória
• Parte do computador onde os programas e os
dados são armazenados.
• Elemento a ser manipulado: bit (armazena a
informação na forma de bits)
• Unidade de informação a ser armazenada,
recuperada ou transferida (célula) - Grupo de n bits
(n = 8)  1 Byte

• ENDEREÇO: código de identificação da localização


das células (informações).
Memória
Operações:

• ESCRITA: transferência de informações de outro


componente do sistema de computação para a
memória (CPU  memória)

• LEITURA: transferência de bits da memória para a


CPU, disco.
Memória
• Memória de um computador  subsistema -
construída de vários componentes (vários tipos
diferentes de memória) interligados e integrados,
com o objetivo de armazenar e recuperar
informações.

• Conceitos Importantes
– Tempo de acesso
– Capacidade
– Volatilidade
– Tecnologia de fabricação
– Temporariedade
– Custo
Memória

• Em um sistema de computação não é possível


construir e utilizar apenas um tipo de memória.

• Para certas atividades, por exemplo, é fundamental


que a transferência de informações seja a mais
rápida possível.

Hierarquia de Memória
Memória
Custo alto
Velocidade alta
Baixa capacidade

Registradores

Memória Cache

Memória Principal

Discos
Custo baixo Memória Secundária
Velocidade baixa CD-ROM
Capacidade
elevada
Memória - Registradores

• Elementos superiores da pirâmide de memória,


por possuírem a maior velocidade de
transferência dentro do sistema (menor tempo
de acesso), menor capacidade de
armazenamento e maior custo.

• Memórias rápidas usadas em execução de


instruções dentro do processador (objetivo:
minimizar os acessos às memórias externas ao
processador).
Memória - Registradores
Podem ser divididos grosseiramente em 2 categorias

• Registradores de propósito específico


– cumprem funções específicas (Ex.: PC ou IP e
SP)
– alguns só são usados pelo processador

• Registradores de propósito geral


– usados para armazenar variáveis locais e
resultados intermediários
– são, em geral, simétricos e intercambiáveis
(usados indistintamente)
Memória - Registradores
• Parâmetros: Menor tempo de acesso, baixa
capacidade (Ex.: 32 bits, 64 bits), dispositivos
voláteis, memória de semicondutores,
armazenamento temporário e apresenta o custo
mais elevado.

EAX
RAX
Memória Principal
• A memória básica de um sistema de computação
desde seus primórdios.
• É o dispositivo no qual o programa (e seus dados)
que vai ser executado é armazenado para que a
CPU "busque" instrução por instrução.
Memória Principal
Parâmetros

• Capacidade – na ordem de 512 MB (ou 1 GB),


por exemplo.
• Dispositivos voláteis. Há normalmente uma
pequena quantidade de memória não volátil
fazendo parte da memória principal (contém o
BIOS).
• Tecnologia - em sistemas atuais esta tecnologia
produz memória com elementos dinâmicos (por
exemplo: DRAM).
Memória Principal

Endereço 0 Endereço 0

Leitura/ RAM
escrita
R/W
R/W
RAM

ROM ROM

Endereço N-1 Endereço N-1

a) Nomenclatura correta b) Nomenclatura popular

Configuração da memória principal (MP) de um microcomputador do tipo


PC.
Parâmetros
Memória Principal
• Temporariedade - variável, depende de várias
circunstâncias (p. ex.: tamanho do programa e sua
duração, a quantidade de programas que estão
sendo processados juntos, etc.). A transitoriedade
com que as informações permanecem
armazenadas na MP é, em geral, mais duradoura
que na memória cache ou nos registradores.

• A DRAM têm um custo mais baixo que o das


memórias cache - são vendidos computadores com
quantidade apreciável de MP (32 MB, 64 MB, 128
MB, 256 MB, 512 MB) sem que o preço seja
inaceitável.
Memória Principal

Quanto maior a capacidade de armazenamento


(em Bytes), maior a capacidade de
processamento.

Uso de memória virtual - Uso do HD como


extensão da Memória Principal.
Memória Principal
Endereços de Memória

• Memória – formada por um conjunto de células


(posições), cada uma guarda uma informação.
• Célula – menor unidade endereçável (tamanho
padrão usual – 8 bits – 1 byte).
• Bytes são agrupados em palavras (palavra de 32
bits tem 4 bytes/palavra).
• A maioria das instruções de uma máquina opera
sobre palavras. Uma máquina de 32 bits deverá
ter registradores e instruções para tratar
palavras de 32 bits.
Memória Principal

Endereços de Memória

• Endereço da célula – número associado à célula,


que permite aos programas referenciá-la.
• Memória de n células – 0 a n – 1 endereços
• Célula de k bits – pode armazenar 2 k
combinações de bits.
Memória Principal
Três maneiras de se organizar uma memória de 96 bits
Endereço Endereço 1 célula Endereço

0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 16 bits
7 7 (c)
8 12 bits
9 (b)
10
11
8 bits
(a)
Memória Principal
Memória Principal - Ordenação dos Bytes

• Existem, basicamente, 2 formas de organização dos


bytes em uma palavra de memória
– Ordenação Big endian
– Ordenação Little endian

Os termos big endian (maior valor-big-em primeiro lugar-menor endereço) e little


endian (menor valor-little-em primeiro lugar) foram inseridos no jargão da computação
por um artigo publicado em 1981, citando o problema e relacionando-o a um episódio
mencionado no livro As Viagens de Gulliver – povo que foi à guerra para decidir qual
a melhor maneira de quebrar ovos, se pelo maior (big) lado ou se pelo menor (little)
lado.
Memória Principal

Memória Principal - Ordenação dos Bytes

Ordenação Big endian

• Bytes são numerados da esquerda para a


direita (0, 1, 2,..., n-1)
• Usada por sistemas Unix (arquiteturas SPARC,
IBM Mainframe)
Memória Principal

Memória Principal - Ordenação dos Bytes

Ordenação Little endian

• Bytes são numerados da direita para esquerda


(n-1, ..., 2, 1, 0)
• Usada por IBM PCs (arquiteturas INTEL)
Memória Principal
Ordenação dos Bytes

• Exemplo:
Memória Principal
Problemas causados pela falta de padronização do
armazenamento em memória:

• interpretação de instruções e dados em redes.


• softwares que rodam em várias plataformas
devem tratar essas diferenças.
• uso de plataformas de palavras de diferentes
tamanhos.
• Importante: A solução para o problema não é
trivial, em geral se baseia em inversão dos
bytes. Isto funciona para valores numéricos mas
não para cadeias de caracteres.
Memória Principal
Códigos com Correção de Erros
Problema:
• Dados da memória podem, ocasionalmente, conter
erros causados por oscilação de tensão, por exemplo.

Solução:
• Dados são armazenados na memória com um código
que permita a detecção ou correção de erros.
• São acrescentados bits extras nas palavras de
memória usados para verificar a exatidão da
informação.
• Uma palavra de código de n (=m+r) bits conterá: m bits
de dados + r bits de redundância (ou verificação).
Memória Principal
Códigos com Correção de Erros

Processo básico de detecção/correção de erros.


Memória Principal
Códigos com Correção de Erros
• Distância de Hamming - igual ao número de bits
correspondentes que diferem em duas palavras de
código quaisquer.
• As propriedades de detecção de erros e de correção de
erros dependem fundamentalmente da sua distância de
Hamming.

• Exemplo: As palavras de código 10001001 e 10110001


distam 3 unidades de Hamming.
• Observação: É necessário que ocorram 3 erros
(inversões) nos bits em destaque da palavra 2 para que
ela se transforme na palavra 1.
Memória Principal
Códigos com Correção de Erros
Exemplo:

• Detecção de d erros  distância de Hamming =


d+1

• Correção de d erros  distância de Hamming =


2d+1 (mesmo em presença de d erros, a palavra
de código original pode ser recomposta por meio
dos bits redundantes)
Memória Principal
Códigos com Correção de Erros

Bit de Paridade:
Paridade Definido pelo número de 1s que
ocorrem em uma palavra.
Paridade par: associada a um número par de 1s.
Paridade ímpar: associada a um número ímpar de 1s.
Memória Principal
Códigos com Correção de Erros
Exemplo:
– Inclusão de 1 bit de paridade (0 - par e 1 - ímpar)
aos bits de dados da palavra de código.
– A ocorrência de 1 único erro produz palavra de
código errada (Distância de Hamming=2, são
necessários 2 erros para transformar uma
palavra de código válida em outra palavra de
código válida).
– Erro só é detectado, e não corrigido. Programa
cancela o processamento para não gerar
resultados errados.
Tipos de Memória e
Encapsulamento
• Unidade de memória – grupo de chips, em geral 8 e 16,
montado em uma placa de circuito impresso.
Denominações:
• SIMM (Single in Line Memory Module) – uma linha de
conectores em apenas um lado da placa.
• DIMM (Dual in Line Memory Module) – uma linha de
conectores em ambos os lados da placa.
• SO-DIMM (Small Outline DIMM) – DIMM fisicamente
menor, utilizada, por exemplo, em notebook.
Tipos de Memória e
Encapsulamento

Tanto as memórias SIMM quanto as DIMM vêm com


um bit de paridade ou com bits para correção de
erros. Porém, como as estatísticas mostram que a
taxa de erro de um desses módulos é de um erro a
cada 10 anos, a grande maioria dos computadores
não implementa nem a detecção e muito menos a
correção de erros.
Tipos de Memória e
Exemplo:
Encapsulamento Chips de memória de
4 MB

Conector

SIMM/72 – Possui 72 conectores. Utilizada em processadores


486, Pentium e superiores é um módulo SIMM de 32 bits,
encontradas, por exemplo, nas versões de 4 MB, 8 MB, 16 MB e
32 MB. No caso de uma máquina definida como de 64 bits*,
como o Pentium, essas placas são usadas aos pares, cada uma
delas acessando metade dos bits necessários a uma operação
com a memória.
Tipos de Memória e
Encapsulamento

DIMM/168 – Possui 84 conectores banhados a ouro de cada


lado, perfazendo um total de 168 conectores. É um módulo
de 64 bits. A capacidade está acima de 64 MB.
Os primeiros eram alimentados com 5V e usavam memórias
como FPM e EDO. Os mais modernos são alimentados com
3,3V e usam memórias SDRAM.
Tipos de Memória e
Encapsulamento

RIMM - Rambus In Line Memory Module. Esses módulos


são padronizados pela Rambus para a utilização de
memórias RDRAM.
Tipos de Memória e
Encapsulamento
• DDR - Double Data Rating é a tecnologia que
substituiu as tradicionais memórias DIMM de 168
pinos.
• Tipo de memória baseado na tecnologia SDRAM.
• Podem realizar o dobro de operações por ciclo de
clock.
– Exemplo: uma memória DDR de 266 MHz
trabalha, na verdade, com 133 MHz. Como
realiza duas operações por vez, é como se
trabalhasse a 266 MHz (o dobro).
Tipos de Memória e
Encapsulamento
• Dual DDR - baseia-se na idéia: em vez de utilizar
uma única controladora para acessar todos os slots
de memória da placa-mãe, por que não usar duas
controladoras ao mesmo tempo? Essa é a principal
diferença do esquema Dual DDR.

• DDR 2 - Evolução da DDR, não é compatível com


placas-mãe que trabalham com memória DDR.
Problemas (Processador – Memória)

• Acesso à memória, leitura e escrita, é um dos


motivos para menor velocidade de processamento.
• Processador é muito mais rápido do que a
transferência de dados.

Soluções
• Processador deve executar outras instruções
enquanto aguarda acesso à memória. Isto nem
sempre é possível e é difícil de implementar.
• Colocar memória principal no Chip do processador.
Isto tornaria o chip maior e mais caro.
• Uso de uma memória menor e mais rápida (em
relação à memória principal) chamada Memória
Cache.
Memória Cache
• Dispositivo de memória entre a CPU e a MP
• Função: acelerar a velocidade de transferência das
informações entre CPU e MP, aumentando o
desempenho dos sistemas.
• Usada para armazenamento de instruções e dados mais
freqüentemente acessados do programa em execução.
• As palavras de memória mais usadas pelo processador
devem permanecer armazenadas na cache.  Somente no
caso de ela não estar armazenada na cache é que a
busca se dará na memória principal.

Cache – da palavra francesa cacher, que significa esconder.


Memória Cache

Logicamente – cache é colocada entre o processador e


a memória principal.

Fisicamente – existem vários lugares possíveis para a


cache.
Memória Cache

Memória cache e Memória principal.


Memória Cache

Organização típica de uma memória cache.


Memória Cache

Exemplo de funcionamento do sistema

• CPU vai buscar uma nova instrução (ou dado),


após a busca inicial  acesso à memória cache.
• Instrução (ou dado) na cache  acerto (hit).

• Instrução (ou dado) não está na cache 


falta/falha (miss)
Memória Cache

Falha no acesso à cache – ocorre sempre que o


processador procura uma informação na cache e
essa informação não está armazenada neste local,
havendo necessidade de buscá-la na memória
principal.
Memória cache e Memória principal.
Memória Cache
• Número de linhas de memória cache < número
de blocos da memória principal. Solução:
– Utilizar um algoritmo para mapear os blocos da
memória principal em linhas da memória
cache;
– Utilizar um mecanismo para determinar o bloco
da memória principal que ocupa uma dada
linha da memória cache.

• Técnicas utilizadas:
– Mapeamento direto
– Mapeamento associativo
– Mapeamento associativo por conjuntos
Memória Cache
Mapeamento direto

• Cada bloco da memória principal é


mapeado em uma única linha de cache.
• Vantagem: simplicidade e baixo custo
• Desvantagem: cada bloco é mapeado
em uma posição fixa da memória cache.
Memória Cache
Mapeamento associativo
– Cada bloco da memória principal é
carregado em qualquer linha da memória
cache
– Vantagem: oferece maior flexibilidade
para escolha do bloco a ser substituído
quando um novo bloco é trazido para a
memória cache.
– Desvantagem: complexidade do conjunto
de circuitos necessários.
Memória Cache

Mapeamento associativo por conjuntos


• Combina as vantagens do
mapeamento direto e do mapeamento
associativo e diminui suas
desvantagens.
Memória Cache
• Quando um novo bloco é trazido para a
memória cache, um dos blocos existentes deve
ser substituído.
– Mapeamento direto – cada bloco é mapeado
em uma única linha, o que determina o bloco
a ser substituído, não há alternativa.

– Mapeamento Associativo e Associativo por


Conjuntos – uso de algoritmo de substituição.
Memória Cache
• Algoritmos de substituição
– LRU (Least Recently Used) – substituir o bloco
usado menos recentemente.
– FIFO (First-in-first-out) – substituir o bloco que
está no conjunto há mais tempo.
– LFU (Least Frequently Used) – substituir o
bloco que foi utilizado menos vezes.
– Outra técnica - substituir aleatoriamente uma
das linhas candidatas.
Memória Cache
• Fabricada com tecnologia semelhante à da CPU
(possui tempos de acesso compatíveis, resultando
numa considerável redução da espera da CPU
para receber dados e instruções da cache, ao
contrário do que acontece em sistemas sem
cache).
• Há diversos tipos de memória cache utilizados em
sistemas de computação modernos: Cache para a
Memória Principal (RAM cache), Cache para
Disco.
• Podem existir caches primárias (dentro do
processador) e outra secundária (fora do chip do
processador) e até uma terceira cache mais
externa.
Memória Cache
• Podem ser inseridas em dois (ou três) níveis:
Cache L1 (Level 1) - nível 1, Cache L2 e Cache
L3.
• Cache L1 (primária) - interna ao processador.
• Cache L2 (externa ou secundária) - instalada,
em geral, na placa-mãe do computador.
Atualmente: localizada no interior da pastilha
do processador, separada deste (cache
backside).
Memória Cache
• Cache L3 – Existente em alguns
processadores, localizada externamente ao
processador.

• Quanto mais próxima do processador, melhor


será o desempenho do mesmo.
Memória Cache
• Cache unificada
– Instruções e dados usando a mesma cache;
– Mais simples de projetar;
– Estabelece automaticamente um equilíbrio
entre as buscas de instruções e as buscas de
dados.
• Cache dividida (Arquitetura de Harvard)
– Uma cache para instruções e outra para
dados;
– Permite acesso em paralelo a instruções e a
dados.
Organização
das
Memórias
Cache do
Pentium
Memória Cache
Parâmetros

• Capacidade - deve-se conciliar o compromisso


de uma apreciável capacidade com a não-
elevação demasiada de seu preço. Ex.: 16K a
2 MB
• Dispositivos voláteis.
Memória Cache
Parâmetros

• Tecnologia - circuitos eletrônicos de alta


velocidade. Em geral, são memórias RAM
estáticas (SRAM).
• Armazenamento temporário.
• O custo de fabricação das memórias cache é
alto. Memórias cache internas à CPU ainda
são mais caras do que as externas.
Memória Secundária
• Denominada memória secundária, memória

auxiliar ou memória de massa.

• Objetivo: garantir um armazenamento mais

permanente à toda a estrutura de dados e

programas do usuário - deve possuir maior

capacidade que a memória principal.


Memória Secundária
• Pode ser constituída por diferentes tipos de

dispositivos, alguns diretamente ligados ao

sistema para acesso imediato (Ex.: discos

rígidos), e outros que podem ser conectados

quando desejado (Ex.: disquetes, fitas, CD-

ROM etc.).
Memória Secundária
Parâmetros

• Tempo de acesso/ciclo de memória - são, em


geral, dispositivos eletromecânicos e não
circuitos puramente eletrônicos - possuem
tempo de acesso maiores. Discos do tipo CD-
ROM: 120 a 300 ms, por exemplo, fitas
magnéticas - ordem de segundos.
Memória Secundária
Parâmetros

• Capacidade - varia bastante dependendo do


tipo de dispositivo utilizado. Exemplos: Discos
rígidos - 160 GB, CD-ROM - 700 MB, fitas
magnéticas (a capacidade depende do
comprimento da fita e da densidade de
gravação).
Memória Secundária
• Volatilidade - não voláteis.
• Tecnologia - este parâmetro possui uma variedade
imensa de tipos, visto que, para cada dispositivo entre
os já mencionados (discos rígidos, disquetes, fitas,
CD-ROM, CD R/W, DVD, etc.), há diferentes
tecnologias de fabricação.
• Temporariedade - armazenamento com caráter
permanente ou, pelo menos, de longo período de
armazenamento.
• Custo - bastante variado.
Memória
principal
Processador
(Cache L1 e
Registradores
)
Memória
secundária

Cache L2
(separado)

Anda mungkin juga menyukai