Você está na página 1de 11

Capítulo 5 – Organização Interna de um Computador

5.1 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.
Um programa, para ser efetivamente executado pelo processador, deve ser constituído
de uma série de instruções de máquina. Para que a execução tenha início, as
instruções devem ser armazenadas em células sucessivas, na MP.
A função da UCP consiste, então, em:
a) Buscar uma instrução na memória (operação de leitura), uma de cada
vez;
b) Interpretar que operação a instrução está explicitando (pode ser soma de
dois números, uma multiplicação, uma operação de entrada ou de saída
de dados, ou ainda uma operação de movimentação de um dado de uma
célula para outra);
c) Buscar os dados onde estiverem armazenados, para trazê-los até a
UCP;
d) Executar efetivamente a operação com os dados, guardar o resultado
(se houver algum) no local definido na instrução; e, finalmente;
e) Reiniciar o processo apanhando nova instrução.

Estas etapas compõem o que se denomina um ciclo de instrução. Este ciclo


se repete indefinidamente (ver Figura 5.8) até que o sistema seja desligado,
ou ocorra algum tipo de erro, ou seja, encontrada uma instrução de parada.
Figura 5.8 – Ciclo de Instrução.

As atividades realizadas pela UCP podem ser divididas em duas grandes categorias
funcionais:
função processamento e função controle.

5.1.1 Função Processamento

Vimos que processamento de dados é a ação de manipular um ou mais valores (dados)


em certa sequência de ações, de modo a produzir um resultado útil. O resultado muda
conforme o tipo de operação realizada. Por exemplo, se uma instrução define que
deve ser realizada uma operação de adição sobre os valores A = 5 e B = 3, o sistema,
ao interpretar a instrução, gera as ações subseqüentes que redundarão no resultado
igual a 5+3 = 8. Por outro lado, se o sistema interpretar uma outra instrução que define
a operação de subtração, ele deve gerar outras ações de modo que o resultado seja 5-
3 = 2 (e não mais 8).
Processar o dado é executar com ele uma ação que produza algum tipo de resultado.
Este é, pois, a atividade-fim do sistema; ele existe para processar dados. O dispositivo
principal desta área de atividade de uma UCP é chamado ULA – Unidade Lógica e
Aritmética. Os demais componentes relacionados com a função processamento são
os registradores, que servem para armazenar dados (ou para guardar resultados) a ser
usados pela ULA. A interligação entre estes componentes é efetuada pelo
barramento interno da UCP.

5.1.1.1. Unidade Lógica e Aritmética – ULA:

É o dispositivo que realmente executa as operações matemáticas com os dados. Tais


operações podem ser:
Soma Subtração Multiplicação Divisão
Op. Lógica AND Op. Lógica OR Op. Lógica XOR Op. Complemento
Deslocamento à direita Deslocamento à esquerda Incremento Decremento
Tais operações podem utilizar dois valores (operações aritméticas e lógicas), por isso
a ULA possui duas entradas, ver Figura 5.9, 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.

Figura 5.9 –
Esquema da UCP,
destacando-se os
em amarelo os
elementos que
contribuem para a
realização da
função
processamento.
5.1.1.2. 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 UAL 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. O tamanho dos processadores IBM/370 era de
32 bits, a mesma largura dos 16 registradores de emprego geral neles existentes. O
microprocessador Intel 8088, que moveu os primeiros sistemas IBM PC, possui
registradores de 16 bits cada um, tamanho idêntico ao definido para a palavra.

A quantidade e o uso dos registradores variam bastantes de modelo para modelo de


UCP. As Figuras 5.10 e 5.11 apresentam exemplos de organização de registradores
de dados em algumas UCP.

Além dos registradores de dados, a UCP possui sempre outros registradores (que não
participam diretamente da função processamento), com funções específicas ou
que funcionam para a área de controle. Entre estes registradores podemos citar desde
já o Registrador de Instrução – RI e o contador de instrução – CI, além do Registrador
de Endereço de Memória – REM e o Registrador de Dados de Memória – RDM.
Barramento Interno

ACC Reg. Temp. Flags


Reg. B Reg. C
Reg. D Reg. E
Reg. H Reg. L
ULA
B = C = D = E = H = L = 8 bits
ULA = 8 bits

Figura 5.10 – Diagrama (simplificado) em bloco da UCP Intel 8085, apenas


com os dispositivos básicos da área de processamento.
Reg. Temp.

ULA Reg. de Emprego geral


AH AL
Reg. Temp. BH BL
CH CL
OH DL AH + AL += 16 bits
Flags
ULA = 16 bits
Barramento Interno

Figura 5.11 – Diagrama (simplificado) em bloco da UCP Intel


8086, mostrando apenas os dispositivos básicos da área de
processamento.

5.1.1.2. A Influência do Tamanho da Palavra:


A capacidade de processamento de uma UCP (a velocidade com que realiza o ciclo
de uma instrução) é em grande parte determinada pelas facilidades embutidas no
hardware da ULA (ela é, só hardware) para realizar as operações matemáticas
projetadas.
Um dos elementos fundamentais para isso é a definição do tamanho da palavra da
UCP. O valor escolhido no projeto de fabricação da UCP determinará o tamanho dos
elementos ligados à área de processamento, entre estes a ULA.
Um tamanho maior ou menor de palavra (e, por conseguinte, da ULA, dos
registradores de dados, do barramento interno) acarreta, sem dúvida, diferenças
fundamentais de desempenho da UCP. Vejamos um exemplo simples sobre a
influência do tamanho da palavra na capacidade de processamento.
Vamos realizar a soma de dois valores, A = 3A25 e B = 172C, ambos números
inteiros, sem sinal, com 16 bits de tamanho cada um. A referida soma será simulada
em 2 sistemas de computação, sistema 1 e sistema 2.
O sistema 1 possui palavras de 8 bit, e a memória principal tem 64K células de 8 bits
cada uma, conforme mostrado na Figura 5.10.
O sistema 2 possui palavras de 16 bits, e a memória principal possui um espaço de
endereçamento de 1M células, todas também com 8 bits cada uma, conforme
mostrado na Figura 5.11.

Operação de soma no sistema 1:


a) A operação é realizada em duas etapas lógicas, porque cada valor tem 16 bits e a
UCP (ULA, registrador ACC e barramento de dados) só permite armazenar,
processar e transferir dados com 8 bits de tamanho.
b) Na primeira etapa são transferidos para a ULA, via ACC e barramento de dados,
a 1a metade de cada número (25 para o número A e 2C para o número B) e eles
são somados.
c) Na segunda etapa a operação é realizada de forma idêntica, exceto para a 2a parte
dos valores (3A para o número A e 17 para o número B).
d) A operação completa gasta um período de tempo igual a T 1.
A Figura 5.12 mostra este exemplo em um digrama em bloco de uma UCP semelhante
à do sistema 1, com a transferência dos valores sendo efetuada de 8 em 8 bits de cada
vez.

Operação de soma no sistema 2:


a) A operação é realizada em uma etapa lógica, porque a UCP é fabricada para operar
valores de 16 bits de tamanho, mesmo tamanho dos números.
b) A operação completa gasta um período de tempo igual a T2.

A Figura 5.13 mostra este exemplo em um digrama em bloco de uma UCP semelhante
à do sistema 2, com a transferência dos valores sendo efetuada de 16 em 16 bits de
cada vez.
Considere que a operação de soma no sistema 1 é realizada em duas etapas e a mesma
operação no sistema 2 é realizada em uma etapa, o tempo T 2 deve ser
aproximadamente a metade do tempo T1. Isto torna a capacidade da UCP do sistema
2 bem maior que a capacidade do sistema 1.

NOTA: Nos exemplos anteriores foram consideradas várias simplificações, não


somente na arquitetura dos dois sistemas, como também no processo de soma,
visando não complicar a explicação do essencial – a influência do tamanho da palavra
na variação da capacidade de processamento dos sistemas. Nenhuma das
simplificações feitas comprometeu a conclusão final.
UCP MP
8 bits 0 8 bits
8 bits
25+2C (1a) 3A
25 A
3A+17 (2a)
17
B
2C
ULA ≈ ≈
ACC = 8 bits

8 bits
Barramento de dados

UCP – Palavra de 8 bits


Memória de 64K bytes

Operação: somar 2 números com 16


bits de tamanho A = 3A25 e B = 172C
(realizada em duas etapas)
Figura 5.12 – Exemplo de uma operação de soma de 2 números, A e B, em um computador com
palavra de 8 bits.

UCP MP
16 bits 0 8 bits
8 bits
3A25+172C (1a) 3A
25 A

B
ULA
ACC = 16 bits

16 bits
Barramento de dados

UCP – Palavra de 16 bits


Memória de 1M bytes

Operação: somar 2 números com 16 bits de tamanho


