Você está na página 1de 74

Arquitetura de Computadores

e Sistemas Operativos
Informática de Gestão, ESTiG/IPB
José Rufino
2020/2021

Parte AC5
Tecnologias de
Armazenamento e E/S
Objetivos

• compreender a organização da hierarquia de memória


• compreender como cada nível da memória contribui
para o desempenho do sistema
• compreender a organização da memória RAM
• compreender os conceitos subjacentes às caches
• compreender os princípios e as características do
armazenamento secundário, terciário e quaternário
• compreender como funcionam os sistemas de E/S,
incluindo métodos e arquiteturas de E/S
2
5.1 Introdução

• um CPU muito rápido de nada servirá se passar a maior


parte do tempo à espera de instruções e dados
• o papel da memória é fundamental nos computadores
que seguem a arq. de von Neummann (evita que a
CPU tenha de se “alimentar” a partir do disco …)
• as memórias cache esbatem o diferencial de
desempenho entre os vários níveis de armazenamento
• o armazenamento e recuperação de dados em massa é
também uma das funções primárias de um computador
• um fraco desempenho do sistema de E/S pode afetar
drasticamente o desempenho global
3
5.2 Hierarquia de armazenamento

4
5.2 Hierarquia de armazenamento

• memória + rápida é mais cara que memória + lenta


• para oferecer maior desempenho ao menor custo
possível, a memória é organizada hierarquicamente
• elementos de memória mais rápidos e de menor
capacidade são mantidos na / próximo da CPU
• memória mais lenta e de maiores dimensões é
acedida através dos barramento de dados ou E/S
• os dispositivos de armazenamento persistente (de
capacidades elevadas) tal como discos e bandas
magnéticas ficam ainda mais “distantes” da CPU
5
5.2 Hierarquia de armazenamento

• para aceder a um determinado elemento de dados, a


CPU começa por fazer um pedido às memórias mais
próximas, que são normalmente as suas caches
• se os dados não se encontrarem nas caches da CPU,
então são solicitados à memória principal (RAM)
• se não se encontrarem em RAM, os dados são
requisitados ao armazenamento secundário (disco)
• poderá ainda ser necessário procurar os dados em
armazenamento terciário ou até quaternário ...
• localizados os dados, esses dados e outros próximos
são copiados pela hierarquia acima (caching – cada
cada nível comporta-se como uma cache do anterior)
6
5.2 Hierarquia de armazenamento

• definições e terminologia associada:


– há um hit (sucesso) num determinado nível de memória quando
os dados pretendidos estão nesse nível; nesse caso, se os dados
foram pedidos pelo nível acima, são copiados para esse nível
• caso contrário, diz-se que há um miss (insucesso)
– hit rate (taxa de sucesso) num nível de memória é a “percen-
tagem de vezes em que há sucesso nesse nível de memória”
• a miss rate é o contrário: miss rate = 1 – hit rate
– hit time (tempo para sucesso) num nível de memória é o “tempo
necessário para aceder a dados situados nesse nível de memória”
– miss penalty (penalização por insucesso) num nível n é o “tempo
para contornar um insucesso nesse nível, incluindo copiar os
dados do nível abaixo para o nível n e deste para o nível acima” 7
5.2 Hierarquia de armazenamento

• tipicamente, quando há um miss num nível n, traz-se


um bloco inteiro com os dados em falta do nível abaixo
e entrega-se uma cópia desse bloco ao nível acima
• “princípio da localidade da referências”:
– sempre que um byte é acedido, é provável que outro, na
sua vizinhança, também seja acedido proximamente
– localidade temporal – elementos de dados acedidos
recentemente tendem a ser novamente acedidos
– localidade espacial – os acessos à memória tendem a
concentrar-se numa dada zona (num período limitado)
– localidade sequencial – normalmente, as instruções são
acedidas sequencialmente 8
5.2 Hierarquia de armazenamento
- Tempo de Acesso Efetivo e Taxa de Acerto

• o desempenho do armazenamento hierárquico é


medido pelo Tempo de Acesso Efetivo (EAT)
• o EAT corresponde a uma média pesada que tem
em conta a taxa de sucesso (hit rate) e os tempos de
acesso relativos de níveis de memória sucessivos
• o EAT de uma hierarquia com 2 níveis é dado por:
EAT = H1  T1 + (1-H1)  T2
– H1 é a taxa de sucesso (hit rate) do 1º nível de memória
• a taxa do 2º nível (H2), não mostrada, assume-se 100%
– T1 e T2 são os tempos de acesso do 1º e 2º níveis
9
5.2 Hierarquia de armazenamento
- Tempo de Acesso Efetivo e Taxa de Acerto

• exemplo:
– com um tempo de acesso à memória principal de 100ns,
um tempo de acesso à cache L1 de 10ns e uma taxa de
sucesso (no acesso à cache L1) de 90%, o EAT será:

0.9(10ns) + 0.01(100ns) = 9ns + 1ns = 10ns

• a expressão anterior pode ser generalizada para


determinar o tempo efetivo de acesso em sistemas
com um qualquer número de níveis de memória …
(assumindo que a tx. de acerto do último nível é 100%)

checkpoint: exercício EAT*.1 10


5.3 Memória Principal (RAM)
- Organização e Endereçamento

• em termos abstratos, a memória principal de um


computador corresponde a um vetor (array) linear de
células de armazenamento, todas de igual dimensão
(nº de bytes) e cada qual com um endereço único

• também já assumimos que a memória principal se


divide em blocos lógicos, da mesma dimensão,
igual à dimensão dos blocos das caches da CPU
– esta coincidência é essencial para a forma como
funcionam os algoritmos de gestão das caches
(estas mantêm cópias dos blocos da memória)

11
5.3 Memória Principal (RAM)
- Organização e Endereçamento

• cada célula de armazenamento tem direito a um


endereço único, iniciando-se estes em zero (0)
• a memória principal pode ser endereçável ao byte
ou à palavra (uma palavra são 2 ou mais bytes)

12
5.3 Memória Principal (RAM)
- Organização e Endereçamento

• em termos físicos, a memória assenta em vários


módulos e estes são constituídos por >=1 chips
• quer a memória, quer os módulos e chips, são
referenciáveis pela notação “altura x largura”
• exemplo: memória 32K x 16, à custa de 16 módulos
de 2K x 16, realizados com pares de chips 2K x 8

13
5.3 Memória Principal (RAM)
- Organização e Endereçamento

• exemplo (continuação):

checkpoint:
exercícios RAM.3
a RAM.5, RAM.9

– 32K palavras necessitam de endereços de log2(32K) = 15 bits


– 15 bits = 4 + 11 bits:
• 16 módulos necessitam de log2(16) = 4 bits
• 2K linhas de módulo necessitam de log2(2K) = 11 bits
14
checkpoint:
5.3 Memória Principal (RAM) exercícios
- Organização e Endereçamento RAM.6, RAM*.1

• a sequência de bits de um endereço de memória


pode-se subdividir em duas subsequências contíguas
– uma, que indica o módulo onde o endereço foi mapeado
– outra, que indica a posição (deslocamento) no módulo

• por seu turno, os endereços de memória podem ser


mapeados pelos vários módulos de duas maneiras:
– High-Order Interleaving: os bits mais significativos
do endereço especificam o módulo, e os bits menos
significativos indicam o deslocamento dentro do módulo
– Low-Order Interleaving: os bits menos significativos
do endereço especificam o módulo, e os bits mais
significativos indicam o deslocamento dentro do módulo 15
5.4 Cache da CPU

• objetivo: acelerar os acessos aos dados, mantendo


perto da CPU os dados usados mais recentemente
• uma cache guarda cópias de blocos da mem. principal
(os blocos mais recentemente solicitados pela CPU)
• a cache é muito mais pequena que a memória principal,
mas o seu tempo de acesso é também mais reduzido
• a memória principal (RAM) é acedida diretamente dado
um endereço (que funciona como índice de um array)
• mas quando um endereço da RAM é apresentado à
cache, esta separa-o em certos campos e usa-os para
procurar na cache o bloco que contém esse endereço
16
5.4 Cache da CPU
- Campos dos Endereços da RAM

• campos de um endereço de RAM visto pela cache:


– tag [, block/set], word/offset ([...] significa opcional)
• utilização genérica dos campos do endereço:
– o campo block referencia um bloco da cache, onde os
dados estão (hit) ou onde deveriam estar (miss)
– o bloco da cache pode ser válido ou não (miss), de
acordo com um bit de validade guardado no bloco
– se o bloco for válido, uma tag guardada no bloco da
cache é comparada com a tag extraída do endereço
– se as tags forem iguais (hit), a palavra referenciada
pelo campo word é extraída do bloco e devolvida
17
5.4 Cache da CPU
- Correspondência de Blocos

• a definição do bloco da cache que recebe uma cópia de


um certo bloco da RAM pode ser feita de várias formas,
designadas por esquemas de correspondência
• cada esquema divide o endereço da RAM em campos,
de diferentes formas, e usa-os de maneira diferente
• em qualquer esquema, haverá sempre muitos blocos da
RAM candidatos para serem copiados para um mesmo
bloco da cache (correspondência de muitos para um)
• para saber qual dos possíveis blocos candidatos da
RAM foi copiado para um bloco da cache, a cópia é
etiquetada com uma tag única para cada bloco da RAM
18
5.4 Cache da CPU
- Correspondência Direta (direct mapped cache)

• divisão do endereço

• numa cache com N blocos, o


“bloco X da memória principal”
corresponde ao “bloco da cache
Y = X mod N” (i.e., Y=X % N)
• exemplo: se N=10 blocos, no
bloco 7 da cache poderão ser
armazenados os blocos 7, 17,
27, 37, ... da memória principal 19
5.4 Cache da CPU
- Correspondência Direta (direct mapped cache)
checkpoint:
• vantagens: - simulador Camera
- exercício CACHE.1
– esquema simples, de fácil implementação ...
– ... o que o torna economicamente atractivo

• desvantagens:
– a correspondência fixa entre “blocos de memória” e “blocos
da cache” faz com que, para certas sequências de acesso
à memória, a cache não seja devidamente rentabilizada
• ou seja, existe um desfasamento entre a localidade de
referências e a política de substituição dos blocos da cache
– necessidade de esquemas que resolvam este problema
20
5.4 Cache da CPU
- Cache Totalmente Associativa (fully associative cache)

• princípios:
– um bloco de memória pode-se associar a qq bloco da cache
– um endereço de memória divide-se apenas em 2 campos

• pesquisa na cache, por um bloco de memória:


– implica a pesquisa de todos os blocos da cache
– a cache é construída com memória associativa
• permite a comparação de tags em paralelo
• exige hardware especial, logo mais caro 21
5.4 Cache da CPU
- Cache Totalmente Associativa (fully associative cache)

• necessidade de um algoritmo/política de substituição:


– a cache tem que ficar totalmente preenchida antes de
haver a necessidade de substituir/expulsar blocos
– é pois necessário um algoritmo para determinar qual o
bloco a substituir/expulsar quando a cache estiver cheia
– ao bloco escolhido pelo algoritmo dá-se o nome vítima
– existem várias formas de escolher o bloco vítima
• First-in-First-Out (FIFO) checkpoint:
- simulador Camera
• Least Recently Used (LRU) - exercício CACHE.3
• Least Frequently Used (LFU), etc ... 22
5.4 Cache da CPU
- Cache Associativa por Conjuntos (set associative cache)

• princípios:
– combinar correspondência direta com associativa
– um endereço de memória divide-se em 3 campos

– o campo set identifica um conjunto de blocos


• os conjuntos têm um número de blocos comum
– um endereço será mapeado sempre no mesmo set
• conceito importado do mapeamento direto
– mas poderá ser mapeado em diferentes blocos do set
23
• conceito importado do mapeamento associativo
5.4 Cache da CPU
- Cache Associativa por Conjuntos (set associative cache)

• princípios (cont):
– o “número de blocos por conjunto” é o “número de vias, N”
– N é um parâmetro importante no desenho de uma cache
• uma cache de mapeamento direto representa um caso
especial de cache associativa por conjuntos, em que N=1
– em suma: divide-se a cache em conjuntos de blocos; asso-
ciam-se certos blocos da RAM sempre ao mesmo conjunto
(correspondência direta), mas em cada conjunto a
pesquisa é em paralelo (correspondência associativa)

checkpoint:
- simulador Camera
- exercício CACHE.5 24
5.4 Cache da CPU
- Políticas de Substituição

• nas caches associativa e associativa por conjuntos


são necessárias políticas de substituição de blocos
– cache totalmente associativa, com K blocos:
• qualquer dos K blocos é, a priori, candidato a vítima
– cache associativa por conjuntos, de N vias:
• qualquer dos N blocos de um conjunto é vítima potencial
• uma política óptima teria de “prever o futuro” para
determinar que blocos não serão mais necessários
• apesar de ser impossível implementar uma política
ótima, é interessante utilizá-la para analisar o
desempenho de outros algoritmos de substituição
25
5.4 Cache da CPU
- Políticas de Substituição

• a escolha de uma política de substituição depende


do tipo de localidade que se pretende otimizar
(normalmente interessa a localidade temporal)
• abordagem LRU ( ≡ usado menos recentemente)
– “toma nota” do momento em que cada bloco foi
acedido pela última vez, de forma a se expulsar
aquele que não tiver sido usado há mais tempo
– desvantagem: > complexidade temporal e espacial
• manter o historial de cada bloco exige bits adicionais
e tempo para os atualizar (tornando a cache + lenta)

26
5.4 Cache da CPU
- Políticas de Substituição

• abordagem FIFO (first-in, first-out)


– o bloco que se encontra na cache há mais tempo,
(tenha sido usado recentemente ou não), é a vítima
– abordagem + simples que a LRU (a mesma sobre-
carga espacial, mas menor sobrecarga temporal)
• substituições aleatórias
– vítima escolhida “à sorte” (a abordagem + simples)
– tende a evitar situações de trashing (um bloco X é
expulso e substituído por outro, mas logo de seguida
é necessário voltar a trazer o bloco X para a cache)

27
5.4 Cache da CPU
- Políticas de Escrita

• as políticas de substituição devem também ter em conta


os blocos “sujos” (dirty blocks) – blocos que foram
modificados durante a sua estadia na cache
– os dirty blocks têm de se copiar para a memória principal
(seguindo uma política de escrita), antes de substituídos
• política de escrita imediata (write through)
– a cache e a memória principal são atualizadas em
simultâneo sempre que há uma operação de escrita
• política de escrita adiada (write back ou copy back)
– a RAM só é atualizada quando o bloco é substituído
28
5.4 Cache da CPU
- Políticas de Escrita

• (des)vantagens da escrita imediata


– a memória principal tem de ser atualizada cada vez
que a cache é alvo de uma escrita, o que penaliza o
desempenho se as escritas forem muito frequentes
(todavia, a maioria dos acessos tende a ser de leitura)
– cache e memória são mantidas num estado coerente

• (des)vantagens da escrita adiada


– minimiza o tráfego entre a cache e a memória
– a memória nem sempre “concorda” com a cache,
podendo gerar incoerências em sist. concorrentes
29
//5.4 Cache da CPU
- Caches Unificadas vs Separadas

• As caches podem ser unificadas / integradas, ou seja,


contêm quer blocos de instruções, quer de dados.

• Muitos sistemas modernos utilizam caches separadas


para as instruções e para os dados (Harvard cache).

• A separação de instruções e dados por diferentes


caches explora melhor a localidade de cada categoria,
mas à custa de maior complexidade. Na prática, uma
cache unificada maior produz os mesmos benefícios.
30
//5.4 Cache da CPU
- Caches Multinível

• A maioria dos sistemas modernos utilizam caches de CPU


organizadas numa hierarquia de vários níveis (L1/L2/L3).

• Cada CPU-core tem uma cache L1 (8KB a 64KB), tipica-


mente separada, com tempos de acesso à volta de 4ns.

• Cada CPU-core tem também uma cache L2 (64KB a 2MB),


de tipo unificado, com tempos de acesso de 15ns a 20ns.

• Quando existem, as caches L3 (2MB a 256MB) ou de nível


superior, são partilhadas pelos vários CPU-cores podem
situar-se “off-die” (fora do chip que aloja os CPU-cores).

31
//5.4 Cache da CPU
- Caches Inclusivas vs Exclusivas

• Outro aspeto a considerar é se os mesmos dados (ou


instruções) podem existir em mais de um nível de cache.
• Se a hierarquia de caching for inclusiva, podem existir
cópias dos mesmos dados/instruções em mais de um nível.
– numa hierarquia de caching estritamente inclusiva, garante-
se que todo o conteúdo de um nível superior está replicado no
nível imediatamente inferior (tacitamente assumido até agora).
• Se a hierarquia de caching for exclusiva, NÃO podem existir
cópias dos mesmos dados/instruções em mais de um nível.
• Cada opção implica compromissos diferentes em relação
aos tempos de acesso, dimensão e complexidade da cache.

32
5.5 Armazenamento Secundário

• os dispositivos de armazenamento secundário permitem


– armazenar de forma persistente, grandes quantidades de dados
– acesso mais lento que à RAM, mais rápido que a discos óticos

• são dispositivos de acesso aleatório (ou direto)


– dados armazenados em blocos, de igual dimensão
– cada bloco tem um endereço único, podendo ser acedido de forma
independente dos outros (normalmente é lido o bloco pretendido e os
seus vizinhos, para uma cache do dispositivo - princ. local. referências)

• atualmente, coexistem diversas tecnologias


– discos magnéticos (tb conhecidos por discos rígidos)
– discos de estado sólido / SSDs (baseados em memórias FLASH)

33
5.5 Armazenamento Secundário
- Discos Magnéticos

• Componentes Básicos
– pratos (platters) de material não-magnético (vidro, liga de
alumínio), com uma camada de substrato ferro-magnético
– pratos montados num eixo (spindle), em elevada rotação
• 5400rpm, 5900rpm, 7200rpm, 10000rpm, 15000rpm, ...

– cabeças (heads) de leitura/escrita


• montadas nos braços de um atuador (actuator arm)
• movem-se de forma solidária (em bloco) e radialmente
• distância microscópica dos pratos (nanómetros)
• ímanes orientam o substrato em direções diferentes (0/1) 34
5.5 Armazenamento Secundário
- Discos Magnéticos

• Componentes Básicos (cont.)

35
5.5 Armazenamento Secundário
- Discos Magnéticos

• Organização do Armazenamento (Disk Geometry)


– superfície dividida em pistas (tracks) concêntricas

– cada pista dividida em sectores (sectors)


• unidade básica de acesso; dimensão: 512 bytes, 4Kbytes
– unidade usual de acesso: cluster (conjuntos de sectores)

• alguma capacidade “perdida” para códigos ECC


• zoned bit recording (ZBR): diferente número de sectores por
pista, agrupando-se as pistas em zonas de capacidade igual

– pistas situadas à mesma distância do centro, mas em


superfícies diferentes, definem um cilindro (cylinder)
36
5.5 Armazenamento Secundário
- Discos Magnéticos

• Organização do Armazenamento (Disk Geometry)

zoned bit recording


(ZBR)
37
5.5 Armazenamento Secundário
- Discos Magnéticos

• Organização do Armazenamento (Disk Geometry)


– tipos de endereços/coordenadas dos sectores do disco
• coordenadas geométricas: CHS (Cylinder-Head-Sector)
– coordenadas que refletem a geometria subjacente do disco,
sendo geralmente usadas apenas pelo controlador do disco
– atualmente, todos os discos usam ZBR, pelo que endereços
CHS não são mapeáveis diretamente na geometria do disco
» valores pseudo-CHS eventualmente usados por utilitários
de baixo nível, são traduzidos pelo controlador do disco
• coordenadas lineares; LBA (Logical Block Addressing)
– disco de N sectores visto como array do sector 0 ao N-1
– coordenadas usadas acima do controlador (SO, aplicações)

38
5.5 Armazenamento Secundário
- Discos Magnéticos

• Parâmetros de Desempenho
– num disco magnético, existem várias características
que determinam a velocidade de acesso aos dados
• tempo de posicionamento (seek time): necessário para
o braço/“pente” se posicionar sobre o cilindro desejado
• latência ou atraso de rotação (rotational delay):
– tempo necessário para que o sector desejado fique
posicionado debaixo da cabeça de leitura/escrita
– o valor médio é função da velocidade de rotação:
exemplo: para um disco com velocidade
de rotação=7200rpm, o atraso (médio) de
rotação será de (60 / 7200) / 2 = 4.16ms

39
5.5 Armazenamento Secundário
- Discos Magnéticos checkpoint:
exercícios
• Parâmetros de Desempenho DISCOS.17,
DISCOS*.4
– tempo de acesso (acess time):
• tempo de posicionamento + atraso de rotação
– taxa de transferência:
• taxa à qual os dados podem ser lidos/escritos do/no disco
• Outros Parâmetros
– Tempo Médio até Falha (Mean Time To Failure - MTTF)
• determinado estatisticamente, com base na experimentação
• o valor do MTTF costuma ser muito elevado; não significa
que o dispositivo seja garantido por esse período de tempo
– o número máximo de vezes que o disco suporta ser ligado/
desligado (load cycle) é tb outro parâmetro importante …
• em discos de tipo GREEN deve ser elevado ... 40
5.5 Armazenamento Secundário
- Discos de Estado Sólido (SSDs)

• Tecnologia dos SSDs


– baseados em memórias de tipo FLASH, não-voláteis
– o desempenho escala com o número de chips usados
• mais chips => maior paralelismo potencial no acesso
– disponíveis em vários formatos e interfaces: 2.5’’/M.2H2, SATA/PCIe

41
5.5 Armazenamento Secundário
- Discos de Estado Sólido (SSDs)

• Vantagens dos SSDs


– sem partes móveis => rápidos, silenciosos,
virtualmente imunes a falhas mecânicas
– inicialização rápida, tempo de leitura constante
– taxas de transferência sustentada (não RAID)
• SATA 3Gb/s: leit. seq. até 280MB/s ; escr. seq. até 260 MB/s

• SATA 6Gb/s: leit. seq. até 550MB/s ; escr. seq. até 520 MB/s

• PCIe3 (NVMe): leit. seq. até 3500MB/s ; escr. seq. até 2500 MB/s

• (versus taxas máx. em discos magnéticos: SATA 10Krpm 3Gb/s ≈ 118


MB/s, SATA 10Krpm 6Gb/s ≈ 145 MB/s; SAS 10Krpm 6Gb/s ≈ 204 MB/s)

– desempenho não afetado pela fragmentação 42


5.5 Armazenamento Secundário
- Discos de Estado Sólido (SSDs)

• Desvantagens/Limitações dos SSDs


– custo mais elevado que os discos magnéticos
– menor capacidade que os discos magnéticos
– suportam um número limitado de (re)escritas
• wear levelling => dispersão uniforme das escritas no SSD
• necessidade de Sistemas de Ficheiros adequados (os SFs
tradicionais reescrevem muitas vezes os mesmos blocos)
– assimetria R/W: escritas mais lentas que as leituras
• desempenho da escrita dependente de blocos livres
• página: unidade das escritas e das leituras
– remoções bastante mais lentas que as escritas
• bloco (conjunto de páginas): unidade da remoção 43
5.6 Armazenamento Terciário

• baseado em discos óticos


• múltiplas variantes e capacidades:
– CD [ -ROM, -R, -RW ] ; 650Mb, 700Mb
– DVD [-ROM, -R, +R, -RAM ] ; 4.37Gb, 15.90Gb
– HD-DVD [-ROM, -R, -RW]; 15Gb, 30Gb
– BD [-ROM, -R, -RW] ; 25Gb, 50Gb
• oferecem i) capacidade de armazenamento razoável,
ii) baixo custo e iii) elevada durabilidade
• hoje em dia usados apenas para backup e arquivo
44
5.6 Armazenamento Terciário
• CD-ROMs
–base de policarbonato (plástico),
coberta por filme de alumínio, co-
berta por uma camada de acrílico
–zeros e uns são codificados como
depressões (pits) e espaços (lands)
numa única pista em espiral, que
evolui do centro para a periferia
–na leitura, um laser passa por uma
lente e reflete-se de forma diferen-
te, c.f. acerta em pits ou lands; um
prisma redireciona o laser para um
foto-detetor, o qual converte pulsos
de luz em sinais elétricos
–na gravação, o laser “escava” pits
45
5.6 Armazenamento Terciário
• DVD-ROMs
– DVD = Digital Versatile Disk / Digital Video Disk; dados, video, áudio
– > densidade, > velocidade que os CD-ROMs
– single/doubled-sided
– single/dual-layer
– single-sided + single-layer: 4.37 Gb
– double-sided + dual-layer: 15.9 Gb
a) single-layer vs b) double-layer

• Blue-Violet Laser Disks


– formatos: Blu-Ray (> capacidade) e HD-DVD (compatibilidade DVD)
– o formato Blu-Ray acabou por se impor; dados, vídeo de alta definição
– single-layer: 25Gb; double-layer: 50Gb; suporta até 6 camadas
46
5.6 Armazenamento Quaternário

• baseado em fita magnética; suporte mais antigo que os discos !


• hoje em dia, usado só backup/arquivo, e com relação “custo /
capacidade de armazenamento” mais atrativa que a dos discos
• primeiras unidades de fita magnética para dados
– usavam media semelhante ao das fitas
magnéticas para áudio; leitores/gravadores
de grandes dimensões (“frigoríficos”)
– dados escritos um byte de cada vez,
com um bit de paridade (9-track tape)

47
5.6 Armazenamento Quaternário

• ao formato inicial 9-track sucederam-se muitos outros ...


• gravação em serpentina:
– escrita na horizontal, em ambas as direções

– método usado nos formatos DLT (digital linear tape)


e QIC (Quarter Inch Cartdrige), ainda hoje em dia
48
5.6 Armazenamento Quaternário

• gravação por varrimento helicoidal (helical scan):


– um “tambor” com cabeças de leitura e de escrita roda helicoidal-
mente, numa direção oposta à do movimento da fita (≈ VCRs)
– após uma escrita, a cabeça de leitura faz a verificação imediata

Padrão da disposição dos dados (40º)

Movimento helicoidal das cabeças,


e movimento linear da fita

– método usado nos formatos DAT (digital audio tape)


e em sistemas com fitas de 8mm, ainda hoje em dia
– + lento e com + desgaste que o método em serpentina
49
5.6 Armazenamento Quaternário

• formato LTO (Linear Tape Open):


– especificação aberta da HP, IBM e Seagate
– elevada inter-operabilidade, fiabilidade, capacidade e desempenho

Fonte: http://en.wikipedia.org/wiki/Linear_Tape-Open

50
5.7 Subsistemas de E/S

• subsistema de entrada/saída (E/S): um subsistema


de componentes que move dados codificados entre
dispositivos externos e o sistema hospedeiro (este
consiste no conjunto CPU + memória principal )
• exemplos de subsistemas de entrada/saída:
– blocos de memória principal dedicados a funções de E/S
– barramentos que trazem/levam dados para/do sistema
– módulos de controlo no sistema hospedeiro e nos periféricos
– interfaces para componentes externos (teclados, discos, ...)
– cabos e ligações entre o sistema hospedeiro e os periféricos
51
5.7 Subsistemas de E/S

• uma configuração típica de subsistemas de E/S

52
5.7 Subsistemas de E/S

• uma configuração típica de subsistemas de E/S (cont.)

– módulos I/O
movem dados
entre a memória
principal e
interfaces de
dispositivos
específicos
(disco, impres.)

53
5.7 Subsistemas de E/S

• uma configuração típica de subsistemas de E/S (cont.)

– os interfaces de
dispositivos
asseguram-se
de que os
dispositivos e
o hospedeiro
estão prontos
para comunicar
o formato e o significado dos sinais
trocados entre os dispositivos e o
hospedeiro obedece a um protocolo

54
5.7 Subsistemas de E/S

• uma configuração típica de subsistemas de E/S (cont.)


– dispositivos que
lidam com
grandes blocos
de dados têm
buffers/caches
que mascaram
os atrasos
originados por
componentes
mais lentos
(e.g., superfícies
dos discos)
55
5.7 Subsistemas de E/S

• uma configuração típica de subsistemas de E/S (cont.)

– circuitos de
controlo nos
dispositivos
asseguram que
os dados dos
buffers são
transferidos
do/para o
dispositivo

56
5.7 Subsistemas de E/S
- Métodos de Controlo E/S
• a atividade E/S pode ser controlada de 4 formas:
1) E/S programada (polled IO) : é reservado um registo
por cada dispositivo; cada registo é continuamente
sondado (polling) para detetar a chegada de dados

a CPU é responsável por averiguar se existem dados nos
periféricos, sendo desperdiçados muitos ciclos de relógio
porque, normalmente, não existem dados para processar

adequado a cenários específicos, em que os periféricos
não têm inteligência suficiente para outros métodos E/S

permite uma abordagem programática ao controlo E/S
(programador decide quando e quantas vezes interrogar)
57
5.7 Subsistemas de E/S
- Métodos de Controlo E/S
2) E/S guiada por interrupções (interrupt-driven IO) : pode
ser vista como abordagem reversa da E/S programada

esta abordagem permite que a CPU esteja ocupada
com outras tarefas, enquanto não ocorrem pedidos E/S

os periféricos interrompem a CPU quando necessário

para atender uma interrupção, o Sistema Operativo:

guarda o estado atual da CPU, localiza a Interrupt Service
Routine (ISR) específica da interrupção (através do vetor
de interrupções) e executa-a; quando a ISR termina, o
estado anterior da CPU é recuperado e o programa
interrompido retoma a sua execução

algumas interrupções podem ser ignoradas 58
5.7 Subsistemas de E/S
- Métodos de Controlo E/S
2) E/S guiada por interrupções (cont.) :

Subsistema E/S com suporte a Interrupções

Processamento de interrupções
Ciclo fetch-decode-execute
com suporte a Interrupções 59
5.7 Subsistemas de E/S
- Métodos de Controlo E/S
3) Acesso Direto à Memória (DMA) : o processamento
das transferências E/S é atribuído a um chip dedicado

nas duas abordagens anteriores, é a CPU que move
os dados entre o dispositivo e a memória principal:


este algoritmo é suficientemente simples para
60
poder ser executado por um controlador DMA
5.7 Subsistemas de E/S
- Métodos de Controlo E/S
3) DMA Address Bus

(cont.)
Data Bus

Control

Configuração DMA


a CPU fornece ao controlador DMA a
origem, destino e quantidade de bytes

