JP2011095966A - アクセスコントローラ - Google Patents
アクセスコントローラ Download PDFInfo
- Publication number
- JP2011095966A JP2011095966A JP2009248700A JP2009248700A JP2011095966A JP 2011095966 A JP2011095966 A JP 2011095966A JP 2009248700 A JP2009248700 A JP 2009248700A JP 2009248700 A JP2009248700 A JP 2009248700A JP 2011095966 A JP2011095966 A JP 2011095966A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- processing time
- master
- master module
- unit processing
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】1つのスレーブモジュールを共有する複数のマスタモジュールの各々に対して、予め定められた単位時間当たりのデータ転送量を確実に保証する。
【解決手段】複数のマスタモジュールの各々とスレーブモジュールとの間のデータ転送を制御するアクセスコントローラとして、単位処理時間を繰り返し計時する計時手段と、単位処理時間におけるスレーブモジュールとの間のデータ転送量をマスタモジュール毎にカウントする転送量カウンタと、複数のマスタモジュールの各々について転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、達したと判定されたマスタモジュールについては、次の単位処理時間の計時が開始されるまでスレーブモジュールとの間のデータ転送を停止させる制御手段とを有するものを提供する。
【選択図】図1
【解決手段】複数のマスタモジュールの各々とスレーブモジュールとの間のデータ転送を制御するアクセスコントローラとして、単位処理時間を繰り返し計時する計時手段と、単位処理時間におけるスレーブモジュールとの間のデータ転送量をマスタモジュール毎にカウントする転送量カウンタと、複数のマスタモジュールの各々について転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、達したと判定されたマスタモジュールについては、次の単位処理時間の計時が開始されるまでスレーブモジュールとの間のデータ転送を停止させる制御手段とを有するものを提供する。
【選択図】図1
Description
本発明は、複数のマスタモジュールの各々によるスレーブモジュールへのアクセスを制御するアクセスコントローラに関する。
この種のアクセスコントローラでは、スレーブモジュールに対する各マスタモジュールからのアクセス要求が競合した場合に、その調停が行われる。具体的には、各マスタモジュールに優先順位を付けておき、その優先順位にしたがってアクセス要求の競合を調停したり、各マスタモジュールのアクセス比率を定めておき、アクセス比率にしたがってアクセス要求の競合を調停したりするのである。なお、特許文献1には、アクセス要求の調停をシステムの稼動状況に応じて行えるようにするために、各マスタモジュールの優先順位をシステムの稼動状況に則して動的に変動させることが開示されている。また、特許文献2には、各マスタモジュールとスレーブモジュールとの間のデータ転送を、周期的なデータ転送(周期的に一定の帯域の確保が必要となるもの)と、非周期的なデータ転送(必要に応じて随時実行され、必要とする帯域もその都度異なり得るもの)とに分類し、後者については一回のアクセス当たりのアクセス時間に制限を設け、前者の周期的な実行が妨げられないようにする技術が開示されている。
ところで、アクセスコントローラによる制御下でスレーブモジュールを共有する複数のマスタモジュールを含むシステムの設計・製造を行う際には、そのシステムに対する要求仕様に応じて単位処理時間(例えば、システムの性能設計のために定められる一定の長さの時間)当たりの各マスタモジュールのデータ転送量を適切に定め、システム全体として破綻を来たさないようにする性能設計を行うことが必要となる。しかし、特許文献2に開示された技術では、単位処理時間当たりの各マスタモジュールのデータ転送量を制御することが難しく、上記のような性能設計を行うことが困難になる、といった問題がある。
本発明は上記課題に鑑みて為されたものであり、スレーブモジュールを共有する複数のマスタモジュールの各々について単位処理時間当たりのデータ転送量を制御することを可能にする技術を提供することを目的とする。
本発明は上記課題に鑑みて為されたものであり、スレーブモジュールを共有する複数のマスタモジュールの各々について単位処理時間当たりのデータ転送量を制御することを可能にする技術を提供することを目的とする。
上記課題を解決するために本発明は、複数のマスタモジュールの各々とスレーブモジュールとの間のデータ転送を制御するアクセスコントローラにおいて、単位処理時間を繰り返し計時する計時手段と、前記単位処理時間における前記スレーブモジュールとの間のデータ転送量をマスタモジュール毎にカウントする転送量カウンタと、前記複数のマスタモジュールの各々について前記転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、達したと判定されたマスタモジュールについては、次の単位処理時間の計時が開始されるまで前記スレーブモジュールとの間のデータ転送を制限する制御手段とを有すること特徴とするアクセスコントローラ、を提供する。
このようなアクセスコントローラによれば、単位処理時間における各マスタモジュールのデータ転送量をそのマスタモジュールに対して予め定められた上限値まで保証しつつ、各マスタモジュールにデータ転送を行わせることが可能になる。ここで、転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したマスタモジュールに対して、どのような制限を課すのかについては種々の態様が考えられる。例えば、次の単位処理時間の計時が開始されるまでデータ転送を停止させる態様であっても良いし、また、データ転送を継続させるものの、転送速度をより低く制限する態様(例えばアクセス要求の送信間隔を長くさせる)であっても良い。また、スレーブモジュールが複数のバンクを有するメモリである場合には、転送済みデータ量が上限値に達するまでは全てのバンクへのアクセスを許可し、転送済みデータ量が上限値に達した以降は、それら複数のバンクのうちの予め定められたものに対してのみアクセスを許可するといった制限を課す態様も考えられる。
単位処理時間における各マスタモジュールのデータ転送量の上限値をどのように定めるのかについては種々の態様が考えられる。例えば、上記アクセスコントローラによるアクセス制御の下でスレーブモジュールとデータ転送を行う複数のマスタモジュールに前記スレーブモジュールとの間で周期的なデータ転送を行うものと非周期的なデータ転送を行うものとが含まれている場合、単位処理時間あたりの転送帯域幅に対して、前者についてはその周期的なデータ転送を実現するために単位処理時間にて転送を完了するべきデータ量(以下、単位処理時間当たりの要求データ量)に対して余裕のある上限値を設定し、後者については十分に小さな上限値を設定すれば良い。このような態様によれば、非周期的なデータ転送は周期的なデータに比較してその実行が厳しく制限されることとなり、非周期的なデータ転送によって周期的なデータ転送の実行が妨げられることが回避される。なお、非周期的なデータ転送によって周期的なデータ転送の実行が妨げられることを回避するという観点からは、前記スレーブモジュールとの間で非周期的なデータ転送を行うマスタモジュールに対してのみ、そのデータ転送に制限を課す態様も考えられる。
また、別の好ましい態様としては、前記複数のマスタモジュールの各々が、データ転送の開始から完了までの時間幅として許容される許容時間が所定の閾値を超えるものと超えないものとに分類される場合には、後者については許容時間内にデータ転送が完了するように定められる単位処理時間当たりのデータ転送量に対して余裕のある上限値を設定し、前者については十分に小さな上限値を設定することが考えられる。このような態様によれば、データ転送の開始からその完了までの許容時間が所定の閾値を超えないマスタモジュールに対してデータ転送帯域が優先的に確保されることになる。
以下、図面を参照しつつ本発明の実施形態について説明する。
(A:構成)
図1は、本発明の一実施形態のメモリコントローラ30を含むメモリ共有システムの構成例を示す図である。このメモリ共有システムは、例えばゲーム機などの電子機器に組み込まれ、ゲーム等の進行に合わせて各シーンを構成する画像や音声の再生制御を行うものである。図1に示すように、メモリコントローラ30には、マスタモジュール10A、10Bおよび10Cと、スレーブモジュールたるメモリ20が接続されている。メモリ20は、RAMなどで構成されており、図1に示すメモリ共有システムを含む電子機器の主記憶装置である。図1のメモリコントローラ30は、マスタモジュール10A、10Bおよび10Cの各々とメモリ20との間のデータ転送(メモリ20から各マスタモジュールへのデータの読み出し、或いは、各マスタモジュールからメモリ20へのデータの書き込み)を制御するアクセスコントローラである。
(A:構成)
図1は、本発明の一実施形態のメモリコントローラ30を含むメモリ共有システムの構成例を示す図である。このメモリ共有システムは、例えばゲーム機などの電子機器に組み込まれ、ゲーム等の進行に合わせて各シーンを構成する画像や音声の再生制御を行うものである。図1に示すように、メモリコントローラ30には、マスタモジュール10A、10Bおよび10Cと、スレーブモジュールたるメモリ20が接続されている。メモリ20は、RAMなどで構成されており、図1に示すメモリ共有システムを含む電子機器の主記憶装置である。図1のメモリコントローラ30は、マスタモジュール10A、10Bおよび10Cの各々とメモリ20との間のデータ転送(メモリ20から各マスタモジュールへのデータの読み出し、或いは、各マスタモジュールからメモリ20へのデータの書き込み)を制御するアクセスコントローラである。
マスタモジュール10A、10Bおよび10Cの各々は、ホストCPU(図示略)による制御の下、メモリ20に格納されているデータの読み出し、或いはメモリ20へのデータの書き込みを行う。これら3つのマスタモジュールは、各々異なる役割を担っている。マスタモジュール10Cは、所謂DMAコントローラであり、USBメモリなどの補助記憶装置(図1では図示略)に格納されている各種データを読み出し、メモリ20へDMA転送する。本実施形態にてUSBメモリからメモリ20へDMA転送されるデータの一例としては、各シーンにて一定のフレームレート(1秒当たり30フレーム等)で再生される各画像の画像データに圧縮符号化を施して得られる圧縮符号化データや、同じく各シーンにて再生される音声を所定のサンプリング周期(44.1kHz等)でサンプリングして得られる音声データなどが挙げられる。このマスタモジュール10Cは、各シーンにて再生する画像や音声に対応するデータをそのシーンの開始前に予めメモリ20へDMA転送しておく役割を担う。ただし、次のシーンにて再生される音声や画像に対応するデータの全部または一部が既にメモリ20に格納されている場合には、当該格納済みのデータに関して上記DMA転送が再度実行されることはない。つまり、マスタモジュール10Cが実行するデータ転送は、必要に応じて随時行われ、かつ、転送データ量もその時々に異なりえる非周期的なデータ転送である。
図1のマスタモジュール10Aは画像処理機能を担う。このマスタモジュール10Aは、マスタモジュール10Cによってメモリ20へDMA転送された圧縮符号化データを読み出してデコードするデコーダと、そのデコード結果の画像データに応じた画像の表示制御を行う表示制御回路とを含んでいる(何れも図示略)。マスタモジュール10Bは音声処理機能を担い、マスタモジュール10Cによってメモリ20へDMA転送された音声データを読み出し、その音声データに応じた音声を音として出力する処理を実行する。マスタモジュール10A(或いはマスタモジュール10B)によるデータ転送は、フレームレート等に応じて周期的に実行されるデータ転送である。
マスタモジュール10A、10Bおよび10Cの各々は、メモリ20との間でデータ転送を行う場合、従来のものと同様に、まず、アクセス要求をメモリコントローラ30に送信し、メモリコントローラ30からアクセス許可を受信するとそのデータ転送を開始するように構成されている。マスタモジュール10A、10Bおよび10Cの各々には予め優先順位が付けられている。本実施形態では、マスタモジュール10Cの優先順位が最も高く、次いでマスタモジュール10Bの優先順位が高く、マスタモジュール10Aの優先順位が最も低いといった具合である。複数のマスタモジュールからのアクセス要求が競合した場合、メモリコントローラ30では各マスタモジュールの優先順位にしたがってその調停が行われる。そして、メモリコントローラ30による調停の結果、アクセス許可を与えられなかったマスタモジュールは、アクセス許可が与えられるまで一定の時間間隔でアクセス要求を送信する処理を繰り返すように構成されている。また、マスタモジュール10A、10Bおよび10Cの各々は、データ転送の停止を指示する旨のサブバンド信号(以下、停止指示信号)SSをメモリコントローラ30から受信すると、停止解除を指示する旨のサブバンド信号(停止解除信号)RSをメモリコントローラ30から受信するまで、アクセス要求の送信を停止するように構成されている。
前述したように、マスタモジュール10A(或いはマスタモジュール10B)とメモリ20との間のデータ転送は、一定のフレームレート等に応じた周期で実行される周期的なデータ転送であり、マスタモジュール10CによるDMA転送は必要に応じて随時行われる非周期的なデータ転送である。このような非周期的なデータ転送が無条件に行われてしまうと、周期的なデータ転送の実行時に十分な帯域を確保することができず、その実行が妨げられる虞があることは前述した通りである。そこで、本実施形態では、単位処理時間における各マスタモジュールのデータ転送量をメモリコントローラ30に制御させ、非周期的なデータ転送の実行によって周期的なデータ転送の実行が妨げられないようにし、メモリ共有システム全体の性能設計を容易にしている点に特徴がある。
以下、本実施形態の特徴を顕著に示すメモリコントローラ30を中心に説明する。
以下、本実施形態の特徴を顕著に示すメモリコントローラ30を中心に説明する。
図1に示すようにメモリコントローラ30は、マルチポートデータ転送制御部310、タイマ320、および、ポート番号n(n=1〜3)で各々区別される3つのポート330−nを有している。図1に示すように本実施形態では、ポート330−1にはマスタモジュール10Aが、ポート330−2にはマスタモジュール10Bが、ポート330−3にはマスタモジュール10Cが接続されている。
マルチポートデータ転送制御部310は、所謂マルチプレクサであり、従来のアクセスコントローラが備えるものと特段に変わったところはない。このマルチポートデータ転送制御部310は、ポート330−1、330−2および330−3の各々を介して各マスタモジュールから送信されてくるアクセス要求を受信し、メモリ20へのアクセス制御を行う。具体的には、アクセス要求の競合がない場合にはその送信元へアクセス許可を返信し、複数のアクセス要求が競合した場合には最も優先順位の高いものへアクセス許可を返信する。そして、マルチポートデータ転送制御部310は、アクセス許可を与えたマスタモジュールとメモリ20との間のデータ転送制御を行う。
タイマ320は、所定の単位処理時間を繰り返し計時する計時手段である。この単位処理時間は、所定周波数のクロック(例えば、メモリ共有システムのシステムクロック等)の何クロック分に相当するかの数値により表わされる。例えば、単位処理時間が上記所定周波数のクロックのNクロック分に相当する場合、タイマ320は、上記所定周波数のクロックをカウントし、そのカウント値がNになったことを契機としてパルスPを発生させる。ここで、単位処理時間をどのような長さにするのかについては後に詳細に説明する。
ポート330−1、330−2および330−3の各々は、図1に示すように、データパス部330a、転送量カウンタ330bおよびアクセス停止制御部330cを含んでいる。データパス部330aは、その接続先のマスタモジュールとマルチポートデータ転送制御部310との間のデータの転送を仲介するバッファ(FIFO等)である。転送量カウンタ330bは、データパス部330aを介して転送されたデータのデータ量をカウントするカウンタである。図1に示すように転送量カウンタ330bにはタイマ320が発生させるパルスPが与えられる。転送量カウンタ330bはパルスPを検出すると、それまでのカウント値をゼロにリセットし、その後、転送データ量のカウントを再開する。つまり、図1の転送量カウンタ330bの各々は、マスタモジュール毎に単位処理時間におけるメモリ20とのデータ転送量をカウントする手段として機能するのである。
アクセス停止制御部330cは、転送量カウンタ330bによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、当該上限値に達したことを契機としてマスタモジュールに停止指示信号SSを与える処理を実行する。図1に示すように、このアクセス停止制御部330cにはタイマ320が発生させるパルスPが与えられる。アクセス停止制御部330cは、パルスPを検出すると、アクセスの停止を指示したマスタモジュールに対して停止解除信号RSを与える。つまり、アクセス停止制御部330cは、単位処理時間におけるデータ転送量が予め定められた上限値に達したマスタモジュールのデータ転送を、次の単位処理時間の計時が開始されるまで制限する制御手段の役割を果たすのである。なお、上限値については、例えばメモリコントローラ30の初期化ステップにおいて、ホストCPU等によるレジスタ(図示略)への書き込みで設定させるようにすれば良い(単位処理時間についても同様)。また、上限値をどのような値とするかについては後に詳細に説明する。
以上がメモリコントローラ30の構成である。
以上がメモリコントローラ30の構成である。
次いで、単位処理時間や各マスタモジュールのデータ転送量の上限値をどのように定めるかについて説明する。単位処理時間については、どの程度の時間単位で各マスタモジュールのデータ転送量を制御する必要があるのかといった要求仕様との兼ね合いで適宜定めるようにすれば良い。具体的には、周期的なデータ転送の実行周期に応じて定めるようにしても良いし、それら周期的なデータ転送の実行周期とは無関係に1ミリ秒や10ミリ等としても良い。前者の態様であれば、本実施形態のように各々周期の異なる複数種の周期的なデータ転送が含まれている場合には、それらのうちの最も短い周期と等しくなるように単位処理時間を定める態様やそれら複数の周期の最大公約数となるように単位処理時間を定める態様等が考えられる。
一方、各マスタモジュールのデータ転送量の上限値については、単位処理時間の長さとの兼ね合いでメモリ共有システムに対する要求仕様を満たすように定めるようにすれば良い。ただし、非周期的なデータ転送の実行によって周期的なデータ転送の実行が妨げられないように各上限値を設定する必要がある。すなわち、メモリ20との間のデータ転送の単位処理時間あたりの転送帯域幅に対して、周期的なデータ転送を実行するマスタモジュールについてはそのデータ転送を実現するために単位処理時間にて転送を完了するべきデータ量(以下、単位時間当たりの要求データ量)に対して余裕のある上限値を設定し、非周期的なデータ転送を実行するマスタモジュールについては十分に小さな上限値を設定するのである。例えば、単位処理時間がデータの転送周期の1/N(Nは2以上の整数)である場合には、周期的なデータ転送を実行するマスタモジュールについての上記上限値は、一周期当たりのデータ転送量の1/N以上の値とすれば良い。なお、マスタモジュールとメモリ20との間の単位処理時間当たりのデータ転送量に上限値を設けたのは非周期的なデータ転送が無制限に実行されることによって、周期的なデータ転送の実行が妨げられないようにするためである。したがって、周期的なデータ転送を実行するマスタモジュールが接続されるポート330についてはアクセス停止制御部330cの動作を停止させ、単位処理時間当たりのデータ転送量に制限を設けないようにしても良い。
(B:動作)
以下、図1に示すメモリ共有システムにおいて、画像データの転送周期(フレーム周期)TFに比較して単位処理時間Tが短い場合(例えば、TF=N×T:Nは2以上の整数)にメモリコントローラ30が実行する動作の概要を説明する。なお、以下に説明する動作例においては、1つのシーンには複数の画像(図2に示す例では、M(Mは2以上の整数)枚の画像)が含まれており、1つのシーンの時間長(シーン周期)TSとフレーム周期TFとの間には、TS=M×TFの関係があるものとする。また、以下に説明する動作例では、マスタモジュール10Cについてのみ単位処理時間におけるデータ転送量に制限を課すものとする。これはマスタモジュール10Cが行う非周期的なデータ転送によってマスタモジュール10Aおよび10Bが実行する周期的なデータ転送が妨げられないようにするためである。ここで、マスタモジュール10Cについての単位処理時間当たりのデータ転送量の上限値を十分に小さい値とする必要があることは前述した通りである。その一方、シーン周期TSが経過するまでにマスタモジュール10Cによるデータ転送が完了することを保証する必要もある。そこで、各シーンに含まれる画像や音声に対応するデータの全てを転送するとした場合のデータ量(すなわち、シーン周期TS内にマスタモジュール10Cが転送するべきデータ量の最大値)がDである場合には、マスタモジュール10Cについての上限値をD/(N×M)と設定するのである。これにより、マスタモジュール10Cによるデータ転送がシーン周期TS内に完了すること、を保証することができるのである。
以下、図1に示すメモリ共有システムにおいて、画像データの転送周期(フレーム周期)TFに比較して単位処理時間Tが短い場合(例えば、TF=N×T:Nは2以上の整数)にメモリコントローラ30が実行する動作の概要を説明する。なお、以下に説明する動作例においては、1つのシーンには複数の画像(図2に示す例では、M(Mは2以上の整数)枚の画像)が含まれており、1つのシーンの時間長(シーン周期)TSとフレーム周期TFとの間には、TS=M×TFの関係があるものとする。また、以下に説明する動作例では、マスタモジュール10Cについてのみ単位処理時間におけるデータ転送量に制限を課すものとする。これはマスタモジュール10Cが行う非周期的なデータ転送によってマスタモジュール10Aおよび10Bが実行する周期的なデータ転送が妨げられないようにするためである。ここで、マスタモジュール10Cについての単位処理時間当たりのデータ転送量の上限値を十分に小さい値とする必要があることは前述した通りである。その一方、シーン周期TSが経過するまでにマスタモジュール10Cによるデータ転送が完了することを保証する必要もある。そこで、各シーンに含まれる画像や音声に対応するデータの全てを転送するとした場合のデータ量(すなわち、シーン周期TS内にマスタモジュール10Cが転送するべきデータ量の最大値)がDである場合には、マスタモジュール10Cについての上限値をD/(N×M)と設定するのである。これにより、マスタモジュール10Cによるデータ転送がシーン周期TS内に完了すること、を保証することができるのである。
図2は、単位処理時間T、フレーム周期TFおよびシーン周期TSの関係を表わすとともに、メモリコントローラ30を介してマスタモジュール10A、10Bおよび10Cの各々とメモリ20との間で行われるデータ転送の概要を表わす図である。なお、図2においては、シーン周期TSの先頭からn(n=1〜N)番目のフレーム周期TFを「TF(n)」と表現し、フレーム周期TF(n)の先頭からm(m=1〜M)番目の単位処理時間Tを「T(m)」と表記した。また、以下に説明する動作例では、マスタモジュール10Bによる音声データの転送周期は単位処理時間Tよりも短く、かつ、一周期分当たりのデータ転送量もマスタモジュール10Aの一周期分のデータ転送量に比較して十分に少ないものとする(図2参照)。
図2に示すように、時刻t0においてマスタモジュール10A、10Bおよび10Cの各々とメモリ20との間のデータ転送が開始されると、これを契機としてタイマ320は単位処理時間Tの計時を開始する。なお、図2では詳細な図示は省略したが、各マスタモジュールからのアクセス要求が競合した場合には、各マスタモジュールの優先順位にしたがってその調停が行われることはいうまでもない。図2の単位処理時間T(1)におけるマスタモジュール10A、10Bおよび10Cの各々の転送済みデータ量は転送量カウンタ320bによってマスタモジュール毎にカウントされる。より詳細に説明すると、マスタモジュール10Aとメモリ20との間のデータ転送量はポート330−1の転送量カウンタ330bによって、マスタモジュール10Bとメモリ20との間のデータ転送量はポート330−2の転送量カウンタ330bによって、マスタモジュール10Cとメモリ20との間のデータ転送量はポート330−3の転送量カウンタ330bによって各々カウントされる。
マスタモジュール10Cについては、単位処理時間Tにおけるデータ転送量の上限値が予め定められている。このため、ポート330−3の転送量カウンタ330bのカウント値が当該上限値に達すると、同ポート330−3のアクセス停止制御部330cによって停止指示信号SSがマスタモジュール10Cに与えられる。前述したように、マスタモジュール10Cは、メモリコントローラ30から停止指示信号SSを受け取ると、停止解除信号RSを受け取るまで新たなアクセス要求の送信を停止し、メモリ20との間のデータ転送を停止する。これに対してマスタモジュール10Aおよび10Bについては単位処理時間Tにおけるデータ転送量に上限値は定められていない。このため、マスタモジュール10Aおよび10Bに対してデータ転送の停止が指示されることはなく、これらマスタモジュールとメモリ20との間のデータ転送は継続される。
時刻t0から単位処理時間Tが経過するとタイマ320はパルスPを発生させる。ポート330−1、330−2および330−3の各々の転送量カウンタ330bは、このパルスPを検出すると、そのカウント値をゼロにリセットした後に転送済みデータ量のカウントを再開する。また、ポート330−3のアクセス停止制御部330cは、上記パルスPを検出したことを契機として停止解除信号RSをマスタモジュール10Cに送信する。この停止解除信号RSを受け取ったマスタモジュール10Cはメモリ20との間のデータ転送を再開する。以降、単位処理時間T(2),T(3)・・・の各々において上記動作が繰り返し実行される。従来は、DMA転送のような非周期的なデータ転送の実行に関して特段の制限を設けていなかったため、非周期的なデータ転送が帯域を取り続けると、周期的なデータ転送処理(例えば、マスタモジュール10Aが実行する画像データの転送処理)の帯域が極端に狭くなり、この帯域が極端に狭くなった時点の性能によってシステム全体の性能が制約を受けるという問題や、周期的なデータ転送の実行が妨げられるという問題があった。しかし、本実施形態では、単位処理時間における非周期的なデータ転送の転送量に上限を設けることによって、これらの問題を解決しているのである。なお、図2に示すように、マスタモジュール10Aとメモリ20との間のデータ転送がフレーム周期TFの経過前に完了した場合には、そのデータ転送が完了した時点からフレーム周期TFの終端までの残りの期間においては、同データ転送に用いられていた帯域は余裕帯域となる。また、マスタモジュール10Cとメモリ20との間のデータ転送は、図2に示すように単位処理時間毎に細切れに実行されることとなるが、マスタモジュール10Cが実行するデータ転送はシーン周期TSが経過するまでには完了するので、特段の問題が生じることはない。
以上説明したように、本実施形態のメモリコントローラ30によれば、単位処理時間における各マスタモジュールとスレーブモジュール(上記実施形態では、メモリ20)との間のデータ転送量はそのマスタモジュールについて予め定められた上限値までに制限されることとなる。つまり、本実施形態によれば、メモリコントローラ30によれば、スレーブモジュールを共有する複数のマスタモジュールの各々について単位処理時間当たりのデータ転送量を制御することが可能になり、メモリ共有システム全体の性能設計をし易くなるのである。
(C:他の実施形態)
以上、本発明の一実施形態について説明した。しかし、かかる実施形態に以下に述べる変形を加えても良いことは勿論である。
(1)上述した実施形態では、単位処理時間Tを画像データの転送周期TFよりも短く設定した。しかし、単位処理時間をシーン周期TSよりは短く、かつ、フレーム周期TFよりは長く設定しても勿論良い。図3は、単位処理時間Tをマスタモジュール10Aおよび10Bの転送周期よりも長く(前者の転送周期はT/3に相当し、後者の転送周期はT/2に相当する)、かつシーン周期よりは短く(シーン間隔は数十〜数百T程度)設定し、マスタモジュール10Aおよび10Bについての上限値を一周期分のデータ転送量よりも十分に大きくした場合の動作を概念的に示した図である。
以上、本発明の一実施形態について説明した。しかし、かかる実施形態に以下に述べる変形を加えても良いことは勿論である。
(1)上述した実施形態では、単位処理時間Tを画像データの転送周期TFよりも短く設定した。しかし、単位処理時間をシーン周期TSよりは短く、かつ、フレーム周期TFよりは長く設定しても勿論良い。図3は、単位処理時間Tをマスタモジュール10Aおよび10Bの転送周期よりも長く(前者の転送周期はT/3に相当し、後者の転送周期はT/2に相当する)、かつシーン周期よりは短く(シーン間隔は数十〜数百T程度)設定し、マスタモジュール10Aおよび10Bについての上限値を一周期分のデータ転送量よりも十分に大きくした場合の動作を概念的に示した図である。
図3に示す時刻t0の時点において、マスタモジュール10A、10Bおよび10Cの各々から送信されたアクセス要求が競合すると、メモリコントローラ30のマルチポートデータ転送制御部310は、各マスタモジュールの優先順位にしたがってアクセス要求の競合を調停する。本変形例では前述した実施形態とは異なり、マスタモジュール10Aに最も高い優先順位が与えられており、マスタモジュール10Bには次に高い優先順位が与えられており、マスタモジュール10Cの優先順位が最も低くなっている。このため、マルチポートデータ転送制御部310は、マスタモジュール10A、10Bおよび10Cの各々からのアクセス要求が競合すると、マスタモジュール10Aにアクセス許可を与える。すると、マスタモジュール10Aは、ポート330−1およびマルチポートデータ転送制御部310を介してメモリ20との間のデータ転送を行う。このデータ転送が行われている間、転送済みのデータ量がポート330−1の転送量カウンタ330bによってカウントされる。前述したように単位処理時間Tにおけるマスタモジュール10Aについての上限値は一周期分のデータ転送量よりも十分に大きいため、同転送量カウンタ330bのカウント値が当該上限値に達する前に一周期分のデータ転送が完了する。このため、このデータ転送の実行過程でポート330−1のアクセス停止制御部330cからマスタモジュール10Aに停止指示信号SSが送信されることはない。
このようにマスタモジュール10Aには停止指示信号SSは与えられないのであるから、一周期分のデータ転送が完了した後もマスタモジュール10Aはアクセス要求を送信することができる。しかし、マスタモジュール10Aが行うデータ転送の実行周期はT/3であるため、その実行周期T/3が経過するまでマスタモジュール10Aがアクセス要求を送信することはない。このため、優先順位に基づく調停の下、マスタモジュール10Bにアクセス許可が与えられる。マスタモジュール10Bとメモリ20との間のデータ転送についても同様に、そのデータ転送が行われている間、転送済みデータ量がポート330−2の転送量カウンタ330bによってカウントされる。前述したようにマスタモジュール10Bについても上限値が十分に大きい値に設定されているため、一周期分のデータ転送量が当該上限値に達することはなく、ポート330−2のアクセス停止制御部330cからマスタモジュール10Bへ停止指示信号SSが送信されることはない。
マスタモジュール10Bとメモリ20との間の一周期分のデータ転送が完了すると、転送周期T/2が経過するまでマスタモジュール10Bがアクセス要求を行うことはなく、マスタモジュール10Cとメモリ20との間のデータ転送が開始される。このデータ転送が行われている間、転送済みデータ量がポート330−3の転送量カウンタ330bによってカウントされ、上限値に達するとポート330−3のアクセス停止制御部330cからマスタモジュール10Cへ停止指示信号SSが送信される。以後、マスタモジュール10Cは、停止解除信号RSを同アクセス停止制御部330cから受信するまでアクセス要求を送信することはない。ここで、アクセス停止制御部330cは時刻t0から単位処理時間Tが経過するまでは停止解除信号RSを送信することはないのであるから、単位処理時間Tが経過するまで(すなわち、時刻t0+Tに到るまで)はマスタモジュール10Cがアクセス要求を送信することはない。このように、次の単位処理時間Tの計時が開始されるまでマスタモジュール10Cはデータ転送の実行を制限されるため、図3に示すように、マスタモジュール10Aによる2周期目のデータ転送やマスタモジュール10Bによる2周期目のデータ転送の実行が妨げられることはない。
(2)上述した実施形態では、単位処理時間を繰り返し計時するためのタイマを1つだけ設けたが、ポート毎にタイマを設けても勿論良い。このようにポート毎にタイマを設ける態様においてはタイマ毎に異なる単位処理時間を計時させても良い。また、上述した実施形態では、単位処理時間を繰り返し計時する計時手段(タイマ320)、単位処理時間におけるスレーブモジュール(メモリ20)との間のデータ転送量をマスタモジュール毎にカウントする転送量カウンタ(転送量カウンタ330b)、および、複数のマスタモジュールの各々について転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、達したと判定されたマスタモジュールについては次の単位処理時間の計時が開始されるまでスレーブモジュールとの間のデータ転送を制限する制御手段(アクセス停止制御部330c)の各々をハードウェアで構成したが、これら各手段をソフトウェアモジュールで構成しても良い。
(3)上述した実施形態では、転送量カウンタ330bによりカウントされたデータ転送量が予め定められた上限値に達したマスタモジュールについては、次の単位処理時間の計時が開始されるまでスレーブモジュール(メモリ20)との間のデータ転送を停止させたが、転送速度を引き下げてデータ転送を継続させる(具体的には、アクセス要求の送信間隔を長くさせる)ようにしても良い。また、メモリ20を構成する複数のバンクのうちアクセスを許可するバンクを制限する態様(例えば、単位処理時間におけるデータ転送量が上限値に達するまでは全てのバンクに対するアクセスを許可し、上限値に達した以降は特定のバンクに対するアクセスのみを許可する態様)であっても良い。要は、転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したマスタモジュールについては、次の単位処理時間の計時が開始されるまでスレーブモジュールとの間のデータ転送に何らかの制限を加える態様であれば良い。
(4)上述した実施形態では、単位処理時間における各マスタモジュールのデータ転送量の上限値が固定されていたが、時間の経過とともに上記上限値を変化させるようにしても良い。また、上述した実施形態では、単位処理時間におけるデータ転送量が予め定められた上限値に達したマスタモジュールに対してデータ転送の停止をサブバンド信号の送信により指示したが、バスプロトコルにて予め用意されている停止指示コマンドを用いてその指示を行うようにしても良い。
(5)上述した実施形態では、メモリコントローラ30の3つのポートの全てについて、その接続先のマスタモジュールの単位処理時間当たりのデータ転送量を予め定められた上限値までに制限することができる構成(すなわち、上記実施形態の特徴を顕著に示す3つの構成要素(データパス部330a、転送量カウンタ330bおよびアクセス停止制御部330c)を含む構成)とした。しかし、メモリコントローラ30が備える3つのポートのうちの少なくとも1つを単位処理時間当たりのデータ転送量を予め定められた上限値までに制限することができる構成とし、他のポートについては従来のものと同様の構成(例えば、上記実施形態の特徴を顕著に示す3つの構成要素のうちデータパス部330aのみを含む構成)としても良い。
(6)上述した実施形態では、メモリコントローラ30に、3つのマスタモジュール(画像処理機能を担うマスタモジュール10A、音声処理機能を担うマスタモジュール10BおよびDMAコントローラの役割を担うマスタモジュール10C)が接続される場合について説明したが、2つまたは4つ以上のマスタモジュールを接続しても良いことは言うまでもない。また、メモリコントローラ30に接続されるマスタモジュールの種類も上記3種類に限定されるものではなく、CPUやDSPであっても勿論良い。また、上述した実施形態では、メモリコントローラ30に接続される複数のマスタモジュールのうちの1つが非周期的なデータ転送を行う場合について説明したが、それらのうちの複数のものが非周期的なデータ転送を行う態様であっても良く、また、それらの全てが周期的なデータ転送を行う態様であっても良い。
(7)上述した実施形態では、メモリ20を共有する複数のマスタモジュールの各々のアクセス制御を行うメモリコントローラへの本発明の適用例を説明した。しかし、複数のマスタモジュールとスレーブモジュールとが共有バスに接続されたシステムにおいて、各マスタモジュールがスレーブモジュールにアクセスする際の競合を調停するバス調停回路に本発明を適用して勿論良い。要は、複数のマスタモジュールにより共有されるスレーブモジュールに対する各マスタモジュールのアクセスを制御するアクセスコントローラであれば、本発明を適用することが可能である。
(8)上述した実施形態のメモリ20はDRAMやSRAMなどの比較的高速なメモリであった。しかし、データの読み出しのみが可能なROMや比較的低速なストレージデバイスをメモリ20として用い、高速なアクセスを必要とするマスタモジュールに対するデータを必要に応じて別メモリに転送する形態も考えられる。限られた帯域を有効に使用し、システムの破綻を防止しつつ性能設計を容易にするという意味では、低速メモリに対するアクセス制御に本発明を適用することによって顕著な効果が得られるからである。
(9)上述した実施形態では各マスタモジュールが実行するデータ転送を周期的に実行されるものと、非周期的に実行されるものとに分類し、後者に対してのみ単位処理時間当たりのデータ転送量に上限値を設定した。しかし、データ転送の開始から完了までの時間幅として許容される許容時間が所定の閾値を超えるか否かによって各マスタモジュールを分類し、超えないものに対しては許容時間内にデータ転送を完了するように定められる単位処理時間当たりのデータ転送量に対して余裕のある上限値を設定し(或いは、上限値を設定しない)、超えるものに対しては十分に小さな上限値を設定するようにしても良い。このような態様によれば、データ転送の開始からその完了までの許容時間が所定の閾値を超えるマスタモジュール(すなわち、時間的な制約が緩やかなデータ転送を実行するマスタモジュール)については単位処理時間におけるデータ転送の実行が厳しく制限される一方、許容時間が閾値を超えないマスタモジュール(すなわち、時間的な制約が厳しいデータ転送を実行するマスタモジュール)に対してデータ転送帯域が優先的に確保されることになる。なお、上記閾値としてどのような値を採用するのかについては、複数のマスタモジュールとスレーブモジュールとを含むシステム全体に対する要求仕様に基づいて定めるようにすれば良い。例えば、上述した実施形態は、本変形例における閾値としてシーン周期TSよりは小さく、かつ、フレーム周期TFよりは大きい値を採用した場合に相当する。
10A、10B、10C…マスタモジュール、20…メモリ、30…メモリコントローラ、310…マルチポートデータ転送制御部、320…タイマ、330−1,330−2,330−3…ポート、330a…データパス部、330b…転送量カウンタ、330c…アクセス停止制御部。
Claims (4)
- 複数のマスタモジュールの各々とスレーブモジュールとの間のデータ転送を制御するアクセスコントローラにおいて、
単位処理時間を繰り返し計時する計時手段と、
前記単位処理時間における前記スレーブモジュールとの間のデータ転送量をマスタモジュール毎にカウントする転送量カウンタと、
前記複数のマスタモジュールの各々について前記転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したか否かを判定し、達したと判定されたマスタモジュールについては、次の単位処理時間の計時が開始されるまで前記スレーブモジュールとの間のデータ転送を制限する制御手段と、
を有すること特徴とするアクセスコントローラ。 - 前記複数のマスタモジュールに前記スレーブモジュールとの間で周期的なデータ転送を行うものと非周期的なデータ転送を行うものとが含まれている場合には、単位処理時間あたりの転送帯域幅に対して、前者についてはその周期的なデータ転送を実現するために前記単位処理時間内に転送を完了するべきデータ量に対して余裕のある上限値を設定し、後者については十分に小さな上限値を設定することを特徴とする請求項1に記載のアクセスコントローラ。
- 前記制御手段は、前記スレーブモジュールとの間で非周期的なデータ転送を行うマスタモジュールに対してのみ、そのデータ転送に制限を課すことを特徴とする請求項1に記載のアクセスコントローラ。
- 前記複数のマスタモジュールの各々が、データ転送の開始から完了までの時間幅として許容される許容時間が所定の閾値を超えるものと超えないものとに分類される場合には、後者については許容時間内にデータ転送が完了するように定められる単位処理時間当たりのデータ転送量に対して余裕のある上限値を設定し、前者については十分に小さな上限値を設定することを特徴とする請求項1に記載のアクセスコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009248700A JP2011095966A (ja) | 2009-10-29 | 2009-10-29 | アクセスコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009248700A JP2011095966A (ja) | 2009-10-29 | 2009-10-29 | アクセスコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011095966A true JP2011095966A (ja) | 2011-05-12 |
Family
ID=44112807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009248700A Withdrawn JP2011095966A (ja) | 2009-10-29 | 2009-10-29 | アクセスコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011095966A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101503209B1 (ko) | 2011-05-05 | 2015-03-24 | 퀄컴 인코포레이티드 | 휴대용 컴퓨팅 디바이스의 스위치 패브릭들 내에서 그리고 스위치 패브릭들에 걸쳐 마스터-슬레이브 쌍들을 동적으로 생성하고 서비스하는 방법 및 시스템 |
WO2017056132A1 (ja) * | 2015-10-01 | 2017-04-06 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2017126237A (ja) * | 2016-01-15 | 2017-07-20 | 日本電気株式会社 | プロセッサ、および、データ転送方法 |
-
2009
- 2009-10-29 JP JP2009248700A patent/JP2011095966A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101503209B1 (ko) | 2011-05-05 | 2015-03-24 | 퀄컴 인코포레이티드 | 휴대용 컴퓨팅 디바이스의 스위치 패브릭들 내에서 그리고 스위치 패브릭들에 걸쳐 마스터-슬레이브 쌍들을 동적으로 생성하고 서비스하는 방법 및 시스템 |
WO2017056132A1 (ja) * | 2015-10-01 | 2017-04-06 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JPWO2017056132A1 (ja) * | 2015-10-01 | 2018-07-19 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10108562B2 (en) | 2015-10-01 | 2018-10-23 | Renesas Electronics Corporation | Semiconductor device including a request issuing controller |
US10831683B2 (en) | 2015-10-01 | 2020-11-10 | Renesas Electronics Corporation | Semiconductor device including bus controller |
US11294835B2 (en) | 2015-10-01 | 2022-04-05 | Renesas Electronics Corporation | Semiconductor device including a bus arbiter |
JP2017126237A (ja) * | 2016-01-15 | 2017-07-20 | 日本電気株式会社 | プロセッサ、および、データ転送方法 |
US10733128B2 (en) | 2016-01-15 | 2020-08-04 | Nec Corporation | Processor and data transfer method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694049B2 (en) | Rate control of flow control updates | |
JP2011095967A (ja) | バス共有システム | |
US20110197038A1 (en) | Servicing low-latency requests ahead of best-effort requests | |
JP2011150397A (ja) | バス調停装置 | |
JP2008535075A (ja) | データフロート遅延時間および外部メモリ書き込みの間のシステムの非アクティブを減少させるための方法および装置 | |
JP2013097659A (ja) | 半導体データ処理装置、タイムトリガ通信システム及び通信システム | |
JP2006195714A (ja) | リソース管理装置 | |
US20100287391A1 (en) | Memory control circuit, control method, and storage medium | |
JP5591022B2 (ja) | バス帯域モニタ装置およびバス帯域モニタ方法 | |
US20070156937A1 (en) | Data transfer in multiprocessor system | |
US9026703B2 (en) | Bus monitoring device, bus monitoring method, and program | |
JP2011095966A (ja) | アクセスコントローラ | |
GB2437322A (en) | System and method for bandwidth sharing in buses | |
JP2014160341A (ja) | データ処理装置およびデータ処理方法 | |
JP2009251713A (ja) | キャッシュメモリ制御装置 | |
JP2009116702A (ja) | 半導体集積回路 | |
JP2013008198A (ja) | 画像処理装置、画像処理制御方法及び画像処理制御プログラム | |
JP4953794B2 (ja) | バスシステムのバス調停方法及びバスシステム | |
JP5404294B2 (ja) | データ演算装置の制御回路及びデータ演算装置 | |
JP2011170515A (ja) | メモリマスタデバイス | |
JP2011059915A (ja) | 半導体装置 | |
JP2011034214A (ja) | メモリ制御装置 | |
JP7226084B2 (ja) | 情報処理装置 | |
WO2022185581A1 (ja) | 制御装置およびデータ転送方法 | |
JP5111940B2 (ja) | 情報処理装置及びアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130108 |