Baixe o app para aproveitar ainda mais
Prévia do material em texto
'\hdticomputadores Embora os sistemas multiprocessadores com urn pequeno 'i'ilmero de processadores (::;;;64) sejam muito faceis de s~r~~ ((}flStruidos, os sistemas com mais processadores sac de dIflCI1 cmplementa~ao. A dificuldade esta na conexao dos processado- 7;:S' It mem6ria. Para resolver esse problema, muitos projetistas N:ffiDlesmenteahandonaram a ideia da mem6ria compartilhada :::;:,;nstruiram sistemas com urn grande numero de computado- .~ interconectados, sem qualquer tipo de memoria comum. Es- '<S sistemas sac conhecidos como multicomputadores. Os processadores de urn sistema multicomputador co~uni- (4m-se por meio do mecanismo de troca de mensagens, malS ou ili'1.:ilOS como no sistema de correio eletronico, so que a uma ve- ··x:idade muito maior. No caso de sistemas de maior porte, nao e •12vel estabelecer uma liga~ao de urn processador com todos os de modo que foram desenvolvidas topologias especiais :;"'3i.""a esses sistemas, a exemplo das grades 2D e 3D, das arvores ; dos aneis. Como resultado, as mensagens de urn processador pMU outro as vezes passam por urn ou mais processadores inter- :I'¢diarios, que simplesmente as roteiam na dire~ao do seu desti- Apesar disso, 0 tempo medio de chegada de uma mensagem :::.2t0 passa de alguns microssegundos. Existem em opera~ao sis- '.emas multicomputadores com cerca de 10.000 processadores. Considerando-se que os sistemas multiprocessadores sao mais 'xeis de programar e os sistemas multicomputadores mais faceis .de construir, as pesquisas tern apontado para urn sistema hibrido, combine em urn so sistema as vantagens de ambos. Tais com- ;:'I.Jwdorestentam dar a ilusao de memoria compartilhada, sem arcar (om 0 onus de implementa-la diretamente. No Capitulo 8, vamos '(,har ao assunto dos multiprocessadores e dos multicomputadores. A memoria e a parte do computador onde os programas e os Cados sac armazenados. Sem uma mem6ria na qual os proces- ;·adores possam ler ou escrever informa~6es, 0 conceito de com- p:Hudor digital com programa armazenado nao pode ser :n.plementado. de mem6ria mais simples possivel. (Urn dispositivo capaz de armazenar somente zeros nao implementa 0 conceito de sistema de mem6ria; e necessario urn minima de dois valores para que se possam armazenar informa~6es diferentes.) ., . As vezes se ouve falar que os computadores usam a antrnetI- ca binaria por causa da sua "eficiencia". 0 que se quer dizer com isso (embora aqueles que 0 dizem nao imaginem) e que urn s~s- tema de armazenamento de informa~ao digital e baseado na dIS- tin~ao entre valores diferentes de alguma grandeza ffsica,. co~o corrente ou tensao. Quanto mais valores houver a serem IdentI- ficados, menor sera a separa~ao entre valores adjacentes, e como conseqiiencia 0 sistema de mem6ria sera menos confi~v~l. N.o sistema de numeracao binario s6 ha necessidade de se dlstmgUlr entre dois valores. Conseqiientemente, 0 metodo de codifica~ao da informa~ao digital em binario e 0 mais confiavel de todos. Se voce nao estiver familiarizado com 0 conceito de mlmeros bina- rios, e hora de dar uma olhada no Apendice A. AI cruns computadores, como os mainframes da IBM, anun- ciam que sua aritmetica decimal e tao boa quanto a binaria. Na verdade, as opera~6es decimais sao possiveis porque ness~s maquinas os dicritos decimais sac armazenados segundo urn co- e • digo de quatro bits chamado codigo BCD (Binary Coded DecI- mal).* Os quatro bits do c6digo pennitem urn total de 16 com- bina~6es diferentes, sendo que dez dessas combina~6es sac usa- das para representar cada um dos dfgitos decimais de 0 a 9. As seis combinac6es restantes nao tern utiliza~ao. Por exemplo, 0 numero 1941 e representado a seguir em decimal (segundo 0 c6digo BCD) e em binario, considerando que ambas as repre- senta~6es usam 16 bits: decimal: 0001 1001 0100 0100 binario:00000llllOOll000 No formato decimal, usando dezesseis bits, poderemos armaze- nar mimeros de 0 a 9999, conseguindo portanto urn total de so- mente 10.000 combina~6es diferentes, enquanto que se usarmos os mesmos 16 bits para representar urn numero binario puro, po- deremos armazenar 65.536 combina~6es diferentes. Par isso as pessoas dizem que a representa~ao bimiria. e mais efici~nte. No entanto, considere 0 que acontecena se algum Jovem e brilhante engenheiro inventasse urn dispositivo eletronico alta- A unidade basica de mem6ria e 0 digito binario, conhecido (c'mo bit. Urn bit pode ter 0 valor 0 ou 0 valor 1. Ele e a unidade * Em portugues. Decimal Codificado em Binario. (N. T.) Endereyo Endereyo 1 celula Endereyo 01 0 0 /I ·1 1 I 1 1 I I 21 2 2 I 3 3 3 I 4 41 4 I 5 51 5 I I 6 61 16 bits 71 71 (C) 8 .. 2 bits .. 9 (b) 10 11 bits- (a) mente confiavel, capaz de armazenar diretamente os digitos de- cimais de 0 a 9, dividindo em 10 intervalos a regUio entre 0 e 10 volts. Quatro desses dispositivos podem armazenar qualquer numero decimal entre 0 e 9999, podendo representar 10.000 combina~oes diferentes. as dispositivos tambem poderiam ser usados para armazenar numeros binarios, e, nesse caso, quatro desses dispositivos poderiam armazenar somente 16 combina- ~oes. Se dispositivos desse tipo existissem, 0 sistema decimal seria mais eficiente que 0 binario. A memoria e formada por urn conjunto de celulas (ou posi- ~oes), cada uma das quais podendo guardar uma informa~ao. Cada celula tern urn mimero associ ado a ela, mimero esse conhe- cido como endere~o da celula. Epor meio desse numero que os programas podem referenciar a celula. Se a memoria tiver n ce- lulas, elas terao enderei;{osde 0 an-I. Todas as celulas de uma memoria dispoem do mesmo numero de bits. Se uma celula ti- ver k bits ela podeni armazenar qualquer uma das 2k combina- ~oes possiveis para os bits. A Fig. 2.9 mostra tres organiza~oes diferentes para uma memoria de 96 bits. Observe que celulas ad- jacentes tern endere~os consecutivos (por defini~ao). Os computadores que usam 0 sistema de numera~ao binario (incluindo aqueles que utilizam a nota~ao octal e/ou a hexadecimal para numeros binarios) expressam os endere~os de memoria como numeros binarios. Se urn determinado endere~o tern In bits, 0 numero maximo de celulas enderes;aveis e de 2'". Por exemplo, urn endere~o utilizado para referenciar a memoria da Fig. 2.9(a) precisa de no minimo 4 bits para expressar todos os numeros binarios entre 0 e II. No entanto, no caso da Fig. 2.9(b) e da Fig. 2.9(c), tres bits de endere~o serao suficientes. a numero de bits no endere~o determina 0 numero maximo de en- deres;os que poderao ser referenciados diretamente na memoria, sendo completamente independente do numero de bits por celu- la. Tanto uma memoria com 212 celulas de 8 bits cada quanta uma Computador Bits/celula Burroughs B1700 1 PC IBM 8 DEC PDP-8 12 IBM 1130 16 DEC PDP-15 18 XDS 940 24 Electrologica X8 27 XOS Sigma 9 32 Honeywell 6180 36 COC3600 48 COC Cyber 60 Fig. 2.10 Ntimero de bits por celula de alguns computadores comerci- ais de interesse. outra memoria com 212 celulas de 64 bits cada precis am de 12 bits para representar 0 endere~o da celula. A Fig. 2.10 mostra 0 numero de bits por celula para algumas maquinas comerciais. A celula e a menor unidade enderes;avel em urn computador. Nos ultimos anos, quase todos os fabricantes de computadores padronizaram 0 tamanho da celula em 8 bits, chamando essa celula de byte. Os bytes sao agrupados empalavras. Um com- putador com uma palavra de 32 bits tem 4 bytes/palavra, enquanto um computador com uma palavra de 64 bits tem 8 bytes/pala- vra. A maioria das instru~oes de uma maquina opera sobre pala- vras, daf a significiincia do conceito. Par exemplo, uma instru- ~ao de soma muito provavelmente vai somar dois valores de 32 bits. Portanto, uma maquina de 32 bits devera ter registradores e instru~oes para tratar palavras de 32 bits, enquanto uma maqui- I--------------------------------~ I I : Terminal ISDN I I I I I I I I I I I I I I I I I I I ,L . Equipamentos do cliente f--------------------------------~ I I , I I I , : , , I I I, I , , Paraa rede : interna da : concession aria : do servh;:o : I I I I ~-------------------------- I conexoes sac estabelecidas em nao mais do que 1 segundo, alem do fato de essas linhas nao precisarem de modem anal6gico e de serem muito mais confiaveis (menos erros) do que as linhas anal6gicas. a servi<;;oISDN tern, alem disso, urn conjunto extra de caracteristicas e de novas op<;;oesnao-disponiveis nos servi- <;;osque utilizam linhas anal6gicas. A Fig. 2.40 mostra a estrutura de uma conexao ISDN. A li- nha fornece, na verdade, urn caminho digital para os dados que simplesmente transfere bits de urn lado para outro. a significa- do desses bits e da responsabilidade do transmissor e do recep- tor. A interface entre 0 equipamento do cliente e 0 equipamento da companhia prestadora do servi<;;oe feita pelo dispositivo NTI, com a interface T de urn lado e a interface U do outro. Nos Esta- dos Unidos, os usuarios do servi<;;oISDN precis am comprar 0 dispositivo NTl. Na maioria dos pafses europeus, esses disposi- tivos podem ser alugados da companhia telef6nica. Cada computador usa urn determinado conjunto de caracteres. No minimo, esse conjunto deve incluir as 26letras maiusculas e as 26 minusculas do alfabeto ingles, os digitos decimais de 0 a 9, e alguns simbolos especiais, tais como espa<;;o,ponto, sinal de menos, vfrgula e retorno de carro. De modo a poder transferir cada urn desses caracteres para 0 computador, atribui-se urn numero a cada urn deles: por exem- plo, a = 1, b = 2, ... , z = 26, + = 27, - = 28. a mapeamento dos caracteres em numeros inteiros e eonheeido como codigo de caracteres. E fundamental que computadores que se comuni- quem usem 0 mesmo c6digo de caracteres, sob pena de urn nao entender 0 que 0 outro quer transmitir. Por esse motivo, foram desenvolvidos c6digos de caracteres padroes. A seguir, vamos examinar os dois padroes mais importantes para os e6digos de caracteres. Urn dos e6digos mais utilizados atualmente e conhecido como ASCII (American Standard Code for Information Interchan- ge). Cada caraetere ASCII tern 7 bits, 0 que faz com que 0 c6di- go represente 128 caracteres no total. A Fig. 2.41 mostra 0 c6di- go ASCII. as c6digos de 0 a IF (hexadecimal) representam . caracteres de controle e nao sao impressos. Muitos dos caracteres de controle ASCn sao voltados para a transmissao de dados. Por exemplo, uma mensagem pode ser composta de urn caractere SOH (inicio de cabec;alho), seguido do cabecalho e de urn caractere STX (inicio de texto), que, par sua vez: e seguido pelo texto em si, e por urn caractere de ETX (fim de texto) e pelo caractere EaT (fim de transmissao). Na pratica, no entanto, as mensagens enviadas atraves das linhas telef6nicas e das redes sao formatadas de maneira urn pouco di- ferente da descrita, de modo que os caracteres de controle ASCn nao sac mais usados com freqiiencia. A lei de formaC;ao dos demais caracteres ASCII, mais especi- ficamente os caracteres que serao impressos, e muito simples de ser entendida se examinarmos diretamente a tabela da Fig. 2.41. Entre tais caracteres se incluem as letras maiusculas e as letras minusculas, os dfgitos decimais, os caracteres de pontua<;;ao,e uns poucos simbolos matem<iticos. A industria de computadores cresceu mais acentuadamente nos Estados Unidos, 0 que justifica a ado<;;aodo c6digo ASCII. Observe que esse c6digo e adequado a lingua inglesa, mas nao e muito born para os demais idiomas. Por exemplo, 0 frances pre- cisa de acentos (como na palavrasysteme); 0 alemao precisa usar com freqiiencia 0 trema (como na palavrafiir), e por ai vai. Al- guns idiomas europeus tern alguns caracteres que nao foram in- cluidos no c6digo ASCII, como, por exemplo, 0 caractere 13 do idiom a alemao, e 0 caractere <I> usado no dinamarques. Alguns idiomas tern alfabetos completamente diferentes do alfabeto in- gles (como, por exemplo, 0 russo e 0 arabe), e alguns idiornas sequer tern alfabeto (0 chines, por exemplo). Na medida em que os computadores come<;;aram a se espalhar pelos quatro cantos do mundo, fazendo com que os desenvolvedores de software precisassem vender seus produtos em pafses onde a maioria dos usuarios nao falava ingles, houve necessidade de se desenvol- ver urn c6digo de caracteres mais abrangente do que 0 ASCII. A primeira tentativa de estender 0 ASCII foi com 0 IS 646. que incorporou mais 128 caracteres aos ja existentes, transfor- mando 0 ASCII em urn c6digo de 8 bits, conhecido com Latino 1. Os novos caracteres eram basicamente letras dos alfabetos latinos, com acento e trema. Em seguida foi desenvolvido 0 pa- drao IS 8859, que introduziu 0 conceito de pagina de c6digo. urn conjunto de 256'caracteres especificos para urn determinado idioma ou grupo de idiomas. a IS 8859-1 corresponde ao c6di- go Latino 1. a IS 8859-2 trata dos idiomas latinos com raizes eslavas (como, por exemplo, 0 tcheeo, 0 polones e 0 hungaro). a IS 8859-3 contem os caracteres necessanos aos idiomas tur- co, maltes, esperanto e gales, e assim por diante. 0problema com a metodologia da pagina de c6digo e que 0 software precisa se Hexa Nome Significado Hexa Nome Significado 0 NUL Null 10 OLE Data Link Escape 1 SOH Start Of Heading 11 DC1 Device Control 1 2 STX Start Of Text 12 OC2 Device Control 2 3 ETX End Of Text 13 DC3 Device Control 3 4 EOT End Of Transmission 14 DC4 Device Control 4 5 ENQ Enquiry 15 NAK Negative AcKnowledgement 6 ACK ACKnowledgement 16 SYN SYNchronous idle 7 BEL BEll 17 ETB End of Transmission Block 8 BS BackSpace 18 CAN CANcel 9 HT Horizontal Tab 19 EM End of Medium A LF Line Feed 1A SUB SUBstitute B VT Vertical Tab 1B ESC ESCape C FF Form Feed 1C FS File Separator 0 CR Carriage Return 10 GS Group Separator E SO Shift Out 1E RS Record Separator F SI Shift In iF US Unit Separator Hexa Carac Hexa Carac Hexa Carac Hexa Carac Hexa Carac Hexa Carac 20 (Space) 30 0 40 @ 50 P 60 , 70 P 21 ! 31 1 41 A 51 Q 61 a 71 q 22 " 32 2 42 B 52 R 62 b 72 r 23 # 33 3 43 C 53 S 63 c 73 s 24 $ 34 4 44 D 54 T 64 d 74 t 25 0/0 35 5 45 E 55 U 65 e 75 u 26 & 36 6 46 F 56 V 66 f 76 v 27 , 37 7 47 G 57 W 67 g 77 w 28 ( 38 8 48 H 58 X 68 h 78 x 29 ) 39 9 49 I 59 Y 69 i 79 Y 2A * 3A 4A J 5A Z 6A j 7A z 2B + 3B , 4B K 5B [ 6B k 7B { 2C 3C < 4C L 5C \ 6C I 7C I 20 - 3D = 40 M 50 ] 60 m 70 } 2E 3E > 4E N 5E . 6E n 7E - 2F / 3F ? 4F 0 5F - 6F 0 7F DEL ?,~)Cupar com qual das paginas esta ativa, alem de ser impossf- misturar dois ou mais idiomas em urn unico texto e de 0 es- ",~ema nao cobrir os idiomas chines e japones. "ern gropo de empresas decidiu resolver esse problema for- :1'illiandourn cons6rcio para criar urn novo sistema, chamado {~lCODE, transformando-o em urn padrao internacional (IS o UNICODE e suportado por algumas linguagens de t!lR~~ma~ao (Java, por exemplo), por alguns sistemas operaci- ?:1'ill;alS(como, por exemplo, 0 Windows NT) e por muitas aplica- E muito provavel que 0 UNICODE se tome cada vez mais na medida em que a industria dos computadores se A ideia basica que M por tras do UNICODE e atribuir a cada ::ractere e a cada sfmbolo urn unico valor de 16 bits, conhecido ?;'1)1mOponto de c6digo. No UNICODE nao existem caracteres ,"arios bytes nem sac usadas seqtiencias formadas por meio t", tecla ESe. 0 fato de cada sfmbolo representado no c6digo ter bits facilita muito a escrita dos softwares que tomam por base c6digo. Com sfmbolos de 16 bits, 0 UNICODE tern exatamente 65.536 pontos de c6digo. Como todas as linguagens do mundo usam cerca de 200.000 sfmbolos, os pontos de c6digo sac urn recurso escasso que precisam ser alocados com muito cuidado. Cerca de metade dos pontos de c6digo disponfveis no UNICODE ja foi aloe ada, e 0 cons6rcio responsavel pelo desenvolvimento do c6digo examina continuamente as propostas de utiliza~ao dos demais pontos de c6digo. Para acelerar a aceita~ao do UNICODE, 0 cons6rcio burocraticamente atribuiu os pontos de c6digo de a a 255 para 0 c6digo Latino 1, tornando muito facil a conversao entre 0 ASCII e 0 UNICODE. Para evitar 0 desperdfcio de pontos de c6digo, cada acento tern seupr6prio ponto de c6digo. Fica a cargo do software combinar os acentos com os caracteres digitados em seguida para formar os caracteres acentuados. o espa~o dos pontos de c6digo e dividido em blocos, cada bloco contendo urn numero de pontos de c6digo multiplo de 16. Cada urn dos alfabetos principais do UNICODE ocupa uma se- quencia de zonas consecutivas. Alguns exemplos (incluindo 0 mimero de pontos de c6digo aloe ados a cada alfabeto) sac 0 la- tino (336), 0 grego (144), 0 cirilico (256), 0 armenio (96), 0 hebraico (112), 0 devanagari (128), 0 gurma (128), 0 oria (128), o telego (128) e 0 kana (128). Observe que foram alocados a cada urn desses alfabetos mais pontos de c6digo do que as letras exis- tentes. Essa decisao foi tomada em fun~ao de muitas linguagens terem divers as formas para cada letra. Por exemplo, cada letra do alfabeto ingles tern duas formas: a maiuscula e a minuscula. Algumas linguagens admitem tres ou mais formas, dependendo se a letra esta no inicio, no meio ou no fim da palavra. Alem dos pontos de codigo alocados a esses alfabetos, exis- tern aqueles atribufdos aos acentos (112), aos caracteres de pon- tua\fao (112), aos subscritos e sobrescritos (48), sfmbolos finan- ceiros (48), sfmbolos matemiiticos (256), formas geometricas (96) e dingbats (192). * Apos esses caracteres come~am os sfmbo10s necessarios aos alfabetos chines, japones e coreano. Primeiro foram alocados pontos de c6digo para os 1024 sfmbolos foneticos (como, por exemplo, 0 catacana e 0 bopomofo), depois para os ideogramas unificados de Han (20.992) usados no alfabeto chines e no japo- nes, e depois para as sflabas Hangul do alfabeto coreano, totalizando mais 11.156 pontos de c6digo. Urn total de 6400 pontos de codigo foi dedicado a sfmbolos a serem criados pelos usuarios. Apesar de resolver muitos problemas ligados a intemaciona- liza\fao, 0 UNICODE nao da conta de todos os problemas do mundo. Por exemplo, enquanto os pontos de c6digo do alfabeto latino foram associados na ordem constante do dicionario, aque- les relativos aos ideogramas Han nao foram alocados por essa ordem. Como consequencia, urn programa em ingles pode exa- minar as palavras "cat" e "dog" e coloca-Ias na ordem alfabetica simplesmente comparando os valores UNICODE dos seus pri- meiros caracteres. Urn programa em japones precisa de tabe1as extemas para determinar quais de dois sfmbolos vem primeiro no dicionario. Outra questao e que constantemente estao sendo criadas no- vas palavras. Poucos anos atras, ninguem falava sobre aplets, cyberspace, gigabytes, lasers, modems, smileis ou videotapes. o acrescimo de novas palavras ao idioma ing1es nao exige a aloca\fao de novos pontos de codigo ao alfabeto. Porem, 0 acres- cimo de novas palavras ao japones exige a aloca~ao de pontos de codigo adicionais. Alem de novas palavras tecnicas, existe uma demanda para acrescentar urn minimo de 20.000 (a maioria chineses) novos nomes proprios e novos nomes de localidades geograficas. Alem disso, a comunidade de cegos acha que 0 al- fabeto braile deve estar representado no UNICODE, alem de di- versos outros grupos de interesse que reclamam seus direitos a pontos de codigo. 0 consorcio UNICODE examina cuidadosa- mente todas as propostas e decide pel a aloca~ao, ou nao, de no- vos pontos de codigo. . o UNICODE usa os mesmos pontos de codigo para caracteres essencialmente identic os mas que tern diferentes significados ou que sac escritos de maneira ligeiramente diferente no chines e no japones (os processadores de texto para a lingua inglesa mui- tas vezes confundem "blue" com "blew", pois ambas as palavras * Dingbat e uma pequena figura, como uma estrela ou uma seta, que pode ser inserida em urn documento. Existem varios conjuntos de dingbats disponiveis como fontes. 0 mais conhecido desses conjuntos e 0 ZAPF, cujo nome e uma homenagem ao seu criador Hermann Zapf. (N. T.) parecem identicas). Algumas pessoas veem essa otimiza~ao como urn meio de economizar os escassos pontos de codigo, outras atribuem essa decisao ao imperialismo cultural anglo- saxao (voce ja tinha parado para pensar que a atribui~ao de 16 bits a caracteres pudesse se transformar em uma questao polfti- ca?). Para piorar urn pouco mais as coisas, urn dicionario com- pleto de japones tern 50.000 caracteres kanji (sem contar os no- mes proprios), com somente 20.992 pontos de codigo alocados para os ideogramas Han, dos quais os caracteres kanji fazem parte. Portanto, em fun~ao do exposto, ha necessidade de se to- marem decisoes serias sobre a aloca\fao dos pontos de codigo. Nem todos os cidadaos japoneses concordam com 0 fato de urn consorcio de empresas fabricantes de computadores transformar- se no forum para esse tipo de debate, mesmo sabendo que algu- mas dessas empresas sac japonesas. Os sistemas computacionais sac formados por tres tipos de componentes: processadores, mem6rias e dispositivos de E/S. A tarefa do processador e buscar as instru~6es na mem6ria uma por uma, decodifica-Ias e executa-Ias. 0 ciclo de busca-decodifica- \fao-execu~ao pode sempre ser descrito como urn algoritmo e, na verdade, ser algumas vezes executado por urn interpretador escrito em software que roda em urn nivel mais baixo. Para ga- nhar velocidade, a maioria dos processadores tern urn ou mais pipelines, ou e projetada segundo a tecnica superescalar com varias unidades funcionais operando em paralelo. Sao cada vez mais comuns os sistemas com mais de urn pro- cessador, dedicados ao processamento paralelo. Esses compu- tadores podem ser matriciais, nos quais a mesma opera~ao e re- petida ao mesmo tempo sobre diversos conjuntos de dados, multiprocessadores nos quais varios process adores compartilham urna mem6ria comum, ou multicomputadores, nos quais existem diversos processadores com suas pr6prias mem6rias mas que se comunicam por meio de troca de mensagens. As mem6rias podem ser classificadas como principais e se- cundarias. A memoria principal e usada para armazenar 0 pro- grama que estiver sendo executado. Seu tempo de acesso e mui- to pequeno - da ordem de poucas dezenas de nanossegundos no maximo - e independe do endere\fo que estiver senda acessado. As mem6rias cache conseguem ter urn tempo de aces- so ainda menor. Algumas memorias sac equipadas com c6digos de corre\fao de erros para melhorar a confiabilidade de sua ope- ra~ao. Em contraste com as mem6rias principais, as mem6rias se- cundarias tern urn tempo de acesso muito mais alto (da ordem de milissegundos) e dependente do ultimo dado que foi lido ou impresso. As fitas, os discos magneticos e os discos 6pticos sao os tipos de memoria secundaria mais conhecidos. Existe uma grande variedade de discos magneticos, incluindo os discos fle- xlveis, os discos Winchester, os IDE, os SCSI e os RAIDs. Os discos opticos incluem os CD-ROMs, os CD-Rs e os DVDs. Os dispositivos de E/S sao usados na transferencia de infor- ma\fao para dentro e par a fora do computador. Eles sao ligados ao processador e a memoria por intermedio de urn ou mais bar- ramentos. Como exemplos desses dispositivos podemos citar os terrninais, os mouses, as impressoras e os modems. A maioria dos dispositivos de ElS usa 0 c6digo de caracteres ASCII, ape- sar de 0 UNICODE estar ganhando terreno rapidamente, na medida em que a industria da computa\fao se globaliza. 1492 746 373 186 93 46 23 0 siste em duas vezes a entrada da linha n - I mais 0 bit na linha n (Oou 1). A entrada da linha superior e a resposta. A Fig. A.6 mostra urn exemplo desse metodo de conversao de numeros bi- nanos em numeros decimais. As convers6es de decimal em octal e de decimal em hexade- cimal podem ser feitas convertendo-se os numeros primeiro em binano e depois na base desejada, subtraindo-se dele potencias de 8 ou de 16. Ao longo de sua curta hist6ria, os computadores digitais usa- ram quatro sistemas diferentes para representa~ao de mlmeros inteiros negativos. 0 primeiro deles e conhecido como sinal- magnitude. Nesse sistema, 0 bit mais a esquerda do numero representa 0 sinal (0 e + e 1 e - )e 0 resto dos bits guarda 0 valor absoluto do numero. o segundo sistema, conhecido como complemento a urn, tambem tern um bit para representar 0 sinal, que e 0 quando 0 sinal e positivo e 1 quando ele e negativo. Para negar 0 valor de um numero devemos substituir cada bit 1 por um bit 0 e cada bit o por urn bit 1. Isso tambem vale para 0 bit de sinal. * A repre- senta~ao em complemento a 1 esta obsoleta. o terceiro sistema, conhecido como complemento a dois, tambem tem um bit de sinal que e 0 quando 0 numero for posi- tivo e 1 quando for negativo. A nega~ao de um numero em com- plemento a dois e realizada em dois passos. Primeiro, cada bit 1 e substitufdo por um bit 0 e cada bit 0 e substitufdo por um bit 1, exatamente como no complemento a um. Depois, 0 valor 1 e somado ao numero obtido no passo anterior. A soma binana e igual a soma decimal, exceto pelo fato de um carry* ser gerado Fig. A.5 Conversao do mlmero decimal 1492 em bimirio por divisoes sucessi vas por 2, come9ando em cima e terminando embaixo. Por exem- plo, dividindo-se 93 por 2 obtem-se 46 para quociente e 1 para resto, valores esses que devem ser escritos na linha seguinte aquela onde esta escrito 0 valor 93. nha de baixo e chamada de linha 1, a seguinte a ela de linha 2 e assim sucessivamente. 0 mimero decimal equivalente ao bina- rio sera construfdo em uma coluna paralela a do mimero bina- rio. Comece escrevendo 1 na linha 1. A entrada da linha n con- *0 mimero negativo e representado em complemento a urn pela nega\iao do mirnero positivo, ou seja, -7 e represemado pela negayao de +7. (N. T.) *Equivalente ao vai-um. (N. T.) 1 1 1II~:1+ 2x 1499~2999 -.--Resultado 1 + 2 x 749 = 1499 "1 +2x374=749 " '--------.- 0 + 2 x 187 = 374 " 1 + 2 x 93 = 187 "'--------- ••.. 1 + 2 x 46 = 93 ---------- __ 0 + 2 x 23 ~6 '------------_ 1 + 2 x 11~3 "1+2x5=11 1+2X2:S O+2X1~ " 1 + 2 x 0 = 1 _.0----- Comece aqui Fig. A.6 Conversao do mlmero binano 101110110 111 para decimal por sucessivas multiplica90es por 2, come9ando embaixo. Cada linha e for- mada dobrando-se a linha de baixo e adicionando-se ao resultado 0 bit correspondente. Por exemplo, 749 e 0 dobro de 374 mais 0 bit 1, presente na mesma linha onde esta 0 valor 749.· se a soma for maior que 1 em vez de ser maior que 9, como e na soma decimal. Por exemplo, a conversao de 6 para complemen- to a dois e feita nos dois seguintes passos: 00000110 lllIlOOl l1lIlOIO (+6) (-6 em complemento a urn) (-6 em complemento a dois) Se acontecer urn carry a partir do bit mais a esquerda, ele deve ser descartado. o quarto sistema, que para mimeros de m bits e conhecido como excesso de 2m - 1, representa 0 mimero armazenando-o como a soma de seu valor absoluto com 2m - 1. Por exemplo, no caso de numeros de 8 bits m = 8, 0 sistema e chamado de exces- so de 128 e qualquer numero e armazenado com seu valor real somado a 128. Portanto, - 3 transforma-se em - 3 + 128 = 125, e portanto e representado pelo numero bimirio de 8 bits que re- presenta 125 (01111101). Os numeros entre -128 e +127 sac mapeados em 0 a 255, de modo que todos sac expressos como urn inteiro positivo de 8 bits. E interessante observar que mime- ros nessa representa<;ao sac identicos a sua representac;ao em complemento a dois, com 0 bit de sinal invertido. A Fig. A.7 mostra exemplos de numeros negativos representados nos qua- tro sistemas discutidos. Tanto a representac;ao em sinal-magnitude quanto a represen- ta<;ao em complemento a dois tern duas representa<;6es para 0 zero: mais zero e menos zero. Essa situac;ao e de todo indeseja- vel. A representac;ao em complemento a dois nao oferece esse problema, pois 0 complemento a dois de mais zero e tambem mais zero. No entanto, a representac;ao em complemento a dois tern uma singularidade diferente dessa. 0 padrao de bits composto peIo bit 1 seguido de Os e seu proprio comp1emento. Em decor- rencia disso, a quantidade de numeros positivos e diferente da quantidade de numeros negativos; existe urn numero negativo que nao tern a sua contrapartida positiva. A razao desses problemas nao e dificil de entender: precisa- mos de urn sistema de codifica<;ao com duas propriedades: 1. Vma unica representac;ao para 0 zero. 2. Exatamente a me sma quantidade de numeros negativos e positivos. o problema e que qualquer conjunto de numeros com a mesma quantidade de valores positivos e negativos tern uma quantida- de par de membros, enquanto In bits permitem a forma<;ao de uma quantidade impar de padr6es de bits diferentes. Portanto, havera sempre urn padrao de bits a mais ou a menos, nao importa qual a representac;ao escolhida. Esse padrao de bits extra pode ser usado como -0, como 0 menor numero negativo da representa- <;ao, ou algo assim, mas, independentemente de como esse pa- draa de bits for usado, ele sempre sera urn estorvo. N -N -N -N -N N em sinal- em complemento em complemento em excesso de em decimal em binario magnitude a1 82 128 1 00000001 10000001 11111110 11111111 01111111 2 00000010 10000010 11111101 11111110 01111110 3 00000011 10000011 11111100 11111101 01111101 4 00000100 10000100 11111011 11111100 01111100 5 00000101 10000101 11111010 11111011 01111011 6 00000110 10000110 11111001 11111010 01111010 7 00000111 10000111 11111000 11111001 01111001 8 00001000 10001000 11110111 11111000 01111000 9 00001001 10001001 11110110 11110111 01110111 10 00001010 10001010 11110101 11110110 01110110 20 00010100 10010100 11101011 11101100 01101100 30 00011110 10011110 11100001 11100010 01100010 40 00101000 10101000 11010111 11011000 01011000 50 00110010 10110010 11001101 11001110 01001110 60 00111100 10111100 11000011 11000100 01000100 70 01000110 11000110 10111001 10111010 00111010 80 01010000 11010000 10101111 10110000 00110000 90 01011010 11011010 10100101 10100110 00100110 100 01100100 11011010 10011011 10011100 00011100 127 01111111 11111111 10000000 10000001 00000001 128 Nao existe Naoexiste Nao existe 10000000 00000000reoresentacao reoresentacao reoresentacao NUMEROS EM PONTO FLUTUANTE Em alguns tipos de calculo, a faixa de variac;ao dos numeros envolvidos e muito grande. Por exemplo, urn problema de astrono- mia pode precisar usar a massa do eletron, que e da ordem de 9 X 10-28 gramas, e a massa do Sol, aproximadamente igual a 2 X 1033 gramas, 0 que equivale a uma faixa de variac;ao que excede a 1060.Esses mimeros podem ser representados como 00000000000000000000ססOO0000000000.0000000000000000000000000009 2000000000000000000000000000000000.0000000000000000000000000000 e todos os calculos envolvendo-os devem ser realizados mantendo-se 34 digitos a esquerda do ponto decimal e 28 digitos a direita do mesmo. Caso adotemos essa metodologia para execuc;ao dos calculos, teremos 62 dfgitos significativos nos resulta- dos. Em urn computador digital binario, podemos projetar urn hardware para precisao multipla que seja capaz de trabalhar com esse nivel de signifidincia. No entanto, se a massa do Sol nao pode ser determinada com mais de cinco digitos significativos exatos, menos ainda 0 podeni com 62. Na verdade, poucas medidas podem (ou precisam) ser feitas com urna precisao de 62 dfgitos significativos. Embora seja perfeitamente possivel manter todos os resultados intermediarios de urn caIculo com 62 df- gitos significativos, e no final descartar 50 ou 60 de1es antes de imprimir os resultados finais, fazendo isso estaremos desperdi- c;ando tanto espac;o de mem6ria quanto tempo de processamento. Em vista disso, precisamos efetivamente e de urn sistema de representac;ao de numeros no qual a faixa de variac;ao dos numeros seja independente do mimero de dfgitos significativos dos mimeros representados. Tal sistema sera discutido neste apendice. Ele e baseado na notac;ao cientffica usada na ffsica, na qufmica e na engenharia. B.t PRINCIPIOS DA REPRESENTA<;AO DE NUMEROS EM PONTO FLUTUANTE Uma maneira de separar a faixa de variac;ao dos numeros de sua precisao e expressando-os na notac;ao cientifica onde f e conhecida como fra~ao ou mantissa e e e urn inteiro positivo ou negativo,conhecido como expoente. A versao computacional dessa notac;ao e chamada de representa~ao em ponto flutuante. Alguns exemplos de numeros expressos nesse formato sac 3,14 = 0,314 X 101 = 3,14 X 10° 0,000001 = 0,1 X 10-5 = 1,0 X 10-6 1941 = 0,1941 X 104 = 1,941 X 103 A faixa de variac;ao dos nlimeros e determinada pela quantidade de dfgitos do expoente e a precisao e determinada pe1a quanti- dade de dfgitos da mantissa. Como ha mais de uma maneira de representar numeros nessa notac;ao, deve-se escolher uma delas como padrao. Para que possamos investigar as propriedades des- se metodo de representac;ao de numeros, considere uma repre- sentac;ao, R, com uma mantissa de tres dfgitos com sinal, na faixa 0,1 :<::; If 1 < Iou zero e urn expoente de dois dfgitos com sinal. Tais numeros tern uma faixa de variac;ao que vai de +0,100 X 10-99 a + 0,999 X 10+99, que se expande por mais ou menos 199 ordens de magnitude, apesar de s6 precisarmos usar cinco dfgitos e dois sinais para armazenar numeros expressos nessa notac;ao. as numeros em ponto flutuante podem ser usados para mo- delar 0 sistema de numeros reais da matematica, apesar de ha- ver algumas diferenc;as importantes. A Fig. B.1 mostra urn es- quema grosseiramente exagerado da reta de numeros reais. Areta real e dividida em sete regioes: 1. Numeros negativos grandes, men ores que -0,999 X 1099• 2. Numerosnegativosentre -0,999 X lO9ge -0,100 X 10-99• 3. Numeros negativos pequenos, com magnitudes rnenores que 0,100 X 10-99• 4. Zero. 5. Numeros positivos pequenos, com magnitudes menores que 0,100 X 10-99• 6. Numeros positivos entre 0,100 X 10-99 e 0,999 X 1099• 7. Numeros positivos grandes, maiores que 0,999 X 1099• A principal diferenc;a entre 0 conjunto de numeros represen- taveis com mantissas de tres dfgitos e expoentes de dois e os numeros reais e que a primeira representac;ao nao pode ser usa- da para expressar qualquer dos numeros nas regioes 1,3,5 ou 7. Se 0 resultado de uma operac;ao aritmetica gerar urn numero nas regioes 1 ou 7 - como, por exemplo, 1060X 1060= 10120_. vai ocorrer urn erro de overflow, e a resposta nao sera correta A razao dessa incorrec;ao e a natureza finita da representac;ao desses numeros. De maneira anaIoga, urn resultado na regiao 3 ou 5 tambem nao pode ser expresso. Essa situac;ao e conhecida 3 5 Underflow Underflow negativo positivo Nu~eros ~ z:ro / Nu~eros negativos~xpressiveis ,~ t~, positivose~pressiveis 1 Overflow negativo ,-----:..A----, , ---~I"""'" . -10'00 I I -10-100 0 7 Overflow positivo ,~ I 10-100 _··················I~ ---- 10'00 como erro de underflow. Esse elTOnao e tao serio quanta 0 erro de overflow, pois 0 e uma aproximar;ao satisfat6ria para mime- ros nas regi6es 3 e 5. Vma conta bancana com 10-102 d6Iares de saldo nao e muito melhor do que uma conta com saldo O. Vma outra diferenr;a importante entre numeros em ponto flu- tuante e numeros reais e a sua densidade. Entre dois numeros reais quaisquer, x e y, existe um outro numero real, nao importa quan- to x esteja pr6ximo de y. Essa propriedade pode ser justificada observando-se que, para quaisquer dois numeros reais distintos, x e y, z = (x + y)/2 e um numero real entre eles. Os nlimeros reais variam de forma continua. Contrastando com os numeros reais, os numeros em ponto flu- tuante nao variam de forma continua, Existem exatamente 179.100 numeros positivos que podem ser expressos no sistema de cinco dfgitos e dois sinais anteriormente descrito, alem de 179.100 nu- meros negativos e 0 0 (que pode ser representado de diversas maneiras), perfazendo um total de 358.201 numeros. Portanto, somente 358.201 numeros, dos infinitos numeros reais entre -10+ 100 e 0,999 X 1099, podem ser representados na notar;ao em ponto flutuante. Esses numeros aparecem representados por pon- tos na Fig. B.l, Eperfeitamente possfvel que 0 resultado de deter- minado caleulo nao seja um desses numeros, especialmente se os operandos estiverem na regiao 3 ou 6. Por exempl0, +0,100 X 103 dividido por 3 nao pode ser expresso exatamente no nosso sis- tema de representar;ao. Se 0 resultado de urn calculo nao puder ser expresso na representar;ao de numeros usada, 0 6bvio a ser feito e utilizar 0 numero mais pr6ximo que possa ser expresso. Esse pro- cesso e conhecido como arredondamento. o espar;o entre dois numeros adjacentes expressos na repre- sentar;ao nao e con stante nas regi6es 2 ou 6. A distancia entre +0,998 X 1099 e +0,999 X 1099 e muito maior que a distancia entre +0,998 X 10° e +0,999 X 10°. No entanto, quando a se- parar;ao entre um numero e seu sucessor for expressa como um percentual desse numero, nao vai haver variar;ao sistematica atra- yes das regi6es 2 ou 6. Em outras palavras, 0 erro relativo in- troduzido pelo arredondamento e aproximadamente 0 mesmo para numeros grandes e para numeros pequenos. Apesar de a discussao anterior ter sido colocada em termos de uma representar;ao que usa tres dfgitos para a mantissa e dois para 0 expoente, as conclus6es a que chegamos san vaIidas tam- Mm para outros sistemas de representar;ao. A mudanr;a do nu- mero de dfgitos reservados a mantissa ou ao expoente simples- mente desloca as fronteiras das regi6es 2 e 6 e muda a quantida- de de pontos que podem ser expressos em cada uma delas. 0 aumento da quantidade de dfgitos reservados a mantissa aumenta a densidade dos pontos e, portanto, melhora a precisao nas apro- ximar;6es. Ja 0 aurnento da quantidade de dfgitos reservados ao expoente aumenta 0 tamanho das regi6es 2 e 6 e encolhe 0 tama- 000 das regi6es 1, 3, 5 e 7. A Fig. B.2 rnostra as fronteiras aproxi- madas da regiao 6 para numeros decimais expressos em ponto flutuante para diversos tamanhos da mantissa e do expoente. Os computadores utilizam uma variante dessa representar;ao para expressar nlimeros em ponto flutuante. Por quest6es de eficiencia, a exponenciar;ao e feita na base 2, 4, 8 ou 16 em vez de se-l0 na base 10, e conseqiientemente a mantissa e composta por urn conjunto de dfgitos binarios, da base 4, octais ou hexadecimais, respectivamen- Dfgitos na mantissa Dfgitos no expoente Limite inferior Limite superior 3 1 10-12 109 3 2 10-102 I 1099 3 3 10-1002 10999 3 4 10-10002 109999 4 1 10-13 109 I 10-103 , 10994 2 4 3 10-1003 10999 4 4 10-10003 109999 5 1 10-14 109 5 2 10-104 1099 5 3 10-1004 10999 5 4 10-10004 109999 10 3 10-1009 10999 20 3 I 10-1019 10999 Fig. B.2 Limites superiores e inferiores apro- ximados para numeros decimais (nao-norma- lizados) expressos em ponto flutuante. te. Se 0 bit mais a esquerda da mantissa for igual a zero, todos os demais bits podem ser deslocados uma posi<;aopara a esquerda, sen- do 0 expoente decrementado de uma unidade, sem que 0 valor do numero sofra qualquer modifica<;ao. Diz-se que uma mantissa cujo bit mais a esquerda e diferente de zero esta normalizada. Na representa<;ao computacional de mimeros em ponto flu- tuante, a representa<;ao normalizada e, em geral, melhor que a nao-normalizada, pois so existe uma forma de representar urn numero normalizado, enquanto na forma nao-normalizada urn mesmo numero pode ser representado de diversas maneiras. A Fig. B.3 mostra vanos exemplos de nlimeros em ponto flutuante normalizados, em duas bases de exponencia<;ao. Nesses exem- plos, a mantissa e de 16 bits (incluindo-se 0 bit de sinal) e 0 ex- poente e de 7 bits, representado em excesso de 64 unidades. 0 ponto da base fica a esquerda do bit mais a esquerda da mantissa - ou seja, a direita do expoente. B.2 0 PADRAO IEEE 754 PARA NUMEROS EM PONTO FLUTUANTE Ate meados dos anos 1980, cada fabricante de computador ti- nha seu proprio formato para representar nlimeros em ponto flu- tuante. Desnecessario e dizer que todos eram diferentes. Pior ain- da, algumas dessas representa<;oes tratavam erradamente as suti- lezas das opera<;oesaritmeticas realizadas em ponto flutuante, que nao sac obvias para a maioria dos projetistas de hardware. Para dar umjeito nessa situa<;ao inc6moda, 0 IEEE criou, no final dos anos 1970, urn cornite para padronizar a aritmeticae a representa<;ao de mimeros em ponto flutuante. 0 objetivo era nao s6 permitir que computadores diferentes pudessem trocar dados em ponto flutuante, mas tambem fornecer aos projetistas de hard- ware urn modelo que sabidamente funcionasse de maneira cor- reta. 0 trabalho desse cornite resultou no Padrao 754 (IEEE. 1985). A partir dai, a maioria dos processadores (incluindo os da Intel, os da linha SPARe e os JVM estudados neste livro) tern instru<;oes em ponto flutuante aderentes ao padrao IEEE para ponto flutuante. Ao contrano de vanos outros padroes, que aca- barn nao agradando a ninguem por tentar acomodar icteias e opi- nioes de vanas pessoas, esse padrao e quase universalmente acei- to, em parte por refletir as ideias de uma unica pessoa, 0 profes- sor de matematica William Kahan, da Universidade de Berkeley. o restante desta se<;aodescreve 0 padrao IEEE 754. o padrao IEEE 754 define tres formatos: a precisao simples (32 bits), a precisao dupla (64 bits) e a precisao estendida (80 bits). Este ultimo formato foi definido com 0 objetivo de mini- mizar os erros de arredondamento. Ele e usado principalmente dentro das unidades aritmeticas que operam com numeros em ponto flutuante, de maneira que nao vamos mais discuti-Io. Tanto o formato em precisao simples quanta 0 formato em precisao dupla usam a base 2 para a mantissa e a nota<;ao em excesso para o expoente. A Fig. B.4 mostra esses formatos. Ambos come<;am com urn bit que representa 0 sinal do nu- mero, com 0 significando 0 sinal positivo e 1 0 sinal negativo. Em seguida vem 0 expoente que usa a nota<;ao em excesso de 127 para precisao simples e em excesso de 1023 para precisao dupla. Os expoentes minima (0) e maximo (255 e 2047) nao sao usados na representa<;ao de numeros normalizados; eles tern usa especial, que sera descrito a seguir. Finalmente, temos as mantissas, com 23 e 52 bits, respectivamente. Uma mantissa normalizada come<;a com 0 ponto binano se- guido por urn bit 1 e pelo resto da mantissa. Seguindo a pnitica \ " ... .-.. .:;. . , -,-'C~. Nao-normalizado: 0 1 01 01 00' 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 = 220 (1 X 2-12+ 1 X 2-13+ 1 X 2-15 '-v--' ' , •. . Sinal Expoenteemexcesso Mantissaiguala 1 x 2-12 + 1 X 2-13 + 1 X 2-16),-; 432 + d~64 e iguala +1 x 2-15+ 1 X 2-15---- -- •. 84,- 64 = 20 Paranorrnalizar,desloquea mantissaparaa esquerda11bitse subtraia11do expoente. 01001001110110000000000 '-v--' '----,---J . , • Sinal Expoenteemexcesso Mantissaiguala 1 x 2-1 + 1 X 2-2 + de64e iguala +1 x 2-4 + 1 X 2-5 73-64=9 o = 29 (1 X 2-1+ 1 X 2-2+ 1 X 2-4 + 1 X 2-5)=432 'v O~~b ~}dH) Nao-normalizaifo: 16-1 A 0000 16-2 A 0000 16-3 A 0001 16-4 A 1011 = 165(1 x 16-3+Bx 16-4)=432o 1000101 '-v--' '--_~ Sinal Expoenteemexcesso Mantissaiguala 1 x 16-3 + B X 16-4 + de 64e iguala 69-64=5 o 1000011 0001 1011 0000 0000 =163(1x16-'+Bx16-2)=432 '-----.r-" \ I. \~ ~ Sinal Expoenteemexcesso + de 64 e iguala 67-64=3 Bits 1 8 23) ,_1 Mantissa Sinal Expoente Bits 1 11 ~Expoente Sinal iniciada no projeto do PDP-11, os autores do padrao IEEE ima- ginaram que 0 primeiro bit 1 de uma mantissa n800precisa ser armazenado, pois pode-se admitir que ele esteja sempre presen- te. Conseqiientemente, 0 padr800define a mantissa de uma ma- neira urn pouco diferente da usual. Ela e composta por urn bit implfcito, de valor 1, seguido de urn ponto binario, tambem im- plfcito, e de 23 ou 52 bits de valores arbitrarios. Se todos os 23 ou 52 bits da mantissa forem iguais a 0, a mantissa tern seu valor numerico igual a 1,0; se todos eles forem iguais a 1, a mantissa e numericamente igual a 2,0. Para evitar confusao com a mantissa convencional, a combina~ao do 1 implfcito, do ponto binario implfcito e dos 23 ou 52 bits explfcitos e chamada de significan- do, em vez de mantissa. Todos os numeros normalizados tern urn significando, s, na faixa 1 :s s < 2. As caracteristicas numericas dos numeros em ponto flutuante expressos no formato IEEE 754 sao mostradas na Fig. B.5. Consi- dere como exemplos os numeros 0,5, 1 e 1,5 no formato normali- zado em precisao simples. Suas representa\;5es em hexadecimal s8oo, respectivamente, 3FOOOOOO,3F800000 e 3FCOOOOO. Urn dos problemas tradicionais dos numeros em ponto flutu- ante e 0 tratamento dos erros de underflow e overflow e dos n6meros nao-inicializados. a padrao IEEE trata esses problemas explicitamente, de maneira parecida com 0 tratamento que eles recebiam da arquitetura CDC 6600. Alem dos numeros norma- lizados,o padrao IEEE 754 tern outros quatro tipos numericos, descritos a seguir e ilustrados na Fig. B.6. Quando 0 resultado de uma opera~ao aritmetica sobre nume- ros em ponto flutuante tiver uma magnitude menor do que 0 menor numero normalizado representave1 nesse sistema, algo deve ser feito para solucionar esse problema. Antes do padr800 IEEE, a maioria dos hardwares adotava uma de duas metodolo- gias: simplesmente fazer com que a opera~ao assuma 0 valor zero e continuar 0 processamento, ou gerar urn trap notificando urn erro de underflow. Nenhum desses dois metodos e satisfatorio, o que levou 0 padriio IEEE a introduzir os numeros nao-nor- malizados. Esses numeros tern expoente igual a 0 e mantissa de 23 ou 52 bits, que se seguem aos bits do expoente. a bit 1, im- plfcito it esquerda do ponto bimirio, agora vale O. as mimeros nao-normalizados podem ser diferenciados dos normalizados, observando-se que esses ultimos nunca tern expoente igual a O. o menor numero normalizado em precisao simples tern 1 para expoente e 0 para mantissa, e representa 0 valor 1,0 X 2-126.0 Item Precisao simples Precisao dupla Bits no campo do sinal 1 1 Bits no campo do expoente 8 11 Bits no campo da mantissa 23 52 Numero total de bits 32 64 Sistema de representagao do expoente Excesso de 127 Excesso de 1023 Faixa de variagao do expoente -126 a +127 -1022 a +1023 Menor numero normalizado 2-126 2-1022 Maior numero normalizado aproxlmadamente 2'28 aproximadamente 2'024 Faixa de variagao em decimal aproximadamente de 10-38 a 1038 aproximadamente de 10-308 a 10308 Menor numero nao-normalizado aproxlmadamente 10-45 aproximadamente 10-324 Normalizado O<Exp<Max Nao-normalizado 0 Zero 0 0 Infinito EI 111...1 Not a number ± 1 1 1 ... 1 Bit de sinal maior numero nao-normalizado tern 0 para expoente e mantissa com todos os 23 bits iguais a I, e representa aproximadamente 0,9999999 X 2-127, valor esse quase identico ao representado pelo menor numero normalizado. No entanto, devemos observar que o valor nao-normalizado tern somente 23 bits significativos, enquanto os numeros normalizados tern 24. Na medida em que opera~oes aritmeticas posteriores reduzam o valor desse resultado, 0 expoente permanece iguaI a 0, mas os prirneiros bits da mantissa VaGassurnindo 0 valor 0, reduzindo tanto 0 valor do numero quanta a quantidade de bits significati- vos da mantissa desse numero. 0 menor valor nao-normalizado diferente de zero e composto por urn bit 1 na posic;ao mais a di- reita da mantissa, com todos os demais iguais a O. 0 expoente desse numero representa 2-127 e a mantissa representa 2-23 - portanto, 0 valor do numero e 2-150• Esse esquema trata 0 erro de underflow de maneira bastante conveniente, atribuindo urn va- lor ao resultado em vez de simples mente iguala-Io a 0 quando esse resultado nao puder ser expresso como urn numero norma- lizado. Nesse esquema existem duas representac;oes para 0 zero, uma positiva e outra negativa, diferenciadas pelo bit de sinal do nu- mero. Ambos tern expoente igual a 0 e mantissa tambem igual a O. Tambem nesse caso, 0 bit implfcito, situado a esquerda do ponto binario, e iguaI a 0 e nao a 1. o erro do overflow nao tern urn tratamento tao favonivel. Nao sobrou qualquer combinac;ao de bits que possa ser usada no tra- tamento desse tipo de erro. Por esse motivo, utiliza-se uma re- presentac;ao para valores infinitos, composta de urn expoente com todos os seus bits iguais a I (que nao pode ocorrer em numeros normalizados) e uma mantissa com todos os seus bits iguais a O. Esse numeropode ser usado como urn operando e se comporta com as regras matematicas para tratamento do infmito. Por exem- plo, infinito mais qualquer outro valor e igual a infinito, e qual- quer numero dividido por infinito e igual a zero. Alem disso, qualquer numero finito dividido por zero resulta em infinito. o que dizer de infinito dividido por infinito? 0 resultado e indefinido. Para tratar esse caso existe urn outro formate especi- al chamado NaN (Not a Number). Esse valor tambem pode ser usado como operando em operac;6es aritmeticas. 1. Converta os seguintes numeros no formato IEEE 754, usando a precisiio simples. Fome9a os resultados com oito digitos hexade- cimais. a. 9 b. 5/32 c. -5/32 d. 6,125 2. Converta os seguintes numeros expressos no formato IEEE 754. precisao simples, da base hexadecimal para a decimal. a. 42E4800~ex b. 3F880000hex c. 00800000hex d. C7FOOooOhe, 3. 0 formato dos numeros em ponto flutuante de precisao simples na arquitetura IBM 370 tern urn expoente de 7 bits em excesso de 64 unidades, uma mantissa de 24 bits e urn bit para 0 sinal do nume- roocom 0 pontobinfuio a esquerda do fim da mantissa. A base para a exponencia9ao e a base 16. A ordem dos campos e bit de sinal. expoente. mantissa. Represente 0 numero 7/64 como urn numero normalizado expresso nesse sistema. Sua resposta deve ser dada em hexadecimal. 4. Os numeros bimirios em ponto flutuante mostrados a seguir sac compostos por urn bit de sinal, urn expoente em excesso a 64 cuja base de exponencia9ao e a base 2, e uma mantissa de 16bits. Pede- se normaliza-los. a. 0 1000000 00010 10100000001 b. 00111111 0000001111111111 c. 010000111000000000000000 5. Para somardois numeros em pontoflutuante,e precise em primeiro lugar ajustar seus expoentes (deslocando a mantissa) igualando- os. Depois disso e possivel somar as mantissas e se necessaria. normalizar 0 resultado. Some os numeros 3EEOOOOOhe,e 3D8000~ex' expressos no formato IEEE 754, precisao simples. o resultado normalizado deve ser fomecido em hexadecimal. 6. Uma empresa fabricantede processadores decidiu colocar no mer- cado uma maquina com numeros em ponto flutuante de 16bits. A primeira versao dessa maquina tinha os numeros em ponto flutu- ante representados com urn bit de sinal, expoente de 7 bits em excesso a 64, e mantissa de 8 bits. A segunda versao tinha nume- ros em ponto flutuante representados com expoente de 5 bits em excesso a 16 e mantissa de 10 bits. Ambos usavam a base 2 como base para a exponencia9ao. Qual 0 maior mimeropositivo norma- lizado representavel em cada uma dessas maquinas? Qual 0 me- nor? Quantos digitos decimais de precisao esses numeros tern" Voce compraria alguma dessas maquinas? 7. Existe uma situa9aona qual uma opera9ao sobre dois numeros em ponto flutuante pode causar uma redu9ao drastica na quantidade de digitos significativos do resultado. Que situa9ao e essa? 8. Alguns chips para processamento em ponto flutuante tern incor- porada a fun9aoraiz quadrada. Urn algoritmo iterativo (por exem-
Compartilhar