• Nenhum resultado encontrado

ARQUITECTURA DE COMPUTADORES CAPÍTULO V AULA III

N/A
N/A
Protected

Academic year: 2021

Share "ARQUITECTURA DE COMPUTADORES CAPÍTULO V AULA III"

Copied!
30
0
0

Texto

(1)

ARQUITECTURA DE

COMPUTADORES

CAPÍTULO V

AULA III

(2)

Índice

• Hierarquia de memória

• Fiabilidade e disponibilidade • Detecção e correcção de erros

• Memória Virtual

(3)

Hierarquia de Memória

• Nas aulas anteriores vimos como é que a hierarquia de memória funciona, considerando-a quase como infalível.

• Porém, as memórias não são infalíveis e como tal devem ser

implementados mecanismos de redundância e recuperação de erros. • Para tal devemos começar por definir o que é uma falha.

(4)

Hierarquia de Memória

• Considere-se dois estados:

1. Serviço concluído 2. Serviço interrompido

• A passagem do estado 1 para o estado 2 constituí uma falha. • A passagem inversa, do estado 2 para o estado 1 constitui um

restauro.

• As falhas podem ser permanentes ou intermitentes.

• Falhas permanentes são fáceis de detectar. • Falhas intermitentes são difíceis de detectar.

(5)

Hierarquia de Memória

• O conceito de falhas e redundância leva a outros dois conceitos: • Disponibilidade

• Fiabilidade

• A fiabilidade é medida pelo tempo continuo durante o qual todo o serviço é concluído.

• Mean Time To Failure (MTTF) é a métrica utilizada.

• Annual Fair Rate (AFR) é a percentagem de dispositivos que se espera que falhem num ano, considerando um determinado MTTF.

(6)

Hierarquia de Memória

• Actualmente, os discos rígidos anunciam qualquer coisa como 1 000 000 horas MTTF.

• Ou seja, 1 000 000 /(24 * 365) = ~114 anos (garantia vitalícia)

• No entanto, se considerarmos um conjunto de 50 000 servidores com 2 discos cada, qual será a média de falhas por ano?

• 24 * 365 = 8760 horas / 1 000 000 = 0.876%

• Em 50 000 x 2 = 100 000 discos, existe a probabilidade de ocorrer uma falha em 876 discos por ano, ou seja, 2.4 discos por dia.

(7)

Hierarquia de Memória

• Sempre que ocorre uma falha, existe interrupção do serviço.

• Essa interrupção é medida pelo

mean time to repair

(MTTR)

(tempo médio para recuperar).

• O tempo médio entre falhas

(mean time between

failures - MTBF)

é a soma do MTTF com o MTTR. • Assim, a disponibilidade é calculada segundo a

seguinte formula:

Segurança

Disponibilidade =

𝑀𝑇𝑇𝐹

(8)

Hierarquia de Memória

• A fiabilidade e a disponibilidade são mais do que

meros substantivos. São características mensuráveis. • A disponibilidade deverá ser a máxima possível,

sendo a mesma caracterizada atribuindo a técnica dos nove.

• Considerando os 365 dias/ano e os 520 000 minutos contidos nos mesmos:

1 nove : 90% = 36,5 dias em reparação/ano 2 noves: 99% = 3,65 dias em reparação/ano

3 noves: 99,9% = 526 minutos em reparação/ano 4 noves: 99,99% = 52,6 minutos em reparação/ano 5 noves: 99,999% = 5,26 minutos em reparação/ano etc…

(9)

Hierarquia de Memória

“I cnduo’t bvleiee taht I culod aulaclty uesdtannrd waht I was rdnaieg. Unisg the icndeblire pweor of the hmuan mnid, aocdcrnig to rseecrah at Cmabrigde Uinervtisy, it dseno’t mttaer in waht oderr the lterets in a wrod are, the olny

irpoamtnt tihng is taht the frsit and lsat ltteer be in the rhgit pclae. The rset can be a taotl mses and you can sitll raed it whoutit a pboerlm.

Tihs is bucseae the huamn mnid deos not raed ervey ltteer

by istlef, but the wrod as a wlohe.Aaznmig, huh? Yaeh and I awlyas tghhuot slelinpg was ipmorantt! See if yuor fdreins can raed tihs too.”

– languagehat.com (original source unknown)

(10)

Hierarquia de Memória

• É comum que a ordem dos bits seja trocada durante

transmissões. Por exemplo, podem ser transmitidos os bits 1101001, mas o receptor receber 0101011.

• Se adicionarmos redundância conseguimos detectar e talvez corrigir alguns erros deste tipo.

• A abordagem mais simples será repetir cada bit, ou seja, se enviamos o bit x, passamos a enviar xx. Assim, caso os bits sejam diferentes, sabemos que ocorreu um erro.

• Outra abordagem é transmitir não duas vezes, mas três vezes cada bit, ou seja, em vez de x, transmitir xxx. Detecção de erros

(11)

Hierarquia de Memória

• Diz-se que uma sequência de bits é impar sempre que o número de 1s for impar.

• Em contrapartida, diz-se que uma sequência é par, sempre que o número de 1s for par.

• 0110011 ou 0100010 são sequências pares • 0100000 ou 0111000 são sequências impares

• Exemplo: Considere-se a transmissão de w = 100011,

utilizando-se um bit de paridade α, onde wα = 1000111.

• Assumindo que o bit de paridade alinhava sempre a transmissão a uma sequência par, se o resultado recebido fosse impar significava que tinha existido um erro, e pedia-se retransmissão.

(12)

Hierarquia de Memória

• Sempre que um bloco

w

α de paridade impar contem um número par de bits errados, não é possível detectar o erro.

• Seja

p

a probabilidade de um bit estar errado, a

probabilidade de ocorrer um

flip

entre dois bits de uma sequência é dada por:

𝑛 2 𝑝

2(1 − 𝑝)𝑛−2

Detecção de erros – Single Parity Check Code

A probabilidade de cada bit estar errado.

A probabilidade dos

(13)

Hierarquia de Memória

• Os blocos de bits são organizados em linhas e colunas, ou seja, matrizes m x n.

• O bit de paridade de cada linha é calculado e acoplado a cada linha antes da transmissão.

• A paridade de cada coluna e o bit de paridade da matriz são também calculados previamente e transmitidos.

• Assim, são calculados m x n + 1 bits de paridade • E, são transmitidos mn x m x n +1 bits.

Detecção de erros – 2D Parity Check

1 1 0 0 0

1 0 1 1 1

0 1 1 1 1

(14)

Hierarquia de Memória

• Uma técnica mais avançada do que os bits de

paridade, é a inserção de checksums para detectar erros.

• Uma forma mais básica de checksum é somar toda a word e concatenar o resultado à mesma.

• Existem checksums bem conhecidos tais como:

• CRC - Cyclic Redundancy Check • MD5 – Message Digest 5

Detecção de erros – Checksums

(15)

Hierarquia de Memória

• Inventado por Richard Hamming, a técnica da

distância de hamming permite detectar erros em sequências de bits transmitidas, conseguindo, ao contrário das técnicas de paridade, corrigi-los. • Distância de Hamming é igual ao número de bits

distintos entre duas cadeias.

Detecção de erros – Distância de Hamming

0 1 0 0 1 0

1 1 0 0 0 1

(16)

Hierarquia de Memória

• Considere o seguinte código:

Detecção de erros – Distância de Hamming

A 0 0 0 0 0 0 B 0 0 1 1 1 1 C 0 1 0 0 1 1 D 0 1 1 1 0 0 E 1 0 0 1 1 0 F 1 0 1 0 0 1 G 1 1 0 1 0 1 H 1 1 1 0 1 0 A distância mínima entre cada sequência é no mínimo 3.

• Significa que consigo detectar e corrigir 1 bit. • Significa que consigo detectar 2 bits mas não

consigo corrigir.

• Significa que não consigo nem detectar nem corrigir mais que 2 bits errados.

(17)

Hierarquia de Memória

• Considere o seguinte código:

Detecção de erros – Distância de Hamming

A 0 0 0 0 0 0 B 0 0 1 1 1 1 C 0 1 0 0 1 1 D 0 1 1 1 0 0 E 1 0 0 1 1 0 F 1 0 1 0 0 1 G 1 1 0 1 0 1 H 1 1 1 0 1 0

Se recebermos a sequência 011000 detectamos que existe um erro e dada a distância mínima, vemos que a sequência D (distância = 1) é a mais adequada.

A técnica da distância de Hamming é utilizada nas memórias ECC – Error Correction Code, ou

(18)

Índice

• Hierarquia de memória

• Fiabilidade e disponibilidade • Detecção e correcção de erros

• Memória Virtual

(19)

Memória Virtual

• Tal como vimos que a cache servia de suporte

intermédio entre os registos e a memória principal, também a memória principal pode servir de cache

entre esta e os discos rígidos.

• A esta técnica é chamada memória virtual.

• Historicamente, existem duas razões principais para utilizar memória virtual:

1. Para permitir a partilha de recursos entre programas diferentes, tal como acontece entre diferentes máquinas virtuais presentes hoje em dia na cloud.

2. Para agilizar a programação, permitindo ultrapassar o limite físico de memória principal.

(20)

Memória Virtual

• A partilha de recursos obriga a que cada

programa/máquina virtual tenha os seus recursos bem definidos, de modo a proteger as leituras e

escritas.

• No entanto, essa definição é dinâmica, variando em

runtime

de máquina virtual para máquina virtual.

• Dada tamanha flexibilização é necessário compilar cada programa para um excerto de memória próprio, que depois será transcrito pela memória virtual, para endereços físicos.

(21)

Memória Virtual

• O processo de transcrição obriga a um sistema de protecção.

• O sistema de protecção previne que ocorram

iteracções, intencionais ou não, entre processos que partilham o mesmo processador, memória, I/O,

(22)

Memória Virtual

• A segunda razão para utilizar memória virtual é

permitir a utilização de mais memória do que a que realmente existe fisicamente.

• Esta agilização torna-se possível ao construir

blocos de memória virtual de grandes dimensões, que na prática são constituídos por memória física DRAM e pelos discos rígidos.

• Ao funcionar como cache, a DRAM, permite que não se note problemas de performance.

(23)

Memória Virtual

• Um bloco de memória virtual é chamado

page.

• Um miss em memória virtual é chamado

page fault.

• A memória virtual está organizada em endereços

virtuais que depois são traduzidos para endereços físicos através de um processo de mapeamento de endereços.

(24)

Memória Virtual

• Em memória virtual um endereço é divido em

virtual

page number

e

page offset.

(25)

Índice

• Hierarquia de memória

• Fiabilidade e disponibilidade • Detecção e correcção de erros

• Memória Virtual

(26)

Paralelismo e Hierarquia

• Com o aumento do número de processadores, surgiu um novo problema de coerência nos dados entre as caches e a memória

.

• Dado que a memória é uma só, é muito fácil

diferentes processadores operarem sobre os mesmos

endereços, mantendo incoerência nos dados, tanto nas caches como na DRAM.

(27)

Paralelismo e Hierarquia

• Assim, podemos assumir que existe coerência nos dados quando:

1.O processador P1 escreve para X e depois lê X, sem que entretanto X tenha sido rescrito por outro

processador.

2.O processador P1 escreve para X e, seguidamente o processador P2 lê X, garantindo que lê os últimos dados escritos por P1.

3.As escritas para a mesma localização são

serializadas, ou seja, a ordem de escrita é vista igualmente por todos os processadores.

(28)

Paralelismo e Hierarquia

• Num sistema multiprocessador com coerência de caches, estas fornecem mecanismos de migração e replicação de dados partilhados.

• Manter os dados partilhados entre processadores coerentes é de tal forma importante, que estes implementam um protocolo próprio para o efeito, conhecido como

protocolo de coerência de cache

.

• O protocolo mais conhecido para manter a coerência de caches é o protocolo de

snooping

(bisbilhotar).

• Para cada bloco na cache, é guardada a informação se esse bloco está partilhado com outras caches ou não.

• Os controladores de caches bisbilhotam as caches em modo broadcast para verificar se determinado bloco está

partilhado ou não.

(29)

ARQUITECTURA DE COMPUTADORES

MATÉRIA CONCLUÍDA

OBRIGADO PELA ATENÇÃO PRESTADA DURANTE O

SEMESTRE

BOM ESTUDO

RMS

(30)

Dúvidas e Questões

Ricardo Mendão Silva

Junho 2014

[email protected]

Referências

Documentos relacionados

Este projeto teve como objetivo a expressão do gene L1 de HPV 18 e HPV 33 em células da levedura Pichia pastoris para a produção de virus-like particles VLPs... - Clonagem do gene L1

O trabalho concreto se volta para a produção de bens e para a satis- fação das necessidades humanas, colaborando com a realização do indivíduo enquanto criador e transformador do

A fim de complementar essas informa- ções, realizamos pesquisa etnobiológica (ALBUQUERQUE; ALVES, 2016) através de  observações em campo, entrevistas

Despite its relevance, participation in management is restricted by institutional obstacles, including: (i) the divergence of opinion among environmental managers of the ESEC

DF1 continues to focus on social inequality in Category 1 with 23 DSs, but the category about “the photo” appears more important according to the DFs that object to making a

No capítulo seguinte será formulado o problema de programação não linear e serão apresentadas as técnicas de penalização para tratar os problemas com restrições gerais