两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

改進(jìn)硬盤驅(qū)動(dòng)器效率的技術(shù)的制作方法

文檔序號(hào):6614118閱讀:218來源:國知局
專利名稱:改進(jìn)硬盤驅(qū)動(dòng)器效率的技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及盤驅(qū)動(dòng)器,并且更具體地,涉及用于改進(jìn)^5更盤驅(qū)動(dòng)器的效率 的技術(shù)。
背景技術(shù)
當(dāng)主機(jī)操作系統(tǒng)向存儲(chǔ)裝置發(fā)送讀或?qū)懻?qǐng)求時(shí),操作系統(tǒng)(OS)內(nèi)的請(qǐng)求
任務(wù)阻塞,直到完成請(qǐng)求為止。在桌面環(huán)境中, 一般在請(qǐng)求操作期間存在其 他可執(zhí)行的任務(wù)。
然而,嵌入式裝置一般每次僅執(zhí)行一個(gè)功能。在具有集成驅(qū)動(dòng)存儲(chǔ)器的
嵌入式裝置中,運(yùn)行主機(jī)OS的處理器在盤驅(qū)動(dòng)器操作期間是空閑的。相反地,
盤驅(qū)動(dòng)器控制器處理器也具有明顯的空閑時(shí)段。
大多數(shù)盤驅(qū)動(dòng)器控制器處理器設(shè)計(jì)對(duì)于總體帶寬的壓力響應(yīng)時(shí)間。根據(jù) 標(biāo)準(zhǔn)設(shè)計(jì)準(zhǔn)則,更多的重點(diǎn)放在使盤驅(qū)動(dòng)器控制器處理器一旦接收到命令就 迅速完成其處理上。例如,標(biāo)準(zhǔn)設(shè)計(jì)準(zhǔn)則將更多的重要性放在啟動(dòng)盤驅(qū)動(dòng)器 中的致動(dòng)器的移動(dòng)上,而不是放在一段時(shí)間上可完成的處理的總量最大化上。 結(jié)果,盤驅(qū)動(dòng)器控制器處理器具有大量的沒有使用的處理器帶寬。
在一般的嵌入式裝置的環(huán)境下,當(dāng)主機(jī)OS處理器操作時(shí)和當(dāng)盤驅(qū)動(dòng)器控
制器操作時(shí),其之間很少有重疊。因而,將期望增加主機(jī)os和盤驅(qū)動(dòng)器控制 器之間的數(shù)據(jù)傳輸?shù)男剩蕴峁┏杀竞托阅軆?yōu)勢。
在經(jīng)由塊地址存取數(shù)據(jù)的存儲(chǔ)裝置中,存儲(chǔ)裝置不具有任何給定的讀/ 寫存取的性質(zhì)的知識(shí)。從存儲(chǔ)裝置的角度來看,所有存取是平等創(chuàng)建的。視 頻和音頻的實(shí)時(shí)性質(zhì)需要具有很低的抖動(dòng)的穩(wěn)定數(shù)據(jù)速率。
在許多這樣的系統(tǒng)中,同時(shí)發(fā)生對(duì)存儲(chǔ)裝置的其他存取。例如,在用戶 瀏覽頻道向?qū)У耐瑫r(shí),機(jī)頂盒可以播放影片。影片的要求是實(shí)時(shí)的,而頻道 向?qū)Р皇恰S捎诖鎯?chǔ)裝置不注意這些要求,所以必須將系統(tǒng)設(shè)計(jì)為圍繞這一 限制來工作,常常導(dǎo)致額外的系統(tǒng)成本或較低水平的性能。
已經(jīng)做出的解決此限制的嘗試未能在市場中使用,因?yàn)橄虼鎯?chǔ)裝置增加
了大量成本,或者用于系統(tǒng)/存儲(chǔ)裝置通信的協(xié)議要求對(duì)標(biāo)準(zhǔn)的大量改變。
因而,將期望提供用于使盤驅(qū)動(dòng)器存儲(chǔ)裝置提供多個(gè)音頻和/或視頻流 的、而無需大量的額外成本或?qū)ο到y(tǒng)或存儲(chǔ)裝置通信協(xié)議的大量改變的技術(shù)。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一些實(shí)施例,主機(jī)操作系統(tǒng)(OS)作為盤驅(qū)動(dòng)器操作系統(tǒng)下 的任務(wù)運(yùn)行。根據(jù)其他實(shí)施例,可在單個(gè)處理器上運(yùn)行主機(jī)OS和盤驅(qū)動(dòng)器操 作系統(tǒng)。處理器能夠保持盤驅(qū)動(dòng)器控制器的實(shí)時(shí)響應(yīng)特性。本發(fā)明在主機(jī)0S
和盤驅(qū)動(dòng)器之間提供了唯一接口,其最小化對(duì)主機(jī)os的改變。本發(fā)明的其他
實(shí)施例提供了可由兩個(gè)操作系統(tǒng)存取的共享存儲(chǔ)器子系統(tǒng)。
根據(jù)本發(fā)明的其他實(shí)施例,盤驅(qū)動(dòng)器存儲(chǔ)裝置可以存取和響應(yīng)與主機(jī)操
作系統(tǒng)(OS)保持的底層文件系統(tǒng)有關(guān)的元數(shù)據(jù),以優(yōu)化盤驅(qū)動(dòng)器和主機(jī)OS之
間的數(shù)據(jù)傳輸。盤驅(qū)動(dòng)器可以識(shí)別讀和寫存取的性質(zhì),允許其優(yōu)先排序和性 能優(yōu)化這些存取。盤驅(qū)動(dòng)器可以執(zhí)行這些功能而無需對(duì)塊接口的任何改變。
結(jié)果,本發(fā)明的盤驅(qū)動(dòng)器可以作為現(xiàn)有系統(tǒng)中的活動(dòng)(drop-in)替換物。
考慮以下詳細(xì)描述和附圖,本發(fā)明的其他目標(biāo)、特征和優(yōu)點(diǎn)將變得明顯。


圖1圖解了根據(jù)本發(fā)明實(shí)施例的、具有運(yùn)行用于盤驅(qū)動(dòng)器和主機(jī)操作系 統(tǒng)的實(shí)時(shí)搡作系統(tǒng)的處理器的嵌入式裝置的框圖。
圖2是圖解根據(jù)本發(fā)明實(shí)施例的、對(duì)由實(shí)時(shí)操作系統(tǒng)控制的盤驅(qū)動(dòng)器和 多個(gè)主機(jī)操作系統(tǒng)進(jìn)行任務(wù)切換的圖。
圖3是圖解根據(jù)本發(fā)明實(shí)施例的、處理器上的執(zhí)行序列的示例的時(shí)序圖。
圖4是圖解根據(jù)本發(fā)明實(shí)施例的、用于通過實(shí)時(shí)操作系統(tǒng)切換任務(wù)的處 理的流程圖。
圖5是圖解根據(jù)本發(fā)明實(shí)施例的、用于設(shè)置實(shí)時(shí)操作系統(tǒng)中的虛擬中斷 以模擬主機(jī)操作系統(tǒng)中的中斷的處理的流程圖。
圖6圖解了根據(jù)本發(fā)明實(shí)施例的、具有重定位的中斷禁止位的ARM處理 器狀態(tài)寄存器的示例。
圖7圖解了根據(jù)本發(fā)明實(shí)施例的、使用文件元數(shù)據(jù)來將主機(jī)OS命令翻譯
成優(yōu)化命令的盤驅(qū)動(dòng)器的示例。
具體實(shí)施例方式
作為盤驅(qū)動(dòng)器(OS)下的任務(wù)進(jìn)行實(shí)現(xiàn)的主機(jī)搡作系統(tǒng)(OS)
通常,計(jì)算系統(tǒng)包括主機(jī)操作系統(tǒng)(OS)和用于盤驅(qū)動(dòng)器的盤驅(qū)動(dòng)器操作 系統(tǒng)。主機(jī)OS向盤驅(qū)動(dòng)器操作系統(tǒng)發(fā)出對(duì)邏輯塊地址(LBA)的請(qǐng)求,以向/ 從》茲硬盤讀和/或?qū)憯?shù)據(jù)。來自主機(jī)OS的請(qǐng)求在此也被稱為讀/寫請(qǐng)求或LBA 請(qǐng)求。盤驅(qū)動(dòng)器操作系統(tǒng)將讀/寫請(qǐng)求轉(zhuǎn)換為讀/命令,其可被執(zhí)行來使用盤 驅(qū)動(dòng)器的機(jī)械部分(例如,致動(dòng)器臂和讀/寫頭)從盤讀取和寫入數(shù)據(jù)。
可通過在主機(jī)OS下實(shí)現(xiàn)盤驅(qū)動(dòng)器操作,來組合盤驅(qū)動(dòng)器操作系統(tǒng)和主機(jī) 操作系統(tǒng)(OS)的功能。假設(shè)主機(jī)OS不是實(shí)時(shí)操作系統(tǒng)(RTOS),則此方法會(huì)導(dǎo) 致盤驅(qū)動(dòng)器功能的響應(yīng)時(shí)間的不確定特性。所導(dǎo)致的行為會(huì)降低驅(qū)動(dòng)器性能, 并且可能導(dǎo)致在相同處理器上完成伺服控制的環(huán)境中的不穩(wěn)定性。
相反,本發(fā)明的實(shí)施例向主機(jī)OS提供偽虛擬機(jī),作為盤驅(qū)動(dòng)器操作系統(tǒng) 中的任務(wù)。主機(jī)OS任務(wù)以低于系統(tǒng)中的實(shí)時(shí)任務(wù)的優(yōu)先級(jí)來運(yùn)行。 一般響應(yīng) 于處理器中斷,此技術(shù)允許在準(zhǔn)備運(yùn)行更高優(yōu)先級(jí)的任務(wù)時(shí)中斷主機(jī)OS。顛 倒了主機(jī)OS和盤驅(qū)動(dòng)器操作系統(tǒng)的傳統(tǒng)角色(其中,主機(jī)OS是主控制器)。 本發(fā)明的主機(jī)OS可執(zhí)行所有主機(jī)功能,包括例如,向盤驅(qū)動(dòng)器操作系統(tǒng)發(fā) 出讀和寫請(qǐng)求、執(zhí)行用戶接口功能、管理用戶軟件應(yīng)用和硬件的交互、控制 和分配存儲(chǔ)器、按優(yōu)先級(jí)排列指令的處理、控制輸入和輸出裝置、促進(jìn)聯(lián)網(wǎng)、 以及管理文件。
本發(fā)明允許多個(gè)主機(jī)操作系統(tǒng)在盤驅(qū)動(dòng)器操作系統(tǒng)下運(yùn)行,這對(duì)于安全 應(yīng)用可具有顯著的優(yōu)點(diǎn)。盤驅(qū)動(dòng)器操作系統(tǒng)和主機(jī)OS可在共享處理器上運(yùn) 行,或在分離的處理器上運(yùn)行。
在此,主要以用于嵌入式裝置中的盤驅(qū)動(dòng)器的實(shí)時(shí)操作系統(tǒng)(RTOS)的上 下文來描述盤驅(qū)動(dòng)器操作系統(tǒng)。然而,應(yīng)理解,本發(fā)明的原理可應(yīng)用于除了 實(shí)時(shí)操作系統(tǒng)之外的盤驅(qū)動(dòng)器操作系統(tǒng)。
根據(jù)本發(fā)明的一些實(shí)施例,用于盤驅(qū)動(dòng)器的實(shí)時(shí)操作系統(tǒng)(RTOS)和主機(jī) 操作系統(tǒng)(OS)共享計(jì)算系統(tǒng)中的處理器(例如,微處理器或中央處理單元), 以增加兩個(gè)操作系統(tǒng)之間的數(shù)據(jù)傳輸?shù)男?。圖1圖解了根據(jù)本發(fā)明的特定 實(shí)施例的、包含共享處理器的嵌入式裝置的示例。
圖1的嵌入式裝置包括處理器101、 ^磁硬盤104、致動(dòng)器臂111、讀/寫 頭110、高速緩沖存儲(chǔ)器105、以及一個(gè)或多個(gè)諸如鍵盤之類的輸入/輸出裝 置106。處理器101運(yùn)行用于盤驅(qū)動(dòng)器的實(shí)時(shí)操作系統(tǒng)(RT0S) 102和主機(jī)操作 系統(tǒng)(0S)103。實(shí)時(shí)操作系統(tǒng)102實(shí)現(xiàn)盤驅(qū)動(dòng)器控制器的功能,包括從和向盤 104讀和寫數(shù)據(jù)。主機(jī)0S 103實(shí)現(xiàn)嵌入式裝置的其他功能。例如,主機(jī)OS 可以是Linux、 Windows CE、 Mac OS X等。主機(jī)OS 103與輸入/輸出裝置106 接口,并且處理器101與高速緩沖存儲(chǔ)器105進(jìn)行通信。
圖2圖解了根據(jù)本發(fā)明實(shí)施例的、由實(shí)時(shí)操作系統(tǒng)控制的盤驅(qū)動(dòng)器和一 個(gè)或多個(gè)主機(jī)操作系統(tǒng)的任務(wù)切換。實(shí)時(shí)操作系統(tǒng)(RTOS)201控制處理器中 的任務(wù)切換。RTOS 201可在用于對(duì)一個(gè)或多個(gè)盤讀和寫數(shù)據(jù)的各種盤驅(qū)動(dòng)器 任務(wù)例程之間進(jìn)行切換,包括隊(duì)列202、驅(qū)動(dòng)側(cè)(side) 203、執(zhí)行204、以及 由框205代表的其他盤驅(qū)動(dòng)器任務(wù)。RTOS 201也可以在盤驅(qū)動(dòng)器任務(wù)和實(shí)現(xiàn) 一個(gè)或多個(gè)主機(jī)操作系統(tǒng)的一個(gè)或多個(gè)較低優(yōu)先級(jí)任務(wù)之間切換。
RTOS 201可在實(shí)現(xiàn)多個(gè)主機(jī)操作系統(tǒng)(如主機(jī)OS 206、主機(jī)OS 207、 以及其他主機(jī)操作系統(tǒng)208等)的任務(wù)之間切換。從主機(jī)OS的角度來看,主 機(jī)OS仍然具有目標(biāo)處理器的完全擁有權(quán)。RTOS負(fù)責(zé)主機(jī)OS的任務(wù)切換,以 維持主機(jī)OS對(duì)目標(biāo)處理器的控制的角度。
圖3是圖解根據(jù)本發(fā)明實(shí)施例的、RTOS如何切換共享處理器對(duì)主機(jī)OS 和盤驅(qū)動(dòng)器執(zhí)行的任務(wù)的、處理器上的執(zhí)行序列的示例。在圖3中,共享處 理器執(zhí)行主機(jī)OS的子任務(wù)#1。子任務(wù)#1是主機(jī)OS的子任務(wù)。當(dāng)RTOS發(fā)出 讀命令時(shí),RTOS使得處理器將任務(wù)從主機(jī)OS切換到盤驅(qū)動(dòng)器。在盤驅(qū)動(dòng)器 時(shí)間期間,處理器執(zhí)行在盤上啟動(dòng)所請(qǐng)求數(shù)據(jù)的搜尋所需的任務(wù)。
當(dāng)正在執(zhí)行搜尋序列時(shí),RTOS使得處理器將任務(wù)從盤驅(qū)動(dòng)器任務(wù)切換到 主機(jī)OS,以執(zhí)行子任務(wù)#2。處理器繼續(xù)處理主機(jī)OS的子任務(wù)#2,直到搜尋 序列完成為止。接著,RTOS使得處理器將任務(wù)從主機(jī)OS子任務(wù)#2切換到盤 驅(qū)動(dòng)器任務(wù)。在盤驅(qū)動(dòng)器時(shí)間期間,處理器執(zhí)行完成讀序列所需的任務(wù)。接 著,RTOS使得處理器將任務(wù)從盤驅(qū)動(dòng)器任務(wù)切換回主機(jī)OS子任務(wù)#1。主機(jī) OS子任務(wù)#1和#2是單個(gè)主機(jī)OS的子任務(wù)。
圖3圖解了 RTOS可使得共享處理器暫停主機(jī)OS子任務(wù)以執(zhí)行用于讀命 令的任務(wù)。類似地,RTOS可使得共享處理器暫停主機(jī)OS子任務(wù)以執(zhí)行用于 寫命令的任務(wù)。圖3還圖解了 RTOS可使得共享處理器執(zhí)行主機(jī)OS子任務(wù), 同時(shí)盤驅(qū)動(dòng)器執(zhí)行搜尋操作以在盤上讀(或?qū)?數(shù)據(jù),由此增加處理器效率。
盤驅(qū)動(dòng)器RTOS負(fù)責(zé)任務(wù)切換主機(jī)OS,以及模擬主機(jī)OS中的中斷。從主 機(jī)OS的角度來看,這些責(zé)任便利了由主機(jī)OS完全擁有的共享處理器。圖4 圖解了根據(jù)本發(fā)明實(shí)施例的、盤驅(qū)動(dòng)器RTOS可用來模擬存儲(chǔ)器中的虛擬中斷 區(qū)域的任務(wù)切換處理的示例。
在條件步驟401中,當(dāng)前沒有任務(wù)在運(yùn)行。在步驟401期間,RTOS判定 運(yùn)行主機(jī)OS的任務(wù)是否應(yīng)運(yùn)行?;谑欠翊嬖谛枰赗TOS中執(zhí)行的任何更 高優(yōu)先級(jí)的任務(wù)來進(jìn)行此判定。如果RTOS不執(zhí)行運(yùn)行主機(jī)OS的任務(wù),則在 步驟409, RTOS切換到另一任務(wù)。如果RTOS判定要執(zhí)行運(yùn)行主機(jī)OS的任務(wù), 則在條件步驟402, RTOS確定來自主機(jī)OS的中斷是否待處理(例如,在存儲(chǔ) 器中的虛擬中斷區(qū)域中)。如果主機(jī)中斷不是待處理,則在步驟409, RTOS切 換到另一任務(wù)。
如果主機(jī)OS中斷待處理,則在條件步驟403, RTOS確定在主機(jī)OS中是 否激活中斷。如果未激活主機(jī)OS中斷,則在步驟409, RTOS切換到另一任務(wù)。 如果激活了主機(jī)OS中斷,則RTOS前進(jìn)以在步驟404中設(shè)置模擬主機(jī)OS中的 中斷的虛擬硬件。根據(jù)本發(fā)明的實(shí)施例,驅(qū)動(dòng)器控制器RTOS可通過在步驟 405切換到目標(biāo)處理器模式來模擬主機(jī)OS中的中斷。目標(biāo)處理器模式是處理 器的操作模式。
然后,在步驟406, RTOS為中斷返回進(jìn)行設(shè)置。步驟406中為中斷返回 的設(shè)置包括修改與在步驟405切換到的目標(biāo)處理器模式相關(guān)聯(lián)的寄存器,使 得利用包含適當(dāng)數(shù)據(jù)的工作寄存器來在正確的指令處開始執(zhí)行。
接著,在步驟407, RTOS切換回中斷模式。中斷模式是指以中斷處理模 式之一進(jìn)行的執(zhí)行。ARM上的中斷模式的處理器專用示例包括IRQ和FIQ。為 了例示而提供中斷模式的這些示例,而非旨在限制本實(shí)施例的范圍。
然后,在步驟408, RTOS修改主機(jī)OS任務(wù)的上下文區(qū)域中的程序計(jì)數(shù)器, 以反映所^t擬的中斷的中斷句柄代碼(handl ing code)的開始。在設(shè)置了虛擬 硬件之后,在步驟409,主機(jī)OS切換到主機(jī)OS任務(wù)。
圖5圖解了根據(jù)本發(fā)明實(shí)施例的、用于在RT0S中設(shè)置虛擬中斷以模擬主 機(jī)OS中斷的機(jī)制的示例。從條件步驟501開始,RT0S確定是否存在待處理 的中斷。如果不存在待處理的中斷,則代碼塊結(jié)束。如果RTOS檢測到存在待 處理的中斷,則在條件步驟502, RT0S確定是否有任何中斷處理正在進(jìn)行。 如果中斷處理正在進(jìn)行,則代碼塊結(jié)束。如果不存在正在進(jìn)行的中斷處理,
則在步驟503, RTOS確定最高優(yōu)先級(jí)中斷。然后,RTOS在步驟504清空本地 中斷,在步驟505設(shè)置主機(jī)OS中斷,并且在步驟506將中斷進(jìn)行標(biāo)志設(shè)置為 真。
圖6圖解了具有重定位的中斷禁止位的ARM處理器狀態(tài)寄存器。如果允 許主機(jī)OS禁止處理器的實(shí)際中斷,則其可以阻止更高優(yōu)先級(jí)的任務(wù)控制處理 器。根據(jù)本發(fā)明的實(shí)施例,RTOS可利用此寄存器來模擬主機(jī)OS激活和禁止 處理器中的中斷的能力??赏ㄟ^將用于主機(jī)OS中的中斷的位置6和7中的位 分別移動(dòng)到程序狀態(tài)寄存器的未使用部分位置8和9,然后清空位置6和7 中的位,來實(shí)現(xiàn)此功能性。圖6所示的圖示特定于ARM處理器的狀態(tài)寄存器, 但可根據(jù)所用的具體處理器架構(gòu)而改變。
當(dāng)RTOS和主機(jī)操作系統(tǒng)都在相同的處理器上執(zhí)行時(shí),它們都具有對(duì)所有 相同的外設(shè)和存儲(chǔ)器的存取。此共享的存取提供了額外的成本節(jié)省,因?yàn)檩^ 大的組合存儲(chǔ)器由于包裝以及PCB不動(dòng)產(chǎn)成本而比多個(gè)較小的存儲(chǔ)器更便 宜。
在傳統(tǒng)的雙處理器系統(tǒng)中,主機(jī)os通過驅(qū)動(dòng)器接口發(fā)送讀和寫請(qǐng)求。本 發(fā)明使用信箱系統(tǒng)來提供更快的、更有效的機(jī)制。從主機(jī)os的視角來看,如
同任何普通的驅(qū)動(dòng)器那樣地存取盤驅(qū)動(dòng)器。系統(tǒng)中的唯一變化是定制的裝置
驅(qū)動(dòng)器。定制的裝置驅(qū)動(dòng)器調(diào)用對(duì)RTOS的系統(tǒng)調(diào)用,以向盤驅(qū)動(dòng)器固件發(fā)送 讀或?qū)懻?qǐng)求。除了數(shù)據(jù)傳輸之外,所接收到的請(qǐng)求作為正常請(qǐng)求由盤驅(qū)動(dòng)器 固件處理。盤驅(qū)動(dòng)器固件向緩沖器傳遞指針,其中盤驅(qū)動(dòng)器固件根據(jù)命令類 型向或從該緩沖器寫入或讀取數(shù)據(jù)。定制的裝置驅(qū)動(dòng)器可使用指針來從或向 該緩沖器讀或?qū)憯?shù)據(jù),以向和從主機(jī)OS傳輸數(shù)據(jù)。此處理消除了正常會(huì)在驅(qū) 動(dòng)器接口上發(fā)生的數(shù)據(jù)傳輸,大大改善了性能。作為系統(tǒng)調(diào)用的一部分,將 請(qǐng)求置于驅(qū)動(dòng)器的接收隊(duì)列中。
盤驅(qū)動(dòng)器存取和響應(yīng)與底層文件系統(tǒng)有關(guān)的元數(shù)據(jù)
操作系統(tǒng)一般將數(shù)據(jù)組織為邏輯文件系統(tǒng)。當(dāng)將這些文件寫到盤上時(shí), 將描述文件的元數(shù)據(jù)與數(shù)據(jù)一起存儲(chǔ)在盤上。例如,文件元數(shù)據(jù)可包括文 件大小、文件類型、文件許可、以及上次存取時(shí)間。
根據(jù)本發(fā)明的另 一實(shí)施例,盤驅(qū)動(dòng)器可存取描述在盤上存儲(chǔ)的用戶數(shù)據(jù) 的文件元數(shù)據(jù)。盤驅(qū)動(dòng)器可使用該文件元數(shù)據(jù)來實(shí)現(xiàn)來自主機(jī)操作系統(tǒng)的讀 和寫請(qǐng)求的優(yōu)化。盤驅(qū)動(dòng)器不限于使用關(guān)于數(shù)據(jù)的邏輯塊地址(LBA)信息。文
件元數(shù)據(jù)可向盤驅(qū)動(dòng)器提供比單獨(dú)由LBA提供的更多的關(guān)于用戶數(shù)據(jù)的知識(shí)。
本發(fā)明允許盤驅(qū)動(dòng)器使用文件元數(shù)據(jù)來在文件系統(tǒng)層上實(shí)現(xiàn)性能和優(yōu)先
排序的優(yōu)化。例如,可通過標(biāo)準(zhǔn)塊接口、或通過運(yùn)行主機(jī)OS和盤驅(qū)動(dòng)器OS 的帶有或不帶有共享存儲(chǔ)器區(qū)域的共享處理器,來提供優(yōu)化。
本發(fā)明的此實(shí)施例利用加密文件進(jìn)行工作。盤驅(qū)動(dòng)器裝置不需要將數(shù)據(jù) 解密為功能。
根據(jù)本發(fā)明的此實(shí)施例的系統(tǒng)可通過使得存儲(chǔ)裝置的固件安裝駐留在用 于只讀存取的盤上的文件系統(tǒng)來實(shí)現(xiàn)。可通過為每個(gè)文件系統(tǒng)寫入定制碼, 或通過在盤驅(qū)動(dòng)器控制器上運(yùn)行主機(jī)OS處理(如Linux的版本),而實(shí)現(xiàn)此 實(shí)施例。
通常為主機(jī)OS保留安裝文件系統(tǒng)的能力。本發(fā)明的此實(shí)施例允許盤驅(qū)動(dòng) 器安裝駐留在硬盤上的文件系統(tǒng),用于內(nèi)部緩沖器優(yōu)化、旋轉(zhuǎn)位置優(yōu)化(RPO)、 以及其他優(yōu)化。例如,關(guān)于例如在其中可預(yù)期有許多并行的讀/寫流的服務(wù)器 環(huán)境或家庭影院個(gè)人計(jì)算機(jī)(HTPC)中做出的請(qǐng)求,得知文件系統(tǒng)元數(shù)據(jù)的盤 驅(qū)動(dòng)器可最有效地利用硬件??捎杀景l(fā)明的優(yōu)秀的數(shù)據(jù)傳輸特性來更好地服 務(wù)這兩種環(huán)境。
操作的幾種模式可允許來自主機(jī)OS的LBA讀/寫請(qǐng)求的優(yōu)化,如請(qǐng)求的 優(yōu)先排序。當(dāng)主機(jī)OS發(fā)送對(duì)要從盤讀取或向硬盤寫入的數(shù)據(jù)的請(qǐng)求時(shí),盤驅(qū) 動(dòng)器將用于該讀/寫請(qǐng)求的LBA翻譯成文件目的地。解釋文件元數(shù)據(jù),并設(shè)計(jì) 適當(dāng)?shù)膬?yōu)化。例如,盤驅(qū)動(dòng)器可確定何時(shí)以及如何提前讀取盤上存儲(chǔ)的數(shù)據(jù), 以利用旋轉(zhuǎn)位置優(yōu)化(RP0)和文件系統(tǒng)元數(shù)據(jù)來服務(wù)于后續(xù)請(qǐng)求。作為另 一示 例,盤驅(qū)動(dòng)器可利用文件系統(tǒng)元數(shù)據(jù)來對(duì)后續(xù)寫請(qǐng)求執(zhí)行寫命令。
文件系統(tǒng)元數(shù)據(jù)可包含盤驅(qū)動(dòng)器可用來優(yōu)先排序請(qǐng)求并選擇提前讀取或 提前寫入哪個(gè)后續(xù)請(qǐng)求的信息,如文件類型、文件大小、上次存取時(shí)間、以 及物理位置。例如,盤驅(qū)動(dòng)器可使用文件系統(tǒng)元數(shù)據(jù)來將視頻文件或音頻文 件的存取優(yōu)先排序在其他較低優(yōu)先級(jí)文件之上。文件系統(tǒng)元數(shù)據(jù)的這些示例 并非旨在限制可由盤驅(qū)動(dòng)器用來執(zhí)行優(yōu)化的文件系統(tǒng)元數(shù)據(jù)的類型。
根據(jù)另一實(shí)施例,可從文件名辨別由盤驅(qū)動(dòng)器執(zhí)行的適當(dāng)優(yōu)化。例如, 如果存取是讀,并且通過其文件名擴(kuò)展名或幻數(shù)(Magic number)而將文件識(shí)
別為視頻文件,則盤驅(qū)動(dòng)器可分配比正常情況更大的內(nèi)部緩沖器。 一旦分配
了緩沖器,則讀取開始,同時(shí)完成剩下的塊-文件翻譯。在此情況下,使用 LBA-文件翻譯來實(shí)現(xiàn)文件提前讀取。
當(dāng)正服務(wù)于讀請(qǐng)求時(shí),盤驅(qū)動(dòng)器可利用文件系統(tǒng)元數(shù)據(jù),選擇從與不同 讀請(qǐng)求對(duì)應(yīng)的盤中讀數(shù)據(jù)??赏ㄟ^讀/寫頭移動(dòng)跨越盤表面時(shí)的位置和旋轉(zhuǎn)效 率來實(shí)現(xiàn)服務(wù)于后續(xù)讀請(qǐng)求的能力,或通過對(duì)由文件類型指定的內(nèi)容的優(yōu)先 排序來實(shí)現(xiàn)它。本發(fā)明不限于前述優(yōu)化。
本發(fā)明的盤驅(qū)動(dòng)器具有提前讀(或提前寫)順序和非順序的邏輯塊地址 的能力。當(dāng)正服務(wù)于當(dāng)前請(qǐng)求時(shí),本發(fā)明的實(shí)施例可允許后續(xù)讀和寫請(qǐng)求以
帶來高速緩沖存儲(chǔ)器命中(cache hit ),這是因?yàn)轫憫?yīng)于后續(xù)讀/寫請(qǐng)求,盤 驅(qū)動(dòng)器已經(jīng)利用了文件系統(tǒng)元數(shù)據(jù)來讀和寫數(shù)據(jù),大大提高了性能。通過在 可用時(shí)存取高速緩沖存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù),可同時(shí)服務(wù)于更大量的同時(shí)流, 或者可以激活更高帶寬的流(如高清晰度音頻和視頻)。
在寫視頻文件的情況下,盤驅(qū)動(dòng)器可決定在盤上利用文件元數(shù)據(jù)來按照 以下方式物理擴(kuò)展LBA:增加對(duì)當(dāng)前和后續(xù)數(shù)據(jù)流的保證帶寬??稍诒P上按 照以下模式擴(kuò)展LBA:使得盤的內(nèi)徑和外徑之間的數(shù)據(jù)傳輸速率的差異平坦 化。在寫小型配置文件的情況下,例如,如果更高優(yōu)先級(jí)的數(shù)據(jù)流具有優(yōu)先 權(quán),則盤驅(qū)動(dòng)器可決定在將文件寫入到盤之前將數(shù)據(jù)寫入內(nèi)部高速緩沖存儲(chǔ) 器。然后,當(dāng)寫頭在最優(yōu)位置上時(shí),盤驅(qū)動(dòng)器可將小型配置文件寫入盤。
本發(fā)明的存儲(chǔ)裝置能夠提供遠(yuǎn)超過在系統(tǒng)層上實(shí)現(xiàn)的性能級(jí)別,因?yàn)檠b 置了解其自身的內(nèi)部幾何結(jié)構(gòu)。裝置可利用文件元數(shù)據(jù)來在多流環(huán)境下執(zhí)行 文件預(yù)先讀取,以在需要頭移動(dòng)的下一搜尋操作之前讀取最大量的數(shù)據(jù)。裝 置還可通過RPO(旋轉(zhuǎn)位置優(yōu)化)對(duì)后續(xù)請(qǐng)求執(zhí)行提前讀取操作。系統(tǒng)層解決 方案不具有這樣的知識(shí)。
另 一模式的操作可識(shí)別關(guān)于寫的請(qǐng)求,將實(shí)時(shí)文件置于不同于非實(shí)時(shí)文 件的、硬盤的分離的區(qū)域中。利用檢查從請(qǐng)求輸入的LBA以確定讀請(qǐng)求是否 落入上面定義的分離的實(shí)時(shí)區(qū)域中的簡單的范圍檢查,本發(fā)明的此方面可大 大加速讀耳又側(cè)。
根據(jù)另一實(shí)施例,利用文件系統(tǒng)元數(shù)據(jù),可在空閑模式期間,在文件的 基礎(chǔ)上重新定位標(biāo)準(zhǔn)塊寫入。在此描述的實(shí)施例是被提供來例示本發(fā)明的原 理而并非旨在限制本發(fā)明的范圍的操作模式的幾個(gè)示例。
圖7圖解了根據(jù)本發(fā)明實(shí)施例的、為了優(yōu)化硬盤驅(qū)動(dòng)器性能的、對(duì)盤驅(qū)動(dòng)器操作系統(tǒng)的主機(jī)OS讀/寫請(qǐng)求的解釋和翻譯。在步驟702,在諸如硬盤 710之類的存儲(chǔ)裝置上,諸如Linux和Microsoft Windows之類的主機(jī)OS 701 在正常操作過程中以讀/寫模式安裝一個(gè)或多個(gè)文件系統(tǒng)711。如步驟703所 示,正常操作過程中的主機(jī)0S向盤驅(qū)動(dòng)器712發(fā)出許多讀/寫請(qǐng)求。盤驅(qū)動(dòng) 器712包括盤驅(qū)動(dòng)器操作系統(tǒng)。主機(jī)OS 701和盤驅(qū)動(dòng)器712之間的這種通信 通常在標(biāo)準(zhǔn)數(shù)據(jù)總線接口 704上發(fā)生,如PATA (并行ATA )、 SATA (串行ATA)、 SCSI (小型計(jì)算機(jī)系統(tǒng)接口)、或IEEE-1394, —般稱為火線。
可替換地,盤驅(qū)動(dòng)器712可通過利用類似的網(wǎng)絡(luò)接口 720和721 (例如, 以太網(wǎng)接口 )的網(wǎng)絡(luò)715來與主機(jī)OS 701通信。盤驅(qū)動(dòng)器712還可通過網(wǎng)絡(luò) 715與其他主機(jī)操作系統(tǒng)(未示出)通信。
步驟705圖解了盤驅(qū)動(dòng)器712以只讀模式安裝目標(biāo)文件系統(tǒng)。在以只讀 模式安裝了目標(biāo)文件系統(tǒng)之后,盤驅(qū)動(dòng)器能夠存取文件系統(tǒng)中的元數(shù)據(jù),并 且使用該元數(shù)據(jù)來優(yōu)化讀/寫請(qǐng)求。
通過將輸入的讀/寫請(qǐng)求置于隊(duì)列中,該處理從步驟706開始執(zhí)行。在步 驟707,基于文件元數(shù)據(jù),將排隊(duì)的讀/寫請(qǐng)求翻譯成用于硬件的優(yōu)化的讀/ 寫命令。優(yōu)化的讀/寫命令包括基于文件元數(shù)據(jù)和RPO優(yōu)先排序的讀和寫命 令。
在執(zhí)行了步驟7Q6和707之后,在步驟7Q8,盤驅(qū)動(dòng)器712生成命令隊(duì) 列,其包含用于盤驅(qū)動(dòng)器的優(yōu)化的讀/寫命令。例如,在數(shù)據(jù)流需要實(shí)時(shí)性能 特性的情況下,盤驅(qū)動(dòng)器可通過分配比通常更大的緩沖器來優(yōu)化讀請(qǐng)求?;?于底層文件系統(tǒng)和RPO的知識(shí),盤驅(qū)動(dòng)器可服務(wù)于亂序的讀請(qǐng)求,或者組合 不同的讀請(qǐng)求以最大化一個(gè)或多個(gè)文件的數(shù)據(jù)傳輸,并最小化頭定位下一數(shù) 據(jù)塊所需的物理移動(dòng)量。盤驅(qū)動(dòng)器可執(zhí)行諸如上述優(yōu)化之類的許多其他讀請(qǐng) 求優(yōu)化。
作為另一示例,盤驅(qū)動(dòng)器可基于文件的實(shí)時(shí)狀態(tài)來優(yōu)化寫請(qǐng)求。盤驅(qū)動(dòng) 器還可利用底層文件系統(tǒng)和RPO的知識(shí)來優(yōu)化寫請(qǐng)求,以便可將數(shù)據(jù)流寫入 到高速緩沖存儲(chǔ)器或硬盤上的相鄰自由空間的區(qū)域中,由此增強(qiáng)后續(xù)搜尋操 作。盤驅(qū)動(dòng)器可執(zhí)行諸如上述優(yōu)化之類的許多其他寫請(qǐng)求優(yōu)化。本發(fā)明不限 于用于將主機(jī)OS讀/寫請(qǐng)求翻譯成用于塊存儲(chǔ)裝置的優(yōu)先排序且優(yōu)化的命令 的變量。
框713圖解了可由盤驅(qū)動(dòng)器OS和主機(jī)OS這兩者用來傳遞數(shù)據(jù)的共享存
儲(chǔ)器。根據(jù)上述共享處理器實(shí)施例,共享存儲(chǔ)器區(qū)域713可以是由主機(jī)OS和
盤驅(qū)動(dòng)器os共享的處理器中的共享存儲(chǔ)器區(qū)域。在共享處理器實(shí)施例中,與
用來連接塊裝置的普通接口 704相比,共享存儲(chǔ)器區(qū)域713具有優(yōu)秀的數(shù)據(jù) 傳輸性能特性??商鎿Q地,共享存儲(chǔ)器區(qū)域713可以是可由盤驅(qū)動(dòng)器控制器 和運(yùn)行主機(jī)OS的分離的存儲(chǔ)器來存取的存儲(chǔ)裝置。
當(dāng)盤驅(qū)動(dòng)器712執(zhí)行優(yōu)化命令隊(duì)列708時(shí),可直接將數(shù)據(jù)寫入共享存儲(chǔ) 器區(qū)域713中。盤驅(qū)動(dòng)器712可向共享存儲(chǔ)器區(qū)域713中的存儲(chǔ)器位置傳遞 指針。利用由盤驅(qū)動(dòng)器提供的指針,主機(jī)OS可快速存取數(shù)據(jù)。主機(jī)0S可大 大獲益于該共享存儲(chǔ)器的低等待數(shù)據(jù)傳輸特性。
為了例示和描述的目的,已經(jīng)提供了本發(fā)明的示例性實(shí)施例的前述描述。 其并非旨在詳盡的或者將本發(fā)明限于所公開的精確形式。本發(fā)明中希望有修 改、各種改變和替換的自由。在一些實(shí)例中,可采用本發(fā)明的特征,而不相 應(yīng)地使用所闡述的其他特征。根據(jù)以上教導(dǎo),許多修改和變化是可能的,而 不會(huì)脫離本發(fā)明的范圍。旨在本發(fā)明的范圍不限于此詳細(xì)描述。
權(quán)利要求
1、一種硬盤驅(qū)動(dòng)器,包括運(yùn)行盤驅(qū)動(dòng)器操作系統(tǒng)的處理器,其被配置為響應(yīng)于來自第一主機(jī)操作系統(tǒng)(OS)的讀和寫請(qǐng)求而執(zhí)行用于對(duì)盤讀和寫的任務(wù),其中,作為該盤驅(qū)動(dòng)器操作系統(tǒng)中的任務(wù)而執(zhí)行該第一主機(jī)OS。
2、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中在該處理器上執(zhí)行該盤驅(qū)動(dòng)器 操作系統(tǒng)和該第 一主機(jī)操作系統(tǒng)。
3、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中該盤驅(qū)動(dòng)器操作系統(tǒng)將該第一 主機(jī)OS作為相對(duì)于用于實(shí)現(xiàn)讀和寫請(qǐng)求的任務(wù)的更低優(yōu)先級(jí)的任務(wù)而執(zhí)行。
4、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中該盤驅(qū)動(dòng)器操作系統(tǒng)是實(shí)時(shí)操 作系統(tǒng)。
5、 如權(quán)利要求4所述的硬盤驅(qū)動(dòng)器,其中該硬盤驅(qū)動(dòng)器是嵌入式裝置的 一部分。
6、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中該盤驅(qū)動(dòng)器操作系統(tǒng)模擬該第 一主機(jī)OS的中斷的激活和禁止。
7、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中該第一主機(jī)OS執(zhí)行定制的裝 置驅(qū)動(dòng)器,該定制的裝置驅(qū)動(dòng)器向緩沖器傳遞指針,其中該定制裝置驅(qū)動(dòng)器 響應(yīng)于該讀和寫請(qǐng)求而讀和寫數(shù)據(jù)。
8、 如權(quán)利要求6所述的硬盤驅(qū)動(dòng)器,其中該盤驅(qū)動(dòng)器操作系統(tǒng)將用于第 一主機(jī)OS的中斷位從第一存儲(chǔ)位置移動(dòng)到第二存儲(chǔ)位置。
9、 如權(quán)利要求1所述的硬盤驅(qū)動(dòng)器,其中作為該盤驅(qū)動(dòng)器操作系統(tǒng)中的 任務(wù)來執(zhí)行第二主機(jī)OS。
10、 一種用于實(shí)現(xiàn)硬盤驅(qū)動(dòng)器的方法,該方法包括響應(yīng)于來自第一主機(jī)操作系統(tǒng)(OS)的讀和寫請(qǐng)求,利用盤驅(qū)動(dòng)器操作系 統(tǒng)來執(zhí)行用于對(duì)盤讀和寫數(shù)據(jù)的任務(wù);以及作為該盤驅(qū)動(dòng)器操作系統(tǒng)中的任務(wù)來執(zhí)行該第一主機(jī)OS。
11、 如權(quán)利要求10所述的方法,其中該盤驅(qū)動(dòng)器操作系統(tǒng)和該第一主機(jī) 0S共享處理器。
12、 如權(quán)利要求10所述的方法,其中該方法還包括 作為該盤驅(qū)動(dòng)器操作系統(tǒng)中的任務(wù)來執(zhí)行第二主機(jī)OS。
13、 如權(quán)利要求IO所述的方法,其中該方法還包括 模擬該第一主機(jī)OS的中斷的激活和禁止。
14、 如權(quán)利要求10所述的方法,其中該方法還包括 共享存儲(chǔ)器空間,其中該第一主機(jī)OS執(zhí)行向存儲(chǔ)空間內(nèi)的位置傳遞指針的定制裝置驅(qū)動(dòng)器,其中該定制裝置驅(qū)動(dòng)器響應(yīng)于該讀和寫請(qǐng)求而讀和寫數(shù) 據(jù)。
15、 如權(quán)利要求IO所述的方法,其中作為該盤驅(qū)動(dòng)器操作系統(tǒng)中的任務(wù) 來執(zhí)行該第一主機(jī)OS還包括設(shè)置模擬該第一主機(jī)OS中的中斷的虛擬硬件;切換到目標(biāo)處理器模式;為中斷返回進(jìn)行設(shè)置;切換到中斷模式;以及修改在該第一主機(jī)OS任務(wù)的上下文區(qū)域中的程序計(jì)數(shù)器。
16、 一種硬盤驅(qū)動(dòng)器,包括運(yùn)行盤驅(qū)動(dòng)器操作系統(tǒng)的處理器,其被配置為響應(yīng)于來自主機(jī)操作系統(tǒng) (OS)的讀和寫請(qǐng)求而對(duì)盤讀和寫數(shù)據(jù);以及共享存儲(chǔ)器,其可由該盤驅(qū)動(dòng)器操作系統(tǒng)和該主機(jī)操作系統(tǒng)存取,以響 應(yīng)于該讀和寫請(qǐng)求而存儲(chǔ)數(shù)據(jù)。
17、 如權(quán)利要求16所述的硬盤驅(qū)動(dòng)器,其中該共享存儲(chǔ)器是包括該處理 器的集成電路的一部分,并且該主機(jī)OS在該處理器上運(yùn)行。
18、 一種硬盤驅(qū)動(dòng)器,包括運(yùn)行盤驅(qū)動(dòng)器操作系統(tǒng)的處理器,其安裝包含用戶數(shù)據(jù)和描述該用戶數(shù) 據(jù)的文件元數(shù)據(jù)的文件系統(tǒng),其中該處理器從主機(jī)操作系統(tǒng)(OS)接收關(guān)于該用戶數(shù)據(jù)的讀和寫請(qǐng)求, 基于該文件元數(shù)據(jù)而將該讀和寫請(qǐng)求翻譯為優(yōu)化的讀和寫命令,并且執(zhí)行該 優(yōu)化的讀和寫命令。
19、 如權(quán)利要求18所述的硬盤驅(qū)動(dòng)器,其中該處理器利用文件元數(shù)據(jù)和 旋轉(zhuǎn)位置優(yōu)化(RPO)、以增加對(duì)當(dāng)前和后續(xù)數(shù)據(jù)流的帶寬的模式來在盤上寫入 用于所請(qǐng)求的數(shù)據(jù)的邏輯塊地址(LBA)。
20、 如權(quán)利要求18所述的硬盤驅(qū)動(dòng)器,其中該處理器利用文件元數(shù)據(jù)來 提前讀取在盤上存儲(chǔ)的數(shù)據(jù),以服務(wù)于后續(xù)請(qǐng)求。
21、 如權(quán)利要求18所述的硬盤驅(qū)動(dòng)器,其中該處理器執(zhí)行實(shí)時(shí)操作系統(tǒng),該實(shí)時(shí)操作系統(tǒng)將該主機(jī)OS作為該處理器上的任務(wù)而實(shí)現(xiàn)。
22、 如權(quán)利要求20所述的硬盤驅(qū)動(dòng)器,其中該處理器利用旋轉(zhuǎn)位置優(yōu)化 和文件類型指定的內(nèi)容的優(yōu)先排序中的至少一個(gè)來提前讀取數(shù)據(jù)。
23、 如權(quán)利要求18所述的硬盤驅(qū)動(dòng)器,其中該處理器響應(yīng)于讀和寫請(qǐng)求 的模式而將數(shù)據(jù)存儲(chǔ)在高速緩沖存儲(chǔ)器中,以生成提升后續(xù)請(qǐng)求的性能的高 速緩沖存儲(chǔ)器命中。
全文摘要
公開了改進(jìn)硬盤驅(qū)動(dòng)器效率的技術(shù)。主機(jī)操作系統(tǒng)(OS)可作為盤驅(qū)動(dòng)器操作系統(tǒng)下的任務(wù)運(yùn)行??稍趩蝹€(gè)處理器上運(yùn)行主機(jī)OS和盤驅(qū)動(dòng)器操作系統(tǒng)。處理器能夠保持盤驅(qū)動(dòng)器控制器的實(shí)時(shí)響應(yīng)特性。盤驅(qū)動(dòng)器存儲(chǔ)裝置可存取和響應(yīng)與主機(jī)操作系統(tǒng)(OS)保持的底層文件系統(tǒng)有關(guān)的元數(shù)據(jù),以優(yōu)化盤驅(qū)動(dòng)器和主機(jī)OS之間的數(shù)據(jù)傳輸。盤驅(qū)動(dòng)器可識(shí)別讀和寫存取的性質(zhì),允許其優(yōu)先排序和性能優(yōu)化這些存取。盤驅(qū)動(dòng)器可執(zhí)行這些功能而無需對(duì)塊接口的任何改變。
文檔編號(hào)G06F3/06GK101187848SQ200710181429
公開日2008年5月28日 申請(qǐng)日期2007年10月25日 優(yōu)先權(quán)日2006年10月25日
發(fā)明者戴維·R·霍爾 申請(qǐng)人:日立環(huán)球儲(chǔ)存科技荷蘭有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
丹凤县| 泰来县| 德清县| 米易县| 敦煌市| 凤台县| 南溪县| 内江市| 屯门区| 磐安县| 鲁甸县| 谢通门县| 镶黄旗| 鄂尔多斯市| 孟村| 玉屏| 河西区| 舒城县| 万全县| 思南县| 广德县| 盐池县| 锡林郭勒盟| 安国市| 丰宁| 通州市| 外汇| 彭州市| 肇东市| 登封市| 黄龙县| 翁源县| 天镇县| 宁国市| 商水县| 澄城县| 奈曼旗| 吉安市| 南投县| 如东县| 琼中|