(57)【要約】【課題】半導体チップ中心付近での電力消費が抑えられるオンチップ・バスを提供する。【解決手段】バス１０の一部を構成し、処理ブロックＩＰ０１〜ＩＰ０４の１つに対しバス１０上の情報を取り込む情報取得部２０ａ、２０ｂと、自身に接続する処理ブロックからの情報か他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部２１ａ、２１ｂとを有した単位バス部１１〜１４を、環状構造となるように接続して、半導体チップ１内の複数の処理ブロックＩＰ０１〜ＩＰ０４を結合するバス１０を構成する。【選択図】図１
2008198154.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップ内の複数の処理ブロックを結合するバスにおいて、
前記処理ブロックの１つに対し前記バス上の情報を取り込む情報取得部と、該処理ブロックからの情報か他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部とを有した単位バス部を有し、
複数の前記単位バス部を環状構造となるように接続したことを特徴とするバス。
【請求項２】
４つ以上の前記単位バス部を環状に配置したことを特徴とする請求項１記載のバス。
【請求項３】
前記処理ブロックが出力する情報は前記処理ブロックの識別情報を含み、前記情報取得部は自身の前記単位バス部に接続された前記処理ブロックの前記識別情報を記憶し、記憶された前記識別情報と同一の前記識別情報を含む情報を受信した場合には、その情報を消滅させることを特徴とする請求項１または２記載のバス。
【請求項４】
前記環状構造を構成している前記単位バス部間に、フリップフロップを接続したことを特徴とする請求項１乃至３のいずれか一項に記載のバス。
【請求項５】
前記処理ブロックを前記環状構造の内側に配置したことを特徴とする請求項１乃至４のいずれか一項に記載のバス。
【請求項６】
半導体チップ内の複数の処理ブロックを結合するバスを有した半導体装置において、
前記バスは、前記処理ブロックの１つに対し前記バス上の情報を取り込む情報取得部と、該処理ブロックからの情報か他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部とを有した複数の単位バス部が、環状構造となるように接続されることによって構成されていることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス及び半導体装置に関し、特に、半導体チップ内の複数の処理ブロックを結合するオンチップ・バス及びそのようなバスを有する半導体装置に関する。
【背景技術】
【０００２】
半導体チップ内で各種の処理ブロックを結合するオンチップ・バスの規格として、ＡＲＭ社のＡＭＢＡ（Advanced Microcontroller Bus Architecture）が普及している。近年発表されたＡＭＢＡ３．０では、アドレス、制御、データを独立に転送できるなど、より高性能なＡＸＩ（Advanced eXtensible Interface）と呼ばれるバスが用いられている。
【０００３】
図５は、従来のＡＸＩバスの例を示す図である。
ＡＸＩバスは、半導体チップ８００内の各種の処理ブロックＩＰ０１、ＩＰ０２、ＩＰ０３、ＩＰ０４を結合するオンチップ・バスである。ＡＸＩのバス部９００は、コマンドバス９０１と、データバス９０２とを有しており、さらに、どの処理ブロックＩＰ０１〜ＩＰ０４からのコマンドまたはデータを受け取るか選択するセレクタ部９０３、９０４を、処理ブロックＩＰ０１〜ＩＰ０４ごとに有している。
【０００４】
なお、処理ブロックＩＰ０１〜ＩＰ０４は、例えば、プロセッサ、メモリコントローラ、入出力コントローラなどであり、バスマスタやスレーブとして機能する。
このような従来のＡＸＩのバス部９００では、図５のように、優先的に最短距離で処理ブロックＩＰ０１〜ＩＰ０４が接続されるようにレイアウトされる。
【０００５】
なお、環状構造のバスが、例えば特許文献１または特許文献２に開示されているが、ＡＸＩに準拠しているものはなかった。
【特許文献１】特開２０００−１８８３３５号公報
【特許文献２】特開２００１−１５６８１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図５のようなレイアウトで、処理ブロックを最短距離で接続することが優先されると、バスが半導体チップの中心付近に集中する。一般的に半導体チップのＩＲドロップはチップの中心付近で一番大きく、半導体チップの中心付近に動作周波数の高いバスが集中することで電力消費が大きくなり、ＩＲドロップが増大してしまうという問題があった。
【０００７】
本発明はこのような点に鑑みてなされたものであり、半導体チップ中心付近での電力消費が抑えられるバス及びそのようなバスを備えた半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明者は、半導体チップ内の複数の処理ブロックを結合するバスとして、前記処理ブロックの１つに対し前記バス上の情報を取り込む情報取得部と、該処理ブロックからの情報か他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部とを有した単位バス部を有し、複数の前記単位バス部を環状構造となるように接続したことを特徴とするバスを提案する。
【０００９】
上記の構成によれば、複数の単位バス部を環状構造となるように接続したことでバスが半導体チップの中心付近に集中することが防止される。
また、半導体チップ内の複数の処理ブロックを結合するバスを有した半導体装置において、前記バスは、前記処理ブロックの１つに対し前記バス上の情報を取り込む情報取得部と、該処理ブロックからの情報か他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部とを有した複数の単位バス部が、環状構造となるように接続されることによって構成されていることを特徴とする半導体装置を提案する。
【００１０】
上記の構成によれば、バスが半導体チップの中心付近に集中しないような配置となる。
【発明の効果】
【００１１】
本発明は、バスから情報取得するための情報取得部と、出力する情報を選択する選択部をユニット化した単位バスを、環状構造となるように複数接続したので、バスが半導体チップの中心付近に集中する配置を避けることができ、半導体チップ中心付近での電力消費を抑えることができる。これにより、ＩＲドロップを抑制でき配線遅延などを少なくすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態の半導体装置の構成を示す図である。
本実施の形態の半導体装置は、半導体チップ１内に搭載された複数の処理ブロックＩＰ０１〜ＩＰ０４と、処理ブロックＩＰ０１〜ＩＰ０４間を接続するバス１０を有している。
【００１３】
処理ブロックＩＰ０１〜ＩＰ０４は、例えば、プロセッサ、メモリコントローラ、入出力コントローラなどであり、例えば、ＡＸＩプロトコルに応じてバスマスタやスレーブとして機能する。
【００１４】
第１の実施の形態の半導体装置においてバス１０は、各処理ブロックＩＰ０１〜ＩＰ０４と接続する単位バス部１１、１２、１３、１４を有し、これらの単位バス部１１〜１４を環状構造となるように接続したことを特徴としている。
【００１５】
なお、図１で、黒の矢印はコマンドバス１５、白の矢印はデータバス１６を示している。
各単位バス部１１〜１４は、処理ブロックＩＰ０１〜ＩＰ０４の１つに対しコマンドバス１５やデータバス１６上の情報（コマンド、リードデータまたはライトデータなど）を取り込む情報取得部２０ａ、２０ｂと、その処理ブロックからの情報か、他の処理ブロックから転送されてきた情報のいずれか一方を選択して出力する選択部２１ａ、２１ｂとを有している。
【００１６】
例えば、処理ブロックＩＰ０４に接続されている単位バス部１４において、情報取得部２０ａは、コマンドバス１５上のコマンドが処理ブロックＩＰ０４宛であれば、そのコマンドを取得して、処理ブロックＩＰ０４に送出する。処理ブロックＩＰ０４宛でなければスルーする。また、情報取得部２０ｂは、データバス１６上のデータが処理ブロックＩＰ０４宛であれば、そのデータを取得して、処理ブロックＩＰ０４に送出する。処理ブロックＩＰ０４宛でなければスルーする。
【００１７】
一方、選択部２１ａは、処理ブロックＩＰ０４から送出されたコマンドか、コマンドバス１５を介して他の処理ブロックＩＰ０１、ＩＰ０２、ＩＰ０３から送出されたコマンドのいずれか一方を選択して出力する。選択部２１ｂは、処理ブロックＩＰ０４から送出されたデータか、データバス１６を介して他の処理ブロックＩＰ０１、ＩＰ０２、ＩＰ０３から送出されたデータのいずれか一方を選択して出力する。
【００１８】
以下、単位バス部１１〜１４の詳細を説明する。
図２は、単位バス部の詳細な構成を示す図である。
なお、ここでは、図１の処理ブロックＩＰ０４に接続する単位バス部１４を示している。また、データバス１６としてライトデータ用のライトデータバス１６ａとリードデータ用のリードデータバス１６ｂの２つ示している。それに応じて、２つの情報取得部２０ｂ−１、２０ｂ−２と、選択部２１ｂ−１、２１ｂ−２を設けている。
【００１９】
コマンドを取得する情報取得部２０ａは、レジスタ２０１、２０２、比較部２０３、２０４及びセレクタ２０５、２０６を有している。
レジスタ２０１は、処理ブロックＩＰ０４のアドレス値を記憶し、レジスタ２０２は、処理ブロックＩＰ０４の識別情報（以下、ＩＤ（IDentification）値）を記憶する。
【００２０】
比較部２０３は、転送されてきたコマンドに含まれるアドレス値と、レジスタ２０１に記憶されているアドレス値とを比較する。比較部２０４は、レジスタ２０２に記憶されている処理ブロックＩＰ０４のＩＤ値と、セレクタ２０５から送出されるコマンドに含まれるＩＤ値とを比較する。
【００２１】
セレクタ２０５は、比較部２０３での比較により、レジスタ２０１のアドレス値と、転送されてきたコマンドのアドレス値が一致した場合には、コマンドを処理ブロックＩＰ０４に送出する。不一致の場合にはスルーして後段のセレクタ２０６に入力する。
【００２２】
セレクタ２０６は、比較部２０４での比較により、レジスタ２０２のＩＤ値と転送されてきたコマンドのＩＤ値が一致した場合には、そのコマンドは処理ブロックＩＰ０４が送出したコマンドであり、受信可能なスレーブがなかったとしてそのコマンドを消滅し、不一致の場合のみスルーして選択部２１ａに入力する。
【００２３】
ライトデータを取得する情報取得部２０ｂ−１は、レジスタ２１１、比較部２１２及びセレクタ２１３を有している。
レジスタ２１１は、転送されてきたコマンドに含まれるＩＤ値を記憶する。
【００２４】
比較部２１２は、ライトデータに含まれるＩＤ値とレジスタ２１１に記憶されたＩＤ値とを比較する。
セレクタ２１３は、比較部２１２での比較により、レジスタ２０１のＩＤ値と転送されてきたライトデータのＩＤ値とが一致した場合には、ライトデータを処理ブロックＩＰ０４に書き込み、不一致の場合にはスルーして選択部２１ｂ−１に入力する。
【００２５】
リードデータを取得する情報取得部２０ｂ−２は、情報取得部２０ｂ−１と同様に、レジスタ２２１、比較部２２２及びセレクタ２２３を有している。
レジスタ２２１は、処理ブロックＩＰ０４から発行されるコマンドに含まれるＩＤ値を記憶する。
【００２６】
比較部２２２は、転送されてきたリードデータに含まれるＩＤ値と、レジスタ２２１に記憶されたＩＤ値とを比較する。
セレクタ２２３は、比較部２２２での比較により、レジスタ２２１のＩＤ値と転送されてきたリードデータのＩＤ値とが一致した場合には、リードデータを処理ブロックＩＰ０４に送出し、不一致の場合にはスルーして選択部２１ｂ−２に入力する。
【００２７】
選択部２１ａは、調停器３０１とセレクタ３０２を有している。調停器３０１は、セレクタ３０２に対し、処理ブロックＩＰ０４で発行されたコマンドか、コマンドバス１５を介して転送されてきたコマンドのいずれか一方を選択させる。例えば、毎回、選択するコマンドを変更したり、優先度の高いコマンドを選択させるようにする。
【００２８】
セレクタ３０２は、調停器３０１からの信号に応じて、入力される２つのコマンドの一方を選択して、隣接する他の単位バス部に送出する。
選択部２１ｂ−１も同様に、調停器３１１とセレクタ３１２を有しており、調停器３１１からの信号に応じて、セレクタ３１２が処理ブロックＩＰ０４からのライトデータか、他の処理ブロックＩＰ０１〜ＩＰ０３から転送されてきたライトデータのいずれか一方を選択して出力する。
【００２９】
選択部２１ｂ−２も同様に、調停器３２１とセレクタ３２２を有しており、調停器３２１からの信号に応じて、セレクタ３２２が処理ブロックＩＰ０４からのリードデータか、他の処理ブロックＩＰ０１〜ＩＰ０３から転送されてきたリードデータのいずれか一方を選択して出力する。
【００３０】
以下、本実施の形態の半導体装置の動作を説明する。
例えば、処理ブロックＩＰ０４がバスマスタとして機能し、コマンドを発行した場合、処理ブロックＩＰ０４と接続した単位バス部１４において、以下の動作が行われる。
【００３１】
ＡＸＩプロトコルでは、送信元がコマンドに自身のＩＤ値を付加して送信する。処理ブロックＩＰ０４から発行されたコマンドに含まれるＩＤ値は、単位バス部１４の情報取得部２０ａ、２０ｂ−２のレジスタ２０２、２２１に記憶される。
【００３２】
選択部２１ａのセレクタ３０２は、調停器３０１からの信号によって処理ブロックＩＰ０４からのコマンドを選択すると、他の単位バス部にコマンドを送出する。このコマンドには宛先のアドレスが付加されており、このアドレスと一致する処理ブロックＩＰ０１〜ＩＰ０３に接続された単位バス部１１〜１３にて、コマンドが取り込まれる。
【００３３】
上記のコマンドがリード命令である場合、処理ブロックＩＰ０４宛に、指定された処理ブロックＩＰ０１〜ＩＰ０３からリードデータが送信される。その際、指定された処理ブロックＩＰ０１〜ＩＰ０３では、受信したコマンドに含まれる処理ブロックＩＰ０４のＩＤ値をリードデータに付加して送信する。単位バス部１４の、情報取得部２０ｂ−２ではリードデータを受信すると、レジスタ２２１に格納されたＩＤ値と、受信したリードデータに含まれるＩＤ値とを比較して一致している場合には、そのリードデータを処理ブロックＩＰ０４に取り込む。
【００３４】
コマンドがライト命令の場合、スレーブ側からデータの受け取りができない旨のｒｅａｄｙ信号が出されていないときには、選択部２１ａを介しライトコマンドを出力した後に、自身のＩＤ値を付加したライトデータを、選択部２１ｂ−１を介して出力する。
【００３５】
なお、コマンドの受け取り手がいなかった場合、図１のような環状バス構造では、単位バス部１４に戻ってくる。しかし、情報取得部２０ａでは、比較部２０４において、レジスタ２０２に格納された処理ブロックＩＰ０４のＩＤ値と入力されたコマンドのＩＤ値が一致した場合に、セレクタ２０６は、受信可能なスレーブがなかったと判断し、コマンドを消滅させる。これによって、不要なコマンドがコマンドバス１５の帯域を使用してしまうことを防止することができる。
【００３６】
一方、処理ブロックＩＰ０４がスレーブの場合、処理ブロックＩＰ０４と接続した単位バス部１４において、以下の動作が行われる。
処理ブロックＩＰ０１〜ＩＰ０３のいずれかがバスマスタである場合、バスマスタから処理ブロックＩＰ０４宛に送信されたコマンドは、コマンドに含まれるアドレス値によって情報取得部２０ａにて取得され、処理ブロックＩＰ０４に入力される。さらに、コマンドに含まれるバスマスタのＩＤ値が、情報取得部２０ｂ−１のレジスタ２１１に記憶される。
【００３７】
バスマスタからのコマンドがリード命令の場合、処理ブロックＩＰ０４は、コマンドに付加されたバスマスタのＩＤ値を付加したリードデータを、選択部２１ｂ−２を介して出力する。
【００３８】
一方、バスマスタからのコマンドがライト命令の場合、情報取得部２０ｂ−１は、ライトデータバス１６ａを介して送信されたライトデータに付加されたＩＤ値と、レジスタ２１１に記憶されているＩＤ値とを比較して一致していれば、ライトデータを処理ブロックＩＰ０４に書き込む。
【００３９】
以上のように、第１の実施の形態の半導体装置では、図１、図２のような単位バス部１１〜１４を環状に接続して配置しているので、バスが半導体チップ１の中心付近に集中することが防止され、半導体チップ１の中心付近でのＩＲドロップを防止することができる。
【００４０】
また、上記の構成は、バスマスタやスレーブとなる各処理ブロックＩＰ０１〜ＩＰ０４は、ＡＸＩプロトコルの動作のままバス１０に接続することができる。
なお、上記の説明では、４つの処理ブロックＩＰ０１〜ＩＰ０４と接続する４つの単位バス部１１〜１４を用いた場合について示したが、この数に限定されることはなく、２つや３つの単位バス部を環状バス構造となるように接続してもよい。但し、レイアウトのしやすさから４つ以上の単位バス部を、図１のように環状に配置することが望ましい。
【００４１】
また、上記説明では、図２のように、自身が発行したコマンドに対して受け取り手がなく、バス１０を一周した場合には、セレクタ２０６によって消滅させるようにしたが、ライトデータに対しても同様にできる。その場合、情報取得部２０ｂ−１に、情報取得部２０ａのような、処理ブロックＩＰ０４のＩＤ値を格納するレジスタ、入力されたライトデータのＩＤ値とレジスタに格納されたＩＤ値を比較する比較部、ＩＤ値が一致した場合には入力されたライトデータがそれ以上バス１０に流れないように消滅させるセレクタと、を設ければよい。
【００４２】
また、情報取得部２０ａ、２０ｂ−１、２０ｂ−２や、選択部２１ａ、２１ｂ−１、２１ｂ−２は、処理ブロックＩＰ０４がバスマスタのみ、またはスレーブのみの機能をする場合には、必ずしも全て必要としない。
【００４３】
ところで、図１のような環状のバス１０の場合、時間の区切りがなく、例えば、バスマスタが発行したコマンドが、スレーブに取り込まれる前に、バス１０を一周してバスマスタに接続された単位バス部によって消滅してしまうなどの、ループロジックが発生する場合がある。これを防ぐためには以下のようにすればよい。
【００４４】
図３は、フリップフロップをバスの一部に設けた半導体装置の構成を示す図である。
図１と同じ構成要素については同一符号とし、説明を省略する。
図３では、単位バス部１１〜１４を接続するコマンドバス１５、データバス１６のそれぞれ一箇所に、フリップフロップ（ＦＦ）４０１、４０２を設けている。このＦＦ４０１、４０２では、図示しないクロック信号に同期してコマンドやデータを取り込み出力する。これによって、クロック信号の周期で時間を区切ることができ、ループロジックを回避することができる。
【００４５】
また、上記の説明では、処理ブロックＩＰ０１〜ＩＰ０４を全て、環状のバス１０の外側に配置した場合について説明したが、内側に配置するようにしてもよい。
図４は、処理ブロックを環状バスの内側に設けた場合の半導体装置の構成を示す図である。
【００４６】
図１と同じ構成要素については同一符号としている。また、単位バス部１１〜１４、５０１内の構成については図示を省略している。
図４の半導体装置では、環状に配置した５つの単位バス部１１〜１４、５０１のうち、単位バス部５０１は、環状のバス１０の内側に配置した処理ブロックＩＰ０５と接続している。これにより、半導体装置の省スペース化も実現可能である。
【００４７】
図４の例は、１つの処理ブロックＩＰ０５のみを環状のバス１０の内側に配置したが、複数配置してもよいことはいうまでもない。但し、半導体チップ１の中心部の電力消費を抑えるためには、動作の遅いモジュールを配置することが望ましい。
【００４８】
なお、図４のような構成に図３で示したＦＦを配置するようにしてもよい。
【図面の簡単な説明】
【００４９】
【図１】本実施の形態の半導体装置の構成を示す図である。
【図２】単位バス部の詳細な構成を示す図である。
【図３】フリップフロップをバスの一部に設けた半導体装置の構成を示す図である。
【図４】処理ブロックを環状バスの内側に設けた場合の半導体装置の構成を示す図である。
【図５】従来のＡＸＩバスの例を示す図である。
【符号の説明】
【００５０】
１  半導体チップ
１０  バス
１１、１２、１３、１４  単位バス部
１５  コマンドバス
１６  データバス
２０ａ、２０ｂ  情報取得部
２１ａ、２１ｂ  選択部
ＩＰ０１、ＩＰ０２、ＩＰ０３、ＩＰ０４  処理ブロック
【図１】
2008198154.tif 000003
【図２】
2008198154.tif 000004
【図３】
2008198154.tif 000005
【図４】
2008198154.tif 000006
【図５】
2008198154.tif 000007