OC&SO07 - Microprocessador

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 25

Fatec Taubaté

Tecnologia em Análise e Desenvolvimento de Sistemas - AMS


Organização de Computadores e Sistemas Operacionais
Microprocessador
[email protected]

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.

Intel 4004 – 1º microprocessador Microprocessador Intel Core i9

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

Microprocessador aumentado 600 X

Evolução dos Microprocessadores


Inventados na década de 70 pela Intel, incorporado pela IBM (Intel 8088) em sua invenção
revolucionária, o IBM-PC em 1980, definindo a família x86 da Intel.
Apple lançou seu PC Macintosh com microprocessador diferente da família Intel, utilizando a família
Motorola 68.000.
Processadores da família Intel x86 são compatíveis e processadores AMD também são considerados
família x86, ou seja, possuem conjunto de instruções x86.
O desempenho de processadores é medido em MIPS (Milhões de Instruções Por Segundo).

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 3


No projeto do processador, define-se o seu conjunto “set” de instruções (conjunto de instruções
elementares que o hardware é capaz de executar). O conjunto de instruções embutido nos circuitos
da UC, é uma lista de todas as operações que a CPU foi projetada para executar.
O conjunto de instruções é uma das mais básicas decisões a ser tomada pela equipe de engenheiros
projetistas. Quanto menor e mais simples for este conjunto de instruções, mais rápido pode ser
executado o ciclo de instruções do processador.

Ú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

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 4


FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 5
FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 6
História dos processadores usados pela Apple
Veja a evolução dos computadores e processadores Apple no endereço:
https://www.techtudo.com.br/noticias/noticia/2014/10/confira-evolucao-dos-computadores-de-
mesa-da-apple-desde-origem.html

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.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 7


CPUs fabricadas por empresas diferentes, normalmente tem conjuntos de instruções diferentes.
CPUs da mesma empresa de modelos diferentes também podem ter seus conjuntos de instruções
diferentes.
Fabricantes agrupam CPUs em famílias com set de instruções semelhantes.
Exemplos:
• Família Intel 80x86 (8086, 80286, 80386, 80486, Pentium 80586, core x86-64 etc.)
• Motorola família 680xx (68010, 68020, 68030 etc.)
Elementos da CPU
A CPU contém a lógica e os circuitos para fazer o computador funcionar, mas ela não possui espaço
(memória) para armazenar programas e dados. Embora a ULA (Unidade Lógica e Aritmética) possua
um grupo de registradores estes só armazenam poucos bytes de cada vez. A CPU constitui-se de:
• UC (Unidade de Controle) - tem por funções a busca, interpretação e controle de execução das
instruções, e o controle dos demais componentes do computador.
• ULA (Unidade Lógica e Aritmética) – todas as instruções que o processador executa lidam com
operações lógicas e/ou aritméticas. A ULA tem a função de executar essas operações.
• Registradores – são memórias internas a CPU de alta velocidade que auxiliam nas operações.

Diagrama funcional de uma CPU

RDM – Registrador Dados de Memória

REM – Registrador Endereço de Memória

REGs – Registrador Propósito Geral

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

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 8


Um programa em linguagem de máquina é composto de códigos binários, representando instruções,
endereços e dados, vinculado ao conjunto “set” de instruções do processador.
Cada comando precisa ser detalhado, dividido em pequenas etapas de operações, que são
dependentes do conjunto de instruções do processador e individualmente executáveis.
O programa elaborado pelo programador, o código-fonte, composto de instruções complexas de
alto nível, precisa ser "traduzido" para pequenas operações elementares (primitivas) executáveis
pelo processador. Cada uma das instruções tem um código binário associado denominado código da
operação.
Entendendo instrução de máquina
Consideremos uma instrução em linguagem de alto nível como C, Pascal, Python etc. como a
seguinte:
X=X+Y
Esta instrução orienta o computador a somar o valor armazenado em Y ao valor armazenado em X,
colocando o resultado em X. Como isso poderia ser feito com instruções de máquina?
Vamos supor que as variáveis X e Y correspondam aos locais 513 e 514 da memória. Considerando
um conjunto simples de instruções de máquina, essa operação poderia ser realizada com três
instruções:
1. Carregue um registrador com o conteúdo do local de memória 513.
2. Some o conteúdo do local de memória 514 a esse registrador.
3. Armazene o conteúdo do registrador no local de memória 513.
Como vemos uma única instrução numa linguagem de alto nível pode exigir três instruções de
máquina.
Qualquer programa escrito em uma linguagem de alto nível, para ser executado, precisa ser
traduzido para linguagem de máquina, dessa maneira, o conjunto de instruções de máquina precisa
ser suficiente para expressar qualquer uma das instruções de uma linguagem de alto nível.

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.

