capítulo 3 organização interna de um computador · capítulo 3 – organização interna de um...

8

Click here to load reader

Upload: lamkhuong

Post on 13-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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

3.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 3.1) até que o sistema seja desligado,

ou ocorra algum tipo de erro, ou seja, encontrada uma instrução de parada. Figura 3.1 – Ciclo de Instrução.

As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais:

função processamento e função controle.

3.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.

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

Page 2: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

É 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 3.2, 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 3.2 –

Esquema da UCP,

destacando-se os em

amarelo os elementos

que contribuem para

a realização da

função processamento.

3.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 3.3

e 3.4 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

Page 3: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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.

Figura 3.3 – Diagrama (simplificado) em bloco da UCP Intel 8085, apenas com os dispositivos

básicos da área de processamento.

Figura 3.4 – Diagrama (simplificado) em bloco da UCP Intel 8086, mostrando apenas os

dispositivos básicos da área de processamento.

3.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 3.5.

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 3.6.

Operação de soma no sistema 1:

B = C = D = E = H = L = 8 bits

ULA = 8 bits

ACC Reg. Temp. Flags

ULA

Reg. B Reg. C

Reg. E Reg. D

Reg. H Reg. L

Barramento Interno

Reg. Temp.

Flags

ULA

Reg. Temp. AH AL

BL BH

CH CL

OH DL

Barramento Interno

Reg. de Emprego geral

AH + AL += 16 bits

ULA = 16 bits

Page 4: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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 T1.

A Figura 3.5 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 3.6 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 T2 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.

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 3.5 – Exemplo de uma operação de soma de 2 números, A e B, em um computador com palavra de 8 bits.

(1 C 25+2 a )

3 A+17 (2 a )

ULA

8 bits

ACC = 8 bits

Barr amento de dados

8 bits

UCP

0

MP

≈ ≈

3 A

25

17

2 C

8 bits

8 bits

A

B

UCP – Palavra de 8 bits

Page 5: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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 3.6 – 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”).

3.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

3 A25+172C (1 a )

ULA

16 bits

ACC = 16 bits

Barramento de dados

16 bits

UCP

0

MP

3 A

25

bits 8

bits 8

A

B

UCP – Palavra de 16 bits

Page 6: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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 3.2 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 3.2) são os mesmos.

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

3.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 frequência, a

qual também usamos para definir velocidade na UCP. A Figura 3.7 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.7 mostra o ciclo

básico e os 5 subciclos gerados por um retardador (exemplo dos ciclos do processador Intel 8085).

3.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.

3.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

Page 7: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

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 sequê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 sequenciamento da execução dos

programas.

T0

(a) Diagrama em Bloco do conjunto de tempo da

área de controle.

(b) Diagrama de tempo do ciclo do processador (T0) e seus 5 subciclos.

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

3.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 3.7 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.

Relógio

Gerador

De Tempo

Unidade

De Controle

T 1 T 2 T 3 T 4 T 5

T 1

T 2

T 3

T 0

T 4

T 5

1 Ciclo = T 0

Subciclo = T 1 0 /5

Page 8: Capítulo 3 Organização Interna de um Computador · Capítulo 3 – Organização Interna de um Computador 3.1 UNIDADE CENTRAL DE PROCESSAMENTO A Unidade Central de Processamento

S a S

(a) Diagrama em bloco da decodificação em uma UCP.

E0 E1 E2S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15

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 3.8 – Exemplo de um decodificador com 4 entradas e 16 saídas.

3.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.

E3 S0

0 1

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

1 0

Registrador

de Instrução UC

E 0 a E 2

0 15

Decodificador Sinais de Controle

E – Entrada

S – Saída

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0