国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二)

這篇具有很好參考價(jià)值的文章主要介紹了《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第2章 SSD主控和全閃存陣列

SSD主要由兩大模塊構(gòu)成——主控和閃存介質(zhì)。其實(shí)除了上述兩大模塊外,可選的還有緩存單元。主控是SSD的大腦,承擔(dān)著指揮、運(yùn)算和協(xié)調(diào)的作用,具體表現(xiàn)在

  • 一是實(shí)現(xiàn)標(biāo)準(zhǔn)主機(jī)接口與主機(jī)通信
  • 二是實(shí)現(xiàn)與閃存的通信
  • 三是運(yùn)行SSD內(nèi)部FTL算法

可以說(shuō),一款主控芯片的好壞直接決定了SSD的性能、壽命和可靠性

2.1 SSD系統(tǒng)架構(gòu)

SSD作為數(shù)據(jù)存儲(chǔ)設(shè)備,其實(shí)是一種典型的(System on Chip)單機(jī)系統(tǒng),有主控CPU、RAM、操作加速器、總線、數(shù)據(jù)編碼譯碼等模塊,見(jiàn)圖2-1,操作對(duì)象為協(xié)議、數(shù)據(jù)命令、介質(zhì),操作目的是寫入和讀取用戶數(shù)據(jù)

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-1 SSD主控模塊硬件圖 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

圖2-1所示僅是一個(gè)SSD系統(tǒng)架構(gòu)的概略圖,這款主控采用ARM CPU,主要分為前端和后端兩大部分。前端(Host Interface Controller,主機(jī)接口控制器)跟主機(jī)打交道,接口可以是SATA、PCIe、SAS等。后端(Flash Controller,閃存控制器)跟閃存打交道并完成數(shù)據(jù)編解碼和ECC。除此之外還有緩沖(Buffer)、DRAM。模塊之間通過(guò)AXI高速和APB低速總線互聯(lián)互通,完成信息和數(shù)據(jù)的通信。在此基礎(chǔ)之上,由SSD固件開(kāi)發(fā)者構(gòu)筑固件(Firmware)統(tǒng)一完成SSD產(chǎn)品所需要的功能,調(diào)度各個(gè)硬件模塊,完成數(shù)據(jù)從主機(jī)端到閃存端的寫入和讀取

2.1.1 前端

主機(jī)接口:與主機(jī)進(jìn)行通信(數(shù)據(jù)交互)的標(biāo)準(zhǔn)協(xié)議接口,當(dāng)前主要代表為SATA、SAS和PCIe等。表2-1所示是三者的接口速率

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
表2-1 SATA、SAS、PCIe接口速率 表格來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

SATA的全稱是Serial Advanced Technology Attachment(串行高級(jí)技術(shù)附件),是一種基于行業(yè)標(biāo)準(zhǔn)的串行硬件驅(qū)動(dòng)器接口,如圖2-2所示

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-2 SATA接口 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

SAS(Serial Attached SCSI)即串行連接SCSI,是新一代的SCSI技術(shù),和現(xiàn)在流行的Serial ATA(SATA)硬盤相同,都是采用串行技術(shù)以獲得更高的傳輸速度,并通過(guò)縮短連接線改善內(nèi)部空間等,如圖2-3所示

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-3 SAS接口 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

PCIe(Peripheral Component Interconnect Express)是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),主要優(yōu)勢(shì)就是數(shù)據(jù)傳輸速率高,目前最高的4.0版本可達(dá)到2GB/s(單向單通道速率),如圖2-4和2-5所示

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-4 PCIe接口式插卡(AIC) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-5 U.2接口 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

前端是負(fù)責(zé)主機(jī)和SSD設(shè)備通信的接口,命令和數(shù)據(jù)傳輸通過(guò)前端總線流向或流出SSD設(shè)備

  • 從硬件模塊上來(lái)看,前端有SATA/SAS/PCIe PHY層,俗稱物理層,接收串行比特?cái)?shù)據(jù)流,轉(zhuǎn)化成數(shù)字信號(hào)給前端后續(xù)模塊處理。這些模塊處理NVMe/SATA/SAS命令,它們接收并處理一條條命令和數(shù)據(jù)信息,涉及數(shù)據(jù)搬移會(huì)使用到DMA。一般命令信息會(huì)排隊(duì)放到隊(duì)列中,數(shù)據(jù)會(huì)放到SRAM快速介質(zhì)中。如果涉及加密和壓縮功能,前端會(huì)有相應(yīng)的硬件模塊來(lái)做處理,若軟件無(wú)法應(yīng)對(duì)壓縮和加密的快速需求,則會(huì)成為性能的瓶頸
  • 從協(xié)議角度,以一條SATA Write FPDMA命令為例對(duì)上述內(nèi)容進(jìn)行說(shuō)明。從主機(jī)端文件系統(tǒng)發(fā)出一條寫命令請(qǐng)求,該請(qǐng)求到主板南橋AHCI寄存器后,AHCI寄存器執(zhí)行請(qǐng)求,即進(jìn)行寫操作,忽略文件系統(tǒng)到AHCI路徑的操作細(xì)節(jié),從SSD前端總線上看會(huì)發(fā)出如下的寫交互操作,如圖圖2-6

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-6 SAT A Write FPDMA命令協(xié)議處理步驟 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

  • 步驟1:主機(jī)在總線上發(fā)出Write FPDMA命令FIS(Frame Information Structure,幀信息結(jié)構(gòu),是SATA為了實(shí)現(xiàn)異步傳輸數(shù)據(jù)塊而使用的封包)
  • 步驟2:SSD收到命令后,判斷自己內(nèi)部寫緩存(Write Buffer)是否有空間去接收新的數(shù)據(jù)。如果有,則發(fā)出DMA Setup FIS到主機(jī)端;否則什么也不發(fā),主機(jī)端處于等待狀態(tài)(這叫流控:數(shù)據(jù)流量控制)
  • 步驟3:主機(jī)端收到DMA Setup FIS后,發(fā)送不大于8KB數(shù)據(jù)的Data FIS給設(shè)備
  • 步驟4:重復(fù)步驟2和步驟3直到數(shù)據(jù)全部發(fā)送完畢
  • 步驟5:設(shè)備(SSD)發(fā)送一個(gè)狀態(tài)Status FIS給主機(jī),表示從協(xié)議層面這條寫命令完成全部操作。當(dāng)然Status可以是一個(gè)good status或者一個(gè)bad/error status,表示這條Write FPDMA命令操作正?;蛘弋惓M瓿?/li>

SSD接收命令和數(shù)據(jù)并放到SSD內(nèi)部緩沖區(qū)之后,前端固件模塊還需要對(duì)命令進(jìn)行解析,并分派任務(wù)給中端FTL。命令解析(Command Decoder)將命令FIS解析成固件和FTL(Flash Translation Layer)能理解的元素:

  • 這是一條什么命令,命令屬性是讀還是寫
  • 這條寫命令的起始LBA和數(shù)據(jù)長(zhǎng)度
  • 這條寫命令的其他屬性,如是否是FUA命令,和前一條命令LBA是否連續(xù)(是連續(xù)命令還是隨機(jī)命令)

當(dāng)命令解析完成后,放入命令隊(duì)列里等待中端FTL排隊(duì)去處理。由于已經(jīng)有了起始LBA和數(shù)據(jù)長(zhǎng)度兩大主要信息元素,F(xiàn)TL可以準(zhǔn)確地映射LBA空間到閃存的物理空間。至此,前端硬件和固件模塊完成了它應(yīng)該完成的任務(wù)

2.1.2 主控CPU

SSD控制器SoC模塊和其他嵌入式系統(tǒng)SoC模塊并沒(méi)有什么本質(zhì)的不同,一般由一顆或多顆CPU核組成,同時(shí)片上有I-RAM、D-RAM、PLL、IO、UART、高低速總線等外圍電路模塊。CPU負(fù)責(zé)運(yùn)算、系統(tǒng)調(diào)度,IO完成必要的輸入輸出,總線連接前后端模塊

通常所說(shuō)的固件就運(yùn)行在CPU核上,分別有代碼存儲(chǔ)區(qū)I-RAM和數(shù)據(jù)存儲(chǔ)區(qū)D-RAM。如果是多核CPU,需要注意的是軟件可以是對(duì)稱多處理(SMP)和非對(duì)稱多處理(AMP)。對(duì)稱多處理多核共享OS和同一份執(zhí)行代碼,非對(duì)稱多處理是多核分別執(zhí)行不同代碼。前者多核共享一份I-RAM和D-RAM,資源共享;后者每核對(duì)應(yīng)一份I-RAM和D-RAM,每核獨(dú)立運(yùn)行,沒(méi)有內(nèi)存搶占導(dǎo)致代碼速度執(zhí)行變慢的問(wèn)題。當(dāng)SSD的CPU要求計(jì)算能力更高時(shí),除增加核數(shù)和單核CPU頻率外,AMP的設(shè)計(jì)方式更加適應(yīng)計(jì)算和任務(wù)獨(dú)立的要求,消除了代碼和數(shù)據(jù)資源搶占導(dǎo)致執(zhí)行速度過(guò)慢的問(wèn)題

固件根據(jù)CPU的核數(shù)進(jìn)行設(shè)計(jì),充分發(fā)揮多核CPU的計(jì)算能力是固件設(shè)計(jì)考慮的一方面。另外,固件會(huì)考慮任務(wù)劃分,會(huì)將任務(wù)分別加載到不同CPU上執(zhí)行,在達(dá)到并行處理的同時(shí)讓所有CPU有著合理且均衡的負(fù)載,不至于有的CPU忙死有的CPU閑死,這是固件架構(gòu)設(shè)計(jì)要考慮的重要內(nèi)容,目標(biāo)是讓SSD輸出最大的讀寫性能

SSD的CPU外圍模塊包括UART、GPIO、JTAG,這些都是程序必不可少的調(diào)試端口,另外還有定時(shí)器模塊Timer及其他內(nèi)部模塊,比如DMA、溫度傳感器、Power regulator模塊等

2.1.3 后端

后端兩大模塊分別為ECC模塊和閃存控制器,如圖2-7

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-7 SSD中的ECC模塊和閃存控制器 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

ECC模塊是數(shù)據(jù)編解碼單元,由于閃存存儲(chǔ)天生存在誤碼率,為了數(shù)據(jù)的正確性,在數(shù)據(jù)寫入操作時(shí)應(yīng)給原數(shù)據(jù)加入ECC校驗(yàn)保護(hù),這是一個(gè)編碼過(guò)程。讀取數(shù)據(jù)時(shí),同樣需要通過(guò)解碼來(lái)檢錯(cuò)和糾錯(cuò),如果錯(cuò)誤的比特?cái)?shù)超過(guò)ECC糾錯(cuò)能力,數(shù)據(jù)會(huì)以“不可糾錯(cuò)”的形式上傳給主機(jī)。這里的ECC編碼和解碼的過(guò)程就是由ECC模塊單元來(lái)完成的。SSD內(nèi)的ECC算法主要有BCH和LDPC,其中LDPC正逐漸成為主流

閃存控制器使用符合閃存ONFI、Toggle標(biāo)準(zhǔn)的閃存命令,負(fù)責(zé)管理數(shù)據(jù)從緩存到閃存的讀取和寫入

從單個(gè)閃存角度看,一個(gè)Die/LUN是一個(gè)閃存命令執(zhí)行的基本單元,閃存控制器和閃存連接引腳按照如下操作,如圖2-8

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-8 閃存芯片接口 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

  • 外部接口:8個(gè)IO接口,5個(gè)使能信號(hào)(ALE、CLE、WE#、RE#、CE#),1個(gè)狀態(tài)引腳(R/B#),1個(gè)寫保護(hù)引腳(WP#)
  • 命令、地址、數(shù)據(jù)都通過(guò)8個(gè)IO接口輸入輸出
  • 寫入命令、地址、數(shù)據(jù)時(shí),都需要將WE#、CE#信號(hào)同時(shí)拉低,數(shù)據(jù)在WE#上升沿被鎖存
  • CLE、ALE用來(lái)區(qū)分IO引腳上傳輸?shù)氖菙?shù)據(jù)還是地址

從閃存控制器角度看,為了性能需求需要并發(fā)多個(gè)閃存Die/LUN,通常配置有多個(gè)通道(channel)。一個(gè)通道掛多少個(gè)閃存Die/LUN,取決于SSD容量和性能需求,Die/LUN個(gè)數(shù)越多,并發(fā)的個(gè)數(shù)越多,性能越好
Die/LUN是閃存通信的最小基本管理單元,配有上述的一套總線,即8個(gè)I/O口,5個(gè)使能信號(hào)(ALE、CLE、WE#、RE#、CE#),1個(gè)狀態(tài)引腳(R/B#),1個(gè)寫保護(hù)引腳(WP#)

如果一個(gè)通道上掛了多個(gè)閃存Die/LUN,每個(gè)Die共用每個(gè)通道上的一套總線,閃存控制器通過(guò)選通信號(hào)CE#識(shí)別和哪個(gè)Die通信。在閃存控制器給特定地址的閃存Die發(fā)讀寫命令和數(shù)據(jù)前,先選通對(duì)應(yīng)Die的CE#信號(hào),然后進(jìn)行讀寫命令和數(shù)據(jù)的發(fā)送。一個(gè)通道上可以有多個(gè)CE,SSD主控一般設(shè)計(jì)為4~8個(gè),對(duì)于容量而言選擇有一定的靈活度

2.2 SSD主控廠商

SSD主控是一個(gè)技術(shù)深度和市場(chǎng)廣度都很大的芯片產(chǎn)品

2.2.1 Marvell主控

Marvell在高端SoC設(shè)計(jì)上處于領(lǐng)先地位,Marvell通過(guò)復(fù)雜的SoC架構(gòu)、領(lǐng)先的糾錯(cuò)機(jī)制、接口技術(shù)、低功耗等多項(xiàng)優(yōu)勢(shì)建立起領(lǐng)先競(jìng)爭(zhēng)對(duì)手的技術(shù)壁壘

2.2.2 三星主控

三星的主控基本上都是三星自己的SSD在用,830系列使用是MCX主控,而840及840Pro使用的則是MDX主控,850Pro/840EVO用的是MEX主控,850EVO 500GB以下的和750EVO用的是MGX主控,650用的是MFX主控

2.3 案例:硅格(SiliconGo)SG9081主控

本節(jié)以國(guó)產(chǎn)主控廠商硅格的SATA3.2SSD主控SG9081為例,剖析一下主控如何實(shí)現(xiàn)高性能。圖2-14為SG9081主控的結(jié)構(gòu)框圖

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-14 SG9081主控的結(jié)構(gòu)框圖 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

1.HAM+GoCache加速隨機(jī)讀寫的IOPS

HAM是硬件加速模塊的簡(jiǎn)稱,SSD主控中除了MCU以外,還有一個(gè)硬件加速模塊HAM。該模塊將部分算法處理的動(dòng)作硬件化,一方面釋放了MCU的資源,另外一個(gè)方面則加速了算法的實(shí)現(xiàn),尤其是對(duì)小數(shù)據(jù)的處理。另外,主控中集成了GoCache(SiliconGo獨(dú)有技術(shù)),可高效地實(shí)現(xiàn)映射關(guān)系的管理,從而更高效地提高對(duì)小數(shù)據(jù)的傳輸能力。兩者的結(jié)合實(shí)現(xiàn)了SSD成品模組性能的提升

2.DMAC加速順序讀寫

DMAC是Direct Memory Access Controller的縮寫。該模塊的存在使得SSD在進(jìn)行連續(xù)大數(shù)據(jù)傳輸?shù)臅r(shí)候,不用一直占據(jù)MCU的資源。當(dāng)DMA請(qǐng)求被發(fā)起時(shí),內(nèi)部總線裁決邏輯將交由DMAC控制,接著數(shù)據(jù)高速傳輸動(dòng)作開(kāi)啟。傳輸過(guò)程中,MCU可以去處理其他的事務(wù),而當(dāng)數(shù)據(jù)傳輸結(jié)束之后,DMAC又會(huì)將總線讓給MCU。在這樣的機(jī)制保證下,SSD進(jìn)行讀寫操作時(shí)的效率極大地提高,從而表現(xiàn)出優(yōu)秀的順序讀寫性能

3.LDPC+RAID提高可靠性,增強(qiáng)閃存耐久度和數(shù)據(jù)留存能力

目前閃存正從2D轉(zhuǎn)向3D架構(gòu),對(duì)閃存糾錯(cuò)處理的要求也越來(lái)越高,早期的BCH已經(jīng)無(wú)法滿足先進(jìn)制程或先進(jìn)工藝的閃存。SG9081主控采用LDPC實(shí)現(xiàn)ECC,LDPC碼在相同的用戶數(shù)據(jù)條件下,與BCH校驗(yàn)碼相比能糾正更多的錯(cuò)誤,同時(shí)也增強(qiáng)了閃存的使用壽命。而RAID功能的引進(jìn)則給數(shù)據(jù)保護(hù)加上了一個(gè)雙保險(xiǎn)。主控中的RAID功能可以理解為給數(shù)據(jù)做了一層校驗(yàn)保護(hù),必要的時(shí)候可以通過(guò)校驗(yàn)的內(nèi)容恢復(fù)為原始數(shù)據(jù)。LDPC和RAID功能大大地提高了數(shù)據(jù)的穩(wěn)定性

2.4 案例:企業(yè)級(jí)和消費(fèi)級(jí)主控需求的歸一化設(shè)計(jì)

SSD有企業(yè)級(jí)與消費(fèi)級(jí)之分。企業(yè)級(jí)SSD產(chǎn)品更加注重隨機(jī)性能、延遲、IO QoS的保證及穩(wěn)定性;而消費(fèi)級(jí)產(chǎn)品則更加注重順序性能、功耗、價(jià)格等,如表2-3所示

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
表2-3 企業(yè)級(jí)和消費(fèi)級(jí)SSD對(duì)比 表格來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

是否有一款歸一化的SSD控制器,能同時(shí)滿足企業(yè)級(jí)和消費(fèi)級(jí)需求?主要的問(wèn)題在于能否在控制器硬件架構(gòu)上實(shí)現(xiàn)成本、功耗和功能的統(tǒng)一

  • 1)成本方面,企業(yè)級(jí)SSD對(duì)控制器成本較不敏感,歸一化SSD控制器需要著重滿足消費(fèi)級(jí)SSD的成本預(yù)算。采用通用硬件架構(gòu)并優(yōu)化硬件資源開(kāi)銷來(lái)約束SSD控制器成本,通過(guò)差異化固件來(lái)滿足企業(yè)級(jí)與消費(fèi)級(jí)產(chǎn)品的不同性能需求
  • 2)在性能方面,經(jīng)過(guò)市場(chǎng)沉淀,NVMeU.2形態(tài)與M.2形態(tài)的SSD逐漸成為主流,兩種形態(tài)的SSD產(chǎn)品性能需求也趨于一致。作為AIC形態(tài)的取代品,1U服務(wù)器普遍承載8塊或更多U.2形態(tài)SSD,使得U.2形態(tài)SSD單盤4KB隨機(jī)性能在300~400KIOPS,這已能滿足大部分應(yīng)用需求。反觀消費(fèi)級(jí)SSD市場(chǎng),高端游戲平臺(tái)NVMe M.2形態(tài)的SSD理論上性能已達(dá)3.5GB/s,這樣的性能指標(biāo)已與一些企業(yè)級(jí)SSD的順序IO相近。一些互聯(lián)網(wǎng)廠商已在IDC數(shù)據(jù)中心中應(yīng)用M.2形態(tài)的SSD。在數(shù)據(jù)中心,上層對(duì)數(shù)據(jù)流做了大量?jī)?yōu)化,數(shù)據(jù)以順序訪問(wèn)方式寫入SSD,這降低了對(duì)企業(yè)級(jí)SSD隨機(jī)性能的需求
  • 3)在壽命上,企業(yè)級(jí)與消費(fèi)級(jí)SSD需求差別較大。但影響SSD壽命的主要因素在于閃存的耐久能力。SSD控制器則確保加強(qiáng)對(duì)閃存的糾錯(cuò)能力。因此,企業(yè)級(jí)與消費(fèi)級(jí)SSD控制器在壽命方面的設(shè)計(jì)目標(biāo)是一致的
  • 4)在容量上,企業(yè)級(jí)SSD與消費(fèi)級(jí)SSD差異較大。SSD控制器需要以比較小的代價(jià)支持大容量閃存,以便同時(shí)覆蓋企業(yè)級(jí)與消費(fèi)級(jí)SSD的需求
  • 5)可靠性方面,企業(yè)級(jí)SSD一般要求ECC與DIE-RAID兩層數(shù)據(jù)保護(hù)能力。而隨著3D閃存逐步普及,閃存廠商開(kāi)始建議在消費(fèi)級(jí)SSD上提供DIE-RAID能力。所以在可靠性方面,企業(yè)級(jí)與消費(fèi)級(jí)SSD控制器的設(shè)計(jì)目標(biāo)也趨于一致了
  • 6)在功耗方面,消費(fèi)級(jí)產(chǎn)品對(duì)功耗最為敏感,特別是像平板、筆記本電腦這種電池供電設(shè)備,對(duì)功耗有嚴(yán)格的限制。SSD控制器在設(shè)計(jì)時(shí)需要考慮復(fù)雜的低功耗需求,需要支持多種電源狀態(tài),以及快速喚醒。企業(yè)級(jí)SSD對(duì)功耗相對(duì)不敏感。然而對(duì)于整個(gè)數(shù)據(jù)中心,電力成本已占數(shù)據(jù)中心運(yùn)營(yíng)成本近20%。隨著SSD的大規(guī)模部署,低功耗設(shè)計(jì)也成為企業(yè)級(jí)SSD控制器的追求目標(biāo)

