国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

支持高速DMA 傳輸技術(shù)的SSD 控制器設(shè)計與實現(xiàn)

2023-12-31 18:10:16沈慶楊楚瑋侯慶慶
電子與封裝 2023年12期
關(guān)鍵詞:傳輸數(shù)據(jù)速率控制器

沈慶,楊楚瑋,侯慶慶

(中國電子科技集團公司第五十八研究所,江蘇無錫 214035)

1 引言

在信息電子通信系統(tǒng)所涉及的大多數(shù)場景下,數(shù)據(jù)存儲及傳輸都不可或缺。在存儲硬盤領(lǐng)域,固態(tài)硬盤(SSD)作為目前的主流存儲設(shè)備滿足了多種場景下的使用需求,同時還具有便攜、功耗低及易擴展等特點[1-3]。串行ATA(SATA)協(xié)議憑借接口適應(yīng)性強、速度快、抗干擾等特點得以廣泛應(yīng)用。在存儲架構(gòu)方面,文獻[4-5]提出采用磁盤陣列的方式進行存儲,并且定制了高速存儲系統(tǒng)的接口模塊,提高了存儲速度,但采用的SATA2 協(xié)議傳輸速率有限且存儲方式不具備糾錯能力;文獻[6]提出采用SATA 芯片實現(xiàn)數(shù)據(jù)的高帶寬數(shù)據(jù)傳輸,但未采用通用處理器架構(gòu),因此不易于擴展與移植;文獻[7]提出采用多控制器來操作多片NAND Flash 的架構(gòu),其問題在于控制器之間同步性較差。在直接存儲器訪問(DMA)傳輸設(shè)計方面,文獻[8]提出采用基于SATA 的直接存儲系統(tǒng)設(shè)計,DMA 的設(shè)計主要集中在SATA 端,設(shè)備端缺少對DMA 傳輸?shù)奶幚恚捎肁RM+FPGA 的結(jié)構(gòu)和AXI 總線處理DMA 傳輸請求,功耗較高且傳輸性能不理想。本文利用多通道并行策略和Flash 陣列管理技術(shù)設(shè)計了一種SSD 控制器,在SATA 接口及控制器中采用高速DMA 傳輸策略,提高了數(shù)據(jù)傳輸速度。

2 SSD 控制器體系結(jié)構(gòu)

控制器采用的雙CPU 核結(jié)構(gòu)均為Cortex-M3 內(nèi)核(32 位)架構(gòu)。主機處理單元(HMU)模塊負(fù)責(zé)SSD與系統(tǒng)主機之間的通信及板級外設(shè)控制功能;算法管理單元(AMU)模塊負(fù)責(zé)閃存轉(zhuǎn)換層(FTL)算法管理,主要包含F(xiàn)TL 算法的實現(xiàn),并且對Flash 存儲陣列進行管理與地址轉(zhuǎn)換;數(shù)據(jù)傳輸單元(DTU)模塊負(fù)責(zé)與Flash 進行數(shù)據(jù)傳輸。HMU 與AMU 固件代碼的硬件載體為NAND Flash,SPI Flash 作為代碼備份區(qū)域。SSD 控制器整體架構(gòu)如圖1 所示。

圖1 SSD 控制器整體架構(gòu)

3 Flash 陣列管理技術(shù)

Flash 陣列管理的目的是通過優(yōu)化Flash 數(shù)據(jù)陣列結(jié)構(gòu)來提高數(shù)據(jù)并行性,從而提高SSD 的讀寫性能[9-10]。Flash 多通道并行陣列存儲結(jié)構(gòu)如圖2 所示,F(xiàn)lash 陣列采用并行總線方式,閃存陣列共用控制信號Control與片選信號CS。由CS 來拉低同一行所有Flash;剩余信號線分別控制各個所屬Flash,包括讀寫使能信號、命令/地址鎖存信號等,在圖中統(tǒng)一用Control 線表示。每次CS 有效,將選中所有Flash 進行操作,每次傳輸?shù)臄?shù)據(jù)都能被均分到Flash 陣列的每一個Flash 中,實現(xiàn)大數(shù)據(jù)量的讀寫操作。

