PIN-OUT

 

O microprocessador Z80 é um circuito integrado de tecnologia NMOS, comunicando com o exterior por intermédio de 40 pinos.

Na figura 1 esta representada a CPU Z80 e respectivos pinos, cujas funções passamos a descrever

 

v     Função dos Pinos do Z80

 

A0-A15 (barramento de endereço, pinos 1-5 e 30-40). São linhas de saída (output) que podem ter três estados (tristate): “0”, “1” e alta impe­dância. Este Último estado, de flutuação em relação A CPU, é utilizado pela lógica exterior para controlar o barramento de endereço, permi­tindo o acesso directo A memória (DMA: Direct Memory Access). As 16 linhas deste barramento permitem endereçar 65536 (212=64 k) posições de memória. o endereçamento dos portos de entrada saída faz uso das oito linhas menos significativas (A0-A7) do barramento de endereço, pelo que se consegue seleccionar 256 portos de entrada ou 256 portos de saída. Durante Os períodos de refrescamento das memórias RAM dinâmicas Os sete bits de menor ordem (Ao a 4) contém um endereço de refrescamento.

D0-D7 (barramento de dados, pinos 7-10 e 12-15). São linhas de en­trada/saída que transmitem dados bidireccionais, isto é, dados da CPU para Os dispositivos (saída) e dos dispositivos para a CPU (entrada). Tal como o barramento de endereços, estas linhas podem ter três estados (tristate).

Mi (Machine Cycle One, p/no 27). E’ uma linha de saída que está activa quando se encontra no estado “0”. Ml indica que se está a processar o ciclo de busca (fetch) de uma instrução que está a ser executada. De notar que, quando uma instrução cujo código da operação é constituído por dois bytes está a ser executada, o sinal M1 será gerado por cada ciclo de fetch relativo a cada um dos bytes do código de operação. Ml juntamente com o sinal IORQ (activo a “0”) indica o reconhecimento de uma interrupção (interrupt).

MREQ (memory request, p/no 19). Sinal de saída que pode estar num dos três estados (“0”, “1”, alta impediência) e é activo no estado 0”. Este sinal indica que o barramento de endereços contém um endereço valido para sor executada uma operação de leitura ou escrita na me­mória.

IOR (Input Output Request,pino 20). Sinal de saída, tristate e está ac­tivo quando IORQ=0. IORQ indica que o byte menos significativo de barramento de endereço contém o endereço de um porto de E/S de modo a processar-se uma operação de escrita ou leitura nosso porto. O sinal IORQ também é gerado, conjuntamente com o sinal  M1, quando um interrupt é reconhecido, indicando que o vector de resposta a essa interrupção podo sor colocado no barramento de dados (ver instruções IM2, interrupção "mascaravel" no modo 2). As operações de tomada de conhecimento de interrupções ocorrem durante a activação do sinal Ml, enquanto as operações de entrada/saída nunca ocorrem durante a activação do sinal Ml, logo não há possibilidade de erro quanto a inter­pretação do sinal IORQ.

WR (read, pino 21). Sinal de saída, tristate e esta activo quando WD = 0. RD indica que a CPU pretendo extrair (br) dados da memória ou de um dispositivo de E/S. O dispositivo endereçado deve usar este sinal para colocar a palavra de dados no barramento de dados da CPU.

WR (write, pino 22). Sinal de saída, tristate o está activo quando WR (write, pino 22). Sinal de saída, tristate o está activo quando WR=0. Indica que o barramento de dados contém uma palavra que vai ser armazenada numa posição de memória ou dispositivo de entra­da/saída consoante foi activado o sinal MRFQ ou ICRO. Alguns dispositivos do E/S da família Z80 não possuem entrada para o sinal WR. Estes dispositivos consideram uma operação de escrita quando o sinal IORQ está no estado “0” o RD está no estado “1”. RD=”0” especifica uma operação de leitura.

RFSH (refresh, p/no 28). sinal de saída, tristate o está activo quando RFSH=0. Este sinal de controlo é utilizado no refrescamento das memórias dinâmicas. Quando RFSH está no estado “0”, o sinal MREQ é utilizado no refrescamento da memória dinâmica conjuntamente com as sete linhas de menor ordem de barramento de endereços.

HALT (halt, pino 18). Este sinal é de saída e está activo quando

