Sabemos também que, por se tratar de uma memória do tipo “externa” - ou seja, situada fora da placa-mãe - para que os dados armazenados no SSD cheguem à UCP onde são processados, devem ser transportados até lá. E este transporte é feito por meio de um conjunto de condutores elétricos e seus circuitos de controle denominado “barramento”.
Nesta (longa) caminhada em busca do conhecimento sobre SSDs, descobrimos que há barramentos e barramentos, uns mais largos outros mais estreitos, uns onde os bits viajam simultaneamente em linhas paralelas (barramento paralelo) outros em que esta viagem é feita sequencialmente, com os bits se movendo em fila indiana (barramento serial). E que uns são mais rápidos que outros (ou seja, transportam maior quantidade de dados no mesmo intervalo de tempo).
Sabemos ainda, pois não é difícil chegar à esta conclusão, que para que se possa tirar proveito das vantagens dos SSDs no que toca à rapidez de acesso de seus dados, é indispensável que ele esteja conectado à UCP por meio de um barramento igualmente rápido, do contrário ficaríamos na posição do bombeiro que tem um enorme reservatório de água para apagar um incêndio mas não consegue fazê-lo porque em vez de uma mangueira de bombeiro só dispõe de uma de regar jardim para tirar a água do reservatório (não acredito que entre meus preclaros leitores haja algum que não entendeu a metáfora, mas seja lá como for: na analogia o reservatório – de dados – corresponde ao SSD que permite remover seu conteúdo rapidamente o que no caso não é possível porque a mangueira usada para remover seu conteúdo – barramento – só deixa passar um fluxo reduzido. Em resumo: para que se possa usufruir de todas as vantagens de um SSD é preciso que ele esteja conectado à UCP através de um barramento rápido.
Assim, depois de examinar ainda que superficialmente as características principais de cada barramento como tipo e protocolo usado para a troca de dados, e levando em conta o desenvolvimento tecnológico, concluímos que os modernos campeões de velocidade são os barramentos seriais. E no que toca à conexão com dispositivos externos, se destacam particularmente os barramentos SATA e PCIe. Sendo que este último pode absorver um fluxo de dados bem maior que o anterior.
O que faria dele a escolha óbvia não fosse por uma razão: os barramentos SATA foram concebidos especificamente para dispositivos de memória externa (no caso, na época em que foram criados, discos magnéticos de alto desempenho) e, portanto, já dispõem dos protocolos e demais características adequados a esta tarefa, o que não ocorre com o PCIe. Para aproveitar o maior fluxo de dados do PCIe são necessárias algumas adaptações tanto no protocolo (para permitir que a comunicação seja eficaz) quanto nos conectores (para permitir que a interligação elétrica entre dispositivo e barramento seja feita de forma correta).
E vimos que estas adaptações geraram dois tipos de SSD capazes de se conectar ao barramento PCIe: o SATAe e o NVMe, que se juntaram ao SATA padrão, ainda o mais utilizado.
Prosseguimos nossa caminhada discutindo as características do padrão NVMe (acrônimo de “Non-Volatile Memory express”), desenvolvido especificamente para permitir a conexão direta de SSDs ao barramento PCIe sem qualquer concessão ao padrão SATA. Ele exigiu o desenvolvimento de uma nova controladora de SSDs, a NMVHCI (“Non-Volatile Memory Host Controller Interface”), que adere ao protocolo PCie e usa os mesmos conectores padrão PCIe para interligar os SSD NVMe à UCP, inclusive permitindo a conexão direta de SSDs aos conectores (“slots”) PCIe da placa-mãe. O que acabou permitindo fabricar SSDs que em nada se parecem com “discos” já que são constituídos meramente de um circuito impresso que contém os circuitos integrados de memória e da controladora, terminado por um conjunto de contatos elétricos que podem ser encaixados diretamente nos conectores padrão PCIe de uma placa-mãe. Este novo formato (ou “fator de forma”) foi denominado M2 (e é também conhecido pelo acrônimo NGFF, de “New Generation Form Factor”, a forma pela qual os técnicos a ele se referiam quando ainda estava em desenvolvimento).
O fator de forma M2, já foi padronizado e apresenta dimensões que podem ser surpreendentemente pequenas (30mm x 30mm) sendo, portanto, ideal para os dispositivos de memória externa dos novos portáteis finíssimos, como os Ultrabooks, ou pelos ainda mais finos tabletes.
Pronto, finalmente chegamos novamente ao ponto onde paramos na coluna anterior. A hora de discutir os SSD SATAe.
SATAe, ou SATA express, nada mais é que um adendo à especificação do padrão SATA 3 – e por isto foi denominada SATA 3.2 – que permite conectar a um barramento PCIe um SSD em tudo semelhante ao SSD SATA.
Ora, para que isto seja possível, não apenas foi necessário alterar alguns pontos do protocolo de comunicação (já que, como sabemos, os protocolos dos barramentos SATA e PCIe são diferentes) como também desenvolver um novo conector (pelas mesmas razões). Mas, no processo de desenvolvimento, alguém teve uma ideia particularmente inteligente: desenvolver um padrão de conector elétrico que permita, além da conexão de um dispositivo SSD ao barramento PCIe, também conectar através dele um “disco” SSD ou magnético ao velho barramento SATA.
Para que? Ora, para permitir que um sistema ao qual está conectado um dispositivo de armazenamento padrão SATA convencional (magnético ou de memória) possa substitui-lo por um SSD SATAe sem necessidade de trocar a placa-mãe, simplesmente encaixando-o no mesmo conector.
É este conector que é exibido na Figura 1 e por ele começaremos a examinar o padrão SATAe.
SSD: o que são?
SSD são, portanto, dispositivos de armazenamento de massa, ou seja, são capazes de armazenar grande quantidade de dados. E, neste caso considere que o número de bytes abrangidos pela a expressão “grande quantidade” varia enormemente conforme o contexto; os primeiros discos magnéticos podiam conter poucas dezenas de MB enquanto os mais novos podem armazenar alguns TB, ou seja, alguns milhões de MB. Já os primeiros SSD tinham capacidade em torno de 32 GB, como o da Figura 1, enquanto recentemente foi lançado o primeiro exemplar de 1 TB.
No que toca à sua classificação como “memória”, da mesma forma que os discos rígidos magnéticos, SSD podem ser classificados como memória secundária ou externa, aquela situada fora da placa-mãe, cujos dados são acessados através de um barramento.
A diferença básica entre os SSD e os discos magnéticos é que, enquanto nos últimos usa-se pontos magnetizados da superfície de um disco para armazenar dados digitalizados (ou seja, dados codificados numericamente e expressos no sistema numérico de base 2, ou sistema binário), os SSD armazenam os mesmos dados em células de memória “flash”, essencialmente o mesmo tipo de memória de semicondutores usado nos “pen-drives”, estes pequenos dispositivos portáteis que se tornaram tão populares na última década. E como o acesso à memória é centenas – quando não milhares – de vezes mais rápido que o acesso a superfícies magnéticas, os SSD são extraordinariamente mais rápidos que os discos magnéticos. E podem ser bem menores. Veja, na Figura 2, um pequeno disco SSD apoiado sobre um disco magnético comum, de 3,5”, desses usados em nossos computadores de mesa.
Uma descrição detalhada de como funcionam os SSD não caberia aqui, mesmo porque seria redundante: há alguns anos, pouco depois deles terem sido lançados, escrevi alhures uma pequena série de quatro colunas exatamente com este objetivo.
Essencialmente um SSD é um dispositivo de armazenamento de massa que usa circuitos integrados de memória não volátil e não permanente (memória flash) para armazenar dados de forma persistente. Em seu interior não há peças móveis, apenas circuitos eletrônicos. Em virtude disto são absolutamente silenciosos, mais resistentes a choques e muito mais rápidos que discos magnéticos. Sua conexão ao computador usa a mesma interface e conectores dos discos magnéticos (geralmente padrão SATA, embora tenham sido fabricados alguns modelos aderentes ao padrão IDE) portanto podem substituir um disco magnético sem exigir qualquer alteração no hardware ou software (hoje os protocolos de comunicação e interfaces estão sendo alterados para levar em conta a existência dos SSD e tirar máximo proveito de suas vantagens sem, no entanto, perder a compatibilidade com os discos magnéticos; estas alterações serão discutidas adiante).
Os primeiros SSD, se comparados aos discos magnéticos, a par de suas imensas vantagens apresentavam três desvantagens sérias: custo muito superior (de cinco a oito vezes maior), menor capacidade (há dois ou três anos os de maior capacidade armazenavam 128 GB) e um problema inerente às memórias tipo flash: vida útil limitada pelo número de vezes que se gravam dados na memória.
Este último ponto merece uma explicação mais detalhada. A memória secundária deve ser do tipo não volátil (preserva dos dados nela armazenados mesmo quando não alimentada por energia elétrica) e não permanente (permite alterar os valores armazenados sobrescrevendo os anteriormente gravados nas diversas células de memória). Para um disco magnético isto não representa problema: como os dados são armazenados através de pontos magnetizados nas superfícies dos discos, eles podem aí permanecer indefinidamente com ou sem alimentação elétrica e, para alterá-los, basta aplicar novamente um campo magnético sobre cada ponto. Já memórias flash são diferentes. Sendo memórias de semicondutores, para que não seja alterado o estado da célula ao longo do tempo (ou seja, para não “perder” o dado nela armazenado) é preciso manter sempre uma tensão elétrica aplicada. Por outro lado, para ser não volátil, a memória deve manter os dados mesmo quando não alimentada por energia elétrica. Estas duas características aparentemente irreconciliáveis foram engenhosamente combinadas na memória flash mediante o uso de um componente interno adicional, o “float gate”, que preserva a carga elétrica aplicada à célula de memória mesmo quando o circuito externo não é alimentado.
Funciona perfeitamente, como sabem todos os que usam “pen-drives” para carregar dados de um lado para outro. Mas tem um inconveniente: cada vez que uma nova tensão elétrica é aplicada sobre ele, o “float gate” perde um pouquinho, só um pouquinho, de sua capacidade de manter a carga. Resultado: com o passar do tempo e depois de alguns bilhões de vezes que teve seu estado alterado, ele acaba se tornando totalmente incapaz de manter a carga e a célula não mais consegue manter o dado nela armazenado quando se corta a alimentação elétrica. Por isto a memória flash tem sua vida útil limitada. Como isto só acontece quando novas cargas são sucessivamente aplicadas sobre a célula, a vida útil depende do número de vezes que o valor da célula é alterado, ou seja, um novo valor é nela escrito. Já no que toca à operação de leitura, como ela independe da aplicação de tensão para forçar a mudança de estado da célula, pode ser feita um número ilimitado de vezes.
Se tudo isto lhe pareceu complicado, esqueça. Lembre-se apenas do essencial: uma célula de memória flash tem um tempo de vida limitado e este limite depende do número de vezes em que novos dados são nela gravados. Já como pode-se ler os dados quantas vezes se queira sem causar qualquer prejuízo, a operação de leitura não afeta a vida útil.
Logo, a vida útil da memória flash depende da frequência com que novos dados são gravados (adiante veremos como a evolução tecnológica tem tentado contornar este problema).
Até aqui somente nos preocupamos com a forma pela qual os dados são armazenados nos SSD. Mas de nada adianta armazenar dados em uma memória externa se não pudermos transportá-los até a memória primária, ou RAM, quando deles lá necessitamos. Por isto todo SSD tem, em seus circuitos eletrônicos, um microprocessador que coordena a entrada e saída (escrita e leitura) dos dados na unidade, além de executar outras importantes funções como correção de erros, mapeamento de setores defeituosos, controle do “cache” de dados e coisas que tais. Esse componente é de grande importância no que toca ao desempenho dos SSD e voltaremos a abordá-lo adiante.
O transporte de dados entre memórias primária e secundária é feito através de um barramento (conjunto de condutores elétricos e seus dispositivos de controle que interligam os componentes internos e externos de um computador) obedecendo a um protocolo (conjunto de regras que regulam o tráfego de dados no barramento).
Até recentemente o barramento usado para conectar a memória externa com a placa-mãe (onde se aloja a memória RAM) não tinha muita importância, posto que o fluxo de dados através dos barramentos usuais (especialmente o SATA, até recentemente o mais usado pelos SSD e relativamente rápido) era muito maior do que a rapidez com que os dados que nele transitavam podiam ser fornecidos ou recebidos pelos discos magnéticos. Mas com a disseminação dos SSD as coisas mudaram. A rapidez com que podem ser lidos é tanta – e, portanto, o tempo que leva entre uma requisição de leitura e o momento em que os dados estão prontos para serem transferidos, ou tempo de acesso, é tão pequeno – que no caso dos modernos SSD o barramento acabou se transformando em um gargalo.
Isto fez com que se procurasse um barramento mais rápido e se adaptasse a ele o protocolo de transferência de dados.
O barramento mais rápido atualmente disponível é o PCIe, ou PCI Express. Que foi o escolhido para conectar os SSD de grande desempenho. Mas como não se pode conectar a um barramento PCIe um dispositivo que usa o protocolo SATA, foi necessário alterar este protocolo. O que resultou na criação do SATA Express, ou SATAe.