Páginas

quinta-feira, 1 de julho de 2010

A Matemática e a Informática

Números Binários
O sistema binário de computação já era conhecido na China uns 3000 a.C., de acordo com os manuscritos da época. Quarenta e seis séculos depois, Leibniz redescobre o sistema binário.Este sistema de numeração binário é muito importante, na medida em que, modernamente, é de largo alcance por ser utilizado nas calculadoras eletrônicas, computadores e nas estruturas que envolvem relações binárias. Este sistema pode ser chamado sistema de base dois, binário ou dual, o qual utiliza apenas dois algarismos, o 0 e o 1.
Vamos aprender a transformar um número no sistema decimal para o sistema binário.
Devemos fazer a divisão( sem usar a calculadora) do número por 2 (sempre dois,pois o sistema é binário)o resto será 0 ou 1,devemos fazer essa divisão até obter quociente 1.
Exemplo.Represente o número 45 no sistema binário:
45:2=22 resto 1
22:2=11 resto 0
11:2=5 resto 1
5:2= 2 resto 1
2:2= 1 resto 0
O número binário será 1mais todos os restos das divisões de baixo para cima,ou seja, 0, 1,1,0 e 1.
Portanto:
45→101101

Outro exemplo:
Transforme o número 141 no sistema binário e faça o processo inverso.
141:2=70 resto 1
70 : 2 = 35 resto 0
35 : 2= 17 resto 1
17 : 2 = 8 resto 1
8 : 2 = 4 resto 0
4 : 2 = 2 resto 0
2 : 2 = 1 resto 0
Então 141→ 10001101

Agora vamos fazer o processo inverso:
O algarismo da unidade do número binário será multiplicado por 2 elevado a zero,o da dezena será multiplicado por 2 elevado a 1,o da centena por 2 elevado ao quadrado e assim por diante.
Acompanhe:
1.2°=1.1=1
0.2¹=0.2=0
1.2²=1.4=4
1.2³=1.8=8
0.2^4=0.16=0
0.2^5=0.32=0
0.2^6=0.64=0
1.2^7=1.128=128
Somando os resultados 128+0+0+0+8+4+0+1=141

quinta-feira, 17 de junho de 2010

Memórias SDR-SDRAM

Tanto as memórias FPM quanto as memórias EDO são assíncronas, o que significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placa-mãe. Isso explica porque memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 funcionam sem problemas em placas soquete 7, que trabalham a 66 MHz. Na verdade, a memória continua trabalhando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais altos. Assim, em vez de responder a cada 2 ciclos da placa-mãe, elas podem passar a responder a cada 3 ou 4 ciclos, por exemplo.
As memórias SDRAM (Synchronous Dynamic RAM) por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempos de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da frequência de barramento utilizada, os tempos de acesso serão sempre de 6-1-1-1, ou mesmo 5-1-1-1.
Veja que o primeiro acesso continua tomando vários ciclos, pois nele é necessário realizar o acesso padrão, ativando a linha (RAS) e depois a coluna (CAS). Apenas a partir do segundo acesso é que as otimizações entram em ação e a memória consegue realizar uma leitura por ciclo, até o final da leitura.
O burst de leitura pode ser de 2, 4 ou 8 endereços e existe também o modo "full page" (uma novidade introduzida nos módulos SDRAM), onde o controlador pode especificar um número qualquer de endereços a serem lidos sequencialmente, até um máximo de 512. Ou seja, em situações ideais, pode ser possível realizar a leitura de 256 setores em 260 ciclos! Só para efeito de comparação, se fossem usadas memórias regulares, com tempos de acesso similares, a mesma tarefa tomaria pelo menos 1280 ciclos.
Outra característica que ajuda as memórias SDRAM a serem mais rápidas que as EDO e FPM é a divisão dos módulos de memória em vários bancos. Um módulo DIMM pode ser formado por 2, 4, ou mesmo 8 bancos de memória, cada um englobando parte dos endereços disponíveis. Apenas um dos bancos pode ser acessado de cada vez, mas o controlador de memória pode aproveitar o tempo de ociosidade para fazer algumas operações nos demais, como executar os ciclos de refresh e também a pré-carga dos bancos que serão acessados em seguida. Nos módulos EDO e FPM, todas essas operações precisam ser feitas entre os ciclos de leitura, o que toma tempo e reduz a frequência das operações de leitura.
A partir das memórias SDRAM, tornou-se desnecessário falar em tempos de acesso, já que a memória trabalha de forma sincronizada em relação aos ciclos da placa-mãe. As memórias passaram então a ser rotuladas de acordo com a frequência em que são capazes de operar. No caso das memórias SDR-SDRAM temos as memórias PC-66, PC-100 e PC-133, no caso das DDR-SDRAM temos as DDR-200, DDR-266, DDR-333, DDR-400 (e assim por diante), enquanto nas DDR2 temos as DDR2-533, DDR2-666, DDR2-800, DDR2-1066, que foram sucedidas pelos padrões de memórias DDR3.
Um módulo de memória PC-133 deve ser capaz de operar a 133 MHz, fornecendo 133 milhões de leituras (teóricas) por segundo. Entretanto, essa velocidade é atingida apenas quando o módulo realiza um burst de várias leituras. O primeiro acesso continua levando 5, 6 ou mesmo 7 ciclos da placa-mãe, como nas memórias antigas.
Ou seja, o fato de ser um módulo PC-100 não indica que ele possua um tempo de acesso de 10 ns ou menos (nem mesmo os módulos DDR3 atuais atingem essa marca). Pelo contrário, a maioria dos módulos PC-100 trabalhavam com tempos de acesso de 40 ns. Entretanto, graças a todas as otimizações que vimos, as leituras podiam ser paralelizadas, de forma que, no final, o módulo suporta bursts de leitura onde, depois de um lento ciclo inicial, ele consegue realmente entregar 64 bits de dados a cada 10 ns.
Independentemente da frequência de operação, temos também os módulos CL2 e CL3, onde o "CL" é abreviação de "CAS latency", ou seja, o tempo de latência relacionado ao envio do valor CAS, durante o primeiro acesso de cada burst.
Em módulos CL2, o envio do valor CAS toma 2 ciclos, enquanto nos CL3 toma 3 ciclos. A eles, somamos um ciclo inicial e mais dois ciclos relacionados ao envio do valor RAS, totalizando 5 (nos módulos CL2) ou 6 (nos CL3) ciclos para o acesso inicial. Entretanto, a diferença prática acaba sendo pequena, pois os acessos seguintes demoram sempre apenas um ciclo.
Um módulo CL2 realizaria um burst de 8 leituras em 12 ciclos (5-1-1-1-1-1-1-1), enquanto o CL3 demoraria 13 ciclos (6-1-1-1-1-1-1-1). Ou seja, embora os módulos CL2 tenham sido celebrados e sejam alvo de um grande esforço de marketing por parte dos fabricantes, a diferença de performance era muito pequena para justificar a diferença de preço.
Veja que das memórias regulares, até as SDRAM, foi possível multiplicar a velocidade de transferência sem fazer alterações fundamentais nas células, que continuam seguindo o mesmo projeto básico, com um transístor e um capacitor para cada bit armazenado. Desde a década de 80, as reduções nos tempos de acesso foram apenas incrementais, acompanhando as melhorias nas técnicas de fabricação. O que realmente evoluiu com o passar do tempo foram os circuitos em torno dos módulos, que otimizaram o processo de leitura, extraindo mais e mais performance.
Chegamos então às memórias DDR, DDR2 e DDR3 usadas atualmente, que levam este processo crescente de otimização a um novo nível, permitindo que o módulo de memória realize várias transferências por ciclo, multiplicando a frequência efetiva.

Memórias EDO

As memórias EDO (Extended Data Output) foram introduzidas a partir de 1994 e trouxeram mais uma melhoria significativa no modo de acesso a dados. Nas memórias FPM, uma leitura não pode ser iniciada antes que a anterior termine, mesmo dentro do burst de 4 leituras dentro da mesma linha. O controlador precisa esperar que os dados referentes à leitura anterior cheguem, antes de poder ativar o endereço CAS seguinte.
Nas memórias EDO, o controlador faz a leitura enviando o endereço RAS (como de costume) e em seguida enviando os 4 endereços CAS em uma frequência predefinida, sem precisar esperar que o acesso anterior termine. Os sinais chegam às células de memória na sequência em que foram enviados e, depois de um pequeno espaço de tempo, o controlador recebe de volta as 4 leituras.
O resultado acaba sendo exatamente o mesmo, mas passa a ser feito de forma mais rápida. Usadas em uma placa soquete 7, operando a 66 MHz, as memórias EDO são capazes de trabalhar com tempos de acesso de apenas 6-2-2-2, ou mesmo 5-2-2-2 (nos módulos de 60 ns). Nos bursts de 8 ou mais leituras, o ganho acaba sendo ainda maior, com o módulo FPM realizando a leitura dos 8 endereços em 27 ciclos (6-3-3-3-3-3-3-3) e o EDO em 20 (6-2-2-2-2-2-2-2). Veja que o ganho é maior em leituras de vários endereços consecutivos, por isso alguns aplicativos se beneficiavam mais do que outros.
Os módulos de memória EDO foram produzidos em versões com tempos de acesso de 70, 60 e 50 ns, com predominância dos módulos de 60 ns. Eles foram usados predominantemente na forma de módulos de 72 vias, usados nos micros 486 e Pentium fabricados a partir de 1995.
Existiram ainda alguns módulos DIMM de 168 vias com memória EDO. Eles foram bastante raros, pois foram logo substituídos pelos módulos de memória SDRAM.
As melhorias na arquitetura das memórias EDO tornaram-nas incompatíveis com placas-mãe equipadas com chipsets antigos. Basicamente, apenas as placas para processadores Pentium e algumas placas-mãe para 486 com slots PCI (as mais recentes) aceitam trabalhar com memórias EDO. Existem também placas para 486 "tolerantes" que funcionam com memórias EDO, apesar de não serem capazes de tirar proveito do modo de acesso mais rápido, e finalmente, as placas incompatíveis, que nem chegam a inicializar caso sejam instaladas memórias EDO.
Todos os módulos de 30 vias são de memórias FPM, enquanto (com exceção de alguns módulos antigos) todos os de 168 vias são de memórias SDRAM. A confusão existe apenas nos módulos de 72 vias, que podem ser tanto de memórias EDO quanto de memórias FPM. Para saber quem é quem, basta verificar o tempo de acesso. Todo módulo de memória traz seus dados estampados nos chips, na forma de alguns códigos; o tempo de acesso é indicado no final da primeira linha. Se ela terminar com -7, -70, ou apenas 7, ou 70, o módulo possui tempo de acesso de 70 ns. Se por outro lado a primeira linha terminar com -6, -60, 6 ou 60 o módulo é de 60 ns.
Como quase todos os módulos de 70 ns são de memórias FPM, e quase todos os módulos de memórias EDO são de 60 ns, você pode usar esse método para determinar com 95% de certeza o tipo de memória usada:
m29588999