第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ù)
圖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所示是三者的接口速率
表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所示
圖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所示
圖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所示
圖2-4 PCIe接口式插卡(AIC) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》
圖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
圖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
圖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
圖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)框圖
圖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所示
表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所示
圖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ǔ)要求
圖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是核心
圖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)存
圖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)適用于集群,所以線纜有很多是冗余的
圖2-19 X-Brick背面連線圖 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》
陣列正面照,LCD顯示的是UPS電源狀態(tài)。圖2-20所示是一個(gè)個(gè)豎著的就是SSD陣列
圖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
表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
圖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)用就不受此限制
圖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中的物理地址,寫下去
圖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
圖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
圖2-31 復(fù)制前的數(shù)據(jù)狀態(tài) 圖片來(lái)源于《深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)》
圖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上
圖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)
圖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)》
希望本文對(duì)大家有幫助,上文若有不妥之處,歡迎指正文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-527159.html
分享決定高度,學(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)!