JP2014086127A - 不揮発性メモリ及びコントローラを含むメモリシステム、そして不揮発性メモリにデータをプログラムするプログラム方法 - Google Patents
不揮発性メモリ及びコントローラを含むメモリシステム、そして不揮発性メモリにデータをプログラムするプログラム方法 Download PDFInfo
- Publication number
- JP2014086127A JP2014086127A JP2013220131A JP2013220131A JP2014086127A JP 2014086127 A JP2014086127 A JP 2014086127A JP 2013220131 A JP2013220131 A JP 2013220131A JP 2013220131 A JP2013220131 A JP 2013220131A JP 2014086127 A JP2014086127 A JP 2014086127A
- Authority
- JP
- Japan
- Prior art keywords
- data
- encoding
- program
- memory
- candidate
- 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.)
- Granted
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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1659—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
- G11C2013/0076—Write operation performed depending on read result
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
【解決手段】本発明のプログラム方法は、プログラムデータを受信する段階と、メモリセルに格納されたデータを読み出す段階と、プログラムデータ及び読み出されたデータに基づいて、複数のエンコーディングスキームのうちで選択された少なくとも一つのエンコーディングスキームを用いてプログラムデータをエンコーディングし、エンコーディング情報を含むフラグデータを生成する段階と、エンコーディングされたデータ及びフラグデータをメモリセルにプログラムする段階で構成される。
【選択図】 図14
Description
実施形態として、前記複数のエンコーディングスキームの各々のエンコーディング結果を予測する段階は、前記読み出されたデータとプログラムデータとの間の同一のビット及び変換ビットを各々カウントする段階を含む。
実施形態として、前記複数のエンコーディングスキームは、前記プログラムデータを循環シフトして候補データを生成する循環シフトエンコーディングスキームを含み、前記フラグデータは、前記エンコーディングされたデータが、前記プログラムデータから循環シフトされたビット数に対する情報を含む。
実施形態として、前記プログラムデータは、複数のサブデータに分割され、前記複数のサブデータの各々について、前記少なくとも一つのエンコーディングスキームが選択される。
実施形態として、前記データエンコーディング部は、前記プログラムデータを循環シフトエンコーディングして候補データを生成し、前記プログラムデータ及び候補データのうち、前記読み出されたデータと最短距離を有するデータを前記エンコーディングされたデータとして選択するようにさらに構成される。
実施形態として、前記メモリは、磁気RAM(Magnetic Random Access Memory)又は相変化メモリ(Phasechange Random Access Memory)を含む。
図1は、本発明の第1実施形態に係るメモリシステム1000を示すブロック図である。図1を参照すると、メモリシステム1000は不揮発性メモリ1100とコントローラ1200とを含んでいる。
データエンコーディング及びデコーディング部1260は、プログラム時の消費電力を節減するようにデータをエンコーディングすることができる。例えば、データエンコーディング及びデコーディング部1260は、プログラムの時にメモリセルに格納されるデータとメモリセルに格納されたデータとの差が最小化するようにデータをエンコーディングすることができる。データエンコーディング及びデコーディング部1260の動作は、以下の図面を参照してより詳細に説明する。
メモリシステム1000は、SSD(Solid State Drive)として形成することができる。メモリシステム1000は、コンピュータシステムのメインメモリとして形成することができる。
メモリセルアレイ1110は、複数のメモリセルを含んでいる。複数のメモリセルは、複数の不揮発性メモリセルとすることができる。複数のメモリセルは、ワードラインWLを介して行デコーダ1120に接続し、ビットラインBLを介して列デコーダ1130に接続している。例示的に、メモリセルアレイ1110の複数のメモリセルの行はワードラインWLに接続し、複数のメモリセルの列はビットラインBLに接続することができる。
例示的に、不揮発性メモリ1100のプログラムは、読み出し、及び消去スキームによって、ダイオードの位置と方向は変更可能である。
例示的に、不揮発性メモリ1100のプログラム、読み出し、消去スキームによって、トランジスタの位置や接続関係は変更可能である。ソースラインSL1〜SLnは、行デコーダ1120または列デコーダ1130に接続することができる。
バス1210は、コントローラ1200の構成要素の間のチャネルを提供するよう構成される。
プロセッサ1220は、コントローラ1200の構成要素を制御するように構成される。
ランダムアクセスメモリ1230は、プロセッサ1220またはコントローラ1200の動作メモリとして使用することができる。ランダムアクセスメモリ1230は、DRAM、SRAM、FRAM、MRAM、PRAM、RRAMなどを含むことができる。
メモリインターフェース1250は不揮発性メモリ1100と通信するように構成される。
例示的に、データエンコーディング及びデコーディング部1260は、プロセッサ1220と分離した別途の構成要素として示されている。しかし、データエンコーディング及びデコーディング部1260は、プロセッサ1220の構成要素として実現することができる。データエンコーディング及びデコーディング部1260は、プロセッサ1220で駆動されるソフトウェアとして実現することができる。本発明の技術的思想から逸脱せず、データエンコーディング及びデコーディング部1260は、コントローラ1200内で様々な形態で実現可能である。
エンコーディングされたデータが選択されれば、データエンコーディング及びデコーディング部1260はエンコーディング情報を含むフラグデータを生成することができる。フラグデータは、候補データ及びプログラムデータのうちのいずれかデータがエンコーディングされたデータとして選択されたかに対する情報を含むことができる。フラグデータは、ランダムアクセスメモリ1230に格納することができる。
S220段階において、読み出されたデータを候補データと比較する。例えば、読み出されたデータと候補データとの間の距離を比較することができる。距離は読み出されたデータと、読み出されたデータと比較されるデータとの間で互いに異なる値を有するビットの数であり得る。
最大ループに到達しない場合、S260段階で、以前の候補データを1ビットシフトして、新しい候補データを生成する。その後、S220段階が再び実行される。
最大ループに到達した場合は、S270段階で、読み出されたデータと最短距離を有するデータがエンコーディングされたデータとして選択される。
S270段階において、プログラムデータと読み出されたデータとの間の距離を基準値と比較する。プログラムデータと読み出されたデータとの間の距離が基準値より大きくなければ、S280段階において、プログラムデータがエンコーディングされたデータとして選択される。プログラムデータと読み出されたデータとの間の距離が基準値より大きければ、S290段階において、図6Aを参照して説明したエンコーディング方法が実行される。
すなわち、図6Aのエンコーディング方法は、プログラムデータと読み出されたデータとの間の距離が基準値より大きい場合に実行することができる。
第2または第3候補データと読み出されたデータとの間の距離は、プログラムデータと読み出されたデータとの間の距離より小さい。プログラムデータが不揮発性メモリ1100にプログラムされる時、6ビットが変わるようになる。すなわち、6つのメモリセルのデータを変換することができる。一方、第2または第3候補データが不揮発性メモリ1100にプログラムされる時、4ビットが変わるようになる。すなわち、4つのメモリセルのデータを変換することができる。
図1、図7C及び図7Dを参照すると、循環シフトエンコーディングが実行されるプログラムデータの長さ(N)に応じて、プログラムデータがプログラムされる時と、エンコーディングされたデータがプログラムされる時に変更されるビットの数を各々示している。
図7Cと図7Dに示すように、プログラムデータが不揮発性メモリ1100にプログラムされる時よりエンコーディングされたデータがプログラムされる時に、変換するビットの数が減少する。したがって、本発明の実施形態に係るエンコーディング方法(またはプログラム方法)が適用されれば、メモリシステム1000の消費電力が減少するようになる。
S330段階において、選択されたビットが前のビットと同一であるか否かが判別される。例えば、プログラムデータの選択されたビットが、プログラムデータの前のビットと同じビットであるか否かが判別される。プログラムデータの選択されたビットが‘1’であり、プログラムデータの前のビットが‘1’あれば、同じビットとして判別される。プログラムデータの選択されたビットが‘0’であり、プログラムデータの前のビットが‘0’であれば、同じビットとして判別される。プログラムデータの選択されたビットが‘1’であり、プログラムデータの前のビットが‘0’であれば、同一ではないビットとして判別される。プログラムデータの選択されたビットが‘0’であり、プログラムデータの前のビットが‘1’であれば、同一ではないビットとして判別される。
例示的に、選択されたビットが同じビットとして判断されれば、候補データのビットがロジックハイ(例えば、‘1’)に生成され、選択されたビットが同一ではないビットとして判断されれば、候補データのビットがロジックロー(例は、‘0’)として選択される。
選択されたビットが最後のビットであれば、S360段階〜S380段階において、エンコーディングされたデータが選択され、フラグデータが生成される。S360段階〜S380の段階は、図6のS230段階〜S250段階と同じ方法で実行される。したがって、S360段階〜S380段階の詳細な説明は省略する。
プログラムデータと読み出されたデータとの間の距離は6である。候補データと読み出したデータとの間の距離は1である。したがって、候補データが選択され、フラグデータが‘1’に生成される。
S430段階〜S450段階において、エンコーディングされたデータが選択され、フラグデータが生成する。S430段階〜S450の段階は、図6のS230段階〜S250段階と同様の方法で実行される。したがって、S430段階〜S450段階の詳細な説明は省略する。
プログラムデータと読み出されたデータとの間の距離は6である。候補データと読み出されたデータとの間の距離は4である。したがって、候補データがエンコーディングされたデータとして選択され、フラグデータが‘1’に生成される。
例示的に、予め設定されたデータは、複数のデータセットのうちで選択することができる。このとき、フラグデータは複数のデータセットのうち、いずれのデータが予め設定されたデータとして選択されたかに対する情報をさらに含むことができる。
S520段階〜S540段階において、エンコーディングされたデータが選択され、フラグデータが生成される。S520段階〜S540の段階は、図6のS230段階〜S250段階と同じ方法で実行される。したがって、S520段階〜S540段階の詳細な説明は省略する。
プログラムデータと読み出されたデータとの間の距離は6である。候補データと読み出されたデータとの間の距離は2である。したがって、候補データがエンコーディングされたデータとして選択され、フラグデータが‘1’に生成される。
プログラムデータの1番目の部分が反転して第1候補データを生成することができる。プログラムデータの2番目の部分が反転して第2候補データを生成することができる。プログラムデータの1番目と2番目の部分が反転して第3候補データを生成することができる。
プログラムデータと読み出されたデータとの間の距離は6である。第1候補データと読み出されたデータとの間の距離は6である。第2候補データと読み出されたデータとの間の距離は2である。第3候補データと読み出されたデータとの間の距離は2である。したがって、第2及び第3候補データのうちの一つがエンコーディングされたデータとして選択され、フラグデータは、‘10’又は‘11’に生成することができる。
S630段階において、複数のエンコーディングスキームのうちの一つのエンコーディングスキームが選択され、選択されたエンコーディングスキームを用いて、プログラムデータがエンコーディングされ、エンコーディング情報を含むフラグデータが生成される。
例示的に、複数のエンコーディングスキームは、データエンコーディング及びデコーディング部1260に格納され、エンコーディングスキームの選択は、データエンコーディング及びデコーディング部1260によって行うことができる。
S730段階において、選択されたエンコーディングスキームを用いて、プログラムデータがエンコーディングされる。
S740段階において、選択情報及びエンコーディング情報を含むフラグデータが生成される。選択情報は、複数のエンコーディングスキームのうちのいずれのエンコーディングスキームが選択されたかに対する情報を含むことができる。
閾値は、コントローラ1200に予め格納された値であり得る。閾値は、コントローラ1200のモードレジスタを通じて設定される値であり得る。閾値は、プログラムデータの全体の長さの半分として設定することができる。
S721段階〜S725段階は、予測の結果によってエンコーディングスキームを選択する動作(図15のS720段階)に対応することができる。
S840段階において、エンコーディングされたデータと読み出されたデータとの間の距離が閾値より小さいか否かが判別される。エンコーディングされたデータと読み出されたデータとの間の距離が閾値より大きい場合は、S850段階において、複数のエンコーディングスキームのうち、次のエンコーディングスキームが選択される。例えば、選択されたエンコーディングスキームの次に近い距離を有する候補データを生成すると予測されるエンコーディングスキームを選択することができる。その後、S830の段階が再び実行される。
すなわち、予測の結果によってエンコーディングスキームが選択されても、選択されたエンコーディングスキームのエンコーディング結果が特定の条件(例えば、閾値)を満足しなければ、他のエンコーディングスキームを選択することができる。
例示的に、閾値は、プログラムのデータと読み出されたデータとの間の距離に対する割合として設定することができる。閾値は、プログラムデータの全体のビットの数に対する割合として設定することができる。
S920段階において、選択されたエンコーディングスキームを用いて、プログラムデータをエンコーディングして、候補データが生成される。
S930段階において、選択されたエンコーディングスキームが最後のエンコーディングスキームであるか否かが判断される。選択されたエンコーディングスキームが最後のエンコーディングスキームでなければ、S960段階において、複数のエンコーディングスキームのうち、次のエンコーディングスキームが選択され、S920の段階が再び実行される。選択されたエンコーディングスキームが最後のエンコーディングスキームであれば、S970段階が実行される。
S980段階において、選択情報及びエンコーディング情報を含むフラグデータが生成される。
すなわち、複数のエンコーディングスキームを利用してプログラムデータが順にエンコーディングされ、エンコーディング結果のうち最短距離を有するデータがエンコーディングされたデータとして選択される。
S1030段階において、複数のエンコーディングスキームのうち二つ以上のエンコーディングスキームが選択され、選択されたエンコーディングスキームを用いて、プログラムデータがエンコーディングされ、そしてエンコーディング情報及び選択情報を含むフラグデータが生成される。
S1040段階において、エンコーディングされたデータ及びフラグデータが不揮発性メモリ1100にプログラムされる。
プログラムデータが分割されてエンコーディングされれば、エンコーディングされたデータと読み出されたデータとの間の距離を減少させることができる。
不揮発性メモリ2100は、複数の不揮発性メモリチップを含んでいる。複数の不揮発性メモリチップは、複数のグループに分割される。複数の不揮発性メモリチップの各グループは一つの共通チャネルを通じてコントローラ2200と通信するように構成される。例示的に、複数の不揮発性メモリチップは、第1から第kチャンネルCH1〜CHkを通じてコントローラ2200と通信することを示している。
コントローラ2200は、データエンコーディング及びデコーディング部2260を含んでいる。データエンコーディング及びデコーディング部2260は、図5〜図20を参照して説明したエンコーディング及びフラグデータの生成を行うことができる。
バス3100は、コンピューティングシステム3000の構成要素の間にチャンネルを提供する。
プロセッサ3200は、コンピューティングシステム3000のすべての動作を制御し、論理演算を実行することができる。
モデム3400は、外部と有線または無線通信を行うことができる。
コンピューティングシステム3000は、スマートフォン、スマートパッドなどのようなモバイルマルチメディア装置、又はスマートテレビ、スマートモニタ、コンピュータ、ノートパソコンなどのようなマルチメディア装置を形成することができる。
1100、2100・・・不揮発性メモリ
1200、2200・・・コントローラ
1210、3100・・・バス
1220、3200・・・プロセッサ
1230・・・ランダムアクセスメモリ
1240・・・ホストインターフェース
1250・・・メモリインターフェース
1260、2260・・・データエンコーディング及びデコーディング部
3000・・・コンピューティングシステム
3300・・・メモリシステム
3400・・・モデム
3500・・・ユーザインターフェース
Claims (23)
- メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルに格納されたデータを読み出す段階と、
前記プログラムデータ及び前記読み出されたデータに基づいて、複数のエンコーディングスキームのうちで選択された少なくとも一つのエンコーディングスキームを用いて、前記プログラムデータをエンコーディングし、エンコーディング情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。 - 前記選択された少なくとも一つのエンコーディングスキームを用いて、前記プログラムデータをエンコーディングし、エンコーディング情報を含むフラグデータを生成する段階は、
前記複数のエンコーディングスキームの各々のエンコーディング結果を予測する段階と、
前記予測の結果によって前記複数のエンコーディングスキームのうちの少なくとも一つのエンコーディングスキームを選択する段階とを含むことを特徴とする請求項1に記載のプログラム方法。 - 前記複数のエンコーディングスキームの各々のエンコーディング結果を予測する段階は、
前記読み出されたデータとプログラムデータとの間の同じビット及び変換ビットを各々カウントする段階を含むことを特徴とする請求項2に記載のプログラム方法。 - 前記複数のエンコーディングスキームは、循環シフトエンコーディングスキームと反転エンコーディングスキームとを含み、
前記予測の結果によって、少なくとも一つのエンコーディングスキームを選択する段階と、前記プログラムデータをエンコーディングする段階とは、
前記変換ビット数と同じビット数の差が閾値より小さい場合、前記循環シフトエンコーディングスキームを選択して、プログラムデータをシフトし、前記差が前記閾値以上の場合、前記反転エンコーディングスキームを選択して、前記プログラムデータを反転させる段階を含むことを特徴とする請求項3に記載のプログラム方法。 - 前記エンコーディングされたデータと前記読み出されたデータとの間の距離が閾値より小さい場合、前記エンコーディング情報を含むフラグデータを生成し、前記エンコーディングされたデータと前記読み出されたデータとの間の距離が前記閾値以上である場合、前記予測の結果によって前記複数のエンコーディングスキームのうち、他のエンコーディングスキームを選択し、前記選択された他のエンコーディングスキームを用いて前記プログラムデータをエンコーディングし、前記フラグデータを生成する段階をさらに含むことを特徴とする請求項2に記載のプログラム方法。
- 前記プログラムデータ及び前記読み出されたデータに基づいて、複数のエンコーディングスキームのうちで選択された少なくとも一つのエンコーディングスキームを用いて、前記プログラムデータをエンコーディングし、エンコーディング情報を含むフラグデータを生成する段階は、
前記複数のエンコーディングスキームを順に選択し、選択されたエンコーディングスキームを用いて、前記プログラムデータをエンコーディングして候補データを生成する段階と、
前記プログラムデータ及び候補データを前記読み出されたデータと各々比較する段階と、
前記プログラムデータ及び候補データのうち、前記読み出されたデータと最短距離を有するデータを前記エンコーディングされたデータとして選択する段階と、
前記エンコーディング情報を含むフラグデータを生成する段階とを含むことを特徴とする請求項1に記載のプログラム方法。 - 前記プログラムデータ及び前記読み出されたデータに基づいて、複数のエンコーディングスキームのうちで選択された少なくとも一つのエンコーディングスキームを用いて、前記プログラムデータをエンコーディングし、エンコーディング情報を含むフラグデータを生成する段階は、
複数のエンコーディングスキームを選択し、前記選択された複数のエンコーディングスキームを組み合わせ、前記プログラムデータをエンコーディングし、前記エンコーディング情報を含むフラグデータを生成する段階を含むことを特徴とする請求項1に記載のプログラム方法。 - 前記エンコーディング情報は、前記プログラムデータ及び前記少なくとも一つのエンコーディングスキームによって生成される候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むことを特徴とする請求項1に記載のプログラム方法。
- 前記複数のエンコーディングスキームは、
前記プログラムデータを循環シフトして候補データを生成する循環シフトエンコーディングスキームを含み、
前記フラグデータは、前記エンコーディングされたデータが、前記プログラムデータから循環シフトされたビット数に対する情報を含むことを特徴とする請求項1に記載のプログラム方法。 - 前記複数のエンコーディングスキームは、
前記プログラムデータの一番目のビットと同一の一番目のビットを有し、前記プログラムデータのビットが遷移する位置にロジックハイ値を有し、前記プログラムデータのビットが遷移しない位置にロジックロー値を有する候補データを生成する差分エンコーディングスキームを含み、
前記フラグデータは、前記プログラムデータ及び前記候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むことを特徴とする請求項1に記載のプログラム方法。 - 前記複数のエンコーディングのスキームは、
予め設定されたデータと前記プログラムデータの論理演算を実行して、候補データを生成するバイナリマスクエンコーディングスキームを含み、
前記フラグデータは、前記プログラムデータ及び前記候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むことを特徴とする請求項1に記載のプログラム方法。 - 前記複数のエンコーディングスキームは、
前記プログラムデータを反転して候補データを生成するビット反転エンコーディングスキームを含み、
前記フラグデータは、前記プログラムデータ及び前記候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むことを特徴とする請求項1に記載のプログラム方法。 - 前記プログラムデータは、複数のサブデータに分割され、前記複数のサブデータの各々に対して、前記少なくとも一つのエンコーディングスキームが選択されることを特徴とする請求項1に記載のプログラム方法。
- メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルに格納されたデータを読み出す段階と、
前記プログラムデータ及び読み出されたデータを複数のプログラムデータのグループ及び複数の読み出されたデータのグループに各々分割する段階と、
前記複数のプログラムデータのグループの各々に対して、前記複数の読み出されたデータのグループのうち対応するグループに基づいて、複数のエンコーディングスキームのうちで選択された少なくとも一つのエンコーディングスキームを用いてエンコーディングを実行し、エンコーディング結果を組み合わせて、エンコーディングされたデータを生成する段階と、
各プログラムデータのグループのエンコーディング情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。 - メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルからデータを読み出す段階と、
前記プログラムデータを候補データとして選択する段階と、
前記候補データと前記読み出されたデータとを比較する段階と、
前記比較の結果によって、前記候補データと前記読み出されたデータとの間の距離が基準値未満であれば、前記候補データをエンコーディングされたデータとして選択し、前記候補データと前記読み出されたデータとの間の距離が前記基準値以上であれば、前記候補データを循環シフトして、他の候補データを生成して前記比較する段階と、前記比較の結果によってエンコーディングされたデータを選択するか、又は他の候補データを選択する段階を再び実行する段階と、
前記エンコーディングされたデータが、前記プログラムデータからシフトされたビット数に対する情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。 - 前記エンコーディングされたデータが選択されず、前記再び実行する段階が予め決められた回数だけ実行されれば、前記プログラムデータ及び前記循環シフトによって生成された候補データのうち、前記読み出されたデータと最も距離が近いデータが前記エンコーディングされたデータとして選択されることを特徴とする請求項15に記載のプログラム方法。
- メモリと、
前記メモリを制御するように構成されるコントローラとを含み、
前記コントローラは、
ランダムアクセスメモリと、
外部からプログラムデータを受信して前記ランダムアクセスメモリに格納するように構成されるホストインターフェースと、
前記メモリから読み出されたデータを受信し、前記ランダムアクセスメモリに格納するように構成されるメモリインターフェースと、
前記ランダムアクセスメモリに格納された前記読み出されたデータに基づいて、前記ランダムアクセスメモリに格納された前記プログラムデータをエンコーディングし、エンコーディングされたデータを、前記ランダムアクセスメモリに格納するように構成されるデータエンコーディング部と、
前記ランダムアクセスメモリに格納された前記エンコーディングされたデータを前記メモリにプログラムするように前記メモリインターフェースを制御するプロセッサとを含み、
前記データエンコーディング部は、前記読み出されたデータ及び前記プログラムデータの比較の結果によって前記エンコーディングされたデータを生成するようにさらに構成されることを特徴とするメモリシステム。 - 前記データエンコーディング部は、複数のエンコーディングのスキームのうちで少なくとも一つのエンコーディングスキームを選択し、前記選択された少なくとも一つのエンコーディングスキームを用いて、前記プログラムデータをエンコーディングするようにさらに構成されることを特徴とする請求項17に記載のメモリシステム。
- 前記データエンコーディング部は、前記プログラムデータを循環シフトエンコーディングして候補データを生成し、前記プログラムデータ及び候補データのうち、前記読み出されたデータと最短距離を有するデータを前記エンコーディングされたデータとして選択するようにさらに構成されることを特徴とする請求項17に記載のメモリシステム。
- 前記メモリは、磁気RAM又は相変化RAMを含むことを特徴とする請求項17に記載のメモリシステム。
- メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルからデータを読み出す段階と、
前記プログラムデータの一番目のビットと同一のビットを有し、前記プログラムデータのビットが遷移する位置にロジックハイ値を有し、前記プログラムデータのビットが遷移しない位置にロジックロー値を有する候補データを生成する段階と、
前記プログラムデータ及び候補データのうち、前記読み出されたデータと最短距離を有するデータをエンコーディングされたデータとして選択する段階と、
前記プログラムデータ及び候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。 - メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルからデータを読み出す段階と、
予め設定されたデータと前記プログラムデータの論理演算を実行して、候補データを生成する段階と、
前記プログラムデータ及び候補データのうち、前記読み出されたデータと最短距離を有するデータをエンコーディングされたデータとして選択する段階と、
前記プログラムデータ及び候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。 - メモリにデータをプログラムするプログラム方法において、
プログラムデータを受信する段階と、
前記受信されたプログラムデータがプログラムされる前記メモリのメモリセルからデータを読み出す段階と、
前記受信されたプログラムデータを、第1及び第2部分に分割する段階と、
前記受信されたプログラムデータの第1部分を反転して、第1候補データを生成する段階と、
前記受信されたプログラムデータの第2部分を反転して、第2候補データを生成する段階と、
前記プログラムデータと、第1及び第2候補データのうち、前記読み出されたデータと最短距離を有するデータをエンコーディングされたデータとして選択する段階と、
前記プログラムデータと、第1及び第2候補データのうち、前記エンコーディングされたデータとして選択されたデータに対する情報を含むフラグデータを生成する段階と、
前記エンコーディングされたデータ及び前記フラグデータを前記メモリの前記メモリセルにプログラムする段階とを含むことを特徴とするプログラム方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0118019 | 2012-10-23 | ||
KR1020120118019A KR102049281B1 (ko) | 2012-10-23 | 2012-10-23 | 불휘발성 메모리 및 컨트롤러를 포함하는 메모리 시스템, 그리고 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014086127A true JP2014086127A (ja) | 2014-05-12 |
JP6209051B2 JP6209051B2 (ja) | 2017-10-04 |
Family
ID=50437183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013220131A Active JP6209051B2 (ja) | 2012-10-23 | 2013-10-23 | 不揮発性メモリ及びコントローラを含むメモリシステム、そして不揮発性メモリにデータをプログラムするプログラム方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9183138B2 (ja) |
JP (1) | JP6209051B2 (ja) |
KR (1) | KR102049281B1 (ja) |
CN (1) | CN103778961B (ja) |
DE (1) | DE102013111549B4 (ja) |
TW (1) | TWI613658B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160014860A (ko) * | 2014-07-29 | 2016-02-12 | 삼성전자주식회사 | 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304703B1 (en) * | 2015-04-15 | 2016-04-05 | Symbolic Io Corporation | Method and apparatus for dense hyper IO digital retention |
US10068628B2 (en) | 2013-06-28 | 2018-09-04 | Intel Corporation | Apparatus for low power write and read operations for resistive memory |
KR20160108659A (ko) | 2015-03-04 | 2016-09-20 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 동작 방법 및 반도체 메모리 장치를 포함하는 메모리 시스템 |
KR102287907B1 (ko) * | 2015-06-22 | 2021-08-10 | 삼성디스플레이 주식회사 | 유기 발광 다이오드 표시 장치의 열화 보상기 |
KR102467072B1 (ko) * | 2017-10-26 | 2022-11-11 | 삼성전자주식회사 | 반복 연산 과정을 이용하여 디코딩을 수행하는 디코더 및 이를 이용한 스토리지 장치 |
US10514980B2 (en) * | 2018-03-22 | 2019-12-24 | Winbond Electronics Corp. | Encoding method and memory storage apparatus using the same |
CN109496336B (zh) * | 2018-10-26 | 2020-04-28 | 长江存储科技有限责任公司 | 用于存储器的数据处理方法和相关数据处理器 |
KR20200071484A (ko) | 2018-12-11 | 2020-06-19 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 메모리 시스템 |
CN113160870A (zh) * | 2021-03-25 | 2021-07-23 | 普冉半导体(上海)股份有限公司 | 非易失存储器编程方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7542356B2 (en) * | 2006-11-01 | 2009-06-02 | Samsung Electronics Co., Ltd. | Semiconductor memory device and method for reducing cell activation during write operations |
JP2009230796A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 半導体記憶装置及び半導体記憶システム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4134637B2 (ja) | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | 半導体装置 |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
CN1492447A (zh) * | 2003-09-22 | 2004-04-28 | 中兴通讯股份有限公司 | 一种快闪存储设备的驱动方法 |
JP2005108304A (ja) | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
US7106621B2 (en) | 2004-06-30 | 2006-09-12 | Stmicroelectronics, Inc. | Random access memory array with parity bit structure |
JP2006065986A (ja) | 2004-08-27 | 2006-03-09 | Fujitsu Ltd | 磁気抵抗メモリおよび磁気抵抗メモリ書き込み方法 |
JP4217208B2 (ja) | 2004-12-20 | 2009-01-28 | パナソニック株式会社 | Fifoメモリ |
US7817462B2 (en) | 2005-03-29 | 2010-10-19 | Nec Corporation | Magnetic random access memory |
JP2008059717A (ja) | 2006-09-01 | 2008-03-13 | Kobe Univ | 半導体装置 |
KR20080081656A (ko) | 2007-03-06 | 2008-09-10 | 한국전자통신연구원 | 상 변화 메모리에서의 쓰기 전력 감소를 위한 선택적데이터 쓰기 장치 및 방법 |
KR100819061B1 (ko) | 2007-03-06 | 2008-04-03 | 한국전자통신연구원 | 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화메모리에서의 데이터 쓰기 장치 및 방법 |
US7783846B2 (en) | 2007-08-09 | 2010-08-24 | International Business Machines Corporation | Method, apparatus and computer program product providing energy reduction when storing data in a memory |
US20110213995A1 (en) | 2007-08-09 | 2011-09-01 | International Business Machines Corporation | Method, Apparatus And Computer Program Product Providing Instruction Monitoring For Reduction Of Energy Usage |
KR20090016199A (ko) | 2007-08-10 | 2009-02-13 | 주식회사 하이닉스반도체 | 상 변화 메모리 장치 및 그 동작방법 |
KR101281685B1 (ko) | 2007-10-04 | 2013-07-03 | 삼성전자주식회사 | 상변화 메모리의 데이터 기록 방법, 데이터 판독 방법, 및그 장치 |
US9009603B2 (en) | 2007-10-24 | 2015-04-14 | Social Communications Company | Web browser interface for spatial communication environments |
CN101957797B (zh) | 2009-07-17 | 2013-01-09 | 群联电子股份有限公司 | 闪速存储器逻辑区块管理方法及其控制电路与储存*** |
US8432729B2 (en) | 2010-04-13 | 2013-04-30 | Mosaid Technologies Incorporated | Phase-change memory with multiple polarity bits having enhanced endurance and error tolerance |
KR101678407B1 (ko) | 2010-05-10 | 2016-11-23 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 프로그램 방법 |
US8488363B2 (en) | 2010-05-11 | 2013-07-16 | Qualcomm Incorporated | Write energy conservation in memory |
CN102097125B (zh) | 2010-12-07 | 2013-03-20 | 清华大学 | 相变存储器的写操作方法 |
-
2012
- 2012-10-23 KR KR1020120118019A patent/KR102049281B1/ko active IP Right Grant
-
2013
- 2013-10-15 US US14/053,893 patent/US9183138B2/en active Active
- 2013-10-16 TW TW102137226A patent/TWI613658B/zh active
- 2013-10-21 DE DE102013111549.7A patent/DE102013111549B4/de active Active
- 2013-10-23 JP JP2013220131A patent/JP6209051B2/ja active Active
- 2013-10-23 CN CN201310503112.4A patent/CN103778961B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7542356B2 (en) * | 2006-11-01 | 2009-06-02 | Samsung Electronics Co., Ltd. | Semiconductor memory device and method for reducing cell activation during write operations |
JP2009230796A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 半導体記憶装置及び半導体記憶システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160014860A (ko) * | 2014-07-29 | 2016-02-12 | 삼성전자주식회사 | 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법 |
KR102234592B1 (ko) | 2014-07-29 | 2021-04-05 | 삼성전자주식회사 | 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102049281B1 (ko) | 2019-11-27 |
US9183138B2 (en) | 2015-11-10 |
DE102013111549B4 (de) | 2024-04-18 |
US20140115237A1 (en) | 2014-04-24 |
JP6209051B2 (ja) | 2017-10-04 |
TW201419286A (zh) | 2014-05-16 |
TWI613658B (zh) | 2018-02-01 |
DE102013111549A1 (de) | 2014-04-24 |
CN103778961A (zh) | 2014-05-07 |
KR20140051687A (ko) | 2014-05-02 |
CN103778961B (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6209051B2 (ja) | 不揮発性メモリ及びコントローラを含むメモリシステム、そして不揮発性メモリにデータをプログラムするプログラム方法 | |
JP5503448B2 (ja) | 不揮発性メモリー装置、その駆動方法、それを含むメモリーシステム | |
KR102154296B1 (ko) | 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치 | |
KR102050896B1 (ko) | 메모리 컨트롤러 및 그것의 동작 방법 | |
US8705302B2 (en) | Semiconductor memory devices having self-refresh capability | |
US10431267B2 (en) | Electronic device and method for driving the same | |
KR102446713B1 (ko) | 전자 장치 | |
KR20170126595A (ko) | 불휘발성 메모리 장치의 독출 방법 | |
KR101984796B1 (ko) | 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 | |
KR102114875B1 (ko) | 반도체 장치, 프로세서, 시스템 및 반도체 장치를 포함하는 테스트 시스템 | |
JP2012142067A (ja) | 不揮発性メモリ装置のプログラム方法 | |
CN107274932B (zh) | 电子设备 | |
KR20150095360A (ko) | 저항성 메모리 장치 및 동작 방법 | |
KR20160124575A (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법과 독출 방법 | |
KR20140107948A (ko) | 반도체 장치 및 이를 포함하는 프로세서와 시스템 | |
KR20180016854A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
KR20180053113A (ko) | 반도체장치 | |
JP2022159991A (ja) | メモリシステム及びその動作方法 | |
CN108074610A (zh) | 阻变存储装置及其读取电路和方法 | |
KR20100120517A (ko) | 불휘발성 메모리 장치 및 그것의 워드 라인 또는 비트 라인의 제어방법 | |
US20150124525A1 (en) | Semiconductor device and method for operating the same | |
KR20140088421A (ko) | 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리로부터 데이터를 읽는 읽기 방법 | |
JP2007035163A (ja) | 不揮発性半導体記憶装置及び信号処理システム | |
US9672913B1 (en) | Semiconductor memory device and operating method thereof | |
TWI573135B (zh) | 半導體記憶裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160722 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20161222 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20161228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170731 |
|
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: 20170822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6209051 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |