説明

調停装置、調停方法及びプログラム

【課題】調停処理の1サイクルあたりの実行処理内容を増加させず、かつ効率的なリクエストパケットの選択を行う。
【解決手段】予測回路35は、調停回路36による調停の実行の前に、調停回路36によって選択されるリクエストパケットの予測を行い、クロスバ4に当該リクエストパケットを出力させる接続命令を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、調停装置、調停方法及びプログラムに関する。
【背景技術】
【0002】
半導体技術の進歩により、集積率の高いLSI(Large Scale Integration)が開発されてきた。しかし、消費電力の増加により、集積率のさらなる向上によってLSIの性能を向上させることが困難になってきている。そこで、LSIのプロセッサコア数を増やし、動作周波数を低く抑えることで消費電力の増加を抑え、複数のプロセッサコアの並列度によってスループットを向上させるマルチコア構成が用いられている。
【0003】
マルチコア構成によるLSIにおいてコア同士を接続するルータとしては、プロセッサコアをリング状に接続するリングバス方式のルータや、プロセッサコア間にクロスバを設けてそれぞれのプロセッサコアを接続するクロスバ方式のルータが用いられている。このようなオンチップのルータ(特にクロスバ方式のルータ)の処理は、リクエストパケットからの情報の取得、出力ポートの設定、クロスバ調停の実施、及び出力ポートへの転送を行う必要があり、これらの処理は、3段乃至4段のパイプライン処理によって行われる。
【0004】
クロスバの調停方法として、競合したリクエストパケットをランダムに選択するランダム選択方式、競合したリクエストパケットを順に選択するラウンドロビン選択方式、予め決められた優先順位の順に競合したリクエストパケットを選択する優先選択方式が用いられている。
なお、特許文献1には、競合したリクエストパケットの調停履歴に基づいてバス調停を行う方法が開示されている。
また、特許文献2には、特定の転送処理に関与するプロセッサコアによるリクエストパケットの出力順序を記録したテーブルを用い、現在資源を使用しているプロセッサコアの次にリクエストパケットを出力するプロセッサコアに対して、優先的に資源を使用させる調停方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−167049号公報
【特許文献2】特開2008−299624号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したランダム選択方式、ラウンドロビン選択方式による調停方法は、各プロセッサコアが均等にリクエストパケットを出力すると仮定してプロセッサコアを選択する方法である。そのため、プロセッサコアごとにリクエストパケットの出力が均等でないアプリケーションを実行した場合、効率的なリクエストパケットの選択ができなくなるという問題がある。また、優先選択方式による調停方法は、予めプロセッサコアの優先順位が決められているため、優先順位の低いプロセッサコアによるリクエストパケットの出力が多いアプリケーションを実行した場合、効率的なリクエストパケットの選択ができなくなるという問題がある。
【0007】
また、特許文献1、特許文献2に記載の調停方法は、リクエストパケットの調停履歴に基づいて調停を行うが、調停処理の1サイクルあたりに実行する処理内容が多くなるため、調停装置の動作周波数を上げることができず、通信遅延が発生する惧れがある。
本発明は、上記の問題に鑑みてなされたものであり、調停処理の1サイクルあたりの実行処理内容を増加させず、かつ効率的なリクエストパケットの選択を行う調停装置、調停方法及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【0008】
本発明は上記の課題を解決するためになされたものであり、複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置であって、複数の前記資源要求装置から資源要求の入力を受け付ける入力部と、前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する調停部と、前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する予測部と、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力する中断部とを備え、前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが同一である場合に、前記クロスバに対する前記接続命令の出力を行わないことを特徴とする。
【0009】
また、本発明は、複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置を用いた調停方法であって、入力部は、複数の前記資源要求装置から資源要求の入力を受け付け、調停部は、前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、予測部は、前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力し、中断部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力し、前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力することを特徴とする。
【0010】
また、本発明は、複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置を、複数の前記資源要求装置から資源要求の入力を受け付ける入力部、前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する調停部、前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する予測部、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力する中断部として機能させ、前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが同一である場合に、前記クロスバに対する前記接続命令の出力を行わないことを特徴とする。
【発明の効果】
【0011】
本発明によれば、調停部による調停の実行の前に、予測部が、選択される資源要求を予測し、クロスバに当該資源要求を出力させる接続命令を出力する。これにより、調停装置は、調停処理の1サイクルあたりの実行処理内容を増加させずに、効率的な資源要求の選択を行うことができる。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施形態によるクロスバ調停装置の構成を示す概略ブロック図である。
【図2】予測回路の構成を示す概略ブロック図である。
【図3】調停回路のパイプライン処理の流れを示す図である。
【図4】調停装置の動作を示す第1のフローチャートである。
【図5】調停装置の動作を示す第2のフローチャートである。
【図6】リクエストパケットの調停方法を示す図である。
【図7】強度情報の更新方法を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の一実施形態によるクロスバ調停装置の構成を示す概略ブロック図である。
クロスバ調停装置は、プロセッサコア及び入出力装置を相互に接続するルータであって、入力ポート1−1〜1−5(以下、入力ポート1−1〜1−5を総称する場合は入力ポート1と表記する)、入力側バッファ部2−1〜2−5(以下、入力側バッファ部2−1〜2−5を総称する場合は入力側バッファ部2と表記する)、調停装置3、クロスバ4、出力側バッファ部5−1〜5−5(以下、出力側バッファ部5−1〜5−5を総称する場合は出力側バッファ部5と表記する)、出力ポート6−1〜6−5(以下、出力ポート6−1〜6−5を総称する場合は出力ポート6と表記する)を備える。
【0014】
入力ポート1は、それぞれ接続されたプロセッサコアまたは入出力装置(以下、資源要求装置とよぶ)からリクエストパケットを入力し、当該リクエストパケット(資源要求)を、接続された入力側バッファ部2に出力する。なお、本実施形態においては、入力ポート1が資源要求装置から入力するリクエストパケットには、出力先を示す情報及び調停の優先度を示す強度情報が含まれる。
入力側バッファ部2は、接続された入力ポート1からリクエストパケットを入力し、当該リクエストパケットを一時的に蓄えて、リクエストパケットに含まれる強度情報を調停装置3に出力し、リクエストパケット本体をクロスバ4に出力する。
【0015】
調停装置3は、入力側バッファ部2から入力した強度情報に基づいてリクエストパケットの調停を行い、調停によって選択されたリクエストパケットを出力ポート6に転送させる接続命令をクロスバ4に出力する。また、各プロセッサコアに関連付けられた強度情報を更新し、出力ポート6に出力する。
クロスバ4は、調停装置3から接続命令を入力し、当該接続命令に基づいて入力側バッファ部2から入力したリクエストパケットを出力側バッファ部5に出力する。
出力側バッファ部5は、クロスバ4からリクエストパケットを入力し、当該リクエストパケットを一時的に蓄えて、接続された出力ポート6に出力する。
出力ポート6は、接続された出力側バッファ部5からリクエストパケットを、調停装置3から強度情報を入力し、当該強度情報を含むリクエストパケットを、接続されたプロセッサコアまたは入出力装置(以下、計算資源と呼ぶ)に出力する。
【0016】
なお、入力ポート1及び出力ポート6に接続されたプロセッサコア及び入出力装置は、共有のメモリ(図示せず)と接続されている。そして、プロセッサコア及び入出力装置は、当該メモリから自装置に関連付けられた強度情報を読み出す。また、プロセッサコア及び入出力装置は、出力ポート6から出力された強度情報を当該メモリに上書きして記録する。これにより、プロセッサコア及び入出力装置は、調停装置3が更新した強度情報を次回の入力に反映させることができる。
【0017】
入力側バッファ部2は、入力バッファ21、入力側FIFOバッファ制御回路22、FIFOバッファ23、出力側FIFOバッファ制御回路24、出力バッファ25から構成される。
入力バッファ21は、入力ポート1から入力したリクエストパケットを一時的に記憶する。
入力側FIFOバッファ制御回路22は、入力バッファ21が記憶するリクエストパケットを取り出し、FIFOバッファ23に登録する。
FIFOバッファ23は、入力側FIFOバッファ制御回路22によって記録されたリクエストパケットを一時的に記憶する。
出力側FIFOバッファ制御回路24は、FIFOバッファ23に最初に登録されたリクエストパケットを取り出し、出力バッファ25に登録する。ここで、「取り出す」とは、FIFOバッファ23からリクエストパケットを読み出し、読み出したリクエストパケットをFIFOバッファ23から削除することを示す。
出力バッファ25は、調停装置3及びクロスバ4に出力するリクエストパケットを一時的に記憶する。
【0018】
調停装置3は、強度入力バッファ31−1〜31−5(以下、強度入力バッファ31−1〜31−5を総称する場合は強度入力バッファ31と表記する)、リクエスト入力バッファ32、バッファ登録回路33、調停バッファ回路34、予測回路35、調停回路36、強度更新回路37、強度出力バッファ38−1〜38−5(以下、強度出力バッファ38−1〜38−5を総称する場合は強度出力バッファ38と表記する)を備える。
強度入力バッファ31は、それぞれ対応する入力側バッファ部2からリクエストパケットに含まれる強度情報を入力し、一時的に記憶する。
リクエスト入力バッファ32は、入力側バッファ部2からリクエストパケット本体を入力し、一時的に記憶する。
【0019】
バッファ登録回路33は、強度入力バッファ31が記憶する強度情報を取り出し、入力元の入力ポート1の識別情報に関連付けて調停バッファ回路34に登録する。
調停バッファ回路34は、調停対象となるリクエストパケットの入力元の入力ポート1の識別情報とリクエストパケットの強度情報とを関連付けて記憶する。
予測回路35は、調停バッファ回路34が記憶する調停対象となるリクエストパケットの情報と、調停回路36による過去の調停結果とに基づいて調停回路36がどのリクエストパケットを選択するかを予測し、予測結果を示す選択制御情報を調停回路36に出力する。ここで、選択制御情報とは、予測回路35が予測したリクエストパケットとその強度情報を示す。
【0020】
調停回路36は、強度入力バッファ31が記憶する強度情報を取り出し、当該強度情報に基づいてリクエストパケットの調停を行い、リクエストパケットを出力ポート6に転送させる接続命令をクロスバ4に出力する。また、調停回路36は、予測回路35から選択制御情報を入力し、当該選択制御情報が示すリクエストパケットを出力ポート6に転送させる接続命令をクロスバ4に出力する。そして、調停回路36は、調停結果を予測回路35に出力する。ここで、調停結果とは、調停回路36が接続命令を出力したリクエストパケットとその強度情報を示す。なお、調停結果は、調停回路36による接続命令の出力毎に予測回路35及び強度更新回路37に出力される。また、調停回路36は、予測回路35から入力した選択制御情報が示す予測結果が誤っているか否かを判定し、誤っている場合は、クロスバ4に対し、選択制御情報に基づいて出力した接続命令の実行を中断させる中断命令を出力する。
【0021】
強度更新回路37は、予測回路35から入力した選択制御情報が示すリクエストパケットと調停回路36から入力した調停結果が示すリクエストパケットとが一致する場合に強度情報を更新し、強度出力バッファ38に出力する。
強度出力バッファ38は、強度更新回路37から強度情報を入力し、当該強度情報を一時的に蓄えて、接続された出力ポート6に出力する。
【0022】
図2は、予測回路の構成を示す概略ブロック図である。
予測回路35は、一時リクエスト記憶部351、履歴登録部352、調停履歴記憶部353、履歴検索用バッファ354、検索部355、予測部356を備える。
【0023】
一時リクエスト記憶部351は、調停回路36から調停結果を入力し、当該調停結果を記憶する。なお、一時リクエスト記憶部351は、調停結果の入力順を記憶しており、新たな調停結果の入力によって一時リクエスト記憶部351の残り記憶容量が所定量に達する場合、一時リクエスト記憶部351は、最初に登録された調停結果を削除し、新たに入力した調停結果を記憶する。なお、本実施形態において、一時リクエスト記憶部351の記憶容量は、少なくとも3つの調停結果を記憶することができるだけあればよい。
【0024】
履歴登録部352は、一時リクエスト記憶部351に新たに記憶された調停結果を読み出し、当該調停結果を調停履歴記憶部353に記録する。
調停履歴記憶部353は、履歴登録部352から調停結果を入力し、当該調停結果と調停結果の入力順を示すインデックス番号とを関連付けて記憶する。なお、調停履歴記憶部353は、調停結果の入力順を記憶しており、新たな調停結果の入力によって調停履歴記憶部353の残り記憶容量が所定量に達する場合、調停履歴記憶部353は、最初に登録された調停結果を削除し、新たに入力した調停結果を記憶する。なお、調停履歴記憶部353の記憶容量は、一時リクエスト記憶部351の記憶容量より大きいことが望ましい。
【0025】
履歴検索用バッファ354は、一時リクエスト記憶部351から最後に登録された3つの調停結果を読み出し、検索部355による検索が完了するまで一時的に記憶する。
検索部355は、調停履歴記憶部353が記憶する調停結果の中から、履歴検索用バッファ354が記憶する3つの調停結果と同じ組み合わせの調停結果を検索する。
予測部356は、検索部355による検索結果と、調停バッファ回路34に新たに登録された強度情報とに基づいて、調停回路36の調停により何れのリクエストパケットが出力されるかを予測し、予測したリクエストパケットを示す選択制御情報を、調停回路36及び強度更新回路37に出力する。
【0026】
そして、本実施形態による調停装置3において、強度入力バッファ31は、複数のプロセッサコア及び入出力装置から強度情報の入力を受け付ける。次に、調停回路36は、強度入力バッファ31が同一の計算資源に対するリクエストパケットに関連付けられた強度情報の中から1つを選択し、選択された強度情報に関連付けられたリクエストパケットを当該リクエストパケットの発行先の計算資源へ出力させる接続命令をクロスバ4に出力する。
【0027】
他方、予測回路35は、調停回路36による処理を実行する前に、調停回路36によって選択されるリクエストパケットを予測し、当該リクエストパケットを当該リクエストパケットの発行先の計算資源へ出力させる接続命令をクロスバ4に出力する。
そして、調停回路36は、選択したリクエストパケットと予測回路35が予測したリクエストパケットとが異なる場合に、クロスバ4に対して予測回路35による接続命令の実行を中断させる中断命令を出力する。
また、調停回路36は、選択したリクエストパケットと予測回路35が予測したリクエストパケットとが同一である場合に、クロスバ4に対する接続命令の出力を行わない。
【0028】
これにより、調停処理の1サイクルあたりの実行処理内容を増加させず、かつ効率的なリクエストパケットの選択を行うことができる。以下に、本実施形態による調停装置によって調停処理を高速化することができる理由を説明する。
【0029】
図3は、調停回路のパイプライン処理の流れを示す図である。
調停回路36は、4段のパイプライン処理により、リクエストパケットの調停を行う。すなわち調停回路36は、リクエストパケットから出力先の出力ポート6の識別情報を読み取るポート情報読み取りステージX0、読み取った識別情報に従ってリクエストパケットを出力ポート6に設定する出力ポート設定ステージX1、強度情報に基づいて調停を行うクロスバ設定前処理ステージX2及びクロスバ設定後処理ステージX3を順次実行することで調停処理を行う。そして、調停回路は4段のパイプライン処理による調停の後、調停により選択されたリクエストパケットを出力させる接続命令をクロスバ4に出力するパケット送出ステージXTを実行する。そのため、調停回路36は、5サイクルで調停処理を実行する。これは、従来の調停方法に要するサイクル数と等しい。
【0030】
他方、予測回路35は、選択制御情報を予め生成するため、調停回路36は、予測回路35が生成した選択制御情報から選択するリクエストパケットを読み取る制御情報読み取りステージP0を実行し、読み取ったリクエストパケットを出力させる接続命令をクロスバ4に出力するパケット送出ステージXTを実行する。これにより、調停回路36は、2サイクルで調停処理を実行することができる。したがって、予測回路35によって予測されたリクエストパケットと調停回路36による調停で選択されたリクエストパケットとが一致する場合、すなわち予測回路35による予測が的中した場合、3サイクル分高速に調停処理を行うことができる。
つまり、予測回路35による予測が的中するほど調停装置による調停処理が高速化されることとなる。
【0031】
なお、予測回路35によって予測されたリクエストパケットと調停回路36による調停で選択されたリクエストパケットとが一致しない場合、すなわち予測回路35による予測が外れた場合、調停回路36が、予測回路35が生成した選択制御情報に基づいて出力した接続命令の実行を中断させる中断命令をクロスバ4に出力し、改めて接続命令の出力を行う。このとき、調停回路36は、中断命令の出力と接続命令の出力とを平行して実行するため、5サイクルで調停処理がなされる。そのため、予測回路35による予測が外れた場合にも、従来の調停処理と比較して遅延が発生することはない。
【0032】
次に、本実施形態による調停装置の動作を説明する。
図4は、調停装置の動作を示す第1のフローチャートである。
図5は、調停装置の動作を示す第2のフローチャートである。
まず、資源要求装置が同一の計算資源に対するリクエストパケットを発行すると、リクエストパケットを発行した資源要求装置に接続された入力ポート1を介して、入力側バッファ部2にリクエストパケットが登録される。そして、入力ポート1に登録されたリクエストパケットに含まれる強度情報は、調停装置3の強度入力バッファ31に入力され、リクエストパケットの本体は、調停装置3のリクエスト入力バッファ32に入力される(ステップS1)。そして、バッファ登録回路33は、リクエスト入力バッファ32から強度情報を取り出し、調停バッファ回路34に登録する。
【0033】
次に、予測回路35は、自回路の一時リクエスト記憶部351が記憶する過去の調停結果のうち最後に登録された3つの調停結果を読み出し、履歴検索用バッファ354に記録する(ステップS2)。ここで、最後に登録された3つの調停結果の読み出しは、一時リクエスト記憶部351が記憶する入力順が最も新しい調停結果を3つ読み出すことで行う。次に、予測回路35の検索部355は、調停履歴記憶部353が記憶する過去の調停結果の中から、履歴検索用バッファ354が記憶する調停結果の組み合わせを検索する(ステップS3)。具体的には、一時リクエスト記憶部351に最後に登録された3つの調停結果が、登録された順に「入力ポート1−4」「入力ポート1−5」「入力ポート1−1」からの入力であることを示す場合、履歴検索用バッファ354にはこれらの情報が登録され、検索部355は、調停履歴記憶部353が「入力ポート1−4」「入力ポート1−5」「入力ポート1−1」の順番に記憶された調停結果を検索する。
【0034】
次に、検索部355は、ステップS3で実行した検索の結果、履歴検索用バッファ354が記憶する調停結果と同じ組み合わせが調停履歴記憶部353に記憶されているか否かを判定する(ステップS4)。但し、調停履歴記憶部353の末尾に記憶された調停結果は、必ず履歴検索用バッファ354が記憶する調停結果と一致するが、当該調停結果は検索結果から除外するものとする。
【0035】
検索部355が、履歴検索用バッファ354が記憶する調停結果と同じ組み合わせが調停履歴記憶部353に記憶されていると判定した場合(ステップS4:YES)、予測部356は、検索部355が検索した調停結果の直後に調停履歴記憶部353に登録された調停結果を読み出す(ステップS5)。具体的には、予測部356は、検索部355が検索した調停結果に関連付けられた入力順を示すインデックス番号を読み出し、当該インデックス番号の次のインデックス番号に関連付けられた調停結果を、調停履歴記憶部353から読み出す。なお、検索部355によって複数の調停結果が検索された場合、予測部356は、それぞれの調停結果の直後に登録された調停結果をすべて読み出す。
【0036】
次に、予測部356は、調停バッファ回路34から強度情報を読み出し、読み出した強度情報の発行元と、ステップS5で読み出した調停結果の発行元とが一致するものがあるか否かを判定する(ステップS6)。予測部356は、発行元が一致するものがあると判定した場合(ステップS6:YES)、調停回路36によって一致したリクエストパケットが選択されると予測する(ステップS7)。なお、発行元が一致するものが複数存在する場合、検索部355による検索結果のうち最も頻出する発行元からのリクエストパケットが選択されると予測し、当該予測したリクエストパケットを示す選択制御情報を生成する。
【0037】
他方、ステップS4で検索部355が、履歴検索用バッファ354が記憶する調停結果と同じ組み合わせが調停履歴記憶部353に記憶されていないと判定した場合(ステップS4:NO)、または、ステップS6で予測部356が、読み出した強度情報と発行元が一致するリクエストパケットがないと判定した場合(ステップS6:NO)、予測部356は、ラウンドロビンアルゴリズムに基づいて、調停回路36によって選択されるリクエストパケットを予測し、当該予測したリクエストパケットを示す選択制御情報を生成する(ステップS8)。
【0038】
ステップS7、またはステップS8で予測部356が選択制御情報を生成すると、調停回路36は、予測部356が生成した選択制御情報を読み取り(ステップS9)、選択制御情報が示すリクエストパケットを出力ポート6に転送させる接続命令をクロスバ4に出力する(ステップS10)。すなわち、図3に示すP0ステージとXTステージの処理を実行する。
【0039】
また、ステップS9、S10の処理に平行して、調停回路36は、リクエスト入力バッファ32からリクエストパケット本体を読み出し、リクエストパケットに含まれる出力ポートのポート情報を読み取り(ステップS11)、読み取った出力ポートのポート情報に従って出力ポートを設定し(ステップS12)、リクエストパケットの調停処理を実行する(ステップS13)。すなわち、図3に示すX0ステージ、X1ステージ、X2ステージ、X3ステージを実行する。
【0040】
ここで、調停回路36によるリクエストパケットの調停方法について説明する。
調停回路36は、リクエスト入力バッファ32に格納されているリクエストパケットに関連付けられた強度情報を、強度入力バッファ31から読み出す。そして、調停回路36は、強度情報が示す値が最も大きいリクエストパケットを選択する。また、最大の値を有する強度情報に関連付けられたリクエストパケットが複数ある場合、調停回路36は、ラウンドロビンアルゴリズムに基づいて、何れのリクエストパケットを選択するかを決定する。
【0041】
図6は、リクエストパケットの調停方法を示す図である。
ここで、具体的にリクエストパケットの調停方法を説明する。図6に示すように、リクエスト入力バッファ32は、入力ポート1−1〜1−5から入力したそれぞれのリクエストパケットを記憶している。
入力ポート1−1から入力したリクエストパケット、及び入力ポート1−2から入力したリクエストパケットに関連付けられた強度情報は、「3」である。入力ポート1−3から入力したリクエストパケットに関連付けられた強度情報は、「5」である。入力ポート1−4から入力したリクエストパケットに関連付けられた強度情報は、「4」である。入力ポート1−5から入力したリクエストパケットに関連付けられた強度情報は、「1」である。
【0042】
この場合、調停回路36は、各強度情報の中から値が最大のものを抽出する。ここでは、入力ポート1−3から入力したリクエストパケットに関連付けられた強度情報「5」が最大である。したがって、調停回路36は、リクエスト入力バッファ32から、入力ポート1−3から入力したリクエストパケットを取り出し、当該リクエストパケットを調停結果として選択する。
【0043】
次の調停実行時には、入力ポート1−3から入力したリクエストパケットが既に取り出されているため、入力ポート1−4から入力したリクエストパケットに関連付けられた強度情報「4」が最大である。したがって、調停回路36は、リクエスト入力バッファ32から、入力ポート1−4から入力したリクエストパケットを取り出し、当該リクエストパケットを調停結果として選択する。
【0044】
次の調停実行時には、入力ポート1−3及び入力ポート1−4から入力したリクエストパケットが既に取り出されているため、入力ポート1−1及び入力ポート1−2から入力したリクエストパケットに関連付けられた強度情報「3」が最大である。したがって、調停回路36は、ラウンドロビンアルゴリズムに基づいて、入力ポート1−1または入力ポート1−2から入力したリクエストパケットの何れかを取り出し、当該リクエストパケットを調停結果として選択する。図6では、入力ポート1−1から入力したリクエストパケットを選択している。
【0045】
調停回路36は、ステップS13で調停処理を実行すると、予測回路35から入力した選択制御情報が示すリクエストパケットと調停処理によって選択されたリクエストパケットとが一致するか否かを判定する(ステップS14)。
調停回路36は、リクエストパケットが一致しないと判定した場合(ステップS14:NO)、ステップS10で出力した接続命令の実行を中断させる中断命令、及びステップS13の調停処理によって選択されたリクエストパケットを出力ポート6に転送させる接続命令をクロスバ4に出力する(ステップS15)。
【0046】
他方、ステップS14で調停回路36が、リクエストパケットが一致すると判定した場合(ステップS14:YES)、強度更新回路37は、各リクエストパケットに関連付けられた強度情報を更新し、強度出力バッファ38に記録する(ステップS16)。
【0047】
以下に、強度更新回路37による強度情報の更新方法を説明する。
図7は、強度情報の更新方法を示す図である。
強度更新回路37は、内部メモリに、入力ポート1のそれぞれに関連付けて、当該入力ポート1から入力したリクエストパケットが選択されると予測したときに予測が的中する度合いを示す的中度を記憶する。
次に、強度更新回路37は、調停回路36から、予測回路35が出力した選択制御情報が示すリクエストパケットと調停処理によって選択されたリクエストパケットとが一致するか否かを示す情報を入力する。強度更新回路37は、リクエストパケットが一致すると判定した場合、選択されたリクエストパケットに関連付けられた的中度を増加させ、それ以外の的中度を減少させて、内部メモリに上書きして記録する。図7に示す例によれば、選択されたリクエストパケットの的中度を「4」増加させ、それ以外のリクエストパケットの的中度を「1」減少させている。
他方、強度更新回路37は、リクエストパケットが一致しないと判定した場合、的中度の増減処理を行わない。
【0048】
そして、強度更新回路37は、的中度の増減処理の後、当該的中度に基づいて強度情報の値を決定する。図7に示す例によれば、的中度が20未満の場合、強度情報が示す値を「1」とし、的中度が20以上40未満の場合、強度情報が示す値を「2」とし、的中度が40以上60未満の場合、強度情報が示す値を「3」とし、的中度が60以上80未満の場合、強度情報が示す値を「4」とし、的中度が80以上の場合、強度情報が示す値を「5」としている。
つまり、予測回路35による予測が的中した場合にのみ、強度情報の値が増加することとなる。そのため、調停回路36は、より予測が的中しやすいリクエストパケットを優先的に選択することとなる。したがって、予測回路35による予測が的中する確率が上昇し、調停装置3による調停処理を高速化することができる。
【0049】
また、的中度をそのまま強度情報として用いず、的中度に対して丸め処理を行って強度情報を生成するため、調停回路36による選択にランダム性を持たせることができる。これにより、実行するアプリケーションを、的中度の低い資源要求装置によるリクエストパケットの出力が多いアプリケーションに変更した場合にも、的中度の低い資源要求装置によるリクエストパケットの選択がなされる。そのため、調停処理が繰り返されることにより、当該資源要求装置の的中度が向上するため、効率的な選択ができるようになる。
【0050】
ここで、具体的に強度情報の更新方法を説明する。図7に示すように、強度更新回路37の内部メモリは、入力ポート1−1〜1−5のそれぞれに関連付けて的中度を記憶している。
入力ポート1−1の的中度は、「19」である。入力ポート1−2の的中度は、「11」である。入力ポート1−3の的中度は、「13」である。入力ポート1−4の的中度は、「43」である。入力ポート1−5の的中度は、「14」である。
【0051】
そして、強度更新回路37は、調停回路36から、入力ポート1−4から入力したリクエストパケットを選択し、当該リクエストパケットが、予測回路35が出力した選択制御情報が示すリクエストパケットと一致することを示す情報を入力する。これにより、強度更新回路37は、入力ポート1−4に関連付けられた的中度を「4」増加させることで「47」に更新し、他の的中度を「1」ずつ減少させる。
次に、強度更新回路37は、的中度の値に応じて選択されたリクエストパケットに関連付けられた強度情報を更新する。つまり、強度更新回路37は、入力ポート1−4の的中度が「18」、すなわち20未満であるため、入力ポート1−4から入力したリクエストパケットの強度情報を「1」に更新する。
【0052】
次に、強度更新回路37は、調停回路36から、入力ポート1−1から入力したリクエストパケットを選択し、当該リクエストパケットが、予測回路35が出力した選択制御情報が示すリクエストパケットと一致することを示す情報を入力する。これにより、強度更新回路37は、入力ポート1−1に関連付けられた的中度を「4」増加させることで「22」に更新し、他の的中度を「1」ずつ減少させる。
次に、強度更新回路37は、入力ポート1−1の的中度が「22」、すなわち20以上40未満であるため、入力ポート1−4から入力したリクエストパケットの強度情報を「2」に更新する。
【0053】
次に、強度更新回路37は、調停回路36から、入力ポート1−3から入力したリクエストパケットを選択し、当該リクエストパケットが、予測回路35が出力した選択制御情報が示すリクエストパケットと一致しなかったことを示す情報を入力する。この場合、強度更新回路37は、的中度及び強度情報の更新を行わない。
【0054】
次に、強度更新回路37は、調停回路36から、入力ポート1−5から入力したリクエストパケットを選択し、当該リクエストパケットが、予測回路35が出力した選択制御情報が示すリクエストパケットと一致することを示す情報を入力する。これにより、強度更新回路37は、入力ポート1−5に関連付けられた的中度を「4」増加させることで「16」に更新し、他の的中度を「1」ずつ減少させる。
次に、強度更新回路37は、入力ポート1−1の的中度が「16」、すなわち20未満であるため、入力ポート1−4から入力したリクエストパケットの強度情報を「1」に更新する。
このような処理を繰り返すことで、調停回路36は、より予測が的中しやすいリクエストパケットを優先的に選択することとなり、調停装置3は高速に調停処理を行うことができる。
【0055】
ステップS15で、調停回路36が中断命令及び接続命令を出力した場合、またはステップS16で強度更新回路37が強度情報を更新した場合、調停回路36は、予測回路35の一時リクエスト記憶部351の末尾に調停結果を記録する(ステップS17)。次に、履歴登録部352は、一時リクエスト記憶部351に新たに記録された調停結果を、調停履歴記憶部353の末尾に記録する(ステップS18)。
【0056】
そして、予測回路35は、調停回路36が全てのリクエストパケットの調停を終了したか否かを判定する(ステップS19)。調停が終了したか否かの判定は、例えば、調停回路36が、リクエスト入力バッファ32にリクエストパケットが記憶されているか否かを判定することで実行することができる。ステップS13で、調停処理により選択されたリクエストパケットは、順次、リクエスト入力バッファ32から取り出されるため、調停が終了していないリクエストパケットが存在する場合、リクエスト入力バッファ32にはリクエストパケットが記憶されていることとなる。したがって、予測回路35は、リクエスト入力バッファ32にリクエストパケットが記憶されている場合に、リクエストパケットの調停を終了していないと判定する。
【0057】
予測回路35が、調停が終了していないリクエストパケットが存在すると判定した場合(ステップS19:NO)、ステップS2に戻り、次のリクエストパケットの調停を行う。他方、予測回路35が、全てのリクエストパケットに対する調停が終了していると判定した場合(ステップS19:YES)、処理を終了する。
【0058】
このように、本実施形態によれば、調停回路36による調停の実行の前に、予測回路35が、選択されるリクエストパケットの予測を行い、クロスバ4に当該リクエストパケットを出力させる接続命令を出力する。これにより、調停装置3は、調停処理の1サイクルあたりの実行処理内容を増加させずに、効率的なリクエストパケットの選択を行うことができる。
【0059】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、ステップS4で検索部355が、履歴検索用バッファ354が記憶する調停結果と同じ組み合わせが調停履歴記憶部353に記憶されていないと判定した場合、または、ステップS6で予測部356が、読み出した強度情報と発行元が一致するリクエストパケットがないと判定した場合に、予測部356が、ラウンドロビンアルゴリズムに基づいて、調停回路36によって選択されるリクエストパケットを予測する場合を説明したが、これに限られず、例えば、リクエストパケットをランダムに選択し、選択したリクエストパケットを、調停回路36によって選択されると予測されるリクエストパケットとしても良い。
【0060】
また、本実施形態では、調停回路36が調停処理を行う際、最大の値を有する強度情報に関連付けられたリクエストパケットが複数あるとき、調停回路36は、ラウンドロビンアルゴリズムに基づいて、何れのリクエストパケットを選択するかを決定する場合を用いて説明したが、これに限られず、例えば、調停回路36は、リクエストパケットをランダムに選択しても良い。
【0061】
また、本実施形態では、資源要求装置がリクエストパケットに強度情報を付与してクロスバ調停装置に出力する場合を説明したが、これに限られず、例えば、資源要求装置は、強度情報を含まないリクエストパケットをクロスバ調停装置に入力し、調停装置3が入力ポート1の識別情報に関連付けて強度情報を格納する強度情報記憶部を備えておくことで、調停装置3の調停回路36は、当該強度情報記憶部から読み出した強度情報に基づいて調停処理を行っても、本実施形態と同様の効果を得ることができる。
【0062】
また、本実施形態では、ステップS2で、予測回路35の履歴検索用バッファ354が、一時リクエスト記憶部351の末尾に記憶された3つの調停履歴を記憶する場合を説明したが、これに限られず、調停履歴を4つ以上記憶しても良いし、1つ乃至2つ記憶しても良い。
【0063】
上述の調停装置3は内部に、コンピュータシステムを有している。そして、上述した各回路の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0064】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0065】
1、1−1〜1−5…入力ポート 2、2−1〜2−5…入力側バッファ部 3…調停装置 4…クロスバ 5、5−1〜5−5…出力側バッファ部 6、6−1〜6−5…出力ポート 21…入力バッファ 22…入力側FIFOバッファ制御回路 23…FIFOバッファ 24…出力側FIFOバッファ制御回路 25…出力バッファ 31、31−1〜31−5…強度入力バッファ 32…リクエスト入力バッファ 33…バッファ登録回路 34…調停バッファ回路 35…予測回路 36…調停回路 37…強度更新回路 38、38−1〜38−5…強度出力バッファ 351…一時リクエスト記憶部 352…履歴登録部 353…調停履歴記憶部 354…履歴検索用バッファ 355…検索部 356…予測部

