SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Disp SMemóriaDisp E
UCP
UC
Sinais de
Controle e
Status
dados instruções
V - Organização de Computadores
sta disciplina consiste no estudo dos componentes físicos que compõem o
computador, cuja configuração básica e mais geral pode ser vista como na
figura V.1 abaixo.
Figura V.1 - Organização de um Computador
onde, por definição, considera-se:
• computador - como sendo uma máquina eletrônica, capaz de solucionar problemas
através da execução automática de instruções que lhe sejam previamente forneci-
das.
• hardware - constituído pelos circuitos eletrônicos que compõem o computador e
que o tornam capaz de reconhecer e executar um conjunto limitado de instruções
simples.
• software - constituído pelo conjunto de programas necessários para tornar o har-
dware útil e operacional.
• programa - como sendo uma peça de software constituída por uma seqüência de
instruções que descrevem ao computador como executar uma determinada tarefa.
• linguagem de máquina - constituída pelo conjunto básico de instruções que são re-
conhecidas pelo hardware e, para a qual todo programa precisa ser convertido para
que possa ser executado.
• tradutor - um programa que converte outros programas para a linguagem de má-
quina. Pode ser de três tipos: montador (para a linguagem assembly), interpretador
(tradução e execução passo a passo) e compilador (tradução e execução em fases
distintas).
V.1 Máquina Virtual
Constitui-se de uma abstração onde, dentro de um único computador hospedeiro, o
universo gerado por cada linguagem define uma máquina hipotética (virtual) capaz de reco-
nhecer e executar diretamente as instruções daquela linguagem. É a generalização do conceito
de hardware.
E
UAL
Organização de Computadores 2
Vantagens desta abordagem:
1. Um computador pode ser considerado como composto por "n" máquinas virtuais, cada
uma delas com sua própria configuração e linguagem de máquina;
2. Uma pessoa, cujo trabalho seja gerar programas (aplicativos) para a máquina virtual de ní-
vel "k" ou outro qualquer, não precisa conhecer ou se preocupar com as particularidades dos
níveis inferiores ao seu;
3. A estrutura de níveis permite ver o computador como um conjunto hierárquico de facilida-
des que possibilitam flexibilidade e independência ao usuário.
" As linguagens de 4a
geração - orientadas a objeto, com interfaces gráficas e super
amigáveis derrubou o mistério e abriu as portas do computador ao usuário leigo e
ao público em geral."
Figura V.2 - Máquina Virtual
O Modelo Multinível Contemporâneo
A maioria dos computadores modernos possui dois ou mais níveis, sendo que máquinas
com seis ou mais níveis são cada vez mais comuns. Tais níveis se subdividem basicamente em
Hardware, Firmware, Software Básico, Utilitários e Softwares Aplicativos. A figura V.3 abai-
xo, descreve um computador hipotético composto por 6 níveis, a saber:
nível 0 - Lógica Digital
• constitui o hardware do computador. O advento dos microprocessadores (pastilhas
VLSI) e dos microcomputadores têm despertado o interesse e aberto, cada vez
mais, o mundo da lógica digital aos profissionais de informática e ao público em ge-
ral.
• no nível 0 encontram-se: os circuitos eletrônicos (cap. IV) e os diversos sistemas
(módulos) que compõem o computador: UCP, memória, dispositivos de E/S, dis-
positivos de comunicação e interfaces.
• o nível 0 executa diretamente as instruções (ou microinstruções) submetidas pelo
nível 1.
Máquina Virtual Mn
Ling Máq - Ln
Máquina Virtual M1
Ling Máq - L1
Máquina Virtual M0
Ling Máq - L0
Programas em Ln são inter-
pretados e traduzidos por um
interpretador residente na
máquina Mn-1
Programas em L0 são inter-
pretados e executados dire-
tamente pelo hardware do
computador
Organização de Computadores 3
Máquina Virtual M4
Ling de Montagem
Firmware
Máquina Virtual M5
Orientada ao Prob.
Máquina Virtual M0
Lógica Digital
Software
Aplicativo
Software
Básico e
Utilitários
Ling. Alto Nível
Ling. Baixo Nível
(assembly)
tradução (compilador)
tradução (montador)
interpretação parcial (SO)
interpretação (microprograma)
execução pelo hardware
Máquina Virtual M2
Máq. Convencional
Hardware
Máquina Virtual M3
Sistema Operacional
Máquina Virtual M1
Microprogramação
Figura V.3 - Modelo Multinível
nível 1 - Microprogramação
• é o verdadeiro nível de linguagem de máquina. O microprograma, residente em
memória permanente (ROM), compõe o que é conhecido por firmware e tem por
função interpretar e traduzir as instruções que lhe são submetidas pelos níveis supe-
riores.
• nem todas as máquinas possuem este nível, veja as máquinas RISC por exemplo.
Nas máquinas não microprogramadas, o nível 2, chamado de máquina convencio-
nal, é diretamente executado pelo hardware.
• as vantagens da microprogramação são:
a) facilitar o projeto e a construção dos circuitos digitais, através da imple-
mentação de parte da lógica digital dentro do firmware;
b) flexibilizar e possibilitar o desenvolvimento de instruções mais potentes a
nível de máquina convencional.
• o conjunto de microinstruções é geralmente pequeno, no entorno de duas ou três
dezenas, sendo que a maior parte delas envolvendo a movimentação de dados de
uma parte da máquina para outra, ou a realização de alguns testes simples.
• um mesmo computador pode suportar mais de um microprograma, cada um defi-
nindo uma máquina virtual de nível 1 diferente.
Organização de Computadores 4
• o microprograma, escrito pelo microprogramador e armazenado em uma memória
não volátil, tem como função interpretar (buscar, examinar e executar) cada uma
das instruções de um programa em nível de máquina convencional. Para isto, o mi-
croprograma deve acessar e controlar todos os recursos de hardware (registrado-
res, barramentos, ULAs, memórias e outros).
• as microinstruções são compostas apenas por sinais de controle e o microprograma
é executado por um dispositivo chamado sequenciador que, juntamente com os
demais circuitos de hardware, compõe a microarquitetura.
• um dos pontos de projeto da microarquitetura é a definição da largura das mi-
croinstruções ou seja, da memória do microprograma, isto é, da micromemória.
Projetos do tipo horizontal fazem uso de um número relativamente pequeno de
microinstruções largas, e os do tipo vertical muitas microinstruções estreitas.
• outra opção de projeto é a adoção da nanoprogramação, que consiste basica-
mente na adoção de uma terceira memória, a nanomemória, para armazenar as ins-
truções do nanoprograma.
• com a nanoprogramação a microarquitetura fica composta da memória principal,
volátil, que armazena o programa em execução, a micromemória, não volátil, que
armazena o microprograma e a nanomemória, também não volátil, que armazena o
nanoprograma, veja figura V.4.
• a nanoprogramação se constitui na realidade, de um artifício para reduzir o tama-
nho do microprograma naqueles casos em que ocorra muitas repetições de uma ou
mais microinstruções. O nanoprograma passa a conter o conjunto das microinstru-
ções usadas no microprograma, armazenados sem repetição, e o microprograma
matém a lógica original usando não mais as microinstruções propriamente ditas mas
seus endereços na nanomemória.
Figura V.4 - Microprogramação convencional (a) e nanoprogramação (b)
(*) Observe na figura que, na microprogramação convencional o tamanho gasto para armaze-
nar o microprograma é de "n x w" (número de instruções multiplicado pela largura em bits de
cada microinstrução) e na nanoprogramação é de "n x log2m + m x w" (número de microins-
truções multiplicado pelo logaritmo na base dois do tamanho da memória de nanoprogramação
somado ao tamanho da memória de nanoprogramação.
nível 2 - Máquina Convencional
Log2m
(b)
n
(a)
m
W bits
microprograma
microprograma
nanoprograma
W bits
Organização de Computadores 5
• é, na verdade, a "máquina" vendida ao usuário genérico. Suas características técni-
cas, operacionais e funcionais são fornecidas através dos manuais de referência,
comercializados junto com o equipamento.
• é o nível onde reside o "kernel" do sistema operacional, que interpreta os utilitários,
a linguagem de controle e as rotinas que residem no nível 3.
• o SO pode ser interpretado pelo microprograma ou executado diretamente pelo
hardware, naquelas máquinas desprovidas do nível 1.
nível 3 - Sistema Operacional
• é o nível em que o usuário interage diretamente (através do uso de utilitários e da
linguagem de controle) ou indiretamente (através de programas aplicativos desen-
volvidos em máquinas de níveis superiores).
• o windows 3.1, por exemplo, é uma máquina virtual colocada acima deste nível e
cuja finalidade é proporcionar ao usuário uma interface mais amigável e de mais fá-
cil assimilação.
• é geralmente, um nível híbrido, onde parte de suas instruções são interpretadas pelo
"kernel" do SO (nível 2) e parte são interpretadas diretamente pelo microprograma
(nível 1).
nível 4 - Linguagem de Montagem
• é genericamente chamada de assembly, embora cada máquina tenha seu próprio as-
sembly, e é traduzida para o nível inferior pelo montador, comumente chamado de
assembler.
• o assembly já foi muito importante em épocas passadas, porém hoje é totalmente
suplantado pelas linguagens de alto nível para o desenvolvimento de programas
aplicativos e até utilitários.
nível 5 - Linguagens Orientadas para o Problema
• consiste em diferentes máquinas virtuais, cada uma definida pelo ambiente criado
por sua linguagem de programação de alto nível.
• as linguagens de alto nível são mais complexas que o assembly e requerem traduto-
res mais bem elaborados e potentes dos tipos interpretadores e compiladores.
• nível 6 e superiores
• constituído por sistemas projetados para criar "shells" - máquinas virtuais especial-
mente adequadas para certas aplicações, como por exemplo o word, o access, o ex-
cel, o lotus, etc.
Em resumo, os computadores modernos são constituídos de uma série hierárquica de
máquinas virtuais, cada uma projetada e construída sobre suas predecessoras. Cada nível re-
presenta um grau distinto de abstração, com a presença de diferentes recursos e operações; o
que possibilita, através da supressão de detalhes irrelevantes, tornar o computador mais amigá-
vel e mais fácil de ser compreendido pelo público em geral.
Na estrutura de um PC, por exemplo, conforme pode ser visto na figura V.5 abaixo, 4
níveis virtuais podem ser considerados: o dos programas aplicativos, o do sistema operacional,
Organização de Computadores 6
o dos programas de interface com os dispositivos periféricos (drivers) e as rotinas de entrada e
saída padrão fornecidas pela BIOS. Observe que a segurança pode ser afetada uma vez que
qualquer dos níveis pode realizar acesso direto às rotinas da BIOS e, portanto, sem se subme-
ter aos critérios e procedimentos de proteção.
Figura V.5 - Estrutura do MS-DOS
V.2 A Unidade Central de Processamento (UCP)
A Unidade Central de Processamento - UCP, é o "cérebro" do computador, e sua fun-
ção é executar os programas armazenados na memória principal, buscando instruções e exe-
cutando-as uma após a outra.
Na figura V.6 abaixo, pode ser visto um esquema simplificado da organização interna
do hardware. Observe que a UCP faz uso de um barramento para se comunicar com os demais
componentes do sistema, como a memória principal e os demais dispositivos periféricos que
compõem o computador. Este barramento é constituído por diversas vias paralelas por onde
transitam os sinais.
Grupos distintos destas vias, na prática, configuram diferentes barramentos, tais como
o de dados, o de endereços e o de sinais de controle. O número de vias utilizado em cada um
destes barramentos depende das características físicas de projeto do computador.
Figura V.6 - Organização do Hardware
Drivers
ROM BIOS Device Drivers
SO - residente
Programas Aplicativos
Barramento (dados + endereços + controle)
UCP
UC
UAL
IMPHDMP
REGs
Periféricos de E/S
Organização de Computadores 7
As principais considerações de projeto de um barramento, além do número de vias,
são: a temporização, o mecanismo de arbitragem, o tratamento de interrupções e o tratamento
de erros.
Quanto a temporização, um barramento pode ser do tipo síncrono ou do tipo assíncro-
no. Num barramento síncrono existe um relógio temporizador que define a freqüência de
operação do mesmo, chamada de ciclo de barramento. Neste tipo de barramento, toda ativida-
de ou operação de transferência é alinhada, ou seja, sincronizada com a freqüência do barra-
mento e sempre consome um número inteiro e conhecido destes ciclos. No barramento assín-
crono não existe tal relógio, ou seja, os ciclos são variáveis e podem tomar a duração que for
requerida pela operação.
Na figura V.7a, por exemplo, é mostrado um barramento síncrono com um relógio de
temporização de 5Mz, que produz um ciclo de 200ns, e uma operação de leitura de um byte da
MP que consome 4 ciclos de barramento, ou seja, 800ns. Observe o sinal do relógio definindo
o ciclo do barramento, os sinais de controle RD e MREQ definindo respectivamente a opera-
ção a ser realizada, leitura, e a requisição de uma operação de memória. O barramento de en-
dereços disponibiliza para a MP a posição a ser lida, durante um determinado número de ciclos
de barramento. Posteriormente a MP coloca no barramento de dados o conteúdo lido e a UCP,
após um número prefixado de ciclos de barramento sabe que pode buscar o dado que estará
estável e disponível no barramento.
No barramento assíncrono, face a inexistência do relógio para disciplinar a transfe-
rência, é introduzido um processo de sinalização, conhecido por handshake, entre a UCP e o
dispositivo envolvido na operação. Na figura V.7b, o handshake é representado pelos sinais
MSYN - Master Synchronism (sincronismo mestre) e SSYN - Slave Synchronism (sincronismo
escravo). Observe que em resposta ao MSYN a MP coloca o dado no barramento e responde
ao mestre ativando o sinal SSYN, que informa o cumprimento da missão.
Os barramentos assíncronos apresentam maior flexibilidade de uso e oferecem vanta-
gens para atendimento a um conjunto heterogêneo de dispositivos (lentos e rápidos), uma vez
que seus ciclos não são fixos. Por outro lado, um sistema síncrono é mais fácil de ser construí-
do e oferece maior velocidade de operação. A maioria dos barramentos é síncrona.
Mecanismos de arbitragem tem a ver com a forma como um dispositivo se torna mestre
do barramento. Pode ser centralizado, onde um único árbitro, decide quem será o próximo a
controlar o barramento, ou descentralizado, quando não há árbitro e sim um procedimento
distribuído e observado por todos os candidatos a mestre. Sempre que a UCP compete pelo
barramento ela o faz com menor prioridade, para evitar que dispositivos de E/S mais lentos
fiquem prejudicados no acesso a condição de mestre.
Uma vez que múltiplos dispositivos podem querer causar uma interrupção simultanea-
mente, o mesmo tipo de problemas de arbitragem está presente e a solução usual é assinalar
prioridades aos dispositivos e usar um árbitro para controlar o problema.
A organização interna da UCP varia em função do grau de sofisticação e avanço tec-
nológico do hardware. Sua organização genérica básica é constituída pela UC - Unidade de
Controle, pela UAL - Unidade Aritmética e Lógica e por um banco de registrados.
Organização de Computadores 8
Endereço da Posição de Memória
MREQ
RD
tempo
T4T3T2T1
(a)
(b)
Figura V.7 - Barramento Síncrono (a) e Barramento Assíncrono (b)
A UC é a parte encarregada de executar as operações de controle do ciclo de instrução
e de sinalização para todos os demais componentes do sistema. A ULA se encarrega da execu-
ção de todas as operações aritméticas e lógicas decorrentes da execução dos programas. O
banco de registradores serve de memória local para armazenamento dos dados em uso na
UCP. A figura V.8 abaixo mostra o esquema da organização interna de uma UCP básica, onde:
• barramentos
• o barramento interno é a via de comunicação entre os componentes internos da
UCP.
• o data bus é o barramento para transferência de dados entre a UCP e os demais
componentes (8, 16 e 32 bits são os mais comuns).
• address bus é o barramento para endereçamento de memória (10 bits - 1Kb, 20 bits
- 1 Mb, 32 bits - 4Gb).
• registradores de controle e de estado
• MBR - Memory Buffer Register, (RDM em português) serve de armazenamento
temporário de dados no caminho de/para a MP.
Dado
Dado
Endereço da Posição de Memória
MREQ
tem-
RD
MSYN
SSYN
Organização de Computadores 9
• MAR - Memory Address Register, (REM em português) serve para armazena-
mento temporário do endereço do dado a ser lido ou gravado na memória.
• I/O BR - serve de armazenamento temporário de dados no caminho de/para dispo-
sitivos de E/S.
• I/O AR - serve para especificar um determinado dispositivo de E/S.
• IR - Instruction Register, registrador para armazenamento da instrução corrente.
• PC - Program Counter, registrador que contém o endereço da próxima instrução a
ser executada.
• PSW - Program Status Word, que contém informações sobre o estado do proces-
samento, tais como: sign (sinal), zero, carry (vai um ou vem um), equal, overflow
(estouro), interrupt enable/disable (habilitação ou não de interrupção) e supervisor
(modo de execução).
• registradores de dados
• AC - Accumulator, registrador que, no caso apresentado na figura, armazena uma
das entradas da ULA.
• TR - Temporary Register
• registradores de uso genérico
• registradores para endereçamento
• SP - Stack Pointer
• SX - Segment Pointer
• IX - Index Register
Figura V.8 - Organização interna da UCP
a. O Ciclo de Instrução
A UCP executa cada instrução através de uma seqüência de pequenos passos conforme
a seguir:
• FETCH (busca)
a) recupera da MP a próxima instrução a ser executada, isto é, a instrução
apontada pelo PC e a armazena no registrador instrução IR.
b) atualiza o PC para que aponte para a próxima instrução a ser executada.
• DECODE (decodificação)
c) interpreta a instrução armazenada em IR.
• DATA FETCH (busca dos operandos)
sinais de controle
Decodifcador de
Instrução e
Controlador do
Ciclo de Máquina
data bus address bus
barramento interno
MARMBR
AC TR IR
PC
UC
R1
ULA
I/O AR I/O BR
Organização de Computadores 10
d) se a instrução necessitar de dados armazenados na memória, calcula o ende-
reço dos mesmos e,
e) recupera-os armazenando nos registradores internos.
• EXECUTION (execução)
f) executa a instrução (aritmética, lógica ou desvio)
• WRITE BACK (salva o resultado)
g) salva o resultado na MP ou em um dos registradores internos e,
h) retorna ao primeiro passo.
V.3 A Memória Principal
É o dispositivo onde são armazenados os programas e os dados de uso corrente. É or-
ganizada segundo uma matriz de células, cada uma podendo armazenar um determinado núme-
ro de bits (8 / 16 / 32 / ...).
Cada célula de memória é identificada por um endereço único e imutável. O acesso é
aleatório e o tempo de acesso é o mesmo para qualquer célula, que também representa a uni-
dade de acesso à memória (menor quantidade de bits que pode ser lida ou gravada).
a. Conexão UCP x MP
M
B
R
Address Bus
Data Bus
MREQ bit
UCP
R/W bit
M
A
R MP
Figura V.9 - Conexão UCP x MP
onde,
R/W bit ⇒ especifica se a operação é de leitura "R" ou de escrita "W".
MREQ bit ⇒ Memory REQuest, especifica uma ordem de acesso à memória emitida pela
UCP.
b. Tipos de Memória
• volátil - perde o conteúdo armazenado quando não energizada. (RAM - Random
Access Memory).
∗ tipos de RAM
a) Estática - a gravação é estável, só se alterando através de operações de es-
crita (consome mais energia);
b) Dinâmica - a gravação do bit "1" se descarrega com o tempo, precisando
ser "refrescada" periodicamente (ciclo de refresh).
• não volátil - não perde o conteúdo armazenado. (ROM, PROM, EPROM, EE-
PROM)
Organização de Computadores 11
c) ROM - Read Only Memory (gravada de fábrica - permanente);
d) PROM - Programable ROM (pode ser gravada uma única vez pelo usuário,
através de equipamentos especiais);
e) EPROM - Erasable PROM (pode ser apagada através de raios ultraviole-
tas);
f) EEPROM - Electrical EPROM (pode ser apagada através de sinais elétri-
cos);
g) Memória Flash - é uma memória que pode ser utilizada como apenas de
leitura ou como de leitura e gravação, dependendo do driver utilizado. Ge-
ralmente é utilizada como um disco em pastilhas (chips), SSD - Solid State
Disk.
c. Endereçamento de Memória
É realizado por lógica combinacional (cap. IV), onde os bits de endereçamento mais o
sinal R/W habilitam a leitura ou gravação de uma única ou de um conjunto de células de cada
vez, dependendo do tamanho do barramento de dados.
d. Ordem dos Bytes
A ordem em que os bytes são considerados dentro da célula é completamente transpa-
rente ao usuário, mas é de fundamental importância quanto à compatibilidade de sistemas e
transportabilidade dos dados.
A ordem pode ser do tipo big endian (da esquerda para a direita), usado pelos proces-
sadores Motorola, ou little endian (da direita para a esquerda), característico dos processado-
res Intel.
A figura V.10 mostra um problema de transportabilidade de dados entre uma máquina
little endian (PC486) e uma big endian (SPARC Station). Observe que a simples inversão dos
dados não soluciona o problema.
Byte número Byte número Byte número
3 2 1 0 0 1 2 3 0 1 2 3
0 0 0 5 5 0 0 0 0 0 0 5
Y R A M M A R Y Y R A M
(a) (b) (c)
Figura V.10 - (a) mensagem original no 486 - little endian, (b) mensagem após ser recebida
pela SPARC - big endian, (c) mensagem após ser invertida (observe que a inversão pura corri-
ge o valor numérico porém inverte o alfanumérico)
e. Detecção e Correção de Erros
Os sistemas de detecção e correção de erros são implementados de forma a aumentar a
confiabilidade do armazenamento e da transferência de dados entre os diversos componentes
do computador.
Detecção Simples
Organização de Computadores 12
Técnicas
Detecção e Correção
a) Detecção Simples
Apenas detecta o erro, provocando procedimentos de regravação do dado, de mensa-
gem de erro na recuperação de um dado gravado ou, no caso de transmissão de dados, de sua
retransmissão.
Um método simples, porém largamente utilizado é o da adição de um bit de paridade
(VRC - Vertical Redundancy Checking) ao código base do caracter.
par ⇒ soma dos bits "1" deve ser par
Paridade
ímpar ⇒ soma dos bits "1" deve ser ímpar
ex. Paridade par adicionada ao código ASCII de 7 bits
caracter
bit a b c z A
1 1 1 1 1 1
2 1 1 1 1 0
3 0 0 0 1 0
4 0 0 0 1 0
5 0 0 0 0 0
6 0 1 1 1 0
7 1 0 1 0 1
VRC 1 1 0 1 0
. (*) este mecanismo de paridade não detecta um número par de erros no caracter
b) Detecção e Correção
b.1) Código BCC
Uma técnica simples é usar uma paridade longitudinal para blocos de memória - BCC
(Block Check Character) em adição ao VRC.
caracter BCC
bit a b c z A
1 1 1 1 1 1 1
2 1 1 1 1 0 0
3 0 0 0 1 0 1
4 0 0 0 1 0 1
5 0 0 0 0 0 0
6 0 1 1 1 0 1
7 1 0 1 0 1 1
VRC 1 1 0 1 0 1
Organização de Computadores 13
Neste caso é garantida a detecção de erros do tipo rajada (vários bits consecutivos),
que tenham comprimento menor ou no máximo igual ao tamanho do caracter. Para rajadas
maiores a detecção não é garantida. A correção é possível pelo cruzamento do VCR e BCC e
identificação da(s) célula(s) com erro.
Ex.
caracter BCC
bit a b c z A
1 1 1 1 1 1 1
2 1 1 1 1 0 0
3 0 1 0 1 0 1
4 0 1 0 1 0 1
5 0 1 0 0 0 0
6 0 0 1 1 0 1
7 1 0 1 0 1 1
VRC 1 1 0 1 0 1
Neste exemplo acima, o erro de rajada na letra "b" (4 bits em negrito) pode ser detec-
tado pela paridade horizontal. Observar que a identificação dos bits errados só é possível
quando o erro puder ser detectado simultaneamente pelas paridades horizontal e vertical.
caracter BCC
bit a b c z A
1 1 1 1 1 0 1
2 1 1 1 1 1 0
3 0 0 0 1 1 1
4 0 0 0 1 0 1
5 0 0 0 0 0 0
6 0 1 1 1 0 1
7 1 0 1 1 1 1
VRC 1 1 0 0 0 1
Neste outro exemplo o ruído atingiu parte das letras "Z" e "A". Observe que o erro foi
detectado e ainda os bits errados de "A" puderam ser identificados. Já no exemplo abaixo você
pode observar que nenhum erro foi detectado apesar da ocorrência de uma rajada de compri-
mento 12, maior que o comprimento de um caracter.
caracter BCC
bit a b c z A
1 1 1 1 1 1 1
2 1 1 1 1 0 0
3 0 0 0 1 0 1
4 0 0 0 1 0 1
5 0 1 1 0 0 0
6 0 0 0 1 0 1
7 1 1 0 0 1 1
VRC 1 0 1 1 0 1
Organização de Computadores 14
b.2) Código de Hamming
Baseia-se na distância de hamming (HD), introduzida em 1950 por Richard Hamming,
que conta o número de bits diferentes entre 2 palavras de mesmo tamanho.
ex. de distância de hamming ⇒ 0 1 0 1 1 0 1 1 byte A
0 0 1 0 0 1 1 0 byte B
-----------------
1 1 1 1 1 1 ⇒ hd= 6
O código de Hamming consiste basicamente na introdução de vários bits de paridade
em redundância que, através de um processo de exclusão combinatória, possibilitam identificar
a falha e em alguns casos corrigir o bit errado.
O número de bits de redundância necessários é calculado através da equação:
( )
( )
2 1 2
2 1 2 1 2
m n
m m r r
n
m r m r
+ ≤
+ + ≤ ⇒ + + ≤
+
onde:
n = m + r
bits de redundância
bits de dados
As posições dos bits de redundância são obtidas através da fórmula:
posx = 2x
, x = [0, r-1].
ex. para um código ASCII com m = 7
temos que:
a) (7 + r + 1) ≤2r
⇒ r ≥ 4 ( mínimo de 4 bits de redundância)
b) a posição dos bits de redundância será: 1 (20
), 2 (21
), 4 (22
) e 8 (23
).
X X X X
1 2 3 4 5 6 7 8 9 10 11
no
relativo do bit bits de redundância
Na verificação do erro, mede-se a paridade par ou ímpar, conforme tenha sido previa-
mente definida, para cada bit de redundância aplicado sobre seu universo de atuação. Universo
este obtido com base na composição do número que indica a posição relativa do bit de dado.
ex. bit de redundância 1 (20
)
o universo de atuação do primeiro bit de paridade (bit 1) é composto pelos bits de dado
pertencentes às seguintes posições: {3, 5, 7, 9 e 11}.
Organização de Computadores 15
justificativa: 7 = 20
+ 21
+ 22
- 11 = 20
+ 21
+ 23
bit de redundância 2 (21
)
O segundo bit de paridade avalia os dados pertencentes às posições: {3, 6, 7, 10 e 11}.
justificativa: 7 = 20
+ 21
+ 22
- 11 = 20
+ 21
+ 23
Em resumo, para um código de 4 bits de Hamming, o universo de atuação de cada bit de re-
dundância é dado por:
bit 1 (20
) ⇒ {3,5,7,9 e 11}
bit 2 (21
) ⇒ {3,6,7,10 e 11}
bit 3 (22
) ⇒ {5, 6 e 7}
bit 4 (23
) ⇒ {9, 10 e 11}
Com base nos bits de redundância e seus respectivos universos de atuação é que se re-
aliza o processo de detecção e possível identificação do bit errado. Assim, se os bits de redun-
dância número 1, 2 e 4 acusarem erro, então concluí-se que o bit errado é o da posição 11
porque 1 + 2 + 8 = 11 (20
+ 21
+ 23
).
A capacidade do método em detectar e corrigir erros depende da menor distância de
hamming - HD obtida com a codificação adotada.
A capacidade de detectar "d" erros requer um hdmin > d + 1
A capacidade de corrigir "d" erros requer um hdmin > 2d + 1
Assim, um código com hdmin = 4 é capaz de detectar erro de até 2 bits e corrigir erros
de até 1 bit.
hd = 4
Exemplos:
a) erro no bit de posição 6
• representação do caracter ASCII "a" (1100001) com 4 bits de redundância em pari-
dade ímpar.
0 1 1 0 1 0 0 0 0 0 1
1 2 3 4 5 6 7 8 9 10 11
• cálculo dos bits de redundância:
bit 1: {3, 5, 7, 9 e 11} ≡ {1, 1, 0, 0, 1} ⇒ 0
bit 2: {3, 6, 7, 10 e 11} ≡ {1, 0, 0, 0, 1} ⇒ 1
bit 3: {5, 6 e 7} ≡ {1, 0, 0} ⇒ 0
bit 4: {9, 10 e 11} ≡ {0, 0, 1} ⇒ 0
• um erro no bit de posição 6 terá a seguinte representação:
Organização de Computadores 16
0 1 1 0 1 1 0 0 0 0 1
1 2 3 4 5 6 7 8 9 10 11
• a verificação através dos bits de redundância fornecerá:
bit 1: {1, 1, 0, 0, 1} ⇒ 0 correto ⇒ 0
bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1
bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (610)
bit 4: {0, 0, 1} ⇒ 0 correto ⇒ 0
Olhando-se de traz para a frente é possível visualizar a posição do bit errado. Lembre
que este mesmo valor, conforme visto no início desta seção, pode ser obtido pela fórmula da
potência de 2: (21
+ 22
= 6).
b) erro nos bits 6 e 9
0 1 1 0 1 1 0 0 1 0 1
1 2 3 4 5 6 7 8 9 10 11
• verificação dos bits de redundância:
bit 1: {1, 1, 0, 1, 1} ⇒ 1 errado ⇒ 1
bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1
bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (1510)
bit 4: {1, 0, 1} ⇒ 1 errado ⇒ 1
Observe que o erro foi detectado porém os bits errados não puderam ser identificados..
c) erro nos 3, 6 e 9
0 1 0 0 1 1 0 0 1 0 1
1 2 3 4 5 6 7 8 9 10 11
• verificação dos bits de redundância:
bit 1: {0, 1, 0, 1, 1} ⇒ 0 correto ⇒ 0
bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0
bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (1210)
bit 4: {1, 0, 1} ⇒ 1 errado ⇒ 1
O erro de 3 bits foi detectado porém os bits errados não puderam ser identificados.
d) erro nos bits 3, 5 e 6
0 1 0 0 0 1 0 0 0 0 1
1 2 3 4 5 6 7 8 9 10 11
• verificação dos bits de redundância:
Organização de Computadores 17
bit 1: {0, 0, 0, 0, 1} ⇒ 0 correto ⇒ 0
bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0
bit 3: (0, 1, 0} ⇒ 0 correto ⇒ 0 (010)
bit 4: {0, 0, 1} ⇒ 0 correto ⇒ 0
Observe que neste caso o método falhou na detecção do erro de 3 bits.
V.4 Memória Secundária
É utilizada para armazenar grandes volumes de dados. É constituída por diferentes dis-
positivos, todos mais lentos e mais baratos por byte armazenado que a memória principal.
Os tipos principais de memória secundária são:
V.4.1 Discos Magnéticos
• rígidos - são discos de metal, geralmente de diâmetro entre 5 e 10 polegadas e co-
berto, em ambos os lados, por uma superfície magnetizável. Os discos giram a ve-
locidades muito elevadas (da ordem de 5000 rpm) e as cabeças de leitura / grava-
ção não tocam a superfície, flutuam a uma distância de alguns microns (10-6
m). O
maior risco de falha é a aterrissagem das cabeças que causa perda total do disco e,
praticamente, de todos os dados gravados.
• flexíveis - disco de material plástico, flexível, e coberto em ambas as faces por uma
superfície magnetizável. As cabeças de leitura / gravação tocam a superfície, o que
provoca um desgaste de ambas as partes. Para reduzir este desgaste, as cabeças são
recolhidas e a rotação é interrompida enquanto a unidade não está lendo ou gra-
vando.
a) Formatação
É a operação que subdivide o disco em cilindros, trilhas, clusters e setores.
• trilhas são círculos concêntricos onde os dados são gravados magneticamente. Um
disco é geralmente formatado com um valor entre 40 e algumas centenas de trilhas
por superfície.
removíveis
fixosmagnéticas
óticas CDs
discos
rolo
cassetefitas
cartucho
disquetes
Zip drives
Organização de Computadores 18
• setores são espaços radiais que subdividem as trilhas para endereçamento e acesso.
O setor contém um determinado número de bytes, geralmente 512. Nos sistemas
mais antigos representava a unidade lógica de acesso para leitura e gravação.
setor
trilha
Figura V.11 - Formatação
• clusters são utilizados nos sistemas mais modernos e representam a unidade lógica
de acesso. O tamanho de um cluster depende do tipo do disco, variando desde um
simples setor até um conjunto de vários setores. O sistema DOS, por exemplo,
adota a seguinte formatação:
Tipo do Disco Tamanho do Cluster Tipo do Disco Tamanho do Cluster
3.5" / 1.44M 512 bytes HD ≤16M 4096 bytes
(8 setores)
3.5" / 720K 1024 bytes 513M a
1,024G
16K bytes
(32 setores)
5.25" / 1.2M 512 bytes 1.025 a 2,048 32K bytes
(64 setores)
• cilindros formados pelo conjunto de trilhas de um mesmo raio e pertencentes a di-
ferentes superfícies. O conceito é utilizado para agilizar o acesso e a transferência
de dados, pois as cabeças de leitura/gravação ficam todas simultaneamente posicio-
nadas sobre um mesmo cilindro. A figura V.12 abaixo destaca alguns detalhes sobre
a estrutura física de uma unidade de disco magnético.
cabeçotes para
leitura / gravação
face inferior
face superior
cilindro
braço dos
cabeçotes
Figura V.12 - Estrutura de um Disco Magnético
Organização de Computadores 19
Cada sistema operacional implementa uma organização própria de controle e acesso
aplicado sobre a formatação física da unidade de disco vista acima. No sistema DOS, por
exemplo, a superfície do disco é logicamente dividida em duas partes, conforme mostrado na
figura V.13 abaixo, uma para armazenamento das informações utilizadas pelo sistema operaci-
onal (área do sistema) e outra para armazenamento dos arquivos propriamente ditos (área de
dados).
Setor 0 Último setor
Área de DadosDiretório
Root
Boot FATs
Área do Sistema
Figura V.13 - Partes de uma Estrutura DOS
O Boot ocupa apenas um setor e tem por finalidade carregar o sistema operacional para
a MP quando da ocasião da inicialização do computador. A FAT - File Alocation Table, é uti-
lizada pelo sistema para armazenar a situação de cada um dos clusters que compõem o disco,
se o mesmo está desocupado, ocupado ou defeituoso, por exemplo. Pela sua importância, o
sistema operacional mantém uma cópia da FAT afim de dobrar a confiabilidade do disco. A
terceira e última área do sistema é o Diretório Raiz (Root), que mantém uma entrada para cada
arquivo ou diretório ali registrado.
No sistema DOS, cada entrada em uma FAT geralmente possui comprimento de 12
(para os disquetes) ou 16 bits (para os HDs com mais de 16Mbytes). O comprimento da entra-
da na FAT e o tamanho adotado para o cluster definem a capacidade máxima de armazena-
mento do disco, como pode ser visto na tabela abaixo:
Disco Cluster FAT (entrada)
16M ou menos 4K 12 bits 212
x 4K
17M a 128M 2K 16 bits 216
x 2K
129M a 256M 4K 16 bits 216
x 4K
257 a 512M 8K 16 bits 216
x 8K
513M a 1,024G 16K 16 bits 216
x 16K
1,025G a 2,048G 32K 16 bits 216
x 32K
No diretório raiz, para cada entrada são reservados 32 bytes para armazenar as se-
guintes informações: nome e extensão do arquivo, tamanho, data e hora da última alteração,
atributos de segurança e o endereço do primeiro cluster (área do disco onde inicia o arquivo).
O endereço dos demais clusters ocupados pelo arquivo são obtidos diretamente na FAT, em
seqüência, a partir do primeiro, como pode ser visto na figura V.14 a seguir.
Organização de Computadores 20
ENTRADAS DA FAT
3 5 900 1005 end
1 2 3 4 5 ..... 900 ..... 1005 .....
Figura V.14 - Encadeamento de Clusters de uma arquivo, o endereço do primeiro cluster é
fornecido pela entrada no diretório do mesmo
b) Taxa de Transferência
É o número de bytes capaz de ser transferido do disco para a MP por unidade de se-
gundo:
tx
bytes transferidos
ta
= ,
onde "ta" é o tempo de acesso, que é dado por:
ta seek latência tempo de transferência= + + ,
sendo que:
∗ seek - é o tempo que a unidade gasta para posicionar o cabeçote de leitura e gra-
vação sobre o cilindro desejado (um disco rígido gasta tipicamente 3ms entre trilhas
adjacentes e de 20 a 100ms para ir do cilindro mais externo ao mais interno e vice-
versa.
∗ latência - é o tempo gasto esperando pelo setor desejado (varia de 0 a 16.67ms
para discos rígidos girando a 3600rpm).
∗ tempo de transferência - é o tempo gasto na transmissão dos dados (leitura ou
gravação) propriamente dita.
(*) para os discos flexíveis existe mais um componente por conta do tempo de aceleração ne-
cessário para fazer com que a velocidade de cruzeiro do motor seja atingida.
V.4.2 Discos Ópticos
Usam tecnologia laser e possuem densidade de gravação muito superiores a dos discos
magnéticos.
Tipos:
∗ CDROM - Compact Disc Read Only Memory (só podem ser lidos).
∗ WORM - Write Once Read Many (admitem uma única vez).
∗ Magneto-Ópticos - combinam a tecnologia óptica com a magnética (admitem reu-
tilização).
a) CDROMs
Disco plástico com uma fina camada de alumínio depositada nas superfícies, seguida
por uma camada plástica transparente para proteção.
Obtido no Root
Organização de Computadores 21
Figura V.15 - Disco Ótico
A gravação é feita por raio laser que faz furos de aproximadamente 1 micron, em uma
trilha espiralada. Os furos são chamados "pits" e as áreas não queimadas, entre os pits, são
chamadas "lands".
A leitura é feita através da projeção de um raio de luz, que é refletido de forma dife-
rente pelos pits e lands, possibilitando a distinção entre ambos. A unidade de endereçamento é
o setor, geralmente de 2Kbytes. O byte, por sua vez, é expandido para 14 bits pela adoção do
código "reed-solomon" para detecção e correção de erros.
∗ capacidade - 650Mbytes
∗ taxa de transferência - aprox 150Kbps (uma ordem de grandeza mais lentos que os
magnéticos rígidos)
∗ confiabilidade - muito mais robustos que os magnéticos quanto ao calor, sol e poei-
ra, porém muito mais suscetíveis a erros de gravação.
∗ aplicação - para armazenamento de grandes volumes de dados que não se alteram.
b) Magneto-Ópticos
Representa a 3a
geração de CDs, onde a superfície plástica é coberta com exóticas ligas
metálicas (térbio e gadolínio) que possuem a interessante propriedade de serem insensíveis ao
campo magnético quando em baixa temperatura e se tornarem sensíveis a ele quando em alta
temperatura.
A cabeça de leitura / gravação possui um laser e um magneto. O laser dispara uma ra-
jada de onda ultracurta, elevando instantaneamente a temperatura do local e, a seguir, o mag-
neto cria o campo na direção desejada ("1" ou "0").
V.4.3 - Fitas Magnéticas
São dispositivos de acesso sequencial e de taxa de transferência mais baixa que os dis-
cos, mais baratas e muito utilizadas para backup.
∗ densidade de gravação - 800, 1600 e 6250 bpi
∗ formatação - na organização mais comum, é dividida em 9 trilhas longitudinais e
frames verticais contendo 8 bits de dados e 1 de paridade cada.
∗ unidade de acesso - é o bloco ou registro físico.
Trilhas em espiral
Setores
Organização de Computadores 22
Barramento de E/S
Impressora
UCP
Canal
Multiplex
Barramento de Memória
Controladora de
terminais
Disco
Disco
Disco
MP
∗ IRG - é o espaço para repouso do cabeçote de leitura/gravação existente entre dois
blocos consecutivos. Seu tamanho é de 3/4" e é usado para estabilizar a velocidade
da fita nos períodos de aceleração e desaceleração.
∗ Um bloco pode conter um ou mais registros lógicos. O tamanho do bloco é deter-
minado pelo programador, que deve atentar para o binômio eficiência e otimização.
rolo - carretéis de 600, 1200 e 2400 pés
Tipos cartucho - acondicionadas em caixas plásticas
cassete - de baixa velocidade
Figura V.16 - Organização de uma Fita Magnética
V.5 - Dispositivos de Entrada e Saída
Figura V.17 - Canais de E / S
São as unidades que possibilitam a comunicação do computador com o meio externo.
A interligação destes dispositivos com o restante do computador pode ser via canais de E/S -
IRG - Inter Record
Gap
trilhas
Bloco ou Registro Físico
frame
1
9
Canal
Seletor
Organização de Computadores 23
Discos
read registro
x
Pro-
cesso
Rotina E/S Disk Driver
In bloco n
Controla-dora
Acessa x
x
y
z
processadores dedicados (característicos dos mainframes) ou através de formas mais rudimen-
tares de E/S (características dos mini, superminis e microcomputadores).
Os canais de E/S liberam a UCP para executar outras atividades enquanto eles se en-
carregam da comunicação com o dispositivo de E/S e a transferência dos dados.
Um computador típico pode ter vários canais, cada qual atendendo um ou mais dispo-
sitivos. Existem três tipos de canais: multiplexador, seletor e bloco-multiplexador.
O canal multiplexador é geralmente assíncrono e utilizado para os dispositivos de bai-
xa ou média velocidade, transmite um byte por vez e pode atender a diversos dispositivos si-
multaneamente.
O canal seletor é geralmente síncrono e projetado para atender uma única operação de
E/S a cada instante, sendo normalmente utilizado para controlar um dispositivo de alta veloci-
dade. O canal bloco-multiplexador combina as características dos canais multiplexador e sele-
tor, provê conexão a diversos dispositivos de alta velocidade e transfere um bloco de dados em
cada operação.
Sistemas de E/S
O sistema de E/S se constitui basicamente de quatro elementos: o dispositivo (device
ou drive), a interface (controladora), o programa de comunicação (device driver) e as rotinas
de E/S do sistema operacional.
Figura V.18 - Sistema de E/S
As rotinas de E/S pertencem à camada de mais alto nível do sistema operacional e têm
por objetivo permitir ao usuário realizar operações de E/S sem se preocupar com detalhes de
operação do dispositivo que está sendo acessado. Assim, quando um usuário cria um arquivo
em disco, não lhe interessa saber como é a formatação do disco, nem em que trilha ou setor o
arquivo será gravado.
Um dos principais objetivos das rotinas de E/S é propiciar uma interface simples entre
as aplicações e os dispositivos bem como entre os dispositivos e o restante do sistema operaci-
onal. Elas são também responsáveis por implementar todo um mecanismo de proteção de aces-
so aos dispositivos e arquivos.
Disco x
cilindro y
trilha z
setor w
Organização de Computadores 24
Os device drivers são as rotinas do sistema operacional que têm como função se comu-
nicar com os dispositivos em nível de hardware, geralmente através de placas controladoras.
Elas especificam características físicas de um dispositivo. Cada device drive manipula somente
um tipo de dispositivo ou um grupo de dispositivos semelhantes. Os drivers têm como função
receber comandos gerais repassados pelas rotinas de E/S e traduzi-los para comandos específi-
cos que são executados pelas controladoras.
As controladoras são componentes eletrônicos, isto é, são placas instaladas nos slots da
placa mãe de um PC por exemplo, responsáveis por manipular diretamente os dispositivos de
E/S. Suas principais funções são: controle e temporização; comunicação com o processador;
comunicação com o dispositivo externo; armazenamento temporário (bufferização) dos dados
e detecção de erro. Estas placas variam em complexidade e no número de dispositivos que
controlam. Geralmente possuem memória e registradores próprios para poder executar as ins-
truções enviadas pelo device driver. Podem ser dos tipos serial ou paralela. (fig. V.19)
Figura V.19 - Diagrama de Blocos de uma Placa Controladora
As formas de acionamento e execução das operações de E/S, podem ser dos seguintes
tipos:
1. Programada com espera ocupada (busy wait)
2. acionada por interrupção
3. acesso direto à memória.
Figura V.20 - Estrutura de um Sistema de E/S
HDPrinterTecladoVídeo
MPUCP
Interfa-ce
Paralela
Interfa-ce
Serial
Interfa-ce
Serial
Interfa-ce
Paralela
Barramento
Reg. de Dados Interface
com o Dis-
positivo
dados
Reg. de Estado
Dispositivo
Vias de Endereço
Interface
com o Dis-
positivo
Lógica de
E/S
estado
Vias de Controle controle
Organização de Computadores 25
UCP
Disposi-
tivoprocesso
read
status
write
E/S programada com espera ocupada (Busy Wait)
É o método mais simples possível, onde o computador possui apenas uma instrução de
entrada (IN) e uma de saída (OUT). Dependendo da implementação, estas instruções podem
ler e gravar diretamente na memória (caracterizando o memory-mapped I/O) ou acessar dire-
tamente a interface do dispositivo.
Em ambos os casos dois ou três buffers (registradores) são utilizados para cada dispo-
sitivo, um para status, um para entrada (read) e outro para saída (write). Um único caractere é
transferido entre um registrador da UCP e o dispositivo de E/S selecionado, sendo que a UCP
deve executar a instrução explícita desejada (IN ou OUT) para cada caractere transmitido ou
recebido.
Figura V.21 - E/S Programada
Ao usar E/S programada para leitura de um caractere por exemplo, a UCP fica em loop
lendo repetidamente o registrador de status, esperando que o bit que autoriza a operação seja
setado pelo dispositivo. A seguir ela lê o dado colocado pelo dispositivo no buffer de leitura
(read) e limpa (resseta) o bit previamente setado pelo dispositivo no buffer de status. O pro-
cesso de escrita é semelhante.
A principal desvantagem da E/S programada é que a UCP gasta a maior parte do seu
tempo em loop, esperando um dispositivo ficar pronto. Esta prática é chamada de espera ocu-
pada (busy wait), que é uma espera dispendiosa. Uma maneira de evitar esta perda desnecessá-
ria de capacidade de processamento da UCP é fazer com que esta não precise ficar esperando
pelo dispositivo que deve, ele prórpio, informar à UCP quando do término da execução da
operação solicitada. Este é o método da interrupção.
E/S acionada por interrupção
O termo interrupção é usado para identificar a ocorrência de um evento não-freqüente,
não-esperado ou aleatório, que obriga a UCP a desviar, temporariamente, o fluxo do programa
em execução para o de uma rotina que atenda a interrupção. A grande vantagem desta técnica
em relação a da E/S programada, está no fato de que a UCP deixa de esperar em loop pelo
dispositivo.
O método mais usual de implementar a técnica de interrupção é pela ativação de um
sinal de controle chamado interrupt request (IR), ao qual a UCP responde ativando uma rotina
de tratamento específica para cada dispositivo (device drive). O processamento da interrupção
envolve:
MP ou I/O
CTL
Organização de Computadores 26
1. a UCP identifica a fonte da interrupção;
2. a UCP recupera o endereço inicial da rotina de tratamento da interrupção (interrupt
table);
3. o PC (program counter) e o vetor de status do processo corrente (PSW) são salvos
na pilha (stack);
4. o PC é carregado com o endereço inicial da rotina de tratamento da interrupção;
5. após a execução da rotina de tratamento, o PC e a PSW do processo interrompido
são recuperados da pilha, e o processo interrompido reinicia o processamento de
onde havia parado.
Embora a E/S por interrupção represente um avanço em relação à E/S programada, ela
está longe de ser perfeita. O problema é que ela requer a ocorrência de uma interrupção para
cada caractere transmitido e processar uma interrupção é uma tarefa cara. A solução é voltar a
E/S programada porém não deixar a responsabilidade de sua execução nas mãos da UCP -
surge então, a técnica do DMA (Acesso Direto à Memória).
E/S por DMA
É a transferência de dados diretamente entre o dispositivo de E/S e a MP, sem a inter-
venção da UCP. Na operação de DMA, a UCP atua apenas nas fases de inicialização (forne-
cendo o endereço e o número de bytes a ser transferido) e de finalização. Toda a transferência
é feita automaticamente pela controladora de DMA.
Ao receber um pedido de DMA (DMA request), a UCP interrompe suas atividades em
um dos pontos permitidos dentro do ciclo de instrução (fig. V.21), e atende o DMA.
Figura V.21 - Ciclo de Instrução x Pontos de Interrupção
A técnica de DMA pode ser implementada segundo duas filosofias:
1. block transfer ==> transfere grandes volumes de dados em uma única operação
(durante a transferência dos dados a UCP pode continuar operando normalmente
porém não pode acessar a MP);
ciclo de
UCP
decodefetch storeexecutiondata fetch
DMA
breakpoints
ciclo de instrução
IR breakpoint
Organização de Computadores 27
2. cycle stealing ==> transfere apenas um ou dois bytes de cada vez, "roubando" pe-
quenos ciclos de memória que não são sentidos pela UCP em virtude da parada do
seu relógio.
A pastilha de DMA possui (pelo menos) 4 registradores internos, todos podendo ser
carregados pelo processo em execução na UCP. O primeiro deles contém o endereço de me-
mória a ser lido ou escrito, o segundo contém o contador de quantos bytes (ou palavras) de-
vem ser transferidos, o terceiro especifica o dispositivo a ser usado e o quarto informa a ope-
ração a ser realizada (leitura ou gravação).
Comando de
leitura
Verifica Estado
Pronto
?
Lê da Interface
Sim
Grava na
Memória
FIM
?
Não
Comando de
leitura
Verifica Estado
OK
?
Lê da Interface
Sim
Grava na
Memória
FIM
?
Não Não
Erro
Comando de
leitura
Lê Estado do
DMA
Figura V.22 - Fluxograma representativo das 3 estratégias de comunicação com dispositivos
de E/S. (a) entrada e saída programada; (b) por interrupção e © por DMA
V.6 Arquiteturas Paralelas
Caracteriza-se pela execução em paralelo e, portanto, ao mesmo tempo, de 2 ou mais
instruções de um mesmo processo ou de diferentes processos. As arquiteturas paralelas podem
ser classificadas segundo Flynn em três categorias, com base no número de fluxos de dados e
de instruções que elas suportam:
1) SISD - Single Instruction Single Data (fluxo único de instrução e de dado - caracte-
rizado pelo computador seqüencial - também conhecido como Von Newman)
(c)(b)(a)
≈
≈
I/O → UCP
DMA → UCP
UCP → DMA
InterrupçãoI/O → UCP
UCP → I/O
UCP → MP
I/O → UCP
I/O → UCP
UCP → I/O
Organização de Computadores 28
x %
registradores
++
2) SIMD - Single Instruction Multiple Data (fluxo único de instrução porém múltiplo
de dados - caracterizados pelas vector e array machines)
3) MIMD - Multiple Instruction Multiple Data (múltiplos fluxos de instruções e de da-
dos - caracterizados por arquiteturas com matrizes de processadores)
SISD
• é a máquina convencional, com um único programa executado passo a passo por
uma única UCP.
• uma quantidade limitada de paralelismo pode ser alcançada com a introdução de al-
gumas modificações na estrutura SISD básica, como por exemplo:
a) pipelining
P1 A B C D E F
P2 - A B C D E
P3 - - A B C D
P4 - - - A B C
P5 - - - - A B
1 2 3 4 5 6 t
Figura V.23 - Máquina SISD com Pipeline
Baseia-se no processamento do ciclo de instrução por partes, como numa linha de
montagem, onde cada estação de trabalho é responsável pelo processamento de apenas uma
fase do ciclo total.
b) máquina com múltiplas unidades funcionais
A UCP busca tantas instruções quantas forem as unidade funcionais disponíveis ou até
que uma instrução dependa do resultado de outra ainda em execução.
Figura V.24 - Máquina SISD com Múltiplas Unidades Funcionais
÷
Estações / instruções
Organização de Computadores 29
SIMD
Ideal para aplicações vetoriais e matriciais, onde uma mesma operação se repete sobre
vários dados.
Figura V.25 - Estrutura SIMD
MIMD
São vários processadores independentes, cada um executando um programa diferente.
Dependendo do granularidade de integração pode caracterizar um multiprocessador, uma rede
de computadores ou um sistema distribuído.
V.7 Arquiteturas CISC e RISC
A tecnologia RISC (Reduced Instruction Set Computer), criada nos laboratórios da
IBM Research em 1987, pelo Dr. Jolm Cocke, representou uma quebra na tendência até então
predominante, que era na direção de máquinas cada vez maiores e mais complexas, conhecida
como tecnologia CISC (Complex Instruction Set Computer).
Embora não haja uma definição precisa para RISC, os primeiros projetos nesta linha
fizeram uso de um pequeno conjunto de instruções simples, que eram executadas rapidamente,
em um único ciclo de máquina. Esta característica era oposta a da tecnologia CISC, onde as
instruções consumiam vários ciclos de máquina.
Em função desta característica, as instruções RISC podiam ter sua execução realizada
diretamente pelo hardware, como nas máquinas mais antigas desprovidas de microcódigo, o
que simplificava e reduzia os custos de projeto e fabricação dos computadores.
Uma conseqüência do princípio de que toda instrução RISC só pode consumir um ciclo
de máquina é que qualquer operação que consuma mais do que um ciclo não pode pertencer
ao conjunto de instruções. Assim, muitas máquinas RISC não possuem instruções de multipli-
Vetor A Vetor B
Vetor Resultado
A + B
ULA
Organização de Computadores 30
cação e de divisão. Estas e as demais instruções de ponto flutuante são executadas por um co-
processador aritmético.
Em 1991 a IBM lançou a chamada 2a
geração da tecnologia RISC, baseada na tecnolo-
gia pipeline e de processadores de funções múltiplas. As máquinas desta geração, como por
exemplo o Power PC e o Power 2, geralmente possuem um processador de desvio, um de
ponto-fixo e um de ponto-flutuante, e podem executar até quatro ou cinco operações por ciclo
de máquina.
Em resumo, uma máquina RISC se caracteriza por:
a) ter instruções simples executadas em um ciclo de máquina;
b) usar apenas as instruções Load e Store para referenciar a memória;
c) fazer uso da tecnologia pipeline;
d) ter instruções executadas diretamente pelo hardware;
e) ter instruções com formato fixo;
f) ter poucas instruções;
g) delegar a complexidade para o compilador; e
h) fazer uso de múltiplos conjuntos de registradores.
V.8 Referências Bibliográficas
• Stallings, William, Operating Systems,Ed. Acmillan Publishing Company, 1992.
• Tanenbauum, Andrew S., Organização Estruturada de Computadores, Ed. Campus, 1993.
• Silberschatz, Abraham e Galvin, Peter B., Operating Systems Concepts, Ed. Addison-
Wesley Publishing Company, 1994.

Mais conteúdo relacionado

Mais procurados

Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Algoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoAlgoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoElaine Cecília Gatto
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresMarco Silva
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas OperacionaisLucas Aires Araújo
 
01 introducao ifb - excelente
01   introducao ifb - excelente01   introducao ifb - excelente
01 introducao ifb - excelenteSENAR
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreElaine Cecília Gatto
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computaçãoPAULO Moreira
 
von newman e periféricos
von newman e periféricosvon newman e periféricos
von newman e periféricosAdir Kuhn
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von NeumannWanessa Ribeiro
 
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informaticaPedro Felipe Teixeira
 

Mais procurados (20)

Hardware
HardwareHardware
Hardware
 
Introducao aula-i
Introducao aula-iIntroducao aula-i
Introducao aula-i
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Aula01a_Introducao_Microcontroladores
Aula01a_Introducao_MicrocontroladoresAula01a_Introducao_Microcontroladores
Aula01a_Introducao_Microcontroladores
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Aula 04 software
Aula 04 softwareAula 04 software
Aula 04 software
 
Algoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoAlgoritmos - Introdução à Computação
Algoritmos - Introdução à Computação
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de Computadores
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas Operacionais
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
01 introducao ifb - excelente
01   introducao ifb - excelente01   introducao ifb - excelente
01 introducao ifb - excelente
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computação
 