HALT=0. HALT indica que a CPU executou a instrução HALT (76 H). Então, a CPU executa continuamente a instrução NOP de modo a per­mitir a actividade de refrescamento das memórias dinâmicas. Este es­tado de c(paragem) (halt) só terminará com a execução de uma interrupção, NMI ou INT (desde que tenha sido permitida El).

WAIT (wait, pino 24). sinal de entrada, activo quando WAIT=0. WAIT indica A CPU Z80 que o dispositivo endereçado, memória ou E/S, não se encontra pronto para a transferência de dados. A CPU entra num estado de espera (wait) enquanto este sinal estiver activo, permitindo sincronizar com a CPU dispositivos de diferentes velocidades.

INT ((interrupt request, pino 16). sinal de entrada, activo quando INT=0. Este sinal de pedido de interrupção é gerado por dispositivos de entrada/saída. Um pedido de interrupção será considerado, no fim da execução da instrução em vigor quando ele surgiu, se o flip-flop IFF contiver o estado de permissão de interrupts e se o sinal BUSRQ não estiver activo. Quando a CPU aceita a interrupção, é gerado um sinal de reconhecimento (IORQ, estando Ml activo). A CPU pode responder a um sinal INT. de três modos diferentes conforme foi descrito anterior­mente.

(non maskable interrupt, pino 17). sinal de entrada, activo no flanco descendente (transição l ; 0). Esta entrada de interrupção tem prioridade superior A entrada INT, sendo sempre aceite (finda a instrução em execução) qualquer que seja o conteúdo do flip-flop IFF. NMI força automaticamente a CPU a retomar o processamento (restart) na posição 0066H.

RESET (reset, pino 26). sinal de entrada, activo quando RESET=0. Este sinal provoca o carregamento do contador de programa (PC) com zeros1 inicializando o processamento. A inicialização da CPU engloba as seguintes acções:

a)    carregamento do registo I com zeros;

b)    carregamento do registo R com zeros;

c)    proibição das interrupções (disable interrupts) via entrada Nt;

d)    selecção do modo 0 para futuras interrupções (IMO).

Durante a execução do reset os barramentos do endereço e do da­dos encontram-se no estado de alta impedância. Os sinais de controlo encontram-se no estado inactivo.

BUSRQ (bus request, pino 25). sinal de entrada, activo quando BUSRQ=0. Este sinal é utilizado quando se pretende que Os barramen­tos de endereços, de dados e sinais de controlo transitem para o estado de alta impedância. Deste modo outros dispositivos exteriores podem controlar Os referidos barramentos (em DMA, por exemplo). Os estados de alta impedância são atingidos logo que termine o ciclo maquina da instrução em execução.

BUSAK (bus acknowledge, pino 23). sinal de saída, activo quando BUSAK=0. A CPU gera o sinal BUSAK para indicar ao dispositivo que gerou o sinal BUSRQ que o barramento de endereço, barramento de dados os sinais de controlo foram colocados no estado de alta impedân­cia. então, o dispositivo exterior pode controlar estes sinais.

(pino 6) - relógio do CPU

+5 V (pino 11), GND (pino 29) - pinos de alimentação

 

v     EvoIução Temporal dos Sinais do Microprocessador Z80

 

No primeiro capitulo falámos da necessidade da existência de um relógio com o fim de controlar e sincronizar as oporações efectuadas na CPU. Vamos agora ver as formas de onda de alguns sinais em consonância com os impulsos de relógio.

A CPU Z80 executa as instruções através da realização de certas operações básicas elementares. Estas operações são constituídas fundamentalmente por ciclos de busca (fetch) do código de operação, ci­clos de escrita ou Leitura na memória, ciclos de escrita ou leitura nas

 

unidades EIS e ciclos ligados ao reconhecimento de interrupções. To­das as instruções são constituídas, meramente, por uma série destas operações básicas. Cada uma destas operações prolonga-se por três a seis períodos do relógio do sistema, podendo este intervalo de tempo ser aumentado de forma a permitir a comunicação da CPU com dispo­sitivos de velocidade diferente.

Usualmente designa-se por T o numero de ciclos que formam um período do relógio do sistema. As operações básicas são designadas por ciclos máquina (machine cycles), M. Na figura 2 apresenta-se o dia­grama temporal de uma instrução constituída por três ciclos maquina

