JP7618440B2 - メモリシステム及び制御方法 - Google Patents
メモリシステム及び制御方法 Download PDFInfo
- Publication number
- JP7618440B2 JP7618440B2 JP2020209603A JP2020209603A JP7618440B2 JP 7618440 B2 JP7618440 B2 JP 7618440B2 JP 2020209603 A JP2020209603 A JP 2020209603A JP 2020209603 A JP2020209603 A JP 2020209603A JP 7618440 B2 JP7618440 B2 JP 7618440B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- clusters
- memory
- logical
- memory area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
実施形態にかかるメモリシステムは、不揮発性メモリ及びコントローラが複数のチャネルを介して接続されて構成される。コントローラは、ホストからのコマンドに応じて、不揮発性メモリに対するデータの書き込み及び読み出しを複数のチャネル経由で行い得る。コントローラは、ホストからライト対象の論理アドレス長がある程度長い一群のライトコマンド及び一群のライトコマンドに対応する複数のクラスタのデータを受けることがある。この一群のライトコマンドをシーケンシャルライトコマンドと呼ぶことにする。シーケンシャルライトコマンドは、複数の論理アドレスを含み、複数の論理アドレスはある長さ以上連続している。クラスタは、コントローラによるデータの管理単位である。コントローラは、シーケンシャルライトコマンドに応じて、シーケンシャルな複数の論理アドレスをシーケンシャルな複数の物理アドレスに割り当てる。シーケンシャルな複数の物理アドレスは、複数のチャネルをシーケンシャルな順に選択して用いる。コントローラは、複数のクラスタのデータを不揮発性メモリ内の第1のメモリ領域におけるシーケンシャルな複数の物理アドレスに複数のチャネル経由で書き込む。このとき、メモリシステムは、第1のメモリ領域について、「シーケンシャルな複数の論理アドレス」と「シーケンシャルな複数の物理アドレス」との対応関係が成立するようなアドレス変換情報を生成する。
Claims (6)
- コントローラと、
前記コントローラに接続された複数のチャネルと、
前記複数のチャネルを介して前記コントローラによりそれぞれがアクセス可能である第1のメモリ領域及び第2のメモリ領域を含む不揮発性メモリと、
を備え、
前記コントローラは、ホストからのシーケンシャルデータに関するライトコマンドに応じて複数のクラスタのデータを前記第1のメモリ領域に前記複数のチャネル経由で書き込み、ログ情報に応じて前記複数のクラスタのデータの書き込まれた順序を特定し、特定された前記順序に応じてクラスタの識別情報と書き込み順を示す情報とが対応付けられた順序情報を生成し、内部処理に関するリード命令に応じて前記複数のクラスタのデータのうち複数の有効クラスタのデータを選択的に前記第1のメモリ領域から読み出し、読み出された前記複数の有効クラスタのデータを前記順序情報に応じて並べ替え、並べ替えられた複数の有効クラスタのデータに物理アドレスをシーケンシャルに付け直し、前記内部処理に関するライト命令に応じて、前記並べ替えられた複数のクラスタのデータを前記第2のメモリ領域に前記複数のチャネル経由で前記付け直された物理アドレス順に書き込む
メモリシステム。 - 前記コントローラは、前記ホストからの前記シーケンシャルデータに関するリードコマンドに応じて前記複数のクラスタのデータを前記第2のメモリ領域から前記複数のチャネル経由で読み出す
請求項1に記載のメモリシステム。 - 前記コントローラは、前記複数のチャネルを介して前記第1のメモリ領域内の複数の領域に並行して書き込みを行い、前記複数のチャネルを介して前記第2のメモリ領域内の複数の領域に並行して書き込みを行い、前記複数のチャネルを介して前記第2のメモリ領域内の複数の領域から並行して読み出しを行う
請求項2に記載のメモリシステム。 - 前記コントローラは、前記複数のクラスタのデータを前記第1のメモリ領域に書き込む際に前記複数のクラスタに複数の論理クラスタアドレスを割り当て、前記複数の論理クラスタアドレスをデータが書き込まれる順に前記ログ情報に記録し、前記ログ情報に記録される複数の論理クラスタアドレスの順序に応じて前記複数のクラスタのデータの書き込まれた順序を特定し、前記並べ替えられた複数のクラスタのデータを前記第2のメモリ領域に書き込む際に前記並べ替えられた複数のクラスタのデータに複数の論理クラスタアドレスを割り当てる
請求項1から3のいずれか1項に記載のメモリシステム。 - 前記第1のメモリ領域は、複数の論理ページに割り当てられた複数の領域を含み、
前記コントローラは、前記順序情報を前記論理ページごとに生成し、前記リード命令に応じて前記第1のメモリ領域から前記論理ページごとにデータを読み出し、前記順序情報に応じて前記論理ページごとにデータを並び替える
請求項1から4のいずれか1項に記載のメモリシステム。 - 複数のチャネルを介してそれぞれがアクセス可能である第1のメモリ領域及び第2のメモリ領域を含む不揮発性メモリを有するメモリシステムにおいて、
ホストからのシーケンシャルデータに関するライトコマンドに応じて複数のクラスタのデータを前記第1のメモリ領域に前記複数のチャネル経由で書き込むことと、
ログ情報に応じて前記複数のクラスタのデータの書き込まれた順序を特定することと、
特定された前記順序に応じてクラスタの識別情報と書き込み順を示す情報とが対応付けられた順序情報を生成することと、
内部処理に関するリード命令に応じて前記複数のクラスタのデータのうち複数の有効クラスタのデータを選択的に前記第1のメモリ領域から読み出すことと、
読み出された前記複数の有効クラスタのデータを前記順序情報に応じて並べ替えることと、
並べ替えられた複数の有効クラスタのデータに物理アドレスをシーケンシャルに付け直すことと、
前記内部処理に関するライト命令に応じて、前記並べ替えられた複数のクラスタのデータを前記第2のメモリ領域に前記複数のチャネル経由で前記付け直された物理アドレス順に書き込むことと、
を含む制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020209603A JP7618440B2 (ja) | 2020-12-17 | 2020-12-17 | メモリシステム及び制御方法 |
| US17/406,584 US11928361B2 (en) | 2020-12-17 | 2021-08-19 | Memory system and control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020209603A JP7618440B2 (ja) | 2020-12-17 | 2020-12-17 | メモリシステム及び制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022096478A JP2022096478A (ja) | 2022-06-29 |
| JP7618440B2 true JP7618440B2 (ja) | 2025-01-21 |
Family
ID=82021290
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020209603A Active JP7618440B2 (ja) | 2020-12-17 | 2020-12-17 | メモリシステム及び制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11928361B2 (ja) |
| JP (1) | JP7618440B2 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114333930B (zh) * | 2021-12-23 | 2024-03-08 | 合肥兆芯电子有限公司 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
| US12411763B2 (en) * | 2022-05-16 | 2025-09-09 | Micron Technology, Inc. | Data defragmentation control |
| KR20250036521A (ko) * | 2023-09-07 | 2025-03-14 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 전자 시스템 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011154547A (ja) | 2010-01-27 | 2011-08-11 | Toshiba Corp | メモリ管理装置及びメモリ管理方法 |
| JP2011197788A (ja) | 2010-03-17 | 2011-10-06 | Toshiba Corp | メモリシステム |
| JP2012027649A (ja) | 2010-07-22 | 2012-02-09 | Toshiba Corp | データ記憶装置及びデータ読み出し方法 |
| JP2012037971A (ja) | 2010-08-04 | 2012-02-23 | Tdk Corp | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 |
| US20180188962A1 (en) | 2016-12-30 | 2018-07-05 | SK Hynix Inc. | Controller and operation method thereof |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010152517A (ja) | 2008-12-24 | 2010-07-08 | Toshiba Corp | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 |
| US9384124B2 (en) | 2012-07-20 | 2016-07-05 | Kabushiki Kaisha Toshiba | Data storage device, memory control method, and electronic device with data storage device |
| KR102445662B1 (ko) | 2015-07-01 | 2022-09-22 | 삼성전자주식회사 | 스토리지 장치 |
-
2020
- 2020-12-17 JP JP2020209603A patent/JP7618440B2/ja active Active
-
2021
- 2021-08-19 US US17/406,584 patent/US11928361B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011154547A (ja) | 2010-01-27 | 2011-08-11 | Toshiba Corp | メモリ管理装置及びメモリ管理方法 |
| JP2011197788A (ja) | 2010-03-17 | 2011-10-06 | Toshiba Corp | メモリシステム |
| JP2012027649A (ja) | 2010-07-22 | 2012-02-09 | Toshiba Corp | データ記憶装置及びデータ読み出し方法 |
| JP2012037971A (ja) | 2010-08-04 | 2012-02-23 | Tdk Corp | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 |
| US20180188962A1 (en) | 2016-12-30 | 2018-07-05 | SK Hynix Inc. | Controller and operation method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022096478A (ja) | 2022-06-29 |
| US20220197562A1 (en) | 2022-06-23 |
| US11928361B2 (en) | 2024-03-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12511230B2 (en) | Storage system having a host directly manage physical data locations of storage device | |
| KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
| CN107957961B (zh) | 存储设备、存储系统和计算设备 | |
| US9405679B2 (en) | Determining a location of a memory device in a solid state device | |
| US8762629B2 (en) | Data conditioning to improve flash memory reliability | |
| EP2374134B1 (en) | Spare block management in non-volatile memories | |
| JP5823875B2 (ja) | 固体メモリフォーマッティング | |
| US20070035998A1 (en) | Nonvolatile memory apparatus | |
| JP2011522350A (ja) | ハイブリッドメモリ管理 | |
| CN112463647A (zh) | 使用散列来减小前向映射表的大小 | |
| JP7618440B2 (ja) | メモリシステム及び制御方法 | |
| US20190095341A1 (en) | Low overhead mapping for highly sequential data | |
| KR20200032404A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
| CN111309642B (zh) | 一种存储器及其控制方法与存储系统 | |
| TWI914173B (zh) | 記憶體系統 | |
| US11640336B2 (en) | Fast cache with intelligent copyback | |
| US20260079639A1 (en) | Memory system and method | |
| TW202611734A (zh) | 記憶體系統 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230911 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240716 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240717 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240917 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241210 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250108 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7618440 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |