Pesquisar neste blog

quinta-feira, 22 de abril de 2010

MP3 o que é, e como surgiu?

Introdução

Segundo os sites de busca, a sigla MP3 (MPEG Audio Layer-3) é um dos assuntos mais pesquisados nestes serviços, perdendo apenas para "sexo". Isso tudo, graças à revolução que o MP3 causou no mundo do entretenimento, principalmente após sua grandiosa fama na internet. Tal revolução simplesmente fez a indústria fonográfica se abalar completamente e travar uma dura resistência contra o formato. Este artigo mostrará um pouco da história do MP3, assim como seu funcionamento, além de dicas de programas para você poder usufruir do MP3, se você já não o faz.
O que é MP3
MP3 é um formato eletrônico que permite ouvir músicas em computadores, com ótima qualidade. Assim como o LP, o K7 e o CD, o MP3 vem se fortalecendo como um popular meio de distribuição de canções. Mas porquê? A questão chave para entender todo o sucesso do MP3 se baseia no fato de que, antes dele ser desenvolvido, uma música no computador era armazenada no formato WAV, que é o formato padrão para arquivo de som em PCs, chegando a ocupar dezenas de megabytes em disco. Na média, um minuto de música corresponde a 10 MB para uma gravação de som de 16 bits estéreo com 44.1 KHz, o que resulta numa grande complicação a distribuição de músicas por computadores, principalmente pela internet. Com o surgimento do MP3 essa história mudou, pois o formato permite armazenar músicas no computador sem ocupar muito espaço e sem tirar a qualidade sonora das canções. Geralmente, 1 minuto de música, corresponde a cerca de 1 MB em MP3.
Sendo assim, não demorou muito para o formato se popularizar e conseqüentemente, deixar as gravadoras preocupadas com seus lucros. O MP3 alcançou um sucesso tão grande que quando as gravadoras se deram conta, o formato já estava presente em milhões de computadores em todo o mundo.
Como surgiu e o funcionamento do MP3
Em 1987, o IIS (Institut Integrierte Schaltungen), na Alemanha, juntamente com a Universidade de Erlangen, começou a trabalhar numa codificação perceptual de áudio para Digital Audio Broadcasting (Transmissão Digital de Áudio). Todo o trabalho resultou num algoritmo de compressão de áudio chamado MPEG Audio Layer-3, que tempos depois ficou conhecido como MP3.
Um dos objetivos da criação deste formato era conseguir reproduzir som com qualidade de CD com uma taxa de compressão razoável. Para gravar um CD, a taxa de gravação (bit rate) é de cerca de 1,4 Megabit por segundo. Em MPEG Audio Layer 1 e 2 (MP1 e MP2), as taxas são de 348 KB/s e 256-192 KB/s respectivamente. O MP3 conseguiu abaixar essa taxa para 128 e 112 KB/s. E mesmo com essa taxa mais baixa, a qualidade sonora foi mantida quase que totalmente. Isto foi possível graças às técnicas de codificação perceptual, que não é uma simples compressão de dados, mas sim, um método que consiste em somente utilizar as freqüências sonoras que são captadas pelo ouvido humano. Uma vez que um padrão de freqüência tenha sido definido para a audição humana, as demais freqüências (que não são captadas pelo homem) podem ser descartadas, já que não há razão para gastar espaço ao armazenar esses dados.
Neste ponto você deve ter percebido que as músicas originais (tanto em CD como nas gravadoras) são diferentes das canções convertidas para o formato MP3, já que trazem "excesso de informação". Falando de grosso modo, o que o MP3 faz é simplesmente "aparar" as músicas, deixando só o que é útil.
MP3 × Gravadoras
Com toda essa sofisticação e com toda a acessibilidade proporcionada pela internet, nada mais natural que o MP3 fizesse um grande sucesso, principalmente após o lançamento de softwares que funcionam como "tocadores" de MP3, como o pioneiro Winamp. Mas, até aí, nada havia sido feito pelas gravadoras, até que a empresa Diamond Multimidia lançou um aparelho (MP3Player) que permitia ao usuário ouvir seus MP3s onde quisesse, como num walkman: tratava-se do Rio. O aparelho despertou a fúrias das gravadoras que logo entrou com processos contra a companhia, sob a alegação de pirataria. Mas após muitas apelações (e uma quantia de dinheiro), a Justiça determinou que o Rio não era um aparelho de gravação digital de áudio, mas apenas um meio de execução de MP3. Após isso, o mercado viu (e vê) o lançamento de vários aparelhos compatíveis com essa tecnologia.
A Era Napster
O americano Shawn Fanning, desenvolveu um software que permitia aos internautas compartilharem MP3 pela internet: o Napster. O programa tornou muito fácil a tarefa de encontrar e baixar MP3 pela rede, pois possibilitou a formação de um enorme acervo de música digital. Isso porque o Napster usava um método totalmente diferente. Não armazenava nada em seus servidores, apenas um índice, que era necessário para a busca de canções. Uma vez que alguém tenha encontrado a música desejada, o download passava a ser feito a partir dos computadores de usuários do serviço que tenham a música armazenada em seu PC. Ou seja, cada computador cadastrado no serviço era ao mesmo tempo cliente e servidor.
Como o Napster proporcionou uma facilidade enorme para encontrar MP3, o serviço logo virou uma verdadeira "febre". A Indústria Fonográfica começou então, uma série de disputas judiciais contra o Napster. Inclusive a banda Metallica, com ações lideradas pelo baterista do grupo, Lars Ulrich, entrou com processos contra o serviço, assim como o cantor de rap Dr. Dre. Após muitas batalhas as gravadoras acabaram vencendo o Napster, que teve que tirar de seu índice todas as canções protegidas por direitos autorais (ou seja, quase todas as músicas), o que praticamente, tirou o serviço de funcionamento.
Mesmo com o Napster fora de jogo, outros sucessores apareceram e permitiram que a troca de músicas entre internautas continuasse.
Programas
Há vários programas bons para executar MP3, tanto para gravar, ouvir, ou fazer seu álbum no computador. Um dos mais usados, é o Winamp, que possui versões gratuitas e pode ser baixado em www.winamp.com. O programa é compatível com vários formatos e tem vários recursos. Um deles é a possibilidade de colocar skins ou peles (efeitos visuais no programa), que podem ser baixado em vários sites. O programa é leve e bastante intuitivo. Possui um gerenciador de listas de MP3 muito prático e que facilita a organização e a execução de faixas.
Para os usuários do sistema operacional Linux, existe um programa muito semelhante ao Winamp (inclusive nos recursos) que acompanha várias distribuições: trata-se do XMMS, cujo site é www.xmms.org.
Outros programas como os players de vídeo Windows Media Player (em versões atuais), o Real Player e o Quick Time, também executam MP3.
Gravação de MP3
O método de gravação de MP3 mais usado é o que consiste em colocar um CD de música no computador e, através de um programa ripper, como o FreeRIP (que pode ser baixado em www.mgshareware.com), converter as faixas do CD para arquivos MP3. Geralmente isso é feito da seguinte forma: o programa passa os dados digitais da canção no formato CD-DA (o formato do CD) e os armazenam num diretório temporário. Depois, esses dados são convertidos para o formato WAV e, em seguida, são comprimidos em MP3.
A qualidade sonora resultante depende do software usado, do hardware da máquina e da configuração escolhida. Pela taxa padrão de gravação de MP3 (128 Kbits por segundo), cada minuto de música corresponde à cerca de 1 MB em disco. Mas essa taxa pode ser alterada, conforme a disponibilidade de recursos dos softwares de gravação (ripper). Por exemplo, você pode aumentar essa taxa para 192 Kbits por segundo, o que aumenta a qualidade sonora, mas conseqüentemente, ocupa mais espaço.

Sistemas de arquivos FAT e FAT32

Introdução

