Você está na página 1de 105

Arquitetura de Computadores I

Prof. Giovanni Loureiro


Aula 03 - Organização de um computador

giovanni@coinfo.cefetpb.br

Material adaptado por Caio S. V. Batista


1
perdigaobatista@oi.com.br
 Ciclo de Máquina: Execução de Instruções pela CPU:
1. Unidade de controle busca a instrução na memória e coloca no
registrador.
 2. A unidade de controle decodifica a instrução e define a
localização na memória dos dados necessários.
 Essas duas etapas juntas são o tempo de instrução (I-time)
 3. A unidade de controle transfere os dados da memória para os
registradores; A ALU executa a instrução.
 4. A unidade de controle armazena o resultado na memória ou
registrador e instrui a memória a enviar o resultado para um
dispositivo de saída ou armazenamento secundário.
 As etapas 3 e 4 juntas são o tempo de execução E-time.
 Ciclo de máquina = tempo de instrução + tempo de execução.
2
Fluxo de Informação
• O fluxo de dados e de controle da estrutura
de Von Neumann

3
INTERFACE
ENTRADA

CPU (processador) – ÚNICO CHIP


R RELÓGIO
ULA E INTERFACE
G
UC SAÍDA

INSTRUÇÕES
ÁREA ÁREA
DE DE
PROGRAMA DADOS FLUXO DE CONTROLE

MEMÓRIA FLUXO DE DADOS


ADM (ACESSO 4
DIRETO À MEMÓRIA)
Fluxo de Informação

• Fluxo de Controle (bidirecional)


 UC - controla todos os módulos do computador;
 Os módulos por sua vez, enviam informações
sobre o seu “estado” para que a UC decida a
respeito dos controles a serem acionados;
 Este tipo de troca de informação está explicitado
nos arcos bidirecionais do fluxo de controle.

5
Fluxo de Informação
INTERFACE
ENTRADA

CPU
R RELÓGIO
ULA E INTERFACE
G
UC SAÍDA

INSTRUÇÕES
ÁREA ÁREA
DE DE
PROGRAMA DADOS FLUXO DE CONTROLE

MEMÓRIA
6
Fluxo de Informação
(Fluxo de Controle)

CPU Memória:
ULA R RELÓGIO componente
E
G
UC passivo.
Iniciativa da
INSTRUÇÕES CPU
ÁREA ÁREA
DE DE DADOS: RG
PROGRAMA DADOS DA ULA

MEMÓRIA ENDEREÇO:
7
RG DA UC
Fluxo de Informação
(Fluxo de Controle)

INTERFACE
ENTRADA

CPU
R RELÓGIO
ULA E INTERFACE
G
UC SAÍDA

Iniciativa da CPU e da Interface (?????)


8
Fluxo de Informação
(Fluxo de Dados)
 A Memória foi dividida em:
 Área de programas: posições da
memória onde estão armazenadas
as instruções;
 Área de dados: posições da
memória onde estão armazenados
os dados.

9
Fluxo de Informação
(Fluxo de Dados)
• Área de Programas  UC:
– Instruções do programa  UC
– UC identifica a instrução e gera os
controles apropriados para a execução da
instrução específica.
RELÓGIO

UC
INSTRUÇÕES

ÁREA ÁREA
DE DE
PROGRAMA DADOS
MEMÓRIA 10
Fluxo de Informação
(Fluxo de Dados)
 Área de dados

Registradores
CPU
R RELÓGIO
da ULA:
ULA E Assim, dados
G
UC que fazem
parte da
operação são
INSTRUÇÕES enviados para
ÁREA ÁREA ULA e o
DE DE resultado da
PROGRAMA DADOS operação é
MEMÓRIA
armazenado
na área de 11
dados.
Fluxo de Informação
(Fluxo de Dados)

 Interface de entrada  registradores da


ULA  interface de saída.
– antes de executar uma instrução de
saída, deve ser executada uma
instrução de transferência do dado da
memória para o registrador da ULA.

12
Fluxo de Informação
(Fluxo de Dados)

 Para armazenar na memória um


dado obtido por uma operação de
entrada, deve ser executada uma
instrução de transferência do
registrador da ULA para a memória
de dado, após a execução da
instrução de entrada de dados (slide
anterior)
13
INTERFACE
2 ENTRADA

1
CPU
R RELÓGIO
ULA E INTERFACE
G
UC SAÍDA

1- ENTRADA

3
INSTRUÇÕES 2 – REG. ULA para
ÁREA
SAÍDA
DE
DADOS OU

MEMÓRIA
3- REG. ULA para
MEMÓRIA DE
14
DADOS
ADM – ACESSO DIRETO À MEMÓRIA
• O ADM visa melhorar a performance geral do micro,
permitindo que os periféricos transmitam dados diretamente
para a memória (e vice-versa), ou seja, leitura e escrita na
memória, poupando o processador de mais esta tarefa (A
CPU fica liberada para efetuar outras tarefas)
• Permite aos dispositivos de hardware responsáveis por
entrada e saída de dados o acesso à memória diretamente,
ou seja, sem a necessidade de requisitar acesso por
intermédio do processador
• Por serem muito lentos, os canais de ADM são utilizados
apenas por periféricos lentos, como drives de disquete,
placas de som, controladores de disco, placas gráficas e 15de
rede.
ADM – ACESSO DIRETO À MEMÓRIA
• Existem 8 portas de ADM, sendo que dois dispositivos
não podem compartilhar o mesmo canal DMA, pois
haverá um conflito.
• DMA 0 - Disponível
• DMA 1- Placa de Som
• DMA 2 - Controladora de drives de disquetes
• DMA 3 - Porta paralela padrão ECP
• DMA 4 - Reservado à placa mãe
• DMA 5 - Placa de Som
• DMA 6 - Disponível
16

• DMA 7 - Disponível
Fluxo de Informação
INTERFACE (ADM)
ENTRADA Transferência
• Tranferência (da para a memória
memória – leitura, e
para memória -
escrita) mais rápida, INTERFACE
pois evita a passagem SAÍDA
dos dados pela ULA.

INSTRUÇÕES
ÁREA
DE Transferencia
DADOS da memória
MEMÓRIA
17
Barramento

MEMÓRIA
CPU BARRAMENTO DE ENDEREÇOS

UC
BARRAMENTO DE CONTROLE

ULA
BARRAMENTO DE DADOS

INTERFACES

DISPOSITIVO DISPOSITIVO
DE SAÍDA DE ENTRADA 18
Processador, Computador e Sistema
Computacional

• Processador: é a UCP, normalmente encapsulada


em uma única pastilha (chip). Nos últimos anos
surgiram pastilhas que integram processador,
memória e interfaces de E/S. O processador define
a funcionalidade do computador em seu nível de
abstração mais baixo através das instruções que
pode executar.

19
Processador, Computador e Sistema
Computacional

• Computador: engloba o processador pela UCP,


memória, interfaces de E/S e barramentos.
• Sistema Computacional: engloba o computador,
mais periféricos (dispositivos) e software,
provendo máquinas virtuais para os usuários.

20
Memória
• Registradores da UCP;
• Memória principal (RAM, ROM,
CACHE)
– Aquela acessada diretamente pela ULA
• Memória auxiliar ou secundária (disco,
fitas magnéticas).

21
Memória principal

• É composta de Células ou posições – cada


uma podendo armazenar uma parte da
informação;
• Cada célula tem um número – endereço
pelo qual pode ser acessado;
• Memória de n células – endereços de 0 a
n-1;

22
endereço Memória principal
0
1
2 Memória de 12
3 células
4
5
6 células
7
8
9
10
11
23
8 bits
Memória principal

• Tamanho das palavras de memória - em bits


ou bytes (8 bits);
• X - endereço;
• (X) - conteúdo do endereço X;

24
• Acesso à memória pelo endereço

– n bits2n - A quantidade de bits para


especificação do endereço define a quantidade
de palavras distintas que podem ser acessadas
– m bits2m – A quantidade de bits da palavra da
memória determina a quantidade de informação
que pode ser representada

25
Acesso à memória pelo endereço

• Acesso de leitura - não destrutivo;


• Acesso de escrita - destrutivo

26
Esquema de acesso a uma palavra de memória

Decodificador de endereço
http://www.ee.pucrs.br/~vargas/Disciplinas/Arquitet 27
ura_I/Cap-5-6.pdf
Esquema de acesso a uma palavra de memória

