(57)【要約】命令メモリ（２）を有するプロセッサ（１）よりアドレス指定情報とレジスタ（ＲＥＧＡ〜ＲＥＧＤ）に設定するための設定値とを設定インタフェース部（３）に供給し、アドレス指定情報をもとにレジスタのアドレス値をアドレス出力部（５）より出力し、出力されたアドレス値及び設定値をそれぞれレジスタに出力し設定値を設定するようにして、プロセッサがレジスタのアドレスを意識することなく設定値をレジスタに設定できるようにし、命令コードにおける各レジスタのアドレス指定部分を削減して命令コード量を削減できるようにするとともに、命令コードのコーディングを容易に行うことができるようにする。
2004088528.tif 000002
【特許請求の範囲】
【請求項１】
実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、上記プロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項２】
上記アドレス出力部は、上記アドレス指定情報と当該アドレス指定情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
上記テーブルをリード・オンリ・メモリに保持していることを特徴とする請求項２に記載の半導体装置。
【請求項４】
上記テーブルを上記第１のバスに接続された書き換え可能なメモリに保持していることを特徴とする請求項２に記載の半導体装置。
【請求項５】
上記設定インタフェース部は、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項１に記載の半導体装置。
【請求項６】
上記記憶部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有することを特徴とする請求項５に記載の半導体装置。
【請求項７】
上記プロセッサより供給される上記複数のレジスタに設定するための設定値が上記記憶部の連続した領域に書き込まれることを特徴とする請求項５に記載の半導体装置。
【請求項８】
レジスタに設定された設定値に応じて異なる機能を実現可能な機能部を有する半導体装置であって、
実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、実現する機能を示す１つのファンクション情報と当該機能を実現するための複数のレジスタに設定するための設定値とが上記プロセッサより供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記ファンクション情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項９】
上記アドレス出力部は、上記ファンクション情報と当該ファンクション情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする請求項８に記載の半導体装置。
【請求項１０】
上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記ファンクション情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項８に記載の半導体装置。
【請求項１１】
一定の時間間隔で他の機能部に間欠処理を実行させる間欠制御機能部を含む複数の上記機能部を有し、
上記間欠処理の実行結果に応じて、上記間欠制御機能部とは異なる他の機能部に対する電源供給を停止することを特徴とする請求項８に記載の半導体装置。
【請求項１２】
上記間欠処理は、着呼確認を行う間欠受信処理であることを特徴とする請求項１１に記載の半導体装置。
【請求項１３】
実行する命令が格納された命令メモリを有するプロセッサと、
上記プロセッサのアドレス空間とは異なるローカルアドレス空間に配置された複数のレジスタと、
上記プロセッサのアドレス空間に配置され、上記プロセッサより１つのアドレス指定情報と上記複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのローカルアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記ローカルアドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項１４】
上記アドレス出力部は、上記アドレス指定情報と上記複数のレジスタのローカルアドレス値とを関連付けたテーブルを有することを特徴とする請求項１３に記載の半導体装置。
【請求項１５】
上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項１３に記載の半導体装置。
【請求項１６】
上記レジスタは、設定値に応じて異なる機能を実現する機能部に設けられたレジスタであることを特徴とする請求項１３に記載の半導体装置。
【発明の詳細な説明】
【技術分野】  本発明は、半導体装置に関し、特に、レジスタの設定値に応じて異なる機能が実現される多機能半導体集積回路に用いて好適なものである。
【背景技術】  ＬＳＩ等の半導体集積回路においては、レジスタに設定された値（データ）に応じて異なる機能を実現する多機能半導体集積回路（多機能ＬＳＩ）がある。近年、多機能ＬＳＩは、高機能化及び多機能化に伴い、ＬＳＩ内でのデータ処理量が増大しているとともに、所望の機能を実現させるための動作モードや各種パラメータ等を設定するレジスタ量も増大している。これらのレジスタへの設定値の設定は、主にプロセッサ（例えばＣＰＵ又はＤＳＰ）のソフトウエア、ファームウエアで行っているが、レジスタ量の増大により設定に多大な時間を要するようになってきている。
図７は、従来の多機能ＬＳＩの構成例を示すブロック図である。なお、図７において、機能ブロックは説明を簡単にするために４つの機能ブロック７３〜７６のみを示している。
図７において、プロセッサ７１は、命令ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７２を有し構成され、演算処理、レジスタ設定処理、及び各種制御処理等を行う。命令ＲＡＭ７２は、プロセッサ７１が実行する命令の命令コード等を記憶するためのものである。
機能ブロックＡ７３は、ハードウエアで構成された機能部であり、複数のレジスタＲＥＧＡを有する。機能ブロックＡ７３は、レジスタＲＥＧＡに設定される値に応じて所定の機能を実現する。機能ブロックＢ７４〜機能ブロックＤ７６は、機能ブロックＡ７３と同様に構成され、それぞれが有する複数のレジスタＲＥＧＢ〜ＲＥＧＤに設定される値に応じて所定の機能を実現する。
また、各機能ブロック７３〜７６は、プロセッサ７１のプロセッサバスＰＢＵＳにそれぞれ接続され、各機能ブロック７３〜７６がそれぞれ有するレジスタＲＥＧＡ〜ＲＥＧＤは、プロセッサ７１の外部メモリ空間にマッピングされる。以下の説明では、レジスタＲＥＧＡは、外部メモリ空間上のアドレス値Ｆ０００〜Ｆ０ＦＦの領域にマッピングされ、レジスタＲＥＧＢ、ＲＥＧＣ、ＲＥＧＤは、外部メモリ空間上のアドレス値Ｆ１００〜Ｆ１ＦＦ、Ｆ２００〜２１ＦＦ、Ｆ３００〜Ｆ３ＦＦの領域にそれぞれマッピングされているものとする。
図８は、図７に示した多機能ＬＳＩにおけるレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値の一例を示す図である。なお、レジスタＲＥＧＡ〜ＲＥＧＤを構成する１つのレジスタは、１６ビットのレジスタであるとする。
例えば、第１の機能（ファンクション１：ＦＵＮＣ１）を実現するためには、機能ブロックＡ７３のＦ０００番地のレジスタに“０００１ｈ”（ｈは１６進数表記であることを示す。）、Ｆ００８番地のレジスタに“Ｆ０００ｈ”、…、を設定する。同様に、機能ブロックＢ７４のＦ１００番地に“０００１ｈ”、Ｆ１０１番地に“００１１ｈ”、…、機能ブロックＣ７５のＦ２００番地に“０００１ｈ”、Ｆ２Ｆ０番地に“ＦＦＦＦｈ”、…、機能ブロックＤ７６のＦ３００番地に“０００１ｈ”、Ｆ３３０番地に“４００２ｈ”、…、を設定する。
また、例えば、第１の機能とは異なる第２の機能（ファンクション２：ＦＵＮＣ２）を実現するためには、機能ブロックＡ７３のＦ０００番地に“０００２ｈ”、Ｆ００８番地のレジスタに“Ｆ０Ｆ０ｈ”、…、機能ブロックＢ７４のＦ１００番地“０００２ｈ”、Ｆ１０１番地に“０００１ｈ”、…、機能ブロックＣ７５のＦ２００番地に“０００２ｈ”、Ｆ２Ｆ０番地に“０００Ｆｈ”、…、機能ブロックＤ７６のＦ３００番地に“０００２ｈ”、Ｆ３３０番地に“０００２ｈ”、…、を設定する。
すなわち、図８に示したように多機能ＬＳＩでは、実現する機能（ファンクション）に応じて、設定すべきレジスタの数及びそのアドレスが異なり、また同一のレジスタであっても機能に応じて設定すべき設定値が異なる。したがって、プロセッサ７１が有する命令ＲＡＭ７２には、図９に示すようにレジスタ設定に係るプロセッサ７１の命令コードがファンクション毎に書き込まれており、レジスタをアクセスする命令が繰り返し冗長的に格納されている。
図９は、命令ＲＡＭ７２に格納されるレジスタ設定に係るプロセッサ７１の命令コードの一例を示す図である。命令コード９１は、上述した第１の機能（ファンクション１）を実現するためのものである。設定するレジスタを示すアドレスを変数に代入し（例えば、“ＭＯＶ  Ｘ＝Ｆ０００”）、次に変数に代入されたアドレスに設定値を書き込む（例えば、“ＭＯＶ（Ｘ＋＋０），０００１ｈ”）。すなわち、２つのコマンドで１つのレジスタに値を設定し、これを設定すべきレジスタ分書き込む。なお、第２の機能（ファンクション２）、第３の機能（ファンクション３）、…を実現するための命令コード９２、９３、…も、同様に格納されている。
しかしながら、近年の高機能化及び多機能化により実行できるファンクションの種類が多い多機能ＬＳＩにおいては、プロセッサ７１の命令ＲＡＭ７２に格納される命令コードの量が飛躍的に増大し、命令ＲＡＭ７２に要求される記憶容量が大きくなるという問題があった。また、命令ＲＡＭ７２に格納する命令コードのコーディングも非常に困難になるという問題があった。
例えば、携帯電話に用いられる多機能ＬＳＩでは、全機能ブロックのレジスタ数の総和は２０００個程度であり、ファンクションの種類（電源投入後の初期基地局サーチ、通話、間欠受信等）は数百個である。したがって、１つのファンクションで数百個のレジスタのみに値を設定すると仮定しても、命令ＲＡＭ７２には、１０４個以上の命令（コマンド数はその２倍）が格納される。また、携帯電話の方式がＰＤＣ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ）方式からＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式になることでも、多機能ＬＳＩにおいて実行可能なファンクションの種類が増加し、さらに機能ブロック数が増加するとともに、それらが有するレジスタ数も増加している。
また、多機能ＬＳＩにおいては、上述のように命令ＲＡＭ７２の容量が大きくなり、プロセッサ７１にて命令ＲＡＭ７２の占める面積が大きくなると、プロセッサ７１におけるロジック部分が小さくなってしまう。さらに、プロセッサ７１の処理にてレジスタ設定処理（レジスタに対する書き込みや読み出し）の占める割合が大きくなり、プロセッサ７１本来の処理能力（演算性能、例えば携帯電話であれば電界強度の計算等）を有効に活用することができなくなってしまうという問題があった。
また、格納する命令コードによる命令ＲＡＭ７２の圧迫を防ぎ、複数レジスタを初期化する方法が特許文献１に開示されている。
【特許文献１】    特開平８−１５３００１号公報
【発明の開示】
本発明は、このような問題を解決するためになされたものであり、レジスタ設定に係る命令コード量を削減し、プロセッサが有する命令ＲＡＭの記憶容量を削減できるようにすることを目的とする。また、命令ＲＡＭに格納するプロセッサの命令コードのコーディングも容易に行うことができるようにすることを目的とする。
本発明は、実行する命令が格納された命令メモリを有するプロセッサと、プロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、アドレス指定情報をもとに複数のレジスタのアドレス値を出力するアドレス出力部とを備え、アドレス出力部及び設定インタフェース部よりアドレス値及び設定値をそれぞれ出力し、レジスタに設定値を設定する。
本発明によれば、レジスタに設定値を設定する際、プロセッサは、アドレス指定情報とレジスタに設定するための設定値とを設定インタフェース部に供給するだけで、レジスタのアドレスを意識することなく、レジスタに設定値を設定することができるようになる。したがって、命令メモリに格納する命令コードにて各レジスタのアドレスを指定する必要がなく、命令コード量を削減することができるようになるとともに、命令コードのコーディングを容易に行うことができるようになる。
【図面の簡単な説明】  図１は、本発明の実施形態による半導体装置を適用した多機能半導体集積回路の構成例を示すブロック図である。
図２は、設定インタフェース部が具備するメモリ部の構成例を示す図である。
図３は、アドレス制御部が有するテーブルの一例を示す図である。
図４は、本実施形態におけるファンクション番号−ローカルアドレスの変換例を説明するための図である。
図５は、本実施形態における命令ＲＡＭの構成を示す図である。
図６は、本実施形態を適用した携帯電話での間欠受信処理の動作を説明するための図である。
図７は、従来の多機能ＬＳＩの構成例を示すブロック図である。
図８は、レジスタに設定するための設定値の一例を示す図である。
図９は、図７に示した命令ＲＡＭに書き込まれるレジスタ設定に係る命令コードの一例の構成を示す図である。
【発明を実施するための最良の形態】  以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明の実施形態による半導体装置を適用した多機能半導体集積回路（多機能ＬＳＩ）の構成例を示すブロック図である。
本実施形態における多機能ＬＳＩは、プロセッサ１、設定インタフェース部３、アドレス制御部５、機能ブロック６〜９を有し構成される。なお、図１においては、説明を簡単にするために４つの機能ブロック６〜９を示しているが、本実施形態における多機能ＬＳＩが備える機能ブロックの数は任意である。
本実施形態における多機能ＬＳＩでは、設定インタフェース部３はプロセッサ１の外部メモリ空間に配置（マッピング）され、後述する機能ブロック６〜９が有するレジスタＲＥＧＡ〜ＲＥＧＤは当該外部メモリ空間とは異なるローカルアドレス空間に配置される。
プロセッサ１は、プロセッサ１が実行する命令の命令コード等が格納される命令ＲＡＭ２を有し、当該命令コードに従って演算処理、レジスタ設定処理、及び各種制御処理等を行う。
設定インタフェース部３は、実現するファンクションの種類を示すファンクション番号及び当該ファンクションを実現するための設定値が、プロセッサ１によりプロセッサバスＰＢＵＳを介して内部に備えるメモリ部４に書き込まれる。また、設定インタフェース部３は、メモリ部４に保持したファンクション番号ＦＮをアドレス制御部５に供給するとともに、設定値ＳＴＶを機能ブロック６〜９に供給する。なお、メモリ部４については後述する。
アドレス制御部５は、ファンクション番号と設定すべきレジスタのローカルアドレスとを関連付けたテーブルが格納されたＲＯＭを有する。アドレス制御部５は、設定インタフェース部３から供給されるファンクション番号ＦＮに基づいて、当該ファンクション番号ＦＮに対応するローカルアドレスＬＡＤを機能ブロック６〜９に供給する。なお、アドレス制御部５にＲＡＭ等の書き換え可能なメモリを用いるとともに、それをプロセッサバスＰＢＵＳに接続しプロセッサ１の外部メモリ空間に配置することで、プロセッサ１が任意の時点でテーブルを書き換えることができるようにしても良い。
機能ブロックＡ６は、複数のレジスタＲＥＧＡを有し、レジスタＲＥＧＡに設定された値に応じて所定の機能を実現するハードウエアで構成される機能部である。機能ブロックＢ７〜機能ブロックＤ９は、機能ブロックＡ６と同様に構成され、それぞれが有する複数のレジスタＲＥＧＢ〜ＲＥＧＤに設定される値に応じて所定の機能を実現する。例えば、本実施形態における多機能ＬＳＩを携帯電話に用いる場合には、機能ブロック６〜９は、変調機能、復調機能、誤り訂正機能、チャネルコーディング（デコード）機能等をそれぞれ実現する。
なお、以下の説明では、レジスタＲＥＧＡ、ＲＥＧＢ、ＲＥＧＣ、ＲＥＧＤは、ローカルアドレス空間上のアドレス値Ｆ０００〜Ｆ０ＦＦ、Ｆ１００〜Ｆ１ＦＦ、Ｆ２００〜２１ＦＦ、Ｆ３００〜Ｆ３ＦＦの領域にそれぞれマッピングされているものとする。また、レジスタＲＥＧＡ〜ＲＥＧＤを構成する１つのレジスタは、１６ビットのレジスタであるとする。
図２は、設定インタフェース部３が備えるメモリ部４の構成例を示す図である。メモリ部４は、本実施形態の多機能ＬＳＩにて実現するファンクションの中で設定値を設定するレジスタ数が最大のものに合わせて設けられる。図２においては、プロセッサ１の外部メモリ空間上のアドレス値Ｆ０００〜Ｆ０１６の領域に配置されたメモリ部４を一例として示している。つまり、多機能ＬＳＩにおいて、あるファンクションを実現する際に設定値を設定するレジスタ数が最大でも２２個の場合を示している。
図２に示すように、メモリ部４にて先頭のＦ０００番地の領域には、ファンクション番号を書き込み、Ｆ００１番地〜Ｆ０１６番地の領域には、ファンクションを実現する上でレジスタに設定すべき設定値を書き込む。Ｆ００１番地〜Ｆ０１６番地の領域に設定値を書き込む際には、設定値が存在するレジスタのローカルアドレスの昇順又は降順で設定値のみを連続して書き込む。上述したようにＦ０００番地の領域に書き込まれたファンクション番号はアドレス制御部５に供給され、Ｆ００１番地〜Ｆ０１４番地に書き込まれた設定値は機能ブロック６〜９に供給される。
例えば、図２に示すように、図８に示した第１の機能（ファンクション１：ＦＵＮＣ１）の設定値を書き込む場合には、Ｆ０００番地の領域に“０００１ｈ”を書き込み、以下Ｆ００１番地からＦ０１４番地まで順に“０００１ｈ”、“Ｆ０００ｈ”、…、“０１００ｈ”、“０００１ｈ”を書き込む。また、書き込む設定値のないＦ０１５番地、Ｆ０１６番地の領域には書き込みは行わない（あるいは、任意の値を書き込み、以降の動作で無視する。）。
なお、上述した説明では、ファンクション番号はＦ０００番地の領域に書き込むようにしているが、本発明はこれに限定されるものではなく、ファンクション番号を書き込む任意の領域（番地）を予め定めておけば良い。そして、その領域に書き込まれた値をファンクション番号ＦＮとしてアドレス制御部５に供給すれば良い。
また、レジスタのローカルアドレスの昇順又は降順でＦ００１番地〜Ｆ０１６番地の領域に設定値を連続して書き込むようにしているが、設定値の書き込み順と後述するテーブルでのローカルアドレスの書き込み順との整合が保たれれば、レジスタのローカルアドレスにかかわらず任意の順序で設定値を連続して書き込むようにしても良い。
図３は、アドレス制御部５が有するテーブルの一例を示す図である。図３においては、図８に一例を示したファンクション１〜３（ＦＵＮＣ１〜３）でのテーブルを示している。
図３に示すようにテーブルには、ファンクション番号に対応して設定値を設定すべきレジスタのローカルアドレスがファンクション番号毎に示してあり、これによりファンクション番号ＦＮをもとにローカルアドレスＬＡＤが出力される。例えば、ファンクション１（ＦＵＮＣ１）については、設定すべきレジスタのローカルアドレスとして、Ｆ０００、Ｆ００８、Ｆ００９、…、Ｆ３８０、Ｆ３８１が示されており、ファンクション番号ＦＮとして“０００１ｈ”が供給されると、アドレス制御部５は、機能ブロック６〜９にローカルアドレスとしてＦ０００、Ｆ００８、Ｆ００９、…、Ｆ３８０、Ｆ３８１と順次供給する。
以上のように構成した多機能ＬＳＩにおいて、ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値がプロセッサ１から設定インタフェース部３に供給されると、それが設定インタフェース部８内のメモリ部４に順次書き込まれる。上記処理でプロセッサ１が関わるレジスタ設定処理は完了する。続いて、メモリ部４に書き込まれたファンクション番号ＦＮが、設定インタフェース部３からアドレス制御部５に供給され、ファンクション番号ＦＮに応じてローカルアドレスＬＡＤがアドレス制御部５より出力される。
このようにして、アドレス制御部５から出力されるローカルアドレスと、当該ローカルアドレスに対応し設定インタフェース部３から出力される設定値とが所定の書き込みタイミングで機能ブロック６〜９に供給され、各機能ブロック６〜９のレジスタＲＥＧＡ〜ＲＥＧＤに設定値が設定される。
例えば、ファンクション１（ファンクション番号ＦＮが“０００１ｈ”）の場合には、図４に示すようにアドレスが出力され、設定インタフェース部３のＦ００１番地の領域に書き込まれた設定値が、ローカルアドレスにてＦ０００番地のレジスタに書き込まれる。同様に、設定インタフェース部３のＦ００２番地、Ｆ００３番地、…、Ｆ０１４番地の領域にそれぞれ書き込まれた設定値が、ローカルアドレスにてＦ００８番地、Ｆ００９番地、…、Ｆ３８１番地のレジスタにそれぞれ書き込まれる。
このとき、アドレス制御部５は、例えばライトパルス等を出力し、各機能ブロック６〜９のレジスタＲＥＧＡ〜ＲＥＧＤへの設定値の書き込み動作を制御する。
上述のような構成にすることにより、本実施形態では、図５に示すようなプロセッサ１の命令コードのコーディングが可能になる。図５は、本実施形態において命令ＲＡＭ２に格納されるレジスタ設定処理に係る命令コード等の一例を示す図である。図５において、命令コード５１は上述した第１の機能（ファンクション１：ＦＵＮＣ１）を実現するための命令コードである。
まず、設定インタフェース部３が備えるメモリ部４の先頭アドレス（Ｆ０００）を変数Ｘに代入し（ＭＯＶ  Ｘ＝Ａ）、次に設定値のみが配列されている命令ＲＡＭ２内のデータテーブル（ＴＢＬ＿ＤＴＡ）５４のデータを取得して変数Ｙに代入する（ＭＯＶ  Ｙ＝ＴＢＬ＿ＤＴＡ）。そして、設定インタフェース部３に変数Ｘに代入されたアドレスに対して変数Ｙに代入された値を書き込む、すなわち設定インタフェース部３に設定値を書き込む（ＭＯＶ（Ｘ＋＋），（Ｙ＋＋）ｈ）。
これをＬＯＯＰ形式等により変数Ｘ（アドレス）を順次インクリメントすることで、最終的に設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。したがって、従来プロセッサはアドレス値→設定値→アドレス値→設定値→…と交互にアドレス値と設定値とに係る処理を行っていたが、本実施形態では命令コードにおけるレジスタのアドレス指定部分が削除され、プロセッサはファンクション番号→設定値→設定値→…とほぼ設定値のみに係る処理のみを行う、つまりほぼ１／２のプロセッサの処理量で設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。
なお、第２の機能（ファンクション２：ＦＵＮＣ２）及び第３の機能（ファンクション３：ＦＵＮＣ１）についても、命令コード５２、５３及びデータテーブル５５、５６をそれぞれ命令ＲＡＭ２に格納することで、設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。また、データテーブル５４、５５、５６は、プロセッサ１での演算結果等に基づいて値が更新される場合があるために、命令ＲＡＭ２に設けている。
以上、詳しく説明したように本実施形態によれば、実現するファンクションに応じた設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定する際、プロセッサ１は設定値を設定する多数のレジスタＲＥＧＡ〜ＲＥＧＤのアドレスを意識することなく、設定インタフェース部３にファンクション番号と設定値を順次供給するだけでレジスタＲＥＧＡ〜ＲＥＧＤに設定値を設定することができる。
したがって、命令ＲＡＭ２に格納するレジスタ設定に係る命令コードにてアドレス指定部分を含ませる必要がなくなり、図５に示した本実施形態での命令コードと、図９に示した従来の命令コードとを比較すればわかるように、命令コード量を削減し命令ＲＡＭ２が備えるべき記憶容量を削減することができるとともに、命令コードのコーディングを容易に行うことができる。また、設定値の一部を変更したりする場合には、従来はアドレス値と設定値とが命令コード内に混在しているので、変更誤り等を発生するおそれが高かったが、本実施形態では命令コードには設定値のみが示されるので変更誤り等の発生確率を低下させることができる。
また、プロセッサ１が行うレジスタ設定処理は、ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値を設定インタフェース部３に供給するだけで良いので、プロセッサ１がレジスタ設定処理に要する処理時間を従来と比較して短縮することができる。これにより、プロセッサ１の本来の処理能力を有効に活用することができる、あるいは処理能力（ＭＩＰＳ値）が低いプロセッサ１を用いてコストを削減することができる。
以下に、上述した本実施形態における多機能ＬＳＩを携帯電話に適用した具体例を説明する。
図６は、本実施形態における多機能ＬＳＩを適用した携帯電話での間欠受信処理の動作を説明するための図である。間欠受信処理とは、一斉呼び出しチャネル（Ｐａｇｉｎｇ  Ｃｈａｎｎｅｌ、以下「ＰＣＨ」と称す。）を一定の時間間隔（図６に示す例では間欠受信周期により示される２．５６秒）でモニタし、電話がかかってきていないかを確認（着呼確認）するための処理Ｐ１である（処理１）。
確認の結果、電話がかかってきていない場合には、間欠制御ブロックのみを動作させ他の機能ブロックの電源供給を遮断するパワーダウン状態（低消費電力動作状態）に遷移し、電話がかかってきている場合には、通話するための処理が行われる。ここで、間欠制御ブロックは、レジスタ及びタイマからなり、低い周波数のクロック信号で動作する。
上記ＰＣＨを受信する際に必要なレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値をファンクションの１つとして定義しておき、間欠受信処理を行うとき、プロセッサ１はＰＣＨ受信用ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値を設定インタフェース部３に供給する。これにより、ＰＣＨを受信するための設定値がレジスタＲＥＧＡ〜ＲＥＧＤに設定され（処理Ｐ２）、ＰＣＨ受信動作（処理Ｐ３）に移行する（処理２）。
ここで、多機能ＬＳＩは、パワーダウン状態にてプロセッサ１内の命令ＲＡＭ２に対する電源供給を遮断してしまうと間欠受信処理時にブート動作が必要になるので、上述した間欠受信処理及びパワーダウン状態のいずれにおいても、命令ＲＡＭ２には電源が供給されている。そのため、従来のように命令ＲＡＭ２の容量が大きいとリーク電流により消費される電力も大きく、携帯電話のようなバッテリで動作する機器にとっては重要な問題である。一方、本実施形態によれば、上述したように命令ＲＡＭ２が備えるべき記憶容量を大きく削減することができるので、命令ＲＡＭ２の容量を大幅に小さくすることができ、命令ＲＡＭ２でのリーク電流による消費電力も大幅に削減することができる。
なお、本実施形態における多機能ＬＳＩを携帯電話に適用したときのファンクションの他の例としては、電源投入後の初期基地局サーチ、通話等がある。
なお、上記実施形態では、実現するファンクションの種類を示すものとしてファンクション番号を一例として示したが、これに限らずファンクションの種類を示す任意の情報であっても良い。また、ファンクションの種類を示すものに限らず、複数のレジスタのアドレス値を出力させるための任意の情報であっても良い。
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】  以上のように、本発明によれば、命令メモリを有するプロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とを設定インタフェース部に供給し、さらにアドレス指定情報をもとに複数のレジスタのアドレス値をアドレス出力部より出力して、出力されたアドレス値及び設定値をそれぞれレジスタに出力し設定値を設定する。
これにより、プロセッサは、アドレス指定情報とレジスタに設定するための設定値とを供給するだけでレジスタに設定値を設定することができ、レジスタのアドレスを意識しなくとも良いので、命令コードにてアドレス指定部分を削減し命令コード量を削減し、プロセッサが有する命令メモリの記憶容量を削減することができる。また、従来と比較して命令が非常に単純になるので、命令コードのコーディングを容易に行うことができる。
【図１】
2004088528.tif 000003
【図２】
2004088528.tif 000004
【図３】
2004088528.tif 000005
【図４】
2004088528.tif 000006
【図５】
2004088528.tif 000007
【図６】
2004088528.tif 000008
【図７】
2004088528.tif 000009
【図８】
2004088528.tif 000010
【図９】
2004088528.tif 000011
【手続補正書】
【提出日】平成17年6月10日(2005.6.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、上記プロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項２】
上記アドレス出力部は、上記アドレス指定情報と当該アドレス指定情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
上記設定インタフェース部は、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項１に記載の半導体装置。
【請求項４】
レジスタに設定された設定値に応じて異なる機能を実現可能な機能部を有する半導体装置であって、
実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、実現する機能を示す１つのファンクション情報と当該機能を実現するための複数のレジスタに設定するための設定値とが上記プロセッサより供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記ファンクション情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項５】
上記アドレス出力部は、上記ファンクション情報と当該ファンクション情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする請求項４に記載の半導体装置。
【請求項６】
上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記ファンクション情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項４に記載の半導体装置。
【請求項７】
一定の時間間隔で他の機能部に間欠処理を実行させる間欠制御機能部を含む複数の上記機能部を有し、
上記間欠処理の実行結果に応じて、上記間欠制御機能部とは異なる他の機能部に対する電源供給を停止することを特徴とする請求項４に記載の半導体装置。
【請求項８】
実行する命令が格納された命令メモリを有するプロセッサと、
上記プロセッサのアドレス空間とは異なるローカルアドレス空間に配置された複数のレジスタと、
上記プロセッサのアドレス空間に配置され、上記プロセッサより１つのアドレス指定情報と上記複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのローカルアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記ローカルアドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
【請求項９】
上記アドレス出力部は、上記アドレス指定情報と上記複数のレジスタのローカルアドレス値とを関連付けたテーブルを有することを特徴とする請求項８に記載の半導体装置。
【請求項１０】
上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする請求項８に記載の半導体装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、レジスタの設定値に応じて異なる機能が実現される多機能半導体集積回路に用いて好適なものである。
【背景技術】
【０００２】
ＬＳＩ等の半導体集積回路においては、レジスタに設定された値（データ）に応じて異なる機能を実現する多機能半導体集積回路（多機能ＬＳＩ）がある。近年、多機能ＬＳＩは、高機能化及び多機能化に伴い、ＬＳＩ内でのデータ処理量が増大しているとともに、所望の機能を実現させるための動作モードや各種パラメータ等を設定するレジスタ量も増大している。これらのレジスタへの設定値の設定は、主にプロセッサ（例えばＣＰＵ又はＤＳＰ）のソフトウエア、ファームウエアで行っているが、レジスタ量の増大により設定に多大な時間を要するようになってきている。
【０００３】
図７は、従来の多機能ＬＳＩの構成例を示すブロック図である。なお、図７において、機能ブロックは説明を簡単にするために４つの機能ブロック７３〜７６のみを示している。
【０００４】
図７において、プロセッサ７１は、命令ＲＡＭ（Random Access Memory）７２を有し構成され、演算処理、レジスタ設定処理、及び各種制御処理等を行う。命令ＲＡＭ７２は、プロセッサ７１が実行する命令の命令コード等を記憶するためのものである。
【０００５】
機能ブロックＡ７３は、ハードウエアで構成された機能部であり、複数のレジスタＲＥＧＡを有する。機能ブロックＡ７３は、レジスタＲＥＧＡに設定される値に応じて所定の機能を実現する。機能ブロックＢ７４〜機能ブロックＤ７６は、機能ブロックＡ７３と同様に構成され、それぞれが有する複数のレジスタＲＥＧＢ〜ＲＥＧＤに設定される値に応じて所定の機能を実現する。
【０００６】
また、各機能ブロック７３〜７６は、プロセッサ７１のプロセッサバスＰＢＵＳにそれぞれ接続され、各機能ブロック７３〜７６がそれぞれ有するレジスタＲＥＧＡ〜ＲＥＧＤは、プロセッサ７１の外部メモリ空間にマッピングされる。以下の説明では、レジスタＲＥＧＡは、外部メモリ空間上のアドレス値Ｆ０００〜Ｆ０ＦＦの領域にマッピングされ、レジスタＲＥＧＢ、ＲＥＧＣ、ＲＥＧＤは、外部メモリ空間上のアドレス値Ｆ１００〜Ｆ１ＦＦ、Ｆ２００〜２１ＦＦ、Ｆ３００〜Ｆ３ＦＦの領域にそれぞれマッピングされているものとする。
【０００７】
図８は、図７に示した多機能ＬＳＩにおけるレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値の一例を示す図である。なお、レジスタＲＥＧＡ〜ＲＥＧＤを構成する１つのレジスタは、１６ビットのレジスタであるとする。
【０００８】
例えば、第１の機能（ファンクション１：ＦＵＮＣ１）を実現するためには、機能ブロックＡ７３のＦ０００番地のレジスタに“０００１ｈ”（ｈは１６進数表記であることを示す。）、Ｆ００８番地のレジスタに“Ｆ０００ｈ”、…、を設定する。同様に、機能ブロックＢ７４のＦ１００番地に“０００１ｈ”、Ｆ１０１番地に“００１１ｈ”、…、機能ブロックＣ７５のＦ２００番地に“０００１ｈ”、Ｆ２Ｆ０番地に“ＦＦＦＦｈ”、…、機能ブロックＤ７６のＦ３００番地に“０００１ｈ”、Ｆ３３０番地に“４００２ｈ”、…、を設定する。
【０００９】
また、例えば、第１の機能とは異なる第２の機能（ファンクション２：ＦＵＮＣ２）を実現するためには、機能ブロックＡ７３のＦ０００番地に“０００２ｈ”、Ｆ００８番地のレジスタに“Ｆ０Ｆ０ｈ”、…、機能ブロックＢ７４のＦ１００番地に“０００２ｈ”、Ｆ１０１番地に“０００１ｈ”、…、機能ブロックＣ７５のＦ２００番地に“０００２ｈ”、Ｆ２Ｆ０番地に“０００Ｆｈ”、…、機能ブロックＤ７６のＦ３００番地に“０００２ｈ”、Ｆ３３０番地に“０００２ｈ”、…、を設定する。
【００１０】
すなわち、図８に示したように多機能ＬＳＩでは、実現する機能（ファンクション）に応じて、設定すべきレジスタの数及びそのアドレスが異なり、また同一のレジスタであっても機能に応じて設定すべき設定値が異なる。したがって、プロセッサ７１が有する命令ＲＡＭ７２には、図９に示すようにレジスタ設定に係るプロセッサ７１の命令コードがファンクション毎に書き込まれており、レジスタをアクセスする命令が繰り返し冗長的に格納されている。
【００１１】
図９は、命令ＲＡＭ７２に格納されるレジスタ設定に係るプロセッサ７１の命令コードの一例を示す図である。命令コード９１は、上述した第１の機能（ファンクション１）を実現するためのものである。設定するレジスタを示すアドレスを変数に代入し（例えば、“ＭＯＶ  Ｘ＝Ｆ０００”）、次に変数に代入されたアドレスに設定値を書き込む（例えば、“ＭＯＶ  （Ｘ＋＋０），０００１ｈ”）。すなわち、２つのコマンドで１つのレジスタに値を設定し、これを設定すべきレジスタ分書き込む。なお、第２の機能（ファンクション２）、第３の機能（ファンクション３）、…を実現するための命令コード９２、９３、…も、同様に格納されている。
【００１２】
しかしながら、近年の高機能化及び多機能化により実行できるファンクションの種類が多い多機能ＬＳＩにおいては、プロセッサ７１の命令ＲＡＭ７２に格納される命令コードの量が飛躍的に増大し、命令ＲＡＭ７２に要求される記憶容量が大きくなるという問題があった。また、命令ＲＡＭ７２に格納する命令コードのコーディングも非常に困難になるという問題があった。
【００１３】
例えば、携帯電話に用いられる多機能ＬＳＩでは、全機能ブロックのレジスタ数の総和は２０００個程度であり、ファンクションの種類（電源投入後の初期基地局サーチ、通話、間欠受信等）は数百個である。したがって、１つのファンクションで数百個のレジスタのみに値を設定すると仮定しても、命令ＲＡＭ７２には、１０4個以上の命令（コマンド数はその２倍）が格納される。また、携帯電話の方式がＰＤＣ（Personal Digital Cellular）方式からＣＤＭＡ（Code Division Multiple Access）方式になることでも、多機能ＬＳＩにおいて実行可能なファンクションの種類が増加し、さらに機能ブロック数が増加するとともに、それらが有するレジスタ数も増加している。
【００１４】
また、多機能ＬＳＩにおいては、上述のように命令ＲＡＭ７２の容量が大きくなり、プロセッサ７１にて命令ＲＡＭ７２の占める面積が大きくなると、プロセッサ７１におけるロジック部分が小さくなってしまう。さらに、プロセッサ７１の処理にてレジスタ設定処理（レジスタに対する書き込みや読み出し）の占める割合が大きくなり、プロセッサ７１本来の処理能力（演算性能、例えば携帯電話であれば電界強度の計算等）を有効に活用することができなくなってしまうという問題があった。
【００１５】
また、格納する命令コードによる命令ＲＡＭ７２の圧迫を防ぎ、複数レジスタを初期化する方法が特許文献１に開示されている。
【００１６】
【特許文献１】特開平８−１５３００１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、このような問題を解決するためになされたものであり、レジスタ設定に係る命令コード量を削減し、プロセッサが有する命令ＲＡＭの記憶容量を削減できるようにすることを目的とする。また、命令ＲＡＭに格納するプロセッサの命令コードのコーディングも容易に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、実行する命令が格納された命令メモリを有するプロセッサと、プロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、アドレス指定情報をもとに複数のレジスタのアドレス値を出力するアドレス出力部とを備え、アドレス出力部及び設定インタフェース部よりアドレス値及び設定値をそれぞれ出力し、レジスタに設定値を設定する。
【００１９】
本発明によれば、レジスタに設定値を設定する際、プロセッサは、アドレス指定情報とレジスタに設定するための設定値とを設定インタフェース部に供給するだけで、レジスタのアドレスを意識することなく、レジスタに設定値を設定することができるようになる。したがって、命令メモリに格納する命令コードにて各レジスタのアドレスを指定する必要がなく、命令コード量を削減することができるようになるとともに、命令コードのコーディングを容易に行うことができるようになる。
【発明の効果】
【００２０】
本発明によれば、命令メモリを有するプロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とを設定インタフェース部に供給し、さらにアドレス指定情報をもとに複数のレジスタのアドレス値をアドレス出力部より出力して、出力されたアドレス値及び設定値をそれぞれレジスタに出力し設定値を設定する。
【００２１】
これにより、プロセッサは、アドレス指定情報とレジスタに設定するための設定値とを供給するだけでレジスタに設定値を設定することができ、レジスタのアドレスを意識しなくとも良いので、命令コードにてアドレス指定部分を削減し命令コード量を削減し、プロセッサが有する命令メモリの記憶容量を削減することができる。また、従来と比較して命令が非常に単純になるので、命令コードのコーディングを容易に行うことができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明の実施形態による半導体装置を適用した多機能半導体集積回路（多機能ＬＳＩ）の構成例を示すブロック図である。
【００２３】
本実施形態における多機能ＬＳＩは、プロセッサ１、設定インタフェース部３、アドレス制御部５、機能ブロック６〜９を有し構成される。なお、図１においては、説明を簡単にするために４つの機能ブロック６〜９を示しているが、本実施形態における多機能ＬＳＩが備える機能ブロックの数は任意である。
【００２４】
本実施形態における多機能ＬＳＩでは、設定インタフェース部３はプロセッサ１の外部メモリ空間に配置（マッピング）され、後述する機能ブロック６〜９が有するレジスタＲＥＧＡ〜ＲＥＧＤは当該外部メモリ空間とは異なるローカルアドレス空間に配置される。
【００２５】
プロセッサ１は、プロセッサ１が実行する命令の命令コード等が格納される命令ＲＡＭ２を有し、当該命令コードに従って演算処理、レジスタ設定処理、及び各種制御処理等を行う。
【００２６】
設定インタフェース部３は、実現するファンクションの種類を示すファンクション番号及び当該ファンクションを実現するための設定値が、プロセッサ１によりプロセッサバスＰＢＵＳを介して内部に備えるメモリ部４に書き込まれる。また、設定インタフェース部３は、メモリ部４に保持したファンクション番号ＦＮをアドレス制御部５に供給するとともに、設定値ＳＴＶを機能ブロック６〜９に供給する。なお、メモリ部４については後述する。
【００２７】
アドレス制御部５は、ファンクション番号と設定すべきレジスタのローカルアドレスとを関連付けたテーブルが格納されたＲＯＭを有する。アドレス制御部５は、設定インタフェース部３から供給されるファンクション番号ＦＮに基づいて、当該ファンクション番号ＦＮに対応するローカルアドレスＬＡＤを機能ブロック６〜９に供給する。なお、アドレス制御部５にＲＡＭ等の書き換え可能なメモリを用いるとともに、それをプロセッサバスＰＢＵＳに接続しプロセッサ１の外部メモリ空間に配置することで、プロセッサ１が任意の時点でテーブルを書き換えることができるようにしても良い。
【００２８】
機能ブロックＡ６は、複数のレジスタＲＥＧＡを有し、レジスタＲＥＧＡに設定された値に応じて所定の機能を実現するハードウエアで構成される機能部である。機能ブロックＢ７〜機能ブロックＤ９は、機能ブロックＡ６と同様に構成され、それぞれが有する複数のレジスタＲＥＧＢ〜ＲＥＧＤに設定される値に応じて所定の機能を実現する。例えば、本実施形態における多機能ＬＳＩを携帯電話に用いる場合には、機能ブロック６〜９は、変調機能、復調機能、誤り訂正機能、チャネルコーディング（デコード）機能等をそれぞれ実現する。
【００２９】
なお、以下の説明では、レジスタＲＥＧＡ、ＲＥＧＢ、ＲＥＧＣ、ＲＥＧＤは、ローカルアドレス空間上のアドレス値Ｆ０００〜Ｆ０ＦＦ、Ｆ１００〜Ｆ１ＦＦ、Ｆ２００〜２１ＦＦ、Ｆ３００〜Ｆ３ＦＦの領域にそれぞれマッピングされているものとする。また、レジスタＲＥＧＡ〜ＲＥＧＤを構成する１つのレジスタは、１６ビットのレジスタであるとする。
【００３０】
図２は、設定インタフェース部３が備えるメモリ部４の構成例を示す図である。メモリ部４は、本実施形態の多機能ＬＳＩにて実現するファンクションの中で設定値を設定するレジスタ数が最大のものに合わせて設けられる。図２においては、プロセッサ１の外部メモリ空間上のアドレス値Ｆ０００〜Ｆ０１６の領域に配置されたメモリ部４を一例として示している。つまり、多機能ＬＳＩにおいて、あるファンクションを実現する際に設定値を設定するレジスタ数が最大でも２２個の場合を示している。
【００３１】
図２に示すように、メモリ部４にて先頭のＦ０００番地の領域には、ファンクション番号を書き込み、Ｆ００１番地〜Ｆ０１６番地の領域には、ファンクションを実現する上でレジスタに設定すべき設定値を書き込む。Ｆ００１番地〜Ｆ０１６番地の領域に設定値を書き込む際には、設定値が存在するレジスタのローカルアドレスの昇順又は降順で設定値のみを連続して書き込む。上述したようにＦ０００番地の領域に書き込まれたファンクション番号はアドレス制御部５に供給され、Ｆ００１番地〜Ｆ０１４番地に書き込まれた設定値は機能ブロック６〜９に供給される。
【００３２】
例えば、図２に示すように、図８に示した第１の機能（ファンクション１：ＦＵＮＣ１）の設定値を書き込む場合には、Ｆ０００番地の領域に“０００１ｈ”を書き込み、以下Ｆ００１番地からＦ０１４番地まで順に“０００１ｈ”、“Ｆ０００ｈ”、…、“０１００ｈ”、“０００１ｈ”を書き込む。また、書き込む設定値のないＦ０１５番地、Ｆ０１６番地の領域には書き込みは行わない（あるいは、任意の値を書き込み、以降の動作で無視する。）。
【００３３】
なお、上述した説明では、ファンクション番号はＦ０００番地の領域に書き込むようにしているが、本発明はこれに限定されるものではなく、ファンクション番号を書き込む任意の領域（番地）を予め定めておけば良い。そして、その領域に書き込まれた値をファンクション番号ＦＮとしてアドレス制御部５に供給すれば良い。
【００３４】
また、レジスタのローカルアドレスの昇順又は降順でＦ００１番地〜Ｆ０１６番地の領域に設定値を連続して書き込むようにしているが、設定値の書き込み順と後述するテーブルでのローカルアドレスの書き込み順との整合が保たれれば、レジスタのローカルアドレスにかかわらず任意の順序で設定値を連続して書き込むようにしても良い。
【００３５】
図３は、アドレス制御部５が有するテーブルの一例を示す図である。図３においては、図８に一例を示したファンクション１〜３（ＦＵＮＣ１〜３）でのテーブルを示している。
【００３６】
図３に示すようにテーブルには、ファンクション番号に対応して設定値を設定すべきレジスタのローカルアドレスがファンクション番号毎に示してあり、これによりファンクション番号ＦＮをもとにローカルアドレスＬＡＤが出力される。例えば、ファンクション１（ＦＵＮＣ１）については、設定すべきレジスタのローカルアドレスとして、Ｆ０００、Ｆ００８、Ｆ００９、…、Ｆ３８０、Ｆ３８１が示されており、ファンクション番号ＦＮとして“０００１ｈ”が供給されると、アドレス制御部５は、機能ブロック６〜９にローカルアドレスとしてＦ０００、Ｆ００８、Ｆ００９、…、Ｆ３８０、Ｆ３８１と順次供給する。
【００３７】
以上のように構成した多機能ＬＳＩにおいて、ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値がプロセッサ１から設定インタフェース部３に供給されると、それが設定インタフェース部３内のメモリ部４に順次書き込まれる。上記処理でプロセッサ１が関わるレジスタ設定処理は完了する。続いて、メモリ部４に書き込まれたファンクション番号ＦＮが、設定インタフェース部３からアドレス制御部５に供給され、ファンクション番号ＦＮに応じてローカルアドレスＬＡＤがアドレス制御部５より出力される。
【００３８】
このようにして、アドレス制御部５から出力されるローカルアドレスと、当該ローカルアドレスに対応し設定インタフェース部３から出力される設定値とが所定の書き込みタイミングで機能ブロック６〜９に供給され、各機能ブロック６〜９のレジスタＲＥＧＡ〜ＲＥＧＤに設定値が設定される。
【００３９】
例えば、ファンクション１（ファンクション番号ＦＮが“０００１ｈ”）の場合には、図４に示すようにアドレスが出力され、設定インタフェース部３のＦ００１番地の領域に書き込まれた設定値が、ローカルアドレスにてＦ０００番地のレジスタに書き込まれる。同様に、設定インタフェース部３のＦ００２番地、Ｆ００３番地、…、Ｆ０１４番地の領域にそれぞれ書き込まれた設定値が、ローカルアドレスにてＦ００８番地、Ｆ００９番地、…、Ｆ３８１番地のレジスタにそれぞれ書き込まれる。
【００４０】
このとき、アドレス制御部５は、例えばライトパルス等を出力し、各機能ブロック６〜９のレジスタＲＥＧＡ〜ＲＥＧＤへの設定値の書き込み動作を制御する。
【００４１】
上述のような構成にすることにより、本実施形態では、図５に示すようなプロセッサ１の命令コードのコーディングが可能になる。図５は、本実施形態において命令ＲＡＭ２に格納されるレジスタ設定処理に係る命令コード等の一例を示す図である。図５において、命令コード５１は上述した第１の機能（ファンクション１：ＦＵＮＣ１）を実現するための命令コードである。
【００４２】
まず、設定インタフェース部３が備えるメモリ部４の先頭アドレス（Ｆ０００）を変数Ｘに代入し（ＭＯＶ  Ｘ＝Ａ）、次に設定値のみが配列されている命令ＲＡＭ２内のデータテーブル（ＴＢＬ＿ＤＴＡ）５４のデータを取得して変数Ｙに代入する（ＭＯＶ  Ｙ＝ＴＢＬ＿ＤＴＡ）。そして、設定インタフェース部３に変数Ｘに代入されたアドレスに対して変数Ｙに代入された値を書き込む、すなわち設定インタフェース部３に設定値を書き込む（ＭＯＶ  （Ｘ＋＋），（Ｙ＋＋）ｈ）。
【００４３】
これをＬＯＯＰ形式等により変数Ｘ（アドレス）を順次インクリメントすることで、最終的に設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。したがって、従来プロセッサはアドレス値→設定値→アドレス値→設定値→…と交互にアドレス値と設定値とに係る処理を行っていたが、本実施形態では命令コードにおけるレジスタのアドレス指定部分が削除され、プロセッサはファンクション番号→設定値→設定値→…とほぼ設定値のみに係る処理のみを行う、つまりほぼ１／２のプロセッサの処理量で設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。
【００４４】
なお、第２の機能（ファンクション２：ＦＵＮＣ２）及び第３の機能（ファンクション３：ＦＵＮＣ１）についても、命令コード５２、５３及びデータテーブル５５、５６をそれぞれ命令ＲＡＭ２に格納することで、設定すべき設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定することができる。また、データテーブル５４、５５、５６は、プロセッサ１での演算結果等に基づいて値が更新される場合があるために、命令ＲＡＭ２に設けている。
【００４５】
以上、詳しく説明したように本実施形態によれば、実現するファンクションに応じた設定値をレジスタＲＥＧＡ〜ＲＥＧＤに設定する際、プロセッサ１は設定値を設定する多数のレジスタＲＥＧＡ〜ＲＥＧＤのアドレスを意識することなく、設定インタフェース部３にファンクション番号と設定値を順次供給するだけでレジスタＲＥＧＡ〜ＲＥＧＤに設定値を設定することができる。
【００４６】
したがって、命令ＲＡＭ２に格納するレジスタ設定に係る命令コードにてアドレス指定部分を含ませる必要がなくなり、図５に示した本実施形態での命令コードと、図９に示した従来の命令コードとを比較すればわかるように、命令コード量を削減し命令ＲＡＭ２が備えるべき記憶容量を削減することができるとともに、命令コードのコーディングを容易に行うことができる。また、設定値の一部を変更したりする場合には、従来はアドレス値と設定値とが命令コード内に混在しているので、変更誤り等を発生するおそれが高かったが、本実施形態では命令コードには設定値のみが示されるので変更誤り等の発生確率を低下させることができる。
【００４７】
また、プロセッサ１が行うレジスタ設定処理は、ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値を設定インタフェース部３に供給するだけで良いので、プロセッサ１がレジスタ設定処理に要する処理時間を従来と比較して短縮することができる。これにより、プロセッサ１の本来の処理能力を有効に活用することができる、あるいは処理能力（ＭＩＰＳ値）が低いプロセッサ１を用いてコストを削減することができる。
【００４８】
以下に、上述した本実施形態における多機能ＬＳＩを携帯電話に適用した具体例を説明する。
図６は、本実施形態における多機能ＬＳＩを適用した携帯電話での間欠受信処理の動作を説明するための図である。間欠受信処理とは、一斉呼び出しチャネル（Paging Channel、以下「ＰＣＨ」と称す。）を一定の時間間隔（図６に示す例では間欠受信周期により示される２．５６秒）でモニタし、電話がかかってきていないかを確認（着呼確認）するための処理Ｐ１である（処理１）。
【００４９】
確認の結果、電話がかかってきていない場合には、間欠制御ブロックのみを動作させ他の機能ブロックの電源供給を遮断するパワーダウン状態（低消費電力動作状態）に遷移し、電話がかかってきている場合には、通話するための処理が行われる。ここで、間欠制御ブロックは、レジスタ及びタイマからなり、低い周波数のクロック信号で動作する。
【００５０】
上記ＰＣＨを受信する際に必要なレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値をファンクションの１つとして定義しておき、間欠受信処理を行うとき、プロセッサ１はＰＣＨ受信用ファンクション番号及びレジスタＲＥＧＡ〜ＲＥＧＤに設定するための設定値を設定インタフェース部３に供給する。これにより、ＰＣＨを受信するための設定値がレジスタＲＥＧＡ〜ＲＥＧＤに設定され（処理Ｐ２）、ＰＣＨ受信動作（処理Ｐ３）に移行する（処理２）。
【００５１】
ここで、多機能ＬＳＩは、パワーダウン状態にてプロセッサ１内の命令ＲＡＭ２に対する電源供給を遮断してしまうと間欠受信処理時にブート動作が必要になるので、上述した間欠受信処理及びパワーダウン状態のいずれにおいても、命令ＲＡＭ２には電源が供給されている。そのため、従来のように命令ＲＡＭ２の容量が大きいとリーク電流により消費される電力も大きく、携帯電話のようなバッテリで動作する機器にとっては重要な問題である。一方、本実施形態によれば、上述したように命令ＲＡＭ２が備えるべき記憶容量を大きく削減することができるので、命令ＲＡＭ２の容量を大幅に小さくすることができ、命令ＲＡＭ２でのリーク電流による消費電力も大幅に削減することができる。
【００５２】
なお、本実施形態における多機能ＬＳＩを携帯電話に適用したときのファンクションの他の例としては、電源投入後の初期基地局サーチ、通話等がある。
【００５３】
なお、上記実施形態では、実現するファンクションの種類を示すものとしてファンクション番号を一例として示したが、これに限らずファンクションの種類を示す任意の情報であっても良い。また、ファンクションの種類を示すものに限らず、複数のレジスタのアドレス値を出力させるための任意の情報であっても良い。
【００５４】
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５５】
（付記１）実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、上記プロセッサより１つのアドレス指定情報と複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
（付記２）上記アドレス出力部は、上記アドレス指定情報と当該アドレス指定情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする付記１に記載の半導体装置。
（付記３）上記テーブルをリード・オンリ・メモリに保持していることを特徴とする付記２に記載の半導体装置。
（付記４）上記テーブルを上記第１のバスに接続された書き換え可能なメモリに保持していることを特徴とする付記２に記載の半導体装置。
（付記５）上記設定インタフェース部は、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする付記１に記載の半導体装置。
（付記６）上記記憶部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有することを特徴とする付記５に記載の半導体装置。
（付記７）上記プロセッサより供給される上記複数のレジスタに設定するための設定値が上記記憶部の連続した領域に書き込まれることを特徴とする付記５に記載の半導体装置。
（付記８）レジスタに設定された設定値に応じて異なる機能を実現可能な機能部を有する半導体装置であって、
実行する命令が格納された命令メモリを有し、第１のバスに接続されるプロセッサと、
上記第１のバスに接続され、実現する機能を示す１つのファンクション情報と当該機能を実現するための複数のレジスタに設定するための設定値とが上記プロセッサより供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記ファンクション情報をもとに上記複数のレジスタのアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記アドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
（付記９）上記アドレス出力部は、上記ファンクション情報と当該ファンクション情報に対応する上記複数のレジスタのアドレス値とを関連付けたテーブルを有することを特徴とする付記８に記載の半導体装置。
（付記１０）上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記ファンクション情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする付記８に記載の半導体装置。
（付記１１）一定の時間間隔で他の機能部に間欠処理を実行させる間欠制御機能部を含む複数の上記機能部を有し、
上記間欠処理の実行結果に応じて、上記間欠制御機能部とは異なる他の機能部に対する電源供給を停止することを特徴とする付記８に記載の半導体装置。
（付記１２）上記間欠処理は、着呼確認を行う間欠受信処理であることを特徴とする付記１１に記載の半導体装置。
（付記１３）実行する命令が格納された命令メモリを有するプロセッサと、
上記プロセッサのアドレス空間とは異なるローカルアドレス空間に配置された複数のレジスタと、
上記プロセッサのアドレス空間に配置され、上記プロセッサより１つのアドレス指定情報と上記複数のレジスタに設定するための設定値とが供給される設定インタフェース部と、
上記設定インタフェース部より供給される上記アドレス指定情報をもとに上記複数のレジスタのローカルアドレス値を出力するアドレス出力部とを備え、
上記アドレス出力部が出力する上記ローカルアドレス値を用いて、上記設定インタフェース部が出力する上記設定値を上記レジスタに設定することを特徴とする半導体装置。
（付記１４）上記アドレス出力部は、上記アドレス指定情報と上記複数のレジスタのローカルアドレス値とを関連付けたテーブルを有することを特徴とする付記１３に記載の半導体装置。
（付記１５）上記設定インタフェース部は、上記プロセッサより供給され得るレジスタに設定するための設定値の数の最大数に応じた記憶容量を有し、上記アドレス指定情報及び上記レジスタに設定するための設定値を保持する記憶部を有することを特徴とする付記１３に記載の半導体装置。
（付記１６）上記レジスタは、設定値に応じて異なる機能を実現する機能部に設けられたレジスタであることを特徴とする付記１３に記載の半導体装置。
【図面の簡単な説明】
【００５６】
【図１】図１は、本発明の実施形態による半導体装置を適用した多機能半導体集積回路の構成例を示すブロック図である。
【図２】図２は、設定インタフェース部が具備するメモリ部の構成例を示す図である。
【図３】図３は、アドレス制御部が有するテーブルの一例を示す図である。
【図４】図４は、本実施形態におけるファンクション番号−ローカルアドレスの変換例を説明するための図である。
【図５】図５は、本実施形態における命令ＲＡＭの構成を示す図である。
【図６】図６は、本実施形態を適用した携帯電話での間欠受信処理の動作を説明するための図である。
【図７】図７は、従来の多機能ＬＳＩの構成例を示すブロック図である。
【図８】図８は、レジスタに設定するための設定値の一例を示す図である。
【図９】図９は、図７に示した命令ＲＡＭに書き込まれるレジスタ設定に係る命令コードの一例の構成を示す図である。
【国際調査報告】
2004088528.tif 000012
2004088528.tif 000013