特開2016-218619(P2016-218619A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 長瀬産業株式会社の特許一覧

<>
  • 特開2016218619-高速バスシステム 図000003
  • 特開2016218619-高速バスシステム 図000004
  • 特開2016218619-高速バスシステム 図000005
  • 特開2016218619-高速バスシステム 図000006
  • 特開2016218619-高速バスシステム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2016-218619(P2016-218619A)
(43)【公開日】2016年12月22日
(54)【発明の名称】高速バスシステム
(51)【国際特許分類】
   G06F 13/36 20060101AFI20161125BHJP
   H03K 19/177 20060101ALI20161125BHJP
【FI】
   G06F13/36 530A
   H03K19/177
【審査請求】未請求
【請求項の数】6
【出願形態】OL
【全頁数】17
(21)【出願番号】特願2015-101079(P2015-101079)
(22)【出願日】2015年5月18日
(71)【出願人】
【識別番号】000214272
【氏名又は名称】長瀬産業株式会社
(74)【代理人】
【識別番号】100116850
【弁理士】
【氏名又は名称】廣瀬 隆行
(74)【代理人】
【識別番号】100165847
【弁理士】
【氏名又は名称】関 大祐
(72)【発明者】
【氏名】大塚 寛治
(72)【発明者】
【氏名】藤井 文明
(72)【発明者】
【氏名】秋山 豊
(72)【発明者】
【氏名】佐藤 陽一
【テーマコード(参考)】
5B061
5J042
【Fターム(参考)】
5B061PP00
5B061RR02
5B061SS03
5J042BA01
5J042BA02
5J042BA11
5J042CA20
5J042DA02
5J042DA03
(57)【要約】      (修正有)
【課題】メモリ・論理共役システムを高速、かつ、低消費電力で機能させるバスシステムを提供する。
【解決手段】メモリ回路及び論理回路の少なくともいずれか一方として機能する複数の機能ブロックがアレイ状に配置されたブロックチップにおいて,ブロックチップ内の機能ブロック同士を接続するバスシステムである。バスシステムは,機能ブロックから出力されるデータ信号の出力先を制御する出力制御部を備える。出力制御部は,アンド回路31とスイッチ回路32を有する。アンド回路31は,クロック信号と選択信号とが入力される。スイッチ回路32は,アンド回路31がオフであるときには第1隣接バス33を介してデータ信号を出力させ,アンド回路31がオンであるときには第1隣接バス33及び第2隣接バス34を介してデータ信号を分岐して出力させる。
【選択図】図5
【特許請求の範囲】
【請求項1】
メモリ回路及び論理回路の少なくともいずれか一方として機能する複数の機能ブロック(10)がアレイ状に配置されたブロックチップ(20)において,前記ブロックチップ(20)内の前記機能ブロック(10)同士を接続するバスシステムであって,
前記バスシステムは,
前記機能ブロック(10)から出力されるデータ信号の出力先を制御する出力制御部(30)を備え,
前記出力制御部(30)は,
クロック信号源からのクロック信号と選択信号源からの選択信号とが入力されるアンド回路(31)と,
前記アンド回路(31)がオフであるときには,第1隣接バス(33)を介して前記データ信号を出力させ,前記アンド回路(31)がオンであるときには,前記第1隣接バス(33)及び第2隣接バス(34)を介して前記データ信号を分岐して出力させるスイッチ回路(32)と,を有する
バスシステム。
【請求項2】
前記第1隣接バス(33)は,ある機能ブロック(α)と,これと列方向に隣接する他の機能ブロック(β)とを接続するものであり,
前記第2隣接バス(34)は,前記ある機能ブロック(α)と,これと行方向に隣接する他の機能ブロック(α´)とを接続するものである
請求項1に記載のバスシステム。
【請求項3】
前記第1隣接バス(33)に入力端を有する別のスイッチ回路(32b)と,
前記別のスイッチ回路(32b)に接続され,クロック信号源からのクロック信号と選択信号源からの選択信号とが入力される別のアンド回路(31b)と,をさらに含み,
前記別のスイッチ回路(32b)は,
前記別のアンド回路(31b)がオフであるときには,前記第1隣接バス(33)を介して前記データ信号を出力させ,前記別のアンド回路(31b)がオンであるときには,前記第1隣接バス(33)及び別の第2隣接バス(34b)を介して前記データ信号を分岐して出力させる
請求項1又は請求項2に記載のバスシステム。
【請求項4】
前記第1隣接バス(33)は,ある機能ブロック(α)と,これと列方向に隣接する他の機能ブロック(β)とを接続するものであり,
前記別の第2隣接バス(34b)は,前記ある機能ブロック(α)から出力されたデータ信号を,行方向に前記他の機能ブロック(β)の一つ先に並ぶ更に他の機能ブロック(γ)へと伝達する
請求項3に記載のバスシステム。
【請求項5】
前記出力制御部(30)は,
前記機能ブロック(10)と前記スイッチ回路(32)との間に,前記機能ブロック(10)から出力されたデータ信号の波形を整形するための波形整形回路(35)を,さらに有する
請求項1に記載のバスシステム。
【請求項6】
前記アンド回路に入力される前記選択信号は,一つの統一された選択信号源により制御されている
請求項1から請求項5のいずれかに記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,バスシステムに関する。具体的に説明すると,本発明は,複数の機能ブロックが集積されたブロックチップにおいて,各機能ブロック同士を接続するためのバスシステムに関するものである。
【背景技術】
【0002】
従来から,複数の機能ブロック(基本セルともいう)を集積して構築されたメモリ・論理共役システムが知られている(特許文献1)。このメモリ・論理共役システムは,メモリ回路として機能するSRAMなどを一つの機能ブロックとし,複数の機能ブロックを行列からなるアレイ状に配置した構成を有している。また,メモリ・論理共役システムでは,アレイ状に配置された複数の機能ブロックを,3次元的に積層することも可能であるとされている。そして,このシステムでは,マルチバスを通じて任意の機能ブロックに直接アクセスして真理値データを書き込むことにより,任意の機能ブロックを論理回路に切り換えることが可能である。
【0003】
このように,メモリ・論理共役システムは,マルチバスを通じて各機能ブロックに直接アクセスすることにより,任意の機能ブロックをピンポイントで論理回路やメモリ回路として切り換えることができるため,動的再構成が容易である。また,機能ブロックとして,SRAMなどの比較的小さい構成のメモリ回路を用いることで,処理の高速化を容易に実現することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−15328号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のように,メモリ・論理共役システムは,動的再構成が可能な柔軟な単一回路を大量に生産可能であるという点において,優れたシステムである。
【0006】
ただし,従来のメモリ・論理共役システムは,複数の機能ブロック同士でデータ信号等の送受信を行う場合,隣接する機能ブロック同士を接続する隣接バスを介する必要があった。この隣接バスは,行列方向に隣り合う機能ブロック同士のみを接続するものである。このため,例えば,同じデータ信号を列方向に並ぶ3つ以上の機能ブロックで共有しようとした場合,まず,ある機能ブロックから,これと隣接する別の機能ブロックへデータ信号を送信する。その後,この別の機能ブロックから,さらに別の隣接する機能ブロックへとデータ信号を送信する必要がある。例えば,ある機能ブロックから別の機能ブロックへデータ信号を送信するという処理に1クロック消費されるとした場合,同じデータ信号を列方向に並ぶ3つの機能ブロックで共有するためには,そのデータ信号の伝送処理に2クロック消費されることとなる。このように,従来の隣接バスのシステムでは,データ信号の共有先が増えるに従って,そのデータ信号の共有を達成するのに必要なクロック数が増えることとなる。従って,従来の隣接バスのシステムでは,データ信号を共有しようとした場合や,データ信号を遠くの機能ブロックへと伝達しようとした場合に,処理時間の遅延を招く恐れがあるという問題があった。
【0007】
また,従来のメモリ・論理共役システムは,データ信号の伝達経路を決定するための経路設定レジスタを,全ての機能ブロックに設ける必要がある。すなわち,従来のシステムは,データ信号の伝達経路として隣接バスのみを用いているため,ある機能ブロックから遠く離れた機能ブロックへとデータ信号を伝達させようとした場合に,その間に位置する全ての機能ブロックを中継する必要がある。このため,それぞれの機能ブロックに経路設定レジスタを設けなければ,所望の機能ブロックへとデータ信号を伝達させることができなかった。要するに,従来のシステムは,機能ブロックをスキップして,データ信号を伝達させることができない。このため,従来のシステムは,データ信号を遠くの機能ブロックへと伝達しようとした場合に,発信元から受信先の間に位置する全ての機能ブロック(特に経路設定レジスタ)をアクティブにする必要がある。その結果,従来のシステムは,電力消費が大きくなるという問題があった。
【0008】
このような従来のメモリ・論理共役システムの問題は,各機能ブロックを接続している隣接バスの接続形態に起因するものであるといえる。このため,現在では,従来のメモリ・論理共役システムを,さらに高速かつ低消費電力で機能させることのできるバスシステムが求められている。
【課題を解決するための手段】
【0009】
そこで,本発明の発明者らは,従来発明の問題を解決する手段について鋭意検討した結果,ある機能ブロックから出力されるデータ信号を,他の機能ブロックとさらに別の機能ブロックとに分岐して伝達するというバス構造を発案した。特に,発明者らは,データ信号の分岐をスイッチによってコントロールすることにより,データ信号の共有先を任意に選択することが可能になるという知見を得た。これにより,データ信号を,他の複数の機能ブロックに対して同時に(例えば1クロック内で)伝達することが可能となる。従って,上記バス構造によれば,従来のメモリ・論理共役システムを,さらに高速かつ低消費電力で機能させることができる。そして,本発明者らは,このような知見に基づけば,従来技術の課題を解決できることに想到し,本発明を完成させた。具体的に説明すると,本発明は以下の構成を有する。
【0010】
本発明は,バスシステムに関する。本発明のバスシステムは,ブロックチップ20内の機能ブロック10同士を接続するものである。機能ブロック10は,メモリ回路及び論理回路の少なくともいずれか一方として機能する素子である。そして,ブロックチップ20は,複数の機能ブロック10が行列に並んだアレイ状に配置されることで構成されている。
バスシステムは,機能ブロック10から出力されるデータ信号の出力先を制御する出力制御部30を備える。
この出力制御部30は,アンド回路31と,スイッチ回路32と,第1隣接バス33と,第2隣接バス34と,を含む。
アンド回路31には,クロック信号源からのクロック信号と選択信号源からの選択信号とが入力される。アンド回路31には,常時,クロック信号が入力されている。また,アンド回路31に選択信号を入力するか否かは任意に決定することができる。このため,アンド回路31に選択信号が入力されると,このアンド回路31は,クロックタイミングでオン(アクティブ)になる。他方,アンド回路31に選択信号が入力されていない状態にあるとき,このアンド回路31はオフである。
そして,スイッチ回路32は,アンド回路31がオフであるときには,第1隣接バス33を介してデータ信号を出力させる。他方,スイッチ回路32は,アンド回路31がオンであるときには,第1隣接バス33及び第2隣接バス34を介してデータ信号を分岐して出力させる。
【0011】
上記構成のように,本発明のバスシステムは,ある機能ブロックから出力されるデータ信号を,第1隣接バス33を介して他の一つの機能ブロックに伝達するか,それとも,第1隣接バス33及び第2隣接バス34を介して他の2つの機能ブロックに同時に伝達するかを,スイッチ回路32の切り換えにより任意に制御することができる。このように,スイッチ回路32の切り換えに応じて,データ信号を分岐させることにより,データ信号を他の複数の機能ブロックへと高速且つ低消費電力で伝達することができる
【0012】
本発明のバスシステムにおいて,第1隣接バス33は,ある機能ブロック(α)と,これと列方向に隣接する他の機能ブロック(β)とを接続するものであることが好ましい。また,第2隣接バス34は,ある機能ブロック(α)と,これと行方向に隣接する他の機能ブロック(α´)とを接続するものであることが好ましい。
【0013】
上記構成のように,本発明の好ましい形態では,行列からなるアレイ状に配置された複数の機能ブロックにおいて,ある機能ブロック(α)から出力されるデータ信号を,この機能ブロック(α)と同列に位置する機能ブロック(β)と,この機能ブロック(α)と異なる列に位置する機能ブロック(α´)とに分岐して伝達する。これにより,データ信号を,行方向と列方向に広く拡散し,様々な場所に位置する機能ブロックに対して効率的に伝達することが可能となる。
【0014】
本発明のバスシステムは,さらに,別のスイッチ回路32bと,別のアンド回路31bとを含むことが好ましい。別のスイッチ回路32bは,第1隣接バス33に入力端を有している。また,別のアンド回路31bは,この別のスイッチ回路32bに接続され,クロック信号源からのクロック信号と選択信号源からの選択信号とが入力される。
ここで,別のスイッチ回路32bは,別のアンド回路31bがオフであるときには,第1隣接バス33を介してデータ信号を出力させる。他方,別のスイッチ回路32bは,別のアンド回路31bがオンであるときには,第1隣接バス33及び別の第2隣接バス34bを介してデータ信号を分岐して出力させる。
【0015】
上記構成のように,別のアンド回路31bと別のスイッチ回路32bとをさらに設けることで,データ信号が同時に伝達される範囲を拡張することができる。
【0016】
本発明のバスシステムにおいて,第1隣接バス33は,ある機能ブロック(α)と,列方向に隣接する他の機能ブロック(β)とを接続するものである。この場合に,上記した別の第2隣接バス34bは,ある機能ブロック(α)から出力されたデータ信号を,行方向に他の機能ブロック(β)の一つ先に並ぶ更に他の機能ブロック(γ)へと伝達するものであることが好ましい。
【0017】
上記構成のようにすれば,ある機能ブロック(α)から出力されるデータ信号を,他の機能ブロック(β)及び更に他の機能ブロック(γ)へと同時に(1クロックで)伝達することができる。このため,隣接していない機能ブロック同士の間でも,高速でデータ信号を共有することができる。さらに,本発明では,各機能ブロックに設けられた経路設定レジスタを用いなくても,各スイッチ回路を切り換えるだけで,簡単にデータ信号の出力先を任意に変更できる。従って,隣接していない機能ブロック同士の間でも,高速かつ低消費電力でデータ信号を共有することができる。
【0018】
本発明のバスシステムにおいて,出力制御部30は,波形整形回路35をさらに有することが好ましい。この波形整形回路35は,機能ブロック10とスイッチ回路32との間に配置され,機能ブロック10から出力されるデータ信号の波形を整形する。
【0019】
上述のように,本発明のバスシステムでは,ある機能ブロック(α)から出力されるデータ信号を,他の複数の機能ブロック(β,γ,α´等)へと同時に伝達させることができる。ただし,このようにデータ信号を多分岐させる場合に,データ信号の波形が整っていない(すなわち強度が弱い)ものであると,各機能ブロックによってデータ信号を適切に受信できないおそれがある。そこで,上記構成のように波形整形回路35をさらに設けることで,ある機能ブロック(α)から出力されるデータ信号の波形を整える(すなわち強度を増幅する)ことが可能となる。これにより,各機能ブロックは,データ信号を適切に受信することができる。
【0020】
本発明のバスシステムにおいて,複数のアンド回路に入力される選択信号は,一つの統一された選択信号源により制御されていることが好ましい。
【0021】
上述のように,本発明のバスシステムでは,アンド回路に選択信号を入力するか否かによって,スイッチ回路のオン/オフを切り換える。そこで,複数のアンド回路に入力する選択信号を,一つの統一された選択信号源により制御することが好ましい。これにより,この一つの選択信号源(コントローラ)によって,スイッチ回路のオン/オフを切り換えることができる。従って,データ信号の送信先を,一つの選択信号源により,簡単にコントロールすることが可能となる。
【発明の効果】
【0022】
本発明のバスシステムによれば,従来のメモリ・論理共役システムを,さらに高速かつ低消費電力で機能させることができる。
【図面の簡単な説明】
【0023】
図1図1は,ブロックチップの基本構成の例を示している。
図2図2は,機能ブロックの構成の例を示している。
図3図3は,機能ブロックのモード階層の例を示している。
図4図4は,機能ブロックアレイの構成の例を示している。
図5図5は,多分岐型バスシステムの構成の例を示している。
【発明を実施するための形態】
【0024】
以下,図面を用いて本発明を実施するための形態について説明する。本発明は,以下に説明する形態に限定されるものではなく,以下の形態から当業者が自明な範囲で適宜修正したものも含む。
【0025】
本発明は,メモリ・論理共役システムに導入されるバスシステムに関する。すなわち,本発明は,複数の機能ブロックを含んで構成されたブロックチップにおいて,各機能ブロックの間でデータ信号の送受信を行うことができるように,各機能ブロックを接続するバスシステムに関するものである。ブロックチップに含まれる各機能ブロックは,万能機能を有している。例えば,機能ブロックは,論理回路にもなり,メモリ回路にもなり,検索回路にもなるブロックである。このような機能ブロックを複数含んで構成されたブロックチップは,メモリ・論理共役システムとも称される。メモリ・論理共役システムとしては,特許文献1(特開2010−15328号公報)に開示された構成を適宜参照することができる。
【0026】
まず,本発明に係るバスシステムが導入されるメモリ・論理共役システム,すなわちブロックチップについて説明する。
【0027】
図1は,ブロックチップ20の基本構成の例を示している。ブロックチップ20は,メモリ回路(SRAMなど)を有する複数の機能ブロック10をアレイ状に配置した構成を有する。このブロックチップ20は,各機能ブロック10のアドレスを制御することで論理回路に変換できる機能を有している。ブロックチップ20は,ジョブ要求に応じて,各機能ブロックのモードを様々な他のモードに動的再構成することが可能である。
【0028】
なお,本実施の形態では,機能ブロック10に搭載するメモリ回路としてSRAM(Static Random Access Memory)を用いている。ただし,機能ブロック10に搭載するメモリ回路として,SRAMの他に,制御機構を備えた高速DRAM(Dynamic Random Access Memory)又は高速NVM(Non Volatile Memory)などの公知のメモリ回路を採用することができる。本願明細書では,本発明の構成を具体的に説明するために,機能ブロック10に搭載するメモリ回路としてSRAMを選択した場合を例に挙げて説明を行う。
【0029】
図1に示されるように,ブロックチップ20は,複数の機能ブロック10を行列からなるアレイ状に配置した機能ブロックアレイ19を有している。例えば,機能ブロックアレイ19は,256ワード×8ビットのメモリ回路(SRAM)を有する機能ブロック10を,n列×m行配列することによって構築されている。
【0030】
図1に示されるように,ブロックチップ20の基本構成は,256ワード×8ビットのような比較的小さいメモリ回路(SRAM)を搭載した機能ブロック10を,n列×m行のアレイ状に配置したものとなっている。そして,この機能ブロック10のメモリ回路に真理値データを書き込むことで,機能ブロック10を論理回路として動作させることができる。このように,機能ブロック10は,少なくともメモリ機能と論理機能を有しており,これらの機能を適宜切り換えることが可能である。機能ブロック10の機能の切り換えは,図1に示すようなマルチバス11やバスインターフェース12(Bus I/F)を介して,真理値データ等の制御信号を各機能ブロック10に直接伝送することにより行われる。これにより,任意の機能ブロック10を,ピンポイントで論理回路やメモリ回路として切り換えて機能させることができる。このような意味において,ブロックチップ20は,機能ブロック10の機能を動的に再構成することができるようになっている。また,機能ブロック10に比較的小さい構成のメモリ回路を用いることで,ブロックチップ20は高速な論理ブロックとして扱うことができる。
【0031】
具体的に説明すると,図1に示されるように,ブロックチップ20は,機能ブロックアレイ19と,デコーダ13と,制御回路14と,バスインターフェース12と,マルチバス11とを有している。機能ブロックアレイ19は,上述のように,メモリ回路(SRAM)を搭載した機能ブロック10を,n列×m行のアレイ状に配置したものである。デコーダ13は,複数の機能ブロック10のそれぞれに電気的に接続されている。バスインターフェース12は,デコーダ13と制御回路14のそれぞれに電気的に接続されている。マルチバス11は,バスインターフェース12に電気的に接続されている。そして,外部のCPUなどから出力されるアドレス信号,クロック信号,及び制御信号は,マルチバス11を介してバスインターフェース12へと伝達され,このバスインターフェース12を通じて制御回路14へと入力される。制御回路14は,デコーダ13を通じて,アドレス信号や,クロック信号,制御信号を各機能ブロック10へと伝達する制御を行う。また,図1に示されるように,機能ブロックアレイ19を有するブロックチップ20のアドレス空間は,機能ブロック10内のメモリアドレス16と拡張アドレス(CEX,CEYの生成)17とによって表される。
【0032】
続いて,機能ブロック10の具体的な構成について説明する。図2は,機能ブロック10の構成の一例を示したものである。図2に示されるように,機能ブロック10は,SRAM18と,経路設定レジスタ21と,入力制御部22と,出力制御部30とを有している。SRAM18の例は,256ワード×8ビットという比較的の小型のメモリである。なお,SRAM18に代えてDRAMやNVMを用いることもできる。経路設定レジスタ21は,入力制御部22及び出力制御部30を制御することにより,機能ブロック10の内部バスの接続(経路設定)を行うことができる。入力制御部22は,機能ブロック10のモード切り替えを制御したり,経路設定レジスタ21の指示に従った経路制御を行う。出力制御部30は,ラッチやバススイッチ等を含み,これらの制御を行うことで,機能ブロック10から出力されるデータ信号の伝送先を制御する。出力制御部30は,ラッチやバススイッチ等の制御を行う回路であり,機能ブロック10同士をカスケードに接続するOUT信号や,機能ブロック10を並列に接続するデータバス2,データバス3等への出力の切り替えを行うことができる。
【0033】
すなわち,他の機能ブロック10から出力されたデータ信号は,入力制御部22を介して,この機能ブロック10のSRAM18に入力される。また,この機能ブロック10から出力されるデータ信号は,出力制御部30を介して他の機能ブロック10へと伝達される。このため,SRAM18と入力制御部22と出力制御部30は互いに電気的に接続されている。その他,機能ブロック10は,内部バスとして,アドレスバス(8ビット),制御バス0(CEX,R/W,S/R,REG等),制御バス1(CEY等),データバス0(X1(8ビット)),データバス1(X0(8ビット)),データバス2(Y0(8ビット)),データバス3(Y1(8ビット))などを有している。
【0034】
機能ブロック10を論理回路として機能させる場合,まず,SRAM18に論理回路の真理値データを書込む。そして,この論理回路への入力値をアドレス信号とし,SRAM18に格納した真理値データを読み出す。これにより,機能ブロック10は,論理回路として機能する。また,SRAM18に入力/出力する信号の経路は,経路設定レジスタ21及びバススイッチで指定することができる。経路設定レジスタ21及びバススイッチをSRAM18とは別のアドレスにマッピングすることにより,経路設定レジスタ21及びバススイッチの内容を,機能ブロック10の内部バスを介して,ブロックチップ20の外にあるマルチバス11から直接書き換えることができる。
【0035】
また,論理規模に応じて機能ブロック10間の接続を増やすことにより,所望の論理回路を実現することができる。つまり,ブロックチップ20のアレイ規模と,マルチバス11に接続するブロックチップ20の個数を適切に選ぶことで,多数の機能ブロック10を効率良く並列に互いに協調しながら動作させることができる。また,ブロックチップ20内の複数の機能ブロック10を,この機能ブロック単位でアドレス空間にそれぞれマッピングすることにより,ブロックチップ20を機能ブロック単位でピンポイントに動的再構成することができる。この機能を利用することで不良箇所を迂回したり,学習機能を備えたシステムを実現したり,あるいは冗長性を持たせた信頼度の高いシステム等を構築したりすることが可能になる。
【0036】
上記した機能ブロック10は,外部に配置されたCPU等からの制御に応じて,メモリ回路や論理回路として機能する。図3は,機能ブロック10のモード階層を示している。本実施形態において,機能ブロック10のモードは,(A)強制メモリモードと(B)システムモードとを含む。(A)強制メモリモードは,(A−1)外部メモリモード(通常メモリ)と,(A−2)経路設定レジスタ書込みモードとを含む。(B)システムモードは,(B−1)メモリモードと,(B−2)ロジックモードとを含む。(B−1)メモリモードは,(B−1−1)外部メモリモード(通常メモリ)と,(B−1−2)経路設定レジスタ書込みモードとを含む。(B−2)ロジックモードは,(B−2−1)演算モードと,(B−2−2)組み合わせ回路モードと,(B−2−3)内部メモリモード(外部から見えないメモリ)と,(B−2−4)論理Libモードと,(B−2−5)経路設定レジスタ情報変更モードとを含む。このように,機能ブロック10は,メモリ回路と論理回路とが共役したような機能を持つ。このような,メモリ・論理共役システムを実現するためには,多ビットマルチバスコネクションや多ビットデコーダを用いればよい。
【0037】
具体的に説明すると,図2に示されるように,制御バス0のS/R(Set/Reset)信号(第1の制御信号)は強制リセット信号である。機能ブロック10は,S/R信号が“L(Low)”レベルにあるときに,(A)強制メモリモードとなり,S/R信号が“H(High)”レベルにあるときに,(B)システムモードとなる。(A)強制メモリモードでは,(B−2)ロジックモードをリセット状態にすることができる。機能ブロックアレイ19の初期設定時等を除き,S/R信号は,基本的に,常に“H”レベルの状態で使用する。
【0038】
図3に示すような機能ブロック10の各モードの設定は,経路設定レジスタ21の内容と,入力制御部22内のモードセレクタ及び出力制御部30内のモードセレクタのフラグ情報とによって行うことができる。また,経路設定レジスタ21の内容は,(B−1)メモリモード時において,8ビット単位で,且つ指定した機能ブロック単位でピンポイントに書き換えることができる。また,経路設定レジスタ21の情報とモードセレクタのフラグ情報には優先関係があり,モードセレクタのフラグ情報は,経路設定レジスタ21の情報に優先する。これにより,モードセレクタのフラグ情報で経路設定レジスタ21の情報で指定した機能の一部を停止させたり復帰させたりすることができる。さらに,モードセレクタのフラグ情報は,機能ブロックアレイ19を管理するデコーダ13又は機能ブロック10の論理処理結果により書き換えることができる。
【0039】
図4は,複数の機能ブロック10をアレイ状に配置した機能ブロックアレイ19を概念的に示している。図4に示されるように,機能ブロックアレイ19に含まれる複数の機能ブロック10は,それぞれ,バス(隣接バスともいう)を介して互いに接続されている。ある機能ブロック10から出力されるデータ信号が,どの機能ブロック10に伝達されるかは,出力制御部30(バススイッチ)の制御により決定される。出力制御部30は,ラッチやバススイッチ等の制御を行う回路であり,機能ブロック10同士をカスケードに接続するOUT信号や,機能ブロック10を並列に接続するデータバス等への出力の切り替えを行うことができる。
【0040】
隣接バスは,基本的に,互いに隣接する機能ブロック10同士を接続している。これにより,隣接する機能ブロック10は,隣接バスを介して,互いにデータ信号の送受信を行うことができる。さらに,本発明において,隣接バスは,互いに隣接する機能ブロック10同士だけでなく,行方向又は列方向に一又は複数個の機能ブロック10を飛ばした先に配置されている機能ブロック10をも接続することができる。これにより,機能ブロックアレイ19に含まれる複数の機能ブロック10は,隣接する機能ブロック10以外にも,データ信号を直接伝達することができる。以下では,機能ブロック10に含まれる出力制御部30に着目し,機能ブロック10から出力されるデータ信号を多分岐させて,他の複数の機能ブロック10へと同時に伝達するための構成について詳しく説明する。
【0041】
図5は,本発明に係るバスシステムの好ましい実施形態を示している。図5において,破線はクロック信号の伝送経路を示し,点線は選択信号の伝送経路を示し,矢印はデータ信号の伝送経路を示している。クロック信号は,例えば外部に配置されたCPUなどと同期されている。クロック信号の信号源としては,公知のクロック発生器を用いればよい。また,選択信号は,データ信号の伝送経路を制御するための信号として利用される。選択信号の信号源は,統一された一つのコントローラであることが好ましいが,選択信号の信号源は複数存在していてもよい。選択信号の信号源としては,外部のCPUを利用することもできる。選択信号の詳細については後述する。また,データ信号は,機能ブロック10から出力される情報(データ)を示す信号である。データ信号は,機能ブロック10が論理回路である場合にはその演算結果の情報が含まれ,また,機能ブロック10がメモリ回路である場合にはその記憶情報が含まれる。
【0042】
図5に示されるように,本発明に係るバスシステムは,機能ブロックアレイ19に含まれる機能ブロック10同士を接続するものである。図5に示した例では,機能ブロック10として,ブロックα,ブロックβ,ブロックγ,及びブロックΔ…が含まれている。また,機能ブロック10として,さらにブロックα´,及びブロックβ´…が含まれている。図5に示した例において,行列からなる機能ブロックアレイ19のうち,ブロックα,ブロックβ,ブロックγ,及びブロックΔ…は,同じ列に位置する機能ブロックである。また,ブロックα´とブロックβ´…も,同じ列に位置している。ただし,ブロックαの列とブロックα´の列は別の列とされている。また,行列からなる機能ブロックアレイ19のうち,ブロックαとブロックα´,ブロックβとブロックβ´は,それぞれ同じ行に位置している。また,図5に示した例では,図面が複雑になることを避けるために,ブロックαからデータ信号を出力する場合の例を示している。このような前提のもと,本発明に係るバスシステムについて具体的に説明する。ただし,図5に示した例は,本発明の概念を説明するための一例に過ぎない。つまり,機能ブロックアレイ19は,さらに複数行及び複数列に並んだ多数の機能ブロック10によって構築することができる。
【0043】
図2等に示されるように,複数の機能ブロック10はそれぞれ,出力制御部30を有している。各出力制御部30は,図5に示されるように,アンド回路31とスイッチ回路32とを含んで構成されている。
【0044】
図5に示されるように,アンド回路31には,クロック信号発生源からのクロック信号と選択信号源からの選択信号とが入力される。アンド回路31には,基本的に,クロック信号が常時入力されている。また,アンド回路31には,任意のタイミングで,選択信号を入力することができる。このため,アンド回路31は,選択信号が入力されることで,クロック信号のクロックタイミングで,オン状態(アクティブ)になる。他方,アンド回路31は,選択信号が入力されていない状態においては,オフ状態となる。このように,アンド回路31に選択信号を入力するか否かによって,アンド回路31のオン/オフを制御することができる。
【0045】
また,スイッチ回路32は,アンド回路31に接続されている。このため,アンド回路31のオン/オフ状態に応じて,スイッチ回路32のスイッチ動作が行われる。スイッチ回路32は,アンド回路31がオフであるとき(アンド回路31に選択信号が入力されていないとき)には,ブロックからのデータ信号を,第1隣接バス33を介して出力させる。他方,スイッチ回路32は,アンド回路31がオンであるとき(アンド回路31に選択信号が入力されているとき)には,ブロックからのデータ信号を,第1隣接バス33及び第2隣接バス34を介して分岐して出力させる。ここで,“データ信号を分岐させる”とは,あるデータ信号を,2つの同じ内容のデータ信号に分けることを意味する。スイッチ回路32は,アンド回路31がオンである状態において,第1隣接バス33と第2隣接バス34とによって同じ内容のデータ信号を伝送させることができる。
【0046】
スイッチ回路32は,上述したように,データ信号の非分岐伝送と分岐伝送とを切り換えることができるものであれば,どのような構成であってもよい。ここでは,スイッチ回路32の具体的な構成の一例を説明する。
【0047】
図5に示されるように,スイッチ回路32は,nMOSトランジスタ41とpMOSトランジスタ42によって構成されている。図5に示された例では,pMOSトランジスタ42が,電源側に挿入されてプルアップ素子となる。また,nMOSトランジスタ41は,第2隣接バス34の一部を構成している。このnMOSトランジスタ41は,第2隣接バス34と第1隣接バス33の分岐点近傍に設けられる。また,第2隣接バス34において,nMOSトランジスタ41の先には,インバータのドライバ36が設けられている。このため,アンド回路31に選択信号が入力されていない状態(オフ状態)では,pMOSトランジスタ42がオンとなっており,電源の電位がインバータのドライバ36に出力され,第2隣接バス34にオフ信号が流れている。他方,アンド回路31に選択信号が入力された状態(オン状態)では,クロックタイミングでアンド回路31がアクティブになり,このアンド回路31に繋がっているpMOSトランジスタ42がオフとなりnMOSトランジスタ41がオンとなる。すると,ブロックから出力されるデータ信号は,第1隣接バス33を伝送すると共に,nMOSトランジスタ41を通じて,インバータのドライバ36から出力されて,第2隣接バス34をも伝送する。第2隣接バス34を伝送しているデータ信号は,その先にあるブロックのインバータのレシーバに到達する。このようにして,スイッチ回路32は,ブロックから出力されるデータ信号の非分岐伝送と分岐伝送とを切り換えることができる。
【0048】
上述した動作は,アンド回路31とスイッチ回路32を含む出力制御部30の基本動作である。続いて,図5に示した具体例を参照して,データ信号を多分岐させる方法について説明する。なお,データ信号の分岐数は,例えば2分岐〜16分岐程度まで可能である。
【0049】
図5は,ブロックαから出力されるデータ信号を多分岐させる構成の例を示している。図5に示されるように,ブロックαの同列には,ブロックβ,ブロックγ,ブロックΔ…が設けられている。また,ブロックαが属する列の隣の列には,ブロックα´とブロックβ´…が設けられている。ブロックα´とブロックβ´…は同列に位置する。また,ブロックαとブロックα´は同行に位置し,ブロックβとブロックβ´は同行に位置している。これらの複数のブロックは,それぞれ,アンド回路31とスイッチ回路32を含む出力制御部30を有している。複数のアンド回路31のそれぞれには,同一のクロック信号源から同一のクロック信号が入力されている。このため,複数のアンド回路31の動作はクロック信号によって同期されている。また,複数のアンド回路31には,それぞれ,任意のタイミングで選択信号を入力することができる。どのアンド回路31に対して選択信号を入力するかという制御は,一つのコントローラによって統制されていることが好ましい。
【0050】
図5に示されるように,ブロックαから出力されるデータ信号d0は,まず波形整形回路35に入力される。波形整形回路35は,データ信号d0の波形を整えて強度を増幅させる。このように,データ信号の送信元(ブロックα)の伝送路に波形整形回路35を設けることで,データ信号の伝送距離を向上させることができ,結果としてデータ信号の分岐数を増加させることが可能となる。
【0051】
ブロックαから出力されるデータ信号d0は,波形整形回路35を経て,スイッチ回路32aに到達する。スイッチ回路32aには,アンド回路31aが接続されている。ここで,このアンド回路31aにクロック信号と選択信号Aが入力されている場合,データ信号d0は,第1隣接バス33aを伝送するデータ信号d1と,第2隣接バス34aを伝送するデータ信号d0´とに分岐される。なお,ここで,データ信号d1とデータ信号d0´は,データの内容は実質的に同一である。このようにして,1度目の分岐が達成される。他方,アンド回路31aに選択信号Aが入力されていない場合,データ信号d0は,データ信号d1となって第1隣接バス33aのみを伝送する。つまり,選択信号Aをアンド回路31aに入力するか否かを制御することにより,データ信号d0を分岐させるか否かを任意に決定することができる。
【0052】
図5に示されるように,ブロックαから出力されたデータ信号d1は,第1隣接バス33aを通じて,ブロックβに入力される。ブロックαとブロックβは,列方向に隣接している。また,データ信号d1が伝搬する第1隣接バス33aには,ブロックβのスイッチ回路32bの入力端が設けられている。このブロックβのスイッチ回路32bには,アンド回路31bが接続されている。ここで,ブロックβのアンド回路31bにクロック信号と選択信号Bが入力されている場合,データ信号d1は,第1隣接バス33aを通じてそのままブロックβに入力されるものと,ブロックβの第2隣接バス34bを伝送するデータ信号d2とに分岐される。なお,ブロックβに入力されるデータ信号d1と,ブロックβのスイッチ回路32bで分岐されたデータ信号d2は,データの内容は実質的に同一である。このようにして,2度目の分岐が達成される。他方,ブロックβのアンド回路31bに選択信号Bが入力されていない場合,データ信号d1は,分岐されずに,第1隣接バス33aを介してブロックβに入力される。このように,選択信号Bをアンド回路31bに入力するか否かを制御することにより,2度目の分岐を行うか否かを任意に決定することができる。
【0053】
また,ブロックβのスイッチ回路32bによって分岐されたデータ信号d2は,ブロックβの第2隣接バス34bを通じて,ブロックγに入力される。ブロックβとブロックγは,列方向に隣接している。また,データ信号d2が伝搬する第2隣接バス34bには,ブロックγのスイッチ回路32cの入力端が設けられている。このブロックγのスイッチ回路32cには,アンド回路31cが接続されている。ここで,ブロックγのアンド回路31cにクロック信号と選択信号Cが入力されている場合,データ信号d2は,ブロックβの第2隣接バス34bを通じてそのままブロックγに入力されるものと,ブロックγの第2隣接バス34cを伝送するデータ信号d3とに分岐される。なお,ブロックγに入力されるデータ信号d2と,ブロックγのスイッチ回路32cで分岐されたデータ信号d3は,データの内容は実質的に同一である。このようにして,3度目の分岐が達成される。他方,ブロックγのアンド回路31cに選択信号Cが入力されていない場合,データ信号d2は,分岐されずに,ブロックβの第2隣接バス34bを介してブロックγに入力される。このように,選択信号Cをアンド回路31cに入力するか否かを制御することにより,3度目の分岐を行うか否かを任意に決定することができる。
【0054】
さらに,ブロックγのスイッチ回路32cによって分岐されたデータ信号d3は,ブロックγの第2隣接バス34cを通じて,ブロックΔに入力される。ここでも,上述した方法と同様にして,ブロックΔのアンド回路31dに選択信号Dを入力することにより,ブロックΔのスイッチ回路32dを利用して4度目の分岐を行うことができる。
【0055】
このように,列方向に並ぶ複数のブロック(α,β,γ,Δ…)のそれぞれに,アンド回路31とスイッチ回路32を設けることで,データ信号を多分岐させることができる。例えば,選択信号B,C,Dを同時に入力することで,ブロックαから出力されたデータ信号を,ブロックβ,ブロックγ,及びブロックΔで共有することができる。また,選択信号B,C,Dを同時に入力することで,ブロックαからブロックΔまでのデータ信号の伝達を,1クロックで行うことが可能である。このため,データ信号の伝達処理の高速化を実現することができる。さらに,選択信号の制御を一つのコントローラに集約することで,データ信号の伝達経路を各ブロックのレジスタ等によって判断する必要がなくなる。このため,統一されたコントローラによって選択信号を制御することにより,データ信号の多分岐を低消費電力で実現することができる。特に,データ信号を8分岐以上させるような場合には,単一のコントローラによる集中型制御を行うことで,複雑高度な分岐処理を単純化することができる。また,各ブロックはバスの接続端のスイッチ間でオープン(ハイインピーダンス)接続となるため,低消費電力で高速に動作することができる。
【0056】
続いて,データ信号の発信源であるブロックαから,行方向に隣接するブロックα´にデータ信号を分岐させた場合を考える。つまり,上述したように,ブロックαのアンド回路31aにクロック信号と選択信号Aが入力されている場合,ブロックαから出力されるデータ信号d0は,第1隣接バス33aを伝送するデータ信号d1と,第2隣接バス34aを伝送するデータ信号d0´とに分岐される。ここで,図5に示されるように,第2隣接バス34aを伝搬するデータ信号d0´は,ブロックαと行方向に隣接するブロックα´に入力される。このように,ブロックαから出力されるデータ信号d0は,列方向と行方向の両方に分岐されるようになっている。
【0057】
ブロックαのスイッチ回路32aで分岐されたデータ信号d0´は,ブロックα´に入力される。また,ブロックα´に入力されたデータ信号d0´が,そのままブロックα´から出力された場合を考える。勿論,ブロックα´では,データ信号d0´を加工(例えば論理演算処理)して出力することもできる。ブロックα´から出力されるデータ信号d0´は,波形整形回路35に入力される。ここに波形整形回路35を設けることで,ブロックα´の列に属する他のブロックに対し,効果的にデータ信号を伝達することができる。ブロックα´から出力されるデータ信号d0´は,波形整形回路35を経て,スイッチ回路32a´に到達する。スイッチ回路32a´には,アンド回路31a´が接続されている。ここで,このアンド回路31a´にクロック信号と選択信号A´が入力されている場合,データ信号d0´は,第1隣接バス33a´を伝送するデータ信号d1´と,第2隣接バス34a´を伝送するデータ信号d0´´とに分岐される。なお,ここで,データ信号d1´とデータ信号d0´´は,データの内容は実質的に同一である。このようにして,さらなる分岐が達成される。他方,アンド回路31a´に選択信号A´が入力されていない場合,データ信号d0´は,データ信号d1´となって第1隣接バス33a´のみを伝送する。つまり,選択信号A´をアンド回路31a´に入力するか否かを制御することにより,データ信号d0´を分岐させるか否かを任意に決定することができる。
【0058】
ブロックα´から出力されたデータ信号d1´は,第1隣接バス33a´を通じて,ブロックβ´に入力される。ブロックα´とブロックβ´は,列方向に隣接している。そして,ここでも,上述した方法と同様にして,ブロックβ´のアンド回路31b´に選択信号B´を入力することにより,ブロックβ´のスイッチ回路32b´を利用してさらなる分岐を行うことができる。
【0059】
上記のように,ブロックαから出力されるデータ信号は,このブロックαと同列のブロック(β,γ,Δ…)だけでなく,他の列に属するブロック(α´,β´)にも分岐して伝達することが可能となる。このような回路の仕組みをさらに拡張すれば,機能ブロックアレイ19の広範囲に亘って,高速且つ低消費電力でデータ信号を共有することができる。
【0060】
上記ように,本発明のバスシステムによれば,データ信号を多分岐させることにより,多数の機能ブロックで同じデータを共有することができる。例えば,図5に示された例において,ブロックαから出力されるデータ信号を3分岐させて,ブロックβ,ブロックγ,及びブロックΔに同時に入力する場合を考える。この場合,例えば,ブロックβでは,ブロックαから出力された元データの処理を行うことができる。また,ブロックγでは,その元データと,すでに処理済みの前データとの差分処理を行うことができる。さらに,ブロックΔでは,その元データと,すでに処理済みの前々データとの差分処理を行うことができる。このように,本発明のバスシステムを利用すれば,高度な差分処理を並列的に行うことができるため,処理時間を大幅に短縮することができる。このような並列差分処理は,高度な面的又は立体的位相検出や,その制御に応用することができる。例えば,高速並列差分処理は,画像データや音声データなどを処理するにあたり,現状解析(例えば原語の理解)と未来予測(例えば危険物察知)のベクトル演算を行う際に有効である。
【0061】
また,例えば,データ信号を2分岐させるだけでも,データのミラー反転処理や,優先選択的記憶処理,ミラー解析を効果的に行うことができる。また,データアクセスの高速化も期待できる。さらには,対称性や優先性を必要とする処理(内容優先と時間優先の使い分けを必要とする処理)において,メモリアクセスの高速化を実現できる。
【0062】
また,データ信号を多分岐させることで,ベクトル(行列式)やロングワードを分割並列演算することができる。また,データの多分岐することで演算処理の高速化及び効率化を図ることができるため,科学技術計算にも有効である。また,データの分岐により,オーバーラップ演算処理も容易に行うことができる。さらには,同じデータを多数の機能ブロックによって演算処理を行うことができるため,機能ブロックのマルチ接続により,トラフィックネックが解消される。なお,ここに挙げた本発明のバスシステムのメリットは一例に過ぎない。本発明のバスシステムは,その他様々な演算処理に応用することが可能であり,無数のメリットがあるといえる。
【0063】
また,選択信号の系統について説明する。各アンド回路に入力する選択信号の選択は,例えば,図3に示した,経路設定レジスタ書き込みモード(2箇所)の際に行われる場合と,経路設定レジスタ情報変更モードの際に行われる場合とがある。前者は,セットアップモードであり,回路全体を必要なクロック数を経て作業が行われる。後者は,動作中の動的再構成を1クロックで行う必要があり,選択信号の1クロックで及ぶ範囲を規定する必要がある。
【0064】
例えば,選択信号の選択が経路設定レジスタ情報変更モードの際に行われる場合,1クロックで選択信号が動作可能なブロック範囲を規定し,そのブロック群ごとに選択信号グループが分割されて,必要クロック数で書き込みや変更が行われる。まず,同期範囲のブロック数について規定する。すなわち,選択信号の及ぶ範囲は次に規定するしきい値に到達するまでの遅延時間tvthがクロックの周期tpwの1/5の範囲であることを必要であれば規定する。これにより,同期で動作するブロックの範囲が決まり,その範囲は同期動作をする。
・しきい値:(1/5)tpw≧tvth=ntpd+nRC+ntsw
ここで,“n”はスイッチを通過する段数であり,“tpd”は選択信号発生ドライバからスイッチまでの線路の遅延時間,あるいはスイッチ間の線路の遅延時間であり,“RC”はスイッチ及び寄生容量とそこまでの配線抵抗による時定数であり,“tsw”はスイッチの動作遅延である。
【0065】
例えば,1Gbpsのデータレートの信号のクロック周期は2nsであり,tpw=400psとなる。仮に,28nmプロセスのチップ,クロック1Gbpsである場合を考えると,1ブロックの最大線長は300μmがとなってリピータを介さない長さとなり,tpd=2ps,RC=15ps,tsw=15ps(配線最大長さ,RC,tswはRTL設計のバークレイモデルから推定)とすると,その合計は32psとなり,n≦11が得られる。ブロック11段は,前後左右の範囲の任意に渡る制限である。設計上は正方形で区切ることが常識的であり,2の平方根で割った段数すなわち,8ブロック×8ブロックの同期範囲となる。十分な機能を満足することがわかる。当然ながら,さらなる高速動作を期待するのであれば,式の各パラメータを小さくする努力をすれば良い。
【0066】
同期ブロック間の相互作用は通常の非同期回路で制御すればよく,同期ブロック群との間はツリー的に分岐したディマルチプレクサで必要クロック数によりレジスタ入力を変化させることで,同期ブロック間の相互作用を制御できる。もちろん,経路設定レジスタ書き込みモードであっても,上記の経路設定レジスタ情報変更モードと同じように,1クロックで動的再構成をすることは可能である。
【0067】
以上,本願明細書では,本発明の内容を表現するために,図面を参照しながら本発明の実施形態の説明を行った。ただし,本発明は,上記実施形態に限定されるものではなく,本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
【産業上の利用可能性】
【0068】
本発明は,高速かつ低消費電力で動作するバスシステムに関する。従って,本発明は,コンピュータ関連産業において広く利用することができる。
【符号の説明】
【0069】
10…機能ブロック 11…マルチバス 12…バスインターフェース
13…デコーダ 14…制御回路 16…メモリアドレス
17…拡張アドレス 18…SRAM 19…機能ブロックアレイ
20…ブロックチップ 21…経路設定レジスタ 22…入力制御部
30…出力制御部 31…アンド回路 32…スイッチ回路
33…第1隣接バス 34…第2隣接バス 35…波形整形回路
36…ドライバ 41…nMOSトランジスタ 42…pMOSトランジスタ
図1
図2
図3
図4
図5