JP6004463B2 - 記憶装置及びその制御方法 - Google Patents

記憶装置及びその制御方法 Download PDF

Info

Publication number
JP6004463B2
JP6004463B2 JP2012045230A JP2012045230A JP6004463B2 JP 6004463 B2 JP6004463 B2 JP 6004463B2 JP 2012045230 A JP2012045230 A JP 2012045230A JP 2012045230 A JP2012045230 A JP 2012045230A JP 6004463 B2 JP6004463 B2 JP 6004463B2
Authority
JP
Japan
Prior art keywords
request
rmw
read
write
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012045230A
Other languages
English (en)
Other versions
JP2013182373A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2012045230A priority Critical patent/JP6004463B2/ja
Publication of JP2013182373A publication Critical patent/JP2013182373A/ja
Application granted granted Critical
Publication of JP6004463B2 publication Critical patent/JP6004463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は記憶装置及びその制御方法に関し、特にRMW(Read Modify Write)を行う記憶装置及びその制御方法に関する。
RMWリクエストの発行制御は、複雑な論理をとらず、RMWのリードリクエストとライトリクエストの間にリクエストが発行されない制御となっていた。そのため、映像系処理のようにRMWリクエストが多く使われる場合には、リクエストが発行できない時間が長くなるため、記憶装置の性能が低くなってしまう問題があった。
特許文献1には、パーシャルライトの読出し動作と書込み動作の間に、リードリクエストやライトリクエストを受け付け可能な記憶装置が開示されている。特許文献2には、RMWリクエストのライトデータを書き込む処理を、次のRMWリクエストが来るまで遅らせることができるメモリコントローラが開示されている。これらの技術を用いることにより、RMWのリードとライトの間にリクエストを発行することができ、メモリ使用率の向上を図ることができる。
特開平7−130195号公報 特表2011−505032号公報
しかしながら、特許文献1に記載の記憶装置においては、RMWリクエストのリードとライトの間隔が変わらない。そのため、RMWのリードとライト間に出力可能な他のリクエストの個数は制限される。したがって、メモリ使用率向上に限界がある。
特許文献2に記載のメモリコントローラにおいては、RMWのライト処理を遅らせることにより、RMWのリードとライトとの間に他のリクエストを出力し続けることができ、他のリクエストの個数は制限されない。
しかし、特許文献2に記載のメモリコントローラにおいては、ライトデータが書き込まれる処理を遅らせるために、RMWのライトを独立したライトリクエストとして扱うことになる。そのため、RMWにおけるリードリクエストとライトリクエストとを別々に発行する必要がある。加えて、メモリにライトデータを書き込むタイミングや、RMWのライトリクエストとバンクキュー内の他のリクエストとの間のシーケンス等の制御も別途必要となる。その結果、メモリコントローラの構成や処理が複雑化してしまうという問題があった。
本発明は、このような問題を解決するためになされたものであり、簡易な構成によりメモリ使用率を向上させることができる記憶装置及びその制御方法を提供することを目的とする。
本発明にかかる記憶装置は、メモリと、前記メモリ内の任意のアドレスからデータをリードし、リードしたデータに所定の演算処理を行ない、演算処理後のデータを前記アドレスにライトするリードモディファイライト(RMW)を実行するRMW実行手段と、前記メモリに対するリードリクエスト及びライトリクエストの少なくとも一方のリクエストを保持するリクエストバッファと、前記リクエストバッファが保持しているリクエストの個数をカウントするリクエスト個数管理手段と、前記リクエスト個数管理手段がカウントした前記リクエストの個数に基づいて、前記RMW実行手段のライト動作のタイミングを制御するRMWタイミング制御手段と、を備えるものである。
本発明にかかる記憶装置の制御方法は、メモリを備え、前記メモリ内の任意のアドレスからデータをリードし、リードしたデータに所定の演算処理を行ない、演算処理後のデータを前記アドレスにライトするリードモディファイライト(RMW)を実行可能な記憶装置の制御方法であって、前記メモリに対するリードリクエスト及びライトリクエストの少なくとも一方のリクエストを保持するステップと、保持されている前記リクエストの個数をカウントするステップと、カウントした前記リクエストの個数に基づいて、前記RMWにおけるライト動作のタイミングを制御するステップと、を備えるものである。
本発明により、簡易な構成によりメモリ使用率を向上させることができる記憶装置及びその制御方法を提供することができる。
実施の形態1にかかる記憶装置のブロック図である。 実施の形態2にかかる記憶装置のブロック図である。 関連する記憶装置のタイムチャートである。 関連する記憶装置のタイムチャートである。 実施の形態2にかかる記憶装置のタイムチャートである。 実施の形態3にかかる記憶装置の図である。
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかる記憶装置100のブロック図を図1に示す。記憶装置100は、リクエストバッファ101と、RMW実行部102と、メモリ103と、リクエスト個数管理部104と、RMWタイミング制御部105と、を備える。記憶装置100は、メモリ103に格納されたデータを加工して上書きするリードモディファイライト(RMW)処理を実行可能である。
リクエストバッファ101は、例えばRAM(Random Access Memory)等のメモリであり、図示しない外部回路から入力されるリクエストを保持する。外部回路から入力されるリクエストとしては、メモリ103からデータを読み出すためのリードリクエスト、メモリ103にデータを書き込むためのライトリクエスト、RMW処理を実行するためのRMWリクエスト等が含まれる。
RMW実行部102は、リクエストバッファ101から出力されるRMWリクエストに応じて、RMW処理を実行する。具体的には、RMW実行部102は、メモリ103内の任意のアドレスからデータをリードする。そして、RMW実行部102は、リードしたデータに所定の演算処理を行ない、演算処理後のデータを元の(リードした)アドレスにライトする。これにより、メモリ103に格納されたデータが加工され、上書きされる。
メモリ103は、例えばRAM等である。メモリ103では、外部回路からのリクエストに応じて、データのリード及びライト処理やRMW処理が行われる。なお、通常の(RMW処理に関係しない)データのライト動作が行われる場合、メモリ103にライトされるデータを保持するデータバッファが別途必要となるが、本実施の形態においては図示を省略する。
リクエスト個数管理部104は、リクエストバッファ101に保持されているリードリクエスト及びライトリクエストの少なくとも一方のリクエストの個数をカウントする。
RMWタイミング制御部105は、リクエスト個数管理部104がカウントしたリクエストの個数に基づいて、RMW実行部102のライト動作のタイミングを制御する。言い換えると、RMWタイミング制御部105は、リクエストの個数に基づいて、RMWにおけるリード動作とライト動作との間隔を調整する。
続いて、本実施の形態にかかる記憶装置100の動作例について説明する。まず、図示しない外部回路からリクエストバッファ101にRMWリクエストが入力される。その後、リクエストバッファ101には、通常のデータのリードリクエスト及びライトリクエストも順次入力される。
次に、リクエストバッファ101は、RMWリクエストをRMW実行部102に出力する。リクエスト個数管理部104は、RMWリクエストがRMW実行部102に出力された時点において、リクエストバッファ101が保持するリードリクエスト及びライトリクエストの少なくとも一方のリクエストの個数をカウントする。これにより、リクエスト個数管理部104は、RMW実行部102にRMWリクエストが入力されたときのリクエストの個数を取得する。リクエスト個数管理部104は、リクエストの個数を示す情報(以下、リクエスト個数情報と称す)をRMWタイミング制御部105に出力する。
RMWタイミング制御部105は、入力されたリクエスト個数情報に基づいて、RMW実行部102のライト動作のタイミングを遅延させる。より詳細には、RMWタイミング制御部105は、リクエスト個数管理部104がカウントした個数のリクエストを処理するためにかかる時間だけ、RMW実行部102によるRMWのライト動作のタイミングを遅延させる。言い換えると、RMWタイミング制御部105は、RMWのリード動作とライト動作との間隔を広げる。勿論、ライト動作のタイミングを遅延させる時間は、必ずしもリクエスト個数管理部104がカウントした個数のリクエストの全てを処理可能な時間丁度である必要はない。リクエストバッファ101が保持するリクエストの個数に応じて定められた時間であれば、リクエストの全てを処理可能な時間より長くてもよい。
RMW実行部102は、RMWリクエストに応じたメモリ103のアドレスのデータをリードする。そして、RMW実行部102は、リードしたデータに演算処理を行い、演算処理後のデータを保持しておく。
通常であれば、その後、RMW実行部102は、演算処理後のデータを、当該データをリードしたアドレスにライトする。しかし、本実施の形態にかかる記憶装置100においては、上記したように、RMWタイミング制御部105の制御により、演算処理後のデータのライト動作のタイミングが遅延される。そして、RMWにおけるライト動作の前に、リクエストバッファ101が保持するリードリクエスト(またはライトリクエスト)がメモリ103に出力され、通常のデータのリードライト動作が行われる。
RMWタイミング制御部105は、RMW実行部102に対して、リクエスト個数管理部104によりカウントされたリクエストの個数に応じたタイミングで、RMWのライト動作を実行させる。つまり、RMW実行部102は、リクエスト個数管理部104によりカウントされた個数のリードリクエスト(またはライトリクエスト)の処理が完了すると、保持していた演算処理後のデータをメモリ103にライトする。これにより、RMW処理が完了する。
以上のように、本実施の形態にかかる記憶装置100の構成によれば、リクエスト個数管理部104は、リクエストバッファ101が保持するリクエストの個数をカウントする。そして、RMWタイミング制御部105は、カウントされたリクエストの個数に基づいて、RMWのライト動作のタイミングを遅延させる。これにより、RMWにおけるリード動作とライト動作との間に、通常のデータのリードライト動作を実行できる。その結果、メモリの使用率を向上させることができる。加えて、ライト動作のタイミングを制御するために、複雑な制御回路や処理は必要とせず、リクエストバッファ101が保持するリクエストの個数をカウントする単純な処理回路のみを有していればよい。そのため、記憶装置100の構成が複雑化することを防止できる。
<実施の形態2>
本発明にかかる実施の形態2について説明する。本実施の形態にかかる記憶装置200のブロック図を図2に示す。記憶装置200は、リクエストバッファ1と、データバッファ2と、リクエスト発行制御部3と、メモリ制御信号生成部5と、メモリ制御信号レジスタ6と、RMWデータ制御部7と、セレクタ8と、ECG(Error check Code Generate)回路9と、ライトデータレジスタ10と、メモリ11と、リードデータレジスタ12と、ECC(Error Check Correct)回路13と、を備える。
リクエストバッファ1は、例えばRAM等のメモリであり、図示しない外部回路から入力されるリクエストを保持する。データバッファ2は、例えばRAM等のメモリであり、図示しない外部回路から入力されるデータ(メモリ11にライトされるデータ)を保持する。データバッファ2は、リクエスト発行制御部3の指示に応じて、保持しているライトデータをRMWデータ制御部7またはセレクタ8に出力する。
リクエスト発行制御部3は、メモリ11に対するリクエストの発行を制御する。リクエスト発行制御部3は、リードリクエスト個数管理部3−1と、RMW(ライト)タイミングコントローラ3−2と、アドレス比較回路3−3と、を備える。
リードリクエスト個数管理部3−1(リクエスト管理手段)は、リクエストバッファ1に保持されているリードリクエストの個数をカウントする。リードリクエスト個数管理部3−1は、リードリクエスト個数情報をRMW(ライト)タイミングコントローラ3−2及びタイミングコントローラ5−3に出力する。
RMW(ライト)タイミングコントローラ3−2(RMWタイミング制御手段)は、リードリクエスト個数管理部3−1がカウントしたリードリクエストの個数に基づいて、RMWのライト動作が実行されるタイミングにリクエストバッファ1から他のリクエストが出力されないように制御する。
アドレス比較回路3−3は、RMWリクエストのアドレスとリクエストバッファ1に保持されているリクエストのアドレスとを比較する。そして、アドレス比較回路3−3は、RMW中に、メモリ11に対してRMWリクエストと同一アドレスのリクエストが発行されないように制御する。さらに、アドレス比較回路3−3は、リクエストバッファ1に保持されているリクエスト間のアドレスを比較し、同一アドレスのリクエストの順序保障を行う。
メモリ制御信号生成部5は、メモリ11に対するデータのリードライトを制御する。メモリ制御信号生成部5は、メモリアクセスコマンド制御部5−1と、RMWコマンド制御部5−2と、タイミングコントローラ5−3と、セレクタ5−4と、を備える。
メモリアクセスコマンド制御部5−1には、リクエストバッファ1に保持されたリードリクエストまたはライトリクエストが入力される。メモリアクセスコマンド制御部5−1は、通常のデータのリードリクエストまたはライトリクエストに応じて、セレクタ5−4に対してリード制御信号またはライト制御信号を生成し、出力する。なお、リード制御信号及びライト制御信号とは、メモリ11に対してリード動作及びライト動作を実行させるための信号である。
RMWコマンド制御部5−2には、リクエストバッファ1に保持されたRMWリクエストが入力される。RMWコマンド制御部5−2は、RMWリクエストに応じて、セレクタ5−4に対してRMWにおけるリード制御信号及びライト制御信号を生成し、出力する。
タイミングコントローラ5−3(RMWタイミング制御手段)は、リクエストバッファ1から入力されたRMWリクエストに応じて、セレクタ5−4に対して制御信号を出力する。これにより、タイミングコントローラ5−3は、セレクタ5−4に対して、メモリアクセスコマンド制御部5−1からのリード(またはライト)制御信号及びRMWコマンド制御部からのリード(またはライト)制御信号のいずれか一方を選択させる。
メモリ制御信号レジスタ6は、セレクタ5−4が選択したリード(ライト)制御信号を保持し、メモリ11に出力する。
RMWデータ制御部7は、データバッファ2から入力されたライトデータに基づいて、入力されたリードデータに対して、所定の演算処理を行い、演算処理後のデータをセレクタ8に出力する。本実施の形態においては、RMWデータ制御部7は、ECC回路13から入力されたリードデータと、データバッファ2から入力されたライトデータとで所定の演算処理を行い、セレクタ8に出力する。
セレクタ8は、タイミングコントローラ5−3から入力される制御信号に応じて、データバッファ2から出力されたライトデータ及びRMWデータ制御部7から出力されたRMWのライトデータのいずれか一方を選択する。
ECG回路9は、セレクタ8が選択したライトデータに対してECCチェックビットを生成する。ライトデータレジスタ10は、ライトデータを保持し、メモリ11に出力する。メモリ11は、例えば、RAM等であり、メモリ制御信号レジスタ6のリード制御信号に応じたアドレスのデータをリードし、リードデータレジスタ12に出力する。また、メモリ11は、ライト制御信号に応じたアドレスにライトデータレジスタ10に保持されているライトデータをライトする。
リードデータレジスタ12は、リード制御信号に応じてメモリ11が出力したリードデータを保持し、ECC回路13に出力する。ECC回路13は、リードデータに対して1ビットの誤りを検出し、誤りがあった場合には誤り訂正処理を行う。ECC回路13は誤り訂正処理を行ったリードデータを図示しない上位装置及びRMWデータ制御部7に出力する。
続いて、本実施の形態にかかる、記憶装置200の動作について説明する。まず、RMWリクエストが処理される場合、RMWのコマンド、アドレス、ライトデータが上位装置(図示省略)から入力される。具体的には、コマンド及びアドレスはリクエストバッファ1に格納され、ライトデータはデータバッファ2に格納される。
リクエスト発行制御部3により、RMWリクエストがリクエストバッファ1から選択される。これにより、リクエストバッファ1からメモリ制御信号生成部5にRMWリクエストが入力される。また、リクエスト発行制御部3により、ライトデータがデータバッファ2から選択される。これによりデータバッファ2からRMWデータ制御部7にRMWのライトデータが入力される。
RMWの第一ステップとして、まず、メモリ11からデータの読み出しを行う。メモリ制御信号生成部5に入力されたRMWリクエストは、RMWコマンド制御部5−2、タイミングコントローラ5−3に格納される。そして、RMWコマンド制御部5−2は、RMWリクエストに基づいて、リード制御信号及びライト制御信号を生成する。このとき、RMWコマンド制御部5−2は、1つのRMWリクエストの入力に応じて、リード制御信号及びライト制御信号の両方を生成する。つまり、RMWリクエストの入力においては、RMWのリードリクエストとライトリクエストとが独立してリクエストバッファ1に入力されない。そのため、上位装置からRMWのライトリクエストを別途出力してもらう必要はない。
また、タイミングコントローラ5−3は、RMWコマンド制御部5−2からのリード制御信号を、最適なタイミングでセレクタ5−4に選択させる制御信号を生成する。RMWコマンド制御部5−2が生成したリード制御信号及びアドレスは、セレクタ5−4を介してメモリ制御信号レジスタ6に保持され、メモリ11に発行される。
その後、メモリ11は、リード制御信号及びアドレスに応じて、RMWのリードデータをリードし、出力する。出力されたリードデータは、リードデータレジスタ12に保持される。リードデータは、ECC回路13において1ビットエラーの訂正が行われ、リードデータとして上位装置に出力されるとともに、RMWデータ制御部7に出力される。RMWデータ制御部7は、RMWリクエストの指示に応じて、読み出したリードデータの一部(または全部)を、データバッファ2から入力されたライトデータに書き換えて、保持する。
次に、第二ステップとして、RMWにおけるリード動作とライト動作との間に、通常のデータのリードリクエストを発行する。上述したように、RMWリクエストがリクエストバッファ1から選択されると、リードリクエスト個数管理部3−1は、リクエストバッファ1内に保持されているリードリクエストの個数をカウントする。リードリクエスト個数管理部3−1は、カウントしたリードリクエスト個数の情報をRMW(ライト)タイミングコントローラ3−2及びタイミングコントローラ5−3に出力する。
タイミングコントローラ5−3は、受け取ったリードリクエスト個数情報に基づいて、RMWコマンド制御部が生成したRMWのライト制御信号を、メモリ11に対していつ発行するかを決める。つまり、タイミングコントローラ5−3は、リードリクエスト個数情報に基づいて、RMWのライト制御信号の出力タイミングを制御する。例えば、リクエストバッファ1にリードリクエストが7個あった場合、タイミングコントローラ5−3は、リードリクエストを7個処理できる時間だけライト制御信号の出力を遅らせる。一方、リクエストバッファ1にリードリクエストが0個の場合、タイミングコントローラ5−3は、ライト制御信号を遅らせることは行わず、最短のタイミングでライト制御信号を発行させる。
RMW(ライト)タイミングコントローラ3−2は、入力されたリードリクエスト個数情報に基づいて、タイミングコントローラ5−3がRMWコマンド制御部5−2からのライト制御信号を発行させるタイミングにおいて、リクエストバッファ1から他のリクエストが出力されないように制御する。このように、RMWのライト動作を遅らせることにより、リードリクエスト個数管理部3−1においてカウントされた個数分のリードリクエストのそれぞれが、順番にメモリアクセスコマンド制御部5−1、セレクタ5−4、メモリ制御信号レジスタ6を介して、メモリ11に出力される。
第三ステップとして、RMW制御部7に保持されているRMWのライトデータがメモリ11に書き込まれる。リードリクエスト個数管理部3−1においてカウントされた個数のリードリクエストが全て発行されると、RMWコマンド制御部5−2に保持されているRMWのアドレスとライト制御信号は、セレクタ5−4に出力される。セレクタ5−4は、タイミングコントローラ5−3からの制御信号によって、アドレス及びライト制御信号を、メモリ制御レジスタ6に出力する。メモリ制御レジスタ6は、アドレス及びライト制御信号を保持し、メモリ11に発行する。
一方、RMWデータ制御部7に保持されているRMWのライトデータは、セレクタ8に出力される。セレクタ8は、タイミングコントローラ5−3の制御によって、ライトデータをECG回路9に出力する。ECG回路9は、ライトデータに対するECCチェックビットを生成する。その後、ライトデータは、ライトデータレジスタ10に保持され、メモリ11に発行される。これにより、RMWのデータ書き込み(ライト動作)が行われる。以上で一連のRMW処理が完了する。
なお、RMWのリード動作とライト動作との間に発行されるリードリクエストがRMWリクエストと同一アドレスの場合、データ化けになってしまう。そのため、RMWが行われるアドレスと同一アドレスのリードリクエストは発行されないようにする必要がある。アドレス比較回路3−3は、発行されたRMWリクエストのアドレスを保持し、そのアドレスと同一アドレスの他のリードリクエストを、RMW中にリクエストバッファ1から出力させない。
また、アドレス比較回路3−3は、リクエストバッファ1内のリードリクエスト間のアドレス比較も行う。そして、同一アドレスのリードリクエストが存在する場合、アドレス比較回路3−3は、リクエストの順番に応じてリクエストバッファ1にリードリクエストを出力させ、同一アドレスの追い越しを発生させない。このようにして同一アドレスリクエスト間の順序保障を行っている。
以上のように、本実施の形態にかかる記憶装置200の構成によれば、RMWリクエストがあった場合、リードリクエスト個数管理部3−1が、リクエストバッファ1に保持されているリードリクエストの個数をカウントする。そして、タイミングコントローラ5−3は、リードリクエスト個数情報に基づいて、リクエストバッファ1内に保持されたリードリクエストが全て発行されるまで、RMWのライト動作のタイミングを遅延させる。これにより、リードリクエストの個数に応じた時間だけ、RMWのライト動作が遅延する。したがって、RMWのリード動作とライト動作との間に、通常のリードリクエストを処理できる。その結果、メモリ使用率を向上させることができる。
ここで、具体例を用いて、本実施の形態にかかる記憶装置200のメモリ使用率の向上について説明する。例えば、リクエストバッファ1内にリードリクエストが7個保持されていたときのタイムチャートを図3〜図5に示す。図3は、関連する記憶装置のタイムチャートである。図4は、特許文献1の記憶装置のタイムチャートである。図5は、本実施の形態にかかるタイムチャートである。なお、図3〜図5のタイムチャートにおいては、コマンド(リクエスト)が発行されてから該当するデータがリードされるまでの時間と、コマンドが発行されてから該当するデータがライトされるまでの時間とが異なっている。具体的には、コマンドが発行されてから該当するデータがライトされるまでの時間の方が短い。
図3に示す関連する記憶装置においては、RMWのリード動作とライト動作との間においては、リードリクエストの発行が禁止されている。そのため、リードリクエストは、RMWのライトリクエストが発行された後に初めて発行されるため、全てのリードリクエストの完了時間は、29クロックとなる。
図4に示す特許文献1の記憶装置においては、RMWのリード動作とライト動作との間において、リードリクエストの発行が行われる。しかし、RMWリクエストのリードとライトの間隔が変わらない。そのため、RMWのリード動作とライト動作との間に出力可能な他のリクエストの個数は2個に制限される。その結果、残りの5つのリードリクエストは、RMWのライトリクエストが発行された後に発行される。したがって、全てのリードリクエストの完了時間は、25クロックとなる。
これに対して、図5に示す本実施の形態にかかる記憶装置200においては、RMWのリード動作とライト動作との間に7個のリクエストが発行される。これにより、全てのリードリクエストの完了時間は19クロックとなる。図3及び図4と比較すると、それぞれ10クロック及び6クロックの短縮となり、システムの性能は向上している。
さらに、特許文献2のメモリコントローラは、リクエストを一時的に格納する複数のバンクキューを備えており、RMWのライトリクエストとバンクキュー内のリクエスト間のシーケンス制御も必要となる。加えて、同一バンクキュー内でのリクエスト追い越し制御による更なるメモリ使用効率の向上や、ライトリクエストよりリードリクエストを優先させる制御を追加してシステムとしての性能向上を目指した場合、シーケンス制御はますます複雑になってしまう。その結果、データ化けやリクエストの沈み込み、デッドロックなどの不具合を発生する可能性が高くなってしまうという問題があった。
これに対して、本実施の形態にかかる記憶装置200は、リクエストバッファ1に保持されているリクエストの個数をカウントし、リクエストの個数に応じてRMWのライト動作を遅延させる制御を行うだけでよい。そのため、複雑なシーケンス制御を必要とせず、上記のような問題を回避することができる。
<実施の形態3>
本発明にかかる実施の形態3について説明する。本実施の形態にかかる記憶装置300のブロック図を図6に示す。記憶装置300は、図2に示した記憶装置200の構成に加えて、ライトリクエスト個数管理部3−4を備える。なお、その他の構成については記憶装置200と同様であるので、説明を適宜省略する。
ライトリクエスト個数管理部3−4は、リクエスト発行制御部3に含まれており、リクエストバッファ1に保持されているライトリクエストの個数をカウントする。
続いて、本実施の形態にかかる記憶装置300の動作例について説明する。上記の実施の形態2において、記憶装置200の動作を第一ステップ〜第三ステップに分けて説明したが、本実施の形態にかかる記憶装置300においても第一ステップ及び第三ステップは同様の動作であるため、説明を省略する。
記憶装置300は、第二ステップとして、RMWにおけるリード動作とライト動作との間に、通常のデータのリードリクエストを発行する。RMWリクエストがリクエストバッファ1から選択されると、リードリクエスト個数管理部3−1は、リクエストバッファ1内に保持されているリードリクエストの個数をカウントする。リードリクエスト個数管理部3−1は、カウントしたリードリクエスト個数の情報をRMW(ライト)タイミングコントローラ3−2及びタイミングコントローラ5−3に出力する。
同様に、RMWリクエストがリクエストバッファ1から選択されると、ライトリクエスト個数管理部3−4は、リクエストバッファ1内に保持されているライトリクエストの個数をカウントする。ライトリクエスト個数管理部3−4は、カウントしたライトリクエスト個数の情報をRMW(ライト)タイミングコントローラ3−2及びタイミングコントローラ5−3に出力する。
RMW(ライト)タイミングコントローラ3−2は、リードリクエスト及びライトリクエストの個数に応じてRMWのライト動作のタイミングを遅らせる。具体的には、リードリクエストが1個以上ある場合、RMW(ライト)タイミングコントローラ3−2は、リクエストバッファ1に、RMWのリード動作とライト動作との間にリードリクエストを出力させる。
一方、リードリクエストの個数が0個、かつライトリクエストの個数が1個以上ある場合、RMW(ライト)タイミングコントローラ3−2は、リクエストバッファ1に、RMWのリード動作とライト動作との間にライトリクエストを出力させる。
以上のように、本実施の形態にかかる記憶装置300の構成によれば、ライトリクエスト個数管理部3−4が、リクエストバッファ1に保持されているライトリクエストの個数をカウントする。そして、タイミングコントローラ5−3は、RMWのリード動作とライト動作との間に、ライトリクエストを出力する。このため、記憶装置300においては、RMWのリード動作とライト動作との間に、リードリクエストだけでなく、ライトリクエストの出力も可能にしている。したがって、更なるメモリ使用率の向上を可能にしている。
なお、本実施の形態では、リードデータとライトデータが同一のデータバスを使用する場合を考慮している。そのため、RMWのリード動作とライト動作との間には、リードリクエストのみ、またはライトリクエストのみを発行させる制御としている。これにより、リード動作からライト動作への切り替え時、及び、ライト動作からリード動作への切り替え時に、データのバスファイトによる待ち時間が発生しない。勿論、リードデータとライトデータのデータバスが異なる場合は、RMWのリード動作とライト動作との間に、リードリクエストとライトリクエストの両方を発行するように制御することも可能である。
(変形例)
本実施の形態にかかる記憶装置300の変形例について説明する。変形例にかかる記憶装置300においては、リードリクエスト個数管理部3−1とライトリクエスト個数管理部3−4のカウント動作を、DDR2−SDRAM(Double-Data-Rate2 Synchronous Dynamic Random Access Memory)や、DDR3−SDRAMのようなバンクアドレスを持つメモリ素子に対して工夫している。
記憶装置300のメモリ11がバンクアドレスを持つメモリ素子である場合に、リードリクエスト個数管理部3−1またはライトリクエスト個数管理部3−4が、単純にリードリクエストまたはライトリクエストの個数をカウントすると、同一バンクアドレスのリクエストについても複数カウントしてしまう。DDR2/DDR3−SDRAM等においては、同一バンクアドレスへの連続アクセスタイムは大きい。このため、RMWのリード動作とライト動作との間に、同一バンクアドレスのリクエストを複数発行してしまうと、逆にメモリ使用効率が悪化してしまう場合がある。
そのため、変形例にかかる記憶装置300においては、リードリクエスト個数管理部3−1またはライトリクエスト個数管理部3−4は、バンクアドレス毎に、リードリクエストまたはライトリクエストの個数をカウントする。そして、タイミングコントローラ5−3は、リクエストを受けたバンクアドレスの個数に応じて、RMWのライト動作を遅延させる。つまり、リードリクエスト(またはライトリクエスト)を受けたバンクアドレスへのリード(またはライト)が完了する時間だけRMWのライト動作を遅延させる。このとき、RMW(ライト)タイミングコントローラ3−2は、同一バンクアドレスのリクエストが複数発行されないように制御する。このように、RMWのリード動作とライト動作との間のリクエスト発行パターンが、異なるバンクアドレスのインタリーブになるように制御する。その結果、メモリ使用効率の悪化を回避でき、システム性能を向上させることができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更及び組み合わせをすることが可能である。
1 リクエストバッファ
2 データバッファ
3 リクエスト発行制御部
3−1 リードリクエスト個数管理部
3−2 RMW(ライト)タイミングコントローラ
3−3 アドレス比較回路
3−4 ライトリクエスト個数管理部
5 メモリ制御信号生成部
5−1 メモリアクセスコマンド制御部
5−2 RMWコマンド制御部
5−3 タイミングコントローラ
5−4 セレクタ
6 メモリ制御信号レジスタ
7 RMWデータ制御部
8 セレクタ
9 ECG回路
10 ライトデータレジスタ
11 メモリ
12 リードデータレジスタ
13 ECC回路
100〜300 記憶装置
101 リクエストバッファ
102 RMW実行部
103 メモリ
104 リクエスト個数管理部
105 RMWタイミング制御部

Claims (8)

  1. メモリと、
    前記メモリ内の任意のアドレスからデータをリードし、リードしたデータに所定の演算処理を行ない、演算処理後のデータを前記アドレスにライトするリードモディファイライト(RMW)を実行するRMW実行手段と、
    前記メモリに対するリードリクエスト及びライトリクエストの少なくとも一方のリクエストを保持するリクエストバッファと、
    前記リクエストバッファが保持しているリクエストの個数をカウントするリクエスト個数管理手段と、
    前記リクエスト個数管理手段がカウントした前記リクエストの個数に基づいて、前記RMW実行手段のライト動作のタイミングを制御するRMWタイミング制御手段と、
    を備える記憶装置。
  2. 前記RMWタイミング制御手段は、前記リクエスト個数管理手段がカウントした個数の前記リクエストを処理するためにかかる時間に応じて、前記ライト動作のタイミングを遅延させる請求項1に記載の記憶装置。
  3. 前記RMW実行手段により前記RMWが実行される前記アドレスと、前記リクエストバッファに格納された前記リクエストのアドレスと、を比較し、比較結果に基づいて、前記リクエストバッファから前記リクエストが出力されることを制限するアドレス比較手段をさらに備える請求項1または2に記載の記憶装置。
  4. 前記アドレス比較手段は、前記リクエストバッファに保持された前記リクエストのアドレスの中に、前記RMWが実行される前記アドレスと同一のアドレスが存在する場合、前記リクエストバッファから当該同一のアドレスのリクエストが出力されることを制限する請求項3に記載の記憶装置。
  5. 前記メモリは、複数のバンクアドレスを有し、
    前記リクエスト個数管理手段は、前記リクエストを前記バンクアドレス毎にカウントし、
    前記RMWタイミング制御手段は、前記リクエストバッファから同一バンクアドレスの前記リクエストが複数出力されることを制限すると共に、前記リクエストを受けた前記バンクアドレスの個数に基づいて、前記RMW実行手段のライト動作のタイミングを制御する請求項1〜4のいずれか一項に記載の記憶装置。
  6. 前記RMWタイミング制御手段は、前記RMWの前記ライト動作が実行されるタイミングに、前記リクエストバッファから前記リクエストが出力されることを制限する請求項1〜5のいずれか一項に記載の記憶装置。
  7. 前記RMW実行手段は、一のRMWリクエストを受けることにより、前記RMWのリード動作及びライト動作を実行する請求項1〜6のいずれか一項に記載の記憶装置。
  8. メモリを備え、前記メモリ内の任意のアドレスからデータをリードし、リードしたデータに所定の演算処理を行ない、演算処理後のデータを前記アドレスにライトするリードモディファイライト(RMW)を実行可能な記憶装置の制御方法であって、
    前記メモリに対するリードリクエスト及びライトリクエストの少なくとも一方のリクエストを保持するステップと、
    保持されている前記リクエストの個数をカウントするステップと、
    カウントした前記リクエストの個数に基づいて、前記RMWにおけるライト動作のタイミングを制御するステップと、
    を備える記憶装置の制御方法。
