JP2011095967A - バス共有システム - Google Patents
バス共有システム Download PDFInfo
- Publication number
- JP2011095967A JP2011095967A JP2009248702A JP2009248702A JP2011095967A JP 2011095967 A JP2011095967 A JP 2011095967A JP 2009248702 A JP2009248702 A JP 2009248702A JP 2009248702 A JP2009248702 A JP 2009248702A JP 2011095967 A JP2011095967 A JP 2011095967A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- module
- master
- master module
- slave
- 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
Landscapes
- Bus Control (AREA)
Abstract
【課題】バスに複数のマスタモジュールとそれら複数のマスタモジュールに共有されるスレーブモジュールとが接続されるシステムにおいて、マスタモジュールとスレーブモジュールとの間で無駄なくデータ転送を行うことを可能にする。
【解決手段】バスを介して各々データ転送を行う複数のマスタモジュールと前記複数のマスタモジュールに共有されるスレーブモジュールとを有するシステムにおいて、スレーブモジュールには、当該バスを介したデータ転送の制限の要否をマスタモジュール毎に判定させ、制限を要すると判定されたマスタモジュールに対してそのデータ転送の制限を指示する処理を当該スレーブモジュールに実行させる。一方、各マスタモジュールには、スレーブモジュールから与えられる指示にしたがって当該スレーブモジュールとの間のデータ転送を制限する処理を実行させる。
【選択図】図1
【解決手段】バスを介して各々データ転送を行う複数のマスタモジュールと前記複数のマスタモジュールに共有されるスレーブモジュールとを有するシステムにおいて、スレーブモジュールには、当該バスを介したデータ転送の制限の要否をマスタモジュール毎に判定させ、制限を要すると判定されたマスタモジュールに対してそのデータ転送の制限を指示する処理を当該スレーブモジュールに実行させる。一方、各マスタモジュールには、スレーブモジュールから与えられる指示にしたがって当該スレーブモジュールとの間のデータ転送を制限する処理を実行させる。
【選択図】図1
Description
本発明は、バスに接続される複数のマスタモジュールと複数のマスタモジュールに共有されるスレーブモジュールとの間のデータ転送を制御する技術に関する。
複数のマスタモジュールとそれら複数のマスタモジュールに共有されるスレーブモジュールとがバスに接続され、そのバスを介してマスタモジュールとスレーブモジュールとの間でデータ転送が行われるシステムでは、複数のマスタモジュールからスレーブモジュールへのアクセス要求が競合する場合がある。従来、このようなアクセス要求の競合は、各マスタモジュールに優先順位を付けておき、その優先順位にしたがった調停により解消することが一般的であった。具体的には、スレーブモジュールに対してアクセス要求を行った複数のマスタモジュールのうち優先順位が最も高いもののアクセス要求を当該スレーブモジュールに引渡し、他のマスタモジュールについては、優先順位の最も高いマスタモジュールのデータ転送が終了するまでアイドル状態(待ち状態)にしておくのである。
優先順位等にしたがってアクセス要求の競合を調停する技術では、優先順位の低いマスタモジュールは長期間に亘ってアイドル状態のままとなる虞がある。このように長期間に亘ってアイドル状態のままとなると、他にアクセス可能なスレーブモジュールがある場合であっても、そのスレーブモジュールとの間のデータ転送を行わせることはできず、システム全体として無駄が多いといった問題があった。また、システムの性能設計を行う場合、複数のマスタモジュールの何れかのデータ転送量に依存した性能設計を行うことが求められる場合がある。しかし、優先順位等にしたがってアクセス要求の競合を調停する技術では特定のマスタモジュールについてデータ転送量の制御を行うことが難しく、そのようなシステム性能設計を行うことが難しい、といった問題もあった。
本発明は上記課題に鑑みて為されたものであり、複数のマスタモジュールとそれら複数のマスタモジュールに共有されるスレーブモジュールとがバスに接続されるシステムにおいて、マスタモジュールとスレーブモジュールとに無駄なくデータ転送を行わせるとともに、何れかのマスタモジュールのデータ転送量に依存した性能設計を容易にする技術を提供することを目的とする。
本発明は上記課題に鑑みて為されたものであり、複数のマスタモジュールとそれら複数のマスタモジュールに共有されるスレーブモジュールとがバスに接続されるシステムにおいて、マスタモジュールとスレーブモジュールとに無駄なくデータ転送を行わせるとともに、何れかのマスタモジュールのデータ転送量に依存した性能設計を容易にする技術を提供することを目的とする。
上記課題を解決するために本発明は、バスを介して各々データ転送を行う複数のマスタモジュールと前記複数のマスタモジュールに共有されるスレーブモジュールと、を有し、前記スレーブモジュールは、前記バスを介したデータ転送の制限の要否をマスタモジュール毎に判定し、制限を要すると判定されたマスタモジュールにデータ転送の制限を指示し、前記複数のマスタモジュールの各々は、前記スレーブモジュールから与えられる指示にしたがって、当該スレーブモジュールとの間のデータ転送を制限することを特徴とするバス共有システム、を提供する。
本発明によれば、スレーブモジュール側でマスタモジュール毎にデータ転送の制限の要否が判定され、制限を要すると判定されたマスタモジュールにはスレーブモジュールからその旨が指示される。そして、この指示を受けたマスタモジュールでは、当該スレーブモジュールとの間のデータ転送を制限する処理が実行される。このため、そのままデータ転送を継続したとすれば長期間に亘ってデータ転送帯域を使う可能性が高いマスタモジュール(例えば、優先順位の最も高いマスタモジュール等)のデータ転送を制限し、その他のマスタモジュールについて長期間に亘ってアイドル状態が継続したり、必要な帯域を確保できなくなったりすることを回避することが可能になる。また、上記バスに複数のスレーブモジュールが接続されている場合には、データ転送の制限の要否を判定する際の判定基準をスレーブモジュール毎に異ならせることで、データ転送を制限されるスレーブモジュールがマスタモジュール毎に異なり得ることになる。このため、あるスレーブモジュールとの間のデータ転送を継続する可能性が高いマスタモジュールについては、そのスレーブモジュールとの間のデータ転送に制限を課し、データ転送に何らの制限を課されていない他のスレーブモジュールとの間のデータ転送を行わせるようにするとともに、当該他のスレーブモジュールと他のマスタモジュールとのデータ転送に制限を課すようにすれば、各マスタモジュールに無駄なくデータ転送を行わせることを可能になる。
なお、特許文献1には、バスマスタ(マスタモジュール)がバススレーブ(スレーブモジュール)の現在の状態を認識することにより、同一のバススレーブを連続してアクセスしないようにし、無駄なウェイトをなくしてシステムを高速化する技術が開示されている。一方、特許文献2には、1つのバスマスタのみがバス幅をフルに使わないようなアクセス時においては、そのバスマスタにバスを占有させないようにすることで、システムの複雑化を防止しつつ、バス帯域の使用効率を向上させる技術が開示されている。しかし、これら各特許文献に開示された技術では、各マスタモジュールに無駄なくデータ転送を行わせることができるとは限らず、本願発明とは異なる発明である。
ここで、上記判定基準としては種々のものが考えられる。例えば、予め定められた一定の時間(以下、単位処理時間)におけるデータ転送量の上限値をマスタモジュール毎に定めておくとともに、スレーブモジュール側で単位処理時間における転送済みデータ量をマスタモジュール毎にカウントし、転送済みデータ量が上記上限値に達したか否を上記判定基準とすること(すなわち、転送済みデータ量が上限値に達した場合に制限をかける態様)が考えられる。また、スレーブモジュールとの間のデータ転送を制限する際の具体的な態様についても種々のものが考えられる。例えば、スレーブモジュール側から制限をかけることを指示された場合には、同スレーブモジュールから制限解除を指示されるまでデータ転送を停止する(そのスレーブモジュールへの新たなアクセス要求の送信を停止する)態様や、制限解除を指示されるまでデータ転送速度を低く抑える(例えば、アクセス要求の送信間隔を長くする)態様などが考えられる。また、スレーブモジュールがメモリコントローラであり、そのメモリコントローラによりアクセス制御を受けるメモリが複数のバンクを含むものである場合には、データ転送に特段の制限をかけない状態においては各マスタモジュールに対してそれら複数のバンクのうちの任意のものへのアクセスを許可し、制限をかけた状態ではそれら複数のバンクのうちの特定のものへのアクセスのみを許可するような態様であっても良い。
また、本発明の別の態様においては、バスを介して複数のマスタモジュールの各々との間でデータ転送を行うデータ転送手段と、前記複数のマスタモジュールの各々についてデータ転送の制限の要否を判定する判定手段と、前記判定手段により制限を要すると判定されたマスタモジュールが実行するデータ転送が制限されるように当該マスタモジュールに指示を与える転送制限手段とを有することを特徴とするスレーブモジュールを提供する態様であっても良い。同様に、バスを介してスレーブモジュールとの間でデータ転送を行うためのデータ転送手段と、前記データ転送手段によるデータ転送を実行する際には前記バスを介してアクセス要求を送信し、アクセス許可が与えられたことを契機としてそのデータ転送を開始するとともに、前記スレーブモジュールからデータ転送の制限を指示された場合には、その制限を解除する旨を当該スレーブモジュールから指示されるまで前記データ転送手段によるデータ伝送の実行を制限する処理を実行する転送制御手段とを有することを特徴とするマスタモジュールを提供する態様であっても良い。
以下、図面を参照しつつ本発明の実施形態について説明する。
(A:構成)
図1は、本発明の一実施形態のバス共有システムの構成例を示す図である。
このバス共有システムは、例えばゲーム機などの電子機器に組み込まれ、ゲーム等の進行に合わせて各シーンを構成する画像や音声の再生制御を行うものである。図1に示すように、このバス共有システムは、バス30に接続された3つのマスタモジュール(マスタモジュール10A、10Bおよび10C)と、同じくバス30に接続され、これら3つのマスタモジュールによって共有される2つのスレーブモジュール(スレーブモジュール20Xおよび20Y)を含んでいる。
(A:構成)
図1は、本発明の一実施形態のバス共有システムの構成例を示す図である。
このバス共有システムは、例えばゲーム機などの電子機器に組み込まれ、ゲーム等の進行に合わせて各シーンを構成する画像や音声の再生制御を行うものである。図1に示すように、このバス共有システムは、バス30に接続された3つのマスタモジュール(マスタモジュール10A、10Bおよび10C)と、同じくバス30に接続され、これら3つのマスタモジュールによって共有される2つのスレーブモジュール(スレーブモジュール20Xおよび20Y)を含んでいる。
スレーブモジュール20Xおよび20Yは、メモリコントローラであり、各々異なるメモリ(例えば、DRAMやSRAMなど)に接続されている。スレーブモジュール20Xおよび20Yは、各々の接続先のメモリに対する各マスタモジュールからのアクセス(データの読み出しやデータの書き込み)の制御を行う。以下、スレーブモジュール20Xおよび20Yの各々を区別する必要がない場合には「スレーブモジュール20」と表記する。
マスタモジュール10A、10Bおよび10Cの各々は、ホストCPU(図示略)による制御の下、バス30に接続されているスレーブモジュール20との間でデータ転送を行う。これら3つのマスタモジュールは、各々異なる役割を担っている。マスタモジュール10Cは、所謂DMAコントローラであり、USBメモリなどの補助記憶装置(図1では図示略)に格納されている各種データを読み出し、スレーブモジュール20を介して各メモリへDMA転送する。本実施形態にてUSBメモリからメモリへDMA転送されるデータの一例としては、各シーンにて一定のフレームレート(1秒当たり30フレーム等)で再生させる各画像の画像データに圧縮符号化を施して得られる圧縮符号化データや、同じく各シーンにて再生される音声を所定のサンプリング周期(44.1kHz等)でサンプリングして得られる音声データなどが挙げられる。このマスタモジュール10Cは、各シーンにて再生する画像や音声に対応するデータをそのシーンの開始前に予め配下のメモリへDMA転送しておく役割を担う。ただし、次のシーンにて再生される音声や画像に対応するデータの全部または一部が既に配下のメモリに格納されている場合には、当該格納済みのデータに関して上記DMA転送が再度実行されることはない。つまり、マスタモジュール10Cが実行するデータ転送は、必要に応じて随時行われ、かつ、転送データ量もその時々に異なりえる非周期的なデータ転送である。
図1のマスタモジュール10Aは画像処理機能を担う。このマスタモジュール10Aは、マスタモジュール10CによってメモリへDMA転送された圧縮符号化データをスレーブモジュール20を介して読み出しデコードするデコーダと、そのデコード結果の画像データに応じた画像の表示制御を行う表示制御回路とを含んでいる(何れも図示略)。マスタモジュール10Bは音声処理機能を担う。このマスタモジュール10Bは、マスタモジュール10CによってメモリへDMA転送された音声データをスレーブモジュール20を介して読み出し、その音声データに応じた音声を音として出力する処理を実行する。マスタモジュール10A(或いはマスタモジュール10B)によるデータ転送は、フレームレート等に応じて周期的に実行されるデータ転送である。以下では、マスタモジュール10A、10Bおよび10Cの各々を区別する必要がない場合には「マスタモジュール10」と表記する。
バス30は、所謂マルチプレクサである。マスタモジュール10A、10Bおよび10Cの各々は、スレーブモジュール20との間でデータ転送を行う場合、従来のものと同様に、まず、アクセス要求を送信し、アクセス許可を受信するとそのデータ転送を開始するように構成されている。マスタモジュール10A、10Bおよび10Cの各々には予め優先順位が付けられている。例えば、マスタモジュール10Cの優先順位が最も高く、次いでマスタモジュール10Bの優先順位が高く、マスタモジュール10Aの優先順位が最も低い、といった具合である。複数のマスタモジュールからのアクセス要求が競合した場合、バス30のバス調停回路(図示略)では優先順位にしたがってその調停が行われる。また、マスタモジュール10A、10Bおよび10Cの各々は、データ転送の停止を指示する旨のサブバンド信号(以下、停止指示信号)をバス30を介してスレーブモジュール20から受信すると、停止解除を指示する旨のサブバンド信号(停止解除信号)を当該スレーブモジュール20から受信するまで、当該スレーブモジュール20へのアクセス要求の送信を停止するように構成されている。
前述したように、マスタモジュール10A(或いはマスタモジュール10B)とスレーブモジュール20との間のデータ転送は、一定のフレームレート等に応じた周期で実行される周期的なデータ転送である。これに対して、マスタモジュール10CによるDMA転送は必要に応じて随時行われる非周期的なデータ転送である。このような非周期的なデータ転送が無条件に行われてしまうと、周期的なデータ転送の実行時に十分な帯域を確保することができず、その実行が妨げられることがある。そこで、本実施形態では、単位処理時間における各マスタモジュールのデータ転送量を各スレーブモジュール20に制御させ、非周期的なデータ転送の実行によって周期的なデータ転送の実行が妨げられないようにするとともに、マスタモジュール10Cについても適正なデータ転送帯域が確保されるようにしているのである。以下、マスタモジュール10およびスレーブモジュール20の構成について詳細に説明する。
図2は、マスタモジュール10とスレーブモジュール20の構成例を示すブロック図である。図2に示すようにマスタモジュール10は、データ転送部110と、転送制御部120を含んでいる。データ転送部110は、バス30を介してスレーブモジュール20との間でデータ転送を行う。転送制御部120は、ホストCPUによる制御の下でデータ転送部110によるデータ転送の実行を制御する。転送制御部120は、スレーブモジュール20との間のデータ転送の実行をホストCPUから指示されると、アクセス要求を送信し、アクセス許可が与えられたことを契機として、そのデータ転送をデータ転送部110に開始させる。加えて、転送制御部120は、データ転送部110によるデータ転送の相手側デバイスであるスレーブモジュール20から停止指示信号SSを受信した場合に、当該スレーブモジュール20から停止解除信号RSを受け取るまでそのスレーブモジュール20とのデータ転送を停止する処理も実行する。具体的には、転送制御部120は、停止指示信号SSを受信した場合には、その停止指示信号SSの送信元であるスレーブモジュール20から停止解除信号RSを受信するまで、そのスレーブモジュール20に対する新たなアクセス要求の送信を停止するのである。
以上がマスタモジュール10の構成である。
以上がマスタモジュール10の構成である。
次いでスレーブモジュール20の構成について説明する。図2に示すようにスレーブモジュール20は、データ転送部210と、タイマ220と、転送量カウンタ230と、転送制御部240を含んでいる。データ転送部210は、バス30を介してマスタモジュール10から送られてくるデータをメモリへ書き込む処理、および同メモリから読み出したデータをバス30を介してマスタモジュール10に引渡す処理を実行する。タイマ220は、所定の単位処理時間を繰り返し計時する計時手段である。この単位処理時間は、所定周波数のクロック(例えば、バス共有システムのシステムクロック等)の何クロック分に相当するかの数値により表わされる。例えば、単位処理時間が上記所定周波数のクロックのNクロック分に相当する場合、タイマ220は、上記所定周波数のクロックをカウントし、そのカウント値がNになったことを契機としてパルスPを発生させる。ここで、単位処理時間をどのような長さにするのかについては後に詳細に説明する。
転送量カウンタ230は、データ転送部210を介して転送されたデータのデータ量(転送済みデータ量)を相手側デバイスであるマスタモジュール10毎にカウントする手段である。図2に示すように転送量カウンタ230にはタイマ220が発生させるパルスPが与えられる。転送量カウンタ230はパルスPを検出すると、それまでのカウント値をゼロにリセットし、その後、転送済みデータ量のカウントを再開する。つまり、図2の転送量カウンタ230は、単位処理時間における転送済みデータ量をマスタモジュール10毎にカウントする手段として機能するのである。
転送制御部240は、バス30を介して送信されてくるアクセス要求の送信元へアクセス許可を返信する処理の他に、本実施形態の特徴を顕著に示す処理を実行する。具体的には、転送制御部240は、転送量カウンタ230によりマスタモジュール10毎にカウントされた転送済みデータ量の各々がマスタモジュール毎に予め定められた上限値に達したか否かを判定し、当該上限値に達したと判定されたマスタモジュール10に停止指示信号SSを送信する処理を実行する。図2に示すように、転送制御部240にはタイマ220が発生させるパルスPが与えられる。転送制御部240は、パルスPを検出すると、アクセスの停止を指示したマスタモジュールに対して停止解除信号RSを与える。つまり、転送制御部240は、単位処理時間における転送済みデータ量が予め定められた上限値に達したマスタモジュールのデータ転送を、次の単位処理時間の計時が開始されるまで制限する(停止させる)制御手段の役割を果たすのである。なお、上限値については、例えば各スレーブモジュール20の初期化ステップにおいて、ホストCPU等によるレジスタ(図示略)への書き込みで設定させるようにすれば良い(単位処理時間についても同様)。また、上限値をどのような値とするかについては後に詳細に説明する。
次いで、単位処理時間や各マスタモジュールのデータ転送量の上限値をどのように定めるかについて説明する。単位処理時間については、どの程度の時間単位で各マスタモジュールのデータ転送量を制御する必要があるのかといった要求仕様との兼ね合いで適宜定めるようにすれば良い。具体的には、周期的なデータ転送の実行周期に応じて定めるようにしても良いし、それら周期的なデータ転送の実行周期とは無関係に1ミリ秒や10ミリ等としても良い。前者の態様であれば、本実施形態のように各々周期の異なる複数種の周期的なデータ転送が含まれている場合には、それらのうちの最も短い周期と等しくなるように単位処理時間を定める態様やそれら複数の周期の最大公約数となるように単位処理時間を定める態様等が考えられる。
一方、各マスタモジュール10のデータ転送量の上限値については、単位処理時間の長さとの兼ね合いでバス共有システムに対する要求仕様を満たすように定めるようにすれば良い。ただし、非周期的なデータ転送の実行によって周期的なデータ転送の実行が妨げられないように各上限値を設定する必要がある。すなわち、スレーブモジュール20との間のデータ転送の単位処理時間あたりの転送帯域幅に対して、周期的なデータ転送を実行するマスタモジュールについてはそのデータ転送を実現するために単位処理時間にて転送を完了するべきデータ量(以下、単位時間当たりの要求データ量)に対して余裕のある上限値を設定し、非周期的なデータ転送を実行するマスタモジュールについては十分に小さな上限値を設定するのである。例えば、単位処理時間がデータの転送周期の1/N(Nは2以上の整数)である場合には、周期的なデータ転送を実行するマスタモジュールについての上記上限値は一周期当たりのデータ転送量の1/N以上の値とすれば良い。なお、マスタモジュール10とスレーブモジュール20との間の単位処理時間当たりのデータ転送量に上限値を設けたのは非周期的なデータ転送が無制限に実行されることによって、周期的なデータ転送の実行が妨げられないようにするためである。したがって、周期的なデータ転送を実行するマスタモジュールについては転送量の制限を行わないようにしても良い。
例えば、本実施形態のように、画像や音声により構成される各シーンの再生制御を行うシステムの場合には、単位処理時間を周期的なデータ転送の実行周期よりも短くし、かつ、マスタモジュール10Cが実行する非周期的なデータ転送に対して次のシーンの開始までにそのデータ転送が完了するように単位処理時間における上限値を設定することが好ましい。これは、マスタモジュール10Cによるデータ転送は次のシーンの開始までに完了しておれば良いこと(すなわち、マスタモジュール10Aや10Bによるデータ転送に比較して時間的な制約が緩いこと)に着目したものである。単位処理時間をこのように設定しておけば、マスタモジュール10Cについての上限値を、次のシーンの開始までにデータ転送が完了する程度の大きさに設定することで、そのデータ転送に支障が生じること(すなわち、システム全体としての破綻が生じること)を回避しつつ、周期的なデータ転送の実行の妨げとならないようにすることが可能になる。
(B:動作)
以下、図3を参照しつつ、画像データの転送周期(フレーム周期)TFに比較して単位処理時間Tが短い場合(例えば、TF=N×T:Nは2以上の整数)の動作の概要を説明する。なお、以下に説明する動作例においては、1つのシーンには複数の画像(図3に示す例では、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内に完了することを保証することができるのである。
以下、図3を参照しつつ、画像データの転送周期(フレーム周期)TFに比較して単位処理時間Tが短い場合(例えば、TF=N×T:Nは2以上の整数)の動作の概要を説明する。なお、以下に説明する動作例においては、1つのシーンには複数の画像(図3に示す例では、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内に完了することを保証することができるのである。
図3は、単位処理時間T、フレーム周期TFおよびシーン周期TSの関係を表わすとともに、バス30を介してマスタモジュール10A、10Bおよび10Cの各々とスレーブモジュール20Xとの間で行われるデータ転送の概要を表わす図である。なお、図3においては、シーン周期TSの先頭からn(n=1〜N)番目のフレーム周期TFを「TF(n)」と表現し、フレーム周期TF(n)の先頭からm(m=1〜M)番目の単位処理時間Tを「T(m)」と表記した。また、以下に説明する動作例では、マスタモジュール10Bによる音声データの転送周期は単位処理時間Tよりも短く、かつ、一周期分当たりのデータ転送量もマスタモジュール10Aの一周期分のデータ転送量に比較して十分に少ないものとする(図3参照)。
図3に示す時刻t0の時点において、マスタモジュール10A、10Bおよび10Cの各々からスレーブモジュール20Xに対するアクセス要求が送信されると、バス30のバス調停回路(図示略)によってそれらアクセス要求の競合が各マスタモジュールの優先順位にしたがって調停される。前述したように、本動作例では、マスタモジュール10Cの優先順位が最も高いため、マスタモジュール10Cからのアクセス要求がスレーブモジュール20Xに与えられる。マスタモジュール10Cは、スレーブモジュール20Xからアクセス許可を与えられると、スレーブモジュール20Xとの間のデータ転送を開始する。そして、マスタモジュールCとスレーブモジュール20Xとの間でデータ転送が行われている間、マスタモジュール10Aおよび10Bはアイドル状態となる。このデータ転送が行われている間、転送済みのデータ量がスレーブモジュール20Xの転送量カウンタ230によってカウントされ、そのカウント値が予め定められた上限値(本動作例では、D/(N×M))に達するとスレーブモジュール20Xの転送制御部240からマスタモジュール10Cに停止指示信号SSが送信される。この停止指示信号SSを受信するとマスタモジュール10Cは、停止解除信号RSをスレーブモジュール20Xの転送制御部240から受け取るまで、バスアクセスを停止する。
単位処理時間T(1)のうち上記停止指示信号SSがマスタモジュール10Cに対して発せられた以降の期間においては、マスタモジュール10Aおよび10Bの各々のデータ転送の実行がマスタモジュール10Cによって妨げられることはない。なお、マスタモジュール10Bはマスタモジュール10Aよりも高い優先順位を有しているが、前述したように一回当たりの転送データ量が少ないため、マスタモジュール10Aのデータ転送の実行を妨げることはない。マスタモジュール10Aおよび10Bについては単位処理時間Tにおけるデータ転送量に上限値は定められていないため、マスタモジュール10Aおよび10Bに対してデータ転送の停止が指示されることはなく、これらマスタモジュールとスレーブモジュール20Xとの間のデータ転送は継続され、各々一定の転送帯域が確保されるのである。その結果、マスタモジュール10Aおよび10Bは、所定のデータ処理期間(本動作例では、フレーム周期TF)内にデータ転送を実施することができる。
時刻t0から単位処理時間Tが経過するとタイマ220はパルスPを発生させる。スレーブモジュール20Xの転送量カウンタ230は、このパルスPを検出すると、そのカウント値をゼロにリセットした後に転送済みデータ量のカウントを再開する。また、スレーブモジュール20Xの転送制御部240は、上記パルスPを検出したことを契機として停止解除信号RSをマスタモジュール10Cに送信する。この停止解除信号RSを受け取ったマスタモジュール10Cはスレーブモジュール20Xとの間のデータ転送を再開する。以降、単位処理時間T(2),T(3)・・・の各々において上記動作が繰り返し実行される。なお、図3に示すように、マスタモジュール10Aとスレーブモジュール20Xとの間のデータ転送がフレーム周期TFの経過前に完了した場合には、そのデータ転送が完了した時点からフレーム周期TFの終端までの残りの期間においては、同データ転送に用いられていた帯域は余裕帯域となる。また、マスタモジュール10Cとスレーブモジュール20Xとの間のデータ転送は、図3に示すように単位処理時間毎に細切れに実行されることとなるが、マスタモジュール10Cが実行するデータ転送はシーン周期TSが経過するまでには完了するので、特段の問題が生じることはない。
前述したように、マスタモジュール10Cが行うデータ転送は非周期的なデータ転送である。従来は、このような非周期的なデータ転送の実行に特段の制限を掛けてはいなかったため、マスタモジュール10Aやマスタモジュール10Bの転送帯域幅はマスタモジュール10Cによるデータ転送が実行されているときと、そうでないときとで大きく変化する。このため、マスタモジュール10Aおよび10Bのデータ転送量(例えば、フレーム周期TF当たりのデータ転送量)に依存した性能設計を行うことは難しかったのである。これに対して、本実施形態では、次の単位処理時間Tの計時が開始されるまでマスタモジュール10Cはスレーブモジュール20Xとの間のデータ転送の実行を制限され、マスタモジュール10Aおよび10Bが実行するデータ転送に対して一定の転送帯域が確保されるため、これらのデータ転送量に依存する性能設計が容易になるのである。
また、マスタモジュール10Cは、スレーブモジュール20Xとの間のデータ転送を制限された場合であっても、スレーブモジュール20Yとの間のデータ転送が制限されるか否かについては、別個独立にスレーブモジュール20Yの転送制御部240によって判定される。このため、マスタモジュール10Cについては、スレーブモジュール20Xとのデータ転送は制限されるものの、スレーブモジュール20Yとのデータ転送は特段の制限を受けないといったことが起こり得る。同様にマスタモジュール10Aおよび10Bについても、スレーブモジュール20Xとのデータ転送は特段の制限を受けないものの、スレーブモジュール20Yとのデータ転送には何らかの制限が課されるといったことも起こり得る。したがって、マスタモジュール10との間のデータ転送に制限を課すか否かの判定基準をスレーブモジュール20毎に適切に設定しておけば、マスタモジュール10とスレーブモジュール20とに無駄なくデータ転送を行わせることができるのである。
このように本実施形態では、マスタモジュール10Cは、単位処理時間Tが経過するまでに予め定められた上限値に相当するデータをスレーブモジュール20Xに転送した後は、その単位処理時間Tが経過するまでスレーブモジュール20Xへのアクセス要求の送信が制限されるが、周期的に制限が緩和または解除されるため、スレーブモジュール20Xに対するアクセス待ちによって長期間に亘ってアイドル状態となることはない。加えて、その間にスレーブモジュール20Yとの間のデータ転送に制限が課されていなければ、マスタモジュール10Cはスレーブモジュール20Yとの間のデータ転送を実行することもできる。つまり、本実施形態によれば、マスタモジュール10とスレーブモジュール20とに無駄なくデータ転送を行わせることが可能になるとともに、何れかのマスタモジュール10のデータ転送量に依存した性能設計を容易に行えるようになるのである。
(C:変形)
以上、本発明の一実施形態について説明した。しかし、かかる実施形態に以下に述べる変形を加えても良いことは勿論である。
(1)上述した実施形態では、単位処理時間Tを画像データの転送周期TFよりも短く設定した。しかし、単位処理時間をシーン周期TSよりは短く、かつ、フレーム周期TFよりは長く設定しても勿論良い。図4は、単位処理時間Tをマスタモジュール10Aおよび10Bの転送周期よりも長く(前者の転送周期はT/3に相当し、後者の転送周期はT/2に相当する)、かつシーン周期よりは短く(シーン間隔は数十〜数百T程度)設定し、マスタモジュール10Aおよび10Bについての上限値を一周期分のデータ転送量よりも十分に大きくした場合の動作を概念的に示した図である。
以上、本発明の一実施形態について説明した。しかし、かかる実施形態に以下に述べる変形を加えても良いことは勿論である。
(1)上述した実施形態では、単位処理時間Tを画像データの転送周期TFよりも短く設定した。しかし、単位処理時間をシーン周期TSよりは短く、かつ、フレーム周期TFよりは長く設定しても勿論良い。図4は、単位処理時間Tをマスタモジュール10Aおよび10Bの転送周期よりも長く(前者の転送周期はT/3に相当し、後者の転送周期はT/2に相当する)、かつシーン周期よりは短く(シーン間隔は数十〜数百T程度)設定し、マスタモジュール10Aおよび10Bについての上限値を一周期分のデータ転送量よりも十分に大きくした場合の動作を概念的に示した図である。
図4に示す時刻t0の時点において、マスタモジュール10A、10Bおよび10Cの各々から送信されたアクセス要求が競合すると、バス30のアクセス調停回路(図示略)は、各マスタモジュールの優先順位にしたがってアクセス要求の競合を調停する。本変形例では前述した実施形態とは異なり、マスタモジュール10Aに最も高い優先順位が与えられており、マスタモジュール10Bには次に高い優先順位が与えられており、マスタモジュール10Cの優先順位が最も低くなっている。このため、上記バス調停回路は、マスタモジュール10A、10Bおよび10Cの各々からのアクセス要求が競合すると、マスタモジュール10Aにアクセス許可を与える。すると、マスタモジュール10Aは、バス30を介してスレーブモジュール20Xとの間のデータ転送を行う。このデータ転送が行われている間、転送済みのデータ量がスレーブモジュール20Xの転送量カウンタ230によってカウントされる。前述したように単位処理時間Tにおけるマスタモジュール10Aについての上限値は一周期分のデータ転送量よりも十分に大きいため、同転送量カウンタ230のカウント値が当該上限値に達する前に一周期分のデータ転送が完了する。このため、このデータ転送の実行過程でスレーブモジュール20Xの転送制御部240からマスタモジュール10Aに停止指示信号SSが送信されることはない。
このようにマスタモジュール10Aには停止指示信号SSは与えられないのであるから、一周期分のデータ転送が完了した後もマスタモジュール10Aはアクセス要求を送信することができる。しかし、マスタモジュール10Aが行うデータ転送の実行周期はT/3であるため、その実行周期T/3が経過するまでマスタモジュール10Aがアクセス要求を送信することはない。このため、優先順位に基づく調停の下、マスタモジュール10Bにアクセス許可が与えられる。マスタモジュール10Bとスレーブモジュール20Xとの間のデータ転送についても同様に、そのデータ転送が行われている間、転送済みデータ量がスレーブモジュール20Xの転送量カウンタ230によってカウントされる。前述したようにマスタモジュール10Bについても上限値が十分に大きい値に設定されているため、一周期分のデータ転送量が当該上限値に達することはなく、スレーブモジュール20Xの転送制御部240からマスタモジュール10Bへ停止指示信号SSが送信されることはない。
マスタモジュール10Bとスレーブモジュール20Xとの間の一周期分のデータ転送が完了すると、転送周期T/2が経過するまでマスタモジュール10Bがアクセス要求を行うことはなく、マスタモジュール10Cとスレーブモジュール20Xとの間のデータ転送が開始される。このデータ転送が行われている間、転送済みデータ量がスレーブモジュール20Xの転送量カウンタ230によってカウントされ、上限値に達すると同転送制御部240からマスタモジュール10Cへ停止指示信号SSが送信される。以後、マスタモジュール10Cは、停止解除信号RSを同転送制御部240から受信するまでアクセス要求を送信することはない。ここで、スレーブモジュール20Xの転送制御部240は時刻t0から単位処理時間Tが経過するまでは停止解除信号RSを送信することはないのであるから、単位処理時間Tが経過するまで(すなわち、時刻t0+Tに到るまで)はマスタモジュール10Cがアクセス要求を送信することはない。このように、次の単位処理時間Tの計時が開始されるまでマスタモジュール10Cはデータ転送の実行を制限されるため、図4に示すように、マスタモジュール10Aによる2周期目のデータ転送やマスタモジュール10Bによる2周期目のデータ転送の実行が妨げられることはなく、これらのデータ転送量に依存する性能設計が容易になる。
(2)上述した実施形態のスレーブモジュール20Xは、これに接続するマスタモジュールに対して1つのタイマで単位処理時間を計時したが、スレーブモジュール20X内にて各マスタモジュールに対して個別にタイマを持っても良い。また、上述した実施形態のようにスレーブモジュールが複数の場合、システム全体で1つのタイマを共有しても、各スレーブモジュールが1つのタイマを持っていても、各マスタモジュール、スレーブモジュールのペア毎にタイマを持っても良い。
(3)上述した実施形態では、転送量カウンタ230によりカウントされたデータ転送量が予め定められた上限値に達したマスタモジュール10については、次の単位処理時間の計時が開始されるまでスレーブモジュール20との間のデータ転送を停止させたが、転送速度を引き下げてデータ転送を継続させる(具体的には、アクセス要求の送信間隔を長くさせる)ようにしても良い。また、スレーブモジュール20に接続されるメモリが複数のバンクを含むものである場合には、それら複数のバンクのうちアクセスを許可するバンクを制限する態様(例えば、単位処理時間におけるデータ転送量が上限値に達するまでは全てのバンクに対するアクセスを許可し、上限値に達した以降は特定のバンクに対するアクセスのみを許可する態様)であっても良い。要は、転送量カウンタによりカウントされたデータ転送量が予め定められた上限値に達したマスタモジュールについては、次の単位処理時間の計時が開始されるまでスレーブモジュールとの間のデータ転送に何らかの制限を加える態様であれば良い。
(4)上述した実施形態では、単位処理時間における各マスタモジュール10のデータ転送量の上限値が固定されていたが、時間の経過とともに上記上限値を変化させるようにしても良い。また、上述した実施形態では、単位処理時間におけるデータ転送量が予め定められた上限値に達したマスタモジュール10に対してデータ転送の停止をサブバンド信号の送信により指示したが、バスプロトコルにて予め用意されている停止指示コマンドを用いてその指示を行うようにしても良い。
(5)上述した実施形態では、データ転送に制限をかけるか否かの判定基準として、単位処理時間における転送済みデータ量が予め定められた上限値に達したか否かを用いたが、他の判定基準を採用しても良いことは勿論である。例えば、各マスタモジュールによるアクセスをアプリケーションの実行によるものか、それともOS(Operating System)の実行によるものかに分類し、アプリケーションによるアクセスを実行している間はOSによるアクセスに制限をかけるといった態様(すなわち、アプリケーションの実行によるアクセスの有無を判定基準とする態様)が考えられる。他にも、省電力モードでの動作など電力制御を行っているか否かを判定基準とする態様や、スレーブモジュールに掛かっている処理負荷が所定の閾値を超えたか否かを判定基準とする態様などが考えられる。
(6)上述した実施形態では、バス30に3つのマスタモジュール(画像処理機能を担うマスタモジュール10A、音声処理機能を担うマスタモジュール10BおよびDMAコントローラの役割を果たすマスタモジュール10C)が接続される場合について説明したが、2つまたは4つ以上のマスタモジュールを接続しても良いことは言うまでもない。同様にバス30に1つまたは3つ以上のスレーブモジュールが接続される態様であっても良い。また、マスタモジュールの種類も上記3種類に限定されるものではなく、CPUやDSPであっても勿論良く、スレーブモジュールの種類もメモリコントローラに限定されるものではない。また、上述した実施形態では、バス30に接続される複数のマスタモジュールのうちの1つが非周期的なデータ転送を行う場合について説明したが、それらのうちの複数のものが非周期的なデータ転送を行う態様であっても良く、また、それらの全てが周期的なデータ転送を行う態様であっても良い。
(7)スレーブモジュール20によるアクセスコントロールの対象は、DRAMやSRAM等だけでなく、一般的なストレージデバイスやデータの読み出しのみが可能なROMであっても良い。また、スレーブモジュール20によるアクセスコントロールの対象が比較的低速なROMなどのストレージデバイスである場合には、高速なアクセスを必要とするマスタモジュールに対するデータを必要に応じて別メモリに転送する形態も考えられる。限られた帯域を有効に使用し、システムの破綻を防止しつつ性能設計を容易にするという意味では、低速なストレージデバイスに対するアクセス制御に本発明を適用することによって顕著な効果が得られるからである。
(8)上述した実施形態では各マスタモジュールが実行するデータ転送を周期的に実行されるものと、非周期的に実行されるものとに分類し、後者に対してのみ単位処理時間当たりのデータ転送量に上限値を設定した。しかし、データ転送の開始からその完了までに許容される時間(以下、許容時間)が所定の閾値を超えるか否かによって各マスタモジュールを分類し、超えないものに対しては、許容時間内にデータ転送を完了するように定められる単位処理時間あたりのデータ転送量に対して余裕のある上限値を設定し(或いは、上限値を設定しない)、超えるものに対しては十分に小さな上限値を設定するようにしても良い。このような態様によれば、データ転送の開始からその完了までの許容時間が所定の閾値を超えるマスタモジュール(すなわち、時間的な制約が緩やかなデータ転送を実行するマスタモジュール)については単位処理時間におけるデータ転送の実行が厳しく制限され、許容時間が閾値を超えないマスタモジュール(すなわち、時間的な制約が厳しいデータ転送を実行するマスタモジュール)に対してデータ転送帯域が優先的に確保されることになる。なお、上記閾値としてどのような値を採用するのかについては、複数のマスタモジュールとスレーブモジュールとを含むシステム全体に対する要求仕様に基づいて定めるようにすれば良い。例えば、上述した実施形態は、本変形例における閾値としてシーン周期TSよりは小さく、かつ、フレーム周期TFよりは大きい値を採用した場合に相当する。
10A、10B、10C…マスタモジュール、20X,20Y…スレーブモジュール、30…バス、110,210…データ転送部、220…タイマ、230…転送量カウンタ、120,240…転送制御部。
Claims (1)
- バスを介して各々データ転送を行う複数のマスタモジュールと前記複数のマスタモジュールに共有されるスレーブモジュールと、を有し、
前記スレーブモジュールは、前記バスを介したデータ転送の制限の要否をマスタモジュール毎に判定し、制限を要すると判定されたマスタモジュールにデータ転送の制限を指示し、
前記複数のマスタモジュールの各々は、前記スレーブモジュールから与えられる指示にしたがって、当該スレーブモジュールとの間のデータ転送を制限する
ことを特徴とするバス共有システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009248702A JP2011095967A (ja) | 2009-10-29 | 2009-10-29 | バス共有システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009248702A JP2011095967A (ja) | 2009-10-29 | 2009-10-29 | バス共有システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011095967A true JP2011095967A (ja) | 2011-05-12 |
Family
ID=44112808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009248702A Withdrawn JP2011095967A (ja) | 2009-10-29 | 2009-10-29 | バス共有システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011095967A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045348A (ja) * | 2011-08-25 | 2013-03-04 | Renesas Electronics Corp | 半導体集積回路装置 |
KR20140035959A (ko) | 2011-05-27 | 2014-03-24 | 닛산 가가쿠 고교 가부시키 가이샤 | 규소계 액정 배향제, 액정 배향막 및 액정 표시 소자 |
KR20150038300A (ko) | 2012-07-31 | 2015-04-08 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향제, 액정 배향막, 액정 표시 소자 및 액정 표시 소자의 제조 방법 |
KR20150052120A (ko) | 2012-08-30 | 2015-05-13 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향 처리제 및 그것을 사용한 액정 표시 소자 |
KR20150082365A (ko) | 2012-11-06 | 2015-07-15 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향제, 액정 배향막 및 액정 표시 소자 |
JP2018120490A (ja) * | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 |
US11029860B2 (en) | 2018-08-15 | 2021-06-08 | Seiko Epson Corporation | Control device, display device, and method for controlling memory power-saving state |
-
2009
- 2009-10-29 JP JP2009248702A patent/JP2011095967A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140035959A (ko) | 2011-05-27 | 2014-03-24 | 닛산 가가쿠 고교 가부시키 가이샤 | 규소계 액정 배향제, 액정 배향막 및 액정 표시 소자 |
JP2013045348A (ja) * | 2011-08-25 | 2013-03-04 | Renesas Electronics Corp | 半導体集積回路装置 |
KR20150038300A (ko) | 2012-07-31 | 2015-04-08 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향제, 액정 배향막, 액정 표시 소자 및 액정 표시 소자의 제조 방법 |
KR20150052120A (ko) | 2012-08-30 | 2015-05-13 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향 처리제 및 그것을 사용한 액정 표시 소자 |
KR20150082365A (ko) | 2012-11-06 | 2015-07-15 | 닛산 가가쿠 고교 가부시키 가이샤 | 액정 배향제, 액정 배향막 및 액정 표시 소자 |
JP2018120490A (ja) * | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 |
CN108363669A (zh) * | 2017-01-26 | 2018-08-03 | 佳能株式会社 | 存储器访问系统、其控制方法、存储介质及图像形成装置 |
US11163711B2 (en) | 2017-01-26 | 2021-11-02 | Canon Kabushiki Kaisha | Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus |
US11029860B2 (en) | 2018-08-15 | 2021-06-08 | Seiko Epson Corporation | Control device, display device, and method for controlling memory power-saving state |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011095967A (ja) | バス共有システム | |
JP5047249B2 (ja) | 割り込みポストトランザクションに対する保留メカニズム | |
US20070174344A1 (en) | Rate control of flow control updates | |
JP5330513B2 (ja) | 調停装置、調停システム、調停方法、半導体集積回路、及び画像処理装置 | |
KR20050043426A (ko) | 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치 | |
WO2023226497A1 (zh) | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 | |
TW200844750A (en) | Direct memory access controller | |
TW200844749A (en) | Direct memory access controller | |
CN102646446A (zh) | 硬件动态高速缓存电源管理 | |
US6721836B2 (en) | Bus system having an address/control bus and a data bus, and a data transfer method thereof | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
JP2011095966A (ja) | アクセスコントローラ | |
JP2009116702A (ja) | 半導体集積回路 | |
JP4953794B2 (ja) | バスシステムのバス調停方法及びバスシステム | |
JP2013008198A (ja) | 画像処理装置、画像処理制御方法及び画像処理制御プログラム | |
JP5932261B2 (ja) | メモリ制御装置、メモリ制御方法 | |
JP2006215621A (ja) | Dma制御装置 | |
JP4151362B2 (ja) | バス調停方式、データ転送装置、及びバス調停方法 | |
US20070186026A1 (en) | System having bus architecture for improving CPU performance and method thereof | |
JP2006079394A (ja) | データ処理装置 | |
JP7226084B2 (ja) | 情報処理装置 | |
JP2005004563A (ja) | Dma転送制御装置 | |
JP2008165463A (ja) | バス制御装置 | |
JP2010113414A (ja) | マルチコアシステム、スレッドスケジューリング方法、プログラム、記憶媒体 | |
JP2004151877A (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 |