JP2008102563A - プログラマブルコントローラの演算方式 - Google Patents

プログラマブルコントローラの演算方式 Download PDF

Info

Publication number
JP2008102563A
JP2008102563A JP2006282089A JP2006282089A JP2008102563A JP 2008102563 A JP2008102563 A JP 2008102563A JP 2006282089 A JP2006282089 A JP 2006282089A JP 2006282089 A JP2006282089 A JP 2006282089A JP 2008102563 A JP2008102563 A JP 2008102563A
Authority
JP
Japan
Prior art keywords
instruction
register
parenthesis
operator
operand
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.)
Granted
Application number
JP2006282089A
Other languages
English (en)
Other versions
JP4735507B2 (ja
Inventor
Tetsuya Kobayashi
哲也 小林
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.)
Meidensha Corp
Meidensha Electric Manufacturing Co Ltd
Original Assignee
Meidensha Corp
Meidensha Electric Manufacturing Co Ltd
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 Meidensha Corp, Meidensha Electric Manufacturing Co Ltd filed Critical Meidensha Corp
Priority to JP2006282089A priority Critical patent/JP4735507B2/ja
Publication of JP2008102563A publication Critical patent/JP2008102563A/ja
Application granted granted Critical
Publication of JP4735507B2 publication Critical patent/JP4735507B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】括弧付き命令を含む数値論理演算に、必要とする命令の種類を削減すると共にマッピングマッピングRAMの必要容量を減らす。
【解決手段】括弧命令と演算子の並びは、左括弧命令をオペコードに、演算子をオペランドに分けてレジスタ(IR0)に格納し、レジスタ(IR)のオペコードが左括弧命令になるとき、そのオペランドの演算子をインストラクションスタック(IS)に格納しておき、マイクロコードのデコード出力に従ってレジスタ(IR0)に含まれるオペコードとインストラクションスタック(IS)にプッシュされたオペランドを切り替えてMAPRAMのマッピングアドレスとする。
MAPRAMを2ポート構成とし、一方のポートはレジスタ(IR0)にリードされたインストラクションをマッピングアドレスとし、他方のポートをレジスタ(IR1)のオペランドをマッピングアドレスとして切り替えることも含む。
【選択図】図1

Description

