B.3 Arquitetura do Processador
Basicamente, um processador, em sua arquitetura, pode ser dividido em vários blocos:
B.3.1 Unidade operacional
Ela é a responsável por executar as transformações sobre dados especificados pelas instruções do computador.
O número, tamanho e uso dos registradores e a quantidade e tipo de operações que a unidade lógica e aritmética realiza são alguns dos fatores que determinam o porte de um processador.
Nela são realizadas as operações aritméticas e operações lógicas sobre um ou mais operandos. Muitas vezes, as operações da ULA são indicadas por instruções simples. As funções mais complexas, exigidas pelas instruções de máquina, são realizadas pela ativação sequencial das várias operações básicas disponíveis.
A ULA apresenta as seguintes características:
Os códigos de condição gerados servem como indicações sobre as operações realizadas, podendo ser, segundo Weber (2004):
É um registrador que tem como função armazenar um operando que será utilizado, ou o resultado fornecido pela ULA. Nos computadores mais simples pode existir um acumulador e nos mais complexos podem ser encontrados vários registradores com a função de um acumulador. Dentre sua principal característica está o seu comprimento em bits, que indica a quantidade de bits que ele pode armazenar, sendo que em cada nova operação, um dado é copiado para o seu interior, fazendo com que o conteúdo antigo seja perdido (WEBER, 2004).
B.3.2 Unidade de controle (UC)
Sua principal finalidade é a de fornecer os sinais de controle que gerenciam o fluxo interno de dados no processador. É ele quem coordena o instante preciso em que ocorrem as transferências entre um componente do processador e outro na execução de uma instrução, conforme figura abaixo:
Cada sinal de controle gerado por ela comanda uma micro-operação a ser realizada. Ela recebe como entrada o valor do Registrador de Instrução e decodifica-o, juntamente com os sinais de saída da ULA (RST). Para cada código de instrução ela gera uma sequência de sinais diferentes, ativando os circuitos correspondentes para que cada uma das tarefas necessárias para a busca e execução da instrução seja completada.
As tarefas podem incluir a carga de valores em um registrador, seleção de um dado para entrada em componente, ativação da memória, seleção de uma operação da ULA, habilitação de um circuito lógico, etc. (WEBER, 2004)
B.3.3. Banco de registradores
No computador existem registradores que executam funções específicas e que, dependendo da arquitetura, podem ser encontrados em diferentes blocos.
Sua função é manter atualizado o endereço de memória da próxima instrução que deve ser executada após a atual.
Armazena o código da instrução que está sendo executada. É em função dele que a unidade de controle determina quais sinais de controle devem ser gerados para executar as operações determinadas pela instrução. O comprimento em bits do RI está ligado ao tamanho e à codificação das instruções do computador.
Nele ficam armazenados os códigos de condição gerados pela unidade lógica e aritmética. Em função dele, em conjunto com o RI, que a UC toma decisões sobre a geração ou não de certos sinais de controle.
B.3.4 Demais elementos do processador
Além dos blocos que compõem o processador, também podem ser encontrados os seguintes elementos:
É usado para manter o sincronismo do funcionamento entre todos os componentes do processador.
É um dispositivo utilizado para identificar as operações a serem realizadas com base na instrução a ser executada.
É o caminho utilizado na transferência de dados entre os registradores e entre registradores e a ULA.
É o caminho utilizado para a transferência de endereços entre os registradores.
É o caminho utilizado para transmitir os sinais da unidade de controle que comandam o funcionamento de cada circuito do processador.
O conjunto de todos os elementos que formam o processador será organizado de acordo com a arquitetura utilizada, como, por exemplo, pode ser visto na figura abaixo: