(57)【要約】      （修正有）【課題】プロセッサからコプロセッサへのデータ転送の効率を向上出来る演算装置、プロセッサシステム、及び映像処理装置を提供する。【解決手段】データ保持可能な第１領域と、第２動作モードにおいて設けられ、データ保持を禁止された第２領域とを備えたレジスタ２２と、前記第２動作モードにおいてアクセスされた前記第２領域に対応するデータのアドレスを生成し、該アドレスに対応するデータをメインプロセッサ２の第１メモリ１１から直接読み出す制御部２１と、前記第１動作モードにおいて、前記アクセスされた前記第１領域に保持されるデータを用いて演算を行い、前記第２動作モードにおいて、前記制御部２１で読み出された前記データを用いて演算を行う演算部２３とを具備する。【選択図】      図１
2007299279.tif 000002
【特許請求の範囲】
【請求項１】
レジスタの第１領域に対してアクセスされる第１動作モードと、前記レジスタの第２領域に対してアクセスされる第２動作モードとを備えた演算装置であって、
データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記レジスタと、
前記第２動作モードにおいて、アクセスされた前記第２領域に対応するデータのアドレスを生成し、該アドレスに対応するデータを読み出す制御部と、
前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用いて演算を行い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて演算を行う演算部と
を具備することを特徴とする演算装置。
【請求項２】
データを保持するメモリ装置を備える第１演算装置と、第１レジスタを備え且つ前記第１演算装置から与えられる演算命令に応じて前記データの演算を行う第２演算装置とを具備するプロセッサシステムであって、
前記演算命令は、第１動作モードにおいて前記第１レジスタの第１領域に対するアクセス命令を含み、第２動作モードにおいて前記第１レジスタの第２領域に対するアクセス命令を含み、
前記第２演算装置は、データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記第１レジスタと、
前記第２動作モードにおいて、アクセスされた前記第２領域に対応する前記メモリ装置におけるアドレスを生成し、該アドレスに対応するデータを前記メモリ装置から読み出す制御部と、
前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用いて演算を行い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて演算を行う演算部と
を具備することを特徴とするプロセッサシステム。
【請求項３】
前記第１レジスタは、各々が前記データ保持可能な複数の第２レジスタを含み、前記第２動作モードにおいては前記第２レジスタのいずれかが前記第２領域として機能し、残りが前記第１領域として機能し、
前記演算命令は、前記演算部における演算内容と、いずれかの前記第２レジスタを選択する旨の選択命令とを含み、
前記制御部は、前記第２領域として機能する前記第２レジスタの数、及び前記第２領域として機能する前記第２レジスタと前記メモリ装置内の前記アドレスとの関係を保持する設定値保持部と、
前記選択命令により選択される前記第２レジスタが前記第２領域として機能する場合、前記設定値保持部に保持される前記関係を用いて、該第２レジスタの前記メモリ装置内における前記アドレスを発生するアドレス発生部と、
前記アドレス発生部で発生された前記アドレスに基づいて、前記メモリ装置から前記データを読み出し、前記演算部へ出力する読み出し部と
を備えることを特徴とする請求項２記載のプロセッサシステム。
【請求項４】
前記設定値保持部は、複数の前記第２レジスタが前記第２領域として機能する場合に、先頭の前記第２レジスタに対応する前記メモリ装置内の先頭アドレスと、前記第２レジスタ間における前記アドレスの差分情報とを保持し、
前記アドレス発生部は、前記選択命令に基づいて、前記設定値保持部に保持される前記先頭アドレスと、必要な前記差分情報とを加算することにより前記アドレスを算出する
ことを特徴とする請求項３記載のプロセッサシステム。
【請求項５】
音声の圧縮処理及び伸張処理を行う音声処理回路と、
映像の圧縮処理及び伸張処理を行う映像処理回路と
を具備し、前記音声処理回路は、データを保持するメモリ装置を備える第１演算装置と、
レジスタを備え、且つ前記第１演算装置から与えられる演算命令に応じて前記データの演算を行う第２演算装置と
を備え、前記演算命令は、第１動作モードにおいて前記レジスタの第１領域に対するアクセス命令を含み、第２動作モードにおいて前記レジスタの第２領域に対するアクセス命令を含み、
前記第２演算装置は、データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記レジスタと、
前記第２動作モードにおいて、アクセスされた前記第２領域に対応する前記メモリ装置におけるアドレスを生成し、該アドレスに対応するデータを前記メモリ装置から読み出す制御部と、
前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて、前記音声の圧縮処理及び伸張処理に必要な演算を行う演算部と
を備えることを特徴とする映像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算装置、プロセッサシステム、及び映像処理装置に関する。例えば、プロセッサとコプロセッサとを有する構成において、プロセッサからコプロセッサへのデータ転送方法に関する。
【背景技術】
【０００２】
従来、音声コーデックなどのマルチメディア処理においては、積和（ＭＡＣ）処理が多用されている。積和処理とは、ある時刻において入力信号の乗算を行ってこれを蓄積し、次の時刻において次の入力信号の乗算を行い、更にその乗算結果と蓄積されている前の時刻の乗算結果とを加算して蓄積する処理のことを言う。
【０００３】
また、マルチメディア処理用ＬＳＩにおいてはプロセッサとコプロセッサを設けた構成が知られている。この場合、必要なデータをプロセッサがコプロセッサへ転送し、コプロセッサにおいて積和処理が行われる（例えば特許文献１参照）。
【０００４】
しかしながら上記従来の構成であると、プロセッサからコプロセッサへのデータの転送に時間がかかり、演算処理の効率が悪いという問題があった。
【特許文献１】特開２００１−０７５８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、演算処理の効率を向上出来る演算装置、プロセッサシステム、及び映像処理装置を提供する。
【課題を解決するための手段】
【０００６】
この発明の一態様に係る演算装置は、レジスタの第１領域に対してアクセスされる第１動作モードと、前記レジスタの第２領域に対してアクセスされる第２動作モードとを備えた演算装置であって、データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記レジスタと、前記第２動作モードにおいて、アクセスされた前記第２領域に対応するデータのアドレスを生成し、該アドレスに対応するデータを読み出す制御部と、前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用いて演算を行い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて演算を行う演算部とを具備する。
【０００７】
また、この発明の一態様に係るプロセッサシステムは、データを保持するメモリ装置を備える第１演算装置と、第１レジスタを備え且つ前記第１演算装置から与えられる演算命令に応じて前記データの演算を行う第２演算装置とを具備するプロセッサシステムであって、前記演算命令は、第１動作モードにおいて前記第１レジスタの第１領域に対するアクセス命令を含み、第２動作モードにおいて前記第１レジスタの第２領域に対するアクセス命令を含み、前記第２演算装置は、データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記第１レジスタと、前記第２動作モードにおいて、アクセスされた前記第２領域に対応する前記メモリ装置におけるアドレスを生成し、該アドレスに対応するデータを前記メモリ装置から読み出す制御部と、前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用いて演算を行い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて演算を行う演算部とを具備する。
【０００８】
更に、この発明の一態様に係る映像処理装置は、音声の圧縮処理及び伸張処理を行う音声処理回路と、映像の圧縮処理及び伸張処理を行う映像処理回路とを具備し、前記音声処理回路は、データを保持するメモリ装置を備える第１演算装置と、レジスタを備え、且つ前記第１演算装置から与えられる演算命令に応じて前記データの演算を行う第２演算装置とを備え、前記演算命令は、第１動作モードにおいて前記レジスタの第１領域に対するアクセス命令を含み、第２動作モードにおいて前記レジスタの第２領域に対するアクセス命令を含み、前記第２演算装置は、データ保持可能な前記第１領域と、前記第２動作モードにおいて設けられ、データ保持を禁止された前記第２領域とを備えた前記レジスタと、前記第２動作モードにおいて、アクセスされた前記第２領域に対応する前記メモリ装置におけるアドレスを生成し、該アドレスに対応するデータを前記メモリ装置から読み出す制御部と、前記第１動作モードにおいては、前記アクセスされた前記第１領域に保持されるデータを用い、前記第２動作モードにおいては、前記制御部で読み出された前記データを用いて、前記音声の圧縮処理及び伸張処理に必要な演算を行う演算部とを備える。
【発明の効果】
【０００９】
この発明によれば、演算処理の効率を向上出来る演算装置、プロセッサシステム、及び映像処理装置を提供出来る。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１１】
この発明の第１の実施形態に係る演算装置及びプロセッサシステムについて、図１を用いて説明する。図１は、本実施形態に係るシステムＬＳＩのブロック図である。
【００１２】
図示するように、本実施形態に係るシステムＬＳＩ１は、メインプロセッサ２及びコプロセッサ（coprocessor）３を備えている。メインプロセッサ２は、プロセッサコア１０、第１メモリ１１、第２メモリ１２、及びデータ転送部１３を備えている。第１メモリ１１は、プロセッサコア１０及びコプロセッサ３において用いられるデータを保持する。第２メモリ１２は、プロセッサコア１０において用いられる演算命令を保持する。データ転送部１３は、第１メモリ１１及びコアプロセッサ３に対するデータのロードまたはストアを行う。プロセッサコア１０は、データ転送部１３により第１メモリ１１から読み出されたデータについて、第２メモリ１２から読み出された演算命令を実行する。そして、演算結果を第１メモリ１１にストアするようにデータ転送部１３に命令する。またプロセッサコア１０は、コプロセッサ３に対して演算を命令する。
【００１３】
コプロセッサ３は、プロセッサコア１０の命令に従って演算を行う。コプロセッサ３は、データ制御部２０、メモリアクセス部２１、レジスタ群２２、及び演算部２３を備えている。データ制御部２０は、プロセッサコア１０により与えられる演算命令に応答して、レジスタ群２２からデータを演算部２３に転送し、またメモリアクセス部２１に対して第１メモリ１１からデータを読み出すよう命令する。メモリアクセス部２１は、データ制御部２０の命令に応答して、第１メモリ１１からデータを読み出し、演算部２３へ出力する。メモリアクセス部２１の詳細については後述する。レジスタ群２２は、各々がデータ保持可能な複数のレジスタを備えている。本実施形態では、レジスタ群２２が１６個のレジスタを備える場合を例に挙げて説明し、それぞれのレジスタをレジスタ０〜レジスタ１５と呼ぶことにする。勿論、レジスタの数は１６個に限られず、例えば８個や３２個などであっても良い。レジスタ０〜レジスタ１５には、第１メモリ１１内のデータが、メインプロセッサ２におけるデータ転送部１３によってロードされる。演算部２３は、レジスタ群２２または／及びメモリアクセス部２１から与えられるデータに基づいて演算を行う。
【００１４】
図２は演算部２３のブロック図である。図示するように演算部２３は、乗算器３０、加算器３１、及び蓄積部３２を備えている。乗算器３０は、レジスタ群２２または／及びメモリアクセス部２１から与えられるデータの乗算を行う。加算器３１は、乗算器３０における乗算結果と、蓄積部３２に蓄積されるデータとの加算を行う。蓄積部３２は、加算器における加算結果を蓄積する。すなわち、演算部２３は積和（ＭＡＣ）処理を行う。勿論、演算部２３の行う演算は積和処理に限らず、その他の演算処理であっても良い。
【００１５】
図３は、メモリアクセス部２１のブロック図である。図示するようにメモリアクセス部２１は、情報レジスタ４０、アドレス発生部５０、及び読み出し部６０を備えている。情報レジスタ４０は、設定情報保持部４１及びベースアドレス保持部４２を有している。設定情報保持部４１は、アドレスオフセット値、メモリマップトレジスタ数、及びデータ形式の情報を保持する。ベースアドレス保持部４２は、ベースアドレスを保持する。なおアドレスオフセット値、メモリマップトレジスタ数、及びベースアドレスについては後述する。データ形式とは、扱われるデータの形式に関する情報であり、例えば負の値を使用するか否かの情報等である。
【００１６】
アドレス発生部５０は、乗算器５１及び加算器５２を備えている。乗算器５１は、データ制御部２０から与えられるレジスタ順位ｎと、設定情報保持部４１に保持されるアドレスオフセット値とを乗算する。レジスタ順位ｎについては後に説明する。加算器５２は、乗算器５１における乗算結果と、ベースアドレス保持部４２に保持されるベースアドレスとを加算する。
【００１７】
読み出し部６０は、メインプロセッサ２の第１メモリ１１において、加算器５２における加算結果に対応するアドレスに保持されているデータを読み出す。そして読み出したデータを演算部２３へ出力する。
【００１８】
上記構成のシステムＬＳＩ１は、２つの動作モードを有している。以下、２つの動作モードを第１動作モード及び第２動作モードと呼ぶことにする。第１動作モード及び第２動作モード、並びに上記のアドレスオフセット値、メモリマップトレジスタ数、ベースアドレス、及びレジスタ順位ｎについて説明する。
【００１９】
図４は、プロセッサコア１０からデータ制御部２０に与えられる演算命令の内容を示す概念図である。図示するように、演算命令は例えば１６ビットの固定長の命令であり、演算内容及び２つのレジスタ番号を含んでいる。レジスタ番号は、レジスタ群２２におけるレジスタ０〜１５のいずれかを指定する。レジスタ番号の各々は４ビットの固定長のデータである。例えば演算内容が積和処理であり、レジスタ番号がそれぞれ“０”、“１”であった場合、この演算命令は、レジスタ０に保持されているデータとレジスタ１に保持されているデータを用いて積和処理をせよ、との意味である。
【００２０】
図５は、第１動作モードにおけるレジスタ群２２及び演算部２３のブロック図である。第１動作モードとは、レジスタ群２２に含まれる全てのレジスタ０〜１５に対して、データの保持が許可された動作モードである。図中では全てのレジスタ０〜１５にデータが保持されている場合を示しているが、勿論、レジスタ０〜１５の一部にのみデータが保持されている場合もあり得る。そしてデータ制御部２０は、レジスタ群２２において、プロセッサコア１０から与えられる演算命令に含まれるレジスタ番号に応じたレジスタのデータを演算部２３へ出力する。例えばレジスタ番号＝“００００”、“００１１”であったとすると、データ制御部２０はレジスタ０及びレジスタ３に保持されるデータを演算部２３へ出力し（図５参照）、これらのデータに基づいて演算部２３が積和処理を行う。
【００２１】
次に第２動作モードについて図６を用いて説明する。図６は、第２動作モードにおけるレジスタ群２２、演算部２３、及びメモリアクセス部２１のブロック図である。第２動作モードとは、レジスタ群２２に含まれるレジスタ０〜１５のいずれかにつき、データの保持を禁止される動作モードである。図６では、レジスタ８〜１５がデータ保持を禁止された場合を示している。以下、データ保持を禁止されたレジスタをメモリマップトレジスタ（memory mapped register）と呼ぶことにし、図面においては図６に示すように斜線を付して図示する。プロセッサコア１０から与えられる演算命令により選択されるレジスタがメモリマップトレジスタでない場合には、第１動作モードと同様、選択されたレジスタからデータが読み出される。他方、メモリマップトレジスタが選択された場合には、メモリマップトレジスタからデータは読み出されない。図６はこのような場合について示している。例えば演算命令におけるレジスタ番号が“００００”、“１０１０”であったとする。すると、レジスタ番号＝“１０１０”に対応するレジスタ１０はメモリマップトレジスタである。従ってデータ制御部２０は、レジスタ１０からデータを読み出さない。その代わりにデータ制御部２０は、メモリアクセス部２１に対してメインプロセッサ２における第１メモリ１１からデータを読み出すように命令する。そして、メモリアクセス部２１で読み出されたデータと、レジスタ０に保持されるデータとを用いて、演算部２３は積和処理を行う。メモリマップトレジスタとして使用されるレジスタの各々は、第１メモリ１１におけるいずれかのアドレスに対応づけられている。この対応関係をメモリアクセス部２１は保持している。
【００２２】
メモリマップトレジスタと第１メモリ１１との対応関係の一例について、図７を用いて説明する。図７は、レジスタ８〜１５のブロック図と、それに対応する第１メモリ１１のメモリ空間の概念図である。
【００２３】
図示するように、レジスタ８から順に第１メモリ１１のメモリ空間が割り当てられている。レジスタ８〜１５の各々が３２ビットのビット長を有し、第１メモリ１１においてレジスタ８に相当する領域の先頭アドレスが“０ｘ２０１０００”であったと仮定する。すると、レジスタ８は第１メモリ１１におけるアドレス“０ｘ２０１０００”〜“０ｘ２０１００３”の領域に対応する。レジスタ９はアドレス“０ｘ２０１００４”〜“０ｘ２０１００７”に対応する。レジスタ１０はアドレス“０ｘ２０１００８”〜“０ｘ２０１００Ｂ”に対応する。以下レジスタ１５まで同様である。なお、アドレスの最初に記載する“０ｘ”とは、当該アドレスが１６進数で表現されていることを示す。
【００２４】
前述のベースアドレスとは、メモリマップトレジスタとして使用されるレジスタのうち、最もレジスタ番号の若いレジスタの、第１メモリ１１における先頭アドレスのことである。従って図７の例であると、レジスタ８に対応する先頭アドレス“０ｘ２０１０００”がベースアドレスである。
【００２５】
また前述のアドレスオフセット値とは、メモリマップトレジスタとして使用されるレジスタのレジスタ番号が“＋１”した場合の、第１メモリ１１におけるアドレスの変化量を示す。従って図７の例であると、“０ｘ０００００４”がアドレスオフセット値である。なお、アドレスオフセット値は、アドレスの変化量そのものでなく、例えばデータのビット長で表されていても良い。すなわち、“０ｘ０００００４”の代わりにデータ幅＝“３２ビット”で表現しても良い。アドレスオフセット値とデータ幅との関係は次のようになる。データ幅＝“８ビット”の場合、アドレスの変化量は“０ｘ０００００１”である。データ幅＝“１６ビット”の場合、アドレスの変化量は“０ｘ０００００２”である。データ幅＝“６４ビット”の場合、アドレスの変化量は“０ｘ０００００８”である。
【００２６】
更に前述のレジスタ順位ｎとは、演算命令によって選択されたレジスタがメモリマップトレジスタとして使用されるものであった場合、それが最も若いレジスタ番号のレジスタから何番目であるかを示す。例えば図７の例であると、レジスタ８はメモリマップトレジスタにおいて最も若いレジスタ番号を有するので、ｎ＝０である。レジスタ９はｎ＝１である。レジスタ１０はｎ＝２である。以下レジスタ１５まで同様である。
【００２７】
更に前述のメモリマップトレジスタ数とは、レジスタ群２２内においてメモリマップトレジスタとして使用されるレジスタの数のことである。従って図７の例であると、メモリマップトレジスタ数は“８”である。より具体的には、設定情報保持部４１は、メモリマップトレジスタ数を示す情報として、データＭＡＳＫ＝（メモリマップトレジスタ数−１）の値を保持する。例えばメモリマップトレジスタ数が８個の場合、ＭＡＳＫ＝“２ｂ１０００”−“２ｂ０００１”＝“２ｂ０１１１”を保持する。メモリマップトレジスタ数が０、２、４、８の場合のレジスタ群２２の様子について図８に示す。図８はレジスタ群２２のブロック図である。なお、ＭＡＳＫの最初に記載する“２ｂ”とは、２進数で表現されていることを示す。
【００２８】
図示するように、レジスタ０〜１５のいずれもメモリマップトレジスタとして使用しない場合、メモリマップトレジスタ数はゼロであり、ＭＡＳＫ＝“２ｂ１１１１”である。レジスタ１４、１５をメモリマップトレジスタとして使用する場合、メモリマップトレジスタ数は“２”であるから、ＭＡＳＫ＝“２ｂ０００１”である。レジスタ１２〜１５をメモリマップトレジスタとして使用する場合、メモリマップトレジスタ数は“４”であるから、ＭＡＳＫ＝“２ｂ００１１”である。レジスタ８〜１５をメモリマップトレジスタとして使用する場合、メモリマップトレジスタ数は“８”であるから、ＭＡＳＫ＝“２ｂ０１１１”である。上記のように、メモリマップトレジスタとしてのレジスタは、レジスタ番号の遅い順から使用される。
【００２９】
次に、上記構成のシステムＬＳＩ１の動作について、特にコプロセッサ３の動作に着目して説明する。図９はシステムＬＳＩ１において積和処理を行う際のフローチャートである。
【００３０】
図示するように、処理に先立ってまずデータ制御部２０は、情報レジスタ４０に各種情報を設定する（ステップＳ１０）。すなわち、上記説明したアドレスオフセット値、マップトレジスタ数、データ形式、及びベースアドレスが情報レジスタ４０に保持される。
【００３１】
次に、メインプロセッサ２のプロセッサコア１０から、図４で説明した構成を有する積和処理を行う旨の演算命令が、コプロセッサ３のデータ制御部２０に与えられる（ステップＳ１１）。データ制御部２０は、設定値情報保持部４１に保持されるマップトレジスタ数を参照して、演算命令におけるレジスタ番号に対応するレジスタがメモリマップトレジスタとして使用されているか否かを判定する（ステップＳ１２）。
【００３２】
ステップＳ１２において、使用されていないと判定された場合（ステップＳ１３、ＮＯ）、データ制御部２０はレジスタ番号に対応するレジスタからデータを読み出し、演算部２３へ出力する（ステップＳ１４）。またはレジスタ番号に対応するレジスタに対して、データを演算部２３へ出力するように命令する。
【００３３】
ステップＳ１２において、使用されていると判定された場合（ステップＳ１３、ＹＥＳ）、データ制御部２０は、第１メモリ１１において選択されたレジスタに対応する領域のアドレスを計算する（ステップＳ１５）。ステップＳ１５の詳細について図１０を用いて説明する。図１０はステップＳ１５の詳細を示すフローチャートである。
【００３４】
まずメモリアクセス部２１のアドレス発生部５０が、情報レジスタ４０のベースアドレス保持部４２及び設定情報保持部４１にそれぞれ保持されているベースアドレス及びアドレスオフセット値を読み出す（ステップＳ２０）。またデータ制御部２０は、情報レジスタ４０の設定情報保持部４１に保持されているメモリマップトレジスタ数を読み出す（ステップＳ２１）。
【００３５】
次にデータ制御部２０は、メモリマップトレジスタ数と、演算命令におけるレジスタ番号とから、当該レジスタがメモリマップトレジスタにおいて何番目のレジスタであるかを判定する（ステップＳ２２）。そしてレジスタ順位ｎをアドレス発生部５０へ出力する。
【００３６】
そしてアドレス発生部は、アドレスオフセット値とレジスタ順位ｎとを乗算し、乗算結果にベースアドレスを加算する（ステップＳ２３）。この加算結果が、第１メモリ１１におけるアドレスとなる。
【００３７】
図９に戻って説明を続ける。ステップＳ１５の後、メモリアクセス部２１の読み出し部６０は、第１メモリ１１においてステップＳ１５で得られたアドレスが割り当てられた領域からデータを読み出し、読み出したデータを演算部２３へ出力する（ステップＳ１６）。そして、演算部２３が与えられたデータについて積和処理を行う（ステップＳ１７）。
【００３８】
上記の処理の具体例を以下に説明する。例えばレジスタ群２２が図１１のとおりであったとする。図１１はレジスタ群２２のブロック図である。図示するように、１６個のレジスタのうち、レジスタ８〜１５がメモリマップトレジスタとして使用される。そして各レジスタのビット長は３２ビットであり、各レジスタと第１メモリ１１におけるアドレスとの対応関係は図７と同様であったとする。図１１においてレジスタ８〜１５の横に付記した数字は、当該レジスタが対応する第１メモリ１１の領域の先頭アドレスである。
【００３９】
まずデータ制御部２０は、情報レジスタ４０に各種情報を設定する（ステップＳ１０）。すなわち、設定情報保持部４１にアドレスオフセット値（ＯＦＳＴ）として“０ｘ０００００４”を格納し、マップトレジスタ数として８個、すなわちＭＡＳＫ＝“２ｂ０１１１”を格納する。更にベースアドレス保持部４２にベースアドレス（ＢＡＳＥ）として“０ｘ２０１０００”を格納する。ステップＳ１０の処理が行われた際の情報レジスタの概念図を図１２に示す。
【００４０】
次に、メインプロセッサ２のプロセッサコア１０から、積和処理を行う旨の演算命令がコプロセッサ３のデータ制御部２０に与えられる（ステップＳ１１）。演算命令の一例を図１３に示す。図１３は演算命令の概念図である。図示するように演算命令では、レジスタ番号“０００１”、“１０１０”が選択されている。すなわち、当該演算命令は、レジスタ０内のデータとレジスタ１０内のデータとの積和処理の命令である。
【００４１】
演算命令を受け取ったデータ制御部２０は、設定値情報保持部４１からメモリマップトレジスタ数を読み出す。すると、メモリマップトレジスタ数は８個であるから、レジスタ８〜１５はメモリマップトレジスタとして使用されていることが分かる。その結果データ制御部２０は、選択されたレジスタ０はメモリマップトレジスタではなく、レジスタ１０はメモリマップトレジスタであることを把握する（ステップＳ１２）。
【００４２】
従ってデータ制御部２０は、レジスタ０からデータを読み出して演算部２３へ出力する（ステップＳ１４）。他方、レジスタ１０に関しては、対応する第１メモリ１１における領域のアドレスを計算する（ステップＳ１５）。アドレス計算時のメモリアクセス部２１の様子を図１４に示す。図１４はメモリアクセス部２１のブロック図である。
【００４３】
まずアドレス発生部５０の加算器５２が、ベースアドレス保持部４２からベースアドレスＢＡＳＥ＝“０ｘ２０１０００”を読み出す。また乗算器５１が、設定情報保持部４１からアドレスオフセット値ＯＦＳＴ＝“０ｘ０００００４”を読み出す（ステップＳ２０）。またデータ制御部２０は、設定情報保持部４１からメモリマップトレジスタ数ＭＡＳＫ＝“２ｂ０１１１”を読み出す（ステップＳ２１）。なおステップＳ１２の処理においてすでにデータ制御部２０はメモリマップトレジスタ数を参照しているので、それを記憶していればステップＳ２１は省略することも出来る。前述のとおり、メモリマップトレジスタ数から、当該レジスタ１０がメモリマップトレジスタにおいて何番目のレジスタであるかを判定することが出来る（ステップＳ２２）。すると、図１１から明らかなように、レジスタ８を０番目とすると、レジスタ１０は２番目である。従ってデータ制御部２０は、レジスタ順位ｎ＝２を乗算器５１へ出力する。そしてアドレス発生部５０がアドレスを計算する（ステップＳ２３）。すなわち、乗算器５１が（ＯＦＳＴ×ｎ）＝“０ｘ０００００４”×２＝“０ｘ０００００８”を計算する。引き続き加算器５２が（ＢＡＳＥ＋“０ｘ０００００８”）＝“０ｘ２０１００８”を計算する。これにより、レジスタ１０に対応する第１メモリ１１におけるアドレスが算出される。
【００４４】
加算器５２における加算結果は読み出し部６０に与えられる。読み出し部６０は、第１メモリ１１におけるアドレス“０ｘ２０１００８”に保持されるデータを読み出し、演算部２３へ出力する（ステップＳ１６）。そして演算部２３にて積和処理が行われる。
【００４５】
以上のように、この発明の第１の実施形態に係るシステムＬＳＩであると、システムＬＳＩの処理効率を向上出来る。本実施形態に係るシステムＬＳＩは、コプロセッサ３において、メモリマップトレジスタ及びメモリアクセス部２１を設けている。そして、メモリマップトレジスタに対してアクセスがなされた場合には、メモリアクセス部２１がメインプロセッサ２の第１メモリ１１から直接データを読み出す。従って、データの読み出し時間を縮小出来、システムＬＳＩの処理効率を向上出来る。この点につき、図１５を用いて説明する。図１５は、メモリアクセス部２１を有しない従来の構成の場合と、本実施形態に係る構成の場合の、１回の積和処理に必要な処理のタイミングチャートである。
【００４６】
まず従来の構成の場合について説明する。まず、積和処理に必要な２つのデータのうち、一方はレジスタ内に保持され、他方は保持されていなかったとする。すると、まずレジスタから一方のデータについて読み出す。他方のデータはレジスタに保持されていないので、次のサイクルにてメインプロセッサからコプロセッサのレジスタにデータがロードされる。そして次のサイクルで、メインプロセッサからコプロセッサにロードされたデータをレジスタから読み出す。その後、ようやく積和処理が行われる。これらの処理を行うのに要した時間がΔｔ１であったとする。
【００４７】
これに対して本実施形態であると、まず演算命令を受けた際にデータ制御部２０がメモリマップトレジスタに対するアクセスか否かを判定する。そして、メモリマップトレジスタに対するものでない場合にはレジスタ群２２のいずれかからデータを読み出し、メモリマップトレジスタに対するものである場合にはメモリアクセス部２１が第１メモリ１１からデータを読み出す。この処理は同一サイクルにて行うことが出来、次のサイクルには積和処理を行うことが出来る。そのため、これらの処理に必要な時間Δｔ２は、時間Δｔ１に比べて大幅に短い。
【００４８】
音声コーデックなどのマルチメディア処理においてコプロセッサ３に対して与えられる命令は、演算命令よりもデータのロード命令の方が圧倒的に多いことが通常である。従って、演算器を豊富に用い、且つ複雑に配置したとしても、データの供給が間に合わないことが頻発する。しかし本実施形態であると、データロードの速度を従来に比べて飛躍的に短縮出来る。従って、特にマルチメディア処理用ＬＳＩにおいて処理効率を大幅に向上出来る。
【００４９】
また、マルチメディア処理用ＬＳＩにおいては、メインプロセッサ２及びコプロセッサ３はパイプライン処理を行うのが通常である。図１６は、メインプロセッサ２及びコプロセッサ３の処理の流れを示すタイミングチャートである。図示するように、メインプロセッサ２はＡステージからＥステージまでの５つの処理ステージを有している。またコプロセッサ３はＦステージからＪステージまでの５つの処理ステージを有している。各処理サイクルにおいて、ＡステージからＥステージまでの処理ステージとＦステージからＪステージまでの処理ステージは同時に行われる。そして、最初の処理ステージ（Ａステージ及びＦステージ）が終了すると、次のサイクルにてＡステージ及びＦステージの処理が再び開始される。
【００５０】
従来構成であると、例えば第３のサイクルにおいてコプロセッサで積和処理を行う場合、遅くとも直前の第２のサイクルにおいてデータがコプロセッサにロードされていなければならない。もしロードが間に合わなければ、第３のサイクルにおけるコプロセッサのパイプライン処理はストール（stall）する。一旦発生したストールは、後のサイクルに対しても悪影響を及ぼし、処理速度が遅延する。
【００５１】
しかし本実施形態に係る構成であると、直前のサイクルにおいてデータがロードされていなくても、当該サイクルにおいて直接メインプロセッサからデータをロードするため、パイプライン処理がストールすることを防止できる。
【００５２】
次に、この発明の第２の実施形態に係る演算装置及びプロセッサシステムについて説明する。本実施形態は、上記第１の実施形態において説明したコプロセッサ３を複数有するプロセッサシステムに関するものである。図１７は、本実施形態に係るシステムＬＳＩのブロック図である。
【００５３】
図示するように本実施形態に係るシステムＬＳＩ１は、メインプロセッサ２、４つのコプロセッサ３、及びバス４を備えている。メインプロセッサ２及びコプロセッサ３の構成及び動作は上記第１の実施形態で説明したとおりである。メインプロセッサ２とコプロセッサ３との間の命令及びデータはバス４を介して送受信される。勿論、コプロセッサ３の数は４個に限定されず、例えば２個、または８個以上であっても良い。
【００５４】
上記のように、複数のコプロセッサ３を有するＬＳＩであっても、上記第１の実施形態は適用出来る。また、コプロセッサ３の数が増えるほどメインプロセッサ２との間のデータロード命令は増えるため、上記第１の実施形態で説明した効果が顕著に得られる。
【００５５】
次に、この発明の第３の実施形態に係る映像処理装置について説明する。本実施形態は、上記第１または第２の実施形態に係るシステムＬＳＩ１を備えた映像処理用ＬＳＩに関するものである。図１８は本実施形態に係る映像処理用ＬＳＩのブロック図である。
【００５６】
図示するようにＬＳＩ７０は、全体制御用モジュール８０、ビデオ圧縮／伸張モジュール９０、オーディオ圧縮／伸張モジュール１００、動き検出モジュール１１０、ビットストリーム処理用モジュール１２０、インターフェース１３０、及びバス１４０を備えている。
【００５７】
全体制御用モジュール８０は、ビデオ圧縮／伸張モジュール９０、オーディオ圧縮／伸張モジュール１００、動き検出モジュール１１０、ビットストリーム処理用モジュール１２０、及びインターフェース１３０の動作を、バス１４０を介して制御する。
【００５８】
ビデオ圧縮／伸張モジュール９０は、映像データの圧縮及び伸張処理を行う。モジュール９０は、ビデオ処理用プロセッサ９１、ＶＬＣ／ＶＬＤ（Variable Length Coder/Decoder）ハードウェアエンジン９２、ＤＣＴ／Ｑ／ＩＤＣＴ／ＩＱハードウェアエンジン９３、及びＭＥ／ＭＣハードウェアエンジン９４を備えている。なお、ＤＣＴは離散コサイン変換、Ｑは量子化、ＩＤＣＴは逆離散コサイン変換、ＩＱは逆量子化、ＭＥは動き検出、ＭＣは動き補償の意味である。ビデオ処理用プロセッサ９１は、ハードウェアエンジン９２〜９４の動作を制御する。ハードウェアエンジン９２は、映像データのデコード及びエンコードを行う。ハードウェアエンジン９３は、特に離散コサイン変換、量子化、逆離散コサイン変換、及び逆量子化処理を行う。ハードウェアエンジン９４は、動き検出及び動き補償に関する処理を行う。
【００５９】
オーディオ圧縮／伸張モジュール１００は、音声データの圧縮及び伸張処理を行う。モジュール１００は、オーディオ処理用メインプロセッサ１０１、オーディオ処理用コプロセッサ１０２、及び入出力用ハードウェアエンジン１０３を備えている。メインプロセッサ１０１は、オーディオ処理用コプロセッサ１０２、及び入出力用ハードウェアエンジン１０３の動作を制御する。コプロセッサ１０２は、メインプロセッサ１０１から演算命令及びデータを受け取り、音声処理に必要な演算を行う。音声処理に必要な演算とは、例えば加算、減算、論理演算、シフト演算、連結シフト演算、積和演算、乗算等である。ハードウェアエンジン１０３は、音声データの入出力処理を司る。
【００６０】
動き検出モジュール１１０は、動き検出用プロセッサ１１１及びブロックマッチハードウェアエンジン１１２を備えている。動き検出用プロセッサ１１１はハードウェアエンジン１１２の動作を制御する。ハードウェアエンジン１１２は、例えば（８×８）ピクセルのブロックマッチング演算を行う。これにより映像中における物体の動きを検出し、その結果をハードウェアエンジン９４へ出力する。
【００６１】
ビットストリーム処理用モジュール１２０は、ビットストリーム処理用プロセッサ１２１及び入出力用ハードウェアエンジン１２１を備えている。プロセッサ１２１は、外部からストリーミングにより与えられるデータを処理し、また外部へストリーミングにより出力すべきデータを処理する。ハードウェアエンジン１２２はデータの入出力を司る。
【００６２】
インターフェース１３０は、ＬＳＩ７０と外部との間のデータの授受を司る。
【００６３】
上記構成において、オーディオ処理用メインプロセッサ１０１及びオーディオ処理用コプロセッサ１０２内に、上記第１または第２の実施形態で説明したメインプロセッサ２及びコプロセッサ３が設けられる。すなわち、音声の圧縮または伸張に必要なデータが第１メモリ１１及びレジスタ群２２に保持される。そして演算部２３において、上記の加算、減算、論理演算、シフト演算、連結シフト演算、積和演算、乗算等の演算処理が行われる。
【００６４】
以上のように、上記第１、第２の実施形態で説明した構成は、映像処理用ＬＳＩに適用することが出来る。そして、特に音声処理の処理効率を向上出来る。
【００６５】
上記説明したように、この発明の第１乃至第３の実施形態に係る構成であると、演算器に投入されるデータのスループットが上がり、コプロセッサの演算性能を向上出来る。また、演算に必要なデータがコプロセッサのレジスタに保持されていない場合であっても、演算命令内においてメモリマップトレジスタを指定することで、命令密度を向上出来る。すなわち、従来構成であると、必要なデータがレジスタに保持されていない場合には、必要なデータがレジスタにロードされてから改めて演算命令を発行する必要がある。しかし本実施形態であると、メモリマップトレジスタを指定することで、第１メモリ１１からデータを直接読み出して演算を行うことが出来る。
【００６６】
なお、上記実施形態ではレジスタ群２２に含まれるレジスタ数が１６個の場合について説明した。しかし、これは演算命令におけるレジスタ番号指定フィールドが４ビットであるからであり、例えば５ビットであればレジスタ数を３２個に出来、６ビットであれば６４個にすることが出来る。
【００６７】
また上記実施形態では、図６において一方のみがメモリマップトレジスタに対応している場合について説明したが、勿論、２つのデータの両方がメモリマップトレジスタに対応していても良いし、逆に両方がメモリマップトレジスタに対応していない場合であっても良い。また演算命令によって選択されるレジスタ数は２個に限らず、３個以上で有っても良い。
【００６８】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【００６９】
【図１】この発明の第１の実施形態に係るシステムＬＳＩのブロック図。
【図２】この発明の第１の実施形態に係るシステムＬＳＩの備える演算部のブロック図。
【図３】この発明の第１の実施形態に係るシステムＬＳＩの備えるメモリアクセス部のブロック図。
【図４】この発明の第１の実施形態に係るシステムＬＳＩにおいてメインプロセッサの発行する命令の構成を示す概念図。
【図５】この発明の第１の実施形態に係るシステムＬＳＩの備えるレジスタ群及び演算部のブロック図。
【図６】この発明の第１の実施形態に係るシステムＬＳＩの備えるレジスタ群、演算部、及びメモリアクセス部のブロック図。
【図７】この発明の第１の実施形態に係るシステムＬＳＩの備えるメモリマップトレジスタと、第１メモリのメモリ空間との対応関係を示す概念図。
【図８】この発明の第１の実施形態に係るシステムＬＳＩの備えるレジスタ群のブロック図。
【図９】この発明の第１の実施形態に係るシステムＬＳＩの動作を示すフローチャート。
【図１０】この発明の第１の実施形態に係るシステムＬＳＩにおいて、アドレス計算のフローチャート。
【図１１】この発明の第１の実施形態に係るシステムＬＳＩの備えるレジスタ群のブロック図。
【図１２】この発明の第１の実施形態に係るシステムＬＳＩの備える情報レジスタの概念図。
【図１３】この発明の第１の実施形態に係るシステムＬＳＩにおいてメインプロセッサの発行する命令の構成を示す概念図。
【図１４】この発明の第１の実施形態に係るシステムＬＳＩの備えるメモリアクセス部のブロック図。
【図１５】この発明の第１の実施形態に係るシステムＬＳＩと、従来構成のＬＳＩの動作の流れを示すタイミングチャート。
【図１６】この発明の第１の実施形態に係るシステムＬＳＩのパイプライン処理の流れを示すタイミングチャート。
【図１７】この発明の第２の実施形態に係るシステムＬＳＩのブロック図。
【図１８】この発明の第３の実施形態に係る映像処理用ＬＳＩのブロック図。
【符号の説明】
【００７０】
１…システムＬＳＩ、２…メインプロセッサ、３…コプロセッサ、４…バス、１０…プロセッサコア、１１…第１メモリ、１２…第２メモリ、１３…データ転送部、２０…データ制御部、２１…メモリアクセス部、２２…レジスタ群、２３…演算部、３０、５１…乗算器、３１、５２…加算器、３２…蓄積部、４０…情報レジスタ、４１…設定情報保持部、４２…ベースアドレス保持部、５０…アドレス発生部、６０…読み出し部
【図１】
2007299279.tif 000003
【図２】
2007299279.tif 000004
【図３】
2007299279.tif 000005
【図４】
2007299279.tif 000006
【図５】
2007299279.tif 000007
【図６】
2007299279.tif 000008
【図７】
2007299279.tif 000009
【図８】
2007299279.tif 000010
【図９】
2007299279.tif 000011
【図１０】
2007299279.tif 000012
【図１１】
2007299279.tif 000013
【図１２】
2007299279.tif 000014
【図１３】
2007299279.tif 000015
【図１４】
2007299279.tif 000016
【図１５】
2007299279.tif 000017
【図１６】
2007299279.tif 000018
【図１７】
2007299279.tif 000019
【図１８】
2007299279.tif 000020