本発明は、プログラマブルコントローラに係り、特に括弧命令と演算子の組み合わせになるアプリケーションプログラム命令を、パイプライン処理およびマイクロコード制御で実行するための演算方式に関する。
プログラマブルコントローラは、プログラムメモリ上に格納されたアプリケーションプログラム命令の羅列を順次読み出し、解析し、その結果に基づき演算を実行する。
プログラマブルコントローラの言語のうち、ラダー言語とIL(Instluction List)言語は主に数値論理演算プログラムを構築するのに利用され、図3にラダープログラムの例を、図4にIL言語の例を示す。このプログラムをブール式で表現すると、下記の(1)式となる。
[数1]g=aANDbAND(cOR(dANDe))ANDf…(1)
プログラマブルコントローラは、(1)式の右辺の左側から右側に向かって各命令を順番に読み出し、各命令が意味する論理演算を実行することで、図3のラダープログラムと同じ演算結果を得ようとする。
しかし、(1)式において、“AND(”と“OR(”に行き当たると、この2つの命令は括弧内を先に演算した後に演算すべき演算子であり、プログラマブルコントローラではこのままでは演算できない。
この問題を解消する手法として、プログラマブルコントローラにインストラクションスタック(IS)を設け、左括弧“(”に遭遇したときに、その直前の命令をインストラクションスタックにプッシュしておき、括弧内の命令を使った演算を先に実行し、その結果とインストラクションスタックにプッシュしておいた命令との論理積/論理和などの演算を行う方式を本願出願人は既に提案している(例えば、特許文献1参照)。
特開平11−288306号公報
プログラマブルコントローラのアプリケーションプログラムを実行する専用プロセッサをパイプライン、マイクロコード制御方式にて構築する場合、図5のような構成となる。なお、パイプラインとはハードウェアを並列処理させて性能を向上させるための手法であり、マイクロコード方式とはアプリケーションプログラムの1命令を実行するためにプロセッサ内部にプログラムを具備して実行する方式である。
図5の構成による演算は以下のように実行される。
(1)PC(プログラムカウンタ)をアドレスとして、PM(プログラムメモリ)からインストラクションをリードし、インストラクションレジスタ(IR0,IR1,IR)に順次格納する。
図5では3段のパイプライン構成を示しており、IRに格納されているインストラクションの内容が演算される。すなわち、IRにカレントのインストラクションが格納され、IR1に次に実行されるインストラクションが格納され、IR0にその次に実行されるインストラクションが格納される。
したがって、3段のパイプライン処理の場合、PCはカレントのインストラクション実行位置より+3進んだアドレス位置を示している。
(2)インストラクションにはオペコードとオペランドが含まれ、図5ではオペコード(OPC)、オペランド(OPR)を含めてインストラクションレジスタに格納される。
(3)IR0のオペコードをアドレスとしてMAPRAM(マッピングRAM:マイクロコードのエントリアドレスを格納しているRAM)をリードしてMAPREG(マップレジスタ)に格納する。
(4)MAPREGをアドレスとしてMCRAM(マイクロコードRAM)をアクセスし、MCREG(マイクロコードレジスタ)へ格納し、MCREGの内容をDEC(デコーダ)でデコードして、専用プロセッサ内部の演算処理などを行う。
つまり、MAPREGには次に実行されるオペコードを変換したマイクロコードのエントリアドレスが格納されている。カレントの命令処理を終了した後、MAPREGを使って次のエントリへジャンプする。この処理は一般的にマッピングジャンプと呼ぶ。
(5)ALU(数値演算器)前段のマルチプレクサ(MUX)はMCREGのデコード内容に応じて演算対象を決定する。
図5の構成においては、同図中に命令(A)で例を示すように、オペコードが左括弧命令と演算子の組になる “AND(”など、論理演算式に括弧付き命令を含ませる場合には、演算子の数だけ左括弧命令が必要となる。つまり、オペコードの種類が増大し、それに伴ってMAPRAMの必要容量も増大する。
また、マイクロコードも右括弧命令“)”を実行するにあたり、IS(インストラクションスタック)に退避された演算子の内容に応じて演算を行わなければならないため、マイクロコードの容量も増大する。
本発明の目的は、上記の課題を解決したプログラマブルコントローラの演算方式を提供することにある。
本発明は、前記の課題を解決するため、以下の演算方式とする。
(1)括弧命令と演算子の組み合わせになるインストラクションを複数段のインストラクションレジスタ(IR0,IR1,IR)に順次格納してパイプライン処理し、前記レジスタ(IR0)に読み出されるオペコードをアドレスとして、MAPRAM(マッピングRAM)に従ってMCRAM(マイクロコードRAM)をアクセスすることでマイクロコード制御するプログラマブルコントローラの演算方式であって、
括弧命令と演算子の並びは、左括弧命令をオペコードに、演算子をオペランドに分けて前記レジスタ(IR0)に格納し、
前記レジスタ(IR)のオペコードが左括弧命令になるとき、そのオペランドの演算子をインストラクションスタック(IS)に格納しておき、
前記マイクロコードのデコード出力に従って、前記レジスタ(IR0)に含まれるオペコードと前記インストラクションスタック(IS)にプッシュされたオペランドを切り替えて前記MAPRAMのマッピングアドレスとすることを特徴とする。
(2)括弧命令と演算子の組み合わせになるインストラクションを複数段のインストラクションレジスタ(IR0,IR1,IR)に順次格納してパイプライン処理し、前記レジスタ(IR0)に読み出されるオペコードをアドレスとして、MAPRAM(マッピングRAM)に従ってMCRAM(マイクロコードRAM)をアクセスすることでマイクロコード制御するプログラマブルコントローラの演算方式であって、
括弧命令と演算子の並びは、左括弧命令をオペコードに、演算子をオペランドに分けて前記レジスタ(IR0)に格納し、
前記MAPRAMを2ポート構成とし、一方のポートは前記レジスタ(IR0)にリードされたインストラクションをマッピングアドレスとし、他方のポートを前記レジスタ(IR1)のオペランドをマッピングアドレスとし、
前記レジスタ(IR1)のオペコードが左括弧命令になるとき、左括弧命令の実行時のオペランドの演算子を実行するためのマッピングアドレスを前記MAPRAMの他方のポートからインストラクションスタック(IS)に退避しておき、
前記マイクロコードのデコード出力が左括弧命令の実行になるとき、前記MAPRAMの一方のポートの出力を前記MCRAMのマッピングアドレスとし、右括弧命令の実行時に前記インストラクションスタック(IS)にプッシュされたアドレスを前記MCRAMのマッピングアドレスとして切り替えることを特徴とする。
以上のとおり、本発明によれば、以下の効果がある。
(1)左括弧命令“(”をオペコード、演算子をオペランドと区別することで、オペコードの種類を削減でき、MAPRAMの容量も削減できる。
(2)左括弧命令“(”をオペコード、演算子をオペランドと区別することで、括弧付き命令の演算子の命令と括弧無しの演算子の命令とを同じマイクロプログラムで実行できるため、マイクロプログラムの容量を削減できる。
(3)MAPRAMを2ポートメモリとすることにより、パイプライン制御に障害を及ぼすことなく、演算が実行できる。
(実施形態1)
図1は、本実施形態を示すプログラマブルコントローラの構成図である。同図が図5と異なる部分を説明する。IS(インストラクションスタック)は、IR(インストラクションレジスタ)に格納されるOPC(オペコード)が左括弧命令になるときに、OPR(オペランド)の演算子がプッシュされて格納する。MUX(マルチプレクサ)は、DEC(デコーダ)のデコード出力に従って、IR0(インストラクションレジスタ)に含まれるOPCとISにプッシュされたOPRを切り替え、これをMAPRAMに格納する。
図1の構成において、括弧命令と演算子の並びは、同図中に命令(A)で例を示すように、“AND(”のうち、オペコードに左括弧命令“(”を、オペランドに演算子“AND”を格納するように、左括弧命令“(”と演算子“AND”を区別したインストラクションの並びとする。
このように、左括弧命令を“(”をオペコード、演算子をオペランドと区別することで、図1中に(B)で示すように、IRのオペランド(右括弧命令の時に実行すべき演算子)がインストラクションスタック(IS)に格納される。
こうすることで、左括弧命令“(”では、オペランドに格納された演算子の種別に関わらず、IRのオペランドをISに退避させる処理を行うことになる。
したがって、演算子ごとに左括弧命令を持つ必要が無くなるため、オペコードの種類を削減でき、MAPRAMの容量も削減できる。
(実施形態2)
前記の図1において、左括弧命令付きのインストラクション“AND(”や“OR(”等を実行する場合、IS(インストラクションスタック)にはプログラムメモリに格納されているオペランドが格納されているため、ISを使ってMCRAM(マイクロコードRAM)をアクセスできない。したがって、ISを使ってマップジャンプ処理を行わなければならないため、パイプライン処理に障害が生じる。
そこで、本実施形態は、図2にプログラマブルコントローラの構成図を示すように、MAPRAM(マッピングRAM)を2ポート構成にする。このうち、一方のポートはIR0(インストラクションレジスタ)のオペコードをアドレスとし、他方のポートをIR1(インストラクションレジスタ)のオペランドをアドレスとする(図2のA)。また、IR1のオペランドをアドレスとしたMAPRAMのポートの出力にIS(インストラクションスタック)を置く。
この構成により、左括弧命令“AND(”実行時にオペランドに格納されている演算子のマッピングジャンプ先をISに退避しておき、右括弧命令“)”実行時にISに退避されている演算子を実行するためにISをエントリアドレスとしたマッピングジャンプ処理を行う(図2のB)。
これにより、パイプライン処理に障害を与えることなく、括弧付き命令を実行することができる。また、右括弧命令“)”において、マイクロコードではISに退避された演算子を実行すれば良くなるため、括弧無しの演算子と同じマイクロプログラムを実行することが可能である。したがって、マイクロコードのステップ数を削減できる。
なお、実施形態では、論理演算子の場合を示すが、ADD(加算)などの数値演算子を含むインストラクションの実行に適用して同等の作用効果を得ることができる。
本発明の実施形態1を示すプログラマブルコントローラの構成図。 本発明の実施形態2を示すプログラマブルコントローラの構成図。 ラダープログラムの例。 IL言語例。 従来のプログラマブルコントローラの構成図。
符号の説明
PM プログラムメモリ
IR0,IR1,IR インストラクションレジスタ
IS インストラクションスタック
MAPRAM マッピングRAM
MUX マルチプレクサ
MCRAM マイクロコードRAM
DEC デコーダ

Claims (2)

  1. 括弧命令と演算子の組み合わせになるインストラクションを複数段のインストラクションレジスタ(IR0,IR1,IR)に順次格納してパイプライン処理し、前記レジスタ(IR0)に読み出されるオペコードをアドレスとして、MAPRAM(マッピングRAM)に従ってMCRAM(マイクロコードRAM)をアクセスすることでマイクロコード制御するプログラマブルコントローラの演算方式であって、
    括弧命令と演算子の並びは、左括弧命令をオペコードに、演算子をオペランドに分けて前記レジスタ(IR0)に格納し、
    前記レジスタ(IR)のオペコードが左括弧命令になるとき、そのオペランドの演算子をインストラクションスタック(IS)に格納しておき、
    前記マイクロコードのデコード出力に従って、前記レジスタ(IR0)に含まれるオペコードと前記インストラクションスタック(IS)にプッシュされたオペランドを切り替えて前記MAPRAMのマッピングアドレスとすることを特徴とするプログラマブルコントローラの演算方式。
  2. 括弧命令と演算子の組み合わせになるインストラクションを複数段のインストラクションレジスタ(IR0,IR1,IR)に順次格納してパイプライン処理し、前記レジスタ(IR0)に読み出されるオペコードをアドレスとして、MAPRAM(マッピングRAM)に従ってMCRAM(マイクロコードRAM)をアクセスすることでマイクロコード制御するプログラマブルコントローラの演算方式であって、
    括弧命令と演算子の並びは、左括弧命令をオペコードに、演算子をオペランドに分けて前記レジスタ(IR0)に格納し、
    前記MAPRAMを2ポート構成とし、一方のポートは前記レジスタ(IR0)にリードされたインストラクションをマッピングアドレスとし、他方のポートを前記レジスタ(IR1)のオペランドをマッピングアドレスとし、
    前記レジスタ(IR1)のオペコードが左括弧命令になるとき、左括弧命令の実行時のオペランドの演算子を実行するためのマッピングアドレスを前記MAPRAMの他方のポートからインストラクションスタック(IS)に退避しておき、
    前記マイクロコードのデコード出力が左括弧命令の実行になるとき、前記MAPRAMの一方のポートの出力を前記MCRAMのマッピングアドレスとし、右括弧命令の実行時に前記インストラクションスタック(IS)にプッシュされたアドレスを前記MCRAMのマッピングアドレスとして切り替えることを特徴とするプログラマブルコントローラの演算方式。
JP2006282089A 2006-10-17 2006-10-17 プログラマブルコントローラの演算方式 Active JP4735507B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006282089A JP4735507B2 (ja) 2006-10-17 2006-10-17 プログラマブルコントローラの演算方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006282089A JP4735507B2 (ja) 2006-10-17 2006-10-17 プログラマブルコントローラの演算方式

Publications (2)

Publication Number Publication Date
JP2008102563A true JP2008102563A (ja) 2008-05-01
JP4735507B2 JP4735507B2 (ja) 2011-07-27

Family

ID=39436873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006282089A Active JP4735507B2 (ja) 2006-10-17 2006-10-17 プログラマブルコントローラの演算方式

Country Status (1)

Country Link
JP (1) JP4735507B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52153084A (en) * 1976-06-16 1977-12-19 Hitachi Ltd Sequencer
JPS5635213A (en) * 1979-08-29 1981-04-07 Mitsubishi Electric Corp Symbol converting system
JPH11288306A (ja) * 1998-04-02 1999-10-19 Meidensha Corp プログラマブルコントローラの演算方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52153084A (en) * 1976-06-16 1977-12-19 Hitachi Ltd Sequencer
JPS5635213A (en) * 1979-08-29 1981-04-07 Mitsubishi Electric Corp Symbol converting system
JPH11288306A (ja) * 1998-04-02 1999-10-19 Meidensha Corp プログラマブルコントローラの演算方式

Also Published As

Publication number Publication date
JP4735507B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
US20050289325A1 (en) Instruction set extension using operand bearing NOP instructions
US20120260061A1 (en) Data processing apparatus and method for performing vector operations
JP5491071B2 (ja) 命令融合演算装置および命令融合演算方法
US7647480B2 (en) Handling of conditional instructions in a data processing apparatus
TW201423579A (zh) 指令碼轉譯的自訂鏈結存根
US20090063822A1 (en) Microprocessor
JP2009508180A (ja) マイクロプロセッサにおける効率的なサブプログラムリターン
CN117193861A (zh) 指令处理方法、装置、计算机设备和存储介质
US20220035635A1 (en) Processor with multiple execution pipelines
JP4735507B2 (ja) プログラマブルコントローラの演算方式
JP4383496B1 (ja) マイクロコンピュータ及びその命令実行方法
JP3452989B2 (ja) 中央処理装置
KR100677207B1 (ko) Simd 디지탈 신호 처리기 및 연산방법
JP5437878B2 (ja) 情報処理装置
JPH10124312A (ja) 中央処理装置
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
JPH1124923A (ja) マイクロプロセッサ
JP5292831B2 (ja) プログラマブルコントローラ
JPH0358128A (ja) 情報処理装置
JPH0311430A (ja) フエッチアクセス時の異常処理方法
JP3795449B2 (ja) 制御フローコードの分離によるプロセッサの実現方法及びそれを用いたマイクロプロセッサ
JP2005134987A (ja) パイプライン演算処理装置
JP2008129667A (ja) プログラマブルコントローラ
JP2011170758A (ja) プロセッサ
KR100244210B1 (ko) 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110411

R150 Certificate of patent or registration of utility model

Ref document number: 4735507

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3