Sunteți pe pagina 1din 17

Arquitetura de Computadores

CAPTULO 2 ORGANIZAO DE COMPUTADORES

2.1 Organizao de um Computador Tpico

Memria: Armazena dados e programas.


Processador (CPU - Central Processing Unit): Executa programas
armazenados na memria, interpretando suas instrues, ou seja,
buscando as instrues na memria, decodificando-as e executando-as,
uma aps a outra.
Dispositivos de Entrada e Sada (E/S ou I/O - Input/Output):
estabelecem comunicao com o mundo externo (operador ou outros
dispositivos).
Barramento: Conjunto de conexes eltricas/lgicas paralelas que
permite a transmisso de dados, endereos e sinais de controle entre os
diversos mdulos funcionais do computador.

CPU Memria Dispositivos


E/S

Barramento

Figura 2.1. Organizao de um computador simples.

2.2 Organizao do Processador

Memria de Rascunho (MEM RASC): conjunto pequeno (algumas


dezenas) de registradores dedicados rpidos para armazenamento
temporrio de dados relativos decodificao e execuo de instrues.
Unidade Lgica Aritmtica (ULA): Circuito lgico combinacional que
realiza operaes booleanas sobre palavras armazenadas na memria de
rascunho e armazena o resultado na mesma.
Vias Internas: Barramentos dedicados que permitem a transmisso de
dados da memria de rascunho para a ULA e vice-versa.
Caminho de Dados: Memria de Rascunho + ULA + Vias Internas.
Unidade de Controle (UC): Circuito lgico seqencial responsvel pela
gerao dos sinais de controle do Caminho de Dados na seqncia
adequada para implementar interpretao de instrues.
Arquitetura de Computadores

CAMINHO DE DADOS

Memria de
Rascunho

Unidade
de
Controle Registrador de
A B Entrada da ULA
Barramento de
Entrada da ULA
ULA

Registrador de
f(A,B)
Sada da ULA

Figura 2.2. Organizao do Processador e do Caminho de Dados.

Operao do Caminho de Dados (Ciclo de Mquina):

Leitura dos registradores da memria de rascunho.


Escrita nos registradores de entrada da ULA.
A operao da ULA correntemente selecionada executada.
O resultado do processamento da ULA escrito no registrador de
sada da ULA.
O registrador de sada da ULA lido.
O seu contedo copiado para o registrador de destino na memria
de rascunho.
Arquitetura de Computadores

2.3 Interpretao de Instrues

Conjunto de Instrues: Todas as instrues disponveis ao programador


de um dado nvel de mquina virtual. (Nvel de linguagem de mquina:
tipicamente, de 20 a algumas centenas de instrues).
Contador de Programa (PC Program Counter): Registrador da
memria de rascunho, ponteiro que armazena o endereo na memria
principal onde se localiza a prxima instruo a ser interpretada.
Registrador de Instruo (IR Instruction Register): Registrador da
memria de rascunho que armazena a Instruo corrente que foi
buscada na memria principal.

Interpretao de Instrues Ciclo de Busca-Decodificao-Execuo:

i. Busca da prxima instruo no endereo da memria principal


apontado pelo PC e armazenamento da mesma no IR.
ii. Atualizao do PC, fazendo-o apontar para a instruo seguinte
(PC := PC +1).
iii. Determinao do tipo de instruo armazenada no IR.
iv. Se a instruo precisa de operandos armazenados na memria
principal, os seus endereo devem ser determinados.
v. Caso necessrio, busca de operandos na memria principal.
vi. Execuo da instruo.
vii. Retorno ao passo i para iniciar a execuo da instruo seguinte.

Observao: O ciclo de busca-decodificao-execuo pode ser


implementado em hardware ou software (interpretador = microprograma).

Caractersticas da interpretao em software:

Deve-se projetar um hardware para rodar o interpretador.


O projeto do hardware simplificado reduo de custo.
Complexidade concentrada no interpretador.
Instrues complexas podem ser adicionadas facilmente.
Instrues mais complexas levam a execuo mais rpida embora
individualmente possam ser mais lentas.
Seqncias freqentes de instrues simples so candidatas a
serem codificadas numa nica instruo complexa.
Em mquinas de alto desempenho, instrues complexas podem
ser implementadas em hardware, mas a compatibilidade exige
que instrues complexas sejam includas em mquinas simples.
Arquitetura de Computadores

Novas instrues podem ser incorporadas facilmente.


O projeto estruturado permite desenvolvimento, teste e
documentao fceis e eficientes.
Erros de implementao podem ser corrigidos no campo.
Novas mquinas de uma mesma famlia podem ser projetadas e
colocadas no mercado rapidamente.
Memrias ROM velozes (Memria de Controle) devem ser utilizadas
para armazenar o microcdigo (microprograma, constitudo por
microinstrues).

Mquinas CISC x Mquinas RISC

A "inflao" dos conjuntos de instrues interpretadas por microprogramas


e a resultante perda de desempenho levaram busca de diretrizes de projeto
que priorizassem a eficincia na execuo de instrues.

CISC RISC
Complex Instruction Set Computer Reduced Instruction Set Computer
Princpio: microprograma interpreta Princpio: Conjunto de instrues
instrues complexas. constitudo por instrues simples de
Microinstrues primitivas que uso muito freqente. Instrues mais
compem o microprograma so complexas devem ser implementadas
executadas por um hardware como combinao de instrues
simples. simples
Projeto visa simplificar o hardware e Projeto visa um melhor desempenho.
diminuir o fosso semntico entre as Atravs da execuo eficiente de
linguagens de alto nvel e a instrues.
linguagem de mquina.
Complexidade concentrada no Complexidade concentrada no
projeto do microprograma. projeto do compilador.
Conjunto grande (centenas de Conjunto pequeno (no mais do que
instrues). Poucas instrues de uso trs dezenas de instrues). Todas as
frequente, muitas raramente usadas. instrues so de uso freqente.
Instrues complexas, interpretadas Instrues primitivas simples,
por microprograma. interpretadas pelo hardware.
Execuo de uma instruo demora Execuo de uma instruo em um
vrios ciclos de mquina. nico ciclo de mquina.
Compatibilidade fcil de ser Compatibilidade difcil de ser
mantida. mantida.

Figura 2.3. CISC x RISC.


Arquitetura de Computadores

2.4 Princpios de Projeto na Atualidade (princpios "RISC"):

Todas as instrues devem ser executadas diretamente pelo hardware.


Observao: Para mquinas que seguem a filosofia CISC, soluo
hbrida: ncleo "RISC" executado diretamente pelo hardware em um
ciclo de mquina, instrues complexas executadas interpretadas.
Maximizao a taxa de execuo de instrues. Explorar ao mximo as
possibilidades de paralelismo, (desde que a ordem de execuo assim o
permita).
Fcil decodificao das instrues. Explorar regularidade e simplicidade
de formato de instrues.
Referncia memria apenas atravs de instrues LOAD e STORE.
Instrues devem operar sobre registradores, minimizando atrasos
devidos a referncias memria principal.
Disponibilidade de um grande nmero de registradores. Evitar ao
mximo referncias memria principal.

2.5 Execuo Paralela de Instrues

Lei de Moore: "O nmero de transistores integrados em um chip dobra


a cada dezoito meses".

Limites Fsicos: Velocidade da luz 20 cm/ns no cobre. Soluo:


miniaturizar para diminuir tempo de propagao dos sinais no chip.
Problema: efeitos de dissipao trmica (efeito Joule) potencializados com
o aumento da densidade de componentes no chip.

Paralelismo no Nvel de Instrues:

Paralelismo dentro das instrues individuais (sem alterar a seqncia),


de modo a que o processador execute mais instrues por segundo.
Instruo nica - Dado nico (SISD - Single Instruction Single Data).

Pipeline:

Acesso memria principal o "gargalo" na execuo de instrues.


Soluo simples: Pr-Busca (Pre-Fetch).
Instrues buscadas antecipadamente e armazenadas em um
buffer de pr-busca.
Prxima instruo a ser executada obtida a partir do buffer.
Fases de Pr-Busca e Execuo realizadas em paralelo.
Arquitetura de Computadores

Soluo Aprimorada: Pipeline.


Ciclo de busca-decodificao-execuo dividido em etapas,
processadas simultaneamente por unidades (estgios) de
hardware dedicadas.
Exemplo: considerando um pipeline de cinco estgios,
enquanto uma instruo est sendo buscada (pelo estgio de
busca), a anterior j est sendo decodificada (pelo estgio de
decodificao). Por sua vez, os operandos da instruo anterior
a esta esto sendo buscados (pelo estgio de busca de
operandos). Simultaneamente, a instruo anterior a esta est
sendo executada (no estgio de execuo). Ao mesmo tempo,
os resultados da execuo da instruo anterior a esta ltima
so escritos em registradores (pelo estgio de escrita).

Estgio 1 Estgio 2 Estgio 3 Estgio 4 Estgio 5


Busca de Decodifi- Busca de Execuo Escrita
Instruo cao de Operando de
Instruo Instruo

Clock 1 2 3 4 5 6 7
Estgio
E1 1 2 3 4 5 6 7
E2 1 2 3 4 5 6
E3 1 2 3 4 5
E4 1 2 3 4
E5 1 2 3

Figura 2.4. Pipeline de cinco estgios.

Latncia: tempo de execuo de uma instruo = n.T, onde n


o nmero de estgios do estgios do clock e T o ciclo do
clock.
Banda Passante: nmero de instrues executadas por segundo
(unidade: MIPS - Milhes de Instrues por Segundo).
Idealmente, Banda passante = 1000/T MIPS, (com T em ns).
Instrues de desvio prejudicam o desempenho do pipeline.
Podem ser utilizados dois (ou mais) pipelines em paralelo.
(Compilador ou hardware deve garantir que se executem
apenas pares de instrues em que uma no depende da outra).
Arquitetura de Computadores

Arquiteturas Superescalares:

Princpio: a fase de execuo geralmente demora consideravelmente


mais que as outras fases da interpretao.
Aplicao: Arquitetura Superescalar. Pipeline nico, mas dotado de
vrios estgios de execuo trabalhando em paralelo.
O ganho de desempenho se deve a que os estgios anteriores do
pipeline so capazes de distribuir instrues a uma velocidade bem
maior do que a capacidade de execut-las do estgio de execuo.

Estgio 4
ULA

ULA

Estgio 1 Estgio 2 Estgio 3 Estgio 5


Busca de Decodifi- Busca de LOAD Escrita
Instruo cao de Operando
Instruo

STORE

Ponto
Flutuante

Figura 2.5. Processador Superescalar com Unidades de Execuo.


Arquitetura de Computadores

Paralelismo no Nvel de Processador:

Vrios processadores trabalhando em paralelo.


Ao contrrio do paralelismo no nvel de instruo, que consegue
acelerar o desempenho em at, no mximo, dez vezes, o paralelismo em
nvel de processador permite obter ganhos da ordem de dezenas,
centenas, ou mais ainda.

Computadores Matriciais:

Instruo nica - Dados Mltiplos (SIMD - Single Instruction


Multiple Data).

Processadores Matriciais:

Grande nmero de processadores, arranjados matricialmente, que


executam a mesma seqncia de instrues sobre diferentes
conjuntos de dados.
Uma unidade de controle distribui instrues em broadcast para
todos os processadores.

Unidade de Controle
Instrues enviadas em broadcast

Processador

Memria

Grade processador/memria 4x4

Figura 2.6. Processador Matricial.


Arquitetura de Computadores

Processadores Vetoriais:

Parecidos com os processadores matriciais, vrios processadores


