Buscar

[AOC] Slides v2017-2

Prévia do material em texto

Arquitetura e 
Organização 
de 
Computadores
Coordenadoria de Informática
Bach. em Sistemas de Informação
Prof. Flávio Giraldeli
2017/2
Introdução
 Nesta disciplina estudaremos a natureza e as 
características dos computadores dos dias 
modernos.
 Dificuldades:
 Variedade de produtos (de simples chips a 
supercomputadores);
 Rápido ritmo das mudanças na tecnologia.
 Apesar do variedade e do ritmo da mudança, 
certos conceitos fundamentais se aplicam de 
forma corrente.
2
Organização e Arquitetura 
 Arquitetura são os atributos visíveis ao programador.
 Conjunto de instruções, número de bits usados 
para representação de dados, mecanismos de E/S, 
técnicas de endereçamento.
 Por exemplo, existe uma instrução de 
multiplicação?
 Organização é como os recursos são implementados.
 Sinais de controle, interfaces, tecnologia de 
memória.
 Por exemplo, existe uma unidade de multiplicação 
no hardware ou ela é feita pela adição repetitiva?
3
Organização e Arquitetura 
 Muitos fabricantes oferecem uma família de modelos 
de computador, todos com a mesma arquitetura 
mas com diferenças na organização.
 Por exemplo, toda a família Intel x86 compartilha a 
mesma arquitetura básica. E isso inclui a AMD, que 
possui licenças para produzir CPU’s x86 (mais 
detalhes futuramente)
 Isso gera compatibilidade de código:
 Pelo menos, com a geração anterior.
 A organização é diferente entre diferentes versões.
4
Estrutura e Função
 Computador: Sistema complexo!
 Natureza hierárquica é essencial para o projeto 
e a construção de computadores.
 Estrutura é o modo como os componentes são 
inter-relacionados.
 Função é a operação individual de cada 
componente como parte da estrutura.
 Abordagem top-down.
5
Função
 Todas as funções do computador são:
 Processamento de dados.
 Armazenamento de dados.
 Movimentação de dados.
 Controle.
6
Operações 
possíveis
(a) Mov. de Dados
(b) Armazenamento
(c) Proc. de/para Armazenamento
(d) Proc. de armazenamento para E/S
7
Estrutura
 Representação mais simples possível de um 
computador:
8
Estrutura
 Existem quatro componentes estruturais 
principais:
 Unidade Central de Processamento (CPU);
 Memória Principal;
 Entrada/Saída (E/S);
 Interconexão do Sistema.
 CPU:
 Unidade de controle;
 Unidade aritmética e lógica (ALU);
 Registradores;
 Interconexão da CPU.
9
Estrutura
(níveis)
10
O que estudaremos?
Capítulo a capítulo...
O que estudaremos?
 Bases Numéricas e Sinais Digitais [material à 
parte]
 Evolução e desempenho do computador [cap. 
2]
 Visão de alto nível da função e interconexão do 
computador [cap. 3]
 A memória do computador [caps. 4, 5 e 6]
 Entrada/Saída [cap. 7 + conteúdo exclusivo dos 
slides]
 Aritmética do computador [cap. 9]
 Linguagem de Montagem: Assembly.
 O material desses slides é uma junção do tutorial do 
emu8086 em conjunto com aspectos relevantes dos 
caps. 10 e 11 do livro texto.
12
Tr
a
b
a
lh
o
 2
 
 
 
 
P
ro
v
a
 2
 
 
 
 
 
 
 
 
 
 P
ro
v
a
 1
Bases 
Numéricas e 
Sinais Digitais
O Computador e a Informação
Troca de informações entre os seres humanos e o 
universo a sua volta
Vs.
Troca de informações entre os dispositivos
eletrônicos (câmeras, computadores, etc…)
14
O Computador e a Informação
 Diferença principal: A forma em que a 
informação está representada.
 Informações para o ser humano: analógicas
 Som, imagens, ...
 Informações analógicas podem teoricamente 
assumir qualquer valor numérico real de -∞ a +∞.
 Ou seja, infinitos valores.
 Na verdade, lidamos sempre com valores 
aproximados.
15
O Computador e a Informação
 Computadores não podem lidar com 
informações analógicas!
 Complexidade intratável.
 Pouco confiável.
 Solução? Uma “nova” forma de representar a 
informação, o que implicou diretamente em um 
novo sistema numérico.
 Estamos falando dos sistemas digitais e a 
representação numérica de base 2 (binária).
16
Sinais Digitais e Números Binários
 Um sistema digital é um sistema no qual os sinais 
tem um número finito de valores discretos (bem 
definidos, enumeráveis).
 Exemplo 1: uma balança digital mede o peso 
através de sinais discretos que indicam a massa; 
por outro lado, uma balança analógica mede o 
peso através de um sinal contínuo correspondente 
a posição de um ponteiro sobre uma escala.
 Exemplo 2: Um sintonizador digital de rádio exibe a 
frequência da estação, digamos 100.1 MHz 
(exatamente). Já um sintonizador analógico, 
mostrará uma faixa contínua de frequências e a 
sintonia será, na verdade, algo aproximado.
17
Benefícios dos sistemas digitais
 A representação digital é bem adequada tanto
para processamento numérico como não-
numérico (caracteres, por exemplo) de 
informação.
 O processamento da informação pode usar um 
sistema para propósitos gerais (um computador) 
que seja programado para uma tarefa de 
processamento particular (como o de imagens), 
eliminando a necessidade de haver um sistema
diferente para cada tarefa.
18
Benefícios dos sistemas digitais
 O número finito de valores num sinal digital pode ser
representado por um vetor (conjunto de valores) de 
sinais com apenas dois valores (sinais binários). Por
exemplo, os dez valores de um dígito decimal 
podem ser representados por um vetor de quatro
sinais binários (ou bits), da seguinte maneira:
 Esta representação permite implementações nas
quais todos os sinais são binários; em consequência, 
os dispositivos que processam esses sinais são muito
simples (fundamentalmente, apenas chaves com 
dois estados: aberto e fechado).
dígito 0 1 2 3 4 5 6 7 8 9
vetor 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
19
Benefícios dos sistemas digitais
 Os sinais digitais são bastante insensíveis a 
variações nos valores dos parâmetros dos 
componentes (por exemplo, temperatura de 
operação, ruído), de modo que pequenas 
variações na representação física não mudam o 
valor efetivo.
 Os sistemas digitais numéricos podem se tornar
mais exatos simplesmente aumentando-se o 
número de dígitos usados na sua representação.
20
Bases Numéricas
2 (Binária)
10 (Decimal)
16 (Hexadecimal)
O Sistema Binário
22
Números Binários
 Antes de compreender melhor como funciona a 
representação em base binária (base 2), 
observe como um número qualquer é formado 
na base em que estamos acostumados a lidar, a 
base 10. Tome por exemplo o número decimal 
123. Veja só como o mesmo é formado:
12310 = 1 x 10
2 + 2 x 101 + 3 x 100
base
posição
relativa
23
Números Binários
 Pense agora que ao invés de dispor de 10 
algarismos diferentes, dispomos de apenas dois. 
Vamos chamar esses algarismos de 0 (zero) e 1 
(um). De forma absolutamente análoga, pense 
no número 1111011 expresso na base 2. 
Desmembrando o mesmo temos:
11110112 = 1x2
6 + 1x25 + 1x24 + 1x23 + 0x22 + 1x21 + 1x20 = 12310
24
Números Binários
 E como ficam os números não inteiros (ou seja, 
aqueles com “vírgula”)? A ideia é acima é 
estendida para expoentes negativos na base 10. 
Observe:
456,7810 = 4x10
2 + 5x101 + 6x100 + 7x10-1 + 8x10-2
 De maneira análoga, o raciocínio acima pode ser 
usado em qualquer base, por exemplo, a base 2:
101,1012 = 1x2
2 + 0x21 + 1x20 + 1x2-1 +0x2-2 + 1x2-3 = 5,62510
25
Números Binários
 Fato:
 Na base dez, para se multiplicar um número pela 
base, isto é, por dez, basta deslocar a vírgula uma 
casa para a direita. Na divisão por dez, basta 
deslocar a vírgula para a esquerda.
 O mesmo ocorre com qualquer base, em 
particular com a base dois. Para multiplicar um 
número por dois, basta deslocar a vírgula uma 
casa para a direita. Ao deslocar para a esquerda, 
estamos dividindo por dois.
26
Números Binários
 Não é muito comum descrevermos quantidades 
binárias em bits. Costumamos expressar os 
valores em bytes, que são agrupamentos 
formados por 8 bits. Outros múltiplos também existem e são expressos 
em relação a byte, alguns deles são:
1 Kilobyte (KB) 210 bytes 1.024 bytes
1 Megabyte (MB) 220 bytes 1.048.576 bytes
1 Gigabyte (GB) 230 bytes 1.073.741.824 bytes
1 Terabyte (TB) 240 bytes 1.099.511.627.776 bytes
27
Números Binários
 Importante:
 No caso dos números binários, a faixa de valores 
possível de ser expressa numa dada quantidade de bits 
é relativamente pequena comparada aos números 
decimais.
 Por exemplo, na base dez, dispondo de uma sequência 
formada por oito algarismos, conseguimos representar 
108 valores diferentes, ou seja, de 0 a 99.999.999. Já na 
base binária, com uma sequência de oito dígitos (8 bits), 
conseguimos representar 28 valores diferentes, ou seja, 
256 valores distintos (0 a 255).
 De maneira geral, quanto menos algarismos uma base 
possui (quanto menor a base), menor é o intervalo 
representável para uma mesma quantidade de dígitos.
28
Base Hexadecimal (16)
 Uma vez compreendida a base binária e 
decimal, fica fácil compreender a base 
hexadecimal, ou base 16.
 Essa base possui não apenas 2 ou 10 algarismos, 
mas 16 algarismos diferentes.
 Veja a correspondência entre decimais, binários
e hexadecimais correspondentes:
010 = 00002 = 016 110 = 00012 = 116 210 = 00102 = 216 310 = 00112 = 316
410 = 01002 = 416 510 = 01012 = 516 610 = 01102 = 616 710 = 01112 = 716
810 = 10002 = 816 910 = 10012 = 916 1010 = 10102 = A16 1110 = 10112 = B16
1210 = 11002 = C16 1310 = 11012 = D16 1410 = 11102 = E16 1510 = 11112 = F16
29
Base Hexadecimal (16)
 Você pode estar pensando, por que motivo eu precisaria de 
mais uma base?
 Resposta, com um exemplo:
 Curiosidade:
 Cores são muitas vezes representadas por valores numéricos de 24 bits 
(16.777.216 cores possíveis).
 Imagine, perguntarmos para nosso colega que cor ele usou num 
determinado projeto e o ouvirmos dizer uma sequência de 24 zeros e 
uns!
 Obviamente será muito mais simples dizer uma simples sequência de 6 
algarismos hexadecimais, por exemplo F7FF29 que é um tom de 
amarelo.
 Ou você prefere dizer: 1111 0111 1111 1111 0010 1001 ?
Decimal Binário Hexadecimal
4.285.639.982 1111.1111.0111.0001.1010.1101.0010.1110 FF71AD2E
30
Conversões entre Bases 
Numéricas
Porque nenhuma base é ideal para todas as 
situações!
Decimal  Binário
 Números Inteiros
 Forma 1: Divisões sucessivas por 2 (a base binária).
 As divisões sucessivas acabam quando o quociente 
chega finalmente a zero. O número na forma binária é 
formado pelos restos das divisões, de baixo para cima, 
tal qual indicado pela seta. Assim: 5310 = 1101012
32
Decimal  Binário
 Números Inteiros
 Forma 2: Método Direto.
 Imagine um número binário qualquer, de 6 dígitos. 
Vamos chamá-lo de b5b4b3b2b1b0 onde cada b é um 
dígito, que pode ser 0 ou 1, naturalmente. O valor 
desse número, na base decimal é:
b5b4b3b2b1b0
=
b5 x 2
5 + b4 x 2
4 + b3 x 2
3 + b2 x 2
2 + b1 x 2
1 + b0 x 2
0
=
b5 x 32 + b4 x 16 + b3 x 8 + b2 x 4 + b1 x 2 + b0 x 1
 Que valores cada dígito binário deve assumir para que a 
soma dê, por exemplo, 53? Resposta: 110101 (confira!)
33
Decimal  Binário
 Vamos pensar um pouco mais. Graficamente!
 Múltiplos da base 2 (números muito conhecidos na 
computação):
 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096...
 Dependendo da posição relativa do dígito, ele possui um 
valor, dentre os acima. Qualquer número inteiro pode ser 
representado como uma soma dessas quantidades 
(desde que esteja dentro do intervalo representável, 
claro).
 Intervalo representável, se considerados apenas os 
números não negativos: 0 a 2nbits - 1
34
Decimal  Binário
 Números não inteiros:
 Podemos tratar a parte inteira (já vista) e a parte 
fracionária de maneira independente. Vamos continuar 
com o raciocínio:
...
2-5 = 1/32 = 0,03125
2-4 = 1/16 = 0,0625
2-3 = 1/8 = 0,125
2-2 = 1/4 = 0,25
2-1 = 1/2 = 0,5
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
…
35
Decimal  Binário
 Números não inteiros:
 Assim, tudo o que precisamos fazer é continuar 
combinando os dígitos binários após a vírgula 
(expoentes negativos) de modo que a soma dê o 
valor (exato ou aproximado) desejado.
 Ex:
 0,62510 = 0,1012
 19,62510 = 10011,1012
36
Decimal  Binário
 Números não inteiros:
 E o raciocínio gráfico (reta numérica) pode ser 
estendido para expoentes negativos ]0,1[:
37
Decimal  Binário
 Números não inteiros:
 Mas, existe um método “mecânico” de fazer a 
conversão da parte fracionária, tal qual existe na 
parte inteira (divisões sucessivas por 2)? SIM!
 Exemplo: 0,62510 = 0,?2
 Logo, 0,62510 = 0,1012
Residual x 2 ≥ 1 ?
0,625 1,25 Sim = 1
0,25 0,5 Não = 0
0,5 1,0 Sim = 1
0
38
Decimal  Binário
 Números não inteiros:
 Desafio: Tente!
 0,810 = ?2
 5,810 = ?2
 11,610 = ?2
39
Binário/Decimal  Hexadecimal
 A conversão de binário para hexadecimal é 
bastante simples. Basta agrupar os dígitos em grupos
de 4, a partir da direta e completar o último grupo
com zeros. O ponto, neste caso, é apenas para
melhor visualização. Ex:
 5310 = 0011.01012 = 3516
 1297210 = 0011.0010.1010.11002 = 32AC16
 1223751410 = 1011.1010.1011.1010.1100.10102 = BABACA16
 Acima, a conversão Decimal  Hexadecimal foi feita 
da forma Decimal  Binário  Hexadecimal. No 
entanto, ela pode ser feita diretamente usando 
quaisquer dos dois métodos usados de Binário 
Decimal (Divisões sucessivas por 16 ou de modo 
“Direto”).
40
Binário/Hexadecimal  Decimal
 As conversões de hexadecimal/binário para 
decimal podem ser facilmente executadas a 
partir da própria expressão do número na base 
correspondente, efetuando a soma de produtos, 
conforme extensamente mostrado 
anteriormente.
 Por exemplo:
 1101012 = 1x2
5 + 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 5310
 32AC16 = 3x16
3 + 2x162 + 10x161 + 12x160 = 1297210
41
Lógica Temporizada
Tic, Toc, Tic, Toc, Tic, ...
Lógica Temporizada
 Na comunicação digital, qualquer dado, sob a 
forma de bits, pode ser representado por sinais
elétricos:
 uma tensão positiva alta (“high” - geralmente no 
em torno de 5 volts) significando 1 e…
 uma tensão baixa (“low” - próxima de zero) 
significando 0.
 O transmissor coloca o sinal no barramento, 
espera um tempo (na qual o sinal fica estável), 
para em seguida colocar um novo sinal.
43
Lógica Temporizada
 Fica claro que, quanto menor for esse “tempo 
de espera”, mais bits serão transmitidos por
unidade de tempo (logo, maior a velocidade da 
transmissão).
 Essa base de tempo, é um dos aspectos mais 
importantes do mundo da computação. Ela é 
dada por um sinal de sincronismo, cuja precisão 
é quase perfeita.
 Estamos falando do sinal de clock.
44
Clock
 O pulso de clock nada mais é que uma 
referência de tempo para todas as atividades e 
permite o sincronismo das operações internas.
 O clock é um pulso alternado de sinais de 
tensão, gerado pelos circuitos de relógio 
(composto de um cristal oscilador e circuitos 
auxiliares).
 Cada um destes intervalos regulares de tempo é 
delimitado pelo início da descida do sinal, 
equivalendo um ciclo à excursão do sinal por um 
“low” e um “high” do pulso. 
45
Clock
 O tempo do ciclo equivale ao período da 
oscilação. A física diz que período é o inverso da 
frequência. Ou seja, P = 1 / f. 
 A frequência f do clock é medida em hertz. 
Inversamente, a duração de cada ciclo é 
chamada de período, definido por P=1/f (o 
período é o inverso da frequência).
 Por exemplo, se f = 10 Hz logo P = 1/10 = 0,1 s.
46
Clock
 1 MHz (1 megahertz) = 1.000.000 ciclos/segundo.
 Sendo a frequência de um processador medida 
em megahertz, o período será então medido em 
nanosegundos, como vemos no exemplo 
abaixo:
 f = 10 MHz = 10 x 106 Hz
 P = 10 / 106 = 0,0000001 s (segundo) = 0,0001 ms
(milissegundo) = 0,1 µs (microssegundo) = 100 ns
(nanosegundo)
47
Clock
 Se comparados dois processadores de uma 
mesmaarquitetura, o que tiver maior clock, será 
mais rápido, pois o período em que cada ciclo 
ocorre é menor.
 Por exemplo: A = x Hz | B = 5x Hz
48
Evolução e 
desempenho 
do 
computador
Evolução e desempenho do 
computador [Cap. 2]
 Um breve histórico dos Computadores [2.1]
 Projetando visando o desempenho [2.2]
 Evolução da arquitetura Intel x86 [2.3]
 Avaliação de desempenho [2.5]
 Vamos conversar um pouco: Intel
 Vamos conversar um pouco: AMD
50
Um breve histórico dos 
computadores
 1ª Geração (1946-1957): Válvulas
 ENIAC
 Inicialmente projetado para a Guerra, mas chegou tarde, em 1946.
 Números: Decimal, 18 000 válvulas, 30 ton., 1 500 pés2, 140 kW, 5 000 adições por 
segundo.
 2ª Geração (1958-1964): Transistores
 3ª Geração (1965): Circuitos Integrados
 Integração em pequena escala: Até 100 dispositivos em um chip.
 Integração em média escala: 100-3.000 dispositivos em um chip.
 Gerações Posteriores (1971 - ?)
 1971-1977: Integração em escala grande;
 3.000 – 100.000 dispositivos em um chip
 1978 -1991: Integração em escala muito grande;
 100.000 – 100.000.000 dispositivos em um chip
 1991: Integração em escala ultra grande.
 Mais de 100.000.000 dispositivos em um chip.
51
1ª Geração:
A Máquina de Von Neumann
 Programar o ENIAC era extremamente enfadonho.
 Se o programa pudesse ser representado de uma 
forma adequada (ao invés das chaves que o 
programavam manualmente) tudo seria mais fácil.
 Instruções + Dados seriam armazenados na memória.
 Conceito de programa armazenado.
 ALU operando sobre dados binários.
 Unidade de controle interpretando e executando 
instruções da memória.
 Equipamento de entrada e saída operado por unidade de 
controle.
 Princeton Institute for Advanced Studies: IAS
 Concluído em 1952.
52
Estrutura da máquina de von 
Neumann
53
IAS – detalhes
 Com raras exceções, todos os computadores de hoje 
tem essa mesma estrutura e função geral, e são 
conhecidos como máquinas de von Neumann.
 1000 “palavras” de 40 bits.
 Número binário.
 2 instruções de 20 bits.
 Conjunto de registradores (armazenamento em CPU).
 Registrador de buffer de memória (MBR).
 Registrador de endereço de memória (MAR).
 Registrador de instrução (IR).
 Registrador de buffer de instrução (IBR).
 Contador de programa (PC).
 Acumulador (AC).
 Quociente multiplicador (MQ).
54
IAS – Formato de Memória
55
Estrutura do IAS
detalhe
56
Instruções do IAS
57
Computadores Comerciais
 1947 – Eckert-Mauchly Computer Corporation.
 UNIVAC I (Universal Automatic Computer).
 Birô do Censo dos EUA para cálculos de 1950.
 Tornou-se parte da Sperry-Rand Corporation.
 Final da década de 1950 – UNIVAC II.
 Mais rápido.
 Mais memória.
 IBM
 Equipamento de processamento de cartão perfurado.
 1953: 701
 Primeiro computador de programa armazenado da IBM.
 Cálculos científicos.
 1955: 702
 Aplicações comerciais.
 Levou à série 700/7000.
58
2ª Geração: Transistores
 Substituíram as válvulas.
 Menores.
 Mais baratos.
 Menos dissipação de calor.
 Dispositivo de estado sólido.
 Feito de silício (areia).
 Inventado em 1947 na Bell Labs.
 William Shockley e outros.
 Introdução de ALU’s e Unidades de Controle 
complexas.
 Linguagem de programação de alto nível.
59
3ª Geração: Circuitos Integrados
 Transistor isolado = componente discreto.
 Computador era construído usando componentes 
discretos.
 Processo dispendioso e complicado, especialmente 
porque a complexidade cresceu muito rapidamente 
(milhares de transistores).
 Surge então a microeletrônica.
60
Microeletrônica
 Literalmente – “pequena eletrônica”.
 Um computador é composto de portas (AND, 
OR, NOT, ...), células de memória e 
interconexões.
61
Microeletrônica
 Estas podem ser fabricadas em um 
semicondutor.
 Por exemplo, wafer de silício.
62
Intel: The Making of a Chip with 
22nm/3D Transistors 
63
[VÍDEO] Fonte: www.youtube.com/watch?v=d9SWNLZvA8g
http://www.youtube.com/watch?v=d9SWNLZvA8g
Wafer de 
Silício
64
Zoom Into a Microchip...
65
[VÍDEO] Fonte: www.youtube.com/watch?v=Knd-U-avG0c
https://www.youtube.com/watch?v=Knd-U-avG0c
Lei de Moore
 Maior densidade de componentes no chip.
 Gordon Moore – cofundador da Intel.
 Número de transistores em um chip dobrará a cada ano.
 Desde 1970, isso diminuiu um pouco.
 Número de transistores dobra a cada 18 meses.
 Consequências:
 Custo de um chip permaneceu quase inalterado.
 Maior densidade de empacotamento significa caminhos elétricos 
mais curtos, gerando maior desempenho.
 Menor tamanho oferece maior flexibilidade.
 Redução nos requisitos de potência e resfriamento.
 Menos interconexões aumenta a confiabilidade.
66
Le
i d
e
 M
o
o
re
 n
a
 p
rá
ti
c
a
67
68
Lei de Moore - Exemplos recentes
 Apple A8 (iPhone 6)
 2 bilhões de transistores de 20 nm
 Área do chip = 89 mm2
 2 núcleos operando a 1,4 GHz
 Apple A8X (iPad Air 2)
 3 bilhões de transistores de 20 nm
 3 núcleos operando a 1,5 GHz
 GPU “comparável” a um PS3
“The fast and fluid performance of iPad Air 2 begins with its A8X chip. With 64-bit desktop-
class architecture and an extraordinary 3 billion transistors, the A8X chip delivers speed and 
graphics that rival many personal computers.” (by Apple)
2010 2011 2012 2012 2013 2014
69
70
Desempenho dos chips série A da Apple (no Geekbench 4). O A10X é um rumor...
Gerações posteriores
 Difícil caracterização.
 Houve importantes resultados dos estudos 
iniciados desde a década de 70.
 Destacam-se:
 Memória Semicondutora.
 Capacidade dobra aproximadamente a cada ano.
 Gerações:
 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G, 16Gbits 
por chip.
 Microprocessador.
 Com diversos componentes integrados
71
Projetando visando ao 
desempenho
 Fatores mais fortes para se alcançar o máximo 
de desempenho:
 Velocidade do microprocessador
 Balanço do desempenho
 Melhorias na organização e na arquitetura do chip.
72
Fator 1: Velocidade do 
microprocessador
 Princípio básico: Manter o processador ocupado 
a maior parte do tempo.
 Técnicas:
 Pipelining: Conceito de “linha de montagem” no 
processamento das instruções
 Previsão de desvio: Tentar antecipar as próximas 
instruções.
 Análise do fluxo de dados: reordenação de 
instruções visando a otimização.
 Execução especulativa: baseado nas técnicas 
acima, executar antecipadamente instruções 
potencialmente necessárias.
73
Fator 2: Balanço do desempenho
 Necessidade de procurar o equilíbrio do desempenho
 Ajustes na organização/arquitetura para compensar a 
diferença entre as capacidades dos diversos componentes 
(barramentos, memórias, etc.)
 Lugar crítico (gargalo): Interface processador-barramento-
memória.
 Técnicas:
 Barramento de dados mais largo;
 Melhoria da interface da DRAM;
 Redução da frequência de acesso a memória usando 
caches;
 Aumento da largura de banda de interconexão CPU-
DRAM.
 Aumentando-se o número de bits e/ou
 Aumentando-se a frequência do barramento/memórias.
74
Diferença de desempenho entre lógica e memória
75
Dispositivos de E/S
 Periféricos com demandas intensas de E/S.
 Grandes demandas de vazão de dados.
 Processadores podem tratar disso.
 Problema de movimentar dados.
 Soluções:
 Caching.
 Buffering.
 Barramentos de interconexão de maior velocidade.
 Estruturas de barramentos mais elaboradas.
 Configurações de processador múltiplo.
76
A chave é o balanço
 Componentes do processador.
 Memória principal.
 Dispositivos de E/S.
 Estrutura de interconexão.
77
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Técnicas para aumentar a velocidade do 
processador:
 Aumentar velocidade de hardware do processador.
 Deve-se fundamentalmente ao encolhimento do 
tamanho das portas lógicas no chip.
 Mais portas, reunidas mais de perto,aumentando a taxa de 
clock.
 Redução no tempo de propagação dos sinais.
 Aumentar tamanho e velocidade das caches.
 Dedicando parte do chip do processador .
 Tempos de acesso à cache caem significativamente.
 Mudar organização e arquitetura do processador.
 Aumento da velocidade de execução efetiva (IPC –
Instructions per Clock).
 Paralelismo.
78
Fator 3: Melhorias na organização 
e na arquitetura do chip
79
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Problemas com velocidade do clock e densidade da 
lógica:
 Potência
 Densidade de potência aumenta com densidade da lógica e 
velocidade do clock.
 Dissipação de calor.
 Atraso de RC
 Velocidade em que os elétrons fluem pela resistência e 
capacitância dos fios de metal que os conecta.
 Aumentos de atraso à medida que o produto RC aumenta.
 Interconexões de fio mais finas, aumentando a resistência.
 Fios mais próximos, aumentando a capacitância.
 Latência da memória
 Velocidades de memória ficam atrás das velocidades de 
processador.
80
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Solução:
 Mais ênfase em abordagens de organização e 
arquitetura.
O que vem sido feito neste sentido?
 Aumento da capacidade do cache;
 Lógica de execução mais complexa;
 Múltiplos cores (núcleos);
81
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Aumento da capacidade do cache
 Normalmente, dois ou três níveis de cache entre 
processador e memória principal.
 Densidade de chip aumentada.
 Mais memória cache no chip.
 Acesso mais rápido à cache.
 Chip Pentium dedicou cerca de 10% da área do chip 
à cache.
 Pentium 4 dedica cerca de 50%.
82
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Lógica de execução mais complexa
 Permite execução de instruções em paralelo.
 Pipeline funciona como linha de montagem.
 Diferentes estágios de execução de diferentes instruções 
ao mesmo tempo ao longo do pipeline.
 Superescalar permite múltiplos pipelines dentro de um 
único processador.
 Instruções que não dependem uma da outra podem ser 
executadas em paralelo.
83
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Fato: Retornos cada vez menores...
 Complexa organização interna dos 
processadores.
 Pode obter muito paralelismo.
 Aumentos mais significativos provavelmente serão 
relativamente modestos.
 Benefícios da cache estão chegando ao limite.
 Aumentar taxa de clock causa o problema da 
dissipação de potência.
 Alguns limites físicos fundamentais estão sendo atingidos.
84
Fator 3: Melhorias na organização 
e na arquitetura do chip
 Tendência: Múltiplos cores.
 Múltiplos processadores em único chip.
 Grande cache compartilhada.
 Dentro de um processador, aumento no 
desempenho proporcional à raiz quadrada do 
aumento na complexidade.
 Se o software puder usar múltiplos processadores, 
dobrar o número de processadores quase dobra o 
desempenho.
 Assim, use dois processadores mais simples no chip ao 
invés de um processador mais complexo.
 Com dois processadores, caches maiores são 
justificadas.
 Consumo de potência da lógica de memória menor 
que lógica do processamento.
85
Processadores: Tendências
86
Multicore, MICs e GPGPUs
 Nova abordagem visando aumento da performance 
geral: Múltiplos processadores num mesmo chip 
(Multicore).
 Em computação de altíssimo desempenho, cada vez 
mais usam-se múltiplos processadores mais simples 
porém em maior número.
 Uma GPU usa essencialmente esse conceito. Milhares 
de processadores simples operando em paralelo.
 MIC: Many Integrated Core. Hoje com mais de 50 
núcleos por chip.
 GPGPU: General-Purpose computing on GPUs.
 Usar a GPU para outros fins além de computação 
gráfica. Destaque para as APUs da AMD.
87
Sistemas Embarcados e a ARM
 ARM: é uma arquitetura de microprocessadores 
baseada em RISC e amplamente usada em sistemas 
embarcados.
 Sistema Embarcado (Embedded System): Uma 
combinação de hardware e software, e 
possivelmente uma mecânica adicional ou outras 
partes, projetado para executar uma função 
dedicada. Em muitos casos, sistemas embarcados 
são parte de um sistema maior ou produto, como no 
caso de um sistema antitravamento das rodas em 
um carro (ABS).
88
Hardware Software
Propósito 
Específico
Sistema 
Embarcado
Possível organização de um 
Sistema Embarcado
89
Arquitetura ARM
90
Arquitetura
Num de 
Bits
Cores projetados pela ARM
Cores projetados por outras
empresas
Cortex profile
ARMv1 32/26 ARM1
ARMv2 32/26 ARM2, ARM3 Amber, STORM Open Soft Core
ARMv3 32 ARM6, ARM7
ARMv4 32 ARM8 StrongARM, FA526
ARMv4T 32 ARM7TDMI, ARM9TDMI
ARMv5 32 ARM7EJ, ARM9E, ARM10E
XScale, FA626TE, Feroceon, 
PJ1/Mohawk
ARMv6 32 ARM11
ARMv6-M 32 
ARM Cortex-M0, ARM Cortex-M0+, ARM 
Cortex-M1
Microcontroller
ARMv7-M 32 ARM Cortex-M3 Microcontroller 
ARMv7E-M 32 ARM Cortex-M4 Microcontroller 
ARMv7-R 32 
ARM Cortex-R4, ARM Cortex-R5, ARM 
Cortex-R7
Real-time 
ARMv7-A 32 
ARM Cortex-A5, ARM Cortex-A7, ARM 
Cortex-A8, ARM Cortex-A9, ARM 
Cortex-A12, ARM Cortex-A15, ARM 
Cortex-A17
Krait, Scorpion, PJ4/Sheeva, Apple 
A6/A6X (Swift)
Application
ARMv8-A 64/32 ARM Cortex-A53, ARM Cortex-A57
X-Gene, Nvidia Project Denver, 
Apple A7 (Cyclone), AMD K12, 
Apple A8
Application
ARMv8-R 32 Ainda não anunciada Real-time 
Avaliação de desempenho
 Principais parâmetros:
 Desempenho, custo, tamanho, segurança, 
confiabilidade, consumo de energia.
 Comparações de desempenho são difíceis.
 Desempenho depende de vários fatores:
 Velocidade bruta do processador;
 Conjunto de instruções;
 Escolha da linguagem de programação;
 Habilidade da programação.
 Há medidas tradicionais de desempenho, que 
serão analisadas.
91
Clock do Sistema
 Velocidade do clock do sistema:
 Em Hz ou múltiplos
 Velocidade de clock, ciclo de clock, tempo de ciclo.
 Sinais na CPU levam tempo para se estabilizarem em 1 ou 0.
 Sinais podem mudar em diferentes velocidades.
 Operações precisam ser sincronizadas.
92
Clock do Sistema
 Execução de instrução em etapas discretas.
 Busca, decodificação, load e store, aritmética ou 
lógica.
 Geralmente requer vários ciclos de clock por 
instrução.
 Pipelining gera execução simultânea de 
instruções.
 Assim, velocidade de clock não é tudo.
93
Taxa de execução de instrução
𝜏 =
1
𝑓
, onde 𝜏 = tempo, 𝑓 = frequência
𝐼𝑐 = contagem de instruções (nº de inst. por período de tempo)
𝐶𝑃𝐼 =
σ𝑖=1
𝑛 (𝐶𝑃𝐼𝑖 × 𝐼𝑖)
𝐼𝑐
= média de ciclos por instrução
𝑇 = 𝐼𝑐 × 𝐶𝑃𝐼 × 𝜏 = 𝐼𝑐 × [𝑝 + 𝑚 × 𝑘 ] × 𝜏
𝑝 = número de ciclos para dec. e exec. a instrução
𝑚 = número de referências de memória necessárias
𝑘 = razão entre tempo de ciclo de memória e tempo de ciclo de processador
94
Taxa de execução de instrução
Taxa 𝑀𝐼𝑃𝑆 =
𝐼𝑐
𝑇 × 106
=
𝑓
𝐶𝑃𝐼 × 106
Taxa 𝑀𝐹𝐿𝑂𝑃𝑆 =
num. de inst. de PF exec. em um programa
Tempo de execução × 106
𝐶𝑃𝐼 = 0,6 + 2 × 0,18 + 4 × 0,12 + 8 × 0,1 = 2,24
𝑀𝐼𝑃𝑆 =
400 × 106
2,24 × 106
≈ 178
Exemplo:
95
Lei de Amdahl
 Gene Amdahl [AMDA67].
 Speedup em potencial do programa usando 
múltiplos processadores.
 Concluiu que:
 Código precisa ser paralelizável.
 Speedup é limitado, gerando retornos 
decrescentes para uso de mais processadores.
 Dependente da tarefa:
 Servidores ganham mantendo múltiplas conexões 
em múltiplos processadores.
 Bancos de dados podem ser divididos em tarefas 
paralelas.
96
Fórmula da Lei de Amdahl
 Para programa rodando em único processador:
 Fração f do código paralelizável sem overhead no escalonamento.
 Fração (1-f) de código inerentemente serial.
 T é o tempo de execução total para o programa no único 
processador.
 N é o número de processadores que exploram totalmente as partes 
paralelas do código.
 Conclusões:
 f pequeno, processadores paralelos têm pouco efeito.
 N ->∞, speedup limitado por 1/(1– f).
 Retornos decrescentes para o uso de mais processadores.
97
Lei de Amdahl para Multiprocessadores
98
Principais pontos estudados
 Máquina de Von Neumann: Mesma estrutura básica até os dias de hoje. Muito 
se modernizou, mas a base permanece.
 Padrão de bits para números e instruções (opcode + endereço)
 Evolução dos computadores:
 Aumento na velocidade do processador;
 Diminuição no tamanho do componente;
 Aumento no tamanho da memória;
 Aumento na capacidade e velocidade de E/S.
 Aumento na velocidade da CPU devido:
 ao encolhimento do tamanho dos componentes (melhoria das técnicas de 
fabricação) = permite que eles trabalhem a frequências mais altas sem 
sobreaquecimento;
 melhorias na organização do computador...
 Técnicas de pipeline;
 Execução paralela;
 Execução especulativa.
 Questão crítica:
 Equilibrar o desempenho dos diversos elementos do computador.
 Lei de Amdahl: N processadores não significam “N vezes” mais desempenho.
99
Visão de alto 
nível da função e 
interconexão do 
computador
Introdução
 Visão de alto nível de um computador
 CPU
 Memória
 Componentes de E/S
 Descrição de um sistema de computação:
 Comportamento externo de cada componente (sinais 
de dados e controle);
 Estrutura de interconexão e os controles exigidos para 
gerenciar o uso da estrutura de interconexão.
 Conhecimento da estrutura e função de alto nível:
 Identificação dos gargalos do sistema;
 Caminhos alternativos;
 Magnitude de falhas;
 Facilidade de melhorias de desempenho.
101
Componentes do computador
Arquitetura de Von Newmann
 Dados e instruções armazenados numa única 
memória de leitura/escrita.
 Memória endereçável por local, sem 
considerar seu conteúdo.
 Execução sequencial (a menos que 
modificado explicitamente)
102
A Programação do Computador
 Possibilidade 1:
 Interconexão entre componentes lógicos básicos para 
armazenar dados binários e realizar operações 
lógicas/aritméticas.
 Cada cálculo em particular exige uma configuração de 
componentes lógicos específicos.
 Tais componentes interligados seriam o “programa” na 
forma de hardware.
 Programa “hardwired”
 Inflexíveis
 Hardware de uso geral pode fazer diferentes tarefas, 
dados sinais de controle corretos. 
 Ao invés de religar o hardware, forneça um conjunto de 
sinais de controle.
103
A Programação do Computador
 Possibilidade 2:
 Unidades que podem ter seu comportamento alterado 
dependendo dos sinais de controle aplicados.
 Ao invés de religar o hardware para cada novo programa, 
o programador simplesmente fornece novos sinais de 
controle.
 O que é um programa?
 Uma sequência de etapas.
 Para cada etapa, é feita uma operação aritmética ou 
lógica.
 Para cada operação, é necessário um conjunto diferente 
de sinais de controle.
 Software: Sequência de códigos ou instruções que, ao 
serem interpretadas, geram sinais de controle para os 
componentes.
104
Abordagens de hardware e software
105
Componentes...
 A Unidade de Controle e a Unidade Lógica e 
Aritmética constituem a Unidade Central de 
Processamento.
 Dados e instruções precisam entrar no sistema, e 
resultados saem dele.
 Entrada/saída.
 É necessário um armazenamento temporário de 
código e resultados.
 Memória principal.
106
Componentes do computador: 
visão de alto nível
107
Função do Computador
 Função básica
 Execução de um programa (instruções armazenadas na 
memória)
 Existem diversos elementos envolvidos na execução de um 
programa.
 Processo básico:
 Busca de instruções (ciclo de busca)
 Execução da instrução (ciclo de execução)
108
Busca e execução de instruções
 Ciclo de Busca
 Contador de Programa (PC) mantém endereço da 
próxima instrução a buscar.
 Processador busca instrução do local de memória 
apontado pelo PC.
 Incrementar PC:
 A menos que seja informado de outra forma.
 Instrução carregada no Registrador de Instrução (IR).
 Processador interpreta instrução e realiza ações 
exigidas.
109
Busca e execução de instruções
 Ciclo de Execução (Categorias)
 Processador-memória:
 Transferência de dados entre CPU e memória principal.
 E/S do processador:
 Transferência de dados entre CPU e módulo de E/S.
 Processamento de dados:
 Alguma operação aritmética ou lógica sobre dados.
 Controle:
 Alteração da sequência de operações.
 Ex: salto.
 Combinação dos itens anteriores.
110
Exemplo
(Características da máquina hipotética)
111
(AC Memória)
(Memória  AC)
(AC  AC + Memória)
Exemplo (Execução de um programa)
No exemplo (somar 3 + 2):
- 3 ciclos de instrução
- cada um com um ciclo 
de busca/execução
112
Diagrama de estado do ciclo de 
instrução
113
Interrupções
 Mecanismo pelo qual outros módulos (p.e. E/S) 
podem interromper a sequência de 
processamento normal.
114
Ciclo de interrupção
 Adicionado ao ciclo de instrução.
 Processador verifica interrupção.
 Indicado por um sinal de interrupção.
 Se não houver interrupção, busca próxima instrução.
 Se houver interrupção pendente:
 Suspende execução do programa atual.
 Salva contexto.
 Define PC para endereço inicial da rotina de 
tratamento de interrupção.
 Interrupção de processo.
 Restaura contexto e continua programa interrompido.
115
Transferência de controle via 
interrupções
116
Ciclo de instrução com 
interrupções
117
Interrupções
 Adicionam um overhead, pois instruções extras 
precisam ser executadas (no tratador de 
interrupções).
 Contudo, devido à quantidade de tempo 
relativamente grande que seria desperdiçada 
pela simples espera por uma operação de E/S, o 
processador pode ser empregado de modo 
muito mais eficiente com o uso de interrupções.
 Exemplo em 2 casos:
 Espera curta pela E/S.
 Espera longa pela E/S.
118
Sincronização do programa –
espera curta pela E/S
119
Sincronização do programa –
espera longa pela E/S
120
Ciclo de instrução (com interrupções)
Diagrama de estado
121
Múltiplas interrupções
 A discussão até aqui ficou apenas na ocorrência de 
uma única interrupção.
 Suponha, porém, que ocorram múltiplas interrupções.
 Ex: Um programa pode estar recebendo dados de 
uma linha de comunicações e imprimindo resultados.
 A impressora gerará uma interrupção toda vez que 
completar uma operação de impressão;
 O controlador de linha de comunicação gerará uma 
interrupção toda vez que uma unidade de dados 
chegar (um caractere ou um bloco);
 Fato: É possível que uma interrupção de comunicações 
ocorra enquanto uma interrupção de impressora estiver 
sendo processada!
122
Múltiplas interrupções
Técnicas
 Desativar interrupções:
 Processador ignorará outras interrupções enquanto 
processa uma interrupção.
 Interrupções permanecem pendentes e são verificadas 
após primeira interrupção ter sido processada.
 Interrupções tratadas em sequência enquanto ocorrem.
 Definir prioridades:
 Interrupções de baixa prioridade podem ser 
interrompidas por interrupções de prioridade mais alta.
 Quando interrupção de maior prioridade tiver sido 
processada, processador retorna à interrupção anterior.
123
Múltiplas 
interrupções
Técnicas
124
Sequência de tempo de múltiplas 
interrupções
125
Estrutura de Interconexão
 Computador = 3 componentes/módulos básicos:
 Processador;
 Memória;
 E/S.
 Tais módulos precisam se interconectar e 
comunicar-se entre si.
 A coleção de caminhos conectando os diversos 
módulos é chamada de estrutura de 
interconexão.
126
Módulos do computador
 Conexão de Memória
 Recebe e envia dados.
 Recebe endereços (de locais).
 Recebe sinais de controle:
 Leitura.
 Escrita.
 Temporização.
 Conexão de E/S
 Semelhante à memória do ponto de vista do 
computador.
 Saída:
 Recebe dados do computador.
 Envia dados a periféricos.
 Entrada:
 Recebe dados de periféricos.
 Envia dados ao computador.
 Recebe sinaisde controle do computador.
 Envia sinais de controle aos periféricos.
 P.e., girar disco.
 Recebe endereços do computador.
 P.e., número de porta para identificar periférico.
 Envia sinais de interrupção (controle).
 Conexão da CPU
 Lê instruções e dados.
 Escreve dados (após processamento).
 Envia sinais de controle a outras unidades.
 Recebe (e atua sobre) interrupções.
127
Interconexão de Barramento
 O que é um barramento?
 Um caminho de comunicação conectando dois ou 
mais dispositivos.
 Normalmente, broadcast.
 Frequentemente agrupado.
 Uma série de canais em um barramento.
 Por exemplo, barramento de dados de 32 bits são 32 
canais de bits separados.
 Linhas de potência podem não ser mostradas.
 Um barramento que conecta os principais 
componentes do computador (CPU, Memória e 
E/S) é chamado de barramento do sistema.
128
Estrutura de barramento
 Um barramento do sistema consiste, 
normalmente, em cerca de 50 a centenas de 
linhas separadas, cada uma delas com um 
significado em particular.
 Embora existam muitos projetos de barramento 
diferentes, em qualquer barramento as linhas 
podem ser classificadas em três grupos 
funcionais:
 Linhas de dados (barramento de dados);
 Linhas de endereço (barramento de endereço);
 Linhas de controle (barramento de controle).
129
Barramento de dados
 Transporta dados.
 Lembre-se de que não existe diferença entre 
“dados” e “instruções” neste nível.
 Largura é um determinante fundamental do 
desempenho.
 8, 16, 32, 64 bits.
130
Barramento de endereço
 Identifica origem ou destino dos dados.
 Ex: CPU precisa ler uma instrução (dados) de 
determinado local na memória.
 Largura do barramento determina capacidade 
máxima da memória do sistema.
 Ex: 8080 tem barramento de endereço de 16 bits 
gerando espaço de endereços de 64k.
 O barramento de endereços dos sistemas de 32 
bits permite endereçar, no máximo, 4 GB de RAM.
131
Barramento de controle
 Informação de controle e temporização:
 Sinal de leitura/escrita de memória.
 Sinal de leitura/escrita de E/S.
 ACK de transferência.
 Solicitação de barramento.
 Concessão de barramento.
 Requisição de interrupção.
 ACK de interrupção.
 Clock.
 Reset.
132
Estrutura de barramento
 Se um módulo deseja enviar dados para outro, 
ele precisa fazer duas coisas:
 (1) obter o uso do barramento e
 (2) transferir dados por meio do barramento.
 Se um módulo quiser requisitar dados de outro 
módulo, ele precisa:
 (1) obter o uso do barramento e
 (2) transferir uma requisição ao outro módulo pelas 
linhas de controle e endereço apropriadas.
 (3) Esperar que esse segundo módulo envie os 
dados.
133
Esquema de interconexão de 
barramento
134
Como os barramentos se 
parecem?
 Linhas paralelas em placas 
de circuito.
 Cabos de fita.
 Conectores em tira nas 
placas mãe.
 Ex: PCI.
 Conjuntos de fios.
135
136
Foto em “close” de múltiplos barramento de uma placa-mãe
Problemas do barramento único
 Muitos dispositivos em um barramento levam a:
 Atrasos de propagação
 Longos caminhos de dados significa que a 
coordenação do uso do barramento pode afetar 
contrariamente o desempenho.
 Se a demanda de transferência de dados agregada 
se aproxima da capacidade do barramento.
 A maioria dos sistemas utiliza múltiplos 
barramentos para contornar esses problemas.
137
Arquitetura de barramento tradicional
138
Arquitetura de alto desempenho
139
Elementos do projeto de 
barramento
140
Tipos de barramento
 Dedicado:
 Linhas separadas para dados e endereço.
 Multiplexado.
 Linhas compartilhadas.
 Linha de controle válidas de endereço ou dados.
 Vantagem
 Menos linhas
 Desvantagens:
 Controle mais complexo.
 Desempenho máximo.
141
Método de arbitração
 Arbitração pode ser:
 Centralizada
 Existe um árbitro de barramento, responsável por 
alocar tempo no barramento.
 Módulo separado ou parte do processador.
 Distribuída
 Não existe controlador central.
 Cada módulo contém lógica de controle de acesso e 
os módulos atuam juntos para compartilhar o 
barramento.
 Finalidade: designar um dispositivo como mestre 
(inicia a transferência) e outro como escravo 
(receptor).
142
Temporização
 Coordenação de eventos no barramento.
 Síncrona:
 Eventos determinados por sinais de clock.
 Barramento de controle inclui linha de clock.
 Normalmente, sincronismo na borda inicial (rising-edge
clock).
 Geralmente, um único ciclo para um evento.
 Assíncrona:
 A ocorrência de um evento em um barramento segue e 
depende da ocorrência de um evento anterior.
 É flexível porém mais complexa de implementar e testar 
(em relação ao método síncrono)
 Pode-se misturar dispositivos lentos e rápidos, 
compartilhando o barramento.
143
Outros elementos de projeto
 Largura do barramento
 Impacto sobre o desempenho do sistema (dados) 
ou sobre a capacidade máxima de memória 
endereçável (endereço).
 Quanto mais trilhas, mais caro.
 Tipo de transferência de dados
 Escrita (mestre para escravo).
 Leitura (escravo para mestre).
 Multiplexado (endereço e dados).
 Leitura-modificação-escrita.
 Leitura-após-escrita.
 Transferência de dados em bloco.
144
Interconexão Ponto-a-Ponto
 A técnica de barramento compartilhado foi a 
abordagem padrão durante décadas. Porém, hoje 
em dia, a maioria dos sistemas progressivamente 
estão adotando a chamada interconexão ponto-a-
ponto (point-to-point interconnection).
 Razão principal: restrições elétricas encontradas com 
o aumento da frequência em barramentos síncronos 
muito largos (problemas de sincronização e 
arbitração).
 Vantagens: baixa latência, maior taxa de dados 
(velocidade) e melhor escalabilidade.
 Exemplos: Intel QPI, AMD HyperTransport, PCI Express, 
Fibre Channel point-to-point (FC-P2P), etc.
145
Exemplo
Intel’s QuickPath Interconnect (QPI)
 QPI Physical Layer
 Cada porta QPI é 
capaz de transmitir 
20 bits em paralelo 
em cada direção.
 Quando opera a 3.2 
GHz, o data rate é 
de 25,6 GB/s em 
cada par.
 O QPI é “inspirado” 
na usada pela AMD 
no HyperTransport.
146
Principais pontos estudados
 Modelo de Von Neumann
 Função básica do computador: Executar programas.
 O ciclo de instrução: busca + execução [+ interrupção]
 Diagrama de estado do ciclo de instrução.
 Os principais componentes do sistema de computação 
(CPU, RAM, E/S) precisam ser interconectados (dados e 
controle).
 Tipos de barramentos: dados, endereços e controle.
 Barramentos compartilhados
 Hierarquia de barramentos.
 Projeto de barramentos
 Arbitração;
 Temporização;
 Largura.
 Interconexão Ponto-a-Ponto
147
Questões de Revisão para Prova 1
1) Defina os seguintes conceitos envolvidos na disciplina de AOC: Arquitetura, 
Organização, Estrutura e Função.
2) Quais os postulados mais importantes propostos por Von Neumann no modelo do 
computador que, salvo poucas modificações, é a base de quase todos os 
computadores modernos? Desenhe a máquina e cite os postulados.
3) Apesar de ser, necessariamente, uma verdade nos tempos modernos, quais as ideias 
por detrás da Lei de Moore? Quais as consequências?
4) Quais os 3 pilares de um projeto de computador visando o desempenho? Cite-os e 
explique brevemente cada um deles.
5) O disse Gene Amdahl a respeito do speedup alcançado ao rodar um programa em 
múltiplos processadores (mostre a lei)? Quais as consequências práticas dessa lei no 
contexto da programação paralela?
6) O que são Interrupções e quais as 4 principais classes?
7) Desenhe e explique o Ciclo de Instrução completo, contendo os 3 principais ciclos 
pelos quais as instruções passam para serem executadas.
8) Quais as 3 principais linhas envolvidas na Estrutura de Barramento dos 
computadores? Cite e explique brevemente cada uma delas.
9) Quais os principais Elementos do Projeto de Barramento? Explique.
148
A Memóriado 
Computador
Visão geral
Cache
Interna/Externa
A memória do computador
 Visão geral do sistema de memória do 
computador [4.1]
 Memória cache [4.2]
 Memória interna/principal [5.1]
 Memória externa/secundária
 Disco magnético [6.1]
 RAID [6.2]
 Memória Flash e SSD’s [não presente no livro]
 Memória óptica [6.3]
 Fita magnética [6.4]
150
Visão geral do sistema de 
memória do computador
 Características dos sistemas de memória:
 Localização.
 Capacidade.
 Unidade de transferência.
 Método de acesso.
 Desempenho.
 Tipo físico.
 Características físicas.
 Organização.
151
Localização
 Memória presente na CPU
 Registradores
 Cache (hoje, praticamente todos os processadores 
incluem a cache no próprio núcleo).
 Memória Interna/Principal
 RAM
 Memória Externa/Secundária
 Armazenamento periférico (acessado via E/S)
 Unidade Magnética (HD e Fita)
 Unidades Ópticas (CD, DVD, Blu-ray)
 Unidades Semicondutora (Memória Flash)
152
Capacidade
 Normalmente expressa em bytes (e seus 
múltiplos)
 Lembrando que alguns dispositivos podem ter os 
múltiplos do byte arredondados para baixo:
 1 KB
 1024 bytes (Real) | 1000 bytes (HDs, p.e.)
 1 GB
 1.073.741.824 bytes (Real) | 1.000.000.000 (HDs, p.e.)
 Novas nomenclaturas: Controversias!
 KiB, MiB, GiB, ... = base 2
 KB, MB, GB, ... = base 10
