>
UNIDADE CENTRAL DE PROCESSAMENTO
A Unidade Central de Processamento - UCP (em inglês, Central
Processing Unity - CPU) é a responsável pelo processamento e execução dos
programas armazenados na MP. As funções da UCP são: executar as instruções e
controlar as operações no computador.
A UCP é composta de duas
partes:
UAL - Unidade Aritmética e Lógica - tem por função a efetiva execução das instruções
UC - Unidade de Controle - tem por funções a busca, interpretação e controle de execução das instruções, e o controle dos demais componentes do computador
Obs.: Neste curso, por simplicidade, será considerado apenas o funcionamento serial em uma UCP. Outras abordagens serão discutidas no capítulo Tópicos Avançados de Arquitetura (UCP's não pipelined).
A seguir é apresentado o diagrama esquemático de uma UCP.
Registradores Importantes na UCP
Instruções
Para que um programa possa ser executado por um computador, ele precisa ser constituído de uma série de instruções de máquina e estar armazenado em células sucessivas na memória principal. A UCP é responsável pela execução das instruções que estão na memória.
Quem executa um programa é o hardware e o que ele espera encontrar é um programa em linguagem de máquina (uma sequência de instruções de máquina em código binário). A linguagem de máquina é composta de códigos binários, representando instruções, endereços e dados e está totalmente vinculada ao conjunto ("set") de instruções da máquina.
Um ser humano usa seu conhecimento e inteligência para traduzir uma tarefa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num arquivo) numa série de passos elementares (identificar o móvel e gaveta onde está a pasta, andar até o móvel, abrir a gaveta, encontrar a pasta, retirar a pasta e fechar a gaveta). Para o computador, uma instrução precisa ser detalhada, dividida em pequenas etapas de operações, que são dependentes do conjunto de instruções do computador e individualmente executáveis.
Fazendo um paralelo com linguagens de alto nível, o programa elaborado pelo programador (o código-fonte, composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares (primitivas) executáveis pelo hardware (ver Conceito de Processo). Cada uma das instruções tem um código binário associado, que é o código da operação.
Formato geral de uma Instrução
Código de operação (OPCODE) | Operando (s) (OP) |
O Capítulo Representação de Instruções detalha esse assunto.
Conjunto de Instruções
Quando se projeta um hardware, define-se o seu conjunto ("set") de instruções - o conjunto de instruções elementares que o hardware é capaz de executar. O projeto de um processador é centrado no seu conjunto ("set") de instruções. Essa é uma das mais básicas decisões a ser tomada pelo Engenheiro de projeto. Quanto menor e mais simples for este conjunto de instruções, mais rápido pode ser o ciclo de tempo do processador.
Funcionalmente, um processador precisa possuir instruções para:
As estratégias de implementação de processadores são:
Obs.: adotaremos o termo instrução para as instruções de máquina ou em linguagem Assembly e comando para linguagens de alto nível.
Há hoje uma crescente tendência a se utilizar um conjunto de instruções reduzido, de vez que os compiladores tendem a usar em geral apenas uma pequena quantidade de instruções. Há também vantagens na implementação do hardware - maior simplicidade, menor tempo de ciclo de instrução). Este assunto será debatido no Capítulo Tópicos Avançados de Arquitetura.
O projeto de um processador poderia ser resumido em:
a)
Definir o conjunto de instruções (todas as possíveis instruções que o
processador poderá executar)
· definir formato e tamanho das instruções
·
definir as operações elementares
b) Projetar os componentes do processador
(UAL, UC, registradores, barramentos, ...)
Duas estratégias são possíveis
na construção do decodificador de instruções da UC:
. wired logic
(as instruções são todas implementadas em circuito)
. microcódigo (apenas um
grupo básico de instruções são implementadas em circuitos; as demais são
"montadas" através de microprogramas que usam as instruções básicas.
Ciclo de Instrução
As instruções são executadas sequencialmente (a não ser pela
ocorrência de um desvio), uma a uma.
O CI indica a seqüência de execução,
isto é, o CI controla o fluxo de execução das instruções. A seguir é ilustrado o
ciclo de processamento de uma instrução.
Descrição do processamento de uma instrução na UCP:
- a UC lê
o endereço da próxima instrução no CI;
- a UC transfere o endereço da próxima
instrução, através do barramento interno, para o REM;
-
Na página a seguir, apresentamos uma tabela com as principais