Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza...

15
•<, „• 36 Capítulo 2: Estudo das CPUs BOQ6/80S8 *> PC: Um Guia Pritico de Hardware t Intertactareenlg • 4* edição As linhas *SO, *DEN, *S1. DT/*R, *S2, M/*IO entram em alta impedãncia um pouco antes da CPU emitir o reconhecimento de hotd (hlda). Com as linhas ADO...AD15, A16/S3, A17/S4, A18/S5 e A19/S6, isto acontece durante o reconhecimento de interrupção. 2.4. Barramentos de Endereços e Dados Como já foi visto, barramentos são conjuntos de linhas conduíoras por onde trafegam sinais de uma determinada espécie. Os barramentos, normalmente, interconectam diversos dispositivos e, por isso, oferecem uma carga considerável. As CPUs, devido à baixa capacidade de corrente, necessitam de drivers (amplificadores lógicos de corrente) para entregar seus sinais ao barramento. Para retirar os sinais do barramento. usa-se um dispositivo similar, denominado rece/Ver. Para as linhas bidirecionais, torna-se necessário um driver e um receiver, a esse conjunto dá-se o nome transceiver. O termo bufferé usado para designar qualquer dispositivo que repotencialize (amplifique) os sinais. Para guardar sinais que apareçam no barramenío, por urn curto período de tempo, usa-se um dispositivo denominado latch. Para trabalhar corretamente, uma memória ou um dispositivo de I/O. conectados à CPU, necessitam de que os endereços fiquem estáveis durante todo o ciclo de barramenío. Como os endereços aparecem apenas durante o instante T1, é n^essário armazená-los, c que pode ser conseguido com o emprego de latches. Para amplificar e controlar o sentido dos dados, torna-se necessário o emprego de transceiveres. A Intel comercializa um conjunto de latches e iransceiveres: a 8282 latch não inversor, D 8283 latch inversor. G 8286 transceiver não inversor, Q 8287 ~> transceiver inversor. Porém, no presente estudo, adotar-se-ão os TTLs: Q 74LS373 latch não inversor e a 74LS245 -»• fransce/Vernão inversor. 2.4.1. Como Separar ò Barramentb^dé^Endereços A forma mais usual de criar um barramento de endereços (linhas onde os endereços ficam estáveis durante todos os períodos do ciclo de barramento) é separar os endereços através de latches, controlados pelo sinal ALE. O 74LS373, como ilustrado na figura 2.11, é um latch de 8 bit- (8 flip-flops D em paralelo), que possui um sinal de controle (*OE), para os très-estados de saída, e um gate (G), para controlar a operação de latch. Quando G = 1. o latch é transparente, ou seja, a saída é igual à entrada; porém, quando G = O, a saída fica congelada com o último valor. A figura 2.12 mostra um exemplo da demultiplexação do barramento de endereços.

Transcript of Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza...

Page 1: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

• < , „•36 Capítulo 2: Estudo das CPUs BOQ6/80S8

*> PC: Um Guia Pritico de Hardware t Intertactareenlg • 4* edição

As linhas *SO, *DEN, *S1. DT/*R, *S2, M/*IO entram em alta impedãncia um pouco antes da CPUemitir o reconhecimento de hotd (hlda). Com as linhas ADO...AD15, A16/S3, A17/S4, A18/S5 eA19/S6, isto acontece durante o reconhecimento de interrupção.

2.4. Barramentos de Endereços e Dados

Como já foi visto, barramentos são conjuntos de linhas conduíoras por onde trafegam sinais deuma determinada espécie. Os barramentos, normalmente, interconectam diversos dispositivos e,por isso, oferecem uma carga considerável. As CPUs, devido à baixa capacidade de corrente,necessitam de drivers (amplificadores lógicos de corrente) para entregar seus sinais aobarramento. Para retirar os sinais do barramento. usa-se um dispositivo similar, denominadorece/Ver. Para as linhas bidirecionais, torna-se necessário um driver e um receiver, a esseconjunto dá-se o nome transceiver. O termo bufferé usado para designar qualquer dispositivo querepotencialize (amplifique) os sinais. Para guardar sinais que apareçam no barramenío, por urncurto período de tempo, usa-se um dispositivo denominado latch.

Para trabalhar corretamente, uma memória ou um dispositivo de I/O. conectados à CPU,necessitam de que os endereços fiquem estáveis durante todo o ciclo de barramenío. Como osendereços aparecem apenas durante o instante T1, é n^essário armazená-los, c que pode serconseguido com o emprego de latches. Para amplificar e controlar o sentido dos dados, torna-senecessário o emprego de transceiveres. A Intel comercializa um conjunto de latches eiransceiveres:

a 8282 -» latch não inversor,D 8283 -» latch inversor.G 8286 -» transceiver não inversor,Q 8287 ~> transceiver inversor.

Porém, no presente estudo, adotar-se-ão os TTLs:

Q 74LS373 -» latch não inversor ea 74LS245 -»• fransce/Vernão inversor.

2.4.1. Como Separar ò Barramentb^dé^Endereços

A forma mais usual de criar um barramento de endereços (linhas onde os endereços ficamestáveis durante todos os períodos do ciclo de barramento) é separar os endereços através delatches, controlados pelo sinal ALE. O 74LS373, como ilustrado na figura 2.11, é um latch de 8bit- (8 flip-flops D em paralelo), que possui um sinal de controle (*OE), para os très-estados desaída, e um gate (G), para controlar a operação de latch. Quando G = 1. o latch é transparente, ouseja, a saída é igual à entrada; porém, quando G = O, a saída fica congelada com o último valor. Afigura 2.12 mostra um exemplo da demultiplexação do barramento de endereços.

Page 2: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovsky e Alexandre Mendonça 37

74LS373

*OE

1

0

0

G

X

10

Saída

Alta Impedãncia

DO = DI

DO = Anterior

Figura 2.11. Descrição do lalch 74LS373.

A16-A19S3-S6

fíflfífi\J\J\J\J

ADO -£015^ <x

\7

\~7

N7

—s

\7

N)

G *OE

373u

G *OE

373n o

'OPG373

n n

3 — IA16- A19

S7

°ni- A8-A15

>''

-= - AL) - A/\7

-AADO-AD15

Figura 2.12. Demultipiexação do bairamenfo de endereços.

O barramento de endereços deve ser capturado o mais tarde possível para permitir a estabilizaçãode suas linhas, Esse instante é bem caracterizado no flanco de descida do sinat ALE.

2.4.2. Como Usar a Memória com o 8086

O espaço de memória endereçado pelo 8086 pode ser visualizado como uma seqüência de 1MB,na qual um byte pode conter qualquer valor de 8 bits e dois bytes consecutivos formam umapalavra (word) de 16 bits. O endereço de uma palavra de 16 bits é dado pelo endereço do seubyte menos significativo e isto é o que se chama de "little endian". Não existe qualquer restriçãosobre onde colocar um byte ou uma palavra de 16 bits. Ou seja, podem estar em qualquer3ndereço. O espaço de endereçamento é fisicamente conectado ao barramento de 16 bits atravésda sua divisão em dois bancos de 512 KB, como ilustrado na figura 2.13.

Page 3: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

38 Capítulo 2: Estudo das CPUs 8086/8088PC; Um Guia PtAtico de Hardware c Intcflactarr^nlo -_4*

1 MB

FFFFF

FFFFE

FFFFDAQ=1

512 KB(Impar)

512 KB

(Par) A0=0

A1-A19 FFFFF

FFFFD

/ s

DO-D15 D8-D15

FFFFE

FFFFC

/ v

A1-A19

DO-D7

Figura 2.13. Divisão da memória de 1 MB em dois bancos de 512 KB.

Um banco está conectado à metade inferior do barramenío de dados (DO - D7) e contém os bytescom endereços pares (AC = 0). O outro banco está conectado à metade superior {D8 - D15) econtém os bytes com endereços ímpares (AO = 1). As linhas A1 - A19 selecionam um byteespecífico dentro de cada banco. A idéia que surge de imediato é a de habilitar os bancos deacordo com AO. Se AO = O, habilitar banco par e, se AO = 1, habilitar banco impar, como ilustradona figura 2.14. Isto funciona, porém impede o uso de palavras de 16 bits, pois, para acessá-las, énecessário habilitar os dois bancos simultaneamente.

512 KB 512KB\u r\

>o nl^

A1-A19 x7

*FN

ímpar

s

D8-D15

/.., .,...,., >>

AO

A1 -A19

\

, DO-D15

N7

*FN

Par

/

DO- D7

N

\

/ \

Figura 2.14. Esquema deficiente, pois não permite transferências de 16 bits.

Para permitir o trabalho com bytes e palavras de 16 bits, existe a linha *BHE (Bus High Enabíe),que controla o banco impar. Agora, cada banco possui um controle separado: AO para o banco pare *BHE para o banco ímpar, como ilustrado na figura 2.15. Se os dois controles são ativados aomesmo tempo, os dois bancos ficam habilitados, permitindo um acesso de 16 bits.

Page 4: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovsky e Alexandre Mendonça. imtdilot3.corn.br

39

512KB(ímpar)

BHE AO

512 KB(Par)

DO-D15

Figura 2.15, Usode AO e 'BHE para controlar dois bancos de 512 KB.

Para acessar um byte que está num endereço par, a CPU ativa o banco par e desativa o bancoímpar. Portanto, AO é colocado em O (endereço par), para selecionar o banco de memóriaconectada à porção inferior do barramento de dados, e a linha *8HE é colocada em 1. paradesabilitar o banco ligado à porção superior do barramento de dados. A figura 2.16 demonstraesse caso.

Desabilitado512 KB(ímpar)

Habilitado512KB

(Par)

Figura 2.16- Acesso a um byte de endereço par (endereço x).

A desabilitação do banco ímpar (*BHE = 1) seria dispensável nas operações de leitura, pois oprocessador sabe, a priori, qual dos bytes vindos do barramento lhe seria útil. Porém, na escrita, obanco impar deve ser desabilitado para evitar que seja alterado indevidamente. Para endereçarum byte que está em um endereço ímpar, já que a informação será transferida pela parte alta dobarramento de dados (D8-D15), a CPU habilita "BHE e, como o endereço é ímpar (AO = 1), obanco par fica automaticamente desabilitado. Este caso está ilustrado na figura 2.17.

Page 5: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

40 Capitulo 2: Estudo das CPUs 8G86Í8088PC: Um Guia Pfitico de Hardware t Inlerlaceamento • 4* tdiçao

Habilitado512KB(ímpar)

A1 -A19 x/

D8

£-

y+1

íx-M

A

-D15

x

\

A0=1 .

A1 -A19 x7

D

DO-D15

Desabilitado512KB(Par)

yx

/

0-D7

v

\

/ — \

Figura 2.17. Acesso a um byte de endereço impar (endereço x+1).

Algumas vezes, torna-se necessário transferir um byte da metade alta para a metade baixa dobarramento de dados. Por exemplo, a CPU 8086 possui um registrador de 16 bits denominado ÁX.Este registrador está dividido em duas partes de 8 bits: AH é a parte alta e AL é a porte baixa.Caso seja necessário carregar AL com um byie que esto em um endereço impar, torna-senecessária essa transferência. O dado será acessado através da parte alta do barramento dedados (D8 - Dl 5). Ao chegar no S085. esse dado será transferido para a parte baixa dobarramento interne da CPU para então ser entregue a AL. Algo semelhante acontece quando secarrega em AH um byte que está em um endereço par. Este recurso é interessante porque permiteque transferências ae l/O, usando o registrador AL, acessem dispositivos conectados na partebaixa ou na parte alta do barramento de dados.

O endereço de uma palavra de 16 bits, como já foi visto, é dado pelo endereço do seu byte menossignificativo. Por exemplo, a palavra de 16 bits definida pelo endereço 20Qh ocupa os endereços200h (menos significativo) e 201h (mais significativo). O acesso a palavras de 16 bits, localizadasem endereços pares, é feito em um único ciclo de barramento. As linhas A1-A19 selecionam umbyte em cada banco, sendo que AO = O e *BHE = O habilitam os dois bancos simultaneamente. Afigura 2.18 ilustra esse acesso.

Palavras de 16 bits localizadas em endereço ímpar são problemáticas, pois os bits A1 dos doisendereços consecutivos são diferentes. Portanto, com o esquema da figura 2.18, não é possívelrealizar o acesso em um único ciclo de barramento. Desta forma, tais palavras só podem seracessadas em dois ciclos de barramento. No primeiro ciclo, o byte menos significativo é acessadoe, durante o segundo ciclo, acessa-se o byte mais significativo. Durante o primeiro ciclo debarramento, A1-A19 especificam o endereço do primeiro byte, com AO = 1 (endereço ímpar) e*BHE = 0. Assim, o banco par é desabilitado e o banco impar é habilitado. Durante o cicloseguinte, o endereço é incrementado, com AO = O e *BHE=1; portanto, o banco ímpar édesabiliíado e o par é habilitado. Esta seqüência está na figura 2.19.

Page 6: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zetenovsky e Alexandre Mendonça:tfwww . m<*di tof » . com, br

41

Habilitado512 KB(ímpar)

Habilitado512 KB(Par)

*BHE=0C

A1 -A19N7

D8

£.

y+1

U!m/

-D15

v

S

/

A0=0

A1 -A19N/\

D(

DO-D15

y1S3*

/)-D7

\

^

/ _5k

F/gt/ra 2. f 8. Acesso a wna palavra de 16 bits em endereço par (endereço x).

PRIMEIRO CICLODE BARRAMENTO

SEGUNDO CICLODE BARRAMENTO

Habilitado512 KB(ímpar)

Desabilitado512 KB(Par)

3HE=0,

A1 -A19v

D8

£-

x+3|OMgg|l

s-D15

\

A0=1 r

Al A "1 Ql\ 1 /A 1 W\

x+2

x

N >^

DO-D7

/ DO-D15 x x -^

Desabilitado512KB(ímpar)

Habilitado512 KB(Par)

DO-D7

DO-D15 \/_

2. J9. Acesso a uma palavra de 16 bits em endereço ímper (x* 1).

Page 7: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

42 Capítulo 2: Estudo das CPUs 8066/8088PC: Um Guia Ptitico d< Hjfdwir» e Irrtftrtjoeimento • 4* «diçio

No caso da figura 2.19. a CPU 8086 automaticamente conecta as partes alta e baixa dosregistradores de 16 bits às metades apropriadas do barramento de dados. Entretanto, acessarpalavras de 16 bits em endereços ímpares requer um ciclo extra de barramento e isto degrada odesempenho do sistema. Portanto, todos os compiladores oferecem a opção de iniciar emendereço par qualquer variável de mais de 8 bits. Já a CPU 8088, como será visto adiante, por terum barramento externo de dados de 8 bits, sempre necessita de dois ciclos para acessar palavrasde 16 bits. Para ela, não importa se o endereço é par ou ímpar.

Durante a leitura, todos os 16 bits do barramento de dados são colocados em alta impedância. apartir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica adecodificação das memórias. Durante a escrita de um byte, o 8086 aciona as 16 linhas de dadosdo barramento, mas a informação na metade que não está sendo usada é indeterminada. Omesmo vale para as operações de I/O.

Exemplificando o que foi exposto nesta seção, citam-se a seguir instruções que acessam bytes epalavras de 16 bits em endereços pares ou ímpares.

mov a i , [ 2 3 2 2 h ]

mov ai, [2323h]

mov ax , [2322h]

mov a x , ( 2 3 2 3 h ]

Esta instrução busca, no endereço 2322h (par), umdado de 8 bits (pois AL é um registrador de 8 bits).

Esta instrução t'jsca, no endereço 2323h (impar), umdado de 8 bits (pois AL é um registrador de 8 bits).

Esta instrução busca, nos endereços 2322h (par) e2323h (ímpar), um dado de 16 bits (pois AX é umregistrador de 16 bits). Neste caso, o acesso é feitoem um único ciclo de barramento.

Esía instrução busca, nos endereços 2323h (ímpar) e2324h (par), um dado de 16 bits (pois AX é umregistrador de 16 bits). Neste caso, o acesso é feitoem dois ciclos de barramento.

Obs: é suposto que o registrador DS esteja zerado.

Comentário: Quando se constrói o banco de memória de uma CPU com barramento de dados de16 bits. como o 8086, e que é capaz de acessar 1 mega endereços-diferentes, sempre sepergunta por que não utilizar 1 mega palavras de 16 bits, ao invés de 1 megabyte ? Em outraspalavras, por que não arrumar a memória em células de 16 bits, como exemplificado na figura2.20. O grande problema é que os programas operam, na grande maioria das vezes, com bytes.Essa operação com bytes ficaria difícil em uma memória arrumada por palavras de 16 bits. Umapossível solução seria jogar fora metade da palavra de 16 bits, mas isso levaria a um grandedesperdício. Não importa qual seja a CPU (16, 32 ou 64 bits), sempre haverá a necessidade deoperar-se com bytes e, por isso, essas memórias são estruturadas por bytes.

Page 8: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovskye Alexandre Mendonçahttp://www.nueditora.com br

43

1 MWORDx 16 bits v

AO-A19

FFFFF

FFFFE

FFFFD

DO-D15

Figura 2.20. Organização em palavras cie16 bits dificultam o acesso a tyfes

Exercício Resolvido 2.4.2.1

Supondo que se esteja usando um compilador para DOS, calcule o tamanho, em bytes, daseguinte estrutura em linguagem C:

struct exemplo

int a;chár b;int c;

Solução:

Á primeira vista, a estrutura teria 5 bytes de tamanho: 2 bytes para cada inteiro e 1 byte para ocaracter. Contudo, se isto ocorresse, um dos inteiros ficaria alocado a partir de um endereçoímpar, o que degradaria o desempenho da CPU quando fosse feito um acesso a ete.

Para evitar este problema de degradação de desempenho, os compiladores oferecem uma opçãopara permitir a alocação de variáveis de 16 bits apenas a partir de endereços pares, através doalinhamento. Como no exemplo da figura, um alinhamento por byte não garante o melhordesempenho, mas garante o menor tamanho da estrutura (5 bytes). Já o alinhamento por wordfaz com que todas as variáveis de 16 bits sejam alocadas em endereços pares, de forma que aestrutura passe a ter o tamanho de 6 bytes.

Page 9: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

44 Capítulo 2: Estudo das CPUs 8086/8088PC: Um Gula Pfiticojle Hardware t In t* rttc cimento - 41 edição

Escolha do alinhamento pelo compilador.

Exercício Resolvido 2.4.2.2

Conecte A memórias RAM 6116 (2 KB cada) e 2 memórias EPROM 2716 (2 KB cada) aosbarramentos de dados e de endereços do 8086, de forma que elas constituam toda a memória deprograma e de dados de um computador baseado neste 8086.

Solução:

Como o 8086 utiliza um barramento de dados de 16 bits, implementando assim um banco par eum banco ímpar, os chips de memória devem ser organizados de 2 em 2. Assim, uma opção éutilizar o seguinte mapeamento:

EPROM #0 e #1

sem dispositivos mapeados

RAM # 2 e #3

RAM #0 e #1

FFFFFh

FFOOOh

OlFFFh

01000hOOFFFh

OOOOOh

A19 = A18 = ...=A13= OA12 = 1

= OA12 =

Mapeamento.

Page 10: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovsky e Alexandre MendonçatiHp:/fwww.fraeditora.cofTT.br

45

EPROM #1

JRAM #3

s v

>.

^

RAM#1 EPROM #0 RAM #2

L 7 ..... Do

Conexão das memórias ao barramento de dados

A EPROM, que deverá conter o programa de inicialização (BIOS), deve ocupar os últimosendereços de memória, pois a primeira instrução executada é a de endereço FFFFOh. Já asmemórias RAM podem ocupar os primeiros endereços. Os chips de índice par vão conectados àparte baixa do barramento de dados (D7 D0), enquanto que os de índice impar vão conectados áparte alta (D1S D8).

Repare que a coluna mais à direita da tabela de mapeamento ressalta os valores que algumasunhas de endereços devem ler para que o acesso àquela porção de memória seja logrado. Combase nesta coluna, pode-se então calcular a lógica que ativa o Chip Select de cada componente,como no esquema (a) a seguir. Já o esquema (b) usa um hardware menor, mas não adrntte aconexão fuíura de outras memórias.

A(9 —

^r Í]Lr

-cs

EPROM #1

•cs

EPROM #0

Al 9

61' £1AO

•cs

EPROM #1

•cs

EPROM #0

Al9-~Ai3 A Ai9-..A]3 A Aig ... AIJ A^

MAfc^MAÍTr iüSs*

-cs

RAM #3

V V-cs

RAM #2

•cs

RAM#1

(a) Hardware expansível.

Aig Ai2 A19 A12 A19 A12

AlVp A ff-"0 AA^'BI1C

Y•cs

RAM #3

Y Y•cs

RAM #2

•cs

RAM#1

6 j | j r AQ

V•cs

RAM#0

AI g A] 2

Y*cs

RAM#0

(b) Hardware mínimo.

Page 11: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

46 Capítulo 2: Estudo das CPUs 8086/8088FC: Um Gult Prítica tic Hardware t loleft»ce>m«nto - f' ediçio

Para finalizar, resta conectar as linhas de endereços. Como os chips mapeam endereços de 2 em2, as linhas A10...Ao de cada memória são ligadas às linhas AH...Ai da CPU, como mostra a figura.

A!

AsAcAi

As

Ag

An

AoA!A?Aa DoAA DIA5 D2

Ae D3

A7 D4

A8 D5

Ag D5

AIO D7

RAM#1RAM #3EPROM/fl

Ug

. Ou

Di2

L>is

As

^A? ,Ae 1Ag 1

AOAiA2

A3

A4

As

A7

AsAgAIO

DoDID2

^3D**

DOD7

LJ2l L)3

4

5

RAMííORAM «2EPROM #0

Conexão das memórias aos barramanto de dados e de endereços

Com relação ao barramento de dados do sistema, duas alternativas ris implementação devem serconsideradas:

a barramento de endereços e dados multiplexados (vide figura 2.21),a barramenío de dados com buffers ou transceiveres (vide figura 2.23).

ALE

A16-A19S3-SG

>-f " '.•'-- -BHE-"

8086ADO - AD1 5

N

N

'

/\7

i

\/

AD(

G "OE

n373QD w

Di Qi

G 'OE

373D Q

G *OE

373D Q

3-AD15

:>— i

"^" 1 V ^~

x. *Di_j crj on c

•= A8-A15

'

-±r AO-A7

\7 ^_

BARRAMENTO_V DE DADOS

r /RflMITIDI C Y A P

BARRAMENTODEENDEREÇOS

Figura 2.21. Barramento de dados multiplexado.

Page 12: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovsky e Alexandre Mendonça 47h ttp: l: www. mze di to rã. c wn.br

Em projetos pequenos, não existe problema em usar o barramento de dados muitiplexado. Énecessário apenas garantir que as memórias e os dispositivos de l/O, conectados a essebarramenío, não interfiram com os endereços durante o período TI. Para ter-se essa garantia, énecessário usar dispositivos com trés-estados na saída, que só são ativados pela linha de leituraÍ*RD) da CPU. Dispositivos que não possuem três-esíados na saída só poderão ser conectadosse for adicionado um circuito extra para suprir o terceiro estado necessário.

Uma outra limitação à utilização do barramento de dados muitiplexado é relativa à capacidade decorrente do 808G, que é de 2 mA, e à carga capaciíiva de 100 pF (para garantir as característicasAC). Sejam os seguintes valores típicos:

a dispositivo de t/O: 20 pF,Q latch de endereços: 12 pF,D memória: 5 a 12 pF.

Urn sistema com 3 periféricos e 2 a 3 memórias já estaria fora do limite especificado. Para permitirsistemas grandes, deve-se aumentar a capacidade de carga do 8086. Isto é conseguido com uma"amplificação" do barramento de dados. O 8086, em modo mínimo, gera dois sinais para controledos buffers: *DEN e DT/*R. *DEM (Dafa Enable) indica a existência de tráfego de dados pelobarramento, enquanto que DT/*R (Data TXornot RX) indica a direção (o sentido) desse tráfego.

É muito comum o uso do transceiver 741S245 para realizar essa função. A figura 2.22 apresentaum diagrama resumido deste Cl, enquanto que a figura 2.23 ilustra o caso do barramento dedados "amplificado".

Como o sinal *DEN, no pior dos casos, é habilitado ao final do período T1, ele garante acontenção do barramento. Assim, durante T1, ninguém, exceto a CPU, estará colocando dados nobarramento muitiplexado.

74LS245'u DIR

1 X

0 0

0 1

Alta Impedáncia

B-> A A

A — > B

— «=

"f

fs•G 4

^DIP

B

Figura 2.22. Transceiver 74LS245.

Page 13: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

48 Capítulo 2: Estudo das CPUs 8086/8088PC: Um Guia Feitiço de Hardware * imcrtaceamento - <* edição

ALE

A16-S3-

'Bh

8086ADO - AD1

DT/*R 'DE

M 9SG!E

_N

N

/

x

\7

\/

\7

N/

N

y

Nt /

<

*

G *OE

D373Q

Oi Qi

G *OE

373D Q

G *OE

373D Q

•GDIR

245

'GDIR

245A B

0 — ll A16-A19

"" ^s

>*BHE

"*t A8-A15

i A O - A 7

08-015

< '/

DO-D7f \ç —y

BARRAMENTODEENDEREÇOS

BARRAMENTODEDADOS

Figura 2.23. Batramento de dados "amplificado'

2:5; PrÒ^ètpIModp*Míhimb

No modo mínimo, o pino MN/*MX deve estar conectado a Vcc. Este modo deve ser usado parasistemas com uma única CPU. Pode-se endereçar 1 MB de memória e 64 K dispositivos de l/O Obarramento de dados é de 16 bits. Os sinais para controle do barramento (DT/*R, *DEN, ALE,M/*!O, *RD, *WR, *INTA) são fornecidos pela própria CPU. Um mecanismo de hold e hída permitecompatibilidade com os controladores de DMA existentes. Uma CPU 8086 em modo mínimo estámostrada na figura 2.24.

Page 14: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

Ricardo Zelenovsky e Alexandre Mendonça. reedito rã. c om.br

49

}CONTROLE

4 DO

J* BARRAMENTO

3X

_L_jl v BARRAMENTOAO-A19 ' DE ENDEREÇOS

•SHE > (1MB)

f DO-D15 v BARRAMENTO^ ~^ DE DADOS

Figura 2.24. Projeto Modo Mínimo.

mjellMlpSV-*>Ã ,• - J ..i --!jtju,;... .i í.-íiYíjí aív^-í»*'

No modo máximo, o pino MNrMX deve estar conectado à terra. O modo máximo é usado parasistemas muItiprocessados ou coprocessados. Neste modo, o 8288 (controlador de barramento}recebe sinais de estado do 8086 que, decodificados, geram os sinais de controle do barramento.Como já foi visto, alguns pinos mudam de função quando em modo máximo:

a o estado da fila interna é informado por QSO e QS1, permitindo que outrosprocessadores acompanhem a execução da CPU; o estado da fila é válidodurante o período de relógio seguinte à operação (vide figura 2.10);

a o estado do barramento é obtido com *SO, *S1 e *S2 (vide figura 2.8);

a existe o mecanismo de lock, ou tranca, do barramento, para permitir o controle derecursos compartilhados em sistemas multiprocessados;

D dois controles priorizados (*RQ/*GTO e *RQTGT1) permitem que diversas CPUcompartilhem o mesmo barramento.

Os sinais *SO, *S1, *S2 são fornecidos ao 8288 de forma a gerar os sinais de controle dobarramento. O 8288 amostra as linhas de estado no inicio de cada período de relógio (i) da CPU.No início de um ciclo de barramento, a CPU leva as linhas do estado ocioso (*SO = *S1 = *S2 = 1)para um dos sete estados possíveis. O 8288, então, inicia um ciclo de barramento. gerando o sinalALE. acompanhado pelos controles de direção do buffer. A figura 2.25 apresenta um exemplo deuma 8086 no modo máximo.

Page 15: Apresentação | Eng. de Telecommunicações€¦ · partir do período T2, mesmo quando se utiliza somente a metade do barramento. Isto simplifica a decodificação das memórias.

50 Capítulo 2: Estudo das CPUs 8086/8088PC: Um Guia Prilico dt Hardware e tmertjctarrxnto - f1 cdiçio

O 8288 gera os seguinte sinais de controle:

• ALE Address Lafch Enable• DEN Data Enable• DT/'R Data Transmite orReceive• *INTA Interrupt Acknowledge• *MRDC Memory Read Command• *MWTC Memory write command• *IORC i/O Read Command• *IOWC t/O Write Command• *AMWC Advanced Memory Write Command• *AIOWC Advanced I/O Write Command

Vcc

-MROC'MWTC'AMWC

•IORC*IOWC

"AlOWC.,NTA

DT7-RALE 8283

SINAISPARA

CONTROLEDOBARRAMENTO

AO-A19

BARRAMENTODE

ENDEREÇOS(1MB)

DO - D15 BARRAMENTO> DE DADOS

(16bits)

Figura 2.25. Projeto Modo Máximo.

Um dado muito importante para compreender o funcionamento do 8086 é o fato da lógica decontrole do barramento ser separada da lógica de execução. Isto significa que o 8086 tem duasentidades independentes: uma Unidade de Execução (EU) e uma Unidade de Interface comBarramento (BIU).