當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 半導(dǎo)體產(chǎn)品 > 微控制器MCU
發(fā)布日期:2022-04-22 點(diǎn)擊率:97
分析閃存控制器的架構(gòu),首先得了解SSD。一般來(lái)說(shuō)SSD的存儲(chǔ)介質(zhì)分為兩種,一種是采用閃存(Flash芯片)作為存儲(chǔ)介質(zhì),另外一種是采用DRAM作為存儲(chǔ)介質(zhì)。我們通常所說(shuō)的SSD就是基于閃存的固態(tài)硬盤(pán),其采用FLASH芯片作為存儲(chǔ)介質(zhì)。SSD的基本組成結(jié)構(gòu)包括Flash顆粒和Flash控制器,F(xiàn)lash控制器中有芯片,負(fù)責(zé)Flash的讀寫(xiě)、磨損均衡、壽命監(jiān)控等等。
Flash控制器的主要的工作任務(wù)包括三大方面:一是后端訪問(wèn)Flash,管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO; 二是前端提供訪問(wèn)接口和協(xié)議:實(shí)現(xiàn)對(duì)應(yīng)的SAS/SATA target協(xié)議端或者NVMe協(xié)議端, 獲取Host發(fā)出的IO指令并解碼和生成內(nèi)部私有數(shù)據(jù)結(jié)果等待執(zhí)行;三是FTL層核心處理。下面我們具體來(lái)介紹一下Flash 控制器是怎樣做這幾件事的。
第一,后端訪問(wèn)Flash的操作內(nèi)容
后端訪問(wèn)Flash首先必須提到的是閃存通道控制器。這個(gè)控制器里面有多個(gè)通道,每個(gè)通道掛多片F(xiàn)lash。它與后端Flash顆粒之間存在托管協(xié)議。數(shù)據(jù)寫(xiě)入Flash的時(shí)候,除了主機(jī)發(fā)送的數(shù)據(jù)或者原始數(shù)據(jù),其他數(shù)據(jù)都必須進(jìn)行ECC校驗(yàn)。ECC是通用的稱謂,里面有多種算法,其中包括糾錯(cuò)率較低的BCH算法,LAPC低密度校驗(yàn)碼等。數(shù)據(jù)讀出的時(shí)候,通過(guò)擾碼,加擾,解擾,看ECC是否出現(xiàn)錯(cuò)誤,若有錯(cuò)則在糾錯(cuò)后將芯片發(fā)到內(nèi)部,供后續(xù)的程序處理。因此,后端訪問(wèn)Flash的主要任務(wù)即是管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO。

第二,前端提供訪問(wèn)接口和協(xié)議
前端提供訪問(wèn)接口和協(xié)議,跟主機(jī)驅(qū)動(dòng)通信,利用標(biāo)準(zhǔn)格式輸配到系統(tǒng)里面,接收主機(jī)端發(fā)過(guò)來(lái)的指令,即完成、實(shí)現(xiàn)對(duì)應(yīng)的SAS/SATA target協(xié)議端或者NVMe協(xié)議端,獲取Host發(fā)出的IO指令并解碼和生成內(nèi)部私有數(shù)據(jù)結(jié)構(gòu)等待執(zhí)行。如果遵從NVMe標(biāo)準(zhǔn),包括提交命令的方法、完成命令的處理方法等都定好了,包括各種隊(duì)列、隊(duì)列深度,Queue Pair的總體數(shù)量最大可以達(dá)到64K個(gè),隊(duì)列深度也可達(dá)64K個(gè),所以,系統(tǒng)里同時(shí)可能存在64K×64K IO排著,但是目前的系統(tǒng)是用不到這么多Queue的,因?yàn)榈紫碌慕橘|(zhì)速度還不足以支撐。

第三,F(xiàn)TL層——核心層處理
核心層FTL層,是一款Flash控制器的關(guān)鍵競(jìng)爭(zhēng)力所在。它既可以是純軟件算法,包括元數(shù)據(jù)管理,數(shù)據(jù)布局影射、磨損均衡、垃圾回收、緩存策略、片間RAID和掉電元數(shù)據(jù)一致性保障等內(nèi)容。同時(shí),它也可以在進(jìn)行重復(fù)性工作時(shí)輔以硬加速引擎。這是非純軟件的,輔有硬加速的成分在里面。硬加速涉及到所使用的芯片。有的芯片支持硬加速,比如說(shuō)鏈表的維護(hù)。這是因?yàn)樽隼厥諘r(shí)需要要用到鏈表,拿傳統(tǒng)的軟件算法,插入一個(gè)或者追加一些項(xiàng)目,所耗費(fèi)的CPU周期較大,此時(shí)用硬加速并行,再加上一些硬邏輯的加速,則可節(jié)省開(kāi)銷。
Flash控制器的兩種策略和方式:
現(xiàn)有的Flash控制器可采用兩種方式:一種是少量的強(qiáng)核心加少量硬件加速。所謂強(qiáng)核心就是一個(gè)核心的性能高、頻率高,分支預(yù)判、并行度、單元數(shù)量、執(zhí)行管道,各種參數(shù)都高于一般水平。核心強(qiáng)了以后,硬加速就不需要這么多了,可以用少量的硬加速。
另一種方式則是大量弱核心+大量硬加速。比如說(shuō)16個(gè)核心,每個(gè)核心比較弱,但是能夠增加執(zhí)行的并行度,有16個(gè)并發(fā)核心執(zhí)行,跑16套處理程序,這是兩種架構(gòu)。這是一種多核心協(xié)作架構(gòu)模式,其協(xié)作方式可以是同構(gòu)協(xié)作也可以是異構(gòu)協(xié)作
1.同構(gòu)協(xié)作就是每個(gè)核心做的事都是完全一樣的,處理的步驟完全一樣。如果你的控制器陣列里面有16個(gè)IO,有16個(gè)核心,每個(gè)核心都能處理一個(gè)IO,這是同構(gòu)協(xié)作。
2.異構(gòu)協(xié)作則是多個(gè)核心做不同的事情。處理同一個(gè)IO,第一個(gè)IO第一步,第一個(gè)核心處理,這個(gè)核心處理完以后,把這個(gè)IO扔到下一個(gè)核心,再處理下一步,等這個(gè)核心空出來(lái)以后,處理下一個(gè)IO的第一步,這就是所謂的流水線了,所謂的異構(gòu)就是如此。

下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV