JP5929790B2 - 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 - Google Patents

記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Download PDF

Info

Publication number
JP5929790B2
JP5929790B2 JP2013048776A JP2013048776A JP5929790B2 JP 5929790 B2 JP5929790 B2 JP 5929790B2 JP 2013048776 A JP2013048776 A JP 2013048776A JP 2013048776 A JP2013048776 A JP 2013048776A JP 5929790 B2 JP5929790 B2 JP 5929790B2
Authority
JP
Japan
Prior art keywords
value
conversion
conversion candidate
data
write
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.)
Expired - Fee Related
Application number
JP2013048776A
Other languages
English (en)
Other versions
JP2014026712A (ja
JP2014026712A5 (ja
Inventor
石井 健
健 石井
敬一 筒井
敬一 筒井
藤波 靖
靖 藤波
中西 健一
健一 中西
直大 足立
直大 足立
大久保 英明
英明 大久保
龍男 新橋
龍男 新橋
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2013048776A priority Critical patent/JP5929790B2/ja
Priority to US13/873,679 priority patent/US9229714B2/en
Priority to CN201310231214.5A priority patent/CN103513934B/zh
Publication of JP2014026712A publication Critical patent/JP2014026712A/ja
Publication of JP2014026712A5 publication Critical patent/JP2014026712A5/ja
Application granted granted Critical
Publication of JP5929790B2 publication Critical patent/JP5929790B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
情報処理システムにおいては、ワークメモリとしてDRAM(Dynamic Random Access Memory)等が用いられる。このDRAMは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ(NVM:Non-Volatile Memory)が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。
ReRAMは、可変抵抗素子を用いた不揮発性メモリであり、データの書込みに先立ってブロック単位で消去を行う必要がなく、必要ページのみを直接書き換えることが可能である。この点で、浮遊ゲートの電化蓄積量による閾値をデータとして記憶するNANDフラッシュメモリ等とは異なっている。可変抵抗素子は、高抵抗状態(HRS:High Resistive State)と低抵抗状態(LRS:Low Resistive State)の2状態で1ビットの情報を記録することができる。ReRAMのような不揮発性メモリでは、書込みを行う前のデータが一旦プレリードされ、そのプレリードデータとライトデータとを比較することにより、必要なビットのみについて状態の遷移が行われる。この状態の遷移の際には消費電流が発生するため、なるべく遷移するビット数は小さい方が望ましい。そのため、例えば、書換えビット数が過半数の場合には書込みデータの各ビットを反転させるようにして、書換えビット数を抑制する半導体記憶システムが提案されている(例えば、特許文献1参照。)。
特開2009−230796号公報
上述の従来技術では、書換えビット数が過半数か否かによって書込みデータの反転または非反転を制御している。しかしながら、ReRAMのような不揮発性メモリでは、高抵抗状態から低抵抗状態への遷移と低抵抗状態から高抵抗状態への遷移とのそれぞれにおいて消費電流の上限が規定されており、単に遷移ビット数に着目しただけでは不十分となるおそれがある。
本技術はこのような状況に鑑みて生み出されたものであり、状態遷移に伴う消費電流を考慮したメモリ書込み制御を行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、上記プレリードデータから上記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、上記第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方の値に基づいて上記第1の変換候補または上記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、上記判定結果に応じて上記第1の変換候補または上記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部とを具備する記憶制御装置およびその方法である。これにより、ライトデータの一方の変換候補における消費電力のワーストケースに着目して、何れかの変換候補を選択して、選択情報として出力するという作用をもたらす。
また、本技術の第2の側面は、ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、上記プレリードデータから上記ライト処理の対象データとなるライトデータの第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方と、上記プレリードデータから上記ライトデータの第2の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方とを比較して、上記第1の変換候補または上記第2の変換候補の何れを選択すべきかについて上記比較対象の遷移ビット数が小さくなる方を判定結果として生成する変換判定部と、上記判定結果に応じて上記第1の変換候補または上記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部とを具備する記憶制御装置およびその方法である。これにより、ライトデータの第1の変換候補および第2の変換候補のそれぞれにおける消費電力のワーストケースに着目して、消費電力が少ない方を選択情報として出力するという作用をもたらす。
また、この第2の側面において、上記変換判定部は、上記プレリードデータと上記第1の変換候補および上記第2の変換候補とにおける上記第1の値から第2の値への遷移または上記第1の値から第2の値への遷移の組合せを対応するビット毎に検出する検出器と、上記組合せの各々について検出されたビット数を計数するカウンタと、上記第1の変換候補および上記第2の変換候補の各々について上記第1の値から上記第2の値への遷移ビット数と上記第2の値から上記第1の値への遷移ビット数とのうち大きい方を選択する選択器と、上記第1の変換候補および上記第2の変換候補の各々について選択された遷移ビット数を比較して、上記第1の変換候補または上記第2の変換候補の何れかを選択すべきかについて上記比較対象の遷移ビット数が小さくなる方を上記判定結果とする比較器とを備えるようにしてもよい。
また、この第2の側面において、上記ライトデータおよび上記選択情報を保持するライトバッファをさらに具備し、上記変換制御部は、上記判定結果に従って上記ライトバッファに保持されているライトデータを上記第1の変換候補または上記第2の変換候補の何れかに変換させるとともに何れに変換されたのかを上記選択情報として上記ライトバッファに保持させるようにしてもよい。
また、この第2の側面において、上記第1の変換候補は上記ライトバッファと所定の値との排他的論理和演算により得られる値であり、上記第2の変換候補は上記ライトバッファと上記所定の値の反転値との排他的論理和演算により得られる値であってもよい。
また、この第2の側面において、上記第1の変換候補は上記ライトバッファと所定の値との排他的論理和演算により得られる値に対して所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものであり、上記第2の変換候補は上記ライトバッファと上記所定の値の反転値との排他的論理和演算により得られる値に対して上記所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものであってもよい。
また、この第2の側面において、上記第1の変換候補は上記ライトバッファと同じ値であり、上記第2の変換候補は上記ライトバッファの反転値であってもよい。
また、この第2の側面において、上記第1の変換候補および上記第2の変換候補は、上記プレリードデータから上記第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方と、上記プレリードデータから上記第2の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方との何れか一方は上記ライトデータの全ビット長の半分以下になるように決定されてもよい。
また、本技術の第3の側面は、ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、上記プレリードデータから上記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、上記第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方と上記ライトデータの全ビット長の半分とを比較して、上記比較対象の遷移ビット数が上記ライトデータの全ビット長の半分よりも小さい場合には上記第1の変換候補を選択し、それ以外の場合には上記第2の変換候補を選択すべき旨を判定結果として生成する変換判定部と、上記判定結果に応じて上記第1の変換候補または上記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部とを具備する記憶制御装置およびその方法である。これにより、ライトデータの第1の変換候補および第2の変換候補のそれぞれにおける消費電力のワーストケースに着目して、消費電力が半分以下になる方を選択情報として出力するという作用をもたらす。
また、本技術の第4の側面は、ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、上記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、上記プレリードデータから上記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、上記第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方の値に基づいて上記第1の変換候補または上記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、上記判定結果に応じて上記第1の変換候補または上記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部とを具備する記憶装置およびその方法である。これにより、ライトデータの一方の変換候補における消費電力のワーストケースに着目して、何れかの変換候補を選択して、ライトデータを記憶するという作用をもたらす。
なお、この第4の側面において、上記メモリセルアレイは可変抵抗素子であってもよい。
また、本技術の第5の側面は、ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、上記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、上記プレリードデータから上記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、上記第1の変換候補へ遷移させる場合の上記第1の値から上記第2の値への遷移ビット数および上記第2の値から上記第1の値への遷移ビット数の大きい方の値に基づいて上記第1の変換候補または上記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、上記判定結果に応じて上記第1の変換候補または上記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と、上記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータとを具備する情報処理システムおよびその方法である。これにより、ライトコマンドが発行された際、ライトデータの一方の変換候補における消費電力のワーストケースに着目して、何れかの変換候補を選択して、ライトデータを記憶するという作用をもたらす。
本技術によれば、状態遷移に伴う消費電流を考慮したメモリ書込み制御を行うことができるという優れた効果を奏し得る。
本技術の実施の形態における情報処理システムの全体構成例を示す図である。 本技術の第1の実施の形態における不揮発性メモリ300の構成例を示す図である。 可変抵抗素子のセット動作を説明するための図である。 可変抵抗素子のリセット動作を説明するための図である。 本技術の実施の形態における反転判定部360の一構成例を示す図である。 本技術の実施の形態における具体的な適用例を示す図である。 本技術の第1の実施の形態における不揮発性メモリ300のライト処理手順の一例を示す流れ図である。 本技術の実施の形態における反転判定処理の処理手順の一例を示す流れ図の前半である。 本技術の実施の形態における反転判定処理の処理手順の一例を示す流れ図の後半である。 本技術の第1の実施の形態における不揮発性メモリ300のリード処理手順の一例を示す流れ図である。 本技術の第2の実施の形態におけるメモリコントローラ200の構成例を示す図である。 本技術の第2の実施の形態における不揮発性メモリ300の構成例を示す図である。 本技術の第2の実施の形態におけるメモリコントローラ200のライト処理手順の一例を示す流れ図である。 本技術の第2の実施の形態におけるメモリコントローラ200のリード処理手順の一例を示す流れ図である。 本技術の第3の実施の形態における不揮発性メモリ300の構成例を示す図である。 本技術の第3の実施の形態における変換判定部460の一構成例を示す図である。 本技術の第3の実施の形態におけるライトデータ変換部650の一構成例を示す図である。 本技術の第3の実施の形態におけるリードデータ変換部380の一構成例を示す図である。 本技術の第3の実施の形態における変換候補の生成の際にテーブル索引を利用する例を示す図である。 図19の例の第1パターンにおけるセット対象およびリセット対象となるビット数をまとめたものである。 図19の例の第2パターンにおけるセット対象およびリセット対象となるビット数をまとめたものである。 本技術の第3の実施の形態における逆変換の際にテーブル索引を利用する例を示す図である。 本技術の第3の実施の形態における不揮発性メモリ300のライト処理手順の一例を示す流れ図である。 第3の実施の形態における変換判定処理(ステップS820)の処理手順の一例を示す流れ図の前半である。 第3の実施の形態における変換判定処理(ステップS820)の処理手順の一例を示す流れ図の後半である。 本技術の第3の実施の形態における不揮発性メモリ300のリード処理手順の一例を示す流れ図である。 本技術の第3の実施の形態における変換判定部460の変形例を示す図である。 第3の実施の形態における変換判定処理(ステップS820)の処理手順の変形例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(不揮発性メモリにおける反転制御の例)
2.第2の実施の形態(メモリコントローラにおける反転制御の例)
3.第3の実施の形態(不揮発性メモリにおける変換制御の例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの全体構成例を示す図である。この情報処理システムは、プロセッサ110と、DRAM120と、不揮発性メモリ(NVM)300と、メモリコントローラ200とを備えている。不揮発性メモリ300およびメモリコントローラ200は、メモリモジュール400を構成する。メモリモジュール400は、特許請求の範囲に記載の記憶装置の一例である。また、プロセッサ110は、特許請求の範囲に記載のホストコンピュータの一例である。
プロセッサ110は、各種プログラムを実行することにより情報処理を遂行する処理装置である。このプロセッサ110は、DRAM120における記憶領域をワーク領域として、データのロードまたはストアを繰り返すことによりプログラムを実行する。また、このプロセッサ110は、メモリコントローラ200を介してNVM300に記憶されている各データに対してアクセスを行う。
DRAM120は、プロセッサ110の主記憶装置として機能する揮発性のメモリである。このDRAM120は、プロセッサ110におけるプログラムの実行に必要なデータを記憶する。
不揮発性メモリ300は、プロセッサ110の補助記憶装置として機能する不揮発性のメモリである。この不揮発性メモリ300は、メモリコントローラ200の制御によりアクセスされる。この不揮発性メモリ300は、フラッシュメモリにより構成されてもよく、不揮発性ランダムアクセスメモリ(NVRAM)により構成されてもよい。この不揮発性メモリ300は、SnD(Store and Download)モデルおよびXIP(eXecute In Plane)モデルの何れにも適用することができる。SnDモデルでは、不揮発性メモリ300上のデータはDRAM120を介してプロセッサ110からアクセスされる。したがって、不揮発性メモリ300上のデータは一旦DRAM120に転送されることによりメモリ空間としてアクセス可能となる。一方、XIPモデルでは、不揮発性メモリ300に記憶されているデータはそのままプロセッサ110のメモリ空間としてアクセス可能である。このXIPモデルの場合、DRAM120の役割を不揮発性メモリ300に持たせ、DRAM120自体を省いて構成してもよい。
メモリコントローラ200は、不揮発性メモリ300を制御するものであり、プロセッサ110と不揮発性メモリ300とを接続する。このメモリコントローラ200は不揮発性メモリ300との間でデータ転送するためのデータバッファを備える。このデータバッファはメモリコントローラ200の外付けメモリデバイスとして実現してもよく、また、内蔵メモリとして実現してもよい。なお、メモリコントローラ200は、特許請求の範囲に記載の記憶制御装置の一例である。
[不揮発性メモリの構成]
図2は、本技術の第1の実施の形態における不揮発性メモリ300の構成例を示す図である。この不揮発性メモリ300は、メモリセルアレイ310と、制御部320と、ライトバッファ330と、リードバッファ340と、論理評価部350と、反転判定部360と、反転制御部370と、外部インターフェース(I/F)390とを備えている。
メモリセルアレイ310は、ビット毎に所定の状態を保持するメモリセルアレイを格子状に並べたものである。メモリセルアレイ310のメモリセルアレイは可変抵抗素子により構成される抵抗変化型メモリである。可変抵抗素子は、高抵抗状態(HRS:High Resistive State)と低抵抗状態(LRS:Low Resistive State)の2状態で1ビットの情報を記録することができる。各抵抗状態で「0」または「1」の何れの状態に対応させるかは任意であるが、以下ではHRSの論理状態を「1」、LRSの論理状態を「0」として説明する。
メモリセルアレイ310は複数のページから構成される。各ページ内には、データ311および反転フラグ312が記憶される。データ311は、1ワード分のデータとして例えば32ビットのデータを想定する。反転フラグ312は、対応するデータ311がメモリセルアレイ310内で反転された状態で記憶されているか否かを示す。この反転フラグ312についても、「0」または「1」の何れの状態に対応させるかは任意である。例えば、データ311が反転されていない状態で記憶されていれば反転フラグ312は「0」にクリアされ、データ311が反転された状態で記憶されていれば反転フラグ312は「1」にアサートされるものとすることができる。この反転フラグ312は、特許請求の範囲に記載の選択情報の一例である。なお、この反転フラグ312は、論理的には1つのデータ311に対応して1ビットの反転フラグ312があれば足りるが、信頼度を向上させるために複数ビットを備えるようにしてもよい。
制御部320は、不揮発性メモリ300内の各ブロックを制御するコントローラである。この制御部320は、信号線399を介して外部I/F390からコマンドおよびアドレスを受け取り、信号線329によってメモリセルアレイ310に制御信号を出力する。
ライトバッファ330は、メモリセルアレイ310に対するライトデータを保持するバッファである。このライトバッファ330は、信号線398を介して外部I/F390からライトデータを受け取り、信号線339を介してメモリセルアレイ310にライトデータを出力する。このライトバッファ330に保持されているライトデータは信号線335を介して論理評価部350および反転判定部360に供給される。このライトバッファ330は、データ自体に加えて、メモリセルアレイ310と同様に反転フラグを保持する。反転制御部370からの指示により、ライトバッファ330は保持しているライトデータを反転させるとともに、その反転フラグを例えば「1」にアサートする。
リードバッファ340は、メモリセルアレイ310から読み出されたリードデータを保持するバッファである。このリードバッファ340は、信号線319を介してメモリセルアレイ310からリードデータを受け取り、信号線349を介して外部I/F390にリードデータを出力する。このリードバッファ340に保持されているリードデータは信号線345を介して論理評価部350および反転判定部360に供給される。このリードバッファ340は、データ自体に加えて、メモリセルアレイ310と同様に反転フラグを保持する。反転制御部370からの指示により、リードバッファ340は保持しているリードデータを反転させるとともに、その反転フラグを「1」にアサートする。ただし、この反転動作は、プレリードの際には行われない。なお、リードバッファ340は、特許請求の範囲に記載のプレリード処理部の一例である。
論理評価部350は、リードバッファ340に保持されているリードデータとライトバッファ330に保持されているライトデータとを比較することにより、メモリセルアレイ310に対するセットパターンおよびリセットパターンを生成するものである。ライトバッファ330に保持されているライトデータはライト処理の対象となるデータである。リードバッファ340に保持されているリードデータは、ライトアドレスに記憶されていたデータをライト処理に先立って読み出したプレリードデータである。セットパターンは、データにおける各ビットについて、HRSからLRSに遷移させるビットのみを例えば「1」にセットしたビットパターンである。リセットパターンは、データにおける各ビットについて、LRSからHRSに遷移させるビットのみを例えば「1」にセットしたビットパターンである。
反転判定部360は、リードバッファ340に保持されているリードデータとライトバッファ330に保持されているライトデータとを比較することにより、ライトバッファ330に保持されているライトデータを反転すべきか否かを判定するものである。この反転判定部360による判定結果は、信号線369を介して反転制御部370に出力される。なお、この反転判定部360は、特許請求の範囲に記載の変換判定部の一例である。この反転判定部360における処理内容については後述する。
反転制御部370は、反転判定部360による判定結果に従って、ライトバッファ330またはリードバッファ340に対して、保持しているデータを反転させるように信号線379を介して指示する。なお、反転制御部370は、特許請求の範囲に記載の反転制御部または変換制御部の一例である。
外部I/F390は、メモリコントローラ200との間のやりとりを行うためのインターフェースである。
[可変抵抗素子の状態遷移]
図3は、可変抵抗素子のセット動作を説明するための図である。上述のように、可変抵抗素子は高抵抗状態(HRS)および低抵抗状態(LRS)の2状態の何れかの状態となる。横軸を抵抗値、縦軸を相対的な累積ビット数とすると、抵抗値の低い部分と高い部分に分布が分かれる。抵抗値の低い部分がLRS、抵抗値の高い部分をHRSである。この図のように、HRSからLRSに状態を遷移させる動作をセット動作という。この場合、セット動作を行った後に、そのセット動作が正常に完了したか否かを検証するためには、両分布の中央よりも低抵抗側に設けられたセット検証閾値R_verify(set)が用いられる。この検証に失敗した場合には、再度セット動作が試みられる。
図4は、可変抵抗素子のリセット動作を説明するための図である。この図のように、LRSからHRSに状態を遷移させる動作をリセット動作という。この場合、リセット動作を行った後に、そのリセット動作が正常に完了したか否かを検証するためには、両分布の中央よりも高抵抗側に設けられたリセット検証閾値R_verify(reset)が用いられる。この検証に失敗した場合には、再度リセット動作が試みられる。
[反転判定部の構成]
図5は、本技術の実施の形態における反転判定部360の一構成例を示す図である。この反転判定部360には、リードバッファ340に保持されているリードデータ(プレリードデータ)が信号線345を介して入力され、ライトバッファ330に保持されているライトデータが信号線335を介して入力される。ここでは、プレリードデータおよびライトデータの対応するビットがそれぞれ1ビットずつ順に入力されることを想定している。ただし、複数ビットを並列に入力して、まとめてカウントするようにしてもよい。例えば、32ビットのライトデータと32ビットのプレリードデータをまとめて入力して32ビットのパターンを生成し、そのうち「1」となっているビットをカウントするようにしてもよい。この反転判定部360は、論理ゲート611乃至614と、カウンタ621乃至624と、選択器631および632と、比較器641とを備えている。なお、論理ゲート611乃至614は、特許請求の範囲に記載の検出器の一例である。
論理ゲート611は、プレリードデータからライトデータへの遷移が「1」から「0」、すなわちライトデータ非反転時のセット対象となるビットを検出するものである。カウンタ621は、論理ゲート611により検出されたビット数を計数するものである。このカウンタ621により計数された値n10は、非反転時のセット対象となるビット数を表す。
論理ゲート612は、プレリードデータからライトデータへの遷移が「0」から「1」、すなわちライトデータ非反転時のリセット対象となるビットを検出するものである。カウンタ622は、論理ゲート612により検出されたビット数を計数するものである。このカウンタ622により計数された値n01は、非反転時のリセット対象となるビット数を表す。
論理ゲート613は、プレリードデータからライトデータへの遷移が「1」から「1」、すなわちライトデータ反転時のセット対象となるビットを検出するものである。カウンタ623は、論理ゲート613により検出されたビット数を計数するものである。このカウンタ623により計数された値n11は、反転時のセット対象となるビット数を表す。
論理ゲート614は、プレリードデータからライトデータへの遷移が「0」から「0」、すなわちライトデータ反転時のリセット対象となるビットを検出するものである。カウンタ624は、論理ゲート614により検出されたビット数を計数するものである。このカウンタ624により計数された値n00は、反転時のリセット対象となるビット数を表す。
選択器631は、カウンタ621の出力n10とカウンタ622の出力n01のうち、値が大きい方を選択するものである。すなわち、この選択器631は、ライトデータ非反転時のセットのための遷移ビット数とリセットのための遷移ビット数のうち、ビット数の多い方を出力する。
選択器632は、カウンタ623の出力n11とカウンタ624の出力n00のうち、値が大きい方を選択するものである。すなわち、この選択器632は、ライトデータ反転時のセットのための遷移ビット数とリセットのための遷移ビット数のうち、ビット数の多い方を出力する。
比較器641は、選択器631の出力と選択器632の出力とを比較して、小さい方を判定結果として信号線369を介して出力するものである。すなわち、この比較器641は、選択器631の出力の方が小さい場合にはライトデータを反転すべきでない旨を判定結果とし、選択器632の出力の方が小さい場合にはライトデータを反転すべき旨を判定結果とする。両者の出力が等しい場合には何れを判定結果としてもよい。
[具体例]
図6は、本技術の実施の形態における具体的な適用例を示す図である。プレリードデータとして「0xFFFFFC00」(「0x」は、それに続く数字が16進数であることを意味する。以下同様)、ライトデータとして「0xFF800200」が与えられた例を想定する。
ここで、32ビットのうちの対応するビットをそれぞれ比較すると、ライトデータ非反転時およびライトデータ反転時のそれぞれについて、セットパターンおよびリセットパターンが得られる。すなわち、論理ゲート611の出力としてライトデータ非反転時のセットパターンが得られ、論理ゲート612の出力としてライトデータ非反転時のリセットパターンが得られる。また、論理ゲート613の出力としてライトデータ反転時のセットパターンが得られ、論理ゲート614の出力としてライトデータ反転時のリセットパターンが得られる。
その結果、この例では、非反転時のセットの遷移ビット数n10は「13」、非反転時のリセットの遷移ビット数n01は「1」、反転時のセットの遷移ビット数n11は「9」、反転時のリセットの遷移ビット数n00は「9」となる。
ライトデータ非反転時には、セットの遷移ビット数n10の方が大きいため、選択器631は「13」を選択する。ライトデータ反転時には、両者の遷移ビット数が等しいため、選択器632は「9」を選択する。この場合、選択器632からの出力の方が小さいため、比較器641はライトデータを反転すべき旨を判定結果とする。
ちなみに、もし従来技術のようにセットとリセットを区別することなく遷移ビット数を比較した場合、非反転時の遷移ビット数の合計は「14」、反転時の遷移ビット数の合計は「18」となるため、ライトデータを反転すべきでない旨の判定がされてしまう。これに対し、本技術の実施の形態では、セットとリセットを区別して遷移ビット数を判断するため、状態遷移に伴う消費電流を考慮して適切な判定を行うことができる。
[不揮発性メモリの動作]
図7は、本技術の第1の実施の形態における不揮発性メモリ300のライト処理手順の一例を示す流れ図である。
プロセッサ110からライトコマンドが発行されると、ライトバッファ330にライトデータが保持される(ステップS911)。また、ライトアドレスが示すメモリセルアレイ310のページからリードデータおよび反転フラグがプレリードデータとして読み出されて、リードバッファ340に保持される(ステップS912)。なお、これらライトデータの取得およびプレリード処理は逆の順序で行ってもよい。
反転判定部360は、ライトバッファ330に保持されたライトデータとリードバッファ340に保持されたプレリードデータとから、ライトバッファ330のライトデータを反転すべきか否かを判定する(ステップS920)。その結果、反転すべき旨の判定がされた場合には(ステップS913:Yes)、ライトバッファ330においてライトデータが反転されるとともに、その反転フラグがアサートされる(ステップS914)。この場合、論理評価部350では、反転時のセットパターンおよびリセットパターンが生成される(ステップS915)。一方、反転すべきでない旨の判定がされた場合には(ステップS913:No)、ライトデータの反転はされずに、その反転フラグはクリアされる(ステップS916)。この場合、論理評価部350では、非反転時のセットパターンおよびリセットパターンが生成される(ステップS917)。
なお、反転時のセットパターンおよびリセットパターンは、ステップS915で生成せずに、ステップS920における後述の図9のステップS932で生成したものを使用してもよい。また、非反転時のセットパターンおよびリセットパターンは、ステップS917で生成せずに、ステップS920における後述の図8のステップS922で生成したものを使用してもよい。
その後、生成されたセットパターンに従って、HRSからLRSに状態を遷移させるセット動作が行われる(ステップS918)。そして、生成されたリセットパターンに従って、LRSからHRSに状態を遷移させるリセット動作が行われる(ステップS919)。なお、これらセット動作およびリセット動作は逆の順序で行ってもよい。
図8および図9は、本技術の実施の形態における反転判定処理(ステップS920)の処理手順の一例を示す流れ図である。
論理ゲート611および612において、非反転のライトデータおよびプレリードデータが比較され(ステップS921)、それぞれライトデータ非反転時のセットパターンおよびリセットパターンが生成される(ステップS922)。そして、カウンタ621および622において、それぞれライトデータ非反転時のセット対象のビット数n10およびリセット対象のビット数n01が計数される(ステップS923)。
その結果、ライトデータ非反転時において、セット対象のビット数n10がリセット対象のビット数n01よりも大きい場合には(ステップS924:Yes)、選択器631はセット対象のビット数n10を出力値N_non_invとする(ステップS925)。一方、セット対象のビット数n10がリセット対象のビット数n01よりも大きくない場合には(ステップS924:No)、選択器631はリセット対象のビット数n01を出力値N_non_invとする(ステップS926)。
論理ゲート613および614において、反転されたライトデータおよびプレリードデータが比較され(ステップS931)、それぞれライトデータ反転時のセットパターンおよびリセットパターンが生成される(ステップS932)。そして、カウンタ623および624において、それぞれライトデータ反転時のセット対象のビット数n11およびリセット対象のビット数n00が計数される(ステップS933)。
その結果、ライトデータ反転時において、セット対象のビット数n11がリセット対象のビット数n00よりも大きい場合には(ステップS934:Yes)、選択器632はセット対象のビット数n11を出力値N_invとする(ステップS935)。一方、セット対象のビット数n11がリセット対象のビット数n00よりも大きくない場合には(ステップS934:No)、選択器632はリセット対象のビット数n00を出力値N_invとする(ステップS936)。
なお、ステップS921乃至S926の処理とステップS931乃至S936の処理とは、互いに逆の順序で行ってもよく、また、図5に示したように同時並行に行ってもよい。
比較器641は、選択器631の出力値N_non_invと選択器632の出力値N_invとを比較して、出力値N_non_invの方が大きい場合には(ステップS937:Yes)、ライトデータを反転すべき旨の判定をする(ステップS938)。一方、出力値N_non_invの方が大きくない場合には(ステップS937:No)、ライトデータを反転すべきでない旨の判定をする(ステップS939)。
図10は、本技術の第1の実施の形態における不揮発性メモリ300のリード処理手順の一例を示す流れ図である。
プロセッサ110からリードコマンドが発行されると、リードアドレスが示すメモリセルアレイ310のページからリードデータおよび反転フラグが読み出されて、リードバッファ340に保持される(ステップS941)。このとき、リードバッファ340における反転フラグがアサートされていた場合には(ステップS942:Yes)、リードバッファ340においてリードデータは反転される(ステップS943)。反転フラグがアサートされていなかった場合には(ステップS942:No)、リードデータはそのまま反転されない。そして、このリードバッファ340に保持されたリードデータは、プロセッサ110へ出力される(ステップS944)。
このように、本技術の第1の実施の形態によれば、セットとリセットを区別して遷移ビット数を判断することにより、ライトデータの反転を行うべきか否かについて、状態遷移に伴う消費電流を考慮して適切な判定を行うことができる。このような判定を行うことにより、Nビットのデータに対してセットおよびリセットを行うビット数は、ワーストケースでそれぞれN/2ビットに抑えることができる。換言すれば、従来と同じワーストケースの消費電力で考えた場合、同じ時間で2倍のサイズのデータアクセスを行うことができ、アクセス速度を2倍にすることができる。
<2.第2の実施の形態>
上述の第1の実施の形態では不揮発性メモリ300の内部で反転判定および反転制御を行っていたが、この第2の実施の形態ではメモリコントローラ200において反転判定および反転制御を行う。情報処理システムの全体構成としては、図1により説明したものと同様である。
[メモリコントローラの構成]
図11は、本技術の第2の実施の形態におけるメモリコントローラ200の構成例を示す図である。この第2の実施の形態におけるメモリコントローラ200は、制御部220と、ライトバッファ230と、リードバッファ240と、反転判定部260と、反転制御部270と、メモリI/F280と、システムI/F290とを備える。
制御部220は、メモリコントローラ200内の各ブロックを制御するコントローラである。この制御部220は、信号線299を介してシステムI/F290からコマンドおよびアドレスを受け取り、信号線229によってメモリI/F280に制御信号を出力する。
ライトバッファ230は、メモリセルアレイ310に対するライトデータを保持するバッファである。このライトバッファ230は、信号線298を介してシステムI/F290からライトデータを受け取り、信号線239を介してメモリI/F280にライトデータを出力する。このライトバッファ230に保持されているライトデータは信号線235を介して反転判定部360に供給される。このライトバッファ230は、データ自体に加えて、メモリセルアレイ310と同様に反転フラグを保持する。反転制御部270からの指示により、ライトバッファ230は保持しているライトデータを反転させるとともに、その反転フラグを例えば「1」にアサートする。
リードバッファ240は、メモリセルアレイ310から読み出されたリードデータを保持するバッファである。このリードバッファ240は、信号線219を介してメモリI/F280からリードデータを受け取り、信号線249を介してシステムI/F290にリードデータを出力する。このリードバッファ240に保持されているリードデータは信号線245を介して反転判定部360に供給される。このリードバッファ240は、データ自体に加えて、メモリセルアレイ310と同様に反転フラグを保持する。反転制御部270からの指示により、リードバッファ240は保持しているリードデータを反転させるとともに、その反転フラグを「1」にアサートする。ただし、この反転動作は、プレリードの際には行われない。なお、リードバッファ240は、特許請求の範囲に記載のプレリード処理部の一例である。
反転判定部260は、リードバッファ240に保持されているリードデータとライトバッファ230に保持されているライトデータとを比較することにより、ライトバッファ230に保持されているライトデータを反転すべきか否かを判定するものである。この反転判定部260による判定結果は、信号線269を介して反転制御部270に出力される。この反転判定部260における処理内容は、第1の実施の形態において説明した反転判定部360と同様である。
反転制御部270は、反転判定部260による判定結果に従って、ライトバッファ230またはリードバッファ240に対して、保持しているデータを反転させるように信号線279を介して指示する。
メモリI/F280は、メモリセルアレイ310との間のやりとりを行うためのインターフェースである。システムI/F290は、プロセッサ110との間のやりとりを行うためのインターフェースである。
[不揮発性メモリの構成]
図12は、本技術の第2の実施の形態における不揮発性メモリ300の構成例を示す図である。この第2の実施の形態における不揮発性メモリ300は、第1の実施の形態から反転判定部360および反転制御部370を除いたものに相当する。したがって、ライトバッファ230またはリードバッファ240において、データの反転動作は行われない。ただし、メモリコントローラ200において反転動作が行われるため、この第2の実施の形態においてもメモリセルアレイ310に反転フラグ312は記憶される。
[不揮発性メモリの動作]
図13は、本技術の第2の実施の形態におけるメモリコントローラ200のライト処理手順の一例を示す流れ図である。
プロセッサ110からライトコマンドが発行されると、ライトバッファ230にライトデータが保持される(ステップS951)。また、不揮発性メモリ300のライトアドレスが示すメモリセルアレイ310のページに対してリードリクエストを発行することにより、リードデータおよび反転フラグがプレリードデータとして読み出されて、リードバッファ240に保持される(ステップS952)。このとき、リードバッファ240における反転フラグがアサートされていた場合には、リードデータは反転される。なお、これらライトデータの取得およびプレリード処理は逆の順序で行ってもよい。
反転判定部260は、ライトバッファ230に保持されたライトデータとリードバッファ240に保持されたプレリードデータとから、ライトバッファ230のライトデータを反転すべきか否かを判定する(ステップS953)。なお、このステップS953における処理は、第1の実施の形態において説明した図8および図9の処理と同様である。
その結果、反転すべき旨の判定がされた場合には(ステップS954:Yes)、ライトバッファ230においてライトデータが反転されるとともに(ステップS955)、その反転フラグがアサートされる(ステップS956)。なお、ステップS955とステップS956の順序は逆であってもよい。一方、反転すべきでない旨の判定がされた場合には(ステップS954:No)、ライトデータの反転はされずに、その反転フラグはクリアされる(ステップS957)。
その後、メモリコントローラ200は、ライトバッファ230に保持されたライトデータについて、不揮発性メモリ300のライトアドレスが示すメモリセルアレイ310のページに対してライトリクエストを発行する(ステップS958)。
図14は、本技術の第2の実施の形態におけるメモリコントローラ200のリード処理手順の一例を示す流れ図である。
プロセッサ110からリードコマンドが発行されると、メモリコントローラ200は、不揮発性メモリ300のリードアドレスが示すメモリセルアレイ310のページに対してリードリクエストを発行する(ステップS961)。その結果、リードバッファ240にリードデータが保持されると、その反転フラグがアサートされている場合には(ステップS962:Yes)、リードバッファ240においてリードデータは反転される(ステップS963)。反転フラグがアサートされていなかった場合には(ステップS962:No)、リードデータはそのまま反転されない。そして、このリードバッファ240に保持されたリードデータは、プロセッサ110へ出力される(ステップS964)。
このように、本技術の第2の実施の形態によれば、上述のセットとリセットを区別した反転判定に基づく反転動作を、不揮発性メモリ300の外部において行うことができる。
<3.第3の実施の形態>
上述の第1の実施の形態ではライトデータを反転したものと反転しないものの何れを書き込むかを判定していたが、この第3の実施の形態ではこれを一般化して、2つの候補のうち何れを書き込むかを判定する。なお、情報処理システムの全体構成としては、図1により説明したものと同様である。
[不揮発性メモリの構成]
図15は、本技術の第3の実施の形態における不揮発性メモリ300の構成例を示す図である。この不揮発性メモリ300は、メモリセルアレイ310と、制御部320と、ライトバッファ330と、リードバッファ340と、論理評価部350と、変換判定部460と、変換制御部470と、外部インターフェース(I/F)390とを備えている。基本的な構成は第1の実施の形態と同様であるが、以下に説明するように、2通りの変換の何れかを施してメモリセルアレイ310に書込みを行う点で異なっている。以下では、2通りの変換のうち、一方を「候補0」、他方を「候補1」と称する。なお、候補0および候補1は、それぞれ特許請求の範囲に記載のライトデータの第1の変換候補および第2の変換候補の一例である。
メモリセルアレイ310は複数のページから構成される。各ページ内には、データ311および選択フラグ313が記憶される。データ311は、1ワード分のデータとして例えば32ビットのデータを想定する。選択フラグ313は、対応するデータ311がメモリセルアレイ310内で2通りの変換の何れが選択された状態で記憶されているかを示す。この選択フラグ313については、データ311と同様に、「0」または「1」の何れの状態に対応させるかは任意である。例えば、データ311が候補0の変換で記憶されていれば選択フラグ313は「0」にクリアされ、データ311が候補1の変換で記憶されていれば選択フラグ313は「1」にアサートされるものとすることができる。この選択フラグ313は、特許請求の範囲に記載の選択情報の一例である。なお、この選択フラグ313は、論理的には1つのデータ311に対応して1ビットの選択フラグ313があれば足りるが、信頼度を向上させるために複数ビットを備えるようにしてもよい。
ライトバッファ330は、データ自体に加えて、メモリセルアレイ310と同様に選択フラグを保持する。変換制御部470からの指示により、ライトバッファ330は保持しているライトデータに対して2通りの変換のうち選択された方の変換を施すとともに、その状態に合わせて選択フラグを決定する。
リードバッファ340は、データ自体に加えて、メモリセルアレイ310と同様に選択フラグを保持する。変換制御部470からの指示により、リードバッファ340は保持しているリードデータに対して2通りの変換のうち選択された方の変換の逆変換を施す。ただし、この逆変換は、プレリードの際には行われない。なお、リードバッファ340は、特許請求の範囲に記載のプレリード処理部の一例である。
変換判定部460は、リードバッファ340に保持されているリードデータとライトバッファ330に保持されているライトデータとを比較することにより、ライトバッファ330に保持されているライトデータに対して2通りの変換のうち何れを施すべきかを判定するものである。この変換判定部460による判定結果は、信号線469を介して変換制御部470に出力される。なお、この変換判定部460における処理内容については後述する。
変換制御部470は、変換判定部460による判定結果に従って、ライトバッファ330またはリードバッファ340に、保持しているデータに対して2通りの変換のうち何れを施すかを、信号線479を介して指示する。
[変換判定部の構成]
図16は、本技術の第3の実施の形態における変換判定部460の一構成例を示す図である。この変換判定部460には、リードバッファ340に保持されているリードデータ(プレリードデータ)が信号線345を介して入力され、ライトバッファ330に保持されているライトデータが信号線335を介して入力される。ここでは、プレリードデータおよびライトデータの対応するビットがそれぞれ1ビットずつ順に入力されることを想定している。ただし、複数ビットを並列に入力して、まとめてカウントするようにしてもよい。例えば、32ビットのライトデータと32ビットのプレリードデータをまとめて入力して32ビットのパターンを生成し、そのうち「1」となっているビットをカウントするようにしてもよい。この変換判定部460は、ライトデータ変換部650と、論理ゲート661乃至664と、カウンタ671乃至674と、選択器681および682と、比較器691とを備えている。なお、論理ゲート661乃至664は、特許請求の範囲に記載の検出器の一例である。
ライトデータ変換部650は、信号線335を介して入力されたライトデータに対して、2通りの変換を行うものである。ここでは、候補0の変換を施されたデータをwdata0、候補1の変換を施されたデータをwdata1として表している。候補0および候補1の具体例については後述する。
論理ゲート661は、プレリードデータからライトデータの候補0への遷移が「1」から「0」、すなわちライトデータを候補0に変換した時のセット対象となるビットを検出するものである。カウンタ671は、論理ゲート661により検出されたビット数を計数するものである。このカウンタ671により計数された値m10は、ライトデータを候補0に変換した時のセット対象となるビット数を表す。
論理ゲート662は、プレリードデータからライトデータの候補0への遷移が「0」から「1」、すなわちライトデータを候補0に変換した時のリセット対象となるビットを検出するものである。カウンタ672は、論理ゲート662により検出されたビット数を計数するものである。このカウンタ622により計数された値m01は、ライトデータを候補0に変換した時のリセット対象となるビット数を表す。
論理ゲート663は、プレリードデータからライトデータの候補1への遷移が「1」から「0」、すなわちライトデータを候補1に変換した時のセット対象となるビットを検出するものである。カウンタ673は、論理ゲート663により検出されたビット数を計数するものである。このカウンタ673により計数された値m11は、ライトデータを候補1に変換した時のセット対象となるビット数を表す。
論理ゲート664は、プレリードデータからライトデータの候補1への遷移が「0」から「1」、すなわちライトデータを候補1に変換した時のリセット対象となるビットを検出するものである。カウンタ674は、論理ゲート664により検出されたビット数を計数するものである。このカウンタ674により計数された値m00は、ライトデータを候補1に変換した時のリセット対象となるビット数を表す。
選択器681は、カウンタ671の出力m10とカウンタ672の出力m01のうち、値が大きい方を選択するものである。すなわち、この選択器681は、ライトデータを候補0に変換した時のセットのための遷移ビット数とリセットのための遷移ビット数のうち、ビット数の多い方を出力する。
選択器682は、カウンタ673の出力m11とカウンタ674の出力m00のうち、値が大きい方を選択するものである。すなわち、この選択器682は、ライトデータを候補1に変換した時のセットのための遷移ビット数とリセットのための遷移ビット数のうち、ビット数の多い方を出力する。
比較器691は、選択器681の出力と選択器682の出力とを比較して、小さい方を判定結果として信号線469を介して出力するものである。すなわち、この比較器691は、選択器681の出力の方が小さい場合にはライトデータを候補0に変換すべき旨を判定結果とし、選択器682の出力の方が小さい場合にはライトデータを候補1に変換すべき旨を判定結果とする。両者の出力が等しい場合には何れを判定結果としてもよい。
図17は、本技術の第3の実施の形態におけるライトデータ変換部650の一構成例を示す図である。このライトデータ変換部650は、変換判定部460に設けられるものを想定しているが、同様のものはライトバッファ330においても利用される。
このライトデータ変換部650は、信号線335を介してライトバッファ330から入力されたライトデータWDATAから、変換の候補0の値wdata0および変換の候補1の値wdata1を生成するものである。この例では、候補0の値wdata0として、ライトデータWDATAと固定値Xとの排他的論理和を生成するものとしている。そのため、ライトデータ変換部650は、排他的論理和ゲート652を備え、排他的論理和ゲート652によってライトデータWDATAと固定値Xとの排他的論理和を生成する。また、候補1の値wdata1として、ライトデータWDATAと固定値Xの反転値との排他的論理和を生成するものとしている。そのため、ライトデータ変換部650は、反転ゲート651および排他的論理和ゲート653を備え、固定値Xを反転ゲート651によって反転した後、排他的論理和ゲート653によってライトデータWDATAと固定値Xの反転値との排他的論理和を生成する。なお、この例において固定値Xを全ビット「0」とした場合には、第1の実施形態と同じ結果が得られる。すなわち、候補0がライトデータそのもの(非反転)であり、候補1がライトデータを反転したものとなる。
この実施の形態において、ライトデータから変換の候補0および候補1を生成する際、変換の要件として可逆性が要求される。可逆性とは、変換後のライトデータを逆変換により元通り復元できることを意味する。上述のように固定値Xおよびその反転値とライトデータとの排他的論理和により候補0および候補1を生成した場合、同じ排他的論理和を施すことにより復元できるため、可逆性を有する。
また、この実施の形態において、候補0および候補1の少なくとも一方は、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下になることが必要である。このライトデータ変換部650による例では、候補0と候補1は、一方が「0」であれば他方は「1」という相補性を有するため、セット対象となるビット数およびリセット対象となるビット数はともに全体のビット数の半分以下になる。
図18は、本技術の第3の実施の形態におけるリードデータ変換部380の一構成例を示す図である。このリードデータ変換部380は、リードバッファ340において利用されるものである。
このリードデータ変換部380は、メモリセルアレイ310から読み出されたリードデータRDATA_MEMおよび選択フラグから、候補0または候補1の変換の逆変換を施したリードデータRDATAを生成するものである。この例では、リードデータ変換部380は、排他的論理和ゲート382を備え、これによってリードデータRDATA_MEMと固定値Xとの排他的論理和を生成する。また、リードデータ変換部380は、反転ゲート381および排他的論理和ゲート383を備え、固定値Xを反転ゲート381により反転した後、排他的論理和ゲート383によりリードデータRDATA_MEMと固定値Xの反転値との排他的論理和を生成する。そして、リードデータ変換部380は、選択器384を備え、メモリセルアレイ310から読み出された選択フラグに応じて、排他的論理和ゲート382または383の出力を選択してリードデータRDATAとする。
ここでは、変換の一例として、固定値Xおよびその反転値とライトデータとの排他的論理和により候補0および候補1を生成する例について説明したが、上述の通り可逆性と相補性を満たすものであれば他の変換候補を用いることができる。例えば、ビットの入れ換えやビットシフトなどを単独、もしくは、他の変換と組み合わせて用いることができる。
[テーブルを用いた変換]
上述の実施の形態ではハードウェア回路を用いて変換の候補0および候補1を生成する例について説明したが、この変換候補の生成の際にテーブル索引を利用してもよい。これにより、より柔軟な変換候補の設定を行うことができる。ただし、このテーブルの値を設定する際には、以下の2つの条件を満たす必要がある。
(1)条件1:ライトデータWDATAと候補0の値wdata0、および、ライトデータWDATAと候補1の値wdata1は、それぞれ1対1で対応する。すなわち、ライトデータWDATAに対して候補0の値wdata0が一意に決まり、候補0の値wdata0に対してライトデータWDATAが一意に決まる。候補1の値wdata1についても同様である。
(2)条件2:候補0の値wdata0および候補1の値wdata1の少なくとも何れか一方において、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下である。
図19は、本技術の第3の実施の形態における変換候補の生成の際にテーブル索引を利用する例を示す図である。この例では、説明を簡略化するために、対象となるライトデータのデータ幅として4ビットを想定し、16通りのパターンを示している。
この例では、候補0の値wdata0は、ライトデータWDATAの非反転の値となっている。また、候補1の値wdata1は、第0パターンおよび第3乃至15パターンでは、ライトデータWDATAを反転した値となっている。そして、第1パターンでは、候補1の値wdata1は、ライトデータWDATAを反転して、1ビット左シフトした値となっている。また、第2パターンでは、候補1の値wdata1は、ライトデータWDATAを反転して、1ビット右シフトした値となっている。この場合においても、上述の可逆性および相補性を有している。
ここで示したテーブル索引の例において、上述の要件を満たすことを以下に示す。まず、第0パターンおよび第3乃至15パターンについては、wdata0がライトデータWDATAの非反転の値であり、wdata1がライトデータWDATAを反転した値であることから、可逆性および相補性を有することがわかる。また、第1パターンおよび第2パターンについては、反転とシフト操作により元に復元可能であることから可逆性を有することはわかる。第1パターンおよび第2パターンについては、相補性を有しないが、以下のように、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下になることがわかる。
図20は、図19の例の第1パターンにおけるセット対象およびリセット対象となるビット数をまとめたものである。この図のように、プレリードデータの各パターンについてセット対象およびリセット対象となるビット数を調べると、何れのプレリードデータに対しても、wdata0またはwdata1の少なくとも何れか一方において2ビット以下になっている。すなわち、wdata0およびwdata1の少なくとも何れか一方において、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下になることがわかる。
図21は、図19の例の第2パターンにおけるセット対象およびリセット対象となるビット数をまとめたものである。この図のように、プレリードデータの各パターンについてセット対象およびリセット対象となるビット数を調べると、何れのプレリードデータに対しても、wdata0またはwdata1の少なくとも何れか一方において2ビット以下になっている。すなわち、wdata0およびwdata1の少なくとも何れか一方において、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下になることがわかる。
このように、図19の例は、可逆性を有し、かつ、wdata0およびwdata1の少なくとも何れか一方において、セット対象となるビット数およびリセット対象となるビット数がともに全体のビット数の半分以下になることがわかる。したがって、この例は本実施の形態における要件に適合する。
図22は、本技術の第3の実施の形態における逆変換の際にテーブル索引を利用する例を示す図である。この例は、図19の変換例に対する逆変換の例を示すものである。この場合、リードデータ変換部380と同様に、メモリセルアレイ310から読み出されたリードデータRDATA_MEMおよび選択フラグから、候補0または候補1の変換の逆変換を施したリードデータRDATAを生成する。すなわち、選択フラグが何れの候補を示しているかによって、rdata0またはrdata1の欄を選択する。そして、選択された欄において、リードデータRDATA_MEMと合致する行を探索し、その行に対応するRDATAを出力する。
[不揮発性メモリの動作]
図23は、本技術の第3の実施の形態における不揮発性メモリ300のライト処理手順の一例を示す流れ図である。
プロセッサ110からライトコマンドが発行されると、ライトバッファ330にライトデータが保持される(ステップS811)。また、ライトアドレスが示すメモリセルアレイ310のページからリードデータおよび選択フラグがプレリードデータとして読み出されて、リードバッファ340に保持される(ステップS812)。なお、これらライトデータの取得およびプレリード処理は逆の順序で行ってもよい。
変換判定部460は、ライトバッファ330に保持されたライトデータとリードバッファ340に保持されたプレリードデータとから、ライトバッファ330のライトデータに対して候補0または候補1の何れの変換を施すべきか否かを判定する(ステップS820)。その結果、候補1の変換を施すべき旨の判定がされた場合には(ステップS813:Yes)、ライトバッファ330においてライトデータに候補1の変換が施されるとともに、その選択フラグが「1」にアサートされる(ステップS814)。この場合、論理評価部350では、候補1のためのセットパターンおよびリセットパターンが生成される(ステップS815)。
一方、候補0の変換を施すべき旨の判定がされた場合には(ステップS813:No)、ライトバッファ330においてライトデータに候補0の変換が施されるとともに、その選択フラグが「0」にクリアされる(ステップS816)。この場合、論理評価部350では、候補0のためのセットパターンおよびリセットパターンが生成される(ステップS817)。
なお、候補0のためのセットパターンおよびリセットパターンは、ステップS817で生成せずに、ステップS820における後述の図24のステップS823で生成したものを使用してもよい。また、候補1のためのセットパターンおよびリセットパターンは、ステップS815で生成せずに、ステップS820における後述の図25のS833で生成したものを使用してもよい。
その後、生成されたセットパターンに従って、HRSからLRSに状態を遷移させるセット動作が行われる(ステップS818)。そして、生成されたリセットパターンに従って、LRSからHRSに状態を遷移させるリセット動作が行われる(ステップS819)。なお、これらセット動作およびリセット動作は逆の順序で行ってもよい。
図24および図25は、第3の実施の形態における変換判定処理(ステップS820)の処理手順の一例を示す流れ図である。
まず、ライトデータ変換部650は、ライトデータWDATAに対して候補0および候補1の変換を施して、それぞれwdata0およびwdata1を生成するステップS821)。
論理ゲート661および662において、候補0のライトデータおよびプレリードデータが比較され(ステップS822)、それぞれ候補0のセットパターンおよびリセットパターンが生成される(ステップS823)。そして、カウンタ671および672において、それぞれ候補0のセット対象のビット数m10およびリセット対象のビット数m01が計数される(ステップS824)。
その結果、候補0について、セット対象のビット数m10がリセット対象のビット数m01よりも大きい場合には(ステップS825:Yes)、選択器681はセット対象のビット数m10を出力値N_w0とする(ステップS826)。一方、セット対象のビット数m10がリセット対象のビット数m01よりも大きくない場合には(ステップS825:No)、選択器681はリセット対象のビット数m01を出力値N_w0とする(ステップS827)。
論理ゲート663および664において、候補1のライトデータおよびプレリードデータが比較され(ステップS831)、それぞれ候補1のセットパターンおよびリセットパターンが生成される(ステップS832)。そして、カウンタ673および674において、それぞれ候補1のセット対象のビット数m11およびリセット対象のビット数m00が計数される(ステップS833)。
その結果、候補1について、セット対象のビット数m11がリセット対象のビット数m00よりも大きい場合には(ステップS834:Yes)、選択器682はセット対象のビット数m11を出力値N_w1とする(ステップS835)。一方、セット対象のビット数m11がリセット対象のビット数m00よりも大きくない場合には(ステップS834:No)、選択器682はリセット対象のビット数m00を出力値N_w1とする(ステップS836)。
なお、ステップS821乃至S827の処理とステップS831乃至S836の処理とは、互いに逆の順序で行ってもよく、また、図16に示したように同時並行に行ってもよい。
比較器691は、選択器681の出力値N_w0と選択器682の出力値N_w1とを比較して、出力値N_w0の方が大きい場合には(ステップS837:Yes)、候補1を選択すべき旨の判定をする(ステップS838)。一方、出力値N_w0の方が大きくない場合には(ステップS837:No)、候補0を選択すべき旨の判定をする(ステップS839)。
図26は、本技術の第3の実施の形態における不揮発性メモリ300のリード処理手順の一例を示す流れ図である。
プロセッサ110からリードコマンドが発行されると、リードアドレスが示すメモリセルアレイ310のページからリードデータおよび選択フラグが読み出されて、リードバッファ340に保持される(ステップS841)。このとき、リードバッファ340における選択フラグがアサートされていた場合には(ステップS842:Yes)、リードバッファ340においてリードデータに対して候補1への変換の逆変換が施される(ステップS843)。選択フラグがアサートされていなかった場合には(ステップS842:No)、リードバッファ340においてリードデータに対して候補0への変換の逆変換が施される(ステップS844)。そして、このリードバッファ340に保持されたリードデータは、プロセッサ110へ出力される(ステップS845)。
このように、本技術の第3の実施の形態によれば、セットとリセットを区別して遷移ビット数を判断することにより、ライトデータに対してどのような変換を施すかについて、状態遷移に伴う消費電流を考慮して適切な判定を行うことができる。このような判定を行うことにより、Nビットのデータに対してセットおよびリセットを行うビット数は、ワーストケースでそれぞれN/2ビットに抑えることができる。換言すれば、従来と同じワーストケースの消費電力で考えた場合、同じ時間で2倍のサイズのデータアクセスを行うことができ、アクセス速度を2倍にすることができる。
[変形例]
図27は、本技術の第3の実施の形態における変換判定部460の変形例を示す図である。この変換判定部460の変形例は、図16により説明したものと比べて、論理ゲート663および664、カウンタ673および674、および、選択器682を削除した構成となっている。そして、比較器691の一方の入力には選択器682の出力が接続されていたが、この変形例では比較器692の一方の入力に全体のビット数Nの半分の値(N/2)が入力されている。これは、上述のように、候補0および候補1の何れか一方は、セット対象となるビット数またはリセット対象となるビット数が全体のビット数の半分以下になることを想定しているため、一方だけを判定することにより何れを選択すべきか判断できるからである。すなわち、選択器681の出力がN/2よりも大きい場合には候補1を選択し、選択器681の出力がN/2よりも小さい場合には候補0を選択する。選択器681の出力がN/2と等しい場合には何れの候補を選択してもよい。
図28は、第3の実施の形態における変換判定処理(ステップS820)の処理手順の変形例を示す流れ図である。この変形例におけるステップS851乃至S857は、図24において説明したステップS821乃至S827と同様である。
比較器692は、選択器681の出力値N_w0とN/2とを比較して、出力値N_w0の方が大きい場合には(ステップS867:Yes)、候補1を選択すべき旨の判定をする(ステップS868)。一方、出力値N_w0の方が大きくない場合には(ステップS867:No)、候補0を選択すべき旨の判定をする(ステップS869)。
このように、第3の実施の形態の変形例によれば、候補0および候補1のうち何れか一方についてのみ、セット対象またはリセット対象となるビット数を判定すればよいため、変換判定処理を簡略化することができる。第3の実施の形態ではセット対象またはリセット対象となるビット数が最小になるという観点で判断していたが、N/2以下にするためにはこの変形例で対応可能である。なお、ここではセット対象またはリセット対象となるビット数を判定する対象を候補0のみとする例について説明したが、候補1のみを対象としてもよいことはいうまでもない。
また、この第3の実施の形態では、不揮発性メモリ300において変換制御を行う例について説明したが、第2の実施の形態と同様に、メモリコントローラ200において変換制御を行うようにしてもよい。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
を具備する記憶制御装置。
(2)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と、前記プレリードデータから前記ライトデータの第2の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方とを比較して、前記第1の変換候補または前記第2の変換候補の何れを選択すべきかについて前記比較対象の遷移ビット数が小さくなる方を判定結果として生成する変換判定部と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
を具備する記憶制御装置。
(3)前記変換判定部は、
前記プレリードデータと前記第1の変換候補および前記第2の変換候補とにおける前記第1の値から第2の値への遷移または前記第1の値から第2の値への遷移の組合せを対応するビット毎に検出する検出器と、
前記組合せの各々について検出されたビット数を計数するカウンタと、
前記第1の変換候補および前記第2の変換候補の各々について前記第1の値から前記第2の値への遷移ビット数と前記第2の値から前記第1の値への遷移ビット数とのうち大きい方を選択する選択器と、
前記第1の変換候補および前記第2の変換候補の各々について選択された遷移ビット数を比較して、前記第1の変換候補または前記第2の変換候補の何れかを選択すべきかについて前記比較対象の遷移ビット数が小さくなる方を前記判定結果とする比較器とを備える
前記(2)に記載の記憶制御装置。
(4)前記ライトデータおよび前記選択情報を保持するライトバッファをさらに具備し、
前記変換制御部は、前記判定結果に従って前記ライトバッファに保持されているライトデータを前記第1の変換候補または前記第2の変換候補の何れかに変換させるとともに何れに変換されたのかを前記選択情報として前記ライトバッファに保持させる
前記(2)または(3)に記載の記憶制御装置。
(5)前記第1の変換候補は前記ライトバッファと所定の値との排他的論理和演算により得られる値であり、前記第2の変換候補は前記ライトバッファと前記所定の値の反転値との排他的論理和演算により得られる値である前記(2)から(4)のいずれかに記載の記憶制御装置。
(6)前記第1の変換候補は前記ライトバッファと所定の値との排他的論理和演算により得られる値に対して所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものであり、前記第2の変換候補は前記ライトバッファと前記所定の値の反転値との排他的論理和演算により得られる値に対して前記所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものである前記(2)から(5)のいずれかに記載の記憶制御装置。
(7)前記第1の変換候補は前記ライトバッファと同じ値であり、前記第2の変換候補は前記ライトバッファの反転値である前記(2)から(6)のいずれかに記載の記憶制御装置。
(8)前記第1の変換候補および前記第2の変換候補は、前記プレリードデータから前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と、前記プレリードデータから前記第2の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方との何れか一方は前記ライトデータの全ビット長の半分以下になるように決定される前記(2)から(7)のいずれかに記載の記憶制御装置。
(9)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と前記ライトデータの全ビット長の半分とを比較して、前記比較対象の遷移ビット数が前記ライトデータの全ビット長の半分よりも小さい場合には前記第1の変換候補を選択し、それ以外の場合には前記第2の変換候補を選択すべき旨を判定結果として生成する変換判定部と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
を具備する記憶制御装置。
(10)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、
前記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
を具備する記憶装置。
(11)前記メモリセルアレイは可変抵抗素子である前記(10)に記載の記憶装置。
(12)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、
前記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と、
前記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータと
を具備する情報処理システム。
(13)ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理手順と、
前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定手順と、
前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御手順と
を具備する記憶制御方法。
110 プロセッサ
120 DRAM
200 メモリコントローラ
220、320 制御部
230、330 ライトバッファ
240、340 リードバッファ
260、360 反転判定部
270、370 反転制御部
280 メモリインターフェース
290 システムインターフェース
300 不揮発性メモリ
310 メモリセルアレイ
311 データ
312 反転フラグ
313 選択フラグ
350 論理評価部
390 外部インターフェース
400 メモリモジュール
460 変換判定部
470 変換制御部
611〜614、661〜664 論理ゲート
621〜624、671〜674 カウンタ
631、632、681、682 選択器
641、691 比較器
650 ライトデータ変換部

Claims (13)

  1. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
    を具備する記憶制御装置。
  2. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と、前記プレリードデータから前記ライトデータの第2の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方とを比較して、前記第1の変換候補または前記第2の変換候補の何れを選択すべきかについて前記比較対象の遷移ビット数が小さくなる方を判定結果として生成する変換判定部と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
    を具備する記憶制御装置。
  3. 前記変換判定部は、
    前記プレリードデータと前記第1の変換候補および前記第2の変換候補とにおける前記第1の値から前記第2の値への遷移または前記第の値から前記の値への遷移の組合せを対応するビット毎に検出する検出器と、
    前記組合せの各々について検出されたビット数を計数するカウンタと、
    前記第1の変換候補および前記第2の変換候補の各々について前記第1の値から前記第2の値への遷移ビット数と前記第2の値から前記第1の値への遷移ビット数とのうち大きい方を選択する選択器と、
    前記第1の変換候補および前記第2の変換候補の各々について選択された遷移ビット数を比較して、前記第1の変換候補または前記第2の変換候補の何れかを選択すべきかについて前記比較対象の遷移ビット数が小さくなる方を前記判定結果とする比較器とを備える
    請求項2記載の記憶制御装置。
  4. 前記ライトデータおよび前記選択情報を保持するライトバッファをさらに具備し、
    前記変換制御部は、前記判定結果に従って前記ライトバッファに保持されているライトデータを前記第1の変換候補または前記第2の変換候補の何れかに変換させるとともに何れに変換されたのかを前記選択情報として前記ライトバッファに保持させる
    請求項2または3に記載の記憶制御装置。
  5. 前記第1の変換候補は前記ライトバッファと所定の値との排他的論理和演算により得られる値であり、前記第2の変換候補は前記ライトバッファと前記所定の値の反転値との排他的論理和演算により得られる値である請求項記載の記憶制御装置。
  6. 前記第1の変換候補は前記ライトバッファと所定の値との排他的論理和演算により得られる値に対して所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものであり、前記第2の変換候補は前記ライトバッファと前記所定の値の反転値との排他的論理和演算により得られる値に対して前記所定のビットシフト操作またはビット入れ換え操作の何れか一方の操作もしくはそれら操作の組合せを施したものである請求項記載の記憶制御装置。
  7. 前記第1の変換候補は前記ライトバッファと同じ値であり、前記第2の変換候補は前記ライトバッファの反転値である請求項記載の記憶制御装置。
  8. 前記第1の変換候補および前記第2の変換候補は、前記プレリードデータから前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と、前記プレリードデータから前記第2の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方との何れか一方は前記ライトデータの全ビット長の半分以下になるように決定される請求項2から7のいずれかに記載の記憶制御装置。
  9. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方と前記ライトデータの全ビット長の半分とを比較して、前記比較対象の遷移ビット数が前記ライトデータの全ビット長の半分よりも小さい場合には前記第1の変換候補を選択し、それ以外の場合には前記第2の変換候補を選択すべき旨を判定結果として生成する変換判定部と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
    を具備する記憶制御装置。
  10. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、
    前記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と
    を具備する記憶装置。
  11. 前記メモリセルアレイは可変抵抗素子である請求項10記載の記憶装置。
  12. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイと、
    前記メモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理部と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定部と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御部と、
    前記メモリアレイに対するリードコマンドまたはライトコマンドを発行するホストコンピュータと
    を具備する情報処理システム。
  13. ビット毎に第1の値または第2の値の何れか一方の値を保持するメモリセルアレイの所定のデータ領域について、ライト処理に先立ってライト対象のデータ領域からプレリードデータを読み出すプレリード処理手順と、
    前記プレリードデータから前記ライト処理の対象データとなるライトデータの第1の変換候補または第2の変換候補の何れに遷移させるかを選択する際に、前記第1の変換候補へ遷移させる場合の前記第1の値から前記第2の値への遷移ビット数および前記第2の値から前記第1の値への遷移ビット数の大きい方の値に基づいて前記第1の変換候補または前記第2の変換候補の何れを選択すべきかを判定結果として生成する変換判定手順と、
    前記判定結果に応じて前記第1の変換候補または前記第2の変換候補の何れかを選択するとともに、何れが選択されたのかを選択情報として出力する変換制御手順と
    を具備する記憶制御方法。
JP2013048776A 2012-06-19 2013-03-12 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Expired - Fee Related JP5929790B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013048776A JP5929790B2 (ja) 2012-06-19 2013-03-12 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US13/873,679 US9229714B2 (en) 2012-06-19 2013-04-30 Memory control apparatus, memory apparatus, information processing system, and processing method for use therewith
CN201310231214.5A CN103513934B (zh) 2012-06-19 2013-06-09 存储器控制设备、存储器设备、信息处理系统和处理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012137397 2012-06-19
JP2012137397 2012-06-19
JP2013048776A JP5929790B2 (ja) 2012-06-19 2013-03-12 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Publications (3)

Publication Number Publication Date
JP2014026712A JP2014026712A (ja) 2014-02-06
JP2014026712A5 JP2014026712A5 (ja) 2015-04-09
JP5929790B2 true JP5929790B2 (ja) 2016-06-08

Family

ID=49757034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013048776A Expired - Fee Related JP5929790B2 (ja) 2012-06-19 2013-03-12 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Country Status (3)

Country Link
US (1) US9229714B2 (ja)
JP (1) JP5929790B2 (ja)
CN (1) CN103513934B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
CN106255961B (zh) * 2014-05-09 2020-03-31 索尼公司 存储控制设备、存储设备及存储控制方法
KR102636091B1 (ko) * 2016-10-14 2024-02-14 에스케이하이닉스 주식회사 저항성 메모리 장치, 이를 위한 선택적 쓰기 장치 및 동작 방법
JP6387134B1 (ja) * 2017-03-09 2018-09-05 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
JP6860787B2 (ja) * 2017-07-25 2021-04-21 富士通株式会社 メモリ制御回路、メモリ、及びメモリ制御方法
KR20190036795A (ko) * 2017-09-28 2019-04-05 에스케이하이닉스 주식회사 전류 소모량을 줄일 수 있는 반도체 메모리 장치 및 이를 포함하는 시스템
KR20190074890A (ko) * 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10431301B2 (en) 2017-12-22 2019-10-01 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10566052B2 (en) 2017-12-22 2020-02-18 Micron Technology, Inc. Auto-referenced memory cell read techniques
CN108215513B (zh) * 2018-02-05 2019-06-21 杭州旗捷科技有限公司 可变阈值的反馈电路、耗材芯片、耗材
KR102495539B1 (ko) * 2018-07-16 2023-02-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
TWI725434B (zh) * 2019-05-24 2021-04-21 慧榮科技股份有限公司 藉助於組態設定來進行動態節流控制之方法、具備計算機功能的主機、以及資料儲存裝置及其控制器
US10937495B2 (en) 2019-07-02 2021-03-02 Winbond Electronics Corp. Resistive memory apparatus and method for writing data thereof
JP6893535B2 (ja) * 2019-08-15 2021-06-23 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 抵抗メモリ及びそのデータ書込み方法
WO2021176243A1 (en) * 2020-03-03 2021-09-10 Micron Technology, Inc. On-the-fly programming and verifying method for memory cells based on counters and ecc feedback
TWI755154B (zh) 2020-03-03 2022-02-11 美商美光科技公司 基於計數器及錯誤校正碼反饋用於記憶體單元之即時程式化及驗證方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4134637B2 (ja) * 2002-08-27 2008-08-20 株式会社日立製作所 半導体装置
KR100510512B1 (ko) * 2002-11-18 2005-08-26 삼성전자주식회사 이중 데이터율 동기식 반도체 장치의 데이터 출력 회로 및그 방법
CN100476810C (zh) * 2005-05-08 2009-04-08 浙江大学 一种实现信息系统数据自动交换的方法
JP4719236B2 (ja) * 2008-03-21 2011-07-06 株式会社東芝 半導体記憶装置及び半導体記憶システム
JP5942781B2 (ja) * 2012-04-16 2016-06-29 ソニー株式会社 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法

Also Published As

Publication number Publication date
US9229714B2 (en) 2016-01-05
US20130339637A1 (en) 2013-12-19
JP2014026712A (ja) 2014-02-06
CN103513934B (zh) 2017-06-09
CN103513934A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
JP5929790B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5942781B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP6447629B2 (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
JP5839048B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5853899B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5768654B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US10452475B2 (en) Memory system and resistance change type memory
JP2014026712A5 (ja)
KR20170096072A (ko) 전자 장치
JP5853973B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
EP2799998A1 (en) Storage control device, storage device, information processing system, and processing methods in same
JP2014086062A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
JP6711281B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP5853843B2 (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
JP2014013635A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP6493062B2 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
JP2013205872A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
WO2017073127A1 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
WO2016056290A1 (ja) メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法
JP2017054248A (ja) メモリコントローラ、メモリおよびメモリシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160314

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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R151 Written notification of patent or utility model registration

Ref document number: 5929790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees