国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于命令處理的高性能路徑的制作方法

      文檔序號:6368810閱讀:134來源:國知局
      專利名稱:用于命令處理的高性能路徑的制作方法
      技術領域
      本公開涉及非易失性存儲子系統(tǒng),其包括但不限于閃存驅動器。更具體地,本公開涉及實現(xiàn)用于命令處理的高性能路徑的系統(tǒng)和方法。
      背景技術
      固態(tài)存儲系統(tǒng)為讀/寫命令提供非??焖俚拇鎯ζ髟L問時間。因此,針對輸入命令的處理延遲現(xiàn)在可能變成來自主機的可感知延遲的原因。典型的命令處理在單個點處解讀全部可能的命令,這可能造成處理延遲。能夠探測到讀和寫命令并迅速地將這些命令傳遞到存儲介質的系統(tǒng)可以提高處理性能并且降低延遲。
      發(fā)明內容


      現(xiàn)在將參考以下附圖描述體現(xiàn)本發(fā)明的各種特征的系統(tǒng)和方法,其中圖I例示根據(jù)一個實施例連接到主機裝置的非易失性存儲系統(tǒng)的系統(tǒng)概覽。圖2例示根據(jù)一個實施例的非易失性存儲系統(tǒng)的更詳細系統(tǒng)概覽。圖3例示根據(jù)一個實施例的命令路徑處理流程圖。圖4例示根據(jù)一個實施例用于命令路徑使能的流程圖。圖5例示根據(jù)一個實施例用于確定進入高性能路徑的合格性(eligiblity)的流程圖。圖6不出根據(jù)一個實施例的若干命令的處理。
      具體實施例方式雖然描述了本發(fā)明的某些實施例,但是這些實施例僅以示例方式展示,并不意欲限制本發(fā)明的范圍。實際上,本文描述的新穎方法和系統(tǒng)可以通過多種其他形式體現(xiàn)。此夕卜,在不偏離本發(fā)明的精神的情況下,可以對本文中描述的方法和系統(tǒng)的形式做出各種省略、替代和變化。廳命令驗證是在命令供驅動器使用之前要執(zhí)行的關健任務。但是同時它消耗命令執(zhí)行時間的主要部分,這可能使驅動器的性能退化。本發(fā)明的實施例幫助避免某些類型的命令驗證,這降低了對發(fā)送到驅動器的命令的不利影響,并且在某些情況下將該不利影響僅局限到跟隨需要驗證的命令的后續(xù)命令上。目前,在某些類型的硬盤驅動器(HDD)固件中,對全部命令進行命令驗證而不區(qū)分命令是性能敏感的還是非性能敏感的。較低的HDD IOPS可以允許固件提前校驗這些命令,因為發(fā)送命令到磁盤的等待時間非常高并且這些校驗可以并行執(zhí)行。由于固態(tài)驅動器(SSD)具有非常高的IOPS要求,所以固件開銷變得越來越顯著。在磁盤技術使用的流式算法(streaming algorithm)中可能存在類似校驗。然而,由于性能要求通常不是關健的,一些實現(xiàn)方式趨向于在下一請求可以被下發(fā)到HDD的介質組件之前履行命令驗證。系統(tǒng)概沭本發(fā)明的實施例涉及當在非易失性存儲系統(tǒng)中執(zhí)行性能敏感的讀/寫命令時降低延遲的系統(tǒng)和方法。在一些實施例中,命令處理沿著高性能路徑進行以加快處理合格(eligible)的高性能命令。在附加實施例中,高性能路徑可以被禁能以處理低性能路徑命令并且防止在低性能路徑處理期間的沖突行為。如在本申請中使用的,“非易失性存儲器”通常是指固態(tài)存儲器諸如NAND閃存。然而,本公開的系統(tǒng)和方法可能在更常規(guī)的硬盤驅動器和包括固態(tài)和硬盤驅動器部件的混合驅動器中也是有用的。因此,當提到通常與固態(tài)驅動器相關聯(lián)的某些內部操作如“磨損均衡”和“碎片收集”時,針對硬盤驅動器的類似操作也可以利用本公開的優(yōu)點。固態(tài)存儲器可以包括廣泛的技術,諸如閃存集成電路、硫族化物RAM(C-RAM)、相變存儲器(PC-RAM或PRAM)、可編程金屬化單元RAM(PMC-RAM或PMCm)、雙向統(tǒng)一存儲器(OUM)、電阻RAM(RRAM)、 NAND存儲器、NOR存儲器、EEPR0M、鐵電存儲器(FeRAM)或其它離散NVM(非易失性存儲器)芯片。如本領域已知的,固態(tài)存儲器件可以物理上劃分為位面、塊、頁和扇區(qū)??梢愿郊拥鼗蛱鎿Q地使用其它形式的存儲器(例如,電池備份易失性DRAM或SRAM器件、磁盤驅動器等)?,F(xiàn)在參考圖1,圖I示出連接到主機裝置110的非易失性存儲系統(tǒng)100的實施例。主機裝置110使用主機存儲接口 111與非易失性存儲系統(tǒng)100的裝置接口 101通信。主機存儲接口 111可以使用任何已知的通信協(xié)議諸如SATA、SCSI、SAS、SCSI、USB、火線信道等與裝置接口通信。優(yōu)選地,該通信協(xié)議允許使用帶標簽命令,從而多個讀或寫命令可以在存儲系統(tǒng)上同時等待處理。帶標簽命令可以包括帶標簽命令隊列和原生命令隊列標簽。然后裝置接口 101接收的命令被傳遞到命令處理器102。命令處理器102評估所接收的命令并且確定將該命令提交到高性能路徑103還是低性能路徑104。高性能路徑103被用于將命令快速轉發(fā)到非易失性介質陣列107。高性能路徑103被用于性能敏感命令,諸如驅動器讀或寫命令。低性能路徑104能夠處理任何驅動器命令,但是相應地可能不能像高性能路徑103那樣快地進行這些命令的處理。例如,不具有性能要求的某些命令可以被發(fā)送到低性能路徑。在各個實施例中,低性能路徑包含在命令供驅動器使用之前需要對命令執(zhí)行的命令驗證校驗,以及根據(jù)需要使命令適于使用所必需的錯誤處理固件。例如,針對影響發(fā)送到驅動器的后續(xù)命令的行為的命令,例如ATA安全命令、ATA功率管理命令等,執(zhí)行命令驗證。為了快速交付讀和寫命令,高性能路徑103包括預分配的緩沖器105,其可以被用于確保存在足夠的緩沖器空間而沒有與從存儲器分配緩沖器相關聯(lián)的延遲。一般地,根據(jù)可被存儲系統(tǒng)接收的可能的帶標簽命令的數(shù)量,高性能路徑103應包括一定數(shù)量的預分配的緩沖器。例如,針對使用具有最多32個帶標簽命令的SATA接口的系統(tǒng),高性能路徑103包括32個預分配的緩沖器105,以使得能夠無延遲地交付整個范圍的帶標簽的命令。在一些實施例中,預分配的緩沖器被后續(xù)命令重復使用。例如,特定緩沖器可以由使用特定標簽的命令一直使用(例如,緩沖器15可以總是為帶標簽15的命令服務)。一旦在高性能路徑103上接收到命令,高性能路徑103接著將命令轉發(fā)到介質訪問管理器106。低性能路徑104能夠接受全部驅動命令,包括訪問存儲器陣列的命令。因此,低性能路徑104還可以將這些介質訪問命令轉發(fā)到介質訪問管理器106。介質訪問管理器106在非易失性存儲器陣列107上執(zhí)行介質訪問命令。在固態(tài)存儲器陣列系統(tǒng)中,對非易失性存儲器陣列107的存儲器訪問可以非???。因此,系統(tǒng)的其它部件的處理延遲可能導致從主機角度來看的可感知的延遲,因為存儲器訪問不再是限制因素。為合格的存儲器訪問命令指定高性能路徑加快了存儲器訪問命令并且降低了歸因于控制器的任何延遲。命令處理器102、高性能路徑103、低性能路徑104和介質訪問管理器106可以在單個處理器的程序中實現(xiàn),可以在多個處理器上展開,或者可以在硬件中實現(xiàn)?,F(xiàn)在參考圖2,其示出根據(jù)一個實施例的命令處理路徑的更詳細的系統(tǒng)概覽。主機命令代理器(agent) 201從標準裝置接口諸如SATA或者SAS連接等接收來自主機系統(tǒng)的命令。主機命令代理器201可以確定從主機接收的命令是被高性能路徑還是低性能路徑處理。該確定將在下面結合圖3到圖6進一步描述。主機命令代理器201通過將低性能路徑命令傳遞到主機BIOS 202來對其進行處理,主機BIOS 202包括用于存儲關于該命令的數(shù)據(jù)的緩沖器。主機BIOS 202向主機驅動器接口 203提供數(shù)據(jù),主機驅動器接口 203收集并安排命令以便與命令解釋器207通信。如果主機命令代理器201具有高性能路徑命令,則 命令代理器201可以將該命令傳遞到主機BIOS 204以便沿著高性能路徑處理。如圖所示,高性能路徑上的主機BIOS 204將該命令直接傳遞到介質接口 208以便與存儲介質管理器209通信。如圖2的實施例所示,多個主機BIOS 202部件可以接收命令并且將該命令傳遞到主機目標驅動器203。本實施例中示出串行輸入代理器205,其能夠通過存儲系統(tǒng)上的串行端口接口來接收命令。另外,虛擬主機代理器206接收并且處理從虛擬主機應用210接收的命令。例如,虛擬主機應用210可以包括主機自檢應用/操作。虛擬主機應用210可以經(jīng)由虛擬主機接口 211接收關于被該系統(tǒng)處理的命令的信息。存儲系統(tǒng)還可以包括UART串行端口 212,其向一組系統(tǒng)服務器213提供低層次接口。系統(tǒng)服務器213為存儲系統(tǒng)提供基本服務,包括操作系統(tǒng)、系統(tǒng)時鐘、存儲器管理和其它系統(tǒng)支持。盡管圖2中的單獨連接未示出,系統(tǒng)服務器213可以與存儲系統(tǒng)固件的所有部分通信以提供這些潛在的服務。性能路徑使能(Enablement)在一些實施例中,高性能路徑可以被禁能和使能。當高性能路徑被禁能時,本應由高性能路徑處理的命令可以由低性能路徑處理。例如,某些低性能命令可以改變系統(tǒng)特征或者修改主機訪問許可。當這些命令在等待處理或起作用時,存儲系統(tǒng)可以防止本來合格的高性能命令被高性能路徑處理。圖3示出被配置成使能和禁能高性能路徑的系統(tǒng)中的命令處理的示例?,F(xiàn)在參考圖3,在塊301處,接收到新命令。根據(jù)圖3的命令處理可以由圖I的命令處理器102或其它系統(tǒng)部件來執(zhí)行,以確定將命令提交給高性能路徑還是低性能路徑。在塊302處,系統(tǒng)確定所接收的命令對高性能路徑是否合格。如果是,則在塊303處系統(tǒng)接著確定高性能路徑是否被使能。如果命令是合格的高性能路徑命令并且高性能路徑被使能,則在塊304處命令被指派給預分配的緩沖器。系統(tǒng)可以接著在塊305處禁能低性能路徑,并且在塊306處將命令傳遞到高性能路徑。如果命令不是如在塊302處確定的高性能合格命令,則它可以被傳遞到低性能路徑。首先,不合格命令在塊307處導致高性能路徑被禁能,接著在塊308處被傳遞到低性能路徑。如果命令對高性能路徑是合格的但是在塊303處確定高性能路徑被禁能,則在塊308處該命令還可以被傳遞到低性能路徑。在命令被低性能路徑執(zhí)行之后,在塊309處,系統(tǒng)校驗命令是否成功。如果命令在低性能路徑中成功,則在塊310處高性能路徑被使能。如果命令不成功,則在塊311處高性能路徑保持被禁能。通過使能和禁能高性能路徑和低性能路徑,系統(tǒng)可以確保單獨處理路線不會造成彼此沖突。在以另一種方式如通過在低性能路徑中附加編程防止沖突的實施例中,使能和禁能高性能路徑或低性能路徑的步驟可能不是必需的?,F(xiàn)在參考圖4,圖4示出低性能路徑命令處理的方法的替代實施例。如圖所示的方法可以由圖I所示的命令處理器102或其它系統(tǒng)部件執(zhí)行。在塊401處,接收到低性能命令。在塊402處,確定命令要求后續(xù)的命令驗證。例如,改變訪問或安全設置的命令可能要求在改變這些設置的命令完成之后對命令進行附加校驗。在塊403處,高性能路徑被禁能并且當前命令經(jīng)由低性能路徑完成。在塊404處,新命令被接收和處理。在塊405處,新命令被分派到低性能路徑進行處理。在塊406處,如果命令成功,則在塊407處對其評估以確 定是否已經(jīng)完成閾值數(shù)量的成功命令。如果命令不成功或者尚未達到閾值數(shù)量,則在塊404處將處理新命令。如果在塊407處達到閾值數(shù)量的成功命令,則在塊408處高性能路徑可以被使能。在該實施例中,高性能路徑被禁能直至特定數(shù)量的命令經(jīng)由低性能路徑成功完成處理為止。因而,當?shù)托阅苈窂秸故境晒γ钔瓿蓵r,高性能路徑將被重新使能。在一些實施例中,閾值數(shù)量的后續(xù)低性能路徑命令是一個命令。盡管在低性能路徑上處理后續(xù)命令有略微的性能不利影響,但是這確保命令的適當路由,防止錯誤,并且避免在高性能路徑中需要的附加校驗機構。在其它實施例中,按照低性能路徑處理的命令的類型確定后續(xù)低性能命令的數(shù)量。高性能路徑合格性(EliRibility)參考圖5,圖5圖不說明不出確定命令對聞性能路徑的合格性的方法的流程圖。圖5中的方法可以由圖I所示的命令處理器102或其它系統(tǒng)部件執(zhí)行。在塊501處,新命令被非易失性存儲系統(tǒng)接收。在塊502處,針對高性能標記校驗該命令。在某些命令規(guī)范諸如SATA中,命令可以包括高性能標記以指示命令是性能敏感的。如果使用不指示高性能標記的規(guī)范,或者規(guī)范被主機系統(tǒng)不可靠地使用,則塊502可以被省略。在一個實施例中,如果在塊502、504、505或506中的任一測試失敗,則在塊503處通過低性能路徑處理命令。其它實施例可以使用這些測試中的一個或更多個。在塊504處,命令被校驗以確定它是否是讀或寫命令。在塊505處,針對其是否是在大小閾值內的讀或寫命令對命令進行測試。一般地,因為使用預分配的緩沖器,讀或寫命令必須在允許大小內以被預分配的緩沖器使用。如果讀或寫命令過大,則低性能路徑被用于分配適當?shù)木彌_器空間,并且根據(jù)需要將過大的命令劃分成若干介質訪問命令。在一個實施例中,如果它讀或寫超過256個扇區(qū),則該命令是過大的。最后,在塊506處,命令可以被范圍測試以確保命令對適用于存儲器陣列的存儲器范圍進行尋址。命令在塊507處被指定預分配的緩沖器,并且在塊508處被轉發(fā)到介質訪問管理器以執(zhí)行介質訪問。圖6示出根據(jù)一個實施例用于被順序接收的命令的示例序列的處理路徑,該實施例在收到低性能路徑命令時禁能高性能路徑,并且在后續(xù)的低性能路徑命令成功時使能高性能路徑。如圖所示,針對高性能路徑合格性的命令大小限制是128Kb,并且重新使能高性能路徑的閾值是一個成功命令。如圖所示,前三個命令是具有4Kb大小的高性能讀和寫命令。在此示例中,4Kb在預分配的緩沖器的大小閾值以下,因此這些命令被高性能路徑(HPP)處理。命令4是高性能寫命令,但是其為超過大小閾值的1Mb。因此,命令4被低性能路徑(LPP)處理并且HPP被禁能直至后續(xù)命令成功完成LPP為止。第五個命令是大小為4Kb的高性能寫命令。正常情況下該命令對于HPP來說是合格的,但是因為HPP已經(jīng)被禁能,所以該命令被LPP處理。成功完成第五個命令之后,HPP可以被使能以用于將來的HPP合格命令。第六個命令是4Kb的高性能寫命令,其可以在已使能的HPP上處理。第七個命令是系統(tǒng)鎖定命令,其被LPP處理并且禁能HPP。第八個命令是對于HPP來說合法的4Kb的高性能寫命令,其被LPP處理,因為HPP被禁能。因為第八個命令不成功(當系統(tǒng)被鎖定時不執(zhí)行寫操作),所以在第八個命令之后HPP保持被禁能。系統(tǒng)解鎖命令即第九個命令經(jīng)由LPP處理并且成功,這使能HPP。最后,命令10是HPP合格命令并且被HPP處理。高性能路徑在固態(tài)驅動器中特別有用。固態(tài)存儲陣列通常包括多個管芯和可用于訪問管芯的多個信道。因此,信道可以被同時并行訪問,這允許同時交付若干讀/寫命令。 預分配的緩沖器和高性能路徑可以快速往復發(fā)送命令到介質訪問控制器,僅僅確保在訪問管芯的信道時沒有沖突。因此,高性能路徑中預分配的緩沖器的數(shù)量可以依賴于接口隊列深度(可能的排隊命令的數(shù)量)和介質陣列中設置的信道的數(shù)量。與預分配的緩沖器配對的固態(tài)裝置的硬件信道的并行性和當可能時避免不必要的命令驗證使得命令能夠快速供介質陣列使用。結論盡管已經(jīng)描述了本發(fā)明的某些實施例,但是這些實施例僅以示例方式展示,并不意欲限制本發(fā)明的范圍。實際上,本文描述的新穎方法和系統(tǒng)可以通過多種其他形式體現(xiàn)。此外,在不偏離本發(fā)明的精神的情況下,可以對本文中描述的方法和系統(tǒng)的形式做出各種省略、替代和變化。權利要求及其等價物意欲涵蓋將落在本發(fā)明的范圍和精神內的這些形式或改進。例如,本領域技術人員將理解,在不同的實施例中,在圖3、4和5所示的過程中采取的實際步驟可以不同于在附圖中所示的那些。取決于實施例,可以去除以上示例中所述的某些步驟,可以加入其他步驟,并且可以改變和/或并行地執(zhí)行步驟序列。盡管本公開描述了數(shù)據(jù)被存儲在被稱為超級塊的塊組中的示例,但是本領域技術人員將認識到,所公開的不同實施例適用于具有其他存儲測量單元如位面、塊、頁、扇區(qū)等的系統(tǒng)。而且,以上所公開的具體實施例的特征和屬性可以通過不同的方式組合起來,從而形成額外的實施例,所有這些實施例均落在本發(fā)明的范圍內。盡管本公開提供了某些優(yōu)選實施例和應用,但是本領域普通技術人員能夠明顯看出,包括未提供本文中闡述的所有特征和優(yōu)勢的實施例的其他實施例也落在本公開的范圍內。因此,意欲僅參考隨附權利要求來限定本公開的范圍。
      權利要求
      1.一種非易失性存儲器存儲系統(tǒng),其包括 非易失性存儲陣列; 至主機系統(tǒng)的接ロ,所述接ロ被配置成從所述主機系統(tǒng)接收命令;以及 處理器,其被配置成處理所述命令,所述處理器包括 高性能路徑,其包括預分配的存儲器緩沖器并且能夠提交對所述存儲陣列的多個并行命令訪問,所述高性能路徑被配置成降低命令處理延遲,以及 低性能路徑,其能夠提交對所述存儲陣列的多個連續(xù)命令訪問, 其中所述處理器被配置成確定所述命令是否適于用所述高性能路徑處理。
      2.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中在單個時間所述高性能路徑和所述低性能路徑中僅ー個在處理命令。
      3.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中確定所述命令是否適于用所述高性能路徑處理是基于命令類型、命令大小和命令優(yōu)先級標簽中的至少ー個。
      4.根據(jù)權利要求2所述的非易失性存儲器存儲系統(tǒng),其中指定小于或等于256個數(shù)據(jù)扇區(qū)并具有高性能命令標簽的讀或寫命令被確定為適于用所述高性能路徑處理。
      5.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中所述非易失性介質陣列包括固態(tài)存儲器。
      6.根據(jù)權利要求2所述的非易失性存儲器存儲系統(tǒng),其中所述低性能路徑還能夠處理系統(tǒng)命令、安全命令和功率管理命令中的至少ー個。
      7.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中所述命令是包括命令隊列標簽和性能位的STAT或SAS命令。
      8.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中所述高性能路徑能夠響應于所述命令而被禁能。
      9.根據(jù)權利要求8所述的非易失性存儲器存儲系統(tǒng),其中當所述命令不適于進入所述高性能路徑時所述高性能路徑被禁能。
      10.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中響應于在所述低性能路徑上成功處理ー些命令,所述高性能路徑被使能。
      11.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中當成功完成ー個命令時所述聞性能路徑被使能。
      12.根據(jù)權利要求I所述的非易失性存儲器存儲系統(tǒng),其中所述接ロ包括用于接收多個命令的隊列,并且所述控制器被配置成并發(fā)地確定所述高性能路徑對所述隊列中的所述多個命令的合格性。
      13.—種由固態(tài)存儲系統(tǒng)執(zhí)行的命令處理的方法,其包括 從主機接收針對非易失性介質陣列的命令; 確定所述命令對高性能路徑的合格性,所述高性能路徑被配置成提交用于在所述介質陣列上執(zhí)行的多個并行命令; 當所述命令被確定為對所述高性能路徑合格時 經(jīng)由所述高性能路徑處理所述命令; 當所述命令被確定為對所述高性能路徑不合格時 經(jīng)由低性能路徑處理所述命令;在經(jīng)由所述低性能路徑處理所述命令之后禁能所述高性能路徑;以及 在經(jīng)由所述低性能路徑處理另ー個命令之后使能所述高性能路徑。
      14.根據(jù)權利要求13所述的方法,其中所述命令對高性能路徑的合格性部分地由命令類型、命令優(yōu)先級標簽和命令大小中的至少ー個確定。
      15.根據(jù)權利要求14所述的方法,其中合格命令包括閾值大小下的讀或寫命令。
      16.根據(jù)權利要求13所述的方法,其進ー步包括在所述高性能路徑處理命令時禁能所述低性能路徑的步驟。
      17.根據(jù)權利要求15所述的方法,其中所述閾值大小是256個扇區(qū)。
      全文摘要
      本發(fā)明提供降低性能敏感命令的處理延遲的固態(tài)存儲系統(tǒng)的實施方式。這些性能敏感命令通常是讀-寫命令,其可被高性能路徑傳遞到存儲介質以優(yōu)化對主機的響應性。該高性能路徑可以被使能和禁能以防止與經(jīng)由低性能路徑處理的命令沖突。
      文檔編號G06F13/38GK102841872SQ20121012904
      公開日2012年12月26日 申請日期2012年4月27日 優(yōu)先權日2011年5月2日
      發(fā)明者C·M·古達 申請人:西部數(shù)據(jù)技術公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1