(57)【要約】【課題】  特定周波数帯域のノイズを低減でき、ラジオ受信機などの機器への前記ノイズによる悪影響を無くすことができるコンパイラを提供することを目的とする。【解決手段】  コンパイラ２に、原始プログラムから生成される中間コードよりループ部分を検出するループ検出部６と、このループ検出部６によりループ部分が検出されると、このループ部分のループ処理プログラムを生成するループプログラム処理部７と、ループプログラム処理部７により生成されたループ処理プログラムを、このループ処理プログラムの中にｎｏｐ命令をｎ回追加したプログラムに変更するｎｏｐ命令追加処理部１１を備える。この処理によれば、ループ処理プログラムの処理に要する命令ステップ数を変更することによって、前記処理に要する周期を特定周波数帯からずらすことができ、ループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減できる。【選択図】      図１
2005050124.tif 000002
【特許請求の範囲】
【請求項１】
原始プログラムから生成される中間コードよりループ部分を検出するループ検出部と、このループ検出部によりループ部分が検出されると、このループ部分のループ処理プログラムを生成するループプログラム処理部を備えたコンパイラであって、
前記ループプログラム処理部により生成されたループ処理プログラムの処理に要する命令ステップ数を変更するループ処理変更処理部を備えること
を特徴とする特定周波数帯域のノイズを低減できるコンパイラ。
【請求項２】
前記ループ処理変更処理部では、前記ループ処理プログラムにウエイト動作を追加することにより、ループ処理プログラムの処理に要する命令ステップ数を変更すること
を特徴とする請求項１に記載の特定周波数帯域のノイズを低減できるコンパイラ。
【請求項３】
前記ループ処理変更処理部では、前記ループ処理プログラムにおいて、ループ内で実行される処理動作を連続で複数回実行することにより、ループ処理プログラムの処理に要する命令ステップ数を変更すること
を特徴とする請求項１に記載の特定周波数帯域のノイズを低減できるコンパイラ。
【請求項４】
前記ループ処理変更処理部では、反復動作により変化するフラグを有し、前記ループ処理プログラムにウエイト動作を追加し、その後、前記フラグの状態により、追加したウエイト動作の前後あるいはウエイト動作の途中に分岐することにより、ループ処理プログラムの処理に要する命令ステップ数を変更すること
を特徴とする請求項１に記載の特定周波数帯域のノイズを低減できるコンパイラ。
【請求項５】
前記ループ処理プログラムの処理に要する命令ステップ数を計算し、作成されるプログラムの実行周波数と算出された命令ステップ数により、前記ループ処理プログラムの処理に要する周期を計算するループ周期計算部と、
前記ループ周期計算部により算出された周期が、特定周波数帯域か否かを判定するノイズ周期判定部
とを備え、
前記ノイズ周期判定部において前記特定周波数帯域と判定されると、前記ループ処理変更処理部により、前記ループ処理プログラムの処理に要する周期を前記特定周波数帯域から変更すること
を特徴とする請求項１〜請求項４のいずれかに記載の特定周波数帯域のノイズを低減できるコンパイラ。
【請求項６】
一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、
アドレス信号およびアクセス信号を出力するＣＰＵと、
前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、
前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は複数サイクルの期間、ウエイト信号を出力する一致検出回路と
を備え、
前記ウエイト命令により、前記ＣＰＵをスリープ状態とすること
を特徴とする特定周波数帯域のノイズを低減できるコンピュータ装置。
【請求項７】
一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、
クロック信号に同期して動作を行い、アドレス信号およびアクセス信号を出力するＣＰＵと、
前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、
前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は複数サイクルの期間、ウエイト信号を出力する一致検出回路と
を備え、
前記ウエイト信号により、前記ＣＰＵに供給されるクロック信号を停止すること
を特徴とする特定周波数帯域のノイズを低減できるコンピュータ装置。
【請求項８】
一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、
クロック信号に同期して動作を行い、アドレス信号およびアクセス信号を出力するＣＰＵと、
前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、
前記メモリから出力された過去、複数回分のプログラムを記憶するデータ制御回路と、
前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は一致検出信号を出力する一致検出回路と
を備え、
前記一致検出回路より出力された一致検出信号により、前記ＣＰＵから前記メモリへのアクセス信号をディスネーブルとして、前記データ制御回路より前記ＣＰＵに、前記記憶されたプログラムを供給すること
を特徴とする特定周波数帯域のノイズを低減できるコンピュータ装置。
【請求項９】
前記一致検出回路より出力された一致検出信号により、前記データ制御回路より前記ＣＰＵにプログラムを供給する際にウエイト動作を付加すること
を特徴とする請求項８に記載の特定周波数帯域のノイズを低減できるコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ループ処理を有するプログラムを生成するコンパイラ、およびループ処理を有するプログラムを実行するコンピュータ装置に関するものである。
【背景技術】
【０００２】
コンパイラはプログラミング言語で記述された原始プログラムを翻訳処理して、所定の計算機で実行する目的プログラムを生成する。このために、コンパイラのプログラム解析部は、まず原始プログラムを解析し、解析結果に従って中間コードを生成し、続いて最適化処理部で中間コードについてプログラムの実行効率を改善するために、ループの融合等の最適化処理を行って最適化中間コードとし、これをコード生成部で目的プログラムに変換する。
【０００３】
図１４は従来のコンパイラの構成を示すブロック図である。
図１４に示すように、原始プログラム１がコンパイラ２に入力されると、コンパイラ２のプログラム解析部３において中間コード４が生成され、続いて中間コード４よりコンパイラ２のループ処理部５のループ検出部６においてループ部分が検出され、ループ部分が検出されると、ループ処理部５のループプログラム処理部７において最適化処理された最適化コード８が生成される。そして、生成された最適化コード８を用いて、目的プログラム９が生成される。上記ループプログラム処理部７におけるループ最適化処理法は、例えば、特許文献１に開示されている。
【特許文献１】特開平９−１１４６７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のループ最適化処理法では、ループに要する命令数、もしくは実行時間の最小化に主眼がおかれ、ループ周期は最短となるように生成されている。ここで、命令実行周波数を１０ＭＨｚ、ループ処理に係る命令ステップを１０ステップと仮定すると、ループ周期は１０ＭＨｚ／１０ｓｔｅｐ＝１ＭＨｚ＝１０００ＫＨｚとなり、中波ラジオの周波数帯域と重なってしまう。
【０００５】
したがって、ループ周期は最短とする従来のループ最適化処理法では、近傍のラジオ受信機に妨害波を放出し、受信を妨害してしまう。このように、ラジオ周波数帯域などの特定周波数帯域の妨害波、すなわちノイズにより悪影響を受ける機器は数多く存在する。
【０００６】
本発明は、このような課題を解決するものであり、ラジオ周波数帯域などの特定周波数帯域のノイズの発生を低減でき、ラジオ受信機などの機器への前記ノイズによる悪影響を無くすことができるコンパイラ、およびコンピュータ装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、請求項１に記載の発明は、原始プログラムから生成される中間コードよりループ部分を検出するループ検出部と、このループ検出部によりループ部分が検出されると、このループ部分のループ処理プログラムを生成するループプログラム処理部を備えたコンパイラであって、前記ループプログラム処理部により生成されたループ処理プログラムの処理に要する命令ステップ数を変更するループ処理変更処理部を備えることを特徴とするものである。
【０００８】
この処理方法によれば、ループ処理プログラムの処理に要する命令ステップ数を変更することにより、ループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【０００９】
また請求項２記載の発明は、上記請求項１記載の発明であって、前記ループ処理変更処理部では、前記ループ処理プログラムにウエイト動作を追加することにより、ループ処理プログラムの処理に要する命令ステップ数を変更することを特徴とするものである。
【００１０】
この処理方法によれば、ループ処理プログラムにウエイト動作を追加することにより命令ステップ数が大きくなり、ループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【００１１】
また請求項３記載の発明は、上記請求項１記載の発明であって、前記ループ処理変更処理部では、前記ループ処理プログラムにおいて、ループ内で実行される処理動作を連続で複数回実行することにより、ループ処理プログラムの処理に要する命令ステップ数を変更することを特徴とするものである。
【００１２】
この処理方法によれば、ループ内で実行される処理動作を連続で複数回実行することにより命令ステップ数が大きくなり、ループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【００１３】
また請求項４記載の発明は、上記請求項１記載の発明であって、前記ループ処理変更処理部では、反復動作により変化するフラグを有し、前記ループ処理プログラムにウエイト動作を追加し、その後、前記フラグの状態により、追加したウエイト動作の前後あるいはウエイト動作の途中に分岐することにより、ループ処理プログラムの処理に要する命令ステップ数を変更することを特徴とするものである。
【００１４】
この処理方法によれば、プログラムサイズを大きくすることなく、命令ステップ数を大きくすることができ、すなわちループ処理プログラムの処理に要する周期を変更でき、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【００１５】
請求項５記載の発明は、上記請求項１〜請求項４のいずれかに記載の発明であって、前記ループ処理プログラムの処理に要する命令ステップ数を計算し、作成されるプログラムの実行周波数と算出された命令ステップ数により、前記ループ処理プログラムの処理に要する周期を計算するループ周期計算部と、前記ループ周期計算部により算出された周期が、特定周波数帯域か否かを判定するノイズ周期判定部とを備え、前記ノイズ周期判定部において前記特定周波数帯域と判定されると、前記ループ処理変更処理部により、前記ループ処理プログラムの処理に要する周期を前記特定周波数帯域から変更することを特徴とするものである。
【００１６】
この処理方法によれば、ループ処理プログラムの処理に要する周期を特定周波数帯域から変更することにより、これにより特定周波数帯域のノイズの発生が低減され、特定周波数帯域のノイズによる機器への影響が低減される。
【００１７】
また請求項６記載の発明は、一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、アドレス信号およびアクセス信号を出力するＣＰＵと、前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は複数サイクルの期間、ウエイト信号を出力する一致検出回路とを備え、前記ウエイト命令により、前記ＣＰＵをスリープ状態とすることを特徴とするものである。
【００１８】
この構成によれば、ループ検知時は複数サイクルの期間、ＣＰＵがスリープ状態となるためループ周期がずれ、よってループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【００１９】
また請求項７記載の発明は、一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、クロック信号に同期して動作を行い、アドレス信号およびアクセス信号を出力するＣＰＵと、前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は複数サイクルの期間、ウエイト信号を出力する一致検出回路とを備え、前記ウエイト信号により、前記ＣＰＵに供給されるクロック信号を停止することを特徴とするものである。
【００２０】
この構成によれば、ループ検知時は複数サイクルの期間、ＣＰＵに供給されるクロック信号が停止され、ＣＰＵが停止するためループ周期がずれ、よってループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。
【００２１】
また請求項８記載の発明は、一連のプログラムを記憶し、アドレス信号およびアクセス信号を受け、前記アドレス信号に対応するアドレスのプログラムを前記アクセス信号に応じて出力するメモリと、クロック信号に同期して動作を行い、アドレス信号およびアクセス信号を出力するＣＰＵと、前記ＣＰＵから出力された過去、複数回分のアドレス信号を記憶するアドレス保持回路と、前記メモリから出力された過去、複数回分のプログラムを記憶するデータ制御回路と、前記アドレス保持回路に記憶されたアドレス信号と現在、前記ＣＰＵが出力しているアドレス信号を比較し、一致した際は一致検出信号を出力する一致検出回路とを備え、前記一致検出回路より出力された一致検出信号により、前記ＣＰＵから前記メモリへのアクセス信号をディスネーブルとして、前記データ制御回路より前記ＣＰＵに、前記記憶されたプログラムを供給することを特徴とするものである。
【００２２】
この構成によれば、ループ検知時はメモリが停止するため消費電流が低減され、よってノイズの電流電源が削減し、低ノイズ化を図ることができ、これにより特定周波数帯域のノイズの発生を低減することが可能となる。
【００２３】
また請求項９記載の発明は、上記請求項８記載の発明であって、前記一致検出回路より出力された一致検出信号により、前記データ制御回路より前記ＣＰＵにプログラムを供給する際にウエイト動作を付加することを特徴とするものである。
【００２４】
この構成によれば、ループ検知時はメモリが停止し、更にループ処理周期も変更されるため、消費電流が低減され、よってノイズの電流電源が削減し、低ノイズ化を図ることができ、これにより特定周波数帯域のノイズの発生を低減することが可能となる。
【発明の効果】
【００２５】
本発明は、プログラムループを検知して、ループ処理に要する命令ステップ数を変更し、ループ周期をラジオ周波数帯域などの特定周波数帯域からずらすことにより、ループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズを低減することができ、ラジオ受信機などの機器への前記ノイズによる悪影響を無くすことができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、従来の図１４に示す構成と同じ構成には、同一の符号を付して説明を省略する。
（実施の形態１）
本発明の実施の形態１のコンパイラについて説明する。
【００２７】
図１は、本発明の実施の形態１におけるコンパイラの構成を示すブロック図である。
図１に示すように、コンパイラ２のループ処理部５に、新たに、ｎｏｐ命令追加処理部（ループ処理変更処理部の一例）１１を設けている。このｎｏｐ命令追加処理部１１は、ループプログラム処理部７において生成された第一段階のループ処理プログラムに、ｎｏｐ命令などのウエイト（Ｗａｉｔ）動作を追加することによりループ処理プログラムの処理に要する命令ステップ数を変更する処理を行う。
【００２８】
以上のように構成された実施の形態１のコンパイラ２について、その一動作例を以下に説明する。
まず、原始プログラム１がコンパイラ２に入力され、プログラム解析部３により中間コード４が生成される。
【００２９】
次に、ループ処理部５のループ検出部６において中間コード４より（プログラム）ループ部分が検出され、検出されるとループプログラム処理部７において第一段階のループ処理プログラムが生成される。
【００３０】
さらに、生成された第一段階のループ処理プログラムに対して、ｎｏｐ命令追加処理部１１において、例えばループ処理プログラムを、このループ処理プログラム中にｎｏｐ命令をｎ回追加したプログラムに変更するなどの処理を行う。
【００３１】
上記のように処理されて生成された最適化コード８を用いて、目的プログラム９が生成される。
上記ｎｏｐ命令追加処理部１１におけるループ処理の一例を図２に示す。なお、図２では、ｎｏｐ命令を１回追加した場合の処理内容を示している。
【００３２】
図２に示すように、ループ処理が行われる、ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）において、処理［ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令）］と判定［ＣＣ（ｔｂｚ命令）］との間に、ＮＮ（ｎｏｐ）命令を追加している。
【００３３】
以上の処理により、従来のループ処理により生成されるプログラムを実行したときに発生するノイズの周波数がラジオのラジオ周波数帯域などの特定周波数帯域になってしまうようなプログラムに対して、ｎｏｐ命令等を追加することにより、容易に命令ステップ数を大きく（変更）することができ、このように１ループを実行する時間を変化させることで、ループ周期によって発生する電磁放射、すなわちノイズの周波数をラジオ周波数帯域などの特定周波数帯域からはずすことができ、ラジオ受信機など特定周波数帯域のノイズにより悪影響を受ける機器への妨害波（特定周波数帯域のノイズ）を低減することができる。
（実施の形態２）
本発明の実施の形態２のコンパイラについて説明する。
【００３４】
図３は、本発明の実施の形態２におけるコンパイラの構成を示すブロック図である。
図３に示すように、コンパイラ２のループ処理部５に、新たに、処理命令追加処理部（ループ処理変更処理部の一例）１２を設けている。この処理命令追加処理部１２は、ループプログラム処理部７において生成された第一段階のループ処理プログラムにおいて、ループ内で実行される処理動作を連続で複数回実行することによりループ処理プログラムの処理に要する命令ステップ数を変更する処理を行う。
【００３５】
以上のように構成された実施の形態２のコンパイラ２について、その一動作例を以下に説明する。
先ず、原始プログラム１がコンパイラ２に入力され、プログラム解析部３により中間コード４が生成される。
【００３６】
次に、ループ処理部５のループ検出部６において中間コード４よりループ部分が検出され、ループプログラム処理部７で第一段階のループ処理プログラムが生成される。
さらに、生成された第一段階のループ処理プログラムにおいて、処理命令追加処理部１２で、例えばループ命令がｎ回繰返されるプログラムに変更するなどの処理を行う。
【００３７】
上記のように処理された生成された最適化コード３８を用いて、目的プログラム３９が生成される。
上記処理命令追加処理部１２におけるループ処理の一例を図４に示す。なお、図４では、ループ命令が２回繰返される場合の処理を示している。
【００３８】
図４に示すように、ループ処理が行われる、ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）において、処理［ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令）］が、処理２として繰返されるようにプログラムを変更している。
【００３９】
以上の処理により、従来のループ処理により生成されるプログラムを実行したときに発生するノイズの周波数がラジオのラジオ周波数帯域などの特定周波数帯域になってしまうようなプログラムにおいて、ループ命令をｎ回繰返すなどの処理を加えることで、命令ステップ数を大きく（変更）することができ（１ループを実行する時間をｎ倍に変更することができ）、よってループ周期によって発生する電磁放射、すなわちノイズの周波数をラジオ周波数帯域などの特定周波数帯域からはずすことができ、ラジオ受信機など特定周波数帯域のノイズにより悪影響を受ける機器への妨害波（特定周波数帯域のノイズ）を低減することができる。
（実施の形態３）
本発明の実施の形態３のコンパイラについて説明する。
【００４０】
図５は、本発明の実施の形態３におけるコンパイラの構成を示すブロック図である。
図５に示すように、コンパイラ２のループ処理部５に、新たに、分岐先追加処理部（ループ処理変更処理部の一例）１３を設けている。この分岐先追加処理部１３は、反復動作により変化するフラグを有し、ループプログラム処理部７において生成された第一段階のループ処理プログラムに対して、該当ループ内で実行される処理動作にｎｏｐ命令などのウエイト（Ｗａｉｔ）動作を追加し、その後、前記フラグの状態により、追加したウエイト動作の前後あるいはウエイト動作の途中に分岐することにより、ループプログラム処理に要する命令ステップ数を変更する処理を行う。
【００４１】
以上のように構成された実施の形態３のコンパイラ２について、その一動作例を以下に説明する。
先ず、原始プログラム１がコンパイラ２に入力され、プログラム解析部３により中間コード４が生成される。
【００４２】
次に、ループ処理部５のループ検出部６において中間コード４よりループ部分を検出して、ループプログラム処理部７で第一段階のループ処理プログラムが生成される。
さらに、生成された第一段階のループ処理プログラムに対して、分岐先追加処理部１３で、例えばループプログラムの前にｎｏｐ命令をｎ個追加し、分岐条件を（ｎ＋１）個設けることにより、各ｎｏｐ命令の前に分岐するような処理を行う。
【００４３】
上記のように処理された生成された最適化コード８を用いて、目的プログラム９が生成される。
上記分岐先追加処理部１３におけるループ処理の一例を図６に示す。なお、図６では、ｎｏｐ命令を１個追加し、分岐条件を２個設けた場合の処理を示している。
【００４４】
図６に示すように、ループ処理が行われる、ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）において、これら処理［ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）］の前に、ＮＮ（ｎｏｐ）命令を追加し、ＣＣ（ｔｂｚ命令）に分岐条件を２個設定し（反復動作により変化するフラグを有し）、処理［ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）］、または処理［ＮＮ（ｎｏｐ）命令，ＡＡ（ａｄｄ命令），ＢＢ（ｃｍｐ命令），ＣＣ（ｔｂｚ命令）］へ分岐できるようにしている。
【００４５】
以上の処理により、従来のループ処理により生成されるプログラムを実行したときに発生するノイズの周波数がラジオのラジオ周波数帯域などの特定周波数帯域になってしまうようなプログラムに対して、ループ命令の分岐先をｎ個所設定し、追加したウエイト動作の前後あるいはウエイト動作の途中に分岐することにより、プログラムサイズを大きくすることなく、命令ステップ数を大きく（変更）することができ（１ループを実行する時間をループごとに変更することができ）、ループ周期によって発生する電磁放射、すなわちノイズの周波数をラジオ周波数帯域などの特定周波数帯域からはずすことができ、ラジオ受信機など特定周波数帯域のノイズにより悪影響を受ける機器への妨害波（特定周波数帯域のノイズ）を低減することができる。
（実施の形態４）
本発明の実施の形態４のコンパイラについて説明する。
【００４６】
図７は、本発明の実施の形態４におけるコンパイラの構成を示すブロック図である。
図７に示すように、コンパイラ２に、プログラムの実行周波数（セット動作周波数）２１と、ラジオ周波数帯域（ノイズＮＧ周波数帯；特定周波数帯域の一例）２２が入力され、コンパイラ２に、新たに、ループ周期計算部２３と、ノイズ周期判定部２４と、ループ周期変更処理部２５を設けている。
【００４７】
このループ周期計算部２３は、ループプログラム処理部７において生成された第一段階のループ処理プログラムに対して、ループ処理プログラムの処理に要する命令ステップ数を計算し、入力された実行周波数（セット動作周波数）２１と算出された命令ステップ数により、前記ループ処理プログラムの処理に要する周期を計算する。
【００４８】
前記ノイズ周期判定部２４は、ループ周期計算部２３により算出された周期が、入力されたラジオ周波数帯域（ノイズＮＧ周波数帯）２２か否かを判定する。
前記ループ周期変更処理部２５は、ノイズ周期判定部２４によりラジオ周波数帯域２２と判定された場合に、ループ処理プログラムに対してｎｏｐ命令を１個追加するなどの処理を行い、ループ周期計算部２３により算出される、前記ループ処理プログラムの処理に要する周期をラジオ周波数帯域２２から変更する。
【００４９】
以上のように構成された実施の形態４のコンパイラ２について、その一動作例を以下に説明する。
まず、原始プログラム１、プログラムの実行周波数（セット動作周波数）２１、ラジオ周波数帯域（ノイズＮＧ周波数帯）２２がコンパイラ２に入力され、プログラム解析部３により原始プログラム１から中間コード４が生成される。
【００５０】
次に、ループ処理部５のループ検出部６において中間コード４よりループ部分が検出され、ループプログラム処理部７で第一段階のループ処理プログラムが生成される。
さらに、生成された第一段階のループ処理プログラムに対して、ループ周期計算部２３で、最初に入力されたセット動作周波数２１を用いてループの処理時間が計算され、ループ処理動作に伴い発生するノイズの周波数が算出される。
【００５１】
ここで算出されたノイズの周波数が、最初に入力されたラジオ周波数帯域２２に入っているか否かを、ノイズ周期判定部２３で判定し、ラジオ周波数帯域２２に入っておりＮＧの場合は、ループ周期変更処理部２５で、ｎｏｐ命令を１個追加する処理を行い（ループ周期を変更するために、ループ処理プログラムの処理に要する命令ステップ数を変更する処理を行い）、ラジオ周波数帯域２２からはずれるまで、繰返し処理を行う。
【００５２】
上記のように処理された生成された最適化コード８を用いて、目的プログラム９が生成される。
以上の処理により、従来のループ処理により生成されるプログラムを実行したときに発生するノイズの周波数がラジオのラジオ周波数帯域（特定周波数帯域の一例）２２になってしまうようなプログラムに対してのみ、ループ命令にｎｏｐ命令を加える等の処理を行い命令ステップ数を変更し、１ループを実行する時間を変化させることで、ループ周期によって発生する電磁放射、すなわちノイズの周波数をラジオ周波数帯域（特定周波数帯域）からはずすことができ、ラジオ受信機（特定周波数帯域のノイズにより悪影響を受ける機器）への妨害波（特定周波数帯域のノイズ）を低減することができる。
【００５３】
なお、上記実施の形態４では、ループ周期変更処理部２５で、ｎｏｐ命令を１個追加する処理を行ったが、上記実施の形態１のｎｏｐ命令追加処理部８または上記実施の形態２の処理命令追加処理部１２または上記実施の形態３の分岐先追加処理部１３の処理を用いても、同様な効果を得ることができる。
（実施の形態５）
本発明の実施の形態５のコンピュータ装置について説明する。
【００５４】
図８は、本実施の形態５におけるコンピュータ装置の構成を示すブロック図である。
図８においては、３１はＣＰＵ、３２はＣＰＵ３１内部のプログラムカウンタであり、これらＣＰＵ３１と内部のプログラムカウンタ３２は、後述するＣＰＵ制御信号Ａ６に含まれるクロック信号Ａ５に同期して動作し、アドレス信号Ａ１およびＲＥ信号（アクセス信号）Ａ４を出力する。
【００５５】
またＣＰＵ３１のプログラムカウンタ３２から出力された過去、ｍ周期分（複数回分）のアドレス信号Ａ１を記憶するアドレス保持回路３３と、アドレス保持回路３３に記憶された複数のアドレス信号と現在、ＣＰＵ３１のプログラムカウンタ３２が出力しているアドレス信号Ａ１を比較し、一致した際はｎサイクルの期間、一致検出信号（Ｗａｉｔ信号）Ａ３を出力する一致検出回路３４と、一連のプログラムを記憶し、アドレス信号Ａ２およびＲＥ信号（アクセス信号）Ａ４を受け、アドレス信号Ａ１に対応するアドレスのプログラムをアクセス信号Ａ４に応じてデータ信号Ａ２として出力するＲＯＭ（メモリ）３５と、クロック信号Ａ５を入力し、一致検出回路３４より一致検出信号（Ｗａｉｔ信号）Ａ３を入力し、一致検出信号Ａ３がネガティブな間は、クロック信号Ａ５をそのまま制御クロック信号Ａ６としてＣＰＵ３１へ出力し、一致検出信号Ａ３がアクティブの間は、ＣＰＵ３１を停止する（スリープ状態とする）ために、クロック信号Ａ５をｎ周期停止させた制御クロック信号Ａ６をＣＰＵ３１へ出力するＣＰＵ制御回路３６が設けられている。
【００５６】
以上のように構成されたコンピュータ装置について、その一動作例を以下に説明する。
ＣＰＵ３１の内部にあるプログラムカウンタ３２から、アドレス信号Ａ１がＲＯＭ３５へ順次出力される。
【００５７】
このとき、アドレス保持回路３３にてｍ周期分のアドレス信号Ａ１を一時保持し、一致検出回路３４にて、プログラムカウンタ３２から出力される次のアドレス信号Ａ１とｍ周期分のアドレス信号が比較される。一致すると、ループが行われていると判断し、クロック信号Ａ５のｎ周期、一致検出信号Ａ３をＣＰＵ制御回路３６へ出力する。
【００５８】
ここで、ＣＰＵ制御回路３６では、一致検出信号Ａ３がネガティブな間は、クロック信号Ａ５をそのまま制御クロック信号Ａ６として、ＣＰＵ８１へ出力するが、一致検出信号Ａ３がアクティブの間は、ＣＰＵ３１を停止するために、クロック信号Ａ５をｎ周期停止させた制御クロック信号Ａ６をＣＰＵ３１へ出力する。ＣＰＵ３１は制御クロック信号Ａ６が停止状態となると、スリーブ状態となる。
【００５９】
以上の処理例のタイミングチャートを図９に示す。
図９に示すように、アドレス保持回路３３にて３周期分、保持アドレス１，保持アドレス２，保持アドレス３でアドレス信号Ａ１を記憶し、記憶したアドレス“４２００”が再び表れると、ループが行われていると判断し、クロック信号Ａ５の１周期の間、一致検出信号Ａ３を出力している（アクティブとしている）。これにより、一致検出信号Ａ３がアクティブとなると制御クロック信号Ａ６は停止状態となり、ＣＰＵ３１は停止し（スリーブ状態となり）、ＲＥ信号Ａ４はネガティブ状態となる。
【００６０】
以上の処理により、ループプログラムを検出した際には、ｎサイクルの期間、ＣＰＵ３１が停止するため、ループ周期がずれ、よってループ処理プログラムの処理に要する周期が変更され、これによりループ周期によって発生する電磁放射、すなわち特定周波数帯域のノイズの発生を低減することが可能となる。またｎサイクルの期間、ＣＰＵ３１が停止するため消費電流が低減され、よってノイズの電流電源が削減し、低ノイズ化を図ることができる。
（実施の形態６）
本発明の実施の形態６のコンピュータ装置について説明する。なお、上記実施の形態５の構成と同一の構成には同一の符号を付して説明を省略する。
【００６１】
図１０は、本実施の形態６におけるコンピュータ装置の構成を示すブロック図である。
実施の形態５のＣＰＵ制御回路３６に代えて、一致検出回路３４から出力される一致検出信号Ａ３がネガティブの間は、ＣＰＵ３１から出力されるＲＥ信号Ａ４をそのままＲＯＭ３５へアクセス信号Ａ７として出力し、一致検出信号Ａ３がアクティブの間は、ＲＯＭ３５へのアクセスを停止するために、アクセス信号Ａ７をループのｎ周期ネガティブにする（ＣＰＵ３１からＲＯＭ３５へのアクセス信号Ａ４をディスネーブルとする）メモリ制御回路４１と、ＲＯＭ（メモリ）３５から出力された過去、ループのｎ周期分（複数回分）のプログラムを記憶し、一致検出回路３４から出力される一致検出信号Ａ３がネガティブの間は、ＲＯＭ３５から出力されるプログラムをそのまま制御データ信号Ａ８としてＣＰＵ３１へ出力し、一致検出信号Ａ３がアクティブの間は、保持しているループのｎ周期分のデータを制御データ信号Ａ８として、ＣＰＵ３１へ順次出力するデータ制御回路４２が設けられ、データ制御回路４２よりＣＰＵ３１へプログラムが供給されている。またクロック信号Ａ５が、ＣＰＵ３１と一致検出回路３４へ入力されている。
【００６２】
以上のように構成された実施の形態６のコンピュータ装置について、その一動作例を以下に説明する。
ＣＰＵ３１の内部にあるプログラムカウンタ３２から、アドレス信号Ａ１がＲＯＭ３５へ順次出力される。
【００６３】
このとき、アドレス保持回路３３にてｍ周期分のアドレス信号Ａ１を一時保持し、一致検出回路３４にて、プログラムカウンタ３２から出力される次のアドレス信号Ａ１とｍ周期分のアドレス信号を比較する。一致すると、ループが行われていると判断し、ループのｎ周期間、一致検出信号Ａ３をメモリ制御回路４１とデータ制御回路４２へ出力する。
【００６４】
ここで、メモリ制御回路４１では、一致検出信号Ａ３がネガティブの間は、ＣＰＵ３１から出力されるＲＥ信号Ａ４をそのままＲＯＭ３５へアクセス信号Ａ７として出力するが、一致検出信号Ａ３がアクティブの間は、ＲＯＭ３５へのアクセスを停止するために、アクセス信号Ａ７をループのｎ周期ネガティブにする。これにより、ＲＯＭ３５からのデータ信号Ａ２の出力は停止する。
【００６５】
また、同時にデータ制御回路４２では、保持しているループのｎ周期分のデータを制御データ信号Ａ８として、ＣＰＵ３１へ順次出力する。
以上の処理例のタイミングチャートを図１１に示す。
【００６６】
図１１に示すように、アドレス保持回路３３にて３周期分、保持アドレス１，保持アドレス２，保持アドレス３でアドレス信号Ａ１を記憶し、記憶したアドレス“４２００”が再び表れると、ループが行われていると判断し、クロック信号Ａ５の３周期の間、一致検出信号Ａ３を出力している（アクティブとしている）。一致検出信号Ａ３がアクティブとなると、アクセス信号Ａ７は３周期の間ネガティブになり、ＲＯＭ３５からのデータ信号Ａ２の出力は停止される。このとき、データ制御回路４２より、保持しているループの３周期分のデータが制御データ信号Ａ８として、ＣＰＵ３１へ順次出力される。
【００６７】
以上の処理により、ループプログラムを検出した際には、ＲＯＭ３５へのアクセスを強制的にｎ周期停止させることで、消費電流を低減することができ、よってノイズの電流電源を削減し、低ノイズ化を図ることができ、これにより特定周波数帯域のノイズの発生を低減することができる。
（実施の形態７）
本発明の実施の形態７のコンピュータ装置について説明する。
【００６８】
図１２は、本実施の形態７におけるコンピュータ装置の構成を示すブロック図である。
図１２に示すように、実施の形態７は、上記実施の形態６の構成と同一の構成としており、データ制御回路４２’を、一致検出回路３４から出力される一致検出信号Ａ３がネガティブの間は、ＲＯＭ３５から出力されるプログラムをそのまま制御データ信号Ａ８としてＣＰＵ３１へ出力し、一致検出信号Ａ３がアクティブの間は、保持しているループのｎ周期分のデータ（プログラム）を制御データ信号Ａ８として、ＣＰＵ３１にプログラムを供給する際にｎｏｐ命令などウエイト（Ｗａｉｔ）動作の命令コードを付加して順次出力するようにしている。
【００６９】
以上のように構成された実施の形態７のコンピュータ装置について、その一動作例を以下に説明する。
ＣＰＵ３１の内部にあるプログラムカウンタ３２から、アドレス信号Ａ１がＲＯＭ３５へ順次出力される。
【００７０】
このとき、アドレス保持回路３３にて、ｍ周期分のアドレス信号Ａ１を一時保持し、一致検出回路３４にて、プログラムカウンタ３２から出力される次のアドレス信号Ａ１とｍ周期分のアドレス信号を比較する。一致すると、ループが行われていると判断し、ループのｎ周期、一致検出信号Ａ３をメモリ制御回路４１およびデータ制御回路４２’へ出力する。
【００７１】
ここで、メモリ制御回路４１では、一致検出信号Ａ３がネガティブの間は、ＣＰＵ３１から出力されるＲＥ信号Ａ４をそのままＲＯＭ３５へアクセス信号Ａ７として出力するが、一致検出信号Ａ３がアクティブの間は、ＲＯＭ３５へのアクセスを停止するために、アクセス信号Ａ７をループのｎ周期ネガティブにする。これにより、ＲＯＭ３５からのデータ信号Ａ２の出力は停止する。
【００７２】
さらに、データ制御回路４２’では、まずｎｏｐ命令を制御データ信号Ａ８としてＣＰＵ３１に出力し、次に保持しているループのｎ周期分のデータをＣＰＵ３１へ順次出力していく。
【００７３】
以上の処理例のタイミングチャートを図１３に示す。
図１３に示すように、アドレス保持回路３３にて３周期分、保持アドレス１，保持アドレス２，保持アドレス３でアドレス信号Ａ１を記憶し、記憶したアドレス“４２００”が再び表れると、ループが行われていると判断し、クロック信号Ａ５の３周期の間、一致検出信号Ａ３を出力している（アクティブとしている）。一致検出信号Ａ３がアクティブとなると、アクセス信号Ａ７は３周期の間ネガティブになり、ＲＯＭ３５からのデータ信号Ａ２の出力は停止される。このとき、データ制御回路４２’より、まずｎｏｐ命令が制御データ信号Ａ８としてＣＰＵ３１へ出力され、次に保持しているループの３周期分のデータが制御データ信号Ａ８として、ＣＰＵ３１へ順次出力される。
【００７４】
以上の処理により、ループプログラムを検出した際には、ＲＯＭ３１へのアクセスを強制的にループプログラムのｎ周期停止させ、さらにループ処理周期も変更されるため、消費電流を低減することができ、よってノイズの電流電源を削減し、低ノイズ化を図ることができ、これにより特定周波数帯域のノイズの発生を低減することができる。
【産業上の利用可能性】
【００７５】
特定周波数帯域のノイズの発生を低減できることから、このような特定周波数帯域のノイズが許されない環境において、特定周波数帯域のノイズを低減できるコンピュータ装置を制御装置として利用可能である。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の形態１におけるコンパイラの構成を示すブロック図である。
【図２】同コンパイラの処理例を示す図である。
【図３】本発明の実施の形態２におけるコンパイラの構成を示すブロック図である。
【図４】同コンパイラの処理例を示す図である。
【図５】本発明の実施の形態３におけるコンパイラの構成を示すブロック図である。
【図６】同コンパイラの処理例を示す図である。
【図７】本発明の実施の形態４におけるコンパイラの構成を示すブロック図である。
【図８】本発明の実施の形態５におけるコンピュータ装置の構成図である。
【図９】同コンピュータ装置のタイミングチャートである。
【図１０】本発明の実施の形態６におけるコンピュータ装置の構成図である。
【図１１】同コンピュータ装置のタイミングチャートである。
【図１２】本発明の実施の形態７におけるコンピュータ装置の構成図である。
【図１３】同コンピュータ装置のタイミングチャートである。
【図１４】従来のコンパイラの構成を示すブロック図である。
【符号の説明】
【００７７】
１    原始プログラム
２    コンパイラ
３    プログラム解析部
４    中間コード
５    ループ処理部
６    ループ検出部
７    ループプログラム処理部
８    最適化コード
９    目的プログラム
１１  ｎｏｐ命令追加処理部
１２  処理命令追加処理部
１３  分岐先追加処理部
２１  セット動作周波数
２２  ノイズＮＧ周波数帯
２３  ループ周期計算部
２４  ノイズ周期判定部
２５  ループ周期変更処理部
３１  ＣＰＵ
３２  プログラムカウンタ
３３  アドレス保持回路
３４  一致検出回路
３５  ＲＯＭ
３６  ＣＰＵ制御回路
４１  メモリ制御回路
４２，４２’  データ制御回路
Ａ１  アドレス信号
Ａ２  データ信号
Ａ３  一致検出信号
Ａ４  ＲＥ信号
Ａ５  クロック信号
Ａ６  制御クロック信号
Ａ７  アクセス信号
Ａ８  制御データ信号
【図１】
2005050124.tif 000003
【図２】
2005050124.tif 000004
【図３】
2005050124.tif 000005
【図４】
2005050124.tif 000006
【図５】
2005050124.tif 000007
【図６】
2005050124.tif 000008
【図７】
2005050124.tif 000009
【図８】
2005050124.tif 000010
【図９】
2005050124.tif 000011
【図１０】
2005050124.tif 000012
【図１１】
2005050124.tif 000013
【図１２】
2005050124.tif 000014
【図１３】
2005050124.tif 000015
【図１４】
2005050124.tif 000016