(M1, M2, M3).

 

Fig.2

 

 

 

O primeiro ciclo maquina de qualquer instrução é um ciclo de busca (fetch) que dura quatro, cinco ou seis períodos de relógio (ou mais, se o sinal WAIT for activado). o ciclo de busca (M1) é utilizado pela CPU para obter o código da próxima instrução que será executada. Os ciclos ma­quina seguintes movimentam dados entre a CPU e a memória ou dispo­sitivos de E/S e têm a duração de três a cinco períodos de relógio (ou mais, se o sinal WAIT for activado).

Antes de se apresentarem alguns diagramas temporais correspon­dentes as operações básicas que constituem Os ciclos maquina, convém apresentar as diferentes notações que serão utilizadas nesses dia­gramas.

A figura 3 ilustra as diferentes situações possíveis para Os sinais da CPU.

 

 

Fig.3

 

 

Em 3a) apresenta-se um sinal simples que toma os valores “0” e “1” Assinalam-se também o flanco ascendente e o flanco descendente do sinal. Uma vez que a transição de estado não é instantânea os flancos apresentam uma certa inclinação.

Há sinais que convém apresentar em grupos e não um por um indivi­dualmente, tal é o caso dos sinais do barramento de endereços e do barramento de dados. Nestes casos a representação será a da figura 3b), em que cada sinal poderá ter o valor “0” ou “1”. Os pontos de cruzamento indicam que um ou mais sinais mudam de nível nesses pontos.

E também possível que um sinal possa estar flutuante, isto é, não se apresente nem no estado “0” nem no estado c(1 (tristate: estado de alta impedância). A representação é a da figura 3c) e d), em que as zonas tracejadas indicam o estado flutuante.

 

 

 

v     Ciclo de Busca (Fetch Cycle)

 

Na figura 4 representa-se o diagrama temporal do primeiro ciclo máquina (fetch cycle). o conteúdo do contador de programa (PC) é colocado no barramento de endereço no principio do ciclo Mi: Passado meio período o sinal MREQ é activado (MREQ=0). O sinal RD é também acti­vado indicando que o conteúdo da céIuIa de memória endereçada pode ser colocado no barramento de dados. Com o flanco ascendente do sinal de relógio correspondente ao período T3 ,a CPU 1ê Os dados colocados no barramento de dados e extingue Os sinais RD e MREQ. Os períodos T3 e T4 do ciclo de fetch são utilizados no refrescamento de memórias dinâmicas e, a nível intemo, na descodificação e execução da instrução a que corresponde este ciclo.

Fig.4

A figura 5 ilustra o caso em que o dispositivo de memória activa o sinal WAIT. Durante T2 e em todos Os períodos seguintes Tw a CPU, no flanco descendente do sinal de relógio, verifica se o sinal WAIT está activado. Se WAIT = 0 então outro período de espera (T~) será introdu­zido pela CPU. Usando esta técnica qualquer dispositivo mais lento pode ser ligado a CPU.

Repare-se que o sinal M1 esta activado durante Os períodos T1 e T2 (e Os períodos T~ seguintes), períodos durante Os quais a instrução e extraída da memória.

 

v     Ciclos de Leitura e Escrita na Memória

 

Na figura é representam-se Os diagramas temporais de leitura e escrita na memória. Estes ciclos duram, em geral, três períodos de relógio a não ser que o sinal WAIT seja activado pelo dispositivo exterior. Os sinais MREQ e WD são utilizados do mesmo modo que no ciclo de busca do código da operação, se se tratar de uma operação de leitura da memória. No caso de a operação ser de escrita são Os sinais MREQ e WR  que serão activados. Note-se que os sinais só evoluirão , conforme mostra a figura, se a linha WAIT estiver desactivada (WAIT = 1) durante Os flancos descendentes do período T2 do ciclo em causa.

 

Fig.6

v     Estados do Espera on, off States)

 

