OC&SO07 - Microprocessador
OC&SO07 - Microprocessador
OC&SO07 - Microprocessador
Objetivos
• Entender o que é microprocessador.
• Conhecer os tipos de Microprocessadores.
• Conhecer e entender os componentes de um microprocessador.
• Conhecer e entender os componentes de microprocessadores: Unidade de Controle,
Unidade Lógica e Aritmética, Registradores etc.
• Conhecer os sistemas microprocessados.
• Entender o que é o Conjunto de Instruções de processadores.
• Conhecer e entender a diferença entre Processadores RISC e CISC.
• Conhecer e entender os Sistemas Multiprocessados.
• Entender as funções básicas do processador.
• Entender as fases do ciclo de máquina (instrução).
• Entender o que é Pipelining.
• Entender as funções dos Registradores de Instrução, Program Counter e de Endereço.
• Entender como funcionam os barramentos?
Introdução
No surgimento dos computadores, o Processador era composto por vários componentes separados.
Com a evolução da eletrônica, esses componentes foram integrados em um único chip (circuito
integrado) chamado microprocessador.
Microprocessador, UCP ou CPU é um chip construído e programado pelo fabricante para executar
instruções de máquina. É o cérebro do computador.
É um dispositivo lógico programável em um chip de silício, concebido sob a tecnologia VLSI (Very
Large Scale Integration – Escala de Integração Muito Alta), contendo bilhões de transístores. Age sob
o controle de um programa armazenado na memória RAM, executando operações aritméticas,
lógica booleana, tomada de decisão, além de entrada e saída, permitindo a comunicação com outros
dispositivos periféricos.
FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 1
Um programa, para ser executado pelo processador, deve ser constituído de uma série de instruções de
máquina armazenadas em células sucessivas da Memória Principal (MP). A CPU é responsável pelo
processamento e execução dos programas armazenados na Memória Principal e suas principais funções são
executar as instruções e controlar as operações no computador. Executa instruções internas (microcódigo
gravado pelo fabricante) em conformidade com as instruções dos programas que foram traduzidas para
instruções de máquina.
Tudo o que acontece em um computador é controlado pela CPU, que gerencia todos os recursos disponíveis
ao processamento dos dados. Ela é encaixada na placa-mãe ou mainboard que fica alojada dentro do gabinete
do computador.
Os principais fabricantes de microprocessadores são: Intel, Apple, AMD, Motorola, IBM, Sun, VIA, Power PC
etc.
Microprocessadores para PC: Intel Core i9, Core i7, Core i5, Core i3, Pentium 4, Xeon, Celeron, Sempron,
Athlon, Spark, Motorola 68000 etc.
Microprocessadores para smartphones: Samsung (Exynos), Nvidia (Tegrax), Apple (Ax), Qualcomm
(snapdragon), Intel (Atom).
A capacidade de uma CPU é medida em função de sua velocidade e do volume de dados que ela pode
processar. A velocidade é medida em milhões de ciclos por segundo, megahertz (MHz), ou bilhões de ciclos
por segundo, gigahertz (GHz). O volume de dados que uma CPU pode processar de cada vez também depende
do barramento frontal (FSB - Front Size Bus), também chamado de barramento da CPU ou barramento de
dados do processador. Maior desempenho pode ser alcançado quando a largura do FSB é maior, assim como
uma estrada pode transportar mais carros quando há muitas faixas. A largura do FSB é medida em bits. Os
computadores atuais usam FSB de 32 ou 64 bits.
Com o avanço da microeletrônica, componentes e características foram incorporados aos
microprocessadores, sendo atualmente constituídos basicamente por:
• Unidade de Controle (UC) controla a operação da CPU, portanto do computador. Busca
instruções na memória RAM, as decodifica e executa, requisitando a ULA quando necessário;
• Unidade lógica e aritmética (ULA) executa as funções de processamento de dados (operações
aritméticas, lógicas etc.);
• Registradores armazenam internamente dados e instruções para processamento; e
• Interconexão da CPU mecanismo que proporciona comunicação entre a UC, ULA e
Registradores;
• Memória cache memória adicional que auxilia o processador na busca por dados na RAM,
acelerando o processamento.
Tipos de Microprocessadores
Os microprocessadores de um modo geral podem ser: Processadores embarcados e de Uso geral.
Existem também os microcontroladores que são um pouco diferentes.
Sistemas embarcados: fabricados para executarem tarefas específicas, como criptografia,
processamento vetorial e gráfico etc. Possuem um conjunto limitado de instruções programadas em
ROM – flash e normalmente são empregados embarcados em algum dispositivo com a intenção de
controlar alguma operação específica. Um sistema embarcado ou fortemente embarcado usa um
microcontrolador em vez de um microprocessador, não é programável, pois a lógica do programa
foi “queimada” na ROM (Read Only Memory) e não tem interação com o usuário. Exemplos:
• Forno de micro-ondas: controle de tempo, temperatura, potência;
FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 2
• TV: gravação automática de programa em um HD para posterior visualização;
• Carro: controle da mistura ar/combustível;
• Industrial: controle de pressão em caldeiras;
• Aviões: centenas de processadores executando tarefas importantes de controle dos sistemas do
avião.
• GPUs: microprocessadores geralmente com memória dedicada e especialmente desenvolvidos
para cálculos gráficos.
Processadores de uso geral: utilizados em computadores de uso geral com programas e dados
armazenados em RAM.
4 bits 18 núcleos
Clock 740 Khz Turbo max 4.4 Ghz
2.300 transístores Cache 16MB
46 microinstruções Mem max 128GB
14 nm
Últimos desenvolvimentos
O processador Pentium da Intel, lançado em 2000 tinha frequência de trabalho (clock) em torno de
2 Ghz. A arquitetura Core desenvolveu fortemente o conceito de processadores com múltiplos
núcleos e múltiplas filas de tarefas (threads). Hoje o clock máximo está em torno de 4 Ghz, mas os
processadores podem ter 4, 6, 8, 10, 12, 24 ou mais núcleos.
O XEON E7-8894, de sétima geração Core, tem 24 núcleos que operam a 3.4 Ghz!
O Pentium foi desenvolvido com tecnologia de 90 nanômetros (1 nm = 10-9 m) e hoje trabalha-se
com 14 nanômetros e já estão em desenvolvimento processadores 10 nm, 7 nm e até 5 nm.
Mais informações na página http://ark.intel.com
Evolução dos Microprocessadores Intel
Instruções de máquina
A operação do processador é determinada pelas instruções que ele executa, conhecidas como
instruções de máquina ou instruções de computador. A coleção de diferentes instruções que o
processador pode executar é conhecida como conjunto de instruções. William Stallings
CPUs se diferenciam pela estrutura interna, tipo de tecnologia empregada na fabricação e, o mais
importante, seu conjunto de instruções (microcódigo). O conjunto de instruções é, grosso modo,
um programa escrito para controlar a CPU, e dificilmente pode ser executado diretamente em outra
CPU diferente.
Programas em diversas linguagens de alto nível são traduzidos para uma mesma linguagem
intermediária (nível ISA - Instruction Set Architecture) para serem então executados em um
hardware construído para executar diretamente instruções do nível ISA.
Para que um programa possa ser executado por um computador, ele precisa ser transformado em
instruções de máquina e estar armazenado em células sucessivas na memória principal. A partir daí,
a CPU é responsável pela execução dessas instruções armazenadas na memória.
A execução do programa é realizada pelo hardware, portanto o programa deve estar em linguagem
de máquina (uma sequência de instruções de máquina em binário).
Unidade de Controle - UC
A UC é a parte da CPU responsável pelo gerenciamento de todas as atividades do computador.
É responsável por gerar uma cadência de pulsos elétricos de sincronização transmitidos aos demais
componentes do sistema, o clock, que é medido em Hz (ciclos por segundo) e indica a frequência
com que os ciclos ocorrem. Algumas instruções são realizadas em apenas um ciclo de relógio (clock)
outras podem gastar várias.
O funcionamento da UC é coordenado pelos programas, que indicam o que deve ser feito e quando.
A UC busca na Memória Principal cada instrução do programa a ser executada e os dados envolvidos
nessa instrução, interpretando-a e estabelecendo as conexões elétricas correspondentes dentro da
Unidade Lógica e Aritmética (ULA).
Resumo das Funções
• Controlar a E/S (I/O - Input/Output);
• Executar as instruções;
• Comandar o funcionamento da ULA; e
• Informar às demais unidades o que fazer e quando.
FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 9
Quando a UC encontra uma instrução que envolve operações aritméticas: soma, subtração,
multiplicação ou divisão; ou lógicas and, or ou not, ela passa o controle para a ULA.
Registradores
São memórias localizadas internamente no processador e utilizadas para armazenamento
temporário de dados, de endereços de memória e de instruções, enquanto esses são manipulados
pelo processador.
Os registradores auxiliam a UC e ULA no processamento das instruções e são as memórias mais
rápidas e mais caras disponíveis no computador. A maioria das operações é realizada nos
registradores.
O tamanho dos registradores de uma CPU determina o tamanho dos números manipulados, e até a
velocidade com que realiza as operações.
Quanto maiores os registradores e maior sua quantidade numa CPU mais flexibilidade terão os
programadores e maior a capacidade de processamento da CPU. Processador de 32 ou 64 bits indica
que o tamanho dos registradores de memória é de 32 ou 64 bits.
Tipos de registradores
Registrador de Dados – Registradores que armazenam os dados (entrada e/ou resultados) durante
as operações na ULA. São chamados de R0 a Rn. Facilita operações complexas em hardware.
Registrador de Instrução (RI) – Registrador que armazena a instrução lida da memória que está em
execução na CPU.
Contador de Programa (PC) – Registrador que armazena o endereço da instrução sendo executada.
Depois da execução da instrução, o contador é incrementado para apontar para o endereço na
memória da próxima instrução a ser executada.
CISC
Caracteriza-se por possuir um grande conjunto de instruções, incluindo instruções complexas e
realizam tarefas complexas.
Facilita o trabalho do programador, uma única instrução realiza uma função complexa, que de outro
modo necessitaria de várias instruções do programa para ser realizada, assim, os programas são
menores, os programadores não precisam escrever um conjunto grande de instruções para realizar
uma tarefa complexa. Transfere a complexidade do software para o hardware.
Exemplo: Imagine a multiplicação dos números A e B armazenados nas posições de memória 2 e 5,
e armazenamento do resultado na posição 2.
Numa abordagem RISC poderia ser:
MOV [A, 2] – Move o valor A para posição de memória 2
MOV [B, 5] - Move o valor B para posição de memória 5
MUL [A, B] – Multiplica A com B
MOV [A, 2] - Move o novo valor A para posição de memória 2
RISC
Caracteriza-se por possuir conjunto de instruções pequeno e simples, realizam funções simples. A
grande maioria delas executada em apenas um ciclo de clock.
Maioria não necessita de decodificação, são praticamente as instruções da linguagem de máquina,
tornando o processador mais rápido. As instruções complexas são simuladas utilizando um
subconjunto de instruções simples. Por ser mais simples são mais genéricas e podem ser associadas
para realizar funções complexas.
A programação é mais difícil e demorada, porque a maioria das instruções complexas é simulada
utilizando instruções simples. Os programas são maiores e usam menos eficientemente a memória.
Uma vantagem dos processadores RISC, é que, por terem um menor número de circuitos internos,
podem trabalhar a frequências mais altas.
Resumidamente, RISC tem set de instruções menores, processadores menores e menor custo.
Embora tenha vantagens, o RISC não substituiu o CISC, pois apresenta o inconveniente de utilizar
grande quantidade de memória. Com o passar do tempo e o barateamento das memórias o RISC
passou a ser usado em workstations. Hoje, os processadores atuais se utilizam das duas
características.
Algumas CPUs bem conhecidas que usam RISC são PowerPC e ARM (Advanced RISC Machine).
Exemplo: Para se desenhar uma reta na tela, necessita-se resolver a equação do primeiro grau para
encontrar os valores X e Y (coordenadas do ponto XY)
Y = aX + b → equação da reta
X1 → Y1
X2 → Y2
Plot (X1, Y1, C) – função simples que plota um ponto de coordenadas X1, Y1 na cor C
Line (X1, Y1, X2, Y2, C) – Esta função line é mais complexa e plota todos os pontos que compõem a
reta, partindo do ponto inicial X1, Y1 até o ponto final X2, Y2.
Na execução de instruções complexas os processadores CISC se saem melhor. Por isso, ao invés da
vitória de uma das duas tecnologias, atualmente vemos processadores híbridos, que são
essencialmente processadores CISC, que incorporam muitos recursos encontrados nos
processadores RISC (ou vice-versa).
Pipeline
Registradores
Registradores são pequenas memórias localizadas no processador que mantem dados
temporariamente durante a operação na CPU.
Principais Registradores:
Registradores de Dados: Utilizado para armazenar dados a serem operados durante a execução da
instrução. Os registradores de dados são designados como R0 a Rn.
Registrador de Instrução (RI ou IR - Instruction Register): Registrador que armazena a instrução em
execução (Ex. ADD, MOV etc.)
Contador do Programa ou PC (Program Counter): Armazena o endereço da instrução em execução.
Terminada a execução o PC é incrementado para apontar para o endereço da próxima instrução na
memória principal, a ser executada.
Interconexão de subsistemas
As informações trafegam entre os três subsistemas de um computador (CPU, Memória e Dispositivos
de E/S).
CPU e memória são conectadas pelos barramentos de dados, de endereços e de controle.
Barramento de Endereços
Permite acesso a determinada palavra na memória RAM. A quantidade de memória endereçável
depende do número de linhas de conexão (bits do barramento, largura do barramento). Se o
barramento tiver n bits, é possível endereçar 2n palavras (bytes).
Exercício:
Qual quantidade máxima de memória é possível endereçar com um barramento de endereço de 16
bits e de 32 bits?
16 bits → 216 = 210 x 26 = 1024 x 64 = 64 KB (K = 1024)
32 bits → 232 = 210 x 210 x 210 x 22 = 1024 x 1024 x 1024 x 4 = K x K x K x 4 = M x K x 4 = G x 4 = 4 GB
Barramento de Dados
Transmite dados entre os componentes é composto por linhas de conexão, cada uma delas
transportando 1 bit por vez. O número de linhas de conexão (largura do barramento) depende do
Barramento de Controle
Estabelece a comunicação entre a CPU e a memória RAM. Existem códigos, enviados da CPU para
memória, especificando uma operação como leitura ou escrita.
O número de linhas de conexão utilizadas no barramento de controle depende do número total de
comandos de controle que o computador possui.
Se um computador tiver 256 ações de controle, precisamos de 8 linhas de conexão para o
barramento de controle, 28 = 256 diferentes operações, largura do barramento de controle é 8 bits.
Processador - Palavra
Palavra é a unidade de informação usada por cada tipo de computador. É quantidade de bits de
tamanho fixo que é processada em conjunto. O tamanho da palavra (número de bits em uma
palavra) é uma característica importante da arquitetura do computador. Ela indica a unidade de
transferência entre a CPU e memória principal (quantos bits trafegam ao mesmo tempo).
A capacidade de processamento de uma CPU é influenciada pelo tamanho da palavra. O tamanho
da palavra determina o tamanho da ULA, do barramento interno e dos registradores.
Para melhor desempenho, o Barramento de Dados deve ter o tamanho da palavra, se a largura do
barramento for menor, por exemplo, metade da palavra, seriam necessários dois ciclos de tempo do
barramento para transporte de uma palavra.
Clock - Relógio
Dispositivo gerador de pulsos cuja duração é chamada de ciclo. A quantidade de vezes que o pulso
se repete em um segundo define a frequência (ciclos/seg ou Hz).
A frequência define a velocidade do processador.
Durante um ciclo de clock ocorre a realização de uma operação elementar do ciclo de máquina ou
de instrução.
Processamento Paralelo
Tradicionalmente, os computadores eram constituídos de uma única Unidade de Controle, uma
única Unidade Lógica e Aritmética e uma única unidade de Memória. Com a evolução da tecnologia,
os computadores passaram a ter diversas unidades de controle, várias unidades Lógicas e
Aritméticas e diversas unidades de Memória.
Essa ideia é o que se chama de Processamento Paralelo. Assim, como o Pipeline o processamento
paralelo pode melhorar o throughput.
De acordo com M. J. Flynn, o processamento paralelo pode ocorrer nos fluxos de dados, fluxos de
instruções ou ambos.
O Processamento Paralelo apresenta-se como:
SISD – Single Instruction-Stream, Single Data-Stream (Único fluxo de instruções e único fluxo de
dados);
Uma unidade de controle, uma unidade lógica e aritmética e uma unidade de memória.
SIMD - Single Instruction-Stream, Multiple Data-Stream (Único fluxo de instruções e múltiplos fluxos
de dados). Computador possui uma unidade de controle, várias unidades de processamento e uma
unidade de memória.
Vários fluxos de instruções operam no mesmo fluxo de dados. Nunca foi implementado!
MIMD - Multiple Instruction-Stream, Multiple Data-Stream. Diversas instruções pertencentes a
vários fluxos de instruções operam simultaneamente vários fluxos de dados.
Questionário 04 - Microprocessador
1. O que é microprocessador?
2. Quais as partes constitutivas de um microprocessador?
3. O que é o Conjunto de Instruções de um processador?
4. O que é Unidade de Controle e quais suas funções?
5. O que é Unidade Lógica Aritmética e quais suas funções?
6. O que é registrador?
7. Descreva as funções dos Registradores de Dados.
8. Descreva as funções do Registrador de Instrução.
9. Descreva as funções do Contador de programa.