Dans ce contexte (équipement grand public), Optane fait clairement référence à un SSD petit / rapide connecté à NVMe utilisant une mémoire 3D XPoint (au lieu d’un flash NAND), ce qui lui confère une très grande endurance en écriture. (Donc, il ne s'usera pas s'il est utilisé comme espace d'échange).
Cela va toujours être nul pour de nombreuses charges de travail, car il faut toujours une page-faute et plusieurs microsecondes pour y accéder, contre environ 70 nanosecondes pour un accès DRAM (cache cache) ; il n'est pas directement mappé en mémoire sur le bus de mémoire de la CPU. En outre, une exécution dans le désordre / une prélecture matérielle / une autre parallélisation mémoire peut garder environ 10 erreurs de cache en vol par cœur physique, mais une erreur de page est en cours de sérialisation . Aucun travail utile ne peut se produire (dans ce fil) pendant que le système d'exploitation traite une page défectueuse. Par conséquent, OoO exec ne peut masquer aucune de ces latences de page matérielles. (Mais même 70ns est trop long pour se cacher de toute façon. Néanmoins, plusieurs manquements en vol sur différentes lignes contribuent grandement à le réduire pour certaines charges de travail.)
Utiliser une petite quantité de RAM paralysante et dépendre d'un disque SSD rapide pour l'espace de transfert / fichier d'échange n'est pas le seul cas d'utilisation de ce type d'Optane. (Et probablement même pas un bon cas d'utilisation). Comme le décrit https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html , son principal cas d'utilisation est celui de cache transparent pour un disque dur magnétique. Je pense qu'Intel fournit des pilotes Windows pour y arriver. Vous pouvez acheter des disques durs SATA dotés d'un stockage magnétique rotatif avec une mémoire flash intégrée en tant que tampon / cache pour les parties du disque fréquemment utilisées. Les pilotes Optane HW + peuvent le faire pour n’importe quel disque.
Optane NVMe a apparemment de très bonnes performances de lecture aléatoire à une file d’attente faible (attendez qu’une lecture se termine avant d’en commencer une autre, ce qui se produit malheureusement lorsqu'un programme doit lire un bloc avant de pouvoir déterminer ce qu'il faut faire ensuite, et le pr pas aider). Cela devrait donc être formidable d'accélérer les temps de démarrage et de démarrage du programme.
Pas particulièrement étonnant pour les grandes écritures contiguës de gros fichiers; Espérons que le logiciel pilote sache contourner le cache Optane et aller directement sur le disque magnétique sous-jacent pour cela. La page principale Optane d’ Intel renvoie à https://www.intel.ca/content/www/ca/fr/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html, qui présente leur 16 Go en M .2 Optane a une lecture séquentielle de 900 Mo / s, mais seulement une écriture séquentielle de 145 Mo / s. La version 32 Go est plus rapide, à 1350 Mo / s en lecture, 290 Mo / s en écriture. Mais encore une fois, ce n’est pas ce à quoi Optane est le meilleur. Ses IOPS à lecture séquentielle et aléatoire sont tous deux de 240 kO, avec une latence de lecture de 7 µs.
Intel a quelque chose appelé IMDT (Intel Memory Drive Technology)qui est un hyperviseur qui crée l’illusion d’un espace d’adresses mémoire plus important pour le système d’exploitation. Certaines pages seront mappées sur la mémoire principale DRAM réelle, tandis que d'autres seront mappées sur la mémoire SSD. Lorsqu’un utilisateur accède à une page mappée sur le disque SSD, une erreur de page survenue, interceptée par IMDT, entraîne le transfert de la page du disque SSD vers la mémoire principale (ce qui risque d’expulser une page de la mémoire vers le disque SSD). IMDT essaiera de pré-extraire des pages dans la mémoire DRAM afin de réduire la bande passante inférieure et la latence du disque SSD. Il essaiera également de conserver les pages les plus chaudes dans la mémoire principale afin de pouvoir y accéder avec un minimum de pénalités (la seule pénalité pouvant provenir des couches de pagination supplémentaires dues à la virtualisation). Le système d'exploitation ignore généralement ce mappage et fonctionne normalement. Ce type de système de mémoire est appelé mémoire définie par logiciel (SDM). Le gentilLe document intitulé "Evaluation de la performance de la technologie de lecteur de mémoire Intel pour les applications scientifiques" fournit une évaluation de performance d'IMDT et la compare à un système disposant de la même quantité de mémoire principale DRAM. Je n'ai pas lu attentivement le document, mais il semble qu'IMDT puisse migrer des pages entre des nœuds NUMA pour les rapprocher du nœud où elles sont le plus souvent nécessaires.
Cela dit, IMDT est uniquement pris en charge sur les processeurs Intel de niveau serveur. Il est conçu pour créer des serveurs économiques et économes en énergie, avec un impact potentiellement faible sur les performances.
http://www.lmdb.tech/bench/optanessd/imdt.html présente quelques points de repère avec un SSD Optane DC P4800X. (La version haut de gamme du datacenter, pas celle du consommateur. Capacité d'écriture soutenue bien plus élevée.)
Je ne me suis pas penché sur la question. Je ne sais donc pas si c'est pertinent pour la façon dont Windows pourrait tirer parti d'un SSD Optane grand public.
Le nom de marque Optane est également (quelque peu déroutant) également utilisé pour une chose exotique beaucoup plus intéressante:
DIMM non volatiles 3D XPoint , alias "Optane DC Persistent Memory". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass est le nom d'Optane DC PM de première génération. Reportez-vous à cela pour des informations sur les générations futures.
Intel a sa propre page principalement marketing pour elle ici , avec des liens vers les détails tech. Le "DC" représente apparemment Data-Centric.
Il s'agit d'un stockage non volatile qui se connecte à un logement DDRM DDR4 et apparaît comme une mémoire physique réelle. Apparemment, il n’est totalement supporté que par la nouvelle génération de Xeon (pas par la série actuelle de Skylake-X alias Skylake Scalable Processor).
Il existe d’autres types de NVDIMM, par exemple une DRAM classique protégée par batterie (éventuellement avec flash pour transférer les données hors tension à long terme, de sorte qu’elles n’ont besoin que d’un supercondensateur au lieu d’une batterie chimique). https://en.wikipedia.org/wiki/NVDIMM a quelques détails.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot contient des informations plus générales sur les NVDIMM (et leur normalisation par JEDEC, et comment les applications OS + peuvent coopérer pour permettre aux applications de communiquer directement avec les applications). une région de mémoire NV mappée en mémoire, assurant la commande de validation, etc.). Le point principal est qu’elles tendent à brouiller les frontières entre la RAM et le stockage (dans le sens d’une architecture d’architecture, et non dans le sens strictement marketing de la publicité trompeuse pour ordinateur portable que vous avez vue qui réclamait 4 + 16 Go).
Le système d'exploitation peut laisser un processus mapper cette mémoire physique non volatile dans son propre espace d'adressage virtuel afin qu'il puisse accéder au stockage directement avec des charges d'espace utilisateur et se stocke dans des adresses de mémoire, sans aucun appel système, permettant ainsi au matériel de la CPU de continuer. exécution de l'ordre tant qu'il y a des lectures / écritures en attente . (Il existe des bibliothèques de logiciels permettant aux développeurs d’en tirer parti, notamment la possibilité de flush()
s’assurer que les données sont réellement écrites dans un stockage persistant.
Ce mappage peut même être mis en cache avec réécriture , de sorte que l'utilisation des données profite pleinement du cache L3 / L2 / L1d jusqu'à ce qu'il soit temps de l'écrire (si modifié). Pour les données en lecture seule , ce type d’Optane pourrait à juste titre être appelé 4 + 16 Go de RAM. (Bien entendu, le cas d'utilisation actuel du centre de données pour les NVDIMM Optane utiliserait des DIMM beaucoup plus volumineux, tels que 512 Go.)
(Ce n'est pas comme un mmap
fichier ed sur un disque normal dans lequel vous mappez le cache de page du système d'exploitation pour le fichier, et le système d'exploitation prend en charge les E / S en arrière-plan pour synchroniser les pages RAM sales avec le périphérique de stockage.)
Il est essentiel de s’assurer que certaines données ont effectivement atteint le stockage NV avant d’autres (pour permettre la récupération après un crash, comme un journal de système de fichiers ou de base de données). Avec les appels système, c’est là que vous utiliseriez POSIX fsync
ou fdatasync
. Mais étant donné que l’application dispose d’un stockage véritablement mappé en mémoire, c’est ici que les appels de fonctions de bibliothèque entrent en jeu.
En x86 asm, nous accédons au stockage avec des charges / magasins normaux, mais nous nous soucions de savoir quand les données sont réellement écrites sur le NVDIMM (sans risque de coupure de courant), et non lorsqu'elles sont visibles par d'autres cœurs ou par un DMA cohérent par cache. (dès qu’il passe du tampon de stockage au cache L1d), les règles de gestion de la mémoire normales de x86 ne s’occupent donc pas de tout. Nous avons besoin d'instructions spéciales pour vider les lignes de cache sélectionnées du cache de la CPU. (À utiliser par les bibliothèques de stockage NV.)
L' clflush
instruction asm existe depuis un certain temps, mais le stockage NV est l'une des principales raisons pour lesquelles Intel a ajouté clflushopt
à Skylake (bien qu'il ait également d'autres cas d'utilisation) et ajoute clwb
à Ice Lake (reprise sans expulsion).
Dan Luu a écrit il y a quelque temps un article intéressant sur les avantages de supprimer le système d'exploitation pour l'accès au stockage, détaillant les plans d'Intel pour clflush
/ clwb
et leur sémantique d'ordonnancement de la mémoire. Il a été écrit alors qu'Intel prévoyait toujours d'exiger une instruction appelée pcommit
(commit persistant) dans le cadre de ce processus, mais Intel a par la suite décidé de supprimer cette instruction: Deprecating the PCOMMIT Instruction contient des informations intéressantes sur le pourquoi et le fonctionnement sous le capot. .
(Cela ne tient pas compte des détails de bas niveau du stockage x86 NV. Je devrais trouver un autre endroit pour poster la plupart de cette section, mais je le pense)
Il existe également des SSD Optane DC , sous forme de carte PCIe x4 ou 2.5 " . La version de 750 Go permet une lecture séquentielle pouvant atteindre 2 500 Mo / s, une écriture séquentielle de 2 200 Mo / s et une lecture ou une écriture aléatoire de 5 000 000 IOPS. le M.2 NVMe, à 10 µs.
C’est ce que vous voulez si vous utilisez un serveur de base de données ou quelque chose du genre (si vous ne pouvez pas utiliser NVDIMM), mais cela ne rendrait pas votre ordinateur portable 4 Go beaucoup plus rapide (dans les cas les plus courants) que le 16Go Optane avec lequel ils le vendent. La suppression d’espace d’échange produit souvent de nombreuses lectures dépendantes puisqu’une page doit être recherchée et consultée avant que le code associé à une page défectueuse puisse continuer jusqu’à ce qu’il allait faire ensuite. Si la mémoire est vraiment saturée, le système d'exploitation ne dispose pas de pages inutilisées pour la prélecture de manière agressive. Vous devez donc vous attendre à de faibles files d'attente pour lesquelles Optane est optimisé. (Faible latence.)
Le SSD Intel Optane offre un bon compromis performances / puissance / coûts. Les disques SSD ne consomment généralement pas d'énergie lorsqu'ils ne sont pas utilisés. En revanche, la consommation d'énergie statique (principalement due à l'actualisation) dans les puces DRAM est importante. La quantité de DRAM dans un système doit donc idéalement correspondre au volume de travail de la charge de travail typique. Le système que vous avez acheté a été conçu pour une charge de travail typique nécessitant environ 4 Go de mémoire principale ou moins. Dans ce cas, si le système disposait de 8 Go de mémoire principale, il consommerait plus d'énergie, ce qui réduirait la durée de vie de la batterie. Toutefois, Optane SSD vous permet d’exécuter occasionnellement des charges de travail nécessitant un peu plus de mémoire principale avec une dégradation minimale des performances (par rapport aux SSD ou aux disques durs basés sur NAND).
La mémoire DRAM coûte actuellement environ 4,5 USD par 1 Go, tandis que le Intel Optane SSD coûte environ 2 USD par 1 Go. Ainsi, un SSD Optane de 16 Go coûte plus cher qu'un module DRAM de 4 Go, mais moins cher qu'un module DRAM de 8 Go. Ainsi, si vous retirez le disque SSD Optane et ajoutez 4 Go de mémoire supplémentaire, vous obtiendrez un système moins cher, qui est également plus rapide en moyenne pour des charges de travail classiques avec des ensembles de travail supérieurs à 4 Go. Toutefois, la gestion des erreurs de page, la lecture anticipée et l'échange de pages seraient plus lents à partir du disque dur. C’est pourquoi le système de 8 Go sera probablement plus lent que le système SSD DRAM + 16 Go d’Optane de 16 Go si la charge de travail typique nécessite moins de (ou environ) 4 Go de mémoire.
Votre ordinateur portable est idéal si vous ne l'utilisez que pour la navigation sur Internet ou l'édition de texte. Le SSD Optane facilite le démarrage, fournit un accès rapide aux fichiers les plus fréquemment utilisés et peut être utilisé comme stockage secondaire supplémentaire. Ainsi, bien que vous payiez plus de SSD Optane de 16 Go que de 4 Go de DRAM, vous bénéficiez de certains avantages uniques. Mais certaines des autres applications que vous avez mentionnées, telles que RStudio, nécessitent au minimum 4 Go de mémoire. Si vous utilisez généralement un navigateur et RStudio en même temps (et peut-être d'autres applications), vous devriez alors vous procurer un système avec au moins 8 Go de mémoire. Optane SSD est bien pour avoir bien.