62
Organização e Arquitetura de Computadores Clarimar José Coelho http://professor.ucg.br/siteDocente/home/professor.asp?key=5021

arquitetura_de_computadores

Embed Size (px)

Citation preview

Page 1: arquitetura_de_computadores

Organização e Arquitetura de Computadores

Clarimar José Coelho

http://professor.ucg.br/siteDocente/home/professor.asp?key=5021

Page 2: arquitetura_de_computadores

2

Ementa

Estudo dos componentes e de sua organização em um computador digital, com a análise do projeto de instruções, da hierarquia de memória e de arquiteturas paralelas e discussão das técnicas de aumento de desempenho de processadores

Page 3: arquitetura_de_computadores

3

Bibliografia

Básica− Tanenbaum, A. S. Organização Estruturada

de Computadores, Prentice-Hall, Brasil, 2007.− Satllings, W. Arquitetura e Organização de

Computadores, Prentice-Hall, 2002. Complementar

− Hennessy, J. L. Patterson, D. A. Organização e Projeto de Computadores, Campus, 2005.

− Weber, R. F. Fundamentos de Arquitetura de Computadores, Sagra-Luzzatto, 2004.

− Monteiro, M. A. Introdução à Organização de Computadores, LTC, 2001.

Page 4: arquitetura_de_computadores

4

Conteúdo programático Organização de

computadores: arquitetura von Neumann, memórias, unidades centrais de processamento, entrada e saída

Modos de endereçamento, conjunto de instruções

Barramento, comunicações, interfaces e periféricos

Organização de memória. Memória auxiliar.

Arquitetura RISC e CISC

Pipeline, processadores superescalares e superpipeline.

Processadores com múltiplos núcleos e múltiplas trheads

Multiprocessadores. Multicomputadores

Paralelismo de baixa granularidade

Arquiteturas paralelas e não convencionais

Page 5: arquitetura_de_computadores

5

Avaliações

Primeira N1 - 30/08

Segunda N1 – 24/09

Primeira N2 – 17/10

Segunda N2 – 19/11

Terceira N2 - 13/12

Page 6: arquitetura_de_computadores

6

Definições A Arquitetura de Computadores trata do

comportamento funcional de um sistema computacional, do ponto de vista do programador

− Exemplo: tamanho de um tipo de dados – 32 bits para um inteiro

A Organização de Computadores trata da estrutura interna que não é visível para o programador

− Exemplo: freqüência do relógio ou tamanho da memória física

Existe um conceito de níveis na arquitetura de computadores

− A idéia básica é que existem muitos níveis nos quais o computador pode ser considerado

Do nível mais alto, onde o usuário executa programas Ao nível mais baixo, que consiste de transistores e fios

Page 7: arquitetura_de_computadores

7

O modelo von Neumann Possui cinco componentes principais:

− (1) unidade de entrada − (2) unidade de saída− (3) unidade lógica aritmética− (4) unidade de memória− (5) unidade de controle.

Unidade aritméticae lógica

Unidade de entrada

Unidade de controle

Unidade de saída

Unidade de memória

Page 8: arquitetura_de_computadores

8

Tendências tecnológicas

1980 – Aperfeiçoamento dos circuitos integrados

− Aumento do desempenho dos computadores− Densidade

Quantos transistores e ligações pode ser colocados em uma área fixa em um chip de silício

− Velocidade Rapidez com que as portas lógicas básicas e dispositivos

de memória operam− Área

Tamanho físico do maior circuito integrado que pode ser fabricado

Page 9: arquitetura_de_computadores

9

Lei de Moore

O aumento do desempenho dos computadores nas últimas décadas é devido

− Ao crescimento do desempenho dos computadores é geométrico e não linear

Em média, o número de transistores em chip aumentou 50% ao ano

A velocidade do transistor aumentou tanto que o atraso de uma porta lógica (E, OU) diminuiu 13% ao ano

Taxa de crescimento anual de 60%− A quantidade de dados que pode ser armazenada

em um chip de memória RAM dinâmica quadruplicou a cada 3 anos desde o final da década de 70

Page 10: arquitetura_de_computadores

10

Média geométrica versus aritmética

Quais são as médias aritmética e geométrica dos valores 4,2,4,82?

A Média aritmética desta série é

A média geométrica é

424824

=23

442482=7,16

Page 11: arquitetura_de_computadores

11

Desempenho dos microprocessadores

Do final de 1970 ao final de 1980− O cresceu 35% ao ano devido ao aperfeiçoamento

na tecnologia de fabricação − Efetivamente a taxa cresceu mais de 50% ao ano− Embora a taxa de fabricação de semicondutores

tenha permanecido constante− O aumento do desempenho tem sido devido a

melhorias na arquitetura e na organização de computadores

− Com aumento da densidade É possível acrescentar recursos aos microprocessadores

que aumenta o desempenho acima do aumento da velocidade dos transistores

Page 12: arquitetura_de_computadores

12

Exemplo Ilustração da rapidez com que a tecnologia de

computadores está sendo aperfeiçoada Se tivesse acontecido a mesmo

aperfeiçoamento com os carros Assuma que um carro médio, em 1977, tinha

uma velocidade máxima de 160 km/h e consumo médio de 6,4km/l

Se tivesse um aperfeiçoamento a uma taxa de 35% ao ano de 1977 a 1987

E de 50%, de 1987 a 2000 Qual seria a velocidade máxima e o consumo

de um carro em 1987? E em 2000?

Page 13: arquitetura_de_computadores

13

Medindo desempenho A melhor medida de desempenho é o tempo de execução

dos programas MIPS – Milhões de Instruções por Segundo

− Taxa pela qual a máquina executa instruções− Divisão do número de instruções de um programa pelo

seu tempo de execução CPI – Ciclos Por Segundo

− Número de ciclos de relógio para executar cada instrução

IPC – Instrução Por Ciclo

CPI=ciclos

instruções

IPC=instruçõesciclos

Page 14: arquitetura_de_computadores

14

Considerações Taxa MIPS

− Não leva em conta que diferentes sistemas precisam de números diferentes de instruções para implementar um programa

IPC - valores altos--> programa demorou menos ciclos--> bom desempenho

CPI – valores altos --> foram usados mais ciclos --> fraco desempenho

CPI/IPC (são usados em simuladores: quantos ciclos são

usados em uma dada arquitetura)

− Medidas menos úteis do que MIPS (t=nr. Instruções * MIPS)− Não tem informação sobre a freqüência do relógio do

sistema− Ou quantas instruções o sistema exige para executar uma

tarefa

Page 15: arquitetura_de_computadores

15

Exemplo Dado um programa com um laço de 100 instruções

executado 42 vezes. Se ele demora 16.000 ciclos Quais são os valores de CPI e IPC?

Conjuntos de benchmark

MIPS e CPI/IPC tem limitações Benchmark consiste em uma série de programas

típicos executados no sistema (SPECCPU 2000 Benchmark)

Baseado em tempos totais de execução não na taxa de execução de instruções (média do desempenho para vários programas)

Page 16: arquitetura_de_computadores

16

Aceleração Descreve como o desempenho de uma arquitetura muda

a medida que diferentes melhoramentos são feitos Razão entre os tempos de execução antes e depois que

a mudança é feita

Se um programa demora 25s numa arquitetura e 15s em uma nova versão dessa mesma arquitetura

A aceleração geral é de?

Aceleração=Tempodeexecuçãoantes

Tempode execuçãodepois

Exemplo

Page 17: arquitetura_de_computadores

17

Lei de Amdahl Regra básica de projeto de computadores

− O mais comum deve ser rápido

− A freqüência com que o aperfeiçoamento é usado é importante para o desempenho geral

Tempode execuçãonovo=Tempode execuçãoantigo×[Parcelanão−usadaParcelausada

Acelaraçãousada]

Parcela_{não-usada} − Parcela de tempo (não instruções) onde o aperfeiçoamento

não está em uso Parcela_{usada}

− Parcela onde o aperfeiçoamento está em uso Aceleração_{usada}

− Que acontece quando o aperfeiçoamento é usado Parcela_{não-usada} e Parcela_{usada}

− São calculadas usando o tempo de execução antes que as modificações sejam aplicadas

Page 18: arquitetura_de_computadores

18

Lei de Amdahl reescrita

Suponha que uma arquitetura não tenha suporte para multiplicações (adições repetidas)

Se a multiplicação por software demora 200 ciclos e quatro ciclos por hardware

Qual a aceleração geral produzida pelo hardware para multiplicação se um programa gasta 10% do seu tempo fazendo multiplicação?

Aceleração=Tempodeexecuçãoantigo

Tempodeexecuçãonovo

=1

Parcelanão−usadaParcelausada

Acelaraçãousada

Exemplo

Page 19: arquitetura_de_computadores

19

Exercícios Se a versão de 1998 de um computador executa um programa em 200s a

versão fabricada no ano 2000 executa o mesmo programa em 150s, qual a aceleração que o fabricante obteve ao longo de um período de 2 anos?

Quando está executando um programa em particular, o computador A atinge 100MIPS e o computador B atinge 75MIPS. Porém, o computador A demora 60s para executar o programa, enquanto o computador B demora só 45s. Como isso é possível?

Qual o é IPC de um programa que executa 35.000 instruções e exige 17.00 ciclos para ser executado?

Suponha que, ao executar um dado programa, um computador gaste 90% do seu tempo tratando um tipo especial de cálculo, e que seus fabricantes façam um mudança que melhore o seu desempenho, naquele tipo de cálculo, por um fator de 10.

− 1. Se o programa demorava, originalmente, 100s para executar, qual será o seu tempo de execução depois da modificação?

− 2. Qual é a aceleração do sistema novo em relação ao antigo?

− Qual parte do seu tempo de execução o novo sistema gasta executando o tipo de cálculo que foi aperfeiçoado?

Page 20: arquitetura_de_computadores

20

Representação de dados e aritmética de Computadores

De eletrons a bits

− A convenção de sinais de um sistema digital determina como os sinais elétricos analógicos são interpretados como valores digitais

0V V 0L V IL V IH V 0H

Tensão de alimentação

Faixa de tensão que será interpretada como 0 na entrada de um circuito

Faixa de tensão que será interpretada como 1 na entrada de um circuito

Região proibidaFaixa legal para um 0 na saída de um circuito

Faixa legal para um 1 na saída de um circuito

Page 21: arquitetura_de_computadores

21

Comentários

tensão mais alta que um circuito pode produzir para gerar um zero lógico

tensão mais baixa que um circuito pode produzir para gerar um valor lógico 1

devem estar mais próximos aos extremos da faixa de tensão do que

Os intervalos entre e determinam as margens de ruído do sistema digital

− Quantidade que um sinal de saída pode mudar− Antes que seja interpretado por outro circuito como

o valor oposto

V 0L

V 0H

V 0H eV 0L

V IH eV IL

V 0L V IL

Page 22: arquitetura_de_computadores

22

Exercício Suponha que um sistema digital tenha

V DD=3,3V ,V IL=1,2V ,V 0L=0,7V ,V IH 2,1V ,V 0H=3,0V.

Qual é a margem de ruído para esta convenção de sinais?

Page 23: arquitetura_de_computadores

23

Sistemas binários

Mapeiam cada sinal elétrico sobre dois valores A informação que cada sinal carrega é chamada de

um bit Sistema com mais valores por sinal são possíveis

− A complexidade de projetar circuitos para representar essa convenções de sinais

− A redução nas margens de ruído que ocorre quando a faixa de tensão é dividida em mais do que dois valores

− Tornam esses sistemas difíceis de ser construídos

Page 24: arquitetura_de_computadores

24

Representação binária de inteiros positivos

São representados usando o sistema binário de numeração posicional base 2

Semelhante ao sistema posicional base 10

− O números são representados como a soma dos múltiplos de cada potência de 10

Binário1543=1×1035×1024×1013×100

100111=1×250×240×231×221×211×20=39

Os número binários são precedidos pelo prefixo 0b

Page 25: arquitetura_de_computadores

25

Valores representados Decimal

− Um número decimal com n dígitos pode representar valores de 0 até

Binário

− Um número binário com n dígitos sem sinal pode representar valores de 0 até

− Exigem mais dígitos que os números decimais para representar um certo inteiro

Hexadecimal

− 0 a 9 mesmos valores que na notação decimal

− A até F ou a até f são usados para representar os número 10 até 15

Exemplo

− Quais são as representações binárias e hexadecimal do número 47?

10n−1

2n−1

Page 26: arquitetura_de_computadores

26

Exercícios

Mostre como os seguintes inteiros seriam representados por um sistema que utiliza inteiros de 8 bits sem sinal

− a) 37 b) 89 c) 4 d) 126 e) 298 Quais são as representações hexadecimais dos

seguintes inteiros? − a) 67, b) 142 e c) 1348

Page 27: arquitetura_de_computadores

27

Operações aritméticas com inteiros positivos

A aritmética base 2 é feita usando as mesmas técnicas da aritmética base 10

Exemplo

− Calcule a soma de 9 e 5 usando números binários em um formato de 4 bits -->9=0b1001 5=0b0101

− 1− 0b 1 0 0 1− 0b 0 1 0 1− 0b 1 1 1 0

Transporte do bit resultante da adição (vai 1)

Entrada 2 Entrada 1

Saída do transporte

Entrada do transporte

Bit de saída

Somador completo

Page 28: arquitetura_de_computadores

28

Adição O hardware usado nos computadores é muito

parecido com o procedimento mostrado antes A velocidade do circuito é depende do tempo que

demora para propagar os sinais de transporte (vai 1) por todos os somadores completos

Cada somador não pode executar sua parte no cálculo até que todos os somadores à sua direita tenha completado seu cálculo

O tempo cresce linearmente com o número de bits nas entradas

Ganho de desempenho

− Fazer o máximo de cálculo em um somador antes que cada entrada de transporte esteja disponível

Page 29: arquitetura_de_computadores

29

Exercícios

Calcule as somas dos seguintes pares de inteiros sem sinal:

− a) 0b11000100+0b00110110− b) 0b00001110+0b10101010− c) 0b11001100+0b00110011− d) 0b01111111+0b00000001

Quantos bits são necessários para representar os seguintes números decimais como inteiros binários sem sinal?

− a) 12 b) 147 c) 384 d) 1497

Page 30: arquitetura_de_computadores

30

Subtração

É tratada por métodos similares ao da adição Usa módulos que calculam um bit da diferença entre

dois números

Inteiros negativos A notação em complemento de 2 permite que a

subtração seja feita ao negar a segunda entrada e fazer a soma

O mesmo hardware da soma pode ser usado

Multiplicação De inteiros com sinal é feita igual é feita pelos seres

humanos

Page 31: arquitetura_de_computadores

31

Exemplo

Na multiplicação de inteiros o produto de 2 número de n bits pode exigir até 2n bits para ser representado

O produto de 2 números de 4 bits exige 6 bits para ser representado

Isso é conhecido com transbordo (overflow) ou transbordo negativo (underflow)

0b 1 0 1 1 0b 0 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 --> 0b110111

Problema

Page 32: arquitetura_de_computadores

32

Divisão

Pode ser implementada subtraindo o divisor do dividendo

E contando o número de vezes que o divisor pode ser subtraído do dividendo

Antes que o dividendo torne-se menor que o divisor

Não é prático construir hardware para fazer divisão por subtração repetidas

dividido por 2 é --> subtrações

Em um computador com 1 Ghz, isso demoria quase 1s

Muito mais tempo do que qualquer operação aritmética

