JP2008159075A - 集積回路及びそれを用いた情報処理装置 - Google Patents
集積回路及びそれを用いた情報処理装置 Download PDFInfo
- Publication number
- JP2008159075A JP2008159075A JP2008024000A JP2008024000A JP2008159075A JP 2008159075 A JP2008159075 A JP 2008159075A JP 2008024000 A JP2008024000 A JP 2008024000A JP 2008024000 A JP2008024000 A JP 2008024000A JP 2008159075 A JP2008159075 A JP 2008159075A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- module
- transfer
- buffer
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】オンチップバスを用いたLSIシステムにおいて、バス上の転送が、転送先のモジュールのバッファ状態により待たされることで、転送元のモジュールが次の処理に進めないことを防止する。
【解決手段】LSI上のオンチップバスの転送経路上に、一時的に転送データを格納できる転送バッファを設ける。これにより、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態であっても、バスマスタは、オンチップバス上のバッファにデータ転送することができる。このため、バスマスタは、スレーブ側内部のバッファ状態の如何にかかわらず、転送実行を待たされることがなくなり、システムトータルの処理性能が向上する。
【選択図】図1
【解決手段】LSI上のオンチップバスの転送経路上に、一時的に転送データを格納できる転送バッファを設ける。これにより、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態であっても、バスマスタは、オンチップバス上のバッファにデータ転送することができる。このため、バスマスタは、スレーブ側内部のバッファ状態の如何にかかわらず、転送実行を待たされることがなくなり、システムトータルの処理性能が向上する。
【選択図】図1
Description
本発明は、パーソナルコンピュータやワークステーションを始めとする情報処理装置の部品として用いられるLSI技術に係り、特に、プロセッサ、メモリ、各種周辺機能モジュールなど複数の機能が1チップ上に集積化されたLSIの内部バスの構成およびその制御方法に関する。
パーソナルコンピュータやワークステーションを始めとする情報処理装置に用いられるバスおよびその制御方法に関する従来技術に関しては、特開平5−324544号公報などに記載の技術が知られている。従来のバス制御方式を、図8を用いて説明する。現在、インタフェース回路の設計の容易さから、バスに接続された複数のモジュールが、各モジュールに共通のクロックであるシステムクロックに同期して、データの送受信制御を行なう同期式バスが主流になっている。
従来の同期式バスの転送方式を、4データサイクルのバーストライトを例に説明すると、図8に示すようになる。図8は、従来のバスのバーストライトタイミングチャート(転送先モジュール側バッファ:空き状態)である。図8において、801は転送を同期して行なうためのシステムクロック信号、802は転送元モジュール(バスマスタ)からバスモジュールを介し、転送先(スレーブ)にアドレス/データを伝えるアドレス/データ(A/D)信号、803はアドレス/コマンドの有効期間を示すアドレスバリッド(ADV−N)信号、804はデータの有効期間を示すデータバリッド(DTV−N)信号、805は転送の種類等を指定するコマンド(CMD)信号、806はバスモジュールが転送を受け付けたことを転送元モジュール(バスマスタ)に知らせるアクノリッジ(ACK−N)信号、807は転送先モジュール(スレーブ)が、自モジュール内部のバッファが満杯で、受け付け不可状態であり、後に再度実行することを転送元モジュール(バスマスタ)に要求するリトライ要求(RTY−N)信号である。
従来の同期式バスの転送方式を、4データサイクルのバーストライトを例に説明すると、図8に示すようになる。図8は、従来のバスのバーストライトタイミングチャート(転送先モジュール側バッファ:空き状態)である。図8において、801は転送を同期して行なうためのシステムクロック信号、802は転送元モジュール(バスマスタ)からバスモジュールを介し、転送先(スレーブ)にアドレス/データを伝えるアドレス/データ(A/D)信号、803はアドレス/コマンドの有効期間を示すアドレスバリッド(ADV−N)信号、804はデータの有効期間を示すデータバリッド(DTV−N)信号、805は転送の種類等を指定するコマンド(CMD)信号、806はバスモジュールが転送を受け付けたことを転送元モジュール(バスマスタ)に知らせるアクノリッジ(ACK−N)信号、807は転送先モジュール(スレーブ)が、自モジュール内部のバッファが満杯で、受け付け不可状態であり、後に再度実行することを転送元モジュール(バスマスタ)に要求するリトライ要求(RTY−N)信号である。
転送元であるバスマスタがシステムクロック801に同期しながら転送アドレスおよび転送コマンドをバス上に送出する。このとき、バスマスタはアドレス/コマンドサイクルであることを、アドレスバリッド信号803をアサートすることで指定する。次に、転送先であるスレーブモジュールからバスマスタに対し、アドレス/コマンドサイクルを確かに受領したという報告が、アクノリッジ信号806を介して伝えられる。これを受けたバスマスタは、システムクロック801に同期して、4連続のデータサイクルバス上に送出し、データ転送を終了する。このとき、データサイクルであることは、データバリッド信号804を用いて指定される。
一方、近年、LSIの集積度が上がり、プロセッサ、メモリ、各種周辺機能モジュールなどシステムを構成する複数の機能を、共に、1チップ上に集積化することが可能になりつつある。この場合、前述のようなバスが、オンチップバスとしてLSI内部に取り込まれることが考えられる。LSI内部にバスを設ける利点として、各モジュールのインタフェース回路の共通化、各種機能モジュールの他のLSIへの流用の容易化、などが挙げられる。
バスをオンチップバスとしてLSI内部に取り込んだ従来例としては、USP 5,761,516がある。
一般的に、前述のようなバスを用いたシステムにおいては、転送先モジュールのバッファが満杯になることにより、バス上の待ちが生じ、システム性能が低下するという問題が生じる。4データサイクルのバーストライトを例に説明すると、図9に示すようになる。
図9は、従来のバスのバーストライトタイミングチャート(転送先モジュール側バッファ:フル状態)である。図9において、901は転送を同期して行なうためのシステムクロック信号、902は転送元モジュール(バスマスタ)からバスモジュールを介し、転送先(スレーブ)にアドレス/データを伝えるアドレス/データ(A/D)信号、903はアドレス/コマンドの有効期間を示すアドレスバリッド(ADV−N)信号、904はデータの有効期間を示すデータバリッド(DTV−N)信号、905は転送の種類等を指定するコマンド(CMD)信号、906はバスモジュールが転送を受け付けたことを転送元モジュール(バスマスタ)に知らせるアクノリッジ(ACK−N)信号、907は転送先モジュール(スレーブ)が、自モジュール内部のバッファが満杯で、受け付け不可状態であり、後に再度実行することを転送元モジュール(バスマスタ)に要求するリトライ要求(RTY−N)信号である。転送元であるバスマスタがシステムクロック901に同期しながら転送アドレスおよび転送コマンドをバス上に送出する。このとき、バスマスタはアドレス/コマンドサイクルであることを、アドレスバリッド信号903をアサートすることで指定する。
ここで、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合、スレーブモジュールはバスマスタに対して、後に再度転送を実行することを、リトライ要求(RTY−N)信号907を用いて要求する。バスマスタは一定時間経過後、再び、バス上で転送を起動し、転送先であるスレーブモジュール内のバッファが満杯でなければ、スレーブからのアクノリッジの報告受領(リトライ要求なし)後、4サイクルのバーストライト転送を実行し、転送を完了する。ここでは、バスがリトライプロトコルを備えているため、バスマスタがバスを占有したまま待たされ、他の転送を邪魔することはない。しかし、リトライ要求を受けた転送元モジュールの転送は受け付けられず、転送元モジュールにおける処理は先に進めないという問題が依然として残る。
本発明の目的は、オンチップバスを用いたLSIシステムにおいて、バス転送が、転送先のモジュールのバッファ状態により待たされることで、転送元のモジュールが次の処理に進めなくなることを防止することにある。
本発明では、LSI上のオンチップバスの転送経路上に、バスに接続される各モジュールが転送中、共通に使用できる転送バッファおよびその制御部を設ける。
転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態であっても、当該バスマスタは、LSI上のオンチップバス上にある各モジュールが共通で使用できるバッファにデータを一時的に転送し、次の処理に進むことができる。このため、バスマスタは、スレーブモジュール(転送先)側のバッファの状態によって、転送実行を待たされる可能性がなくなるため、システムのトータル処理性能が向上する。
本発明の実施例を図1から図12を用いて説明する。図1は、本発明のオンチップバスを採用したシステムLSIを用いた情報処理装置のブロック図、図2は、本発明のオンチップバスを採用したシステムLSIのブロック図、図3は、本発明のオンチップバスを採用したシステムLSIの内部構成を示すブロック図、図4は、オフチップでクロスバースイッチを用いたバス構成をオンチップで実現したシステムLSIの内部構成を示すブロック図、図5は、本発明のオンチップバスのアドレス割付けを示すアドレス空間マップ、図6は、本発明のオンチップバスのバーストライトのタイミングチャート(受け側バッファ:空き状態)、図7は、本発明のオンチップバスのバーストライトのタイミングチャート(受け側バッファ:フル状態)、図10は、本発明のオンチップバスの結線関係を示す接続図、図11は、本発明のオンチップバスの転送手順を示すフローチャート、図12は、従来のオンチップバスの転送手順を示すフローチャートである。
図1において、101は本発明のオンチップバスを採用したシステムLSI、102は主記憶装置、103はROM、104はシステムバス109とI/Oバス110の間のプロトコル変換を行なうバスアダプタ、105は通信用モジュール、106、107は入出力装置、108はオンチップバス、109はシステムバス、110はI/Oバス、111はメモリ管理ユニット(MMU)およびキャッシュメモリを含むCPUモジュール、112はオンチップのDRAMモジュール、113はグラフィックスモジュール、114はMPEG(Moving Picture Experts Group)デコーダモジュール、115は外部バス(システムバス)インタフェースモジュール、116はDSP(Digital Signal Processor)モジュール、117から122はオンチップバス108への共通インタフェース部である。
図2において、201はシステムLSI内部のモジュールであるモジュールA、202はモジュールB、203はモジュールC、204はモジュールD、205はモジュールE、206はモジュールF、207はモジュールG、208はモジュールH、109はオンチップバスのクロスバースイッチ部、210はクロスバースイッチ制御部、211はクロスバースイッチ内部に設けられたバッファ部、212から219はそれぞれモジュールAからモジュールHのオンチップバスインタフェース部、220から227はオンチップバスのモジュールインタフェース部である。
図3において、301、302はバスモジュール108内の転送経路に設けられた転送用バッファ、303、305、307、309はそれぞれモジュールA、B、C、Dのデータ出力バッファ、304、306、308、310はそれぞれモジュールA、B、C、Dのデータ入力バッファ、311、313、315、317はそれぞれモジュールA、B、C、Dからのデータ出力線、312、314、316、318はそれぞれモジュールA、B、C、Dへのデータ入力線、319はバッファ301を介さないためのバイパス線、320はバッファ302を介さないためのバイパス線、321から328はクロスバースイッチを構成するセレクタ、329から336はデータの経路を決定するクロスバースイッチ制御部210からの制御線である。
図3において、301、302はバスモジュール108内の転送経路に設けられた転送用バッファ、303、305、307、309はそれぞれモジュールA、B、C、Dのデータ出力バッファ、304、306、308、310はそれぞれモジュールA、B、C、Dのデータ入力バッファ、311、313、315、317はそれぞれモジュールA、B、C、Dからのデータ出力線、312、314、316、318はそれぞれモジュールA、B、C、Dへのデータ入力線、319はバッファ301を介さないためのバイパス線、320はバッファ302を介さないためのバイパス線、321から328はクロスバースイッチを構成するセレクタ、329から336はデータの経路を決定するクロスバースイッチ制御部210からの制御線である。
図3に示すように、モジュール間で共有する転送用バッファを複数個設けることにより、転送用バッファに対する入出力動作を並列に行なうことができる。
図4において、401、402、403、404はそれぞれモジュールA、B、C、Dの入力データ用バッファ、405から412はクロスバースイッチを構成するセレクタ、413から420はデータの経路を決定するクロスバースイッチ制御部210からの制御線である。
図4において、401、402、403、404はそれぞれモジュールA、B、C、Dの入力データ用バッファ、405から412はクロスバースイッチを構成するセレクタ、413から420はデータの経路を決定するクロスバースイッチ制御部210からの制御線である。
図5において、501はモジュールAのアドレス空間、502はモジュールBのアドレス空間、503はモジュールCのアドレス空間、504はモジュールDのアドレス空間である。
図6において、601は転送を同期して行なうためのシステムクロック信号、602は転送元モジュール(バスマスタ)からバスモジュール108にアドレス/データを伝えるアドレス/データ(A/D−1)信号、603はアドレス/コマンドの有効期間を示すアドレスバリッド(ADV−N)信号、604はデータの有効期間を示すデータバリッド(DTV−N)信号、605は転送の種類等を指定するコマンド(CMD)信号、606はバスモジュール108が転送を受け付けたことを転送元モジュール(バスマスタ)に知らせるアクノリッジ(ACK−N)信号、607は転送先モジュール(スレーブ)が、自モジュール内部のバッファが満杯で、受け付け不可状態であることをバスモジュール108に知らせるバッファフル(BFL−N)信号、608はバスモジュール108から転送先モジュール(スレーブ)にアドレス/データを伝えるアドレス/データ(A/D−2)信号である。
図7において、701は転送を同期して行なうためのシステムクロック信号、702は転送元モジュール(バスマスタ)からバスモジュール108にアドレス/データを伝えるアドレス/データ(A/D−1)信号、703はアドレス/コマンドの有効期間を示すアドレスバリッド(ADV−N)信号、704はデータの有効期間を示すデータバリッド(DTV−N)信号、705は転送の種類等を指定するコマンド(CMD)信号、706はバスモジュール108が転送を受け付けたことを転送元モジュール(バスマスタ)に知らせるアクノリッジ(ACK−N)信号、707は転送先モジュール(スレーブ)が、自モジュール内部のバッファが満杯で、受け付け不可状態であることをバスモジュール108に知らせるバッファフル(BFL−N)信号、708はバスモジュール108から転送先モジュール(スレーブ)にアドレス/データを伝えるアドレス/データ(A/D−2)信号である。
図10において、1001はモジュールAとバスモジュール108間のコマンド信号、1002はモジュールAとバスモジュール108間のバッファフル信号、1003はモジュールAとバスモジュール108間のアクノリッジ信号、1004はモジュールAとバスモジュール108間のデータバリッド信号、1005はモジュールAとバスモジュール108間のアドレスバリッド信号、1006はモジュールAからバスモジュール108へのアドレス/データ信号、1007はバスモジュール108からモジュールAへのアドレス/データ信号、1008はモジュールBとバスモジュール108間のコマンド信号、1009はモジュールBとバスモジュール108間のバッファフル信号、1010はモジュールBとバスモジュール108間のアクノリッジ信号、1011はモジュールBとバスモジュール108間のデータバリッド信号、1012はモジュールBとバスモジュール108間のアドレスバリッド信号、1013はモジュールBからバスモジュール108へのアドレス/データ信号、1014はバスモジュール108からモジュールBへのアドレス/データ信号である。
図10において、1001はモジュールAとバスモジュール108間のコマンド信号、1002はモジュールAとバスモジュール108間のバッファフル信号、1003はモジュールAとバスモジュール108間のアクノリッジ信号、1004はモジュールAとバスモジュール108間のデータバリッド信号、1005はモジュールAとバスモジュール108間のアドレスバリッド信号、1006はモジュールAからバスモジュール108へのアドレス/データ信号、1007はバスモジュール108からモジュールAへのアドレス/データ信号、1008はモジュールBとバスモジュール108間のコマンド信号、1009はモジュールBとバスモジュール108間のバッファフル信号、1010はモジュールBとバスモジュール108間のアクノリッジ信号、1011はモジュールBとバスモジュール108間のデータバリッド信号、1012はモジュールBとバスモジュール108間のアドレスバリッド信号、1013はモジュールBからバスモジュール108へのアドレス/データ信号、1014はバスモジュール108からモジュールBへのアドレス/データ信号である。
まず、システム構成から説明する。図1は、本発明のオンチップバスを採用したシステムLSI用いた情報処理装置のプロック図で、システムバス109上に本発明のオンチップバスを採用したシステムLSI(周辺機能モジュールを内蔵したプロセッサ)、主記憶装置102、ROM 103、通信モジュール105が接続され、さらにバスアダプタ104を介したI/Oバス110上には複数の入出力装置106,107が接続されている。システムLSI内のCPUモジュール、DRAMモジュール、グラフィックスモジュールなどの各モジュールは、共通インタフェース部(117から116など)を有し、全てオンチップバス108へ接続されている。システムLSI101の内部構成を示すブロック図が図2である。
本実施例におけるシステムLSI内部のオンチップバスは、複数のセレクタからなるクロスバースイッチ構成になっており、さらに内部には、バスに接続される各モジュールがデータ等を転送中、共通に使用できる転送バッファを設けてある。ここでは、これら(制御部210も含む)を総称してバスモジュール108と呼ぶ。ここで、クロスバースイッチは、1以上の入力に対して1つの出力を選択する機能を有する。バスモジュールには、クロスバースイッチの転送経路、および転送タイミングを制御するクロスバースイッチ制御部210が含まれる。バスモジュール108の内部のデータの流れを示したものが図3である。
また、本発明のバスはクロスバースイッチ構成であるため、図5のようにあらかじめ各モジュールのアドレス空間が割付けられている。ここで、図3において、モジュールA(201)がモジュールC(203)に対し、バーストライト(4データサイクル)転送を実行する場合を考える。モジュールAは、図6のタイミングチャートに示すように、モジュールCに割付けられたアドレスとバーストライト転送を指定するコマンドをバス上に出力する(A/D−1は図3のデータ出力線311に該当し、タイミングは図6の602)(1102)。ここで、アドレス/コマンドサイクルであることをアドレスバリッド(ADV−N)信号603で指定する。バスモジュール108経由で、バス信号線(図10の1008、1011、1012、1013)を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ(ACK−N)606を、バスモジュール108を介してモジュールAに送信する(1103)。
同時に、モジュールCは、自モジュール内部の転送受け付けバッファの空き状態をバッファフル(BFL−N)信号607を用いてモジュールAに知らせる(1104)。図6は、モジュールC内部のバッファに空きがあり、転送受付け可能状態である場合を示す。この場合、図3内のクロスバースイッチ制御部108は、セレクタ324、322、327を制御し、データ出力線311、バスモジュール内の転送経路に設けられた転送用バッファ302を介さないバイパス線320、データ入力線316を経由してデータを転送するように制御する(1105)。
一方、モジュールCにおいて、自モジュール内部のバッファに空きがなく、受け付け不可状態である場合のタイミングチャートを図7に示す。バス信号線(図10の1008、1011、1012、1013)を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ(ACK−N)706を、バスモジュール108を介してモジュールAに送信すると同時に、自モジュール内部の転送受け付けバッファが受付け不可状態にあることを、バッファフル(BFL−N)信号707を用いてモジュールAに知らせる(1106)。
そしてこの場合は、図3内のクロスバースイッチ制御部210は、セレクタ324、322、327を制御し、データ出力線311、バスモジュール内の転送経路に設けられた転送用バッファ302、データ入力線316を経由してデータを転送するように制御する。ここで、転送用バッファ302にはアドレス/データ信号(A/D−1)702のタイミングでデータが書き込まれる。そして、モジュールCに対しては、バッファフル(BFL−N)信号707がネゲートされるのを待って(1107)、アドレス/データ信号(A/D−2)708のタイミングで、バスモジュール108により、データの書き込みが行なわれる(1108)。これらの一連の動作をフローチャートにしたものが図11である。
ここで、上記で説明した共通に使用できる転送用バッファを有する場合と転送用バッファを持たない場合の転送制御例と比較してみる。図4に転送バッファを持たない場合バス構成を示す。ここで、図4は、クロスバースイッチを用いたバス構成を、オンチップで実現したシステムLSIのバスモジュール108の内部データの流れを示したものである。
図4において、モジュールAがモジュールCにバーストライト(4データサイクル)する場合を考える。モジュールAは、図8のタイミングチャートに示すように、モジュールCのアドレスとバーストライトを指定するコマンドを出力する。ここで、アドレス/コマンドサイクルであることをアドレスバリッド(ADV−N)信号803で指定する。バスモジュール108からのバス制御信号を介してバーストライトアクセス要求を受取ったモジュールCは、その受領報告であるアクノリッジ(ACK−N)806を、バスモジュール108を介してモジュールAに送信する。
図8では、自モジュール内部のバッファに空きがあり、受け付け可能状態である場合を示す。この場合、図4内のクロスバースイッチ制御部210は、セレクタを制御し(例:405、411経由)、データ出力線311、データ入力線316を介してデータ転送できるように経路制御を行なう。一方、モジュールCにおいて、自モジュール内部のバッファに空きがなく、受け付け不可状態である場合を図9に示す。
モジュールAは、図9のタイミングチャートに示すようにモジュールCのアドレスとバーストライトを指定するコマンドを出力する(1202,1203)。ここで、アドレス/コマンドサイクルであることをアドレスバリッド(ADV−N)信号903で指定する。バスモジュール108からのバス制御信号を介してバーストライトアクセス要求を受取ったモジュールCは、自モジュール内部のバッファに空きがなく、受け付け不可状態であることをリトライ要求信号(RTY−N)907を用いてモジュールAに通知する(1204)。リトライ要求により転送を拒絶されたモジュールAは、一定期間後に、再度転送起動をかける(1206)。
モジュールC側のバッファに空きができ、受領報告であるアクノリッジ(ACK−N)応答906があった時点で、図4内のクロスバースイッチ制御部210は、セレクタ405、411を制御し(例:405、411経由)、データ出力線311、データ入力線316を介してデータを転送するようにバス制御を行い、モジュールCへのデータ転送を実行する(1205)。これら一連の制御をフローチャートに示すと図12のようになる。
モジュールC側のバッファに空きができ、受領報告であるアクノリッジ(ACK−N)応答906があった時点で、図4内のクロスバースイッチ制御部210は、セレクタ405、411を制御し(例:405、411経由)、データ出力線311、データ入力線316を介してデータを転送するようにバス制御を行い、モジュールCへのデータ転送を実行する(1205)。これら一連の制御をフローチャートに示すと図12のようになる。
プリント基板上に実装してある従来バスの場合、バスライン自体は、基板上の配線でしかない。そのため、バス上に本方式のようなバッファを設けることは、すなわち、LSI部品の追加を意味する。このため、通常、本発明のようなバッファを設ける場合は、バスに接続される全モジュールのバスインタフェース部(受信側)にバッファを内蔵することになる。結果的に、従来の基板上バスのケースでは、モジュールのゲート数が増大するという問題が生じることになる。
これに対して、本発明のように、バス線の配線部をバスモジュール108とし、この中に共用できるバッファを設ければ、不必要なバッファの追加を防ぐことができる。これは、全モジュールが同時に転送しているケースはまれで、通常は、バス使用率に見合ったバッファ(例えば、使用率が50%なら全モジュールがバッファを持った場合の半分のバッファ容量)を内蔵すればよいからである。
本実施例では、バスの構成がクロスバースイッチであるものを示したが、共通の母線を時分割で使用する通常のバスの形態であってもいっこうに差し支えない。
本発明によれば、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合であっても、バスマスタは、LSI上のオンチップバス上に設けられた転送バッファにデータを転送することができるようになる。このため、転送元であるバスマスタは、スレーブ内部のバッファが空き状態にかかわらず、転送を待つ必要がなくなり、システムトータルの処理性能が向上するという効果がある。
さらに、本発明は、LSI周波数の向上にも効果がある。近年、LSIプロセスの微細化が進み、配線容量の増大により、ゲート遅延より配線遅延が問題になりつつある。そのため、チップの角で且つ、対角に配置されたモジュール間の転送が、チップ全体のクリティカルパスになる可能性が大きい。(この場合、配線長がチップ1辺の長さの約2倍になるからである。)
そこで、バスモジュール108をチップの中央に実装することにより、内蔵されたバッファで一旦中継することは、配線長を約2分の1にでき、クリティカルパスの対策として本方式を活かすこともできる。すなわち、周波数向上の観点からも有効であるということになる。
また、プリント基板上に実装された従来バスに比べ、本発明のように、オンチップバス上に共有バッファを設けることにより、配線長を短かくできるので配線遅延を低減できる。
また、図1の情報処理装置内部の構成要素は、その応用製品によって異なる。典型的な例としては、ケーブルTVや衛星放送用のSTB(セットトップボックス)、小型携帯端末、インターネット専用端末などが挙げられる。STBでは、システムLSI101に内蔵されるモジュールとして、DRAM、DMA(ダイレクトメモリアクセス)コントローラや基本I/Oの他に、MPEGデコーダ、TV出力機構が考えられる。システムバス109上には、ROMや主記憶装置の他に、通信用モジュールとして、ケーブルモデムもしくは衛星チューナが必要になる。
また、I/Oバス110上には、オプションとして、プリンタインタフェース、ハードディスク装置などが考えられる。一方、小型携帯端末としては、システムLSI101に内蔵されるモジュールとして、DRAM、DMA(ダイレクトメモリアクセス)コントローラ、基本I/Oの他に、アクセラレータ付きLCD(液晶)コントローラが考えられる。システムバス109上には、ROMや主記憶装置の他に、モデム、PCカードインタフェース、FD(フレキシブルディスクインタフェース)などが考えられ、小型化のため、場合によっては、I/Oバス110を設けないことも考えられる。
インターネット専用端末としては、システムLSI101に内蔵されるモジュールとして、DRAM、DMA(ダイレクトメモリアクセス)コントローラ、基本I/Oの他に、アクセラレータ付きグラフィックスコントローラが考えられる。システムバス109上には、ROMや主記憶装置の他に、通信モジュールとして、イーサーネット(オフィス用)もしくはモデム(家庭用)インタフェースが必要になる。また、I/Oバス110上には、プリンタ用インタフェース、ハードディスク装置などが考えられる。
なお、本発明はプリント基盤上に共有バッファを設けた場合も考えられる。
図13は本発明の1実施例の内部バス階層構造を示したブロック図、図14は図13におけるバスリピータの内部構造を示したブロック図である。図13において、1301は図1におけるオンチップバス108を2つに分離するためのバスリピータ、1302はバスリピータにより2つに分離されたオンチップバスのうちで、CPUモジュールと外部バスインタフェースが接続された側のオンチップバス、1303はバスリピータにより2つに分離されたオンチップバスのうちで、CPUモジュールと外部バスインタフェースが接続されていない側のオンチップバス、1304はオンチップバス1303とオンチップの低速I/Oバスを接続するためのバスアダプタ、1305はオンチップの低速I/Oバス、1306,1307は低速I/Oである。図14において、1401はオンチップバス1302インタフェース、1402はオンチップバス1303インタフェース、1403は転送バッファ部、1404はオンチップバス1302側からの転送受信制御部、1405はオンチップバス1302側への転送送信制御部、1406はオンチップバス1303側への転送送信制御部、1407はオンチップバス1303側からの転送受信制御部、1408はオンチップバス1302から1303への転送時の転送用バッファ(アドレス、データ、転送制御情報を含む)、1409はオンチップバス1303から1302への転送時の転送用バッファ(アドレス、データ、転送制御情報を含む)、1410はオンチップバス1302からバスリピータ1301への入力線、1411はバスリピータ1301からオンチップバス1302への出力線、1412は、オンチップバス1303からバスリピータ1301への入力線、1413はバスリピータ1301からオンチップバス1303への出力線である。
ここで、本システムLSIの動作周波数をさらに向上させる方式を考える。LSIの動作周波数向上を阻む大きな要因としてバス上に接続されるモジュールの個数がある。バス上に接続されるモジュール数が少ないほど、配線遅延の短縮や、クロスバースイッチ論理規模の小型化が図れ、結果として、動作周波数を向上することができる。そこで、オンチップバスを、バスリピータを用いて2つ以上に分離し、局所的に周波数を向上させることを考える。例えば、8モジュールが繋がって100MHzで動作しているオンチップバスを、バスリピータを用いて2モジュールと6モジュールに分離する。これによって、2モジュール側のオンチップバスはバスリピータを含めると実際3モジュール、6モジュール側のオンチップバスは7モジュールの負荷がかかっていることになる。このため、6モジュール側のオンチップバスはあまり条件が変わらないが、2モジュール側のオンチップバスはモジュール負荷の減った分、周波数を向上することができるようになる。ここで、当然、2モジュール側のオンチップバスから6モジュール側のオンチップバスにデータ転送を行なう場合、1転送当りのオーバヘッドが増加し、レイテンシが大きくなるという問題がある。そのため、モジュールの振り分けには十分注意を払う必要がある。図13では、バスリピータを用いて、メインのオンチップバスを2つに分離している(オンチップバス1302と1303)。そして、オンチップバス1302側には、CPUモジュール111と外部バスインタフェース115のみを接続する。一方、その他の機能モジュールはオンチップバス1303側に接続する。ここで、オンチップバス1302にはバスリピータを含めて、3モジュールしか接続されていないため、オンチップバス分離前に比べて周波数を向上させることができる。すなわち、CPUと外部メモリの間の転送が高速化され、システムの処理性能が向上する。一方、CPUや外部メモリとオンチップバス1303上のモジュール間の転送レイテンシが大きくなるという問題があるが、周辺機能モジュールへの転送要求性能は、CPUと主記憶間の転送要求性能に比べて低い場合が多く、また、CPUと主記憶間の転送比率が高いシステムが多いことを考えると、システムトータル性能を向上できる場合が多い。通常は、バスリピータにおける同期化のロスを小さくするため、オンチップバス1302と1303との周波数比を1:1、2:1、4:1など整数比にしておくとよい。また、さらに性能の低いI/Oのためには、低速I/Oバス1305などを用意して、バスアダプタで接続してもよい。また、バスリピータの内部構造を示したものが図14である。
本発明によれば、たとえ、転送先であるスレーブモジュール内のバッファが満杯で、これ以上転送を受取れない状態である場合であっても、バスマスタは、LSI上のオンチップバス上に設けられた転送バッファにデータを転送することができるようになる。このため、一回の情報転送でバスを独占する時間を減少させることができ、効率良くバスを使用することができる。また、転送元であるバスマスタは、スレーブ内部のバッファが空き状態にもかかわらず、バスが使用されているために転送を待つという必要がなくなり、システムトータルの処理性能が向上するという効果がある。
本発明のさらなる効果として、オンチップバスをバスリピータを用いて2つ以上に分離し、局所的に周波数を向上させることで、システムトータル性能を向上することができるという効果がある。
Claims (2)
- 複数の機能モジュールを搭載した集積回路であって、
前記複数の機能モジュール間を結ぶ、少なくとも2つのオンチップバスを有し、
該第1のバスと、該第2のバスとが同一のプロトコルによって1つのバスアダプタにより接続されている集積回路において、
第1のバスに接続される機能モジュールが、CPUモジュールと、外部メモリインタフェースモジュールと、前記バスアダプタの3つのみから構成され、
前記バスアダプタ内の共通の転送経路上に、第1のバスと第2のバスとの間で転送される転送情報を格納する共有バッファを設けた半導体の集積回路。 - 請求項1の集積回路において、
第1のバスの動作周波数が、第2のバスの動作周波数の整数倍である半導体の集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008024000A JP2008159075A (ja) | 1999-02-23 | 2008-02-04 | 集積回路及びそれを用いた情報処理装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4413399 | 1999-02-23 | ||
JP2008024000A JP2008159075A (ja) | 1999-02-23 | 2008-02-04 | 集積回路及びそれを用いた情報処理装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000601536A Division JP4630462B2 (ja) | 1999-02-23 | 2000-02-14 | 集積回路及びそれを用いた情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008159075A true JP2008159075A (ja) | 2008-07-10 |
Family
ID=12683141
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000601536A Expired - Fee Related JP4630462B2 (ja) | 1999-02-23 | 2000-02-14 | 集積回路及びそれを用いた情報処理装置 |
JP2008024000A Pending JP2008159075A (ja) | 1999-02-23 | 2008-02-04 | 集積回路及びそれを用いた情報処理装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000601536A Expired - Fee Related JP4630462B2 (ja) | 1999-02-23 | 2000-02-14 | 集積回路及びそれを用いた情報処理装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6931472B1 (ja) |
JP (2) | JP4630462B2 (ja) |
KR (1) | KR100546546B1 (ja) |
CN (1) | CN1196065C (ja) |
MY (1) | MY127415A (ja) |
TW (1) | TW455778B (ja) |
WO (1) | WO2000051005A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085859B2 (en) * | 2003-05-14 | 2006-08-01 | International Business Machines Corporation | Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected |
WO2005010768A1 (en) * | 2003-07-30 | 2005-02-03 | Koninklijke Philips Electronics N.V. | Integrated circuit with dynamic communication service selection |
JP4547198B2 (ja) * | 2004-06-30 | 2010-09-22 | 富士通株式会社 | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 |
US7370127B2 (en) * | 2005-06-10 | 2008-05-06 | Broadlight Ltd | High-speed internal bus architecture for an integrated circuit |
US7424566B2 (en) * | 2005-11-16 | 2008-09-09 | Sun Microsystems, Inc. | Method, system, and apparatus for dynamic buffer space allocation |
US7424567B2 (en) * | 2005-11-16 | 2008-09-09 | Sun Microsystems, Inc. | Method, system, and apparatus for a dynamic retry buffer that holds a packet for transmission |
US7424565B2 (en) * | 2005-11-16 | 2008-09-09 | Sun Microsystems, Inc. | Method and apparatus for providing efficient output buffering and bus speed matching |
US8719485B2 (en) * | 2008-06-27 | 2014-05-06 | Marvell World Trade Ltd. | Solid-state disk with wireless functionality |
JP5287975B2 (ja) * | 2009-03-09 | 2013-09-11 | 富士通株式会社 | 情報処理装置 |
US11436166B2 (en) * | 2019-02-05 | 2022-09-06 | Arm Limited | Data processing systems |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56103725A (en) * | 1980-01-19 | 1981-08-19 | Meidensha Electric Mfg Co Ltd | Controlling method of bus |
JPS6386057A (ja) * | 1986-09-30 | 1988-04-16 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
JPH0850568A (ja) * | 1994-05-20 | 1996-02-20 | Advanced Micro Devicds Inc | コンピュータシステムおよびバスインタフェース装置を動作する方法 |
JPH0883236A (ja) * | 1994-05-20 | 1996-03-26 | Advanced Micro Devicds Inc | コンピュータシステムおよびバスインタフェース装置を動作する方法 |
JPH096713A (ja) * | 1995-06-16 | 1997-01-10 | Advanced Micro Devicds Inc | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
JPH09218846A (ja) * | 1996-02-08 | 1997-08-19 | Mitsubishi Electric Corp | バス変換装置 |
JPH10340249A (ja) * | 1997-06-06 | 1998-12-22 | Nec Corp | 同期バス周波数変換装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6146550A (ja) * | 1984-08-11 | 1986-03-06 | Fujitsu Ltd | バス間結合装置 |
JPS6347844A (ja) * | 1986-08-15 | 1988-02-29 | Nec Corp | 情報処理装置 |
JPH01147755A (ja) * | 1987-12-04 | 1989-06-09 | Nec Corp | メモリアクセス制御装置 |
US5309561A (en) | 1990-09-28 | 1994-05-03 | Tandem Computers Incorporated | Synchronous processor unit with interconnected, separately clocked processor sections which are automatically synchronized for data transfer operations |
DE69130723T2 (de) * | 1990-10-05 | 1999-07-22 | Koninkl Philips Electronics Nv | Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten |
JP2974439B2 (ja) * | 1991-04-12 | 1999-11-10 | 株式会社日立製作所 | 情報処理システム |
JPH04369065A (ja) * | 1991-06-18 | 1992-12-21 | Mitsubishi Electric Corp | ダイレクトメモリアクセスコントローラ |
EP0602916A3 (en) * | 1992-12-14 | 1994-08-10 | Hewlett Packard Co | Cross-bar interconnect apparatus. |
JPH08185371A (ja) | 1994-12-27 | 1996-07-16 | Nkk Corp | バス調停装置 |
US5968155A (en) * | 1995-08-23 | 1999-10-19 | Sun Microsystems, Inc. | Digital gate computer bus |
US5754865A (en) * | 1995-12-18 | 1998-05-19 | International Business Machines Corporation | Logical address bus architecture for multiple processor systems |
US5761516A (en) | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
JPH1078934A (ja) * | 1996-07-01 | 1998-03-24 | Sun Microsyst Inc | パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム |
JP3062441B2 (ja) | 1996-08-14 | 2000-07-10 | 富士電機株式会社 | 情報処理システム間のデータ交信制御装置 |
US6018782A (en) * | 1997-07-14 | 2000-01-25 | Advanced Micro Devices, Inc. | Flexible buffering scheme for inter-module on-chip communications |
US6275975B1 (en) * | 1997-01-16 | 2001-08-14 | Advanced Micro Devices, Inc. | Scalable mesh architecture with reconfigurable paths for an on-chip data transfer network incorporating a network configuration manager |
US6597692B1 (en) * | 1999-04-21 | 2003-07-22 | Hewlett-Packard Development, L.P. | Scalable, re-configurable crossbar switch architecture for multi-processor system interconnection networks |
US6353867B1 (en) * | 2000-01-14 | 2002-03-05 | Insilicon Corporation | Virtual component on-chip interface |
US6601126B1 (en) * | 2000-01-20 | 2003-07-29 | Palmchip Corporation | Chip-core framework for systems-on-a-chip |
-
2000
- 2000-02-14 WO PCT/JP2000/000793 patent/WO2000051005A1/ja not_active Application Discontinuation
- 2000-02-14 CN CNB008012482A patent/CN1196065C/zh not_active Expired - Fee Related
- 2000-02-14 US US09/763,438 patent/US6931472B1/en not_active Expired - Fee Related
- 2000-02-14 JP JP2000601536A patent/JP4630462B2/ja not_active Expired - Fee Related
- 2000-02-14 KR KR1020017002497A patent/KR100546546B1/ko not_active IP Right Cessation
- 2000-02-21 TW TW089102981A patent/TW455778B/zh not_active IP Right Cessation
- 2000-02-22 MY MYPI20000643A patent/MY127415A/en unknown
-
2008
- 2008-02-04 JP JP2008024000A patent/JP2008159075A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56103725A (en) * | 1980-01-19 | 1981-08-19 | Meidensha Electric Mfg Co Ltd | Controlling method of bus |
JPS6386057A (ja) * | 1986-09-30 | 1988-04-16 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
JPH0850568A (ja) * | 1994-05-20 | 1996-02-20 | Advanced Micro Devicds Inc | コンピュータシステムおよびバスインタフェース装置を動作する方法 |
JPH0883236A (ja) * | 1994-05-20 | 1996-03-26 | Advanced Micro Devicds Inc | コンピュータシステムおよびバスインタフェース装置を動作する方法 |
JPH096713A (ja) * | 1995-06-16 | 1997-01-10 | Advanced Micro Devicds Inc | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
JPH09218846A (ja) * | 1996-02-08 | 1997-08-19 | Mitsubishi Electric Corp | バス変換装置 |
JPH10340249A (ja) * | 1997-06-06 | 1998-12-22 | Nec Corp | 同期バス周波数変換装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4630462B2 (ja) | 2011-02-09 |
KR20010085681A (ko) | 2001-09-07 |
US6931472B1 (en) | 2005-08-16 |
KR100546546B1 (ko) | 2006-01-26 |
CN1322318A (zh) | 2001-11-14 |
MY127415A (en) | 2006-11-30 |
WO2000051005A1 (fr) | 2000-08-31 |
TW455778B (en) | 2001-09-21 |
CN1196065C (zh) | 2005-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008159075A (ja) | 集積回路及びそれを用いた情報処理装置 | |
US6742063B1 (en) | Method and apparatus for efficient transfer of data packets | |
US6151651A (en) | Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system | |
US8019951B2 (en) | Memory controller including multiple system bus interfaces | |
TWI434182B (zh) | 外部記憶體快進快出裝置 | |
US10423558B1 (en) | Systems and methods for controlling data on a bus using latency | |
US7818546B2 (en) | Pipeline processing communicating adjacent stages and controls to prevent the address information from being overwritten | |
JP2007316859A (ja) | マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法 | |
KR101699784B1 (ko) | 버스 시스템 및 그것의 동작 방법 | |
US6425071B1 (en) | Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus | |
JP2004517413A (ja) | 異なるリソースアクセス方式を有するシステム統合エージェント | |
US20100274946A1 (en) | Integrated circuit and information processing device | |
US7020733B2 (en) | Data bus system and method for performing cross-access between buses | |
JPH10143466A (ja) | バス通信システム | |
JP2004326180A (ja) | 集積回路、それを用いた画像入出力装置及び画像入出力方法 | |
JP3698324B2 (ja) | 直接メモリアクセス制御器およびデータチャンネルへのインターフェース装置を備えたワークステーション | |
US6378017B1 (en) | Processor interconnection | |
JP3639651B2 (ja) | 少なくとも2台のプロセッサからなる情報処理装置 | |
JP3327900B2 (ja) | データ処理装置 | |
JP2002024007A (ja) | プロセッサシステム | |
US20240004816A1 (en) | Interface method for transmitting and recieving data between functional blocks in system on chip, and system on chip using same | |
KR20040032732A (ko) | 데이터 버스 시스템 및 버스간 크로스 액세스 방법 | |
KR100587971B1 (ko) | 다층 버스 제어 장치 | |
JP2002342265A (ja) | 多重バスを用いたコンピュータシステム | |
JPH052557A (ja) | データ転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100316 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100601 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100803 |