流程控制模塊的框圖如圖1所示,該模塊主要由寄存器、讀狀態(tài)機(jī)、寫狀態(tài)機(jī)和命令生成模塊組成。
圖1 流程控制模塊框圖
流程控制模塊的工作首先從配置模塊中的寄存器組開始,由于只需要配置四個寄存器,因此使用資源占用較小的AXI_Lite總線接口來實(shí)現(xiàn)。表1所示為流程控制模塊內(nèi)寄存器的類型與功能描述等信息。
表1中的操作碼寄存器(OPCODE)用于表示命令類型,流程控制模塊通過操作碼寄存器不同的值來組裝相應(yīng)的NVMe命令,本設(shè)計主要實(shí)現(xiàn)了NVMe協(xié)議中常用的識別、讀、寫、SMART、FLUSH以及關(guān)機(jī)命令。數(shù)據(jù)地址寄存器(ADDR)用于指定要讀取的數(shù)據(jù)塊的起始地址。數(shù)據(jù)塊大小寄存器(SIZE)用于指定要讀取的數(shù)據(jù)塊的大小。狀態(tài)寄存器(STATUS)為只讀狀態(tài),用來指示當(dāng)前控制器的狀態(tài)信息。
為了提升系統(tǒng)性能,將讀寫劃分為兩個傳輸通道,每個通道可獨(dú)立工作。因此需要通過兩個狀態(tài)機(jī)來實(shí)現(xiàn)了讀寫控制。同時,采用乒乓操作的方式進(jìn)行讀寫,通過A和B兩個緩存區(qū)之間的切換來使輸入輸出數(shù)據(jù)可以無間斷地進(jìn)行傳輸,并減小NVMe命令執(zhí)行過程中產(chǎn)生的延遲。
讀狀態(tài)機(jī)跳轉(zhuǎn)圖如圖2所示。
圖2 狀態(tài)機(jī)跳轉(zhuǎn)圖
寫狀態(tài)機(jī)跳轉(zhuǎn)圖如圖3所示。
圖3 寫狀態(tài)機(jī)跳轉(zhuǎn)圖
各狀態(tài)說明如下:
IDLE:空閑狀態(tài),該狀態(tài)為該模塊上電后的初始化狀態(tài),在該狀態(tài)下等待接口轉(zhuǎn)換模塊輸入的empty信號為低電平時,表示有數(shù)據(jù)輸入,狀態(tài)跳轉(zhuǎn)至SW_A狀態(tài),否則維持在IDLE狀態(tài)。
SW_A:發(fā)送A區(qū)域?qū)懨顮顟B(tài),該狀態(tài)下等待緩存區(qū)域A存滿后,控制命令生成模塊組裝區(qū)域A的NVMe寫命令并通過AXI4_Stream接口發(fā)送給NVMe Host控制器。發(fā)送完成后若b_busy信號有效且empty信號為低電平時,狀態(tài)跳轉(zhuǎn)至WAIT,若b_busy信號為低電平且empty信號為低電平時,狀態(tài)跳轉(zhuǎn)至SC_B狀態(tài),此外,在設(shè)計中還添加了超時檢測機(jī)制,通過計數(shù)器實(shí)現(xiàn),當(dāng)長時間無數(shù)據(jù)輸入時,則控制命令生成模塊組裝相應(yīng)大小的NVMe寫命令,發(fā)送至NVMe Host控制器。
SW_B:發(fā)送B區(qū)域?qū)懨顮顟B(tài),該狀態(tài)下根據(jù)接口轉(zhuǎn)換模塊輸入的轉(zhuǎn)換數(shù)據(jù)量信息生成相應(yīng)的NVMe寫命令并通過AXI4_Stream接口發(fā)送給NVMe Host控制器。發(fā)送完成后若a_busy信號有效且empty信號為低電平時,狀態(tài)跳轉(zhuǎn)至WAIT,若a_busy信號為低電平且empty信號為低電平時,狀態(tài)跳轉(zhuǎn)至SC_A狀態(tài),該狀態(tài)下同樣使用超時檢測。
WAIT:等待狀態(tài),在該狀態(tài)下等待NVMe Host控制器返回done信號,表示命令執(zhí)行完畢。若上一個狀態(tài)為SW_A,檢測到done信號有效后,且buf_cnt的值不為0,則狀態(tài)跳轉(zhuǎn)至SW_B。若上一個狀態(tài)為SW_B,檢測到done信號有效后,且buf_cnt的值不為0,則狀態(tài)跳轉(zhuǎn)至SW_A。否則狀態(tài)跳轉(zhuǎn)至IDLE。
對它感興趣,想看視頻搜B站用戶名: z專注與守望
審核編輯 黃宇
-
控制器
+關(guān)注
關(guān)注
114文章
16968瀏覽量
182906 -
SSD
+關(guān)注
關(guān)注
21文章
2951瀏覽量
119110 -
存儲系統(tǒng)
+關(guān)注
關(guān)注
2文章
422瀏覽量
41242
發(fā)布評論請先 登錄
NVME控制器之隊列管理模塊
如何選擇適合您的過程控制器?

27MHz HCSL 差分晶體振蕩器在數(shù)據(jù)中心網(wǎng)絡(luò)存儲系統(tǒng)中的應(yīng)用方案
高速SSD存儲系統(tǒng)中數(shù)據(jù)緩存控制器整體頂層設(shè)計

什么是MPU控制器及其應(yīng)用
如何配置 RAID 5 存儲系統(tǒng)
PLC可編程控制器的簡介
緩存對大數(shù)據(jù)處理的影響分析
什么是緩存(Cache)及其作用
固態(tài)控制器忙狀態(tài)時間是什么意思
計算機(jī)存儲系統(tǒng)的構(gòu)成
SSD控制器的作用、構(gòu)成及功能

評論