von newman e periféricos
von newman e periféricosvon newman e periféricos
von newman e periféricos
 
Artigo jaquiel-paim-final
Artigo jaquiel-paim-finalArtigo jaquiel-paim-final
Artigo jaquiel-paim-final
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von Neumann
 
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica
21476983 50-questoes-de-informatica-basica-50-questoes-basicas-de-informatica
 
Aula
AulaAula
Aula
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 

Destaque

Comandos de alex yudex romero
Comandos de alex yudex romeroComandos de alex yudex romero
Comandos de alex yudex romeroalexyudex
 
Ww2movie3
Ww2movie3Ww2movie3
Ww2movie3osmego
 
Monitores
MonitoresMonitores
MonitoresTiago
 
Chia receita de dar água na boca
Chia receita de dar água na bocaChia receita de dar água na boca
Chia receita de dar água na bocaSemente de Chia
 
Hardware questionario 04
Hardware   questionario 04Hardware   questionario 04
Hardware questionario 04Tiago
 
Butendiek Heftchen 2001
Butendiek Heftchen 2001Butendiek Heftchen 2001
Butendiek Heftchen 2001erhard renz
 
Robots
RobotsRobots
Robotsosmego
 

Destaque (14)

Nvu
NvuNvu
Nvu
 
Provadeingles6ano1
Provadeingles6ano1Provadeingles6ano1
Provadeingles6ano1
 
