JP2018049672A - メモリシステムおよびプロセッサシステム - Google Patents
メモリシステムおよびプロセッサシステム Download PDFInfo
- Publication number
- JP2018049672A JP2018049672A JP2016183330A JP2016183330A JP2018049672A JP 2018049672 A JP2018049672 A JP 2018049672A JP 2016183330 A JP2016183330 A JP 2016183330A JP 2016183330 A JP2016183330 A JP 2016183330A JP 2018049672 A JP2018049672 A JP 2018049672A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- storage unit
- control unit
- queue
- page
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/1673—Reading or sensing circuits or methods
-
- 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/1677—Verifying circuits or methods
-
- 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
- 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/1693—Timing circuits or methods
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
【課題】エラー発生確率の低下、アクセス速度の向上、および低消費電力化を図る。【解決手段】メモリシステムは、不揮発メモリと、不揮発メモリより高速アクセスが可能で、不揮発メモリに対するアクセス情報を不揮発メモリにアクセスする前に記憶する記憶部と、記憶部の空き容量、または記憶部に記憶されるアクセス情報に基づいて、不揮発メモリの書込みパルス幅を制御するメモリ制御部と、を備える。【選択図】図1
Description
本発明の実施形態は、メモリシステムおよびプロセッサシステムに関する。
携帯情報端末に用いられるプロセッサは低消費電力であることが求められる。このため、キャッシュメモリやメインメモリを不揮発性メモリで置き換える検討が行われている。MRAM(Magnetoresistive Random Access Memory)は種々の不揮発性メモリの中で高い書き換え耐性と、高速に読出しと書込みを行う動作性能と、高集積可能なセル面積の3つの特徴を同時に満たしうるものとして注目されている。MRAMをキャッシュとして利用する際に動作速度が他の不揮発性メモリに比べて高速であることと、面積効率が従来のメモリに比べて高く、大容量の高速キャッシュをプロセッサに搭載できることから、MRAMに対して大きな期待が寄せられている。特にMRAMの中でも、STT−MRAM(Spin Transfer Torque MRAM)と呼ばれる垂直磁気のスピン注入を用いた方式は、書き込み電流と書き込み遅延が非常に小さく、高速動作が可能なため、幅広い応用が期待されている。
しかしながら、MRAMは、SRAMやDRAMに比べて、書き込み時のエラー発生確率が高いという問題がある。データを書き込んだ後に読み出して検証するベリファイ処理を行うことも考えられるが、ベリファイ処理に時間がかかるため、アクセス速度は低下してしまう。あるいは、書込み電圧を高くすることも考えられるが、消費電力が増える要因になる。また、書込みパルス幅を長くすることも考えられるが、やはりアクセス速度が低下してしまう。
このように、キャッシュメモリやメインメモリをMRAM等の不揮発メモリで構成したとしても、エラー発生確率が高くなったり、アクセス速度が低下したり、消費電力が低下するなどの問題が生じるおそれが高い。
本発明の一態様は、エラー発生確率の低下、アクセス速度の向上、および低消費電力化を実現可能なメモリシステムおよびプロセッサシステムを提供するものである。
本実施形態では、不揮発メモリと、
前記不揮発メモリより高速アクセスが可能で、前記不揮発メモリに対するアクセス情報を前記不揮発メモリにアクセスする前に記憶する記憶部と、
前記記憶部の空き容量、または前記記憶部に記憶される前記アクセス情報に基づいて、前記不揮発メモリの書込みパルス幅を制御するメモリ制御部と、を備える、メモリシステムが提供される。
前記不揮発メモリより高速アクセスが可能で、前記不揮発メモリに対するアクセス情報を前記不揮発メモリにアクセスする前に記憶する記憶部と、
前記記憶部の空き容量、または前記記憶部に記憶される前記アクセス情報に基づいて、前記不揮発メモリの書込みパルス幅を制御するメモリ制御部と、を備える、メモリシステムが提供される。
以下、図面を参照しながら、一実施形態について説明する。図1は一実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、メモリシステム1の他に、プロセッサ3を含むホスト回路4を備えている。
ホスト回路4の具体的な内部構成は問わない。ホスト回路4内に設けられるプロセッサ3は、シングルコアのプロセッサ3でもよいし、マルチコアのプロセッサ3でもよい。ホスト回路4の内部構成は任意であり、例えば、ホスト回路4内には、1階層以上のキャッシュメモリが設けられていてもよい。また、ホスト回路4内には、プロセッサ3から発行されるアドレスを管理するMMU(Memory Management Unit)、アドレス変換を行うページテーブルやTLB(Translation Lookaside Buffer)などが設けられていてもよい。
メモリシステム1は、メモリコントローラ5と、MRAM6とを有する。メモリシステム1内のMRAM6は、垂直磁化方式のMTJ(Magnetic Tunnel Junction)記憶素子を用いたスピン注入書込みを行うSTT−MRAMでもよいし、他の書込み方式のMRAM6でもよい。
図1のMRAM6は、プロセッサ3によりアクセスされるメインメモリでもよいし、メインメモリよりもアクセス優先順位が高いキャッシュメモリでもよい。例えば、ホスト回路4内に、プロセッサ3と低次のキャッシュメモリが含まれている場合、図1のMRAM6は高次のキャッシュメモリでもよい。
なお、図1のMRAM6を、ReRAMなどの他の不揮発メモリに置き換えてもよい。また、図1のMRAM6をメインメモリとして用いる場合、図1のMRAM6の他に、DRAM(Dynamic RAM)等の揮発メモリを設けて、ハイブリッド構成のメインメモリにしてもよい。
図1のメモリコントローラ5は、ホスト回路4内のプロセッサ3からのアクセス要求に応じて、MRAM6に対するデータの書き込み制御と読み出し制御とを行う。図1のメモリコントローラ5は、MRAM制御部7と、クロック同期化部8と、ホストインタフェース部9と、コントローラコア部10とを有する。
MRAM制御部7は、MRAM6に対するデータの書き込み制御と読み出し制御を行う。クロック同期化部8は、外部から入力されたクロック信号CLKに同期化した信号を生成して、MRAM制御部7に供給する。これにより、MRAM制御部7は、外部から入力されたクロック信号CLKに同期させて、MRAM6に対するデータの書き込み制御と読み出し制御を行う。
ホストインタフェース部9は、ホスト回路4との間で各種の信号を送受する。ホスト回路4からホストインタフェース部9に送信される信号は、例えば、コマンド、アドレス、データなどである。コマンドは、書込みコマンドと読み出しコマンドを含んでいる。ホストインタフェース部9からホスト回路4に送信される信号は、例えば、コマンド応答信号、アドレス、データ、ビジー信号などである。
コントローラコア部10は、MRAM制御部7とともに、MRAM6へのアクセス制御を行う。コントローラコア部10は、キュー格納部(記憶部)11と、キュー追加部12と、キューポップ部13と、ページクラスタ制御部14と、キュー実行部15と、ベリファイ制御部16と、キュー出力部17と、状態遷移制御部18と、初期化制御部19と、アドレス生成部20と、バンク管理部21とを有する。
キュー格納部11は、ホスト回路4がMRAM6に対して要求するアクセス情報をMRAM6にアクセスする前に一時的に記憶する。以下では、個々のアクセス情報をキューと呼ぶ。個々のキューは、コマンド、アドレスおよびデータを含んでいる。
キュー格納部11は、例えば、D型フリップフロップなどからなるレジスタで構成可能である。キュー格納部11は、小容量ながらも、MRAM6よりも高速にデータの書込みおよび読み出しを行うことができる。
キュー追加部12は、ホスト回路4から新たなアクセス情報が送信されてきた場合に、そのアクセス情報を新たなキューとしてキュー格納部11に書き込む制御を行う。また、後述するように、MRAM6に対するベリファイ処理を後回しにした場合には、キュー追加部12は、ベリファイ処理のためのキューをMRAM制御部7から受け取って、キュー格納部11に追加する制御を行う。
ページクラスタ制御部14は、キュー格納部11内のキューをページ単位に分類して、ページ単位のクラスタを生成し、各クラスタごとにキューを取り出す制御を行う。キューポップ部13は、ページクラスタ制御部14の制御の下で、次に実行されるべきキューをキュー格納部11から取り出して、キュー実行部15に供給する。
キュー実行部15は、キュー格納部11からキューポップ部13を介して取り出されたキューに含まれるコマンドを実行する。コマンドが書込みコマンドであれば、後述するように、書込みモードの選択を行う。キュー実行部15は、キュー格納部11内のキューをページ単位で分類した各クラスタに含まれる各キューごとに書込みモードを選択する。
後述するように、本実施形態では、書込みモードとして、第1モードと第2モードを有する。第1モードは、キュー格納部11の空き容量、またはキュー格納部11に格納されているキューに基づいて、MRAM6にデータを書き込んだ後に書き込んだデータを読み出して検証するベリファイ処理を行うモードである。第2モードは、第1モードよりも長い書込みパルス幅でベリファイ処理なしでデータを書き込むモードである。
より具体的には、キュー実行部15は、各クラスタ内の書込みコマンドの数Nwと、各クラスタ内の読み出しコマンドの数Nrと、各クラスタ内の総コマンド数Nqとを計測する。そして、キュー実行部15は、Nqがキュー格納部11に格納可能な最大数に達した場合か、あるいはNw>Nrの場合に、第2モードを選択し、それ以外では、第1モードを選択する。
キュー実行部15は、Nw>Nrか否かを判定する代わりに、書込みコマンドの後に少なくとも一つ以上の読み出しコマンドが続いているか否かを判定してもよい。この場合、書込みコマンドの後に少なくとも一つ以上の読み出しコマンドが続いている場合には、第1モードを選択し、書込みコマンドの後に読み出しコマンドが続いていなければ、第2モードを選択する。
第2モードは、第1モードよりも、書込みパルス幅を長くしているため、ベリファイ処理を行わなくても、エラー発生確率は低いと考えられる。逆の言い方をすると、第2モードでは、エラー発生確率が実用上問題がない程度にまで下がるように、書込みパルス幅を長くする。
第1モードは、第2モードよりも書込みパルス幅が短いため、MRAM6への高速の書込みが可能であるが、そのままではエラー発生確率が高くなるおそれがある。このため、書込み後にベリファイ処理を行い、ベリファイ処理により書込みエラーが検出されると、再度の書込みを行う。ただし、書込みコマンドのたびにベリファイ処理を行っていては、後続のキューを迅速に処理できず、キュー格納部11が満杯になってしまう。特に、書込みコマンドの後に読み出しコマンドがある場合、書込みコマンドの処理の中でベリファイ処理まで行うとすると、読み出しコマンドの処理タイミングが遅れてしまい、プロセッサ3の処理性能が低下してしまう。そこで、本実施形態では、第1モード時には、同じページ内の書込みコマンドをベリファイ処理なしで連続的に実行し、ページを移動する際に、そのページ内のベリファイ処理をまとめて実行する。これにより、同じページ内の読み出しコマンドを迅速に処理でき、アクセス性能の低下を防止できる。
ベリファイ制御部16は、キュー実行部15が第1モードを選択したときに、各書込みコマンドのベリファイ処理を後回しにする制御を行う。具体的には、ベリファイ処理のためのキューを生成して、キュー追加部12に送付する。キュー追加部12は、ベリファイ処理のためのキューをキュー格納部11に追加で格納する。
状態遷移制御部18は、キュー実行部15でのキューの実行結果に基づいて、MRAM6にアクセスするための各種制御信号を生成する。初期化制御部19は、電源起動時等にコントローラコア部10の内部を初期化する制御を行う。アドレス生成部20は、キューに含まれるアドレスに基づいて、MRAM6にアクセスするためのアドレスを生成する。
バンク管理部21は、MRAM6を複数のバンクに分割して、各バンクごとにアクセス制御を行う。各バンクごとに複数のページを含んでいる。バンク管理部21は、各バンクごとにアクセスするべきページを個別に選択することができる。
図2はMRAM6の構造を示す図である。図2に示すように、MRAM6は、複数のバンクb1〜bnに分かれており、各バンクは複数のメモリ領域6aを有する。各メモリ領域6aは、それぞれ個別のページに対応している。各メモリ領域6aごとに、駆動するワード線が異なっている。プロセッサ3からのアクセス情報に含まれるアドレスをデコードすることで、駆動するワード線が決定されるが、ワード線は負荷が大きいため、駆動するのに時間がかかる。このため、各ページに対応した各メモリ領域6aにアクセスする場合、そのメモリ領域6aに対する書込み処理と読み出し処理を連続的に行った方がよい。
また、異なるページのメモリ領域6aにアクセスするには、新たなアドレスをデコードして新たなワード線を駆動する処理が必要であり、このような処理はページのオープン処理と呼ばれている。また、あるページのメモリ領域6aへのアクセスを終了する場合の処理はクローズ処理と呼ばれている。例えば、ページAのメモリ領域6aへのアクセスから、同一バンク内のページBのメモリ領域6aへのアクセスに切り替える場合、ページAのクローズ処理を行った後に、ページBのオープン処理を行う必要がある。通常、各バンクで開いた状態にしておけるページの数は1ページであるため、同一バンク内の別のページにアクセスするためには、開いているページをクローズ処理する必要がある。これは、各バンクに実装されているセンスアンプ回路と読み出したデータを格納するロウバッファ回路の数に限りがあり、開いたままの状態にしておくことのできるページの数に限りがあるためである。
このように、ページを切り替えるたびに、オープン処理とクローズ処理が必要になることから、ページの切替はできるだけ少なくするのが望ましい。このため、本実施形態では、キュー格納部11内のキューをページごとに分けた複数のクラスタを生成し、各クラスタごとにMRAM6へのアクセスを行うようにしている。
図3はキュー格納部11の構造を示す図である。キュー格納部11は、ページ単位には分かれておらず、ホスト回路4からのアクセス情報が順に格納される。アクセス情報は、コマンド、アドレスおよびデータを含むため、キュー格納部11には、これら3種類の情報を格納する領域が設けられている。上述したように、キュー格納部11は、例えばレジスタにより構成されるが、SRAMのような高速メモリで構成してもよい。
キュー格納部11内のキューをクラスタに分ける処理は、ページクラスタ制御部14により行われる。図4はページクラスタ制御部14により生成されるクラスタの一例を示す図である。図4のクラスタAとBは、それぞれページAとページBに対応している。クラスタAには、ページAに対するキューの情報が格納されている。より具体的には、クラスタAとBには、それぞれページAとBに対する書込みコマンドや読み出しコマンドが格納されている。クラスタAとBには、ホスト回路4内のプロセッサ3が発行した順序にアクセス情報が記憶されている。
キュー実行部15は、クラスタAの先頭のアクセス情報のコマンドから順に実行する。先頭のコマンドを実行する前に、クラスタAに対応するページAのオープン処理を行う。
クラスタA内のコマンドは、書込みコマンドと読み出しコマンドを含んでいる。読み出しコマンドの場合は、予め定めた手順でMRAM6から指定されたアドレスに対応するデータの読み出しを行う。書込みコマンドの場合は、後述するように、キュー格納部11の空き容量、またはキュー格納部11内のキューに基づいて、第1モードまたは第2モードを選択して、MRAM6へのデータの書き込みを行う。例えば、第1モードを選択した場合は、クラスタA内のすべての書込みコマンドをベリファイ処理なしで順に実行する。そして、クラスタA内のすべてのコマンドの実行が終了して、次のクラスタの処理を開始する前に、ベリファイ処理をまとめて行う。次のクラスタの処理を開始する前にベリファイ処理を行う理由は、次のクラスタの処理が同一バンクの別のページであったときに、ページAのクローズ処理が行われてしまうためである。ページAのクローズ処理を実行した後でベリファイ処理を行おうとすると、再度ページAのオープン処理を行う必要が生じ、メモリアクセスの効率が低下してしまうため、次のクラスタの処理を開始する前に、ベリファイ処理をまとめて行う方が、効率が良い。
なお、図4のクラスタAのように、読み出しコマンドと書込みコマンドが混在している場合、キュー実行部15は、その順番はそのまま維持して、各コマンドを実行する。すなわち、読み出しコマンドと書込みコマンドの実行順序を入れ替えることはしない。コマンドの順番を入れ替えて実行すると、データの整合性が取れなくなるおそれがあるが、本実施形態では、読出コマンドと書込みコマンドの順番を入れ替えないため、データの整合性が取れないといった不具合は生じない。このように、キュー実行部15は、第1モード時の書込みコマンド実行の際のベリファイ処理だけを後回しにすることに関してだけ、アウト・オブ・オーダ処理を行う。
ここで、各クラスタを処理するにあたって、ページのオープン/クローズのポリシとして、オープンページポリシとクローズドページポリシとがある。オープンページポリシは、同一バンク内の別のページにアクセスするまでは、いったんオープンしたページをオープンし続けるポリシである。このポリシでは、次にアクセスするのが別のページだった場合には、今までオープンしていたページのクローズ処理を行う必要がある。一方、次にアクセスするのが同一のページだった場合は、ページをオープンしたままにするため、ページのオープン処理を省略できる。クローズドページポリシは、ページへのアクセスが完了すると、その都度、必ずページをクローズするポリシである。次にそのバンクに来るアクセスが別のページだった場合、クローズ処理を前もって行うことができるため、オープン処理をスムーズに行うことができる反面、次にそのバンクに来るアクセスが同一ページでも、クローズ処理とオープン処理を行わなければならない。
キュー実行部15は、図4のクラスタA内のすべてのコマンド実行を終えると、次に、クラスタBのコマンド実行を開始する。MRAM6がクローズドページポリシを採用している場合、もしくは、クラスタBのページBがクラスタAのページAと同一バンクの別なページであった場合、クラスタAのページAはクローズ処理を行う。クラスタBのページBがすでに開かれているページでなかった場合、図4のクラスタBを実行するにあたって、クラスタBに対応するページBのオープン処理を行う。キュー実行部15は、クラスタBの先頭のアクセス情報のコマンドから順に実行する。実行すべきコマンドが書込みコマンドの場合には、第1モードまたは第2モードを選択する。例えば、キューの空き容量がゼロであった場合、第2モードを選択する。キュー実行部15は、第2モードを選択した場合には、クラスタB内の各書込みコマンドを実行する際に、書込みパルス幅を長くする。
図5および図6はコントローラコア部10の処理動作の一例を示すフローチャートである。図5はオープンページポリシを採用した場合のフローチャート、図6はクローズドページポリシを採用した場合のフローチャートである。図5および図6のフローチャートは、図1の中で、主にページクラスタ制御部14、キュー実行部15、ベリファイ制御部16および状態遷移制御部18が行う処理を示している。図5および図6の処理を行うページクラスタ制御部14、キュー実行部15、ベリファイ制御部16および状態遷移制御部18は、メモリ制御部を構成している。このメモリ制御部は、キュー格納部11の空き容量、またはキュー格納部11に格納されているアクセス情報に基づいて、MRAM6の書込みパルス幅を制御する。言い換えると、メモリ制御部は、キュー格納部11の空き容量、またはキュー格納部11に格納されている書込みコマンドと読み出しコマンドに基づいて、MRAM6の書込みパルス幅を制御する。
まず、図5のフローチャートの処理を説明する。キュー実行部15は、キュー格納部11内の未処理のページに対応するクラスタを選択する(ステップS1)。上述したように、クラスタの生成は、ページクラスタ制御部14により行われる。次に、該当ページがすでにオープンしているか否かを判定する(ステップS2)。まだ該当ページがオープンしていなければ、現在オープンしているページをクローズする(ステップS3)。
次に、キュー実行部15は、選択したクラスタに対応するページをオープンする(ステップS4)。ここでは、MRAM制御部7を介して、該当するページに対応するメモリ領域6aのワード線を駆動する。
次に、キュー実行部15は、キューポップ部13を介してクラスタ内の各キューを先頭から順に取り込む(ステップS5)。次に、キュー実行部15は、取り込んだキューのコマンドが読み出しコマンドか否かを判定する(ステップS6)。読み出しコマンドであれば、MRAM制御部7を介して、MRAM6の該当するアドレスにアクセスして、該当するデータを読み出す制御を行う(ステップS7)。
ステップS6の判定がNOの場合は、書込みコマンドであると判断して、キュー格納部11に空き容量がないか否かを判定する(ステップS8)。あるいは、ステップS8では、キュー格納部11に格納されたキューの書込みコマンド数が読出コマンド数より多いか否かを判定してもよい。あるいは、ステップS8では、ステップS3で取り込んだキューの書込みコマンドの後に読み出しコマンドが続いているか否かを判定してもよい。
ステップS8の判定がYESの場合は、第2モードを選択する(ステップS9)。そして、状態遷移制御部18にて、通常の書込みパルス幅より長い書込みパルスを生成して、MRAM制御部7を介してMRAM6にアクセスし、ステップS5で取り込んだキューにて指定されるアドレスにデータを書き込む(ステップS10)。この場合、書込みパルス幅が長いため、データ書き込みの信頼性は高いと考えられることから、ベリファイ処理は省略される。
なお、ステップS10で生成される書込みパルスのパルス幅は、ベリファイ処理がなくてもデータ書き込みの信頼性が十分高いとみなされる程度のパルス幅であり、このようなパルス幅を事前に調べておく。
ステップS8の判定がNOの場合は、第1モードを選択する(ステップS11)。そして、状態遷移制御部18にて、通常の書込みパルスを生成して、MRAM制御部7を介してMRAM6にアクセスし、ステップS5で取り込んだキューにて指定されるアドレスにデータを書き込む(ステップS12)。
ステップS10またはS12の処理が終了した場合、クラスタ内にまだキューが残っているか否かを判定する(ステップS13)。まだキューが残っている場合(ステップS13の判定がYESの場合)には、ステップS5以降の処理を繰り返す。ステップS13の判定がNOの場合には、未処理のページに対応するクラスタがまだ存在するか否かを判定する(ステップS14)。未処理のクラスタが存在する場合(ステップS14がYESの場合)には、ステップS1以降の処理を繰り返す。未処理のクラスタが存在しない場合(ステップS14がNOの場合)には、図5の処理を終了する。
次に、図6のフローチャートの処理を説明する。まず、未処理のクラスタを選択する(ステップS21)。次に、選択したクラスタに対応するページをオープンする(ステップS22)。クローズドページポリシの場合、同一バンク内の同一ページへのアクセスが継続する場合であっても、各アクセスが終了するたびにページのクローズ処理を行う。よって、新たなアクセスを開始する際には必ずページのオープン処理が必要となる。
その後、ステップS23〜S31は、図5のステップS5〜S13と同様であるため、説明を省略する。ステップS31でクラスタ内にキューが残っていないと判定されると、今までオープンしていたページをクローズする(ステップS32)。このように、図6では各クラスタの処理が終わるたびにページをクローズする点で、図5とは異なる。その後、未処理のクラスタが存在するか否かを判定し(ステップS33)、まだ存在すればステップS22以降の処理を繰り返し、存在しなければ図6の処理を終了する。
このように、本実施形態では、MRAM6等の不揮発メモリにアクセスする際に、キュー格納部11の空き容量、またはキュー格納部11に格納されているキューに基づいて、不揮発メモリの書込みパルス幅を制御する。より具体的には、キュー格納部11の空き容量がない場合や、キュー格納部11に格納された書込みコマンド数が読み出しコマンド数よりも大きい場合には、不揮発メモリへの書込みパルスのパルス幅を通常よりも長くする。これにより、ベリファイ処理を行わなくても、エラー発生確率が増大するおそれがなくなる。また、ベリファイ処理が不要となることで、キュー格納部11に格納できないキューが発生するおそれを回避できる。
また、本実施形態では、書込みコマンドの後に読み出しコマンドが続かない場合には、書込みパルスのパルス幅を長くしてベリファイ処理を不要とし、書込みコマンドの後に読み出しコマンドが続く場合には、同じページ内のデータ書き込みをベリファイ処理なしで順次行った後に、そのページをクローズする際にまとめてベリファイ処理を行う。これにより、読み出しコマンドの実行タイミングを早めることができ、プロセッサ3の不揮発メモリに対するアクセス性能を向上できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 プロセッサシステム、3 プロセッサ、4 ホスト回路、5 メモリコントローラ、6 MRAM、7 MRAM制御部、8 クロック同期化部、9 ホストインタフェース部、10 コントローラコア部、11 キュー格納部、12 キュー追加部、13 キューポップ部、14 ページクラスタ制御部、15 キュー実行部、16 ベリファイ制御部、17 キュー出力部、18 状態遷移制御部、19 初期化制御部、20 アドレス生成部、21 バンク管理部
Claims (13)
- 不揮発メモリと、
前記不揮発メモリより高速アクセスが可能で、前記不揮発メモリに対するアクセス情報を前記不揮発メモリにアクセスする前に記憶する記憶部と、
前記記憶部の空き容量、または前記記憶部に記憶される前記アクセス情報に基づいて、前記不揮発メモリの書込みパルス幅を制御するメモリ制御部と、を備える、メモリシステム。 - 前記記憶部に記憶される前記アクセス情報は、プロセッサにより発行される前記不揮発メモリに対するアクセスのコマンド、アクセスするべきアドレス、およびデータを含む、請求項1に記載のメモリシステム。
- 前記メモリ制御部は、前記記憶部の空き容量、または前記記憶部に記憶される書込みコマンドおよび読み出しコマンドに基づいて、前記不揮発メモリの書込みパルス幅を制御する、請求項1または2に記載のメモリシステム。
- 前記メモリ制御部は、前記記憶部の空き容量、または前記記憶部に記憶される書込みコマンドおよび読み出しコマンドに基づいて、第1書込みパルス幅にて前記不揮発メモリにデータを書き込んだ後に書き込んだデータを読み出して検証するベリファイ処理を行う第1モードと、前記第1モードの前記第1書込みパルス幅よりも長い第2書込みパルス幅で前記ベリファイ処理なしでデータを書込む第2モードと、のいずれか一方を選択する、請求項3に記載のメモリシステム。
- 前記メモリ制御部は、前記記憶部に空き容量がないか、または前記記憶部に記憶される書込みコマンドの後に実行するべき読み出しコマンドがある場合、前記第2モードを選択する、請求項4に記載のメモリシステム。
- 前記不揮発メモリは、複数のメモリ領域を含んでおり、
前記記憶部は、前記複数のメモリ領域のうち、アクセスするべきメモリ領域に対応づけて前記アクセス情報を記憶する、請求項1乃至5のいずれか一項に記載のメモリシステム。 - 前記メモリ制御部は、前記記憶部に記憶される一つのメモリ領域に対するアクセス情報を処理した後に、他のメモリ領域に対するアクセス情報を順に処理する、請求項6に記載のメモリシステム。
- 前記メモリ制御部は、アクセスするべき各メモリ領域ごとに、前記第1モードまたは前記第2モードを選択する、請求項6または7に記載のメモリシステム。
- 前記メモリ制御部は、前記第1モードを選択する場合には、書込み対象の一つのメモリ領域へのデータの書き込みを順に行い、前記一つのメモリ領域に対するアクセスが終了して、別のメモリ領域へのアクセスを開始する前に、前記一つのメモリ領域に書き込んだデータのベリファイ処理を行う、請求項8に記載のメモリシステム。
- 前記メモリ制御部は、前記記憶部に記憶される一つのメモリ領域に対するアクセス情報の中に書込みコマンドと読み出しコマンドとが含まれている場合、前記記憶部に記憶された順序に従って、前記同一のメモリ領域に対する書込み処理と読み出し処理とを実行する、請求項8または9に記載のメモリシステム。
- 前記記憶部は、揮発メモリを備える、請求項1乃至10のいずれか一項に記載のメモリシステム。
- 前記不揮発メモリは、MRAM(Magnetoresistive Random Access Memory)を備える、請求項1乃至11のいずれか一項に記載のメモリシステム。
- プロセッサと、
前記プロセッサによりアクセスされる不揮発メモリと、
前記不揮発メモリより高速アクセスが可能で、前記不揮発メモリに対するアクセス情報を前記不揮発メモリにアクセスする前に記憶する記憶部と、
前記記憶部の空き容量、または前記記憶部に記憶される前記アクセス情報に基づいて、前記不揮発メモリの書込みパルス幅を制御するメモリ制御部と、を備える、プロセッサシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183330A JP2018049672A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
CN201710132910.9A CN107844263B (zh) | 2016-09-20 | 2017-03-08 | 存储器系统及处理器系统 |
US15/455,387 US10592163B2 (en) | 2016-09-20 | 2017-03-10 | Controlling write pulse width to non-volatile memory based on free space of a storage |
TW106108076A TWI663543B (zh) | 2016-09-20 | 2017-03-10 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183330A JP2018049672A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018049672A true JP2018049672A (ja) | 2018-03-29 |
Family
ID=61621016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016183330A Pending JP2018049672A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10592163B2 (ja) |
JP (1) | JP2018049672A (ja) |
CN (1) | CN107844263B (ja) |
TW (1) | TWI663543B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023095668A1 (ja) * | 2021-11-25 | 2023-06-01 | ソニーセミコンダクタソリューションズ株式会社 | 電子機器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109903800A (zh) * | 2019-03-15 | 2019-06-18 | 中国科学院上海微系统与信息技术研究所 | 相变储存器控制装置、相变储存器控制方法、电子装置及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3591887B2 (ja) * | 1994-09-12 | 2004-11-24 | 富士通株式会社 | 半導体記憶装置 |
JP4192060B2 (ja) | 2003-09-12 | 2008-12-03 | シャープ株式会社 | 不揮発性半導体記憶装置 |
US20080126690A1 (en) | 2006-02-09 | 2008-05-29 | Rajan Suresh N | Memory module with memory stack |
JP5400262B2 (ja) | 2005-12-28 | 2014-01-29 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置 |
KR100976696B1 (ko) * | 2008-07-10 | 2010-08-18 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
US8130535B2 (en) * | 2009-09-01 | 2012-03-06 | Qualcomm Incorporated | Flexible word-line pulsing for STT-MRAM |
JP4956640B2 (ja) | 2009-09-28 | 2012-06-20 | 株式会社東芝 | 磁気メモリ |
US8347175B2 (en) * | 2009-09-28 | 2013-01-01 | Kabushiki Kaisha Toshiba | Magnetic memory |
KR101649395B1 (ko) * | 2009-12-02 | 2016-08-19 | 마이크론 테크놀로지, 인크. | 비휘발성 메모리에 대한 리프레시 아키텍처 및 알고리즘 |
JP5560944B2 (ja) | 2010-06-18 | 2014-07-30 | ソニー株式会社 | 記憶素子の駆動方法 |
JP5010723B2 (ja) * | 2010-09-22 | 2012-08-29 | 株式会社東芝 | 半導体記憶制御装置 |
US9679664B2 (en) * | 2012-02-11 | 2017-06-13 | Samsung Electronics Co., Ltd. | Method and system for providing a smart memory architecture |
JP2014026681A (ja) * | 2012-07-24 | 2014-02-06 | Ps4 Luxco S A R L | 半導体装置及びこれを備えた情報処理システム |
US9135975B2 (en) * | 2013-10-28 | 2015-09-15 | Qualcomm Incorporated | Write pulse width scheme in a resistive memory |
JP6107625B2 (ja) * | 2013-12-02 | 2017-04-05 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
US9418721B2 (en) * | 2014-01-21 | 2016-08-16 | International Business Machines Corporation | Determining and storing bit error rate relationships in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
US9406368B2 (en) * | 2014-01-21 | 2016-08-02 | International Business Machines Corporation | Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
KR102364381B1 (ko) * | 2015-03-06 | 2022-02-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
-
2016
- 2016-09-20 JP JP2016183330A patent/JP2018049672A/ja active Pending
-
2017
- 2017-03-08 CN CN201710132910.9A patent/CN107844263B/zh active Active
- 2017-03-10 US US15/455,387 patent/US10592163B2/en active Active
- 2017-03-10 TW TW106108076A patent/TWI663543B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023095668A1 (ja) * | 2021-11-25 | 2023-06-01 | ソニーセミコンダクタソリューションズ株式会社 | 電子機器 |
Also Published As
Publication number | Publication date |
---|---|
US10592163B2 (en) | 2020-03-17 |
TW201814494A (zh) | 2018-04-16 |
US20180081593A1 (en) | 2018-03-22 |
TWI663543B (zh) | 2019-06-21 |
CN107844263B (zh) | 2021-02-05 |
CN107844263A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102665410B1 (ko) | 메모리 장치의 내부 프로세싱 동작 방법 | |
JP6122170B1 (ja) | 不揮発性ram及び不揮発性ramを含むシステム | |
US8954672B2 (en) | System and method for cache organization in row-based memories | |
KR100881052B1 (ko) | 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법 | |
US7301791B2 (en) | Semiconductor device | |
US20130329491A1 (en) | Hybrid Memory Module | |
RU2641478C2 (ru) | Полупроводниковое запоминающее устройство | |
US9852792B2 (en) | Non-volatile multi-level-cell memory with decoupled bits for higher performance and energy efficiency | |
KR101893895B1 (ko) | 메모리 시스템 및 그 동작 제어 방법 | |
WO2018090255A1 (zh) | 内存访问技术 | |
JP4150718B2 (ja) | 破壊読み出し型ランダム・アクセス・メモリ・システム | |
JP2018049385A (ja) | メモリシステムおよびプロセッサシステム | |
CN109891397A (zh) | 用于固态装置中的操作系统高速缓冲存储器的设备及方法 | |
JP2014154119A (ja) | メモリ制御装置及び半導体記憶装置 | |
KR101436442B1 (ko) | 읽기 및 쓰기 접근에 따른 선택적 리프레쉬 기능을 구비한 동적 메모리 장치 및 그 선택적 리프레쉬 방법 | |
US10592163B2 (en) | Controlling write pulse width to non-volatile memory based on free space of a storage | |
US9496009B2 (en) | Memory with bank-conflict-resolution (BCR) module including cache | |
US9262098B2 (en) | Pipelined data I/O controller and system for semiconductor memory | |
KR101645003B1 (ko) | 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
US7778103B2 (en) | Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof | |
CN110543430A (zh) | 一种使用mram的存储装置 | |
US9817767B2 (en) | Semiconductor apparatus and operating method thereof | |
US10185510B2 (en) | Bank interleaving controller and semiconductor device including the same | |
US8521951B2 (en) | Content addressable memory augmented memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170605 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180904 |