1.一種IO調(diào)度方法,其特征在于,包括:
緩存中,將IO請(qǐng)求形成IO調(diào)度隊(duì)列;
判斷IO請(qǐng)求的待操作固態(tài)硬盤的物理地址是否在地址映射表中:若是,進(jìn)行下一步;否,將IO請(qǐng)求放回IO調(diào)度隊(duì)列;
判斷IO請(qǐng)求的待操作固態(tài)硬盤是否正在進(jìn)行垃圾回收操作:若是,將IO請(qǐng)求放回IO調(diào)度隊(duì)列;否,將IO請(qǐng)求進(jìn)行IO操作。
2.據(jù)權(quán)利要求1所述的IO調(diào)度方法,其特征在于,通過IO調(diào)度將IO請(qǐng)求形成IO調(diào)度隊(duì)列之前,還包括:
記錄IO請(qǐng)求進(jìn)入IO調(diào)度隊(duì)列的時(shí)間,進(jìn)入時(shí)間達(dá)到預(yù)設(shè)值的IO請(qǐng)求將被強(qiáng)制進(jìn)行IO操作。
3.根據(jù)權(quán)利要求1所述的IO調(diào)度方法,其特征在于,通過IO調(diào)度將IO請(qǐng)求形成IO調(diào)度隊(duì)列,包括:
在緩存中,以預(yù)設(shè)值為單位組織IO請(qǐng)求;
將IO請(qǐng)求進(jìn)行IO調(diào)度;
將IO請(qǐng)求形成IO調(diào)度隊(duì)列。
4.根據(jù)權(quán)利要求1所述的IO調(diào)度方法,其特征在于,判斷IO請(qǐng)求的待操作固態(tài)硬盤的物理地址是否在地址映射表中之前,還包括:
在緩存中,建立固態(tài)硬盤的地址映射表。
5.根據(jù)權(quán)利要求1所述的IO調(diào)度方法,其特征在于,所述IO調(diào)度隊(duì)列包括有多個(gè)不同優(yōu)先級(jí)的子隊(duì)列,根據(jù)優(yōu)先級(jí)周期性地對(duì)IO調(diào)度隊(duì)列中的IO請(qǐng)求進(jìn)行IO操作。
6.根據(jù)權(quán)利要求5所述的IO調(diào)度方法,其特征在于,還包括:判斷IO請(qǐng)求的待操作固態(tài)硬盤的物理地址是否在地址映射表中,若否,則將該IO請(qǐng)求的待操作固態(tài)硬盤的物理地址存入臨時(shí)地址映射表,每個(gè)周期后,將臨時(shí)地址映射表并入地址映射表。
7.一種IO調(diào)度裝置,其特征在于,包括:
應(yīng)用模塊,用于組織IO請(qǐng)求,并將IO請(qǐng)求發(fā)送給IO調(diào)度模塊;
地址映射表創(chuàng)建模塊,用于在緩存中建立固態(tài)硬盤的地址映射表;
IO調(diào)度模塊,用于接收IO請(qǐng)求,將IO請(qǐng)求加入到IO調(diào)度隊(duì)列中,調(diào)度隊(duì)列包括多個(gè)不同優(yōu)先級(jí)的子隊(duì)列;
IO操作模塊,用于根據(jù)IO調(diào)度隊(duì)列的優(yōu)先級(jí),選擇IO請(qǐng)求并下發(fā)到固態(tài)硬盤進(jìn)行處理;
第一判斷模塊,用于判斷IO請(qǐng)求的待操作固態(tài)硬盤的物理地址的是否在地址映射表中;
第二判斷模塊,判斷IO請(qǐng)求的待操作固態(tài)硬盤是否正在進(jìn)行垃圾回收操作。
8.根據(jù)權(quán)利要求7所述的IO調(diào)度裝置,其特征在于,還包括:
時(shí)間檢測(cè)模塊,用于記錄IO請(qǐng)求進(jìn)入IO調(diào)度隊(duì)列的時(shí)間。
9.根據(jù)權(quán)利要求7所述的IO調(diào)度裝置,其特征在于,還包括:
輪詢模塊,用于根據(jù)子隊(duì)列的優(yōu)先級(jí)對(duì)IO調(diào)度隊(duì)列進(jìn)行周期性操作。
10.根據(jù)權(quán)利要求9所述的IO調(diào)度裝置,其特征在于,還包括:臨時(shí)地址映射表創(chuàng)建模塊,用于創(chuàng)建臨時(shí)地址映射表,所述臨時(shí)地址映射表用于暫存未被操作的IO請(qǐng)求的待操作固態(tài)硬盤的物理地址,每個(gè)輪詢周期后,將臨時(shí)地址映射表并入地址映射表。