Comandos de alex yudex romero
Comandos de alex yudex romeroComandos de alex yudex romero
Comandos de alex yudex romero
 
Circuitos de alumbrado
Circuitos de alumbradoCircuitos de alumbrado
Circuitos de alumbrado
 
Ww2movie3
Ww2movie3Ww2movie3
Ww2movie3
 
Monitores
MonitoresMonitores
Monitores
 
Viral
ViralViral
Viral
 
Chia receita de dar água na boca
Chia receita de dar água na bocaChia receita de dar água na boca
Chia receita de dar água na boca
 
Hardware questionario 04
Hardware   questionario 04Hardware   questionario 04
Hardware questionario 04
 
Butendiek Heftchen 2001
Butendiek Heftchen 2001Butendiek Heftchen 2001
Butendiek Heftchen 2001
 
Cert f & b service trend college
Cert f & b service   trend collegeCert f & b service   trend college
Cert f & b service trend college
 
Robots
RobotsRobots
Robots
 
EconomíA (Conceptos)
EconomíA (Conceptos)EconomíA (Conceptos)
EconomíA (Conceptos)
 
Ensayo Internet
Ensayo InternetEnsayo Internet
Ensayo Internet
 

Semelhante a Organização de Computadores e Máquinas Virtuais

Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computaçãoElaine Cecília Gatto
 
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptx
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptxAula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptx
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptxgabrieloliveiramarti3
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxDoraestevao
 
conhecer o computador
conhecer o computadorconhecer o computador
conhecer o computadorgongas
 
computador
computadorcomputador
computadorgongas
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de MicroprocessadoresDiogo Silva
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computadorredesinforma
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturasFábio Andrade
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing Jorge Cardoso
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisHenry Raúl González Brito
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 

Semelhante a Organização de Computadores e Máquinas Virtuais (20)

Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
 
Introdução à Computação
Introdução à ComputaçãoIntrodução à Computação
Introdução à Computação
 
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptx
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptxAula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptx
Aula - SISTEMAS OPERACIONAIS - Prof. Gabriel.pptx
 
F oc aula_02a
F oc aula_02aF oc aula_02a
F oc aula_02a
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
conhecer o computador
conhecer o computadorconhecer o computador
conhecer o computador
 
computador
computadorcomputador
computador
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computador
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
AC nova-aula 1.pptx
AC nova-aula 1.pptxAC nova-aula 1.pptx
AC nova-aula 1.pptx
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 
Software e hardware
Software e hardwareSoftware e hardware
Software e hardware
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Hardware e sistemas operacionais
Hardware e sistemas operacionaisHardware e sistemas operacionais
Hardware e sistemas operacionais
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
1309 apostila windows_xp
1309 apostila windows_xp1309 apostila windows_xp
1309 apostila windows_xp
 

Mais de Tiago

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodleTiago
 
Apostila cdtc dotproject
Apostila cdtc dotprojectApostila cdtc dotproject
Apostila cdtc dotprojectTiago
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascalTiago
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascalTiago
 
Python bge
Python bgePython bge
Python bgeTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharpTiago
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpTiago
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpTiago
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpTiago
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharpTiago
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantesTiago
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafaelTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharpTiago
 
Classes csharp
Classes csharpClasses csharp
Classes csharpTiago
 

Mais de Tiago (20)

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
Apostila cdtc dotproject
Apostila cdtc dotprojectApostila cdtc dotproject
Apostila cdtc dotproject
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascal
 
Python bge
Python bgePython bge
Python bge
 
Curso python
Curso pythonCurso python
Curso python
 
Curso python
Curso pythonCurso python
Curso python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharp
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharp
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharp
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharp
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharp
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafael
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharp
 
Classes csharp
Classes csharpClasses csharp
Classes csharp
 

Último

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdfdio7ff
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASEdinardo Aguiar
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
 

