ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br



Documentos relacionados
Capítulo 1 Introdução

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

Técnicas de Manutenção de Computadores

RISC X CISC - Pipeline

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

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

CPU Unidade Central de Processamento. História e progresso

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

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

Aula 26: Arquiteturas RISC vs. CISC

SIS17 - Arquitetura de Computadores

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

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

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

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

Fundamentos de Hardware

Sistemas Computacionais II Professor Frederico Sauer

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

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

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

Processadores. Guilherme Pontes

Sistema de Computação

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Arquitetura e Organização de Computadores

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

Microprocessadores II - ELE 1084

Arquitetura e Organização de Computadores

3. Arquitetura Básica do Computador

Aula 11 27/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Arquitetura de Computadores Prof. Carlos Guerber PROCESSADOR INTRODUÇÃO

Processadores clock, bits, memória cachê e múltiplos núcleos

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Unidade 13: Paralelismo:

1. NÍVEL CONVENCIONAL DE MÁQUINA


Capítulo 2. AMD K6, K6-2, K6-III Super 7 Cyrix MII / 6x86 / 6x86MX Super 7 ou Socket 7 AMD K5, Pentium, Pentium MMX Socket 7

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

SIS17-Arquitetura de Computadores

Microprocessadores. Prof. Leonardo Barreto Campos 1


Arquiteturas RISC. (Reduced Instructions Set Computers)

Processadores. Prof. Alexandre Beletti Ferreira

ARQUITETURA DE COMPUTADORES

Evolução das CPUs: Dual e Quad Core

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

Arquitetura de Von Neumann e os Computadores Modernos

Tecnologia PCI express. Introdução. Tecnologia PCI Express

ARQUITETURA DE COMPUTADORES

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

BARRAMENTO DO SISTEMA

Hardware. Objetivos da aula. Fornecer exemplos de processadores Intel. Esclarecer as diferenças e as tecnologias embutidas nos processadores Intel.

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

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

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Evolução dos Processadores

1. CAPÍTULO COMPUTADORES

MULTICORE. Sávio R. A. dos Santos Rosa IC - UNICAMP RA Bruno Cardoso IC - UNICAMP RA Tiago M. Fernandes IC - UNICAMP RA

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

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Introdução à Computação: Arquitetura von Neumann

Componentes de um Computador: Modelo Von Neumann

Calculadoras Mecânicas

Máquinas Multiníveis

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

ARTIGO IV PRINCIPAIS PARTES DA CPU

FACULDADE PITÁGORAS PRONATEC

Trabalho de: Alexandre / Paulo / Rui

Componentes de um Sistema de Computador

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Sistemas Operacionais

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

ENIAC (Electronic Numerical Integrator Analyzer and Computer)

Hardware de Computadores

Sumário. Velocidade do processador. Velocidade do processador. Velocidade do processador. Velocidade do processador. Manutenção de Hardware.

Sumário. Manutenção de Hardware. Clock

AULA1 Introdução a Microprocessadores gerais

Hardware Fundamental

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

Imagem retirada de documentações de treinamentos oficiais INTEL

O que é Arquitetura de Computadores?

Edeyson Andrade Gomes

Disciplina: Introdução à Informática Profª Érica Barcelos

CENTRAL PRCESSING UNIT

ARQUITETURA DE COMPUTADORES

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Curso de Instalação e Gestão de Redes Informáticas

Introdução a Informática. Prof.: Roberto Franciscatto

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Introdução à Arquitetura de Computadores

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

R S Q Tabela 17 - Tabela verdade NOR

ULA Sinais de Controle enviados pela UC

Comparativo de desempenho do Pervasive PSQL v11

Introdução aos Computadores

Transcrição:

