organização de computadores

30
Disp S Memória Disp 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

Upload: tiago

Post on 23-Jan-2017

6 views

Category:

Education


0 download

TRANSCRIPT

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 ocomputador, cuja configuração básica e mais geral pode ser vista como nafigura 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 problemasatravé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 eque o tornam capaz de reconhecer e executar um conjunto limitado de instruçõessimples.

• 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 deinstruçõ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 paraque 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 fasesdistintas).

V.1 Máquina Virtual

Constitui-se de uma abstração onde, dentro de um único computador hospedeiro, ouniverso 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 conceitode hardware.

E

UAL

Organização de Computadores 2

Vantagens desta abordagem:

1. Um computador pode ser considerado como composto por "n" máquinas virtuais, cadauma 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 dosní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 superamigá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áquinascom seis ou mais níveis são cada vez mais comuns. Tais níveis se subdividem basicamente emHardware, 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 (pastilhasVLSI) e dos microcomputadores têm despertado o interesse e aberto, cada vezmais, 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 peloní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 namá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 M4Ling de Montagem

Firmware

Máquina Virtual M5Orientada ao Prob.

Máquina Virtual M0Lógica Digital

SoftwareAplicativo

SoftwareBá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 M2Máq. Convencional

Hardware

Máquina Virtual M3Sistema Operacional

Máquina Virtual M1Microprogramação

Figura V.3 - Modelo Multinível

nível 1 - Microprogramação

• é o verdadeiro nível de linguagem de máquina. O microprograma, residente emmemória permanente (ROM), compõe o que é conhecido por firmware e tem porfunçã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 deuma 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órianão volátil, tem como função interpretar (buscar, examinar e executar) cada umadas 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 osdemais 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 demicroinstruçõ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, quearmazena o microprograma e a nanomemória, também não volátil, que armazena onanoprograma, 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 oumais microinstruções. O nanoprograma passa a conter o conjunto das microinstru-ções usadas no microprograma, armazenados sem repetição, e o microprogramamatém a lógica original usando não mais as microinstruções propriamente ditas masseus 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 decada 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çãosomado 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 pelohardware, 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 dalinguagem 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 ecuja 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 deassembler.

• o assembly já foi muito importante em épocas passadas, porém hoje é totalmentesuplantado pelas linguagens de alto nível para o desenvolvimento de programasaplicativos e até utilitários.

nível 5 - Linguagens Orientadas para o Problema

• consiste em diferentes máquinas virtuais, cada uma definida pelo ambiente criadopor 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 demá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; oque 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, 4ní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 esaída padrão fornecidas pela BIOS. Observe que a segurança pode ser afetada uma vez quequalquer 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 internado hardware. Observe que a UCP faz uso de um barramento para se comunicar com os demaiscomponentes do sistema, como a memória principal e os demais dispositivos periféricos quecompõem o computador. Este barramento é constituído por diversas vias paralelas por ondetransitam os sinais.

Grupos distintos destas vias, na prática, configuram diferentes barramentos, tais comoo de dados, o de endereços e o de sinais de controle. O número de vias utilizado em cada umdestes 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

IMPHDMPREGs

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 tratamentode 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 deoperaçã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 forrequerida pela operação.

Na figura V.7a, por exemplo, é mostrado um barramento síncrono com um relógio detemporização de 5Mz, que produz um ciclo de 200ns, e uma operação de leitura de um byte daMP que consome 4 ciclos de barramento, ou seja, 800ns. Observe o sinal do relógio definindoo 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 ciclosde 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 odispositivo envolvido na operação. Na figura V.7b, o handshake é representado pelos sinaisMSYN - Master Synchronism (sincronismo mestre) e SSYN - Slave Synchronism (sincronismoescravo). Observe que em resposta ao MSYN a MP coloca o dado no barramento e respondeao 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 vezque 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 mestredo barramento. Pode ser centralizado, onde um único árbitro, decide quem será o próximo acontrolar o barramento, ou descentralizado, quando não há árbitro e sim um procedimentodistribuído e observado por todos os candidatos a mestre. Sempre que a UCP compete pelobarramento ela o faz com menor prioridade, para evitar que dispositivos de E/S mais lentosfiquem 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 é assinalarprioridades 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 deControle, 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

RDtempo

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çãoe 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. Obanco de registradores serve de memória local para armazenamento dos dados em uso naUCP. 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 armazenamentotemporá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 conformea 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 doCiclo de Máquina

data bus address bus

barramento internoMARMBR

AC TR IRPC

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

MBR

Address Bus

Data Bus

MREQ bit

UCP

R/W bit

MAR MP

Figura V.9 - Conexão UCP x MPonde,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 pelaUCP.

b. Tipos de Memória

• volátil - perde o conteúdo armazenado quando não energizada. (RAM - RandomAccess Memory).

∗ tipos de RAMa) 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 StateDisk.

c. Endereçamento de Memória

É realizado por lógica combinacional (cap. IV), onde os bits de endereçamento mais osinal R/W habilitam a leitura ou gravação de uma única ou de um conjunto de células de cadavez, 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 etransportabilidade 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áquinalittle endian (PC486) e uma big endian (SPARC Station). Observe que a simples inversão dosdados não soluciona o problema.

Byte número Byte número Byte número3 2 1 0 0 1 2 3 0 1 2 3

0 0 0 5 5 0 0 0 0 0 0 5Y 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 recebidapela 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 aconfiabilidade do armazenamento e da transferência de dados entre os diversos componentesdo computador.

Detecção Simples

Organização de Computadores 12

TécnicasDetecçã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 suaretransmissã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 parParidade

ímpar ⇒ soma dos bits "1" deve ser ímpar

ex. Paridade par adicionada ao código ASCII de 7 bits

caracterbit a b c z A1 1 1 1 1 12 1 1 1 1 03 0 0 0 1 04 0 0 0 1 05 0 0 0 0 06 0 1 1 1 07 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çãob.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 BCCbit a b c z A1 1 1 1 1 1 12 1 1 1 1 0 03 0 0 0 1 0 14 0 0 0 1 0 15 0 0 0 0 0 06 0 1 1 1 0 17 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 rajadasmaiores a detecção não é garantida. A correção é possível pelo cruzamento do VCR e BCC eidentificação da(s) célula(s) com erro.Ex.

caracter BCCbit a b c z A1 1 1 1 1 1 12 1 1 1 1 0 03 0 1 0 1 0 14 0 1 0 1 0 15 0 1 0 0 0 06 0 0 1 1 0 17 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ívelquando o erro puder ser detectado simultaneamente pelas paridades horizontal e vertical.

caracter BCCbit a b c z A1 1 1 1 1 0 12 1 1 1 1 1 03 0 0 0 1 1 14 0 0 0 1 0 15 0 0 0 0 0 06 0 1 1 1 0 17 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 foidetectado 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 BCCbit a b c z A1 1 1 1 1 1 12 1 1 1 1 0 03 0 0 0 1 0 14 0 0 0 1 0 15 0 1 1 0 0 06 0 0 0 1 0 17 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 A0 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 paridadeem redundância que, através de um processo de exclusão combinatória, possibilitam identificara 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 X1 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. Universoeste 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 dadopertencentes à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 11porque 1 + 2 + 8 = 11 (20 + 21 + 23).

A capacidade do método em detectar e corrigir erros depende da menor distância dehamming - HD obtida com a codificação adotada.

A capacidade de detectar "d" erros requer um hdmin > d + 1A 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 errosde até 1 bit.

hd = 4Exemplos:

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 11 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} ⇒ 0bit 2: {3, 6, 7, 10 e 11} ≡ {1, 0, 0, 0, 1} ⇒ 1bit 3: {5, 6 e 7} ≡ {1, 0, 0} ⇒ 0bit 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 11 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 ⇒ 0bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1bit 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. Lembreque este mesmo valor, conforme visto no início desta seção, pode ser obtido pela fórmula dapotência de 2: (21 + 22 = 6).

b) erro nos bits 6 e 9

0 1 1 0 1 1 0 0 1 0 11 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 ⇒ 1bit 2: (1, 1, 0, 0, 1} ⇒ 0 errado ⇒ 1bit 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 11 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 ⇒ 0bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0bit 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 11 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 ⇒ 0bit 2: (0, 1, 0, 0, 1} ⇒ 1 correto ⇒ 0bit 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-6m). Omaior 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 queprovoca um desgaste de ambas as partes. Para reduzir este desgaste, as cabeças sãorecolhidas 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. Umdisco é geralmente formatado com um valor entre 40 e algumas centenas de trilhaspor superfície.

removíveis

fixosmagnéticas

óticas CDs

discos

rolocassetefitascartucho

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 sistemasmais 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 umsimples 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 Cluster3.5" / 1.44M 512 bytes HD ≤ 16M 4096 bytes

(8 setores)3.5" / 720K 1024 bytes 513M a

1,024G16K 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ênciade 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 sobrea estrutura física de uma unidade de disco magnético.

cabeçotes paraleitura / gravação

face inferior

face superior

cilindro

braço doscabeç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 acessoaplicado sobre a formatação física da unidade de disco vista acima. No sistema DOS, porexemplo, a superfície do disco é logicamente dividida em duas partes, conforme mostrado nafigura 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 dedados).

Setor 0 Último setor

Área de DadosDiretórioRoot

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 paraa 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, osistema operacional mantém uma cópia da FAT afim de dobrar a confiabilidade do disco. Aterceira e última área do sistema é o Diretório Raiz (Root), que mantém uma entrada para cadaarquivo 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 4K17M a 128M 2K 16 bits 216 x 2K

129M a 256M 4K 16 bits 216 x 4K257 a 512M 8K 16 bits 216 x 8K

513M a 1,024G 16K 16 bits 216 x 16K1,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, emseqüê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 end1 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 transferidosta

= ,

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 trilhasadjacentes 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.67mspara discos rígidos girando a 3600rpm).

∗ tempo de transferência - é o tempo gasto na transmissão dos dados (leitura ougravaçã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 discosmagné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, seguidapor 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 umatrilha espiralada. Os furos são chamados "pits" e as áreas não queimadas, entre os pits, sãochamadas "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 docó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 ligasmetálicas (térbio e gadolínio) que possuem a interessante propriedade de serem insensíveis aocampo magnético quando em baixa temperatura e se tornarem sensíveis a ele quando em altatemperatura.

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

CanalMultiplex

Barramento de Memória

Controladora determinais

Disco

Disco

Disco

MP

∗ IRG - é o espaço para repouso do cabeçote de leitura/gravação existente entre doisblocos consecutivos. Seu tamanho é de 3/4" e é usado para estabilizar a velocidadeda 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 RecordGap

trilhasBloco ou Registro Físico

frame

1

9

CanalSeletor

Organização de Computadores 23

Discos

read registrox

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 deE/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 emcada operação.

Sistemas de E/S

O sistema de E/S se constitui basicamente de quatro elementos: o dispositivo (deviceou drive), a interface (controladora), o programa de comunicação (device driver) e as rotinasde 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êmpor objetivo permitir ao usuário realizar operações de E/S sem se preocupar com detalhes deoperação do dispositivo que está sendo acessado. Assim, quando um usuário cria um arquivoem disco, não lhe interessa saber como é a formatação do disco, nem em que trilha ou setor oarquivo será gravado.

Um dos principais objetivos das rotinas de E/S é propiciar uma interface simples entreas 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 xcilindro ytrilha zsetor 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 somenteum tipo de dispositivo ou um grupo de dispositivos semelhantes. Os drivers têm como funçãoreceber 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 daplaca mãe de um PC por exemplo, responsáveis por manipular diretamente os dispositivos deE/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 dadose detecção de erro. Estas placas variam em complexidade e no número de dispositivos quecontrolam. 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 seguintestipos:

1. Programada com espera ocupada (busy wait)2. acionada por interrupção3. acesso direto à memória.

Figura V.20 - Estrutura de um Sistema de E/S

HDPrinterTecladoVídeo

MPUCPInterfa-ceParalela

Interfa-ceSerial

Interfa-ceSerial

Interfa-ceParalela

Barramento

Reg. de Dados Interfacecom o Dis-

positivodados

Reg. de Estado

Dispositivo

Vias de Endereço Interfacecom o Dis-

positivo

Lógica deE/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 deentrada (IN) e uma de saída (OUT). Dependendo da implementação, estas instruções podemler 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 UCPdeve executar a instrução explícita desejada (IN ou OUT) para cada caractere transmitido ourecebido.

Figura V.21 - E/S Programada

Ao usar E/S programada para leitura de um caractere por exemplo, a UCP fica em looplendo repetidamente o registrador de status, esperando que o bit que autoriza a operação sejasetado 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 seutempo 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 esperandopelo dispositivo que deve, ele prórpio, informar à UCP quando do término da execução daoperaçã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 programaem execução para o de uma rotina que atenda a interrupção. A grande vantagem desta técnicaem relação a da E/S programada, está no fato de que a UCP deixa de esperar em loop pelodispositivo.

O método mais usual de implementar a técnica de interrupção é pela ativação de umsinal de controle chamado interrupt request (IR), ao qual a UCP responde ativando uma rotinade tratamento específica para cada dispositivo (device drive). O processamento da interrupçãoenvolve:

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

3. o PC (program counter) e o vetor de status do processo corrente (PSW) são salvosna 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 interrompidosão recuperados da pilha, e o processo interrompido reinicia o processamento deonde havia parado.

Embora a E/S por interrupção represente um avanço em relação à E/S programada, elaestá longe de ser perfeita. O problema é que ela requer a ocorrência de uma interrupção paracada caractere transmitido e processar uma interrupção é uma tarefa cara. A solução é voltar aE/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 emum 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 normalmenteporém não pode acessar a MP);

ciclo deUCP

decodefetch storeexecutiondata fetch

DMAbreakpoints

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 doseu relógio.

A pastilha de DMA possui (pelo menos) 4 registradores internos, todos podendo sercarregados 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 deleitura

Verifica Estado

Pronto?

Lê da Interface

Sim

Grava naMemória

FIM?

Não

Comando deleitura

Verifica Estado

OK?

Lê da Interface

Sim

Grava naMemória

FIM?

Não Não

Erro

Comando deleitura

Lê Estado doDMA

Figura V.22 - Fluxograma representativo das 3 estratégias de comunicação com dispositivosde 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 maisinstruções de um mesmo processo ou de diferentes processos. As arquiteturas paralelas podemser classificadas segundo Flynn em três categorias, com base no número de fluxos de dados ede 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últiplode 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 poruma ú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 FP2 - A B C D EP3 - - A B C DP4 - - - A B CP5 - - - - 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 demontagem, onde cada estação de trabalho é responsável pelo processamento de apenas umafase 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 sobrevá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 redede computadores ou um sistema distribuído.

V.7 Arquiteturas CISC e RISC

A tecnologia RISC (Reduced Instruction Set Computer), criada nos laboratórios daIBM Research em 1987, pelo Dr. Jolm Cocke, representou uma quebra na tendência até entãopredominante, que era na direção de máquinas cada vez maiores e mais complexas, conhecidacomo tecnologia CISC (Complex Instruction Set Computer).

Embora não haja uma definição precisa para RISC, os primeiros projetos nesta linhafizeram 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 asinstruções consumiam vários ciclos de máquina.

Em função desta característica, as instruções RISC podiam ter sua execução realizadadiretamente pelo hardware, como nas máquinas mais antigas desprovidas de microcódigo, oque 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 ciclode máquina é que qualquer operação que consuma mais do que um ciclo não pode pertencerao 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 porexemplo o Power PC e o Power 2, geralmente possuem um processador de desvio, um deponto-fixo e um de ponto-flutuante, e podem executar até quatro ou cinco operações por ciclode 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.