Organização de Computadores e Máquinas Virtuais

  • 1. Disp SMemóriaDisp E UCP UC Sinais de Controle e Status dados instruções V - Organização de Computadores sta disciplina consiste no estudo dos componentes físicos que compõem o computador, cuja configuração básica e mais geral pode ser vista como na figura V.1 abaixo. Figura V.1 - Organização de um Computador onde, por definição, considera-se: • computador - como sendo uma máquina eletrônica, capaz de solucionar problemas através da execução automática de instruções que lhe sejam previamente forneci- das. • hardware - constituído pelos circuitos eletrônicos que compõem o computador e que o tornam capaz de reconhecer e executar um conjunto limitado de instruções simples. • software - constituído pelo conjunto de programas necessários para tornar o har- dware útil e operacional. • programa - como sendo uma peça de software constituída por uma seqüência de instruções que descrevem ao computador como executar uma determinada tarefa. • linguagem de máquina - constituída pelo conjunto básico de instruções que são re- conhecidas pelo hardware e, para a qual todo programa precisa ser convertido para que possa ser executado. • tradutor - um programa que converte outros programas para a linguagem de má- quina. Pode ser de três tipos: montador (para a linguagem assembly), interpretador (tradução e execução passo a passo) e compilador (tradução e execução em fases distintas). V.1 Máquina Virtual Constitui-se de uma abstração onde, dentro de um único computador hospedeiro, o universo gerado por cada linguagem define uma máquina hipotética (virtual) capaz de reco- nhecer e executar diretamente as instruções daquela linguagem. É a generalização do conceito de hardware. E UAL
  • 2. Organização de Computadores 2 Vantagens desta abordagem: 1. Um computador pode ser considerado como composto por "n" máquinas virtuais, cada uma delas com sua própria configuração e linguagem de máquina; 2. Uma pessoa, cujo trabalho seja gerar programas (aplicativos) para a máquina virtual de ní- vel "k" ou outro qualquer, não precisa conhecer ou se preocupar com as particularidades dos níveis inferiores ao seu; 3. A estrutura de níveis permite ver o computador como um conjunto hierárquico de facilida- des que possibilitam flexibilidade e independência ao usuário. " As linguagens de 4a geração - orientadas a objeto, com interfaces gráficas e super amigáveis derrubou o mistério e abriu as portas do computador ao usuário leigo e ao público em geral." Figura V.2 - Máquina Virtual O Modelo Multinível Contemporâneo A maioria dos computadores modernos possui dois ou mais níveis, sendo que máquinas com seis ou mais níveis são cada vez mais comuns. Tais níveis se subdividem basicamente em Hardware, Firmware, Software Básico, Utilitários e Softwares Aplicativos. A figura V.3 abai- xo, descreve um computador hipotético composto por 6 níveis, a saber: nível 0 - Lógica Digital • constitui o hardware do computador. O advento dos microprocessadores (pastilhas VLSI) e dos microcomputadores têm despertado o interesse e aberto, cada vez mais, o mundo da lógica digital aos profissionais de informática e ao público em ge- ral. • no nível 0 encontram-se: os circuitos eletrônicos (cap. IV) e os diversos sistemas (módulos) que compõem o computador: UCP, memória, dispositivos de E/S, dis- positivos de comunicação e interfaces. • o nível 0 executa diretamente as instruções (ou microinstruções) submetidas pelo nível 1. Máquina Virtual Mn Ling Máq - Ln Máquina Virtual M1 Ling Máq - L1 Máquina Virtual M0 Ling Máq - L0 Programas em Ln são inter- pretados e traduzidos por um interpretador residente na máquina Mn-1 Programas em L0 são inter- pretados e executados dire- tamente pelo hardware do computador
  • 3. Organização de Computadores 3 Máquina Virtual M4 Ling de Montagem Firmware Máquina Virtual M5 Orientada ao Prob. Máquina Virtual M0 Lógica Digital Software Aplicativo Software Básico e Utilitários Ling. Alto Nível Ling. Baixo Nível (assembly) tradução (compilador) tradução (montador) interpretação parcial (SO) interpretação (microprograma) execução pelo hardware Máquina Virtual M2 Máq. Convencional Hardware Máquina Virtual M3 Sistema Operacional Máquina Virtual M1 Microprogramação Figura V.3 - Modelo Multinível nível 1 - Microprogramação • é o verdadeiro nível de linguagem de máquina. O microprograma, residente em memória permanente (ROM), compõe o que é conhecido por firmware e tem por função interpretar e traduzir as instruções que lhe são submetidas pelos níveis supe- riores. • nem todas as máquinas possuem este nível, veja as máquinas RISC por exemplo. Nas máquinas não microprogramadas, o nível 2, chamado de máquina convencio- nal, é diretamente executado pelo hardware. • as vantagens da microprogramação são: a) facilitar o projeto e a construção dos circuitos digitais, através da imple- mentação de parte da lógica digital dentro do firmware; b) flexibilizar e possibilitar o desenvolvimento de instruções mais potentes a nível de máquina convencional. • o conjunto de microinstruções é geralmente pequeno, no entorno de duas ou três dezenas, sendo que a maior parte delas envolvendo a movimentação de dados de uma parte da máquina para outra, ou a realização de alguns testes simples. • um mesmo computador pode suportar mais de um microprograma, cada um defi- nindo uma máquina virtual de nível 1 diferente.
  • 4. Organização de Computadores 4 • o microprograma, escrito pelo microprogramador e armazenado em uma memória não volátil, tem como função interpretar (buscar, examinar e executar) cada uma das instruções de um programa em nível de máquina convencional. Para isto, o mi- croprograma deve acessar e controlar todos os recursos de hardware (registrado- res, barramentos, ULAs, memórias e outros). • as microinstruções são compostas apenas por sinais de controle e o microprograma é executado por um dispositivo chamado sequenciador que, juntamente com os demais circuitos de hardware, compõe a microarquitetura. • um dos pontos de projeto da microarquitetura é a definição da largura das mi- croinstruções ou seja, da memória do microprograma, isto é, da micromemória. Projetos do tipo horizontal fazem uso de um número relativamente pequeno de microinstruções largas, e os do tipo vertical muitas microinstruções estreitas. • outra opção de projeto é a adoção da nanoprogramação, que consiste basica- mente na adoção de uma terceira memória, a nanomemória, para armazenar as ins- truções do nanoprograma. • com a nanoprogramação a microarquitetura fica composta da memória principal, volátil, que armazena o programa em execução, a micromemória, não volátil, que armazena o microprograma e a nanomemória, também não volátil, que armazena o nanoprograma, veja figura V.4. • a nanoprogramação se constitui na realidade, de um artifício para reduzir o tama- nho do microprograma naqueles casos em que ocorra muitas repetições de uma ou mais microinstruções. O nanoprograma passa a conter o conjunto das microinstru- ções usadas no microprograma, armazenados sem repetição, e o microprograma matém a lógica original usando não mais as microinstruções propriamente ditas mas seus endereços na nanomemória. Figura V.4 - Microprogramação convencional (a) e nanoprogramação (b) (*) Observe na figura que, na microprogramação convencional o tamanho gasto para armaze- nar o microprograma é de "n x w" (número de instruções multiplicado pela largura em bits de cada microinstrução) e na nanoprogramação é de "n x log2m + m x w" (número de microins- truções multiplicado pelo logaritmo na base dois do tamanho da memória de nanoprogramação somado ao tamanho da memória de nanoprogramação. nível 2 - Máquina Convencional Log2m (b) n (a) m W bits microprograma microprograma nanoprograma W bits
  • 5. Organização de Computadores 5 • é, na verdade, a "máquina" vendida ao usuário genérico. Suas características técni- cas, operacionais e funcionais são fornecidas através dos manuais de referência, comercializados junto com o equipamento. • é o nível onde reside o "kernel" do sistema operacional, que interpreta os utilitários, a linguagem de controle e as rotinas que residem no nível 3. • o SO pode ser interpretado pelo microprograma ou executado diretamente pelo hardware, naquelas máquinas desprovidas do nível 1. nível 3 - Sistema Operacional • é o nível em que o usuário interage diretamente (através do uso de utilitários e da linguagem de controle) ou indiretamente (através de programas aplicativos desen- volvidos em máquinas de níveis superiores). • o windows 3.1, por exemplo, é uma máquina virtual colocada acima deste nível e cuja finalidade é proporcionar ao usuário uma interface mais amigável e de mais fá- cil assimilação. • é geralmente, um nível híbrido, onde parte de suas instruções são interpretadas pelo "kernel" do SO (nível 2) e parte são interpretadas diretamente pelo microprograma (nível 1). nível 4 - Linguagem de Montagem • é genericamente chamada de assembly, embora cada máquina tenha seu próprio as- sembly, e é traduzida para o nível inferior pelo montador, comumente chamado de assembler. • o assembly já foi muito importante em épocas passadas, porém hoje é totalmente suplantado pelas linguagens de alto nível para o desenvolvimento de programas aplicativos e até utilitários. nível 5 - Linguagens Orientadas para o Problema • consiste em diferentes máquinas virtuais, cada uma definida pelo ambiente criado por sua linguagem de programação de alto nível. • as linguagens de alto nível são mais complexas que o assembly e requerem traduto- res mais bem elaborados e potentes dos tipos interpretadores e compiladores. • nível 6 e superiores • constituído por sistemas projetados para criar "shells" - máquinas virtuais especial- mente adequadas para certas aplicações, como por exemplo o word, o access, o ex- cel, o lotus, etc. Em resumo, os computadores modernos são constituídos de uma série hierárquica de máquinas virtuais, cada uma projetada e construída sobre suas predecessoras. Cada nível re- presenta um grau distinto de abstração, com a presença de diferentes recursos e operações; o que possibilita, através da supressão de detalhes irrelevantes, tornar o computador mais amigá- vel e mais fácil de ser compreendido pelo público em geral. Na estrutura de um PC, por exemplo, conforme pode ser visto na figura V.5 abaixo, 4 níveis virtuais podem ser considerados: o dos programas aplicativos, o do sistema operacional,
  • 6. Organização de Computadores 6 o dos programas de interface com os dispositivos periféricos (drivers) e as rotinas de entrada e saída padrão fornecidas pela BIOS. Observe que a segurança pode ser afetada uma vez que qualquer dos níveis pode realizar acesso direto às rotinas da BIOS e, portanto, sem se subme- ter aos critérios e procedimentos de proteção. Figura V.5 - Estrutura do MS-DOS V.2 A Unidade Central de Processamento (UCP) A Unidade Central de Processamento - UCP, é o "cérebro" do computador, e sua fun- ção é executar os programas armazenados na memória principal, buscando instruções e exe- cutando-as uma após a outra. Na figura V.6 abaixo, pode ser visto um esquema simplificado da organização interna do hardware. Observe que a UCP faz uso de um barramento para se comunicar com os demais componentes do sistema, como a memória principal e os demais dispositivos periféricos que compõem o computador. Este barramento é constituído por diversas vias paralelas por onde transitam os sinais. Grupos distintos destas vias, na prática, configuram diferentes barramentos, tais como o de dados, o de endereços e o de sinais de controle. O número de vias utilizado em cada um destes barramentos depende das características físicas de projeto do computador. Figura V.6 - Organização do Hardware Drivers ROM BIOS Device Drivers SO - residente Programas Aplicativos Barramento (dados + endereços + controle) UCP UC UAL IMPHDMP REGs Periféricos de E/S
  • 7. Organização de Computadores 7 As principais considerações de projeto de um barramento, além do número de vias, são: a temporização, o mecanismo de arbitragem, o tratamento de interrupções e o tratamento de erros. Quanto a temporização, um barramento pode ser do tipo síncrono ou do tipo assíncro- no. Num barramento síncrono existe um relógio temporizador que define a freqüência de operação do mesmo, chamada de ciclo de barramento. Neste tipo de barramento, toda ativida- de ou operação de transferência é alinhada, ou seja, sincronizada com a freqüência do barra- mento e sempre consome um número inteiro e conhecido destes ciclos. No barramento assín- crono não existe tal relógio, ou seja, os ciclos são variáveis e podem tomar a duração que for requerida pela operação. Na figura V.7a, por exemplo, é mostrado um barramento síncrono com um relógio de temporização de 5Mz, que produz um ciclo de 200ns, e uma operação de leitura de um byte da MP que consome 4 ciclos de barramento, ou seja, 800ns. Observe o sinal do relógio definindo o ciclo do barramento, os sinais de controle RD e MREQ definindo respectivamente a opera- ção a ser realizada, leitura, e a requisição de uma operação de memória. O barramento de en- dereços disponibiliza para a MP a posição a ser lida, durante um determinado número de ciclos de barramento. Posteriormente a MP coloca no barramento de dados o conteúdo lido e a UCP, após um número prefixado de ciclos de barramento sabe que pode buscar o dado que estará estável e disponível no barramento. No barramento assíncrono, face a inexistência do relógio para disciplinar a transfe- rência, é introduzido um processo de sinalização, conhecido por handshake, entre a UCP e o dispositivo envolvido na operação. Na figura V.7b, o handshake é representado pelos sinais MSYN - Master Synchronism (sincronismo mestre) e SSYN - Slave Synchronism (sincronismo escravo). Observe que em resposta ao MSYN a MP coloca o dado no barramento e responde ao mestre ativando o sinal SSYN, que informa o cumprimento da missão. Os barramentos assíncronos apresentam maior flexibilidade de uso e oferecem vanta- gens para atendimento a um conjunto heterogêneo de dispositivos (lentos e rápidos), uma vez que seus ciclos não são fixos. Por outro lado, um sistema síncrono é mais fácil de ser construí- do e oferece maior velocidade de operação. A maioria dos barramentos é síncrona. Mecanismos de arbitragem tem a ver com a forma como um dispositivo se torna mestre do barramento. Pode ser centralizado, onde um único árbitro, decide quem será o próximo a controlar o barramento, ou descentralizado, quando não há árbitro e sim um procedimento distribuído e observado por todos os candidatos a mestre. Sempre que a UCP compete pelo barramento ela o faz com menor prioridade, para evitar que dispositivos de E/S mais lentos fiquem prejudicados no acesso a condição de mestre. Uma vez que múltiplos dispositivos podem querer causar uma interrupção simultanea- mente, o mesmo tipo de problemas de arbitragem está presente e a solução usual é assinalar prioridades aos dispositivos e usar um árbitro para controlar o problema. A organização interna da UCP varia em função do grau de sofisticação e avanço tec- nológico do hardware. Sua organização genérica básica é constituída pela UC - Unidade de Controle, pela UAL - Unidade Aritmética e Lógica e por um banco de registrados.
  • 8. Organização de Computadores 8 Endereço da Posição de Memória MREQ RD tempo T4T3T2T1 (a) (b) Figura V.7 - Barramento Síncrono (a) e Barramento Assíncrono (b) A UC é a parte encarregada de executar as operações de controle do ciclo de instrução e de sinalização para todos os demais componentes do sistema. A ULA se encarrega da execu- ção de todas as operações aritméticas e lógicas decorrentes da execução dos programas. O banco de registradores serve de memória local para armazenamento dos dados em uso na UCP. A figura V.8 abaixo mostra o esquema da organização interna de uma UCP básica, onde: • barramentos • o barramento interno é a via de comunicação entre os componentes internos da UCP. • o data bus é o barramento para transferência de dados entre a UCP e os demais componentes (8, 16 e 32 bits são os mais comuns). • address bus é o barramento para endereçamento de memória (10 bits - 1Kb, 20 bits - 1 Mb, 32 bits - 4Gb). • registradores de controle e de estado • MBR - Memory Buffer Register, (RDM em português) serve de armazenamento temporário de dados no caminho de/para a MP. Dado Dado Endereço da Posição de Memória MREQ tem- RD MSYN SSYN
  • 9. Organização de Computadores 9 • MAR - Memory Address Register, (REM em português) serve para armazena- mento temporário do endereço do dado a ser lido ou gravado na memória. • I/O BR - serve de armazenamento temporário de dados no caminho de/para dispo- sitivos de E/S. • I/O AR - serve para especificar um determinado dispositivo de E/S. • IR - Instruction Register, registrador para armazenamento da instrução corrente. • PC - Program Counter, registrador que contém o endereço da próxima instrução a ser executada. • PSW - Program Status Word, que contém informações sobre o estado do proces- samento, tais como: sign (sinal), zero, carry (vai um ou vem um), equal, overflow (estouro), interrupt enable/disable (habilitação ou não de interrupção) e supervisor (modo de execução). • registradores de dados • AC - Accumulator, registrador que, no caso apresentado na figura, armazena uma das entradas da ULA. • TR - Temporary Register • registradores de uso genérico • registradores para endereçamento • SP - Stack Pointer • SX - Segment Pointer • IX - Index Register Figura V.8 - Organização interna da UCP a. O Ciclo de Instrução A UCP executa cada instrução através de uma seqüência de pequenos passos conforme a seguir: • FETCH (busca) a) recupera da MP a próxima instrução a ser executada, isto é, a instrução apontada pelo PC e a armazena no registrador instrução IR. b) atualiza o PC para que aponte para a próxima instrução a ser executada. • DECODE (decodificação) c) interpreta a instrução armazenada em IR. • DATA FETCH (busca dos operandos) sinais de controle Decodifcador de Instrução e Controlador do Ciclo de Máquina data bus address bus barramento interno MARMBR AC TR IR PC UC R1 ULA I/O AR I/O BR
  • 10. Organização de Computadores 10 d) se a instrução necessitar de dados armazenados na memória, calcula o ende- reço dos mesmos e, e) recupera-os armazenando nos registradores internos. • EXECUTION (execução) f) executa a instrução (aritmética, lógica ou desvio) • WRITE BACK (salva o resultado) g) salva o resultado na MP ou em um dos registradores internos e, h) retorna ao primeiro passo. V.3 A Memória Principal É o dispositivo onde são armazenados os programas e os dados de uso corrente. É or- ganizada segundo uma matriz de células, cada uma podendo armazenar um determinado núme- ro de bits (8 / 16 / 32 / ...). Cada célula de memória é identificada por um endereço único e imutável. O acesso é aleatório e o tempo de acesso é o mesmo para qualquer célula, que também representa a uni- dade de acesso à memória (menor quantidade de bits que pode ser lida ou gravada). a. Conexão UCP x MP M B R Address Bus Data Bus MREQ bit UCP R/W bit M A R MP Figura V.9 - Conexão UCP x MP onde, R/W bit ⇒ especifica se a operação é de leitura "R" ou de escrita "W". MREQ bit ⇒ Memory REQuest, especifica uma ordem de acesso à memória emitida pela UCP. b. Tipos de Memória • volátil - perde o conteúdo armazenado quando não energizada. (RAM - Random Access Memory). ∗ tipos de RAM a) Estática - a gravação é estável, só se alterando através de operações de es- crita (consome mais energia); b) Dinâmica - a gravação do bit "1" se descarrega com o tempo, precisando ser "refrescada" periodicamente (ciclo de refresh). • não volátil - não perde o conteúdo armazenado. (ROM, PROM, EPROM, EE- PROM)
  • 11. Organização de Computadores 11 c) ROM - Read Only Memory (gravada de fábrica - permanente); d) PROM - Programable ROM (pode ser gravada uma única vez pelo usuário, através de equipamentos especiais); e) EPROM - Erasable PROM (pode ser apagada através de raios ultraviole- tas); f) EEPROM - Electrical EPROM (pode ser apagada através de sinais elétri- cos); g) Memória Flash - é uma memória que pode ser utilizada como apenas de leitura ou como de leitura e gravação, dependendo do driver utilizado. Ge- ralmente é utilizada como um disco em pastilhas (chips), SSD - Solid State Disk. c. Endereçamento de Memória É realizado por lógica combinacional (cap. IV), onde os bits de endereçamento mais o sinal R/W habilitam a leitura ou gravação de uma única ou de um conjunto de células de cada vez, dependendo do tamanho do barramento de dados. d. Ordem dos Bytes A ordem em que os bytes são considerados dentro da célula é completamente transpa- rente ao usuário, mas é de fundamental importância quanto à compatibilidade de sistemas e transportabilidade dos dados. A ordem pode ser do tipo big endian (da esquerda para a direita), usado pelos proces- sadores Motorola, ou little endian (da direita para a esquerda), característico dos processado- res Intel. A figura V.10 mostra um problema de transportabilidade de dados entre uma máquina little endian (PC486) e uma big endian (SPARC Station). Observe que a simples inversão dos dados não soluciona o problema. Byte número Byte número Byte número 3 2 1 0 0 1 2 3 0 1 2 3 0 0 0 5 5 0 0 0 0 0 0 5 Y R A M M A R Y Y R A M (a) (b) (c) Figura V.10 - (a) mensagem original no 486 - little endian, (b) mensagem após ser recebida pela SPARC - big endian, (c) mensagem após ser invertida (observe que a inversão pura corri- ge o valor numérico porém inverte o alfanumérico) e. Detecção e Correção de Erros Os sistemas de detecção e correção de erros são implementados de forma a aumentar a confiabilidade do armazenamento e da transferência de dados entre os diversos componentes do computador. Detecção Simples
  • 12. Organização de Computadores 12 Técnicas Detecção e Correção a) Detecção Simples Apenas detecta o erro, provocando procedimentos de regravação do dado, de mensa- gem de erro na recuperação de um dado gravado ou, no caso de transmissão de dados, de sua retransmissão. Um método simples, porém largamente utilizado é o da adição de um bit de paridade (VRC - Vertical Redundancy Checking) ao código base do caracter. par ⇒ soma dos bits "1" deve ser par Paridade ímpar ⇒ soma dos bits "1" deve ser ímpar ex. Paridade par adicionada ao código ASCII de 7 bits caracter bit a b c z A 1 1 1 1 1 1 2 1 1 1 1 0 3 0 0 0 1 0 4 0 0 0 1 0 5 0 0 0 0 0 6 0 1 1 1 0 7 1 0 1 0 1 VRC 1 1 0 1 0 . (*) este mecanismo de paridade não detecta um número par de erros no caracter b) Detecção e Correção b.1) Código BCC Uma técnica simples é usar uma paridade longitudinal para blocos de memória - BCC (Block Check Character) em adição ao VRC. caracter BCC bit a b c z A 1 1 1 1 1 1 1 2 1 1 1 1 0 0 3 0 0 0 1 0 1 4 0 0 0 1 0 1 5 0 0 0 0 0 0 6 0 1 1 1 0 1 7 1 0 1 0 1 1 VRC 1 1 0 1 0 1
  • 13. Organização de Computadores 13 Neste caso é garantida a detecção de erros do tipo rajada (vários bits consecutivos), que tenham comprimento menor ou no máximo igual ao tamanho do caracter. Para rajadas maiores a detecção não é garantida. A correção é possível pelo cruzamento do VCR e BCC e identificação da(s) célula(s) com erro. Ex. caracter BCC bit a b c z A 1 1 1 1 1 1 1 2 1 1 1 1 0 0 3 0 1 0 1 0 1 4 0 1 0 1 0 1 5 0 1 0 0 0 0 6 0 0 1 1 0 1 7 1 0 1 0 1 1 VRC 1 1 0 1 0 1 Neste exemplo acima, o erro de rajada na letra "b" (4 bits em negrito) pode ser detec- tado pela paridade horizontal. Observar que a identificação dos bits errados só é possível quando o erro puder ser detectado simultaneamente pelas paridades horizontal e vertical. caracter BCC bit a b c z A 1 1 1 1 1 0 1 2 1 1 1 1 1 0 3 0 0 0 1 1 1 4 0 0 0 1 0 1 5 0 0 0 0 0 0 6 0 1 1 1 0 1 7 1 0 1 1 1 1 VRC 1 1 0 0 0 1 Neste outro exemplo o ruído atingiu parte das letras "Z" e "A". Observe que o erro foi detectado e ainda os bits errados de "A" puderam ser identificados. Já no exemplo abaixo você pode observar que nenhum erro foi detectado apesar da ocorrência de uma rajada de compri- mento 12, maior que o comprimento de um caracter. caracter BCC bit a b c z A 1 1 1 1 1 1 1 2 1 1 1 1 0 0 3 0 0 0 1 0 1 4 0 0 0 1 0 1 5 0 1 1 0 0 0 6 0 0 0 1 0 1 7 1 1 0 0 1 1 VRC 1 0 1 1 0 1
  • 14. Organização de Computadores 14 b.2) Código de Hamming Baseia-se na distância de hamming (HD), introduzida em 1950 por Richard Hamming, que conta o número de bits diferentes entre 2 palavras de mesmo tamanho. ex. de distância de hamming ⇒ 0 1 0 1 1 0 1 1 byte A 0 0 1 0 0 1 1 0 byte B ----------------- 1 1 1 1 1 1 ⇒ hd= 6 O código de Hamming consiste basicamente na introdução de vários bits de paridade em redundância que, através de um processo de exclusão combinatória, possibilitam identificar a falha e em alguns casos corrigir o bit errado. O número de bits de redundância necessários é calculado através da equação: ( ) ( ) 2 1 2 2 1 2 1 2 m n m m r r n m r m r + ≤ + + ≤ ⇒ + + ≤ + onde: n = m + r bits de redundância bits de dados As posições dos bits de redundância são obtidas através da fórmula: posx = 2x , x = [0, r-1]. ex. para um código ASCII com m = 7 temos que: a) (7 + r + 1) ≤2r ⇒ r ≥ 4 ( mínimo de 4 bits de redundância) b) a posição dos bits de redundância será: 1 (20 ), 2 (21 ), 4 (22 ) e 8 (23 ). X X X X 1 2 3 4 5 6 7 8 9 10 11 no relativo do bit bits de redundância Na verificação do erro, mede-se a paridade par ou ímpar, conforme tenha sido previa- mente definida, para cada bit de redundância aplicado sobre seu universo de atuação. Universo este obtido com base na composição do número que indica a posição relativa do bit de dado. ex. bit de redundância 1 (20 ) o universo de atuação do primeiro bit de paridade (bit 1) é composto pelos bits de dado pertencentes às seguintes posições: {3, 5, 7, 9 e 11}.
  • 15. Organização de Computadores 15 justificativa: 7 = 20 + 21 + 22 - 11 = 20 + 21 + 23 bit de redundância 2 (21 ) O segundo bit de paridade avalia os dados pertencentes às posições: {3, 6, 7, 10 e 11}. justificativa: 7 = 20 + 21 + 22 - 11 = 20 + 21 + 23 Em resumo, para um código de 4 bits de Hamming, o universo de atuação de cada bit de re- dundância é dado por: bit 1 (20 ) ⇒ {3,5,7,9 e 11} bit 2 (21 ) ⇒ {3,6,7,10 e 11} bit 3 (22 ) ⇒ {5, 6 e 7} bit 4 (23 ) ⇒ {9, 10 e 11} Com base nos bits de redundância e seus respectivos universos de atuação é que se re- aliza o processo de detecção e possível identificação do bit errado. Assim, se os bits de redun- dância número 1, 2 e 4 acusarem erro, então concluí-se que o bit errado é o da posição 11 porque 1 + 2 + 8 = 11 (20 + 21 + 23 ). A capacidade do método em detectar e corrigir erros depende da menor distância de hamming - HD obtida com a codificação adotada. A capacidade de detectar "d" erros requer um hdmin > d + 1 A capacidade de corrigir "d" erros requer um hdmin > 2d + 1 Assim, um código com hdmin = 4 é capaz de detectar erro de até 2 bits e corrigir erros de até 1 bit. hd = 4 Exemplos: a) erro no bit de posição 6 • representação do caracter ASCII "a" (1100001) com 4 bits de redundância em pari- dade ímpar. 0 1 1 0 1 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 10 11 • cálculo dos bits de redundância: bit 1: {3, 5, 7, 9 e 11} ≡ {1, 1, 0, 0, 1} ⇒ 0 bit 2: {3, 6, 7, 10 e 11} ≡ {1, 0, 0, 0, 1} ⇒ 1 bit 3: {5, 6 e 7} ≡ {1, 0, 0} ⇒ 0 bit 4: {9, 10 e 11} ≡ {0, 0, 1} ⇒ 0 • um erro no bit de posição 6 terá a seguinte representação:
  • 16. Organização de Computadores 16 0 1 1 0 1 1 0 0 0 0 1 1 2 3 4 5 6 7 8 9 10 11 • a verificação através dos bits de redundância fornecerá: bit 1: {1, 1, 0, 0, 1} ⇒ 0 correto ⇒ 0 bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1 bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (610) bit 4: {0, 0, 1} ⇒ 0 correto ⇒ 0 Olhando-se de traz para a frente é possível visualizar a posição do bit errado. Lembre que este mesmo valor, conforme visto no início desta seção, pode ser obtido pela fórmula da potência de 2: (21 + 22 = 6). b) erro nos bits 6 e 9 0 1 1 0 1 1 0 0 1 0 1 1 2 3 4 5 6 7 8 9 10 11 • verificação dos bits de redundância: bit 1: {1, 1, 0, 1, 1} ⇒ 1 errado ⇒ 1 bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1 bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (1510) bit 4: {1, 0, 1} ⇒ 1 errado ⇒ 1 Observe que o erro foi detectado porém os bits errados não puderam ser identificados.. c) erro nos 3, 6 e 9 0 1 0 0 1 1 0 0 1 0 1 1 2 3 4 5 6 7 8 9 10 11 • verificação dos bits de redundância: bit 1: {0, 1, 0, 1, 1} ⇒ 0 correto ⇒ 0 bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0 bit 3: (1, 1, 0} ⇒ 1 errado ⇒ 1 (1210) bit 4: {1, 0, 1} ⇒ 1 errado ⇒ 1 O erro de 3 bits foi detectado porém os bits errados não puderam ser identificados. d) erro nos bits 3, 5 e 6 0 1 0 0 0 1 0 0 0 0 1 1 2 3 4 5 6 7 8 9 10 11 • verificação dos bits de redundância:
  • 17. Organização de Computadores 17 bit 1: {0, 0, 0, 0, 1} ⇒ 0 correto ⇒ 0 bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0 bit 3: (0, 1, 0} ⇒ 0 correto ⇒ 0 (010) bit 4: {0, 0, 1} ⇒ 0 correto ⇒ 0 Observe que neste caso o método falhou na detecção do erro de 3 bits. V.4 Memória Secundária É utilizada para armazenar grandes volumes de dados. É constituída por diferentes dis- positivos, todos mais lentos e mais baratos por byte armazenado que a memória principal. Os tipos principais de memória secundária são: V.4.1 Discos Magnéticos • rígidos - são discos de metal, geralmente de diâmetro entre 5 e 10 polegadas e co- berto, em ambos os lados, por uma superfície magnetizável. Os discos giram a ve- locidades muito elevadas (da ordem de 5000 rpm) e as cabeças de leitura / grava- ção não tocam a superfície, flutuam a uma distância de alguns microns (10-6 m). O maior risco de falha é a aterrissagem das cabeças que causa perda total do disco e, praticamente, de todos os dados gravados. • flexíveis - disco de material plástico, flexível, e coberto em ambas as faces por uma superfície magnetizável. As cabeças de leitura / gravação tocam a superfície, o que provoca um desgaste de ambas as partes. Para reduzir este desgaste, as cabeças são recolhidas e a rotação é interrompida enquanto a unidade não está lendo ou gra- vando. a) Formatação É a operação que subdivide o disco em cilindros, trilhas, clusters e setores. • trilhas são círculos concêntricos onde os dados são gravados magneticamente. Um disco é geralmente formatado com um valor entre 40 e algumas centenas de trilhas por superfície. removíveis fixosmagnéticas óticas CDs discos rolo cassetefitas cartucho disquetes Zip drives
  • 18. Organização de Computadores 18 • setores são espaços radiais que subdividem as trilhas para endereçamento e acesso. O setor contém um determinado número de bytes, geralmente 512. Nos sistemas mais antigos representava a unidade lógica de acesso para leitura e gravação. setor trilha Figura V.11 - Formatação • clusters são utilizados nos sistemas mais modernos e representam a unidade lógica de acesso. O tamanho de um cluster depende do tipo do disco, variando desde um simples setor até um conjunto de vários setores. O sistema DOS, por exemplo, adota a seguinte formatação: Tipo do Disco Tamanho do Cluster Tipo do Disco Tamanho do Cluster 3.5" / 1.44M 512 bytes HD ≤16M 4096 bytes (8 setores) 3.5" / 720K 1024 bytes 513M a 1,024G 16K bytes (32 setores) 5.25" / 1.2M 512 bytes 1.025 a 2,048 32K bytes (64 setores) • cilindros formados pelo conjunto de trilhas de um mesmo raio e pertencentes a di- ferentes superfícies. O conceito é utilizado para agilizar o acesso e a transferência de dados, pois as cabeças de leitura/gravação ficam todas simultaneamente posicio- nadas sobre um mesmo cilindro. A figura V.12 abaixo destaca alguns detalhes sobre a estrutura física de uma unidade de disco magnético. cabeçotes para leitura / gravação face inferior face superior cilindro braço dos cabeçotes Figura V.12 - Estrutura de um Disco Magnético
  • 19. Organização de Computadores 19 Cada sistema operacional implementa uma organização própria de controle e acesso aplicado sobre a formatação física da unidade de disco vista acima. No sistema DOS, por exemplo, a superfície do disco é logicamente dividida em duas partes, conforme mostrado na figura V.13 abaixo, uma para armazenamento das informações utilizadas pelo sistema operaci- onal (área do sistema) e outra para armazenamento dos arquivos propriamente ditos (área de dados). Setor 0 Último setor Área de DadosDiretório Root Boot FATs Área do Sistema Figura V.13 - Partes de uma Estrutura DOS O Boot ocupa apenas um setor e tem por finalidade carregar o sistema operacional para a MP quando da ocasião da inicialização do computador. A FAT - File Alocation Table, é uti- lizada pelo sistema para armazenar a situação de cada um dos clusters que compõem o disco, se o mesmo está desocupado, ocupado ou defeituoso, por exemplo. Pela sua importância, o sistema operacional mantém uma cópia da FAT afim de dobrar a confiabilidade do disco. A terceira e última área do sistema é o Diretório Raiz (Root), que mantém uma entrada para cada arquivo ou diretório ali registrado. No sistema DOS, cada entrada em uma FAT geralmente possui comprimento de 12 (para os disquetes) ou 16 bits (para os HDs com mais de 16Mbytes). O comprimento da entra- da na FAT e o tamanho adotado para o cluster definem a capacidade máxima de armazena- mento do disco, como pode ser visto na tabela abaixo: Disco Cluster FAT (entrada) 16M ou menos 4K 12 bits 212 x 4K 17M a 128M 2K 16 bits 216 x 2K 129M a 256M 4K 16 bits 216 x 4K 257 a 512M 8K 16 bits 216 x 8K 513M a 1,024G 16K 16 bits 216 x 16K 1,025G a 2,048G 32K 16 bits 216 x 32K No diretório raiz, para cada entrada são reservados 32 bytes para armazenar as se- guintes informações: nome e extensão do arquivo, tamanho, data e hora da última alteração, atributos de segurança e o endereço do primeiro cluster (área do disco onde inicia o arquivo). O endereço dos demais clusters ocupados pelo arquivo são obtidos diretamente na FAT, em seqüência, a partir do primeiro, como pode ser visto na figura V.14 a seguir.
  • 20. Organização de Computadores 20 ENTRADAS DA FAT 3 5 900 1005 end 1 2 3 4 5 ..... 900 ..... 1005 ..... Figura V.14 - Encadeamento de Clusters de uma arquivo, o endereço do primeiro cluster é fornecido pela entrada no diretório do mesmo b) Taxa de Transferência É o número de bytes capaz de ser transferido do disco para a MP por unidade de se- gundo: tx bytes transferidos ta = , onde "ta" é o tempo de acesso, que é dado por: ta seek latência tempo de transferência= + + , sendo que: ∗ seek - é o tempo que a unidade gasta para posicionar o cabeçote de leitura e gra- vação sobre o cilindro desejado (um disco rígido gasta tipicamente 3ms entre trilhas adjacentes e de 20 a 100ms para ir do cilindro mais externo ao mais interno e vice- versa. ∗ latência - é o tempo gasto esperando pelo setor desejado (varia de 0 a 16.67ms para discos rígidos girando a 3600rpm). ∗ tempo de transferência - é o tempo gasto na transmissão dos dados (leitura ou gravação) propriamente dita. (*) para os discos flexíveis existe mais um componente por conta do tempo de aceleração ne- cessário para fazer com que a velocidade de cruzeiro do motor seja atingida. V.4.2 Discos Ópticos Usam tecnologia laser e possuem densidade de gravação muito superiores a dos discos magnéticos. Tipos: ∗ CDROM - Compact Disc Read Only Memory (só podem ser lidos). ∗ WORM - Write Once Read Many (admitem uma única vez). ∗ Magneto-Ópticos - combinam a tecnologia óptica com a magnética (admitem reu- tilização). a) CDROMs Disco plástico com uma fina camada de alumínio depositada nas superfícies, seguida por uma camada plástica transparente para proteção. Obtido no Root
  • 21. Organização de Computadores 21 Figura V.15 - Disco Ótico A gravação é feita por raio laser que faz furos de aproximadamente 1 micron, em uma trilha espiralada. Os furos são chamados "pits" e as áreas não queimadas, entre os pits, são chamadas "lands". A leitura é feita através da projeção de um raio de luz, que é refletido de forma dife- rente pelos pits e lands, possibilitando a distinção entre ambos. A unidade de endereçamento é o setor, geralmente de 2Kbytes. O byte, por sua vez, é expandido para 14 bits pela adoção do código "reed-solomon" para detecção e correção de erros. ∗ capacidade - 650Mbytes ∗ taxa de transferência - aprox 150Kbps (uma ordem de grandeza mais lentos que os magnéticos rígidos) ∗ confiabilidade - muito mais robustos que os magnéticos quanto ao calor, sol e poei- ra, porém muito mais suscetíveis a erros de gravação. ∗ aplicação - para armazenamento de grandes volumes de dados que não se alteram. b) Magneto-Ópticos Representa a 3a geração de CDs, onde a superfície plástica é coberta com exóticas ligas metálicas (térbio e gadolínio) que possuem a interessante propriedade de serem insensíveis ao campo magnético quando em baixa temperatura e se tornarem sensíveis a ele quando em alta temperatura. A cabeça de leitura / gravação possui um laser e um magneto. O laser dispara uma ra- jada de onda ultracurta, elevando instantaneamente a temperatura do local e, a seguir, o mag- neto cria o campo na direção desejada ("1" ou "0"). V.4.3 - Fitas Magnéticas São dispositivos de acesso sequencial e de taxa de transferência mais baixa que os dis- cos, mais baratas e muito utilizadas para backup. ∗ densidade de gravação - 800, 1600 e 6250 bpi ∗ formatação - na organização mais comum, é dividida em 9 trilhas longitudinais e frames verticais contendo 8 bits de dados e 1 de paridade cada. ∗ unidade de acesso - é o bloco ou registro físico. Trilhas em espiral Setores
  • 22. Organização de Computadores 22 Barramento de E/S Impressora UCP Canal Multiplex Barramento de Memória Controladora de terminais Disco Disco Disco MP ∗ IRG - é o espaço para repouso do cabeçote de leitura/gravação existente entre dois blocos consecutivos. Seu tamanho é de 3/4" e é usado para estabilizar a velocidade da fita nos períodos de aceleração e desaceleração. ∗ Um bloco pode conter um ou mais registros lógicos. O tamanho do bloco é deter- minado pelo programador, que deve atentar para o binômio eficiência e otimização. rolo - carretéis de 600, 1200 e 2400 pés Tipos cartucho - acondicionadas em caixas plásticas cassete - de baixa velocidade Figura V.16 - Organização de uma Fita Magnética V.5 - Dispositivos de Entrada e Saída Figura V.17 - Canais de E / S São as unidades que possibilitam a comunicação do computador com o meio externo. A interligação destes dispositivos com o restante do computador pode ser via canais de E/S - IRG - Inter Record Gap trilhas Bloco ou Registro Físico frame 1 9 Canal Seletor
  • 23. Organização de Computadores 23 Discos read registro x Pro- cesso Rotina E/S Disk Driver In bloco n Controla-dora Acessa x x y z processadores dedicados (característicos dos mainframes) ou através de formas mais rudimen- tares de E/S (características dos mini, superminis e microcomputadores). Os canais de E/S liberam a UCP para executar outras atividades enquanto eles se en- carregam da comunicação com o dispositivo de E/S e a transferência dos dados. Um computador típico pode ter vários canais, cada qual atendendo um ou mais dispo- sitivos. Existem três tipos de canais: multiplexador, seletor e bloco-multiplexador. O canal multiplexador é geralmente assíncrono e utilizado para os dispositivos de bai- xa ou média velocidade, transmite um byte por vez e pode atender a diversos dispositivos si- multaneamente. O canal seletor é geralmente síncrono e projetado para atender uma única operação de E/S a cada instante, sendo normalmente utilizado para controlar um dispositivo de alta veloci- dade. O canal bloco-multiplexador combina as características dos canais multiplexador e sele- tor, provê conexão a diversos dispositivos de alta velocidade e transfere um bloco de dados em cada operação. Sistemas de E/S O sistema de E/S se constitui basicamente de quatro elementos: o dispositivo (device ou drive), a interface (controladora), o programa de comunicação (device driver) e as rotinas de E/S do sistema operacional. Figura V.18 - Sistema de E/S As rotinas de E/S pertencem à camada de mais alto nível do sistema operacional e têm por objetivo permitir ao usuário realizar operações de E/S sem se preocupar com detalhes de operação do dispositivo que está sendo acessado. Assim, quando um usuário cria um arquivo em disco, não lhe interessa saber como é a formatação do disco, nem em que trilha ou setor o arquivo será gravado. Um dos principais objetivos das rotinas de E/S é propiciar uma interface simples entre as aplicações e os dispositivos bem como entre os dispositivos e o restante do sistema operaci- onal. Elas são também responsáveis por implementar todo um mecanismo de proteção de aces- so aos dispositivos e arquivos. Disco x cilindro y trilha z setor w
  • 24. Organização de Computadores 24 Os device drivers são as rotinas do sistema operacional que têm como função se comu- nicar com os dispositivos em nível de hardware, geralmente através de placas controladoras. Elas especificam características físicas de um dispositivo. Cada device drive manipula somente um tipo de dispositivo ou um grupo de dispositivos semelhantes. Os drivers têm como função receber comandos gerais repassados pelas rotinas de E/S e traduzi-los para comandos específi- cos que são executados pelas controladoras. As controladoras são componentes eletrônicos, isto é, são placas instaladas nos slots da placa mãe de um PC por exemplo, responsáveis por manipular diretamente os dispositivos de E/S. Suas principais funções são: controle e temporização; comunicação com o processador; comunicação com o dispositivo externo; armazenamento temporário (bufferização) dos dados e detecção de erro. Estas placas variam em complexidade e no número de dispositivos que controlam. Geralmente possuem memória e registradores próprios para poder executar as ins- truções enviadas pelo device driver. Podem ser dos tipos serial ou paralela. (fig. V.19) Figura V.19 - Diagrama de Blocos de uma Placa Controladora As formas de acionamento e execução das operações de E/S, podem ser dos seguintes tipos: 1. Programada com espera ocupada (busy wait) 2. acionada por interrupção 3. acesso direto à memória. Figura V.20 - Estrutura de um Sistema de E/S HDPrinterTecladoVídeo MPUCP Interfa-ce Paralela Interfa-ce Serial Interfa-ce Serial Interfa-ce Paralela Barramento Reg. de Dados Interface com o Dis- positivo dados Reg. de Estado Dispositivo Vias de Endereço Interface com o Dis- positivo Lógica de E/S estado Vias de Controle controle
  • 25. Organização de Computadores 25 UCP Disposi- tivoprocesso read status write E/S programada com espera ocupada (Busy Wait) É o método mais simples possível, onde o computador possui apenas uma instrução de entrada (IN) e uma de saída (OUT). Dependendo da implementação, estas instruções podem ler e gravar diretamente na memória (caracterizando o memory-mapped I/O) ou acessar dire- tamente a interface do dispositivo. Em ambos os casos dois ou três buffers (registradores) são utilizados para cada dispo- sitivo, um para status, um para entrada (read) e outro para saída (write). Um único caractere é transferido entre um registrador da UCP e o dispositivo de E/S selecionado, sendo que a UCP deve executar a instrução explícita desejada (IN ou OUT) para cada caractere transmitido ou recebido. Figura V.21 - E/S Programada Ao usar E/S programada para leitura de um caractere por exemplo, a UCP fica em loop lendo repetidamente o registrador de status, esperando que o bit que autoriza a operação seja setado pelo dispositivo. A seguir ela lê o dado colocado pelo dispositivo no buffer de leitura (read) e limpa (resseta) o bit previamente setado pelo dispositivo no buffer de status. O pro- cesso de escrita é semelhante. A principal desvantagem da E/S programada é que a UCP gasta a maior parte do seu tempo em loop, esperando um dispositivo ficar pronto. Esta prática é chamada de espera ocu- pada (busy wait), que é uma espera dispendiosa. Uma maneira de evitar esta perda desnecessá- ria de capacidade de processamento da UCP é fazer com que esta não precise ficar esperando pelo dispositivo que deve, ele prórpio, informar à UCP quando do término da execução da operação solicitada. Este é o método da interrupção. E/S acionada por interrupção O termo interrupção é usado para identificar a ocorrência de um evento não-freqüente, não-esperado ou aleatório, que obriga a UCP a desviar, temporariamente, o fluxo do programa em execução para o de uma rotina que atenda a interrupção. A grande vantagem desta técnica em relação a da E/S programada, está no fato de que a UCP deixa de esperar em loop pelo dispositivo. O método mais usual de implementar a técnica de interrupção é pela ativação de um sinal de controle chamado interrupt request (IR), ao qual a UCP responde ativando uma rotina de tratamento específica para cada dispositivo (device drive). O processamento da interrupção envolve: MP ou I/O CTL
  • 26. Organização de Computadores 26 1. a UCP identifica a fonte da interrupção; 2. a UCP recupera o endereço inicial da rotina de tratamento da interrupção (interrupt table); 3. o PC (program counter) e o vetor de status do processo corrente (PSW) são salvos na pilha (stack); 4. o PC é carregado com o endereço inicial da rotina de tratamento da interrupção; 5. após a execução da rotina de tratamento, o PC e a PSW do processo interrompido são recuperados da pilha, e o processo interrompido reinicia o processamento de onde havia parado. Embora a E/S por interrupção represente um avanço em relação à E/S programada, ela está longe de ser perfeita. O problema é que ela requer a ocorrência de uma interrupção para cada caractere transmitido e processar uma interrupção é uma tarefa cara. A solução é voltar a E/S programada porém não deixar a responsabilidade de sua execução nas mãos da UCP - surge então, a técnica do DMA (Acesso Direto à Memória). E/S por DMA É a transferência de dados diretamente entre o dispositivo de E/S e a MP, sem a inter- venção da UCP. Na operação de DMA, a UCP atua apenas nas fases de inicialização (forne- cendo o endereço e o número de bytes a ser transferido) e de finalização. Toda a transferência é feita automaticamente pela controladora de DMA. Ao receber um pedido de DMA (DMA request), a UCP interrompe suas atividades em um dos pontos permitidos dentro do ciclo de instrução (fig. V.21), e atende o DMA. Figura V.21 - Ciclo de Instrução x Pontos de Interrupção A técnica de DMA pode ser implementada segundo duas filosofias: 1. block transfer ==> transfere grandes volumes de dados em uma única operação (durante a transferência dos dados a UCP pode continuar operando normalmente porém não pode acessar a MP); ciclo de UCP decodefetch storeexecutiondata fetch DMA breakpoints ciclo de instrução IR breakpoint
  • 27. Organização de Computadores 27 2. cycle stealing ==> transfere apenas um ou dois bytes de cada vez, "roubando" pe- quenos ciclos de memória que não são sentidos pela UCP em virtude da parada do seu relógio. A pastilha de DMA possui (pelo menos) 4 registradores internos, todos podendo ser carregados pelo processo em execução na UCP. O primeiro deles contém o endereço de me- mória a ser lido ou escrito, o segundo contém o contador de quantos bytes (ou palavras) de- vem ser transferidos, o terceiro especifica o dispositivo a ser usado e o quarto informa a ope- ração a ser realizada (leitura ou gravação). Comando de leitura Verifica Estado Pronto ? Lê da Interface Sim Grava na Memória FIM ? Não Comando de leitura Verifica Estado OK ? Lê da Interface Sim Grava na Memória FIM ? Não Não Erro Comando de leitura Lê Estado do DMA Figura V.22 - Fluxograma representativo das 3 estratégias de comunicação com dispositivos de E/S. (a) entrada e saída programada; (b) por interrupção e © por DMA V.6 Arquiteturas Paralelas Caracteriza-se pela execução em paralelo e, portanto, ao mesmo tempo, de 2 ou mais instruções de um mesmo processo ou de diferentes processos. As arquiteturas paralelas podem ser classificadas segundo Flynn em três categorias, com base no número de fluxos de dados e de instruções que elas suportam: 1) SISD - Single Instruction Single Data (fluxo único de instrução e de dado - caracte- rizado pelo computador seqüencial - também conhecido como Von Newman) (c)(b)(a) ≈ ≈ I/O → UCP DMA → UCP UCP → DMA InterrupçãoI/O → UCP UCP → I/O UCP → MP I/O → UCP I/O → UCP UCP → I/O
  • 28. Organização de Computadores 28 x % registradores ++ 2) SIMD - Single Instruction Multiple Data (fluxo único de instrução porém múltiplo de dados - caracterizados pelas vector e array machines) 3) MIMD - Multiple Instruction Multiple Data (múltiplos fluxos de instruções e de da- dos - caracterizados por arquiteturas com matrizes de processadores) SISD • é a máquina convencional, com um único programa executado passo a passo por uma única UCP. • uma quantidade limitada de paralelismo pode ser alcançada com a introdução de al- gumas modificações na estrutura SISD básica, como por exemplo: a) pipelining P1 A B C D E F P2 - A B C D E P3 - - A B C D P4 - - - A B C P5 - - - - A B 1 2 3 4 5 6 t Figura V.23 - Máquina SISD com Pipeline Baseia-se no processamento do ciclo de instrução por partes, como numa linha de montagem, onde cada estação de trabalho é responsável pelo processamento de apenas uma fase do ciclo total. b) máquina com múltiplas unidades funcionais A UCP busca tantas instruções quantas forem as unidade funcionais disponíveis ou até que uma instrução dependa do resultado de outra ainda em execução. Figura V.24 - Máquina SISD com Múltiplas Unidades Funcionais ÷ Estações / instruções
  • 29. Organização de Computadores 29 SIMD Ideal para aplicações vetoriais e matriciais, onde uma mesma operação se repete sobre vários dados. Figura V.25 - Estrutura SIMD MIMD São vários processadores independentes, cada um executando um programa diferente. Dependendo do granularidade de integração pode caracterizar um multiprocessador, uma rede de computadores ou um sistema distribuído. V.7 Arquiteturas CISC e RISC A tecnologia RISC (Reduced Instruction Set Computer), criada nos laboratórios da IBM Research em 1987, pelo Dr. Jolm Cocke, representou uma quebra na tendência até então predominante, que era na direção de máquinas cada vez maiores e mais complexas, conhecida como tecnologia CISC (Complex Instruction Set Computer). Embora não haja uma definição precisa para RISC, os primeiros projetos nesta linha fizeram uso de um pequeno conjunto de instruções simples, que eram executadas rapidamente, em um único ciclo de máquina. Esta característica era oposta a da tecnologia CISC, onde as instruções consumiam vários ciclos de máquina. Em função desta característica, as instruções RISC podiam ter sua execução realizada diretamente pelo hardware, como nas máquinas mais antigas desprovidas de microcódigo, o que simplificava e reduzia os custos de projeto e fabricação dos computadores. Uma conseqüência do princípio de que toda instrução RISC só pode consumir um ciclo de máquina é que qualquer operação que consuma mais do que um ciclo não pode pertencer ao conjunto de instruções. Assim, muitas máquinas RISC não possuem instruções de multipli- Vetor A Vetor B Vetor Resultado A + B ULA
  • 30. Organização de Computadores 30 cação e de divisão. Estas e as demais instruções de ponto flutuante são executadas por um co- processador aritmético. Em 1991 a IBM lançou a chamada 2a geração da tecnologia RISC, baseada na tecnolo- gia pipeline e de processadores de funções múltiplas. As máquinas desta geração, como por exemplo o Power PC e o Power 2, geralmente possuem um processador de desvio, um de ponto-fixo e um de ponto-flutuante, e podem executar até quatro ou cinco operações por ciclo de máquina. Em resumo, uma máquina RISC se caracteriza por: a) ter instruções simples executadas em um ciclo de máquina; b) usar apenas as instruções Load e Store para referenciar a memória; c) fazer uso da tecnologia pipeline; d) ter instruções executadas diretamente pelo hardware; e) ter instruções com formato fixo; f) ter poucas instruções; g) delegar a complexidade para o compilador; e h) fazer uso de múltiplos conjuntos de registradores. V.8 Referências Bibliográficas • Stallings, William, Operating Systems,Ed. Acmillan Publishing Company, 1992. • Tanenbauum, Andrew S., Organização Estruturada de Computadores, Ed. Campus, 1993. • Silberschatz, Abraham e Galvin, Peter B., Operating Systems Concepts, Ed. Addison- Wesley Publishing Company, 1994.