(57)【要約】【課題】メモリの不必要な起動を抑制し、半導体集積回路装置の低消費電力化を実現する。【解決手段】例えば、ＳＲＡＭなどに代表されるアクセスレイテンシ不変のメモリブロックＭＥＭ１と演算ブロックＩＰ１との間にメモリ起動制御ブロックＣＴＲＬ１を設ける。メモリ起動制御ブロックＣＴＲＬ１は、演算ブロックＩＰ１から入力されるアドレス信号ＡＤＤＲ１１と命令信号ＣＭＤ１１を解釈し、同一メモリアドレスに対して２回以上連続して読み出し命令が発行された場合には、メモリブロックＭＥＭ１に対するメモリ起動信号ＣＬＫ１２を停止する。演算ブロックＩＰ１は、この２回目以降の読み出し命令に際しては、メモリブロックＭＥＭ１が保持している１回目の読み出しデータを受信する。【選択図】図１
2007299044.tif 000002
【特許請求の範囲】
【請求項１】
アクセスレイテンシ不変のメモリブロックと、
前記メモリブロックに対して命令を発行し、前記メモリブロックの記憶データを用いて所望の処理を行う演算ブロックと、
前記演算ブロックが前記メモリブロックに対して同一メモリアドレスに向けた読み出し命令を連続して発行した際に、２回目以降の読み出し命令に伴う前記メモリブロックの読み出し動作を停止するメモリ起動制御ブロックとを有することを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記メモリブロックに対するクロック信号の供給を停止することで、前記メモリブロックの読み出し動作を停止することを特徴とする半導体集積回路装置。
【請求項３】
請求項１記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記２回目以降の読み出し命令をオペレーションを行わない命令に変換して前記メモリブロックに伝達することで、前記メモリブロックの読み出し動作を停止することを特徴とする半導体集積回路装置。
【請求項４】
請求項１記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記演算ブロック内に配置されることを特徴とする半導体集積回路装置。
【請求項５】
請求項１記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記メモリブロック内に配置されることを特徴とする半導体集積回路装置。
【請求項６】
請求項２記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、
外部クロック信号が入力され、前記外部クロック信号の第１レベルから第２レベルへの遷移に同期して入力命令信号を保持する第１バッファ回路と、
前記外部クロック信号の第１レベルから第２レベルへの遷移に同期して入力アドレス信号を保持する第２バッファ回路と、
前記入力命令信号と前記第１バッファ回路の出力信号を比較し、２つの信号がともに読み出し命令の場合は第３レベルの信号を出力し、それ以外の場合は第４レベルの信号を出力する読み出し命令判定回路と、
前記入力アドレス信号と前記第２バッファ回路の出力信号を比較し、２つの信号がともに同じアドレスの場合は第５レベルの信号を出力し、それ以外の場合は第６レベルの信号を出力するアドレス比較回路と、
前記読み出し命令判定回路の出力信号が前記第３レベルの信号であり、なおかつ前記アドレス比較回路の出力信号が前記第５レベルの信号である場合は第７レベルの信号を出力し、それ以外の場合は第８レベルの信号を出力する否定論理積回路と、
前記否定論理積回路の出力信号と前記外部クロック信号が入力され、前記外部クロック信号が前記第１レベルの場合は前記否定論理積回路の出力信号をそのまま出力し、前記外部クロック信号が前記第２レベルの場合は直前の前記第１レベルであった際の前記否定論理積回路の出力信号を保持する逆相ラッチ回路と、
前記逆相ラッチ回路の出力信号と前記外部クロック信号が入力され、前記逆相ラッチ回路の出力信号が前記第７レベルの信号の場合は前記外部クロック信号を前記メモリブロックに伝達し、前記逆相ラッチ回路の出力信号が前記第８レベルの信号の場合は前記外部クロック信号を前記メモリブロックに伝達しない論理積回路とを備えることを特徴とする半導体集積回路装置。
【請求項７】
請求項３記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、
外部クロック信号が入力され、前記外部クロック信号の第１レベルから第２レベルへの遷移に同期して入力命令信号を保持する第１バッファ回路と、
前記外部クロック信号の第１レベルから第２レベルへの遷移に同期して入力アドレス信号を保持する第２バッファ回路と、
前記入力命令信号と前記第１バッファ回路の出力信号を比較し、２つの信号がともに読み出し命令の場合は第３レベルの信号を出力し、それ以外の場合は第４レベルの信号を出力する読み出し命令判定回路と、
前記入力アドレス信号と前記第２バッファ回路の出力信号を比較し、２つの信号がともに同じアドレスの場合は第５レベルの信号を出力し、それ以外の場合は第６レベルの信号を出力するアドレス比較回路と、
前記読み出し命令判定回路の出力信号が前記第３レベルの信号であり、なおかつ前記アドレス比較回路の出力信号が前記第５レベルの信号の場合は第７レベルの信号を出力し、それ以外の場合は第８レベルの信号を出力する否定論理積回路と、
前記否定論路積回路の出力信号と前記入力命令信号が入力され、前記否定論理積回路の出力信号が前記第７レベルの信号の場合は前記入力命令信号をオペレーションを行わない命令に変換して前記メモリブロックに対して出力し、前記否定論理積回路の出力信号が前記第８レベルの信号の場合は前記入力命令信号を前記メモリブロックに対してそのまま出力する命令変換回路とを備えることを特徴とする半導体集積回路装置。
【請求項８】
第１メモリブロックおよび第２メモリブロックと、
前記第１メモリブロックに対して命令を発行し、前記第１メモリブロックの記憶データを用いて所望の処理を行う第１演算ブロックと、
前記第２メモリブロックに対して命令を発行し、前記第２メモリブロックの記憶データを用いて所望の処理を行う第２演算ブロックとを含み、
前記第１メモリブロックと前記第１演算ブロックとの間の通信速度は、前記第２メモリブロックと前記第２演算ブロックとの間の通信速度よりも遅く、
前記第１メモリブロックのアクセスレイテンシは不変であり、
前記第１メモリブロックと前記第１演算ブロックとの間の信号線には、前記第１演算ブロックが前記第１メモリブロックに対して同一メモリアドレスに向けた読み出し命令を連続して発行した際に、２回目以降の読み出し命令に伴う前記第１メモリブロックの読み出し動作を停止するメモリ起動制御ブロックが設けられることを特徴とする半導体集積回路装置。
【請求項９】
請求項８記載の半導体集積回路装置において、
前記第１演算ブロックは、音声または画像の信号処理を行うアクセラレータであることを特徴とする半導体集積回路装置。
【請求項１０】
請求項８記載の半導体集積回路装置において、
前記第１メモリブロックは、ＳＲＡＭであることを特徴とする半導体集積回路装置。
【請求項１１】
請求項８記載の半導体集積回路装置において、
前記半導体集積回路装置は、１つの半導体チップ上に形成されることを特徴とする半導体集積回路装置。
【請求項１２】
メモリブロックと、
前記メモリブロックに対して命令を発行し、前記メモリブロックの記憶データを用いて所望の処理を行う演算ブロックと、
前記演算ブロックが前記メモリブロックに対して同一メモリアドレスに向けた読み出し命令を連続して発行した際に、２回目以降の読み出し命令に伴う前記メモリブロックの読み出し動作を停止するメモリ起動制御ブロックとを有し、
前記メモリブロックは、１回目の読み出し命令に伴う第１データの出力動作を、新たな読み出し動作を行うまで持続し、
前記演算ブロックにおいて、前記メモリブロックに対して前記１回目の読み出し命令を発行してから前記第１データを受信するまでのタイミングと、前記メモリブロックに対して前記２回目以降の読み出し命令を発行してから前記第１データを受信するまでのタイミングは同一であることを特徴とする半導体集積回路装置。
【請求項１３】
請求項１２記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記メモリブロックに対するクロック信号の供給を停止することで、前記メモリブロックの読み出し動作を停止することを特徴とする半導体集積回路装置。
【請求項１４】
請求項１２記載の半導体集積回路装置において、
前記メモリ起動制御ブロックは、前記２回目以降の読み出し命令をオペレーションを行わない命令に変換して前記メモリブロックに伝達することで、前記メモリブロックの読み出し動作を停止することを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関するものであり、特に、携帯機器向けシステムＬＳＩなどの半導体集積回路装置に適用して有用なものである。
【背景技術】
【０００２】
演算回路とメモリとの間のデータ転送速度を向上させる技術として、例えばアクセスレイテンシ可変のメモリに対し、演算回路側と連携してメモリの起動を制御し、同一アドレスへの読み出し命令が連続した際に２回目以降のアクセスレイテンシを短縮する技術が知られている（例えば、特許文献１および特許文献２参照）。
【特許文献１】特開昭５７−１０８５３号公報
【特許文献２】特開平１１−１８４７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、携帯電話向けのシステムＬＳＩを始めとしたＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）はＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）の集積が容易になったため、高機能化が進んでいる。そのため、従来のＳｏＣ上にはＩＰとしてＣＰＵコアとメモリが主に搭載されていたが、現在は、ＣＰＵ、メモリの他に、多数のアクセラレータが搭載されるようになってきた。個々のアクセラレータでは、大規模データの高度な処理を行うためそれぞれが大容量のメモリを搭載している。
【０００４】
このようなアクセラレータで行われる処理の代表的なものは、映像や音声の圧縮及び伸張処理である。この処理の特徴は、同一のデータ（同一アドレスのメモリデータ）を複数回参照することである。例えば、映像の伸張処理では、前後のフレームデータからその間のフレームデータを補完したり、現在のフレームデータから次フレームデータを予測したりする。そのためメモリへのアクセス回数が増大し、メモリ電力がＳｏＣ電力の大部分を占めるようになってきている。従って、メモリ電力の削減がＳｏＣ設計において重要な課題になっている。
【０００５】
このように、一般的なＳｏＣにおいては、メモリ電力、特にアクセラレータに搭載されるメモリ電力の占める割合が増大してきている。従って、このメモリ電力を削減することが強く求められる。この要求は、バッテリによって駆動される携帯電話向けのＳｏＣ等では、更に重要なものとなる。
【０００６】
こうした中、例えば、特許文献１または特許文献２の技術が知られている。これらの技術を活用して、演算回路側と連携しメモリの不必要な起動を抑制することでメモリ電力を削減することが可能となる。しかしながら、これらの技術はいずれもアクセスレイテンシ可変のメモリ、例えばＤＲＡＭなどを対象としていた。つまり、アクセスレイテンシ可変のメモリに対し同一アドレスへの読み出し命令が連続した際に、２回目以降は既に読み出し済みの値をそのまま演算回路側へ出力することでアクセスレイテンシを隠蔽し、読み出し動作を高速化することが目的であった。このとき、メモリのアクセスレイテンシは発行される命令により変化するため、これらの技術では、メモリの動作を模擬し、出力データの準備が完了したことを演算回路側へ通知するシーケンサ等が必須であった。特許文献１の第１図信号線２０、特許文献２の第１図バンクビジーカウンタ６の出力信号及びビジーセレクタ８の出力信号が、このシーケンサに相当する。
【０００７】
ところが、本願発明で対象としているのはＳｏＣ等に搭載されるメモリ、つまりアクセスレイテンシ不変のメモリである。アクセスレイテンシ不変のメモリに対し、従来技術を適用してもメモリアクセスを高速化できない。従って、従来技術をアクセスレイテンシ不変のメモリに対し適用する動機がなかった。
【０００８】
そこで、本願発明者らは、ＳｏＣに搭載されるアクセスレイテンシ不変のメモリに対し、その不必要な起動を抑制することで低電力化する手法を検討した。この手法においては、従来技術で必須となっていたデータ準備完了を通知するシーケンサをメモリ側に設ける必要がなく、また、異なるアクセスレイテンシに対応して異なるタイミングでデータを取り込む機能を演算回路側に設ける必要もないため、面積オーバーヘッドを最小にし、電力削減効果を増大させることが出来る。
【０００９】
ただし、このようにメモリの起動を制御するためには、メモリ起動信号を加工する必要があるためメモリへのアクセス時間が悪化してしまう。アクセスレイテンシ不変のメモリとして代表的なＳＲＡＭは高速動作が特徴であり、アクセス時間悪化をまねくメモリ起動制御の実施は困難であった。そこで、本願発明者らは、ＳｏＣを構成するＩＰの中でも低周波数で動作するＩＰ、たとえばアクセラレータに着目し、アクセラレータに接続されるアクセスレイテンシ不変のメモリの不必要な起動を抑制することでメモリ電力を削減し、半導体集積回路装置の低消費電力化を検討した。
【００１０】
この低消費電力化の検討に際し、ＳｏＣを構成する多数のＩＰのうち、高速動作が必要なＩＰはＣＰＵやキャッシュなど一部に限定され、アクセラレータ群は必ずしも高速動作が必要ないとの見解に至った。つまり、アクセラレータ群に搭載される多数のメモリはキャッシュとして用いられるメモリよりも低速動作可能ということである。従って、アクセラレータにおいては演算回路からメモリへのアクセス時間に十分な余裕があり、メモリの起動信号を加工し不必要な起動を抑制することが可能となる。
【００１１】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１３】
すなわち、本発明の半導体集積回路装置は、アクセスレイテンシ不変のメモリブロックと演算ブロックを有し、演算ブロックがメモリブロックに対して同一メモリアドレスに向けた読み出し命令を連続して発行した際に、２回目以降の読み出し命令に伴うメモリブロックの読み出し動作を停止するメモリ起動制御ブロックを備えたことを特徴とする。これによって、メモリの不必要な起動が抑制でき、メモリ消費電力を削減できる。
【００１４】
具体的には、演算ブロックからメモリブロックに向けて出力されるアドレス信号と命令信号を解釈し、２回以上連続して同一アドレスへの読み出し命令が発行された場合には、例えば、メモリブロックにクロック信号を供給しないことによりメモリブロックの実動作を停止する。また、例えば、メモリブロックにノーオペレーション命令を供給することでメモリブロックの実動作を停止することも可能である。メモリブロックは、１回目の読み出し命令で読み出したデータを保持しているため、演算ブロックは、２回目以降の読み出し命令に際してこの保持されているデータを受信すればよい。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、メモリの不必要な起動を抑制しメモリ消費電力を削減できるため、半導体集積回路装置を低消費電力化することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
図１は、本発明の一実施の形態による半導体集積回路装置において、その構成の一例を示すブロック図である。図１に示す半導体集積回路装置は、演算ブロックＩＰ１、メモリブロックＭＥＭ１、メモリ起動制御ブロックＣＴＲＬ１から構成されている。メモリ起動制御ブロックＣＴＲＬ１は、バッファ回路ＢＵＦ１１，ＢＵＦ１２、読み出し命令判定回路ＲＥＡＤ１、アドレス比較回路ＣＭＰ１、否定論理積回路ＮＡＮＤ１、逆相ラッチ回路ＩＬＡＴ１、論理積回路ＡＮＤ１から構成される。
【００１８】
演算ブロックＩＰ１の出力端子であるアドレス信号ＡＤＤＲ１１、命令信号ＣＭＤ１１、データ１１信号ＤＡＴ１１は、メモリブロックＭＥＭ１の入力端子へそれぞれ接続され、アドレス信号ＡＤＤＲ１１、命令信号ＣＭＤ１１は、メモリ起動制御ブロックＣＴＲＬ１の入力端子へそれぞれ接続される。メモリブロックＭＥＭ１の出力端子であるデータ１２信号ＤＡＴ１２は、演算ブロックＩＰ１の入力端子へ接続される。メモリ起動制御ブロックＣＴＲＬ１の出力端子であるメモリ起動信号ＣＬＫ１２は、メモリブロックＭＥＭ１の入力端子へ接続される。また、演算ブロックＩＰ１とメモリ起動制御ブロックＣＴＲＬ１には、クロック信号ＣＬＫ１１が入力される。ここまでに挙げたアドレス信号ＡＤＤＲ１１、命令信号ＣＭＤ１１、データ１１信号ＤＡＴ１１、データ１２信号ＤＡＴ１２は、単一ビットであっても複数ビットであっても良い。また、バッファ回路ＢＵＦ１１，ＢＵＦ１２も同様に単一ビットであっても複数ビットであっても良い。
【００１９】
メモリ起動制御ブロックＣＴＲＬ１内の接続は次のようになっている。命令信号ＣＭＤ１１は、バッファ回路ＢＵＦ１１のデータ入力と読み出し命令判定回路ＲＥＡＤ１の一方の入力へ接続され、バッファ回路ＢＵＦ１１のデータ出力ＣＭＤ１２は、読み出し命令判定回路ＲＥＡＤ１の他方の入力へ接続される。アドレス信号ＡＤＤＲ１１は、バッファ回路ＢＵＦ１２のデータ入力とアドレス比較回路ＣＭＰ１の一方の入力へ接続され、バッファ回路ＢＵＦ１２のデータ出力ＡＤＤＲ１２は、アドレス比較回路ＣＭＰ１の他方の入力へ接続される。
【００２０】
また、読み出し命令判定回路ＲＥＡＤ１の出力ＲＥＡＤ＿ＯＵＴ１は、否定論理積回路ＮＡＮＤ１の一方の入力へ接続され、アドレス比較回路ＣＭＰ１の出力ＣＭＰ＿ＯＵＴ１は、否定論理積回路ＮＡＮＤ１の他方の入力へ接続される。否定論理積回路ＮＡＮＤ１の出力となる連続読み出し判定信号ＪＧＥ＿ＯＵＴ１は、逆相ラッチ回路ＩＬＡＴ１のデータ入力へ接続され、逆相ラッチ回路ＩＬＡＴ１のデータ出力ＩＬＡＴ＿ＯＵＴ１は、論理積回路ＡＮＤ１の一方の入力へ接続される。クロック信号ＣＬＫ１１は、バッファ回路ＢＵＦ１１，ＢＵＦ１２と、逆相ラッチＩＬＡＴ１のクロック入力と、論理積回路ＡＮＤ１の他方の入力に接続される。そして、論理積回路ＡＮＤ１の出力がメモリ起動信号ＣＬＫ１２となる。
【００２１】
演算ブロックＩＰ１は、メモリとデータをやり取りしながら演算を行う回路ブロックである。クロック信号ＣＬＫ１１に同期して、アドレス信号ＡＤＤＲ１１、命令信号ＣＭＤ１１、データ１１信号ＤＡＴ１１が出力される。命令信号ＣＭＤ１１の内容としては書き込み命令、読み出し命令、待機命令などがある。メモリ起動制御ブロックＣＴＲＬ１において、命令信号ＣＭＤ１１はバッファ回路ＢＵＦ１１に、アドレス信号ＡＤＤＲ１１はバッファ回路ＢＵＦ１２に、クロック信号ＣＬＫ１１に同期して取り込まれる。読み出し命令判定回路ＲＥＡＤ１は、命令信号ＣＭＤ１１とバッファ回路ＢＵＦ１１の出力信号ＣＭＤ１２の両方が読み出し命令であった場合にハイレベルＶＤＤをＲＥＡＤ＿ＯＵＴ１に出力し、それ以外の場合はロウレベルＶＳＳをＲＥＡＤ＿ＯＵＴ１に出力する。
【００２２】
アドレス比較回路ＣＭＰ１は、アドレス信号ＡＤＤＲ１１とバッファ回路ＢＵＦ１２の出力信号ＡＤＤＲ１２のアドレスが一致した場合にハイレベルＶＤＤをＣＭＰ＿ＯＵＴ１に出力し、一致しなかった場合にロウレベルＶＳＳをＣＭＰ＿ＯＵＴ１に出力する。否定論理積回路ＮＡＮＤ１は、読み出し命令判定回路ＲＥＡＤ１の出力ＲＥＡＤ＿ＯＵＴ１とアドレス比較回路の出力ＣＭＰ＿ＯＵＴ１の両方がハイレベルＶＤＤの場合にロウレベルＶＳＳをＪＧＥ＿ＯＵＴ１に出力し、それ以外の場合にハイレベルＶＤＤをＪＧＥ＿ＯＵＴ１に出力する。
【００２３】
逆相ラッチ回路ＩＬＡＴ１は、クロック信号ＣＬＫ１１がロウレベルＶＳＳの場合はＪＧＥ＿ＯＵＴ１をそのままＩＬＡＴ＿ＯＵＴ１として出力し、クロック信号ＣＬＫ１１がハイレベルＶＤＤの場合は、クロック信号ＣＬＫ１１がロウレベルＶＳＳであった際のＪＧＥ＿ＯＵＴ１の論理値をＩＬＡＴ＿ＯＵＴ１に出力し続ける。論理積回路ＡＮＤ１は、クロック信号ＣＬＫ１１と逆相ラッチ回路ＩＬＡＴ１の出力ＩＬＡＴ＿ＯＵＴ１の両方がハイレベルＶＤＤの場合にハイレベルＶＤＤを、それ以外の場合はロウレベルＶＳＳをメモリ起動信号ＣＬＫ１２に出力する。
【００２４】
メモリブロックＭＥＭ１は、メモリ起動信号ＣＬＫ１２に同期して起動される。この起動に伴い命令信号ＣＭＤ１１が読み出し命令の場合、メモリブロックＭＥＭ１は、アドレス信号ＡＤＤＲ１１で指定されたアドレスのメモリセルに保持している値をデータ１２信号ＤＡＴ１２に出力する。一方、起動に伴い命令信号ＣＭＤ１１が書き込み命令の場合、メモリブロックＭＥＭ１は、アドレス信号ＡＤＤＲ１１で指定されたアドレスのメモリセルにデータ１１信号ＤＡＴ１１の値を書き込む。また、命令信号ＣＭＤ１１が待機の場合はメモリ起動信号ＣＬＫ１２によって起動されても何も行わない。
【００２５】
このような構成において、本実施の形態による半導体集積回路装置の特長は、アドレス信号ＡＤＤＲ１１と命令信号ＣＭＤ１１の２信号を用いてメモリブロックＭＥＭ１の不必要な起動を抑制することである。この動作は、メモリ起動制御ブロックＣＴＲＬ１が同一アドレスへの連続読み出し命令を判断し、必要のない場合にクロック信号ＣＬＫ１がメモリブロックＭＥＭ１へ伝播するのを遮断することで実現する。このとき、メモリ起動制御ブロックＣＴＲＬ１では、現在の命令信号ＣＭＤ１１と１サイクル前の命令信号ＣＭＤ１２から連続読み出し命令であるかを判定した読み出し命令判定信号ＲＥＡＤ＿ＯＵＴ１が生成される。さらに、現在のアドレス信号ＡＤＤＲ１１と１サイクル前のアドレス信号ＡＤＤＲ１２から同一アドレスかどうかを判定したアドレス比較信号ＣＭＰ＿ＯＵＴ１が生成される。そして、読み出し命令判定信号ＲＥＡＤ＿ＯＵＴ１とアドレス比較信号ＣＭＰ＿ＯＵＴ１を用いて連続読み出し判定信号ＪＧＥ＿ＯＵＴ１が生成され、この信号は、同一アドレスへ連続して読み出し命令が発行された場合にロウレベルＶＳＳとなり、それ以外の場合はハイレベルＶＤＤとなる。連続読み出し命令判定信号ＪＧＥ＿ＯＵＴ１は、逆相ラッチＩＬＡＴ１で同期を取った後、クロック遮断用信号ＩＬＡＴ＿ＯＵＴ１として用いられる。
【００２６】
図２は、図１の半導体集積回路装置の動作の一例を示す波形図である。図２において、クロック信号ＣＬＫ１１は、時刻Ｔ１−Ｔ６を周期としてハイレベルＶＤＤとロウレベルＶＳＳを出力している。アドレス信号ＡＤＤＲ１１は、時刻Ｔ１８以前がアドレス値Ａで、時刻Ｔ１８に別のアドレス値Ｂへ変化し、また、命令信号ＣＭＤ１１は、時刻Ｔ２以前が読み出し命令ｒｅａｄで、時刻Ｔ２−Ｔ９が書き込み命令ｗｒｉｔｅ、時刻Ｔ９以降が再び読み出し命令ｒｅａｄであるとする。すなわち、時刻Ｔ１−Ｔ２２の間に、４回のクロック信号ＣＬＫ１１が入力されており、それぞれのクロック信号に伴う命令は、順に、アドレスＡに対する読み出し命令、アドレスＡに対する書き込み命令、アドレスＡに対する読み出し命令、アドレスＡに対する読み出し命令となっている。
【００２７】
時刻Ｔ１−Ｔ２２において、バッファＢＵＦ１２の出力信号ＡＤＤＲ１２は、クロック信号ＣＬＫ１１の立ち上がりに同期してアドレス信号ＡＤＤＲ１１と同じ論理値へと変化するためアドレス値Ａのままとなる。また、バッファＢＵＦ１１の出力信号ＣＭＤ１２も同様に、クロック信号ＣＬＫ１１の立ち上がりに同期して命令信号ＣＭＤ１１と同じ論理値へと変化するため、時刻Ｔ８に読み出し命令ｒｅａｄから書き込み命令ｗｒｉｔｅへと変化し、時刻Ｔ１２に書き込み命令ｗｒｉｔｅから読み出し命令ｒｅａｄへと再び変化する。
【００２８】
次に、読み出し命令判定信号ＲＥＡＤ＿ＯＵＴ１は、命令信号ＣＭＤ１１と命令信号ＣＭＤ１２の両方が読み出し命令ＲＥＡＤの場合にハイレベルＶＤＤとなるので、期間Ｔ３−Ｔ１４でロウレベルＶＳＳとなり、それ以外の期間ではハイレベルＶＤＤとなる。また、アドレス比較信号ＣＭＰ＿ＯＵＴ１は、アドレス信号ＡＤＤＲ１１とアドレス信号ＡＤＤＲ１２が一致する場合にハイレベルＶＤＤとなるので時刻Ｔ１９において、ハイレベルＶＤＤからロウレベルＶＳＳへと変化している。連続読み出し判定信号ＪＧＥ＿ＯＵＴ１は、読み出し命令判定信号ＲＥＡＤ＿ＯＵＴ１とアドレス比較信号ＣＭＰ＿ＯＵＴ１が共にハイレベルＶＤＤの場合にロウレベルＶＳＳとなるため、時刻Ｔ４までと、時刻Ｔ１５−Ｔ２０でロウレベルＶＳＳとなり、それ以外の期間ではハイレベルＶＤＤとなる。
【００２９】
連続読み出し判定信号ＪＧＥ＿ＯＵＴ１は、逆相ラッチＩＬＡＴ１を通過し、ＩＬＡＴ１は、クロック信号ＣＬＫ１１がロウレベルＶＳＳの期間のみ論理値を変化させることが出来る。そのため、ＩＬＡＴ１の出力となるクロック遮断信号ＩＬＡＴ＿ＯＵＴ１は、時刻Ｔ４、Ｔ１５ではＪＧＥ＿ＯＵＴ１がすぐに反映され、時刻Ｔ５にハイレベルＶＤＤへ、時刻Ｔ１６にロウレベルＶＳＳへと遷移するが、時刻Ｔ２０ではすぐに反映されず、時刻Ｔ２１にクロック信号ＣＬＫ１１がロウレベルＶＳＳとなった後に時刻Ｔ２２にハイレベルＶＤＤへと遷移する。クロック信号ＣＬＫ１１は、このクロック遮断信号ＩＬＡＴ＿ＯＵＴ１とアンド演算されることで歯抜けの状態に加工され、その結果同一アドレスへ連続読み出し命令が発行されている期間（例えば４クロック目の命令時）は、クロック信号ＣＬＫ１１がメモリ起動信号ＣＬＫ１２へと伝播されない。メモリ起動信号ＣＬＫ１２は、時刻Ｔ７、Ｔ１１の２回のみロウレベルＶＳＳ→ハイレベルＶＤＤ→ロウレベルＶＳＳと遷移することになり、この期間においてのみメモリ電力が消費される。
【００３０】
また、時刻Ｔ７でのメモリ起動信号ＣＬＫ１２に伴い、データ１１信号ＤＡＴ１１にはデータ値ｄａｔａ１が出力されており、これによりメモリブロックＭＥＭ１のアドレスＡに対してデータ値ｄａｔａ１が書き込まれる。続いて、時刻Ｔ１１でのメモリ起動信号ＣＬＫ１２を受け、時刻Ｔ１３において、メモリブロックＭＥＭ１からデータ１２信号ＤＡＴ１２にデータ値ｄａｔａ１が読み出される。
【００３１】
この読み出しデータは、メモリブロックＭＥＭ１に対してメモリ起動信号ＣＬＫ１２と共に読み出し命令ｒｅａｄが発行されたときのみ更新され、それ以外の場合は出力段に設けられたバッファで当該読み出しデータが保持される。したがって、時刻Ｔ１７のクロック信号ＣＬＫ１１において、演算回路ＩＰ１からメモリブロックＭＥＭ１に向けて同一アドレスへの連続読み出し命令が発生しているが、この場合、メモリブロックＭＥＭ１は起動されず、演算回路ＩＰ１は、前述したＭＥＭ１のバッファで保持されているデータ値ｄａｔａ１を受信することになる。ここで、演算回路ＩＰ１がメモリブロックＭＥＭ１に対して読み出し命令を発行してから、ＩＰ１がＭＥＭ１から読み出しデータを受信するまでのタイミングは、当該読み出し命令が同一アドレスに向けた連続読み出し命令であるか否かに関わらず一定である。
【００３２】
以上、図１のような半導体集積回路装置を用いて図２のような動作を行うことで、同一アドレスへの連続読み出し命令が発生した際のメモリ消費電力を削減できる。また、連続読み出し命令の発生有無に関わらず、演算ブロックＩＰ１がメモリブロックＭＥＭ１からデータを受信するタイミングは一定であるため、前述した特許文献１，２のようにタイミング制御に関わるシーケンサ等は不要であり、小規模の回路でメモリ消費電力の削減が可能となる。
【００３３】
なお、図１において、演算ブロックＩＰ１は、例えば画像処理を行うアクセラレータであり、メモリブロックＭＥＭ１は、例えばアクセスレイテンシが不変である同期式のＳＲＡＭである。このようなアクセラレータは、例えば３３ＭＨｚや６６ＭＨｚなどで動作を行うため、メモリ起動制御ブロックＣＴＲＬ１による遅延は問題とならない。そして、このようなアクセラレータとＳＲＡＭの構成に対してメモリ起動制御ブロックＣＴＲＬ１を実装した場合、アクセラレータの処理内容にもよるが、一例としてメモリ消費電力を５〜６割程度削減することが可能となる。
【００３４】
また、アクセスレイテンシ不変とは、メモリブロックが読み出し命令を受信してから実際にデータ出力を行うまでのタイミング（またはクロックサイクル数）が不変であることを言う。例えば図２において、メモリブロックは、３回目の命令を受信して１クロックサイクルでアクセスを行い、４回目の命令に際しては、アクセスを行っていないため、アクセスレイテンシは、１クロックサイクルで不変である。一方、図２のような動作例を特許文献１や特許文献２の技術に適用した場合、メモリブロックは、３回目の命令を受信して例えば３クロックサイクルでアクセスを行い、４回目の命令に際しては、メモリブロック内の読み出しデータレジスタなどを用いることにより例えば１クロックサイクルでアクセスを行うことになる。すなわち、アクセスレイテンシは可変となる。なお、仮に、図１のメモリブロックＭＥＭ１に特許文献１や特許文献２のような読み出しデータレジスタを設けた場合でも、４回目の命令に際しては１クロックサイクルでアクセスを行うことになるためアクセスレイテンシ不変となる。
【００３５】
図３は、図１の半導体集積回路装置の変形例を示すブロック図である。ここでは、図１の構成例を変形してメモリ起動制御ブロックＣＴＲＬ３を演算ブロックＩＰ３内部に実装した例が示されている。図３に示す半導体集積回路装置は、演算ブロックＩＰ３、メモリブロックＭＥＭ３から構成される。メモリ起動制御ブロックＣＴＲＬ３の構成は、メモリ起動制御ブロックＣＴＲＬ１と同様であり、バッファ回路ＢＵＦ３１，ＢＵＦ３２、読み出し命令判定回路ＲＥＡＤ３、アドレス比較回路ＣＭＰ３、否定論理積回路ＮＡＮＤ３、逆相ラッチ回路ＩＬＡＴ３、論理積回路ＡＮＤ３から構成される。
【００３６】
演算ブロックＩＰ３の出力端子であるアドレス信号ＡＤＤＲ３１、命令信号ＣＭＤ３１、データ３１信号ＤＡＴ３１は、メモリブロックＭＥＭ３の入力端子へそれぞれ接続され、アドレス信号ＡＤＤＲ３１、命令信号ＣＭＤ３１は、演算ブロックＩＰ３内部にあるメモリ起動制御ブロックＣＴＲＬ３にもそれぞれ接続される。メモリブロックＭＥＭ３の出力端子であるデータ３２信号ＤＡＴ３２は、演算ブロックＩＰ３のデータ入力端子へ接続される。また、演算ブロックＩＰ３には、クロック信号ＣＬＫ３１が入力され、演算ブロックＩＰ３で生成されるメモリ起動信号ＣＬＫ３２が、メモリブロックＭＥＭ３の起動信号として入力される。なお、ここまでに挙げたアドレス信号ＡＤＤＲ３１、命令信号ＣＭＤ３１、データ３１信号ＤＡＴ３１、データ３２信号ＤＡＴ３２は単一ビットであっても複数ビットであっても良い。また、バッファ回路ＢＵＦ３１，ＢＵＦ３２も同様に単一ビットであっても複数ビットであっても良い。
【００３７】
演算ブロックＩＰ３内のメモリ起動制御ブロックＣＴＲＬ３の接続は、メモリ起動制御ブロックＣＴＲＬ１と同様に次の通りである。命令信号ＣＭＤ３１は、バッファ回路ＢＵＦ３１のデータ入力と読み出し命令判定回路ＲＥＡＤ３の一方の入力へ接続され、バッファ回路ＢＵＦ３１のデータ出力ＣＭＤ３２は、読み出し命令判定回路ＲＥＡＤ３の他方の入力へ接続される。アドレス信号ＡＤＤＲ３１は、バッファ回路ＢＵＦ３２のデータ入力とアドレス比較回路ＣＭＰ３の一方の入力へ接続され、バッファ回路ＢＵＦ３２のデータ出力ＡＤＤＲ３２は、アドレス比較回路ＣＭＰ３の他方の入力へ接続される。読み出し命令判定回路ＲＥＡＤ３の出力ＲＥＡＤ＿ＯＵＴ３は、否定論理積回路ＮＡＮＤ３の一方の入力へ接続され、アドレス比較回路ＣＭＰ３の出力ＣＭＰ＿ＯＵＴ３は、否定論理積回路ＮＡＮＤ３の他方の入力へ接続される。
【００３８】
否定論理積回路ＮＡＮＤ３の出力となる連続読み出し判定信号ＪＧＥ＿ＯＵＴ３は、逆相ラッチ回路ＩＬＡＴ３のデータ入力へ接続され、逆相ラッチ回路ＩＬＡＴ３のデータ出力ＩＬＡＴ＿ＯＵＴ３は、論理積回路ＡＮＤ３の一方の入力へ接続される。クロック信号ＣＬＫ３１は、バッファ回路ＢＵＦ３１，ＢＵＦ３２と、逆相ラッチＩＬＡＴ３のクロック入力と、論理積回路ＡＮＤ３の他方の入力に接続される。そして、論理積回路ＡＮＤ３の出力がメモリ起動信号ＣＬＫ３２となる。
【００３９】
演算ブロックＩＰ３は、メモリとデータをやり取りしながら演算を行う回路ブロックである。演算ブロックＩＰ３は、クロック信号ＣＬＫ３１に同期して、アドレス信号ＡＤＤＲ３１、命令信号ＣＭＤ３１、データ３１信号ＤＡＴ３１を出力する。命令信号ＣＭＤ３の内容としては、書き込み命令ｗｒｉｔｅ、読み出し命令ｒｅａｄ、待機命令ｗａｉｔなどがある。メモリ起動制御ブロックＣＴＲＬ３において、命令信号ＣＭＤ３１はバッファ回路ＢＵＦ３１に、アドレス信号ＡＤＤＲ３１はバッファ回路ＢＵＦ３２に、クロック信号ＣＬＫ３１に同期して取り込まれる。
【００４０】
読み出し命令判定回路ＲＥＡＤ３は、命令信号ＣＭＤ３１とバッファ回路ＢＵＦ３１の出力信号ＣＭＤ３２の両方が読み出し命令であった場合にハイレベルＶＤＤをＲＥＡＤ＿ＯＵＴ３に出力し、それ以外の場合はロウレベルＶＳＳをＲＥＡＤ＿ＯＵＴ３に出力する。アドレス比較回路ＣＭＯＰ３は、アドレス信号ＡＤＤＲ３１とバッファ回路ＢＵＦ３２の出力信号ＡＤＤＲ３２のアドレスが一致した場合にハイレベルＶＤＤをＣＭＰ＿ＯＵＴ３に出力し、一致しなかった場合にロウレベルＶＳＳをＣＭＰ＿ＯＵＴ３に出力する。否定論理積回路ＮＡＮＤ３は、読み出し命令判定回路ＲＥＡＤ３の出力ＲＥＡＤ＿ＯＵＴ３とアドレス比較回路ＣＭＰ３の出力ＣＭＰ＿ＯＵＴ３の両方がハイレベルＶＤＤの場合にロウレベルＶＳＳをＪＧＥ＿ＯＵＴ３に出力し、それ以外の場合にハイレベルＶＤＤをＪＧＥ＿ＯＵＴ３に出力する。
【００４１】
逆相ラッチＩＬＡＴ３は、クロック信号ＣＬＫ３１がロウレベルＶＳＳの場合はＪＧＥ＿ＯＵＴ３をそのままＩＬＡＴ＿ＯＵＴ３として出力し、クロック信号ＣＬＫ３１がハイレベルＶＤＤの場合は、クロック信号ＣＬＫ３１がロウレベルＶＳＳであった際のＪＧＥ＿ＯＵＴ３の論理値をＩＬＡＴ＿ＯＵＴ３に出力し続ける。論理積回路ＡＮＤ３は、クロック信号ＣＬＫ３１と逆相ラッチＩＬＡＴ３の出力ＩＬＡＴ＿ＯＵＴ３の両方がハイレベルＶＤＤの場合にはハイレベルＶＤＤを、それ以外の場合にはロウレベルＶＳＳをメモリ起動信号ＣＬＫ３２に出力する。
【００４２】
メモリブロックＭＥＭ３は、メモリ起動信号ＣＬＫ３２に同期して起動される。このメモリ起動信号ＣＬＫ３２に伴う命令信号ＣＭＤ３１が読み出し命令の場合、メモリブロックＭＥＭ３は、アドレス信号ＡＤＤＲ３１で指定されたアドレスのメモリセルに保持している値をデータ３２信号ＤＡＴ３２に出力する。一方、メモリ起動信号ＣＬＫ３２に伴う命令信号ＣＭＤ３１が書き込み命令の場合、メモリブロックＭＥＭ３は、アドレス信号ＡＤＤＲ３１で指定されたアドレスのメモリセルにデータ３１信号ＤＡＴ３１の値を書き込む。なお、命令信号ＣＭＤ３１が待機の場合は、メモリ起動信号ＣＬＫ３２によって起動されても何も行わない。
【００４３】
以上、図３の半導体集積回路装置のように演算ブロックＩＰ３内にあらかじめメモリ起動制御ブロックＣＴＲＬ３を実装しておけば、演算ブロック、メモリブロック、メモリ起動制御ブロックを別々にレイアウトするよりも、タイミングやレイアウト面積の点で最適化が可能になる。したがって、図３の構成例を用いることで、図１で述べたような効果に加えて、更に小面積化が可能となり、また、図１の構成例に比べて演算ブロックとメモリブロック間の通信速度を高速化することが可能となる。
【００４４】
図４は、図１の半導体集積回路装置の他の変形例を示すブロック図である。ここでは、図１の構成例を変形してメモリ起動制御ブロックＣＴＲＬ４をメモリブロックＭＥＭ４内部に実装した例が示されている。図４に示す半導体集積回路装置は、演算ブロックＩＰ４、メモリブロックＭＥＭ４から構成される。メモリ起動制御ブロックＣＴＲＬ４の構成は、メモリ起動制御ブロックＣＴＲＬ１と同様であり、バッファ回路ＢＵＦ４１，ＢＵＦ４２、読み出し命令判定回路ＲＥＡＤ４、アドレス比較回路ＣＭＰ４、否定論理積回路ＮＡＮＤ４、逆相ラッチ回路ＩＬＡＴ４、論理積回路ＡＮＤ４から構成される。
【００４５】
演算ブロックＩＰ４の出力端子であるアドレス信号ＡＤＤＲ４１、命令信号ＣＭＤ４１、データ４１信号ＤＡＴ４１は、メモリブロックＭＥＭ４の入力端子へそれぞれ接続され、アドレス信号ＡＤＤＲ４１、命令信号ＣＭＤ４１は、メモリブロックＭＥＭ４内部にあるメモリ起動制御ブロックＣＴＲＬ４にもそれぞれ接続される。メモリブロックＭＥＭ４の出力端子であるデータ４２信号ＤＡＴ４２は、演算ブロックＩＰ４の入力端子へ接続される。また、演算ブロックＩＰ４とメモリブロックＭＥＭ４には、クロック信号ＣＬＫ４１が入力される。なお、ここまでに挙げたアドレス信号ＡＤＤＲ４１、命令信号ＣＭＤ４１、データ４１信号ＤＡＴ４１、データ４２信号ＤＡＴ４２は単一ビットであっても複数ビットであっても良い。また、バッファ回路ＢＵＦ４１，ＢＵＦ４２も同様に単一ビットであっても複数ビットであっても良い。
【００４６】
メモリブロックＭＥＭ４内のメモリ起動制御ブロックＣＴＲＬ４の接続は、メモリ起動制御ブロックＣＴＲＬ１と同様に次の通りである。命令信号ＣＭＤ４１は、バッファ回路ＢＵＦ４１のデータ入力と読み出し命令判定回路ＲＥＡＤ４の一方の入力へ接続され、バッファ回路ＢＵＦ４１のデータ出力ＣＭＤ４２は読み出し命令判定回路ＲＥＡＤ４の他方の入力へ接続される。アドレス信号ＡＤＤＲ４１は、バッファ回路ＢＵＦ４２のデータ入力とアドレス比較回路ＣＭＰ４の一方の入力へ接続され、バッファ回路ＢＵＦ４２のデータ出力ＡＤＤＲ４２は、アドレス比較回路ＣＭＰ４の他方の入力へ接続される。読み出し命令判定回路ＲＥＡＤ４の出力ＲＥＡＤ＿ＯＵＴ４は、否定論理積回路ＮＡＮＤ４の一方の入力へ接続され、アドレス比較回路ＣＭＰ４の出力ＣＭＰ＿ＯＵＴ４は、否定論理積回路ＮＡＮＤ４の他方の入力へ接続される。
【００４７】
否定論理積回路ＮＡＮＤ４の出力となる連続読み出し判定信号ＪＧＥ＿ＯＵＴ４は、逆相ラッチ回路ＩＬＡＴ４のデータ入力へ接続され、逆相ラッチ回路ＩＬＡＴ４のデータ出力ＩＬＡＴ＿ＯＵＴ４は、論理積回路ＡＮＤ４の一方の入力へ接続される。クロック信号ＣＬＫ４１は、バッファ回路ＢＵＦ４１，ＢＵＦ４２と、逆相ラッチＩＬＡＴ４のクロック入力と、論理積回路ＡＮＤ４の他方の入力に接続される。そして、論理積回路ＡＮＤ４の出力がメモリブロックＭＥＭ４内部を活性化するメモリ起動信号ＣＬＫ４２となる。
【００４８】
演算ブロックＩＰ４は、メモリとデータをやり取りしながら演算を行う回路ブロックであり、クロック信号ＣＬＫ４１に同期して、アドレス信号ＡＤＤＲ４１、命令信号ＣＭＤ４１、データ４１信号ＤＡＴ４１を出力する。命令信号ＣＭＤ４の内容としては書き込み命令ＷＲＩＴＥ、読み出し命令ＲＥＡＤ、待機命令ＷＡＩＴなどがある。メモリブロックＭＥＭ４内にあるメモリ起動制御ブロックＣＴＲＬ４において、命令信号ＣＭＤ４１はバッファ回路ＢＵＦ４１に、アドレス信号ＡＤＤＲ４１はバッファ回路ＢＵＦ４２に、クロック信号ＣＬＫ４１に同期して取り込まれる。
【００４９】
読み出し命令判定回路ＲＥＡＤ４は、命令信号ＣＭＤ４１とバッファ回路ＢＵＦ４１の出力信号ＣＭＤ４２の両方が読み出し命令であった場合にハイレベルＶＤＤをＲＥＡＤ＿ＯＵＴ４に出力し、それ以外の場合はロウレベルＶＳＳをＲＥＡＤ＿ＯＵＴ４に出力する。アドレス比較回路ＣＭＰ４は、アドレス信号ＡＤＤＲ４１とバッファ回路ＢＵＦ４２の出力信号ＡＤＤＲ４２のアドレスが一致した場合にハイレベルＶＤＤをＣＭＰ＿ＯＵＴ４に出力し、一致しなかった場合にロウレベルＶＳＳをＣＭＰ＿ＯＵＴ４に出力する。否定論理積回路ＮＡＮＤ４は、読み出し命令判定回路ＲＥＡＤ４の出力ＲＥＡＤ＿ＯＵＴ４とアドレス比較回路ＣＭＰ４の出力ＣＭＰ＿ＯＵＴ４の両方がハイレベルＶＤＤの場合にロウレベルＶＳＳをＪＧＥ＿ＯＵＴ４に出力し、それ以外の場合にハイレベルＶＤＤをＪＧＥ＿ＯＵＴ４に出力する。
【００５０】
逆相ラッチＩＬＡＴ４は、クロック信号ＣＬＫ４１がロウレベルＶＳＳの場合はＪＧＥ＿ＯＵＴ４をそのままＩＬＡＴ＿ＯＵＴ４として出力し、クロック信号ＣＬＫ４１がハイレベルＶＤＤの場合は、クロック信号ＣＬＫ４１がロウレベルＶＳＳであった際のＪＧＥ＿ＯＵＴ４の論理値をＩＬＡＴ＿ＯＵＴ４に出力し続ける。論理積回路ＡＮＤ４は、クロック信号ＣＬＫ４１と逆相ラッチＩＬＡＴ４の出力ＩＬＡＴ＿ＯＵＴ４の両方がハイレベルＶＤＤの場合にハイレベルＶＤＤを、それ以外の場合はロウレベルＶＳＳをメモリ起動信号ＣＬＫ４２に出力する。
【００５１】
メモリブロックＭＥＭ４内部は、メモリ起動信号ＣＬＫ４２によって活性化される。このメモリ起動信号ＣＬＫ４２に伴う命令信号ＣＭＤ４１が読み出し命令の場合、メモリブロックＭＥＭ４は、アドレス信号ＡＤＤＲ４１で指定されたアドレスのメモリセルに保持している値をデータ４２信号ＤＡＴ４２に出力する。一方、メモリ起動信号ＣＬＫ４２に伴う命令信号ＣＭＤ４１が書き込み命令の場合、メモリブロックＭＥＭ４は、アドレス信号ＡＤＤＲ４１で指定されたアドレスのメモリセルにデータ４１信号ＤＡＴ４１の値を書き込む。なお、命令信号ＣＭＤ４１が待機の場合はメモリ起動信号ＣＬＫ４２によって活性化されても何も行わない。
【００５２】
以上、図４の半導体集積回路装置のようにメモリブロックＭＥＭ４内にあらかじめメモリ起動制御ブロックＣＴＲＬ４を実装しておけば、演算ブロック、メモリブロック、メモリ起動制御ブロックを別々にレイアウトするよりも、タイミングやレイアウト面積の点で最適化が可能になる。したがって、図４の構成例を用いることで、図１で述べたような効果に加えて、更に小面積化が可能となり、また、図１の構成例に比べて演算ブロックとメモリブロック間の通信速度を高速化することが可能となる。
【００５３】
図５は、本発明の一実施の形態による半導体集積回路装置において、その構成の他の一例を示すブロック図である。図５に示す半導体集積回路装置は、演算ブロックＩＰ５、メモリブロックＭＥＭ５、メモリ起動制御ブロックＣＴＲＬ５から構成される。メモリ起動制御ブロックＣＴＲＬ５は、バッファ回路ＢＵＦ５１，ＢＵＦ５２、読み出し命令判定回路ＲＥＡＤ５、アドレス比較回路ＣＭＰ５、否定論理積回路ＮＡＮＤ５、命令変換回路ＣＯＮＶ５から構成される。
【００５４】
演算ブロックＩＰ５の出力端子であるアドレス信号ＡＤＤＲ５１、データ５１信号ＤＡＴ５１は、メモリブロックＭＥＭ５の入力端子へそれぞれ接続され、アドレス信号ＡＤＤＲ５１、命令信号ＣＭＤ５１は、メモリ起動制御ブロックＣＴＲＬ５の入力端子へそれぞれ接続される。メモリブロックＭＥＭ５の出力端子であるデータ５２信号ＤＡＴ５２は、演算ブロックＩＰ５の入力端子へ接続される。メモリ起動制御ブロックＣＴＲＬ５の出力端子である命令信号ＣＭＤ５３は、メモリブロックＭＥＭ５の入力端子へ接続される。また、演算ブロックＩＰ５、メモリ起動制御ブロックＣＴＲＬ５、メモリブロックＭＥＭ５にはクロック信号ＣＬＫ５１が入力される。なお、ここまでに挙げたアドレス信号ＡＤＤＲ５１、命令信号ＣＭＤ５１、データ５１信号ＤＡＴ５１、データ５２信号ＤＡＴ５２は単一ビットであっても複数ビットであっても良い。また、バッファ回路ＢＵＦ５１，ＢＵＦ５２も同様に単一ビットであっても複数ビットであっても良い。
【００５５】
メモリ起動制御ブロックＣＴＲＬ５内の接続は次のようになっている。命令信号ＣＭＤ５１は、バッファ回路ＢＵＦ５１のデータ入力と読み出し命令判定回路ＲＥＡＤ５の一方の入力へ接続され、バッファ回路ＢＵＦ５１のデータ出力ＣＭＤ５２は、読み出し命令判定回路ＲＥＡＤ５の他方の入力へ接続される。アドレス信号ＡＤＤＲ５１は、バッファ回路ＢＵＦ５２のデータ入力とアドレス比較回路ＣＭＰ５の一方の入力へ接続され、バッファ回路ＢＵＦ５２のデータ出力ＡＤＤＲ５２は、アドレス比較回路ＣＭＰ５の他方の入力へ接続される。読み出し命令判定回路ＲＥＡＤ５の出力ＲＥＡＤ＿ＯＵＴ５は、否定論理積回路ＮＡＮＤ５の一方の入力へ接続され、アドレス比較回路ＣＭＰ５の出力ＣＭＰ＿ＯＵＴ５は、否定論理積回路ＮＡＮＤ５の他方の入力へ接続される。否定論理積回路ＮＡＮＤ５の出力となる連続読み出し判定信号ＪＧＥ＿ＯＵＴ５と命令信号ＣＭＤ５１は、命令変換回路ＣＯＮＶ５へ入力され、命令変換回路ＣＯＮＶ５の出力が、命令信号ＣＭＤ５３となる。
【００５６】
演算ブロックＩＰ５は、メモリとデータをやり取りしながら演算を行う回路ブロックであり、クロック信号ＣＬＫ５１に同期して、アドレス信号ＡＤＤＲ５１、命令信号ＣＭＤ５１、データ５１信号ＤＡＴ５１を出力する。命令信号ＣＭＤ５１の内容としては書き込み命令、読み出し命令、待機命令などがある。メモリ起動制御ブロックＣＴＲＬ５において、命令信号ＣＭＤ５１はバッファ回路ＢＵＦ５１に、アドレス信号ＡＤＤＲ５１はバッファ回路ＢＵＦ５２に、クロック信号ＣＬＫ５１に同期して取り込まれる。
【００５７】
読み出し命令判定回路ＲＥＡＤ５は、命令信号ＣＭＤ５１とバッファ回路ＢＵＦ５１の出力信号ＣＭＤ５２の両方が読み出し命令であった場合にハイレベルＶＤＤをＲＥＡＤ＿ＯＵＴ５に出力し、それ以外の場合はロウレベルＶＳＳをＲＥＡＤ＿ＯＵＴ５に出力する。アドレス比較回路ＣＭＰ５は、アドレス信号ＡＤＤＲ５１とバッファ回路ＢＵＦ５２の出力信号ＡＤＤＲ５２のアドレスが一致した場合にハイレベルＶＤＤをＣＭＰ＿ＯＵＴ５に出力し、一致しなかった場合にロウレベルＶＳＳをＣＭＰ＿ＯＵＴ５に出力する。否定論理積回路ＮＡＮＤ５は、読み出し命令判定回路ＲＥＡＤ５の出力ＲＥＡＤ＿ＯＵＴ５とアドレス比較回路ＣＭＰ５の出力ＣＭＰ＿ＯＵＴ５の両方がハイレベルＶＤＤの場合にロウレベルＶＳＳを連続読み出し判定信号ＪＧＥ＿ＯＵＴ５に出力し、それ以外の場合にハイレベルＶＤＤを連続読み出し判定信号ＪＧＥ＿ＯＵＴ５に出力する。
【００５８】
命令変換回路ＣＯＮＶ５は、連続読み出し判定信号ＪＧＥ＿ＯＵＴ５がハイレベルＶＤＤの場合には命令信号ＣＭＤ５１をそのまま命令信号ＣＭＤ５３として出力し、連続読み出し判定信号ＪＧＥ＿ＯＵＴ５がロウレベルＶＳＳの場合には待機命令を命令信号ＣＭＤ５３に出力する。メモリブロックＭＥＭ５は、メモリ起動信号ＣＬＫ５１に同期して起動される。このメモリ起動信号ＣＬＫ５１に伴いメモリ起動制御ブロックＣＴＲＬ５から出力された命令信号ＣＭＤ５３が読み出し命令の場合、メモリブロックＭＥＭ５は、アドレス信号ＡＤＤＲ５１で指定されたアドレスのメモリセルに保持している値をデータ５２信号ＤＡＴ５２に出力する。また、同様にして出力された命令信号ＣＭＤ５３が書き込み命令の場合、メモリブロックＭＥＭ５は、アドレス信号ＡＤＤＲ５１で指定されたアドレスのメモリセルにデータ５１信号ＤＡＴ５１の値を書き込む。更に同様にして出力された命令信号ＣＭＤ５３が待機命令の場合、メモリブロックＭＥＭ５は、メモリ起動信号ＣＬＫ５１によって起動されても何も行わない。
【００５９】
以上、図５のような半導体集積回路装置を用いることで、同一アドレスへの連続読み出し命令が発生した際のメモリ消費電力を削減できる。すなわち、演算ブロックＩＰ５からの命令信号ＣＭＤ５１が待機命令の場合は当然として、ＩＰ５から同一アドレスへの連続読み出し命令が発行された場合も、メモリブロックＭＥＭ５に対して待機命令を発行することができる。待機命令の場合は、メモリ起動信号ＣＬＫ５１によってメモリブロックＭＥＭ５が起動されても、ＭＥＭ５は実質的に殆ど電力を消費しない。また、図１および図２での説明と同様に、演算ブロックＩＰ５がメモリブロックＭＥＭ５からデータを受け取るタイミングは、連続読み出し命令の発生有無に関わらず一定であるため、前述した特許文献１，２のようにタイミング制御に関わるシーケンサ等は不要であり、小規模の回路でメモリ消費電力の削減を実現できる。なお、ここでは、連続読み出し命令が発生した際に、待機命令に変換したが、勿論、メモリブロックＭＥＭ５が実動作を行わない命令（ノーオペレーション命令）であれば、適宜代替え可能である。
【００６０】
さらに、図５の構成例では、図１等の構成例のようにメモリ起動信号を加工せずに、命令信号ＣＭＤ５１を加工することでメモリ消費電力を削減している。これにより、メモリ起動信号に十分なタイミング余裕がない場合でも、命令信号ＣＭＤ５３にタイミング余裕が存在すればメモリ消費電力の削減が可能となる。例えば、実際の設計において、メモリ起動信号などのクロック系の信号は、一般的にタイミング制約が厳しいため加工が容易とは言えないような場合もあるが、このような場合でも適用可能となる。なお、図５の構成例は、勿論、図３および図４と同様に変形可能であり、これによって、回路面積やタイミングを最適化することも可能である。
【００６１】
図６は、図１等の構成例が一部に適用された半導体集積回路装置の構成例を示すブロック図である。図６に示す半導体集積回路装置は、例えば、複数のＩＰが１つの半導体チップ上に形成されたＳｏＣ等であり、この複数のＩＰの中から低周波数動作を行う部分に対して図１等の構成例を適用した例となっている。図６の半導体集積回路装置（半導体チップ）ＬＳＩ６は、例えば、演算ブロックＩＰ６１，ＩＰ６２、メモリブロックＭＥＭ６１，ＭＥＭ６２、メモリ起動制御ブロックＣＴＲＬ６１などを含んで構成される。これら５ブロックのうち、演算ブロックＩＰ６１は、例えば低周波数で動作するアクセラレータなどであり、演算ブロックＩＰ６２は、例えば高周波数で動作するＣＰＵなどである。
【００６２】
そこで、図６では、低周波数で動作する演算ブロックＩＰ６１およびメモリブロックＭＥＭ６１の部分に、図１等に示したようなメモリ起動制御ブロックＣＴＲＬ６１を適用している。なお、この適用箇所の構成は、勿論、図１のようなものに限らず、図５のようなものであってもよく、図３あるいは図４のようにメモリ制御ブロックＣＴＲＬ６１が演算ブロックＩＰ６１あるいはメモリブロックＭＥＭ６１内部に含まれていても良い。
【００６３】
以上、図６のように、同一半導体チップ内であっても、周波数の低いブロックへ選択的にメモリ起動制御ブロックを適用することで、ＳｏＣ等の動作速度に影響を与えずに、ＳｏＣ全体の電力を削減できる効果がある。また、メモリ起動制御ブロックは、前述したように小面積で実現できるため、チップ面積には殆ど影響しない。
【００６４】
図７は、図１等の構成例が一部に適用された半導体チップとメモリチップとを含む半導体集積回路装置の構成例を示すブロック図である。図７に示す半導体集積回路装置は、例えば、半導体チップとメモリチップが１つのパッケージに実装された所謂ＳＩＰ（Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋｅｇｅ）などの構成となっている。図７の半導体集積回路装置は、例えば、演算ブロックＩＰ７およびメモリ起動制御ブロックＣＴＲＬ７を含む半導体チップＬＳＩ７と、メモリブロックＭＥＭ７に該当するメモリチップなどから構成される。これら３ブロックの接続及び動作内容は、図１あるいは図５と同じであっても良いし、図３あるいは図４のようにメモリ制御ブロックＣＴＲＬ７が演算ブロックＩＰ７あるいはメモリブロックＭＥＭ７内部に含まれていても良い。
【００６５】
以上、図７のような構成例を用いることで、オフチップメモリを持つ半導体集積回路装置であっても、その半導体集積回路装置の消費電力を低減することが可能となる。また、半導体集積回路装置のサイズを殆ど増大させずに消費電力の低減が実現できる。
【００６６】
図８は、本発明の一実施の形態による半導体集積回路装置において、その設計方法の一例を示す設計フロー図である。図８に示す設計フローは、前述したようなメモリ制御ブロックＣＴＲＬを、例えば新規設計の演算ブロックＩＰおよびメモリブロックＭＥＭへ適用する場合の設計フローである。
【００６７】
図８に示すように、新規設計に際しては、まず、演算ブロックＩＰ及びメモリブロックＭＥＭのＲＴＬ記述を行う（Ｓ８０１）。次いで、演算ブロックＩＰのアドレス信号ＡＤＤＲおよび命令信号ＣＭＤを入力として、前述したメモリ制御ブロックＣＴＲＬを組み込む（Ｓ８０２）。そして、このようにして設計したＲＴＬ記述を用いて動作検証を行った後（Ｓ８０３）、論理合成を行いＲＴＬ記述からゲートレベルネットリストを生成する（Ｓ８０４）。続いて、ゲートレベル記述を用いて動作検証を行った後（Ｓ８０５）、ゲートレベルセルをレイアウトし（Ｓ８０６）、クロックツリーを生成する（Ｓ８０７）。最後に、タイミング検証を行ってレイアウト設計を完了させる（Ｓ８０８）。
【００６８】
このように、演算ブロックＩＰおよびメモリブロックＭＥＭのＲＴＬ設計を独立に行った場合でも、このＲＴＬ設計後の演算ブロックＩＰおよびメモリブロックＭＥＭに対して容易にメモリ制御ブロックＣＴＲＬを組み込むことができ、また、メモリ制御ブロックＣＴＲＬを組み込むことで特に設計フローを変更する必要性もない。したがって、例えば、ＳｏＣ等で見られるような各ブロックを個別に設計していくような設計フローをそのまま用いることができ、その結果、極めて小さい面積オーバーヘッドで低電力化を実現できる。
【００６９】
図９は、本発明の一実施の形態による半導体集積回路装置において、その設計方法の他の一例を示す設計フロー図である。図９に示す設計フローは、前述したようなメモリ制御ブロックＣＴＲＬを、例えば、既存チップに対して適用する場合の設計フローである。すなわち、既に設計が完了してしまったチップであっても、レイアウト後の設計データに若干手を加えるのみでメモリ電力の削減が可能である。具体的な方法は、例えば、図９に示すように、既存チップのレイアウトデータを用いて、そのメモリブロックＭＥＭと演算ブロックＩＰの間にメモリ起動制御ブロックＣＴＲＬを配置および配線し（Ｓ９０１）、これによって影響を受ける一部のパスのみタイミング検証を行えばよい（Ｓ９０２）。
【００７０】
例えば、図１のようなメモリ起動制御ブロックＣＴＲＬ１を適用する場合には、メモリブロックＭＥＭ１の起動信号ピンに接続される信号線を削除し、ＣＴＲＬ１を追加した後で、ＣＴＲＬ１の出力であるメモリ起動信号ＣＬＫ１２をＭＥＭ１のクロックピンへと再接続する。このとき、タイミング検証の実施対象は、クロック信号ＣＬＫ１１、メモリ起動信号ＣＬＫ１２、アドレス信号ＡＤＤＲ１１、命令信号ＣＭＤ１１が接続されるパスのみで良い。
【００７１】
また、図５のようなメモリ起動制御ブロックＣＴＲＬ５を適用する場合には、メモリブロックＭＥＭ５の命令信号ピンに接続される信号線を削除し、ＣＴＲＬ５を追加した後で、ＣＴＲＬ５の出力である命令信号ＣＭＤ５３をＭＥＭ５の命令信号ピンへと再接続する。このとき、タイミング検証の実施対象は、クロック信号ＣＬＫ５１、アドレス信号ＡＤＤＲ５１、命令信号ＣＭＤ５１、命令信号ＣＭＤ５３が接続されるパスのみで良い。
【００７２】
なお、図１、図５いずれの場合においても、演算ブロックから見るとメモリブロックへはメモリ起動制御ブロックを介して接続することになるが、メモリブロックから返されるデータはメモリ起動制御ブロックの挿入前と不変である。つまり、回路の機能に変化は生じないため、新たな動作検証は必要ない。また、実際にメモリ起動制御ブロックＣＴＲＬを配置する際、ＣＴＲＬは、極めて小規模であり、相互間の通信速度が比較的遅いメモリブロックＭＥＭ及び演算ブロックＩＰに対して適用されるため、その配置箇所の自由度が高く、既に完成しているレイアウトデータに対しても組み込みが容易である。
【００７３】
以上、これまでに述べた各実施の形態を用いることによる代表的な効果を挙げると、半導体集積回路装置に設けられたメモリの不必要な起動を抑制し、その電力を削減することが可能となる。また、メモリの不必要な起動を抑制しメモリ電力を削減できるため、半導体集積回路装置を低消費電力化することができる。更に、小さい面積オーバーヘッドで半導体集積回路装置の低消費電力化を実現できる。また、新規設計の半導体製品や、既存の半導体製品においても容易に実施が可能であり、半導体製品の低消費電力化を低コストで実現できる。
【００７４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７５】
例えば、前述したメモリ起動制御ブロックは、アクセラレータ等のように比較的低周波数で動作する演算ブロックおよびメモリブロックに適用した場合に特に有益となるが、勿論、メモリ起動制御ブロックによる遅延が許容される限り、ＣＰＵ等のような比較的高周波数で動作する演算ブロックおよびメモリブロックに適用することも有益である。また、例えば図２では、メモリが１サイクルのアクセスレイテンシで動作する例を示しているが、メモリが不変の複数サイクルのアクセスレイテンシで動作する場合であっても同様に適用可能である。
【産業上の利用可能性】
【００７６】
本発明による半導体装置集積回路装置は、特に、低消費電力が要求される携帯電話向けのシステムＬＳＩなどに適用して有益なものであり、これに限らず、メモリを含む半導体集積回路装置全般の低消費電力化技術として広く適用可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施の形態による半導体集積回路装置において、その構成の一例を示すブロック図である。
【図２】図１の半導体集積回路装置の動作の一例を示す波形図である。
【図３】図１の半導体集積回路装置の変形例を示すブロック図である。
【図４】図１の半導体集積回路装置の他の変形例を示すブロック図である。
【図５】本発明の一実施の形態による半導体集積回路装置において、その構成の他の一例を示すブロック図である。
【図６】図１等の構成例が一部に適用された半導体集積回路装置の構成例を示すブロック図である。
【図７】図１等の構成例が一部に適用された半導体チップとメモリチップとを含む半導体集積回路装置の構成例を示すブロック図である。
【図８】本発明の一実施の形態による半導体集積回路装置において、その設計方法の一例を示す設計フロー図である。
【図９】本発明の一実施の形態による半導体集積回路装置において、その設計方法の他の一例を示す設計フロー図である。
【符号の説明】
【００７８】
ＡＤＤＲ  アドレス信号
ＣＭＤ  命令信号
ＤＡＴ  データ信号
ＣＬＫ  クロック信号またはメモリ起動信号
ＩＰ  演算ブロック
ＭＥＭ  メモリブロック
ＣＴＲＬ  メモリ起動制御ブロック
ＢＵＦ  バッファ
ＡＮＤ  論理積回路
ＮＡＮＤ  否定論理積回路
ＩＬＡＴ  逆相ラッチ回路
ＲＥＡＤ  読み出し命令判定回路
ＣＭＰ  アドレス比較回路
ＣＯＮＶ  命令変換回路
【図１】
2007299044.tif 000003
【図２】
2007299044.tif 000004
【図３】
2007299044.tif 000005
【図４】
2007299044.tif 000006
【図５】
2007299044.tif 000007
【図６】
2007299044.tif 000008
【図７】
2007299044.tif 000009
【図８】
2007299044.tif 000010
【図９】
2007299044.tif 000011