Índice. 1 Introdução 3

Tamanho: px
Começar a partir da página:

Download "Índice. 1 Introdução 3"

Transcrição

1

2 Índice 1 Introdução Organização Estrutura de Computadores Linguagens, Níveis e Máquinas Virtuais Máquinas de Vários Níveis Modernas Evolução das Máquinas de Vários Níveis 8 2 Organização de Sistemas Computacionais Processadores Execução de Instruções RISC versus CISC Princípios de Projeto para Computadores Modernos Paralelismo no Nível das Instruções Paralelismo no Nível do Processador 19 3 Organização de Sistemas Computacionais Portas Lógicas e a Álgebra de Boole Portas Lógicas Circuitos Integrados 25 4 Circuitos Integrados Encapsulamento e Pinagem de Circuitos Integrados Tecnologia de Soldagem em Superfície 34 5 Evolução dos Microprocessadores Os Primeiros Microprocessadores da Intel Os Microprocessadores 8086 e O O O O Pentium Pentium MMX Processadores de 6ª Geração Pentium Pro 102 2

3 1 Introdução Um computador digital é uma máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Um programa é um conjunto de instruções que descrevem a maneira de se realizar uma determinada tarefa. Os circuitos eletrônicos de um computador podem reconhecer e executar um conjunto limitado de instruções simples, nas quais um programa precisa ser convertido antes que possa ser executado. Em geral, essas instruções não são mais complicadas que: Somar 2 números Comparar o valor de número com zero. Copiar um conjunto de dados de uma parte da memória para outra parte. Tomadas em conjunto, as instruções básicas de um determinado computador formam uma linguagem por meio da qual é possível às pessoas se comunicar com a máquina. Essa linguagem é a Linguagem de máquina. Os projetistas de um computador precisam decidir quais instruções devem fazer parte da sua linguagem de máquina. Em geral, as instruções básicas são tão simples quanto possível, compatíveis com o uso que se pretende dar ao computador e com a performance que se deseja atingir, de maneira a reduzir o custo e a complexidade da eletrônica necessária à sua implementação. Em decorrência do fato de as linguagens de máquina serem muito simples, seu uso torna-se difícil e tedioso para os programadores (linguagem nível 1 - N1). 1.1 Organização Estrutura de Computadores Como a linguagem de máquina é tediosa para o programador, os computadores podem ser definidos de uma maneira estruturada, tratando-os como uma série de abstrações, sendo cada uma dessas abstrações construída com base naquela situada imediatamente abaixo Linguagens, Níveis e Máquinas Virtuais A solução para a programação dos computadores pode ser obtida com o emprego de duas metodologias diferentes, ambas envolvendo o projeto de um novo conjunto de instruções mais conveniente para os usuários do que as instruções da linguagem de máquina, nativas do processador. Tomadas em conjunto, essas novas instruções também formam uma linguagem, chamada L1, da mesma maneira que as instruções de máquina formam uma linguagem L0. As duas metodologias diferem na maneira como os programas escritos em L1 serão executadas pelo processador, que, afinal, só pode executar programas escritos em sua linguagem de máquina, L0. A primeira das metodologias empregadas para a execução de programas escritos em L1 é substituir cada uma 3

4 de suas instruções por uma seqüência equivalente de instruções escritas em L0. O processador então executa o novo programa expresso em linguagem L0, em substituição ao primeiro, escrito em L1. Essa técnica é conhecida como tradução. Tradução: antes de executar um programa, as instruções de um programa são convertidos para uma linguagem mais simples. Ex: L1 L0 (Pascal, C, etc). A outra metodologia consiste em escrever programas em L0 que admitam como entrada programas escritos em L1. Esta técnica não requer a geração de um novo programa em L0. Ela é conhecida como interpretação, sendo o programa que a implementa conhecido como interpretador. Interpretação: o programa escrito em L0 recebe os programas escritos em L1 como dados de entrada e efetiva a execução examinando uma instrução de cada vez e executando a seqüência equivalente de instruções em L0 diretamente. Ex: HTML. Tradução Vantagem: - O programa é compilado, desta maneira, pode-se verificar a existência de erros e apontá-los. - Depois de compilado, o programa é convertido para a linguagem de máquina, gerando um arquivo executável (.EXE), onde o código fonte é protegido. - Uma vez que o programa é traduzido, este se torna mais rápido, pois é executado em linguagem de máquina. Desvantagem: - Uma vez que o programa é traduzido para outra linguagem, deve-se guardar o arquivo do código fonte bem seguro, pois dificilmente pode-se fazer o caminho inverso com o arquivo.exe. - Deve-se compilar e traduzir o programa toda vez que for necessário fazer uma alteração no mesmo. Interpretação Vantagem: - Não é necessário compilar o programa. - Pode-se ver o código fonte de outros programas e utilizar seus códigos. - Para qualquer alteração que é feita no programa, somente é necessário fazer o programa interpretar o código novamente para valer as novas alterações. Desvantagem: - O programa é interpretado toda vez que é executado, sendo um trabalho mais demorado que executar o programa compilado. - Como o programa não é compilado, não é verificada a existência de erros. - O código fonte não é protegido. 4

5 Em vez de pensar em tradução ou em interpretação, pode-se imaginar a existência de um computador hipotético, ou de uma máquina virtual, cuja linguagem de máquina seja L1. Se esta máquina pudesse ser construída e seu preço não fosse muito alto (quanto maior a complexidade dos dispositivos físicos, mais caro o computador), não haveria necessidade da linguagem L0. Os programadores poderiam simplesmente escrever seus programas em L1 e ter um computador para executa-los diretamente. Mesmo considerando que uma máquina virtual com as características da máquina de nível 1 seja muito complicada e/ou muito cara para ser implementada por meio de circuitos eletrônicos, os programadores poderiam, ainda assim, escrever programas para elas. Tais programas poderiam ser traduzidos ou interpretados por um programa escrito em L0, e portanto, possível de ser executado diretamente pelo computador real. Em outras palavras, os programadores podem escrever programas para máquinas virtuais como se elas realmente existissem. Para tornar a tradução ou a interpretação uma tarefa prática, as linguagens L1 e L0 não podem ser muito diferentes. Essa restrição significa que, na maioria dos casos, apesar de L1 ser melhor que L0, ela ainda está muito longe do ideal para a maioria das aplicações. Isto resulta na frustração da expectativa de livrar o programador dos problemas de ter que expressar algoritmos em uma linguagem mais apropriada a máquinas do que os humanos. Uma solução óbvia seria inventar um outro conjunto de instruções mais próximo das pessoas e mais distantes das máquinas do que o L1. Esse terceiro conjunto forma uma linguagem chamada L2. De maneira análoga ao raciocínio anterior, as pessoas podem escrever programas em L2 como se a máquina realmente existisse. Tais programas podem ser traduzidos para L1 ou executados por um interpretador escrito em L1. A criação de toda uma série de linguagens, cada uma das quais mais conveniente do que suas antecessoras, pode prosseguir indefinidamente, até a obtenção de uma que sirva aos propósitos dos programadores. Cada linguagem usa sua antecessora como base, de modo que um computador que use essa técnica pode ser visto como um conjunto de camadas ou níveis. A linguagem ou nível mais baixo é o mais simples, enquanto a linguagem ou nível mais alto é o mais sofisticado. 5

6 LN L3 L2 L1 L0 Computador real Apenas programas escritos em L0 poderão ser executados diretamente por circuitos eletrônicos, sem a intervenção de tradutores ou de interpretadores. Os programas escritos em L1, L2,..., Ln precisam ser interpretados por um interpretador que execute em um nível mais baixo, ou traduzido para uma nova linguagem, associada a um nível mais baixo. Um programador cuja tarefa seja escrever programas para máquina virtual do nível n nem precisa saber da existência dos tradutores e dos interpretadores eventualmente envolvidos no processo de execução de programas escritos em Ln. A estrutura da máquina deve assegurar a execução desses programas. Para o programador da máquina virtual do nível n, não há qualquer interesse no fato de seus programas serem executados passo a passo por um conjunto de interpretadores, ou se eles são executados diretamente pelos circuitos eletrônicos da máquina. O mesmo resultado é obtido em ambos os casos: seus programas são executados Máquinas de Vários Níveis Modernas A grande maioria dos computadores modernos é formada de dois ou mais níveis. Abaixo é mostrada uma máquina com seis níveis. O nível 0 é o mais baixo, é composto pelo hardware da máquina. Seus circuitos executam programas na linguagem da máquina nível 1. Na verdade, deve ser mencionada a existência de um outro nível, situado abaixo do nível 0. Esse nível, conhecido como nível dos dispositivos pertence ao domínio da engenharia elétrica. Nesse nível, o projetista trabalha com os transistores, que são o que há de mais básico para os projetistas de computadores. 6

7 Nível 5 Linguagem orientada para problemas Programador Tradução (compilador) Linguagem com palavras e abreviaturas Nível 4 Nível de linguagem de montagem Tradução (montador) Execução dos interpretadores e tradutores (programadores de sistemas) Linguagem numérica Nível 3 Nível 2 Nível 1 Nível 0 Nível de sistema operacional Interpretação parcial (S.O.) Nível de máquina convencional Interpretação (microprograma) Nível de microprogramação (microprograma) Os microprogramas são executados diretamente pelo hardware Nível de lógica digital (Portas (transistores)) No nível mais baixo, encontra-se o nível da lógica digital, cujos objetivos de interesse são conhecidos como portas lógicas. O nível 1 é o nível da microprogramação. Nesse nível, há um conjunto de 8 a 32 registradores que formam uma memória local e um circuito chamado ULA (Unidade Lógica Aritmética) que é apta a realizar operações aritméticas muito simples. Nesse nível há o microprograma, responsável por buscar dados decodificá-los e executar instruções. Ex: uma instrução SOMA (ADD), a instrução deve ser buscada na memória, seus operandos devem ser localizados e trazidos para os registradores, a soma deve ser calculada na ULA, e finalmente o resultado da soma deve ser encaminhado para o lugar apropriado. O nível 2 é um nível conhecido nível da máquina convencional. Todos os fabricantes publicam um manual, para cada um dos modelos de máquina que vendem, intitulado Manual de Referência da Linguagem de Máquina, contendo as instruções da máquina. Ex: pc = pc + 1 fetch goto(mbr) goto Main 1 O nível 3 geralmente é um nível híbrido. A maioria das instruções de sua linguagem também pertencem ao nível 2 (não há razão para que uma instrução não possa pertencer a mais de um nível na estrutura). Além dessas instruções, comuns ao nível 3 e ao nível 2, esse nível suporta um conjunto de novas instruções, uma organização diferente de memória, a capacidade de executar dois ou mais programas simultaneamente, além de diversas outras características. 7

