(57)【特許請求の範囲】
【請求項１】
ＣＰＵ、メモリ、外部入出力回路及び内部機能ブロックのうち少なくともいずれか１つが接続されたマスタバスと、それぞれ１つまたは複数の内部機能ブロックが接続された複数のスレーブバスと、該マスタバス及び該スレーブバスの間を接続及び遮断する複数の第１接続手段と、インタコネクトバスと、該インタコネクトバス及び該複数のスレーブバスの間を接続及び遮断する複数の第２接続手段と、該内部機能ブロックのそれぞれの出力と該スレーブバスとの間を接続または遮断する複数の第３接続手段と、該第１接続手段、該第２接続手段、及び該第３接続手段の動作を制御する制御手段と、を備え、
前記制御手段は、
前記複数のスレーブバスのいずれか１つに接続された内部機能ブロックと、前記マスタバスに接続されたＣＰＵ、メモリ、外部入出力回路または内部機能ブロックのいずれかと、の間でデータ転送を行う場合、該スレーブバス及び前記マスタバスの間の前記第１接続手段のみを接続状態にするとともに、該データ転送を行うスレーブバス及び前記インタコネクトバスの間の前記第２接続手段を遮断状態にし、さらに、前記スレーブバスに接続された内部機能ブロックからデータを転送する場合には、その内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にし、
前記複数のスレーブバスのいずれか１つに接続された内部機能ブロックと、別のスレーブバスに接続された内部機能ブロックと、の間でデータ転送を行う場合、該２つのスレーブバス及び前記インタコネクトバスの間の前記第２接続手段のみを接続状態にするとともに、該データ転送を行うスレーブバス及び前記マスタバスの間の第１接続手段を遮断状態にし、また、データを出力する該内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にし、
前記マスタバス内でデータ転送を行う場合、前記第１接続手段を全て遮断状態にし、
前記複数のスレーブバスのうち、１つのスレーブバス内でデータ転送を行う場合、該スレーブバス及び前記マスタバスの間の前記第１接続手段、並びに該スレーブバス及び前記インタコネクトバスの間の前記第２接続手段を遮断状態にするとともに、データを出力する該内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にすることを特徴とするバス構造。
【請求項２】
前記第１接続手段は、前記マスタバスから前記スレーブバスへのデータ転送と、前記スレーブバスから前記マスタバスへのデータ転送と、を切替可能であり、
前記第２接続手段は、前記スレーブバスから前記インタコネクトバスへのデータ転送と、前記インタコネクトバスから前記スレーブバスへのデータ転送と、を切替可能であることを特徴とする請求項１に記載のバス構造。
【請求項３】
請求項１または２に記載のバス構造を備えたことを特徴とする半導体集積回路。
【請求項４】
請求項１または２に記載のバス構造、または請求項３に記載の半導体集積回路を備えたことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速に動作し、かつ消費電力を低減することが可能で、ＬＳＩなどの半導体集積回路やコンピュータなどの電子機器に適用可能なバス構造に関するものである。
【０００２】
【従来の技術】
消費電力を低減可能で、データ転送の高速化を実現できる従来のバス構造として、特開平１１−７３２５８号公報に低消費電力バス構造及びその制御方法、低消費電力バス構造の合成システム及びその合成方法、携帯情報機器に関する技術が開示されている。図８は、複数の機能ブロックを接続した従来のバス構造を示したブロック図である。なお、上記公報の図１に示されたバス構造は、１つのバスを複数のサブセクションに分割し、サブセクション間に接続手段を設けた構成であるが、図８では、この構成を変形して、マスタバスに対して複数のスレーブバスを枝状に接続し、双方の間に第１接続手段を設けた構成を図示している。
【０００３】
従来のバス構造８１は、マスタバス１１に対して複数のスレーブバスが枝状に接続された構造であり、図８には一例として、スレーブバス１２〜１４がそれぞれマスタバス１１に接続された構成を示している。マスタバス１１とスレーブバス１２〜１４との間には、それぞれ第１接続手段である一次接続回路２１〜２３を備えている。すなわち、マスタバス１１及びスレーブバス１２は一次接続回路２１を介して、マスタバス１１及びスレーブバス１３は一次接続回路２２を介して、マスタバス１１及びスレーブバス１４は一次接続回路２３を介して、それぞれ接続されている。
【０００４】
マスタバス１１には、ＣＰＵ１、メモリ２及び外部入出力回路３が接続されている。また、スレーブバス１２には機能ブロック５１，５２が、スレーブバス１３には機能ブロック５３，５４が、スレーブバス１４には機能ブロック５５，５６が、それぞれ接続されている。外部入出力回路３は、図外の外部機器と接続可能である。
【０００５】
各スレーブバス１２〜１４と各機能ブロック５１〜５６とは、それぞれ機能ブロック接続手段である入力用バッファ４１ａ〜４１ｆ、及び出力用バッファ４２ａ〜４２ｆを介して接続されている。すなわち、スレーブバス１２と機能ブロック５１とは、入力用バッファ４１ａ及び出力用バッファ４２ａを介して接続され、機能ブロック５１には、入力用バッファ４１ａの出力端子及び出力用バッファ４２ａの入力端子が接続されている。スレーブバス１２と機能ブロック５２とは、入力用バッファ４１ｂ及び出力用バッファ４２ｂを介して接続され、機能ブロック５２には、入力用バッファ４１ｂの出力端子及び出力用バッファ４２ｂの入力端子が接続されている。スレーブバス１３と機能ブロック５３とは、入力用バッファ４１ｃ及び出力用バッファ４２ｃを介して接続され、機能ブロック５３には、入力用バッファ４１ｃの出力端子及び出力用バッファ４２ｃの入力端子が接続されている。スレーブバス１３と機能ブロック５４とは、入力用バッファ４１ｄ及び出力用バッファ４２ｄを介して接続され、機能ブロック５４には、入力用バッファ４１ｄの出力端子及び出力用バッファ４２ｄの入力端子が接続されている。スレーブバス１４と機能ブロック５５とは、入力用バッファ４１ｅ及び出力用バッファ４２ｅを介して接続され、機能ブロック５５には、入力用バッファ４１ｅの出力端子及び出力用バッファ４２ｅの入力端子が接続されている。スレーブバス１４と機能ブロック５６とは、入力用バッファ４１ｆ及び出力用バッファ４２ｆを介して接続され、機能ブロック５６には、入力用バッファ４１ｆの出力端子及び出力用バッファ４２ｆの入力端子が接続されている。
【０００６】
一次接続回路２１〜２３は、調停回路１０から制御線２０１〜２０３を介して送信された制御信号に応じて、マスタバス１１とスレーブバス１２〜１４との間を接続・遮断する。また、マスタバス１１からスレーブバス１２〜１４へデータ転送を行う際、または、スレーブバス１２〜１４からマスタバス１１へデータ転送を行う際に、データ転送方向をいずれか一方向に切り替えることができる。
【０００７】
制御線１０１〜１０６は、各機能ブロック５１〜５６が各バスをドライブすることを可能にするための制御信号を送るためのものである。制御線１０１〜１０６はそれぞれ出力用バッファ４２ａ〜４２ｆの制御端子に接続されている。例えば、出力用バッファ４２ａの制御端子に入力された制御信号がオンになると、機能ブロック５１の出力信号をスレーブバス１２に出力する。また、他の出力バッファ４２ｂ〜４２ｆにおいても、制御信号がオンになると同様の動作を行う。
【０００８】
制御手段である調停回路１０は、制御線１０１〜１０６を介して出力バッファ４２ａ〜４２ｆに接続され、制御線２０１〜２０３を介して一次接続回路２１〜２３に接続されている。また、調停回路１０は、出力バッファ４２ａ〜４２ｆと、一次接続回路２１〜２３と、の動作を制御可能である。さらに、調停回路１０は、複数のスレーブバス１２〜１４が同時にマスタバス１１に接続しないように、各一次接続回路２１〜２３の動作を制御する。
【０００９】
例えば、機能ブロック５１が出力したデータをＣＰＵ１に転送する際には、調停回路１０は制御線１０１及び制御線２０１を介して制御信号を送信して、出力バッファ４２ａをオン状態にするとともに、一次接続回路２１をスレーブバス１２からマスタバス１１へデータ転送が可能な設定に切り替えて、機能ブロック５１からＣＰＵ１へデータを転送する。この時、上記以外の一次接続回路及び出力バッファは全てオフにし、他機能ブロックとのデータ転送を行わないように制御する。
【００１０】
また、機能ブロック５１から機能ブロック５３へデータを転送するためには、まず調停回路１０は制御線１０１，２０１から制御信号を送信して、出力バッファ４２ａをオン状態にするとともに、一次接続回路２１をスレーブバス１２からマスタバス１１へデータ転送可能な設定に切り替えて、機能ブロック５１からスレーブバス１２を介してマスタバス１１へデータを転送する。この後、マスタバス１１上の信号値が安定するだけの十分な時間をおいて、調停回路１０は制御線２０１，２０２から制御信号を送信して、接続回路２１と接続回路２２とを切り替えて、同様の手順にてマスタバス１１とスレーブバス１３とを接続し、データをスレーブバス１３に転送し、機能ブロック５３に入力する。
【００１１】
【発明が解決しようとする課題】
従来のバス構造では、ＣＰＵ１やメモリ２のような大規模ブロックを接続しており、これらの大規模ブロックを取り巻くためにバスの配線長が長くなり、バス上の全ての寄生容量を充放電するため、消費電力が増大するという問題がある。また、マスタバス１１は、ＣＰＵ１やメモリ２のようなアクセス頻度の高いブロックを接続しているため、充放電の頻度も高くなり、さらに消費電力が増大する。
【００１２】
さらに、バス構造８１では、ＣＰＵ１やメモリ２が動作している間や、割り込み処理が発生した場合には、必ずＣＰＵ１を動作させる。そのために、ＣＰＵ１がマスタバス１１を占有するので、マスタバス１１は高速動作可能であるが、スレーブバス間のデータ転送が待たされるという問題がある。加えて、スレーブバス間でデータを転送するためには、必ずマスタバス１１を経由する必要がある。よって、スレーブバス間でデータ転送している間は、マスタバスに接続されたデバイス間でのデータ転送が待たされるという問題がある。
【００１３】
また、配線長増加に伴う寄生容量増加のために転送遅延量が増大し、回路全体のスループットが低下するという問題がある。高速処理が求められる近年の電子回路では、データの転送速度が回路全体の性能を左右するため、データ転送の高速化は非常に重要な課題である。
【００１４】
そこで、本発明は上記の問題を解決するために、高速動作かつ消費電力を低減することが可能で、ＬＳＩなどの半導体集積回路やコンピュータなどの電子機器に適用可能なバス構造を提供することを目的とする。
【００１５】
【課題を解決するための手段】
この発明は、上記の課題を解決するための手段として、以下の構成を備えている。
【００２４】
(1) ＣＰＵ、メモリ、外部入出力回路及び内部機能ブロックのうち少なくともいずれか１つが接続されたマスタバスと、それぞれ１つまたは複数の内部機能ブロックが接続された複数のスレーブバスと、該マスタバス及び該スレーブバスの間を接続及び遮断する複数の第１接続手段と、インタコネクトバスと、該インタコネクトバス及び該複数のスレーブバスの間を接続及び遮断する複数の第２接続手段と、該内部機能ブロックのそれぞれの出力と該スレーブバスとの間を接続または遮断する複数の第３接続手段と、該第１接続手段、該第２接続手段、及び該第３接続手段の動作を制御する制御手段と、を備え、
前記制御手段は、
前記複数のスレーブバスのいずれか１つに接続された内部機能ブロックと、前記マスタバスに接続されたＣＰＵ、メモリ、外部入出力回路または内部機能ブロックのいずれかと、の間でデータ転送を行う場合、該スレーブバス及び前記マスタバスの間の前記第１接続手段のみを接続状態にするとともに、該データ転送を行うスレーブバス及び前記インタコネクトバスの間の前記第２接続手段を遮断状態にし、さらに、前記スレーブバスに接続された内部機能ブロックからデータを転送する場合には、その内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にし、
前記複数のスレーブバスのいずれか１つに接続された内部機能ブロックと、別のスレーブバスに接続された内部機能ブロックと、の間でデータ転送を行う場合、該２つのスレーブバス及び前記インタコネクトバスの間の前記第２接続手段のみを接続状態にするとともに、該データ転送を行うスレーブバス及び前記マスタバスの間の第１接続手段を遮断状態にし、また、データを出力する該内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にし、
前記マスタバス内でデータ転送を行う場合、前記第１接続手段を全て遮断状態にし、
前記複数のスレーブバスのうち、１つのスレーブバス内でデータ転送を行う場合、該スレーブバス及び前記マスタバスの間の前記第１接続手段、並びに該スレーブバス及び前記インタコネクトバスの間の前記第２接続手段を遮断状態にするとともに、データを出力する該内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にすることを特徴とする。
【００２５】
この構成においては、制御手段は、データ転送を行うバス内またはバス間以外の他のバスとの接続を遮断し、データを出力する該内部機能ブロックの出力と前記スレーブバスとの間の前記第３接続手段のみを接続状態にする。したがって、各バス間でデータを誤転送することなく、各バス間またはバス内でデータを転送する際に、確実にデータ転送を行うことが可能となる。また、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックを接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することが可能になる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、アクセス頻度の高いブロックを接続したマスタバスを占有することがない。このため、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことが可能である。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことが可能になる。
【００２６】
(2) 前記第１接続手段は、前記マスタバスから前記スレーブバスへのデータ転送と、前記スレーブバスから前記マスタバスへのデータ転送と、を切替可能であり、前記第２接続手段は、前記スレーブバスから前記インタコネクトバスへのデータ転送と、前記インタコネクトバスから前記スレーブバスへのデータ転送と、を切替可能であることを特徴とする。
【００２７】
この構成においては、マスタバスからスレーブバスへのデータ転送と、スレーブバスからマスタバスへのデータ転送と、を第１接続手段が切替可能であり、スレーブバスからインタコネクトバスへのデータ転送と、インタコネクトバスからスレーブバスへのデータ転送と、を第２接続手段が切替可能である。したがって、スレーブバスに接続された機能ブロック間や、マスタバスに接続された例えばＣＰＵとスレーブバスに接続された機能ブロック間で、確実にデータ転送を行うことが可能となる。
【００２８】
(3) (1) または(2) に記載のバス構造を備えたことを特徴とする。
【００２９】
この構成において、半導体集積回路は、(1) または(2) に記載のバス構造を備えている。したがって、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックが接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することが可能になる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、ＣＰＵやメモリなどのようなアクセス頻度の高いブロックを接続したマスタバスを占有することがない。このため、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことが可能である。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことが可能になる。
【００３０】
(4) (1) または(2) に記載のバス構造、または(3) に記載の半導体集積回路を備えたことを特徴とする。
【００３１】
この構成において、電子機器は、(1) または(2) に記載のバス構造、または(3) に記載の半導体集積回路を搭載している。したがって、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックが接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することが可能になる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、アクセス頻度の高いブロックを接続したマスタバスを占有することがない。このため、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことが可能である。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことが可能になる。
【００３４】
【発明の実施の形態】
図１は、本発明の実施形態に係るバス構造を示したブロック図である。ここで、図１において、図８に示した構成と同一部分には同一符号を付している。図１に示したバス構造７１は、図８に示したバス構造８１のスレーブバス１２〜１４の開放端にそれぞれ二次接続回路３１〜３３の一端を接続し、二次接続回路３１〜３３の他端のそれぞれにインタコネクトバス１５を接続し、調停回路１０で二次接続回路３１〜３３の接続・遮断動作を制御可能にした構成である。
【００３５】
以下、バス構造７１について詳細に説明する。バス構造７１は、マスタバス１１に対して複数のスレーブバスが枝状に接続され、また、各スレーブバス間はインタコネクトバスで接続された構造である。図１には一例として、スレーブバス１２〜１４の一端には、それぞれマスタバス１１が接続され、スレーブバス１２〜１４の他端には、それぞれインタコネクトバス１５が接続された構成を示している。マスタバス１１とスレーブバス１２〜１４との間には、それぞれ第１接続手段である一次接続回路２１〜２３を備えている。すなわち、マスタバス１１及びスレーブバス１２は一次接続回路２１を介して、マスタバス１１及びスレーブバス１３は一次接続回路２２を介して、マスタバス１１及びスレーブバス１４は一次接続回路２３を介して、それぞれ接続されている。
【００３６】
また、インタコネクトバス１５とスレーブバス１２〜１４との間には、それぞれ第２接続手段である二次接続回路３１〜３３を備えている。すなわち、インタコネクトバス１５及びスレーブバス１２は二次接続回路３１を介して、インタコネクトバス１５及びスレーブバス１３は二次接続回路３２を介して、インタコネクトバス１５及びスレーブバス１４は二次接続回路３３を介して、それぞれ接続されている。
【００３７】
マスタバス１１には、ＣＰＵ１、メモリ２及び外部入出力回路３が接続されている。また、スレーブバス１２には機能ブロック５１，５２が、スレーブバス１３には機能ブロック５３，５４が、スレーブバス１４には機能ブロック５５，５６が、それぞれ接続されている。外部入出力回路３は、図外の外部機器と接続可能である。
【００３８】
なお、本発明のバス構成は、上記の構成に限るものではなく、マスタバス１１には、ＣＰＵ、メモリ、外部入出力回路、及び機能ブロックのうち少なくといずれか１つを接続した構成であってもよい。また、スレーブバス１２〜１４には、１つまたは複数の機能ブロックを接続した構成であってもよい。さらに、インタコネクトバス１５には、１つまたは複数の機能ブロックを接続した構成であってもよい。
【００３９】
各スレーブバス１２〜１４と各機能ブロック５１〜５６とは、それぞれ入力用バッファ４１ａ〜４１ｆ及び機能ブロック接続手段である出力用バッファ４２ａ〜４２ｆを介して接続されている。すなわち、スレーブバス１２と機能ブロック５１とは、入力用バッファ４１ａ及び出力用バッファ４２ａを介して接続され、機能ブロック５１には、入力用バッファ４１ａの出力端子及び出力用バッファ４２ａの入力端子が接続されている。スレーブバス１２と機能ブロック５２とは、入力用バッファ４１ｂ及び出力用バッファ４２ｂを介して接続され、機能ブロック５２には、入力用バッファ４１ｂの出力端子及び出力用バッファ４２ｂの入力端子が接続されている。スレーブバス１３と機能ブロック５３とは、入力用バッファ４１ｃ及び出力用バッファ４２ｃを介して接続され、機能ブロック５３には、入力用バッファ４１ｃの出力端子及び出力用バッファ４２ｃの入力端子が接続されている。スレーブバス１３と機能ブロック５４とは、入力用バッファ４１ｄ及び出力用バッファ４２ｄを介して接続され、機能ブロック５４には、入力用バッファ４１ｄの出力端子及び出力用バッファ４２ｄの入力端子が接続されている。スレーブバス１４と機能ブロック５５とは、入力用バッファ４１ｅ及び出力用バッファ４２ｅを介して接続され、機能ブロック５５には、入力用バッファ４１ｅの出力端子及び出力用バッファ４２ｅの入力端子が接続されている。スレーブバス１４と機能ブロック５６とは、入力用バッファ４１ｆ及び出力用バッファ４２ｆを介して接続され、機能ブロック５６には、入力用バッファ４１ｆの出力端子及び出力用バッファ４２ｆの入力端子が接続されている。
【００４０】
一次接続回路２１〜２３は、調停回路１０から制御線２０１〜２０３を介して送信された制御信号に応じて、マスタバス１１とスレーブバス１２〜１４との間を接続・遮断する。また、マスタバス１１からスレーブバス１２〜１４へデータ転送を行う際、または、スレーブバス１２〜１４からマスタバス１１へデータ転送を行う際に、データ転送方向をいずれか一方向に切り替えることができる。
【００４１】
二次接続回路３１〜３３は、調停回路１０から制御線３０１〜３０３を介して送信された制御信号に応じて、インタコネクトバス１５とスレーブバス１２〜１４との間を接続・遮断する。また、スレーブバス１２〜１４間、もしくはスレーブバス１２〜１４のいずれかとインタコネクトバス１５との間、でデータ転送を行う際に、スレーブバスからインタコネクトバスへのデータ転送方向と、インタコネクトバスからスレーブバスへのデータ転送方向と、のいずれか一方向に切り替えることができる。
【００４２】
制御線１０１〜１０６は、各機能ブロック５１〜５６が各バスをドライブすることを可能にするための制御信号を送るためのものである。制御線１０１〜１０６はそれぞれ出力用バッファ４２ａ〜４２ｆの制御端子に接続されている。例えば、出力用バッファ４２ａの制御端子に入力された制御信号がオンになると、機能ブロック５１の出力信号をスレーブバス１２に出力する。また、他の出力バッファ４２ｂ〜４２ｆにおいても、制御信号がオンになると同様の動作を行う。
【００４３】
制御手段である調停回路１０は、制御線１０１〜１０６を介して出力バッファ４２ａ〜４２ｆに接続され、制御線２０１〜２０３を介して一次接続回路２１〜２３に接続され、制御線３０１〜３０３を介して二次接続回路３１〜３３に接続されている。また、調停回路１０は、出力バッファ４２ａ〜４２ｆと、一次接続回路２１〜２３と、二次接続回路３１〜３３と、の動作を制御可能である。
【００４４】
調停回路１０は、データの競合を防止し、マスタバス１１の利用率を最小限に抑えるため、スレーブバス１２〜１４が同時にマスタバス１１またはインタコネクトバス１５に接続しないように、各接続回路の動作を制御する。
【００４５】
第１に、調停回路１０は、スレーブバス１２〜１４のいずれか１つ及びマスタバス１１の間でデータ転送を行う場合、データ転送を行うスレーブバス及びマスタバス１１の間の一次接続回路のみを接続状態にするとともに、データ転送を行うスレーブバス及びインタコネクトバス１５の間の二次接続回路を遮断状態にするように制御を行う。例えば、スレーブバス１２に接続した機能ブロック５１が出力したデータをマスタバス１１に接続したＣＰＵ１に転送するためには、出力バッファ４２ａ及び一次接続回路２１のスレーブバス１２からマスタバス１１に向かう方向へデータ転送をするように、調停回路１０から制御線１０１，２０１を介して送信する制御信号をオンにする。そして、機能ブロック５１から一次接続回路２１及びマスタバス１１を介して、ＣＰＵ１へデータを転送する。この時、出力バッファ４２、一次接続回路２１以外の他の一次接続回路、及び二次接続回路３１を全てオフにし、他機能ブロックからのデータ出力と競合しないように制御する。
【００４６】
第２に、調停回路１０は、スレーブバス１２〜１４のいずれか２つの間でデータ転送を行う場合、選択した２つのスレーブバス及びインタコネクトバス１５の間の二次接続回路のみを接続状態にするとともに、データ転送を行うスレーブバス及びマスタバス１１の間の一次接続回路を遮断状態にするように制御を行う。例えば、スレーブバス１２に接続した機能ブロック５１からスレーブバス１３に接続した機能ブロック５３へデータを転送するためには、調停回路１０は、制御線１０１，３０１，３０２から同様に制御信号を出力して、出力バッファ４２ａ及び二次接続回路３１，３２をオンにし、スレーブバス１２からインタコネクトバス１５を介してスレーブバス１３へデータを転送する。この時、出力バッファ４２ａ及び二次接続回路３１，３２以外の他の二次接続回路、及び一次接続回路２１，２２は全てオフにし、他機能ブロックからのデータ出力と競合しないように制御する。
【００４７】
なお、上記のようにインタコネクトバス１５を介して２つのスレーブバスを接続する場合は、二次接続回路３１及び二次接続回路３２を同時にオンにし、スレーブバス１２，１３、及びインタコネクトバス１５の３つのバスを同時に接続することで、ひとつの機能ブロック５１から複数の機能ブロック５２，５３，５４へデータを転送しても構わないものとする。
【００４８】
また、上記のようにインタコネクトバス１５を介してすべてのスレーブバスを接続する場合は、二次接続回路３１〜３３を同時にオンにし、スレーブバス１２〜１４、及びインタコネクトバス１５の４つのバスを同時に接続することで、一つの機能ブロック５１から他のすべての機能ブロック５２〜５６にデータを転送しても構わないものとする。
【００４９】
第３に、調停回路１０は、マスタバス１１内でデータ転送を行う場合、一次接続回路を全て遮断状態にするように制御を行う。例えば、調停回路１０は、ＣＰＵ１とメモリ２とがデータ転送を行う場合、一次接続回路２１〜２３を全てオフにし、他機能ブロックからのデータ出力と競合しないように制御する。
【００５０】
第４に、調停回路１０は、スレーブバス１２〜１４のうち１つのスレーブバス内でデータ転送を行う場合、選択したスレーブバス及びマスタバス１１の間の一次接続回路、並びに選択したスレーブバス及びインタコネクトバス１５の間の二次接続回路を遮断状態にするように制御を行う。例えば、調停回路１０は、スレーブバス１２に接続した機能ブロックである機能ブロック５１から機能ブロック５２へデータ転送を行う場合は、スレーブバス１２の両端に接続した一次接続回路２１及び二次接続回路３１をオフにするとともに、出力バッファ４２ｂはオンにせずに出力バッファ４２ａのみをオンにして、他のバスとの間でデータの競合が起こらないように制御する。
【００５１】
このように、本発明のバス構造では、制御手段である調停回路１０が上記のように動作を行うので、同時に、異なるバス間でデータ転送を行うことが可能となる。図２は、異なるバス間でデータ転送を行うバス構造を示したブロック図である。なお、図２に示したバス構造では、調停回路１０、入力バッファ４１ａ〜４１ｆ及び出力バッファ４２ａ〜４２ｆの図示を省略している。
【００５２】
図２（Ａ）に示したように、一次接続回路２１〜２３及び二次接続回路３１〜３３を全てオフにすることで、各バスはそれぞれ分離されるので、例えば、マスタバス１１ではＣＰＵ１及びメモリ２の間で、スレーブバス１２では機能ブロック５１及び機能ブロック５２の間で、スレーブバス１３では機能ブロック５３及び機能ブロック５４の間で、スレーブバス１４では機能ブロック５５及び機能ブロック５６の間で、それぞれデータ転送を行うことが可能となる。
【００５３】
また、図２（Ｂ）に示したように、一次接続回路２１〜２３及び二次接続回路３３を全てオフにして、二次接続回路３１，３２をオンにすることで、スレーブバス１２、インタコネクトバス１５、及びスレーブバス１３が接続され、他のバスはそれぞれ分離されるので、例えば、マスタバス１１ではＣＰＵ１及びメモリ２の間で、スレーブバス１２及びスレーブバス１３の間では機能ブロック５２及び機能ブロック５４の間で、スレーブバス１４では機能ブロック５５及び機能ブロック５６の間で、それぞれデータ転送を行うことが可能となる。
【００５４】
さらに、図２（Ｃ）に示したように、一次接続回路２２，２３及び二次接続回路３１を全てオフにして、一次接続回路２１、二次接続回路３２，３３をオンにする。これにより、マスタバス１１及びスレーブバス１２、並びにスレーブバス１３、インタコネクトバス１５、及びスレーブバス１４が接続されるので、例えば、マスタバス１１及びスレーブバス１２の間ではＣＰＵ１及び機能ブロック５１の間で、スレーブバス１３及びスレーブバス１４の間では機能ブロック５４及び機能ブロック５６の間で、それぞれデータ転送を行うことが可能となる。
【００５５】
以上のように本発明では、データ転送を行うバス内またはバス間以外の他のバスとの接続を遮断するので、バスの寄生容量を見かけ上減少させることができるので、消費電力を減少させることができる。また、それに加えて、マスタバスが使用されていても、インタコネクトバスを用いてスレーブバス間でデータ転送を行うことができる。
【００５６】
次に、一次接続回路及び二次接続回路の具体的な回路構成を説明する。図３は、一次接続回路の回路構成を示した回路図である。なお、説明の簡略化のため、図３には、一次接続回路２１の構成として説明するが他の一次接続回路２２，２３、及び二次接続回路３１〜３３も同様の構成である。図３（Ａ）に示したように、一次接続回路２１は、２つの制御端子から信号を入力して、双方向の制御を独立して行うことが可能な接続回路の例である。一次接続回路２１は、トライステートバッファ６１ａ，６２ａを備えた構成である。トライステートバッファ６１ａは、入力端子が、一次接続回路の一方の入出力端子であるマスタバス１１側の端子に接続されている。また、出力端子が、一次接続回路２１の他方の入出力端子であるスレーブバス１２側の端子に接続されている。さらに、制御端子が、一次接続回路２１の制御信号入力端子２０１−１に接続されている。一方、トライステートバッファ６２ａは、入力端子が、一次接続回路２１の他方の入出力端子であるスレーブバス１２側の端子に接続されている。また、出力端子が一次接続回路２１の一方の入出力端子であるマスタバス１１側の端子に接続されている。さらに、制御端子が一次接続回路２１の制御信号入力端子２０１−２に接続されている。
【００５７】
制御端子２０１−１に入力された信号がオンになると、トライステートバッファ６１ａがオンになり、マスタバス１１からスレーブバス１２へのデータ転送を行い、制御信号２０１−１がオフになると、データ転送を停止しハイインピーダンス値を出力する。一方、制御端子２０１−２に入力された信号がオンになると、トライステートバッファ６２ａがオンになり、スレーブバス１２からマスタバス１１へのデータ転送を行い、制御信号２０１−２がオフになると、データ転送を停止しハイインピーダンス値を出力する。制御信号２０１−１及び２０１−２の両方を同時にオフにした場合は、いずれの方向においてもデータ転送を行わない。なお、制御信号２０１−１及び２０１−２の両方を同時にオンにするとデータの競合が発生することから、このような制御は行わないものとする。
【００５８】
一次接続回路２１は、図３（Ｂ）に示したような構成であってもよい。図３（Ｂ）に示したように、一次接続回路２１は、１つの制御端子から信号を入力して双方向の制御を独立に行うことが可能である。一次接続回路２１は、トライステートバッファ６１ｂ，６２ｂ、及びインバータ６３を備えている。すなわち、トライステートバッファ６１ｂは、入力端子が、一次接続回路２１の一方の入出力端子であるマスタバス１１側の端子に接続されている。また、出力端子が、スイッチ６４を介して一次接続回路２１の他方の入出力端子であるスレーブバス１２側の端子に接続されている。さらに、制御端子が、一次接続回路２１の制御信号入力端子２０１に接続されている。一方、トライステートバッファ６２ｂは、入力端子が、一次接続回路２１の他方の入出力端子であるスレーブバス１２側の端子に接続されている。また、出力端子が一次接続回路２１の一方の入出力端子であるマスタバス１１側の端子に接続されている。さらに、制御端子が、一次接続回路２１の制御信号入力端子２０１に入力端子が接続されたインバータ６３の出力端子に接続されている。
【００５９】
制御信号２０１がオンになると、トライステートバッファ６１ｂがオン、トライステートバッファ６２ｂがオフになり、マスタバス１１からスレーブバス１２へのデータ転送を行う。また、制御信号２０１がオフになると、トライステートバッファ６１ａがオフ、トライステートバッファ６２ａがオンになり、スレーブバス１２からマスタバス１１へのデータ転送を行う。
【００６０】
なお、図３（Ｂ）に示した接続回路を用いてマスタバス１１及びスレーブバス１２の間を遮断する場合は、この回路２つを直列接続した構成にすればよい。また、一次接続回路及び二次接続回路の構成は、図３に示した構成に限るものではなく、他の構成であっても構わない。
【００６１】
図４は、図３（Ｂ）に示した接続回路を用いた場合のＣＰＵ１から機能ブロック５１へデータを転送する場合の各制御信号の例を示した表である。図４に示したように、調停回路１０から出力する制御信号１０１〜１０６をオフ、制御信号２０１をオン、制御信号２０２，２０３をオフ、制御信号３０１〜３０６をオフにすることで、ＣＰＵ１から機能ブロック５１へデータを転送できる。
【００６２】
図５は、図３（Ｂ）を用いた場合の機能ブロック５１からＣＰＵ１へデータを転送する場合の各制御信号の例を示した表である。図５に示したように、制御信号１０１をオン、制御信号１０２〜１０６をオフ、制御信号２０１をオン、制御信号２０２〜２０３をオフ、制御信号３０１〜３０６をオフにすることで、機能ブロック５１からＣＰＵ１へデータを転送できる。
【００６３】
図６は、図３（Ｂ）を用いた場合の機能ブロック５１から機能ブロック５２へデータを転送する場合の各制御信号の例を示した表である。図６に示したように、制御信号１０１をオン、制御信号１０２〜１０６をオフ、制御信号２０１〜２０３をオフ、制御信号３０１〜３０３をオフにすることで、機能ブロック５１から機能ブロック５２へデータを転送できる。
【００６４】
図７は、図３（Ｂ）を用いた場合の機能ブロック５１から機能ブロック５３へデータを転送する場合の各制御信号の例を示した表である。図７に示したように、制御信号１０１をオン、制御信号１０２〜１０６をオフ、制御信号２０１〜２０３をオフ、制御信号３０１，３０２をオン、制御信号３０３をオフにすることで、機能ブロック５１から機能ブロック５３へデータを転送できる。
【００６５】
なお、図１に示したバス構造７１においては、各バスを１ラインのみ表示し、一次接続回路及び二次接続回路用の制御信号は１本として説明したが、データ転送を同時に双方向で行う構成の場合は、双方向のデータ転送を２本のバスで行う構成であってもよい。また、複数ビットのデータ転送を個別に制御可能なように、複数本のバスライン及び制御信号を備えた構成であってもよい。
【００６６】
また、図１に示したバス構造７１においては、出力バッファのみオン・オフできる構成としたが、これに限るものではなく、例えば、入力バッファもオン・オフできる構成として、制御手段である調停回路でその動作制御を行う構成としてもよい。
【００６７】
【発明の効果】
本発明によれば、以下の効果が得られる。
【００７２】
(1) 制御手段は、データ転送を行うバス内またはバス間以外の他のバスとの接続を遮断するので、各バス間でデータを誤転送することなく、各バス間またはバス内でデータを転送する際に、確実にデータ転送を行うことができる。また、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックを接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することができる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、アクセス頻度の高いブロックを接続したマスタバスを占有することがなく、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことができる。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことができる。
【００７３】
(2) マスタバスからスレーブバスへのデータ転送と、スレーブバスからマスタバスへのデータ転送と、を第１接続手段が切替可能であり、スレーブバスからインタコネクトバスへのデータ転送と、インタコネクトバスからスレーブバスへのデータ転送と、を第２接続手段が切替可能であるので、スレーブバスに接続された機能ブロック間や、マスタバスに接続された例えばＣＰＵとスレーブバスに接続された機能ブロック間で、確実にデータ転送を行うことができる。
【００７４】
(3) 半導体集積回路は、(1) または(2) に記載のバス構造を備えているので、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックが接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することができる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、ＣＰＵやメモリなどのようなアクセス頻度の高いブロックを接続したマスタバスを占有することがなく、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことができる。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことができる。
【００７５】
(4) 電子機器は、(1) または(2) に記載のバス構造、または(3) に記載の半導体集積回路を搭載しているので、バスに接続した例えば各種機能ブロック間でデータ転送を行う場合、機能ブロックが接続したバスのみを駆動し、他のバスを電気的に遮断しているために、バス配線距離を短くすることができ、配線の寄生容量によるデータ転送速度の低下を防ぐとともに、消費電力を低減することができる。また、別々のスレーブバスに接続している複数の機能ブロック間でのデータ転送を行う場合、インタコネクトバスを介してデータ転送を行うことが可能なため、アクセス頻度の高いブロックを接続したマスタバスを占有することがない。このため、各種機能ブロック間でのデータ転送においては、機能ブロックの動作と関係なく処理を行うことができる。また、割り込みなどの操作でＣＰＵを動作させる必要が生じた時でも、他のスレーブバス同士においてはデータ転送を中断することなく高速に処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るバス構造を示したブロック図である。
【図２】異なるバス間でデータ転送を行うバス構造を示したブロック図である。
【図３】一次接続回路の回路構成を示した回路図である。
【図４】図３（Ｂ）に示した接続回路を用いた場合のＣＰＵ１から機能ブロック５１へデータを転送する場合の各制御信号の例を示した表である。
【図５】図３（Ｂ）を用いた場合の機能ブロック５１からＣＰＵ１へデータを転送する場合の各制御信号の例を示した表である。
【図６】図３（Ｂ）を用いた場合の機能ブロック５１から機能ブロック５２へデータを転送する場合の各制御信号の例を示した表である。
【図７】図３（Ｂ）を用いた場合の機能ブロック５１から機能ブロック５３へデータを転送する場合の各制御信号の例を示した表である。
【図８】複数の機能ブロックを接続した従来のバス構造を示したブロック図である。
【符号の説明】
１−ＣＰＵ
２−メモリ
３−外部入出力回路
１０−調停回路
１１−マスタバス
１２〜１４−スレーブバス
１５−インタコネクトバス
２１〜２３−一次接続回路
３１〜３３−二次接続回路
【図１】
0003836332.tif 000002
【図２】
0003836332.tif 000003
【図３】
0003836332.tif 000004
【図４】
0003836332.tif 000005
【図５】
0003836332.tif 000006
【図６】
0003836332.tif 000007
【図７】
0003836332.tif 000008
【図８】
0003836332.tif 000009