Abstract:
A tendência de intensificação do uso e desenvolvimento de SSDs para aplicações diversificadas abre oportunidades de otimizar ou substituir por completo as técnicas limitantes herdadas dos ultrapassados discos rígidos. Desta forma, um comitê de indústrias fabricantes da tecnologia flash propôs um novo protocolo aberto chamado Non-Volatile Memory Express (NVMe). Este protocolo foi criado com o intuito de reduzir as penalidades de desempenho impostas pelas camadas de software, deixando assim o hardware mais padronizado, almejando alto grau de paralelismo e desempenho para o acesso às memórias flash. Por razão de segredo industrial, os fabricantes da tecnologia não compartilham os detalhes da implementação deste protocolo. Isto acarreta na indisponibilidade de recursos literários recentes neste tópico para a academia, sendo os trabalhos de pesquisa mais relevantes são publicados pela própria indústria. Isto faz com que tanto o SSD quanto o NVMe sejam de complicado alcance aos pesquisadores fora do círculo destas empresas, limitando a contribuição da academia à área. Por este motivo, o projeto apresentado desenvolveu uma solução para habilitar a pesquisa do protocolo NVMe e das características de SSDs, propondo uma plataforma flexível para possibilitar suporte a este desenvolvimento, sendo benéfico tanto para a indústria quanto para a academia. Nesta implementação, lógica programável foi empregada, propondo-se uma plataforma versátil e reconfigurável. Visto a atual situação de estado da arte, não há trabalho no sentido de propor uma plataforma de pesquisa especificamente para o desenvolvimento genérico de SSDs. Este trabalho foi focado na parte de implementação e de teste da Lógica de Tempo Real (LTR) para hardwares comerciais. Foram apresentadas soluções para obtenção de dados do protocolo NVMe e habilitação de acesso à memória ao propor-se três sistemas diferentes: captura e armazenamento de campos NVMe; contagem de comandos NVMe por função, com possibilidade para restrições de campos numéricos; e switch NVMe, para decisão automática do destino de comandos NVMe — baseados em seu próprio conteúdo. Campos armazenados e número de comandos são analisados através de uma interface externa e todas as configurações são introduzidas em tempo real. Estes sistemas são capazes de reduzir a lacuna semântica entre as novas diretrizes e a disponibilidade de acesso à pesquisa. Esta plataforma não se limita apenas aos grandes fabricantes da tecnologia, mas também permitirá assim que o estado da arte seja tangível nas novas linhas de pesquisa almejadas pela comunidade científica.