(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
第１のプログラムを記憶する第１のプログラム記憶部と、
第２のプログラムを記憶する第２のプログラム記憶部と、
前記ＣＰＵに接続されているバス、第１のプログラムのために使用する外部接続バス、および第２のプログラムのために使用する内部接続バスに接続され、前記ＣＰＵからのアクセスに対して前記外部接続バスと前記内部接続バスのどちらを選択するかを判断するアクセス制御部と、
前記外部接続バスおよび前記内部接続バスに接続され、前記第１のプログラムによって発行されたコマンドを記憶することによって、前記第２のプログラムに前記コマンドを読み出しさせるＩＦ部と、
を有する半導体集積回路。
【請求項２】
ＣＰＵと、
第１のプログラムを記憶する第１のプログラム記憶部と、
第２のプログラムを記憶する第２のプログラム記憶部と、
前記ＣＰＵに接続されているバス、第１のプログラムのために使用する外部接続バス、および第２のプログラムのために使用する内部接続バスに接続され、前記ＣＰＵからのアクセスに対して前記外部接続バスと前記内部接続バスのどちらを選択するかを判断するアクセス制御部と、
前記外部接続バスおよび前記内部接続バスに接続され、前記第１のプログラムによって発行されたコマンドを記憶することによって、前記第２のプログラムに前記コマンドを読み出しさせるＩＦ部と、
アドレス値と前記アドレス値に対応する使用バスを保持するアクセス制御定義テーブルとを有し、
前記アクセス制御部は、前記ＣＰＵがアクセスするアドレス値をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること
を特徴とする半導体集積回路。
【請求項３】
請求項１乃至２に記載の半導体集積回路であって、
前記ＣＰＵから前記ＩＦ部へのアクセスによって、ＣＰＵに割込みを発生する割込要因制御部を
さらに有することを特徴とする半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路であって、
前記割り込み要因制御部は、前記ＩＦ部へのアクセスが第１のバスを経由したものか第２のバスを経由したものかに応じて、前記ＣＰＵへの割り込み要因または割り込み番号を変えること、
を特徴とする半導体集積回路。
【請求項５】
請求項１乃至４に記載の半導体集積回路であって、
前記ＩＦ中にコマンドレジスタをさらに備え、
第１のプログラムによって書き込まれる前記コマンドレジスタの値に応じて、第２のプログラムにおいて起動する処理内容を変えること
を特徴とする半導体集積回路。
【請求項６】
請求項５に記載の半導体集積回路であって、
前記ＩＦ中にステータスレジスタをさらに備え、
第２のプログラムによって書き込まれる前記ステータスレジスタを介して、第２のプログラムの処理結果を第１のプログラムに通知すること
を特徴とする半導体集積回路。
【請求項７】
請求項１に記載の半導体集積回路であって、
第１のバスを経由すべきアクセスであるか第２のバスを経由すべきアクセスであるかを保持するアクセス方向記憶部をさらに備え、
前記アクセス制御部は、前記アクセス方向記憶部に保持されたアクセス経路にもとづいて前記ＩＦ部にアクセスすること、
を特徴とする半導体集積回路。
【請求項８】
請求項１に記載の半導体集積回路であって、
第１のプログラムと第２のプログラムは、共に前記ＣＰＵのＯＳ上で動作し、
タスク番号と前記タスク番号に対応する使用バスを保持するアクセス制御定義テーブルをさらに備え、
前記アクセス制御部は、前記ＣＰＵで実行中のタスク番号をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること
を特徴とする半導体集積回路。
【請求項９】
請求項１に記載の半導体集積回路であって、
プログラムカウンタ値と前記プログラムカウンタ値に対応する使用バスを保持するアクセス制御定義テーブルをさらに備え、
前記アクセス制御部は、前記ＣＰＵが動作しているプログラムカウンタ値をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること
を特徴とする半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はシステムＬＳＩの設計開発に関するものである。
【０００２】
【従来の技術】
ＬＳＩの分野では、高機能化、低価格化を実現するため、複数のＬＳＩを統合化するシステムＬＳＩの開発が主流である。ＬＳＩの価格は一般に半導体の面積により決まるため、シリコンの面積を低減する、あるいは、単一面積あたり、より多くの機能を実現することにより、高機能低価格なＬＳＩの実現が可能となる。
【０００３】
図９はシステムＬＳＩに統合化する前のＬＳＩの構成を表す図である。９０１はＣＰＵ部９０２を内蔵するＬＳＩであり、外部のＣＰＵ部９１０が発行したコマンドを入出力ＩＦ部９０５経由で受けとり、対応する処理を行なう。また、ＬＳＩ９０１は、プログラム記憶部９０３、一時記憶部９０４、ＥＣＣ部９０６、ＤＭＡ部９０７、タイマー部９０８から構成される。このようなＬＳＩとして、例えば、エラー訂正用ＬＳＩなどが挙げられる。ＣＰＵ部９１０はプログラム記憶部９１１、一時記憶部９１２と接続されており、プログラム記憶部９１１に記録されたソフトウエアモジュールの指示に従って動作する。ＣＰＵ部９１０は主にセット全体の制御とシステムＬＳＩ９０１に対するコマンド発行処理を行なっている。セットとは例えば、携帯電話、あるいは、デジタル音声処理の装置などが挙げられる。
【０００４】
このように構成された従来装置の動作を次に説明する。電源投入後、プログラム記憶部９１１に記録されたソフトウエアモジュールＢ１の実行が開始される。ソフトウエアモジュールＢ１では、ＬＳＩ９０１に対して入出力ＩＦ部９０５のコマンドレジスタに対してリードコマンドの書き込みを行う。入出力ＩＦ部９０５に書き込まれたことにより、プログラム記憶部９０３のソフトウエアモジュールＡ２が呼び出され、ＣＰＵ部９０２は入出力ＩＦ部９０５のレジスタを読み込み、コマンドがリードコマンドであると判断する。次にＬＳＩ９０１に内蔵されたハードウエアであるＥＣＣ部９０６や、ＤＭＡ部９０７、タイマー部９０８を起動しリード処理を行う。処理が完了すると、処理結果のステータスを入出力ＩＦ部９０５経由でＣＰＵ部９１０に通知する。
【０００５】
上記のように動作するＬＳＩを統合化する場合、２つのＬＳＩをそのまま合わせて１つのＬＳＩにするだけでは面積低減が達成できないため、同様の機能を有するハードウエアブロックを削除しサイズ低減を図る必要がある。具体的には、ＣＰＵ部９１０をシステムＬＳＩ９０１に内蔵されているＣＰＵ部９０２で代用し、外部のＣＰＵ部９１０を削除する。また、外部からのコマンド受理が不要になるため、入出力ＩＦ部９０５が不要になり削除する。このような場合、ハードウエア構成が変るため、プログラム記憶部９０３、プログラム記憶部９１１に内蔵されたソフトウエアモジュールＡ１、Ａ２、Ａ３に関して再設計を行う必要が発生する。
【０００６】
【発明が解決しようとする課題】
マイコンが内蔵されたＬＳＩを統合化する際、ハードウエア仕様が大幅に変更されるためソフトウエアを再設計する必要が発生するが、ソフトウエアの再設計には大きな工数が必要であり、再設計に伴う品質低下、開発の長期化が課題となる。また、ＬＳＩに内蔵された状態でのテストはより高度な解析技術が要求され、テスト期間増大にもつながる。
【０００７】
また一方、ソフトウエアの再利用性のみに着目し、複数のＬＳＩの構造を全く変更せずに接続した場合、ソフトウエアの再設計の工数は押さえることができるが面積削減が困難となり、低価格のＬＳＩを開発することが不可能となる。
【０００８】
本発明の目的は上記課題を解決するもので、ソフトウエアモジュールが使用していたＬＳＩ間のＩＯインタフェース回路をＬＳＩ統合化後もＬＳＩ内部に残すことにより、ＬＳＩ統合化後のソフトウエアモジュールの呼び出しがＬＳＩ統合化前と同様にＩＯインタフェース回路を介して行うことができ、ソフトウエアの再利用性確保とハードウエアの規模低減の両立を可能にするものである。
【０００９】
【課題を解決するための手段】
この課題を解決するために、本発明の請求項１記載の情報処理装置は、ＣＰＵと、第１のプログラム記憶部と、第２のプログラム記憶部と、バスを介して前記ＣＰＵと接続されているアクセス制御部と、第１のプログラム記憶部における第１のプログラムによって実行される処理と第２のプログラム記憶部における第２のプログラムによって実行される処理の仲介をするＩＦ部と、前記アクセス制御部と前記ＩＦ部に接続され、前記ＣＰＵが第１のプログラムのために使用する第１のバスと、前記アクセス制御部と前記ＩＦ部に接続され、前記ＣＰＵが第２のプログラムのために使用する第２のバスと、を有するものである。
【００１０】
また、本発明の請求項２記載の情報処理装置は、ＣＰＵと、第１のプログラム記憶部と、第２のプログラム記憶部と、バスを介して前記ＣＰＵと接続されているアクセス制御部と、第１のプログラム記憶部における第１のプログラムによって実行される処理と第２のプログラム記憶部における第２のプログラムによって実行される処理の仲介をするＩＦ部と、前記アクセス制御部と前記ＩＦ部に接続される第１のバスと、前記アクセス制御部と前記ＩＦ部に接続される第２のバスと、アドレス値と前記アドレス値に対応する使用バスを保持するアクセス制御定義テーブルとを有し、前記アクセス制御部は、前記ＣＰＵがアクセスするアドレス値をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること、を特徴とするものである。
【００１１】
また、本発明の請求項３記載の情報処理装置は、前記ＣＰＵから前記ＩＦ部へのアクセスによって、ＣＰＵに割込みを発生する割込要因制御部をさらに有すること、を特徴とするものである。
【００１２】
また、本発明の請求項４記載の情報処理装置は、前記割り込み要因制御部は、前記ＩＦ部へのアクセスが第１のバスを経由したものか第２のバスを経由したものかに応じて、前記ＣＰＵへの割り込み要因または割り込み番号を変えること、を特徴とするものである。
【００１３】
また、本発明の請求項５記載の情報処理装置は、前記ＩＦ中にコマンドレジスタをさらに備え、第１のプログラムによって書き込まれる前記コマンドレジスタの値に応じて、第２のプログラムにおいて起動する処理内容を変えること、を特徴とするものである。
【００１４】
また、本発明の請求項６記載の情報処理装置は、前記ＩＦ中にステータスレジスタをさらに備え、第２のプログラムによって書き込まれる前記ステータスレジスタを介して、第２のプログラムの処理結果を第１のプログラムに通知すること、を特徴とするものである。
【００１５】
また、本発明の請求項７記載の情報処理装置は、第１のバスを経由すべきアクセスであるか第２のバスを経由すべきアクセスであるかを保持するアクセス方向記憶部をさらに備え、前記アクセス制御部は、前記アクセス方向記憶部に保持されたアクセス経路にもとづいて前記ＩＦ部にアクセスすること、を特徴とするものである。
また、本発明の請求項８記載の情報処理装置は、第１のプログラムと第２のプログラムは、共に前記ＣＰＵのＯＳ上で動作し、タスク番号と前記タスク番号に対応する使用バスを保持するアクセス制御定義テーブルをさらに備え、前記アクセス制御部は、前記ＣＰＵで実行中のタスク番号をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること、を特徴とするものである。
また、本発明の請求項９記載の情報処理装置は、プログラムカウンタ値と前記プログラムカウンタ値に対応する使用バスを保持するアクセス制御定義テーブルをさらに備え、前記アクセス制御部は、前記ＣＰＵが動作しているプログラムカウンタ値をもとに、前記アクセス制御定義テーブルを参照して得た使用バスを用いて、前記ＩＦ部へアクセスすること、を特徴とするものである。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図１から図８を用いて説明する。
【００１７】
図１は本発明の第１の実施の形態におけるＬＳＩ装置を示す。同図において、１００はシステムＬＳＩであり、各種ハードウエアとハードウエアを制御するＣＰＵ部１０１を備えている。このＣＰＵ部１０１は、プログラム記憶部１０２、あるいは、プログラム記憶部１０３に記憶されたソフトウエアモジュールにより制御される。
【００１８】
一時記憶部１０４は、ＣＰＵ部１０１の実行中、一時的に値を記憶する。アクセス制御定義テーブル１０５は、アドレス値、ＰＣ値、使用バス、アクセス許可が記録されている。入出力ＩＦ部１０６は、内部にコマンドレジスタを持つ。また、入出力ＩＦ部１０６は外部ＬＳＩとのインタフェース機能を持ち、内部接続用バス、外部接続用バスから構成され双方からのアクセスが可能である。アクセス制御部１０７は、アクセス方向記憶部１０５から使用バスを得て入出力ＩＦ部１０６に対してＣＰＵ部１０１がアクセスで使用するバスを決定する。割り込み要因制御部１０８は、内部に割り込み要因レジスタを備え、割り込み信号をＣＰＵ部１０１に出力すると共に割り込み要因を内部に備える割り込み要因レジスタに記録する。割り込み要因制御部１０８は、入出力ＩＦ部１０６で割り込みが発生した時、アクセス制御部１０７よりアクセス使用バスにより割り込み要因を決定する。割り込みベクタ記憶部１０９は、発生した割り込み要因に対する割り込み処理プログラムの先頭番地が記録されている。内部バス１１０は、内蔵されたＥＣＣ部１１１、ＤＭＡ部１１２、タイマ部１１３とＣＰＵ部１０１との接続を行う。
【００１９】
本実施例では、プログラム記憶部１０３には、システムＬＳＩ１００内部の制御が記録されているとする。プログラム記憶部１０２には、システムＬＳＩ１００の外部システムの制御プログラム、プログラム記憶部１０３に記録された制御プログラムの呼び出しが記録されているとする。
【００２０】
図２は割り込み要因制御部１０８の動作を表すフローチャートである。
【００２１】
(Ｓ０１)入出力ＩＦ部１０６から割り込み要求信号が発生した場合(Ｓ０２)に移る。そうでないなら、(Ｓ０６)へ移る。
【００２２】
(ｓ０２)アクセス制御部１０７より使用バスを得る。
【００２３】
(ｓ０３)使用バスが内部接続バスである場合、(Ｓ０４)へ移る。外部接続バスである場合、(ｓ０５)へ移る。
【００２４】
(ｓ０４)割り込み要因レジスタに出力割り込みであると設定する。(Ｓ０６)へ移る。
【００２５】
(ｓ０５)割り込み要因レジスタに入力割り込みであると設定する。(Ｓ０６)へ移る。
【００２６】
(ｓ０６)処理終了。
【００２７】
ソフトウエアモジュールＢ１、Ｂ２、Ｂ３で構成されるプログラム記憶部１０２は１０００番地に配置されている。また、ソフトウエアモジュールＡ１、Ａ２、Ａ３で構成されるプログラム記憶部１０３は、８０００番地に配置されている。入出力ＩＦ部は１００番地に配置されるものとする。
【００２８】
以上のように構成された本発明の第１の実施の形態におけるＬＳＩ装置について一例を用いてその動作を説明する。
【００２９】
リセット後、プログラム記憶部１０２を構成するソフトウエアモジュールＢ１の実行が開始される。この時、プログラムカウンタは１０００番地である。ソフトウエアモジュールＢ１では、リード処理を起動するため、アクセス方向記憶部１０５に対して外部接続バスを使用することを指定する。次に１００番地の入出力ＩＦ部１０６に対してリードコマンド：０１の書き込みを行う。
【００３０】
アクセス制御部１０７では、アクセス方向記憶部１０５から使用バスを得る。この結果、外部接続用バス経由で入出力ＩＦ部１０６のコマンドレジスタに対してリードコマンド：０１の書き込みが行われる。そのコマンドレジスタの値が変更になったので、割り込み要因制御部１０８ではＣＰＵ部１０１に対して割り込み通知を行うと共に、割り込み要因の制御を行う。
【００３１】
図２のフローチャートに従い説明する。
【００３２】
(ｓ０１)入出力ＩＦ部１０６から割り込み要求信号が発生したので(ｓ０２)に移る。
【００３３】
(ｓ０２)アクセス制御部１０７より入出力ＩＦ部１０６の使用バスを得て、外部バスであると分かる。
【００３４】
(ｓ０３)使用バスが外部接続バスであるので(ｓ０５)へ移る。
【００３５】
(ｓ０５)割り込み要因レジスタに入力割り込みと設定する。(Ｓ０６)へ移る。
【００３６】
(ｓ０６)処理終了。
【００３７】
この結果、割り込み要因レジスタに入力割り込みと設定される。
【００３８】
次にＣＰＵ部１０１では割り込み要求を受け、割り込みベクタテーブル１０９を用いて割り込み処理プログラムを決定する。割り込み要因が入力割り込みである場合、割り込み処理プログラムがソフトウエアモジュールＡ１であることを得て、ソフトウエアモジュールＡ１を起動する。ソフトウエアモジュールＡ１はコマンドの値を読むため、アクセス方向記憶部１０５に対して内部接続バスを使用することを指定する。次に１００番地の入出力ＩＦ部１０６に対して読み込みを行う。
【００３９】
この結果、内部接続用バス経由でコマンドレジスタに対して読み込みが行われ、コマンド：０１、リードコマンドを得る。ソフトウエアモジュールＡ１はリードコマンドを処理するため、ソフトウエアモジュールＡ２を呼び出して内蔵ハードを起動する。ソフトウエアモジュールＡ２はリード処理を完了した際、ステータスを生成する。正常に終了した場合、ステータス００を生成する。ソフトウエアモジュールＡ２は１００番地の入出力ＩＦ部１０６が有するステータスレジスタに対して００を書き込む。この時、アクセス制御部は先のフローと同様の処理が行なわれ、入出力ＩＦ部１０６へアクセスするバスを内部接続バスであると判断してアクセスする。
【００４０】
ステータスレジスタの値が変更になったので、割り込み要因制御部１０８ではＣＰＵ部１０１に対して割り込み通知を行う。この時、アクセス方向が内部バスからのアクセスであったので、割り込み番号として２を選択する。次にＣＰＵ部１０１では割り込み要求を受け、割り込みベクタテーブル１０９を用いて割り込み先を得る。この結果、プログラム記憶部１０２のソフトウエアモジュールＢ２を呼び出す。ソフトウエアモジュールＢ２はコマンドの値を得るため、あらかじめアクセス方向記憶部１０５に使用バスを指定した後、１００番地のコマンドレジスタに対して読み込みを行う。以上の処理によりステータスの値を得る。
【００４１】
以上示した様に、従来のＬＳＩを制御するソフトウエアを変更することなく、ＬＳＩの統合化が可能となる。図３は本発明の第２の実施の形態のＬＳＩ装置の構成図を示すものである。同図において、３００はシステムＬＳＩであり、各種ハードウエアとハードウエアを制御するＣＰＵ部３０１を備えている。このＣＰＵ部３０１は、プログラム記憶部３０２、あるいは、プログラム記憶部３０３に記憶されたソフトウエアモジュールにより制御される。一時記憶部３０４は、ＣＰＵ部３０１の実行中、一時的に値を記憶する。アクセス制御定義テーブル３０５は、アドレス値、ＰＣ値、使用バス、アクセス許可が記録されている。入出力ＩＦ部３０６は、内部にコマンドレジスタを持つ。入出力ＩＦ部３０６は外部ＬＳＩとのインタフェース機能を持ち、内部接続用バス、外部接続用バスから構成され双方からのアクセスが可能である。
【００４２】
アクセス制御部３０７は、アクセス制御定義テーブル３０５からアクセス条件を得て入出力ＩＦ部３０６とＣＰＵ部３０１とのアクセス許可、ならびに、アクセスで使用するバスを決定する。
【００４３】
割り込み要因制御部３０８は、入出力ＩＦ部３０６で割り込みが発生した時、アクセス制御部３０７よりアクセス使用バスにより割り込み要因を決定し、ＣＰＵ部３０１に割り込み信号を出力すると共に、内部に備える割り込み要因レジスタに割り込み要因を記録する。
【００４４】
割り込みベクタ記憶部３０９は、発生した割り込み要因に対する割り込み処理プログラムの先頭番地が記録されている。
【００４５】
内部バス３１０は、内蔵されたＥＣＣ部３１１、ＤＭＡ部３１２、タイマ部３１３とＣＰＵ部３０１との接続を行う。
【００４６】
本実施例では、プログラム記憶部３０３には、ＬＳＩ内部の制御が記録されているとする。プログラム記憶部３０２には、ＬＳＩの外部システムの制御プログラム、プログラム記憶部３０３に記録された制御プログラムの呼び出しが記録されているとする。
【００４７】
図４はアクセス制御部３０７の動作を表すフローチャートである。
【００４８】
(ｓ１１)ＣＰＵ部３０１がアクセス要求しているアドレスをアドレスバスから得る。
【００４９】
(ｓ１２)アクセス制御定義テーブル３０５中に、ＣＰＵ部３０１が指定するアドレスと一致する情報がある場合、(Ｓ１３)に移る。そうでないなら、(Ｓ１７)へ移る。
【００５０】
(ｓ１３)ＣＰＵ部３０１よりＰＣの値を得る。(ｓ１４)Ｓ１２で一致した表のＰＣ値とＣＰＵ部３０１のＰＣ値が一致するなら、(Ｓ１５)へ、そうでないなら(Ｓ１７)へ移る。
【００５１】
(ｓ１５)アクセス制御定義テーブル３０５より、チップセレクトの値を得て、入出力ＩＦ部３０６へのアクセスを許可するか判断する。
【００５２】
(ｓ１６)アクセス制御定義テーブル３０５より、使用バスの値を得て、入出力ＩＦ部３０６へアクセスするバスを決定する。
【００５３】
(ｓ１７)処理終了。
【００５４】
割り込み要因制御部３０８の動作は図２のフローチャートに従う。
【００５５】
図５(A)はアクセス制御定義テーブル３０５の内容を表す図である。このアクセス制御定義テーブル３０５は、アドレス値、プログラムカウンタの値とアクセスの際に使用するバスが記載されている。
【００５６】
図５（B）はシステムのメモリマップを表す図である。ソフトウエアモジュールＢ１、Ｂ２、Ｂ３で構成されるプログラム記憶部３０２は１０００番地に配置されている。また、ソフトウエアモジュールＡ１、Ａ２、Ａ３で構成されるプログラム記憶部３０３は、８０００番地に配置されている。入出力ＩＦ部がソフトウエアモジュールＢ１、Ｂ２、Ｂ３からアクセスされる場合１００番地に配置され、ソフトウエアモジュールＡ１、Ａ２、Ａ３からアクセスされる場合、E０００番地に配置される。
【００５７】
以上のように構成された本発明の第２の実施の形態におけるＬＳＩ装置について一例を用いてその動作を説明する。リセット後、プログラム記憶部３０２を構成するソフトウエアモジュールＢ１の実行が開始される。この時、プログラムカウンタは１０００番地である。ソフトウエアモジュールＢ１では、リード処理を起動するため、１００番地の入出力ＩＦ部３０６に対してリードコマンド：０１の書き込みを行う。
【００５８】
アクセス制御部３０７では、入出力ＩＦ部３０６に対するアクセス許可と使用バスを図４のフローチャートにより決定する。
【００５９】
(ｓ１１)ＣＰＵ部３０１がアクセス要求しているアドレスをアドレスバスから得て、１００番地であることがわかる。
【００６０】
(ｓ１２)アクセス制御定義テーブル３０５中に、ＣＰＵ部３０１が指定する100番地と一致する情報がある場合ので(ｓ１３)に移る。
【００６１】
(ｓ１３)ＣＰＵ部３０１よりＰＣの値を得た結果、１０００番地以降である。
【００６２】
(ｓ１４)Ｓ０２で一致した表のＰＣ値とＣＰＵ部３０１のＰＣ値が一致するため、(ｓ１５)へ移る。
【００６３】
(ｓ１５)アクセス制御定義テーブル３０５より、チップセレクトの値を得て、入出力ＩＦ部３０６へのアクセスを許可すると判断する。
【００６４】
(ｓ１６)アクセス制御定義テーブル３０５より、使用バスの値を得て、入出力ＩＦ部３０６へアクセスするバスを外部接続バスであると判断する。
【００６５】
(ｓ１７)処理終了。
【００６６】
この結果、外部接続用バス経由で入出力ＩＦ部３０６のコマンドレジスタに対してリードコマンド：０１の書き込みが行われる。コマンドレジスタの値が変更になったので、割り込み要因制御部３０８ではＣＰＵ部３０１に対して割り込み通知を行うと共に、割り込み要因の制御を行う。割り込み要因制御部３０８の動作は図２のフローチャートに従う。
【００６７】
(ｓ０１)入出力ＩＦ部３０６から割り込み要求信号が発生したので(Ｓ０２)に移る。
【００６８】
(ｓ０２)アクセス制御部３０７より入出力ＩＦ部３０６の使用バスを得て、外部バスであると分かる。(ｓ０３)使用バスが外部接続バスであるので(ｓ０５)へ移る。
【００６９】
(ｓ０５)割り込み要因レジスタに入力割り込みと設定する。(Ｓ０６)へ移る。
【００７０】
(ｓ０６)処理終了。
【００７１】
この結果、割り込み要因レジスタに入力割り込みと設定される。
【００７２】
次にＣＰＵ部３０１では割り込み要求を受け、割り込みベクタテーブル３０９を用いて割り込み処理プログラムを決定する。割り込み要因が入力割り込みである場合、割り込み処理プログラムがソフトウエアモジュールＡ１であることを得て、ソフトウエアモジュールＡ１を起動する。ソフトウエアモジュールＡ１はコマンドの値を得るため、E０００番地のコマンドレジスタに対して読み込みを行う。
【００７３】
(ｓ１１)ＣＰＵ部３０１がアクセス要求しているアドレスをアドレスバスから得て、E０００番地であることがわかる。
【００７４】
(ｓ１２)アクセス制御定義テーブル３０５中に、ＣＰＵ部３０１が指定するE０００番地と一致する情報がある場合ので(Ｓ１３)に移る。
【００７５】
(ｓ１３)ＣＰＵ部３０１よりＰＣの値を得た結果、８０００番地以降である。
【００７６】
(ｓ１４)Ｓ１２で一致した表のＰＣ値とＣＰＵ部３０１のＰＣ値が一致するため、(Ｓ１５)へ移る。
【００７７】
(ｓ１５)アクセス制御定義テーブル３０５より、チップセレクトの値を得て、入出力ＩＦ部３０６へのアクセスを許可すると判断する。
【００７８】
(ｓ１６)アクセス制御定義テーブル３０５より、使用バスの値を得て、入出力ＩＦ部３０６へアクセスするバスを内部接続バスであると判断する。
【００７９】
(ｓ１７)処理終了。
【００８０】
この結果、内部接続用バス経由で入出力ＩＦ部３０６のコマンドレジスタに対して読み込みが行われ、コマンド：０１、リードコマンドを得る。
【００８１】
ソフトウエアモジュールＡ１はリードコマンドを処理するため、ソフトウエアモジュールＡ２を呼び出して内蔵ハードを起動する。ソフトウエアモジュールＡ２はリード処理を完了した際、ステータスを生成する。正常に終了した場合、ステータス００を生成する。
【００８２】
ソフトウエアモジュールＡ２はE０００番地の入出力ＩＦ部３０６が有するステータスレジスタに対して００を書き込む。この時、アクセス制御部は先のフローと同様の処理が行なわれ、入出力ＩＦ部３０６へアクセスするバスを内部接続バスであると判断してアクセスする。
【００８３】
ステータスレジスタの値が変更になったので、割り込み要因制御部３０８ではＣＰＵ部３０１に対して割り込み通知を行う。この時、アクセス方向が内部バスからのアクセスであったので、割り込み番号として２を選択する。
【００８４】
次にＣＰＵ部３０１では割り込み要求を受け、割り込みベクタテーブル３０９を用いて割り込み先を得る。この結果、プログラム記憶部３０２のソフトウエアモジュールＢ２を呼び出す。ソフトウエアモジュールＢ２はコマンドの値を得るため、１８００番地のコマンドレジスタに対して読み込みを行う。１８００番地のソフトウエアモジュールはステータスの値を得るため、１０００番地のコマンドレジスタに対して読み込みを行う。これにより、実行結果のステータスの値を得る。
【００８５】
以上の様に、アクセス制御定義テーブル３０５を持つことにより、別々のＬＳＩであった時の入出力ＩＦ部３０６のアドレスマップが内部、外部で異なる場合であっても、アドレスを変換し、アクセスされたＰＣとアドレスに応じて、使用バスを切り替えることでソフトウエアの変更が不要であり、ソフトウエアの高い再利用性が実現可能となる。
【００８６】
図６は本発明の第３の実施の形態のＬＳＩ装置の構成図を示すものである。同図において、６００はシステムＬＳＩであり、各種ハードウエアとハードウエアを制御するＣＰＵ部６０１を備えている。このＣＰＵ部６０１は、プログラム記憶部６０２、プログラム記憶部６０３に記憶されたソフトウエアモジュールにより制御される。プログラム記憶部６０２は、デコーダ部６０４が出力するプログラム記憶部用チップセレクト信号によりアクセス制御されており、プログラム記憶部６０３は、デコーダ部６０５が出力するプログラム記憶部用チップセレクト信号によりアクセス制御されている。
【００８７】
一時記憶部６０６は、ＣＰＵ部６０１の実行中、一時的に値を記憶する。また、タスクコントロールブロック（TCB）を備え、ＯＳのタスク切り替えの際、レジスタやタスク番号等が待避される。アクセス制御定義テーブル６０７は、アドレス値、ＰＣ値、使用バス、アクセス許可が記録されている。入出力ＩＦ部６０８は、内部にコマンドレジスタを持つ。入出力ＩＦ部６０８は外部ＬＳＩとのインタフェース機能を持ち、内部接続用バス、外部接続用バスから構成され双方からのアクセスが可能である。
【００８８】
アクセス制御部６０９は、アクセス制御定義テーブル６０７からアクセス条件を得て入出力ＩＦ部３０７とＣＰＵ部６０１とのアクセス許可、ならびに、アクセスで使用するバスを決定する。
【００８９】
割り込み要因制御部６１０は、入出力ＩＦ部６０８で割り込みが発生した時、アクセス制御部６０９よりアクセス使用バスにより割り込み要因を決定し、ＣＰＵ部６０１に割り込み信号を出力すると共に、内部に備える割り込み要因レジスタに割り込み要因を記録する。
【００９０】
割り込みベクタ記憶部６１１は、発生した割り込み要因に対する割り込み処理プログラムの先頭番地が記録されている。
【００９１】
内部バス６１２は、内蔵されたＥＣＣ部６１３、ＤＭＡ部６１４、タイマ部６１５とＣＰＵ部６０１との接続を行う。
【００９２】
本実施例では、プログラム記憶部６０３には、ＬＳＩ内部の制御が記録されているとする。また、ＯＳのタスクとして動作するものとする。プログラム記憶部６０２には、ＬＳＩの外部システムの制御プログラムと、プログラム記憶部６０３に記録された制御プログラムの呼び出しが記録されているとする。
【００９３】
図７はアクセス制御部３０８の動作を表すフローチャートである。
【００９４】
(ｓ２１)ＣＰＵ部６０１がアクセス要求しているアドレスをアドレスバスから得る。
【００９５】
(ｓ２２)アクセス制御定義テーブル６０７中に、ＣＰＵ部６０１が指定するアドレスと一致する情報がある場合、(Ｓ２３)に移る。そうでないなら、(Ｓ２９)へ移る。
【００９６】
(ｓ２３)プログラム記憶部６０２、または、プログラム記憶部６０３へのプログラム記憶部用チップセレクト信号が出力されているかをアドレスデコーダ部６０５より得る。
【００９７】
(ｓ２４)Ｓ２２で一致した表のプログラム記憶部用チップセレクト信号の条件一致するなら、
(Ｓ２７)へ移る。そうでないなら(Ｓ２９)へ移る。
【００９８】
(ｓ２５)一時期億部６０６内のタスクコントロールブロックから、現在実行中のタスクのタスク番号を得る。
【００９９】
(ｓ２６)Ｓ２２で一致した表のタスク番号が一致するなら、(Ｓ２７)へ、そうでないなら(Ｓ２９)へ移る。
【０１００】
(ｓ２７)アクセス制御定義テーブル６０７より、入出力ＩＦ部用のチップセレクトの値を得て、入出力ＩＦ部６０８へのアクセスを許可すると判断する。
【０１０１】
(ｓ２８)アクセス制御定義テーブル６０７より、使用バスの値を得て、入出力ＩＦ部６０８へアクセスするバスを内部接続バスであるか、外部接続バスであるか判断する。
【０１０２】
(ｓ２９)処理終了。
【０１０３】
割り込み要因制御部６１０の動作は図２のフローチャートに従うものとする。
【０１０４】
図８はアクセス制御定義テーブル６０６の内容を表す図である。このアクセス制御定義テーブル３０５は、アクセス要求を受けたアドレス値、プログラム記憶部用チップセレクト、タスク番号、入出力ＩＦ部用チップセレクト、アクセスの際に使用するバスが記載されている。
【０１０５】
以上のように構成された本発明の第３の実施の形態におけるＬＳＩ装置について一例を用いてその動作を説明する。リセット後、プログラム記憶部６０２を構成するソフトウエアモジュールＢ１の実行を開始するため、アドレスバスの値が１０００番地となる。この時、デコーダ部６０４が判断し、プログラム記憶部６０２用のチップセレクト信号を出力する。ソフトウエアモジュールＢ１では、リード処理を起動するため、１００番地の入出力ＩＦ部６０８に対してリードコマンド：０１の書き込みを行う。
【０１０６】
アクセス制御部６０９では、入出力ＩＦ部６０８に対するアクセス許可と使用バスを図７のフローチャートにより決定する。
【０１０７】
(ｓ２１)ＣＰＵ部６０１がアクセス要求しているアドレスをアドレスバスから得て、100番地であることがわかる。
【０１０８】
(ｓ２２)アクセス制御定義テーブル６０７中に、ＣＰＵ部６０１が指定する100番地と一致する情報があるので(Ｓ２３)に移る。
【０１０９】
(ｓ２３)アドレスデコーダ部６０５よりプログラム記憶部６０２に対してプログラム記憶部用チップセレクト信号が出力されている。
【０１１０】
(ｓ２４)Ｓ２２で一致した表のプログラム記憶部用チップセレクト信号の条件一致するので(Ｓ２７)へ移る。
【０１１１】
(ｓ２７)アクセス制御定義テーブル６０７より、チップセレクトの値を得て、入出力ＩＦ部６０８へのアクセスを許可すると判断する。
【０１１２】
(ｓ２８)アクセス制御定義テーブル６０７より、使用バスの値を得て、入出力ＩＦ部６０８へアクセスするバスを外部接続バスであると判断する。
【０１１３】
(ｓ２９)処理終了。
【０１１４】
この結果、外部接続用バス経由で入出力ＩＦ部６０７のコマンドレジスタに対してリードコマンド：０１の書き込みが行われる。コマンドレジスタの値が変更になったので、割り込み要因制御部６１０ではＣＰＵ部６０１に対して割り込み通知を行うと共に、割り込み要因の制御を行う。割り込み要因制御部６１０の動作は図２のフローチャートに従う。
【０１１５】
(ｓ０１)入出力ＩＦ部６０８から割り込み要求信号が発生したので(Ｓ０２)に移る。
【０１１６】
(ｓ０２)アクセス制御部６０９より入出力ＩＦ部６０８の使用バスを得て、外部バスであると分かる。
【０１１７】
(ｓ０３)使用バスが外部接続バスであるので(ｓ０５)へ移る。
【０１１８】
(ｓ０５)割り込み要因レジスタに入力割り込みと設定する。
【０１１９】
(ｓ０６)処理終了。
【０１２０】
この結果、割り込み要因レジスタに入力割り込みと設定される。
【０１２１】
次にＣＰＵ部６０１では割り込み要求を受け、割り込みベクタテーブル６１１を用いて割り込み処理プログラムを決定する。割り込み要因が入力割り込みである場合、割り込み処理プログラムがソフトウエアモジュールＡ１であることを得て、ソフトウエアモジュールＡ１を起動する。この時、アドレスバスの値は８０００番地であり、デコーダ部６０５はプログラム記憶部６０３に対してチップセレクト信号を出力する。ソフトウエアモジュールＡ１はＯＳの元で動作するタスクであり、タスク番号が１であるとする。タスクの切り替わりにより、一時記憶部６０６中のTCBの値を１に設定する。コマンドの値を得るため、E０００番地のコマンドレジスタに対して読み込みを行う。
【０１２２】
(ｓ２１)ＣＰＵ部６０１がアクセス要求しているアドレスをアドレスバスから得る。
【０１２３】
(ｓ２２)アクセス制御定義テーブル６０７中に、ＣＰＵ部６０１が指定するＥ０００番地と一致する情報があるので(Ｓ２３)に移る。
【０１２４】
(ｓ２３)アドレスデコーダ部６０５よりプログラム記憶部６０３へのプログラム記憶部用チップセレクト信号が出力されていることを得る。
【０１２５】
(ｓ２４)Ｓ２２で一致した表のプログラム記憶部用チップセレクト信号と条件一致しないので(Ｓ２５)へ移る。
【０１２６】
(ｓ２５)一時期億部６０６内のタスクコントロールブロック（ＴＣＢ）から、現在実行中のタスクのタスク番号１を得る。
【０１２７】
(ｓ２６)Ｓ２２で一致した表のタスク番号が一致するので(Ｓ２７)へ移る。
【０１２８】
(ｓ２７)アクセス制御定義テーブル６０７より、チップセレクトの値を得て、入出力ＩＦ部６０８へのアクセスを許可すると判断する。
【０１２９】
(ｓ２８)アクセス制御定義テーブル６０７より、使用バスの値を得て、入出力ＩＦ部６０８へアクセスするバスを内部接続バスであると判断する。
【０１３０】
(ｓ２９)処理終了。
【０１３１】
この結果、内部接続用バス経由で入出力ＩＦ部６０７のコマンドレジスタに対して読み込みが行われ、コマンド：０１、リードコマンドを得る。
【０１３２】
ソフトウエアモジュールＡ１はリードコマンドを処理するため、ソフトウエアモジュールＡ２を呼び出して内蔵ハードを起動する。ソフトウエアモジュールＡ２はリード処理を完了した際、ステータスを生成する。正常に終了した場合、ステータス００を生成する。
【０１３３】
以上の様に、メモリ用のチップセレクト信号を条件に持つアクセス制御定義テーブル６０６を持つことにより、プログラムが異なるメモリ素子に記録されている場合、容易にアクセス方向の判断が行え、使用バスを切り替えることでソフトウエアの変更が不要であり、ソフトウエアの高い再利用性が実現可能となる。
【０１３４】
また、タスク番号によりアクセス方向を判断することにより、同一のメモリ素子に記憶されている場合であっても、同等のシステムが実現可能である。
【０１３５】
なお、本実施例では入出力ＩＦ部として外部接続バスを有する例を示したが、メモリ等の記憶素子を用いて実現することも可能である。
【０１３６】
【発明の効果】
以上のように本発明は、ソフトウエアモジュールが使用していたＬＳＩ間のＩＯインタフェース回路をＬＳＩ統合化後もＬＳＩ内部に残すことにより、ＬＳＩ統合化後のソフトウエアモジュールの呼び出しがＬＳＩ統合化前と同様にＩＯインタフェース回路を介して行うことができ、ソフトウエアの再利用性確保とハードウエアの規模低減の両立を可能にするものである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるＬＳＩ装置の構成図
【図２】同実施の形態における割り込み要因制御部の動作を表すフロー図
【図３】本発明の第２の実施の形態におけるＬＳＩ装置の構成図
【図４】同実施の形態におけるアクセス制御部の動作を表すフロー図
【図５】（Ａ）同実施の形態におけるアクセス制御定義部の内容を表す図
（Ｂ）同実施の形態におけるメモリマップを表す図
【図６】本発明の第３の実施の形態におけるＬＳＩ装置の構成図
【図７】同実施の形態におけるアクセス制御部の動作を表すフロー図
【図８】同実施の形態におけるアクセス制御定義部の内容を表す図
【図９】従来のＬＳＩ装置の構成図
【符号の説明】
１００  システムＬＳＩ
１０１  ＣＰＵ部
１０２  プログラム記憶部
１０３  プログラム記憶部
１０４  一時記憶部
１０５  アクセス方向記憶部
１０６  入出力ＩＦ部
１０７  アクセス制御部
１０８  割り込み要因制御部
１０９  割り込みベクタテーブル
１１０  内部バス
【図１】
0003931607.tif 000002
【図２】
0003931607.tif 000003
【図３】
0003931607.tif 000004
【図４】
0003931607.tif 000005
【図５】
0003931607.tif 000006
【図６】
0003931607.tif 000007
【図７】
0003931607.tif 000008
【図８】
0003931607.tif 000009
【図９】
0003931607.tif 000010