8 Algumas das instruções do nível 3 são interpretadas pelo sistema operacional e outras são diretamente pelo microprograma ou pelo hardware, por isso, é um nível híbrido. Existe uma diferença fundamental entre o nível 3 e o nível 4. Os três níveis mais baixos da máquina não são projetados para serem usados pela grande maioria dos programadores. Em vez disso, eles são projetados com o objetivo de executar os interpretadores e tradutores necessários para suportar os demais níveis. Esses interpretadores e tradutores são escritos por pessoas conhecidas como programadores de sistema. Uma outra mudança ocorrida no nível 4 é quanto à maneira de suportar os níveis mais altos. Os níveis 2 e 3 são sempre interpretados. Os níveis 4, 5 e acima são em geral, mas nem sempre suportados por tradução. As linguagens de máquina dos níveis 1, 2 e 3 são numéricas. Os programas nessas linguagens são constituídos de uma longa série de números, muito interessante para as máquinas, mas extremamente desconfortáveis para as pessoas. A partir do nível 4, as linguagens de cada um dos níveis contêm palavras e abreviações que fazem algum sentido para as pessoas. O nível 4 corresponde à linguagem de montagem, nada mais é que uma forma simbólica de representação das linguagens dos níveis mais baixos. Esse nível fornece um método para as pessoas escreverem programas para os níveis 1,2 e 3 em uma forma não muito desconfortável. Os programas na linguagem de montagem são primeiro traduzidos para a linguagem dos níveis 1,2 ou 3 e então interpretados pela máquina virtual apropriada ou pela máquina real. O programa que realiza essa tradução é chamado de montador. As linguagens do nível 5 em geral são projetadas para serem usadas por programadores de aplicação, com algum problema a ser resolvido. Tais linguagens são conhecidas como linguagens de alto nível. Existem centenas dessas linguagens. Algumas das mais conhecidas são BASIC, C, C++, Java, LISP e Prolog. Os programas escritos nessas linguagens são em geral traduzidos para os níveis 3 ou 4 por tradutores conhecidos por compiladores, apesar de, em alguns casos, essas linguagens serem interpretadas Evolução das Máquinas de Vários Níveis Os programas escritos na verdadeira linguagem de máquina de um computador (nível 1) podem ser executados diretamente pelos circuitos eletrônicos (nível 0) desse computador, sem necessidade da intervenção de interpretadores ou de tradutores. O hardware é constituído por objetos físicos circuitos integrados, placas de circuito impresso, cabos, fonte de alimentação, memória, impressora em vez de idéias abstratas, como algoritmos ou instruções (software). Qualquer operação realizada por software pode também ser realizada diretamente por hardware, de preferência depois de ser bem entendida e bem depurada. A recíproca é verdadeira: quaisquer instruções executadas por hardware podem também ser simulada em software. A decisão de colocar em hardware certas funções deixando outras implementadas em software baseia-se 8

9 em fatores como custo, velocidade, confiabilidade e freqüência esperada de mudanças. Existem poucas regras confiáveis para subsidiar a decisão de implementar uma operação X em hardware e de programar uma outra operação Y A invenção da Microprogramação Os primeiros computadores digitais na década de 1940 tinham somente dois níveis: o nível de máquina convencional, na qual toda a programação era feita, e o nível da lógica digital, onde esses programas eram executados. Os circuitos da lógica digital eram complicados, difíceis de entender e de construir, além de pouco confiáveis. Em 1951, Maurice Wilkes, um pesquisador da Universidade de Cambridge, sugeriu a idéia de se construir um computador em três níveis, a fim de simplificar bastante o hardware. Essa máquina deveria ter acoplado a si um interpretador (o microprograma), cuja função era executar somente microprogramas, que tinham um conjunto de instruções muito limitado, em vez de programas no nível de máquina convencional, que tinha muito mais instruções, um computador construído nessas bases precisava de bem menos circuitos eletrônicos. Como os computadores da época eram construídos com válvulas, a diminuição do número desses componentes aumentava em muito a confiabilidade do hardware A invenção do Sistema Operacional Nos primórdios da computação eletrônica, a maioria dos computadores era operada pelo próprio programador. Próximo a cada máquina havia uma lista de assinaturas. O programador que desejasse usar a máquina para rodar um de seus programas precisava assinar a lista, marcando um dos horários disponíveis. Muitos dos programadores preferiam trabalhar de madrugada, quando a sala da máquina estava mais calma. Na hora marcada, o programador devia dirigir-se à sala da máquina com o conjunto de cartões perfurados nas mãos. Se o objetivo fosse executar um programa em FORTRAN, era necessário cumprir os seguintes passos: 1- Dirigir-se ao arquivo físico onde eram guardados os programas da biblioteca da máquina e localizar o imenso deck de cartões verdes, identificado como compilador FORTRAN, e colocá-lo na leitora de cartões e pressionar o botão de início de operação da leitora. 2- Colocar o programa FORTRAN a ser executado na leitora de cartões e apertar o botão de continuação da operação. O programa era lido. 3- Quando o computador parava, era necessário colocar o programa FORTRAN mais uma vez na leitora, pois a maioria dos compiladores da época era de dois passos. 9

10 4- Finalmente a tradução estava quase completa. Se o compilador encontrasse algum erro no programa o programador deveria corrigi-lo e repetir todo o procedimento. Se não houvesse erro, o compilador perfurava um conjunto de cartões com o programa traduzido para a linguagem de máquina. 5- O programador então colocava o programa em linguagem de máquina na leitora de cartões para serem lidos. 6- Começava então a execução do programa. Em geral o programa não funcionava bem, parando inesperadamente a execução antes de seu término. Nesse caso o programador devia examinar um conjunto de luzes do painel de controle, procurando identificar o erro. Com sorte, o erro era identificado, corrigido e todo o processo recomeçava, desde a compilação até nova execução. Se o erro não fosse identificado, o programador devia comandar uma descarga do conteúdo da memória e levá-la para casa para estudo. Esse procedimento, com pequenas alterações dependendo do caso, era o procedimento normal adotado em todos os centros de processamento de dados por anos e anos a fio. Ele forçava os programadores a aprender como operar a máquina e como proceder em caso de problemas, que na época eram muito comuns. Por volta de 1960, os técnicos estavam procurando uma forma de reduzir o tempo gasto na execução de programas, automatizando os trabalhos de operação da máquina. Um programa chamado sistema operacional, era mantido na memória do computador durante todo o tempo em que estivesse sendo utilizado. O programador devia preparar alguns cartões de controle com base nos quais seu programa era lido e executado automaticamente pela máquina, sob controle do sistema operacional. Programa FORTRAN *Fortran Cartões de dados *Data *End Cartões com asteriscos eram usados para identificações de cartões de dados e com cartões de código. O sistema operacional lia o cartão *FORTRAN, que era uma instrução para carregar o compilador FORTRAN para a memória, vindo da fita magnética. O compilador lia e compilava o programa em FORTRAN. 10

11 Ao terminar o processo de compilação, o controle retornava ao sistema operacional, que então lia o cartão *Data. Este cartão continha uma instrução para que o programa traduzido fosse executado, usando como dados os valores dos cartões de dados que seguiam o cartão *Data. Apesar de ter sido projetado para automatizar o trabalho do operador (daí seu nome), o sistema operacional foi também o primeiro passo para o desenvolvimento de uma nova máquina, seguindo o conceito de máquina virtual. Observe que o cartão *FORTRAN pode ser visto como uma instrução virtual de execução de programa. Um nível com apenas duas instruções não pode ainda ser caracterizado como um novo nível, mas como um passo nessa direção. 11

12 2 Organização de Sistemas Computacionais Um computador eletrônico digital é um sistema composto por um conjunto de processadores, memórias e dispositivos de entrada/saída interligados. 2.1 Processadores A figura abaixo mostra a organização de um computador em torno de um barramento. Processador Unidade de controle Unidade Aritmética Lógica (ULA) Dispositivos de E/S Registradores Memória principal Disco Impressora Barramento Execução de Instruções Para ser executada pelo processador, uma instrução precisa ser dividida em uma série de pequenos passos. Esses passos são: 1)- Busca da próxima instrução na memória e armazenamento da instrução no registrador de instruções (IR). 2)- Atualização do valor do program counter (PC), fazendo-o apontar para a instrução seguinte. 3)- Determinação do tipo da instrução que está armazenada no registrador de instruções. 12

13 4)- Se a instrução precisar de uma palavra armazenada na memória, nesse passo deve ser determinado onde essa palavra está armazenada. 5)- Busca da palavra, se necessário, e armazenamento em um dos registradores do processador. 6)- Execução da instrução. 7)- Retorno ao passo 1 para iniciar a execução da instrução seguinte. Essa seqüência de passos é conhecida como ciclo da buscadecodificação-execução. Trata-se de uma seqüência muito importante para a operação de todos os processadores que seguem o modelo de Von Neumann RISC versus CISC Nos últimos anos da década de 1970, a técnica dominante para projeto de processadores privilegiava as instruções muito complexas, cuja implementação era muito simples com o emprego do interpretador. Os projetistas estavam tentando minimizar o chamado gap mecânico, à distância entre aquilo que a máquina podia realizar e aquilo que as linguagens de programação de alto nível exigiam. Na época, quase ninguém pensava em projetar sistemas operacionais, redes, processadores de texto, etc, menos poderosos. O contraponto à filosofia de projeto que privilegiava instruções complexas começou com um grupo de pesquisa da IBM, liderado por John Cocke, que estava tentando incorporar a um minicomputador chamado 801. Apesar de a IBM nunca ter comercializado essa máquina e de os resultados dessa pesquisa só terem sido publicados muitos anos depois, vazaram informações sobre ela, e, como conseqüência, outros grupos começaram a investigar arquiteturas similares. Em 1980, um grupo liderado por David Patterson e Carlo Séquin, em Berkeley, desenvolveu chips processadores VLSI que não usavam interpretação. Para designar esse conceito eles cunharam o termo RISC, e deram ao chip desenvolvido por eles nessa filosofia o nome RISC I. Esse chip foi quase imediatamente seguido pelo RISC II, projetado pelos mesmos dois pesquisadores. Pouco mais tarde, em 1981, John Hennessy, pesquisador de Standford, projetou e fabricou um chip diferente, ao qual ele deu o nome de MIPS. Esse chip veio a transformar-se em um sucesso comercial, gerando produtos famosos como o chip SPARC e o chip MIPS. Esses novos processadores eram muito diferentes dos processadores comercializados na época. Considerando que tais processadores não precisavam ser compatíveis com nenhum outro, seus projetistas tinham toda a liberdade para escolher novos conjuntos de instruções que viessem a maximizar a performance do sistema. Apesar de a ênfase inicial ter privilegiado instruções simples, que pudessem ser executadas rapidamente, logo ficou clara a importância de se 13

14 projetarem instruções que pudessem ser iniciadas prontamente (iniciar uma instrução antes de terminar a execução de outras), como questão fundamental para a boa performance. O tempo que uma instrução leva para ser executada passou a importar menos do que a quantidade de instruções que pudessem ser iniciadas em um segundo. Na época em que esses processadores simples estavam sendo projetados, a característica que chamavam a atenção de todos era seu pequeno número de instruções, em torno de 50. Esse número era bem menor que as 200 a 300 instruções dos processadores que estavam instalados nos computadores que lideravam o mercado, a exemplo da família VAX da DEC e dos grandes mainframes da IBM. A abreviatura RISC quer Reduced Instruction Set Computer (Computador com Conjunto de Instruções Reduzidas), que contrastava com a técnica CISC, que quer dizer Complex Instruction Set Computer (Computador com Conjunto de Instruções Complexas). Começou uma guerra santa com os adeptos da filosofia RISC atacando a ordem estabelecida (VAX, Intel e IBM). Eles defendiam a tese de que a melhor maneira de se projetar um processador era com um pequeno número de instruções, todas muito simples, capazes de serem executadas em um ciclo do caminho de dados, buscando o conteúdo de dois registradores, operando-os de alguma maneira e guardando o resultado em um registrador. O argumento dos adeptos da filosofia RISC era que mesmo que uma máquina RISC precisasse de quatro ou cinco instruções para fazer o que uma máquina CISC faria em apenas uma, se as instruções RISC fossem 10 vezes mais rápidas (por não serem interpretadas) a máquina RISC venceria em desempenho. Pode-se pensar que em função da melhor performance da tecnologia RISC, as máquinas projetadas nessa tecnologia (como, por exemplo, as máquinas com o chip Alpha da DEC) torna-se-iam um sucesso de vendas, suplantando as máquinas projetadas na tecnologia CISC (como por exemplo, as máquinas com o chip Pentium da Intel) Nada disso aconteceu. Por que não? Em primeiro lugar, existe a questão da compatibilidade com máquinas mais antigas, havendo empresas que têm bilhões de dólares investidos em software para a linha Intel. Portanto, mudar de arquitetura significaria, na prática, jogar no lixo esse investimento. Em segundo lugar, surpreendentemente, a Intel tem-se enforcado por utilizar as idéias básicas do projeto RISC em suas máquinas cuja filosofia do projeto é CISC. A partir do 486, a Intel passou a projetar seus processadores com um núcleo RISC, núcleo esse responsável pela execução das instruções mais simples (e, conseqüentemente, mais freqüentes) em um único ciclo do caminho de dados, enquanto as instruções mais complexas são interpretadas, forma clássica de execução de instruções na filosofia CISC. Como resultado, as instruções mais comuns são executadas rapidamente, enquanto as menos comuns demoram um tempo maior para serem executadas. Apesar de não ser tão rápida quanto à metodologia RISC pura, essa metodologia de projeto híbrida é suficiente para manter a compatibilidade dessas máquinas híbridas, além do fato de elas permitirem que o software desenvolvido para as máquinas executem sem modificação nas máquinas mais novas, projetada segunda a tecnologia híbrida. 14

15 2.1.4 Princípios de Projeto para Computadores Modernos Alguns dos princípios que a maioria dos projetistas de computadores modernos se esforça para alcançar são: Todas as Instruções São Diretamente Executadas por Hardware Todas as instruções das máquinas RISC são executadas diretamente pelo hardware. Nenhuma delas é interpretada por microinstruções. A eliminação de um nível de interpretação resulta em uma velocidade de execução bastante rápida para a maioria das instruções de uma máquina RISC. Para aqueles processadores cujo conjunto de instruções siga a filosofia CISC, as instruções mais complexas podem ser divididas em várias partes, cada uma das quais sendo executada por uma seqüência de microinstruções. Esse passo extra, a interpretação, torna a máquina mais lenta, porém, como ela só é empregada nas instruções que ocorrem com menos freqüência, isso pode ser tolerado. Maximizar a Taxa à qual as Instruções São Executadas Os computadores modernos utilizam muitos artifícios com o objetivo de maximizar a sua performance, buscando principalmente executar o máximo possível de instruções por segundo. No fim das contas, se você puder executar 500 milhões de instruções por segundo, você terá um processador de 500 MIPS 1, independentemente do tempo que cada instrução efetivamente leva para ser executada. Esse princípio sugere que o paralelismo pode ter um papel muito importante na melhora da performance, considerando que a execução de um grande número de instruções lentas em um curto intervalo de tempo só é possível se várias instruções forem executadas ao mesmo tempo. As instruções Precisam Ser Facilmente Decodificadas A decodificação é um dos processos críticos que mais influenciam a velocidade de execução de instruções. O processo de decodificação é que determina os recursos usados na execução das instruções. Qualquer coisa que possa contribuir para a agilização desse processo é bem-vinda. Isso inclui projetar as instruções da forma mais regular possível, usando um tamanho único para todas elas, com o menor número de campos possível. Quanto menos formatos de instrução houver, melhor será, no que diz respeito à facilidade de decodificação. 1 A unidade MPIS mede a quantidade de instruções executadas por um processador a cada segundo, mas não mede a quantidade de trabalho executada pelo processador. Para entender esta questão, observe que uma instrução na máquina CISC realiza muito mais trabalho que uma instrução de uma máquina RISC. No entanto, se medirmos a performance em MIPS, a máquina RISC será sempre melhor, pois para o mesmo trabalho executa mais instruções, fato que pode não condizer com a realidade. 15

16 2.1.5 Paralelismo no Nível das Instruções Os arquitetos de computadores estão sempre sendo desfiados para melhorar cada vez mais a performance das máquinas que eles projetam. Uma das maneiras de se obter isso é fazendo com que os chips rodem cada vez mais rápido, aumentando a velocidade do clock, mas existe um limite tecnológico para isso, limite esse dependente do estado da arte da tecnologia disponível na época do projeto de nova máquina. Como conseqüência, os arquitetos de computadores voltam-se, em sua maioria, para o paralelismo (executando duas ou mais operações ao mesmo tempo) como forma de obter uma performance ainda melhor, para uma dada velocidade do clock. O paralelismo manifesta-se de duas maneiras: no nível das instruções e no nível do processador. No primeiro caso, o paralelismo é explorado dentro das instruções individuais, de maneira a conseguir que a máquina execute mais instruções por segundo. No segundo caso, vários processadores trabalham juntos na solução do mesmo problema. Cada uma das metodologias tem seus próprios métodos Execução em Pipeline Há muitos anos que se sabe que o maior gargalo para a velocidade de execução de instruções é o acesso à memória. Para tentar minimizar esse problema, as máquinas, desde o IBM Stretch (1959), foram projetadas com a capacidade de buscar antecipadamente instruções da memória, de maneira a encontrá-las já no processador quando chegar no momento de executá-las. Tais instruções eram armazenadas em um conjunto de registradores denominados buffer de pré-busca. Dessa maneira, quando uma instrução fosse necessária, ela poderia ser obtida diretamente do buffer de pré-busca, em vez de vir da memória, gastando muito mais tempo. Com efeito, a pré-busca divide a execução das instruções em duas partes: a busca e a efetiva execução. O conceito de pipeline leva essa estratégia bem mais além. Em vez de dividir e execução das instruções em apenas duas partes, o processamento em pipeline divide a execução de instruções em várias partes, cada uma das quais tratadas por um hardware dedicado exclusivamente a ela, sendo sua execução em paralelo. A figura abaixo ilustra um pipeline com cinco unidades, que recebem o nome de estágios. O estágio 1 busca a instrução da memória e a armazena em um buffer, até que chegue o momento de ela ser executada. No estágio 2, ocorre a decodificação da instrução, ou seja, a determinação de seu tipo e quais operandos serão necessários à sua execução. No estágio 3 ocorre a localização e a busca dos operandos que podem estar em registradores ou na memória. A execução propriamente dita tem lugar durante o estágio 4, quando em geral, os operandos passam pelo caminho de dados. Finalmente, durante o estágio 5 o 16

17 resultado do processamento dos operandos no caminho de dados é escrito em um registrador. E 1 E 2 E 3 E 4 E 5 Unidade de busca de instrução Unidade de decodificação de instrução Unidade de busca de operando Unidade de execução de instrução Unidade de escrita A figura abaixo mostra a operação do pipeline em função do tempo. Durante o primeiro ciclo de clock, o estágio 1 está trabalhando na instrução 1, buscando-a da memória. Durante o segundo ciclo de clock, o estágio 2 decodifica a instrução 1, enquanto o estágio 1 busca a instrução 2. Durante o terceiro ciclo de clock, o estágio 3 busca os operandos da instrução 1, o estágio 2 decodifica a instrução 2 e o estágio 1 busca uma terceira instrução. Durante o quarto ciclo de clock, o estágio 4 executa a instrução 1, o estágio 3 busca os operandos da instrução 2, o estágio 2 decodifica a instrução 3, e o estágio 1 busca uma quarta instrução. Finalmente, durante o quinto ciclo de clock, o estágio 5 escreve em um registrador o resultado da instrução 1, enquanto os demais estágios trabalham nas instruções subseqüentes. E1 E2 E3 E4 E Tempo O Pipeline pode ser comparado a uma linha de produção de uma fábrica. Ex: a linha de produção de uma fábrica de tortas onde o preparo e a embalagem das tortas ocorram em ambientes separados. Supondo que o departamento responsável pela embalagem das tortas tenha uma esteira rolante com cinco trabalhadores. A cada 10 segundos, o trabalhador número 1 coloca uma embalagem vazia na esteira. A caixa chega ao trabalhador número 2, que coloca uma torta dentro dela. Um poço depois, a caixa chega ao trabalhador número 3, onde a caixa é fechada e lacrada. Após essa operação, a caixa chega ao trabalhador número 4, que coloca um rótulo nela. Finalmente, o trabalhador 17

18 número 5 retira a caixa da esteira, colocando-a em um contêiner que será despachado para o supermercado. Supondo que o ciclo da máquina da figura do pipeline seja de 2ns (nanosegundos), uma instrução leva 10ns para atravessar todos os seus cinco estágios. À primeira vista, com uma instrução gastando 10ns para ser executada, pode parecer que a máquina trabalhe a 100 MIPS (Milhões de Instruções Por Segundo), mas na verdade ela roda muito mais rápido que isso. Observe que a cada período do clock (2ns) uma nova instrução é executada, de maneira que a velocidade real da máquina é de 500 MIPS, e não de 100 MIPS Arquiteturas Superescalares Se um pipeline é bom, com certeza dois serão ainda melhor. É possível projetar um processador com dois pipelines, ambos baseados no pipeline de 5 estágios, como mostra a figura abaixo. E 1 E 2 E 3 E 4 E 5 Unidade de busca de instrução Unidade de decodificação de instrução Unidade de busca de operando Unidade de execução de instrução Unidade de escrita E 2 E 3 E 4 E 5 Unidade de decodificação de instrução Unidade de busca de operando Unidade de execução de instrução Unidade de escrita Uma única unidade de busca de instrução busca pares de instruções juntas e coloca cada uma delas em seu próprio pipeline, permitindo, portanto, a execução de instruções em paralelo. Para que seja possível a execução em paralelo dessas instruções, não pode haver conflito pela utilização de recursos durante a execução (os registradores são um exemplo desse tipo de recurso), e, além disso, o resultado de uma das instruções não pode depender da execução da outra. Da mesma forma que no caso de um único pipeline, o compilador precisa garantir que essas situações não venham a ocorrer (ou seja, o hardware não faz qualquer verificação de conflitos, dando resultados errados se as instruções executadas em paralelo não forem compatíveis), os conflitos devem ser detectados e eliminados durante a execução das instruções. Apesar de o processamento em pipeline, simples ou duplo, ser mais empregado nas máquinas RISC (o 386 e seus antecessores não utilizavam esse tipo de processamento), a partir do 486 a Intel passou a usar o pipeline em seus processadores. O 486 tinha um pipeline e o Pentium tinha dois pipelines de 5 estágios cada. Medições feitas mostraram que um Pentium executando um código 18

19 otimizado conseguia executar programas exatamente duas vezes mais rápido que o 486 com a mesma freqüência de clock. Esse ganho de velocidade pode ser atribuído ao segundo pipeline. A existência de quatro pipelines, apesar de conceitualmente possível, duplica o hardware necessário à sua implementação. Portanto, em vez de quatro pipelines, as máquinas de alta performance usam outra metodologia. A idéia básica é ter um único pipeline, com diversas unidades funcionais, conforme mostra a figura abaixo. O Pentium II tem uma estrutura similar à dessa figura. E 4 ULA Unidade de busca de instrução Unidade de decodificação de instrução Unidade de busca de operando ULA E 1 E 2 E 3 E 5 LOAD Unidade de escrita STORE Ponto Flutuante A idéia do processador superescalar traz implícito o fato de o estágio 3 poder distribuir instruções a uma velocidade consideravelmente mais alta que a capacidade do estágio 4 de executá-las. Se o estágio 3 distribui uma instrução a cada 10ns não mais que uma unidade funcional poderia estar ocupada ao mesmo tempo, impedindo, portanto, a implementação do processamento superescalar. Na verdade, a maioria das unidades funcionais do estágio 4 gasta bem mais de um ciclo de clock para executar, mais especificamente aquelas que acessam a memória ou que fazem cálculos que envolvam números em ponto flutuante Paralelismo no Nível do Processador A demanda de computadores cada vez mais rápidos parece não ter fim. Os astrônomos desejam simular o que ocorreu no primeiro microsegundo após o big- 19

20 bang, os economistas desejam modelar a economia mundial, os adolescentes desejam jogos interativos com imagens em 3 dimensões para jogar através da internet. À medida que os processadores vão ficando mais rápidos, seus projetistas começam a esbarrar em limitações de ordem física, como a velocidade da luz em fios de cobre ou em fibras ópticas, velocidade essa da ordem de 20 cm/nanosegundo. Ou seja, chega um ponto em que os projetistas não podem fazer muito mais no sentido de aumentar a velocidade de um processador. Além disso, quanto mais rápido for o chip, mais calor ele produz, criando um problema para dissipar esse calor gerado. O paralelismo na execução de instruções ajuda a aumentar a velocidade de execução, mas a operação de processadores em pipeline ou em superescalar melhora a performance entre cinco e dez vezes. Para obter ganhos da ordem de 50, 100, ou mais, a única maneira é projetar computadores com mais de um processador Computadores Matriciais A maioria dos problemas científicos trata com matrizes ou alguma outra estrutura de dados. A regularidade e a estrutura de tais programas fazem deles candidatos potenciais a ter a sua performance aumentada por meio de execução paralela. Um processador matricial é composto de um grande número de processadores idênticos, que executam a mesma seqüência de instruções sobre diferentes conjuntos de dados. O primeiro projeto de um processador matricial foi feito na Universidade de Illinois, e recebeu o nome de ILLIAC IV, alcançando a performance de 50 megaflops (milhões de instruções em ponto flutuante executadas por segundo). Unidade de Controle Processador Grade processador / memória de 8 x 8 Memória 20

21 Computadores Vetoriais Os processadores vetoriais se parecem muito com os processadores matriciais. A exemplo do processador matricial, o processador vetorial é muito eficiente na execução de uma seqüência de operações em pares de elementos de dados. Mas, ao contrário dos processadores matriciais, todas as operações aritméticas são realizadas em uma única ULA, que opera em pipeline. A Cray Research, empresa fundada por Seymour Cray, continua produzindo até hoje computadores baseados em processadores vetoriais Multiprocessadores Os elementos de processamento de qualquer processador matricial não são processadores independentes, na verdadeira acepção da palavra, uma vez que compartilham uma única unidade de controle. Um dos modelos de sistema multiprocessador é composto de vários processadores independentes, compartilhando a mesma memória, a exemplo de várias pessoas em uma sala de aula compartilhando o mesmo quadro-negro. Processador Processador Processador Processador Memória compartilhada Barramento Considerando que cada processador pode ler ou escrever em qualquer parte da memória, é necessário que as atividades dos vários processadores sejam coordenadas (por software), para evitar que a atividade de um processador atrapalhe a atividade de outro processador. Não é preciso muita imaginação para verificar que, se o sistema tiver um bom número de processadores rápidos, acessando constantemente a memória e usando o mesmo barramento, a possibilidade de conflitos aumenta muito. Os projetistas de sistemas multiprocessadores desenvolveram vários esquemas para resolver essa questão e aumentar a performance desses sistemas. Um dos projetos possui uma memória local para cada processador, que não pode ser acessada pelos outros processadores do sistema. 21

22 Memórias locais Memória compartilhada Processador Processador Processador Processador Barramento As memórias locais devem ser usadas para armazenar o código do programa em execução pelo processador além dos dados que não precisem ser compartilhados com os demais processadores. O acesso a essas memórias privadas não é feito através do barramento, reduzindo, portanto o tráfego sobre ele. 22

23 3 Organização de Sistemas Computacionais Na parte inferior da máquina virtual encontra-se o nível da lógica digital, o verdadeiro hardware do computador. A lógica digital situa-se bem na fronteira entre a ciência da computação e a engenharia elétrica. 3.1 Portas Lógicas e a Álgebra de Boole Os circuitos digitais podem ser construídos a partir de um pequeno número de elementos primitivos, elementos esses que podem ser combinados de várias maneiras diferentes Portas Lógicas Um circuito digital é uma estrutura que só admite a presença de dois valores lógicos. Em geral um sinal elétrico entre 0 e 1 volt representa um de tais valores e um sinal elétrico entre 2 e 5 volts representa o outro valor (por exemplo, o binário 1). As portas lógicas formam a base do hardware a partir da qual todos os circuitos digitais são construídos. Toda a lógica digital moderna baseia-se no fato de que um transistor pode operar como uma chave binária cujo tempo de comutação é extremamente pequeno. A figura A mostra um transistor bipolar (o círculo) inserido em um circuito eletrônico muito simples. Esse transistor tem três conexões com o mundo exterior: o coletor, a base e o emissor. Quando uma tensão de entrada V in estiver abaixo de um certo valor crítico, o transistor desliga, e passa a agir como uma resistência infinita. Isso faz com a saída do circuito, V out, assuma um valor próximo a V cc, uma tensão regulada externamente, cujo valor é quase sempre igual a +5 volts nesse tipo de transistor. Quando V in ultrapassar o tal valor crítico, o transistor comuta e passa a agir como um fio, fazendo com que V out seja conectado logicamente à terra (por convenção, 0 volt). O ponto fundamental é que, quando V in estiver no nível lógico baixo, V out estará no nível alto, e vice-versa. Portanto, esse circuito funciona como um inversor, convertendo um nível lógico 0 na entrada para o nível lógico 1 na saída, e um nível lógico 1 na entrada para um nível lógico 0 na saída. O circuito tem um resistor (representado pela linha serrilhada), cuja finalidade é limitar a quantidade de corrente drenada pelo transistor, para impedir que uma corrente muito alta venha a queimar o dispositivo. O tempo de chaveamento de um estado para outro é da ordem de poucos nanosegundos. 23

24 +Vcc +Vcc +Vcc Emissor V out V out V out V in V 1 V 1 V2 Base Coletor V 2 (a) (b) (c) Na figura B, dois transistores são ligados em série. Se tanto V1 quanto V2 estiverem no nível lógico alto, ambos os transistores vão conduzir e V out vai assumir o nível lógico baixo. Se qualquer uma das duas entradas estiver no nível baixo, o transistor correspondente a ela vai cortar, e a saída será alta. Em outras palavras, V out assumirá o nível lógico alto se, e só se, tanto V1 quanto V2 estiverem no nível alto. Na figura C, os dois transistores estão ligados em paralelo. Nessa configuração, se qualquer uma das entradas estiver no nível lógico alto, o transistor correspondente a ela vai conduzir, e jogar sua saída para a terra. Se ambas as entradas estiverem no nível baixo, a saída vai permanecer alta. Esses três circuitos, ou seus equivalentes, formam as três portas lógicas básicas, conhecidas como portas NOT, NAND e NOR, respectivamente. As portas NOT também são conhecidas como portas inversoras, ou inversor. É adotado como convenção associar o nível alto ao nível lógico 1, e o nível baixo ao nível lógico 0. Os símbolos usados para representar essas três portas lógicas aparecem na figura abaixo: A NOT NAND NOR AND OR A A A A X X X X B B B B X A X A B X A B X A B X A B X (a) (b) (c) (d) (e) 24

25 As portas NAND e NOR precisam de dois transistores cada, enquanto as portas AND e OR precisam de três. Por essa razão, muitos computadores são baseados nas portas NAND e NOR em vez de sê-lo nas portas AND e OR, que são mais familiares. Todas as portas, exceto aporta inversora, podem ter mais de duas entradas, porém, na prática não se usa uma porta com mais de 8 entradas. 3.2 Circuitos Integrados As portas lógicas não são mais fabricadas e vendidas individualmente, mas em unidades conhecidas como Circuitos Integrados, muitas vezes chamadas de CIs ou chips. Um CI é um pedaço quadrado de silício, na qual algumas portas foram colocadas. Ao longo de todo o lado desses invólucros, existem pinos que podem ser inseridas em soquetes ou soldadas em placas de circuitos impressos. Cada pino dessas linhas está ligado à entrada ou à saída de alguma porta do chip, à alimentação (Vcc) ou à terra. Vcc Ressalto Terra (GND) O invólucro em geral possui um ressalto perto do pino 1 para orientar a contagem dos pinos. Decodificador O decodificador recebe na entrada um número de n bits, utilizando-o para selecionar exatamente uma de suas 2 n linhas de saída. 25

26 Somadores Não se pode imaginar um computador que não seja capaz de pelo menos somar números inteiros. Conseqüentemente, todo processador precisa ter um hardware para efetuar a adição de valores inteiros. A tabela-verdade para a soma de números inteiros de 1 bit é mostrada abaixo: A B Soma Vai-um (carry out) Esse circuito é conhecido como meio-somador, sendo só adequado para somar os bits de mais baixa ordem, pois não trata o bit vem-um. Para isto, existe o circuito somador completo. 1 Ex: e vai 1. + e vai

27 A tabela verdade do somador completo é mostrada abaixo: A B Vem-1 (carry in) Soma Vai-1 (carry out)

28 Para construir um somador para somar, por exemplo, duas palavras de 16 bits, basta replicar 16 vezes o circuito do somador completo. O vai-1 de uma posição é usado como vem-1 da posição seguinte. Unidades Aritméticas Lógicas A maioria dos computadores tem um único circuito para realizar as operações AND, OR e soma, chamado Unidade Aritmética Lógica, ou ULA. O circuito abaixo pode calcular uma de quatro funções (A AND B, A OR B, NB ou A + B) dependendo de o valor das linhas de seleção do decodificador. 28