- Aula 3 - ORGANIZAÇÃO DE SISTEMAS COMPUTACIONAIS - PROCESSADORES 1. INTRODUÇÃO Um computador eletrônico digital é um sistema composto por um conjunto de processadores, memórias e dispositivos de entrada/saída (I/O) interligados. Estes dispositivos são elementos-chave para o entendimento dos sistemas computacionais. O processador, também conhecido como CPU, é peça fundamental dos computadores. E não estamos falando apenas dos famosos PCs. Celulares, vídeo-games, smartphones, tablets: todos esses dispositivos precisam de processadores para funcionar. Esse componente tão vital é responsável por carregar e realizar as operações aritméticas e lógicas de que os programas de computador fazem uso. Portanto, nada funciona sem a famosa CPU. 2. EVOLUÇAO DOS PROCESSADORES A evolução dos computadores passa pela evolução dos processadores. O processador é considerado o cérebro de um computador eletrônico digital. Para compreender o estado da arte dos processadores é importante considerar a evolução dos processadores. 2.1. Precursores da CPU Moderna Os primeiros computadores, anteriores à década de 50, possuíam um diferencial considerável, se comparados com as máquinas de hoje: eles não eram capazes de armazenar programas. Alguns deles, como o ENIAC, que teve seu desenvolvimento iniciado em 1943, tinham inicialmente o plano de armazenamento de softwares em seu interior. Mas, para agilizar o lançamento da máquina, essa idéia acabou ficando para trás. 1

Figura 1 - ENIAC Em 1945, a idéia de uma unidade central de processamento capaz de executar diversas tarefas foi publicada por John Von Neumann. Chamado de EDVAC, o projeto desse computador foi finalizado em 1949. Essa é a origem dos primeiros modelos primitivos de processadores da forma como os conhecemos. Figura 2 - EDVAC 2

No início da década de 60, a IBM desenvolveu uma nova abordagem: planejou uma família de computadores que poderiam executar o mesmo software, com poder de processamento e preços diferentes. Com isso, os programas não seriam mais dependentes de máquina, mas compatíveis entre todos esses modelos. Pensando dessa forma a IBM criou um computador virtual conhecido como System/360, ou simplesmente S/360. 2.2. Processadores Modernos Nos modelos apresentados acima, os processadores ainda não eram compostos por uma unidade central, mas por módulos interconectados entre si. Foi só no início da década de 70 que surgiram as CPU s desenvolvidas totalmente em circuitos integrados e em um único chip de silício. 2.2.1. GERAÇÃO PRÉ-X86 O Intel 4004 foi o primeiro microprocessador a ser lançado, em 1971. Sendo desenvolvido para o uso em calculadoras, essa CPU operava com o clock máximo de 740 KHz e podia calcular até 92 mil instruções por segundo, ou seja, cada instrução gastava cerca de 11 microssegundos. Figura 3 - Intel 4004 Com o sucesso do 4004, a Intel desenvolveu o processador 8008, em 1972. Esse era uma CPU de 8 bits, com barramento externo de 14 bits e capaz de endereçar 16 KB de memória. Seu clock trabalhava na frequência máxima de 0,8 MHz. Esse modelo foi substituído, em 1974, pelo Intel 8080, que apesar de ainda ser um processador de 8 bits, podia executar, com algumas limitações, operações de 16 bits. O 8080 foi desenvolvido, originalmente, para controlar mísseis guiados. Tinha clock limite de 2 MHz, um valor muito alto para a época, era capaz de realizar centenas de milhares de operações por segundo e de endereçar até 64 KB de memória. 3

2.2.2. FAMÍLIA X86 DE 16 BITS A arquitetura x86, lançada em meados da década de 70, ainda serve como base para boa parte dos computadores atuais. O primeiro processador que aproveitou todo o seu potencial foi o Intel 8086, de 1978. Pela primeira vez, a velocidade do clock alcançava 5 MHz, utilizando instruções reais de 16 bits. O nome "x86" veio do fato de que o nome dos processadores que vieram depois do Intel 8086 também terminavam em "86". Ainda no mesmo ano, foi lançado o 8088, sucessor que possuía barramento externo de 8 bits, porém, com registradores de 16 bits e faixa de endereçamento de 1 MB, como no 8086. Esse foi o chip utilizado no IBM PC original. Figura 4 - Intel 8086 Nos anos seguintes, a Intel desenvolveu os modelos 80186 e 80188, criados para serem usados com sistemas embarcados. Em 1982, a capacidade de processamento chegou ao patamar de 6 e 8 MHz, com o Intel 80286 com um conjunto de instruções similar aos antecessores e nova organização de memória. Posteriormente, as empresas AMD e Harris Corporation conseguiram romper essa barreira, chegando a 25 MHz. Figura 5 - Intel 80286 de 8 MHz 4

2.2.3. CPUS DE 32 BITS (X86-32) Como o nome sugere, a x86-32 é arquitetura x86 de 32 bits, utilizada até hoje em muitos computadores. Grosso modo, podemos dizer que, com exceção de processadores de 64 bits e aqueles de arquitetura ARM, todos os outros existentes ainda hoje são herdeiros das características dessa geração. As CPUs 80386 e 80486, lançadas entre o meio e o fim da década de 80, trabalhavam com clocks que iam de 33 MHz a 100 MHz, respectivamente. O 80386 permitiu que vários programas utilizassem o processador de forma cooperativa, através do escalonamento de tarefas. Já o 80486 foi o primeiro a usar o mecanismo de pipeline, permitindo que mais de uma instrução fossem executadas ao mesmo tempo. Figura 6 - Processador 486 DX Para o 80486, existiram diversas versões, sendo que cada uma delas possuía pequenas diferenças entre si. O 486DX, por exemplo, era o top de linha da época e também a primeira CPU a ter co-processador matemático. Já o 486SX era uma versão de baixo custo do 486DX, porém, sem esse co-processador, o que resultava em um desempenho menor. 2.2.4. PENTIUM O primeiro Pentium (Intel), lançado em 1993, apresentava várias melhorias sobre o 80486, principalmente por uso da superescalabilidade, ou seja, a replicação de hardware para que mais instruções fossem executadas ao mesmo tempo. Seu clock inicial era de 100 MHz, o qual chegou a atingir 200 MHz com o passar do tempo de desenvolvimento. 5

Figura 7 - Pentium Em 1995, a Intel lançava o Pentium Pro, sexta geração de chips x86 e que possuía uma série de melhoramentos em relação ao seu antecessor. Organização interna diferente permitia executar até 5 instruções ao mesmo tempo, memória cache de 2 níveis. Essa seria a base para os futuros lançamentos: Pentium II - com extensões para tratar aplicações multimídia (mmx), Xeon - aumento de memória cache, barramento rápido e melhor suporte ao multiprocessamento, Pentium III, Pentium IV e Pentium M. Paralelamente, a AMD começava a ganhar mercado com modelos similares, principalmente como o AMD K5, forte concorrente do Pentium original. Dois anos depois, o Pentium II foi lançado, atingindo o clock de 450 MHz. Nessa mesma época, a AMD desenvolveu CPUs que batiam de frente com a Intel, como o AMD K6. Por esse motivo, ambas as empresas travaram uma espécie de corrida, competindo para ver quem conseguia o maior desempenho e valor de clock. Outros dois processadores foram muito famosos e se destacaram nesta evolução dos processadores: o UltraSPARK e o PicoJava. 2.2.5. PENTIUM IV E PENTIUM D Em 2002, a Intel lançou o Pentium 4, processador que podia alcançar clocks muito altos, chegando até a 3,8 GHz em condições especiais. Os últimos modelos dessa linha também incluíam a tecnologia Hyperthreading (HT), funcionalidade que fazia um processador físico trabalhar como se fossem duas CPUs lógicas. 6

Figura 8 - Pentium IV Posteriormente, o Pentium 4 foi substituído pelo Pentium D, duas linhas de processadores dual-core de 64 bits. Mais tarde, foi lançado o Pentium Extreme Edition, que possuía desempenho um pouco melhor do que o Pentium D, além de tecnologias extras que o tornavam mais apto para tarefas pesadas. Esse modelo também fazia uso da tecnologia HT, podendo simular a existência de até quatro núcleos. Outra novidade da Intel foi o Pentium M, uma versão de baixo consumo do Pentium Pro desenvolvido para dispositivos móveis. Esse processador foi lançado em 2003. Em 2005, a AMD apresentou ao mundo o seu primeiro processador dual-core, o Athlon 64 X2. 2.2.6. INTEL CORE Em 2006, a Intel inicia a sua linha Core, para consumidores que precisam de mais poder de processamento. Faz parte dessa linha o modelo Core 2 Duo, que demonstra uma capacidade incrível se comparado com os dual-core anteriores da empresa. Na mesma época, foi lançada a versão Pentium Dual Core, que apesar de trazer uma boa relação custobenefício, se mostra inferior ao Core 2 Duo. Outro grande lançamento feito pela Intel foi o Core 2 Quad, processadores com quatro núcleos e que, apesar de demonstrarem alto desempenho, acabam perdendo em algumas tarefas para o Core 2 Duo. Uma versão posterior, nomeada Core 2 Extreme Quad Core, também foi lançada, proporcionando mais velocidade de clock, que pode chegar até 3,2 GHz. Em 2010, a Intel anunciou os modelos Core i3, i5 e i7. 7

Figura 9 - Processador i5 2.3. UltraSPARC II No início, sistemas UNIX eram muito comuns nas universidades e rodavam apenas em minicomputadores, com isso a Sun Microsystems desenvolveu seu próprio processador, o SPARC. Suas características eram: - 32 bits, clock de 36 MHz; - Processador IU (Integer Unit) 3 formatos principais de instruções e 55 instruções; - Unidade de Ponto flutuante com mais de 14 instruções básicas. Em 1995 surgiu o UltraSPARC I: - 64 bits (endereçamento e registradores); - Projetado para tratar imagens, áudio, vídeo e aplicações multimídia em geral (VIS Visual Instruction Set); - Sucessores: UltraSPARC II e UltraSPARC III, cuja principal diferença é a velocidade do clock. Uma característica muito forte desses processadores era que eles foram projetados para tratar imagens, áudio, vídeo e aplicações multimídia em geral enquanto outros processadores da época eram projetados para manipulação de planilhas e textos. 8

2.4. PicoJava Para permitir que os programas binários possam ser executados em máquinas diferentes, a Sun desenvolveu a arquitetura de Máquina Virtual chamada JVM (Java Virtual Machine). Em poucas palavras, para permitir que uma máquina execute programas binários em Java, tudo que seu proprietário precisa fazer é obter a JVM para aquela plataforma. Além das implementações em software da máquina JVM, a Sun e as demais empresas associadas definiram especificações para implementação de chips JVM. Tais chips são processadores que executam diretamente programas binários escritos originalmente em JVM, sem necessidade de um nível de software para interpretação ou compilação Just in Time. Estes chips são voltados para o mercado de sistemas embarcados. É um processador muito diferente do Pentium e do UltraSPARC, direcionado para aplicações completamente diferente daquelas atendidas por essas máquinas. Em suma: - Pentium II (máquina CISC típica implementada com a tecnologia superescalar); - UltraSPARC II (máquina RISC pura implementada com a tecnologia superescalar); - PicoJava II (chip Java dedicado, utilizado em sistemas embarcados ); 2.5. Lei de Moore Em 1965, Gordon Moore, um dos fundadores da Intel, afirmou que o número de transistores em um chip dobraria, sem custo adicional, a cada 18 meses. Tal afirmação ficou conhecida como a Lei de Moore, a qual foi válida durante anos, principalmente no final da década de 90. Sempre que uma empresa lançava um modelo de processador, o concorrente a superava meses depois. Isso ficou muito evidente nos anos de 1999 e 2000, quando o Pentium III e o AMD Atlhon (K7) estavam guerreando pelo maior clock. Por um período de tempo, a AMD liderou a disputa, pois o Atlhon, que trabalhava com frequências maiores do que 1 GHz, superou o Pentium III. A reviravolta da Intel veio com o lançamento do Pentium 4, em 2001, que trabalhava com até 2 GHz e levou a empresa de volta ao topo do mercado. As versões de baixo custo dessas CPUs, Celeron (Intel) e Duron (AMD), também disputavam fortemente o lugar mais alto no ranking do processador B mais vendido. 9

2.6. Arquitetura Multicore Conforme a tecnologia dos processadores foi progredindo, o tamanho de seus transistores foi diminuindo de forma significativa. Contudo, após o lançamento do Pentium 4, eles já estavam tão pequenos (0,13 micrômetros) e numerosos (120 milhões) que se tornou muito difícil aumentar o clock por limitações físicas, principalmente pelo superaquecimento gerado. A principal solução para esse problema veio com o uso de mais de um núcleo ao mesmo tempo, através da tecnologia multicore. Assim, cada núcleo não precisa trabalhar numa frequência tão alta. Se o esquema de escalonamento de tarefas funcionasse de maneira eficiente, seria possível trabalhar com quase o dobro do clock. Um processador dual-core de 1,5 GHz, por exemplo, poderia ter um desempenho semelhante a uma CPU de núcleo único de 3 GHz. Um componente chamado de escalonador determina em qual dos núcleos uma tarefa deve ser executada. Mas como o escalonador demora certo tempo para fazer essa decisão, na prática fica quase impossível atingir o dobro exato de desempenho. Portanto, com o advento do processador multicore, a lei de Moore tornou-se inválida, visto que já não era mais possível aumentar a frequência do processador como antes. Mais detalhes desta arquitetura está disposto no capítulo 4. 2.7. Arquitetura 64 bits Nos idos do ano 2000, ficou claro que o uso de 32 bits não seria mais eficiente, visto que, no máximo, apenas 4 GB de memória RAM poderiam ser endereçados nessa plataforma. Logo, a solução mais natural foi o desenvolvimento de novas arquiteturas que passassem a trabalhar com 64 bits ao invés de 32. Figura 10 - AMD Opteron, de abril de 2003, foi a primeira CPU de 64 bits da empresa 10

Tanto a AMD quanto a Intel trabalhavam em seus próprios projetos de CPUs de 64 bits, mas quem venceu a disputa foi mesmo a AMD, com o x86-64, que mais tarde foi renomeado para AMD64. Isso aconteceu, principalmente, pelo fato de a AMD ter evoluído diretamente o x86-32, enquanto que a Intel tentou criar algo novo, do zero. Visto esse acontecimento, as empresas em questão criaram um acordo no uso dessas arquiteturas, no qual a AMD licenciou para a Intel o uso do x86-64. Por outro lado, a Intel também tornou legal o uso da arquitetura x86-32 pela AMD. Logo, todos os modelos de processadores 64 bits comerciais atuais rodam sobre o x86-64. O AMD Athlon 64 foi um dos maiores representantes dessa arquitetura. 3. ORGANIZAÇÃO DO PROCESSADOR Um computador é organizado em torno de um barramento (Bus). Observe a figura abaixo: Figura 11 Organização de um computador com 1 CPU e 2 I/O Constata-se que um computador é composto basicamente pelo processador, às memórias primárias e secundárias e os dispositivos de entrada e saída interligados pelo barramento. Na figura acima é possível ter uma visão global dos componentes do computador. 11

Figura 12 - Componentes do computador - Unidade de controle (UC): responsável pela busca de instruções na memória principal e pela determinação do tipo de cada instrução. Envia ordens de cálculo para a UAL, que indica os valores a processar, e os coloca nos registradores para esse efeito. A partir da UC a informação é transferida para as outras partes que constituem o computador, como a memória, os sistemas de E/S, etc.. - Unidade Lógica e Aritmética (ULA/UAL): Sua função é a efetiva execução das instruções. Trata-se de um aglomerado de circuitos lógicos e componentes eletrônicos simples que, integrados, realizam as operações aritméticas e lógicas (soma, subtração, multiplicação, divisão, AND, OR, XOR, complemento, deslocamento, incremento e decremento. Processadores modernos possuem mais de uma ULA. - Registradores: são pequenas memórias e de alta velocidade, usada para armazenar resultados temporários e certas informações de controle. Em função de estarem situados dentro do processador, os registradores podem ser lidos e escritos a uma velocidade bastante alta. Serve de memória auxiliar básica para a UAL. De todos os registradores, destaca-se o Program Counter (PC), cujo valor aponta para próxima instrução a ser buscada da memória para ser executada no processador. Outro registrador importante é o Registrador de Instruções (IR), que armazena a instrução que está sendo executada. 12

Outros registradores de propósito específicos ou gerais podem ser incluídos de acordo com o projeto do processador. - Barramento: Conjunto de fios paralelos que permite a transmissão de dados, endereços, sinais de controle e instruções. Pode ser interno ou externo ao processador. Figura 13 - Organização do Processador A figura acima ilustra a parte do processador conhecida por caminho de dados que é constituída pelos registradores, (em geral de 1 a 32), UAL e barramentos. Os registradores alimentam as duas entradas (A e B) da UAL. A saída da UAL é conectada a um dos registradores. Existem duas classes de instruções: - Instrução registrador-memória: permite que uma palavra 1 de memória seja armazenada no registrador, e vice-versa. - Instrução registrador-registrador: instrução que opera sobre dois registradores e coloca a saída em outro registrador (ciclo de caminho de dados). 1 são as unidades de dados movidas entre a memória e os registradores. A referência a uma palavra deve ser feita por meio de um número inteiro. 13

A velocidade do ciclo do caminho de dados determina, em última análise, a velocidade do computador. 3.1. Execução de Instruções Uma instrução, para ser executada pelo processador precisa seguir uma série de pequenos passos: 1. Busca próxima instrução na memória e armazena no Registrador de Instruções (IR); 2. Atualiza o Contador de instrução, PC, para apontar para a próxima instrução; 3. Determina tipo de instrução armazenada no IR; 4. Determina endereço dos dados na memória, se a instrução requer dados adicionais; 5. Busca palavras (dados) na memória, caso a instrução precise, e armazena-as em outros registradores; 6. Executa instrução; 7. Retorna ao passo 1. Figura 14 - Ciclo de Instruções Esta seqüência de passos é conhecida como ciclo da busca-decodificaçãoexecução. Esta seqüência segue o modelo de Von Neumann. É possível escrever um programa que simula a função de um processador. Esse programa não precisa, necessariamente, ser executado por um processador eletrônico, sendo possível ser executado por outro programa. Esse modelo de projeto visa utilizar um interpretador como visto anteriormente com o intuito de utilizar-se um processador mais simples e barato. Uma implementação baseada em hardware puro era usada somente nos modelos mais caros. 14

3.2. Vantagens do interpretador em relação ao hardware puro - A capacidade de corrigir no campo eventuais erros na implementação de instruções; - A oportunidade de incorporar novas instruções às máquinas existentes, a um custo muito baixo, mesmo depois de as mesmas terem sido despachadas para o cliente. - Projeto estruturado que permitia o desenvolvimento, o teste e a documentação de instruções complexas de maneira muito eficiente. - Armazenamento das microinstruções do interpretador em memórias read-only (ROM), chamadas de memória de controle, muito mais rápidas do que as memórias convencionais. O grande problema do uso da interpretação foi a criação de um conjunto grande de instruções de importância discutível e que eram difíceis e caras para serem implementadas diretamente por hardware (circuitos muito complexos). 3.3. RISC versus CISC No final da década de 1970 era dominante os projetos de processadores que privilegiava as instruções complexas, cuja implementação se dava por meio do interpretador. Os projetistas tentavam diminuir o chamado Gap Semântico 2. Em 1980 surgiu um contraponto em relação ao uso da interpretação onde um grupo liderado por David Paterson desenvolveu um processador que não usava nenhum interpretador. Para designar esse conceito, foi cunhado o termo RISC. 3.4. CISC - Complex Instruction Set Computer - Tecnologia mais antiga e usada para famílias de computadores compatíveis em nível de software. - Número maior de instruções (~200 a 300 instruções). - Uso extensivo de interpretação (principalmente para modelos mais baratos). 3.5. RISC - Reduced Instruction Set Computer - Processador com pequeno número de instruções muito simples. Primeiro: RISC I. 2 A distância entre aquilo que a máquina pode fazer e o que as linguagens de programação de alto nível. 15

- Instruções capazes de serem executadas em um único ciclo do caminho de dados. Argumento RISC: Mesmo que uma máquina RISC precisasse de 4 ou 5 instruções para fazer o que uma máquina CISC faria, com apenas 1 instrução, se a instrução RISC fosse 10 vezes mais rápida (só hardware), a máquina RISC venceria. Contudo a tecnologia RISC não suplantou a CISC tendo em vista problemas de compatibilidade de máquinas antigas com softwares já desenvolvidos A partir do 486, a Intel passou a projetar seus processadores com um núcleo RISC para as instruções mais simples, enquanto as instruções mais complexas são interpretadas pela filosofia CISC. Assim sendo a metodologia de projeto híbrido é suficiente para manter a compatibilidade entre máquinas e softwares antigos. 4. PROCESSADORES MULTICORE Os Processadores Multicore são uma grande revolução na tecnologia computacional e possibilitam maior capacidade de processamento com melhor custo/benefício. 4.1. Limites do Single-Core Atualmente as aplicações demandam alto poder de processamento. Tal necessidade tem causado um grande gargalo na utilização dos processadores de núcleo único. A solução para este problema é o aumento da freqüência de operação dos processadores, porém essa estratégia gera um aumento muito grande na temperatura do equipamento. A fabricação de processadores single-core baseia-se em transistores em camadas de silício cada vez menos espessas, esta estrutura está sendo extinta. 4.2. Outros Problemas da Arquitetura Single-Core - Isolamento fonte/dreno no transistor; - Alta dissipação de energia; - Em média, 75% do tempo da CPU gasto com espera de acesso à memória; - Lei de Moore: duplica número de transistores numa mesma área de silício a cada 18 meses; - Quanto menor o transistor, maior sua densidade no circuito; - Alta densidade = alta dissipação de energia pela passagem de corrente elétrica nos transistores; 16

- Se a energia não é removida rapidamente, chip derrete; 4.3. A Tecnologia Multicore A tecnologia Multicore (múltiplos núcleos) coloca duas ou mais unidades de execução (cores) no interior de um único 'pacote de processador' (um único chip). O Sistema operacional trata como se cada núcleo fosse um processador diferente, com seus próprios recursos. Na Maioria dos casos cada unidade possui seu próprio cache, processa várias instruções simultaneamente. Existem modelos de processador de núcleo duplo que compartilha o cache. Adicionando novos núcleos as instruções das aplicações passam a ser executadas em paralelo em vez de serialmente. Analogia: - Abrir nova pista em uma estrada para aliviar o trânsito. Os carros não precisarão dirigir mais rápido e não serão atrasados por gargalos; Figura 15 - Multicore 4.4. Vantagens do Multicore - Maior eficácia (troughput) do sistema e desempenho aprimorado de aplicativos em computadores executando vários aplicativos simultaneamente; - Desempenho aprimorado para aplicativos multi-threaded; - Compatibilidade para mais usuários ou tarefas em aplicativos com muitas transações; - Desempenho superior em aplicativos que utilizam processamento de forma intensiva; - Economia no preço de licenciamento de softwares proprietários, passando a ter um maior poder de processamento sem necessitar de uma nova máquina; 17

- Redução da dissipação térmica quando comparado ao Single-Core; - Melhora o paralelismo no nível de threads; - Ajuda aplicações que não conseguem se beneficiar dos processadores superescalares atuais por não possuírem um bom paralelismo no nível de instruções; - Melhor localidade de dados; - Melhor comunicação entre as unidades; - Economia de espaço e de energia; - Throughput não aumenta para aplicações únicas não paralelizáveis, mas sim nos outros casos e no sistema como um todo; 4.5. Arquitetura Multicore Os processadores multicore geralmente apresentam multiprocessamento simétrico (SMP): - Dois ou mais processadores idênticos são conectados a uma única memória principal; - Permite que qualquer processador trabalhe em qualquer tarefa, não importando onde que ela esteja localizada; - Possibilita otimizar a carga de trabalho, movendo as tarefas entre os processadores; - Agrava o problema de espera pela memória que ocorre na situação Single-Core; a) NUMA (Non-Uniform Memory Access) - Cada processador tem a sua própria parte da memória; - Permite acesso paralelo à memória, melhorando em muito o throughput se os dados de um processo forem bem localizados; - Custo de mover dados de um processador ao outro fica bem mais caro, ou seja, balancear a carga de trabalho é bem mais custoso; b) Multiprocessamento Assimétrico (ASMP) - Diferentes processadores especializados para tarefas específicas; c) Multiprocessamento com clusters de computadores - Nem toda a memória está disponível para todos os processadores; 18

4.6. Modelo Intel Dual Core Figura 16 - Modelo Intel Dual Core O grande problema da tecnologia de dois núcleos é a comunicação entre os dois núcleos que é feita através do FSB 3 externo, gerando disputa para a utilização do barramento. A banda de memória disponível é dividida entre eles e é também compartilhada com os dispositivos do Super I/O, surge aí um grande gargalo que causa uma boa perda de desempenho. Os processadores AMD Dual conseguiram sanar esse problema com um controlador de memória integrado. O controlador de memória integrado dispensa a comunicação com as memórias através de um Chipset. As Memórias são acessadas diretamente pelo processador através de um barramento exclusivo (HyperTransport 4 ), o que resulta em um melhor aproveitamento da banda; assim não há mais dependência do FSB, não sendo compartilhado os recursos com outros dispositivos de I/O 5. 3 Front Side Bus é o barramento de comunicação entre o processador e a memória. A freqüência de operação do processador é dada pela multiplicação da freqüência do FSB pelo fator de multiplicação. Em outras palavras, é o clock externo. 4 HyperTransport - Conexão ponto-a-ponto, paralela, de alta performance, alta velocidade, alta largura de banda e de baixa latência. 5 I/O = E/S = Entrada/Saída 19

Figura 17 - Modelo AMD 4.7. Aplicações para Processadores Multicore A mudança para a computação paralela está revolucionando os modelos tradicionais de programação linear e favorecendo um renascimento das ferramentas de desenvolvimento, novos conceitos de programação, novos modelos de multitarefa e diversas oportunidades para os desenvolvedores de soluções e arquitetos de sistemas conquistarem um novo espaço e criarem aplicativos definidores de tendências. Ao projetar aplicativos para processadores Dual-Core e Quad-Core, os desenvolvedores tendem (devido ao modo como as plataformas funcionavam antigamente) a raciocinar em termos de utilizar dois ou quatro processos. Contudo, se os desenvolvedores projetarem programas para a maior quantidade de processos possível dentro do programa, à medida que núcleos adicionais se tornarem disponíveis, o aplicativo será executado mais rapidamente e de modo mais eficiente. A prática de encadear em processos além do número de núcleos disponíveis no momento basicamente prepara o projeto do aplicativo para o futuro e proporciona retornos sobre o investimento em tempo e esforço, que podem se estender por anos depois do lançamento do aplicativo. 5. REFERÊNCIAS TANENBAUM, S. Andrew. Organização Estruturada de Computadores. 5ª Ed., Prentice Hall. STALLINGS, William. Arquitetura e Organização de Computadores. 5ª Ed., Prentice Hall. 20

Multi-Core Processors The Next Evolution In Computing. http://multicore.amd.com/whitepapers/multi-core_processors_whitepaper.pdf, Lançamento da tecnologia de múltiplos núcleos. http://multicore.amd.com/pt- BR/Technology/ Vantagens da tecnologia de múltiplos núcleos da AMD. http://multicore.amd.com/pt- BR/Products/Benefits/ O que é a tecnologia de múltiplos núcleos? http://multicore.amd.com/whatismc/ Multi-Core Technology Brief. http://www1.us.dell.com/content/topics/topic.aspx/global/products/precn/top ics/en/multi_core_precn?c=us&l=en&s=gen Intel Multi-Core Platforms. http://www.intel.com/technology/computing/multicore/ Multicore. From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/multicore Symmetric multiprocessing. From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/symmetric_multiprocessing Non-Uniform Memory Access. From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/non-uniform_memory_access Lei de Moore: até quando? V A razão do limite. http://www.forumpcs.com.br/coluna.php?b=107220 Características e recursos dos processadores. http://www.guiadohardware.net/tutoriais/processadores/caracteristicas_e_rec ursos/parte-4/index.php First Tests of Intel's Dual-Core Processor. http://www.pcworld.com/reviews/article/0,aid,120264,00.asp Intel's Dual-Core Chips Debut. http://www.pcworld.com/news/article/0,aid,117718,00.asp Let the Dual-Core Revolution Begin. http://www.intel.com/personal/desktopcomputer/dual_core/index.htm História dos processadores http://www.tecmundo.com.br 21