專利名稱:改善連續(xù)串行小型機系統(tǒng)接口存儲設(shè)備性能的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域,且具體地,涉及數(shù)據(jù)處理系統(tǒng)內(nèi) 存儲設(shè)備的領(lǐng)域。還更具體地,本發(fā)明涉及一種用于改善數(shù)據(jù)處理系統(tǒng)內(nèi)的 存儲設(shè)備性能的系統(tǒng)和方法。
背景技術(shù):
串行小型計算機系統(tǒng)接口 ( Serial Attached Small Computer System Interface ) ( SAS )體系可以支持從SAS啟動器設(shè)備通向SAS目標設(shè)備的多 條路徑。因為大多數(shù)SAS目標設(shè)備至少包括SAS兩個端口 ,而且大多數(shù)SAS 啟動器設(shè)備具有多個SAS端口 ,所以多條路徑是有可能的。當(dāng)向SAS目標 設(shè)備分配任務(wù)時,SAS啟動器設(shè)備可以基于路徑可用性來使用不同的路徑。 因此,如果正由返回數(shù)據(jù)到SAS啟動器設(shè)備的另一個SAS目標設(shè)備使用一 條路徑,SAS啟動器將經(jīng)由備選的路徑連接到SAS目標設(shè)備來發(fā)送另一個 任務(wù)。SAS目標設(shè)備將每一條SAS啟動器設(shè)備路徑都視為單獨的SAS啟動器 設(shè)備。SAS體系還支持多啟動器環(huán)境,這使不同的系統(tǒng)SAS啟動器設(shè)備能夠 通過相同的SAS底層結(jié)構(gòu)與SAS目標設(shè)備進行對話。 一般將SAS目標設(shè)備 配置成為每一個SAS啟動器設(shè)備維持單獨的任務(wù)集。執(zhí)行對不同任務(wù)集的維 持以在每個SAS啟動器設(shè)備基礎(chǔ)上提供錯誤恢復(fù)過程。并行小型計算機系統(tǒng)接口 (并行SCSI)、即SAS體系的前趨結(jié)構(gòu)曽支持 多啟動器環(huán)境。然而,SCSI目標設(shè)備只包括通向每一個啟動器設(shè)備的一條路 徑。因此,每一個目標設(shè)備在每個SCSI適配器基礎(chǔ)上維持任務(wù)集。如上所述,SAS目標設(shè)備在每個路徑基礎(chǔ)上維持單獨的任務(wù)集。由于可 以存在到達SAS啟動器設(shè)備的兩條或更多的路徑,所以單個SAS目標設(shè)備可 以具有對于單個SAS啟動器設(shè)備的兩個或更多任務(wù)集。例如,如果SAS啟動 器設(shè)備開始向SAS目標設(shè)備發(fā)送連續(xù)的任務(wù)(例如,命令或SCSl命令描述 符塊),則一個任務(wù)可以沿著第一路徑行進,而第二任務(wù)可以沿著第二路徑行進。SAS目標設(shè)備將在單獨的任務(wù)集中保持這些連續(xù)的任務(wù)。當(dāng)連續(xù)的SCSI 命令被排列在單獨的任務(wù)集中時,當(dāng)前的SAS執(zhí)行并不把連續(xù)的SCSI命令 看作連續(xù)的。因此,如果連續(xù)的任務(wù)是連續(xù)的寫操作,它要求對在硬盤啟動 器上位置相關(guān)的位置進行寫操作,則當(dāng)前的SAS執(zhí)行可以產(chǎn)生以第一盤位置 為目標的第 一寫操作、以第二盤位置為目標的第二寫操作和以第三盤位置為 目標的第三寫操作,其中第二盤位置位于硬盤的另一部分,而第三盤位置非 常接近于第一盤位置。為了執(zhí)行這三個寫操作,硬盤驅(qū)動器需要將盤旋轉(zhuǎn)到 第一盤位置,再將盤旋轉(zhuǎn)到第二盤位置,然后第三次將盤旋轉(zhuǎn)到接近于第一 盤位置的第三盤位置。在連續(xù)的寫操作情況下,這些不必要的盤旋轉(zhuǎn)明顯影 響了 SAS體系的性能。另 一方面,并行SCSI盤驅(qū)動在相同任務(wù)集中保持來自于相同啟動器設(shè)備 的連續(xù)寫操作,并將執(zhí)行一系列連續(xù)的寫操作而無需插入盤旋轉(zhuǎn)。因此,就 需要一種用于改善連續(xù)SAS盤驅(qū)動的系統(tǒng)和方法來克服上述現(xiàn)有技術(shù)的局 限。發(fā)明內(nèi)容本發(fā)明包括一種用于改善連續(xù)串行小型計算機系統(tǒng)接口存儲設(shè)備性能的 系統(tǒng)、計算機可執(zhí)行的方法和計算機可讀介質(zhì)。根據(jù)優(yōu)選的實施例,目標設(shè) 備內(nèi)的微處理器經(jīng)由啟動器路徑的集合接收來自于至少一個啟動器設(shè)備的任 務(wù)的集合。該目標設(shè)備是循環(huán)非易失性存儲介質(zhì)。該微處理器按照任務(wù)列表 的集合來排列任務(wù)的集合。每一個任務(wù)列表對應(yīng)于相應(yīng)的啟動器路徑。微處 理器任務(wù)的集合組合到執(zhí)行隊列中?;趦?yōu)先權(quán)機制對執(zhí)行隊列上的任務(wù)的 集合進行重新排序。微處理器執(zhí)行來自執(zhí)行隊列的任務(wù)的集合。在本發(fā)明的優(yōu)選實施例中,微處理器確定是否存在多于一個的非空任務(wù) 集。響應(yīng)于確定存在多于一個的非空任務(wù)集,微處理器執(zhí)行任務(wù)選擇代碼以 把任務(wù)的集合重新組合和重新排序到單個執(zhí)行隊列中。在本發(fā)明的另 一優(yōu)選實施例中,微處理器確定是否應(yīng)當(dāng)執(zhí)行任務(wù)的集合。 響應(yīng)于確定應(yīng)當(dāng)執(zhí)行任務(wù)的集合,微處理器從任務(wù)列表的集合中選擇用于執(zhí) 行的任務(wù)。然后,微處理器向執(zhí)行隊列發(fā)送所選擇的任務(wù)來執(zhí)行。本發(fā)明以上及附加的目標、特征和優(yōu)勢將在以下的詳細描述中變得明顯。
在附加的權(quán)利要求中闡述了本發(fā)明所認為特性的新穎性特征。然而,通 過參考以下結(jié)合附圖來閱讀的對示范性實施例的詳細描述將最好地理解本發(fā) 明本身及優(yōu)選方式的使用,還有其目的和優(yōu)勢。圖1是圖示在其中可以執(zhí)行本發(fā)明實施例的示范性網(wǎng)絡(luò)的框圖;圖2A是描述在其中可以執(zhí)行本發(fā)明實施例的示范性數(shù)據(jù)處理系統(tǒng)的框圖;圖3是描述在其中可以執(zhí)行本發(fā)明實施例的示范性硬盤驅(qū)動(hard drive) 的框圖;圖4是圖示通過圖2和3所示的硬盤驅(qū)動進行任務(wù)集管理的框圖;以及 圖5A和5B是描述根據(jù)本發(fā)明的用于改善連續(xù)SAS存儲設(shè)備性能的示 范性方法的高級邏輯流程圖。
具體實施方式
本發(fā)明包括一種用于改善連續(xù)串行小型計算機系統(tǒng)(SAS)接口存儲設(shè) 備性能的系統(tǒng)和方法。根據(jù)本發(fā)明的實施例,硬盤驅(qū)動包括微處理器、高速 緩沖存儲器和只讀存儲器(ROM ) /電可擦除可編程只讀存儲器(EEPROM )。 在EEPROM內(nèi)存儲的是可由微處理器執(zhí)行的任務(wù)選擇代碼,該任務(wù)選擇代碼 能夠把存在于多個任務(wù)集內(nèi)的命令重新排序到執(zhí)行隊列中,以處理連續(xù)命令 的方式來改善SAS接口存儲設(shè)備的性能。現(xiàn)在參照圖1,圖示了在其中可以執(zhí)行本發(fā)明實施例的示范性網(wǎng)絡(luò)100 的框圖。如圖所示,網(wǎng)絡(luò)100包括服務(wù)器104、存儲器106、客戶端集合108-112, 它們都通過通信結(jié)構(gòu)102相連。正如本領(lǐng)域技術(shù)人員眾所周知的,可以通過 局域網(wǎng)、廣域網(wǎng)、WiFi (IEEE 802.1 lx)、以太網(wǎng)、因特網(wǎng)或其他任何類型的 網(wǎng)絡(luò)來執(zhí)行通信結(jié)構(gòu)102。存儲器106包括硬盤驅(qū)動集合232a-232d和SAS擴展器(expander)集 合238a-238b(圖2B ),其中SAS擴展器238a-238b被用來與SAS適配器231 (圖2A )接口 。正如在此結(jié)合圖2A-2B所討論的,服務(wù)器104和客戶端108-112 可以通過它們相應(yīng)的SAS適配器231來與存儲器106通信。本領(lǐng)域技術(shù)人員 將理解示范性網(wǎng)絡(luò)100可以包括許多非圖l具體所示的附加組件。因為這樣的附加組件不是為理解本發(fā)明所必需的,所以沒有在圖1中圖示也沒有在此 進一步進行討論。圖2A是描述示范性數(shù)據(jù)處理系統(tǒng)200的框圖,其中該示范性數(shù)據(jù)處理 系統(tǒng)200可以被用來執(zhí)行服務(wù)器104和客戶端108-112。如上所述,處理器 202-204通過系統(tǒng)總線206和存儲器控制器/高速緩沖存儲器208耦接到本地 存儲器209。優(yōu)選地,本地存儲器209可以被作為動態(tài)隨機存取存儲器 (DRAM)模塊的集合來執(zhí)行。而且,處理器202-204還通過系統(tǒng)總線206 耦接到I/O橋210以能夠與I/O總線212通信。本領(lǐng)域技術(shù)人員將理解I/O總線212可以被作為PCI、工業(yè)標準結(jié)構(gòu)(ISA ) 或任何其他的外圍總線來執(zhí)行。PCI總線橋214耦接PCI總線216與I/O總線 212,并能夠與調(diào)制解調(diào)器218和網(wǎng)絡(luò)適配器220通信。調(diào)制解調(diào)器218和/ 或網(wǎng)絡(luò)適配器220使數(shù)據(jù)處理系統(tǒng)200能夠在諸如網(wǎng)絡(luò)100的網(wǎng)絡(luò)上通信。PCI總線橋222耦接PCI總線226與I/O總線212,并與SAS適配器231 接口。 SAS適配器231充當(dāng)數(shù)據(jù)處理系統(tǒng)100內(nèi)的SAS啟動器,它使任何請 求的設(shè)備(例如,處理器202-204,諸如調(diào)制解調(diào)器218或網(wǎng)絡(luò)適配器220的 外圍設(shè)備等)能夠訪問圖2B中所示的存儲設(shè)備106內(nèi)的硬盤驅(qū)動232a-232d。 如圖2A所示,SAS適配器231包括四個端口端口A 233a、端口B 233b、 端口 C 233c和端口 D 233d。正如在此結(jié)合圖2B進一步詳細描述的,這些端 口使適配器231能夠向存儲器106發(fā)送命令(在此稱為"任務(wù),,)。PCI總線 橋224耦接PCI總線228與I/O總線212。 PCI總線226使其他外圍設(shè)備(未 顯示)能夠在I/O總線212上通信。圖2B是圖示在其中可以執(zhí)行本發(fā)明實施例的示范性存儲器106的框圖。 如圖所示,存儲器106包括循環(huán)非易失性存儲介質(zhì)、諸如硬盤驅(qū)動232a-232d (其為SAS目標設(shè)備)和SAS擴展器238a-238b的集合。SAS擴展器238a 通過端口 A233a和端口 B 233b被耦接到SAS適配器231(存在于服務(wù)器104 和客戶端108-112內(nèi)),而SAS擴展器238b通過端口 C 233c和端口 D 233d 被耦接到SAS適配器231 。硬盤驅(qū)動232a-232d通過端口 A 234a-234d被耦接 到SAS擴展器238a,并通過端口 B 236a-236d被耦接到SAS擴展器238b。 本領(lǐng)域技術(shù)人員將理解本發(fā)明并不把存儲器106限定為四個硬盤驅(qū)動 232a-232d,而可以包括其他任何數(shù)量的硬盤。根據(jù)本發(fā)明的實施例,SAS擴展器238a-238b包括通向每一個雙端口硬盤驅(qū)動232a-232d的四條路徑(端口 A233a、端口 B 233b、端口 C 233c和端 口D 233d)。正如在此結(jié)合圖3-5更詳細討論的,每一個硬盤驅(qū)動232a-232d 為每一條路徑維持單獨的任務(wù)集。為了與存儲器106通信,首先通過數(shù)據(jù)處 理系統(tǒng)200的組件(例如,處理器202和204 )向SAS適配器231 (在此稱 為"SAS啟動器設(shè)備")發(fā)送任務(wù)。SAS啟動器設(shè)備通過任何可利用的SAS 啟動器3各徑(端口 A 233a、端口 B 233b、端口 C 233c和端口 D 233d )向存 儲器106發(fā)送該任務(wù)。SAS擴展器238a-238b向至少一個硬盤驅(qū)動232a-232d 轉(zhuǎn)發(fā)該任務(wù),該硬盤驅(qū)動232a-232d在此稱為"SAS目標設(shè)備"。正如在此結(jié) 合圖3-4更詳細討論的,每一個SAS目標設(shè)備為每一條SAS啟動器路徑維持 單獨的任務(wù)列表。因此,如果作為SAS啟動器設(shè)備的SAS適配器23]向存儲 器106發(fā)送命令,而且該命令為跨越四條路徑擴展的連續(xù)操作(例如,連續(xù) 的寫操作),則將在每一個硬盤驅(qū)動232a-232d中單獨的任務(wù)集中對連續(xù)的操 作加以分類。圖3是圖示根據(jù)本發(fā)明實施例的示范性硬盤驅(qū)動232的框圖。如圖所示, 硬盤驅(qū)動232包括主接口芯片301,用于調(diào)整在硬盤驅(qū)動232與諸如SAS適 配器231的SAS啟動器設(shè)備之間的通信。 一旦系統(tǒng)啟動,微處理器302從只 讀存儲器(ROM) /電可擦除可編程只讀存儲器(EEPROM) 304中加載引導(dǎo) 數(shù)據(jù)。在硬盤驅(qū)動操作期間,微處理器302在高速緩沖存儲器303中排列被 發(fā)送到硬盤驅(qū)動232的任務(wù)。讀/寫(R/W )通道305和前置放大器306使微 處理器302能夠訪問硬盤驅(qū)動232中的讀/寫頭。正如在此更詳細討論的,硬盤驅(qū)動232支持來自于SAS啟動器設(shè)備(例 如,SAS適配器231 )的多條路徑(例如端口 A233a、端口 B 233b、端口 C 233c 和端口 D 233d )。當(dāng)向SAS目標設(shè)備(例如,硬盤驅(qū)動232 )發(fā)送任務(wù)時, SAS啟動器設(shè)備可以根據(jù)路徑可用性來使用不同的路徑。例如,如果正由另 一個SAS啟動器設(shè)備使用一條路徑,則第一 SAS啟動器設(shè)備將通過備選的路 徑連接到SAS目標設(shè)備來發(fā)送任務(wù)。SAS目標設(shè)備將把每一條SAS啟動器 路徑都視為單獨的SAS啟動器。作為SAS目標設(shè)備,硬盤驅(qū)動232為每一條 SAS啟動器路徑維持單獨的任務(wù)列表。這些任務(wù)列表將被存儲在高速緩沖存 儲器303內(nèi)。微處理器302分別通過伺服控制器308和主軸電動機(spindle motor )控 制器309來控制硬盤驅(qū)動的音圏和主軸電動機。這些電動機操縱存儲了數(shù)據(jù)和指令的硬盤驅(qū)動母板(platter )。微處理器302還被耦接到至少一個空氣濾 波器,例如驅(qū)動再循環(huán)濾波器307,其被設(shè)計成對在讀/寫頭移去和導(dǎo)入期間 從母板中擦除的小部分介質(zhì)進行濾波(并有可能對在操作期間在驅(qū)動內(nèi)部驅(qū) 除的其他小部分進行濾波)。圖4是圖示由根據(jù)本發(fā)明實施例的硬盤驅(qū)動232進行的任務(wù)集管理的框 圖。如圖所示,SAS啟動器設(shè)備1 402和SAS啟動器設(shè)備2 404通過多條SAS 啟動器路徑414-420發(fā)送命令。SAS啟動器if各徑416和418通過端口 A 234 進入硬盤驅(qū)動232,而SAS啟動器路徑414和420通過端口 B 236進入硬盤 驅(qū)動232。由于SAS啟動器設(shè)備1 402和SAS啟動器設(shè)備2 404向硬盤驅(qū)動232發(fā) 送命令,所以在(都被存儲在高速緩沖存儲器303內(nèi)的)任務(wù)集406、 408、 410和411內(nèi)排列命令,這取決于這些命令在哪一條SAS啟動器路徑414-420 上發(fā)送。執(zhí)行隊列412還被存儲在高速緩沖存儲器303中,并緩沖來自于任 務(wù)集406、 408、 410和411的命令,其中由微處理器302執(zhí)行的任務(wù)選擇代 碼414來重新排序這些命令。本領(lǐng)域技術(shù)人員將理解本發(fā)明根本不限制可以 執(zhí)行的任務(wù)集和啟動器路徑的數(shù)量。圖4為了起舉例說明的目的且為了便于 討論而僅顯示了四個任務(wù)集和四個啟動器路徑。任務(wù)選擇代碼414表示被存儲在ROM/EEPROM 304上、由微處理器302 執(zhí)行的代碼。任務(wù)選擇代碼414使微處理器能夠掃視所有任務(wù)集406、 408、 410和411,且對任務(wù)集中的命令重新排序并把它們置于執(zhí)行隊列412中。根據(jù)本發(fā)明的實施例,(由微處理器302執(zhí)行的)任務(wù)選擇代碼414創(chuàng)建 單獨的任務(wù)集,其在圖4中作為執(zhí)行隊列412來執(zhí)行。單獨的任務(wù)集包括來 自于各個任務(wù)集406、 408、 410和411的所有任務(wù)。由任務(wù)選擇代碼414基 于屬性來重新排序執(zhí)行隊列412中的各個任務(wù),用以優(yōu)化執(zhí)行效率。例如, 將持續(xù)地重新排序連續(xù)的任務(wù)來優(yōu)化性能。本領(lǐng)域技術(shù)人員將理解任務(wù)選擇 代碼414可以使用任何重新排序機制,它包括但不局限于基于讀/寫頭相對于 在排列的命令中定義的物理位置或邏輯塊地址(LBA)的物理位置的機制。 當(dāng)在執(zhí)行隊列412中重新排序這些命令時,可以持續(xù)地執(zhí)行諸如連續(xù)的寫命 令的連續(xù)的命令,而不管該命令最初排列在哪一個任務(wù)集中。如果由于歸因 于至少一個任務(wù)集406、 408、 410和411的錯誤狀態(tài)而需要從執(zhí)行隊列412 中斷各個任務(wù),其中該錯誤狀態(tài),則驅(qū)動任務(wù)管理器416(被存儲在頁ROM/EEPROM 304內(nèi)并由微處理器302執(zhí)行的代碼)可以凍結(jié)任務(wù)執(zhí)行直至 被中斷的任務(wù)被驅(qū)動任務(wù)管理器416移除。在本發(fā)明的另一個實施例中,每一個硬盤驅(qū)動232a-232d在高速緩沖存 儲器303中維持各個任務(wù)集406、 408、 410和411。任務(wù)選^f代碼414在執(zhí) 行時對任務(wù)集406、 408、 410和411中的任務(wù)重新排序,并向執(zhí)行隊列412 發(fā)送重新排序后的任務(wù)。例如,任務(wù)選擇代碼414詢問所有任務(wù)集406、 408、 410和411,并基于哪一個任務(wù)可以最快被執(zhí)行來選擇要執(zhí)行的下一任務(wù)。例 如,硬盤驅(qū)動232a-232d可以隨時在驅(qū)動上檢測讀/寫頭相對于LBA位置的位 置。因此,最佳任務(wù)執(zhí)行策略是任務(wù)選擇代碼414基于任務(wù)的目標LBA來選 擇將需要最少的時間到達的下一任務(wù)。圖5A是圖示根據(jù)本發(fā)明的用于改善連續(xù)SAS存儲設(shè)備性能的示范性方 法的框圖。該處理開始于步驟500并繼續(xù)到步驟502,這圖示了硬盤驅(qū)動232 內(nèi)的微處理器302確定主機接口芯片301是否已經(jīng)接收了來自于SAS啟動器 的新命令。如果還沒有接收到命令,處理繼續(xù)到步驟504,其描述了微處理 器302正在等待將要從SAS啟動器發(fā)送的下一個命令。然后,處理返回到步 驟502并以循環(huán)的方式繼續(xù)進行。返回到步驟502,如果微處理器302確定是否已經(jīng)接收了新命令,則處 理進行到步驟506,這示出微處理器302在適當(dāng)?shù)娜蝿?wù)集中排列所接收的命 令。如上所述,SAS目標設(shè)備(例如,硬盤驅(qū)動232)組織該由任務(wù)集排列 的命令。SAS目標設(shè)備為每一條SAS啟動器路徑維持任務(wù)集。由于SAS啟 動器通過任何可利用的SAS啟動器路徑發(fā)送命令,所以可能存在每個SAS 啟動器維持的多于一個的任務(wù)列表。處理進行到步驟507,這示出了微處理器302確定是否存在多于一個的 非空任務(wù)集。如果存在不多于一個的非空任務(wù)集,處理就返回到步驟504并 以循環(huán)的方式繼續(xù)進4亍。如果存在多于一個的非空任務(wù)集,處理就繼續(xù)到步驟508,這圖示了微 處理器302確定是否應(yīng)該由微處理器302通過執(zhí)行任務(wù)選擇代碼414來聚集 執(zhí)行隊列412。當(dāng)存在多于一個的非空任務(wù)集時,創(chuàng)建執(zhí)行隊列。如果否, 處理就返回到步驟504并以循環(huán)的方式繼續(xù)進行。如果應(yīng)當(dāng)聚集執(zhí)行隊列 412,則微處理器302執(zhí)行被存儲在ROM/EEPROM 304中的任務(wù)選擇代碼 414,并把所有任務(wù)集內(nèi)的所有命令重新組合和重新排序到執(zhí)行隊列412中,如步驟510中所描述。處理繼續(xù)到步驟512,這示.出了微處理器302通過接 收來自于伺服控制器308、主軸電動機控制器309、前置放大器306或R/W 通道305中任何一個的中斷,確定已經(jīng)檢測到歸因于至少一個任務(wù)集的錯誤 狀態(tài)。如果已經(jīng)檢測到歸因于至少一個任務(wù)集的錯誤狀態(tài),處理繼續(xù)到步驟 514,這圖示了驅(qū)動任務(wù)管理器416從執(zhí)行隊列412中移除來自于(多個)錯 誤的任務(wù)集的任務(wù)。處理返回到步驟510。然而,如果檢測不到錯誤狀態(tài),處理就繼續(xù)到步驟516,這圖示了微處 理器302按照執(zhí)行隊列412所示的順序來執(zhí)行命令。如圖所示,處理結(jié)束于 步驟518。圖5B是圖示根據(jù)本發(fā)明的用于改善連續(xù)的SAS存儲設(shè)備性能的另一個 示范性方法的框圖。處理開始于步驟550并繼續(xù)到步驟552,這圖示了硬盤 驅(qū)動232內(nèi)的微處理器302確定主機接口芯片301是否已經(jīng)接收了來自于SAS 啟動器的新命令。如果已經(jīng)接收了命令,處理就繼續(xù)到步驟554,這描述了 微處理器302正在等待將要從SAS啟動器設(shè)備發(fā)送的新命令。然后,處理返 回到步驟552并以循環(huán)的方式繼續(xù)進行。返回到步驟552,如果微處理器302確定是否已經(jīng)接收了新命令,處理 就進行到步驟556,這示出了微處理器302正在適當(dāng)?shù)娜蝿?wù)集中排列所接收 的命令。如上所述,SAS目標設(shè)備(例如,硬盤驅(qū)動232)組織該由任務(wù)集 排列的命令。SAS目標設(shè)備為每一條SAS啟動器路徑維持任務(wù)集。由于SAS 啟動器通過任何可利用的SAS啟動器路徑發(fā)送命令,所以可能存在每個SAS 啟動器維持的多于一個的任務(wù)列表。處理繼續(xù)到步驟558,這圖示了微處理器302確定是否應(yīng)當(dāng)執(zhí)行任務(wù)。 如果否,處理就返回到步驟554并以循環(huán)的方式繼續(xù)進行。如果應(yīng)當(dāng)執(zhí)行任任務(wù)選擇代碼414詢問被存儲在高速緩沖存儲器303中的所有任務(wù)集,并從 任務(wù)集中選擇用于執(zhí)行的任務(wù)。如上所述,最佳任務(wù)執(zhí)行策略是任務(wù)選擇代 碼414基于相對于數(shù)據(jù)頭的物理位置的任務(wù)的目標LBA來選擇將需要最少的 時間來到達的下一任務(wù)。處理繼續(xù)到步驟562,這圖示了任務(wù)選擇代碼414向執(zhí)行隊列412發(fā)送 所選擇的任務(wù)。然后,處理繼續(xù)到步驟564,這表示微處理器302執(zhí)行如在 執(zhí)行隊列412中所排序的任務(wù)。如圖所示,處理結(jié)束于步驟566。如上所述,本發(fā)明包括一種用于改善連續(xù)串行小型計算機系統(tǒng)接口存儲 設(shè)備性能的系統(tǒng)、計算機可執(zhí)行的方法和計算機可讀介質(zhì)。根據(jù)優(yōu)選的實施 例,目標設(shè)備中的微處理器經(jīng)由啟動器路徑集合來接收來自于至少 一 個啟動 器設(shè)備的任務(wù)集合。該目標設(shè)備是循環(huán)非易失性存儲介質(zhì)。該微處理器按照 任務(wù)列表的集合來排列這些任務(wù)的集合。每一個任務(wù)列表對應(yīng)于相應(yīng)的啟動 器路徑。微處理器把這些任務(wù)的集合組合到執(zhí)行隊列中?;趦?yōu)先權(quán)機制對 執(zhí)行隊列上的任務(wù)集合進行重新排序。微處理器從執(zhí)行隊列中執(zhí)行這些任務(wù) 的集合。應(yīng)當(dāng)理解在包含了程序產(chǎn)品的計算機可用介質(zhì)中至少可供選擇地執(zhí)行了 本發(fā)明的某些方面??梢酝ㄟ^各種信號承載介質(zhì)向數(shù)據(jù)存儲器系統(tǒng)或計算機 系統(tǒng)傳送在本發(fā)明中定義了功能的程序,該信號承載介質(zhì)包括但不局限于不可寫存儲介質(zhì)(例如,CD-ROM )、可寫存儲介質(zhì)(例如,硬盤、讀/寫CD-ROM、 光介質(zhì))、諸如但不局限于隨機存取存儲器(RAM )的系統(tǒng)存儲器以及諸如 計算機和電話網(wǎng)絡(luò)的通信介質(zhì),該計算機和電話網(wǎng)絡(luò)包括以太網(wǎng)、因特網(wǎng)、 無線網(wǎng)絡(luò)等網(wǎng)絡(luò)系統(tǒng)。因此,應(yīng)當(dāng)理解在本發(fā)明中,這樣的信號承載介質(zhì)當(dāng) 承載或編碼指導(dǎo)本發(fā)明中的方法功能的計算機可讀指令呈現(xiàn)了本發(fā)明的備選 實施例。此外,理解到可由如下系統(tǒng)來執(zhí)行本發(fā)明,該系統(tǒng)包括以在此所述 硬件、軟件或軟硬件組合或者其等同物形式的裝置。雖然已經(jīng)參考優(yōu)選的實施例具體顯示和描述了本發(fā)明,但是本領(lǐng)域技術(shù) 人員將理解在此可以在不脫離本發(fā)明精神和范圍的情況下進行形式和細節(jié)上 的各種改變。
權(quán)利要求
1、一種計算機可實現(xiàn)的方法,包括經(jīng)由多個啟動器路徑,在目標設(shè)備中接收來自于至少一個啟動器設(shè)備的多個任務(wù),其中所述目標設(shè)備是循環(huán)的、非易失性存儲介質(zhì);按照多個任務(wù)列表來排列多個任務(wù),其中在所述多個任務(wù)列表中的每一個任務(wù)列表對應(yīng)于在所述多個啟動器路徑中的相應(yīng)的啟動器路徑;把所述多個任務(wù)組合到執(zhí)行隊列中,其中基于優(yōu)先權(quán)機制對所述執(zhí)行隊列中的所述多個任務(wù)進行重新排序;以及執(zhí)行來自所述執(zhí)行隊列的所述多個任務(wù)。
2、 根據(jù)權(quán)利要求1所述的方法,其中所述組合進一步包括 確定是否存在多于一個的非空任務(wù)集;以及響應(yīng)于確定存在多于一個的非空任務(wù)集,執(zhí)行任務(wù)選擇代碼以把所述多 個任務(wù)重新組合和重新排序到單個執(zhí)行隊列中。
3、 根據(jù)權(quán)利要求1所述的方法,其中所述組合進一步包括 確定是否應(yīng)當(dāng)執(zhí)行所述多個任務(wù);響應(yīng)于確定應(yīng)當(dāng)執(zhí)行所述多個任務(wù),從所述多個任務(wù)列表中選擇用于執(zhí) 行的任務(wù);以及向所述執(zhí)行隊列發(fā)送所述任務(wù)。
4、 根據(jù)權(quán)利要求1所述的方法,進一步包括響應(yīng)于確定存在歸因于所述多個任務(wù)集中至少一個任務(wù)集的至少一種錯 誤狀態(tài),從所述執(zhí)行隊列中移除與所述至少一個任務(wù)集相關(guān)的至少一個任務(wù)。
5、 根據(jù)權(quán)利要求1所述的方法,其中所述目標設(shè)備與所述至少一個啟 動器設(shè)備是連續(xù)串行小型計算機系統(tǒng)接口 (SAS)設(shè)備。
6、 根據(jù)權(quán)利要求1所述的方法,其中所述優(yōu)先權(quán)機制是以所述目標設(shè)的機制。
7、 根據(jù)權(quán)利要求1所述的方法,其中所述目標設(shè)備是硬盤驅(qū)動器。
8、 一種目標設(shè)備,包括 微處理器;嵌入了計算機程序代碼的計算機可用介質(zhì),所述計算機可用介質(zhì)被耦接到所述微處理器,所述計算機程序代碼包括可由所述微處理器執(zhí)行的指令,且所述指令被配置用于經(jīng)由多個啟動器路徑,在目標設(shè)備中接收來自于至少 一 個啟動器設(shè)備的多個任務(wù),其中所述目標設(shè)備是循環(huán)的、非易失性存儲介質(zhì);按照多個任務(wù)列表來排列多個任務(wù),其中在所述多個任務(wù)列表中的每一個任務(wù)列表對應(yīng)于在所述多個啟動器路徑中的相應(yīng)的啟動器路徑;把所述多個任務(wù)組合到執(zhí)行隊列中,其中基于優(yōu)先權(quán)機制對所述執(zhí)行隊列中的所述多個任務(wù)進行重新排序;以及執(zhí)行來自所述執(zhí)行隊列的所述多個任務(wù)。
9、 一種數(shù)據(jù)處理系統(tǒng),包括 處理器;被耦接到所述處理器的數(shù)據(jù)總線; 經(jīng)由所述數(shù)據(jù)總線被耦接到所述處理器的存儲器; 被耦接到所述數(shù)據(jù)總線的至少 一個啟動器設(shè)備;以及 至少一個根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述至少一個目標設(shè)備 被耦接到所述數(shù)據(jù)總線。
10、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述用于組合的指令進一步 包括被配置用于如下的指令確定是否存在多于一個的非空任務(wù)集;以及響應(yīng)于確定存在多于一個的非空任務(wù)集,執(zhí)行任務(wù)選擇代碼以把所述多 個任務(wù)重新組合和重新排序到單個執(zhí)行隊列中。
11、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述用于組合的指令進一步 包括被配置用于如下的指令確定是否應(yīng)當(dāng)執(zhí)行所述多個任務(wù);響應(yīng)于確定應(yīng)當(dāng)執(zhí)行所述多個任務(wù),從所述多個任務(wù)列表中選擇用于執(zhí) 行的任務(wù);以及向所述執(zhí)行隊列發(fā)送所述任務(wù)。
12、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述可由所述微處理器執(zhí)行 的指令進一步包括被配置用于如下的指令響應(yīng)于確定存在歸因于所述多個任務(wù)集中至少一個任務(wù)集的至少一種錯 誤狀態(tài),從所述執(zhí)行隊列中移除與所述至少一個任務(wù)集相關(guān)的至少一個任務(wù)。
13、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述目標設(shè)備與所述至少一個啟動器設(shè)備是連續(xù)串行小型計算機系統(tǒng)接口 (SAS)設(shè)備。
14、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述優(yōu)先權(quán)機制是以所述目基礎(chǔ)的纟幾制。
15、 根據(jù)權(quán)利要求8所述的目標設(shè)備,其中所述目標設(shè)備是硬盤驅(qū)動器。
全文摘要
本發(fā)明包括一種用于改善連續(xù)串行小型計算機系統(tǒng)接口存儲設(shè)備性能的系統(tǒng)、計算機可執(zhí)行的方法和計算機可讀介質(zhì)。根據(jù)優(yōu)選的實施例,目標設(shè)備內(nèi)的微處理器經(jīng)由啟動器路徑的集合接收來自于至少一個啟動器設(shè)備的任務(wù)的集合。該目標設(shè)備是循環(huán)非易失性存儲介質(zhì)。該微處理器按照任務(wù)列表的集合來排列任務(wù)的集合。每一個任務(wù)列表對應(yīng)于相應(yīng)的啟動器路徑。微處理器任務(wù)的集合組合到執(zhí)行隊列中?;趦?yōu)先權(quán)機制對執(zhí)行隊列上的任務(wù)的集合進行重新排序。微處理器執(zhí)行來自執(zhí)行隊列的任務(wù)的集合。
文檔編號G06F3/06GK101221483SQ200710307799
公開日2008年7月16日 申請日期2007年11月16日 優(yōu)先權(quán)日2006年12月8日
發(fā)明者埃布爾·E·祖祖爾雷吉, 小托馬斯·R·福里爾, 賈森·E·穆爾, 阿斯加·塔瓦索利 申請人:國際商業(yè)機器公司