JP2004280664A - ビット演算装置 - Google Patents

ビット演算装置 Download PDF

Info

Publication number
JP2004280664A
JP2004280664A JP2003073510A JP2003073510A JP2004280664A JP 2004280664 A JP2004280664 A JP 2004280664A JP 2003073510 A JP2003073510 A JP 2003073510A JP 2003073510 A JP2003073510 A JP 2003073510A JP 2004280664 A JP2004280664 A JP 2004280664A
Authority
JP
Japan
Prior art keywords
bit
cpu
memory
data
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003073510A
Other languages
English (en)
Inventor
Kenji Hara
憲二 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2003073510A priority Critical patent/JP2004280664A/ja
Publication of JP2004280664A publication Critical patent/JP2004280664A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

【課題】改変された汎用CPUを用いて高速のPLCを実現することができるビット演算装置を提供する。
【解決手段】ビット演算回路2は、ビット単位でアクセス可能なメモリを備えるビットメモリ21と、CPU1のアドレスバスの出力の一部が演算命令として入力され、CPU1がビットメモリ21からデータを読み込もうとしている時に、CPU1からの演算命令に基づいてビットメモリ21から読み出した1ビットデータを用いて論理演算を行う演算部22とを有している。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、FA装置に用いるPLC(Programable Logic Controller)機能を実現するビット演算回路に関するものである。
【0002】
【従来の技術】
従来、CPUは、特許文献1に開示されたビットアクセス回路を用いて外部メモリにアクセスし、外部メモリとの演算命令によってビット単位で演算を行っていた。この技術は、CPUが、CPU内のアキュムレータの内容と外部メモリの内容との論理演算(AND、OR、EXORなど)を行う機能に着目したもので、外部メモリをビット単位でアクセス可能とし、外部メモリの内容とアキュムレータのMSB最上位ビットとの論理演算を1ビットずつ行うものである。
【0003】
【特許文献1】
特開昭59−77557号公報
【0004】
【発明が解決しようとする課題】
しかしながら、上述したような従来のアーキテェクチャーは、CPUの改変などにより、使用できなくなった。すなわち、最近のCPUでは、CPU内のアキュムレータの内容と外部メモリの内容との演算命令が除去された。
【0005】
CPUだけで演算を行うようにすると、ソフトウェアによって外部メモリからビットの抽出等を行うためにステップ数が増え、それにより、多量のビットデータを扱うPLC等では高速化を図ることが困難になってしまう。
【0006】
そこで、本発明の目的は、改変された汎用CPUを用いて高速のPLCを実現することができるビット演算装置を提供することにある。
【0007】
【課題を解決するための手段】
上記課題を解決するために本発明のビット演算装置は、CPUの外部にビット単位でアクセス可能なメモリと演算手段とを設け、CPUのアドレスバスの一部を演算手段に対する演算命令とし、CPUが外部のメモリを読み込もうとしている時に、演算手段にてCPUの動作タイミングでメモリから読み出した1ビットデータを用いて論理演算が行われるようにしている。
【0008】
したがって、汎用CPUのアドレスバスの一部を演算手段に対する演算命令とし、演算手段に論理演算を実行させることで汎用CPUのステップ数を減らすことが可能となるため、高速のPLCを実現することが可能となる。
【0009】
【発明の実施の形態】
図1は、本発明の一実施形態のビット演算装置を示す図である。
【0010】
図1を参照すると、本実施形態のビット演算装置は、CPU1と、ビット演算回路2(破線で囲まれた部分の回路)と、マルチプレクサ3とを有している。また、ビット演算回路2は、ビットメモリ(bitメモリ)21と、演算部22と、バスバッファ23と、論理素子24とを有している。
【0011】
CPU1は、アドレスバスが32ビットである汎用CPUであり、図1にはCPU1から出力される信号のうち必要な信号のみが図示されている。
【0012】
ビットメモリ21は、CPU1の32ビットのアドレスバス出力の一部がアドレス(AD)およびビットアドレス(bitAD)として入力される。ビットメモリ21は、特許文献1に開示されたビットアクセス回路およびRAMからなり、1ビット単位でビットデータのハンドリングを行うことができる。ビットメモリ21への1ビット単位のアクセス時にはメモリアドレスが8000万番地となる。また、ビットメモリ21への1バイト単位のアクセス時にはメモリアドレスがC000万番地となる。このように、ビットメモリ21は、別のメモリ空間(1バイト単位のアクセス時にはC000万番地)からバイトもしくはそれ以上の単位(ワード、Wワード)で直接アクセス可能となっている。
【0013】
演算部22は、CPU1の32ビットのアドレスバス出力の一部が演算命令として入力されるとともに、CPU1の32ビットのアドレスバス出力の一部がマルチプレクサ3を介して/CSとして入力される。/CSにはCPU1からビットメモリ21のメモリアドレスが入力され、例えば、1ビット単位のアクセス時には8000万番地が入力され、1ワード単位のアクセス時にはC000万番地が入力される。
【0014】
図2は、図1に示したCPU1のアドレスバスからビット演算回路2に入力されるデータを説明する図である。
【0015】
図2を参照すると、図中の向かって左側は演算部22に入力される演算命令を示し、真中はビットメモリ21に入力されるビットアドレスを示し、右側はビットメモリ21に入力されるアドレスを示している。
【0016】
CPU1の32ビットのアドレスバス出力のうち、最下位A0〜A15をビットメモリ21に対するアドレスとし、その上位のA16〜A18をビットメモリ21に対するビットアドレスとしている。図2の右に示すように、ビットメモリ21はCXXX、0000h〜FFFFhまで展開されている。例えば、ビットメモリ21のCXXX0100h番地の1バイトのデータについては、D0のビットを8XX00100hで指定し、D6のビットを8XX60100hで指定する等、上位のアドレスと0100hを用いてビットを指定する。
【0017】
本発明においては、CPU1の32ビットのアドレスバス出力のうち、さらに上位のA22、A21、A20を演算部22に対する演算命令コードとしている。すなわち、図2の左に示すように、例えば、800XXXXX番地のアクセスはLD命令で、801XXXXX番地のアクセスはAND命令となる。
【0018】
なお、CPU1の32ビットのアドレスバス出力のうち、最上位A31,30をビットメモリ21への1ビット単位のアクセスか、1バイト単位のアクセスかを示す/CSのデータとしている。A31,30が1,0である場合は1ビット単位のアクセスとなり、0,1である場合は1バイト単位のアクセスとなる。
【0019】
図3は、図1に示した演算部22の回路構成図である。
【0020】
図3を参照すると、演算部22は、マルチプレクサ221と、演算結果レジスタ222と、論理素子223〜227とを有している。
【0021】
マルチプレクサ221は、ビットメモリ21から読み出された1ビットのデータDinを、CPU1からA22、A21、A20で指定された演算命令に従って演算し、その演算結果を、論理素子226による/CSと/RDとのAND演算結果の立ち上がりエッジで演算結果レジスタ222に書き込む。
【0022】
CPU1からのA22の演算命令が1である場合はデータの反転命令となり、ビットメモリ21から読み出されたデータDinは論理素子223によるExOR演算により反転される。また、演算結果レジスタ222から出力されたデータRRoutは論理素子227によるExOR演算により反転され、反転されたデータはビットメモリ21に書き込まれる書き込みデータDoutとなる。
【0023】
また、演算結果レジスタ222から出力されたデータRRoutは、CPU1に入力されるとともに、論理素子224,225にも入力され、論理素子224,225によるデータDinとのAND、ORの演算を経て、マルチプレクサ221にフィードバックされる。
【0024】
図4は、図1に示したビット演算装置を用いた演算の実例を説明する図であり、(a)は当該演算をラダーで示す図、(b)は(a)をMIL記号で示す図である。図5は、図4に示した演算を行う場合において、CPU1が演算部22に与える命令と当該命令に対する演算部22の実実行内容とを示す図である。
【0025】
図4および図5を参照すると、CPU1の命令「MOV R,(80002341)」「MOV R,(80243256)」「MOV R,(80174275)」のそれぞれは、演算部22に対するLD命令、OR命令、AND命令となる(図2参照)。このように、CPU1が単にビットメモリ21からのデータ読み出しを繰り返している場合、演算部22は、CPU1からのLD命令、OR命令、AND命令に基づいて、ビットメモリ21の該当する番地から1ビットデータを読み出し、読み出したデータと演算結果レジスタ222の出力データとのLD演算、OR演算、AND演算を繰返し行う。
【0026】
一方、CPU1の命令「MOV R,(80375189),R」は、演算部22に対するOUT命令(図2参照)、すなわち書き込み命令となる(図2のNOTOUT命令も同様に書き込み命令となる)。このように、CPU1がビットメモリ21にデータを書き込もうとしている場合、演算部22は、CPU1からの書き込み命令に基づいて演算部22における上記の論理演算結果であるデータDoutをビット単位でビットメモリ21へ書き込むこととし、CPU1からのデータについてはビットメモリ21には書き込まない。
【0027】
CPU1は、スキャンの最後に、ビットメモリ21のC000万番地からバスバッファ23、データバスを介して演算結果を読み出し、データを処理する。
【0028】
なお、CPU1は、演算部22における演算結果によって処理のパスを変える必要がある時は、データバスを介してバスバッファ23から演算途中のデータを直に読み込み、そのデータに基づく状況判断の結果に応じて事後の処理を変えることも可能である。
【0029】
【発明の効果】
以上説明したように本発明においては、CPUのアドレスバスの一部が演算命令として入力され、CPUがメモリを読み込もうとしている時に、CPUからの演算命令に基づいてメモリから読み出した1ビットデータの論理演算を行う演算手段を設けた構成としている。それにより、汎用CPUを用いたとしても、その汎用CPUのアドレスバスの一部を演算手段に対する演算命令とし、演算手段に論理演算を実行させることで汎用CPUのステップ数を減らすことができるため、高速のPLCを実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態のビット演算回路を示す図である。
【図2】図1に示したCPUのアドレスバスからビット演算回路に入力されるデータを説明する図である。
【図3】図1に示した演算部の回路構成図である。
【図4】図1に示したビット演算装置を用いた演算の実例を説明する図であり、(a)は当該演算をラダーで示す図、(b)は(a)をMIL記号で示す図である。
【図5】図5は、図4に示した演算を行う場合において、CPUが演算部に与える命令と当該命令に対する演算部の実実行内容とを示す図である。
【符号の説明】
1 CPU
2 ビット演算回路
3 マルチプレクサ
21 ビットメモリ
22 演算部
23 バスバッファ
24 論理素子
221 マルチプレクサ
222 演算結果レジスタ
223〜227 論理素子

Claims (4)

  1. CPUと、前記CPUの外部に取り付けられたビット演算回路とを有してなるビット演算装置において、
    前記ビット演算回路は、
    ビット単位でアクセス可能なメモリと、
    前記CPUのアドレスバスの出力の一部が演算命令として入力され、前記CPUが前記メモリからデータを読み込もうとしている時に、前記演算命令に基づいて前記メモリから読み出した1ビットデータを用いて論理演算を行う演算手段とを有することを特徴とするビット演算装置。
  2. 前記演算手段は、前記CPUが前記メモリにデータを書き込もうとしている時に、前記演算命令に基づいて前記演算手段における論理演算結果を前記メモリに書き込み、前記CPUからのデータについては前記メモリに書き込まない、請求項1に記載のビット演算装置。
  3. 前記メモリは、別のメモリ空間からバイトもしくはそれ以上の単位で直にアクセス可能である、請求項1または2に記載のビット演算装置。
  4. 前記CPUは、前記演算手段における演算途中の論理演算結果を直に読み込み、読み込んだ論理演算結果に基づく条件判断の結果に応じて事後の処理を変える、請求項1から3のいずれか1項に記載のビット演算装置。
JP2003073510A 2003-03-18 2003-03-18 ビット演算装置 Pending JP2004280664A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003073510A JP2004280664A (ja) 2003-03-18 2003-03-18 ビット演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003073510A JP2004280664A (ja) 2003-03-18 2003-03-18 ビット演算装置

Publications (1)

Publication Number Publication Date
JP2004280664A true JP2004280664A (ja) 2004-10-07

Family

ID=33289392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003073510A Pending JP2004280664A (ja) 2003-03-18 2003-03-18 ビット演算装置

Country Status (1)

Country Link
JP (1) JP2004280664A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105209986A (zh) * 2013-05-17 2015-12-30 三菱电机株式会社 可编程控制器及其外围装置、以及可编程控制器的表数据访问程序

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105209986A (zh) * 2013-05-17 2015-12-30 三菱电机株式会社 可编程控制器及其外围装置、以及可编程控制器的表数据访问程序

Similar Documents

Publication Publication Date Title
JP6154824B2 (ja) ステートマシンラチスにおけるブール型論理
JP6280121B2 (ja) 状態機械エンジンにおける命令挿入
JP6041987B2 (ja) 状態機械エンジンにおいて状態ベクトルデータを使用するための方法およびシステム
TW201333838A (zh) 用於狀態機中資料分析之系統與方法
US10133497B1 (en) SPI command censoring method and apparatus
TWI534615B (zh) 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法
JP2773471B2 (ja) 情報処理装置
US20020169900A1 (en) Direct memory access controller, and direct memory access control method
JP2004280664A (ja) ビット演算装置
JPH03204718A (ja) 情報処理装置
JPS62156742A (ja) デ−タ書込み制御方式
JP2007048090A (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
JP2004355432A (ja) エンディアン変換回路
JP5437878B2 (ja) 情報処理装置
JP3043861B2 (ja) データ処理装置
JPH0997211A (ja) バス制御装置、及びバス制御装置を含む情報処理装置
JP4553622B2 (ja) データ処理装置
JP4583981B2 (ja) 画像処理装置
KR100336743B1 (ko) 데이터처리회로
TW470880B (en) Device and method for accessing BIOS data
JP2004246678A (ja) データ記憶処理装置およびこれを備えたデータ記憶装置
JPH0212358A (ja) データ転送方式
JP4682786B2 (ja) マイクロコンピュータ
JP2008083772A (ja) データ処理装置
JP2006318172A (ja) マイクロコンピュータ