UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

40
UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2

Transcript of UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Page 1: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

UNIP - UNIVERSIDADE PAULISTA

ORGANIZAÇÃO DE COMPUTADORES

RESUMO B2

Page 2: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

UNIP - UNIVERSIDADE PAULISTA

ORGANIZAÇÃO DE COMPUTADORES

RESUMO B2

Page 3: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

EXECUÇÃO DE INSTRUÇÕESVantagens do interpretador em relação ao hardware puro :

• Capacidade de corrigir no campo eventuais erros na implementação de instruções.

• Oportunidade de incorporar novas instruções nas máquinas já existentes.

• Projeto estruturado que permite o desenvolvimento, teste e documentação de instruções complexas de maneira muito eficiente. Pode inclusive substituir implementações antigas de instruções.

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

 Problema 2: O uso da interpretação permitiu 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).

Page 4: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

EXECUÇÃO DE INSTRUÇÕESRISC versus CISC

• RISC - Reduced Instruction Set Computer.• tecnologia para máquinas de alta performance (Inicialmente

não havia preocupação com compatibilidade)• Máquina com conjunto reduzido de instruções básicas em

hardware (~50 instruções).• Uso de chips processadores VLSI (Very Large Scale

Integration) sem interpretação.• Demais instruções eram geradas por combinação das

instruções básicas de hardware.

• CISC - Complex Instruction Set Computer.• Tecnologia mais antiga e usada para famílias de

computadores compatíveis a nível de software.• Número maior de instruções (~ 200 a 300 instruções).• Uso extensivo de interpretação (principalmente para

modelos + baratos).

Page 5: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

EXECUÇÃO DE INSTRUÇÕESArgumento:

Mesmo que uma máquina RISC precisasse de 4 ou 5 instruções para fazer o que uma maquina CISC faria com apenas 1 instrução, se a instrução RISC fosse 10 vezes mais rápida (só hardware) a máquina RISC vencia.

Questão: Por que então a tecnologia RISC não suplantou a CISC ?

• Problemas de compatibilidade com máquinas antigas com software já desenvolvido.

• Aparecimento de soluções híbridas: Por exemplo, a INTEL usa RISC para instruções de uso mais frequentes (Núcleo RISC) e intepretação para aquelas mais complexas e de uso menos frequentes.

Page 6: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

Princípios de Projeto para  Computadores Modernos

Princípios do projeto RISC que os arquitetos de processadores de

propósito geral devem seguir:

• Todas as instruções são diretamente executadas por hardware

• Não existe o nível de microinstrução.

• Para máquina com filosofia CISC as instruções, em geral menos frequentes, que não existem em hardware são interpretadas.

• Maximizar a Taxa à qual as instruções são executadas

• Uso de paralelismo: execução de várias instruções lentas ao mesmo tempo.

• Execução de instruções não precisa seguir a lógica da programação.

Page 7: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

Princípios de Projeto para  Computadores Modernos

•As instruções precisam ser facilmente decodificadas

• decodificação influencia na velocidade de execução das instruções.

• decodificação determina os recursos a serem usados na execução das instruções.

• quanto menor o número de formatos, mais fácil a decodificação.

• Somente as Instruções de Load e Store devem referenciar a Memória

• Acesso a memória é mais lento.

• Instruções que acessam a memória podem ser intercaladas com outras instruções.

• Projetar uma máquina com muitos registradores (>= 32)

• Palavras de memória devem permanecer nos registradores o maior tempo possível. A falta de registradores pode obrigar a buscar varias vezes a mesma palavra da memória.

Page 8: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

Princípios de Projeto para  Computadores Modernos

Observação:  Outras soluções

Existe limite tecnológico para desenvolvimento do hardware do chip de processamento que depende do estado da arte da tecnologia.Solução para aumentar a velocidade do processador: Uso de paralelismo.

• a nível de instrução: 1 único processador deve executar mais instruções por segundo.

• a nível de processadores: vários processadores trabalhando juntos na solucão do mesmo problema.

Page 9: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

PARALELISMO NO NÍVEL DAS INSTRUÇÕES

Maior gargalo para a velocidade de execução de instruções é o acesso à memória.

Execução em Pipeline:

O processamento em pipeline divide a execução de instruções em várias partes, cada uma das quais tratada por um hardware dedicado exclusivamente a ela.

    Funcionamento de um pipeline de 5 estágios:

• O estágio 1 busca a instrução da memória e armazena num buffer até chegar a hora de executá-la.

• No estágio 2 ocorre a decodificação da instrução, determinando tipo e operandos.

• No estágio 3 ocorre a busca dos operandos na memória ou nos registradores.

• No estágio 4 temos a execução - passagem pelo caminho de dados.• No estágio 5 o resultado do processamento é escrito num registrador.

Page 10: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadores

PARALELISMO NO NÍVEL DAS INSTRUÇÕES

Figura 3.3 – (a) Pipeline de 5 estágios ; (b) Estado de cada um dos estágios como função de tempo. Estão ilustrados 9 períodos de clock.

A idéia básica do pipeline é a mesma de uma linha de produção em série. Vários processamentos estão sendo executados ao mesmo tempo.

Page 11: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES

PARALELISMO NO NÍVEL DAS INSTRUÇÕES

       ARQUITETURAS SUPERESCALARES

Se um pipeline é bom,  com certeza dois serão ainda melhor. (Veja figura 3.4). Neste caso, uma única unidade de busca de instruções lê 2 instruções e coloca cada uma em 1 pipeline.

A execução dessas instruções é feita em paralelo e:• Não pode haver conflitos pelo uso de recursos (mesmo

registro, por exemplo). • O resultado de uma instrução não pode depender do

resultado

da outra.• Pode-se pensar em pipelines com leitura inicial de 3 ou

mais

instruções, porém, o hardware fica complexo.

Page 12: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadoresPARALELISMO NO NÍVEL DAS INSTRUÇÕES

Figura 3.4 – 2 pilpelines de 5 estágios com uma unidade de busca de instruções comum a ambos.

Máquinas de alta performance usam outra metodologia, a arquitetura Superescalar.

A idéia básica é ter um único pipeline, com diversas unidades funcionais (Veja Figura 3.5).

Page 13: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

Organização de computadoresPARALELISMO NO NÍVEL DAS INSTRUÇÕES

O estágio 3 pode distribuir instruções a uma velocidade consideravelmente mais alta do que o estagio 4 pode executá-las. Este estágio usa vários dispositivos de hardware (inclusive mais do que uma UAL) para acelerar o processamento neste estágio.

Figura 3.5 – Processador superescalar com 5 unidades funcionais. !!!

Figura 3.5 – Processador superescalar com 5 unidades funcionais. !!!

Page 14: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

A medida que os processadores vão ficando mais rápidos:

1. Aparecem limitações de ordem física (velocidade da luz em fios de cobre ou fibras opticas).

2. Maior produção de calor pelo chip (problema para

dissipar essa energia)

    Operação do processador em  pipeline ou  em superescalar possibilita ganhos de 5 a ~10 vezes

    Para ganhos maiores, 50-100 ou mais vezes, deve-se projetar computador com mais de 1 processador

Page 15: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Computadores Matriciais (2 implementações):

Processador matricial (veja figura 3.6).

1. composto de grande número de processadores idênticos.

2. Cada processador executa a mesma sequência de instruções sobre

diferentes conjuntos de dados.

3. Tem uma única unidade de controle.

4. Tem uma UAL para cada processador.

Page 16: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Processador vetorial

1. Muito parecido com processador matricial.

2. Operações aritméticas são executadas numa única UAL, que opera em

pipeline.

3. Operandos são colocados em um registro vetorial para serem

processados na UAL.

Page 17: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Processador matricial x vetorial

1. Programação para o matricial voltada ao paralelismo

(+difícil ).

2. Processador matricial é, em geral, mais rápido

principalmente para repetição de um mesmo

processamento em vários "pedaços" dos dados.

3. Processador vetorial se adapta a processamentos

paralelos e não paralelos.

4. Hardware do matricial é mais caro (muitas UALs).

Page 18: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Figura 3.6 – Processador Matricial

Problema: Os processadores matriciais não são independentes  pois compartilham uma única UC.

Page 19: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Multiprocessadores

1. É composto de vários processadores independentes

2. Compartilham  uma mesma memória por um barramento principal (veja

figura 3.6(a) ou compartilham uma memória e tem memórias locais (vej

a figura 3.6(b).

a. executam processamentos locais.

b. liberam trafego do barramento principal

c. é necessário gerenciar conflitos

Page 20: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Figura 3.6: (a) Multiprocessador organizado em torno de um único barramento. (b) Multicomputador com memórias locais. 

Page 21: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Figura 3.7: (a) Sistema multiprocessador com 16 processadores compartilhando uma única memória. (b) Imagem dividida em 16 seções, cada uma delas sendo analisada por um processador diferente.

Page 22: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)Multicomputadores

1. Sistemas com um grande número de computadores interconectados.

2. Não existe nenhum tipo de memória comum sendo compartilhada.

3. Comunicação entre computadores é feita através de troca de mensagens a uma

velocidade bem alta.

4. Computador não precisa estar ligado diretamente com todos os outros (uso de

topologias em árvore, anéis, etc..)

Page 23: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Figura 3.8: (a) Sistema multicomputador com 16 processadores, cada qual com a sua própria memória. (b) O mapa de bits da Figura 3 dividido entre as 16 memórias do sistema.

Figura 4: (a) Sistema multicomputador com 16 processadores, cada qual com a sua própria memória. (b) O mapa de bits da Figura 3 dividido entre as 16 memórias do sistema.

Page 24: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

IMPORTANTE: 1. Programar um multicomputador é muito mais

difícil do que programar um multiprocessador.

2. Multicomputadores de grande porte são muito mais simples de serem construídos, e muito mais baratos do que multiprocessadores com o mesmo número de processadores.

Por exemplo: É difícil implementar compartilhamento de memória para centenas de processadores e, não é muito complicado construir multicomputadores com 10000 processadores.

Page 25: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

3. Buscar uma solução híbrida: Combinação dos pontos fortes de cada

arquitetura, ou seja, Busca de computadores fáceis de

construir e de programar. A Figura 3.9 mostra algumas soluções

que podem ser usadas para implementação de memória compartilhada em diferentes níveis da máquina.

Page 26: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

Figura 3.9: As diversas camadas nas quais a memória compartilhada pode ser implementada. (a) hardware. (b) O sistema operacional. (c) O ambiente de execução da linguagem.

Page 27: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

LIÇÕES APRENDIDAS COM PIPELINES:

•Pipeline não reduz a latência de uma única tarefa, ajuda no

throughput de todo o trabalho;

•A taxa de pipeline é determinada pelo estágio mais lento.

•Tarefas múltiplas ocorrem de forma simultânea.

•Aceleração potencial (Speedup) = número de estágios do pipe.

•Comprimentos desbalanceados de estágios reduzem speedup.

• Tempo para ”preencher” o pipeline e para drená-lo reduzem speedup.

Page 28: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

VANTAGENS E INCONVENIENTES

•VANTAGENS:

•Reduz o tempo médio de execução de programas.

•Reduz o CPI (Clocks por istrução).

•Reduz a duração do ciclo de clock.

•Acelera o processamento sem mudar a forma de programação.

Page 29: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO II

(Paralelismo ao Nível do Processador)

VANTAGENS E INCONVENIENTES

•INCONVENIENTES:

•Estágios, em geral, não podem ser totalmente balanceados.

•Implementação complexa, acrescenta custos (hardware, tempo).

•Para ser implementado, conjunto de instruções deve ser simples.

•CONCLUSÃO: Pipelines são difíceis de implementar, fáceis de usar.

Page 30: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III - INTRODUÇÃO

A MEMÓRIA:

É a parte, no computador, onde os programas e dados são armazenados para processamento. A informação permanece na memória - principal – enquanto for necesssária para seu emprego pela CPU. O armazenamento é feito em forma de dígitos binários (bits). Quem controla a sua utilização é o Sistema Operacional

Page 31: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

ESTRUTURA DA MEMÓRIA PRINCIPAL – CÉLULAS E ENDEREÇOS

A memória precisa ter uma organização que permita ao computador guardar e recuperar as informações quando necessário.

É preciso ter um mecanismo que registre exatamente onde a informação foi armazenada, para que a mesma possa ser recuperada.

• CÉLULA

1. É a unidade de armazenamento do computador. A memória principal é organizada em

células.

2. É a menor unidade da memória que pode ser endereçada (Não é possível buscar uma

“parte” da célula) e tem um tamanho fixo (para cada máquina ).

3. As memórias são compostas por um determinado número de células e cada uma é

composta por um determinado número de bits.

4. Todas as acélulas de um computador têm o mesmo tamanho, ou seja, todas têm o mesmo

número de bits .

Page 32: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE

MEMÓRIA• CÉLULA

5. Cada célula é identificada por um endereço único, pelo qual é referenciada

pelo sistema e pelos programas. São enumeradas sequencialmente, de 0 a

(N – 1).

6. Unidade de transferência é a quantidade de bits que é transferida da memória

em uma operação de leitura ou transferida para a memória em uma única

operação de escrita.

7. O tamanho da célula poderia ser igual ao tamanho da palavra, e também à

unidade de transferência. Porém, por razões técnicas e de custo, são

frequentemente diferentes.

8. Uma célula não significa o mesmo que uma palavra; uma célula não contém,

necessariamente uma palavra.

Page 33: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

PALAVRA:

É a unidade de processamento da CPU. Deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação.

A estrutura da memória principal é um problema do projeto do hardware:

• Mais endereços com células menores ou • -Menos endereços com células maiores.

Page 34: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ORDENAÇÃO DOS BYTES

ORDENAÇÃO DOS BYTES

    Existem, basicamente, 2 formas de organização dos bytes em uma palavra de memória

    Ordenação Big endian

•bytes são numerados da esquerda para a ireita  0,1,2,...,

n-1

•usadas por sistemas Unix (arquiteturas SPARC, IBM Mainframe)

•ver exemplo na figura 4..1(a) para palavra de 4 bytes (32 bits) 

•exemplo numérico com 2 bytes: 0208H = 00000010 00001000

Page 35: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

A organizaçao da memória depende do número de bytes por palavra. Veja a figura abaixo:

Figura 1: 3 maneiras de organizar uma memória de 96 bits

Figura 4: 3 maneiras de organizar uma memória de 96 bits

Page 36: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

Ordenação Little endian

• bytes são numerados da direita para esquerda n-1,

...,2,1,0

•Usado por IBM PCs (arquiteturas INTEL)

•Ver exemplo na figura 4.1(b) para palavra de 4 bytes

•exemplo numérico com 2 bytes: 0208H = 00001000 00000010

Page 37: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

Fig 4.1: (a) Memória big endian ; (b) memória little endian

Page 38: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE

MEMÓRIA

Figura 4.2: (a) Registro de determinado funcionário em uma máquina Big endian; (b) O mesmo registro em uma máquina little endian; (c) Resultado da transferência da máquina Big endian para a máquina little endian; (d) O resultado da troca de bytes de ©.

Page 39: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

  Problemas causados pela falta de padronização do armazenamento em memória:

•interpretação de instruções e dados em redes

•softwares que rodam em várias plataformas devem tratar essas diferenças (swapp de memoria)

•uso de plataformas de palavras de diferentes tamanhos    

Importante: A solução para o problema acima não é trivial, em geral se baseia em inversão dos bytes. Isto funciona para valores numéricos mas não para cadeias de caracteres, como mostra a figura 3.

Page 40: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES RESUMO B2.

ORGANIZAÇÃO DE COMPUTADORESUNIDADE III – ENDEREÇOS DE MEMÓRIA

CAPACIDADE DA MEMÓRIA PRINCIPAL 

A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.

T = N x MT = capacidade da memória em bitsN = nº de endereços ( como vimos anteriormente, N=2x sendo x = nº de bits do endereço)M = nº de bits de cada célula

Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e depois multiplicar por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células.

O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1).