TWI556099B - 用於高效能和低成本快閃記憶體轉換層的系統和方法 - Google Patents
用於高效能和低成本快閃記憶體轉換層的系統和方法 Download PDFInfo
- Publication number
- TWI556099B TWI556099B TW103116876A TW103116876A TWI556099B TW I556099 B TWI556099 B TW I556099B TW 103116876 A TW103116876 A TW 103116876A TW 103116876 A TW103116876 A TW 103116876A TW I556099 B TWI556099 B TW I556099B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- memory device
- copy
- ftl table
- master device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
本案涉及用於高效能和低成本快閃記憶體轉換層的系統和方法。
對受管理的快閃記憶體儲存效能的要求正變得越來越高。緊湊型消費電子產品(諸如智慧手機、平板、以及遊戲裝置)需要性價比高並且低功耗的儲存方案。受管理的與非型或NOT AND(NAND)快閃記憶體設備的示例包括嵌入式多媒體卡(eMMC)、通用快閃記憶體儲存(UFS)、外部串列先進技術附件(eSATA)、球柵陣列(BGA)SATA、通用序列匯流排(USB)驅動器、安全數位(SD)卡、通用用戶身份模組(USIM)卡、以及緊湊式快閃記憶卡。NAND設備普遍用於行動應用,因為它們低成本並且低功耗。
現有的受管理的NAND快閃記憶體存放裝置依賴於NAND快閃記憶體中包含的大的檔案轉換層(FTL)表,並且僅將一小部分表緩存在片載靜態隨機存取記憶體(SRAM)中。對受管理的NAND設備的讀寫存取由邏輯位址組成,必須使
用FTL表中的資訊來將邏輯位址轉換成實體NAND位址。這導致在從NAND記憶體讀取FTL表條目時的長延遲(數十微秒的級別),從而降低了這些類型的儲存的整體效能。因此,NAND記憶體設備的低成本和低功耗的代價是記憶體存取時間效能的降低。
用於提高快閃記憶體設備的快閃記憶體轉換層(
FTL)的效能的各個態樣的方法和系統包括由快閃記憶體設備將快閃記憶體設備的FTL表的副本儲存在主控設備的揮發性記憶體中,由快閃記憶體設備接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取,以及由快閃記憶體設備對儲存在主控設備的揮發性記憶體中的FTL表的副本進行存取,作為讀操作和寫操作中的至少一者的一部分。方法的一態樣進一步包括接收來自主控設備的對快閃記憶體設備中的FTL表的大小的查詢,從快閃記憶體設備將FTL表的大小返回給主控設備,在主控設備處接收來自快閃記憶體設備的FTL表的大小,以及由主控設備決定主控設備的揮發性記憶體是否能夠儲存FTL表的全部。方法的一態樣進一步包括由主控設備對主控設備的揮發性記憶體進行子劃分,其中子劃分的大小基於FTL表的大小,由快閃記憶體設備接收對主控設備的揮發性記憶體中儲存FTL表的副本的子劃分進行直接記憶體存取讀取的特權,以及由快閃記憶體設備接收對主控設備的揮發性記憶體中儲存FTL表的副本的子劃分進行直接記憶體存取寫入的特權,其中儲存FTL表的副本包括由快閃記憶體設備
將FTL表的副本儲存在主控設備的揮發性記憶體的子劃分中。
在一個態樣,對FTL表的副本進行存取亦可進一步
包括由快閃記憶體設備對通訊地連接該快閃記憶體設備和主控設備的揮發性記憶體的通訊匯流排作匯流排主控。
在一個態樣,對FTL表的副本進行存取亦可進一步
包括在快閃記憶體設備中接收來自主控設備的對於邏輯位址的讀操作請求,由快閃記憶體設備發起讀操作,由快閃記憶體設備讀取FTL表的副本的至少一部分,由快閃記憶體設備決定對應於邏輯位址的實體位址,由快閃記憶體設備檢索位於快閃記憶體設備的記憶體的實體位址處的資料,以及由快閃記憶體設備將資料返回給主控設備。
在一個態樣,對FTL表的副本進行存取亦可進一步
包括由快閃記憶體設備接收來自主控設備的對於邏輯位址的寫操作請求,由快閃記憶體設備發起寫操作,由快閃記憶體設備將資料寫入快閃記憶體設備的記憶體的實體位址,由快閃記憶體設備寫入FTL表的副本以更新FTL表的副本,以便與資料被寫入時對快閃記憶體設備的記憶體所作出的改變相對應,以及由快閃記憶體設備向主控設備發送寫操作完成的通知。方法的一態樣可進一步包括由快閃記憶體設備讀取FTL表的副本的至少一部分,以及由快閃記憶體設備決定對應於邏輯位址的實體位址。方法的一態樣可進一步包括由快閃記憶體設備讀取快閃記憶體設備的SRAM,以及由快閃記憶體設備決定指示快閃記憶體設備的記憶體中的閒置儲存空間的位置的實體位址。方法的一態樣可進一步包括由快閃記憶體設
備向主控設備發送指示將FTL表的副本儲存在主控設備的揮發性記憶體中已完成的通知。方法的一態樣可進一步包括由快閃記憶體設備基於從日程、可用資源、以及寫操作的完成構成的組中選擇的參數來用FTL的副本更新快閃記憶體設備的FTL表。方法的一態樣可進一步包括由主控設備決定快閃記憶體設備是否支援將FTL表的副本主控緩存在主控設備的揮發性記憶體中。方法的一態樣可進一步包括在主控設備中接收來自快閃記憶體設備的儲存FTL表的副本已完成的通知。
一個態樣包括一種其上儲存有處理器可執行軟體指
令的非瞬態處理器可讀儲存媒體,該處理器可執行軟體指令被配置成經由以下操作來使系統提高系統的快閃記憶體設備的快閃記憶體轉換層(FTL)的效能:由快閃記憶體設備將快閃記憶體設備的FTL表的副本儲存在主控設備的揮發性記憶體上,以及由快閃記憶體設備接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取。所儲存的指令亦可包括用於由快閃記憶體設備對儲存在主控設備的揮發性記憶體中的快閃記憶體設備的FTL表的副本進行存取,作為讀操作和寫操作中的至少一者的一部分的指令。非瞬態處理器可讀儲存媒體可具有儲存在其上的處理器可執行的軟體指令,這些處理器可執行軟體指令被配置成執行上述各態樣的方法的其他操作。
一個態樣包括計算系統,計算系統包括具有揮發性
記憶體的主控設備、以及耦合到揮發性記憶體的第一處理器以及快閃記憶體設備,其中系統經由以下操作來實現快閃記
憶體設備的提高的效能:由快閃記憶體設備將快閃記憶體設備的FTL表的副本儲存在主控設備的揮發性記憶體中,由快閃記憶體設備接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取;及由快閃記憶體設備對儲存在主控設備的揮發性記憶體中的FTL表的副本進行存取,作為讀操作和寫操作中的至少一者的一部分。
一個態樣包括系統,該系統被配置成提高快閃記憶
體設備的快閃記憶體轉換層的效能,該系統包括用於由快閃記憶體設備將快閃記憶體設備的FTL表的副本儲存在主控設備的揮發性記憶體中的裝置。系統亦包括用於由快閃記憶體設備接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取的裝置,以及用於由快閃記憶體設備對儲存在主控設備的揮發性記憶體中的FTL表的副本進行存取作為讀操作和寫操作中的至少一者的一部分的裝置。
又一態樣包括一種配置成耦合到主控設備的快閃記
憶體設備,該快閃記憶體設備包括配置成儲存包括用於在邏輯位址和實體位址間進行轉換的FTL表的資料的快閃記憶體,以及耦合至快閃記憶體的處理器,其中處理器配置有處理器可執行指令以執行操作,操作包括:將快閃記憶體設備的快閃記憶體轉換層FTL表的副本儲存在主控設備的揮發性記憶體中,接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取,以及對儲存在主控設備的揮發性記憶體中的FTL表的副本進行存取,作為讀操作和寫操作中的至少一者的一部分。
又一態樣包括配置成耦合到主控設備的設備,該設
備包括用於將快閃記憶體設備的FTL表的副本儲存在主控設備的揮發性記憶體中的裝置,用於接收對於儲存在主控設備的揮發性記憶體中的FTL表的副本的存取的裝置,以及用於對儲存在主控設備的揮發性記憶體中的FTL表的副本進行存取作為讀操作和寫操作中的至少一者的一部分的裝置。
又一態樣包括配置成耦合到快閃記憶體設備的主控
設備,該主控設備包括揮發性記憶體,通訊地連接主控設備的揮發性記憶體並配置成當快閃記憶體設備耦合到主控設備時與快閃記憶體設備通訊的通訊匯流排,以及處理器,其中處理器配置有處理器可執行指令以執行操作,該等操作包括:決定快閃記憶體設備是否支援將快閃記憶體設備的FTL表的副本主控緩存在揮發性記憶體中;分配揮發性記憶體的一部分用於儲存FTL表的副本;及為快閃記憶體設備授予經由通訊匯流排對揮發性記憶體的該部分直接記憶體存取讀取和寫入的特權。
10‧‧‧FTL主控緩存系統
20‧‧‧主控設備
22‧‧‧片上系統(SoC)
24‧‧‧中央處理單元(CPU)
26‧‧‧DMA匯流排控制器
28‧‧‧SRAM
30‧‧‧ROM
32‧‧‧DRAM控制器
34‧‧‧主控匯流排
36‧‧‧DRAM匯流排
38‧‧‧DRAM
40‧‧‧儲存匯流排
50‧‧‧快閃記憶體設備
52‧‧‧受管理的快閃記憶體控制器
54‧‧‧DMA匯流排控制器
56‧‧‧微控制器(μCtrl)
58‧‧‧SRAM
60‧‧‧記憶體介面
62‧‧‧快閃記憶體設備匯流排
64‧‧‧快閃記憶體
66‧‧‧快閃記憶體匯流排
68‧‧‧快閃記憶體轉換層(FTL)表
70‧‧‧副本
200‧‧‧行動設備
202‧‧‧處理器
204‧‧‧觸控式螢幕控制器
206‧‧‧內部記憶體
208‧‧‧無線電信號收發機
210‧‧‧天線
212‧‧‧觸控式螢幕面板
214‧‧‧揚聲器
216‧‧‧蜂巢網路無線數據機晶片
218‧‧‧周邊設備連接埠
220‧‧‧外殼
300‧‧‧方法
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
310‧‧‧方塊
312‧‧‧方塊
314‧‧‧方塊
316‧‧‧方塊
318‧‧‧方塊
320‧‧‧方塊
400‧‧‧方塊
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
500‧‧‧讀操作
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
510‧‧‧方塊
512‧‧‧方塊
514‧‧‧方塊
600‧‧‧寫操作
602‧‧‧方塊
604‧‧‧方塊
606‧‧‧方塊
608‧‧‧方塊
610‧‧‧方塊
612‧‧‧方塊
614‧‧‧方塊
616‧‧‧方塊
618‧‧‧方塊
620‧‧‧方塊
622‧‧‧方塊
624‧‧‧方塊
700‧‧‧信號
702‧‧‧返回信號
704‧‧‧信號
706‧‧‧信號
708‧‧‧信號
710‧‧‧信號
712‧‧‧信號
714‧‧‧信號
716‧‧‧信號
718‧‧‧信號
720‧‧‧返回信號
722‧‧‧返回信號
724‧‧‧信號
726‧‧‧信號
728‧‧‧信號
730‧‧‧信號
732‧‧‧信號
734‧‧‧信號
736‧‧‧信號
738‧‧‧信號
740‧‧‧信號
742‧‧‧信號
744‧‧‧信號
746‧‧‧信號
748‧‧‧信號
750‧‧‧信號
752‧‧‧信號
754‧‧‧信號
756‧‧‧信號
758‧‧‧信號
760‧‧‧信號
762‧‧‧信號
764‧‧‧信號
766‧‧‧信號
768‧‧‧信號
770‧‧‧信號
800‧‧‧信號
802‧‧‧信號
804‧‧‧信號
806‧‧‧信號
808‧‧‧信號
810‧‧‧信號
812‧‧‧信號
814‧‧‧返回信號
816‧‧‧信號
818‧‧‧信號
820‧‧‧信號
822‧‧‧信號
824‧‧‧信號
826‧‧‧返回信號
828‧‧‧信號
830‧‧‧信號
832‧‧‧信號
834‧‧‧信號
836‧‧‧信號
838‧‧‧返回信號
840‧‧‧信號
842‧‧‧信號
844‧‧‧信號
846‧‧‧信號
848‧‧‧信號
850‧‧‧信號
900‧‧‧信號
902‧‧‧信號
904‧‧‧信號
906‧‧‧信號
908‧‧‧信號
910‧‧‧信號
912‧‧‧信號
914‧‧‧返回信號
916‧‧‧信號
918‧‧‧信號
920‧‧‧信號
922‧‧‧信號
924‧‧‧信號
926‧‧‧信號
928‧‧‧信號
930‧‧‧信號
932‧‧‧信號
934‧‧‧信號
936‧‧‧信號
938‧‧‧信號
940‧‧‧信號
942‧‧‧信號
944‧‧‧信號
946‧‧‧信號
948‧‧‧信號
950‧‧‧信號
952‧‧‧信號
954‧‧‧信號
956‧‧‧信號
958‧‧‧信號
960‧‧‧信號
962‧‧‧信號
964‧‧‧信號
966‧‧‧信號
1000‧‧‧信號
1002‧‧‧信號
1004‧‧‧信號
1006‧‧‧信號
1008‧‧‧信號
1010‧‧‧信號
1012‧‧‧信號
1014‧‧‧信號
1016‧‧‧信號
1018‧‧‧信號
1020‧‧‧信號
1022‧‧‧信號
1024‧‧‧信號
1026‧‧‧信號
1028‧‧‧信號
1030‧‧‧返回信號
1032‧‧‧信號
1034‧‧‧信號
1036‧‧‧信號
1038‧‧‧信號
1040‧‧‧信號
1042‧‧‧信號
1044‧‧‧信號
1046‧‧‧信號
1048‧‧‧信號
1050‧‧‧信號
1052‧‧‧信號
1054‧‧‧信號
納入於此且構成本說明書一部分的附圖示說了本發明的示例性實施例,並與以上提供的概括描述和下面提供的詳細描述一起用來解釋本發明的特徵。
圖1是根據一態樣的圖示具有通訊地連接到快閃記憶體設備的主控設備的系統的元件方塊圖。
圖2是適於與各個態樣聯用的示例行動設備的元件圖。
圖3是圖示用於初始化FTL主緩存的一態樣的方法的流程圖。
圖4是圖示用於初始化FTL主緩存的一態樣的方法的流程圖。
圖5是圖示用於使用FTL主緩存執行讀操作的一態樣的方法的流程圖。
圖6是圖示用於使用FTL主緩存執行寫操作的一態樣的方法的流程圖。
圖7是圖示用於初始化FTL主緩存的一態樣的方法的流程圖。
圖8是圖示用於使用FTL主緩存執行讀操作的一態樣的方法的流程圖。
圖9是圖示用於使用FTL主緩存執行寫操作的一態樣的方法的流程圖。
圖10是圖示用於使用FTL主緩存執行寫操作的一態樣的方法的流程圖。
將參照附圖詳細描述各個態樣。在任何可能的地方,相同元件符號用於在附圖中通篇代表相同或類似部分。對特定示例和實現所作的引用是用於說明性的目的,而無意限定本發明或請求項的範疇。
措辭「示例性」在本文中用於表示「用作示例、實例或圖示」。本文中描述為「示例性」的任何實現不必然被解釋為優於或勝過其他實現。
術語「行動計算裝置」和「行動設備」在此處可互
換地使用以代表以下各項中的任一個或全部:蜂巢式電話、智慧手機、個人或行動多媒體播放機、個人資料助理(PDA)、膝上型電腦、平板電腦、智慧型電腦、超級本、掌上電腦、無線電子郵件接收器、啟用網際網路的多媒體蜂巢式電話、無線遊戲控制器、以及包括記憶體、可程式設計處理器並且使用電池電源工作(使得節電方法有益處)的類似的個人電子設備。雖然各個態樣對於具有有限資源並且使用電池電源工作的行動計算裝置(諸如智慧手機)特別有用,但這些態樣在適合與快閃記憶體設備聯用的任何電子設備中皆普遍有用。
此處的術語「快閃記憶體」指的是能夠電擦除和重
程式設計的電子非揮發性電腦儲存或記憶體。快閃記憶體設備架構通常包括NAND型和NOR型。此處的各態樣一般涉及NAND型架構的快閃記憶體設備。快閃記憶體可被用於主記憶體、儲存卡、USB快閃記憶體驅動器、固態驅動器、以及類似產品以供資料的通用儲存和傳輸。NAND快閃記憶體設備的示例包括嵌入式多媒體卡(eMMC)、通用快閃記憶體儲存(UFS)、外部串列先進技術附件(eSATA)、球柵陣列(BGA)SATA、通用序列匯流排(USB)驅動器、安全數位(SD)卡、通用用戶身份模組(USIM)卡、以及緊湊式快閃記憶卡。
此處的術語「快閃記憶體轉換層」以及「FTL」指
的是被建立用於允許快閃記憶體設備的控制器將對於邏輯位址的請求轉換成實際快閃記憶體晶片中的實體位址的目錄結
構。目錄結構可包括各種資料結構中的任意一種。出於示例的目的,此處FTL將以表的形式來描述。
一種用於提高記憶體中的轉換效能的技術將專用動
態隨機存取記憶體(DRAM)添加到用於緩存整個轉換表的固態驅動器(SSD)或硬碟(HDD)中。由於DRAM可以比NAND快閃記憶體或硬碟記憶體高大約三個數量級的速度進行存取,因此這可提供顯著的效能提升。然而,將DRAM添加到晶片增加了成本並且消耗明顯的待機功耗,因為額外的DRAM必須自我刷新以保留內容。一些膝上型電腦的SSD使用這一類型的機制來緩存轉換表,因為此類電腦通常不是電能受限的,並且消費者預料到為這類設備會支付更多。然而,對於行動計算裝置(諸如智慧手機),成本的增加和具有嵌入式DRAM記憶體的NAND快閃記憶體的增加的功率消耗是明顯的不利條件。
各個態樣包括配置成經由使用主控設備的DRAM記
憶體來儲存快閃記憶體的轉換表來在最小化快閃記憶體設備操作的成本和功率消耗的同時改善快閃記憶體操作的效能的方法、系統和設備。這可經由一系統來實現,該系統包括與快閃記憶體設備通訊的主控設備,其中主控設備和快閃記憶體被配置使得快閃記憶體設備可使用主控設備的更快的記憶體資源來緩存轉換表,快閃記憶體設備使用該轉換表來在邏輯和實體記憶體位址間進行轉換。
在一態樣,主控設備可授權快閃記憶體設備直接記
憶體存取其更快的記憶體資源。直接記憶體存取可包括對於
更快的記憶體資源的讀及/或寫的特權。快閃記憶體設備可使用此類直接存取許可來將FTL表的副本儲存在主控設備的更快的記憶體資源中。在允許儲存FTL表的副本的程序中,主控設備可對其更快的記憶體資源進行子劃分以提供合適大小的專用區域來容納FTL表的副本。因此,記憶體子劃分的大小可基於FTL表的大小。
在另一態樣,直接記憶體存取可受到限制以便保護
主控設備免受由於將直接記憶體存取許可授予給快閃記憶體設備而導致的安全問題。例如,直接記憶體存取可僅授權給更快記憶體資源的被指定用於FTL表的副本的區域。亦可制定進一步的安全性措施,諸如金鑰比較。亦可設想,可應用所採取的用於保護主控設備的此類安全性措施以及其他安全性措施來同樣保護快閃記憶體設備。對於快閃記憶體設備實施安全性措施可避免主控設備損壞FTL表。
當主控設備請求針對快閃記憶體設備的讀及/或寫
操作時,讀及/或寫操作請求可包括要對快閃記憶體設備進行資料讀取及/或寫入的位置的邏輯位址。為了執行讀及/或寫請求,快閃記憶體設備可使用FTL表將邏輯位址轉換成其自身的記憶體的實體位址。為此,快閃記憶體設備可使用其直接記憶體存取許可來從FTL表的副本中檢索與指定的邏輯位址有關的位址映射資訊以將邏輯位址轉換成相應的實體位址。
直接記憶體存取亦可允許快閃記憶體設備對FTL表
的副本進行寫入。在完成來自主控設備的寫入請求的程序中,快閃記憶體設備改變其自身的記憶體內容,內容包括要被
寫入資料的實體位址。為了反映其記憶體中的改變,快閃記憶體設備可更新主控設備中儲存的FTL表來反映當前的實體位址。更新允許被寫入到記憶體的資訊在之後被存取,並且指示資訊被寫入的空間不是閒置空間。
在另一態樣,快閃記憶體設備可直接記憶體存取以
基於儲存在主控設備的快速記憶體資源中的FTL表來更新儲存在其自身的記憶體中的FTL表。當FTL表的副本被更新以反映快閃記憶體設備中的改變時,快閃記憶體設備中的FTL表可以不在同時被類似地更新。對儲存在快閃記憶體中的FTL表的延遲更新可實現節省功率資源,尤其是在主控設備正執行頻繁的記憶體寫入操作時。為了確保對快閃記憶體設備的改變的記錄被反映在儲存在快閃記憶體設備中的FTL表的非揮發性副本中,那些FTL表可根據儲存在主控設備的快速記憶體資源中的FTL表而週期性地更新。為此,快閃記憶體設備可從儲存在主控設備的快速記憶體資源中的FTL表中檢索FTL表的副本(或上次更新以來對FTL表的副本作出的改變),並且將FTL表的副本儲存在快閃記憶體中,有效地覆寫其自身的FTL表(或其改變的部分)。在此類程序中,快閃記憶體設備可將其FTL表替換為FTL表的副本,比較兩個版本的FTL表以決定區別,並將區別寫入其FTL表,或者將FTL表的副本中的改變寫入其FTL表。更新亦可在某一時間及/或以某種方式來執行,以減少或最小化對系統資源(諸如記憶體存取或電池電源)的影響。
在一個態樣,主控設備和快閃記憶體設備可被連接
,使得兩個設備之間的通訊經由通訊匯流排來發送。為了直接存取主控設備的快速記憶體資源,快閃記憶體設備可被允許用作控制將其連接到更快速記憶體資源的通訊匯流排的匯流排主控。換言之,快閃記憶體設備和通訊匯流排可被配置成允許快閃記憶體設備在通訊匯流排上發起通訊事務。各個態樣可具有不同的通訊匯流排配置以為主控設備和快閃記憶體設備提供匯流排主控能力。例如,每個設備專用的通訊匯流排可僅允許一個設備用作每個通訊匯流排的匯流排主控。作為另一示例,通訊匯流排配置可遵照支援多個設備匯流排主控的匯流排標準,諸如高速PCI(PCIe)或低等待時間介面(LLI)。
各個態樣可被實現在各種各樣的系統中,諸如圖1中圖示的示例FTL主控緩存系統10。FTL主控緩存系統10可包括處理器24、52,記憶體或儲存單元28、30、38、58、64、通訊控制器26、32、54、記憶體介面60、以及通訊鏈路34、36、40、62、66。在一個態樣,處理器可以是中央處理單元(CPU)24或微控制器(μCtrl)56。其他態樣可將CPU 24和微控制器56替換為備選處理器,或者可包括額外的處理器。此類其他處理器可包括例如一或多個其他CPU或微控制器、微處理器、圖形處理單元(GPU)、加速處理單元(APU)、實體處理單元(PPU)。
記憶體或儲存單元28、30、38、58、64可包括一系列廣泛的揮發性和非揮發性類型的記憶體中的任意一種。在一個態樣,FTL主控緩存系統10可包括SRAM 28、58、ROM 30
、DRAM 38、以及快閃記憶體64。其他類型的記憶體可包括磁的、光學的、或混合的記憶體設備。此外,FTL表68可被儲存在快閃記憶體64中,並且當被建立時,可在DRAM 38上儲存FTL表的副本70。
通訊控制器26、32、54、60可被配置成管理FTL主控緩存系統10的多個元件之間的通訊。每一個通訊控制器26、32、54可特定地管理特定元件和其他元件之間的通訊。例如,直接記憶體存取(DMA)匯流排控制器26可被配置成管理DMA匯流排控制器26一側的CPU 24和DRAM 38和另一側的微控制器56之間的通訊。類似地,DMA匯流排控制器54可管理DMA匯流排控制器54一側的微控制器56和另一側的CPU 24之間的通訊。若CPU 24被授權直接記憶體存取快閃記憶體64,則DMA匯流排控制器可以被配置成管理快閃記憶體64和CPU 24之間的位址和資料通訊。DRAM控制器32可被配置成管理一側的DRAM 38和另一側的CPU 24和微控制器54之間的通訊。
記憶體介面60可被配置作為快閃記憶體介面60。在一個態樣,快閃記憶體介面60可被特別配置用於NAND或NOR快閃記憶體架構。在一態樣,快閃記憶體介面60可被配置用於NAND架構,其中快閃記憶體介面60在頁定址基礎上提供對快閃記憶體64的讀寫存取。
通訊鏈路34、36、40、62、66可提供用於FTL主控緩存系統10的各元件之間的位址和資料通訊的路徑。在各個態樣,通訊鏈路34、36、40、62、66可被配置用於單個設備
的元件之間的內部通訊或者主設備和周邊設備之間的外部通訊。主控匯流排可提供例如CPU 24、DMA匯流排控制器26、SRAM 28、ROM 30、以及DRAM控制器32之間的通訊路徑。
DRAM匯流排36可提供DRAM 36和其他元件(如DRAM控制器32)之間的通訊路徑。儲存匯流排40可提供DMA匯流排控制器26、54之間的通訊路徑。快閃記憶體設備匯流排62可提供DMA匯流排控制器54、微控制器56、SRAM58、以及快閃記憶體介面60之間的通訊路徑。快閃記憶體匯流排66可提供快閃記憶體64和其他元件(如快閃記憶體介面60)之間的通訊路徑。
在一些態樣,這些元件的一些或全部的組合構成了
主控設備20和快閃記憶體設備50。在各個態樣,主控設備20和快閃記憶體設備50可被配置為具有經由通訊鏈路40通訊的能力的分開封裝的設備。出於示例的目的(該示例無意作出限制),主控設備20可由CPU 24、DMA匯流排控制器26、SRAM 28、ROM 30、DRAM控制器32、主控匯流排34、DRAM匯流排36、DRAM 38、以及一部分或全部的儲存匯流排40組成。
繼續這一示例,快閃記憶體設備50可由一部分或全部的儲存匯流排40、DMA匯流排控制器54、微控制器56、SRAM 58、快閃記憶體介面60、快閃記憶體設備匯流排62、快閃記憶體64、以及快閃記憶體匯流排66組成。
在主控設備20的一態樣,元件可被進一步組合成積
體電路(諸如片上系統(SoC)22)。SoC 22的元件可包括CPU 24、DMA匯流排控制器26、SRAM 28、ROM 30、DRAM控制
器32、主控匯流排34、以及一部分或全部的DMA匯流排36和儲存匯流排40。類似地,快閃記憶體設備50可進一步包括組合成積體電路(諸如受管理的快閃記憶體控制器52)的元件組合。受管理的快閃記憶體控制器52的元件可包括一部分或全部的儲存匯流排40和快閃記憶體匯流排66、DMA匯流排控制器54、微控制器56、SRAM 58、快閃記憶體介面60、以及快閃記憶體設備匯流排62。
圖2圖示了適合用於FTL主控緩存系統10中的示例
行動設備200。在各個態樣,行動設備200可包括耦合到觸控式螢幕控制器204和內部記憶體206的處理器202。內部記憶體206可以是揮發性或非揮發性記憶體,並且亦可以是安全及/或加密的記憶體、或者不安全及/或未加密記憶體,或者以上的組合。觸控式螢幕控制器204和處理器202亦可被耦合到觸控式螢幕面板212,諸如電阻式傳感觸控式螢幕、電容式傳感觸控式螢幕、紅外傳感觸控式螢幕等。行動設備200可具有一或多個無線電信號收發機208(例如,Peanut®、藍芽®、Zigbee®、Wi-Fi、射頻無線電)以及用於發送和接收的天線210。收發機208和天線210可與以上提到的電路一起使用以實現各種無線傳輸協定堆疊和介面。行動設備200可包括蜂巢網路無線數據機晶片216,該晶片使得能夠經由蜂巢網路通訊。行動設備200可包括耦合到處理器202並且配置成連接到快閃記憶體設備50的周邊設備連接埠218。周邊設備連接埠218可單獨被配置成接受一種類型的連接,或者多重地配置成接受各種類型的實體和通訊連接,諸如USB、火線(Firewire)、雷點(
Thunderbolt)或PCIe。行動設備200亦可包括用於提供音訊輸出的揚聲器214。行動設備200亦可包括用於放置此處討論的元件中的全部或一些元件的外殼220,外殼220由塑膠、金屬或多種材料的組合來構成。
將FTL表緩存在主控設備的快速記憶體資源中的各
個態樣可涉及由FTL主控緩存系統10執行FTL主控緩存初始化方法300,圖3中圖示了該方法的一態樣。FTL主控緩存初始化方法300可由主控設備20初始化。為了開始方法300,主控設備20可在方塊302經由普遍使用的程序或者專用的程序來初始化快閃記憶體設備50。或者是在完成之後,或者在記憶體設備50的初始化期間,主控設備20可在判定方塊304查詢快閃記憶體設備50以決定快閃記憶體設備50是否支援FTL主控緩存。當快閃記憶體設備50不支援FTL主控緩存(亦即,判定方塊304=「否」),則在方塊306,主控設備20會將快閃記憶體設備50視為普通快閃記憶體設備。
若主控設備20決定快閃記憶體設備50支援FTL主控
緩存(亦即,判定方塊304=「是」),則在方塊308,主控設備22可向快閃記憶體設備50查詢FTL表68的大小。一旦主控設備被告知了FTL表68的大小,在方塊312,主控設備20可將其DRAM 38進行子劃分,留出足夠的空間來儲存並修改FTL表的副本70。在方塊314,主控設備20可授權快閃記憶體設備50對DRAM 38被子劃分並留給FTL表的副本70的那部分的直接記憶體存取(包括讀及/或寫特權)。在FTL表的副本70被儲存在DRAM 38中之後,在方塊316,主控設備20可接收對FTL表68
的複製已完成的通知。
若主控設備20決定快閃記憶體設備50支援FTL主控
緩存(亦即,判定方塊304=「是」),則在判定方塊310,主控設備20可決定它是否能夠在其自己的DRAM 38中儲存FTL表68的全部。若主控設備20能夠在其自己的DRAM 38中儲存FTL表68的全部(亦即,判定方塊310=「是」),則主控設備20可在方塊312對其DRAM 38進行子劃分,在方塊314授權快閃記憶體設備50進行直接記憶體存取,以及在方塊316接收接收對FTL表68的複製已完成的通知(如此處所描述的)。
若主控設備20不能在其自己的DRAM 38中儲存FTL
表68的全部(亦即,判定方塊310=「否」),則主控設備20可在方塊318通知快閃記憶體設備50在DRAM 38中可用的空間的量,並且繼續以上參考方塊312描述的操作。若主控設備20不能儲存FTL表68的全部(亦即,判定方塊310=「否」),則在方塊320,主控設備20可將快閃記憶體設備50視為普通快閃記憶體設備或者一個不支援FTL主控緩存的快閃記憶體設備。
FTL主控緩存初始化方法300的替代態樣可包括快
閃記憶體設備50初始化FTL主控緩存並且查詢主控設備20以決定主控設備20是否支援FTL主控緩存。在這一態樣中,在啟動之後並且在執行FTL主控緩存初始化方法300之前,主控設備20可留出其DRAM 38的一個子劃分用於預期的FTL主控緩存。當快閃記憶體設備50被連接到主控設備20時,FTL主控緩存初始化方法300可開始,此時,快閃記憶體50可查詢主控設備20以決定主控設備20是否支援FTL主控緩存。若主控設備20
不支援FTL主控緩存,則快閃記憶體設備50可將主控設備20視為普通主控設備。若主控設備支援FTL主控緩存,則可執行FTL主控緩存初始化方法300的剩餘操作(例如,方塊308-320)。
FTL主控緩存初始化方法300的各個態樣可包括如
圖4中圖示的進一步操作。這些操作可與圖3中圖示的操作同時地、以適當順序進行。在由主控設備20初始化之後,在方塊400,快閃記憶體設備50可回應來自主控設備20的查詢以決定快閃記憶體設備50是否支援FTL主控緩存。FTL主控緩存初始化方法300的各個態樣可包括對這一查詢的回應,該回應既可以是被動的,亦可以是主動的。例如,若回應是被動的,則主控設備20可在快閃記憶體設備50的特定暫存器或記憶體位置中讀取一值以決定對FTL主控緩存的支援。主動回應可包括例如快閃記憶體設備50向主控設備20發送特定信號,該信號指示快閃記憶體設備50是否支援FTL主控緩存。在主動回應的態樣中,回應的缺失亦可以是對快閃記憶體設備20是否支援FTL主控緩存的指示。
若快閃記憶體設備50是相容FTL主控緩存的,則在
方塊402,它可回應來自主控設備20的對於FTL表68的大小的查詢。回應可涉及返回指示儲存完整的FTL表的副本所需的記憶體的量的值。與方塊400中回應查詢來決定FTL主控緩存相容性非常相似,在方塊402中,這一回應的各個態樣可包括主動和被動回應。若主控設備20已向快閃記憶體50授予直接記憶體存取許可,則在方塊404,快閃記憶體設備50可將FTL表
的完整副本70寫入主控設備20的DRAM 38。替換地,若主控設備20決定其無法儲存FTL表68的全部,則在方塊408,在快閃記憶體50已被授予直接記憶體存取許可之後,快閃記憶體設備50可將FTL表的部分副本70寫入DRAM 38。在這一操作完成之後,在方塊406,快閃記憶體設備50可向主控設備20發送通知,該通知指示FTL表的副本70被儲存在主控設備20的DRAM 38中。
為了幫助對快閃記憶體64的讀及/或寫操作,FTL主
控緩存的各個態樣可包括快閃記憶體50對儲存在主控設備20的DRAM 38中的FTL表的副本70的讀及/或寫。在一個態樣,可實現對快閃記憶體設備50的讀操作500,如圖5中所圖示的。在方塊502,快閃記憶體設備50可接收來自主控設備20的與快閃記憶體64的邏輯位址相關聯的讀請求。在被通知了所請求的操作和邏輯位址之後,快閃記憶體設備50可發起寫操作。在方塊504,快閃記憶體設備50可直接存取位於主控設備20的DRAM 38中的FTL表的副本70。在讀操作500的一態樣中,快閃記憶體設備50被授予的直接記憶體存取DRAM 38的許可可允許快閃記憶體設備50在連接設備20、50的儲存匯流排40上作為匯流排主控或發佈命令。在直接存取主控設備20的DRAM 38之後,在方塊506,快閃記憶體設備50可從FTL表的副本70中讀取/檢索與邏輯位址相關聯的資訊。
在從FTL表的副本70中檢索到需要的資訊之後,在
方塊508,快閃記憶體設備50可將邏輯位址轉換成快閃記憶體64的實體位址。在方塊510,快閃記憶體設備50可存取快閃記
憶體64,並且在方塊512,檢索/讀取位於實體位址處的資料。在從其快閃記憶體64中檢索到資料之後,在方塊514,快閃記憶體設備50可將資料返回給主控設備20以完成讀請求。
在另一態樣,圖6圖示了可實現對快閃記憶體設備50的寫操作600。在方塊602,快閃記憶體設備50可接收來自主控設備20的與快閃記憶體64的邏輯位址相關聯的寫請求。在被通知了所請求的操作和邏輯位址之後,快閃記憶體設備50可發起寫操作。在方塊604,快閃記憶體設備50現在可直接存取位於主控設備20的DRAM 38中的FTL表的副本70。在寫操作500的一態樣中,快閃記憶體設備50被授予的直接記憶體存取DRAM 38的許可可允許快閃記憶體設備50在連接設備20、50的儲存匯流排40上作為匯流排主控或發佈命令。在直接存取主控設備20的DRAM 38之後,在方塊606,快閃記憶體設備50可從FTL表的副本70中讀取/檢索與邏輯位址相關聯的資訊。
在從FTL表的副本70中檢索到需要的資訊之後,在方塊608,快閃記憶體設備50可將邏輯位址轉換成快閃記憶體64的實體位址。在方塊610,快閃記憶體設備50可存取快閃記憶體64,並且在方塊612,將與寫請求相關聯的資料寫入快閃記憶體64的實體位址。當資料被儲存在快閃記憶體64中時,在方塊614,快閃記憶體設備50可再次直接存取位於主控設備20的DRAM 38中的FTL表的副本70。在方塊616,快閃記憶體設備50可更新FTL表的副本70以反映被用於儲存寫請求的資料的實體位址中的改變。在資料被寫到快閃記憶體64並且FTL表的副本70被更新之後,在方塊618,快閃記憶體設備50可發
送已完成對快閃記憶體設備50的寫操作600的通知。
在對快閃記憶體設備50的寫操作600的替換態樣中,可以不必寫入到具體的邏輯和實體位址。相反,知道哪裡有空的空間用於寫入資料以及空間是否處於用於儲存資料的良好狀態可能就已足夠。因此,在方塊602處接收來自主控設備20的寫請求之後(在不同態樣可以提供或者可以不提供邏輯位址),在方塊620,快閃記憶體存放裝置50可存取其SRAM 58中儲存的表。SRAM 58中的這些表可包含資訊,該資訊可指示快閃記憶體64中的閒置儲存空間或塊的位置以及快閃記憶體64的耗損均衡資訊。在方塊622,快閃記憶體存放裝置50可從SRAM 58中的表中檢索與快閃記憶體64有關的閒置儲存空間及/或耗損均衡資訊以尋找適合用於儲存資料的空間。經由這一資訊,在方塊624,快閃記憶體存放裝置50可決定將資料寫入記憶體的何處的實體位址,在方塊610存取快閃記憶體64,並且繼續此處所描述的對快閃記憶體50的寫操作600的剩餘部分。
其他態樣可包括更新FTL表68以反映已對FTL表的副本70作出的改變。一個此類態樣可包括更新FTL表68作為對快閃記憶體設備50的寫操作600的一部分或在對快閃記憶體設備50的寫操作600之後更新FTL表68。例如,在方塊616,FTL表68可在更新FTL表的副本70之後的任一時間更新。此類更新可包括將FTL表的副本70或僅將對FTL表的副本70的更新複製到快閃記憶體64。亦可設想,對FTL表68的更新可在對FTL表的副本的更新之前或同時進行。其他態樣可包括經由預定
規則或基於可用資源動態地更新FTL表68。例如,預定規則可基於日程、可用資源、回應於命令、或基於一組參數來週期性地執行對FTL表68的更新。動態更新FTL表68可例如基於由設備20、50中的任一者或兩者對於根據FTL主控緩存系統10的效能以最低成本執行更新所需的可用資源、功率及/或時間的決定來進行。此類時間可以是在FTL主控緩存系統10閒置或最少的程序正在執行的時候。
圖7圖示了在主控設備20的啟動序列期間FTL主控
緩存初始化方法300的程序流的一個態樣。可設想FTL主控緩存初始化方法300在主控設備20的啟動序列期間以外的時間執行的各個態樣。例如,在連接快閃記憶體設備50之後而主控設備20正在執行的時候。在圖7中,主控設備50的CPU 24發送信號700以存取主控設備50的ROM 30中的啟動資訊(諸如BIOS和驅動程式)並且執行初始化方法300的代碼程序。
CPU 24可經由來自ROM 30的返回信號702接收資訊以及代碼程序。CPU 24可檢查並初始化連接的周邊設備(如快閃記憶體設備50)並且查詢FTL主控緩存相容性以及FTL表58的大小。為此,CPU 24發送信號704給主控設備20的DMA匯流排控制器26,信號704可被作為信號706轉發給快閃記憶體設備50的DMA匯流排控制器54。信號706可作為信號708轉發給快閃記憶體設備50的微控制器56。在一些態樣,微控制器56可經由將回應信號710經由DMA匯流排控制器54發送回CPU 24(將信號710作為信號712轉發給DMA匯流排控制器以及作為信號714轉發給CPU 24)來回應CPU 24的查詢。
當被告知了FTL表58的大小,CPU 24可發送信號716
來檢查主控設備20的DRAM 38以決定其是否能夠儲存FTL表58的全部,並且CPU 24可對DRAM 38進行子劃分並留出DRAM 38的一部分用於FTL表58。信號716可由DRAM控制器32接收並解譯成發送給DRAM 38的信號718。DRAM控制器32可接收來自DRAM 38的返回信號720,並且發送返回信號722給CPU 24以完成操作的這些部分。
CPU 24可為微控制器56提供對DRAM 38的直接記憶
體存取,並且經由發送信號724給DMA匯流排控制器26來請求FTL表的副本70。信號724可作為信號726被轉發給DMA匯流排控制器54並且作為信號728轉發給微控制器56。微控制器56可發送信號730以存取快閃記憶體64中的FTL表58以及檢索FTL表的副本70。記憶體介面60接收信號730並且將其解譯為信號732,信號732被發送給快閃記憶體64。記憶體介面60接收來自記憶體64的代表FTL表的副本70的返回信號734,並將信號734作為信號736轉發給微控制器56。
在被授權直接記憶體存取DRAM 38之後,微控制器
56可在將其連接到DRAM 38的匯流排34、40上作為匯流排主控。微控制器56可發送信號738以將FTL表的副本70寫到DRAM 38。信號738由DMA控制器54作為信號740轉發給DMA控制器26,後者將信號742轉發給DRAM控制器32。信號742被解譯成信號744並被發送給DRAM 38。DRAM控制器32可經由接收信號746來標識何時FTL表的副本70被儲存在DRAM 38中,並且發送信號748給微控制器56來指示寫入已完成。DMA
匯流排控制器26可接收信號748並將其作為信號750轉發,信號750可由DMA匯流排控制器54接收並作為信號752轉發給微控制器56。
在FTL表的副本70被寫入DRAM 38之後,微控制器
56可經由發送信號754來通知CPU 24,FTL主控緩存初始化方法300已完成。DMA匯流排控制器54可接收信號754並將其作為信號756轉發給DMA匯流排控制器16,後者可將信號758轉發給CPU 24。
CPU 24可確認FTL主控緩存初始化方法300的完成
,並且經由發送信號760來指示或給予微控制器開始使用DRAM 38中的FTL表的副本70用於讀和寫操作的許可。DMA匯流排控制器26可接收信號760並將其作為信號762轉發給DMA匯流排控制器54,信號762可作為信號764從DMA匯流排控制器54中繼到微控制器56。微控制器56可將對來自CPU 24的許可的確認作為信號766返回。DMA匯流排控制器54可接收信號766並將其作為信號768轉發給DMA匯流排控制器26,並且作為信號780從DMA匯流排控制器26轉發給CPU 24。圖8圖示了對快閃記憶體設備50的讀操作500的程序流的一個態樣。CPU 24可向微控制器56發出針對邏輯位址的讀請求(經由DMA匯流排控制器26將攜帶該請求的信號800作為信號802發送)。DMA控制器54可接收信號802並將其作為信號804轉發給微控制器56。
在被授權在FTL主控緩存初始化期間直接記憶體存
取DRAM 38之後,微控制器56可在將其連接到DRAM 38的匯
流排34、40上作為匯流排主控。微控制器可發送信號806來檢索/讀取與DRAM 38中的FTL表的副本70中的邏輯位址相關聯的資訊。DMA匯流排控制器54可將信號806作為信號808轉發給DMA匯流排控制器26,信號808可作為信號810轉發給DRAM控制器32。DRAM控制器32可解譯信號810並發送信號812給DRAM 38。DRAM控制器32可接收來自DRAM 38的返回信號814,返回信號814可作為信號816發送給DMA匯流排控制器26,再作為信號818轉發給DMA匯流排控制器54,最後作為信號820由微控制器56接收。借助從FTL表的副本70檢索到的資訊,微控制器56現在可將邏輯位址轉換成快閃記憶體64的實體位址。
在決定了實體位址之後,微控制器56可存取記憶體
64並且經由發送信號822來檢索/讀取位於實體位址處的資料。記憶體介面60可解譯信號822並發送信號824給記憶體64。
來自記憶體64的代表實體位址處的資訊的返回信號826可由記憶體介面60接收並作為信號828發送給微控制器56。微控制器56可經由發送信號830將檢索到的資料轉發給DRAM 38以供CPU 24使用。DMA匯流排控制器54可接收信號830並將其作為信號832轉發給DMA匯流排控制器26,信號832可作為信號834轉發給DRAM控制器32。DRAM控制器32可解譯信號834並發送信號836以將從記憶體64的實體位址讀取的資料寫入DRAM 38。標誌對DRAM 38的寫入完成的返回信號838可由DRAM控制器32接收,並作為信號840轉發給DMA匯流排控制器26,DMA匯流排控制器26可將該信號作為信號842中繼給
DMA匯流排控制器54,DMA匯流排控制器54可將該信號作為信號844中繼給微控制器56。
在從記憶體64的實體位址讀取的資料被寫入到
DRAM 38之後,微控制器56可經由發送信號846來向CPU 24發送所請求的讀取操作已完成並且資料在DRAM 38中可用的通知。DMA匯流排控制器54可接收通知信號846並將其作為信號848轉發給DMA匯流排控制器26,信號848可作為信號850轉發給CPU 24。
圖9圖示了對快閃記憶體設備50的寫操作600的程序
流的一個態樣。CPU 24可向微控制器56發出針對邏輯位址的寫請求(經由DMA匯流排控制器26將攜帶該請求的信號900作為信號902發送)。DMA控制器54可接收信號902並將其作為信號904轉發給微控制器56。
在被授權在FTL主控緩存初始化期間直接記憶體存
取DRAM 38之後,微控制器56可在將其連接到DRAM 38的匯流排34、40上作為匯流排主控。微控制器可發送信號906來從DRAM 38中檢索/讀取與FTL表的副本70中的邏輯位址相關聯的資訊。DMA匯流排控制器54可將信號906作為信號908轉發給DMA匯流排控制器26,信號908可作為信號910轉發給DRAM控制器32。DRAM控制器32可解譯信號910並發送信號912給DRAM 38。DRAM控制器32可接收來自DRAM 38的返回信號914,返回信號914可作為信號916發送給DMA匯流排控制器26,再作為信號918轉發給DMA匯流排控制器54,最後作為信號920由微控制器56接收。借助從FTL表的副本70檢索到的
資訊,微控制器56現在可將邏輯位址轉換成快閃記憶體64的實體位址。
在接收到關於將寫入資料儲存在何處的資訊之後,
微控制器56可經由發送信號922來從DRAM 38中檢索寫入資料。DMA匯流排控制器54可接收信號922並將其作為信號924轉發給DMA匯流排控制器26。DRAM控制器32可從DMA匯流排控制器26接收信號926,將其解譯成信號928,並將信號928發送給DRAM 38。DRAM控制器32可接收從DRAM 38讀取的寫入資料作為信號930,並將寫入資料作為信號932轉發給微控制器56。DMA匯流排控制器26可接收信號932並將其作為信號934轉發給DMA匯流排控制器54,信號934可作為信號936轉發給微控制器56。
在決定了實體位址和檢索到寫入資料之後,微控制
器56可存取記憶體64並經由發送信號938來將資料寫入記憶體64的該實體位址。記憶體介面60可解譯信號938並發送信號940給記憶體64。記憶體介面60可經由從記憶體64接收返回信號942來標識對記憶體64的寫入何時完成,並且發送信號944給微控制器56來指示寫入已完成。
在被授權在FTL主控緩存初始化期間直接記憶體存
取DRAM 38之後,微控制器56可經由在將其連接到DRAM 38的匯流排34、40上作為匯流排主控來更新FTL表的副本70。微控制器可發送信號946以直接寫入DRAM 38。DMA匯流排控制器54可將信號946作為信號948轉發給DMA匯流排控制器26,信號948可作為信號950轉發給DRAM控制器32。DRAM控制器
32可解譯信號950並發送信號952給DRAM 38。DRAM控制器32可經由從DRAM 38接收返回信號954來標識對FTL表的副本70的更新何時完成。信號954可作為信號956發送給DMA匯流排控制器26,再作為信號958轉發給DMA匯流排控制器54,並最終作為信號960由微控制器56接收。
在完成對FTL表的副本70的更新之後,微控制器56
可經由發送信號962來通知CPU 24操作600已完成。DMA匯流排控制器54可接收信號962並將其作為信號964轉發給DMA匯流排控制器26,信號964可作為信號966轉發給CPU 24。
圖10圖示了對快閃記憶體設備50的寫操作600的程
序流的一個態樣。CPU 24可向微控制器56發出寫請求(經由DMA匯流排控制器26將攜帶該請求的信號1000作為信號1002發送)。DMA控制器54可接收信號1002並將其作為信號1004轉發給微控制器56。
在接收寫請求之後,微控制器56可經由發送信號
1006來存取快閃記憶體設備50的SRAM 58來檢索/讀取與快閃記憶體64有關的資訊,該資訊涉及適合用於儲存寫請求的主題資料的空間。資訊可包括快閃記憶體64的閒置儲存空間及/或耗損均衡資訊。微控制器56可從SRAM 58接收表示所期望的資訊的返回信號1008。經由這一資訊,微控制器56可決定快閃記憶體64用於寫入資料的實體位址。
在決定將寫入資料儲存在何處之後,微控制器56可
經由發送信號1010來從DRAM 38中檢索寫入資料。DMA匯流排控制器54可接收信號1010並將其作為信號1012轉發給DMA
匯流排控制器26。DRAM控制器32可從DMA匯流排控制器26接收信號1014,將其解譯成信號1016,並將信號1016發送給DRAM 38。DRAM控制器32可接收從DRAM 38讀取的寫入資料作為信號1018,並將寫入資料作為信號1012轉發給微控制器56。DMA匯流排控制器26可接收信號1020並將其作為信號1022轉發給DMA匯流排控制器54,信號1022可作為信號1024轉發給微控制器56。
在決定了實體位址和檢索到寫入資料之後,微控制
器56可存取記憶體64並經由發送信號1026來將資料寫入記憶體64的該實體位址。記憶體介面60可解譯信號1026並發送信號1028給記憶體64。記憶體介面60可經由從記憶體64接收返回信號1030來標識對記憶體64的寫入何時完成,並且發送信號1032給微控制器56來指示寫入已完成。
在被授權在FTL主控緩存初始化期間直接記憶體存
取DRAM 38之後,微控制器56可經由在將其連接到DRAM 38的匯流排34、40上作為匯流排主控來更新FTL表的副本70。微控制器可發送信號1034以直接寫入DRAM 38。DMA匯流排控制器54可將信號1034作為信號1036轉發給DMA匯流排控制器26,信號1036可作為信號1038轉發給DRAM控制器32。DRAM控制器32可解譯信號1038並發送信號1040給DRAM 38。
DRAM控制器32可經由從DRAM 38接收返回信號1042來標識對FTL表的副本70的更新何時完成。信號1042可作為信號1044發送給DMA匯流排控制器26,再作為信號1046轉發給DMA匯流排控制器54,並最終作為信號1048由微控制器56接收。
在完成對FTL表的副本70的更新之後,微控制器56
可經由發送信號1050來通知CPU 24操作600已完成。DMA匯流排控制器54可接收信號1050並將其作為信號1052轉發給DMA匯流排控制器26,信號1052可作為信號1054轉發給CPU 24。
在一些態樣,可為此處描述的程序中的一或多個程
序重複比圖7-10中所顯示的更多次數的任何元件間的程序流的任何部分。例如,代表將FTL表68從快閃記憶體設備50複製到主控設備的信號734-758可作為複製的事務進行多次。這些事務可以是對複製的執行,其中每個異動複寫FTL表68的一部分,並且這些事務持續下去直到複製完成。以32MB的FTL表資料為例,每個事務僅將32、64或128個位元組的FTL表資料複製到主控設備20。這對於圖7-10中圖示的任何讀或寫操作同樣成立。
上述方法描述和程序流程圖僅作為說明性示例提供
,且並非旨在要求或暗示各個態樣的操作必須按所提供的次序來執行。如熟習此項技術者將領會的,前述各態樣中的操作次序可按任何次序來執行。諸如「其後」、「隨後」、「接著」等的措辭並非在限定操作的次序;這些措辭僅是簡單地用以指引讀者遍歷方法的描述。進一步地,對單數形式的請求項元素的任何引述,例如使用冠詞「一」、「某」或「該」的引述不應解釋為將該元素限定為單數。
結合本文中所揭示的各態樣來描述的各種說明性邏
輯區塊、模組、電路、和演算法操作可實現為電子硬體、電腦軟體、或這兩者的組合。為清楚地圖示硬體和軟體的這種
可互換性,各種說明性元件、方塊、模組、電路、和操作在上文中以其功能性的形式進行了一般化描述。此類功能性是被實現為硬體還是軟體取決於具體應用和施加於整體系統的設計約束。熟習此項技術者對於每種特定應用可用不同的方式來實現所描述的功能性,但此類實現決策不應被解讀成導致脫離了本發明的範疇。
用以實現結合本文中揭示的態樣描述的各種例示性
邏輯、邏輯區塊、模組、以及電路的硬體可利用通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘或電晶體邏輯、個別的硬體元件、或其設計成執行本文中描述的功能的任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何習知的處理器、控制器、微控制器、或狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協同的一或多個微處理器或任何其他此類配置。替代地,一些操作或方法可由專用於給定功能的電路系統來執行。
在一或多個示例性態樣中,所描述的功能可在硬體
、軟體、韌體或其任何組合中實現。若在軟體中實現,則這些功能可作為一或多數指令或代碼儲存在非瞬態電腦可讀取媒體或非瞬態處理器可讀取媒體上。本文中揭示的方法或演算法的操作可在處理器可執行軟體模組中實施,處理器可執行軟體模組可常駐在非瞬態電腦可讀或處理器可讀儲存媒體
上。非瞬態電腦可讀或處理器可讀儲存媒體可以是能被電腦或處理器存取的任何儲存媒體。作為示例而非限定,此類非瞬態電腦可讀或處理器可讀取媒體可包括RAM、ROM、EEPROM、快閃記憶體、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或能被用來儲存指令或資料結構形式的期望程式碼且能被電腦存取的任何其他媒體。如本文中所使用的盤和碟,包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中盤(disk)往往以磁的方式再現資料而碟(disc)利用鐳射以光學方式再現資料。以上的組合亦被包括在非瞬態電腦可讀和處理器可讀取媒體的範疇內。另外,方法或演算法的操作可作為一條代碼及/或指令或者代碼及/或指令的任何組合或集合而常駐在可被納入電腦程式產品中的非瞬態處理器可讀取媒體及/或電腦可讀取媒體上。
提供了以上對所揭示的態樣的描述是為了使得任何
熟習此項技術者皆能夠製作或使用本發明。對這些態樣的各種修改容易為熟習此項技術者所顯見,並且在此所定義的普適原理可被應用於其他態樣而不會脫離本發明的精神或範疇。由此,本發明並非旨在限定於本文中示出的態樣,而是應被授予與所附請求項和本文中揭示的原理和新穎性特徵一致的最廣義的範疇。
10‧‧‧FTL主控緩存系統
20‧‧‧主控設備
22‧‧‧片上系統(SoC)
24‧‧‧中央處理單元(CPU)
26‧‧‧DMA匯流排控制器
28‧‧‧SRAM
30‧‧‧ROM
32‧‧‧DRAM控制器
34‧‧‧主控匯流排
36‧‧‧DRAM匯流排
38‧‧‧DRAM
40‧‧‧儲存匯流排
50‧‧‧快閃記憶體設備
52‧‧‧受管理的快閃記憶體控制器
54‧‧‧DMA匯流排控制器
56‧‧‧微控制器(μCtrl)
58‧‧‧SRAM
60‧‧‧記憶體介面
62‧‧‧快閃記憶體設備匯流排
64‧‧‧快閃記憶體
66‧‧‧快閃記憶體匯流排
68‧‧‧快閃記憶體轉換層(FTL)表
70‧‧‧副本
Claims (60)
- 一種用於提高一快閃記憶體設備的一快閃記憶體轉換層(FTL)的效能的方法,包括以下步驟:由該快閃記憶體設備將該快閃記憶體設備的一FTL表的一副本儲存在一主控設備的一揮發性記憶體上;由該快閃記憶體設備接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取;由該快閃記憶體設備對儲存在該主控設備的該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本進行存取,作為一讀操作和一寫操作中的至少一者的一部分;由該快閃記憶體設備從該主控設備的該揮發性記憶體中檢索該FTL表的該副本;及由該快閃記憶體設備利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表。
- 如請求項1述及之方法,亦包括以下步驟:接收來自該主控設備的對該快閃記憶體設備中的該FTL表的一大小的一查詢;從該快閃記憶體設備將該FTL表的該大小返回給該主控設備;在該主控設備處接收來自該快閃記憶體設備的該FTL表的該大小;及由該主控設備決定該主控設備的該揮發性記憶體是否能 夠儲存該FTL表的全部。
- 如請求項2述及之方法,亦包括以下步驟:由該主控設備對該主控設備的該揮發性記憶體進行子劃分,其中一子劃分的一大小基於該FTL表的該大小;由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權;及由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權,其中儲存該FTL表的一副本包括由該快閃記憶體設備將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的該子劃分中。
- 如請求項1述及之方法,其中對該FTL表的該副本進行存取包括由該快閃記憶體設備對通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排作匯流排主控。
- 如請求項1述及之方法,其中對該FTL表的該副本進行存取包括以下步驟:在該快閃記憶體設備中接收來自該主控設備的對於一邏輯位址的一讀操作請求; 由該快閃記憶體設備發起該讀操作;由該快閃記憶體設備讀取該FTL表的該副本的至少一部分;由該快閃記憶體設備決定對應於該邏輯位址的一實體位址;由該快閃記憶體設備檢索位於該快閃記憶體設備的一記憶體的該實體位址處的資料;及由該快閃記憶體設備將該資料返回給該主控設備。
- 如請求項1述及之方法,其中對該FTL表的該副本進行存取包括以下步驟:由該快閃記憶體設備接收來自該主控設備的對於一邏輯位址的一寫操作請求;由該快閃記憶體設備發起該寫操作;由該快閃記憶體設備將資料寫入該快閃記憶體設備的一記憶體的一實體位址;由該快閃記憶體設備寫入該FTL表的該副本以更新該FTL表的該副本,以與該資料被寫入時對該快閃記憶體設備的該記憶體所作出的改變相對應;及由該快閃記憶體設備向該主控設備發送該寫操作完成的一通知。
- 如請求項6述及之方法,亦包括以下步驟:由該快閃記憶體設備讀取該FTL表的該副本的至少一部 分;及由該快閃記憶體設備決定對應於該邏輯位址的該實體位址。
- 如請求項6述及之方法,亦包括以下步驟:由該快閃記憶體設備讀取該快閃記憶體設備的一SRAM;及由該快閃記憶體設備決定指示該快閃記憶體設備的該記憶體中的閒置儲存空間的一位置的該實體位址。
- 如請求項1述及之方法,亦包括由該快閃記憶體設備向該主控設備發送指示將該FTL表的該副本儲存在該主控設備的該揮發性記憶體中已完成的一通知。
- 如請求項1述及之方法,亦包括由該快閃記憶體設備基於從一日程、可用資源、以及一寫操作的完成構成的一組中選擇的一參數來用該FTL表的該副本更新該快閃記憶體設備的該FTL表。
- 如請求項1述及之方法,亦包括由該主控設備決定該快閃記憶體設備是否支援將該FTL表的一副本主控緩存在該主控設備的該揮發性記憶體中。
- 如請求項1述及之方法,亦包括在該主控設備中接收來自 該快閃記憶體設備的儲存該FTL表的該副本已完成的一通知。
- 一種其上儲存有處理器可執行軟體指令的非瞬態處理器可讀取媒體,該等處理器可執行軟體指令被配置成使一系統提高該系統的一快閃記憶體設備的一快閃記憶體轉換層(FTL)的效能,該等操作包括:由該快閃記憶體設備將該快閃記憶體設備的一FTL表的一副本儲存在一主控設備的一揮發性記憶體上;由該快閃記憶體設備接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取;由該快閃記憶體設備對儲存在該主控設備的該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本進行存取,作為一讀操作和一寫操作中的至少一者的一部分;由該快閃記憶體設備從該主控設備的該揮發性記憶體中檢索該FTL表的該副本;及由該快閃記憶體設備利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作進一步包括:接收來自該主控設備的對該快閃記憶體設備中的該FTL表的一大小的一查詢; 從該快閃記憶體設備將該FTL表的該大小返回給該主控設備;在該主控設備處接收來自該快閃記憶體設備的該FTL表的該大小;及由該主控設備決定該主控設備的該揮發性記憶體是否能夠儲存該FTL表的全部。
- 如請求項14述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作進一步包括:由該主控設備對該主控設備的該揮發性記憶體進行子劃分,其中一子劃分的一大小基於該FTL表的該大小;由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權;及由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權,其中儲存該FTL表的一副本包括由該快閃記憶體設備將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的該子劃分中。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作 ,使得對該FTL表的該副本進行存取包括由該快閃記憶體設備對通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排作匯流排主控。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,使得對該FTL表的該副本的存取包括:在該快閃記憶體設備中接收來自該主控設備的對於一邏輯位址的一讀操作請求;由該快閃記憶體設備發起該讀操作;由該快閃記憶體設備讀取該FTL表的該副本的至少一部分;由該快閃記憶體設備決定對應於該邏輯位址的一實體位址;由該快閃記憶體設備檢索位於該快閃記憶體設備的一記憶體的該實體位址處的資料;及由該快閃記憶體設備將該資料返回給該主控設備。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,使得對該FTL表的該副本的存取包括:由該快閃記憶體設備接收來自該主控設備的對於一邏輯位址的一寫操作請求;由該快閃記憶體設備發起該寫操作; 由該快閃記憶體設備將資料寫入該快閃記憶體設備的一記憶體的一實體位址;由該快閃記憶體設備寫入該FTL表的該副本以更新該FTL表的該副本,以與該資料被寫入時對該快閃記憶體設備的該記憶體所作出的改變相對應;及由該快閃記憶體設備向該主控設備發送該寫操作完成的一通知。
- 如請求項18述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作進一步包括:由該快閃記憶體設備讀取該FTL表的該副本的至少一部分;及由該快閃記憶體設備決定對應於該邏輯位址的該實體位址。
- 如請求項18述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作進一步包括:由該快閃記憶體設備讀取該快閃記憶體設備的一SRAM;及由該快閃記憶體設備決定指示該快閃記憶體設備的該記憶體中的閒置儲存空間的一位置的該實體位址。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作亦包括由該快閃記憶體設備向該主控設備發送指示將該FTL表的該副本儲存在該主控設備的該揮發性記憶體中已完成的一通知。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作亦包括由該快閃記憶體設備基於從一日程、可用資源、以及該寫操作的完成構成的一組中選擇的一參數來用該FTL表的該副本更新該快閃記憶體設備的該FTL表。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作亦包括由該主控設備決定該快閃記憶體設備是否支援將該FTL表的一副本主控緩存在該主控設備的該揮發性記憶體中。
- 如請求項13述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該系統執行操作,該等操作亦包括在該主控設備中接收來自該快閃記憶體設備的儲存該FTL表的該副本已完成的一通知。
- 一種系統,包括: 一主控設備,包括:一揮發性記憶體;及耦合到該揮發性記憶體的一第一處理器;及耦合到該主控設備的一快閃記憶體設備,該快閃記憶體設備包括:配置成儲存用於在一邏輯位址和一實體位址間進行轉換的一快閃記憶體轉換層(FTL)表的一快閃記憶體;及耦合至該快閃記憶體的一第二處理器,其中該第二處理器配置有處理器可執行指令以執行操作,該等操作包括:將該快閃記憶體設備的該FTL表的一副本儲存在該主控設備的該揮發性記憶體中;接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取;及對儲存在該主控設備的該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本進行存取,作為一讀操作和一寫操作中的至少一者的一部分;由該快閃記憶體設備從該主控設備的該揮發性記憶體中檢索該FTL表的該副本;及由該快閃記憶體設備利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表。
- 如請求項25述及之系統,其中:該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:接收來自該主控設備的對該快閃記憶體設備中的該FTL表的一大小的一查詢;及從該快閃記憶體設備將該FTL表的該大小返回給該主控設備;及該第一處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:在該主控設備處接收來自該快閃記憶體設備的該FTL表的該大小;及由該主控設備決定該主控設備的該揮發性記憶體是否能夠儲存該FTL表的全部。
- 如請求項26述及之系統,其中:該第一處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:由該主控設備對該主控設備的該揮發性記憶體進行子劃分,其中一子劃分的一大小基於該FTL表的該大小;儲存該FTL表的該副本包括由該快閃記憶體設備將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的該子劃分中;及該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括: 由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權;及由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權。
- 如請求項25述及之系統,亦包括:通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排,其中該第二處理器用處理器可執行指令配置成執行操作,使得對該FTL表的該副本的存取包括對該通訊匯流排作匯流排主控。
- 如請求項25述及之系統,其中該第二處理器用處理器可執行指令配置成使得對該FTL表的該副本進行存取包括:在該快閃記憶體設備中接收來自該主控設備的對於該邏輯位址的一讀操作請求;由該快閃記憶體設備發起該讀操作;由該快閃記憶體設備讀取該FTL表的該副本的至少一部分;由該快閃記憶體設備決定對應於該邏輯位址的該實體位址;由該快閃記憶體設備檢索位於該快閃記憶體設備的該快 閃記憶體的該實體位址處的資料;及由該快閃記憶體設備將該資料返回給該主控設備。
- 如請求項25述及之系統,其中該第二處理器用處理器可執行指令配置成使得對該FTL表的該副本進行存取包括:由該快閃記憶體設備接收來自該主控設備的對於該邏輯位址的一寫操作請求;由該快閃記憶體設備發起該寫操作;由該快閃記憶體設備將資料寫入該快閃記憶體設備的該快閃記憶體的該實體位址;由該快閃記憶體設備寫入該FTL表的該副本以更新該FTL表的該副本,以與該資料被寫入時對該快閃記憶體設備的該快閃記憶體所作出的改變相對應;及由該快閃記憶體設備向該主控設備發送該寫操作完成的一通知。
- 如請求項30述及之系統,其中該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:由該快閃記憶體設備讀取該FTL表的該副本的至少一部分;及由該快閃記憶體設備決定對應於該邏輯位址的該實體位址。
- 如請求項30述及之系統,其中: 該快閃記憶體設備亦包括耦合到該第二處理器的一SRAM;及該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:由該快閃記憶體設備讀取該快閃記憶體設備的該SRAM;及由該快閃記憶體設備決定指示該快閃記憶體設備的該快閃記憶體中的閒置儲存空間的一位置的該實體位址。
- 如請求項25述及之系統,其中該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括由該快閃記憶體設備向該主控設備發送指示將該FTL表的該副本儲存在該主控設備的該揮發性記憶體中已完成的一通知。
- 如請求項25述及之系統,其中該第二處理器用處理器可執行指令配置成執行操作,該等操作進一步包括由該快閃記憶體設備基於從一日程、可用資源、以及該寫操作的完成構成的一組中選擇的一參數來用該FTL表的該副本更新該快閃記憶體設備的該FTL表。
- 如請求項25述及之系統,其中該第一處理器用處理器可執行指令配置成執行操作,該等操作進一步包括由該主控設備決定該快閃記憶體設備是否支援將該FTL表的一副本主控緩存在該主控設備的該揮發性記憶體中。
- 如請求項25述及之系統,其中該第一處理器用處理器可執行指令配置成執行操作,該等操作進一步包括在該主控設備中接收來自該快閃記憶體設備的儲存該FTL表的該副本已完成的一通知。
- 一種系統,包括:一快閃記憶體設備;用於由該快閃記憶體設備將該快閃記憶體設備的一快閃記憶體轉換層(FTL)表的一副本儲存在一主控設備的一揮發性記憶體上的裝置;用於由該快閃記憶體設備接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取的裝置;及用於由該快閃記憶體設備對儲存在該主控設備的該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本進行存取,作為一讀操作和一寫操作中的至少一者的一部分的裝置;用於由該快閃記憶體設備從該主控設備的該揮發性記憶體中檢索該FTL表的該副本的裝置;及用於由該快閃記憶體設備利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表的裝置。
- 如請求項37述及之系統,亦包括: 用於接收來自該主控設備的對該快閃記憶體設備中的該FTL表的一大小的一查詢的裝置;用於從該快閃記憶體設備將該FTL表的該大小返回給該主控設備的裝置;用於在該主控設備處接收來自該快閃記憶體設備的該FTL表的該大小的裝置;及用於由該主控設備決定該主控設備的該揮發性記憶體是否能夠儲存該FTL表的全部的裝置。
- 如請求項38述及之系統,進一步包括:用於由該主控設備對該主控設備的該揮發性記憶體進行子劃分的裝置,其中一子劃分的一大小基於該FTL表的該大小;用於由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權的裝置;及用於由該快閃記憶體設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權的裝置,其中用於儲存該FTL表的一副本的裝置包括用於由該快閃記憶體設備將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的該子劃分中的裝置。
- 如請求項37述及之系統,其中用於對該FTL表的該副本進 行存取的裝置亦包括用於由該快閃記憶體設備對通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排作匯流排主控的裝置。
- 如請求項37述及之系統,其中用於對該FTL表的該副本進行存取的裝置包括:用於在該快閃記憶體設備中接收來自該主控設備的對於一邏輯位址的一讀操作請求的裝置;用於由該快閃記憶體設備發起該讀操作的裝置;用於由該快閃記憶體設備讀取該FTL表的該副本的至少一部分的裝置;用於由該快閃記憶體設備決定對應於該邏輯位址的一實體位址的裝置;用於由該快閃記憶體設備檢索位於該快閃記憶體設備的一記憶體的該實體位址處的資料的裝置;及用於由該快閃記憶體設備將該資料返回給該主控設備的裝置。
- 如請求項37述及之系統,其中用於對該FTL表的該副本進行存取的裝置亦包括:用於由該快閃記憶體設備接收來自該主控設備的對於一邏輯位址的一寫操作請求的裝置;用於由該快閃記憶體設備發起該寫操作的裝置;用於由該快閃記憶體設備將資料寫入該快閃記憶體設備 的一記憶體的一實體位址的裝置;用於由該快閃記憶體設備寫入該FTL表的該副本以更新該FTL表的該副本以與該資料被寫入時對該快閃記憶體設備的該記憶體所作出的改變相對應的裝置;及用於由該快閃記憶體設備向該主控設備發送該寫操作完成的一通知的裝置。
- 如請求項42述及之系統,進一步包括:用於由該快閃記憶體設備讀取該FTL表的該副本的至少一部分的裝置;及用於由該快閃記憶體設備決定對應於該邏輯位址的該實體位址的裝置。
- 如請求項42述及之系統,進一步包括:用於由該快閃記憶體設備讀取該快閃記憶體設備的一SRAM的裝置;及用於由該快閃記憶體設備決定指示該快閃記憶體設備的該記憶體中的閒置儲存空間的一位置的該實體位址的裝置。
- 如請求項37述及之系統,亦包括用於由該快閃記憶體設備向該主控設備發送指示將該FTL表的該副本儲存在該主控設備的該揮發性記憶體中已完成的一通知的裝置。
- 如請求項37述及之系統,亦包括用於由該快閃記憶體設 備基於從一日程、可用資源、以及一寫操作的完成構成的一組中選擇的一參數來用該FTL表的該副本更新該快閃記憶體設備的該FTL表的裝置。
- 如請求項37述及之系統,亦包括用於由該主控設備決定該快閃記憶體設備是否支援將該FTL表的一副本主控緩存在該主控設備的該揮發性記憶體中的裝置。
- 如請求項37述及之系統,亦包括用於在該主控設備中接收來自該快閃記憶體設備的儲存該FTL表的該副本已完成的一通知的裝置。
- 一種配置成耦合到一主控設備的快閃記憶體設備,該快閃記憶體設備包括:配置成儲存包括用於在一邏輯位址和一實體位址間進行轉換的一快閃記憶體轉換層(FTL)表的資料的一快閃記憶體;及耦合至該快閃記憶體的一處理器,其中該處理器配置有處理器可執行指令以執行操作,該等操作包括:將該快閃記憶體設備的一快閃記憶體轉換層FTL表的一副本儲存在該主控設備的一揮發性記憶體中;接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取;對儲存在該主控設備的該揮發性記憶體中的該快閃 記憶體設備的該FTL表的該副本進行存取,作為一讀操作和一寫操作中的至少一者的一部分;從該主控設備的該揮發性記憶體中檢索該FTL表的該副本;及利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表。
- 如請求項49述及之快閃記憶體設備,其中:該處理器用處理器可執行指令配置成執行操作,該等操作進一步包括:接收來自該主控設備的對該FTL表的一大小的一查詢;及將該FTL表的該大小返回給該主控設備;及該處理器用處理器可執行指令配置成執行操作,使得將該快閃記憶體設備的該FTL表的該副本儲存在該主控設備的一揮發性記憶體中包括由該主控設備將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的向該處理器標識的一子劃分中。
- 如請求項50述及之快閃記憶體設備,亦包括通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排;及其中該處理器用處理器可執行指令配置成執行操作,該 等操作進一步包括:從該主控設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權;從該主控設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權;及其中對該FTL表的該副本的存取包括對該通訊匯流排作匯流排主控。
- 如請求項49述及之快閃記憶體設備,其中該處理器用處理器可執行指令配置成使得對該FTL表的該副本進行存取包括:回應於來自該主控設備的針對該邏輯位址的一讀和一寫操作請求之一來從該主控設備的該揮發性記憶體中讀取該FTL表的該副本的至少一部分;回應於一讀操作請求將位於該快閃記憶體的對應於該邏輯位址的該實體位址處的資料返回給該主控設備;回應於一寫操作請求寫入儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本以更新該FTL表的該副本,以與該資料被寫入該快閃記憶體設備的對應於該邏輯位址的該實體位址時對該快閃記憶體所作出的改變相對應;及向該主控設備發送回應於該寫操作請求的該寫操作已完成的一通知。
- 一種配置成耦合到一主控設備的快閃記憶體設備,該快閃記憶體設備包括:用於將該快閃記憶體設備的一快閃記憶體轉換層(FTL)表的一副本儲存在該主控設備的一揮發性記憶體中的裝置;用於接收對於儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本的存取的裝置;及用於對儲存在該主控設備的該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本進行存取作為一讀操作和一寫操作中的至少一者的一部分的裝置。用於從該主控設備的該揮發性記憶體中檢索該FTL表的該副本的裝置;及用於利用對於被儲存在該揮發性記憶體中的該快閃記憶體設備的該FTL表的該副本的改變來動態地更新該快閃記憶體設備的該FTL表的裝置。
- 如請求項53述及之快閃記憶體設備,亦包括:用於接收來自該主控設備的對該FTL表的一大小的一查詢的裝置;及用於將該FTL表的該大小返回給該主控設備的裝置,其中用於將該快閃記憶體設備的該FTL表的該副本儲存在該主控設備的一揮發性記憶體中的裝置包括:用於將該FTL表的該副本儲存在該主控設備的該揮發性記憶體的一子劃分 中的裝置。
- 如請求項54述及之快閃記憶體設備,亦包括:用於從該主控設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取讀取的特權的裝置;用於從該主控設備接收對該主控設備的該揮發性記憶體中儲存該FTL表的該副本的該子劃分進行直接記憶體存取寫入的特權的裝置;及其中用於對該FTL表的該副本進行存取的裝置包括:用於對通訊地連接該快閃記憶體設備和該主控設備的該揮發性記憶體的一通訊匯流排作匯流排主控的裝置。
- 如請求項53述及之快閃記憶體設備,其中用於對該FTL表的該副本進行存取的裝置包括:用於回應於來自該主控設備的針對一邏輯位址的一讀和一寫操作請求之一來從該主控設備的該揮發性記憶體中讀取該FTL表的該副本的至少一部分的裝置;用於回應於一讀操作請求將位於一快閃記憶體的對應於該邏輯位址的一實體位址處的資料返回給該主控設備的裝置;用於回應於一寫操作請求寫入儲存在該主控設備的該揮發性記憶體中的該FTL表的該副本以更新該FTL表的該副本,以與該資料被寫入該快閃記憶體設備的對應於該邏輯位址 的該實體位址時對該快閃記憶體所作出的改變相對應的裝置;及用於向該主控設備發送回應於該寫操作請求的該寫操作已完成的一通知的裝置。
- 一種配置成耦合到一快閃記憶體設備的主控設備,該主控設備包括:一揮發性記憶體;通訊地連接該主控設備的該揮發性記憶體並配置成當該快閃記憶體設備耦合到該主控設備時與該快閃記憶體設備通訊的一通訊匯流排;及耦合至該揮發性記憶體和該通訊匯流排的一處理器,其中該處理器配置有處理器可執行指令以執行操作,該等操作包括:決定該快閃記憶體設備是否支援將該快閃記憶體設備的一快閃記憶體轉換層(FTL)表的一副本主控緩存在該揮發性記憶體中;分配該揮發性記憶體的一部分用於儲存該FTL表的該副本;為該快閃記憶體設備授予經由該通訊匯流排對該揮發性記憶體的該部分直接記憶體存取讀取和寫入的特權;允許對於來自該主控設備的該揮發性記憶體的該FTL表的該副本的存取;及提供對於該FTL表的該副本的改變以用於動態地更新 該快閃記憶體設備的該FTL表。
- 如請求項57述及之主控設備,其中該處理器配置有處理器可執行指令以執行操作,該等操作進一步包括:向該快閃記憶體設備查詢該快閃記憶體設備中儲存的該FTL表的一大小;及決定該揮發性記憶體是否能夠儲存該FTL表的全部,其中分配該揮發性記憶體的一部分包括基於該FTL表的該大小決定該揮發性記憶體的該部分的一大小。
- 一種配置成耦合到一快閃記憶體設備的主控設備,該主控設備包括:用於決定該快閃記憶體設備是否支援將該快閃記憶體設備的一快閃記憶體轉換層(FTL)表的一副本主控緩存在該主控設備的一揮發性記憶體中的裝置;用於分配該揮發性記憶體的一部分用於儲存該FTL表的該副本的裝置;及用於為該快閃記憶體設備授予對該揮發性記憶體的該部分直接記憶體存取讀取和寫入的特權的裝置;用於允許對於來自該主控設備的該揮發性記憶體的該FTL表的該副本的存取的裝置;及用於提供對於該FTL表的該副本的改變以用於動態地更新該快閃記憶體設備的該FTL表的裝置。
- 如請求項59述及之主控設備,亦包括:用於向該快閃記憶體設備查詢該快閃記憶體設備中儲存的該FTL表的一大小的裝置;及用於決定該揮發性記憶體是否能夠儲存該FTL表的全部的裝置,其中用於分配該揮發性記憶體的該部分的裝置包括用於基於該FTL表的該大小決定該揮發性記憶體的該部分的一大小的裝置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/892,433 US9575884B2 (en) | 2013-05-13 | 2013-05-13 | System and method for high performance and low cost flash translation layer |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506619A TW201506619A (zh) | 2015-02-16 |
TWI556099B true TWI556099B (zh) | 2016-11-01 |
Family
ID=50942864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103116876A TWI556099B (zh) | 2013-05-13 | 2014-05-13 | 用於高效能和低成本快閃記憶體轉換層的系統和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9575884B2 (zh) |
EP (1) | EP2997459B1 (zh) |
JP (1) | JP6190045B2 (zh) |
KR (1) | KR20160006709A (zh) |
CN (1) | CN105378642A (zh) |
BR (1) | BR112015028634A2 (zh) |
TW (1) | TWI556099B (zh) |
WO (1) | WO2014186232A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI791140B (zh) * | 2017-10-27 | 2023-02-01 | 日商鎧俠股份有限公司 | 記憶體系統 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150139718A (ko) * | 2014-06-03 | 2015-12-14 | 에스케이하이닉스 주식회사 | 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치 |
US9507722B2 (en) * | 2014-06-05 | 2016-11-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for solid state drive caching across a host bus |
US9563382B2 (en) | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
US10007442B2 (en) | 2014-08-20 | 2018-06-26 | Sandisk Technologies Llc | Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints |
US10228854B2 (en) | 2014-08-20 | 2019-03-12 | Sandisk Technologies Llc | Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations |
US10268584B2 (en) * | 2014-08-20 | 2019-04-23 | Sandisk Technologies Llc | Adaptive host memory buffer (HMB) caching using unassisted hinting |
US9851901B2 (en) | 2014-09-26 | 2017-12-26 | Western Digital Technologies, Inc. | Transfer of object memory references in a data storage device |
US10007433B2 (en) * | 2015-01-21 | 2018-06-26 | Sandisk Technologies Llc | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
US10101918B2 (en) | 2015-01-21 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for generating hint information associated with a host command |
KR20160120004A (ko) * | 2015-04-07 | 2016-10-17 | 삼성전자주식회사 | 시스템 온-칩 및 이를 포함하는 전자 기기 |
CN106155579A (zh) * | 2015-04-27 | 2016-11-23 | 广明光电股份有限公司 | 固态硬盘动态储存转换层数据的方法 |
CN106293493A (zh) * | 2015-05-18 | 2017-01-04 | 广明光电股份有限公司 | 固态硬盘模块动态储存转换层的方法 |
US10055236B2 (en) * | 2015-07-02 | 2018-08-21 | Sandisk Technologies Llc | Runtime data storage and/or retrieval |
US10452556B2 (en) | 2015-09-11 | 2019-10-22 | Toshiba Memory Corporation | Memory device and information processing device |
TWI553478B (zh) * | 2015-09-23 | 2016-10-11 | 瑞昱半導體股份有限公司 | 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 |
CN106557271B (zh) * | 2015-09-30 | 2019-08-20 | 合肥沛睿微电子股份有限公司 | 能够使用外部挥发性记忆体的装置以及能够释放内部挥发性记忆体的装置 |
US10452594B2 (en) * | 2015-10-20 | 2019-10-22 | Texas Instruments Incorporated | Nonvolatile logic memory for computing module reconfiguration |
TWI556100B (zh) * | 2015-10-26 | 2016-11-01 | 點序科技股份有限公司 | 快閃記憶體裝置及其交錯存取方法 |
CN105353989B (zh) * | 2015-11-19 | 2018-12-28 | 华为技术有限公司 | 存储数据访问方法及相关的控制器、设备、主机和*** |
US9927997B2 (en) | 2015-12-21 | 2018-03-27 | Sandisk Technologies Llc | Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device |
US20170177497A1 (en) * | 2015-12-21 | 2017-06-22 | Qualcomm Incorporated | Compressed caching of a logical-to-physical address table for nand-type flash memory |
US10331203B2 (en) | 2015-12-29 | 2019-06-25 | Texas Instruments Incorporated | Compute through power loss hardware approach for processing device having nonvolatile logic memory |
US10114743B2 (en) * | 2016-04-06 | 2018-10-30 | Sandisk Technologies Inc. | Memory erase management |
US10157004B2 (en) * | 2016-04-14 | 2018-12-18 | Sandisk Technologies Llc | Storage system and method for recovering data corrupted in a host memory buffer |
US10474374B2 (en) * | 2016-05-24 | 2019-11-12 | Samsung Electronics Co., Ltd. | Method and apparatus for storage device latency/bandwidth self monitoring |
WO2017209813A1 (en) * | 2016-05-31 | 2017-12-07 | Sandisk Technologies Llc | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
US10521118B2 (en) | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
US10503635B2 (en) * | 2016-09-22 | 2019-12-10 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
CN107870870B (zh) * | 2016-09-28 | 2021-12-14 | 北京忆芯科技有限公司 | 访问超过地址总线宽度的内存空间 |
CN107870867B (zh) * | 2016-09-28 | 2021-12-14 | 北京忆芯科技有限公司 | 32位cpu访问大于4gb内存空间的方法与装置 |
US10853233B2 (en) * | 2016-10-18 | 2020-12-01 | Toshiba Memory Corporation | Reconstruction of address mapping in a host of a storage system |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
TWI691839B (zh) * | 2016-11-28 | 2020-04-21 | 慧榮科技股份有限公司 | 資料管理方法 |
US10963393B1 (en) | 2017-01-13 | 2021-03-30 | Lightbits Labs Ltd. | Storage system and a method for application aware processing |
KR20180121733A (ko) * | 2017-04-28 | 2018-11-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10558393B2 (en) * | 2017-10-20 | 2020-02-11 | Qualcomm Incorporated | Controller hardware automation for host-aware performance booster |
US10409726B2 (en) | 2017-10-30 | 2019-09-10 | Micron Technology, Inc. | Dynamic L2P cache |
KR102384759B1 (ko) * | 2017-11-13 | 2022-04-11 | 삼성전자주식회사 | 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치 |
US11294440B2 (en) | 2017-11-17 | 2022-04-05 | Hewlett-Packard Development Company, L.P. | Peripheral device configurations by host systems |
US10459844B2 (en) * | 2017-12-21 | 2019-10-29 | Western Digital Technologies, Inc. | Managing flash memory read operations |
US10725983B2 (en) | 2017-12-29 | 2020-07-28 | Huawei Technologies Co., Ltd. | Systems and methods for database management using append-only storage devices |
TWI679538B (zh) | 2018-03-31 | 2019-12-11 | 慧榮科技股份有限公司 | 資料儲存系統之控制單元以及邏輯至物理映射表更新方法 |
WO2019209707A1 (en) * | 2018-04-23 | 2019-10-31 | Micron Technology, Inc. | Host logical-to-physical information refresh |
US10884920B2 (en) | 2018-08-14 | 2021-01-05 | Western Digital Technologies, Inc. | Metadata-based operations for use with solid state devices |
US11249664B2 (en) * | 2018-10-09 | 2022-02-15 | Western Digital Technologies, Inc. | File system metadata decoding for optimizing flash translation layer operations |
US11340810B2 (en) | 2018-10-09 | 2022-05-24 | Western Digital Technologies, Inc. | Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints |
KR20200046264A (ko) | 2018-10-24 | 2020-05-07 | 삼성전자주식회사 | 호스트 메모리 버퍼를 이용하는 데이터 스토리지 장치 및 그 동작 방법 |
KR102599176B1 (ko) | 2018-11-14 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리 버퍼를 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 |
CN111367830B (zh) * | 2018-12-06 | 2023-11-14 | 北京忆恒创源科技股份有限公司 | 主机参与的重建ftl表的方法及其存储设备 |
KR20200069889A (ko) * | 2018-12-07 | 2020-06-17 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20200088635A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN110235111B (zh) * | 2019-04-30 | 2020-06-26 | 长江存储科技有限责任公司 | 电子设备和管理闪存的读取电平的方法 |
KR20200143871A (ko) | 2019-06-17 | 2020-12-28 | 삼성전자주식회사 | 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법 |
KR20210068699A (ko) | 2019-12-02 | 2021-06-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
CN111177033A (zh) * | 2019-12-24 | 2020-05-19 | 河南文正电子数据处理有限公司 | 一种固态硬盘的使用方法 |
KR20220080254A (ko) * | 2020-12-07 | 2022-06-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 컨트롤러 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US20010012222A1 (en) * | 1999-12-20 | 2001-08-09 | Yukio Terasaki | Memory controller for flash memory system and method for accessing flash memory device |
US6484218B1 (en) * | 1998-10-08 | 2002-11-19 | Texas Instruments Incorporated | Method for improving direct memory access performance |
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
US20050138464A1 (en) * | 2003-11-21 | 2005-06-23 | Chong Pohsoon | Scratch fill using scratch tracking table |
US20110238892A1 (en) * | 2010-03-24 | 2011-09-29 | Lite-On It Corp. | Wear leveling method of non-volatile memory |
TW201303587A (zh) * | 2011-07-14 | 2013-01-16 | Lsi Corp | 用於在快閃記憶體介質控制器中處理儲存在快閃記憶體記憶體的頁中的中繼資料的方法、裝置及快閃記憶體記憶體系統 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4199519B2 (ja) * | 2002-11-05 | 2008-12-17 | パナソニック株式会社 | メモリ管理装置及びメモリ管理方法 |
US6981123B2 (en) * | 2003-05-22 | 2005-12-27 | Seagate Technology Llc | Device-managed host buffer |
TW200832440A (en) | 2007-01-25 | 2008-08-01 | Genesys Logic Inc | Flash memory translation layer system |
KR101663667B1 (ko) | 2009-02-03 | 2016-10-07 | 삼성전자주식회사 | 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8874824B2 (en) * | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
EP2264602A1 (en) | 2009-06-17 | 2010-12-22 | Gemalto SA | Memory device for managing the recovery of a non volatile memory |
KR20110121897A (ko) | 2010-05-03 | 2011-11-09 | 삼성전자주식회사 | 사용자 장치 및 그것의 프로그램 페일 처리 방법 |
WO2011148223A1 (en) * | 2010-05-27 | 2011-12-01 | Sandisk Il Ltd | Memory management storage to a host device |
KR20120081351A (ko) | 2011-01-11 | 2012-07-19 | 에스케이하이닉스 주식회사 | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
JP5405513B2 (ja) * | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
JP2012243287A (ja) * | 2011-05-24 | 2012-12-10 | Sony Corp | 情報処理装置および情報処理方法 |
KR101856506B1 (ko) | 2011-09-22 | 2018-05-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 |
CN102541760B (zh) * | 2012-01-04 | 2015-05-20 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机*** |
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
US9116820B2 (en) * | 2012-08-28 | 2015-08-25 | Memory Technologies Llc | Dynamic central cache memory |
KR102015906B1 (ko) * | 2012-11-12 | 2019-08-29 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 읽기 방법 |
US9329991B2 (en) * | 2013-01-22 | 2016-05-03 | Seagate Technology Llc | Translation layer partitioned between host and controller |
US9122588B1 (en) * | 2013-03-15 | 2015-09-01 | Virident Systems Inc. | Managing asymmetric memory system as a cache device |
-
2013
- 2013-05-13 US US13/892,433 patent/US9575884B2/en active Active
-
2014
- 2014-05-09 WO PCT/US2014/037531 patent/WO2014186232A1/en active Application Filing
- 2014-05-09 BR BR112015028634A patent/BR112015028634A2/pt not_active Application Discontinuation
- 2014-05-09 CN CN201480026743.4A patent/CN105378642A/zh active Pending
- 2014-05-09 JP JP2016513995A patent/JP6190045B2/ja active Active
- 2014-05-09 EP EP14730327.5A patent/EP2997459B1/en not_active Not-in-force
- 2014-05-09 KR KR1020157033238A patent/KR20160006709A/ko active IP Right Grant
- 2014-05-13 TW TW103116876A patent/TWI556099B/zh not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US6484218B1 (en) * | 1998-10-08 | 2002-11-19 | Texas Instruments Incorporated | Method for improving direct memory access performance |
US20010012222A1 (en) * | 1999-12-20 | 2001-08-09 | Yukio Terasaki | Memory controller for flash memory system and method for accessing flash memory device |
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
US20050138464A1 (en) * | 2003-11-21 | 2005-06-23 | Chong Pohsoon | Scratch fill using scratch tracking table |
US20110238892A1 (en) * | 2010-03-24 | 2011-09-29 | Lite-On It Corp. | Wear leveling method of non-volatile memory |
TW201303587A (zh) * | 2011-07-14 | 2013-01-16 | Lsi Corp | 用於在快閃記憶體介質控制器中處理儲存在快閃記憶體記憶體的頁中的中繼資料的方法、裝置及快閃記憶體記憶體系統 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI791140B (zh) * | 2017-10-27 | 2023-02-01 | 日商鎧俠股份有限公司 | 記憶體系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201506619A (zh) | 2015-02-16 |
CN105378642A (zh) | 2016-03-02 |
EP2997459A1 (en) | 2016-03-23 |
KR20160006709A (ko) | 2016-01-19 |
JP2016522942A (ja) | 2016-08-04 |
US20140337560A1 (en) | 2014-11-13 |
US9575884B2 (en) | 2017-02-21 |
BR112015028634A2 (pt) | 2017-07-25 |
EP2997459B1 (en) | 2018-03-07 |
JP6190045B2 (ja) | 2017-08-30 |
WO2014186232A1 (en) | 2014-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI556099B (zh) | 用於高效能和低成本快閃記憶體轉換層的系統和方法 | |
CN107967221B (zh) | 具有非易失性存储器的计算***及其操作方法 | |
TWI610172B (zh) | 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 | |
KR101673280B1 (ko) | 영구 저장소로의 라이트백을 요구하는 비 트랜잭션 코드 영역의 시작과 끝을 마킹하는 명령어들 | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
TWI594182B (zh) | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 | |
US9098398B2 (en) | Non-volatile memory systems and methods of managing power of the same | |
US11036412B2 (en) | Dynamically changing between latency-focused read operation and bandwidth-focused read operation | |
KR20170070920A (ko) | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 | |
US20170255561A1 (en) | Technologies for increasing associativity of a direct-mapped cache using compression | |
US20130262738A1 (en) | Page replacement method and memory system using the same | |
KR20150074550A (ko) | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
TWI519962B (zh) | 智慧雙資料率(ddr)記憶體控制器 | |
KR20190022933A (ko) | 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법 | |
CN114077393A (zh) | 将存储器***数据传送到主机*** | |
US10379768B2 (en) | Selective memory mode authorization enforcement | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
US12014080B2 (en) | Memory system using host memory buffer and operation method thereof | |
US11868270B2 (en) | Storage system and storage device, and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |