JP2002268942A - マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法 - Google Patents

マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法

Info

Publication number
JP2002268942A
JP2002268942A JP2001071103A JP2001071103A JP2002268942A JP 2002268942 A JP2002268942 A JP 2002268942A JP 2001071103 A JP2001071103 A JP 2001071103A JP 2001071103 A JP2001071103 A JP 2001071103A JP 2002268942 A JP2002268942 A JP 2002268942A
Authority
JP
Japan
Prior art keywords
command
memory access
bank
memory
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001071103A
Other languages
English (en)
Other versions
JP3999943B2 (ja
Inventor
Shigehiro Asano
滋博 浅野
Jiro Amamiya
治郎 雨宮
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001071103A priority Critical patent/JP3999943B2/ja
Publication of JP2002268942A publication Critical patent/JP2002268942A/ja
Application granted granted Critical
Publication of JP3999943B2 publication Critical patent/JP3999943B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 効率良いマルチバンクアクセスを実現し且つ
必要に応じてメモリアクセスの終了を検知可能にするマ
ルチバンクアクセス制御装置を提供すること。 【解決手段】 プロセッサからのコマンドは、対応する
コマンドキュー22に蓄積される。インターリーブユニ
ット23は、キュー22から取り込んだメモリアクセス
コマンドをマイクロコマンドに細分化し、該当するメモ
リバンクに対応するバンクキュー24に発行する。終了
コントローラ26は、各メモリアクセスコマンドに属す
る全マイクロコマンドの発行及び終了を管理することに
よって、各メモリアクセスコマンドの終了を検出する。
同期コントローラ27は、終了コントローラ26の検出
結果に基づいて、インターリーブユニット23が取り込
んだ同期コマンドを発行したプロセッサ1が該同期コマ
ンドに先行して発行した全メモリアクセスコマンドの終
了を検出し、プロセッサ1に通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
あるいは複数のスレッドから共通にアクセスされる複数
のメモリバンクに対するアクセス制御を行うマルチバン
クアクセス制御装置及びマルチバンクアクセス制御方法
に関する。
【0002】
【従来の技術】マルチプロセッサシステムにおいて複数
のプロセッサからアクセスされるメモリは、高速化のた
めに複数バンクを同時にアクセスするのが一般的であ
る。例えば、あるプロセッサからメモリがアクセスされ
る場合、プロセッサからのアクセスは各バンクへのアク
セスに分解され、各バンクがそれぞれ独立にアクセスさ
れる。プロセッサからのアクセスは、キャッシュミスな
どの比較的短いデータをアクセスする場合と、DMAな
どで比較的長いデータをアクセスする場合がある。ま
た、アドレスによるバンクの割り当ては、連続したアド
レスが複数のバンクにまたがってアクセスされ、バンド
幅が大きくとれるようにインターリーブして割り当てら
れるのが一般的である。
【0003】
【発明が解決しようとする課題】各プロセッサから複数
のメモリアクセスが発生する場合、他のプロセッサから
の要求とバンクが衝突するために、必ずしもメモリのア
クセス順序がプロセッサから発行された順序で終了する
とは限らない。しかしながら、メモリのアクセスが終わ
ったことを知る何らかの方法がなければ、これらのメモ
リアクセスの結果を使った命令を実行することができな
い。
【0004】そこで、メモリアクセスが必ず発行順に終
了するように、メモリアクセスの実行に制限をかける方
法があるが、この方法では、メモリアクセス自体の処理
効率が低下し、プロセッサのパフォーマンスを低下させ
る問題点があった。
【0005】また、制限をかけないためには、全てのメ
モリアクセスについて、例えばバンクアクセスが終了し
たときなどに割り込みを発生させて、終了を検知する必
要がある。しかし、この割り込みを用いる方法でも、各
メモリアクセスが終了するごとに割り込みが発生するの
で、プロセッサのパフォーマンスを低下させる問題点が
あった。
【0006】本発明は、上記事情を考慮してなされたも
ので、効率良いマルチバンクアクセスを実現するととも
に、必要に応じてメモリアクセスコマンドの終了を検知
することを可能とするマルチバンクアクセス制御装置及
びマルチバンクアクセス制御方法を提供することを目的
とする。
【0007】
【課題を解決するための手段】本発明は、複数のプロセ
ッサから共通にアクセスされる複数のメモリバンクに対
するアクセス制御を行うマルチバンクアクセス制御装置
であって、複数の前記プロセッサに対応して1つずつ設
けられ、対応する前記プロセッサから発行されたバンク
アクセスに関係するコマンドを蓄積する第1の蓄積手段
と、複数の前記メモリバンクに対応して1つずつ設けら
れ、対応する前記メモリバンクに対するマイクロコマン
ドを蓄積する第2の蓄積手段と、前記第1の蓄積手段に
蓄積されたメモリアクセスコマンドを、その内容に応じ
て前記メモリバンクをアクセス対象とする1又は複数の
マイクロコマンドに細分化し、細分化された各々のマイ
クロコマンドを、それがアクセス対象とする前記メモリ
バンクに対応する前記第2の蓄積手段へ発行する制御手
段と、前記メモリアクセスコマンドに対応する前記マイ
クロコマンドの発行及び終了を管理することによって、
各々の前記メモリアクセスコマンドの終了を検出する第
1の検出手段と、前記第1の検出手段による検出結果に
基づいて、前記第1の蓄積手段から前記制御手段へ取り
込まれた同期コマンドを発行した前記プロセッサが該同
期コマンドに先行して発行したメモリアクセスコマンド
が、全て終了したか否かを検出する第2の検出手段とを
備えたことを特徴とする。
【0008】好ましくは、前記制御手段は、前記メモリ
アクセスコマンドを前記マイクロコマンドに細分化する
のに先立って、該メモリアクセスコマンドに割り当てる
べき識別情報を取得し、細分化された前記マイクロコマ
ンドを前記第2の蓄積手段へ発行するにあたり、該マイ
クロコマンドに、その元となった前記メモリアクセスコ
マンドに割り当てられた前記識別情報を付加し、前記第
1の検出手段は、前記マイクロコマンドに付加された前
記識別情報に基づいて前記マイクロコマンドの発行及び
終了を管理することによって、該識別情報を割り当てら
れた前記メモリアクセスコマンドの終了を検出するよう
にしてもよい。
【0009】好ましくは、前記第2の検出手段は、複数
の前記プロセッサに対応して1組ずつ設けられ、対応す
る前記プロセッサから発行され前記制御手段に取り込ま
れたが未だ終了していない前記メモリアクセスコマンド
の個数を保持するカウンタ、及び対応する前記プロセッ
サから発行され前記制御手段に取り込まれたが未だ終了
していない同期コマンドの有無を示すフラグを含み、前
記メモリアクセスコマンドが前記制御手段に取り込まれ
た場合に、該マイクロコマンドを発行した前記プロセッ
サに対応する前記カウンタをインクリメントし、前記第
1の検出手段によって前記メモリアクセスコマンドの終
了が検出された場合に、該メモリアクセスコマンドを発
行した前記プロセッサに対応する前記カウンタをデクリ
メントし、前記同期コマンドが前記制御手段に取り込ま
れた場合に、該同期コマンドを発行した前記プロセッサ
に対応する前記カウンタが初期状態でないときには、対
応する前記フラグを未だ終了していない同期コマンドが
有ることを示す状態にするようにしてもよい。
【0010】また、本発明は、複数のスレッドから共通
にアクセスされる複数のメモリバンクに対するアクセス
制御を行うマルチバンクアクセス制御装置であって、複
数の前記スレッドに対応して1つずつ設けられ、対応す
る前記スレッドから発行されたバンクアクセスに関係す
るコマンドを蓄積する第1の蓄積手段と、複数の前記メ
モリバンクに対応して1つずつ設けられ、対応する前記
メモリバンクに対するマイクロコマンドを蓄積する第2
の蓄積手段と、前記第1の蓄積手段に蓄積されたメモリ
アクセスコマンドを、その内容に応じて前記メモリバン
クをアクセス対象とする1又は複数のマイクロコマンド
に細分化し、細分化された各々のマイクロコマンドを、
それがアクセス対象とする前記メモリバンクに対応する
前記第2の蓄積手段へ発行する制御手段と、前記メモリ
アクセスコマンドに対応する前記マイクロコマンドの発
行及び終了を管理することによって、各々の前記メモリ
アクセスコマンドの終了を検出する第1の検出手段と、
前記第1の検出手段による検出結果に基づいて、前記第
1の蓄積手段から前記制御手段へ取り込まれた同期コマ
ンドを発行した前記スレッドが該同期コマンドに先行し
て発行したメモリアクセスコマンドが、全て終了したか
否かを検出する第2の検出手段とを備えたことを特徴と
する。
【0011】また、本発明は、複数のスレッドから共通
にアクセスされる複数のメモリバンクに対するアクセス
制御を行うマルチバンクアクセス制御方法であって、前
記プロセッサからバンクアクセスに関係するコマンドが
発行された場合に、該コマンドを、該プロセッサに対応
する第1の蓄積手段に蓄積し、制御手段は、複数の前記
プロセッサに対応する前記第1の蓄積手段のうちのいず
れかから蓄積されたコマンドを取り込み、該コマンドが
メモリアクセスコマンドである場合には、該メモリアク
セスコマンドを、その内容に応じて前記メモリバンクを
アクセス対象とする1又は複数のマイクロコマンドに細
分化し、細分化された各々のマイクロコマンドを、それ
がアクセス対象とする前記メモリバンクに対応する前記
第2の蓄積手段へ発行し、前記第1の検出手段は、前記
メモリアクセスコマンドに対応する前記マイクロコマン
ドの発行及び終了を検出することによって、前記メモリ
アクセスコマンドの終了を検出し、前記第2の検出手段
は、前記第1の検出手段による検出結果に基づいて、前
記第2の蓄積手段から前記制御手段へ取り込まれた同期
コマンドを発行した前記スレッドが該同期コマンドに先
行して発行したメモリアクセスコマンドが、全て終了し
たか否かを検出することを特徴とする。
【0012】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
【0013】本発明では、メモリアクセスコマンドの終
了を、該メモリアクセスコマンドに対応するマイクロコ
マンドの発行・終了を管理することによって、検出する
とともに、各プロセッサ(スレッド)ごとに、未終了の
メモリアクセスコマンドの数と未終了の同期コマンドの
有無を管理することによって、同期コマンドを発行した
プロセッサが該同期コマンドに先行して発行したメモリ
アクセスコマンドが、全て終了したか否かを検出する。
これによって、メモリアクセスとそれを使用するコマン
ドの順序関係を保証することができるようになる。この
結果、プロセッサのパフォーマンスを向上させることが
できる。
【0014】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0015】本実施形態では、マルチプロセッサシステ
ムを例に説明するが、複数のプロセッサの代わりに、マ
ルチスレッドプロセッサシステム(例えば、複数のスレ
ッドに制御される複数のDMAコントローラを持つシス
テム)にも本発明を適用することが可能である。
【0016】本実施形態では、プロセッサからのメモリ
アクセスコマンドが複数存在するときに、それらのメモ
リアクセスが終了したときのみ後続するコマンド(命
令)を実行できる同期コマンド(SYNCコマンド)を
導入する。また、この同期コマンドを実現するために、
プロセッサごとに同期用の同期カウンタを設け、同期カ
ウンタはメモリアクセスコマンドが発行されるとインク
リメントされ、対応する応答が返ってくるとデクリメン
トされ、0になったら同期コマンドを通過できるように
プロセッサが制御される。従って、プロセッサからのメ
モリアクセスコマンドが複数存在するときに、従来のよ
うな全コマンドに対する割り込み処理によらなくても、
メモリアクセスとそれを使用する命令(後続するコマン
ド)の順序関係を保証することができるようになる。こ
れによって、プロセッサのパフォーマンスを向上させる
ことができる。
【0017】図1に、本発明の一実施形態に係るマルチ
プロセッサシステムの構成例を示す。図1に示されるよ
うに、本実施形態のマルチプロセッサシステムでは、m
個(mは複数、図1はm=4の例)のプロセッサ(Pr
ocessor)1と、メモリコントローラ(Memo
ry Controller)2とが、バス(Bus)
3で接続され、メモリコントローラ2は、n個(nは複
数、図1はn=4の例)のメモリバンク(bank)4
へのアクセスを制御する。
【0018】なお、図1の例では、プロセッサ数とバン
ク数とが同じになっているが、もちろん、プロセッサ数
とバンク数とが異なってもよい。
【0019】また、メモリバンクと実メモリ(例えばメ
モリチップあるいはメモリユニット)とはどのような関
係であっても構わない。例えば、図2(a)に例示する
ように、全バンクを、1つのメモリを複数の領域に分割
したものに対応させるようにしてもよいし、図2(b)
に例示するように、一部のバンクを、1つのメモリを複
数の領域に分割したものに対応させるようにしてもよい
し、図2(c)に例示するように、1つのバンクを、複
数のメモリに対応させるようにしてもよい。また、バン
クとメモリとの対応関係が、バンク毎あるいはメモリ毎
に異なっていてもよい。
【0020】図3に、本発明の一実施形態に係るメモリ
コントローラ2の構成例を示す。図3に示されるよう
に、本実施形態のメモリコントローラ2は、バスインタ
フェース(Bus Interface)21、各プロ
セッサ1に対応して設けられるm個(mは複数、図3は
m=4の例)のコマンドキュー(Command Qu
eue)22、インターリーブユニット(Interl
eave Unit)23、各メモリバンク2に対応し
て設けられるn個(nは複数、図3はn=4の例)バン
クキュー(Bank Queue)24、データバッフ
ァ(Data Buffer)25、終了コントローラ
(Completion Controller)2
6、同期コントローラ(SYNC Controlle
r)27を含む。
【0021】図3のコマンドキュー(0)〜(3)は、
それぞれ、図1のプロセッサ(0)〜(3)に対応して
いる。また、図3のバンクキュー(0)〜(3)は、そ
れぞれ、図1のメモリバンク(0)〜(3)に対応して
いる。
【0022】さて、各プロセッサ1からのメモリアクセ
スコマンドは、当該プロセッサに対応するコマンドキュ
ー22に、バスインタフェース21を経由して投入され
る。図1及び図3の例では、プロセッサ(0)からのメ
モリアクセスコマンドは、当該プロセッサ(0)に対応
するコマンドキュー(0)に投入される。同様に、プロ
セッサ(1)〜(3)からのメモリアクセスコマンド
は、それぞれ、対応するコマンドキュー(1)〜(3)
に投入される。
【0023】なお、各プロセッサ(i)からの同期コマ
ンドも、当該プロセッサ(i)に対応するコマンドキュ
ー(i)に入れられる。
【0024】各々のコマンドキュー22内では、コマン
ドは、プロセッサ1が発行した順序で保持され、その順
序でインターリーブユニット23に取り込まれる(すな
わち、FIFOとする)。
【0025】インターリーブユニット23は、コマンド
キュー22を1つ選択し、その先頭のコマンドを取り込
み、該コマンドがメモリアクセスコマンドか同期コマン
ドかによって、それに応じた処理を行う。コマンドキュ
ー22は、例えば、ラウンド・ロビン方式で順番に選択
していってもよい(空のコマンドキュー22はスキップ
する)。また、例えば、コマンドキュー22に優先順位
を付し該順位の高いものから優先的に選択する方法や、
ランダムに選択する方法など、他の方法も可能である。
【0026】なお、インターリーブユニット23は、ま
ず、候補とするコマンドキュー22を選択し、そのコマ
ンドキュー22にコマンドが保持されていればその先頭
のコマンドを取り込み、そのコマンドキュー22にコマ
ンドが保持されていれば次の候補を選択するという手順
にしてもよいし、まず、コマンドを保持しているコマン
ドキュー22を調べ(これは、コマンドキュー22にコ
マンドを保持しているか問い合わせをして返答を受ける
などの能動的な形態であってもよいし、コマンドを保持
したコマンドキュー22から通知を受けるなどの受動的
な形態であってもよい)、それらのうちから1つを選択
し、その先頭のコマンドを取り込むという手順にしても
よいし、その他の方法も可能である。
【0027】インターリーブユニット23は、各プロセ
ッサ1から発行されたメモリアクセスコマンドに対して
は、該メモリアクセスコマンドをバンクごとに分けたコ
マンド(マイクロコマンド)に細分化する働きをする
(なお、幾つのマイクロコマンドが生成されるかは、メ
モリアクセスコマンドに応じて異なる(1つのこともあ
り得る))。
【0028】ただし、本実施形態では、1つのメモリア
クセスコマンドに属する全マイクロコマンドに対し該メ
モリアクセスコマンドに割り当てた識別番号(後述)を
付して各、マイクロコマンドが属するメモリアクセスコ
マンドを特定するが、識別番号には上限があるので、識
別番号に空きがあって初めて、メモリアクセスコマンド
を、マイクロコマンドに細分化することができる。識別
番号は、終了コントローラ26から与えられる(例え
ば、終了コントローラ26に識別番号を要求し、空きが
あれば識別番号が返され、空きがなければその旨が返さ
れる)。
【0029】生成されたマイクロコマンドは、当該マイ
クロコマンドがアクセスすべきメモリバンク4に対応す
るバンクキュー24に発行される。
【0030】例えば、図1及び図3の例で1バンクにて
連続する128バイトのアクセスをサポートする構成を
採用した場合において、プロセッサ(1)から、「メモ
リ・アドレス“0x1000”〜“0x1fff”の4
096バイトを、プロセッサ(1)に転送する」という
メモリアクセスコマンドが来たとすると、4096/1
28=32個のマイクロコマンドが発行される。そし
て、32個のマイクロコマンドは、それぞれが割り当て
られた1つのバンクをアクセスするため、該当するバン
クキュー24に発行される(例えば、バンクキュー
(0)〜(3)にはそれぞれ8つずつのマイクロコマン
ドが入れられる)。
【0031】各々のバンクキュー24内では、マイクロ
コマンドは、投入された発行で保持され、その順序でメ
モリバンク4に発行される(すなわち、FIFOとす
る)。
【0032】なお、各々のバンクキュー24内では、同
一のプロセッサ1が発行した異なるメモリアクセスコマ
ンドに属するマイクロコマンドが混在し得るだけでな
く、異なるプロセッサ1が発行したメモリアクセスコマ
ンドに属するマイクロコマンドも混在し得る。
【0033】ところで、アドレスの割付には種々の方法
が可能であるが、例えば、上記の例では、連続したアド
レスで複数のバンクからアクセスし、スループットを発
揮するためにバンクのインターリーブを行うために、一
例として、次のようなアドレスの割付が考えられる。1
回のバンクアクセスで128バイトのデータをサポート
していると仮定して、アドレスの第0ビットから第6ビ
ットまでの7ビットが、128バイト中のオフセット
(128バイト中のどの1バイトか)を示し、第8ビッ
トと第7ビットの2ビットが、4つのバンクのうちのど
のバンクかを示し、第9ビットから第31ビットの23
ビットが、当該バンク内のどの128バイトかを示して
いる。また、この例では、第8ビットと第7ビットの2
ビットは、マイクロコマンドをインタリーブユニット2
3からバンクキュー24へ投入する際に該当するバンク
キュー24の選択のために参照され、第9ビットから第
31ビットの23ビットが実際のバンクアクセスの際に
メモリバンク内の該当する128バイトを選択するため
に参照される(なお、この例では、第0ビットから第6
ビットまでの7ビットは、プロセッサ内で使用するフィ
ールドである)。
【0034】バンクキュー24からそれぞれ対応するメ
モリバンク4に発行されたマイクロコマンドは、メモリ
バンク4をアクセスし、リード(Read)アクセスの
ときは、該当アドレスのデータがメモリバンク4からデ
ータバッファ25に書き込まれ、ライト(Write)
アクセスのときは、書き込むべきデータがデータバッフ
ァ25からメモリバンク4に書き込まれる。データバッ
ファ25は、バスインタフェース21を経由してバス、
プロセッサ1との間でデータの受け渡しを行う。
【0035】メモリバンク4からのリードについては、
コマンドキュー22からインターリーブユニット23へ
コマンドが発行されるとき、該コマンドには対応するプ
ロセッサ1のプロセッサ番号が付される。また、インタ
ーリーブユニット23からバンクキュー24へマイクロ
コマンドが発行されるとき、該マイクロコマンドには対
応するプロセッサ1のプロセッサ番号及びそれが属する
メモリアクセスコマンドに対応する識別番号が付され
る。さらに、メモリバンク4からの応答(例えば、12
8バイトデータ)をデータバッファ25から返すとき
に、該データには対応するプロセッサ1のプロセッサ番
号及び応答しているアドレスが付加され、プロセッサ側
でどのパケットを受け取るべきかを識別できる。
【0036】メモリバンク4へのライトについては、上
記と同様に、コマンドキュー22からインターリーブユ
ニット23へコマンドが発行されるとき、該コマンドに
は対応するプロセッサ1のプロセッサ番号が付され、イ
ンターリーブユニット23からバンクキュー24へマイ
クロコマンドが発行されるとき、該マイクロコマンドに
は対応するプロセッサ1のプロセッサ番号及び識別番号
が付される。また、インターリーブユニット23からバ
ンクキュー24へマイクロコマンドが発行されるとき、
対応するプロセッサ1のプロセッサ番号及びアドレスが
ライトリクエスト(Write Request)とし
てバスインタフェース21を介してバス3に送出され、
該当するプロセッサ1は書き込むべきデータをバス3に
送出する。この書き込むべきデータは、バスインタフェ
ース21を介してデータバッファ25に入れられる。
【0037】各プロセッサ1がデータを送出するタイミ
ングをどの時点にするかについては、例えば、プロセッ
サ1がコマンドを送る時点とする方法がある。また、例
えば、インターリーブユニット23からバンクキュー2
4にマイクロコマンドを発行する時点とする方法もあ
る。後者の方法は、前者の方法に比べて、データバッフ
ァ25のメモリ量を減らすことができる。
【0038】バンクキュー24から各メモリバンク4に
書き込み命令が出るときに、データバッファ25から対
応するデータが出力される。
【0039】なお、データバッファ25には、バンクキ
ュー24に対応するライト用のバッファを設けるように
すると好ましい。
【0040】図4に、インターリーブユニット23の処
理手順の一例を示す。
【0041】インターリーブユニット23は、空でない
コマンドキュー22があるかどうかをチェックしている
(ステップS1)。
【0042】空でないコマンドキュー22があるならば
(ステップS1)、空でないコマンドキュー22を1つ
選択する(ステップS2)。
【0043】選択したコマンドキュー22の先頭に保持
されているコマンドが同期コマンドである場合には(ス
テップS3)、同期カウンタへの通知を行い(ステップ
S4)、ステップS1に戻り、処理を続ける。
【0044】選択したコマンドキュー22の先頭に保持
されているコマンドがメモリアクセスコマンドである場
合には(ステップS3)、メモリアクセスコマンドに割
り当てる識別番号に空きがなければ(ステップS5)、
ステップS1に戻り、処理を続ける。
【0045】メモリアクセスコマンドに割り当てる識別
番号に空きがあれば(ステップS5)、選択したコマン
ドキュー22の先頭のコマンドを取り出す(ステップS
6)。そして、取り出したメモリアクセスコマンドに基
づいて、マイクロコマンドを生成し、生成したマイクロ
コマンドを、該当するバンクキュー24に投入する(ス
テップS7)。また、当該メモリアクセスコマンドにつ
いての同期コントローラ27への通知を行う(ステップ
S7)。また、当該メモリアクセスコマンドから生成さ
れたマイクロコマンドについての終了コントローラ26
への通知を行う(ステップS7)。そして、ステップS
1に戻り、処理を続ける。
【0046】前述したように、プロセッサ1からのメモ
リアクセスのコマンドは、複数のマイクロコマンドに分
解される。そして、本実施形態では、各プロセッサ1か
らの各メモリアクセスコマンドの終了を検知するため、
当該メモリアクセスコマンドに属する全マイクロコマン
ドの生成・終了を管理する終了コントローラ26と、1
つの同期コマンドに対する全メモリアクセスコマンドが
終了したこと検知し、当該同期コマンドが終了してこれ
を通過可能である旨を該当するプロセッサ1に通知する
ための同期コントローラ27を設けている。
【0047】まず、同期コントローラ27について説明
する。
【0048】図5に、本実施形態の同期コントローラ2
7の構成例を示す。図5に示されるように、本同期コン
トローラ27は、アウトプットデコーダ(Output
Decoder)271、各プロセッサ1に対応して
設けられるm個(mは複数、図5はm=4の例)の同期
カウンタ(SYNC Counter)272及び同期
ビット(SYNC Bit)273、インプットデコー
ダ(Input Decoder)274を含む。
【0049】図5の同期カウンタ(0)〜(3)は、そ
れぞれ、図1のプロセッサ(0)〜(3)に対応してい
る。また、図5の同期ビット(0)〜(3)は、それぞ
れ、図1のプロセッサ(0)〜(3)に対応している。
【0050】ここでは、図1のプロセッサ(0)に対応
する図3の同期カウンタ(0)及び同期ビット(0)を
例にとって説明する。
【0051】同期コントローラ27においては、インタ
ーリーブユニット23から、プロセッサ(0)からの1
つのメモリアクセスコマンドが新たに通知されると、同
期コントローラ27の該プロセッサ(0)に対応する同
期カウンタ(0)はインクリメントされる。また、終了
コントローラ26でプロセッサ(0)からの1つのメモ
リアクセスコマンドの終了が検出されると、該同期カウ
ンタ(0)はデクリメントされる。
【0052】一方、同期コマンドがインターリーブユニ
ット23に入ると、同期ビット(0)がセットされる
(例えば、1になる)。
【0053】同期コマンドに先行するメモリアクセスコ
マンドがすべて終了した旨(すなわち当該同期コマンド
が終了した旨)の該当するプロセッサ1への通知は、次
のような条件で行われる。 ・同期カウンタ(0)のカウンタ値が0の状態におい
て、同期コマンドがコマンドキュー(0)からインター
リーブユニット23に出たときは、プロセッサ(0)
に、当該同期コマンドに対応するメモリアクセスコマン
ドがすべて終了したことを通知する。このとき、同期ビ
ット(0)は、セットしない(なお、一旦セットし直ち
に通知条件の成立を検知しそして直ちにリセットするよ
うにしてもよい)。 ・同期ビット(0)が1の状態において、(メモリアク
セスコマンドが終了し)同期カウンタ(0)の値が0に
なったときは、プロセッサ(0)に、当該同期コマンド
に対応するメモリアクセスコマンドがすべて終了したこ
とを通知し、同期ビット(0)をリセットする(例え
ば、0にする)。 ・同期ビット(0)が0の状態において、(メモリアク
セスコマンドが終了し)同期カウンタ(0)の値が0に
なったときは、プロセッサには通知しない。
【0054】以上、プロセッサ(0)を例にとって説明
したが、他のプロセッサについても同様である。
【0055】ところで、プロセッサ1側での同期コマン
ドの扱いには、種々の方法があるが、例えば、プロセッ
サ1は、同期コマンドをメモリコントローラ2(のコマ
ンドキュー22)に送った際に、ビジーウェイト状態に
なり、メモリコントローラ2(の同期コントローラ2
7)から同期コマンド終了の応答が返ってた際に、ビジ
ーウェイト状態を解除するようにしてもよい。また、例
えば、同期コマンドの終了について、割り込みを用いる
ようにしてもよい(従来は、すべてのコマンドについて
割り込みを用いる必要があったが、本実施形態では、同
期コマンドについてのみ割り込みを用いればよい)。ま
た、マルチスレッドプロセッサの場合には、同期コマン
ドでスレッドの切り替えを行ってもよい。この場合、例
えば、同期コマンドを実行したスレッドを待避させ、同
期コントローラから同期コマンド終了の応答が返ってき
た際に、該応答に対応する同期コマンドを実行したスレ
ッドを、復帰させる(あるいは、復帰可能な状態にす
る)。
【0056】例えば、プロセッサ(0)が実行するプロ
グラムが次のようであったとする。 : DMAコマンド1 DMAコマンド2 同期コマンド DMAコマンド3 : この例では、DMAコマンド1とDMAコマンド2の両
方が終了した後に、DMAコマンド3を実行させるた
め、DMAコマンド1及びDMAコマンド2とDMAコ
マンド3の間で同期コマンドが記述されている。この場
合、DMAコマンド1とDMAコマンド2が終了され
(かつ同期コマンドが発行され)た後に、メモリコント
ローラ2から該当するプロセッサ1へ同期コマンド終了
が通知される。
【0057】通知を受けたプロセッサ1では、例えば、
ビジーウェイト状態が解除され、DMAコマンド3が実
行されることになる。
【0058】また、マルチスレッドプロセッサの場合に
は、同期コマンドを実行したスレッドが、復帰可能とな
り、復帰された後に、DMAコマンド3が実行されるこ
とになる。
【0059】図6に、同期コントローラ27における通
知を受けたときの同期カウンタ272又は同期ビット2
73に対する処理手順の一例を示す。
【0060】同期コントローラ27は、インターリーブ
ユニット23または終了コントローラ26から通知があ
ったかどうかをチェックしている(ステップS11)。
【0061】通知があった場合に(ステップS11)、
該通知がインターリーブユニット23からのメモリアク
セスコマンドの発行の通知であるならば(ステップS1
2)、通知に係るプロセッサ1に対応する同期カウンタ
272をインクリメントし(ステップS13)、ステッ
プS11に戻り、処理を続ける。
【0062】該通知が終了コントローラ26からのメモ
リアクセスコマンドの終了の通知であるならば(ステッ
プS12)、通知に係るプロセッサ1に対応する同期カ
ウンタ272をデクリメント(ステップS14)し、ス
テップS11に戻り、処理を続ける。
【0063】該通知がインターリーブユニット23から
の同期コマンドの通知であるときは(ステップS1
2)、通知に係るプロセッサ1に対応する同期カウンタ
272の値が1以上ならば(ステップS15)、通知に
係るプロセッサ1に対応する同期フラグ273をセット
し(ステップS16)、ステップS11に戻り、処理を
続ける。対応する同期カウンタの値が0ならば(ステッ
プS15)、対応する同期フラグ273をセットせず
に、ステップS11に戻り、処理を続ける。
【0064】図7に、同期コントローラ27からプロセ
ッサへの通知に関する処理手順の一例を示す。
【0065】同期コントローラ27は、同期カウンタ2
72又は同期ビット273の状態が変化したかどうかお
よび同期コマンドの通知を受けたかどうか(イベントの
発生)をチェックしている(ステップS21)。
【0066】もし、あるプロセッサ1に対応する同期カ
ウンタ272の値が0のときに、該プロセッサ1からの
同期コマンドの通知を受けたならば(ステップS2
2)、プロセッサ1への通知を行い(ステップS2
3)、ステップS21に戻り、処理を続ける。
【0067】もし、あるプロセッサ1に対応する同期ビ
ットがセットされているときに、該プロセッサ1に対応
する同期カウンタが0になったならば(ステップS2
4)、プロセッサ1への通知を行うとともに、該同期ビ
ット273をリセットし(ステップS23)、ステップ
S21に戻り、処理を続ける。
【0068】その他のイベントであった場合には、何も
しない(ステップS21に戻り、処理を続ける)。
【0069】なお、図6において、ステップS12で同
期コマンドの通知であった場合には、対応する同期カウ
ンタ272の値にかかわらずに、対応する同期フラグ2
73をセットするようにしてもよい。この場合には、図
7のステップS22/S23では、あるプロセッサ1に
対応する同期カウンタ272の値が0のときに、対応す
る同期フラグ273がセットされたならば(ステップS
22)、プロセッサ1への通知を行うとともに、該同期
ビット273をリセットするようにすればよい(この場
合、ステップS21では、同期カウンタ272又は同期
ビット273の状態が変化したかどうかをチェックし、
同期コマンドの通知を受けたかどうかはチェックしな
い)。
【0070】次に、終了コントローラ26について説明
する。
【0071】インターリーブユニット23では、メモリ
アクセスコマンドをマイクロコマンドに分解し、複数の
プロセッサ1からのマイクロコマンドがバンクキュー2
4で競合するので、マイクロコマンドの終了順序は、イ
ンターリーブユニット23からの発行順序とは一般的に
は異なることになる(結果的に同じになることもあ
る)。終了コントローラ26では、1つのメモリアクセ
スコマンドに対応する複数のマイクロコマンドがすべて
終了した場合に、当該1つのメモリアクセスコマンドが
終了したとして、同期コントローラ27に通知する。
【0072】図8に、本実施形態の終了コントローラ2
6の構成例を示す。図8に示されるように、本終了コン
トローラ26は、第1のデコーダ(Decoder_
A)261、k個(kは複数、図8の例ではK=6)の
マイクロカウンタ(MicroCount)262及び
プロセッサ番号保持部(Proc Num)263、第
2のデコーダ(Decoder_B)264を含む。
【0073】まず、メモリアクセスコマンドがインター
リーブユニット23でマイクロコマンドに分解されると
き、デコーダ(Decoder_A)261が識別番号
を発行する。識別番号は、図8のマイクロカウンタ/プ
ロセッサ番号保持部毎に固有に割り当てらたものであ
り、例えば、マイクロカウンタ(0)/プロセッサ番号
保持部(0)〜マイクロカウンタ(5)/プロセッサ番
号保持部(5)の各組に、それぞれ、識別番号0〜5が
割り当てられる。マイクロカウンタ/プロセッサ番号保
持部の組の数(最大発行できる識別番号の個数)は、必
ずしもプロセッサの数と一致している必要はない(プロ
セッサの数と一致していてもよい)。
【0074】識別番号は対応するマイクロカウンタ/プ
ロセッサ番号保持部が空きの状態のときに発行される
が、識別番号に空きがないとき(マイクロカウンタ/プ
ロセッサ番号保持部に空きがないとき)は識別番号が発
行されないので、後者の場合にインターリーブユニット
23がマイクロコマンドを生成することがないように制
御される。
【0075】インターリーブユニット23が識別番号の
獲得に成功すると、メモリアクセスコマンドに識別番号
の割り当てが可能になり、マイクロコマンドが生成可能
になる。マイクロコマンドが一つ生成されるごとに、当
該識別番号に対応するマイクロカウンタ262がインク
リメントされる。また、メモリアクセスコマンドに識別
番号が割り当てられたときには、プロセッサ番号保持部
263にメモリアクセスコマンドを発行したプロセッサ
1のプロセッサ番号がセットされ、後に当該メモリアク
セスコマンドが終了したとき、このプロセッサ番号が通
知のために使用される。
【0076】インターリーブユニット23から生成され
るマイクロコマンドは、獲得された識別番号が付与され
ている。バンクキュー24から出てメモリから応答が返
ってくると、この識別番号によってマイクロカウンタ2
62が選択され、選択されたマイクロカウンタ262が
デクリメントされる。すなわち、マイクロカウンタ26
2は、対応するメモリアクセスコマンドについて、マイ
クロコマンドが生成されるとインクリメントされ、マイ
クロコマンドが終了するとデクリメントされることによ
り、メモリアクセスコマンドの終了を知ることができ
る。
【0077】マイクロカウンタ262のカウント値が0
になったとき、デコーダ(Decoder_A)261
が、対応するプロセッサ番号を同期コントローラ27に
通知する。
【0078】図9に、終了コントローラ26における処
理手順の一例を示す。
【0079】終了コントローラ26は、マイクロコマン
ドが発生されたかおよび終了されたか(イベントの発
生)をチェックしている(ステップS31)。
【0080】マイクロコマンドが生成された場合には
(ステップS32)、該マイクロコマンドに割り当てら
れた識別子に対応するマイクロカウンタ262をインク
リメントし(ステップS33)、ステップS31に戻
り、処理を続ける。
【0081】マイクロコマンドが終了された場合には
(ステップS32)、該マイクロコマンドに割り当てら
れた識別子に対応するマイクロカウンタ262をデクリ
メントする(ステップS34)。そして、該マイクロカ
ウンタ262が0になったならば、該マイクロカウンタ
262に対応するプロセッサ番号保持部263に保持さ
れているプロセッサ番号に対応する1つのメモリアクセ
スコマンドが終了した旨を同期コントローラ27へ通知
する(ステップS36)。また、該識別番号を解放し、
該識別番号及び対応するマイクロカウンタ262/プロ
セッサ番号保持部263を未使用の状態する(ステップ
S36)。そして、ステップS31に戻り、処理を続け
る。
【0082】以上のように本実施形態によれば、メモリ
アクセスをバンクアクセスにインターリーブし、インタ
ーリーブしたアクセスがメモリアクセスの順序に従わず
効率良いアクセスをしながら、必要に応じてメモリアク
セスが終了したことを知ることができる。
【0083】なお、本実施形態では、マルチプロセッサ
システムを例に説明したが、マルチスレッドプロセッサ
システム(図1のプロセッサをスレッド(ハードウェア
スレッド)にしたものに相当)に対するメモリコントロ
ーラに本発明を適用したものは、基本的には、これまで
説明したものと同様である(説明において、プロセッサ
をスレッドに読み替えればよい)。
【0084】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。従って、この発明の実施
の形態に開示した内容からは、例示した構成に限定され
ることなく発明を抽出することができるものである。
【0085】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0086】
【発明の効果】本発明によれば、効率良いマルチバンク
アクセスを実現するとともに、必要に応じてメモリアク
セスコマンドの終了を検知することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るマルチプロセッサシ
ステムの構成例を示す図
【図2】バンクとメモリとの関係について説明するため
の図
【図3】同実施形態に係るメモリコントローラの構成例
を示す図
【図4】同実施形態に係るインターリーブユニットの処
理手順の一例を示すフローチャート
【図5】同実施形態に係る同期コントローラの構成例を
示す図
【図6】同実施形態に係る同期コントローラの第1の処
理手順の一例を示すフローチャート
【図7】同実施形態に係る同期コントローラの第2の処
理手順の一例を示すフローチャート
【図8】同実施形態に係る終了コントローラの構成例を
示す図
【図9】同実施形態に係る終了コントローラの処理手順
の一例を示すフローチャート
【符号の説明】
1…プロセッサ 2…メモリコントローラ 3…バス 4…メモリバンク 21…バスインタフェース 22…コマンドキュー 23…インターリーブユニット 24…バンクキュー 25…データバッファ 26…終了コントローラ 27…同期コントローラ 261…第1のコーダ 262…マイクロカウンタ 263…プロセッサ番号保持部 264…第2のデコーダ 271…アウトプットデコーダ 272…同期カウンタ 273…同期ビット 274…インプットデコーダ

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサから共通にアクセスされ
    る複数のメモリバンクに対するアクセス制御を行うマル
    チバンクアクセス制御装置であって、 複数の前記プロセッサに対応して1つずつ設けられ、対
    応する前記プロセッサから発行されたバンクアクセスに
    関係するコマンドを蓄積する第1の蓄積手段と、 複数の前記メモリバンクに対応して1つずつ設けられ、
    対応する前記メモリバンクに対するマイクロコマンドを
    蓄積する第2の蓄積手段と、 前記第1の蓄積手段に蓄積されたメモリアクセスコマン
    ドを、その内容に応じて前記メモリバンクをアクセス対
    象とする1又は複数のマイクロコマンドに細分化し、細
    分化された各々のマイクロコマンドを、それがアクセス
    対象とする前記メモリバンクに対応する前記第2の蓄積
    手段へ発行する制御手段と、 前記メモリアクセスコマンドに対応する前記マイクロコ
    マンドの発行及び終了を管理することによって、各々の
    前記メモリアクセスコマンドの終了を検出する第1の検
    出手段と、 前記第1の検出手段による検出結果に基づいて、前記第
    1の蓄積手段から前記制御手段へ取り込まれた同期コマ
    ンドを発行した前記プロセッサが該同期コマンドに先行
    して発行したメモリアクセスコマンドが、全て終了した
    か否かを検出する第2の検出手段とを備えたことを特徴
    とするマルチバンクアクセス制御装置。
  2. 【請求項2】前記制御手段は、前記メモリアクセスコマ
    ンドを前記マイクロコマンドに細分化するのに先立っ
    て、該メモリアクセスコマンドに割り当てるべき識別情
    報を取得し、細分化された前記マイクロコマンドを前記
    第2の蓄積手段へ発行するにあたり、該マイクロコマン
    ドに、その元となった前記メモリアクセスコマンドに割
    り当てられた前記識別情報を付加し、 前記第1の検出手段は、前記マイクロコマンドに付加さ
    れた前記識別情報に基づいて前記マイクロコマンドの発
    行及び終了を管理することによって、該識別情報を割り
    当てられた前記メモリアクセスコマンドの終了を検出す
    ることを特徴とする請求項1に記載のマルチバンクアク
    セス制御装置。
  3. 【請求項3】前記第1の検出手段は、 予め定められた個数の前記識別情報に対応するカウンタ
    を含み、 前記マイクロコマンドが発行された場合に、該マイクロ
    コマンドに付加された前記識別情報に対応する該カウン
    タをインクリメントし、前記マイクロコマンドが終了し
    た場合に、該マイクロコマンドに付加された前記識別情
    報に対応する該カウンタをデクリメントし、該カウンタ
    の値が初期状態に戻った場合に、該カウンタに対応する
    前記識別情報を割り当てられた前記メモリアクセスコマ
    ンドが終了したことを検出することを特徴とする請求項
    2に記載のマルチバンクアクセス制御装置。
  4. 【請求項4】前記第1の検出手段は、 前記識別情報に対応する前記カウンタと対応付けて、該
    識別情報に対応する前記メモリアクセスコマンドを発行
    した前記プロセッサを特定するための情報を保持し、 前記メモリアクセスコマンドが終了したことを検出した
    場合に、終了が検出された該メモリアクセスに付加され
    た前記識別情報に対応して保持されている前記プロセッ
    サを特定するための情報を、前記第2の検出手段に通知
    することを特徴とする請求項3に記載のマルチバンクア
    クセス制御装置。
  5. 【請求項5】前記第2の検出手段は、 複数の前記プロセッサに対応して1組ずつ設けられ、対
    応する前記プロセッサから発行され前記制御手段に取り
    込まれたが未だ終了していない前記メモリアクセスコマ
    ンドの個数を保持するカウンタ、及び対応する前記プロ
    セッサから発行され前記制御手段に取り込まれたが未だ
    終了していない同期コマンドの有無を示すフラグを含
    み、 前記メモリアクセスコマンドが前記制御手段に取り込ま
    れた場合に、該マイクロコマンドを発行した前記プロセ
    ッサに対応する前記カウンタをインクリメントし、前記
    第1の検出手段によって前記メモリアクセスコマンドの
    終了が検出された場合に、該メモリアクセスコマンドを
    発行した前記プロセッサに対応する前記カウンタをデク
    リメントし、前記同期コマンドが前記制御手段に取り込
    まれた場合に、該同期コマンドを発行した前記プロセッ
    サに対応する前記カウンタが初期状態でないときには、
    対応する前記フラグを未だ終了していない同期コマンド
    が有ることを示す状態にすることを特徴とする請求項1
    ないし4のいずれか1項に記載のマルチバンクアクセス
    制御装置。
  6. 【請求項6】前記未だ終了していない同期コマンドが有
    ることを示す状態にあるフラグに対応する前記カウンタ
    がデクリメントされて初期状態になった場合には、該カ
    ウンタ及び該フラグに対応する前記プロセッサに対して
    当該同期コマンドに先行して発行されメモリアクセスコ
    マンドが全て終了した旨を通知することを特徴とする請
    求項5に記載のマルチバンクアクセス制御装置。
  7. 【請求項7】前記同期コマンドが前記制御手段に取り込
    まれたときに、該同期コマンドを発行した前記プロセッ
    サに対応する前記カウンタが初期状態であった場合に、
    該カウンタ及び該フラグに対応する前記プロセッサに対
    して当該同期コマンドに先行して発行されメモリアクセ
    スコマンドが全て終了した旨を通知することを特徴とす
    る請求項5に記載のマルチバンクアクセス制御装置。
  8. 【請求項8】前記未だ終了していない同期コマンドが無
    いことを示す状態にあるフラグに対応する前記カウンタ
    がデクリメントされて初期状態になった場合には、該カ
    ウンタ及び該フラグに対応する前記プロセッサに対して
    前記通知は行わないことを特徴とする請求項5に記載の
    マルチバンクアクセス制御装置。
  9. 【請求項9】前記制御手段は、所定の選択基準に従っ
    て、複数の前記第1の蓄積手段のうちからコマンドを取
    り込むべきものを選択することを特徴とする請求項1に
    記載のマルチバンクアクセス制御装置。
  10. 【請求項10】前記制御手段は、前記識別情報が全て使
    用されているために取得できない間は、前記メモリアク
    セスコマンドに対する処理を行わないことを特徴とする
    請求項1に記載のマルチバンクアクセス制御装置。
  11. 【請求項11】複数のスレッドから共通にアクセスされ
    る複数のメモリバンクに対するアクセス制御を行うマル
    チバンクアクセス制御装置であって、 複数の前記スレッドに対応して1つずつ設けられ、対応
    する前記スレッドから発行されたバンクアクセスに関係
    するコマンドを蓄積する第1の蓄積手段と、 複数の前記メモリバンクに対応して1つずつ設けられ、
    対応する前記メモリバンクに対するマイクロコマンドを
    蓄積する第2の蓄積手段と、 前記第1の蓄積手段に蓄積されたメモリアクセスコマン
    ドを、その内容に応じて前記メモリバンクをアクセス対
    象とする1又は複数のマイクロコマンドに細分化し、細
    分化された各々のマイクロコマンドを、それがアクセス
    対象とする前記メモリバンクに対応する前記第2の蓄積
    手段へ発行する制御手段と、 前記メモリアクセスコマンドに対応する前記マイクロコ
    マンドの発行及び終了を管理することによって、各々の
    前記メモリアクセスコマンドの終了を検出する第1の検
    出手段と、 前記第1の検出手段による検出結果に基づいて、前記第
    1の蓄積手段から前記制御手段へ取り込まれた同期コマ
    ンドを発行した前記スレッドが該同期コマンドに先行し
    て発行したメモリアクセスコマンドが、全て終了したか
    否かを検出する第2の検出手段とを備えたことを特徴と
    するマルチバンクアクセス制御装置。
  12. 【請求項12】複数のプロセッサから共通にアクセスさ
    れる複数のメモリバンクに対するアクセス制御を行うマ
    ルチバンクアクセス制御方法であって、 前記プロセッサからバンクアクセスに関係するコマンド
    が発行された場合に、該コマンドを、該プロセッサに対
    応する第1の蓄積手段に蓄積し、 制御手段は、複数の前記プロセッサに対応する前記第1
    の蓄積手段のうちのいずれかから蓄積されたコマンドを
    取り込み、該コマンドがメモリアクセスコマンドである
    場合には、該メモリアクセスコマンドを、その内容に応
    じて前記メモリバンクをアクセス対象とする1又は複数
    のマイクロコマンドに細分化し、細分化された各々のマ
    イクロコマンドを、それがアクセス対象とする前記メモ
    リバンクに対応する前記第2の蓄積手段へ発行し、 前記第1の検出手段は、前記メモリアクセスコマンドに
    対応する前記マイクロコマンドの発行及び終了を検出す
    ることによって、前記メモリアクセスコマンドの終了を
    検出し、 前記第2の検出手段は、前記第1の検出手段による検出
    結果に基づいて、前記第2の蓄積手段から前記制御手段
    へ取り込まれた同期コマンドを発行した前記プロセッサ
    が該同期コマンドに先行して発行したメモリアクセスコ
    マンドが、全て終了したか否かを検出することを特徴と
    するマルチバンクアクセス制御方法。
JP2001071103A 2001-03-13 2001-03-13 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法 Expired - Fee Related JP3999943B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001071103A JP3999943B2 (ja) 2001-03-13 2001-03-13 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001071103A JP3999943B2 (ja) 2001-03-13 2001-03-13 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2002268942A true JP2002268942A (ja) 2002-09-20
JP3999943B2 JP3999943B2 (ja) 2007-10-31

Family

ID=18928872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001071103A Expired - Fee Related JP3999943B2 (ja) 2001-03-13 2001-03-13 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法

Country Status (1)

Country Link
JP (1) JP3999943B2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006313478A (ja) * 2005-05-09 2006-11-16 Toshiba Corp データ転送装置及び半導体集積回路装置
JP2007086909A (ja) * 2005-09-20 2007-04-05 Nec Corp コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
JP2008509493A (ja) * 2004-08-13 2008-03-27 クリアスピード テクノロジー パブリック リミテッド カンパニー プロセッサメモリシステム
JP2008535064A (ja) * 2005-03-23 2008-08-28 クゥアルコム・インコーポレイテッド 弱順序処理システムにおいて強順序リクエストを強制する場合のメモリバリアの最小化
JP2008234660A (ja) * 2007-03-22 2008-10-02 Arm Ltd マルチサイクル調停を実行するデータ処理装置と方法
JP2010501962A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド バリア操作の条件付き伝搬のための方法および装置
US7822952B2 (en) 2005-10-06 2010-10-26 Panasonic Corporation Context switching device
US8095744B2 (en) 2008-02-12 2012-01-10 Panasonic Corporation Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
WO2012070319A1 (ja) * 2010-11-25 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
WO2013031130A1 (ja) * 2011-09-01 2013-03-07 パナソニック株式会社 情報処理装置、そのアクセス制御方法及び集積回路
US9026744B2 (en) 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
JP2016114997A (ja) * 2014-12-11 2016-06-23 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置、画像処理装置
US10949121B2 (en) 2018-07-23 2021-03-16 Toshiba Memory Corporation Memory system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996782B2 (en) 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008509493A (ja) * 2004-08-13 2008-03-27 クリアスピード テクノロジー パブリック リミテッド カンパニー プロセッサメモリシステム
JP2008535064A (ja) * 2005-03-23 2008-08-28 クゥアルコム・インコーポレイテッド 弱順序処理システムにおいて強順序リクエストを強制する場合のメモリバリアの最小化
US9026744B2 (en) 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
JP2006313478A (ja) * 2005-05-09 2006-11-16 Toshiba Corp データ転送装置及び半導体集積回路装置
JP2007086909A (ja) * 2005-09-20 2007-04-05 Nec Corp コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
US7822952B2 (en) 2005-10-06 2010-10-26 Panasonic Corporation Context switching device
JP2010501962A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド バリア操作の条件付き伝搬のための方法および装置
JP2008234660A (ja) * 2007-03-22 2008-10-02 Arm Ltd マルチサイクル調停を実行するデータ処理装置と方法
US8667199B2 (en) 2007-03-22 2014-03-04 Arm Limited Data processing apparatus and method for performing multi-cycle arbitration
US8095744B2 (en) 2008-02-12 2012-01-10 Panasonic Corporation Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
CN103201725A (zh) * 2010-11-25 2013-07-10 国际商业机器公司 用于在多个处理器之间共享的存储器的存储器访问设备及其访问方法
GB2500529A (en) * 2010-11-25 2013-09-25 Ibm Memory access device for memory sharing among plurality of processors, and access method for same
WO2012070319A1 (ja) * 2010-11-25 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
CN103201725B (zh) * 2010-11-25 2015-12-09 国际商业机器公司 用于在多个处理器之间共享的存储器的存储器访问设备
US9268721B2 (en) 2010-11-25 2016-02-23 International Business Machines Corporation Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory requests in one transfer cycle
US9460763B2 (en) 2010-11-25 2016-10-04 International Business Machines Corporation Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory request in one transfer cycle
GB2500529B (en) * 2010-11-25 2020-03-25 Ibm Memory access device for memory sharing among multiple processors and access method for the same
WO2013031130A1 (ja) * 2011-09-01 2013-03-07 パナソニック株式会社 情報処理装置、そのアクセス制御方法及び集積回路
JP2016114997A (ja) * 2014-12-11 2016-06-23 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置、画像処理装置
US10949121B2 (en) 2018-07-23 2021-03-16 Toshiba Memory Corporation Memory system

Also Published As

Publication number Publication date
JP3999943B2 (ja) 2007-10-31

Similar Documents

Publication Publication Date Title
US6681300B2 (en) Read lock miss control and queue management
US20070226422A1 (en) Multi-master system and data transfer system
JP4472186B2 (ja) 外部デバイスへのアクセスを優先順序付けるための方法および装置
US6631462B1 (en) Memory shared between processing threads
JP2002268942A (ja) マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
JP4695761B2 (ja) コマンド再順序付けシステム
EP0550164A1 (en) Method and apparatus for interleaving multiple-channel DMA operations
JPH10228417A (ja) データ処理システムにおけるメモリリクエスト再順序付け法
WO2003014945A2 (en) Data processing system having an adaptive priority controller
TWI359358B (en) Methods, system and machine-readable storage mediu
JP2002530743A (ja) ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
JPH01303543A (ja) メモリアクセス制御装置
US20100306421A1 (en) Dma transfer device
JP2001290706A (ja) Tlbキャッシュのためのプリフェッチ
US20070016906A1 (en) Efficient hardware allocation of processes to processors
US8719499B2 (en) Cache-line based notification
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
WO2010122607A1 (ja) 記憶制御装置及びその制御方法
JPH0887478A (ja) プロセス間メッセージ通信方法
JP3372873B2 (ja) 主記憶メモリのプリフェッチ機構を備えたマイクロプロセッサ
US5926840A (en) Out-of-order fetching
KR20040101231A (ko) 외부적으로 트리거링되는 이벤트와 연관된 데이터/명령을예비 인출하는 방법
JP2005025693A (ja) ベクトル処理装置およびベクトルロード方法
JPH0535507A (ja) 中央処理装置
JP2000353146A (ja) 入出力制御装置及びそのデータの先取り方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070810

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

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees