Baixe o app para aproveitar ainda mais
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
Compartilhar