(57)【要約】【課題】所定のビット数を有する入力の演算に対して回路のゲート規模を低減できるＡＬＵ回路およびそれを搭載したサーボ制御装置を提供する。【解決手段】ＬＵＴ１１の出力はすべての演算回路と接続され、オペコードＳ１が規定したＲＯＭ１１２の論理テーブルが出力されている。演算回路１２内の出力生成回路 １２１は、データＡ、データＢに対応する論理テーブルの値を読み出す。読み出した値は演算回路１２の演算結果を示す出力Ｄとなる。また、キャリー生成回路１２２は、データＡ、データＢ、外部からのキャリー入力Ｓ４の３入力に対してオペコードが規定した演算による１ビットのキャリー出力Ｃを生成する。【選択図】図１
2010026585.tif 000002
【特許請求の範囲】
【請求項１】
所定のビット数を有する２つ又は１つのオペランドに対してオペコードで指定された演算を行なうＡＬＵ回路において、
前記ＡＬＵ回路は、各ビットの演算に対してそれぞれ設けられた複数の演算回路と、
演算の内容に対応する論理テーブルが格納された複数のＲＯＭおよび前記オペコードで指定された演算の内容に対応する論理テーブルが格納されたＲＯＭを選択するＲＯＭセレクタから成るＬＵＴを備え、
前記ＬＵＴの出力を、一部またはすべての前記演算回路の入力とすることを特徴とするＡＬＵ回路。
【請求項２】
前記演算回路は、オペランドと下位ビットからのキャリーとオペコードから上位ビットへのキャリーを生成するキャリー生成回路を備えたことを特徴とする請求項１に記載のＡＬＵ回路。
【請求項３】
所定のビット数を有する２つ又は１つのオペランドに対してオペコードで指定された演算を行なうＡＬＵ回路において、
前記ＡＬＵ回路は、各ビットの演算に対してそれぞれ設けられた複数の演算回路と、
演算の内容に対応する論理テーブルが格納された複数のＲＯＭおよび前記オペコードで指定された演算の内容に対応する論理テーブルが格納されたＲＯＭを選択するＲＯＭセレクタから成るＬＵＴと、
前記演算回路にそれぞれ対応し、前記演算回路と同数の、バスにより外部回路から読み書き可能なＲＡＭと、
オペコードにより前記ＬＵＴの出力または前記ＲＡＭの出力を選択する拡張セレクタを備えたことを特徴とするＡＬＵ回路。
【請求項４】
外部からのキャリー信号又は前記演算回路で生成されたキャリー信号のいずれか一方を選択するキャリーセレクタと前記キャリーセレクタへ選択信号を出力する外部回路から読み書き可能なＲＡＭとを有するキャリー分配回路を備えた特徴とする請求項３記載のＡＬＵ回路。
【請求項５】
上位コントローラからの指令信号とサーボモータに取り付けられたエンコーダからのフィードバック信号に基づいて前記サーボモータの回転位置または回転速度を制御する制御信号を生成する制御回路部を備えたサーボ制御装置において、
前記制御回路部は、請求項１または３に記載のＡＬＵ回路を備えたことを特徴とするサーボ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算術論理演算を行うＡＬＵ（Arithmetic Logical Unit）回路に関し、特に小さいゲート規模で種類の異なる演算に対応できるＡＬＵ回路およびそれを搭載したサーボ制御装置に関する。  
【背景技術】
【０００２】
従来、２つの入力の算術演算または論理演算を行なう演算器が開示されている（例えば、特許文献１参照）。
図４は、従来の演算器の構成を示すブロック図である。
図において、２０は２つの１ビットの入力Ａ、Ｂに対してインストラクションＩ１により加算（Ａ＋Ｂ）、減算（Ａ−Ｂ）、論理積（Ａ∩Ｂ）、論理和（Ａ∪Ｂ）などの演算を行なうＡＬＵ、３０はＡＬＵ５からのキャリー、インストラクションＩ２によって入力Ａ、ＢおよびＡＬＵ５の出力Ｃのいずれかひとつを選択するセレクタである。インストラクションＩ２およびキャリーによって所定の出力が得られる。
このように、従来の演算器は、ＡＬＵとセレクタを備え、セレクタによってＡＬＵへの入力Ａ、ＢおよびＡＬＵの出力Ｃを所定の論理によって選択することによって、１ビットの２つの入力Ａ、Ｂに対する多種類の演算を行なっていた。
【特許文献１】特開昭６２−２９０９２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術に開示された演算器は少ない構成要素で１ビットの２つの入力Ａ、Ｂに対して多種類の演算を実行できるが、多ビットのデータ入力に対する演算を実行する場合、１ビットの２つの入力Ａ、Ｂに対してそれぞれＡＬＵとセレクタを備える必要があった。
本発明はこのような問題点に鑑みてなされたものであり、所定のビット数を有する入力の演算に対して回路のゲート規模を低減できるＡＬＵ回路およびそれを搭載したサーボ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、所定のビット数を有する２つ又は１つのオペランドに対してオペコードで指定された演算を行なうＡＬＵ回路において、前記ＡＬＵ回路は、各ビットの演算に対してそれぞれ設けられた複数の演算回路と、演算の内容に対応する論理テーブルが格納された複数のＲＯＭおよび前記オペコードで指定された演算の内容に対応する論理テーブルが格納されたＲＯＭを選択するＲＯＭセレクタから成るＬＵＴを備え、前記ＬＵＴの出力を、一部またはすべての前記演算回路の入力とすることを特徴としている。
請求項２に記載の発明は、前記演算回路は、オペランドと下位ビットからのキャリーとオペコードから上位ビットへのキャリーを生成するキャリー生成回路を備えたことを特徴している。
請求項３に記載の発明は、所定のビット数を有する２つ又は１つのオペランドに対してオペコードで指定された演算を行なうＡＬＵ回路において、前記ＡＬＵ回路は、各ビットの演算に対してそれぞれ設けられた複数の演算回路と、演算の内容に対応する論理テーブルが格納された複数のＲＯＭおよび前記オペコードで指定された演算の内容に対応する論理テーブルが格納されたＲＯＭを選択するＲＯＭセレクタから成るＬＵＴと、前記演算回路にそれぞれ対応し、前記演算回路と同数の、バスにより外部回路から読み書き可能なＲＡＭとオペコードにより前記ＬＵＴの出力または前記ＲＡＭの出力を選択する拡張セレクタを備えたことを特徴としている。
請求項４に記載の発明は、外部からのキャリー信号又は前記演算回路で生成されたキャリー信号のいずれか一方を選択するキャリーセレクタと前記キャリーセレクタへ選択信号を出力する外部回路から読み書き可能なＲＡＭとを有するキャリー分配回路を備えた特徴としている。
請求項５に記載の発明は、上位コントローラからの指令信号とサーボモータに取り付けられたエンコーダからのフィードバック信号に基づいて前記サーボモータの回転位置または回転速度を制御する制御信号を生成する制御回路部５１を備えたサーボ制御装置において、前記制御回路部は、請求項１または３に記載のＡＬＵ回路を備えたことを特徴としている。
【発明の効果】
【０００５】
請求項１に記載の発明によると、ＡＬＵ回路が、演算の内容に対応する論理テーブルが格納された複数のＲＯＭと、この複数のＲＯＭの中からオペコードで指定された論理テーブルが格納されたＲＯＭの出力を選択するＲＯＭセレクタから成るＬＵＴを備えているので、各演算回路に対してそれぞれＬＵＴを設ける必要が無くメモリの容量を抑えることができる。従って、ＡＬＵ回路のゲート規模を低減できる。
また、請求項２に記載の発明によると、演算回路が、オペランドと下位ビットからのキャリーとオペコードから上位ビットへのキャリーを生成するキャリー生成回路を備えれば、演算に必要なＲＯＭの内容を異なる演算間で共通に出来るので、メモリ容量を抑えることができる。従って、ＡＬＵ回路のゲート規模をより低減することができる。
また、請求項３に記載の発明によると、ＡＬＵ回路が、演算回路と同数の、バスにより外部回路から読み書き可能なＲＡＭと、オペコードによりＬＵＴの出力とＲＡＭの出力を選択する拡張セレクタを備えているので、大幅な回路の変更なしに新規の演算命令を追加できる。
また、請求項４に記載の発明によると、ＡＬＵ回路が、外部からのキャリー信号又は演算回路で生成されたキャリー信号のいずれか一方を選択するキャリーセレクタとキャリーセレクタへ選択信号を出力する外部回路から読み書き可能なＲＡＭとを有するキャリー分配回路を備えれば、各演算回路に対するキャリー接続を任意に出来るので、１つのオペコードで複数の演算命令をエンコードすることができる。
また、請求項５に記載の発明によると、サーボ制御装置が請求項１乃至４に記載のＡＬＵ回路を備えているので、サーボ制御装置への入力指令の変更あるいは制御性能向上に伴う演算命令の変更や新規の演算命令の追加が発生しても、大幅な回路の変更なしにこれに対応できる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【０００７】
図１は、本発明の第１実施例を示すＡＬＵ回路のブロック図である。
図１において、１０はＡＬＵ回路で、ルックアップテーブル（Look-Up-Table、以下ＬＵＴと記す）１１と複数の演算回路１２から構成されている。
また、ＬＵＴ１１は、ＲＯＭセレクタ１１１と複数のＲＯＭ１１２備え、それぞれのＲＯＭ１１２には２入力に対して１ビットの、それぞれの演算に対応したテーブルが記憶されている。ＬＵＴ１１の出力は、全ての演算回路に共通に接続されており、演算を実行する場合、ＲＯＭセレクタ１１１は、オペコードＳ１が規定した演算指令に対応するＲＯＭを選択し演算回路に入力する。各演算回路１２は、出力生成回路１２１とキャリー生成回路１２２を備え、出力生成回路１２１はオペコードＳ１が指定した論理演算を実行し、キャリー生成回路１２２は演算に伴うキャリー信号を生成する。演算回路１２は、データのビット数と同数の回路を必要とする。本実施例では２つのオペランドＳ２、Ｓ３のデータ長を８ビットとしたので８個の演算回路で構成されている。
なお、本実施例ではデータ長を８ビットとしたが、データ長は８ビットに限定されない。
ひとつのＲＯＭには１ビットの２入力で必要な論理が記憶されており、ＲＯＭセレクタはオペコードが規定する演算に必要な論理が記憶されたＲＯＭを選択する。
オペコードＳ１が指定した論理の演算を８ビットのデータＳ２およびＳ３に対して実行する場合、データの各ビットが実行する演算内容はビットにより異ならないので、ＬＵＴ１１の出力をすべての演算回路１２の入力として共通に与えることができる。
【０００８】
次に、本実施例の具体的な動作について説明する。
ＬＳＢ（Least Significant Bit）を演算する演算回路１２Ｌには、ＬＵＴ出力、オペコード、データＡ[０]、データＢ[０]および外部からのキャリー入力Ｓ４が入力される。このとき、ＬＵＴ１１の出力には、オペコードＳ１が規定したＲＯＭ１１２の論理テーブルが出力されており、演算回路１２Ｌ内の出力生成回路 １２１は、データＡ[０]、データＢ[０]に対応する論理テーブルの値（ＬＵＴ出力）を読み出し演算結果である出力Ｄ[０]を得る。
【０００９】
また、キャリー生成回路１２２は、データＡ[０]、データＢ[０]、外部からのキャリー入力Ｓ４の３入力に対してオペコードが規定した演算による１ビットのキャリー出力Ｃ[０]を生成する。このキャリー出力Ｃ[０]は、上位ビット側のキャリー生成回路のキャリー入力となる。同様な演算が各演算回路１２でそれぞれのデータビットに対して行なわれ、各出力生成回路 １２１からの出力[７:０]と、ＭＳＢ（Most Significant Bit）を演算する演算回路１２Ｍからのキャリー出力Ｃ[７]がキャリー出力Ｓ５としてＡＬＵ回路１から出力される。
【００１０】
このように本実施例では、異なる演算に対応する論理テーブルが格納された複数のＲＯＭの中からオペコードで指定された論理テーブルが格納されたＲＯＭの出力を選択し、複数の演算回路の共通の入力としたので、各演算回路に対してそれぞれＬＵＴを設ける必要が無くメモリの容量を抑えることができる。従って、ＡＬＵ回路のゲート規模を低減できる。
【実施例２】
【００１１】
図２は、本発明の第２実施例を示すＡＬＵ回路のブロック図である。
図において１５はＲＡＭ、１６は演算回路１２への入力を与える拡張セレクタ、１７はキャリー分配回路である。
本発明が第１実施例と異なる点は、演算回路と同数のバスにより外部回路から読み書き可能なＲＡＭ１５と、オペコードによりＬＵＴの出力とＲＡＭの出力を選択する拡張セレクタ１６を備えた点と、外部からのキャリー信号又は演算回路で生成されたキャリー信号のいずれか一方を選択するキャリーセレクタと外部回路から読み書き可能なＲＡＭで構成され、キャリーセレクタへ選択信号を出力するキャリー分配回路１７を備えた点である。
【００１２】
ＲＡＭ１５は各演算回路１２に対応してそれぞれ設けられ、オペコードＳ１により拡張セレクタ１６を用いて、ＬＵＴ１１の出力とＲＡＭ １５の出力が選択できるようになっている。キャリー分配回路１７は、バス７により外部回路から読み書き可能なキャリー選択ＲＡＭ１７２を備え、その出力はそれぞれのキャリーセレクタ１７１に接続されている。キャリーセレクタ１７１は、演算内容に対応した外部からのキャリー信号である外部キャリー信号Ｓ４０又は演算回路１２で生成された内部キャリー信号Ｃ４０のいずれか一方を選択する。この選択のための信号は、バス７から供給され、キャリー選択ＲＡＭ１７２に記録される。
【００１３】
次に、演算回路間で異なる演算を行なう場合の動作について説明する。
オペコードＳ１には、ＬＵＴ１１の出力またはＲＡＭ １５の出力の選択するための信号が書かれており、拡張セレクタ１６は、ＬＵＴ１１の出力またはＲＡＭ １５の出力のいずれかを選択する。さらに、オペコードＳ１にはＬＵＴ１１内のＲＯＭを指定するデータが記載されており、ＬＵＴ１１の出力が選択された拡張セレクタと接続されている演算回路は、オペコードＳ１で指定されたＲＯＭのデータを読み出すことによって所定の演算を行ない、ＲＡＭ１５の出力が選択された拡張セレクタと接続されている演算回路は、ＲＡＭ１５に記憶された所定の演算を行う。また、キャリー選択ＲＡＭ１７２にはバス７からの信号によって外部キャリー信号Ｓ４０を選択する選択信号が記録されており、拡張セレクタ１６によってＲＡＭ１５の出力が選択された演算回路のキャリー生成回路には外部キャリー信号Ｓ４０が入力される。
【００１４】
これによって、例えば、下位４ビットの論理和を取りたいが、上位４ビットは無効なデータの場合、上位４ビットは論理積、下位４ビットは論理和の論理を記憶することで所定の演算を行なうことができる。
【００１５】
このように、本実施例ではＡＬＵ回路が、バスにより外部回路から読み書き可能なＲＡＭと、オペコードによりＬＵＴの出力とＲＡＭの出力を選択する拡張セレクタを備えているので、大幅な回路の変更なしに新規の演算命令を追加できる。
また、ＡＬＵ回路が、キャリーセレクタとこのキャリーセレクタへ選択信号を出力する外部回路から読み書き可能なＲＡＭを備えているので、外部回路からの信号によって外部キャリー信号又は内部キャリー信号のいずれか一方を選択できる。従って、１つのオペコードで複数の演算命令をエンコードできる。すなわち、演算回路間のキャリーの接続を可変にできるため、ビットごとに演算を変更することができ、例えばＳＩＭＤ（Single Instruction Multi Data）命令のような、複雑な命令も新規命令として追加することができるようになるのである。
【実施例３】
【００１６】
図３は、本発明の第３実施例を示すサーボ制御装置のブロック図である。
図において、５０はサーボ制御装置、６０はサーボモータ、７０はエンコーダである。また、５１は図示しない上位コントローラからの速度指令または位置指令とエンコーダ７０からのフィードバック信号を比較してその偏差を演算しサーボモータの回転速度または回転位置を制御する制御回路部で、制御ソフトウェアを実行するために実施例２で示したＡＬＵ回路５１１を備えている。５２はドライブ回路、５３はパワー部で、ドライブ回路５２は、制御回路部５１からの制御信号に基づいてパワー部５３の図示しないパワー素子を駆動するためのドライブ信号を生成し、パワー部５３はドライブ信号に基づいてサーボモータ６０に電源を供給する。
【００１７】
サーボ性能を向上する、あるいは新たな入力指令に対応する場合、ＡＬＵ回路に対して新たな演算が必要になる場合がある。本実施例ではＡＬＵ回路が実施例２で示したＡＬＵ回路を備えているので、大幅な回路の変更なしに新規の演算命令を追加できる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施例を示すＡＬＵ回路のブロック図
【図２】本発明の第２実施例を示すＡＬＵ回路のブロック図
【図３】本発明の第３実施例を示すサーボ制御装置のブロック図
【図４】従来の演算器の構成を示すブロック図
【符号の説明】
【００１９】
１０    ＡＬＵ回路
１１      ＬＵＴ
１１１    ＲＯＭセレクタ
１１２    ＲＯＭ
１２      演算回路
１２１    出力生成回路
１２２    キャリー生成回路
１５    ＲＡＭ
１６    拡張セレクタ
１７    キャリー分配回路
１７１    キャリーセレクタ
１７２    キャリー選択ＲＡＭ
５０    サーボ制御装置
５１    制御回路部
５１１    ＡＬＵ回路
Ｓ１      オペコード
Ｓ２、Ｓ３      オペランド
Ｓ４    キャリー入力
Ｓ４０  外部キャリー入力
Ｃ４０  内部キャリー入力
Ｓ５、Ｓ５０      キャリー出力
【図１】
2010026585.tif 000003
【図２】
2010026585.tif 000004
【図３】
2010026585.tif 000005
【図４】
2010026585.tif 000006