Arquitetura de Computadores Celso Alberto Saibel Santos

Texto

(1)

Arquitetura de Computadores

Celso Alberto Saibel Santos

Professor do Depto. Informática Professor do Depto. Informática

UFES - Universidade Federal do Espírito Santo

(2)

O que é a Arquitetura de um Computador?

Arquitetura de Computadores =

Conjunto de Instruções

( ISA - Instruction Set Architecture )

+

Organização da Máquina

(3)

Arquitetura Básica dos Computadores Atuais

CPU: ALU (datapath)

+ control Cache

main bus interrupts

I/O Controller

I/O Controller

I/O Controller Main

Memory

Graphics

display Keyboard

(4)

Implementação um pipeline

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

Busca Instrução Decodifica

instrução Executa Operação

Ordem de execução

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 clock Operação

Acessa Memória

Escreve

resultado tempo

(5)

Problemas a vista: conflitos do pipeline

Conflitos estruturais: com uma memória única para dados e instruções, existe um conflito entre o ciclo de busca de instrução e escrita em memória; a solução é usar duas memórias independentes (design)

Conflitos de controle: obrigam a parada do pipeline

− Instruções de desvio

− Paradas geram bolhas no pipeline

busca di ULA mem w reg

busca di ULA mem w reg

busca di ULA mem w reg

tempo Ordem de

execução

add $4,$5,$6 beq $1,$2,40 lw $3,300($0)

bolha bolha bolha bolha bolha

(6)

Outros conflitos

Conflitos por dados: a próxima instrução utiliza um operando da instrução anterior que ainda não está pronto:

add $s0, $t0, $t1 sub $t2, $s0, $t1

busca di ULA mem w reg

busca di

tempo Ordem de

execução

add$s0,$t0,$t1 sub $t2,$s0,$t3

ULA mem w reg di

(7)

Soluções clássicas para conflitos

Reordenação do código (compilador): mudar a ordem de execução sem que o resultado da execução global seja alterado pode evitar as bolhas

Incluir instruções do tipo NOP

Adiantamento de instruções

Pré-suposição da realização do desvio condicional (if)

Pré-suposição da realização do desvio condicional (if)

Predição dinâmica em loops e desvios baseado em dados armazenados (história)

E em pipelines superescalares? Mais complexidade...

(8)

Próximo passo...

Hierarquia de Memória:

reduzindo o tempo de acesso

aos dados

(9)

Os componentes clássicos de um computador

Processor Computer

Control

Memory Devices

Input

O processador deve buscar cada dado e instrução na memória durante a execução de um programa: o

tempo de acesso é fundamental para o desempenho!

Datapath Output

(10)

Desafios para a memória...

Desempenho da CPU aumenta 25-50% p.a.

Desempenho das memórias, cerca de 7% p.a.

Capacidade Velocidade Lógica: 2x em 3 anos 2x em 3 anos DRAM: 4x em 3 anos 1.4x em 10 anos Disco: 2x em 3 anos 1.4x em 10 anos

Valores típicos em 2004:

Disco: 2x em 3 anos 1.4x em 10 anos

(11)

Características das memórias DRAM

(12)

Tipos de Memória Baseada em Semicondutores

(13)

Reflexões Sobre Arquiteturas de Memórias

A “velocidade” de memória aumenta muito menos

rapidamente que a dos processadores (Lei de Moore)

Para máquinas + rápidas, é necessário projetar um sistema de memória de forma a não desperdiçar os ganhos adquiridos com o processador

• Solução: hierarquia de memória e caches

É desejável que o usuário “acredite” que ele tem um

espaço de memória enorme, mesmo se a quantidade de memória é sabidamente limitada

O SO precisa suprir o mesmo espaço de memória para vários usuários sem que haja conflito

• Solução: Memória Virtual

(14)

Melhorando o desempenho: Princípio da localidade

Localidade Temporal

− Uma palavra de memória que acaba de ser referenciada, tende a ser novamente referenciada

Localidade Espacial

− Itens cujos endereços estão próximos daqueles que acabam de ser referenciados tendem a ser referenciados também brevemente

Conclusão: usar mecanismos que permitam armazenar

Conclusão: usar mecanismos que permitam armazenar temporariamente o material com que se trabalha

Observar a estrutura dos programas:

− Programas acessam somente uma pequena porção de memória num curto espaço de tempo

variáveis - temporal

laços - temporal e espacial percurso de arrays - espacial

(15)

Idéia de hierarquia para a memória

Dividir o espaço de memória em níveis com tamanhos, velocidades e custos diferentes por nível

O princípio da localidade pode ser aplicado diretamente à hierarquia de memória: quanto mais rápida a memória, mais próxima ao processador

Velocidade Tam Custd: $/bit Exemplo Processador

+ rápida menor + alto 128K SRAM

1G DRAM

+ lenta maior + baixo 500 G Mag. Disk Memória

Nível 1 Memória

Nível 2 Memória

Nível 3

(16)

Hierarquia de Memória atualmente

Registradores CPU

~100 Bytes

~10 ns Cache K Bytes 10-100 ns Capacidade

Tempo de Acesso

Cache

Registradores

Operandos Inst.

Blocos

Estágio Unidade

prog./compil.

1-8 bytes

contr. cache 8-128 bytes

Nível + Alto + rápido

Memória

Memória Principal M Bytes

100ns-1us

Disco G Bytes ms

Tapeinfinito

sec-min Tape, ...

Disco

Blocos

Páginas

Arquivos

8-128 bytes

SO512-64K bytes

user/operador Mbytes

Nível + baixo Maior

Fonte: Slides Patterson

(17)

Funcionamento a hierarquia (1)

Unidades de mapeamento entre níveis: blocos

Se um bloco está no nível i, ele também estará presente

no nível i+1 da hierarquia

(18)

Funcionamento a hierarquia (1)

Pode conter diversos níveis: a gerência é feita entre apenas entre níveis adjacentes

Se a informação solicitada pelo processador estiver presente no nível superior da hierarquia, ocorre um

“acerto” (hit)

Se a informação não puder ser encontrada nesse nível, ocorre uma “falha” (miss) e um nível mais baixo é

ocorre uma “falha” (miss) e um nível mais baixo é acessado para que o bloco desejado seja recuperado

A medida de desempenho da hierarquia é relacionada à taxa de acertos dos acessos: fração dos acessos à me- mória encontrados no nível superior

Outra medida: taxa de falhas = 1 – taxa de acertos

(19)

Funcionamento a hierarquia (2)

Desempenho ~ tempo de acesso à memória

1. Tempo de acerto (t

a

): tempo para acessar o nível

superior da hierarquia (RAM) + tempo necessário para se determinar se o acesso é ou não um acerto

2. Penalidade por falta (t

f

): tempo para substituir um dos blocos do nível superior pelo bloco do nível inferior

com a informação desejada + tempo para enviar o com a informação desejada + tempo para enviar o dado ao processador

t

a

<< t

f

: tempo de acesso ao nível inferior é muito maior

Hierarquia de memória tem influência direta na gerên-

cia de memória feita pelo SO, no código gerado pelo

compilador e até mesmo no tipo de aplicação a ser

executada na máquina.

(20)

Conceitos básicos sobre Memória Cache

Cache: esconderijo! ☺ ☺ ☺ ☺

De maneira abrangente: qualquer memória gerenciada que tira proveito das propriedades de localidade

Como fazer para guardar os dados e instruções recentemente usados numa cache:

− Como saber se um item de dado está ou não na cache?

− Se estiver, como achá-lo?

Caches com mapeamento direto mapeiam cada endereço de memória numa locação específica da cache

− Várias locações de memória têm a mesma locação na cache

− Usa um mecanismo modulo N (N é potência de 2)

− Precisa de uma tag indicando o endereço atualmente armazenado

− Precisa de um bit de validade indicando se o dado está na cache

(21)

Cache com mapeamento direto simples

0 1 2 3 4 5 6 7 8

Memória

0 1 2 3 Cache diretamente mapeado

Tamanho = 4

13 14 15 16 17 18 8 9 10 11

12

•Cache de 4 (2

2

) palavras

•Endereços de memória “mod 4”

mapeiam locações de cache

•Muitos endereços de memória são mapeados p/ uma mesma locação

•Usa log

2

N bits de endereços para a indexaçao da cache

19

(22)

Acesso à cache: Rótulo (tag) e Índice (index)

Considerando endereços de memória de 32-bits :

Uma cache com mapeamento direto de 2

N

bytes:

Índice (index): Os N bits mais baixos dos endereços de memória

Rótulo (tag): Os (32-N) bits mais altos dos endereços de memória

Cache Index N

0 N

31

Cache Tag Ex: 0x50 Ex: 0x03

Armazenados como Endereços de Memória

0 1 2 3

2 - 1N

:

2 N Bytes

Cache com Mapeamento Direto Byte 0

Byte 1 Byte 2 Byte 3

Byte 2N -1

:

0x50

Armazenados como parte do cache “state”

Bit validade

:

Fonte: Slides do Patterson

(23)

Alguns comentários…

Cache com mapeamento direto precisa ser grande

suficiente , por ex, para que as últimas instruções num laço de execução não se sobreponham sobre as

anteriores (a cache com 4 blocos é apenas exemplo)

Podem existir 2 caches o numa arquitetura: uma para instruções e outra para dados

− Em geral, não é mais eficiente que apenas uma cache para um

− Em geral, não é mais eficiente que apenas uma cache para um tamanho fixo de cache

− Mas, o dobro de vazão pode ser compensar

No start-up, a cache está vazia (ou inválida) e tem-se uma taxa de falhas elevada inicialmente

A abordagem trata assim da localidade temporal, mas

não da localidade espacial

(24)

Cache com 64KB (DECStation 3100)

31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0 Endereços de Memória

V Tag Data-32bits

Index 14

16

Deslocamento

16k entradas

EQ Data

AND Tag

Valid

HIT

16 32

(25)

Sequência de acessos para leitura numa cache (1)

(1) Estado inicial da cache, após inicialização da máquina

(26)

Sequência de acessos para leitura numa cache (2)

(2) Referência ao endereço 10110 provoca uma falta

(27)

Sequência de acessos para leitura numa cache (3)

(2.1) Tratamento da falta: buscar no nível inferior (ex. memória principal) o bloco com endereço 10110

(28)

Sequência de acessos para leitura numa cache (4)

(3) Referência ao endereço 11010 provoca uma falta

(29)

Sequência de acessos para leitura numa cache (5)

(3.1) Tratamento da falta: buscar no nível inferior (ex. memória principal) o bloco com endereço 11010

(30)

Sequência de acessos para leitura numa cache (6)

(4) Referência ao endereço 10000 provoca uma falta

(31)

Sequência de acessos para leitura numa cache (7)

(4.1)Tratamento da falta: buscar no nível inferior (ex. memória principal) o bloco com endereço 10000

(32)

Sequência de acessos para leitura numa cache (8)

(5) Referência ao endereço 00011 provoca uma falta

(33)

Sequência de acessos para leitura numa cache (9)

(5.1) Tratamento da falta: buscar no nível inferior (ex. a memória principal) o bloco com endereço 00011

(34)

Sequência de acessos para leitura

(6) Referência ao endereço 10010 provoca uma falta

(35)

Sequência de acessos para leitura (9)

(6.1) Tratamento da falta = buscar no nível inferior (ex. memória principal) o bloco com endereço 00011, escrevendo-o na posição 010 da cache

(36)

Localidade temporal

A cache mostrada anteriormente apenas explora a localidade temporal

Para tratar com a localidade espacial um bloco de mais de uma palavra é transferido para a cache no caso de uma falha (miss)

No exemplo seguinte, a cache tem o mesmo tamanho (64KB), mas 4K entradas para blocos de 16 bytes cada:

(64KB), mas 4K entradas para blocos de 16 bytes cada:

− Os próximos devem gerar acertos ao invés de faltas

− Isso pode provocar um aumento significativo na taxa de

acertos, mesmo com pequenos tamanhos de blocos

(37)

Cache com 64KB (DECStation 3100)

31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0 Endereços de Memória

V Tag Data-0 Data-4 Data-8 Data-12

Block offset Index

4k entries

Select

Data EQ

AND Tag

Valid

HIT

(38)

Outro exemplo de cache 16KB

(39)

Resultados de desempenho das duas caches

Programa Tam. Bloco TaxaI-miss Taxa D-miss Taxa Comb. miss

gcc 1 6.1% 2.1% 5.4%

4 2.0% 1.7% 1.9%

spice 1 1.2% 1.3% 1.2%

Fonte: Livro P&H p. 329

spice 1 1.2% 1.3% 1.2%

4 0.3% 0.6% 0.4%

Tamanho da cache: 128KB (64KB Dados + 64KB Instruções)

(40)

Tamanho do Bloco de Cache

Em geral, um tamanho maior leva a vantagem da localidade espacial dos dados, MAS:

− Maior tamanho de bloco significa maior penalidade de falhas (miss penalties) – mais tempo para encher um bloco

− Se o tamanho do bloco é muito grande em relação ao tamanho da cache, a taxa de falhas irá aumentar

T

Médio de Acesso

= t

acerto

x (1 – taxa_acerto) + penalidade_falha x t

falhas

Taxa de Falhas

Tam. Bloco

Taxa de

Acerto Explora a Localidade Espacial

Poucos blocos:

compromete a

localidade temporal

Tempo Médio de Acesso

Aumenta Miss Penalty

& Miss Rate

Tam. Bloco Tam. Bloco

Fonte: Patterson slides

(41)

Taxa de Falha x Tamanho de Bloco - SPEC92

Fig.7.8 – p.481

(42)

Acessos para escrita

Não são tão simples em se tratando de cache

− Deve-se assegurar que o dado foi escrito na memória

− Do contrário, memória e cache podem se tornar inconsistentes

Solução mais simples: write-through

− Memória e cache escritas ao mesmo tempo

− Memória e cache escritas ao mesmo tempo

− Mas se for necessário uma espera para isso, os valores da cache serão perdidos!

Usar um buffer (FIFO) no caminho de escrita para a memória

Buffers permitem “equalizar” o serviço quando a taxa de

chegada de requisições é variável (algo como cadeiras num

banco para os clientes esperarem…)

(43)

Outras soluções para escrita…

Escrita somente no retorno: write-back

− Atualização quando o bloco for susbstituído e se houver ocorrido alteração

Escrita somente uma vez : write-once

− Ideal para sistemas multiprocessadores, que compartilham um mesmo barramento

compartilham um mesmo barramento

− O controlador da cache escreve a atualização na

memória principal sempre que o bloco for atualizado pela primeira vez na cache – ou seja, faz um write- through e ainda alerta os demais componentes

ligados ao barramento que houve a alteração

(44)

Comparando as três soluções

write-through : pode acontecer uma grande quantidade de escritas desnecessárias na memória…

write-back : minimiza o problema, mas a memória pode ficar temporariamente desatualizada, obrigando que

ficar temporariamente desatualizada, obrigando que outros dispositivos acessem os valores via cache…

write-once : conveniente, mas apenas em sistemas

com múltiplas CPUs; utilização excessiva do barramento

pode ser um fator de queda de desempenho…

(45)

Indo mais adiante...

Outros Modelos de mapeamento

− Conjunto Associativo; Totalmente Associativo

− Direto = one-way associativo

(46)

Indo mais adiante...

(47)

Indo mais adiante...

(48)

Indo mais adiante...

Elementos de Projeto de uma Cache

− Definição do tamanho

− Função de mapeamento de dados Memória/cache

− Algoritmos de substituição de dados na cache

− Política de escrita na cache

(49)

Próximo passo...

Hierarquia de Memória:

Memória Virtual, Paginação,

Aumento de Desempenho

(50)

Requisitos de um Sistema de Memória

Dar a ilusão de um vasto espaço de memória

total memória para todos os jobs simultâneos > memória real um job pode usar um espaço de endereços > memória atual

Acesso rápido à memória

Transparência:

− Livrar os programadores da tarefa de otimizar da

− Livrar os programadores da tarefa de otimizar da utilização da memória → cache:memória:disco

Espaço de endereçamento uniforme:

− Não se pode saber onde os programas serão

carregados nem quais partes dos programas serão mudadas e recarregadas durante a execução

− Ideal: os endereços situados entre 0 e 2

N

-1

(51)

Endereço virtual x endereço físico

O programador usa um espaço de endereçamento virtual “imenso”, por ex. 2

63

bytes

− Ele pode escrever programas como se todas essas posições de memória existissem realmente!

− O SO e a arquitetura de memória gerenciam o mapeamento endereço virtual – físico

− Se o programa é realmente muito grande, deve existir uma forma de armazená-lo na memória da máquina – seja em memória ou em disco (“memória de massa”)

A memória real é normalmente muito menor que o espaço virtual de endereçamento

− o tanto quanto puder ser suportado…

− endereços físicos ou reais?

(52)

Memória Virtual

Mapeamento endereços virtuais – memória real é feita em blocos – tipicamente de 1 a 8KB

Blocos de memória virtual são chamados páginas

Páginas de memória virtual que estão no disco são chamadas de paginadas-fora (paged-out)

Uma referência feita a uma página que não está na memória principal é chamada de falha de página (page fault)

A transformação entre endereços virtuais em

endereços físicos (memory mapping) é feito através

de uma tabela de paginação (page table)

(53)

Mapeamento de endereços virtuais

0x0000 0x1000 0x2000 0x3000 0x4000

Prog A Virtual Addresses

Prog B Virtual Addresses Physical Memory

Addresses

Unused

Memory address space

Unused Unused

0x5000 0x6000 0x7000

0xD000 0xE000 0xF000

::: Disk Addresses :::

Virtual Address Space

No memory

space

(54)

Mapeamento de Memória

O mapeamento Endereço Virtual x Endereço Físico é também chamado de translação de endereço

No INTEL 80386: espaço de end. lógico de 4GB (2

32

) – 2

20

páginas de 4KB – endereços de 12 bits.

Uma tabela de página poderia ocupar de memória (entradas de 4 bytes) 4MB

memória (entradas de 4 bytes)

Endereços virtuais são divididos em Número da Página Virtual (NPV) e offset da página (12 bits, nesse caso)

Mapeamento de memória feito observando-se o NPV na tabela de páginas e concatenando com o offset da página

Nas arquiteturas atuais, o tamanho das tabelas

de página varia (esquema de diretório de tabelas)

(55)

Processo de Mapeamento

Considere um espaço de endereçamento virtual de 4 GB e um espaço físico em memória de 1 GB

31 30 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0

Número da Página Virtual Deslocamento

4GB

Translação

29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0

Número da Página Física Deslocamento

1GB

(56)

Falhas com Memória Virtual

Custo de uma falha é muito alto: em torno de ms para acessar um bloco de disco

As páginas devem ser grandes o suficiente para amortizar o alto custo de acesso (4 KB, 8 KB, e mesmo MB …)

− Mas não tão grandes para evitar a fragmentação…

− Tamanho fixado pelo hardware (MMU)

− Tamanho fixado pelo hardware (MMU)

Re-estruturação de programas reduz taxa de falhas

Processar as falhas de página por SW e não por HW

− Algoritmos sofisticados podem ser empregados

− Pequenos aumentos na miss rate podem ser recompensadas pela redução de custos do algoritmo

Evitar a política write-through:

− Escritas em níveis mais baixos são muito demoradas

(57)

Tabelas de Páginas (1)

As páginas deveriam poder ser localizadas em qualquer lugar conveniente na memória

− Qualquer página virtual pode ser mapeada em qualquer página física disponível

− Chamado mapeamento totalmente associativo

− Tabela de páginas faz o mapeamento e reside na

− Tabela de páginas faz o mapeamento e reside na memória

− Cada programa tem sua própria tabela de página

− O hardware tem um registrador de tabela que aponta para a tabela de página

O diagrama anterior de mapeamento torna-se, então:

(58)

Tabelas de Páginas (2)

Registrador da tabela de página

12

31 30 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0

Número da Página Virtual Deslocamento

Endereço Virtual

Validade Número da página física 20

4GB

29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0

Número da página física Deslocamento

Endereço Físico 18

Se Zero : Falha de página

Page table

1GB

(59)

Falhas de Página (Page Faults) (1)

Quando o valid bit é zero ele indica que a página não está na memória principal

O controle deve ser passado ao SO para buscar a página (ou criar a página, para páginas de dados…)

− Tipicamente o SO cria uma imagem do programa no disco quando o programa começa

− Busca as partes relevantes quando é preciso

− Onde olhar? – um mapeamento é necessário para mostrar onde estão as imagens no disco

− Pode ser parte da tabela de páginas ou ser feita em

separado

(60)

Falhas de Página (Page Faults) (2)

Se todas as páginas na memória física estão em uso e o S.O. precisa substituir uma – Qual será escolhida?

Política de substituição de páginas

Localidade Temporal é um critério normal

Menos recentemente usada (MRU ou LRU)

i.e., sendo os acessos recentes às páginas: 10, 12, 9, 7, 11, 10.

i.e., sendo os acessos recentes às páginas: 10, 12, 9, 7, 11, 10.

MRU numa falha de página trocaria a página 12; na próxima falha, substituiria a página 9, etc.

Tabelas de páginas tem um bit de uso ou referência

− “Levado a 1” quando a página é acessada

− Pode ser periodicamente “levado a 0” pelo S.O.

− Possibilita que o S.O. tenha uma visão aproximada das

páginas recentemente utilizadas

(61)

Falhas de Página (Page Faults) (3)

Para um endereço virtual de 32-bits, páginas de 4KB (12-bits) com 4 bytes por entrada na tabela de página

− 2

20

pag x 4 bytes = 4MB

− Isto para cada programa ativo → muito memória

“presa” em tabelas de páginas não usadas

Existem soluções para o problema, não abordadas

Existem soluções para o problema, não abordadas nesse curso

− Ex: registradores de limites

(62)

Operações de escrita

Write-through para o nível mais baixo da hierarquia (o disco nesse caso) é impraticável nesse caso

devido ao alto custo para a escrita no disco

A idéia é “salvar as escritas” para depois executá-las

Write-back quando a página é substituída!

Entretanto...

− Custoso e desnecessário fazer write-back para

− Custoso e desnecessário fazer write-back para

páginas para as quais não forem feitas escritas (por ex., páginas de programa)

− Assim, as tabelas de páginas têm um bit de sujeira (dirty bit) por entrada que é setado quando dados são escritos na página

− Se esse dirty bit é setado quando a página precisa ser substituída, ele é escrito em write-back para a

imagem do programa no disco

(63)

