Buscar

Arquitetura de Computadores

Prévia do material em texto

Universidade Federal do Rio de Janeiro
Bacharelado em Ciência da Computação
Organização Básica do Computador
Gabriel P. Silva
Arquitetura de Computadores I 
Ementa
Unidade 2: Organização Lógica e Funcional de uma UCP
2.1 Modelo Von-Neumann
2.2 Modelo de Barramento de Sistema
2.3 Processador
 2.3.1 Unidade Artimética e Lógica
 2.3.2 Registradores
 2.3.3 Apontador de Instruções
 2.3.4 Registrador de Instrução
 2.4 Unidade de Controle
 2.4.1 Unidade de Controle Microprogramada
 2.4.2 Unidade de Controle Direto por Hardware
2.5 Ciclo de Busca de Instruções
2.6 Tipos de Arquitetura
2.7 Operandos
 2.7.1 Inteiros
 2.7.2 Ponto Flutuante
 2.7.3 Alinhamento na Memória
 2.7.4 Ordenação Big Endian e Little Endian
2.8 Modos de Endereçamento
2.9 Sinal de Relógio (Clock) 
● Introduziu o conceito do computador controlado 
por programa armazenado.
● Todo computador é formado por 5 partes básicas: 
a memória principal, a unidade lógica e aritmética, 
a unidade de controle e os dispositivos de entrada 
e saída.
● As operações a serem realizadas pelo computador 
são definidas pelos dados e instruções do programa 
carregado na memória.
● Maiores detalhes em http://goo.gl/AAPlKP
 
Modelo de Von Neumann
http://goo.gl/AAPlKP
Modelo de Von Neumann
MEMÓRIA
ENTRADA SAÍDA
ARITMÉTICA 
LÓGICA
UNIDADE DE 
CONTROLE
Modelo de Von Neumann
● A unidade aritmética e lógica é a parte do 
computador onde são feitas as operações 
aritméticas e lógicas com os dados. 
● O tipo de operação a ser executado é determinado 
por sinais vindos da unidade de controle. 
● A memória é onde ficam armazenados os dados e 
instruções que vão ser utilizados pela UAL e pela 
unidade de controle.
● Os dados a serem operados são lidos dos 
dispositivos de entrada para a memória.
● Os resultados obtidos são enviados para a memória 
e daí para os dispositivos de saída de dados. 
Modelo de Barramento de Sistema
● É um refinamento do modelo de Von Neumann e 
possui o processador (que integra ULA, 
registradores e unidade de controle), memória e 
unidade de entrada/saída.
● Os registradores são elementos de memória 
colocados junto da ULA para armazenamento de 
valores temporários.
● A comunicação entre as diversas unidades é feita 
através do barramento de sistema, que é composto 
pelos barramentos de endereço, dados e controle.
● Em algumas arquiteturas pode haver também 
barramentos adicionais conectados à unidade de 
entrada/saída, chamados de barramentos de 
entrada/saída.
Modelo de Barramento de Sistema
PROCESSADOR MEMÓRIA
Controle
Barramento de Endereço
Barramento de Dados
ENTRADA
 E
SAÍDA
Barramento de Sistema
Diagrama da Placa de Computador
Exemplo de Placa de Computador
Digrama de Placa de Computador
Digrama de Placa de Computador
Memória Principal
● A unidade de memória primária é formada pela memória 
volátil e pela memória não volátil.
● As informações armazenadas na memória volátil podem ser 
alteradas durante a execução de um programa. São também 
usadas para armazenar os resultados intermediários e finais 
das operações realizadas pelo processador.
● A memória não volátil é usada para armazenar informações 
que não necessitam ser alteradas no decorrer do 
processamento. É utilizada para iniciar o funcionamento do 
computador, realizando os testes iniciais e cópia do sistema 
operacional para a memória.
● A memória volátil recebe o nome de memória principal e a 
memória não volátil é conhecida como BIOS nos 
computadores baseados no IBM/PC.
Entrada/Saída
● A unidade de entrada e saída contém os circuitos 
de interface necessários para prover a comunicação 
entre os dispositivos de ENTRADA e SAÍDA com as 
demais partes do computador. 
● Toda a informação é convertida de/para o formato 
binário pela unidade de entrada/saída.
● Exemplos de dispositivos de entrada/saída são o 
disco rígido, teclado, terminal de vídeo, mouse, 
impressora, entre outros.
Memória Secundária
● A memória secundária é onde os programas e dados, 
incluindo aqueles do sistema operacional, são armazenados 
de uma forma persistente no computador. 
● Hoje em dia é constituída, principalmente, pelo conjunto de 
discos magnéticos do computador e também, cada vez mais, 
pelos discos de estado sólido.
● A principal característica da memória secundária é o 
armazenamento da informação de uma forma permanente, 
mesmo quando o computador é desligado. 
● Há vários outros tipos de dispositivos, removíveis ou não, que 
podem ser considerados parte da memória secundária, tais 
como fitas magnéticas, discos óticos, entre outros.
● Uma das características da memória secundária é o alto 
volume de dados e o baixo custo de armazenamento por byte 
quando comparado com a memória principal.
Processador
● É o conjunto da unidade lógica e aritmética, 
registradores e da unidade de controle. 
● Sua função é executar os programas armazenados 
na memória principal, buscando suas instruções, 
examinando as, e então executando uma após a 
outra. 
● O processador é responsável pela realização de 
uma série de funções: 
 Busca de instruções e dados na memória.
 Programa a transferência de dados entre a memória e os 
dispositivos de entrada/saída. 
 Decodifica as instruções. 
 Realiza as operações lógica e aritméticas. 
 Responde a sinais enviados por dispositivos de entrada/saída 
como RESET ou interrupções. 
Processador
Arquitetura Interna do Processador
 Unidade Aritmética e Lógica
● A Unidade Aritmética e Lógica pode realizar diversas 
operações.
● A seguir citamos algumas delas:
● Adição 
● Subtração 
● Operações lógicas: E, OU, XOR, INVERSÃO, etc.
● Deslocamento (à esquerda e à direita) 
● Comparação 
● Desvios
● Multiplicação
● Divisão
 Unidade Aritmética e Lógica
● A largura da arquitetura de um processador (8, 16, 
32 ou 64 bits) é definida pela largura em bits do 
maior operando inteiro que pode ser utilizado em 
uma única operação pela UAL.
 Unidade Aritmética e Lógica
● A largura de uma arquitetura NÃO é definida:
– Pelo tamanho em bits da instrução;
– Pela largura do barramento de dados interno ou 
externo;
– Pela largura em bits dos operandos da unidade de 
ponto flutuante;
– Pela largura em bits do apontador de instruções (PC) 
ou do barramento de endereços.
● Como consequência direta, a largura em bits do 
maior operando admitido pela UAL irá determinar, 
normalmente, a largura em bits do acumulador e 
dos registradores de uso geral do processador. Não 
há sentido para que sejam maiores ou menores do 
que isso.
 Registradores
● O processador contém elementos de memória, de 
pequena capacidade mas de alta velocidade, usados 
para armazenar resultados temporários, chamados de 
registradores.
● O conjunto desses registradores é denominado banco de 
registradores. 
● Os registradores são referenciados explicitamente pelas 
instruções lógicas, aritméticas e de transferência de 
dados.
● Existe um registrador invisível ao programador, 
chamado de registrador de instrução (RI), que 
armazena a instrução que está sendo executada. 
● Existe um registrador especial denominado apontador 
de instruções (PC), que contém o endereço da próxima 
instrução que vai ser executada. 
 U.A.L. e Banco de Registradores 
 Unidade de Controle
● A unidade de controle é responsável pela coordenação 
da atividade de todos os componentes do processador.
● Ela busca a instrução na memória e coloca no 
registrador de instruções (RI).
● A unidade de controle faz a decodificação da instrução 
que está no RI:
 Determina qual o tipo de operação vai ser realizada pela U.A.L. 
 Determina quantos e quais são os operandos de leitura, e qual o 
registrador de destino, se houver.
 Lê os operandos necessários para a execução da instrução e os 
coloca na entrada da U.A.L. 
● A unidade de controle lê o resultado da saída da U.A.L. 
e envia para o destino correto.
 Unidade de Controle
● Há duasformas de se implementar a unidade de 
controle:
 Através de microprogramação
 Controle direto pelo hardware (PLA, ROM)
● As unidades de controle microprogramadas são 
características das arquiteturas do tipo CISC.
● O controle diretamente pelo hardware é 
encontrado normalmente nas arquiteturas do tipo 
RISC. 
 Unidade de Controle
 Microprogramada
RelógioRelógio
Memória de
Microprograma
(ROM)
Memória de
Microprograma
(ROM)
Palavra de ControlePalavra de Controle
Gerador de 
Endereço 
Inicial e de 
Desvios
Gerador de 
Endereço 
Inicial e de 
Desvios
Apontador de Micro 
Instruções (µPC)
Apontador de Micro 
Instruções (µPC)
Códigos 
de 
Condição
Códigos 
de 
Condição
R
egistrad
or de In
stru
ções
R
egistrad
or d
e In
stru
ções
Decodificador
 de 
Instruções
Decodificador
 de 
Instruções
 Unidade de Controle
 Direto pelo Hardware
RelógioRelógio
Palavra de ControlePalavra de Controle
R
egistrad
or d
e In
stru
ções
R
egistrador d
e In
stru
ções
Decodificador 
de 
Instruções
Decodificador 
de 
Instruções
Lógica de
Controle
(PLA)
Lógica de
Controle
(PLA)
Códigos 
de 
Condição
Códigos 
de 
Condição
 Ciclo de Busca de Instruções
● O processador executa uma instrução em uma 
série de etapas:
1) Busca a próxima instrução que está localizada na 
memória para o registrador de instrução; 
2) Atualiza o apontador de instruções (PC) para que ele 
aponte para a próxima instrução a ser executada. 
3) Determina o tipo de instrução e o número de operandos;
4) Busca os operandos, se houver, para os registradores do 
processador;
5) Executa a instrução; 
6) Armazena os resultados;
7) Volta ao passo 1 para executar a próxima instrução. 
Tipos de Arquitetura
● Arquitetura de Acumulador
– Um operando (em registrador ou memória), o acumulador é 
usado como operando ímplicito a maioria das vezes
● Arquitetura de Pilha
– Nenhum operando: todos operandos são implícitos no topo da 
pilha
● Arquitetura de Registrador (load / store)
– Três operandos, todos nos registradores
– loads e stores são as únicas instruções que fazem acesso à 
memória
● Arquitetura Registrador-Memória
– Dois operandos, um em memória
● Arquitetura Memória-Memória
– Três operandos, podem todos estar na memória
Tipos de Arquitetura
C:=A+B:
Arquitetura de 
Pilha
Arquitetura 
Acumulador
Registrador-
Memória
Memória-
Memória
Registrador
(load-store)
Push A Load A Load r1,A Add C,B,A Load r1,A
Push B Add B Add r1,B Load r2,B
Add Store C Store C,r1 Add r3,r1,r2
Pop C Store C,r3
Arquitetura de Acumulador
Acumulador
ALU MemóriaEndereço
latch
latch
Example code: c = b+a;
load a; // acumulador é operando implícito
add b;
store c;
Arquitetura de Pilha
Exemplo: c = b+a;
push a;
push b;
add;
pop c;
a
a
b a+b
push a push b add pop c
stack:
ALU Memoria
Pilha
Ap. pilha
latch
latch
latch
a+b
Operandos Inteiros
Operandos em Ponto Flutuante
Alinhamento
01234567
4
1
Palavra alinhada (endereço múltiplo de 4).
Palavra não alinhada (endereço múltiplo de 1).
2
Palava não alinhada (endereço múltiplo de 2).
Aumento dos
Endereços
Ordenação
01234567
Aumento dos
Endereços
0 (LSB)123 (MSB)
Ordenação Little-endian 
(byte com endereço menor
 é colocado no byte 
menos significativo da palavra)
3 (MSB)210 (LSB)
Ordenação Big-endian 
(byte com endereço menor
é colocado no byte
 mais significativo da palavra)
4
Ordenação
Ordenação
Modos de Endereçamento
● Na sintaxe na coluna em linguagem de montagem os parenteses 
( ) indicam acesso à memória.
● Na sintaxe RTL à direita, [ ] denota acesso a um elemento de um 
vetor, com a Memória.
Modo Exemplo Significado (RTL)
Imediato add r4, r4, #3 R4  R4+3
Registrador add r4, r4, r3 R4  R4+R3
Direto ou 
Absoluto
add r1, (1001) R1  R1+M[1001]
Indireto Reg. add r4, (r1) R4  R4+M[R1]
Deslocamento ld r4, 100(r1) R4  MEM[100+R1]
Indexado add r3, (r1+r2) R3  R3+M[R1+R2]
Indireto Mem. add r1, @(r3) R1  R1+M[M[R3]]
Pilha pop r1 R1  M[SP]
Modos de Endereçamento
imedImediato
Registrador reg
Campo da 
InstruçãoModo
Banco de
Registradores Memória
Indireto reg
Direto
(Absoluto)
ender
Deslocamento reg imed +
endereço 
“base”
deslocamento
Modos de Endereçamento
Campo da 
InstruçãoModo
Banco de
Registradores Memória
Indexado reg1 reg2 +
deslocamento
Indireto
Via Memória reg
endereço 
“base”
Pilha reg Ponteiro da Pilha
Modos de Endereçamento
● Existem ainda modos especiais de endereçamento que 
utilizam o apontador de instruções (PC).
● O mais comum deles é o endereçamento relativo ao PC, 
onde o endereço do operando é um endereço relativo à 
localização da própria instrução. 
● O apontador de instruções é utilizado como um registrador 
de base e o deslocamento, isto é, a distância entre o 
operando e o PC é utilizado no código da instrução. 
● Esse modo é utilizado, por exemplo, no processador ARM 
e em instruções de desvio do processador MIPS.
Sinal de Relógio (Clock)
● O processador tem seu funcionamento 
sincronizado por um sinal elétrico periódico 
denominado relógio. 
● O relógio cadencia a execução das instruções 
em suas diversas fases.
● Quanto mais rápido (maior a frequência) for o 
sinal de relógio, mais rápido as instruções, e por 
consequência os programas, serão executados.
● Os componentes básicos do processador 
(portas lógicas, flip-flops, etc.) limitam a 
frequência máxima que o relógio pode ter.
Sinal de Relógio (Clock)
● A frequência e o tempo do ciclo do relógio estão 
relacionados pela seguinte equação:
● O uso de técnicas como o pipeline permitem 
aumentar consideravelmente a frequência do 
relógio.
● Quanto maior a frequência de relógio maior é o 
consumo de energia e dissipação de calor do 
processador.
● Isso também impõe limites práticos sobre a 
maior frequência que um processador pode ter.
T c=
1
f
Sinal de Relógio (Clock)
Banco de 
Registradores
(R0  R31)
U.A.L.
RD
RS1 RS2
32 32
RDM
RI
#RS1
#RS2
#RD
UNIDADE DE CONTROLE
IN
S
T
R
U
Ç
Ã
O
D
A
D
O
S
6
5
5
5
PC
E
N
D
E
R
E
Ç
O
16
4
Endereço
de Desvio
RD = RS1 oper R2
oper
32
32
+
Barramento
de Dados
Barramento
de Endereço
REM
E
N
D
E
R
E
Ç
O 32
32
	Organização de Computadores II
	Slide 2
	Slide 3
	Modelo de Von Neumann
	Slide 5
	Slide 6
	Modelo de Barramento de Sistema
	Diagrama da Placa de Computador
	Slide 9
	Slide 10
	Slide 11
	Memória
	Entrada/Saída
	Slide 14
	Processador
	Slide 16
	Arquitetura Interna do Processador
	Unidade Aritmética e Lógica
	Slide 19
	Slide 20
	Registradores
	U.A.L. e Banco de Registradores
	Unidade de Controle
	Slide 24
	Slide 25
	Slide 26
	Ciclo de Busca de Instruções
	Slide 28
	Slide 29
	Accumulator architecture
	Stack architecture
	Operandos Inteiros
	Operandos em Ponto Flutuante
	Alinhamento
	Ordenação
	Slide 36
	Slide 37
	Modos de Endereçamento
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46

Continue navegando