(57)【特許請求の範囲】
【請求項１】
第１のプログラムカウンタに基づいて第１の命令フェッチレジスタに命令を読み込み実行する基本命令プロセッサと、第２のプログラムカウンタに基づいて第２の命令フェッチレジスタに命令を読み込み実行する専用命令プロセッサと、前記基本命令プロセッサと専用命令プロセッサとを接続するバスと、前記基本命令プロセッサ及び専用命令プロセッサを制御するシステムコントローラとを備えるシステムＬＳＩであって、
前記システムコントローラは、前記基本命令プロセッサが前記第１の命令フェッチレジスタにフェッチした命令をデコードするデコーダを備え、前記デコーダの出力に基づいて前記専用命令プロセッサのための電源制御部、クロック信号生成部、及び、前記第２のプログラムカウンタの少なくとも１つを制御することによって、前記専用命令プロセッサの動作を制御することを特徴とするシステムＬＳＩ。
【請求項２】
前記システムコントローラは、前記専用命令プロセッサの動作状態を示す動作条件フラグを参照して、前記専用命令プロセッサの動作を制御する、請求項１に記載のシステムＬＳＩ。
【請求項３】
前記基本命令プロセッサは、前記専用命令プロセッサの動作状態を示す動作条件フラグを参照して動作する、請求項１又は２に記載のシステムＬＳＩ。
【請求項４】
前記システムコントローラは、前記専用命令プロセッサの電源制御部、クロック信号生成部、第２のプログラムカウンタ、及び、動作条件フラグを内部に備える、請求項２又は３に記載のシステムＬＳＩ。
【請求項５】
前記システムコントローラは、前記デコーダがデコードする命令に基づいて前記専用命令プロセッサを待機モードから起動する際に、前記専用命令プロセッサへの前記電源制御部からの電源投入、前記クロック生成部でのクロック信号の生成開始、及び、前記第２のプログラムカウンタの動作開始の時刻を制御する、請求項４に記載のシステムＬＳＩ。
【請求項６】
前記システムコントローラは、専用命令プロセッサの動作を、前記電源制御部及び前記クロック生成部からの前記専用命令プロセッサへの電源供給及びクロック供給の少なくとも一方を停止する電源消費量が少ない待機モードと、前記電源制御部及び前記クロック生成部からの前記専用命令プロセッサへの電源供給及びクロック供給を行うと共に前記第２のプログラムカウンタのカウントアップに基づく処理を実行する活性モードとの間で切り替えて制御する、請求項１から５の何れかに記載のシステムＬＳＩ。
【請求項７】
前記基本命令プロセッサ及び前記専用命令プロセッサは、それぞれ、前記デコーダとは別にデコーダを備えることを特徴とする請求項１から６のいずれかに記載のシステムＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体に関し、更に詳しくは、設計に際して動作合成を使用したソフト・ハード協調設計システムを用いて設計するシステムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体に関する。
【０００２】
【従来の技術】
近年では、ＳＯＣ（System On Chip）又はシステムＬＳＩと呼ばれる、所望のシステムの回路機能の全てを１つのチップで実現するＬＳＩが実現している。半導体製造プロセスの微細化に伴い、システムＬＳＩに集積できるゲート数は飛躍的に増加し、それに伴いシステムＬＳＩの処理能力も向上している。
【０００３】
システムＬＳＩは、画像処理や暗号化処理、フィルタ処理、復号処理など多彩な処理に使用され、その入出力信号の種類、処理のアルゴリズム、或いは、要求される時間的性能なども様々である。システムＬＳＩでは、処理のアルゴリズムは益々複雑化し、且つ短時間での処理が要求される傾向にある。このため、最近のシステムＬＳＩは、使用される信号処理に特化したものとして設計される。
【０００４】
図６は、従来のソフト・ハード協調設計システムを使用したシステムＬＳＩの設計フローを示している。一般に、動作合成を使用したソフト・ハード協調設計システムは、Ｃ言語のような汎用プログラム言語、又は、専用の動作レベル記述言語などの高級言語で記述したアルゴリズム記述１を、レジスタ等のメモリ部及び加算器等の実行処理部によるハードウェア資源を用いてハードウェア化できる論理合成用ＲＴＬ（レジスタ転送レベル）記述７のような低位レベル記述に変換する。
【０００５】
アルゴリズム記述１には、システムＬＳＩの全機能が動作記述として記述されている。アルゴリズム記述１の機能の大部分をハードウェアで実現すると、処理速度は高速となるが、機能仕様の変更が困難になると共に、回路規模は大きくなり、製造コストがかさむ。また、機能の大部分をソフトウェアで実現すると、機能仕様の変更が容易になると共に、回路規模は小さくなるが、処理速度は低速となる。そこで、設計の初期段階では、図６に示すように、回路規模や処理時間、コストなどの制約条件を勘案して、アルゴリズム記述１に記載された機能を分割し、ハードウェア資源を用いて実現する機能と、ソフトウェア資源を用いて実現する機能とに振り分ける（ステップＳ２０１）。
【０００６】
全てのハードウェア資源を始めから設計すると、その開発には費用と時間がかかる。このため、これまでに蓄積された資産を活かして、ハードウェアＩＰ（Intellectual Property）として保有する設計済みのハードウェアマクロを、可能な限り再利用して設計する。ハードウェアＩＰは、再利用しやすいように汎用性の高いものとして設計されており、容易にシステムＬＳＩ構成に組み込める。
【０００７】
ハードウェアは、汎用的な演算処理を行なうマイクロプロセッサなどの基本命令プロセッサ１１と、信号の入出力部分の処理など、用途に特化した特定処理を行なう専用命令プロセッサ１２とを組み合わせて設計される。一般に、基本命令プロセッサ１１には、ハードウェアＩＰとして保有する設計済みのプロセッサが使用される。基本命令プロセッサ１１は、システムＬＳＩを設計する部門とは別の、プロセッサ設計を専門とする部門により人手によるＲＴＬ設計で設計され、シミュレーション用記述８ａとともに提供される。
【０００８】
使用する基本命令プロセッサ１１が決まると、専用命令プロセッサ１２の設計に移行する。専用命令プロセッサ１２は、基本命令プロセッサ１１と同様にＲＴＬ設計によって設計されるか、或いは、動作合成を用いて設計される。動作合成を用いて設計する場合には、専用命令プロセッサ１２の機能を高級言語を用いて専用命令プロセッサとして記述する（ステップＳ２０２）。専用命令プロセッサ記述を動作合成することによって、専用命令プロセッサＲＴＬ記述７ｂとシミュレーション用記述８ｂとが得られる（ステップＳ２０３）。得られた専用命令プロセッサＲＴＬ記述７ｂを基に、専用命令プロセッサ１１が制約として設定された回路規模以内で実現できるか否かを判断する（ステップＳ２０４）。設定された回路規模を超えるときには、ステップＳ２０１に戻り、システムＬＳＩの設計をやり直す。回路規模のチェックの結果が良であるときには、設計済みである基本命令プロセッサＲＴＬ記述７ａと専用命令プロセッサＲＴＬ記述７ｂとが、バスのＲＴＬ記述７ｃを介して接続される（ステップＳ２０５）
【０００９】
次いで、ソフトウェア設計では、アプリケーションプログラム９と、専用命令プロセッサ１２を基本命令プロセッサ１１から働かせるためのデバイスドライバ１７とを高級言語などで記述する（ステップＳ２０６）。アプリケーションプログラム９とデバイスドライバ１７とは、アセンブラによるアセンブルや、コンパイラによるコンパイルによって、機械語命令セット１０に変換される（ステップＳ２０７）。得られた機械語命令セット１０と、シミュレーション用記述８ａ、８ｂ、及び、バス部シミュレーション用記述７ｃを結合したシミュレーション用記述結合８とが、命令セットシミュレータにかけられ、システムＬＳＩ構成と同じ環境によってシミュレーションが行われる（ステップＳ２０８）。
【００１０】
命令セットシミュレータでは、ハードウェアとソフトウェアとをシミュレートし、ハードウェアやソフトウェアの設計に誤りのないことが確認される。ステップＳ２０８では、同時に、実際の使用条件下でのシステムＬＳＩ構成の処理能力が測られ、その時間的性能が、要求される条件を満たすか否かが判断される（ステップＳ２０９）。チェックの結果が否であるときには、ステップＳ２０１に戻り、再度ハードウェアとソフトウェアの機能分割からやり直す。結果が良であるときには、システムＬＳＩの設計は完了し、その後、基本命令プロセッサＲＴＬ記述７ａと、専用命令プロセッサＲＴＬ記述７ｂと、バスＲＴＬ記述７ｃとが論理合成され、システムＬＳＩの実際のゲート回路が決定する。
【００１１】
図７は、上記システムＬＳＩの設計方法で得られたシステムＬＳＩのプロセッサ部の構成をブロック図として示している。プロセッサ部は、基本命令プロセッサ１１と、専用命令プロセッサ１２と、プロセッサ間通信バス１３と、システム制御部１５とを備える。基本命令プロセッサ１１は、電源制御部４１、クロック生成部４２、プログラムカウンタ４３、条件フラグ４４、命令フェッチレジスタ４５、及び、命令デコーダ４６を備える。専用命令プロセッサ１２は、同様に、電源制御部５１、クロック生成部５２、プログラムカウンタ５３、条件フラグ５４、命令フェッチレジスタ５５、及び、命令デコーダ５６を備える。基本命令プロセッサ１１と専用命令プロセッサ１２とは、プロセッサ間通信バス１３を介してデータの送受信を行なう。システム制御部１５は、基本命令プロセッサ１１及び専用命令プロセッサ１２に電源及び基本クロック信号を供給する。
【００１２】
基本命令プロセッサ１１では、システム制御部１５から電源を入力される電源制御部４１が、ＯＮ−ＯＦＦ制御によって、プロセッサの内部回路に電源を供給する、或いは、電源の供給を停止する。クロック生成回路４２は、システム制御部１５から入力される基本クロック信号に基づいてプロセッサの内部回路に供給する所定周波数のクロック信号を生成する。プログラムカウンタ４３は、命令フェッチレジスタ４５が命令を読み込む際のアドレスを指定する。命令フェッチレジスタ４５は、図示しないプログラムメモリなどの記憶装置から命令を読み込んで記憶する。命令デコーダ４６は、命令フェッチレジスタ４５を参照し、命令を解読して命令を実行する。専用命令プロセッサ１２の各部は、基本命令プロセッサ１１の各部と同様な構成を有する。
【００１３】
ここで、専用命令プロセッサ１２は、必要に応じて処理を行なうことから、それ以外のときには電源及びクロック信号を停止し、低消費電力の待機モードにする。待機モードへの移行に際しては、基本命令プロセッサ１１は、プロセッサ間通信バス１３を介して、電源及びクロック信号を停止する旨の指令を専用命令プロセッサ１２に送信する。指令を受けた専用命令プロセッサ１２は、自身の内部に供給される電源及びクロック信号を停止する命令を実行して第２の電源制御部及び第２のクロック生成部５２を制御し、待機モードに移行する。
【００１４】
また、待機モードから処理を実行できる状態である活性モードに移行する際には、基本命令プロセッサ１１から、活性モードにする旨の指令が、プロセッサ間通信バス１３を介して専用命令プロセッサ１２に伝えられる。専用命令プロセッサ１２は、ブートストラップによって第２の電源制御部５１及び第２のクロック生成部５２を制御し、活性状態に移行する。
【００１５】
【発明が解決しようとする課題】
従来のシステムＬＳＩでは、上述したように、専用命令プロセッサ１２は、基本命令プロセッサ１１からの指令が入力されると、自身の命令によって電源制御部５１及びクロック生成部５２を制御し、活性モード又は待機モードに移行している。上記制御では、基本命令プロセッサ１１は、専用命令プロセッサ１２の動作状態等を監視し、所定の条件下で専用命令プロセッサ１２の動作を保留する、或いは、停止する等の判断を行い、次いで、その指令を発生させる。このため、待機モードに移行させるための判断をしてから、実際に専用命令プロセッサ１２が命令を解読して実行するまでの間に時間がかかり、短時間で処理を行なえない分だけ、その処理時間中に無駄に電力を消費するという問題があった。特に近年の携帯型の端末では、電池容量等の関係から頻繁に電源制御を実行する要求が高まっており、電源制御を実行する回数が多いと、制御にかかる時間が長い分だけ、電源制御を行っている間に消費する電力が無視できなくなるため、電源制御にかかる時間を短縮したいという要求がある。また、制御に遅延が生じると、電源制御を正確に行うことが困難になり、システムＬＳＩの更なる高速化に障害となることからも、電源制御等を高速に行う要求がある。
【００１６】
本発明は、上記問題を解決し、基本命令プロセッサに与える命令によって専用命令プロセッサの電源管理等が高速に行なえ、また、基本命令プロセッサから簡易に専用命令プロセッサの動作状態等を把握できるシステムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明のシステムＬＳＩは、基本命令プロセッサと、専用命令プロセッサと、前記基本命令プロセッサと専用命令プロセッサとを接続するバスと、前記基本命令プロセッサ及び専用命令プロセッサを制御するシステムコントローラとを備えるシステムＬＳＩであって、前記システムコントローラは、前記基本命令プロセッサがフェッチした命令をデコードするデコーダを備え、該デコーダの出力に基づいて前記専用命令プロセッサのための電源制御部、クロック信号生成部及びプログラムカウンタの少なくとも１つを制御することによって、前記専用命令プロセッサの動作を制御することを特徴とする。
【００１８】
本発明のシステムＬＳＩでは、システムコントローラが基本命令プロセッサに与えられる命令をデコードし、専用命令プロセッサを制御する。このため、制御したい時刻で即座に電源及びクロックの制御ができ、緻密なパワーマネジメントが可能になる。
【００１９】
本発明のシステムＬＳＩの設計方法は、上記システムＬＳＩを設計する方法であって、夫々がアルゴリズムレベルで記述された前記基本命令プロセッサ、前記専用命令プロセッサ、及び、前記システムコントローラを動作合成するステップを有することを特徴とする。
【００２０】
本発明のシステムＬＳＩの設計方法では、専用命令プロセッサを制御するシステムコントローラと、基本命令プロセッサ及び専用命令プロセッサとをアルゴリズムレベルで記述し、動作合成をする。このため、システムコントローラは、基本命令プロセッサ及び専用命令プロセッサに要求される条件によってその資源や制御方法を柔軟に設計できる。
【００２１】
本発明のシステムＬＳＩでは、前記システムコントローラは、前記専用命令プロセッサの動作状態を示す動作条件フラグを更に参照して、前記専用命令プロセッサの動作を制御することが好ましい。この場合、システムコントローラを介して専用命令プロセッサの状態が把握できるため、基本命令プロセッサ側からの専用命令プロセッサの制御が、容易となる。
【００２２】
また、本発明のシステムＬＳＩでは、前記基本命令プロセッサは、前記専用命令プロセッサの動作状態を示す動作条件フラグを参照して動作することが好ましい。例えば、専用命令プロセッサが所定の動作を終了した後に、基本命令プロセッサの処理を開始したい場合などには、システムコントローラを介して条件フラグを参照して専用命令プロセッサが所定の動作を終えたか否かが確認できるため、処理に遅延が生じない。
【００２３】
本発明のシステムＬＳＩでは、前記システムコントローラは、前記専用命令プロセッサの電源制御部、クロック信号生成部、プログラムカウンタ、及び、動作条件フラグを内部に備えることが好ましい。
専用命令プロセッサから、電源制御部、クロック信号生成部、プログラムカウンタ、及び、動作条件フラグをシステムコントローラに移すことで、これらの参照が容易となる。また、これらを基本命令プロセッサに与える命令によって、直接制御することも容易となる。
【００２４】
本発明のシステムＬＳＩでは、前記システムコントローラは、システムＬＳＩの電源投入に際して、専用命令プロセッサの電源投入、クロック信号の生成開始、及び、プログラムカウンタの動作開始の時期を制御することが好ましい。
例えば、システムＬＳＩの起動処理中には、専用命令プロセッサに電源を投入する必要がなく、また、クロック信号も入力する必要がないので、システムコントローラの指令に基づいて、専用命令プロセッサの電源管理やクロック信号の生成を制御する。このため、無駄な電力消費を低減することができる。
【００２５】
本発明のシステムＬＳＩでは、前記システムコントローラは、専用命令プロセッサの動作を、電源消費量が少ない待機モードと、処理を実行する活性モードとの間で切り替えて制御することが好ましい。この場合、専用命令プロセッサは、外部からの指令があった後に、自身の命令によってモードを切り替えるのに比べて、動作を高速にすることができる。待機モードには、電源及びクロック信号が共に供給されない状態だけでなく、クロック信号のみの停止等、活性モードよりも消費電力が少なくなるような状態が含まれる。
【００２６】
本発明のシステムＬＳＩでは、前記専用命令プロセッサを複数備え、前記システムコントローラは、各専用命令プロセッサの動作を、電源消費量が少ない待機モードと、処理を実行する活性モードとの間で夫々独立に切り替えて制御することが好ましい。この場合、複数の専用命令プロセッサの電源制御を独立に行うことで、電源管理を細かく行うことができる。
【００２７】
本発明のシステムＬＳＩの設計方法は、アルゴリズムで記述された１以上の基本命令プロセッサと、１以上のシステムコントローラの一部構成とをデータベースに登録し、前記専用命令プロセッサを設計する設計段階で、前記システムコントローラの他の部分を設計することが好ましい。この場合、システムコントローラの基本命令プロセッサに関する部分は、基本命令プロセッサと共に設計資産となる。専用命令プロセッサの追加に際して、システムコントローラの他の部分、つまり、専用命令プロセッサに関する部分を設計することで、設計に要する時間を短縮しながらシステムＬＳＩの設計を柔軟にできる。
【００２８】
また、本発明のシステムＬＳＩの設計方法は、複数の専用命令プロセッサを有するシステムＬＳＩを設計する際に、各専用命令プロセッサの設計段階に対応して前記システムコントローラの前記他の部分を段階的に設計することが好ましい。
複数の専用命令プロセッサを有するシステムＬＳＩを設計することもでき、その際には、例えば設計済みの基本命令プロセッサ、専用命令プロセッサに、新たに設計する新規専用命令プロセッサを追加する場合、設計済みのシステムコントローラの記述に、新規専用命令プロセッサに関する部分を追加すればよい。
【００２９】
本発明のシステムＬＳＩの設計方法は、前記動作合成ステップに後続して、システムＬＳＩのクロックレベルのシミュレーション記述を出力するステップと、前記シミュレーション記述と、前記基本命令プロセッサ及び専用命令プロセッサを作動させるソフトウェアの機械語命令セットとに基づいて、設計されるシステムＬＳＩの動作検証を行なうステップとを有することが好ましい。
システムＬＳＩの動作検証を、ハードウェアにソフトウェアを実装した状態でシミュレーションすることで、処理時間検証や消費電力特性などを効果的にシミュレートすることができ、システムＬＳＩの検証作業が容易となる。
【００３０】
本発明のシステムＬＳＩの設計方法は、基本命令プロセッサと、専用命令プロセッサと、システムコントローラとが、Ｃ言語、Ｃ言語の拡張言語、又は、オブジェクト指向言語によって記述されることが好ましい。
【００３１】
本発明の記録媒体は、上記システムＬＳＩの設計方法を実現するプログラムを記録したことを特徴とする。
【００３２】
【発明の実施の形態】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を詳細に説明する。図１は、本発明の一実施形態例のシステムＬＳＩの設計方法を実施するシステムを機能ブロックとして示している。図２は、その設計方法の処理手順をフローチャートとして示している。以下、図１及び図２を参照して本実施形態例のシステムＬＳＩの設計方法について説明する。本実施形態例のシステムＬＳＩの設計方法は、従来のシステムＬＳＩの設計方法と同様に、動作合成を用いたソフト・ハード協調設計システムを使用する。
【００３３】
図１に示すアルゴリズム記述１には、システムＬＳＩの全機能が、Ｃ言語のような汎用プログラム言語、又は、専用の動作レベル記述言語などの高級言語を用いて記述される。アルゴリズム記述１に記述された機能は、機能仕様の変更容易性や、回路規模、処理時間、及び、消費電力などの制約条件を考慮して、ハードウェア部分とソフトウェア部分とに分割される（図２のステップＳ１）。ハードウェア部分の設計では、プロセッサの命令（機能）を高級言語を用いて設計し、ソフトウェア部分の設計では、新たなハードウェアとして設計するプロセッサ上で動作するアプリケーションプログラム９を設計する。
【００３４】
ハードウェア部分の設計では、汎用的な処理を行なう、設計済みの基本命令を有する基本命令プロセッサ、及び、システムＬＳＩの入出力部の信号処理など、設計するシステムＬＳＩの仕様に合わせた特定処理を実行する専用命令プロセッサの機能を設計する（ステップＳ２）。基本命令プロセッサの機能を記述する基本命令プロセッサ記述２は、図示しないライブラリから所望の命令のみを抽出し、それらを組み合わせて記述する。専用命令プロセッサの機能は、専用命令プロセッサ記述３として記述する。
【００３５】
次いで、基本命令プロセッサ及び専用命令プロセッサの電源管理や、クロック信号の生成等を行なうシステムコントローラを定義する（ステップＳ３）。システムコントローラは、後述するシステム制御部と、命令デコーダと、基本命令プロセッサ制御部と、専用命令プロセッサ制御部とを有し、システムコントローラ記述５によって定義される。基本命令プロセッサと専用命令プロセッサとが相互に情報通信等を行なうプロセッサ間通信バスは、プロセッサ間通信インタフェース記述４として記述される。基本命令プロセッサ記述２と専用命令プロセッサ記述３とは、プロセッサ間通信インタフェース記述４によって接続され、システムコントローラ記述５と合わせてプロセッサ記述６が得られる（ステップＳ４）。
【００３６】
プロセッサ記述６は、動作合成されて、ハードウェア化するのに適したＲＴＬ記述７、及び、クロックサイクルレベルで動作検証するためのシミュレーション記述８が得られる（ステップＳ５）。得られたＲＴＬ記述７によって、回路規模がチェックされ（ステップＳ６）、回路規模がシステムＬＳＩの制約条件を満たさないときにはステップＳ１に戻り、ハードウェア部分とソフトウェア部分の分割から設計をやり直す。回路規模チェックの結果が良である場合には、ハードウェア部分（プロセッサ）の構成が定まる。
【００３７】
ソフトウェア部分の設計では、アプリケーションプログラム９を高級言語などで記述し（ステップＳ７）、プロセッサの動作を決定する。プログラムの内容が定まると、アプリケーションプログラム９は、アセンブラによるアセンブルや、コンパイラによるコンパイルなどによって、プロセッサが直接理解できる機械語命令セット１０に変換される（ステップＳ８）。機械語命令セット１０と、ステップＳ５で得られたシミュレーション用記述８とが、命令セットシミュレータに掛けられ（ステップＳ９）、設計に誤りがないかが確認される。
【００３８】
命令セットシミュレータでは、プロセッサ記述６及びアプリケーションプログラム９のデバッグ作業が行われると共に、処理能力である時間性能及び消費電力特性が測られる（ステップＳ１０）。測られた時間性能及び消費電力特性が、設定された制約条件を超えるか否かが判断され（ステップＳ１１）、制約条件を超えるときには、ステップＳ１へ戻り、ハードウェア部分とソフトウェア部分の分割からシステムＬＳＩの設計をやり直す。制約条件が満たされれば、システムＬＳＩの設計は完了し、プロセッサと、プロセッサ上で動作するアプリケーションプログラムとが確定する。
【００３９】
図３は、図２に示すシステムＬＳＩの設計方法により得られたプロセッサの構成例をブロック図として示している。プロセッサは、基本命令プロセッサ１１と、専用命令プロセッサ１２と、プロセッサ間通信バス１３と、システムコントローラ１４とから構成される。システムコントローラ１４は、システム制御部１５と、命令デコーダ１６と、基本命令プロセッサ制御部４０と、専用命令プロセッサ制御部５０とを備える。
【００４０】
基本命令プロセッサ１１は、命令フェッチレジスタ４５及び命令デコーダ４６を備え、専用命令プロセッサ１２は、命令フェッチレジスタ５５及び命令デコーダ５６を備える。基本命令プロセッサ１１と専用命令プロセッサとは、プロセッサ間通信バス１３を介してデータ転送をする。プロセッサ間通信バス１３は、基本命令プロセッサ記述２及び専用命令プロセッサ記述３に基づくプロセッサ間通信インタフェース記述４によって、その同時アクセス可能データ数を決定する通信帯域などが決まる。
【００４１】
システム制御部１５は、電源及び基本クロック信号を入力する。専用命令プロセッサ制御部５０を制御する命令デコーダ１６は、第１の命令フェッチレジスタ４５を参照して、第１の命令フェッチレジスタ４５に記憶された命令が専用命令プロセッサ１２を制御する命令である場合には、その命令を解読する。
【００４２】
基本命令プロセッサ制御部４０、及び、専用命令プロセッサ制御部５０は、電源制御部４１、５１、クロック生成部４２、５２、プログラムカウンタ４３、５３、及び、条件フラグ４４、５４をそれぞれ有する。電源制御部４１、５１は、それぞれのプロセッサに、そのプロセッサに適した電圧値を有する電源を供給し、クロック生成部４２、５２は、そのプロセッサに適したクロックサイクルのクロック信号を供給する。
【００４３】
プログラムカウンタ４３、５３は、命令フェッチレジスタが命令を読み込むアドレスを指定し、カウントアップによってプロセッサの命令実行を進行する。条件フラグ４４、５４は、プロセッサの内部状態などをフラグを用いて設定する。プログラムカウンタ４３、５３のビット幅（命令語長）や条件フラグ４４、５４に設定する状態数などは、基本命令プロセッサ記述２及び専用命令プロセッサ記述３に基づいて記述されるシステムコントローラ記述５によって決定される。
【００４４】
図４、及び図５は、図３のプロセッサの動作例をタイミングチャートとして示している。以下、図３、図４、及び図５を参照して、本実施形態例のシステムＬＳＩの動作について説明する。なお、条件フラグ４４、５４に設定される状態は、次のように定義されているものとする。
【表１】
0003776058.tif 000002
【００４５】
図４に示す例では、システムＬＳＩは、自身が起動した後に、システムコントローラの命令デコーダ１６が解読する命令に基づいて、専用命令プロセッサ１２を待機モードから起動させる。命令デコーダ１６は、第１のプログラムカウンタ４３が「４」のとき、専用命令プロセッサ１２の電源がＯＦＦであることを確認する命令を発生し、「６」のとき、電源ＯＮを指示する命令を発生する。また、「７」のときは、クロック信号供給開始を指示する命令を発生し、「８」のとき、専用命令プロセッサ１２に処理の開始を指令する。
【００４６】
時刻ｔ１で、システムＬＳＩが起動し、システム制御部１５に電源が供給される。システム制御部１５に供給された電源は、直ちに第１の電源制御部４１を介して基本命令プロセッサ１１に供給される。時刻ｔ２で基本クロック信号が安定的にシステム制御部１５に供給されると、第１のクロック生成部４２は、基本クロック信号と同じ周期のクロック信号を基本命令プロセッサ１１に供給する。専用命令プロセッサ１２は、命令デコーダ１６から起動指令があるまでは、電源及びクロック信号が供給されない待機モードを維持する。
【００４７】
システムコントローラ１４では、基本命令プロセッサ１１に電源及びクロック信号が安定的に供給されると、条件フラグ４４が２になり、第１のプログラムカウンタ４３の進行が開始する。第１の命令フェッチレジスタ４５は、第１のプログラムカウンタ４３に基づいて命令をプログラムメモリから読み出し、これを記憶する。プログラムメモリから取り出された命令は、その命令が基本命令プロセッサ１１の命令であるときは第１の命令デコーダ４６によって解読され、専用プロセッサ制御部５０を制御する命令であるときは命令デコーダ１６によって解読される。
【００４８】
第１のプログラムカウンタ４３が「４」になると、命令デコーダ１６は、専用命令プロセッサ制御部５０の条件フラグ５４を参照する命令を発生し、専用命令プロセッサ１２に電源及びクロック信号が供給されていないこと、つまり第２の条件フラグ５４が０であることを確認する。第１のプログラムカウンタ４３が「６」になると、命令デコーダ１６は、第２の電源制御部に指示を出し、専用命令プロセッサ１２の電源をＯＮにする。第２の条件フラグ５４が、電源電圧が安定したことを示す１になるまで、第１のプログラムカウンタ４３は、カウントアップを停止し、電源が確立するのを待つ。
【００４９】
時刻ｔ３で第２の電源制御部の電圧が安定すると、第２の条件フラグ５４は１になり、第１のプログラムカウンタ４３のカウントアップが再開する。第１のプログラムカウンタ４３が「７」になると、命令デコーダ１６は、第２のクロック生成部５２に専用命令プロセッサ１２へクロック信号を供給するように指示する。第２の条件フラグ５４が、クロック信号が安定したことを示す２になるまで、第１のプログラムカウンタ４３は、カウントアップを停止し、クロック信号が安定して供給されるのを待つ。図４の例では、専用命令プロセッサ１２に供給されるクロック信号は、システム制御部１５に入力される基本クロック信号を２分周した信号である。
【００５０】
時刻ｔ４でクロック信号が安定すると、第２の条件フラグ５４は２になり、第１のプログラムカウンタ４３のカウントアップが再開する。第１のプログラムカウンタ４３が８になると、命令デコーダ１６は、第２のプログラムカウンタ５３に、初期アドレスを指定してカウントアップの開始を指示する。専用命令プロセッサ１２は、第２のプログラムカウンタ５３の進行に合わせて、命令を第２の命令フェッチレジスタ５５に読み込み、第２の命令デコーダ５６で解読して、命令を実行する。図４の例では、基本命令プロセッサ１１は、第１のプログラムカウンタ４３のカウントアップを続行し、専用命令プロセッサ１２とは独立して処理を実行する。
【００５１】
本実施形態例では、上記したように、システムコントローラ１４の命令デコーダ１６は、基本命令レジスタ１１の第１の命令フェッチレジスタ４５を参照して命令を解読する。つまり、専用命令プロセッサ１２は、基本命令プロセッサ１１に与えられる命令によって制御される。このため、本実施形態例のシステムＬＳＩでは、基本命令プロセッサ１１が、クロックサイクルレベルで専用命令プロセッサ１２を直接に制御するのと同等になり、専用命令プロセッサ１２を活性モードに移行する際などに必要なクロックサイクル数が減少し、システムＬＳＩが低消費電力で実現する。また、プロセッサの電源管理を行なうソフトウェアの開発が容易となる。
【００５２】
図５に示す例では、基本命令プロセッサ１１が、専用命令プロセッサ１２に動作Ａの開始、及び、専用命令プロセッサ１２の停止を指示する。基本命令プロセッサ１１（命令デコーダ１６）は、第１のプログラムカウンタ４３が「３」のとき、専用命令プロセッサ１２に動作Ａの開始を指示し、「５」のとき、動作Ａの終了を確認する。また、「９」のときは、専用命令プロセッサ１２に保留を指示し、「１３」のとき、専用命令プロセッサ１２の停止（動作初期化）を指示する。
【００５３】
時刻ｔ５で、命令デコーダ１６は、専用命令プロセッサ１２に動作Ａの開始を指示し、第２のプログラムカウンタ５３のカウントアップを開始すると共に第２の条件フラグ５４を３にする。基本命令プロセッサ１１では、専用命令プロセッサ１２が動作Ａを終えるまで、第１のプログラムカウンタ４３が「４」から「６」までのループを繰り返し、動作Ａの終了を待つ。専用命令プロセッサ１２は、第２のプログラムカウンタ５３が「３」のとき動作Ａの処理を終え、引き続き動作Ｂの実行を開始すると共に、第２の条件フラグ５４を４にする。
【００５４】
基本命令プロセッサ１１は、時刻ｔ６で動作Ａの終了を確認し、「４」から「６」までのループを抜け、第１のプログラムカウンタ４３を「７」に進める。命令デコーダ１６は、時刻ｔ７のときに第２のプログラムカウンタ５３のカウントアップを停止し、動作Ｂを実行している専用命令プロセッサ１２に、その動作を保留するように指示すると共に、第２の条件フラグ５４を５にする。また、時刻８のとき、第２のプログラムカウンタ５３を「０」にして、専用命令プロセッサ１２の動作をリセット（初期化）すると共に、第２の条件フラグ５４を２にする。
【００５５】
図５の例では、システムコントローラ１４が、専用命令プロセッサ１２の動作状態を直接に把握する、つまり基本命令プロセッサ１１が専用命令プロセッサ１２の動作状態を含む内部状態を直接に把握することができる。本実施形態例のシステムＬＳＩでは、第２の条件フラグ５４の設定を適宜設計することで、基本命令プロセッサ１１が把握する専用命令プロセッサ１２の動作状態を任意に設定できる。また、システムコントローラ１４は、第２のプログラムカウンタ５３の進行を停止して、専用命令プロセッサ１２を保留状態にすることもできる。システムコントローラ１４は、システムコントローラ記述５によって、設計するシステムＬＳＩ毎に、専用命令プロセッサ１２を制御する命令構成や、第２の条件フラグ５４の設定などを決定し、柔軟な構成とすることができる。
【００５６】
なお、システムＬＳＩの設計に際しては、基本命令プロセッサ記述２と、プロセッサ間通信インタフェース記述４と、システムコントローラ記述５とを予めひな型として作成しておき、これに専用命令プロセッサ記述３を追加して、プロセッサ記述６を得ることもできる。この場合、ひな型を複数用意し、その中から１つを選択し、選択したものに専用命令プロセッサ記述３を追加することで、プロセッサ設計に要する時間を短縮することができる。また、専用命令プロセッサ記述３の追加に際しては、追加する専用命令プロセッサ１２に必要な資源や制御方法などを考慮して、プロセッサ間通信インタフェース記述４及びシステムコントローラ記述５に修正や追加記述を加える。
【００５７】
また、１つの基本命令プロセッサ１１と、複数の専用命令プロセッサ１２とを組み合わせることもできる。この場合、システムコントローラ１４は、各専用命令プロセッサ１２に対応する専用命令プロセッサ制御部５０を備え、各専用命令プロセッサ制御部５０は、制御対象の専用命令プロセッサ１１の電源電圧やクロック周波数、条件フラグ数などの仕様に合わせた制御を行う。基本命令プロセッサ１１は、命令デコーダ１６を介して、各専用命令プロセッサ制御部５０を個別に制御できるため、複数の専用命令プロセッサ１２のうち、ある専用命令プロセッサ１２には待機モードを指令し、他の専用命令プロセッサには活性モードを指令できる。また、ある専用命令プロセッサ１１には、電源及びクロック信号が供給されない待機モードを指令し、他の専用命令プロセッサには、電源を供給し、クロック信号を供給しない待機モードを指令することもできる。
【００５８】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のシステムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体は、上記実施形態例にのみ限定されるものでなく、上記実施形態例の構成から種々の修正及び変更を施したシステムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体も、本発明の範囲に含まれる。例えば、上記実施形態例で設計したプロセッサに、従来の設計手法で設計した特定処理を行なう専用ハードウェアを追加することもできる。
【００５９】
【発明の効果】
以上説明したように、本発明のシステムＬＳＩ、システムＬＳＩの設計方法、及び、記録媒体では、システムコントローラが、専用命令プロセッサを直接に制御するため、基本命令プロセッサが、クロックサイクルレベルで専用命令プロセッサを直接に制御するのと同等となる。このため、起動や動作状態確認に要する時間を短縮することができ、システムＬＳＩが低消費電力で実現する。
【図面の簡単な説明】
【図１】本発明の一実施形態例のシステムＬＳＩの設計方法で使用するシステムの機能を示すブロック図。
【図２】本発明の一実施形態例のシステムＬＳＩの設計方法を示すフローチャート。
【図３】図２のシステムＬＳＩの設計方法によって得られるプロセッサの構成を示すブロック図。
【図４】図３のプロセッサの一動作例を示すタイミングチャート。
【図５】図３のプロセッサの一動作例を示すタイミングチャート。
【図６】従来のシステムＬＳＩの設計方法の手順を示すフローチャート。
【図７】図６の従来のシステムＬＳＩの設計方法によって得られるプロセッサの構成を示すブロック図。
【符号の説明】
１：アルゴリズム記述
２：基本命令プロセッサ記述
３：専用命令プロセッサ記述
４：プロセッサ間通信インタフェース記述
５：システムコントローラ記述
６：プロセッサ記述
７：ＲＴＬ記述
８：シミュレーション用記述
９：アプリケーションプログラム
１０：機械語命令セット
１１：基本命令プロセッサ
１２：専用命令プロセッサ
１３：プロセッサ間通信バス
１４：システムコントローラ
１５：システム制御部
１６：命令デコーダ
１７：デバイスドライバ
４０：基本命令プロセッサ制御部
４１、５１：電源制御部
４２、５２：クロック生成部
４３、５３：プログラムカウンタ
４４、５４：条件フラグ
５０：専用命令プロセッサ制御部
【図１】
0003776058.tif 000003
【図２】
0003776058.tif 000004
【図３】
0003776058.tif 000005
【図４】
0003776058.tif 000006
【図５】
0003776058.tif 000007
【図６】
0003776058.tif 000008
【図７】
0003776058.tif 000009