(57)【要約】【課題】ＣＰＵ内蔵ＬＳＩと外部ＣＰＵがバスを共有するシステムにおいて、外部ＣＰＵがバスに接続された被制御デバイスにアクセスする際に、ＣＰＵ内蔵ＬＳＩにおいて共有バス上に実装されたデバイスのアクセスを妨げないようにする。【解決手段】ＣＰＵａと、ＣＰＵａに接続された共有アドレス／データバス１１１、１１２と、ＣＰＵｂに接続されたＣＰＵｂアドレス／データバス２１１、２１２と、共有アドレス／データバスとＣＰＵｂアドレス／データバスとの間に配置され、共有アドレス／データバスに接続されたデバイスに対するＣＰＵｂおよびＣＰＵａからのアクセスを排他的に制御し、ＣＰＵｂが共有アドレス／データバスに接続されたデバイスに対するアクセスを許可されたときにのみＣＰＵｂアドレス／データバスを共有アドレス／データバスに結合するバス調停回路１０５とを備える。【選択図】  図１
2004199187.tif 000002
【特許請求の範囲】
【請求項１】
内蔵ＣＰＵと、前記内蔵ＣＰＵに接続された第１のバスと、外部ＣＰＵに接続された第２のバスと、前記第１のバスと前記第２のバスとの間に配置され、前記第１のバスに接続されたデバイスに対する前記外部ＣＰＵおよび前記内蔵ＣＰＵからのアクセスを排他的に制御し、前記外部ＣＰＵが前記第１のバスに接続されたデバイスに対するアクセスを許可されたときにのみ前記第２のバスを前記第１のバスに結合するバス調停回路とを備えたことを特徴とするＣＰＵ内蔵ＬＳＩ。
【請求項２】
前記バス調整回路は、前記内蔵ＣＰＵによる前記第１のバスに接続されたデバイスへのアクセス中に、前記外部ＣＰＵから前記第１のバスに接続されたデバイスに対するアクセス要求が発生すると、前記内蔵ＣＰＵへバス解放要求信号を伝えるとともに前記外部ＣＰＵへウェイト信号を伝え、前記内蔵ＣＰＵからバス解放完了信号を受け取ると前記ウェイト信号を解除し、前記第１のバスに接続されたデバイスに対する前記外部ＣＰＵからのアクセスを許可することを特徴とする請求項１記載のＣＰＵ内蔵ＬＳＩ。
【請求項３】
前記バス調停回路は、前記内蔵ＣＰＵの動作停止が設定されると、前記バス解放要求信号を前記内蔵ＣＰＵに伝えることなく、前記第１のバスに接続されたデバイスに対する前記外部ＣＰＵからのアクセスを許可することを特徴とする請求項２記載のＣＰＵ内蔵ＬＳＩ。
【請求項４】
前記第１のバスに接続された共有メモリを備えることを特徴とする請求項１から３のいずれか一項記載のＣＰＵ内蔵ＬＳＩ。
【請求項５】
前記第１のバスに接続され、前記ＣＰＵ内蔵ＬＳＩを動作させるプログラムを格納するメモリデバイスを備えることを特徴とする請求項１から４のいずれか一項記載のＣＰＵ内蔵ＬＳＩ。
【請求項６】
前記バス調停回路は、前記内蔵ＣＰＵと前記外部ＣＰＵとの間における割り込み通知を行うための割り込み制御回路を備えることを特徴とする請求項１から５のいずれか一項記載のＣＰＵ内蔵ＬＳＩ。
【請求項７】
前記割り込み制御回路は、割り込み要因のビット割り当て設定がプログラム可能な複数ビットを有する割り込み要因レジスタと、前記割り込み要因レジスタのビット論理和を割り込み信号として出力する回路とを備えることを特徴とする請求項６記載のＣＰＵ内蔵ＬＳＩ。
【請求項８】
前記第１のバスに接続されたメモリデバイスはＲＡＭであり、前記ＣＰＵ内蔵ＬＳＩの起動時に、前記外部ＣＰＵが前記第２のバスに接続された外部メモリから前記ＲＡＭへ前記内蔵ＣＰＵを動作させるプログラムをロードすることを特徴とする請求項５記載のＣＰＵ内蔵ＬＳＩ。
【請求項９】
前記バス調停回路は、書き込みアドレスレジスタと書き込みデータレジスタとを備え、前記外部ＣＰＵは、前記内蔵ＣＰＵを動作させるプログラムを前記ＲＡＭへロードする際に、前記ＲＡＭのアドレスを前記書き込みアドレスレジスタに設定し、前記ＲＡＭに書き込むデータを前記書き込みデータレジスタに書き込むことを特徴とする請求項８記載のＣＰＵ内蔵ＬＳＩ。
【請求項１０】
前記書き込みアドレスレジスタは、前記書き込みデータレジスタへの書き込みが発生する度にインクリメントされることを特徴とする請求項９記載のＣＰＵ内蔵ＬＳＩ。
【請求項１１】
第１の内蔵ＣＰＵと、第２の内蔵ＣＰＵと、前記第１の内蔵ＣＰＵに接続された第１のバスと、前記第２の内蔵ＣＰＵに接続された第２のバスと、前記第１のバスと前記第２のバスとの間に配置され、前記バス調停回路は、前記第１のバスに接続されたデバイスに対する前記第２の内蔵ＣＰＵおよび前記第１の内蔵ＣＰＵからのアクセスを排他的に制御し、前記第２の内蔵ＣＰＵが前記第１のバスに接続されたデバイスに対するアクセスを許可されたときにのみ前記第２のバスを前記第１のバスに結合するバス調停回路とを備えたことを特徴とするＣＰＵ内蔵ＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内蔵ＣＰＵと外部ＣＰＵとが共有バスをアクセスするシステム構成におけるバス制御機能を備えたＣＰＵ内蔵ＬＳＩに関するものである。
【０００２】
【従来の技術】
近年、システムＬＳＩが複雑化／大規模化する中で、システムＬＳＩの制御を行うソフトウェアにおいても複雑化／大規模化が進んでいる。これに伴い、システムＬＳＩが実現する機能をセット商品に実装する際に、ソフトウェア実装工数の増加が最大の課題となってきている。
【０００３】
そこで、システムＬＳＩにＣＰＵを内蔵し、システムＬＳＩの制御ソフトウェアを内蔵ＣＰＵに実行させることにより、複雑なソフトウェア処理をシステムＬＳＩ内に隠蔽する方法がトレンドになりつつある。この方法は、ＵＳＢ、ＩＥＥＥ１３９４等の後付け機能となることが多いインターフェース系を有するシステムＬＳＩに多用されている。
【０００４】
前述のＣＰＵを内蔵したシステムＬＳＩをセット商品のシステムに実装する場合、セット商品システムに既存するＣＰＵと内蔵ＣＰＵとの間の通信が必要となる。通信方法は、シリアルバス接続による方法と、パラレルバスによるバス共有の方法に大別されるが、大量のデータを通信する場合は、通信速度の面からパラレルバスによるバス共有を採用しメモリ共有を行うことが多い。
【０００５】
ここで図６を用いて、２つのＣＰＵが外部拡張バスを共有してメモリ共有を行うことによりデータ通信を実現する従来のシステム構成を説明する。図６に示すように、システムはＣＰＵ内蔵システムＬＳＩ１００、ＣＰＵｂ２００、ＣＰＵｂが制御する被制御デバイスｂ２０１から構成される。さらに、ＣＰＵ内蔵システムＬＳＩ１００は、ＣＰＵａ１０１、ＣＰＵａの処理プログラムを格納するＲＯＭ１０２、ＣＰＵａが制御する被制御デバイスａ１０３、ＣＰＵａとＣＰＵｂがデータ通信を行うための共有メモリ１０４から構成される。
【０００６】
ＣＰＵｂ２００は、外部拡張されたアドレスバス／データバスを介して、被制御デバイスｂ２０１とＣＰＵ内蔵システムＬＳＩ１００の２つのデバイスを制御する構成となり、ＣＰＵ内蔵システムＬＳＩ１００を制御する際は共有メモリ１０４を介して制御を行う。
【０００７】
ＣＰＵａ１０１は外部拡張されたアドレスバス／データバスをＣＰＵｂ２００と共有しており、この共有バスを介してＲＯＭ１０２から処理プログラムを読み出し、これを実行しながら被制御デバイスａ１０３の制御を行うとともに、共有メモリ１０４を介してＣＰＵｂ２００からの制御を受ける。
【０００８】
また、ＣＰＵａ１０１とＣＰＵｂ２００はそれぞれバス調停機能を備えており、ＣＰＵｂ２００が共有バスを使用して被制御デバイスｂ２０１や共有メモリ１０４にアクセスする際は、以下の手順でバスの使用権を獲得してアクセスを行う。
【０００９】
（１）ＣＰＵｂ２００がＣＰＵａ１０１に対してバス開放要求信号ＢＲＥＱをアサートする。
（２）ＣＰＵａ１０１は共有バスへのアクセスを停止して、ＣＰＵｂ２００に対してバス開放完了信号ＢＡＣＫをアサートする。
（３）ＣＰＵｂ２００は被制御デバイスｂ２０１あるいは共有メモリ１０４へのアクセスを完了すると、ＣＰＵａ１０１に対するＢＲＥＱ信号をネゲートする。
（４）ＣＰＵａ１０１はＢＲＥＱ信号のネゲートを確認してからＢＡＣＫ信号をネゲートする。
【００１０】
同様に、ＣＰＵａが共有バスを使用してＲＯＭ１０２、被制御デバイスａ１０３および共有メモリ１０４にアクセスする場合に関しても、ＣＰＵｂ２００にバス開放要求信号ＢＲＥＱを出してバスの使用権を獲得し、上記と同様の処理を行う。
【００１１】
このような複数のＣＰＵがバスを共有するシステムにおける、共有バスの使用権を獲得するためのバス調停に関しては優先度制御の課題があり、従来各種方式が提案されている。例えば、特許文献１に記載のものは、複数のＣＰＵのバス使用権の要求／許可信号をリング状に接続し、固定的な優先度制御を排除するものである。
【００１２】
【特許文献１】
特開平５−２８２２４６号公報
【００１３】
【発明が解決しようとする課題】
しかしながら、上記従来のシステム構成では、通常、ＣＰＵａ１０１はＲＯＭ１０２から処理プログラムを読み出し実行しているが、ＣＰＵｂ２００が被制御デバイスｂ２０１や共有メモリ１０４にアクセスする度に、ＣＰＵｂ２００が共有バスを使用するためにＣＰＵａ１０１がＲＯＭ１０２にアクセスできなくなり、ＣＰＵａ１０１は処理を停止する必要がある。その結果、ＣＰＵａ１０１の処理効率が著しく低下するという問題が生じていた。
【００１４】
また、ＣＰＵｂ２００がＣＰＵ内蔵システムＬＳＩ１００を制御するためには必ず上記ＢＲＥＱ信号とＢＡＣＫ信号を用いたバス調停機能を備えている必要があり、ＣＰＵｂ２００の品種の選択範囲が制限される点も問題であった。
【００１５】
さらに、ＣＰＵ内蔵システムＬＳＩ１００が後付けのインターフェース系を有するシステムＬＳＩである場合など、ＣＰＵｂ２００がシステム全体の制御を行うマイコンである場合では、全体の制御を司るＣＰＵｂ２００の動作をＣＰＵａ１０１に対して優先させたいことが多い。
【００１６】
しかしながら、従来の構成においては、ＣＰＵａ１０１とＣＰＵｂ２００がバスに対して対等の権限をもっているため、ＣＰＵｂ２００の動作中にＣＰＵａ１０１が共有バスにアクセスすると割り込みが生じ、ＣＰＵｂ２００がシステム全体の制御を行えなくなり、セットとしても処理効率が低下するという問題もあった。
【００１７】
本願発明は上記事情に鑑みてなされたものであり、ＣＰＵ内蔵ＬＳＩが他のＣＰＵとバスを共有するシステムにおいて、それぞれのＣＰＵが常時使用するデバイスがバスに接続されている場合に、それぞれのＣＰＵがそれぞれ常時使用するデバイスを同時にアクセスしあるいは制御することを可能にする機構を備えたＣＰＵ内蔵ＬＳＩを提供し、システムの処理効率を上げることを第１の課題とする。
【００１８】
また、ＣＰＵ内蔵ＬＳＩがバス調停回路を備えていない他のＣＰＵとバスを共有するシステムにおいても、共有バスを介して他のＣＰＵを制御することが可能なＣＰＵ内蔵システムＬＳＩを提供することを第２の課題とする。さらに、特定のＣＰＵを優先動作させることを第３の課題とする。
【００１９】
【課題を解決するための手段】
この課題を解決するために、請求項１に係る発明は、内蔵ＣＰＵと、前記内蔵ＣＰＵと接続された第１のバスと、外部ＣＰＵと接続された第２のバスと、前記第１のバスと前記第２のバスとの間に配置され、前記バス調停回路は、前記第１のバスに接続されたデバイスに対する前記外部ＣＰＵおよび前記内蔵ＣＰＵからのアクセスを排他的に制御し、前記外部ＣＰＵが前記第１のバスに接続されたデバイスに対するアクセスを許可されたときにのみ前記第２のバスを前記第１のバスに結合するバス調停回路とを備える。
【００２０】
上記構成によれば、内蔵ＣＰＵと接続された第１のバスと、外部ＣＰＵと接続された第２のバスが両者の間に配置されたバス調停回路により分離され、バス調停回路の排他的アクセス制御により、第１のバスに接続されたデバイスを内蔵ＣＰＵと外部ＣＰＵとが共有するとともに、外部ＣＰＵが第２のバスに接続されたデバイスをアクセス中であっても、内蔵ＣＰＵは第１のバスに接続されたデバイスをアクセスすることができるため、システムの処理効率を低下させることがない。
【００２１】
請求項２に係る発明は、請求項１記載のＣＰＵ内蔵ＬＳＩにおいて、前記バス調停回路は、内蔵ＣＰＵによる第１のバスに接続されたデバイスへのアクセス中に、外部ＣＰＵから第１のバスに接続されたデバイスに対するアクセス要求が発生すると、内蔵ＣＰＵへバス解放要求信号を伝えるとともに外部ＣＰＵへウェイト信号を伝え、内蔵ＣＰＵからバス解放完了信号を受け取ると前記ウェイト信号を解除し、第１のバスに接続されたデバイスに対する外部ＣＰＵからのアクセスを許可する。
【００２２】
上記構成によれば、バス調停回路にバス開放要求信号とバス開放完了信号を用いた調停制御だけでなくウェイト信号を用いた調停機能を備えることにより、外部ＣＰＵがバス調停機能を備えていなくてもバス調停を実現できるとともに、外部ＣＰＵが内蔵ＣＰＵに優先して動作することが可能になるため、特に外部ＣＰＵがシステム全体の制御を司る場合にはシステム全体のパフォーマンス低下に与える影響を最小限に抑えることができる。
【００２３】
請求項３に係る発明は、請求項２記載のＣＰＵ内蔵ＬＳＩにおいて、前記バス調停回路は、内蔵ＣＰＵの動作停止が設定されると、バス解放要求信号を内蔵ＣＰＵに伝えることなく、第１のバスに接続されたデバイスに対する外部ＣＰＵからのアクセスを許可する。
【００２４】
上記構成によれば、内蔵ＣＰＵの動作停止が設定されたときには、バス調停回路は内蔵ＣＰＵからのバス解放完了信号を待つステップをスキップして外部ＣＰＵからのアクセスを許可することができる。これにより、例えばＣＰＵを内蔵しないシステムＬＳＩに対して作成された処理プログラムにおいても、外部ＣＰＵを用いてＬＳＩを動作させることが可能となるので、処理プログラムの互換性を高めることができる。
【００２５】
請求項４に係る発明は、請求項１から３のいずれか一項記載のＣＰＵ内蔵ＬＳＩにおいて、第１のバスに接続された共有メモリを備える。
【００２６】
上記構成によれば、バス調停回路の排他的アクセス制御により外部ＣＰＵからはバス調停回路の存在を意識することなく共有メモリへのアクセスを行いＣＰＵ内蔵システムＬＳＩを制御することができ、システム全体のパフォーマンス低下に与える影響を最小限に抑えながら、内蔵ＣＰＵと外部ＣＰＵとが共有メモリを使用してデータ通信を行うことができる。
【００２７】
請求項５に係る発明は、請求項１から４のいずれか一項記載のＣＰＵ内蔵ＬＳＩにおいて、第１のバスに接続され、ＣＰＵ内蔵ＬＳＩを動作させるプログラムを格納するメモリデバイスを備える。
【００２８】
上記構成によれば、バス調停回路の排他的アクセス制御により、外部ＣＰＵが第２のバスに接続されたデバイスをアクセス中であっても、内蔵ＣＰＵは第１のバスに接続されたメモリデバイスからプログラムを読み出し実行することができるため、内蔵ＣＰＵの処理効率が低下するという問題が生じない。
【００２９】
請求項６に係る発明は、請求項１から５のいずれか一項記載のＣＰＵ内蔵ＬＳＩにおいて、前記バス調停回路は、前記内蔵ＣＰＵと前記外部ＣＰＵとの間における割り込み通知を行うための割り込み制御回路を備える。
【００３０】
上記構成によれば、バス調停回路に割り込み制御回路を備えることにより、内蔵ＣＰＵと外部ＣＰＵとが共有する第１のバスの使用に関する割り込み通知を行うことができ、例えば、共有メモリへの書き込み完了等の通知に使用することができる。
【００３１】
請求項７に係る発明は、請求項６記載のＣＰＵ内蔵ＬＳＩにおいて、前記割り込み制御回路は、割り込み要因のビット割り当て設定がプログラム可能な複数ビットを有する割り込み要因レジスタと、この割り込み要因レジスタのビット論理和を割り込み信号として出力する回路とを備える。
【００３２】
上記構成によれば、割り込みの要因のビット割り当て設定がプログラム可能な割り込み要因レジスタを備えることにより、そのビットをプログラマが自由に割り込み要因に割り付けることができ、処理プログラムの自由度を高めることができる。
【００３３】
請求項８に係る発明は、請求項５記載のＣＰＵ内蔵ＬＳＩにおいて、前記第１のバスに接続されたメモリデバイスはＲＡＭであり、ＣＰＵ内蔵ＬＳＩの起動時に、外部ＣＰＵが第２のバスに接続された外部メモリから前記ＲＡＭへ内蔵ＣＰＵを動作させるプログラムをロードするものである。
【００３４】
上記構成によれば、ＣＰＵ内蔵ＬＳＩを動作させるプログラムを格納するメモリデバイスをＲＡＭにすることにより、プログラムをＲＯＭ化するリスクを避けることができ、かつ内蔵ＣＰＵの処理速度を向上させることができる。また、フラッシュＲＯＭを外部ＣＰＵと内蔵ＣＰＵとで共有することにより、システム全体のコストを削減することができる。
【００３５】
請求項９に係る発明は、請求項８記載のＣＰＵ内蔵ＬＳＩにおいて、前記バス調停回路は書き込みアドレスレジスタと書き込みデータレジスタとを備え、前記外部ＣＰＵは、内蔵ＣＰＵを動作させるプログラムをＲＡＭへロードする際に、ＲＡＭのアドレスを前記書き込みアドレスレジスタに設定し、ＲＡＭに書き込むデータを前記書き込みデータレジスタに書き込む。
【００３６】
上記構成によれば、外部ＣＰＵがＲＡＭへプログラムをロードする際に、アドレス指定レジスタおよびデータレジスタを介してＲＡＭへの書き込みを行うことにより、外部ＣＰＵからアクセス指定するアドレスとしてレジスタのアドレスを指定すれば良いだけになるため、外部ＣＰＵからアクセスするメモリ空間を削減することができ、ＣＰＵ内蔵ＬＳＩと外部ＣＰＵ間のアドレスバスの端子数を削減することができる。
【００３７】
請求項１０に係る発明は、請求項９記載のＣＰＵ内蔵ＬＳＩにおいて、前記書き込みアドレスレジスタは、前記書き込みデータレジスタへの書き込みが発生する度にインクリメントされる。
【００３８】
上記構成によれば、書き込みアドレスレジスタが書き込みデータレジスタへの書き込みが発生する度にインクリメントされるため、プログラムをＲＡＭの連続したアドレスに書き込む場合はアドレス指定レジスタを毎回書き換える必要が無くなる。
【００３９】
請求項１１に係る発明は、第１の内蔵ＣＰＵと、第２の内蔵ＣＰＵと、前記第１の内蔵ＣＰＵに接続された第１のバスと、前記第２の内蔵ＣＰＵに接続された第２のバスと、前記第１のバスと前記第２のバスとの間に配置され、前記バス調停回路は、前記第１のバスに接続されたデバイスに対する前記第２の内蔵ＣＰＵおよび前記第１の内蔵ＣＰＵからのアクセスを排他的に制御し、前記第２の内蔵ＣＰＵが前記第１のバスに接続されたデバイスに対するアクセスを許可されたときにのみ前記第２のバスを前記第１のバスに結合するバス調停回路とを備える。
【００４０】
上記構成によれば、第１の内蔵ＣＰＵに接続された第１のバスと、第２の内蔵ＣＰＵに接続された第２のバスが両者の間に配置されたバス調停回路により分離され、バス調停回路の排他的アクセス制御により、第１のバスに接続されたデバイスを第１の内蔵ＣＰＵと第２の内蔵ＣＰＵとが共有するとともに、第２の内蔵ＣＰＵが第２のバスに接続されたデバイスをアクセス中であっても、第１の内蔵ＣＰＵは第１のバスに接続されたデバイスをアクセスすることができる。これにより、システムの処理効率を低下させることのないＣＰＵ内蔵ＬＳＩが得られる。
【００４１】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明するが、これによって本発明の技術的範囲が制限されるものではない。
【００４２】
図１は本発明の第１の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図である。図１において、システムはＣＰＵ内蔵システムＬＳＩ１００、ＣＰＵｂ２００、ＣＰＵｂが制御する被制御デバイスｂ２０１から構成される。さらに、ＣＰＵ内蔵システムＬＳＩ１００は、ＣＰＵａ１０１、ＣＰＵａの処理プログラムを格納するＲＯＭ１０２、ＣＰＵａが制御する被制御デバイスａ１０３、ＣＰＵａとＣＰＵｂがデータ通信を行うための共有メモリ１０４、バス調停回路１０５から構成される。
【００４３】
ＣＰＵｂ２００は、ＣＰＵｂアドレスバス２１１およびＣＰＵｂデータバス２１２を介して、ＣＰＵ内蔵システムＬＳＩ１００と被制御デバイスｂ２０１の２個のデバイスを制御する。またＣＰＵｂ２００は、ＣＰＵ内蔵システムＬＳＩ１００と被制御デバイスｂ２０１を、２本のチップセレクト信号ＣＳｂ０、ＣＳｂ１を用いてそれぞれアクセスする。
【００４４】
ＣＰＵａ１０１は、バス調停回路１０５と共有アドレスバス１１１および共有データバス１１２を介して、ＲＯＭ１０２、被制御デバイスａ１０３、共有メモリ１０４にアクセスする。ＲＯＭ１０２はＣＰＵａ１０１の処理プログラムを格納しており、ＣＰＵａ１０１はＲＯＭ１０２に格納された処理プログラムを読み出しながら処理を実行する。共有メモリ１０４は、ＣＰＵａ１０１とＣＰＵｂ２００の両ＣＰＵからのアクセスを受け、ＣＰＵｂ２００は共有メモリ１０４を介してＣＰＵ内蔵システムＬＳＩ１００を制御する。
【００４５】
バス調停回路１０５は、ＣＰＵａ１０１とＣＰＵｂ２００の両ＣＰＵからのアクセスを調停し、共有アドレスバス１１１および共有データバス１１２を介して、ＲＯＭ１０２、被制御デバイスａ１０３、共有メモリ１０４へのアクセスを行う。
【００４６】
このとき、バス調停回路１０５は、ＣＰＵａ１００、ＣＰＵｂ２００からのアクセスにおいて指定されたアドレスにより、特定のアドレスにマッピングされたＲＯＭ１０２、被制御デバイスａ１０３、共有メモリ１０４に対して、それぞれにチップセレクト信号ＣＳ０、ＣＳ１、ＣＳ２を出力してアクセスを行う。
【００４７】
図２はＣＰＵｂ２００から共有メモリ１０４へのアクセスにおける制御動作を説明するタイミングチャートである。以下、図１と図２を用いて、ＣＰＵｂ２００が共有メモリ１０４にアクセスする際の動作を説明する。
【００４８】
（１）ＣＰＵｂ２００が共有メモリ１０４にアクセスしていないときは、ＷＡＩＴ信号は“Ｈ”となっている。ＣＰＵｂ２００は、共有メモリ１０４にアクセスするために、ＣＳｂ０を“Ｌ”にアサートする（図２の▲１▼）。
【００４９】
（２）バス調停回路１０５は、ＣＳｂ０の“Ｌ”極性を検出し、ＣＰＵａ１０１に対してバス開放要求信号ＢＲＥＱを“Ｈ”にアサートする（図２の▲２▼）。この時点では、ＷＡＩＴ信号を“Ｈ”に保ちＣＰＵｂ２００をウェイト状態にさせておく。ウェイト状態のときは、バス調停回路１０５はＣＰＵｂアドレスバス２１１からのアドレス入力を共有アドレスバス１１１へ出力しない。
【００５０】
（３）ＣＰＵａ１０１は、ＢＲＥＱ信号を受けて共有バスへのアクセスを停止し、ＣＰＵｂに共有バスを開放し、開放が完了するとバス解放完了信号ＢＡＣＫを“Ｈ”にアサートする（図２の▲３▼）。
【００５１】
（４）バス調停回路１０５は、ＢＡＣＫ信号を確認すると、ＣＰＵｂアドレスバス２１１からのアドレス入力を共有アドレスバス１１１に出力し、ＣＰＵｂ２００からのアクセスを実行させ、ＷＡＩＴ信号を“Ｌ”にアサートしてＣＰＵｂ２００へのウェイト状態を解除する（図２の▲４▼）。
【００５２】
（５）ＣＰＵｂ２００は、ＷＡＩＴ信号の“Ｌ”極性を検出してウェイト状態が解除されたことを知ると共有メモリ１０４へのアクセスを行う。アクセスが完了するとＣＳｂ０信号をネゲートする（図２の▲５▼）。
【００５３】
（６）バス調停回路１０５はＣＳｂ０信号のネゲートを確認すると、ＷＡＩＴ信号をネゲートするとともに、ＢＲＥＱ信号をネゲートしてバス使用権をＣＰＵａ１０１に戻す。バス使用権が戻るとＣＰＵａ１０１はＢＡＣＫ信号をネゲートする。
【００５４】
なお、上述の動作と平行して、ＣＰＵａ１０１とＣＰＵｂ２００とは割り込み信号ＩＲＱ０、ＩＲＱ１を用いて互いに割り込み制御をする。例えば、割り込みによってＣＰＵａ１０１あるいはＣＰＵｂ２００は共有バスへのアクセスを停止する。割り込み信号ＩＲＱについては後でさらに詳述する。
【００５５】
ＣＰＵｂ２００が共有メモリ１０４にアクセス中にＣＰＵａ１０１が共有バスにアクセスしようとしたときは、ＢＲＥＱ信号が“Ｈ”であるためにＣＰＵａ１０１のアクセスは許可されない。
【００５６】
ＣＰＵｂ２００が被制御デバイスｂ２０１をアクセスしているときにはＣＳｂ０信号はアサートされないので、ＣＰＵａ１０１は共有バスを開放する必要は無く、ＣＰＵａ１０１は継続してＲＯＭ１０２から処理プログラムを読み出し実行することができる。
【００５７】
以上のように、ＣＰＵｂ２００がＷＡＩＴ信号を用いたハンドシェーク機能を使用することにより、ＣＰＵｂ２００がＣＰＵａ１０１に優先して動作することができる。これにより、特にＣＰＵｂ２００がシステム全体の制御を司る場合などは、システム全体のパフォーマンス低下に与える影響を最小限に抑えることができる。
【００５８】
なお、図１の構成において、バス調停回路１０５はＣＰＵａ１０１の動作を完全に停止させる機能を有していても良い。ＣＰＵａ１０１が停止している場合は、バス調停回路１０５はＢＡＣＫ信号を内部で“Ｈ”に固定することにより、前記（２）、（３）のフェーズをスキップしてＣＰＵｂ２００からのアクセスを実行することができる。これにより、例えばＣＰＵを内蔵しないシステムＬＳＩに対して作成された処理プログラムにおいても、ＣＰＵｂ２００を用いてＬＳＩを動作させることが可能となるので、処理プログラムの互換性を高めることができる。
【００５９】
次に、本発明の第２の実施形態について説明する。第２の実施形態においては、ＣＰＵ内蔵システムＬＳＩ１００の中のＲＯＭ部分をＲＡＭとしている。近年のソフトウェアはその複雑さから潜在バグが多く、処理プログラムをＲＯＭ化することは極めてリスクが高い。
【００６０】
そこで、近年ではフラッシュＲＯＭのような不揮発性メモリをＣＰＵに外付けし、このフラッシュＲＯＭに処理プログラムを格納して書き換え可能にしておくことが多い。また、フラッシュＲＯＭはアクセス速度が遅いためにＣＰＵの処理速度が低下する。そこで、ＬＳＩに内蔵ＲＡＭを設け、ブート時に処理プログラムをフラッシュＲＯＭからＲＡＭにロードし、ＲＡＭ上の処理プログラムでＣＰＵを動作させる手法をとる場合がある。
【００６１】
しかしながら、図１のようにＣＰＵが複数存在するシステムでは、ＣＰＵ毎にフラッシュＲＯＭを設けることはコスト面から望ましくない。そこで、第２の実施形態においては、ＣＰＵ内蔵システムＬＳＩ１００に処理プログラム格納用のＲＡＭを設け、ＣＰＵｂ２００は外付けのフラッシュＲＯＭで動作する環境にするとともに、ＣＰＵａ１０１とＣＰＵｂ２００の両ＣＰＵの処理プログラムを１個のフラッシュＲＯＭに格納して、ブート時にＣＰＵｂ２００がＣＰＵａ１０１用の処理プログラムをＲＡＭにロードする形態とする。
【００６２】
図３は、上記のように構成された、本発明の第２の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図である。図３において、図１と同じ構成要素には同一符号を付し、それぞれの説明を省略する。図３においては、新たにＣＰＵｂが制御するフラッシュＲＯＭ２０２が用意され、また、ＲＯＭ１０２の代わりに処理プログラムを格納するＲＡＭとしてＩＲＡＭ１０６が共有バスに接続されている。
【００６３】
ＣＰＵｂ２００は、ＣＰＵｂアドレスバス２１１およびＣＰＵｂデータバス２１２を介して、ＣＰＵ内蔵システムＬＳＩ１００、被制御デバイスｂ２０１、フラッシュＲＯＭ２０２の３つのデバイスを制御する。このとき、ＣＰＵｂ２００は、これらの３つのデバイスを３本チップセレクト信号ＣＳｂ０、ＣＳｂ１、ＣＳｂ２を用いてそれぞれアクセスする。
【００６４】
フラッシュＲＯＭ２０２はＣＰＵｂ２００の処理プログラムおよびＣＰＵａ１０１の処理プログラムを格納しており、ＣＰＵｂ２００はフラッシュＲＯＭ２０２に格納された処理プログラムを読み出しながら処理を実行する。
【００６５】
ＩＲＡＭ１０６には、起動時にＣＰＵｂ２００によりＣＰＵａ１０１の処理プログラムが格納され、ＣＰＵａ１０１はＩＲＡＭ１０６に格納された処理プログラムを読み出しながら処理を実行する。
【００６６】
バス調停回路１０５には、ＩＲＡＭ１０６への読み出し／書き込みアクセス窓口としてアドレス指定レジスタ１０７とデータレジスタ１０８を設けており、ＣＰＵｂ２００からＩＲＡＭ１０６へアクセスする際は、アドレス指定レジスタ１０７とデータレジスタ１０８を介してアクセスを行う。
【００６７】
第２の実施形態において、通常の動作は第１の実施形態と同様である。以下、第２の実施形態における新たな機能であるブート時の動作を説明する。
【００６８】
（１）電源オン時、ＣＰＵａ１０１は処理プログラムの実行を行わずに、ＣＰＵｂ２００からの通知を待つ。
【００６９】
（２）ＣＰＵｂ２００は、フラッシュＲＯＭ２０２からＣＰＵｂ２００用の処理プログラムを読み出しながら処理実行を開始する。
【００７０】
（３）ＣＰＵｂ２００は、フラッシュＲＯＭ２０２に格納されたＣＰＵａ１０１用の処理プログラムを読み出し、これをバス調停回路１０５に設けられたアドレス指定レジスタ１０７とデータレジスタ１０８を介してＩＲＡＭ１０６へ書き込む。
【００７１】
（４）具体的には、ＣＰＵｂ２００はフラッシュＲＯＭ２０２からＣＰＵａ１０１用の処理プログラムの先頭データを読み出し、アドレス指定レジスタ１０７にＩＲＡＭの先頭アドレスを書き込み、データレジスタ１０８に先頭データを書き込む。バス調停回路１０５はアドレス指定レジスタ１０７に書き込まれたＩＲＡＭのアドレスに、データレジスタ１０８に書き込まれたデータを書き込む。
【００７２】
（５）次に、ＣＰＵｂ２００はフラッシュＲＯＭ２０２から次のデータを読み出し、アドレス指定レジスタ１０７にＩＲＡＭの前回アドレス＋１を書き込み、データレジスタ１０８に次のデータを書き込む。バス調停回路１０５はアドレス指定レジスタ１０７に書き込まれたＩＲＡＭのアドレスに、データレジスタ１０８に書き込まれたデータを書き込む。
【００７３】
（６）ＣＰＵｂ２００は（５）を繰り返すことにより、すべてのＣＰＵａ１０１用の処理プログラムを読み出しＩＲＡＭ１０６に書き込む。
【００７４】
（７）ＣＰＵｂ２００は、ＣＰＵａ１０１用の処理プログラムのＩＲＡＭ１０６への書き込みが完了すると、ＣＰＵａ１０１に完了通知を行う。
【００７５】
（８）ＣＰＵａ１０１は、ＣＰＵｂ２００からの完了通知を受けると、ＩＲＡＭ１０６に格納された処理プログラムを読み出しながら処理の実行を開始する。
【００７６】
以上のように、処理プログラムをＩＲＡＭ１０６にロードすることにより、ＣＰＵａ１０１の処理速度を向上させることができる。また、フラッシュＲＯＭ２０２をＣＰＵＡ１０１とＣＰＵｂ２００とで共有にすることによりフラッシュＲＯＭの個数を削減でき、ひいてはシステム全体のコストを削減することができる。
【００７７】
また、アドレス指定レジスタ１０７およびデータレジスタ１０８を設け、これらを介してＣＰＵｂ２００がＩＲＡＭ１０６への処理プログラムの書き込みを行うことにより、ＣＰＵｂ２００からアクセス指定するアドレスとして、ＩＲＡＭ１０６全体ではなくレジスタのアドレスを指定すれば良いだけになるため、ＣＰＵｂ２００からアクセスするメモリ空間を削減することができる。これにより、ＣＰＵ内蔵システムＬＳＩ１００とＣＰＵｂ２００間のアドレスバスの端子数を削減することができる。
【００７８】
また、アドレス指定レジスタ１０７は、データレジスタ１０８への書き込みが行われる度にインクリメントされるようにすることができる。これにより、上述したようにＣＰＵａ１０１用の処理プログラムをＩＲＡＭ１０６の連続したアドレスに書き込む場合は、アドレス指定レジスタ１０７を毎回書き換える必要が無くなる。
【００７９】
次に、本発明における第３の実施形態について説明する。第３の実施の形態は、ＣＰＵａ１０１とＣＰＵｂ２００が割り込み信号によって互いに通知を行う方法に関するものである。
【００８０】
図４は、本発明の第３の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図である。図４において、図１と同じ構成要素には同一符号を付し、それぞれの説明を省略する。また、共有バス、ＲＯＭ、被制御デバイス、共有メモリについては、本実施形態の説明に直接関係無いので省略している。
【００８１】
図４において、バス調停回路１０５にはＣＰＵａ用割り込み要因レジスタ１０９とＣＰＵｂ用割り込み要因レジスタ１１０が設けられている。ＣＰＵａ用割り込み要因レジスタ１０９およびＣＰＵｂ用割り込み要因レジスタ１１０は、それぞれ図５に示すようにｎビットのレジスタ構成となっており、全ビットの論理和がそれぞれ図４における割り込み信号ＩＲＱ０、ＩＲＱ１としてアサートされる。
【００８２】
すなわち、割り込み要因レジスタのいずれかのビットに“１”が書き込まれると、該当する割り込み信号ＩＲＱ０またはＩＲＱ１がアサートされる。ＣＰＵａ用割り込み要因レジスタ１０９またはＣＰＵｂ用割り込み要因レジスタ１１０は、各ビットを特定の割り込み要因に固定することなく、プログラマが自由にビット割り当てできる構造になっている。
【００８３】
ＣＰＵａ１０１からＣＰＵｂ２００へ、あるいはＣＰＵｂ２００からＣＰＵａ１０１への割り込みによる通知内容はいろいろな種類が考えられる。例えば、図２における共有メモリ１０４への書き込み完了やＩＲＡＭへの処理プログラム書き込み完了の通知に使用することができる。その他にも処理プログラムの内容によって多くの通知内容が発生すると考えられ、本実施の形態においては割り込み要因レジスタを設けることにより、そのビットをプログラマが自由に割り込み要因に割り付けることができ、処理プログラムの自由度を高めている。
【００８４】
ここで動作例として、ＣＰＵａ１０１がＣＰＵｂ用割り込み要因レジスタ１１０を使用してＣＰＵｂ２００へ割り込み通知を行う処理の流れについて、図４を用いて説明する。
【００８５】
（１）ＣＰＵａ１０１はＣＰＵｂ用割り込み要因レジスタ１１０のビット０に“１”を書き込む。
【００８６】
（２）バス調停回路１０５は、ＣＰＵｂ用割り込み要因レジスタ１１０の全ビットの論理和が“１”になったので、割り込み信号ＩＲＱ１をアサートする。
【００８７】
（３）ＣＰＵｂ２００は、割り込み信号ＩＲＱ１がアサートされると、割り込みを受け付けるとともにＣＰＵｂ用割り込み要因レジスタ１１０を読み出し、ビット０が示す割り込み要因が通知されたことを認識する。
【００８８】
（４）ＣＰＵｂ２００は、ＣＰＵｂ用割り込み要因レジスタ１１０のビット０に“０”を書き込むことによりビット０をクリアする。
【００８９】
なお、本発明は上記実施形態１から実施形態３に限定されるものではない。例えば、上記実施形態ではＣＰＵが２つの場合で説明したが、ＣＰＵが２つ以上であっても同様の効果を得ることができる。また、ＣＰＵａの共有バスが外部に拡張されているかどうかは本発明においては問わない。また、信号の“Ｈ”と“Ｌ”をどの状態に割り振るかが問われないことは言うまでもない。
【００９０】
また、１つのチップ内に複数のＣＰＵを備えるマルチＣＰＵシステムＬＳＩにおいても、バスを複数に分け本発明のバス調停回路を設けることにより、複数のＣＰＵが複数のバスに接続されたデバイスをそれぞれ制御可能となるので、マルチＣＰＵシステムの処理効率を向上させることができる。
【００９１】
【発明の効果】
以上説明したように、本発明によれば、システムＬＳＩに内蔵されたＣＰＵと外部ＣＰＵがバスを共有する環境において、ＣＰＵ内蔵システムＬＳＩにバス調停回路を設けることにより、ＣＰＵ内蔵システムＬＳＩ内の共有バスと、外部ＣＰＵが接続される外部拡張バスを分離させ、外部ＣＰＵがその被制御デバイスへのアクセス中であっても、内蔵ＣＰＵは共有バスに接続されたＲＯＭデバイスをアクセスして処理プログラムを読み出し実行することができ、内蔵ＣＰＵの性能低下を回避できるという優れた効果が得られる。
【００９２】
さらに本発明によれば、バス調停回路はバス開放要求信号とバス開放完了信号を用いた調停制御だけでなくチップセレクト信号とウェイト信号を用いた調停機能を備えることにより、外部ＣＰＵがバス調停機能を備えていなくてもバス調停を実現することができる。また、前記ウェイト信号を用いたハンドシェーク機能を使用することにより、外部のＣＰＵを優先動作させることができ、外部ＣＰＵが制御するシステムのパフォーマンス低下に与える影響を最小限に抑えることができる。
【００９３】
さらに本発明によれば、ＣＰＵ内蔵システムＬＳＩは内蔵ＣＰＵ用のＲＡＭを備え、外部ＣＰＵからＲＡＭへ処理プログラムをロードすることにより、処理プログラムをＲＯＭ化するリスクを避けながら低コストのシステムを実現することができる。
【００９４】
さらに本発明によれば、バス調停回路に割り込みの要因のビット割り当て設定がプログラム可能な割り込み要因レジスタを備えることにより、内蔵ＣＰＵと外部ＣＰＵ間の割り込み通知の要因をプログラマブルに実装することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図。
【図２】共有メモリへのアクセスにおける制御動作を説明するタイミングチャート。
【図３】本発明の第２の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図。
【図４】本発明の第３の実施形態に係るＣＰＵ内蔵ＬＳＩを用いたシステム構成を示すブロック図。
【図５】割り込み要因レジスタの構成図。
【図６】２つのＣＰＵがバスを共有する従来のシステム構成を示すブロック図。
【符号の説明】
１００  ＣＰＵ内蔵システムＬＳＩ
１０１  ＣＰＵａ
１０２  ＲＯＭ
１０３  被制御デバイスａ
１０４  共有メモリ
１０５  バス調停回路
１０６  ＲＡＭ
１０７  アドレス指定レジスタ
１０８  データレジスタ
１０９  ＣＰＵａ用割り込み要因レジスタ
１１０  ＣＰＵｂ用割り込み要因レジスタ
１１１  共有アドレスバス
１１２  共有データバス
２００  ＣＰＵｂ
２０１  被制御デバイスｂ
２０２  フラッシュＲＯＭ
２１１  ＣＰＵｂアドレスバス
２１２  ＣＰＵｂデータバス
【図１】
2004199187.tif 000003
【図２】
2004199187.tif 000004
【図３】
2004199187.tif 000005
【図４】
2004199187.tif 000006
【図５】
2004199187.tif 000007
【図６】
2004199187.tif 000008