A = 3A25 e B = 172C (realizada em uma única etapa)
Figura 5.13 – Exemplo de uma operação de soma de 2 números, A e B, em um computador com
palavra de 16 bits.

No projeto de uma UCP, a definição do tamanho da palavra tem enorme influência


no desempenho global de toda a UCP e, por conseguinte, do sistema como um todo.
Vejamos:
a) Influencia no desempenho devido ao maior ou menor tempo na execução de
instruções com operações matemáticas na ULA, conforme demonstrado no
exemplo anterior;
b) Influencia no desempenho devido ao tamanho escolhido para o barramento
interno e externo da UCP. Em geral, obtém-se o máximo de desempenho quando
a largura (tamanho) do barramento
de dados é, no mínimo, igual ao tamanho da palavra (como nos exemplos
mostrados). Se a largura do barramento for, p. ex., igual a 16 bits em um sistema
com palavra de 32 bits (ULA e registradores de 32 bits), então o movimento de 4
bytes de um dado tipo caractere requererá dois ciclos de tempo do barramento, ao
passo que em barramento de 32 bits requereria apenas um ciclo de tempo;
c) Influencia também na implementação física do acesso à memória. Embora
atualmente a capacidade das memórias seja medida em bytes (porque as células
são sempre de largura igual a 8 bits), o movimento de dados entre UCP e memória
é normalmente medido em palavras, porque o barramento de dados que une o
RDM (ou MBR) à memória deve acompanhar em largura o valor da palavra. Para
uma UCP de 32 bits de palavra, p. ex., é desejável que a memória seja organizada
de modo que sejam acessadas 4 células contíguas (4 bytes = 32 bits) em um único
ciclo de memória. Se isto não ocorrer, a UCP deverá ficar em estado de espera
(“wait state”).
5.1.2 Função Controle

A área de controle de uma UCP é a parte funcional que realiza (uma etapa de cada
vez, em sistemas de execução serial, ou várias etapas simultaneamente, em sistemas
de execução “pipelining”) as atividades de:
a) Busca de instrução que será executada, armazenando-a em um registrador
especialmente projetado para esta finalidade;
b) Interpretação das ações a serem desencadeadas com a execução da instrução (se
é uma soma, uma subtração, uma complementação, etc.); e
c) Geração de sinais de controle apropriado para ativação requerida para a execução
propriamente dita da instrução identificada. Esses sinais de controle são enviados
aos diversos componentes do sistema, sejam internos da UCP (como a ULA) ou
externos (como a memória ou E/S).

Em outras palavras, a área de controle é projetada para entender o que fazer, como
fazer e comandar quem vai fazer no momento adequado. Podemos fazer uma analogia
com os seres humanos, imaginando que a área de controle é o cérebro que comanda
o ato de andar, e as áreas do processamento são os músculos e ossos das pessoas que
realizam efetivamente o ato. Os nervos são análogos ao barramento de interligação
entre os diversos elementos.

Na Figura 5.9 apresentada anteriormente, os elementos em Azul são os que


contribuem para a realização da função de controle.

Os dispositivos básicos que devem fazer parte daquela área funcional são:
Unidade de controle (UC);
Decodificador;
Registrador de instrução (RI);
Contador de Instrução (CI) ou PC – Program Counter;
Relógio ou Clock;
Registradores de endereço de memória (REM) e de dados da memória (RDM).

A quantidade, a complexidade e a disposição dos componentes que realizam as


funções de controle variam consideravelmente de UCP para UCP, porém,
essencialmente, os dispositivos indicados (em azul na Figura 5.9) são os mesmos.
5.1.2.1. A Unidade de Controle:

É 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).

5.1.2.2. O Relógio:

É 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. A Figura 5.14 mostra um exemplo de um relógio (em geral, é um gerador de
cristal de quartzo) e os pulsos por ele gerados. 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 microinstruçã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. A Figura 3.14 mostra
o ciclo básico e os 5 subciclos gerados por um retardador (exemplo dos ciclos do
processador Intel 8085).

5.1.2.3. Registrador de Instrução - RI:

É o registrador que tem a função específica de armazenar a instrução a ser executada


pela UCP. Ao se iniciar um ciclo de instrução, a UC emite o sinal de controle que
acarretará a realização de um ciclo de leitura para buscar a instrução na memória (uma
cópia dela), e que, via barramento de dados e RDM, será armazenado no RI.

5.1.2.4. Contador de Instrução - CI:

É o registrador cuja função específica é armazenar o endereço da próxima instrução


a ser executada. Tão logo a instrução que vai ser executada seja buscada (lida) da
memória para a UCP (início do ciclo de instrução), o sistema providencia a
modificação do conteúdo do CI de modo que ele passe a armazenar o endereço da
próxima instrução na seqüência. Por isso, é comum definir a função CI como sendo a
de “armazenar o endereço da próxima instrução”, que é o que realmente ele faz
durante a maior parte da realização de um ciclo de instrução.
O CI é um registrador crucial para o processo de controle e de seqüenciamento da
execução dos programas.

T0

Relógio

T1
Gerador T2 Unidade
T3
De T4 De
Tempo T5 Controle
(a) Diagrama em Bloco do conjunto de tempo da área de
controle.
1 Subciclo = T0/5

T0

T1

T2

T3

T4

T5
1 Ciclo = T0
(b) Diagrama de tempo do ciclo do processador (T 0) e seus 5
subciclos.

Figura 5.14 – Diagrama em bloco da UC, mostrando o relógio e um conjunto de ciclos de tempo.

5.1.2.5. Decodificador de Instrução:

É um dispositivo utilizado para identificar as operações a serem realizadas, que estão


correlacionadas à instrução em execução. Em outras palavras, cada instrução é uma
ordem para que a UCP realize uma determinada operação. Como são muitas
instruções, é necessário que cada uma possua uma identificação própria e única. A
unidade de controle está, por sua vez, preparada para sinalizar adequadamente aos
diversos dispositivos da UCP, conforme ela tenha identificado a instrução a ser
executada.
O decodificador recebe na entrada um conjunto de bits previamente escolhidos e
específicos para identificar uma instrução de máquina (cada instrução tem um valor
próprio) e possui 2N saídas, sendo N a quantidade de algarismos binários do valor de
entrada.
A Figura 5.15 mostra um exemplo de configuração de decodificador com entrada de
4 bits e 16 saídas. Cada linha de saída aciona de modo diferente a UC e esta, por sua
vez, emite diferentes sinais de controle, conforme a linha de saída decodificada.

0 15
E0 a E2
Registrador Sinais de
Decodificador UC
de Instrução Controle

E – Entrada
S – Saída
SaS
(a) Diagrama em bloco da decodificação em uma UCP.

E3 S0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 E 0 E 1 E 2 S1 S2 S 3 S4 S5 S6 S7 S8 S9 S10
0 0 S11 S12 S13 S14 S15
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0 01 0 0 0 0 0 0 0 0 0 0 0
0 0 0
0 0 10 1 0 0 0 0 0 0 0 0 0 0
0 0 0
0 0 10 0 1 0 0 0 0 0 0 0 0 0
0 0 0
0 1 00 0 0 1 0 0 0 0 0 0 0 0
0 0 0
0 1 00 0 0 0 1 0 0 0 0 0 0 0
0 0 0
0 1 10 0 0 0 0 1 0 0 0 0 0 0
0 0 0
0 1 10 0 0 0 0 0 1 0 0 0
0 0 0 0 0
1 0 00 0 0 0 0 0 0 1 0 0
0 0 0 0 0
1 0 00 0 0 0 0 0 0 0 1 0 0 0
0 0 0
1 0 10 0 0 0 0 0 0 0 0 1 0 0
0 0 0
1 0 10 0 0 0 0 0 0 0 0 0 1 0
0 0 0
1 1 00 0 0 0 0 0 0 0 0 0 0 1
0 0 0
1 1 00 0 0 0 0 0 0 0 0 0 0 0
1 0 0
1 1 10 0 0 0 0 0 0 0 0 0 0 0
0 1 0
1 1 10 0 0 0 0 0 0 0 0 0 0 0
0 0 1

Figura 5.15 – Exemplo de um decodificador com 4 entradas e 16 saídas.

5.1.2.6. Registrador de Dados de Memória – RDM e Registrador de Endereços de


Memória - REM:

São os registradores utilizados pela UCP e memória para comunicação e transferência


de informação conforme já explicado. Em geral, o RDM (ou MBR – Memory Buffer
Register) possui um tamanho (capacidade de armazenamento de bits) igual ao da
palavra e do barramento de dados, enquanto o REM (ou MAR – Memory Address
Register) possui um tamanho igual ao dos endereços da memória (e,
consequentemente, do barramento de endereço do sistema). Pela definição de bits do
REM podemos calcular qual o espaço máximo de endereçamento da memória
principal de um computador.

Você também pode gostar