Muitos usuários de Windows já ouviram falar em partições FAT ou FAT32 sem saber ao certo o que isso significa. Essas são siglas de sistemas de arquivos para o Windows. Para este mesmo sistema operacional, há também o sistema de arquivos NTFS, a ser visto em outro artigo. Veja neste artigo o que é um sistema de arquivos e conheça os tipos FAT e FAT 32.
O que é um sistema de arquivos
Não é possível gravar dados num HD ou num disquete sem um sistema de arquivos, que é, basicamente, uma estrutura que indica como os arquivos devem ser gravados e guardados em mídias. Através do sistema de arquivos, é que se determina o espaço utilizado no disco, além de ser o método que permite gerenciar como partes de um arquivo podem ficar "espalhadas" no dispositivo de armazenamento. Um outro detalhe importante: é o sistema de arquivos que determina como arquivos podem ser gravados, copiados, alterados, nomeados e até apagados. Ou seja, resumindo, toda e qualquer manipulação de dados numa mídia necessita de um sistema de arquivos para que essas ações sejam possíveis. Se não houver estrutura de armazenamento e manipulação é impossível gravar dados.
O sistema de arquivos FAT
FAT é a sigla para File Allocation Table (ou tabela de alocação de arquivos). O primeiro FAT surgiu em 1977, para funcionar com a primeira versão do DOS. Trata-se de um sistema que funciona através de uma espécie de tabela que contém indicações para onde estão as informações de cada arquivo. Quando um arquivo é salvo num disquete por exemplo, o FAT divide a área do disco em pequenos blocos. Assim, um arquivo pode (e ocupa) vários blocos, mas eles não precisam estar numa seqüência. Os blocos de determinados arquivos podem estar em várias posições diferentes. Daí a necessidade de uma tabela para indicar cada bloco.
Com o surgimento de dispositivos de armazenamento com mais capacidade e mais sofisticados, o sistema FAT foi ganhando alterações (identificadas pelos nomes FAT12 e FAT16). Isso foi necessário porque o FAT era limitado a determinada capacidade de armazenamento. Por exemplo, ele só operava com tamanho máximo de 2 GB. Assim, num disco de 5 GB, seria necessário dividi-lo em 3 partições. Fora o fato de que o FAT apresentava problemas com informações acima de 512 MB. Diante de tantos problemas, em 1996, a Microsoft lançou um novo FAT: o FAT32, que é compatível com os Windows 9x/Me/2000 e XP (apesar destes dois últimos terem um sistema de arquivos mais avançado, o NTFS).
Funcionamento do sistema FAT
Ao trabalharmos com HDs (e disquetes) é necessário prepará-los, fazendo uma formatação física. Este processo, divide os discos em trilhas (uma espécie de caminho circular) e setores (subdivisões de cada trilha, com geralmente 512 bytes). Um conjunto de trilhas recebe o nome de cilindro. A formatação física já vem de fábrica e pode ser alterada se o usuário quiser dividir o disco em partições. Depois deve-se fazer uma formatação lógica, que nada mais é do que "instalar" o sistema de arquivos no dispositivo de armazenamento.
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5 clusters, se cada cluster ocupar dois setores. Sendo assim, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.
Tamanho de cluster
O sistema FAT exige que cada cluster do disco seja usado somente para um único arquivo, ou seja, num mesmo cluster, não pode haver informações sobre mais de um arquivo. Isso pode até parecer óbvio, mas gera um problema: desperdício. Para mostrar isso, vamos supor que desejamos guardar num disquete um arquivo de 5 KB. Imaginemos que este disquete tenha 8 KB de espaço e dois clusters de 4 KB. Um cluster ocuparia 4 KB do arquivo, enquanto o outro cluster ocuparia apenas 1 KB. Como o cluster só pode trabalhar com um arquivo, haveria desperdício de 3 KB. Vamos imaginar agora que em vez de termos clusters com 4 KB, teremos clusters com 2 KB. Assim, 3 cluster seriam usados, sendo que um ainda apresentaria desperdício de 1 KB. No entanto, sobrou um cluster com 2 KB, que pode ser usado por outro arquivo.
Percebe-se com isso que o tamanho do cluster deve ser o máximo que o FAT consegue manipular. Aliás, a principal diferença entre FAT e FAT 32, é que este último consegue trabalhar com um número maior de clusters.
Diferenças entre FAT e FAT32
O sistema FAT (ou FAT16) consegue trabalhar com 65536 clusters. Esse número é obtido elevando o número 2 a 16 (daí a terminologia FAT16). Mas, na verdade, o sistema FAT16 usa apenas 65525 clusters por disco (ou partição). É importante frisar que o tamanho do cluster deve obedecer também uma potência de 2: 2 KB, 4 KB, 8 KB, 16 KB e 32 KB, ou seja, não é possível ter cluster de 5 KB, 7 KB, etc. O tamanho dos clusters no sistema FAT também é uma potência de 2. O limite máximo de tamanho para uma partição em FAT16 é de 2 GB (correspondente a 2 elevado a 16).
Já no caso do sistema de arquivos FAT32 (seu nome se deve ao mesmo motivo que no FAT32), o tamanho dos clusters é determinado através da relação entre os comandos FDISK e FORMAT, apesar de que é possível determinar o tamanho do cluster do FAT32 também por programas de terceiros, com o Partition Magic (não é possível ter clusters de diferentes tamanhos). O tamanho máximo da partição em FAT32 é de 2 TB. Mas se você fizer a contas notará que 2 elevado a 32 é equivalente a 128 TB. Então porque o FAT32 usa somente 2 TB? Pode parecer confuso, mas o número máximo de clusters no caso do FAT32 não é de 2 elevado a 32. Apesar de seu endereçamento ser de 32 bits, na verdade são usados apenas 28 bits. Com isso, a quantidade máxima de clusters seria 2 elevado a 28, que corresponde a 8 TB. Não está errado, é 8 TB mesmo! Então, qual a razão do FAT32 ter tamanho máximo de espaço de 2 TB? Segundo a Microsoft, o número máximo de setores (setores, não clusters!) que um disco pode ter é de 2 elevado a 32. Como cada setor tem 512 bytes, o tamanho máximo de um disco no FAT32 acaba sendo de 2 TB.
As diferenças entre FAT (ou FAT16) e FAT32 não param por aí. O FAT32 também é mais confiável, além disso este sistema também consegue posicionar o diretório principal em qualquer lugar do disco. Fora o fato de que no sistema FAT, havia uma limitação no número de entradas que podiam ser alocadas no diretório principal (512 arquivos e/ou pastas). Não há essa limitação no FAT32.
Algo curioso de ser citado, é que o FAT32 pode mudar o tamanho da partição sem perder dados. Apesar desta capacidade, a Microsoft, por alguma razão misteriosa, não implementou esta característica no FAT 32. Hoje em dia, programas particionadores, como o Partition Magic ou então particionadores de disco de distribuições Linux, conseguem redimensionar uma partição FAT32 "inserido" este poder ao sistema de arquivos.
Mais sobre FAT32
O sistema FAT32 precisa de alterações para trabalhar perfeitamente com discos (ou partições) maiores que 8,4 GB de tamanho. Discos que possuam esse limite de tamanho usam a forma de endereçamento CHS (Cylinder-Head-Sector), onde cada setor do disco é unicamente endereçado usando-se o Cilindro (Cylinder), a cabeça de leitura (Head) e o setor (Sector) da trilha definida pelo cilindro e cabeça anteriores. Para contornar isso, foi criado o método LBA (Logical Block Addressing) onde cada setor do disco é endereçado através de um número único fornecido pelo BIOS. Com o LBA é possível trabalhar com discos de dezenas de GB.
O Windows consegue trabalhar com discos reconhecidos por LBA. No entanto, pode haver problemas quando o HD (ou a partição) possui mais de 1024 cilindros. Para contornar isso, foi criado o sistema FAT32X, onde a tabela de alocação de arquivos é deslocada para o fim do disco. Essa técnica evita o problema porque com mais de 1024 cilindros, a FAT não consegue armazenar todas as informações sobre o disco. Jogando-a para o final do disco, a limitação é burlada, já que a mantendo no início do disco, por uma série de razões, não é possível aumentar o tamanho da tabela.
Manipulando o sistema FAT32
É possível manipular o tamanho dos clusters de uma partição FAT32, no intuito de melhorar o desempenho do mesmo. O InfoWester, no entanto, não se responsabiliza por qualquer dano que isso venha causar em seu computador. O faça por sua conta e risco.
Sabe-se que quanto menor um cluster, menor o desperdício. No entanto, isso aumenta a quantidade de clusters, e quanto mais clusters existir, mais demorado será o uso do sistema de arquivos. Portanto, usar tamanho de clusters com 8 KB, pode ser uma boa idéia, já que esse valor consegue gerar um equilíbrio. No entanto, deve-se considerar vários outros aspectos técnicos para se definir o tamanho do cluster. Isso deixa claro que esta operação é voltada a usuários experientes.
Para definir o tamanho do cluster, pode-se usar programas de terceiros ou usar um recurso não documentado pela Microsoft do comando FORMAT. Para deixar o tamanho do cluster com 8 KB, digite no DOS:
FORMAT C: /Z:16
O número 16 é usado porque 16 x 512 bytes = 8 KB. Se em vez de 16, fosse usado 32, o cluster teria 16 KB (32 x 512 bytes = 16 KB).
O que é VFAT
VFAT é a sigla para Virtual File Allocation Table. Trata-se de um sistema introduzido no Windows 95. Ele possui as mesmas características do sistema FAT, mas pode suportar nome de arquivos longos. O sistema de arquivos FAT só trabalha com nomes no estilo 8.3 (8 caracteres para o nome e 3 para a extensão, como "palavras.txt").Com o VFAT, é possível ter nomes de arquivos com até 256 caracteres mais 3 para a extensão. O sistema FAT32 herdou todas as características do VFAT.

Sistemas de arquivos NTFS

Introdução

NTFS é a sigla para New Technology File System. Desde a época do DOS, a Microsoft vinha utilizando o sistema de arquivos FAT, que foi sofrendo variações ao longo do tempo, de acordo com o lançamento de seus sistemas operacionais. No entanto, o FAT apresenta algumas limitações, principalmente no quesito segurança. Por causa disso, a Microsoft lançou o sistema de arquivos NTFS, usado inicialmente em versões do Windows para servidores. Nas próximas linhas, você saberá a respeito do funcionamento do NTFS e conhecerá sua história.
Como o NTFS surgiu
O sistema de arquivos FAT é aceitável e perfeitamente funcional para a maioria dos usuários domésticos. Trata-se um sistema antigo, que mesmo com novas versões, herdou a simplicidade da primeira versão. Veja mais sobre FAT aqui. As limitações do FAT, principalmente quanto à segurança, capacidade e confiança, fizeram do FAT um sistema de arquivos inadequado para uso em servidores e aplicações críticas. A Microsoft, estando ciente disso, decidiu desenvolver um sistema de arquivos que se adequasse aos princípios de funcionamento do Windows NT e lançou o New Technology File System, conhecido pela sigla NTFS. Entre os objetivos da idealização do NTFS estavam o fornecimento de um sistema de arquivos flexível, adaptável, altamente seguro e confiável. Sem dúvida, tais características fizeram do Windows NT um sistema operacional aceitável para as aplicações cujo seu desenvolvimento foi planejado.
A idéia de lançar o Windows NT surgiu em 1990, quando a Microsoft sentiu a necessidade de ter um sistema operacional com as qualidades citadas acima e com funcionalidades típicas de servidor. Nesta época, a Microsoft não tinha nenhum sistema que pudesse se equiparar ao poderoso Unix (tinha somente o MS-DOS e o Windows 3.x). Decidida a ter uma fatia do mercado que pertencia ao Unix, a Microsoft deu início ao desenvolvimento do Windows NT. Esta sigla - NT - significa New Technology. A Microsoft logo percebeu que este novo Windows não teria sucesso se utilizasse o FAT, pelas razões já citadas. Era preciso criar um sistema de arquivos novo.
O NTFS foi desenvolvido e muitos até hoje pensam que ele é um sistema de arquivos inteiramente desenvolvido pela Microsoft, o que não é verdade. Seu projeto foi baseado nas análises das necessidades do novo sistema operacional, mas seus conceitos funcionais foram "herdados" do sistema de arquivos HPFS (High Performance File System).
Um sistema operacional muito conhecido nesta época era o OS/2, um projeto realizado em conjunto entre a Microsoft e a IBM. Ambas as empresas estavam tentando criar um sistema operacional de grande sucesso, cujo apelo principal seria a capacidade gráfica (lembre-se que naquela época, era muito maior o uso de sistemas operacionais baseados em linha de comando, como o DOS). O OS/2 de fato continha inovações tecnológicas, mas esbarrava nos quesitos suporte e marketing. Fora isso, a IBM e a Microsoft começaram a se desentender e a empresa de Bill Gates decidiu abandonar o projeto e se dedicar ao desenvolvimento do Windows NT. No entanto, a Microsoft acabou levando consigo muitos conceitos funcionais do sistema de arquivos do OS/2, o HPFS. É claro que tais conceitos foram essenciais para a criação do NTFS, o que fez com muitos pensassem que a Microsoft passou um golpe na IBM. No entanto, este artigo não visa discutir isso.
Características do NTFS
O NTFS possui características importantes, que o fez ser considerado um bom sistema de arquivos. Entre essas qualidades estão: confiança, pois permite que o sistema operacional se recupere de problemas sem perder informações, fazendo-o ser tolerante a falhas; segurança, onde é possível ter um controle de acesso preciso e ter aplicações que rodem em rede, fazendo com que seja possível o gerenciamento de usuários, incluindo suas permissões de acesso e escrita de dados; armazenamento, onde é possível trabalhar com uma grande quantidade de dados, permitindo inclusive o uso de arrays RAID; rede, fazendo do sistema plenamente funcional para o trabalho e o fluxo de dados em rede.
Há muitas outras características, que ficam mais ainda visíveis se comparadas ao FAT. A Microsoft vem trabalhando bastante para aperfeiçoar o NTFS, por isso, é de se esperar que novas características sejam implementadas no sistema de arquivos, de acordo com o lançamento de novas versões do Windows.
Versões do NTFS
Assim como aconteceu com o FAT, o NTFS também tem versões, que foram lançadas principalmente no surgimento de novos Windows. A cada versão, correções de falhas são feitas, suportes a hardware são implementados e novas características são dadas ao NTFS. A princípio houve o NTFS 1.0 usado no Windows NT 3.1 (por isso, esta versão do NTFS também ficou conhecida por NTFS 3.1).
Com o lançamento do Windows NT 4, o NTFS ganhou a versão 1.1 (ou versão 4). Esta versão também foi usada no Windows NT 3.51. O sucesso do Windows NT foi tão grande que sua versão do NTFS virou referência em sistemas de arquivos.
A Microsoft não ficou parada e lançou a versão conhecida como NTFS 5.0 com o lançamento do Windows 2000, substituto do Windows NT. Apesar da nova versão, o NTFS 4 foi tão difundido que seu suporte a outro sistemas operacionais não acabará tão cedo.
Esta nova versão do NTFS possui novas características importantes, além daquelas herdadas da versão anterior. Essas mudanças foram essenciais para fazer do Windows 2000 um sistema que fosse realmente adequado para substituir o Windows NT. Só para servir de exemplo, o serviço Active Directory é um dos chamativos do Windows 2000 e foi implementado graças a alterações no FTFS. Entre os novos recursos do NTFS 5 estão: Reparse Points, onde arquivos e pastas dentro do sistema de arquivos podem ter ações associadas a eles, de forma que operações particulares a estes arquivos possam ser executadas; novas características de segurança, onde o mecanismo para gerenciamento da segurança e de usuários, principalmente em relação a acesso e arquivos foram melhorados; quotas de discos, onde o administrador do sistema pode determinar o espaço em disco disponível a um usuário ou a um grupo de usuários; diários de alterações, onde volumes podem ser ajustados para rastrear as operações efetuadas nos arquivos e pastas; codificação, onde o sistema permite que arquivos sejam codificados/decodificados automaticamente; suporte a arquivos esparsos, onde é possível armazenar de forma eficiente arquivos esparsos (que são arquivos grandes mas que possuem algumas estruturas vazias, desperdiçando espaço em disco).
Com o lançamento do Windows XP, Windows 2003 Server e futuras versões, o NFTS vai ganhando melhoramentos e novas características, mas certamente a versão 4 ainda será uma referência. Isso deixa claro que o NFTS não deixará de ser usado tão cedo pela Microsoft.
Funcionamento do NTFS
Conforme as características herdadas do HPFS, o NTFS trabalha de uma forma mais eficiente no gerenciamento do espaço de disco. Isso porque as informações são armazenadas em uma base por setor do disco, em vez de utilizar clusters de múltiplos setores (veja mais sobre isso lendo o artigo sobre FAT). Essa forma de trabalho, traz várias vantagens, como menor necessidade de desfragmentação de disco e maior consistência de dados. Isso porque essa arquitetura de dados por base em setor permite manter os dados próximos, ou seja, não espalhados pelo disco. Até o gerenciamento de grandes quantidades de dados é beneficiado por esta característica, já que como acontecia com o FAT, trabalhar com clusters por setor, fazia do sistema de arquivos dependente de um número pré-determinado de setores

