Escolar Documentos
Profissional Documentos
Cultura Documentos
sta disciplina consiste no estudo dos componentes fsicos que compem o computador, cuja configurao bsica e mais geral pode ser vista como na figura V.1 abaixo.
Disp E dados
Memria
Disp S instrues
Figura V.1 - Organizao de um Computador onde, por definio, considera-se: computador - como sendo uma mquina eletrnica, capaz de solucionar problemas atravs da execuo automtica de instrues que lhe sejam previamente fornecidas. hardware - constitudo pelos circuitos eletrnicos que compem o computador e que o tornam capaz de reconhecer e executar um conjunto limitado de instrues simples. software - constitudo pelo conjunto de programas necessrios para tornar o hardware til e operacional. programa - como sendo uma pea de software constituda por uma seqncia de instrues que descrevem ao computador como executar uma determinada tarefa. linguagem de mquina - constituda pelo conjunto bsico de instrues que so reconhecidas 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 mquina. Pode ser de trs tipos: montador (para a linguagem assembly), interpretador (traduo e execuo passo a passo) e compilador (traduo e execuo em fases distintas).
Organizao de Computadores
Vantagens desta abordagem: 1. Um computador pode ser considerado como composto por "n" mquinas virtuais, cada uma delas com sua prpria configurao e linguagem de mquina; 2. Uma pessoa, cujo trabalho seja gerar programas (aplicativos) para a mquina virtual de nvel "k" ou outro qualquer, no precisa conhecer ou se preocupar com as particularidades dos nveis inferiores ao seu; 3. A estrutura de nveis permite ver o computador como um conjunto hierrquico de facilidades que possibilitam flexibilidade e independncia ao usurio. " As linguagens de 4a gerao - orientadas a objeto, com interfaces grficas e super amigveis derrubou o mistrio e abriu as portas do computador ao usurio leigo e ao pblico em geral."
Mquina Virtual Mn Ling Mq - Ln
Programas em Ln so interpretados e traduzidos por um interpretador residente na mquina Mn-1 Programas em L0 so interpretados e executados diretamente pelo hardware do computador
Figura V.2 - Mquina Virtual O Modelo Multinvel Contemporneo A maioria dos computadores modernos possui dois ou mais nveis, sendo que mquinas com seis ou mais nveis so cada vez mais comuns. Tais nveis se subdividem basicamente em Hardware, Firmware, Software Bsico, Utilitrios e Softwares Aplicativos. A figura V.3 abaixo, descreve um computador hipottico composto por 6 nveis, a saber: nvel 0 - Lgica Digital constitui o hardware do computador. O advento dos microprocessadores (pastilhas VLSI) e dos microcomputadores tm despertado o interesse e aberto, cada vez mais, o mundo da lgica digital aos profissionais de informtica e ao pblico em geral. no nvel 0 encontram-se: os circuitos eletrnicos (cap. IV) e os diversos sistemas (mdulos) que compem o computador: UCP, memria, dispositivos de E/S, dispositivos de comunicao e interfaces. o nvel 0 executa diretamente as instrues (ou microinstrues) submetidas pelo nvel 1.
Organizao de Computadores
traduo (compilador)
traduo (montador)
Firmware
Hardware
Figura V.3 - Modelo Multinvel nvel 1 - Microprogramao o verdadeiro nvel de linguagem de mquina. O microprograma, residente em memria permanente (ROM), compe o que conhecido por firmware e tem por funo interpretar e traduzir as instrues que lhe so submetidas pelos nveis superiores. nem todas as mquinas possuem este nvel, veja as mquinas RISC por exemplo. Nas mquinas no microprogramadas, o nvel 2, chamado de mquina convencional, diretamente executado pelo hardware. as vantagens da microprogramao so: a) facilitar o projeto e a construo dos circuitos digitais, atravs da implementao de parte da lgica digital dentro do firmware; b) flexibilizar e possibilitar o desenvolvimento de instrues mais potentes a nvel de mquina convencional. o conjunto de microinstrues geralmente pequeno, no entorno de duas ou trs dezenas, sendo que a maior parte delas envolvendo a movimentao de dados de uma parte da mquina para outra, ou a realizao de alguns testes simples. um mesmo computador pode suportar mais de um microprograma, cada um definindo uma mquina virtual de nvel 1 diferente.
Organizao de Computadores
o microprograma, escrito pelo microprogramador e armazenado em uma memria no voltil, tem como funo interpretar (buscar, examinar e executar) cada uma das instrues de um programa em nvel de mquina convencional. Para isto, o microprograma deve acessar e controlar todos os recursos de hardware (registradores, barramentos, ULAs, memrias e outros). as microinstrues so compostas apenas por sinais de controle e o microprograma executado por um dispositivo chamado sequenciador que, juntamente com os demais circuitos de hardware, compe a microarquitetura. um dos pontos de projeto da microarquitetura a definio da largura das microinstrues ou seja, da memria do microprograma, isto , da micromemria. Projetos do tipo horizontal fazem uso de um nmero relativamente pequeno de microinstrues largas, e os do tipo vertical muitas microinstrues estreitas. outra opo de projeto a adoo da nanoprogramao, que consiste basicamente na adoo de uma terceira memria, a nanomemria, para armazenar as instrues do nanoprograma. com a nanoprogramao a microarquitetura fica composta da memria principal, voltil, que armazena o programa em execuo, a micromemria, no voltil, que armazena o microprograma e a nanomemria, tambm no voltil, que armazena o nanoprograma, veja figura V.4. a nanoprogramao se constitui na realidade, de um artifcio para reduzir o tamanho do microprograma naqueles casos em que ocorra muitas repeties de uma ou mais microinstrues. O nanoprograma passa a conter o conjunto das microinstrues usadas no microprograma, armazenados sem repetio, e o microprograma matm a lgica original usando no mais as microinstrues propriamente ditas mas seus endereos na nanomemria.
W bits
Log2m
W bits
Figura V.4 - Microprogramao convencional (a) e nanoprogramao (b) (*) Observe na figura que, na microprogramao convencional o tamanho gasto para armazenar o microprograma de "n x w" (nmero de instrues multiplicado pela largura em bits de cada microinstruo) e na nanoprogramao de "n x log2m + m x w" (nmero de microinstrues multiplicado pelo logaritmo na base dois do tamanho da memria de nanoprogramao somado ao tamanho da memria de nanoprogramao. nvel 2 - Mquina Convencional
Organizao de Computadores
, na verdade, a "mquina" vendida ao usurio genrico. Suas caractersticas tcnicas, operacionais e funcionais so fornecidas atravs dos manuais de referncia, comercializados junto com o equipamento. o nvel onde reside o "kernel" do sistema operacional, que interpreta os utilitrios, a linguagem de controle e as rotinas que residem no nvel 3. o SO pode ser interpretado pelo microprograma ou executado diretamente pelo hardware, naquelas mquinas desprovidas do nvel 1. nvel 3 - Sistema Operacional o nvel em que o usurio interage diretamente (atravs do uso de utilitrios e da linguagem de controle) ou indiretamente (atravs de programas aplicativos desenvolvidos em mquinas de nveis superiores). o windows 3.1, por exemplo, uma mquina virtual colocada acima deste nvel e cuja finalidade proporcionar ao usurio uma interface mais amigvel e de mais fcil assimilao. geralmente, um nvel hbrido, onde parte de suas instrues so interpretadas pelo "kernel" do SO (nvel 2) e parte so interpretadas diretamente pelo microprograma (nvel 1). nvel 4 - Linguagem de Montagem genericamente chamada de assembly, embora cada mquina tenha seu prprio assembly, e traduzida para o nvel inferior pelo montador, comumente chamado de assembler. o assembly j foi muito importante em pocas passadas, porm hoje totalmente suplantado pelas linguagens de alto nvel para o desenvolvimento de programas aplicativos e at utilitrios. nvel 5 - Linguagens Orientadas para o Problema consiste em diferentes mquinas virtuais, cada uma definida pelo ambiente criado por sua linguagem de programao de alto nvel. as linguagens de alto nvel so mais complexas que o assembly e requerem tradutores mais bem elaborados e potentes dos tipos interpretadores e compiladores. nvel 6 e superiores constitudo por sistemas projetados para criar "shells" - mquinas virtuais especialmente adequadas para certas aplicaes, como por exemplo o word, o access, o excel, o lotus, etc. Em resumo, os computadores modernos so constitudos de uma srie hierrquica de mquinas virtuais, cada uma projetada e construda sobre suas predecessoras. Cada nvel representa um grau distinto de abstrao, com a presena de diferentes recursos e operaes; o que possibilita, atravs da supresso de detalhes irrelevantes, tornar o computador mais amigvel e mais fcil de ser compreendido pelo pblico em geral. Na estrutura de um PC, por exemplo, conforme pode ser visto na figura V.5 abaixo, 4 nveis virtuais podem ser considerados: o dos programas aplicativos, o do sistema operacional,
Organizao de Computadores
o dos programas de interface com os dispositivos perifricos (drivers) e as rotinas de entrada e sada padro fornecidas pela BIOS. Observe que a segurana pode ser afetada uma vez que qualquer dos nveis pode realizar acesso direto s rotinas da BIOS e, portanto, sem se submeter aos critrios e procedimentos de proteo.
Drivers
Perifricos de E/S
Organizao de Computadores
As principais consideraes de projeto de um barramento, alm do nmero de vias, so: a temporizao, o mecanismo de arbitragem, o tratamento de interrupes e o tratamento de erros. Quanto a temporizao, um barramento pode ser do tipo sncrono ou do tipo assncrono. Num barramento sncrono existe um relgio temporizador que define a freqncia de operao do mesmo, chamada de ciclo de barramento. Neste tipo de barramento, toda atividade ou operao de transferncia alinhada, ou seja, sincronizada com a freqncia do barramento e sempre consome um nmero inteiro e conhecido destes ciclos. No barramento assncrono no existe tal relgio, ou seja, os ciclos so variveis e podem tomar a durao que for requerida pela operao. Na figura V.7a, por exemplo, mostrado um barramento sncrono com um relgio de temporizao de 5Mz, que produz um ciclo de 200ns, e uma operao de leitura de um byte da MP que consome 4 ciclos de barramento, ou seja, 800ns. Observe o sinal do relgio definindo o ciclo do barramento, os sinais de controle RD e MREQ definindo respectivamente a operao a ser realizada, leitura, e a requisio de uma operao de memria. O barramento de endereos disponibiliza para a MP a posio a ser lida, durante um determinado nmero de ciclos de barramento. Posteriormente a MP coloca no barramento de dados o contedo lido e a UCP, aps um nmero prefixado de ciclos de barramento sabe que pode buscar o dado que estar estvel e disponvel no barramento. No barramento assncrono, face a inexistncia do relgio para disciplinar a transferncia, introduzido um processo de sinalizao, conhecido por handshake, entre a UCP e o dispositivo envolvido na operao. 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 misso. Os barramentos assncronos apresentam maior flexibilidade de uso e oferecem vantagens para atendimento a um conjunto heterogneo de dispositivos (lentos e rpidos), uma vez que seus ciclos no so fixos. Por outro lado, um sistema sncrono mais fcil de ser construdo e oferece maior velocidade de operao. A maioria dos barramentos sncrona. 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 prximo a controlar o barramento, ou descentralizado, quando no h rbitro e sim um procedimento distribudo 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 condio de mestre. Uma vez que mltiplos dispositivos podem querer causar uma interrupo simultaneamente, o mesmo tipo de problemas de arbitragem est presente e a soluo usual assinalar prioridades aos dispositivos e usar um rbitro para controlar o problema. A organizao interna da UCP varia em funo do grau de sofisticao e avano tecnolgico do hardware. Sua organizao genrica bsica constituda pela UC - Unidade de Controle, pela UAL - Unidade Aritmtica e Lgica e por um banco de registrados.
Organizao de Computadores
T1
T2
T3
T4
MREQ RD tempo
(a)
Endereo da Posio de Memria MREQ RD MSYN
Dado
SSYN tem-
(b)
Figura V.7 - Barramento Sncrono (a) e Barramento Assncrono (b) A UC a parte encarregada de executar as operaes de controle do ciclo de instruo e de sinalizao para todos os demais componentes do sistema. A ULA se encarrega da execuo de todas as operaes aritmticas e lgicas decorrentes da execuo dos programas. O banco de registradores serve de memria local para armazenamento dos dados em uso na UCP. A figura V.8 abaixo mostra o esquema da organizao interna de uma UCP bsica, onde: barramentos o barramento interno a via de comunicao entre os componentes internos da UCP. o data bus o barramento para transferncia de dados entre a UCP e os demais componentes (8, 16 e 32 bits so os mais comuns). address bus o barramento para endereamento de memria (10 bits - 1Kb, 20 bits - 1 Mb, 32 bits - 4Gb). registradores de controle e de estado MBR - Memory Buffer Register, (RDM em portugus) serve de armazenamento temporrio de dados no caminho de/para a MP.
Organizao de Computadores
MAR - Memory Address Register, (REM em portugus) serve para armazenamento temporrio do endereo do dado a ser lido ou gravado na memria. I/O BR - serve de armazenamento temporrio de dados no caminho de/para dispositivos de E/S. I/O AR - serve para especificar um determinado dispositivo de E/S. IR - Instruction Register, registrador para armazenamento da instruo corrente. PC - Program Counter, registrador que contm o endereo da prxima instruo a ser executada. PSW - Program Status Word, que contm informaes sobre o estado do processamento, tais como: sign (sinal), zero, carry (vai um ou vem um), equal, overflow (estouro), interrupt enable/disable (habilitao ou no de interrupo) e supervisor (modo de execuo). registradores de dados AC - Accumulator, registrador que, no caso apresentado na figura, armazena uma das entradas da ULA. TR - Temporary Register registradores de uso genrico registradores para endereamento SP - Stack Pointer SX - Segment Pointer IX - Index Register
data bus
I/O AR I/O BR
MBR
AC
TR
IR UC
Decodifcador de Instruo e Controlador do Ciclo de Mquina
PC R1
ULA
sinais de controle
Figura V.8 - Organizao interna da UCP a. O Ciclo de Instruo A UCP executa cada instruo atravs de uma seqncia de pequenos passos conforme a seguir: FETCH (busca) a) recupera da MP a prxima instruo a ser executada, isto , a instruo apontada pelo PC e a armazena no registrador instruo IR. b) atualiza o PC para que aponte para a prxima instruo a ser executada. DECODE (decodificao) c) interpreta a instruo armazenada em IR. DATA FETCH (busca dos operandos)
Organizao de Computadores
10
d) se a instruo necessitar de dados armazenados na memria, calcula o endereo dos mesmos e, e) recupera-os armazenando nos registradores internos. EXECUTION (execuo) f) executa a instruo (aritmtica, lgica 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.
UCP
M A R M B R
Figura V.9 - Conexo UCP x MP onde, R/W bit especifica se a operao de leitura "R" ou de escrita "W". MREQ bit Memory REQuest, especifica uma ordem de acesso memria emitida pela UCP. b. Tipos de Memria voltil - perde o contedo armazenado quando no energizada. (RAM - Random Access Memory). tipos de RAM a) Esttica - a gravao estvel, s se alterando atravs de operaes de escrita (consome mais energia); b) Dinmica - a gravao do bit "1" se descarrega com o tempo, precisando ser "refrescada" periodicamente (ciclo de refresh). no voltil - no perde o contedo armazenado. (ROM, PROM, EPROM, EEPROM)
Organizao de Computadores
11
c) ROM - Read Only Memory (gravada de fbrica - permanente); d) PROM - Programable ROM (pode ser gravada uma nica vez pelo usurio, atravs de equipamentos especiais); e) EPROM - Erasable PROM (pode ser apagada atravs de raios ultravioletas); f) EEPROM - Electrical EPROM (pode ser apagada atravs de sinais eltricos); g) Memria Flash - uma memria que pode ser utilizada como apenas de leitura ou como de leitura e gravao, dependendo do driver utilizado. Geralmente utilizada como um disco em pastilhas (chips), SSD - Solid State Disk. c. Endereamento de Memria realizado por lgica combinacional (cap. IV), onde os bits de endereamento mais o sinal R/W habilitam a leitura ou gravao de uma nica ou de um conjunto de clulas de cada vez, dependendo do tamanho do barramento de dados. d. Ordem dos Bytes A ordem em que os bytes so considerados dentro da clula completamente transparente ao usurio, mas de fundamental importncia quanto compatibilidade de sistemas e transportabilidade dos dados. A ordem pode ser do tipo big endian (da esquerda para a direita), usado pelos processadores Motorola, ou little endian (da direita para a esquerda), caracterstico dos processadores Intel. A figura V.10 mostra um problema de transportabilidade de dados entre uma mquina little endian (PC486) e uma big endian (SPARC Station). Observe que a simples inverso dos dados no soluciona o problema.
Figura V.10 - (a) mensagem original no 486 - little endian, (b) mensagem aps ser recebida pela SPARC - big endian, (c) mensagem aps ser invertida (observe que a inverso pura corrige o valor numrico porm inverte o alfanumrico) e. Deteco e Correo de Erros Os sistemas de deteco e correo de erros so implementados de forma a aumentar a confiabilidade do armazenamento e da transferncia de dados entre os diversos componentes do computador.
Deteco Simples
Organizao de Computadores
12
Tcnicas Deteco e Correo a) Deteco Simples Apenas detecta o erro, provocando procedimentos de regravao do dado, de mensagem de erro na recuperao de um dado gravado ou, no caso de transmisso de dados, de sua retransmisso. Um mtodo simples, porm largamente utilizado o da adio de um bit de paridade (VRC - Vertical Redundancy Checking) ao cdigo base do caracter. par Paridade mpar soma dos bits "1" deve ser mpar ex. Paridade par adicionada ao cdigo ASCII de 7 bits caracter b c z 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 soma dos bits "1" deve ser par
bit 1 2 3 4 5 6 7 VRC
a 1 1 0 0 0 0 1 1
A 1 0 0 0 0 0 1 0
. (*) este mecanismo de paridade no detecta um nmero par de erros no caracter b) Deteco e Correo b.1) Cdigo BCC Uma tcnica simples usar uma paridade longitudinal para blocos de memria - BCC (Block Check Character) em adio ao VRC. caracter b c z 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 BCC A 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1
bit 1 2 3 4 5 6 7 VRC
a 1 1 0 0 0 0 1 1
Organizao de Computadores
13
Neste caso garantida a deteco de erros do tipo rajada (vrios bits consecutivos), que tenham comprimento menor ou no mximo igual ao tamanho do caracter. Para rajadas maiores a deteco no garantida. A correo possvel pelo cruzamento do VCR e BCC e identificao da(s) clula(s) com erro. Ex. caracter BCC bit a b c z A 1 2 3 4 5 6 7 VRC 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1
Neste exemplo acima, o erro de rajada na letra "b" (4 bits em negrito) pode ser detectado pela paridade horizontal. Observar que a identificao dos bits errados s possvel quando o erro puder ser detectado simultaneamente pelas paridades horizontal e vertical. caracter b c z 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 BCC A 0 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1
bit 1 2 3 4 5 6 7 VRC
a 1 1 0 0 0 0 1 1
Neste outro exemplo o rudo 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 ocorrncia de uma rajada de comprimento 12, maior que o comprimento de um caracter. caracter b c z 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 BCC A 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1
bit 1 2 3 4 5 6 7 VRC
a 1 1 0 0 0 0 1 1
Organizao de Computadores
14
b.2) Cdigo de Hamming Baseia-se na distncia de hamming (HD), introduzida em 1950 por Richard Hamming, que conta o nmero de bits diferentes entre 2 palavras de mesmo tamanho. ex. de distncia de hamming 0 1 0 1 1 0 1 1 byte A 0 0 1 0 0 1 1 0 byte B ----------------11111 1 hd= 6
O cdigo de Hamming consiste basicamente na introduo de vrios bits de paridade em redundncia que, atravs de um processo de excluso combinatria, possibilitam identificar a falha e em alguns casos corrigir o bit errado.
m + r + 1 2
onde: n=m+r bits de redundncia bits de dados As posies dos bits de redundncia so obtidas atravs da frmula: posx = 2x, x = [0, r-1]. ex. para um cdigo ASCII com m = 7 temos que: a) (7 + r + 1) 2r r 4 ( mnimo de 4 bits de redundncia)
b) a posio dos bits de redundncia ser: 1 (20), 2 (21), 4 (22) e 8 (23). X 1 no relativo do bit X 2 X 4 X 8
10 11 bits de redundncia
Na verificao do erro, mede-se a paridade par ou mpar, conforme tenha sido previamente definida, para cada bit de redundncia aplicado sobre seu universo de atuao. Universo este obtido com base na composio do nmero que indica a posio relativa do bit de dado. ex. bit de redundncia 1 (20)
o universo de atuao do primeiro bit de paridade (bit 1) composto pelos bits de dado pertencentes s seguintes posies: {3, 5, 7, 9 e 11}.
Organizao de Computadores
15
11 = 20 + 21 + 23
O segundo bit de paridade avalia os dados pertencentes s posies: {3, 6, 7, 10 e 11}. justificativa: 7 = 20 + 21 + 22 11 = 20 + 21 + 23
Em resumo, para um cdigo de 4 bits de Hamming, o universo de atuao de cada bit de redundncia dado por: bit 1 (20) {3,5,7,9 e 11} bit 2 (21) {3,6,7,10 e 11} 2 bit 3 (2 ) {5, 6 e 7} 3 bit 4 (2 ) {9, 10 e 11} Com base nos bits de redundncia e seus respectivos universos de atuao que se realiza o processo de deteco e possvel identificao do bit errado. Assim, se os bits de redundncia nmero 1, 2 e 4 acusarem erro, ento conclu-se que o bit errado o da posio 11 porque 1 + 2 + 8 = 11 (20 + 21 + 23). A capacidade do mtodo em detectar e corrigir erros depende da menor distncia de hamming - HD obtida com a codificao 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 cdigo 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 posio 6 representao do caracter ASCII "a" (1100001) com 4 bits de redundncia em paridade mpar. 0 1 1 2 1 3 0 4 1 5 0 6 0 7 0 8 0 9 0 1 10 11
clculo dos bits de redundncia: bit 1: {3, 5, 7, 9 e 11} bit 2: {3, 6, 7, 10 e 11} bit 3: {5, 6 e 7} bit 4: {9, 10 e 11} {1, 1, 0, 0, 1} {1, 0, 0, 0, 1} {1, 0, 0} {0, 0, 1} 0 1 0 0
Organizao de Computadores
16
0 1
1 2
1 3
0 4
1 5
1 6
0 7
0 8
0 9
0 1 10 11
a verificao atravs dos bits de redundncia fornecer: bit 1: {1, 1, 0, 0, 1} bit 2: (1, 1, 0, 0, 1} bit 3: (1, 1, 0} bit 4: {0, 0, 1} 0 0 1 0 correto errado errado correto 0 1 1 0
(610)
Olhando-se de traz para a frente possvel visualizar a posio do bit errado. Lembre que este mesmo valor, conforme visto no incio desta seo, pode ser obtido pela frmula da potncia de 2: (21 + 22 = 6). b) erro nos bits 6 e 9 0 1 1 2 1 3 0 4 1 5 1 6 0 7 0 8 1 9 0 1 10 11
verificao dos bits de redundncia: bit 1: {1, 1, 0, 1, 1} bit 2: (1, 1, 0, 0, 1} bit 3: (1, 1, 0} bit 4: {1, 0, 1} 1 0 1 1 errado errado errado errado 1 1 1 1
(1510)
Observe que o erro foi detectado porm os bits errados no puderam ser identificados.. c) erro nos 3, 6 e 9 0 1 1 2 0 3 0 4 1 5 1 6 0 7 0 8 1 9 0 1 10 11
verificao dos bits de redundncia: bit 1: {0, 1, 0, 1, 1} bit 2: (0, 1, 0, 0, 1} bit 3: (1, 1, 0} bit 4: {1, 0, 1} 0 1 1 1 correto correto errado errado 0 0 1 1
(1210)
O erro de 3 bits foi detectado porm os bits errados no puderam ser identificados. d) erro nos bits 3, 5 e 6 0 1 1 2 0 3 0 4 0 5 1 6 0 7 0 8 0 9 0 1 10 11
Organizao de Computadores
17
0 1 0 0
0 0 0 0
(010)
V.4.1 Discos Magnticos rgidos - so discos de metal, geralmente de dimetro entre 5 e 10 polegadas e coberto, em ambos os lados, por uma superfcie magnetizvel. Os discos giram a velocidades muito elevadas (da ordem de 5000 rpm) e as cabeas de leitura / gravao no tocam a superfcie, flutuam a uma distncia de alguns microns (10-6m). O maior risco de falha a aterrissagem das cabeas que causa perda total do disco e, praticamente, de todos os dados gravados. flexveis - disco de material plstico, flexvel, e coberto em ambas as faces por uma superfcie magnetizvel. As cabeas de leitura / gravao tocam a superfcie, o que provoca um desgaste de ambas as partes. Para reduzir este desgaste, as cabeas so recolhidas e a rotao interrompida enquanto a unidade no est lendo ou gravando. a) Formatao a operao que subdivide o disco em cilindros, trilhas, clusters e setores. trilhas so crculos concntricos onde os dados so gravados magneticamente. Um disco geralmente formatado com um valor entre 40 e algumas centenas de trilhas por superfcie.
Organizao de Computadores
18
setores so espaos radiais que subdividem as trilhas para endereamento e acesso. O setor contm um determinado nmero de bytes, geralmente 512. Nos sistemas mais antigos representava a unidade lgica de acesso para leitura e gravao.
trilha
setor
Figura V.11 - Formatao clusters so utilizados nos sistemas mais modernos e representam a unidade lgica de acesso. O tamanho de um cluster depende do tipo do disco, variando desde um simples setor at um conjunto de vrios setores. O sistema DOS, por exemplo, adota a seguinte formatao: Tipo do Disco 3.5" / 1.44M 3.5" / 720K 5.25" / 1.2M Tamanho do Cluster 512 bytes 1024 bytes 512 bytes Tipo do Disco HD 16M 513M a 1,024G 1.025 a 2,048 Tamanho do Cluster 4096 bytes (8 setores) 16K bytes (32 setores) 32K bytes (64 setores)
cilindros formados pelo conjunto de trilhas de um mesmo raio e pertencentes a diferentes superfcies. O conceito utilizado para agilizar o acesso e a transferncia de dados, pois as cabeas de leitura/gravao ficam todas simultaneamente posicionadas sobre um mesmo cilindro. A figura V.12 abaixo destaca alguns detalhes sobre a estrutura fsica de uma unidade de disco magntico.
cabeotes para leitura / gravao
face superior
face inferior
cilindro
Organizao de Computadores
19
Cada sistema operacional implementa uma organizao prpria de controle e acesso aplicado sobre a formatao fsica da unidade de disco vista acima. No sistema DOS, por exemplo, a superfcie do disco logicamente dividida em duas partes, conforme mostrado na figura V.13 abaixo, uma para armazenamento das informaes utilizadas pelo sistema operacional (rea do sistema) e outra para armazenamento dos arquivos propriamente ditos (rea de dados).
Setor 0
ltimo setor
Boot FATs
Diretrio Root
rea de Dados
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 ocasio da inicializao do computador. A FAT - File Alocation Table, utilizada pelo sistema para armazenar a situao de cada um dos clusters que compem o disco, se o mesmo est desocupado, ocupado ou defeituoso, por exemplo. Pela sua importncia, o sistema operacional mantm uma cpia da FAT afim de dobrar a confiabilidade do disco. A terceira e ltima rea do sistema o Diretrio Raiz (Root), que mantm uma entrada para cada arquivo ou diretrio 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 entrada na FAT e o tamanho adotado para o cluster definem a capacidade mxima de armazenamento do disco, como pode ser visto na tabela abaixo:
Disco 16M ou menos 17M a 128M 129M a 256M 257 a 512M 513M a 1,024G 1,025G a 2,048G
No diretrio raiz, para cada entrada so reservados 32 bytes para armazenar as seguintes informaes: nome e extenso do arquivo, tamanho, data e hora da ltima alterao, atributos de segurana e o endereo do primeiro cluster (rea do disco onde inicia o arquivo). O endereo dos demais clusters ocupados pelo arquivo so obtidos diretamente na FAT, em seqncia, a partir do primeiro, como pode ser visto na figura V.14 a seguir.
20
ENTRADAS DA FAT
900 5 1005 end
.....
900
.....
1005
.....
Figura V.14 - Encadeamento de Clusters de uma arquivo, o endereo do primeiro cluster fornecido pela entrada no diretrio do mesmo
b) Taxa de Transferncia o nmero de bytes capaz de ser transferido do disco para a MP por unidade de segundo:
tx =
bytes transferidos , ta
Organizao de Computadores
21
Trilhas em espiral
Setores
Figura V.15 - Disco tico A gravao feita por raio laser que faz furos de aproximadamente 1 micron, em uma trilha espiralada. Os furos so chamados "pits" e as reas no queimadas, entre os pits, so chamadas "lands". A leitura feita atravs da projeo de um raio de luz, que refletido de forma diferente pelos pits e lands, possibilitando a distino entre ambos. A unidade de endereamento o setor, geralmente de 2Kbytes. O byte, por sua vez, expandido para 14 bits pela adoo do cdigo "reed-solomon" para deteco e correo de erros. capacidade - 650Mbytes taxa de transferncia - aprox 150Kbps (uma ordem de grandeza mais lentos que os magnticos rgidos) confiabilidade - muito mais robustos que os magnticos quanto ao calor, sol e poeira, porm muito mais suscetveis a erros de gravao. aplicao - para armazenamento de grandes volumes de dados que no se alteram. b) Magneto-pticos Representa a 3a gerao de CDs, onde a superfcie plstica coberta com exticas ligas metlicas (trbio e gadolnio) que possuem a interessante propriedade de serem insensveis ao campo magntico quando em baixa temperatura e se tornarem sensveis a ele quando em alta temperatura. A cabea de leitura / gravao possui um laser e um magneto. O laser dispara uma rajada de onda ultracurta, elevando instantaneamente a temperatura do local e, a seguir, o magneto cria o campo na direo desejada ("1" ou "0"). V.4.3 - Fitas Magnticas So dispositivos de acesso sequencial e de taxa de transferncia mais baixa que os discos, mais baratas e muito utilizadas para backup. densidade de gravao - 800, 1600 e 6250 bpi formatao - na organizao 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 fsico.
Organizao de Computadores
22
IRG - o espao para repouso do cabeote de leitura/gravao existente entre dois blocos consecutivos. Seu tamanho de 3/4" e usado para estabilizar a velocidade da fita nos perodos de acelerao e desacelerao. Um bloco pode conter um ou mais registros lgicos. O tamanho do bloco determinado pelo programador, que deve atentar para o binmio eficincia e otimizao. rolo - carretis de 600, 1200 e 2400 ps cartucho - acondicionadas em caixas plsticas cassete - de baixa velocidade
Tipos
9 trilhas
frame
Barramento de Memria MP
UCP
Barramento de E/S
Canal Multiplex
Canal Seletor
Disco
Controladora de terminais
Impressora
Disco Disco
Figura V.17 - Canais de E / S So as unidades que possibilitam a comunicao do computador com o meio externo. A interligao destes dispositivos com o restante do computador pode ser via canais de E/S -
Organizao de Computadores
23
processadores dedicados (caractersticos dos mainframes) ou atravs de formas mais rudimentares de E/S (caractersticas dos mini, superminis e microcomputadores). Os canais de E/S liberam a UCP para executar outras atividades enquanto eles se encarregam da comunicao com o dispositivo de E/S e a transferncia dos dados. Um computador tpico pode ter vrios canais, cada qual atendendo um ou mais dispositivos. Existem trs tipos de canais: multiplexador, seletor e bloco-multiplexador. O canal multiplexador geralmente assncrono e utilizado para os dispositivos de baixa ou mdia velocidade, transmite um byte por vez e pode atender a diversos dispositivos simultaneamente. O canal seletor geralmente sncrono e projetado para atender uma nica operao de E/S a cada instante, sendo normalmente utilizado para controlar um dispositivo de alta velocidade. O canal bloco-multiplexador combina as caractersticas dos canais multiplexador e seletor, prov conexo a diversos dispositivos de alta velocidade e transfere um bloco de dados em cada operao. 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 comunicao (device driver) e as rotinas de E/S do sistema operacional.
Discos
In bloco n Disco x cilindro y trilha z setor w Acessa x x
Disk Driver
Controla-dora
Figura V.18 - Sistema de E/S As rotinas de E/S pertencem camada de mais alto nvel do sistema operacional e tm por objetivo permitir ao usurio realizar operaes de E/S sem se preocupar com detalhes de operao do dispositivo que est sendo acessado. Assim, quando um usurio cria um arquivo em disco, no lhe interessa saber como a formatao 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 aplicaes e os dispositivos bem como entre os dispositivos e o restante do sistema operacional. Elas so tambm responsveis por implementar todo um mecanismo de proteo de acesso aos dispositivos e arquivos.
Organizao de Computadores
24
Os device drivers so as rotinas do sistema operacional que tm como funo se comunicar com os dispositivos em nvel de hardware, geralmente atravs de placas controladoras. Elas especificam caractersticas fsicas de um dispositivo. Cada device drive manipula somente um tipo de dispositivo ou um grupo de dispositivos semelhantes. Os drivers tm como funo receber comandos gerais repassados pelas rotinas de E/S e traduzi-los para comandos especficos que so executados pelas controladoras. As controladoras so componentes eletrnicos, isto , so placas instaladas nos slots da placa me de um PC por exemplo, responsveis por manipular diretamente os dispositivos de E/S. Suas principais funes so: controle e temporizao; comunicao com o processador; comunicao com o dispositivo externo; armazenamento temporrio (bufferizao) dos dados e deteco de erro. Estas placas variam em complexidade e no nmero de dispositivos que controlam. Geralmente possuem memria e registradores prprios para poder executar as instrues enviadas pelo device driver. Podem ser dos tipos serial ou paralela. (fig. V.19)
estado controle
As formas de acionamento e execuo das operaes de E/S, podem ser dos seguintes tipos: 1. Programada com espera ocupada (busy wait) 2. acionada por interrupo 3. acesso direto memria.
Vdeo
Teclado
Printer
HD
UCP
MP
Interfa-ce Serial
Interfa-ce Serial
Interfa-ce Paralela
Interfa-ce Paralela
Barramento
Organizao de Computadores
25
E/S programada com espera ocupada (Busy Wait) o mtodo mais simples possvel, onde o computador possui apenas uma instruo de entrada (IN) e uma de sada (OUT). Dependendo da implementao, estas instrues podem ler e gravar diretamente na memria (caracterizando o memory-mapped I/O) ou acessar diretamente a interface do dispositivo. Em ambos os casos dois ou trs buffers (registradores) so utilizados para cada dispositivo, um para status, um para entrada (read) e outro para sada (write). Um nico caractere transferido entre um registrador da UCP e o dispositivo de E/S selecionado, sendo que a UCP deve executar a instruo explcita desejada (IN ou OUT) para cada caractere transmitido ou recebido.
read Dispositivo
processo
write
CTL
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 operao 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 processo 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 prtica chamada de espera ocupada (busy wait), que uma espera dispendiosa. Uma maneira de evitar esta perda desnecessria de capacidade de processamento da UCP fazer com que esta no precise ficar esperando pelo dispositivo que deve, ele prrpio, informar UCP quando do trmino da execuo da operao solicitada. Este o mtodo da interrupo. E/S acionada por interrupo O termo interrupo usado para identificar a ocorrncia de um evento no-freqente, no-esperado ou aleatrio, que obriga a UCP a desviar, temporariamente, o fluxo do programa em execuo para o de uma rotina que atenda a interrupo. A grande vantagem desta tcnica em relao a da E/S programada, est no fato de que a UCP deixa de esperar em loop pelo dispositivo. O mtodo mais usual de implementar a tcnica de interrupo pela ativao de um sinal de controle chamado interrupt request (IR), ao qual a UCP responde ativando uma rotina de tratamento especfica para cada dispositivo (device drive). O processamento da interrupo envolve:
Organizao de Computadores
26
1. a UCP identifica a fonte da interrupo; 2. a UCP recupera o endereo inicial da rotina de tratamento da interrupo (interrupt table); 3. o PC (program counter) e o vetor de status do processo corrente (PSW) so salvos na pilha (stack); 4. o PC carregado com o endereo inicial da rotina de tratamento da interrupo; 5. aps a execuo da rotina de tratamento, o PC e a PSW do processo interrompido so recuperados da pilha, e o processo interrompido reinicia o processamento de onde havia parado. Embora a E/S por interrupo represente um avano em relao E/S programada, ela est longe de ser perfeita. O problema que ela requer a ocorrncia de uma interrupo para cada caractere transmitido e processar uma interrupo uma tarefa cara. A soluo voltar a E/S programada porm no deixar a responsabilidade de sua execuo nas mos da UCP surge ento, a tcnica do DMA (Acesso Direto Memria). E/S por DMA a transferncia de dados diretamente entre o dispositivo de E/S e a MP, sem a interveno da UCP. Na operao de DMA, a UCP atua apenas nas fases de inicializao (fornecendo o endereo e o nmero de bytes a ser transferido) e de finalizao. Toda a transferncia 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 instruo (fig. V.21), e atende o DMA.
ciclo de instruo
ciclo de UCP
fetch
decode
data fetch
execution
store
DMA breakpoints
IR breakpoint
Figura V.21 - Ciclo de Instruo x Pontos de Interrupo A tcnica de DMA pode ser implementada segundo duas filosofias: 1. block transfer ==> transfere grandes volumes de dados em uma nica operao (durante a transferncia dos dados a UCP pode continuar operando normalmente porm no pode acessar a MP);
Organizao de Computadores
27
2. cycle stealing ==> transfere apenas um ou dois bytes de cada vez, "roubando" pequenos ciclos de memria que no so sentidos pela UCP em virtude da parada do seu relgio. A pastilha de DMA possui (pelo menos) 4 registradores internos, todos podendo ser carregados pelo processo em execuo na UCP. O primeiro deles contm o endereo de memria a ser lido ou escrito, o segundo contm o contador de quantos bytes (ou palavras) devem ser transferidos, o terceiro especifica o dispositivo a ser usado e o quarto informa a operao a ser realizada (leitura ou gravao). (a)
UCP I/O
Comando de leitura
(b)
UCP I/O
(c)
L Estado do DMA
No
Pronto ?
Sim
No
OK ?
Sim
Erro
UCP MP
Grava na Memria
Grava na Memria
FIM ?
FIM ?
Figura V.22 - Fluxograma representativo das 3 estratgias de comunicao com dispositivos de E/S. (a) entrada e sada programada; (b) por interrupo e por DMA
Organizao de Computadores
28
2) SIMD - Single Instruction Multiple Data (fluxo nico de instruo porm mltiplo de dados - caracterizados pelas vector e array machines) 3) MIMD - Multiple Instruction Multiple Data (mltiplos fluxos de instrues e de dados - caracterizados por arquiteturas com matrizes de processadores) SISD a mquina convencional, com um nico programa executado passo a passo por uma nica UCP. uma quantidade limitada de paralelismo pode ser alcanada com a introduo de algumas modificaes na estrutura SISD bsica, como por exemplo: a) pipelining
Estaes / instrues
P1 P2 P3 P4 P5
A 1
B A 2
C B A 3
D C B A 4
E D C B A 5
F E D C B 6 t
Figura V.23 - Mquina SISD com Pipeline Baseia-se no processamento do ciclo de instruo por partes, como numa linha de montagem, onde cada estao de trabalho responsvel pelo processamento de apenas uma fase do ciclo total. b) mquina com mltiplas unidades funcionais A UCP busca tantas instrues quantas forem as unidade funcionais disponveis ou at que uma instruo dependa do resultado de outra ainda em execuo.
registradores
Organizao de Computadores
29
SIMD Ideal para aplicaes vetoriais e matriciais, onde uma mesma operao se repete sobre vrios dados.
Vetor A
Vetor B
ULA
Vetor Resultado
A+B
Figura V.25 - Estrutura SIMD MIMD So vrios processadores independentes, cada um executando um programa diferente. Dependendo do granularidade de integrao pode caracterizar um multiprocessador, uma rede de computadores ou um sistema distribudo.
Organizao de Computadores
30
cao e de diviso. Estas e as demais instrues de ponto flutuante so executadas por um coprocessador aritmtico. Em 1991 a IBM lanou a chamada 2a gerao da tecnologia RISC, baseada na tecnologia pipeline e de processadores de funes mltiplas. As mquinas desta gerao, 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 operaes por ciclo de mquina. Em resumo, uma mquina RISC se caracteriza por:
a) ter instrues simples executadas em um ciclo de mquina; b) usar apenas as instrues Load e Store para referenciar a memria; c) fazer uso da tecnologia pipeline; d) ter instrues executadas diretamente pelo hardware; e) ter instrues com formato fixo; f) ter poucas instrues; g) delegar a complexidade para o compilador; e h) fazer uso de mltiplos conjuntos de registradores.