數據存儲裝置、數據處理系統和操作方法
【專利說明】數據存儲裝置、數據處理系統和操作方法
[0001]本申請要求于2014年11月12日提交到韓國知識產權局的第10-號韓國專利申請的優先權,所述韓國專利申請的公開通過引用全部包含于此。
技術領域
[0002]本發明構思的實施例涉及數據處理裝置,更具體地講,涉及將完成包存儲在緩沖器中并在單個事務中將存儲的完成包順序地發送到主機的數據存儲裝置,其中,每個完成包與從主機接收的多個命令相應。本發明構思的其它實施例涉及操作數據存儲裝置的方法,以及操作包括該類型的數據存儲裝置的數據處理系統的方法。
【背景技術】
[0003]為了執行寫入操作,存儲器裝置通常從主機接收寫入命令、寫入地址和(凈荷)寫入數據。這里,寫入地址可以是寫入命令的一部分。當接收到寫入命令和寫入數據時,存儲器裝置將寫入數據寫入存儲器裝置的由寫入地址指定的存儲區域中。一旦寫入數據已被成功寫入,存儲器裝置可立即發送寫入操作完成指示(例如,寫入完成響應)。
[0004]類似地,為了執行寫入操作,存儲器裝置接收包括讀取地址的讀取命令,其中,讀取地址識別存儲器裝置的存儲讀取數據的存儲區域。依然,一旦讀取數據已被成功讀取,存儲器裝置可立即發送讀取操作完成指示(例如,讀取完成響應)。因此,在由寫入命令指示的寫入操作完成或由讀取命令指示的讀取操作完成之后,數據存儲裝置可立即將相應完成響應發送到請求寫入/讀取操作的主機。以下,讀取和/或寫入操作后可被單獨稱為或統稱為數據存取操作。
[0005]在這點上,即使在數據存儲裝置被配置為以突發(burst)模式處理多個數據存取操作的情況下,數據存儲裝置也可在每個數據存取操作完成時發送每個數據存取操作的各自的完成響應。當緣于各個數據存取操作的多個數據集的順序發送被中斷(或不連續)時,該方法本質上通過再次需要將完成響應發送到請求的主機來避免突發模式的使用。該結果降低了數據存儲裝置和數據處理系統的總體數據存取性能。
【發明內容】
[0006]本發明構思的實施例提供一種數據存儲裝置,每當被執行的一系列數據存取操作中的各個數據存取操作完成時,所述數據存儲裝置不需要立即將完成響應發送到主機。這種能力提高了數據存儲裝置和數據處理系統的性能。在本發明構思的一些實施例中,與一系列數據存取命令相關聯的各個響應完成可被存儲在緩沖器中。隨后,一旦一系列數據存取操作被完全執行,就可在單個數據事務期間將存儲的完成響應從緩沖器順序地發送(或轉儲)到請求的主機。本發明構思的特定實施例涉及以前述方式操作數據存儲裝置和/或數據處理系統的方法。
[0007]本發明構思的一個實施例中提供一種操作從主機接收包括至少一個命令的命令集的數據存儲裝置的方法。所述方法包括:針對命令集中的每個命令,在完成由命令指示的相應數據存取操作時產生完成響應,并將完成響應存儲在數據存儲裝置中的緩沖器中以產生包括針對命令集的至少一個命令的完成響應的完成包;在單個事務期間將存儲在緩沖器中的完成包發送到主機。
[0008]本發明構思的另一實施例中提供一種操作從主機接收多個命令的數據存儲裝置的方法,所述方法包括:針對每個命令,在完成由命令指示的相應數據存取操作時產生完成響應,并將完成響應存儲在數據存儲裝置中的緩沖器中;使用非易失性存儲器表達(NVMe)控制器提取存儲在緩沖器中的一個或更多個完成響應以產生至少一個完成包;在單個事務期間將所述至少一個完成包中的一個完成包發送到主機。
[0009]本發明構思的另一實施例中提供一種數據存儲裝置,包括:緩沖器;非易失性存儲器;存儲器控制器,控制非易失性存儲器的操作;非易失性存儲器表達(NVMe)控制器,每當由從主機獲取的命令指示的數據存取操作完成時,NVMe就產生完成響應,將產生的完成響應存儲在緩沖器中,并在單個事務期間將包括存儲在緩沖器中的多個完成響應的完成包發送到主機。
[0010]本發明構思的另一實施例中提供一種數據處理系統,包括:主機,能夠通過將命令存儲在緩沖器中來管道執行包括多個命令的命令集;包括非易失性存儲器表達(NVMe)控制器的數據存儲裝置,接收命令并控制與各個命令相應的數據存取操作的執行,在成功執行每個命令時產生完成響應,并將作為結果的完成響應存儲在緩沖器中,其中,NVMe控制器提取存儲在緩沖器中的完成響應中的至少兩個以產生完成包,并在單個事務期間將完成包發送到主機。
【附圖說明】
[0011]從以下結合附圖對實施例的描述,本發明構思的這些和/或其它方面和優點將變得清楚且更加容易理解,在附圖中:
[0012]圖1是根據本發明構思的實施例的數據處理系統的框圖;
[0013]圖2是進一步示出圖1的NVMe控制器的一個示例的框圖;
[0014]圖3是描述在圖1的數據處理系統中執行的寫入操作的數據流示圖;
[0015]圖4是示出包括在圖1的數據處理系統中的AXI總線的使用的寫入事務時序圖;
[0016]圖5是描述在圖1的數據處理系統中執行的讀取操作的數據流示圖;
[0017]圖6是描述包括在圖1的數據處理系統中的AXI總線的使用的讀取事務時序圖;
[0018]圖7是概括圖1的數據處理系統的操作的總體流程圖;
[0019]圖8是概括圖1的數據處理系統中執行的寫入操作的流程圖;
[0020]圖9是概括圖1的數據處理系統中執行的讀取操作的流程圖;
[0021]圖10是概括圖1的數據處理系統根據時間條件或計數條件的操作的流程圖;
[0022]圖11是示出由圖1的數據處理系統執行的操作的框圖;
[0023]圖12是示出包括圖1的數據處理系統的搜索系統的框圖。
【具體實施方式】
[0024]現在將參照附圖以一些額外的細節來描述本發明構思的實施例。然而,本發明構思可以以許多不同的形式來實施,而不應該被解釋為僅局限于示出的實施例。相反,提供這些實施例使得本公開將是徹底和完全的,并將本發明的范圍充分地傳達給本領域技術人員。貫穿記載的描述和附圖,相同的標號和標記用于表示相同或相似的元件。
[0025]將理解,當元件被稱作“連接到”或“結合到”另一元件時,該元件可直接連接或結合到另一元件,或者可以存在中間元件。相反,當元件被稱作“直接連接到”或“直接結合至IJ”另一元件時,不存在中間元件。如在這里使用的,術語“和/或”包括一個或更多個相關所列項的任意組合和所有組合,并且可以被縮寫為“/”。
[0026]將理解,盡管在這里可使用術語第一、第二等來描述各種元件,但是這些元件不應該受這些術語的限制。這些術語僅是用來將一個元件與另一個元件區分開來。例如,在不脫離本公開的教導的情況下,第一信號可以被稱為第二信號,類似地,第二信號可以被稱為第一信號。
[0027]這里使用的術語僅為了描述特定實施例的目的,而不意圖限制本發明。如這里所使用的,除非上下文另外明確指出,否則單數形式也意圖包括復數形式。還應理解的是,當在本說明書中使用術語“包括”和/或“包含”時,說明存在闡述的特征、區域、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個或更多個其它特征、區域、整體、步驟、操作、元件、組件和/或它們的組。
[0028]除非另有定義,否則這里使用的所有術語(包括技術術語和科學術語)具有與本發明所屬領域的普通技術人員所通常理解的意思相同的意思。還將理解,除非這里明確定義,否則術語(諸如在通用字典中定義的術語)應該被解釋為具有與相關領域和/或本申請的環境中它們的意思一致的意思,而不以理想的或者過于正式的含義來解釋它們。
[0029]術語非易失性存儲器(NVM)表達(NVMe)和NVM主機控制器接口規范(NVM-HCI)是指控制能夠訪問經由外圍組件快速互連(PCIe)總線連接的固態驅動器/盤(SSD)的這種裝置的裝置和相關方法。這些裝置和控制方法的各種形式在商業上被本領域技術人員所理解。在這點上,背景參考可以是(2014年7月2日)在http:1Iwm.nvmexpress.0rg公布的NVMe Revis1nl.1b (NVMe修訂1.1b)。如可從該背景材料中所知的那樣,當今的NVMe裝置/方法支持對在定義的時間段期間從主機發送到根據NVMe/NVM-HCI規范配置的數據處理系統的多個未處理命令(即,一系列多個將被執行的命令)的使用。由于許多具有NVMe能力的裝置/方法支持對多個未處理命令的使用,因此這種裝置/方法能夠按照數據存取命令的順序發出下一命令,而不需要等待一個或更多個先前發出的數據存取命令的完成。換言之,根據NVMe/NVM-HCI規范配置的裝置可在主機與數據處理系統之間“管道傳輸(pipeline) ”一系列數據存取命令。
[0030]圖1是示出根據本發明構思的實施例的數據處理系統100的框圖。數據處理系統100總體上包括經由接口 110連接的主機200和數據存儲裝置300。
[0031]數據處理系統100可被實施為服務器計算機、個人計算機(PC)、臺式計算機、膝上型計算機、工作站計算機、附網存儲器(NAS)、數據中心、互聯網數據中心(IDC)或移動計算裝置。例如,移動計算裝置可被實施為智能電話、平板PC或移動互聯網裝置(MID)。
[0032]主機200可用于控制通過數據存儲裝置300的一個或更多個數據存取操作的執行。主機200可包括CPU 220、緩沖器230、存儲器控制器240、存儲器250和第一接口 260。為了便于描述,示例性地示出圖1中示出的主機200的框圖,而本發明構思的技術構思不局限于圖1中示出的框圖。
[0033]主機200可被實施為集成電路(IC)、母板或片上系統(SoC)。根據實施例,主機200可被實施為應用處理器(AP)或移動AP。
[0034]CPU 220可通過總線架構210將命令和/或數據發送到緩沖器230、存儲器控制器240和第一接口 260或從緩沖器230、存儲器控制器240和第一接口 260接收命令和/或數據。例如,總線架構(或總線)210可以以高級微控制器總線架構((AMBA?)、高級高性能總線(AHB)、高級外圍總線(APB)、高級可擴展接口(AXI)、AXI —致性擴展(ACE)或高級系統總線(ASB)被實施;然而,不限于此。
[0035]如下所述,CPU 220可用于產生數據存取命令(例如,一個或更多個寫入和/或讀取命令)。根據本發明構思的實施例,CPU 220可以是可執行能夠執行操作的程序的處理器。
[0036]緩沖器230可存儲第一隊列231和第二隊列233。根據實施例,緩沖器230可被實施為寄存器或靜態隨機存取存儲器(SRAM)。第