TWI443580B - 透過埠共享硬體之對儲存裝置之帶外存取 - Google Patents

透過埠共享硬體之對儲存裝置之帶外存取 Download PDF

Info

Publication number
TWI443580B
TWI443580B TW100123107A TW100123107A TWI443580B TW I443580 B TWI443580 B TW I443580B TW 100123107 A TW100123107 A TW 100123107A TW 100123107 A TW100123107 A TW 100123107A TW I443580 B TWI443580 B TW I443580B
Authority
TW
Taiwan
Prior art keywords
command
host
storage device
controller interface
operating system
Prior art date
Application number
TW100123107A
Other languages
English (en)
Other versions
TW201216162A (en
Inventor
David A Edwards
Eng Hun Ooi
Venkat R Gokulrangan
Hormuzd M Khosravi
Chai Huat Gan
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201216162A publication Critical patent/TW201216162A/zh
Application granted granted Critical
Publication of TWI443580B publication Critical patent/TWI443580B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Description

透過埠共享硬體之對儲存裝置之帶外存取
本發明之揭示係大致有關對企業及主從運算環境之管理。
諸如資料備份及恢復等的線上儲存服務、防病毒掃描、磁碟修復、及惡意軟體移除等的服務目前係經由與安裝了儲存工具的遠端網路伺服器之通訊而可廣泛地提供給用戶端電腦。通常使用被安裝在用戶端電腦中之軟體代理(software agent)建立用戶端電腦與遠端伺服器間之通訊。然而,並不一定易於安裝這類軟體代理,且這類軟體代理可能被用戶端電腦上的病毒或惡意軟體關閉或感染。
此外,目前的線上儲存服務及軟體代理依賴用戶端電腦的作業系統。因此,在可提供線上儲存服務之前,必須先將一作業系統提供給用戶端系統。此外,當該作業系統受損或癱瘓時,遠端伺服器將失掉存取用戶端電腦的大量儲存裝置之機會,且無法將線上儲存服務提供給用戶端電腦。
本發明之實施例可提供一種能夠經由埠共享硬體而對儲存裝置執行帶外存取之方法、設備、系統、及電腦程式產品。將帶外存取提供給儲存裝置時,能夠在作業系統不工作時以及在該作業系統處於作動狀態時執行系統管理功能。可將一管理服務發出的儲存命令與該主機作業系統發出的儲存命令交插。該主機作業系統保持所有權,且控制其儲存裝置,但是本發明可在該主機作業系統工作時執行管理活動。
在一實施例中,一方法包含:接收經由主機控制器介面存取儲存裝置之一第一命令;接收經由帶外控制器介面存取該儲存裝置之一第二命令;決定在執行了該第一命令之後的該儲存裝置之預期狀態;決定該第二命令的執行是否將干擾該預期狀態;以及如果該第二命令的執行不會干擾該預期狀態,則在執行該第二命令之前先執行該第一命令,其中係在不涉及該主機作業系統之情形下執行該第二命令。如果該第二命令的執行會干擾該預期狀態,則該方法可進一步包含:取消該第二命令,且執行該第一命令;將該第二命令延遲直到該儲存裝置的想要狀態達成為止,執行該第一命令,且在該儲存裝置的該想要狀態達成時執行該第二命令;及/或決定在執行該第二命令之後用來恢復該預期狀態之一第三命令,且執行該第一命令、該第二命令、及該第三命令,同時延遲發信該第一命令的完成,直到該第三命令已執行後為止。在一實施例中,於接收到該第一及第二命令時,且於執行該第一及第二命令的同時,該主機作業系統係處於作動狀態。該方法可進一步包括:將該第一命令放置到與該主機控制器介面相關聯的一第一記憶體;保護該第一記憶體不被該帶外控制器介面存取;將該第二命令放置到與該帶外控制器介面相關聯的一第二記憶體;保護該第二記憶體不被該主機作業系統及該主機控制器介面存取。本發明也提供了一種具有用來執行該方法的指令之系統及電腦程式產品。
在本說明書中提及本發明的"一個實施例"或"一實施例"時,意指參照該實施例而述及的一特定特徵、結構、或特性被包含在本發明的至少一實施例中。因此,在本說明書中之各部分中出現詞語"在一實施例中"或"根據一實施例"等的辭語時,不必然都參照到相同的實施例。
為了便於解說,述及了一些特定組態及細節,以便提供對本發明的徹底了解。然而,對此項技術具有一般知識者當可了解:可在沒有本說明書提供的該等特定細節之情形下實施本發明。此外,可省略或簡化一些習知的特徵,以便不會模糊了本發明。可在本說明的全文中提供各種實例。這些實例只是對本發明的特定實施例之說明。本發明之範圍不限於所提供的該等例子。
本發明之儲存服務包括(但不限於)對用戶端電腦的作業系統映像檔(operating system image)之初始提供、資料備份及恢復、磁碟修復、防病毒掃描及惡意軟體移除、安全系統的安裝、以及系統效能最佳化。
術語"帶外"("out-of-band")在本發明中被用來描述諸如一伺服器裝置與一用戶端裝置的一管理模組間之通訊等的獨立於主流之通訊,且係以獨立於該用戶端裝置的作業系統(Operating System;簡稱OS)之方式進行該伺服器裝置與該用戶端裝置的該管理模組間之通訊。
第1圖是根據本發明的一實施例而被配置成能夠經由埠共享硬體進行對儲存裝置的帶外存取的一系統100。迷你進階主機控制介面(Advanced Host Controller Interface;簡稱AHCI)110代表與主機AHCI 120共享各埠102(被個別地標示為埠0至5)之一帶外控制器介面。系統100之一主機作業系統106不可存取迷你AHCI 110,而作業系統106可存取主機AHCI 120。迷你AHCI 110提供一遠端儲存管理服務108對系統100的儲存裝置160A至160F之存取,而該遠端儲存管理服務108經由網路連接109將儲存服務提供給系統100。係在獨立於主機作業系統106且沒有主機作業系統106的協助之情形下,提供由迷你AHCI 110提供之存取。主機AHCI 120提供主機作業系統106對系統100的儲存裝置160A至160F之存取。主機AHCI 120也提供對各埠104(被個別地標示為埠6及7)之存取,以便將非揮發性記憶體136之存取提供給該主機作業系統。
當經由迷你AHCI 110發出一儲存命令時,迷你AHCI 110將該命令資訊放置到待用於處理管理命令的一記憶體管理引擎(ME)上記憶體ME UMA 134中儲存之一韌體表112。該命令資訊將包含該命令以及該命令將要操作的資料之一些指標。這些資料指標將被轉換為儲存裝置160A至160F可存取的一些分頁。迷你AHCI 110傳送一信號,用以將一命令已被放置到記憶體之訊息通知命令處理區塊140。記憶體ME UMA 134含有六個被共享的埠102(被個別地標示為埠0至5)中之每一埠的一槽,因而可為每一埠處理一管理命令。主機作業系統106不可存取記憶體ME UMA 134中儲存之韌體表112,且只能經由迷你AHCI介面110存取該等韌體表112。
當該主機作業系統經由主機AHCI 120發出一儲存命令,主機AHCI 120將命令資訊放置到一主機記憶體132位置中儲存之主機表122。該命令資訊將包含命令資料以及該命令將要操作的資料之一些指標。這些資料指標將被轉換為儲存裝置160A至160F可存取的一些分頁。主機AHCI 120傳送一信號,用以將一命令已被放置到記憶體之訊息通知命令處理區塊140。主機記憶體132含有八個埠102及104(被個別地標示為被共享的埠0至5以及NVM埠6及7)中之每一埠的32槽,因而可為每一埠處理多達32個命令。主機作業系統106可經由主機AHCI 120而存取主機記憶體132中儲存之主機表122,但是無法經由迷你AHCI介面110存取該等主機表122。防止主機AHCI 120經由晶片組硬體而存取記憶體ME UMA 134,且同樣地防止迷你AHCI介面110經由晶片組硬體而存取主機記憶體132。如果一記憶體參考位址超出各別介面之範圍,則參考該記憶體之要求被該硬體捨棄。
命令處理區塊140包含提取及定序器區塊142,該提取及定序器區塊142自被指定的記憶體位置(針對管理服務發出的命令之ME UMA 134、以及針對主機發出的命令之主機記憶體132)提取命令。當接收到指示一命令已被放置到一記憶體位置的一信號時,提取及定序器區塊142自主機記憶體132或ME UMA記憶體134提取命令資訊。執行區塊144執行該命令,且直接記憶體存取(DMA)區塊146將直接記憶體存取指令放置到一交易循環緩衝器148,以供執行。
提取及定序器區塊142根據作為命令信號的接收來源之控制器(迷你AHCI 110或主機AHCI 120)而自適當的命令表提取命令。經由DMA區塊146的一DMA轉移而將該資訊轉移到交易循環緩衝器148(一種基於硬體之佇列)的頭部。於進行該DMA轉移時,先進技術連接(ATA)命令過濾器區塊170檢查該命令資訊,以便設定該交易緩衝器條目之旗標及輸入/輸出(IO)標記欄位,其中係根據表150而將該交易緩衝器條目格式化,且將於下文進一步詳細地說明該交易緩衝器條目。在ATA命令過濾器區塊170執行ATA命令檢查期間,參考查詢表180而找出唯一的ATA命令識別碼。當在被要求的主機命令與查詢表180中之一條目進行一命令識別碼匹配時,根據該命令識別碼之查詢表資料而設定交易緩衝器條目150之旗標欄位。
一旦一條目被放置到交易循環緩衝器148之後,即以信號通知執行區塊144執行來自交易循環緩衝器148的尾部之命令。在將該命令資訊傳送到裝置160A至160F中之一裝置之前,執行單元144檢查其將要執行的交易循環緩衝器148之旗標欄位。如果中斷次一命令(Interrupt Next Command)位元被設定,則執行單元144將設定一內部旗標,用以在執行來自交易循環緩衝器148的次一命令時中斷管理服務108。如果執行之前中斷(Interrupt before Execution)位元被設定,則執行單元144將中斷查詢管理服務108,以便作出決定,且一旦執行單元144接收到可繼續執行的一信號之後,即繼續執行,因而可讓管理服務108有時間作出決定。
一旦執行單元144決定該決定是可接收的,且將一命令傳送到裝置160A至160F中之一裝置之後,執行單元144然後以信號將來自交易循環緩衝器148的交易循環緩衝器條目150的(命令韌體資訊結構)CFIS欄位之一DMA通知該裝置。一該裝置完成了該命令之後,通常被直接傳送到主機AHCI控制器120的所有狀態改變及回應資訊現在被傳送回交易循環緩衝器148。如果交易循環緩衝器條目150的旗標欄位中之完成之前中斷(Interrupt before Completion)位元針對被執行的命令而被設定,則執行區塊144將中斷管理服務108,以便檢查完成資訊。一旦管理服務108完成了對該完成資訊的檢查之後,管理服務108以信號通知執行單元144,且執行單元144執行該完成資訊及狀態的DMA轉移回到主機AHCI控制器120。
根據表150而將各交易循環緩衝器條目格式化。在所示之該實施例中,每一交易循環緩衝器條目包含20個雙字組(double word)。該交易循環緩衝器的總記憶體要求因而是每一埠為240個位元組,且六個被共享的埠之總記憶體要求是1.4千位元組。在另一實施例中,也在該交易循環緩衝器中為兩個非被共享的埠分配記憶體,因而可為所有八個埠分配記憶體。在該交易循環緩衝器條目各式之第一雙字組中,位元00至07指示該命令是被主機經由主機AHCI 120啟動或是被管理服務108經由迷你AHCI 110啟動。位元08至15被用於特殊旗標,例如:位元8指示在執行該命令之前將產生一中斷;位元9指示在以信號通知該命令的完成之前將產生一中斷;位元10指示在處理次一命令之前將產生一中斷。位元10使次一命令能夠被檢查,因而可在改變該裝置的狀態之前,先識別可能影響到該裝置的狀態之兩個或更多個命令的序列。位元16至31被保留。
該交易循環緩衝器條目格式中之第二雙字組被用於命令參數;十六個雙字組被用於命令韌體資訊結構(Command Firmware Information Structure;簡稱CFIS)(類似於AHCI規格中使用的CFIS),且兩個雙字組被用於命令完成參數。
命令處理區塊140將ATA命令過濾器區塊170用來檢查命令,以便決定額外的管理處理是否為必要的。下文中將參照第2圖而進一步說明命令處理區塊140之操作。
請再參閱第1圖,當完全供電給平台100時,記憶體中被稱為上記憶區(Upper Memory Area;簡稱UMA)的一部分(亦即,ME UMA 134)可被用於管理處理,且被迷你AHCI 110使用。一般而言,因為基本輸入/輸出系統(Basic Input Output System;簡稱BIOS)於系統啟動時配置的一記憶體隔離機構,所以主機作業系統106無法存取ME UMA 134。該記憶體隔離機構在主機作業系統106運行之前鎖定了對ME UMA記憶體134的存取。藉由將管理服務108對記憶體的該部分之使用與主機作業系統106對記憶體的該部分之使用隔離,而使管理處理的完整性不會受到可能影響到主機作業系統106的病毒或其他惡意軟體之影響。
第2圖是根據本發明的一實施例而能夠對儲存裝置進行帶外存取的埠共享硬體及相關聯韌體之操作流程圖。在本說明書中,係以被第1圖所示命令處理模組140的各組件執行之方式說明第2圖之步驟。在"接收與命令相關的信號"步驟205中,命令處理模組140經由迷你AHCI 110或主機AHCI 120而接收通知命令資訊已被放置到主機記憶體132中之主機表122或ME UMA 134中之韌體表112的一信號。控制繼續進入"是管理或或是主機發出的命令?"決定點210,此時決定是由管理服務108或主機作業系統106發出該命令。如果由主機作業系統106發出該命令,則控制繼續進入"檢查命令"步驟215,此時自主機記憶體132中之主機表122擷取該命令資訊。該命令被檢查,以便決定是否需要額外的管理處理。例如,用來將資料儲存在儲存裝置上之簡單的讀取/寫入命令可以不需要額外的管理處理,而用來使儲存裝置處於一閒置狀態的命令將需要額外的管理處理,以便保證任何後續的管理命令在完成之後會將該裝置返回到該閒置狀態。控制繼續自"檢查命令"步驟215進入"是否需要管理處理?"決定點220,以便決定是否需要管理處理。如果在"是否需要管理處理?"決定點220上係如同簡單讀取/寫入命令之情形而不需要管理處理,則控制繼續進入"處理主機命令"步驟230,此時執行主機命令。在執行了該主機命令之後,完成了對該主機命令的處理,且本程序終止。
在"是否需要管理處理?"決定點220之後,如果需要管理處理,則控制繼續進入"決定所需的額外管理處理之類型"步驟240。在主機命令改變了該裝置的狀態之情形中,命令處理模組140可在主機命令完成了之後促成進行額外的管理處理。例如,命令處理模組140可在將主機命令放置到交易循環緩衝器148時設定一旗標,以便保證在以信號通知己完成了該主機命令的處理之前先產生一中斷。舉另一例子,如果一主機命令已重設儲存裝置,則命令處理模組140可取消任何待處理的管理命令。
在"是管理或或是主機發出的命令?"決定點210上,如果係由管理服務108經由迷你AHCI 110發出該命令,則控制繼續進入"是否有未完成的主機命令?"決定點250。如果沒有任何等待執行的主機命令,則控制繼續進入"處理管理命令"步驟265,此時執行該管理命令。在執行了該管理命令之後,完成了對該命令的處理,且本程序終止。
在"是否有未完成的主機命令?"決定點250上,如果一些主機命令正在等待執行,則控制繼續進入"讓主機命令完成"步驟255。可在進一步處理該管理命令之前,先完成佇列中之所有主機命令的執行。該管理命令的執行之延遲可讓該儲存裝置在對該儲存裝置執行管理服務之前先進入一穩定的狀態。
控制自"讓主機命令完成"步驟255繼續進入"管理命令在已知的裝置狀態下是否仍然有效?"決定點260。被該等未完成的主機命令執行之操作可能已使該儲存裝置進入在該階段中執行該管理命令將會無效的一狀態。例如,該等主機發出的命令可能已重設該儲存裝置,因而不再須較額外的管理命令。如果該管理命令若被執行將是無效的,則控制繼續進入"決定所需的額外管理處理之類型"步驟240。例如,可能必須促成將一不同的管理命令放置到佇列以供執行。或者,可能不需要額外的管理命令,但是可能需要使未完成的管理命令被取消而非被執行。此外,可能需要藉由設定旗標而命令執行的流程,例如促使在執行次一命令之前先檢查該次一命令之一旗標、在以信號通知命令的處理已完成之前先需要一中斷之一旗標、或在執行命令之後需要一中斷之一旗標。
在"管理命令在已知的裝置狀態下是否仍然有效?"決定點260上,如果該管理命令仍然是有效的,則控制繼續進入"處理管理命令"步驟265。執行該管理命令,且完成了對該命令之處理。
在本說明書的用法中,"處理系統"及"資料處理系統"將廣泛地包含單一機器、或由一些通訊耦合的機器或一些在一起操作的裝置構成之一系統。處理系統之例子包括(但不限於)分散式運算系統、超級電腦、高性能運算系統、運算叢集、大型電腦、迷你電腦、主從系統、個人電腦、工作站、伺服器、可攜式電腦、膝上型電腦、平板電腦、電話、個人數位助理(Personal Digital Assistant;簡稱PDA)、手持裝置、諸如音訊及/或視訊裝置等的娛樂裝置、以及用來處理或傳輸資料的其他裝置。
來自諸如鍵盤或滑鼠等的傳統輸入裝置、及/或自另一機器接收的命令、生物特徵回饋、或其他輸入來源或信號可至少部分地控制第1圖所示之平台100。平台100可諸如經由網路介面卡(Network Interface Card;簡稱NIC)、數據機、或其他通訊埠或耦合而利用通到一或多個遠端資料處理系統(圖中未示出)之一或多個連線。
可經由諸如一區域網路(Local Area Network;簡稱LAN)、一廣域網路(Wide Area Network;簡稱WAN)、一內部網路、或網際網路等的一實體及/或邏輯網路將平台100互連到其他的處理系統(圖中未示出)。涉及網路之通訊可利用其中包括射頻(Radio Frequency;簡稱RF)、衛星、微波、電機及電子工程師協會(Institute of Electrical and Electronic Engineers;簡稱IEEE)802.11、藍芽、光學、紅外線、纜線、或雷射等的各種有線及/或無線短距離或長距離載波及協定。
可以硬體、軟體、韌體、或此類實施方式的組合實施本發明揭示的機構之實施例。可將本發明之實施例實施為在包含至少一處理器、一資料儲存系統(包括揮發性及非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置的可程式系統上執行之電腦程式。
可將程式碼施加到輸入資料,以便執行本發明述及的功能,且產生輸出資訊。本發明之實施例也包括含有用來執行本發明的操作或含有諸如HDL(用以界定本發明述及的結構、電路、設備、處理器、及/或系統特徵)等的設計資料之機器可存取的媒體。這些實施例亦可被稱為程式產品。
此類機器可存取的儲存媒體可包括(但不限於)由機器或裝置製造或形成的物品之實體配置,其中包括諸如硬碟等的儲存媒體、包括軟碟、光碟、唯讀光碟(Compact Disk Read-Only Memory;簡稱CD-ROM)、可複寫式光碟(Compact Disk Rewriteable;簡稱CD-RW)、及磁光碟之任何類型的磁碟或光碟、諸如唯讀記憶體(ROM)、動態隨機存取記憶體(Dynamic Random Access Memory;簡稱DRAM)、靜態機存取記憶體(Static Random Access Memory;簡稱SRAM)等的隨機存取記憶體(Random Access Memory;簡稱RAM)、可抹除可程式唯讀記憶體(Erasable Programmable Read-Only Memory;簡稱EPROM)、快閃可程式記憶體(FLASH)、電氣可抹除可程式唯讀記憶體(Electrically Erasable Programmable ROM;簡稱EEPROM)等的半導體裝置、磁卡或光學卡、或適於儲存電子指令之任何其他類型的媒體。
可以習知之方式將輸出資訊施加到一或多個輸出裝置。為了本申請案之目的,處理系統包括具有數位信號處理器(Digital Signal Processor;簡稱DSP)、微控制器、特定應用積體電路(Application Specific Integrated Circuit;簡稱ASIC)、或微處理器等的處理器之任何系統。
可以與一處理系統通訊的一高階程序或物件導向程式語言實施該等程式。如有需要,亦可以組合或機器語言實施該等程式。實際上,本發明述及的該等機構之範圍不限於任何特定的程式語言。無論如何,該語言可以是一編譯式或直譯式語言。
本發明所提供的是能夠使用埠共享硬體對儲存裝置進行帶外存取的方法及系統之實施例。雖然已示出及說明了本發明的一些特定實施例,但是熟悉此項技術者當可了解:可在不脫離後附的申請專利範圍之範圍下,作出許多改變、變化、及修改。因此,熟悉此項技術者當可了解:可在不脫離本發明之較廣泛的態樣下,作出一些改變及修改。後附的申請專利範圍將在其範圍內包含本發明的真實範圍及精神內之所有此類改變、變化、及修改。
100...系統
110...迷你進階主機控制介面
120...主機進階主機控制介面
102,104...埠
106...主機作業系統
160A-160F...儲存裝置
136...非揮發性記憶體
134...管理引擎上記憶區
112...韌體表
140...命令處理區塊
132...主機記憶體
122...主機表
142...提取及定序器區塊
144...執行區塊
146...直接記憶體存取區塊
148...交易循環緩衝器
170...先進技術連接命令過濾器區塊
150...交易緩衝器條目
180...查詢表
第1圖是根據本發明的一實施例而被配置成能夠經由埠共享硬體進行對儲存裝置的帶外存取的系統方塊圖。
第2圖是根據本發明的一實施例而能夠對儲存裝置進行帶外存取的埠共享硬體及相關聯韌體之操作流程圖。

Claims (18)

  1. 一種透過埠共享硬體而對儲存裝置執行帶外存取的電腦實施之方法,該方法包含:在包含一處理器、一記憶體、一儲存裝置、複數個埠、一主機作業系統、該主機作業系統可存取之一主機控制器介面、該主機作業系統不可存取之一帶外控制器介面之一處理系統,其中該帶外控制器介面與該主機控制器介面共享該複數個埠中之一被共享的埠,執行下列操作:接收經由該主機控制器介面存取該儲存裝置之一第一命令;接收經由該帶外控制器介面存取該儲存裝置之一第二命令;決定在執行了該第一命令之後的該儲存裝置之預期狀態;決定該第二命令的執行是否將干擾該預期狀態;以及如果該第二命令的執行不會干擾該預期狀態,則在執行該第二命令之前先執行該第一命令,其中係在不涉及該主機作業系統之情形下執行該第二命令。
  2. 如申請專利範圍第1項之方法,進一步包含:如果該第二命令的執行會干擾該預期狀態,則取消該第二命令且執行該第一命令。
  3. 如申請專利範圍第1項之方法,進一步包含:如果該第二命令的執行會干擾該預期狀態,則將該第二命令延遲直到該儲存裝置的想要狀態達成為止; 執行該第一命令;以及在該儲存裝置的該想要狀態達成時執行該第二命令。
  4. 如申請專利範圍第1項之方法,進一步包含:如果該第二命令的執行會干擾該預期狀態,則在執行該第二命令之後決定用來恢復該預期狀態之一第三命令,且執行該第一命令、該第二命令、及該第三命令,同時延遲發信該第一命令的完成,直到該第三命令已執行後為止。
  5. 如申請專利範圍第1項之方法,其中於接收到該第一及第二命令時,且於執行該第一及第二命令的同時,該主機作業系統係處於作動狀態。
  6. 如申請專利範圍第1項之方法,進一步包含:將該第一命令放置到與該主機控制器介面相關聯的一第一記憶體;保護該第一記憶體不被該帶外控制器介面存取;將該第二命令放置到與該帶外控制器介面相關聯的一第二記憶體;以及保護該第二記憶體不被該主機作業系統及該主機控制器介面存取。
  7. 一種透過埠共享硬體而對儲存裝置執行帶外存取的系統,該系統包含:一處理器;一儲存裝置;複數個埠; 一主機作業系統;該主機作業系統可存取之一主機控制器介面;以及該主機作業系統不可存取之一帶外控制器介面,其中該帶外控制器介面與該主機控制器介面共享該複數個埠中之一被共享的埠;被耦合到該處理器之一記憶體,該記憶體包含用來執行下列操作之指令:接收經由該主機控制器介面存取該儲存裝置之一第一命令;接收經由該帶外控制器介面存取該儲存裝置之一第二命令;決定在執行了該第一命令之後的該儲存裝置之預期狀態;決定該第二命令的執行是否將干擾該預期狀態;以及如果該第二命令的執行不會干擾該預期狀態,則在執行該第二命令之前先執行該第一命令,其中係在不涉及該主機作業系統之情形下執行該第二命令。
  8. 如申請專利範圍第7項之系統,其中該等指令進一步包含用來執行下列操作之指令:如果該第二命令的執行會干擾該預期狀態,則取消該第二命令且執行該第一命令。
  9. 如申請專利範圍第7項之系統,其中該等指令進一步包含用來執行下列操作之指令:如果該第二命令的執行會干擾該預期狀態,則將該第 二命令延遲直到該儲存裝置的想要狀態達成為止;執行該第一命令;以及在該儲存裝置的該想要狀態達成時執行該第二命令。
  10. 如申請專利範圍第7項之系統,其中該等指令進一步包含用來執行下列操作之指令:如果該第二命令的執行會干擾該預期狀態,則在執行該第二命令之後決定用來恢復該預期狀態之一第三命令,且執行該第一命令、該第二命令、及該第三命令,同時延遲發信該第一命令的完成,直到該第三命令已執行後為止。
  11. 如申請專利範圍第7項之系統,其中該等指令進一步包含用來執行下列操作之指令:於接收到該第一及第二命令時,且於執行該第一及第二命令同時,該主機作業系統係處於作動狀態。
  12. 如申請專利範圍第7項之系統,其中該等指令進一步包含用來執行下列操作之指令:將該第一命令放置到與該主機控制器介面相關聯的一第一記憶體;保護該第一記憶體不被該帶外控制器介面存取;將該第二命令放置到與該帶外控制器介面相關聯的一第二記憶體;以及保護該第二記憶體不被該主機作業系統及該主機控制器介面存取。
  13. 一種透過埠共享硬體而對儲存裝置執行帶外存取 的電腦程式產品,該電腦程式產品包含:一電腦可讀取的儲存媒體;以及該電腦可讀取的儲存媒體中之指令,其中該等指令在一處理系統中被執行時,將使該處理系統執行一些操作,其中該處理系統包含一處理器、一記憶體、一儲存裝置、複數個埠、一主機作業系統、該主機作業系統可存取之一主機控制器介面、及該主機作業系統不可存取之一帶外控制器介面,其中該帶外控制器介面與該主機控制器介面共享該複數個埠中之一被共享的埠,且其中該等操作包含:接收經由該主機控制器介面存取該儲存裝置之一第一命令;接收經由該帶外控制器介面存取該儲存裝置之一第二命令;決定在執行了該第一命令之後的該儲存裝置之預期狀態;決定該第二命令的執行是否將干擾該預期狀態;以及如果該第二命令的執行不會干擾該預期狀態,則在執行該第二命令之前先執行該第一命令,其中係在不涉及該主機作業系統之情形下執行該第二命令。
  14. 如申請專利範圍第13項之電腦程式產品,其中該等指令進一步使該處理系統執行下列操作:如果該第二命令的執行會干擾該預期狀態,則取消該第二命令且執行該第一命令。
  15. 如申請專利範圍第13項之電腦程式產品,其中該 等指令進一步使該處理系統執行下列操作:如果該第二命令的執行會干擾該預期狀態,則將該第二命令延遲直到該儲存裝置的想要狀態達成為止;執行該第一命令;以及在該儲存裝置的該想要狀態達成時執行該第二命令。
  16. 如申請專利範圍第13項之電腦程式產品,其中該等指令進一步使該處理系統執行下列操作:如果該第二命令的執行會干擾該預期狀態,則在執行該第二命令之後決定用來恢復該預期狀態之一第三命令,且執行該第一命令、該第二命令、及該第三命令,同時延遲發信該第一命令的完成,直到該第三命令已執行後為止。
  17. 如申請專利範圍第13項之電腦程式產品,其中該等指令進一步使該處理系統執行下列操作:於接收到該第一及第二命令時,且於執行該第一及第二命令同時,該主機作業系統係處於作動狀態。
  18. 如申請專利範圍第13項之電腦程式產品,其中該等指令進一步使該處理系統執行下列操作:將該第一命令放置到與該主機控制器介面相關聯的一第一記憶體;保護該第一記憶體不被該帶外控制器介面存取;將該第二命令放置到與該帶外控制器介面相關聯的一第二記憶體;以及保護該第二記憶體不被該主機作業系統及該主機控制器介面存取。
TW100123107A 2010-07-14 2011-06-30 透過埠共享硬體之對儲存裝置之帶外存取 TWI443580B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/836,341 US8281043B2 (en) 2010-07-14 2010-07-14 Out-of-band access to storage devices through port-sharing hardware

Publications (2)

Publication Number Publication Date
TW201216162A TW201216162A (en) 2012-04-16
TWI443580B true TWI443580B (zh) 2014-07-01

Family

ID=45467783

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100123107A TWI443580B (zh) 2010-07-14 2011-06-30 透過埠共享硬體之對儲存裝置之帶外存取

Country Status (7)

Country Link
US (1) US8281043B2 (zh)
EP (1) EP2593875B1 (zh)
JP (1) JP5583849B2 (zh)
KR (1) KR101516093B1 (zh)
CN (1) CN102985914B (zh)
TW (1) TWI443580B (zh)
WO (1) WO2012009436A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713204B2 (en) * 2011-12-27 2014-04-29 Apple Inc. High-performance AHCI interface
US9116694B2 (en) 2012-09-26 2015-08-25 Intel Corporation Efficient low power exit sequence for peripheral devices
CN103885364B (zh) * 2014-03-24 2016-09-28 三和智控(北京)系统集成有限公司 一种通过计划队列实现控制逻辑的动态延时调用的方法
EP3133424A4 (en) * 2014-04-16 2017-11-15 Nitto Denko Corporation Retardation film, circularly-polarizing plate, and image-displaying device
US9696777B2 (en) * 2014-06-05 2017-07-04 Lenovo (Singapore) Pte. Ltd. Computer port control
US9645954B2 (en) 2014-06-05 2017-05-09 Lenovo (Singapore) Pte. Ltd. Embedded microcontroller and buses
TWI526824B (zh) 2014-07-22 2016-03-21 廣達電腦股份有限公司 網路卡資訊管理方法及網路卡資訊管理系統
US9684457B2 (en) 2015-05-21 2017-06-20 Intel Corporation Gathering sensed data from devices to manage host command transmission and cooling of the devices
US10127184B2 (en) 2016-09-27 2018-11-13 Intel Corporation Low overheard high throughput solution for point-to-point link
US10761319B2 (en) 2017-10-13 2020-09-01 Magna Electronics Inc. Vehicle camera with lens heater
US11169953B2 (en) * 2018-02-28 2021-11-09 SK Hynix Inc. Data processing system accessing shared memory by using mailbox

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351782B1 (en) 1999-03-19 2002-02-26 Unisys Corporation Method of sharing an I/O device between a host operating system and a foreign operating system in a single computer
US6845387B1 (en) * 2000-04-07 2005-01-18 Advanced Digital Information Corporation Creating virtual private connections between end points across a SAN
JP2003085025A (ja) * 2001-09-13 2003-03-20 Seiko Instruments Inc 記憶装置の属性制御方式
JP2003241903A (ja) * 2002-02-14 2003-08-29 Hitachi Ltd 記憶制御装置、ストレージシステム、及びその制御方法
US7480774B2 (en) * 2003-04-01 2009-01-20 International Business Machines Corporation Method for performing a command cancel function in a DRAM
US20050015430A1 (en) * 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
JP4757482B2 (ja) * 2004-11-26 2011-08-24 Necアクセステクニカ株式会社 記憶装置及び記憶装置制御方法
US20060280195A1 (en) * 2005-06-10 2006-12-14 Dell Products L.P. Systems and methods for providing dedicated or shared network interface functionality via a single MAC
US7565685B2 (en) * 2005-11-12 2009-07-21 Intel Corporation Operating system independent data management
JP4486609B2 (ja) * 2006-03-31 2010-06-23 富士通株式会社 ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
US8131986B2 (en) 2006-09-29 2012-03-06 Lenovo (Singapore) Pte. Ltd. System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems
WO2008070813A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a front-end, distributed raid
JP2009282834A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
US9189286B2 (en) * 2010-01-14 2015-11-17 Dell Products L.P. System and method for accessing storage resources
US8489686B2 (en) * 2010-05-21 2013-07-16 Intel Corporation Method and apparatus allowing scan of data storage device from remote server

Also Published As

Publication number Publication date
WO2012009436A2 (en) 2012-01-19
US20120017011A1 (en) 2012-01-19
JP2013535720A (ja) 2013-09-12
CN102985914A (zh) 2013-03-20
JP5583849B2 (ja) 2014-09-03
KR20130031886A (ko) 2013-03-29
EP2593875A2 (en) 2013-05-22
WO2012009436A3 (en) 2012-04-26
EP2593875A4 (en) 2014-07-16
CN102985914B (zh) 2016-01-27
TW201216162A (en) 2012-04-16
EP2593875B1 (en) 2018-05-16
KR101516093B1 (ko) 2015-05-08
US8281043B2 (en) 2012-10-02

Similar Documents

Publication Publication Date Title
TWI443580B (zh) 透過埠共享硬體之對儲存裝置之帶外存取
US10719400B2 (en) System and method for self-healing basic input/output system boot image and secure recovery
US10860305B1 (en) Secure firmware deployment
JP5860504B2 (ja) サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのusbプロキシ
US10445154B2 (en) Firmware-related event notification
CN107092495B (zh) 平台固件铠装技术
US9529805B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US11531760B1 (en) Baseboard management controller (BMC)-based security processor
US11347858B2 (en) System and method to inhibit firmware downgrade
US20230342472A1 (en) Computer System, Trusted Function Component, and Running Method
US11928215B2 (en) Firmware verification mechanism
US8140835B2 (en) Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
US10146952B2 (en) Systems and methods for dynamic root of trust measurement in management controller domain
US9477489B1 (en) Software based self-encrypting drive (SED) sleep resuming method
US10019574B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US7143278B2 (en) Method and apparatus for offloaded enhanced boot process
US11847226B1 (en) Baseboard Management Controller (BMC)-based security processor
CN116938869A (zh) 经hci管理的arp

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees