JP4632099B2 - メモリ制御装置及びその制御方法 - Google Patents

メモリ制御装置及びその制御方法 Download PDF

Info

Publication number
JP4632099B2
JP4632099B2 JP2008102104A JP2008102104A JP4632099B2 JP 4632099 B2 JP4632099 B2 JP 4632099B2 JP 2008102104 A JP2008102104 A JP 2008102104A JP 2008102104 A JP2008102104 A JP 2008102104A JP 4632099 B2 JP4632099 B2 JP 4632099B2
Authority
JP
Japan
Prior art keywords
buffer
data
output
input
output port
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
JP2008102104A
Other languages
English (en)
Other versions
JP2009252128A (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 JP2008102104A priority Critical patent/JP4632099B2/ja
Priority to US12/392,304 priority patent/US8156294B2/en
Priority to CNA2009101349108A priority patent/CN101556562A/zh
Publication of JP2009252128A publication Critical patent/JP2009252128A/ja
Application granted granted Critical
Publication of JP4632099B2 publication Critical patent/JP4632099B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Static Random-Access Memory (AREA)

Description

本発明は、メモリ制御装置及びその制御方法に関し、特に、より少ないバッファ数で効率よくデータ転送をすることができるようにしたメモリ制御装置及びその制御方法に関する。
図1は、従来のメモリ制御装置の構成を示す図である。
図1に示すように、メモリ制御装置1は、入力ポート111ないし入力ポート113の3つの入力ポートと、出力ポート141ないし出力ポート143の3つの出力ポートを有している。メモリ制御装置1は、入力ポート111ないし入力ポート113から入力されるデータを、メモリ制御部12及び信号切り替え部13を介して、出力ポート141ないし出力ポート143のいずれかから出力する。
具体的には、図1に示すように、メモリ制御部12において、入力ポート111から入力されたデータは、書き込み制御部211により選択されるバッファ2211に格納される。そして、バッファ2211に格納されたデータは、信号切り替え部13を介して、読み出し制御部231により選択された出力ポート141から、出力データとして出力される。
なお、信号切り替え部13は、バッファ2211ないしバッファ2232の任意のバッファからの信号を、出力ポート141ないし出力ポート143の任意の出力ポートに接続させる機器である。
また、このとき、書き込み制御部211は、データのバッファ2211への書き込みを終了すると、次の書き込み用のバッファとして、バッファ2212を選択する。これにより、読み出し制御部231による、バッファ2211に格納されたデータの読み出しが終了していなくとも直ちに、書き込み制御部211は、入力ポート111からのデータを、バッファ2212に書き込み可能な状態となる。但し、バッファ2212への書き込み処理が終了するまでに、バッファ2211からの読み出し処理が終了していない場合、書き込み制御部211によるバッファ2211への書き込みは禁止される。
なお、図1において、書き込み制御部212、バッファ2221、バッファ2222、及び読み出し制御部232、並びに、書き込み制御部213、バッファ2231、バッファ2232、及び読み出し制御部233は、上述した、書き込み制御部211、バッファ2211、バッファ2211、及び読み出し制御部231と同様の構成からなり、同様の動作を行うので、その説明は省略する。
次に、図2のタイミングチャートを参照して、図1のバッファ2211ないしバッファ2232の動作について説明する。
図2において、四角はバッファが使用中であることを意味し、バッファ2211ないしバッファ2232のそれぞれの動作について、データを書き込む処理(Write)と、データを読み出す処理(Read)を区別して表している。また、横軸は時間軸を表しており、時間の方向は図中左から右に向かう方向とされる。
図2に示すように、バッファ2211にデータを書き込む処理が行われているとき、バッファ2212においては、データを書き込む処理は行われず、その間、特に処理は行われない。そして、入力ポート111からのデータのバッファ2211への書き込みが終了した後、バッファ2211では、そのデータの読み出し処理が行われるが、そのとき、バッファ2212においては、書き込み処理が開始される。
すなわち、対になっているバッファ2211とバッファ2212においては、一方が書き込み処理を行っているとき、他方は、その書き込み処理が完了するまで、書き込み処理以外の読み出し処理を行うことになる。つまり、対になるバッファでは、同時に書き込み処理が行われることはない。このことは、図2に示すように、図1の他のバッファ対である、バッファ2221とバッファ2222、及びバッファ2231とバッファ2232においても同様である。
以上のようにして、メモリ制御装置1においては、バッファ2211とバッファ2212、バッファ2221とバッファ2222、及びバッファ2231とバッファ2232とを切り替えながら、書き込み処理又は読み出し処理を行うことで、データ転送を実現していた。
また、本出願人は、メモリの制御に関することを先に提案している(例えば、特許文献1参照)。
先の提案においては、アクセス要求の処理順番に従って、メモリのデータの読み出しと書き込みが制御される。
特開2005−92630号公報
しかしながら、特許文献1を含む従来技術においては、ポート数が増加すると、それに伴って必要となるバッファ数も増加するため、リソースの使用量が増加するという問題があった。
例えば、図1において、仮に、ポート数を増加させようとすると、それに応じたバッファ対を設けなければならないため、ポート数×2のバッファを新たに設ける必要が出てくる。
また、図2においては、図1のバッファ2211ないしバッファ2232に対応するタイミングチャートを示しているが、各ポートの書き込みと読み出しのタイミングが一意でない場合、図中の点線で示すように、ある時点において、実際に動作している同時使用バッファは、バッファ2211及びバッファ2212の2つであって、他のバッファは全く動作していない状態となっている。この場合、せっかく複数のバッファを設けていても、そのリソースを有効に活用しているとは言えない。
本発明はこのような状況に鑑みてなされたものであり、より少ないバッファ数で効率よくデータ転送することができるようにするものである。
本発明の一側面のメモリ制御装置は、書き込みが完了してから読み出しが開始され、その読み出しが完了してから書き込みが開始される複数のバッファと、前記バッファに書き込むデータを入力するための複数の入力ポートと、前記バッファから読み出した前記データを出力するための複数の出力ポートと、前記複数の出力ポートのうちの、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を保持する保持回路と、前記入力ポートから入力された前記データを、前記複数のバッファのうちの、前記データの書き込み又は読み出しが行われておらず、前記データを格納していない状態のバッファである未使用のバッファに書き込むとともに、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を前記保持回路に書き込む書き込み制御回路と、前記保持回路に保持された情報により特定される出力ポートが空いている場合、前記未使用のバッファへの書き込みが完了した前記データ、前記保持回路に保持された情報により特定される出力ポートへの読み出しを開始し、前記バッファからの前記データの読み出しが完了したときに前記バッファを開放する読み出し制御回路とを備える。
前記読み出し制御回路は、前記保持回路に保持された情報により特定される出力ポートが既に他のバッファに書き込まれた他のデータの出力先となっている場合、前記他のバッファからの前記他のデータの出力が終了した後に、前記未使用のバッファへの書き込みが完了した前記データを、前記保持回路に保持された情報により特定される出力ポートに読み出す。
前記複数のバッファは、前記複数の入力ポートの数よりも、少なくとも1以上多い数となるように設けられ、前記バッファごとに、前記保持回路を有している
本発明の一側面の制御方法は、書き込みが完了してから読み出しが開始され、その読み出しが完了してから書き込みが開始される複数のバッファと、前記バッファに書き込むデータを入力するための複数の入力ポートと、前記バッファから読み出した前記データを出力するための複数の出力ポートと、前記複数の出力ポートのうちの、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を保持する保持回路とを備えるメモリ制御装置の制御方法において、前記入力ポートから入力された前記データを、前記複数のバッファのうちの、前記データの書き込み又は読み出しが行われておらず、前記データを格納していない状態のバッファである未使用のバッファに書き込むとともに、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を前記保持回路に書き込み、前記保持回路に保持された情報により特定される出力ポートが空いている場合、前記未使用のバッファへの書き込みが完了した前記データ、前記保持回路に保持された情報により特定される出力ポートへの読み出しを開始し、前記バッファからの前記データの読み出しが完了したときに前記バッファを開放するステップを含む。
本発明の一側面のメモリ制御装置及びその制御方法によれば、入力ポートから入力されたデータが、複数のバッファのうちの、データの書き込み又は読み出しが行われておらず、データを格納していない状態のバッファである未使用のバッファに書き込まれるとともに、前記入力ポートから入力された前記データから得られるデータの出力先となる出力ポートを特定するための情報を保持回路に書き込まれ、前記保持回路に保持された情報により特定される出力ポートが空いている場合、未使用のバッファへの書き込みが完了したデータ、保持回路に保持された情報により特定される出力ポートへの読み出しが開始され、前記バッファからの前記データの読み出しが完了したときに前記バッファが開放される。
以上のように、本発明の一側面によれば、より少ないバッファ数で効率よくデータ転送することができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
図3は、本発明を適用したメモリ制御装置の一実施の形態の構成を示す図である。
メモリ制御装置31は、入力ポート411ないし入力ポート413、メモリ制御部42、及び出力ポート431ないし出力ポート433を含むようにして構成される。
なお、本実施の形態において、ライトサイド側の入力ポート411ないし入力ポート413を特に区別する必要がない場合には、単に、入力ポート41と称し、同様に、リードサイド側の出力ポート431ないし出力ポート433を区別する必要がない場合には、単に、出力ポート43と称する。
図3においては、入力ポート411ないし入力ポート413には、それぞれ、所定のデバイスが接続されており、それらのデバイスからのデータが入力される。本実施の形態においては、それらのデバイスから入力されるデータとして、例えば、入力ポート411にはAPL_RQが入力され、入力ポート412にはMW_RQが入力され、入力ポート413にはMain_RPが入力されるとして説明する。但し、RQはリクエスト(Request)、RPはレスポンス(Response)を意味し、図3の例においては、APL_RQは、APLからのリクエスト、MW_RQは、MWからのリクエスト、Main_RPは、Mainからのレスポンスを意味する。
入力ポート411ないし入力ポート413は、書き込み専用のポートであって、入力されるデータをメモリ制御部42に出力する。
メモリ制御部42は、書き込み制御部51、メモリ52、及び読み出し制御部53を含むようにして構成される。また、図3の例では、メモリ52は、メモリ521ないしメモリ524の4つのメモリから構成される。メモリ521はまた、バッファ611及びディスクリプタ621から構成され、さらに、ライトロックフラグとリードロックフラグを格納している。
ここで、ライトロックフラグ(Write Lock Flag)とは、データのバッファ611への書き込み処理が行われているか否かを示すフラグである。したがって、ライトロックフラグは、バッファ611に対しデータを書き込む処理が行われる場合には“1”となり、バッファ611に対するデータの書き込み処理が行われていない場合には“0”となる。
また、リードロックフラグ(Read Lock Flag)とは、バッファ611に格納されたデータの読み出し処理が行われているか否かを示すフラグである。したがって、リードロックフラグは、バッファ611に格納されているデータの読み出し処理が行われている場合には“1”となり、バッファ611に格納されているデータの読み出し処理が行われていない場合には“0”となる。
なお、繰り返しになるので説明は省略するが、メモリ522ないしメモリ524は、図3に示すように、メモリ521と同様の構成を有している。また、メモリ52において、バッファ611ないしバッファ614を区別する必要がない場合には、単に、バッファ61と称し、ディスクリプタ621ないしディスクリプタ624を区別する必要がない場合には、単に、ディスクリプタ62と称する。
メモリ制御部42に入力されたデータは、書き込み制御部51に入力される。書き込み制御部51は、メモリ521ないしメモリ524のライトロックフラグを参照して、バッファ611ないしバッファ614のうち、未使用のバッファ61を選択し、選択した未使用のバッファ61と、データを入力してきた入力ポート41とを接続させる。すると、入力ポート41からのデータは、選択された未使用のバッファ61に書き込まれる。
なお、本実施の形態においては、バッファ61において、データの書き込み処理や読み出し処理が行われておらず、データを格納していないバッファのことを、未使用(空き)のバッファと称する。一方、バッファ61において、データの書き込み処理や読み出し処理が行われており、データを格納しているバッファのことを使用中のバッファと称する。
読み出し制御部53は、メモリ521ないしメモリ524のリードロックフラグを参照することで、入力ポート41からのデータを格納したバッファ61を認識し、入力データが格納されたバッファ61と、書き込み制御部51によって指定された出力ポート43とを接続させる。
ここに、書き込み制御部51が特定の出力ポート43を指定する方法であるが、例えば、書き込み制御部51が出力ポート43を特定するための情報をディスクリプタ62に書き込む方法がある。かかる方法を用いることで、読み出し制御部53は、書き込み制御部51によって書き込まれた出力ポート43に関する情報をディスクリプタ62から読み出し、バッファ61に格納されたデータを出力すべき出力ポート43を特定する。このようにして特定された出力ポート43と、入力ポート41からのデータが格納されたバッファ61とが接続され、バッファ61に格納されたデータが出力される。
出力ポート431ないし出力ポート433は、読み出し専用のポートであって、読み出し制御部53によって接続されたバッファ61からのデータを出力する。図3においては、出力ポート431ないし出力ポート433には、それぞれ、所定のデバイスが接続されており、バッファ61からのデータを、それらのデバイスに出力する。本実施の形態においては、それらのデバイスに出力するデータとして、出力ポート431からはAPL_RPが出力され、出力ポート432からはMW_RPが出力され、出力ポート433からはMain_RQが出力されるとして説明する。
以上のようにして、メモリ制御装置31は構成される。
ここで、図3のメモリ制御装置31の構成をより詳細に説明するために、図3において発行元であるAPLからのメッセージ(APL_RQ)を、発行先であるMWに転送する例について説明する。すなわち、図3においては、この例の場合、入力ポート411に入力されたメッセージが、出力ポート432から出力されることになる。
書き込み制御部51は、バッファ611ないしバッファ614のうち、例えば、未使用のバッファ611を選択し、メッセージ(APL_RQ)を入力してきた入力ポート411と接続させる(図中の実線A1)。これにより、メモリ制御部42に入力されたメッセージは、未使用のバッファ611に書き込まれることになる。
ここで、書き込み制御部51による未使用のバッファ611の選択方法であるが、メモリ521ないしメモリ524のライトロックフラグを参照することで行われる。つまり、ライトロックフラグは、バッファ61が使用中のバッファである場合には、“1”となり、バッファ61が未使用のバッファである場合には、“0”となるので、書き込み制御部51は、ライトロックフラグが“0”となっているメモリ521のバッファ611を選択する。
なお、書き込み制御部51は、未使用のバッファ611を選択後、メッセージを書き込む場合には、メモリ521のライトロックフラグを、“0”から“1”に書き換える。これにより、他のデータが選択された未使用のバッファ611に書き込まれることを防止できる。また、メモリ521ないしメモリ524のライトロックフラグがすべて“1”、すなわち、バッファ611ないしバッファ614がすべて使用中のバッファである場合、書き込み制御部51は、ライトロックフラグの監視を開始し、メモリ521ないしメモリ524のいずれかのライトロックフラグが“0”となったとき、そのライトロックフラグに対応する未使用のバッファ61を選択すればよい。
また、書き込み制御部51は、入力ポート411からのメッセージを、特定の出力ポート432に出力するので、未使用のバッファ611を選択するとともに、出力ポート432用のメッセージであること示す情報を、ディスクリプタ621に書き込む。その後、入力ポート411からのメッセージの未使用のバッファ611への書き込みが終了すると、メモリ521のライトロックフラグは、書き込み制御部51によって、“1”から“0”に書き換えられる。そして、書き込み制御部51は、メモリ521のリードロックフラグを、“0”から“1”に書き換えて、読み出し制御部53に対し、メモリ521にメッセージがあることを通知する。
読み出し制御部53は、メモリ521ないしメモリ524のリードロックフラグを参照することで、バッファ611にメッセージが格納されたことを認識し、さらに、メモリ521のディスクリプタ621を参照することで、出力先が特定の出力ポート432であることを認識する。そして、読み出し制御部53は、発行元であるAPLからのメッセージが格納されたバッファ611と、書き込み制御部51によって指定された発行先(MW)の出力ポート432とを接続させる(図中の実線B)。
このとき、書き込み制御部51は、メモリ521ないしメモリ524のライトロックフラグとリードロックフラグの状態を確認し、ライトロックフラグとリードロックフラグの両方が“0”となる未使用のバッファ61があれば、その未使用バッファ61と入力ポート411とを接続させる。例えば、図3に示すように、バッファ614が未使用である場合には、書き込み制御部51によって、入力ポート411とメモリ524のバッファ614とが接続される(図中の実線A2)。
また、メモリ521のバッファ611と、出力ポート432とが接続され、バッファ611に格納されたメッセージのすべてが、出力ポート432から出力されると、読み出し制御部53には、発行先(MW)の出力ポート432側からメッセージを読み終わったことが、例えばレジスタなどを介して通知される。読み出し制御部53は、その通知に応じてメモリ521のリードロックフラグを、1から0に書き換える。これにより、メモリ521のバッファ611は、未使用のバッファとなる。
なお、入力ポート411からのメッセージがバッファ611に格納されている最中に、入力ポート412と、入力ポート413からのメッセージが入力された場合、書き込み制御部51は、メモリ521ないしメモリ524のライトロックフラグとリードロックフラグの状態を確認する。そして、書き込み制御部51は、入力ポート412と未使用のバッファ612とを接続し(図中の実線C)、入力ポート413と未使用のバッファ613とを接続する(図中の実線D)。すなわち、書き込み制御部51は、入力ポート41からデータが入力されると、そのデータを順次、未使用のバッファ61に書き込んでいくことになる。
このように、メモリ制御装置31においては、入力ポート41からのデータは、バッファ611ないしバッファ614からなる複数のバッファのうち、未使用のバッファに書き込まれ、未使用のバッファに書き込まれたデータは、出力先となる特定の出力ポート43から出力される。
すなわち、入力ポート41と出力ポート43は、あらかじめ決められた特定のバッファに接続するのではなく、複数のバッファから選択された未使用のバッファに接続されるので、入力ポート41や出力ポート43の数を増加させるとしても、新たにバッファを設ける必要がないし、仮に、新たなバッファを設けるとしても、例えばポート数×2のバッファのような多くのバッファを設ける必要はない。よって、本実施の形態においては、従来よりも少ないバッファ数で、効率的なデータ転送を実現できる。
また、本実施の形態においては、容易に任意のポート同士でのデータ転送を行うことが可能となるので、任意のバッファ61からの信号を任意の出力ポート43に接続させる信号切り替え器などの機器を設ける必要もない。
次に、図4ないし図9を参照して、図3のメモリ制御装置31における、入力ポート41とバッファ61、及びバッファ61と出力ポート43との接続動作について、さらに詳細に説明する。
図4に示すように、図4ないし図7及び図9においては、説明を簡略化するために、メモリ521ないしメモリ524の構成のうち、バッファ611ないしバッファ614だけを記述しているが、入力ポート411ないし入力ポート413から入力されるデータをバッファ611ないしバッファ614に書き込んだり、バッファ611ないしバッファ614に格納されたデータを読み出して、出力ポート431ないし出力ポート433から出力する際には、図3で説明した処理が行われる。
図5に示すように、メモリ制御部42において、バッファ611が未使用(空き)、バッファ612が使用中、バッファ613が未使用(空き)、バッファ614が未使用(空き)のバッファである場合に、入力ポート411からデータが入力されたとき、書き込み制御部51は、バッファ611ないしバッファ614のうち、未使用のバッファ613を選択し、入力ポート411と接続する(図中の点線A)。これにより、入力ポート411からの入力データは、バッファ613に書き込まれる。
同様に、入力ポート412からデータが入力されたとき、書き込み制御部51は、バッファ611ないしバッファ614のうち、未使用のバッファ611を選択し、入力ポート412と接続する(図中の点線B)。これにより、入力ポート412からの入力データは、バッファ611に書き込まれる。
また、このとき、読み出し制御部53によって、使用中のバッファ612と出力ポート432とが接続され(図中の実線C)、バッファ612に格納されたデータが、出力ポート432から出力されている。
ここで、バッファ613に格納されている入力ポート411からの入力データは、出力ポート431から出力するので、読み出し制御部53は、他のバッファが出力ポート431に接続されていなければ、図6に示すように、バッファ613と出力ポート431とを接続し、出力可能な状態にする(図中の実線D)。
一方、バッファ611に格納されている入力ポート412からの入力データは、出力ポート432から出力するが、図6に示すように、読み出し制御部53によって、バッファ612と出力ポート432とが接続された状態となっているので(図中の実線C)、バッファ612に格納されたデータの出力ポート432への出力が終了するまで、バッファ611に格納されたデータの出力を待機する。
その後、バッファ612に格納されたデータの出力ポート432への出力が終了すると、読み出し制御部53は、図7に示すように、バッファ611と出力ポート432とを接続し、出力可能な状態にする(図中の実線E)。これにより、バッファ611に格納された入力ポート412からデータは、出力ポート432から出力されることになる。
なお、このとき、バッファ612は、格納していたデータがすべて出力されたので、リードロックフラグが解除され、未使用のバッファとなる。
図8は、図4ないし図7を参照して説明した、バッファ611ないしバッファ614の動作の状態を示すタイミングチャートである。
図8において、四角はバッファが使用中であることを意味し、バッファ611ないしバッファ614のそれぞれの動作について、データを書き込む処理(Write)と、データを読み出す処理(Read)とを区別して表している。また、横軸は時間軸を表しており、時間の方向は図中左から右に向かう方向とされている。
図8に示すように、例えば、バッファ611とバッファ613において、データを書き込む処理が行われ、バッファ612において、データを読み出す処理が行われているとき、バッファ611では、データの書き込み処理が終了すると、直ちに、書き込んだデータを読み出す処理が行われる。また、バッファ612においては、データを読み出す処理が終了した後、また新たなデータが入力されると、その入力されたデータの書き込み処理が開始され、その後、書き込んだデータを読み出す処理が行われる。
また、バッファ613においても、データの書き込み処理が終了すると、その書き込んだデータを読み出す処理が行われ、その後、また新たなデータが入力されると、その入力されたデータの書き込み処理が開始される。バッファ614は、図8の例では、未使用のまま、特に動作していないが、バッファ611ないしバッファ613がすべて使用中となったときには、データが入力されることになる。
すなわち、図8に示すように、メモリ制御装置31においては、バッファ611とバッファ614のうち、未使用のバッファが選択され、その未使用のバッファにデータが格納される。その後、バッファに格納されたデータが出力ポート43から出力されると、そのバッファは、再び、未使用のバッファとなる。
このように、未使用のバッファを使いまわすことで、バッファの使用効率を上げることが可能となるため、余分なリソースを必要とせず、効率的なデータ転送を行うことが可能となる。また、バッファの数を少なくしても従来と同等あるいはそれ以上の性能を得ることができる。
また、読み出し制御部53によって、接続する出力ポート43を切り替えることで、バッファ61に格納されたデータを、任意の出力ポート43に出力できる。例えば、図7においては、バッファ611と出力ポート432とを接続し(図中の実線E)、バッファ613と出力ポート431とを接続する(図中の実線D)例について説明したが、図9に示すように、読み出し制御部53は、例えば、バッファ611と出力ポート433とを接続させ(図中の実線G)、バッファ613と出力ポート432とを接続させる(図中の実線F)ようにしてもよい。これにより、出力先の出力ポート43を切り替える信号切り替え器などの機器を設けなくとも、出力先の出力ポート43を自在に切り替えることが可能となる。
以上のように、本発明によれば、より少ないバッファ数で効率よくデータ転送することができる。
すなわち、本発明によれば、複数のデバイスからの入出力に対して、経路を適切に切り替えることにより、1つのバッファリソースを効率的に使いまわし、少ないリソースで効率的な転送を実現することができる。その結果、書き込み用と読み出し用のバッファを対で持たなくとも、バンクメモリの機能を実現することが可能となる。
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
従来のメモリ制御装置の構成を示す図である。 従来のメモリ制御装置の動作を説明するタイミングチャートである。 本発明を適用したメモリ制御装置の一実施の形態の構成を示す図である。 メモリ制御装置の動作を説明する図である。 メモリ制御装置の動作を説明する図である。 メモリ制御装置の動作を説明する図である。 メモリ制御装置の動作を説明する図である。 メモリ制御装置の動作を説明するタイミングチャートである。 メモリ制御装置の動作を説明する図である。
符号の説明
31 メモリ制御装置, 411ないし413 入力ポート, 42 メモリ制御部, 431ないし432 出力ポート, 51 書き込み制御部, 52 メモリ, 53 読み出し制御部, 611ないし614 バッファ, 621ないし624 ディスクリプタ

Claims (4)

  1. 書き込みが完了してから読み出しが開始され、その読み出しが完了してから書き込みが開始される複数のバッファと、
    前記バッファに書き込むデータを入力するための複数の入力ポートと、
    前記バッファから読み出した前記データを出力するための複数の出力ポートと、
    前記複数の出力ポートのうちの、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を保持する保持回路と、
    前記入力ポートから入力された前記データを、前記複数のバッファのうちの、前記データの書き込み又は読み出しが行われておらず、前記データを格納していない状態のバッファである未使用のバッファに書き込むとともに、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を前記保持回路に書き込む書き込み制御回路と、
    前記保持回路に保持された情報により特定される出力ポートが空いている場合、前記未使用のバッファへの書き込みが完了した前記データ、前記保持回路に保持された情報により特定される出力ポートへの読み出しを開始し、前記バッファからの前記データの読み出しが完了したときに前記バッファを開放する読み出し制御回路と
    を備えるメモリ制御装置。
  2. 前記読み出し制御回路は、前記保持回路に保持された情報により特定される出力ポートが既に他のバッファに書き込まれた他のデータの出力先となっている場合、前記他のバッファからの前記他のデータの出力が終了した後に、前記未使用のバッファへの書き込みが完了した前記データを、前記保持回路に保持された情報により特定される出力ポートに読み出す
    請求項1に記載のメモリ制御装置。
  3. 前記複数のバッファは、前記複数の入力ポートの数よりも、少なくとも1以上多い数となるように設けられ、
    前記バッファごとに、前記保持回路を有している
    請求項2に記載のメモリ制御装置。
  4. 書き込みが完了してから読み出しが開始され、その読み出しが完了してから書き込みが開始される複数のバッファと、
    前記バッファに書き込むデータを入力するための複数の入力ポートと、
    前記バッファから読み出した前記データを出力するための複数の出力ポートと、
    前記複数の出力ポートのうちの、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を保持する保持回路と
    を備えるメモリ制御装置の制御方法において、
    前記入力ポートから入力された前記データを、前記複数のバッファのうちの、前記データの書き込み又は読み出しが行われておらず、前記データを格納していない状態のバッファである未使用のバッファに書き込むとともに、前記入力ポートから入力された前記データから得られる前記データの出力先となる出力ポートを特定するための情報を前記保持回路に書き込み、
    前記保持回路に保持された情報により特定される出力ポートが空いている場合、前記未使用のバッファへの書き込みが完了した前記データ、前記保持回路に保持された情報により特定される出力ポートへの読み出しを開始し、前記バッファからの前記データの読み出しが完了したときに前記バッファを開放する
    ステップを含む制御方法。
JP2008102104A 2008-04-10 2008-04-10 メモリ制御装置及びその制御方法 Expired - Fee Related JP4632099B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008102104A JP4632099B2 (ja) 2008-04-10 2008-04-10 メモリ制御装置及びその制御方法
US12/392,304 US8156294B2 (en) 2008-04-10 2009-02-25 Apparatus and method for controlling storage buffers
CNA2009101349108A CN101556562A (zh) 2008-04-10 2009-04-09 存储器控制装置和用于控制存储器控制装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008102104A JP4632099B2 (ja) 2008-04-10 2008-04-10 メモリ制御装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009252128A JP2009252128A (ja) 2009-10-29
JP4632099B2 true JP4632099B2 (ja) 2011-02-16

Family

ID=41164934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008102104A Expired - Fee Related JP4632099B2 (ja) 2008-04-10 2008-04-10 メモリ制御装置及びその制御方法

Country Status (3)

Country Link
US (1) US8156294B2 (ja)
JP (1) JP4632099B2 (ja)
CN (1) CN101556562A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176138B (zh) * 2011-03-01 2013-04-03 上海维宏电子科技股份有限公司 数控系统中硬件端口的对象化管理控制方法
JPWO2012169032A1 (ja) * 2011-06-09 2015-02-23 富士通株式会社 バッファ装置,バッファ制御装置,及びバッファ制御方法
WO2012169032A1 (ja) * 2011-06-09 2012-12-13 富士通株式会社 バッファ装置,バッファ制御装置,及びバッファ制御方法
WO2018094509A1 (en) * 2016-11-25 2018-05-31 Genetec Inc. System for inter-process communication
US11226852B2 (en) 2016-11-25 2022-01-18 Genetec Inc. System for inter-process communication
KR102381233B1 (ko) * 2017-08-28 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004157795A (ja) * 2002-11-07 2004-06-03 Hitachi Ltd 二重系計算機及びその共有データ一致化方法
JP2006301724A (ja) * 2005-04-15 2006-11-02 Seiko Epson Corp メモリコントローラ、画像処理コントローラ及び電子機器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000216824A (ja) 1999-01-27 2000-08-04 Nec Corp カスケ―ド接続スイッチシステムにおけるフロ―制御方式及びそれに使用するスイッチ装置
US6598132B2 (en) * 2001-07-18 2003-07-22 Zettacom, Inc. Buffer manager for network switch port
US7149842B2 (en) * 2003-07-17 2006-12-12 Sun Microsystems, Inc. Efficient utilization of shared buffer memory and method for operating the same
JP2005092630A (ja) 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法
JP4255074B2 (ja) 2004-03-26 2009-04-15 富士通株式会社 測定機器共用制御方法および測定機器共用システム
US20060123194A1 (en) * 2004-12-02 2006-06-08 Claudio Alex Cukierkopf Variable effective depth write buffer and methods thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004157795A (ja) * 2002-11-07 2004-06-03 Hitachi Ltd 二重系計算機及びその共有データ一致化方法
JP2006301724A (ja) * 2005-04-15 2006-11-02 Seiko Epson Corp メモリコントローラ、画像処理コントローラ及び電子機器

Also Published As

Publication number Publication date
US8156294B2 (en) 2012-04-10
CN101556562A (zh) 2009-10-14
US20090259814A1 (en) 2009-10-15
JP2009252128A (ja) 2009-10-29

Similar Documents

Publication Publication Date Title
JP4632099B2 (ja) メモリ制御装置及びその制御方法
KR101366960B1 (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
US20080109627A1 (en) Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device
US7028297B2 (en) System and method of scalable transaction processing
US9804903B2 (en) Data processing apparatus for pipeline execution acceleration and method thereof
JP4642531B2 (ja) データ要求のアービトレーション
JP4945125B2 (ja) メモリ制御装置
JP4193746B2 (ja) マトリックス状バス接続システム
JP2006202271A (ja) ストリームプロセッサ及び情報処理装置
JP4779010B2 (ja) バッファリング装置およびバッファリング方法
JP3872922B2 (ja) 半導体記憶装置及びメモリ混載ロジックlsi
JP4723334B2 (ja) Dma転送システム
JP2001256106A (ja) メモリアクセスシステム
CN110383259B (zh) 计算处理装置和信息处理系统
JP4983133B2 (ja) 入出力制御装置およびその制御方法、並びにプログラム
TWI766891B (zh) 半導體裝置的處理器與其操作方法
JP2008204335A (ja) 半導体ストレージ装置
JP5000858B2 (ja) データ処理装置
JP2007508620A (ja) マルチマスタ共用資源システム中で使用するための通信ステアリング
JP4622871B2 (ja) データ処理システム、アクセス制御方法、その装置およびそのプログラム
JP6631370B2 (ja) マイクロコンピュータ及び電子制御装置
JP2006011779A (ja) データ転送回路、データ転送回路lsi、データ転送装置、データ処理装置、情報処理装置、データ転送方法、データ処理方法、および、情報処理方法。
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
WO2013063803A1 (zh) 一种支持矢量和标量混合存储的方法及装置
JPS60253083A (ja) 記憶装置制御方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100915

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101103

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees