




















































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
- - -
Tipologia: Notas de estudo
1 / 92
Esta página não é visível na pré-visualização
Não perca as partes importantes!





















































































D EPARTAMENTO DE E NGENHARIA DE C OMPUTAÇÃO E A UTOMAÇÃO I NDUSTRIAL FACULDADE DE E NGENHARIA E LÉTRICA E DE C OMPUTAÇÃO U NIVERSIDADE E STADUAL DE C AMPINAS
http://www.dca.fee.unicamp.br/courses/EA960/
1999
Introdução à organização de computadores: Evolução de sistemas computacionais.
Classificação de arquiteturas: Estruturas de computadores. Máquinas de von Neumann. Medidas de avaliação de desempenho. Arquiteturas de alto desempenho.
Sistemas de memória hierárquica: Conceito de hierarquia de memória. Bandwidth , esquemas de endereçamento, memória virtual, paginação. Memória cache.
Sub-sistemas de entrada e saída: características, canais, processadores de E/S.
Princípios de pipelining: pipelines de instrução, pipelines aritméticos, projetos de sistemas pipeli- ne.
Processadores vetoriais: características, exemplos.
Processadores matriciais: características, malhas de comunicação, algoritmos. Processadores as- sociativos.
Multiprocessadores: sistemas fortemente acoplados e fracamente acoplados, exemplos; influências no sistema operacional e em linguagens de programação; algoritmos.
Arquiteturas alternativas: Arquitetura VLSI e Computadores dataflow.
O objetivo desse capítulo é apresentar os princípios que regem a organização de computadores. Para tanto, apresenta-se inicialmente alguns aspectos relativos à evolução de sistemas computacionais que tiveram impacto na organização atual de computadores. A motivação para criar máquinas de computação sempre foi, essencialmente, melhorar a veloci- dade de cálculos, uma vez que a velocidade de um “computador humano” é limitada. Adicionalmen- te, buscava-se também reduzir fontes de erros, tais como distrações, descuidos e cansaço.
A pré-história das máquinas computacionais foi marcada pela criação das máquinas de calcu- lar, tais como a Pascalene (Pascal, 1642–43), o Stepped Reckoner (Leibniz, 1674) e o Engenho a diferenças (Babbage, 1822–1842) [4, 9]. O marco tecnológico que precedeu esta era foi o desen- volvimento da engrenagem para cálculos com mecanismo para detecção de carry (W. Schickard,
Entrada/Operando
Somador/Acumulador
Figura 1.1: Organização das máquinas de calcular.
A Pascalene era capaz de realizar adição em cinco dígitos, com engrenagens em dois conjuntos de seis elementos e mecanismo de carry diferenciado daquele de Schickard — aparentemente Blai-
I. L. M. Ricarte EA960: Organização de Computadores
se Pascal (1623–1662) não conhecia esse outro mecanismo quando propôs sua máquina. Diversas cópias da máquina foram feitas, algumas chegando a operar com oito dígitos [2]. O Stepped Reckoner , de Gottfried Wilhelm von Leibniz (1646–1716), apresentava uma engre- nagem cilíndrica em passos, usando a Pascalene como componente. Integrava ainda mecanismos para realizar multiplicação, com operandos de cinco e doze dígitos e resultados de até 16 dígitos. A operação requeria a intervenção do usuário para cada dígito do multiplicador, assim como para a operação do mecanismo de carry , o qual nem sempre apresentava resultados confiáveis [2]. O Difference Engine foi concebido inicialmente por J. H. Mueller em 1786 como uma calcula- dora de propósito geral aplicável a qualquer função que pudesse ser aproximada por um polinômio dado um intervalo de interesse. Posteriormente, Charles Babbage (1792–1871), em Londres, reinven- tou uma máquina baseada no mesmo princípio. A máquina realizava uma única operação aritmética (adição) e implementava um único algoritmo (método das diferenças finitas por polinômios), inte- grando ainda um dispositivo para impressão. A motivação de Babbage em desenvolver o engenho a diferenças foi um projeto do governo francês iniciado em 1794, coordenado pelo Barão Gaspard de Prony para calcular manualmente di- versas tabelas matemáticas. Este trabalho, que incluiu o cálculo de tabela de logaritmos para números naturais entre 1 e 200.000 com 19 casas decimais e o cálculo de tabelas trigonométricas, consumiu cerca de dez anos empregando entre 70 e 100 pessoas, tendo gerado 17 volumes manuscritos de grande porte. Um protótipo de seis dígitos operando com diferenças de segunda ordem (permitindo a tabulação de polinômios quadráticos) foi apresentado em 1832, mas o projeto da máquina completa previa a operação com diferenças de sexta ordem com números de cerca de 20 dígitos. Apesar de consumir cerca de 17000 libras do governo britânico no projeto, Babbage nunca con- cluiu efetivamente o engenho de diferenças, concentrando esforços em outro projeto (o engenho analítico ). O projeto foi oficialmente cancelado pelo governo britânico em 1842. O engenho de dife- renças foi efetivamente construído por outros em versões mais modestas (Scheutz, 1837–1853). Um protótipo operacional do engenho de diferenças foi construído em 1991 (bicentenário do nascimento de Babbage), no Museu da Ciência em Kensington (Inglaterra), usando tecnologia adequada à época de Babbage [2].
Os computadores mecânicos utilizam a mesma tecnologia das máquinas de calcular (engrena- gens). Os marcos tecnológicos que precederam esta era da computação foram a introdução de se- quência de cartões perfurados para controle de tear (J.-M. Jacquard, 1801) e a concepção da álgebra booleana (G. Boole, 1854). O Engenho Analítico (Inglaterra, 1834–1871) de Charles Babbage foi o que se pode denominar de o primeiro computador (ou algo mais próximo de uma calculadora programável), não tendo sido efetivamente construído pela ambição excessiva do projeto e falta de interesse de possíveis clientes. Suas características básicas (Figura 1.2):
capaz de computar qualquer operação matemática
unidade para quatro operações básicas (Mill) , com dois acumuladores principais e alguns au- xiliares;
c 1999 FEEC/UNICAMP 2
I. L. M. Ricarte EA960: Organização de Computadores
6 segundos, ou um logaritmo ou função trigonométrica em pouco mais de um minuto. As operações eram lidas de uma fitas perfurada (cerca de 7,5cm de largura) comum; o conceito de laço para ope- rações repetitivas era suportando, bastando para isso colar os finais da fita perfurada. Dados eram lidos de fitas, cartões ou registradores com constantes. O Mark I era um equivalente eletromecânico do Engenho Analítico, tendo também se tornado conhecido como o Automatic Sequence Controlled Calculator (IBM ASCC). O orçamento, inicialmente previsto para cerca de US$15K, ultrapassou US$100K, envolvendo grande esforço da equipe de engenharia da IBM. Posteriormente, Aiken cau- sou fúria a Watson (presidente da IBM) querendo assumir só o mérito no desenvolvimento de Mark I, o que motivou Watson a desenvolver máquinas que suplantassem estes esforços iniciais. O Mark III (1951) foi marcado pelo uso de memórias a tambor, um para instruções (capacidade para cerca de 4000 instruções), outros para dados (350 palavras de 16 bits no tambor principal, cerca de 4000 palavras nos tambores secundários) [2].
Marcos tecnológicos que precederam a era dos computadores eletrônicos foram o desenvolvimen- to da válvula triodo (L. de Forest, 1906) como uma extensão da válvula diodo (J. Fleming, 1904); e o desenvolvimento de circuitos binários baseados em álgebra booleana (G. Stibitz, 1937). John Vincent Atanasoff e Clifford Berry, de Iowa State University , desenvolveram uma calcula- dora eletrônica dedicada para a resolução de sistemas de equações lineares simultâneas, denominado ABC (Atanasoff-Berry Computer). A máquina operava a 60 Hz. O uso de capacitores como disposi- tivos de memória nessa máquina, 60 palavras de 50 bits requerendo refreshing , antecipou a utilização de memórias dinâmicas. A memória secundária usava cartões perfurados, movidos pelo usuário. O processo de perfurar os cartões, por calor, apresentava uma alta taxa de erros, nunca inferior a 0,001% [2]. Atualmente (desde 1973), Atanasoff é reconhecido como o criador do computador mo- derno. Alan Turing, na Inglaterra, fez a especificação de computador mecânico que se tornou operacional em 1940. Um outro projeto, Colossus , foi desenvolvido por T. Flowers e M.H.A. Newman em 1943 com participação de Turing. Colossus foi o primeiro computador completamente eletrônico, tendo sido classificado pelos militares britânicos como segredo militar. Por este motivo, detalhes e características deste projeto permaneceram inacessíveis por cerca de 30 anos, sendo liberados apenas recentemente. Maior impacto teve o Projeto ENIAC (Electronic Numerator, Integrator, Analyzer, and Com- puter) , desenvolvido na Moore School of Electrical Engineering (University of Pennsylvania) entre 1943 e 1946. Esse computador, desenvolvido por John W. Mauchly (1907-80) e J. Presper Eckert (1919- ) e equipe, pesava cerca de 30 toneladas e apresentava um consumo de 140 KW. Utilizava aritmética decimal, com memória de 20 acumuladores de 10 dígitos, cada dígito usando 10 bits para sua representação, armazenados em flip-flops (duas válvulas por bit). A programação era manual, através de 6000 chaves e plugs. A velocidade de operação era cerca de 1000 vezes mais rápida que a do Mark I. Havia unidades separadas para a execução de multiplicações (cerca de 3 ms) e para divisão e raiz quadrada. 104 registros podiam ser usados para constantes de 12 dígitos. Dados po- diam ser entrados através de cartões perfurados, que também eram utilizados para saída. A máquina operava a 100 KHz. A patente para esse projeto só foi outorgada em 1964, mas em 1973 foi revogada, pois J. Mauchly
c 1999 FEEC/UNICAMP 4
I. L. M. Ricarte EA960: Organização de Computadores
reconhecidamente teve contato com o trabalho de Atanasoff, durante uma visita a Iowa. J.P. Eckert era o engenheiro eletrônico que realizava as concepções de J. Mauchly. No projeto ENIAC, realizado através de um convênio militar com o US Army’s Ballistics Research Lab, ele teve papel fundamental em tornar operacional o conjunto de 18000 válvulas, 70000 resistores, 10000 capacitores, 6000 chaves e 1500 relés. Em Fevereiro de 1946, o ENIAC foi revelado para o público, e no verão daquele mesmo ano foi oferecido o curso Theory and Techniques for Design of Electronic Computers , com aulas por Eckert, Mauchly, Stibitz, von Neumann, e Aiken, entre outros. Vários novos projetos surgiram a partir desse curso.
Os computadores eletrônicos, apesar de representar grande avanço em relação a seus similares eletromecânicos, apresentavam duas grandes limitações: baixa capacidade de memória e longo tempo de programação. A programação do ENIAC, por exemplo, exigia dias de trabalho, uma vez que várias modificações eram necessárias no painel de controle. O Mark I era fácil de “reprogramar” (troca de fita), porém velocidade de leitura de instruções de unidades mecânicas não era adequada à velocidade de processamento dos computadores eletrônicos. O marco para quebrar essa barreira foi a concepção do conceito de programa armazenado, asso- ciada ao projeto EDVAC (Eletronic Discrete Variable Automatic Computer) , um sucessor do ENIAC com “ampla” capacidade de memória e que utilizava aritmética binária (Figura 1.3). A memória do EDVAC era composta por 1K palavras na memória principal (linha de atraso em mercúrio, tecnolo- gia usada em outro projeto, o EDSAC) e 20K palavras de memória secundária (fio magnético). A tecnologia de armazenagem em linha de atraso em mercúrio, embora ampliasse a capacidade de ar- mazenamento em relação aos flip-flops, era lenta, uma vez que convertia os sinais em som, que eram propagados pelo fluido. Entretanto, a sua velocidade de acesso era adequada aos processadores de então. A construção do EDVAC foi concluída em 1952, com cerca de 4000 válvulas, 10000 diodos a cristal, e 1024 palavras de 44 bits em memória ultrasônica; a sua velocidade de relógio era de 1 MHz [2].
Unidade de Controle
Unidade Aritmética
Memória Entrada (^) (Programas e dados) Saída
instruções dados
Figura 1.3: Organização do EDVAC.
Atribui-se normalmente a autoria do conceito de programa armazenado a von Neumann, exclu- sivamente. O motivo é que von Neumann escreveu um relatório de 101 páginas sobre o projeto EDVAC, A First Draft of a Report on the EDVAC , em junho de 1945, onde o conceito é formalmente
c 1999 FEEC/UNICAMP 5
I. L. M. Ricarte EA960: Organização de Computadores
prático. Operava com uma taxa de relógio de 500 KHz. A entrada e saída de dados ocorria através de fita de papel. O primeiro programa armazenado foi imprimir quadrados dos primeiros números inteiros. O BINAC foi projetado como um primeiro passo em direção aos computadores de bordo. Era um sistema com processadores duais (redundantes), com 700 válvulas cada e memória de 512 palavras de 31 bits. Já o UNIVAC tinha uma memória de 1000 palavras de 12 dígitos, com uma memória se- cundária de fitas magnéticas com capacidade de 128 caracteres por polegada. A primeira unidade do UNIVAC foi desenvolvida sob encomenda do Census Bureau norte-americano. O UNIVAC dominou o mercado de computadores na primeira metade dos anos 1950 [2]. O Whirlwind foi desenvolvido por Forrester e equipe para o US Navy’s Office of Research and Inventions. A origem do projeto estava baseada em um simulador de vôo universal, com velocidade de operação adequada a aplicações de tempo real (500K adições ou 50K multiplicações por segun- do). O projeto foi iniciado em setembro de 1943, tornando-se o computador operacional em 1951. Introduziu a tecnologia de memória a núcleos de ferrite (tempo de acesso de 9 s), em 1953, em substituição à memória CRT original de 2048 palavras de 16 bits. O custo total do projeto superou vários milhões de dólares. O IBM 701 estava disponível com memórias CRT de 2048 ou 4096 palavras de 36 bits. O IBM 702 Electronic Data Processing Machine estava voltado para aplicações comerciais (ex- Tape Processing Machine ), tendo sido anunciado em setembro de 1953 e entregue no início de 1955.
Ao mesmo tempo em que a tecnologia computacional começava a caminhar, outros desenvol- vimentos tecnológicos que iriam afetar o futuro da computação também surgiam. Alguns marcos tecnológicos dignos de nota incluem a invenção do transistor, desenvolvido nos Bell Labs (J. Bar- deen, W. Brattain e W. Shockley, 1947), com produção pela Texas Instruments a partir de 1954; e posteriormente o desenvolvimento de circuitos integrados (J. Bilby, Texas Instruments, e R. Noyce, Fairchild Semiconductors, 1958). Os primeiros computadores transistorizados incluem:
protótipos: TX-0 (MIT, 1956) e TX-2;
DEC PDP-1 (1960), primeiro computador comercial com teclado e monitor de vídeo;
IBM 7090 e 7094, versões transistorizadas do computador IBM709.
A série IBM7000 marcou a entrada da IBM no mercado de computadores transistorizados. Uma das características inovadoras nesses produtos era a utilização de processadores de entrada e saída (I/O Processors). As características genéricas destes primeiros computadores transistorizados incluiam memórias a núcleo de ferrite e tambores magnéticos, linguagens de programação de alto nível e o conceito de sistemas de computadores. O desenvolvimento de várias dessas máquinas modernas incluiam contribuições à organização do sistema que hoje estão presentes em muitos computadores. Memória virtual foi introduzida no siste- ma Atlas (Inglaterra, 1962); o conceito de uma família de sistemas com periféricos compatíveis foi introduzido com o IBM System360 (1964); e o PDP-8 (1965) foi o minicomputador qu introduziu o
c 1999 FEEC/UNICAMP 7
I. L. M. Ricarte EA960: Organização de Computadores
barramento único compartilhado, além de utilizar módulos transistorizados. Em direção ao processa- mento de alto desempenho, o CDC6600 (1964) continha diversas unidades funcionais e IOPs; o CDC STAR-100 (String Array Computer) fazia uso de pipelines e o ILLIAC-IV era um multiprocessador matricial com 64 unidades de processamento. Os anos seguintes de desenvolvimento de sistemas computacionais foram marcados principal- mente pela utilização de componentes com grau cada vez maior de integração, o que determinou uma das principais questões em relação a arquiteturas de computadores: dentre as funções alocadas a um sistema computacional, o que é alocado ao hardware e o que é alocado ao software? Assim, a década de 1970 foi marcada pela utilização de circuitos integrados em larga escala, como exemplificado pelo Fairchild 3800 (ALU de 8 bits, 1967); pelos microprocessadores Intel 4004 (T. Hoff, S. Mazor e F. Fagin, 1971), 8008 (1972) e 8080 (1973); pelo minicomputador DEC PDP 11/45 (1972), com extenso uso de circuitos em chips ; pelos dispositivos de memória dinâmica de 1 Kbit (Intel 1103, 1971) e 4 Kbit (1974); pelo DEC VAX 11/780 (1978), um minicomputador de 32 bits; e pelos microprocessadores Intel 8086 (1978), de 16 bits, e Motorola 68000 (1979), de 16/32 bits. Algumas funções específicas, como unidades de gerência de memória (MMU) e co- processadores aritméticos, passaram também a ser implementadas em hardware. Na computação de alto desempenho, algumas contribuições dessa década incluem o computador 801 (J. Cocke; IBM, 1975), com arquitetura RISC, e o Cray-1 (S. Cray, 1976), com arquitetura vetorial. Na década de 1980 houve principalmente a continuidade nesse processo iniciado na década an- terior, com uma exploração ainda maior da capacidade de integração de circuitos. Surgiram disposi- tivos de memória dinâmica com maior capacidade: 64 Kbits (1981), 256 Kbit (NEC, 1984), 1 Mbit (IBM, 1984), 4 Mbit e 16 Mbit (1987); e microprocessadores mais poderosos: MC68020 (Motorola, 1984), 80286 (Intel, 1984), 80386 (Intel, 1985), MC68030 (Motorola, 1987), 80486 (Intel, 1989). Os sistemas de alto desempenho passaram a explorar de forma mais intensa o paralelismo, como os Cray X-MP (1982) e Cray-2 (1985); o computador Connection Machine CM-2 (1985), da empresa Thinking Machines; os microprocessadores Transputers T-414 (1985) e T-800, da empresa Inmos. Houve também um investimento em arquiteturas RISC, como marcado pelo processador Motorola 88000 (1988). Os anos 1990 foram marcados pela disponibilização de dispositivos com altíssimo grau de in- tegração, com microprocessadores com grande poder de processamento, tais como iPSC/860 (Intel, 1990), 68040 (Motorola, 1990), Alpha RISC/64 bits (DEC, 1992), Pentium (Intel, 1993). Com- putadores de alto desempenho surgiram, tais como o Cray Y-MP C90 (1991, 16 processadores, 16 GFlops) e o Thinking Machines CM-5; entretanto, o alto custo de tais sistemas podem ter decretado seu fim. Atualmente, multiprocessamento é utilizado em escalas modestas em estações de trabalho e servidores. O desenvolvimento de processadores ópticos ficou como uma promessa não cumprida nessa década, após o desenvolvimento de um protótipo no Bell Labs (1990).
c 1999 FEEC/UNICAMP 8
I. L. M. Ricarte EA960: Organização de Computadores
São características das máquinas von Neumann a utilização do conceito de programa armazena- do, a execução seqüencial de instruções e a existência de um caminho único entre memória e unidade de controle (Figura 2.1).
Sistema de E/S
Memória principal
CPU Registradores
PC
Unidade de controle
ALU
dados/ endereço instruções
Figura 2.1: Arquitetura de máquinas von Neumann.
Durante sua operação, a execução de um programa é uma seqüência de ciclos de máquina von Neumann , compostos por:
As máquinas que não se enquadram na definição de máquinas von Neumann são denominadas máquinas não-von Neumann. Essa categoria é ampla, incluindo sistemas computacionais tais como:
Máquinas paralelas: várias unidades de processamento executando programas de forma cooperati- va, com controle centralizado ou não;
Máquinas de fluxo de dados: não executam instruções de um programa, mas realizam operações de acordo com a disponibilidade dos dados envolvidos;
c 1999 FEEC/UNICAMP 10
I. L. M. Ricarte EA960: Organização de Computadores
Sistema de E/S
endereçoinstrução
Memória principal
CPU Registradores
PC
Unidade de controle
ALU
instrução endereçodados
dados
Figura 2.2: Máquina Harvard
Redes neurais artificiais: também não executam instruções de um programa, trabalhando com um modelo onde resultados são gerados a partir de respostas a estímulos de entrada; e
Processadores sistólicos (VLSI): processamento ocorre pela passagem de dados por arranjo de cé- lulas de processamento executando operações básicas, organizadas de forma a gerar o resultado desejado.
Como há um grande número de alternativas para a organização de um computador, é preciso ter mecanismos que permitam realizar a avaliação de cada arquitetura. Algumas medidas básicas de avaliação são necessárias para tanto. O desempenho está usualmente associado à velocidade de execução de instruções básicas (taxas MIPS e FLOPS) ou à velocidade de execução de programas representativos das aplicações (bench- marks). O custo é geralmente analisado não em valor nominal, mas em termos de parâmetros que influen- ciam no custo final: número de pinos, área de chip, número de chips por sistema. O tamanho de programas e dados em geral expressa a capacidade máxima e a eficiência de ocupação do código gerado. Restrições físicas, tais como peso, volume e consumo de potência, também podem ser conside- radas de acordo com a aplicação em vista. A facilidade de programação também pod ser um item importante, tomando em consideração que linguagens de programação são suportadas e que meca- nismos estão presentes para explorar as características de alto desempenho do sistema. Dificilmente uma medida é considerada isoladamente na avaliação de sistemas. A relação custo- desempenho é uma medida de comparação básica. Outra medida usualmente considerada é a ade- quação de uma arquitetura (de propósito geral ou dedicada) à aplicação-alvo.
c 1999 FEEC/UNICAMP 11
I. L. M. Ricarte EA960: Organização de Computadores
tempo relativo a uma máquina-referência, algumas vezes expressando aqui os valores em ter- mos de média geométrica.
Antes de mais nada, é preciso determinar que categoria de aplicação estará sendo atendida pelo sistema computacional sob estudo. É muito difícil fazer comparações utilizando valores que, por si, não expressam muita informação. Considere por exemplo o uso da taxa MIPS como um parâmetro de comparação. O valor dessa taxa é computado pela expressão:
M I P S = instr ciclo
ciclo s
10 ^6
Para aumentar o valor dessa taxa, as duas estratégias possíveis são:
O grande objetivo das técnicas de melhoria de desempenho é reduzir ineficiência. Algumas formas de atingir essa redução incluem: não suportar funções que não serão utilizadas; reduzir ocio- sidade dos componentes; e definir uma organização adequada para o sistema. Por exemplo, é preciso saber quando é melhor utilizar um processador de alto desempenho ou vários processadores para resolver um dado problema.
Técnicas adotadas em sistemas computacionais de alto desempenho dependem fortemente da aplicação. Aplicações que usualmente requerem o uso de técnicas de alto desempenho envolvem:
computação numérica
- estruturada - não-estruturada
aplicações de tempo-real
c 1999 FEEC/UNICAMP 13
I. L. M. Ricarte EA960: Organização de Computadores
E/S intensiva
atividades de projetos
capacidade de inteligência artificial
O programa de computação e comunicação de alto desempenho do governo norte-americano (HPCC) identificou algumas aplicações caracterizadas como Grand Challenge Applications [7], tais como:
Tecnologia de gravação magnética: estudar magnetostática e interações de troca para reduzir ruído em discos de alta densidade
Projeto racional de remédios: desenvolver drogas para curar câncer ou AIDS através do bloqueio da ação do HIV
Transporte civil de alta velocidade: desenvolver jatos supersônicos através de modelos computa- cionais de dinâmica dos fluidos executando em supercomputadores
Combustíveis: projetar melhores modelos de motores através de cálculos de cinética química para revelar os efeitos mecânicos dos fluidos
Modelagem oceânica: simulação em ampla escala das atividades oceânicas e troca de calor com fluxos atmosféricos
Anatomia digital: sistemas computacionais operando em tempo-real no apoio à obtenção e análise de imagens clínicas, tomografias e ressonância magnética
Tecnologia para educação: educação de ciências ou engenharia apoiada por simulações computa- cionais em sistemas interconectadas por redes heterogêneas.
Estas são algumas das aplicações que necessitariam de sistemas computacionais com desempe- nho 3T [7]:
1 Teraflop de poder computacional
1 Terabyte de memória principal
1 Terabyte por segundo de capacidade de transferência de entrada e saída
O projeto de um sistema com arquitetura de alto desempenho oferece diversas alternativas. Em alguns casos, é possível atingir os resultados esperados através da manipulação do algoritmo para melhor ajustá-lo à organização do sistema. Em outros casos, mudanças na organização básica do sistema podem ser necessárias. Há ainda casos onde organizações alternativas, tais como o uso de paralelismo, podem ser mais adequadas. Durante o processo de definição de arquitetura, algumas questões de interesse são:
Qual o tempo necessário para executar um conjunto de programas representativo da aplicação?
c 1999 FEEC/UNICAMP 14