Processadores parte 1

Introdução

Os processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções que resultam em todas as tarefas que um computador pode fazer e, por esse motivo, são também referenciados como "cérebros" dessas máquinas. Embora haja poucos fabricantes (essencialmente, Intel, AMD e VIA), o mercado conta com uma grande variedade de processadores. Apesar disso e das diferenças existentes entre cada modelo, todos compartilham de alguns conceitos e características. Com base nisso, o InfoWester apresenta este artigo de introdução aos processadores, onde você conhecerá a função e o significado de clock, bits internos, memória cache e chips com dois ou mais núcleos.

O trabalho de um processador

O processador é um chip de silício responsável pela execução das tarefas cabíveis a um computador. Para entender como um processador trabalha, é conveniente dividirmos um computador em três partes: processador, memória e um conjunto de dispositivos de entrada e saída (ou I/O, de Input/Output). Neste último, encontra-se qualquer item responsável pela entrada ou saída de dados no computador, como monitores de vídeo, teclados, mouses, impressoras, scanners, discos rígidos, etc. Nesse esquema, obviamente, o processador exerce a função principal, já que a ele cabe o acesso e a utilização da memória e dos dispositivos de entrada e saída para a execução de suas atividades.
Para entender melhor, suponha que você queira que o seu computador execute um programa qualquer. Um programa consiste em uma série de instruções que o processador deverá executar para que a tarefa solicitada seja realizada. Para isso, o processador transfere todos os dados necessários à execução, de um dispositivo de entrada e/ou saída - como um disco rígido - para a memória. A partir daí, todo o trabalho é realizado e o que vai ser feito do resultado depende do programa. O processador pode ser orientado a enviar as informações processadas para o HD novamente ou para uma impressora, por exemplo, tudo depende das instruções com as quais lidar.

Barramentos

A imagem a seguir ilustra a comunicação entre o processador, a memória e o conjunto de dispositivos de entrada e saída. Note que a conexão entre esses itens é indicada por setas. Isso é feito para que você possa entender a função dos barramentos. De maneira geral, estes são os responsáveis pela interligação e comunicação dos dispositivos em um computador. Note que, para o processador se comunicar com a memória e com o conjunto de dispositivos de entrada e saída, há 3 setas, isto é, barramentos: um se chama barramento de endereços (address bus); outro, barramento de dados (data bus); o terceiro, barramento de controle (control bus).
Barramentos - processadores
O barramento de endereços, basicamente, indica de onde os dados a serem processados devem ser retirados ou para onde devem ser enviados. A comunicação por esse barramento é unidirecional, razão pela qual só há seta em uma das extremidades da linha no gráfico que representa a sua comunicação. Como o nome deixa claro, é pelo barramento de dados que os dados transitam. Por sua vez, o barramento de controle faz a sincronização das referidas atividades, habilitando ou desabilitando o fluxo de dados, por exemplo.
Para você compreender melhor, imagine que o processador necessita de um dado presente na memória. Pelo barramento de endereços, ele obtém a localização desse dado dentro da memória. Como precisa apenas acessar o dado, o processador indica pelo barramento de controle que esta é uma operação de leitura na memória. O dado é então localizado e inserido no barramento de dados, por onde o processador, finalmente, o lê.

Clock interno e clock externo

Em um computador, todas as atividades necessitam de sincronização. O clock serve justamente para isso, ou seja, basicamente, atua como de sinal de sincronização. Quando os dispositivos do computador recebem o sinal de executar suas atividades, dá-se a esse acontecimento o nome de "pulso de clock". Em cada pulso, os dispositivos executam suas tarefas, param e vão para o próximo ciclo de clock.
A medição do clock é feita em hertz (Hz), a unidade padrão de medidas de freqüência, que indica o número de oscilações ou ciclos que ocorre dentro de uma determinada medida de tempo, no caso, segundos. Assim, se um processador trabalha à 800 Hz, por exemplo, significa que é capaz de lidar com 800 operações de ciclos de clock por segundo. Repare que, para fins práticos, a palavra kilohertz (KHz) é utilizada para indicar 1000 Hz, assim como o termo megahertz (MHz) é usado para indicar 1000 KHz (ou 1 milhão de hertz). De igual forma, gigahertz (GHz) é a denominação usada quando se tem 1000 MHz, e assim por diante. Com isso, se um processador tem, por exemplo, uma freqüência de 800 MHz, significa que pode trabalhar com 800 milhões de ciclos por segundo.
As freqüências com as quais os processadores trabalham são chamadas também de clock interno. Neste ponto, você certamente já deve ter entendido que é daí que vem expressões como Pentium 4 de 3,2 GHz, por exemplo. Mas, os processadores também contam com o que chamamos de clock externo ou Front Side Bus (FSB) ou, ainda, barramento frontal.
O FSB existe porque, devido a limitações físicas, os processadores não podem se comunicar com a memória (mais precisamente, como a ponte norte - ou northbridge - do chipset, que contém o controlador da memória) usando a mesma velocidade do clock interno. Assim, quando essa comunicação é feita, o clock externo, de freqüência mais baixa, é que é usado. Note que, para obter o clock interno, o processador usa uma multiplicação do clock externo. Para entender melhor, suponha que um determinado processador tenha clock externo de 100 MHz. Como o seu fabricante indica que esse chip trabalha à 1,6 GHz (ou seja, tem clock interno de 1,6 GHz), seu clock externo é multiplicado por 16: 100 x 16 = 1600 MHz ou 1,6 GHz.
É importante deixar claro, no entanto, que se dois processadores diferentes - um da Intel e outro da AMD, por exemplo - tiverem clock interno de mesmo valor - 2,8 GHz, para exemplificar -, não significa que ambos trabalham à mesma velocidade. Cada processador tem um projeto distinto e conta com características que determinam o quão rápido é. Assim, um determinado processador pode levar, por exemplo, 2 ciclos de clock para executar uma instrução. Em outro processador, essa mesma instrução pode requerer 3 ciclos. Além disso, muitos processadores - especialmente os mais recentes - transferem 2 ou mais dados por ciclo de clock, dando a entender que um processador que faz, por exemplo, transferência de 2 dados por ciclo e que trabalha com clock externo de 133 MHz, o faz à 266 MHz. Por esses e outros motivos, é um erro considerar apenas o clock interno como parâmetro de comparação entre processadores diferentes.

Bits dos processadores

O número de bits é outra importante característica dos processadores e, naturalmente, tem grande influência no desempenho desse dispositivo. Processadores mais antigos, como o 286, trabalhavam com 16 bits. Durante muito, no entanto, processadores que trabalham com 32 bits foram muitos comuns, como as linhas Pentium, Pentium II, Pentium III e Pentium 4 da Intel, ou Athlon XP e Duron da AMD. Alguns modelos de 32 bits ainda são encontrados no mercado, todavia, o padrão atual são os processadores de 64 bits, como os da linha Core 2 Duo, da Intel, ou Athlon 64, da AMD.
Em resumo, quanto mais bits internos o processador trabalhar, mais rapidamente ele poderá fazer cálculos e processar dados em geral, depedendo da execução a ser feita. Isso acontece porque os bits dos processadores representam a quantidade de dados que os circuitos desses dispositivos conseguem trabalhar por vez. Um processador com 16 bits, por exemplo, pode manipular um número de valor até 65.535. Se esse processador tiver que realizar uma operação com um número de 100.000, terá que fazer a operação em duas partes. No entanto, se um chip trabalha a 32 bits, ele pode manipular números de valor até 4.294.967.295 em uma única operação. Como esse valor é superior a 100.000, a operação será possível em uma única vez.
Em relação aos processadores de 64 bits, saiba mais sobre eles neste artigo.

Memória cache

Os processadores passam por aperfeiçoamentos constantes, o que os tornam cada vez mais rápidos e eficientes. No entanto, o mesmo não se pode dizer das tecnologias de memória RAM. Embora estas também passem por constantes melhorias, não conseguem acompanhar os processadores em termos de velocidade. Assim sendo, de nada adianta ter um processador rápido se este tem o seu desempenho comprometido por causa da "lentidão" da memória.
Uma solução para esse problema seria equipar os computadores com um tipo de memória muito mais rápida, a SRAM (Static RAM). Estas se diferenciam das memórias convencionais DRAM (Dynamic RAM) por serem muito rápidas, por outro lado, são muito mais caras e não contam com o mesmo nível de miniaturização, sendo, portanto, inviáveis. Apesar disso, a idéia não foi totalmente descartada, pois foi adaptada para o que conhecemos como memória cache.
A memória cache consiste em uma pequena quantidade de memória SRAM embutida no processador. Quando este precisa ler dados na memória RAM, um circuito especial chamado "controlador de cache" transfere blocos de dados muito utilizados da RAM para a memória cache. Assim, no próximo acesso do processador, este consultará a memória cache, que é bem mais rápida, permitindo o processamento de dados de maneira mais eficiente. Se o dado estiver no cache, o processador a utiliza, do contrário, irá buscá-lo na memória RAM, etapa essa que é mais lenta. Dessa forma, a memória cache atua como um intermediário, isto é, faz com que o processador nem sempre necessite chegar à memória RAM para acessar os dados dos quais necessita. O trabalho da memória cache é tão importante que, sem ela, o desempenho de um processador pode ser seriamente comprometido.
Os processadores trabalham, basicamente, com dois tipos de cache: cache L1 (Level 1 - Nível 1) e cache L2 (Level 2 - Nível 2). Este último é ligeiramente maior em termos de capacidade e passou a ser utilizado quando o cache L1 se mostrou insuficiente. Antigamente, um tipo distinguia do outro pelo fato da memória cache L1 estar localizada junto ao núcleo do processador, enquanto que a cache L2 ficava localizada na placa-mãe. Atualmente, ambos os tipos ficam localizados dentro do chip do processador, sendo que, em muitos casos, a cache L1 é dividida em duas partes: "L1 para dados" e "L1 para instruções".
Vale ressaltar que, dependendo da arquitetura do processador, é possível o surgimento de modelos que tenham um terceiro nível de cache (L3). Mas, isso não é novidade: a AMD chegou a ter um processador em 1999 chamado K6-III que contava com cache L1 e L2 internamente, algo incomum à época, já que naquele tempo o cache L2 se localizava na placa-mãe. Com isso, esta última acabou assumindo o papel de cache L3.
A foto abaixo mostra um processador AMD Athlon, com 64 KB de cache L1 para instruções, 64 KB de cache L1 para dados e 512 KB de cache L2. Note que a capacidade de cada tipo de cache varia conforme o modelo do processador.
AMD Athlon 64

Processadores com dois ou mais núcleos

Há tempos que é possível encontrar no mercado placas-mãe que contam com dois ou mais slots para processadores. A maioria esmagadora dessas placas são usadas em computadores especiais, como servidores e workstations, que são utilizados em aplicações que exigem grandes recursos de processamento. Para aplicações domésticas e de escritório, no entanto, computadores com dois ou mais processadores são inviáveis devido aos elevados custos que esses equipamentos representam, razão pela qual é conveniente a esses nichos de mercado contar com processadores cada vez mais rápidos.
Até um passado não muito distante, o usuário tinha noção do quão rápido eram os processadores de acordo com a taxa de seu clock interno. O problema é que, quando um determinado valor de clock é alcançado, torna-se mais difícil desenvolver outro chip com clock maior. Limitações físicas e tecnológicas são os motivos para isso. Uma delas é a questão da temperatura: quanto mais megahertz um processador tiver, mais calor ele gerará.
Uma das formas encontradas pelos fabricantes para lidar com essa limitação é fabricar e disponibilizar processadores com dois núcleos (dual-core) ou mais (multi-core). Mas, o que isso significa? Processadores desse tipo contam com dois ou mais núcleos distintos no mesmo circuito integrado, como se houvesse dois processadores dentro de um. Dessa forma, o processador pode lidar com dois processos por vez, um para cada núcleo, melhorando o desempenho do computador como um todo. Note que, em um chip de único núcleo, o usuário pode ter a impressão de que vários processos são executados simultaneamente, já que a máquina está quase sempre executando mais de uma aplicação ao mesmo tempo. Na verdade, o que acontece é que o processador dedica determinados intervalos de tempo a cada processo e isso ocorre de maneira tão rápida, que se tem a impressão de processamento simultâneo.
Pelo menos teoricamente, é possível fabricar processadores com dezenas de núcleos. No momento em que este artigo era escrito no InfoWester, era possível encontrar processadores com 2, 3 e 4 núcleos (dual-core, triple-clore e quad-core, respectivamente). É importante ressaltar que ter processadores com dois ou mais núcleos não implica, necessariamente, em computadores que são proporcionalmente mais rápidos. Uma série de fatores influenciam nesse quesito, como as velocidades limitadas das memórias e dos dispositivos de entrada e saída, e as formas como os programas são desenvolvidos.
Na imagem abaixo, uma montagem que ilustra o interior de um processador Intel Core 2 Extreme Quad-Core (com 4 núcleos):
Intel Core 2 Extreme Quad-Cor

Finalizando



processador é um componente de extrema complexidade, o que deixa claro que o assunto pode ser estudado com muito mais profundidade. No entanto, este artigo apresentou características básicas que permitem ao leitor ter uma noção inicial de como esses chips trabalham e o que significam parte dos tantos nomes que os envolvem. Se você deseja entender o assunto de modo mais amplo, é recomendável iniciar estudos na área de arquitetura de computadores, que fornece conceitos que ajudam a entender o funcionamento não só do processador, mas do computador como um todo.
Na parte 2 deste artigo, você conhecerá alguns detalhes da fabricação dos processadores, além de entender os conceitos de encapsulamento e miniaturalização desses chips. Para acessar a segunda parte,

Processadores de 64 bits x Processadores de 32 bits

Introdução
Tanto a Intel como a AMD já colocaram no mercado processadores que trabalham a 64 bits. Em poucos anos, esse tipo de chip será o padrão. Muita gente sabe que os modelos de 64 bits são melhores que os de 32 bits e este artigo se propõe a mostrar exatamente como e onde ocorre essas melhorias.
32 bits x 64 bits
Se você vai a uma loja de informática para um computador, o vendedor pode lhe oferecer dois tipos: um com um processador de 64 bits e outro com um processador de 32 bits. "O de 64 bits é mais caro, porém é muito mais rápido e tem melhor desempenho", lhe diz o vendedor. Isso significa que seus jogos rodarão mais rápidos, assim como programas pesados, como AutoCad, Premiere, entre outros, não? Talvez. Vejamos o porquê.
Quando nos referimos a processadores de 16 bits, 32 bits ou 64 bits estamos falando dos bits internos do chip - em poucas palavras, isso representa a quantidade de dados e instruções que o processador consegue trabalhar por vez. Por exemplo, com 16 bits um processador pode manipular um número de valor até 65.535. Se certo número tem valor 100.000, ele terá que fazer a operação em duas partes. No entanto, se um chip trabalha a 32 bits, ele pode manipular números de valor até 4.294.967.296 em uma única operação.
Para calcular esse limite, basta fazer 2 elevado à quantidade de bits internos do processador. Então, qual o limite de um processador de 64 bits? Vamos à conta:
2^64 = 1.84467441 × 10^19
Um valor extremamente alto!
Agora, suponha que você esteja utilizando um editor de textos. É improvável que esse programa chegue a utilizar valores grandes em suas operações. Neste caso, qual a diferença entre utilizar um processador de 32 bits ou 64 bits, sendo que o primeiro será suficiente? Como o editor utiliza valores suportáveis tanto pelos chips de 32 bits quanto pelos de 64 bits, as instruções relacionadas serão processadas ao mesmo tempo (considerando que ambos os chips tenham o mesmo clock).
AMD Athlon 64
Por outro lado, aplicações em 3D ou programas como AutoCad requerem boa capacidade para cálculo e aí um processador de 64 bits pode fazer diferença. Suponha que determinadas operações utilizem valores superiores a 4.294.967.296. Um processador de 32 bits terá que realizar cada etapa em duas vezes ou mais, dependendo do valor usado no cálculo. Todavia, um processador de 64 bits fará esse trabalho uma única vez em cada operação.
No entanto, há outros fatores a serem considerados. Um deles é o sistema operacional (SO). O funcionamento do computador está diretamente ligado à relação entre o sistema operacional e o hardware como um todo. O SO é desenvolvido de forma a aproveitar o máximo de recursos da plataforma para o qual é destinado. Assim, o Windows XP ou uma distribuição Linux com um kernel desenvolvido antes do surgimento de processadores de 64 bits são preparados para trabalhar a 32 bits, mas não a 64 bits.
A influência do sistema operacional
Ao se colocar um sistema operacional de 32 bits para rodar em um computador com processador de 64 bits, o primeiro não se adaptará automaticamente e continuará mantendo sua forma de trabalho. Com isso, é necessário o desenvolvimento de sistemas operacionais capazes de rodar a 64 bits.
O Desenvolvimento ou a adaptação de um sistema operacional para trabalhar a 64 bits não é tão trivial assim. Na verdade, é necessário que o SO seja compatível com um processador ou com uma linha de processadores, já que pode haver diferenças entre os tipos existentes. Em outras palavras, o sistema operacional precisa ser compatível com chips da AMD ou com chips da Intel. Se possível, com os dois.
No caso do Windows XP, a Microsoft disponibilizou a versão "Professional x64", compatível com os processadores AMD Athlon 64, AMD Opteron, Intel Xeon (com instruções EM64T) e Intel Pentium 4 (com instruções EM64T). De acordo com a Microsoft, a principal diferença entre essa e as versões de 32 bits (além da compatibilidade com instruções de 64 bits) é o suporte de até 128 GB de memória RAM e 16 TB de memória virtual. Nada mais natural: se a aplicação para o qual o computador é utilizado manipula grande quantidade de dados e valores, de nada adianta ter processamento de 64 bits, mas pouca memória, já que, grossamente falando, os dados teriam que "formar fila" para serem inseridos na memória, comprometendo o desempenho.
Intel Itanium 2
O mesmo ocorre com o Linux. Se você visitar o site de alguma distribuição para baixar uma versão do sistema operacional, muito provavelmente encontrará links que apontam para diversas versões. O site do Ubuntu Linux, por exemplo, oferece links para processadores x86 (32 bits), Mac (chips PowerPC) e 64-bit (processadores AMD64 ou EM64T).
Você pode ter se perguntado se é possível utilizar um sistema operacional de 32 bits com um processador de 64 bits e migrar o primeiro para uma versão adequada futuramente. Depende. O processador Intel Itanium é apelidado por alguns de "puro sangue", já que só executa aplicações de 64 bits. Assim, uma versão de 32 bits de um sistema operacional não roda nele. Por outro lado, processadores Athlon 64 são capazes de trabalhar tanto com aplicações de 32 bits quanto de 64 bits, o que o torna interessante para quem pretende usar um SO de 32 bits inicialmente e uma versão de 64 bits no futuro.
AMD64 e EM64T
Ao serem citadas anteriormente, você pode ter se perguntado o que significa as siglas AMD64 e EM64T:
AMD64: originalmente chamado de x86-64, AMD64 (ou AMD64 ISA - Instruction Set Architecture) é o nome da tecnologia de 64 bits desenvolvida pela AMD. Um de seus destaques é o suporte às instruções de 32 bits (Legacy Mode);
EM64T: sigla para Extended Memory 64-bit Technology, o EM64T é tido como a interpretação do AMD64 feita pela Intel. Devido a isso, recebeu de alguns a denominação iADMD64 (o "i" faz referência à primeira letra do nome da Intel).
Intel Xeon
Finalizando



O InfoWester recebeu mais de uma vez perguntas sobre o quão veloz são os processadores de 64 bits. Na verdade, a palavra-chave para esse tipo de chip não é "velocidade", mas "capacidade". Compare a uma locomotiva cujo motor é preparado para suportar mais vagões. Ela carregará mais, o que diminui a quantidade de viagens, mas sua velocidade continuará a mesma.
A velocidade dos processadores alcançará um limite, por isso outras características devem ser consideradas para que um processador seja vantajoso em relação a outro, pelo menos até que uma nova tecnologia para esses chips surja (como os computadores quânticos). A arquitetura de 64 bits é um excelente exemplo disso. Fazer mais e melhor. Esse é o diferencial a partir de agora.

Quem enventou o computador?

O primeiro homem a imaginar e construir um computador de verdade foi o matemático, filósofo, economista e escritor inglês Charles Babbage (1791-1871). Respeitado pelas imprecisões que encontrou nas tabelas matemáticas de sua época, Babbage (pai do velocímetro, do limpa-trilhos das locomotivas e das primeiras tabelas confiáveis de expectativa de vida) construiu entre 1821 e 1832 um sistema de engrenagens e rodas dentadas denominado "Mecanismo Diferencial número 1", o tataravô dos computadores. Com suas 2 mil peças de aço e bronze, ele podia calcular de maneira rápida e precisa complexos cálculos matemáticos. Babbage conseguiu, no entanto, construir apenas um modelo simples, porque os metalúrgicos da época não eram capazes de produzir as centenas de pecinhas de precisão que o mecanismo requeria. Planejado entre 1847 e 1849, o "Mecanismo Diferencial número 2", com o dobro de peças, só seria construído em 1991, pelo Museu de Ciência de Londres, em homenagem ao bicentenário do nascimento do inventor.
O projeto foi baseado em 20 desenhados deixados por Babbage. Novos experimentos levaram Babbage a projetar em 1834 o ainda mais complexo "Mecanismo Analítico", para desempenhar funções algébricas. Ele apresentava todas as partes essenciais de um computador moderno: circuitos lógicos, memória, armazenagem e recuperação de dados. O mais importante é que ele era programável.

A aliada de Babbage em seu trabalho, a escritora e matemática Augusta Ada King (1815-52), condessa de Lovelace e única filha legítima do poeta Lord Byron, foi a primeira programadora de computador da história. Augusta descreveu o primeiro conjunto de instruções de computador para pedir à máquina que computasse uma série (conhecida como os "números de Bernoulli") gerada por uma complexa equação matemática. Ela produziu um programa que deveria ser escrito em cartões perfurados, que haviam sido inventados em 1728 por um tecelão francês, Joseph-Marie Jacquard, para tecer padrões em teares. Permitindo (por uma perfuração) ou bloqueando (pela ausência de perfuração) a passagem de uma agulha, o sistema desses cartões antecipou a linguagem liga-desliga (binária) dos computadores eletrônicos atuais. Babbage já tinha construído um pedaço da máquina quando morreu. Ela nunca chegou a ser finalizada.

O primeiro computador digital eletrônico foi o Eniac, construído pelo engenheiro elétrico John Presper Eckert Jr. (1919-95) e pelo físico John William Mauchly (1907-80), na Escola Moore de Engenharia Elétrica, da Universidade da Pensilvânia, e pelo Laboratório de Pesquisas Balísticas do Exército americano. Apresentado em 15 de fevereiro de 1946, ele ocupava uma área de 93 metros quadrados, tinha a altura de dois andares e pesava 30 toneladas. Em seu interior, 17.468 enormes válvulas piscavam ininterruptamente. Apesar de seu tamanho, o Eniac (sigla, em inglês, para Computador e Integrador Numérico Eletrônico) era na verdade um ignorante. Cometia erros e quebrava repetidamente, porque seus tubos sempre se queimavam. Construído para calcular tabelas de artilharia, o computador de 450 mil dólares podia realizar 5 mil adições e 3.500 multiplicações por segundo. O Pentium Pro, lançado em 1996, é capaz de efetuar 300 milhões de operações por segundo. O Eniac, portanto, seria 85 mil vezes mais lento.

Há uma grande polêmica envolvendo a invenção do computador eletrônico. John Atanasoff (1904-95), professor da Universidade de Iowa, contou que a idéia de inventar um computador lhe ocorreu numa hospedaria em Illinois, em 1937. Seria operado eletronicamente e usaria números binários, em vez dos tradicionais números decimais. Daí a poucos meses, ele e um talentoso ex-aluno (Clifford Berry) haviam criado um tosco protótipo de computador eletrônico, que utilizava válvulas, tambores rotativos e cartões perfurados para a introdução de dados. A execução do projeto custou mil dólares. No ano seguinte, John Mauchly, que conhecera Atanasoff num seminário, foi convidado a conhecer o computador. Depois ficou hospedado vários dias em sua casa, onde soube de detalhes sobre o projeto.

Atanasoff estava para requerer a patente do seu computador, mas foi convocado a Washington no início da Segunda Guerra Mundial para fazer pesquisas de Física para a Marinha. No mesmo período, Mauchly e Eckert construíram o Eniac. No verão de 1944, os dois simplificaram sua invenção usando o esquema binário desenvolvido por Atanasoff. Estava criado assim o Univac, que começou a ser vendido em 1946 e tornou-se o protótipo dos computadores de grande porte atuais.

O primeiro computador brasileiro foi construído na Universidade de São Paulo, em 1972, e era conhecido pelo apelido de "Patinho Feio"

quarta-feira, 21 de abril de 2010

Processadores

Introdução

No artigo Processadores - Parte 1, os conceitos mais básicos de um processador foram abordados, como clock, Front Side Bus (FSB) e memória cache. Nesta segunda parte, você conhecerá outros conceitos relacionados aos processadores, como miniaturalização e encapsulamento. No entanto, o mais importante é que você também encontrará resposta para uma pergunta muito comum: como os processadores são fabricados?

É claro que esse é um assunto de extrema complexidade. Por esse motivo, somente os conceitos mais básicos serão explicados aqui. Todavia, essa explanação será suficiente para que você possa ter uma noção de como os processadores são fabricados. Antes de começar, uma sugestão: leia a primeira parte deste artigo para não se "perder" diante de algum termo técnico mencionado aqui ;)
Vamos lá?

Silício

O primeiro passo na fabricação de processadores consiste, obviamente, na obtenção de matéria-prima. Geralmente, os chips são formados por silício, e com os processadores não é diferente. O silício é um elemento químico extremamente abundante, tanto que é considerado o segundo mais comum na Terra. É possível extraí-lo de areia, granito, argila, entre outros.

Esse elemento químico é utilizado para a constituição de vários materiais resistentes, como vidro e cerâmica. No entanto, é também semicondutor, isto é, tem a capacidade de conduzir eletricidade. Essa característica somada à sua existência em abundância faz com que o silício seja um elemento extremamente utilizado pela indústria eletrônica.

Para você ter uma ideia da importância desse material, a concentração de empresas que utilizam silício em seus produtos eletrônicos em várias cidades da Califórnia, nos EUA, fez com que a região recebesse o nome de Vale do Silício (Silicon Valley). É lá que estão localizadas, por exemplo, as sedes da AMD e da Intel, as maiores fabricantes de microprocessadores do mundo.

Fabricação de processadores

A fabricação dos processadores se inicia em modernos centros tecnológicos especializados. Esses locais são tão sofisticados e de construção de valor tão elevado, que existem poucos no mundo. Nos laboratórios desses centros, uma determinada quantidade de cristal de silício é colocada em uma espécie de haste e, posteriormente, inserida em silício fundido submetido a uma pressão e a uma temperatura extremamente alta - em torno dos 300º. A haste é então retirada e girada ao mesmo tempo. Esse processo (chamado de técnica Czochralski) faz com que o material que se juntou à haste forme uma espécie de cilindro (também conhecido como "ingot"). Seu diâmetro varia de acordo com o avanço da tecnologia, mas em geral possui entre 200 e 300 milímetros. O mesmo vale para o seu comprimento: de 1 a 2 metros. É importante frisar que esses cilindros precisam ser formados de silício puro. O processo de purificação desse material é complexo, o que encarece ainda mais a fabricação.
Cilindro formado por silício (ingot). Imagem por Wikipedia
Cilindro formado por silício (ingot). Imagem por Wikipedia
Uma vez concluída essa etapa, o cilindro é "fatiado", isto é, cortado em várias partes. Cada uma dessas divisões recebe o nome de wafer. Cada "fatia" é polida até ficar perfeita, sem variações, manchas, diferenças de brilho ou qualquer irregularidade em sua composição. Sua espessura, geralmente é menor que 1 milímetro. Em uma etapa mais adiante, cada wafer será dividido em vários "quadradinhos" (ou "pastilhas"), que posteriormente serão separados e formarão os processadores em si.
No passo seguinte, a superfície do wafer passa por um processo de oxidação, onde a aplicação de gases - especialmente oxigênio - e temperatura elevada forma uma camada de dióxido de silício. Essa camada servirá de base para a construção de milhares e milhares de transistores, em poucas palavras, minúsculos componentes capazes de "amplificar" ou "chavear" sinais elétricos, além de outras funções relacionadas.
Na próxima etapa, os wafers passam por um processo onde recebem uma camada de material fotossensível, isto é, que reage à luz. Nessa etapa, cada um dos blocos que se transformará em processador recebe luz ultravioleta em certos pontos e em determinadas intensidades. Os pontos da camada fotossensível que reagem à luz ultravioleta se tornam mais "gelatinosos" e são posteriormente removidos, deixando expostos os respectivos pontos da camada de dióxido de silício. Com isso, tem-se pontos cobertos com camada fotossensível e pontos cobertos com dióxido de silício. Obviamente, a camada fotossensível restante tem dióxido de silício por baixo. As partes deste último que não estiverem protegidas pela camada fotossensível são então removidas através de outro procedimento. No próximo passo, a camada fotossensível é removida. O que sobra então é utilizado como estrutura para a montagem dos transistores, procedimento esse que continua sendo feito a partir de aplicação de mais materiais e exposição à luz ultravioleta.
Engenheiro segurando um wafer - Imagem por Intel
Engenheiro segurando um wafer - Imagem por Intel
Quem tem alguma experiência com fotos baseadas em filmes, provavelmente perceberá que as etapas descritas acima lembram bastante os procedimentos de revelação de fotografias. De fato, os princípios são essencialmente os mesmos.
É importante frisar que um único processador pode conter milhões de transistores. Só como exemplo, os primeiros processadores da linha Intel Core 2 Duo possuem cerca de 291 milhões de transistores em um único chip. Assim como acontece com qualquer processador, esses transistores são divididos e organizados em agrupamentos, onde cada grupo é responsável por uma função.
Uma vez terminada a montagem dos transistores, os wafers são "recortados" em um formato que lembra pequenos quadrados ou pastilhas. Cada unidade se transformará em um processador. Como os wafers são redondos, o que sobra da borda, obviamente, não pode virar um processador, então esse material é descartado, assim como qualquer unidade que apresentar defeito ou anormalidade.
Você pode ter se perguntado se não seria ideal fabricar wafers quadrados ou retangulares para evitar desperdício na borda. Teoricamente, seria, mas os wafers são formados por cilindros devido à técnica de fabricação explicada no início deste tópico, onde uma haste é inserida em silício e, em seguida, retirada e girada. Esse procedimento faz com que um cilindro seja constituído naturalmente.
Wafer de silício - repare que as bordas são desperdiçadas - Imagem por Intel
Wafer de silício - repare que as bordas são desperdiçadas - Imagem por Intel
É importante frisar que cada wafer dá origem a centenas de processadores, portanto, todo o processo de fabricação é realizado com base em uma série de cuidados. Para começar, os laboratórios das fábricas são locais extremamente limpos e protegidos (conhecidos como "clean room"), tanto é que as poucas pessoas que acompanham a produção utilizam roupas que lembram astronautas (como mostra a segunda foto deste tópico). Além disso, as máquinas responsáveis pela produção precisam estar perfeitamente ajustadas para seguir as instruções dos projetos dos chips que estão sendo fabricados.
Wafer, pastilha (die), processador - Montagem baseada em imagens da Intel
Wafer, pastilha (die), processador - Montagem baseada em imagens da Intel

Diferença de clock

Quando os processadores chegam ao mercado, eles são classificados em linhas, por exemplo, Intel Core 2 Duo, AMD Phenom II e assim por diante. Cada uma dessas linhas é constituída por processadores de diversas velocidades de processamento. Como exemplo, a linha Intel Core 2 Duo possui os modelos E8400, E8500 e E8600. O que os diferencia é que o clock do primeiro é de 3 GHz, o clock do segundo é de 3,16 GHz e, por fim, o clock do terceiro é de 3,33 GHz.
Todos esses processadores são oriundos do mesmo projeto, portanto, têm a mesma arquitetura. O que torna um modelo mais rápido que o outro é que a fabricação do mais veloz foi mais perfeita que a dos modelos imediatamente inferiores. Pequenos detalhes durante todo o processo de fabricação fazem com que, dentro de um mesmo wafer, as "pastilhas" sejam ligeiramente diferentes uma das outras. Isso pode acontecer, por exemplo, em virtude de pequenos desvios nas camadas, em pequenas diferenças na passagem do feixe de luz, entre outros.
Por esse motivo, os wafers passam por testes que apontam com qual frequência cada chip pode utilizar. Apenas depois disso é que o wafer é cortado e os chips passam para a fase de encapsulamento. Esses testes também apontam quais chips deverão ser descartados por não terem condições de uso.

Miniaturalização

A indústria conseguiu elevar a capacidade dos processadores ao longo do tempo sem que, para tanto, tivesse que aumentar o tamanho físico desses dispositivos. Esse feito é possível graças à nanotecnologia, em poucas palavras, um ramo da ciência que envolve as pesquisas que lidam com itens medidos na casa dos nanômetros. Para quem não sabe, um nanômetro equivale a um milionésimo de milímetro, isto é, um milímetro dividido por um milhão, e sua sigla é nm. A medida mais usada, no entanto, é o micron, que equivale a um milésimo de milímetro, ou seja, um milímetro dividido por mil.
Graças às pesquisas de nanotecnologia, é possível deixar os transistores dos chips cada vez menores. O processador Intel 486, por exemplo, tem cerca de 1 milhão de transistores, sendo que cada um deles conta com praticamente 1 micron de tamanho. Muito pequeno, não? Na verdade, é um tamanho monstruoso, se comparado aos processadores atuais. Só para você ter uma ideia, neste artigo já foi dito que os primeiros processadores da linha Intel Core 2 Duo contam com cerca de 291 milhões de transistores. Esses chips utilizam tecnologia de fabricação de 0,065 micron (ou 65 nanômetros), sendo que os mais recentes dessa linha são fabricados com 0,045 micron (45 nanômetros).
As pesquisas sobre miniaturalização de chips indicam que será possível levar esse processo até a casa dos 25 nanômetros (ou um valor não muito menor que isso). Depois disso, a indústria chegará a um limite físico onde os transistores provavelmente serão formados por poucos átomos e não poderão mais ser diminuídos. É claro que pesquisas já estão em andamento para criar uma saída para esse problema. Uma delas é a "computação quântica" , que muito mais que contornar os limites físicos dos processadores da "computação clássica", poderá revolucionar a computação como um todo.

Encapsulamento dos processadores

Nas etapas de encapsulamento, o processador é inserido em uma espécie de "carcaça" que o protege e contém contatos metálicos para a sua comunicação com os componentes do computador. Cada modelo de processador pode contar com tipos de encapsulamento diferentes, que variam conforme o seu projeto. Em geral, os processadores possuem em sua parte superior uma espécie de "tampa" metálica chamada "Integrated Heat Spreader" (IHS), que serve para protegê-lo e, muitas vezes, para facilitar a dissipação de calor. Esse componente normalmente cobre toda a parte superior do chip e, dentro dele, no centro, fica o processador em si (também chamado de "die"). No entanto, em alguns modelos, o IHS não é utilizado. Nesses casos, a ausência dessa proteção pode facilitar a dispersão de calor devido ao contato direto do die com o cooler (ventoinha) do processador e reduzir custos de fabricação.
É importante frisar que há várias tecnologias usadas no encapsulamento dos processadores. A aplicação de cada uma varia conforme o projeto do chip. Eis os tipos principais, tendo como base tecnologias da Intel:
- PGA: sigla de Pin Grid Array (algo como "matriz de pinos"), esse é um tipo de encapsulamento que faz com que o processador utilize pinos de contato que devem ser inseridos em um encaixe adequado na placa-mãe do computador (ver soquete, logo abaixo). Seu material básico pode ser cerâmica (Ceramic Pin Grid Array - CPGA) ou plástico (Plastic Pin Grid Array - PPGA). Há também um tipo chamado Flip Chip Pin Grid Array (FC-PGA) onde a pastilha fica parcialmente exposto na parte superior do chip;
Intel Pentium 4 - Encapsulamento FC-PGA2, que é semelhante ao FC-PGA, mas conta com um IHS (não presente no FC-PGA)
Intel Pentium 4 - Encapsulamento FC-PGA2, que é semelhante ao FC-PGA,
mas conta com um IHS (não presente no FC-PGA)

- SECC: sigla para Single Edge Contact Cartridge, este tipo faz com que o processador utilize um encaixe linear (ligeiramente semelhante aos slots de memória, por exemplo) ao invés de contatos em formato de pinos. Para isso, o processador é montado dentro de uma espécie de cartucho;
Intel Pentium II - Encapsulamento SECC - Imagem por Intel
Intel Pentium II - Encapsulamento SECC - Imagem por Intel

- SEPP: sigla para Single Edge Processor Package, este tipo é semelhante ao SECC, no entanto, o processador fica acoplado em um placa que não é protegida por um cartucho;
- LGA: sigla para Land Grid Array, esse é um padrão recente da Intel. Tem alguma semelhança com os padrões PGA, tendo como principal diferença o fato de que os processadores não utilizam pinos de contato em sua parte inferior, mas sim pontos metálicos. Quando o processador é encaixado na placa-mãe, esses pontos ficam em contato com pinos existentes no soquete (lembrando que nos padrões PGA há furos ao invés de pinos no soquete). No que se refere ao LGA, a Intel utilizava (até o fechamento deste texto no InfoWester) um tipo chamado FC-LGA4 (Flip Chip Land Grid Array, onde o número 4 indica o número de revisão do padrão).
Processador com encapsulamento FC-LGA4 - Repare que n�o h� pinos, somente contatos met�licos - Imagem por Wikimedia
Processador com encapsulamento FC-LGA4 -
Repare que não há pinos, somente contatos metálicos -
Imagem por Wikimedia

Na parte inferior dos processadores com encapsulamentos nos padrões PGA e semelhantes, ficam expostos uma série de contatos metálicos que fazem a comunicação entre o processador em si e os componentes do computador. Para isso, esse contatos são encaixados em uma área apropriada na placa-mãe da máquina, chamada de soquete (ou socket). Acontece que a quantidade e a disposição desses pinos varia conforme o modelo do processador. Por exemplo, a linha Intel Core 2 Duo e alguns dos modelos mais recentes da linha Pentium 4 utilizam o soquete 775 (LGA 775):
Soquete LGA 775 - Imagem por Intel
Soquete LGA 775 - Imagem por Intel
Já os processadores AMD Phenom X4 utilizam o soquete AM2+:
Soquete AM2/AM2+ - Imagem por Wikipedia
Soquete AM2/AM2+ - Imagem por Wikipedia
Processador Phenom X4 - Imagem por AMD
Processador Phenom X4 - Imagem por AMD

Isso deixa claro que é necessário utilizar placa-mãe e processador com o mesmo soquete no momento de montar um computador. Porém, é importante frisar que isso não é garantia de compatibilidade entre ambos. É possível, por exemplo, que uma determinada placa-mãe utilize o mesmo soquete de um processador lançado depois de sua chegada ao mercado. Apesar de ambos terem o mesmo soquete, uma incompatibilidade pode ocorrer, já que o chipset da placa-mãe pode não ter sido preparado para receber aquele processador. Por essa razão, é importante checar sempre no site do fabricante ou no manual da placa-mãe quais processadores esta suporta.
Note que a disposição de pinos (ou pontos de contato, no caso de chips com encapsulamento do tipo LGA) é feita de forma que o usuário tenha apenas uma forma de encaixar o processador na placa-mãe. Com isso, impede-se inserções erradas que possam resultar em danos ao computador. Por essa razão, se o usuário não estiver conseguindo encaixar o processador, deve evitar esforços e procurar no manual da placa-mãe a orientação correta.


Nomes-código dos núcleos

Todo processador chega ao mercado tendo um nome que permita facilmente identificá-lo, como Pentium 4, Core 2 Duo, Itanium, Athlon 64, Phenom, etc. O que pouca gente sabe é que o núcleo dos processadores recebe outra denominação antes mesmo de seu lançamento oficial: o nome-código.
A utilização de nomes-código é importante porque permite distinguir as características de arquitetura de cada chip. Mesmo dentro de uma determinada linha é possível encontrar processadores com diferenças em seu projeto. Podemos utilizar como exemplo os primeiros modelos da linha Intel Core 2 Duo, que são baseados nos núcleos de nomes Conroe e Merom. O primeiro é direcionado a desktops, enquanto que o segundo é voltado a computadores portáteis (como notebooks). Sendo assim, o Merom possui recursos que otimizam seu desempenho para exigir menos energia (por exemplo, utiliza voltagem menor e FSB reduzido, se comparado ao Conroe).


Finalizando





Via Shopping UOL
Os processadores são dispositivos altamente complexos, mas igualmente fascinantes. Chega a ser difícil acreditar que um chip que cabe na ponta do dedo pode realizar tantas coisas. Infelizmente, não é possível encontrar muitos documentos e imagens que detalhem os locais e as etapas da fabricação dos processadores. E não é difícil entender o motivo: esses lugares são bastante protegidos e contam com uma política extremamente rigorosa de acesso, pois simples grãos de poeira ou até mesmo as luzes do flash das câmeras podem prejudicar a produção. Além disso, é notório que cada fabricante tenta se proteger de espionagem industrial.
De qualquer forma, o texto apresentado contém explicações que ajudam não só a entender um pouco da fabricação dos processadores, mas também muitos dos conceitos que os cercam. Para saber mais, você pode consultar a primeira parte deste artigo, se já não o fez, e acessar as páginas que serviram de referência para esta matéria:

Memórias

                                                                Introdução

No que se refere ao hardware dos computadores, entendemos como memória os dispositivos que armazenam os dados com os quais o processador trabalha. Há, essencialmente, duas categorias de memórias: ROM (Read-Only Memory), que permite apenas a leitura dos dados e não perde informação na ausência de energia; e RAM (Random-Access Memory), que permite ao processador tanto a leitura quanto a gravação de dados e perde informação quando não há alimentação elétrica. Neste artigo, o InfoWester apresenta os principais tipos de memórias ROM e RAM, assim como mostra as características mais importantes desses dispositivos, como frequência, latência, encapsulamento, tecnologia, entre outros.

Memória ROM

As memórias ROM (Read-Only Memory - Memória Somente de Leitura) recebem esse nome porque os dados são gravados nelas apenas uma vez. Depois disso, essas informações não podem ser apagadas ou alteradas, apenas lidas pelo computador, exceto por meio de procedimentos especiais. Outra característica das memórias ROM é que elas são do tipo não voláteis, isto é, os dados gravados não são perdidos na ausência de energia elétrica ao dispositivo. Eis os principais tipos de memória ROM:
- PROM (Programmable Read-Only Memory): esse é um dos primeiros tipos de memória ROM. A gravação de dados neste tipo é realizada por meio de aparelhos que trabalham através de uma reação física com elementos elétricos. Uma vez que isso ocorre, os dados gravados na memória PROM não podem ser apagados ou alterados;
- EPROM (Erasable Programmable Read-Only Memory): as memórias EPROM têm como principal característica a capacidade de permitir que dados sejam regravados no dispositivo. Isso é feito com o auxílio de um componente que emite luz ultravioleta. Nesse processo, os dados gravados precisam ser apagados por completo. Somente depois disso é que uma nova gravação pode ser feita;
- EEPROM (Electrically-Erasable Programmable Read-Only Memory): este tipo de memória ROM também permite a regravação de dados, no entanto, ao contrário do que acontece com as memórias EPROM, os processos para apagar e gravar dados são feitos eletricamente, fazendo com que não seja necessário mover o dispositivo de seu lugar para um aparelho especial para que a regravação ocorra;
- EAROM (Electrically-Alterable Programmable Read-Only Memory): as memórias EAROM podem ser vistas como um tipo de EEPROM. Sua principal característica é o fato de que os dados gravados podem ser alterados aos poucos, razão pela qual esse tipo é geralmente utilizado em aplicações que exigem apenas reescrita parcial de informações;
- Flash: as memórias Flash também podem ser vistas como um tipo de EEPROM, no entanto, o processo de gravação (e regravação) é muito mais rápido. Além disso, memórias Flash são mais duráveis e podem guardar um volume elevado de dados. É possível saber mais sobre esse tipo de memória no artigo Cartões de memória Flash, publicado aqui no InfoWester;
- CD-ROM, DVD-ROM e afins: essa é uma categoria de discos ópticos onde os dados são gravados apenas uma vez, seja de fábrica, como os CDs de músicas, ou com dados próprios do usuário, quando o próprio efetua a gravação. Há também uma categoria que pode ser comparada ao tipo EEPROM, pois permite a regravação de dados: CD-RW e DVD-RW e afins.

