Io請(qǐng)求的處理方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了一種IO請(qǐng)求的處理方法及裝置,涉及信息【技術(shù)領(lǐng)域】,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。所述方法包括:首先接收主機(jī)發(fā)送的第一IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二IO請(qǐng)求信息,則釋放所述第二IO請(qǐng)求信息,最后將所述第二IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
【專利說(shuō)明】IO請(qǐng)求的處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,特別涉及一種IO請(qǐng)求的處理方法及裝置。
【背景技術(shù)】
[0002]存儲(chǔ)領(lǐng)域常用的數(shù)據(jù)載體是機(jī)械硬盤(pán)和固態(tài)硬盤(pán)(SSD, Solid State Drive),由于SSD具有高性能、低延遲、低功耗、環(huán)境適應(yīng)性強(qiáng)等優(yōu)點(diǎn),同時(shí)成本也在不斷降低,因此目前對(duì)于SSD應(yīng)用的場(chǎng)景也越來(lái)越廣泛。
[0003]SSD —般由控制器和NAND flash (存儲(chǔ)器)芯片組成,目前,SSD控制器在接收到主機(jī)發(fā)送的IO請(qǐng)求后,需要申請(qǐng)內(nèi)存空間來(lái)保存IO請(qǐng)求信息,其中,因?yàn)樾阅芤?,一般將接收到的IO請(qǐng)求信息存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random Access Memory)中。然而由于RAM空間較小,通常為幾十到幾百kB,從而導(dǎo)致SSD對(duì)IO請(qǐng)求的處理效率較低,NAND flash的高速讀寫(xiě)性能未被充分利用,造成系統(tǒng)資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種IO請(qǐng)求的處理方法及裝置,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
[0005]本發(fā)明實(shí)施例采用的技術(shù)方案為:
[0006]一種IO請(qǐng)求的處理方法,包括:
[0007]接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息;
[0008]判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息;
[0009]若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求
信息;
[0010]將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0011]一種IO請(qǐng)求的處理裝置,包括:
[0012]接收單元,用于接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息;
[0013]判斷單元,用于判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息;
[0014]釋放單元,用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求彳目息;
[0015]保存單元,用于將所述第二IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0016]本發(fā)明實(shí)施例提供的IO請(qǐng)求的處理方法及裝置,首先接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。與目前將接收到的IO請(qǐng)求消息只存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random AccessMemory)中相比,本發(fā)明實(shí)施例通過(guò)同時(shí)使用RAM和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR,Double Data Rate)兩塊存儲(chǔ)空間處理IO請(qǐng)求信息,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
【專利附圖】
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0018]圖1為本發(fā)明實(shí)施例一提供的一種IO請(qǐng)求的處理方法流程圖;
[0019]圖2為本發(fā)明實(shí)施例提供的另一種IO請(qǐng)求的處理方法流程圖;
[0020]圖3為本發(fā)明實(shí)施例提供的一種IO請(qǐng)求的處理裝置結(jié)構(gòu)示意圖;
[0021]圖4為本發(fā)明實(shí)施例提供的另一種IO請(qǐng)求的處理裝置結(jié)構(gòu)示意圖;
[0022]圖5為本發(fā)明實(shí)施例提供的SSD結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]為使本發(fā)明技術(shù)方案的優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說(shuō)明。
[0025]本發(fā)明實(shí)施例提供一種IO請(qǐng)求的處理方法,如圖1所示,所述方法包括:
[0026]101、SSD控制器接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息。
[0027]102、判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息。
[0028]其中,對(duì)于本發(fā)明實(shí)施例,預(yù)先配置片內(nèi)RAM資源和片外DDR資源,用于對(duì)IO請(qǐng)求進(jìn)行并行處理。第一存儲(chǔ)結(jié)構(gòu)體具體可以為RAM中的結(jié)構(gòu)體CmdStateCache。第一 IO請(qǐng)求信息和第二 IO請(qǐng)求信息分別為主機(jī)在不同時(shí)刻向SSD控制器進(jìn)行發(fā)送的。
[0029]103、若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息。
[0030]104、將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0031]其中,第二存儲(chǔ)結(jié)構(gòu)體具體可以為DDR中的結(jié)構(gòu)體CmdState。每一個(gè)CmdState都有一個(gè)唯一的序號(hào),例如為Cmdlndex, RAM中的每一個(gè)結(jié)構(gòu)體CmdStateCache中標(biāo)識(shí)有與其對(duì)應(yīng)的DDR中的結(jié)構(gòu)體序號(hào)的初始值,例如,初始值為OxFFFF,則CmdStateCache->ddrindex 為 OxFFFF。
[0032]本發(fā)明實(shí)施例提供的一種IO請(qǐng)求的處理方法,首先接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。與目前將接收到的IO請(qǐng)求消息只存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random AccessMemory)中相比,本發(fā)明實(shí)施例通過(guò)同時(shí)使用RAM和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR,Double Data Rate)兩塊存儲(chǔ)空間處理IO請(qǐng)求信息,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
[0033]進(jìn)一步地,本發(fā)明實(shí)施例提供另一種IO請(qǐng)求的處理方法,如圖2所示,所述方法包括:
[0034]201、SSD控制器接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息。
[0035]202、判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息。
[0036]其中,對(duì)于本發(fā)明實(shí)施例,預(yù)先配置片內(nèi)RAM資源和片外DDR資源,用于對(duì)IO請(qǐng)求進(jìn)行并發(fā)處理。第一存儲(chǔ)結(jié)構(gòu)體具體可以為RAM中的結(jié)構(gòu)體CmdStateCache。第一 IO請(qǐng)求信息和第二 IO請(qǐng)求信息分別為主機(jī)在不同時(shí)刻向SSD控制器進(jìn)行發(fā)送的。
[0037]具體地,判斷所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)是否為初始值,若所述序號(hào)不為初始值,則確定所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息。其中,由于初始化時(shí),配置第一存儲(chǔ)結(jié)構(gòu)體標(biāo)識(shí)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)為初始值,因此當(dāng)?shù)谝淮鎯?chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)發(fā)生變化時(shí),可以說(shuō)明第一存儲(chǔ)結(jié)構(gòu)體中已保存有其他請(qǐng)求信息。
[0038]203、若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息。
[0039]204、將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0040]其中,第二存儲(chǔ)結(jié)構(gòu)體具體可以為DDR中的結(jié)構(gòu)體CmdState。每一個(gè)CmdState都有一個(gè)唯一的序號(hào),例如為Cmdlndex, RAM中的每一個(gè)結(jié)構(gòu)體CmdStateCache中標(biāo)識(shí)有與其對(duì)應(yīng)的DDR中的結(jié)構(gòu)體序號(hào)的初始值,例如,初始值為OxFFFF,則CmdStateCache_>ddrindex=0xFFFFo
[0041]對(duì)于本發(fā)明實(shí)施例,將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中的步驟具體可以包括:根據(jù)所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中。例如,可以通過(guò)第一結(jié)構(gòu)存儲(chǔ)體中記錄的CmdStateCache->ddrindex獲取到第二 IO請(qǐng)求信息對(duì)應(yīng)的DDR結(jié)構(gòu)體地址,并把當(dāng)前CmdStateCache中保存的第二 IO請(qǐng)求信息寫(xiě)入到對(duì)應(yīng)的DDR結(jié)構(gòu)體中。
[0042]205、接收所述第二 IO請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息。
[0043]其中,每一個(gè)請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息是由對(duì)應(yīng)的Nand Flash進(jìn)行反饋的。
[0044]206、判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放。
[0045]具體地,首先獲取所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào),然后判斷所述第一存儲(chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),是否與所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)相同,若不同,則確定所述第二IO請(qǐng)求信息被釋放。其中,當(dāng)?shù)谝淮鎯?chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),與所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)不相同時(shí),說(shuō)明該第一存儲(chǔ)結(jié)構(gòu)體已經(jīng)被其他IO請(qǐng)求信息占用,第二 IO請(qǐng)求信息需要從對(duì)應(yīng)的DDR存儲(chǔ)結(jié)構(gòu)體中獲取。[0046]207、若所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息被釋放,則從所述第二存儲(chǔ)結(jié)構(gòu)體中讀取所述第二 IO請(qǐng)求信息。
[0047]對(duì)于本發(fā)明實(shí)施例,步驟205-207與步驟201-204之間可以為前后關(guān)系,也可以為并列關(guān)系,本發(fā)明實(shí)施例不做限定。
[0048]本發(fā)明實(shí)施例提供的另一種IO請(qǐng)求的處理方法,首先接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。與目前將接收到的IO請(qǐng)求消息只存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random AccessMemory)中相比,本發(fā)明實(shí)施例通過(guò)同時(shí)使用RAM和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR,Double Data Rate)兩塊存儲(chǔ)空間處理IO請(qǐng)求信息,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
[0049]再進(jìn)一步地,作為圖1所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供一種IO請(qǐng)求的處理裝置,如圖3所示,所述裝置可以應(yīng)用于SSD中,所述裝置包括:接收單元31、判斷單元32、釋放單元33、保存單元34。
[0050]接收單元31,可以用于接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息。
[0051]判斷單元32,可以用于判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息。
[0052]釋放單元33,可以用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息。
[0053]保存單元34,可以用于將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0054]需要說(shuō)明的是,本發(fā)明實(shí)施例提供的裝置所涉及各功能單元的其他對(duì)應(yīng)描述可以參考圖1中的相應(yīng)描述,在此不再贅述。
[0055]本發(fā)明實(shí)施例提供的一種IO請(qǐng)求的處理裝置,首先接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。與目前將接收到的IO請(qǐng)求消息只存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random AccessMemory)中相比,本發(fā)明實(shí)施例通過(guò)同時(shí)使用RAM和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR,Double Data Rate)兩塊存儲(chǔ)空間處理10請(qǐng)求信息,可以提高SSD對(duì)10請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
[0056]再進(jìn)一步地,作為圖2所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供另一種10請(qǐng)求的處理裝置,如圖4所示,所述裝置可以應(yīng)用于SSD中,所述裝置包括:接收單元41、判斷單元42、釋放單元43、保存單元44。
[0057]接收單元41,可以用于接收主機(jī)發(fā)送的第一 10請(qǐng)求信息。
[0058]判斷單元42,可以用于判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 10請(qǐng)求信息。
[0059]釋放單元43,可以用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 10請(qǐng)求信息,則釋放所述第二 10請(qǐng)求信息。
[0060]保存單元44,可以用于將所述第二 10請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0061]判斷單元42,具體可以用于判斷所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)是否為初始值,若所述序號(hào)不為初始值,則確定所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求彳目息。
[0062]保存單元44,具體可以用于根據(jù)所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中。
[0063]接收單元41,還可以用于接收所述第二 IO請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息。
[0064]判斷單元42,還可以用于判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放。
[0065]所述裝置還可以包括:
[0066]讀取單元45,可以用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息被釋放,則從所述第二存儲(chǔ)結(jié)構(gòu)體中讀取所述第二 IO請(qǐng)求信息。
[0067]判斷單元42,具體還可以用于獲取所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào);判斷所述第一存儲(chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),是否與所述第二IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)相同;若不同,則確定所述第二 IO請(qǐng)求信息被釋放。
[0068]需要說(shuō)明的是,本發(fā)明實(shí)施例提供的裝置所涉及各功能單元的其他對(duì)應(yīng)描述可以參考圖2中的相應(yīng)描述,在此不再贅述。
[0069]本發(fā)明實(shí)施例提供的另一種IO請(qǐng)求的處理裝置,首先接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。與目前將接收到的IO請(qǐng)求消息只存放在訪問(wèn)速度較快的隨機(jī)存儲(chǔ)器(RAM,Random AccessMemory)中相比,本發(fā)明實(shí)施例通過(guò)同時(shí)使用RAM和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR,Double Data Rate)兩塊存儲(chǔ)空間處理IO請(qǐng)求信息,可以提高SSD對(duì)IO請(qǐng)求的處理效率,減少系統(tǒng)資源的浪費(fèi)。
[0070]再進(jìn)一步地,本發(fā)明實(shí)施例提供一種SSD,如圖5所示,所述SSD包括:控制器51。
[0071]控制器51,可以用于接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息,然后判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息,最后將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
[0072]控制器51,具體可以用于判斷所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)是否為初始值,若所述序號(hào)不為初始值,則確定所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息。
[0073]控制器51,具體還可以用于根據(jù)所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中。
[0074]控制器51,還可以用于接收所述第二 IO請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息,判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放,若所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息被釋放,則從所述第二存儲(chǔ)結(jié)構(gòu)體中讀取所述第二 IO請(qǐng)求信息。[0075]控制器51,具體還可以用于獲取所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào);判斷所述第一存儲(chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),是否與所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)相同;若不同,則確定所述第二 IO請(qǐng)求信息被釋放。
[0076]本發(fā)明實(shí)施例提供的IO請(qǐng)求的處理裝置可以實(shí)現(xiàn)上述提供的方法實(shí)施例,具體功能實(shí)現(xiàn)請(qǐng)參見(jiàn)方法實(shí)施例中的說(shuō)明,在此不再贅述。本發(fā)明實(shí)施例提供的IO請(qǐng)求的處理方法及裝置可以適用于信息【技術(shù)領(lǐng)域】,但不僅限于此。
[0077]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指定相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0078]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種IO請(qǐng)求的處理方法,其特征在于,包括: 接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息; 判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息; 若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息; 將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
2.根據(jù)權(quán)利要求1所述的IO請(qǐng)求的處理方法,其特征在于,判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息包括: 判斷所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)是否為初始值; 若所述序號(hào)不為初始值,則確定所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息。
3.根據(jù)權(quán)利要求2所述的IO請(qǐng)求的處理方法,其特征在于,所述將所述第二IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中包括: 根據(jù)所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的IO請(qǐng)求的處理方法,其特征在于,還包括: 接收所述第二 IO請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息; 判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放; 若所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息被釋放,則從所述第二存儲(chǔ)結(jié)構(gòu)體中讀取所述第二 IO請(qǐng)求信息。
5.根據(jù)權(quán)利要求4所述的IO請(qǐng)求的處理方法,其特征在于,所述判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放包括: 獲取所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào); 判斷所述第一存儲(chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),是否與所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào)相同; 若不同,則確定所述第二 IO請(qǐng)求信息被釋放。
6.一種IO請(qǐng)求的處理裝置,其特征在于,包括: 接收單元,用于接收主機(jī)發(fā)送的第一 IO請(qǐng)求信息; 判斷單元,用于判斷第一存儲(chǔ)結(jié)構(gòu)體中是否保存有第二 IO請(qǐng)求信息; 釋放單元,用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息,則釋放所述第二 IO請(qǐng)求信息; 保存單元,用于將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中,并且將所述第一 IO請(qǐng)求信息保存在所述第一存儲(chǔ)結(jié)構(gòu)體中。
7.根據(jù)權(quán)利要求6所述的IO請(qǐng)求的處理裝置,其特征在于, 所述判斷單元,具體用于判斷所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào)是否為初始值,若所述序號(hào)不為初始值,則確定所述第一存儲(chǔ)結(jié)構(gòu)體中保存有所述第二 IO請(qǐng)求信息。
8.根據(jù)權(quán)利要求7所述的IO請(qǐng)求的處理裝置,其特征在于, 所述保存單元,具體用于根據(jù)所述第一存儲(chǔ)結(jié)構(gòu)體中標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),將所述第二 IO請(qǐng)求信息保存在第二存儲(chǔ)結(jié)構(gòu)體中。
9.根據(jù)權(quán)利要求6-8所述的IO請(qǐng)求的處理裝置,其特征在于, 所述接收單元,還用于接收所述第二 IO請(qǐng)求信息對(duì)應(yīng)的響應(yīng)信息; 所述判斷單元,還用于判斷所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息是否被釋放; 所述裝置還包括: 讀取單元,用于若所述第一存儲(chǔ)結(jié)構(gòu)體中保存的所述第二 IO請(qǐng)求信息被釋放,則從所述第二存儲(chǔ)結(jié)構(gòu)體中讀取所述第二 IO請(qǐng)求信息。
10.根據(jù)權(quán)利要求9所述的IO請(qǐng)求的處理裝置,其特征在于, 所述判斷單元,具體還用于獲取所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序號(hào);判斷所述第一存儲(chǔ)結(jié)構(gòu)體中當(dāng)前標(biāo)識(shí)的所述第二存儲(chǔ)結(jié)構(gòu)體序號(hào),是否與所述第二 IO請(qǐng)求信息對(duì)應(yīng)的第二存儲(chǔ)結(jié)構(gòu)體序`號(hào)相同;若不同,則確定所述第二 IO請(qǐng)求信息被釋放。
【文檔編號(hào)】G06F3/06GK103729145SQ201310703460
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】王震宇, 呂建濤, 陳建輝 申請(qǐng)人:華為技術(shù)有限公司