Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com...

Preview:

Citation preview

Processadores – Aula 3

Professor: André Luis Meneses SilvaE-mail/msn: andreLuis.ms@gmail.com

Página: www.dcomp.ufs.br/index.php/docentes:Andre

Agenda

Introdução Implementação Multiciclo Etapas de uma instrução MIPS Definindo o Controle Implementação de uma máquina de estados

finitos. Máquina de Moore Exceções Como as Exceções são Tratadas

Implementação Multiciclo

Podemos elaborar uma implementação cujo tempo de execução das instruções apresente variações a depender do tipo de instrução a ser executado.

Este tipo de implementação é denominado de Implementação Multiciclo.

Implementação Multiciclo

Algumas características: Cada etapa (passo) na execução de uma instrução

levará 1 ciclo de clock. Uma unidade funcional pode ser compartilhada, ou

seja, uma instrução pode utilizá-la mais de uma vez. Devido a isso, alguns elementos de hardware

podem ser eliminados.

Implementação anterior

Implementação Multiciclo

O que mudou?

Existe uma única unidade de memória que é usada para instruções e para dados.

Existe uma única ALU, em vez de uma ALU e dois somadores.

Um ou mais registradores são adicionados após cada unidade funcional para conter a saída dessa unidade. Este valor é armazenado até o seu uso em um ciclo de clock subseqüente.

O que mudou?

Lógica para inserção dos registradores Dados usados pelas instruções subseqüentes, em

um ciclo de clock posterior, são armazenados em elementos de estado visíveis ao programador.

Dados utilizados pela mesma instrução em um ciclo posterior, são armazenados nos registradores adicionais (não visíveis ao programador).

O que mudou?

Logo, são introduzidos os seguintes registradores temporários: O registrador de instrução IR e o registrador de

memória MDR. Os registradores A e B O registrador ALUOut

Todos os registradores citados, com exceção do IR, contém dados apenas entre um par de ciclos de clock adjacentes. IR precisa conter a instrução até o fim da execução

dessa instrução, logo, ele precisa ter um sinal de controle de escrita.

O que mudou?

Novos multiplexadores também precisam ser adicionados.

O que mudou? Decide entre deslocamento e acesso a memória

Decide entre:Reg. BO valor 4InstruçãoInstrução deslocada de 2

Decide entre PC+4 e o Reg A.

O que mudou?

Unidade de Controle Novos sinais de controle para:

PC, memória, registradores e IR precisarão de sinais de controle de escrita.

Memória precisará de um sinal de leitura. Controle da ALU sofre mudanças pois ALU atual,

também desempenha a função dos outros dois somadores.

Etapas de uma Instrução Mips

Cada etapa leva 1 ciclo de clock para ser realizada.

O tempo deste ciclo de clock é calculado a partir da etapa que possui maior tempo para execução.

Com relação a leitura/escrita em registradores, observar: Se registrador simples (PC, IR, MDR, etc) a

leitura/escrita é parte de um ciclo de clock. Se registrador pertencer ao banco de registradores,

é necessário um ciclo de clock adicional para efetuar a transação.

Etapas de uma Instrução Mips

Etapa de busca da instrução Etapa de decodificação da instrução e busca

dos registradores. Execução, cálculo do endereço de memória

ou conclusão do desvio. Etapa de acesso a memória ou conclusão de

instrução tipo R. Etapa de conclusão da Leitura da Memória

Etapas de uma Instrução Mips

Etapa de busca da instrução Busca a instrução da memória e calcula o endereço

da próxima instrução seqüencial.

Etapas de uma Instrução Mips

Etapa de decodificação da instrução e busca dos registradores. Nesta etapa, ainda não sabemos qual a instrução a

ser executada, mas enquanto a instrução é decodificada, podemos fazer algumas funções em paralelo: Já podemos ler os dois registradores indicados pelo

campo rs e rt e armazená-los nos regs. A e B. Podemos calcular o endereço de desvio com a ALU

e salvá-lo em ALUOut. Realizar estas operações antecipadamente,

diminuem o número de ciclos de clock necessário para execução da instrução.

Etapas de uma Instrução Mips

Execução, cálculo de endereço de memória ou conclusão de desvio. Se operação de desvio

Se a operação for de desvio incondicional o valor de PC é substituído pelo valor do desvio.

Se a operação for de desvio condicional, utilizamos a ALU para verificar a igualdade dos dois operandos (Regs A e B) em seguida, a depender da igualdade passamos o valor do desvio ao PC.

Fim da execução da instrução de desvio

Etapas de uma Instrução Mips

Execução, cálculo de endereço de memória ou conclusão de desvio. Se operação de referência a memória

Utilizamos a ALU para calcular o endereço de memória e o salvamos em ALUout.

Se operação de instrução lógica ou aritmética Utilizamos a ALU para efetuar a operação

aritmética. Salvamos o resultado em ALUout.

Etapas de uma Instrução Mips

Etapa de acesso à memória ou conclusão de instrução R. Se a instrução é do tipo R.

O valor de AluOut será colocado no banco de registradores.

Fim da execução da instrução do tipo R. Se instrução de referência à memória.

Fazemos acesso à memória com o valor presente em AluOut.

Se leitura, o endereço acessado é escrito no registrador de dados da memória (MDR).

Se escrita, o valor é escrito na memória e fim da execução.

Etapas de uma Instrução Mips

Etapa de conclusão de leitura da memória Os loads são completados, escrevendo novamente

o valor da memória para o banco de registradores.

Definindo o Controle

Para definirmos o controle, utilizaremos uma máquina de estados finitos.

Uma máquina de estados finito consiste em um conjunto de estados e diretrizes sobre como mudar o estado.

As diretrizes são definidas por uma função de próximo estado, que mapeia o estado atual e as entradas para um novo estado.

Cada estado também especifica um conjunto de saídas ativadas quando a máquina está neste estado. Quando a saída não está explicitamente ativada, dizemos

que a mesma está inativa (0). Não confundir com don’t care

O controle dos estados finitos corresponde às cinco etapas de execução mostradas anteriormente.

Visão de Alto Nível da máquina de estados finitos.

Máquina de estados finitos para Busca e decodificação de instrução

Máquina de estados finitos para controlar as instruções de referência à memória.

Máquina de estados finitos para as instruções tipo R.

Máquina de estados finitos para desvios condicionais

Máquina de estados finitos para desvios incondicionais

Máquina de estados finitos da unidade de controle: versão completa

Implementação de uma máquina de estados finitos

Para implementar a unidade controladora baseada em uma máquina de estados finitos, podemos utilizar uma máquina de Moore.

Sua característica fundamental é que a saída depende apenas do estado atual.

Em uma máquina de Moore a lógica de controle é dividida em duas partes: Uma parte possui a saída do controle e saída para o

próximo estado Uma parte possui a entrada do opcode e a entrada

para o próximo estado (que agora, representa o estado atual).

Máquina de Moore

Exceções

Exceções x Interrupções Exceção

Um evento inesperado de dentro do processador Exemplo: Overflow aritmético

Interrupção Um evento inesperado cuja origem é externa.

Ex: Interrupção gerada pelos dispositivos de E/S

Exceções X Interrupções

Exceções X Interrupções

Como as Exceções são Tratadas

Etapas: Salvar o endereço da instrução no registrador (EPC) Transferir o controle para o sistema operacional em

algum endereço especificado. O sistema operacional então, a depender da exceção,

toma a ação apropriada, que pode ser: Fornecer algum serviço ao programa usuário. Tomar alguma ação predefinida em resposta a um

overflow. Interromper a execução do programa e retornar um erro.

Após executar qualquer ação necessária devido à exceção, o sistema operacional pode terminar o programa ou continuar sua execução usando o EPC.

Como as Exceções são Tratadas

Para comunicar o motivo da interrupção, podem ser utilizados dois métodos: Utilizar um esquema de interrupções vetorizadas.

O endereço para qual o controle é desviado sinaliza a causa da interrupção.

Os endereços que indicam os tipos de interrupção são separados por um espaço constante, por exemplo, 32 bytes. Este espaço é preenchido pelo S.O com as

instruções necessárias para o tratamento da interrupção.

Como as Exceções são Tratadas

Incluir um registrador de status Só possui um único ponto de entrada para todas as

exceções, logo o processador necessita de uma estrutura auxiliar para descobrir o tipo da exceção Em geral, emprega-se um registrador auxiliar.

Método utilizado no MIPS. (Registrador Cause) Rotina de tratamento pode possuir um maior

tamanho. No nosso exemplo/implementação

ilustraremos apenas duas exceções: Instrução indefinida. Overflow Aritmético.

Processador com EPC e Cause

O que muda no controle?

Introduz mais dois estados na máquina de estados finitos: O estado 10, cuja origem é o estado 1 que é o

estado onde é realizado a avaliação do opcode. O estado 11, cuja origem é o estado 7 que é o

estado onde avaliamos o resultado da operação aritmética.

Unidade de Controle com os novos estados

Referências

Hennessy & Patterson Seções 5.5 e 5.6

Recommended