JPWO2007004696A1 - アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法 - Google Patents

アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法 Download PDF

Info

Publication number
JPWO2007004696A1
JPWO2007004696A1 JP2007523444A JP2007523444A JPWO2007004696A1 JP WO2007004696 A1 JPWO2007004696 A1 JP WO2007004696A1 JP 2007523444 A JP2007523444 A JP 2007523444A JP 2007523444 A JP2007523444 A JP 2007523444A JP WO2007004696 A1 JPWO2007004696 A1 JP WO2007004696A1
Authority
JP
Japan
Prior art keywords
access
master
request
unit
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
JP2007523444A
Other languages
English (en)
Other versions
JP4485574B2 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2007004696A1 publication Critical patent/JPWO2007004696A1/ja
Application granted granted Critical
Publication of JP4485574B2 publication Critical patent/JP4485574B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一定レートでのアクセスを保証すべきマスタとアクセス要求に対する即応性が求められるプロセッサが共有メモリにアクセスする装置において、マスタの一定レートでのアクセスを保証しつつ、プロセッサのアクセス要求に対する即応性を従来よりも高める。マスタには、共有メモリにアクセスするためのリソースが余っている状態においては、当該マスタに与えられているリソース以上のリソースを用いて一定レート以上でのアクセスを実行し、当該一定レート以上でのアクセスを実行した場合には、本来は当該マスタに割り当てられているリソースを用いてプロセッサが共有メモリにアクセスを実行する。

Description

本発明は、共有メモリに複数のマスタがアクセスする場合におけるアクセス制御を実行するアクセス制御装置に関し、特にアクセス要求の発生が予測困難なマスタのアクセス要求に対する即応性を高める技術に関する。
所定期間内に一定レートのアクセスを保証する必要があるマスタと、メモリへのアクセス要求の頻度が不定期で、予測困難なマスタ(以下、プロセッサという)が、同一のメモリを共有するシステムがある。このようなシステムの場合、マスタとプロセッサのメモリへのアクセス競合を防ぐために、マスタとプロセッサの調停を行う回路を備える。このような調停回路においては、マスタとプロセッサのアクセスに関する優先順位を定めてアクセス制御を行うことが多い。以下の特許文献1及び特許文献2には、このようなシステムにおいて、プロセッサのアクセス要求に対する即応性を改善する技術が開示されている。
例えば特許文献1では、マスタに対しては所定頻度でのアクセスのみを許し、通常はプロセッサのアクセスを優先する技術が開示されている。また、特許文献2には、通常はプロセッサのアクセス優先順位を低く、マスタのアクセス優先順位を高く設定するが、プロセッサのアクセス要求が発生し、共有メモリへのアクセスが通った場合に、その次のプロセッサのアクセス要求に対しては、他のマスタよりも優先順位を高くすることで、プロセッサのアクセス要求に対する即応性を高める技術が開示されている。
日本国特許公開2000−207355号公報 日本国特許公開2002−304368号公報
ところが、上記特許文献1のように周期的にアクセスを制御した場合に、突発的にアクセス要求が発生するタイプのプロセッサからのアクセス要求については、周期的なアクセス制御を必要とするマスタのアクセスの合間に対処することになる。マスタに割り当てられている時間帯においてプロセッサからのアクセス要求が発生した場合には、そのアクセス要求は遅延することとなり、アクセス要求に対する即応性に問題があるといえる。また、特許文献2に示した技術の場合においては、プロセッサのアクセス要求を優先したためにマスタの一定レートのアクセスを保証できない可能性がある。
そこで、上記問題に鑑みて、本発明においては従来よりもプロセッサからのアクセス要求に対する即応性を高めることができるアクセス制御装置を提供することを目的とする。
上記課題を解決するため、本発明は、複数のマスタの共有メモリへのアクセスを制御するアクセス制御装置であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備えることを特徴としている。
上述のような構成によって、第1アクセス手段は、一定レートでアクセスを実行する第1マスタに対して、共有メモリにアクセスするためのリソースが余っており、次のアクセス要求がある場合には、本来設定されているレートを超えてアクセスを実行する。すると第1マスタについては、共有メモリに対して本来よりも過剰にアクセスを実行していることになり、周期的に実行しなけらばならないアクセスについてマージンができることとなる。そこで、そのマージンがある状態で、第2マスタからのアクセス要求があった場合に、第1マスタに割り当てられているリソースを第2マスタに割り当てることで第2マスタに対するアクセス要求への即応性を高めることができる。こうすることで第2マスタが共有メモリに対するアクセス要求の発生が予測不可能なプロセッサの場合に、プロセッサのアクセス要求に対して従来よりも即応性を高めることができる。
また、前記アクセス制御装置は、更に、前記第1マスタが前記一定レート以上でのアクセスを実行していた場合に一定レートを超えて前記第1マスタが前記共有メモリにアクセスした回数をカウントする先行アクセスカウント手段を備え、前記第2アクセス手段は、前記先行アクセスカウント手段でカウントされている回数が1以上の場合に、前記第2マスタを前記共有メモリにアクセスさせることとしてもよい。
これにより、アクセス制御装置は、一定レート以上でのアクセスを実行していることをアクセス回数をカウントし、このアクセスカウンタで、第2マスタのアクセス要求を通すかどうかを判断することができるようになる。
また、前記先行アクセスカウント手段は、前記第2アクセス手段が、前記第2マスタに前記共有メモリにアクセスさせた場合に、カウントしているアクセス回数をデクリメント、もしくは0にリセットすることとしてもよい。
これにより、アクセス制御装置は、第2マスタの共有メモリへの過剰なアクセスが発生することを防ぎ、第1マスタの一定レートでの共有メモリへのアクセスを保証することができる。
また、前記アクセス制御装置は、更に、前記一定レートを指定するためのレートパラメータを保持するパラメータ保持手段を備え、前記第1アクセス手段は、前記パラメータ保持手段に保持されている一定レートに基づいて、前記第1マスタに前記一定レートのアクセスを実行させることとしてもよい。
このパラメータ保持手段を備えることにより、第1アクセス手段は、一定レートのアクセスを間違えることなく保証でき、また、パラメータ保持手段の保持するパラメータをユーザが自由に設定できる構成にすれば、データアクセスを制御する装置としての汎用性が高まる。
また、前記アクセス制御装置は、更に、前記第1のマスタ及び前記第2のマスタは、前記アクセス用のリソースを共有し、共有したリソースの範囲内で、前記第1のマスタは前記第2のマスタに前記共有メモリへのアクセス権を貸し借りさせて前記共有メモリにアクセスさせるアクセス統括手段を備えることとしてもよい。
このアクセス統括手段を備えることにより、第1マスタのアクセスと第2のマスタのアクセスにおいて、リソースの貸し借りを行うことができ、更に第2マスタのアクセス要求に対する即応性を高めることが可能となる。
また、前記アクセス制御装置は、更に、前記第1のマスタ及び第2のマスタのアクセス保証期間の情報と、アクセス保証期間許容できる最大のアクセス数を表す許容アクセス頻度情報と、アクセス権の借り入れを行うことができる最大期間の情報と、一度アクセス権を借入してから次に借入できるまでの時間情報とを保持する借入パラメータ保持手段を備え、前記アクセス統括手段は、前記借入パラメータ保持手段に保持されている各情報に基づいて、アクセス権の貸し借りを実行し前記共有メモリにアクセスさせることとしてもよい。
この借入パラメータ保持手段を備えることにより、ユーザが自由にそのパラメータを設定できる構成にすれば、データアクセスを制御する装置としてその汎用性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御集積回路であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備えることとしてもよい。
この集積回路により、複数のマスタからのアクセス要求を制御し、第1マスタが一定レート以上でのアクセスを実行していた場合に、第2マスタのアクセス要求信号を優先して通すことができるようになるので、第2マスタがなるべくの即応性を求められるプロセッサの場合に、その即応性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御方法であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセスステップと、前記第1アクセスステップにおいて前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセスステップにおいて前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセスステップとを含むこととしてもよい。
当該方法を実行することにより、複数のマスタ間において、即応性を求められるマスタに対してのアクセスを、他のマスタが本来一定レートでアクセスを行うところを当該レートを超えてアクセスを実行していた場合に、実行することができるので、即応性を求められるマスタのアクセスのタイミングを遅延することなく実行することができる。
本発明に係るアクセス制御装置100の機能構成を示した機能ブロック図である。 (a)は、従来のアクセスのタイミングを示したタイミングチャートであり、(b)は、本発明におけるアクセスのタイミングを示したタイミングチャートである。 リクエスト制限部130の機能構成を示した機能ブロック図である。 1アクセス保証期間内におけるマスタ選択部の動作を示したフローチャートである。 調停部140のアクセス要求の調停に関する動作を示したフローチャートである。 リクエスト制限部のアクセス要求を受けた際の動作を示したフローチャートである。 実施の形態1に係るアクセスにおける各信号線を流れるデータの状態の具体例を示したタイミングチャートである。 実施の形態2に係るアクセス制御装置の機能構成を示した機能ブロック図である。 実施の形態2における統括リクエスト制限部の機能構成を示した機能ブロック図である。 リクエスト制限部におけるアクセス権の状態の遷移を示す状態遷移図である。
以下、本発明の一実施形態であるアクセス制御装置について図面を用いて説明する。
<概要>
図1に示すような複数のアクセス装置が共有メモリにアクセスする場合において、アクセス競合を防ぐために、調停する装置がある。
図1においてプロセッサとは、共有メモリに対するアクセス要求がいつ発生するか予測がつきにくいアクセス装置である。一方、マスタはあるアクセス保証期間内において、ある一定レートでの共有メモリに対するアクセスを保証しないといけないアクセス装置である。具体例をあげると、例えばBD(Blu−ray Disc)プレーヤで、プロセッサはユーザからのリモコン操作に対する応答を実行し、マスタは例えば、動画のデコードを実行するという具合である。
こういう複数のアクセス装置が共有メモリにアクセスする場合に従来においては、図2(a)に示すように、各マスタがアクセスを実行する時間帯をそれぞれのマスタに割り振って制御することがアクセス競合を回避する一手法であった。図2(a)の時間T0〜T4に示す期間が、アクセス保証期間TCであり、プロセッサ(P)、マスタ(M1)、マスタ(M2)、マスタ(M3)が順にアクセスを実行していることがわかる。
しかし、各マスタに設定するレートはある程度余裕をもって設けられるため必ずしもアクセス保証期間内に保証される時間帯全てを使ってアクセスしないこともある。例えば、時間T4〜T9で示すアクセス保証期間TCの時間T7〜T8に示すように、M2が共有メモリにアクセスする時間帯においてM2からのアクセス要求がないため、空白期間ができてしまっているので無駄が発生している。
そこで、本発明においては、図2(b)に示すように、アクセス保証期間内TC内において、アクセスのためのリソースがあいている状態で、アクセス要求が発生した場合には、マスタは、自己に設定されたレート以上のアクセスを実行する。こうすると一定レートで行っている作業に関して余裕ができる。図2(b)の場合で示すと、時間T7〜T8において、本来時間T10〜T13においてなされるM1のアクセスが先行して行われているので、時間T9以降において、M1についてはアクセスに関するマージンがあることになる。すると、M1のアクセス保証期間の一定レートでのアクセスに用いるリソースを使ってプロセッサからのアクセス要求を通すことで、プロセッサからのアクセス要求に対する即応性を高めることができる。
なお、ここで、従来だとT9以降から行うアクセスのうち、先行するアクセスをM1が行っていたが、これは必ずM1である必要はなく、M2、M3の何れでもアクセス要求があるならどれでもかまわない。また、図面上、従来の場合と比較しやすくするために、時間T7〜T8に、本来時間T10〜T13においてM1が行うアクセスを、実行するような図面にしたが、これは、通常、T6からは本来M2のアクセスが実行され、M3のアクセスが実行され、その後に行うのが通常の制御である。
<実施の形態1>
<構成>
図1は、本発明に係るアクセス制御装置の機能構成を示した機能ブロック図である。
図1に示すように、アクセス制御装置100は、プロセッサ110と、マスタ111、マスタ112、マスタ113の共有メモリへのアクセスを制御する装置であって、マスタ選択部121、122、123と、リクエスト制限部130、131、132、133と調停部140とを含んで構成される。
上述の第1マスタは、マスタ111、マスタ112、マスタ113が該当し、第2マスタはプロセッサ110が該当する。第1マスタがマスタ111の場合に第1アクセス手段において、一定レートのアクセスのためのリソースの確保はリクエスト制限部131が行い、一定レート以上のアクセスについては、リクエスト制限部131を通さずにマスタ111から直接調停部140に対して直接出力されるアクセス要求に対するアクセス許可によって実現される。そして、第2アクセス手段は、マスタ選択部121とリクエスト制限部131と調停部140の組み合わせによって実現される。また、上述の先行アクセスカウント手段は、第1マスタがマスタ111の場合は、マスタ選択部121によって実現される。
プロセッサ110は、共有メモリへのアクセス要求が不定期かつ不規則に発生する装置であり、図に示すように信号線10と12を介してアクセス制御装置100の各部と接続されている。
マスタ111は、あるアクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべきアクセス装置であり、マスタ選択部121及び調停部140と信号線20、22を介して接続されている。
マスタ112は、アクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部122及び調停部140と信号線30、32を介して接続されている。
マスタ113は、アクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部123及び調停部140と信号線40、42を介して接続されている。
ここでアクセス保証期間TCは各マスタ別に設定されるが、本実施の形態においては、簡略化のために、全てのマスタ共通で10クロックとした場合を例に説明する。
マスタ選択部121は、プロセッサ110とリクエスト制限部131と調停部140と接続されており、マスタ112からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部131に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部121は、マスタ111に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、リクエスト制限部131を通して許可されたアクセスの回数(以降アクセスカウンタともいう)を調停部140から受け付けたアクセス許可信号23に基づいてカウントする機能を有する。また、リクエスト制限部131を通さずに許可されたアクセス回数(以降先行アクセスカウンタともいう)を調停部140からのアクセス許可信号51に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ111のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ111からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ111からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部131に出力する。また、リクエスト制限部131を介して、プロセッサ110に対するアクセス許可信号を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ111のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
マスタ選択部122は、プロセッサ110とリクエスト制限部132と調停部140と接続されており、マスタ112からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部132に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部122は、マスタ112に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、アクセスカウンタを調停部140から受け付けたアクセス許可信号33に基づいてカウントする機能を有する。また、マスタ112の先行アクセスカウンタを調停部140からのアクセス許可信号52に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ112のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ112からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ112からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部132に出力する。また、リクエスト制限部132を介して、プロセッサ110に対するアクセス許可信号35を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ112のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
マスタ選択部123は、プロセッサ110とリクエスト制限部133と調停部140と接続されており、マスタ113からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部133に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部123は、マスタ113に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、アクセスカウンタを調停部140から受け付けたアクセス許可信号43に基づいてカウントする機能を有する。また、マスタ113の先行アクセスカウンタを、調停部140からのアクセス許可信号53に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ113のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ113からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ113からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部133に出力する。また、リクエスト制限部133を介して、プロセッサ110に対するアクセス許可信号45を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ113のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
リクエスト制限部130は、プロセッサ110のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、プロセッサ110からのアクセス要求を調停部140に対して送出するかどうかを判定し、送出する機能を有する。ここでは、リクエスト制限部130は、プロセッサ110からのアクセス要求を10クロック中に1クロックの割合で、アクセス要求を調停部140に出力する。それ以外のタイミングでは、アクセス要求をマスクする、即ち調停部140に出力しない。なお、ここでプロセッサは10クロックに1回の割合でアクセスするとしたが、プロセッサからのアクセス要求についてはアクセス保証期間というものは特に設定する必要はなく、常にリクエスト制限部130においてアクセス要求をマスクする制御を行ってもよい。その場合、他のマスタが必要とするレートの残りのリソースをプロセッサに割り当てることになる。
リクエスト制限部131は、マスタ111のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ112からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部131は、1アクセス保証期間を10クロックとして管理し、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ112の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部131は出力したアクセス要求に対する調停部140からのアクセス許可信号23の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部131は、調停部140からのアクセス許可信号23をマスタ選択部121に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ111に対するものである場合がある。
リクエスト制限部132は、マスタ112のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ112からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部132は、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ112の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部132は出力したアクセス要求に対する調停部140からのアクセス許可信号33の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部132は、調停部140からのアクセス許可信号33をマスタ選択部122に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ112に対するものである場合がある。
リクエスト制限部133は、マスタ113のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ113からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部133は、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ113の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部133は出力したアクセス要求に対する調停部140からのアクセス許可信号43の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部133は、調停部140からのアクセス許可信号43をマスタ選択部123に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ113に対するものである場合がある。
リクエスト制限部については、より詳細なブロック図を図3に示した。ここではリクエスト制限部130について説明し、その他のリクエスト制限部については、略同一の構成を有するため、説明を割愛する。
図3に示すように、リクエスト制限部130は、パラメータ保持部310と、アクセス頻度管理部320と、リクエストマスク部330とを含んで構成される。
パラメータ保持部310は、各マスタの保証レートを決めるアクセス保証期間の値と、アクセス保証期間内に必要なアクセス回数とを保持し、これらのパラメータを信号線311を介してアクセス頻度管理部320に出力する機能を有する。ここでは、アクセス保証期間内に必要なアクセス回数は1であり、アクセス保証期間は10である。
アクセス頻度管理部320は、リクエスト制限部130を通してアクセスが実行された回数をカウントする機能を有する。具体的には、調停部140から信号線13を介してアクセス許可信号を受け取るたびに、アクセスカウンタを1加算する。そして、信号線10を介してアクセス要求信号を受け取った場合に、アクセスカウンタが3以上の場合には、リクエストマスク部330に対してアクセスが許可できないことを示すために信号線321の電位をHiレベルにすることにより通知する。また、アクセス頻度管理部320は、アクセス保証期間の10クロックもカウントしており、10クロック経過するごとにアクセスカウンタを0にリセットする機能も有する。
リクエストマスク部330は、信号線321を介してアクセス頻度管理部320から、受け取ったマスク信号に基づいて、調停部140に対してアクセス要求を出力する機能を有する。具体的には、信号線321の電位がLowレベルである場合には、リクエストマスク部330は、信号線10を介して受け付けたプロセッサ110からのアクセス要求信号をそのまま調停部140に出力する。信号線321の電位がHiレベルである場合には、リクエストマスク部330は、調停部140にはアクセス要求信号を出力しない。
調停部140は、プロセッサ110、マスタ111、112、113の各アクセス装置からの共有メモリへのアクセス要求を受けて、各アクセス要求を所定の基準に基づいて、アクセスを実行する順序を調停する機能を有する。基本的には、調停部140は、信号線11、21、31、41、10、20、30、40の順で受け付けたアクセス要求の順でアクセスを許可する。上位のアクセス要求がある場合には、下位のアクセス要求は待たせる。また、調停部140は、アクセス要求を許可するプロセッサ又は、マスタに対して、アクセスを許可することを示すアクセス許可信号を出力する機能を有する。なお、リクエスト制限部から出力されたアクセス要求に対しては、そのリクエスト制限部に対してアクセス許可信号を出力し、リクエスト制限部からアクセス要求を受け取っていない場合には、直接プロセッサ又はマスタにアクセス許可信号を信号線50〜53を用いて出力する。さらに、リクエスト制限部を介さないアクセス要求で、マスタからのアクセス要求に対してアクセス許可信号を出力する場合には、そのマスタに対応するマスタ選択部に対してもアクセス許可信号を出力する。
以上がアクセス制御装置100の各部の機能の説明である。
<動作>
ここで、本実施の形態のアクセス制御装置のマスタ選択部の動作を図4に示すフローチャートを用いて説明する。ここで示すマスタ選択部の動作は、1クロックの動作である。また、マスタ選択部121を例に動作を説明し、その他のマスタ選択部については、マスタ選択部121とほぼ同様の動作を実行するため説明を割愛する。
まず、マスタ選択部121は、自己内でカウントしている先行アクセスカウンタが0あるかどうかを判定する(ステップS401)。なお、先行アクセスカウンタの初期値は0である。先行アクセスカウンタが0である場合には(ステップS401)、次にマスタ選択部121は、マスタ111からのアクセス要求があるかどうかを信号線20からの入力があるかどうかで判定する(ステップS403)。マスタ111からのアクセス要求がない場合には(ステップS403のNO)、ステップS417に移行し、以降の処理を実行する。マスタ111からのアクセス要求があった場合には(ステップS403のYES)、次にアクセスカウンタと先行アクセスカウンタの値の和がN未満であるかどうかを判定する(ステップS405)。ここでNは、各マスタのアクセス保証期間内に必要なアクセス回数であり、本実施の形態においては、Nは3となる。アクセスカウンタと先行アクセスカウンタの値の和がN未満である場合には(ステップS405のYES)、マスタ選択部121は、リクエスト制限部にマスタ111のアクセス要求を出力する(ステップS407)。アクセスカウンタと先行アクセスカウンタの値の和がN未満でない場合には(ステップS405のNO)、ステップS409に移行し、以降の処理を実行する。
マスタ選択部121は、調停部140からアクセス許可を示すアクセス許可信号を受け付けたかどうかを判定する(ステップS409)。ここで、アクセス許可信号は、信号線25又は、信号線51を介して受け付ける。調停部140からアクセス許可信号がない場合には(ステップS409のNO)、ステップS417に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には(ステップS409のYES)、マスタ選択部121は、受け付けたアクセス許可信号がリクエスト制限部131を介して受け付けたアクセス許可信号であるかどうかを判定する(ステップS411)。これは、アクセス許可信号を信号線23を介して受け付けたかどうかに基づいて判定する。受け付けたアクセス許可信号がリクエスト制限部131を介したものであった場合には(ステップS411のYES)、マスタ選択部121でカウントしているアクセスカウンタを1加算する(ステップS413)。一方、ステップS409で、マスタ選択部121が受け付けたアクセス許可信号がリクエスト制限部131を介したものでなかった場合(ステップS411のNO)、即ち、信号線51を介して受け付けていた場合には、マスタ選択部121は、先行アクセスカウンタを1加算し(ステップS412)、マスタ111にアクセス許可信号を出力する(ステップS415)。
一方、先行アクセスカウンタが0でなかった場合には(ステップS401のNO)、マスタ選択部121は、信号線10を介してプロセッサ110からのアクセス要求信号を受けているかどうかをみる(ステップS402)。プロセッサ110のアクセス要求がなかった場合には(ステップS402のNO)、ステップS403に移行し、以降の処理を実行する。プロセッサ110からのアクセス要求があった場合には(ステップS402のYES)、そのアクセス要求信号をリクエスト制限部131に出力する(ステップS404)。マスタ選択部121は、調停部140からのアクセス許可信号23を受け付けたかどうかを判定し(ステップS406)、受け付けていない場合には(ステップS406のNO)、ステップS417に移行し、以降の処理を実行する。調停部140からのアクセス許可信号を受けていた場合には(ステップS406のYES)、マスタ選択部121は、アクセスカウンタの値を1加算し、先行アクセスカウンタの値を1減算する(ステップS408)。そしてプロセッサ110にアクセス許可信号を出力する(ステップS410)。
そしてマスタ選択部121は、自己内部のクロックカウンタによってカウントされるアクセス保証期間タイマの値が10になっているかどうかを判定する(ステップS417)。アクセス保証期間が経過していない、つまり保証期間タイマが10未満であった場合には(ステップS417のNO)、1クロックにおける動作を終了する。アクセス保証期間が経過している、つまり保証期間タイマが10であった場合には(ステップS417のYES)、保証期間タイマと、アクセスカウンタを0にリセットする。また、先行アクセスカウンタのカウンタをその時点の先行アクセスカウンタから、マスタ111のアクセスが許可されている回数であるNとアクセスカウンタの差分を減算した値で更新する。但し、この演算により先行アクセスカウンタが負になる場合には先行アクセスカウンタを0で更新する(ステップS419)。こうして1クロックにおける動作を終了する。
なお、各マスタ選択部で使用するアクセス保証期間及びアクセス保証期間内に必要なアクセス回数(N)は、それぞれが接続されているリクエスト制限部内にあるパラメータ保持部で保持されているパラメータを用いる。
次に図5を用いて調停部140の動作を説明する。図5に示すように、調停部140は、アクセス要求を受けた場合に信号線11を介してアクセス要求を受け付けたかどうかを判断する(ステップS501)。信号線11を介してのアクセス要求であった場合には(ステップS501のYES)、プロセッサ110に対するアクセス許可信号を信号線13に出力する(ステップS502)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線11を介して受け付けたアクセス要求でない場合には(ステップS501のNO)、次にアクセス要求を信号線21を介して受け付けたかどうかを判断する(ステップS503)。信号線21を介してのアクセス要求であった場合には(ステップS503のYES)、マスタ111に対するアクセス許可信号を信号線23に出力する(ステップS504)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線21を介して受け付けたアクセス要求でない場合には(ステップS503のNO)、次にアクセス要求を信号線31を介して受け付けたかどうかを判断する(ステップS505)。信号線31を介してのアクセス要求であった場合には(ステップS505のYES)、マスタ112に対するアクセス許可信号を信号線33に出力する(ステップS506)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線31を介して受け付けたアクセス要求でない場合には(ステップS505のNO)、次にアクセス要求を信号線41を介して受け付けたかどうかを判断する(ステップS507)。信号線41を介してのアクセス要求であった場合には(ステップS507のYES)、マスタ113に対するアクセス許可信号を信号線43に出力する(ステップS508)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線41を介して受け付けたアクセス要求でない場合には(ステップS507のNO)、次にアクセス要求を信号線10を介して受け付けたかどうかを判断する(ステップS509)。信号線10を介してのアクセス要求であった場合には(ステップS509のYES)、プロセッサ110に対するアクセス許可信号を信号線50に出力する(ステップS510)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線10を介して受け付けたアクセス要求でない場合には(ステップS509のNO)、次にアクセス要求を信号線20を介して受け付けたかどうかを判断する(ステップS511)。信号線20を介してのアクセス要求であった場合には(ステップS511のYES)、マスタ111に対するアクセス許可信号を信号線51に出力する(ステップS512)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線20を介して受け付けたアクセス要求でない場合には(ステップS511のNO)、次にアクセス要求を信号線30を介して受け付けたかどうかを判断する(ステップS513)。信号線30を介してのアクセス要求であった場合には(ステップS513のYES)、マスタ112に対するアクセス許可信号を信号線52に出力する(ステップS514)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線30を介して受け付けたアクセス要求でない場合には(ステップS513のNO)、次にアクセス要求を信号線40を介して受け付けたかどうかを判断する(ステップS515)。信号線40を介してのアクセス要求であった場合には(ステップS515のYES)、マスタ113に対するアクセス許可信号を信号線53に出力する(ステップS516)。そしてステップS501に戻り以降の処理を実行する。
以上が調停部140の動作である。
最後に、図6を用いてリクエスト制限部の動作について説明する。
リクエスト制限部は、1クロック毎にプロセッサあるいはマスタからのアクセス要求があるかどうかを判断し(ステップS601)、ない場合には(ステップS601のNO)ステップS611以降の処理を実行する。アクセス要求があった場合には(ステップS601のYES)、アクセス要求を受けたアクセス頻度管理部は、自己で記憶しているアクセスカウンタがN未満であるかどうかを判定する(ステップS603)。ここで、Nは、リクエスト制限部のパラメータ保持部が保持している、プロセッサ又はマスタがアクセス保証期間内に必要なアクセス回数である。アクセスカウンタがN未満の場合には(ステップS603のYES)、アクセス頻度管理部は、マスク信号を出力しないのでリクエストマスク部は受け付けたアクセス要求信号をそのまま調停部140に出力する(ステップS605)。
リクエスト制限部は、出力したアクセス要求信号に対するアクセス許可を示すアクセス許可信号を調停部140を受け付けたかどうかを判定する(ステップS607)。アクセス許可信号を受け付けていない場合には(ステップS607のNO)、ステップS611に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には(ステップS607のYES)、リクエスト制限部のアクセス頻度管理部は、アクセスカウンタを1加算する(ステップS609)。そして、リクエスト制限部は、マスタ選択部に対して調停部140から受け付けたアクセス許可信号を出力する。
そしてアクセス保証期間が経過したかどうか、即ちアクセス保証期間のカウンタが10になっているかどうかを判断する(ステップS611)。アクセス保証期間のカウントが10になっていない場合には(ステップS611のNO)、1クロックにおける動作を終了する。アクセス保証期間のカウントが10になっていた場合には(ステップS611のYES)、アクセスカウンタを0にリセットする(ステップS613)。そして1クロックにおける動作を終了する。。
一方、アクセスカウンタがNであった場合には(ステップS603のNO)、アクセス頻度管理部は、リクエストマスク部に対してマスク信号を出力する(ステップS604)。当該マスク信号を受け付けたリクエストマスク部は、調停部140に対してアクセス要求信号を出力せず(ステップS606)、ステップS611以降の処理を実行する。
以上が1クロックにおけるリクエスト制限部の動作である。
次に、アクセス制御装置100における各種信号の状態を図7に示すタイミングチャートを用いて説明する。この図7に示すタイミングチャートは、本発明の特徴が現れる場合の信号線を流れる信号の状態や、タイマカウントの値などを示しており、ここで示す信号の状態は一つの具体例である。
図7の一行目の信号は、リクエスト制限部及びマスタ選択部がカウントしているアクセス保証期間のタイマカウントである。二行目は、プロセッサ110からのアクセス要求を示すアクセス要求信号を示している。三行目は、マスタ111からのアクセス要求を示すアクセス要求信号を示している。四行目は、マスタ112からのアクセス要求を示すアクセス要求信号を示している。五行目は、マスタ113からのアクセス要求を示すアクセス要求信号を示している。六行目は、マスタ選択部121及びリクエスト制限部131でカウントされるアクセスカウンタである。七行目は、リクエスト制限部131のアクセス頻度管理部が出力するマスク信号を示している。八行目は、リクエスト制限部130がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。九行目は、リクエスト制限部131がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十行目は、リクエスト制限部132がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十一行目は、リクエスト制限部133がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十二行目は、調停部140が出力するアクセス許可信号の出力先を示し、ここでは、それぞれのタイミングでどのプロセッサあるいはどのマスタに出力しているかを示している。十三行目は、調停部140が信号線51を介してマスタ111とマスタ選択部121に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部140が信号線52を介してマスタ112とマスタ選択部122に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部140が信号線53を介してマスタ113とマスタ選択部123に対して出力するアクセス許可を示すack信号でもある。十五行目は、マスタ選択部121でカウントされる先行アクセスカウンタの値を示している。そして十六行目は、マスタ選択部121でのプロセッサ110とマスタ111のどちらのアクセス要求を優先するかを示している。
時間t0において、プロセッサ110及びマスタ111〜113は、それぞれアクセス要求信号を出力している。プロセッサ110からのアクセス要求を受け付けてリクエスト制限部130は、リクエスト制限部130出力信号に示すように、時間t0〜t1にかけてアクセス要求を調停部140に出力する。同様に、マスタ111アクセス要求信号を受けて、リクエスト制限部131出力信号に示しているように、アクセス要求信号を時間t0〜t4にかけて調停部140に出力する。マスタ112アクセス要求信号を受けて、リクエスト制限部132出力信号に示しているように、アクセス要求信号を時間t0〜t6にかけて調停部140に出力する。マスタ113アクセス要求信号を受けて、リクエスト制限部133出力信号に示しているように、リクエスト制限部133は、アクセス要求信号を時間t0〜t9にかけて調停部140に出力する。
図7に示すように、各リクエスト制限部からの出力を受けて調停部140は自己で設定されている優先順位に従ってアクセス許可信号を出力する。調停部140は、時間t0〜t1にはプロセッサ110に対して、時間t1〜t4にはマスタ111に対して、時間t4〜t6にはマスタ112に対して、時間t6〜t9にはマスタ113に対してアクセス許可信号を出力している。本来マスタ112に対しては通常アクセス保証期間の10クロック中3クロック分のアクセスが許可されているが、マスタ112からのアクセス要求に対して2クロック分のアクセス許可が調停部140から出力されアクセスを行った時点でマスタ112からのアクセス要求はなくなったため、リクエスト制限部132出力信号も出力されない。その結果次に優先順位の高いマスタ113に対してアクセス許可信号が出力される。t9からのt10では、全マスタのリクエスト制限部出力信号が全てLowであるため、1クロック分の共有メモリにアクセスするためのリソースが空いていることになる。
ここで、時間t8からマスタ111からアクセス要求信号が出力されている。マスタ111は、時間t1〜t4にかけて共有メモリへの必要なアクセスを実行しているので、リクエスト制限部131を介してのアクセスはできない。このことは、時間t8〜t10においてリクエスト制限部131マスク信号がHighに設定されているために、リクエスト制限部131からは調停部140にアクセス要求信号が出力されていないことにより実現されている。信号線20から直接調停部140に対するアクセス要求が出力されており、その時点で、信号線11、21、31、41、50にはアクセス要求が出力されていない。よって、時間t9〜t10において、アクセスのためのリソースがあいており、かつ、マスタ111からの直接のアクセス要求より上位のアクセス要求がないため、調停部140はマスタ111に対して信号線51を介してアクセス許可信号を示すack信号を出力する。図7からアクセス許可信号の出力先においてもマスタ111(M1)が指定されていることがわかる。
信号線51を介してack信号を受けたマスタ選択部121は、先行アクセスカウンタを1加算する。図7に示すように時間t10から先行アクセスカウンタは1になっている。時間t10において、保証期間タイマはリセットされ、次のアクセス保証期間1〜10がカウントされる。
マスタ111は、時間t8以降時間t23までアクセス要求信号を出力し続けている。しかし、このアクセス要求信号は、マスタ選択部121により、リクエスト制限部には、時間t13以降時間t20まで出力されない。時間t13は、アクセスカウンタと先行アクセスカウンタの合計値が、マスタ111がアクセス保証期間内において共有メモリにアクセスしてよい回数である3と同値になったタイミングでもある。マスタ選択部121がマスタ111のアクセス要求をリクエスト制限部131に出力しないのは、先行アクセスカウンタが1以上で、アクセスカウンタと先行アクセスカウンタの合計値がアクセス許可回数と同値になるときには、プロセッサ100のアクセスを優先させるために、マスタ111のアクセス要求を出力しない構成になっているためである。
一方、プロセッサ100は時間t10〜t11と時間t15〜t16においてアクセス要求を出力している。t10〜t11のプロセッサ110のアクセス要求は通常通りリクエスト制限部130を介して調停部140に出力されるが、t15〜t16のアクセス要求に関しては、リクエスト制限部130出力信号にも示すように、マスクがかけられ出力されていない。
ところで、プロセッサ110からのアクセス要求は、リクエスト制限部130だけでなく、各マスタ選択部と調停部140にも出力されている。時間t15〜t16において、マスタ選択部121においては先行アクセスカウンタが1になっている。するとマスタ選択部121は、プロセッサのアクセス要求を優先して、リクエスト制限部131に出力する。リクエスト制限部131は、まだ、自己に設定されているアクセスカウンタが3になっていないので、マスタ選択部121から受け取ったプロセッサ110のアクセス要求を調停部140に出力する。時間t10以降においては、リクエスト制限部132からもマスタ112からのアクセス要求が出力されており、時間t13〜t15にかけては調停部140もマスタ112に対するアクセス許可を出していたが、時間t15において、より上位のアクセス権を有するリクエスト制限部131からアクセス要求が出力されたので、調停部140はアクセス許可をリクエスト制限部131を介してマスタ選択部121に出力する。調停部140からのアクセス許可信号を受け取ったマスタ選択部121は、時間t15においてプロセッサを選択しているため、プロセッサ110にアクセス許可信号を出力し、マスタ111には、アクセス許可信号を出力しない。この動作により、時間t15〜t16では、プロセッサがアクセス許可を受けたことになる。
調停部140からのアクセス許可信号を受けてリクエスト制限部131はアクセスカウンタを1加算し、アクセス頻度管理部はマスク信号を出力するようになり、以降時間t20まではリクエスト制限部131からはアクセス要求信号が出力されないことになる。時間t16からはリクエスト制限部132から出力されるマスタ112のアクセス要求が受け付けられ、調停部140はマスタ112に対してアクセス許可を出し、時間t17からはリクエスト制限部130、131、132からアクセス要求が出力されないので、リクエスト制限部133を介して出力されたマスタ113のアクセス要求が受け付けられる。
そして時間t20からは次のアクセス保証期間が開始される。なお、ここでは実際のプロセッサあるいはマスタの共有メモリへのアクセスについては、特に記述しなかったが、プロセッサあるいはマスタは個々のアクセス許可信号12、22、32、42を受け取るとアクセスを実行している。
図7に示したように、時間t9〜t10にかけてマスタ111は、本来アクセス保証期間である10クロック内においては3回までのアクセスしか認められていないが、共有メモリへのアクセス用のリソースが空いている場合に、アクセス要求をリクエスト制限部131を通さない経路で通常のレートを超えたアクセスを実現している。そしてこの時間t9〜t10においてマスタ111が実行したアクセスは通常だと次のアクセス保証期間t10〜t20の間において実行するはずだったものであるので、周期的に実行するアクセスにおいて余裕ができる。そして、この余裕がある場合に、本来は10クロック中1回しか行われないプロセッサ110のアクセス要求を、時間t15〜t16に示したようにマスタ選択部121が出力し、それを受けてリクエスト制限部131がプロセッサ110のアクセス要求を調停部140に出力する。従来では、時間t15〜t16においてはプロセッサ110のアクセス要求は通らず、時間t20まで待つことになるのが、本発明においては、マスタ111のアクセス要求の代わりにリクエスト制限部131を通してアクセス要求を出力し、調停部140からアクセス許可を受けているので、従来よりも、プロセッサ110からのアクセス要求に対する即応性が高められていると言える。
<実施の形態2>
実施の形態2においては、実施の形態1とは異なり、リクエスト制限部を各マスタあるいはプロセッサに対応するようにマスタとプロセッサの合計数と同数のリクエスト制限部で構成するのではなく、複数のマスタあるいはプロセッサを統括してアクセスを1のリクエスト制限部で制限する場合の実施形態を示す。
<構成>
まず、実施の形態2に係るアクセス制御装置について、図8に示す機能ブロック図を用いて説明する。
図8に示すように、アクセス制御装置800は、マスタ選択部821と、統括リクエスト制限部830と、調停部840とを含んで構成される。プロセッサ810は、アクセス制御装置800の各部と信号線60、62を介して接続されている。また、マスタ811は、アクセス制御装置800と信号線70、72を介して接続されている。
マスタ選択部821は、実施の形態1で示したマスタ選択部121と同様の機能を果たすため、説明を割愛する。また調停部840についても、アクセス制御装置800に接続されているマスタの数は異なるものの、実施の形態1で示した調停部140とほぼ同様の機能を果たすため、説明を割愛する。
本実施の形態の特徴は統括リクエスト制限部830にあり、その詳細な内部構成を示したブロック図を図9に用意した。図9に示すように統括リクエスト制限部830は、パラメータ保持部910と、アクセス頻度管理部911と、リクエストマスク部912と、パラメータ保持部920と、アクセス頻度管理部921と、リクエストマスク部922と、借入パラメータ保持部923と、アクセス権借入制御部930とを含んで構成される。統括リクエスト制限部830の各部は、図9に示すように各信号線で接続されている。
パラメータ保持部910は、プロセッサ810のアクセス保証期間、アクセス保証期間における許容アクセス頻度情報をプロセッサ810から受け取り、保持し、アクセス頻度管理部911に出力する機能を有する。
アクセス頻度管理部911は、調停部840から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部930に出力する機能とを有する。
リクエストマスク部912は、アクセス権借入制御部930からのマスク信号を受けていない場合に、プロセッサ810からのアクセス要求信号をそのまま調停部840に出力し、マスク信号を受けている場合に、プロセッサ810からのアクセス要求信号は、調停部840に出力しない機能を有する。
パラメータ保持部920は、マスタ811のアクセス保証期間、アクセス保証期間における許容できるアクセス頻度を示す許容アクセス頻度情報をマスタ811から受け取り保持し、アクセス頻度管理部921に出力する機能を有する。
アクセス頻度管理部921は、調停部840から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部930に出力する機能とを有する。
リクエストマスク部922は、アクセス権借入制御部930からのマスク信号を受けていない場合に、マスタ811からのアクセス要求信号をそのまま調停部840に出力し、マスク信号を受けている場合に、マスタ811からのアクセス要求信号は、調停部840に出力しない機能を有する。
借入パラメータ保持部923は、プロセッサ810及びマスタ811のアクセス保証期間における許容アクセス頻度情報、アクセス権の借入を行うことができる最大期間の情報、一度アクセス権を借入してから次に借入できるまでの時間情報のパラメータを外部からユーザによって設定され、保持する機能を有し、それらの情報をアクセス権借入制御部930に出力する機能を有する。
アクセス権借入制御部930は、借入パラメータ保持部から受け取る借入パラメータと、アクセス頻度管理部911とアクセス頻度管理部921から受け取るアクセス頻度の情報に基づいて、リクエストマスク部912とリクエストマスク部922にマスク信号を出力する機能を有する。アクセス権借入制御部930がアクセス権の貸し借りの詳細な動作については、図10に示した状態遷移図を用いて後述する。
<動作>
では図10に示した状態遷移図について説明する。
まず、図10において示す各状態とその遷移条件について簡単に説明し、その後に、この状態遷移図に即してリクエスト制限部830の動作を説明する。
アクセス権借入制御部930は、図10に示すレベル1〜4の状態を有する。各レベルの状態は以下の状態を示している。
レベル0は、アクセス権の貸し借りがなく、各マスタが予め設定されたアクセス頻度内で動作している状態である。
レベル1は、プロセッサ810のアクセスがマスタ811からアクセス権を借入して設定された自己のアクセス頻度以上のレートでアクセスを実行している状態である。レベル1の場合は、マスタ811のアクセスは行われない。
レベル2は、プロセッサ810が借入したアクセス権を借入先のマスタに返却している状態である。レベル2の場合は、プロセッサ810のアクセスは行われない。
レベル3は、プロセッサ810が借入したアクセス権を全て返却済みの状態で、かつ、プロセッサ810がアクセスを実行する場合にマスタからアクセス権を借入できない状態である。
そして、各レベルにおいて、別のレベルに移行する条件は以下の通りである。
レベル0からレベル1に移行するための条件1は、プロセッサ810が予め設定されたアクセス頻度以上のアクセスを行うことである。当該条件1は、アクセス頻度管理部911から出力されるアクセス頻度情報に基づいて検出される。
レベル1からレベル2に移行するための条件2は、プロセッサ810が、アクセス権の借入を行ってから、アクセス権の借入を行うことができる最大期間が経過することである。当該条件2における、最大期間の経過は、アクセス権借入制御部930でカウントするクロックカウントと、借入パラメータ保持部923に基づいて検出される。
レベル2からレベル3に移行するための条件3は、プロセッサ810が借入したアクセス権をすべて返却することである。当該条件3については、アクセス権借入制御部930で、プロセッサ810が借入しているアクセス権に相当するアクセスをマスタ811が実行したかどうかによって検出される。
レベル3からレベル0に移行するための条件4は、プロセッサ810がアクセス権の借入を行ってから、再び借入可能になるまでの時間が経過することである。当該条件4は、アクセス権借入制御部930が、借入パラメータ保持部923から出力された当該時間をクロックカウントにカウントすることにより検出する。
なお、レベル2からレベル0に移行する破線で示した条件3は、レベル4の状態を設定しない場合を示しており、この場合には、上記条件3の条件に従って、レベル2からレベル0に移行する。
では、図10の状態遷移図に従って、アクセス権借入制御部930の動作を説明する。
アクセス権借入制御部930はデフォルトではレベル0の状態にある。この状態においては、リクエストマスク部912に対するマスク信号は常にLowが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
レベル1の状態においては、アクセス権借入制御部930は、リクエストマスク部922に対するマスク信号は常にHiに設定されており、信号線77に出力される。一方、リクエストマスク部912に対するマスク信号については、アクセス頻度管理部911からのアクセス頻度情報と、借入パラメータ保持部923からのプロセッサ810の許容アクセス頻度とアクセス権の借入が最大借入回数の総和とを比較し、アクセス頻度情報が当該総和を超える場合には信号線67にHiが出力され、超えない場合には信号線67にはLowが出力される。
レベル2の状態においては、アクセス権借入制御部930は、リクエストマスク部912に対するマスク信号は常にHiが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
レベル3の状態においては、アクセス権借入制御部930は、リクエストマスク部912に対するマスク信号は、アクセス頻度管理部911から出力されたアクセス頻度情報と借入パラメータ保持部923から出力されたプロセッサ810のアクセス許容頻度とを比較し、アクセス頻度がアクセス許容頻度を超える場合には、Hiが信号線67に出力され、アクセス頻度がアクセス許容頻度を超えない場合には、Lowが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力されたマスタ811の許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
以上が統括リクエスト制限部830の動作であるが、本発明においては、アクセス制御装置800には、マスタ選択部821が備わっており、マスタ811が一定レート以上でのアクセスを実行していて、先行アクセスカウンタが1以上の場合には、マスタ選択部821は、プロセッサ810のアクセス要求を優先して出力するので、統括リクエスト制限部830には、プロセッサ810からのアクセス要求のみが入力されることになるので、必ずプロセッサ810のアクセス要求が通り、プロセッサ810による共有メモリへのアクセスが実行されることになる。
また、プロセッサのアクセスが発生した際に、マスタ選択部821のマスタの先行アクセスカウンタが0の場合であっても、統括リクエスト制限部830が、マスタのバンド幅が保証できる範囲内で、マスタのアクセス権をプロセッサに割り振る制御を実行するので、調停部840にはプロセッサのアクセスが優先して出力される構成にすることができる。
即ち、本実施の形態においては、プロセッサのアクセスが発生した際に、その直前に、マスタが先行アクセスを実行しており、所定レートでのアクセスに余裕がある場合には、マスタ選択部821において、プロセッサのアクセスが優先され、統括リクエスト制限部830には、プロセッサのアクセス要求が出力されて、プロセッサのアクセスが実行されることになる。更には、マスタが先行アクセスを実行していなくても、統括リクエスト制限部830において、マスタの所定レートでのアクセスを保証できる範囲内において、マスタに割り当てられているリソースを一時的に、プロセッサに割り振ることにより、プロセッサのアクセス要求を出力する構成になっており、マスタ選択部821とあわせて、2重の意味でプロセッサのアクセス要求に対する即応性を高められる。
<補足>
上記実施の形態に基づき、本発明に係るアクセス制御装置について説明してきたが、アクセス制御装置の実施の形態はこれに限るものではないことは勿論である。以下、その変形例について説明する。
(1)上記実施の形態において、共有メモリ、プロセッサ、及び各マスタはアクセス制御装置100に含まない構成としたが、これらはアクセス制御装置100に含まれていてもよい。
(2)上記実施の形態1においては、プロセッサ1台、マスタ3台の構成を、実施の形態2においては、プロセッサ1台、マスタ1台の構成を示したが、この台数はその一例に過ぎず、プロセッサ、マスタ共に何台あってもよく、例えば、プロセッサ2台にマスタ4台といった構成もありうる。この場合、各マスタに接続されるマスタ選択部には、2つのプロセッサ両方からのアクセス要求をうける信号線が接続されることになる。
(3)上記実施の形態においては、各マスタ選択部は、プロセッサとマスタとの選択を行うとしたが、プロセッサに替えてグラフィックスのような出来高性能を必要とするマスタとの選択としてもよい。これはグラフィックスの処理などを実行するマスタにおいては、共有メモリへのアクセスを行えば行うほど処理効率が高まるので、そのようなマスタとの選択をマスタ選択部に実行させ、リソースの分配の優先度を高める構成にすると、例えばDVDプレーヤなどにおいては、処理効率を高めることができる。
(4)上記実施の形態のマスタ選択部において、先行アクセスにより確保されたリソースを使用できるプロセッサや他のマスタをレジスタにより選択可能な構成としてもよい。具体的には、個々のプロセッサあるいはマスタに対応したon/off切替レジスタを設け、マスタ選択部には、本来アクセスを実行するマスタは直接アクセス要求信号を入力し、その他のプロセッサあるいはマスタは、自己のアクセス要求に、各々の前記on/offレジスタ切替レジスタに設定された値でマスクをかけた信号を入力させてもよい。
この構成によるとレジスタの設定値により、アクセス要求に対する即応性を高めるマスタを任意に選択できるため、例えばシステムの実行アプリケーションの変化により、本機能の効果を得られるマスタを切り替えるといったことが可能となる。具体的には、例えば、EPG表示時にはグラフィックマスタに割り当て、Java(登録商標)アプリ動作時にはCPUに割り当てるといった具合である。
(5)上記実施の形態においては、先行アクセスカウンタが1以上の場合にプロセッサのみが割り込んでアクセスを実行することができる構成にしたが、第1のマスタが、第二のマスタのアクセスに割り込んでアクセスを実行することとしてもよい。
(6)上記実施の形態においては、リクエスト制限部のパラメータ保持部は、各パラメータを予め保持している構成としたが、これは別にアクセス制御装置全体を制御するCPUから受け取ることとしてもよいし、あるいはアクセス制御装置にユーザからの入力操作を受け付ける操作パネル等を設け、ユーザがパラメータ保持部にパラメータを入力する構成としてもよい。
また、借入パラメータ保持部についても、外部からユーザによって入力されることとしたが、これもアクセス制御装置全体を制御するCPUから受け取ることとしてもよい。
更に、パラメータ保持部と借入パラメータ保持部を1つの保持部として各パラメータを保持するようにしてもよい。
(7)上記実施の形態においては、アクセス保証期間を10クロックとしたが、これは何クロックでもよく、マスタにとってXクロック中、Yクロック分のアクセスを実行する場合のXを規定するためのものであればよく、例えば、100クロックとかでもよい。また、各マスタによって、アクセス保証期間は異なるものであってもよく、例えば、マスタ1のアクセス保証期間を20クロック、マスタ2のアクセス保証期間を50クロックなどと設定してもよい。
また、上記実施の形態においては、各マスタのアクセスのレートは10クロック中3回と規定されていたが、これは2回でも5回とかでもよい。さらに、各マスタのアクセス保証期間において、必要とするアクセス回数は、実行する作業によって異なってくるので、各マスタによってレートが異なる構成になっていてもよい。
(8)上記実施の形態においては、アクセス回数を用いて、各マスタの共有メモリへのアクセスを制御したが、アクセス回数ではなく、マスタが共有メモリにアクセスし、データを転送した場合における転送バイト数を単位としてより正確なレート制御を行ってもよい。その場合、リクエスト制限部のアクセス頻度管理部は、接続マスタもしくはプロセッサからのアクセス要求に対する転送バイト数を受け取る構成としてもよい。
(9)上記実施の形態においては、パラメータ保持部は、リクエスト制限部内に設ける構成にしたが、リクエスト制限部外に独立して設けて、パラメータ保持部内に保持されるパラメータを必要とする制御ブロックが参照する構成にしてもよい。
(10)アクセス制御装置の各機能部は、1又は複数のLSI(Large Scale Integration)、VLSI(Very Large Scale Integration)により実現されてよく、一のLSIが各機能部全ての機能を実行できるシステムLSIであってもよい。
(11)本発明は、上記実施の形態に示したプロセッサのアクセス要求に対する即応性を高めるための方法であってもよく、当該方法をコンピュータに実行させるための処理手順を示したコンピュータプログラムであってもよい。
本発明に係るアクセス制御装置は、BDプレーヤなど、複数の作業を実行する装置において、ユーザからの突発的な要求に対するレスポンスの即応性を高めた装置として活用することができる。
本発明は、共有メモリに複数のマスタがアクセスする場合におけるアクセス制御を実行するアクセス制御装置に関し、特にアクセス要求の発生が予測困難なマスタのアクセス要求に対する即応性を高める技術に関する。
所定期間内に一定レートのアクセスを保証する必要があるマスタと、メモリへのアクセス要求の頻度が不定期で、予測困難なマスタ(以下、プロセッサという)が、同一のメモリを共有するシステムがある。このようなシステムの場合、マスタとプロセッサのメモリへのアクセス競合を防ぐために、マスタとプロセッサの調停を行う回路を備える。このような調停回路においては、マスタとプロセッサのアクセスに関する優先順位を定めてアクセス制御を行うことが多い。以下の特許文献1及び特許文献2には、このようなシステムにおいて、プロセッサのアクセス要求に対する即応性を改善する技術が開示されている。
例えば特許文献1では、マスタに対しては所定頻度でのアクセスのみを許し、通常はプロセッサのアクセスを優先する技術が開示されている。また、特許文献2には、通常はプロセッサのアクセス優先順位を低く、マスタのアクセス優先順位を高く設定するが、プロセッサのアクセス要求が発生し、共有メモリへのアクセスが通った場合に、その次のプロセッサのアクセス要求に対しては、他のマスタよりも優先順位を高くすることで、プロセッサのアクセス要求に対する即応性を高める技術が開示されている。
日本国特許公開2000−207355号公報 日本国特許公開2002−304368号公報
ところが、上記特許文献1のように周期的にアクセスを制御した場合に、突発的にアクセス要求が発生するタイプのプロセッサからのアクセス要求については、周期的なアクセス制御を必要とするマスタのアクセスの合間に対処することになる。マスタに割り当てられている時間帯においてプロセッサからのアクセス要求が発生した場合には、そのアクセス要求は遅延することとなり、アクセス要求に対する即応性に問題があるといえる。また、特許文献2に示した技術の場合においては、プロセッサのアクセス要求を優先したためにマスタの一定レートのアクセスを保証できない可能性がある。
そこで、上記問題に鑑みて、本発明においては従来よりもプロセッサからのアクセス要求に対する即応性を高めることができるアクセス制御装置を提供することを目的とする。
上記課題を解決するため、本発明は、複数のマスタの共有メモリへのアクセスを制御するアクセス制御装置であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備えることを特徴としている。
上述のような構成によって、第1アクセス手段は、一定レートでアクセスを実行する第1マスタに対して、共有メモリにアクセスするためのリソースが余っており、次のアクセス要求がある場合には、本来設定されているレートを超えてアクセスを実行する。すると第1マスタについては、共有メモリに対して本来よりも過剰にアクセスを実行していることになり、周期的に実行しなけらばならないアクセスについてマージンができることとなる。そこで、そのマージンがある状態で、第2マスタからのアクセス要求があった場合に、第1マスタに割り当てられているリソースを第2マスタに割り当てることで第2マスタに対するアクセス要求への即応性を高めることができる。こうすることで第2マスタが共有メモリに対するアクセス要求の発生が予測不可能なプロセッサの場合に、プロセッサのアクセス要求に対して従来よりも即応性を高めることができる。
また、前記アクセス制御装置は、更に、前記第1マスタが前記一定レート以上でのアクセスを実行していた場合に一定レートを超えて前記第1マスタが前記共有メモリにアクセスした回数をカウントする先行アクセスカウント手段を備え、前記第2アクセス手段は、前記先行アクセスカウント手段でカウントされている回数が1以上の場合に、前記第2マスタを前記共有メモリにアクセスさせることとしてもよい。
これにより、アクセス制御装置は、一定レート以上でのアクセスを実行していることをアクセス回数をカウントし、このアクセスカウンタで、第2マスタのアクセス要求を通すかどうかを判断することができるようになる。
また、前記先行アクセスカウント手段は、前記第2アクセス手段が、前記第2マスタに前記共有メモリにアクセスさせた場合に、カウントしているアクセス回数をデクリメント、もしくは0にリセットすることとしてもよい。
これにより、アクセス制御装置は、第2マスタの共有メモリへの過剰なアクセスが発生することを防ぎ、第1マスタの一定レートでの共有メモリへのアクセスを保証することができる。
また、前記アクセス制御装置は、更に、前記一定レートを指定するためのレートパラメータを保持するパラメータ保持手段を備え、前記第1アクセス手段は、前記パラメータ保持手段に保持されている一定レートに基づいて、前記第1マスタに前記一定レートのアクセスを実行させることとしてもよい。
このパラメータ保持手段を備えることにより、第1アクセス手段は、一定レートのアクセスを間違えることなく保証でき、また、パラメータ保持手段の保持するパラメータをユーザが自由に設定できる構成にすれば、データアクセスを制御する装置としての汎用性が高まる。
また、前記アクセス制御装置は、更に、前記第1のマスタ及び前記第2のマスタは、前記アクセス用のリソースを共有し、共有したリソースの範囲内で、前記第1のマスタは前記第2のマスタに前記共有メモリへのアクセス権を貸し借りさせて前記共有メモリにアクセスさせるアクセス統括手段を備えることとしてもよい。
このアクセス統括手段を備えることにより、第1マスタのアクセスと第2のマスタのアクセスにおいて、リソースの貸し借りを行うことができ、更に第2マスタのアクセス要求に対する即応性を高めることが可能となる。
また、前記アクセス制御装置は、更に、前記第1のマスタ及び第2のマスタのアクセス保証期間の情報と、アクセス保証期間許容できる最大のアクセス数を表す許容アクセス頻度情報と、アクセス権の借り入れを行うことができる最大期間の情報と、一度アクセス権を借入してから次に借入できるまでの時間情報とを保持する借入パラメータ保持手段を備え、前記アクセス統括手段は、前記借入パラメータ保持手段に保持されている各情報に基づいて、アクセス権の貸し借りを実行し前記共有メモリにアクセスさせることとしてもよい。
この借入パラメータ保持手段を備えることにより、ユーザが自由にそのパラメータを設定できる構成にすれば、データアクセスを制御する装置としてその汎用性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御集積回路であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備えることとしてもよい。
この集積回路により、複数のマスタからのアクセス要求を制御し、第1マスタが一定レート以上でのアクセスを実行していた場合に、第2マスタのアクセス要求信号を優先して通すことができるようになるので、第2マスタがなるべくの即応性を求められるプロセッサの場合に、その即応性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御方法であって、第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセスステップと、前記第1アクセスステップにおいて前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセスステップにおいて前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセスステップとを含むこととしてもよい。
当該方法を実行することにより、複数のマスタ間において、即応性を求められるマスタに対してのアクセスを、他のマスタが本来一定レートでアクセスを行うところを当該レートを超えてアクセスを実行していた場合に、実行することができるので、即応性を求められるマスタのアクセスのタイミングを遅延することなく実行することができる。
以下、本発明の一実施形態であるアクセス制御装置について図面を用いて説明する。
<概要>
図1に示すような複数のアクセス装置が共有メモリにアクセスする場合において、アクセス競合を防ぐために、調停する装置がある。
図1においてプロセッサとは、共有メモリに対するアクセス要求がいつ発生するか予測がつきにくいアクセス装置である。一方、マスタはあるアクセス保証期間内において、ある一定レートでの共有メモリに対するアクセスを保証しないといけないアクセス装置である。具体例をあげると、例えばBD(Blu-ray Disc)プレーヤで、プロセッサはユーザからのリモコン操作に対する応答を実行し、マスタは例えば、動画のデコードを実行するという具合である。
こういう複数のアクセス装置が共有メモリにアクセスする場合に従来においては、図2(a)に示すように、各マスタがアクセスを実行する時間帯をそれぞれのマスタに割り振って制御することがアクセス競合を回避する一手法であった。図2(a)の時間T0〜T4に示す期間が、アクセス保証期間TCであり、プロセッサ(P)、マスタ(M1)、マスタ(M2)、マスタ(M3)が順にアクセスを実行していることがわかる。
しかし、各マスタに設定するレートはある程度余裕をもって設けられるため必ずしもアクセス保証期間内に保証される時間帯全てを使ってアクセスしないこともある。例えば、時間T4〜T9で示すアクセス保証期間TCの時間T7〜T8に示すように、M2が共有メモリにアクセスする時間帯においてM2からのアクセス要求がないため、空白期間ができてしまっているので無駄が発生している。
そこで、本発明においては、図2(b)に示すように、アクセス保証期間内TC内において、アクセスのためのリソースがあいている状態で、アクセス要求が発生した場合には、マスタは、自己に設定されたレート以上のアクセスを実行する。こうすると一定レートで行っている作業に関して余裕ができる。図2(b)の場合で示すと、時間T7〜T8において、本来時間T10〜T13においてなされるM1のアクセスが先行して行われているので、時間T9以降において、M1についてはアクセスに関するマージンがあることになる。すると、M1のアクセス保証期間の一定レートでのアクセスに用いるリソースを使ってプロセッサからのアクセス要求を通すことで、プロセッサからのアクセス要求に対する即応性を高めることができる。
なお、ここで、従来だとT9以降から行うアクセスのうち、先行するアクセスをM1が行っていたが、これは必ずM1である必要はなく、M2、M3の何れでもアクセス要求があるならどれでもかまわない。また、図面上、従来の場合と比較しやすくするために、時間T7〜T8に、本来時間T10〜T13においてM1が行うアクセスを、実行するような図面にしたが、これは、通常、T6からは本来M2のアクセスが実行され、M3のアクセスが実行され、その後に行うのが通常の制御である。
<実施の形態1>
<構成>
図1は、本発明に係るアクセス制御装置の機能構成を示した機能ブロック図である。
図1に示すように、アクセス制御装置100は、プロセッサ110と、マスタ111、マスタ112、マスタ113の共有メモリへのアクセスを制御する装置であって、マスタ選択部121、122、123と、リクエスト制限部130、131、132、133と調停部140とを含んで構成される。
上述の第1マスタは、マスタ111、マスタ112、マスタ113が該当し、第2マスタはプロセッサ110が該当する。第1マスタがマスタ111の場合に第1アクセス手段において、一定レートのアクセスのためのリソースの確保はリクエスト制限部131が行い、一定レート以上のアクセスについては、リクエスト制限部131を通さずにマスタ111から直接調停部140に対して直接出力されるアクセス要求に対するアクセス許可によって実現される。そして、第2アクセス手段は、マスタ選択部121とリクエスト制限部131と調停部140の組み合わせによって実現される。また、上述の先行アクセスカウント手段は、第1マスタがマスタ111の場合は、マスタ選択部121によって実現される。
プロセッサ110は、共有メモリへのアクセス要求が不定期かつ不規則に発生する装置であり、図に示すように信号線10と12を介してアクセス制御装置100の各部と接続されている。
マスタ111は、あるアクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべきアクセス装置であり、マスタ選択部121及び調停部140と信号線20、22を介して接続されている。
マスタ112は、アクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部122及び調停部140と信号線30、32を介して接続されている。
マスタ113は、アクセス保証期間TC内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部123及び調停部140と信号線40、42を介して接続されている。
ここでアクセス保証期間TCは各マスタ別に設定されるが、本実施の形態においては、簡略化のために、全てのマスタ共通で10クロックとした場合を例に説明する。
マスタ選択部121は、プロセッサ110とリクエスト制限部131と調停部140と接続されており、マスタ112からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部131に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部121は、マスタ111に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、リクエスト制限部131を通して許可されたアクセスの回数(以降アクセスカウンタともいう)を調停部140から受け付けたアクセス許可信号23に基づいてカウントする機能を有する。また、リクエスト制限部131を通さずに許可されたアクセス回数(以降先行アクセスカウンタともいう)を調停部140からのアクセス許可信号51に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ111のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ111からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ111からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部131に出力する。また、リクエスト制限部131を介して、プロセッサ110に対するアクセス許可信号を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ111のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
マスタ選択部122は、プロセッサ110とリクエスト制限部132と調停部140と接続されており、マスタ112からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部132に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部122は、マスタ112に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、アクセスカウンタを調停部140から受け付けたアクセス許可信号33に基づいてカウントする機能を有する。また、マスタ112の先行アクセスカウンタを調停部140からのアクセス許可信号52に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ112のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ112からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ112からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部132に出力する。また、リクエスト制限部132を介して、プロセッサ110に対するアクセス許可信号35を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ112のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
マスタ選択部123は、プロセッサ110とリクエスト制限部133と調停部140と接続されており、マスタ113からのアクセス要求とプロセッサ110からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部133に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部123は、マスタ113に設定されるアクセス保証期間である10クロックをカウントする機能を有する。また、アクセスカウンタを調停部140から受け付けたアクセス許可信号43に基づいてカウントする機能を有する。また、マスタ113の先行アクセスカウンタを、調停部140からのアクセス許可信号53に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが1以上で、アクセスカウンタとの合計がマスタ113のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ113からのアクセス要求を止めて、いつでもプロセッサ110からのアクセス要求を通せるようにし、プロセッサ110からのアクセス要求を受けた場合には、マスタ113からのアクセス要求に替えてプロセッサ110からのアクセス要求をリクエスト制限部133に出力する。また、リクエスト制限部133を介して、プロセッサ110に対するアクセス許可信号45を調停部140から受け付けた場合には、先行アクセスカウンタを1減算する機能を有する。さらに、アクセス保証期間である10クロックが経過する毎に、先行アクセスカウンタから、マスタ113のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを0にリセットする。ただし、先行アクセスカウンタが負数となる場合は、0にリセットする。
リクエスト制限部130は、プロセッサ110のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、プロセッサ110からのアクセス要求を調停部140に対して送出するかどうかを判定し、送出する機能を有する。ここでは、リクエスト制限部130は、プロセッサ110からのアクセス要求を10クロック中に1クロックの割合で、アクセス要求を調停部140に出力する。それ以外のタイミングでは、アクセス要求をマスクする、即ち調停部140に出力しない。なお、ここでプロセッサは10クロックに1回の割合でアクセスするとしたが、プロセッサからのアクセス要求についてはアクセス保証期間というものは特に設定する必要はなく、常にリクエスト制限部130においてアクセス要求をマスクする制御を行ってもよい。その場合、他のマスタが必要とするレートの残りのリソースをプロセッサに割り当てることになる。
リクエスト制限部131は、マスタ111のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ112からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部131は、1アクセス保証期間を10クロックとして管理し、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ112の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部131は出力したアクセス要求に対する調停部140からのアクセス許可信号23の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部131は、調停部140からのアクセス許可信号23をマスタ選択部121に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ111に対するものである場合がある。
リクエスト制限部132は、マスタ112のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ112からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部132は、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ112の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部132は出力したアクセス要求に対する調停部140からのアクセス許可信号33の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部132は、調停部140からのアクセス許可信号33をマスタ選択部122に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ112に対するものである場合がある。
リクエスト制限部133は、マスタ113のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ113からのアクセス要求を調停部140に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部133は、10クロック中3回調停部140からのアクセス許可信号を受けるまで、マスタ113の共有メモリへのアクセスを出力し、10クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部140に出力しない。リクエスト制限部133は出力したアクセス要求に対する調停部140からのアクセス許可信号43の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部133は、調停部140からのアクセス許可信号43をマスタ選択部123に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ110に対するものである場合と、マスタ113に対するものである場合がある。
リクエスト制限部については、より詳細なブロック図を図3に示した。ここではリクエスト制限部130について説明し、その他のリクエスト制限部については、略同一の構成を有するため、説明を割愛する。
図3に示すように、リクエスト制限部130は、パラメータ保持部310と、アクセス頻度管理部320と、リクエストマスク部330とを含んで構成される。
パラメータ保持部310は、各マスタの保証レートを決めるアクセス保証期間の値と、アクセス保証期間内に必要なアクセス回数とを保持し、これらのパラメータを信号線311を介してアクセス頻度管理部320に出力する機能を有する。ここでは、アクセス保証期間内に必要なアクセス回数は1であり、アクセス保証期間は10である。
アクセス頻度管理部320は、リクエスト制限部130を通してアクセスが実行された回数をカウントする機能を有する。具体的には、調停部140から信号線13を介してアクセス許可信号を受け取るたびに、アクセスカウンタを1加算する。そして、信号線10を介してアクセス要求信号を受け取った場合に、アクセスカウンタが3以上の場合には、リクエストマスク部330に対してアクセスが許可できないことを示すために信号線321の電位をHiレベルにすることにより通知する。また、アクセス頻度管理部320は、アクセス保証期間の10クロックもカウントしており、10クロック経過するごとにアクセスカウンタを0にリセットする機能も有する。
リクエストマスク部330は、信号線321を介してアクセス頻度管理部320から、受け取ったマスク信号に基づいて、調停部140に対してアクセス要求を出力する機能を有する。具体的には、信号線321の電位がLowレベルである場合には、リクエストマスク部330は、信号線10を介して受け付けたプロセッサ110からのアクセス要求信号をそのまま調停部140に出力する。信号線321の電位がHiレベルである場合には、リクエストマスク部330は、調停部140にはアクセス要求信号を出力しない。
調停部140は、プロセッサ110、マスタ111、112、113の各アクセス装置からの共有メモリへのアクセス要求を受けて、各アクセス要求を所定の基準に基づいて、アクセスを実行する順序を調停する機能を有する。基本的には、調停部140は、信号線11、21、31、41、10、20、30、40の順で受け付けたアクセス要求の順でアクセスを許可する。上位のアクセス要求がある場合には、下位のアクセス要求は待たせる。また、調停部140は、アクセス要求を許可するプロセッサ又は、マスタに対して、アクセスを許可することを示すアクセス許可信号を出力する機能を有する。なお、リクエスト制限部から出力されたアクセス要求に対しては、そのリクエスト制限部に対してアクセス許可信号を出力し、リクエスト制限部からアクセス要求を受け取っていない場合には、直接プロセッサ又はマスタにアクセス許可信号を信号線50〜53を用いて出力する。さらに、リクエスト制限部を介さないアクセス要求で、マスタからのアクセス要求に対してアクセス許可信号を出力する場合には、そのマスタに対応するマスタ選択部に対してもアクセス許可信号を出力する。
以上がアクセス制御装置100の各部の機能の説明である。
<動作>
ここで、本実施の形態のアクセス制御装置のマスタ選択部の動作を図4に示すフローチャートを用いて説明する。ここで示すマスタ選択部の動作は、1クロックの動作である。また、マスタ選択部121を例に動作を説明し、その他のマスタ選択部については、マスタ選択部121とほぼ同様の動作を実行するため説明を割愛する。
まず、マスタ選択部121は、自己内でカウントしている先行アクセスカウンタが0あるかどうかを判定する(ステップS401)。なお、先行アクセスカウンタの初期値は0である。先行アクセスカウンタが0である場合には(ステップS401)、次にマスタ選択部121は、マスタ111からのアクセス要求があるかどうかを信号線20からの入力があるかどうかで判定する(ステップS403)。マスタ111からのアクセス要求がない場合には(ステップS403のNO)、ステップS417に移行し、以降の処理を実行する。マスタ111からのアクセス要求があった場合には(ステップS403のYES)、次にアクセスカウンタと先行アクセスカウンタの値の和がN未満であるかどうかを判定する(ステップS405)。ここでNは、各マスタのアクセス保証期間内に必要なアクセス回数であり、本実施の形態においては、Nは3となる。アクセスカウンタと先行アクセスカウンタの値の和がN未満である場合には(ステップS405のYES)、マスタ選択部121は、リクエスト制限部にマスタ111のアクセス要求を出力する(ステップS407)。アクセスカウンタと先行アクセスカウンタの値の和がN未満でない場合には(ステップS405のNO)、ステップS409に移行し、以降の処理を実行する。
マスタ選択部121は、調停部140からアクセス許可を示すアクセス許可信号を受け付けたかどうかを判定する(ステップS409)。ここで、アクセス許可信号は、信号線25又は、信号線51を介して受け付ける。調停部140からアクセス許可信号がない場合には(ステップS409のNO)、ステップS417に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には(ステップS409のYES)、マスタ選択部121は、受け付けたアクセス許可信号がリクエスト制限部131を介して受け付けたアクセス許可信号であるかどうかを判定する(ステップS411)。これは、アクセス許可信号を信号線23を介して受け付けたかどうかに基づいて判定する。受け付けたアクセス許可信号がリクエスト制限部131を介したものであった場合には(ステップS411のYES)、マスタ選択部121でカウントしているアクセスカウンタを1加算する(ステップS413)。一方、ステップS409で、マスタ選択部121が受け付けたアクセス許可信号がリクエスト制限部131を介したものでなかった場合(ステップS411のNO)、即ち、信号線51を介して受け付けていた場合には、マスタ選択部121は、先行アクセスカウンタを1加算し(ステップS412)、マスタ111にアクセス許可信号を出力する(ステップS415)。
一方、先行アクセスカウンタが0でなかった場合には(ステップS401のNO)、マスタ選択部121は、信号線10を介してプロセッサ110からのアクセス要求信号を受けているかどうかをみる(ステップS402)。プロセッサ110のアクセス要求がなかった場合には(ステップS402のNO)、ステップS403に移行し、以降の処理を実行する。プロセッサ110からのアクセス要求があった場合には(ステップS402のYES)、そのアクセス要求信号をリクエスト制限部131に出力する(ステップS404)。マスタ選択部121は、調停部140からのアクセス許可信号23を受け付けたかどうかを判定し(ステップS406)、受け付けていない場合には(ステップS406のNO)、ステップS417に移行し、以降の処理を実行する。調停部140からのアクセス許可信号を受けていた場合には(ステップS406のYES)、マスタ選択部121は、アクセスカウンタの値を1加算し、先行アクセスカウンタの値を1減算する(ステップS408)。そしてプロセッサ110にアクセス許可信号を出力する(ステップS410)。
そしてマスタ選択部121は、自己内部のクロックカウンタによってカウントされるアクセス保証期間タイマの値が10になっているかどうかを判定する(ステップS417)。アクセス保証期間が経過していない、つまり保証期間タイマが10未満であった場合には(ステップS417のNO)、1クロックにおける動作を終了する。アクセス保証期間が経過している、つまり保証期間タイマが10であった場合には(ステップS417のYES)、保証期間タイマと、アクセスカウンタを0にリセットする。また、先行アクセスカウンタのカウンタをその時点の先行アクセスカウンタから、マスタ111のアクセスが許可されている回数であるNとアクセスカウンタの差分を減算した値で更新する。但し、この演算により先行アクセスカウンタが負になる場合には先行アクセスカウンタを0で更新する(ステップS419)。こうして1クロックにおける動作を終了する。
なお、各マスタ選択部で使用するアクセス保証期間及びアクセス保証期間内に必要なアクセス回数(N)は、それぞれが接続されているリクエスト制限部内にあるパラメータ保持部で保持されているパラメータを用いる。
次に図5を用いて調停部140の動作を説明する。図5に示すように、調停部140は、アクセス要求を受けた場合に信号線11を介してアクセス要求を受け付けたかどうかを判断する(ステップS501)。信号線11を介してのアクセス要求であった場合には(ステップS501のYES)、プロセッサ110に対するアクセス許可信号を信号線13に出力する(ステップS502)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線11を介して受け付けたアクセス要求でない場合には(ステップS501のNO)、次にアクセス要求を信号線21を介して受け付けたかどうかを判断する(ステップS503)。信号線21を介してのアクセス要求であった場合には(ステップS503のYES)、マスタ111に対するアクセス許可信号を信号線23に出力する(ステップS504)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線21を介して受け付けたアクセス要求でない場合には(ステップS503のNO)、次にアクセス要求を信号線31を介して受け付けたかどうかを判断する(ステップS505)。信号線31を介してのアクセス要求であった場合には(ステップS505のYES)、マスタ112に対するアクセス許可信号を信号線33に出力する(ステップS506)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線31を介して受け付けたアクセス要求でない場合には(ステップS505のNO)、次にアクセス要求を信号線41を介して受け付けたかどうかを判断する(ステップS507)。信号線41を介してのアクセス要求であった場合には(ステップS507のYES)、マスタ113に対するアクセス許可信号を信号線43に出力する(ステップS508)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求が信号線41を介して受け付けたアクセス要求でない場合には(ステップS507のNO)、次にアクセス要求を信号線10を介して受け付けたかどうかを判断する(ステップS509)。信号線10を介してのアクセス要求であった場合には(ステップS509のYES)、プロセッサ110に対するアクセス許可信号を信号線50に出力する(ステップS510)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線10を介して受け付けたアクセス要求でない場合には(ステップS509のNO)、次にアクセス要求を信号線20を介して受け付けたかどうかを判断する(ステップS511)。信号線20を介してのアクセス要求であった場合には(ステップS511のYES)、マスタ111に対するアクセス許可信号を信号線51に出力する(ステップS512)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線20を介して受け付けたアクセス要求でない場合には(ステップS511のNO)、次にアクセス要求を信号線30を介して受け付けたかどうかを判断する(ステップS513)。信号線30を介してのアクセス要求であった場合には(ステップS513のYES)、マスタ112に対するアクセス許可信号を信号線52に出力する(ステップS514)。そしてステップS501に戻り以降の処理を実行する。
アクセス要求を信号線30を介して受け付けたアクセス要求でない場合には(ステップS513のNO)、次にアクセス要求を信号線40を介して受け付けたかどうかを判断する(ステップS515)。信号線40を介してのアクセス要求であった場合には(ステップS515のYES)、マスタ113に対するアクセス許可信号を信号線53に出力する(ステップS516)。そしてステップS501に戻り以降の処理を実行する。
以上が調停部140の動作である。
最後に、図6を用いてリクエスト制限部の動作について説明する。
リクエスト制限部は、1クロック毎にプロセッサあるいはマスタからのアクセス要求があるかどうかを判断し(ステップS601)、ない場合には(ステップS601のNO)ステップS611以降の処理を実行する。アクセス要求があった場合には(ステップS601のYES)、アクセス要求を受けたアクセス頻度管理部は、自己で記憶しているアクセスカウンタがN未満であるかどうかを判定する(ステップS603)。ここで、Nは、リクエスト制限部のパラメータ保持部が保持している、プロセッサ又はマスタがアクセス保証期間内に必要なアクセス回数である。アクセスカウンタがN未満の場合には(ステップS603のYES)、アクセス頻度管理部は、マスク信号を出力しないのでリクエストマスク部は受け付けたアクセス要求信号をそのまま調停部140に出力する(ステップS605)。
リクエスト制限部は、出力したアクセス要求信号に対するアクセス許可を示すアクセス許可信号を調停部140を受け付けたかどうかを判定する(ステップS607)。アクセス許可信号を受け付けていない場合には(ステップS607のNO)、ステップS611に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には(ステップS607のYES)、リクエスト制限部のアクセス頻度管理部は、アクセスカウンタを1加算する(ステップS609)。そして、リクエスト制限部は、マスタ選択部に対して調停部140から受け付けたアクセス許可信号を出力する。
そしてアクセス保証期間が経過したかどうか、即ちアクセス保証期間のカウンタが10になっているかどうかを判断する(ステップS611)。アクセス保証期間のカウントが10になっていない場合には(ステップS611のNO)、1クロックにおける動作を終了する。アクセス保証期間のカウントが10になっていた場合には(ステップS611のYES)、アクセスカウンタを0にリセットする(ステップS613)。そして1クロックにおける動作を終了する。。
一方、アクセスカウンタがNであった場合には(ステップS603のNO)、アクセス頻度管理部は、リクエストマスク部に対してマスク信号を出力する(ステップS604)。当該マスク信号を受け付けたリクエストマスク部は、調停部140に対してアクセス要求信号を出力せず(ステップS606)、ステップS611以降の処理を実行する。
以上が1クロックにおけるリクエスト制限部の動作である。
次に、アクセス制御装置100における各種信号の状態を図7に示すタイミングチャートを用いて説明する。この図7に示すタイミングチャートは、本発明の特徴が現れる場合の信号線を流れる信号の状態や、タイマカウントの値などを示しており、ここで示す信号の状態は一つの具体例である。
図7の一行目の信号は、リクエスト制限部及びマスタ選択部がカウントしているアクセス保証期間のタイマカウントである。二行目は、プロセッサ110からのアクセス要求を示すアクセス要求信号を示している。三行目は、マスタ111からのアクセス要求を示すアクセス要求信号を示している。四行目は、マスタ112からのアクセス要求を示すアクセス要求信号を示している。五行目は、マスタ113からのアクセス要求を示すアクセス要求信号を示している。六行目は、マスタ選択部121及びリクエスト制限部131でカウントされるアクセスカウンタである。七行目は、リクエスト制限部131のアクセス頻度管理部が出力するマスク信号を示している。八行目は、リクエスト制限部130がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。九行目は、リクエスト制限部131がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十行目は、リクエスト制限部132がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十一行目は、リクエスト制限部133がアクセス要求を受け付けた場合の調停部140に出力するアクセス要求信号を示している。十二行目は、調停部140が出力するアクセス許可信号の出力先を示し、ここでは、それぞれのタイミングでどのプロセッサあるいはどのマスタに出力しているかを示している。十三行目は、調停部140が信号線51を介してマスタ111とマスタ選択部121に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部140が信号線52を介してマスタ112とマスタ選択部122に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部140が信号線53を介してマスタ113とマスタ選択部123に対して出力するアクセス許可を示すack信号でもある。十五行目は、マスタ選択部121でカウントされる先行アクセスカウンタの値を示している。そして十六行目は、マスタ選択部121でのプロセッサ110とマスタ111のどちらのアクセス要求を優先するかを示している。
時間t0において、プロセッサ110及びマスタ111〜113は、それぞれアクセス要求信号を出力している。プロセッサ110からのアクセス要求を受け付けてリクエスト制限部130は、リクエスト制限部130出力信号に示すように、時間t0〜t1にかけてアクセス要求を調停部140に出力する。同様に、マスタ111アクセス要求信号を受けて、リクエスト制限部131出力信号に示しているように、アクセス要求信号を時間t0〜t4にかけて調停部140に出力する。マスタ112アクセス要求信号を受けて、リクエスト制限部132出力信号に示しているように、アクセス要求信号を時間t0〜t6にかけて調停部140に出力する。マスタ113アクセス要求信号を受けて、リクエスト制限部133出力信号に示しているように、リクエスト制限部133は、アクセス要求信号を時間t0〜t9にかけて調停部140に出力する。
図7に示すように、各リクエスト制限部からの出力を受けて調停部140は自己で設定されている優先順位に従ってアクセス許可信号を出力する。調停部140は、時間t0〜t1にはプロセッサ110に対して、時間t1〜t4にはマスタ111に対して、時間t4〜t6にはマスタ112に対して、時間t6〜t9にはマスタ113に対してアクセス許可信号を出力している。本来マスタ112に対しては通常アクセス保証期間の10クロック中3クロック分のアクセスが許可されているが、マスタ112からのアクセス要求に対して2クロック分のアクセス許可が調停部140から出力されアクセスを行った時点でマスタ112からのアクセス要求はなくなったため、リクエスト制限部132出力信号も出力されない。その結果次に優先順位の高いマスタ113に対してアクセス許可信号が出力される。t9からのt10では、全マスタのリクエスト制限部出力信号が全てLowであるため、1クロック分の共有メモリにアクセスするためのリソースが空いていることになる。
ここで、時間t8からマスタ111からアクセス要求信号が出力されている。マスタ111は、時間t1〜t4にかけて共有メモリへの必要なアクセスを実行しているので、リクエスト制限部131を介してのアクセスはできない。このことは、時間t8〜t10においてリクエスト制限部131マスク信号がHighに設定されているために、リクエスト制限部131からは調停部140にアクセス要求信号が出力されていないことにより実現されている。信号線20から直接調停部140に対するアクセス要求が出力されており、その時点で、信号線11、21、31、41、50にはアクセス要求が出力されていない。よって、時間t9〜t10において、アクセスのためのリソースがあいており、かつ、マスタ111からの直接のアクセス要求より上位のアクセス要求がないため、調停部140はマスタ111に対して信号線51を介してアクセス許可信号を示すack信号を出力する。図7からアクセス許可信号の出力先においてもマスタ111(M1)が指定されていることがわかる。
信号線51を介してack信号を受けたマスタ選択部121は、先行アクセスカウンタを1加算する。図7に示すように時間t10から先行アクセスカウンタは1になっている。時間t10において、保証期間タイマはリセットされ、次のアクセス保証期間1〜10がカウントされる。
マスタ111は、時間t8以降時間t23までアクセス要求信号を出力し続けている。しかし、このアクセス要求信号は、マスタ選択部121により、リクエスト制限部には、時間t13以降時間t20まで出力されない。時間t13は、アクセスカウンタと先行アクセスカウンタの合計値が、マスタ111がアクセス保証期間内において共有メモリにアクセスしてよい回数である3と同値になったタイミングでもある。マスタ選択部121がマスタ111のアクセス要求をリクエスト制限部131に出力しないのは、先行アクセスカウンタが1以上で、アクセスカウンタと先行アクセスカウンタの合計値がアクセス許可回数と同値になるときには、プロセッサ100のアクセスを優先させるために、マスタ111のアクセス要求を出力しない構成になっているためである。
一方、プロセッサ100は時間t10〜t11と時間t15〜t16においてアクセス要求を出力している。t10〜t11のプロセッサ110のアクセス要求は通常通りリクエスト制限部130を介して調停部140に出力されるが、t15〜t16のアクセス要求に関しては、リクエスト制限部130出力信号にも示すように、マスクがかけられ出力されていない。
ところで、プロセッサ110からのアクセス要求は、リクエスト制限部130だけでなく、各マスタ選択部と調停部140にも出力されている。時間t15〜t16において、マスタ選択部121においては先行アクセスカウンタが1になっている。するとマスタ選択部121は、プロセッサのアクセス要求を優先して、リクエスト制限部131に出力する。リクエスト制限部131は、まだ、自己に設定されているアクセスカウンタが3になっていないので、マスタ選択部121から受け取ったプロセッサ110のアクセス要求を調停部140に出力する。時間t10以降においては、リクエスト制限部132からもマスタ112からのアクセス要求が出力されており、時間t13〜t15にかけては調停部140もマスタ112に対するアクセス許可を出していたが、時間t15において、より上位のアクセス権を有するリクエスト制限部131からアクセス要求が出力されたので、調停部140はアクセス許可をリクエスト制限部131を介してマスタ選択部121に出力する。調停部140からのアクセス許可信号を受け取ったマスタ選択部121は、時間t15においてプロセッサを選択しているため、プロセッサ110にアクセス許可信号を出力し、マスタ111には、アクセス許可信号を出力しない。この動作により、時間t15〜t16では、プロセッサがアクセス許可を受けたことになる。
調停部140からのアクセス許可信号を受けてリクエスト制限部131はアクセスカウンタを1加算し、アクセス頻度管理部はマスク信号を出力するようになり、以降時間t20まではリクエスト制限部131からはアクセス要求信号が出力されないことになる。時間t16からはリクエスト制限部132から出力されるマスタ112のアクセス要求が受け付けられ、調停部140はマスタ112に対してアクセス許可を出し、時間t17からはリクエスト制限部130、131、132からアクセス要求が出力されないので、リクエスト制限部133を介して出力されたマスタ113のアクセス要求が受け付けられる。
そして時間t20からは次のアクセス保証期間が開始される。なお、ここでは実際のプロセッサあるいはマスタの共有メモリへのアクセスについては、特に記述しなかったが、プロセッサあるいはマスタは個々のアクセス許可信号12、22、32、42を受け取るとアクセスを実行している。
図7に示したように、時間t9〜t10にかけてマスタ111は、本来アクセス保証期間である10クロック内においては3回までのアクセスしか認められていないが、共有メモリへのアクセス用のリソースが空いている場合に、アクセス要求をリクエスト制限部131を通さない経路で通常のレートを超えたアクセスを実現している。そしてこの時間t9〜t10においてマスタ111が実行したアクセスは通常だと次のアクセス保証期間t10〜t20の間において実行するはずだったものであるので、周期的に実行するアクセスにおいて余裕ができる。そして、この余裕がある場合に、本来は10クロック中1回しか行われないプロセッサ110のアクセス要求を、時間t15〜t16に示したようにマスタ選択部121が出力し、それを受けてリクエスト制限部131がプロセッサ110のアクセス要求を調停部140に出力する。従来では、時間t15〜t16においてはプロセッサ110のアクセス要求は通らず、時間t20まで待つことになるのが、本発明においては、マスタ111のアクセス要求の代わりにリクエスト制限部131を通してアクセス要求を出力し、調停部140からアクセス許可を受けているので、従来よりも、プロセッサ110からのアクセス要求に対する即応性が高められていると言える。
<実施の形態2>
実施の形態2においては、実施の形態1とは異なり、リクエスト制限部を各マスタあるいはプロセッサに対応するようにマスタとプロセッサの合計数と同数のリクエスト制限部で構成するのではなく、複数のマスタあるいはプロセッサを統括してアクセスを1のリクエスト制限部で制限する場合の実施形態を示す。
<構成>
まず、実施の形態2に係るアクセス制御装置について、図8に示す機能ブロック図を用いて説明する。
図8に示すように、アクセス制御装置800は、マスタ選択部821と、統括リクエスト制限部830と、調停部840とを含んで構成される。プロセッサ810は、アクセス制御装置800の各部と信号線60、62を介して接続されている。また、マスタ811は、アクセス制御装置800と信号線70、72を介して接続されている。
マスタ選択部821は、実施の形態1で示したマスタ選択部121と同様の機能を果たすため、説明を割愛する。また調停部840についても、アクセス制御装置800に接続されているマスタの数は異なるものの、実施の形態1で示した調停部140とほぼ同様の機能を果たすため、説明を割愛する。
本実施の形態の特徴は統括リクエスト制限部830にあり、その詳細な内部構成を示したブロック図を図9に用意した。図9に示すように統括リクエスト制限部830は、パラメータ保持部910と、アクセス頻度管理部911と、リクエストマスク部912と、パラメータ保持部920と、アクセス頻度管理部921と、リクエストマスク部922と、借入パラメータ保持部923と、アクセス権借入制御部930とを含んで構成される。統括リクエスト制限部830の各部は、図9に示すように各信号線で接続されている。
パラメータ保持部910は、プロセッサ810のアクセス保証期間、アクセス保証期間における許容アクセス頻度情報をプロセッサ810から受け取り、保持し、アクセス頻度管理部911に出力する機能を有する。
アクセス頻度管理部911は、調停部840から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部930に出力する機能とを有する。
リクエストマスク部912は、アクセス権借入制御部930からのマスク信号を受けていない場合に、プロセッサ810からのアクセス要求信号をそのまま調停部840に出力し、マスク信号を受けている場合に、プロセッサ810からのアクセス要求信号は、調停部840に出力しない機能を有する。
パラメータ保持部920は、マスタ811のアクセス保証期間、アクセス保証期間における許容できるアクセス頻度を示す許容アクセス頻度情報をマスタ811から受け取り保持し、アクセス頻度管理部921に出力する機能を有する。
アクセス頻度管理部921は、調停部840から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部930に出力する機能とを有する。
リクエストマスク部922は、アクセス権借入制御部930からのマスク信号を受けていない場合に、マスタ811からのアクセス要求信号をそのまま調停部840に出力し、マスク信号を受けている場合に、マスタ811からのアクセス要求信号は、調停部840に出力しない機能を有する。
借入パラメータ保持部923は、プロセッサ810及びマスタ811のアクセス保証期間における許容アクセス頻度情報、アクセス権の借入を行うことができる最大期間の情報、一度アクセス権を借入してから次に借入できるまでの時間情報のパラメータを外部からユーザによって設定され、保持する機能を有し、それらの情報をアクセス権借入制御部930に出力する機能を有する。
アクセス権借入制御部930は、借入パラメータ保持部から受け取る借入パラメータと、アクセス頻度管理部911とアクセス頻度管理部921から受け取るアクセス頻度の情報に基づいて、リクエストマスク部912とリクエストマスク部922にマスク信号を出力する機能を有する。アクセス権借入制御部930がアクセス権の貸し借りの詳細な動作については、図10に示した状態遷移図を用いて後述する。
<動作>
では図10に示した状態遷移図について説明する。
まず、図10において示す各状態とその遷移条件について簡単に説明し、その後に、この状態遷移図に即してリクエスト制限部830の動作を説明する。
アクセス権借入制御部930は、図10に示すレベル1〜4の状態を有する。各レベルの状態は以下の状態を示している。
レベル0は、アクセス権の貸し借りがなく、各マスタが予め設定されたアクセス頻度内で動作している状態である。
レベル1は、プロセッサ810のアクセスがマスタ811からアクセス権を借入して設定された自己のアクセス頻度以上のレートでアクセスを実行している状態である。レベル1の場合は、マスタ811のアクセスは行われない。
レベル2は、プロセッサ810が借入したアクセス権を借入先のマスタに返却している状態である。レベル2の場合は、プロセッサ810のアクセスは行われない。
レベル3は、プロセッサ810が借入したアクセス権を全て返却済みの状態で、かつ、プロセッサ810がアクセスを実行する場合にマスタからアクセス権を借入できない状態である。
そして、各レベルにおいて、別のレベルに移行する条件は以下の通りである。
レベル0からレベル1に移行するための条件1は、プロセッサ810が予め設定されたアクセス頻度以上のアクセスを行うことである。当該条件1は、アクセス頻度管理部911から出力されるアクセス頻度情報に基づいて検出される。
レベル1からレベル2に移行するための条件2は、プロセッサ810が、アクセス権の借入を行ってから、アクセス権の借入を行うことができる最大期間が経過することである。当該条件2における、最大期間の経過は、アクセス権借入制御部930でカウントするクロックカウントと、借入パラメータ保持部923に基づいて検出される。
レベル2からレベル3に移行するための条件3は、プロセッサ810が借入したアクセス権をすべて返却することである。当該条件3については、アクセス権借入制御部930で、プロセッサ810が借入しているアクセス権に相当するアクセスをマスタ811が実行したかどうかによって検出される。
レベル3からレベル0に移行するための条件4は、プロセッサ810がアクセス権の借入を行ってから、再び借入可能になるまでの時間が経過することである。当該条件4は、アクセス権借入制御部930が、借入パラメータ保持部923から出力された当該時間をクロックカウントにカウントすることにより検出する。
なお、レベル2からレベル0に移行する破線で示した条件3は、レベル4の状態を設定しない場合を示しており、この場合には、上記条件3の条件に従って、レベル2からレベル0に移行する。
では、図10の状態遷移図に従って、アクセス権借入制御部930の動作を説明する。
アクセス権借入制御部930はデフォルトではレベル0の状態にある。この状態においては、リクエストマスク部912に対するマスク信号は常にLowが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
レベル1の状態においては、アクセス権借入制御部930は、リクエストマスク部922に対するマスク信号は常にHiに設定されており、信号線77に出力される。一方、リクエストマスク部912に対するマスク信号については、アクセス頻度管理部911からのアクセス頻度情報と、借入パラメータ保持部923からのプロセッサ810の許容アクセス頻度とアクセス権の借入が最大借入回数の総和とを比較し、アクセス頻度情報が当該総和を超える場合には信号線67にHiが出力され、超えない場合には信号線67にはLowが出力される。
レベル2の状態においては、アクセス権借入制御部930は、リクエストマスク部912に対するマスク信号は常にHiが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
レベル3の状態においては、アクセス権借入制御部930は、リクエストマスク部912に対するマスク信号は、アクセス頻度管理部911から出力されたアクセス頻度情報と借入パラメータ保持部923から出力されたプロセッサ810のアクセス許容頻度とを比較し、アクセス頻度がアクセス許容頻度を超える場合には、Hiが信号線67に出力され、アクセス頻度がアクセス許容頻度を超えない場合には、Lowが信号線67に出力される。一方、リクエストマスク部922については、アクセス頻度管理部921から出力されたアクセス頻度情報と、借入パラメータ保持部923から出力されたマスタ811の許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にHiが信号線77に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にLowが信号線77に出力される。
以上が統括リクエスト制限部830の動作であるが、本発明においては、アクセス制御装置800には、マスタ選択部821が備わっており、マスタ811が一定レート以上でのアクセスを実行していて、先行アクセスカウンタが1以上の場合には、マスタ選択部821は、プロセッサ810のアクセス要求を優先して出力するので、統括リクエスト制限部830には、プロセッサ810からのアクセス要求のみが入力されることになるので、必ずプロセッサ810のアクセス要求が通り、プロセッサ810による共有メモリへのアクセスが実行されることになる。
また、プロセッサのアクセスが発生した際に、マスタ選択部821のマスタの先行アクセスカウンタが0の場合であっても、統括リクエスト制限部830が、マスタのバンド幅が保証できる範囲内で、マスタのアクセス権をプロセッサに割り振る制御を実行するので、調停部840にはプロセッサのアクセスが優先して出力される構成にすることができる。
即ち、本実施の形態においては、プロセッサのアクセスが発生した際に、その直前に、マスタが先行アクセスを実行しており、所定レートでのアクセスに余裕がある場合には、マスタ選択部821において、プロセッサのアクセスが優先され、統括リクエスト制限部830には、プロセッサのアクセス要求が出力されて、プロセッサのアクセスが実行されることになる。更には、マスタが先行アクセスを実行していなくても、統括リクエスト制限部830において、マスタの所定レートでのアクセスを保証できる範囲内において、マスタに割り当てられているリソースを一時的に、プロセッサに割り振ることにより、プロセッサのアクセス要求を出力する構成になっており、マスタ選択部821とあわせて、2重の意味でプロセッサのアクセス要求に対する即応性を高められる。
<補足>
上記実施の形態に基づき、本発明に係るアクセス制御装置について説明してきたが、アクセス制御装置の実施の形態はこれに限るものではないことは勿論である。以下、その変形例について説明する。
(1)上記実施の形態において、共有メモリ、プロセッサ、及び各マスタはアクセス制御装置100に含まない構成としたが、これらはアクセス制御装置100に含まれていてもよい。
(2)上記実施の形態1においては、プロセッサ1台、マスタ3台の構成を、実施の形態2においては、プロセッサ1台、マスタ1台の構成を示したが、この台数はその一例に過ぎず、プロセッサ、マスタ共に何台あってもよく、例えば、プロセッサ2台にマスタ4台といった構成もありうる。この場合、各マスタに接続されるマスタ選択部には、2つのプロセッサ両方からのアクセス要求をうける信号線が接続されることになる。
(3)上記実施の形態においては、各マスタ選択部は、プロセッサとマスタとの選択を行うとしたが、プロセッサに替えてグラフィックスのような出来高性能を必要とするマスタとの選択としてもよい。これはグラフィックスの処理などを実行するマスタにおいては、共有メモリへのアクセスを行えば行うほど処理効率が高まるので、そのようなマスタとの選択をマスタ選択部に実行させ、リソースの分配の優先度を高める構成にすると、例えばDVDプレーヤなどにおいては、処理効率を高めることができる。
(4)上記実施の形態のマスタ選択部において、先行アクセスにより確保されたリソースを使用できるプロセッサや他のマスタをレジスタにより選択可能な構成としてもよい。具体的には、個々のプロセッサあるいはマスタに対応したon/off切替レジスタを設け、マスタ選択部には、本来アクセスを実行するマスタは直接アクセス要求信号を入力し、その他のプロセッサあるいはマスタは、自己のアクセス要求に、各々の前記on/offレジスタ切替レジスタに設定された値でマスクをかけた信号を入力させてもよい。
この構成によるとレジスタの設定値により、アクセス要求に対する即応性を高めるマスタを任意に選択できるため、例えばシステムの実行アプリケーションの変化により、本機能の効果を得られるマスタを切り替えるといったことが可能となる。具体的には、例えば、EPG表示時にはグラフィックマスタに割り当て、Java(登録商標)アプリ動作時にはCPUに割り当てるといった具合である。
(5)上記実施の形態においては、先行アクセスカウンタが1以上の場合にプロセッサのみが割り込んでアクセスを実行することができる構成にしたが、第1のマスタが、第二のマスタのアクセスに割り込んでアクセスを実行することとしてもよい。
(6)上記実施の形態においては、リクエスト制限部のパラメータ保持部は、各パラメータを予め保持している構成としたが、これは別にアクセス制御装置全体を制御するCPUから受け取ることとしてもよいし、あるいはアクセス制御装置にユーザからの入力操作を受け付ける操作パネル等を設け、ユーザがパラメータ保持部にパラメータを入力する構成としてもよい。
また、借入パラメータ保持部についても、外部からユーザによって入力されることとしたが、これもアクセス制御装置全体を制御するCPUから受け取ることとしてもよい。
更に、パラメータ保持部と借入パラメータ保持部を1つの保持部として各パラメータを保持するようにしてもよい。
(7)上記実施の形態においては、アクセス保証期間を10クロックとしたが、これは何クロックでもよく、マスタにとってXクロック中、Yクロック分のアクセスを実行する場合のXを規定するためのものであればよく、例えば、100クロックとかでもよい。また、各マスタによって、アクセス保証期間は異なるものであってもよく、例えば、マスタ1のアクセス保証期間を20クロック、マスタ2のアクセス保証期間を50クロックなどと設定してもよい。
また、上記実施の形態においては、各マスタのアクセスのレートは10クロック中3回と規定されていたが、これは2回でも5回とかでもよい。さらに、各マスタのアクセス保証期間において、必要とするアクセス回数は、実行する作業によって異なってくるので、各マスタによってレートが異なる構成になっていてもよい。
(8)上記実施の形態においては、アクセス回数を用いて、各マスタの共有メモリへのアクセスを制御したが、アクセス回数ではなく、マスタが共有メモリにアクセスし、データを転送した場合における転送バイト数を単位としてより正確なレート制御を行ってもよい。その場合、リクエスト制限部のアクセス頻度管理部は、接続マスタもしくはプロセッサからのアクセス要求に対する転送バイト数を受け取る構成としてもよい。
(9)上記実施の形態においては、パラメータ保持部は、リクエスト制限部内に設ける構成にしたが、リクエスト制限部外に独立して設けて、パラメータ保持部内に保持されるパラメータを必要とする制御ブロックが参照する構成にしてもよい。
(10)アクセス制御装置の各機能部は、1又は複数のLSI(Large Scale Integration)、VLSI(Very Large ScaleIntegration)により実現されてよく、一のLSIが各機能部全ての機能を実行できるシステムLSIであってもよい。
(11)本発明は、上記実施の形態に示したプロセッサのアクセス要求に対する即応性を高めるための方法であってもよく、当該方法をコンピュータに実行させるための処理手順を示したコンピュータプログラムであってもよい。
本発明に係るアクセス制御装置は、BDプレーヤなど、複数の作業を実行する装置において、ユーザからの突発的な要求に対するレスポンスの即応性を高めた装置として活用することができる。
本発明に係るアクセス制御装置100の機能構成を示した機能ブロック図である。 (a)は、従来のアクセスのタイミングを示したタイミングチャートであり、(b)は、本発明におけるアクセスのタイミングを示したタイミングチャートである。 リクエスト制限部130の機能構成を示した機能ブロック図である。 1アクセス保証期間内におけるマスタ選択部の動作を示したフローチャートである。 調停部140のアクセス要求の調停に関する動作を示したフローチャートである。 リクエスト制限部のアクセス要求を受けた際の動作を示したフローチャートである。 実施の形態1に係るアクセスにおける各信号線を流れるデータの状態の具体例を示したタイミングチャートである。 実施の形態2に係るアクセス制御装置の機能構成を示した機能ブロック図である。 実施の形態2における統括リクエスト制限部の機能構成を示した機能ブロック図である。 リクエスト制限部におけるアクセス権の状態の遷移を示す状態遷移図である。
符号の説明
100、800 アクセス制御装置
110、810 プロセッサ
111、112、113 マスタ
121、122、123、821 マスタ選択部
130、131、132、133 リクエスト制限部
140、840 調停部
310、910、920 パラメータ保持部
320、911、921 アクセス頻度管理部
330、912、922 リクエストマスク部
830 統括リクエスト制限部
923 借入パラメータ保持部
930 アクセス権借入制御部

