(57)【特許請求の範囲】
【請求項１】
中央処理回路と、
前記中央処理回路により実行されるプログラムを格納するメモリ回路と、
所定時間の経過に伴って前記中央処理回路に割り込み要求を発行するタイマ回路とを備え、
前記中央処理回路は、条件付分岐命令に関して分岐条件の成立／不成立に拘わらず強制的にジャンプ処理を行う強制ジャンプの有効／無効を示すレジスタを有し、条件付分岐命令の実行時に、前記レジスタが無効を示す状態であれば、分岐条件が成立した場合にのみジャンプ処理を行い、前記レジスタが有効を示す状態であれば、分岐条件の成立／不成立に拘わらず分岐条件が成立したものとしてジャンプ処理を行い、
前記レジスタは、前記タイマ回路の割り込み要求の発行に伴って無効を示す状態から有効を示す状態に遷移することを特徴とするプロセッサ。
【請求項２】
請求項１に記載のプロセッサにおいて、
前記メモリ回路に格納されるプログラムは、条件付分岐命令を用いたループ処理に関して条件付分岐命令の分岐条件の成立がループ処理の終了条件となるように生成されることを特徴とするプロセッサ。
【請求項３】
請求項１または請求項２に記載のプロセッサにおいて、
前記プロセッサは、圧縮符号化された音声データを復号する音声復号装置を構成することを特徴とするプロセッサ。
【請求項４】
請求項１または請求項２に記載のプロセッサにおいて、
前記プロセッサは、複数のプロセッサにより構成されるデータ処理システムで使用されることを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに関し、特に、プロセッサにおいて中央処理回路（ＣＰＵ：Central Processing Unit）を異常状態から正常状態に復帰させる技術に関する。
【背景技術】
【０００２】
圧縮符号化されたストリーム（ビデオストリーム／オーディオストリーム）を復号するデコーダシステムにおいては、伝送上の原因でストリームにエラーが混入されていることがあるため、プロセッサによるストリーム解析が実施される。
【０００３】
図７は、プロセッサによるストリーム解析の様子を示している。例えば、オーディオストリームに関しては、プロセッサのＣＰＵがプログラムに従って動作することで、ＰＥＳヘッダ（Packetized Elementary Stream Header）およびＥＳ（Elementary Stream）が順次解析される。ＰＥＳヘッダについては、一般に、パラメータ値の範囲チェックが実施されることで、ストリームにおけるエラーの混入が検出されてＣＰＵのハングアップが回避される。ＥＳについては、音声圧縮符号化方式（ＭＰＥＧ（Moving Picture Experts Group）やＤｏｌｂｙ−ＡＣ３等）に応じてＥＳの構造が異なり、任意に値を制限できない場合があるため、ストリームに混入されているエラーのパターンによっては、ストリーム解析が延々と実施され、結果的にＣＰＵのハングアップとして見える場合がある。
【０００４】
一般に、デコーダシステムで使用されるプロセッサにおいては、いかなるストリームに対してもＣＰＵがハングアップ状態で停滞することなく動作することが要求される。ＣＰＵのハングアップの検出は、所定時間の経過に伴って割り込み要求を発行するウォッチドッグタイマを使用することで実現可能である。また、エラーが混入されたストリームについては、デコード処理をスキップして前回のデコード処理結果を使用する等により対処する。従って、ＣＰＵのハングアップが検出された場合、ＣＰＵを初期状態（リセット直後の状態）ではなく特定の正常状態に復帰させる必要がある。
【０００５】
図８は、デコーダシステムの一例を示している。デコーダシステム１０は、マルチプロセッサ構成を採用しており、システム全体を管理するためのメインプロセッサ２０と、ビデオストリームをデコードするためのビデオプロセッサ３０と、オーディオストリームをデコードするためのオーディオプロセッサ４０とを備えて構成されている。ビデオプロセッサ３０およびオーディオプロセッサ４０は、メインプロセッサ２０の初期化指示や動作指示等に従って各種処理を実施する。
【０００６】
図９は、図８のオーディオプロセッサの動作を示している。図１０は、図８のオーディオプロセッサにおけるスタック構造を示している。オーディオプロセッサ４０においては、リセット解除に伴ってスタートアップルーチンが実行され、続いて、メインルーチン（ｍａｉｎ）が実行される。メインルーチンでは、メインプロセッサ２０からの初期化指示に従って初期化処理（ステップＳ１１）が実行され、その後、ウォッチドッグタイマの設定（ステップＳ１２）、シーケンス管理タスク（ステップＳ１３）、ＥＳ抽出タスク（ステップＳ１４）およびデコード処理タスク（ステップＳ１５）で構成されるループ処理が実行される。シーケンス管理タスクでは、メインプロセッサ２０からの動作指示に基づいて状態遷移の判断が実施される。ＥＳ抽出タスクでは、ＰＥＳヘッダの解析やＥＳの抽出が実施される。デコード処理タスクでは、ＥＳの解析やＥＳのデコードが実施される。例えば、デコード処理タスクは、ＤｅｃＴａｓｋＤｅｃｏｄｅ、ｄｅｃｏｄｅ、ｆｎｃ１、ｆｎｃ２と関数をネストして構成されている。デコード処理タスクの実行時には、図１０に示すように、実行対象の関数が変わる度にオーディオプロセッサ４０のＲＡＭ（Random Access Memory）のユーザスタック領域に関数の引数、関数でのローカル変数およびリターンアドレス等が格納される。なお、オーディオプロセッサ４０のＲＡＭには、ユーザスタック領域とは別に、グローバル変数を格納する領域や割り込みルーチンの実行時に使用されるＩＲＱスタック領域も設けられている。
【０００７】
例えば、ｆｎｃ２内のループ処理の実行中に、ウォッチドッグタイマに設定された時間が経過してウォッチドッグタイマの割り込み要求が発行されると、ｆｎｃ２内のループ処理の実行が中断されて割り込みルーチンが実行される（図９（１））。割り込みルーチンでは、ＣＰＵに対して発行された割り込み要求がウォッチドッグタイマの割り込み要求であるため、ＤＭＡ（Direct Memory Access）転送完了後処理（ステップＳ２１）およびメインプロセッサ指示処理（ステップＳ２２）は実行されず、ＣＰＵに対して発行された割り込み要求がウォッチドッグタイマの割り込み要求であるか否かを判定する判定処理（ステップＳ２３）が実行される。なお、ＣＰＵに対して発行された割り込み要求がメインプロセッサ２０およびオーディオプロセッサ４０間のＤＭＡ転送の完了に伴う割り込み要求である場合には、ＤＭＡ転送完了後処理が実行される。また、ＣＰＵに対して発行された割り込み要求がメインプロセッサ２０からの動作指示に伴う割り込み要求である場合には、メインプロセッサ指示処理が実行される。
【０００８】
ＣＰＵに対して発行された割り込み要求がウォッチドッグタイマの割り込み要求であると判定されると、ＣＰＵが復帰すべき正常状態に関する情報がないため、ＣＰＵが初期状態（メインルーチンの実行開始時点の状態）に戻される（図９（２））。なお、ＣＰＵに対して発行された割り込み要求がウォッチドッグタイマの割り込み要求ではないと判定された場合には、ｆｎｃ２内のループ処理の実行が再開される。デコーダシステム１０では、システム全体として処理シーケンスが組まれているため、オーディオプロセッサ４０のＣＰＵのみが初期状態に戻されると、その他のプロセッサとの整合性がとれなくなり、システム全体で処理が破綻してしまう可能性がある。
【０００９】
なお、特許文献１には、マイクロコンピュータにおいて、ＣＰＵのデータ（プログラムカウンタやレジスタの値）を退避用メモリに退避させ、ＣＰＵの暴走検出後に退避用メモリのデータを復帰させることで、ＣＰＵの暴走状態から正常状態への復帰を実現する技術が開示されている。
【特許文献１】特開平９−１９０３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
マルチプロセッサ構成のデータ処理システムで使用されるプロセッサでは、ＣＰＵがハングアップ状態に陥った場合にＣＰＵを初期状態ではなく特定の正常状態に復帰させる必要がある。しかしながら、従来のプロセッサでは、ウォッチドッグタイマを使用してＣＰＵのハングアップを検出できるが、ＣＰＵのハングアップが検出された場合にはＣＰＵを初期状態に戻すしかなかった。
【００１１】
また、特許文献１に開示された技術では、退避用メモリを設ける必要があるため、コストが増大するという問題がある。また、退避用メモリにはプログラムカウンタやレジスタの情報のみが退避されるため、グローバル変数やスタックの情報が確保される保証がない。
【００１２】
本発明は、このような問題に鑑みてなされたものであり、プロセッサにおいて中央処理回路（ＣＰＵ）を異常状態から所望の正常状態に復帰させる機能を簡易な回路構成により実現することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様では、プロセッサは、中央処理回路と、中央処理回路により実行されるプログラムを格納するメモリ回路と、所定時間の経過に伴って中央処理回路に割り込み要求を発行するタイマ回路とを備え、中央処理回路は、条件付分岐命令に関して分岐条件の成立／不成立に拘わらず強制的にジャンプ処理を行う強制ジャンプの有効／無効を示すレジスタを有し、条件付分岐命令の実行時に、レジスタが無効を示す状態であれば、分岐条件が成立した場合にのみジャンプ処理を行い、レジスタが有効を示す状態であれば、分岐条件の成立／不成立に拘わらず分岐条件が成立したものとしてジャンプ処理を行い、レジスタは、タイマ回路の割り込み要求の発行に伴って無効を示す状態から有効を示す状態に遷移する。
本発明に関連する技術において、プロセッサは、中央処理回路と、中央処理回路により実行されるプログラムを格納するメモリ回路とを備える。中央処理回路は、条件付分岐命令に関して強制ジャンプの有効／無効を示すレジスタを有し、条件付分岐命令の実行時にレジスタが有効を示す状態であれば分岐条件が成立したものと判定する。また、プロセッサは、所定時間の経過に伴って中央処理回路に割り込み要求を発行するタイマ回路を備える。レジスタは、タイマ回路の割り込み要求の発行に伴って無効を示す状態から有効を示す状態に遷移する。更に、メモリ回路に格納されるプログラムは、条件付分岐命令を用いたループ処理に関して条件付分岐命令の分岐条件の成立がループ処理の終了条件となるように生成される。
【００１４】
以上のようなプロセッサでは、中央処理回路のループ処理の実行時間が長い場合には、タイマ回路により割り込み要求が発行され、レジスタが無効を示す状態から有効を示す状態に遷移する。中央処理回路は、レジスタが有効を示す状態であれば条件付分岐命令の実行時に分岐条件が成立したものと判定する。また、中央処理回路により実行されるプログラムは、ループ処理に関して条件付分岐命令の分岐条件の成立がループ処理の終了条件となるように生成される。従って、中央処理回路によるループ処理の実行を強制的に終了させることができ、中央処理回路を異常状態から所望の正常状態に復帰させることができる。中央処理回路のデータを退避するための回路（退避用メモリ等）を設ける必要がないため、中央処理回路を異常状態から所望の正常状態に復帰させる機能を簡易な回路構成により実現可能である。
【発明の効果】
【００１５】
プロセッサにおいて中央処理回路を異常状態から所望の正常状態に復帰させる機能を簡易な回路構成により実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図面を用いて説明する。
【００１７】
図１は、本発明の一実施形態を示している。本発明の一実施形態におけるプロセッサ１００は、例えば、図８のデコーダシステム１０と同様のマルチプロセッサ構成を採用したデコーダシステムにおいてオーディオプロセッサを具現しており、プログラムメモリ１１０と、データメモリ１２０と、ウォッチドッグタイマ１３０と、ＣＰＵ１４０とを備えて構成されている。プログラムメモリ１１０、データメモリ１２０、ウォッチドッグタイマ１３０およびＣＰＵ１４０は、バス１５０を介して相互に接続されており、これらの間でデータの授受が可能である。
【００１８】
プログラムメモリ１１０は、ＣＰＵ１４０により実行されるプログラム（アセンブラ命令列）等が格納されるＲＯＭ（Read Only Memory）である。なお、プログラムメモリ１１０に格納されるプログラムは、条件付分岐命令を用いたループ処理に関して条件付分岐命令の分岐条件の成立がループ処理の終了条件となるように生成されている。このようなプログラム生成（コーディング）は、例えば、コンパイラのプラグマオプションを使用して実現される。組み込み用途等に最も使用されるＣ言語であれば、Ｃ言語の文法レベルでこのようなプログラム生成が可能であるため、コンパイラへの負担は少なくて済む。また、ここでは、条件付分岐命令の分岐条件の成立をループ処理の終了条件とする制約は、プログラム全体に対して適用されるものとするが、ＣＰＵ１４０のハングアップが予想される箇所に対してのみ適用されてもよい。
【００１９】
データメモリ１２０は、デコーダシステムのメインプロセッサからＤＭＡ転送されるオーディオストリームやデコーダシステムのメインプロセッサにＤＭＡ転送されるＰＣＭ（Pulse Code Modulation）データ等が格納されるＲＡＭである。また、データメモリ１２０は、ＣＰＵ１４０のワークメモリ（スタック領域等）としても使用される。
【００２０】
ウォッチドッグタイマ１３０は、ＣＰＵ１４０により設定された時間の経過に伴って割り込み要求信号１３１を活性化させる。なお、ＣＰＵ１４０は、ウォッチドッグタイマ１３０の割り込み要求信号１３１を含む複数の割り込み要求信号を受けており、活性化された割り込み要求信号の種類に応じて割り込み処理を実行する。
【００２１】
ＣＰＵ１４０は、アドレスレジスタ１４１と、プログラムカウンタ（ＰＣ：Program Counter）１４２と、データレジスタ１４３と、命令レジスタ１４４と、命令デコーダ１４５と、制御回路１４６と、ＡＬＵ（Arithmetic and Logic Unit）１４７と、条件フラグレジスタ１４８と、強制ジャンプレジスタ１４９とを備えて構成されている。
【００２２】
ＣＰＵ１４０においては、アドレスレジスタ１４１を介してプログラムカウンタ１４２に設定されたアドレスが出力され、制御回路１４６によりリードアクセスを示す制御信号が出力されることで、プログラムメモリ１１０から命令コードが読み出されてデータレジスタ１４３を介して命令レジスタ１４４に格納される。そして、命令デコーダ１４５により、命令レジスタ１４４に格納された命令コードがデコードされ、デコード結果に応じて各種命令が実行される。演算命令の実行時には、命令デコーダ１４５から制御回路１４６を介してＡＬＵ１４７に演算の指示が出される。この結果、ＡＬＵ１４７により、データレジスタ１４３（汎用レジスタ）に格納されたデータを用いた演算が実行され、演算結果がデータレジスタに書き戻される。一般には、データレジスタ１４３に書き戻されたＡＬＵ１４７の演算結果はデータメモリ１２０に書き込まれる。また、ＡＬＵ１４７の演算結果に応じて、条件フラグレジスタ１４８のゼロフラグ、キャリーフラグおよびオーバフローフラグ等が設定される。条件フラグレジスタ１４８は、命令デコーダ１４５により条件付分岐命令の実行時に分岐条件の成立／不成立の判定に使用される。条件付分岐命令の実行時には、強制ジャンプレジスタ１４９が“０”にリセットされていれば、条件フラグレジスタ１４８に基づいて分岐条件の成立／不成立が判定され、分岐条件が成立したと判定された場合、命令により指定されるジャンプ先アドレスがプログラムカウンタ１４２に設定される。一方、強制ジャンプレジスタ１４９が“１”にセットされていれば、条件フラグレジスタ１４８とは無関係に分岐条件が成立したものとして、強制的にジャンプ先アドレスがプログラムカウンタ１４２に設定される。
【００２３】
図２は、図１のオーディオプロセッサの動作を示している。図３は、図２のデコード処理タスクの詳細を示している。図４は、図１の強制ジャンプレジスタの状態遷移の様子を示している。なお、オーディオプロセッサ１００の動作（図２）を説明するにあたって、オーディオプロセッサ４０の動作（図９）と同様の動作については、詳細な説明を省略する。
【００２４】
オーディオプロセッサ１００においては、リセット解除に伴ってスタートアップルーチンが実行され、続いて、メインルーチン（ｍａｉｎ）が実行される。メインルーチンでは、初期化処理（ステップＳ１１）が実行され、その後、ウォッチドッグタイマ１３０の設定（ステップＳ１２）、シーケンス管理タスク（ステップＳ１３）、ＥＳ抽出タスク（ステップＳ１４）およびデコード処理タスク（ステップＳ１５’）で構成されるループ処理が実行される。デコード処理タスクは、ＤｅｃＴａｓｋＤｅｃｏｄｅ’、ｄｅｃｏｄｅ、ｆｎｃ１、ｆｎｃ２と関数をネストして構成されている。
【００２５】
例えば、ｆｎｃ２内のループ処理の実行中に、ウォッチドッグタイマ１３０に設定された時間が経過してウォッチドッグタイマ１３０の割り込み要求信号１３１が活性化されると、ｆｎｃ２内のループ処理の実行が中断されて割り込みルーチンが実行される（図２（１））。割り込みルーチンでは、ＣＰＵ１４０に対して発行された割り込み要求がウォッチドッグタイマ１３０の割り込み要求であるため、ＤＭＡ転送完了後処理（ステップＳ２１）およびメインプロセッサ指示処理（ステップＳ２２）は実行されず、ＣＰＵ１４０に対して発行された割り込み要求がウォッチドッグタイマ１３０の割り込み要求であるか否かを判定する判定処理（ステップＳ２３）が実行される。ＣＰＵ１４０に対して発行された割り込み要求がウォッチドッグタイマ１３０の割り込み要求であると判定されると、強制ジャンプレジスタ１４９が“１”にセットされ（ステップＳ２４）、その後、ｆｎｃ２内のループ処理の実行が再開される（図２（２））。強制ジャンプレジスタ１４９が“１”にセットされたことで、これ以降、条件付分岐命令の実行時には、分岐条件が成立したものと判定され、条件付分岐命令により指定されるジャンプ先アドレスがプログラムカウンタ１４２に設定される。これにより、実行対象の関数がｆｎｃ１、ｄｅｃｏｄｅ、ＤｅｃＴａｓｋＤｅｃｏｄｅ’と順次戻される（図２（３））。
【００２６】
ｄｅｃｏｄｅ（ステップＳ３１）の実行が終了して実行対象の関数がｄｅｃｏｄｅからＤｅｃＴａｓｋＤｅｃｏｄｅ’に戻されると、強制ジャンプレジスタ１４９が“１”にセットされているか否かを判定する判定処理（ステップＳ３２）が実行される。強制ジャンプレジスタ１４９が“１”にセットされていると判定されると、デコード処理で使用される変数の初期化等を実施するためのデコード処理タスク用初期化処理（ステップＳ３３）が実行され、その後、強制ジャンプレジスタ１４９が“０”にリセットされる（ステップＳ３４）。これにより、ＤｅｃＴａｓｋＤｅｃｏｄｅ’の実行が終了して実行対象の関数がＤｅｃＴａｓｋＤｅｃｏｄｅ’からｍａｉｎに戻される。なお、強制ジャンプレジスタ１４９が“１”にセットされていないと判定された場合には、デコード処理タスク用初期化処理等が実行されることなくＤｅｃＴａｓｋＤｅｃｏｄｅ’の実行が終了して実行対象の関数がＤｅｃＴａｓｋＤｅｃｏｄｅ’からｍａｉｎに戻される。このように、強制ジャンプレジスタ１４９は、ウォッチドッグタイマ１３０の割り込み要求の発行に伴って“１”にセットされ（図４（１））、メインルーチンの復帰ポイントで“０”にリセットされる（図４（２））。
【００２７】
図５は、図１のオーディオプロセッサのプログラムに適用されるループ処理の構成例を示している。図５（ａ）のループ処理は、変数Ａの値が０であるか否かを判定する判定処理と演算処理とで構成され、判定処理において変数Ａの値が０であると判定された場合にループ処理が終了するものである。判定処理は、比較命令「ＣＭＰ  Ｒ０，＃０」および条件付分岐命令「ＢＥＱ  ＬＢＬ」からなる命令列で実現される。オーディオプロセッサ１００（ＣＰＵ１４０）において、比較命令「ＣＭＰ  Ｒ０，＃０」の実行時には、データレジスタ１４３における汎用レジスタＲ０の値（変数Ａの値に相当）が０であれば条件フラグレジスタ１４８のゼロフラグが“１”に設定され、データレジスタ１４３における汎用レジスタＲ０の値が０でなければ条件フラグレジスタ１４８のゼロフラグが“０”に設定される。強制ジャンプレジスタ１４９が“０”にリセットされている場合、条件付分岐命令「ＢＥＱ  ＬＢＬ」の実行時には、条件フラグレジスタ１４８のゼロフラグが“１”に設定されていればラベルＬＢＬのアドレス（ループ処理内の判定処理または演算処理を実現する命令以外の命令のアドレス）がプログラムカウンタ１４２に設定され、条件フラグレジスタ１４８のゼロフラグが“０”に設定されていればループ処理内の演算処理を実現する命令のアドレスがプログラムカウンタ１４２に設定される。一方、強制ジャンプレジスタ１４９が“１”にセットされている場合、条件付分岐命令「ＢＥＱ  ＬＢＬ」の実行時には、条件フラグレジスタ１４８のゼロフラグが“１”に設定されているものとして、強制的にラベルＬＢＬのアドレスがプログラムカウンタ１４２に設定される。
【００２８】
図５（ｂ）のループ処理は、変数Ａの値が０ではないか否かを判定する判定処理と演算処理とで構成され、判定処理において変数Ａの値が０ではないと判定された場合にループ処理が終了するものである。判定処理は、比較命令「ＣＭＰ  Ｒ０，＃０」および条件付分岐命令「ＢＮＥ  ＬＢＬ」からなる命令列で実現される。オーディオプロセッサ１００（ＣＰＵ１４０）において、強制ジャンプレジスタ１４９が“０”にリセットされている場合、条件付分岐命令「ＢＮＥ  ＬＢＬ」の実行時には、条件フラグレジスタ１４８のゼロフラグが“０”に設定されていればラベルＬＢＬのアドレス（ループ処理内の判定処理または演算処理を実現する命令以外の命令のアドレス）がプログラムカウンタ１４２に設定され、条件フラグレジスタ１４８のゼロフラグが“１”に設定されていればループ処理内の演算処理を実現する命令のアドレスがプログラムカウンタ１４２に設定される。一方、強制ジャンプレジスタ１４９が“１”にセットされている場合、条件付分岐命令「ＢＮＥ  ＬＢＬ」の実行時には、条件フラグレジスタ１４８のゼロフラグが“０”に設定されているものとして、強制的にラベルＬＢＬのアドレスがプログラムカウンタ１４２に設定される。
【００２９】
オーディオプロセッサ１００においてＣＰＵ１４０により実行されるプログラム（プログラムメモリ１１０に格納されるプログラム）には、条件付分岐命令を用いたループ処理に関して、図５（ａ）、（ｂ）のループ処理のように、条件付分岐命令の分岐条件の成立がループ処理の終了条件となるようなループ処理が適用される。
【００３０】
図６は、図１のオーディオプロセッサのプログラムに適用されないループ処理の構成例を示している。図６（ａ）のループ処理は、演算処理と変数Ａの値が０であるか否かを判定する判定処理とで構成され、判定処理において変数Ａの値が０ではないと判定された場合にループ処理が終了するものである。図６（ｂ）のループ処理は、演算処理と変数Ａの値が０ではないか否かを判定する判定処理とで構成され、判定処理において変数Ａの値が０であると判定された場合にループ処理が終了するものである。
【００３１】
オーディオプロセッサ１００においてＣＰＵ１４０により実行されるプログラムには、条件付分岐命令を用いたループ処理に関して、図６（ａ）、（ｂ）のループ処理のように、条件付分岐命令の分岐条件の不成立がループ処理の終了条件となるようなループ処理は適用されない。
【００３２】
以上のような本発明の一実施形態では、オーディオストリームにおけるエラーの混入に起因してＣＰＵ１４０がハングアップ状態に陥った場合、ウォッチドッグタイマ１３０の割り込み要求が発行されて強制ジャンプレジスタ１４９が“１”にセットされ、それ以降、条件付分岐命令の実行時には、命令により指定されるジャンプ先アドレスへの強制ジャンプが実行される。従って、いかなるオーディオストリームに対してもＣＰＵ１４０がハングアップ状態で停滞することなく動作することが可能になる。結果的に、あらゆるストリームパターンの膨大な検証を実施しなくても、ＣＰＵ１４０のハングアップに対する普遍的な回避策が実現されているため、システム開発工数の削減が可能になる。また、従来のスタックのポップ／プッシュ動作が踏襲されるため、退避用メモリ等を設ける必要はなく、ＣＰＵ１４０をハングアップ状態から所望の正常状態に復帰させる機能を簡易な回路構成により実現できる。
【００３３】
以上、本発明について詳細に説明してきたが、前述の実施形態は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態を示す説明図である。
【図２】図１のオーディオプロセッサの動作を示す説明図である。
【図３】図２のデコード処理タスクの詳細を示す説明図である。
【図４】図１の強制ジャンプレジスタの状態遷移の様子を示す説明図である。
【図５】図１のオーディオプロセッサのプログラムに適用されるループ処理の構成例を示す説明図である。
【図６】図１のオーディオプロセッサのプログラムに適用されないループ処理の構成例を示す説明図である。
【図７】プロセッサによるストリーム解析の様子を示す説明図である。
【図８】デコーダシステムの一例を示す説明図である。
【図９】図８のオーディオプロセッサの動作を示す説明図である。
【図１０】図８のオーディオプロセッサにおけるスタック構造を示す説明図である。
【符号の説明】
【００３５】
１００‥プロセッサ；１１０‥プログラムメモリ；１２０‥データメモリ；１３０‥ウォッチドッグタイマ；１３１‥割り込み要求信号；１４０‥ＣＰＵ；１４１‥アドレスレジスタ；１４２‥プログラムカウンタ；１４３‥データレジスタ；１４４‥命令レジスタ；１４５‥命令デコーダ；１４６‥制御回路；１４７‥ＡＬＵ；１４８‥条件フラグレジスタ；１４９‥強制ジャンプレジスタ；１５０‥バス
【図１】
0005145945.tif 000002
【図２】
0005145945.tif 000003
【図３】
0005145945.tif 000004
【図４】
0005145945.tif 000005
【図５】
0005145945.tif 000006
【図６】
0005145945.tif 000007
【図７】
0005145945.tif 000008
【図８】
0005145945.tif 000009
【図９】
0005145945.tif 000010
【図１０】
0005145945.tif 000011