No presente contexto (engrenagem do consumidor orçamento), Optane é muito claramente apenas referindo-se a um pequeno rápido SSD / NVMe conectado usando a memória 3D XPoint (em vez de flash NAND), dando-lhe uma muito elevada resistência gravação. (Portanto, não se desgastará se usado como espaço de troca).
Isso ainda vai ser péssimo para muitas cargas de trabalho, porque ainda leva uma falha de página e muitos microssegundos para acessar, contra ~ 70 nanossegundos para um acesso DRAM (falta de cache) ; não é diretamente mapeado na memória no barramento de memória da CPU. Além disso, a execução fora de ordem / pré-busca de HW / outro paralelismo de memória pode manter ~ 10 falhas de cache em andamento por núcleo físico, mas uma falha de página está em serialização . Nenhum trabalho útil pode estar acontecendo (neste encadeamento) enquanto o sistema operacional está atendendo a uma falha de página; portanto, não há oportunidade para o executivo da OoO ocultar qualquer latência de falha dessa página. (Mas até 70ns é muito longo para se esconder completamente. Ainda assim, ter várias falhas no voo para linhas diferentes ajuda bastante a mitigá-lo em algumas cargas de trabalho.)
O uso de uma quantidade minúscula de RAM e dependendo de um SSD rápido para trocar espaço / arquivo de paginação não é o único caso de uso para esse tipo de Optane. (E provavelmente nem um bom caso de uso). Como https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html descreve, seu principal caso de uso é como um cache transparente para um disco rígido magnético. Eu acho que a Intel fornece drivers do Windows para fazer isso acontecer. Você pode comprar discos rígidos SATA com armazenamento magnético rotacional com algum flash embutido como buffer / cache para partes do disco acessadas com freqüência. Os drivers Optane HW + podem fazer isso em qualquer disco.
O Optane NVMe aparentemente tem um desempenho de leitura aleatória muito bom em baixa profundidade da fila (aguarde a conclusão de uma leitura antes de iniciar outra, o que infelizmente acontece quando um programa precisa ler um bloco antes de descobrir o que fazer a seguir e a pré-busca de software não é necessária). está ajudando). Por isso, deve ser excelente para acelerar os horários de início e a inicialização do programa.
Não é particularmente surpreendente para gravações grandes e contíguas de arquivos grandes; espero que o software do driver saiba ignorar o cache do Optane e vá direto para o disco magnético subjacente para isso. A página principal do Optane da Intel está vinculada a https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html, que mostra seus 16 GB M .2 O Optane possui leitura sequencial de 900 MB / s, mas apenas gravação sequencial de 145 MB / s. A versão de 32 GB é mais rápida, com 1350 MB / s de leitura e 290 MB / s de gravação. Mas, novamente, não é para isso que Optane é melhor. As IOPS de leitura sequencial e aleatória são IOPS de 240k, com latência de leitura de 7 µs.
A Intel possui algo chamado IMDT (Intel Memory Drive Technology)que é um hipervisor que cria a ilusão de um espaço de endereço de memória principal maior para o sistema operacional. Algumas páginas serão mapeadas para a memória principal real da DRAM, enquanto outras são mapeadas para a memória SSD. Quando uma página mapeada para o SSD é acessada, ocorre uma falha de página detectada pelo IMDT, o que fará com que a página seja trazida do SSD para a memória principal (potencialmente expulsando uma página da memória para o SSD). O IMDT tentará pré-buscar páginas na DRAM para aliviar a largura de banda e a latência inferiores do SSD. Ele também tentará manter as páginas mais quentes na memória principal, para que elas possam ser acessadas com uma penalidade mínima (a única penalidade pode vir das camadas de paginação adicionais devido à virtualização.) Esse tipo de sistema de memória é chamado de memória definida por software (SDM). O bomO documento intitulado "Avaliação do desempenho da tecnologia Intel Memory Drive para aplicativos científicos" fornece uma avaliação de desempenho do IMDT e a compara com um sistema que possui a mesma quantidade de memória principal DRAM. Não li o artigo completamente, mas parece que o IMDT pode migrar páginas entre os nós NUMA para aproximá-los do nó em que são mais necessários.
Dito isto, o IMDT é suportado apenas em processadores Intel de nível de servidor. Ele visa criar servidores econômicos e com baixo consumo de energia, com um impacto potencialmente pequeno no desempenho.
http://www.lmdb.tech/bench/optanessd/imdt.html possui alguns benchmarks com um SSD Optane DC P4800X. (A versão high-end do data center, não o material de consumo. Capacidade de gravação sustentada muito mais alta.)
Como não investiguei isso, não tenho certeza se é relevante para o modo como o Windows poderia tirar proveito de um SSD Optane para consumidor.
O nome da marca Optane é (um tanto confuso) também usado para uma coisa exótica muito mais interessante:
DIMMs não voláteis 3D do XPoint , também conhecido como "Memória persistente do Optane DC". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass é o nome do Optane DC PM de primeira geração. Consulte isso para obter informações sobre as gerações futuras.
A Intel tem sua própria página de marketing principalmente para isso aqui , com alguns links para detalhes técnicos. O "DC" significa Data-Centric, aparentemente.
Esse é um armazenamento não volátil que se conecta a um slot DDR4 DIMM e aparece como memória física real. Aparentemente, ele é totalmente suportado pelos Xeons de última geração (não pela atual série Skylake-X, também conhecida como Skylake Scalable Processor).
Existem outros tipos de NVDIMM, por exemplo, DRAM regular com bateria (opcionalmente com flash para descarregar os dados para desligamento a longo prazo, para que eles precisem apenas de um supercapacitor em vez de uma bateria química). https://en.wikipedia.org/wiki/NVDIMM tem alguns detalhes.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot tem algumas informações mais gerais sobre NVDIMMs (e a padronização JEDEC deles e como os aplicativos OS + podem cooperar para permitir que os aplicativos conversem diretamente com uma região de armazenamento NV mapeado pela memória, garantindo a ordem de confirmação e assim por diante). O ponto principal é que eles realmente desfocam a linha entre RAM e armazenamento (no sentido da arquitetura do computador, não no sentido estritamente de marketing do anúncio de laptop enganoso que você viu que reivindicava 4 + 16 GB).
O sistema operacional pode permitir que um processo mapeie essa memória física não volátil em seu próprio espaço de endereço virtual, para que eles possam acessar o armazenamento diretamente com cargas de espaço do usuário e armazená-los em endereços de memória, sem nenhuma chamada do sistema, permitindo que o hardware da CPU continue fora de funcionamento. ordem de execução enquanto houver excelentes leituras / gravações . (Existem bibliotecas de software para permitir que os desenvolvedores tirem proveito disso, incluindo a capacidade flush()
e a certeza de que os dados sejam realmente gravados no armazenamento persistente.
Esse mapeamento pode até ser armazenado em cache de write-back , portanto, o uso dos dados se beneficia totalmente do cache L3 / L2 / L1d até a hora de escrevê-lo novamente (se modificado). Para dados de leitura predominante, esse tipo de Optane poderia realmente ser chamado de 4 + 16 GB de RAM. (Obviamente, o caso de uso atual do datacenter para NVDIMMs Optane usaria DIMMs muito maiores, como 512 GB.)
(Não é como um mmap
arquivo ed em um disco normal, onde você apenas mapeia o cache de página do sistema operacional para o arquivo, e o sistema operacional faz a E / S em segundo plano para sincronizar páginas de RAM sujas com o dispositivo de armazenamento.)
É essencial garantir que alguns dados cheguem ao armazenamento NV antes de outros (para permitir a recuperação de falhas como um sistema de arquivos ou diário de banco de dados) é essencial. Nas chamadas do sistema, é aqui que você usaria o POSIX fsync
ou fdatasync
. Mas, como o aplicativo tem o armazenamento verdadeiramente mapeado na memória, é aqui que as chamadas de função da biblioteca são recebidas.
No x86 asm, estamos acessando o armazenamento com cargas / armazenamentos normais, mas nos preocupamos quando os dados são realmente gravados no NVDIMM (onde estão protegidos contra perda de energia), não quando são visíveis para outros núcleos ou para DMA coerente em cache (assim que é confirmado do buffer de armazenamento para o cache L1d), as regras normais de pedido de memória do x86 não cuidam completamente de tudo. Precisamos de instruções especiais para liberar as linhas de cache selecionadas do cache da CPU. (Para uso pelas bibliotecas de armazenamento NV).
A clflush
instrução asm existe há algum tempo, mas o armazenamento NV é uma das principais razões pelas quais a Intel adicionou clflushopt
no Skylake (embora também tenha outros casos de uso) e está adicionando clwb
no Ice Lake (write-back sem despejo).
Há algum tempo, Dan Luu escreveu um artigo interessante sobre os benefícios de tirar o sistema operacional do acesso ao armazenamento, detalhando os planos da Intel naquele momento para clflush
/ clwb
e sua semântica de pedidos de memória. Foi escrito enquanto a Intel ainda planejava exigir uma instrução chamada pcommit
(confirmação persistente) como parte desse processo, mas a Intel decidiu posteriormente remover essa instrução: Descontinuar a instrução PCOMMIT tem algumas informações interessantes sobre o porquê e como as coisas funcionam sob o capô. .
(Isso desviou o tópico dos detalhes de baixo nível de armazenamento x86 NV. Eu deveria encontrar outro lugar para postar a maior parte desta seção, mas acho)
Há também SSDs Optane DC , como uma placa PCIe x4 ou 2,5 " . A versão de 750 GB faz leitura sequencial de até 2500 MB / s, gravação sequencial de 2200 MB / s e leitura ou gravação aleatória de 550000 IOPS. A latência de leitura é um pouco pior do que o NVMe M.2, a 10 µs.
É isso que você deseja para um servidor de banco de dados ou algo assim (se não puder usar o NVDIMM), mas isso não tornaria seu laptop de 4 GB muito mais rápido (para os casos de uso mais comuns) do que o Optane de 16 GB com o qual eles o vendem. A troca de espaço de troca geralmente produz muitas leituras dependentes, pois uma página precisa ser paginada e acessada antes que o código com falha de página possa continuar com o que quer que seja feito a seguir. Se a memória estiver realmente fraca, o sistema operacional não terá páginas sobressalentes para pré-buscar agressivamente, portanto, você esperaria profundidades de fila baixas, para as quais o consumidor Optane é otimizado. (Baixa latência.)
O Intel Optane SSD oferece um bom compromisso entre desempenho e custo de energia. Os SSDs basicamente não consomem energia quando não são acessados. Por outro lado, o consumo de energia estática (principalmente devido à atualização) nos chips DRAM é significativo. Portanto, a quantidade de DRAM em um sistema deve corresponder idealmente ao conjunto de trabalho da carga de trabalho típica. O sistema que você comprou foi projetado para uma carga de trabalho típica que requer cerca de 4 GB de memória principal ou menos. Nesse caso, se o sistema tiver 8 GB de memória principal, consumirá desnecessariamente mais energia, o que reduziria a vida útil da bateria. No entanto, o Optane SSD permite executar ocasionalmente cargas de trabalho que exigem um pouco mais de memória principal com degradação mínima do desempenho (em comparação com SSDs ou HDDs baseados em NAND).
Atualmente, a memória DRAM custa cerca de US $ 4,5 dólares por 1 GB, enquanto o SSD Intel Optane custa cerca de US $ 2 dólares por 1 GB. Portanto, um SSD Optane de 16 GB é mais caro que um módulo DRAM de 4 GB, mas mais barato que um módulo DRAM de 8 GB. Portanto, se você retirar o Optane SSD e adicionar 4 GB a mais de memória, obterá um sistema mais barato, que também é mais rápido, em média, para cargas de trabalho típicas com conjuntos de trabalho maiores que 4 GB. Mas o manuseio rígido de falhas, a pré-busca e a troca de páginas seriam mais lentos a partir do disco rígido. É por isso que o sistema de 8 GB provavelmente será mais lento que o sistema SSD Optane de 4 GB DRAM + 16 GB se a carga de trabalho típica exigir menos que (ou aproximadamente) 4 GB de memória.
Seu laptop é ótimo se você apenas o usar para navegar na Internet ou editar texto. O Optane SSD ajuda no momento da inicialização, fornece acesso rápido aos arquivos acessados com mais frequência e pode ser usado como um armazenamento secundário adicional. Portanto, embora você esteja pagando mais SSD Optane de 16 GB do que 4 GB de DRAM, você está obtendo certos benefícios exclusivos por isso. Mas alguns dos outros aplicativos mencionados, como o RStudio, exigem no mínimo 4 GB de memória. Se você normalmente usa um navegador e o RStudio ao mesmo tempo (e talvez outros aplicativos), deve obter um sistema com pelo menos 8 GB de memória. Optane SSD é até bom ter embora.