Unidade Central de Processamento (CPU)
Processador
Bernardo Gonalves
Introduo ao Computador
2008/01
Componentes de um Computador (1)
Computador Eletrnico Digital
um sistema composto por:
Memria Principal e Secundria
Unidade Central de Processamento (CPU Central Processing
Unit) ou Processador
Unidades de Entrada/Sada (I/O Input/Output Unit)
Barramentos (vias de interligao)
Componentes de um Computador (2)
Memria
Funo: Armazenar dados e programas (conjunto de
instrues), permitindo o processamento automtico
dos dados.
Tipos:
Memria Principal (MP)
Memria Secundria (MS)
Para serem executados pela CPU, os programas devem
estar armazenados na MP.
Componentes de um Computador (3)
Memria Principal (MP)
Limitada (armazena somente alguns programas e dados).
a memria de trabalho, nela so carregados todos os programas e dados
usados pela CPU no momento.
Geralmente o seu contedo ser perdido uma vez que o computador seja
desligado.
Ex.: RAM (Random Access Memory)
Memria Secundria (MS)
Grande capacidade de armazenamento
Mais lentas do que a MP
Geralmente no-volteis, permitindo guardar os dados permanentemente.
Ex.: Discos rgidos (HD - Hard Disk), CDs, DVDs, disquetes, etc.
Componentes de um Computador (4)
Unidade Central de Processamento Processador
Funo: Executar os programas armazenados na MP, buscando
cada instruo, interpretando-a e em seguida a executando.
Unidade de Controle (UC): busca instrues na MP e determina
o tipo de cada instruo.
Unidade Lgica e Aritmtica (ULA): realiza um conjunto de
operaes necessrias execuo das instrues.
Conjunto (Banco) de Registradores: pequena memria de alta
velocidade, usada para armazenar resultados temporrios e certas
informaes de controle.
Componentes de um Computador (5)
Dispositivos de Entrada/Sada
Funo: Servem para a comunicao do computador
com o meio externo.
Transformam e transferem da representao interna dos
dados (sinais eletrnicos usados no computador) para a
representao externa usada por pessoas ou vice-versa.
Ex.: impressoras, teclados, mouses, monitores, caixas
de som, etc.
Componentes de um Computador (6)
Componentes de um Computador (7)
Barramentos (Bus)
Funo: interconectar os demais elementos bsicos.
Nesse modelo, possvel transferncia direta de dados entre os
dispositivos de E/S e a memria
Transferncia feita por dispositivos especiais
Controlador de DMA (Direct Memory Access) ou processador E/S
Assumem momentaneamente o controle do barramento e isolam a
comunicao CPU com a memria e dispositivos E/S.
Componentes de um Computador (9)
Tipos de barramentos:
Barramento de Dados: responsvel pela transferncia de dados
e instruo entre os dispositivos.
de trs estados entre a memria e a CPU e unidirecional com a
possibilidade de desconexo eltrica nos dispositivos E/S.
Barramento de Endereos: conduz o endereo a ser selecionado
na memria ou dispositivos E/S.
geralmente unidirecional entre a CPU (que define o endereo) e a
memria e os dispositivos E/S.
Barramento de Controle: transfere os sinais de controle que
ativam ou desativam os dispositivos, que selecionam determinado
modo de operao ou sincronizam os circuitos.
Formam a Arquitetura de Barramentos
Componentes de um Computador (10)
Unidade Central de Processamento - CPU (1)
O processador o crebro do computador
Funo: Executar os programas armazenados na memria principal,
buscando cada uma das instrues do programa, examinando-as, e
executando-as uma aps a outra.
Gera sinais de controle, alm de reconhecer e responder sinais
externos (interrupes)
A CPU responsvel pela superviso e controle de todo o
funcionamento da mquina e pela realizao das operaes lgicas e
aritmticas sobre os dados
Clock (ou Relgio) a referncia de tempo necessria a CPU.
Circuito eletrnico oscilador que gera uma forma de onda quadrada,
essencial para o seqenciamento das operaes eletrnicas realizadas pela
CPU.
Est relacionado com a freqncia (taxa) de operao do processador.
Unidade Central de Processamento - CPU (2)
Seo de Controle
Unidade de Controle (UC): responsvel pela busca
das instrues na memria principal, sua decodificao
e execuo.
Controla todos os componentes e dispositivos de um
computador, emitindo sinais eltricos (pulsos de
controle).
A UC inicia ou termina a leitura de dados, controla o
armazenamento de palavras na memria, a execuo de
uma instruo, o incio de uma operao aritmtica, etc.
Unidade Central de Processamento - CPU (3)
Seo de Controle
Contador de Instruo (Program Counter PC):
quem armazena o endereo da (aponta para a)
prxima instruo a ser executada. Determina a
seqncia (fluxo) de execuo de um programa,
endereando instruo por instruo
Registrador de Instrues (Instruction Register
RI): armazena (contm) a instruo que est sendo
executada.
Unidade Central de Processamento - CPU (4)
Seo Lgica e Aritmtica
Unidade de Lgica e Aritmtica (ULA): possui os
circuitos necessrios para executar operaes lgicas e
aritmticas.
Exemplos: Somas, subtraes, determinao de sinal,
comparaes algbricas de nmeros, verificar se um nmero
maior ou menor que zero, etc.
Possui tambm pelo menos um registrador encarregado
de armazenar nmeros a serem operados pela ULA ou
resultados de operaes. Esse registrador chamado de
Acumulador (ACC).
Ex. 1 (circuitos ULA): Comparadores
Existem tambm redes
de comparadores em
que a sada pode
assumir valores do
conjunto (G,E,S)
(Greater, Equal, Smaller)
Ex. 2 (circuitos ULA): Somadores
No se pode imaginar um computador sem um somador
Meio-Somador
Adequado para somar os bits de mais baixa ordem de duas palavras
Unidade Central de Processamento - CPU (5)
Conjunto (Banco) de Registradores
Memria interna de pequena capacidade de
armazenamento, mas de alta velocidade, usada para
armazenar resultados temporrios e certas informaes
de controle
Formada por:
Registradores de uso geral: acessveis ao usurio no nvel
convencional de mquina
Registradores de uso especfico: acessveis diretamente
apenas pela UC durante a execuo de um programa.
Unidade Central de Processamento - CPU (6)
CPU Genrica
Unidade Central de Processamento - CPU (7)
Instrues
So comandos atmicos fornecidos ao computador para que ele
execute uma tarefa especfica (soma, teste, desvio, etc)
Uma srie dessas instrues constituem um programa.
Cada processador tem um repertrio particular de instrues, cuja
rapidez de execuo um fator determinante na potncia de
computao (performance) da mquina
Conforme proposto por Von Neumann, as instrues, tal qual os
dados, devem residir na MP, e dispostas sequencialmente.
A seqncia de execuo pode ser alterada por Instrues de
Desvio
Unidade Central de Processamento - CPU (8)
Formato das Instrues
Cdigo da Instruo Operando - Op
(OpCode) (Informao Complementar)
OpCode: identifica a instruo a ser efetuada
Op: identifica sobre o que (quem) a instruo manipular
Existem instrues de 1, 2 ou 3 operandos
O tamanho do OpCode indica o nmero mximo de instrues da
mquina.
n bits => at 2n instrues
Unidade Central de Processamento - CPU (9)
Palavras so as unidades de dados movidas entre a
memria e os registradores.
Instrues Registrador-Memria
Permitem que o contedo de palavras de memria seja
armazenado nos registradores (load) ou contedos de
registradores armazenados na memria (store)
Referncias a uma palavra deve ser feita atravs de Endereos.
Instrues Registrador-Registrador
Tpico: busca dois operandos em registradores, coloca-os nas
entradas da ULA, realiza alguma operao sobre eles, e armazena o
resultado em um dos registradores
Determina uma caminho de dados
Unidade Central de Processamento - CPU (10)
Caminho de Dados
Registradores
ULA
Controlado pela UC
A velocidade do ciclo do
caminho de dados (Ciclo
de Instruo) determina,
em ltima anlise, a
velocidade do
processador.
Unidade Central de Processamento - CPU (11)
Ciclo de Instruo
Conjunto de aes (operaes) realizadas pela CPU para completar
a execuo de uma instruo
Divide-se em Ciclo de Busca (Fetch Cycle) e Ciclo de
Execuo (Execution Cycle).
Ciclo de busca
1. A UC l (busca) a instruo na memria e carrega (armazena) a
instruo em RI para ser decodificada e executada.
2. Atualizao do valor de PC (incremento), fazendo-o apontar para a
instruo seguinte
Unidade Central de Processamento - CPU (12)
Ciclo de execuo
3. Determinao do tipo de instruo que est armazenada em RI
(decodificao)
4. Determinao de onde (endereo) uma palavra ser armazenada,
caso necessrio
5. Busca da palavra, se necessrio, e armazenamento em um dos
registradores do processador
6. Execuo da instruo
7. Retorno ao passo 1 para iniciar a execuo da instruo seguinte
Unidade Central de Processamento - CPU (13)
Programa Interpretador
Equivalncia em software do Ciclo de Instruo realizado em
hardware
Emular um processador: interpretando instrues atravs de
software
Pode ser feito, por exemplo, em C
Paralelismo (1)
Maior gargalo para a velocidade de execuo de
instrues o acesso memria
Execuo em Pipeline
O processamento em pipeline divide a execuo de
instrues em vrias partes, cada uma das quais tratada
por um hardware dedicado exclusivamente a ela.
Paralelismo (2)
Multiprocessadores
composto de vrios processadores independentes que
compartilham uma mesma memria por um barramento
principal
Podem ter tambm memrias locais
Executam processamentos locais
Liberam trfego do barramento principal
necessrio gerenciar conflitos
Paralelismo (3)
(a) Multiprocessador sem memrias locais. (b) Multiprocessador com
memrias locais.
Desempenho de Computadores (1)
Medindo o Desempenho
Sistema Multiprogramado (sistema em que vrios usurios ou
programas compartilham a mesma CPU)
Tempo de execuo de um programa pode ser descrito por:
User CPU time: tempo de CPU gasto pelo usurio
System CPU time: tempo de CPU gasto pelo sistema
I/O (Input/Output) time: tempo gasto com entrada/sada
Existem programas prprios para testar o desempenho de um
computador. Normalmente so chamados de benchmarks.
Desempenho de Computadores (2)
Princpios Quantitativos para o Projeto de Computadores
O principal princpio a ser seguido : Torne mais rpidas as tarefas mais
freqentes
Lei de Amdahl
A quantidade de melhoria de desempenho provida por um atributo da
arquitetura limitada pela quantidade de tempo que este atributo
utilizado.
A lei de Amdahl define o speedup, que pode ser obtido por um atributo
particular de um sistema.
Speedup = Tempo de execuo da tarefa inteira sem usar o novo atributo
Tempo de execuo da tarefa inteira usando o novo atributo quando possvel
Desempenho de Computadores (3)
Desempenho da CPU
O tempo de execuo T de um programa em uma determinada CPU, pode
ser expresso por:
T (segundos) = N (instruo) x C (ciclos/instruo) x S (segundos/ciclo)
N o nmero total de instrues executadas
C (ou clocks por instruo Clocks per Instruction (CPI)): a mdia do nmero
de ciclos por instruo
S o nmero de segundos por ciclo
Quanto menor o tempo, maior o desempenho.
N, C e S so afetados primariamente: pela capacidade de otimizao do
compilador; pela arquitetura do processador e de seu conjunto de
instrues; e pela tecnologia empregada na implementao da mquina.
Desempenho de Computadores (11)
Exerccio: Um projetista de compiladores est tentando decidir sobre
qual seqncia de instrues ele deve utilizar para implementar um
comando de uma linguagem de alto nvel. Ele dispe das seguintes
informaes:
Existem duas seqncias de instrues possveis para implementar o
comando.
Seqncia 1: duas instrues A, uma B e duas C;
Seqncia 2: quatro A, uma B e uma C.
Na mquina alvo, a instruo A tem o CPI de 1, B tem CPI de 2, e C de 3.
1 - Que seqncia de cdigo executa mais instrues? 2 - Qual seqncia
executa mais rpido? 3 - Qual o CPI para cada seqncia?
Respostas:
1: seq1 = 2+1+2 = 5 instrues; seq2 = 4+1+1 = 6 instrues, logo, resposta =
seq2
2: seq1 = 2x1 + 1x 2 + 2x3 = 10 ciclos; seq2 = 4x1 + 1x2 + 1x3 = 9 ciclos
3: CPI(seq1) = 10 ciclos/5 instrues = 2 CPI; CPI(seq2) = 9 / 6 = 1.5 CPI
Referncias
Andrew S. Tanenbaum, Organizao Estruturada de Computadores, 4
edio, Prentice-Hall do Brasil, 2001.
John L. Hennessy and David A. Patterson, Arquitetura de Computadores:
Uma Abordagem Quantitativa. 3 edio. Editora Campus, 2003.
Lcia Helena M. Pacheco, Viso Geral de Organizao Estruturada de
Computadores e Linguagem de Montagem. Universidade Federal de
Santa Catarina. Centro Tecnolgico, Departamento de Informtica e de
Estatstica.