29 4 Circuitos Integrados Circuitos eletrônicos digitais são construídos com uma pastilha de material semicondutor, chamado silício. A pastilha de silício (também chamada chip) é muito pequena e frágil, portanto não tem como ser vendida. Além disso, não há como uma pastilha de silício ser soldada, uma vez que seus terminais são muito pequenos. Dentro de uma pastilha de silício de um circuito integrado há o equivalente a milhões de transistores. O núcleo do processador Pentium II, por exemplo, tem o equivalente a 7,5 milhões de transistores. Com o avanço tecnológico, tem sido possível a construção de pastilhas cada vez menores e com maior densidade, isto é, maior concentração de transistores. Isso se deve à diminuição das trilhas que compõem a pastilha de silício. Observe o detalhe de uma finíssima trilha de um processador 386, que mede 1 µm. Um mícron (µm) equivale a 0, metro. Quanto menor a distância das trilhas da pastilha de silício, menos corrente é necessária para deslocar elétrons dentro das trilhas, o que significa: Que os elétrons chegam ao destino em menos tempo (ou seja, com maior velocidade). 29

30 Maior freqüência de operação (clock). Menos consumo elétrico. Menos produção de calor. Tensão de alimentação ( voltagem ) menor. A figura abaixo mostra um gráfico evolutivo da distância entre as trilhas das pastilhas de silício dos principais processadores para PCs lançados desde o ,5 2 1,5 1 0, / / / 386DX 1986 / 386SX 1989 / 486DX 1991 / 486SX 1993 / 486DX / Pentium (60 e 66 MHz) 1994 / 486DX / Pentium (90 a 120 MHz) 1995 / Pentium (133 a 200 MHz) 1995 / Pentium Pro 1997 / Pentium MMX 1997 / Pentium II (Klamath) 1998 / Pentium II (Deschuts) 1998 / Celeron 1998 / Pentium II Xeon 1999 / Penitum III (Katmai) 1999 / Penitum III Xeon (Tanner) 1999 / Penitum III (Coppermine) 1999 / Penitum III Xeon (Cascades) 2000 / Pentium Itanium 2002 Mckinley Quanto mais recente a data de lançamento, mais avançada é a tecnologia de construção do processador. Note que uma data de lançamento recente ou uma tecnologia de construção mais avançada não significa um processador melhor. Por exemplo, o 486DX4 foi lançado em março de 1994 usando uma tecnologia de 0,6µm, enquanto o Pentium foi lançado um ano antes, usando uma tecnologia de 0,8µm. Apesar de ter sido lançado depois e usar uma tecnologia de construção mais recente, o 486DX4 é um processador de 4 a geração, enquanto que o Pentium é um processador de 5 a geração. As pastilhas de silícios de todos os processadores encontrados em PCs até hoje utilizam trilhas de alumínio. No futuro, os fabricantes passarão a utilizar outros materiais que apresentam melhor condutibilidade elétrica, especialmente o cobre. Com isso, os elétrons trafegarão ainda mais rapidamente, permitindo o processador atingir freqüências de operação (clocks) ainda mais elevadas. 30

31 A pastilha de silício é disponibilizada comercialmente através da adição de um corpo plástico ou cerâmico. Ao conjunto damos o nome de circuito integrado. O encapsulamento do circuito integrado protege a pastilha de silício, possibilita terminais maiores para sua soldagem (ou encaixe) e melhora sua dissipação térmica. 4.1 Encapsulamento e Pinagem de Circuitos Integrados Os circuitos integrados podem estar disponíveis em vários padrões de encapsulamento e pinagem. O encapsulamento do circuito integrado pode ser plástico ou cerâmico e usar os padrões de pinagem DIP, LCC, QFP, PGA e BGA. No entanto, existem outros padrões de pinagem, mas os mencionados são os mais utilizados por processadores e outros circuitos como chipsets e memórias. DIP (Dual In-line Package) Esse é o tipo mais antigo de encapsulamento de circuitos integrados. Trata-se de duas linhas paralelas de terminais. O problema desse tipo de encapsulamento é em relação ao número de terminais: quanto mais terminais o circuito tiver, maior em comprimento ele será. 31

32 Há versões miniaturizadas desse encapsulamento, genericamente chamadas SOP (Small Outline Package). LCC (Leaded Chip Carrier) Esse tipo de encapsulamento possui terminais saindo pelos quatro lados do circuito integrado. Os terminais são dobrados para baixo, pois esse tipo de circuito é feito para ser encaixado em soquetes apropriados. A versão mais comum desse encapsulamento é a PLCC (Plastic Leaded Chip Carrier). 32

33 QFP (quad Flat Package) O QFP é bem parecido com o LCC, com a diferença de ser utilizado em circuito integrados que serão soldados diretamente em placas de circuitos impressos, sem a utilização de soquetes, através de uma técnica de soldagem especial (chamada SMT). Quando o circuito utiliza encapsulamento cerâmico, passa a ser chamado CQFP e, quando plástico, PQFP. Há variações desse tipo de encapsulamento, como a TQFP (Thin Plastic Quad Flat Package), em que o circuito integrado é mais fino. PGA (Pin Grid Array) Esse tipo de encapsulamento é bastante utilizado por processadores. O circuito integrado é quadrado com os terminais saindo por baixo, de modo a ser encaixado em um soquete apropriado. Tem diversas variações, de acordo com o material utilizado no encapsulamento. Quando este é cerâmico, o padrão passa a ser chamado CPGA, e quando plástico, PPGA. 33

34 BGA (Ball Grid Array) O padrão BGA é bastante usado por novos chipsets (circuitos de apoio da placa-mãe). Seus terminais ficam por baixo do circuito, sendo um PGA em miniatura. Esse padrão de pinagem e encapsulamento também é conhecido como PBGA (Plastic Ball Grid Array). 4.2 Tecnologia de Soldagem em Superfície Os circuitos integrados com encapsulamento QFP são soldados em placas de circuito impresso através de uma tecnologia especial, chamada SMT (Surface Mountage Technology). Essa tecnologia faz uso de modernos recursos de automação e robótica, permitindo que os terminais dos circuitos integrados sejam os menores possíveis uma vez que a inserção dos componentes será executada por robôs e a soldagem será feita através de uma técnica de calor indireto. 34

35 Essa técnica traz inúmeras vantagens, como o aumento da produtividade na linha de montagem, aumento de qualidade do produto e a miniaturização dos componentes eletrônicos. Por outro lado, o grande ponto negativo é a manutenção: técnicos em hardware em geral não têm acesso aos equipamentos necessários para a substituição de um circuito defeituoso soldado com essa tecnologia. Pino 1 Independentemente do tipo de encapsulamento utilizado, todo circuito integrado traz uma marcação de orientação de pinagem, para que o técnico não encaixe erroneamente o circuito integrado em seu soquete ou mesmo o solde em posição errada o que em ambos os casos, poderia danificar o circuito. Essa orientação normalmente consiste em um chanfrado na lateral do circuito integrado ou uma marcação circular em baixo-relevo, ambos indicando o primeiro pino, que deverá coincidir com a marcação existente, seja no soquete, onde o circuito integrado deverá ser encaixado, seja com alguma marca decalcada sobre a placa de circuito impresso. Essa marcação é genericamente chamada de marcação de pino 1. 35

36 Em soquetes, a marcação de pino 1 é normalmente caracterizada por um chanfrado em uma de suas laterais. 36

37 Mesmo com essa marcação, é possível encaixar processadores com pinagem PGA de forma errônea, o que pode fazer com que o processador se queime. Isso porque há pinos contendo tensões de alimentação não suportadas por outros pinos do processador. Processadores mais novos, como o Celeron PPGA, o Pentium III FC-PGA, o Duron e o Athlon PGA têm dois pinos de orientação, ou seja, dois chanfrados. Os pinos existentes perto desses chanfrados têm um distanciamento entre si diferente do normalmente usado pelos demais pinos do processador. Como conseqüência, o processador não encaixa se estiver de forma errada em seu soquete, já que os pinos existentes perto dos chanfrados não entram em nenhum outro orifício do soquete. 37

38 5 Evolução dos Microprocessadores Os primeiros microcomputadores lançados pela IBM, o IBM PC (Personal Computer) e o IBM PC XT (Extended Technology) eram baseados no microprocessador 8088 da família Intel. 5.1 Os Primeiros Microprocessadores da Intel O processador 4004 foi um dos primeiros processadores da Intel. Era um processador de 4 bits, capaz de executar aplicações simples, como calculadoras eletrônicas. Processador 4004 Lançamento 1971 Transistores 2300 Tecnologia 10 µ Barramento de dados 4 bits Barramento de endereços 10 bits Capacidade de endereçamento 640 bytes Clock 0,1 MHz MIPS 0,06 A tabela acima mostra algumas características do processador Seus minúsculos transistores mediam 10 mícrons, ou seja, 1 centésimo de milímetro. Parecem bem pequenos, mas ainda são 100 vezes maiores que os encontrados nos processadores atuais. Além do clock do processador, a tabela indica também a sua velocidade medida em MIPS (Milhões de Instruções Por Segundo). Posteriormente, a Intel lançou o processador 8008, sendo o primeiro processador Intel de 8 bits. Era bem superior ao 4004, e foi utilizado nos primeiros microcomputadores. Ainda eram extremamente caros, portanto não estavam ao alcance do grande público. Eram usados em calculadoras, terminais de vídeo, máquinas industriais e aplicações que envolviam manipulação de caracteres. Processador 8008 Lançamento 1972 Transistores 3500 Tecnologia 10 µ Barramento de dados 8 bits Barramento de endereços 14 bits Capacidade de endereçamento 16 Kb Clock 0,2 MHz MIPS 0,06 38

39 O primeiro processador de 8 bits a fazer sucesso comercial foi o Era mais poderoso que o 8008, e seu custo era menor. Foi muito usado em microcomputadores simples, equipados com modestas quantidades de memória. O principal microcomputador a utiliza-lo foi o Altair 8080, o primeiro de todos os PCs. Eram programados em linguagens BASIC e Assembly. Naquela época não existiam programas prontos, como utilitários e aplicativos. Cabia ao usuário criar os programas de seu interesse. Processador 8080 Lançamento 1974 Transistores 6000 Tecnologia 6 µ Barramento de dados 8 bits Barramento de endereços 16 bits Capacidade de endereçamento 64 Kb Clock 2 MHz MIPS 0,06 Consumo 1,5 W Na época do 8080, a AMD era uma parceira de Intel. A AMD fabricava sob licença da Intel, processadores semelhantes. O 8080 era fabricado pela AMD com o nome de AM9080. Em 1976, a Intel lançou o processador 8085, que era basicamente um 8080 com alguns pequenos melhoramentos. Era um pouco mais rápido (1,25 MHz), tinha entradas diretas para quatro interrupções, sem a necessidade de uso de um controlador externo, e incorporava dois pinos (SID e SOD) que dispensavam o uso de uma interface serial avulsa. Suas instruções eram inteiramente compatíveis com as do Utilizavam uma única tensão de alimentação com +5 volts, ao contrário do 8080, que exigiam duas tensões: +5 e +12 volts. Processador 8085 Lançamento 1976 Transistores 6500 Tecnologia 3 µ Barramento de dados 8 bits Barramento de endereços 16 bits Capacidade de endereçamento 64 Kb Clock 5 MHz MIPS 0,37 Consumo 1,5 W A empresa Zilog lançou os processadores Z80 e o NSC800, empresa esta concorrente da Intel. O processador Z80 era totalmente compatível com o 8080 em termos de software, ou seja, qualquer programa que funcionava no 8080, 39

40 funcionava também no Z80, funcionava também no Z80. Apesar de também ter barramento de dados de 8 bits e endereços de 16 bits, o Z80 tinha várias novas instruções que não estavam presentes no 8080 (158 instruções, contra apenas 78 do 8080). Utilizando essas instruções era possível criar programas mais rápidos e mais compactos. O Z80 fez um sucesso comercial maior que o do 8080 e do 8085, e passou a ser utilizado em vários computadores, como o TRS-80 e o Sinclair. A maioria dos microprocessadores de 8 bits produzidos no Brasil até meados da década de 1980 eram cópias do TRS-80. O NSC800 era um processador similar ao Z80, produzido pela National. Executava as mesmas instruções do Z80, mas era compatível pino a pino com o Dessa forma, computadores baseados no 8085 podiam ter em seu lugar o NSC800. Processadores Z80 e NSC800 Barramento de dados Barramento de endereços Capacidade de endereçamento Clock 8 bits 16 bits 64 Kb 4 MHz 5.2 Os Microprocessadores 8086 e 8088 Os microprocessadores 4004, 8008, 8080 e 8085 foram os primeiros a serem lançados pela Intel, no entanto o grande avanço foi feito quando a Intel lançou o O 8086 é um microprocessador capaz de acessar até 1 MB de memória e trabalhar com palavras binárias de 16 bits. Inicialmente lançado em uma versão de 5 MHz, o 8086 era consideravelmente mais veloz que os processadores de 8 bits. Posteriormente, foi produzido nas versões de 8 e 10 MHz. O 8086 era cerca de 10 vezes mais veloz que o 8080, apesar do seu clock ser apenas 5 vezes superior, graças à sua arquitetura mais avançada de 16 bits, contra apenas 8 do : 5 MHz : 8 MHz : 10 MHz Porém, havia um problema: apesar de ser um processador mais avançado do que todos os existentes na época, não havia outros circuitos que trabalhassem com palavras binárias de 16 bits. 40

41 Processador 8086 Lançamento 1978 Transistores Tecnologia 3 µ Barramento de dados 16 bits Barramento de endereços 20 bits Capacidade de endereçamento 1 MB Clock 10 MHz MIPS 0,75 Consumo 2,5 W Nesta época, todos os circuitos periféricos de apoio ao microprocessador trabalhavam com 8 bits. Assim, a Intel tinha duas alternativas: ou lançava circuitos de apoio que conseguissem trabalhar com palavras de 16 bits (o que tornaria qualquer projeto caríssimo, o custo de se ter uma memória RAM com barramento de 16 bits era exatamente o dobro do custo de se ter uma memória RAM com barramento de 8 bits) ou reformulava o microprocessador. Optou-se por reformular o microprocessador. Então, foi criado o 8088, um 8086 piorado. Em termos de software, os dois são totalmente compatíveis. Em hardware, entretanto, há uma diferença substancial: quando o microprocessador 8088 troca dados com o meio externo, ele troca em palavras de 8 bits. Isto significa que ele seria totalmente compatível com os circuitos já existentes (e, principalmente, baratos). Quando o 8088 precisa ler ou escrever uma palavra de 16 bits externamente a ele, ele quebra a palavra de 16 bits em duas de 8. Assim, podese classificar o 8088 como um microprocessador capaz de trabalhar internamente com palavras de 16 bits, porém externamente apenas com palavras de 8 bits. O 8088 utilizava o encapsulamento DIP e pelo fato de usar todo o hardware para 8 bits existente na sua época: placas, memórias e chips em geral, este processador foi escolhido pela IBM para ser usado no seu IBM PC, no início da década de Pouco tempo depois, a IBM lançou uma versão melhorada do IBM PC, chamado IBM PC XT (extended Technology). Sua tecnologia consistia no uso de um disco rígido de 10 MB (o PC original só podia armazenar dados em disquetes ou em fitas cassetes) e maior quantidade de memória RAM, 256 Kb. Processador 8088 Lançamento 1979 Transistores Tecnologia 3 µ Barramento de dados 8 bits Barramento de endereços 20 bits Capacidade de endereçamento 1 MB Clock 10 MHz MIPS 0,75 Consumo 2,5 W 41

42 5.3 O O primeiro micro PC a utilizar o processador foi o PC AT (Advanced Technology), lançado em A principal diferença entre o e o 8088 é o fato de o ser um processador verdadeiramente de 16 bits. O 8088, apesar de ser um processador de 16 bits internamente (isto é, suas instruções e dados tinham 16 bits de comprimento), só acessava a memória RAM através de um barramento de 8 bits. Com isso, o desempenho do era, no mínimo, duas vezes maior que o do 8088, já que era capaz de transferir 16 bits por vez para a memória RAM, enquanto que o 8088 só conseguia transferir oito. Na época de lançamento do já existiam circuitos de apoio de 16 bits no mercado, e a criação de um computador usando esse processador já não era mais tão cara. O resgatava, portanto, o projeto original do 8086 a ainda trazia vários outros recursos. A começar pelo acesso à memória, cujo limite passou de 1 MB para 16 MB. Foi inicialmente lançado em uma versão de 6 MHz, e depois nas versões de 8, 10 e 12 MHz. Com 8 MHz, era quase seis vezes mais veloz que usado no IBM PC XT. Através da técnica memória virtual, era possível fazer com que o processador pensasse que havia mais memória RAM instalada no micro, simulando, em um arquivo no disco rígido (chamado arquivo de troca ou swap file), essa memória extra. A multitarefa também era um dos novos recursos introduzidos com o 80286, juntamente com o recurso de proteção de memória. Parece óbvia a necessidade de haver outras instruções, mais poderosas, inclusive para o gerenciamento de todos os novos recursos do 80286, além das instruções originalmente introduzidas no O conjunto de instruções do deveria ser, portanto, aumentado. 42

43 No entanto, como foi visto no passado, aumentar o conjunto de instruções de processador faz com que o mesmo se torne um novo processador. Processadores diferentes são incompatíveis. Em outras palavras, tornar um mais poderoso trazia a desvantagem de torná-lo incompatível com os processadores usados nos primeiros PCs (8086 e 8088). Obviamente isso não parece muito inteligente, pois um não poderia executar programas escritos para o 8086 e, entre esses programas, o próprio sistema operacional. Para que isso não acontecesse, a Intel criou dois modos de operação bem distintos para os seus processadores a partir do 80286: o modo real e o modo protegido. Outros fabricantes, além da Intel, fabricavam o 80286, sob licença da Intel (os outros fabricantes alugavam os planos de fabricação do processador). Assim, pode-se encontrar processadores 286 da AMD e da Harrys com marcação de copyright da Intel. Internamente todos os processadores 286 são exatamente iguais, independente de quem seja o fabricante. A Intel deixou de produzir o 286 quando o 386 passou a dominar o mercado, mas outras empresas continuaram produzidos processadores 286, com clocks superiores, como 16 e 20 MHz. Modo Real Quando está trabalhando no modo real, o processador se porta exatamente igual a um 8086, tendo o mesmo conjunto de instruções e acessando somente 1 MB de memória. Nenhum recurso extra é conseguido nesse modo de operação. Todos os têm um 8086 embutido em seu interior, o qual chamamos de modo real. Programas escritos para o só podem ser executados em modo real. Não importa qual o processador se tenha, não importa quanta memória RAM se tenha, se o processador estiver operando no modo real, o micro só 43

44 reconhece 1 MB de RAM e utiliza somente as instruções presentes no 8086, tornando-se um XT mais rápido. De modo a preservar total compatibilidade com o primeiro PC, o sistema operacional DOS só funciona no modo real, não importando em que micro esteja sendo executado. Quando o micro é ligado, o processador encontra-se em modo real. Através de uma instrução especial, o processador passa do modo real para o modo protegido. Modo Protegido O processador, no modo protegido, consegue atingir o máximo de seu desempenho. A começar pelo seu conjunto de instruções que passa a ser mais complexo. O modo protegido permite diversos recursos extras avançados, entre eles: - Memória Virtual: Permite que o processador simule memória RAM em um arquivo do disco rígido (arquivo de troca, ou swap file). - Proteção de memória: Permite que programas sejam isolados em áreas próprias na memória RAM, impedindo que um programa invada a área do outro. - Multitarefa: Como cada programa ocupa uma área isolada em memória com o esquema de proteção de memória, o processador pode executar um pouco de cada programa. Como o processador é muito rápido, o usuário tem a impressão de que todos os programas abertos estão sendo executados simultaneamente. Poderia-se facilmente escrever um programa de modo protegido, mesmo utilizando o DOS, um sistema operacional de modo real, pois bastaria uma instrução para que o processador mudasse de modo real para modo protegido. Entretanto, o tem um grande erro técnico. Apesar de ter uma instrução para passar do modo real para o protegido, não tem nenhuma instrução para passar do modo protegido de volta para o real. Para voltar o processador do modo protegido para o real, era necessário dar um reset na máquina. Diversas funções em um programa não são feitas pelo próprio programa, mas sim pelo sistema operacional, por exemplo, abrir ou gravar um arquivo. O sistema operacional mais utilizado na época era o DOS que trabalha somente em modo real. Para acessar as sub-rotinas desse sistema operacional, o processador deve estar obrigatoriamente em modo real. Escrever um programa para o modo protegido do significava que não se poderia acessar nenhuma sub-rotina do DOS, pois o processador não poderia chavear de volta para o modo real! Embora o tenha o modo protegido, ele foi muito pouco utilizado, pois precisaria de um sistema operacional que trabalhasse especificamente nesse modo de operação (como foi o caso de uma determinada versão do sistema operacional OS/2 para o modo protegido do 80286). Em 99,99% das vezes, o

45 era usado no modo real, ou seja, como um XT mais rápido, desperdiçando todos os seus recursos mais avançados. Freqüência de Operação A freqüência de operação máxima do microprocessador vem estampada diretamente sobre seu invólucro. Assim, um é um 286 capaz de trabalhar sob a freqüência de operação máxima de 12 MHz. Processador Lançamento 1982 Transistores Tecnologia 1,5 µ Barramento de dados 16 bits Barramento de endereços 24 bits Capacidade de endereçamento 16 MB Clock 20 MHz MIPS 3 Consumo 3,3 W Co-processador Matemático O co-processador matemático desenvolvido para trabalhar em conjunto com o foi o Enquanto o tem encapsulamento PLCC, o ainda tem encapsulamento DIP, lembrando o antigo *Dica de montagem: Na instalação, além de tomar cuidado para não inverter a posição do co-processador (pino 1), deve-se verificar se o co-processador foi 45

46 projetado para trabalhar sob a mesma freqüência de operação do ou seja, para um de 12 MHz, utilizar um de 12 MHz ou superior. 5.4 O O processador é considerado um processador de 3º geração da família Intel. Durante seu ciclo de vida, foi lançado em versões de 16, 20, 25, 33 e finalmente, 40 MHz. Entre 1992 e 1993, quando começou a popularização dos PCs no Brasil, eram comuns os PCs equipados com o 386DX-40. Este processador é considerado muito importante, pois serve de base para todos os demais projetos de processadores da Intel e demais fabricantes existentes, isto é, todos os microcomputadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 386 como ponto de partida. Havia pelo menos 3 motivos técnicos bastante fortes para que isso acontecesse: O não tem a limitação do em relação o seu modo protegido, ou seja, há tanto instruções para ir ao modo protegido quanto para voltar ao modo real. A criação do virtual 8086 permitiu que programas escritos para o 8086 (isto é, programas de modo real) pudessem ser utilizados diretamente dentro do modo protegido. O manipula dados de 32 bits, além de ter instruções mais poderosas, o que o torna mais rápido. Além disso, estando em seu modo protegido, o consegue acessar até 4 GB de memória RAM muito mais do que qualquer micro necessita. Nesta época, todos os processadores eram iguais internamente, independentemente de seu fabricante. Assim, um 386 da AMD era internamente absolutamente igual a um 386 da Intel, como ocorreu com o

47 No 386, o procedimento de instruções (busca de instruções, decodificação, busca de dados e execução) é efetuado por uma unidade autônoma. Por exemplo, a busca de instruções e dados é feita pela unidade de pré-busca, a decodificação da instrução é feita pela unidade de decodificação e a execução é efetuada pela unidade de execução. Como cada passo para a execução de uma instrução é feito por uma unidade diferente, as demais unidades que não estivessem envolvidas em um determinado momento do processo de execução da instrução ficariam ociosas. Por exemplo, enquanto a instrução estivesse sendo executada na unidade de execução, a unidade de decodificação e a unidade de pré-busca ficariam ociosas. Modo Protegido A grande inovação trazida pelo processador 386 foi seu modo protegido de 32 bits, que é utilizado por todos os processadores a partir de então. Até a 7º geração de processadores Intel (incluindo também os processadores das empresas concorrentes), os processadores x86 não deixam de ser 386s turbinados, onde novos recursos foram incluídos internamente apenas para aumentar o desempenho do processador. Quando o processador é ligado, está em modo real, ou seja, operando como se fosse um antigo Através de uma instrução dada por um programa ou pelo sistema operacional, o processador muda para o modo protegido, onde tem acesso a todo o seu potencial. As principais características do modo protegido usado nos processadores a partir do 386 são: Memória Virtual: Permite que o processador simule memória RAM em um arquivo do disco rígido (arquivo de troca, ou swap file). Proteção de memória: Permite que programas sejam isolados em áreas próprias na memória RAM, impedindo que um programa invada a área do outro. Multitarefa: Como cada programa ocupa uma área isolada em memória com o esquema de proteção de memória, o processador pode executar um pouco de cada programa. Como o processador é muito rápido, o usuário tem a impressão de que todos os programas abertos estão sendo executados simultaneamente. Modo virtual 8086: O modo protegido é incompatível com o modo real. Através do modo virtual 8086, o processador pode trabalhar como se fosse vários processadores 8086 com 1 MB de memória (ou seja, um XT) simultaneamente. Isto significa que se pode ter, ao mesmo tempo, um ou mais programas de 47

48 modo real sendo executados simultaneamente dentro do modo protegido, cada programa achando que está trabalhando em um processador 8086 puro. 386DX versus 386SX Quando o microprocessador foi lançado, era caro, assim como ocorre com todos os processadores recém-lançados. Além disso, um processador que trabalha externamente com dados de 32 bits necessita de circuitos periféricos de apoio que trabalhem também com dados de 32 bits. E isso significava, na época, circuitos integrados novos e caros. Um microcomputador baseado no era, portanto, muito caro. Para baratear o custo de produção de microcomputadores baseados no 80386, a Intel resolveu compatibilizar o processador aos circuitos de apoio (chipsets) já existentes na época e que eram bem mais baratos. Esses circuitos integrados de apoio eram os mesmos amplamente utilizados em projetos de placa-mãe baseadas no 80286, portanto capazes de trabalhar com dados de 16 bits. Era mais ou menos a mesma idéia adotada pela Intel quando reformulou o 8086 e o lançou como 8088, de modo que fosse compatível com os circuitos já existentes. Portanto, uma versão do mais barata e com desempenho inferior foi criada e lançada no mercado. Essa versão trabalhava com dados de 32 bits internamente, porém enviava dados de 16 bits ao meio externo. Para diferenciá-la do verdadeiro, a Intel teve de nomeá-la de alguma forma. E isso se deu na forma do sufixo SX, que originalmente representava single word (16 bits). O verdadeiro passou a ter o sufixo DX, que originalmente representava double word (32 bits). 48

49 Além disso, o 80386SX só acessa até 16 MB de RAM. Era óbvia a idéia de adequar o processador a todos os circuitos integrados de apoio utilizados no e, principalmente, ao barramento ISA. Alguns fabricantes permitiam, inclusive, a ligação do 80386SX em uma placa-mãe originalmente projetada para 80286, através de uma sobreplaca adaptadora inserida no soquete PLCC do Processador DX Lançamento 1985 Transistores Tecnologia 1,5 µ / 1 µ Barramento de dados 32 bits Barramento de endereços 32 bits Capacidade de endereçamento 4 GB Clock MHz MIPS 6-15 Consumo 2,5 W Processador SX Lançamento 1988 Transistores Tecnologia 1,5 µ / 1 µ Barramento de dados 16 bits Barramento de endereços 24 bits Capacidade de endereçamento 16 MB Clock MHz MIPS 4-10 Consumo 2,5 W 49

50 Co-processadores Matemáticos O co-processador a ser utilizado pelo depende exclusivamente do modelo de processador que sendo utilizado. Uma placa-mãe 386SX tem como opção utilizar o co-processador 80387SX e a placa-mãe 386DX pode utilizar o coprocessador 80387DX. A pinagem utilizada pelo 387SX é PLCC, enquanto a pinagem do 387DX é PGA. Isso significa que não há como encaixar um co-processador no local do outro, por engano. 50

51 * Dica de montagem: na instalação de um co-processador matemático, deve-se prestar atenção a sua freqüência de operação máxima (aquela que vem estampada em seu invólucro), que deverá ser igual ou superior à freqüência de operação do processador principal. Outras empresas, além da Intel, fabricam co-processadores matemáticos para serem utilizados com o Além da Intel, a Cyrix, Chips and Technologies, IIT, ULSI e Weitek também produziram suas próprias versões de a maioria com velocidade de processamento maior do que o original da Intel. Comparando-se os co-processadores da IIT e da ULSI e o computador sem o co-processador, temos o resultado abaixo. Sem co-processador Co-processador ULSI Co-processador IIT MIPS Whetstone Há uma grande diferença em cálculos quando o micro passa a ter um coprocessador matemático e desempenhos diferentes quando se utilizam coprocessadores de marcas diferentes. O teste foi feito com o programa Checkit 3.0 e os valores estão em MIPS Whetstone. Cache de Memória A partir do 80386, a memória RAM do micro começa a ficar lenta demais em relação ao processador. O processador não conseguirá, por exemplo, enviar dois dados seguidos diretamente à memória. Por esta ser mais lenta que o processador, quando o segundo dado for enviado, a memória ainda estará armazenando o primeiro dado, portanto não estará pronta para recebê-lo. O processador precisará esperar. Essa espera chama-se wait state (estado de espera) e ordena que o processador espere n pulsos de clock depois do envio ( ou recebimento) de dados à memória. O processador está constantemente acessando a memória, portanto utiliza wait states em todo o acesso que fizer a ela. A utilização constante de wait states faz com que o desempenho do micro seja reduzido drasticamente, já que, por diversas vezes, o processador não ficará fazendo absolutamente nada, esperando somente a memória ficar pronta para receber dados. Em outras palavras, o 51

52 processador reduz sua velocidade para ficar com a mesma velocidade da memória. A verdadeira solução para o acesso à lenta memória RAM é a utilização de um recurso chamado cache de memória. Esse recurso utiliza na placa-mãe uma pequena porção de memória de alta velocidade (chamada memória cache, que é tão rápida quanto o processador) e um circuito controlador especial, o controlador de cache, presente no chipset da placa-mãe. O controlador de cache lê o conteúdo da RAM e copia uma pequena porção para a memória cache. Quando o processador precisa ler algum dado da memória, provavelmente lerá a cópia existente na memória cache, e não mais o dado presente na RAM, não necessitando utilizar wait states para a leitura. Com esse recurso, o micro ganha velocidade e é quase impossível trabalhar em um micro moderno que não tenha cache de memória. Para que se tenha uma idéia, em pelo menos 80% das vezes que o processador faz um acesso à memória RAM, os dados são lidos do cache de memória, e não da memória RAM em si. Em teste realizados com um processador mais moderno, um Pentium, com cache e sem cache de memória instalado, o resultado foi surpreendente: sem cache de memória, o micro ficou 30% mais lento para processamento, 20% mais lento para operações de disco e o vídeo ficou 10% mais lento. Como a memória cache é cara, utiliza-se apenas uma pequena porção desse tipo de memória na placa-mãe. Valores típicos são 64KB, 128KB, 256KB e 512 KB. Normalmente não se utilizava cache no 386SX. 52

53 53

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01 Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções

Leia mais

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores UNIP - UNIVERSIDADE PAULISTA Arquitetura de computadores ORGANIZAÇÃO DE COMPUTADORES Bibliografia: MONTEIRO, M. A. Introdução à organização de computadores. 4 ed. RJ. LTC 2001. TANEMBAUM, A. S. Organização

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: O Computador como uma Máquina Multinível (cont.) José Gonçalves - LPRM/DI/UFES Introdução à Engenharia de Computação Máquina Multinível Moderna Figura 1 Máquina

Leia mais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: O Computador como uma Multinível José Gonçalves - Introdução à Engenharia de Computação Visão Tradicional Monitor Placa-Mãe Processador Memória RAM Placas

Leia mais

Conceitos e Evolução Capítulos 1 e 2

Conceitos e Evolução Capítulos 1 e 2 Aula 2 ARQUITETURA DE COMPUTADORES Conceitos e Evolução Capítulos 1 e 2 Prof. Osvaldo Mesquita E-mail: [email protected] 1/48 CONTEÚDO DA AULA Conceitos Importantes O que é arquitetura de computadores?

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas (1945 1955) Primeira Geração Válvulas (1945 1955)

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas (1945 1955) Primeira Geração Válvulas (1945 1955) Sumário M. Sc. Luiz Alberto [email protected] www.professorluizalberto.com.br Organização de Computadores Módulo 3 1. História da Arquitetura de Computadores - Continuação 1.1. 1.2. Segunda Geração Transistores

Leia mais

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: orgearq20101.wordpress.

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress. Abstrações e Tecnologias Computacionais Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: orgearq20101.wordpress.com Agenda Introdução Sistemas Computacionais Arquitetura X

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Organização e Arquitetura de Computadores. Hugo Barros [email protected]

Organização e Arquitetura de Computadores. Hugo Barros email@hugobarros.com.br Organização e Arquitetura de Computadores Hugo Barros [email protected] RISC X SISC RISC: Reduced Instruction Set Computer Nova Tecnologia para máquinas de alta performance; Máquina com um conjunto

Leia mais

2. NÍVEL DE SISTEMA OPERACIONAL

2. NÍVEL DE SISTEMA OPERACIONAL 2. NÍVEL DE SISTEMA OPERACIONAL Nos períodos anteriores foram mostrados os níveis iniciais da organização de um computador, quando vimos em Circuitos Digitais os detalhes do Nível 0 (zero) de Lógica Digital.

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade Introdução É sabido que os processos rodam em processadores. Nos sistemas tradicionais existe somente um único processador, de forma que não há dúvida a respeito de como ele deve ser usado. Em um sistema

Leia mais

RISC X CISC - Pipeline

RISC X CISC - Pipeline RISC X CISC - Pipeline IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 25 e 26/30 Prof. Msc. Antonio Carlos Souza Referências

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Tópicos Processadores Memória Principal Memória Secundária Entrada e

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores Introdução à Arquitetura de Computadores Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Memórias O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Essas informações são guardadas eletricamente em células individuais. Chamamos cada elemento

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto [email protected]

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto [email protected] Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Medição tridimensional

Medição tridimensional A U A UL LA Medição tridimensional Um problema O controle de qualidade dimensional é tão antigo quanto a própria indústria, mas somente nas últimas décadas vem ocupando a importante posição que lhe cabe.

Leia mais

Marcos da Arquitetura de Computadores (1)

Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (2) Gerações de computadores Geração Zero Computadores Mecânicos (1642 1945) Primeira Geração Válvulas (1945 1955) Segunda

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

RESUMO DO LIVRO. A linguagem de máquinas e o custo são analisados antes do computador ser projetado. LINGUAGEM, NÍVEIS E MÁQUINA REAIS

RESUMO DO LIVRO. A linguagem de máquinas e o custo são analisados antes do computador ser projetado. LINGUAGEM, NÍVEIS E MÁQUINA REAIS RESUMO DO LIVRO Um computador digital é uma máquina com programas que, convertidos em instruções, podem facilitar a vida das pessoas. As instruções são simples, como some dois números. As instruções são

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 3- Memórias 4- Dispositivos

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

Projeto de Circuitos. Introdução ao Computador 2008/01 Bernardo Gonçalves

Projeto de Circuitos. Introdução ao Computador 2008/01 Bernardo Gonçalves Projeto de Circuitos Lógicos Introdução ao Computador 2008/01 Bernardo Gonçalves Sumário Da Álgebra de Boole ao projeto de circuitos digitais; Portas lógicas; Equivalência de circuitos; Construindo circuitos

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins Organização de Computadores 1 1 - INTRODUÇÃO Prof. Luiz Gustavo A. Martins Arquitetura Define os elementos que impactuam diretamente na execução lógica do programa. Corresponde aos atributos visíveis veis

Leia mais

Algoritmos DCC 119. Introdução e Conceitos Básicos

Algoritmos DCC 119. Introdução e Conceitos Básicos Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br [email protected] Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

1. INTRODUÇÃO. Computador Digital: É uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas.

1. INTRODUÇÃO. Computador Digital: É uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas. 1. INTRODUÇÃO Computador Digital: É uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas. Programa: É uma seqüência de instruções que descrevem como executar

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: Organização Básica de um Computador Digital Introdução à Engenharia de Computação 2 Componentes de um Computador Computador Eletrônico Digital É um sistema

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

Leia mais

Hamtronix CONTROLE REMOTO DTMF. CRD200 - Manual de Instalação e Operação. Software V 2.0 Hardware Revisão B

Hamtronix CONTROLE REMOTO DTMF. CRD200 - Manual de Instalação e Operação. Software V 2.0 Hardware Revisão B Hamtronix CRD200 - Manual de Instalação e Operação Software V 2.0 Hardware Revisão B INTRODUÇÃO Índice...01 Suporte On-line...01 Termo de Garantia...01 Em Caso de Problemas (RESET)...01 Descrição do Produto...02

Leia mais

Arquitetura de Computadores Moderna

Arquitetura de Computadores Moderna Arquitetura de Computadores Moderna Eduardo Barrére ([email protected]) DCC/UFJF Baseado no material do prof. Marcelo Lobosco Agenda Visão Geral Objetivos do Curso Ementa Bibliografia Avaliações

Leia mais

Professor: Venicio Paulo Mourão Saldanha E-mail: [email protected] Site: www.veniciopaulo.com

Professor: Venicio Paulo Mourão Saldanha E-mail: veniciopaulo@gmail.com Site: www.veniciopaulo.com Professor: Venicio Paulo Mourão Saldanha E-mail: [email protected] Site: www.veniciopaulo.com Formação: Graduando em Analises e Desenvolvimento de Sistemas (8º Período) Pregoeiro / Bolsa de Valores

Leia mais

Capítulo 1 Introdução

Capítulo 1 Introdução Capítulo 1 Introdução Programa: Seqüência de instruções descrevendo como executar uma determinada tarefa. Computador: Conjunto do hardware + Software Os circuitos eletrônicos de um determinado computador

Leia mais

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES

Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES Processador... 2 Clock... 5 Multiplicador de clock / FSB... 6 Memória Cache... 6 Processador O processador é o cérebro do

Leia mais

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Introdução à Sistemas Operacionais. Glauber Magalhães Pires Introdução à Sistemas Operacionais Glauber Magalhães Pires Agenda O que são sistemas operacionais? Histórico Primeira geração (1945-1955) Segunda geração (1955-1965) Terceira geração (1965-1980) Quarta

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 Índice 1. A Organização do Computador - Continuação...3 1.1. Processadores - II... 3 1.1.1. Princípios de projeto para computadores modernos... 3 1.1.2. Paralelismo...

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Alguma das vantagens e desvantagens dos computadores ópticos é apresenta a seguir.

Alguma das vantagens e desvantagens dos computadores ópticos é apresenta a seguir. Computação Óptica Introdução Um dos grandes obstáculos para aprimorar o desempenho dos computadores modernos está relacionado com a tecnologia convencional dos semicondutores, que está alcançando o seu

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Uma Abordagem com o Microcontrolador PIC 16F84 Nardênio Almeida Martins Novatec Editora Capítulo 1 Introdução Os microcontroladores estão presentes em quase tudo o que envolve

Leia mais

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias Visão Geral da Arquitetura de Computadores Prof. Elthon Scariel Dias O que é Arquitetura de Computadores? Há várias definições para o termo arquitetura de computadores : É a estrutura e comportamento de

Leia mais

Introdução a Organização de Computadores Aula 4

Introdução a Organização de Computadores Aula 4 1 Subsistemas de Memória 4.1 Introdução A memória é o componente de um sistema de computação cuja função é armazenar as informações que são (ou serão) manipuladas por esse sistema, para que as informações

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Descrição do Produto. Altus S. A. 1

Descrição do Produto. Altus S. A. 1 Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração

Leia mais

Organização de Computadores Software

Organização de Computadores Software Organização de Computadores Software Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 [email protected] www.univasf.edu.br/~marcus.ramos Objetivos: Entender

Leia mais

PROCESSADOR. Montagem e Manutenção de Microcomputadores (MMM).

PROCESSADOR. Montagem e Manutenção de Microcomputadores (MMM). PROCESSADOR Montagem e Manutenção de Microcomputadores (MMM). INTRODUÇÃO O processador é o C.I. mais importante do computador. Ele é considerado o cérebro do computador, também conhecido como uma UCP -

Leia mais

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador. Resumo 01 O que é um processador? O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador. Os processadores atualmente são encapsulados

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 3

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 3 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 3 Índice 1. História da Arquitetura de Computadores - Continuação..3 1.1. Primeira Geração Válvulas (1945 1955)... 3 1.2. Segunda Geração Transistores (1955 1965)...

Leia mais

Curso Técnico em Redes de computadores. Evolução Histórica dos Computadores

Curso Técnico em Redes de computadores. Evolução Histórica dos Computadores Curso Técnico em Redes de computadores Evolução Histórica dos Computadores 1 O conceito de efetuar cálculos com algum tipo de equipamento data pelo menos do século V a.c, com os babilônios e sua invenção

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 01 - Introdução Edirlei Soares de Lima O que é um sistema operacional? Um computador moderno consiste em: Um ou mais processadores; Memória principal;

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto [email protected]

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto [email protected] Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Manual do Teclado de Satisfação Online WebOpinião

Manual do Teclado de Satisfação Online WebOpinião Manual do Teclado de Satisfação Online WebOpinião Versão 1.2.3 27 de novembro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação

Leia mais

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização

Leia mais

Trabalho sobre No-breaks

Trabalho sobre No-breaks Trabalho sobre No-breaks Grupo: Leandro Porto Cristiano Porto Diego Martins Diogo Rubin Os nobreaks protegem os equipamentos contra quatro problemas principais causados pela variação da energia elétrica.

Leia mais

Introdução à Arquitetura de Computadores. Prof.ª Ms. Elaine Cecília Gatto

Introdução à Arquitetura de Computadores. Prof.ª Ms. Elaine Cecília Gatto Introdução à Arquitetura de Computadores Prof.ª Ms. Elaine Cecília Gatto 1 O nome refere-se ao matemático John Von Neumann, que foi considerado o criador dos computadores da forma como são projetados até

Leia mais

Aula 11. 1. Memória principal e 2. Memória de armazenagem em massa.

Aula 11. 1. Memória principal e 2. Memória de armazenagem em massa. Aula 11 Memórias Semicondutoras Introdução Em termos gerais, a memória de um computador pode ser dividida em dois tipos: 1. Memória principal e 2. Memória de armazenagem em massa. A memória principal é

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal

Leia mais

Invenções Implementadas por Computador (IIC) Patentes

Invenções Implementadas por Computador (IIC) Patentes Invenções Implementadas por Computador (IIC) Patentes O que é uma IIC? Uma IIC é uma invenção que recorre a um computador, a uma rede de computadores ou a qualquer outro dispositivo programável (por exemplo

Leia mais

Algoritmos e Programação Parte Teórica

Algoritmos e Programação Parte Teórica Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte Teórica Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida.

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida. 8 0 Introdução Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida. Isso acontece por pelo menos três motivos técnicos: 0 80386

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

HISTÓRIA DA COMPUTAÇÃO

HISTÓRIA DA COMPUTAÇÃO HISTÓRIA DA COMPUTAÇÃO Apesar da maior parte do público leigo considerar computação e computador termos necessariamente interligados, a história da computação é mais antiga do que o componente físico que

Leia mais

Evolução dos Processadores

Evolução dos Processadores Evolução dos Processadores Arquitetura Intel Arquitetura x86 Micro Arquitetura P5 P6 NetBurst Core Processador Pentium Pentium Pro Pentium II Pentium III Pentium 4 Pentium D Xeon Xeon Sequence Core 2 Duo

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

SSC510 Arquitetura de Computadores. 2ª aula

SSC510 Arquitetura de Computadores. 2ª aula SSC510 Arquitetura de Computadores 2ª aula PROFA. SARITA MAZZINI BRUSCHI CISC E RISC ARQUITETURA MIPS PIPELINE Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções

Leia mais

Paralelismo a Nível de Instrução

Paralelismo a Nível de Instrução Paralelismo a Nível de Instrução É possível obter maior desempenho computacional com: tecnologias mais avançadas, tais como circuitos mais rápidos; melhor organização da CPU, tais como o uso de múltiplos

Leia mais

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO? Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais