(57)【要約】【課題】従来は，複数クロックで構成される実行段，かつ次命令の実行段が１クロックで実行される場合しかストールの発生を抑えられなかった。そこで，パイプラインの切り替えによるパイプラインのストールを抑えるとともに処理時間の短縮と消費電力を低減する。【解決手段】段数の少ないパイプラインの１段の処理時間が，段数の多いパイプラインの1段の倍数となるように，段数の少ないパイプラインのクロック周波数を低周波数化し，段数の多いパイプラインのレイテンシが，クロックを低周波数化した後の，段数の少ないパイプラインのレイテンシと等しくなるように，段数の多いパイプラインの段数を調整した。【選択図】図２
2011059869.tif 000002
【特許請求の範囲】
【請求項１】
１段の処理に必要なクロック数は同じで，異なる段数の，複数のパイプラインから構成されるサーボモータ制御用のパイプライン構造を備えた演算処理装置において、
段数の少ないパイプラインの１段の処理時間が，段数の多いパイプラインの1段の倍数となるように，段数の少ないパイプラインのクロック周波数を低周波数化し，段数の多いパイプラインのレイテンシが，クロックを低周波数化した後の，段数の少ないパイプラインのレイテンシと等しくなるように，段数の多いパイプラインの段数を調整したことを特徴とするサーボモータ制御用のパイプライン構造を備えた演算処理装置。
【請求項２】
前記低周波数化したクロックで実行するようになっている段数の少ないパイプラインは、段数の少ないパイプラインを複数用意し，並列動作させることを特徴とする請求項１記載サーボモータ制御用のパイプライン構造を備えた演算処理装置。
【請求項３】
１段の処理に必要なクロック数は同じで，異なる段数の，複数のパイプラインから構成されるサーボモータ制御用のパイプライン構造を備えた演算処理装置において、
段数の少ないパイプラインは同じ段の処理を複数回繰り返し，段数の多いパイプラインのレイテンシが，同じ段の処理を複数回繰り返した後の，段数の少ないパイプラインのレイテンシと等しくなるように，段数の多いパイプラインの段数を調整したことを特徴とするサーボモータ制御用のパイプライン構造を備えた演算処理装置。
【請求項４】
前記モータ制御用のパイプライン構造を備えた演算処理装置を使ったサーボモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム方式でサーボモータ制御用の演算処理を行う演算処理装置およびそのような演算処理装置を使用したサーボモータ制御装置に関する。
【背景技術】
【０００２】
サーボモータの制御に特有の演算を高速に効率よく行うために、プログラム演算機能を搭載した専用のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）が使われるようになってきている。サーボモータの制御に必要な変数は、整数値を持つレジスタで管理されている。これは、位置決め等を行う場合の目標位置の指令値を、整数値として扱うパルスの数で表現しているからである。また、ゲイン等のサーボ制御を行うパラメータも整数値で管理されている。しかし、制御用の演算処理では、変数同士の乗算，および前回の演算結果との減算、累算の処理が行なわれる。これらは比例，微分，積分の演算に相当し，制御演算の基本的な処理である。これらの演算を整数の利用により行う場合，演算精度を確保するため演算に引き続いてシフト処理も実施される。また，桁落ちや桁あふれを検査するための処理も必要となる。このような処理を一般のＣＰＵやＤＳＰの命令を用いて演算すると，多くの命令ステップが必要となるために演算時間が増加することになる。サーボモータ制御用のパイプライン構造では，多くの変数を用いて複雑な処理を行うため，フェッチ段およびデコード段，実行段，ライトバック段が，複数クロックになるパイプライン構成となる。そのため，このように演算の粒度が異なる場合には，複数のパイプラインを備えることが行われる（例えば特許文献１）。なお，粒度とは演算量の尺度である。
複数のパイプラインを備える場合，個々のパイプラインは最適に設計されるため，同じパイプラインを利用した演算が続く場合は演算を高速に実行できる。しかし，異なるパイプラインを利用する演算が混在する場合は，パイプラインの段数が異なることや，段数の違いに起因してメモリの読み書きにストールが発生する。そのため，パイプラインの切り替え時にストールが発生するので，結果として演算時間が増加することになる。図７はフェッチ段（Ｆ），デコード段（Ｄ），実行段（Ｅ），ライトバック段（Ｗ）から構成される４段構成のパイプライン，パイプライン１である。また，図８は２つのフェッチ段（Ｆ），デコード段（Ｄ），３つの実行段（Ｅ），２つのライトバック段（Ｗ）から構成される８段構成のパイプライン，パイプライン２である。図９はパイプライン１のみで命令が実行される様子を表したもので，ストールの発生はない。図１０はパイプライン２のみで命令が実行される様子を表したものである。制約として，命令メモリを書き込みポートと読み出しポートがそれぞれ１ポートずつと仮定すると，フェッチ段で１クロック分のストールが発生する。次に命令が混在して実行される様子を図１１に示す。パイプライン１からパイプライン２への切り替えでは，制約がないのでストールが発生しない。しかし，パイプライン２からパイプライン１の切り替えでは，４クロック分のストールが発生する。そこで，パイプラインのストールを防ぐため，ステージ数を可変にしたパイプライン（例えば特許文献２）や，ステージの処理時間を可変にしたパイプライン（例えば特許文献３）がある。図１２と図１３はそのような従来技術の例である。
図１２は，第１の命令が最終ステートの前に２つ以上の演算ステートを有しており、特別のステートを第１の命令に続く第２の命令の最終ステートとして挿入可能で、第２の命令の演算ステートが１マシンサイクル内で実行される場合、第２の命令の処理を演算ステートから特別のステートに移行させ、第１の命令の最終ステートと第２の命令の特別のステートとを同時に実行させる、パイプライン演算制御方法およびシステムである。パイプライン演算制御方法およびシステムに関し、命令のインターロックによる遅れを無くして高速化を図ることを目的としている。
図１３は，パイプライン処理により複数の命令を並列的に処理するプロセッサ回路は、命令を取得する命令取得回路１１１と、命令取得回路１１１により取得された命令をデコードする命令判定部１１２と、命令判定部１１２によりデコードされた命令に基づきデータを取得する読み取り制御回路１０１と、読み取り制御回路１０１により取得されたデータに対して演算を実行する演算部１０３と、演算部１０３による演算結果を書き込む記憶装置１０４とを有する。命令判定部１１２は、命令取得回路１１１により取得された命令に応じて基準クロックの周波数を変更することにより動作クロックを生成し、各部に供給し、各部を動作クロックで駆動させる。周波数性能を向上させ、かつ面積コストを低減し、さらに低消費電力が可能なプロセッサ回路を提供することを目的としている。
このように、従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置は、パイプラインのストールを防ぐためにステージ数を可変にすることや，ステージの処理時間を可変にすることで対応するのである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特公平６−１０３４９４号（第６頁，図１）
【０００４】
【特許文献２】特開平５−８１０１５号（第１２頁、図４）
【０００５】
【特許文献３】特開２００８−１０８０４９号（第１５頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置は、複数クロックで構成される実行段で，かつ次命令の実行段が１クロックで実行される場合にしか，パイプラインのストールの発生を抑えることができないという問題があった。また，各段の処理時間が可変なパイプライン構造の場合は，ストールの発生がなくなるが，並列に実行されている格段の実行で最も遅いパイプラインの処理時間に律速されてしまい，演算時間が延びてしまうという問題を持っていた。
本発明はこのような問題点に鑑みてなされたものであり、異なる構造のパイプラインを備えた演算処理装置において，パイプラインの切り替えによるパイプラインのストールを抑えるとともに処理時間を短縮し、回路規模の増加を抑えることができるサーボモータ制御用のパイプライン構造を備えた演算処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、段数の少ないパイプラインの１段の処理時間が，段数の多いパイプラインの1段の倍数となるように，段数の少ないパイプラインのクロック周波数を低周波数化し，段数の多いパイプラインのレイテンシが，低周波数化したクロックにした後の，段数の少ないパイプラインのレイテンシと等しくなるように，段数の多いパイプラインの段数を調整したものである。
また、請求項２に記載の発明は、前記低周波数化したクロックで実行するようになっている段数の少ないパイプラインは、段数の少ないパイプラインを複数用意し，並列動作させたものである。
また、請求項３に記載の発明は、段数の少ないパイプラインは同じ段の処理を複数回繰り返し，段数の多いパイプラインのレイテンシが，同じ段の処理を複数回繰り返した後の，段数の少ないパイプラインのレイテンシと等しくなるように，段数の多いパイプラインの段数を調整したものである。
また、請求項４に記載の発明は、モータ制御用のパイプライン構造を備えた演算処理装置を使ったサーボモータ制御装置としたものである。
【発明の効果】
【０００８】
請求項１に記載の発明によると、性能を落とさずにクロック周波数を低減することができ、消費電力を低減することができる。
また、請求項２および請求項３に記載の発明によると、消費電力を増加させずに処理能力を向上することができ、サーボ演算を高速化することができる。
また，請求項４に記載の発明によると、制御演算でパイプラインのストールを発生させないので、制御性能を向上することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施例を示すサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図
【図２】本発明のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図３】第２実施例を示すサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図
【図４】第３実施例を示すサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図
【図５】第３実施例を説明するサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図６】第４実施例を説明するサーボモータ制御用のパイプライン構造を備えた演算処理装置のシステムブロック図
【図７】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図
【図８】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図
【図９】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図１０】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図１１】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図１２】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン実行の様子
【図１３】従来のサーボモータ制御用のパイプライン構造を備えた演算処理装置のブロック図
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１１】
図１は、本発明のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプラインである。図において、パイプライン１ １はフェッチ段（Ｆ），デコード段（Ｄ），実行段（Ｅ）とライトバック段（Ｗ）の４段構成となっている。また，パイプライン２ ２は、フェッチ段（Ｆ）が２段，デコード段（Ｄ），実行段（Ｅ）が３段とライトバック段（Ｗ）が２段の８段構成となっている。本構成は１例であり，パイプライン２の構成によっては他の構成をとることを考えられる。
本発明が従来技術と異なる部分は、段数の多いパイプライン２のレイテンシ（パイプライン全体の処理に必要なクロック数）とパイプライン１のレイテンシが同じになるよう，パイプライン１のクロック周波数を低周波数化し，パイプライン１とパイプライン２のレイテンシを揃えた部分である。
【００１２】
図２は、本発明のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプラインを動作させた様子である。パイプライン１ １のクロック周波数はパイプライン２ ２の２クロック分に低周波数化しているので，パイプライン１が１段実行する時間にパイプライン２は２段実行する。さらに，パイプライン１の1段の実行とあわせるために，パイプライン２は２段づつ実行が進行する。パイプライン１の命令の次に，パイプライン２の命令が実行されてもストールは生じない。次に，パイプライン２の命令の次に，パイプライン１の命令が実行される場合，図２にパイプライン２はデコード段と実行段を実行しており，フェッチ段が重なることも次の命令への実行段の結果を供給できないこともないので，この場合もストールは発生しない。
【００１３】
その動作は、図２に示すように、パイプライン１とパイプライン２の命令が混在してもストールが発生しないため、命令が混在する環境での演算性能を維持することができる。さらに，パイプライン１のクロック周波数を低減して実行するので，消費電力を低減することができる。
【実施例２】
【００１４】
図３は、第２実施例のパイプラインを示す図である。本発明のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプライン図である。図において、パイプライン１ １,３はフェッチ段（Ｆ），デコード段（Ｄ），実行段（Ｅ）とライトバック段（Ｗ）の４段構成となっている。それを並列に実行する。また，パイプライン２ ２は、フェッチ段（Ｆ）が２段，デコード段（Ｄ），実行段（Ｅ）が３段とライトバック段（Ｗ）が２段の８段構成となっている。本構成は１例であり，パイプライン２の構成によっては他の構成をとることを考えられる。
本発明が従来技術と異なる部分は、段数の多いパイプライン２のレイテンシとパイプライン１のレイテンシが同じになるよう，パイプライン１のクロック周波数を低周波数化し，さらにパイプライン１を２回路用意して並列動作し，パイプライン１とパイプライン２のレイテンシを揃えた部分である。
【００１５】
その動作はパイプライン１とパイプライン２の命令が混在してもストールが発生せず，かつパイプライン１は並列に動作するため、命令が混在する環境での演算性能を向上することができる。さらに，パイプライン１の回路規模は倍になるが，動作周波数は半分のため、消費電力を維持することができる。
【実施例３】
【００１６】
図４は第３実施例のパイプラインを示す図である。図において、パイプライン２ ２は、フェッチ段（Ｆ）が２段，デコード段（Ｄ），実行段（Ｅ）が３段とライトバック段（Ｗ）が２段の８段構成となっている。パイプライン１ １はフェッチ段（Ｆ），デコード段（Ｄ），実行段（Ｅ）とライトバック段（Ｗ）の４段構成となっているが，引き続き同じ段の実行を同じ回路を利用して行う構成となっている。本構成は１例であり，パイプライン２の構成によっては他の構成をとることを考えられる。
本発明が従来技術と異なる部分は、段数の多いパイプライン２のレイテンシとパイプライン１のレイテンシが同じになるよう，パイプライン１の各段の実行を繰り返し行い，パイプライン１とパイプライン２のレイテンシを揃えた部分である。
【００１７】
図５は、本発明のサーボモータ制御用のパイプライン構造を備えた演算処理装置のパイプラインを動作させた様子である。パイプライン１ １の１段とパイプライン２ ２の１段の実行する時間は揃えてある。しかし，パイプライン１は同じ段の実行を引き続き行うようにしている。パイプライン１の命令は，フェッチ段（Ｆ１）を行い，繰り返しフェッチ段（Ｆ２）を行う。次に，デコード段（Ｄ１）を行い，繰り返しデコード段（Ｄ２）を行い，実行段（Ｅ１）を行い，繰り返し実行段（Ｅ２）を行い，最後にライトバック段（Ｗ１）を行い，繰り返しライトバック段（Ｗ２）を行う。このパイプライン１の命令の次に，パイプライン２の命令が実行される場合，パイプライン１の２つのデコード段（Ｄ１，Ｄ２）の実行とパイプライン２の２つのフェッチ段が並列に実行される。実際にはメモリや回路構成により異なり，１クロック毎に実行できる構成もありうるが，従来例で仮定した，フェッチ段は並列に行ってはいけないという制約である。このように，パイプライン１の命令の次に，パイプライン２の命令が実行される場合，ストールは発生しない。次に，パイプライン２の命令の次に，パイプライン１の命令が実行される場合を説明する。図４ではパイプライン２の実行はデコード段と実行段であり，パイプライン１は２つのフェッチ段（Ｆ１，Ｆ２）が実行され、この場合もストールは発生しない。このように，この構成の場合，命令が混在してもストールの発生無しに，２クロック毎に演算結果を生成できる。
【００１８】
このように、パイプライン１の各段の実行を繰り返し行うようにしてパイプラインのレイテンシを揃えているので、パイプライン１とパイプライン２の命令が混在する環境でも性能を向上させることができる。さらに，パイプライン１の回路規模はほとんど増加しないため、消費電力を維持することができる。
【実施例４】
【００１９】
図６は、サーボモータ制御用のパイプライン構造を備えた演算処理装置のシステムブロック図である。サーボ装置４は制御演算を実行する演算処理装置 ５と、サーボモータ９へのモータ電流を生成するパワー部６と、パワー部の出力をAD変換し演算処理装置とインターフェースするＡＤＣ ７と、エンコーダ１０とインターフェースするエンコーダＩＦ ８から構成される。ＡＤＣやエンコーダＩＦから入力されるフィードバック値をもとにパイプライン１とパイプライン２の命令を混在して制御演算が実行される。そのため、パイプライン１とパイプライン２の命令が混在する環境でパイプラインのストールを発生させないため、サーボ装置の制御性能を向上することができるようになる。
【符号の説明】
【００２０】
１  パイプライン１
２  パイプライン２
３  パイプライン１
４  サーボ装置
５  演算処理装置
６  パワー部
７  ＡＤＣ
８  エンコーダＩＦ
９  サーボモータ
１０  エンコーダ
１０１  読み取り制御回路
１０２  動作制御回路
１０３  演算器
１０４  記憶装置
１１１  命令取得回路
１１２  命令判定部
１１３  命令判定回路
１１４  同期信号制御回路
【図１】
2011059869.tif 000003
【図２】
2011059869.tif 000004
【図３】
2011059869.tif 000005
【図４】
2011059869.tif 000006
【図５】
2011059869.tif 000007
【図６】
2011059869.tif 000008
【図７】
2011059869.tif 000009
【図８】
2011059869.tif 000010
【図９】
2011059869.tif 000011
【図１０】
2011059869.tif 000012
【図１１】
2011059869.tif 000013
【図１２】
2011059869.tif 000014
【図１３】
2011059869.tif 000015