27 de set. de 2010

Ciclos de Máquina e Temporização de Barramento

          Todas as instruções são uma série de operações básicas. Cada uma destas operações tomam de 3 a 6 períodos de clock para serem realizadas. Os períodos de clock são chamados de ciclos T (tempo) e as operações são chamadas ciclos M (máquina).

  

Neste exemplo, notamos que a instrução é constituída de 3 ciclos de máquina (M1, M2, e M3). O primeiro ciclo de toda instrução é um ciclo de BUSCA (FETCH) e pode ter um comprimento de 4, 5 ou 6 ciclos T. Como o nome diz, este ciclo lê o OPCODE da próxima instrução a ser executada.
          A seguir, temos a descrição detalhada da temporização de cada ciclo de máquina:
         

- Ciclo de BUSCA da instrução:
Como vemos na figura, durante o ciclo M1 (BUSCA), o PC (Contador de Programa) é colocado no bus de endereços. Meio clock depois, o sinal  é ativado. O sinal de  também é ativado para indicar à memória que os dados devem ser colocado no bus de dados. O Z80 então recebe os dados na borda de subida do estado T3. Neste momento, o sinal de  e  são desativados. Os ciclos T restantes (T3 e T4) são utilizados para REFRESH das memórias dinâmicas.

Modelo de Software do Z80

          Vamos descrever agora o modelo do Z80, conforme mostrado na Figura 2. Este modelo inclui o Acumulador, o Flag, registradores de uso geral, o apontador de memória e os registradores de uso especial.

Figura 2

          Registradores de Uso Geral
          O Z80 possui 6 registradores de uso geral, chamados B, C, D, E, H e L. Todos são de 8 bits e são utilizados para armazenamento de dados durante a execução do programa. Eles podem ser combinados aos pares (BC, DE, HL) para constituirem registradores de 16 bits. O programador tem acesso a estes registradores para escrita e leitura.
          Acumulador
          O Acumulador, identificado com registrador “A”, faz parte da ULA. É utilizado para armazenar dados de 8 bits e para fazer operações lógicas e aritméticas. O resultado das operações feitas pela ULA sempre é armazenado no Acumulador.
          Registrador de Flags
          A ULA possui 6 flip-flops que são setados e resetados de acordo com as condições após uma operação da ULA, e o estados destes flip-flops, também conhecidos como FLAGS (bandeiras), são armazenados no registrador de 8 bits chamado “regostrador de Flags”. Por exemplo: após uma soma em que o resultado gera um “carry”, o flip-flop de carry será setado e o bit D0 do registrador de flags mostrará nível lógico ‘1’. A figura 3 mostra a posição de cada bit dentro do registrador de flags.

Figura 3

          Registradores de 16 bits
          O Z80 possui 4 registradores de 16 bits, que são classificados como “apontadores de memória”.
           Index Registers (IX and IY) – Registradores de Índice: são registradores de 16 bits utilizados para endereçamento indireto de memória.
          Stack Pointer (SP) – Apontador de pilha: utilizado para guardar endereços de memópria durante a execução de uma instrução de “salto”.
          Program Counter (PC) – Contador de Programa: Sua função é apontar o endereço de memória em que a próxima instrução a ser executada está armazenada.

Arquitetura do Microprocessador Z80 - II

4.     Sinais de Requisições Externas
Este conjunto de linhas de controle é utilizado para requisições ao microprocessador dos dispositivos externos.
-    Reset: Sinal utilizado para “zerar” o processador. Basicamente, a principal função é zerar o registrador “contador de programa” (PC). O reset é ativado através de uma chave externa. Durante o reset, todas as linhas de dados e endereços são colocadas em tri-state.
-    Requisição de Interrupção: Requisita que o processador execute uma determinada função, através de um sinal externo.
-    Interrupção “Não-Mascarável”: um tipo especial de interrupção.
-     Requisição de Barramento (Bus Request): O microprocessador coloca todos o seus barramentos em tri-state, e entrega o controle a um dispositivo externo – por exemplo, o HD acessando diretamente às memórias. Este dispositivos são conhecidos como DMA – Direct Access Memory.
-     Espera: É requisitado por um dispositivo externo (memória, por exemplo). O processsador não executa nenhuma função durante este estado. Era muito utilizado quando as memórias tinham uma velocidade de acesso menor que a velocidade de trabalho do Z80. Hoje em dia, as memórias não necessitam mais deste recurso.

5.     Sinais Especiais
-     Bus Acknowledge (Reconhecimento do pedido de barramento): Com este sinal, o Z80 indica que recebeu e aceitou o pedido de controle do barramento.
-     Parada: Sinal emitido pelo Z80 para indicar que uma instrução HALT foi executada.
-    Atualização: Sinal urilizado para indicar que o Z80 está atualizando (REFRESH) as memórias dinâmicas.

6.     Alimentação e Sinal de Clock
Este grupo de sinais inclui:
-   CLK: Pino usado para conectar-se o gerador de pulsos externo.
-   +5V e GND: Pinos utilizados para a alimentação do Z80.

Arquitetura do Microprocessador Z80 - I

O Z80 é um dos mais famosos microprocessadores devido sua larga utilização em diversos sistemas computadorizados. Até hoje, o Z80 ainda é utilizado, por exemplo nos “Game Boy” da Nintendo.

I. Modelo de Hardware do Z80
          O Z80 é um microprocessador de uso geral, com 16 linhas de endereço e 8 linhas de dados, encapsulado em um chip de 40 pinos. A frequência de trabalho varia de 2,5 a 8 MHz.
          A figura abaixo mostra a configuração da pinagem do Z80:

          Todos os sinais podem ser divididos em 6 grupos:
1.     Barramento de endereços
2.     Barramento de dados
3.     Sinias de controle
4.     Sinais de requisições externas
5.     Sinais especiais
6.     Alimentação e sinal de clock

1.     Barramento de Endereços
O Z80 possui 16 linhas tri-state (A15-A0), conhecidas como “barramento de endereços”. São linhas unidirecionais capazes de endereçar até 64K (216) registradores de memória. O barramento de endereços é utilizado para enviar os endereços de memória e dos dispositivos de I/O.

2.     Barramento de Dados
Consiste de 8 linhas tri-state bi-direcionais (D7-D0), e é usado para transferência de dados entre o Z80 e memórias e dispositivos de I/O.

3.     Sinais de Controle e Status
Este grupo é consistido de 5 linhas individuais:
-  - Ciclo de Máquina 1: Indica que o o microprocessador está executando um ciclo de BUSCA de instrução.
- - Requisição de Memória: Indica que o barramento de endereços possui um endereço válido para operações de escrita/leitura de memória.
-  - Requisição de I/O: Indica que os bits A7-A0 (“low order addres bus”) possui um endereço válido para uma operação de escrita/leitura em dispositivos de I/O.
-  - Read (Leitura): Indica que o microprocessador está pronto para ler dados da memória ou de um dispositivo de I/O.
 - Write (Escrita): Indica que o microprocessador colocou um byte de dados no barramento de dados e está pronto para escrever na memória ou num dispositivo de I/O.
    
Os sinais de  e de  devem ser utilizados em conjunto com os sinais  e . Por exemplo:


Figura2: Arranjo dos sinais de controle para acesso à memória e dispositivos de I/O

Primeiro!

Neste Blog vou postar material complementar às aulas do curso de Microprocessadores I e II da Escola POLITEC de Americana.
Aproveitem!