Claims (8)

  1. 複数のマスタの共有メモリへのアクセスを制御するアクセス制御装置であって、
    第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、
    前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備える
    ことを特徴とするアクセス制御装置。
  2. 前記アクセス制御装置は、更に、
    前記第1マスタが前記一定レート以上でのアクセスを実行していた場合に一定レートを超えて前記第1マスタが前記共有メモリにアクセスした回数をカウントする先行アクセスカウント手段を備え、
    前記第2アクセス手段は、前記先行アクセスカウント手段でカウントされている回数が1以上の場合に、前記第2マスタを前記共有メモリにアクセスさせる
    ことを特徴とする請求の範囲第1項記載のアクセス制御装置。
  3. 前記先行アクセスカウント手段は、前記第2アクセス手段が、前記第2マスタに前記共有メモリにアクセスさせた場合に、カウントしているアクセス回数をデクリメント、もしくは0にリセットする
    ことを特徴とする請求の範囲第2項記載のアクセス制御装置。
  4. 前記アクセス制御装置は、更に、
    前記一定レートを指定するためのレートパラメータを保持するパラメータ保持手段を備え、
    前記第1アクセス手段は、前記パラメータ保持手段に保持されている一定レートに基づいて、前記第1マスタに前記一定レートのアクセスを実行させる
    ことを特徴とする請求の範囲第1項記載のアクセス制御装置。
  5. 前記アクセス制御装置は、更に、
    前記第1のマスタ及び前記第2のマスタは、前記アクセス用のリソースを共有し、共有したリソースの範囲内で、前記第1のマスタは前記第2のマスタに前記共有メモリへのアクセス権を貸し借りさせて前記共有メモリにアクセスさせるアクセス統括手段を備える
    ことを特徴とする請求の範囲第1項記載のアクセス制御装置。
  6. 前記アクセス制御装置は、更に、
    前記第1のマスタ及び第2のマスタのアクセス保証期間の情報と、アクセス保証期間許容できる最大のアクセス数を表す許容アクセス頻度情報と、アクセス権の借り入れを行うことができる最大期間の情報と、一度アクセス権を借入してから次に借入できるまでの時間情報とを保持する借入パラメータ保持手段を備え、
    前記アクセス統括手段は、前記借入パラメータ保持手段に保持されている各情報に基づいて、アクセス権の貸し借りを実行し前記共有メモリにアクセスさせる
    ことを特徴とする請求の範囲第5項記載のアクセス制御装置。
  7. 複数のマスタの共有メモリへのアクセスを制御するアクセス制御集積回路であって、
    第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセス手段と、
    前記第1アクセス手段によって前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセス手段とを備える
    ことを特徴とするアクセス制御集積回路。
  8. 複数のマスタの共有メモリへのアクセスを制御するアクセス制御方法であって、
    第1マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第1マスタに前記一定レート以上でのアクセスを実行させる第1アクセスステップと、
    前記第1アクセスステップにおいて前記第1マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第1アクセスステップにおいて前記一定レートでのアクセス用に確保されたリソースを、前記第1マスタとは異なる第2マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第2マスタに前記共有メモリにアクセスさせる第2アクセスステップとを含む
    ことを特徴とするアクセス制御方法。
JP2007523444A 2005-07-06 2006-07-06 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法 Expired - Fee Related JP4485574B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005197141 2005-07-06
JP2005197141 2005-07-06
PCT/JP2006/313462 WO2007004696A1 (ja) 2005-07-06 2006-07-06 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009223790A Division JP4485599B2 (ja) 2005-07-06 2009-09-29 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JPWO2007004696A1 true JPWO2007004696A1 (ja) 2009-01-29
JP4485574B2 JP4485574B2 (ja) 2010-06-23

Family

ID=37604553

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007523444A Expired - Fee Related JP4485574B2 (ja) 2005-07-06 2006-07-06 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
JP2009223790A Expired - Fee Related JP4485599B2 (ja) 2005-07-06 2009-09-29 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009223790A Expired - Fee Related JP4485599B2 (ja) 2005-07-06 2009-09-29 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法

Country Status (5)

Country Link
US (1) US7904666B2 (ja)
EP (1) EP1909183A4 (ja)
JP (2) JP4485574B2 (ja)
CN (2) CN101819555B (ja)
WO (1) WO2007004696A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2006773A4 (en) * 2006-03-10 2011-10-05 Panasonic Corp INTEGRATED CIRCUIT AND INTEGRATED CIRCUIT SYSTEM
JP4715801B2 (ja) * 2007-04-26 2011-07-06 日本電気株式会社 メモリアクセス制御装置
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
CN101981549A (zh) * 2008-03-27 2011-02-23 松下电器产业株式会社 访问控制装置
JP5422984B2 (ja) * 2008-12-08 2014-02-19 富士通株式会社 不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法
JP5434812B2 (ja) * 2010-06-21 2014-03-05 富士通セミコンダクター株式会社 データ処理システム
JP5485055B2 (ja) * 2010-07-16 2014-05-07 パナソニック株式会社 共有メモリシステム及びその制御方法
US8930641B1 (en) * 2011-06-14 2015-01-06 Altera Corporation Systems and methods for providing memory controllers with scheduler bypassing capabilities
JP6179812B2 (ja) * 2011-09-29 2017-08-16 パナソニックIpマネジメント株式会社 制御装置
US9892088B2 (en) 2011-11-24 2018-02-13 Nxp Usa, Inc. Data processing system and method of controlling access to a shared memory unit
GB2515681A (en) * 2012-07-26 2014-12-31 Hewlett Packard Development Co Periodic access of a hardware resource
CN103858117B (zh) 2012-08-13 2017-09-15 松下知识产权经营株式会社 访问控制装置、中继装置、访问控制方法
WO2014103144A1 (ja) 2012-12-28 2014-07-03 パナソニック株式会社 インタフェース装置、およびメモリバスシステム
KR102416465B1 (ko) * 2015-11-30 2022-07-04 삼성전자주식회사 공유 자원을 효율적으로 관리하는 데이터 처리 시스템
FR3082029B1 (fr) * 2018-06-05 2020-07-10 Thales Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources
US11144358B1 (en) 2018-12-06 2021-10-12 Pure Storage, Inc. Asynchronous arbitration of shared resources

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396606A (en) * 1991-07-31 1995-03-07 Franklin Electronic Publishers, Incorporated Address bus switching between sequential and non-sequential ROM searches
JPH07153268A (ja) * 1993-11-29 1995-06-16 Fuji Xerox Co Ltd 情報記録装置
JPH11120124A (ja) * 1997-10-14 1999-04-30 Toshiba Corp バスアクセス装置、バス調停システム、cd−romデコーダ、dvd−romデコーダ及びcd−romドライブ
CN1205477A (zh) * 1998-07-16 1999-01-20 英业达股份有限公司 存储器替代方法及其装置
JP2000207355A (ja) 1999-01-13 2000-07-28 Toshiba Corp デ―タ転送制御装置
WO2002054238A2 (en) 2000-12-29 2002-07-11 Honeywell International Inc. Methods and apparatus for sharing slack in a time-partitioned system
JP4633290B2 (ja) 2001-04-05 2011-02-16 オリンパス株式会社 データ処理装置及びその装置におけるアクセス調停方法
US6804738B2 (en) 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7007138B2 (en) 2002-04-17 2006-02-28 Matsushita Electric Industiral Co., Ltd. Apparatus, method, and computer program for resource request arbitration
JP4344163B2 (ja) * 2002-04-17 2009-10-14 パナソニック株式会社 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
EP1403773B1 (en) * 2002-09-30 2007-06-13 Matsushita Electric Industrial Co., Ltd. Resource management device
WO2005048097A2 (en) * 2003-11-13 2005-05-26 Koninklijke Philips Electronics N.V. Method and system for restrained budget use
JP3962370B2 (ja) * 2003-11-28 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
US7725633B2 (en) * 2004-06-24 2010-05-25 Panasonic Corporation Arbitration device for arbitrating among a plurality of master devices, arbitration method, and video processing device including the arbitration device