Unidade Lógica e Aritmética - ULA


A ULA é a responsável por realizar operações Aritméticas, Lógicas e de Deslocamento (shift).
Operações aritméticas são operações de caráter aritmético, tais como as 4 operações básicas.
Operações lógicas são como NOT, AND, OR etc.
Operações de deslocamento: podem ser deslocamento lógico e deslocamento aritmético. Lógico
desloca padrões de bits para esquerda ou direita. Aritmético são aplicadas a números inteiros para
multiplicar e dividir por 2.
Exemplo:
Imagine a multiplicação e divisão por 2 do número binário 0110 (2), que é 6(10). Na verdade, o
processador não realiza a multiplicação ou divisão por 2, apenas executa as operações shift left
(desloca para esquerda) e shift right (desloca para direita). Assim,
shift left em 0110 resulta 1100 que é 12 (6 x 2), e
shift right em 0110 resulta 0011 que é 3 (6/2).
Portanto, as operações de multiplicação e divisão por 2 são apenas operações shift, que são mais
rápidas.

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.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 10


Desempenho de processadores
Vários fabricantes de CPU complementam sua CPU com recursos para melhorar o desempenho. Por
exemplo, a Intel incorpora o hyper-threading para aumentar o desempenho de algumas de suas
CPUs. Com o hyper-threading, vários trechos de código (threads) são executados simultaneamente
na CPU. Para um sistema operacional, uma única CPU com hyper-threading funciona como se
houvesse duas CPUs quando várias threads estão sendo processadas. Os processadores AMD usam
HyperTransport para aumentar o desempenho da CPU. O HyperTransport é uma conexão de alta
velocidade entre a CPU e o Northbridge do chipset.
Overclocking é uma técnica usada para fazer um processador trabalhar com uma velocidade maior
que sua especificação original. O overclocking não é uma forma recomendada de melhorar o
desempenho do computador e pode resultar em dano à CPU. O oposto de overclocking é a redução
da frequência (downclocking ou underclocking) da CPU. A redução da frequência da CPU é uma
técnica utilizada para preservar energia ou produzir menos calor, fazendo o processador operar
numa velocidade menor que a velocidade nominal. A redução de frequência é comumente usada
em notebooks e outros dispositivos móveis.

Processadores RISC e CISC


Processadores, conforme o projeto do set de instruções desenvolvido pelo fabricante, apresentam-
se como:
• CISC: Complex Instruction Set Computer
• RISC: Reduced Instruction Set Computer

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

Numa abordagem CISC:


MUL [2, 5] – Multiplica o valor da posição de memória 2 pelo valor da posição de memória 5.
Uma característica é que instruções complexas realizam tarefas muito especificas. Os circuitos da
CPU (UC e ULA) são muito complicados, maiores, mais difícil fabricação e mais caro.
Programação feita em dois níveis. Instruções complexas são transformadas em um conjunto de
instruções simples (micro-operações), armazenadas na micromemória na UC.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 11


Algumas CPUs conhecidas que usam o CISC são: Intel família x86 (80386, 80486) e Motorola 68x.
Obs.: Pesquisa IBM concluiu que 10% das instruções realizavam 90% das tarefas. Aquelas instruções
que raramente eram usadas poderiam ser eliminadas sem que houvesse perda de qualquer
funcionalidade. Esta ideia da redução do conjunto de instruções, deixando de for a todas as
instruções que não fossem absolutamente necessárias, substituindo as instruções mais complexas
por conjuntos de instruções mais simples, foi o que esteve na origem do RISC.

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.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 12


Analogia RISC X CISC - Preparação de um hambúrguer

Sequência de instruções para preparar um Big-burguer


