(57)【要約】【課題】  集積回路には、未利用のＩＰが存在することがある。【解決手段】  メイン機能部１４は、集積回路１０が提供する一連の機能のうち主たる機能をハードウエアで実現するためのＩＰである。サブ機能部１６は、集積回路１０が提供する一連の機能の一部をソフトウエアで実現する。処理管理部１２は、外部回路からの信号に応じて、サブ機能部１６に少なくとも処理を指示する。これにより、例えばセットメーカにおける設計変更に対して迅速に対応できるので、未利用のＩＰが集積回路に存在することを防止できる。【選択図】        図１
2005100188.tif 000002
【特許請求の範囲】
【請求項１】
集積回路が提供する一連の機能のうち、所定の機能をハードウエアにて実現するメイン機能部と、
前記一連の機能のうち、前記所定の機能以外の機能をソフトウエアにて実現するためにプログラムを格納するサブ機能部と、
外部から受けた指示に応じ、少なくとも前記サブ機能部を用いた処理を起動する処理管理部と、
を備え、前記処理管理部は、前記外部から受けた指示を、前記サブ機能部の構成としてハードウエアを前提とする形式にて受け取ることを特徴とする集積回路。
【請求項２】
ＣＰＵをさらに備え、前記処理管理部は、前記外部から受けた指示が前記サブ機能部を利用した処理を必要と判定したとき、前記ＣＰＵに起動処理をかけることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記ＣＰＵは、前記外部から受けた指示をアドレス情報に変換し、前記サブ機能部に格納されたプログラムを読み出すことを特徴とする請求項２に記載の集積回路。
【請求項４】
前記処理管理部は、前記サブ機能部を利用した処理を外部の処理主体に実行させるべく外部に起動指示を発行することを特徴とする請求項１に記載の集積回路。
【請求項５】
集積回路が提供する一連の機能のうち、所定の機能をハードウエアにて実現するメイン機能部と、
前記一連の機能のうち、前記所定の機能以外の機能をソフトウエアにて実現するためにプログラムを格納するサブ機能部と、
外部から受けた指示が前記サブ機能部を利用した処理を必要とする場合、所定の処理主体に対し、前記外部から受けた指示を前記サブ機能部に格納されたプログラムを読み出すための情報へ変換せしめる変換処理機構と、
を備えることを特徴とする集積回路。
【請求項６】
前記外部から受けた指示は、ハードウエアを直接操作する命令を含むことを特徴とする請求項５に記載の集積回路。
【請求項７】
所定の機能を実現するためのメインＣＰＵと、
前記メインＣＰＵの制御下におかれ、前記メインＣＰＵからの指示に応じて所定の処理を行う請求項１または請求項５に記載の集積回路とを備えることを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は集積回路に関し、特に一連の機能を提供する集積回路と、その集積回路を備える電子装置に関する。
【背景技術】
【０００２】
携帯電話機、ＰＤＡ（Personal Digital Assistants）、パーソナルコンピュータ、ＣＤプレーヤなど様々な電子装置が広く普及している。こうした機器は、年々性能が伸びているにも拘わらず、小型軽量化も進んでいる。本来なら二律背反する小型化と高性能化が同時に実現できる背景には、半導体技術の進歩がある。
【０００３】
歴史的に見れば、代表的なＣＰＵ（Central Processing Unit）の処理能力が倍々ゲームで進歩してきたことが大きかったが、ＣＰＵ単独で果たせる高集積化には当然限界があり、１チップ上にＣＰＵのみならずＩ／Ｏ回路その他、電子装置の機能全体を乗せてしまうＳｏＣ（System on a Chip）またはシステムオンチップという考え方がうまれた。さらに、そうした動きの中で、ＳｏＣまたはこれに類する超高集積回路を構成する機能ブロックを予め準備し、これを再利用および組み合わせることで多様なユーザニーズに迅速に応えるというＩＰビジネスが広がっている。ＩＰはIntellectual Property の略であり、各機能ブロックを実現する回路を知的資産として捉える表現であって、ＬＳＩメーカがセットメーカに自社製品を採用させるうえで重要な資産になっている。
【０００４】
ＩＰビジネスが従来のＬＳＩビジネスの中で異彩を放つ点のひとつは、ＩＰ、すなわち機能ブロックごとにライセンスをする、という考えにある。もちろん、ＬＳＩの単価の中にライセンス料を見えない形で組み込んでしまうことが多いとはいえ、ＬＳＩメーカが自社開発したＩＰをセットメーカ向けのＬＳＩに組み込んで納入するとき、ＬＳＩメーカが自社の知的資産としてライセンスをするという考えがある。ライセンス料は、当然ながら、市場原理によって決まっていく。
【特許文献１】特開平８−３６５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＩＰはそれぞれが独立した機能を果たすことが多いとはいえ、ある程度関連する機能もある。たとえば、音源ＬＳＩにおいて、主たる音源機能にはサラウンド機能その他の関連機能がある。ＬＳＩメーカとしては、当然そうした関連機能全体をＬＳＩに組み込むことにより、より多機能な製品をアピールできる。しかし、セットメーカとしては、そうした関連機能のすべてが必要かどうか、製品開発中、とくに初期段階ではわからないことも多い。にも拘わらず、多機能という面だけですべての関連ＩＰを実装するとすれば、チップ面積以外にもライセンス料の面で不利である。こうした問題は、セットメーカにＩＰ利用を躊躇させかねず、結局はＬＳＩメーカのビジネスにも影響する。
【０００６】
本発明はこうした点に鑑みてなされたもので、その目的は、セットメーカの要求に柔軟に対応するための技術、未利用のＩＰを極力搭載しないための技術などの提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は、所定の機能を実現する集積回路である。この集積回路は、当該集積回路が提供する一連の機能のうち、所定の機能をハードウエアにて実現するメイン機能部と、一連の機能のうち、所定の機能以外の機能をソフトウエアにて実現するためにプログラムを格納するサブ機能部と、外部から受けた指示に応じ、少なくともサブ機能部を用いた処理を起動する処理管理部とを備え、処理管理部は、外部から受けた指示を、サブ機能部の構成としてハードウエアを前提とする形式にて受け取る。これにより、集積回路内部がすべてハードウエアで実装されているという前提で当該集積回路を制御できる。すなわち、処理管理部は、集積回路内でどのようにハードウエアとソフトウエアによる機能分担がなされていても、それによる差違を見かけ上なくすことができる。所定の機能は、集積回路の主たる機能であってもよく、所定の機能以外の機能はオプショナルな機能であってもよい。一連の機能は、例えば音源処理関連機能、音声処理関連機能、画像処理関連機能など特定の情報処理分野における各種の処理機能の組合せである。
【０００８】
この集積回路は、ＣＰＵをさらに備え、処理管理部は、外部から受けた指示がサブ機能部を利用した処理を必要と判定したとき、ＣＰＵに起動処理をかけてもよい。これにより、集積回路の内部で、ハードウエアとソフトウエアによる機能を実現できるので、取り扱いが容易になる。
【０００９】
ＣＰＵは、外部から受けた指示をアドレス情報に変換し、サブ機能部に格納されたプログラムを読み出してもよい。
【００１０】
処理管理部は、サブ機能部を利用した処理を外部の処理主体に実行させるべく外部に起動指示を発行してもよい。これにより、集積回路の外部に存在する例えばＣＰＵを利用してソフトウエアによる機能を実現できる。
【００１１】
本発明の別の態様は、所定の機能を実現する集積回路である。この集積回路は、当該集積回路が提供する一連の機能のうち、所定の機能をハードウエアにて実現するメイン機能部と、一連の機能のうち、所定の機能以外の機能をソフトウエアにて実現するためにプログラムを格納するサブ機能部と、外部から受けた指示がサブ機能部を利用した処理を必要とする場合、所定の処理主体に対し、外部から受けた指示をサブ機能部に格納されたプログラムを読み出すための情報へ変換せしめる変換処理機構とを備える。
【００１２】
外部から受けた指示は、例えば「ＯＵＴ命令」などのハードウエアを直接操作する命令を含んでもよい。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、ニーズに沿った機能を有する半導体集積回路装置を、ニーズに柔軟に対応して提供できる。
【発明を実施するための最良の形態】
【００１５】
＜第１の実施の形態＞
実施の形態に係る集積回路は、セットメーカによって最終的に利用されるかどうかわからないＩＰをソフトウエアで実装する。これにより、ＬＳＩメーカは、セットメーカの要求に柔軟にかつ短期間に対応可能になるとともに、未利用のＩＰによるライセンス料の発生を防ぎ結果的にコストを下げることができる。しかし、一部ソフトウエア、一部ハードウエアという実装は、いろいろな組合せがある。その組合せのそれぞれに制御プログラムを作っていたのではあまりにも開発効率が悪い。そこで、ハードウエアおよびソフトウエアの組合せで所定の機能を実装する集積回路を、単一の制御プログラムで取り扱うための技術を提供する。
【００１６】
そのために、仮にソフトウエアで実装される可能性のある機能についても、制御プログラムとしては、ハードウエアにより実装されたＩＰと同一の手法で制御することを前提とする。すなわち集積回路の中で、ハードウエアを前提とする制御プログラムをソフトウエア用に変換処理する。なお、ソフトウエアで実装される機能についても、場合によっては、ライセンスという考え方がありうる。そのため、最終的に利用しないことが確定した機能については、それに対応するソフトウエアを集積回路のメモリから削除することで、少なくともその機能については、ライセンス料というものが一切発生しない仕組みとする。
【００１７】
図１は、第１の実施の形態に係る半導体集積回路装置１０（以下、単に「集積回路１０」という）の内部構成図である。集積回路１０は、任意のＣＰＵ、ＩＰ、メモリ、メモリにロードされたプログラムなどを中心に実現されるが、その実現方法、ハードウエア構成にはいろいろな変形例があることは、当業者には理解されるところである。本図は、機能単位の構成を示している。
【００１８】
メイン機能部１４は、集積回路１０が提供する機能分野の主たる機能を実現するＩＰのハードウエアブロック（以下、単に「ハードＩＰ」という）である。本実施の形態では、ハードＩＰとしてメロディＩＰ１４ａが搭載されている。「主たる機能」は、必ず利用される機能や、ソフトウエアで処理をするにはＣＰＵ（図示せず）に負荷が多くかかる機能などであることが好ましく、その機能は例えばセットメーカの要望により決められてもよいし、ＬＳＩメーカが決めてもよい。また、ハードＩＰは、集積回路１０にひとつ搭載されてもよいし、複数搭載されてもよい。
【００１９】
サブ機能部１６は、集積回路１０が提供する機能のオプショナルな機能を実現するＩＰであり、実際にはプログラムを格納している。ソフトウエアで実現されるＩＰを、以下、単に「ソフトＩＰ」という。本実施の形態では、サブ機能部１６には、サラウンドＩＰ１６ａ、イコライザＩＰ１６ｂ、および低音増強ＩＰ１６ｃが搭載されている。実施の形態では、音源用の集積回路１０を例に説明するが、他の例では、例えば映像処理、通信処理、音声認識処理など各種の用途向けの機能が集積回路１０に搭載されてもなんら問題はない。また、サブ機能部１６は、メイン機能部１４に搭載された機能と同等の機能を有してもよいし、機能が重複しないように搭載されてもよい。仮に重複して同等の機能を有する場合、サブ機能部１６を実現するＣＰＵ（図示せず）と、メイン機能部１４とは独立して動作するので、メイン機能部１４とサブ機能部１６とで同時に同一の処理を行うこともできる。
【００２０】
処理管理部１２は、外部回路から受けた指示を、サブ機能部１６の構成としてハードウエアを前提とする形式にて受け取り、少なくともサブ機能部１６を用いた処理を起動する。つまり、処理管理部１２は、集積回路１０の内部でどのようにハードウエアとソフトウエアによる機能分担がなされていても、それによる差違を見かけ上なくすことができる。これにより、集積回路内部がすべてハードウエアで実装されているという前提で、外部回路は集積回路１０を制御できる。すなわち、集積回路１０に対する制御プログラムはひとつあればよい。
【００２１】
また、オプショナルな機能をソフトウエアで実現することにより、ＬＳＩメーカは、集積回路１０の製造期間を短縮でき、セットメーカが必要とする機能だけを搭載した集積回路１０を出荷できる。これにより、未使用のハードＩＰによるライセンス料の発生を抑えることができるので、集積回路１０のコストを削減でき、ひいては、集積回路１０を搭載する電子装置のコストを抑えることができる。
【００２２】
図２は、図１の集積回路１０のハードウエア構成図である。システムバス７０は、アドレス、データ、Ｒ／Ｗコマンド、その他ステータス信号など（以下、これらの信号を総称して単に「バス信号」という）を、本集積回路１０を搭載する電子装置のＣＰＵ（図示せず。以下「外部ＣＰＵ」という）から集積回路１０に伝送する。集積回路１０における各ＩＰは、所定のレジスタにデータが書き込まれることにより、所定の機能を実現する。このため外部ＣＰＵは、まず、ライトサイクルを発生して、所望のＩＰを動作させるためのレジスタのアドレスとデータとをシステムバス７０に出力する。これにより、レジスタにデータが書き込まれ、ＩＰが動作する。例えば、メロディＩＰ１４ａのレジスタのアドレスが「１４００ｈ」の場合、外部ＣＰＵがアドレス「１４００ｈ」のレジスタに、所定のデータを書き込めば、メロディＩＰ１４ａが動作する。
【００２３】
集積回路１０において、所定の処理を行うＩＰがハードウエアで実装されていても、ソフトウエアで実装されていても、そのＩＰが動作指示を受け付けるためのレジスタは共通に設定されている。これにより、外部ＣＰＵは、単にレジスタにデータを書き込むだけで所望の処理を得ることができる。すなわち、集積回路１０におけるハードＩＰとソフトＩＰの組合せに依らずひとつの制御プログラムで集積回路１０を扱うことができる。
【００２４】
処理管理部５０は、後述のデコーダ５２および指示記憶レジスタ５４を有し、システムバス７０上のアドレスおよびデータに応じて、集積回路１０の内部にある内部ＣＰＵ５６にソフトＩＰの起動を指示する。デコーダ５２は、集積回路１０に実装されたハードＩＰおよびソフトＩＰを含む各ＩＰに対するアドレスおよびデータを検出し、ヒット信号を指示記憶レジスタ５４に出力する。また、デコーダ５２は、そのヒット信号を割込信号７２として内部ＣＰＵ５６に出力する。指示記憶レジスタ５４は、デコーダ５２からのヒット信号を受けたタイミングで、システムバス７０上のアドレスおよびデータを一時的に保持する。すなわち、指示記憶レジスタ５４は、集積回路１０に実装されたＩＰのいずれかに対するアドレスおよびデータを一時的に保持する。
【００２５】
内部ＣＰＵ５６は、割込信号７２に対応する割込ハンドラを、メモリ制御部６０を介してメモリ５８から読み込み、実行する。割込ハンドラにより実行される具体的な処理は後述するが、その割込ハンドラを実行することで内部ＣＰＵ５６は、ソフトＩＰとハードＩＰのどちらを利用するか判断する。ソフトＩＰで機能を実現する場合、内部ＣＰＵ５６は、そのソフトＩＰを実現するためのプログラムをメモリ５８から読み込み、実行する。また、ハードＩＰで機能を実現する場合、内部ＣＰＵ５６は、次に割込信号７２を受け付けるまで待機する。なお、このとき、ハードＩＰは、自身のレジスタに書き込まれたデータに応じて、既に処理を開始している。
【００２６】
メモリ５８は、内部ＣＰＵ５６が必要とするプログラムを格納するＲＯＭや、内部ＣＰＵ５６がワークエリアとして利用するＲＡＭなどを総称したものであり、他の形態ではＲＯＭとＲＡＭとを別に設けてもよい。メモリ制御部６０は、システムバス７０を介して与えられたアドレスに対してデータの書き込みや読み込みを行う。ＤＳＰ（Digital Signal Processor）６４は、内部ＣＰＵ５６の指示に応じて動作してもよいし、外部ＣＰＵからのバス信号に応じて動作してもよい。また、他の例では、集積回路１０に搭載されていなくてもよい。
【００２７】
図３は、割込ハンドラのフローチャートの一例である。この割込ハンドラは、図２のメモリ５８に格納されている。図２の内部ＣＰＵ５６は、割込信号７２を受け付けると割込ハンドラを実行する。割込信号７２に応じた割込処理では、まず、内部ＣＰＵ５６は、図２の指示記憶レジスタ５４に記憶されているアドレスおよびデータを読み込む（Ｓ１０）。次に、内部ＣＰＵ５６は、読み込んだアドレスおよびデータに基づいて、どのＩＰに対するどのような指示であるのかを特定する（Ｓ１２）。つまり、各ＩＰに対応付けられたレジスタのアドレスに基づいて、内部ＣＰＵ５６は動作すべきＩＰを特定し、そのレジスタが保持するデータに基づいてどのような指示であるのかを特定する。
【００２８】
そして、内部ＣＰＵ５６は、特定したＩＰがソフトＩＰかハードＩＰかを後述の方法で判定する（Ｓ１４）。ソフトＩＰの場合（Ｓ１４のＹ）、内部ＣＰＵ５６は、そのソフトＩＰを実現するためのプログラムの格納先アドレスを保持するテーブルを参照し（Ｓ１６）、そのアドレスからプログラムを読み込む（Ｓ１８）。そして、そのプログラムを実行する（Ｓ２０）。これにより、ハードウエアを前提にした指示に応じて、ソフトＩＰを起動できる。Ｓ１４で、特定したＩＰがハードＩＰの場合（Ｓ１４のＮ）、内部ＣＰＵ５６は割込ハンドラの実行を終了する。なお、このときハードＩＰは、自身のレジスタに書き込まれたデータに応じて自身の処理を行っている。
【００２９】
つまり、図２のデコーダ５２は、システムバス７０上の集積回路１０に搭載された各ＩＰに対するアドレスおよびデータを検出し、ヒットのたびに割込信号７２を内部ＣＰＵ５６に出力する。そして、内部ＣＰＵ５６は、そのアドレスに基づいてソフトＩＰとハードＩＰのどちらに対する指示なのかを後述の方法で判定し、ソフトＩＰならばメモリ５８からプログラムを読み込み実行する。一方、ハードＩＰに対する指示の場合は、内部ＣＰＵ５６は、割込ハンドラを終了し待機状態になるが、ハードＩＰは、内部ＣＰＵ５６と独立しているので、自身のレジスタに書き込まれたデータに応じた自身の処理を行う。
【００３０】
図４は、図２のメモリ５８におけるデータ構造の一例を示す図である。割込ハンドラ８０は、割込信号７２に対応する割込ハンドラである。テーブル８２は、ソフトＩＰをソフトウエアで実装するためのプログラムの格納場所アドレスを保持する。このテーブル８２のデータ構造は後述する。存否情報８４は、ＩＰ毎に集積回路１０に存在するか否かの情報と、存在する場合に実装形態、すなわちハードＩＰかソフトＩＰかを指定する情報を保持する。この存否情報８４のデータ構造は後述する。
【００３１】
第１プログラム８６は、ソフトＩＰを実現するためのプログラムであり、本図ではサラウンドＩＰに関するプログラムが保持されている状態を示している。また、サラウンドＩＰに関するプログラムは複数存在し、サラウンド機能をＯＮするためのプログラムは、アドレス「ａａａａｈ」を先頭として格納され、サラウンド機能をＯＦＦするためのプログラムは、アドレス「ｂｂｂｂｈ」を先頭として格納されている。同様に、第２プログラム８８には、低音増強ＩＰを実現するためのプログラムが格納される。ワークエリア９０は、内部ＣＰＵ５６が適宜利用するメモリ領域である。
【００３２】
図５は、図４の存否情報８４のデータ構造の一例を示す図である。存否情報８４は、ＩＰを特定する情報と、そのＩＰに対応付けられたレジスタと、そのＩＰの実装形態とを対応付けて保持する。本図では、簡単のためにレジスタを「ｒｅｇ１−１」のように記載しているが、実際にはレジスタのアドレスが保持されている。実装形態は、「ハードＩＰで実装」、「ソフトＩＰで実装」、および「実装していない」のいずれかを示す情報であり、例えば２ビットで表現されている。本図では、「１０」はハードＩＰで実装していることを意味し、「０１」はソフトＩＰで実装していることを意味し、「００」は実装していないことを意味する。
【００３３】
図３のＩＰの実装形態を特定する、主にステップ１２からステップ１４における処理は、図５を用いて説明した存否情報８４と、図２の指示記憶レジスタ５４から読み込んだアドレスとを比較することにより行う。例えば、指示記憶レジスタ５４にアドレス「ｒｅｇ４−１」が記憶されている場合、内部ＣＰＵ５６は、「ｒｅｇ４−１」をキーに存否情報８４を参照し、「ｒｅｇ４−１」のレジスタに対応するＩＰ４の実装形態が「０１」、すなわちソフトＩＰであることを特定する。
【００３４】
図６は、図４のテーブル８２におけるデータ構造の一例を示す図である。このテーブル８２は、レジスタ毎にデータとプログラムの格納先アドレスとを対応付けて保持する。例えば、サラウンド処理を行うＩＰが、ソフトＩＰとして実装されていても、ハードＩＰとして実装されていても動作指示を受け付けるレジスタである「ｒｅｇ２−１」にデータ「５６」が書き込まれた場合、「サラウンド−ＯＮ」の処理が行われることが示されている。本図の例では、実際には、サラウンドＩＰはハードウエアで実装されていないため、ソフトＩＰを実装するプログラムの格納場所の先頭アドレス「ａａａａｈ」が指定されている。
【００３５】
図３のソフトＩＰを実現するためのステップ１６からステップ２０における処理は、図６を用いて説明したテーブル８２と、図２の指示記憶レジスタ５４から読み込んだ指示情報に基づいて行われる。「ｒｅｇ２−１」に「５６」が書き込まれた場合は、図２の内部ＣＰＵ５６は、図２のメモリ５８のアドレス「ａａａｈ」からプログラムを読み込み、ソフトＩＰでサラウンド処理を行う。
【００３６】
図７は、図１および図２を用いて説明した集積回路１０を搭載する電子装置１５０の内部構成図である。本図の電子装置１５０は、集積回路１０を搭載した例えば携帯電話装置などの通信装置である。メインＣＰＵ１５２は、電子装置１５０における各機能ブロックを制御する。メインメモリ１５８は、例えばメインＣＰＵ１５２のワークエリアとして利用される。通信部１５６は、通信を実現するための機能ブロックである。メインＣＰＵ１５２からの指示に応じて、集積回路１０は、例えば着信メロディなどの音源に関する処理を実行する。メインＣＰＵ１５２、集積回路１０、および通信部１５６はシステムバス７０を介して接続される。
【００３７】
集積回路１０が有する各ＩＰに対する動作指示は、そのＩＰがハードウエアで実装されていても、ソフトウエアで実装されていても共通のレジスタにデータを書き込めばよい。このため、メインＣＰＵ１５２は、集積回路１０における各ＩＰの実装形態によらず、予め決められたレジスタにデータを書き込むことで所望のＩＰに動作を指示することができる。データが書き込まれたレジスタに対応するＩＰをハードＩＰとして実装している場合、そのハードＩＰ自身が処理を行う。また、ハードＩＰとして実装していない場合、集積回路１０に内蔵された図２の内部ＣＰＵ５６がプログラムを実行し、ソフトＩＰにより処理を行う。ソフトＩＰで処理する場合、集積回路１０は、メインＣＰＵ１５２からの指示、すなわちシステムバス７０上のレジスタのアドレスとデータとを、ソフトＩＰを実現するためのプログラムの格納場所のアドレスに変換し、そのプログラムを実行する。
【００３８】
例えば、メインＣＰＵ１５２が、メロディを発生するためのレジスタにデータを書き込んだ場合、図２の内部ＣＰＵ５６は、その機能を実現するＩＰの実装形態を前述の方法で特定する。特定の結果、ソフトＩＰで実装している場合、集積回路１０は、メインＣＰＵ１５２からの動作指示をプログラムの格納場所のアドレスに変換し、そのアドレスからプログラムを読み込む。また、ハードＩＰで実装されている場合、集積回路１０のハードＩＰが処理を行う。こうして、集積回路１０はメロディをスピーカ１５４から出力する。このようにメインＣＰＵ１５２は、集積回路１０におけるＩＰの実装形態に拘わらず予め決められたレジスタにデータを書き込めばよいので、集積回路１０に対する制御プログラムはひとつでよい。
【００３９】
＜第２の実施の形態＞
第１の実施の形態では、一部の機能をソフトウエアに置き換えるためにＣＰＵが搭載された集積回路１０を説明した。ＣＰＵを搭載することで、ハードＩＰおよびソフトＩＰによる処理を集積回路１０の内部に閉じて行うことができ、取り扱いが容易になる。第２の実施の形態では、集積回路１０からＣＰＵを取り除き、ソフトＩＰを外部のＣＰＵに実現させる。
【００４０】
図８は、第２の実施の形態に係る集積回路２００の内部構成図である。本図で既に説明した構成と同一の符号を付した構成は、機能および動作が既に説明した構成と略同一である。以下、既に説明した構成における機能とは異なる点を中心に説明する。図８の集積回路２００は、例えば図７の電子装置１５０に、集積回路１０と置き換えて搭載される。集積回路２００は、図７のシステムバス７０を介して図７のメインＣＰＵ１５２と接続し、制御される。メモリ５８は、図４の第１プログラム８６、第２プログラム８８、テーブル８２、および存否情報８４を保持する。図４の割込ハンドラ８０およびワークエリア９０は、図７のメインメモリ１５８に保持される。集積回路２００を電子装置１５０に搭載する場合、仕様として、次の事項を定める。
（１）メインＣＰＵ１５２は、集積回路２００からの割込信号７２を受け付けるハード構成を有する。
（２）割込信号７２に対する割込ハンドラを実装する。
こうした仕様に準じて電子装置１５０を設計することにより、集積回路２００を組み込むことができる。割込ハンドラなど必要な情報は、ＬＳＩメーカから提供されてもよいし、セットメーカが独自に開発してもよい。また、他の例では、図４のテーブル８２および存否情報８４がメインメモリ１５８に更に保持されてもよい。この場合、テーブル８２および存否情報８４の情報は、ＬＳＩメーカからセットメーカに提供される。
【００４１】
図９は、図８の集積回路２００を図７の電子装置１５０に組み込んだ場合の、メインＣＰＵ１５２と集積回路２００との間のシーケンスの一例を示す図である。まず、図７のメインＣＰＵ１５２は、図８の集積回路２００における所望のＩＰのレジスタに書き込みを行う（Ｓ３０）。集積回路２００のデコーダ５２は、集積回路２００における各ＩＰのレジスタへの書き込みを検出するとヒット信号を図８の指示記憶レジスタ５４に出力する（Ｓ３２）。指示記憶レジスタ５４は、ヒット信号を受けたタイミングで図８のシステムバス７０上のアドレスとデータを格納する（Ｓ５４）。また、デコーダ５２は、ヒット信号を割込信号７２としてメインＣＰＵ１５２に出力する（Ｓ３４）。メインＣＰＵ１５２は、割込信号７２に応じた割込ハンドラを実行する（Ｓ３６）。
【００４２】
割込ハンドラを実行すると、メインＣＰＵ１５２は、指示記憶レジスタ５４に記憶されたアドレスおよびデータを集積回路２００から読み込む（Ｓ４０）。具体的には、メインＣＰＵ１５２は、システムバス７０にリードコマンドを発行し、同じく指示記憶レジスタ５４のアドレスを出力する。そして、メインＣＰＵ１５２は、指示記憶レジスタ５４に記憶されたアドレスおよびデータを読み込む。メインＣＰＵ１５２は、読み込んだアドレスおよびデータに基づいて、どのＩＰに対するどのような指示であるのかを特定する（Ｓ４２）。そして、メインＣＰＵ１５２は、図７のメインメモリ１５８または図８のメモリ５８に格納されている存否情報８４を参照して、その指示に基づいて動作すべきＩＰがソフトＩＰか否かを判定する（Ｓ４４）。
【００４３】
ソフトＩＰの場合（Ｓ４４のＹ）、メインＣＰＵ１５２は、図７のメインメモリ１５８または図８のメモリ５８に格納されているテーブル８２を参照して、そのソフトＩＰを実現するためのプログラムの格納場所アドレスを読み込む（Ｓ４６）。そして、メインＣＰＵ１５２は、集積回路２００内のメモリ５８上の格納場所アドレスから順次プログラムを読み込む（Ｓ５０）。メインＣＰＵ１５２は、こうして取得したプログラムを実行する（Ｓ５２）。これにより、ソフトＩＰがメインＣＰＵ１５２を利用して実現する。
【００４４】
Ｓ４４で、ソフトＩＰでない場合（Ｓ４４のＮ）、メインＣＰＵ１５２は、割込ハンドラを終了する。また、ハードＩＰを起動するためのレジスタに所定のデータが書き込まれた場合（Ｓ５６のＹ）、そのハードＩＰが処理を行う（Ｓ５８）。このように、図８の集積回路２００における各ＩＰに対するアドレスおよびデータを検出した場合に、外部ＣＰＵである図７のメインＣＰＵ１５２に割込をかけることで、割込ハンドラを起動することができる。そして、その割込ハンドラにより、メインＣＰＵ１５２がソフトＩＰで実装されていると判定した場合、メインＣＰＵ１５２は、集積回路２００のメモリ５８からソフトＩＰを実装するためのプログラムを読み込み、実行する。ハードＩＰに対するレジスタにデータが書き込まれた場合、集積回路２００に実装されたハードＩＰが、メインＣＰＵ１５２における割込ハンドラとは独立して処理を行う。
【００４５】
図８の集積回路２００を図７の電子装置１５０に搭載した場合も、図７のメインＣＰＵ１５２は、集積回路２００におけるＩＰの実装形態に拘わらず決められたレジスタにデータを書き込めばよいので、集積回路２００に対する制御プログラムはひとつでよい。また、ソフトＩＰを実現するために、電子装置１５０のメインＣＰＵ１５２を利用するので、集積回路２００のコストを抑えることができる。さらに、メインＣＰＵ１５２の処理能力が向上することで、ソフトＩＰを実現するプログラムがメインＣＰＵ１５２に与える負荷は実質的に小さくなる。
【００４６】
図１０は、上述した図２の集積回路１０または図８の集積回路２００をセットメーカに出荷するまでの全体的な流れを説明する。図２の集積回路１０および図８の集積回路２００の出荷までの流れは略同一なので、以下、図２の集積回路１０を例に説明する。工場１１２は、プレ集積回路１１を製造する。このプレ集積回路１１は、プログラムが格納されていない図２の集積回路１０である。つまり、製造直後のプレ集積回路１１は、メイン機能部１４を保持するが、サブ機能部１６における機能、すなわちプログラムをひとつも格納していない。書込装置１１０は、セットメーカの要求に応じたプログラムをプレ集積回路１１に書き込み、セットメーカ毎の集積回路１０を完成する。そうして完成した集積回路１０がセットメーカに向けて出荷される。このように、出荷前にプログラムを書き込むことにより、集積回路１０の汎用性が高まり、かつセットメーカの設計変更にも柔軟に対応することができる。
【００４７】
集積回路１０の製造システム１００は、プログラムをプレ集積回路１１に書き込む書込装置１１０と、書込装置１１０にプログラムを提供する管理装置１０２とを主に有する。書込装置１１０は、ネットワーク１０８を介して管理装置１０２と接続する。チップ情報データベース１０４は、セットメーカとの契約内容、つまり集積回路１０に搭載する機能の情報（以下、単に「機能情報」という）を保持する。プログラムデータベース１０６は、ソフトＩＰを実現するためのプログラムを例えば、プログラムを実行するＣＰＵ毎に保持する。プレ集積回路１１にプログラムを書き込む場合、書込装置１１０は、出荷先であるセットメーカ向けの集積回路１０に格納すべきプログラムの提供を管理装置１０２に要求する。管理装置１０２は、チップ情報データベース１０４に保持された機能情報を参照し、プログラムデータベース１０６から機能情報に応じたプログラムを取得する。機能情報には、例えば集積回路１０に搭載されたＣＰＵを特定する情報も含まれており、管理装置１０２は、そのＣＰＵで実行可能なプログラムを選択する。そして、管理装置１０２は、プログラムを書込装置１１０に出力する。ここで、図８の集積回路２００に格納するプログラムを選択する場合、機能情報には、集積回路２００を利用する外部ＣＰＵを特定する情報が含まれており、管理装置１０２はその外部ＣＰＵで実行可能なプログラムを選択する。
【００４８】
書込装置１１０は、管理装置１０２から供給されたプログラムをプレ集積回路１１に書き込む。こうして、集積回路１０が完成する。このようにプログラムを出荷前に格納することにより、必要なプログラムのみを搭載できるので、未利用のハードＩＰに対するライセンス料の発生を抑えることができる。また、納品までの期間が短縮できるので、セットメーカにおける開発期間の短縮に大きく貢献できる。また、集積回路１０にプログラムを書き込んだ後、特定のＩＰを取り除く必要が生じた場合、書込装置１１０は、そのＩＰを実現するためのプログラムを１０から削除する。この削除処理は、セットメーカ側で行われてもよい。
【００４９】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５０】
なお、本発明と実施の形態の部材の対応例を示す。「変換処理機構」は、図２の指示記憶レジスタ５４、内部ＣＰＵ５６、メモリ５８に保持された図４のテーブル８２などである。
【図面の簡単な説明】
【００５１】
【図１】第１の実施の形態に係る集積回路の内部構成図である。
【図２】図１の集積回路のハードウエア構成図である。
【図３】割込ハンドラのフローチャートの一例である。
【図４】図２のメモリにおけるデータ構造の一例を示す図である。
【図５】図４の存否情報のデータ構造の一例を示す図である。
【図６】図４のテーブルにおけるデータ構造の一例を示す図である。
【図７】図１および図２を用いて説明した集積回路を搭載する電子装置の内部構成図である。
【図８】第２の実施の形態に係る集積回路の内部構成図である。
【図９】図８の集積回路を図７の電子装置に組み込んだ場合の、メインＣＰＵと集積回路との間のシーケンスの一例を示す図である。
【図１０】第１および第２の実施の形態に係る集積回路をセットメーカに出荷するまでの全体的な流れを説明するための図である。
【符号の説明】
【００５２】
１０  集積回路、１１  プレ集積回路、１２  処理管理部、１４  メイン機能部、１４ａ  メロディＩＰ、１６  サブ機能部、１６ａ  サラウンドＩＰ、１６ｂ  イコライザＩＰ、１６ｃ  低音増強ＩＰ、５０  処理管理部、５２  デコーダ、５４  指示記憶レジスタ、５６  内部ＣＰＵ、５８  メモリ、６０  メモリ制御部、６４  ＤＳＰ、７０  システムバス、７２  割込信号、８０  割込ハンドラ、８２  テーブル、８４  存否情報、８６  第１プログラム、８８  第２プログラム、９０  ワークエリア、１００  製造システム、１０２  管理装置、１０４  チップ情報データベース、１０６  プログラムデータベース、１０８  ネットワーク、１１０  書込装置、１１２  工場、１５０  電子装置、１５２  メインＣＰＵ、１５４  スピーカ、１５６  通信部、１５８  メインメモリ、２００  集積回路。
【図１】
2005100188.tif 000003
【図２】
2005100188.tif 000004
【図３】
2005100188.tif 000005
【図４】
2005100188.tif 000006
【図５】
2005100188.tif 000007
【図６】
2005100188.tif 000008
【図７】
2005100188.tif 000009
【図８】
2005100188.tif 000010
【図９】
2005100188.tif 000011
【図１０】
2005100188.tif 000012