TWI723217B - 記憶體系統及其操作方法 - Google Patents
記憶體系統及其操作方法 Download PDFInfo
- Publication number
- TWI723217B TWI723217B TW106130625A TW106130625A TWI723217B TW I723217 B TWI723217 B TW I723217B TW 106130625 A TW106130625 A TW 106130625A TW 106130625 A TW106130625 A TW 106130625A TW I723217 B TWI723217 B TW I723217B
- Authority
- TW
- Taiwan
- Prior art keywords
- buffer
- memory
- data
- pbid
- mapping table
- Prior art date
Links
Images
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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本發明提供一種記憶體控制裝置,其可以包括:緩衝記憶體,在該緩衝記憶體中透過時隙單元存取數據;以及緩衝器介面,其適於控制對緩衝記憶體的存取。緩衝器介面可以包括:映射表,其適於儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;緩衝器分配單元,其適於基於將寫入緩衝記憶體中的數據的大小確定映射表的起始VBID和時隙的數量(NID),並且將閒置狀態的PBID分配到映射表中的緩衝器時隙序列,緩衝器時隙序列包括基於起始VBID和NID確定的時隙;以及緩衝器存取單元,其適於基於映射表存取在緩衝記憶體的PBID的位置處的數據。
Description
示例性實施例係關於一種記憶體系統,並且更特別地,係關於一種記憶體系統及其操作方法。
近來,計算機環境的範例轉變成允許使用者隨時隨地存取計算機系統的普適計算環境。由於該原因,諸如行動電話、數位相機和膝上型電腦等的可攜式電子裝置的使用快速增長。可攜式電子裝置通常採用作為數據儲存裝置的使用記憶體裝置的記憶體系統。數據儲存裝置可以用作可攜式電子裝置的主記憶體裝置或輔助記憶體裝置。
由於使用記憶體裝置的數據儲存裝置不包括機械驅動單元,因此數據儲存裝置具有優良的穩定性和耐久性。並且,使用記憶體裝置的數據儲存裝置的優點在於其可以快速存取數據並消耗少量的功率。具有這些優點的數據儲存裝置的非限制性示例包括通用串列匯流排(USB)記憶體裝置、具有各種介面的記憶卡和固態硬碟(SSD)等。
在記憶體系統中,寫入數據可用於將數據儲存在記憶體裝置中。例如,關於固態硬碟(SSD)裝置的來自主機的寫入命令可以被定義為將數據寫入記憶體裝置中。並且,在記憶體系統中,讀取數據可以用於讀取儲存在記憶體裝置中的數據。例如,關於SSD裝置的來自主機的讀取命令可以被定義為從記憶
體裝置讀取數據。當將數據寫入記憶體裝置中或讀取在記憶體裝置中寫入的數據時,記憶體系統可以在緩衝記憶體中緩衝數據。
在記憶體系統中,當存取緩衝記憶體時,隨機存取方案需要用於每個塊的緩衝區指標,並且順序存取方案具有管理緩衝區指標的開銷(overhead)。
本申請要求於2016年10月17日向韓國知識產權局提交的申請號為10-2016-0134229的韓國專利申請的優先權,其揭示內容透過引用而整體併入本文。
各個實施例係關於一種裝置和方法,其能夠將至緩衝器的數據劃分為每一個具有預定大小的多個時隙並且透過一個指標緩衝多個時隙的數據。
並且,各個實施例係關於一種記憶體系統,其基於主機命令和數據大小將緩衝記憶體的實體位址資訊映射到虛擬位址資訊,並且基於映射的位址資訊來存取接收的數據。
在實施例中,記憶體控制裝置可以包括:緩衝記憶體,在該緩衝記憶體中透過時隙單元存取數據;以及緩衝器介面,其適於控制對緩衝記憶體的存取。緩衝器介面可以包括:映射表,其適於儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;緩衝器分配單元,其適於基於將寫入緩衝記憶體中的數據的大小來確定映射表的起始VBID和時隙的數量(NID),並且將閒置狀態的PBID分配到映射表中的緩衝器時隙序列,緩衝器時隙序列包括基於起始VBID和NID確定的時隙;以及緩衝器存取單元,其適於基於映射表存取在緩衝記憶體的PBID的位置處的數據。
在實施例中,記憶體系統可以包括:主機;記憶體裝置;以及控制器,其聯接到主機和記憶體裝置。控制器可以包括:主機介面,其適於將存取命令和數據與主機介面連接;記憶體介面,其適於將存取命令和數據與記憶體裝置介面連接;緩衝記憶體,在該緩衝記憶體中透過時隙單元存取數據;以及緩衝器介面,其適於生成映射表並且基於映射表將數據緩衝在緩衝記憶體中,其中映射表儲存基於來自主機介面的存取命令和數據大小透過時隙單元存取的緩衝記憶體的多個虛擬時隙與多個實體時隙之間的映射。
在實施例中,一種存取緩衝記憶體的方法,在該緩衝記憶體中透過時隙單元存取數據,該方法可以包括:基於將寫入緩衝記憶體的數據的大小確定映射表的起始虛擬時隙識別資訊(VBID)和時隙的數量(NID),其中映射表儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;將閒置狀態的PBID分配到映射表中的緩衝器時隙序列,緩衝器時隙序列包括基於起始VBID和NID確定的時隙;以及基於映射表存取在緩衝記憶體的PBID的位置處的數據。
在實施例中,一種記憶體系統的操作方法,該記憶體系統包括緩衝記憶體,在該緩衝記憶體中透過時隙單元存取數據,該方法可以包括:從主機介面接收存取命令和關於數據大小的資訊;生成映射表並基於映射表將數據緩衝在緩衝記憶體中的緩衝器介面程序,其中映射表儲存基於存取命令和數據大小透過時隙單元存取的緩衝記憶體的多個虛擬時隙與多個實體時隙之間的映射;以及將緩衝在緩衝記憶體中的數據傳輸到記憶體裝置或主機中的其中一個。
100:數據處理系統
102:主機
110:記憶體系統
130:控制器
132:主機介面(I/F)單元
134:處理器
138:錯誤校正碼(ECC)單元
140:電源管理單元(PMU)
142:NAND快閃控制器(NFC)
144:記憶體
150:記憶體裝置
152:儲存塊
154:儲存塊
156:儲存塊
210:第零儲存塊(塊0)
220:第一儲存塊(塊1)
230:第二儲存塊(塊2)
240:第N-1儲存塊(塊N-1)
310:電壓供給單元
320:讀取/寫入電路
322:頁面緩衝器(PB)
324:頁面緩衝器(PB)
326:頁面緩衝器(PB)
330:儲存塊
340:單元串
500:控制器
510:處理器
520:主機介面
525:記憶體介面
530:緩衝器介面
540:緩衝記憶體
545:匯流排(片上匯流排)
550:記憶體裝置
590:主機
610:記憶體控制單元或編程邏輯
620:電壓供給單元
630:列解碼器
640:記憶體單元陣列
650:行解碼器
660:編程/讀取電路
663:編程(PGM)電路
665:讀取電路
710:緩衝器分配單元(BAU)
720:緩衝器存取單元
730:時隙狀態表
740:映射表
810:第一區域
820:第二區域
910:VBID表
913:區域
915:第二區域
920:PBID表
923:區域
925:第二區域
930:映射表
931:第一區域
935:第二區域
1010:PBID和實體位址
1013:PBID
1015:實體位址
1020:VBID和虛擬位址
1023:VBID
1025:虛擬位址
1030:映射表
1033:VBID(ADD)
1035:PBID(DAT)
1041:第一緩衝器序列
1043:第二緩衝器序列
1045:2N個PBID的大小或深度
1110:實體位址
1141:第一IOP
1143:第二IOP
1150:虛擬位址
1160:PBID
1170:實體位址
1211:步驟
1213:步驟
1215:步驟
1217:步驟
1219:步驟
1221:步驟
1223:步驟
1231:步驟
1233:步驟
1241:執行相應的功能
1311:步驟
1313:步驟
1315:步驟
1317:步驟
1319:步驟
1331:步驟
1333:步驟
1335:步驟
1337:步驟
1339:步驟
1341:步驟
1351:執行相應的功能
1411:步驟
1412:步驟
1413:步驟
1415:步驟
1417:步驟
1419:步驟
1421:步驟
1423:步驟
1425:步驟
1451:步驟
1453:步驟
1455:步驟
1457:步驟
1459:步驟
1460:步驟
1461:步驟
1465:步驟
1467:步驟
1469:步驟
1511:步驟
1512:步驟
1513:步驟
1515:步驟
1517:步驟
1519:步驟
1521:步驟
1523:步驟
1525:步驟
1527:步驟
1529:步驟
1551:步驟
1553:步驟
1555:步驟
1557:步驟
1559:步驟
1561:步驟
1563:步驟
1565:步驟
1567:步驟
1569:步驟
6100:記憶卡系統
6110:連接器
6120:記憶體控制器
6130:記憶體裝置
6200:數據處理系統
6210:主機
6220:記憶體控制器
6221:中央處理單元(CPU)
6222:隨機存取記憶體(RAM)
6223:錯誤校正碼(ECC)電路
6224:主機介面
6225:NVM介面
6230:記憶體裝置
6300:固態硬碟(SSD)
6310:主機
6320:控制器
6321:處理器
6322:錯誤校正碼(ECC)電路
6324:主機介面
6325:緩衝記憶體
6326:非依電性記憶體(NVM)介面
6340:記憶體裝置
6400:示出嵌入式多媒體卡(eMMC)
6410:主機
6430:控制器
6431:主機介面
6432:內核
6433:NAND介面
6440:記憶體裝置
6500:UFS系統
6510:UFS主機
6520:UFS裝置
6530:UFS裝置
6540:嵌入式UFS裝置
6550:可移除UFS卡
6600:使用者系統
6610:使用者介面
6620:記憶體模組
6630:應用處理器
6640:網路模組
6650:儲存模組
〔圖1〕是示出根據本發明的實施例的包括記憶體系統的數據處理系統的方塊圖。
〔圖2〕是示意性地示出根據本發明的實施例的包括在記憶體系統中的記憶體裝置的圖。
〔圖3〕是示意性地示出根據本發明的實施例的包括在記憶體裝置中的儲存塊的記憶體單元陣列電路的圖。
〔圖4〕是示意性地示出根據本發明的實施例的記憶體系統中的記憶體裝置的結構的圖。
〔圖5〕是示出根據實施例的記憶體系統的圖。
〔圖6〕是示出根據實施例的記憶體裝置的圖。
〔圖7〕是示出根據實施例的緩衝器介面的圖。
〔圖8〕是示出根據實施例的時隙狀態表的圖。
〔圖9〕是示出根據實施例的映射表的圖。
〔圖10〕是示出根據實施例的映射表的示例的圖。
〔圖11A和圖11B〕是示出緩衝器存取操作的示例的圖。
〔圖12〕是示出根據實施例的緩衝器分配操作的流程圖。
〔圖13〕是示出根據實施例的緩衝器存取操作的流程圖。
〔圖14〕是示出根據實施例的用於將數據寫入記憶體系統的記憶體裝置中的操作的圖。
〔圖15〕是示出根據實施例的用於從記憶體系統中的記憶體裝置讀取數據的操作的圖。
〔圖16至圖21〕是示出包括根據本發明的實施例的記憶體系統的數據處理系統的其它示例的方塊圖。
以下將參照圖式更詳細地描述各個實施例。然而,本發明可以以不同的形式體現並且不應被解釋為限於本文闡述的實施例。相反,提供這些實施例使得本發明將是徹底且完全的,並且將向本發明所屬技術領域中具有通常知識者完全傳達本發明的範圍。在整個揭示內容中,相同的元件符號在整個本發明的各個圖式和實施例中表示相同的部件。
圖式不一定按比例繪製,在一些情况下,為了更清楚地示出實施例的各種元件,可以誇大比例。例如,在圖式中,為了便於說明,與實際尺寸和間隔相比,元件的尺寸和元件之間的間隔可以被誇大。
將進一步理解的是,當元件被稱為“連接至”或“聯接至”另一元件時,它可以直接在其它元件上、連接至或聯接至其它元件,或可存在一個或多個中間元件。另外,也將理解的是,當元件被稱為在兩個元件“之間”時,其可以是兩個元件之間僅有的元件或也可存在一個或多個中間元件。
為了便於描述,在本文中可以使用諸如“下面”、“下方”、“下”、“上方”、“上”等的空間相對術語以描述如圖所示的一個元件或特徵與另一元件或特徵的關係。將理解的是,除了圖式中描繪的方位之外,空間相對術語旨在包括裝置在製造、使用或操作中的不同方位。例如,如果圖式中的裝置被翻轉,則被描述為在其它元件或特徵“下方”或“下面”的元件將在其它元件或特徵“上方”。裝置可以以其它方式定向、旋轉90度或在其它方位處,並且本文使用的空間相對描述符應當被相應地解釋。
本文使用的術語的目的僅是描述特定實施例而不旨在限制本發明。如本文使用的,單數形式也旨在包括複數形式,除非上下文另有清楚地說
明。將進一步理解的是,當在該說明書中使用術語“包括”、“包括有”、“包含”和“包含有”時,它們指定闡述的元件的存在而不排除一個或多個其它元件的存在或增加。如本文使用的,術語“和/或”包括一個或多個相關的所列項目的任何一個和所有組合。
除非另有定義,否則本文所使用的包括技術術語和科學術語的所有術語具有與本發明所屬技術領域中具有通常知識者基於本發明通常理解的含義相同的含義。將進一步理解的是,諸如在常用詞典中定義的那些術語的術語應被理解為具有與它們在本發明的上下文和相關領域中的含義一致的含義並且將不以理想化或過於正式的意義來解釋,除非本文如此明確地定義。
在以下描述中,為了提供本發明的徹底理解,闡述許多具體細節。本發明可在沒有一些或全部這些具體細節的情况下被實踐。在其它情况下,為了不使本發明產生不必要模糊,未詳細地描述公知的程序結構和/或程序。
同樣注意的是,在一些情况下,對相關領域中具有通常知識者顯而易見的是,結合一個實施例描述的並可被稱為特徵的元件可單獨使用或與另一實施例的其它元件結合使用,除非另有明確說明。
在下文中,將參照圖式詳細地描述本發明的各個實施例。
圖1示出根據本發明的實施例的包括記憶體系統110的數據處理系統100。
參照圖1,數據處理系統100可以包括主機102和記憶體系統110。
主機102可以是任何合適的電子裝置。例如,主機102可以是或包括諸如行動電話、MP3播放器和膝上型電腦的可攜式電子裝置或諸如桌上型電腦、游戲機、電視(TV)和投影機的非可攜式電子裝置。
記憶體系統110可以響應於來自主機102的請求來操作。例如,記憶體系統110可以儲存由主機102提供的數據,並且記憶體系統110還可以將儲存
的數據提供給主機102。儲存在記憶體系統中的數據可以由主機102存取。記憶體系統110可以用作主機102的主記憶體或輔助記憶體。根據將與主機102電聯接的主機介面的協定,記憶體系統110可以利用各種儲存裝置中的任意一種來實施。記憶體系統110可以利用諸如以下的各種儲存裝置中的任意一種來實施:固態硬碟(SSD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC、安全數位(SD)卡、迷你SD、微型SD、通用串列匯流排(USB)儲存裝置、通用快閃儲存(UFS)裝置、標準快閃(CF)卡、智慧型媒體(SM)卡、記憶棒等。
形成記憶體系統110的儲存裝置可以利用諸如動態隨機存取記憶體(DRAM)和靜態隨機存取記憶體(SRAM)的依電性記憶體裝置或諸如唯讀記憶體(ROM)、遮罩ROM(MROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、鐵電隨機存取記憶體(FRAM)、相變RAM(PRAM)、磁阻RAM(MRAM)、電阻式RAM(RRAM)和快閃記憶體的非依電性記憶體裝置來實施。
記憶體系統110可以包括記憶體裝置150和控制器130。記憶體裝置150可以儲存可以由主機102存取的數據。控制器130可以控制記憶體裝置150和主機102之間的數據交換。例如,在控制器130的控制下,從主機接收的數據可以被儲存在記憶體裝置150中,並且記憶體裝置150中儲存的數據可以被讀取並被傳輸到主機102。
控制器130和記憶體裝置150可以被集成到一個半導體裝置中。例如,控制器130和記憶體裝置150可以被集成到一個半導體裝置中以形成固態硬碟(SSD)。當記憶體系統110用作SSD時,可以顯著增大與記憶體系統110電聯接的主機102的操作速度。
控制器130和記憶體裝置150可以集成到一個半導體裝置中以形成諸如以下的記憶卡:例如,個人電腦記憶卡國際協會(PCMCIA)卡、標準快閃
(CF)卡、智慧型媒體卡(SMC)、記憶棒、多媒體卡(MMC)、RS-MMC、微型MMC、安全數位(SD)卡、迷你SD、微型SD、SDHC、通用快閃儲存(UFS)裝置。
即使在電源被中斷時,記憶體裝置150仍然可以保留儲存的數據,在寫入操作期間儲存由主機102提供的數據,並且在讀取操作期間將儲存的數據提供給主機102。記憶體裝置150可以包括多個儲存塊152、154和156。儲存塊152、154和156中的每一個可以包括多個頁面。頁面中的每一個可以包括電聯接到字線(WL)的多個記憶體單元。記憶體單元可以是單位元單元或多位元單元。記憶體單元可以被布置成二維堆疊結構或三維堆疊結構。記憶體裝置150可以是例如快閃記憶體的非依電性記憶體裝置。快閃記憶體可以具有三維(3D)堆疊結構。
控制器130可以控制記憶體裝置150的諸如讀取操作、寫入操作、編程操作和擦除操作的總體操作。
例如,控制器130可以包括主機介面(I/F)單元132、處理器134、錯誤校正碼(ECC)單元138、電源管理單元(PMU)140、NAND快閃控制器(NFC)142和記憶體144。
主機介面單元132可以處理從主機102提供的命令和數據,並且可以透過諸如以下的各種介面協定中的至少一種與主機102通信:通用串列匯流排(USB)、多媒體卡(MMC)、高速外圍組件互連(PCI-E)、串列SCSI(SAS)、串列高級技術附件(SATA)、並行高級技術附件(PATA)、小型計算機系統介面(SCSI)、增强型小型磁盤介面(ESDI)和集成驅動電子設備(IDE)。
ECC單元138可以在讀取操作期間檢測並校正從記憶體裝置150讀取的數據中的錯誤。當錯誤位元的數量大於可校正錯誤位元的閾值數量時,ECC單元138可以不校正錯誤位元,然後可以輸出指示校正錯誤位元失敗的錯誤校正失敗信號。
ECC單元138可以基於包括諸如低密度奇偶校驗(LDPC)碼、博斯-查德胡裏-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)碼、渦輪碼、裏德-所羅門(Reed-Solomon,RS)碼、卷積碼、遞歸系統碼(RSC)、格形編碼調製(TCM)、分組編碼調製(BCM)等的編碼調製的任何合適的方法來執行錯誤校正操作。ECC單元138可以包括用於錯誤校正操作的所有電路、系統或裝置。
PMU 140可以提供和管理控制器130的電源,即,包括在控制器130中的組成元件的電源。
NFC 142可以用作控制器130和記憶體裝置150之間的記憶體介面以允許控制器130響應於來自主機102的請求來控制記憶體裝置150。當記憶體裝置150是快閃記憶體時,並且特別地,當記憶體裝置150是NAND快閃記憶體時,NFC 142可以在處理器134的控制下生成用於記憶體裝置150的控制信號並處理數據。注意的是,根據採用的記憶體裝置的類型,可以採用不同的記憶體介面。
記憶體144可以用作記憶體系統110和控制器130的工作記憶體。記憶體144可以儲存用於驅動記憶體系統110和控制器130的數據。控制器130可以響應於來自主機102的請求來控制記憶體裝置150。例如,控制器130可以將從記憶體裝置150讀取的數據提供給主機102,並且將從主機102提供的數據儲存在記憶體裝置150中。當控制器130控制記憶體裝置150的諸如讀取操作、寫入操作、編程操作和擦除操作的操作時,記憶體144可以儲存由控制器130和記憶體裝置150用於操作的數據。
記憶體144可以利用諸如例如靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)的依電性記憶體來實施。如上所述,記憶體144可以儲存由主機102和記憶體裝置150用於包括讀取操作和寫入操作的操作的數據。為了儲存數據,記憶體144可以包括編程記憶體、數據記憶體、寫入緩衝器、讀取緩衝器、映射緩衝器等。
處理器134可以控制記憶體系統110的一般操作,並且可以分別響應於從主機102接收的寫入請求或讀取請求來控制記憶體裝置150的寫入操作或讀取操作。例如,處理器134可以驅動被稱為快閃轉換層(FTL)的韌體來控制記憶體系統110的一般操作。處理器134可以利用例如微處理器或中央處理單元(CPU)來實施。
圖2是示出根據本發明的實施例的記憶體系統的記憶體裝置的示例的圖。圖3是示意性地示出根據本發明的實施例的在記憶體裝置中的儲存塊的記憶體單元陣列電路的圖。圖4是示意性地示出根據本發明的實施例的記憶體裝置的結構的圖,其中記憶體裝置可以被實現為3維非依電性記憶體裝置。
參照圖2,記憶體裝置150可以包括多個儲存塊。例如,記憶體裝置150可以包括第零儲存塊(塊0)210、第一儲存塊(塊1)220、第二儲存塊(塊2)230和第N-1儲存塊(塊N-1)240。儲存塊210至240的每一個可以包括多個頁面,例如2M個頁面(2M頁面)。頁面中的每一個可以包括電聯接到字線的多個記憶體單元。
此外,根據每個記憶體單元中可以儲存或表達的位元的數量,記憶體裝置150可以包括多種儲存塊,如單層單元(SLC)儲存塊和/或多層單元(MLC)儲存塊。SLC儲存塊可以包括由每一個能夠儲存1位元數據的記憶體單元實施的多個頁面。MLC儲存塊可以包括由每一個能夠儲存例如兩位元或更多位元數據的多位元數據的記憶體單元實施的多個頁面。包括由每個能夠儲存3位元數據的記憶體單元實施的多個頁面的MLC儲存塊也可以被稱為三層單元(TLC)儲存塊。
儲存塊210至240中的每一個可以在寫入操作期間儲存從主機102提供的數據,並且在讀取操作期間將儲存的數據提供給主機102。
參照圖3,儲存塊330可以包括分別電聯接到多個相應的位元線BL0至BLm-1的多個單元串340。每一列的單元串340可以包括至少一個汲極選擇
晶體管DST和至少一個源極選擇晶體管SST。多個記憶體單元晶體管MC0至MCn-1可以串聯地電聯接在選擇晶體管SST和DST之間。各個記憶體單元MC0至MCn-1可以由多層單元(MLC)配置,每個多層單元儲存多個位元的數據資訊。作為參考,在圖3中,“DSL”表示汲極選擇線,即串選擇線,“SSL”表示源極選擇線,即接地選擇線,“CSL”表示共源線。
記憶體裝置150的讀取/寫入電路320可以由控制電路控制,並且可以根據操作模式用作感測放大器或寫入驅動器。在驗證/正常讀取操作期間,讀取/寫入電路320可以用作用於從記憶體單元陣列讀取數據的感測放大器。在編程操作期間,讀取/寫入電路320可以用作根據將儲存在記憶體單元陣列中的數據驅動位元線的寫入驅動器。讀取/寫入電路320可以在編程操作期間從緩衝器(未示出)接收將寫入記憶體單元陣列中的數據,並且可以根據輸入的數據來驅動位元線。讀取/寫入電路320可以包括分別對應於列或位元線或列對或位元線對的多個頁面緩衝器(PB)322、324和326,並且多個鎖存器(未示出)可以被包括在頁面緩衝器322、324和326中的每一個中。
記憶體裝置150可以被實現為2維記憶體裝置或3維記憶體裝置。例如,如圖4所示,當記憶體裝置150被實現為3維非依電性記憶體裝置時,記憶體裝置150可以包括多個儲存塊BLK0至BLKN-1。例如,各個儲存塊BLK0至BLKN-1可以透過包括在例如x軸方向、y軸方向和z軸方向的第一方向至第三方向上延伸的結構被實現為3維結構。
各個儲存塊BLK0至BLKN-1可以包括在第二方向上延伸的多個NAND串。多個NAND串可以被設置在第一方向和第三方向上。每個NAND串可以電聯接到位元線、至少一個汲極選擇線、至少一個源極選擇線、多個字線、至少一個虛擬字線和共源線,並且包括多個晶體管結構。
本發明的各個實施例係關於一種用於存取電子裝置或記憶體系統中的緩衝記憶體的裝置和方法。電子裝置或記憶體系統可以隨機地或順序地處理主機裝置的通信量(traffic)。當存取緩衝器時,可以使用隨機方案和順序方案中的其中一個。隨機方案可以透過例如512位元組、4K位元組等的預定時隙表示數據。順序方案可以透過連續尋址表示具有大於時隙單元的大小的數據。根據表示數據緩衝器的方式,隨機方案和順序方案可以具有不同的效率。例如,在隨機方案的描述符可以由優化為隨機的指標來定義(例如,時隙是4K位元組)的同時,順序方案的描述符可能需要對N個時隙的描述,時隙的每一個是例如4KB的隨機方案。根據本發明的各個實施例的記憶體系統或記憶體裝置可以提供能夠透過隨機方案和/或順序方案一致地表示數據的裝置和方法。
圖5是示出根據實施例的記憶體系統的圖。
參照圖5,記憶體系統可以包括控制器500。控制器500可以是電子裝置的控制單元。電子裝置可以包括例如智慧型電話、平板個人電腦(PC)、行動電話、視訊電話、電子書閱讀器、桌上型PC、膝上型PC、小筆電、工作站、伺服器、個人數位助理(PDA)、可攜式多媒體播放器(PMP)、MP3播放器、醫療器械、相機和可穿戴式裝置中的至少一個。
在一些實施例中,控制器500可以包括聯接到主機裝置的固態硬碟(SSD)或嵌入式多媒體卡(eMMC)。主機裝置可以包括電子裝置。如果控制器500是SSD,則記憶體系統可以被配置為響應於外部裝置的寫入請求,將從例如主機裝置的外部裝置提供的編程數據寫入記憶體裝置中。在以下描述中,寫入和編程可以被用作具有相同含義的術語。此外,記憶體系統可以被配置為響應於外部裝置的讀取請求,將寫入記憶體裝置中的數據提供給外部裝置。記憶體系統可以由個人電腦記憶卡國際協會(PCMCIA)卡,標準快閃(CF)卡,智慧型媒體卡,記憶棒,MMC、eMMC、RS-MMC和微型MMC形式的多媒體卡,SD、
迷你SD和微型SD形式的安全數位卡,通用快閃儲存(UFS)或固態硬碟(SSD)配置。
圖5示出根據實施例的作為記憶體系統的SSD裝置的配置的示例。控制器500可以包括處理器510、主機介面520、記憶體介面525、緩衝器介面530、緩衝記憶體540和匯流排(片上匯流排)545。
主機介面520可以在控制器500和主機590之間執行介面功能。記憶體介面525可以在控制器500和記憶體裝置550之間執行介面功能。
緩衝記憶體540可以透過動態隨機存取記憶體(DRAM)和/或靜態隨機存取記憶體(SRAM)來配置。緩衝記憶體540可以包括在主機590和記憶體裝置550之間臨時儲存數據的緩衝器區域、儲存記憶體系統的資訊的快取區域、儲存記憶體系統的程序的編程區域等。根據本發明的實施例的緩衝記憶體540被描述為當將數據從主機590傳輸到記憶體裝置550或將數據從記憶體裝置550傳輸到主機590時臨時儲存數據的緩衝器。處理器510可以控制記憶體系統的一般操作。處理器510可以透過控制緩衝器介面530來控制響應於例如從主機590接收的寫入命令或編程命令的寫入請求而將數據儲存在記憶體裝置550中的操作以及響應於例如來自主機590的讀取命令的讀取請求而讀取寫入記憶體裝置550中的數據並將讀出數據輸出到主機590的操作。緩衝器介面530可以在處理器510的控制下將數據從主機介面520或記憶體介面525傳輸到緩衝記憶體540,並且將儲存在緩衝記憶體540中的數據輸出到記憶體介面525或主機介面520。匯流排545可以與控制器500中的處理器510、主機介面520、記憶體介面525、緩衝器介面530和緩衝記憶體540聯接,並且提供數據、命令和/或控制信號的路徑。
主機590可以用作利用協定尋址記憶體裝置550的主體。主機介面520可以用作與主機590通信的信道。主機介面520可以是SATA、PCI-e、eMMC或UFS。記憶體介面525可以用作實際存取(讀取、編程或擦除)記憶體裝置550的
主體。緩衝器介面530可以用作控制緩衝記憶體540的主體。緩衝器介面530可以被包括在處理器510中。
圖6是示出根據實施例的記憶體裝置550的圖。
參照圖6,記憶體裝置550可以包括記憶體控制單元或編程邏輯610、電壓供給單元620、列解碼器630、記憶體單元陣列640、行解碼器650和編程/讀取電路660。
記憶體裝置550可以包括諸如以下的快閃記憶體裝置:NAND快閃或NOR快閃、鐵電隨機存取記憶體(FeRAM)、相變隨機存取記憶體(PCRAM)、磁性隨機存取記憶體(MRAM)或電阻式隨機存取記憶體(ReRAM)。在以下描述中,記憶體裝置550可以被描述為作為非依電性記憶體裝置的NAND快閃。
記憶體單元陣列640可以聯接到多個字線(WL)和多個位元線(BL)。記憶體單元陣列640可以包括分別設置在多個字線和多個位元線彼此相交的區域處的多個記憶體單元。記憶體單元陣列640可以與命令(CMD)一起接收用於指示將存取的記憶體單元的位址(ADDR)。位址(ADDR)可以包括用於選擇記憶體單元陣列640的字線(WL)的列位址(X_ADDR)和用於選擇記憶體單元陣列640的位元線(BL)的行位址(Y_ADDR)。
列解碼器630可以透過字線(WL)聯接到記憶體單元陣列640,並且響應於列位址(X_ADDR)來選擇字線(WL)中的至少一個。行解碼器650可以透過位元線(BL)聯接到記憶體單元陣列640,並且響應於行位址(Y_ADDR)來選擇位元線(BL)中的至少一個。
編程/讀取電路660可以包括編程(PGM)電路663和讀取電路665。編程電路663可以透過行解碼器650聯接到選擇的位元線(BL),並且透過將編程脉衝提供給記憶體單元陣列640的選擇的記憶體單元來執行編程操作,即數據寫入操作。讀取電路665可以透過行解碼器650聯接到選擇的位元線(BL),感測記
憶體單元陣列640的選擇的記憶體單元的位準,並且讀取或輸出儲存在選擇的記憶體單元中的數據。讀取電路665可以將數據輸出到例如控制器500的記憶體裝置550的外部。
電壓供給單元620可以基於記憶體控制單元610的電壓控制來生成用於對記憶體單元陣列640執行編程操作、讀取操作和擦除操作的各種類型的電壓。進一步地,電壓供給單元620可以生成用於驅動多個字線(WL)和多個位元線(BL)的驅動電壓或偏置電壓,例如設置編程電壓、重置電壓、讀取電壓和截止電壓。
記憶體控制單元610可以基於從控制器500接收的命令(CMD)、位址(ADDR)和控制信號(CTRL)將用於將數據編程到記憶體單元陣列640或從記憶體單元陣列640讀取數據的電壓控制信號輸出到電壓供給單元620。記憶體控制單元610可以將從控制器500接收的操作控制信號提供給編程/讀取電路660、電壓供給單元620、列解碼器630和行解碼器650。記憶體控制單元610通常可以控制記憶體裝置550中的操作。
再次參照圖5,記憶體系統可以分析來自主機590的命令或請求並將命令或請求轉發到記憶體裝置550,或從記憶體裝置550讀取數據並將數據轉發到主機590。記憶體系統具有關於主機590的轉發功能。緩衝器介面530可以進一步包括管理緩衝記憶體540的使用、釋放和尋址的部件。
下面將描述緩衝記憶體540的隨機存取方案和順序存取方案。
主機590的命令集可以包括關於數據大小的命令、位址和資訊。例如,命令集可以是READ(ADDR,SIZE-1)、WRITE(ADDR,SIZE-1)等。命令集的READ和WRITE可以是分別請求記憶體裝置550的數據讀取操作和數據寫入操作的命令。當記憶體裝置550是快閃記憶體時,主機590可以透過例如邏輯塊位址(LBA)的位址值來指定寫入或讀取數據的位置,並且指定讀取或寫入的數據
的大小。讀取或寫入的最小單元可以是例如512位元組或4K位元組的一個頁面。最大大小可以被定義為最小單元的N倍。例如,在4K位元組的情况下,數據大小可以由4K位元組的一倍、兩倍或四倍來表示。在128K位元組的情况下,數據大小可以由4K位元組的32倍來表示。在該情况下,命令可以被表示為WRITE(0x100,0)、WRITE(0x100,1)、WRITE(0x100,3)和WRITE(0x100,31)。這些可以意味著將(0+1)、(1+1)、(3+1)和(31+1)個4K位元組傳送到具有位址0x100的記憶體區域。
命令集可以由主機介面520獲取,並且被傳送到處理器510。處理器510可以分析接收的命令集。例如,在WRITE(0x100,31)的命令集的情况下,處理器510可以檢查32個4K位元組數據到0x100的連續寫入。然後,處理器510可以指示主機介面520將32個4K位元組的數據儲存在緩衝記憶體540中。如果主機介面520和緩衝器介面530將所有相應的數據量儲存在緩衝記憶體540中,則處理器510可以指示記憶體介面525和緩衝器介面530從緩衝記憶體540讀取128K位元組的數據並且將讀出的數據傳輸到記憶體裝置550。如果相應的操作由記憶體介面525完成,則處理器510可以將通知數據儲存完成的響應傳輸到主機590。
緩衝器介面530相對於緩衝記憶體540的存取方案可以被劃分為以下兩種方案。一種方案可以是表示緩衝記憶體540的起始位址和數據大小的方案。另一種方案可以是透過諸如時隙的預定單元劃分緩衝記憶體540的方案,例如N個時隙,N表示時隙數量。
由於在第一存取方法中足以表示緩衝記憶體540的起始位址和數據大小,因此足夠的是,處理器510僅將起始位址和數據大小資訊傳送到緩衝器介面530,而不管數據的大小,例如4KB傳送或128KB傳送。處理器510可以僅透過包括起始位址和數據大小的兩個因素來配置簡單的命令集,而不管待傳送的數據量。然而,該方法可能導致緩衝記憶體540的碎片化。例如,來自主機590
的命令集可能不被正常的數據大小介面連接,因此,可能在預定時間經過時發生記憶體的碎片化。此外,在服務新命令的情况下,需要配置連續的內存。因此,控制器500可能需要用於收集緩衝記憶體540的完全使用的區域的碎片整理操作,並且該操作可作為處理器510的負擔並且降低記憶體系統的性能。
第二存取方法可以是透過根據作為時隙單元劃分緩衝記憶體540來存取緩衝記憶體540的方法。當控制器500分配來自主機590的命令的例如4K位元組的最小單元作為作為時隙單元的最小大小時,所有命令可以由N個時隙表示。此外,當發生緩衝記憶體540的碎片化時,因為其是例如4K位元組單元的最小單元的碎片化,所以如果發生碎片化的時隙的位置是已知的,則控制器500可以重新使用緩衝記憶體540。在第二種存取方法中,所有命令可以被定義為由例如N個4KB時隙的時隙的數量來表示。例如,128K位元組可以由32個時隙數量來表示,並且1M位元組可以由256個時隙數量來表示。因此,當使用大量緩衝器時,第二種存取方法可能導致劣化。為了描述緩衝器,相應數量的時隙數量應當被一次性全部傳送或時隙應當透過配置鏈接串列來傳送。因此,第二種存取方法可作為控制器500的負載,例如負載在某種程度上存在於處理器510、主機介面520和記憶體介面525中,並且用於介面連接緩衝記憶體540的時隙的計算可能增加。
根據實施例的記憶體系統可以提供一種能夠以簡單的方式解决記憶體的碎片化並存取緩衝記憶體的裝置和方法。
圖7是示出根據實施例的緩衝器介面的圖。例如,圖7的緩衝器介面可以是圖5的緩衝器介面530。
參照圖7,緩衝器介面可以包括緩衝器分配單元(BAU)710、緩衝器存取單元720、時隙狀態表730和映射表740。
聯接到緩衝器介面的緩衝記憶體540可以包括其中透過時隙單元存取數據的緩衝器區域。緩衝記憶體540可以是DRAM和/或SRAM。在一些實施例中,作為緩衝記憶體540的數據存取單元的時隙可以具有與例如記憶體裝置550的頁面的讀取和寫入單元相同的大小。可選地,時隙可以具有例如記憶體裝置550的頁面的讀取和寫入單元的N倍或1/N倍的大小。
緩衝器介面可以包括時隙狀態表730和映射表740。時隙狀態表730表示映射,即,諸如緩衝記憶體540的閒置或使用狀態的時隙狀態的閒置/使用時隙映射。映射表740表示例如虛擬大緩衝器識別(VBID)的虛擬時隙識別資訊和例如實體大緩衝器識別(PBID)的實體時隙識別資訊之間的映射關係。
緩衝器介面的緩衝器分配單元710可以基於數據大小來設置起始虛擬時隙識別資訊即映射表740的起始VBID和時隙的虛擬數量。緩衝器分配單元710可以透過在時隙狀態表730中選擇閒置狀態的時隙並且將選擇的閒置狀態的PBID分別分配到與在映射表740的起始VBID位置處設置的時隙的虛擬數量相對應的最後VBID的位置來生成映射表740。即,緩衝器分配單元710可以基於數據大小來確定映射表740的起始VBID和時隙的數量,在時隙狀態表730中選擇閒置狀態的PBID,並且將選擇的閒置狀態的PBID分配到與在起始VBID位置處確定的時隙的數量相對應的最後VBID的位置。緩衝器分配單元710可以生成映射表740,其中緩衝記憶體540的閒置PBID被映射在對應於數據大小的映射表740的起始VBID位置和最後VBID位置之間。
當將數據寫入緩衝記憶體540中或從緩衝記憶體540讀取數據時,緩衝器存取單元720可以透過檢查映射到映射表740的設置VBID的緩衝記憶體540的PBID根據時隙單元來將數據寫入緩衝記憶體540中或從緩衝記憶體540讀取數據。
圖8是示出根據實施例的時隙狀態表的圖。例如,圖8的時隙狀態表可以是圖7的時隙狀態表730。
參照圖8,時隙狀態表可以包括其中儲存PBID的第一區域810和儲存關於相應PBID的閒置狀態或使用狀態的資訊的第二區域820。在時隙狀態表中,第一區域810的PBID的數量可以被設置為與緩衝記憶體540的大小對應的數量。例如,當緩衝記憶體540具有4M位元組的大小並且時隙大小為4K位元組時,PBID的數量可以成為1000。當數據被寫入緩衝記憶體540的相應PBID中時,時隙狀態表的第二區域820可以被設置為使用狀態。當以讀取模式讀取相應的PBID的數據時,第二區域820可以被設置為閒置狀態。換言之,緩衝器分配單元710可以當生成映射表740時將在數據寫入操作中分配到映射表740的PBID更新為使用狀態,並且當對寫入相應的PBID中的數據執行讀取操作時,將分配到映射表740的PBID更新為閒置狀態。
圖9是示出根據實施例的映射表的圖。例如,圖9的映射表可以是圖7的映射表740。
參照圖9,元件符號910可以是表示VBID的虛擬位址的VBID表。VBID表910可以具有其中VBID的編號可以被寫入區域913中並且相應的VBID的虛擬位址被映射在第二區域915中的結構。元件符號920可以是表示PBID的實體位址的PBID表。PBID表920可以具有其中PBID的編號被寫入區域923中並且對應於相應的PBID的緩衝記憶體540的實體位址被映射在第二區域925中的結構。在VBID表910和PBID表920中,VBID和PBID位址可以是時隙大小的,並且VBID和PBID的時隙大小可以具有相同的大小。
元件符號930可以表示配置映射表的示例。在映射表中,VBID的編號可以被儲存在第一區域931中,並且相應的VBID的PBID可以被儲存在第二區域935中。儲存的PBID可以是閒置狀態的PBID。即,映射表930可以包括其中
儲存具有序列號的VBID的第一區域931和其中透過映射來儲存由圖7的緩衝器分配單元710選擇的閒置狀態的PBID的第二區域935。映射表740的第一區域931可以具有其中VBID具有序列號的環形緩衝器結構。VBID的時隙的數量N可以被設置為大於PBID的時隙的數量M。例如,VBID的時隙的數量N可以是PBID的時隙的數量M的整數倍的大小。
再次參照圖7,緩衝器介面可以包括緩衝器分配單元(BAU)710和緩衝器存取單元或虛擬位址轉換單元(TRAN)720。緩衝器分配單元710可以提供由N個時隙配置的VBID。緩衝器存取單元720可以透過將虛擬位址轉換成實體位址來存取緩衝記憶體540。緩衝器介面可以改善連續尋址的緩衝結構和存取單元時隙的緩衝結構的缺陷。緩衝器介面可以透過起始位址和大小來指定緩衝記憶體540的連續尋址,而不需要碎片整理。此外,緩衝器介面可以透過時隙單元管理緩衝記憶體540,而不需要N個描述符或鏈接串列,藉此避免導致性能劣化的開銷。
緩衝記憶體540可以透過4KB的時隙配置來支持諸如8K個的最大N個TBD。緩衝記憶體540的各個時隙可以被劃分為緩衝器時隙ID(BID),並且BID的編號可以與緩衝記憶體540的實體位址具有絕對的關係。例如,緩衝記憶體540可以被設置為基位址(=0x0)。例如,當時隙大小具有4K位元組的大小時,可以提到BID=3在0x6000處開始。
再次參照圖5,根據實施例的緩衝器介面530的緩衝器管理方法可以基本上是分散和採集方案,並且可以具有其中每個緩衝器時隙在所需時間被請求並且在占用非均勻時間之後被恢復的結構。即,從BID的角度來看,緩衝器時隙的請求和恢復可以是完全隨機的。例如,當在主機介面520中執行主機寫入時,即使在緩衝記憶體540的存取方法是順序寫入方案的情况下,寫入緩衝器中
的BID序列與其數量沒有關係,並且BID可以簡單地扮演用於找到實體位址的ID的角色。
在BID配置中,為了表示數據的連續性,可能有兩種方法。在一種方法中,透過使聯接列表中的元素透過鏈接串列具有BID,則可以表示連續性。在另一種方法中,當處理一個鏈接(link)的主體檢查下一個鏈接並且這被用作位址時,可以執行連續存取。如上所述檢查鏈接的方法可以引起如上所述的主機介面520、處理器510和記憶體介面525的開銷。根據實施例的緩衝器介面530可以使用用於將緩衝記憶體540的實體位址轉換為虛擬位址的方法。實體位址和虛擬位址可以分別透過實體BID(PBID)和虛擬BID(VBID)來計算。
再次參照圖7,緩衝器分配單元710可以執行緩衝器時隙管理功能。緩衝器分配單元710可以透過參照時隙狀態表730將閒置時隙中的可選PBID分配到映射表740。緩衝器分配單元710可以分配可一對一地與如圖9的元件符號930所示分配的閒置時隙的PBID相對應的VBID。分配PBID的方案可以是在儲存閒置時隙映射或閒置塊列表的時隙狀態表730中選擇閒置狀態的PBID的方法,並且使VBID對應於PBID的方案可以僅僅是例如增量計數器的計數方法。即,如圖9的元件符號930所示,VBID可以在映射表740中向上計數VBID時被分配,並且當VBID增加到最大VBID編號,即第N個VBID時可以回滾到0,即第零個VBID。
VBID可以被描述為操作上的序列ID。例如,VBID可以被認為是緩衝記憶體540的序列ID,即在寫入操作中的緩衝器序列ID。當每次寫入被排序時,實際的PBID可以被認為是在有限的緩衝記憶體540,即總緩衝池中隨機的,寫入緩衝記憶體540中的數據可能在其含義上具有改變,並且該改變可以是VBID。
圖10是示出根據實施例的記憶體系統的緩衝器介面中的映射表的示例的圖。在圖10中,元件符號1010示出分配的PBID和實體位址的示例。元
件符號1020示出VBID和虛擬位址的示例。元件符號1030示出配置映射表的示例。僅為了說明的目的,圖10示出其中圖5的緩衝記憶體540的緩衝器區域由8個時隙配置並且VBID的數量是PBID的數量的兩倍的示例。
下面將參照圖5、圖7和圖10描述主機寫入操作。首先,主機介面520可以從主機590獲取寫入命令,並且接收關於寫入命令對其執行緩衝器寫入操作的數據。當包括在寫入命令集中的數據大小為32K位元組時,緩衝器介面530可以分配32KB的緩衝器,即8個4KB的時隙。緩衝器介面530的緩衝器分配單元710可以透過參照時隙狀態表730來選擇閒置時隙。如果選擇的PBID與{7,0,1,4,2,6,5,3}相同,則位址可以以4K位元組為單位被改變。緩衝器介面530可以為相應的寫入命令設置或編號緩衝器序列,並且基於緩衝器序列執行緩衝器存取操作。實際操作可以被定義為針對從緩衝器序列號為BID=7開始的N個連續序列的操作。即,可以執行操作,使得BID=7是寫入命令的第一個序列,BID=0是第二個序列並且BID=1是第三個序列。如果可以為每個BID分配序列號,則緩衝器介面530可以指定連續的緩衝器時隙。這種序列號可以是VBID編號。因此,緩衝器分配單元710可以設置和管理由主機介面520發出的所有寫入命令的序列。緩衝器分配單元710可以生成其中緩衝記憶體540的位址根據以上序列被指定的映射表740。緩衝器存取單元720可以透過參照映射表740將數據寫入緩衝記憶體540中。
如果緩衝器介面530設置關於第一緩衝器的序列號的資訊,例如寫入命令或讀取命令的起始VBID和N個連續緩衝器序列,則可以認為緩衝記憶體540的描述被設置。
再次參照圖10,示出的是其中緩衝記憶體540的緩衝器區域由8個實體時隙和16個虛擬時隙配置的表的示例,即具有16個BID的實體分散到虛擬環映射表。元件符號1010示出實體時隙的位址,即實體尋址的示例。元件符號1020
示出虛擬時隙的位址,即虛擬尋址的示例。元件符號1030示出其中虛擬時隙和實體時隙被映射的表,即虛擬與實體映射表或V2P映射表的示例。
在圖10中,PBID可以是從0到7的8個緩衝器的ID,並且VBID可以是0到15之間的值。可以透過將PBID和緩衝器時隙大小,即分配到緩衝記憶體540的時隙大小相乘來獲得實體位址。可以透過將VBID和時隙大小相乘來獲得虛擬位址。PBID的時隙大小和VBID的時隙大小可以是相同的大小。當寫入命令或讀取命令被接收時,緩衝器介面530的緩衝器分配單元710可以基於起始VBID和數據大小透過計算VBID時隙的數量來設置時隙序列。進一步地,緩衝器分配單元710可以在時隙狀態表730中的閒置狀態的PBID中選擇與時隙數量相對應的數量的閒置PBID,並且將選擇的閒置PBID映射到預設的VBID時隙序列集。
在圖10中,第一緩衝器序列1041示出由8個時隙配置的緩衝器序列的示例。第二緩衝器序列1043示出由4個時隙配置的緩衝器序列的示例。第一緩衝器序列1041中的PBID序列顯示具有7,0,1,4,2,6,5,3的序列的示例。第二緩衝器序列1043中的PBID序列顯示具有3,0,2,5的序列的示例。此外,在圖10中,t顯示時間流。在時間t0處,當PBID=7被分配時,VBID=0可以被映射。在時間t1處,當PBID=0被分配時,VBID=1可以被映射。以該方式,可以在諸如N之下的可選ID值的閒置時隙中隨機地選擇PBID,並且VBID可以具有在不超過最大值2N或4N的範圍內增加1的配置並且一對一地對應於PBID。VBID具有如圖10的元件符號1045指示的2N個PBID的大小或深度,並且可以意味著對應於VBID的PBID實際上成為閒置時隙的時間允許2N-1的距離。當對應於2N-1或4N-1的距離的VBID被分配時,如果已經存在於該位置的先前PBID未被釋放,則可以限制緩衝器分配單元710免於緩衝器分配。因此,緩衝器分配單元710可以管理映射表740,即表示待分配的可選PBID與映射到其上的環形緩衝器類型的VBID之間的關係的V2P映射表,並且執行追踪使用的BID的操作。
圖11A和圖11B是示出緩衝器存取操作的示例的圖。圖11A是示出其中順序地執行圖5的緩衝記憶體540的尋址的示例的圖,例如,實體4KB緩衝器描述:透過鏈接串列分散&收集緩衝器。圖11B是示出根據實施例的緩衝器存取示例的圖,諸如,虛擬大緩衝器描述:具有虛擬指標的環形緩衝器。
圖11A示出在具有4K位元組基礎的緩衝器分配方案中配置進/出封包(in/out packet)(IOP)列表的方案。IOP發布商可以以4KB為單元請求緩衝器時隙,並且將緩衝器時隙綁定到每個IOP。為了分配32K位元組的緩衝器時隙,8個緩衝器時隙索引(index)可以被綁定到8個IOP。綁定到8個IOP的8個緩衝器時隙可以透過諸如寫入/讀取的操作來使用,並且可以在各個時間被釋放。如果在32K位元組的請求之後發出16K位元組的請求,則IOP發布商可以接收4個緩衝器時隙索引並且將其再次聯接到4個IOP。此時,由於先前8個IOP中使用的緩衝器時隙被再次釋放並分配,所以PBID=3,0,2,5可以被再使用。
當如圖11A所示直接使用PBID時,為了表示32K位元組的數據,與8個4KB緩衝器時隙相關聯的內容產生並且諸如PBID序列={7,0,1,4,2,6,5,3}的表示應該是可能的。當透過位址表示時,實體位址{E000,0,2000,8000,4000,C000,A000,6000}可以如圖11A的元件符號1110所示的來表示。
透過VBID執行如圖11A所示的緩衝器存取操作,可以按照圖11B所示的方法執行緩衝器存取操作。當執行緩衝記憶體540的存取操作時,緩衝器介面530的緩衝器分配單元710可以僅表示起始位址,即VBID的起始位址,以及時隙的數量,即VBID的數量(NID)。例如,如圖11B的元件符號1141所示的第一IOP(IOP # 0)={VBID=0,NID=8},如圖11B的元件符號1143所示的第二IOP(IOP # 1)={VBID=8,NID=4}。即,第一IOP(IOP # 0)應該獲得用於寫入或讀取的總共8個緩衝器時隙,並且可以與起始VBID=0一起使用8個VBID ID。如圖11B的元件符號1150所示,這可以成為虛擬位址{0,2000,4000,6000,8000,A000,
C000,E000}。此後,緩衝器分配單元710可以在時隙狀態表730中選擇8個閒置狀態PBID,並將選擇的PBID映射到映射表740,如圖11B的元件符號1160所示。如圖11B的元件符號1170所示,映射到VBID的PBID的實體位址可以被預先設定。
因此,當與如圖11A所示的緩衝器存取操作相比時,在如圖11B所示的緩衝器存取方法中,管理12個IOP和各個BID的開銷可以簡單地由2個IOP和2個VBID起始指標表示。
根據實施例的緩衝器存取方法可以包括緩衝器分配操作,其當命令被接收時透過分析數據的大小來確定緩衝記憶體的虛擬時隙的起始識別資訊和時隙數量並且將實體時隙映射到確定的虛擬時隙。並且,緩衝器存取方法可以包括存取緩衝記憶體的分配的實體時隙的位置的數據的緩衝器存取操作。
圖12是示出根據實施例的緩衝器分配操作的流程圖。圖13是示出根據實施例的緩衝器存取操作的流程圖。圖12和圖13可以是圖5和圖7的緩衝器介面530的操作。圖12可以是緩衝器介面530的緩衝器分配單元710的操作。圖13可以是緩衝器介面530的緩衝器存取單元720的操作。
參照圖12,在步驟1211中,當緩衝記憶體540的存取命令被接收時,緩衝器介面530可以檢查存取命令是否是緩衝記憶體540的寫入命令。如果存取命令是寫入命令,則在步驟1211中緩衝器介面530可以識別這一點,並且在步驟1213中可以檢查要寫入緩衝記憶體540中的數據的大小。在步驟1215中,緩衝器介面530可以設置映射表740的起始VBID,並且在步驟1217中根據數據大小來確定時隙的數量。在映射表740中未映射PBID的VBID中具有最早編號的VBID可以被確定為起始VBID。例如,在圖11B中的IOP # 0的情况下,由於在映射表740中當前不存在映射PBID的VBID,因此起始VBID可以是VBID 0,並且待寫入緩衝記憶體540中的數據的大小可以是具有8個緩衝器時隙的大小的時隙數量,
即8個。在該情况下,緩衝器介面530可以被設置為{起始VBID=VBID 0,NID=8)。在圖11B中的IOP # 1的情况下,由於在映射表740中當前映射PBID的VBID的數量為8個,即從VBID 0到VBID 7,因此起始VBID可以是VBID 8,並且待寫入緩衝記憶體540中的數據的大小可以是具有4個緩衝器時隙的大小的時隙數量,即4個。在該情况下,緩衝器介面530可以被設置為{起始VBID=VBID 8,NID=4)。
此後,緩衝器介面530可以在步驟1219中選擇時隙狀態表730中的閒置狀態的PBID,並且在步驟1221中將選擇的PBID映射到VBID。然後,在步驟1223中,緩衝器介面530可以在時隙狀態表730中將選擇的PBID的狀態轉換成使用狀態。
當在時隙狀態表730中選擇閒置狀態的PBID時,緩衝器介面530可以順序地選擇閒置狀態的閒置時隙編號,並且可以隨機地選擇閒置時隙編號。圖11B示出其中在IOP # 0的情况下VBID被設置為{起始VBID=0,NID=8}並且PBID以{7,0,1,4,2,6,5,3}的順序被選擇的示例,並且示出其中在IOP # 1的情况下VBID被設置為{起始VBID=8,NID=4}並且PBID以{3,0,2,5}的順序被選擇的示例。如果緩衝器介面530將選擇的閒置狀態的PBID映射到基於起始VBID和數據大小設置的VBID,則可以如圖11B的元件符號1160所示生成映射表740。
如果緩衝器介面530讀取緩衝記憶體540中寫入的數據,則緩衝記憶體540中從其讀取數據的PBID的狀態可以被釋放到閒置狀態。如果寫入緩衝記憶體540中的數據被讀取,則讀取區域,即PBID時隙可以利用另一數據再次被寫入。因此,如果從緩衝記憶體540讀取數據,則緩衝器介面530可以在步驟1231中識別讀取操作。在檢查從其讀取數據的緩衝記憶體540的PBID之後,緩衝器介面530可以在步驟1233中在時隙狀態表730中將相應的PBID轉換成閒置狀態。
參照圖13,緩衝器介面530可以基於命令和映射表740的資訊將數據寫入緩衝記憶體540中或讀取在緩衝記憶體540中寫入的數據。如果命令是用於在緩衝記憶體540中寫入數據的命令,則緩衝器介面530可以在步驟1311中識別這一點,並且在步驟1313中檢查映射表740中的緩衝器時隙序列的起始VBID和NID。緩衝器介面530可以檢查映射表740中映射到VBID的PBID,並且在步驟1317中,將數據寫入緩衝記憶體540中的相應的PBID的實體位址位置處。在將數據寫入緩衝記憶體540中之後,當相應的時隙不是最後時隙時,緩衝器介面530可以在步驟1321處檢查映射表740中的下一個位置的VBID,並透過進行到步驟1315來檢查所檢查的PBID。例如,在圖11B中的IOP # 0的情况下,在映射表740中,PBID=7,0,1,4,2,6,5,3可以從起始VBID(VBID=0)被映射到8個時隙(NID=8)。緩衝器介面530可以重複地執行步驟1313至步驟1321,順序地檢查映射到VBID 0至VBID 7的PBID(PBID=7,0,1,4,2,6,5,3),並將數據寫入在對應於檢查的PBID的緩衝記憶體540的實體位址處。此後,如果在例如VBID=7的最後VBID的例如PBID=3的PBID的實體位址處寫入數據,則緩衝器介面530可以在步驟1319中結束寫入操作。
在將數據寫入緩衝記憶體540中之後,緩衝器介面530可以連續執行讀取操作。例如,寫入緩衝記憶體540中的數據可以是被緩衝以將被儲存在記憶體裝置550中的數據。在該情况下,當在寫入操作結束之後執行讀取操作時,寫入緩衝記憶體540中的數據可以被傳送到記憶體裝置550。如果執行讀取操作,緩衝器介面530可以在步驟1331中識別這一點,並且在步驟1333中檢查在映射表740中讀取的緩衝器時隙序列的起始VBID。在檢查起始VBID之後,緩衝器介面530可以在步驟1335中檢查映射到起始VBID的PBID,並且在步驟1337中讀取在對應於相應PBID的緩衝記憶體540的實體位址處寫入的數據。此後,緩衝器介面530可以在步驟1341中檢查緩衝器時隙序列的下一個VBID,並且透過進行到步
驟1335來檢查映射到檢查的VBID的PBID。如果讀取與映射表740中的緩衝器時隙序列的最後一個PBID相對應的在緩衝記憶體540中寫入的數據,則緩衝器介面530可以在步驟1339中識別出最後時隙的數據被讀取,並且結束緩衝記憶體540的讀取操作。
圖14是示出根據實施例的將數據寫入記憶體系統的記憶體裝置中的操作的圖。
參照圖14,記憶體系統可以接收來自主機590的諸如用於將數據寫入記憶體裝置550中的寫入命令WR的命令、位址和數據。在步驟1411中,主機介面520可以將命令和關於數據大小的資訊傳輸到處理器510。在步驟1412中,處理器510可以將關於數據大小的資訊傳輸到緩衝器分配單元710。在步驟1413中,在接收到關於數據大小的資訊時,緩衝器分配單元710可以透過分析關於數據大小的資訊來設置緩衝器時隙序列資訊。緩衝器時隙序列資訊可以包括映射表740的起始VBID或映射表740的起始VBID和時隙的數量(NID)。緩衝器分配單元710在步驟1415中可以在時隙狀態表730中選擇時隙的預設數量,即,對應於NID的時隙的數量的閒置狀態的PBID,並且在步驟1417中可以透過將選擇的PBID映射到配置緩衝器時隙序列的VBID來生成映射表740。此後,緩衝器分配單元710可以在時隙狀態表730中將在映射表740中分配的PBID轉換為使用狀態。此後,在步驟1421中,緩衝器分配單元710可以傳輸包括在映射表中分配的起始VBID的緩衝器時隙序列資訊。緩衝器時隙序列資訊可以是包括起始VBID的資訊或包括起始VBID和NID的資訊。在步驟1423中,處理器510可以將緩衝器時隙序列資訊傳輸到主機介面520。
在步驟1425中,在接收到緩衝器時隙序列資訊時,主機介面520可以將包括起始VBID的緩衝器時隙序列資訊和數據傳輸到緩衝器存取單元720。接收緩衝器時隙序列資訊和數據的緩衝器存取單元720可以在步驟1427中基於
緩衝器時隙序列資訊來檢查映射表740中的PBID,並且在步驟1429中在緩衝記憶體540的PBID位址處寫入接收的數據。
在完成數據的傳輸,即寫入緩衝器存取單元720結束時,主機介面520可以在步驟1451中將這一點傳送到處理器510,並且處理器510可以在步驟1453中將包括起始VBID的緩衝器時隙序列資訊傳送到記憶體介面525。在步驟1455中,接收緩衝器時隙序列資訊VBID的記憶體介面525可以將讀取命令RD和包括起始VBID的緩衝器時隙序列資訊傳輸到緩衝器存取單元720。接收讀取命令RD和緩衝器時隙序列資訊VBID的緩衝器存取單元720可以在步驟1457中基於包括起始VBID的緩衝器時隙序列資訊來檢查映射表740中的PBID,在步驟1459中讀取在緩衝記憶體540的PBID位址處寫入的數據,並且在步驟1461中將讀出數據傳輸到記憶體介面525。記憶體介面525可以將來自緩衝儲存單元720的數據寫入記憶體裝置550中。
在步驟1460中,在數據在記憶體裝置550中的儲存完成時,記憶體介面525可以通知處理器510數據的儲存完成或結束。在步驟1465中,在檢測到記憶體裝置550中的數據儲存完成時,處理器510可以將包括閒置VBID的緩衝器時隙序列資訊通知給緩衝器分配單元710。緩衝器分配單元710可以在步驟1467中基於緩衝器時隙序列資訊VBID來檢查映射表740中的PBID並且在時隙狀態表730中將檢查的PBID轉換成使用狀態,並且在步驟1469中將這一點通知給處理器510。
圖15是示出根據實施例的用於從記憶體系統中的記憶體裝置讀取數據的操作的圖。
參照圖15,記憶體系統可以接收來自主機590的諸如用於讀取在記憶體裝置550中寫入的數據的讀取命令RD的命令、位址和關於數據大小的資訊。在步驟1511中,主機介面520可以將命令和關於數據大小的資訊傳輸到處理器
510。在步驟1512中,處理器510可以將關於數據大小的資訊傳輸到緩衝器分配單元710。在步驟1513中,在接收到關於數據大小的資訊時,緩衝器分配單元710可以透過分析關於數據大小的資訊來設置緩衝器時隙序列資訊。緩衝器時隙序列資訊可以包括映射表740的起始VBID或映射表740的起始VBID和時隙的數量(NID)。緩衝器分配單元710可以在步驟1515中在時隙狀態表730中選擇諸如對應於NID的時隙的數量的時隙的預設數量的閒置狀態的PBID,並且在步驟1517中透過將選擇的PBID映射到配置緩衝器時隙序列的VBID來生成映射表740。此後,在步驟1519中,緩衝器分配單元710可以在時隙狀態表730中將在映射表740中分配的PBID轉換為使用狀態。此後,在步驟1521中,緩衝器分配單元710可以傳輸包括在映射表中分配的起始VBID的緩衝器時隙序列資訊。緩衝器時隙序列資訊可以是包括起始VBID的資訊或包括起始VBID和NID的資訊。在步驟1523中,處理器510可以將讀取命令、用於讀取儲存在記憶體裝置550中的數據的位址資訊以及用於緩衝器介面530存取緩衝記憶體540的時隙序列資訊傳輸到記憶體介面525。記憶體介面525可以從記憶體裝置550讀取數據。
在步驟1525中,記憶體介面525可以將包括起始VBID的緩衝器時隙序列資訊和從記憶體裝置550讀取的數據傳輸到緩衝器存取單元720。接收包括起始VBID的緩衝器時隙序列資訊和數據的緩衝器存取單元720可以在步驟1527中基於緩衝器時隙序列資訊來檢查映射表740中的PBID,並且在步驟1529中將接收的數據寫入緩衝記憶體540的PBID位址處。
在從記憶體裝置550讀取的數據傳輸到緩衝器存取單元720完成或結束時,記憶體介面525可以在步驟1551中將這一點傳送到處理器510,並且處理器510可以在步驟1553中將包括起始VBID的緩衝器時隙序列資訊傳送到主機介面520。在步驟1555中,接收包括起始VBID的緩衝器時隙序列資訊的主機介面520可以將讀取命令RD和包括起始VBID的緩衝器時隙序列資訊傳輸到緩衝
器存取單元720。接收讀取命令RD和包括起始VBID的緩衝器時隙序列資訊的緩衝器存取單元720可以在步驟1557中基於包括起始VBID的緩衝器時隙序列資訊來檢查映射表740中的PBID,在步驟1559中讀取在緩衝記憶體540的PBID位址處寫入的數據,並且在步驟1561中將讀出數據傳輸到主機介面520。主機介面520可以將來自緩衝器存取單元720的數據傳輸到主機590。
在步驟1563中,在讀出數據傳輸到主機590完成時,主機介面520可以通知處理器510數據的傳輸完成或結束。在步驟1565中,在檢測到從記憶體裝置550讀取的數據的傳輸完成時,處理器510可以將包括閒置VBID的緩衝器時隙序列資訊通知給緩衝器分配單元710。緩衝器分配單元710可以在步驟1567中基於緩衝器時隙序列資訊來檢查映射表740中的PBID並且在時隙狀態表730中將檢查的PBID轉換成使用狀態,並且在步驟1569中將這一點通知給處理器510。
在下文中,將參照圖16至圖21,詳細描述應用根據實施例的包括以上參照圖1至圖15描述的記憶體裝置150和控制器130的記憶體系統110的數據處理系統和電子設備。
圖16是示出包括根據實施例的記憶體系統的數據處理系統的圖。具體地,圖16示出採用根據實施例的記憶體系統的記憶卡系統6100。
參照圖16,記憶卡系統6100可以包括記憶體控制器6120、記憶體裝置6130和連接器6110。
記憶體控制器6120可以與記憶體裝置6130可操作地連接並且可以存取記憶體裝置6130。在一些實施例中,記憶體裝置6130可以利用非依電性記憶體(NVM)來實施。例如,記憶體控制器6120可以控制對記憶體裝置6130的讀取操作、寫入操作、擦除操作和後臺操作。記憶體控制器6120可以提供記憶體裝置6130和主機(未示出)之間的介面。記憶體控制器6120可以驅動用於控制記憶體裝置6130的韌體。例如,記憶體控制器6120可以對應於以上參照圖1描述的
記憶體系統110中的控制器130,並且記憶體裝置6130可以對應於以上參照圖1描述的記憶體系統110中的記憶體裝置150。
因此,記憶體控制器6120可以包括諸如圖1所示的隨機存取記憶體(RAM)、處理單元、主機介面、記憶體介面和錯誤校正單元的部件。
記憶體控制器6120可以透過連接器6110與例如以上參照圖1所描述的主機102的外部裝置通信。例如,如以上參照圖1描述的,記憶體控制器6120可以被配置為透過諸如以下的各種通信協定中的至少一種與外部裝置通信:通用串列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、高速PCI(PCIe)、高級技術附件(ATA)、串列ATA、並行ATA、小型計算機系統介面(SCSI)、增强型小型磁盤介面(ESDI)、集成驅動電路(IDE)、火線、通用快閃儲存(UFS)、無線保真(WI-FI)和藍牙。記憶體系統和數據處理系統可以應用於例如行動電子設備的有線和/或無線電子設備。
記憶體裝置6130可以利用非依電性記憶體(NVM)來實施。例如,記憶體裝置6130可以利用諸如以下的各種非依電性記憶體裝置中的一種來實施:例如,可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、NAND快閃記憶體、NOR快閃記憶體、相變RAM(PRAM)、電阻式RAM(ReRAM)、鐵電RAM(FRAM)和自旋轉移力矩磁性RAM(STT-MRAM)。
記憶體控制器6120和記憶體裝置6130可以被集成到單個半導體裝置中。例如,記憶體控制器6120和記憶體裝置6130可以透過集成到單個半導體裝置中來構造固態硬碟(SSD)。記憶體控制器6120和記憶體裝置6130可以構造諸如以下的記憶卡:例如個人電腦記憶卡國際協會(PCMCIA)的PC卡,標準快閃(CF)卡,例如SM和SMC的智慧型媒體卡,記憶棒,例如MMC、RS-MMC、微型MMC和eMMC的多媒體卡,例如SD、迷你SD、微型SD和SDHC的SD卡和通用快閃儲存(UFS)。
圖17是示意性地示出包括根據本發明的實施例的記憶體系統的數據處理系統6200的示例的圖。
參照圖17,數據處理系統6200可以包括可以利用至少一個非依電性記憶體(NVM)來實施的記憶體裝置6230和用於控制記憶體裝置6230的記憶體控制器6220。如以上參照圖1描述的,數據處理系統6200可以是諸如CF、SD和微型SD的記憶卡的儲存介質。記憶體裝置6230可以對應於以上參照圖1描述的記憶體系統110中的記憶體裝置150。記憶體控制器6220可以對應於以上參照圖1描述的記憶體系統110中的控制器130。
記憶體控制器6220可以響應於從主機6210接收的請求來控制對記憶體裝置6230的包括讀取操作、寫入操作和擦除操作的操作。記憶體控制器6220可以包括全部經由內部匯流排聯接的中央處理單元(CPU)6221、作為緩衝記憶體的隨機存取記憶體(RAM)6222、錯誤校正碼(ECC)電路6223、主機介面6224和作為記憶體介面的NVM介面6225中的至少一個。
CPU 6221可以控制對記憶體裝置6230的諸如讀取、寫入、文件系統管理、壞頁面管理等的操作。RAM 6222可以根據CPU 6221的控制來操作,並且可以用作工作記憶體、緩衝記憶體、快取記憶體等。當RAM 6222用作工作記憶體時,由CPU 6221處理的數據被臨時儲存在RAM 6222中。當RAM 6222用作緩衝記憶體時,RAM 6222用於緩衝將從主機6210傳輸到記憶體裝置6230或將從記憶體裝置6230傳輸到主機6210的數據。當RAM 6222用作快取記憶體時,RAM 6222可以用於使具有低速的記憶體裝置6230能夠以高速操作。
ECC電路6223可以對應於以上參照圖1描述的控制器130的ECC單元138。如以上參照圖1描述的,ECC電路6223可以生成用於校正從記憶體裝置6230接收的數據中的失效位元或錯誤位元的錯誤校正碼(ECC)。ECC電路6223可以對將提供給記憶體裝置6230的數據執行錯誤校正編碼,並且可以生成添加有
同位位元的數據。同位位元可以被儲存在記憶體裝置6230中。ECC電路6223可以對從記憶體裝置6230輸出的數據執行錯誤校正解碼。此時,ECC電路6223可以透過使用同位位元來校正錯誤。例如,如以上參照圖1描述的,ECC電路6223可以透過使用諸如以下的各種編碼調製中的其中一種來校正錯誤:低密度奇偶校驗(LDPC)碼、博斯-查德胡裏-霍昆格姆(BCH)碼、渦輪碼、裏德-所羅門(RS)碼、卷積碼、遞歸系統碼(RSC)、格形編碼調製(TCM)和分組編碼調製(BCM)。
記憶體控制器6220可以透過主機介面6224將數據傳輸到主機6210並且從主機6210接收數據,並且透過NVM介面6225將數據傳輸到記憶體裝置6230並且從記憶體裝置6230接收數據。主機介面6224可以透過諸如以下的各種介面協定中的至少一種與主機6210連接:並行高級技術附件(PATA)匯流排、串列高級技術附件(SATA)匯流排、小型計算機系統介面(SCSI)、通用串列匯流排(USB)、高速外圍組件互連(PCI-e)或NAND介面。進一步地,當諸如無線保真(WI-FI)或長期演進(LTE)的無線通信功能或行動通信協定被實現時,記憶體控制器6220可以透過與諸如主機6210的外部裝置或除主機6210之外的另一外部裝置連接來傳輸和接收數據。具體地,因為記憶體控制器6220被配置為透過各種通信協定中的至少一種與外部裝置通信,所以根據實施例的記憶體系統和數據處理系統可以應用於例如行動電子設備的有線和/或無線電子設備。
圖18是示出包括根據本發明的實施例的記憶體系統的數據處理系統的示例的圖。例如,在圖18中,示出採用記憶體系統的固態硬碟(SSD)6300。
參照圖18,SSD 6300可以包括記憶體裝置6340和控制器6320,該記憶體裝置6340可以包括多個非依電性記憶體NVM。控制器6320可以對應於以上參照圖1描述的記憶體系統110中的控制器130。記憶體裝置6340可以對應於以上參照圖1描述的記憶體系統110中的記憶體裝置150。
控制器6320可以透過多個通道CH1、CH2、CH3......CHi與記憶體裝置6340連接。控制器6320可以包括經由內部匯流排聯接的處理器6321、緩衝記憶體6325、錯誤校正碼(ECC)電路6322、主機介面6324和作為記憶體介面的非依電性記憶體(NVM)介面6326。
緩衝記憶體6325可臨時儲存從主機6310接收的數據或從包括在記憶體裝置6340中的多個非依電性記憶體NVM接收的數據,或臨時儲存多個非依電性記憶體NVM的元數據。例如,元數據可以包括含有映射表的映射數據。緩衝記憶體6325可以利用諸如但不限於動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、雙倍數據速率(DDR)SDRAM、低功率雙倍數據速率(LPDDR)SDRAM和圖形隨機存取記憶體(GRAM)的依電性記憶體或諸如但不限於鐵電隨機存取記憶體(FRAM)、電阻式隨機存取記憶體(ReRAM)、自旋轉移力矩磁性隨機存取記憶體(STT-MRAM)和相變隨機存取記憶體(PRAM)的非依電性記憶體來實施。雖然在圖18中示出緩衝記憶體6325被設置在控制器6320內部,但是應當注意的是,緩衝記憶體6325可以被設置在控制器6320外部。
ECC電路6322可以在編程操作期間計算將在記憶體裝置6340中編程的數據的錯誤校正碼值,在讀取操作中基於錯誤校正碼值對從記憶體裝置6340讀取的數據執行錯誤校正操作,並且在對失效數據的恢復操作中對從記憶體裝置6340恢復的數據執行錯誤校正操作。
主機介面6324可以提供關於諸如主機6310的外部裝置的介面功能。非依電性記憶體介面6326可以提供關於透過多個通道CH1、CH2、CH3......CHi連接的記憶體裝置6340的介面功能。
由於使用對其每一個應用以上參照圖1描述的記憶體系統110的多個SSD 6300,因此可以實施諸如獨立磁盤冗餘陣列(RAID)系統的數據處理系統。在RAID系統中可以包括多個SSD 6300和用於控制多個SSD 6300的RAID控
制器。在透過從主機6310接收寫入命令來執行編程操作的情况下,RAID控制器可以響應於從主機6310接收的寫入命令的RAID級別資訊在例如多個SSD 6300的多個RAID級別中選擇例如至少一個SSD 6300的至少一個記憶體系統並且可以將對應於寫入命令的數據輸出到選擇的SSD 6300。當透過從主機6310接收讀取命令來執行讀取操作時,RAID控制器可以響應於從主機6310接收的寫入命令的RAID級別資訊在例如多個SSD 6300的多個RAID級別中選擇例如至少一個SSD 6300的至少一個記憶體系統並且可以將從選擇的SSD 6300輸出的數據提供給主機6310。
圖19是示出包括根據本發明的實施例的記憶體系統的數據處理系統的另一示例的圖。例如,在圖19中,示出嵌入式多媒體卡(eMMC)6400。
參照圖19,eMMC 6400可以包括利用至少一個NAND快閃記憶體實施的記憶體裝置6440和控制器6430。控制器6430可以對應於以上參照圖1描述的記憶體系統110中的控制器130。記憶體裝置6440可以對應於以上參照圖1描述的記憶體系統110中的記憶體裝置150。
控制器6430可以透過多個通道與記憶體裝置6440連接。控制器6430可以包括內核6432、主機介面6431和諸如NAND介面6433的記憶體介面。
內核6432可以控制eMMC 6400的操作。主機介面6431可以在控制器6430和主機6410之間提供介面功能。NAND介面6433可以在記憶體裝置6440和控制器6430之間提供介面功能。例如,主機介面6431可以是諸如以上參照圖1描述的MMC介面的並行介面,或諸如超高速1級(UHS-I)/UHS 2級(UHS-Ⅱ)和通用快閃儲存(UFS)介面的串列介面。
圖20是示出包括根據本發明的實施例的記憶體系統的數據處理系統的另一示例的圖。例如,圖20示出應用根據實施例的記憶體系統的通用快閃儲存(UFS)6500。
參照圖20,UFS系統6500可以包括UFS主機6510、多個UFS裝置6520和6530、嵌入式UFS裝置6540和可移除UFS卡6550。UFS主機6510可以是例如行動電子設備的有線和/或無線電子設備的應用處理器。
UFS主機6510、UFS裝置6520和6530、嵌入式UFS裝置6540和可移除UFS卡6550可以例如透過UFS協定分別與諸如行動電子設備的有線和/或無線電子設備的外部裝置通信。UFS裝置6520和6530、嵌入式UFS裝置6540和可移除UFS卡6550可以利用以上參照圖1描述的記憶體系統110來實施,例如,被實施為以上參照圖16描述的記憶卡系統6100。嵌入式UFS裝置6540和可移除UFS卡6550還可以透過除UFS協定以外的另一協定通信。例如,嵌入式UFS裝置6540和可移除UFS卡6550可以透過諸如但不限於USB快閃驅動器(UFD)、多媒體卡(MMC)、安全數位(SD)、迷你SD和微型SD的各種卡協定來進行通信。
圖21是示出包括根據本發明的實施例的記憶體系統的數據處理系統的示例的圖。例如,在圖21中,示出採用記憶體系統的使用者系統6600。
參照圖21,使用者系統6600可以包括使用者介面6610、記憶體模組6620、應用處理器6630、網路模組6640和儲存模組6650。
應用處理器6630可以驅動包括在使用者系統6600中的部件和作業系統(OS)。例如,應用處理器6630可以包括用於控制包括在使用者系統6600中的部件的控制器、介面、圖形引擎等。應用處理器6630可以透過片上系統(SoC)來設置。
記憶體模組6620可以用作使用者系統6600的主記憶體、工作記憶體、緩衝記憶體或快取記憶體。記憶體模組6620可以包括諸如動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、雙倍數據速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、低功率雙倍數據速率(LPDDR)SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的依電性隨機存取記憶體,或諸如相變隨
機存取記憶體(PRAM)、電阻式隨機存取記憶體(ReRAM)、磁性隨機存取記憶體(MRAM)和鐵電隨機存取記憶體(FRAM)的非依電性隨機存取記憶體。例如,應用處理器6630和記憶體模組6620可以透過基於堆疊封裝(POP)的封裝來安裝。
網路模組6640可以與外部裝置通信。例如,網路模組6640不僅可以支持有線通信,還可以支持諸如以下的各種無線通信:碼分多址(CDMA)、全球行動通信系統(GSM)、寬帶CDMA(WCDMA)、CDMA-2000、時分多址(TDMA)、長期演進(LTE)、全球微波接入互操作性(WiMAX)、無線局域網(WLAN)、超寬帶(UWB)、藍牙、無線顯示(WI-DI)等,並且可以藉此與例如行動電子設備的有線和/或無線電子設備通信。因此,根據實施例的記憶體系統和數據處理系統可以應用於有線和/或無線電子設備。網路模組6640可以被包括在應用處理器6630中。
儲存模組6650可以儲存諸如從應用處理器6630接收的數據的數據,並且將儲存在其中的數據傳輸到應用處理器6630。儲存模組6650可以由諸如相變RAM(PRAM)、磁性RAM(MRAM)、電阻式RAM(ReRAM)、NAND快閃記憶體、NOR快閃記憶體和3維NAND快閃記憶體的非依電性半導體記憶體裝置實現。儲存模組6650可以被設置為諸如使用者系統6600的記憶卡的可移除儲存介質和外部驅動器。例如,儲存模組6650可以對應於以上參照圖1描述的記憶體系統110,並且可以利用以上參照圖18至圖20描述的SSD、eMMC和UFS來實施。
使用者介面6610可以包括用於將數據或命令輸入到應用處理器6630或用於將數據輸出到外部裝置的介面。例如,使用者介面6610可以包括諸如鍵盤、小鍵盤、按鈕、觸控面板、觸控螢幕、觸控板、觸控球、照相機、麥克風、陀螺儀傳感器、振動傳感器和壓電元件的使用者輸入介面以及諸如液晶顯示器(LCD)、有機發光二極管(OLED)顯示裝置、有源矩陣OLED(AMOLED)顯示裝置、發光二極管(LED)、揚聲器和馬達的使用者輸出介面。
當以上參照圖1描述的記憶體系統110被應用於根據實施例的使用者系統6600的行動電子設備時,如上所述,應用處理器6630可以控制行動電子設備的操作,並且作為通信模組的網路模組6640可以控制與外部裝置的有線和/或無線通信。作為行動電子設備的顯示/觸控模組的使用者介面6610顯示由應用處理器6630處理的數據或支持從觸控面板輸入數據。
如上所述,根據實施例的記憶體系統及其操作方法可以解决透過執行連續尋址來存取數據的緩衝器結構和透過預定單元存取時隙數據的緩衝器結構的問題,並且透過使用各個緩衝器結構的優點來存取數據。在根據實施例的記憶體系統及其操作方法中,當將數據寫入緩衝記憶體中或讀取在緩衝記憶體中寫入的數據時,可以透過起始位址和數據大小來指定連續尋址,同時避免整理碎片的需要,並且能夠透過時隙單元進行管理,同時避免對設置描述符或鏈接串列的需要,藉此避免可能導致性能劣化的開銷。
雖然為了說明的目的已經描述各個實施例,但是對於本發明所屬技術領域中具有通常知識者顯而易見的是,在不脫離如所附請求項所限定的本發明的精神和範圍的情况下,可以進行各種改變和變型。
540:緩衝記憶體
710:緩衝器分配單元(BAU)
720:緩衝器存取單元
730:時隙狀態表
740:映射表
Claims (21)
- 一種記憶體控制裝置,其包括:一緩衝記憶體,在所述緩衝記憶體中透過時隙單元存取數據;以及一緩衝器介面,其適於控制對所述緩衝記憶體的存取,其中所述緩衝器介面包括:一映射表,其適於儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;一緩衝器分配單元,其適於基於將寫入所述緩衝記憶體中的數據的大小來確定所述映射表的起始VBID和時隙的數量(NID),並且將閒置狀態的PBID分配到所述映射表中的緩衝器時隙序列,所述緩衝器時隙序列包括基於所述起始VBID和所述NID確定的時隙;以及一緩衝器存取單元,其適於基於所述映射表存取在所述緩衝記憶體的所述PBID的位置處的數據。
- 如請求項1所述的記憶體控制裝置,其中所述映射表包括:一第一區域,其用於儲存順序的VBID;以及一第二區域,其用於儲存彼此映射的由所述緩衝器分配單元分配的所述PBID和包含在所述緩衝器時隙序列中的所述VBID。
- 如請求項2所述的記憶體控制裝置,其中儲存在所述第二區域中的虛擬時隙的數量被分配成大於儲存在所述第二區域中的實體時隙的數量,並且所述第一區域具有環形緩衝器結構。
- 如請求項3所述的記憶體控制裝置,其中所述緩衝器存取單元在寫入模式下將數據儲存在映射到所述緩衝器時隙序列的所述緩衝記憶體的所述PBID的位置處。
- 如請求項4所述的記憶體控制裝置,其中所述緩衝器介面進一步包括:一時隙狀態表,其適於儲存關於所述PBID的狀態的資訊,以及其中,在所述寫入模式下,所述緩衝器分配單元在所述時隙狀態表中選擇所述閒置狀態的PBID,並且將所選擇的PBID轉換為使用狀態。
- 如請求項3所述的記憶體控制裝置,其中所述緩衝器存取單元在讀取模式下讀取在映射到所述緩衝器時隙序列的所述緩衝記憶體的所述PBID的位置處寫入的數據。
- 如請求項6所述的記憶體控制裝置,其中所述緩衝器分配單元在所述時隙狀態表中將從所述緩衝記憶體讀取的所述PBID轉換為所述閒置狀態。
- 一種記憶體系統,其包括:一主機;一記憶體裝置;以及一控制器,其聯接到所述主機和所述記憶體裝置,其中所述控制器包括:一主機介面,其適於將存取命令和數據與所述主機介面連接;一記憶體介面,其適於將存取命令和數據與所述記憶體裝置介面連接;一緩衝記憶體,在所述緩衝記憶體中透過時隙單元存取數據;以及一緩衝器介面,其適於生成映射表並且基於所述映射表將數據緩衝在所述緩衝記憶體中,其中所述映射表儲存基於來自所述主機介面的所述存取命令和數據大小透過時隙單元存取的所述緩衝記憶體的多個虛擬時隙與多個實體時隙之間的映射。
- 如請求項8所述的記憶體系統,其中所述緩衝器介面包括: 所述映射表,其適於儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;一緩衝器分配單元,其適於基於將寫入所述緩衝記憶體中的數據的大小來確定所述映射表的起始VBID和時隙的數量(NID),並且將閒置狀態的PBID分配到所述映射表中的緩衝器時隙序列,所述緩衝器時隙序列包括基於所述起始VBID和所述NID確定的時隙;以及一緩衝器存取單元,其適於基於所述映射表存取在所述緩衝記憶體的所述PBID的位置處的數據。
- 如請求項9所述的記憶體系統,其中所述映射表包括:一第一區域,其用於儲存順序的VBID;以及一第二區域,其用於儲存彼此映射的由所述緩衝器分配單元分配的所述PBID和包含在所述緩衝器時隙序列中的所述VBID。
- 如請求項10所述的記憶體系統,其中儲存在所述第二區域中的VBID的數量被分配成大於儲存在所述第二區域中的PBID的數量,並且所述第一區域具有環形緩衝器結構。
- 如請求項11所述的記憶體系統,其中所述緩衝器存取單元在寫入模式下將來自所述主機介面的數據儲存在映射到所述緩衝器時隙序列的所述緩衝記憶體的所述PBID的位置處,以及其中,在從所述主機介面傳輸所述數據完成時,所述緩衝器存取單元順序地讀取在所述緩衝記憶體的所述PBID的位置處寫入的數據,並且將讀出的數據輸出到所述記憶體介面。
- 如請求項12所述的記憶體系統, 其中所述緩衝器存取單元在讀取模式下將來自所述記憶體介面的數據寫入基於所述映射表映射到所述緩衝器時隙序列的所述緩衝記憶體的所述PBID的位置處,並且其中,在所述記憶體介面中完成所述記憶體裝置的讀取時,所述緩衝器存取單元讀取在基於所述映射表映射到所述緩衝器時隙序列的所述緩衝記憶體的所述PBID的位置處寫入的數據,並且將讀出的數據輸出到所述主機介面。
- 如請求項13所述的記憶體系統,其中所述緩衝器介面進一步包括:一時隙狀態表,其適於儲存關於所述PBID的狀態的資訊,並且其中,所述緩衝器分配單元在所述時隙狀態表中選擇閒置狀態的PBID,將所選擇的PBID映射到所述映射表,並且在所述寫入模式下將所選擇的PBID轉換為使用狀態,並且在所述讀取模式下在所述時隙狀態表中將從所述緩衝記憶體讀取的PBID轉換為所述閒置狀態。
- 一種存取緩衝記憶體的方法,在所述緩衝記憶體中透過時隙單元存取數據,所述方法包括:基於將寫入所述緩衝記憶體中的數據的大小確定映射表的起始虛擬時隙識別資訊(VBID)和時隙的數量(NID),其中所述映射表儲存多個虛擬時隙識別資訊(VBID)和多個實體時隙識別資訊(PBID)之間的映射;將閒置狀態的PBID分配到所述映射表中的緩衝器時隙序列,所述緩衝器時隙序列包括基於所述起始VBID和所述NID確定的時隙;以及基於所述映射表存取在所述緩衝記憶體的所述PBID的位置處的數據。
- 如請求項15所述的方法,其進一步包括:在生成所述映射表之後,將在所述映射表中映射的所述PBID轉換為使用狀態。
- 如請求項16所述的方法,其進一步包括:在讀取請求時,讀取並輸出在所述映射表中映射的所述緩衝記憶體的所述PBID的位置處寫入的數據。
- 如請求項17所述的方法,其進一步包括:在輸出所述數據之後,將在所述映射表中映射的所述PBID轉換為所述閒置狀態。
- 一種記憶體系統的操作方法,所述記憶體系統包括緩衝記憶體,在所述緩衝記憶體中透過時隙單元存取數據,所述方法包括:從主機介面接收存取命令和關於數據大小的資訊;生成映射表並基於所述映射表將數據緩衝在所述緩衝記憶體中的一緩衝器介面程序,其中所述映射表儲存基於所述存取命令和所述數據大小透過所述時隙單元存取的所述緩衝記憶體的多個虛擬時隙與多個實體時隙之間的映射;以及將緩衝在所述緩衝記憶體中的所述數據傳輸到一記憶體裝置或一主機中的其中一個。
- 如請求項19所述的方法,其中所述存取命令是寫入命令,並且其中所述緩衝器介面程序包括:基於將寫入所述緩衝記憶體中的數據的大小確定所述映射表的起始虛擬時隙識別資訊(VBID)和時隙的數量(NID);將閒置狀態的PBID分配到所述映射表中的緩衝器時隙序列,所述緩衝器時隙序列包括基於所述起始VBID和所述NID確定的時隙;基於所述映射表將來自所述主機的所述數據寫入所述緩衝記憶體的所述PBID的位置處;以及 在讀取請求時,基於所述映射表讀取在所述緩衝記憶體的所述PBID的位置處寫入的數據並且將讀出的數據傳輸到所述記憶體裝置。
- 如請求項20所述的方法,其中所述存取命令是讀取命令,並且其中所述緩衝器介面程序包括:基於傳輸到所述主機的讀取數據的大小確定所述映射表的起始虛擬時隙識別資訊(VBID)和時隙的數量(NID);將閒置狀態的PBID分配到包括基於所述映射表的所述起始VBID和所述NID確定的時隙的緩衝器時隙序列;基於所述映射表將從所述記憶體裝置讀取的數據寫入所述緩衝記憶體的所述PBID的位置處;以及在讀取請求時,基於所述映射表讀取在所述緩衝記憶體的所述PBID的位置處寫入的數據並且將讀出的數據傳輸到所述主機。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160134229A KR20180041898A (ko) | 2016-10-17 | 2016-10-17 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR10-2016-0134229 | 2016-10-17 | ||
??10-2016-0134229 | 2016-10-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201816618A TW201816618A (zh) | 2018-05-01 |
TWI723217B true TWI723217B (zh) | 2021-04-01 |
Family
ID=61904493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106130625A TWI723217B (zh) | 2016-10-17 | 2017-09-07 | 記憶體系統及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10657049B2 (zh) |
KR (1) | KR20180041898A (zh) |
CN (1) | CN107957958B (zh) |
TW (1) | TWI723217B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI849633B (zh) * | 2021-12-21 | 2024-07-21 | 大陸商長江存儲科技有限責任公司 | 用於碎片整理的記憶體裝置及其系統和方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
WO2019059069A1 (ja) * | 2017-09-21 | 2019-03-28 | 日本電信電話株式会社 | 秘密読み書き装置、秘密読み書き方法、およびプログラム |
JP6967959B2 (ja) * | 2017-12-08 | 2021-11-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102456175B1 (ko) * | 2018-04-30 | 2022-10-19 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10936046B2 (en) * | 2018-06-11 | 2021-03-02 | Silicon Motion, Inc. | Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device |
KR20200010933A (ko) * | 2018-07-23 | 2020-01-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN109144894B (zh) * | 2018-08-01 | 2023-04-07 | 浙江大学 | 基于数据冗余的内存访问模式保护方法 |
KR102612911B1 (ko) * | 2018-08-31 | 2023-12-13 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR102653373B1 (ko) * | 2018-09-13 | 2024-04-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR102679985B1 (ko) * | 2018-10-18 | 2024-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102555511B1 (ko) * | 2018-11-01 | 2023-07-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102569177B1 (ko) | 2018-11-29 | 2023-08-23 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20200118994A (ko) * | 2019-04-09 | 2020-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
CN111813326B (zh) * | 2019-04-12 | 2024-04-19 | 建兴储存科技(广州)有限公司 | 具多数据流写入的固态存储装置及其相关写入方法 |
KR20210016938A (ko) * | 2019-08-06 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
KR102088944B1 (ko) * | 2019-10-01 | 2020-05-26 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
KR102088945B1 (ko) * | 2019-10-11 | 2020-04-24 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
CN111858116B (zh) | 2020-06-19 | 2024-02-13 | 浪潮电子信息产业股份有限公司 | 一种信息记录方法、装置、设备及可读存储介质 |
US11646091B2 (en) * | 2021-09-22 | 2023-05-09 | SK Hynix Inc. | System for outputting test data from multiple cores and method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005109665A1 (fr) * | 2004-05-10 | 2005-11-17 | Huawei Technologies Co., Ltd. | Procede de realisation d'une inversion a plaque simple dans un systeme de communication |
US20110213921A1 (en) * | 2003-12-02 | 2011-09-01 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US8924684B1 (en) * | 2012-06-13 | 2014-12-30 | Amazon Technologies, Inc. | Virtual memory management to reduce address cache flushing during I/O operations |
US20150286590A1 (en) * | 2014-04-04 | 2015-10-08 | Tidal Systems | Scalable, parameterizable, and script-generatable buffer manager architecture |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08180001A (ja) * | 1994-04-12 | 1996-07-12 | Mitsubishi Electric Corp | 通信方式及び通信方法及びネットワークインタフェース |
US5774715A (en) * | 1996-03-27 | 1998-06-30 | Sun Microsystems, Inc. | File system level compression using holes |
US5987582A (en) * | 1996-09-30 | 1999-11-16 | Cirrus Logic, Inc. | Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device |
US6065104A (en) * | 1997-07-23 | 2000-05-16 | S3 Incorporated | Method of embedding page address translation entries within a sequentially accessed digital audio data stream |
US6609176B1 (en) * | 1999-12-27 | 2003-08-19 | Kabushiki Kaisha Toshiba | Disk control system and data rearrangement method |
US7493465B2 (en) * | 2004-05-17 | 2009-02-17 | Oracle International Corporation | Method and system for extended memory with user mode input/output operations |
US7512135B2 (en) * | 2004-12-10 | 2009-03-31 | International Business Machines Corporation | Method for transferring data among a logical layer, physical layer, and storage device |
US20080155224A1 (en) * | 2006-12-21 | 2008-06-26 | Unisys Corporation | System and method for performing input/output operations on a data processing platform that supports multiple memory page sizes |
KR100925441B1 (ko) * | 2008-01-07 | 2009-11-06 | 엘지전자 주식회사 | 분산형 가상자원블록 스케쥴링 방법 |
JP2009230596A (ja) * | 2008-03-25 | 2009-10-08 | Hitachi Ltd | サーバ装置のユーザデータ保護方法、サーバ装置及びコンピュータプログラム |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8176233B1 (en) * | 2008-07-17 | 2012-05-08 | Virident Systems Inc. | Using non-volatile memory resources to enable a virtual buffer pool for a database application |
KR101070511B1 (ko) | 2009-03-20 | 2011-10-05 | (주)인디링스 | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 |
TWI386802B (zh) * | 2009-07-03 | 2013-02-21 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
US8886870B2 (en) * | 2010-05-25 | 2014-11-11 | Marvell World Trade Ltd. | Memory access table saving and restoring system and methods |
KR101131560B1 (ko) * | 2010-07-15 | 2012-04-04 | 주식회사 하이닉스반도체 | 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
US8468318B2 (en) * | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes in a storage environment |
US8619813B1 (en) * | 2010-10-07 | 2013-12-31 | Adtran, Inc. | Systems and methods for reliably transporting ethernet virtual circuit information |
KR101833416B1 (ko) * | 2011-04-27 | 2018-04-13 | 시게이트 테크놀로지 엘엘씨 | 데이터 리드 방법 및 이를 적용한 저장 장치 |
US9236064B2 (en) * | 2012-02-15 | 2016-01-12 | Microsoft Technology Licensing, Llc | Sample rate converter with automatic anti-aliasing filter |
CN103369675B (zh) * | 2012-04-06 | 2016-01-27 | 华为技术有限公司 | 一种资源配置方法和装置 |
CN104321759B (zh) * | 2012-05-25 | 2018-03-13 | 华为技术有限公司 | 高速分布存储器系统中的多客户端多存储器控制方法和设备 |
EP2677671B1 (en) * | 2012-06-18 | 2019-06-05 | Samsung Electronics Co., Ltd | Aperiodic and periodic csi feedback modes for coordinated multi-point transmission |
CN103345452B (zh) * | 2013-07-18 | 2015-06-10 | 福建瑞聚信息技术股份有限公司 | 一种在多个缓冲存储器中根据权重信息缓存数据方法 |
KR102344834B1 (ko) | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
US9658979B2 (en) * | 2015-01-09 | 2017-05-23 | Qualcomm Incorporated | Enhanced storage option in multi-slot communications supporting USB UICC SIM cards |
US10055381B2 (en) * | 2015-03-13 | 2018-08-21 | International Business Machines Corporation | Controller and method for migrating RDMA memory mappings of a virtual machine |
US10169232B2 (en) * | 2016-02-19 | 2019-01-01 | Seagate Technology Llc | Associative and atomic write-back caching system and method for storage subsystem |
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102565895B1 (ko) * | 2017-11-13 | 2023-08-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2016
- 2016-10-17 KR KR1020160134229A patent/KR20180041898A/ko not_active Application Discontinuation
-
2017
- 2017-06-14 US US15/622,134 patent/US10657049B2/en active Active
- 2017-08-03 CN CN201710657598.5A patent/CN107957958B/zh active Active
- 2017-09-07 TW TW106130625A patent/TWI723217B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110213921A1 (en) * | 2003-12-02 | 2011-09-01 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
WO2005109665A1 (fr) * | 2004-05-10 | 2005-11-17 | Huawei Technologies Co., Ltd. | Procede de realisation d'une inversion a plaque simple dans un systeme de communication |
US8924684B1 (en) * | 2012-06-13 | 2014-12-30 | Amazon Technologies, Inc. | Virtual memory management to reduce address cache flushing during I/O operations |
US20150286590A1 (en) * | 2014-04-04 | 2015-10-08 | Tidal Systems | Scalable, parameterizable, and script-generatable buffer manager architecture |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI849633B (zh) * | 2021-12-21 | 2024-07-21 | 大陸商長江存儲科技有限責任公司 | 用於碎片整理的記憶體裝置及其系統和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107957958A (zh) | 2018-04-24 |
US10657049B2 (en) | 2020-05-19 |
KR20180041898A (ko) | 2018-04-25 |
TW201816618A (zh) | 2018-05-01 |
CN107957958B (zh) | 2021-07-09 |
US20180107594A1 (en) | 2018-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI723217B (zh) | 記憶體系統及其操作方法 | |
US10366776B2 (en) | Memory system for effectively organizing super memory block and operating method thereof | |
CN107643985B (zh) | 存储器系统及其操作方法 | |
CN107491396B (zh) | 存储器系统及其操作方法 | |
CN108121665B (zh) | 存储器系统及其操作方法 | |
US10452431B2 (en) | Data processing system and operating method thereof | |
US10303361B2 (en) | Memory system and method for buffering and storing data | |
TWI760363B (zh) | 控制器及其操作方法 | |
US20180011527A1 (en) | Memory system and operating method thereof | |
CN110825318B (zh) | 控制器及其操作方法 | |
US20180012666A1 (en) | Memory system and operating method thereof | |
CN109697171B (zh) | 控制器及其操作方法 | |
US10331346B2 (en) | Memory system using burst command for handling plural commands and operating method thereof | |
US10936484B2 (en) | Memory system and operating method thereof | |
CN107728932B (zh) | 存储器系统及其操作方法 | |
CN110751972A (zh) | 存储器系统及该存储器系统的操作方法 | |
US20190347193A1 (en) | Memory system and operating method thereof | |
US10614890B2 (en) | Memory system and operating method thereof | |
US20180157415A1 (en) | Apparatus and method for controlling memory device | |
US11042317B2 (en) | Memory system for reducing fragmentation based on sequential index and operating method thereof | |
US10725905B2 (en) | Memory system and operating method thereof | |
CN107436730B (zh) | 数据处理系统及其操作方法 | |
CN108108122B (zh) | 控制器和存储器系统及其操作方法 | |
US10545675B2 (en) | Memory system including multi-interfaces | |
US20190121701A1 (en) | Data processing system and operating method thereof |