一種固態(tài)存儲(chǔ)的控制方法、裝置及固態(tài)存儲(chǔ)設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種固態(tài)存儲(chǔ)的控制方法、裝置及固態(tài)存儲(chǔ)設(shè)備。
【背景技術(shù)】
[0002]目前,為了提高SSD(固態(tài)硬盤(pán),Solid State Drives)的性能,以及匹配日益提高的接口帶寬和存儲(chǔ)介質(zhì)規(guī)模,固態(tài)存儲(chǔ)控制器都是雙核甚至多核處理器,尤其是固態(tài)非易失存儲(chǔ)控制器。
[0003]但是,目前絕大部分廠商所宣稱的雙核或者多核都是獨(dú)立的雙核或者多核,并非真正的雙核或者多核。獨(dú)立的多核是指多個(gè)處理器在獨(dú)立的處理自己的事務(wù)進(jìn)程,事務(wù)分割的方式是通過(guò)固定的算法和策略,多核之間不存在事務(wù)交疊和一致性問(wèn)題。其存在的問(wèn)題是多核之間事務(wù)進(jìn)程不均衡,有一些核的負(fù)載比較重,有一些核幾乎空載,在這種情況下設(shè)備的性能就幾乎和單核相當(dāng)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供的一種固態(tài)存儲(chǔ)的控制方法、裝置及固態(tài)存儲(chǔ)設(shè)備,解決現(xiàn)有的雙核或多核固態(tài)存儲(chǔ)控制器,性能和單核相當(dāng)?shù)膯?wèn)題。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案:
[0006]本發(fā)明提供的一種固態(tài)存儲(chǔ)的控制方法,應(yīng)用于固態(tài)存儲(chǔ)的控制裝置,所述固態(tài)存儲(chǔ)的控制裝置包括至少兩個(gè)處理模塊,所述固態(tài)存儲(chǔ)的控制方法包括:
[0007]接收外部主機(jī)發(fā)送的操作命令;所述至少兩個(gè)處理模塊中預(yù)先確定的仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊;
[0008]將所述操作命令發(fā)送給選出的執(zhí)行處理模塊;
[0009]所述執(zhí)行處理模塊執(zhí)行所述操作命令。
[0010]在一些實(shí)施例中,所述至少兩個(gè)處理模塊中預(yù)先確定的仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊具體為:所述至少兩個(gè)處理模塊中預(yù)先確定的仲裁處理模塊根據(jù)負(fù)載均衡原則從所述至少兩個(gè)處理模塊中選擇負(fù)載最小的作為執(zhí)行處理模塊。
[0011]在一些實(shí)施例中,所述仲裁處理模塊執(zhí)行所述接收外部主機(jī)發(fā)送的操作命令,以及將所述操作命令發(fā)送給選出的執(zhí)行處理模塊的步驟。
[0012]在一些實(shí)施例中,所述仲裁處理模塊通過(guò)總線緩存或者消息表MassageTable將所述操作命令發(fā)送給選出的執(zhí)行處理模塊。
[0013]在一些實(shí)施例中,所述操作命令為寫(xiě)操作命令;所述執(zhí)行處理模塊執(zhí)行所述操作命令之前,還包括:所述仲裁處理模塊響應(yīng)所述寫(xiě)操作命令并控制新數(shù)據(jù)發(fā)送至緩存指定位置;所述執(zhí)行處理模塊執(zhí)行所述操作命令具體為:所述執(zhí)行處理模塊發(fā)起從緩存到存儲(chǔ)陣列的寫(xiě)操作,將新數(shù)據(jù)寫(xiě)入存儲(chǔ)介質(zhì)。優(yōu)選的,當(dāng)緩存中的新數(shù)據(jù)累積到預(yù)設(shè)大小時(shí),進(jìn)入所述至少兩個(gè)處理模塊中預(yù)先確定的仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選擇執(zhí)行處理模塊的步驟。
[0014]在一些實(shí)施例中,所述操作命令為讀操作命令;所述執(zhí)行處理模塊執(zhí)行所述操作命令具體為:所述執(zhí)行處理模塊根據(jù)所述讀操作命令查詢邏輯區(qū)塊地址到物理區(qū)塊地址的映射表Mapp ingTab I e,向存儲(chǔ)陣列發(fā)起讀操作。
[0015]本發(fā)明提供的一種固態(tài)存儲(chǔ)的控制裝置,包括:
[0016]至少兩個(gè)處理模塊,所述至少兩個(gè)處理模塊中包括預(yù)先確定的仲裁處理模塊,所述仲裁處理模塊用于根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊,所述執(zhí)行處理模塊用于執(zhí)行操作命令;
[0017]接收模塊,用于接收外部主機(jī)發(fā)送的操作命令;
[0018]發(fā)送模塊,用于將所述操作命令發(fā)送給所述執(zhí)行處理模塊。
[0019]在一些實(shí)施例中,所述仲裁處理模塊具體用于根據(jù)負(fù)載均衡原則從所述至少兩個(gè)處理模塊中選擇負(fù)載最小的作為執(zhí)行處理模塊。
[0020]在一些實(shí)施例中,所述接收模塊和所述發(fā)送模塊集成在所述仲裁處理模塊中。
[0021]在一些實(shí)施例中,所述發(fā)送模塊具體用于通過(guò)總線緩存或者消息表MassageTable將所述操作命令發(fā)送給所述執(zhí)行處理模塊。
[0022]在一些實(shí)施例中,所述接收模塊具體用于接收外部主機(jī)發(fā)送的寫(xiě)操作命令;所述仲裁處理模塊還用于響應(yīng)所述寫(xiě)操作命令并控制新數(shù)據(jù)發(fā)送至緩存指定位置;所述執(zhí)行處理模塊具體用于發(fā)起從緩存到存儲(chǔ)陣列的寫(xiě)操作,將新數(shù)據(jù)寫(xiě)入存儲(chǔ)介質(zhì)。
[0023]在一些實(shí)施例中,所述仲裁處理模塊具體用于當(dāng)緩存中的新數(shù)據(jù)累積到預(yù)設(shè)大小時(shí),進(jìn)入根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊的步驟。
[0024]在一些實(shí)施例中,所述接收模塊具體用于接收外部主機(jī)發(fā)送的讀操作命令;所述執(zhí)行處理模塊具體用于根據(jù)所述讀操作命令查詢邏輯區(qū)塊地址到物理區(qū)塊地址的映射表MappingTable,向存儲(chǔ)陣列發(fā)起讀操作。
[0025]本發(fā)明提供的一種固態(tài)存儲(chǔ)設(shè)備,包括上述任一項(xiàng)所述的固態(tài)存儲(chǔ)的控制裝置。
[0026]本發(fā)明,通過(guò)在固態(tài)存儲(chǔ)的控制裝置中確定仲裁處理模塊,由仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則選出執(zhí)行處理模塊,再由執(zhí)行處理模塊執(zhí)行主機(jī)的操作命令的方式,實(shí)現(xiàn)了固態(tài)存儲(chǔ)的控制裝置的真正的雙核和多核,固態(tài)存儲(chǔ)的控制裝置中各處理模塊之間的事務(wù)分配由仲裁處理模塊來(lái)決定,以雙核或多核固態(tài)存儲(chǔ)控制器為例,確定了仲裁處理器之后,核與核之間通過(guò)仲裁處理器來(lái)決定事務(wù)的分配,這樣的好處是任務(wù)進(jìn)程可以很平均的分配給每一個(gè)核,各個(gè)核都被充分調(diào)度起來(lái),性能大幅度提高。
【附圖說(shuō)明】
[0027]圖1為本發(fā)明一實(shí)施例提供的固態(tài)存儲(chǔ)的控制方法的流程圖;
[0028]圖2為本發(fā)明一實(shí)施例提供的固態(tài)存儲(chǔ)的控制裝置的示意圖;
[0029]圖3為本發(fā)明一實(shí)施例提供的固態(tài)存儲(chǔ)設(shè)備的不意圖。
【具體實(shí)施方式】
[0030]本發(fā)明中表述的固態(tài)存儲(chǔ)包括但不局限于非易失固態(tài)存儲(chǔ)。仲裁處理模塊與執(zhí)行處理模塊之間可以通過(guò)總線緩存或者M(jìn)assageTable (消息表)之間信息交互。仲裁處理模塊與執(zhí)行處理模塊可以為固態(tài)存儲(chǔ)的控制裝置中的同一處理模塊,優(yōu)選的,為固態(tài)存儲(chǔ)的控制裝置中的不同處理模塊。下面通過(guò)【具體實(shí)施方式】結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0031]圖1為本發(fā)明一實(shí)施例提供的固態(tài)存儲(chǔ)的控制方法的流程圖,該固態(tài)存儲(chǔ)的控制方法,應(yīng)用于固態(tài)存儲(chǔ)的控制裝置,該固態(tài)存儲(chǔ)的控制裝置包括至少兩個(gè)處理模塊,該固態(tài)存儲(chǔ)的控制方法請(qǐng)參考圖1,包括如下流程:
[0032]S101、接收外部主機(jī)發(fā)送的操作命令;所述至少兩個(gè)處理模塊中預(yù)先確定的仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊。
[0033]主機(jī)發(fā)送的操作命令可以是寫(xiě)操作命令,也可以是讀操作命令。該步驟可以先從所述至少兩個(gè)處理模塊中確定仲裁處理模塊,再由仲裁處理模塊接收外部主機(jī)發(fā)送的操作命令,仲裁處理模塊再根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊。
[0034]從所述至少兩個(gè)處理模塊中預(yù)先確定仲裁處理模塊的方式包括但不局限于:人為設(shè)定,或者自動(dòng)選擇當(dāng)前負(fù)載最小的作為仲裁處理模塊。
[0035]仲裁處理模塊根據(jù)預(yù)設(shè)規(guī)則從所述至少兩個(gè)處理模塊中選出執(zhí)行處理模塊的方式包括但不局限于:根據(jù)負(fù)載均衡原則從所述至少兩個(gè)處理模塊中選擇負(fù)載最小的作為執(zhí)行處理模塊。例如:根據(jù)命令執(zhí)行的狀況,選擇剩下命令最少或者是IDLE狀態(tài)的作為執(zhí)行處理模塊。
[0036]S102、將所述操作命令發(fā)送給選出的執(zhí)行處理模塊。
[0037]該步驟可以由仲裁處理模塊將所述操作