Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de...

207

Transcript of Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de...

Page 1: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 2: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 3: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 4: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A base de representação numérica de um número está relacionada com a quantidadede símbolos disponíveis para representar este número.

• Se tivermos 10 símbolos para as representações numéricas, este número estarásendo representado na base 10; se tivermos 8 símbolos, ele estará na base 8, e assimsucessivamente.

Bases Numéricas

Page 5: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

0 1 2 3 4 5 6 7 8 9

Vazio

Base 10

0 1 2 3

VazioBase 4

0 1

Vazio Base 2

Bases Numéricas

Page 6: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como representar uma quantidade infinita de valores usando uma quantidade finitade símbolos para a representação numérica?

• A maneira criada para representar qualquer valor com um número limitado desímbolos foi o da agrupagem.

• Se montarmos grupos em que a quantidade de elementos é a mesma quantidade desímbolos, isto é, a base do número, a quantidade de objetos que sobrar será inferiorà base, sendo então possível a sua representação.

Bases Numéricas

Page 7: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Vamos entender graficamente como é feita esta representação.Vamos fazer um exemplo na base 10, que é a nossa base diária.

Bases Numéricas

34( )10

Page 8: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Agora vamos fazer um exemplo na base 3 com as mesmas 43 bolinhas.Bases Numéricas

Page 9: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases Numéricas1211( )3

4 3 31 3 14

1342 3

11

1211( )3 = 1 33 3x x x + 31 3x x + 32 x + 1= 1 3x + 1 x + 2 x + 13 3 2 3 1 3 0x= 27 + 9 + 6 + 1 = 43( )10

0123

Page 10: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como será a representação no caso de bases superiores à base 10?• Neste caso, precisaremos de mais símbolos para representar estes novos valores.• Para facilitar a representação, utilizou-se o alfabeto, já que, além de conhecermos os

seus símbolos, ele possui uma sequência já definida socialmente.

Bases Numéricas

Page 11: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases Numéricas Superiores a Base 100 1 2 3 4 5 6 7 8 9

Vazio

A B C D E F

(10)(11)

(12)(13)

(14)(15)

Base

10

Base

11

Base

13

Base

14 Base 16

Base

12

Base

15

Page 12: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo de conversão de bases superiores à base 10.Bases Numéricas

(7126)10 ( )16

7126 1672 445

861627125 16

1116 13 (1BD6)16

Page 13: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo de conversão de bases superiores à base 10.Bases Numéricas

6DB1( )160123

= 4096 + 2816 + 208 + 6= 7126( )10

= 1 16x + 11 x + 13 x + 63 162 161 160x

(1BD6)16 ( )10

Page 14: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Resumo de Conversão de BasesBases Numéricas

Base 10 Base b Divisões sucessivas por b

Potências de base BBase B Base 10

Base B Base b (B b 10)Base 10Potências

de base BDivisões

sucessivas por b

Page 15: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 16: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 17: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• O que significa dizer que duas bases são potências entre si?• Primeiramente, devemos representar a base maior numa potência da base menor, isto é,

(B = be) onde B > b & e número inteiro maior que 1.• Se for possível escrever as potências acima, então as bases são potências entre si.

Bases NuméricasConversão de bases que são potências entre si.

Exemplo:Base 4 Base 2

4 = 22 são potências entre si

Page 18: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• O próximo passo é montar uma tabela de conversão de duas colunas onde cadacoluna representará uma base.

• Esta tabela terá uma quantidade de linhas de conversão igual ao valor da maior base(B). Normalmente coloca-se uma linha adicional para o cabeçalho das colunas.

• Na coluna da base maior (B) coloca-se, em sequência e começando do zero, todos osseus símbolos.

• Na coluna da base menor (b), coloca-se o valor equivalente escrito com umaquantidade de dígitos igual ao expoente da base menor (e).

• A quantidade de dígitos referente aos valores da menor base deve ser igual aoexpoente usado nesta base (e).

• Pronto! Já temos a tabela, agora é só usar.

Bases NuméricasConversão de bases que são potências entre si.

Page 19: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo:Montar a tabela que converta da base 2 para a base 4.

Resolução:Base 4 base 2 (4 = 22 são potências entre si)e = 2Total de linhas da tabela: 4 (igual à maior base)Total de dígitos da base 2: 2 (igual ao expoente)

Bases NuméricasConversão de bases que são potências entre si.

Base 40123

01

000111

Base 2

Page 20: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasConversão de bases que são potências entre si.

b) (111101011110101010110)2 ( )4

(0111101011110101010110)21 3 2 2 3 3 1 1 1 1 2= (13223311112)4

Exemplo:a) (323121302)4 ( )2

(111011011001110010)21110=(3 2 3 1 2 1 3 0 2)4110110 1101 0010

Base 40123

01

000111

Base 2

Page 21: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo:Montar a tabela que converta da base 2 para a base 8.

Resolução:Base 8 base 2 (8 = 23 são potências entre si)e = 3Total de linhas da tabela: 8 (igual à maior base)Total de dígitos da base 2: 3 (igual ao expoente)

Bases NuméricasConversão de bases que são potências entre si.

Base 801234576

010111

0000

00

001101111011

Base 2

Page 22: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasConversão de bases que são potências entre si.

b) (111101011110101010110)2 ( )8

(111101011110101010110)27 5 3 6 5 2 6= (7536526)8

Exemplo:a) (637254)8 ( )2

(110011111010101100)2110=(6 3 7 2 5 4)8011 111 010 100101

Base 801234576

010111

0000

00

001101111011

Base 2

Page 23: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo:Montar a tabela que converta da base 2 para a base 16.

Resolução:Base 16 base 2 (16 = 24 são potências entre si)e = 4Total de linhas da tabela: 16 (igual à maior base)Total de dígitos da base 2: 4 (igual ao expoente)

Bases NuméricasConversão de bases que são potências entre si.

Base 16012345768A9

CB

EDF

010111001101111011

000000

0000

0000

000101011001

00111101

011110111111

Base 2

Page 24: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasConversão de bases que são potências entre si.

b) (111101011110101010110)2 ( )16

(000111101011110101010110)21 E B D 5 6= (1EBD56)16

Exemplo:a) (AD3B9)16 ( )2

(10101101001110111001)21010=(A D 3 B 9)161101001110111001

Base 16012345768A9

CB

EDF

010111001101111011

000000

0000

0000

000101011001

00111101

011110111111

Base 2

Page 25: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasCuriosidades sobre a Tabela de Conversão

Base 16012345768A9

CB

EDF

01010110001

01

011

0011001100110011

0000111100001111

00000000111

11

111

23 22 21 20

Base 2

1248

Base 4

Base 16

Base 8

Base 16 Base 2Utiliza-se a tabela ao lado completa.

Base 8 Base 2Utiliza-se a tabela ao lado apenas até ovalor 7. Deve-se utilizar apenas os 3 bitsda direita.Base 4 Base 2Utiliza-se a tabela ao lado apenas até ovalor 3. Deve-se utilizar apenas os 2 bitsda direita.

Page 26: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 27: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 28: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Quando definimos a regra de criação dos números, a quantidade de dígitos quepodemos representar limita a quantidade de valores distintos que podem ser gerados.

• Esta quantidade de valores distintos é o que denominaremos “Variedade de ValoresRepresentáveis”.

• A questão agora é: como calcular esta variedade?

Bases NuméricasVariedade de Valores Representáveis

Page 29: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasVariedade de Valores Representáveis

Base 1010 10 10 10 = 104

Base 33 3 3 3 = 34

Base 22 2 2 2 = 24

Podemos concluir que:

)Variedade(logbits de Total 2

Dígitos de TotalNúmero) do Base(Variedade Nos sistemas digitais

Bits de Total2Variedade

Como se calcularia o total de bits a partir de uma Variedade?Como temos uma equação exponencial, usaremos o logaritmocomo operação inversa.

)Variedade(logbits de Total 2

Como não podemos ter uma quantidade fracionária de bits,devemos arredondar o resultado para cima. Teto

Page 30: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Quando os valores ficam muito altos, começa a ficar trabalhosa a sua manipulação.• Para que possamos trabalhar com números pequenos e ainda assim representar valores grandes, foram

criadas as faixas de representação numéricas, que nada mais é que estabelecer um fator multiplicativo deajuste.

• Cada faixa vai possuir seu próprio fator multiplicativo. Na base 10 este fator foi definido como 103 = 1.000,fazendo com que o expoente cresça de 3 em 3 unidades sempre que passarmos para a faixa imediatamenteacima.

• No caso dos sistemas digitais, a base 2 é a mais adequada. Desta forma, o fator multiplicativo deverá seruma potência de base 2.

• Para não ficar tão discrepante com o fator utilizado na base 10, foi escolhido como fator multiplicativo 210 =1.024, já que esta é a potência de 2 mais próxima de 1.000.

• Dessa forma, o expoente crescerá de 10 em 10 unidades sempre que passarmos para a faixa imediatamenteacima.

Bases NuméricasFaixas de Representações Numéricas

Page 31: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Potência Nome Conversão ApresentaçãoFaixas de Representação Numérica

Bases NuméricasFaixas de Representações Numéricas

[0; 210[ ------------ Valor Valor[210; 220[ Kilo (K) Valor = n 210 Valor = n K[220; 230[ Mega (M) Valor = n 220 Valor = n M[230; 240[ Giga (G) Valor = n 230 Valor = n G[240; 250[ Tera (T) Valor = n 240 Valor = n T[250; 260[ Peta (P) Valor = n 250 Valor = n P[260; 270[ Exa (E) Valor = n 260 Valor = n E[270; 280[ Zetta (Z) Valor = n 270 Valor = n Z[280; 290[ Yotta (Y) Valor = n 280 Valor = n Y

Divide n por 210 Multiplica n por 210

Page 32: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 33: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 34: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Os computadores digitais utilizam principalmente quatro métodos para representarnúmeros com sinal:– Sinal e Magnitude– Complemento a um– Complemento a dois– Excesso de N - biased (Será visto no assunto de Ponto Flutuante)

Para os quatro casos é importante definir a quantidade de bits usada na representaçãodo número, porque o bit mais significativo (bit da esquerda) representará o sinal.

Bases NuméricasRepresentação de números com sinal.

0 Positivo1 Negativo Obs: na notação em excesso de N é ao contrário.

Page 35: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como o zero à esquerda do número não possui significado numérico, os númerospositivos ficam idênticos nos três primeiros casos listados anteriormente. Sendoassim, usaremos os números positivos como ponto comum na conversão de bases.

• Na nossa representação em decimal utilizamos o formato Sinal e Magnitude. Seprecisarmos representar um número negativo em binário, partiremos da suarepresentação positiva e depois trocaremos o sinal.

• Para cada formato, existe uma maneira diferente de trocar o sinal. Dependendo doformato que queremos representar, usaremos o método adequado a este formato paratrocar o sinal do número.

Bases NuméricasRepresentação de números com sinal.

Page 36: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Sinal e MagnitudeEsta representação agrupa o bit de sinal com um valor (magnitude) que representa o valorabsoluto do número como ilustrado abaixo:

Bases NuméricasRepresentação de números com sinal.

Para trocar o sinal de um número no formato Sinal e Magnitude basta mudar o valor do bitde sinal.

Sinal

...Magnitude

Número

Page 37: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Sinal e MagnitudeConverta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 45)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 45, para binário.(45)10 = (101101)2

Segundo passo: Completar (à esquerda) com o valor zero os bits que faltam para chegar a n. Depoisajuste o bit mais à esquerda para representar o sinal desejado. Neste caso o bit de sinal vale 1 pois ovalor é negativo.(– 45)10 = (10101101)2 = (AD)16

Bit de Sinal

Page 38: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Sinal e MagnitudeConverta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 7)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 7, para binário.(7)10 = (111)2

Segundo passo: Completar (à esquerda) com o valor zero os bits que faltam para chegar a n. Depoisajuste o bit mais à esquerda para representar o sinal desejado. Neste caso o bit de sinal vale 1 pois ovalor é negativo.(– 7)10 = (10000111)2 = (87)16

Bit de Sinal

Page 39: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Sinal e MagnitudeUm ponto negativo em relação a esta representação é a existência de duas formas de representar ovalor zero. Veja abaixo:

Bases NuméricasRepresentação de números com sinal.

(0)10 = (00000000)2(– 0)10 = (10000000)2

Então, (00000000)2 = (10000000)2

Isto é, duas representações do zero.

Para um número com 8 bits, temos: Como (0)10 = (– 0)10

Page 40: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

n2Valores de Total

2Valores de TotalSinal cada para Valores de Total

22Sinal cada para Valores de Total n

12Sinal cada para Valores de Total n

Como temos duas representações do zero, umanegativa e outra positiva, os valores limites terão queser recuados em uma unidade nos dois casos.Sendo assim, para um número formado por n bits, afaixa de valores representáveis será:

+ 0

– 0

+ 1 + 2 + 3 + 2n – 1

– 1– 2– 3– 2n – 1– +

Considerando um número formado por n bits temos:

– 2n – 1 + 1 até 2n – 1 – 1

+ 1

– 1

Bases NuméricasRepresentação de números com sinal.

Sinal e Magnitude

Page 41: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Sinal e MagnitudeBases Numéricas

Representação de números com sinal.

Faixa de ValoresPara um número formado por n bits (incluindo o bit de sinal), é possívelrepresentar valores que vão deste:

– 2n – 1 + 1 até 2n – 1 – 1.Exemplo:Para um número representado por 8 bits, isto é n = 8, teremos como faixa devalores:– 28 – 1 + 1 até 28 – 1 – 1 – 27 + 1 até 27 – 1 – 128 + 1 até 128 – 1Faixa – 127 até 127

Page 42: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 1Nesta representação, buscamos o valor que falta para chegar ao valor máximo do número,isto é, todos os bits valendo 1. No final do procedimento, o bit mais à esquerda continuarárepresentando o sinal, porém os demais bits não representam a magnitude.

Bases NuméricasRepresentação de números com sinal.

Para trocar o sinal de um número no formato de Complemento a 1 basta inverter o valorde todos os seus bits, isto é, o bit “0” passa a valer um e o bit “1” passa a valer zero.

...Sinal Demais bits

Número

Page 43: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 1Converta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 45)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 45, para binário e completar os bits.(45)10 = (101101)2 = (00101101)2

Segundo passo: Inverter todos os bits do número. Repare que o bit mais à esquerda continuarepresentando o sinal.(– 45)10 = (11010010)2 = (D2)16

Bit de Sinal

Page 44: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 1Converta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 7)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 7, para binário e completar os bits.(7)10 = (111)2 = (00000111)2

Segundo passo: Inverter todos os bits do número. Repare que o bit mais à esquerda continuarepresentando o sinal.(– 7)10 = (11111000)2 = (F8)16

Bit de Sinal

Page 45: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 1Um ponto negativo em relação a esta representação é a existência de duas formas de representar ovalor zero. Veja abaixo:

Bases NuméricasRepresentação de números com sinal.

(0)10 = (00000000)2(– 0)10 = (11111111)2

Então, (00000000)2 = (11111111)2

Isto é, duas representações do zero.

Para um número com 8 bits, temos:

Como (0)10 = (– 0)10

Faixa de ValoresPara um número formado por n bits (incluindo o bitde sinal), é possível representar valores que vãodeste – 2n – 1 + 1 até 2n – 1 – 1.Exemplo:Para um número representado por 8 bits, isto é n = 8,teremos como faixa de valores:– 28 – 1 + 1 até 28 – 1 – 1 – 128 + 1 até 128 – 1Faixa – 127 até 127

Page 46: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 2Nesta representação, buscamos o valor que falta para chegar à 2n, onde n representa o totalde bits do número. No final do procedimento, o bit mais à esquerda continuarárepresentando o sinal, porém os demais bits não representam a magnitude.

Bases NuméricasRepresentação de números com sinal.

Para trocar o sinal de um número no formato de Complemento a 2 basta inverter o valorde todos os seus bits e depois somar 1.

...Sinal Demais bits

Número

Page 47: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 2Converta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 45)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 45, para binário e completar os bits.(45)10 = (101101)2= (00101101)2

Segundo passo: Inverter todos os bits do número e depois somar 1. Repare que após o procedimentoo bit mais à esquerda continua representando o sinal.(– 45)10 = (11010010)2 + 1 = (11010011)2 = (D3)16

Bit de Sinal

Page 48: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 2Converta os valores abaixo para a sua representação em binário e em seguida apresente-os emhexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representaçãobinária.a) (– 7)10, n = 8 bits.

Bases NuméricasRepresentação de números com sinal.

Primeiro passo: Converter o valor sem sinal, 7, para binário e completar os bits.(7)10 = (111)2= (00000111)2

Segundo passo: Inverter todos os bits do número e depois somar 1. Repare que após o procedimentoo bit mais à esquerda continua representando o sinal.(– 7)10 = (11111000)2 + 1 = (11111001)2 = (F9)16

Bit de Sinal

Page 49: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Complemento a 2Diferente dos casos anteriores, esta representação possui apenas uma forma de representar o valorzero. Veja abaixo:

Bases NuméricasRepresentação de números com sinal.

(0)10 = (00000000)2(– 0)10 = (11111111)2 + 1 = (100000000)2

Isto é, uma única representação do zero.

Para um número com 8 bits, temos:Faixa de Valores

Para um número formado por n bits (incluindo o bitde sinal), é possível representar valores que vãodeste – 2n – 1 até 2n – 1 – 1.Exemplo:Para um número representado por 8 bits, isto é n = 8,teremos como faixa de valores:– 28 – 1 até 28 – 1 – 1 – 128 até 128 – 1Faixa – 128 até 127

Como o número possui apenas 8 bits, onono bit representado em azul deve serdescartado.(– 0)10 = (00000000)2

Page 50: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Como que a CPU faz para saber se o número utilizado é com ou sem sinal? Afinal de contas, isto éimportante na hora de usar o número? Vamos supor os valores em binário abaixo representados por 8bits.

Bases NuméricasAritmética com Complemento de 2.

Como seria feita a soma destes números?

Olha só que interessante! A mesma conta serve tanto para números sem sinal, como para númeroscom sinal. O que vai mudar é a interpretação do resultado feito pelo seu programa.

(10000100)2 e (00001110)2

1110000100 (+132)10+ 00001110 (+14)1010010010 (+146)10

Considerando sem sinal 1110000100 (–124)10+ 00001110 (+14)1010010010 (–110)10

Considerando com sinal11

10000100+ 00001110

10010010

Método tradicional

Page 51: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 52: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 53: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Para converter números fracionários da base 10 para qualquer outra base B, devemos realizar duasetapas:

– Converter a parte inteira utilizando o método tradicional (Divisões Sucessivas por B);– Converter a parte fracionária através da Multiplicação Sucessiva por B;

Exemplo:

Bases NuméricasConversão de Base de Números Fracionários

(10,625)10 ( )2Parte Inteira:

(10)10 (1010)210 2

50 221 20 1

Parte Fracionária:(0,625)10 (0, )2

0,625 205

1

2

1

1,0,25 2

0

1

50,0,5 21

01,

101

1010 101,

Page 54: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Para converter números fracionários de uma base B qualquer para a base 10, devemos realizar o jáconhecido método das potências, sendo que as partes fracionárias recebem expoente negativo.Exemplo:

Bases NuméricasConversão de Base de Números Fracionários

(1010,101)2 ( )10

(1 0 1 0, 1 0 1)20123 -1 -2 -3

3113 2222 32

12128

81

2128

125,05,028 625,010

= (10,625)10

Page 55: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 56: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 57: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Em muitos cálculos de Engenharia, Física, Astronomia, Matemática, etc., os dados são números de valor muitogrande, como a massa da terra, ou números muito pequenos, tais como a massa de um átomo ou um elétron.

• Se esses números fossem representados em ponto fixo, seria necessário utilizar uma grande quantidade dealgarismos, muito mais do que a ULA de qualquer computador é capaz de armazenar e calcular. E para piorar, agrande maioria dos dígitos teria valor zero, como vemos nos exemplos abaixo.

Bases NuméricasPonto Flutuante

N3 = 0,00000000000000000000000073N1 = 253700000000000000000000000

Se fossemos somar os dois teríamos:N1 = 253700000000000000000000000N2 = 326100000000000000000000000+

N1 + N2 = 579800000000000000000000000Como podemos ver, os valores e os resultados consomem uma quantidade enorme de dígitos, sendo a maioria de zeros.

N2 = 324300000000000000000000000Se fossemos somar os dois teríamos:N3 = 0,00000000000000000000000073N4 = 0,00000000000000000000000025+

N3 + N4 = 0,00000000000000000000000098

N4 = 0,00000000000000000000000025

Page 58: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A forma mais simples utilizada para resolver o problema da quantidade excessiva de zeros foi a Notação emPonto Flutuante.

• Para isso, será acrescentada à representação do número o produto por uma potência com base igual à sua basenumérica, isto é, se o número for escrito na base 10, a potência terá base 10; se for escrito na base 2, a potênciaterá base 2.

• Desta forma, podemos mudar a posição da vírgula (ponto em inglês) dentro do número, sem mudar o seu valor,apenas realizando ajustes no expoente da potência de forma a neutralizar o movimento da vírgula.

Bases NuméricasPonto Flutuante

Na = 5372Na = 5372 100Na = 537,2 101Na = 53,72 102Na = 5,372 103Na = 0,5372 104

Nb = 0,6257Nb = 0,6257 100Nb = 6,257 10-1Nb = 62,57 10-2Nb = 625,7 10-3Nb = 6257 10-4

Para cada casa quea vírgula se moverpara a esquerda, oexpoente aumentaem uma unidade.

Para cada casa quea vírgula se moverpara a direita, oexpoente diminuiem uma unidade.

Page 59: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasPonto Flutuante

N3 = 0,00000000000000000000000073N1 = 253700000000000000000000000Exemplo 1:

N3 = 0,00000000000000000000000073 100N3 = 73 10-26

N1 = 253700000000000000000000000 100N1 = 2537 1023

N2 = 326100000000000000000000000N2 = 326100000000000000000000000 100N2 = 3261 1023

N1 + N2 = 5798 1023

N1 + N2 = 579800000000000000000000000Que equivale a:

Exemplo 2:

N4 = 0,00000000000000000000000025N4 = 0,00000000000000000000000025 100N4 = 25 10-26

N3 + N4 = 98 10-26

N3 + N4 = 0,00000000000000000000000098Que equivale a:

Bem menos zeros Bem menos zeros

Bem menos zeros Bem menos zeros

Page 60: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasPonto Flutuante

• Para representar este número no computador, é preciso estabelecer um padrão de apresentação.• Este padrão foi denominado Representação Normalizada.• Na representação normalizada, a vírgula deve ser posicionada de forma a ocorrer duas coisas:

― A parte inteira deve estar valendo zero;― O primeiro dígito à direita da vírgula (parte fracionária) deve ser diferente de zero. Com exceção na

representação do valor zero, onde neste caso todos os dígitos valerão zero.

Na = 537,2 101

Nb = 0,6257 10-3Nb = 0,006257 10-1

Exemplo 1: Exemplo 2:

Na = 0,5372 104Sem estar NormalizadoNormalizado

Sem estar NormalizadoNormalizado

Page 61: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Sendo assim, o número em ponto flutuante tem o seguinte formato:

Bases NuméricasPonto Flutuante

expoente base mantissa Número • Para representar este número no computador, foi criado um encapsulamento para armazenar o valor da mantissa

e do expoente.• A mantissa costuma ser armazenada no formato sinal e magnitude, onde tanto o sinal como a magnitude são

armazenados separadamente. O sinal da mantissa representa o sinal do número.• O expoente pode ser armazenado em: sinal e magnitude, complemento a dois ou Excesso de N (biased).• Na definição do formato de encapsulamento é estabelecido o tamanho em bits da mantissa e do expoente.• A Mantissa vai representar a precisão do número (algarismos significativos).• O expoente vai representar a grandeza deste número.

Page 62: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo de formato em ponto flutuante.

Bases NuméricasPonto Flutuante

32 bits

S1 bit

Expoente7 bits

Mantissa24 bits

S Sinal do número (mantissa)E Expoente (sinal e magnitude)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

expoente base mantissa Número

Page 63: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

ExemploConverta o valor decimal +407,375 para ponto flutuante utilizando o formato da transparência anterior.

Bases NuméricasPonto Flutuante

• Antes de mais nada, temos que colocar o valor em binário.(407,375)10 ( )2

Parte Inteira:

(407)10 (110010111)2

Parte Fracionária:(0,375)10 (0, )2

0,375 205

1

7

1

0,0,75 2

0

1

51,0,5 21

01,

011

110010111 011,

1 1 01

10

0

101407 2

1 203007 2250 2

25 212 2

6

003 01 1005

23 2

1

1

Page 64: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasPonto Flutuante

• Colocando no formato de ponto flutuante acrescentando a potência.(407,375)10 (110010111,011)2

(407,375)10 ( 110010111,011 20 )2• Normalizando:(407,375)10 ( 0,110010111011 29 )2• Separando as informações:Sinal da Mantissa = + (0)Mantissa = 110010111011 (parte fracionária)Sinal do Expoente = + (0)Expoente = (9)10 = (1001)2

32 bits

S1 bit

Expoente7 bits

Mantissa24 bits

S Sinal do número (mantissa)E Expoente (sinal e magnitude)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

Formato do Número em Ponto Flutuante

Mantissa = 110010111011000000000000 (completando os 24 bits à direita)Expoente = 0001001 (completando os 6 bits à esquerda e acrescentando o sinal)Número Formatado = ( )2• Convertendo para hexadecimal (base 16)Número Formatado = (0000 1001 1100 1011 1011 0000 0000 0000)2

Número Formatado = (09CBB000)16

1100101110110000000000000 0001001

0 9 C B B 0 0 0

Page 65: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasPonto Flutuante

• Uma outra forma muito comum de representar o expoente é através do Excesso de N (biased).• Para converter um número de n bits para o formato Excesso de N, deve-se realizar o seguinte cálculo:

1)-(2 normal Número convertido Número 1-nExemplo 1:Converta o número (120)10 para o formato Excessode N com um total de 8 bits.

1)-(2 120 convertido Número 1-81)-(2 120 convertido Número 7

1)-(128 120 convertido Número 127 120 convertido Número 10(247) convertido Número

102 )120((11110111) convertido Número

Exemplo 2:Converta o número (-120)10 para o formato Excessode N com um total de 8 bits.

1)-(2 120- convertido Número 1-81)-(2 120- convertido Número 7

1)-(128 120- convertido Número 127 120- convertido Número

10(7) convertido Número 102 )120((00000111) convertido Número

Bits de sinal invertidos

Positivo 1Negativo 0

Page 66: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Bases NuméricasPonto Flutuante

• Se o formato do expoente utilizado anteriormente fosse excesso de N, aúnica mudança na representação do valor (407,375)10 seria no expoente.

(407,375)10 ( 110010111,011 20 )2

• Normalizando:(407,375)10 ( 0,110010111011 29 )2• Separando as informações:Sinal da Mantissa = + (0)Mantissa = 110010111011 (parte fracionária)Expoente original = (9)10

Convertendo para Excesso de N com 7 bits:Expoente convertido = 9 + (27-1-1) = 9 + (26 -1)Expoente convertido = 9 + (64 – 1) = 9 + 63Expoente convertido = (72)10 = (1001000)2

32 bits

S1 bit

Expoente7 bits

Mantissa24 bits

S Sinal do número (mantissa)E Expoente (excesso de N)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

Formato do Número em Ponto Flutuante

Mantissa = 110010111011000000000000 (completando os 24 bits à direita)Expoente = (1001000)2 (Formato Excesso de N com 7 bits)Número Formatado = ( )2• Convertendo para hexadecimal (base 16)Número Formatado = (0100 1000 1100 1011 1011 0000 0000 0000)2

Número Formatado = (48CBB000)16

1100101110110000000000000 1001000

4 8 C B B 0 0 0

Page 67: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Onde está a importância de aprendermos o notação de Excesso de N?• Como vimos anteriormente,o formato em ponto flutuante opera em cima de um encapsulamento de informações (Sinal

do número, expoente e mantissa).• Para sermos capazes de trabalharmos com ponto flutuante, este formato de encapsulamento deve ser conhecido.• O padrão IEEE 754 estabelece 3 formatos para ponto flutuante e em todos eles o expoente é representado na notação de

Excesso de N.

Bases NuméricasPonto Flutuante

32 bits

S1 bit

Expoente8 bits

Mantissa23 bits

S Sinal do número (mantissa)E Expoente (excesso de N)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

Formato do Número em Ponto FlutuantePrecisão Simples

64 bits

S1 bit

Expoente11 bits

Mantissa52 bits

S Sinal do número (mantissa)E Expoente (excesso de N)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

Formato do Número em Ponto FlutuantePrecisão Dupla

80 bits

S1 bit

Expoente15 bits

Mantissa64 bits

S Sinal do número (mantissa)E Expoente (excesso de N)MMantissa normalizadaB Base da potência (no nosso caso igual a 2)

Formato do Número em Ponto FlutuantePrecisão Estendida

Page 68: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 69: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 70: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A Memória Principal é a memória que, na sua concepção original, guardaria tantoos programas em execução quanto os dados utilizados por estes programas.

• Devido a esta característica, durante a execução de um programa, a CPU iráconstantemente consultar a Memória Principal.

• Hoje em dia, é utilizada a tecnologia de semicondutores na fabricação da MemóriaPrincipal. Esta tecnologia permite um maior desempenho e uma maior densidadede bits.

Memória Principal

Page 71: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A Memória Principal pode ser classificada em dois tipos:

– VoláteisSão aquelas que necessitam de energia elétrica para manterem seus dadosarmazenados.

– Não VoláteisSão aquelas que não necessitam de energia elétrica para manterem seusdados armazenados.

Memória Principal

Page 72: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Estática (SRAM – “Static Random Access Memory”) – A característica maisrelevante deste tipo de memória é o fato de ter um tempo de resposta muitopequeno, sendo assim usada para caches e registradores, além de ocupar umespaço muito grande nas pastilhas de silício, proporcionando um alto custo por bit.

Memórias Voláteis

R

S

QCorrente Elétrica i P = R . i2

Dissipada na forma de calor

Flip - Flop

Page 73: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Dinâmica (DRAM – “Dynamic Random Access Memory”) – Esta memória ocupaum espaço muito pequeno da pastilha, levando a possibilidade de se produzirmemórias com uma grande capacidade de armazenamento, sendo utilizada para aMemória Principal. Entretanto, ela possui um tempo de resposta muito alto,comparado com as SRAM.

Memórias Voláteis

- - - - - -+++ +++

- - - - - -+++ +++

Corrente de FugaIndesejada

Capacitor Fonte Descarregado 0Carregado 1

Refresh Recarga periódica do capacitorpara evitar a perda do valor 1.

Padrão de Interpretação

P = R . i2Dissipada na forma de calor Como a corrente i é muito pequena, o

calor gerado também será pequeno.

Page 74: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias VoláteisVolátil

Estática Dinâmica Vantagem Desvantagens Vantagens Desvantagem

1- Alto desempenho 1- Alto consumo de energia elétrica 1- Baixo consumo de energia elétrica 1- Baixo desempenho 2- Alta geração de calor 2- Baixa geração de calor 2- Refresh 3- Baixo grau de integração 3- Alto grau de integração 4- Baixa capacidade de armazenamento 4- Alta capacidade de armazenamento 5- Alto custo por bit 5- Baixo custo por bit

Exemplo de local onde é Utilizada Exemplo de local onde é Utilizada Memória Cache, Registradores Memória Principal

Page 75: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• ROM (Read Only Memory) – Esta memória vem de fábrica com o seu conteúdogravado, só sendo permitido ao usuário a operação de leitura (consulta dos dados).Devido ao alto custo da matriz de fabricação desta memória, a sua confecção só setorna financeiramente viável se for produzida em alta quantidade.

Memórias Não Voláteis

1 0 1 1 1 10 0

x1 0

Page 76: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• PROM (Programmable Read Only Memory) – Esta memória vem de fábrica comtodos os seu bits valendo “1”, sendo permitido ao usuário a gravação dos “0”.Uma vez que o valor “0” é gravado em um determinado bit, não é possívelrestaurar este bit para o valor “1”, sendo assim, dizemos que esta memória permiteapenas uma gravação por bit.

Memórias Não Voláteis

1 0 1 1 1 10 0

xx x xQueimado

1 0

Page 77: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• EPROM (Erasable Programmable Read Only Memory) – Esta memória vem defábrica com todos os seu bits valendo “1”, sendo permitido ao usuário a gravaçãodos “0” através da energia elétrica. Nesta memória é possível restaurar o valor “1”do bit, mas para isso deve-se expor a memória à luz ultra-violeta. Como a luz ultra-violeta será incidida em toda a memória, todos os bits de valor “0” serão retornadosao valor “1” original de fábrica.

Memórias Não Voláteis

1 0 1 1 1 10 0

xIsolante

1 0

Luz Ultra-Violeta(Retorna ao valor 1)

Page 78: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo de EPROMMemórias Não Voláteis

Visão Externa Visão Interna

Page 79: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• EEPROM ou E2PROM (Electrically Erasable Programmable Read Only Memory) –Esta memória vem de fábrica com todos os seu bits valendo “1”, sendo permitido aousuário a gravação dos “0” através da energia elétrica. Nesta memória é possívelrestaurar o valor “1” do bit também com o uso da energia elétrica, neste caso, nãoexiste a necessidade de apagar toda a memória antes de ser regravada.

Memórias Não Voláteis

FLASH – É um tipo de E2PROM, onde a sua tecnologia permite uma maiordensidade de bits, uma maior taxa de transferência dos dados e menor tempode gravação.

Page 80: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias Não Voláteis

BIOS (Basic Input Output System – Sistema Básico de Entrada e Saída) – Este é umprograma que é executado assim que o computador é ligado. Ele tem por objetivoconfigurar o hardware existente, fazer as devidas verificações e possuir as rotinas quepossibilitam o acesso aos recursos da placa mãe. Após toda a sua execução, ele solicita ocarregamento do Sistema Operacional de alguma mídia. Devido à necessidade desteprograma estar presente no momento em que a máquina é ligada, ele é armazenado emuma memória do tipo não volátil. Durante muitos anos foi utilizada a EPROM comomeio de armazenamento da BIOS, mas hoje em dia usa-se a memória do tipo FLASH.

Page 81: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 82: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 83: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Estrutura Interna da Memória Principal0123

N - 1

IdentificaçãoouEndereço

Célula Unidade Mínima de Trabalho da M.P.N Total de Células da M.P.M Capacidade da Célula.CAP_MP Capacidade da M.P.CAP_MP = N x MN – 1 Endereço da Última Célula.E Total de bits do Endereço.Total de Endereços = 2ESe o Total de Células = Total de Endereços então{ N = 2E

Maior Endereço = N – 1}

M.P.Célula

Bit

Page 84: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

REM > = BE > = EREM Registrador de Endereço de Memória.RDM Registrador de Dados de Memória.UC Unidade de Controle.

0123

N - 1

MP.Unidades

FuncionaisREM RDM UC

Barramento de Controle (BC)Barramento de Dados (BD)

Barramento de Endereço (BE)

CPU

Conexão da CPU com a Memória Principal

Page 85: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Palavra Registradores RDM Célula (M)Relação dos Parâmetros da CPU com a Memória

Células Acessadas (TCA)Barramento de Dados (BD)

Conexão da CPU com a Memória Principal

8 bits 8 bits 8 bits 8 bits 1 célula8 bits16 bits 16 bits 16 bits 8 bits 2 células16 bits32 bits 32 bits 32 bits 8 bits 4 células32 bits64 bits 64 bits 64 bits 8 bits 8 células64 bits

RDM = BD >= M

MRDMTCA

Page 86: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

REM > = BE > = ERDM = BD > = M

REM Registrador de Endereço de Memória.RDM Registrador de Dados de Memória.UC Unidade de Controle.TCA Total de Células Acessadas em uma Única Operação

0123

N - 1

MP.Unidades

FuncionaisREM RDM UC

Barramento de Controle (BC)Barramento de Dados (BD)

Barramento de Endereço (BE)

CPU

Conexão da CPU com a Memória Principal

MRDMTCA

Page 87: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 88: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 89: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Uma memória com organização linear, isto é, uma organização sequencial deendereços requer uma quantidade muito grande de linhas no decodificador paraselecionar as células, tornando a memória complexa e cara.

Memórias Dinâmicas - DRAM

Exemplo:Se estivermos trabalhando com um REM e um Barramento de Endereços de apenas 4bits, a memória possuirá 16 células (N = 24 = 16). Sendo assim, o decodificador deverápossuir 16 fios para ativar cada uma de suas 16 células.

Na transparência seguinte temos um exemplo deste tipo de memória.

Page 90: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias Dinâmicas - DRAM

Decodificador para seleção

de linha.4 entradas

X16 saídas

REM

Barramentode

Endereços

0123456789101112131415

(0000)2(0001)2(0010)2(0011)2(0100)2(0101)2(0110)2(0111)2(1000)2(1001)2(1010)2(1011)2(1100)2(1101)2(1110)2(1111)2

EndereçosMP

Controle de E/S

Barramentode Dados

(0111)2

Page 91: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Uma outra organização de memória é a Matricial (Linha x Coluna).• Nesta organização o endereço é dividido em duas partes sendo a parte mais

significativa representando a Linha e a parte menos significativa representando aColuna.

• A memória possuirá dois decodificadores, um para a Linha e outro para a Coluna.

• O exemplo a seguir mostra o quanto este método simplifica o projeto em relação aorganização linear.

Memórias Dinâmicas - DRAM

Page 92: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo:Vamos supor uma memória com 64K células. Neste caso o decodificador para uma organizaçãolinear precisará de 65.536 fios.Se utilizarmos a organização matricial, usaremos dois decodificadores: um para a linha e outropara a coluna.Como para endereçar 64K células o endereço possuirá 16 bits, teremos 8 bits para a linha e 8 bitspara a coluna.Cada decodificador trabalhará com 28 = 256 fios.No total, estaremos trabalhando com apenas 512 fios (256 do decodificador de linha e 256 dodecodificador de coluna) contra os 65.536 fios necessários na organização linear.A seguir temos um exemplo deste tipo de memória.

Memórias Dinâmicas - DRAM

Page 93: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias Dinâmicas - DRAM

..................

............ ......

......

......Decodificador

de Linha

Decodificador de Coluna

Controle da DRAM

Controle de Refresh

RAS*CAS*WE*

Barramentode

EndereçosBuffer

de Dado

Barramentode Dados.....

.

......

Page 94: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias DinâmicasTradicional

CAS*

Dado DadoBD

RAS*

Linha Coluna ColunaBE Linha

Page 95: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como a maioria dos acessos aos dados é feita em sequência é bem provável que o próximoacesso ocorra na mesma linha, com exceção das bordas.• Neste tipo de memória, otimiza-se o acesso, indicando a linha apenas uma vez e depoisindicam-se as colunas a serem acessadas.• O controle do buffer de saída continua sendo acionado pela linha CAS.• Esta memória foi lançada em 1987.• A seguir temos os sinais para o acesso em uma memória FPM.

Memórias DinâmicasFPM – Fast Page Mode

Page 96: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias DinâmicasFPM – Fast Page Mode

RAS*

CAS*

Linha Coluna Coluna ColunaBE

Dado Dado DadoBD

Page 97: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Funciona de forma semelhante a FPM RAM, mas nesta memória foi acrescentado um “latch -buffer” para ser usado na saída do dado.• Desta forma, o sinal de CAS não precisa ser utilizado para habilitar a saída, deixando estatarefa para o controlador da DRAM.• A vantagem é que com a liberação do CAS, pode-se enviar uma nova coluna em um períodode tempo menor, aumentando assim o seu desempenho.• O gráfico do seu comportamento é semelhante ao da FPM porém com os envios da colunamais próximos um dos outros.• Esta memória foi lançada em 1995.

Memórias DinâmicasEDO RAM – Extended Data Output RAM

Page 98: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Funciona de forma semelhante a EDO RAM, mas nesta memória foi acrescentado umcontador para os n bits menos significativos da coluna.• Desta forma, para acessos sequenciais, não era preciso enviar os bits de todas as colunasacessadas. Este contador se auto incrementa a cada acesso, permitindo um acesso em rajadade até 2n colunas.• Esta memória foi lançada em 1996.• A seguir temos os sinais para o acesso em uma memória BEDO.

Memórias DinâmicasBEDO RAM – Burst Extended Data Output RAM

Page 99: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias DinâmicasBEDO RAM – Burst Extended Data Output RAM

RAS*

CAS*

Linha ColunaBE

Dado 1 Dado 2 Dado 3BD

Page 100: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Esta memória passou a ser sincronizada por um clock (Relógio) externo.• Este clock externo é conhecido como clock de barramento.• A vantagem é que a maioria dos sinais de controle são enviados no primeiro acesso e todos osdemais acessos da mesma linha são gerados internamente, aumentando o desempenho.• Esta memória foi lançada em 1996.• A seguir temos os sinais para o acesso em uma memória SDRAM.

Memórias DinâmicasSDRAM – Synchronous Dynamic RAM

Page 101: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Memórias DinâmicasSDRAM – Synchronous Dynamic RAM

RAS*

CAS*

Linha ColunaBE

Clock

Dado 1BD Dado 2 Dado 3 Dado 4 Dado 5 Dado 6 Dado 7

Page 102: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A grande diferença esta na taxa de transferência dos dados.• Nesta memória, é feita a transferência de dois dados a cada ciclo de clock. Um dado étransferido na transição de subida do clock e outro é transferido na transição de descida.• Com isso, consegue-se o dobro da taxa de transferência com a mesma freqüência de clock.• Esta memória foi lançada em 2000.

Memórias DinâmicasMódulo DDR

Page 103: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Composição de um módulo DDR.

Memórias DinâmicasMódulo DDR

clock

clock

Clock

Dado da transição de descida

Dado da transição de subidainversor

.......Ciclo

Page 104: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 105: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 106: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A Memória Cache foi criada devido a grande diferença de velocidade entre a CPU ea Memória Principal.

• Para conseguir um melhor desempenho, foi utilizada a tecnologia Estática nafabricação da Memória Cache.

• Ela foi introduzida entre a CPU e a Memória Principal com o objetivo de, casopossuísse o dado, respondesse mais rapidamente à solicitação da CPU.

Memória Cache

Page 107: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Interface

Interface

Memória Cache

CPU

Memória Principal

Memória Cache

Cache Hit Existência do DadoCache Miss Ausência do Dado

Evolução do desempenho

Estática

Dinâmica

Estática

Page 108: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Para verificar se a Memória Cache realmente irá melhorar o desempenho dos programas, foifeita uma análise do comportamento dos Softwares chegando a duas características decomportamento.

Memória Cache

Localidade Temporal Localidade Espacial

Localidade Temporal: uma vezacessada uma determinadaregião de memória, existe umagrande probabilidade destaregião ser novamente acessadaem um curto espaço de tempo.

Localidade Espacial: uma vezacessada uma determinadaregião de memória, existe umagrande probabilidade de seremacessadas as regiões que estãona sua vizinhança.

Page 109: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Com base nestes dois conceitos (Localidade Temporal e Localidade Espacial), a Memória Cache passou a ter umaalta taxa de acertos (Hits) contra as taxas de faltas (Misses), já que na maioria das Memórias Caches o seucarregamento é feito sob demanda.

Memória Cache

• Na figura a seguir temos a estrutura interna da Memória Cache e algumas informações de controle como:– O bit V (Válido) indica se o conteúdo da linha é válido ou não.– O bit M (Modificado) indica se a linha sofreu alguma alteração por parte da CPU.– A TAG indica de que lugar da memória principal pertence o dado carregado na linha.– Blocos são um conjunto de células consecutivas com capacidade para preencher uma linha daMemória Cache.

Page 110: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

DadosControleEstrutura Interna da Cache

0 1 2 3 4 5 6 7 8 9 C-1V M TAG 01234

L-1L-2L-3

Memória PrincipalColunas Pot. 2

LinhasPot. 2

Bloco 0Bloco 1Bloco 2Bloco 3Bloco 4Bloco L-3Bloco L-2Bloco L-1Bloco L

Célulada MPCélula

Page 111: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A Memória Cache se divide em três características principais que se subdividem em outras, como mostra oresumo abaixo:

Memória Cache

– Políticas de Carregamento:• Mapeamento Direto• Puramente Associativo• Associativo por Conjunto

– Políticas de Substituição:• Aleatório• FIFO (First In First Out)• LFU (Least Frequently Used - Menos Frequentemente Usado) • LRU (Least Recently Used - Menos Recentemente Usado)

– Políticas de Atualização ou Escrita:• Write Through (Escrita em Ambas)• Write Back (Escrita Atrasada)• Write Once (Utilizada na existência de mais de uma CPU)

Page 112: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 113: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 114: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Possibilidades de TAG

Mapeamento Direto

0 1 2 3 4 5 6 7 8 9 C-101234

L-1

V M TAG

Controle Dados

L-2L-3

Bloco 0Bloco 1Bloco 2Bloco 3Bloco 4Bloco L-3Bloco L-2Bloco L-1Bloco L

Memória PrincipalColunas Pot. 2

LinhasPot. 2Ciclo 0

Ciclo 1

Ciclo

End. Célula Nº do Bloco Nº do Ciclo> > Var = 2bits

Page 115: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Esta memória cache precisa de três informações para trabalhar: Número da Coluna, Número da Linha e aTag (Número do Ciclo).

• O Número da Linha e da Coluna servem para localizar o dado dentro da cache.• A Tag serve para confirmar se o dado é da região correta da Memória Principal.

• Estas informações são retiradas do endereço da célula conforme a ilustração abaixo:

Mapeamento Direto

ColunaLinhaTagEndereço:Número do Bloco

Page 116: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Puramente Associativo

0 1 2 3 4 5 6 7 8 9 C-101234

L-1

V M TAG

Controle Dados

L-2L-3

Bloco 0Bloco 1Bloco 2Bloco 3Bloco 4Bloco L-3Bloco L-2Bloco L-1Bloco L

Memória PrincipalColunas Pot. 2

LinhasPot. 2

BlocoQualquerbloco pode

ser carregadoem

qualquerlinha

Possibilidades de TAGEnd. Célula Nº do Bloco Nº do Ciclo> > Var = 2bits

Page 117: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Puramente Associativo

TAG Linha 0TAG Linha 1TAG Linha 2TAG Linha 3

TAG Linha L-1

TAG do Endereço Em caso de Hit, seleciona a respectiva linha

CKT

CKT

CKT

CKT

CKT

Circuitos de Comparação

Page 118: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Esta memória cache também precisa de três informações para trabalhar: Número da Coluna, Número daLinha e a Tag (Número do Bloco).

• O Número da Linha e da Coluna servem para localizar o dado dentro da cache.• A Tag serve para confirmar se o dado é da região correta da Memória Principal.

• A Tag e o Número da Coluna são retirados do endereço da célula conforme a ilustração abaixo.• O Número da Linha é descoberto através dos circuitos que verificam todas as Tags das linhas

simultaneamente.

Puramente Associativo

ColunaTagEndereço:Número do Bloco

Page 119: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Associativo por Conjunto

0 1 2 3 4 5 6 7 8 9 C-1V M TAG

Controle DadosBloco 0Bloco 1Bloco 2Bloco Conj-2Bloco Conj-1

Bloco ConjBloco Conj+1Bloco Conj+2

Memória PrincipalColunas Pot. 2

ConjuntosPot. 2

Ciclo 0

Ciclo 1

Ciclo

1010

010101

012

Conj - 2Conj - 1

Linhas doConjunto

Possibilidades de TAGEnd. Célula Nº do Bloco Nº do Ciclo> > Var = 2bits

Page 120: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Esta memória cache precisa de quatro informações para trabalhar: Número da Coluna, Número doConjunto, Número da Linha dentro do conjunto e a Tag (Número do Ciclo).

• O Número do Conjunto, da Linha e da Coluna servem para localizar o dado dentro da cache.• A Tag serve para confirmar se o dado é da região correta da Memória Principal.

• Com exceção do Número da Linha, as demais informações são retiradas do endereço da célula conforme ailustração abaixo:

• O Número da Linha é descoberto através dos circuitos que verificam todas as Tags das linhas do conjuntosimultaneamente.

Associativo por Conjunto

ColunaConjuntoTagEndereço:Número do Bloco

Page 121: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 122: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 123: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Quando a memória cache ficar cheia, na ocorrência de um miss é preciso liberar o conteúdo de uma linhapara poder receber o novo conteúdo.

• A grande questão é decidir qual será esta linha.• A Política de Substituição tem como finalidade definir uma linha para ter seus dados substituídos por

um novo conteúdo vindo da Memória Principal.• Esta linha é denominada “Linha Vítima”.• Como no Mapeamento Direto não existe a liberdade de escolha de linha, nele não se aplica a Política de

Substituição.• Nas demais Políticas de Carregamento (Puramente Associativo e Associativo por Conjunto), por existir a

liberdade de escolha, será utilizada alguma Política de Substituição.• Devido a necessidade de alta velocidade, todas as Políticas de Substituição são implementadas em

hardware.

Políticas de Substituição

Page 124: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Dentre as diversas Políticas de Substituição existentes, comentaremos as quatro mais populares:– Aleatório: Este método faz uma escolha casual de uma linha para ser a linha vítima. Como este

método não leva em consideração os acessos anteriores à Memória Cache, existe a probabilidade defazer uma má escolha depende da quantidade de linhas potencialmente úteis (boas) na MemóriaCache.Se 20% das linhas da Cache forem boas, teremos também 20% de chances de fazermos uma escolharuim, isto é, escolhermos uma dessas linhas boas.Agora, se 90% das linhas da Cache forem boas, então teremos 90% de chances de fazermos umaescolha ruim.

Políticas de Substituição

Page 125: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

– FIFO: Este método faz a escolha da linha vítima de acordo com a ordem de carregamento (First-in,First-out). O método de escolha é simples e é levado em consideração a ordem de carregamento, quesó é atualizada quando a linha for carregada, isto é, na ocorrência de um miss.Como os misses acontecem com maior raridade, este histórico acaba ficando muito desatualizado,levando muitas vezes a escolhas inadequadas.

Políticas de Substituição

HistóricoOrdem de Carregamento

SequênciaVítima

210

Sequência de Acesos: 1, 0, 2, 1, 2

Page 126: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

– LFU (Menos Freqüentemente Usada): Este método usa como base para a escolha da linha vítima aquantidade de vezes que as linhas foram referenciadas. A linha que foi referenciada menos vezes, é alinha vítima. Este método usa como critério a frequência de acessos a uma determinada linha.

Políticas de Substituição

HistóricoFrequência de Acessos

Vítima210 20

1030

Frequência

Page 127: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

– LRU (Menos Recentemente Usada): O critério de escolha deste método é a ordem dos acessos feitosàs linhas de cache. A linha que não é acessada a mais tempo é a candidata a linha vítima.

Políticas de Substituição

HistóricoOrdem de Carregamento

SequênciaVítima

210

Sequência de Acesos: 1, 0, 2, 1, 2

Mais Recentemente Usado

Menos Recentemente Usado

Page 128: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 129: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 130: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A Política de Atualização faz referência ao momento em que o dado escrito pela CPU será transferido paraa Memória Principal:

– Write Through: Este método faz a atualização da Memória Principal no momento em que foi feita aescrita na Memória Cache. A vantagem deste método é de manter a Memória Principal sempreatualizada, só que para cada escrita feita pela CPU, será consumido o tempo referente ao da MemóriaPrincipal. A vantagem da cache será apenas nas operações de leitura que, por serem muito maisfrequentes, ainda terá algum ganho com este método.

Políticas de Atualização ou Escrita

A = B + CL L

L LLL

E

Se A == B entãoApenas Leitura

Dados

Instruções

Page 131: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

– Write Back: Para conseguir aumentar o desempenho nas operações de escrita, esta memória atrasa asatualizações na Memória Principal, mantendo os dados mais recentes apenas na Cache. A atualizaçãoserá realizada somente no momento em que a respectiva linha tiver que ser substituída por outra, anão ser que ela não tenha sido alterada pela CPU.

Políticas de Atualização ou Escrita

Soma = 0;Para i = 0 até 1000 faça

soma = soma + A[i];Serão realizadas aproximadamente1000 escritas em soma e em i.

A única escrita que realmenteinteressa no decorrer do programa éa última feita na variável soma e,eventualmente, a última feita navariável i.

Page 132: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

– Write Once: Esta política de atualização é uma mistura dos dois métodos anteriores e tem comoobjetivo trazer vantagens tanto nas operações de leitura como nas operações de escrita em sistemascom mais de uma CPU. Este é um caso em que mais de um dispositivo está acessando a MemóriaPrincipal.Para que não aconteça o envio de uma informação errada para uma das CPUs, a Memória Cacheutiliza o recurso da primeira escrita para avisar as demais caches do sistema que aquele bloco daMemória Principal passará a ser de uso exclusivo dela.A partir deste momento, todas as operações de escrita e leitura naquele bloco da Memória Principalficarão restritos a esta cache.As demais caches que possuírem este bloco o marcarão como inválido.Quando alguma outra CPU necessitar das informações deste bloco, será feita uma solicitação deatualização à cache portadora do bloco.Esta cache irá então atualizar a Memória Principal possibilitando que as demais CPUs recebam o dadomais recente.

Políticas de Atualização ou Escrita

Page 133: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Políticas de Atualização ou Escrita

Barramentos

Cache A

CPU A

Cache B

CPU B

MemóriaPrincipal

V V 3

3

3

34

4

4

1 1 0

5

5

Solicita Leitura do End. 1000

Miss

5

6

6

1

Solicita Leitura do End. 1000

Miss

Solicita Leitura do End. 1000 6

6

Utilizando a Política de Atualização Write Through

6End. 1000 3FuncionametoCorreto

Page 134: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Políticas de Atualização ou Escrita

Barramentos

Cache A

CPU A

Cache B

CPU B

MemóriaPrincipal

V V 3

3

3

34

41 1

5

5

Solicita Leitura do End. 1000

Miss

Solicita Leitura do End. 1000

Miss

Solicita Leitura do End. 1000 6

6

Utilizando a Política de Atualização Write Back

Hit

End. 1000 3FuncionametoIncorreto

Page 135: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Políticas de Atualização ou Escrita

Ex

Barramentos

Cache A

CPU A

Cache B

CPU B

MemóriaPrincipal

V V Ex 3

3

3

34

4

4

10

101

0

5

5

Solicita Leitura do End. 1000

Atualiza a Memória Principal

Miss

6

6

6

10

Solicita Leitura do End. 1000

Miss

Solicita Leitura do End. 1000 6

6

Utilizando a Política de Atualização Write Once

End. 1000 3

FuncionametoCorreto

Page 136: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 137: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 138: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Devido a diferença nos desempenhos, nos custos e nas capacidades das memórias, foi utilizada uma estratégia de organizaçãochamada “Hierarquia de Memória”.Esta Hierarquia é representada por uma pirâmide onde a área demarcada para cada tipo de memória está relacionada com a suacapacidade de armazenamento.A altura estará relacionada ao desempenho e ao custo de fabricação delas. Quanto mais para o topo da pirâmide, mais próximada CPU ela estará, consequentemente, maior deve ser o seu desempenho.

Hierarquia de Memória

Page 139: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Hierarquia de Memória

Reg

CacheL1

L2

Memória Principal

Memória Secundária

Maior Desempenho Maior Custo

Maior Capacidade

Estática

Dinâmica

Page 140: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

A ideia principal com a hierarquia de memória é gerar a melhor relação custo/benefício.Esta estratégia permite que os pedidos feitos pela CPU tenham a tendência de serem atendidos primeiro pelas memórias maisrápidas.As memórias das posições mais acima armazenam parte da memória imediatamente abaixo.No caso das memórias caches, para aumentar a sua capacidade sem aumentar a geração de calor, foi necessário diminuir a suavelocidade, já que quanto maior a frequência do clock, maior é a geração de calor.

Hierarquia de Memória

Para não comprometer o desempenho final docomputador, a cache foi divida em vários níveis (Levelem inglês) sendo alinhadas com o menor nível mais aotopo.A cache L1 está diretamente conectada à CPU.Ela será a mais rápida, muitas vezes tendo o mesmodesempenho que a própria CPU, porém, devido a grandevelocidade, ela será produzida com pouca capacidade dearmazenamento.

Page 141: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Para que não se perdesse tanto tempo buscando um dado na Memória Principal toda vez que ocorresse um miss, foi projetadauma cache com uma capacidade maior que a da L1, porém, com um menor desempenho.Apesar do menor desempenho, ela ainda seria muito mais rápida que a Memória Principal, já que ainda é produzida com atecnologias estática.Hoje em dia temos as caches L1 e L2 normalmente implementadas dentro do chip da CPU, para que com a diminuição nocomprimento dos barramentos, seja possível aumentar ainda mais a taxa de transferência.

Hierarquia de Memória

A cache L3 costuma ficar instalada na placa mãe.Como as caches inferiores tem maior capacidade, é bemprovável que elas sejam capazes de atenderem aos missesdas caches mais acima.

Page 142: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Os acessos seguem rigorosamente a hierarquia de memória.Se o dado necessário para um processamento não estiver em algum registrador, ele será solicitado à cache L1.Se ela possuir este dado, ele será entregue à CPU, caso contrário, a cache L1 solicitará este dado à cache L2.Como a cache L2 é maior que a cache L1, é bem provável que ela possua este dado, enviando para a L1, que guardará umacópia e enviará para a CPU.

Hierarquia de Memória

Este procedimento irá se repetir sempre que umadeterminada camada da hierarquia não possuir o dadosolicitado pela camada superior.Este comportamento é todo implementado em hardwareaté a camada da Memória Principal.Já a gerência dos acessos à memória secundária é feitavia software pelo Sistema Operacional.

Page 143: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 144: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 145: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Funções realizadas pelo processador:– Função controle

Responsável pela busca, interpretação e controle da execução das instruções, bemcomo do controle da ação dos demais componentes do sistema de computação(memória, entrada/saída).

– Função processamentoResponsável por realizar as atividades relacionadas com a efetiva execução de umaoperação, ou seja, processar, realizar um cálculo aritmético ou lógico, etc.

CPU

Page 146: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Componentes de uma CPU– Unidades Funcionais

São os módulos da CPU responsáveis pela busca e o processamento das instruções.– Registradores

É a memória interna da CPU que possui conexão direta com as Unidades Funcionais.São produzidos com a mesma tecnologia da CPU possuindo assim a mesmavelocidade.

– Barramento InternoResponsável por interconectar os registradores às Unidades Funcionais.

CPU

Page 147: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Os registradores são divididos em dois tipos:– Uso Geral (dados)

Os registradores de uso geral são usados para armazenar dados da execução do programa, como os valoresque serão operados e o resultado das operações.• Acc (Acumulador) Este registrador é especial porque ele é normalmente usado como fonte e destino

de dados e costuma ser um operando implícito nas instruções.– Uso Específico (informações de uso interno da CPU)

Os registradores de uso específico guardam informações especiais, como por exemplo:• REM Guarda o endereço utilizado na comunicação com a memória.• RDM Guarda o dado utilizado tanto na leitura como na escrita com a memória.• PC ou CI Sigla proveniente de “Program Counter” e “Contador de Instrução” respectivamente. Este

registrador guarda o endereço da próxima instrução a ser executada pela CPU.• RI Sigla proveniente de “Registrador de Instruções”. Este registrador guarda a instrução que está sendo

executada pela CPU.• FLAGS ou STATUS Registrador especial para guardar informações referente a última execução realizada e

sinais de controle para a CPU realizar controle de fluxo (desvios).

CPU

Page 148: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Componentes da CPUCPU

ULA Registradores0 a R – 1

AcumuladorPC ou CI

RDM

REM

RI

Unidade deControle (UC)

Decodificadorde InstruçõesClock

Barramento de Dados

Barramento de Endereços

Barramento de Controle

Page 149: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 150: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 151: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Buscar a próxima instrução

Incrementar o PC ou CI

Decodificar o código da operação

Executar a operação

Escrever o resultado

Tem operando? Buscar eArmazenaroperando

Cálculodo local

do operando

Ciclode

busca

Ciclode

execução

Sim

Não

Fluxograma de um Ciclo de Instrução

Page 152: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Término

Início

Buscar a instrução na memória e atualizar o PC ou CI.Busca

Decodificar a instrução, interpretar a operação a ser realizada ebuscar operandos (se houver).Decodificação

Executar a Operação.

Escrever o resultado.

Execução

Resultado

Fluxograma resumido de um Ciclo de Instrução

Page 153: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Busca Resul.Decod.

Sequência de Execução das Instruções em uma CPU tradicional

Exec.

Busca Resul.Decod. Exec.

Ciclos de Clock 1 2 3 4 5 6 7 8Instrução iInstrução i + 1

Como podemos observar, teremos uma instrução finalizada a cada 4 ciclos de clock.Isto é, 1 inst/4 ciclos ou 0,25 inst/ciclo.

Page 154: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Enquanto a instrução encontra-se em um determinado estágio, nota-se claramente a ociosidadedos demais estágios da CPU.Um aprimoramento realizado no projeto da CPU foi de minimizar estas ociosidadesimplementando a possibilidade de executar várias instruções ao mesmo tempo, porém em estágiosdiferentes.A este tipo de funcionalidade da CPU dá-se o nome de Pipeline.

Aprimoramento da CPUPipeline

Page 155: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Busca Resul.Decod. Exec.

Busca Resul.Decod. Exec.

Busca Resul.Decod. Exec.

Busca Resul.Decod. Exec.

Busca Resul.Decod. Exec.

Ciclos de Clock 1 2 3 4 5 6 7 8Instrução iInstrução i + 1Instrução i + 2Instrução i + 3Instrução i + 4

Como podemos observar, após o preenchimento do pipeline, teremos uma instrução finalizada a cada ciclode clock, logo temos, 1 inst/ciclo.O aumento de desempenho foi de 4. Isto é, o aumento de desempenho é equivalente ao número deestágios do pipeline quando o pipeline estiver cheio.

Sequência de Execução das Instruções em uma CPU com Pipeline

Page 156: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Reordenação das

Instruções

Um novo aprimoramento realizado foi de implementar mais de um caminho de execução no mesmo pipeline,possibilitando a execução de mais de uma instrução simultaneamente no mesmo estágio.A este tipo de CPU dá-se o nome de Superescalar.

Aprimoramento da CPUSuperescalar

CPU

Busca

Pipeline(2 instruções do

mesmo programa)2 Instruções

2 Resultados

Page 157: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Reordenação das

Instruções

Devida a ociosidade de vários módulos de cálculo da ULA resultante dos diversos conflitos de dados e também do aumento naquantidade destes módulos, a INTEL criou uma CPU capaz de trabalhar com 2 programas (threads) distintos ao mesmo tempo,compartilhando todos os recursos da ULA.

Aprimoramento da CPUHyper-threading (HT) da Intel

CPU

Busca

Pipeline 1(2 instruções do

mesmo programa)2 Instruções

2 Resultados de um programa

Reordenação das

InstruçõesBusca

Pipeline 2(2 instruções do

mesmo programa)

2 Resultados de um programa

Page 158: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

O núcleo refere-se a uma CPU completa. Com a barreira no aumento do Clock das CPUs, começou-se a investir noaumento do paralelismo. Sendo assim, os chips de CPU passaram a ser criados com mais de um núcleo. Dependendodo núcleo, cada um pode trabalhar com até dois programas ao mesmo tempo, no caso dos núcleos HT. Uma CPU comdois núcleos HT poderá executar até 4 programas simultaneamente, aumentando assim o desempenho final.

Aprimoramento da CPUMúltiplos Núcleos (Multi-Core)

CPU

Núcleo HT 2

Núcleo HT 12 Resultados do programa 1

2 Resultados do programa 22 Resultados do programa 3

2 Resultados do programa 4

Programa 1Programa 2

Programa 3Programa 4

Page 159: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Uma outra maneira de otimizar a execução de instruções através de paralelismo é o uso de Palavras de Instruçõesmuito Longas (VLIW) capazes de acomodarem mais de uma instrução de máquina.Desta forma, o compilador tem a incumbência de organizar na mesma palavra de instrução, instruções de máquina quepodem ser executadas simultaneamente, aumentando o paralelismo.Como já foi comentado, apesar das arquiteturas superescalares já oferecerem este tipo de paralelismo, a CPU ficasujeita à muitas instruções com dependências, diminuindo o paralelismo real de execução. Como a CPU tem umavisão muito curta do programa (cerca de 4 a 8 instruções), fica, muitas vezes, difícil dela contornar o problema dadependência.O Compilador, como tem uma visão completa do código, pode agrupar as instruções sem dependência para aumentaro paralelismo. O VLIW tem esta proposta, forçar o compilador a agrupar tais instruções e colocá-las em pacotescontendo várias instruções de máquinas sem dependência uma com as outras.Caso não seja possível preencher todos os campos de instrução da palavra de instrução, deve-se colocar a instruçãoNOP (no operation – sem operação) para complementá-la.

Aprimoramento da CPUVLIW – Very Long Instruction World (Palavra de Instrução Muito Longa)

Page 160: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

A arquitetura IA-64 da Intel utiliza este mecanismo.Abaixo é apresentado o formato utilizado pela arquitetura IA-64.Cada instrução de máquina tem 41 bits e são agrupadas em uma palavra de instrução de 128 bits.Cada palavra de instrução conterá 3 instruções de máquina e mais um campo indicador de 5 bits que serve para enviarinformações de controle adicionais à CPU.

Aprimoramento da CPUVLIW – Very Long Instruction World (Palavra de Instrução Muito Longa)

128 bits

Inst. 1 Inst. 2 Inst. 3Palavra de instrução Indicador5 bits41 bits 41 bits 41 bits

Page 161: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Atenção!!!!!! A arquitetura de 64 bits da AMD não utiliza VLIW.Ela utiliza uma extensão de instruções de 64 bits dentro do conjunto de instruções de 32 bits já existente.No fundo, ela fez com a CPU de 64 bits o mesmo que as de 32 bits fizeram em cima das de 16 bits, isto é, acrescentounovas instruções para 64 bits ao seu conjunto de instruções.

Aprimoramento da CPUVLIW – Very Long Instruction World (Palavra de Instrução Muito Longa)

Page 162: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 163: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 164: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como será que é formada a instrução de máquina?• Devemos ter em mente que a CPU possui um circuito para cada tarefa definida pelofabricante.• Para acessar estes circuitos e então ter tal operação realizada, eles foramidentificados com um código numérico.• Sempre que se desejar executar uma determinada operação, deve-se indicar ocódigo do circuito em questão.• Este código é conhecido como opcode.

Formato das Instruções de Máquina

Page 165: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Além de indicar a operação, a maioria delas necessita de parâmetros (operandos).Então, além do opcode, a instrução possui campos com os operandos da operaçãoem questão.• Nas arquiteturas mais comuns, as instruções podem ir desde apenas o opcode, zerooperando, até três operandos.

Formato das Instruções de Máquina

Operandos

OP. 1 OP. 2OPCODE OP. 3Instrução

Page 166: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Colocar o dado diretamente na instrução muitas das vezes é insuficiente para algumasestruturas de dados. Sendo assim, existem outras formas de informar o local onde os dadosou instruções estão guardados.• Dentre os diversos modos de endereçamentos desenvolvidos para processadores, os principaissão:

– Imediato;– Direto;– Indireto;– Por registrador;– Indexado;– Base mais deslocamento.

• Nem todos estes modos estão incluídos nos conjuntos de instruções dos processadorescontemporâneos, mas devem ser descritos não só por razões históricas mas para percepção doprocesso evolutivo da tecnologia.

Modos de Endereçamentos

Page 167: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Imediato• O método mais simples e rápido de obter um dado é indicar seu próprio valor no campo operando da instrução,em vez de buscá-lo na memória.• A vantagem desse método reside no curto tempo de execução da instrução, pois não gasta ciclo de memóriapara a busca do dado, exceto o único requerido para a busca da instrução.• Assim, o dado é transferido da memória juntamente com a instrução (para o RI), visto estar contido no campooperando da instrução.• Este modo é útil:

– Para inicialização de contadores (um valor sempre fixo em toda execução do mesmo programa);– Na operação com constantes matemáticas;– Para armazenamento de ponteiros em registradores do processador;

• Duas de suas desvantagens consistem na limitação do tamanho do campo operando das instruções o que reduzo valor máximo do dado a ser manipulado e o fato dos valores serem constantes, já que as instruções nãopodem ser modificadas ao longo da execução.

Modos de Endereçamentos

Page 168: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de Endereçamentos

Operando

OPCODEInstrução

Registradorou ULA

Dado

Dado

Dado

Modo Imediato

O dado é transferido diretamente dainstrução para o Registrador ou ULA.

Page 169: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Direto• Para contornar as limitações do modo de endereçamento imediato, o modo direto guarda o dado na MemóriaPrincipal.• Sendo assim, o valor binário contido no campo operando da instrução indica o endereço de memória onde selocaliza o dado.• O endereço pode ser o de uma célula onde o dado está inteiramente contido ou a célula onde começa oarmazenamento do dado no caso dele ocupar mais de uma célula.• É também um modo simples de acesso, pois requer apenas uma referência à MP para buscar o dado, sendo,porém mais lento que o modo imediato devido à referência à memória.• Quando um dado for variar de valor ao longo da execução do programa, a melhor maneira de utilizá-lo é,inicialmente, armazená-lo na MP. O programa, então, usa o dado através do modo direto, onde a instruçãoindica apenas o endereço onde ele se localiza. Esta é a característica de uma variável de programa: representaro endereço de uma variável.• Uma possível desvantagem desse processo está na limitação da memória a ser usada, conforme o tamanho docampo operando. Isto é, se o campo tiver um tamanho, por exemplo, de 12 bits, com o emprego do mododireto somente se pode acessar as células de endereço na faixa de 0 a (4.095)10.

Modos de Endereçamentos

Page 170: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

EndEnd

Modo Direto

Após a primeira referência à memória, odado é transferido da memória para oRegistrador ou ULA.

MPEnd DadoDado

Page 171: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Indireto• Para contornar as limitações do modo de endereçamento direto, o modo indireto guarda o endereço do dado naMemória Principal.• Nesse método, o valor binário contido no campo operando da instrução representa o endereço onde estáarmazenado o endereço do dado.• Assim, há um duplo endereçamento para o acesso a um dado e, consequentemente, mais ciclos de memóriapara buscar o dado, comparativamente com os métodos já apresentados.• O endereço intermediário (conteúdo da célula endereçado pelo valor do campo operando) é conhecido comoponteiro, pois indica a localização do dado.• Com esse processo, elimina-se o problema do modo direto, delimitação do valor do endereço do dado, poisestando o endereço armazenado na memória (podendo ocupar uma ou mais células), este se estenderá aotamanho necessário para a representação do maior endereço da MP do sistema de computação em uso, além depoder ser modificado ao longo da execução do programa.

Modos de Endereçamentos

Page 172: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

End 1End 1

Modo Indireto

Após a primeira referência à memória, a CPU pega oendereço do dado e retorna à memória para umasegunda referência sendo que nesta o dado étransferido da memória para o Registrador ou ULA.

MPEnd 2 DadoDado

End 1 End 2End 2

Page 173: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

ResumoModos de Endereçamentos

ImediatoDireto

MemóriaRegistrador

IndiretoMemóriaRegistrador

Dado

End. Dado

End. End. Dado End. Dado Dado

DadoReg. Dado

Reg. End. Dado

Dado

End. Dado Dado

Endereçamento Instrução Memória MemóriaLocal

Registrador

Page 174: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Endereçamento por Registrador• Esse método tem características semelhantes aos modos direto e indireto, exceto que a célula de memóriareferenciada na instrução é substituída por um dos registradores do processador. Com isso, o endereçomencionado na instrução passa a ser o de um dos registradores, e não mais de uma célula da MP.• A primeira vantagem logo observada, consiste no menor número de bits necessários para endereçar osregistradores, visto que estes existem em muito menor quantidade que as células de memória. Isso reduz otamanho geral das instruções.• Um computador que tenha, por exemplo, um processador com 16 registradores, requer apenas 4 bits paraendereçá-los; no caso de endereçamentos de células da MP, como o espaço de endereçamento da memória égrande, há necessidade de 30 ou mais bits para indicar o endereço de cada uma das células.• Outra vantagem está no próprio emprego do dado, que passa a ser armazenado em um meio (registrador) cujoacesso é muito mais rápido que o acesso à memória.

Modos de Endereçamentos

Page 175: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

RegistradorRegistrador

Modo Direto por Registrador

Ao colocar o registrador como operando nomodo direto, diminui-se o tempo de acesso,já que além de não ir a memória oregistrador é capaz de guardar númerosmaiores que os que cabem em uma célulade memória.

Registrador DadoDado

Page 176: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

RegistradorRegistrador

Modo Indireto por Registrador

Tal como no modo direto, o registradorcomo operando diminui em um aquantidade de acessos à memória e,devido ao seu tamanho, ele podearmazenar o endereço completo.

Registrador EndEnd MPEnd DadoDado

Page 177: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Indexado• Frequentemente, durante a execução dos programas, existe a necessidade de se manipular endereços de acesso aelementos de certos tipos especiais de dados. Esses endereços servem, na realidade, de ponteiros para os referidoselementos.• Por exemplo, o acesso aos elementos de um vetor deve considerar que tais elementos são armazenadossequencialmente na memória e que sua localização pode ser referenciada por um ponteiro (endereço) que é alteradopara indicar o elemento desejado (índice do elemento identifica univocamente cada um).• A descrição dessas instruções caracterizam o modo de endereçamento denominado indexado. Esta denominaçãoadvém do fato de que a obtenção do endereço de um dado (elemento de um vetor) relaciona-se com o seu índice.• Nesse tipo de instrução, o endereço do dado é a soma do valor do campo operando (valor fixo que representa oinício do vetor) com o valor armazenado em um dos registradores (normalmente denominado registrador índice).O valor armazenado nesse registrador representa o índice do vetor e varia para o acesso a cada elemento.• Na verdade, esse modo de endereçamento é uma evolução das técnicas desenvolvidos desde os primórdios dacomputação para manipulação dessas estruturas de dados especiais.

Modos de Endereçamentos

Page 178: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

End 1End 1

Modo Indexado

MPEnd 2 DadoDado

Reg. ÍndiceReg. Índice

End 2+ = End 2A[0]A[1]A[2]A[3]A[4]

End 1

Page 179: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Base mais Deslocamento• Este modo de endereçamento tem característica semelhante ao modo indexado, visto que o endereço de acesso auma célula de memória se obtém através da soma de dois valores, um inserido no campo apropriado da instrução(normalmente denominado campo deslocamento) e o outro valor inserido em um determinado registrador,denominado registrador – base ou registrador de segmento.• A diferença entre eles está na aplicação do propósito do método e, por conseguinte, na forma de implementá-lo.Nesse caso, o valor a se manter fixo é o do registrador – base/segmento, variando o conteúdo do campodeslocamento em cada instrução, diferentemente do modo indexado, onde o conteúdo do registrador é que se altera.• Os processadores da família Intel x86 possuem alguns registradores projetados especificamente com a finalidade deservir como registrador de segmento, como os registradores de 16 bits dos primeiros processadores Pentiumseguidos posteriormente pelos registradores de segmentos de 32 bits.• Este método de endereçamento acarreta uma redução do tamanho das instruções (e, com isso, economiza memória),bem como facilita o processo de realocação dinâmica de programas.

Modos de Endereçamentos

Page 180: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modo Base mais Deslocamento• A sua escolha decorre de dois fatores:

a) Durante a execução dos programas, as referências às células de memória, onde se localizam os operandos,normalmente são sequenciais, ocorrendo poucos acessos a outras instruções fora da ordem (exceto osdesvios);b) A maioria dos programas ocupam um pequeno espaço da MP disponível.

• Dessa forma, em vez de ser necessário, em cada instrução, que o campo operando tenha um tamanhocorrespondente à capacidade total de endereçamento da MP, basta que o endereço desejado seja obtido pela somade um valor existente em um dos registradores da CPU com o valor contido na instrução.• Por isso o método é chamado de base + deslocamento, consistindo, então, na utilização de dois campos nainstrução (que substituem o campo operando): um, com o endereço de um registrador (chamado de base ousegmento), e outro, com valor denominado deslocamento (porque contem um valor relativo – que se desloca emrelação à primeira instrução).

Modos de Endereçamentos

Page 181: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosModo Base mais Deslocamento

MPEnd. do Dado

End. inicial do seg. 0

End. inicial do seg. 1

End. inicial do seg. 2

DeslocamentoSeg. 0

Seg. 1

Seg. 2

End. Inicial do Seg. Deslocamento+=

Registrador Instrução0123N-1

0123N-1

0123N-1

Page 182: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosOperando

OPCODEInstrução

Registradorou ULA

Reg. BaseReg. Base

Modo Base mais Deslocamento

MPEnd DadoDado

DeslocamentoDeslocamento

+ = EndEnd

Page 183: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 184: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 185: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Endians• Quando o valor a ser guardado ou lido da memória ocupar mais de uma célula, o valor deve ser dividido empedaços e então guardados nas células de forma sequencial.• A questão envolvida aqui diz respeito ao sentido deste armazenamento. Este sentido é denominado endian.• A informação pode ser armazenada a partir do byte mais significativo para o menos significativo, isto é, o bytemais significativo fica na célula de endereço mais baixo enquanto o byte menos significativo fica na célula deendereço mais alto. Este método é denominado big endian.• Se for armazenado no sentido contrário, a partir do byte menos significativo para o mais significativo, isto é, obyte menos significativo fica na célula de endereço mais baixo enquanto o byte mais significativo fica na célulade endereço mais alto, este método será denominado little endian.

Arquitetura da CPU

Page 186: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Modos de EndereçamentosEndians

MP102345

Valor: A7 B3 45 C9( )16

MP102345

Big endian Little endian

Mais Significativo Menos SignificativoB3 45A7 C9

A7B345C9 A7

B345C9

A7 B3 45 C9

Page 187: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

CISC X RISC• CISC Conjunto Complexo de Instruções.

Motivadores Memória muito cara e consequentemente de baixa capacidade; Lentidão no acesso à memória.

Características Instruções que realizam tarefas complexas; Uso de micro-instruções; Possibilidade de trabalhar com muitos parâmetros; Endereçamento de memória variado em instruções aritméticas e lógicas; Instruções de tamanho variável.

Desvantagens Circuitos muito complexos; Grande geração de dependência de dados; Descasamento nos tempos de acesso entre memória e registradores; Maior dificuldade em criar arquiteturas mais eficientes.

Arquitetura da CPU

Page 188: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

CISC X RISC• RISC Conjunto Reduzido de Instruções.

Motivadores Uso da memória cache para diminuir o tempo médio no acesso à memória; Barateamento da memória principal permitindo uma alta capacidade de armazenamento; Interesse em simplificar a arquitetura da CPU para aumentar o desempenho com estruturas maiseficientes.

Características As instruções realizam tarefas simples e básicas; Uso de decodificação por hardware através de circuitos combinacionais, não são utilizadas micro-instruções; Endereçamento de memória variado, porém apenas para as instruções de leitura e escrita; As operações aritméticas e lógicas só acessam dados em registradores; Pequena variedade de Instruções.

Desvantagens Maior complexidade na geração de programas; Programas maiores.

Arquitetura da CPU

Page 189: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 190: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 191: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• A evolução tecnológica dos processadores iria diminuir drasticamente.• O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesmatarefa em menos tempo através da divisão das tarefas entre os processadores.• Os sistemas paralelos foram classificados em 4 categorias em função das instruções e dos dados. É aTaxonomia de Flynn.

SISD (Single Instruction stream, Single Data stream) – Uniprocessador. SIMD (Single Instruction stream, Multiple Data stream) – A mesma instrução é executada pormúltiplos processadores, porém cada um deles possui diferentes dados. MISD (Multiple Instruction stream, Single Data stream) – Sem uso comercial. MIMD (Multiple Instruction stream, Multiple Data stream) – Cada processador busca suaprópria instrução e opera seu próprio dado.

Multiprocessadores

Page 192: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Os sistemas MIMD são divididos em 2 grupos de acordo com a organização de memória.• O primeiro grupo é chamado de Centralized Shared-Memory (Memória Central Compartilhada).• Considerando a pequena quantidade de processadores utilizados, cerca de poucas dezenas, é possívelcompartilhar a mesma memória e conectar todos os processadores à memória através de umbarramento comum.• Nesta arquitetura, o barramento é o gargalo da comunicação. Se houver uma grande demanda deacessos ao barramento devido a uma grande quantidade de processadores, a comunicação ficará lentadevido às colisões.• Com uma grande memória cache, tanto o barramento como a memória principal podiam dar conta dademanda de acessos.• Devido a uma única memória possuir um tempo de acesso uniforme para os processadores elatambém é chamada de UMA (Uniform Memory Access – Memória de Acesso Uniforme).

Multiprocessadores

Page 193: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Multiprocessadores

CPU

Cache

CPU

Cache

CPU

Cache

CPU

Cache

Barramento Comum

MemóriaPrincipal Subsistemade E/S

Arquitetura UMA

Page 194: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• O segundo grupo consiste de máquinas com a memória física distribuída.• Para suportar grandes quantidades de processadores, a memória deve ser distribuída entre osprocessadores, do contrário, o sistema não suportaria a grande demanda de largura de banda detantos processadores.• Para que a eficiência ainda seja boa, a rede de interconexão deve possuir uma alta largura de banda.• Memória Distribuída possui duas grandes vantagens:

Primeiro, é uma maneira viável economicamente para aumentar a largura de banda da memória,se a maioria dos acessos for realizada na memória local do nó. Segundo, a latência de acesso é diminuída para os acessos locais, já que não existe a disputaentre os diversos processadores.

• Como desvantagem, podemos citar a comunicação de dados entre processadores, que se torna maiscomplexa e a latência aumenta, já que a memória não é compartilhada.• Devido ao acesso a memória possuir tempos diferentes dependendo do tipo de acesso (local ouremoto), esta arquitetura é chamada de NUMA (Non-Uniform Memory Access – Memória de Acessonão Uniforme).

Multiprocessadores

Page 195: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

MultiprocessadoresArquitetura NUMA

E/S

CPUcacheMemória

CPUcache

Memória E/S

E/S

CPUcacheMemória

CPUcache

Memória E/S

E/S

CPUcacheMemória

CPUcache

Memória E/S

Rede de Comunicação

Page 196: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Desafio do Processamento Paralelo.• Para o aumento de desempenho com multiprocessadores nos deparamos com dois grandes desafios.

O primeiro diz respeito ao limitado paralelismo disponível nos programas O segundo se refere ao alto custo nas comunicações.

• A limitação no paralelismo disponível dificulta em adquirirmos uma boa aceleração (speed up) nasmáquinas paralelas.• A seguir veremos como calcular a aceleração em um sistema paralelo de memória compartilhada(UMA – Uniform Memory Access).

Multiprocessadores

paralelaparalela FraçãoFração

1CPUs de Total

1Aceleração Que é a Lei de AmdahlPrograma

FraçãoSequencial

FraçãoParalela

Page 197: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

ExemploQual será o ganho obtido em um programa com 10% do seu código sequencial em uma máquina com 100processadores?

Multiprocessadores

paralelaparalela FraçãoCPUsdeTotal

FraçãoGanho

1

1

sequencialparalela FraçãoFração 11,01paralelaFração

9,0paralelaFração

9,011009,0

1

Ganho

100109,0

1Ganho

9,10100Ganho

17,9Ganho

Page 198: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 199: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh
Page 200: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

• Como calcular o desempenho de uma CPU?• O único parâmetro incontestável para comparar o desempenho é o tempo.• No caso da CPU, teremos como referência, o tempo de CPU, isto é, o tempo consumido pela CPUpara realizar a execução completa de um programa.• Levantar este tempo experimentalmente é um pouco complicado, já que um computador precisaexecutar um sistema operacional, que consome tempo de processamento. Também existem outrosmecanismos que atrapalham estas medições, como os pedidos de interrupção.• Além disso, quando estamos projetando uma nova CPU não é possível fazer experimentos paracomparar, já que a CPU ainda não existe.• Sendo assim, vamos calcular este tempo com base em três parâmetros:

Período do Clock Ciclos por Instrução (CPI) Total de Instruções Executadas (IC)

Cálculo do Desempenho da CPU

Page 201: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Dependência dos ParâmetrosPeríodo do Clock Tecnologia de Hardware: este parâmetro estáassociado às características físicas dos materiais utilizados nafabricação dos circuitos integrados.CPI Arquitetura do Conjunto de Instruções: este parâmetrodepende de lógica utilizada pelo fabricante para realizar a operaçãoindicada pela instrução. Dependendo desta lógica, pode-senecessitar de mais ou menos ciclos de clock.IC Conjunto de Instruções e do Compilador: este parâmetrorepresenta o total de instruções executadas pelo processador paracompletar a execução de um programa. Se o processador contiverinstruções mais complexas, provavelmente uma quantidade menorde instruções será necessária para realizar a tarefa do programa doque se contivesse apenas instruções simples. Mesmo possuindodiversas instruções complexas, é o compilador que escolhe quaisinstruções serão utilizadas na realização da tarefa, sendo entãoresponsável também pelo número de instruções executadas.

Temos que:

Cálculo do Desempenho da CPUClock do PeríodoPrograma doClock de Ciclos de TotalCPU de Tempo

ICPrograma doClock de Ciclos de TotalCPI

CPIICPrograma doClock de Ciclos de Total Logo:

Clock do PeríodoCPIICCPU de Tempo Como o Clock da CPU costuma ser expressoem frequência, temos:

Clock do FrequênciaCPIICCPU de Tempo

Page 202: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Onde n é o total de instruções ou conjunto de instruçõesexistente na CPU.

Cálculo do Desempenho da CPUPara calcular o total de ciclos utilizados na execução deum programa realizamos o seguinte cálculo:

n

1iii ICCPIPrograma doClock de Ciclos

TotalTotal IC

Programa doClock de CiclosCPI

Total

n

1iii

Total ICICCPI

CPI

n

1i TotaliiTotal IC

ICCPICPI

Totali

ICICExecutadas Instruções de Percentual

n

1iiTotal Executadas Instruções de PercentualCPICPI

Para calcular a aceleração (speed up) obtida, utiliza-se ocálculo abaixo:

NovoOriginal

CPU de TempoCPU de Tempo)( Aceleração speed up

NovoNovoNovoOriginalOriginalOriginal

Clock do PeríodoCPIICClock do PeríodoCPIIC)( Aceleração

speed up

Substituindo pelos parâmetros IC, CPI e Período do Clocktemos:

Page 203: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

(Questão 48 – Petrobrás – Analista de Sistemas Júnior – Infraestrutura – ano 2008)Exemplo

CPI – Ciclos de clock por instruçãoFP – Floating-PointFPSQR – Operação de raiz quadrada de FPConsidere que duas alternativas para melhorar o desempenho do computador sejam: diminuir o CPI de FPSQR para 2 ou diminuir o CPImédio de todas as operações de FP para 2,5. Compare essas duas alternativas de projeto, usando a equação de desempenho de CPU e calculea aceleração obtida com a alternativa que apresentar melhor desempenho. Qual o valor da aceleração obtida?a) 1,09b) 1,17c) 1,28d) 1,35e) 1,40

Suponha que tenham sido feitas as seguintes medições para um computador:Medição Efetuada Valor

Frequência de execução de instruções do tipo FP 30%CPI médio de operações do tipo FP 4,0CPI médio de outras operações (diferentes de FP) 1,2Frequência de execução de instruções do tipo FPSQR 2%CPI de FPSQR 10

Page 204: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Exemplo

Em ambos os casos, só foram modificados os CPIs das instruções,sendo assim a aceleração se resume a:

Medição Efetuada ValorFrequência de execução de instruções do tipo FP 30%CPI médio de operações do tipo FP 4,0CPI médio de outras operações (diferentes de FP) 1,2Frequência de execução de instruções do tipo FPSQR 2%CPI de FPSQR 10

NovoNovoNovoOriginalOriginalOriginal

Clock do PeríodoCPIICClock do PeríodoCPIICAceleração

NovoOriginal

CPICPIAceleração

1º caso: Redução da CPI apenas das FPSQR de 10 para 2.

n

1iiiOriginal PercentualCPICPI

)70,02,1()30,04(CPIOriginal 84,02,1CPIOriginal

04,2CPIOriginal

)CPI(CPI 2%CPICPI FPSQR NovoFPSQR AntigoOriginalFPSQR Novo 2)(10 20,004,2CPI FPSQR Novo

8 20,004,2CPI FPSQR Novo 16,004,2CPI FPSQR Novo

88,1CPI FPSQR Novo

1,882,04Aceleração 085,1Aceleração

2º caso: Redução da CPI de todas as operações de Ponto flutuantede 4,0 para 2,5

)70,02,1()30,05,2(CPI FPSQR Novo 84,075,0CPI FPSQR Novo

59,1CPI FPSQR Novo

1,592,04Aceleração

283,1Aceleração

Resposta: c

Page 205: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Demonstração da Lei de Amdahl

aprimoradooriginal

TempoTempospeed up )( Aceleração

clockexecutadasoriginal PeríodoInstruçõesCPITempo

sequencialoriginalparalelaoriginal

aprimorado FraçãoTempoCPUs de TotalFraçãoTempoTempo

sequencial

Tempo

clockexecutadasparalela

Tempo

clockexecutadasaprimorado FraçãoPeríodoInstruçõesCPICPUs de Total

FraçãoPeríodoInstruçõesCPITempooriginal

original

Sequencial Fração da Execução de TempoParalela Fração da Execução de TempoTempo aprimorado

CPUs) de totalao (equivaleup speedFraçãoPeríodoInstruçõesCPIParalela Fração da Execução de Tempo

paraleloparalelaclockexecutadas

sequencialclockexecutadas FraçãoPeríodoInstruçõesCPISequencial Fração da Execução de Tempo

ProgramaFraçãoSequencial

FraçãoParalela

paralelasequencial Fração1Fração Temos que:

Page 206: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh

Demonstração da Lei de Amdahl

paralela

paralelaoriginalaprimorado Fração1CPUs de Total

FraçãoTempoTempo

paralela

paralelaoriginal

original

Fração1CPUs de TotalFraçãoTempo

TempoAceleração

)Fração1(TempoCPUs de TotalFraçãoTempoTempo paralelaoriginal

paralelaoriginalaprimorado

paralelalparalela Fração1CPUs de Total

Fração1Aceleração

Lei de Amdahl

aprimoradooriginal

TempoTempospeed up )( Aceleração

Page 207: Arquitetura de Computadores (Teoria) - rgquintao.com.brrgquintao.com.br/UVA/Arquitetura de Computadores/Transparencias_ACP... · $edvhghuhsuhvhqwdomrqxppulfdghxpq~phurhvwiuhodflrqdgdfrpdtxdqwlgdgh