Buscar

[OAC] Slides - Parte 1 2012-1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 301 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 301 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 301 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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 
 
2012/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. 
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? 
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. 
 Toda a família Intel x86 compartilha a mesma 
arquitetura básica. 
 A família IBM System/370 compartilha a mesma 
arquitetura básica. 
 Isso gera compatibilidade de código: 
 Pelo menos, com a geração anterior. 
 A organização é diferente entre diferentes versões. 
 
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. 
Função 
 Todas as funções do computador são: 
 Processamento de dados. 
 Armazenamento de dados. 
 Movimentação de dados. 
 Controle. 
Operações 
possíveis 
(a) Mov. de Dados 
(b) Armazenamento 
(c) Proc. de/para Armazenamento 
(d) Proc. de armazenamento para E/S 
Estrutura 
 Representação mais simples possível de um 
computador: 
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. 
Estrutura 
(níveis) 
O que estudaremos? 
Capítulo a capítulo... 
O que estudaremos? 
 Bases Numéricas e Sinais Digitais [mat. a 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] 
 Aritmética do computador [cap. 9] 
 Conjuntos de instruções 
 Características e funções [cap. 10] 
 Modos e formatos de endereçamento [cap. 11] 
 Linguagem de Montagem: Assembly [mat. a parte] 
 
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…) 
 
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. 
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). 
 
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. 
 
 
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. 
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 
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. 
Bases Numéricas 
2 (Binária) 
10 (Decimal) 
16 (Hexadecimal) 
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 
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 
 
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 
 
 
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. 
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 
 
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. 
 
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 
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 
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 
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!) 
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 
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 
… 
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 
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[: 
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 
Decimal  Binário 
 Números não inteiros: 
 Desafio: Tente! 
 0,810 = ?2 
 5,810 = ?2 
 11,610 = ?2 
 
 
 
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”). 
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 
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. 
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. 
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. 
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. 
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) 
 
Clock 
 Se comparadosdois processadores de uma 
mesma arquitetura, 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 
Para casa 
 Conversão de Sinais: Analógico Para Digital 
 Computador PC: Componentes Básicos 
 Exercícios. 
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] 
Principais pontos 
 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. 
 
 
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. 
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. 
 
Estrutura da máquina de von 
Neumann 
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). 
IAS – Formato de Memória 
Estrutura do IAS 
detalhe 
Instruções do IAS 
 
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. 
 
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. 
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. 
Microeletrônica 
 Literalmente – “pequena eletrônica”. 
 Um computador é composto de portas (AND, 
OR, NOT, ...), células de memória e 
interconexões. 
Microeletrônica 
 Estas podem ser fabricadas em um 
semicondutor. 
 Por exemplo, wafer de silício. 
 
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. 
Crescimento na contagem de 
transistores da CPU 
Gerações posteriores 
 Difícil caracterização. 
 Houve importantes resultados dos estudos 
iniciados desde a década de 70. 
 Destacam-se: 
 Memória Semicondutora. 
 Microprocessador. 
Memória Semicondutora 
 Tecnologia de circuito integrado aplicada às memórias. 
 Anteriormente: memórias construídas com anéis 
ferromagnéticos. Era destrutiva. 
 Fairchild (1970): Primeira memória semicondutora. 
 Tamanho de um único core = 256 bits 
 Ou seja, 1 bit de armazenamento do core magnético. 
 Leitura não destrutiva. 
 Muito mais rápida que o core. 
 Capacidade dobra aproximadamente a cada ano. 
 Gerações: 
 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G, 
16Gbits por chip. 
 
Microprocessadores 
 1971: Intel 4004 
 Primeiro microprocessador. 
 Todos os componentes da CPU em um único chip. 
 4 bits. 
 Acompanhado em 1972 pelo 8008. 
 8 bits. 
 Ambos projetados para aplicações específicas. 
 1974 : Intel 8080. 
 8 bits. 
 Primeiro microprocessador de uso geral da Intel. 
 Dobro da complexidade do 4004. 
Evolução dos proc. Intel 
 
Evolução dos proc. Intel 
 
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. 
Fator 1: Velocidade do 
microprocessador 
 Princípio básico: Manter o processador ocupado 
a maior parte do tempo. 
 Técnicas: 
 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. 
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. 
Diferença de desempenho entre lógica e memória 
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. 
A chave é o balanço Componentes do processador. 
 Memória principal. 
 Dispositivos de E/S. 
 Estrutura de interconexão. 
 
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. 
 Aumenta velocidade de execução efetiva. 
 Paralelismo. 
 
 
Fator 3: Melhorias na organização 
e na arquitetura do chip 
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. 
 
 
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); 
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%. 
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. 
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. 
 
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. 
Evolução da arquitetura Intel x86 
 8080 
 Primeiro microprocessador de uso geral. 
 Caminho de dados de 8 bits. 
 Usado no primeiro computador pessoal – Altair. 
 8086 – 5MHz – 29 000 transistores. 
 Muito mais poderoso. 
 16 bits. 
 Cache de instruções, pré-busca poucas instruções. 
 8088 (barramento externo de 8 bits) usado no primeiro IBM PC. 
 80286 
 16 MB de memória endereçável. 
 A partir de 1MB. 
 80386 
 32 bits. 
 Suporte para multitarefa. 
 80486 
 Cache sofisticada e poderosa, pipeline sofisticado de instrução. 
 Coprocessador matemático embutido. 
Evolução da arquitetura Intel x86 
 Pentium 
 Superescalar. 
 Múltiplas instruções executadas em paralelo. 
 Pentium Pro 
 Organização superescalar aumentada. 
 Renomeação de registrador agressiva. 
 Previsão de desvio. 
 Análise de fluxo de dados. 
 Execução especulativa. 
 Pentium II 
 Tecnologia MMX. 
 Processamento de gráficos, vídeo e áudio. 
 Pentium III 
 Instruções adicionais de ponto flutuante para gráficos 3D. 
Evolução da arquitetura Intel x86 
 Pentium 4 
 Números romanos para números arábicos. 
 Melhorias adicionais de ponto flutuante e multimídia. 
 Core 
 Primeiro x86 com dual core. 
 Core 2 
 Arquitetura de 64 bits. 
 Core 2 Quad – 3GHz – 820 milhões de transistores 
 Quatro processadores no chip. 
 Arquitetura x86 dominante fora dos sistemas embarcados. 
 Organização e tecnologia mudaram drasticamente. 
 Arquitetura do conjunto de instruções evoluiu com 
compatibilidade. 
 500 instruções disponíveis. 
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. 
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. 
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. 
 
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 
 
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: 
Benchmarks 
 Programas elaborados para testar o desempenho. 
 Escritos em linguagem de alto nível. 
 Portáveis. 
 Representa o estilo da tarefa. 
 Sistemas, numérica, comercial. 
 Facilmente medidos. 
 Amplamente distribuídos. 
 P.e., System Performance Evaluation Corporation (SPEC). 
 CPU2006 para limite de cálculo. 
 17 programas de ponto flutuante em C, C++, Fortran. 
 12 programas de inteiros em C, C++. 
 3 milhões de linhas de código. 
 Métrica de velocidade e de taxa. 
 Única tarefa e vazão. 
 
Métrica de velocidade SPEC 
 Única tarefa. 
 Runtime básico para cada programa usando máquina de 
referência. 
 Resultados são relatados como razão entre o tempo de 
referência e o tempo de execução do sistema. 
 Tempo de execução Trefi para benchmark i na máquina 
de referência. 
 Tempo de execução Tsuti do benchmark i na máquina 
de teste. 
 
Métrica de velocidade SPEC 
 Desempenho geral calculado pela média das 
