JP5217786B2 - リクエスト調停装置及びリクエスト調停方法 - Google Patents

リクエスト調停装置及びリクエスト調停方法 Download PDF

Info

Publication number
JP5217786B2
JP5217786B2 JP2008217740A JP2008217740A JP5217786B2 JP 5217786 B2 JP5217786 B2 JP 5217786B2 JP 2008217740 A JP2008217740 A JP 2008217740A JP 2008217740 A JP2008217740 A JP 2008217740A JP 5217786 B2 JP5217786 B2 JP 5217786B2
Authority
JP
Japan
Prior art keywords
request
priority
highest priority
holding means
held
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
JP2008217740A
Other languages
English (en)
Other versions
JP2010055246A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008217740A priority Critical patent/JP5217786B2/ja
Priority to US12/548,384 priority patent/US8356129B2/en
Publication of JP2010055246A publication Critical patent/JP2010055246A/ja
Application granted granted Critical
Publication of JP5217786B2 publication Critical patent/JP5217786B2/ja
Active 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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)
  • Memory System (AREA)

Description

本発明は、リクエスト調停装置及びリクエスト調停方法に関する。
プロセッサなどの複数のデバイスがメモリにアクセスする場合には、メモリへのアクセスを要求するリクエストが複数のデバイスから出力されるため、複数のリクエストを調停する調停回路(アービタ)を用いることが一般に知られている(例えば、特許文献1の図13を参照)。このアービタを用いることで、同時に複数のリクエストがデバイスから出力されても、例えばリクエスト毎の優先度によってリクエストを実行する順序を決定して、効率よくメモリにアクセスすることができる。
特開2004−288021号公報
一方、アクセスを効率的に行えるメモリとして、複数のバンクで構成されたマルチバンクメモリが知られている。このマルチバンクメモリに対するリクエストの調停を行う場合には、図8に示すように、まずアクセスするメモリ220のバンク別にリクエストを分けてバンク別のバッファ201〜204に保持しておき、アービタ210がいずれのバッファが保持するリクエストをメモリ220に出力するかを決定することでメモリへのアクセスの調停を行うことが考えられる。この場合、例えば同じバンクの同じアドレスに対する読み出しリクエストと書き込みリクエストとの順序が入れ替わると誤ったデータの読み出しが行われてしまうため、バッファ201〜204はリクエストをFIFO(先入れ先出し)で保持する必要がある。このような構成において、図8に示すようにバッファ201が優先度の低いリクエストpの後に優先度の高いリクエストqを保持した場合について考えると、バッファ202〜204の保持するリクエストr〜tは優先度が中であるため、アービタ210はリクエストr〜tをメモリに出力した後にリクエストpをメモリ220に出力し、その後でリクエストqをメモリ220に出力することになる。したがって、リクエストqがリクエストr〜tよりも優先度が高いにもかかわらず、メモリ220に出力されるのが遅くなってしまう。また、バッファ202〜204に優先度が中のリクエストが新たに保持され続けると、優先度が高いはずのリクエストqがいつまでもメモリ220に出力されなくなってしまう。
本発明は、上述した課題に鑑みなされたものであり、複数のリクエスト保持手段が優先度を有するリクエストを保持する場合に、最も優先度の高いリクエストをできるだけ早く出力することを主目的とする。
本発明は、上述の主目的を達成するために以下の手段を採った。
本発明のリクエスト調停装置は、
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停装置であって、
前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する設定手段と、
前記最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御する制御手段と、
を備えるものである。
本発明のリクエスト調停装置では、優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへリクエストを出力するにあたり、複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する。そして、最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが出力側デバイスへ出力されるよう、最優先リクエスト保持手段を制御する。このように、最も優先度の高いリクエストを保持するリクエスト保持手段から優先的にリクエストが出力されるため、最も優先度の高いリクエストをできるだけ早く出力することができる。
本発明のリクエスト調停装置において、前記複数のリクエスト保持手段が新たな前記リクエストを保持する毎に、該保持したリクエスト保持手段が既に保持しているリクエストのうち該新たなリクエストより優先度の低いものを、該新たなリクエストと同じ優先度にする優先度変更手段、を備え、前記設定手段は、前記複数のリクエスト保持手段毎の最先に保持されたリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段としてもよい。こうすることにより、各リクエスト保持手段が保持する全てのリクエストの優先度を比較する場合に比べて、より短い時間で最優先リクエスト保持手段を設定することができる。
本発明のリクエスト調停装置において、前記複数のリクエスト保持手段に1対1に対応しており、該対応するリクエスト保持手段が保持するリクエストの優先度のうち最も高い優先度を保持する複数の最高優先度保持手段、を備え、前記設定手段は、前記複数の最高優先度保持手段のうち最も高い優先度を保持している最高優先度保持手段に対応するリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段としてもよい。こうすることにより、各リクエスト保持手段が保持する全てのリクエストの優先度を比較する場合に比べて、より短い時間で最優先リクエスト保持手段を設定することができる。
本発明のリクエスト調停装置において、前記出力側デバイスは、複数のバンクを有するメモリであり、前記各リクエスト保持手段は、前記メモリの各バンクに対応しており、前記リクエストとして自身に対応するバンクへのデータの入出力要求を保持する手段としてもよい。複数のバンクを有するメモリに対してリクエストとしてデータの入出力要求を行う場合は、効率よくリクエストの調停を行うために複数のリクエスト保持手段がリクエストを保持することが考えられ、本発明を適用する意義が高い。
本発明のリクエスト調停方法は、
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停方法であって、
(a)前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定するステップと、
(b)該最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御するステップと、
を含むものである。
本発明のリクエスト調停方法は、上述したリクエスト調停装置と同様に、最も優先度の高いリクエストを保持するリクエスト保持手段から優先的にリクエストが出力されるため、最も優先度の高いリクエストをできるだけ早く出力することができる。なお、このリクエスト調停方法において、上述したいずれかのリクエスト調停装置の機能を実現するステップを追加してもよい。
次に、本発明の実施の形態を図面に基づいて説明する。
[第1実施形態]
初めに、第1実施形態について説明する。図1は、本発明の第1実施形態であるプロセッサシステム10の構成の概略を示す構成図である。
プロセッサシステム10は、図1に示すように、プロセッサ11〜14とリクエスト調停装置20とがバス80を介して接続されている。また、リクエスト調停装置20はメモリコントローラ60を介してメモリ70と接続されている。
プロセッサ11〜14は、図示しないROMから読み出したプログラムにしたがって、メモリ70に記憶された画像データの印刷処理を分担して行うプロセッサである。具体的には、プロセッサ11がメモリ70に記憶されたRGBの画像データを読み出しCMYKの画像データに変換してメモリ70に記憶する処理を行い、プロセッサ12がCMYKの画像データをメモリ70から読み出しCMYK各2ビットの2値化データに変換してメモリ70に記憶する処理を行い、プロセッサ13がメモリ70に記憶された2値化データからヘッドの1走査分の2値化データを取り出してイメージデータとしてメモリ70に記憶する処理を行い、プロセッサ14がイメージデータをメモリ70から読み出しイメージデータに基づく画像を印刷するよう図示しない印刷装置を制御する処理を行う。プロセッサ11〜14は、これらの処理を行うにあたり、データの入出力要求であるリクエストをリクエスト調停装置20及びメモリコントローラ60を介してメモリ70に出力する。このリクエストは、データの読み出し又は書き込みのいずれかを指定するコントロール情報と、データの読み出し又は書き込みを行うメモリ70のアドレスを指定するアドレス情報とを有しており、リクエストが書き込みを要求する場合には書き込むデータも有している。また、リクエストはプロセッサ毎に予め定められた優先度を有しており、本実施例では、プロセッサ11〜14はそれぞれ優先度“1”〜“4”のリクエストを出力する。なお、優先度は値が小さいほど優先度が高いことを意味している。
リクエスト調停装置20は、プロセッサ11〜14が出力したリクエストの優先度に基づいて、リクエストの調停を行う装置であり、プロセッサ11〜14から入力したリクエストをバッファ31〜34のいずれかに保持させる入力制御装置21と、入力したリクエストを先入れ先出し(FIFO)の形式で保持するバッファ31〜34と、バッファ31〜34が新たなリクエストを保持する毎に後述する優先度変更処理を行う優先度変更装置41〜44と、リクエストの優先度に基づいてバッファ31〜34のいずれかが保持するリクエストをメモリコントローラ60に出力する出力制御装置51と、を備えている。
入力制御装置21は、入力したリクエストのアドレス情報によりメモリ60のバンク71〜74のいずれのバンクへのリクエストであるかを判定し、判定したバンクに対応するバッファ31〜34のいずれかのバッファにリクエストを出力するリクエスト入力処理を行う。
バッファ31〜34は、それぞれバンク71〜74に1対1で対応しており、入力制御装置21が出力したリクエストを入力すると、それをFIFOの形式で保持する。なお、本実施形態では、バッファ31〜34はそれぞれリクエストを4個まで保持することができることとしているが、リクエストを2つ以上保持できればいくつ保持できるものとしてもよい。
優先度変更装置41〜44は、それぞれバッファ31〜34に1対1で対応しており、対応するバッファが新たにリクエストを保持する毎に、そのバッファが既に保持しているリクエストのうち新たに保持されたリクエストより優先度の低いものを、新たに保持されたリクエストと同じ優先度にする優先度変更処理を行うプロセッサである。優先度変更処理の詳細については後述する。
出力制御装置51は、バッファ31〜34がそれぞれ保持している最先に保持されたリクエストの優先度を比較して、最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定し、設定した最優先バッファが保持する最先に保持されたリクエストをメモリコントローラ60に出力するリクエスト出力処理を行う。なお、本実施形態では、最も優先度の高いリクエストを保持しているバッファが複数ある場合には、ラウンドロビン方式により最優先バッファを設定するが、他の方式により決定してもよい。また、出力制御装置51は、図示しない信号線を介してメモリコントローラ60が新たなリクエストを受け付け可能な状態であるか否かの情報を入力しており、受け付け可能であるときにのみリクエスト出力処理を行う。
メモリコントローラ60は、メモリ70へのデータの書き込みや読み出しを行う装置である。このメモリコントローラ60は、出力制御装置51が出力したリクエストを入力し、リクエストのアドレス情報,コントロール情報及びデータに基づいてメモリ70がデータの入出力を行うよう制御する。また、上述したように、メモリコントローラ60は新たなリクエストを受け付け可能な状態であるか否かの情報を図示しない信号線を介して出力制御装置51に出力している。なお、メモリコントローラ60は、例えば、データの入出力を行うようメモリ70を制御しているときなど、前のリクエストに関する処理を行っているときには新たなリクエストを受け付け不可の状態となる。
メモリ70は、バンク71〜74の4つのバンクで構成されたマルチバンクメモリである。このメモリ70は、メモリコントローラ60によって、リクエストに基づくデータの入出力が行われる。
次に、こうして構成された本発明の第1実施形態のプロセッサシステム10の動作、特に、プロセッサ11〜14から出力されたリクエストの調停を行うときのリクエスト調停装置20の動作について説明する。
まず、優先度変更装置41が行う優先度変更処理について説明する。図2は、優先度変更ルーチンの一例を示すフローチャートである。この優先度変更ルーチンは、優先度変更装置41にそれぞれ対応するバッファ31が新たにリクエストを保持する毎に行われる。この優先度変更ルーチンでは、まず、カウンタn(nは整数)の値を初期化して値1にし(ステップS100)、バッファ31が保持するn個前のリクエストがあるか否かを判定する(ステップS110)。ここでは、カウンタnが値1であるため、n個前のリクエストとは、1個前のリクエストすなわちバッファ31が新たなリクエストを保持する前から既に保持していたリクエストの中で最後に保持されたリクエストのことである。そして、ステップS110でn個前のリクエストがないと判定された場合には、この優先度変更ルーチンを終了する。一方、ステップS110でn個前のリクエストがあると判定された場合には、バッファ31が新たに保持したリクエストの優先度が、バッファ31が保持するn個前のリクエストの優先度より高いか否かを判定する(ステップS120)。ここでは、カウンタnが値1であるため、バッファ31が新たに保持したリクエストの優先度が、バッファ31が保持する1個前のリクエストの優先度より高いか否かを判定することになる。そして、ステップS110で新たに保持したリクエストの優先度がn個前のリクエストの優先度より低いと判定したときには、この優先度変更ルーチンを終了する。一方、ステップS120で新たに保持したリクエストの優先度がn個前のリクエストの優先度より高いと判定したときには、n個前のリクエストの優先度を新たに保持したリクエストの優先度に変更する(ステップS130)。そして、カウンタnを1インクリメントして(ステップS140)、ステップS110に進む。すなわち、カウンタnが初期値1であったときには、ステップS140でカウンタnが値2になり、ステップS110で2個前のリクエストがあるか否かを判定することになる。以降は、ステップS110又はステップS120で否定的な判定がなされるまで上述したS110〜S140の処理を繰り返すことになる。なお、ステップS120で否定的な判定をしたときに優先度変更ルーチンを終了することとしているのは、優先度変更ルーチンを行うことでn+1個前のリクエストの優先度はn個前のリクエストの優先度と同じかそれより高い優先度となっており、ステップS120で否定的な判定がなされた後にステップS110〜S140の処理を繰り返してさらに前のリクエストについてステップS120の判定を行っても、肯定的な判定がなされることがないためである。
上述した優先度変更ルーチンによってバッファ31が保持するリクエストの優先度を変更する優先度変更処理の様子を図3,図4を用いて説明する。図3(a)に示すように、バッファ31の保持領域31a〜31dのいずれにもリクエストが保持されていないときに優先度“2”のリクエストaが入力されたとすると、リクエストaは保持領域31aに保持される。このとき、優先度変更装置41は優先度変更ルーチンを行い、リクエストaの1個前のリクエストが存在しないため、ステップS110で否定的な判定がなされて優先度変更ルーチンを終了する。次に、図3(b)に示すように、優先度“3”のリクエストbが入力されたとすると、リクエストbは保持領域31bに保持される。このとき、優先度変更装置41は優先度変更ルーチンを行い、今回新たに保持したリクエストbの優先度は1個前のリクエストであるリクエストaの優先度より低いためステップS120で否定的な判定がなされて優先度変更ルーチンを終了する。さらに、図3(c)に示すように、優先度“1”のリクエストcが入力されたとすると、リクエストcは保持領域31cに保持される。このとき、優先度変更装置41は優先度変更ルーチンを行い、今回新たに保持したリクエストcの優先度は1個前のリクエストであるリクエストbの優先度より高いためステップS120で肯定的な判定がなされ、ステップS130でリクエストbの優先度を“3”から“1”に変更する。そして、2個前のリクエストがあるためカウンタnが値2のときのステップS110で肯定的な判定がなされてステップS120に進み、今回入力したリクエストcの優先度は2個前のリクエストであるリクエストaの優先度より高いためステップS120で肯定的な判定がなされ、ステップS130でリクエストaの優先度を“2”から“1”に変更する。ステップS130の処理を行うと、3個前のリクエストはないためカウンタnが値3のときのステップS110で否定的な判定がなされて優先度変更ルーチンを終了する。これにより、図3(d)に示すように、リクエストa,bがリクエストcと同じ優先度“1”になる。
また、図4(a)に示すように、バッファ31の保持領域31a〜31cに優先度“1”のリクエストd,優先度“1”のリクエストe,優先度“3”のリクエストfがそれぞれ保持されている時に優先度“2”のリクエストgが入力されたとすると、リクエストgは保持領域31dに保持される。このとき、優先度変更装置41は優先度変更ルーチンを行い、今回新たに保持したリクエストgの優先度は1個前のリクエストであるリクエストfの優先度より高いためステップS120で肯定的な判定がなされ、ステップS130でリクエストfの優先度を“3”から“2”に変更する。そして、2個前のリクエストがあるためカウンタnが値2のときのステップS110で肯定的な判定がなされてステップS120に進み、今回入力したリクエストgの優先度は2個前のリクエストであるリクエストeの優先度より低いためステップS120で否定的な判定がなされて優先度変更ルーチンを終了する。これにより、図4(b)に示すようにリクエストfの優先度がリクエストgと同じ優先度“2”になる。
以上のように、優先度変更装置41が図2に示した優先度変更ルーチンを行うことで、バッファ31が既に保持しているリクエストのうち新たに保持されたリクエストより優先度の低いものを、新たに保持されたリクエストと同じ優先度にする。これにより、バッファ31の最先に保持されたリクエストすなわち図3,4における保持領域31aに保持されるリクエストの優先度を、バッファ31が保持する全てのリクエストのうち最も優先度の高いリクエストと同じにすることができる。なお、優先度変更装置42〜44についても、それぞれ対応するバッファがバッファ32〜34である点以外は同様の優先度変更ルーチンにより優先度変更処理を行うものであるため説明を省略する。
続いて、リクエスト調停装置20の動作について説明する。図5(a)は、プロセッサ12が出力したバンク72へのリクエストA,プロセッサ13が出力したバンク73へのリクエストB,プロセッサ13が出力したバンク74へのリクエストC,プロセッサ14が出力したバンク71へのリクエストDをリクエスト調停装置20のバッファ31〜34が保持した状態を示している。上述したように、プロセッサ11〜14からリクエストが出力されると、入力制御装置21はリクエスト入力処理を行う。すなわち、リクエストA,B,C,Dはそれぞれバンク72,73,74,71へのリクエストであるため、入力制御装置21はリクエストA,B,C,Dを、それぞれ対応するバッファ32,33,34,31に出力する。そのため図5(a)に示すように、バッファ31がリクエストDを保持領域31aに保持し、バッファ32がリクエストAを保持領域32aに保持し、バッファ33がリクエストBを保持領域33aに保持し、バッファ34がリクエストCを保持領域34aに保持した状態になる。このとき、優先度設定手段41〜44はそれぞれ上述した優先度変更処理を行うが、バッファ31〜34にはいずれも前に保持したリクエストがないため、いずれも図2のステップS110で否定的な判定がなされて優先度変更処理を終了することになる。なお、この状態のときに、メモリコントローラ60が新たなリクエストを受け付け可能な状態であれば、出力制御装置51は上述したリクエスト出力処理を行う。すなわち、バッファ31〜34にそれぞれ最先に保持されたリクエストを保持する領域である保持領域31a,32a,33a,34aに保持されているリクエストA〜Dの優先度を比較し、最も優先度の高いリクエストであるリクエストAを保持するバッファ32を最優先バッファに設定し、バッファ32の保持領域32aに保持されているリクエストAをメモリコントローラ60に出力する。そして、メモリコントローラ60がリクエストAを入力し、リクエストAのアドレス情報,コントロール情報及びデータに基づいてメモリ70がデータの入出力を行うよう制御する。
一方、メモリコントローラ60が新たなリクエストを受け付け可能な状態でなく、図5(a)に示すようにプロセッサ11が出力したバンク71へのリクエストEを新たに入力制御装置21が入力した場合には、リクエスト入力処理によってリクエストEはバッファ31の保持領域31bに保持される。このとき、優先度変更装置41は優先度変更処理を行うため、図5(b)に示すようにリクエストDの優先度が“4”から“1”に変更される。その後メモリコントローラ60が新たなリクエストを受け付け可能な状態になったとすると、出力制御装置51は上述したリクエスト出力処理を行う。すなわち、保持領域31a,32a,33a,34aに保持されているリクエストA〜Dのうちで最も優先度の高いリクエストであるリクエストDを保持するバッファ31を最優先バッファに設定し、バッファ31の保持領域31aに保持されているリクエストDをメモリコントローラ60に出力する。これにより、バッファ31はFIFOのためリクエストEが保持領域31aで保持されることになる。そして、この状態で次に出力制御装置51が上述したリクエスト出力処理を行うと、保持領域31a,32a,33a,34aに保持されているリクエストE,A,B,Cのうちで最も優先度の高いリクエストであるリクエストEを保持するバッファ31を最優先バッファに設定し、バッファ31の保持領域31aに保持されているリクエストEをメモリコントローラ60に出力する。これにより、後から保持された最も優先度の高いリクエストEが、リクエストA〜Cよりも早くメモリコントローラ60に出力されることになる。
ここで、第1実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。第1実施形態のバッファ31〜34が本発明のリクエスト保持手段に相当し、出力制御装置51が設定手段及び制御手段に相当し、優先度変更装置41〜44が優先度変更手段に相当し、メモリ70が出力側デバイスに相当する。なお、第1実施形態では、プロセッサシステム10の動作を説明することにより本発明のリクエスト調停方法の一例も明らかにしている。
以上詳述した第1実施形態では、後から最も優先度の高いリクエストが入力された場合でも、そのリクエストを保持するバッファから優先的にリクエストが出力される。したがって、最も優先度の高いリクエストをできるだけ早く出力することができる。また、優先度変更装置41〜44が優先度変更処理を行い、出力制御装置51がバッファ31〜34がそれぞれ最先に保持したリクエストのうち最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定する。したがって、バッファ31〜34が保持している全てのリクエストの優先度を比較して最優先バッファを設定する場合に比べて、より短い時間で最優先バッファを設定することができる。
[第2実施形態]
次に、第2実施形態について説明する。図6は、本発明の第2実施形態であるプロセッサシステム110の構成の概略を示す構成図である。なお、プロセッサシステム110の構成要素のうち、プロセッサシステム10と同じものについては同じ符号を用いており、動作も同じであるため説明を省略する。
このプロセッサシステム110は、リクエスト調停装置120以外はプロセッサシステム10と同様である。また、リクエスト調停装置120についても、優先度変更装置41〜44の代わりに最高優先度記憶装置91〜94を有し、出力制御装置51の代わりに出力制御装置151を有する点以外はリクエスト調停装置20と同様である。
最高優先度記憶装置91〜94は、図示しない記憶領域を備えており、それぞれバッファ31〜34に1対1で対応しているプロセッサである。この最高優先度記憶装置91〜94は、対応するバッファが新たにリクエストを保持するか又は出力制御装置151によって対応するバッファのリクエストがメモリコントローラ60に出力される毎に、そのバッファが保持する全てのリクエストの優先度のうち最も高い優先度を図示しない記憶領域に記憶する最高優先度記憶処理を行う。
出力制御装置151は、最高優先度記憶装置91〜94がそれぞれ記憶している優先度を比較して、最も高い優先度を記憶している最高優先度記憶装置に対応するバッファを最優先バッファに設定し、設定した最優先バッファが保持する最先に保持されたリクエストをメモリコントローラ60に出力するリクエスト出力処理を行う。すなわち、最優先バッファの設定方法が異なるのみで、他の動作は出力制御装置51と同様である。なお、本実施形態では、最も高い優先度を記憶している最高優先度記憶装置が複数ある場合には、ラウンドロビン方式により最優先バッファを設定するが、他の方式により決定してもよい。
こうして構成された本発明の第2実施形態のプロセッサシステム110の動作、特に、プロセッサ11〜14から出力されたリクエストの調停を行うときのリクエスト調停装置120の動作について説明する。
図7(a)は、図5(a)と同様に、プロセッサ12が出力したバンク72へのリクエストA,プロセッサ13が出力したバンク73へのリクエストB,プロセッサ13が出力したバンク74へのリクエストC,プロセッサ14が出力したバンク71へのリクエストDをリクエスト調停装置120のバッファ31〜34が保持した状態を示している。このとき、最高優先度記憶装置91〜94は、それぞれ上述した最高優先度記憶処理を行う。その結果、最高優先度記憶装置91,92,93,94はそれぞれ優先度“4”,“2”,“3”,“3”を記憶することになる。なお、この状態のときに、メモリコントローラ60が新たなリクエストを受け付け可能な状態であれば、出力制御装置151は上述したリクエスト出力処理を行う。すなわち、最高優先度記憶装置91〜94がそれぞれ記憶している優先度のうち最も高い優先度“2”を記憶しているのは最高優先度記憶装置92であるため、最高優先度記憶装置92に対応するバッファ32を最優先バッファに設定し、バッファ32の保持領域32aに保持されているリクエストAをメモリコントローラ60に出力する。
一方、図5(b)で説明した場合と同様に、メモリコントローラ60が新たなリクエストを受け付け可能な状態でなく、図7(b)に示すようにプロセッサ11が出力したバンク71へのリクエストEを新たに入力制御装置21が入力した場合には、リクエスト入力処理によってリクエストEはバッファ31の保持領域31bに保持される。このとき、最高優先度記憶装置91は最高優先度記憶処理を行うため、図7(b)のように最高優先度記憶装置91が記憶する優先度が“4”から“1”に変更される。その後メモリコントローラ60が新たなリクエストを受け付け可能な状態になったとすると、出力制御装置151は上述したリクエスト出力処理を行う。すなわち、最高優先度記憶装置91〜94のうち最も高い優先度“1”を保持している最高優先度記憶装置91に対応するバッファ31を最優先バッファに設定し、バッファ31の保持領域31aに保持されているリクエストDをメモリコントローラ60に出力する。これにより、バッファ31はFIFOのためリクエストEが保持領域31aで保持されることになる。そして、バッファ31からリクエストDが出力されると、最高優先度記憶装置91は最高優先度記憶処理を行い、バッファ31が保持しているのはリクエストEのみであるため、リクエストEの優先度“1”を記憶する。この状態で次に出力制御装置151が上述したリクエスト出力処理を行うと、最高優先度記憶装置91〜94のうち最も高い優先度“1”を保持している最高優先度記憶装置91に対応するバッファ31を最優先バッファに設定し、バッファ31の保持領域31aに保持されているリクエストEをメモリコントローラ60に出力する。これにより、後から保持された最も優先度の高いリクエストEが、リクエストA〜Cよりも早くメモリコントローラ60に出力されることになる。
ここで、第2実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。第2実施形態のバッファ31〜34が本発明のリクエスト保持手段に相当し、出力制御装置151が設定手段及び制御手段に相当し、最高優先度記憶装置91〜94が最高優先度保持手段に相当し、メモリ70が出力側デバイスに相当する。なお、第2実施形態では、プロセッサシステム110の動作を説明することにより本発明のリクエスト調停方法の一例も明らかにしている。
以上詳述した第2実施形態では、後から最も優先度の高いリクエストが入力された場合でも、そのリクエストを保持するバッファから優先的にリクエストが出力される。したがって、最も優先度の高いリクエストをできるだけ早く出力することができる。また、最高優先度記憶装置91〜94が最高優先度記憶処理を行い、出力制御装置151が最高優先度記憶装置91〜94のうち最も高い優先度を記憶している最高優先度記憶装置に対応するバッファを最優先バッファに設定する。したがって、バッファ31〜34が保持している全てのリクエストの優先度を比較して最優先バッファを設定する場合に比べて、より短い時間で最優先バッファを設定することができる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、バッファ31〜34は、それぞれバンク71〜74に1対1で対応しているものとしたが、バッファとバンクとが対応してさえいれば、1対1で対応していなくともよい。例えば、バッファが2つであり、1つのバッファがバンク71,72に対応し、もう1つのバッファがバンク73,74に対応していてもよい。また、バンクが2つであり、バッファ31,32が1つのバンクに対応し、バッファ33,34がもう1つのバンクに対応していてもよい。
上述した実施形態では、リクエスト調停装置20,120がバッファ31〜34を備えるものとしたが、リクエスト調停装置は優先度変更装置41〜44又は最高優先度記憶装置91〜94と出力制御装置50又は出力制御装置50aとを備えていればよく、バッファ31〜34や入力制御装置21はリクエスト調停装置とは独立した構成としてもよい。このような構成としても、信号線などによりリクエスト調停装置とバッファ31〜34とが接続されていれば、本実施形態と同様の効果が得られる。
上述した実施形態では、優先度変更装置41〜44及び最高優先度記憶装置91〜94はそれぞれ優先度変更処理又は最高優先度記憶処理を行うプロセッサとしたが、同様の処理を行うよう構成した論理回路であるものとしてもよい。例えば、比較器やフリップフロップなどの素子を用いて構成してもよい。
上述した実施形態では、リクエストはプロセッサ毎に予め定められた優先度を有するものとしたが、1つのプロセッサが複数の優先度を有するリクエストを出力するものとしてもよい。例えば、プロセッサ11は優先度“1”又は“2”のリクエストを出力でき、プロセッサ11が行う処理の内容に応じていずれの優先度のリクエストを出力するかを決定してもよい。また、プロセッサ11〜14のいずれかに異常が発生して現在の設定値を保存する必要がある場合など、緊急に処理を行うときには、異常の発生したプロセッサが最も優先度の高い優先度“0”のリクエストを出力するものとしてもよい。こうすれば、異常の発生したプロセッサが行う緊急時の処理をできるだけ早くメモリ70に出力することができる。
上述した実施形態では、優先度変更装置41〜44又は最高優先度記憶装置91〜94が優先度変更処理又は最高優先度記憶処理を行い、その結果を基に出力制御装置50又は50aがリクエスト出力処理を行うが、出力制御装置50又は50aが優先度変更処理又は最高優先度記憶処理も行うものとしてもよい。また、優先度変更処理や最高優先度記憶処理を行わず、メモリコントローラ60が新たなリクエストを受け付け可能であるときにバッファ31〜34が保持する全てのリクエストの優先度を比較して、最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定するものとしてもよい。
上述した実施形態では、プロセッサ11〜14が複数のバンク71〜74を有するメモリ70に対するリクエストを調停するリクエスト調停装置20,120について説明したが、複数のバッファが保持するリクエストを出力するにあたってバッファの調停を行うものであれば、どのようなものでも構わない。例えば、リクエストを出力するのは印刷処理を分担して行うプロセッサ11〜14ではなく、スキャナ装置の制御を行うプロセッサや外部機器と信号の授受を行うインタフェースなど、どのようなデバイスであってもよい。また、リクエストの出力先は複数のバンク71〜74を有するメモリ70ではなく、複数のプロセッサやインタフェースなど、どのようなデバイスであってもよい。さらに、リクエストはデータの読み出し又は書き込みの要求ではなく、印刷装置を制御する制御信号など、どのようなリクエストであってもよい。
第1実施形態であるプロセッサシステム10の構成の概略を示す構成図。 優先度変更ルーチンの一例を示すフローチャート。 優先度変更処理の様子を説明する説明図。 優先度変更処理の様子を説明する説明図。 リクエスト調停装置20の動作の様子を説明する説明図。 第2実施形態であるプロセッサシステム110の構成の概略を示す構成図。 リクエスト調停装置120の動作の様子を説明する説明図。 マルチバンクメモリへのリクエストを保持する場合のバッファの構成図。
符号の説明
10,110 プロセッサシステム、11〜14 プロセッサ、20,120 リクエスト調停装置、21 入力制御装置、31〜34 バッファ、31a〜31d,32a〜32d,33a〜33d,34a〜34d 保持領域、41〜44 優先度変更装置、51,151 出力制御装置、60 メモリコントローラ、70 メモリ、71〜74 バンク、80 バス、91〜94 最高優先度記憶装置。

Claims (5)

  1. 優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停装置であって、
    前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する設定手段と、
    前記最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御する制御手段と、
    を備えたリクエスト調停装置。
  2. 請求項1に記載のリクエスト調停装置であって、
    前記複数のリクエスト保持手段が新たな前記リクエストを保持する毎に、該保持したリクエスト保持手段が既に保持しているリクエストのうち該新たなリクエストより優先度の低いものを、該新たなリクエストと同じ優先度にする優先度変更手段、
    を備え、
    前記設定手段は、前記複数のリクエスト保持手段毎の最先に保持されたリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段である、
    リクエスト調停装置。
  3. 請求項1に記載のリクエスト調停装置であって、
    前記複数のリクエスト保持手段に1対1に対応しており、該対応するリクエスト保持手段が保持するリクエストの優先度のうち最も高い優先度を保持する複数の最高優先度保持手段、
    を備え、
    前記設定手段は、前記複数の最高優先度保持手段のうち最も高い優先度を保持している最高優先度保持手段に対応するリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段である、
    リクエスト調停装置。
  4. 前記出力側デバイスは、複数のバンクを有するメモリであり、
    前記各リクエスト保持手段は、前記メモリの各バンクに対応しており、前記リクエストとして自身に対応するバンクへのデータの入出力要求を保持する手段である、
    請求項1〜3のいずれか1項に記載のリクエスト調停装置。
  5. 優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停方法であって、
    (a)前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定するステップと、
    (b)該最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御するステップと、
    を含むリクエスト調停方法。