CISC → 1 – 5 – 10 – 12 - 13
RISC → 1 – 2 – 8 – 3 – 8 – 9 – 4 – 5 – 7 – 9 – 10

Resumo diferenças CISC x RISC

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

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 13


Sistemas Multiprocessados
Sistemas multiprocessados são sistemas com múltiplos processadores e caracterizados pela
execução simultânea de duas ou mais instruções, utilizando os processadores. Sistemas
multiprocessados possibilitam que vários programas sejam executados em paralelo, ou que um
programa tenha duas ou mais de suas instruções executadas em paralelo.
O multiprocessamento pode ocorrer em um único processador (time sharing), em processadores
que compartilham uma mesma memória primária (fortemente acoplados) ou em múltiplos
computadores independentes, com o uso de sistemas operacionais de rede ou sistemas operacionais
distribuídos (fracamente acoplados). No caso de computadores independentes, cada um tem seus
próprios recursos.
Sistemas Fortemente e Fracamente Acoplados
Sistemas multiprocessados podem ser classificados como fortemente acoplados e fracamente
acoplados, conforme a utilização de memória e a forma de comunicação entre os processadores.
Fortemente acoplados são classificados em Simétricos e Assimétricos. São sistemas com mais de
um processador ligado no mesmo barramento. Existe processamento paralelo, aumento a
capacidade de processamento, compartilhamento da memória e de periféricos e também tolerância
a falhas (se um processador parar, o outro continua funcionando).
Fracamente acoplados, os processadores estão em diferentes máquinas e caracterizam-se por
possuir sistemas operacionais de rede e sistemas operacionais distribuídos. Dependem dos
recursos de rede para distribuir as tarefas de processamento, ou seja, as CPUs estão em
computadores diferentes. Cada computador tem seu próprio sistema operacional e gerência seus
próprios recursos.
Sistemas Multiprocessados

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 14


Multiprocessamento Simétrico
Sistemas Simétricos SMP (Symmetric Multi-Processor - multiprocessador simétrico), são uma forma
de paralelismo, onde um grupo de processadores trabalha em conjunto, compartilhando uma única
memória através de um único barramento. É possível qualquer processador executar uma parte do
processo.
Os sistemas SMP requerem alguma forma de memória compartilhada e suporte do sistema
operacional, além de aplicações que saibam tirar proveito do paralelismo. Os sistemas modernos
como Linux, Windows, Mac OS e membros da família Unix suportam SMP.
Multiprocessamento Assimétrico
Nos sistemas de multiprocessamento assimétrico, os processadores não são tratados igualmente.
Existe um processador mestre que controla o sistema, distribuindo tarefas para os processadores
escravos.
Solução antiga que permitia adicionar mais um processador a um sistema desenvolvido para
trabalhar com um único processador. Essa solução foi usada nos anos 1960 e 1970, como exemplo
existe o modelo IBM System/370, onde era possível adicionar mais um processador.
Sistemas Operacionais de Rede
Network Operating System (NOS) ou Sistema Operacional de Rede (SOR) são sistemas
independentes, cada um rodando numa máquina e em rede. Um sistema operacional de rede
propicia protocolos para comunicação e transferência de dados entre os usuários e servidores da
rede. Cada nó na rede é independente e executa suas próprias aplicações.
Usado para gerenciar a preparação, transmissão e recepção de dados entre computadores em rede.
Com o NOS, o acesso a recursos em rede se passa de forma transparente para o usuário, com a
sensação de que os recursos são locais.
Localmente, o usuário continua com o seu sistema operacional, e o NOS pode ser visto como uma
camada adicional que facilita o acesso aos recursos em rede.
Sistemas Operacionais Distribuídos
Sistema Operacional Distribuído é composto por uma coleção independente de computadores em
rede, mas que para o usuário aparenta ser um só. O hardware é composto de máquinas autônomas
e o software fornece ao usuário a abstração de ser uma única máquina. O sistema operacional que
roda nas máquinas dessa rede é que distribui a tarefa de processamento entre os computadores,
sem o compartilhamento de memória entre elas.
Conceitualmente, um Sistema Operacional Distribuído integra cooperativamente as tarefas de
processamento nos computadores que compõem a rede de forma transparente para os usuários,
que têm a sensação de que o sistema se comporta como uma arquitetura multiprocessada
fortemente acoplada. Exemplo: Cluster.
Não confundir!!!
Sistemas Multiprocessados: Sistemas com múltiplos processadores.
Multiprogramação: Sistemas que permitem execução de mais de um programa ao mesmo tempo.
Multiusuário: Sistemas que suportam mais de um usuário simultaneamente.
Obs. Sistemas multiusuários necessariamente são multiprogramados e podem ser ou não
multiprocessados (possuírem mais de um processador).
FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 15
Funções Básicas do Microprocessador
As atividades do processador estão divididas em duas categorias: Função de processamento e
Função de controle.
O processador busca, interpreta e controla a execução das instruções e controla os componentes do
sistema. Executa as instruções sequencialmente, processo que pode ser lento e pouco eficiente.
Para melhorar a performance, processadores modernos utilizam técnicas de paralelismo: Ex.
Pipelining: execução de instruções em paralelo. Inicia a execução da próxima instrução antes de
terminar a execução da anterior.
Execução de programas
Um programa executável é constituído de um conjunto de instruções de máquina geradas pelo
compilador sequencialmente organizadas que no momento da execução são carregadas para
memória principal RAM.
Processadores são constituídos de circuitos capazes de realizar operações primitivas como:
• Somar, subtrair, fazer deslocamentos de bits (shift);
• Mover um dado de um local de armazenamento para outro;
• Transferir um dado para um dispositivo de saída;
• Etc.
Para que um programa seja executado é necessário que as instruções estejam armazenadas em
células sucessivas na Memória Principal (RAM) e o endereço da primeira instrução esteja
armazenado no Registrador PC (Program Counter) no processador.
O ciclo de instrução se constitui de:
• Busca a instrução na RAM, cujo endereço está armazenado no registrador PC;
• Interpreta a instrução;
• Busca dos dados (operandos) da RAM para o processador;
• Executa efetivamente a operação com os dados;
• Armazena o resultado na RAM no local definido na instrução;
• Incrementa o registrador Program Counter;
• Reinicia o processo buscando a nova instrução indicada pelo endereço no PC.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 16


Pipeline
As fases de busca, interpretação e execução de instruções, nos primeiros computadores eram
realizadas em série, ou seja, a instrução “n” precisava concluir todas essas fases antes que instrução
“n+1” pudesse iniciar suas próprias fases.
Para melhorar o throughput, número total de instruções realizadas em cada período de tempo,
processadores com Pipeline iniciam a execução da próxima instrução antes de terminar a execução
da anterior.
Assim, a próxima instrução pode iniciar antes que a anterior seja concluída.

Pipeline

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 17


BI → Busca da instrução na memoria
DI → Decodificação da instrução
BO →Busca dos operandos
EI →Execução da instrução
AR → Armazenamento dos resultados

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.

Operações da ULA - Unidade Lógica e Aritmética

As operações podem utilizar dois operandos ou um operando, caso de incremento, decremento ou


NOT.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 18


Curiosidade
Operações de multiplicação e divisão são operações que demandam tempo de processamento, mas
quando realizadas com números múltiplos de 2, elas simplesmente são operações de deslocamento
de bits (shift).
Exemplo:
Multiplicação e divisão de 6 por 2.
6 x 2 = 12 e 6 / 2 = 3, vejamos em binário:
Transformando os números 6 e 12 para binário com 4 bits, temos:
6(10) = 0110(2) e 12(10) = 1100(2)
Fazendo shift left em 0110 temos 1100 que é 12(10) (6 x 2).
Fazendo shift right em 0110 temos 0011 que é 3(10) (6 / 2).
Assim, o computador evita de fazer as operações de multiplicação e divisão e apenas faz a operação
shift que é muito mais fácil.

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

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 19


tamanho da palavra utilizada pelo computador. Se a palavra tiver 32 bits (4 bytes), precisamos de
um barramento de dados com 32 linhas de conexão, podendo transmitir 32 bits simultaneamente.

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.

Conexão de Dispositivos de E/S