Os projetistas usam métodos baseados em pesquisa em tabelas pré-geradas para implementar a divisão

231 230 230

Page 33: arquitetura_de_computadores

33

Transbordo e transbordo negativo A largura de bits de um computador limita o maior e o

menor número que pode ser representado como inteiro

Inteiros sem sinal Um número de n bits pode representar valores de 0

até Operações com números que podem ser

representados em um número de bits Podem gerar resultados que não pode ser

representado nesse formato Exemplo

− Somar dois inteiros de n bits pode produzir um resultado de até o que não pode ser representado em n bits

2n−1

22n−1

Page 34: arquitetura_de_computadores

34

Exemplo cont.

Ao subtrair dois inteiros positivos é possível gerar resultados negativos

Que não pode ser representado por um número de n bits sem sinal

Ocorre transbordo quando o resultado não pode ser armazenado no formato de seus operandos

Overflow – o resultado é grande demais

Underflow – resultado é pequeno demais para ser representado naquele formato

Alguns sistemas sinalizam um erro quando os transbordos ocorrem

Outros substituem o resultado pelo valor mais próximo que pode ser representado naquele formato

No caso de ponto flutuante existe um conjunto de representações especiais que especifica que ocorreu um transbordo chamados NaNs

Page 35: arquitetura_de_computadores

35

Inteiros negativos A notação de numeração posicional usada para

inteiros precisa ser expandida para indicar se um número é positivo ou negativo

Representação sinal magnitude O bit mais significativo de um número binário indica

se o número é positivo ou negativo O resto do número indica o valor absoluto (ou

magnitude) do número Usa o mesmo formato que a representação binária

sem sinal Números de n bits em sinal e magnitude podem

representar quantidades de −2n−1−1até2n−1−1

Page 36: arquitetura_de_computadores

36

Representações para zero Existem duas: com sinal de magnitude +0 e -0

+0 tem o valor 0 no campo de magnitude e o bit de sinal positivo

O -0 tem um valor igual a 0 no campo de magnitude e o bit de sinal negativo

Exemplo A representação binária sem sinal em 16 bits de 152 é 0b0000

0000 1001 1000. Em um sistema de 16 bits em sinal e magnitude, -152 seria representado como 0b1000 0000 1001 1000

Nesse representação é fácil formar o número negativo de um número invertendo o bit de sinal

Verificar se o número é positivo ou negativo também é fácil

É fácil executar a multiplicação e a divisão

Não é fácil executar a soma e a subtração

Page 37: arquitetura_de_computadores

37

Divisão e multiplicação O hardware executa operações sem sinal na parte de

magnitude das entradas

Verifica os bits de sinal das entradas para determinar o bit de sinal do resultado

Exemplo Multiplique os números +7 e -5 usando inteiros de 6 bits em

sinal e magnitude

Soma e subtração Exige um hardware mais complexo

Somar ou subtrair a representação binária de um número positivo e a representação binária de um número negativo não dá o resultado correto

O hardware precisa levar em conta o valor do sinal de bit quando estiver calculando cada bit de saída

É necessário hardware diferente para executar a adição e a subtração

Muito poucos sistemas usam sinal e magnitude

Page 38: arquitetura_de_computadores

38

Exemplo Qual é o resultado de tentarmos somar diretamente as

representações em 8 bits em sinal e magnitude de +10 e -4?

Exercícios

− Converta os seguintes números decimais para a

representação em 8 bits em sinal e magnitude:

a) 23, b) -23, c) -48, d) -65

Page 39: arquitetura_de_computadores

39

Notação em complemento de 2

Nessa notação o número negativo é representado invertendo-se cada bit da representação sem sinal do número somando 1

Descarta-se os bits de transbordo que excedam a largura da representação

O nome complemento de 2 vem do fato que a soma sem sinal de um número com n bits em complemento de 2 com o seu negativo é

Exemplo

− Qual é a representação em 8 bits, em complemento de 2, de

-12, e qual é o resultado sem sinal da soma das

representações de +12 e de -12?

2n

Page 40: arquitetura_de_computadores

40

Exemplos Qual é o resultado de negar duas vezes a representação de +5, em 4

bits, em complemento de 2?

Some os valores +3 e -4 em notaçao de 4 bits em complemento de 2

Executar uma multiplicação direta das entradas, sem sinal, das entradas em complemento de 2, não fornece o resultado correto

Extensão de sinal Em aritmética de computadores, as vezes é preciso converter números

representados em um dado número de bits para uma representação que utiliza um número maior de bits

Um programa pode precisar somar uma entrada de 8 bits a um valor de 32 bits

O valor sem sinal de 8 bits 0b10110110 torna-se o valor sem sinal de 16 bits 0b0000000010110110

A extensão de um número em sinal e magnitude é feita movendo o bit de sinal da representação antiga para o bit de sinal da nova representação preenchendo todos todos os bits adicionais na nova representação

Page 41: arquitetura_de_computadores

41

Exemplo Qual é a representação em 16 bits, em sinal e magnitude,

do valor em 8 bits, em sinal e magnitude, 0b10000111 (-7)?

A extensão de sinal de números em complemento de 2 é mais complicada

Para fazer a extensão de sinal de um número em complemento de 2 copie o bit mais significativo da antiga representação para cada bit adicional da nova representação

Os números negativos terão zeros em todos os bits acrescentados ao ir para uma representação mais larga

Números negativos terão uns em todas estas posições de de bit

Extensão em complemento de 2

Page 42: arquitetura_de_computadores

42

Exemplo

Qual é a extensão de sinal de 16 bits do valor 0b10010010 (-110) em 8 bits, em complemento de 2?

Dê a representação com 8 bits, em complemento de 2, dos valores

− a) 23 b) -23 c) -48 d) -65. Dê a representação em 8 bits dos números 12 e -18, nas

notações em sinal e magnitude e em complemento de 2, e mostre como estas representações têm o sinal estendido para dar representações de 16 bits em cada notação

Exercícios

Page 43: arquitetura_de_computadores

43

Organização de Computadores

A Organização de Computadores trata da estrutura interna que não é visível para o programador

− Exemplo: freqüência do relógio ou tamanho da memória física

Page 44: arquitetura_de_computadores

44

Organização de computadores

Processador Comutador Sistema de memória

Disco rígido CD-ROM Placa de vídeo

Computador

MonitorSubsistemas: processador, memória e entrada e saída

Barramento de entrada e saída

Barramento de memória

Page 45: arquitetura_de_computadores

45

Subsistemas

Processador − Execução de programas

Memória − Espaço de armazenamento para os programas e

dados Entrada e saída

− Permite que o computador e a memória controlem os dispositivos que interagem com o mundo externo ou que armazena dados

Page 46: arquitetura_de_computadores

46

Comutador x Processador

Na maioria dos sistemas tem um único barramento de dados que é conectado ao módulo comutador

− Como a ponte PCI (Peripheral Component Interconnect) encontrada na maioria dos sistemas

Page 47: arquitetura_de_computadores

47

Comutador x Memória A comunicação é feita através de um

barramento − Conjunto de linhas dedicadas que transfere dados

entre elesComutador x E/S

Um barramento de E/S distinto conecta o comutador com os dispositivos de E/S

São usados barramentos separados O E/S deve ser projetada para ser a mais flexível

possível Para suportar vários tipos de dispositivos de E/S e

maior largura de banda possível entre o processador e o sistema de memória

Page 48: arquitetura_de_computadores

48

Programas

Codificação do programa

Tradução para linguagem de montagem (compilação)

Tradução para linguagem de máquina(montagem)

Geração do programa executável(ligação)

Carga do programa na memória do computador

Execução do programa

Nível de linguagem orientadas para problemas

Nível de linguagem de montagem

Nível de sistema operacional

Nível de máquina convencional

Nível de microprogramação

Nível de lógica digital

Tradução (compilador)

Tradução (montador)

Interpretação parcial (so)

Interpretação (microprograma)

Os microprogramas executados diretamente pelo hardware

Níveis presentes nos computadores modernos

Page 49: arquitetura_de_computadores

49

Sistemas operacionais

Administração dos recursos físicos do sistema Carga e execução dos programas Interface com os usuários Sistemas dedicados

− Projetados para uma tarefa específica− Geralmente não possuem um sistema operacional− Executam um único programa

É um programa que sabe tudo sobre o hardware É executado em modo privilegiado ou supervisor

− Isso permite que tenha acesso a todos os recursos que os programas de usuário não pode controlar

Page 50: arquitetura_de_computadores

50

Multiprogramação A maioria dos computadores suporta multiprogramação

(multitarefa)

Técnica que permite ao sistema dar a ilusão que vários programas estão sendo executados simultaneamente no computador

Mesmo que tenha apenas um processador

A cada programa é dada uma fatia de tempo

Comutação de processo

− No final do tempo de cada programa o SO retira o programa da memória

Programa1 Programa2 Programa 3 Programa 4 Programa 1 Programa 2 Programa 3 Programa 4

Programa sendo executado pelo processador

Fatia de tempoTempo

Page 51: arquitetura_de_computadores

51

Proteção

Principal requisito do SO

O resultado do programa em um ambiente multiprogramado deve ser o mesmo se ele estivesse executando sozinh

Os programa não devem acessar os dados dos outros programas

Oferecer proteção requer que o SO tenha controle sobre os recursos físicos e a memória

Isso evita que um programa acesse a impressora ao mesmo tempo

Essa técnica é a memória virtual que será estudada nesse curso

Page 52: arquitetura_de_computadores

52

Modo privilegiado

SO – roda em modo privilegiado Outros programas – rodam em modo usuário Tarefas como acessar dispositivos, fazer

comutação de processos exige que o SO esteja em modo privilegiado

Page 53: arquitetura_de_computadores

53

Processador

Banco de registradores

Unidade para inteiros

Unidade para ponto flutuante

Lógica de controle

Dados para a memória Dados da memória

Processador

Instruções da memória

Sinais de controle

Page 54: arquitetura_de_computadores

54

Blocos do processador

Unidades de execução

Banco de registradores e lógica de controle

A unidade de execução contém o hardware que executa as instruções

− Isso inclui o hardware que busca e decodifica as instruções

− E unidades lógico-aritméticas (ULAS) que executam os cálculos

Muitos sistema tem unidades diferentes para cálculo de inteiros e ponto flutuante

O banco de registradores é uma pequena área de armazenamento para os dados que o processador está usando

− Podem ser acessados mais rápido que os dados da memória

Page 55: arquitetura_de_computadores

55

O sistema de memória Receptáculo de armazenamento para os dados e programas

Em geral, os sistemas tem dois tipos de memória

− Memória apenas de leitura Read Only Memory – ROM O conteúdo da ROM não pode ser modificado pelo

computador, mas pode ser lido Usada para manter um programa que é executado

automaticamente pelo computador quando é iniciado Este programa é chamado bootstrap O boostrap (erguendo-se por sua própria conta) instrui o

computador a carregar o SO do seu HD ou outro dispositivo de E/S

− Memória de acesso aleatório Random Access Memory – RAM

Page 56: arquitetura_de_computadores

56

Memória RAM Tanto pode ser lida como escrita

É usada para manter os programas, o sistema operacional e os dados exigidos pelo computador

Volátil, isto é, os dados são apagados quando o computador é desligado

ROM e RAM são divididas em conjunto de posições de armazenamento e cada uma pode manter 1 byte (8 bits) de dados

As posições de armazenamentos são numeradas e o número de uma posição de armazenamento (chamada de endereço)

É usado para dizer ao sistema de memória a quais posições o processador quer fazer referência

Uma característica importante de um sistema é a largura dos endereços que ele utiliza, o que limita a capacidade de memória que um computador pode endereçar

A maioria dos computadores atuais usam endereços de 32 e 64 bits− Isso permite o endereçamento de bytes de memória232e264

Page 57: arquitetura_de_computadores

57

Memória - grande folha de papel A memória pode ser vista como uma grande folha de papel pautado

Cada linha na página representa um local de armazenamento para um byte

Para armazenar um valor na memória, conta-se de cima para baixo na página até que se atinja a linha especificada pelo endereço

012

3

Uma operação de leitura e escrita opera sobre uma quantidade de dados igual à largura de bits do sistema

O endereço enviado ao sistema de memória especifica a posição do byte de dados de endereço mais baixo a ser carregado ou armazenado

Por exemplo, um sistema de 32 bits carrega ou armazena 32 bits (4 bytes) de dados em cada operação, nos 4 bytes que começam com o endereço da operação

De modo que uma carga a partir da localização 424 retornaria uma quantidade de 32 bits contendo os bytes das localizações 424, 425, 426 e 427

Page 58: arquitetura_de_computadores

58

Cargas e armazenamentos alinhados

Para simplificar o projeto do sistema de memória, alguns computadores exigem que as cargas e armazenamento sejam alinhados

Significa que o endereço de uma referência de uma memória precisa ser um múltiplo do tamanho do dado que está sendo carregado ou armazenado

A carga de 4 bytes precisa ter um endereço que seja múltiplo de 4

Um armazenamento de 8 bytes precisa ter um endereço que seja um múltiplo de 8 e assim por diante

Sistemas com cargas e armazenamentos desalinhados são lentos

Page 59: arquitetura_de_computadores

59

Little endian versus big endian Questão adicional com cargas e armazenamentos de vários bytes é a

ordem em que eles são escritos na memória

ef cd ab 90

90 ab cd ef

Little endian

Big endian

Palavra = 0x90abcdefEndereço: 0x1000

Sistema little endian

− O byte menos significativo (o valor menor) de uma palavra é escrito no byte de endereço mais baixo e os outros byts escritos na ordem crescente de significância

Sistema big endian

− A ordem é inversa, com o byte mais significativo sendo escrito no byte de memória com o endereço com o endereço mais baixo

− Os outros bytes são escritos na ordem crescente de significância

Programadores

− Não precisam saber a ordem dos bytes no sistema com que estejam trabalhando

Page 60: arquitetura_de_computadores

60

Comentários Um armazenamento de um byte igual a 0, na localização

0x1000, fosse executado nos sistemas apresentados na figura anterior

Uma carga subseqüente de 32 bits a partir de 0x1000, retornaria 0x90abcd00 no sistema little endian e 0x00abcdef no sistema big endian

A ordem dos bytes é um problema quando se transmite dados entre sistemas de computadores diferentes

− Eles interpretam a mesma seqüência de bytes como palavras diferentes de dados nos sistemas little endian ou big endian

− Os dados precisam ser processados para serem convertidos de um sistema para outro

Page 61: arquitetura_de_computadores

61

Sistema de E/S

Subsistema que o computador usa para comunicar com o mundo externo e para armazenar dados

− Discos, monitores de video, impressoras e acionadores de fita

− O uso de um barramento de E/S permite que um computador faça a interface com uma ampla gama de dispositivos de E/S

− Sem ter que implementar uma interface específica para cada um

− Os barramentos podem suportar um número variável de dispositivos permitindo que os usuários acrescentem outros depois

− Padrão PCI e outros

Page 62: arquitetura_de_computadores

62

Exercícios

Se um computador de 800Mhz faz 60 comutações de contexto por segundo, quantos ciclos existem em cada fatia de tempo?

Explique por que a qualidade de um compilador tem mais impacto sobre o tempo de execução de um programa desenvolvido utilizando o compilador do que a qualidade de um montador tem sobre programas desenvolvidos utilizando um montador?

Como um sistema multiprogramado apresenta a ilusão de que vários programas estão sendo executados simultaneamente? Quais os fatores que fazem com que esta ilusão seja prejudicada?