Buscar

Estrutura e Funcao do Processador

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Estrutura e Função do Processador
Grupo: Jeniffer Genoatto Vanzin, Maria Celina Jara, Reinaldo Pereira Dos Santos e Renan Trindade Moresco
Organição do Processador
Part Reinaldo
FUNÇÃO DO PROCESSADOR
Os processadores compreendem um dos hardware mais importantes do computador, Um microprocessador incorpora as funções de uma unidade central de computador (CPU) em um único circuito integrado, ou no máximo alguns circuitos integrados. É um dispositivo multifuncional programável que aceita dados digitais como entrada, processa de acordo com as instruções armazenadas em sua memória, e fornece resultados como saída. 
CICLO DE CLOCK
Os processadores tem o início de cada instrução regulada por ciclo de clock, ou seja, ele sabe exatamente quantos ciclos de clock cada instrução vai demorar, e cada ciclo é medido em uma unidade chamada hertz(HZ), que é o número de ciclos por segundo. Um clock de 100 MHZ significa que em um segundo existem 100 milhões de ciclos de clock.
CLOCK EXTERNO
Atualmente, a maioria dos processadores utilizam o clock externo para aumentar seu desempenho, o processador tem um clock externo, que é usado quando dados são transferidos de e para a memória RAM (usando o chip da ponte norte), e um clock interno mais alto. Diversas técnicas são utilizadas para melhorar o desempenho dos processadores, uma delas é o uso de memória cache dentro do mesmo, e outra é transferir mais de um dado por ciclo de clock, processadores tanto da AMD quanto da Intel utilizam essa técnica, porém os da AMD transferem 2 dados por ciclo, os da Intel transferem 4.
CLOCK EXTERNO E INTERNO EM UM PENTIUM 4 DE 3,4GHZ
DIAGRAMA BÁSICO DE UM PROCESSADOR
ULA
ULA, ou seu significado, (Unidade lógica e aritmética), é onde são processadas e executadas todas as instruções de operações lógicas e aritméticas.
UNIDADE DE CONTROLE
Responsável por gerar todos os sinais que controlam o exterior da CPU, e ainda por dar todas as instruções para o correto funcionamento interno da CPU. São executadas 3 operações básicas: busca, decodificação e execução.
REGISTRADORES
Para cada instrução a ser executada pela ULA, por exemplo, o processador necessita buscar as instruções de onde ela estiver armazenada,(memória cache ou memória principal por exemplo) e armazena-la em seu próprio interior, em um dispositivo denominado registrador de funções.
BARRAMENTO INTERNO E EXTERNO
Os processadores tem evoluído em relação ao comprimento do código que pode ser executado em uma operação, os primeiros trabalhavam com comprimento de 8, 16 bits, depois os de 32, e atualmente trabalham com 64 bits. É possível um processador com barramento de 64 bits, comunicar-se com os de 8,16 e 32 bits.
Organização de Registradores
Part Jeniffer
Registradores da CPU
Registradores visíveis para o usuário: possibilita minimizar referências à memória, pela otimização de uso de registradores.
Registradores de controle de estado: usados pela unidade de controle para controlar as operações da CPU e por programas privilegiados controlando a execução de programas. 
Registradores Visíveis ao Usuário
Aqueles que podem ser referenciados pela linguagem de máquina que a CPU executa.
Registradores de propósito geral
Registradores de dados
Registradores de endereço
Registradores de códigos de condição
Registradores de Endereço
Até certo ponto podem ser usados como registradores de propósito geral ou podem dedicados para um determinado modo de endereçamento:
Registradores de Segmento;
Registradores de índice;
Apontador de topo de pilha;
Projeto do conjunto de Registradores
Tipo do registrador;
Registradores Especializados?
Número de registradores a serem disponibilizados;
Tamanho do Registrador;
Códigos de Condição
Flags;
São bits atualizados pelo hardware da CPU como resultado de operações;
Positivo, negativo ou overflow;
Normalmente fazem parte de um registrador de controle, ou organizados em mais máquinas;
Códigos de Condição
Flags;
São bits atualizados pelo hardware da CPU como resultado de operações;
Positivo, negativo ou overflow;
Normalmente fazem parte de um registrador de controle, ou organizados em mais máquinas;
Registradores de Controle de Estado
São empregados para controlar a operação da CPU;
Não são visiveis ao usuário;
Quatro registradores essencias para a esecução de instruções:
Contador de programa (PC)
Registrador de instrução (IR)
Registrador de endereçamento à memória (MAR)
Registrador de armazenamento temporário de dados (MBR)
Palavra de estado de programa (PSW)
Sinal;
Zero;
‘vai – um’;
Igual;
Overflow;
Habilitar / Desabilitar instrução
Supervisor
Exemplo de organização de registradores de microprocessadores
Exemplo de organização de Microprocessadores
 Motorola MC68000 (Stritter, 1979) 
16 bits;
 8 registradores de dados e 9 de endereço;
 permite operar dados de 8, 16 ou 32 bits ;
 dois desses registradores são também usados como apontadores de pilha
Intel 8086
quatro registradores de dados de 16 bits;
 quatro registradores de 16 bits como apontadores e registradores índice;