JP2012045230A 2012-03-01 2012-03-01 記憶装置及びその制御方法 Active JP6004463B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012045230A JP6004463B2 (ja) 2012-03-01 2012-03-01 記憶装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012045230A JP6004463B2 (ja) 2012-03-01 2012-03-01 記憶装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2013182373A JP2013182373A (ja) 2013-09-12
JP6004463B2 true JP6004463B2 (ja) 2016-10-05

Family

ID=49272983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012045230A Active JP6004463B2 (ja) 2012-03-01 2012-03-01 記憶装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP6004463B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471323B2 (en) 2013-10-03 2016-10-18 Intel Corporation System and method of using an atomic data buffer to bypass a memory location
JP6540363B2 (ja) * 2015-08-19 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
KR20200066953A (ko) * 2018-12-03 2020-06-11 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
CN112098770A (zh) * 2020-08-20 2020-12-18 深圳市宏旺微电子有限公司 针对动态耦合故障模拟极端环境下的测试方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3098363B2 (ja) * 1993-10-01 2000-10-16 甲府日本電気株式会社 記憶装置
JPH11184761A (ja) * 1997-12-19 1999-07-09 Nec Kofu Ltd リードモディファイライト制御システム
JP3965784B2 (ja) * 1998-06-15 2007-08-29 株式会社日立製作所 共有メモリ排他アクセス制御方法
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses

Also Published As

Publication number Publication date
JP2013182373A (ja) 2013-09-12

Similar Documents

Publication Publication Date Title
CN111913652B (zh) 包括处理电路的存储器件、存储器控制器和存储系统
JP4550439B2 (ja) Ecc制御装置
JP6169615B2 (ja) システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム
US7380076B2 (en) Information processing apparatus and method of accessing memory
EP1703398A2 (en) Techniques for soft error correction
JP4966404B2 (ja) メモリ制御装置、記憶装置、及びメモリ制御方法
JP2009289170A (ja) データ処理装置、メモリコントローラ及びそのアクセス制御方法
JP2009015832A (ja) アクセス間調停回路、半導体装置およびアクセス間調停方法
JP6004463B2 (ja) 記憶装置及びその制御方法
JP5428687B2 (ja) メモリ制御装置
US20170160952A1 (en) Memory controller, memory system, and information processing system
JP2018205859A (ja) メモリコントローラとその制御方法
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP2008033721A (ja) Dma転送制御装置
US20090235026A1 (en) Data transfer control device and data transfer control method
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
US20130238881A1 (en) Data transmission device, data transmission method, and computer program product
US20170308296A1 (en) Staging write requests
JP2011034214A (ja) メモリ制御装置
JP2010061498A (ja) メモリ制御装置、半導体試験装置およびメモリ制御方法
JP2008225894A (ja) Sdramコントローラ
JPWO2018003244A1 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP2006059303A (ja) コンピュータシステム
JP5344634B2 (ja) 半導体記憶装置およびその制御方法
WO2016092798A1 (en) Memory controller and control method for the same

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20140807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160901

R150 Certificate of patent or registration of utility model

Ref document number: 6004463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150