razões para todos os 12 benchmarks de inteiros. 
 Usa médiageométrica. 
 Apropriado para números normalizados, como razões. 
 
Métrica de taxa SPEC 
 Mede vazão ou taxa de uma máquina executando uma série de 
tarefas. 
 Múltiplas cópias de benchmarks executadas simultaneamente. 
 Normalmente, mesmo número de processadores. 
 Razão calculada da seguinte forma: 
 Tempo de execução de referência Trefi para benchmark i. 
 N número de cópias executadas simultaneamente. 
 Tsuti tempo decorrido desde início da execução do programa em 
todos os N processadores até o término de todas as cópias do 
programa. 
 Novamente, uma média geométrica é calculada. 
Benchmarks Modernos 
 SYSMark 
 SYSmark 2012 is an application-based benchmark 
that reflects usage patterns of business users in the 
areas of office productivity, data/financial analysis, 
system management, media creation, 3D modeling 
and web development. SYSmark 2012 is a ground 
up development and features the latest and most 
popular applications from each of their respective 
fields. 
Benchmarks Modernos 
 PCMark 
 PCMark 7 is a complete PC benchmarking solution 
for Windows 7 and Windows 8. It includes 7 tests 
combining more than 25 individual workloads 
covering storage, computation, image and video 
manipulation, web browsing and gaming. 
Specifically designed for the full range of PC 
hardware from netbooks and tablets to notebooks 
and desktops, PCMark 7 offers complete Windows 
PC performance testing for home and business use. 
 
Benchmarks Modernos 
 3DMark 
 SuperPi 
 Games 
 Programas comerciais pesados (Photoshop, 3D 
Studio, ...) 
 Video Transcoding 
 
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. 
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. 
Visão de alto 
nível da função e 
interconexão do 
computador 
Principais pontos 
 O ciclo de instrução 
 Busca de instrução, busca de operandos, 
armazenamento de operandos, verificação de 
interrupção. 
 Os principais componentes do sistema de 
computação (CPU, RAM, E/S) precisam ser 
interconectados (dados e controle). 
 Barramentos compartilhados 
 Hierarquia de barramentos. 
 Projeto de barramentos 
 Arbitração; 
 Temporização; 
 Largura. 
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. 
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) 
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. 
 
 
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. 
Abordagens de hardware e software 
 
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. 
Componentes do computador: 
visão de alto nível 
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) 
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. 
 
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. 
Exemplo 
(Características da máquina hipotética) 
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 
Diagrama de estado do ciclo de 
instrução 
Interrupções 
 Mecanismo pelo qual outros módulos (p.e. E/S) 
podem interromper a sequência de 
processamento normal. 
 
Interrupções 
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. 
 
Transferência de controle via 
interrupções 
Ciclo de instrução com 
interrupções 
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. 
Sincronização do programa – 
espera curta pela E/S 
Sincronização do programa – 
espera longa pela E/S 
Ciclo de instrução (com interrupções)Diagrama de estado 
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! 
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. 
 
Múltiplas 
interrupções 
Técnicas 
Sequência de tempo de múltiplas 
interrupções 
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. 
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 sinais de 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. 
 
 
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. 
 P.e., 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. 
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). 
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. 
 
Barramento de endereço 
 Identifica origem ou destino dos dados. 
 P.e., 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. 
 P.e., 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. 
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. 
 
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. 
Esquema de interconexão de 
barramento 
Como os barramentos se 
parecem? 
 Linhas paralelas em placas 
de circuito. 
 Cabos de fita. 
 Conectores em tira nas 
placas mãe. 
 P.e., PCI. 
 Conjuntos de fios. 
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. 
Arquitetura de barramento tradicional 
Arquitetura de alto desempenho 
Elementos do projeto de 
barramento 
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. 
 
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). 
Temporização 
 Coordenação de eventos no barramento. 
 Síncrona: 
 Eventos determinados por sinais de clock. 
 Barramento de controle inclui linha de clock. 
 Uma única transmissão 1-0 é um ciclo do 
barramento. 
 Todos os dispositivos podem ler linha de clock. 
 Normalmente, sincronismo na borda inicial. 
 Geralmente, um único ciclo para um evento. 
 
Diagrama de temporização síncrona 
 
Temporização 
 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. 
Temporização de operações de 
barramento assíncronas 
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. 
Para casa... 
 Estudar a seção 3.5 sobre o barramento PCI, 
onde todos os elementos de projeto são 
explicados na prática. 
 Fazer exercícios. 
A Memória do 
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 óptica [6.3] 
 Fita magnética [6.4] 
 
Principais Pontos 
 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). 
Principais Pontos 
 Memória cache: Tentativa de manter os dados mais 
acessados pelo processador. 
 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. 
 Armazenamento Óptico 
 CD, DVD, Blu-ray, etc... 
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. 
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) 
 Unidades Opticas (CD, DVD, Blu-ray) 
 Unidades Semicondutora (Memória Flash) 
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.) 
 
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) 
 
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. 
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. 
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. 
 
Tecnologias 
 Semicondutora 
 RAM, Cache, Flash, ... 
 Superfície magnética 
 HD’s e fitas 
 Ótica 
 CD, DVD, Blu-ray, etc. 
 Magneto-optica 
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. 
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. 
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. 
Lista de hierarquia 
 Registradores. 
 Cache L1. 
 Cache L2. 
 Cache L3. 
 Memória principal (RAM). 
 Cache de disco (RAM ou módulo separado). 
 Disco. 
 Óptica. 
 Fita. 
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 
 
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. 
Cache e memória principal 
Estrutura de cache/memória 
principal 
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. 
Operação de leitura de cache 
Fluxograma 
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. 
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). 
 Em seguida passaram para chips semicondutores. 
 Examinaremos: 
 Organização; 
 DRAM e SRAM; 
 Tipos de ROM; 
 Lógica e empacotamento do chip; 
 Organização do módulo; 
 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. 
Memória principal semicondutora 
DRAM e SRAM 
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. 
 
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. 
 Dispositivobasicamente analógico. 
 Nível de carga determina o valor. 
 
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. 
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. 
 
Memória principal semicondutora 
DRAM e SRAM 
 Operação da SRAM 
 Arranjo de transistores gera estado 
lógico estável. 
 Estado 1: 
 C1 alta, C2 baixa. 
 T1 T4 desligados, T2 T3 ligados. 
 Estado 0: 
 C2 alto, C1 baixo. 
 T2 T3 desligados, T1 T4 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. 
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. 
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. 
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. 
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). 
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: 
 RAID. 
 Removível. 
 Memória Flash 
 Cartões de Memória 
 SSD 
 Óptica: 
 CD-ROM. 
 CD-Recordable (CD-R). 
 CD-R/W. 
 DVD. 
 Fita magnética. 
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. 
 
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 (tradicional): 
 Campo magnético movendo-se em relação à bobina produz corrente. 
 Bobina é a mesma para leitura e gravação. 
 Leitura (contemporânea): 
 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. 
 
Cabeça de gravação 
indutora/leitura magnetorresistiva 
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. 
Velocidade do disco 
 Bit próximo do centro do disco girando passa por ponto 
fixo mais lento que o bit na borda do disco. 
 Aumente espaçamento entre bits de diferentes trilhas. 
 Gire disco em 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. 
 Pode usar zonas para aumentar capacidade. 
 Cada zona tem número fixo de bits por trilha. 
 Circuito mais complexo. 
Diagrama de métodos de layout 
de disco 
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. 
Características físicas 
 Cabeça fixa (rara) ou 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). 