Dispositivos de E/S por operarem a uma velocidade muito menor que CPU e memória, não são
conectados diretamente aos barramentos que ligam CPU e memória. CPU e memória são
dispositivos eletrônicos e dispositivos de E/S são eletromecânicos, magnéticos ou óticos (muito
lentos).
Existe a necessidade de um intermediário para lidar com essas diferenças, assim, os dispositivos de
E/S são conectados aos barramentos através de controladores de E/S, sendo necessário um
controlador específico para cada dispositivo de E/S.
Controladores ou interfaces preenchem a lacuna entre a natureza dos dispositivos de E/S, e a
natureza da CPU e memória. Um controlador pode ser serial com apenas uma linha de conexão de
dados ou paralelo com várias linhas (exemplo: porta de impressora paralela ou USB – Universal Serial
Bus).
Tipos de controladores mais comuns:
• USB (Universal Serial Bus);
• PCI e PCIe (Peripheral Component Interconnect, usada em placa de rede e outros); e
• FireWire (Padrão IEEE 1394);
• AGP (específico para vídeo);
• SCSI (Small Computer System Interface, para HDs, unidades de fitas etc.);
• SATA (Serial Advanced Technology Attachment);
• etc.

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.

Comparação de processadores em relação ao tamanho da palavra.


Exemplo:

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 20


Vamos analisar a operação soma de A + B em um processador com palavra de 8 bits e em outro com
palavra de 16 bits, sendo:
A = 3A25
B = 172C
A e B são representados em hexadecimal de 4 dígitos com cada dígito representado por 4 bits. A e B
são inteiros, sem sinal e, portanto, com tamanho de 16 bits.

Processador com palavra de 8 bits


A soma de A + B será realizada em duas etapas, (25 + 2C) e (3A + 17) e depois juntados, pois 3A25 e
172C possuem 16 bits e não cabem em uma palavra (barramento) de 8 bits.

Processador com palavra de 16 bits


A operação soma dos mesmos números é realizada em uma única etapa.

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.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 21


O tamanho da palavra influencia também na organização da memória. A memória é organizada em
bytes, mas os dados que se movimentam entre processador e memória são transportados em
palavras.
Se isto não ocorrer, o processador ficará em estado de espera (wait state) até que a palavra completa
seja transferida e essa transferência gastará mais de um ciclo de memória para ser realizada.

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);

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 22


SIMD – Single Instruction-Stream, Multiple Data-Stream (Único fluxo de instruções e múltiplos fluxos
de dados);
MISD – Multiple Instruction-Stream, Single Data-Stream (Múltiplos fluxos de instruções e único fluxo
de dados);
MIMD – Multiple Instruction-Stream, Multiple Data-Stream (Múltiplos fluxos de instruções e
múltiplos fluxos de dados);
SISD - Single Instruction-Stream, Single Data-Stream (Único fluxo de instruções e único fluxo de
dados). Computador possui uma unidade de controle, uma unidade de lógica e aritmética e uma
unidade de memória.

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.

Uma unidade de controle, várias unidades de processamento e uma unidade de memória.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 23


MISD - Multiple Instruction-Stream, Single Data-Stream (Múltiplos fluxos de instruções e único fluxo
de dados). Diversas instruções pertencentes a vários fluxos de instruções operam simultaneamente
no mesmo fluxo de dados.

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.

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 24


10. Compare as tecnologias CISC e RISC, apontando vantagens e desvantagens de cada uma
delas.
11. O que são sistemas multiprocessados?
12. O que são sistemas fortemente acoplados?
13. O que são sistemas fracamente acoplados?
14. Qual a diferença entre multiprocessamento simétrico e assimétrico?
15. O que significa multiprogramação?
16. O que significa multiusuário?
17. Quais as funções básicas do processador?
18. Descreva as fases que formam um ciclo de máquina (instrução).
19. O que é Pipelining?
20. Qual a função do Registrador de Instrução RI?
21. Qual a função do Registrador PC?
22. Qual a função do barramento de dados?
23. Qual a função do barramento de endereços?
24. Qual a quantidade máxima de memória é possível endereçar em computador com
barramento de endereço de 16 bits?
25. Qual a função do barramento de controle?
26. O que é palavra de um computador e qual sua importância?
27. O que é clock de um processador?

FATEC Taubaté ADS/AMSA OC&SO – Microprocessador 25

Você também pode gostar