從上面幾點(diǎn)不難看出,在企業(yè)級(jí)與消費(fèi)級(jí)SSD設(shè)計(jì)指標(biāo)趨于一致的趨勢(shì)下,硬件規(guī)格實(shí)現(xiàn)統(tǒng)一是極有可能的。而SSD產(chǎn)品形態(tài)的差異化則由SSD控制器上的固件體現(xiàn)。憶芯科技的STAR1000芯片在設(shè)計(jì)中對(duì)此做了比較成功的嘗試,如圖2-15所示

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-15 STAR1000關(guān)鍵技術(shù) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

2.5 案例:DERA(得瑞領(lǐng)新)NVMe控制器TAI和NVMe SSD產(chǎn)品

NVMe協(xié)議面向現(xiàn)代多核計(jì)算系統(tǒng)結(jié)構(gòu)設(shè)計(jì),充分發(fā)揮NVM介質(zhì)高并發(fā)及低延遲的特性,為實(shí)現(xiàn)高吞吐量、低延遲的存儲(chǔ)設(shè)備打下了良好的生態(tài)基礎(chǔ)。DERA Storage遵循協(xié)議標(biāo)準(zhǔn),面向企業(yè)計(jì)算市場(chǎng),開(kāi)發(fā)提供高性能、高可靠的NVMe SSD解決方案

控制器是NVMe SSD的核心部件,是連接主機(jī)總線和閃存單元的橋梁。本質(zhì)上,一個(gè)NVMe SSD設(shè)備內(nèi)部需要處理高并發(fā)的大量IO事務(wù),每個(gè)IO事務(wù)都伴隨多種硬件操作和事件處理,其中一些功能特性需要結(jié)合計(jì)算密集型的操作,比如用于數(shù)據(jù)錯(cuò)誤檢測(cè)的編解碼,或者數(shù)據(jù)加密、解密,在完成這些處理的同時(shí)還要滿足苛刻的功耗要求,因此不可避免地需要使用專用的硬件加速單元。綜合考慮,NVMe SSD控制器一般是緊密結(jié)合NAND閃存管理軟件進(jìn)行高度定制化設(shè)計(jì)的ASIC(專用集成電路)。只有將數(shù)據(jù)通路、計(jì)算資源都經(jīng)過(guò)合理安排調(diào)配,最終實(shí)現(xiàn)的NVMe SSD才能在可靠性、性能、功耗幾個(gè)方面實(shí)現(xiàn)良好統(tǒng)一的目標(biāo)

DERA NVMe控制器是DERA NVMe SSD產(chǎn)品的核心部件,TAI是DERA的第一款控制器,如圖2-16。DERA TAI前端支持PCIe Gen3x8或x4接口,集成多個(gè)NAND接口通道和高強(qiáng)度ECC硬件編解碼單元,所有數(shù)據(jù)通道均運(yùn)用ECC和CRC多重硬件保護(hù)機(jī)制。在TAI控制器基礎(chǔ)上,緊密協(xié)同設(shè)計(jì)的閃存轉(zhuǎn)換層(FTL)算法負(fù)責(zé)調(diào)度管理,綜合運(yùn)用多種技術(shù)實(shí)現(xiàn)企業(yè)級(jí)的數(shù)據(jù)存儲(chǔ)可靠性,充分發(fā)揮NAND閃存的高速存取特點(diǎn),實(shí)現(xiàn)高可靠、低延時(shí)、高吞吐量的數(shù)據(jù)存儲(chǔ)要求

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-16 DERA TAI控制器 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

閃存ECC是SSD的核心功能。為了處理新結(jié)構(gòu)、新工藝節(jié)點(diǎn)下閃存芯片的高原始誤碼率,以及滿足高并發(fā)訪問(wèn)時(shí)的低延遲要求,DERA TAI控制器為每個(gè)閃存通道都配備了獨(dú)立的ECC單元,糾錯(cuò)能力為100b/1KB,滿足主流閃存器件對(duì)主控糾錯(cuò)能力的要求,即在復(fù)雜度、面積和功耗、解碼延遲時(shí)間確定性和可控性等多個(gè)方面達(dá)到了良好的均衡。此外,DERA TAI對(duì)完整數(shù)據(jù)通道的ECC保護(hù)和CRC校驗(yàn),也在不影響性能的前提下為數(shù)據(jù)可靠性提供了進(jìn)一步的基礎(chǔ)保障

DERA SSD提供完備的硬件手段持續(xù)監(jiān)測(cè)供電情況,并在供電異常時(shí)觸發(fā)保護(hù)策略,自動(dòng)切換到后備電容或其他不間斷電源供電,在整體的軟件策略上予以充分配合,在發(fā)生意外掉電時(shí)最大限度保證用戶數(shù)據(jù)的完整性

2.6 全閃存陣列AFA

2.6.1 整體解剖

1 結(jié)構(gòu)

圖2-17所示是一個(gè)標(biāo)準(zhǔn)的XtremIO全閃存陣列,含有兩個(gè)X-Brick,之間用Infiniband互聯(lián)??梢钥闯觯琗-Brick是核心

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-17 XtremIO全閃存陣列結(jié)構(gòu) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

一個(gè)X-Brick包括:

  • 1個(gè)高級(jí)UPS電源
  • 2個(gè)存儲(chǔ)控制器
  • 磁盤陣列存儲(chǔ)柜DAE,放有很多個(gè)SSD,每個(gè)SSD都用SAS連接到存儲(chǔ)控制器
  • 如果系統(tǒng)有多個(gè)X-Brick,那么需要2個(gè)Infiniband交換機(jī)來(lái)實(shí)現(xiàn)存儲(chǔ)控制器高速互聯(lián)
2 存儲(chǔ)控制器

如圖2-18所示,存儲(chǔ)控制器其實(shí)就是個(gè)Intel服務(wù)器,配有2個(gè)電源,看起來(lái)是NUMA架構(gòu)的2個(gè)獨(dú)立CPU、2個(gè)Infiniband控制器、2個(gè)SAS HBA卡。Intel E5CPU,每個(gè)CPU配有256GB內(nèi)存

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-18 存儲(chǔ)控制器機(jī)箱內(nèi)部 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

如圖2-19所示,其后面插有各種線纜,看著感覺(jué)亂糟糟的,如圖2-19所示。設(shè)計(jì)的架構(gòu)適用于集群,所以線纜有很多是冗余的

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-19 X-Brick背面連線圖 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

陣列正面照,LCD顯示的是UPS電源狀態(tài)。圖2-20所示是一個(gè)個(gè)豎著的就是SSD陣列

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-20 Xtrem-IO全閃存陣列正面照片 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

3 配置

如表2-5所示,一個(gè)X-Brick容量是10TB,可用容量7.5TB,但是考慮到數(shù)據(jù)去重和壓縮大概為5∶1的比例,最終可用容量為37.5TB

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
表2-5 XtremIO配置表 表格來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

2.6.2 硬件架構(gòu)

EMC XtremIO是EMC對(duì)全閃存陣列市場(chǎng)的突襲,它從底層開(kāi)始完全根據(jù)閃存特性設(shè)計(jì)。如圖2-23所示,1個(gè)X-Brick包含2個(gè)存儲(chǔ)控制器,一個(gè)裝了25個(gè)SSD的DAE,還有2個(gè)電池備用電源(Battery Backup Unit,BBU)。每個(gè)X-Brick包含25個(gè)400GB的SSD,原始容量10TB,使用的是高端的eMLC閃存,一般擦寫壽命比普通的MLC長(zhǎng)一個(gè)數(shù)量級(jí)。如果只買一個(gè)X-Brick,配有兩個(gè)BBU,其中一個(gè)是為了冗余。如果繼續(xù)增加X(jué)-Brick,那么其他的X-Brick只需要一個(gè)BBU

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-23 X-Brick尺寸 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

2.6.3 軟件架構(gòu)

存儲(chǔ)行業(yè)發(fā)展到今天,硬件越來(lái)越標(biāo)準(zhǔn)化,所以已經(jīng)很難靠硬件出彩了。若能夠制造存儲(chǔ)芯片,例如三星這種模式,從底層開(kāi)始都自己做,則可靠巨大的出貨量坐收硬件的利潤(rùn)

1 XIO軟件幾大殺器
  • 去重:提升性能,同時(shí)因?yàn)閷懛糯蠼档?,延長(zhǎng)了閃存的壽命,提高了可靠性
  • Thin Provisioning:分區(qū)的容量可以隨著使用而自動(dòng)增長(zhǎng)(直到用滿陣列),這樣關(guān)鍵時(shí)刻不會(huì)影響性能
  • 鏡像:先進(jìn)的鏡像架構(gòu)保證了容量和性能不會(huì)受損
  • XDP數(shù)據(jù)保護(hù):用RAID6保護(hù)數(shù)據(jù)
  • VAAI集成
2 XIO軟件核心設(shè)計(jì)思想
  • 1)一切為了隨機(jī)性能:任何節(jié)點(diǎn)上訪問(wèn)任意數(shù)據(jù)塊,都不會(huì)增加額外的成本,即必須公平訪問(wèn)所有的資源。這樣的結(jié)果就是即使節(jié)點(diǎn)增加,性能也能夠線性增長(zhǎng),擴(kuò)展性也好
  • 2)盡可能減少寫放大:對(duì)SSD來(lái)講寫放大不僅會(huì)導(dǎo)致壽命縮短,還會(huì)因?yàn)殚W存的擦寫次數(shù)升高,導(dǎo)致質(zhì)量下降,數(shù)據(jù)可靠性下降。XIO的設(shè)計(jì)目標(biāo)就是讓后臺(tái)實(shí)際寫入的數(shù)據(jù)盡量少,起到一種數(shù)據(jù)衰減的作用
  • 3)不做全局垃圾回收:XIO使用的是SSD陣列,而SSD內(nèi)部是有高性能企業(yè)級(jí)控制器芯片的,當(dāng)前的SSD主控都非常強(qiáng)大,垃圾回收效率很高,所以XIO并沒(méi)有再重復(fù)做一遍垃圾回收。這樣做的效果是降低了寫放大,畢竟后臺(tái)搬移的數(shù)據(jù)量少了,同時(shí),節(jié)省出時(shí)間和系統(tǒng)資源提供給其他軟件功能、數(shù)據(jù)服務(wù)和VAAI等
  • 4)按照內(nèi)容存放數(shù)據(jù):數(shù)據(jù)存放的地址用數(shù)據(jù)內(nèi)容生成,跟邏輯地址無(wú)關(guān)。這樣數(shù)據(jù)可以存放在任何位置,提升隨機(jī)性能,同時(shí)還可以針對(duì)SSD做各種優(yōu)化。數(shù)據(jù)可以平均放置在整個(gè)系統(tǒng)中
  • 5)True Active/Active數(shù)據(jù)訪問(wèn):LUN沒(méi)有所有者一說(shuō),所有節(jié)點(diǎn)都可以為任何卷服務(wù),這樣就不會(huì)因?yàn)槟骋粋€(gè)節(jié)點(diǎn)出問(wèn)題而使性能受損
  • 6)擴(kuò)展性好:性能、容量等都可以線性擴(kuò)展
3 XIO軟件為什么運(yùn)行在Linux用戶態(tài)

如圖2-28所示,XIO的全閃存陣列軟件架構(gòu),XIO OS和XIO的軟件都運(yùn)行在Linux的用戶態(tài)。Linux系統(tǒng)分為內(nèi)核態(tài)和用戶態(tài),我們的應(yīng)用程序都在用戶態(tài)運(yùn)行,各種硬件接口等系統(tǒng)資源都通過(guò)內(nèi)核態(tài)管理,用戶態(tài)通過(guò)system call訪問(wèn)內(nèi)核資源。XIO軟件運(yùn)行在用戶態(tài)有幾大優(yōu)點(diǎn):

  • 避免了內(nèi)核態(tài)的進(jìn)程切換,速度快
  • 開(kāi)發(fā)簡(jiǎn)單,不需要借助各種內(nèi)核接口,以及復(fù)雜的內(nèi)存管理和異常處理
  • 不必受到GPL的約束。Linux是開(kāi)源系統(tǒng),程序在內(nèi)核運(yùn)行必然要用到內(nèi)核代碼,按照GPL的規(guī)定,就得開(kāi)源,在用戶態(tài)自己開(kāi)發(fā)的應(yīng)用就不受此限制

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-28 XIO軟件架構(gòu) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

在每個(gè)CPU上運(yùn)行著一個(gè)XIOS程序:X-ENV,如果敲一下“top”命令,就會(huì)發(fā)現(xiàn)這個(gè)程序掌控所有的CPU和內(nèi)存資源

  • 第一個(gè)作用就是為了XIO能100%使用硬件資源
  • 第二個(gè)作用是不給其他進(jìn)程影響XIO性能的機(jī)會(huì),保證性能的穩(wěn)定
  • 第三個(gè)作用是提供了一種可能性:未來(lái)可以簡(jiǎn)單修改就移植到UNIX或者Windows平臺(tái),或者從X86CPU移植到ARM、PowerPC等CPU架構(gòu),因?yàn)檫@都是上層程序,不涉及底層接口

XIO是完全脫離了硬件的軟件,而且,XIO的硬件基本沒(méi)有自己特殊的組件,不包含F(xiàn)PGA,沒(méi)有自己開(kāi)發(fā)的芯片、SSD卡、固件等,用的都是標(biāo)準(zhǔn)件。這樣做的好處是可以使用最新、最強(qiáng)大的X86硬件,還有最新的互聯(lián)技術(shù),比如比Infiniband更快的技術(shù)

2.6.4 工作流程

1 6大模塊

XIO軟件分為6個(gè)模塊,以實(shí)現(xiàn)復(fù)雜的功能,其中包括三個(gè)數(shù)據(jù)模塊R、C、D,三個(gè)控制模塊P、M、L

  • P(Platform,平臺(tái)模塊):監(jiān)控系統(tǒng)硬件,每個(gè)節(jié)點(diǎn)有個(gè)P模塊在運(yùn)行
  • M(Management,管理模塊):實(shí)現(xiàn)各種系統(tǒng)配置。通過(guò)和XMS管理服務(wù)器通信來(lái)執(zhí)行任務(wù),比如創(chuàng)建卷、LUN的掩碼等從命令行或圖形界面發(fā)過(guò)來(lái)的指令。有一個(gè)節(jié)點(diǎn)運(yùn)行M模塊,其他節(jié)點(diǎn)運(yùn)行另一個(gè)備用M模塊
  • L(Cluster,集群模塊):管理集群成員,每個(gè)節(jié)點(diǎn)運(yùn)行一個(gè)L模塊
  • R(Routing,路由模塊):把發(fā)過(guò)來(lái)的SCSI命令翻譯成XIO內(nèi)部的命令,負(fù)責(zé)來(lái)自兩個(gè)FC和兩個(gè)iSCSI接口的命令,把所有讀寫數(shù)據(jù)拆成4KB大小,計(jì)算每個(gè)4KB數(shù)據(jù)的Hash值,用的是SHA-1算法,每個(gè)節(jié)點(diǎn)運(yùn)行一個(gè)R模塊
  • C(Control,控制模塊):包含了一個(gè)映射表:A2H(數(shù)據(jù)塊邏輯地址——Hash值),具備鏡像、去重、自動(dòng)擴(kuò)容等高級(jí)數(shù)據(jù)服務(wù)
  • D(Data,數(shù)據(jù)模塊):包含了另一個(gè)映射表:H2P(Hash值——SSD物理存放地址)??梢?jiàn),數(shù)據(jù)的存放地址跟邏輯地址無(wú)關(guān),只跟數(shù)據(jù)有關(guān),因?yàn)閔ash值是通過(guò)數(shù)據(jù)算出來(lái)的,負(fù)責(zé)對(duì)SSD的讀寫,負(fù)責(zé)RAID數(shù)據(jù)保護(hù)技術(shù)——XDP(XtremIO Data Protection)
2 讀流程

讀流程如下:

  • 1)主機(jī)把讀命令通過(guò)FC或iSCSI接口發(fā)送給R模塊,命令包含數(shù)據(jù)塊邏輯地址和大小
  • 2)R模塊把命令拆成4KB大小的數(shù)據(jù)塊,轉(zhuǎn)發(fā)給C模塊
  • 3)C模塊查A2H表,得到數(shù)據(jù)塊的Hash值,轉(zhuǎn)發(fā)給D模塊
  • 4)D模塊查H2P表,得到數(shù)據(jù)塊在SSD中的物理地址,讀出來(lái)
3 不重復(fù)的寫流程

不重復(fù)的寫流程如下,見(jiàn)圖2-29:

  • 1)主機(jī)把寫命令通過(guò)FC或iSCSI接口發(fā)送給R模塊,命令包含數(shù)據(jù)塊邏輯地址和大小
  • 2)R模塊把命令拆成4KB大小的數(shù)據(jù)塊,計(jì)算出Hash值,轉(zhuǎn)發(fā)給C模塊
  • 3)C模塊發(fā)現(xiàn)Hash值沒(méi)有重復(fù),所以插入自己的表,轉(zhuǎn)發(fā)給D模塊
  • 4)D模塊給數(shù)據(jù)塊分配SSD中的物理地址,寫下去

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-29 不重復(fù)的寫流程 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

4 可去重的寫流程

可去重的寫流程如下,見(jiàn)圖2-30:

  • 1)主機(jī)把寫命令通過(guò)FC或iSCSI接口發(fā)送給R模塊,命令包含數(shù)據(jù)塊邏輯地址和大小
  • 2)R模塊把命令拆成4KB大小的數(shù)據(jù)塊,計(jì)算出Hash值,轉(zhuǎn)發(fā)給C模塊
  • 3)C模塊查A2H表(估計(jì)還有個(gè)H2A表,或者是個(gè)樹(shù)、Hash數(shù)組之類),發(fā)現(xiàn)有重復(fù),轉(zhuǎn)發(fā)給D模塊
  • 4)D模塊知道數(shù)據(jù)塊有重復(fù),就不寫了,只是把數(shù)據(jù)塊的引用數(shù)加1

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-30 可去重的寫流程 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

5 ESXi和VAAI

ESXi內(nèi)嵌在操作系統(tǒng)中,所以ESXi可以看成是虛擬機(jī)平臺(tái),上面運(yùn)行著很多虛擬機(jī)

VAAI(vStorage APIs for Array Integration)是虛擬化領(lǐng)域的標(biāo)準(zhǔn)語(yǔ)言之一,其實(shí)就是ESXi等發(fā)送命令的協(xié)議

6 復(fù)制流程

圖2-31所示是復(fù)制前的數(shù)據(jù)狀態(tài),復(fù)制流程見(jiàn)圖2-32,如下:

  • 1)ESXi上的虛擬主機(jī)用VAAI語(yǔ)言發(fā)了一個(gè)虛擬機(jī)(VM)復(fù)制的命令
  • 2)R模塊通過(guò)iSCSI或FC收到了命令,并選擇一個(gè)C模塊執(zhí)行復(fù)制
  • 3)C模塊解析出命令內(nèi)容,把原來(lái)VM的地址范圍0~6復(fù)制到新的地址7~D,并把結(jié)果發(fā)送給D模塊
  • 4)D模塊查詢Hash表,發(fā)現(xiàn)數(shù)據(jù)是重復(fù)的,所以沒(méi)寫數(shù)據(jù),只把引用數(shù)增加1

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-31 復(fù)制前的數(shù)據(jù)狀態(tài) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-32 復(fù)制流程 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

7 回顧R、C、D模塊

R和上層打交道,C是中間層,D和底層SSD打交道,1個(gè)X-Brick的控制服務(wù)器有2個(gè)CPU,每個(gè)CPU運(yùn)行一個(gè)XIOS軟件。如圖2-33所示,R、C模塊運(yùn)行在一個(gè)CPU上,D則運(yùn)行在另一個(gè)CPU上

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-33 X-Brick內(nèi)部互聯(lián)圖 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

因?yàn)镮ntel Sandy Bridge CPU集成了PCIe控制器(Sandy Bridge企業(yè)版CPU集成了PCIe 3.0接口,不需要通過(guò)南橋轉(zhuǎn)接)。所以,在多CPU的架構(gòu)中,讓設(shè)備直連CPU的PCIe接口,性能就會(huì)很高,而R、C、D的分布也是按照這個(gè)需求來(lái)設(shè)計(jì)的。例如SAS轉(zhuǎn)接卡插到了CPU 2的PCIe插槽上,所以D模塊就要運(yùn)行在CPU 2上,這樣性能才能達(dá)到最優(yōu)。從這里,我們又可以看出XIO的架構(gòu)上的優(yōu)點(diǎn),就是軟件完全可以按照標(biāo)準(zhǔn)化硬件來(lái)配置,通過(guò)布局達(dá)到最優(yōu)的性能。如果CPU的分布變化了,也會(huì)根據(jù)新的架構(gòu)簡(jiǎn)單調(diào)整軟件分布來(lái)提升性能

8 模塊間通信:擴(kuò)展性極佳

模塊間如何通信?其實(shí)并不要求模塊必須在同一個(gè)CPU上,就像圖2-33所示一樣,R和C并不一定要在一個(gè)CPU上才行。所有模塊之間的通信通過(guò)Infiniband實(shí)現(xiàn),數(shù)據(jù)通路使用RDMA,控制通路通過(guò)RPC實(shí)現(xiàn)。XIO的IO總共延時(shí)是600~700μs,其中Infiniband只占了7~16μs。使用Infiniband來(lái)互聯(lián)的優(yōu)點(diǎn)是為了擴(kuò)展性,X-Brick即使增加,延遲也不會(huì)增加,因?yàn)橥ㄐ怕窂經(jīng)]變化。任意兩個(gè)模塊之間還是通過(guò)Infiniband通信,如果系統(tǒng)里面有很多R、C、D模塊,當(dāng)一個(gè)4KB數(shù)據(jù)塊發(fā)到一個(gè)前端R模塊上,它會(huì)計(jì)算Hash值,Hash會(huì)隨機(jī)落在任意一個(gè)C上,沒(méi)有誰(shuí)特殊。這樣一切都是線性的,X-Brick的增減會(huì)線性地導(dǎo)致性能增減

2.7 帶計(jì)算功能的固態(tài)硬盤

支撐巨大數(shù)據(jù)網(wǎng)絡(luò)的根基是IT基礎(chǔ)設(shè)施,主要包括網(wǎng)絡(luò)、計(jì)算和存儲(chǔ)三大部分。如圖2-34所示,IT基礎(chǔ)架構(gòu)的功能就跟加工貿(mào)易差不多,網(wǎng)絡(luò)是數(shù)據(jù)的搬運(yùn)工,計(jì)算是數(shù)據(jù)的加工商,存儲(chǔ)就是數(shù)據(jù)的窩。自從有了固態(tài)硬盤之后,存儲(chǔ)就不是事兒了,最新的PCIe 3.0x8SSD,讀寫帶寬能達(dá)到4GB/s以上!一方面存儲(chǔ)進(jìn)步快,而另一方面CPU又受摩爾定律失效限制,工藝進(jìn)展緩慢,所以,計(jì)算成了瓶頸,尤其是在圖像和視頻處理、深度學(xué)習(xí)等方面。海量數(shù)據(jù)能夠從PCIe SSD高速讀寫,但就是CPU處理不過(guò)來(lái)

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片
圖2-34 IT基礎(chǔ)架構(gòu) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

帶FPGA的SSD——CFS(Computing Flash System,計(jì)算閃存系統(tǒng))。它采用PCIe 3.0x8高速接口,性能可達(dá)5GB/s。SSD提供高速數(shù)據(jù)存儲(chǔ),F(xiàn)PGA能提供計(jì)算加速,這樣數(shù)據(jù)從SSD出來(lái)就由FPGA順帶算好,釋放了CPU。一切回歸原位,CPU做控制,F(xiàn)PGA做計(jì)算,SSD做存儲(chǔ)

它的優(yōu)勢(shì)主要體現(xiàn)在海量數(shù)據(jù)高速存儲(chǔ)和人工智能計(jì)算方面。想一想就會(huì)有很多場(chǎng)景,比如無(wú)人駕駛汽車,目前一般的無(wú)人駕駛汽車配備了毫米波雷達(dá)、激光雷達(dá)、高速攝像頭等各類傳感器。每秒會(huì)產(chǎn)生1GB數(shù)據(jù),要分析這么多數(shù)據(jù)需要強(qiáng)大的計(jì)算能力。很多無(wú)人駕駛汽車還在使用GPU進(jìn)行計(jì)算。目前市場(chǎng)上在賣的一個(gè)CPU+GPU計(jì)算盒,功耗能達(dá)到5000W,對(duì)于汽車來(lái)說(shuō),這個(gè)小火罐的散熱會(huì)帶來(lái)很大的安全風(fēng)險(xiǎn),同時(shí)也很耗電。但是,如果換用了FPGA方案,功耗就可以降下來(lái),根據(jù)無(wú)人駕駛的應(yīng)用場(chǎng)景對(duì)算法進(jìn)行優(yōu)化之后,計(jì)算性能也能滿足需求。例如,奧迪公司的無(wú)人駕駛汽車就采用了FPGA計(jì)算平臺(tái)。這些傳感器產(chǎn)生的數(shù)據(jù)目前都是丟掉,非??上В磥?lái)商用之后,不管是政府還是廠商都有存儲(chǔ)寶貴的行駛數(shù)據(jù)并備份到云端的需求。這些數(shù)據(jù)對(duì)于完善無(wú)人駕駛、分析車禍現(xiàn)場(chǎng)都非常有用。要保存這些數(shù)據(jù),只有PCIe SSD才能達(dá)到1GB/s以上的寫速度。所以,F(xiàn)PGA SSD一方面能夠快速存儲(chǔ)行駛數(shù)據(jù),一方面又可以提供FPGA進(jìn)行數(shù)據(jù)分析,完美滿足無(wú)人駕駛的計(jì)算與存儲(chǔ)需求

自從人工智能開(kāi)始新一輪的熱潮之后,很多公司都開(kāi)始用FPGA做人工智能計(jì)算,用了CFS,就可以直接用FPGA里的人工智能硬件算法對(duì)SSD內(nèi)部的海量數(shù)據(jù)進(jìn)行高速分析,最后把分析結(jié)果發(fā)送給主機(jī)

致謝《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》

《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二),一起學(xué)硬件設(shè)計(jì),筆記,嵌入式存儲(chǔ)器,芯片設(shè)計(jì),半導(dǎo)體,學(xué)習(xí)分享,嵌入式硬件,flash,存儲(chǔ)芯片

希望本文對(duì)大家有幫助,上文若有不妥之處,歡迎指正

分享決定高度,學(xué)習(xí)拉開(kāi)差距文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-527159.html