Disco de cabeça fixa/móvel 
 Cabeça fixa: 
 Uma cabeça de leitura por trilha. 
 Cabeças montadas sobre braço rígido fixo. 
 Cabeça móvel: 
 Uma cabeça de leitura e escrita por lado. 
 Montada sobre um braço móvel. 
Removível ou não 
 Disco removível: 
 Pode ser removido da unidade e substituído por 
outro disco. 
 Oferece capacidade de armazenamento 
ilimitada. 
 Transferência de dados fácil entre sistemas. 
 Disco não removível: 
 Montado permanentemente na unidade. 
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). 
Trilhas e cilindros 
Parâmetros típicos da unidade de 
disco rígido (HD) 
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. 
Tempo de transferência 
𝑇 =
𝑏
𝑟𝑁
 
onde: 
𝑇 = 𝑡𝑒𝑚𝑝𝑜 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑓. 
𝑏 = 𝑛𝑢𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑎 𝑠𝑒𝑟𝑒𝑚 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑡𝑖𝑑𝑜𝑠 
𝑁 = 𝑛ú𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑒𝑚 𝑢𝑚𝑎 𝑡𝑟𝑖𝑙ℎ𝑎 
𝑟 = 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑟𝑜𝑡𝑎çã𝑜 (𝑅𝑃𝑀) 
 
Total: 
𝑇𝑎 = 𝑇𝑠 +
1
2
𝑟 +
𝑏
𝑟𝑁
 
 
 
 
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! 
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 
provavelmenteserá espalhado 
por múltiplos discos. 
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. 
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. 
 
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. 
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. 
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. 
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. 
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 
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, mp3 
players, etc. 
 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. 
 
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. 
Memória Flash 
 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. 
 Outra tecnologia usada pelos fabricantes para cortar 
custos e ao mesmo tempo permitir a criação de 
chips de maior densidade é o "Die-Stacking", onde 
dois ou mais chips são "empilhados", conectados 
entre si e selados dentro de um único 
encapsulamento, que possui o mesmo formato e 
contatos que um chip tradicional. 
Die-Stacking 
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 
Estado sólido: Os SSDs 
 Os SSDs ou "Solid State Drive" (discos de estado sólido) são 
possivelmente a maior revolução dentro do ramo dos HDs 
desde o IBM 350, já que eles utilizam um princípio de 
armazenamento completamente diferente, com os discos 
magnéticos dando lugar aos chips de memória Flash. 
 Vantagens: 
 Baixo tempo de acesso; 
 Excelentes taxas de leitura e gravação em setores 
aleatórios; 
 Consumo elétrico mais baixo; 
 Silenciosos, resistentes a impactos e oferecem uma melhor 
segurança contra perda de dados devido a defeitos de 
hardware, já que não possuem partes móveis. 
 
Estado sólido: Os SSDs 
 A grande desvantagem por outro lado é o custo por 
megabyte, já que em vez de combinar 4 discos 
magnéticos de 500 GB cada um para criar um HD de 
2 TB, você precisa juntar 20 chips de memória Flash 
de 8 GB cada para criar um SSD de apenas 160 GB. 
Quanto mais gigabytes, mais chips, o que leva os 
preços dos drives de maior capacidade para as 
alturas. 
 A grande maioria dos SSDs domésticos utilizam 
módulos de memória Flash MLC, assim como nos 
cartões e pendrives. Entretanto, eles oferecem um 
diferencial importante, que é o uso de múltiplos 
canais de acesso. 
Estado sólido: Os SSDs 
 A maioria dos drives atuais utilizam 10 ou 20 chips de 
memória Flash (o que permite que os fabricantes 
produzam drives de baixa e alta capacidade usando 
as mesmas placas) e 10 canais de acesso simultâneo. 
 Ao escrever um arquivo de 4 MB, por exemplo, o 
controlador o dividirá em 10 blocos de 400 KB cada 
um, que serão escritos simultaneamente em 10 chips 
diferentes, ocupando um total de 100 páginas de 4 
KB em cada um. 
 Ao ler o arquivo posteriormente, a leitura é 
novamente dividida entre os 10 chips, o que 
multiplica tanto a taxa de escrita quanto a de leitura, 
sem que exista penalidade com relação aos tempos 
de acesso. 
SSD’s 
 
Ciclos de Gravação e a Questão 
da Longevidade 
 Um dos grandes problemas com as células de memória 
Flash é a longevidade. 
 As células de memória Flash têm uma vida útil estimada 
em 100.000 regravações no caso dos chips SLC e apenas 
10.000 regravações no caso dos MLC. 
 Em um cartão de memória ou mesmo em um pendrive, 
este número não parece tão preocupante, já que, mesmo 
que enchesse o cartão da sua câmera todos os dias, você 
demoraria 30 anos para atingir as 10.000 regravações. 
 Em um SSD, por outro lado, a coisa é um pouco mais séria, 
já que não apenas o volume de operações é muito maior 
(principalmente se for usada memória swap) mas também 
a importância dos dados armazenados é muito maior. 
Ciclos de Gravação e a Questão 
da Longevidade 
 Para evitar que algumas áreas falhem prematuramente, 
inutilizando o disco, os fabricantes utilizam sistemas de 
wear leveling (distribuição de uso), que alteram os setores 
usados cada vez que arquivos são criados ou alterados. 
 Com 10.000 operações de escrita por bloco, um SSD de 80 
GB teria uma vida útil estimada em 800 TB de gravações, o 
que é um número difícil de atingir em situações normais, já 
que você precisaria gravar 40 GB de dados todos os dias 
por 60 anos para atingir a marca. 
 Em resumo, a vida útil do SSD é especificada pelo 
fabricante como de 5 a 10 anos de uso intenso, o que é, 
de qualquer forma, bem mais que a média dos HDs 
magnéticos. 
Memória óptica 
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. 
Operação do CD 
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. 
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. 
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!) 
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. 
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. 
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. 
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 
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. 
 Disponível para apenas leitura (BD-ROM), gravável uma 
vez (BR-R) e regravável (BR-RE). 
 
Características da memória óptica 
 
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. 
Unidades de fita Linear Tape 
Open (LTO) 
Entrada/Saída 
Aspectos básicos 
Principais pontos 
 A arquitetura de E/S do sistema de computação 
é a sua interface com o mundo exterior. 
 Esta arquitetura fornece um meio sistemático de 
controlar a interação com o mundo exterior e 
fornece ao sistema operacional as informações 
de que precisa para gerenciar a atividade de 
E/S de modo eficaz. 
Principais pontos 
 Três técnicas principais: 
 E/S programada: a E/S ocorre sob o controle direto 
e contínuo do programa solicitando a operação; 
 E/S controlada por interrupção: programa emite 
um comando de E/S e depois continua a executar, 
até que seja interrompido pelo hardware de E/S 
para sinalizar o final da operação de E/S. 
 Acesso direto à memória (DMA): processador de 
E/S especializado assume o controle de uma 
operação de E/S para mover um grande bloco de 
dados. 
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 central e controla um ou mais 
dispositivos periféricos. 
 Um módulo de E/S não é simplesmente um conjunto 
de conectores mecânicos que conectam um 
dispositivo fisicamente ao barramento do sistema. 
 O módulo de E/S contém uma lógica para realizar 
uma função de comunicação entre o periférico e o 
barramento. 
Problemas de entrada/saída 
 Grande variedade de periféricos: 
 Entregando diferentes quantidades de dados. 
 Em velocidades diferentes. 
 Em formatos diferentes. 
 Todos mais lentos que CPU e RAM. 
 Precisa de módulos de E/S. 
 
Módulo de entrada/saída 
 Interface com CPU e memória. 
 Interface com um ou mais periféricos. 
