欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種nvme協(xié)議多命令隊列的實現(xiàn)方法及系統(tǒng)的制作方法

文檔序號:8223306閱讀:526來源:國知局
一種nvme協(xié)議多命令隊列的實現(xiàn)方法及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及NVME協(xié)議優(yōu)化,特別是涉及一種擴充NVME協(xié)議多命令隊列的實現(xiàn)方 法及系統(tǒng)。
【背景技術】
[0002] NVME是專為企業(yè)級和客戶端系統(tǒng)設計的采用PCIe固態(tài)硬盤的可擴展的主機控 制器接口,其中包括優(yōu)化的寄存器接口和命令集。從根本上講,NVME是一個優(yōu)化的隊列接 口,主機將命令提交到隊列,由隊列來完成對數(shù)據(jù)的讀取或寫入,不按主機命令提交的時間 順序。并且,其有一個專門管理隊列的組件來完成隊列的創(chuàng)建、刪除、命令中止、安全等操 作。在現(xiàn)有的固態(tài)硬盤控制芯片中,NVME協(xié)議因為其低延遲、節(jié)能、CPU性能釋放并打破 IOPS(Input/Output Operat ions Per Second,即每秒進行讀寫(I/O)操作的次數(shù))瓶頸 等特點,迅速成為配合PCIE最合適的接口協(xié)議,也是未來固態(tài)硬盤控制芯片的主流技術。
[0003] NVME協(xié)議支持多個并行命令隊列,最大64K個命令隊列,而其針對每個命令隊列 又有隊列信息要保存,所以在實現(xiàn)NVME協(xié)議時,需要為對每個隊列開辟一片空間,這樣多 支持一個隊列就要多消耗一部分存儲資源,就會導致最終能支持的隊列個數(shù)有限。圖1是 命令隊列單獨開辟空間的實現(xiàn)方式,控制器從主機端接收NVME命令后,NVME命令選擇合適 的已開設的命令隊列進行入隊操作,LOCAL CPU再從各個命令隊列中選取當前需要執(zhí)行的 NVME隊列。每一個NVME命令是64Byte,即使每個隊列只緩存32個命令,為支持一個隊列 的開銷也需要2Kbyte的存儲空間,所以目前已經(jīng)開發(fā)的NVME模塊中支持的隊列個數(shù)都在 16個以下,由于存儲空間的限制,支持的命令隊列個數(shù)實際都非常小,遠無法達到理論支持 的個數(shù)。

【發(fā)明內(nèi)容】

[0004] 針對以上缺陷,本發(fā)明目的在于如何解決由于存儲空間的限制造成NVME協(xié)議無 法實際支持的多命令隊列的問題。
[0005] 為了實現(xiàn)上述目的,本發(fā)明提供了一種NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征 在于將命令隊列的命令和隊列信息分開存放,設置統(tǒng)一的命令存儲緩存存放各個命令隊列 的元素對應的具體命令和該命令對應的隊列號,設置隊列信息表存放Host端目前存在的 每個隊列的隊列信息,SSD控制器按順序執(zhí)行具體命令時,根據(jù)具體命令對應的隊列號從隊 列信息表中查尋對應的隊列信息。
[0006] 所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于由SSD控制器主動從Host 的命令隊列中讀取。
[0007] 所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于命令存儲緩存緩存于SSD控 制器內(nèi)部。
[0008] 所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于所述隊列信息包括隊列起 始地址、隊列號、隊列大小、隊列優(yōu)先級、隊列head doorbell和隊列物理連續(xù)信息。
[0009] 同時還提供了一種實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng),其特征在于設有:命令獲 取模塊、命令接收模塊,命令存儲區(qū)域和隊列信息表區(qū)域,命令獲取模塊,用于負責主動從 Host端命令隊列中讀取命令,并更新保存的命令隊列信息;命令接收模塊處理負責將接收 到的命令與命令對應的隊列號寫入統(tǒng)一的命令存儲區(qū)域;隊列信息表負責保存命令隊列信 息;實現(xiàn)將命令隊列的命令和隊列信息分開存放。
[0010] 所述的實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng),其特征在于所述隊列信息包括隊列起 始地址、隊列號、隊列大小、隊列優(yōu)先級、隊列headdoorbell和隊列物理連續(xù)信息。
[0011] 本發(fā)明針對由于存儲空間的限制,實際系統(tǒng)支持的NVME協(xié)議命令隊列個數(shù)較小 的問題,本發(fā)明提出了主動從Host端命令隊列讀取命令,在控制器內(nèi)部開辟統(tǒng)一命令存儲 區(qū)域來存放這些命令,然后在執(zhí)行命令時查表獲得命令隊列信息的實現(xiàn)方法。這樣的好處 在于控制芯片增加一個命令隊列的支持所消耗的存儲資源非常小,所以可以支持非常大的 命令隊列個數(shù),可以極大程度的提高I0PS。
【附圖說明】
[0012] 圖1是命令隊列單獨開辟空間的實現(xiàn)方式示意圖;
[0013] 圖2是實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng)框圖。
【具體實施方式】
[0014] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0015] 圖2是實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng)框圖,相較于命令隊列單獨開辟空間的實 現(xiàn)方式,本發(fā)明將獲取的所有命令存入統(tǒng)一的命令存儲區(qū)域中;同時開辟空間作為隊列信 息表,保存各命令隊列的相關信息。
[0016] 隊列信息表QUEUE_INF_TABLE中存放著每個命令隊列的相關信息,一個命令隊列 信息包括隊列起始地址、隊列號、隊列大小、隊列優(yōu)先級、隊列headdoorbel1和隊列物 理連續(xù)信息;命令存儲區(qū)域CMD_BUFFER內(nèi)存放從Host獲取的命令及該命令對應的序列 號;命令獲取模塊GET_CMD負責主動從Host主機端命令隊列中讀取命令,并將所讀取命令 對應的序列號告知命令接收模塊,在命令獲取之后還要更新命令隊列信息中的隊列head doorbell;命令接收模塊CMD_RECV處理負責將接收到的命令與命令對應的隊列號寫入統(tǒng) 一的命令存儲區(qū)域中。
[0017] 實際操作時,CPU首先在隊列信息表中為每一個命令隊列創(chuàng)建隊列信息單元;然 后由命令獲取模塊主動從Host端命令隊列中讀取命令,告知命令接收模塊所要接收的命 令序列號,并在命令返回后更新隊列信息單元中的隊列headdoorbell;返回的命令及其隊 列號由命令接收模塊寫入統(tǒng)一的命令存儲區(qū)域中,供CPU做排序和批量處理。
[0018] 命令執(zhí)行過程中,CPU和其他模塊可以根據(jù)隊列號從隊列信息表中查尋該隊列信 息。
[0019] 具體實施時,如增加對一個命令隊列的支持,只需要在命令隊列表中增加一個隊 列信息單元即可,目前這個單元消耗的資源如下表所示:
【主權項】
1. 一種NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于將命令隊列的命令和隊列信息 分開存放,設置統(tǒng)一的命令存儲緩存存放各個命令隊列的元素對應的具體命令和該命令對 應的隊列號,設置隊列信息表存放化St端目前存在的每個隊列的隊列信息,SSD控制器按 順序執(zhí)行具體命令時,根據(jù)具體命令對應的隊列號從隊列信息表中查尋對應的隊列信息。
2. 根據(jù)權利要求1所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于由SSD控制器 主動從化St的命令隊列中讀取。
3. 根據(jù)權利要求2所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于命令存儲緩存 緩存于SSD控制器內(nèi)部。
4. 根據(jù)權利要求3所述的NVME協(xié)議多命令隊列的實現(xiàn)方法,其特征在于所述隊列信息 包括隊列起始地址、隊列號、隊列大小、隊列優(yōu)先級、隊列head doorbell和隊列物理連續(xù)信 息。
5. -種實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng),其特征在于設有;命令獲取模塊、命令接收 模塊,命令存儲區(qū)域和隊列信息表區(qū)域,命令獲取模塊,用于負責主動從化St端命令隊列 中讀取命令,并更新保存的命令隊列信息;命令接收模塊處理負責將接收到的命令與命令 對應的隊列號寫入統(tǒng)一的命令存儲區(qū)域;隊列信息表負責保存命令隊列信息;實現(xiàn)將命令 隊列的命令和隊列信息分開存放。
6. 根據(jù)權利要求5所述的實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng),其特征在于所述隊列信息 包括隊列起始地址、隊列號、隊列大小、隊列優(yōu)先級、隊列head doorbell和隊列物理連續(xù)信 息。
【專利摘要】本發(fā)明公開了一種NVME協(xié)議多命令隊列的實現(xiàn)方法,將命令隊列的命令和隊列信息分開存放,設置統(tǒng)一的命令存儲緩存存放各個命令隊列的元素對應的具體命令和該命令對應的隊列號,設置隊列信息表存放Host端目前存在的每個隊列的隊列信息,SSD控制器按順序執(zhí)行具體命令時,根據(jù)具體命令對應的隊列號從隊列信息表中查尋對應的隊列信息。同時還實現(xiàn)了一種實現(xiàn)NVME協(xié)議多命令隊列的系統(tǒng)。通過主動從Host端命令隊列讀取命令,在控制器內(nèi)部開辟統(tǒng)一命令存儲區(qū)域來存放這些命令,在執(zhí)行命令時查表獲得命令隊列信息。這樣的好處在于控制芯片增加一個命令隊列的支持所消耗的存儲資源非常小,可以支持非常大的命令隊列個數(shù),可以極大程度的提高IOPS。
【IPC分類】G06F3-06, G06F13-38
【公開號】CN104536701
【申請?zhí)枴緾N201410811135
【發(fā)明人】黃毅, 黃運新, 董劍
【申請人】記憶科技(深圳)有限公司
【公開日】2015年4月22日
【申請日】2014年12月23日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1