基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法、裝置以及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,包括:固態(tài)硬盤獲取待處理的數(shù)據(jù),將待處理的數(shù)據(jù)存入完成隊列;更新第一完成隊列狀態(tài)表,使得第一完成隊列狀態(tài)表所存儲的內(nèi)容指示:完成隊列存儲有待處理的數(shù)據(jù),第一完成隊列狀態(tài)表所存儲的內(nèi)容包括:每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的數(shù)據(jù)。通過該數(shù)據(jù)處理方法,處理器通過完成隊列狀態(tài)表可以準確訪問存儲有待處理的數(shù)據(jù)的完成隊列,減少了處理器對完成隊列的輪詢過程中造成的系統(tǒng)損耗。
【專利說明】基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法、裝置以及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機存儲【技術(shù)領(lǐng)域】,尤其涉及基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方 法、裝置以及系統(tǒng)。
【背景技術(shù)】
[0002] 現(xiàn)有的固態(tài)硬盤(Solid State Drive,簡稱SSD)主要包括兩個部分:存儲顆粒, 用于存儲數(shù)據(jù);固態(tài)硬盤控制器,用于管理存儲在存儲顆粒中的數(shù)據(jù),并與處理器等其他設(shè) 備通信。如圖1所示,固態(tài)硬盤存儲系統(tǒng)包括了處理器、固態(tài)硬盤、提交隊列(Submission Queue,簡稱SQ)和完成隊列(Comp-letion Queue,簡稱CQ)。其中,SQ用于存儲固態(tài)硬盤 待處理的讀寫操作請求,CQ用于存儲固態(tài)硬盤根據(jù)讀寫操作請求完成的、處理器待處理的 數(shù)據(jù)。
[0003] 處理器對固態(tài)硬盤發(fā)起讀寫操作請求的過程如下:1、處理器發(fā)出讀寫操作請求至 SQ ;2、處理器通知固態(tài)硬盤控制器SQ內(nèi)有待處理的讀寫操作請求;3、固態(tài)硬盤控制器從SQ 中獲取待處理的讀寫操作請求;4、固態(tài)硬盤執(zhí)行該讀寫操作請求后,獲得對應的待處理的 數(shù)據(jù),并將該待處理的數(shù)據(jù)寫入CQ中;5、固態(tài)硬盤控制器通知處理器CQ內(nèi)有待處理的數(shù) 據(jù);6、處理器從CQ中獲得待處理的數(shù)據(jù),并完成數(shù)據(jù)處理。步驟4中固態(tài)硬盤控制器在將 待處理的數(shù)據(jù)寫入CQ后,可以在步驟5中對處理器發(fā)出中斷信號,使得處理器中斷當前任 務來執(zhí)行步驟6,也可以不對處理器發(fā)出中斷信號,則處理器需要定時對CQ進行詢問,以獲 取CQ中待處理的數(shù)據(jù),而如果在步驟5采用中斷信號,由于固態(tài)硬盤處理系統(tǒng)中讀寫操作 請求的頻率較高,因此中斷信號的發(fā)生頻率也較高,導致處理器的中斷開銷也隨之提升。
[0004] 現(xiàn)有固態(tài)硬盤存儲系統(tǒng)中的每個固態(tài)硬盤一般有一個CQ對應一個處理器,當固 態(tài)硬盤存儲系統(tǒng)中包括多個固態(tài)硬盤的情況下,則一個處理器會對應多個CQ,如果各個固 態(tài)硬盤的固態(tài)硬盤控制器不采用中斷信號通知處理器訪問CQ,則處理器需要定時輪詢多個 CQ,以獲得各個固態(tài)硬盤處理器發(fā)來的待處理的數(shù)據(jù),該CQ的輪詢過程將導致固態(tài)硬盤存 儲系統(tǒng)的較大開銷。
【發(fā)明內(nèi)容】
[0005] 針對上述現(xiàn)有技術(shù)而提出本發(fā)明,利用本發(fā)明可以解決現(xiàn)有技術(shù)方案中處理器輪 詢CQ造成的固態(tài)硬盤存儲系統(tǒng)開銷過大的問題。
[0006] 本發(fā)明實施例的第一方面提供了一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,其 特征在于,所述固態(tài)硬盤存儲系統(tǒng)包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處理方法包括:
[0007] 固態(tài)硬盤獲取待處理的數(shù)據(jù),將所述待處理的數(shù)據(jù)存入完成隊列;
[0008] 所述固態(tài)硬盤更新第一完成隊列狀態(tài)表,使得所述第一完成隊列狀態(tài)表所存儲的 內(nèi)容指示:所述完成隊列存儲有所述待處理的數(shù)據(jù),所述第一完成隊列狀態(tài)表所存儲的內(nèi) 容包括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理 的數(shù)據(jù)。
[0009] 結(jié)合第一方面,在第一方面的第一種實現(xiàn)方式中,所述更新第一完成隊列狀態(tài)表 具體包括如下操作Sl至S4 :
[0010] Sl :將所述第一完成隊列狀態(tài)表所存儲的第一內(nèi)容,存入第二完成隊列狀態(tài)表;
[0011] S2:將所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,存入第三完成隊列狀態(tài)表,并更 新所述第三完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第三完成隊列狀態(tài)表所存儲的內(nèi)容指 示:所述完成隊列存儲有所述待處理的數(shù)據(jù);
[0012] S3 :判斷所述第一完成隊列狀態(tài)表所存儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表 所存儲的內(nèi)容是否相同;
[0013] S4:如果相同,則將所述第三完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊 列狀態(tài)表;如果不相同,則再次執(zhí)行所述操作Sl至S3,直至所述第一完成隊列狀態(tài)表所存 儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表所存儲的內(nèi)容相同。
[0014] 結(jié)合第一方面的第一種實現(xiàn)方式,在第一方面的第二種實現(xiàn)方式中,所述第一內(nèi) 容包括所述第一完成隊列狀態(tài)表所存儲的所有內(nèi)容,或所述第一完成隊列狀態(tài)表所存儲的 與所述完成隊列相關(guān)的內(nèi)容。
[0015] 結(jié)合第一方面的第一種實現(xiàn)方式和第二種實現(xiàn)方式,在第一方面的第三種實現(xiàn) 方式中,所述操作S3和S4具體通過原子操作指令AtomiC_Cas完成,所述原子操作指令 Atomic_cas包括參數(shù):所述第一完成隊列狀態(tài)表的地址,所述第二完成隊列狀態(tài)表所存儲 的內(nèi)容,和所述第三完成隊列狀態(tài)表所存儲的內(nèi)容。
[0016] 結(jié)合第一方面,在第一方面的第四種實現(xiàn)方式中,所述更新第一完成隊列狀態(tài)表 具體包括:
[0017] 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第四完成隊列狀態(tài)表,將所述第 一完成隊列狀態(tài)表加鎖;
[0018] 更新所述第四完成隊列狀態(tài)表,使得所述第四完成隊列狀態(tài)表所存儲的內(nèi)容指 示:所述完成隊列存儲有所述待處理的數(shù)據(jù);
[0019] 將所述第四完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀態(tài)表,將所述 第一完成隊列狀態(tài)表解鎖。
[0020] 本發(fā)明實施例的第二方面提供了一種固態(tài)硬盤,其特征在于,所述固態(tài)硬盤用于 固態(tài)硬盤存儲系統(tǒng),所述固態(tài)硬盤存儲系統(tǒng)包括至少兩個所述固態(tài)硬盤,所述固態(tài)硬盤包 括:
[0021] 存入單元,用于獲取待處理的數(shù)據(jù),將所述待處理的數(shù)據(jù)存入完成隊列;
[0022] 更新單元,用于更新第一完成隊列狀態(tài)表,使得所述第一完成隊列狀態(tài)表所存儲 的內(nèi)容指示:所述完成隊列存儲有所述待處理的數(shù)據(jù),所述第一完成隊列狀態(tài)表所存儲的 內(nèi)容包括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處 理的數(shù)據(jù)。
[0023] 結(jié)合第二方面,在第二方面的第一種實現(xiàn)方式中,所述更新單元具體用于如下操 作Sl至S4 :
[0024] Sl :將所述第一完成隊列狀態(tài)表所存儲的第一內(nèi)容,存入第二完成隊列狀態(tài)表;
[0025] S2:將所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,存入第三完成隊列狀態(tài)表,并更 新所述第三完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第三完成隊列狀態(tài)表所存儲的內(nèi)容指 示:所述完成隊列存儲有所述待處理的數(shù)據(jù);
[0026] S3 :判斷所述第一完成隊列狀態(tài)表所存儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表 所存儲的內(nèi)容是否相同;
[0027] S4:如果相同,則將所述第三完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊 列狀態(tài)表;如果不相同,則再次執(zhí)行所述操作Sl至S3,直至所述第一完成隊列狀態(tài)表所存 儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表所存儲的內(nèi)容相同。
[0028] 結(jié)合第二方面的第一種實現(xiàn)方式,在第二方面的第二種實現(xiàn)方式中,所述第一內(nèi) 容包括所述第一完成隊列狀態(tài)表所存儲的所有內(nèi)容,或所述第一完成隊列狀態(tài)表所存儲的 與所述完成隊列相關(guān)的內(nèi)容。
[0029] 結(jié)合第二方面的第一種實現(xiàn)方式和第二種實現(xiàn)方式,在第二方面的第三種實現(xiàn) 方式中,所述操作S3和S4具體通過原子操作指令AtomiC_Cas完成,所述原子操作指令 Atomic_cas包括參數(shù):所述第一完成隊列狀態(tài)表的地址,所述第二完成隊列狀態(tài)表所存儲 的內(nèi)容,和所述第三完成隊列狀態(tài)表所存儲的內(nèi)容。
[0030] 結(jié)合第二方面,在第二方面的第四種實現(xiàn)方式中,所述更新單元具體用于:
[0031] 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第四完成隊列狀態(tài)表,將所述第 一完成隊列狀態(tài)表加鎖;
[0032] 更新所述第四完成隊列狀態(tài)表,使得所述第四完成隊列狀態(tài)表所存儲的內(nèi)容指 示:所述完成隊列存儲有所述待處理的數(shù)據(jù);
[0033] 將所述第四完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀態(tài)表,將所述 第一完成隊列狀態(tài)表解鎖。
[0034] 本發(fā)明實施例的第三方面提供了一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,其 特征在于,所述固態(tài)硬盤存儲系統(tǒng)包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處理方法包括:
[0035] 根據(jù)第一完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列,所述待處理的 完成隊列為:存儲有待處理的數(shù)據(jù)的完成隊列,所述第一完成隊列狀態(tài)表所存儲的內(nèi)容包 括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的數(shù) 據(jù);
[0036] 獲取所述待處理的完成隊列中存儲的所述待處理的數(shù)據(jù),處理所述待處理的數(shù) 據(jù)。
[0037] 結(jié)合第三方面,在第三方面的第一種實現(xiàn)方式中,所述根據(jù)第一完成隊列狀態(tài)表 所存儲的內(nèi)各,確定待處理的完成隊列具體包括:
[0038] 更新第五完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第五完成隊列狀態(tài)表所存儲的 內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理 的數(shù)據(jù);
[0039] 通過交換指令將所述第五完成隊列狀態(tài)表所存儲的內(nèi)容與所述第一完成隊列狀 態(tài)表所存儲的內(nèi)容交換;
[0040] 根據(jù)交換后的所述第五完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列。
[0041] 結(jié)合第三方面的第一種實現(xiàn)方式,在第三方面的第二種實現(xiàn)方式中,所述交換指 令為原子操作指令lock xchg,所述原子操作指令lock xchg包括參數(shù):所述第五完成隊列 狀態(tài)表的地址,所述第一完成隊列狀態(tài)表的地址。
[0042] 結(jié)合第三方面,在第三方面的第三種實現(xiàn)方式中所述根據(jù)第一完成隊列狀態(tài)表所 存儲的內(nèi)容,確定待處理的完成隊列具體包括:
[0043] 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第六完成隊列狀態(tài)表,將所述第 一完成隊列狀態(tài)表加鎖;
[0044] 根據(jù)所述第六完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列;
[0045] 更新所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第一完成隊列狀態(tài)表所存 儲的內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待 處理的數(shù)據(jù),將所述第一完成隊列狀態(tài)表加解鎖。
[0046] 本發(fā)明實施例的第四方面提供了一種數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理 裝置用于固態(tài)硬盤存儲系統(tǒng),所述固態(tài)硬盤存儲系統(tǒng)包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處 理裝置包括:
[0047] 確認單元,用于根據(jù)第一完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列, 所述待處理的完成隊列為:存儲有待處理的數(shù)據(jù)的完成隊列,所述第一完成隊列狀態(tài)表所 存儲的內(nèi)容包括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲 有待處理的數(shù)據(jù);
[0048] 處理單元,用于獲取所述待處理的完成隊列中存儲的所述待處理的數(shù)據(jù),處理所 述待處理的數(shù)據(jù)。
[0049] 結(jié)合第四方面,在第四方面的第一種實現(xiàn)方式中,所述確認單元具體用于:
[0050] 更新第五完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第五完成隊列狀態(tài)表所存儲的 內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理 的數(shù)據(jù);
[0051] 通過交換指令將所述第五完成隊列狀態(tài)表所存儲的內(nèi)容與所述第一完成隊列狀 態(tài)表所存儲的內(nèi)容交換;
[0052] 根據(jù)交換后的所述第五完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列。
[0053] 結(jié)合第四方面的第一種實現(xiàn)方式,在第四方面的第二種實現(xiàn)方式中,所述交換指 令為原子操作指令lock xchg,所述原子操作指令lock xchg包括參數(shù):所述第五完成隊列 狀態(tài)表的地址,所述第一完成隊列狀態(tài)表的地址。
[0054] 結(jié)合第四方面,在第四方面的第三種實現(xiàn)方式中,所述確認單元具體用于:
[0055] 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第六完成隊列狀態(tài)表,將所述第 一完成隊列狀態(tài)表加鎖;
[0056] 根據(jù)所述第六完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列;
[0057] 更新所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第一完成隊列狀態(tài)表所存 儲的內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待 處理的數(shù)據(jù),將所述第一完成隊列狀態(tài)表加解鎖。
[0058] 本發(fā)明實施例的第五方面提供了一種固態(tài)硬盤存儲系統(tǒng),所述固態(tài)硬盤存儲系統(tǒng) 包括:至少兩個如本發(fā)明實施例的第二方面任一所述的固態(tài)硬盤,如本發(fā)明實施例的第四 方面任一所述的數(shù)據(jù)處理裝置,存儲設(shè)備;
[0059] 所述固態(tài)硬盤對應的完成隊列存儲于所述存儲設(shè)備;
[0060] 所述固態(tài)硬盤、所述數(shù)據(jù)處理裝置、所述存儲設(shè)備之間通過總線建立通信。
[0061] 本發(fā)明實施例提供一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,固態(tài)硬盤在將待 處理的數(shù)據(jù)存入完成隊列后,更新完成隊列狀態(tài)表,該完成隊列狀態(tài)表中記錄了固態(tài)硬盤 存儲系統(tǒng)中各個完成隊列中是否存儲有待處理的數(shù)據(jù)。通過該數(shù)據(jù)處理方法,處理器在對 其完成隊列進行訪問時,無須將全部完成隊列均輪詢一遍以獲得待處理的數(shù)據(jù),而是通過 完成隊列狀態(tài)表可以精確獲知存儲有待處理的數(shù)據(jù)的完成隊列,進而準確訪問這些完成隊 列以獲得待處理的數(shù)據(jù),減少了處理器對完成隊列的輪詢過程中造成的系統(tǒng)損耗,加速了 處理器對完成隊列中待處理的數(shù)據(jù)的獲取過程。
【專利附圖】
【附圖說明】
[0062] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所 需要使用的附圖作以簡單地介紹,顯而易見的,下面描述中的附圖是本發(fā)明的一些實施例, 對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得 其他的附圖。
[0063] 圖1為現(xiàn)有技術(shù)中所應用的固態(tài)硬盤存儲系統(tǒng)的組成結(jié)構(gòu)示意圖;
[0064] 圖2為本發(fā)明實施例所應用的固態(tài)硬盤存儲系統(tǒng)的組成結(jié)構(gòu)示意圖;
[0065] 圖3為本發(fā)明方法實施例1所應用的數(shù)據(jù)處理方法的流程示意圖;
[0066] 圖4為本發(fā)明實施例所應用的另一固態(tài)硬盤存儲系統(tǒng)的組成結(jié)構(gòu)示意圖;
[0067] 圖5為本發(fā)明實施例所應用的又一固態(tài)硬盤存儲系統(tǒng)的組成結(jié)構(gòu)示意圖;
[0068] 圖6為本發(fā)明方法實施例2所應用的數(shù)據(jù)處理方法的流程示意圖;
[0069] 圖7為本發(fā)明設(shè)備實施例1所應用的固態(tài)硬盤的組成結(jié)構(gòu)示意圖;
[0070] 圖8為本發(fā)明設(shè)備實施例2所應用的數(shù)據(jù)處理裝置的組成結(jié)構(gòu)示意圖;
[0071] 圖9為本發(fā)明設(shè)備實施例3所應用的數(shù)據(jù)處理裝置的組成結(jié)構(gòu)示意圖。
【具體實施方式】
[0072] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。
[0073] 本說明書中的術(shù)語"處理器"一般指執(zhí)行數(shù)據(jù)處理任務的處理單元,可為稱之為 處理器核心或處理核心,還可以是一種具有信號的處理能力的集成電路芯片,例如通用處 理器、數(shù)字信號處理器(Digital Signal Processor, DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現(xiàn)成可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)等。
[0074] 本說明書中的術(shù)語"固態(tài)硬盤控制器"一般指集成于固態(tài)硬盤內(nèi),對固態(tài)硬盤中的 存儲顆粒進行管理的設(shè)備。
[0075] 本發(fā)明實施例的固杰硬盤存儲系統(tǒng)
[0076] 圖2描述了本發(fā)明實施例所提供的固態(tài)硬盤存儲系統(tǒng)的組成結(jié)構(gòu)示意圖,該固態(tài) 硬盤存儲系統(tǒng)包括至少兩個固態(tài)硬盤,即固態(tài)硬盤204,固態(tài)硬盤210,固態(tài)硬盤204包括固 態(tài)硬盤控制器206和存儲顆粒208,固態(tài)硬盤210包括固態(tài)硬盤控制器212和存儲顆粒214。 處理器202,存儲設(shè)備216,固態(tài)硬盤204和固態(tài)硬盤210通過總線228進行通信,其中存儲 設(shè)備中存儲有完成隊列狀態(tài)表226,該表中記錄了存儲設(shè)備中的各個完成隊列中是否存儲 有待處理的數(shù)據(jù),存儲設(shè)備中還存儲有各個提交隊列和完成隊列,其中每個固態(tài)硬盤對應 每個處理器有一個完成隊列和一個提交隊列,例如固態(tài)硬盤204通過提交隊列218和完成 隊列222與處理器202交互讀寫操作請求和待處理的數(shù)據(jù),固態(tài)硬盤210通過提交隊列220 和完成隊列224與處理器202交互讀寫操作請求和待處理的數(shù)據(jù)。
[0077] 需要說明的是,實際的固態(tài)硬盤存儲系統(tǒng)中可能包括多個處理器,則每個固態(tài)硬 盤對應每個處理器均有一個提交隊列和一個完成隊列,實際中完成隊列狀態(tài)表226的存儲 位置,與各個提交隊列和各個完成隊列的存儲位置可以為同一存儲設(shè)備,也可以為不同存 儲設(shè)備,例如:完成隊列狀態(tài)表226可以存儲于處理器202的寄存器中,或存儲于集成于處 理器202的存儲設(shè)備中,或存儲于集成在固態(tài)硬盤204或固態(tài)硬盤210內(nèi)的存儲設(shè)備中,其 具體存儲方式不構(gòu)成限定。
[0078] 方法實施例1
[0079] 參見圖3,本方法實施例1是基于圖2所示的固態(tài)硬盤存儲系統(tǒng),所提供的一種數(shù) 據(jù)處理方法,應當說明的是,本方法實施例的執(zhí)行主體為圖2所示的固態(tài)硬盤存儲系統(tǒng)中 的其中一個固態(tài)硬盤,本方法實施例為方便描述取為固態(tài)硬盤204,實際上,固態(tài)硬盤存儲 系統(tǒng)中的任何一個固態(tài)硬盤均可以實施本方法實施例,數(shù)據(jù)處理方法包括:
[0080] 步驟402,固態(tài)硬盤204獲取待處理的數(shù)據(jù),將待處理的數(shù)據(jù)存入完成隊列222。
[0081] 具體的,處理器202將讀寫操作請求寫入提交隊列218后,通知固態(tài)硬盤204提交 隊列218內(nèi)有待處理的讀寫操作請求。固態(tài)硬盤控制器206根據(jù)該通知獲取提交隊列218 內(nèi)的讀寫操作請求后,通過訪問存儲顆粒208獲取該讀寫操作請求對應的待處理的數(shù)據(jù), 并將該待處理的數(shù)據(jù)存入完成隊列222。
[0082] 步驟404,固態(tài)硬盤204更新完成隊列狀態(tài)表226,使得完成隊列狀態(tài)表226所存 儲的內(nèi)容指示:完成隊列222存儲有待處理的數(shù)據(jù),完成隊列狀態(tài)表226所存儲的內(nèi)容包 括:固態(tài)硬盤存儲系統(tǒng)中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的數(shù)據(jù), 在圖2所示的固態(tài)硬盤存儲系統(tǒng)中即完成隊列222和完成隊列224中是否存儲有待處理的 數(shù)據(jù)。
[0083] 具體的,表1為該完成隊列狀態(tài)表226的一種實現(xiàn)方式,表1中記錄了完成隊列 號,對應該固態(tài)硬盤存儲系統(tǒng)的各個完成隊列,如該固態(tài)硬盤存儲系統(tǒng)中包括n個固態(tài)硬 盤,即包括n個完成隊列,那么表1至少包括n行,每一個完成隊列號還對應有一位存儲狀 態(tài)標識,指示其對應的完成隊列內(nèi)是否存儲有待處理的數(shù)據(jù),以表1為例,存儲狀態(tài)標識為 " 1"代表著該存儲標識對應的完成隊列內(nèi)存儲有待處理的數(shù)據(jù),存儲狀態(tài)標識為"〇"代表著 該存儲標識對應的完成隊列內(nèi)未存儲有待處理的數(shù)據(jù)。如果步驟402中,固態(tài)硬盤204將 待處理的數(shù)據(jù)存入的完成隊列222在表1中的完成隊列號為1,而表1記錄的為固態(tài)硬盤 204執(zhí)行步驟404之前的狀態(tài),則步驟404中,固態(tài)硬盤204需要更新完成隊列狀態(tài)表226, 使其記錄的內(nèi)容由表1轉(zhuǎn)換為表2。
[0084] 應當說明的是,本說明書中的各個完成隊列狀態(tài)表,其存儲的內(nèi)容可以為如表1 所示的完成隊列號與存儲狀態(tài)標識的對應關(guān)系,也可以為n位的數(shù)據(jù),此時固態(tài)硬盤存儲 系統(tǒng)中的n個完成隊列與該n位的對應關(guān)系已經(jīng)確立,則這n位數(shù)據(jù)即可表示這n個完成 隊列中是否存儲有待處理的數(shù)據(jù),例如n為8時,完成隊列狀態(tài)表中僅存儲"00001010",固 態(tài)硬盤與處理器即可確定事先確立的該8位數(shù)據(jù)中的第二位和第四位對應的完成隊列中, 存儲有待處理的數(shù)據(jù)。
【權(quán)利要求】
1. 一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,其特征在于,所述固態(tài)硬盤存儲系統(tǒng) 包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處理方法包括: 獲取待處理的數(shù)據(jù),將所述待處理的數(shù)據(jù)存入完成隊列; 更新第一完成隊列狀態(tài)表,使得所述第一完成隊列狀態(tài)表所存儲的內(nèi)容指示:所述完 成隊列存儲有所述待處理的數(shù)據(jù),所述第一完成隊列狀態(tài)表所存儲的內(nèi)容包括:所述至少 兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的數(shù)據(jù)。
2. 如權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述更新第一完成隊列狀態(tài)表具 體包括如下操作S1至S4 : 51 :將所述第一完成隊列狀態(tài)表所存儲的第一內(nèi)容,存入第二完成隊列狀態(tài)表; 52 :將所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,存入第三完成隊列狀態(tài)表,并更新所述 第三完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第三完成隊列狀態(tài)表所存儲的內(nèi)容指示:所 述完成隊列存儲有所述待處理的數(shù)據(jù); 53 :判斷所述第一完成隊列狀態(tài)表所存儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表所存 儲的內(nèi)容是否相同; S4:如果相同,則將所述第三完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀 態(tài)表;如果不相同,則再次執(zhí)行所述操作S1至S3,直至所述第一完成隊列狀態(tài)表所存儲的 第二內(nèi)容與所述第二完成隊列狀態(tài)表所存儲的內(nèi)容相同。
3. 如權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,所述第一內(nèi)容包括所述第一完成 隊列狀態(tài)表所存儲的所有內(nèi)容,或所述第一完成隊列狀態(tài)表所存儲的與所述完成隊列相關(guān) 的內(nèi)容。
4. 如權(quán)利要求2或3所述的數(shù)據(jù)處理方法,其特征在于,所述操作S3和S4具體通過原 子操作指令Atomic_cas完成,所述原子操作指令Atomic_cas包括參數(shù):所述第一完成隊列 狀態(tài)表的地址,所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,和所述第三完成隊列狀態(tài)表所存 儲的內(nèi)容。
5. 如權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述更新第一完成隊列狀態(tài)表具 體包括: 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第四完成隊列狀態(tài)表,將所述第一完 成隊列狀態(tài)表加鎖; 更新所述第四完成隊列狀態(tài)表,使得所述第四完成隊列狀態(tài)表所存儲的內(nèi)容指示:所 述完成隊列存儲有所述待處理的數(shù)據(jù); 將所述第四完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀態(tài)表,將所述第一 完成隊列狀態(tài)表解鎖。
6. -種固態(tài)硬盤,其特征在于,所述固態(tài)硬盤用于固態(tài)硬盤存儲系統(tǒng),所述固態(tài)硬盤存 儲系統(tǒng)包括至少兩個所述固態(tài)硬盤,所述固態(tài)硬盤包括: 存入單元,用于獲取待處理的數(shù)據(jù),將所述待處理的數(shù)據(jù)存入完成隊列; 更新單元,用于更新第一完成隊列狀態(tài)表,使得所述第一完成隊列狀態(tài)表所存儲的內(nèi) 容指示:所述完成隊列存儲有所述待處理的數(shù)據(jù),所述第一完成隊列狀態(tài)表所存儲的內(nèi)容 包括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的 數(shù)據(jù)。
7. 如權(quán)利要求6所述的固態(tài)硬盤,其特征在于,所述更新單元具體用于如下操作S1至 S4 : 51 :將所述第一完成隊列狀態(tài)表所存儲的第一內(nèi)容,存入第二完成隊列狀態(tài)表; 52 :將所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,存入第三完成隊列狀態(tài)表,并更新所述 第三完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第三完成隊列狀態(tài)表所存儲的內(nèi)容指示:所 述完成隊列存儲有所述待處理的數(shù)據(jù); 53 :判斷所述第一完成隊列狀態(tài)表所存儲的第二內(nèi)容與所述第二完成隊列狀態(tài)表所存 儲的內(nèi)容是否相同; S4:如果相同,則將所述第三完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀 態(tài)表;如果不相同,則再次執(zhí)行所述操作S1至S3,直至所述第一完成隊列狀態(tài)表所存儲的 第二內(nèi)容與所述第二完成隊列狀態(tài)表所存儲的內(nèi)容相同。
8. 如權(quán)利要求7所述的固態(tài)硬盤,其特征在于,所述第一內(nèi)容包括所述第一完成隊列 狀態(tài)表所存儲的所有內(nèi)容,或所述第一完成隊列狀態(tài)表所存儲的與所述完成隊列相關(guān)的內(nèi) 容。
9. 如權(quán)利要求7或8所述的固態(tài)硬盤,其特征在于,所述操作S3和S4具體通過原子操 作指令Atomic_cas完成,所述原子操作指令Atomic_cas包括參數(shù):所述第一完成隊列狀態(tài) 表的地址,所述第二完成隊列狀態(tài)表所存儲的內(nèi)容,和所述第三完成隊列狀態(tài)表所存儲的 內(nèi)容。
10. 如權(quán)利要求6所述的固態(tài)硬盤,其特征在于,所述更新單元具體用于: 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第四完成隊列狀態(tài)表,將所述第一完 成隊列狀態(tài)表加鎖; 更新所述第四完成隊列狀態(tài)表,使得所述第四完成隊列狀態(tài)表所存儲的內(nèi)容指示:所 述完成隊列存儲有所述待處理的數(shù)據(jù); 將所述第四完成隊列狀態(tài)表所存儲的內(nèi)容存入所述第一完成隊列狀態(tài)表,將所述第一 完成隊列狀態(tài)表解鎖。
11. 一種基于固態(tài)硬盤存儲系統(tǒng)的數(shù)據(jù)處理方法,其特征在于,所述固態(tài)硬盤存儲系統(tǒng) 包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處理方法包括: 根據(jù)第一完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列,所述待處理的完成 隊列為:存儲有待處理的數(shù)據(jù)的完成隊列,所述第一完成隊列狀態(tài)表所存儲的內(nèi)容包括: 所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待處理的數(shù) 據(jù); 獲取所述待處理的完成隊列中存儲的所述待處理的數(shù)據(jù),處理所述待處理的數(shù)據(jù)。
12. 如權(quán)利要求11所述的數(shù)據(jù)處理方法,其特征在于,所述根據(jù)第一完成隊列狀態(tài)表 所存儲的內(nèi)各,確定待處理的完成隊列具體包括: 更新第五完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第五完成隊列狀態(tài)表所存儲的內(nèi)容 指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理的數(shù) 據(jù); 通過交換指令將所述第五完成隊列狀態(tài)表所存儲的內(nèi)容與所述第一完成隊列狀態(tài)表 所存儲的內(nèi)容交換; 根據(jù)交換后的所述第五完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列。
13. 如權(quán)利要求12所述的數(shù)據(jù)處理方法,其特征在于,所述交換指令為原子操作指令 lock xchg,所述原子操作指令lock xchg包括參數(shù):所述第五完成隊列狀態(tài)表的地址,所述 第一完成隊列狀態(tài)表的地址。
14. 如權(quán)利要求11所述的數(shù)據(jù)處理方法,其特征在于,所述根據(jù)第一完成隊列狀態(tài)表 所存儲的內(nèi)各,確定待處理的完成隊列具體包括: 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第六完成隊列狀態(tài)表,將所述第一完 成隊列狀態(tài)表加鎖; 根據(jù)所述第六完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列; 更新所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第一完成隊列狀態(tài)表所存儲的 內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理 的數(shù)據(jù),將所述第一完成隊列狀態(tài)表加解鎖。
15. -種數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置用于固態(tài)硬盤存儲系統(tǒng),所述 固態(tài)硬盤存儲系統(tǒng)包括至少兩個固態(tài)硬盤,所述數(shù)據(jù)處理裝置包括: 確認單元,用于根據(jù)第一完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列,所述 待處理的完成隊列為:存儲有待處理的數(shù)據(jù)的完成隊列,所述第一完成隊列狀態(tài)表所存儲 的內(nèi)容包括:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列中是否存儲有待 處理的數(shù)據(jù); 處理單元,用于獲取所述待處理的完成隊列中存儲的所述待處理的數(shù)據(jù),處理所述待 處理的數(shù)據(jù)。
16. 如權(quán)利要求15所述的數(shù)據(jù)處理裝置,其特征在于,所述確認單元具體用于: 更新第五完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第五完成隊列狀態(tài)表所存儲的內(nèi)容 指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理的數(shù) 據(jù); 通過交換指令將所述第五完成隊列狀態(tài)表所存儲的內(nèi)容與所述第一完成隊列狀態(tài)表 所存儲的內(nèi)容交換; 根據(jù)交換后的所述第五完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列。
17. 如權(quán)利要求16所述的數(shù)據(jù)處理裝置,其特征在于,所述交換指令為原子操作指令 lock xchg,所述原子操作指令lock xchg包括參數(shù):所述第五完成隊列狀態(tài)表的地址,所述 第一完成隊列狀態(tài)表的地址。
18. 如權(quán)利要求15所述的數(shù)據(jù)處理裝置,所述確認單元具體用于: 將所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,存入第六完成隊列狀態(tài)表,將所述第一完 成隊列狀態(tài)表加鎖; 根據(jù)所述第六完成隊列狀態(tài)表所存儲的內(nèi)容,確定待處理的完成隊列; 更新所述第一完成隊列狀態(tài)表所存儲的內(nèi)容,使得所述第一完成隊列狀態(tài)表所存儲的 內(nèi)容指示:所述至少兩個固態(tài)硬盤中的每一個固態(tài)硬盤對應的完成隊列均不存儲有待處理 的數(shù)據(jù),將所述第一完成隊列狀態(tài)表加解鎖。
19. 一種固態(tài)硬盤存儲系統(tǒng),其特征在于,所述固態(tài)硬盤存儲系統(tǒng)包括:至少兩個如權(quán) 利要求6至10所述的固態(tài)硬盤,如權(quán)利要求15至18所述的數(shù)據(jù)處理裝置,存儲設(shè)備; 所述固態(tài)硬盤對應的完成隊列存儲于所述存儲設(shè)備; 所述固態(tài)硬盤、所述數(shù)據(jù)處理裝置、所述存儲設(shè)備之間通過總線建立通信。
【文檔編號】G06F13/16GK104407820SQ201410766796
【公開日】2015年3月11日 申請日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】黃巖 申請人:華為技術(shù)有限公司