Memória RAM

As memórias RAM (Random-Access Memory - Memória de Acesso Aleatório) constituem uma das partes mais importantes dos computadores, pois são nelas que o processador armazena os dados com os quais está lidando. Esse tipo de memória tem um processo de gravação de dados extremamente rápido, se comparado aos vários tipos de memória ROM. No entanto, as informações gravadas se perdem quando não há mais energia elétrica, isto é, quando o computador é desligado, sendo, portanto, um tipo de memória volátil.
Há dois tipos de tecnologia de memória RAM que são muitos utilizados: estático e dinâmico, isto é, SRAM e DRAM, respectivamente. Há também um tipo mais recente chamado de MRAM. Eis uma breve explicação de cada tipo:
- SRAM (Static Random-Access Memory - RAM Estática): esse tipo é muito mais rápido que as memórias DRAM, porém armazena menos dados e possui preço elevado se considerarmos o custo por megabyte. Memórias SRAM costumam ser utilizadas como cache (saiba mais sobre cache neste artigo sobre processadores);
- DRAM (Dynamic Random-Access Memory - RAM Dinâmica): memórias desse tipo possuem capacidade alta, isto é, podem comportar grandes quantidades de dados. No entanto, o acesso a essas informações costuma ser mais lento que o acesso às memórias estáticas. Esse tipo também costuma ter preço bem menor quando comparado ao tipo estático;
- MRAM (Magnetoresistive Random-Access Memory - RAM Magneto-resistiva): a memória MRAM vem sendo estudada há tempos, mas somente nos últimos anos é que as primeiras unidades surgiram. Trata-se de um tipo de memória até certo ponto semelhante à DRAM, mas que utiliza células magnéticas. Graças a isso, essas memórias consomem menor quantidade de energia, são mais rápidas e armazenam dados por um longo tempo, mesmo na ausência de energia elétrica. O problema das memórias MRAM é que elas armazenam pouca quantidade de dados e são muito caras, portanto, pouco provavelmente serão adotadas em larga escala.

Aspectos do funcionamento das memórias RAM

As memórias DRAM são formadas por chips que contém uma quantidade elevadíssima de capacitores e transistores. Basicamente, um capacitor e um transistor, juntos, formam uma célula de memória. O primeiro tem a função de armazenar corrente elétrica por um certo tempo, enquanto que o segundo controla a passagem dessa corrente.
Se o capacitor estiver armazenamento corrente, tem-se um bit 1. Se não estiver, tem-se um bit 0. O problema é que a informação é mantida por um curto de período de tempo e, para que não haja perda de dados da memória, um componente do controlador de memória é responsável pela função de refresh (ou refrescamento), que consiste em regravar o conteúdo da célula de tempos em tempos. Note que esse processo é realizado milhares de vezes por segundo.
O refresh é uma solução, porém acompanhada de "feitos colaterais": esse processo aumenta o consumo de energia e, por consequência, aumenta o calor gerado. Além disso, a velocidade de acesso à memória acaba sendo reduzida.
A memória SRAM, por sua vez, é bastante diferente da DRAM e o principal motivo para isso é o fato de que utiliza seis transistores (ou quatro transistores e dois resistores) para formar uma célula de memória. Na verdade, dois transistores ficam responsáveis pela tarefa de controle, enquanto que os demais ficam responsáveis pelo armazenamento elétrico, isto é, pela formação do bit. A vantagem desse esquema é que o refresh acaba não sendo necessário, fazendo com que a memória SRAM seja mais rápida e consuma menos energia. Por outro lado, como sua fabricação é mais complexa e requer mais componentes, o seu custo acaba sendo extremamente elevado, encarecendo por demais a construção de um computador baseado somente nesse tipo. É por isso que sua utilização mais comum é como cache, pois para isso são necessárias pequenas quantidades de memória.
Como as memórias DRAM são mais comuns, eles serão o foco deste texto a partir deste ponto.

CAS e RAS

O processador armazena na memória RAM as informações com os quais trabalha, portanto, a todo momento, operações de gravação, eliminação e acesso aos dados são realizadas. Esse trabalho todo é possível graças ao trabalho de um circuito já citado chamado controlador de memória.
Para facilitar a realização dessas operações, as células de memória são organizadas em uma espécie de matriz, ou seja, são orientadas em um esquema que lembra linhas e colunas. O cruzamento de uma certa linha (também chamada de wordline), com uma determinada coluna (também chamada de bitline) forma o que conhecemos como endereço de memória. Assim, para acessar o endereço de uma posição na memória, o controlador obtém o seu valor de coluna, ou seja, o valor RAS (Row Address Strobe) e o seu valor de linha, ou seja, o valor CAS (Column Address Strobe).
RAS e CAS

Temporização e latência das memórias

Os parâmetros de temporização e latência indicam quanto tempo o controlador de memória gasta com as operações de leitura e escrita. Em geral, quanto menor esse valores, mais rápidas são as operações.
Para que você possa entender, tomemos como exemplo um módulo de memória que informa os seguintes valores em relação à latência: 5-4-4-15-1T. Esse valor está escrito nesta forma: tCL-tRCD-tRP-tRAS-CR. Vejamos o que cada um desses parâmetros significa:
- tCL (CAS Latency): quando uma operação de leitura de memória é iniciada, sinais são acionados para ativar as linhas (RAS) e as colunas (RAS) correspondentes, determinar se a operação é de leitura ou escrita (CS - Chip Select) e assim por diante. O parâmetro CAS Latency indica, em ciclos de clock (saiba mais sobre clock nesta matéria sobre processadores), qual o período que há entre o envio do sinal CAS e a disponibilização dos respectivos dados. Em outras palavras, é o intervalo existente entre a requisição de um dado pelo processador e a entrega deste pela memória. Assim, no caso do nosso exemplo, esse valor é de 5 ciclos de clock;
- tRCD (RAS to CAS Delay): esse parâmetro indica, também em ciclos de clock, o intervalo que há entre a ativação da linha e da coluna de um determinado dado. No exemplo acima, esse valor corresponde a 4;
- tRP (RAS Precharge): intervalo em clocks que informa o tempo gasto entre desativar o acesso a uma linha e ativar o acesso a outra. Em nosso exemplo, esse valor é de 4 ciclos;
- tRAS (Active to Precharge Delay): esse parâmetro indica o intervalo, também em clocks, necessário entre um comando de ativar linha e a próxima ação do mesmo tipo. Em nosso exemplo, esse valor é de 15 ciclos de clock;
- CR (Command Rate): intervalo que há entre a ativação do sinal CS e qualquer outro comando. Em geral, esse valor é de 1 ou 2 ciclos de clock e é acompanhado da letra T. No nosso exemplo esse valor é de 1 ciclo.
Esses parâmetros costumam ser informados pelo fabricante em um etiqueta colada ao pente de memória (muitas vezes, o valor de CMD não é informado). Quando isso não ocorre, é possível obter essa informação através de softwares específicos (como o gratuito CPU-Z, para Windows, mostrado abaixo) ou mesmo pelo setup do BIOS.
CPU-Z exibindo dados sobre memória
CPU-Z exibindo dados sobre memória

Os parâmetros de temporização fornecem uma boa noção do tempo de acesso das memórias. Note que, quando falamos disso, nos referimos ao tempo que a memória leva para fornecer os dados requisitados. O que não foi dito acima é que esse tempo é medido em nanossegundos (ns), isto é, 1 segundo dividido por 1.000.000.000.
Assim, para se ter uma noção de qual é a frequência máxima utilizada pela memória, basta dividir 1000 pelo seu tempo de acesso em nanossegundos (essa informação pode constar em uma etiqueta no módulo ou pode ser informada através de softwares especiais). Por exemplo: se um pente de memória trabalha com 15 ns, sua frequência é de 66 MHz, pois 1000/15=66.

Outros parâmetros

Algumas placas-mãe atuais ou direcionadas ao público que faz overclock (em poucas palavras, prática onde dispositivos de hardware são ajustados para que trabalhem além das especificações de fábrica) ou, ainda, softwares que detalham as características do hardware do computador, costumam informar outros parâmetros, além dos mencionados acima. Geralmente, estes parâmetros adicionais são informados da seguinte forma: tRC-tRFC-tRRD-tWR-tWTR-tRTP (por exemplo: 22-51-3-6-3-3), também considerando ciclos de clock. Vejamos o que cada um significa:
- tRC (Row Cycle): consiste no tempo necessário para que se complete um ciclo de acesso a uma linha da memória;
- tRFC (Row Refresh Cycle): consiste no tempo necessário para a execução dos ciclos de refresh da memória;
- tRRD (Row To Row Delay): semelhante ao tRP, mas considera o tempo que o controlador necesita esperar após uma nova linha ter sido ativada;
- tWR (Write Recovery): informa o tempo necessário para que o controlador de memória comece a efetuar uma operação de escrita após realizar uma operação do mesmo tipo;
- tWTR (Write to Read Delay): consiste no tempo necessário para que o controlador de memória comece a executar operações de leitura após efetuar uma operação de escrita;
- tRTP (Read to Precharge Delay): indica o tempo necessário entre uma operação de leitura efetuada e ativação do próximo sinal.

Voltagem

Em comparação com outros itens de um computador, as memórias são um dos componentes que menos consomem energia. O interessante é que esse consumo diminuiu com a evolução da tecnologia. Por exemplo, módulos de memória DDR2 (tecnologia que ainda será abordada neste texto), em geral, exigem entre 1,8 V e 2,5 V. É possível encontrar pentes de memória DDR3 (padrão que também será abordado neste artigo) cuja exigência é de 1,5 V. Módulos de memória antigos exigiam cerca de 5 V.
Algumas pessoas com bastante conhecimento no assunto fazem overclock nas memórias aumentando sua voltagem. Com esse ajuste, quando dentro de certos limites, é possível obter níveis maiores de clock.

SPD (Serial Presence Detect)

O SPD é um pequeno chip (geralmente do tipo EEPROM) inserido nos módulos de memória que contém diversas informações sobre as especificações do dispositivo, como tipo (DDR, DDR2, etc), voltagem, temporização/latência, fabricante, número de série, etc.
Chip SPD
Chip SPD
Muitas placas-mãe contam com um setup de BIOS que permite uma série de ajustes de configuração. Nesses casos, um usuário experimente pode definir os parâmetros da memória, no entanto, quem não quiser ter esse trabalho, pode manter a configuração padrão. Algumas vezes, essa configuração é indicada por algo relacionado ao SPD, como mostra a imagem abaixo:
Exemplo de ajuste de memória em setup de BIOS baseado em SPD
Exemplo de ajuste de memória em setup de BIOS baseado em SPD

Detecção de erros

Alguns mecanismos foram desenvolvidos para ajudar na detecção de erros da memória, falhas essas que podem ter várias causas. Esses recursos são especialmente úteis em aplicações de alta confiabilidade, como servidores de missão crítica, por exemplo.
Um desses mecanismos é a paridade, capaz apenas de ajudar a detectar erros, mas não de corrigí-los. Nesse esquema, um bit é adicionado a cada byte de memória (lembre-se: 1 byte corresponde a 8 bits). Esse bit assume o valor 1 se a quantidade de bits 1 do byte for par e assume o valor 0 (zero) se a referida quantidade por ímpar (o contrário também pode acontecer: 1 para ímpar e 0 para par). Quando a leitura de dados for feita, um circuito verificará se a paridade corresponde à quantidade de bits 1 (ou 0) do byte. Se for diferente, um erro foi detectado.
A paridade, no entanto, pode não ser tão precisa, pois um erro em dois bits, por exemplo, pode fazer com que o bit de paridade corresponda à quantidade par ou ímpar de bits 1 do byte. Assim, para aplicações que exigem alta precisão dos dados, pode-se contar com memórias que tenham ECC (Error Checking and Correction), um mecanismo mais complexo capaz de detectar e corrigir erros de bits.

Tipos de encapsulamento de memória

O encapsulamento correspondente ao artefato que dá forma física aos chips de memória. Eis uma breve descrição dos tipos de encapsulamento mais utilizados pela indústria:
- DIP (Dual In-line Package): um dos primeiros tipos de encapsulamento usados em memórias, sendo especialmente popular nas épocas dos computadores XT e 286. Como possui terminais de contato - "perninhas" - de grande espessura, seu encaixe ou mesmo sua colagem através de solda em placas pode ser feita facilmente de forma manual;
Encapsulamento DIP - Imagem por Wikipedia
Encapsulamento DIP - Imagem por Wikipedia
- SOJ (Small Outline J-Lead): esse encapsulamento recebe este nome porque seus terminais de contato lembram a letra 'J'. Foi bastante utilizado em módulos SIMM (vistos mais à frente) e sua forma de fixação em placas é feita através de solda, não requerendo furos na superfície do dispositivo;
Encapsulamento SOJ
Encapsulamento SOJ
- TSOP (Thin Small Outline Package): tipo de encapsulamento cuja espessura é bastante reduzida em relação aos padrões citados anteriormente (cerca de 1/3 menor que o SOJ). Por conta disso, seus terminais de contato são menores, além de mais finos, diminuindo a incidência de interferência na comunicação. É um tipo aplicado em módulos de memória SDRAM e DDR (que serão abordados adiante). Há uma variação desse encapsulamento chamado STSOP (Shrink Thin Small Outline Package) que é ainda mais fino;
Encapsulamento TSOP
Encapsulamento TSOP
- CSP (Chip Scale Package): mais recente, o encapsulamento CSP se destaca por ser "fino" e por não utilizar pinos de contato que lembram as tradicionais "perninhas". Ao invés disso, utiliza um tipo de encaixe chamado BGA (Ball Grid Array). Esse tipo é utilizado em módulos como DDR2 e DDR3 (que serão vistos à frente).
Encapsulamento CSP
Encapsulamento CSP

Módulos de memória

Entendemos como módulo ou, ainda, pente, uma pequena placa onde são instalados os encapsulamentos de memória. Essa placa é encaixada na placa-mãe por meio de encaixes (slots) específicos para isso. Eis uma breve descrição dos tipos mais comuns de módulos:
- SIPP (Single In-Line Pins Package): é um dos primeiros tipos de módulos que chegaram ao mercado. É formato por chips com encapsulamento DIP. Em geral, esses módulos eram soldados na placa-mãe;
- SIMM (Single In-Line Memory Module): módulos deste tipo não eram soldados, mas encaixados na placa-mãe. A primeira versão continha 30 terminais de contato (SIMM de 30 vias) e era formada por um conjunto de 8 chips (ou 9, para paridade). Com isso, podiam transferir um byte por ciclo de clock. Posteriormente surgiu uma versão com 72 pinos (SIMM de 72 vias), portanto, maior e capaz de transferir 32 bits por vez. Módulos SIMM de 30 vias podiam ser encontrados com capacidades que iam de 1 MB a 16 MB. Módulos SIMM de 72 vias, por sua vez, eram comumente encontrados com capacidades que iam de 4 MB a 64 MB;
- DIMM (Double In-Line Memory Module): os módulos DIMM levam esse nome por terem terminais de contatos em ambos os lados do pente. São capazes de transmitir 64 bits por vez. A primeira versão - aplicada em memória SDR SDRAM - tinha 168 pinos. Em seguida, foram lançados módulos de 184 vias, utilizados em memórias DDR, e módulos de 240 vias, utilizados em módulos DDR2 e DDR3. Existe um padrão DIMM de tamanho reduzido chamado SODIMM (Small Outline DIMM), que são utilizados principalmente em computadores portáteis, como notebooks;
- RIMM (Rambus In-Line Memory Module): formado por 168 vias, esse módulo é utilizado pelas memórias Rambus, que serão abordadas ainda neste artigo. Um fato curioso é que para cada pente de memória Rambus instalado no computador é necessário instalar um módulo "vazio", de 184 vias, chamado de C-RIMM (Continuity-RIMM).
Módulo de memória inserida em um slot
Módulo de memória inserida em um slot

Tecnologias de memórias

Várias tecnologias de memórias foram (e são) criadas com o passar do tempo. É graças a isso que, periodicamente, encontramos memórias mais rápidas, com maior capacidade e até memórias que exigem cada vez menos energia. Eis uma breve descrição dos principais tipos de memória RAM:
- FPM (Fast-Page Mode): uma das primeiras tecnologias de memória RAM. Com o FPM, a primeira leitura da memória tem um tempo de acesso maior que as leituras seguintes. Isso porque são feitos, na verdade, quatro operações de leitura seguidas, ao invés de apenas uma, em um esquema do tipo x-y-y-y, por exemplo: 3-2-2-2 ou 6-3-3-3. A primeira leitura acaba sendo mais demorada, mas as três seguintes são mais rápidas. Isso porque o controlador de memória trabalha apenas uma vez com o endereço de uma linha (RAS) e, em seguida, trabalha com uma sequência de quatro colunas (CAS), ao invés de trabalhar com um sinal de RAS e um de CAS para cada bit. Memórias FPM utilizavam módulos SIMM, tanto de 30 quanto de 72 vias;
- EDO (Extended Data Output): a sucessora da tecnologia FPM é a EDO, que possui como destaque a capacidade de permitir que um endereço da memória seja acessado ao mesmo tempo em que uma solicitação anterior ainda está em andamento. Esse tipo foi aplicado principalmente em módulos SIMM, mas também chegou a ser encontrado em módulos DIMM de 168 vias. Houve também uma tecnologia semelhante, chamada BEDO (Burst EDO), que trabalhava mais rapidamente por ter tempo de acesso menor, mas quase não foi utilizada, pois tinha custo maior por ser de propriedade da empresa Micron. Além disso, foi "ofuscada" pela chegada da tecnologia SDRAM;
Módulo de memória EDO
Módulo de memória EDO
- SDRAM (Synchronous Dynamic Random Access Memory): as memórias FPM e EDO são assíncronas, o que significa que não trabalham de forma sincronizada com o processador. O problema é que, com processadores cada vez mais rápidos, isso começou a se tornar um problema, pois muitas vezes o processador tinha que esperar demais para ter acesso aos dados da memória. As memórias SDRAM, por sua vez, trabalham de forma sincronizada com o processador, evitando os problemas de atraso. A partir dessa tecnologia, passou-se a considerar a frequência com a qual a memória trabalha para medida de velocidade. Surgiam então as memórias SDR SDRAM (Single Data Rate SDRAM), que podiam trabalhar com 66 MHz, 100 MHz e 133 MHz (também chamadas de PC66, PC100 e PC133, respectivamente). Muitas pessoas se referem a essa memória apenas como "memórias SDRAM" ou, ainda, como "memórias DIMM", por causa de seu módulo. No entanto, a denominação SDR é a mais adequada;
Módulo de memória SDR SDRAM
Módulo de memória SDR SDRAM -
Observe que neste tipo há duas divisões entre os terminais de contato

- DDR SDRAM (Double Data Rate SDRAM): as memórias DDR apresentam evolução significativa em relação ao padrão SDR, isso porque elas são capazes de lidar com o dobro de dados em cada ciclo de clock (memórias SDR trabalham apenas com uma operação por ciclo). Assim, uma memória DDR que trabalha à frequência de 100 MHz, por exemplo, acaba dobrando seu desempenho, como se trabalhasse à taxa de 200 MHz. Visualmente, é possível identificá-las facilmente em relação aos módulos SDR, porque este último contém duas divisões na parte inferior, onde estão seus contatos, enquanto que as memórias DDR2 possuem apenas uma divisão. Você pode saber mais sobre essa tecnologia na matéria Memória DDR, publicada aqui no InfoWester;
- DDR2 SDRAM: como o nome indica, as memórias DDR2 são uma evolução das memórias DDR. Sua principal característica é a capacidade de trabalhar com quatro operações por ciclo de clock, portanto, o dobro do padrão anterior. Os módulos DDR2 também contam com apenas uma divisão em sua parte inferior, no entanto, essa abertura é um pouco mais deslocada para o lado. Saiba mais sobre essa tecnologia na matéria Memória DDR2, disponibilizada aqui no InfoWester;
Memória DDR2 acima e DDR abaixo. Note que a posição da divisão entre os terminais de contato é diferente.
Memória DDR2 acima e DDR abaixo -
Note que a posição da divisão entre os terminais de contato é diferente

- DDR3 SDRAM: as memórias DDR3 são, obviamente, uma evolução das memórias DDR2. Novamente, aqui dobra-se a quantidade de operações por ciclo de clock, desta vez, de oito. Na época de fechamento deste artigo, as memórias DDR3 ainda não eram muito populares. Saiba mais sobre essa tecnologia nesta matéria da Wikipedia;
.: Livros sugeridos :.
:: Arquitetura de computadores
:: Hardware na prática
:: Hardware: o guia definitivo
Via Shopping UOL
- Rambus (Rambus DRAM): as memórias Rambus recebem esse nome por serem uma criação da empresa Rambus Inc. e chegaram ao mercado com o apoio da Intel. Elas são diferentes do padrão SDRAM, pois trabalham apenas com 16 bits por vez. Em compensação, memórias Rambus trabalham com frequência de 400 MHz e com duas operações por ciclo de clock. Tinham como desvantagens, no entanto, taxas de latência muito altas, aquecimento elevado e maior custo. Memórias Rambus nunca tiveram grande aceitação no mercado, mas também não foram um total fiasco: foram utilizadas, por exemplo, no console de jogos Nintendo 64. Curiosamente, as memórias Rambus trabalham em pares com "módulos vazios" ou "pentes cegos". Isso significa que, para cada módulo Rambus instalado, um "módulo vazio" tem que ser instalado em outro slot. Essa tecnologia acabou perdendo espaço para as memórias DDR.

Finalizando

Com o passar do tempo, a evolução das tecnologias de memórias não somente as torna mais rápidas, mas também faz com que passem a contar com maior capacidade de armazenamento de dados. Memórias ROM do tipo Flash, por exemplo, podem armazenar vários gigabytes. No que se refere às memórias RAM, o mesmo ocorre. Por conta disso, a pergunta natural é: quanto utilizar? A resposta depende de uma série de fatores, no entanto, a indústria não para de trabalhar para aumentar ainda mais a velocidade e a capacidade desses dispositivos. Portanto, não se espante: quando menos você esperar, vai ouvir falar de uma nova tecnologia de memória que poderá se tornar um novo padrão de mercado :)