ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John...

21
ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br 1 - 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.

Transcript of ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John...

Page 1: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

1

- 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.

Page 2: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

2

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

Page 3: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

3

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.

Page 4: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

4

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

Page 5: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

5

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.

Page 6: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

6

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.

Page 7: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

7

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 custo-benefí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.

Page 8: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

8

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.

Page 9: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

9

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.

Page 10: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

10

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

Page 11: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

11

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.

Page 12: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

12

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.

Page 13: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

13

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 palavra1 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.

Page 14: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

14

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ção-execuçã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.

Page 15: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

15

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ântico2”.

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.

Page 16: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

16

- 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;

Page 17: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

17

- 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;

Page 18: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

18

- 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;

Page 19: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

19

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 FSB3 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 (HyperTransport4), 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/O5.

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

Page 20: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

20

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.

Page 21: ARQUITETURA DE COMPUTADORES Prof. Ricardo Rodrigues … · diversas tarefas foi publicada por John Von Neumann. ... família de computadores que poderiam executar o mesmo software,

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

21

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/topics/en/multi_core_precn?c=us&l=en&s=gen

Intel Multi-Core Platforms. http://www.intel.com/technology/computing/multi-core/

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_recursos/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