JP2020198577A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2020198577A
JP2020198577A JP2019104682A JP2019104682A JP2020198577A JP 2020198577 A JP2020198577 A JP 2020198577A JP 2019104682 A JP2019104682 A JP 2019104682A JP 2019104682 A JP2019104682 A JP 2019104682A JP 2020198577 A JP2020198577 A JP 2020198577A
Authority
JP
Japan
Prior art keywords
data
memory
toggle
bit length
memory system
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.)
Pending
Application number
JP2019104682A
Other languages
English (en)
Inventor
俊一 井川原
Shunichi Ikawahara
俊一 井川原
小島 慶久
Yoshihisa Kojima
慶久 小島
健彦 天木
Takehiko Amagi
健彦 天木
卓 西川
Taku Nishikawa
卓 西川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2019104682A priority Critical patent/JP2020198577A/ja
Priority to US16/774,609 priority patent/US11194656B2/en
Priority to CN202010156015.2A priority patent/CN112037836B/zh
Publication of JP2020198577A publication Critical patent/JP2020198577A/ja
Priority to US17/519,356 priority patent/US11740965B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Abstract

【課題】メモリコントローラと不揮発性メモリとの間のデータ送信に伴う消費電力を低減するメモリシステムを提供することである。【解決手段】実施形態に係るメモリシステムは、不揮発性メモリを具備する。さらに、第1のビット長と第1のトグル回数とを有する第1のデータを、第1のビット長よりも長い第2のビット長と第1のトグル回数より少ない第2のトグル回数とを有する第2のデータに符号化する第1のトグルエンコーダを有し、第2のデータを不揮発性メモリに送信するコントローラを具備する。【選択図】図3

Description

本発明の実施形態は、メモリシステムに関する。
NAND型フラッシュメモリのような不揮発性メモリと、メモリコントローラと、を備えるメモリシステムが知られている。
特開2014−137834号公報 米国特許出願公開第2014/0169092号明細書 米国特許出願公開第2016/0322990号明細書
本発明が解決しようとする課題は、メモリコントローラと不揮発性メモリとの間のデータ送信に伴う消費電力を低減するメモリシステムを提供することである。
実施形態に係るメモリシステムは、不揮発性メモリを具備する。さらに、第1のビット長と第1のトグル回数とを有する第1のデータを、第1のビット長よりも長い第2のビット長と第1のトグル回数より少ない第2のトグル回数とを有する第2のデータに符号化する第1のトグルエンコーダを有し、第2のデータを不揮発性メモリに送信するコントローラを具備する。
第1の実施形態に係るホスト装置に接続されたメモリシステムの全体構成例を示すブロック図である。 第1の実施形態に係るメモリシステムのメモリコントローラおよびメモリチップの構成例を示すブロック図である。 第1の実施形態に係るメモリシステムの第1のトグルエンコーダによる第1のデータから第2のデータへの符号化の一例を示すブロック図である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のデータから第2のデータへの変換表の別の一例である。 第1の実施形態に係るメモリシステムの第1のトグルデコーダによる第2のデータから第1のデータへの復号の一例を示すブロック図である。 第1の実施形態に係るメモリシステムの第2のトグルエンコーダによる第3のデータから第4のデータへの符号化の一例を示すブロック図である。 第1の実施形態に係るメモリシステムの第2のトグルデコーダによる第4のデータから第3のデータへの復号の一例を示すブロック図である。 第1の実施形態に係るメモリシステムの書き込み動作時の符号化を説明するタイミングチャートの一例である。 第1の実施形態に係るメモリシステムの書き込み動作時の復号を説明するタイミングチャートの一例である。 第1の実施形態に係るメモリシステムの読み出し動作時の符号化を説明するタイミングチャートの一例である。 第1の実施形態に係るメモリシステムの読み出し動作時の復号を説明するタイミングチャートの一例である。 第2の実施形態に係るメモリシステムのメモリコントローラおよびメモリチップの構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップの構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップが同一のパッケージに実装される構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのインタフェースチップが、メモリコントローラが実装された第1パッケージとは独立した別の第2パッケージに、メモリチップとともに実装される構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのメモリコントローラ、インタフェースチップおよびメモリチップがいずれも別のパッケージに実装される構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのメモリコントローラパッケージ、インタフェースパッケージおよびメモリパッケージが同一のプリント基板に実装される構成例を示すブロック図である。 第3の実施形態に係るメモリシステムのインタフェースパッケージが、メモリコントローラパッケージが実装された第1プリント基板とは独立した別の第2プリント基板に、メモリパッケージとともに実装される構成例を示すブロック図である。 第4の実施形態に係るメモリシステムの、ランダマイザを有するメモリコントローラ、およびメモリチップの構成例を示すブロック図である。 第5の実施形態に係るメモリシステムのメモリコントローラおよびランダマイザを有するメモリチップの構成例を示すブロック図である。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能および構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
(第1の実施形態)
図1は、本実施形態に係るホスト装置に接続されたメモリシステム1000の全体構成例を示すブロック図である。図1に示すように、メモリシステム1000は、メモリコントローラ100と不揮発性メモリ200とがメモリバス300で接続された構成を備える。メモリシステム1000は、ホスト装置1500と通信インタフェース320で接続され、ホスト装置1500の外部記憶装置として機能する。
メモリシステム1000は、メモリコントローラ100と不揮発性メモリ200が1つのパッケージとして構成されるメモリカードであってもよいし、SSD(Solid State Drive)であってもよい。
ホスト装置1500は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
通信インタフェース320は、メモリシステム1000とホスト装置1500とを接続する。通信インタフェース320は、例えば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(Peripheral Components Interconnect Express)(登録商標)、NVMe(Non−Volatile Memory Express)(登録商標)に準拠する。
メモリコントローラ100は、ホスト装置1500からの要求に応じて不揮発性メモリ200に対するデータの書き込み/読み出しを制御する。本実施形態において、要求とは、例えば、命令、コマンドである。メモリコントローラはコントローラとも称される。メモリコントローラ100は、例えば、SoC(System on a Chip)、FPGA(Field−Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)として構成される半導体集積回路である。以下で説明するメモリコントローラ100の各構成要素の機能の一部又は全部は、CPU(Central Processing Unit)がファームウェアを実行することによって実現されてもよいし、ハードウェアで実現されてもよい。
不揮発性メモリ200は、データを不揮発に記憶できる半導体メモリである。不揮発性メモリ200は、例えば、NAND型フラッシュメモリである。NAND型フラッシュメモリでは、ページ単位でデータの書き込みおよび読み出しが実行される。また、NAND型フラッシュメモリでは、ブロック単位でデータの消去が実行される。NAND型フラッシュメモリを不揮発性メモリ200に用いた場合、そのメモリセルは、1ビットの記憶が可能なシングルレベルセルであってもよいし、2ビット以上の記憶が可能なマルチレベルセルであってもよい。
不揮発性メモリ200は、例えば、互いに独立して動作可能な複数個のメモリチップ#1 210−1、メモリチップ#2 210−2、・・・、メモリチップ#N 210−Nを備えてもよい。なお、Nは任意の自然数である。
以下の説明において、複数のメモリチップ#1 210−1、メモリチップ#2 210−2、・・・、メモリチップ#N 210−Nのうち1つを特定する必要がある場合は符号210−1、210−2、・・・、210−Nを使用するが、任意のメモリチップを指す場合や、あるメモリチップを他のメモリチップと区別しない場合は、符号210を使用する。
なお、本実施形態においては、不揮発性メモリ200としてNAND型フラッシュメモリを用いる例を説明するが、不揮発性メモリ200として3次元構造フラッシュメモリ、ReRAM(Resistance Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)等のNAND型フラッシュメモリ以外の記憶手段を用いてもよい。また、本実施形態においては、不揮発性メモリ200として半導体メモリを用いる例を説明するが、半導体メモリ以外の記憶手段を用いてもよい。
図2は、本実施形態に係るメモリシステム1000のメモリコントローラ100およびメモリチップ210の構成例を示すブロック図である。
メモリコントローラ100の各構成について説明する。図2に示すように、メモリコントローラ100は、CPU110と、ホストインタフェース(ホストI/F)120と、ECC(Error Check and Correction)部130と、第1のバッファメモリ140と、メモリインタフェース(メモリI/F)150と、第1のトグルエンコーダ400と、第2のトグルデコーダ460とが内部バス160を介して相互に接続された構成を備える。
本実施形態においては、メモリコントローラ100が、第1のトグルエンコーダ400と、第2のトグルデコーダ460とを有する場合について説明するが、第1のトグルエンコーダ400と第2のトグルデコーダ460のうち片方がメモリコントローラ100の外部、他方がメモリコントローラ100の内部に存在していてもよいし、どちらもメモリコントローラ100の外部に存在していてもよい。
CPU110は、メモリシステム1000の各構成要素を統括的に制御する。CPU110は、メモリシステム1000の起動時に、図示しないROMに格納されているファームウェア(制御プログラム)を第1のバッファメモリ140またはCPU110内の図示しないRAM上に読み出す。その後、CPU110がファームウェアを実行することにより、各機能が実現される。
CPU110は、ホスト装置1500からホストインタフェース120経由で要求を受け付けると、その要求に従ってメモリコントローラ100の各部を制御する。例えば、CPU110は、ホスト装置1500からの書き込み要求に従い、不揮発性メモリ200へのデータの書き込みをメモリインタフェース150へ指示する。また、CPU110は、ホスト装置1500からの読み出し要求に従い、不揮発性メモリ200からのデータの読み出しをメモリインタフェース150へ指示する。
また、CPU110は、ホスト装置1500から書き込み要求を受信した場合、書き込み要求で指定されたデータを第1のバッファメモリ140に保存し、このデータに対する不揮発性メモリ200上の格納領域を決定する。すなわち、CPU110は、データの書き込み先を決定し、管理する。ホスト装置1500から受信したデータの論理アドレスと当該データが格納される不揮発性メモリ200上の格納領域を示す物理アドレスとの対応関係はアドレス変換テーブルとして、例えば、第1のバッファメモリ140に格納される。
また、CPU110は、ホスト装置1500から読み出し要求を受信した場合、読み出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて不揮発性メモリ200の物理アドレスに変換し、該物理アドレスからのデータの読み出しをメモリインタフェース150へ指示する。これにより不揮発性メモリ200から読み出されたデータは、一時的に第1のバッファメモリ140に格納された後、ホストインタフェース120を介してホスト装置1500へ送信される。
ホストインタフェース120は、ホスト装置1500から受信した要求や書き込みデータなどを内部バス160に出力し、第1のバッファメモリ140に格納する。また、ホストインタフェース120は、不揮発性メモリ200から読み出され、第1のバッファメモリ140に格納された読み出しデータや、CPU110からの応答などをホスト装置1500へ送信する。
ECC部130は、例えば、誤り訂正機能を備えた符号化/復号回路であり、不揮発性メモリ200へ書き込むデータをBCH(Bose Chaudhuri Hocquenghem)符号などの誤り訂正符号で符号化する。また、不揮発性メモリ200から読み出されたデータ中のエラーを訂正する。
ホストインタフェース120がホスト装置1500から書き込みデータとして受信したデータは、一時的に第1のバッファメモリ140に格納される。CPU110は、第1のバッファメモリ140に格納されたデータに対して不揮発性メモリ200の格納領域を決定し、この決定された格納領域内にデータを書き込むことをメモリインタフェース150に指示する。
第1のバッファメモリ140には、例えば、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)などの揮発性メモリを用いることができる。また、第1のバッファメモリ140は、メモリコントローラ100の内部に実装されてもよく、メモリコントローラ100の外部に実装されてもよい。
メモリインタフェース150は、CPU110からの指示に基づいて、不揮発性メモリ200へデータ等を書き込む処理および不揮発性メモリ200からデータ等を読み出す処理を制御する。
メモリインタフェース150は、CPU110からの指示に基づいて、第1のバッファメモリ140から受け取った書き込みデータ等を第1のトグルエンコーダ400を経由して不揮発性メモリ200へ送信する。また、不揮発性メモリ200から受け取った読み出しデータ等を第2のトグルデコーダ460を経由して第1のバッファメモリ140へ送信する。
内部バス160は、CPU110、ホストインタフェース120、ECC部130、第1のバッファメモリ140、メモリインタフェース150、第1のトグルエンコーダ400および第2のトグルデコーダ460を接続している通信線である。
第1のトグルエンコーダ400および第2のトグルデコーダ460の詳細については、後に説明する。
次に、メモリチップ210の構成について説明する。メモリチップ210は、例えば、NAND型フラッシュメモリチップである。
図2に示されるように、メモリチップ210は、入出力回路220、周辺回路240、メモリセルアレイ260を含む。
入出力回路220は、メモリバス300を介して、メモリコントローラ100のメモリインタフェース150と接続されている。入出力回路220は、メモリバス300を介して、メモリコントローラ100から複数の制御信号を受け取り、受け取った制御信号に基づいて、種々の内部制御信号を周辺回路240に供給する。
入出力回路220は、メモリコントローラ100から書き込みデータを受け取り、受け取った書き込みデータを周辺回路240に供給する。また、入出力回路220は、メモリセルアレイ260のセルトランジスタに格納されていたデータを周辺回路240から受け取り、メモリバス300を介してメモリコントローラ100に供給する。
周辺回路240は、第1のトグルデコーダ420、第2のトグルエンコーダ440、図示しないシーケンサ、ドライバ、センスアンプ、ロウデコーダ等を含む。周辺回路240は、入出力回路220から種々の信号を受け取り、受け取った信号に基づいて、メモリセルアレイ260のセルトランジスタにデータを書き込む。また、周辺回路240は、メモリセルアレイ260のセルトランジスタに格納されているデータを読み出す。
周辺回路240は、入出力回路220から受け取った書き込みデータ等を第1のトグルデコーダ420を経由してメモリセルアレイ260へ書き込む。また、メモリセルアレイ260から受け取った読み出しデータ等を第2のトグルエンコーダ440を経由して入出力回路220へ送信する。
本実施形態においては、周辺回路240に第1のトグルデコーダ420、第2のトグルエンコーダ440が含まれている場合について説明するが、第1のトグルデコーダ420と第2のトグルエンコーダ440のうち片方が周辺回路240の外部、他方が周辺回路240の内部に存在していてもよいし、どちらも周辺回路240の外部に存在していてもよい。
第1のトグルデコーダ420および第2のトグルエンコーダ440の詳細については、後に説明する。
メモリセルアレイ260は、書き込み時に周辺回路240からデータを受け取り、受け取ったデータをセルトランジスタに格納する。また、メモリセルアレイ260は、読み出し時にセルトランジスタに格納されていたデータを周辺回路240に供給する。
図3は、本実施形態に係るメモリシステム1000の第1のトグルエンコーダ400による第1のデータ700から第2のデータ720への符号化の一例を示すブロック図である。なお、第1のデータ700から第2のデータ720への符号化は、第1のデータ700から第2のデータ720への変換とも称する。
図3に示すように、第1のトグルエンコーダ400は、第1のビット長と第1のトグル回数とを有する第1のデータ700を、第1のビット長よりも長い第2のビット長と第1のトグル回数より少ない第2のトグル回数とを有する第2のデータ720に符号化する。なお、図4を参照して後述するように、第2のデータ720のトグル回数が、必ず第1のデータ700のトグル回数以下となるように符号化してもよい。また、図5−A〜図5−Hを参照して後述するように、複数の第2のデータ720のトグル回数の平均が、複数の第1のデータ700のトグル回数の平均よりも少なくなるように符号化してもよい。第1のビット長は、例えば9ビットであり、第2のビット長は、例えば10ビットである。
なお、後述する信号DQの幅に応じた数の第1のデータ700が、第1のトグルエンコーダ400にて、第2のデータ720へと符号化される。図3においては、信号DQが8ビットの幅を有し、これに対応して8個の第1のデータ700が、第1のトグルエンコーダ400_0〜400_7にて、8個の第2のデータ720へと符号化される場合が例示されている。
本実施形態において、第1のトグルエンコーダ400により符号化される第1のデータ700は、メモリコントローラ100からメモリチップ210への書き込みデータである。なお、第1のデータ700は、メモリコントローラ100からメモリチップ210へ送信されるコマンドやアドレスなどであってもよい。また、第1のデータ700は、ホスト装置1500から書き込みデータとして受信したデータだけではなく、ガベージコレクション、ウェアレベリング、リフレッシュ等の内部処理に使用するデータでもよい。
第1のトグルエンコーダ400は、第1のバッファメモリ140から受け取った第1のデータ700を一時的に格納する図示しない第2のバッファメモリを備える。第2のバッファメモリに格納された第1のデータ700は、第1のトグルエンコーダ400により第2のデータ720に符号化された後、メモリインタフェース150によりメモリチップ210へと送信される。第2のバッファメモリには、例えば、SRAM(Static Random Access Memory)やレジスタなどの揮発性メモリを用いることができる。
図4は、第1の実施形態に係るメモリシステム1000の第1のデータ700から第2のデータ720への変換表の一例である。
図4においては、第1のデータ700が4ビットのビット長で、第2のデータ720が5ビットのビット長である場合について説明する。例えば図4のAに示すように、第1のトグルエンコーダ400は、図4の変換表を用いて、4ビットのビット長でトグル回数が1回のデータ「0011」を、5ビットのビット長でトグル回数が1回のデータ「11000」に、符号化する。別の一例としては、図4のBに示すように、4ビットのビット長でトグル回数が2回のデータ「0100」は、5ビットのビット長でトグル回数が1回のデータ「11110」に、符号化される。さらに別の一例としては、図4のCに示すように、4ビットのビット長でトグル回数が3回のデータ「0101」は、5ビットのビット長でトグル回数が2回のデータ「10001」に、符号化される。その他の場合についても同様であるが、いずれの場合も第2のデータ720のトグル回数が、必ず第1のデータ700のトグル回数以下となるように符号化が行われる。なお、第1のデータ700が4ビットのビット長で、第2のデータ720が5ビットのビット長である場合以外においても、同様の変換が行われる。
図5‐A〜図5‐Hは、第1の実施形態に係るメモリシステム1000の第1のデータ700から第2のデータ720への変換表の別の一例である。図5‐A〜図5‐Hにおいては、それぞれが9ビットのビット長を有する複数の第1のデータ700からなる第1のデータ群は10進数、それぞれが10ビットのビット長を有する複数の第2のデータ720からなる第2のデータ群は2進数で表記されている。
図5‐A〜図5‐Hにおいては、10ビットのビット長により表される1024個のデータ(コード)のうちトグル回数が少ない方から512個のデータのみが第2のデータ群として記載されている。10ビットのビット長により表される1024個のデータのうち、トグル回数が少ない方から512個のデータを、第2のデータ720として採用している。これにより、第2のデータ群に含まれる512個の第2のデータ720各々のトグル回数の平均は、例えば3.8回になる。また、第1のデータ群に含まれる512個の9ビットのビット長の第1のデータ700各々のトグル回数の平均は、例えば4.5回である。このように、第2のデータ群に含まれる第2のデータ720各々のトグル回数の平均は、第1のデータ群に含まれる第1のデータ700各々のトグル回数の平均よりも少なくなっている。
なお、第1のデータ群に含まれているある特定の第1のデータ700については、符号化によりトグル回数が多くなるものがあってもよいが、第2のデータ群のトグル回数の平均は、第1のデータ群のトグル回数の平均よりも少なくなっている。さらに、この時の符号化は、9ビットから10ビットへの変換に限られず、例えば、9ビットから11ビットへの変換でもよい。
なお、第2のトグルエンコーダ440においても、図4または図5‐A〜図5‐Hの変換表を用いて、同様に符号化を行う。また、第1のトグルデコーダ420および第2のトグルデコーダ460においては、図4または図5‐A〜図5‐Hの変換表を用いて、復号を行う。
図6は、本実施形態に係るメモリシステムの第1のトグルデコーダ420による第2のデータ720から第1のデータ700への復号の一例を示すブロック図である。
図6に示すように、第1のトグルデコーダ420は、第1のトグルエンコーダ400により符号化された第2のデータ720を元の第1のデータ700に復号する。図2および図3に示すように、第1のデータ700は、第1のトグルエンコーダ400にて第2のデータ720に符号化された後、メモリコントローラ100からメモリチップ210に送信される。次に、第2のデータ720は、第1のトグルデコーダ420により、元の第1のデータ700に復号される。その後、復号された第1のデータ700は、メモリセルアレイ260に書き込まれる。
なお、後述する信号DQの幅に応じた数の第2のデータ720が、第1のトグルデコーダ420にて、第1のデータ700へと復号される。図6においては、信号DQが8ビットの幅を有し、これに対応して8個の第2のデータ720が、第1のトグルデコーダ420_0〜420_7にて、8個の第1のデータ700へと復号される場合が例示されている。
第1のトグルデコーダ420は、入出力回路220から受け取った第2のデータ720を一時的に格納する図示しない第3のバッファメモリを備える。第3のバッファメモリに格納された第2のデータ720は、第1のトグルデコーダ420により第1のデータ700に復号された後、周辺回路240によりメモリセルアレイ260に書き込まれる。第3のバッファメモリには、例えば、SRAMやレジスタなどの揮発性メモリを用いることができる。
図7は、本実施形態に係るメモリシステム1000の第2のトグルエンコーダ440による第3のデータ740から第4のデータ760への符号化の一例を示すブロック図である。
図7に示すように、第2のトグルエンコーダ440は、第3のビット長と第3のトグル回数とを有する第3のデータ740を、第3のビット長よりも長い第4のビット長と第3のトグル回数より少ない第4のトグル回数とを有する第4のデータ760に符号化する。なお、図4を参照して前述したように、第4のデータ760のトグル回数が、必ず第3のデータ740のトグル回数以下となるように符号化してもよい。また、図5−A〜図5−Hを参照して前述したように、複数の第4のデータ760のトグル回数の平均が、複数の第3のデータ740のトグル回数の平均よりも少なくなるように符号化してもよい。第3のビット長は、例えば9ビットであり、第4のビット長は、例えば10ビットである。
なお、後述する信号DQの幅に応じた数の第3のデータ740が、第2のトグルエンコーダ440にて、第4のデータ760へと符号化される。図7においては、信号DQが8ビットの幅を有し、これに対応して8個の第3のデータ740が、第2のトグルエンコーダ440_0〜440_7にて、8個の第4のデータ760へと符号化される場合が例示されている。
本実施形態において、第2のトグルエンコーダ440により符号化される第3のデータ740は、メモリセルアレイ260から読み出されたデータである。第3のデータ740は、ガベージコレクション、ウェアレベリング、リフレッシュ等の内部処理に使用するデータでもよい。なお、第3のデータ740は、メモリチップ210からメモリコントローラ100に送信されるステータス等であってもよい。
なお、第3のデータ740は、第1のデータ700とビット長が同じでも異なっていてもよい。また、第3のデータ740は、第1のデータ700とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第1のデータ700と第3のデータ740のビット長とトグル回数が同じである。
また、第4のデータ760は、第2のデータ720とビット長が同じでも異なっていてもよい。また、第4のデータ760は、第2のデータ720とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第2のデータ720と第4のデータ760のビット長とトグル回数が同じである。
第2のトグルエンコーダ440は、メモリセルアレイ260から受け取った第3のデータ740を一時的に格納する図示しない第4のバッファメモリを備える。第3のデータ740をメモリセルアレイ260から読み出すように要求するコマンドが、メモリコントローラ100からメモリチップ210へと出力される。第4のバッファメモリに格納された第3のデータ740は、第2のトグルエンコーダ440により第4のデータ760に符号化された後、周辺回路240によりメモリコントローラ100へと送信される。第4のバッファメモリには、例えば、SRAMやレジスタなどの揮発性メモリを用いることができる。
図8は、本実施形態に係るメモリシステム1000の第2のトグルデコーダ460による第4のデータ760から第3のデータ740への復号の一例を示すブロック図である。
図8に示すように、第2のトグルデコーダ460は、第2のトグルエンコーダ440により符号化された第4のデータ760を元の第3のデータ740に復号する。図2および図7に示すように、第3のデータ740は、第2のトグルエンコーダ440にて第4のデータ760に符号化された後、メモリチップ210からメモリコントローラ100に送信される。次に、第4のデータ760は、第2のトグルデコーダ460により、元の第3のデータ740に復号される。
なお、後述する信号DQの幅に応じた数の第4のデータ760が、第2のトグルデコーダ460にて、第3のデータ740へと復号される。図8においては、信号DQが8ビットの幅を有し、これに対応して8個の第4のデータ760が、第2のトグルデコーダ460_0〜460_7にて、8個の第3のデータ740へと復号される場合が例示されている。
第2のトグルデコーダ460は、メモリインタフェース150から受け取った第4のデータ760を一時的に格納する図示しない第5のバッファメモリを備える。第5のバッファメモリに格納された第4のデータ760は、第2のトグルデコーダ460により第3のデータ740に復号された後、メモリインタフェース150により第1のバッファメモリ140へと送信される。第5のバッファメモリには、例えば、SRAMやレジスタなどの揮発性メモリを用いることができる。
図2に戻ってメモリバス300を説明する。
メモリバス300は、メモリコントローラ100と不揮発性メモリ200とを接続する。メモリインタフェース150と入出力回路220は、メモリバス300を介して、データを送受信する。メモリバス300は、例えば、Toggle DDR(Double Data Rate)、ONFI(Open NAND Flash Interface)に準拠する。メモリバス300は、例えば、信号DQ、DQS、DQSn、REおよびREnを送受信する。信号名に接尾辞として“n”が付与される場合、当該信号は、負論理である。すなわち、当該信号は“L(Low)”レベルでアサートされる信号であることを示す。
信号DQ(DQ0〜DQ7)は、例えば、8ビットの幅を有し、データの実体であり、コマンド、メモリチップ210への書き込みデータまたはメモリチップ210からの読み出しデータ、アドレス、ステータス等を含む。
メモリチップ210内のメモリセルアレイ260へのデータ書き込み時、ホストインタフェース120で受けた第1のデータ700は、第1のトグルエンコーダ400により符号化され、メモリバス300を介して第2のデータ720(=信号DQ0〜DQ7)としてメモリチップ210の入出力回路220に入力される。入出力回路220に入力された第2のデータ720は、周辺回路240へと送信され、第1のトグルデコーダ420により第1のデータ700に復号された後、メモリセルアレイ260に書き込まれる。データ読み出し時、メモリセルアレイ260に書き込まれた第3のデータ740は、第2のトグルエンコーダ440により第4のデータ760(=信号DQ0〜DQ7)として符号化される。この第4のデータ760は、メモリバス300を介してメモリコントローラ100に送信され、第2のトグルデコーダ460により、第3のデータ740に復号される。なお、第3のデータ740は、メモリセルアレイ260に書き込まれた第1のデータ700であってもよい。この場合、第1のデータ700と第3のデータ740のビット長とトグル回数は同じである。
信号DQSおよびDQSnは、メモリコントローラ100とメモリチップ210との双方向でやり取りされる同期信号である。メモリコントローラ100からメモリチップ210へ向かう信号DQSおよびDQSnは、信号DQを取り込むタイミングをメモリチップ210に指示する。信号DQにより第2のデータ720が送信される場合、第1のトグルエンコーダ400は、第2のビット長に対応する数のタイミングを、信号DQSおよびDQSnによって指示する。
一方、メモリチップ210からメモリコントローラ100に向かう信号DQSおよびDQSnは、信号DQを取り込むタイミングをメモリコントローラ100に指示する。信号DQにより第4のデータ760が送信される場合、第2のトグルエンコーダ440は、第4のビット長に対応する数のタイミングを、信号DQSおよびDQSnによって指示する。
データの読み出し時において、メモリコントローラ100からメモリチップ210に向かう信号REおよびREnは、メモリチップ210に信号DQを出力することを指示する。また、信号REおよびREnを受け取ったメモリチップ210は、信号REおよびREnに応じて出力される信号DQに同期するように、信号DQSおよびDQSnを生成する。信号DQに第4のデータ760を出力することを指示する場合、メモリインタフェース150は、信号REおよびREnによって指示される出力の数を、信号DQSおよびDQSnによって指示されるタイミングの数に対応する数とする。
メモリシステム1000の書き込み動作について説明する。図9は、メモリシステム1000の書き込み動作時の符号化を説明するタイミングチャートの一例である。図10は、メモリシステム1000の書き込み動作時の復号を説明するタイミングチャートの一例である。なお、図9と図10において、第1のデータ700のビット長は9ビット、第2のデータ720のビット長は10ビットの場合が示されている。
図9および図10において、9ビット長の第1のデータ700は、oriデータ0と表記され、10ビット長の第2のデータ720は、encデータ0と表記される。
図9の800に示すように、oriデータ0は、Data0_0、Data1_0、…、Data8_0の9ビット長のデータである。
図9と図10の820に示すように、encデータ0は、Data0’_0、Data1’_0、…、Data9’_0の10ビット長のデータである。
図9の810に示すように、第2のバッファメモリに格納されていた9ビット長のoriデータ0は、第1のトグルエンコーダ400_0により、10ビット長のencデータ0に符号化される。encデータ0は、信号DQ[0]によって送信される。
同様に、9ビット長の第1のデータ700であるoriデータ1は、第1のトグルエンコーダ400_1により、10ビット長の第2のデータ720であるencデータ1に符号化される。encデータ1は、信号DQ[1]によって送信される。
9ビット長の第1のデータ700であるoriデータ2は、第1のトグルエンコーダ400_2により、10ビット長の第2のデータ720であるencデータ2に符号化される。encデータ2は、信号DQ[2]によって送信される。
9ビット長の第1のデータ700であるoriデータ3は、第1のトグルエンコーダ400_3により、10ビット長の第2のデータ720であるencデータ3に符号化される。encデータ3は、信号DQ[3]によって送信される。
9ビット長の第1のデータ700であるoriデータ4は、第1のトグルエンコーダ400_4により、10ビット長の第2のデータ720であるencデータ4に符号化される。encデータ4は、信号DQ[4]によって送信される。
9ビット長の第1のデータ700であるoriデータ5は、第1のトグルエンコーダ400_5により、10ビット長の第2のデータ720であるencデータ5に符号化される。encデータ5は、信号DQ[5]によって送信される。
9ビット長の第1のデータ700であるoriデータ6は、第1のトグルエンコーダ400_6により、10ビット長の第2のデータ720であるencデータ6に符号化される。encデータ6は、信号DQ[6]によって送信される。
9ビット長の第1のデータ700であるoriデータ7は、第1のトグルエンコーダ400_7により、10ビット長の第2のデータ720であるencデータ7に符号化される。encデータ7は、信号DQ[7]によって送信される。
メモリコントローラ100は、信号DQとしてencデータ0〜encデータ7を出力すると共に、信号DQSおよびDQSnをメモリチップ210へと出力する。
メモリチップ210は、信号DQSおよびDQSnによって指示されるタイミングの数に同期してencデータ0〜encデータ7を取り込み、第1のトグルデコーダ420の第3のバッファメモリに格納する。
図10の830に示すように、第3のバッファメモリに格納されていた10ビット長のencデータ0は、第1のトグルデコーダ420_0により、9ビット長のoriデータ0に復号される。
同様に、10ビット長の第2のデータ720であるencデータ1は、第1のトグルデコーダ420_1により、9ビット長のoriデータ1に復号される。
10ビット長の第2のデータ720であるencデータ2は、第1のトグルデコーダ420_2により、9ビット長のoriデータ2に復号される。
10ビット長の第2のデータ720であるencデータ3は、第1のトグルデコーダ420_3により、9ビット長のoriデータ3に復号される。
10ビット長の第2のデータ720であるencデータ4は、第1のトグルデコーダ420_4により、9ビット長のoriデータ4に復号される。
10ビット長の第2のデータ720であるencデータ5は、第1のトグルデコーダ420_5により、9ビット長のoriデータ5に復号される。
10ビット長の第2のデータ720であるencデータ6は、第1のトグルデコーダ420_6により、9ビット長のoriデータ6に復号される。
10ビット長の第2のデータ720であるencデータ7は、第1のトグルデコーダ420_7により、9ビット長のoriデータ7に復号される。
復号されたoriデータ0〜oriデータ7は、周辺回路240により、メモリセルアレイ260に書き込まれる。
このようにして、メモリコントローラ100は、メモリチップ210にデータを書き込むことが可能となる。
次に、メモリシステム1000の読み出し動作について説明する。図11は、メモリシステム1000の読み出し動作時の符号化を説明するタイミングチャートの一例である。図12は、メモリシステム1000の読み出し動作時の復号を説明するタイミングチャートの一例である。なお、図11と図12において、第3のデータ740のビット長は9ビット、第4のデータ760のビット長は10ビットの場合が示されている。
図11および図12において、9ビット長の第3のデータ740は、oriデータ0と表記され、10ビット長の第4のデータ760は、encデータ0と表記される。
図11の900に示すように、oriデータ0は、Data0_0、Data1_0、…、Data8_0の9ビット長のデータである。
図11と図12の920に示すように、encデータ0は、Data0’_0、Data1’_0、…、Data9’_0の10ビット長のデータである。
まず、メモリコントローラ100は、oriデータ0をメモリセルアレイ260から読み出すことを指示する図示しないコマンドをメモリチップ210に出力する。メモリチップ210は、メモリコントローラ100から該コマンドを受信すると、メモリセルアレイ260内からoriデータ0を読み出す。メモリセルアレイ260から読み出されたoriデータ0は、第2のトグルエンコーダ440の第4のバッファメモリに格納される。
図示しないレディー/ビジー信号により、oriデータ0が第4のバッファメモリに格納されたことを認識したメモリコントローラ100は、信号REおよびREnを用いて、メモリチップ210から信号DQ[0]としてencデータ0を出力することを指示する。この時、メモリインタフェース150は、信号REおよびREnによって指示される数を、第4のビット長と対応する数、すなわち10とする。
図11の910に示すように、第4のバッファメモリに格納されていた9ビット長の第3のデータ740であるoriデータ0は、第2のトグルエンコーダ440_0により、10ビット長の第4のデータ760であるencデータ0に符号化される。encデータ0は、信号DQ[0]によって送信される。
同様に、9ビット長の第3のデータ740であるoriデータ1は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_1により、10ビット長の第4のデータ760であるencデータ1に符号化される。encデータ1は、信号DQ[1]によって送信される。
9ビット長の第3のデータ740であるoriデータ2は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_2により、10ビット長の第4のデータ760であるencデータ2に符号化される。encデータ2は、信号DQ[2]によって送信される。
9ビット長の第3のデータ740であるoriデータ3は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_3により、10ビット長の第4のデータ760であるencデータ3に符号化される。encデータ3は、信号DQ[3]によって送信される。
9ビット長の第3のデータ740であるoriデータ4は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_4により、10ビット長の第4のデータ760であるencデータ4に符号化される。encデータ4は、信号DQ[4]によって送信される。
9ビット長の第3のデータ740であるoriデータ5は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_5により、10ビット長の第4のデータ760であるencデータ5に符号化される。encデータ5は、信号DQ[5]によって送信される。
9ビット長の第3のデータ740であるoriデータ6は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_6により、10ビット長の第4のデータ760であるencデータ6に符号化される。encデータ6は、信号DQ[6]によって送信される。
9ビット長の第3のデータ740であるoriデータ7は、メモリセルアレイ260から読み出され、第2のトグルエンコーダ440_7により、10ビット長の第4のデータ760であるencデータ7に符号化される。encデータ7は、信号DQ[7]によって送信される。
メモリチップ210は、受け取った信号REおよびREnに応じて信号DQSおよびDQSnを生成する。生成された信号DQSおよびDQSnによって指示されるタイミングに同期してencデータ0〜encデータ7がメモリコントローラ100に取り込まれる。より具体的には、encデータ0〜encデータ7は、第2のトグルデコーダ460の第5のバッファメモリに格納される。
図12の930に示すように、第5のバッファメモリに格納されていた10ビット長の第4のデータ760であるencデータ0は、第2のトグルデコーダ460_0により、9ビット長の第3のデータ740であるoriデータ0に復号される。
同様に、10ビット長の第4のデータ760であるencデータ1は、第2のトグルデコーダ460_1により、9ビット長の第3のデータ740であるoriデータ1に復号される。
10ビット長の第4のデータ760であるencデータ2は、第2のトグルデコーダ460_2により、9ビット長の第3のデータ740であるoriデータ2に復号される。
10ビット長の第4のデータ760であるencデータ3は、第2のトグルデコーダ460_3により、9ビット長の第3のデータ740であるoriデータ3に復号される。
10ビット長の第4のデータ760であるencデータ4は、第2のトグルデコーダ460_4により、9ビット長の第3のデータ740であるoriデータ4に復号される。
10ビット長の第4のデータ760であるencデータ5は、第2のトグルデコーダ460_5により、9ビット長の第3のデータ740であるoriデータ5に復号される。
10ビット長の第4のデータ760であるencデータ6は、第2のトグルデコーダ460_6により、9ビット長の第3のデータ740であるoriデータ6に復号される。
10ビット長の第4のデータ760であるencデータ7は、第2のトグルデコーダ460_7により、9ビット長の第3のデータ740であるoriデータ7に復号される。
復号されたoriデータ0〜oriデータ7は、メモリインタフェース150により、第1のバッファメモリ140に格納される。
このようにして、メモリコントローラ100は、メモリチップ210からデータを読み出すことが可能となる。
第1の実施形態に係るメモリシステム1000においては、データのトグル回数が小さくなるようにデータを符号化した後、メモリコントローラ100と不揮発性メモリ200との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第1の実施形態に係るメモリシステム1000においては、符号化されたデータを取り込むべきタイミングを指示する同期信号が、符号化されたデータのビット長に応じて送信されるので、データのトグル回数を減らしてもデータの送受信を安定して行うことが可能である。
(第2の実施形態)
第2の実施形態に係るメモリシステム2000は、基本的に第1の実施形態に係るメモリシステム1000と同様に構成されているが、第1のトグルデコーダ420と第2のトグルエンコーダ440とを有していない点において異なっている。
図13は、第2の実施形態に係るメモリシステム2000のメモリコントローラ100およびメモリチップ210の構成例を示すブロック図である。
データの書き込み時において、第1のトグルエンコーダ400の第2のバッファメモリに格納されていた第1のデータ700は、第1のトグルエンコーダ400により、第2のデータ720に符号化される。その後、メモリインタフェース150により、第2のデータ720は、メモリバス300を介して、メモリチップ210へと送信される。メモリチップ210に送信された第2のデータ720は、メモリセルアレイ260に書き込まれる。
データの読み出し時において、メモリセルアレイ260から読み出された第4のデータ760は、メモリバス300を介して、メモリコントローラ100に送信される。なお、第4のデータ760は、第2のデータ720とビット長が同じでも異なっていてもよい。また、第4のデータ760は、第2のデータ720とトグル回数が同じでも異なっていてもよい。特に、第2のデータ720をメモリセルアレイ260に書き込み、第2のデータ720を第4のデータ760として正しく読み出せた場合は、第2のデータ720と第4のデータ760のビット長とトグル回数が同じである。
メモリコントローラ100に送信された第4のデータ760は、第2のトグルデコーダ460により、第3のデータ740に復号される。なお、第3のデータ740は、第1のデータ700とビット長が同じでも異なっていてもよい。また、第3のデータ740は、第1のデータ700とトグル回数が同じでも異なっていてもよい。特に、第2のデータ720をメモリセルアレイ260に書き込み、第2のデータ720を第4のデータ760として正しく読み出せた場合は、第1のデータ700と第3のデータ740のビット長とトグル回数が同じである。
第2の実施形態に係るメモリシステム2000においては、データのトグル回数が小さくなるようにデータを符号化した後、メモリコントローラ100と不揮発性メモリ200との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第2の実施形態に係るメモリシステム2000においては、第1のトグルデコーダ420と第2のトグルエンコーダ440とを有していない。そのため、従来例と比較してメモリチップ210の大きさを変更する必要が無いので、メモリチップ210のコストを抑えることが可能である。
(第3の実施形態)
第3の実施形態に係るメモリシステム3000は、基本的に第1の実施形態に係るメモリシステム1000と同様に構成されているが、インタフェース(I/F)チップ500を具備する点において異なっている。
図14は、第3の実施形態に係るメモリシステム3000のメモリコントローラ100、インタフェースチップ500およびメモリチップ210の構成例を示すブロック図である。
図14に示されるように、インタフェースチップ500は、第1のトグルデコーダ420と、第2のトグルエンコーダ440とを有する。本実施形態においては、インタフェースチップ500が、第1のトグルデコーダ420と、第2のトグルエンコーダ440とを有する場合について説明するが、第1のトグルデコーダ420と第2のトグルエンコーダ440のうち片方がインタフェースチップ500の外部、他方がインタフェースチップ500の内部に存在していてもよい。
データの書き込み時において、インタフェースチップ500は、メモリコントローラ100からメモリバス300Aを介して、符号化された第2のデータ720を受け取る。受け取った第2のデータ720は、第1のトグルデコーダ420にて、第1のデータ700に復号される。その後、インタフェースチップ500は、復号された第1のデータ700をメモリバス300Bを介してメモリチップ210に送信する。
メモリバス300Aは、メモリコントローラ100とインタフェースチップ500との間で、例えば、信号DQ、DQS、DQSn、REおよびREnを送受信する。メモリバス300Bは、インタフェースチップ500とメモリチップ210との間で、例えば、信号DQ、DQS、DQSn、REおよびREnを送受信する。
データの読み出し時において、インタフェースチップ500は、メモリセルアレイ260のセルトランジスタに格納されていた第3のデータ740を、メモリチップ210からメモリバス300Bを介して受け取る。受け取った第3のデータ740は、第2のトグルエンコーダ440にて、第4のデータ760に符号化される。
なお、第3のデータ740は、第1のデータ700とビット長が同じでも異なっていてもよい。また、第3のデータ740は、第1のデータ700とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第1のデータ700と第3のデータ740のビット長とトグル回数が同じである。
さらに、第4のデータ760は、第2のデータ720とビット長が同じでも異なっていてもよい。また、第4のデータ760は、第2のデータ720とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第2のデータ720と第4のデータ760のビット長とトグル回数が同じである。
インタフェースチップ500は、符号化された第4のデータ760をメモリバス300Aを介してメモリコントローラ100に送信する。
図15‐Aは、第3の実施形態に係るメモリシステム3000のメモリコントローラ100、インタフェースチップ500およびメモリチップ210が同一のパッケージ1100に実装される構成例を示すブロック図である。
図15‐Bは、第3の実施形態に係るメモリシステム3000のインタフェースチップ500が、メモリコントローラ100が実装された第1パッケージ1100Aとは独立した別の第2パッケージ1100Bに、メモリチップ210とともに実装される構成例を示すブロック図である。
図15‐Cは、第3の実施形態に係るメモリシステム3000のメモリコントローラ100、インタフェースチップ500およびメモリチップ210がいずれも別のパッケージ1100に実装される構成例を示すブロック図である。
図15‐A〜図15‐Cに示すように、インタフェースチップ500は、メモリチップ210と同一のパッケージにあってもよく、違うパッケージにあってもよい。また、インタフェースチップ500は、メモリチップ210と同一のチップに実装されてもよい。この場合、インタフェースチップ500とメモリチップ210は、同一のプロセスを用いて製造されていてもよく、異なるプロセスを用いて製造されていてもよい。また、インタフェースチップ500とメモリチップ210は、半導体基板に対して水平方向に並んでいてもよく、垂直方向に並んでいてもよい。なお、複数のメモリチップ210が一つのパッケージに実装されていてもよい。
図16‐Aは、第3の実施形態に係るメモリシステム3000のメモリコントローラパッケージ100A、インタフェースパッケージ500Aおよびメモリパッケージ210Aが同一のプリント基板1200に実装される構成例を示すブロック図である。
図16‐Bは、第3の実施形態に係るメモリシステム3000のインタフェースパッケージ500Aが、メモリコントローラパッケージ100Aが実装された第1プリント基板1200Aとは独立した別の第2プリント基板1200Bに、メモリパッケージ210Aとともに実装される構成例を示すブロック図である。
メモリコントローラパッケージ100Aは、メモリコントローラ100が設けられたパッケージである。メモリパッケージ210Aは、メモリチップ210が設けられたパッケージである。インタフェースパッケージ500Aは、インタフェースチップ500が設けられたパッケージである。
図16‐A〜図16‐Bに示すように、インタフェースパッケージ500Aは、メモリパッケージ210Aと同一のパッケージに実装されてもよく、違うパッケージに実装されてもよい。
第3の実施形態に係るメモリシステム3000においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ100とインタフェースチップ500との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
さらに、第3の実施形態に係るメモリシステム3000においては、メモリチップ210は第1のトグルデコーダ420と第2のトグルエンコーダ440とを有していない。そのため、従来例と比較してメモリチップ210の大きさを変更する必要が無いので、メモリチップ210のコストを抑えることが可能である。
(第4の実施形態)
第4の実施形態に係るメモリシステム4000は、基本的に第1の実施形態に係るメモリシステム1000と同様に構成されているが、メモリコントローラ100が、ランダマイザ600を有している点において異なっている。
図17は、第4の実施形態に係るメモリシステム4000のランダマイザ600を有するメモリコントローラ100およびメモリチップ210の構成例を示すブロック図である。
第1のバッファメモリ140から受け取った書き込みデータ等は、メモリインタフェース150により、ランダマイザ600へ送信される。ランダマイザ600は、第1のビット長を有する第5のデータをランダマイズし、第1のデータ700を生成する。ランダマイズ後の第1のデータ700は、第1のトグルエンコーダ400により、第2のデータ720に符号化される。その後、第2のデータ720は、不揮発性メモリ200へ送信される。
また、メモリセルアレイ260から受け取った第3のデータ740は、周辺回路240により、第2のトグルエンコーダ440へ送信される。第3のデータ740は、第2のトグルエンコーダ440により第4のデータ760に符号化される。第4のデータ760はメモリコントローラ100へ送信される。第4のデータ760は、第2のトグルデコーダ460により、第3のデータ740に復号される。その後、第3のデータ740は、ランダマイザ600へ送信される。ランダマイザ600は、第3のデータ740のランダマイズを解除し、第1のビット長を有する第5のデータを生成する。
なお、第3のデータ740は、第1のデータ700とビット長が同じでも異なっていてもよい。また、第3のデータ740は、第1のデータ700とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第1のデータ700と第3のデータ740のビット長とトグル回数が同じである。
さらに、第4のデータ760は、第2のデータ720とビット長が同じでも異なっていてもよい。また、第4のデータ760は、第2のデータ720とトグル回数が同じでも異なっていてもよい。特に、第1のデータ700をメモリセルアレイ260に書き込み、第1のデータ700を第3のデータ740として正しく読み出せた場合は、第2のデータ720と第4のデータ760のビット長とトグル回数が同じである。
第4の実施形態に係るメモリシステム4000においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ100と不揮発性メモリ200との間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
また、本実施形態においては、第1のデータ群に含まれている各第1のデータ700が均等に出現すると期待される。従って、本実施形態においては、図5‐A〜図5‐Hを用いて説明したように、第2のデータ群に含まれる第2のデータ720それぞれのトグル回数の平均が、第1のデータ群に含まれる第1のデータ700それぞれのトグル回数の平均よりも少なくなるように変換を行うことにより、第1のデータ群に含まれる全部の第1のデータのトグル回数を必ずしも減らさなくても、データ送信に伴う消費電力を低減することが可能である。
一方で、第1のデータ群に含まれている各第1のデータ700が均等に出現しない場合は、各第1のデータ700のそれぞれのトグル回数に対して出現頻度で重みづけを行い、それらの総和で比較することで、トグル回数が少なくなっていればよい。例えば、データ「010010000」が他のデータよりも多く出現する場合には、データ「010010000」を符号化したときに、出現頻度の少ない他のデータよりもトグル回数が少なくなるように符号化する。
(第5の実施形態)
第5の実施形態に係るメモリシステム5000は、基本的に第1の実施形態に係るメモリシステム1000と同様に構成されているが、不揮発性メモリ200が、ランダマイザ600を有している点において異なっている。ランダマイザ600は、読み出しデータの信頼性を向上させるために、書き込み対象のデータをランダマイズする。
図18は、第5の実施形態に係るメモリシステム5000のメモリコントローラ100およびランダマイザ600を有するメモリチップ210の構成例を示すブロック図である。
データの書き込み時において、第1のトグルエンコーダ400の第2のバッファメモリに格納されていた第1のデータ700は、第1のトグルエンコーダ400により第2のデータ720に符号化される。その後、メモリインタフェース150により、第2のデータ720は、メモリバス300を介して、メモリチップ210へと送信される。
メモリチップ210に送信された第2のデータ720はランダマイザ600にて、第2のビット長を有する第5のデータにランダマイズされる。ランダマイズされた第5のデータはメモリセルアレイ260に書き込まれる。
データの読み出し時において、メモリセルアレイ260から読み出された第6のデータは、ランダマイザ600にて、ランダマイズ解除され、第4のビット長を有し、第4のトグル回数を有する第4のデータとなる。ランダマイズ解除された第4のデータは、メモリバス300を介して、メモリコントローラ100に送信される。メモリコントローラ100に送信された第4のデータは、第2のトグルデコーダ460により、第4のビット長よりも短い第3のビット長と、第4のトグル回数よりも多い第3のトグル回数とを有する第3のデータに復号される。
なお、第4のデータ760は、第2のデータ720とビット長が同じでも異なっていてもよい。また、第4のデータ760は、第2のデータ720とトグル回数が同じでも異なっていてもよい。特に、第5のデータをメモリセルアレイ260に書き込み、第5のデータを第6のデータとして正しく読み出せた場合は、第2のデータ720と第4のデータ760のビット長とトグル回数が同じである。
また、第3のデータ740は、第1のデータ700とビット長が同じでも異なっていてもよい。また、第3のデータ740は、第1のデータ700とトグル回数が同じでも異なっていてもよい。特に、第5のデータをメモリセルアレイ260に書き込み、第5のデータを第6のデータとして正しく読み出せた場合は、第1のデータ700と第3のデータ740のビット長とトグル回数が同じである。
さらに、第6のデータは、第5のデータとビット長が同じでも異なっていてもよい。また、第6のデータは、第5のデータとトグル回数が同じでも異なっていてもよい。特に、第5のデータをメモリセルアレイ260に書き込み、第5のデータを第6のデータとして正しく読み出せた場合は、第5のデータと第6のデータのビット長とトグル回数が同じである。
第5の実施形態に係るメモリシステム5000においては、データのトグル回数が小さくなるように符号化した後、メモリコントローラ100と不揮発性メモリ200との間でデータ送信を行っているため、データ送信に伴う消費電力を抑制することが可能である。また、不揮発性メモリ200が、ランダマイザ600を有しているので、メモリシステム5000の信頼性を維持することが可能である。
以上説明した少なくとも一つの実施形態に係るメモリシステムにおいては、データのトグル回数が小さくなるように符号化した後、メモリコントローラと不揮発性メモリとの間でデータ送信を行っているため、データ送信に伴う消費電力を低減することが可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 メモリコントローラ
200 不揮発性メモリ
210 メモリチップ
260 メモリセルアレイ
300 メモリバス
320 通信インタフェース
400 第1のトグルエンコーダ
420 第1のトグルデコーダ
440 第2のトグルエンコーダ
460 第2のトグルデコーダ
500 インタフェースチップ
600 ランダマイザ
700 第1のデータ
720 第2のデータ
740 第3のデータ
760 第4のデータ
1000 メモリシステム
1500 ホスト装置

Claims (20)

  1. 不揮発性メモリと、
    第1のビット長と第1のトグル回数とを有する第1のデータを、前記第1のビット長よりも長い第2のビット長と前記第1のトグル回数より少ない第2のトグル回数とを有する第2のデータに符号化する第1のトグルエンコーダを有し、
    前記第2のデータを前記不揮発性メモリに送信するコントローラと、を具備する、
    メモリシステム。
  2. 前記コントローラは、前記不揮発性メモリに前記第2のデータを取り込むタイミングを指示する第1の同期信号を、前記不揮発性メモリへと送信する請求項1に記載のメモリシステム。
  3. 前記第1の同期信号が送信される回数は、前記第2のビット長と対応する請求項2に記載のメモリシステム。
  4. 前記第2のデータを前記第1のデータに復号する第1のトグルデコーダをさらに具備する請求項1に記載のメモリシステム。
  5. 前記不揮発性メモリは、前記第1のトグルデコーダを有する請求項4に記載のメモリシステム。
  6. 前記第1のトグルデコーダを有するインタフェースチップをさらに具備する請求項4に記載のメモリシステム。
  7. 第3のビット長と第3のトグル回数を有する第3のデータを、前記第3のビット長よりも長い第4のビット長と前記第3のトグル回数より少ない第4のトグル回数とを有する第4のデータに符号化する第2のトグルエンコーダを、さらに具備する請求項1に記載のメモリシステム。
  8. 前記第2のトグルエンコーダを有するインタフェースチップをさらに具備する請求項7に記載のメモリシステム。
  9. 前記不揮発性メモリは、前記コントローラに前記第4のデータを取り込むタイミングを指示する第2の同期信号を、前記コントローラへと送信する請求項7に記載のメモリシステム。
  10. 前記第2の同期信号が送信される回数は、前記第4のビット長と対応する請求項9に記載のメモリシステム。
  11. 前記コントローラは、前記第4のデータを出力することを前記不揮発性メモリに指示する指示信号を、前記不揮発性メモリへと送信する請求項7に記載のメモリシステム。
  12. 前記指示信号が送信される回数は、前記第4のビット長と対応する請求項11に記載のメモリシステム。
  13. 前記不揮発性メモリは、前記コントローラに前記第4のデータを取り込むタイミングを指示する第2の同期信号を、前記指示信号に応じて生成する請求項11に記載のメモリシステム。
  14. 前記コントローラは、前記第4のデータを前記第3のデータに復号する第2のトグルデコーダを有する請求項7に記載のメモリシステム。
  15. 前記第2のデータをランダマイズして前記第2のビット長を有する第5のデータを生成するランダマイザをさらに具備する請求項1に記載のメモリシステム。
  16. 前記不揮発性メモリは、メモリセルアレイと前記ランダマイザを有し、前記第5のデータを前記メモリセルアレイに書き込む請求項15に記載のメモリシステム。
  17. 不揮発性メモリと、
    第1のビット長を有し、かつ、第1の平均トグル回数を有する第1のデータ群に属する第1のデータを、前記第1のビット長よりも長い第2のビット長を有し、かつ、前記第1の平均トグル回数より少ない第2の平均トグル回数を有する第2のデータ群に属する第2のデータに符号化する第1のトグルエンコーダを有し、
    前記第2のデータを前記不揮発性メモリに送信するコントローラと、を具備する、
    メモリシステム。
  18. コントローラと、
    メモリセルアレイから読み出された第1のビット長と第1のトグル回数とを有する第1のデータを、前記第1のビット長よりも長い第2のビット長と前記第1のトグル回数より少ない第2のトグル回数とを有する第2のデータに符号化する第1のトグルエンコーダを有し、
    前記第2のデータを前記コントローラに送信する不揮発性メモリと、を具備する、
    メモリシステム。
  19. 前記不揮発性メモリは、前記コントローラに前記第2のデータを取り込むタイミングを指示する前記第2のビット長と対応する数の第1の同期信号を、前記コントローラへと送信する請求項18に記載のメモリシステム。
  20. 前記コントローラは、前記第2のデータを出力することを前記不揮発性メモリに指示する前記第2のビット長と対応する数の指示信号を、前記不揮発性メモリに送信し、
    前記不揮発性メモリは、前記指示信号に応じて前記第1の同期信号を生成する、
    請求項19に記載のメモリシステム。
JP2019104682A 2019-06-04 2019-06-04 メモリシステム Pending JP2020198577A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019104682A JP2020198577A (ja) 2019-06-04 2019-06-04 メモリシステム
US16/774,609 US11194656B2 (en) 2019-06-04 2020-01-28 Memory system
CN202010156015.2A CN112037836B (zh) 2019-06-04 2020-03-09 存储器系统
US17/519,356 US11740965B2 (en) 2019-06-04 2021-11-04 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019104682A JP2020198577A (ja) 2019-06-04 2019-06-04 メモリシステム

Publications (1)

Publication Number Publication Date
JP2020198577A true JP2020198577A (ja) 2020-12-10

Family

ID=73578819

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019104682A Pending JP2020198577A (ja) 2019-06-04 2019-06-04 メモリシステム

Country Status (3)

Country Link
US (2) US11194656B2 (ja)
JP (1) JP2020198577A (ja)
CN (1) CN112037836B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020198577A (ja) * 2019-06-04 2020-12-10 キオクシア株式会社 メモリシステム
JP2023023980A (ja) * 2021-08-06 2023-02-16 キオクシア株式会社 メモリシステム
JP2023100085A (ja) * 2022-01-05 2023-07-18 キオクシア株式会社 メモリシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029264A (en) * 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
US6920576B2 (en) * 2001-05-31 2005-07-19 Koninklijke Philips Electronics N.V. Parallel data communication having multiple sync codes
US7299985B2 (en) * 2004-08-31 2007-11-27 Symbol Technologies, Inc. Transmitting enhanced scanner signals on a single channel
US7746710B2 (en) * 2008-01-10 2010-06-29 Micron Technology, Inc. Data bus power-reduced semiconductor storage apparatus
CN102789424B (zh) * 2012-07-16 2014-12-10 哈尔滨工业大学 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器
JP5609930B2 (ja) * 2012-07-31 2014-10-22 株式会社デンソー トランシーバ
US9013921B2 (en) 2012-12-06 2015-04-21 Samsung Electronics Co., Ltd. Semiconductor memory device
JP2014137834A (ja) 2013-01-17 2014-07-28 Samsung R&D Institute Japan Co Ltd 半導体記憶装置
US9071239B2 (en) * 2013-03-13 2015-06-30 Qualcomm Incorporated Method and semiconductor apparatus for reducing power when transmitting data between devices in the semiconductor apparatus
KR102292217B1 (ko) * 2015-02-06 2021-08-24 삼성전자주식회사 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템
KR102305095B1 (ko) * 2015-04-13 2021-09-24 삼성전자주식회사 비휘발성 메모리 컨트롤러의 동작 방법
US9780809B2 (en) 2015-04-30 2017-10-03 Sandisk Technologies Llc Tracking and use of tracked bit values for encoding and decoding data in unreliable memory
KR102563888B1 (ko) * 2016-09-30 2023-08-09 한국전기연구원 네트워크 환경에서 데이터 프레임 중복 제거 방법, 그 방법을 수행하는 장치 및 컴퓨터 프로그램
US10552066B2 (en) * 2017-08-31 2020-02-04 Micron Technology, Inc. Systems and methods for data path power savings in DDR5 memory devices
KR102475279B1 (ko) * 2017-12-18 2022-12-07 삼성전자주식회사 컨볼루션 타입의 저밀도 패리티 체크 코드를 이용하여 인코딩 및 디코딩을 수행하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP2020198577A (ja) * 2019-06-04 2020-12-10 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
US11740965B2 (en) 2023-08-29
US20200387425A1 (en) 2020-12-10
CN112037836B (zh) 2024-01-02
US20220058085A1 (en) 2022-02-24
US11194656B2 (en) 2021-12-07
CN112037836A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN108304141B (zh) 存储器系统及其操作方法
TWI692762B (zh) 快閃記憶體控制器、快閃記憶體模組以及電子裝置
CN108694096B (zh) 控制器、存储系统及其操作方法
KR101990971B1 (ko) 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US9032269B2 (en) Systems and methods of storing data
US11740965B2 (en) Memory system
CN107408069B (zh) 用于检测和缓解闪速存储器中的位线开路的装置和方法
US20140331101A1 (en) Semiconductor memory devices, memory systems including the same and method of writing data in the same
CN108389602B (zh) 存储器系统及其操作方法
CN108694970B (zh) 控制器及其操作方法
US10671523B2 (en) Memory system
US11003544B2 (en) Memory system and method of operating the same
US10261860B2 (en) Semiconductor systems
CN107436730B (zh) 数据处理系统及其操作方法
US10552277B2 (en) Electronic devices
CN108108122B (zh) 控制器和存储器系统及其操作方法
US10439642B2 (en) Error correction method of data storage device
US11847050B2 (en) Nonvolatile memory, memory system, and control method of nonvolatile memory
US10379786B2 (en) Semiconductor devices
US20230214136A1 (en) Memory system
TWI537971B (zh) Storage device and access method thereof
CN110174996B (zh) 存储器系统及该存储器系统的操作方法
CN108874681B (zh) 存储器系统及其操作方法
US11372719B1 (en) Memory system
CN108694963B (zh) 数据转换设备及方法