【特許請求の範囲】
【請求項1】
複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置であって、
複数の前記資源要求装置から資源要求の入力を受け付ける入力部と、
前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する調停部と、
前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する予測部と、
前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力する中断部と
を備え、
前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが同一である場合に、前記クロスバに対する前記接続命令の出力を行わない
ことを特徴とする調停装置。
【請求項2】
過去の処理において前記調停部が選択した資源要求を選択した順に調停履歴記憶部に登録する履歴登録部を備え、
前記予測部は、前記調停部による最後の所定の個数の資源要求を選択した順と同じ順に、前記調停履歴記憶部に記憶されている資源要求の直後に登録された資源要求を、前記調停部によって選択される資源要求として予測する
ことを特徴とする請求項1に記載の調停装置。
【請求項3】
前記資源要求装置ごとに、過去の処理において、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが同一となる度合いを示す強度情報を算出する強度情報算出部を備え、
前記調停部は、前記強度情報算出部が算出した強度情報に基づいて、選択する資源要求を決定する
ことを特徴とする請求項1または請求項2に記載の調停装置。
【請求項4】
複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置を用いた調停方法であって、
入力部は、複数の前記資源要求装置から資源要求の入力を受け付け、
調停部は、前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、
予測部は、前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力し、
中断部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力し、
前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する
ことを特徴とする調停方法。
【請求項5】
複数の資源要求装置から発行される、当該資源要求装置による計算資源の使用の要求を示す資源要求の調停を行い、前記資源要求装置と前記計算資源とを接続するクロスバを制御する調停装置を、
複数の前記資源要求装置から資源要求の入力を受け付ける入力部、
前記入力部が同一の前記計算資源に対する資源要求の中から1つを選択し、選択された資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する調停部、
前記調停部による処理を実行する前に、前記調停部によって選択される資源要求を予測し、当該資源要求を当該資源要求の発行先の計算資源へ出力させる接続命令を前記クロスバに出力する予測部、
前記調停部が選択した資源要求と前記予測部が予測した資源要求とが異なる場合に、前記クロスバに対して前記予測部による接続命令の実行を中断させる中断命令を出力する中断部
として機能させ、
前記調停部は、前記調停部が選択した資源要求と前記予測部が予測した資源要求とが同一である場合に、前記クロスバに対する前記接続命令の出力を行わない
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−123715(P2011−123715A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−281451(P2009−281451)
【出願日】平成21年12月11日(2009.12.11)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】