processadores – aula 3 professor: andré luis meneses silva e-mail/msn: [email protected]...

41
Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: www.dcomp.ufs.br/index.php/docentes:Andre

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Processadores – Aula 3

Professor: André Luis Meneses SilvaE-mail/msn: [email protected]

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

Page 2: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: 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

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

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.

Page 4: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 5: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Implementação anterior

Page 6: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Implementação Multiciclo

Page 7: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 8: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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).

Page 9: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 10: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

O que mudou?

Novos multiplexadores também precisam ser adicionados.

Page 11: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 12: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 13: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre
Page 14: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 15: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 16: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 17: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 18: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 19: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 20: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 21: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 22: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 23: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 24: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 25: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 26: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 27: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Máquina de estados finitos para desvios condicionais

Page 28: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Máquina de estados finitos para desvios incondicionais

Page 29: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 30: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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).

Page 31: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Máquina de Moore

Page 32: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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

Page 33: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Exceções X Interrupções

Page 34: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Exceções X Interrupções

Page 35: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 36: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 37: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 38: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Processador com EPC e Cause

Page 39: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

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.

Page 40: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Unidade de Controle com os novos estados

Page 41: Processadores – Aula 3 Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Referências

Hennessy & Patterson Seções 5.5 e 5.6