Fazendo isso rápido…

Tabela de páginas em máquinas atuais está na memória principal:

− 2 registradores: um de base da tabela na memória e outro indicando o no. de entradas

Portanto ...

− Cada acesso à memória lógica de um programa necessita de dois outros acessos à memória fícia necessita de dois outros acessos à memória fícia para achar a tabela de páginas

Como agilizar isso?

Localidade de referências novamente

Inserir numa cache as tabelas de página mais recentementes utilizadas:

Translation-lookaside buffer = cache inserida dentro

da MMU (memory management unit)

(64)

Translation-Lookaside Buffer (TLB)

Número da página virtual

Memória Física Validade Página Física ou End. Disco

Validade Rótulo End. Página Física

TLB

Disco Tabela de Página

(65)

Outro exemplo de TLB

(66)

Translation-Lookaside Buffer

TLB é uma cache

Se não existir a entrada na TLB, é preciso buscá-la na tabela de páginas que está na memória principal

A tabela de páginas tem uma entrada para cada página

O TLB e a página usam o dirty bit e o reference bit

Usar a abordagem write-back para esses bits da TLB

Usar a abordagem write-back para esses bits da TLB

para a página de tabelas numa falha é muito eficiente

(67)

Exemplos de Sistemas de Memória

Characteristic Intel Pentium Pro PowerPC 604

Virtual address 32 bits 52 bits

Physical address 32 bits 32 bits

Page size 4 KB, 4 MB 4 KB, selectable, and 256 MB

TLB organization A TLB for instructions and a TLB for data A TLB for instructions and a TLB for data Both four-way set associative Both two-way set associative

Pseudo-LRU replacement LRU replacement

Instruction TLB: 32 entries Instruction TLB: 128 entries Data TLB: 64 entries Data TLB: 128 entries

TLB misses handled in hardware TLB misses handled in hardware

Characteristic Intel Pentium Pro PowerPC 604

Cache organization Split instruction and data caches Split intruction and data caches Cache size 8 KB each for instructions/data 16 KB each for instructions/data Cache associativity Four-way set associative Four-way set associative

Replacement Approximated LRU replacement LRU replacement

(68)

Memória x área do processador

(69)

Próximo passo...

Arquiteturas Avançadas:

multicomputadores e

multiprocessadores

(70)

Sistemas Multiprocessadores (I)

Mais que uma CPU

Em geral confinadas a um mesmo espaço físico (gabinete, rack, ...)

Fortemente acoplados

Comunicação via memória compartilhada

(71)

Sistemas Multiprocessadores (II)

CPU

CPU cache

Mem Bus

(72)

Sistemas Multiprocessadores (III)

Switch

CPU

Switch (Ômega)

Mem

(73)

Sistemas Multiprocessadores (IV)

CPU

Mem

Crossbar

(74)

Sistemas Multicomputadores (I)

Mais que uma CPU

Máquinas podem estar geograficamente distantes

Sistemas fracamente acoplados

Sistemas fracamente acoplados

Cada processador possui sua memória local

própria e a comunicação é feita por passagem de

mensagens

(75)

Sistemas Multicomputadores (II)

CPU Mem local

CPU

Rede

(76)

Sistemas Multicomputadores (III)

MALHA TRIDIMENSIONAL (k=3, n=3)

CPU Mem local

CPU

(77)

Desafios

Balanceamento de carga entre processadores

Adequação aplicação x arquitetura

Coerência de memória (cache)

Linguagem de programação e compiladores

Limitações físicas: temperatura, comprimento das ligações, custo

ligações, custo

(78)

Mini Computer (chegando ao limite)

“Cadeia alimentar dos computadores” até 1990

Mainframe

Vector Supercomputer MPP

Workstation PC (futuro incerto)

(79)

Cadeia alimentar dos computadores: Clusters substituem

as “grandes máquinas”

Imagem

Referências

temas relacionados :