圖2 Flash 多通道并行陣列存儲結(jié)構(gòu)

如圖1 所示,DTU 被劃分為4 個通道,分別與Flash 陣列進行數(shù)據(jù)交互。每個通道最多可容納8 片F(xiàn)lash,因此容量最多可擴展到32 片F(xiàn)lash,由于通道間相互獨立且只有一個CPU 控制,大量的數(shù)據(jù)傳輸或讀寫操作會嚴(yán)重消耗CPU 資源,影響通道間的讀寫性能。本文添加了DMA 的設(shè)計,DMA 配合控制器完成數(shù)據(jù)的讀寫,CPU 僅負(fù)責(zé)數(shù)據(jù)的地址與命令的讀寫,這大大減少了CPU 的資源占用,所以從整體上看,通道間是并行操作的。同時,所提供的Flash 陣列管理可以靈活調(diào)整存儲顆粒數(shù)量以及更改存儲顆粒類型,具有一定的易擴展性和易升級性。

4 高速DMA 傳輸設(shè)計

本文設(shè)計的高速DMA 模塊存在于SATA 接口、HMU、AMU、DTU 等模塊,用于對主機和設(shè)備端的數(shù)據(jù)請求與數(shù)據(jù)傳輸工作。DMA 的應(yīng)用不僅大幅提高了數(shù)據(jù)傳輸?shù)乃俣龋覝p少了對CPU 資源的占用,提升了交互命令的處理速度。

4.1 SATA 接口DMA 模塊

SATA 接口結(jié)構(gòu)原理如圖3 所示。Port DMA 的作用包括:處理軟件分發(fā)的命令,傳輸相應(yīng)的幀信息結(jié)構(gòu)(FIS)到傳輸層;接收從傳輸層接收到的FIS,并將FIS 發(fā)送給CPU;在傳輸層FIFO 和系統(tǒng)內(nèi)存之間傳輸數(shù)據(jù);支持收發(fā)時鐘的電源管理。SATA 接口協(xié)議中,跟DMA 傳輸緊密相關(guān)的層級包括命令層、傳輸層、鏈路層。

圖3 SATA 接口結(jié)構(gòu)原理

4.2 控制器DMA 模塊

SATA SSD 控制器中DMA 設(shè)計包括SATA DMA、HMU DMA0/1、AMU DMA、DTU DMA、DTU讀/寫DMA 共7 個DMA 加速引擎,如圖4 所示。

圖4 SATA SSD 控制器內(nèi)部DMA 分布

4.2.1 HMU DMA 模塊

HMU 單元中包含HMU DMA0/1,其中HMU DMA0 用于和SATA DMA 模塊進行交互,HMU DMA1 用于和AMU DMA 進行交互,如圖5 所示。

圖5 HMU DMA 連接關(guān)系

HMU 單元與SATA DMA 的傳輸指SATA 接口的FIFO 和HMU 單元的FIFO 之間經(jīng)過SATA DMA和HMU DMA0 的傳輸。主機讀數(shù)據(jù)操作:數(shù)據(jù)從HMU 的FIFO 先經(jīng)過HMU DMA0,然后經(jīng)過SATA DMA,最終到達SATA Rx FIFO。主機寫數(shù)據(jù)操作:數(shù)據(jù)從SATA Tx FIFO 先經(jīng)過SATA DMA,然后經(jīng)過HMU DMA0,最終到達HMU 的FIFO。其中HMU 包括兩種類型的FIFO:一種是單端口FIFO,由4 個單端口FIFO 組成,在同一時刻只能進行讀操作或?qū)懖僮?;另一種是雙端口FIFO,在同一時刻可以同時讀寫。

4.2.2 AMU DMA 模塊

AMU 單元與HMU 單元的DMA 傳輸指AMU DMA 將HMU DMA1 的數(shù)據(jù)送至AMU FIFO 陣列管理模塊,AMU 與HMU 的連接關(guān)系如圖6 所示。

圖6 AMU 與HMU 的連接關(guān)系

AMU 單元與DTU 單元的DMA 傳輸指AMU 接收到HMU 或者SATA 傳輸數(shù)據(jù)指令時,通過控制總線發(fā)送傳輸指令到DTU,DTU 根據(jù)指令配置DTU DMA,AMU FIFO 和DTU FIFO 進行數(shù)據(jù)交互。AMU單元本身無DMA 和DTU 交互。

4.2.3 DTU DMA 模塊

當(dāng)AMU 與DTU 進行數(shù)據(jù)交互時,通過控制總線發(fā)送傳輸指令到DTU,DTU 根據(jù)具體指令被動配置DTU DMA,AMU FIFO 和DTU FIFO 進行數(shù)據(jù)交互。DTU 與AMU 的數(shù)據(jù)傳輸采用Local FIFO,Local FIFO 由4 個FIFO segment 組成,每個segment 可以實現(xiàn)以下操作:①和AMU FIFO 傳輸數(shù)據(jù);②和Flash 的DMA 模塊傳輸數(shù)據(jù);③和其他3 個FIFO segment 傳輸數(shù)據(jù);④被CPU 訪問。在同一時刻,一個FIFO segment 實現(xiàn)上面其中一種操作,與此同時,其他FIFO segment 可以實現(xiàn)其他操作。DTU 與AMU 的連接關(guān)系如圖7 所示。

圖7 DTU 與AMU 的連接關(guān)系

5 測試與結(jié)果分析

采用本文提出的SSD 控制器設(shè)計方案,選擇長江存儲某NAND Flash 顆粒,為方便控制器的嵌入式應(yīng)用與性能測試,控制器與若干顆粒組成的存儲陣列進行通信,完成一系列讀寫測試。

5.1 DMA 讀寫功能測試

DMA 讀寫功能測試結(jié)果如圖8 所示,采用Bus Hound 向SSD 發(fā)出DMA 讀寫命令,將數(shù)據(jù)寫入存儲陣列,隨后將數(shù)據(jù)讀出并進行校驗,多次測試均未發(fā)現(xiàn)數(shù)據(jù)校驗錯誤,表明陣列控制器可以穩(wěn)定地完成讀寫操作。

圖8 DMA 讀寫功能測試結(jié)果

5.2 不同通道間的讀寫測試

四通道讀寫測試:DTU 通道數(shù)量設(shè)置為4,使用ATTO Disk Benchmark 軟件,傳輸?shù)奈募笮?6~8 192 kB,總長度為512 MB,直接I/O 訪問讀寫測試結(jié)果如圖9(a)所示。兩通道讀寫測試:DTU 通道數(shù)量設(shè) 置為2,使用相同的軟件設(shè)置,其測試結(jié)果如圖9(b)所示。

圖9 不同通道讀寫速率測試結(jié)果

由圖9 可以看出,當(dāng)傳輸文件從4 kB 一直到8 192 kB 變化時,對于不同大小的文件,讀寫性能均很穩(wěn)定。兩通道讀取速率達119 MB/s,寫入速率達78MB/s;四通道讀取速率達238 MB/s,寫入速率達152 MB/s。四通道的讀寫性能約為兩通道的兩倍,符合設(shè)計預(yù)期,同時也說明DMA 在傳輸數(shù)據(jù)時,適應(yīng)了不同通道間的速率差異,符合硬盤在不同通道間的讀寫性能表現(xiàn)。

5.3 單字節(jié)訪問下的讀寫測試

為驗證本文設(shè)計的DMA 數(shù)據(jù)傳輸性能優(yōu)化效果,在同一硬件環(huán)境下,將SSD 控制器中DMA 模塊失能,切換為字節(jié)訪問模式,其測試結(jié)果如圖10 所示。

圖10 單字節(jié)訪問讀寫速率測試結(jié)果

由圖10 可以看出,單字節(jié)訪問模式下,兩通道讀取和寫入速率可達20 MB/s 和14 MB/s;四通道讀取和寫入速率可達50 MB/s 和28 MB/s。經(jīng)實驗測試,DMA 模式與單字節(jié)訪問相比,讀寫速率均有較大的提升。本文提出的高速DMA 傳輸設(shè)計技術(shù)有效地提高了SSD 數(shù)據(jù)傳輸效率,大幅提高了SSD 的讀寫速率。

5.4 高低溫實驗測試

為了測試控制器的環(huán)境適應(yīng)能力,對其進行高低溫實驗測試,驗證其在-55~125 ℃環(huán)境中的工作性能。將測試電路(四通道模式下)放入溫箱,SSD 讀寫性能如圖11 所示。

圖11 -55~125 ℃下SSD 讀寫性能

使用burn in test 工具在高低溫環(huán)境下對其進行長時間(72 h)讀寫對比測試,多次測試結(jié)果均未出現(xiàn)誤碼,由此可知,本控制器可以適應(yīng)較復(fù)雜的工業(yè)溫度環(huán)境,且讀寫速率較穩(wěn)定。

6 結(jié)論

本文闡述了一種支持高速DMA 傳輸技術(shù)的SSD控制器設(shè)計與實現(xiàn)方法,多次功能及性能測試結(jié)果表明,所設(shè)計的SSD 控制器可以滿足不同環(huán)境溫度下大容量、高速率的數(shù)據(jù)傳輸及存儲需求,同時,所提供的Flash 陣列管理使存儲顆粒具有一定的擴展性和升級性。

本設(shè)計在SATA 控制器中存在多個DMA 控制模塊,增加了固件配置和調(diào)度DMA 模塊的成本,未來計劃結(jié)合硬件模塊設(shè)計和固件設(shè)計等多方需求,整合DMA 資源,降低固件對DMA 的配置和調(diào)度成本,從而更加高效地使用高速DMA 技術(shù),實現(xiàn)SDD 讀寫速度和使用壽命的進一步提高。

猜你喜歡
傳輸數(shù)據(jù)速率控制器
基于單片機的物聯(lián)網(wǎng)傳輸數(shù)據(jù)高并發(fā)讀寫系統(tǒng)設(shè)計
基于深度強化學(xué)習(xí)的物聯(lián)網(wǎng)傳輸數(shù)據(jù)實時調(diào)度方法
“化學(xué)反應(yīng)的速率與限度”知識與能力提升
蘋果專利可采用光纖輸出燈光并傳輸數(shù)據(jù)將光纖隱藏于車輛部件內(nèi)
速度和速率有什么不同
不同冷卻速率下低壓轉(zhuǎn)子鋼30Cr2Ni4MoV的凝固組織
上海金屬(2014年5期)2014-12-20 07:58:39
蓮心超微粉碎提高有效成分的溶出速率
模糊PID控制器設(shè)計及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
自動化博覽(2014年9期)2014-02-28 22:33:17
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
柏乡县| 万载县| 巴彦县| 广平县| 唐海县| 上饶县| 新河县| 白朗县| 金湖县| 甘泉县| 海宁市| 绥阳县| 阳城县| 远安县| 循化| 汝阳县| 社会| 枣阳市| 珠海市| 铜梁县| 察雅县| 特克斯县| 博客| 浪卡子县| 蒙自县| 东兰县| 兰溪市| 岳普湖县| 西充县| 玉环县| 图片| 渭源县| 玉林市| 固安县| 清水县| 安徽省| 共和县| 镇江市| 秭归县| 商城县| 崇信县|