(57)【要約】【課題】オンチップバスを用いたLSIシステムにおいて、バス上の転送が、転送先のモジュールのバッファ状態により待たされることで、転送元のモジュールが次の処理に進めないことを防止する。【解決手段】LSI上のオンチップバスの転送経路上に、一時的に転送データを格納できる転送バッファを設ける。これにより、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態であっても、バスマスタは、オンチップバス上のバッファにデータ転送することができる。このため、バスマスタは、スレーブ側内部のバッファ状態の如何にかかわらず、転送実行を待たされることがなくなり、システムトータルの処理性能が向上する。【選択図】図１
2008159075.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能モジュールを搭載した集積回路であって、
前記複数の機能モジュール間を結ぶ、少なくとも２つのオンチップバスを有し、
該第１のバスと、該第２のバスとが同一のプロトコルによって１つのバスアダプタにより接続されている集積回路において、
第１のバスに接続される機能モジュールが、ＣＰＵモジュールと、外部メモリインタフェースモジュールと、前記バスアダプタの３つのみから構成され、
前記バスアダプタ内の共通の転送経路上に、第１のバスと第２のバスとの間で転送される転送情報を格納する共有バッファを設けた半導体の集積回路。
【請求項２】
請求項１の集積回路において、
第１のバスの動作周波数が、第２のバスの動作周波数の整数倍である半導体の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータやワークステーションを始めとする情報処理装置の部品として用いられるLSI技術に係り、特に、プロセッサ、メモリ、各種周辺機能モジュールなど複数の機能が１チップ上に集積化されたLSIの内部バスの構成およびその制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータやワークステーションを始めとする情報処理装置に用いられるバスおよびその制御方法に関する従来技術に関しては、特開平５−３２４５４４号公報などに記載の技術が知られている。従来のバス制御方式を、図８を用いて説明する。現在、インタフェース回路の設計の容易さから、バスに接続された複数のモジュールが、各モジュールに共通のクロックであるシステムクロックに同期して、データの送受信制御を行なう同期式バスが主流になっている。
従来の同期式バスの転送方式を、４データサイクルのバーストライトを例に説明すると、図８に示すようになる。図８は、従来のバスのバーストライトタイミングチャート（転送先モジュール側バッファ：空き状態）である。図８において、８０１は転送を同期して行なうためのシステムクロック信号、８０２は転送元モジュール（バスマスタ）からバスモジュールを介し、転送先（スレーブ）にアドレス／データを伝えるアドレス／データ（A/D）信号、８０３はアドレス／コマンドの有効期間を示すアドレスバリッド（ADV−N）信号、８０４はデータの有効期間を示すデータバリッド（DTV−N）信号、８０５は転送の種類等を指定するコマンド（CMD）信号、８０６はバスモジュールが転送を受け付けたことを転送元モジュール（バスマスタ）に知らせるアクノリッジ（ACK−N）信号、８０７は転送先モジュール（スレーブ）が、自モジュール内部のバッファが満杯で、受け付け不可状態であり、後に再度実行することを転送元モジュール（バスマスタ）に要求するリトライ要求（RTY−N）信号である。
【０００３】
転送元であるバスマスタがシステムクロック８０１に同期しながら転送アドレスおよび転送コマンドをバス上に送出する。このとき、バスマスタはアドレス／コマンドサイクルであることを、アドレスバリッド信号８０３をアサートすることで指定する。次に、転送先であるスレーブモジュールからバスマスタに対し、アドレス／コマンドサイクルを確かに受領したという報告が、アクノリッジ信号８０６を介して伝えられる。これを受けたバスマスタは、システムクロック８０１に同期して、４連続のデータサイクルバス上に送出し、データ転送を終了する。このとき、データサイクルであることは、データバリッド信号８０４を用いて指定される。
【０００４】
一方、近年、LSIの集積度が上がり、プロセッサ、メモリ、各種周辺機能モジュールなどシステムを構成する複数の機能を、共に、１チップ上に集積化することが可能になりつつある。この場合、前述のようなバスが、オンチップバスとしてLSI内部に取り込まれることが考えられる。LSI内部にバスを設ける利点として、各モジュールのインタフェース回路の共通化、各種機能モジュールの他のLSIへの流用の容易化、などが挙げられる。
【０００５】
バスをオンチップバスとしてＬＳＩ内部に取り込んだ従来例としては、USP 5,761,516がある。
【０００６】
一般的に、前述のようなバスを用いたシステムにおいては、転送先モジュールのバッファが満杯になることにより、バス上の待ちが生じ、システム性能が低下するという問題が生じる。４データサイクルのバーストライトを例に説明すると、図９に示すようになる。
【０００７】
図９は、従来のバスのバーストライトタイミングチャート（転送先モジュール側バッファ：フル状態）である。図９において、９０１は転送を同期して行なうためのシステムクロック信号、９０２は転送元モジュール（バスマスタ）からバスモジュールを介し、転送先（スレーブ）にアドレス／データを伝えるアドレス／データ（A/D）信号、９０３はアドレス／コマンドの有効期間を示すアドレスバリッド（ADV−N）信号、９０４はデータの有効期間を示すデータバリッド（DTV−N）信号、９０５は転送の種類等を指定するコマンド（CMD）信号、９０６はバスモジュールが転送を受け付けたことを転送元モジュール（バスマスタ）に知らせるアクノリッジ（ACK−N）信号、９０７は転送先モジュール（スレーブ）が、自モジュール内部のバッファが満杯で、受け付け不可状態であり、後に再度実行することを転送元モジュール（バスマスタ）に要求するリトライ要求（RTY−N）信号である。転送元であるバスマスタがシステムクロック９０１に同期しながら転送アドレスおよび転送コマンドをバス上に送出する。このとき、バスマスタはアドレス／コマンドサイクルであることを、アドレスバリッド信号９０３をアサートすることで指定する。
【０００８】
ここで、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合、スレーブモジュールはバスマスタに対して、後に再度転送を実行することを、リトライ要求（RTY−N）信号９０７を用いて要求する。バスマスタは一定時間経過後、再び、バス上で転送を起動し、転送先であるスレーブモジュール内のバッファが満杯でなければ、スレーブからのアクノリッジの報告受領（リトライ要求なし）後、４サイクルのバーストライト転送を実行し、転送を完了する。ここでは、バスがリトライプロトコルを備えているため、バスマスタがバスを占有したまま待たされ、他の転送を邪魔することはない。しかし、リトライ要求を受けた転送元モジュールの転送は受け付けられず、転送元モジュールにおける処理は先に進めないという問題が依然として残る。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、オンチップバスを用いたLSIシステムにおいて、バス転送が、転送先のモジュールのバッファ状態により待たされることで、転送元のモジュールが次の処理に進めなくなることを防止することにある。
【課題を解決するための手段】
【００１０】
本発明では、LSI上のオンチップバスの転送経路上に、バスに接続される各モジュールが転送中、共通に使用できる転送バッファおよびその制御部を設ける。
【発明の効果】
【００１１】
転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態であっても、当該バスマスタは、LSI上のオンチップバス上にある各モジュールが共通で使用できるバッファにデータを一時的に転送し、次の処理に進むことができる。このため、バスマスタは、スレーブモジュール（転送先）側のバッファの状態によって、転送実行を待たされる可能性がなくなるため、システムのトータル処理性能が向上する。
【実施例１】
【００１２】
本発明の実施例を図１から図１２を用いて説明する。図１は、本発明のオンチップバスを採用したシステムLSIを用いた情報処理装置のブロック図、図２は、本発明のオンチップバスを採用したシステムLSIのブロック図、図３は、本発明のオンチップバスを採用したシステムLSIの内部構成を示すブロック図、図４は、オフチップでクロスバースイッチを用いたバス構成をオンチップで実現したシステムLSIの内部構成を示すブロック図、図５は、本発明のオンチップバスのアドレス割付けを示すアドレス空間マップ、図６は、本発明のオンチップバスのバーストライトのタイミングチャート（受け側バッファ：空き状態）、図７は、本発明のオンチップバスのバーストライトのタイミングチャート（受け側バッファ：フル状態）、図１０は、本発明のオンチップバスの結線関係を示す接続図、図１１は、本発明のオンチップバスの転送手順を示すフローチャート、図１２は、従来のオンチップバスの転送手順を示すフローチャートである。
【００１３】
図１において、１０１は本発明のオンチップバスを採用したシステムLSI、１０２は主記憶装置、１０３はROM、１０４はシステムバス１０９とI/Oバス１１０の間のプロトコル変換を行なうバスアダプタ、１０５は通信用モジュール、１０６、１０７は入出力装置、１０８はオンチップバス、１０９はシステムバス、１１０はI/Oバス、１１１はメモリ管理ユニット（MMU）およびキャッシュメモリを含むCPUモジュール、１１２はオンチップのDRAMモジュール、１１３はグラフィックスモジュール、１１４はMPEG（Moving Picture Experts Group）デコーダモジュール、１１５は外部バス（システムバス）インタフェースモジュール、１１６はDSP（Digital Signal Processor）モジュール、１１７から１２２はオンチップバス１０８への共通インタフェース部である。
【００１４】
図２において、２０１はシステムLSI内部のモジュールであるモジュールA、２０２はモジュールB、２０３はモジュールC、２０４はモジュールD、２０５はモジュールE、２０６はモジュールF、２０７はモジュールG、２０８はモジュールH、１０９はオンチップバスのクロスバースイッチ部、２１０はクロスバースイッチ制御部、２１１はクロスバースイッチ内部に設けられたバッファ部、２１２から２１９はそれぞれモジュールAからモジュールHのオンチップバスインタフェース部、２２０から２２７はオンチップバスのモジュールインタフェース部である。
図３において、３０１、３０２はバスモジュール１０８内の転送経路に設けられた転送用バッファ、３０３、３０５、３０７、３０９はそれぞれモジュールA、B、C、Dのデータ出力バッファ、３０４、３０６、３０８、３１０はそれぞれモジュールA、B、C、Dのデータ入力バッファ、３１１、３１３、３１５、３１７はそれぞれモジュールA、B、C、Dからのデータ出力線、３１２、３１４、３１６、３１８はそれぞれモジュールA、B、C、Dへのデータ入力線、３１９はバッファ３０１を介さないためのバイパス線、３２０はバッファ３０２を介さないためのバイパス線、３２１から３２８はクロスバースイッチを構成するセレクタ、３２９から３３６はデータの経路を決定するクロスバースイッチ制御部２１０からの制御線である。
【００１５】
図３に示すように、モジュール間で共有する転送用バッファを複数個設けることにより、転送用バッファに対する入出力動作を並列に行なうことができる。
図４において、４０１、４０２、４０３、４０４はそれぞれモジュールA、B、C、Dの入力データ用バッファ、４０５から４１２はクロスバースイッチを構成するセレクタ、４１３から４２０はデータの経路を決定するクロスバースイッチ制御部２１０からの制御線である。
【００１６】
図５において、５０１はモジュールAのアドレス空間、５０２はモジュールBのアドレス空間、５０３はモジュールCのアドレス空間、５０４はモジュールDのアドレス空間である。
【００１７】
図６において、６０１は転送を同期して行なうためのシステムクロック信号、６０２は転送元モジュール（バスマスタ）からバスモジュール１０８にアドレス／データを伝えるアドレス／データ（A/D−１）信号、６０３はアドレス／コマンドの有効期間を示すアドレスバリッド（ADV−N）信号、６０４はデータの有効期間を示すデータバリッド（DTV−N）信号、６０５は転送の種類等を指定するコマンド（CMD）信号、６０６はバスモジュール１０８が転送を受け付けたことを転送元モジュール（バスマスタ）に知らせるアクノリッジ（ACK−N）信号、６０７は転送先モジュール（スレーブ）が、自モジュール内部のバッファが満杯で、受け付け不可状態であることをバスモジュール１０８に知らせるバッファフル（BFL−N）信号、６０８はバスモジュール１０８から転送先モジュール（スレーブ）にアドレス／データを伝えるアドレス／データ（A/D−２）信号である。
【００１８】
図７において、７０１は転送を同期して行なうためのシステムクロック信号、７０２は転送元モジュール（バスマスタ）からバスモジュール１０８にアドレス／データを伝えるアドレス／データ（A/D−１）信号、７０３はアドレス／コマンドの有効期間を示すアドレスバリッド（ADV−N）信号、７０４はデータの有効期間を示すデータバリッド（DTV−N）信号、７０５は転送の種類等を指定するコマンド（CMD）信号、７０６はバスモジュール１０８が転送を受け付けたことを転送元モジュール（バスマスタ）に知らせるアクノリッジ（ACK−N）信号、７０７は転送先モジュール（スレーブ）が、自モジュール内部のバッファが満杯で、受け付け不可状態であることをバスモジュール１０８に知らせるバッファフル（BFL−N）信号、７０８はバスモジュール１０８から転送先モジュール（スレーブ）にアドレス／データを伝えるアドレス／データ（A/D−２）信号である。
図１０において、１００１はモジュールAとバスモジュール１０８間のコマンド信号、１００２はモジュールAとバスモジュール１０８間のバッファフル信号、１００３はモジュールAとバスモジュール１０８間のアクノリッジ信号、１００４はモジュールAとバスモジュール１０８間のデータバリッド信号、１００５はモジュールAとバスモジュール１０８間のアドレスバリッド信号、１００６はモジュールAからバスモジュール１０８へのアドレス／データ信号、１００７はバスモジュール１０８からモジュールAへのアドレス／データ信号、１００８はモジュールBとバスモジュール１０８間のコマンド信号、１００９はモジュールBとバスモジュール１０８間のバッファフル信号、１０１０はモジュールBとバスモジュール１０８間のアクノリッジ信号、１０１１はモジュールBとバスモジュール１０８間のデータバリッド信号、１０１２はモジュールBとバスモジュール１０８間のアドレスバリッド信号、１０１３はモジュールBからバスモジュール１０８へのアドレス／データ信号、１０１４はバスモジュール１０８からモジュールBへのアドレス／データ信号である。
【００１９】
まず、システム構成から説明する。図１は、本発明のオンチップバスを採用したシステムLSI用いた情報処理装置のプロック図で、システムバス１０９上に本発明のオンチップバスを採用したシステムLSI（周辺機能モジュールを内蔵したプロセッサ）、主記憶装置１０２、ROM １０３、通信モジュール１０５が接続され、さらにバスアダプタ１０４を介したI/Oバス１１０上には複数の入出力装置１０６，１０７が接続されている。システムLSI内のCPUモジュール、DRAMモジュール、グラフィックスモジュールなどの各モジュールは、共通インタフェース部（１１７から１１６など）を有し、全てオンチップバス１０８へ接続されている。システムLSI１０１の内部構成を示すブロック図が図２である。
【００２０】
本実施例におけるシステムLSI内部のオンチップバスは、複数のセレクタからなるクロスバースイッチ構成になっており、さらに内部には、バスに接続される各モジュールがデータ等を転送中、共通に使用できる転送バッファを設けてある。ここでは、これら（制御部２１０も含む）を総称してバスモジュール１０８と呼ぶ。ここで、クロスバースイッチは、1以上の入力に対して1つの出力を選択する機能を有する。バスモジュールには、クロスバースイッチの転送経路、および転送タイミングを制御するクロスバースイッチ制御部２１０が含まれる。バスモジュール１０８の内部のデータの流れを示したものが図３である。
【００２１】
また、本発明のバスはクロスバースイッチ構成であるため、図５のようにあらかじめ各モジュールのアドレス空間が割付けられている。ここで、図３において、モジュールA（２０１）がモジュールC（２０３）に対し、バーストライト（４データサイクル）転送を実行する場合を考える。モジュールAは、図６のタイミングチャートに示すように、モジュールCに割付けられたアドレスとバーストライト転送を指定するコマンドをバス上に出力する（A/D−１は図３のデータ出力線３１１に該当し、タイミングは図６の６０２）（１１０２）。ここで、アドレス／コマンドサイクルであることをアドレスバリッド（ADV−N）信号６０３で指定する。バスモジュール１０８経由で、バス信号線（図１０の１００８、１０１１、１０１２、１０１３）を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ（ACK−N）６０６を、バスモジュール１０８を介してモジュールAに送信する（１１０３）。
【００２２】
同時に、モジュールCは、自モジュール内部の転送受け付けバッファの空き状態をバッファフル（BFL−N）信号６０７を用いてモジュールAに知らせる（１１０４）。図６は、モジュールC内部のバッファに空きがあり、転送受付け可能状態である場合を示す。この場合、図３内のクロスバースイッチ制御部１０８は、セレクタ３２４、３２２、３２７を制御し、データ出力線３１１、バスモジュール内の転送経路に設けられた転送用バッファ３０２を介さないバイパス線３２０、データ入力線３１６を経由してデータを転送するように制御する（１１０５）。
【００２３】
一方、モジュールCにおいて、自モジュール内部のバッファに空きがなく、受け付け不可状態である場合のタイミングチャートを図７に示す。バス信号線（図１０の１００８、１０１１、１０１２、１０１３）を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ（ACK−N）７０６を、バスモジュール１０８を介してモジュールAに送信すると同時に、自モジュール内部の転送受け付けバッファが受付け不可状態にあることを、バッファフル（BFL−N）信号７０７を用いてモジュールAに知らせる（１１０６）。
【００２４】
そしてこの場合は、図３内のクロスバースイッチ制御部２１０は、セレクタ３２４、３２２、３２７を制御し、データ出力線３１１、バスモジュール内の転送経路に設けられた転送用バッファ３０２、データ入力線３１６を経由してデータを転送するように制御する。ここで、転送用バッファ３０２にはアドレス／データ信号（A/D−１）７０２のタイミングでデータが書き込まれる。そして、モジュールCに対しては、バッファフル（BFL−N）信号７０７がネゲートされるのを待って（１１０７）、アドレス／データ信号（A/D−２）７０８のタイミングで、バスモジュール１０８により、データの書き込みが行なわれる（１１０８）。これらの一連の動作をフローチャートにしたものが図１１である。
【００２５】
ここで、上記で説明した共通に使用できる転送用バッファを有する場合と転送用バッファを持たない場合の転送制御例と比較してみる。図４に転送バッファを持たない場合バス構成を示す。ここで、図４は、クロスバースイッチを用いたバス構成を、オンチップで実現したシステムLSIのバスモジュール１０８の内部データの流れを示したものである。
【００２６】
図４において、モジュールAがモジュールCにバーストライト（４データサイクル）する場合を考える。モジュールAは、図８のタイミングチャートに示すように、モジュールCのアドレスとバーストライトを指定するコマンドを出力する。ここで、アドレス／コマンドサイクルであることをアドレスバリッド（ADV−N）信号８０３で指定する。バスモジュール１０８からのバス制御信号を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ（ACK−N）８０６を、バスモジュール１０８を介してモジュールAに送信する。
【００２７】
図８では、自モジュール内部のバッファに空きがあり、受け付け可能状態である場合を示す。この場合、図４内のクロスバースイッチ制御部２１０は、セレクタを制御し（例：４０５、４１１経由）、データ出力線３１１、データ入力線３１６を介してデータ転送できるように経路制御を行なう。一方、モジュールCにおいて、自モジュール内部のバッファに空きがなく、受け付け不可状態である場合を図９に示す。
【００２８】
モジュールAは、図９のタイミングチャートに示すようにモジュールCのアドレスとバーストライトを指定するコマンドを出力する（１２０２，１２０３）。ここで、アドレス／コマンドサイクルであることをアドレスバリッド（ADV−N）信号９０３で指定する。バスモジュール１０８からのバス制御信号を介してバーストライトアクセス要求を受取ったモジュールCは、自モジュール内部のバッファに空きがなく、受け付け不可状態であることをリトライ要求信号（RTY−N）９０７を用いてモジュールAに通知する（１２０４）。リトライ要求により転送を拒絶されたモジュールAは、一定期間後に、再度転送起動をかける（１２０６）。
モジュールC側のバッファに空きができ、受領報告であるアクノリッジ（ACK−N）応答９０６があった時点で、図４内のクロスバースイッチ制御部２１０は、セレクタ４０５、４１１を制御し（例：４０５、４１１経由）、データ出力線３１１、データ入力線３１６を介してデータを転送するようにバス制御を行い、モジュールCへのデータ転送を実行する（１２０５）。これら一連の制御をフローチャートに示すと図１２のようになる。
【００２９】
プリント基板上に実装してある従来バスの場合、バスライン自体は、基板上の配線でしかない。そのため、バス上に本方式のようなバッファを設けることは、すなわち、LSI部品の追加を意味する。このため、通常、本発明のようなバッファを設ける場合は、バスに接続される全モジュールのバスインタフェース部（受信側）にバッファを内蔵することになる。結果的に、従来の基板上バスのケースでは、モジュールのゲート数が増大するという問題が生じることになる。
【００３０】
これに対して、本発明のように、バス線の配線部をバスモジュール１０８とし、この中に共用できるバッファを設ければ、不必要なバッファの追加を防ぐことができる。これは、全モジュールが同時に転送しているケースはまれで、通常は、バス使用率に見合ったバッファ（例えば、使用率が５０％なら全モジュールがバッファを持った場合の半分のバッファ容量）を内蔵すればよいからである。
【００３１】
本実施例では、バスの構成がクロスバースイッチであるものを示したが、共通の母線を時分割で使用する通常のバスの形態であってもいっこうに差し支えない。
【００３２】
本発明によれば、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合であっても、バスマスタは、LSI上のオンチップバス上に設けられた転送バッファにデータを転送することができるようになる。このため、転送元であるバスマスタは、スレーブ内部のバッファが空き状態にかかわらず、転送を待つ必要がなくなり、システムトータルの処理性能が向上するという効果がある。
【００３３】
さらに、本発明は、LSI周波数の向上にも効果がある。近年、LSIプロセスの微細化が進み、配線容量の増大により、ゲート遅延より配線遅延が問題になりつつある。そのため、チップの角で且つ、対角に配置されたモジュール間の転送が、チップ全体のクリティカルパスになる可能性が大きい。（この場合、配線長がチップ１辺の長さの約２倍になるからである。）
【００３４】
そこで、バスモジュール１０８をチップの中央に実装することにより、内蔵されたバッファで一旦中継することは、配線長を約２分の１にでき、クリティカルパスの対策として本方式を活かすこともできる。すなわち、周波数向上の観点からも有効であるということになる。
【００３５】
また、プリント基板上に実装された従来バスに比べ、本発明のように、オンチップバス上に共有バッファを設けることにより、配線長を短かくできるので配線遅延を低減できる。
【００３６】
また、図１の情報処理装置内部の構成要素は、その応用製品によって異なる。典型的な例としては、ケーブルTVや衛星放送用のSTB（セットトップボックス）、小型携帯端末、インターネット専用端末などが挙げられる。STBでは、システムLSI１０１に内蔵されるモジュールとして、DRAM、DMA（ダイレクトメモリアクセス）コントローラや基本I/Oの他に、MPEGデコーダ、TV出力機構が考えられる。システムバス１０９上には、ROMや主記憶装置の他に、通信用モジュールとして、ケーブルモデムもしくは衛星チューナが必要になる。
【００３７】
また、I/Oバス１１０上には、オプションとして、プリンタインタフェース、ハードディスク装置などが考えられる。一方、小型携帯端末としては、システムLSI１０１に内蔵されるモジュールとして、DRAM、DMA（ダイレクトメモリアクセス）コントローラ、基本I/Oの他に、アクセラレータ付きLCD（液晶）コントローラが考えられる。システムバス１０９上には、ROMや主記憶装置の他に、モデム、ＰＣカードインタフェース、FD（フレキシブルディスクインタフェース）などが考えられ、小型化のため、場合によっては、I/Oバス１１０を設けないことも考えられる。
【００３８】
インターネット専用端末としては、システムLSI１０１に内蔵されるモジュールとして、DRAM、DMA（ダイレクトメモリアクセス）コントローラ、基本I/Oの他に、アクセラレータ付きグラフィックスコントローラが考えられる。システムバス１０９上には、ROMや主記憶装置の他に、通信モジュールとして、イーサーネット（オフィス用）もしくはモデム（家庭用）インタフェースが必要になる。また、I/Oバス１１０上には、プリンタ用インタフェース、ハードディスク装置などが考えられる。
【００３９】
なお、本発明はプリント基盤上に共有バッファを設けた場合も考えられる。
【００４０】
図１３は本発明の１実施例の内部バス階層構造を示したブロック図、図１４は図１３におけるバスリピータの内部構造を示したブロック図である。図１３において、１３０１は図１におけるオンチップバス１０８を２つに分離するためのバスリピータ、１３０２はバスリピータにより２つに分離されたオンチップバスのうちで、ＣＰＵモジュールと外部バスインタフェースが接続された側のオンチップバス、１３０３はバスリピータにより２つに分離されたオンチップバスのうちで、ＣＰＵモジュールと外部バスインタフェースが接続されていない側のオンチップバス、１３０４はオンチップバス１３０３とオンチップの低速Ｉ／Ｏバスを接続するためのバスアダプタ、１３０５はオンチップの低速Ｉ／Ｏバス、１３０６，１３０７は低速Ｉ／Ｏである。図１４において、１４０１はオンチップバス１３０２インタフェース、１４０２はオンチップバス１３０３インタフェース、１４０３は転送バッファ部、１４０４はオンチップバス１３０２側からの転送受信制御部、１４０５はオンチップバス１３０２側への転送送信制御部、１４０６はオンチップバス１３０３側への転送送信制御部、１４０７はオンチップバス１３０３側からの転送受信制御部、１４０８はオンチップバス１３０２から１３０３への転送時の転送用バッファ（アドレス、データ、転送制御情報を含む）、１４０９はオンチップバス１３０３から１３０２への転送時の転送用バッファ(アドレス、データ、転送制御情報を含む）、１４１０はオンチップバス１３０２からバスリピータ１３０１への入力線、１４１１はバスリピータ１３０１からオンチップバス１３０２への出力線、１４１２は、オンチップバス１３０３からバスリピータ１３０１への入力線、１４１３はバスリピータ１３０１からオンチップバス１３０３への出力線である。
【００４１】
ここで、本システムＬＳＩの動作周波数をさらに向上させる方式を考える。ＬＳＩの動作周波数向上を阻む大きな要因としてバス上に接続されるモジュールの個数がある。バス上に接続されるモジュール数が少ないほど、配線遅延の短縮や、クロスバースイッチ論理規模の小型化が図れ、結果として、動作周波数を向上することができる。そこで、オンチップバスを、バスリピータを用いて２つ以上に分離し、局所的に周波数を向上させることを考える。例えば、８モジュールが繋がって１００ＭＨｚで動作しているオンチップバスを、バスリピータを用いて２モジュールと６モジュールに分離する。これによって、２モジュール側のオンチップバスはバスリピータを含めると実際３モジュール、６モジュール側のオンチップバスは７モジュールの負荷がかかっていることになる。このため、６モジュール側のオンチップバスはあまり条件が変わらないが、２モジュール側のオンチップバスはモジュール負荷の減った分、周波数を向上することができるようになる。ここで、当然、２モジュール側のオンチップバスから６モジュール側のオンチップバスにデータ転送を行なう場合、１転送当りのオーバヘッドが増加し、レイテンシが大きくなるという問題がある。そのため、モジュールの振り分けには十分注意を払う必要がある。図１３では、バスリピータを用いて、メインのオンチップバスを２つに分離している（オンチップバス１３０２と１３０３）。そして、オンチップバス１３０２側には、ＣＰＵモジュール１１１と外部バスインタフェース１１５のみを接続する。一方、その他の機能モジュールはオンチップバス１３０３側に接続する。ここで、オンチップバス１３０２にはバスリピータを含めて、３モジュールしか接続されていないため、オンチップバス分離前に比べて周波数を向上させることができる。すなわち、ＣＰＵと外部メモリの間の転送が高速化され、システムの処理性能が向上する。一方、ＣＰＵや外部メモリとオンチップバス１３０３上のモジュール間の転送レイテンシが大きくなるという問題があるが、周辺機能モジュールへの転送要求性能は、ＣＰＵと主記憶間の転送要求性能に比べて低い場合が多く、また、ＣＰＵと主記憶間の転送比率が高いシステムが多いことを考えると、システムトータル性能を向上できる場合が多い。通常は、バスリピータにおける同期化のロスを小さくするため、オンチップバス１３０２と１３０３との周波数比を１：１、２：１、４：１など整数比にしておくとよい。また、さらに性能の低いＩ／Ｏのためには、低速Ｉ／Ｏバス１３０５などを用意して、バスアダプタで接続してもよい。また、バスリピータの内部構造を示したものが図１４である。
【００４２】
本発明によれば、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合であっても、バスマスタは、LSI上のオンチップバス上に設けられた転送バッファにデータを転送することができるようになる。このため、一回の情報転送でバスを独占する時間を減少させることができ、効率良くバスを使用することができる。また、転送元であるバスマスタは、スレーブ内部のバッファが空き状態にもかかわらず、バスが使用されているために転送を待つという必要がなくなり、システムトータルの処理性能が向上するという効果がある。
【００４３】
本発明のさらなる効果として、オンチップバスをバスリピータを用いて２つ以上に分離し、局所的に周波数を向上させることで、システムトータル性能を向上することができるという効果がある。
【図面の簡単な説明】
【００４４】
【図１】本発明のオンチップバスを採用したシステムLSIを用いた情報処理装置のブロック図である。
【図２】本発明のオンチップバスを採用したシステムLSIのブロック図である。
【図３】本発明のオンチップバスを採用したシステムLSIの内部構成を示すブロック図である。
【図４】オフチップでクロスバースイッチを用いたバス構成をオンチップで実現したシステムLSIの内部構成を示すブロック図である。
【図５】本発明のオンチップバスのアドレス割付けを示すアドレス空間マップである。
【図６】本発明のオンチップバスのバーストライトタイミングチャート（受け側バッファ：空き状態）である。
【図７】本発明のオンチップバスのバーストライトタイミングチャート（受け側バッファ：フル状態）である。
【図８】従来例のオンチップバスのバーストライトタイミングチャート（受け側バッファ：空き状態）である。
【図９】従来例のオンチップバスのバーストライトのタイミングチャート（受け側バッファ：フル状態）である。
【図１０】本発明のオンチップバスの結線関係を示す接続図である。
【図１１】本発明のオンチップバスの転送手順を示すフローチャートである。
【図１２】従来のオンチップバスの転送手順を示すフローチャートである。
【図１３】本発明の一実施例の内部バス階層構造を示したブロック図である。
【図１４】本発明のバスリピータの内部構造を示したブロック図である。
【図１】
2008159075.tif 000003
【図２】
2008159075.tif 000004
【図３】
2008159075.tif 000005
【図４】
2008159075.tif 000006
【図５】
2008159075.tif 000007
【図６】
2008159075.tif 000008
【図７】
2008159075.tif 000009
【図８】
2008159075.tif 000010
【図９】
2008159075.tif 000011
【図１０】
2008159075.tif 000012
【図１１】
2008159075.tif 000013
【図１２】
2008159075.tif 000014
【図１３】
2008159075.tif 000015
【図１４】
2008159075.tif 000016
【手続補正書】
【提出日】平成20年3月3日(2008.3.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵモジュールと、少なくとも外部メモリが接続される外部バスインタフェースモジュールと、複数の機能モジュールを搭載した集積回路であって、
前記ＣＰＵモジュールと、前記外部バスインタフェースモジュール間を結ぶ第１のオンチップバスと、前記複数の機能モジュール間を結ぶ第２のオンチップバスと、
前記第１のオンチップバスと前記第２のオンチップバスとを同一のプロトコルによって接続するバスアダプタとを有し、
前記バスアダプタ内の共通の転送経路上に、前記第１のオンチップバスと前記第２のオンチップバスとの間で転送される転送情報を格納する共有バッファを設けた半導体の集積回路。
【請求項２】
請求項１の集積回路において、
前記第１のオンチップバスの動作周波数が、前記第２のオンチップバスの動作周波数の整数倍である半導体の集積回路。