830 likes | 990 Views
Revisão. Unidade de Controle. Unidade lógica e Aritmética. Registradores. Barramento interno. Conceitos Fundamentais. Arquitetura da CPU. Registradores. Conjunto de unidades de armazenamento; Funcionam num nível de hierarquia acima da memória principal e da memória cache;
E N D
Unidade de Controle Unidade lógica e Aritmética Registradores Barramento interno Conceitos Fundamentais • Arquitetura da CPU
Registradores • Conjunto de unidades de armazenamento; • Funcionam num nível de hierarquia acima da memória principal e da memória cache; • Também conhecida como memória de rascunho; • Divide-se em dois tipos: • Visíveis ao usuário; • Controle e estado;
Registradores visíveis ao usuário • Podem ser acessados pelo usuário através das linguagens de maquina ou de montagem; • Minimizam as referencias a memória principal; • São classificados em: • Registrador de Propósito geral • Registrador de dados; • Registrador de endereço; • Registrador de código de condição;
Registradores de código de condição (flags) • Armazenam bits que definem o resultado de uma operação; • Esses bits podem indicar se o resultado produzido é positivo, negativo, zero ou overflow; • Em algumas arquiteturas é representado por um único registrador (de controle); • As linguagens de máquina permitem ler esses bits mas não alterar seu valor;
Registradores de controle e estado • São usados para controlar as ações da CPU; • É comum que eles não sejam visíveis ao usuário; • Contudo alguns podem ser visíveis no nível de linguagem de maquina e nível de SO • Existem várias classificações para esse tipo de registrador, variando de máquina para máquina
Registradores de controle e estado • Contador de Programas (PC) • Contem o endereço da instrução a ser buscada; • É atualizado pela CPU depois de cada busca; • Um salto ou desvio também alteram seu valor; • Registrador de instrução (IR); • Contem a ultima instrução buscada;
Registradores de controle e estado • Registrador de endereçamento (MAR); • Contém o endereço de uma posição de memória; • Registrador de armazenamento Temporário de dados (MBR); • Contém uma palavra de dados a ser escrita na memória ou a palavra lida recentemente; • Usado para trocar dados com os registradores visíveis ao usuário; • Pode ser acessado diretamente pela ULA;
Registradores de controle e estado • Registradores de Armazenamento temporários
Projeto de Registradores Visíveis ao usuário • Decidir entre propósito geral ou uso especifico; • A especialização economiza bits, porem limita a flexibilidade da programação • A tendência atual é especializar • Decidir o número de registradores • Um numero elevado requer mais bits para especificar um operando • Um numero reduzido implica em mais acessos a memória
Projeto de Registradores Visíveis ao usuário • Decidir o tamanho dos registradores • Devem ter tamanho suficiente para conter o maior endereço de memória; • Devem ser capazes de conter os dados da maioria dos tipos disponíveis
Projeto de Registradores de Controle e Estado • Decidir sobre o suporte ao SO • Certos tipos de informações de controle são úteis ao SO • O projeto pode ser feito de acordo com as necessidades do SO • Decidir sobre a alocação de dados de controle entre os registradores e a memória • Levando em conta custo e taxa de acesso o que deve ficar na em cada um?
Respostas • Trabalho 01 • Descreva a arquitetura básica da CPU, mostrando seus componentes e a função de cada um deles.
Tarefas da CPU • Buscar instruções • Interpretar Instruções • Buscar dados • Processar dados • Escrever Dados
Inicio Fim Busca da próxima instrução Execução da instrução O Ciclo de instruções • Ciclo simples Ciclo de busca Ciclo de execução
O Ciclo de instruções • Ciclo de busca • Lê a próxima instrução da memória • Essa instrução esta armazenada no Contador de Programas (PC) • O processador incrementa o valor de PC • A instrução buscada é armazenada no registrador de instruções (IR)
O Ciclo de instruções • Ciclo de Execução • Interpreta o código da operação e efetua a mesma; • As ações efetuadas podem ser: • Processador-memória • Processador-E/S • Processamento de dados • Controle
O Ciclo de instruções • Exemplo: • Formato da instrução • Formato dos números • Lista de operações • 0001 (1) – Carregar o valor em AC • 0010 (2) – Armazenar o valor de AC na memória • 0101 (5) – Somar o valor de AC com o valor de um endereço 0 3 4 15 0 1 15
O Ciclo de instruções • Exemplo: • Ciclo de instruções para o código A = A + B; • São necessárias 3 instruções: • Carregar o valor de A • Somar o valor de B com valor de A • Guardar o resultado em A e armazenar na memória • Será realizado é 3 ciclos de busca e execução totalizando 6 passos;
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU Passo 1
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU Passo 2
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU Passo 3
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU 3 + 2 = 5 Passo 4
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU Passo 5
300 940 PC 301 941 AC 302 942 IR O Ciclo de instruções • Exemplo: Memória Registradores da CPU Passo 6
Busca da instrução Execução da instrução Interpretação da instrução Busca de operando Armazenamento do operando Cálculo do endereço da instrução Calculo de endereço do operando Calculo de endereço do operando O Ciclo de instruções • Ciclo ampliado
Interrupções • Mecanismo pelo qual um componente de arquitetural pode interromper a seqüência normal de execução • Visa a melhoria no desempenho do processador • São agrupadas em: • Interrupção de Software • Interrupção de relógio • Interrupção de E/S • Interrupção de falha de hardware
Interrupções • Exemplo: • Um dada impressora recebe um fluxo de dados provenientes do final de um ciclo de execução; • Essa impressora demora muito para terminar imprimir os dados no papel; • O que a CPU deve fazer enquanto espera esses dados serem impressos? • Sem um sistema de interrupção ela fica parada • Com sistema de interrupção ela faz pequenas pausas.
Interpretação da instrução Cálculo do endereço da instrução Busca da instrução Armazenamento do operando Execução da instrução Busca de operando Interrupção Calculo de endereço do operando Verifica ocorrência de interrupção Calculo de endereço do operando Interrupção • Ciclo com interrupção
Pipeline • Técnica de implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções • Constituído por seqüência de estágios operando em paralelo • Funciona de modo semelhante a uma linha de montagem • Seu uso visa a melhora no desempenho do processador
Características do Pipeline • Aumenta o número de instruções executadas simultaneamente • Aumenta taxa de instruções iniciadas e terminadas por unidade de tempo • Melhora o desempenho do processo (throughput) • Nãoreduz o tempo gasto para completar cada instrução individualmente.
Pipeline do ciclo de instrução • Suponha que o ciclo pudesse ser resumido dos seguintes estágios: • Busca de Instrução (BI) • Decodificação da Instrução (DI) • Cálculo de (endereço) Operandos (CO) • Busca de Operandos (BO) • Execução da Instrução (EI) • Armazenamento de Operandos (AO)
Pipeline do ciclo • Exemplo 3
Características do Pipeline • Deve-se procurar dividir a execução da instrução em estágios com o mesmo Tempo • Contudo alguns estágios são mais lentos: • O estagio execução é geralmente mais lento que o de busca • Quando os estágios não tem o mesmo tempo: • Algumas instruções podem ter o seu tempo aumentado • Isso ocorre pois elas atravessam estágios em que não realizam nenhuma operação útil
Pipeline do ciclo • Exemplo 4
Pipeline do ciclo • Exemplo 5
Conflitos • Situações que impedem a próxima instrução dentro de uma fila de ser executada no ciclo esperado • Os Conflitos reduzem o tempo de ganho obtido pelo pipelining • Existem três classes de conflitos: • Estrutural • de Dados • de Controle
Conflitos Estruturais • Oriundos de um hardware que não suporta a sobreposição simultânea de todas as etapas de instruções • No exemplo da lavanderia seria o equivalente a implementar um pipeline onde só existisse uma tomada para a máquina de lavar e para a máquina de secar.
Conflitos de Dados • Ocorrem quando uma instrução para ser executada depende dos resultados gerados por alguma instrução anterior que ainda não foi completada • No exemplo da lavanderia seria um caso em que a secadora demorou demais para secar uma roupa e já tem a roupa lavada de outro cliente na fila para secar.
Conflito de Controle • Ocorrem quando uma instrução de salto condicional (desvio) entra no pipeline provocando o cancelamento de instruções subsequentes que também entraram no pipeline.
Pipeline do ciclo c/ desvio • Exemplo 6
Pipeline do ciclo c/ desvio • Exemplo 6 (continuação)
Memória Principal • Memória que armazena os dados e programas em linguagem de máquina em execução corrente • Razoavelmente barata • Tempo de acesso da ordem de nano-segundos a dezenas de nano-segundos • Freqüência de acesso alta. Se não existisse a memória Cache, seria acessada a cada ciclo de busca-decodificação-execução
Hierarquia de memória • Modelo hierárquico
Memória Principal • Cada posição da memória principal tem um endereço único • Geralmente é combinada com uma memória Cache menor e mais veloz • A Cache geralmente não é visível ao usuário • È usada para melhorar o desempenho
Endereçamento • A memória principal é organizada como um conjunto de n células (ou posições) capazes de armazenar, cada uma, m bits. • Cada célula é identificada por um endereço (código binário associado) de k bits através do qual é referenciada. • Os endereços são numerados de zero a n-1.
Endereçamento • Existem 2k possíveis endereços. Assim, o máximo número de células endereçáveis é 2k. • A célula é a menor unidade de memória endereçável • Uma célula poderá armazenar qualquer uma das 2m possíveis combinações diferentes dos seus m bits. • Onde m é independente de n.
Endereçamento • Os m de bits de uma célula são acessados simultaneamente • m pode ser qualquer número inteiro mas, nos últimos anos, os fabricantes padronizaram um tamanho de 8 bits (1 byte).
Endereçamento • Bytes são agrupados em Palavras • A maioria das instruções opera sobre palavras • Registradores da CPU geralmente são do tamanho de uma palavra.
Ordenação • Os bytes de uma palavra podem ser numerados da esquerda para a direita ou da direita para a esquerda • Quando a numeração dos bytes começa da esquerda para a direita da palavra, a ordenação dos bytes é dita Big Endian • Quando a numeração dos bytes começa da direita para a esquerda da palavra, a ordenação dos bytes é dita Little Endian