- A Unidade Central de Processamento (UCP) é o componente principal de um computador e é composta por três elementos principais: a Unidade Lógica e Aritmética (ULA), os registradores e a Unidade de Controle (UC). A ULA executa as operações, os registradores armazenam temporariamente dados e instruções, e a UC controla a execução das instruções.
3. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 3
Funções de cada Componente de um
Computador - UCP
Unidade Lógica e Aritmética – ULA
• É o dispositivo que realmente executa as operações
matemáticas/lógicas com os dados. Tais operações
podem ser:
– Comparação porta lógica XOR
– Multiplicação porta lógica AND
– Soma Porta lógica OR
• Tais operações podem utilizar dois valores (operações
aritméticas e lógicas), por isso a ULA possui duas
entradas, ou apenas um valor (operações com
complemento). A ULA é um aglomerado de circuitos
lógicos e componentes eletrônicos simples que,
integrados, realizam as operações já mencionadas.
4. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 4
Funções de cada Componente de um
Computador - UCP
Registradores
• Para que o dado seja transferido para a ULA, é necessário que
ele permaneça, mesmo que por um breve instante,
armazenado em um registrador (a memória da UCP).
• Além disso, o resultado de uma operação aritmética ou lógica
realizada na ULA deve ser armazenado temporariamente, de
modo que possa ser reutilizado mais adiante (por outra
instrução) ou apenas para ser, em seguida, transferido para a
memória.
• Para atender a este propósito, a UCP é fabricada com certa
quantidade de registradores, destinados ao armazenamento
de dados. Serve de memória auxiliar da ULA.
• Há sistemas nos quais um desses registradores, denominado
Acumulador – ACC, além de armazenar dados, serve de
elemento de ligação da ULA com os restantes dispositivos da
UCP.
• Em geral, os registradores de dados da UCP têm uma largura
(quantidade de bits que podem armazenar) igual à da palavra
(16, 32 ou 64 bits).
5. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 5
Funções de cada Componente de um
Computador - UCP
A Unidade de Controle (UC)
• É o dispositivo mais complexo da UCP.
• Possui a lógica necessária para realizar a movimentação de
dados e instrução de e para a UCP, através de sinais de
controle, que emite em instantes de tempo programados.
• Este dispositivo controla a ação da ULA.
• Os sinais de controle emitidos pela UC ocorrem em vários
instantes durante o período de realização de um ciclo de
instrução e, de modo geral, todos possuem uma duração fixa
e igual, originada em um gerador de sinais usualmente
conhecido como relógio (clock).
• Cada operação possui um código identificador único. Para
cada código interpretado, uma sequência de micro-operações
é realizada. O sinal de clock dá o ritmo da execução das
microoperações. Dados e instruções são copiados para dentro
da UCP nos registradores. A Unidade de Controle faz o
gerenciamento de todas essas operações.
6. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 6
Funções de cada Componente de um
Computador - UCP
O Relógio (Clock)
• É o dispositivo gerador de pulsos cuja duração é chamada de
ciclo.
• A quantidade de vezes em que este pulso básico se repete em
um segundo define a unidade de medida do relógio,
denominada freqüência, a qual também usamos para definir
velocidade na UCP.
• Um ciclo de relógio ou de máquina é o intervalo de tempo
entre o início de um pulso e o início do seguinte.
• Este ciclo está relacionado à realização de uma operação
elementar, durante o ciclo de uma instrução (operação
elementar pode ser, p. ex., uma micro-instrução, que é parte
do ciclo de uma instrução de máquina, que veremos
posteriormente).
• No entanto, mesmo esta operação elementar não se realiza
em um só passo e, por essa razão, costuma-se dividir o ciclo
de máquina em ciclos menos (subciclos), defasados no tempo,
de modo que cada um aciona um passo diferente da operação
elementar.
7. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 7
Funções de cada Componente de um
Computador – Instrução de máquina
O que é uma Instrução de Máquina?
• Uma instrução de máquina pode executar tarefas complicadas e
sucessivas se for “instruída” sobre o que fazer e em que seqüência
isso deve ser jeito.
• Os seres humanos, se receberem uma instrução do tipo “trazer a
pasta da funcionária Maria”, são capazes de localizar o arquivo onde
as pastas de todos os funcionários estão arquivadas – em geral por
ordem alfabética – e achar a pasta, trazendo-a a quem pediu.
• O nosso cérebro realizou uma série de ações intermediárias para que
a tarefa fosse concluída com êxito.
• No entanto, se a mesma “instrução” fosse dada a uma máquina (e
ela não tivesse qualquer orientação prévia armazenada), ela não
conseguiria “trazer a pasta desejada”.
• Para a máquina, é necessário que a “instrução” seja detalhada em
pequenas etapas, visto que ela é construída para ser capaz de
entender só dessa forma, ou seja, em pequenas operações.
• A máquina deveria receber um conjunto de instruções específicas
para ela, sendo, chamadas de instruções de máquina.
9. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 9
Funções de cada Componente de um
Computador – Instrução de máquina
O que é uma Instrução de Máquina?
• O programa da Figura 5.16 – não está completo nem estruturado –
tem apenas o propósito de mostrar, por comparação simbólica, a
diferença entre a generalidade de uma instrução para o funcionário e
o detalhe de uma instrução para a máquina.
• Com os sistemas de computação isto não é diferente.
• Uma instrução de máquina é a especificação de uma operação básica
(ou primitiva) que o hardware é capaz de realizar diretamente.
• Podemos, p. ex., fabricar um processador com uma ULA capaz de
somar ou de multiplicar dois números, mas ainda não se fabricou
uma ULA capaz de executar:
X = A + B * C
• de uma só vez. A ULA tem que ser instruída para executar,
separadamente:
– T = B * C
– A + T
10. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 10
Funções de cada Componente de um
Computador – Instrução de máquina
Projeto de uma UCP
• O projeto de um processador é centrado no conjunto de
instruções de máquina que se deseja que ele execute.
• Uma das mais fundamentais decisões do projeto
envolve o tamanho e a complexidade do conjunto de
instruções.
• Quanto menor e mais simples o conjunto de instruções,
mais rápido é o ciclo de tempo do processador.
• Atualmente, há duas tecnologias de projeto de
processadores empregadas pelos fabricantes
microcomputadores e de estações de trabalho:
– Sistemas com conjunto de instruções complexo
(Complex Instruction Set Computers – CISC); e
– Sistemas com conjunto de instruções reduzido
(Reduced Instruction Set Computers – RISC).
11. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 11
Funções de cada Componente de um
Computador – Instrução de máquina
Formato das Instruções
• De modo geral, podemos separar o grupo de bits que constitui a
instrução em dois campos:
– Um campo (um subgrupo de bits) chama-se código de operação;
– O restante grupo de bits (se houver) denomina-se campo do(s)
operando(s) ou, simplesmente, operando(s).
• Código de operação – C.Op – é o campo da instrução cujo valor
binário é a identificação (ou código) da operação a ser realizada.
Assim, cada instrução possui um único código, o qual servirá de
entrada no decodificador da área de controle.
• Campo operando – Op – é(são) o(s) campo(s) da instrução cujo
valor binário indica a localização do dado (ou dados) que será(ão)
manipulado(s) durante a realização da operação.
• Pode existir um ou mais campos “operando” na instrução, isto é, se a
operação for realizada com mais de um dado, a instrução poderá
conter o endereço de localização de cada um dos dados referidos
nela. Por exemplo, uma instrução que define uma operação de adição
de dois valores pode indicar explicitamente o endereço de cada um
dos dois valores (operando 1 e operando 2), bem como o endereço
onde o resultado será armazenado (operando 3).
12. ArquiteturaeorganizaçãodeComputadores
Funções de cada Componente de um Computador 12
Funções de cada Componente de um
Computador – Instrução de máquina
Considerações sobre o Formato das Instruções
• No que se refere à definição do código de operação, C.Op., há duas maneiras
de se criar um conjunto de instruções de um processador:
– Instruções com C.Op. de tamanho fixo; e
– Instruções com C.Op. de tamanho variável.
• Conjuntos de instruções com C.Op. de tamanho fixo são mais simples de
implementar e de manipular durante a execução de um programa. Porém, em
sistemas que possuem uma grande quantidade de instruções, o tamanho do
C.Op. tem de crescer o suficiente para acomodar todos os códigos necessários,
com isso, aumenta o tamanho das instruções e, consequentemente, o
tamanho requerido pelo programa na MP, o que é uma desvantagem de um
modo geral.
• Neste tipo de C.Op. pode-se calcular imediatamente a quantidade máxima de
instruções que podem ser implementadas no respectivo processador, apenas
sabendo-se a quantidade de bits do campo.
• Por exemplo, um conjunto de instruções que tenham C.Op. de 6 bits pode ter,
no máximo, 64 códigos diferentes, ou seja, 64 instruções podem ser criadas.
• Um valor típico de C.Op. de tamanho fixo é 8 bits.
• Instruções que possuem C.Op. de tamanho variável permitem codificar uma
quantidade maior de instruções com menor quantidade de bits, embora muitas
vezes se personalize o tamanho do campo operando (reduzindo-se, com isso,
a quantidade de endereçamento de memória), ou se tenha de aumentar o
tamanho total da instrução, acarretando os prejuízos de gasto de memória já
mencionados.