JP2008217740A 2008-08-27 2008-08-27 リクエスト調停装置及びリクエスト調停方法 Active JP5217786B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008217740A JP5217786B2 (ja) 2008-08-27 2008-08-27 リクエスト調停装置及びリクエスト調停方法
US12/548,384 US8356129B2 (en) 2008-08-27 2009-08-26 Request arbitration apparatus and request arbitration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008217740A JP5217786B2 (ja) 2008-08-27 2008-08-27 リクエスト調停装置及びリクエスト調停方法

Publications (2)

Publication Number Publication Date
JP2010055246A JP2010055246A (ja) 2010-03-11
JP5217786B2 true JP5217786B2 (ja) 2013-06-19

Family

ID=41726972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008217740A Active JP5217786B2 (ja) 2008-08-27 2008-08-27 リクエスト調停装置及びリクエスト調停方法

Country Status (2)

Country Link
US (1) US8356129B2 (ja)
JP (1) JP5217786B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
KR20140131781A (ko) * 2013-05-06 2014-11-14 삼성전자주식회사 메모리 제어 장치 및 방법
US9747658B2 (en) * 2013-09-06 2017-08-29 Apple Inc. Arbitration method for multi-request display pipeline
US10157023B2 (en) * 2016-02-25 2018-12-18 SK Hynix Inc. Memory controller and request scheduling method using request queues and first and second tokens
US9965222B1 (en) * 2016-10-21 2018-05-08 Advanced Micro Devices, Inc. Software mode register access for platform margining and debug
CN106959929B (zh) * 2017-03-17 2020-08-04 数据通信科学技术研究所 一种多端口访问的存储器及其工作方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367654A (en) * 1988-04-13 1994-11-22 Hitachi Ltd. Method and apparatus for controlling storage in computer system utilizing forecasted access requests and priority decision circuitry
US5276902A (en) * 1988-11-07 1994-01-04 Fujitsu Limited Memory access system for vector data processed or to be processed by a vector processor
US5408627A (en) * 1990-07-30 1995-04-18 Building Technology Associates Configurable multiport memory interface
JP3260456B2 (ja) * 1992-12-25 2002-02-25 株式会社日立製作所 コンピュータシステムおよびそれに適した集積回路並びに要求選択回路
US5617575A (en) * 1991-03-19 1997-04-01 Hitachi, Ltd. Interprocessor priority control system for multivector processor
JPH1185605A (ja) * 1997-09-09 1999-03-30 Hitachi Ltd 記憶制御装置
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6662253B1 (en) * 2000-09-13 2003-12-09 Stmicroelectronics, Inc. Shared peripheral architecture
JP2004288021A (ja) 2003-03-24 2004-10-14 Matsushita Electric Ind Co Ltd メモリアクセス制御装置
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism

Also Published As

Publication number Publication date
US8356129B2 (en) 2013-01-15
JP2010055246A (ja) 2010-03-11
US20100057963A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
JP5217786B2 (ja) リクエスト調停装置及びリクエスト調停方法
US8099567B2 (en) Reactive placement controller for interfacing with banked memory storage
JP4715801B2 (ja) メモリアクセス制御装置
US10282343B2 (en) Semiconductor device
JP2006227836A (ja) データ転送システムおよびデータ転送方法
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
JP2009015832A (ja) アクセス間調停回路、半導体装置およびアクセス間調停方法
KR100631778B1 (ko) 데이터 버퍼 회로, 인터페이스 회로 및 그 제어 방법
US10630865B2 (en) Image forming apparatus incorporating control circuitry for executing control method to arbitrate access between signals referring priority settings
JP4193746B2 (ja) マトリックス状バス接続システム
JP4779010B2 (ja) バッファリング装置およびバッファリング方法
JP2010009557A (ja) メモリコントローラ
JP2006164070A5 (ja)
JP4346506B2 (ja) 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP3897028B2 (ja) 情報処理システム、共有データ処理方法、共有データ処理プログラム
JP4071225B2 (ja) 転送回路
JP2008305215A (ja) バスシステム
US20050060453A1 (en) Instruction supply control unit and semiconductor device
JP2006277363A (ja) 情報転送方式,画像形成装置
JP5125885B2 (ja) データ入出力装置
JP2004326814A (ja) 画像処理装置及び画像処理システム
JP3610030B2 (ja) データ処理システム
JP3610031B2 (ja) データ処理システム
JP2009294714A (ja) バスアクセス調停装置およびそれを用いる画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5217786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350