compartilham uma nica unidade de controle
Eficientes na execuo de uma mesma seqncia de instrues
sobre pares de elementos de dados.
Mais lentos que os processadores matriciais, mais com um
hardware bem mais simples (e mais barato).
Mais fceis de serem programados do que os processadores
matriciais.
Diferentemente dos processadores matriciais, as operaes
lgicas e aritmticas so realizadas por uma nica ULA que opera
em pipeline.
Baseados em ULA Vetorial opera sobre Registradores Vetoriais
(registradores que podem ser carregados por meio de uma nica
instruo.
O processamento vetorial pode ser facilmente incorporado a
processadores convencionais. Instrues que podem ser
vetorizadas so assim executadas bem mais rapidamente.

A B

f(A,B)

Figura 2.7. ULA vetorial.


Arquitetura de Computadores

Multiprocessadores:

Ao contrrio dos computadores matriciais, que compartilham uma


nica unidade de controle, os multiprocessadores so compostos
por processadores independentes, cada qual com a sua prpria
unidade de controle.
Instrues Mltiplas - Dados Mltiplos (MIMD - Multiple
Instruction Multiple Data).
Processadores compartilham a mesma memria atravs de um
barramento comum.
Devem implementar tcnicas que garantam a integridade dos
dados compartilhados.
Tipicamente, o nmero de processadores menor do que 64. Para
nmeros maiores, aumenta muito a probabilidade de conflito no
acesso aos dados, derrubando o desempenho.
Processadores podem incluir alguma memria local, de uso
exclusivo, para armazenar dados e programas que no precisam
ser compartilhados, de modo a minimizar conflitos.
O modelo de memria compartilhada torna a sua programao
extremamente fcil.

Memria Memria Memria Memria


Local Local Local Local

Processador Processador Processador Processador

Memria
Compartilhada

Figura 2.8. Multiprocessador


Arquitetura de Computadores

Multicomputadores:

Ao contrrio dos computadores matriciais, que compartilham uma


nica unidade de controle, os multicomputadores so compostos
por processadores independentes, cada um com a sua prpria UC.
Diferentemente dos multiprocessadores, no compartilham
memria (LOAD e STORE s acessam memria local).
So mais fceis de construir do que os multiprocessadores.
So mais difceis de programar do que os multiprocessadores.
Constitudos por um grande nmero de ns, (ex.: 10.000 ns).
Cada n constitudo por um ou mais processadores dotados de
memria RAM local, memria secundria, dispositivos de
entrada e sada e um processador de comunicao.
Atravs dos seus processadores de comunicao, os ns so
interligados por uma rede de interconexo de alto desempenho.
Os ns se comunicam por um sistema de troca de mensagens
(primitivas send e receive).
O nmero elevado de ns torna invivel a ligao de cada n com
todos os demais. necessrio o uso de topologias tais como
grades 2D ou 3D, rvores, anis, etc., aliadas a tcnicas de
roteamento de mensagens.
Duas grandes categorias:
Processadores Fortemente Paralelos (MMPs - Massively
Parallel Processors): baseados em redes de interconexo
proprietrias de alto desempenho.
Agrupamentos de Estaes de Trabalho (COWs - Cluster of
Workstations): baseados em componentes comerciais
conectados atravs de rede comercial.

N N ... N Proc. Proc. ... Mem.

Rede de Interconexo Local


Rede de Interconexo de Alto
Desempenho Processador de E/S
Comunicao N
(a) (b)

Figura 2.9. a) Multicomputador tpico. b) N tpico.


Arquitetura de Computadores

2.6 Organizao de Memria

Hierarquia de Memria:

Para uma maior eficincia na referncia memria, a mesma


estruturada hierarquicamente.
Informaes referidas com maior freqncia so trazidas mais perto
da CPU, armazenadas em memrias mais rpidas, (tambm mais caras,
o que implica em menor capacidade de armazenamento).

Freqncia de Acesso, Custo. Capacidade, Tempo de Acesso.


Me-
Ciclo mria de Bytes
Rascunho ns
KB-MB
US$/MB Cache
Ciclos
10-100 MB
Memria Principal
semicondutores
Dispositivos
US$/100MB Memria Secundria:
magneto-
Disco Magntico pticos
US$/GB ms
> ms 1-10 GB
Fita Magntica Disco ptico

Figura 2.10. Hierarquia de Memria.

Memria de Rascunho:

Memria semicondutora de pequena capacidade (no mximo, algumas


dezenas de registradores), localizada na CPU.
Armazena informaes relativas interpretao da instruo de
linguagem de mquina corrente.
Em mquinas microprogramadas, o espao de endereamento
acessvel s microinstrues.
Memria rpida (e cara). Tempo de acesso da ordem de nanossegundos.
Freqncia de acesso altssima. Acessada a cada ciclo de mquina.
Arquitetura de Computadores

Memria Principal:

Memria semicondutora que armazena os dados e programas em


linguagem de mquina em execuo corrente.
Razoavelmente barata.
Tempo de acesso da ordem de nanossegundos a dezenas de
nanossegundos.
Freqncia de acesso alta. Se no existisse a memria Cache, seria
acessada a cada ciclo de busca-decodificao-execuo.

Unidade bsica de armazenamento:

Bit (Binary digIT): assume dois estados possveis (0 ou 1),


quantidade mnima para distinguir duas informaes diferentes.
Eficiente do ponto de vista de implementao fsico: dispositivos
capazes de detectar um dentre dois estados diferentes so confiveis.

Endereamento:

A memria principal organizada como um conjunto de n clulas


(ou posies) capazes de armazenar, cada uma, m bits.
Cada clula identificada por um endereo (cdigo binrio
associado) de k bits atravs do qual referenciada.
Os endereos so numerados de zero a n-1.
Existem 2k possveis endereos. Assim, o mximo nmero de clulas
endereveis 2k.
A clula a menor unidade de memria enderevel.
Uma clula poder armazenar qualquer uma das 2m possveis
combinaes diferentes dos seus m bits. m independente de n.
Os m de bits de uma clula so acessados simultaneamente.
m pode ser qualquer nmero inteiro mas, nos ltimos anos, os
fabricantes padronizaram um tamanho de 8 bits (1 byte).
A capacidade de armazenamento de uma memria C = n x m bits
(ou C = n x m/8 bytes).
Uma memria de C bits pode ser organizada de diversas maneiras.
Exemplo: 96 bits = 12 x 8 ou 8 x 12 ou 6 x 16, etc.
Bytes so agrupados em Palavras. A maioria das instrues opera
sobre palavras. Registradores da memria de rascunho geralmente
so do tamanho de uma palavra.
Arquitetura de Computadores

Ordenao dos Bytes na Palavra:

Os bytes de uma palavra podem ser numerados da esquerda para a


direita ou da direita para a esquerda.
Quando a numerao dos bytes comea da esquerda para a direita da
palavra, a ordenao dos bytes dita Big Endian.
Quando a numerao dos bytes comea da direita para a esquerda da
palavra, a ordenao dos bytes dita Little Endian.

byte byte
Endereo Endereo
0 0 1 2 3 3 2 1 0 0
4 4 5 6 7 7 6 5 4 4
8 8 9 10 11 11 10 9 8 8
12 12 13 14 15 15 14 13 12 12
Palavra Palavra
de 32 bits de 32 bits
(a) Big Endian. (b) Little Endian.

Figura 2.11. (a) Memria Big Endian. (b) Memria Little Endian.

Problema: ao transmitir informaes de uma mquina big endian


para uma little endian, (ou vice-versa), os bytes de uma palavra so
invertidos (o seu valor numrico muda completamente).

Deteco e Correo de Erros:

Para verificar a integridade dos dados armazenados na memria, um


ou mais bits redundantes adicionais de paridade podem ser
acrescentados palavra.
Podem ser utilizados cdigos para deteco ou mesmo para deteco
e correo de um ou mais bits errados.
Como a probabilidade de erro nas memrias atuais extremamente
pequena (um em dez anos), na prtica, os fabricantes de
computadores no fazem uso deste recurso.
Arquitetura de Computadores

Memria Cache:

Observaes:
Por razes histricas, o aperfeioamento das memrias centrou-se no
aumento da sua capacidade de armazenamento, enquanto a o
aperfeioamento das CPU's centrou-se no seu desempenho.
A memria principal um "gargalo" para a CPU, que deve esperar
vrios ciclos para ter atendidas as suas requisies memria.
possvel projetar uma memria com velocidade compatvel com a
CPU, mas muito caro (deve ser embutida dentro do chip do
processador). Existem restries ao aumento do tamanho do chip.
Soluo mais eficiente: Memria Cache, memria semicondutora rpida
(e cara), mas de pequena capacidade, que, associada memria
principal, (barata e de grande capacidade), resulta numa memria
razoavelmente barata, razoavelmente rpida e de grande capacidade.

Processador

Memria
Cache Principal

Barramento

Figura 2.12. Conexo Lgica entre CPU, Cache e Memria Principal.

Idia bsica: manter no Cache as palavras mais usadas pelo processador.


Se a maior parte dos acessos for satisfeita pelo Cache, o tempo mdio de
acesso ser prximo do tempo de acesso ao Cache, que pequeno.
Constatao: o acesso RAM no totalmente aleatrio. referncias
memria num certo intervalo de tempo pequeno tendem a acessar uma
pequena parte da memria total.
Princpio da Localidade: Existe grande probabilidade que palavras
prximas a uma palavra recentemente referenciada tambm sejam
referenciadas nos prximos acessos.
Arquitetura de Computadores

Aplicao: memria Cache. Quando uma palavra referenciada


pelo processador, se ela no estiver no Cache, ela trazida para o
mesmo junto com palavras de endereos vizinhos na memria principal.
Em novas referncias, o tempo de acesso a essas palavras ser bastante
reduzido, pois sero acessadas rapidamente no Cache.
Dados: m = tempo de acesso Cache, c = tempo de acesso memria
principal, t = tempo mdio de acesso. k = nmero de referncias a uma
determinada palavra.
Taxa de acertos = h = (k-1)/k.
t = c + (1 - h).m.
Observao: se h 1, t c; se h 0, t c+m.
Cache e memria principal so divididas em blocos de endereos de
tamanho fixo (Linhas de Cache).
Sempre que uma palavra procurada no estiver no Cache (falha de
acesso Cache), a linha correspondente trazida da memria principal.
mais eficiente trazer k palavras de uma vez do que uma palavra k
vezes.
Cache unificada: instrues e dados usam a mesma Cache. Mais simples
de projetar.
Caches divididas (arquitetura Harvard): utiliza uma Cache para
instrues e uma Cache para dados. Permite paralelizar a busca de
dados e instrues em processadores pipeline. Como as instrues no
so modificadas, o Cache de instrues no precisa ser atualizado na
memria principal.
A Cache pode ser estruturada em vrios nveis: Cache Primria (dentro
do chip), Cache Secundria (fora do chip, mas no mesmo invlucro),
Cache Terciria (totalmente dissociada da CPU).

Memria Secundria:

Memria de grande capacidade (dezenas de Gigabytes).


Armazenamento massivo.
Implementada em meio magntico (hard disk, fitas magnticas) ou tico
(CD-ROM, DVD-ROM).
Armazena programas e dados no processados correntemente, mas que
podero eventualmente ser utilizados. (freqncia de acesso pequena).
Memria lenta e barata. Tempo de acesso da ordem de milissegundos.
Pode tambm ser utilizada para emular memria principal,
aumentando o espao de endereamento disponvel atravs de
tcnicas de memria virtual.
Arquitetura de Computadores

2.7 Organizao de Entrada e Sada

Arquitetura de Entrada e Sada:

Barramento: meio de transmisso de dados entre a CPU, a memria


principal e os dispositivos de entrada e sada. Compartilhado por todos.
Controlador de Dispositivo: conjunto de circuitos lgicos de interface
entre o barramento e o dispositivo de entrada/sada. Responsvel por
controlar o dispositivo e por tratar do seu acesso ao barramento.

Dispositivo Dispositivo

Processador Memria Controlador Controlador


Principal de de
Dispositivo Dispositivo

Barramento

Figura 2.13. Estrutura lgica de um computador simples.

Exemplo de procedimento de E/S:


Programa que precisa de dados de um dispositivo envia comando ao
controlador correspondente.
Controlador envia os comandos necessrios ao drive do disco.
O disco envia os dados requisitados ao controlador.
Controlador organiza os dados recebidos e os escreve na memria.
Acesso Direto Memria (DMA Direct Memory Access):
processo de leitura ou escrita na memria principal por parte do
controlador de dispositivo sem a interveno do processador.
Concluda a transferncia, o controlador sinaliza ao processador
atravs de uma Interrupo. Processador interrompe o programa
corrente e executa Rotina de Tratamento de Interrupo, que verifica
possveis erros, encerra a operao e informa ao Sistema Operacional
o seu fim. A seguir, o processador retoma o programa interrompido.
rbitro de Barramento: chip que controla o acesso ao barramento,
resolvendo conflitos quando h tentativas de acesso simultneo.
Dispositivos mais rpidos tm maior prioridade. CPU tem a menor
prioridade. O uso do barramento por dispositivos de E/S resulta no
Roubo de Ciclos de barramento do processador, reduzindo o
desempenho.

S-ar putea să vă placă și