Í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

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: oswaldo.mesquita@gmail.com 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 lasf.bel@gmail.com 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: andreluis.ms@gmail.com 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: andreluis.ms@gmail.com 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@hugobarros.com.br

Organização e Arquitetura de Computadores. Hugo Barros email@hugobarros.com.br Organização e Arquitetura de Computadores Hugo Barros email@hugobarros.com.br 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 andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 edilms@yahoo.com 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 (bfmartins@inf.ufes.br) 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 (eduardo.barrere@ice.ufjf.br) 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: veniciopaulo@gmail.com 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: veniciopaulo@gmail.com 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 marcus.ramos@univasf.edu.br 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 andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 jorge.cavalcanti@univasf.edu.br 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