Dispositivos externos 
 Legíveis ao ser humano: 
 Monitor, impressora, teclado. 
 Legíveis à máquina: 
 Monitoração e controle. 
 Comunicação: 
 Modem. 
 Placa de interface de rede (NIC). 
 
Diagrama em blocos de um 
dispositivo externo 
Função do módulo de E/S 
 Controle e temporização. 
 Comunicação com CPU. 
 Comunicação com dispositivo. 
 Buffering de dados. 
 Detecção de erro. 
Etapas da E/S 
 CPU verifica estado do dispositivo do módulo de 
E/S. 
 Módulo de E/S retorna o estado. 
 Se estiver pronto, CPU solicita transferência de 
dados. 
 Módulo de E/S recebe dados do dispositivo. 
 Módulo de E/S transfere dados à CPU. 
 Variações para saída, DMA etc. 
Diagrama do módulo de E/S 
Técnicas de E/S 
 Programada. 
 Controlada por interface. 
 Acesso direto à memória (DMA). 
Três técnicas para 
entrada de um bloco de dados 
E/S Programada 
 CPU tem controle direto sobre E/S: 
 Conhecendo o estado. 
 Comandos de leitura/escrita. 
 Transferindo dados. 
 CPU espera que módulo de E/S termine a 
operação. 
 Desperdiça tempo de CPU. 
E/S programada – detalhe 
 CPU solicita operação de E/S. 
 Módulo de E/S realiza operação. 
 Módulo de E/S define bits de estado. 
 CPU verifica bits de estado periodicamente. 
 Módulo de E/S não informa à CPU diretamente. 
 Módulo de E/S não interrompe CPU. 
 CPU pode esperar ou voltar mais tarde. 
Comandos de E/S 
 CPU emite endereço: 
 Identifica módulo (& disp. se >1 por módulo). 
 CPU emite comando: 
 Controle – dizendo ao módulo o que fazer. 
 P.e., girar disco 
 Teste – verifica estado: 
 P.e., alimentado? Erro? 
 Leitura/escrita: 
 Módulo transfere dados via buffer de/para dispositivo. 
 
E/S controlada por interrupção 
 Contorna problema de espera da CPU. 
 Sem verificação de dispositivo repetida da CPU. 
 Módulo de E/S interrompe quando estiver pronto. 
 Operação básica: 
 CPU emite comando de leitura. 
 Módulo de E/S recebe dados do periférico enquanto 
CPU faz outro trabalho. 
 Módulo de E/S interrompe CPU. 
 CPU solicita dados. 
 Módulo de E/S transfere dados. 
 
Processamento de interrupção 
simples 
Acesso direto à memória (DMA) 
 E/S controlada por interrupção e programada 
exige intervenção ativa da CPU. 
 Taxa de transferência é limitada. 
 CPU fica amarrada. 
 DMA é a resposta. 
 Função do DMA: 
 Módulo adicional (hardware) no barramento. 
 Controlador de DMA toma o comando da CPU 
para E/S. 
Diagrama típico do módulo de 
DMA 
Operação do DMA 
 CPU diz ao controlador de DMA: 
 Leitura/escrita. 
 Endereço do dispositivo. 
 Endereço inicial do bloco de memória para dados. 
 Quantidade de dados a serem transferidos. 
 CPU prossegue com outro trabalho. 
 Controlador de DMA lida com transferência. 
 Controlador de DMA envia interrupção quando 
terminar. 
 
Transferência de DMA 
Roubo de ciclo 
 Controlador de DMA assume o barramento por um 
ciclo. 
 Transferência de uma palavra de dados. 
 Não uma interrupção. 
 CPU não troca de contexto. 
 CPU suspensa logo antes de acessar o barramento. 
 Ou seja, antes de uma busca de operando ou dados ou 
uma escrita de dados. 
 Atrasa a CPU, mas não tanto quanto a CPU fazendo 
transferência.

Outros materiais