153
Capacidade
ATENÇÃO: Observe o quando se perde com essa mudança 
na unidade.
154
Unidade de transferência
 Memória Interna
 Número de linhas elétricas do módulo de memória
 Pode ser igual ao tamanho da palavra, porém 
frequentemente é maior (para compensar o fato da 
memória ser mais lenta que a CPU)
 Ex: PCs modernos = 64 bits
 Porém há dual channel: 2 x 64 bits = 128 bits por transferência.
 Conceitos
 Palavra: Unidade “natural” de organização da 
memória.
 Unidades endereçáveis: por palavra ou por byte. De 
qualquer forma, sempre haverá 2nbits endereços.
 Unidade de transferência: número de bits lidos/escritos 
na memória de uma só vez (memória principal). Não é, 
necessariamente, igual a uma palavra ou unidade 
endereçável (ex: transf. em blocos, nos HD’s)
155
Método de acesso
 Sequencial
 Organização em unidades chamadas registros.
 Começa no início e lê em ordem.
 Tempo de acesso depende da localização dos dados e 
local anterior.
 Por exemplo, fita.
 Direto
 Blocos individuais possuem endereço exclusivo.
 Acesso saltando para vizinhança, mais busca 
sequencial.
 Tempo de acesso depende da localização e local 
anterior.
 Por exemplo, disco.
156
Método de acesso
 Aleatório
 Endereços individuais identificam localizações com 
exatidão.
 Tempo de acesso é independente da localização ou 
acesso anterior.
 Por exemplo, RAM.
 Associativo
 Dados são localizados por uma comparação com 
conteúdo de uma parte do armazenamento (ao invés 
do seu endereço).
 Tempo de acesso é independente do local ou acesso 
anterior.
 Por exemplo, cache.
157
Desempenho
 Tempo de acesso (latência):
 Tempo entre apresentar o endereço e obter os 
dados válidos.
 Tempo de ciclo de memória:
 Tempo que pode ser exigido para a memória se 
“recuperar” antes do próximo acesso.
 Tempo de ciclo é acesso + recuperação.
 Taxa de transferência:
 Taxa em que os dados podem ser movidos.
158
Tecnologias
 Semicondutora
 RAM, Cache, Flash, ...
 Superfície magnética
 HD’s e fitas
 Ótica
 CD, DVD, Blu-ray, etc.
 Magneto-optica
159
Outras
 Características físicas
 Deterioração.
 Volatilidade.
 Apagável.
 Consumo de energia.
 Organização
 Arranjo físico dos bits em palavras.
 Nem sempre óbvia.
 Por exemplo, intercalada.
160
A hierarquia de memória
 Os pilares das restrições de projeto de memórias
 Quanto? (capacidade)
 Com que velocidade?
 Com que custo?
 Relações básicas:
 Tempo de acesso mais rápido  Maior custo por bit.
 Maior capacidade Menor custo por bit.
 Maior capacidade  Tempo de acesso mais lento.
 O dilema, é, portanto, claro: Não dá para 
atender a todos os requisitos ao mesmo tempo. É 
preciso encontrar um equilíbrio satisfatório.
161
A hierarquia de memória
 Ao descer na 
hierarquia:
 Menor custo/bit
 Aumento da 
capacidade
 Aumento do 
tempo de acesso.
 Frequência de 
acesso é menor.
162
Lista de hierarquia
 Registradores.
 Cache L1.
 Cache L2.
 Cache L3.
 Memória principal (RAM).
 Cache de disco.
 Flash (Cartões, Pendrives e SSDs)
 HD (Hard Disk).
 Óptica (CD/DVD/Blu-ray).
 Fita.
163
+
C
a
p
a
c
id
a
d
e
-C
u
st
o
-D
e
se
m
p
e
n
h
o
Voláteis
Não voláteis
A hierarquia de memória
 É possível montar um computador que usa apenas 
RAM estática (conforme veremos adiante).
 Este seria muito rápido.
 Este não precisaria de cache.
 Isso sairia muito caro.
 Solução? Hierarquia de memória.
 Localidade de referência
 Durante o curso da execução de um programa, as 
referências à memória tendem a se agrupar.
 Por exemplo, loops.
 As cache são pequenas e rápidas, e se baseiam nesse 
princípio
164
Memória cache
Pequenas... porém velozes!
Princípios da memória cache
 O uso da memória cache visa obter velocidade de 
memória próxima das memórias mais rápidas que 
existem e, ao mesmo tempo, disponibilizar uma 
memória de grande capacidade ao preço de 
memórias semicondutoras mais baratas.
 Pequena quantidade de memória rápida.
 Fica entre a memória principal normal e a CPU.
 Pode estar localizada no chip da CPU ou módulo.
 Seleciona os dados/instruções a serem armazenados 
usando os princípios:
 Localidade de Referência Espacial
 Localidade de Referência Temporal
166
Cache e memória principal
167
Estrutura de cache/memória 
principal
• Memória Principal: até 2n palavras endereçáveis (cada 
endereço com n bits). Cada bloco de K palavras. Logo, há 
M = 2n/K blocos na MP.
• Cache: m blocos (linhas). Linha = K palavras + tag + bits 
controle.
• Consideração: m << M
• Blocos da MP são mapeados em alguma Linha da cache 
usando algum algoritmo de mapeamento.
168
Operação da cache
Visão geral
 CPU requisita conteúdo do local de memória.
 Verifica se os dados estão em cache.
 Se estiverem, apanha da cache (rápido).
 Se não, lê bloco solicitado da memória principal 
para a cache e paralelamente entrega à CPU.
 Cache inclui tags para identificar qual bloco da 
memória principal está em cada slot da cache.
169
Operação de leitura de cache
Fluxograma
170
Memória interna/principal 
(RAM)
Nem tão rápidas, mas essenciais!
Memória Interna
 Em termos práticos, a memória interna é 
principalmente a RAM.
 Esta é a memória “de trabalho” do computador, 
onde os programas e dados são armazenados 
enquanto são processados.
 É impossível executar um programa “direto do 
HD”. Quando se dá duplo-clique para se 
executar um programa, é preciso saber que, 
primariamente, ele é copiado para a RAM. 
Somente após isso, suas instruções começam a 
ser executadas.
 A RAM é feita com semicondutores.
172
Memória principal semicondutora
 (MUITO) Antigamente a memória 
principal empregava uma matriz 
de loops ferromagnéticos em 
forma de anel, chamados de 
núcleos (cores, em inglês).
Magnetic-core Memory (Um plano de memória de 
32 x 32 núcleos armazenando 1024 bits de dados
173
 Em seguida passaram para chips semicondutores.
 Examinaremos:
 Organização;
 DRAM e SRAM;
 Tipos de ROM;
 Memória intercalada;
Memória principal semicondutora
Organização
 Elemento principal: célula de memória.
 Princípios básicos são praticamente idênticos em 
qualquer tecnologia:
 Dois estados: 1 e 0;
 Podem ser escritas (ao menos uma vez);
 Podem ser lidas.
174
Memória principal semicondutora
DRAM e SRAM
175
Memória principal semicondutora
DRAM e SRAM
 RAM
 Random Access Memory. Nome incorreto, pois 
toda memória de semicondutor tem acesso 
aleatório.
 Leitura/escrita.
 Volátil. Armazenamento temporário.
 Estática ou dinâmica.
176
Memória principal semicondutora
DRAM e SRAM
 RAM Dinâmica
 Bits armazenados com carga em capacitores.
 As cargas vazam.
 Precisa de renovação mesmo se alimentada (refresh).
 Construção mais simples.
 Menor por bit.
 Mais barata.
 Mais lenta.
 Memória principal.
 Dispositivo basicamente analógico.
 Nível de carga determina o valor.
177
Memória principal semicondutora
DRAM e SRAM
 Operação da DRAM
 Linha de endereço ativa quando bit é lido ou 
escrito.
 Chave de transistor fechada (corrente flui).
 Escrita:
 Voltagem na linha de bit.
 Alta para 1 baixa para 0.
 Depois sinaliza linha de endereço.
 Transfere carga ao capacitor.
 Leitura:
 Linha de endereço selecionada.
 Transistor liga.
 Carga do capacitor alimentada por linha de 
bit para amplificador comparar.
 Compara com valor de referência para 
determinar 0 ou 1.
 Carga do capacitor deve ser restaurada.
178
Memória principal semicondutora
DRAM e SRAM
 RAM Estática
 Bits armazenados como chaves ligado/desligado.
 Sem carga para vazar.
 Não precisa de refresh quando alimentada.
 Construção mais complexa.
 Maior por bit.
 Mais cara.
 Mais rápida.
 Cache.
 Digital.
 Usa flip-flops.
179
Memória principal semicondutora
DRAM e SRAM
 Operação da SRAM
 Arranjo de transistores gera estado 
lógico estável.
 Estado 0:
 C1 baixo, C2 alto.
 T1 T4 ligados, T2 T3 desligados.
 Estado 1:
 C1 alta, C2 baixa.
 T1 T4 desligados, T2 T3 ligados.
 Linha de endereço controla dois 
transistores, T5 T6.
 Escrita – aplica valor a B e 
complemento a B.
 Leitura – valor está na linha B.
180
Memória principal semicondutora
DRAM e SRAM
 SRAM versus DRAM
 Ambas voláteis.
 É preciso energia para preservar os dados.
 Célula dinâmica:
 Mais simples de construir, menor.
 Mais densa.
 Mais barata.
 Precisa de refresh.
 Maiores unidades de memória.
 Célula estática:
 Mais rápida.
 Cache.
181
Memória principal semicondutora
ROM
 ROM: Read Only Memory
 Armazenamento permanente.
 Não volátil.
 Microprogramação (veja mais adiante).
 Sub-rotinas de biblioteca.
 Programas do sistema (BIOS).
 Tabelas de função.
 Gravada durante a fabricação:
 Muito cara para pequenas quantidades.
182
Memória principal semicondutora
ROM
 Programável (uma vez):
 PROM.
 Precisa de equipamento especial para programar.
 Lida “na maioria das vezes” (“principalmente de 
leitura”):
 Erasable Programmable (EPROM).
 Apagada por UV.
 Electrically Erasable (EEPROM):
 Leva muito mais tempo para escrever que para ler.
 Memória flash:
 Apaga memória inteira eletricamente.
183
Memória principal semicondutora
Memória intercalada
 Coleção de chips de DRAM.
 Agrupada em banco de memória.
 Bancos atendem a solicitações de leitura ou escrita 
independentemente.
 K bancos podem atender a k solicitações 
simultaneamente.
 Exemplo comercial: Dual-Channel (2 canais).
184
Memória Principal (RAM)
Evolução...
 As memórias DRAM usadas como Memória Principal 
nos computadores do tipo PC passaram por diversas 
tecnologias e formatos de módulo até chegarem aos 
módulos DIMM DDR3 4 DDR4 que temos hoje:
 Regulares: XT e 286
 FPM: 386, 486
 EDO: Primeira geração do Pentium
 SDR-SDRAM: Pentium I, II, III e alguns Pentium IV. Havia as 
denominações PC-66, PC-100 e PC-133 indicando a 
frequência (MHz) de operação.
 DDR-SDRAM (2002): Pentium IV
 DDR2-SDRAM (2004): Core e Core 2
 DDR3-SDRAM (2007): Core i de 1ª a 5ª geração (Haswell)
 DDR4-SDRAM (2013): Core i de 6ª geração (Skylake)
185
186
Resumo das Memórias DDR
187
Padrão
Clock do 
Barramento
(MHz)
Clock
Interno
(MHz)
Taxa de 
Transferência
(MT/s)
Tensão
(V)
Nº de pinos
DIMM
SO-
DIMM
Micro
DIMM
DDR 100–200  100–200 200–400  2.5/2.6 184 200 172
DDR2 200–533.33
100–
266.67
400–1066.67 1.8 240 200 214
DDR3
400–
1066.67
100–
266.67
800–2133.33 1.5 240 204 214
DDR4
1066.67–
2133.33
133.33–
266.67
2133.33–
4266.67
1.05/1.2 288 256 —
188
Memórias semicondutoras
Como são fabricadas?
189
Link: https://www.youtube.com/watch?v=kvf29R7nXlM
https://www.youtube.com/watch?v=kvf29R7nXlM
Memória 
externa/secundária
Relativamente lentas, porém... grande capacidade 
e não voláteis (não precisam de energia elétrica 
para manter os dados)!
Memória Externa
 Disco magnético:
 HDs
 RAID
 Memória Flash
 Cartões de Memória
 SSD
 Óptica:
 CD-ROM.
 CD-Recordable (CD-R).
 CD-R/W.
 DVD.
 Fita magnética.
191
Disco Magnético
 Substrato de disco coberto com material 
magnetizável (óxido de ferro... ferrugem)
 Substrato era alumínio.
 Agora é vidro.
 Maior uniformidade da superfície.
 Aumenta confiabilidade.
 Redução nos defeitos da superfície.
 Erros reduzidos de leitura/gravação.
 Alturas de voo mais baixas (veja adiante).
 Melhor rigidez.
 Maior resistência a choques e dados.
192
Disco Magnético
Sim... Eu disse vidro!
193
Mecanismos de leitura e 
gravação
 Gravação e leitura por bobina condutora, chamada cabeça.
 Pode ser única cabeça de leitura/gravação ou separadas.
 Durante leitura/gravação, cabeça fica parada, placas giram.
 Gravação:
 Corrente pela bobina produz campo magnético.
 Pulsos enviados à cabeça.
 Padrão magnético gravado na superfície abaixo dela.
 Leitura:
 Cabeça de leitura separada e próxima da cabeça de gravação.
 Sensor magnetorresistivo (MR) parcialmente blindado.
 Resistência elétrica depende da direção do campo magnético.
 Operação em alta frequência.
 Densidade de armazenamento e velocidade mais altas.
194
Cabeça de gravação 
indutora/leitura magnetorresistiva
195
Método de Gravação: 
Longitudinal x Perpendicular
196
Organização e formatação de 
dados
 Anéis ou trilhas 
concêntricas.
 Lacunas entre as trilhas.
 Reduza a lacuna para 
aumentar a capacidade.
 Mesmo número de bits por 
trilha (densidade de 
compactação variável).
 Velocidade angular 
constante.
 Trilhas divididas em setores.
 Tamanho de bloco mínimo 
é de um setor (geralmente 
521 bytes).
 Pode haver mais de um 
setor por bloco.
197
Velocidade do disco
 Bit próximo do centro do disco girando passa por ponto 
fixo mais lento que o bit na borda do disco.
 Para compensar, deve ser aumentado o espaçamento 
entre bits de diferentes trilhas.
 Velocidade angular constante (CAV).
 Setores em forma de fatia de torta e trilhas concêntricas.
 Trilhas e setores individuais endereçáveis.
 Mova cabeça para determinada trilha e espere por 
determinado setor.
 Perda de espaço nas trilhas externas.
 Menor densidade de dados.
 Capacidade limitada pelas trilhas internas
 Melhoria: Múltiplas zonas para aumentar capacidade.
 Cada zona tem número fixo de bits por trilha.
 Circuito mais complexo.
198
Velocidade do disco
199
Diagrama de métodos de layout 
de disco
200
Localizando setores
 Deve ser capaz de identificar início da trilha e setor.
 Formatar disco:
 Informações adicionais não disponíveis ao usuário.
 Marca trilhas e setores.
201
Características físicas
 Cabeça fixa (rara) ou móvel (uma cabeça de 
leitura e escrita por lado montada sobre um 
braço móvel)
 Removível ou fixo.
 Única ou dupla (mais comum) face.
 Prato único ou múltiplos.
 Mecanismo da cabeça:
 Contato (disquete).
 Lacuna fixa.
 Lacuna aerodinâmica (Winchester, ou Disco 
Rígido).
202
Múltiplas placas
 Uma cabeça por lado.
 Cabeças são unidas e 
alinhadas.
 Trilhas alinhadas em cada 
placa formam cilindros.
 Dados são espalhados pelo 
cilindro:
 Reduz movimento da 
cabeça.
 Aumenta velocidade (taxa 
de transferência).
203
Cabeças de Leitura/Gravação
204
Trilhas e cilindros
205
Parâmetros típicos dos HD’s
atualmente
 Tamanho dos pratos: 1.8” (ultraportáteis, como o 
iPod classic), 2.5” (portáteis, como notebooks) e 
3.5” (desktop e NAS)
 Velocidadedos discos: 5400/5900 RPM, 7200 
RPM, 10000/15000 RPM.
 Tamanhos máximos: 320 GB (1.8” em 2009), 4 TB 
(2.5” em 2015) e 10 TB (3.5” em 2015)
 Taxa de transferência interna: por volta de 120 
MB/s nos bons modelos de 7200 RPM.
206
Tamanhos...
8", 5.25", 3.5", 2.5", 1.8", e 1"
207
Como o HD funciona?
208
[VÍDEO] Fonte: https://www.youtube.com/watch?v=wteUW2sL7bc
https://www.youtube.com/watch?v=wteUW2sL7bc
Inside a Hard Disk Drive
209
[VÍDEO] Fonte: www.youtube.com/watch?v=9eMWG3fwiEU
http://www.youtube.com/watch?v=9eMWG3fwiEU
Parâmetros típicos de HD’s
210
Desempenho
 Tempo de busca:
 Movendo cabeça para trilha correta.
 Latência (rotacional):
 Esperando dados passarem sob a cabeça.
 Tempo de acesso= Busca + Latência.
 Taxa de transferência.
211
Tempo de transferência
𝑇 =
𝑏
𝑟𝑁
onde:
𝑇 = 𝑡𝑒𝑚𝑝𝑜 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑓.
𝑏 = 𝑛𝑢𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑎 𝑠𝑒𝑟𝑒𝑚 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑡𝑖𝑑𝑜𝑠
𝑁 = 𝑛ú𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑒𝑚 𝑢𝑚𝑎 𝑡𝑟𝑖𝑙ℎ𝑎
𝑟 = 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑟𝑜𝑡𝑎çã𝑜 (𝑅𝑃𝑀)
Total:
𝑇𝑎 = 𝑇𝑠 +
1
2
𝑟 +
𝑏
𝑟𝑁
212
RAID
 Redundant Array of Independent Disks. 
 Redundant Array of Inexpensive Disks.
 6 níveis de uso comum (Há outros não “oficiais”).
 Não é uma hierarquia.
 Conjunto dos principais discos vistos como uma 
única unidade lógica pelo S/O.
 Dados distribuídos pelas unidades físicas.
 Pode usar capacidade redundante.
 Pode usar capacidade redundante para 
armazenar informação de paridade.
 IMPORTANTE: RAID não é backup!
213
RAID 0
Block-level striping without parity or mirroring.
 Não redundante.
 Dados espalhados por todos os 
discos.
 Mapeamento Round Robin.
 Maior velocidade.
 Múltiplas solicitações de dados 
provavelmente não no mesmo 
disco.
 Discos buscam em paralelo.
 Um conjunto de dados 
provavelmente será espalhado 
por múltiplos discos.
214
RAID 1
Mirroring without parity or striping.
 Discos espelhados.
 Dados espalhados pelos 
discos.
 2 cópias de cada stripe em 
discos separados.
 Leitura de qualquer um deles.
 Gravação em ambos.
 Recuperação é simples:
 Troca entre disco com defeito e 
espelho.
 Sem tempo de paralisação.
 Caro.
215
RAID 2
Bit-level striping with dedicated Hamming-code parity.
 Discos são sincronizados.
 Stripes muito pequenos.
 Normalmente, único byte/palavra.
 Correção de erro calculada pelos bits correspondentes nos discos.
 Múltiplos discos de paridade armazenam correção de erro via código de 
Hamming em posições correspondentes.
 Muita redundância.
 Caro.
 Não usado.
216
RAID 3
Byte-level striping with dedicated parity.
 Semelhante a RAID 2.
 Somente um disco redundante, não importa o tamanho do array.
 Bit de paridade simples para cada conjunto de bits correspondentes.
 Dados sobre unidade com defeito podem ser reconstruídos a partir 
de dados sobreviventes e informação de paridade.
 Taxas de transferência muito altas.
217
RAID 4
Block-level striping with dedicated parity.
 Cada disco opera independentemente.
 Bom para taxa de solicitação de E/S alta.
 Grandes stripes.
 Paridade bit a bit calculada por stripes em cada disco.
 Paridade armazenada no disco de paridade.
218
RAID 5
Block-level striping with distributed parity.
 Como RAID 4.
 Paridade espalhada por todos os discos.
 Alocação round-robin para stripe de paridade.
 Evita gargalo do RAID 4 no disco de paridade.
 Normalmente usado em servidores de rede.
219
RAID 6
Block-level striping with double distributed parity.
 Dois cálculos de paridade.
 Armazenado em blocos separados em discos diferentes.
 Requisito do usuário de N discos precisa de N+2.
 Alta disponibilidade de dados.
 Três discos precisam falhar para haver perda de dados.
 Penalidade de gravação significativa.
220
RAID: Mais informações
Nível Mín. # de 
Drives
Eficiência
Espacial
Tolerância 
a falhas
Benefício
Leitura
Benefício 
Escrita
0 2 1 0 nX nX
1 2 1/n n-1 nX 1X
2 3 1 − 1/n ⋅
log2(n-1)
1 ? ?
3 3 1 − 1/n 1 (n−1)X (n−1)X
4 3 1 − 1/n 1 (n−1)X (n−1)X
5 3 1 − 1/n 1 (n−1)X (n−1)X
6 4 1 − 2/n 2 (n−2)X (n−2)X
221
RAID: Mais informações
222
RAID: Comparações
223
RAID: Comparações
224
RAID: Comparações
225
Memória Flash
 Diferentemente da memória RAM e também das SRAM, a 
memória Flash permite armazenar dados por longos
períodos, sem precisar de alimentação elétrica.
 É muito usada em dispositivos portáteis, como pendrives, 
smartphones, tablets, etc, e em SSD’s (Solid State Drive).
 Tipos:
 NOR: Mais antigos e fora de uso.
 NAND: Mais baratas e mais rápidas. Em uso atualmente.
 Do ponto de vista do sistema, um cartão de memória Flash 
NAND está mais para um HD do que para uma unidade 
de memória.
 Você pode usá-lo para guardar dados, mas na hora que o 
sistema precisa rodar um programa, precisa primeiro 
copiá-lo para a memória RAM, da mesma forma que faria 
ao usar um HD.
226
Memória Flash
 O grande boom da memória Flash aconteceu entre 
2004 e 2005, quando uma combinação de dois 
fatores fez com que os preços por MB caíssem 
rapidamente:
 Aumento brutal na produção e concorrência;
 Introdução da tecnologia MLC (Mult-Level Cell), onde
cada célula passa a armazenar dois ou mais bits em vez
de apenas um.
 Isso é possível graças ao uso de tensões intermediárias. 
Com 4 tensões diferentes, a célula pode armazenar 2 
bits, com 8 pode armazenar 3 bits e assim por diante.
 Os chips "tradicionais", que armazenam um único bit por
célula passaram a ser chamados de "SLC" (Single-Level 
Cell).
 São usados em SSDs de alto desempenho e por serem
mais duráveis são mais comuns em servidores.
227
Memória Flash: Evolução...
228
Die-Stacking
229
Memória Flash: Funcionamento
 Funcionamento básico de um transistor
 Explora a principal propriedade dos 
semicondutores, onde uma pequena tensão (Volts) 
aplicada ao gate pode ser usada para controlar 
um grande fluxo de corrente entre source e drain.
230
Memória Flash: Funcionamento
 Funcionamento básico de uma célula de memória flash
 Semelhante a um transistor, porém existe um segundo gate chamado de 
floating gate (pois é isolado por uma fina camada de óxido).
 Inicialmente, o FG não interfere na operação do transistor. Neste caso, a 
célula está armazenando o binário 1.
 Aplicando-se uma alta tensão através da camada de óxido força os 
elétrons a se moverem para o FG onde ficam presos, mesmo se a fonte de 
tensão for desativada. Neste caso, a célula está armazenando o binário 0.
 O estado da célula pode ser lido por um circuito externo que verifica se o 
transistor está funcionando ou não.
 Aplicando-se uma tensão inversa no gate, os elétrons podem ser expulsos, 
voltando ao estado original.
231
Cartões de memória flash
 Formatos:
 CompactFlash [CF]
 SmartMedia [SM]
 xD (Olympus e Fujifilm)
 MMC
 Memory Stick (Sony)
 Memory Stick Duo, Pro, Pro 
Duo, Micro e Pro-HG
 SD (Secure Digital), miniSD e 
microSD.
 SD: até 2 GB
 SDHC: até 32 GB
 SDXC: até 2 TB
232
Pendrive
233
SSD (Solid State Drive)
 Os SSDs ou "Solid State Drive" (discos de estado 
sólido) são possivelmente a maior revolução 
dentro do ramo de armazenamento secundário, 
já que eles utilizam um princípio de 
armazenamento completamente diferente dos 
HD’s, com os discos magnéticos dando lugar aos 
chips de memória Flash.
 A grande maioria dos SSDs domésticos utilizam
módulos de memória Flash MLC ou TLC, assim
como nos cartões e pendrives. Entretanto, eles
oferecem um diferencial importante, que é o uso
de múltiplos canais de acesso (uma espécie de 
“RAID” com múltiplos chips de memória).
234
SSD (Solid State Drive)
 Vantagens em relação aos HD’s:
 Alto desempenho em operações de E/S por segundo 
(IOPS), especialmente em acesso aleatório.
 Durabilidade (resistência a choques físicos e vibrações).
 Longevidade (não são susceptíveis a desgaste 
mecânico).
 Baixo consumo elétrico.
 Frios e silenciosos.
 Temposde acesso e latência baixos (mais de 10x mais 
rápido que um HD).
 Desvantagens:
 Maior custo por MB.
 “Baixa” capacidade de armazenamento (se 
comparado a um HD).
235
SSD’s
236
SSD’s: Aspectos práticos (1)
 Primeiro: O desempenho de um SSD tende a 
diminuir progressivamente a medida que ele é 
usado.
 Por quê?
 Para entender a razão, é necessário saber que os 
arquivos são armazenados como um conjunto de 
páginas (tipicamente de 4 KB cada) pelo sistema 
operacional. Normalmente, essas páginas não são 
contíguas (ou seja, estão fisicamente próximas).
 Já a memória flash é acessada em blocos com, 
tipicamente, 512 KB (128 páginas por bloco).
237
SSD’s: Aspectos práticos (1)
 Agora, considere que deve ser escrita uma página 
numa memória flash:
1. O bloco inteiro deve ser lido para a memória RAM e 
então a página dentro do bloco é atualizada/escrita.
2. Antes do bloco poder ser escrito de volta na memória 
flash, o bloco inteiro da flash precisa ser apagado –
não é possível apagar apenas uma página.
3. Após isso, o bloco presente na RAM é escrito de volta 
na memória flash.
 Quando o drive está relativamente vazio e um novo 
arquivo é criado, as páginas do arquivo são escritas 
no drive de modo contínuo, assim, poucos blocos são 
afetados.
238
SSD’s: Aspectos práticos (1)
 Entretanto, com o passar do tempo, o drive 
começa a ficar fragmentado (páginas dispersadas 
em diversos blocos). Assim, cada operação de 
escrita de um arquivo passa a afetar múltiplos 
blocos, tornando o processo bem mais lento.
 A principal técnica usada pelos fabricantes (em 
conjunto com o SO) para minimizar esse problema 
é o comando TRIM, que permite ao SO informar ao 
SSD quais blocos de dados não estão mais em uso 
e assim ele pode ser “limpo” internamente pelo 
drive (normalmente em momento de ociosidade).
239
SSD’s: Aspectos práticos (2)
 Segundo: As células flash se tornam inutilizáveis depois de 
um determinado número de escritas. Ou seja, elas perdem 
a sua capacidade de serem gravadas e manterem os 
dados.
 Resistência a escrita (quant. de apagamentos por bloco):
 SLC NAND = 100.000
 MLC NAND
 5.000 a 10.000 para aplicações de média capacidade
 1.000 a 3.000 para aplicações de alta capacidade.
 TLC NAND = 1.000
 No entanto, com o uso de tecnologias de wear-leveling
(que forçam o uso uniforme do drive) e um sofisticado 
sistema de detecção/correção de erros, permitem que o 
drive dure por vários anos (bem mais que a média de vida 
de um HD).
240
SSD’s
241
mSATA (esq.), M.2 (meio), e 2.5" (dir.)
Todos usam Memória Flash 3D V-NAND com 32 
camadas e 3 bits por célula (TLC)
Samsung 850 EVO
Capacidades: 120, 250, 500 e 1000 
GB
Desempenho: 550 MB/s (Leitura) e 
310 MB/s (Escrita)
Durabilidade:
70 TB de escrita para os modelos 
120 e 250 GB. Ou seja, 39 GB por 
dia durante 5 anos.
150 TB para os modelos de 500 e 
1000 TB. Ou seja, 84 GB por dia 
durante 5 anos.
Memória óptica
242
Memória óptica
CD-ROM
 Originalmente para áudio.
 650 MB gerando mais de 74 minutos de áudio.
 Posteriormente, 700 MB (80 minutos).
 Policarbonato com cobertura altamente 
reflexiva, normalmente alumínio.
 Dados armazenados como sulcos.
 Lidos pela reflexão do laser.
 Densidade de empacotamento constante.
 Velocidade linear constante.
243
Operação do CD
244
Velocidade do CD-ROM
 Áudio tem velocidade única:
 Velocidade linear constante.
 1,2 m/s.
 Trilha (espiral) tem 5,27 km de extensão.
 Oferece 4391 segundos= 73,2 minutos.
 Outras velocidades indicadas por múltiplos.
 1x = 150 KB/s
 2x = 300 KB/s
 56x = 8400 KB/s 
 Valor indicado é o máximo que a unidade pode 
conseguir.
245
Formato do CD-ROM
Modo 0 =campo de dados em branco.
Modo 1 =2048 bytes de dados + correção de erro.
Modo 2 =2336 bytes de dados.
246
Acesso aleatório no CD-ROM
 Difícil.
 Move cabeça para posição aproximada.
 Define velocidade correta.
 Lê endereço.
 Ajusta para local solicitado.
 (Boceja!)
247
CD-ROM – prós e contras
 Grande capacidade (?).
 Fácil de produzir em massa.
 Removível.
 Robusto.
 Caro para pequenas quantidades.
 Lento.
 Somente de leitura.
248
Outro armazenamento óptico
 CD-Recordable (CD-R):
 WORM (Write Once Read Many).
 Agora com preço acessível.
 Compatível com unidades de CD-ROM.
 CD-RW:
 Apagável.
 Ficando mais barato.
 Em grande parte compatível com unidade de CD-
ROM.
 Mudança de fase:
 Material tem duas refletividades diferentes em 
diferentes estados de fase.
249
DVD
 Digital Video Disk:
 Usado para indicar um player para filmes.
 Só toca discos de vídeo.
 Digital Versatile Disk:
 Usado para indicar uma unidade de computador.
 Lerá discos de computador e tocará discos de vídeo.
 Multicamadas.
 Capacidade “muito alta” (4,7 G por camada).
 Filme de tamanho completo em único disco.
 Usando compactação MPEG.
 Finalmente padronizado.
 Filmes transportam codificação regional.
 Players só tocam filmes da região correta.
250
DVD – gravável
 Muito trabalho com padrões.
 Unidades de DVD de primeira geração podem 
não ler discos DVD-W de primeira geração.
 Unidades de DVD de primeira geração podem 
não ler discos CD-RW.
 Hoje:
 Versões oficiais DVD-Forum
 DVD-R
 DVD-RW
 DVD+RW Alliance
 DVD+R
 DVD+RW
251
Discos ópticos de alta definição
 Projetados para vídeos de alta definição.
 Capacidade muito mais alta que DVD.
 Laser com comprimento de onda mais curto.
 Faixa do azul violeta.
 Sulcos menores.
 HD-DVD (Mórreu!):
 15 GB de único lado, única camada.
 Blu-ray:
 Camada de dados mais próxima do laser.
 Foco mais estreito, menos distorção, sulcos menores.
 25 GB em única camada ou 50 GB em dupla camada 
(DL – Double Layer)
 Disponível para apenas leitura (BD-ROM), gravável uma 
vez (BR-R) e regravável (BR-RE).
252
Características da memória óptica
253
Fita magnética
 Acesso serial.
 Lenta.
 Muito barata.
 Backup e arquivamento.
 Unidades de fita Linear Tape Open (LTO).
 Desenvolvida no final da década de 1990.
 Alternativa de fonte aberto para os diversos 
sistemas de fita patenteados.
254
Unidades de fita Linear Tape 
Open (LTO)
255
LTO-1 LTO-2 LTO-3 LTO-4 LTO-5 LTO-6 LTO-7 LTO-8 LTO-9 LTO-10
Ano de lançamento 2000 2003 2005 2007 2010 2012 2015 TBA TBA TBA
Capacidade Nativa 100 GB 200 GB 400 GB 800 GB 1.5 TB 2.5 TB 6.0 TB 12.8 TB 26 TB 48 TB
Velocidade máxima sem
compressão (MB/s)
20 40 80 120 140 160 300 427 708 1100
Aceita compressão de 
dados?
Sim, "2:1" Sim, "2.5:1"
Planejado (futuro), 
"2.5:1"
Aceita WORM (Write 
once read many)?
Não Yes Planejado (futuro)
Aceita criptografia? Não Yes Planejado (futuro)
Aceita particionamento? Não (1) Sim (2) Sim (4) Planejado (futuro)
Principais pontos estudados
 Método de acesso
 A memória do computador é organizada em 
hierarquia.
 Registradores
 Cache(s)
 Memória principal (RAM)
 Memória externa/secundária
 HD, Discos Opticos, Fita, etc.
 Hierarquia
 Nível alto = alto custo, capacidade menor, alta 
velocidade (menor tempo de acesso).
 Nível baixo = baixo custo, capacidade maior, baixa 
velocidade (maior tempo de acesso).
256
Principais pontos estudados
 Memória cache: Tentativa de manter os dados mais 
acessados pelo processador. Possui um ou mais 
níveis.
 Tipos de RAM
 Dinâmica (DRAM) = Memória Principal
 Estática (SRAM) = Memória Cache
 Discos magnéticos (HD’s): Componentes mais 
importantes da memória externa.
 RAID: Técnica com múltiplos discos a fim de atingir 
maior confiabilidade e/ou velocidade.
 Memória Flash e SSD’s
 Armazenamento Óptico
 CD, DVD, Blu-ray, etc...
257
Entrada/Saída
Um overview das diversas 
tecnologias de E/S 
modernas
Introdução
 O conjunto de módulos de E/S é o terceiro elemento 
chave de um sistema de computação, depois do 
processador e memória.
 Cada módulo se conecta ao barramento do sistema 
ou comutador

Continue navegando