Sei sulla pagina 1di 20

27/09/2018

CONCEITOS BÁSICOS

Unidades básicas de um Microprocessador:

Unidade Lógico Aritmética (ULA): responsável pela realização das operações


lógicas e aritméticas.
Unidade de Controle (UC): responsável pela decodificação e execução das
instruções, fornecendo os sinais de temporização adequados para as diversas
partes do processador e do próprio computador.
Registradores: memórias para armazenamento de informação binária (dados,
endereços e instruções).

CONCEITOS BÁSICOS

1
27/09/2018

As CPUS 8086/8088

As CPUs 8086 / 8088

Estrutura das CPUs 8086 / 8088

(1978)

(1979)

Característica Comum: endereçamento a 20 bits, podendo acessar 1


Mbyte de memória.

2
27/09/2018

As CPUs 8086 / 8088

A CPU é dividida em
duas unidades
independentes:

• EU – Unidade de
Execução –
responsável pela
decodificação e
execução das
instruções.

• BIU – Unidade de
Interface de
Barramento –
responsável pela
interface com o
barramento
externo.

As CPUs 8086 / 8088

• Toda vez que a EU está pronta para executar uma nova instrução, ela
retira um código do topo da Fila de Códigos na BIU.
• Se a Fila de Códigos está vázia, então a BIU executa um ciclo de busca
(“fetch”) e a EU é obrigada a aguardar esse ciclo.
• Raramente a Fila de Códigos estará vazia.

Ciclos de busca e execução:


Se memória ou I/O devem
ser acessados durante a
execução de uma
instrução, então a EU
informa à BIU sobre essa
necessidade – que será
atendida com a geração de
ciclos de barramento pela
BIU.

3
27/09/2018

As CPUs 8086 / 8088

OBSERVAÇÃO:

Não confundir a fila de 6 bytes da BIU com memória cache. Os códigos que
são colocados nessa fila são as instruções (códigos de operação ou opcodes)
que serão executados pela EU.
Os dados nunca são colocados nessa fila.

As CPUs 8086 / 8088

Registradores e Flags no 8086:

• São 4 registradores de finalidade geral (16 bits).


• São 2 registradores apontadores de pilha (16 bits).
• São 2 registradores de indexação (16 bits).
• Há 1 ponteiro de instrução (16 bits).
• São 4 registradores de segmento (16 bits).
• E 1 resgistrador de estado (flags) (16 bits).
• O 8086 importa todo o conjunto de registradores do 8085.

4
27/09/2018

As CPUs 8086 / 8088

Registradores e flags do 8086

As CPUs 8086 / 8088

Registradores e flags do 8086

CS – Segmento de código: todos os acessos ao código de programa


tomam este registrador como seletor. O “offset” e o registrador IP;

DS – Segmento de dados: todos os acessos a dados;

SS – Segmento da pilha: todos os acessos a dados que utilizam os


registradores SP ou PB tomam como referência este registrador;

ES – Segmento extra: operação com strings que usam DI para calcular o


endereço, são feitas usando o registrador ES para definir o segmento.

5
27/09/2018

As CPUs 8086 / 8088

Registradores e flags do 8086

Exemplos:

a)If (a<b) { printf (“a<b”) ; a-b , testa o flag de sinal ( jns )


X=b-a;
...}

b) If (a==b) { printf (“a==b”) ; xor (a,b) , a = b se resultado for zero ( jnz )


X = a*12;
...}

As CPUs 8086 / 8088

VARIEDADE DE MODOS DE FUNCIONAMENTO:


a) Mono processamento (uma única CPU);
b) Multiprocessamento (mais de uma CPU);

SELEÇÃO DOS MODOS DE FUNCIONAMENTO:


a) Modo mínimo (MN /*MX = 1);
• Modo máximo (MN /*MX = 0);
No modo multiprocessamento existe uma lógica interna para
gerenciar as prioridades de acesso ao barramento.
Cada CPU pode ter sua própria memória e/ou compartilhar memória
com outras CPU´s.

6
27/09/2018

As CPUs 8086 / 8088

CONFIGURAÇÃO DA CPU 8086

As CPUs 8086 / 8088

mínimo

7
27/09/2018

As CPUs 8086 / 8088

A CPU 8086 é, em verdade, um dos componentes de uma configuração


microprocessada com múltiplos CI´s.
a) 8284 – Gerador de Clock;
• 8288 – Controlador de barramento.

CICLOS DE BARRAMENTO.
•Um processador realiza ciclos de barramento sempre que for à memória
buscar códigos de instruções para executar. Neste caso o ciclo será de
LEITURA.
•Outra situação onde também são gerados ciclos de barramento: quando
uma variável for acessada na memória, para consulta ou atualização.
i = j ; em C
mov reg, [ j ] ; em assembler
mov [ i ], reg
reg – representa um registrador interno da CPU.

As CPUs 8086 / 8088

8
27/09/2018

As CPUs 8086 / 8088

LINHAS DE ENDEREÇOS E DE DADOS:


AD0 ... AD15 – Multiplexados endereços e dados;
A16 / S3 e A17 / S4 – Em T1 como linha de endereço; nos demais fornecem
informações de estado;
A18 / S5 – Em T1 como linha de endereço; nos demais reflete o estado do flag de
habilitação de interrupção;
A19 / S6 – Em T1 como linha de endereço; nos demais 0;
*BHE / S7 – Durante T1 serve como Bus High Enable.

As CPUs 8086 / 8088

LINHAS DE CONTROLE E ESTADO


São divididas em:
• Afetadas por MN / *MX.

• Não afetadas por MN / *MX.

9
27/09/2018

As CPUs 8086 / 8088

LINHAS DE CONTROLE E ESTADO NÃO AFETADAS POR MN / *MX:


*RD – Mantida em nível baixo quando a CPU estiver lendo dados da memória ou
de um dispositivo de I/O.
READY – Usada pela memória ou dispositivo de I/O para indicar se este está ou
não pronto para iniciar uma transferência de dados.

*TEST – Usada apenas na presença do 8087 (co-processador matemático).


INTR – Entrada de pedido de interrupção.
NMI – Entrada de pedido de interrupção não mascarável.
RESET – Sinal para inicializar a CPU.

As CPUs 8086 / 8088

•CONDIÇÃO DO PROCESSADOR APÓS O RESET:


AD0...AD15 0
AD16...AD19 / S3...S6 0
BHE / S7 0
*S2 / (M/*IO) vai para 1 e então para 0
*S1 / (DT/*R) vai para 1 e então para 0
*S0 / *DEN vai para 1 e então para 0
LOCK / *WR vai para 1 e então para 0
*RD vai para 1 e então para 0
INTR vai para 1 e então para 0
ALE 0
HLDA 0
*RQ / *GT0 1
*RQ / *GT1 1
QS0 0
QS1 0
-Os flags são zerados;
-Os registradores DS, SS, ES e IP são zerados;
-Registrador CS inicializado com FFFFh;
-A execução inicia no endereço FFFF0h (CS = FFFFh e IP = 0000h).

10
27/09/2018

As CPUs 8086 / 8088

LINHAS DE CONTROLE E ESTADO AFETADAS POR MN / *MX:


Para o Modo Mínimo:
• *DEN – (Data Enable) – Indica que vai haver tráfego no barramento.
• DT / *R – Sinaliza a direção da transferência de dados.
• M / *IO – Indica se a transferência de dados é com a memória ou com
dispositivo de I/O.
• ALE – Sinal para demultiplexar as linhas de dados (e estados) das linhas
de endereço.
• *INTA – Indica seqüência de atendimento a interrupção.
• HOLD – Pedido de hold.
• HLDA – Reconhecimento de hold.
• *WR – Indica se a escrita é em memória ou em um dispositivo de I/O.

As CPUs 8086 / 8088

LINHAS DE CONTROLE E ESTADO AFETADAS POR MN / *MX:


Para o Modo Máximo:
• *S0, *S1, e *S2 - Estas linhas, válidas apenas no período T1, contêm
informações para operar em modo máximo. Deve-se utilizar um
controlador de barramento (8288) para decodificar estas informações.

11
27/09/2018

As CPUs 8086 / 8088

LINHAS DE CONTROLE E ESTADO AFETADAS POR MN / *MX:


Para o Modo Máximo:
• QS0 e QS1 – Indicam o estado da fila de instrução.

• *RQ / *GT0 – Linha bidirecional por onde se faz o pedido (request) do


barramento e a confirmação (grant) desse pedido.
• *RQ / *GT1 – Idem do anterior porém com menor prioridade.
• *LOCK – Utilizada para evitar que o 8086 perca o controle do barramento
enquanto está executando uma instrução.

As CPUs 8086 / 8088

LINHAS DE ALIMENTAÇÃO DO RELÓGIO (CLOCK):

• CLK – Sinal de relógio para sintonizar toda a lógica do 8086.


• Vcc – Pino de alimentação.
• GND – Referência para todas as tensões.

Linhas em três estados:

12
27/09/2018

As CPUs 8086 / 8088

BARRAMENTOS DE ENDEREÇOS E DE DADOS

Drivers – Para ampliar a capacidade de corrente.


Receivers – Para retirar os sinais dos barramentos.
Transceivers – O conjunto Driver + Receiver.
Latch – Utilizado para guardar sinais do barramento por um curto período
de tempo.

As CPUs 8086 / 8088

BARRAMENTOS DE ENDEREÇOS E DE DADOS

•ALE – Sinal para demultiplexar as linhas de dados (e estados) das linhas de


endereço.

13
27/09/2018

As CPUs 8086 / 8088

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA

Implementação utilizando *BHE e A0

14
27/09/2018

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA

Acesso a 1 Byte de endereço par (endereço x)

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA

Acesso a 1 Byte de endereço impar (endereço x+1)

15
27/09/2018

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA

Acesso a palavra de 16 bits em endereço par (endereço x)


• O endereço de uma palavra de 16 bits é definido pelo seu byte menos
significativo.

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Acesso a palavra de 16 bits em endereço impar (endereço x+1)

16
27/09/2018

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Instruções que acessam bytes e palavras em endereços pares e impares:

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Porque não utilizar memórias organizadas em palavras ???

O grande problema é que


os programas operam, na
grande maioria das vezes,
com bytes.

17
27/09/2018

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Como separar o barramento de dados?

•*BHE / S7 – Durante T1 serve como Bus High Enable.

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Como separar o barramento de dados?

18
27/09/2018

As CPUs 8086 / 8088

UTILIZAÇÃO DA MEMÓRIA
Como separar o barramento de dados?

*DEN – (Data Enable) – Indica que


vai haver tráfego no barramento.
DT / *R – Sinaliza a direção da
transferência de dados.

As CPUs 8086 / 8088

PROJETO NO MODO MÍNIMO:


• 1 Mb de memória.
• 64 k de I/O ( sinais A16 – A19 mantidos baixos em ciclos de I/O).

19
27/09/2018

As CPUs 8086 / 8088


PROJETO NO MODO MÁXIMO:
O modo máximo é usado para sistemas multiprocessados ou co-
processado.
Neste modo, utiliza-se o
controlador de barramento 8288:

1. O estado da fila interna é


informado por QS0 e QS1.
2. O estado do barramento é
obtido através de *S0, *S1 e
*S2.
3. Existe o mecanismo de “lock”
do barramento para controlar
recursos compartilhados.
4. *RQ/*GT0 e *RQ/*GT1 permitem
diversas CPUs compartilharem
o mesmo barramento.

20

Potrebbero piacerti anche