Convém esclarecer um pouco melhor o que se passa quando um dispo­sitivo exterior força com o valor (‘O’ a entrada WAIT da CPU. A CPU reconhece este sinal no flanco descendente do período T2, libertando a lógica exterior, ou Os dispositivos de memória, da velocidade do execução da CPU.

Se a CPU detectar WAIT = o, no flanco descendente de T2 , inserirá períodos de espera no ciclo máquina em execução. Assim que a CPU Z80 detectar WAIT  1, no flanco descendente de ~ (sinal de relógio), será iniciado o período T3 e o processamento do ciclo maquina prosseguirá normalmente.

Resumindo, a CPU inserirá estados de espera nas seguintes condições.

1 -O Z80 só reconhece o sinal WAIT no flannco descendente do ~

em T

2-   Se WAIT = 0, o Z80 continuara a reconhecer este sinal em todos Os períodos de espera inseridos pela CPU.

3-O Z80 não reconhecerá o sinal WAIT fora do período T2 ou de períodos Tw (períodos do espera).

 

v     CicIos do Entrada e Saída do Dados

 

Na figura 7 representam-se Os diagramas temporais dos ciclos de lei­tura o escrita (read e write) a partir de dispositivos de EIS.

Fig.7

Durante as operações de E/S é introduzido, automaticamente, um estado do espera (Tw). Este estado é necessário devido ao curto intervalo do tempo que decorre entre a activação do sinal IRO (IORQ = 0) e o flanco descendente do período T2 do sinal do relógio (flanco em que a CPU verifica a linha WAIT. Do outro modo o posto E/S não teria tempo de descodificar o endereço colocado no barramento do endereços o actuar a linha WAIT se fosse caso disso. Durante este estado de espera (Tw) a linha WAIT é verificada pela CPU podendo o dispositivo exterior forçar a inserção de mais períodos do espera.

Numa operação de leitura de um dispositivo de E/S a linha RD é utilizada para permitir ao porto endereçado a colocação dos dados no barramento do dedos. Representamos os dois diagramas na mesma figura, embora apenas uma das operações soja efectuada do cada vez.

 

v     Ciclo do Interrupção (INT)

 

A figure 8 ilustra as diversas formas do onda associadas a uma opera­ção do interrupção. O sinal do interrupção INT é reconhecido pela CPU no flanco ascendente do ultimo período do relógio no fim do qualquer instrução. O sinal não será reconhecido pela CPU se o flip-flop IFF estiver num estado que não permite interrupções ou se o sinal BUSRQ estiver activo. Se a interrupção for aceite será gerado um ciclo especial M1. Durante este ciclo M1 (especial) o sinal IORQ é activado (em vez do usual MREQ) indicando que o dispositivo gerador da interrupção pode colocar um vector de oito bits no barramento de dados. Os dois perío­dos de espera (Tw) permitem a’ lógica exterior decidir quanto à prioridade das interrupções. Se for necessário a lógica exterior pode forçar mais estados de espera fazendo WAIT = 0.

 

v     Resposta a uma interrupção NMI

 

A figura 9 apresenta o diagrama temporal dos sinais de resposta a uma interrupção NMI (NMI = 0). Este sinal é reconhecido ao mesmo tempo que o sinal INT, mas difere deste porque tem prioridade mais elevada e não pode ser inibido (disable) por programação.

 

Fig.8

 

A resposta da CPU a um interruptor NMI é semelhante a uma operação, normal, de leitura da memória. A Única diferença reside no facto de o conteúdo do barramento de dados ser ignorado, enquanto o PC é auto­maticamente armazenado na pilha e carregado de novo com o conteúdo 0066 H, efectuando-se um salto do processamento para esta posição de memória. Se este interruptor é utilizado então, a rotina de serviço deve sempre principiar na posição de memória 0066 H.

 

v     A Instrução HALT

 

Quando a instrução HALT é executada pelo microprocessador Z80, uma sequência de instruções NOP é executada até ao momento em que a CPU recebe um pedido de interrupção. As duas linhas de interrupção (INT e NMT) são reconhecidas pela CPU, no flanco ascendente de 4), durante cada período T4 correspondente a cada instrução NOP executada.

 

Fig.9

 

Este estado de paragem (HALT) cessara logo que um pedido de interrupção seja detectado, desencadeando-se em seguida as operações ilustradas nas figuras 8 ou 9 consoante a interrupção seja provocada pela linha INT ou pela linha NMI, respectivamente. A figura 10 repre­senta o diagrama temporal da instrução HALT.

 

Fig.10

A instrução HALT é recebida durante este ciclo de memória

<-- Voltar

Hosted by www.Geocities.ws

1