Arquiteturas Não Convencionais de Computadoresif674/arquivos/2019.1/Aulas/entrada... · 2019. 6....

Post on 02-Mar-2021

2 views 0 download

Transcript of Arquiteturas Não Convencionais de Computadoresif674/arquivos/2019.1/Aulas/entrada... · 2019. 6....

Arquiteturas Não Convencionais

de Computadores

Interligando Processador e Periféricos

Roteiro da Aula

• Sistema de Entrada/Saída– Conceitos básicos

• Discos

• Barramento– Características

– Sincronização

– Arbitragem

• Implementando Entrada/Saída– Suporte do S.O.

– Suporte do processador

– Tipos de Entrada/Saída

• Projetando um sistema de Entrada/Saída

• Resumo

Sistema de E/S

• Dependentes da tecnologia

• Considerações de projeto:

– a possibilidade de expandir o sistema

– o comportamento no caso de falhas

– o desempenho

Sistema de E/S

Main

memory

I/O

controller

I/O

controller

I/O

controller

Disk Graphics

output

Network

Memory– I/O bus

Processor

Cache

Interrupts

Disk

Sistema de E/S

• Desempenho

– tempo de acesso (latência)

– taxa de transferência (throughput)

– Dependência:

• características do dispositivo

• conexão com o sistema

• hierarquia de memória

• sistema operacional (software de I/O)

Desempenho com E/S

• Aplicação:

– tempoexecução=100 seg

– CPU = 90 seg, E/S = 10 seg

– tempoexecução= tempoCPU+ tempoE/S

• desempenho da CPU melhora de

50% a cada ano e o do sistema de

E/S não

– tn=to/(1+c)n

• Quanto mais rápida será a aplicação

daqui a 5 anos?

Desempenho com E/S

N anos TempoCPU TempoE/S Tempototal % tempoI/O

0 90 10 100 10

1 90/1.5=60 10 70 14

2 40 10 50 20

3 27 10 37 27

4 18 10 28 36

5 12 10 22 45

Melhora do DesempenhoCPU=7.5

Melhora do TempoTotal=4.5

Desempenho de E/S

• Métricas

– depende da aplicação

• Taxa de transferência

– Quantidade de dado transferido

– Quantidade de operações de E/S

• Tempo de resposta

Dispositivos de E/S

• Comportamento

– Entrada (read once)

– Saída (write only)

– Armazenamento( Podem ser re-lidos e re-

escritos)

• Taxa de Transferência de Dados

Dispositivos de E/S

Flash Storage

• Armazenamento de semicondutores não

voláteis

– 100 × - 1000 × mais rápido que o disco

– Menor, menor potência, mais robusto

– Mas mais $ / GB (entre disco e DRAM)

Flash Types

• Flash NOR: bit como a porta NOR

– Acesso aleatório de leitura / gravação

– Usado para armazenamento deinstrução em sistemas

embarcados

• Flash NAND: célula bit como porta NAND

– Maior densidade (bits / área), mas acesso de bloco por

vez

– Mais barato por GB

– Usado para chaves USB, armazenamento de mídia, ...

Disk Storage

• Armazenamento magnético rotativo não

volátil

Disk Drivers:Terminologia

• Vários pratos, com a informação armazenada magneticamente

em ambas superfícies (usual)

• O Atuador move a cabeça (fim do braço,1/superfície) sobre a trilha (“seek”), seleciona a superfície, espera pelo setor passar sob a cabeça, então lê ou

escreve

– “Cilindro”: todas as trilhas sob as cabeças

• Bits armazenados em trilhas, que por sua vez são divididas em setores(e.g., 512 Bytes)

Platter

Outer

Track

Inner

TrackSector

Actuator

HeadArm

Foto: Braço, Cabeça, Atuador e Pratos

Atuador

BraçoCabeça

Pratos (12)

Eixo

Platter

Track

Platters

Sectors

Tracks

Discos magnéticos

• # discos: 1-15 (2 lados)

• rotação: 3600 - 7200 rpm

• diâmetro: 1-8 inch

• # trilhas: 1000-5000

• # setores: 64-200

• setor: 512 bytes

Discos magnéticos

• Acesso:

– posicionamento da cabeça leitura/escrita

• seek time (mínimo, máximo, médio)

– seleção do setor

• rotational delay (médio)

• ARD = 0.5/3600 RPM = 0.5/3600/60=8.3ms

– tempo de transferência

• depende do tamanho do setor, rotação e

capacidade de armazenamento da trilha

• 1997: 2 - 15 MB/seg

• cache de disco: 40 MB/seg

Discos magnéticos

• Calculando tempo de leitura:

– Qual o tempo para ler um setor de um disco

rotacionando a 10000 rpm?

• Seek time = 6ms (médio)

• Taxa = 50 MB/seg

• Overhead controle = 0,2ms

Tempo = seek + rotational + transferencia + overhead

Tempo =6ms + 0.5/(10000/60) + 0.5KB/(50MB/seg) + 0,2ms

Tempo =6ms +3 + 0.1+ 0,2ms=9,2ms

Discos / História

1973:

1. 7 Mbit/pol2

140 MBytes

1979:

7. 7 Mbit/pol2

2,300 MBytes

source: New York Times, 2/23/98, page C3,

“Makers of disk drives crowd even more data into even smaller spaces”

1

10

100

1000

10000

1970 1980 1990 2000

Year

Are

al D

en

sit

y

Discos: história

1989:

63 Mbit/pol2

60,000 MBytes

1997:

1450 Mbit/pol2

2300 Mbytes

(2.5” diâmetro)source: N.Y. Times, 2/23/98, page C3

1997:

3090 Mbit/p2.

8100 Mbytes

(3.5” diâmetro)

2000:

10,100

Mb/p2

25,000

MBytes

2000:

11,000

Mb/p2

73,400

MBytes

Discos

Discos

Sistemas de Armazenamento

Confiabilidade e Disponibilidade

Infra-estrutura de Hardware

Confiabilidade e Disponibilidade

Confiança, confiabilidade e Disponibilidade

• Confiança = qualidade de serviço

1. Especificação do serviço

• Serviço entregue como especificado

2. Interrupção do serviço

• Serviço entregue é diferente do especificado

• Transições de 1 para 2: falhas

• Transições de 2 para 1: restauração

Infra-estrutura de Hardware

Service accomplishment

Service delivered

as specified

Service interruption

Deviation from

specified service

FailureRestoration

Confiança, confiabilidade e Disponibilidade

• Fault: falha de

componente

– Pode levar ou não a

uma falha no sistema

Confiança, confiabilidade e Disponibilidade

• Confiabilidade =

– Medida da realização continua do serviço

– Tempo para a falha (MTTF)

• Interrupção do serviço

– Tempo médio para reparo (MTTR)

• Tempo médio entre falhas (MTBF)

– MTBF = MTTF + MTTR

Confiança, confiabilidade e Disponibilidade

• Disponibilidade: medida de realização

de um serviço:

– Disponibilidade= MTTF / (MTTF + MTTR)

Confiança, confiabilidade e Disponibilidade

• Para aumentar a MTTF, deve-se melhorar a qualidade dos componentes ou projetar o sistema para continuar operando no caso de falha.

– Fault avoidance: previne a ocorrência de falha por construção

– Fault tolerance: uso de redundancia ou bypass de componentes com falhas.

– Detecção da Falha vs. correção da Falha

– Falhas permanentes vs. Faltas transientes

RAIDs: Disk Arrays

• Arrays de discos pequenos e baratos

– Aumento da taxa de transferência

• Dado espalhado sobre múltiplos discos

• Acessos múltiplos são feitos a vários discos simultâneamente

• Reliability é menor que num disco UNICO

• MAS availability pode ser melhorada pela adição de

discos redundantes(RAID)

– Informação perdida pode ser recuperada através da informação

redundante

– MTTR: tempo de reparo é da ordem de horas

– MTTF: tempo para acontecer uma falha é dezenas de anos.

Redundant Array of

Inexpensive Disks

RAID: Level 0 (No Redundancy; Striping)

• Discos pequenos múltiplos em vez de um grande disco

– Espalhamento de blocos sobre discos múltiplos– striping –

significa que múltiplos blocos podem ser acessados em paralelo

aumentando o desempenho.

• Um sistema de 4 discos resulta em uma taxa 4X maior que a de

um disco único.

– Mesmo custo que um disco grande

• Nenhuma redundancia, e se um disco falhar?

– Falha em um ou mais discos é mais provável a medida que o

número de discos aumenta.

blk1 blk3blk2 blk4

RAID: Level 1 (Redundancy via Mirroring)

• Use o dobro de discos de RAID 0 (e.g., 8 pequenos

discos com um segundo conjunto de 4 duplicata de

primeiro conjunto) existe uma cópia do dado.

– # discos redundantes = # de discos de dados – então o custo

duplica

• Escrita deve ser feita em ambos conjunto então o desempenho cai

pela metade.

• E se um disco falha?

– O sistema acessa o disco “espelho” para acessar o dado.

blk1.1 blk1.3blk1.2 blk1.4 blk1.1 blk1.2 blk1.3 blk1.4

redundant (check) data

RAID: Level 2 (Redundancy via ECC)

blk1,b0 blk1,b2blk1,b1 blk1,b3Checks 4,5,6,7

Checks 2,3,6,7

Checks 1,3,5,7

3 5 6 7 4 2 1

10 0 0 11

ECC disks

0

ECC discos 4 e 2 aponta para o disco 6 ou 7,

MAS disco ECC disco 1 informa que disco 7 está OK, então disco 6 deve ter

falha.

1

Arquiteturas Não Convencionais

de Computadores

• ECC discos contem a paridade de um conjunto de discos

diferentes e com sobreposição

– # discos redundantes = log (# total de discos de dado) quase o

dobro do custo de um disco grande.

• Escrita requer computar a paridade para escrever nos discos ECC

• Leitura requer ler disco ECC e confirmar a paridade.

• Pode tolerar falha limitada, desde que o dado pode ser

reconstruído.

RAID: Level 3 (Bit-Interleaved Parity)

blk1,b0 blk1,b2blk1,b1 blk1,b3

10 01

(odd)

bit parity disk

Arquiteturas Não Convencionais

de Computadores

• Custo de alta disponibilidade é reduzido a 1/N onde N é

o número de discos em um protection group

– # discos redundantes = 1 × # grupos de proteção

• Escrita requer escrita do dado no disco de dado assim como

computar a paridade (leitura de outros discos)

• Pode tolerar falha limitada desde que o dado pode ser

reconstruído.• Leitura requer a leitura de todos os discos operacionais assim

como o disco de paridade para calcular o dado desaparecido que

estava armazenado no disco com falha.

RAID: Level 3 (Bit-Interleaved Parity)

• Custo de alta availability é reduzido a 1/N onde N é o

número de discos em um protection group

– # discos redundantes = 1 × # grupos se proteção

• Escrita requer escrita do dado no disco de dado assim como

computar a paridade (leitura de outros discos)

• Pode tolerar falha limitada desde que o dado pode ser

reconstruído.• Leitura requer a leitura de todos os discos operacionais assim

como o disco de paridade para calcular o dado desaparecido que

estava armazenado no disco com falha.

blk1,b0 blk1,b2blk1,b1 blk1,b3

10 0 1

(odd)

bit parity diskdisk fails

1

RAID: Level 4 (Block-Interleaved Parity)

• Custo para maior disponibilidade permanece 1/N mas a paridade é

armazenada como blocos associados com conjuntos de blocos de

dados

– Desempenho 4X maior (striping)

– # discos redundantes = 1 × # de grupos de proteção

– Suporta “small reads” e “small writes” (leituras e escritas que acessam

apenas um disco no grupo de proteção)

• Olhando os bits modificados quando ecrevendo uma nova informação,

necessita apenas mudar bits correspondentes no disco de paridade.

• O disco de paridade deve ser atualizado a cada escrita, tornando-se um

bottleneck.

• Pode tolerar falha limitada desde que o dado pode ser reconstruído

block

parity disk

blk1 blk2 blk3 blk4

RAID 3 vs RAID4

Pequenas Escritas• RAID 3 small writes

New D1 data

D1 D2 D3 D4 P

D1 D2 D3 D4 P

3 leituras e 2

escritas envolvendo todos

os discos

• RAID 4 small writesNew D1 data

D1 D2 D3 D4 P

D1 D2 D3 D4 P

2 leituras e 2 escritas envolvendo apenas dois discos

RAID: Level 5 (Distributed Block-Interleaved

Parity)

• Custo para maior disponibilidade permanece 1/N mas o

bloco de paridade pode ser localizado em qualquer um

dos discos (sem bottleneck para escritas)

– 4X mais desempenho (striping)

– # discos redundantes = 1 × # grupos de proteção

– Suporta “small reads” e “small writes” (leituras e escritas em um

(ou poucos) discos de dados em um grupo de proteção.)

– Permite escrita múltiplas e simultâneas desde que blocos de

paridade não estejam localizados no mesmo disco.

• Pode tolerar falha limitada desde que o dado pode ser

reconstruído

one of these assigned as the block parity disk

Distributing Parity Blocks

• Se distribuirmos os blocos de paridades por todos os

discos, escritas poderão se feitas em paralelo.

1 2 3 4 P0

5 6 7 8 P1

9 10 11 12 P2

13 14 15 16 P3

RAID 4 RAID 5

1 2 3 4 P0

5 6 7 P1 8

9 10 P2 11 12

13 P3 14 15 16

Comparando…

Sistema de E/S

Main

memory

I/O

controller

I/O

controller

I/O

controller

Disk Graphics

output

Network

Memory– I/O bus

Processor

Cache

Interrupts

Disk

Barramentos

CPU Memória I/O

Barramento de endereçosBarramento de dados

Barramento de controle

Vantagens:

-versatilidade

- baixo custo

Desvantagens:

- limita taxa de transmissão

- # de dispositivos

- tamanho do barramento

Disco lendo memória

M e m o r y P r o c e s s o r

C o n t r o l l i n e s

D a t a l i n e s

D i s k s

M e m o r y P r o c e s s o r

C o n t r o l l i n e s

D a t a l i n e s

D i s k s

P r o c e s s o r

C o n t r o l l i n e s

D a t a l i n e s

D i sk s

a

.

b .

c .

M e m o r y

envio endereço

Leitura dos dados

Disco escrevendo em memória

M e m o r y P r o c e s s o r

C o n t r o l l i n e s

D a t a l i n e s

D i s k s

P r o c e s s o r

C o n t r o l l i n e s

D a t a l i n e s

D i s k s

a .

b .

M e m o r y

envio endereço

Escrita dos dados

Tipos de barramentos

Processor Memory

Processor-memory bus

c.

Busadapter

Backplanebus

Busadapter

I/Obus

Busadapter

I/Obus

• Processador Memória

• Backplane (CPU, memória, I/O)

• I/O

Barramento - Temporização

• Barramento síncrono• Este tipo de barramento exige que todo o

tráfego de dados e controle sejasincronizado sob uma mesma base detempo (clock)

• Vantagens:– simplicidade

– desempenho

• Problemas:– dispositivos devem ter a mesma frequência do

clock

– curtas distancias

• Processador-memória

Barramento - Síncrono

Ciclo de leitura

relógio

endereço

dados

MREQ

RD

dados

endereço de memória

T1 T2 T3

T1 - CPU ativa

sinais de controle

e endereço

T2 - Endereço

estável no barra-

mento

T3 - Memória li-

bera dados no

barramento

-Dados são lidos

pela CPU

-CPU desabilita

controle

MREQ - 0

RD - 0

Memória deco-

difica endereço

Memória coloca

dados no barra -

mento de dados

MREQ - 1

RD - 1

Barramento -Temporização

• Barramento assíncrono• Este barramento não possui um relógio mestre. Os

ciclos de barramentos podem ter qualquer duração

e não precisam ser iguais para todas as situações.

• Podem incluir vários dispositivos

• Necessita de protocolo de handshake

• Pode ser longo

• Barramento de I/O

Protocolo de Barramento Assíncrono

7. I/O device vê DataRdy deastivado e desativa Ack

❑ Leitura da memória por um I/O device

I/O device sinaliza requisição ativando ReadReq e colocando addr nas linhas de dados.

12

3

ReadReq

Data

Ack

DataRdy

addr data

4

5

6

7

1. Memória vê ReadReq, lê addr da linha de dados e ativa Ack

2. I/O device vê Ack e desativa ReadReq e linhas de dados

3. Memory vê ReadReq e desativa Ack

4. Quando dado da memória está pronto disponibiliza e ativa DataRdy

5. I/O device vê DataRdy, lê dado e ativa Ack

6. Memória vê Ack, libera linhas de dados e desativa DataRdy

Melhorando o desempenho

• Aumentar barramento de dados

• Separar linhas de dados e endereços

• Transferência em blocos

Maior custo

Maior tempo de resposta

Acessando o barramento

• Mestre do barramento

– inicia e controla todas as requisições ao

barramento

• Quem pode ser mestre?

– Processador

– Dispositivo de I/O

Acesso ao Barramento

• Processador e dispositivos de E/S podem

se tornar mestres

• Necessidade de protocolo

– request

– granted

– bus-release

• Necessidade de esquema de arbitragem

Barramento - Arbitragem

• O que acontece quando dois ou mais

dispositivos querem se tornar mestres do

barramento ao mesmo tempo?

• A arbitragem decide qual mestre terá o controle do

barramento num dado instante

– Arbitragem centralizada

– Arbitragem descentralizada

Barramento - Arbitragem Centralizada

Árbitro PCIDisp.

PCI A

Disp.

PCI B

Disp.

PCI C

Arbitragem no barramento PCI (centralizado)

⎯ Exemplo para três dispositivos

⎯ O árbitro decide qual mestre controla o barramento

⎯ Desvantagem:

⎯dependência do árbitro

Barramento - Arbitragem Híbrido

(centralizada e distribuída)

• Barramento de um nível usando daisy-chaining

• Características

• 1. Todos os dispositivos são ligados em série, assim a permissão, dada

pelo árbitro, pode ou não se propagar através da cadeia.

• 2. Cada dispositivo deve solicitar acesso ao barramento.

• 3. O dispositivo mais próximo do árbitro tem maior prioridade.

Device n

Lowest priority

Device 2Device 1

Highest priority

Busarbiter

Grant

Grant Grant

Release

Request

Barramento - Arbitragem Híbrida

(centralizada e distribuída)

Arbitragem com dois níveis de prioridade

• Características

• 1. Cada dispositivo se liga a um dos níveis de requisição.

• 2. Os dispositivos com tempos mais críticos se ligam aos níveis de

maior prioridade.

• 3. Se múltiplos níveis de prioridade são requeridos ao mesmo

tempo, o árbitro solta a

• permissão apenas para os de prioridade mais alta.

Árbitro

D1 D2 D3 D4

permissão 1

permissão 2

requisição nível 1

requisição nível 2

Barramento - Arbitragem Descentralizada

• Arbitragem distribuída por seleção própria

– múltiplas linhas de requisição

– dispositivos requisitantes determinam quem vai

usar o barramento (prioridade)

– Ex: NuBus (Macintosh)

• Arbitragem distribuída com detecção de

colisão

– requisições independentes

– colisões são detectadas e resolvidas

– Ex: Ethernet

Barramento - Padrões

Firewire USB 2.0 PCI Express Serial ATA Serial

Attached

SCSI

Intended use External External Internal Internal External

Devices per

channel

63 127 1 1 4

Data width 4 2 2/lane 4 4

Peak

bandwidth

50MB/s or

100MB/s

0.2MB/s,

1.5MB/s, or

60MB/s

250MB/s/lane

1×, 2×, 4×,

8×, 16×, 32×

300MB/s 300MB/s

Hot

pluggable

Yes Yes Depends Yes Yes

Max length 4.5m 5m 0.5m 1m 8m

Standard IEEE 1394 USB

Implementers

Forum

PCI-SIG SATA-IO INCITS TC

T10

Executando operações de E/S

• Comunicação com os dispositivos de E/S:

– envio de comandos aos dispositivos

– transferência de dados de/para dispositivos

– análise do status dos dispositivos e da

transmissão

• Interface entre usuário e dispositivo

– Sistema Operacional

Suporte do S.O. a E/S

• Proteção

– garante o acesso a dispositivos/dados para os

quais se tenha permissão

• Abstração (dispositivo)

– possui rotinas específicas com detalhes de

cada dispositivo

• Gerenciamento

– trata as interrupções causadas pelos

dispositivos

• Escalonamento

– controla a utilização de dispositivos

compartilhados entre processos

Software de E/S

• Organizado em camadas

Processo

(usuário)

Rotinas indep.

do dispositivo.

Device drivers

Interrupt

handler

Tradução de símbolos

(dispositivos,tam.etc.)

Código dependente

do dispositivo

Implementando E/S

• Instruções especiais

– Registradores especiais

• status dos dispositivos

• dado a ser recebido/transmitido

– Proteção

• instruções privilegiadas (só podem ser executadas

via S.O.)

Implementando E/S

• E/S mapeada em memória

– Range de endereços de memória para

armazenar status e dados

– Instruções de E/S : instruções de acesso à

memória

– Proteção:

• tradução do endereço

Implementando E/S

• Polling

CPU DISPOSITIVO

1- lê status do disp. 2- envia status

3- Inspeciona status,

se não está pronto va para 1

4- escreve no reg. dado 5- aceita dado,

status=ocupado até escrita

terminada

6- se existe mais dados vá

para 1

Polling

• Vantagens:

– E/S controlada pela CPU

– simplicidade de implementação

– Dispositivos que iniciam E/S:

• Mouse

• Impressora

• Problema:

– CPU fica esperando pelo dispositivo

Polling

• Vantagens:

– E/S controlada pela CPU

– simplicidade de implementação

– Dispositivos que iniciam E/S:

• Mouse

• Impressora

• Problema:

– CPU fica esperando pelo dispositivo

Interrupt-driven I/O

• CPU executa outras instruções enquanto

espera E/S

• Sincronização: interrupção

– disp. E/S está pronto para nova transferência

– operação de E/S terminou

– ocorreu erro

• Vantagem:

– melhor utilização da CPU

• Desvantagem:

– Processador realiza E/S

DMA(transf. autonoma)

• Transferência de blocos de dados

– 80 a 512 bytes

• E/S controlada pelo dispositivo de E/S

– parametros:

• end. memória

• tamanho blocos

• end. Dispositivo

• Interrupção da CPU quando DMA termina

E/S Macintosh 7200

Main

memory

I/O

controller

I/O

controller

Graphics

output

PCI

CDROM

Disk

Tape

I/O

controller

Stereo

I/O

controller

Serial

ports

I/O

controller

Apple

desktop bus

Processor

PCI

interface/

memory

controller

EthernetSCSI

bus

outputinput

Resumindo

• Entrada/Saída

– Desempenho: latência e taxa de transferência

– Dependability

• Discos e RAID

• Barramento

– Síncrono e assíncrono

– Arbitragem

Resumindo

• Implementando operações de E/S

– Software de E/S

– Instruções do processador

• Tipo de E/S

– Polling

– Interrupção

– DMA