o controlador DMA trabalha em paralelo
com a CPU, com quem partilha o barra-
mento, mas tem prioridade no acesso ao
barramento, para evitar timetouts de E/S
61
Interacção CPU ↔ Controlador DMA
checkpoint:
5.7 Subsistemas de E/S exercícios ES*.1, ES*.2 e ES*.3
- Dispositivos orientados ao Carácter vs Bloco
• dispositivos orientados ao carácter:
– processam/transferem um byte de cada vez
– exemplos: modems, teclados, ratos
– os teclados costumam usar E/S guiado por interrupções
– os ratos (USB) costumam usar E/S baseado em polling
• dispositivos orientados ao bloco:
– processam/transferem um bloco de cada vez
– exemplos: maioria dos sistemas de armazenamento em
massa (discos rígidos, unidades de fita magnética, ...)
– usam maioritariamente E/S baseada em DMA

62
5.7 Subsistemas de E/S
- Barramentos E/S
• barramento (bus): generica/, conjunto de linhas de
comunicação que transportam bits entre dispositivos
– bus ponto-a-ponto: liga um par de dispositivos (*)
– bus multi-ponto: partilhado por vários dispositivos (**)
• num dado instante, só um pode escrever no bus
• exige mecanismos de arbitragem p/ gerir a partilha

(*)

(**)

(**)
(*) USB hub
USB mouse
and keyboard (*) 63
5.7 Subsistemas de E/S
- Barramentos E/S
• visão de alto nível dos barramentos do sistema

– as linhas de controlo ativam os dispositivos quando são


necessários, assinalam erros e reiniciam os dispositivos
– o número de linhas de dados é a largura do barramento
– as linhas de endereço definem a origem/destino dos dados
64
5.7 Subsistemas de E/S
- Barramentos E/S
• normalmente, o barramento da memória encontra-se
separado do barramento E/S que serve os periféricos
– o barramento de memória opera síncronamente
• emissor e recetor partilham o mesmo relógio
– os barramentos E/S, operam assíncronamente
• os protocolos usados apoiam-se num relógio adicional
(temporização de bits e gestão da transição de sinais)
• os dispositivos podem não estar prontos (offline)
• os pedidos de acesso aos barramentos partilhados
por vários dispositivos têm de ser arbitrados
65
5.7 Subsistemas de E/S
- Operaçção de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– três barramentos: dados, endereços e controlo

Address
Data

Control

66
5.7 Subsistemas de E/S
// - Operação de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– 1) controlador DMA: coloca no bus de endereços o identificador
do controlador do disco e ativa as linhas Request e Write

67
5.7 Subsistemas de E/S
// - Operação de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– 2) controlador do disco: em resposta ao sinal de Request,
inspeciona o bus de endereços; o endereço detetado coincide
com o seu; logo, se o disco está disponível, ativa-se a linha
Ready no bus de controlo (handshake concluído)

68
5.7 Subsistemas de E/S
// - Operação de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– 3) controlador DMA: coloca os dados no bus de dados e
desativa a linha Request

69
5.7 Subsistemas de E/S
// - Operação de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– 4) controlador do disco: transfere os dados do bus de dados
para o buffer do disco e desativa a linha Ready

70
5.7 Subsistemas de E/S
// - Operação de Barramentos E/S
• exemplo: interação control. DMA ↔ control. do disco
– diagrama temporal para a operação de escrita anterior

- as linhas podem mudar só nas


transições do relógio do bus

- as linhas não mudam instanta-


neamente (há um settle time)

71
Conclusões

• a memória do computador está organizada numa


hierarquia, com a memória de menor capacidade e
melhor tempo de acesso no topo dessa hierarquia
• uma cache da CPU faz corresponder blocos de memória
principal a blocos da própria cache, com objetivo de
reduzir o tempo de acesso a dados e instruções
• existem 3 tipos fundamentais de cache: de correspon-
dência direta, associativa e associativa por conjuntos
• nas caches associativas e associativas por conjuntos,
são necessárias políticas de substituição; nestas podem
ser usados os algoritmos LRU, FIFO e LFU; é também
necessário ter em conta os blocos alterados
72
Conclusões

• discos magnéticos: a principal forma de armaze-


namento permanente; as suas métricas de de-
sempenho incluem: tempo de posicionamento,
atraso de rotação e estimativas de fiabilidade
• discos de memórias FLASH (SSDs): oferecem
desempenhos muito superiores aos dos discos
magnéticos, mas têm < capacidade e são + caros
• discos óticos: armazenamento económico para
grandes quantidades de dados; acesso lento
• a E/S pode ser programada, baseada em
interrupções, ou baseada em DMA
73
Referências

• livro ECOA – Capítulos 6 e 7

74

Você também pode gostar