(57)【要約】【課題】キャッシュに格納されたＢＤをプロセッサが処理するまでＦＣＣがＤＭＡ動作をしないことにより、大量のパケットを受信した場合においてもシステムバスの使用効率およびプロセッサの処理能力を低下しないようにしたキャッシュ制御回路等を提供すること。【解決手段】バーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でのＢＤの処理が完了したことを検出する。【選択図】図１
2009134711.tif 000002
【特許請求の範囲】
【請求項１】
バーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でのＢＤの処理が完了したことを検出することを特徴とするキャッシュ制御回路。
【請求項２】
キャッシュコントローラが行なうメインメモリに対するアクセスを常時監視し、
プロセッサが受信パケットを処理するとき、受信データメインメモリ上のアドレスと長さと処理済であるか否かを示すステータス情報を有するバッファディスクリプタ（ＢＤ）をリードし、
キャッシュメモリに当該ＢＤが保持されていないとき、キャッシュコントローラにより発生させられるメインメモリから当該ＢＤをキャッシュメモリに保持するためのリードトランザクションを検出し、当該ＢＤが未処理である場合、プロセッサがこれを処理するまでの間、ファーストイーサネットコントローラ（ＦＣＣ）が受信パケットをメインメモリに書き込むためのダイレクトメモリアクセス（ＤＭＡ）動作を禁止することを特徴とするキャッシュ制御回路。
【請求項３】
モニタ回路内部に、キャッシュに保持しているＢＤのアドレスタグを保存し、ＦＣＣのアドレストランザクションのアドレスを照合し、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されている場合はＤＭＡを禁止し、保持されていない場合はＤＭＡを許可することで、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されていないときのみ、ＦＣＣはメインメモリにアクセス可能とし、逆に保持されている場合はＤＭＡを禁止し、未処理のＢＤがキャッシュからメモリにライトバックされることによるプロセッサのストールを防止するキャッシュアクセス制御システムを内蔵することを特徴とする無線基地局装置。
【請求項４】
モニタ回路内にキャッシュに保持されているＢＤを含むキャッシュブロックのアドレスタグを保存するメモリを有し、複数のキャッシュブロックに未処理ＢＤがあっても、ＦＣＣがＤＭＡしたいＢＤがキャッシュに保持されていない場合、ＦＣＣはＤＭＡ転送を行ない、ＦＣＣに受信パケットが滞留してバッファ溢れによる受信パケットの欠損を防ぐキャッシュアクセス制御システムを内蔵することを特徴とする無線基地局装置。
【請求項５】
バーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でのＢＤの処理が完了したことを検出することを特徴とするキャッシュアクセス監視方法。
【請求項６】
メインメモリとのＤＭＡ処理において、メインメモリへの使用状態を監視し、メインメモリへのステータス状態によりＤＭＡの禁止または許可を実行し、
メインメモリの使用状態は、未処理のＢＤがキャッシュメモリに保持されている状態であり、メインメモリの使用状態の監視を、ＤＭＡとライトバック方式キャッシュメモリ制御で行うことを特徴とするキャッシュアクセス監視方法。
【請求項７】
キャッシュコントローラが行なうメインメモリに対するアクセスを常時監視し、
プロセッサが受信パケットを処理するとき、受信データメインメモリ上のアドレスと長さと処理済であるか否かを示すステータス情報を有するバッファディスクリプタ（ＢＤ）をリードし、
キャッシュメモリに当該ＢＤが保持されていないとき、キャッシュコントローラにより発生させられるメインメモリから当該ＢＤをキャッシュメモリに保持するためのリードトランザクションを検出し、当該ＢＤが未処理である場合、プロセッサがこれを処理するまでの間、ファーストイーサネットコントローラ（ＦＣＣ）が受信パケットをメインメモリに書き込むためのダイレクトメモリアクセス（ＤＭＡ）動作を禁止することを特徴とするキャッシュアクセス監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ伝送路に接続された無線基地局装置のＩＰパケット処理部のプロセッサがライトバック方式キャッシュメモリを実装する方式において、連続してパケットを受信した場合において、システムバスの使用効率の向上とプロセッサの処理能力の低下を防止する技術に関する。
【背景技術】
【０００２】
ＦＣＣはキャッシュメモリに未処理のＢＤが存在するかわからないのでいつでも空きＢＤのポーリングを行なうことができる。このため、大量のパケットが受信され、プロセッサがキャッシュメモリ上に保持された同一ブロックにおける未処理ＢＤを処理するよりも先に、当該ＢＤをＦＣＣがポーリングしてしまうと他のＢＤが処理済であった場合、当該ＢＤが格納されているキャッシュブロックはダーティであるため、ライトバックキャッシュの動作原則から、メインメモリへライトされ、当該ブロックは無効化されてしまう。このため、プロセッサはシステムバスが開放されてキャッシュコントローラがリードトランザクションを発生させて、当該ＢＤを含むブロックを再度キャッシュメモリに保持するまで待たねばならない。この間プロセッサはストールすることになり、処理能力を低下させる要因となっていた。また、キャッシュとメインメモリ間でのバーストリードおよびバーストライトトランザクションが増加するため、システムバスの使用効率を悪化させる要因ともなっていた。
【０００３】
関連技術によるＩＰパケット処理部を図９を参照して説明する。図９は図１に示した本発明の実施の形態と比較してシステムバスのモニタ回路がない構成である。
【０００４】
図６に関連技術の動作例のフローを示す。同図は本発明の動作フローを示した図７と同様に、パケット１を受信した後からプロセッサがパケット３を処理するまでを示す。本発明との相違点は、パケット２およびパケット３を処理するとき、キャッシュメモリに処理対象のＢＤが含まれるブロックが直前のＦＣＣのＤＭＡアクセスによるリードトランザクションにより無効化されているため、再度キャッシュメモリにリードされるまでプロセッサがストール（図６の１１〜１５と１９〜２３）している。また、本発明による動作フローではバーストリードが２回（図７の６、１９）、バーストライトが１回（図７の１２）で済んでいるのに対し、図６ではバーストリードが３回（図６の６、１４、２２）、バーストライトが２回（図６の９、１７）発生しているため、システムバスに余分なトランザクションが発生している。また、パケット３が処理おわるまで、３ステップ多く掛かっていることが挙げられる。
【０００５】
ここで、ＣＰＵのメモリへのアクセス要求と、メモリにダイレクトメモリアクセスするＤＭＡチャネルのダイレクトメモリアクセス要求とが競合すると、ＤＭＡチャネルの転送しようとする情報を記憶するＦＩＦＯのステータスに応じて、ＤＭＡチャネルのメモリへのダイレクトメモリアクセス処理を一時中断してＣＰＵ１のメモリへのアクセス処理を割り込ませるよう制御するメモリ制御部を設けることで、メモリに対するＣＰＵのアクセス要求と転送回路のＤＭＡ要求との競合が発生しても、前記転送回路の転送効率を低下させることなく、前記ＣＰＵのウェイト状態を最小限にしこのＣＰＵの情報処理速度を向上させる技術が提案されている（例えば、特許文献１参照）。
【０００６】
また、ＤＭＡユニットと、ＣＰＵと、ＤＭＡユニット及びＣＰＵによるバスの使用権を制御するバス中継ユニットと、割込み要求信号を出力する割込みコントローラとを備え、ＤＭＡ転送の制御を行うＤＭＡ機能を備えたデータ処理装置において、ＤＭＡユニットが、ＤＭＡユニットに設定された優先度と割込み要求に設定された優先度とを比較する比較器と、比較器の比較結果にしたがって、ＤＭＡユニットの動作状態としてＤＭＡ転送の実行、中止または中断のいずれかに決定するシーケンサとを備えることで、優先度の高い割込み要求信号が発生してＤＭＡ転送を中止する場合にも、ハードウェア的な制御によってＤＭＡ転送を中止することにより、ＤＭＡ転送中止までの処理時間を短縮できる技術が提案されている（例えば、特許文献２参照）。
【特許文献１】特開２０００−３１５１８７号公報
【特許文献２】特開平１０−０６３６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の関連技術によるＩＰパケット処理部においては、次のような課題がある。
第１の課題は、ＦＣＣはパケットデータを受信するとデータをメインメモリに格納する為に当該ＢＤが空いているかシステムバスにリードトランザクションを発生させる為、キャッシュ上に格納されていたＢＤが未処理であっても、同じブロックに格納されているＢＤが変更されていれば、当該ブロックがダーティであるため、ライトバック動作によりメインメモリにライトトランザクションが発生してしまうのでシステムバスの使用効率を下げてしまうことである。
【０００８】
第２の課題は、前述のようにダーティであるブロックはライトバック動作によりキャッシュ上の当該ブロックは無効化されてしまうため、プロセッサが当該ＢＤを処理しようとすると再度リードトランザクションが発生してしまうのでシステムバスの使用効率を下げてしまうことである。
【０００９】
第３の課題は、プロセッサが当該ＢＤを処理しようとすると、前述のようにキャッシュに格納され未処理であったＢＤが無効化されることにより、再度キャッシュにリードされるまでストールしてしまうので、プロセッサの処理能力を低下させてしまう点にある。
【００１０】
本発明は、以上のような課題を解決するためになされたもので、キャッシュに格納されたＢＤをプロセッサが処理するまでＦＣＣがＤＭＡ動作をしないことにより、大量のパケットを受信した場合においてもシステムバスの使用効率およびプロセッサの処理能力を低下しないようにしたキャッシュ制御回路、無線基地局装置およびキャッシュアクセス監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１のキャッシュ制御回路は、バーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でのＢＤの処理が完了したことを検出することを特徴とする。
【００１２】
また、本発明の第２のキャッシュ制御回路は、キャッシュコントローラが行なうメインメモリに対するアクセスを常時監視し、
プロセッサが受信パケットを処理するとき、受信データメインメモリ上のアドレスと長さと処理済であるか否かを示すステータス情報を有するバッファディスクリプタ（ＢＤ）をリードし、
キャッシュメモリに当該ＢＤが保持されていないとき、キャッシュコントローラにより発生させられるメインメモリから当該ＢＤをキャッシュメモリに保持するためのリードトランザクションを検出し、当該ＢＤが未処理である場合、プロセッサがこれを処理するまでの間、ファーストイーサネット（登録商標）コントローラ（ＦＣＣ）が受信パケットをメインメモリに書き込むためのダイレクトメモリアクセス（ＤＭＡ）動作を禁止することを特徴とする。
【００１３】
また、本発明の第１の無線基地局装置は、モニタ回路内部に、キャッシュに保持しているＢＤのアドレスタグを保存し、ＦＣＣのアドレストランザクションのアドレスを照合し、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されている場合はＤＭＡを禁止し、保持されていない場合はＤＭＡを許可することで、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されていないときのみ、ＦＣＣはメインメモリにアクセス可能とし、逆に保持されている場合はＤＭＡを禁止し、未処理のＢＤがキャッシュからメモリにライトバックされることによるプロセッサのストールを防止するキャッシュアクセス制御システムを内蔵することを特徴とする。
【００１４】
また、本発明の第２の無線基地局装置は、モニタ回路内にキャッシュに保持されているＢＤを含むキャッシュブロックのアドレスタグを保存するメモリを有し、複数のキャッシュブロックに未処理ＢＤがあっても、ＦＣＣがＤＭＡしたいＢＤがキャッシュに保持されていない場合、ＦＣＣはＤＭＡ転送を行ない、ＦＣＣに受信パケットが滞留してバッファ溢れによる受信パケットの欠損を防ぐキャッシュアクセス制御システムを内蔵することを特徴とする。
【００１５】
また、本発明の第１のキャッシュアクセス監視方法は、バーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でのＢＤの処理が完了したことを検出することを特徴とする。
【００１６】
また、本発明の第２のキャッシュアクセス監視方法は、メインメモリとのＤＭＡ処理において、メインメモリへの使用状態を監視し、メインメモリへのステータス状態によりＤＭＡの禁止または許可を実行し、
メインメモリの使用状態は、未処理のＢＤがキャッシュメモリに保持されている状態であり、メインメモリの使用状態の監視を、ＤＭＡとライトバック方式キャッシュメモリ制御で行うことを特徴とする。
【００１７】
また、本発明の第３のキャッシュアクセス監視方法は、キャッシュコントローラが行なうメインメモリに対するアクセスを常時監視し、
プロセッサが受信パケットを処理するとき、受信データメインメモリ上のアドレスと長さと処理済であるか否かを示すステータス情報を有するバッファディスクリプタ（ＢＤ）をリードし、
キャッシュメモリに当該ＢＤが保持されていないとき、キャッシュコントローラにより発生させられるメインメモリから当該ＢＤをキャッシュメモリに保持するためのリードトランザクションを検出し、当該ＢＤが未処理である場合、プロセッサがこれを処理するまでの間、ファーストイーサネットコントローラ（ＦＣＣ）が受信パケットをメインメモリに書き込むためのダイレクトメモリアクセス（ＤＭＡ）動作を禁止することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、キャッシュに格納されたＢＤをプロセッサが処理するまでＦＣＣがＤＭＡ動作をしないことにより、大量のパケットを受信した場合においてもシステムバスの使用効率およびプロセッサの処理能力を低下しないようにしたキャッシュ制御回路、無線基地局装置およびキャッシュアクセス監視方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の第一の実施の形態について図面を参照して詳細に説明する。先ず、図８に上位装置とのインタフェースにＩＰ伝送路を用いた無線基地局装置のシステム全体を示す。
【００２０】
同図において、ＩＰパケット処理部８０３はＩＰ伝送路８０１を用いて上位装置８０６から下りデータを受信し、信号種別に応じたパケットデータの処理を行なう。移動端末に送信するデータはベースバンド処理部８０４に送り、無線部８０５に送られる。
【００２１】
無線基地局装置８０２に実装されるＩＰパケット処理部８０３はパケットの内容により行なう処理の種類が多い。よってＩＰパケット処理部はＩＰパケットデータの受信処理を行なうイーサネットコントローラとプロセッサをシステムバス上で接続して構成する方法が汎用性が高くいろいろな処理に対応しやすく適しているといえる。
【００２２】
次に、本発明によるＩＰパケット処理部の構成を図１に示す。
同図によると、ＩＰ伝送路１０１からの信号を受信し、物理レイヤを処理するＥｔｈｅｒ  ＰＨＹ１０２と、上位レイヤ処理を行いパケットデータをメインメモリ１０８内の受信バッファにＤＭＡ転送を行なうＦＣＣ１０３と、受信したパケット内容に応じて適切な処理を行なうプロセッサ１０４と、パケットデータを受信したことをプロセッサに知らせる割込み手段１１１と、プロセッサ１０４の処理プログラムやＦＣＣ１０３がＩＰパケットの受信データをプロセッサ１０４に受け渡すための受信バッファ等を格納する為のメインメモリ１０８と、プロセッサの処理を高速化するキャッシュメモリ１０５と、キャッシュメモリ１０５とメインメモリ１０８とのコヒーレンシを維持するためのキャッシュコントローラ１０６と、無線端末へデータを送信する為のベースバンド処理部１１０と、ＦＣＣ１０３とプロセッサ１０４とメインメモリ１０８とベースバンド処理部１１０との間のデータアクセスを可能にするシステムバス１０９と、システムバスのトランザクションを監視するモニタ回路１０７と、モニタ回路１０７がＦＣＣ１０３のＤＭＡを禁止や許可の制御するＤＭＡ制御手段１１２によって構成される。
【００２３】
図２にモニタ回路１０７の構成を示す。入力されるシステムバス２１５のトランザクションをラッチし、ラッチアドレス２１１と、ラッチコマンド２１２と、ラッチデータ２１３を出力するトランザクションラッチ部２０１と、後述するＢＤテーブル３０２のメインメモリ１０８内のアドレスを設定するアドレス設定レジスタ２０３と、これとラッチアドレス２１１の一致判定を行なう判定回路Ａ２０７と、バーストリードトランザクションのバスコマンドを設定するバスコマンド判定レジスタ２０４と、これとラッチバスコマンド２１２の一致判定をおこなう判定回路Ｂ２０８と、ＢＤのステータスを設定するＢＤステータス判定レジスタ２０５と、ラッチデータ２１３と一致判定を行なう判定回路Ｃ２０９と、ＦＣＣのＤＭＡ動作を許可・禁止の制御を行なうＤＭＡ制御信号２１４を出力する判定回路Ｄ２１０と、ＦＣＣのＤＭＡ動作を禁止する時間を算出すために、平均パケット処理時間を設定するタイマ値設定レジスタ２０２と、この設定値をもとにＤＭＡの禁止時間をカウントするタイマ２０６を具備する。
【００２４】
アドレス設定レジスタ２０３とバスコマンド判定レジスタ２０４とＢＤステータス判定レジスタ２０５には、キャッシュコントローラ１０６がキャッシュメモリ１０５に未処理のＢＤをリードするのを検出するために、ＢＤテーブルのアドレス、バーストリードコマンド、およびＢＤステータスが未処理であることを示すデータをそれぞれ設定しておく。
【００２５】
図３にメインメモリ１０８内のメモリマップを示す。ＢＤ３０４はＢＤが処理済か未処理かを示すステータス３０５および受信データの長さを示すデータ長３０６、受信データが格納されている受信バッファ３０３のアドレスを示す受信バッファポインタ３０７により構成され、複数のＢＤにより、ＢＤテーブル３０２が構成される。
【００２６】
図４にキャッシュメモリ１０５におけるＢＤを示す。キャッシュメモリ１０５は２ＷＡＹセットアソシエイティブ方式とすると、２ブロックが１２８セットで構成される。一つのＢＤが２ワードにより構成される場合、１ブロックにＢＤ０  ４０１、ＢＤ１  ４０２の２つのＢＤが格納される。ＴＡＧはメインメモリ上のＢＤテーブルのアドレスの一部を示す。これは一般的なキャッシュメモリの構成と相違ない。
【００２７】
先ず、モニタ回路１０７の動作開始時のレジスタ設定値を説明すると、図２において、タイマ値設定レジスタ２０２には、１つのＢＤが示すパケットの平均的な処理時間をあらかじめ設定されている。また、アドレス設定レジスタ２０３には、ＢＤテーブル３０２のメインメモリ１０８内のアドレスが設定され、バスコマンド判定レジスタ２０４にはバーストリードトランザクションのバスコマンドが設定され、ＢＤステータス判定レジスタ２０５はＢＤが未処理であることを示すステータスが設定されている。
【００２８】
本実施の形態を図２、および図５のフローチャートを使って動作を説明する。
モニタ回路１０７が動作開始５１０すると、先ず、トランザクションラッチ部２０１がトランザクションラッチ動作５０１を行なう。具体的にはシステムバス１０９からトランザクションを検出するとそのアドレスおよび、バスコマンド、データをラッチすることである。
【００２９】
次に、判定回路Ａ２０７がラッチアドレス２１１とアドレス設定レジスタ２０３が一致するか判定５０３して一致した場合、および判定回路Ｂ２０８がラッチコマンド２１２とバスコマンド判定レジスタ２０４と一致するか判定（バーストリードか判定５０２）して一致した場合に、カウント回路２０９がＢＤステータス判定レジスタ２０５と一致するラッチデータ２１３をカウント（未処理のＢＤ数をカウント５０４）する。
【００３０】
次に、タイマ２０６に未処理のＢＤ数とタイマ値設定レジスタ２０２の値を乗じた値を設定５０９する。
【００３１】
次に、タイマ２０２をスタート５０５し、ＤＭＡ制御手段２１４にてＤＭＡを禁止５０６する。
【００３２】
タイマ２０６がタイムアウト５０７したら、ＤＭＡ制御手段２１４にてＤＭＡを許可５０８し、トランザクションラッチ動作５０１に戻る。
【００３３】
ラッチアドレス２１１がアドレス設定レジスタ２０３と一致するか判定５０３し、一致しない場合および、ラッチコマンド２１２がバスコマンド判定レジスタ２０４と一致するか判定（バーストリードか判定５０２）し、一致しない場合はトランザクションのラッチ５０１に戻る。
【００３４】
また、図７に本発明によるＩＰパケット処理部１１１の動作タイミングチャート例を示す。同図はすでにパケット１を受信した後からプロセッサがパケット３を処理するまでの動作を示している。ここで示す「パケットの処理」とは未処理のＢＤが示すパケットデータの処理を行ない、ＢＤを処理済にすることである。
１：ＦＣＣがパケット２を受信する。
２：ＦＣＣがメインメモリからＢＤが処理済み（Ｅ＝０）か確認する為にＢＤ１のリードを行なう。
３：ＦＣＣがＢＤ１のステータスを未処理（Ｅ＝１）に変更し、メインメモリにライトする。
４：ＦＣＣが割り込みにてＣＰＵにＢＤをメインメモリに書き込んだことを通知する。
５：プロセッサは割り込み通知を受けて、パケット１を処理しようとキャッシュメモリからＢＤ０をリードしようとするが、キャッシュに存在しないのでミスヒットとなる。
６：ミスヒットしたためメインメモリよりＢＤ０を含むキャッシュブロック（ＢＤ０〜ＢＤ１）がキャッシュメモリにバーストリードされる。
７：プロセッサは再度キャッシュからのリードを行い、ＢＤ０がプロセッサに渡される。モニタ回路はバーストリードとＥ＝１を検出し、タイマを開始するとともにＦＣＣに対してＤＭＡアクセスを禁止する。また、このときＦＣＣはパケット３を受信するが、ＤＭＡアクセスが禁止の為、ＢＤをリードすることができない。
８：プロセッサはパケット１の処理が完了するとＢＤ０を空き（Ｅ＝０）とし、キャッシュを書き換える。
９：プロセッサはパケット２の処理を行なう為、キャッシュメモリからＢＤ１をリードする。
１０：プロセッサはパケット２の処理が完了するとＢＤ１を空き（Ｅ＝０）とし、キャッシュを書き換える。モニタ回路１０７はタイマがタイムアウトしたので、ＦＣＣに対してＤＭＡを許可する。
１１：ＦＣＣはＢＤ０をリードするが、ＢＤ０を保持しているキャッシュの当該ブロックがダーティであるため、リトライされる。
１２：ＦＣＣからのリードがリトライした為、当該ＢＤを含むブロック（ＢＤ０〜１）がキャッシュメモリからメインメモリへバーストライトされる。
１３〜２０：ＢＤ０に対して前記２と同様の動作をする。
２１：プロセッサはパケット３の処理を行い、ＢＤ０のＥ＝０とし、キャッシュメモリにライトする。
【００３５】
以上説明したように、本実施の形態においては、以下に記載するような効果を奏する。
第１の効果はモニタ回路はキャッシュメモリに格納されている同一ブロックに存在する未処理ＢＤをプロセッサが処理完了するまで、ＦＣＣのＤＭＡ動作を禁止するため、プロセッサのキャッシュミスヒットを防止することができ、プロセッサの処理能力の低減を防ぐことができることである。
【００３６】
第２の効果は前記ＤＭＡの禁止により未処理のＢＤが含まれるキャッシュブロックがライトバックされることが無いので、システムバスの使用効率を向上することである。
【００３７】
第３の効果はシステムバスに接続されたモニタ回路が、バーストリードトランザクションに含まれるＢＤのＥ＝１の監視、およびバーストライトトランザクションに含まれるＢＤのＥ＝０の監視を行い、前者が検出されるとＤＭＡを禁止し、後者が検出されるとＤＭＡを許可する動作をし、プロセッサがキャッシュのブロック単位でのＢＤの処理を実行している間だけＤＭＡを禁止することを可能とし、パケット処理時間とＤＭＡの禁止時間に差分が生じないため、システムバスの使用効率の向上、およびプロセッサの処理能力の低下を防ぐ効果が高いということである。
【００３８】
本発明の第二の実施の形態として、その基本的構成は上記の通りであるが、ＤＭＡを禁止する制御についてさらに工夫している。その構成を図１０に示す。本図において、タイマを実装せずに、処理済ＢＤをメインメモリにバーストライトするトランザクションを監視する為の回路（バスコマンド判定レジスタＢ１００５と、ＢＤステータス判定レジスタＢ１００６と判定回路Ｄ１０１０と判定回路Ｅ１０１１）を追加している。
【００３９】
バスコマンド判定レジスタＡ１００３と、ＢＤステータス判定レジスタＡ１００４と判定回路Ａ１００７と、判定回路Ｂ１００８と判定回路Ｃ１００９はＢＤのバーストリードトランザクションにおける未処理ＢＤを検出する為にある。
【００４０】
また、ＢＤステータスの扱いについては第一の実施の形態のように未処理ＢＤをカウントするのではなく、当該ブロックに含まれる全てのＢＤのうち未処理がひとつでもかるか判定する判定回路Ｃ１００９と全てのＢＤが処理済かどうか判定する判定回路Ｅ１０１１から構成される。
【００４１】
また、図示しないが、プロセッサはキャッシュブロック単位でのＢＤの処理が終わったら当該ブロックをフラッシュする（キャッシュメモリからメインメモリへの書き戻し（バーストライト）をおこなう）。
【００４２】
バスコマンド判定レジスタおよびＢＤステータス判定レジスタを２つ実装し、それぞれバーストリードトランザクションにおけるＢＤのＥ＝１の監視、およびバーストライトトランザクションにおけるＢＤのＥ＝０の監視を行い、前者が検出されると判定回路Ｆ１０１２はＤＭＡ制御手段１０１２にてＤＭＡを禁止し、後者が検出されると判定回路Ｆ１０１２はＤＭＡ制御手段１０１２にてＤＭＡを許可することにより、プロセッサがキャッシュのブロック単位でＢＤの処理を実行している間だけＤＭＡを禁止することができる。
【００４３】
第一の実施の形態のように平均パケット処理時間を単位としたタイマによって、ＤＭＡの禁止時間を決める場合には、実際のパケット処理時間との誤差により、差分が生じる恐れがあるが、本実施の形態によると、ブロック単位のＢＤのパケット処理時間とＤＭＡの禁止時間に差分が生じないため、第一の実施の形態に比べ、より高いシステムバスの使用効率の向上と、プロセッサの処理能力低下の防止という効果が得られる。
【００４４】
本実施の形態を図１０および図１１のフローチャートを使って動作を説明する。
図１０のレジスタにはあらかじめ次の設定がされている。アドレス設定レジスタ１００２には、ＢＤテーブルのアドレスが設定され、バスコマンド判定レジスタＡ１００４にはバーストリードトランザクションのバスコマンドが設定され、ＢＤステータス判定レジスタ２０５はＢＤが未処理であることを示すステータス（Ｅ＝１）が設定されている。また、バスコマンド判定レジスタＢ１００５にはバーストリードトランザクションのバスコマンドが設定され、ＢＤステータス判定レジスタＢ１００６はＢＤが処理済みであることを示すステータス（Ｅ＝０）が設定されている。
【００４５】
モニタ回路が動作開始すると、先ず、トランザクションラッチ部１００１がトランザクションラッチ動作１１０１を行なう。次にラッチアドレス１０１４とアドレス判定レジスタ１００２が一致しているか判定１１０２する。一致した場合、次にラッチコマンド１０１５とバスコマンド判定レジスタＡ１００３が一致しているか判定１１０３する。一致した場合、次にラッチデータ１０１６の全てのＢＤのステータス（トランザクションラッチ部１００１はバーストトランザクションをラッチしているので複数のＢＤを含むデータをラッチし、その全てのデータをラッチデータ１０１６に出力する。）とＢＤステータス判定レジスタＡ１００４が一致しているか判定回路Ｃ１００９にて判定（全てＥ＝１か判定１１０４）する。全て一致していた場合、ＤＭＡを禁止１１０５し、次のトランザクションのラッチ動作１１０６を行なう。
【００４６】
次にラッチアドレス１０１４とアドレス判定レジスタ１００２が一致しているか判定１１０７する。一致した場合、次にラッチコマンド１０１５とバスコマンド判定レジスタＢ１００５が一致しているか判定１１０８する。一致した場合、次にラッチデータ１０１６に含まれる全てのＢＤのステータスとＢＤステータス判定レジスタＢ１００５が一致しているか判定回路Ｅ１０１１にて判定（全てＥ＝０か判定１１０９）する。全て一致していた場合、ＤＭＡを許可１１１０しトランザクションラッチ動作１１０１を行なう。
【００４７】
このようにして、プロセッサがキャッシュのブロック単位でのＢＤの処理を実行している間だけＤＭＡを禁止することを可能としている。
【００４８】
本発明の第三の実施の形態では、プロセッサが未処理のＢＤをキャッシュ内に保持していても、ＦＣＣが更新したいＢＤが別のキャッシュブロックであれば更新できるようにする。一般的なキャッシュコントローラの動作によると、プロセッサが未処理のＢＤをキャッシュに保持していても、当該ＢＤとは別のキャッシュブロックをＦＣＣがアクセスするのであれば、キャッシュコントローラはキャッシュにヒットしたと判断しないので、ライトバックに伴うバーストライトトランザクションを発生させることはない。本発明の第三の実施の形態は、この点に着目し、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されている場合はＤＭＡを禁止し、保持されていない場合はＤＭＡを許可するようにした。
【００４９】
このことにより、ＦＣＣが更新したいＢＤがキャッシュメモリに保持されていない場合は、ＦＣＣはメインメモリにアクセスすることができるので、受信パケットが滞留しない。逆に保持されている場合はＤＭＡを禁止するので未処理のＢＤがキャッシュからメモリにライトバックされることによるプロセッサのストール（なお、プロセッサのストールについては第一の実施の形態にて説明している）を防止することができる、という作用があり、この両者により、無線基地局装置の受信パケットのスループットが向上するという新たな効果を奏する。
【００５０】
また、モニタ回路内にキャッシュに保持されているＢＤを含むキャッシュブロックのアドレスタグを保存するメモリを有する構成としたため、複数のキャッシュブロックに未処理ＢＤがあっても、ＦＣＣがＤＭＡしたいＢＤがキャッシュに保持されていなければ、ＦＣＣはＤＭＡ転送を行なうことができ、ＦＣＣに受信パケットが滞留してバッファ溢れによる受信パケットの欠損を防ぐことができるという効果もある。
【００５１】
図１２に第三の実施の形態の構成を示す。本実施の形態はシステムバス１２０９はアドレス転送とデータ転送を別々のトランザクション（アドレストランザクションとデータトランザクション）で転送できるものとする。図１２によるとキャッシュコントローラ１２０６はアドレストランザクションを受信するとキャッシュメモリのアドレスタグとこれを比較し、キャッシュ内に同一アドレスタグのキャシュブロックがあるか確認し、あった場合、これをモニタ回路１２０７に通知する手段であるヒット１２１３をアサートすることができる。
【００５２】
モニタ回路１２０７はヒット１２１３がアサートすると、後述するモニタ回路内部のメモリにそのアドレストランザクションのアドレスタグを問い合わせることができ、一致したアドレスタグがあった場合、これをキャッシュコントローラおよびＦＣＣに通知する手段であるリトライ１２１２をアサートすることができる。
【００５３】
キャッシュコントローラ１２０６はリトライ１２１２がアサートされると、当該キャッシュブロックのライトバックをキャンセルする。
【００５４】
ＦＣＣ１２０３はリトライ１２１２がアサートされると、そのアドレストランザクションを無効と識別し、データトランザクションを発生させることができない。よってＤＭＡが禁止される。
【００５５】
また、図示しないが、プロセッサはキャッシュブロック単位でのＢＤの処理が終わったら当該ブロックをフラッシュする（キャッシュメモリからメインメモリへの書き戻し（バーストライト）をおこなう）。
【００５６】
図１３に第三の実施の形態のモニタ回路の構成を示す。
キャッシュトランザクションラッチ判定部１３０４はシステムバス１３０１からキャッシュコントローラが発生させるトランザクションを監視し、未処理ＢＤを含むキャッシュブロックのバーストリードトランザクションを検出するとこのアドレスタグをメモリ１３０５に保存する。また、処理済ＢＤを含むキャッシュブロックのバーストライトトランザクションを検出するとそのアドレスタグをメモリ１３０５から削除する。キャッシュコントローラが発生するトランザクションをシステムバスから検出する方法は、図示しないが、例えば、バス調停信号を使ってキャッシュコントローラがイネーブルになったことを検出することで実現できる。
【００５７】
メモリ１３０５にはキャッシュに保持されている未処理ＢＤを含むキャッシュブロックのアドレスタグが保存されている。
【００５８】
ＦＣＣトランザクションラッチ判定部１３０６は、ＦＣＣからのアドレストランザクションを監視し、ヒット１３０２がアサートされると当該アドレスがメモリ１３０５に保存されていないか照合し、保存されている場合はリトライ１３０３をアサートする。
【００５９】
図１４にキャッシュトランザクションラッチ判定部の構成を、図１５にその動作フローを示す。
【００６０】
図１４と図１５を用いてキャッシュトランザクションラッチ判定部がどのようにしてメモリ１３０５に未処理ＢＤのアドレスを保存し、処理済ＢＤのアドレスを削除するかを説明する。キャッシュコントローラがシステムバス１４０１にトランザクションを発生させるとキャッシュトランザクションラッチ部１４０２が一旦これをラッチする（トランザクションラッチ動作１５０１）。そして判定回路Ａ１４０６が、アドレス１４０３がＢＤ領域に一致しているか判定する（１５０２）。一致した場合、次にバスコマンド１４０４がバーストリードかバーストライトであるか判定回路Ｂ１４０７が判定する（１５０３、１５０６）。バーストリードであれば次に、データトランザクションでラッチした、データ１４０５に未処理のＢＤが含まれるか判定回路Ｃ１４０８が判定する（１５０４）。未処理のＢＤが含まれればこのアドレス１４０３をメモリに保存する制御をメモリ制御回路１４０９が行なう（１５０５）。また、先のバスコマンド１４０４の判定において、バーストライトであれば、処理済ＢＤのライトバック（プロセッサによるフラッシュ）であると判断し、メモリ制御回路１４０９はメモリの該当アドレスを消去する（１５０７）。
【００６１】
上記の第三の実施の形態によれば、ＦＣＣが更新しようとしているＢＤがキャッシュメモリに保持されていない場合は、受信パケットをメインメモリにライトすることができるので、受信パケットが滞留せず、逆に保持されている場合はＦＣＣのＤＭＡを禁止するので未処理ＢＤがキャッシュからメモリにライトバックされることによるプロセッサのストールを防止することができ、両者の作用により無線基地局装置の受信パケットのスループットが向上する。
【００６２】
また、キャッシュ上の未処理ＢＤのアドレスをメモリに複数保持することができるので、複数のキャッシュブロックに未処理ＢＤがあっても、ＦＣＣが更新しようとするＢＤがキャッシュに保持されていなければ、ＦＣＣはＤＭＡ転送を行なうことができることにより、ＦＣＣに受信パケットが滞留してバッファ溢れによる受信パケットの欠損を防ぐことができる。
【００６３】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の第一の実施の形態の概略を示す図である。
【図２】本発明の第一の実施の形態に係るモニタ回路の構成を示す図である。
【図３】本発明の第一の実施の形態に係るメインメモリのメモリマップを示す図である。
【図４】本発明の第一の実施の形態に係るキャッシュの構成とＢＤが格納されているブロックを示す図である。
【図５】本発明の第一の実施の形態に係るモニタ回路の動作フローを示す図である。
【図６】関連技術の動作を示す図である。
【図７】本発明による動作フローを示す図である。
【図８】上位装置とのインタフェースにＩＰ伝送路を用いた無線基地局装置のシステムを示す図である。
【図９】関連技術を示す図である。
【図１０】本発明の第二の実施の形態の概略を示す図である。
【図１１】本発明の第二の実施の形態による動作フローを示す図である。
【図１２】本発明の第三の実施の形態の構成を示す図である。
【図１３】本発明の第三の実施の形態のモニタ回路の構成を示す図である。
【図１４】本発明の第三の実施の形態のキャッシュトランザクションラッチ判定部の構成を示す図である。
【図１５】本発明の第三の実施の形態のキャッシュトランザクションラッチ判定部の動作フローを示す図である。
【符号の説明】
【００６５】
１０２    Ｅｔｈｅｒ  ＰＨＹ
１０３    ＦＣＣ
１０４    プロセッサ
１０５    キャッシュメモリ
１０６    キャッシュコントローラ
１０７    モニタ回路
１０８    メインメモリ
１０９    システムバス
１１０    ベースバンド処理部
１１１    割込み手段
１１２    ＤＭＡ制御手段
【図１】
2009134711.tif 000003
【図２】
2009134711.tif 000004
【図３】
2009134711.tif 000005
【図４】
2009134711.tif 000006
【図５】
2009134711.tif 000007
【図６】
2009134711.tif 000008
【図７】
2009134711.tif 000009
【図８】
2009134711.tif 000010
【図９】
2009134711.tif 000011
【図１０】
2009134711.tif 000012
【図１１】
2009134711.tif 000013
【図１２】
2009134711.tif 000014
【図１３】
2009134711.tif 000015
【図１４】
2009134711.tif 000016
【図１５】
2009134711.tif 000017