Trong bối cảnh này (thiết bị tiêu dùng ngân sách), Optane khá rõ ràng chỉ đề cập đến một SSD kết nối NVMe nhỏ / nhanh sử dụng bộ nhớ 3D XPoint (thay vì flash NAND), mang lại độ bền ghi rất cao. (Vì vậy, nó sẽ không bị hao mòn nếu được sử dụng như không gian trao đổi).
Điều này vẫn sẽ hút nhiều khối lượng công việc, bởi vì nó vẫn bị lỗi trang và nhiều micro giây để truy cập, so với ~ 70 nano giây cho truy cập DRAM (lỗi bộ nhớ cache) ; nó không được ánh xạ bộ nhớ trực tiếp trên bus bộ nhớ CPU. Ngoài ra, thực thi không theo thứ tự / tìm nạp trước CTNH / song song bộ nhớ khác có thể giữ ~ 10 lỗi bộ nhớ cache trong chuyến bay trên mỗi lõi vật lý, nhưng một lỗi trang đang nối tiếp . Không có công việc hữu ích nào có thể xảy ra (trong luồng này) trong khi HĐH đang phục vụ lỗi trang, do đó, không có cơ hội nào để giám đốc OoO che giấu bất kỳ độ trễ lỗi trang cứng nào. (Nhưng thậm chí 70ns là quá dài để ẩn hoàn toàn dù sao đi nữa. Tuy nhiên, việc có nhiều lần lỡ chuyến bay đến các tuyến khác nhau sẽ giúp giảm thiểu một số khối lượng công việc.)
Sử dụng một lượng RAM nhỏ làm tê liệt và tùy thuộc vào ổ SSD nhanh để trao đổi không gian / trang tệp không phải là trường hợp sử dụng duy nhất cho loại Optane này. (Và có lẽ thậm chí không phải là một trường hợp sử dụng tốt). Như https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html mô tả, trường hợp sử dụng chính của nó là bộ đệm trong suốt cho ổ cứng từ tính. Tôi nghĩ Intel cung cấp trình điều khiển Windows để thực hiện điều này. Bạn có thể mua ổ đĩa cứng SATA có bộ lưu trữ từ tính quay với một số đèn flash tích hợp dưới dạng bộ đệm / bộ đệm cho các phần thường xuyên truy cập của đĩa. Trình điều khiển Optane HW + có thể làm điều này cho bất kỳ đĩa.
Optane NVMe rõ ràng có hiệu suất đọc ngẫu nhiên rất tốt ở độ sâu hàng đợi thấp (đợi một lần đọc kết thúc trước khi bắt đầu một khối khác, điều không may xảy ra khi một chương trình phải đọc một khối trước khi có thể biết phải làm gì tiếp theo và việc tìm nạp trước phần mềm không được 'giúp đỡ). Vì vậy, nó sẽ rất tuyệt trong việc tăng tốc thời gian bắt đầu chương trình và khởi động.
Không đặc biệt tuyệt vời cho việc ghi lớn các tệp lớn; hy vọng phần mềm trình điều khiển biết bỏ qua bộ đệm Optane và đi thẳng vào đĩa từ tính bên dưới cho điều đó. Trang Optane chính của Intel liên kết đến https://www.intel.ca/content/www/ca/en/products/memory-st Storage / opane-moryory / optane-16gb-m-2-80mm.html hiển thị 16GB M của họ .2 Optane có tốc độ đọc tuần tự 900 MB / giây, nhưng chỉ ghi tuần tự 145 MB / giây. Phiên bản 32 GB nhanh hơn, tốc độ đọc 1350 MB / giây, ghi 290 MB / giây. Nhưng một lần nữa, đó không phải là những gì Optane giỏi nhất. IOPS đọc tuần tự và ngẫu nhiên đều là IOPS 240k, với độ trễ 7 lần đọc.
Intel có một thứ gọi là IMDT (Công nghệ ổ nhớ Intel)đó là một trình ảo hóa tạo ra ảo ảnh về một không gian địa chỉ bộ nhớ chính lớn hơn cho hệ điều hành. Một số trang sẽ được ánh xạ tới bộ nhớ chính DRAM thực tế trong khi các trang khác được ánh xạ tới bộ nhớ SSD. Khi một trang được ánh xạ tới SSD, một lỗi xảy ra bởi IMDT, điều này sẽ khiến trang được đưa từ SSD sang bộ nhớ chính (có khả năng đuổi một trang từ bộ nhớ sang SSD). IMDT sẽ cố gắng tìm nạp trước các trang vào DRAM để giảm bớt băng thông và độ trễ kém hơn của SSD. Nó cũng sẽ cố gắng giữ các trang nóng nhất trong bộ nhớ chính để có thể truy cập chúng với mức phạt tối thiểu (hình phạt duy nhất có thể đến từ các lớp phân trang bổ sung do ảo hóa.) Hệ điều hành hầu như không biết về ánh xạ này và hoạt động bình thường. Loại hệ thống bộ nhớ này được gọi là bộ nhớ do phần mềm xác định (SDM). Đẹpbài báo có tiêu đề "Đánh giá hiệu năng công nghệ bộ nhớ Intel cho các ứng dụng khoa học" cung cấp đánh giá hiệu năng của IMDT và so sánh nó với một hệ thống có cùng bộ nhớ chính DRAM. Tôi đã không đọc kỹ bài báo, nhưng có vẻ như IMDT có thể di chuyển các trang giữa các nút NUMA để đưa chúng đến gần hơn với nút nơi chúng cần thiết nhất.
Điều đó nói rằng, IMDT chỉ được hỗ trợ trên các bộ xử lý Intel cấp máy chủ. Nó nhằm mục đích tạo ra các máy chủ tiết kiệm năng lượng, hiệu quả về chi phí với tác động nhỏ đến hiệu suất.
http://www.lmdb.tech/bench/optanessd/imdt.html có một số điểm chuẩn với ổ SSD Optane DC P4800X. (Phiên bản trung tâm dữ liệu cao cấp, không phải nội dung dành cho người tiêu dùng. Khả năng ghi duy trì cao hơn nhiều.)
Tôi chưa xem xét vấn đề này, vì vậy tôi không chắc liệu nó có liên quan gì đến việc Windows có thể tận dụng SSD Optane tiêu dùng hay không.
Tên thương hiệu Optane là (hơi khó hiểu) cũng được sử dụng cho một điều kỳ lạ thú vị hơn nhiều:
3D XPoint DIMM không bay hơi , còn gọi là "Bộ nhớ liên tục DC Optane". https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass là tên của Optane DC PM thế hệ đầu tiên. Tham khảo điều này để biết thông tin về các thế hệ tương lai.
Intel có trang tiếp thị chủ yếu của riêng họ cho nó ở đây , với một số liên kết đến các chi tiết công nghệ. "DC" là viết tắt của Data-Centric, rõ ràng.
Đây là bộ lưu trữ không bay hơi cắm vào khe DIMM DDR4 và xuất hiện dưới dạng bộ nhớ vật lý thực tế. Rõ ràng nó chỉ được hỗ trợ đầy đủ bởi Xeons thế hệ tiếp theo (không phải là dòng Skylake-X hay Skylake Scalable Processor hiện tại).
Có nhiều loại NVDIMM khác, ví dụ DRAM thông thường được hỗ trợ bằng pin (tùy chọn có đèn flash để chuyển dữ liệu để tắt nguồn trong thời gian dài, vì vậy chúng chỉ cần một siêu tụ điện thay vì pin hóa học). https://en.wikipedia.org/wiki/NVDIMM có một số chi tiết.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suruptly-hot có một số thông tin chung hơn về NVDIMM (và tiêu chuẩn hóa JEDEC của chúng và cách các ứng dụng OS + có thể hợp tác để ứng dụng nói chuyện trực tiếp với một vùng bộ nhớ lưu trữ bản đồ NV, đảm bảo cam kết đặt hàng, v.v.). Điểm chính là họ thực sự làm mờ ranh giới giữa RAM và lưu trữ (theo nghĩa kiến trúc máy tính, không phải theo nghĩa tiếp thị nghiêm ngặt của quảng cáo máy tính xách tay lừa đảo mà bạn thấy đã tuyên bố 4 + 16GB.)
HĐH có thể cho phép một quá trình ánh xạ bộ nhớ vật lý không bay hơi này vào không gian địa chỉ ảo của riêng họ để họ có thể truy cập lưu trữ trực tiếp với tải không gian người dùng và lưu trữ vào các địa chỉ bộ nhớ, mà không cần bất kỳ cuộc gọi hệ thống nào, để phần cứng CPU tiếp tục hết thực hiện lệnh trong khi có đọc / ghi xuất sắc . (Có các thư viện phần mềm để cho phép các nhà phát triển tận dụng lợi thế này, bao gồm khả năng flush()
và đảm bảo rằng dữ liệu thực sự được ghi vào bộ lưu trữ liên tục.
Ánh xạ này thậm chí có thể được ghi lại bộ nhớ cache , do đó, việc sử dụng các lợi ích dữ liệu hoàn toàn từ bộ đệm L3 / L2 / L1d cho đến khi nó kịp ghi lại (nếu được sửa đổi). Đối với dữ liệu đọc chủ yếu là, này loại Optane thực sự có thể chính đáng được gọi là 4 + 16GB RAM. (Tất nhiên, trường hợp sử dụng trung tâm dữ liệu hiện tại cho các NVDIMM của Optane sẽ sử dụng các DIMM lớn hơn nhiều , như 512GB.)
(Nó không giống như một mmap
tệp ed trên một đĩa bình thường khi bạn chỉ ánh xạ bộ đệm trang của hệ điều hành cho tệp và HĐH sẽ thực hiện I / O trong nền để đồng bộ hóa các trang RAM bẩn với thiết bị lưu trữ.)
Đảm bảo rằng một số dữ liệu đã thực sự đạt đến lưu trữ NV trước các dữ liệu khác (để cho phép khôi phục sự cố như hệ thống tệp hoặc tạp chí cơ sở dữ liệu) là điều cần thiết. Với các cuộc gọi hệ thống, đây là nơi bạn sử dụng POSIX fsync
hoặc fdatasync
. Nhưng vì ứng dụng có bộ lưu trữ thực sự được ánh xạ bộ nhớ, đây là lúc các lệnh gọi hàm thư viện đến.
Trong x86 asm, chúng tôi đang truy cập vào bộ lưu trữ với tải / lưu trữ bình thường, nhưng chúng tôi quan tâm khi dữ liệu thực sự được ghi lại vào NVDIMM (nơi an toàn khỏi mất điện), không phải khi nó hiển thị với các lõi khác hoặc DMA kết hợp bộ nhớ cache (ngay khi nó cam kết từ bộ đệm lưu trữ vào bộ đệm L1d), vì vậy các quy tắc sắp xếp bộ nhớ thông thường của x86 không hoàn toàn quan tâm đến mọi thứ. Chúng tôi cần các hướng dẫn đặc biệt để xóa các dòng bộ đệm đã chọn từ bộ đệm của CPU. (Để sử dụng bởi các thư viện lưu trữ NV.)
Lệnh clflush
asm đã tồn tại được một thời gian, nhưng bộ lưu trữ NV là lý do chính khiến Intel thêm clflushopt
vào Skylake (mặc dù nó cũng có các trường hợp sử dụng khác) và được thêm clwb
vào Ice Lake (viết lại mà không bị trục xuất).
Dan Lưu đã viết một bài viết thú vị cách đây một thời gian về những lợi ích của việc đưa HĐH ra khỏi cách truy cập vào bộ lưu trữ, nêu chi tiết các kế hoạch của Intel tại thời điểm đó cho clflush
/ clwb
và ngữ nghĩa theo thứ tự bộ nhớ của họ. Nó được viết trong khi Intel vẫn có kế hoạch yêu cầu một lệnh gọi là pcommit
(cam kết bền bỉ) như một phần của quy trình này, nhưng sau đó Intel đã quyết định loại bỏ hướng dẫn đó: Không tán thành Hướng dẫn PCOMMIT có một số thông tin thú vị về lý do và cách mọi thứ hoạt động theo quy trình .
(Điều này đã thoát khỏi chủ đề vào lưu trữ x86 NV chi tiết cấp thấp. Tôi nên tìm một nơi khác để đăng hầu hết phần này, nhưng tôi nghĩ rằng nó)
Ngoài ra còn có SSD Optane DC , như thẻ PCIe x4 hoặc 2,5 " . Phiên bản 750 GB có tốc độ đọc tuần tự lên tới 2500 MB / giây, ghi tuần tự 2200 MB / giây và đọc hoặc ghi ngẫu nhiên 550000 IOPS. NVMe M.2, tại 10 Patrick.
Đây là những gì bạn muốn nếu bạn cho một máy chủ cơ sở dữ liệu hoặc một cái gì đó (nếu bạn không thể sử dụng NVDIMM), nhưng nó sẽ không làm cho máy tính xách tay 4GB của bạn nhanh hơn nhiều (đối với hầu hết các trường hợp sử dụng thông thường) so với Optane 16GB mà họ bán. Hoán đổi không gian hoán đổi thường tạo ra rất nhiều lần đọc phụ thuộc vì một trang phải được phân trang và truy cập trước khi mã bị lỗi trang có thể tiếp tục bất cứ điều gì nó sẽ làm tiếp theo. Nếu bộ nhớ quá chật, HĐH không có các trang dự phòng để tích cực tìm nạp trước, do đó, bạn mong đợi độ sâu hàng đợi thấp mà Optane của người tiêu dùng được tối ưu hóa. (Độ trễ thấp.)
SSD Intel Optane cung cấp một sự đánh đổi chi phí năng lượng hiệu năng tốt. SSD về cơ bản không tiêu thụ năng lượng khi không truy cập. Ngược lại, mức tiêu thụ năng lượng tĩnh (chủ yếu là do làm mới) trong các chip DRAM là rất đáng kể. Vì vậy, lượng DRAM trong một hệ thống phải phù hợp lý tưởng với tập làm việc của khối lượng công việc điển hình. Hệ thống bạn đã mua được thiết kế cho một khối lượng công việc thông thường cần khoảng 4GB bộ nhớ chính hoặc ít hơn. Trong trường hợp này, nếu hệ thống có 8GB bộ nhớ chính thay vào đó, nó sẽ không tiêu thụ nhiều năng lượng hơn, điều này sẽ làm giảm tuổi thọ pin. Tuy nhiên, SSD Optane cho phép bạn thỉnh thoảng chạy các khối lượng công việc đòi hỏi bộ nhớ chính nhiều hơn một chút với sự suy giảm hiệu suất tối thiểu (so với SSD hoặc ổ cứng dựa trên NAND).
Bộ nhớ DRAM hiện có giá khoảng 4,5 USD / 1 GB trong khi SSD Intel Optane có giá khoảng 2 USD mỗi 1 GB. Vì vậy, SSD Optane 16 GB đắt hơn mô-đun DRAM 4GB, nhưng rẻ hơn mô-đun DRAM 8GB. Vì vậy, nếu bạn lấy ra SSD Optane và thêm bộ nhớ 4GB, bạn sẽ có được một hệ thống rẻ hơn, trung bình cũng nhanh hơn cho khối lượng công việc thông thường với bộ công việc lớn hơn 4GB. Nhưng việc xử lý lỗi trang cứng, tìm nạp trước trang và hoán đổi trang sẽ chậm hơn so với ổ cứng. Đó là lý do tại sao hệ thống 8GB có thể sẽ chậm hơn hệ thống SSD Optane 4GB DRAM + 16GB nếu khối lượng công việc thông thường cần ít hơn (hoặc khoảng) 4GB bộ nhớ.
Máy tính xách tay của bạn thật tuyệt nếu bạn chỉ sử dụng nó để duyệt Internet hoặc chỉnh sửa văn bản. SSD Optane giúp thời gian khởi động, cung cấp quyền truy cập nhanh vào các tệp được truy cập thường xuyên nhất và có thể được sử dụng như một bộ lưu trữ thứ cấp bổ sung. Vì vậy, mặc dù bạn đang trả nhiều hơn 16GB SSD Optane so với 4GB DRAM, nhưng bạn sẽ nhận được những lợi ích nhất định, duy nhất cho việc đó. Nhưng một số ứng dụng khác mà bạn đề cập, như RStudio, yêu cầu tối thiểu 4GB bộ nhớ. Nếu bạn thường sử dụng trình duyệt và RStudio cùng một lúc (và có thể các ứng dụng khác), thì bạn nên có một hệ thống có ít nhất 8GB bộ nhớ. Optane SSD cho đến khi tốt để có mặc dù.