專利名稱:在系統(tǒng)中提供異步事件通知的方法
技術(shù)領(lǐng)域:
背景技術(shù):
計算機(jī)和計算機(jī)系統(tǒng)已經(jīng)無處不在。在大范圍的計算機(jī)硬件和計算機(jī)軟件可用的情況下,制定用于連接各種計算機(jī)設(shè)備和在這些計算機(jī)設(shè)備間通信的大量標(biāo)準(zhǔn)變得很重
要。 為了提供允許兼容性和互操作性的標(biāo)準(zhǔn),計算機(jī)產(chǎn)業(yè)已經(jīng)組成了成員公司組織。例如,目前,標(biāo)準(zhǔn)可用于計算機(jī)和外圍設(shè)備之間的硬件和軟件連接,諸如硬盤驅(qū)動和輸入/輸出設(shè)備的內(nèi)部計算機(jī)設(shè)備和諸如便攜式裝置的外部產(chǎn)品通過標(biāo)準(zhǔn)接口線纜附連到計算機(jī)并且使用標(biāo)準(zhǔn)通信協(xié)議。一些廣泛采用的例子包括通用串行總線(USB)、高級技術(shù)附件(ATA)和串行 ATA (SATA 或者 eSATA)接口。在這些系統(tǒng)的每個系統(tǒng)中,主機(jī)發(fā)起操作并向設(shè)備發(fā)送命令,而設(shè)備根據(jù)預(yù)定義協(xié)議響應(yīng)主機(jī)命令。在這些接口中未規(guī)定設(shè)備向主機(jī)發(fā)起命令或操作。設(shè)備只能向主機(jī)發(fā)送通過主機(jī)發(fā)送的命令而被請求的信息或者以其他方式由主機(jī)行為直接引發(fā)的信息。這種協(xié)議使用不對稱接口,其中主機(jī)和設(shè)備已經(jīng)定義命令和響應(yīng)的角色(例如,主機(jī)命令且設(shè)備響應(yīng)),而不像端到端通信協(xié)議,其中單元既可以作為發(fā)起者又可以作為目標(biāo)而操作。SCSI是提供這種端到端支持的一種標(biāo)準(zhǔn)接口。一些系統(tǒng)接口可能允許通過主機(jī)到設(shè)備的線纜在單元之間進(jìn)行硬件通知,然而新接口偏愛于串行通信,其不能在線纜上提供專用信號,并且在諸如串行ATA或USB的系統(tǒng)中不提供這種新接口。在具有主機(jī)和設(shè)備且未規(guī)定在任何時刻設(shè)備向主機(jī)通知未完成事件的系統(tǒng)中,設(shè)備只有不利的選擇。例如,一旦發(fā)生故障條件或者設(shè)備無法恢復(fù)的事件,一些設(shè)備可采取自復(fù)位或者異常中止未完成的命令以迫使主機(jī)引起注意并有希望恢復(fù)。這可能導(dǎo)致災(zāi)難性的數(shù)據(jù)損失或者導(dǎo)致系統(tǒng)不可操作。系統(tǒng)超時或者復(fù)位是嘗試恢復(fù)的最后手段。另外,在形勢(例如環(huán)境條件或者可恢復(fù)的錯誤)變得危急之前,設(shè)備對主機(jī)的通知可能是令人期望的。圖I圖示系統(tǒng)10,其使用了主機(jī)計算機(jī)11、設(shè)備13和允許主機(jī)計算機(jī)11和設(shè)備13之間的通信的可選互連線纜12。例如,圖I的通信可以包括例如通用串行總線、AT附件、串行附連的SCSI或串行ATA或通信接口。可替代地,一些設(shè)備13直接插入到主機(jī)11而不需要線纜12,并且以相同的方式操作。主機(jī)計算機(jī)11可以是可以向設(shè)備13發(fā)送命令的任何系統(tǒng)。例如,主機(jī)計算機(jī)可以是臺式計算機(jī)、筆記本電腦或者專用控制器。主機(jī)計算機(jī)11和設(shè)備13之間的接口可以是通用串行總線接口,通常稱為USB接口。USB接口還可以被稱為USB-l、USB-2或者USB-3,并且將來的版本是可以預(yù)料的。設(shè)備可支持命令排隊并包含命令隊列14。例如,設(shè)備13可以是諸如鍵盤、打印機(jī)或鼠標(biāo)的輸入/輸出(I/O)設(shè)備;或者是諸如磁盤驅(qū)動、固態(tài)驅(qū)動器、CD或者DVD播放器的存儲設(shè)備;或者是諸如調(diào)制解調(diào)器的通信設(shè)備;或者是諸如音樂或者視頻播放器的個人娛樂設(shè)備。圖2圖示系統(tǒng)20,其使用主機(jī)計算機(jī)11和設(shè)備13,主機(jī)計算機(jī)11使用線纜12連接到集線器15的主機(jī)側(cè),并且設(shè)備13使用可選線纜12連接到集線器15的設(shè)備側(cè)。集線器提供擴(kuò)展端口,從而多個設(shè)備可以連接到單個主機(jī)端口。在圖2所示的系統(tǒng)中,主機(jī)計算機(jī)是通信主機(jī);而設(shè)備被物理連接到集線器15。集線器提供至設(shè)備的物理接口,并且對設(shè)備來講似乎成為一臺主機(jī)。圖2所示的集線器在本領(lǐng)域中是眾所周知的并且是廣泛應(yīng)用的。本發(fā)明以下對主機(jī)或者主機(jī)計算機(jī)的引用可包括圖I所示的直接連接的主機(jī)或者圖2所示的通過集線器連接的主機(jī)。圖3圖示設(shè)備接收排隊命令的流程圖。開始于步驟300,設(shè)備在具有主機(jī)的系統(tǒng)中運行。在方框305中,設(shè)備檢查來自主機(jī)的命令接收。如果沒有接收到新命令(方框310),設(shè)備前進(jìn)至方框315以確定命令隊列中是否存在任何未完成的命令。如果隊列為空,設(shè)備返回方框305以繼續(xù)檢查新命令。如果在方框310中接收到新命令,則在方框325中設(shè)備檢查命令及其關(guān)聯(lián)的隊列命令標(biāo)簽有效性。如果命令無效或者標(biāo)簽無效,則在方框320中設(shè)備通過發(fā)送錯誤狀態(tài)來·響應(yīng)主機(jī)。如果命令和標(biāo)簽是有效的,則設(shè)備接受要執(zhí)行的命令(方框330)。設(shè)備將命令加入設(shè)備命令隊列,而任何其他未完成的命令將等待完成。在方框340中,設(shè)備將確定下一步應(yīng)該執(zhí)行的命令,并且根據(jù)需要為獲得最佳性能而將隊列重新排序,但是重新排序不是必需的。然后,在方框345中設(shè)備執(zhí)行命令隊列中的命令。圖3所示的流程圖是排隊命令過程的一個例子。例如,可替代的實施例可以將命令接收、隊列排序和/或命令執(zhí)行作為同步操作來執(zhí)行以提供改進(jìn)的性能。
發(fā)明內(nèi)容
本發(fā)明公開在系統(tǒng)中從設(shè)備向主機(jī)提供異步通知的方法,其中不要求硬件提供異步操作。在本發(fā)明的一個實施例中,提供了在支持命令排隊的系統(tǒng)中自設(shè)備提供異步事件通知的方法。該方法包括從主機(jī)接收排隊命令和隊列標(biāo)簽;從主機(jī)接受排隊命令,而不用調(diào)度命令以完成;監(jiān)控設(shè)備操作以監(jiān)控異步事件;檢測異步事件;以及通過調(diào)度和向主機(jī)發(fā)送包括標(biāo)簽的響應(yīng)提供異步事件的通知。在本發(fā)明的另一個實施例中,提供了在支持命令排隊并且命令從主機(jī)發(fā)送到設(shè)備的系統(tǒng)中從設(shè)備提供異步事件通知的方法。設(shè)備接收命令和關(guān)聯(lián)的隊列標(biāo)簽,并且確定標(biāo)簽不是有效標(biāo)簽。然后,設(shè)備確定命令是否是異步事件通知請求類型命令,如果是,則將命令以有效命令接受。在接受命令后,設(shè)備開始監(jiān)控異步事件。如果檢測到異步事件,則設(shè)備通過向主機(jī)發(fā)送響應(yīng)和關(guān)聯(lián)標(biāo)簽來提供事件的通知。在本發(fā)明的另一個實施例中,提供了在支持命令排隊并且從主機(jī)向設(shè)備發(fā)送命令以使能非請求的隊列命令響應(yīng)的系統(tǒng)中從設(shè)備提供異步事件通知的方法。設(shè)備接收命令,并且向命令分配或者關(guān)聯(lián)隊列標(biāo)簽,并且使能非請求的隊列命令響應(yīng)。設(shè)備開始監(jiān)控異步事件。如果檢測到異步事件,則設(shè)備通過向主機(jī)發(fā)送響應(yīng)和關(guān)聯(lián)標(biāo)簽來提供事件的通知。
圖I圖示主機(jī)和設(shè)備系統(tǒng)的框圖。圖2圖示主機(jī)和具有集線器的設(shè)備系統(tǒng)的框圖。
圖3是圖示設(shè)備接收排隊命令的流程圖。圖4是圖示本發(fā)明的使用異步事件命令的實施例的流程圖。圖5是圖示本發(fā)明的使用有效隊列命令標(biāo)簽或者無效隊列命令標(biāo)簽的實施例的流程圖。 圖6是圖示本發(fā)明的使用主機(jī)使能操作的實施例的流程圖。圖7圖示根據(jù)本發(fā)明的實施例的設(shè)備的框圖。圖8圖示根據(jù)本發(fā)明的實施例的分離的隊列存儲。圖9圖示根據(jù)本發(fā)明的實施例的分區(qū)的隊列存儲。
具體實施例方式圖4圖示本發(fā)明的具有異步事件命令的實施例。開始于方框400,設(shè)備在具有主機(jī)的系統(tǒng)中運行。在方框405,設(shè)備檢查來自主機(jī)的命令接收。如果沒有接收到新命令(方框410),則設(shè)備前進(jìn)到方框415以確定命令隊列里是否存在任何未完成的命令。如果隊列為空,則設(shè)備返回到方框405以繼續(xù)檢查新命令。如果隊列不為空,則在方框445中該設(shè)備繼續(xù)執(zhí)行未完成的命令。如果在方框410中接收到新命令,則在方框412中設(shè)備檢查該命令及其關(guān)聯(lián)的隊列命令標(biāo)簽有效性。如果命令無效或標(biāo)簽無效,在方框420中設(shè)備通過發(fā)送錯誤狀態(tài)來響應(yīng)主機(jī)。如果命令和標(biāo)簽是有效的,則設(shè)備接受命令(方框425)。在方框430中設(shè)備檢查以確定命令是否為異步事件通知命令(AEN命令)。如果命令不是AEN命令,則該設(shè)備將把命令加入到設(shè)備命令隊列中(方框435),而任何其它未完成命令將等待完成。在方框440中,設(shè)備將決定接下來執(zhí)行哪個命令,并且設(shè)備可能根據(jù)需要將隊列重新排序以獲得最佳性能。之后,在方框445中,設(shè)備執(zhí)行命令隊列中的命令。返回到方框430,如果命令是AEN命令,則設(shè)備將開始新過程(路徑432),其包括方框455到465。該過程起始于方框455,通過由設(shè)備發(fā)起對異步事件的監(jiān)控開始。如果在方框460中沒有檢測到事件,則設(shè)備繼續(xù)監(jiān)控。如果在方框460中檢測到事件,設(shè)備將產(chǎn)生結(jié)束狀態(tài)并向主機(jī)傳遞異步事件狀態(tài)。再次返回到方框430,如果命令是AEN命令,則除了在方框455開始的新過程外,該過程還通過路徑450返回到方框405繼續(xù)處理隊列命令。圖4中顯示的實施例是排隊命令過程的一個實施例。例如,可替代的實施例可能將命令接收、隊列排序和/或命令執(zhí)行作為同步操作來執(zhí)行以提供改進(jìn)的性能。圖5圖示處理有效或無效隊列命令標(biāo)簽的創(chuàng)造性過程的實施例。開始于方框500,設(shè)備在具有主機(jī)的系統(tǒng)中運行。在方框505,設(shè)備檢查來自主機(jī)的命令接收。如果接收到新命令(方框510),則該過程前進(jìn)至方框515以檢查命令及其關(guān)聯(lián)的隊列命令標(biāo)簽有效性。如果命令和標(biāo)簽是有效的,則該過程前進(jìn)至方框550并檢查方框510中接收到的新命令以確定命令是否為異步事件通知命令(AEN命令)。如果命令不是AEN命令,則設(shè)備將命令加入到設(shè)備命令隊列(方框555),而任何其它未完成的命令等待完成。在方框560中,設(shè)備將確定下一步應(yīng)該執(zhí)行的命令,并且根據(jù)需要將隊列重新排序以獲得最佳性能。然后,在方框565設(shè)備執(zhí)行命令隊列中的命令并返回到505以重新開始操作。返回到方框550,如果命令是AEN命令,則設(shè)備開始新的過程(路徑551),包括方框530到540。開始于方框530的該過程開始于設(shè)備接收要處理的AEN命令。在方框530中,設(shè)備將發(fā)起對異步事件的監(jiān)控。如果在方框535中沒有檢測到事件,則設(shè)備繼續(xù)監(jiān)控。如果在方框535中檢測到事件,則在方框540中設(shè)備將產(chǎn)生結(jié)束狀態(tài)并且向主機(jī)傳遞異步事件狀態(tài),然后重新返回到方框505繼續(xù)操作。再次返回到方框550,如果命令是AEN命令,則除了通過路徑551在方框530開始的新過程之外,該過程還通過路徑552返回到方框505繼續(xù)處理隊列命令。返回到方框515,如果命令和標(biāo)簽是無效的,該過程前進(jìn)到方框520。如果命令是AEN類型的命令,在方框530中設(shè)備將發(fā)起對異步事件的監(jiān)控。如果在方框535中沒有檢測到事件,則該設(shè)備繼續(xù)監(jiān)控。如果在方框535中檢測到事件,則在方框540中設(shè)備將產(chǎn)生結(jié)束狀態(tài)并且向主機(jī)傳遞異步事件狀態(tài),然后重新返回到方框505以繼續(xù)隊列命令操作。
再返回到方框520,除了轉(zhuǎn)向在方框530開始的新過程之外,設(shè)備還通過路徑522返回到方框505繼續(xù)處理隊列命令。在方框520,如果命令不是AEN命令,設(shè)備向主機(jī)發(fā)送錯誤狀態(tài)并返回到方框505以繼續(xù)隊列命令操作。在圖5圖示的實施例中,如果命令是AEN命令,貝U處理無效標(biāo)簽。例如,無效標(biāo)簽可能是復(fù)制的標(biāo)簽分配、超范圍數(shù)值、預(yù)留標(biāo)簽或者任何通常不被接受且將導(dǎo)致向主機(jī)返回錯誤狀態(tài)的標(biāo)簽。圖5的方法解決了以下問題,其中如果接收到具有無效標(biāo)簽的命令,則設(shè)備可能異常中止所有未完成的命令,并且可能給系統(tǒng)造成災(zāi)難性的故障。在圖5所示的實施例中,如果命令是AEN命令,無效標(biāo)簽將被接受。在本發(fā)明的另一個實施例中,可以通過命令或者默認(rèn)操作使能設(shè)備以開始監(jiān)控和報告異步事件。如果主機(jī)通過設(shè)備查詢獲知該特征,則主機(jī)可以使用約定的命令標(biāo)簽使設(shè)備能夠發(fā)起異步事件通知。標(biāo)簽可以是有效或者無效標(biāo)簽值。在使能該特性的同時主機(jī)可以提供優(yōu)選的標(biāo)簽。該設(shè)備也可以提供缺省標(biāo)簽。在本發(fā)明的另一個實施例中,任意排隊命令可以包括用于使能異步事件通知的選項比特/位。通過利用本發(fā)明的實施例,主機(jī)不必向驅(qū)動器發(fā)送任何命令,從而簡化操作和費用。在經(jīng)過復(fù)位或者掉電之后,設(shè)備中被使能的特征可以是持久的或非持久的。這降低了啟動或者復(fù)位操作后的配置時間。在本發(fā)明的實施例中,可以選擇在設(shè)備發(fā)生復(fù)位后持續(xù)使能異步事件通知。在本發(fā)明的實施例中,可以選擇在設(shè)備斷電后持續(xù)使能異步事件通知。圖6圖示本發(fā)明的具有主機(jī)使能操作的實施例。開始于方框610,對設(shè)備進(jìn)行上電或設(shè)備復(fù)位。在復(fù)位結(jié)束后,在方框615中設(shè)備將檢查其配置信息以確定異步事件通知特征是否被使能。如果該特征未被使能,則在方框620該過程終止。如果特征被使能,設(shè)備將分配用于報告AEN命令狀態(tài)的標(biāo)簽。分配的標(biāo)簽可以是之前主機(jī)提供的標(biāo)簽或設(shè)備分配的標(biāo)簽。在方框630中設(shè)備將發(fā)起對異步事件的監(jiān)控。如果在方框635中沒有檢測到事件,則設(shè)備繼續(xù)監(jiān)控。如果在方框635中檢測到事件,則在方框640中設(shè)備將產(chǎn)生結(jié)束狀態(tài)并向主機(jī)傳遞異步事件狀態(tài),然后選擇性地返回到方框630以繼續(xù)監(jiān)控。在圖4、圖5和圖6的實施例中,未調(diào)度AEN命令以完成該命令并且AEN命令可能持續(xù)處于無限期地未完成狀態(tài)而不影響正在進(jìn)行的隊列命令操作或者隊列順序。在異步事件發(fā)生后,將調(diào)度AEN命令以完成該命令。設(shè)備可以選擇立即完成或者根據(jù)事件嚴(yán)重性推遲通知。
圖7圖示根據(jù)本發(fā)明的一種實施例的設(shè)備700的框圖。設(shè)備700包括處理器710和命令隊列14。命令隊列可以是處理器710分配的內(nèi)存的一部分,或者是諸如處理器710可訪問的寄存器或者數(shù)據(jù)存儲的專用硬件。隊列包含與每個未完成的標(biāo)簽排隊命令有關(guān)的信息。標(biāo)簽可以是數(shù)字,其圖示為隊列中的單獨項1、2、3,等等。異步監(jiān)控單元720可以是運行在處理器710上的軟件或者是不同的硬件單元。在一個實施例中,異步監(jiān)控單元720將通過硬件功能或者通過輪詢監(jiān)控異步事件。在一個實施例中,異步監(jiān)控單元720可以通過中斷處理器或者由處理器執(zhí)行輪詢程序向處理器710提供信息。異步隊列存儲730可以是與命令隊列不同的任何典型的存儲器/數(shù)據(jù)存儲,可以是完全分離的單元、區(qū)間、不同的存儲器位置或類似物?!?br>
圖8圖示根據(jù)本發(fā)明的實施例的隊列存儲14和異步隊列存儲730。在該實施例中,命令隊列14不同于異步存儲730。隊列存儲14可以獨立于異步存儲730操作,并且被獨立調(diào)度和排序以用于命令執(zhí)行以及由處理器710完成。在本發(fā)明的實施例中,異步監(jiān)控單元720和異步存儲730中的操作將不影響命令隊列14中的操作。圖9圖示根據(jù)本發(fā)明的實施例分區(qū)的隊列存儲740。在一個實施例中,分區(qū)的隊列存儲740是通用存儲器或由處理器740分配的數(shù)據(jù)存儲。分區(qū)的存儲740包括兩個分區(qū),公用隊列分區(qū)14和異步存儲分區(qū)730。根據(jù)本發(fā)明的實施例,盡管兩個分區(qū)可能處在公共的存儲器或者數(shù)據(jù)位置中,但是兩個分區(qū)仍然被分開處理。在本發(fā)明的實施例中,監(jiān)控的異步事件包括超過與以下參數(shù)中的一個或更多參數(shù)有關(guān)的至少一個閾值溫度;沖擊;振動;功率;濕度;高度;氣壓;錯誤率;磨損;和延遲的完成閾值。在本發(fā)明的另一個實施例中,異步事件包括加密、許可或者使用權(quán)條件。盡管根據(jù)特定實施例描述了以上內(nèi)容,但是根據(jù)本文的公開,其它實施例對于本領(lǐng)域的普通技術(shù)人員將是顯而易見的。例如,在一個可替代的實施例中,可以同時執(zhí)行操作,而不是有序執(zhí)行操作,從而提升性能。在另一個實施例中,可以在硬件實現(xiàn)中執(zhí)行異步事件監(jiān)控并且自動報告,無需處理器參與。結(jié)合在處理器上運行的硬件和/或軟件實現(xiàn)本發(fā)明的可替代方式或者將本發(fā)明實施為可配置為在多種模式下運行的硬件實現(xiàn)對于本領(lǐng)域的普通技術(shù)人員將是顯而易見的設(shè)計選擇。因此,本發(fā)明的系統(tǒng)和方法可以實現(xiàn)為提供以下編程的軟件例如,一組指令和/或在計算機(jī)可讀介質(zhì)內(nèi)實現(xiàn)的元數(shù)據(jù)。描述的實施例僅通過示例的方式呈現(xiàn),而不旨在限制本公開的范圍。實際上,在不偏離本發(fā)明的精神的情 況下,說明書描述的新穎方法和系統(tǒng)可以以其他各種形式實現(xiàn)。因此,本發(fā)明不限于任何優(yōu)選的實施例,而是通過參照所附的權(quán)利要求來限定。
權(quán)利要求
1.一種在支持命令排隊的系統(tǒng)中利用設(shè)備進(jìn)行異步事件通知的方法,其包括以下步驟 從主機(jī)接收命令和標(biāo)簽; 接受所述命令而不調(diào)度待完成的所述命令; 監(jiān)控設(shè)備操作以監(jiān)控異步事件; 檢測異步事件;和 通過向所述主機(jī)發(fā)送包括所述標(biāo)簽的響應(yīng)來提供所述異步事件的通知。
2.根據(jù)權(quán)利要求I所述的方法,其中所述命令包括異步事件通知請求。
3.根據(jù)權(quán)利要求2所述的方法,其中所述異步事件通知請求包括命令碼或者命令選項位。
4.根據(jù)權(quán)利要求I所述的方法,其中所述標(biāo)簽包括無效標(biāo)簽、超范圍標(biāo)簽或復(fù)制標(biāo)簽。
5.根據(jù)權(quán)利要求I所述的方法,其中所述異步事件包括超過與以下參數(shù)的一個或更多參數(shù)有關(guān)的至少一個閾值 溫度; 沖擊; 振動; 功率; 濕度; 高度; 氣壓; 錯誤率; 磨損;和 延遲的完成閾值。
6.根據(jù)權(quán)利要求I所述的方法,其中所述異步事件包括加密、許可或者使用權(quán)條件。
7.根據(jù)權(quán)利要求I所述的方法,其中接收和提供的步驟利用通用串行總線、串行附連SCSI、AT附件或串行ATA通信中的至少一種。
8.—種在支持命令排隊的系統(tǒng)中利用設(shè)備進(jìn)行異步事件通知的方法,其包括以下步驟 從主機(jī)接收命令和標(biāo)簽; 確定所述命令包括異步事件通知請求; 接受所述命令而不調(diào)度待完成的所述命令; 監(jiān)控設(shè)備操作以監(jiān)控至少一個異步事件; 檢測所述至少一個異步事件,和 通過向所述主機(jī)發(fā)送包括所述標(biāo)簽的響應(yīng)來提供至少一個異步事件的通知。
9.根據(jù)權(quán)利要求8所述的方法,其中所述異步事件通知請求包括命令碼或命令選項位。
10.根據(jù)權(quán)利要求8所述的方法,其中確定所述命令包括異步事件通知請求的步驟包括確定來自所述主機(jī)的排隊命令包括無效標(biāo)簽。
11.根據(jù)權(quán)利要求10所述的方法,其中所述無效標(biāo)簽包括超范圍標(biāo)簽或者復(fù)制標(biāo)簽。
12.根據(jù)權(quán)利要求8所述的方法,其中所述異步事件包括超過與以下參數(shù)的一個或更多參數(shù)有關(guān)的至少一個閾值 溫度; 沖擊; 振動; 功率; 濕度; 高度; 氣壓; 錯誤率; 磨損;和 延遲的完成閾值。
13.根據(jù)權(quán)利要求8所述的方法,其中所述異步事件包括加密、許可或使用權(quán)條件中的至少一個。
14.根據(jù)權(quán)利要求8所述的方法,其中接受和提供的步驟是使用通信協(xié)議實現(xiàn)的,所述通信協(xié)議包括通用串行總線、AT附件、串行附連SCSI或串行ATA通信中的至少一種。
15.一種在支持命令排隊的系統(tǒng)中用于來自設(shè)備的異步通知的方法,其包括以下步驟 從主機(jī)接收命令以使能非請求的隊列命令響應(yīng), 分配標(biāo)簽用于非請求的隊列命令響應(yīng), 響應(yīng)于主機(jī)命令使能非請求的隊列命令響應(yīng), 監(jiān)控設(shè)備操作以監(jiān)控異步事件; 檢測異步事件;和 通過向所述主機(jī)發(fā)送包括分配的標(biāo)簽的響應(yīng)來提供所述異步事件的通知。
16.根據(jù)權(quán)利要求15所述的方法,其中在經(jīng)歷復(fù)位操作期間持續(xù)使能步驟。
17.根據(jù)權(quán)利要求15所述的方法,其中在經(jīng)歷掉電期間持續(xù)使能步驟。
18.根據(jù)權(quán)利要求15所述的方法,其中使用所述命令接收所述標(biāo)簽。
19.根據(jù)權(quán)利要求15所述的方法,其中利用所述設(shè)備分配所述標(biāo)簽。
20.根據(jù)權(quán)利要求15所述的方法,其中所述標(biāo)簽包括無效標(biāo)簽、超范圍標(biāo)簽或復(fù)制標(biāo)簽中的至少一種。
全文摘要
一種在系統(tǒng)中從設(shè)備向主機(jī)提供異步通知的方法,該方法不要求硬件提供異步操作。在本發(fā)明的一個實施例中,系統(tǒng)支持命令排隊并且命令從主機(jī)向設(shè)備發(fā)送。設(shè)備接收命令和關(guān)聯(lián)的標(biāo)簽,并且在有效的情況下接受該命令。在接受該命令后,設(shè)備開始監(jiān)控異步事件。如果檢測到異步事件,設(shè)備通過向主機(jī)發(fā)送響應(yīng)和關(guān)聯(lián)的標(biāo)簽來提供事件的通知。在本發(fā)明的另一個實施例中,異步通知的方法使能無效標(biāo)簽的使用。在本發(fā)明的進(jìn)一步的實施例中,主機(jī)可以使能異步通知并在不需要額外的主機(jī)命令的情況下進(jìn)行操作。
文檔編號G06F17/00GK102959502SQ201180031986
公開日2013年3月6日 申請日期2011年4月29日 優(yōu)先權(quán)日2010年4月30日
發(fā)明者C·史蒂文斯 申請人:西部數(shù)據(jù)技術(shù)公司