• Para ter acesso à palavra desejada, a memória necessita de


um registrador que armazene o endereço da informação a
ser lida ou escrita. Este registradoré denominado REM.
• Para armazenar a informação a ser lida ou escrita, existe
um RDM. Quando este registrador não está presente, a
memória está ligada diretamente ao barramento através do
elemento “tri-state”

28
Ciclo de memória
• Corresponde a um acesso à memória
– Ciclo de leitura
– Ciclo de escrita

29
Ciclo de leitura
Pulso Microoperação
1 REMendereço
2 leitura:
RDM (REM)
ou RDM (m )
3 UCP (RDM)
onde m é um endereço
de uma posição de
memória

O dado contido na célula de memória é transferido para a UCP após


colocar-se o seu endereço no REM e realizar-se a sua leitura para o
RDM. 30
Ciclo de escrita
Pulso Microoperação
1 REMendereço
2 RDM dado
3 escrita:
(REM) (RDM)
ou m (RDM)
onde “(REM) ”
significa armazenar no
endereço contido no
REM

O dado é escrito na célula de memória após colocar-se o endereço


da célula no REM e o dado a ser escrito no RDM.
31
Ciclo de memória

• São necessários, neste caso, 3 pulsos de relógio


(CLK) para executar um ciclo de leitura ou de
escrita. Observamos que, no ciclo de escrita, as
microoperações executadas nos pulsos de relógio
1 e 2 poderiam ser simultâneas; porém, por
sistematização de projeto, os computadores
geralmente as implementam em 2 pulsos distintos
de relógio.

32
Memória Cache
• O processador é mais rápido que a memória RAM.

• Para agilizar a execução do programa o processador


identifica as posições de memória mais solicitadas
• Instruções e dados são copiados da memória RAM
para a cache que é mais rápida.
• A memória CACHE é encontrada em dois tipos
(níveis):
Memória cache L1 – encontra-se dentro do processador
(cache interna). Capacidade pode ir até aos 128 Kbytes,
divididos em duas partes (uma para dados e outra para
instruções). 33
Memória Cache
• Memória cache L2 – encontra-se na motherboard ou
dentro do processador (mais recentemente).
• Quando é externa, a sua capacidade depende do
chipset presente na motherboard.
• Quando é interna, a capacidade varia de 128 Kbytes
a 2 Mbytes.

34
Memória Cache

• Características:
– Pequena (na ordem de Megabytes - 106 byte)
– Acesso rápido
– Cara 35
Memória Cache

• Os chips são encontrados em duas versões


básicas nas máquinas disponíveis no
mercado: na forma de chips na placa mãe
(256Kb) e na forma de pentes de expansão
de 256, 512 ou 1.024Kb.

36
Unidade Aritmética e Lógica - ULA

• Modelo Estrutural

• O sinais de controle fornecidos para a ULA


servem para selecionar a operação desejada entre
as operações básicas disponíveis
• A ULA não armazena nem os resultados, nem os
operandos, nem os códigos de condição gerados.
37
Unidade Aritmética e Lógica - ULA

• Classificação pela especificação dos operandos e


resultados:
–máquina de 3 endereços;
–máquina de 2 endereços;
–máquina de 1 endereço.

A denominação 1, 2, 3 endereços refere-se ao número


máximo de endereços em uma instrução de máquina.

38
ULA - Máquina de 3 endereços

39
ULA - Máquina de 3 endereços

Máquina de 3 endereços:
Adição : R = S1 + S2  R  (S1) + (S2)
Formato da instrução

Em linguagem simbólica (Assembly) teríamos:


ADD S1,S2,R  R  (S1) + (S2) 40
ULA - Máquina de 3 endereços

• Desvantagem: não é comumente utilizada


em função do comprimento excessivo da
instrução, o que implica a necessidade de
registradores muito extensos para a
manipulação da instrução.

41
ULA - Máquina de 2 endereços

42
ULA - Máquina de 2 endereços
Adição : R = S1 + S2  R  (S1) + (S2)
Formato da instrução

Em linguagem simbólica (Assembly) teríamos:


MOVE S1,R  R  (S1)
ADD S2,R  R  (R) + (S2)
A maioria das máquinas modernas possui ULA de 2endereços
43
ULA - Máquina de 2 endereços
• Comparando esse programa com o da máquina
de três endereços, note que uma instrução foi
substituída por duas.
• O resultado final é o mesmo, mas o programa
tem mais instruções.
• Entretanto, as instruções são menores, o que,
em termos finais, representa grande economia de
bits.

44
ULA - Máquina de 1 endereço

45
ULA - Máquina de 1 endereço
Adição : R = S1 + S2  R  (S1) + (S2)
Formato da instrução

Em linguagem simbólica (Assembly) teríamos:


LDA S1  Acc  (S1) ; LDA: LoaD Acumulator –
transferência da memória para o acumulador
ADD S2  Acc  (Acc) + (S2)
STA R  R  (Acc) ; STA: STore Acumulator –
transferência do acumulador para a memória. 46
ULA - Máquina de 1 endereço
• Comparando esse programa com o da máquina de
três endereços, note que uma instrução foi substituída
por três.
• Note que existem duas instruções adicionais de
transferência de dados, uma no início do programa
( LDA S1) e outra no fim ( STA R)
• A grande vantagem desse tipo de arquitetura, está na
economia dos acessos à memória: Cada operando foi
lido ou escrito uma única vez, o que não acontece nas
arquiteturas anteriores.
• O papel dos registradores locais (acumuladores) é
permitir que resultados intermediários ou dados muito
utilizados não precisem ser lidos ou escritos na
memória cada vez que forem utilizados. 47
Unidade Aritmética e Lógica - ULA

• A opção de projeto por uma máquina de 1,


2 ou 3 endereços tem implicações:
– no tamanho de cada instrução;
– no tamanho e inteligibilidade dos programas
(em Assembly);
– velocidade;
– custo;
– configuração da memória etc.
48
Flags
• Função - registrador da CPU que indica o
estado do processador após uma operação.
• Exemplos:
– ZERO: indica que o resultado da última operação
foi 0 (zero);
– CARRY: indica que ocorreu transporte durante a
última operação;
– NEGATIVO: indica que o resultado da última
operação é um número negativo.
– OVERFLOW : (estouro de campo) – o resultado
de uma operação é maior que o espaço (tamanho
49
da palavra) disponível
Unidade de Controle - UC

• Controla a execução das instruções,


realizando:
– a extração da instrução da memória principal;
– a interpretação (decodificação) do código de
operação (C.O);
– o acompanhamento (controle) da execução da
instrução pelo sequënciamento dos sinais de
controle.

50
Unidade de Controle - UC

• Além do controlador a UC possui 3


registradores:
– Registrador de Instruções (RI);
– Registrador Contador de Programa (PC);
– Registrador de Estado (PSW - Program Status
Word).

51
Registrador de Instruções - RI
• Armazena a instrução extraída da memória para
que a informação nela contida seja utilizada pelo
controlador durante a sua execução

RI Código de
Operação

ou decodificador
CONTROLADOR ou seqüenciador

Sinais de controle (microcomandos)

52
Registrador de Instruções - RI
• Cada sinal de controle comando uma
microoperação
• Como já foi visto, estes sinais de controle
(microcomandos) ativam as microoperações
correspondentes, como a seguir:

Microoperação Sinais de controle


(microcomandos)
1.Acc  (bus) WA
2.bus  (R1) RR1
3.TMP(bus) WT
4 TMP (R2) RR2, WT
53
Registrador Contador de Programa - PC

• Program Counter, PC, aponta (contém o endereço)


para a posição de memória onde se encontra a
próxima instrução a ser executada, ou seja, é o
registrador cujo conteúdo é usado para seqüenciar
a execução das instruções de um programa.

54
Registrador Contador de Programa - PC
Máquina de 4 endereços (sem PC – Program Counter):
• O endereço da próxima instrução fazia parte da
própria instrução, assim não é necessário o PC –
Program Counter;
• Alto custo e complexidade de controle
• Como normalmente os programas são escritos
sequencialmente, isto é, uma instrução seguindo a
anterior, surgiu a arquitetura de 3 endereços, com
um registrador específico, o PC – Program Counter,
apontando para a instrução seguinte a ser executada.

Código de end. do 1° end. do 2° Endereço do Endereço da


operação operando operando resultado próxima instrução
Código de
operação 55
Registrador Contador de Programa - PC
• Com a redução de 4 para 3 endereços, existe a
redução do tamanho da instrução e, portanto, da
memória necessária para armazenar os programas.
• Os programas seqüenciais das máquinas de 3
endereços são mais fáceis de serem testados,
entendidos e corrigidos

56
Registrador Contador de Programa - PC

• O PC aponta para a instrução seguinte;


• As instruções do programa em execução
devem estar em posições consecutivas de
memória;
• Instruções de desvio devem receber
tratamento especial.

57
Registrador de Estado
• Pogram Status Word, PSW, armazena
informações relevantes ao funcionamento da UCP,
entre elas, os “Flags”.
• Em função do conteúdo desse registrador, a UC
toma decisões sobre a geração ou não de certos
sinais de controle
C.C

PSW Z N O C

Onde: CC – código de Carry


condição Overflow
Negative
Zero
58
Registrador de Estado

A informação dos bits de flags é importante para a


implementação de desvios do tipo:
IF condição
THEN ação
Em linguagem de máquina teríamos:
Jz endereço salto para endereço se o flag ZERO for 1

Através dos códigos de condição do PSW, a UC


gerará os controles apropriados para a instrução de
JUMP condicional.
59
Instruções de Máquina
• Tipos de Instrução
– Instruções de transferência de dados
• Função: transfere dados, ou bloco de dados entre
diferentes registradores ou posições de memória
• Ex.: MOVE R1,R2 R2  (R1)
– Instrução de Tratamento de operando
• Função: realizam operações aritméticas ou lógicas
• Ex.: ADD R1,R2 R2  (R1)+(R2)

60
Tipos de Instrução
– Instrução de desvio
• Função: desviar o fluxo do programa,
alterando o conteúdo do PC
• Ex.: JMP, Jcond, JSR - salto para sub-rotina,
• Ex.: RET - retorno de sub-rotina,
– Instruções de Entrada/Saída
• Função: realiza a comunicação entre CPU e as
interfaces de E/S
• Ex.: IN port Acc  (port)
61
Tipos de Instrução
– Miscelânea
1. Função: manipular bits
Ex.: BTST D1,D2; testa em D2 o bit indicado em D1
2. Função: manipular campos no registrador de
estado
Ex.: MOVE D0,SR; transfere o dado em D0 para o
registrador de estado aqui denominado SR (status
Register)

62
Tipos de Instrução
• Instrução de desvio
JMP Endereço
ou da próxima
Jcond instrução
• JMP end  PC  end (desvio incondicional)
• Jcond end  Se cond = true, PC  end (desvio condicional)
Se não, PC  endereço da próxima
instrução
63
Comprimento de instrução

– O comprimento da instrução depende da


quantidade de operandos necessários para a sua
execução e da capacidade do processador.
– Uma instrução pode ter uma ou mais palavras.

64
Comprimento de instrução

• Instruções de 1 palavra:
– MOVE R1,R2; R2(R1)
C.O R1 R2

65
Comprimento de instrução

• Instruções de 2 palavras:
– ADI dado; Acc (Acc ) + dado

C.O
dado

66
Comprimento de instrução
• Instruções de 2 palavras:
– ADD X; Acc (Acc ) + X
C.O
endereço de X

67
Comprimento de instrução
• Instruções de 3 palavras:
– ADD X,Y; Y (X) + (Y)

C.O
endereço de X
endereço de Y

68
Comprimento de instrução
• Instruções de 3 palavras:
– ADD #dado,X; X (X) + dado

C.O
dado
endereço de X

69
Comprimento de instrução
• Quantidade de palavras de uma instrução
determina a quantidade de ciclos de
memória necessários para a leitura da
instrução.
• Primeira palavra - C.O

70
Execução de Instruções
Passos da CPU (busca-decodifica-executa):
1. Busca a próxima instrução da memória para o registrador
de instrução;
2. Atualiza o contador de programa para que ele aponte para
a instrução seguinte;
3. Determina o tipo da instrução;
4. Se a instrução usa dados da memória, determina onde eles
estão;
5. Busca os dados, se houver algum, para registradores
internos da CPU;
6. Executa a instrução;
7. Armazena os resultados em locais apropriados;
8. Volta ao passo 1 para iniciar a execução da próxima
instrução. 71
Execução de Instrução

• Cada instrução é executada como uma


seqüência de 2 fases:
– Fase de busca ou acesso à memória (fetch)
• ciclo de máquina para a leitura do C.O
• igual para qualquer instrução
– execução.
• Leitura das palavras restantes da instrução
• execução da instrução

72
Execução de Instrução
• A instrução é inicialmente acessada na memória e
transferida para o interior da CPU, mais
especificamente no RI (que está na UC).
• Uma vez no RI, a instrução é interpretada por um
circuito decodificador. Finalmente, ela é
executada. A seqüência apropriada de sinais é
gerada pela unidade de controle, resultando nas
transferências de dados e operações apropriadas.

73
Execução de Instrução

IP = PC (Program Counter)
74
Execução de Instrução
• A primeira fase é o acesso à instrução ("fetch"):
• o conteúdo do PC é posto no barramento de endereço
e a posição de memória é selecionada (pelo
decodificador de endereço).
• Um comando de leitura é então fornecido à memória.
Após alguns nanosegundos - correspondentes ao
tempo de leitura da memória (ou tempo de acesso) - os
oito bits do dado selecionado por esse endereço se
tornam disponíveis nos pinos de saída da memória e
são propagados no barramento de dados do sistema
(no caso, da direita para a esquerda).
• O dado é encaminhado para o interior do chip CPU até
o registrador de instrução (RI) da unidade de controle,
completando assim o ciclo de fetch.
• Note que a instrução é transferida pelo barramento de75
dados.
Execução de Instrução
• Os dois ciclos seguintes são a decodificação
e a execução. 0 RI é decodificado pela
unidade de controle e os sinais apropriados
são gerados, resultando na execução da
instrução.

76
Execução de Instrução
• Um programa é armazenado como uma
seqüência de instruções em binário
residindo em endereços sucessivos da
memória.

77
Execução de Instrução
• Após uma instrução ser acessada e executada, o
registrador PC deve ser atualizado. Esse problema é
resolvido incrementando-se ( +1) o PC. Assim, cada vez
que o PC é usado (ísto é, seu conteúdo é utilizado) seu
valor é automaticamente incrementado e carregado no
PC.
• A próxima vez que o PC for utilizado ele estará
apontando para o próximo byte na memória, isto é, para
a próxima instrução ou para o próximo byte de uma
instrução, se essa instrução usa dois ou mais bytes
(pode ser um operando da instrução). O incremento é
mostrado como +1.
• Se a instrução tiver 2 endereços, após o incremento o
PC irá apontar para o primeiro endereço e após78 o
segundo incremento, para o segundo endereço.
Exemplo de execução de instrução
• STA R  R  (Acc) ; STA: STore Acumulator –
transferência do acumulador para a memória
• end: endereço da memória onde vai ser armazenado o
conteúdo do acumulador
• Exemplo 1: STA end end(Acc)
C.O
endereço
Execução da instrução:
1° ciclo de máquina: fase de busca - busca do C.O
2° ciclo de máquina: leitura do endereço
3° ciclo de máquina: transferência do (Acc) para a
memória 79
1° ciclo de máquina: fase de busca - busca do C.O

Pulso Microoperação
1 REM(PC)
2 leitura:
RDM ((REM))
ou RDM (m)
PC (PC)+1
3 RI (RDM)

80
1° ciclo de máquina: fase de busca - busca do C.O

81
2° ciclo de máquina: Leitura do endereço
Pulso Microoperação
1 REM(PC)
2 leitura:
RDM ((REM))
ou RDM (m)
PC (PC)+1
3 Rg (RDM)

82
2° ciclo de máquina: Leitura do endereço
• Note que a próxima instrução (de endereço 32, pois PC=32),
contém o endereço da memória (61- veja figura slide 83) onde
vai ser armazenado o conteúdo do acumulador (201).
• Como é um valor de endereço da memória (61) vai para o RG
da UC para ser utilizado na próxima instrução e não para o
acumulador

Situação anterior à execução do Após a execução do 2° ciclo


2° ciclo
PC: 32 1. REM: 32
Acc:201
REM:31 2. RDM:61
Rg:? PC:33
RDM:48
RI:48 3. RG:61
83
3° ciclo de máquina: transferência do conteúdo do
acumulador p/ a memória
Pulso Microoperação
1 REM(Rg)
2 RDM (Acc)
3 (REM)(RDM)
ou m (RDM)

84
3° ciclo de máquina: transferência do conteúdo do
acumulador p/ a memória
• No endereço de memória 61 (indicado pela instrução
de PC=32 e depois transferido para o RG da UC), foi
armazenado o conteúdo do acumulador (201)
Situação anterior à execução do Após a execução do 3° ciclo
3° ciclo
PC: 33 1. REM: 61
Acc:201
REM:32 2. RDM:201
Rg:61
RDM:61
RI:48 3. m(61):201
85
Exemplo de execução de instrução
• Exemplo 1: ADD #3,X X(X)+3
C.O
3
X

Execução da instrução:
1° ciclo de máquina: fase de busca - busca do C.O
2° ciclo de máquina: leitura do 1° operando
3° ciclo de máquina: leitura do endereço do 2° operando
4° ciclo de máquina: leitura do 2° operando e operação de
adição
5° ciclo de máquina: armazenamento do resultado 86
1° ciclo de máquina: fase de busca - busca do C.O

Pulso Microoperação
1 REM(PC)
2 leitura:
RDM ((REM))
ou RDM (m)
PC (PC)+1
3 RI (RDM)

87
2° ciclo de máquina: leitura do 1° operando

Pulso Microoperação
1 REM(PC)
2 leitura:
RDM ((REM))
ou RDM (m)
PC (PC)+1
3 Acc (RDM)

• Note que o PC aponta para o 1º. operando e não para a


próxima instrução. Como é um número (3) e não um
endereço de memória, ele vai para o acumulador e 88não
para o RG da UC
3° ciclo de máquina: Leitura do endereço do 2° operando

Pulso Microoperação
1 REM(PC)
2 leitura:
RDM ((REM))
ou RDM (m)
PC (PC)+1
3 Rg (RDM)

• Note que o PC aponta para o 2º. operando e não para a


próxima instrução
• Como o segundo operando (X) é um endereço de memória
89
ele vai para o RG da UC
4° ciclo de máquina: Leitura do 2° operando e operação de
adição
Pulso Microoperação
1 REM(Rg)
2 leitura:
RDM ((REM))
ou RDM (m)
3 Tmp (RDM)
4 Acc(Acc)+(Tmp)

90
5° ciclo de máquina: armazenamento do resultado

Pulso Microoperação
1 REM(Rg)
2 RDM (Acc)
3 escrita:
(REM)(RDM)
ou m (RDM)

91
ARQUITETURA
SIMPLIFICADA
DE UM
COMPUTADOR

92
Operação do computador
• E : Enable (habilita) memória, conecta a memória ao RDM
quando E=1, e desconecta quando E=0
– Quando E=1, a operação pode ser de leitura (R/w =1) ou escrita
R/W =0
• IPC : Incrementa PC (Program Counter)
• TPC : transferência do Conteúdo do PC para o REM
• TRI: Transfere do RI para o REM o conteúdo do campo de
endereço contido no RI
• R/W : Leitura da memória; TRB : transferencia do regis./
barramento;
• TBR: Transferência barramento/registrador (RDM)
• TRB: Transferência registrador (RDM)/barramento
• TB : Transferência barramento / RI

93
Computador simples

• Registradores e barramentos de dados de 8 bits;


Note que os barramentos de endereços (para PC,
REM, memória e a parte de endereço da instrução
para o RI) teem 6 bits, pois no formato inicial da
instrução, a parte de endereço tem apenas 6 bits
• Para ser compatível a memória tem também
palavras de 8 bits; e
• Como conseqüência, o RI tem também 8 bits (2
para o C.O. e 6 para endereço)
94
Computador simples

• A instrução de 8 bits, tem um campo de C.O


de 2 bits, restando 6 bits para endereçar o
operando. Assim, este computador pode ter
somente 4 instruções (22bits = 4 instruções).

7 6 5 4 3 2 1 0
C O

95
Computador simples
No máximo 4 instruções possíveis
Código Mnemônico Instrução
00 STOP Parar
01 ADD end Somar ao Acc o conteúdo do endereço
10 SUB end Subtrair do Acc o conteúdo do endereço
11 STA end Transferir o conteúdo do Acc para endereço

96
Computador simples

• Como o campo de endereço da instrução


tem 6 bits, para termos uma memória
compatível, esta deverá ter 64 (26) palavras.
(64x8 : 64 palavras de 8 bits)
• Da mesma maneira deve-se configurar os
registradores PC e REM, que contêm
endereços, com 6 bits
• Os barramentos que transferem endereços
têm também 6 bits 97
Computador simples

• Programa para calcular


(-8) +(30) - (-22) - (18) + (80) = +106
=(01101010)
• Números negativos em complemento de 2:
em 8 bits representaremos n° de +127 a -128
(base 10)
+12710=01111111
-12810=10000000 98
Computador simples
End. Endereço
P
0 ADD 61 000000 01111101
R
O
1 ADD 59 000001 01111011
G 2 SUB 60 000010 10111100
R 3 SUB 62 000011 10111110
A 4 ADD 63 000100 01111111
M 5 STA 45 000101 11101101
A 6 STOP 000110 00xxxxxx
... ...
0 ... ...
P 59 30 111011 00011110
E
R
60 -22 111100 11101010
A 61 -8 111101 11111000
N
D 62 18 111110 00010010
O
63 80 111111 01010000 99
S
Computador simples

• Como não existe instrução de zerar o


acumulador usa-se um botão RESET para
zerar o Acc e todos os registradores;
• Esta é a razão de o programa ter sido
armazenado a partir da posição 0 (zero).
Após o reset PC = 0.

100
Operação do computador
Ex. SUB 60 (Subtrair do Acc o conteúdo do
endereço 60)
ciclo de busca
Microoperação Pulso Microcomando
REM(PC) 1 TPC
RDM(m) 2 E, R/W
PC(PC)+1 IPC
RI(RDM) 3 TRB, TB
TPC : transferência do Conteúdo do PC para o REM
R/W : Leitura da memória; E : Enable (habilita) memória
TRB : transferencia do regis./ barramento; TRI: Transferência do RI
101
TB : Transferência barramento / RI; IPC : Incrementa PC
Operação do computador
ciclo de execução
Microoperação Pulso Microcomando
REM(RI. End) 1 TRI
RDM(m) 2 E, R/W

TMP(RDM) 3 TRB, W
_______
TMP(TMP ) 4 C
TMP(TMP)+1 5 I
(Acc)+(TMP) 6 R, R
Acc 7 W
• Pulso 1: Transfere a parte de endereço do operando (6 bits, no caso “60”) do RI para
o REM
• Pulso 2: E – habilita a memória; R/W - Transfere o conteúdo do endereço “60” (
operando “22”) para o RDM
• Pulsos 4 e 5 : complementa (C) e incrementa +1(I) para obter complemento102de 2 do
conteúdo do TMP, para subtrair do conteúdo do acumulador
CONTROLADOR PARA COMPUTADOR DE ARQUITETURA 103
SIMPLIFICADA (UTILIZA REGISTRADORES DE DESLOCAMENTO)
CONTROLADOR PARA COMPUTADOR DE
ARQUITETURA SIMPLIFICADA

• Utiliza registradores de deslocamento (shift register)

• Um registrador para o ciclo de busca e outro para o ciclo


de execução

• Permite reutilizar parte do registrador de deslocamento


que controla a adição para controle da subtração
• A ativação do registrador de deslocamento apropriado
depende do código de operação da instrução, conforme
mostrado no slide 92, pela entrada dos dois primeiros bits
do RI no controlador
104
• Inicialmente temos um “OR” envolvendo : partida, E
(enable da memória), SUB e ADD. Qualquer um desses
=1, inicia o ciclo de busca
• O ciclo de busca da instrução na memória é constituído
por:
• TPC : transferência do Conteúdo do PC para o REM
• E : Enable (habilita) memória, conecta a memória ao RDM
quando E=1
• Quando E=1, a operação é de leitura (R/w =1), ou seja
transfere o conteúdo da memória (instrução) para o RDM
• IPC : Incrementa PC (Program Counter)
• TRB: Transferência do conteúdo do registrador (RDM) –
instrução- para o barramento
• TB: Transferência do barramento (instrução) para o RI

105

Você também pode gostar