存儲交換方法、主機裝置、存儲裝置和數據處理系統的制作方法
【專利說明】存儲交換方法、主機裝置、存儲裝置和數據處理系統
[0001]要求于2014年5月19日在韓國知識產權局提交的第10-號韓國專利申請的優先權,該韓國專利申請的公開內容通過引用全部包含于此。
技術領域
[0002]在此描述的發明構思涉及用于控制存儲器的方法和設備,更具體地,涉及一種存儲交換方法和使用該存儲交換方法的數據處理系統。
【背景技術】
[0003]在虛擬存儲系統中,可以根據是否需要處理來改變存儲器中存儲區的分配。通常,可以反復執行把進程的一些或全部頁從主存儲器去除和加載回主存儲器中的存儲交換操作。執行存儲交換操作的速度影響使用虛擬存儲系統的數據處理系統的性能。
【發明內容】
[0004]發明構思的實施例提供一種用于提高存儲交換速度的存儲交換方法、一種用于提高存儲交換速度的主機裝置、一種用于提高存儲交換速度的存儲裝置以及一種用于提高存儲交換速度的數據處理系統。
[0005]發明構思的實施例提供一種存儲交換方法,所述存儲交換方法包括:從主機裝置接收用于存儲交換任務的隊列信息;基于隊列信息執行存儲裝置中的存儲交換任務的一部分;在完成執行存儲交換任務的所述一部分之后,從主機裝置接收與隊列信息對應的命令;以及根據命令通過利用預先執行的存儲交換任務的所述一部分的結果來執行存儲交換任務的剩余部分。
[0006]在一些實施例中,隊列信息可以包括與存儲交換任務有關的信息和與根據存儲交換任務被請求的數據的屬性有關的信息。
[0007]在一些實施例中,隊列信息還可以包括任務優先級信息。
[0008]在一些實施例中,隊列信息可以被利用預設命令從主機裝置發送到存儲裝置。
[0009]在一些實施例中,當針對讀取命令的任務包括在隊列信息中時,存儲交換任務的所述一部分可以包括從存儲裝置的非易失性存儲器裝置讀取數據并在存儲裝置的隨機存取存儲器中存儲所讀取的數據的操作。
[0010]在一些實施例中,當針對寫入命令的任務包括在隊列信息中時,存儲交換任務的所述一部分可以包括通過從地址轉換和存儲交叉調度中選擇的至少一者來執行在存儲裝置中寫入數據的操作。
[0011]在一些實施例中,執行存儲交換任務的一部分的步驟可以包括:執行地址轉換,從而在存儲裝置的不同存儲芯片中執行用于存儲交換任務的頁調出操作和頁調入操作;以及基于地址轉換的結果,執行從根據頁調出操作的寫入操作和根據頁調入操作的讀取操作中選擇的至少一種操作的一部分。
[0012]在一些實施例中,可以執行頁調入操作,其中,頁調出操作的編程時間和頁調入操作的讀取時間彼此部分地重合。
[0013]在一些實施例中,執行存儲交換任務的一部分的步驟可以包括:基于從主機裝置接收的多條隊列信息重建任務執行順序;以及基于重建的任務執行順序來執行存儲裝置中的存儲交換任務的所述一部分。
[0014]在一些實施例中,重建任務執行順序的步驟可以是基于包括在多條隊列信息中的優先級ig息來進行的。
[0015]在一些實施例中,接收命令的步驟可以包括:向主機裝置發送表示存儲裝置的隊列狀態的信號;以及基于表示隊列狀態的信號從主機裝置接收與隊列信息對應的命令。表示隊列狀態的信號可以包括表示完成了所述基于隊列信息來執行存儲交換任務的一部分的信息。
[0016]發明構思的實施例提供一種主機裝置,所述主機裝置包括主存儲器和被配置為利用加載到主存儲器的數據來執行應用程序的處理器。處理器被配置為當發生頁錯誤時,順序地發送用于存儲交換任務的隊列信息和與所述隊列信息對應的命令。
[0017]在一些實施例中,處理器可以被配置為根據存儲交換任務向存儲裝置發送隊列信息。隊列信息可以包括關于從頁調出操作和頁調入操作中選擇的至少一種操作的信息。
[0018]在一些實施例中,處理器可以被配置為利用預設命令向存儲裝置發送隊列信息。
[0019]在一些實施例中,在向存儲裝置發送用于存儲交換任務的隊列信息之后,處理器可以被配置為基于存儲裝置的隊列狀態向存儲裝置發送與所述隊列信息對應的命令。
[0020]發明構思的實施例提供一種存儲裝置,所述存儲裝置包括:存儲器裝置,向所述存儲器裝置分配存儲交換空間;以及存儲控制器,被配置為控制存儲器裝置的讀取操作和寫入操作。存儲控制器被配置為接收用于存儲交換任務的隊列信息和與所述隊列信息對應的命令,基于接收到的所述隊列信息來控制存儲器裝置以執行存儲交換任務的一部分,然后根據命令控制存儲器裝置以執行所述存儲交換任務的剩余部分。
[0021]在一些實施例中,存儲器裝置可以包括多個閃存芯片,存儲控制器被配置為執行地址轉換以在存儲器裝置的不同閃存芯片中執行用于存儲交換任務的頁調出操作和頁調入操作。
[0022]在一些實施例中,存儲控制器可以被配置為確定操作時序,使得頁調出操作的編程時間和頁調入操作的讀取時間彼此部分地重合。
[0023]在一些實施例中,存儲控制器可以被配置為基于包括在隊列信息中的優先級信息來重建存儲交換任務的任務執行順序。
[0024]在一些實施例中,當隊列信息中包括用于存儲交換任務的針對頁調出操作的任務和針對頁調入操作的任務時,存儲控制器可以被配置為控制存儲器裝置的寫入操作或讀取操作以首先執行頁調入操作。
[0025]在一些實施例中,存儲控制器可以被配置為產生表示存儲裝置的隊列信息的信號并將所述信號發送到主機裝置。
[0026]發明構思的實施例提供一種數據處理系統,所述數據處理系統包括:主機裝置,被配置為當發生頁錯誤時,向存儲裝置順序地發送用于存儲交換任務的隊列信息和與隊列信息對應的命令。存儲裝置被配置為接收隊列信息和命令,基于從主機裝置接收的隊列信息來執行存儲交換任務的一部分,并利用存儲交換任務的預先執行了的所述一部分的結果來執行存儲交換任務的剩余部分。
[0027]在一些實施例中,當發生頁錯誤時,在向存儲裝置發送用于存儲交換任務的隊列信息之后,主機裝置可以被配置為基于存儲裝置的隊列狀態而向存儲裝置發送與隊列信息對應的命令。
[0028]在一些實施例中,存儲裝置可以被配置為確定操作時序使得用于存儲交換任務的頁調出操作的編程時間與頁調入操作的讀取時間彼此部分地重合。
[0029]在一些實施例中,存儲裝置可以包括嵌入式多媒體卡。
【附圖說明】
[0030]發明構思的實施例將根據下面結合附圖進行的詳細描述而被更清楚地理解,在附圖中,除非另有說明,否則同樣的附圖標記在各幅附圖中指示同樣的元件。
[0031]圖1是示出根據發明構思的實施例的數據處理系統的框圖。
[0032]圖2是示出根據發明構思的實施例的在圖1中示出的數據處理系統的元件的框圖。
[0033]圖3是示出根據發明構思的實施例的存儲在圖2中示出的主存儲器中的程序或多條數據的框圖。
[0034]圖4是示出根據發明構思的實施例的圖2中示出的存儲控制器的詳細框圖。
[0035]圖5是示出根據發明構思的實施例的圖2中示出的存儲器裝置的詳細框圖。
[0036]圖6是示出根據發明構思的實施例的圖5中示出的存儲單元陣列的圖。
[0037]圖7是示出根據發明構思的實施例的包括在圖5中示出的存儲單元陣列中的第一存儲塊的電路圖。
[0038]圖8是示出根據發明構思的實施例的在圖7中示出的第一存儲塊的變型的第一存儲塊沿位線方向的剖視圖。
[0039]圖9是示出根據發明構思的實施例的第一存儲塊沿字線方向的剖視圖。
[0040]圖10是示出根據發明構思的實施例的在圖7中示出的第一存儲塊的變型的第一存儲塊沿位線方向的剖視圖。
[0041]圖11是示出根據發明構思的實施例的包括在圖7中示出的第一存儲塊中的單元串的變型的單兀串的電路圖。
[0042]圖12是示出根據發明構思的實施例的包括在圖7中示出的第一存儲塊中的單元串的變型的單元串的電路圖。
[0043]圖13是示出根據發明構思的另一實施例的數據處理系統的框圖。
[0044]圖14A、圖14B、圖14C、圖14D、圖14E、圖14F和圖14G是根據發明構思的實施例示出當數據處理系統中調用新進程時主存儲器的存儲區分配改變的示例。
[0045]圖15A、圖15B和圖15C是示出根據發明構思的實施例的在根據數據處理系統中隨機存取存儲器(RAM)(主存儲器的)與存儲裝置之間的存儲交換操作的數據傳輸的圖。
[0046]圖16是示出根據發明構思的實施例的在數據處理系統中的存儲交換操作的圖。
[0047]圖17是示出根據發明構思的另一實施例的在數據處理系統中的存儲交換操作的圖。
[0048]圖18是示出根據發明構思的另一實施例的在數據處理系統中的存儲交換操作的圖。
[0049]圖19是示出根據發明構思的另一實施例的在數據處理系統中的存儲交換操作的圖。
[0050]圖20A和圖20B是示出根據發明構思的另一實施例的在數據處理系統中的存儲交換操作的圖。
[0051]圖21是示出與發明構思有關的在多媒體卡系統中根據高優先級中斷(HPI)操作的任務執行狀態的圖。
[0052]圖22是用于解釋在根據發明構思的實施例的數據處理系統中基于存儲裝置的隊列狀態的存儲交換操作的圖。
[0053]圖23是示出根據發明構思的實施例的存儲交換方法的流程圖。
[0054]圖24是示出根據發明構思的實施例的在圖23中示出的存儲交換方法中預先執行存儲交換任務的一部分的操作的詳細流程圖。
[0055]圖25是示出根據發明構思的另一實施例的在圖23中示出的存儲交換方法中預先執行存儲交換任務的一部分的操作的詳細流程圖。
[0056]圖26是示出根據發明構思的實施例的在圖23中示出的存儲交換方法中接收命令的操作的詳細流程圖。
[0057]圖27是示出在根據發明構思的實施例的數據處理系統的主機裝置中執行的存儲交換操作的流程圖。
[0058]圖28是示出在根據發明構思的另一實施例的數據處理系統的主機裝置中執行的存儲交換操作的流程圖。
[0059]圖29是示出在根據發明構思的實施例的數據處理系統的存儲裝置中執行的存儲交換操作的流程圖。
[0060]圖30是示出在根據發明構思的另一實施例的數據處理系統的存儲裝置中執行的存儲交換操作的流程圖。
[0061]圖31是示出應用到根據發明構思的實施例的數據處理系統的存儲裝置的存儲器裝置的透視圖。
[0062]圖32是示出應用到根據發明構思的實施例的數據處理系統的存儲裝置的存儲模塊的圖。
[0063]圖33是示出根據發明構思的實施例的計算系統的圖。
[0064]圖34是示出應用到根據發明構思的實施例的數據處理系統的存儲裝置的存儲卡的圖。
【具體實施方式】
[0065]如這里所使用的,述語“和/或”包括相關列出項中的一個或更多個的任意和所有組合。當諸如“……中的至少一個(種)”的表述位于一系列的元件之后時,修飾元件的整個系列而不修飾該系列中的單個元件。
[0066]現在,將參照附圖更充分地描述發明構思,在附圖中示出了發明構思的示例性實施例。然而,應該理解的是,不意圖把發明構思的示例實施例限制成所公開的具體形式,反之,發明構思的示例實施例將覆蓋所有落入發明構思的精神和范圍內的變型、等同物和替換物。相同的附圖標記在附圖中指示相同的元件。在附圖中,為了清楚起見,可以夸大結構的尺寸。
[0067]在這里使用的術語僅出于描述具體實施例的目的,并且不意圖限制本發明。如在這里使用的,單數形式“一”、“一個”和“該(所述)”也意圖包括復數形式,除非上下文清楚地另行指示。還將理解的是,當本說明書中使用術語“包括”和/或其變型或“包含”和/或其變型時,指存在陳述的特征、區域、整體、步驟、操作、元件和/或組件,但不排除存在或添加一個或更多個其他特征、區域、整體、步驟、操作、元件、組件和/或它們的組。
[0068]除非另行定義,否則在此使用的術語(包括技術術語和科學術語)具有與本發明所屬技術領域的普通技術人員所通常理解的意思相同的意思。還將理解的是,諸如在常用辭典中定義的術語將被解釋為具有與它們在相關領域的上下文中的意思一致的意思,并且將不以理想化或過于形式化的含義來解釋它們,除非這里明確地如此定義。
[0069]圖1是示出根據發明構思的實施例的數據處理系統1000的框圖。
[0070]如圖1中所示,數據處理系統1000包括主機裝置100和存儲裝置200。
[0071]主機裝置100和存儲裝置200彼此電連接。主機裝置100可以向存儲裝置200發送隊列信息Q-CMD和命令CMD。數據可以在主機裝置100和存儲裝置200之間發送/接收。例如,存儲裝置200可以是嵌入式多媒體卡(eMMC)。
[0072]當發生頁錯誤時,主機裝置100向存儲裝置200順序地發送用于存儲交換任務的隊列信息Q-CMD和與該隊列信息Q-CMD對應的命令CMD。將要被讀取以使主機裝置100執行應用處理的頁未被存儲在主機裝置100中時會發生頁錯誤。例如,隊列信息Q-CMD可以包括與從用于存儲交換操作的頁調入操作和頁調出操作中選擇的至少一種操作有關的隊列信息。隊列信息Q-CMD是指示讀取命令或寫入命令來執行從用于存儲交換操作的頁調入操作和頁調出操作中選擇的至少一種操作的任務的信息。隊列信息Q-CMD可以包括與存儲交換任務有關的信息和與被主機裝置100請求的數據的屬性有關的信息。隊列信息Q-CMD可以包括任務優先級信息。另外,可以使用預設命令將隊列信息Q-CMD發送到存儲裝置200。
[0073]存儲裝置200基于從主機裝置100發送的隊列信息Q-CMD預先執行存儲交換任務的一部分。接下來,當接收到與隊列信息Q-CMD對應的命令CMD時,存儲裝置200利用存儲交換任務的已經被預先執行了的部分來執行該存儲交換任務的剩余部分。即,存儲器裝置可以基于隊列信息Q-CMD來執行存儲交換任務的一部分,然后基于命令CMD可以利用存儲交換任務的預先或已經被執行了的部分來執行該存儲交換任務的剩余部分。
[0074]可以經由數據總線在主機裝置100和存儲裝置200之間發送和接收與用于存儲交換任務的頁調出操作或頁調入操作相關的數據DATA。
[0075]圖2是示出根據發明構思的實施例的在圖1中示出的數據處理系統1000的元件的框圖。
[0076]如圖2所示,數據處理系統1000的主機裝置100包括處理器110和主存儲器120。
[0077]處理器110執行用于執行任務或特定計算的應用。例如,處理器110可以是微處理器或中央處理單元(CPU)。
[0078]處理器110電連接到主存儲器120。處理器110可以經由包括地址總線、控制總線和/或數據總線的總線130連接到主存儲器120。處理器110可以讀取被加載到主存儲器120中的數據并執行各種處理。
[0079]執行主機裝置100中的處理所需要的數據存儲在主存儲器120中。這里,術語“數據”包括程序和堆棧信息。
[0080]主存儲器120可以是例如動態隨機存取存儲器(DRAM)或靜態隨機存取存儲器(SRAM)ο
[0081]處理器110可以利用虛擬存儲系統向每個程序分配虛擬存儲地址而非實際存儲地址。這種方法可以在多任務操作系統中使用,并用作提供比主存儲器120大的存儲區的方法。由于虛擬存儲系統中的程序要使用比主存儲器120的容量大的地址空間,所以不能把在程序數據中使用的所有地址空間的信息加載到主存儲器120。因此,僅將執行程序所必須的一部分程序數據加載到主存儲器120,而該程序數據的剩余部分被存儲在用作交換空間的存儲裝置200的存儲器裝置220中。
[0082]存儲交換操作用來在虛擬存儲系統中執行比主存儲器120大的程序,或者存儲交換操作可以用來在虛擬存儲系統中處理比主存儲器120大的數據文件。例如,在存儲交換期間,可以以頁或段為單位來交換數據