Processadores – Aula 3 Professor: André Luis Meneses Silva

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Organização e Arquitetura de Computadores I Introdução
Capitulo 6: Entrada e Saída
CPU: Controle e processamento
Sistemas Digitais Projeto RTL – Unidade de Controle
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 07
A Interface entre Processadores e Periféricos
Arquitetura e organização de computadores.
Entrada e Saída Introdução.
Técnicas para operações E/S
Sistemas Digitais Projeto RTL – Unidade de Execução
Unidades de Execução e de Controle Sistemas Digitais.
Arquitetura dos Microprocessadores 8086 e 8088
Exemplo de arquitetura registrador-registrador- MIPS
MIPS MULTICICLO Fluxo de Dados e Controle
Processador Fluxo de Dados e Controle
Arquitetura de Sistemas Operacionais
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Sistemas Operacionais
Organização de Computadores Inserindo o Controle Identifica pontos de controle no caminho de dados – Busca da instrução – Operações lógicas e aritméticas.
Problemas com Entrada e Saída
Organização e Arquitetura de Computadores I Parte de Controle
Maria Aparecida Castro Livi
Rganização de Computadores A Interface entre o Processador e os Periféricos Capítulo 8 – Patterson & Hennessy (seções 8.4 e 8.5) Organização de Computadores.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador Parte B Capítulo 5 –
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Digitais Microprocessados
Melhorando o desempenho com pipeline
Instruções: A Linguagem de Máquina – Aula 01
Avaliando e Compreendendo o Desempenho - Respostas
Processadores – Aula 3 Professor: André Luis Meneses Silva
Fundamentos do Projeto Lógico
Sistemas Operacionais I
Introdução à Programação
Prof. Felipe Ferreira de Oliveira
Representação de Instruções
Pipeline O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo.
Sistemas Operacionais
Organização e Arquitetura de Computadores
Conteúdo Processos e threads Partes do processo
Suporte de hardware à multiprogramação
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
Contextualização de Paralelismo em nível de instrução
Sistemas Operacionais
Aritmética Computacional Operações Complexas
Arquitetura de Computadores
SISTEMAS OPERACIONAIS I
Unidade Central De Processamento: Processador
ARQUITETURA DE COMPUTADORES II
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Sistemas Operacionais
Unidade Central De Processamento: Processador
Arquitetura de Sistemas Operacionais
DCC 001 Programação de Computadores 2o Semestre de 2011
A Linguagem de Máquina – Desvios e Laços
Tudo sobre o Processador
Parte 3 Seção de Dados e Unidade de Controle
SISTEMAS OPERACIONAIS
Arquitetura de Microcomputadores
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
TRABALHO AVALIATIVO ALUNO: FRANCISCO HELIÉSUS DE MEDEIROS MATÉRIA: ORGANIZAÇÃO DE COMPUTADORES.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Processadores – Aula 3 Professor: André Luis Meneses Silva E-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

Introdução Nas últimas aulas vimos a implementação simples de um processador. Toda instrução é executada em um ciclo de clock O tempo de execução de cada instrução é o tempo da instrução mais lenta. A abordagem anterior faz pouco reuso de hardware

Implementação Multiciclo Hoje veremos a 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.

Implementação anterior

Implementação Multiciclo

O que mudou? Memória de dados e instruções compartilhada. Somadores foram eliminados Registradores são adicionados após cada unidade funcional. Este valor é armazenado até o seu uso em um ciclo de clock subseqüente.

Implementação Multiciclo NOVOS REGISTRADORES

O que mudou? Novos multiplexadores também precisam ser adicionados. Decide entre PC+4 e a saída da ALU Decide entre PC+4 e o Reg A. Decide entre: Reg. B O valor 4 Instrução Instrução deslocada de 2

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. O tempo do ciclo de clock é calculado usando a etapa de maior duraçã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.

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

Etapas de uma Instrução Mips Etapa de decodificação da instrução e busca dos registradores. Nesta etapa ainda não sabemos qual instrução será executada, mas podemos: Ler os dois registradores indicados pelo campo rs e rt e armazená-los nos regs. A e B. Calcular o endereço de desvio com a ALU e salvá-lo em ALUOut. Antecipar estas operações, 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 Desvio incondicional: o valor de PC é substituído pelo valor do desvio. Desvio condicional: utilizamos ALU para verificar a igualdade dos dois operandos (Regs A e B). 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 definir o controle, usamos uma máquina de estados finitos. Máquina de estados finitos 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. 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 Máquinas de estados finitos podem ser codificadas através de máquinas 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 Interrupçã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, 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 instrução, podem ser utilizado 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