690 likes | 989 Views
Arquitetura de computadores. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Estrutura e Funcionamento da CPU. 22/05/2013. Tópicos abordados. Organização do processador; Organização de registradores; Ciclo de instrução;
E N D
Arquitetura de computadores Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Estrutura e Funcionamento da CPU 22/05/2013
Tópicos abordados • Organização do processador; • Organização de registradores; • Ciclo de instrução; • Pipeline de instruções; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estrutura e Funcionamento da CPU Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Organização do processador
ORGANIZAÇÃO DO PROCESSADOR • Para compreender o funcionamento da CPU vamos relembrar algumas de suas funções: • Busca de instrução: a CPU lê uma instrução da memória. • Interpretação de instrução: a instrução é decodificada para determinar a ação requerida. • Busca de dados: a execução de uma instrução pode requerer leitura de dados da memória ou de um módulo de E/S. • Processamento de dados: a execução de uma instrução pode requerer efetuar uma operação aritmética ou lógica sobre os dados. • Escrita de dados: os resultados da execução podem requerer escrever dados na memória ou em um módulo de E/S. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
ORGANIZAÇÃO DO PROCESSADOR • Em cada um desses passos necessita armazenar informações, podendo ser: • Manter a posição de memória da última instrução, para saber onde obter a próxima instrução; • Precisa também armazenar instruções e dados temporariamente, enquanto uma instrução está sendo executada. • Portanto a CPU necessita de uma memória interna. • Essa memória compreende os registradores, que podemos ver em uma visão simplificada da CPU: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
ORGANIZAÇÃO DO PROCESSADOR • Visão simplificada da CPU: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
ORGANIZAÇÃO DO PROCESSADOR • Em uma visão mais detalhada da CPU, podemos ver: • Caminhos internos da CPU (barramento interno); • Detalhamento da ULA; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
ORGANIZAÇÃO DO PROCESSADOR Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
ORGANIZAÇÃO DO PROCESSADOR • Exemplo de diagrama de estados do processador MIPS Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estrutura e Funcionamento da CPU Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Organização de registradores
ORGANIZAÇÃO DOS REGISTRADORES • CPU precisa ter algum espaço de trabalho (armazenamento temporário); • Registradores são de alto nível na hierarquia de memoria: • Mais caros e mais rápidos. • Numero e função variam entre os projetos de processador; • Os registradores têm duas funções: • Registradores visíveis ao usuário: • Visíveis ao programador Assembly; • Minimizam acesso a memoria; • Registradores de controle de estado: • Visíveis ao SO e unidade de controle para controle do processador; • Unidade de controle utiliza para controlar a CPU. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores visíveis ao usuário • Registradores visíveis ao usuário podem ser referenciados pela linguagem de máquina e podem ser: • De propósito geral; • De dados; • De endereços; • De códigos de condições. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de propósito geral • Registradores de propósito geral podem conter operandos para quaisquer códigos de operação; • Mas, em alguns casos podem haver restrições como: • Registradores de números inteiros e de ponto flutuante; • Algumas vezes podem ser utilizados para endereçamento e dados. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de endereços e dados • Muitas vezes registradores de propósito geral podem ser utilizados para armazenar dados e endereços; • Porém, geralmente existe separação entre: • Registradores para dados; • Exemplo: Acumulador; • Registradores para endereços. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de códigos de condição • São visíveis ao usuário apenas para leitura, ao contrário dos anteriores; • Indicam alguma condição da CPU ou da ULA: • Se uma conta produziu um resultado negativo, positivo, overflow ou zero. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de controle de estado • São usados para controlar a CPU; • Geralmente não são visíveis ao usuário; • Podem existir muitos tipos diferentes, mas geralmente possuem quatro tipos comuns: • PC; • IR; • MAR; • MBR; • PSW (processor status word). • São utilizados para transferência de dados entre CPU e memória. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de controle de estado • PC: • Utilizado para armazenar o endereço da próxima instrução; • Incrementado automaticamente pela CPU após cada busca de instrução; • Podem ser alterados por instruções de salto ou de desvio; • A instrução após ser buscada é armazenada no IR: • Aqui, código de operação e referências a operandos são analisados; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Registradores de controle de estado • MAR: • Possuem os endereços de uma posição de memória; • MBR. • Possuem dados para serem utilizados pela ULA; • PSW – palavra de estado de programa: • É um banco de registradores que contém informações de estado como: • Sinal, “vai um”, overflow, habilitar/desabilitar IRQ, etc... Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estrutura e Funcionamento da CPU Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Ciclo de instruções
Ciclo de instruções • Relembrando: • O ciclo de instruções possui os seguintes subciclos: • Busca; • Execução; • Interrupção Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Ciclo de instruções • Relembrando: • O ciclo de instruções possui os seguintes subciclos: • Busca; • Execução; • Interrupção Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Ciclo indireto • Com mais detalhes, podemos acrescentar outros subciclos no ciclo de instrução; • Um deles é o ciclo indireto; • Depende de cálculo para determinar o endereço do operando; • Endereçamento indireto requer mais acessos à memória; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados • O fluxo de dados de uma CPU depende muito de sua arquitetura; • Em termos gerais podemos ter: • Fluxo de dados no ciclo de busca de instruções; • Fluxo de dados no ciclo indireto; • Fluxo de dados no ciclo de interrupções; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados – Ciclo de busca • O ciclo de busca de instruções compreende: • O PC contém o valor da próxima instrução a ser buscada; • Esse endereço é movido para o MAR e colocado no barramento de endereços; • A unidade de controle requisita uma leitura na memória; • O resultado é colocado no barramento de dados e gravado no MBR, e então movido para IR; • O contador de programa é incrementado; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados – Ciclo de busca • O ciclo de busca de instruções: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados – Ciclo de execução • Este ciclo pode ter várias formas de trabalhar, dependendo da instrução; • Pode envolver: • Transferência de dados entre registradores; • Transferência de dados entre a memória e a CPU; • Transferência de dados entre CPU e I/O; • Invocação da ULA. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados – Ciclo de interrupção • Este ciclo é simples e previsível; • O conteúdo de PC deve ser salvo para que possa ser tratada a interrupção; • O conteúdo de PC deve ir para o MBR e depois escrito na memória; • A unidade de controle aponta um endereço para gravar o valor de PC atual, colocando-o no MAR; • O PC é carregado com o endereço da rotina de interrupção; • Começa um novo ciclo de Busca. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fluxo de dados – Ciclo de interrupção Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estrutura e Funcionamento da CPU Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Pipeline de instruções
Técnicas para melhoramento da CPU • Conforme a tecnologia vai evoluindo, várias técnicas vão surgindo para melhorar o desempenho; • Exemplos disso: • Melhoramento interno da CPU tornando-a mais rápida; • Melhoramento da arquitetura interna da CPU, como: • Acréscimo de registradores; • Memória cache; • O uso de Pipeline. • Outras técnicas como uso de dois núcleos. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estratégia de Pipeline • Pipeline (canalizar) é semelhante a uma linha de produção fabril; • O produto passa por vários estágios para concluir o processo; • Os vários estágios de produção são realizados simultaneamente; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Linha de produção fabril Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estratégia de Pipeline • Pipeline de instruções funciona de forma análoga a linha de produção; • As entradas que que são aceitas ocorrem antes que entradas anteriores sejam completamente finalizadas; • Isso ocorre já que uma instrução passa por vários estágios dentro da CPU; • Quando um dado sai de determinado elemento da CPU, outro pode assumir seu lugar; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estratégia de Pipeline I1 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estratégia de Pipeline I2 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 I1
Estratégia de Pipeline I3 I1 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 I2
Estratégia de Pipeline I2 I4 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 I3 I1
Busca antecipada (prefetch) • Existem alguns ciclos do processador que a memória não está sendo acessada; • A informação dentro da ULA é um exemplo, já que a ULA normalmente não acessa memória principal; • A CPU pode então buscar a próxima instrução durante execução da instrução atual; • Isso Chama-se busca antecipada da instrução, ou prefetch; • Isso a acelera o processamento, mas normalmente não dobra o processamento; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining • Vamos considerar a seguinte decomposição do processamento de uma instrução: • Busca de instrução (BI); • Decodificação da instrução (DI); • Cálculo de operandos (CO); • Busca de operandos (BO); • Execução da instrução (EI); • Escrita de operando (EO). Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Pipelining Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Problemas com o Pipelining • O uso de Pipeline introduz o conceito de paralelismo de instruções; • Esse paralelismo nem sempre é alcançado e a sequência do fluxo da Pipeline pode ser quebrado por vários motivos; • Quando o fluxo do Pipeline é quebrado, ocorrem bolhas de Pipeline, também chamadas de Hazards e podem ser: • Hazards de dados; • Hazards de recursos; • Hazards de controle. • Hazards proporcionam desperdício de ciclos e as vezes com instruções que serão descartadas. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Hazards de recursos • Ocorre quando a CPU necessita acessar algum recurso em dois estágios do Pipeline: • Por exemplo um registrador ou a memória. Leitura da memória Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Hazards de recursos Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Bolha de Pipeline
Hazards de dados • Ocorre quando a CPU necessita de um dado ainda em execução não completa : • Por exemplo dado na entrada depende do dado da saída. Irá fornecer operando paraa instrução 2 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Esta busca depende dooperando que será escrito no tempo 6