精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:存儲技術(shù)專區(qū) → 正文

淺談閃存控制器架構(gòu)

責(zé)任編輯:editor004 作者:作者張冬 |來源:企業(yè)網(wǎng)D1Net  2015-08-27 12:26:26 本文摘自:中國信息產(chǎn)業(yè)網(wǎng)

分析閃存控制器的架構(gòu),首先得了解SSD。一般來說SSD的存儲介質(zhì)分為兩種,一種是采用閃存(Flash芯片)作為存儲介質(zhì),另外一種是采用DRAM作為存儲介質(zhì)。我們通常所說的SSD就是基于閃存的固態(tài)硬盤,其采用FLASH芯片作為存儲介質(zhì)。SSD的基本組成結(jié)構(gòu)包括Flash顆粒和Flash控制器,F(xiàn)lash控制器中有芯片,負(fù)責(zé)Flash的讀寫、磨損均衡、壽命監(jiān)控等等。

Flash控制器的主要的工作任務(wù)包括三大方面:一是后端訪問Flash,管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO; 二是前端提供訪問接口和協(xié)議:實現(xiàn)對應(yīng)的SAS/SATA target協(xié)議端或者NVMe協(xié)議端, 獲取Host發(fā)出的IO指令并解碼和生成內(nèi)部私有數(shù)據(jù)結(jié)果等待執(zhí)行;三是FTL層核心處理。下面我們具體來介紹一下Flash 控制器是怎樣做這幾件事的。

第一,后端訪問Flash的操作內(nèi)容

后端訪問Flash首先必須提到的是閃存通道控制器。這個控制器里面有多個通道,每個通道掛多片F(xiàn)lash。它與后端Flash顆粒之間存在托管協(xié)議。數(shù)據(jù)寫入Flash的時候,除了主機發(fā)送的數(shù)據(jù)或者原始數(shù)據(jù),其他數(shù)據(jù)都必須進行ECC校驗。ECC是通用的稱謂,里面有多種算法,其中包括糾錯率較低的BCH算法,LAPC低密度校驗碼等。數(shù)據(jù)讀出的時候,通過擾碼,加擾,解擾,看ECC是否出現(xiàn)錯誤,若有錯則在糾錯后將芯片發(fā)到內(nèi)部,供后續(xù)的程序處理。因此,后端訪問Flash的主要任務(wù)即是管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO。

淺談閃存控制器架構(gòu)

  第二,前端提供訪問接口和協(xié)議

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

淺談閃存控制器架構(gòu)

  第三,F(xiàn)TL層——核心層處理

核心層FTL層,是一款Flash控制器的關(guān)鍵競爭力所在。它既可以是純軟件算法,包括元數(shù)據(jù)管理,數(shù)據(jù)布局影射、磨損均衡、垃圾回收、緩存策略、片間RAID和掉電元數(shù)據(jù)一致性保障等內(nèi)容。同時,它也可以在進行重復(fù)性工作時輔以硬加速引擎。這是非純軟件的,輔有硬加速的成分在里面。硬加速涉及到所使用的芯片。有的芯片支持硬加速,比如說鏈表的維護。這是因為做垃圾回收時需要要用到鏈表,拿傳統(tǒng)的軟件算法,插入一個或者追加一些項目,所耗費的CPU周期較大,此時用硬加速并行,再加上一些硬邏輯的加速,則可節(jié)省開銷。

Flash控制器的兩種策略和方式:

現(xiàn)有的Flash控制器可采用兩種方式:一種是少量的強核心加少量硬件加速。所謂強核心就是一個核心的性能高、頻率高,分支預(yù)判、并行度、單元數(shù)量、執(zhí)行管道,各種參數(shù)都高于一般水平。核心強了以后,硬加速就不需要這么多了,可以用少量的硬加速。

另一種方式則是大量弱核心+大量硬加速。比如說16個核心,每個核心比較弱,但是能夠增加執(zhí)行的并行度,有16個并發(fā)核心執(zhí)行,跑16套處理程序,這是兩種架構(gòu)。這是一種多核心協(xié)作架構(gòu)模式,其協(xié)作方式可以是同構(gòu)協(xié)作也可以是異構(gòu)協(xié)作

1. 同構(gòu)協(xié)作就是每個核心做的事都是完全一樣的,處理的步驟完全一樣。如果你的控制器陣列里面有16個IO,有16個核心,每個核心都能處理一個IO,這是同構(gòu)協(xié)作。

2. 異構(gòu)協(xié)作則是多個核心做不同的事情。處理同一個IO,第一個IO第一步,第一個核心處理,這個核心處理完以后,把這個IO扔到下一個核心,再處理下一步,等這個核心空出來以后,處理下一個IO的第一步,這就是所謂的流水線了,所謂的異構(gòu)就是如此。

淺談閃存控制器架構(gòu)

  產(chǎn)品實例:PMC的FlashtecTM NVMe 控制器

這是PMC的控制器,首先它有一個片上網(wǎng)絡(luò),網(wǎng)絡(luò)承載16個CPU核心,每個核心里面有一個類似網(wǎng)卡的控制器,網(wǎng)卡連到網(wǎng)絡(luò)上,多個CPU之間連起來。簡單說就是4口路由器或者交換機連起來的網(wǎng)絡(luò),多個CPU之間連起來,此外還有硬加速模塊。另外還包括以下幾部分:

·RAM控制器,因為芯片上需要有一定量的RAM放臨時數(shù)據(jù),寫放大,讀出來寫進去,都要走RAM;

·PCIe控制器,這個是跟前端PCIe對等的控制器,IO指令從這兒接收過來;

·后端Flash控制器,通過一定數(shù)量的通道連Flash顆粒;

·加速器(包括緩沖加速器),每做一個操作,都需要有相應(yīng)的內(nèi)存,把數(shù)據(jù)拷到內(nèi)存里面,內(nèi)存的維護很費時費力。比如在X86上運行的Linux,其管理內(nèi)存時需要耗費很多的計算量。對于閃存,精打細(xì)算,必須把性能做到極致,因此需用到硬加速。

·鏈表加速器,用鏈表來記錄一些信息,哪塊空著,哪塊被應(yīng)用,這塊用軟件維護很費力,所以需要在這里作加速;

·XOR加速器,XOR要用硬加速

·最后,來看一下軟件的并行度。16個核心,PMC提供的參考的固件,當(dāng)然SSD廠商會開發(fā)自己的固件,把自己優(yōu)化的東西放進去,優(yōu)化的算法放進去。基本上包含了這么一些程序,每個IO讀的地址可能有重疊,重疊就需要有一個鎖定協(xié)調(diào),有管命令解析的,有管啟動的,有管日志的,有管磨損均衡的,有管查表的,有管寫數(shù)據(jù)的,管前端的PCIe Manager,還有負(fù)責(zé)boot loader的核心,初始化的配置,需要由它處理,data manager,這是主程序,分析IO指令需要干什么,生成一堆的后續(xù)步驟下發(fā)下去。其實每一塊都可以跑在一個核心上,同一個角色可以復(fù)制多份,充分并行。16個核心,達到16份程序并行的運行,16個流水線的Stage,這樣就可以屏蔽處理過程中的時延。

關(guān)鍵字:控制器閃存PCIE

本文摘自:中國信息產(chǎn)業(yè)網(wǎng)

x 淺談閃存控制器架構(gòu) 掃一掃
分享本文到朋友圈
當(dāng)前位置:存儲技術(shù)專區(qū) → 正文

淺談閃存控制器架構(gòu)

責(zé)任編輯:editor004 作者:作者張冬 |來源:企業(yè)網(wǎng)D1Net  2015-08-27 12:26:26 本文摘自:中國信息產(chǎn)業(yè)網(wǎng)

分析閃存控制器的架構(gòu),首先得了解SSD。一般來說SSD的存儲介質(zhì)分為兩種,一種是采用閃存(Flash芯片)作為存儲介質(zhì),另外一種是采用DRAM作為存儲介質(zhì)。我們通常所說的SSD就是基于閃存的固態(tài)硬盤,其采用FLASH芯片作為存儲介質(zhì)。SSD的基本組成結(jié)構(gòu)包括Flash顆粒和Flash控制器,F(xiàn)lash控制器中有芯片,負(fù)責(zé)Flash的讀寫、磨損均衡、壽命監(jiān)控等等。

Flash控制器的主要的工作任務(wù)包括三大方面:一是后端訪問Flash,管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO; 二是前端提供訪問接口和協(xié)議:實現(xiàn)對應(yīng)的SAS/SATA target協(xié)議端或者NVMe協(xié)議端, 獲取Host發(fā)出的IO指令并解碼和生成內(nèi)部私有數(shù)據(jù)結(jié)果等待執(zhí)行;三是FTL層核心處理。下面我們具體來介紹一下Flash 控制器是怎樣做這幾件事的。

第一,后端訪問Flash的操作內(nèi)容

后端訪問Flash首先必須提到的是閃存通道控制器。這個控制器里面有多個通道,每個通道掛多片F(xiàn)lash。它與后端Flash顆粒之間存在托管協(xié)議。數(shù)據(jù)寫入Flash的時候,除了主機發(fā)送的數(shù)據(jù)或者原始數(shù)據(jù),其他數(shù)據(jù)都必須進行ECC校驗。ECC是通用的稱謂,里面有多種算法,其中包括糾錯率較低的BCH算法,LAPC低密度校驗碼等。數(shù)據(jù)讀出的時候,通過擾碼,加擾,解擾,看ECC是否出現(xiàn)錯誤,若有錯則在糾錯后將芯片發(fā)到內(nèi)部,供后續(xù)的程序處理。因此,后端訪問Flash的主要任務(wù)即是管理后端Flash顆粒,包括各種參數(shù)控制和數(shù)據(jù)IO。

淺談閃存控制器架構(gòu)

  第二,前端提供訪問接口和協(xié)議

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

淺談閃存控制器架構(gòu)

  第三,F(xiàn)TL層——核心層處理

核心層FTL層,是一款Flash控制器的關(guān)鍵競爭力所在。它既可以是純軟件算法,包括元數(shù)據(jù)管理,數(shù)據(jù)布局影射、磨損均衡、垃圾回收、緩存策略、片間RAID和掉電元數(shù)據(jù)一致性保障等內(nèi)容。同時,它也可以在進行重復(fù)性工作時輔以硬加速引擎。這是非純軟件的,輔有硬加速的成分在里面。硬加速涉及到所使用的芯片。有的芯片支持硬加速,比如說鏈表的維護。這是因為做垃圾回收時需要要用到鏈表,拿傳統(tǒng)的軟件算法,插入一個或者追加一些項目,所耗費的CPU周期較大,此時用硬加速并行,再加上一些硬邏輯的加速,則可節(jié)省開銷。

Flash控制器的兩種策略和方式:

現(xiàn)有的Flash控制器可采用兩種方式:一種是少量的強核心加少量硬件加速。所謂強核心就是一個核心的性能高、頻率高,分支預(yù)判、并行度、單元數(shù)量、執(zhí)行管道,各種參數(shù)都高于一般水平。核心強了以后,硬加速就不需要這么多了,可以用少量的硬加速。

另一種方式則是大量弱核心+大量硬加速。比如說16個核心,每個核心比較弱,但是能夠增加執(zhí)行的并行度,有16個并發(fā)核心執(zhí)行,跑16套處理程序,這是兩種架構(gòu)。這是一種多核心協(xié)作架構(gòu)模式,其協(xié)作方式可以是同構(gòu)協(xié)作也可以是異構(gòu)協(xié)作

1. 同構(gòu)協(xié)作就是每個核心做的事都是完全一樣的,處理的步驟完全一樣。如果你的控制器陣列里面有16個IO,有16個核心,每個核心都能處理一個IO,這是同構(gòu)協(xié)作。

2. 異構(gòu)協(xié)作則是多個核心做不同的事情。處理同一個IO,第一個IO第一步,第一個核心處理,這個核心處理完以后,把這個IO扔到下一個核心,再處理下一步,等這個核心空出來以后,處理下一個IO的第一步,這就是所謂的流水線了,所謂的異構(gòu)就是如此。

淺談閃存控制器架構(gòu)

  產(chǎn)品實例:PMC的FlashtecTM NVMe 控制器

這是PMC的控制器,首先它有一個片上網(wǎng)絡(luò),網(wǎng)絡(luò)承載16個CPU核心,每個核心里面有一個類似網(wǎng)卡的控制器,網(wǎng)卡連到網(wǎng)絡(luò)上,多個CPU之間連起來。簡單說就是4口路由器或者交換機連起來的網(wǎng)絡(luò),多個CPU之間連起來,此外還有硬加速模塊。另外還包括以下幾部分:

·RAM控制器,因為芯片上需要有一定量的RAM放臨時數(shù)據(jù),寫放大,讀出來寫進去,都要走RAM;

·PCIe控制器,這個是跟前端PCIe對等的控制器,IO指令從這兒接收過來;

·后端Flash控制器,通過一定數(shù)量的通道連Flash顆粒;

·加速器(包括緩沖加速器),每做一個操作,都需要有相應(yīng)的內(nèi)存,把數(shù)據(jù)拷到內(nèi)存里面,內(nèi)存的維護很費時費力。比如在X86上運行的Linux,其管理內(nèi)存時需要耗費很多的計算量。對于閃存,精打細(xì)算,必須把性能做到極致,因此需用到硬加速。

·鏈表加速器,用鏈表來記錄一些信息,哪塊空著,哪塊被應(yīng)用,這塊用軟件維護很費力,所以需要在這里作加速;

·XOR加速器,XOR要用硬加速

·最后,來看一下軟件的并行度。16個核心,PMC提供的參考的固件,當(dāng)然SSD廠商會開發(fā)自己的固件,把自己優(yōu)化的東西放進去,優(yōu)化的算法放進去。基本上包含了這么一些程序,每個IO讀的地址可能有重疊,重疊就需要有一個鎖定協(xié)調(diào),有管命令解析的,有管啟動的,有管日志的,有管磨損均衡的,有管查表的,有管寫數(shù)據(jù)的,管前端的PCIe Manager,還有負(fù)責(zé)boot loader的核心,初始化的配置,需要由它處理,data manager,這是主程序,分析IO指令需要干什么,生成一堆的后續(xù)步驟下發(fā)下去。其實每一塊都可以跑在一個核心上,同一個角色可以復(fù)制多份,充分并行。16個核心,達到16份程序并行的運行,16個流水線的Stage,這樣就可以屏蔽處理過程中的時延。

關(guān)鍵字:控制器閃存PCIE

本文摘自:中國信息產(chǎn)業(yè)網(wǎng)

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 东莞市| 清涧县| 穆棱市| 博野县| 靖边县| 常德市| 楚雄市| 丰台区| 绥芬河市| 黎平县| 云浮市| 昆山市| 东乡县| 榆树市| 霍林郭勒市| 溆浦县| 平阳县| 左权县| 确山县| 班玛县| 苏尼特右旗| 滁州市| 黄石市| 乳源| 喀喇沁旗| 朝阳市| 沽源县| 蚌埠市| 九江县| 嫩江县| 赤峰市| 亚东县| 那曲县| 葵青区| 古丈县| 山丹县| 巨鹿县| 赣州市| 曲阜市| 广宁县| 台江县|