JP2006099731A - リソース管理装置 - Google Patents

リソース管理装置 Download PDF

Info

Publication number
JP2006099731A
JP2006099731A JP2005190006A JP2005190006A JP2006099731A JP 2006099731 A JP2006099731 A JP 2006099731A JP 2005190006 A JP2005190006 A JP 2005190006A JP 2005190006 A JP2005190006 A JP 2005190006A JP 2006099731 A JP2006099731 A JP 2006099731A
Authority
JP
Japan
Prior art keywords
command
access
access command
resource management
masters
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
Application number
JP2005190006A
Other languages
English (en)
Inventor
Yoshiharu Watanabe
義治 渡邉
裕司 ▲高▼井
Yuji Takai
Isao Kawamoto
功 河本
Takahide Baba
貴英 馬場
Daisuke Murakami
大輔 村上
Toshihiro Fukuyama
敏弘 福山
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005190006A priority Critical patent/JP2006099731A/ja
Priority to US11/197,302 priority patent/US20060047874A1/en
Publication of JP2006099731A publication Critical patent/JP2006099731A/ja
Pending legal-status Critical Current

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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】 複数のマスタから共有リソースへのアクセスの管理を行うリソース管理装置において、アクセスコマンドの発行順序を入れ替える際の消費電力を低減する。
【解決手段】 各々複数のマスタのうちのいずれかから受け付けたアクセスコマンド150を保持する複数のコマンドレジスタ231〜234と、各々有効なアクセスコマンドを保持しているコマンドレジスタを特定するレジスタ番号を保持する複数のアドレスレジスタ221〜224とを設ける。アクセスコマンドの発行順序の入れ替えの際には、アドレスレジスタ221〜224が保持しているレジスタ番号を入れ替える。
【選択図】 図3

Description

本発明は、複数のマスタから共有リソースへのアクセスを管理するためのリソース管理装置に関し、特に共有リソースへのアクセスコマンド発行順序の制御技術に関するものである。
一番先に入れたデータが最初に取り出せるようにしたバッファメモリ、すなわちFIFO(first-in first-out)が広く知られている。記憶するデータそれぞれに優先順位が定義されている場合、順位の高いものから順に取り出すこともある。この場合のデータ構造は、優先式キュー(priority queue)と呼ばれる。優先式キューについても、様々な技術が既に知られている。
ある従来技術によれば、複数の計算機により共有されるディスク装置において、各計算機からのアクセス要求の実行順序を緊急度に応じて制御する。そのため、アドレス空間毎の優先度を定義する優先度テーブルを準備する。ディスク装置に新たに到着したアクセス要求は、キュー中にいくつかの先行アクセス要求が存在するとき、当該新たなアクセス要求よりも低い優先度を有する先行アクセス要求を追い越すことができる(特許文献1参照)。
他の従来技術によれば、光ディスクのオートチェンジャを備えた装置において、要求キューファイルとは別に中間キューファイルが設けられる。要求キューファイルは、ディスク名を指定したアクセス要求を、その入力順に記憶する。ある時点で、要求キューファイルに溜まっているアクセス要求を並べ替え、その結果を中間キューファイルに格納する。この際、ディスクの頻繁な入れ替え操作を軽減するため、現時点で再生中のディスクへのアクセス要求を優先し、かつ同一ディスクへのアクセス要求が連続するように並べ替えが実行される。そして、中間キューファイルの内容に従ってオートチェンジャが駆動される(特許文献2参照)。
更に他の従来技術によれば、データ処理システムにおいて、複数のプロセッサと主記憶との間に共有バッファが介在し、各プロセッサからメモリ参照要求が送られてくる。メモリ参照要求は、メモリ参照アドレスと、プロセッサの識別子と、メモリ参照要求の種類と、命令の実行順序を表す番号とを含んでおり、キューに受け付けられる。そして、共有バッファへのアクセスがヒットしなければ、主記憶へのアクセスが実行される。ただし、主記憶へのアクセスには長い時間がかかる。そこで、あるメモリ参照要求が主記憶から必要なデータを転送されるまでキューで待っている間に、後続メモリ参照要求を待たせることなく処理すること、つまり追い越し処理により、共有バッファへのアクセスを可能にする。しかも、同じプロセッサから送られたメモリ参照要求に対し、所定のメモリ参照順序を保証しながら追い越しを可能にする(特許文献3参照)。
更に他の従来技術によれば、ATM(asynchronous transfer mode)通信において、送信すべきセルをランダムアクセス可能なメモリに順次格納するとともに、各セルのメモリアドレスを別に保持しておき、通常は先着優先でセルを伝送路へ送信する。ただし、メモリ中の送信待ちセルのうち特定のセルを優先送信する必要が生じた場合には、保持しておいたメモリアドレスを参照してメモリから優先セルを読み出して伝送路へ送信する(特許文献4参照)。
更に他の従来技術によれば、LAN(local area network)の通信ノードや多重プログラミング・プロセッサにおいて、複数のキュー要素を保持するためのスタックメモリと、最優先順位を有するキュー要素を保持するためのレジスタとが設けられる。各キュー要素は、データ又はデータを指定するアドレスである。レジスタから最優先順位のキュー要素が読み出された後には、レジスタとスタックメモリとの間のスワップ操作を伴う探索オペレーションが実行される結果、次に高い優先順位を有するキュー要素がレジスタに保持されることとなる。そして、キューに書き込まれるべき新たな要素が到着したとき、当該新たな要素の優先度とレジスタに保持されたキュー要素の優先度とが比較される。レジスタに保持されたキュー要素よりも新たな要素の方が高い優先度を有する場合には、レジスタに保持されたキュー要素がスタックメモリに書き込まれるとともに、これに代わって新たなキュー要素がレジスタに書き込まれる。一方、レジスタ中のキュー要素の方が高い優先度を有する場合には、新たなキュー要素がスタックメモリに書き込まれる。これにより、最優先順位を有するキュー要素をレジスタが常に保有することが保証され、優先式キューの機能が達成される(特許文献5参照)。
特開2001−222382号公報 特開平5−61805号公報 特開平6−214875号公報 特開平11−331197号公報 特公平5−70177号公報
複数のマスタが共有リソースにアクセスするように構成されたシステムでは、リソース管理装置が共有リソースへのアクセスを管理する。この場合にリソース管理装置が各マスタから受け取るアクセスコマンドは、当該アクセスコマンドを発行したマスタを特定する情報を含んでいる。更に、各アクセスコマンドは、共有リソースがメモリである場合にはメモリアドレスを、共有リソースが周辺I/O(input/output)コントローラである場合にはI/Oポートアドレスをそれぞれ含んでいる。したがって、各アクセスコマンドは、大きいビット長を有するのが通例である。特にメモリの容量が大きい場合には、アクセスコマンドのサイズが例えば40ビットにも達することがある。
このような背景を持つリソース管理装置に優先式キューとして動作するコマンドキューを持たせるとき、アクセスコマンド自体の並べ替えをコマンドキュー内で実現しようとすると、大きなサイズのデータ入れ替えが発生することとなり、消費電力が大きくなってしまうという課題があった。とりわけ低消費電力が要求される携帯端末では、この課題が顕著になってきた。また、データ入れ替えのために大きい回路規模を持つハードウェア構成が要求されるという課題もあった。
本発明の目的は、優先式キューとして動作するコマンドキューを持つリソース管理装置の最適な内部構成を提供することにある。
本発明の他の目的は、優先式キューとして動作するコマンドキューの消費電力を低減し、またその回路規模を小さくすることにある。
上記目的を達成するため、本発明は、複数のマスタが共有リソースにアクセスするように構成されたシステムにおけるリソース管理装置を、アクセス要求調停部と、コマンドキューと、リソース制御部とで構成することとしたものである。アクセス要求調停部は、複数のマスタからのアクセス要求に応じてアクセス競合を調停する。コマンドキューは、複数のマスタのうちアクセス要求調停部によりアクセスが許可されたマスタから発行されたアクセスコマンドを順次受け付けて保持し、かつコマンド発行を要求されるつど発行待ちのアクセスコマンドのうちの1つを発行する。リソース制御部は、コマンドキューへコマンド発行要求を与えて当該コマンドキューから発行されたアクセスコマンドを受け取り、当該受け取ったアクセスコマンドに従って複数のマスタのうちの1つと共有リソースとの間のデータの受け渡しを制御する。
しかも、本発明におけるコマンドキューは、各々複数のマスタのうちのいずれかから受け付けたアクセスコマンドを保持するための複数の第1ストレージ要素と、各々複数の第1ストレージ要素のうち有効なアクセスコマンドを保持している第1ストレージ要素を特定するアドレスを保持するための複数の第2ストレージ要素と、新たに受け付けたアクセスコマンドが複数の第1ストレージ要素のうちの空いている第1ストレージ要素に保持されるように制御するコマンド書き込み制御部と、複数の第1ストレージ要素のうち新たに受け付けたアクセスコマンドを保持した第1ストレージ要素を特定するアドレスと、先行アクセスコマンドを保持した第1ストレージ要素を特定するアドレスとを含む全アドレスがコマンド発行順に並ぶように、所定のコマンド追い越し条件に従って複数の第2ストレージ要素のアドレス保持順序を制御するコマンド追い越し条件判定部と、複数の第1ストレージ要素のうち複数の第2ストレージ要素中の先頭アドレスにより特定された第1ストレージ要素からアクセスコマンドを読み出し、かつ当該読み出されたアクセスコマンドをリソース制御部へ供給するように制御するための制御手段とを有するものである。
複数の第1ストレージ要素は、小容量のメモリ、1セットのレジスタ等で構成できる。複数の第2ストレージ要素についても同様である。しかも、複数の第2ストレージ要素の各々が保持するアドレス(メモリセルロケーション、レジスタ番号等)は、複数の第1ストレージ要素の各々が保持するアクセスコマンド自体と比較してサイズを小さくすることができる。
本発明によれば、アクセス要求調停部と、優先式キューとして動作するコマンドキューと、リソース制御部とでリソース管理装置を構成することとしたので、調停によりアクセスが許可されたマスタから発行されたアクセスコマンドのみを順次コマンドキューに与えることができ、かつ共有リソースがアクセス可能になるつどコマンドキューに最優先のアクセスコマンドを発行させることができる。しかも、アクセスコマンド自体と比較してサイズの小さいアドレスをコマンドキュー内で入れ替えることで、アクセスコマンドの発行順序を制御することができるようになる。したがって、コマンドキューの消費電力を低減し、またその回路規模を小さくすることができる。
以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本発明に係るリソース管理装置の概略構成例を示している。図1には、5個のマスタ(A〜E)101,102,103,104,105が共有リソース111にアクセスするように構成されたデータ処理システムにおけるリソース管理装置が例示されている。このリソース管理装置は、アクセス要求調停部100と、コマンドキュー106と、リソース制御部110とを備えている。更に、マスタ101〜105とコマンドキュー106との間にキュー入力セレクタ112が配置されている。各マスタ101〜105は、マイクロプロセッサ、DSP(digital signal processor)、DMA(direct memory access)コントローラ等のうちのいずれかである。共有リソース111は、メモリ、周辺I/Oコントローラ等のうちのいずれかである。ただし、以下の説明では共有リソース111がメモリであるものとする。
アクセス要求調停部100は、5個のマスタ101〜105からのアクセス要求に応じてアクセス競合を調停する。具体的に説明すると、各マスタ101〜105は、共有リソース111にアクセスしてデータのやり取りを行うため、必要に応じてアクセス要求調停部100にアクセス要求を発行する。アクセス要求調停部100は、5個のマスタ101〜105のいずれかにアクセス許可を与える。5個のマスタ101〜105のうちアクセス許可を受け取ったマスタは、共有リソース111へのアクセスコマンドを、キュー入力セレクタ112を介してコマンドキュー106へ発行する。
コマンドキュー106は、5個のマスタ101〜105のうちアクセスが許可されたマスタから発行されてキュー入力セレクタ112を通過したアクセスコマンド150を順次受け付けて保持し、かつリソース制御部110からコマンド発行要求151を受け取るつど発行待ちのアクセスコマンドのうちの1つをリソース制御部110へ発行する。
リソース制御部110は、共有リソース111がアクセス可能状態になるつどコマンドキュー106へコマンド発行要求151を与える。更に、リソース制御部110は、コマンド発行要求151に応答してコマンドキュー106から発行されたアクセスコマンド152を受け取り、当該受け取ったアクセスコマンド152に従って5個のマスタ101〜105のうちの1つと共有リソース111との間のデータの受け渡しを制御する。なお、リソース制御部110のこれらの機能を共有リソース111自体に持たせてもよい。
図2は、図1中のコマンドキュー106に与えられるアクセスコマンド150のフォーマットの一例を示している。図2に例示したアクセスコマンド150は、40ビットからなる。最下位ビット(ビット0)は、共有リソース111のリードアクセスとライトアクセスとのいずれであるかを指定する情報(R/W)を表す。次の4ビット(ビット4〜1)からなるフィールドは、当該アクセスコマンド150を発行したマスタを特定する情報(ID)を表す。次の4ビット(ビット8〜5)からなるフィールドは、バーストモードアクセスのビート数を指定する情報(BEAT)を表す。次の2ビット(ビット10〜9)からなるフィールドは、1ビートあたりのアクセスサイズが1/2/4/8バイトのうちのいずれであるかを指定する情報(SIZE)を表す。次の28ビット(ビット38〜11)からなるフィールドは、共有リソース111のアクセス開始アドレスを指定する情報(ADRS)を表す。最上位ビット(ビット39)は、共有リソース111へのデータライト動作が完了したことを通知するための情報(D)を表す。なお、図1中の共有リソース111は、各々28ビットアドレスのうちの上位8ビットで指定される256個のメモリ空間に区切られているものとする。つまり、各メモリ空間は1Mバイトの容量を持つ。
図3は、図1中のコマンドキュー106の詳細構成例を示している。図3のコマンドキュー106は、コマンド書き込み制御部201と、ライトポインタ202と、リードポインタ203と、コマンド追い越し条件判定部206と、コマンド管理部250と、コマンド記憶部260とで構成されている。コマンド管理部250は、4個のアドレスレジスタ221,222,223,224と、1個のアドレスセレクタ204と、4個のレジスタ入力セレクタ211,212,213,214とからなる。コマンド記憶部260は、4個のコマンドレジスタ231,232,233,234と、1個のコマンドセレクタ205とからなる。
コマンド記憶部260中の4個のコマンドレジスタ231〜234は、各々5個のマスタ101〜105のうちのいずれかから受け付けたアクセスコマンド150を保持するためのストレージ要素であって、各々レジスタ番号0,1,2,3により特定される。これらコマンドレジスタ231〜234の各々は、コマンド書き込み制御部201からロード(load)/ホールド(hold)信号26を受け取り、当該信号26が「ロード」を指示する場合にはアクセスコマンド150が新たに書き込まれ、当該信号26が「ホールド」を指示する場合には現在保持しているアクセスコマンドをそのまま保持する。コマンドセレクタ205は、コマンド管理部250から与えられたレジスタ番号信号27に従って4個のコマンドレジスタ231〜234のうちの1つを選択し、当該選択したコマンドレジスタから読み出したアクセスコマンド152をリソース制御部110へ供給するように動作する。
コマンド管理部250中の4個のアドレスレジスタ221〜224は、各々4個のコマンドレジスタ231〜234のうち有効なアクセスコマンドを保持しているコマンドレジスタを特定するレジスタ番号を保持するためのストレージ要素であって、各々レジスタ番号0,1,2,3により特定される。アドレスセレクタ204は、リードポインタ203から与えられるリードアドレス信号22に従って4個のアドレスレジスタ221〜224のうちの1つを選択し、当該選択したアドレスレジスタから得たレジスタ番号信号27をコマンドセレクタ205に与えるように動作する。しかも、4個のアドレスレジスタ221〜224は、1つの巡回キュー(circular queue)を構成するように4個のレジスタ入力セレクタ211〜214を介して互いに連結されている。コマンド追い越し条件判定部206は、4個のレジスタ入力セレクタ211〜214の各々へシフト制御信号23を、4個のアドレスレジスタ221〜224の各々へロード/ホールド信号24をそれぞれ供給する。4個のアドレスレジスタ221〜224のうちのいずれかに新たに書き込まれるべきレジスタ番号信号25は、コマンド書き込み制御部201から与えられる。4個のレジスタ入力セレクタ211〜214の各々は、シフト制御信号23が「1」を示す場合には4個のアドレスレジスタ221〜224のうちの対応するアドレスレジスタの出力を、シフト制御信号23が「0」を示す場合にはコマンド書き込み制御部201から与えられたレジスタ番号信号25をそれぞれ選択する。
ライトポインタ202は、コマンド書き込み制御部201からレジスタ番号信号25が出力される際に4個のアドレスレジスタ221〜224のうち当該レジスタ番号信号25が書き込まれるべきアドレスレジスタの番号を指定するライトアドレス信号21をコマンド書き込み制御部201及びコマンド追い越し条件判定部206へ供給した後、自動的にインクリメントされる。リードポインタ203は、コマンド発行要求151を受け取ったとき、4個のアドレスレジスタ221〜224のうちレジスタ番号信号27が次に読み出されるべきアドレスレジスタの番号を指定するリードアドレス信号22をアドレスセレクタ204、コマンド書き込み制御部201及びコマンド追い越し条件判定部206へ供給した後、自動的にインクリメントされる。これらライトポインタ202及びリードポインタ203は、アドレスレジスタ221〜224が1つの巡回キューを構成する点に対応して、「3」の次は「0」に戻るようにインクリメントされる。なお、当該巡回キューの満杯(full)/空(empty)を表すフラグも存在するが、説明を省略する。
コマンド書き込み制御部201は、新たに受け付けたアクセスコマンド150が4個のコマンドレジスタ231〜234のうちの空いているコマンドレジスタに保持されるように制御するものである。そのためコマンド書き込み制御部201は、ライトアドレス信号21及びリードアドレス信号22に基づいて、4個のアドレスレジスタ221〜224のうちのいずれのアドレスレジスタに有効なレジスタ番号が保持されているかを判定し、更に当該有効なレジスタ番号に基づいて、4個のコマンドレジスタ231〜234のうちいずれのコマンドレジスタが使用されていないかを判定し、使用されていないコマンドレジスタのうちの1つを新たなアクセスコマンド150のロード先として指定するように、4個のコマンドレジスタ231〜234の各々へロード/ホールド信号26を出力する。更に、コマンド書き込み制御部201は、4個のコマンドレジスタ231〜234のうちアクセスコマンド150のロード先として指定したコマンドレジスタの番号を表す信号25をコマンド管理部250へ出力する。
コマンド追い越し条件判定部206は、4個のコマンドレジスタ231〜234のうち新たに受け付けたアクセスコマンド150を保持したコマンドレジスタを特定するレジスタ番号と、先行アクセスコマンドを保持したコマンドレジスタを特定するレジスタ番号とを含む全レジスタ番号がコマンド管理部250の中でコマンド発行順に並ぶように、例えばプログラム入力28を通じて設定された所定のコマンド追い越し条件に従って、4個のアドレスレジスタ221〜224のレジスタ番号保持順序を制御するものである。そのためコマンド追い越し条件判定部206は、アクセスコマンド150と、ライトアドレス信号21と、リードアドレス信号22と、4個のアドレスレジスタ221〜224の出力と、4個のコマンドレジスタ231〜234の出力とを入力する。そして、これらの入力情報に基づいて、4個のレジスタ入力セレクタ211〜214の各々へ供給すべきシフト制御信号23と、4個のアドレスレジスタ221〜224の各々へ供給すべきロード/ホールド信号24とが決定される。例えば、3個のアドレスレジスタ221、222,223が先行アクセスコマンドのレジスタ番号を保持しており、新たなアクセスコマンド150がこれらの先行アクセスコマンドを追い越すことが許される場合、4個のレジスタ入力セレクタ211〜214の各々に「0」、「1」、「1」及び「1」のシフト制御信号23が供給され、4個のアドレスレジスタ221〜224の全てに「ロード」を指示するロード/ホールド信号24が供給される。逆に追い越しが禁止される場合には、レジスタ入力セレクタ214に「0」のシフト制御信号23が供給されるとともに、4個のアドレスレジスタ221〜224の各々に「ホールド」、「ホールド」、「ホールド」及び「ロード」を指示するロード/ホールド信号24が供給される。
図4は、図2中のコマンド書き込み制御部201及びコマンド追い越し条件判定部206の動作例を示している。この例では、新たに受け付けたアクセスコマンド150が共有リソース111のうちの優先メモリ空間へのアクセスを要求するアクセスコマンドであるか否かをコマンド追い越し条件の1つとして、コマンド追い越し条件判定部206が動作する。優先メモリ空間とは、共有リソース111の全部で256個のメモリ空間のうち優先的なアクセスを必要とする1又は複数のメモリ空間をいい、各々8ビットの情報で指定される。なお、「w」はライトアドレス信号21が示すレジスタ番号を初期値とする変数であり、「r」はリードアドレス信号22が示すレジスタ番号と一致した定数である。
図4によれば、ステップS61にてコマンドキュー106が新たなアクセスコマンド150を受け付けると、コマンド書き込み制御部201は、ステップS62にて当該アクセスコマンド150を4個のコマンドレジスタ231〜234のうちの空きレジスタに保持させるように制御する。ここで、4個のコマンドレジスタ231〜234のうち新たなアクセスコマンド150を保持したコマンドレジスタを指定するレジスタ番号信号25が、コマンド書き込み制御部201から出力される。次に、ステップS63にて、コマンド追い越し条件判定部206は、新たなアクセスコマンド150が優先メモリ空間へのアクセスコマンドであるかどうかを、コマンド追い越し条件判定部206が保持している優先メモリ空間指定情報と、新たなアクセスコマンド150中のADRSフィールドの情報との比較により判定する。新たなアクセスコマンド150が優先メモリ空間へのアクセスコマンドでないときには、追い越しがないようにステップS64にて、4個のアドレスレジスタ221〜224のうちのw段目のアドレスレジスタにコマンド書き込み制御部201からのレジスタ番号信号25を保持させる。一方、新たなアクセスコマンド150が優先メモリ空間へのアクセスコマンドであるときには、ステップS65にて変数wが定数rと比較される。ここでr=wのときには、発行待ちのアクセスコマンドが存在しないので、追い越しの必要がないためステップS64へ処理が進む。逆にr=wでないときには、コマンド追い越し条件判定部206は、ステップS66にて1つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドであるかどうかを調べる。1つ前のアクセスコマンドとは、4個のアドレスレジスタ221〜224のうちの(w−1)段目のアドレスレジスタが保持しているレジスタ番号により指定されるコマンドレジスタ中の先行アクセスコマンドである。当該先行アクセスコマンドが優先メモリ空間へのアクセスコマンドであるときには、追い越しをしないようにステップS64へ処理が進む。一方、当該先行アクセスコマンドが優先メモリ空間へのアクセスコマンドでないときには、新たなアクセスコマンド150が当該先行アクセスコマンドを追い越すことが許可されるので、ステップS67にて変数wをデクリメントして更新したうえ、ステップS65に戻る。この際、アドレスレジスタ221〜224が1つの巡回キューを構成する点に対応して、「0」の次は「3」に戻るように変数wがデクリメントされる。
再度のステップS65にてr=wのときには、もはや追い越し判定をすべき先行アクセスコマンドが存在しないので、ステップS64へ進んで現時点での変数wをもとに、4個のアドレスレジスタ221〜224のうちのw段目のアドレスレジスタにコマンド書き込み制御部201からのレジスタ番号信号25を保持させるとともに、追い越されるべき先行アクセスコマンドのレジスタ番号をシフトさせる。次のステップS66にて1つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドであることが判明した場合も、ステップS64へ進んで同様の処理がなされる。ステップS66にて1つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドでないことが判明した場合には、ステップS67にて変数wをデクリメントしてステップS65に戻る。
なお、複数のメモリ空間がそれぞれ優先メモリ空間に指定される場合には、これらの優先メモリ空間の間に優先度の高低を設定してもよい。
図5は、図2中のコマンド書き込み制御部201及びコマンド追い越し条件判定部206の他の動作例を示している。この例では、新たに受け付けたアクセスコマンド150が5個のマスタ101〜105のうち各々優先マスタに指定された1又は複数のマスタから発行されたアクセスコマンドであるか否かをコマンド追い越し条件の1つとして、コマンド追い越し条件判定部206が動作する。しかも、新たなアクセスコマンド150と先行アクセスコマンドとが同じメモリ空間へのアクセスを要求し、かつ両アクセスコマンドのうちの少なくとも一方がライトアクセスを要求している場合には、当該新たなアクセスコマンド150が優先マスタからのアクセスコマンドであっても、先行アクセスコマンドの追い越しが禁止されるものとする。
図5中のステップS71及びステップS72の処理は、図4中のステップS61及びステップS62の処理と同じである。図5によれば、ステップS73にて、コマンド追い越し条件判定部206は、新たなアクセスコマンド150が優先マスタからのアクセスコマンドであるかどうかを、コマンド追い越し条件判定部206が保持している優先マスタ指定情報と、新たなアクセスコマンド150中のIDフィールドの情報との比較により判定する。新たなアクセスコマンド150が優先マスタからのアクセスコマンドでないときには、追い越しがないようにステップS74にて、4個のアドレスレジスタ221〜224のうちのw段目のアドレスレジスタに、4個のコマンドレジスタ231〜234のうち新たなアクセスコマンド150を保持したコマンドレジスタを指定するレジスタ番号を保持させる。一方、新たなアクセスコマンド150が優先マスタからのアクセスコマンドであるときには、ステップS75にて変数wが定数rと比較される。ここでr=wのときには、発行待ちのアクセスコマンドが存在しないので、追い越しの必要がないためステップS74へ処理が進む。逆にr=wでないときには、コマンド追い越し条件判定部206は、新たなアクセスコマンド150がアクセスを要求しているメモリ空間と、1つ前のアクセスコマンドがアクセスを要求しているメモリ空間とが互いに異なるか否かをステップS76にて調べる。1つ前のアクセスコマンドとは、4個のアドレスレジスタ221〜224のうちの(w−1)段目のアドレスレジスタが保持しているレジスタ番号により指定されるコマンドレジスタ中の先行アクセスコマンドである。両アクセスコマンドがアクセスを要求しているメモリ空間が一致する場合には、更にステップS78にて両アクセスコマンドが共にリードアクセスを要求しているか否かが調べられる。この際、新たなアクセスコマンド150中の最下位ビットの情報(R/W)と先行アクセスコマンド中の対応する情報とが参照される。両アクセスコマンドが同じメモリ空間へのアクセスを要求し、かつ少なくとも一方がライトアクセスを要求している場合には、追い越しをしないようにステップS74へ処理が進む。一方、両アクセスコマンドが異なるメモリ空間へのアクセスを要求している場合、又は両アクセスコマンドが共にリードアクセスを要求している場合には、新たなアクセスコマンド150が当該先行アクセスコマンドを追い越すことが許可されるので、ステップS77にて変数wをデクリメントして更新したうえ、ステップS75に戻る。
再度のステップS75にてr=wのときには、もはや追い越し判定をすべき先行アクセスコマンドが存在しないので、ステップS74へ進んで現時点での変数wをもとに、4個のアドレスレジスタ221〜224のうちのw段目のアドレスレジスタにコマンド書き込み制御部201からのレジスタ番号信号25を保持させるとともに、追い越されるべき先行アクセスコマンドのレジスタ番号をシフトさせる。次のステップS76及びS78にて新たなアクセスコマンド150と1つ前のアクセスコマンドとが同じメモリ空間へのアクセスを要求し、かつ少なくとも一方がライトアクセスを要求していることが判明した場合も、ステップS74へ進んで同様の処理がなされる。一方、両アクセスコマンドが異なるメモリ空間へのアクセスを要求している場合、又は両アクセスコマンドが共にリードアクセスを要求している場合には、ステップS77にて変数wをデクリメントしてステップS75に戻る。
なお、複数のマスタがそれぞれ優先マスタに指定される場合には、これらの優先マスタの間に優先度の高低を設定してもよい。また、ステップS78の判断を省略して、新たなアクセスコマンド150と先行アクセスコマンドとが同じメモリ空間へのアクセスを要求している場合には、コマンド追い越しが必ず禁止されることとしてもよい。
上記マスタの数は、2以上で任意である。また、コマンドキュー106内のレジスタ段数も、2以上で任意である。
以上説明してきたとおり、本発明に係るリソース管理装置は、消費電力低減効果等を有し、複数のマスタがリソースを共有するための技術において特に有用である。
本発明に係るリソース管理装置の概略構成例を示すブロック図である。 図1中のコマンドキューに与えられるアクセスコマンドのフォーマットの一例を示す概念図である。 図1中のコマンドキューの詳細構成例を示すブロック図である。 図2中のコマンド書き込み制御部及びコマンド追い越し条件判定部の動作例を示すフローチャートである。 図2中のコマンド書き込み制御部及びコマンド追い越し条件判定部の他の動作例を示すフローチャートである。
符号の説明
100 アクセス要求調停部
101〜105 マスタ
106 コマンドキュー
110 リソース制御部
111 共有リソース
112 キュー入力セレクタ
201 コマンド書き込み制御部
202 ライトポインタ
203 リードポインタ
204 アドレスセレクタ
205 コマンドセレクタ
206 コマンド追い越し条件判定部
211〜214 レジスタ入力セレクタ
221〜224 アドレスレジスタ
231〜234 コマンドレジスタ
250 コマンド管理部
260 コマンド記憶部

Claims (11)

  1. 複数のマスタが共有リソースにアクセスするように構成されたシステムにおけるリソース管理装置であって、
    前記複数のマスタからのアクセス要求に応じてアクセス競合を調停するアクセス要求調停部と、
    前記複数のマスタのうち前記アクセス要求調停部によりアクセスが許可されたマスタから発行されたアクセスコマンドを順次受け付けて保持し、かつコマンド発行を要求されるつど発行待ちのアクセスコマンドのうちの1つを発行するコマンドキューと、
    前記コマンドキューへコマンド発行要求を与えて当該コマンドキューから発行されたアクセスコマンドを受け取り、当該受け取ったアクセスコマンドに従って前記複数のマスタのうちの1つと前記共有リソースとの間のデータの受け渡しを制御するリソース制御部とを備え、
    前記コマンドキューは、
    各々前記複数のマスタのうちのいずれかから受け付けたアクセスコマンドを保持するための複数の第1ストレージ要素と、
    各々前記複数の第1ストレージ要素のうち有効なアクセスコマンドを保持している第1ストレージ要素を特定するアドレスを保持するための複数の第2ストレージ要素と、
    新たに受け付けたアクセスコマンドが前記複数の第1ストレージ要素のうちの空いている第1ストレージ要素に保持されるように制御するコマンド書き込み制御部と、
    前記複数の第1ストレージ要素のうち前記新たに受け付けたアクセスコマンドを保持した第1ストレージ要素を特定するアドレスと、先行アクセスコマンドを保持した第1ストレージ要素を特定するアドレスとを含む全アドレスがコマンド発行順に並ぶように、所定のコマンド追い越し条件に従って前記複数の第2ストレージ要素のアドレス保持順序を制御するコマンド追い越し条件判定部と、
    前記複数の第1ストレージ要素のうち前記複数の第2ストレージ要素中の先頭アドレスにより特定された第1ストレージ要素からアクセスコマンドを読み出し、かつ当該読み出されたアクセスコマンドを前記リソース制御部へ供給するように制御するための制御手段とを有することを特徴とするリソース管理装置。
  2. 請求項1記載のリソース管理装置において、
    前記コマンドキューは、
    前記複数の第2ストレージ要素のうちアドレスが次に書き込まれるべき第2ストレージ要素を指定するライトポインタと、
    前記複数の第2ストレージ要素のうちアドレスが次に読み出されるべき第2ストレージ要素を指定するリードポインタとを更に有し、
    前記複数の第2ストレージ要素は、巡回キューを構成するように互いに連結されていることを特徴とするリソース管理装置。
  3. 請求項1記載のリソース管理装置において、
    前記共有リソースはメモリであり、
    前記コマンドキューが受け付けるアクセスコマンドは、前記複数のマスタの中から当該アクセスコマンドを発行したマスタを特定する情報と、前記メモリのリードアクセスとライトアクセスとのいずれであるかを指定する情報と、前記メモリのアクセスアドレス範囲とを含むことを特徴とするリソース管理装置。
  4. 請求項1記載のリソース管理装置において、
    前記共有リソースはメモリであり、
    前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドが前記メモリのうちの優先メモリ空間へのアクセスを要求するアクセスコマンドであるか否かを前記コマンド追い越し条件の1つとして動作することを特徴とするリソース管理装置。
  5. 請求項1記載のリソース管理装置において、
    前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドが前記複数のマスタのうち優先マスタに指定されたマスタから発行されたアクセスコマンドであるか否かを前記コマンド追い越し条件の1つとして動作することを特徴とするリソース管理装置。
  6. 請求項1記載のリソース管理装置において、
    前記共有リソースはメモリであり、
    前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドがアクセスを要求しているメモリ空間と、先行アクセスコマンドがアクセスを要求しているメモリ空間とが互いに異なるか否かを前記コマンド追い越し条件の1つとして動作することを特徴とするリソース管理装置。
  7. 請求項1記載のリソース管理装置において、
    前記共有リソースはメモリであり、
    前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドと先行アクセスコマンドとが共にリードアクセスを要求しているか否かを前記コマンド追い越し条件の1つとして動作することを特徴とするリソース管理装置。
  8. 請求項1記載のリソース管理装置において、
    前記コマンド追い越し条件判定部は、前記コマンド追い越し条件を設定するためのプログラム入力を有することを特徴とするリソース管理装置。
  9. 共有リソースにアクセスしてデータのやり取りを行う複数のマスタと、前記複数のマスタから受け取ったアクセスコマンドを保持する複数のレジスタを有するコマンド記憶部と、前記コマンド記憶部に保持したアクセスコマンドのレジスタ番号を保持するコマンド管理部とを有するシステムにおいて、前記複数のマスタから前記共有リソースへのアクセスコマンドの発行順序を入れ替えるリソース管理方法であって、
    前記複数のマスタからアクセスコマンドを受け付けると、前記コマンド記憶部の空きレジスタに、前記複数のマスタから受け付けたアクセスコマンドを保持する第1のステップと、
    前記アクセスコマンドが、予め決められた優先して発行すべきアクセスコマンドであるかどうかを判定する第2のステップと、
    前記第2のステップの判定の結果、前記アクセスコマンドが優先して発行すべきアクセスコマンドであったとき、発行待ちアクセスコマンドがあるかどうかを判定する第3のステップと、
    前記第3のステップの判定の結果、発行待ちアクセスコマンドがあったとき、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドであるかどうかを判定する第4のステップと、
    前記第4のステップの判定の結果、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドでなかったとき、更に発行待ちアクセスコマンドと比較するように操作する第5のステップと、
    前記第2のステップの判定の結果、前記アクセスコマンドが優先して発行すべきアクセスコマンドでなかったとき、又は前記第3のステップの判定の結果、発行待ちアクセスコマンドがなかったとき、又は前記第4のステップの判定の結果、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドであったとき、前記アクセスコマンドが比較したアクセスコマンドの後に発行すべきアクセスコマンドとなるよう、前記コマンド管理部に前記アクセスコマンドのレジスタ番号を保持する第6のステップとを備え、
    前記第5のステップの後は、前記第3のステップから第5のステップを更に繰り返すことを特徴とするリソース管理方法。
  10. 請求項9記載のリソース管理方法において、
    前記優先して発行すべきアクセスコマンドは、予め決められた優先メモリ空間へのアクセスコマンドであることを特徴とするリソース管理方法。
  11. 請求項9記載のリソース管理方法において、
    前記優先して発行すべきアクセスコマンドは、予め決められた優先マスタからのアクセスコマンドであることを特徴とするリソース管理方法。
JP2005190006A 2004-08-30 2005-06-29 リソース管理装置 Pending JP2006099731A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005190006A JP2006099731A (ja) 2004-08-30 2005-06-29 リソース管理装置
US11/197,302 US20060047874A1 (en) 2004-08-30 2005-08-05 Resource management apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004249793 2004-08-30
JP2005190006A JP2006099731A (ja) 2004-08-30 2005-06-29 リソース管理装置

Publications (1)

Publication Number Publication Date
JP2006099731A true JP2006099731A (ja) 2006-04-13

Family

ID=35944793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005190006A Pending JP2006099731A (ja) 2004-08-30 2005-06-29 リソース管理装置

Country Status (2)

Country Link
US (1) US20060047874A1 (ja)
JP (1) JP2006099731A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269555A (ja) * 2007-03-28 2008-11-06 Mitsubishi Electric Corp バス装置
JP2009211550A (ja) * 2008-03-05 2009-09-17 Ricoh Co Ltd 不揮発性メモリ制御装置及びこれを備えた画像処理装置、不揮発性メモリ制御方法。
JP2010009557A (ja) * 2008-06-30 2010-01-14 Canon Inc メモリコントローラ

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276638A (ja) * 2007-05-02 2008-11-13 Elpida Memory Inc 半導体記憶装置、メモリアクセス制御システムおよびデータの読み出し方法
US7774529B2 (en) * 2007-07-03 2010-08-10 Panasonic Corporation Bus communication apparatus that uses shared memory
US20110029985A1 (en) * 2009-07-31 2011-02-03 Nokia Corporation Method and apparatus for coordinating resource access
GB2500529B (en) * 2010-11-25 2020-03-25 Ibm Memory access device for memory sharing among multiple processors and access method for the same
US9584877B2 (en) * 2011-06-16 2017-02-28 Microsoft Technology Licensing, Llc Light-weight validation of native images
KR102449333B1 (ko) * 2015-10-30 2022-10-04 삼성전자주식회사 메모리 시스템 및 그것의 읽기 요청 관리 방법
KR102648180B1 (ko) * 2016-07-19 2024-03-18 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
US5845097A (en) * 1996-06-03 1998-12-01 Samsung Electronics Co., Ltd. Bus recovery apparatus and method of recovery in a multi-master bus system
US5815023A (en) * 1997-03-20 1998-09-29 Sun Microsystems, Inc. Unbalanced multiplexer and arbiter combination
US6170042B1 (en) * 1998-02-24 2001-01-02 Seagate Technology Llc Disc drive data storage system and method for dynamically scheduling queued commands
KR100321784B1 (ko) * 2000-03-20 2002-02-01 오길록 중재 지연 내성의 분산형 입력 버퍼 스위치 시스템 및그를 이용한 입력 데이터 처리 방법
US7006514B2 (en) * 2001-05-31 2006-02-28 Polytechnic University Pipelined maximal-sized matching cell dispatch scheduling
DE60211874T2 (de) * 2002-06-20 2007-05-24 Infineon Technologies Ag Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
DE102004013635B4 (de) * 2004-03-19 2006-04-20 Infineon Technologies Ag Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269555A (ja) * 2007-03-28 2008-11-06 Mitsubishi Electric Corp バス装置
JP2009211550A (ja) * 2008-03-05 2009-09-17 Ricoh Co Ltd 不揮発性メモリ制御装置及びこれを備えた画像処理装置、不揮発性メモリ制御方法。
JP2010009557A (ja) * 2008-06-30 2010-01-14 Canon Inc メモリコントローラ

Also Published As

Publication number Publication date
US20060047874A1 (en) 2006-03-02

Similar Documents

Publication Publication Date Title
JP2006099731A (ja) リソース管理装置
EP1345125B1 (en) Dynamic random access memory system with bank conflict avoidance feature
US6868087B1 (en) Request queue manager in transfer controller with hub and ports
US20080209084A1 (en) Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface
JP4715801B2 (ja) メモリアクセス制御装置
JPWO2008087779A1 (ja) アレイ型プロセッサおよびデータ処理システム
JPH02168341A (ja) データ処理システム
JPS58222361A (ja) デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
JP2003248622A (ja) 帯域幅を増加させるためのメモリシステム
US7822952B2 (en) Context switching device
JP2005339299A (ja) ストレージ装置のキャッシュ制御方法
US5860026A (en) Information processing system for controlling operations of input/output devices of another clusters according to control instructions issued from a cluster
JP2005293427A (ja) データ転送処理装置及びデータ転送処理方法
WO2007097017A1 (ja) バッファリング装置およびバッファリング方法
JPH08106443A (ja) データ処理システム及び並列コンピュータ
JP4117621B2 (ja) データ一括転送装置
JP2007241922A (ja) 共有資源利用のための調停方法及びその調停装置
EP1115065B1 (en) Effective channel priority processing for transfer controller with hub and ports
JP2006024134A (ja) Dma転送装置及びdma転送方法
JPH0833869B2 (ja) データ処理装置
JP2009205573A (ja) バッファ制御装置およびバッファ制御方法
JP2000330866A (ja) メモリ制御方法およびメモリ制御システム
JP2007109199A (ja) バッファ装置、、バッファ装置の制御方法、情報処理装置
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2002024157A (ja) Dma処理方法およびdma処理装置