quatro registradores de segmento de 16 bits, onde 3 são usados de modo dedicado e implícito, para indicar o segmento da instrução corrente, um segmento de dados e um segmento de pilha;
Ciclo de Instrução
Part Renan
Ciclo de Instruções
Busca: lê a próxima instrução da memória para a Cpu.
Execução: interpreta o código de operação e efetua a operação indicada.
Interrupção: se as interrupções estão habilitadas e ocorreu uma interrupção, salva o estado do processo atual e processa a interrupção.
Ciclo de Instruções
Ciclo de Instruções - Busca
Contador de Programa (PC) é usada para guardar endereço da próxima instrução a buscar.
Processador busca instrução do local de memória apontado pelo PC.
Incrementar PC a cada busca de instruções
A instrução buscada na memória é carregado no registrador de instruções
O processador interpreta as funções e realiza as ações requisitadas
Ciclo de Instruções - Execução
Processador e memória: trata simplesmente da transferência de dados entre CPU e memória principal;
Processador e Entrada e Saída: diz respeito à transferência de dados entre a CPU e um dispositivo de Entrada e Saída.
Processamento de Dados: operação aritmética ou lógica sobre os registradores da CPU;
Controle: são instruções que servem para controlar os dispositivos do computador.
Operações compostas: são operações que combinam uma ou mais instruções das outras em uma mesma operação.
Ciclo de Instruções – Ciclo indireto
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; 
Ciclo de Instruções – Ciclo indireto
Ciclo indireto
Endereçamento indireto: campo de endereço aponta para uma posição de memória que contém o endereço de memória do operando.
 Ciclo indireto
Busca
Execução
Indireto
Interrupção
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; 
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;
Fluxo de Dados- Ciclo de Busca
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.
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. 
Fluxo de dados – Ciclo de interrupção
Pipeline de Instruções
Part Maria
• Pipeline permite a sobreposição temporal de diversas fases de execução de instruções.
• Em outras palavras, o hardware processa mais de uma instrução 
de cada vez, sem esperar que uma instrução termine antes de 
começar a outra.
•Pipeline não melhora a latência de uma única tarefa, mas melhora o taxa de transferência de todo trabalho.
• Tempo de execução de uma tarefa é o mesmo, com ou sem pipelining.
• Ganho começa a existir a partir da segunda tarefa.
• Pipeline explora o paralelismo entre as instruções em um fluxo de instruções seqüenciais.
• BI: busca de instrução (memória de instruções)
• DI: decodificação da instrução e leitura do banco de registradores (banco de registradores sendo lido)
• CO: estágio de execução da instrução (ULA).Calcular operandos ou seja endereço 
• BO: Buscar operandos, acesso à memória (memória de dados)
• EI : Execução da instrução, acesso a um operando na memória
• EO: Escrita de operando, do resultado no banco de registradores (banco de registradores sendo escrito)
Sobrepor estas operações.
Pipeline de instruções de dois estágios
Diagrama de tempo para a operação do pipeline da instrução
Lavanderia sequencial leva 6 horas para terminar
Lavanderia com pipelining leva 3,5 horas 
Efeito de desvio condicional na operação do pipeline na instrução
Pipeline de instrução de seis estágios
Dependências ou Conflitos (Hazards)
 Pipeline, ou alguma parte do pipeline, precisa parar.
Conflitos Estruturais 
 Pode haver acessos simultâneos à memória feitos por 2 ou mais estágios. 
Dependências de Dados 
 As instruções dependem de resultados de instruções anteriores, ainda não completadas. 
Dependências de Controle 
 A próxima instrução não está no endereço subsequente ao da instrução anterior.
Conflitos Estruturais: ocorre quando duas instruções tentam acessar o mesmo dispositivo ao mesmo tempo.
 Soluções: 
 - Duplicar unidades funcionais 
 - Aumentar o número de portas de acesso à memória principal 
 - Separar cache de dados e de instruções 
Conflitos por dados (Dependências verdadeiras ou diretas). RAW (Read After Write).
Possíveis soluções: 
 - Colocação de instruções nop ou escalonamento adequado pelo processador 
 - Adiantamento (técnica forwarding ou bypassing)
Conflitos por dados (Dependências falsas): ocorrem quando é possível iniciar ou terminar a execução das instruções fora de ordem, ou seja, não é possível determinar o valor dos registradores em cada instante com base apenas na sequência de instruções. 
 
 Antidependência: WAR (Write After Read) 
Dependência de saída: WAW (Write After Write) 
Solução usual: 
 - Renomeamento de registradores
Conflitos de Controle (Maneiras de se tratar as consequências de uma parada no pipeline por causa dos desvios): 
Predição Estática de Desvios:
 - O compilador faz uma predição se o desvio vai ser tomado ou não
 - Geração de bolhas quando a predição é errada, baixa taxa de acertos 
 - Não permite adaptações com relação ao comportamento do programa 
Predição Dinâmica de Desvios :
 - Existem mecanismos em hardware que fazem a predição baseada no comportamento daquele desvio no passado
 - Alta taxa de acertos
Pipeline de Intel 80486
•Leitura:
 –Da cache ou da memória externa.
 –Colocadas em um de 2 buffers de busca antecipada de 16 bits.
 –Enche buffer com novos dados quando antigos são consumidos.
 –Em média, 5 instruções lidas por carga.
 –Independente de outros estágios para manter buffers cheios.
•Estágio de decodificação 1:
 –Opcodee informação de modo de endereçamento.
 –No máximo 3 primeiros bytes da instrução.
 –Pode direcionar estágio D2 para obter restante da instrução.
•Estágio de decodificação 2:
 –Expande opcodepara sinais de controle.
 –Cálculo de modos de endereçamento complexos.
•Execução:
 –Operações da ALU, acesso a cache, atualização de registrador.
•Escrita:
 –Atualiza registradores e flags.
 –Resultados enviados à cache e buffers de escrita da interface de barramento.
Exemplos de pipeline da instrução do 80486

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais