本發(fā)明涉及固態(tài)硬盤控制技術(shù),特別涉及一種提高固態(tài)硬盤混合讀寫性能的方法。
背景技術(shù):
固態(tài)硬盤ssd一般都嚴(yán)格按照主機(jī)下發(fā)的讀寫命令順序執(zhí)行,單個(gè)命令的執(zhí)行總時(shí)間有兩部分組成,ssd固件準(zhǔn)備buffer的時(shí)間t_sw,ssd硬件傳輸數(shù)據(jù)的時(shí)間t_hw。圖1是常規(guī)混合讀寫命令處理時(shí)間消耗示意圖;ssd中讀命令需要從nandflash讀出數(shù)據(jù),所以buffer準(zhǔn)備的時(shí)間t_sw_read較長(zhǎng),寫命令由于cache的存在,buffer準(zhǔn)備的時(shí)間t_sw_write較短。t_hw由命令的數(shù)據(jù)量決定,本專利中假設(shè)所有命令的數(shù)據(jù)量相等且數(shù)據(jù)間沒有相關(guān)性。三個(gè)時(shí)間的大小關(guān)系為t_sw_read>t_hw>t_sw_write。而且固件與硬件是并行工作的,即硬件在傳輸數(shù)據(jù)的時(shí)候,固件可以準(zhǔn)備其他命令的buffer。現(xiàn)假定主機(jī)下發(fā)四個(gè)命令read0,write1,read2,write3,數(shù)字表示時(shí)間順序,這四個(gè)讀寫命令的總耗時(shí)由ssd固件的策略決定,現(xiàn)有技術(shù)為嚴(yán)格按照主機(jī)下發(fā)的命令順序執(zhí)行,總時(shí)間=2*t_sw_read+t_sw_write+2*t_hw。對(duì)于大多數(shù)的應(yīng)用并不關(guān)心具體某一次的讀或?qū)懙臅r(shí)間,而更關(guān)心一個(gè)組群讀寫操作總的執(zhí)行時(shí)間。因此如果機(jī)械的按照主機(jī)下發(fā)的讀寫命令順序執(zhí)行,則存在一個(gè)組群讀寫操作總時(shí)間耗時(shí)較大的問題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)以上缺陷,本發(fā)明目的在于如何降低存在大量混合讀寫操作時(shí)總的響應(yīng)時(shí)間。
為了解決以上問題本發(fā)明提出了一種提高固態(tài)硬盤混合讀寫性能的方法,其特征在于固態(tài)硬盤中增加命令重排序模塊,命令重排序模塊將時(shí)間間隔低于預(yù)先設(shè)定值的多個(gè)讀命令和寫命令進(jìn)行緩存,并設(shè)置為同一命令組群,將同一命令組群的命令重新排序,先執(zhí)行命令組群的寫命令,再執(zhí)行命令組群的讀命令。
所述的提高固態(tài)硬盤混合讀寫性能的方法,其特征在于混合讀寫觸發(fā)模塊,所述混合讀寫觸發(fā)模塊接收主機(jī)下發(fā)的命令,當(dāng)單位時(shí)間內(nèi)接收到的命令數(shù)超過預(yù)先設(shè)定的閥值且同時(shí)包含讀命令和寫命令,則觸發(fā)命令重排序模塊,否則按照主機(jī)下發(fā)命令的順序執(zhí)行。
本發(fā)明通過簡(jiǎn)單的在固態(tài)硬盤中增加命令重排序模塊,重新調(diào)整命令執(zhí)行的順序,即可實(shí)現(xiàn)整體上減少同一命令組群的的執(zhí)行時(shí)間,達(dá)到提升混合讀寫命令性能的效果。
附圖說明
圖1是常規(guī)混合讀寫命令處理時(shí)間消耗示意圖;
圖2是改進(jìn)后混合讀寫命令處理時(shí)間消耗示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖2是改進(jìn)后混合讀寫命令處理時(shí)間消耗示意圖,同樣假定現(xiàn)假定主機(jī)下發(fā)四個(gè)命令read0,write1,read2,write3,命令重排序模塊將這4個(gè)命令進(jìn)行緩存,同時(shí)這4個(gè)命令的時(shí)間間隔小于預(yù)先設(shè)置的時(shí)間,因此將這4個(gè)命令設(shè)置為同一個(gè)命令組群,將同一命令組群的命令重新排序,先執(zhí)行命令組群的寫命令,再執(zhí)行命令組群的讀命令。重排序后的命令執(zhí)行序列為write1,write3,read0,read2,按新排序的四個(gè)命令順序執(zhí)行,4個(gè)命令最后執(zhí)行的總耗時(shí)=2*t_sw_read+2*t_sw_write+t_hw;嚴(yán)格按照主機(jī)下發(fā)的命令順序執(zhí)行,總時(shí)間=2*t_sw_read+t_sw_write+2*t_hw。因此相比現(xiàn)有技術(shù)總時(shí)間減少了(t_hw-t_sw_write)。因此通過對(duì)主機(jī)下發(fā)的混合讀寫命令進(jìn)行重排序,可有效的提升混合讀寫命令的性能。
以上所揭露的僅為本發(fā)明一種實(shí)施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。