情報処理装置
【課題】フロー制御対象のアクセス元の指定期間内の目標転送量を保障でき、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、フロー制御対象以外のアクセス元のアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる情報処理装置を提供する。
【解決手段】アービトレーション判定回路24は、アクセス元21_2について、ac_target(指定期間の開始時刻から現在時刻までの目標転送量)を「TA(目標転送量保持レジスタ31_2の値)*time(時間測定カウンタ29の値)/TIME_MAX(指定期間保持レジスタ28の値)」なる計算で求める。ac_target>ac(転送量カウンタ30_2の値)の場合は、アクセス元21_2にバス権を与え、ac_target≦acの場合は、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与える。
【解決手段】アービトレーション判定回路24は、アクセス元21_2について、ac_target(指定期間の開始時刻から現在時刻までの目標転送量)を「TA(目標転送量保持レジスタ31_2の値)*time(時間測定カウンタ29の値)/TIME_MAX(指定期間保持レジスタ28の値)」なる計算で求める。ac_target>ac(転送量カウンタ30_2の値)の場合は、アクセス元21_2にバス権を与え、ac_target≦acの場合は、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マスタデバイスである複数のアクセス元と、該複数のマスタデバイスに共有されるバスと、スレーブデバイスであるアクセス先を備える情報処理装置に関する。
【背景技術】
【0002】
図18は従来の情報処理装置の一例の構成図である。図18中、1_1、1_2、1_Nはアクセス元であり、アクセス元1_3〜1_N−1は図示を省略している。アクセス元1_1〜1_Nは、CPU(central processing unit)やDMAC(direct memory access controller)などのマスタデバイスである。
【0003】
2_1、2_nはアクセス先であり、アクセス先2_2〜2_n−1は図示を省略している。アクセス先2_1〜2_nはメモリなどのスレーブデバイスである。3はアクセス元1_1〜1_Nに共有されるバス、4はアービトレーション判定回路であり、アクセス元1_1〜1_Nのバスアクセスを調停するものである。5はバス権要求信号線、6はバス権返送信号線である。
【0004】
ここで、例えば、アクセス元1_2が一定期間(指定時間)内に一定量のデータ転送を完了させるように制御する必要があるデバイス、いわゆるフロー制御対象デバイスである場合、アービトレーション判定回路4は、アクセス元1_2のバスアクセスを最高優先とし、それ以外のアクセス元1_1、1_3〜1_Nのバスアクセスは、ラウンドロビンや固定優先などのアルゴリズムで優先度を決定することになる。
【0005】
図19は図18に示す従来の情報処理装置における転送例を示すタイムチャートであり、図18に示す従来の情報処理装置が4個のアクセス元1_1〜1_4を持ち、かつ、アクセス元1_2がフロー制御対象デバイスである場合を例にしている。
【0006】
図19(A)はアクセス元1_1、1_3、1_4のバス権優先度をラウンドロビンで決定している場合である。この例の場合、アクセス元1_1、1_3、1_4の間では、アクセス元1_1→アクセス元1_3→アクセス元1_4の順に繰り返してバスアクセスが行われている。
【0007】
図19(B)はアクセス元1_1、1_3、1_4のバス権優先度を固定優先で決定している場合である。この例の場合、アクセス元1_1、1_3、1_4の間では、アクセス元1_1のバス権が第1優先、アクセス元1_3のバス権が第2優先、アクセス元1_4のバス権が第3優先としてバスアクセスが行われている。
【特許文献1】特開平10−334042号公報
【特許文献2】特開平09−185580号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
図18に示す従来の情報処理装置においては、フロー制御対象デバイスであるアクセス元1_2のアクセスが常に優先的に処理されるため、その期間は、他のアクセス元1_1、1_3〜1_Nのアクセスは処理が後回しにされる。この結果、例えば、図19(A)に示す転送例では、矢印線XAで示すように、アクセス元1_1にアクセスレイテンシが大きくなる場合が発生している。また、図19(B)に示す転送例では、矢印線XBで示すように、アクセス元1_4にアクセスレイテンシが大きくなる場合が発生している。
【0009】
図19(A)に示す転送例において、アクセス元1_1がCPUなどのようにアクセスレイテンシが性能に影響するデバイスである場合には、アクセス元1_1の処理性能が低下してしまうという問題点がある。また、図19(B)に示す転送例においては、アクセス元1_4がCPUなどのようにアクセスレイテンシが性能に影響するデバイスである場合、アクセス元1_4の処理性能が低下してしまうという問題点がある。
【0010】
図20及び図21は図18が示す従来の情報処理装置が有する他の問題点を説明するための図である。図20はSDRAM(synchronous dynamic random access memory)の一例を示しており、図20中、10はSDRAM本体、11はバンクアドレスをB1とするバンク、12はバンクアドレスをB2とするバンク、13はバンクアドレスをB3とするバンク、14はバンクアドレスをB4とするバンクである。
【0011】
15、16、17はバンク11内のメモリセルであり、メモリセル15はロウアドレスをR1、コラムアドレスをC1とするもの、メモリセル16はロウアドレスをR1、コラムアドレスをC2とするもの、メモリセル17はロウアドレスをR1、コラムアドレスをC3とするものである。
【0012】
図21は図20に示すSDRAMへのアクセス例を示す図であり、図21(A)はメモリセル15、16、17に離散的にアクセスする場合、図20(B)はメモリセル15、16、17に連続的にアクセスする場合を示している。
【0013】
即ち、メモリセル15、16、17に離散的にアクセスする場合には、図21(A)に示すように、メモリセル15へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC1を与える必要があり、メモリセル16へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC2を与える必要があり、メモリセル17へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC3を与える必要がある。
【0014】
これに対して、メモリセル15、16、17に連続的にアクセスする場合には、図21(B)に示すように、メモリセル15へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC1を与える必要があるが、メモリセル16へのアクセス時には、コマンドCAS及びコラムアドレスC2を与えれば足り、メモリセル17へのアクセス時には、コマンドCAS及びコラムアドレスC3を与えれば足りる。即ち、メモリセル16へのアクセス時及びメモリセル17へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えなくとも、ページミスは発生しない。
【0015】
そこで、例えば、図18に示す従来の情報処理装置において、アクセス先2_1が図20に示すSDRAMであり、図19に示すアクセス元1_1の転送期間T1がメモリセル15へのアクセスによるものであり、転送期間T2がメモリセル16へのアクセスによるものであり、転送期間T3がメモリセル17へのアクセスによるものである場合には、連続的にアクセスする場合に比較して無駄なサイクルが発生してしまい、その分、高速化が妨げられることになる。
【0016】
このような場合、アクセス元1_1からのメモリセル15、16、17へのアクセスを連続的に行うことができれば、高速化を図ることができるが、図18に示す従来の情報処理装置においては、アクセス元1_2がフロー制御対象デバイスである場合、アクセス元1_2のアクセスが常に優先的に処理されるので、アクセス元1_2の転送期間中は、アクセス元1_1のアクセスは処理が後回しにされ、この結果、アクセス元1_1はメモリセル15、16、17へのアクセスを連続的に行うことができず、高速化が妨げられる場合があるという問題点があった。
【0017】
本発明は、かかる点に鑑み、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、フロー制御対象以外のアクセス元のアクセスレイテンシを向上させ、システム全体の性能向上を図ることができるようにした情報処理装置を提供することを第1の目的とする。
【0018】
また、本発明は、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、かつ、同一のアクセス元の転送処理を或る程度まとめて行うことができるようにし、高速化を図ることができるようにした情報処理装置を提供することを第2の目的とする。
【課題を解決するための手段】
【0019】
本発明中、第1の発明は、フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、前記アービトレーション判定回路は、前記フロー制御対象のアクセス元には、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合にバス権を付与するというものである。
【0020】
本発明中、第2の発明は、フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、前記アービトレーション判定回路は、前記フロー制御対象のアクセス元については、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合はバス権優先度を上げ、前記指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」以上の場合はバス権優先度を下げるというものである。
【発明の効果】
【0021】
本発明中、第1の発明によれば、フロー制御対象のアクセス元は、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」未満の場合にバス権が付与されるので、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、フロー制御対象以外のアクセス元のアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0022】
本発明中、第2の発明によれば、フロー制御対象のアクセス元は、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」未満の場合はバス権優先度が上げられ、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」以上の場合はバス権優先度が下げられるので、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、かつ、同一のアクセス元の転送処理を或る程度まとめて行うことができるようにし、高速化を図ることができる。
【発明を実施するための最良の形態】
【0023】
(第1実施形態)
図1は本発明の第1実施形態の構成図である。図1中、21_1、21_2、21_Nはアクセス元であり、アクセス元21_3〜21_N−1は図示を省略している。アクセス元21_1〜21_NはCPUやDMACなどのマスタデバイスである。なお、本発明の第1実施形態では、アクセス元21_2がフロー制御対象デバイス、アクセス元21_1、21_3〜21_Nがフロー制御対象以外のデバイスの場合である。
【0024】
22_1、22_nはアクセス先であり、アクセス先22_2〜22_n−1は図示を省略している。アクセス先22_1〜22_nはメモリなどのスレーブデバイスである。23はアクセス元21_1〜21_Nに共有されるバス、24はアービトレーション判定回路であり、アクセス元21_1〜21_Nのバスアクセスを調停するものである。25はバス権要求信号線、26はバス権返送信号線である。
【0025】
27は指定期間保持レジスタ・時間測定カウンタ部であり、28はフロー制御対象アクセス元が一定量のデータを転送すべき期間として指定される期間が書き込まれる指定期間保持レジスタ、29は時間を測定する時間測定カウンタである。
【0026】
30_2はアクセス元21_2に対応して設けられた転送量カウンタであり、図2に示すように、アクセス元21_2がオペレーション発行時に出力するアクセスサイズ情報を入力し、アクセス元21_2の転送量をカウントするものである。なお、転送量カウンタ30_2の値は、毎時、アービトレーション判定回路24に通知される。
【0027】
31_2はアクセス元21_2に対応して設けられた目標転送量保持レジスタであり、アクセス元21_2の指定期間内の目標転送量が書き込まれるものである。本発明の第1実施形態では、目標転送量保持レジスタ31_2は、アートビレーション判定回路24に対して、その値を垂れ流しするように構成される。
【0028】
32_2はアクセス元21_2に対応して設けられた転送完了/未完了判定・通知回路であり、指定期間終了時の転送量カウンタ30_2の値と目標転送量保持レジスタ31_2の値から、アクセス元21_2による指定期間内の目標転送量の転送が完了したか否かの判定を行い、未完了の場合には、その結果を必要に応じてCPUなどに通知するものである。
【0029】
図3は時間測定カウンタ29及び転送量カウンタ30_2の動作を示すフローチャートである。本発明の第1実施形態では、指定期間が開始すると、時間測定カウンタ29はカウントを開始することにより現在時刻を進める(ステップS3_1)。そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かが判定される(ステップS3_2)。
【0030】
そして、現在時刻が指定期間終了時に到達しない間(ステップS3_2の結果がNOである間)は、転送量カウンタ30_2は、アクセス元21_2がオペレーションを発行したか否かを判定し(ステップS3_3)、アクセス元21_2がオペレーションを発行した場合(ステップS3_3でYESの場合)には、アクセス元21_2が出力するアクセスサイズ情報を入力してアクセス元21_2の転送量を累積加算する(ステップS3_4)。
【0031】
これに対して、現在時刻が指定期間終了時に到達しない場合において、アクセス元21_2がオペレーションを発行しない場合(ステップS3_3でNOの場合)には、転送量カウンタ30_2は、アクセス元21_2のオペレーションの発行を待つ。
【0032】
そして、その後、時間測定カウンタ29による現在時刻が指定期間終了時に到達した場合(ステップS3_2でYESの場合)には、時間測定カウンタ29のクリア処理と、転送量カウンタ30_2のクリア処理が行われる(ステップS3_5)。
【0033】
図4はアービトレーション判定回路24の第1動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第1動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS4_1)。
【0034】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS4_1でNOの場合)には、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS4_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}であるか否かを判定する(ステップS4_3)。
【0035】
そして、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}の場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合(ステップS4_3でYESの場合)には、アクセス元21_2にバス権を与え(ステップS4_4)、ステップS4_1に戻る。
【0036】
これに対して、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}≦転送量カウンタ30_2の値{ac}でない場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合(ステップS4_3でNOの場合)には、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与え(ステップS4_5)、ステップS4_1に戻る。そして、指定期間が終了した場合(ステップS4_1でYESの場合)には、処理を終了する。
【0037】
図5はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートであり、本発明の第1実施形態が4個のアクセス元21_1〜21_4を備えている場合を例にしている。
【0038】
図5(A)は従来方式による場合、図5(B)は本発明の第1実施形態の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先とし、アクセス元21_1、21_3、21_4のバス権優先度をラウンドロビンの手法で決定している場合を示しており、アクセス元21_1、21_3、21_4の間では、アクセス元21_1→アクセス元21_3→アクセス元21_4の順にバスアクセスが行われている。
【0039】
ここで、従来方式による場合には、アクセス元21_2のバスアクセスが常に優先的に処理されるため、その期間は、他のアクセス元21_1、21_3、21_4のバスアクセスは処理が後回しにされる。この結果、例えば、図5(A)に示す転送例では、矢印線XCで示すように、アクセス元21_1にアクセスレイテンシが大きくなる場合が発生している。
【0040】
これに対して、アービトレーション判定回路24は、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求めるとしている。
【0041】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、アクセス元21_2にバス権を与え、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与えるとしている。
【0042】
この結果、アクセス元21_2の指定期間内の目標転送量{TA}を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散することができる。図5(B)に示す例では、期間T4〜T7は、アクセス元21_2がバス権要求を行っているにも関わらず、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している状態であり、アクセス元21_2にバス権が与えられていない期間を示している。
【0043】
このように、本発明の第1実施形態においては、アービトレーション判定回路24が第1動作例に従って動作する場合には、アクセス元21_2のバスアクセスを拡散させることができるので、アクセス元21_1のアクセスレイテンシを矢印線XDで示すように、小さくすることができる。
【0044】
図6は本発明の第1実施形態の第1具体例の構成図である。本発明の第1実施形態の第1具体例は、本発明の第1実施形態が2個のアクセス元と、2個のアクセス先を持ち、かつ、2個のアクセス元がCPU41_1とDMAC41_2、2個のアクセス先がSDRAM42_1とVGA(video graphics array)デバイス42_2であり、バス23の帯域が100MB/secの場合である。
【0045】
本発明の第1実施形態の第1具体例においては、CPU41_1は、SDRAM42_1に保持されているMPEG2やH.268などのストリームデータをフレームデータにデコードしてSDRAM42_1に格納し、DMAC41_2は、CPU41_1がSDRAM42_1に格納したフレームデータを1/30秒毎に1フレームずつVGAデバイス42_2に転送するものとする。但し、フレームデータのサイズは1MB/1フレームとする。
【0046】
このような動作をCPU41_1及びDMAC41_2に実行させるためには、指定期間保持レジスタ28に設定すべき値は1/30秒となる。また、DMAC41_2は、SDRAM42_1からリードを行い、VGAデバイス42_2にライトを行うことになるので、目標転送量保持レジスタ31_2に設定すべき値は1MB×2=2MBとなる。
【0047】
図7はCPU41_1の動作を示すフローチャートである。即ち、本発明の第1実施形態の第1具体例では、まず、CPU41_1は、プログラムの指示により、指定期間保持レジスタ28に指定期間として1/30秒を設定する(ステップS7_1)。次に、CPU41_1は、プログラムの指示により、目標転送量保持レジスタ31_2に指定期間内における目標転送量として2MBを設定する(ステップS7_2)。
【0048】
次に、CPU41_1は、プログラムの指示により、VGAデバイス42_2からDMAC41_2への起動トリガ信号でDMAC41_2の転送動作が開始するように設定する(ステップS7_3)。
【0049】
次に、CPU41_1は、SDRAM42_1に格納されているストリームデータを読み出してデコード処理を行う(ステップS7_4)。そして、ストリームデータの全てのデコード処理が終了したか否かを判定し(ステップS7_5)、ストリームデータの全てのデコード処理が終了していない場合(ステップS7_5でNOの場合)には、ステップS7_4に戻る。
【0050】
そして、ストリームデータの全てのデコード処理が終了した場合(ステップS7_5でYESの場合)には、CPU41_1は、プログラムの指示により、DMAC41_2を停止させる(ステップS7_6)。
【0051】
なお、CPU41_1によるストリームデータのデコード処理に並行して、1/30秒毎に、VGAデバイス42_2からDMAC41_2にトリガがかかり、DMAC41_2により、1/30秒ごとに、SDRAM42_1からのリード分として1MB、VGAデバイス42_2へのライト分として1MBの合計2MBのフレームデータの転送が行われる。
【0052】
図8はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における転送例を従来方式による場合と比較して示すタイムチャートである。図8(A)は従来方式による場合、図8(B)は本発明の第1実施形態の第1具体例の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先として転送が行われている。
【0053】
ここで、従来方式による場合には、DMAC41_2のアクセスが常に優先的に処理されるため、その期間は、CPU41_1のアクセスは処理が後回しにされる。この結果、例えば、図8(A)に示す転送例では、矢印線XE1〜XE3で示すように、CPU41_1にアクセスレイテンシが大きくなる場合が発生している。
【0054】
これに対して、本発明の第1実施形態の第1具体例においては、DMAC41_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}が「目標転送量保持レジスタ31_2の値{TA=2MB}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX=1/30秒}」なる計算で求められる。
【0055】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、DMAC41_2にバス権が与えられ、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、CPU41_1にバス権が与えられる。
【0056】
この結果、図8(B)に示すように、DMAC41_2の指定期間{1/30秒}内の目標転送量{TA=2MB}を保障することができ、しかも、DMAC41_2のバスアクセスを拡散することができる。
【0057】
図9はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における指定期間内の時間とDMAC41#2の累積転送量との関係を示す図であり、図9(A)は図8(B)に示す転送例、図9(B)は図9(A)に示す転送例の場合の指定期間内の時間とDMAC41_2の累積転送量との関係を示している。
【0058】
図10は本発明の第1実施形態の第2具体例の構成図である。本発明の第1実施形態の第2具体例は、バス23の帯域を50MB/secとし、その他については、本発明の第1実施形態の第1具体例と同様に構成したものである。
【0059】
本発明の第1実施形態の第2具体例においても、本発明の第1実施形態の第1具体例の場合と同様に、CPU41_1は、SDRAM42_1に保持されているMPEG2やH.268などのストリームデータをフレームデータにデコードしてSDRAM42_1に格納し、DMAC41_2は、CPU41_1がSDRAM42_1に格納したフレームデータを1/30秒毎に1フレームずつVGAデバイス42_2に転送するものとする。
【0060】
このような動作をCPU41_1及びDMAC41_2に実行させるためには、指定期間保持レジスタ28に設定すべき値は1/30秒となる。また、DMAC41_2は、SDRAM42_1からリードを行い、VGAデバイス42_2にライトを行うことになるので、目標転送量保持レジスタ31_2に設定すべき値は1MB×2=2MBとなる。
【0061】
しかしながら、バス23の帯域が50MB/secとされているので、DMAC41_2の1/30秒あたりの可能な転送量は1.67MBとなる。アービトレーション判定回路24は、DMAC41_2による累積転送量が目標転送量{2MB}に到達するように全てのバス帯域をDMAC41_2に割り当てるように動作するが、結果的には、図11に示すように、1/30秒間に2MBを転送することができない。
【0062】
この場合、指定期間終了時に、転送完了/未完了判定・通知回路32_2は、DMAC41_2による累積転送量が目標転送量{2MB}に到達しなかったことを判定し、CPU41_1にエラーを通知することになる。
【0063】
図12は本発明の第1実施形態におけるアービトレーション判定回路24の第2動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS12_1)。
【0064】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS12_1でNOの場合)には、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS12_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}であるか否かを判定する(ステップS12_3)。
【0065】
そして、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}の場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合(ステップS12_3でYESの場合)には、アクセス元21_2のバス権優先度を上げ{ステップS12_4}、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS12_6)、ステップS12_1に戻る。
【0066】
これに対して、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}≦転送量カウンタ30_2の値{ac}でない場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合(ステップS12_3でNOの場合)には、アクセス元21_2のバス権優先度を下げ(ステップS12_5)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS12_6)、ステップS12_1に戻る。
【0067】
なお、ステップS12_6において、バス権優先度が同一のアクセス元には、ラウンドロビン又は固定優先の手法でバス優先権を与える。そして、指定期間が終了したときは、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0068】
図13はアービトレーション判定回路24が第2動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートであり、本発明の第1実施形態が4個のアクセス元21_1〜21_4を備えている場合を例にしている。
【0069】
図13(A)は従来方式による場合、図13(B)は本発明の第1実施形態の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先とし、アクセス元21_1、21_3、21_4のバス権優先度をラウンドロビンの手法で決定している場合を示しており、アクセス元21_1、21_3、21_4の間では、アクセス元21_1→アクセス元21_3→アクセス元21_4の順にバスアクセスが行われている。
【0070】
ここで、従来方式による場合には、アクセス元21_2のバスアクセスが常に優先的に処理されるため、その期間は、他のアクセス元21_1、21_3、21_4のバスアクセスは処理が後回しにされる。この結果、例えば、図13(A)に示す転送例では、アクセス元21_1、21_3、21_4は、転送を或る程度まとめて行うことができないという状態が発生している。
【0071】
これに対して、本発明の第1実施形態は、アービトレーション判定回路24の第2動作例の下では、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求めるとしている。
【0072】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、アクセス元21_2のバス権優先度を上げ、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、アクセス元21_2のバス権優先度を下げるとしている。
【0073】
この結果、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、かつ、アクセス元21_1、21_3、21_4の転送処理を或る程度まとめて行うことができる。したがって、アクセス元21_1、21_3、21_4のバスアクセスが、それぞれ、例えば、SDRAMの同一バンクの同一ページアドレス、かつ、異なるコラムアドレスに対するものである場合には、必要なサイクルを減らし、高速化を図ることができる。
【0074】
表1は本発明の第1実施形態の性能と図17に示す従来の情報処理装置の性能を比較した表である。
【0075】
【表1】
【0076】
以上のように、本発明の第1実施形態においては、アービトレーション判定回路24に第1動作例に従った動作を行わせる場合には、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、アクセス元21_1、21_3〜21_Nのアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0077】
また、本発明の第1実施形態においては、アービトレーション判定回路24に第2動作例に従った動作を行わせる場合には、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、かつ、アクセス元21_1、21_3〜21_Nの転送処理を或る程度まとめて行うことができ、高速化を図ることができる。
【0078】
(第2実施形態)
図14は本発明の第2実施形態の構成図である。本発明の第2実施形態は、アクセス元21_1に対応させて、転送量カウンタ30_1、目標転送量保持レジスタ31_1及び転送完了/未完了判定・通知回路32_1を設けると共に、アクセス元21_2に対応させて、転送量カウンタ30_2、目標転送量保持レジスタ31_2及び転送完了/未完了判定・通知回路32_2を設け、その他については、本発明の第1実施形態と同様に構成したものである。
【0079】
図15は本発明の第2実施形態における時間測定カウンタ29及び転送量カウンタ30_1、30_2の動作を示すフローチャートである。即ち、指定期間が開始すると、時間測定カウンタ29は、カウントを開始することにより現在時刻を進める(ステップS15_1)。そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かが判定される(ステップS15_2)。
【0080】
そして、現在時刻が指定期間終了時に到達しない間(ステップS15_2の結果がNOである間)は、転送量カウンタ30_1は、アクセス元21_1がオペレーションを発行したか否かを判定し(ステップS15_3_1)、アクセス元21_1がオペレーションを発行した場合(ステップS15_3_1でYESの場合)には、アクセス元21_1が出力するアクセスサイズ情報を入力してアクセス元21_1の転送量を累積加算する(ステップS15_4_1)。これに対して、アクセス元21_1がオペレーションを発行しない場合(ステップS15_3_1でNOの場合)には、転送量カウンタ30_1は、アクセス元21_1のオペレーションの発行を待つ。
【0081】
また、転送量カウンタ30_2は、アクセス元21_2がオペレーションを発行したか否かを判定し(ステップS15_3_2)、アクセス元21_2がオペレーションを発行した場合(ステップS15_3_2でYESの場合)には、アクセス元21_2が出力するアクセスサイズ情報を入力してアクセス元21_2の転送量を累積加算する(ステップS15_4_2)。これに対して、アクセス元21_2がオペレーションを発行しない場合(ステップS15_3_2でNOの場合)には、転送量カウンタ30_2は、アクセス元21_2のオペレーションの発行を待つ。
【0082】
そして、その後、時間測定カウンタ29による現在時刻が指定期間終了時に到達した場合(ステップS15_2でYESの場合)には、時間測定カウンタ29のクリア処理と、転送量カウンタ30_2のクリア処理が行われる(ステップS15_5)。
【0083】
図16は本発明の第2実施形態におけるアービトレーション判定回路24の第1動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS16_1)。
【0084】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS16_1でNOの場合)には、アクセス元21_1について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}を「目標転送量保持レジスタ31_1の値{TA(1)}×時間測定カウンタ29の値(time)/指定期間保持レジスタ28の値(TIME_MAX)」なる計算で求め(ステップS16_2_1)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}>転送量カウンタ30_1の値{ac(1)}であるか否かを判定する(ステップS16_3_1)。
【0085】
また、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}を「目標転送量保持レジスタ31_2の値{TA(2)}×時間測定カウンタ29の値(time)/指定期間保持レジスタ28の値(TIME_MAX)」なる計算で求め(ステップS16_2_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}>転送量カウンタ30_2の値{ac(2)}であるか否かを判定する(ステップS16_3_2)。
【0086】
そして、ac_target(1)>ac(1)(ステップS16_3_1でYES)、かつ、ac_target(2)}≦ac(2)(ステップS16_3_2でNO)の場合には、アクセス元21_1にバス権を与える(ステップS16_4)。
【0087】
これに対して、ac_target(1)≦ac(1)(ステップS16_3_1でNO)、かつ、ac_target(2)>ac(2)(ステップS16_3_2でYES)の場合には、アクセス元21_2にバス権を与え(ステップS16_4)、ステップS16_1に戻る。
【0088】
また、ac_target(1)>ac(1)}(ステップS16_3_1でYES)、かつ、ac_target(2)>ac(2)(ステップS16_3_2でYES)の場合には、アクセス元21_1、21_2にラウンドロビン又は固定優先の手法でバス権を与え(ステップS16_4)、ステップS16_1に戻る。
【0089】
また、ac_target(1)≦ac(1)(ステップS16_3_1でNO)、かつ、ac_target(2)}≦ac(2)(ステップS16_3_2でNO)の場合には、アクセス元21_1〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与え(ステップS16_5)、ステップS16_1に戻る。そして、指定期間が終了した場合(ステップS16_1でYESの場合)には、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0090】
図17は本発明の第2実施形態におけるアービトレーション判定回路24の第2動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS17_1)。
【0091】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS17_1でNOの場合)には、アクセス元21_1について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}を「目標転送量保持レジスタ31_1の値{TA(1)}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS17_2_1)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}>転送量カウンタ30_1の値{ac(1)}であるか否かを判定する(ステップS17_3_1)。
【0092】
また、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}を「目標転送量保持レジスタ31_2の値{TA(2)}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS17_2_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}>転送量カウンタ30_2の値{ac(2)}であるか否かを判定する(ステップS17_3_2)。
【0093】
そして、ac_target(1)>ac(1)(ステップS17_3_1でYES)、かつ、ac_target(2)≦ac(2)(ステップS17_3_2でNO)の場合には、アクセス元21_1のバス権優先度を上げ(ステップS17_4_1)、かつ、アクセス元21_2のバス権優先度を下げ(ステップS17_5_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0094】
これに対して、ac_target(1)≦ac(1)(ステップS17_3_1でNO)、かつ、ac_target(2)>ac(2)(ステップS17_3_2でYES)の場合には、アクセス元21_1のバス権優先度を下げ(ステップS17_5_1)、かつ、アクセス元21_2のバス権優先度を上げ(ステップS17_4_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0095】
また、ac_target(1)>ac(1)(ステップS17_3_1でYES)、かつ、ac_target(2)>ac(2)(ステップS17_3_2でYES)の場合には、アクセス元21_1、21_2のバス権優先度を上げ(ステップS17_4_1、S17_4_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0096】
なお、ステップS17_6において、バス権優先度が同一の場合には、ラウンドロビン又は固定優先の手法でバス優先権を与える。そして、指定期間が終了した場合(ステップS17_1でYESの場合)には、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0097】
本発明の第2実施形態においては、アービトレーション判定回路24に第1動作例に従った動作を行わせる場合には、アクセス元21_1、21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_1、21_2のバスアクセスを拡散し、アクセス元21_3〜21_Nのアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0098】
また、本発明の第2実施形態においては、アービトレーション判定回路24に第2動作例に従った動作を行わせる場合には、アクセス元21_1、21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_1、21_2のバスアクセスを拡散し、かつ、アクセス元21_3〜21_Nの転送処理を或る程度まとめて行うことができ、高速化を図ることができる。
【0099】
なお、本発明の第2実施形態においては、アクセス元21_1〜21_Nのうち、2個のアクセス元21_1、21_2をフロー制御対象とし、これに対応させて転送量カウンタ30_1、30_2、目標転送量保持レジスタ31_1、31_2及び転送完了/未完了判定・通知回路32_1、32_2を設けた場合について説明したが、更に、アクセス元21_3〜21_Nの一部又は全部をフロー制御対象とし、これらに転送量カウンタ、目標転送量保持レジスタ、転送完了/未完了判定・通知回路を設けるようにしても良い。
【図面の簡単な説明】
【0100】
【図1】本発明の第1実施形態の構成図である。
【図2】本発明の第1実施形態が備える転送量カウンタの動作を説明するための図である。
【図3】本発明の第1実施形態における時間測定カウンタ及び転送量カウンタの動作を示すフローチャートである。
【図4】本発明の第1実施形態におけるアービトレーション判定回路の第1動作例を示すフローチャートである。
【図5】本発明の第1実施形態が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートである。
【図6】本発明の第1実施形態の第1具体例の構成図である。
【図7】本発明の第1実施形態の第1具体例が備えるCPUの動作を示すフローチャートである。
【図8】本発明の第1実施形態の第1具体例が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における転送例を従来方式による場合と比較して示すタイムチャートである。
【図9】本発明の第1実施形態の第1具体例が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における指定期間内の時間とDMACの累積転送量との関係を示す図である。
【図10】本発明の第1実施形態の第2具体例の構成図である。
【図11】本発明の第1実施形態の第2具体例が備える転送完了/未完了判定・通知回路の動作を説明するための図である。
【図12】本発明の第1実施形態におけるアービトレーション判定回路の第2動作例を示すフローチャートである。
【図13】本発明の第1実施形態が備えるアービトレーション判定回路が第2動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートである。
【図14】本発明の第2実施形態の構成図である。
【図15】本発明の第2実施形態における時間測定カウンタ及び転送量カウンタの動作を示すフローチャートである。
【図16】本発明の第2実施形態におけるアービトレーション判定回路の第1動作例を示すフローチャートである。
【図17】本発明の第2実施形態におけるアービトレーション判定回路の第2動作例を示すフローチャートである。
【図18】従来の情報処理装置の一例の構成図である。
【図19】図18に示す従来の情報処理装置における転送例を示すタイムチャートである。
【図20】SDRAMの一例を示す図である。
【図21】図20に示すSDRAMへのアクセス例を示す図である。
【符号の説明】
【0101】
1_1、1_2、1_N…アクセス元
2_1、2_n…アクセス先
3…バス
4…アービトレーション判定回路
5…バス権要求信号線
6…バス権返送信号線
10…SDRAM本体
11〜14…バンク
15〜17…メモリセル
21_1、21_2、21_N…アクセス元
22_1、22_n…アクセス先
23…バス
24…アービトレーション判定回路
25…バス権要求信号線
26…バス権返送信号線
27…指定期間保持レジスタ・時間測定カウンタ部
28…指定期間保持レジスタ
29…時間測定カウンタ
30_1、30_2…転送量カウンタ
31_1、31_2…目標転送量保持レジスタ
32_1、32_2…転送完了/未完了判定・通知回路
41_1…CPU
41_2…DMAC
42_1…SDRAM
42_2…VGAデバイス
【技術分野】
【0001】
本発明は、マスタデバイスである複数のアクセス元と、該複数のマスタデバイスに共有されるバスと、スレーブデバイスであるアクセス先を備える情報処理装置に関する。
【背景技術】
【0002】
図18は従来の情報処理装置の一例の構成図である。図18中、1_1、1_2、1_Nはアクセス元であり、アクセス元1_3〜1_N−1は図示を省略している。アクセス元1_1〜1_Nは、CPU(central processing unit)やDMAC(direct memory access controller)などのマスタデバイスである。
【0003】
2_1、2_nはアクセス先であり、アクセス先2_2〜2_n−1は図示を省略している。アクセス先2_1〜2_nはメモリなどのスレーブデバイスである。3はアクセス元1_1〜1_Nに共有されるバス、4はアービトレーション判定回路であり、アクセス元1_1〜1_Nのバスアクセスを調停するものである。5はバス権要求信号線、6はバス権返送信号線である。
【0004】
ここで、例えば、アクセス元1_2が一定期間(指定時間)内に一定量のデータ転送を完了させるように制御する必要があるデバイス、いわゆるフロー制御対象デバイスである場合、アービトレーション判定回路4は、アクセス元1_2のバスアクセスを最高優先とし、それ以外のアクセス元1_1、1_3〜1_Nのバスアクセスは、ラウンドロビンや固定優先などのアルゴリズムで優先度を決定することになる。
【0005】
図19は図18に示す従来の情報処理装置における転送例を示すタイムチャートであり、図18に示す従来の情報処理装置が4個のアクセス元1_1〜1_4を持ち、かつ、アクセス元1_2がフロー制御対象デバイスである場合を例にしている。
【0006】
図19(A)はアクセス元1_1、1_3、1_4のバス権優先度をラウンドロビンで決定している場合である。この例の場合、アクセス元1_1、1_3、1_4の間では、アクセス元1_1→アクセス元1_3→アクセス元1_4の順に繰り返してバスアクセスが行われている。
【0007】
図19(B)はアクセス元1_1、1_3、1_4のバス権優先度を固定優先で決定している場合である。この例の場合、アクセス元1_1、1_3、1_4の間では、アクセス元1_1のバス権が第1優先、アクセス元1_3のバス権が第2優先、アクセス元1_4のバス権が第3優先としてバスアクセスが行われている。
【特許文献1】特開平10−334042号公報
【特許文献2】特開平09−185580号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
図18に示す従来の情報処理装置においては、フロー制御対象デバイスであるアクセス元1_2のアクセスが常に優先的に処理されるため、その期間は、他のアクセス元1_1、1_3〜1_Nのアクセスは処理が後回しにされる。この結果、例えば、図19(A)に示す転送例では、矢印線XAで示すように、アクセス元1_1にアクセスレイテンシが大きくなる場合が発生している。また、図19(B)に示す転送例では、矢印線XBで示すように、アクセス元1_4にアクセスレイテンシが大きくなる場合が発生している。
【0009】
図19(A)に示す転送例において、アクセス元1_1がCPUなどのようにアクセスレイテンシが性能に影響するデバイスである場合には、アクセス元1_1の処理性能が低下してしまうという問題点がある。また、図19(B)に示す転送例においては、アクセス元1_4がCPUなどのようにアクセスレイテンシが性能に影響するデバイスである場合、アクセス元1_4の処理性能が低下してしまうという問題点がある。
【0010】
図20及び図21は図18が示す従来の情報処理装置が有する他の問題点を説明するための図である。図20はSDRAM(synchronous dynamic random access memory)の一例を示しており、図20中、10はSDRAM本体、11はバンクアドレスをB1とするバンク、12はバンクアドレスをB2とするバンク、13はバンクアドレスをB3とするバンク、14はバンクアドレスをB4とするバンクである。
【0011】
15、16、17はバンク11内のメモリセルであり、メモリセル15はロウアドレスをR1、コラムアドレスをC1とするもの、メモリセル16はロウアドレスをR1、コラムアドレスをC2とするもの、メモリセル17はロウアドレスをR1、コラムアドレスをC3とするものである。
【0012】
図21は図20に示すSDRAMへのアクセス例を示す図であり、図21(A)はメモリセル15、16、17に離散的にアクセスする場合、図20(B)はメモリセル15、16、17に連続的にアクセスする場合を示している。
【0013】
即ち、メモリセル15、16、17に離散的にアクセスする場合には、図21(A)に示すように、メモリセル15へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC1を与える必要があり、メモリセル16へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC2を与える必要があり、メモリセル17へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC3を与える必要がある。
【0014】
これに対して、メモリセル15、16、17に連続的にアクセスする場合には、図21(B)に示すように、メモリセル15へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えた後、コマンドCAS及びコラムアドレスC1を与える必要があるが、メモリセル16へのアクセス時には、コマンドCAS及びコラムアドレスC2を与えれば足り、メモリセル17へのアクセス時には、コマンドCAS及びコラムアドレスC3を与えれば足りる。即ち、メモリセル16へのアクセス時及びメモリセル17へのアクセス時には、コマンドRAS及びページアドレスB1R1を与えなくとも、ページミスは発生しない。
【0015】
そこで、例えば、図18に示す従来の情報処理装置において、アクセス先2_1が図20に示すSDRAMであり、図19に示すアクセス元1_1の転送期間T1がメモリセル15へのアクセスによるものであり、転送期間T2がメモリセル16へのアクセスによるものであり、転送期間T3がメモリセル17へのアクセスによるものである場合には、連続的にアクセスする場合に比較して無駄なサイクルが発生してしまい、その分、高速化が妨げられることになる。
【0016】
このような場合、アクセス元1_1からのメモリセル15、16、17へのアクセスを連続的に行うことができれば、高速化を図ることができるが、図18に示す従来の情報処理装置においては、アクセス元1_2がフロー制御対象デバイスである場合、アクセス元1_2のアクセスが常に優先的に処理されるので、アクセス元1_2の転送期間中は、アクセス元1_1のアクセスは処理が後回しにされ、この結果、アクセス元1_1はメモリセル15、16、17へのアクセスを連続的に行うことができず、高速化が妨げられる場合があるという問題点があった。
【0017】
本発明は、かかる点に鑑み、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、フロー制御対象以外のアクセス元のアクセスレイテンシを向上させ、システム全体の性能向上を図ることができるようにした情報処理装置を提供することを第1の目的とする。
【0018】
また、本発明は、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、かつ、同一のアクセス元の転送処理を或る程度まとめて行うことができるようにし、高速化を図ることができるようにした情報処理装置を提供することを第2の目的とする。
【課題を解決するための手段】
【0019】
本発明中、第1の発明は、フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、前記アービトレーション判定回路は、前記フロー制御対象のアクセス元には、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合にバス権を付与するというものである。
【0020】
本発明中、第2の発明は、フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、前記アービトレーション判定回路は、前記フロー制御対象のアクセス元については、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合はバス権優先度を上げ、前記指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」以上の場合はバス権優先度を下げるというものである。
【発明の効果】
【0021】
本発明中、第1の発明によれば、フロー制御対象のアクセス元は、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」未満の場合にバス権が付与されるので、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、フロー制御対象以外のアクセス元のアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0022】
本発明中、第2の発明によれば、フロー制御対象のアクセス元は、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」未満の場合はバス権優先度が上げられ、指定期間の開始時刻から現在時刻までの転送量が「指定期間内の目標転送量×指定期間の開始時刻から現在時刻までの時間/指定期間」以上の場合はバス権優先度が下げられるので、フロー制御対象のアクセス元の指定期間内の目標転送量を保障することができ、しかも、フロー制御対象のアクセス元のバスアクセスを拡散し、かつ、同一のアクセス元の転送処理を或る程度まとめて行うことができるようにし、高速化を図ることができる。
【発明を実施するための最良の形態】
【0023】
(第1実施形態)
図1は本発明の第1実施形態の構成図である。図1中、21_1、21_2、21_Nはアクセス元であり、アクセス元21_3〜21_N−1は図示を省略している。アクセス元21_1〜21_NはCPUやDMACなどのマスタデバイスである。なお、本発明の第1実施形態では、アクセス元21_2がフロー制御対象デバイス、アクセス元21_1、21_3〜21_Nがフロー制御対象以外のデバイスの場合である。
【0024】
22_1、22_nはアクセス先であり、アクセス先22_2〜22_n−1は図示を省略している。アクセス先22_1〜22_nはメモリなどのスレーブデバイスである。23はアクセス元21_1〜21_Nに共有されるバス、24はアービトレーション判定回路であり、アクセス元21_1〜21_Nのバスアクセスを調停するものである。25はバス権要求信号線、26はバス権返送信号線である。
【0025】
27は指定期間保持レジスタ・時間測定カウンタ部であり、28はフロー制御対象アクセス元が一定量のデータを転送すべき期間として指定される期間が書き込まれる指定期間保持レジスタ、29は時間を測定する時間測定カウンタである。
【0026】
30_2はアクセス元21_2に対応して設けられた転送量カウンタであり、図2に示すように、アクセス元21_2がオペレーション発行時に出力するアクセスサイズ情報を入力し、アクセス元21_2の転送量をカウントするものである。なお、転送量カウンタ30_2の値は、毎時、アービトレーション判定回路24に通知される。
【0027】
31_2はアクセス元21_2に対応して設けられた目標転送量保持レジスタであり、アクセス元21_2の指定期間内の目標転送量が書き込まれるものである。本発明の第1実施形態では、目標転送量保持レジスタ31_2は、アートビレーション判定回路24に対して、その値を垂れ流しするように構成される。
【0028】
32_2はアクセス元21_2に対応して設けられた転送完了/未完了判定・通知回路であり、指定期間終了時の転送量カウンタ30_2の値と目標転送量保持レジスタ31_2の値から、アクセス元21_2による指定期間内の目標転送量の転送が完了したか否かの判定を行い、未完了の場合には、その結果を必要に応じてCPUなどに通知するものである。
【0029】
図3は時間測定カウンタ29及び転送量カウンタ30_2の動作を示すフローチャートである。本発明の第1実施形態では、指定期間が開始すると、時間測定カウンタ29はカウントを開始することにより現在時刻を進める(ステップS3_1)。そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かが判定される(ステップS3_2)。
【0030】
そして、現在時刻が指定期間終了時に到達しない間(ステップS3_2の結果がNOである間)は、転送量カウンタ30_2は、アクセス元21_2がオペレーションを発行したか否かを判定し(ステップS3_3)、アクセス元21_2がオペレーションを発行した場合(ステップS3_3でYESの場合)には、アクセス元21_2が出力するアクセスサイズ情報を入力してアクセス元21_2の転送量を累積加算する(ステップS3_4)。
【0031】
これに対して、現在時刻が指定期間終了時に到達しない場合において、アクセス元21_2がオペレーションを発行しない場合(ステップS3_3でNOの場合)には、転送量カウンタ30_2は、アクセス元21_2のオペレーションの発行を待つ。
【0032】
そして、その後、時間測定カウンタ29による現在時刻が指定期間終了時に到達した場合(ステップS3_2でYESの場合)には、時間測定カウンタ29のクリア処理と、転送量カウンタ30_2のクリア処理が行われる(ステップS3_5)。
【0033】
図4はアービトレーション判定回路24の第1動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第1動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS4_1)。
【0034】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS4_1でNOの場合)には、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS4_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}であるか否かを判定する(ステップS4_3)。
【0035】
そして、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}の場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合(ステップS4_3でYESの場合)には、アクセス元21_2にバス権を与え(ステップS4_4)、ステップS4_1に戻る。
【0036】
これに対して、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}≦転送量カウンタ30_2の値{ac}でない場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合(ステップS4_3でNOの場合)には、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与え(ステップS4_5)、ステップS4_1に戻る。そして、指定期間が終了した場合(ステップS4_1でYESの場合)には、処理を終了する。
【0037】
図5はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートであり、本発明の第1実施形態が4個のアクセス元21_1〜21_4を備えている場合を例にしている。
【0038】
図5(A)は従来方式による場合、図5(B)は本発明の第1実施形態の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先とし、アクセス元21_1、21_3、21_4のバス権優先度をラウンドロビンの手法で決定している場合を示しており、アクセス元21_1、21_3、21_4の間では、アクセス元21_1→アクセス元21_3→アクセス元21_4の順にバスアクセスが行われている。
【0039】
ここで、従来方式による場合には、アクセス元21_2のバスアクセスが常に優先的に処理されるため、その期間は、他のアクセス元21_1、21_3、21_4のバスアクセスは処理が後回しにされる。この結果、例えば、図5(A)に示す転送例では、矢印線XCで示すように、アクセス元21_1にアクセスレイテンシが大きくなる場合が発生している。
【0040】
これに対して、アービトレーション判定回路24は、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求めるとしている。
【0041】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、アクセス元21_2にバス権を与え、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、アクセス元21_1、21_3〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与えるとしている。
【0042】
この結果、アクセス元21_2の指定期間内の目標転送量{TA}を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散することができる。図5(B)に示す例では、期間T4〜T7は、アクセス元21_2がバス権要求を行っているにも関わらず、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している状態であり、アクセス元21_2にバス権が与えられていない期間を示している。
【0043】
このように、本発明の第1実施形態においては、アービトレーション判定回路24が第1動作例に従って動作する場合には、アクセス元21_2のバスアクセスを拡散させることができるので、アクセス元21_1のアクセスレイテンシを矢印線XDで示すように、小さくすることができる。
【0044】
図6は本発明の第1実施形態の第1具体例の構成図である。本発明の第1実施形態の第1具体例は、本発明の第1実施形態が2個のアクセス元と、2個のアクセス先を持ち、かつ、2個のアクセス元がCPU41_1とDMAC41_2、2個のアクセス先がSDRAM42_1とVGA(video graphics array)デバイス42_2であり、バス23の帯域が100MB/secの場合である。
【0045】
本発明の第1実施形態の第1具体例においては、CPU41_1は、SDRAM42_1に保持されているMPEG2やH.268などのストリームデータをフレームデータにデコードしてSDRAM42_1に格納し、DMAC41_2は、CPU41_1がSDRAM42_1に格納したフレームデータを1/30秒毎に1フレームずつVGAデバイス42_2に転送するものとする。但し、フレームデータのサイズは1MB/1フレームとする。
【0046】
このような動作をCPU41_1及びDMAC41_2に実行させるためには、指定期間保持レジスタ28に設定すべき値は1/30秒となる。また、DMAC41_2は、SDRAM42_1からリードを行い、VGAデバイス42_2にライトを行うことになるので、目標転送量保持レジスタ31_2に設定すべき値は1MB×2=2MBとなる。
【0047】
図7はCPU41_1の動作を示すフローチャートである。即ち、本発明の第1実施形態の第1具体例では、まず、CPU41_1は、プログラムの指示により、指定期間保持レジスタ28に指定期間として1/30秒を設定する(ステップS7_1)。次に、CPU41_1は、プログラムの指示により、目標転送量保持レジスタ31_2に指定期間内における目標転送量として2MBを設定する(ステップS7_2)。
【0048】
次に、CPU41_1は、プログラムの指示により、VGAデバイス42_2からDMAC41_2への起動トリガ信号でDMAC41_2の転送動作が開始するように設定する(ステップS7_3)。
【0049】
次に、CPU41_1は、SDRAM42_1に格納されているストリームデータを読み出してデコード処理を行う(ステップS7_4)。そして、ストリームデータの全てのデコード処理が終了したか否かを判定し(ステップS7_5)、ストリームデータの全てのデコード処理が終了していない場合(ステップS7_5でNOの場合)には、ステップS7_4に戻る。
【0050】
そして、ストリームデータの全てのデコード処理が終了した場合(ステップS7_5でYESの場合)には、CPU41_1は、プログラムの指示により、DMAC41_2を停止させる(ステップS7_6)。
【0051】
なお、CPU41_1によるストリームデータのデコード処理に並行して、1/30秒毎に、VGAデバイス42_2からDMAC41_2にトリガがかかり、DMAC41_2により、1/30秒ごとに、SDRAM42_1からのリード分として1MB、VGAデバイス42_2へのライト分として1MBの合計2MBのフレームデータの転送が行われる。
【0052】
図8はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における転送例を従来方式による場合と比較して示すタイムチャートである。図8(A)は従来方式による場合、図8(B)は本発明の第1実施形態の第1具体例の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先として転送が行われている。
【0053】
ここで、従来方式による場合には、DMAC41_2のアクセスが常に優先的に処理されるため、その期間は、CPU41_1のアクセスは処理が後回しにされる。この結果、例えば、図8(A)に示す転送例では、矢印線XE1〜XE3で示すように、CPU41_1にアクセスレイテンシが大きくなる場合が発生している。
【0054】
これに対して、本発明の第1実施形態の第1具体例においては、DMAC41_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}が「目標転送量保持レジスタ31_2の値{TA=2MB}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX=1/30秒}」なる計算で求められる。
【0055】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、DMAC41_2にバス権が与えられ、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、CPU41_1にバス権が与えられる。
【0056】
この結果、図8(B)に示すように、DMAC41_2の指定期間{1/30秒}内の目標転送量{TA=2MB}を保障することができ、しかも、DMAC41_2のバスアクセスを拡散することができる。
【0057】
図9はアービトレーション判定回路24が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における指定期間内の時間とDMAC41#2の累積転送量との関係を示す図であり、図9(A)は図8(B)に示す転送例、図9(B)は図9(A)に示す転送例の場合の指定期間内の時間とDMAC41_2の累積転送量との関係を示している。
【0058】
図10は本発明の第1実施形態の第2具体例の構成図である。本発明の第1実施形態の第2具体例は、バス23の帯域を50MB/secとし、その他については、本発明の第1実施形態の第1具体例と同様に構成したものである。
【0059】
本発明の第1実施形態の第2具体例においても、本発明の第1実施形態の第1具体例の場合と同様に、CPU41_1は、SDRAM42_1に保持されているMPEG2やH.268などのストリームデータをフレームデータにデコードしてSDRAM42_1に格納し、DMAC41_2は、CPU41_1がSDRAM42_1に格納したフレームデータを1/30秒毎に1フレームずつVGAデバイス42_2に転送するものとする。
【0060】
このような動作をCPU41_1及びDMAC41_2に実行させるためには、指定期間保持レジスタ28に設定すべき値は1/30秒となる。また、DMAC41_2は、SDRAM42_1からリードを行い、VGAデバイス42_2にライトを行うことになるので、目標転送量保持レジスタ31_2に設定すべき値は1MB×2=2MBとなる。
【0061】
しかしながら、バス23の帯域が50MB/secとされているので、DMAC41_2の1/30秒あたりの可能な転送量は1.67MBとなる。アービトレーション判定回路24は、DMAC41_2による累積転送量が目標転送量{2MB}に到達するように全てのバス帯域をDMAC41_2に割り当てるように動作するが、結果的には、図11に示すように、1/30秒間に2MBを転送することができない。
【0062】
この場合、指定期間終了時に、転送完了/未完了判定・通知回路32_2は、DMAC41_2による累積転送量が目標転送量{2MB}に到達しなかったことを判定し、CPU41_1にエラーを通知することになる。
【0063】
図12は本発明の第1実施形態におけるアービトレーション判定回路24の第2動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS12_1)。
【0064】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS12_1でNOの場合)には、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS12_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}であるか否かを判定する(ステップS12_3)。
【0065】
そして、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}>転送量カウンタ30_2の値{ac}の場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合(ステップS12_3でYESの場合)には、アクセス元21_2のバス権優先度を上げ{ステップS12_4}、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS12_6)、ステップS12_1に戻る。
【0066】
これに対して、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}≦転送量カウンタ30_2の値{ac}でない場合、即ち、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合(ステップS12_3でNOの場合)には、アクセス元21_2のバス権優先度を下げ(ステップS12_5)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS12_6)、ステップS12_1に戻る。
【0067】
なお、ステップS12_6において、バス権優先度が同一のアクセス元には、ラウンドロビン又は固定優先の手法でバス優先権を与える。そして、指定期間が終了したときは、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0068】
図13はアービトレーション判定回路24が第2動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートであり、本発明の第1実施形態が4個のアクセス元21_1〜21_4を備えている場合を例にしている。
【0069】
図13(A)は従来方式による場合、図13(B)は本発明の第1実施形態の場合を示しているが、いずれの場合も、アクセス元21_2のアクセスを最高優先とし、アクセス元21_1、21_3、21_4のバス権優先度をラウンドロビンの手法で決定している場合を示しており、アクセス元21_1、21_3、21_4の間では、アクセス元21_1→アクセス元21_3→アクセス元21_4の順にバスアクセスが行われている。
【0070】
ここで、従来方式による場合には、アクセス元21_2のバスアクセスが常に優先的に処理されるため、その期間は、他のアクセス元21_1、21_3、21_4のバスアクセスは処理が後回しにされる。この結果、例えば、図13(A)に示す転送例では、アクセス元21_1、21_3、21_4は、転送を或る程度まとめて行うことができないという状態が発生している。
【0071】
これに対して、本発明の第1実施形態は、アービトレーション判定回路24の第2動作例の下では、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target}を「目標転送量保持レジスタ31_2の値{TA}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求めるとしている。
【0072】
そして、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達していない場合には、アクセス元21_2のバス権優先度を上げ、転送量カウンタ30_2の値{ac}が指定期間の開始時刻から現在時刻までの目標転送量{ac_target}に到達している場合には、アクセス元21_2のバス権優先度を下げるとしている。
【0073】
この結果、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、かつ、アクセス元21_1、21_3、21_4の転送処理を或る程度まとめて行うことができる。したがって、アクセス元21_1、21_3、21_4のバスアクセスが、それぞれ、例えば、SDRAMの同一バンクの同一ページアドレス、かつ、異なるコラムアドレスに対するものである場合には、必要なサイクルを減らし、高速化を図ることができる。
【0074】
表1は本発明の第1実施形態の性能と図17に示す従来の情報処理装置の性能を比較した表である。
【0075】
【表1】
【0076】
以上のように、本発明の第1実施形態においては、アービトレーション判定回路24に第1動作例に従った動作を行わせる場合には、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、アクセス元21_1、21_3〜21_Nのアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0077】
また、本発明の第1実施形態においては、アービトレーション判定回路24に第2動作例に従った動作を行わせる場合には、アクセス元21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_2のバスアクセスを拡散し、かつ、アクセス元21_1、21_3〜21_Nの転送処理を或る程度まとめて行うことができ、高速化を図ることができる。
【0078】
(第2実施形態)
図14は本発明の第2実施形態の構成図である。本発明の第2実施形態は、アクセス元21_1に対応させて、転送量カウンタ30_1、目標転送量保持レジスタ31_1及び転送完了/未完了判定・通知回路32_1を設けると共に、アクセス元21_2に対応させて、転送量カウンタ30_2、目標転送量保持レジスタ31_2及び転送完了/未完了判定・通知回路32_2を設け、その他については、本発明の第1実施形態と同様に構成したものである。
【0079】
図15は本発明の第2実施形態における時間測定カウンタ29及び転送量カウンタ30_1、30_2の動作を示すフローチャートである。即ち、指定期間が開始すると、時間測定カウンタ29は、カウントを開始することにより現在時刻を進める(ステップS15_1)。そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かが判定される(ステップS15_2)。
【0080】
そして、現在時刻が指定期間終了時に到達しない間(ステップS15_2の結果がNOである間)は、転送量カウンタ30_1は、アクセス元21_1がオペレーションを発行したか否かを判定し(ステップS15_3_1)、アクセス元21_1がオペレーションを発行した場合(ステップS15_3_1でYESの場合)には、アクセス元21_1が出力するアクセスサイズ情報を入力してアクセス元21_1の転送量を累積加算する(ステップS15_4_1)。これに対して、アクセス元21_1がオペレーションを発行しない場合(ステップS15_3_1でNOの場合)には、転送量カウンタ30_1は、アクセス元21_1のオペレーションの発行を待つ。
【0081】
また、転送量カウンタ30_2は、アクセス元21_2がオペレーションを発行したか否かを判定し(ステップS15_3_2)、アクセス元21_2がオペレーションを発行した場合(ステップS15_3_2でYESの場合)には、アクセス元21_2が出力するアクセスサイズ情報を入力してアクセス元21_2の転送量を累積加算する(ステップS15_4_2)。これに対して、アクセス元21_2がオペレーションを発行しない場合(ステップS15_3_2でNOの場合)には、転送量カウンタ30_2は、アクセス元21_2のオペレーションの発行を待つ。
【0082】
そして、その後、時間測定カウンタ29による現在時刻が指定期間終了時に到達した場合(ステップS15_2でYESの場合)には、時間測定カウンタ29のクリア処理と、転送量カウンタ30_2のクリア処理が行われる(ステップS15_5)。
【0083】
図16は本発明の第2実施形態におけるアービトレーション判定回路24の第1動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS16_1)。
【0084】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS16_1でNOの場合)には、アクセス元21_1について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}を「目標転送量保持レジスタ31_1の値{TA(1)}×時間測定カウンタ29の値(time)/指定期間保持レジスタ28の値(TIME_MAX)」なる計算で求め(ステップS16_2_1)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}>転送量カウンタ30_1の値{ac(1)}であるか否かを判定する(ステップS16_3_1)。
【0085】
また、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}を「目標転送量保持レジスタ31_2の値{TA(2)}×時間測定カウンタ29の値(time)/指定期間保持レジスタ28の値(TIME_MAX)」なる計算で求め(ステップS16_2_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}>転送量カウンタ30_2の値{ac(2)}であるか否かを判定する(ステップS16_3_2)。
【0086】
そして、ac_target(1)>ac(1)(ステップS16_3_1でYES)、かつ、ac_target(2)}≦ac(2)(ステップS16_3_2でNO)の場合には、アクセス元21_1にバス権を与える(ステップS16_4)。
【0087】
これに対して、ac_target(1)≦ac(1)(ステップS16_3_1でNO)、かつ、ac_target(2)>ac(2)(ステップS16_3_2でYES)の場合には、アクセス元21_2にバス権を与え(ステップS16_4)、ステップS16_1に戻る。
【0088】
また、ac_target(1)>ac(1)}(ステップS16_3_1でYES)、かつ、ac_target(2)>ac(2)(ステップS16_3_2でYES)の場合には、アクセス元21_1、21_2にラウンドロビン又は固定優先の手法でバス権を与え(ステップS16_4)、ステップS16_1に戻る。
【0089】
また、ac_target(1)≦ac(1)(ステップS16_3_1でNO)、かつ、ac_target(2)}≦ac(2)(ステップS16_3_2でNO)の場合には、アクセス元21_1〜21_Nにラウンドロビン又は固定優先の手法に従いバス権を与え(ステップS16_5)、ステップS16_1に戻る。そして、指定期間が終了した場合(ステップS16_1でYESの場合)には、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0090】
図17は本発明の第2実施形態におけるアービトレーション判定回路24の第2動作例を示すフローチャートである。即ち、アービトレーション判定回路24は、第2動作例においては、時間測定カウンタ29による現在時刻が指定期間終了時に到達したか否かを判定する(ステップS17_1)。
【0091】
そして、時間測定カウンタ29による現在時刻が指定期間終了時に到達していない場合(ステップS17_1でNOの場合)には、アクセス元21_1について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}を「目標転送量保持レジスタ31_1の値{TA(1)}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS17_2_1)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(1)}>転送量カウンタ30_1の値{ac(1)}であるか否かを判定する(ステップS17_3_1)。
【0092】
また、アクセス元21_2について、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}を「目標転送量保持レジスタ31_2の値{TA(2)}×時間測定カウンタ29の値{time}/指定期間保持レジスタ28の値{TIME_MAX}」なる計算で求め(ステップS17_2_2)、指定期間の開始時刻から現在時刻までの目標転送量{ac_target(2)}>転送量カウンタ30_2の値{ac(2)}であるか否かを判定する(ステップS17_3_2)。
【0093】
そして、ac_target(1)>ac(1)(ステップS17_3_1でYES)、かつ、ac_target(2)≦ac(2)(ステップS17_3_2でNO)の場合には、アクセス元21_1のバス権優先度を上げ(ステップS17_4_1)、かつ、アクセス元21_2のバス権優先度を下げ(ステップS17_5_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0094】
これに対して、ac_target(1)≦ac(1)(ステップS17_3_1でNO)、かつ、ac_target(2)>ac(2)(ステップS17_3_2でYES)の場合には、アクセス元21_1のバス権優先度を下げ(ステップS17_5_1)、かつ、アクセス元21_2のバス権優先度を上げ(ステップS17_4_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0095】
また、ac_target(1)>ac(1)(ステップS17_3_1でYES)、かつ、ac_target(2)>ac(2)(ステップS17_3_2でYES)の場合には、アクセス元21_1、21_2のバス権優先度を上げ(ステップS17_4_1、S17_4_2)、アクセス元21_1〜21_Nに対してバス権優先度に基づきバス権を与え(ステップS17_6)、ステップS17_1に戻る。
【0096】
なお、ステップS17_6において、バス権優先度が同一の場合には、ラウンドロビン又は固定優先の手法でバス優先権を与える。そして、指定期間が終了した場合(ステップS17_1でYESの場合)には、指定期間内の処理を終了し、次の指定期間内の動作を開始する。
【0097】
本発明の第2実施形態においては、アービトレーション判定回路24に第1動作例に従った動作を行わせる場合には、アクセス元21_1、21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_1、21_2のバスアクセスを拡散し、アクセス元21_3〜21_Nのアクセスレイテンシを向上させ、システム全体の性能向上を図ることができる。
【0098】
また、本発明の第2実施形態においては、アービトレーション判定回路24に第2動作例に従った動作を行わせる場合には、アクセス元21_1、21_2の指定期間内の目標転送量を保障することができ、しかも、アクセス元21_1、21_2のバスアクセスを拡散し、かつ、アクセス元21_3〜21_Nの転送処理を或る程度まとめて行うことができ、高速化を図ることができる。
【0099】
なお、本発明の第2実施形態においては、アクセス元21_1〜21_Nのうち、2個のアクセス元21_1、21_2をフロー制御対象とし、これに対応させて転送量カウンタ30_1、30_2、目標転送量保持レジスタ31_1、31_2及び転送完了/未完了判定・通知回路32_1、32_2を設けた場合について説明したが、更に、アクセス元21_3〜21_Nの一部又は全部をフロー制御対象とし、これらに転送量カウンタ、目標転送量保持レジスタ、転送完了/未完了判定・通知回路を設けるようにしても良い。
【図面の簡単な説明】
【0100】
【図1】本発明の第1実施形態の構成図である。
【図2】本発明の第1実施形態が備える転送量カウンタの動作を説明するための図である。
【図3】本発明の第1実施形態における時間測定カウンタ及び転送量カウンタの動作を示すフローチャートである。
【図4】本発明の第1実施形態におけるアービトレーション判定回路の第1動作例を示すフローチャートである。
【図5】本発明の第1実施形態が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートである。
【図6】本発明の第1実施形態の第1具体例の構成図である。
【図7】本発明の第1実施形態の第1具体例が備えるCPUの動作を示すフローチャートである。
【図8】本発明の第1実施形態の第1具体例が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における転送例を従来方式による場合と比較して示すタイムチャートである。
【図9】本発明の第1実施形態の第1具体例が備えるアービトレーション判定回路が第1動作例に従って動作した場合の本発明の第1実施形態の第1具体例における指定期間内の時間とDMACの累積転送量との関係を示す図である。
【図10】本発明の第1実施形態の第2具体例の構成図である。
【図11】本発明の第1実施形態の第2具体例が備える転送完了/未完了判定・通知回路の動作を説明するための図である。
【図12】本発明の第1実施形態におけるアービトレーション判定回路の第2動作例を示すフローチャートである。
【図13】本発明の第1実施形態が備えるアービトレーション判定回路が第2動作例に従って動作した場合の本発明の第1実施形態における転送例を従来方式による場合と比較して示すタイムチャートである。
【図14】本発明の第2実施形態の構成図である。
【図15】本発明の第2実施形態における時間測定カウンタ及び転送量カウンタの動作を示すフローチャートである。
【図16】本発明の第2実施形態におけるアービトレーション判定回路の第1動作例を示すフローチャートである。
【図17】本発明の第2実施形態におけるアービトレーション判定回路の第2動作例を示すフローチャートである。
【図18】従来の情報処理装置の一例の構成図である。
【図19】図18に示す従来の情報処理装置における転送例を示すタイムチャートである。
【図20】SDRAMの一例を示す図である。
【図21】図20に示すSDRAMへのアクセス例を示す図である。
【符号の説明】
【0101】
1_1、1_2、1_N…アクセス元
2_1、2_n…アクセス先
3…バス
4…アービトレーション判定回路
5…バス権要求信号線
6…バス権返送信号線
10…SDRAM本体
11〜14…バンク
15〜17…メモリセル
21_1、21_2、21_N…アクセス元
22_1、22_n…アクセス先
23…バス
24…アービトレーション判定回路
25…バス権要求信号線
26…バス権返送信号線
27…指定期間保持レジスタ・時間測定カウンタ部
28…指定期間保持レジスタ
29…時間測定カウンタ
30_1、30_2…転送量カウンタ
31_1、31_2…目標転送量保持レジスタ
32_1、32_2…転送完了/未完了判定・通知回路
41_1…CPU
41_2…DMAC
42_1…SDRAM
42_2…VGAデバイス
【特許請求の範囲】
【請求項1】
フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、
前記アービトレーション判定回路は、前記フロー制御対象のアクセス元には、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合にバス権を付与することを特徴とする情報処理装置。
【請求項2】
フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、
前記アービトレーション判定回路は、前記フロー制御対象のアクセス元については、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合はバス権優先度を上げ、前記指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」以上の場合はバス権優先度を下げることを特徴とする情報処理装置。
【請求項3】
前記指定期間を保持する指定期間保持レジスタと、
前記指定期間の開始時刻から現在時刻までの時間を測定する時間測定カウンタと、
前記フロー制御対象のアクセス元の転送量をカウントする転送量カウンタと、
前記フロー制御対象のアクセス元の前記指定期間内の目標転送量を保持する目標転送量保持レジスタを有することを特徴とする請求項1又は2記載の情報処理装置。
【請求項1】
フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、
前記アービトレーション判定回路は、前記フロー制御対象のアクセス元には、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合にバス権を付与することを特徴とする情報処理装置。
【請求項2】
フロー制御対象のアクセス元を含む複数のアクセス元と、該複数のアクセス元に共有されるバスと、アクセス先と、前記複数のアクセス元のバスアクセスを調停するアービトレーション判定回路を有する情報処理装置において、
前記アービトレーション判定回路は、前記フロー制御対象のアクセス元については、指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」未満の場合はバス権優先度を上げ、前記指定期間の開始時刻から現在時刻までの転送量が「前記指定期間内の目標転送量×前記指定期間の開始時刻から現在時刻までの時間/前記指定期間」以上の場合はバス権優先度を下げることを特徴とする情報処理装置。
【請求項3】
前記指定期間を保持する指定期間保持レジスタと、
前記指定期間の開始時刻から現在時刻までの時間を測定する時間測定カウンタと、
前記フロー制御対象のアクセス元の転送量をカウントする転送量カウンタと、
前記フロー制御対象のアクセス元の前記指定期間内の目標転送量を保持する目標転送量保持レジスタを有することを特徴とする請求項1又は2記載の情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2007−323473(P2007−323473A)
【公開日】平成19年12月13日(2007.12.13)
【国際特許分類】
【出願番号】特願2006−154478(P2006−154478)
【出願日】平成18年6月2日(2006.6.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成19年12月13日(2007.12.13)
【国際特許分類】
【出願日】平成18年6月2日(2006.6.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]