Estrutura e Funcionamento da CPU Adriano Maranhão S 1 Relembrando… S Compiladores de linguagens ao fazer a conversão da linguagem de alto nível para chegar na fase da linguagem de baixo nível como assembly o código se distingue principalmente por ultilizar de apenas registradores e processos na pilha para executar um determinado programa. 2 Relembrando… S Os principais elementos da CPU são a Unidade de Controle , a Unidade Lógica e Aritmetica (ULA) e os Registradores. Esses elementos se conectam interna- mente atraves do barramento interno da CPU. 3 Registradores S Os registradores visíveis ao usuário são aqueles que podem ser referenciados pela linguagem de montagem. Eles podem ser registradores de dados, endereço ou então de proposito geral. Os registradores de Controle e de Estado são utilizados para controlar a operação da CPU. 4 . Exemplos de registradores de Controle e de Estado S Counter (PC), Instruction Register (IR), Memory Address Register (MAR), Memory Buffer Register (MBR), Program Status Word (PSW), Stack Pointer (SI), Page Table Base Register (PTBR), Page Table Base Limit (PTBL). 5 Pipelines S Como pudemos ver, um ciclo de instrução pode subdividido em etapas menores. Uma divisão comum e a baseada nos ciclos de busca, indireto, execução e interrupção. A ideia da técnica de pipeline e trabalhar as diversas etapas do ciclo de instrução de forma paralela, e não de forma serial, de forma aumentar o desempenho da CPU 6 Técnicas utilizadas em problemas introduzidos pelas instruções de desvio S Múltiplos Fluxos (duplicacao de estagios iniciais); S • Busca Antecipada de Instrução-Alvo de Desvio; S • Memoria de Laco de Repetição (loop buffer); S • Previsão de Desvio baseadas no opcode; S • Previsão de Desvio baseadas em histórico (BTB - Branch Target Buffer, também conhecida como BHT - Branch History Table). 7 Conjunto de Instruções S A operação da CPU e determinada pelo conjunto de instruções que ela executa. São as chamadas instruções de maquina. A coleção de instruções que uma CPU pode executar e chamada Conjunto de Instruções. 8 Os principais elementos e uma instrução S (i)Código da operação (opcode): especifica a operação a ser efetuada; S • (ii)Referência a` Operando Fonte: indica as entradas para a operação; S • (iii)Referência ao operando Destino: A operação pode produzir um resul- tado; S • (iv)Endereço da próxima instrução: Pode ser indicado implicitamente (ex: registrador PC). 9 As instruções podem ser classificadas S (i)Processamento de Dados: instruções logicas e aritméticas; S • (ii)Armazenamento de dados: instruções de memoria; S • (iii)Movimentação: instruções de E/S; S • (iv)Controle: instruções de teste e desvio. 10 Os tipos de operações mais comuns S (i)Transferencia de Dados: mov,push/pop,xlat,in/out; S • (ii)Aritmeticas: add,sub,mul,idiv; S • (iii)Logicas: and,or,shl/shr; S • (iv)Conversao de Tipos: jmp,call,loop,int/into; S • (vi)Controle do Sistema: hlt,wait; S • (vii)Transferencia de Controle: blt,bgt,beq,call,jmp. 11 Unidade de Controle S A unidade de controle coordena os diversos elementos do processador para que este possa realizar todas as suas funções. A execução de um programa consiste de uma sequencia de ciclos de instrução. Um ciclo de instrução pode ser sub- dividido em quatro subciclos que sao busca, indireto, execução e interrupção. 12 Os quatro registradores básicos da unidade de controle S PC (Program Counter): Mantem o endereço da próxima instrução a ser buscada na memoria; S • MAR (Memory Address Register): Especifica endereço de memoria para uma operacao de leitura ou escrita; S • MBR (Memory Buffer Register): Conectado ao barramento do sistema. Contem um valor a ser armazenado na memoria ou o ultimo valor dela lido; S • IR (Instruction Register): Mantem a ultima instrucao buscada na memoria. 13 as micro operações caem em uma das seguintes categorias S (i)Transferencia de dados entre registradores; S • (ii)Transferencia de dados entre registrador e interface externa (barra- mento); S • (iii)Transferencia de dados de interface externa para registrador; S • (iv)Execucao de operacoes logicas e aritméticas, usando registradores como entrada e saıda. 14 Modos de Endereçamento S Os modos de endereçamento estão relacionados com a forma utilizada para especificar o valor ou endereço de um operando de uma instrução. Questões importantes na escolha do modo de endereçamento são a quantidade de posições de memoria endereçáveis, flexibilidade de endereçamento, numero de referencias a memoria feitas pela instrução e complexidade do calculo do endereço. 15 Imediato S o valor do operando e especificado diretamente na instrução. Sua principal vantagem e não requer acesso a memoria para obter o operando. A desvantagem e que esse modo impõe uma limitação no tamanho do operando; 16 Direto S Direto: o campo de endereço contem o endereço efetivo do operando na memoria. Requer portanto apenas um acesso para determinar o valor do operando. Sua limitação e fornecer um espaço de endereçamento limitado; 17 Indireto S Indireto: o campo de endereço aponta para uma posição de memoria que contem o endereço de memoria do operando. Sua principal desvantagem e a necessidade de dois acessos `a memoria. A vantagem em relação ao modo de endereçamento direto e o aumento do espaço de endereçamento, que passa a ser igual 2n onde n e o tamanho da palavra; 18 Registrador S Registrador: e semelhante ao modo direto, no entanto o modo de endereço se refere a um registrador e nao a uma posição de memoria. Geralmente e composto por 3 ou 4 bits, o que permite referenciar de 8 a 16 registradores de proposito geral. Suas vantagens são o tamanho pequeno do campo de endereço e não necessidade de se acessar a memoria. Sua desvantagem e o espaço de endereçamento limitado pelo numero de registradores; 19 Indireto via Registrador S Indireto via Registrador: semelhante ao modo de endereçamento indireto. O campo de endereço aponta para o registrado que contem a posição de memoria do operando. Sua vantagem e a necessidade de um único acesso a memoria, um a menos que no modo indireto; 20 Deslocamento S Deslocamento: requer que uma instrução tenha dois campos de endereço, com pelo menos um explıcito. O valor de um dos campos e usado diretamente (valor = A). O outro campo e baseado no código da operação, e especifica um registrador cujo conteúdo e adicionado a A, para produzir o endereço efetivo. Os três modos de endereçamento por deslocamento são relativo, via registrador-base e indexado; 21 Pilha S Pilha: A pilha e um bloco reservado de posições em memoria. Elementos podem ser colocados e removidos do topo da pilha. o apontador do topo da pilha (stack-pointer) e mantido em um registrador. Portanto, de fato, referências a pilha são feitas por endereçamento indireto via registrador 22