W tym kontekście (budżetowy sprzęt konsumencki) Optane dość wyraźnie odnosi się do małego / szybkiego dysku SSD podłączonego do NVMe przy użyciu pamięci 3D XPoint (zamiast pamięci flash NAND), co zapewnia mu bardzo wysoką wytrzymałość na zapis. (Więc nie zużyje się, jeśli zostanie użyty jako przestrzeń wymiany).
Nadal będzie to wymagało wielu obciążeń, ponieważ nadal trwa błąd strony i wiele mikrosekund, aby uzyskać dostęp, w porównaniu do ~ 70 nanosekund dla dostępu do pamięci DRAM (brak pamięci podręcznej) ; nie jest bezpośrednio mapowane w pamięci na szynie pamięci procesorów. Ponadto, wykonanie poza kolejnością / pobranie wstępne sprzętu / inna równoległość pamięci może utrzymać ~ 10 braków pamięci podręcznej w locie na rdzeń fizyczny, ale błąd strony jest serializowany . W tym wątku nie może być wykonywana żadna użyteczna praca (w tym wątku), gdy system operacyjny obsługuje błąd strony, więc OoO exec nie może ukryć żadnego z opóźnień związanych z poważnymi błędami strony. (Ale nawet 70ns to i tak zbyt długo, aby w pełni się ukryć. Mimo to, wiele błędów w locie do różnych linii znacznie zmniejsza ryzyko niektórych obciążeń.)
Korzystanie z okaleczająco małej ilości pamięci RAM i zależność od szybkiego dysku SSD do zamiany przestrzeni / pliku strony nie jest jedynym przypadkiem użycia tego rodzaju Optane. (I prawdopodobnie nie jest to nawet dobry przypadek użycia). Jak opisano w https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html , jego głównym przypadkiem jest przezroczysta pamięć podręczna magnetycznego dysku twardego. Myślę, że Intel zapewnia sterowniki Windows, aby tak się stało. Możesz kupić dyski twarde SATA z obrotową pamięcią magnetyczną z wbudowaną pamięcią flash jako bufor / pamięć podręczną dla często używanych części dysku. Sterowniki Optane HW + mogą to zrobić dla dowolnego dysku.
Optane NVMe najwyraźniej ma bardzo dobrą wydajność losowego odczytu przy małej głębokości kolejki (poczekaj na zakończenie jednego odczytu przed uruchomieniem kolejnego, co niestety zdarza się, gdy program musi odczytać jeden blok, zanim będzie mógł dowiedzieć się, co dalej, a pobieranie oprogramowania nie jest nie pomaga). Powinno to być świetne w przyspieszaniu czasów uruchamiania programu i uruchamiania.
Nie jest to szczególnie niesamowite w przypadku dużych, ciągłych zapisów dużych plików; mam nadzieję, że oprogramowanie sterownika wie, jak ominąć pamięć podręczną Optane i przejść bezpośrednio do leżącego poniżej dysku magnetycznego. Intela strona główna Optane linki do https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html który pokazuje ich 16GB M .2 Optane ma sekwencyjny odczyt 900 MB / s, ale tylko sekwencyjny zapis 145 MB / s. Wersja 32 GB jest szybsza, z odczytem 1350 MB / s, zapis 290 MB / s. Ale znowu, nie w tym Optane jest najlepszy. Jego sekwencyjny i losowy odczyt IOPS to 240k IOPS, z opóźnieniem odczytu 7 µs.
Intel ma coś o nazwie IMDT (Intel Memory Drive Technology)który jest hiperwizorem, który tworzy złudzenie większej przestrzeni adresowej pamięci głównej dla systemu operacyjnego. Niektóre strony będą mapowane na rzeczywistą pamięć główną DRAM, podczas gdy inne będą mapowane na pamięć SSD. Po uzyskaniu dostępu do strony odwzorowanej na dysk SSD IMDT przechwytuje błąd strony, który spowoduje przeniesienie strony z dysku SSD do pamięci głównej (potencjalnie eksmitując stronę z pamięci na dysk SSD). IMDT spróbuje wstępnie pobrać strony do pamięci DRAM, aby złagodzić gorszą przepustowość i opóźnienie dysku SSD. Spróbuje również zachować najgorętsze strony w pamięci głównej, aby uzyskać do nich dostęp z minimalną karą (jedyna kara może pochodzić z dodatkowych warstw stronicowania z powodu wirtualizacji). System operacyjny jest w większości nieświadomy tego mapowania i działa normalnie. Ten rodzaj systemu pamięci nazywa się pamięcią programową (SDM). Miłoartykuł zatytułowany „Ocena wydajności technologii Intel Memory Drive dla aplikacji naukowych” zawiera ocenę wydajności IMDT i porównuje ją z systemem, który ma taką samą ilość pamięci głównej DRAM. Nie przeczytałem dokładnie artykułu, ale wydaje się, że IMDT może migrować strony między węzłami NUMA, aby zbliżyć je do węzła, w którym są one najbardziej potrzebne.
To powiedziawszy, IMDT jest obsługiwany tylko na serwerowych procesorach Intel. Ma on na celu tworzenie ekonomicznych, energooszczędnych serwerów o potencjalnie niewielkim wpływie na wydajność.
http://www.lmdb.tech/bench/optanessd/imdt.html ma pewne testy porównawcze z dyskiem SSD Optane DC P4800X. (Zaawansowana wersja centrum danych, a nie produkty konsumenckie. Znacznie większa możliwość trwałego zapisu.)
Nie zastanawiałem się nad tym, więc nie jestem pewien, czy ma to w ogóle znaczenie dla tego, w jaki sposób Windows mógłby skorzystać z konsumenckiego dysku Optane SSD.
Nazwa marki Optane jest (nieco myląca) również w przypadku znacznie bardziej interesujących rzeczy egzotycznych:
Nielotne moduły DIMM 3D XPoint, znane również jako „Trwała pamięć Optane DC”. https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass to nazwa Optane DC PM pierwszej generacji. Odnoszą się do tego celu uzyskania informacji o przyszłych pokoleniach.
Intel ma swoją własną stronę w większości-marketingową dla niego tutaj z kilkoma linkami do szczegółów tech. Najwyraźniej „DC” oznacza Data-Centric.
Jest to pamięć nieulotna podłączana do gniazda DDR4 DIMM i wyświetlana jako rzeczywista pamięć fizyczna. Najwyraźniej jest w pełni obsługiwany tylko przez Xeony nowej generacji (nie jest to obecna seria Skylake-X, zwana także Skylake Scalable Processor).
Istnieją inne rodzaje NVDIMM, np. Zwykła pamięć DRAM z podtrzymaniem bateryjnym (opcjonalnie z pamięcią flash, aby zrzucić dane w celu długoterminowego wyłączenia zasilania, więc potrzebują one tylko superkondensatora zamiast baterii chemicznej). https://en.wikipedia.org/wiki/NVDIMM ma pewne szczegóły.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot zawiera kilka bardziej ogólnych informacji na temat modułów NVDIMM (i ich standaryzacji JEDEC oraz tego, w jaki sposób aplikacje OS + mogą współpracować, umożliwiając aplikacjom bezpośrednią komunikację z nimi) region pamięci NV odwzorowanej w pamięci, zapewniający porządkowanie zatwierdzeń itd.). Chodzi przede wszystkim o to, że faktycznie zacierają granicę między pamięcią RAM a pamięcią masową (w sensie architektury komputerowej, a nie w ściśle marketingowym sensie oszukańczej reklamie laptopa, którą widziałeś, która pochłonęła 4 + 16 GB).
System operacyjny może pozwolić procesowi odwzorować tę nieulotną pamięć fizyczną na swoją własną wirtualną przestrzeń adresową, aby mogli uzyskać dostęp do pamięci bezpośrednio z obciążeniami przestrzeni użytkownika i zapisywać je na adresy pamięci, bez żadnych wywołań systemowych, pozwalając sprzętowi CPU na kontynuację poza- realizacja zamówień, podczas gdy istnieją zaległe operacje odczytu / zapisu . (Istnieją biblioteki oprogramowania, dzięki którym programiści mogą z tego skorzystać, w tym możliwość flush()
i pewność, że dane są rzeczywiście zapisywane w pamięci trwałej.
To odwzorowanie może być nawet buforowane z zapisem w pamięci podręcznej, więc wykorzystanie danych w pełni korzysta z pamięci podręcznej L3 / L2 / L1d, dopóki nie nadejdzie czas, aby je ponownie zapisać (jeśli zmodyfikowano). W przypadku danych głównie do odczytu ten rodzaj Optane naprawdę można słusznie nazwać 4 + 16 GB pamięci RAM. (Oczywiście obecny przypadek użycia centrum danych dla Optane NVDIMM używałby znacznie większych modułów DIMM, takich jak 512 GB.)
(To nie jest jak mmap
plik ed na normalnym dysku, na którym po prostu mapujesz pamięć podręczną stron systemu dla pliku, a system operacyjny zajmuje się wykonywaniem operacji we / wy w tle w celu synchronizacji brudnych stron pamięci RAM z urządzeniem pamięci masowej).
Konieczne jest upewnienie się, że niektóre dane rzeczywiście dotarły do pamięci NV, zanim inne (aby umożliwić przywracanie po awarii, takie jak dziennik systemu plików lub bazy danych) jest niezbędne. W przypadku wywołań systemowych można użyć POSIX fsync
lub fdatasync
. Ponieważ jednak aplikacja ma pamięć prawdziwie odwzorowaną na pamięć, właśnie tutaj pojawiają się wywołania funkcji bibliotecznych.
W wersji x86 asm uzyskujemy dostęp do pamięci z normalnymi ładowaniami / magazynami, ale zależy nam na tym, kiedy dane są faktycznie zapisywane z powrotem do NVDIMM (gdzie jest to bezpieczne przed utratą zasilania), a nie kiedy jest widoczne dla innych rdzeni lub DMA spójnego z pamięcią podręczną (gdy tylko przejdzie z bufora sklepu do pamięci podręcznej L1d), więc normalne reguły porządkowania pamięci x86 nie zajmują się wszystkim. Potrzebujemy specjalnych instrukcji, aby usunąć wybrane linie pamięci podręcznej z pamięci podręcznej procesora. (Do użytku przez biblioteki pamięci NV).
clflush
Instrukcji asm istnieje już jakiś czas, ale przechowywanie NV jest głównym powodem, dlaczego Intel dodany clflushopt
w Skylake (choć ma innych przypadków użycia, zbyt), i dodaje clwb
w Ice Lake (write-back bez eksmisji).
Dan Luu napisał jakiś czas temu ciekawy artykuł o korzyściach wynikających z usunięcia systemu operacyjnego z dostępu do pamięci masowej, szczegółowo opisując plany Intela w tym punkcie dotyczące clflush
/ clwb
i ich semantyki porządkowania pamięci. Zostało napisane, gdy Intel nadal wymagał instrukcji o nazwie pcommit
(trwałe zatwierdzenie) w ramach tego procesu, ale później Intel postanowił usunąć tę instrukcję: Wycofanie instrukcji PCOMMIT zawiera kilka interesujących informacji o tym, dlaczego i jak działa to pod maską .
(To dość daleko od tematu do szczegółów niskiego poziomu pamięci x86 NV. Powinienem znaleźć inne miejsce, aby opublikować większość tej sekcji, ale myślę, że)
Istnieją również dyski SSD Optane DC , jako karta PCIe x4 lub 2,5 " . Wersja 750 GB umożliwia sekwencyjny odczyt do 2500 MB / s, sekwencyjny zapis 2200 MB / s oraz losowy odczyt lub zapis 550000 IOPS. Opóźnienie odczytu jest nieco gorsze niż M.2 NVMe, przy 10 µs.
To jest to, czego chcesz, jeśli używasz serwera bazy danych lub czegoś takiego (jeśli nie możesz użyć NVDIMM), ale nie sprawiłoby to, że twój laptop o pojemności 4 GB byłby znacznie szybszy (w większości typowych przypadków) niż 16 GB Optane, z którym go sprzedaje. Przebijanie przestrzeni wymiany często powoduje wiele zależnych odczytów, ponieważ strona musi zostać wczytana i udostępniona, zanim kod, który spowodował błąd strony, będzie mógł kontynuować to, co miał zamiar zrobić dalej. Jeśli pamięć jest naprawdę napięta, system operacyjny nie ma zapasowych stron do agresywnego pobrania, więc można się spodziewać niskich głębokości kolejek, dla których zoptymalizowany jest klient Optane. (Małe opóźnienia.)
Dysk SSD Intel Optane zapewnia niezłą kompromis między wydajnością a kosztem energii. Dyski SSD w zasadzie nie zużywają energii, gdy nie są dostępne. Natomiast statyczne zużycie energii (głównie z powodu odświeżania) w układach DRAM jest znaczące. Tak więc ilość pamięci DRAM w systemie powinna idealnie pasować do zestawu roboczego typowego obciążenia. Zakupiony system został zaprojektowany z myślą o typowym obciążeniu, które wymaga około 4 GB pamięci głównej lub mniej. W takim przypadku, jeśli system miałby zamiast tego 8 GB pamięci głównej, niepotrzebnie zużywałby więcej energii, co skróciłoby żywotność baterii. Jednak dysk Optane SSD pozwala od czasu do czasu uruchamiać obciążenia wymagające nieco więcej pamięci głównej przy minimalnym spadku wydajności (w porównaniu do dysków SSD lub HDD opartych na NAND).
Pamięć DRAM kosztuje obecnie około 4,5 USD za 1 GB, podczas gdy dysk Intel Optane SSD kosztuje około 2 USD za 1 GB. Tak więc dysk Optane SSD 16 GB jest droższy niż moduł DRAM 4 GB, ale tańszy niż moduł DRAM 8 GB. Jeśli więc wyjmiesz dysk Optane SSD i dodasz 4 GB więcej pamięci, otrzymasz tańszy system, który jest również średnio szybszy w przypadku typowych obciążeń z zestawami roboczymi większymi niż 4 GB. Jednak trudna obsługa błędów stron, pobieranie stron i zamiana stron byłyby wolniejsze od dysku twardego. Właśnie dlatego system 8 GB będzie prawdopodobnie wolniejszy niż system 4 GB DRAM + 16 GB Optane SSD, jeśli typowe obciążenie wymaga mniej niż (lub około) 4 GB pamięci.
Twój laptop jest świetny, jeśli zamierzasz go używać do przeglądania Internetu lub edycji tekstu. Dysk Optane SSD pomaga w czasie uruchamiania, zapewnia szybki dostęp do najczęściej używanych plików i może być używany jako dodatkowa pamięć dodatkowa. Więc chociaż płacisz więcej 16 GB Optane SSD niż 4 GB pamięci DRAM, zyskujesz z tego pewne, unikalne korzyści. Ale niektóre inne aplikacje, o których wspomniałeś, takie jak RStudio, wymagają co najmniej 4 GB pamięci. Jeśli zazwyczaj będziesz używać jednocześnie przeglądarki i RStudio (i być może innych aplikacji), powinieneś uzyskać system z co najmniej 8 GB pamięci. Dysk Optane SSD jest jednak dobry.