到了這里,關(guān)于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》----學(xué)習(xí)記錄(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [SSD核心技術(shù):FTL 5] 固態(tài)硬盤DRAM緩存技術(shù)詳解

    [SSD核心技術(shù):FTL 5] 固態(tài)硬盤DRAM緩存技術(shù)詳解

    聲明 主頁(yè) : 元存儲(chǔ)的博客_CSDN博客 依公開(kāi)知識(shí)及經(jīng)驗(yàn)整理,如有誤請(qǐng)留言。 個(gè)人辛苦整理,付費(fèi)內(nèi)容,禁止轉(zhuǎn)載。 內(nèi)容摘要 固態(tài)硬盤(Solid State Drives),簡(jiǎn)稱SSD。它是一種電腦存儲(chǔ)設(shè)備,由

    2024年02月09日
    瀏覽(27)
  • 深入淺出 Spring:核心概念和基本用法詳解

    深入淺出 Spring:核心概念和基本用法詳解

    個(gè)人主頁(yè):17_Kevin-CSDN博客 收錄專欄;《Java》 在 Java 企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中,Spring 框架已經(jīng)成為了事實(shí)上的標(biāo)準(zhǔn)。它提供了一種輕量級(jí)的解決方案,使得開(kāi)發(fā)者能夠更輕松地構(gòu)建靈活、可擴(kuò)展的應(yīng)用程序。在本文中,我們將探討 Spring 框架的一些核心概念和基本用法,以此更好地

    2024年03月20日
    瀏覽(22)
  • 深入淺出解析LoRA完整核心基礎(chǔ)知識(shí) | 【算法兵器譜】

    深入淺出解析LoRA完整核心基礎(chǔ)知識(shí) | 【算法兵器譜】

    Rocky Ding 公眾號(hào):WeThinkIn 【算法兵器譜】欄目專注分享AI行業(yè)中的前沿/經(jīng)典/必備的模型論文,并對(duì)具備劃時(shí)代意義的模型論文進(jìn)行全方位系統(tǒng)的解析,比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也歡迎大家提出寶貴的優(yōu)化建議,一起交流學(xué)習(xí)?? 大家好,我是Rocky。

    2024年02月11日
    瀏覽(27)
  • 深入淺出解析Stable Diffusion完整核心基礎(chǔ)知識(shí) | 【算法兵器譜】

    深入淺出解析Stable Diffusion完整核心基礎(chǔ)知識(shí) | 【算法兵器譜】

    Rocky Ding 公眾號(hào):WeThinkIn 最新更新: Rocky也一直在更新Stable Diffusion系列的文章內(nèi)容,包括最新發(fā)布的Stable Diffusion XL。Rocky都進(jìn)行了全方位的深入淺出的解析, 碼字真心不易,希望大家能給Rocky正在撰寫更新的下面兩篇文章多多點(diǎn)贊,萬(wàn)分感謝: 深入淺出完整解析Stable Diffus

    2024年02月10日
    瀏覽(25)
  • 論文解讀:Bert原理深入淺出

    摘取于https://www.jianshu.com/p/810ca25c4502 任務(wù)1:Masked Language Model Maked LM 是為了解決單向信息問(wèn)題,現(xiàn)有的語(yǔ)言模型的問(wèn)題在于,沒(méi)有同時(shí)利用雙向信息,如 ELMO 號(hào)稱是雙向LM,但實(shí)際上是兩個(gè)單向 RNN 構(gòu)成的語(yǔ)言模型的拼接,由于時(shí)間序列的關(guān)系,RNN模型預(yù)測(cè)當(dāng)前詞只依賴前面出

    2024年02月11日
    瀏覽(21)
  • 動(dòng)力節(jié)點(diǎn)|深入淺出Vue框架學(xué)習(xí)教程,帶你快速掌握前端開(kāi)發(fā)核心技能

    動(dòng)力節(jié)點(diǎn)|深入淺出Vue框架學(xué)習(xí)教程,帶你快速掌握前端開(kāi)發(fā)核心技能

    Vue是一款流行的JavaScript前端框架,最初由華人開(kāi)發(fā)者尤雨溪?jiǎng)?chuàng)建,并在GitHub上開(kāi)源發(fā)布,它采用MVVM模型的設(shè)計(jì)思維,專注于UI項(xiàng)目的開(kāi)發(fā),能夠方便地組織和管理頁(yè)面上的各個(gè)組件,大大提高了前端開(kāi)發(fā)的效率。 同時(shí),Vue也具有高度的靈活性和可定制性,使得其在快速開(kāi)發(fā)

    2024年02月13日
    瀏覽(37)
  • 深入淺出 -- 系統(tǒng)架構(gòu)之分布式多形態(tài)的存儲(chǔ)型集群

    深入淺出 -- 系統(tǒng)架構(gòu)之分布式多形態(tài)的存儲(chǔ)型集群

    在上階段,我們簡(jiǎn)單聊了下集群的基本知識(shí),以及快速過(guò)了一下邏輯處理型集群的內(nèi)容,下面重點(diǎn)來(lái)看看存儲(chǔ)型集群,畢竟這塊才是重頭戲,集群的形態(tài)在其中有著多種多樣的變化。 邏輯處理型的應(yīng)用,部署集群架構(gòu)是為了解決單點(diǎn)故障、獲得更高的吞吐量,集群內(nèi)各節(jié)點(diǎn)之

    2024年04月10日
    瀏覽(103)
  • 深入淺出:Zookeeper的原理與實(shí)踐

    在當(dāng)今的信息時(shí)代,分布式系統(tǒng)的應(yīng)用越來(lái)越廣泛,而其中一個(gè)至關(guān)重要的組成部分就是Zookeeper。作為一個(gè)分布式協(xié)調(diào)服務(wù),Zookeeper在保障分布式系統(tǒng)的一致性、可靠性和可用性方面發(fā)揮著不可替代的作用。本博客旨在深入淺出地探討Zookeeper的原理與實(shí)踐,幫助讀者全面理解

    2024年04月11日
    瀏覽(27)
  • 在瘋狂三月之后,深入淺出分析AIGC的核心價(jià)值 (上篇)|【AI行研&商業(yè)價(jià)值分析】

    在瘋狂三月之后,深入淺出分析AIGC的核心價(jià)值 (上篇)|【AI行研&商業(yè)價(jià)值分析】

    Rocky Ding WeThinkIn 【AI行研商業(yè)價(jià)值分析】欄目專注于分享AI行業(yè)中最新熱點(diǎn)/風(fēng)口的思考與判斷。也歡迎大家提出寶貴的優(yōu)化建議,一起交流學(xué)習(xí)?? 大家好,我是Rocky。 2023年3月21日,微軟創(chuàng)始人比爾·蓋茨在其博客文章《The Age of AI has begun》中表示, 自從1980年首次看到圖形用

    2024年02月09日
    瀏覽(88)
  • 在瘋狂三月之后,深入淺出分析AIGC的核心價(jià)值 (下篇)|【AI行研&商業(yè)價(jià)值分析】

    在瘋狂三月之后,深入淺出分析AIGC的核心價(jià)值 (下篇)|【AI行研&商業(yè)價(jià)值分析】

    Rocky Ding 公眾號(hào):WeThinkIn 【AI行研商業(yè)價(jià)值分析】欄目專注于分享AI行業(yè)中最新熱點(diǎn)/風(fēng)口的思考與判斷。也歡迎大家提出寶貴的優(yōu)化建議,一起交流學(xué)習(xí)?? 大家好,我是Rocky。 本文是《在瘋狂三月之后,深入淺出分析AIGC的核心價(jià)值》系列的第二篇文章,在第一篇文章中,我

    2024年02月16日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包