(57)【要約】【課題】バスアクセスの状況や、高いバスアクセスの必要性を早い段階で調査して、即時にバス調停の優先順位に反映させるバス調停方法及び前記調停方法を実現する半導体装置を提供する。【解決手段】キャッシュヒット率に基づいてバス調停のアクセス優先順位を変更し、バス調停を行う方法を用いる。そのためにキャッシュヒット率測定手段205,209がバスマスタ202,206のキャッシュアクセスの状況を調査する。そしてキャッシュヒット率測定手段205,209によって出力される情報に基づいてバス調停管理手段211は優先順位格納手段212にある優先順位を変更し、その優先順位に従ってバス調停部213がバス調停を行う。【選択図】図２
2006195867.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのバスを介して少なくとも一つのリソースを共有している、キャッシュを備えた二つ以上のバスマスタと、少なくとも一つのバスマスタにおけるキャッシュヒット率を測定するキャッシュヒット率測定手段と、バス調停の優先順位と、前記キャッシュヒット率に基づいて前記バスマスタと前記リソース間のバス調停を行うバス調停装置を備えていることを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置において、前記キャッシュヒット率測定手段がキャッシュアクセスをヒットまたはミスの情報として記録する手段と、前記記録する手段の情報と優先順位の低下または向上要求との対応関係を備え、前記対応関係より得られた優先順位の低下または向上要求を前記バス調停装置に対して行うことを特徴とする半導体装置。
【請求項３】
請求項１に記載の半導体装置において、前記キャッシュヒット率測定手段がキャッシュアクセスをヒットまたはミスの情報として記録する手段と、前記キャッシュヒット率測定手段が前記記録する手段の情報に基づきキャッシュアクセスのヒットまたはミスを予測する手段を備え、前記予測によって優先順位低下または向上要求を前記バス調停装置に対して行うことを特徴とする半導体装置。
【請求項４】
請求項２または３に記載の半導体装置において、前記優先順位の低下または向上要求に基づき前記優先順位を変更することを特徴とする半導体装置。
【請求項５】
請求項１に記載の半導体装置において、前記キャッシュヒット率測定手段がキャッシュアクセスをヒットまたはミスの情報として記録する手段と、前記記録する手段の情報とコード化されたヒット率との対応関係を備え、前記対応関係より得られたコード化されたヒット率を前記バス調停装置に出力することを特徴とする半導体装置。
【請求項６】
請求項５に記載の半導体装置において、前記バス調停装置が前記コード化されたヒット率と優先順位との対応関係を備え、前記対応関係より得られた優先順位に基づき前記優先順位を変更することを特徴とする半導体装置。
【請求項７】
請求項５に記載の半導体装置において、前記記録する手段を複数備えていることを特徴とする半導体装置。
【請求項８】
請求項６に記載の半導体装置において、前記対応関係を複数備えていることを特徴とする半導体装置。
【請求項９】
請求項２から８のいずれかに記載の半導体装置において、前記キャッシュヒット率測定手段が前記バスマスタにおける実行処理の変化もしくは割り込み信号を検知し、前記記録する手段の値を初期化する手段を備えていることを特徴とする半導体装置。
【請求項１０】
請求項１から９のいずれかに記載の半導体装置において、前記キャッシュヒット率測定手段が、前記バスマスタの転送方式を検知し前記バス調停装置に通知する手段を備えていることを特徴とする半導体装置。
【請求項１１】
請求項１から１０のいずれかに記載の半導体装置において、前記優先順位をテーブル形式の情報として保持し、前記テーブルにおける任意の場所を指し示す手段を備えていることを特徴とする半導体装置。
【請求項１２】
請求項１から１１のいずれかに記載の半導体装置において、前記バス調停装置が前記優先順位を格納している優先順位格納手段と、前記優先順位格納手段の優先順位を変更するバス調停管理手段と、前記優先順位に基づいてバス調停を行うバス調停部を備えていることを特徴とする半導体装置。
【請求項１３】
少なくとも一つのバスを介して少なくとも一つのリソースを共有している複数のバスマスタと、少なくとも一つのバスマスタにおけるキャッシュヒット率を測定するキャッシュヒット率測定手段と、バス調停の優先順位を備えた半導体装置におけるバス調停方法であって、前記キャッシュヒット率を測定するステップと、前記キャッシュヒット率に基づいて前記優先順位を変更するステップと、前記優先順位に基づきバス調停を行うステップを有していることを特徴とするバス調停方法。
【請求項１４】
請求項１３に記載のバス調停方法において、前記キャッシュヒット率に基づいて優先順位の低下または向上要求を行うステップを有し、前記要求に基づいて前記優先順位を変更することを特徴とするバス調停方法。
【請求項１５】
請求項１３に記載のバス調停方法において、前記キャッシュヒット率に対応した優先順位を得るステップを有し、前記対応した優先順位に基づいて前記優先順位を変更することを特徴とするバス調停方法。
【請求項１６】
請求項１３に記載のバス調停方法において、前記キャッシュヒット率測定手段が前記キャッシュヒット率に基づいて前記バスマスタの動作を予測するステップを有し、前記予測結果に基づいて前記優先順位を変更することを特徴とするバス調停方法。
【請求項１７】
請求項１３から１６のいずれかに記載のバス調停方法において、前記キャッシュヒット率測定手段が前記バスマスタにおける実行処理の変化または割り込み信号を検知し、前記キャッシュヒット率を初期化するステップを有していることを特徴とするバス調停方法。
【請求項１８】
請求項１３から１７のいずれかに記載のバス調停方法において、前記キャッシュヒット率測定手段が前記バスマスタの転送方式を検知するステップを有し、前記転送方式がバースト転送である場合に前記キャッシュヒット率に基づいて前記優先順位を変更することを特徴とするバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタがリソースを共有している際のバス調停方法及び半導体装置に関する。
【背景技術】
【０００２】
図１のように、複数のバスマスタA101、B102がリソース104を共有している半導体装置においては、バス調停装置103によりバスアクセスを調整する必要がある。
【０００３】
以下、従来の半導体装置におけるバス調停方法について図２８を用いて説明する。半導体装置は複数のバスマスタA2801とバスマスタB2802、バス調停装置2806を備えており、バス調停装置2806はバス調停の優先順位を保持している優先順位格納手段2804、バス調停の優先順位を変更するバス調停管理手段2803、バス調停優先順位に基づきバス調停を行うバス調停部2805からなっている。ここでバス調停管理手段2803は、バス要求信号からバスアクセス頻度を計測することでバス調停の優先順位を変更している（たとえば特許文献１参照）。
【特許文献１】特開2000-35943号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の半導体装置におけるバス調停方法は、バス要求からアクセス頻度を求め、優先順位を変更しているが、バスマスタからのバス要求を受け取るまでレイテンシーがあり、即時性が無く、またIRQなどによるキャッシュリフィルの発生による大量のバス要求の発生も検知しにくい。
【０００５】
本発明は上記の点に鑑みてなされたものであり、リアルタイムで優先順位を変更し、高速にバス使用効率を向上させることを目的としている。
【課題を解決するための手段】
【０００６】
前記の課題を解決するために、本発明ではバスマスタのキャッシュヒット率に基づいてバス調停の優先順位をリアルタイムに変更しバス調停を行う方法を用いる。
【０００７】
そのために、半導体装置はバスマスタのキャッシュアクセスを調査し、キャッシュヒット率を測定するキャッシュヒット率測定手段と、キャッシュヒット率に基づいてバス調停を行うバス調停装置を有する。また更に、キャッシュヒット率測定手段は、キャッシュアクセスの状況を記録するレジスタと、バス調停装置に対して優先順位低下または向上要求を行う手段もしくはコード化されたヒット率を出力する手段を有する。そして、バス調停装置はバス調停の優先順位をテーブル形式で格納する手段と、キャッシュヒット率測定手段から出力された要求または情報に基づいて優先順位を変更する手段と、優先順位に基づいてバス調停を行う手段を有する。
【発明の効果】
【０００８】
本発明によれば、キャッシュアクセスの状況を調査しその情報をバス調停装置に伝える手段と、バス調停装置においてその情報に基づいてバス調停の優先順位を変更する手段を付加することにより、バス調停装置がバスマスタからのアクセス要求を受け取る前に、キャッシュアクセスの状況を把握し即時にバス調停の優先順位に反映させることができ、その時点での最適なバス調停を行うことができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１０】
図２は本発明の実施の形態１から６における全体の構成を表した図である。半導体装置201は二つのバスマスタA202（B206）と、バス調停装置210を備え、バスマスタA202及びバスマスタB206はバス調停装置210を介してリソース214を共有している。ここでそれぞれのバスマスタA202（B206）は、コアA203（B207）、キャッシュA204（B208）、コアA203（B207）のキャッシュA204（B208）へのアクセス状況を調査し記録してキャッシュヒット率を測定するキャッシュヒット率測定手段A205（B209）を備えており、バス調停装置210はバス調停の優先順位を保持している優先順位格納手段212と、キャッシュヒット率測定手段A205及びB209から出力される情報に基づき優先順位格納手段212にある優先順位を変更するバス調停管理手段211と、優先順位格納手段212にある優先順位に基づきバス調停を行うバス調停部213を備えている。
【００１１】
なお、キャッシュヒット率測定手段A205及びB209から出力される情報は、優先順位向上及び低下要求または、コード化されたキャッシュヒット率である。
【００１２】
（実施の形態１）
本実施形態における全体の構成図は図２に示すとおりであり、本実施形態におけるキャッシュヒット率測定手段A205及びB209と、バス調停管理手段211は図３に示した構成をとる。
【００１３】
図３のように、キャッシュヒット率測定手段304はヒット率履歴レジスタ301、判定回路302、要求テーブル303を備えており、バス調停管理手段305は制御回路306を備えている。
【００１４】
次にそれぞれの動作について説明する。まず、キャッシュアクセスはヒットを１、ミスを０としてヒット率履歴レジスタ301にFIFO形式で保存される。そして判定回路302は要求テーブル303を参照することにより、ヒット率履歴レジスタ301に記録された値（TAG）と要求（０もしくは１）を対応させ、バス調停管理手段305に対して優先順位低下または向上要求を出力する。例えば図３においては、ヒット率履歴レジスタ301の値が1101なので、判定回路302は要求テーブルのTAGが1101を示している欄を参照する。この場合、要求は0に対応しているので、判定回路302は優先順位低下要求である０をバス調停管理手段305に対して出力する。そして判定回路302から出力された要求に基づいて、バス調停管理手段305にある制御回路306は優先順位格納手段307にある優先順位を更新する。ここで、優先順位格納手段307は図４のように優先順位テーブルを格納することで優先順位を保持している。この優先順位テーブルは各列をタイムスロット別に表した構成になっており、各タイムスロットにおいて優先させるバスマスタに○がついており、一定パターンを１サイクルとしてバス調停部213がバス調停を行う。例えば現状の優先順位テーブル401の場合は、5回のうち初めの3回（スロット番号1,2,3）はマスタAが優先され、後の2回（スロット番号4,5）はマスタBが優先される。そしてこの優先順位テーブルが更新されるまでこのパターンが繰り返される。また、例えばバスマスタAの優先順位が１下げられた場合は現状の優先順位テーブル401から更新後の優先順位テーブル402のようになる。更新後のバス調停は4回のうち初めの2回（スロット番号1,2）はマスタAが優先され、後の2回（スロット番号3,4）はマスタBが優先され、次に優先順位が更新されるまで、このパターンに基づいてバス調停213がバス調停を行う。
【００１５】
なお、制御回路306に対して優先順位の上限値及び下限値情報を与えておき、その情報に従って制御回路306が優先順位の低下及び向上を行うことにより、優先順位の上がり過ぎ、または下がり過ぎを防ぐことができる。
【００１６】
以上のような処理を行うことで、キャッシュヒット率に基づいてリアルタイムでバス調停の優先順位が更新されるので、その時点での最適なバス調停を行うことができる。
【００１７】
（実施の形態２）
本実施形態における全体の構成図は図２に示すとおりであり、本実施形態におけるキャッシュヒット率測定手段A205及びB209と、バス調停管理手段211は図５に示した構成をとる。
【００１８】
図５のように、キャッシュヒット率測定手段504はヒット率履歴レジスタ501、判定回路502、ヒット率コード化テーブル503を備えており、図６のようにバス調停管理手段603は制御回路601、優先順位変換テーブル602を備えている。
【００１９】
次にそれぞれの動作について説明する。まず、キャッシュアクセスはヒットを１、ミスを０としてヒット率履歴レジスタ501にFIFO形式で保存される。そして判定回路502はヒット率コード化テーブル503を参照することにより、ヒット率履歴レジスタ501に記録された値（TAG）とコード化されたヒット率を対応させ、バス調停管理手段505に対してコード化されたヒット率を出力する。例えば図５においては、ヒット率履歴レジスタ501の値が1101なので、判定回路502はヒット率コード化テーブル503のTAGが1101を示している欄を参照する。この場合は、コード化されたヒット率は０１０００に対応しているので、判定回路502はコード化されたヒット率である０１０００をバス調停管理手段505に対して出力する。そして、制御回路601はコード化されたヒット率に基づいて優先順位格納手段604の優先順位を更新する。その際制御回路601は、優先順位変換テーブル602を参照し、コード化されたヒット率（TAG）に対応する優先順位を得る。例えば、図６の場合はコード化されたヒット率が０１０００（TAG）なので、対応する優先順位は１であり、制御回路601は優先順位格納手段604に対して優先順位を１になるように要求することで、優先順位格納手段604にある優先順位テーブルを更新する。なお、優先順位格納手段604にある優先順位テーブルと、その更新の仕方は実施の形態１と同様である。そしてバス調停部213はこの優先順位テーブルのパターンに基づいてバス調停を行う。
【００２０】
なお、先ほど示した優先順位変換テーブル602におけるヒット率（コード化されたヒット率）と優先順位の対応関係はワンパターンで固定されていたが、処理に応じて対応関係をソフトウェアによって変更する機能を設定しておくと、処理ごとに最適なバス調停を行うことができる。
【００２１】
（実施の形態３）
本実施形態における全体の構成は図２に示すとおりであり、本実施形態におけるキャッシュヒット率測定手段A205及びB209は図７のような構成をとる。キャッシュヒット率測定手段706は複数のヒット率履歴レジスタ701,702,703と、判定回路704と、ヒット率変換テーブル705を備えている。ここで、キャッシュヒット率を測定し、判定回路704がヒット率コード化テーブル705を参照し、ヒット率履歴レジスタ701,702,703の値に対応したコード化されたヒット率を得て、バス調停管理手段211に出力する動作は実施の形態２において説明したとおりである。本実施形態ではヒット率履歴レジスタ701,702,703を複数備え、処理に応じて使用する履歴レジスタ701,702,703を使い分けることにより、各処理ごとの正確なヒット率を測定することができる。使用するヒット率履歴レジスタ701,702,703の指定は、予め設定しておく方法やプログラムによりユーザが指定する方法などが考えられる。
【００２２】
例えば図８のように、アプリケーションごとに使用するヒット率履歴レジスタ801,802,803を指定し、そのアプリケーションごとのキャッシュヒット率を測定するアプリ別レジスタ指定手段804を付加することが考えられる。アプリ別レジスタ指定手段804は事前にアプリケーションについての情報を保持しており、アプリケーションが変化したときに直前に使用していなかったレジスタを指定する。
【００２３】
また、例えば図９のように、ユーザの指定したレジスタを使用するように調整するユーザレジスタ指定手段904を付加することが考えられる。ユーザレジスタ指定手段904は、どのレジスタ901,902,903を使用するか指定するためにユーザが作成したプログラムによって動作する。
【００２４】
さらに図１０のように、複数のレジスタ1001,1002,1003に流す電流を調節する電流調節手段1004を付加することにより、使用しないレジスタに電流を流さないようにして消費電力を削減することができる。
【００２５】
なお、バス調停管理手段211における構成とそれぞれの動作は、実施の形態２で説明したとおりである。
【００２６】
（実施の形態４）
本実施形態における全体の構成は図２に示すとおりであり、本実施形態におけるバス調停管理手段211は図１１に示した構成をとる。バス調停管理手段1105は、制御回路1101と、複数の優先順位変換テーブル1102、1103、1104を備えている。ここで、制御回路1101が優先順位変換テーブル1102、1103、1104を参照して、コード化されたヒット率に応じた優先順位を得て、優先順位格納手段1106にある優先順位テーブルを更新する動作は実施の形態２で説明したとおりである。本実施形態では、TAG(ヒット率)と優先順位との対応関係がそれぞれ異なる複数の優先順位変換テーブル1102、1103、1104を処理ごとに指定し使い分けることで、その処理ごとの正確な優先順位を得ることができ、最適なバス調停を行うことができる。使用する優先順位変換テーブル1102,1103,1104の指定方法は、予め設定しておく方法やプログラムによりユーザが指定する方法などが考えられる。
【００２７】
例えば図１２のように、アプリケーションごとに使用する優先順位変換テーブル1201、1202、1203を指定するアプリ別テーブル指定手段1204を付加することが考えられる。アプリ別テーブル指定手段1204は事前にアプリケーションについての情報を保持しており、アプリケーションが変化したときにどの優先順位変換テーブル1201、1202、1203を使用するか指定する。
【００２８】
また例えば図１３のように、ユーザの指定した優先順位変換テーブル1301,1302,1303を使用するように調整するユーザテーブル指定手段1304を付加することが考えられる。ユーザテーブル指定手段1304は、ユーザがどの優先順位変換テーブル1301,1302,1303を使用するか指定するためにユーザが作成したプログラムによって動作する。
【００２９】
さらに図１４のように、複数の優先順位変換テーブル1401,1402,1403に流す電流を調節する電流調節手段1404を付加することにより、使用しない優先順位変換テーブルに電流を流さないようにして消費電力を削減することができる。
【００３０】
なお、キャッシュヒット率測定手段205,209における構成とそれぞれの動作は、実施の形態２で説明したとおりである。
【００３１】
（実施の形態５）
本実施形態における全体の構成は図２に示すとおりであり、本実施形態におけるキャッシュヒット率測定手段A205及びB209は図１５、バス調停管理手段211は図６のような構成をとる。キャッシュヒット率測定手段1505はヒット率履歴レジスタ1501と、判定回路1502と、ヒット率コード化テーブル1503と、転送方式検知手段1504を備えている。ここで、キャッシュヒット率を測定し、判定回路1502がヒット率コード化テーブル1503を参照し、ヒット率履歴レジスタ1501の値に対応したコード化されたヒット率を得て、バス調停管理手段1506に出力する動作は実施の形態２において説明したとおりである。本実施形態における転送方式検知手段1504は、バスマスタの転送方式がシングル転送であるかバースト転送であるか検知し、その情報をバス調停管理手段1506に対して出力する。ここで、シングル転送とは、キャッシュに入れておくことができないデータをコアがキャッシュから読み出そうとする時、つまりノンキャッシャブルアクセス時に発生する転送方式である。一方バースト転送とは、キャッシュミスが起きた時に発生する転送方式である。シングル転送の場合、バスマスタはリソースからデータを読み出す際に一回のアクセスで十分であるのに対し、バースト転送の場合は複数回バスマスタがリソースに対してアクセスしなければデータを読み出すことができない。従って、バースト転送が発生した場合はシングル転送の場合に比べてそのバスマスタのアクセス優先順位を上げる必要がある。そこで、バースト転送とシングル転送とを区別する必要がある。
【００３２】
バス調停管理手段603における構成は、実施の形態２と同様であるが、制御回路601の動作が異なる。制御回路601は転送方式検知手段1504から出力された転送方式情報を受けて、バースト転送の時は実施の形態２で説明したように優先順位格納手段604の優先順位テーブルを更新するが、シングル転送の時は優先順位格納手段604の優先順位を常に１にするように要求する。そのために制御回路601に対して、シングル転送の時は優先順位変換テーブル602の優先順位が１の欄を常に参照するように設定しておく。もしくは、制御回路601に対して、優先順位変換テーブル602を参照せずに常に優先順位格納手段604に対して優先順位を１にするように要求を行うように設定しておく。
【００３３】
以上のような処理を行うことで、シングル転送における不必要なリソースアクセスを防ぐことができ、バス調停を効率よく行うことができる。
【００３４】
（実施の形態６）
本実施形態における全体の構成は図２に示すとおりであるが、本実施形態におけるキャッシュヒット率測定手段A205及びB209は図１６のような構成をとる。キャッシュヒット率測定手段1605は、ヒット率履歴レジスタ1601と、ヒット率遷移記憶手段1602と、予測回路1603と、要求テーブル1604を備えている。
【００３５】
次にそれぞれの動作について説明する。ヒット率履歴レジスタ1601はキャッシュアクセスのヒットを１、ミスを０としてFIFO形式で保存する。またヒット率遷移記憶手段1602には、ヒット率履歴レジスタ1601での取り得る状況（０と１の組み合わせ）とその状況に対する直後のアクセス状況（ヒット・ミス）の過去四回分が記録されている。ヒット率遷移記憶手段1602への記録の仕方について、図１７を用いて説明する。例えば図１７のようなキャッシュのアクセス状況であったとする。ここでキャッシュヒット及びミスの組み合わせが１１０１の部分に注目すると、その直後の値は過去四回で１→０→１→１と遷移している。従って図１６のヒット率遷移記憶手段1602においてはTAGが１１０１の欄に対応する履歴には１０１１と記録される。キャッシュアクセスの状況は常に変化するので、履歴の値は随時更新される。予測回路1603はヒット率遷移記憶手段1602のヒット率履歴レジスタ1601の値（TAG）に対応した履歴の値を読む。そして要求テーブル1604を参照することにより、優先順位低下または向上要求をバス調停管理手段1606に対して行う。要求テーブル1604にはヒット率遷移記憶手段1602の履歴の値（TAG）とそれに対応した優先順位低下または向上要求（０または１）が記されている。この要求はTAGの値からコアの動作を予測した結果を踏まえている。例えば、ヒット率遷移記憶手段1602の履歴（TAG）の値が１０１１となっていた場合、四回のうち三回は１なので次に１即ちキャッシュヒットになる確率が高いといえる。そのため、そのバスマスタはリソースアクセスする必要がないため優先順位低下要求０が対応することになり、この場合予測回路1603は優先順位低下要求（０）をバス調停管理手段1606に対して行う。
【００３６】
このように将来のキャッシュアクセスの状況、つまりキャッシュヒットかミスのどちらが起こるかということを事前に予測することにより、高い確率でその時点での最適なバス調停を行うことができる。
【００３７】
なお、バス調停管理手段211における構成とそれぞれの動作については実施の形態１で説明したとおりである。
【００３８】
（実施の形態７）
本実施形態における全体の構成は図１８に示すとおりである。半導体装置1812は二つのバスマスタA1803（B1807）と、バス調停装置1811、バスマスタA1803とバスマスタB1807のキャッシュヒット率を同時に記録し測定するキャッシュヒット率測定手段1804を備え、バスマスタA1803及びバスマスタB1807はバス調停装置1811を介してリソース1813を共有している。ここでそれぞれのバスマスタA1803（B1807）は、コアA1801（B1805）、キャッシュA1802（B1806）を備えており、バス調停装置1811はバス調停の優先順位を保持している優先順位格納手段1809と、キャッシュヒット率測定手段1804から出力される情報に基づき優先順位格納手段1809にある優先順位を更新するバス調停管理手段1808と、優先順位格納手段1809にある優先順位に基づきバス調停を行うバス調停部1810を備えている。
【００３９】
なお、キャッシュヒット率測定手段1804から出力される情報は、コード化されたバスマスタA1803及びバスマスタB1807のキャッシュヒット率である。
【００４０】
まず、キャッシュヒット率測定手段1804の構成と、その動作について説明する。図１９のようにキャッシュヒット率測定手段1905は、二つのバスマスタA1803、B1807のための二つの履歴レジスタ1901、1902と、ヒット率コード化テーブル1904と、判定回路1903を備えている。ここでバスマスタA1803、B1807それぞれのキャッシュアクセスはヒットを１、ミスを０としてそれぞれのヒット率履歴レジスタ1901,1902にFIFO形式で保存される。そして判定回路1903はヒット率コード化テーブル1904を参照することによって、ヒット率履歴レジスタ1901,1902に記録された値（TAG）とコード化されたヒット率を対応させ、バス調停管理手段1906に対してコード化されたヒット率を出力する。ここで判定回路1903は、バスマスタAとバスマスタBについて前述した処理を同時に行う。判定回路1903のヒット率コード化テーブル1904の参照の仕方は実施の形態２で説明したとおりである。
【００４１】
次にバス調停管理手段1808の構成と、その動作について説明する。図２０のようにバス調停管理手段2003は、制御回路2001と、優先順位変換テーブル2002を備えている。制御回路2001は、優先順位変換テーブル2002を参照し、キャッシュヒット率測定手段1905から出力されたコード化されたヒット率（TAG）に対応する優先順位を得る。本実施形態においては、制御回路2001にはバスマスタA1803とバスマスタB1807の両方についてのコード化されたキャッシュヒット率が同時に入力される。また本実施形態での優先順位変換テーブル2002はバスマスタA1803とバスマスタB1807の両方についてコード化されたヒット率と優先順位の対応関係が記されている。このことにより、バスマスタA1803とバスマスタB1807の両方のキャッシュアクセス状況を同時に考慮することができるので、より正確な優先順位をリアルタイムで与えることができる。なお、制御回路2001は優先順位変換テーブル2002で得た優先順位に基づき優先順位格納手段2004にある優先順位を更新する。優先順位の更新方法は実施の形態２で説明したとおりである。
【００４２】
（実施の形態８）
本実施形態における全体の構成は図２１に示すとおりである。半導体装置2113は二つのバスマスタA2104（B2108）と、バス調停装置2112を備え、バスマスタA2104及びバスマスタB2108はバス調停装置2112を介してリソース2114を共有している。ここでそれぞれのバスマスタA2104（B2108）は、コアA2101（B2105）、キャッシュA2102（B2106）、コアA2101（B2105）のキャッシュA2102（B2106）へのアクセス状況を調査し記録してキャッシュヒット率を測定するキャッシュヒット率測定手段A2103（B2107）を備えており、バス調停装置2112はバス調停の優先順位を保持している優先順位格納手段2110と、キャッシュヒット率測定手段A2103及びB2107から出力される情報に基づき優先順位格納手段2110にある優先順位を更新するバス調停管理手段2109と、優先順位格納手段2110にある優先順位に基づきバス調停を行うバス調停部2111を備えている。
【００４３】
次にキャッシュヒット率測定手段2103、2107の構成とその動作について説明する。図２２のようにキャッシュヒット率測定手段2205はヒット率初期化手段2201と、ヒット率履歴レジスタ2202と、判定回路2203とヒット率コード化テーブル2204を備えている。ヒット率履歴レジスタ2202、ヒット率コード化テーブル2204及び判定回路2203における動作は実施の形態２で説明したとおりである。ここでヒット率初期化手段2201はProcessIDによってコアの実行処理の変化またはIRQによって別の処理の割り込みを検知すると、ヒット率履歴レジスタ2202の値を０に初期化することができる。コアの実行処理が変化したときやIRQが発生したときは、そのバスマスタがリソースへアクセスする必要性が高まるので、ヒット率履歴レジスタ2202の値を０にしてキャッシュヒット率を０にすることで高い優先順位を得ることが目的である。
【００４４】
ここで、ProcessID及びIRQ情報は図２１のようにヒット率測定手段2205内のヒット率初期化手段2201に入力されるものとする。即ち、ProcessIDはコアA2101(B2105)からキャッシュヒット率測定手段A2103(B2107)へ入力され、IRQはコアA2101(B2105)を通さずに直接キャッシュヒット率測定手段A2103(B2107)に入力されるものとする。実行処理の変化が起こる時も、別の処理の割り込みが起こる時もどちらの場合もProcessIDは発行されるが、割り込み発生時はIRQを検知することによってヒット率初期化手段2201はヒット率履歴レジスタ2202の値を０にすることにする。なぜなら、IRQに伴うProcessIDの発行はIRQよりも後に起こるからである。そのためヒット初期化定手段2201はIRQに伴うProcessIDよりもIRQを早く検知することになる。このようにヒット率初期化手段2201にProcessIDだけではなく、IRQも検知する機能を付加することでProcessIDの検知以前にヒット率履歴レジスタ2202の値を初期化することができ、早い段階で後続の処理に備えることができる。
【００４５】
なお、別の処理の割り込みではなく単に実行処理の変化が起こる時はProcessIDのみが発行されるので、ヒット率初期化手段2201はProcessIDを検知することによってヒット率履歴レジスタ2202の初期化を行う。
【００４６】
このような処理を行うことで、早い段階でキャッシュリフィルの発生を検知することができ、バスアクセスの必要性が高いバスマスタに対してリアルタイムで高い優先順位を与えることができる。
【００４７】
なお、バス調停管理手段2206の構成とその動作については実施の形態２で説明したとおりである。
【００４８】
（実施の形態９）
本実施形態における全体の構成は図２に示すとおりであり、本実施形態におけるバス調停管理手段211及び優先順位格納手段212は図２３のような構成をとる。バス調停管理手段2305は、制御回路2301と優先順位変換テーブル2302とレジスタ2303とポインタ2304を備えており、優先順位格納手段2307は優先順位テーブル2306を備えている。
【００４９】
本実施形態では優先順位格納手段2307における優先順位テーブル2306の変更の仕方が実施の形態１から８までとは異なる。実施の形態１から８においては、図４のように現状の優先順位テーブル401を更新することで優先順位の変更を行っており、スロット番号１の次は２、３・・・という順番でバス調停部213がテーブルを参照し、参照したスロットの優先バスマスタがバスアクセスするようにバス調停を実行していた。本実施形態での優先順位テーブル2306はバス調停管理手段2305における優先順位変換テーブル2302の最大優先順位に合わせて元々固定されていて更新されることはなく、バス調停管理手段2305にあるポインタ2304が指し示したスロットに基づいてバス調停管理部213はバス調停を実行する。ここでポインタ2304の指し示すスロットは任意に変更することができる。即ちポインタはスロット１，２，５・・・というふうにスロット間をジャンプして指し示すスロットを変更することができるので、優先順位テーブル2306を更新することなく優先順位の変更をすることができる。
【００５０】
次にそれぞれの動作について説明する。バス調停管理手段2305において、制御回路2301はキャッシュヒット率測定手段205,209から入力されたコード化されたヒット率に対応する優先順位を得るために、優先順位変換テーブル2302を参照する。ここで得られた優先順位はレジスタ2303に入力される。レジスタ2303はバスマスタの最大優先順位情報と、それぞれのバスマスタの現在の優先順位情報と、優先させるバスマスタが切り替わるスロット番号情報を保持している。そして優先順位変換テーブル2302から入力される優先順位によって、それぞれのバスマスタの現在の優先順位情報を書き換えている。例えば図２３のように優先順位変換テーブル2302の最大優先順位が４であれば、レジスタ2303内の最大優先順位情報は４となる。また優先順位テーブルにおいて優先させるバスマスタが切り替わるスロット番号が１及び５の時は、レジスタ内の優先させるマスタが切り替わるスロット番号情報は１、５となる。レジスタ2303内の情報を読み出すことによって、制御回路2301はポインタ2304が現在指し示しているスロット番号を比較し、次にどのスロットをポインタ2304が指し示せば良いか判断し、ポインタ2304を制御する。実際に制御回路2301がどのようにポインタ2304を制御するか例を基に説明する。例えば図２４のようにレジスタ2303内に記憶されている情報は、最大優先順位は４、現在の優先順位はマスタAが３、マスタBが２とする。また優先順位テーブル2306はスロット番号１〜４まではマスタAが、スロット番号５〜８まではマスタBが優先されるものとする。このまま優先順位の変更がされなければ、図２５のようにポインタ2304はマスタAの優先順位３に従って、スロット番号１，２，３を指し示したあとは（２５−a、b、c）、スロット番号５（２５−d）にジャンプし、マスタBの優先順位２に従ってスロット番号５，６（２５−d、e）を指し示し、次はスロット番号１（２５−f）に戻るように制御回路2301によって制御される。このようにすることでマスタAが３回続けて優先されたあとはマスタBが２回優先されるという一連のサイクルが繰り返される。
【００５１】
優先順位が変更されると、指し示しているスロットにおいて優先されているマスタと優先順位が変更されたマスタが一致しているときは、次のサイクルから変更後の優先順位を適用し、一致していないときは優先されるマスタが切り替わったときから変更後の優先順位を適用する。例えば図２６のように指し示しているスロット番号が２のときに、バス調停管理手段2305においてマスタAの優先順位が３から２に変更されたとする。この場合は、スロット番号２ではマスタAが優先されているので一連のサイクルがひととおり終了するまで現状の優先順位に従うものとする。つまり、スロット番号２（２６−b）の次は変更された優先順位を適用して５のスロットにジャンプするのではなく、現状の優先順位に従って３（２６−c）のスロットを指し示したあと５にジャンプし、５、６（２６−d、e）と指し示しこのサイクルを終了する。次にポインタ2304がスロット番号１（２６−f）にジャンプした時から変更後の優先順位が適用されるものとする。即ちこの時点での優先順位はマスタAが２、マスタBが２となっているのでポインタ2304の指し示すスロットは、１，２，５，・・・（２６−f、g、h）と次に優先順位が変更されるまでこの一連のサイクルが繰り返される。また指し示しているスロット番号が２（バスマスタAが優先）のときにマスタBの優先順位が２から３に変更されたときは、ポインタ2304が次にマスタBを優先させる時から変更された優先順位を適用する。つまり図２７のようにスロット番号１，２，３（２７−a、b、c）をポインタが指し示した後は、５，６，１と指し示すのではなく、優先させるバスマスタが切り替わった時（バスマスタAからBへ優先させるマスタが変わった時）から変更された優先順位を適用して５、６、７、１，２（２７−d、e、f、g、h）・・・を指し示すように制御される。
【００５２】
このように、実施の形態１から８までのように優先順位テーブルを更新するのではなく、ポインタをジャンプさせて指し示すスロットを変更させることによって、優先順位を変更することができる。この方法を用いることで、優先順位テーブルを更新する手間が省け、より短時間でバス調停の優先順位を最適なものに変更することができる。
【００５３】
なお、キャッシュヒット率測定手段の構成と、各構成の動作は実施の形態２において説明したとおりである。
【００５４】
以上実施の形態１から９までにおいて詳述した一連の処理を行うことにより、キャッシュヒット率に基づいてリアルタイムのバス調停の優先順位を得ることができ、最適なバス調停を行うことができる。なお、特に指定の無い限りは上記実施の形態でのバスマスタにおける転送方式は、バースト転送であるとする。また、実施の形態１から９におけるそれぞれの動作は必ずしも独立しているものではなく、臨機応変に組み合わせて行うことも可能である。
【産業上の利用可能性】
【００５５】
本発明は、バスマスタがリソースを共有している際に、バス調停の優先順位をリアルタイムで更新してバス調停を行うバス調停方法及び半導体装置において有用である。
【図面の簡単な説明】
【００５６】
【図１】バスマスタ、バス調停装置、リソースの構成を示した図
【図２】本発明の実施形態１〜６におけるバス調停装置、バスマスタ、リソースの構成を示すブロック図
【図３】本発明の実施形態１におけるキャッシュヒット率測定手段、バス調停管理手段及び優先順位格納手段の構成を示した図
【図４】優先順位格納手段における優先順位テーブルを示した図
【図５】本発明の実施形態２におけるキャッシュヒット率測定手段の構成を示した図
【図６】本発明の実施形態２におけるバス調停管理手段の構成を示した図
【図７】本発明の実施形態３におけるキャッシュヒット率測定手段の構成そ示した図
【図８】本発明の実施形態３におけるアプリ別レジスタ指定手段を含んだヒット率履歴レジスタの構成を示した図
【図９】本発明の実施形態３におけるユーザ指定レジスタ指定手段を含んだヒット率履歴レジスタの構成を示した図
【図１０】本発明の実施形態３における電流調節手段を含んだヒット率履歴レジスタの構成を示した図
【図１１】本発明の実施形態４におけるバス調停管理手段の構成を示した図
【図１２】本発明の実施形態４におけるアプリ別テーブル指定手段を含んだ優先順位変換テーブルの構成を示した図
【図１３】本発明の実施形態４におけるユーザテーブル指定手段を含んだ優先順位変換テーブルの構成を示した図
【図１４】本発明の実施形態４における電流調節手段を含んだ優先順位変換テーブルの構成を示した図
【図１５】本発明の実施形態５におけるキャッシュヒット率測定手段の構成を示した図
【図１６】本発明の実施形態６におけるキャッシュヒット率測定手段の構成を示した図
【図１７】本発明の実施形態６におけるキャッシュアクセスのミス・ヒットの状況の一例を示した図
【図１８】本発明の実施形態７における全体の構成を示した図
【図１９】本発明の実施形態７におけるキャッシュヒット率測定手段の構成を示した図
【図２０】本発明の実施形態７におけるバス調停管理手段の構成を示した図
【図２１】本発明の実施形態８における全体の構成そ示した図
【図２２】本発明の実施形態８におけるキャッシュヒット率測定手段の構成を示した図
【図２３】本発明の実施形態９におけるバス調停管理手段、及び優先順位格納手段の構成を示した図
【図２４】本発明の実施形態９におけるレジスタ内の情報を示した図
【図２５】本発明の実施形態９における優先順位の変更方法を示した図
【図２６】本発明の実施形態９における優先順位の変更方法を示した図
【図２７】本発明の実施形態９における優先順位の変更方法を示した図
【図２８】従来のバス調停を行う際の全体の構成を示した図
【符号の説明】
【００５７】
101  バスマスタA
102  バスマスタB
103  バス調停装置
104  リソース
201  半導体装置
202  バスマスタA
203  コアA
204  キャッシュA
205  キャッシュヒット率測定手段A
206  バスマスタB
207  コアB
208  キャッシュB
209  キャッシュ測定手段B
210  バス調停装置
211  バス調停管理手段
212  優先順位格納手段
213  バス調停部
214  リソース
301  ヒット率履歴レジスタ
302  判定回路
303  要求テーブル
304  キャッシュヒット率測定手段
305  バス調停管理手段
306  制御回路
307  優先順位格納手段
401  現状の優先順位テーブル
402  更新後の優先順位テーブル
501  ヒット率履歴レジスタ
502  判定回路
503  ヒット率コード化テーブル
504  キャッシュヒット率測定手段
505  バス調停管理手段
601  制御回路
602  優先順位変換テーブル
603  バス調停管理手段
604  優先順位格納手段
701  ヒット率履歴レジスタ１
702  ヒット率履歴レジスタ２
703  ヒット率履歴レジスタ３
704  判定回路
705  ヒット率コード化テーブル
706  キャッシュヒット率測定手段
801  ヒット率履歴レジスタ１
802  ヒット率履歴レジスタ
803  ヒット率履歴レジスタ３
804  アプリ別レジスタ指定手段
901  ヒット率履歴レジスタ１
902  ヒット率履歴レジスタ２
903  ヒット率履歴レジスタ３
904  ユーザレジスタ指定手段
1001  ヒット率履歴レジスタ１
1002  ヒット率履歴レジスタ２
1003  ヒット率履歴レジスタ３
1004  電流調節手段
1101  制御回路
1102  優先順位変換テーブル１
1103  優先順位変換テーブル２
1104  優先順位変換テーブル３
1105  バス調停管理手段
1106  優先順位格納手段
1201  優先順位変換テーブル１
1202  優先順位変換テーブル２
1203  優先順位変換テーブル３
1204  アプリ別テーブル指定手段
1301  優先順位変換テーブル１
1302  優先順位変換テーブル２
1303  優先順位変換テーブル３
1304  ユーザテーブル指定手段
1401  優先順位変換テーブル１
1402  優先順位変換テーブル２    
1403  優先順位変換テーブル３
1404  電流調節手段
1501  ヒット率履歴レジスタ
1502  判定回路
1503  ヒット率コード化テーブル
1504  転送方式検知手段
1505  キャッシュヒット率測定手段
1506  バス調停管理手段
1601  ヒット率履歴レジスタ
1602  ヒット率遷移記憶手段
1603  予測回路
1604  要求テーブル
1605  キャッシュヒット率測定手段
1606  バス調停管理手段
1801  コアA
1802  キャッシュA
1803  バスマスタA
1804  キャッシュヒット率測定手段
1805  コアB
1806  キャッシュB
1807  バスマスタB
1808  バス調停管理手段
1809  優先順位格納手段
1810  バス調停部
1811  バス調停装置
1812  半導体装置
1813  リソース
1901  ヒット率履歴レジスタ（マスタA）
1902  ヒット率履歴レジスタ（マスタB）
1903  判定回路
1904  ヒット率コード化テーブル
1905  キャッシュヒット率測定手段
1906  バス調停管理手段
2001  制御回路
2002  優先順位変換テーブル
2003  バス調停管理手段
2004  優先順位格納手段
2101  コアA
2102  キャッシュA
2103  キャッシュヒット率測定手段A
2104  バスマスタA
2105  コアB
2106  キャッシュB
2107  キャッシュヒット率測定手段B
2108  バスマスタB
2109  バス調停管理手段
2110  優先順位格納手段
2111  バス調停部
2112  バス調停装置
2113  半導体装置
2114  リソース
2201  ヒット率初期化手段
2202  ヒット率履歴レジスタ
2203  判定回路
2204  ヒット率コード化テーブル
2205  キャッシュヒット率測定手段
2206  バス調停管理手段
2301  制御回路
2302  優先順位変換テーブル
2303  レジスタ
2304  ポインタ
2305  バス調停管理手段
2306  優先順位テーブル
2307  優先順位格納手段
2801  バスマスタA
2802  バスマスタB
2803  バス調停管理手段
2804  優先順位格納手段
2805  バス調停部
2806  バス調停装置
2807  リソース
【図１】
2006195867.tif 000003
【図２】
2006195867.tif 000004
【図４】
2006195867.tif 000005
【図５】
2006195867.tif 000006
【図６】
2006195867.tif 000007
【図７】
2006195867.tif 000008
【図８】
2006195867.tif 000009
【図９】
2006195867.tif 000010
【図１１】
2006195867.tif 000011
【図１２】
2006195867.tif 000012
【図１３】
2006195867.tif 000013
【図１４】
2006195867.tif 000014
【図１５】
2006195867.tif 000015
【図１７】
2006195867.tif 000016
【図１８】
2006195867.tif 000017
【図１９】
2006195867.tif 000018
【図２０】
2006195867.tif 000019
【図２１】
2006195867.tif 000020
【図２２】
2006195867.tif 000021
【図２３】
2006195867.tif 000022
【図２４】
2006195867.tif 000023
【図２５】
2006195867.tif 000024
【図２６】
2006195867.tif 000025
【図２７】
2006195867.tif 000026
【図３】
2006195867.tif 000027
【図１０】
2006195867.tif 000028
【図１６】
2006195867.tif 000029
【図２８】
2006195867.tif 000030