Also Published As

Publication number Publication date
US7904666B2 (en) 2011-03-08
CN101218567A (zh) 2008-07-09
CN101819555A (zh) 2010-09-01
JP2009301588A (ja) 2009-12-24
JP4485599B2 (ja) 2010-06-23
CN101218567B (zh) 2010-05-19
EP1909183A4 (en) 2009-07-22
JP4485574B2 (ja) 2010-06-23
WO2007004696A1 (ja) 2007-01-11
EP1909183A1 (en) 2008-04-09
CN101819555B (zh) 2011-11-02
US20090313441A1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
JP4485574B2 (ja) アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
JP4480427B2 (ja) リソース管理装置
JP4457168B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
JP4436367B2 (ja) 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置
US8838863B2 (en) Resource controlling with dynamic priority adjustment
JP4999925B2 (ja) 調停を実行する方法及び装置
JP2004005677A (ja) 集積回路装置のバスアービター
JP5677007B2 (ja) バス調停装置、バス調停方法
JPS594733B2 (ja) キヨウツウバスセイギヨカイロ
JP4344163B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
JP2011059915A (ja) 半導体装置
US7747806B2 (en) Resource use management device, resource use management system, and control method for a resource use management device
JP4898527B2 (ja) リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法
JP2007164713A (ja) リソース管理装置及びリソース管理方法
JP2007304830A (ja) 情報先行取得による調停方法および調停装置
JP2004038767A (ja) バス調停装置
JPH0443302B2 (ja)
JP5494925B2 (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法
JP2004062333A (ja) 画像処理装置
JP2002175270A (ja) バスの排他制御方式
JP2007094695A (ja) バス調停回路
JP2007281576A (ja) 画像処理装置
JP2000276440A (ja) 調停回路および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090929

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090929

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20091006

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20091119

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20091127

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4485574

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees