SSD基礎架構與NAND IO并發問題探討

圖片

在我們的日常生活中,我們經常會遇到一些“快如閃電”的事物:比如那場突如其來的雨、那個突然出現在你眼前的前任、還有就是今天我們要聊的——固態硬盤(SSD)。

如果你是一個技術宅,或者對速度有著近乎偏執的追求,那么恭喜你,你找到了一個新朋友。這個朋友不僅快,而且非常穩定。他可以讓你的游戲加載瞬間完成,讓你的工作效率翻倍,甚至讓你的電腦啟動時間從“泡一杯咖啡”縮短到“打個哈欠”。

但你知道嗎?這種神奇的速度背后,隱藏著一個復雜的結構和原理。這就是我們今天要探索的主題——SSD架構原理。我們將深入到它的內部,看看那些小小的閃存顆粒是如何變成我們手中的高速存儲設備的。這就像是一次奇妙的探險,我們將一起揭開SSD神秘面紗,一探究竟!

先來看一張完整架構:SSD主要包括了與Host接口協議、控制器芯片SOC,NAND閃存,DRAM緩存。

圖片

Host下發IO,到SSD內部的處理邏輯如下圖。這里面核心點,IO邏輯地址LSA(或者叫LBA),到真正最后落入NAND,還有一層FTL轉化為了NAND的物理地址PPN(或者叫做PBA)。

圖片

FTL管理著邏輯地址和物理地址的映射關系。有時候,邏輯地址不變,對應的物理地址在不斷變化。

圖片

IO最后寫入NAND的過程也有很多關卡:

  • 與SSD控制交互的NAND Channel,每個Channel通道有獨立的NAND控制芯片。

  • 每個Channel也有多個NAND芯片,不同芯片之間又有Way的概念。

  • 每個NAND芯片,又包括了多個NAND die。

  • 每個Die再細分還有不同Plane

  • 每個Plane有很多個數據塊Block

  • 每個Block再細分就有了Page,每個block會有上千個page數據頁。

圖片

為了提升固態硬盤(SSD)的性能,NAND相關的并發訪問優化是關鍵因素之一,涉及NAND并發訪問主要有以下幾個方面:

  1. 多通道設計:現代SSD通常使用多通道架構,每個通道連接一組NAND閃存芯片。這樣可以同時處理多個并行讀寫操作,從而提高I/O吞吐量和響應時間。

圖片

  1. Way Pipeline設計:因為共享同一個channel通道,并不能完全并發執行。但NAND有erase/program/read多種操作,不同的操作響應時間也不一樣,可以通過way pipeline的方式盡可能優化響應時間。這部分主要是在NAND package內部交叉執行(interleaving)

圖片

  1. die間并發:當一個NAND芯片封裝包含多個die時,可以在不同die之間并行地執行讀寫操作。這可以通過先進的控制器算法來實現,以充分利用所有可用資源。

圖片

  1. Plane間并發:在NAND閃存中,一個die(晶片)通常由多個plane組成。每個plane都包含獨立的地址線、數據線和控制信號,能夠并行地執行讀寫操作。不同plane之間的共享可以提高SSD的性能和效率。目前NAND都支持multi-plane的操作。

圖片

在進行數據寫入數據頁page時,不同的分配規則(比如Way優先、CH優先、Die優先),對性能有很大的影響。

圖片

如果以Channel優先進行Page頁的分配策略,結合Way、Die、Plane的組合排列,數據分布的可能組合如下:

圖片

如果以Way優先進行Page頁的分配策略,結合Channel、Die、Plane的組合排列,數據分布的可能組合如下:

圖片

如果以Die優先進行Page頁的分配策略,結合Channel、Way、Plane的組合排列,數據分布的可能組合如下:

圖片

如果以Plane優先進行Page頁的分配策略,結合Channel、Way、Die的組合排列,數據分布的可能組合如下:

圖片

不同的page分配策略中,整體的有效利用率在43%。

圖片

不同的page分配策略,在讀寫過程中,有80%的時間處于idle狀態。

圖片

SSD整體優化策略就是要低延遲,高帶寬,增加NAND的并發度。

圖片

聲明:本文內容參考 Yonsei University Myoungsoo Jung教授團隊研究比較早期成果,如果有不當之處,恭請留言指正,感謝!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電阻知識總結與詳細選型指南

目錄 1. 基礎知識 1.1 電阻的定義和符號 1.2 電阻的公式 1.3 電阻的串聯與并聯 2. 參數選型 2.1 電阻值 2.2 功率 2.3 精度 2.4 溫度系數 2.5 電壓系數 2.6 包裝類型 2.7 耐壓 2.8 特殊應用需求 2.9 環保要求 3. 產品應用 3.1 電流限制和保護 3.2 電壓分壓和電…

【Qt開發流程】之容器類1:介紹及常用容器類和使用Java風格迭代器進行遍歷

概述 Qt庫提供了一組通用的基于模板的容器類。這些類可用于存儲指定類型的項。例如&#xff0c;如果需要一個可調整大小的QString數組&#xff0c;可以使用QVector<QString>。 這些容器類被設計成比STL容器更輕、更安全、更易于使用。如果不熟悉STL&#xff0c;或者更喜…

低多邊形3D建模石頭材質紋理貼圖

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xf…

云計算在計算機領域的應用與發展

云計算在計算機領域的應用與發展 一、引言 隨著科技的不斷發展&#xff0c;計算機領域已經成為當今社會最為活躍和創新的領域之一。云計算作為一種新興的計算模式&#xff0c;已經在計算機領域中得到了廣泛的應用&#xff0c;并且正在不斷地推動著計算機領域的發展。本文將探…

Ultimate VFX

Ultimate VFX 構建套件:

【利用二手車數據進行可視化分析】

利用二手車數據進行可視化分析 查看原始數據去除重復數據需求分析1.統計全國總共有多少量二手車&#xff0c;用KPI圖進行展示2.統計安徽總共有多少量二手車&#xff0c;用KPI圖進行展示3.統計合肥總共有多少量二手車&#xff0c;用KPI圖進行展示4.取最貴的10輛二手車信息&#…

web,Apache簡述

一.HTTP請求訪問的完整過程 1.建立連接 2.接收請求 3.處理請求 4.訪問資源 服務器獲取請求報文中請求的資源web服務器&#xff0c;即存放了web資源的服務器&#xff0c;負責向請求者提供對方請求的靜態資源&#xff0c;或動態運行后生成的資源 靜態資源&#xff1a;不需要…

C語言 內聯函數 + 遞歸函數

函數分類 內聯函數 1&#xff09;內聯函數在編譯時將函數的代碼直接插入到調用它的地方&#xff0c;而不是通過函數調用的方式執行&#xff0c;從而減少了函數調用的開銷&#xff0c;提高了代碼的執行速度 2&#xff09;使用 inline 關鍵字來聲明 3&#xff09;將函數聲明為內聯…

小目標檢測模型設計的一點思考

1. 小目標的特性 目標之間的交疊概率比較低&#xff0c;即使有交疊&#xff0c;其IoU多數情況下也是比較小的 AI-TOD Tiny Person Dateset 小目標自身的紋理顯著度有強弱區別&#xff0c;但是總體來說紋理特征都較弱&#xff0c;很多時候需要借助一定的圖像上下文來幫助確認 …

Java解決島嶼周長問題

Java解決島嶼周長問題 01 題目 給定一個 row x col 的二維網格地圖 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陸地&#xff0c; grid[i][j] 0 表示水域。 網格中的格子 水平和垂直 方向相連&#xff08;對角線方向不相連&#xff09;。整個網格被水完全包圍&am…

ssm校園論壇管理系統項目分享

校園論壇管理系統是基于java編程語言&#xff0c;mysql數據庫&#xff0c;ssm框架和idea工具開發&#xff0c;本系統主要分為學生用戶&#xff0c;管理員兩個角色&#xff0c;其中用戶可以注冊登陸系統&#xff0c;在線發帖&#xff0c;查看欄目帖子&#xff0c;回復帖子&#…

某音上很火的圣誕樹分享

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 效果截圖&#xff08;這里不給動態了&#xff0c;某音到處都是了&#xff09;&#xff1a; 源代碼&#xff1a; <script src"…

Spring Boot 3 集成 MyBatis詳解

MyBatis是一款開源的持久層框架&#xff0c;它極大地簡化了與數據庫的交互流程。與類似Hibernate的ORM框架不同&#xff0c;MyBatis更具靈活性&#xff0c;允許開發者直接使用SQL語句與數據庫進行交互。Spring Boot和MyBatis分別是兩個功能強大的框架&#xff0c;它們的協同使用…

Linux shell編程學習筆記34:eval 命令

0 前言 在JavaScript語言中&#xff0c;有一個很特別的函數eval&#xff0c;eval函數可以將字符串當做 JavaScript 代碼執行&#xff0c;返回表達式或值。 在Linux Shell 中也提供了內建命令eval&#xff0c;它是否具有JavaScript語言中eval函數的功能呢&#xff1f; 1 eval命…

GPIO的使用--USART串口通信--傳感器控制數據

目錄 一、串口通信 1、概念 2、原理圖 3、使用步驟 &#xff08;1&#xff09;尋找串口位置 &#xff08;2&#xff09;確定引腳編號 &#xff08;3&#xff09;編寫代碼 4、實驗結果 實驗代碼 main.c usart.c usart.h 一、串口通信 1、概念 串行接口是一種可以將…

DiffiT

本文首發于AIWalker&#xff0c;歡迎關注。 https://arxiv.org/abs/2312.02139 https://github.com/NVlabs/DiffiT 擴散模型以其強大的表達能力和高樣本質量在許多領域得到了新的應用。對于樣本生成&#xff0c;這些模型依賴于通過迭代去噪生成圖像的去噪神經網絡。然而&#x…

SAP UI5 walkthrough step8 Translatable Texts

在這個章節&#xff0c;我們會將一些文本常量獨立出一個資源文件 這樣的話&#xff0c;可以方便這些文本常量被翻譯成任意的語言 這種國際化的操作&#xff0c;我們一般命名為i18n 新建一個文件i18n.properties webapp/i18n/i18n.properties (New) showHelloButtonTextSay …

vue3項目實現文檔 JSON 格式和 Excel 表格的在線預覽,(智能搜索,未驗證)

若要實現文檔 JSON 格式和 Excel 表格的在線預覽&#xff0c;你可以使用第三方庫來實現。對于文檔 JSON 格式&#xff0c;你可以使用 vue-json-pretty 庫來展示美觀的 JSON 數據&#xff1b;對于 Excel 表格&#xff0c;你可以使用 vue-excel-viewer 庫來完成在線預覽。下面是一…

Java、Spring Boot和事務管理

引言 在現代應用程序開發中&#xff0c;確保數據的一致性和可靠性是至關重要的。Java作為一種強大的編程語言&#xff0c;通過其廣泛的生態系統和強大的庫支持&#xff0c;為開發人員提供了構建高性能應用程序的豐富工具。Spring Boot是一個基于Spring框架的項目&#xff0c;它…

圖像的均方差和信噪比計算

圖像的均方差和信噪比計算 一、均方差1、公式2、代碼 二、信噪比1、公式2、代碼 圖像的均方差和信噪比公式及代碼&#xff0c;代碼基于opencv和C實現。 一、均方差 均方誤差&#xff0c;英文簡稱&#xff1a;MSE&#xff0c;英文全稱&#xff1a;“Mean Square Error”。 衡量…