JPS6033633A - 電子計算機 - Google Patents

電子計算機

Info

Publication number
JPS6033633A
JPS6033633A JP58142415A JP14241583A JPS6033633A JP S6033633 A JPS6033633 A JP S6033633A JP 58142415 A JP58142415 A JP 58142415A JP 14241583 A JP14241583 A JP 14241583A JP S6033633 A JPS6033633 A JP S6033633A
Authority
JP
Japan
Prior art keywords
register
contents
instruction
code
machine language
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
JP58142415A
Other languages
English (en)
Other versions
JPH0560130B2 (ja
Inventor
Yoichi Kawabata
洋一 川端
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP58142415A priority Critical patent/JPS6033633A/ja
Publication of JPS6033633A publication Critical patent/JPS6033633A/ja
Publication of JPH0560130B2 publication Critical patent/JPH0560130B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 技術分野 本発明は特にスレソデイド拳コードのネスティング処理
に適した電子計算機に関するものである。
従来技術 一般にFORTRAN等の高級計語で書かれたプログラ
ムはコンパイラと呼ばれる翻訳プログラムでその計算機
の機械語に翻訳されてから実行される。しかしながら、
現在一般に使われている319機の機械語とF ORT
 RA N 557Hの文との間には機能上及び意味上
のキャップが大きく、コンパイラに多大な処理を強いる
為コンパイラが複雑巨人化し、かつ生成されるオブジェ
クトコードも長くなるといった結果を招いている。特に
ミニコンピユータやマイクロコンピュータに於ては、命
令セットとして基本的なものしか持ってl/Xなしλの
でこの傾向は大きい。そこでマクロコンピュータに於て
はコンパイラが闘訳し易1.N様に設定された疑似命令
をオブジェクトとして生成し、インタープリタと呼ばれ
る通訳プログラムか解釈しつつ実嗜テするという手法を
とる事が多1.)。この様な処理系の例としてはPAS
CALのPコードが著名である。
しかしこの方式の欠点は、上記の疑似命令をフェッチし
、デコードし、各命令処理Jレーチンヘジャンプすると
いう処理を疑似命令列の一つ一つについてソフトウェア
的に処理しなけれifならなし)為、実行時間が遅くな
るということである。
別のアプローチとしては、コンノくイラが機械語命令中
のジャンプサブルーチン命令を用し)、その命令列とし
てオブジェクトコード群を生成するという手法も採られ
てきた。
このジャンプサブルーチン命令による方法は計算機がジ
ャンプサブルーチン命令をそのまま実行できるのでソフ
トウェアによるフェッチやデコード処理といったオーバ
ーヘッドは無くなる。しかし、疑似コードに比較してオ
ブジェク)・コードが長くなる欠点がある。
本発明に係るスレツブイド・コードによる手法は、上記
の2つのアプローチの中間に位置するもので、言わばジ
ャンプサブルーチンの飛び先番地部だけを並べた物であ
る。スレツブイド・コードによる方式はジャンプサブル
ーチン方式よりもオブジェクトが短く、時間的なオーバ
ーヘッドが多少あるものの疑似命令方式に比してはるか
に小さいという特徴を持つ。スレツブイド・コード方式
を用いた例としてはFORTH処理系が著名である。
目的 本発明の目的はFORTHの場合の様にスレツブイド・
コードのネスティングを許しかつ、実行時間がジャンプ
サブルーチン方式と同程度若しくはそれより短縮可能な
電子計算機を提供する事にある。
実施例 第1図はスレツブイド−コードによる処理手順の概念図
である。
図中、MA−L 、MB−1、MC−1で表わされてい
る部分は一連の機械語命令列から成る部分であり、プロ
グラムカウンタPCにより指示される機械語命令は命令
レジスタIRにフェッチされ、実行される。SCで示さ
れているスレツブイド・コード列の各内容はそれらの機
械語命令部分へのジャンプ先ポインタ(1−1,1−2
゜■−3,・・・)となっている。図中に示されている
レジスタRは、次に実行すべきス1/ソディト・コ−1
・の番地を保持しており、錠似プログラムカウンタの役
割をする。
第2図において、SCの」二から3番11に示されてい
る様にレジスタRで指定されたscのポインタl−3が
他のスレツブイト・コーI・を指す′ハもある。これを
スレツブイト・コートがネスティングされているとM−
)、FORTRAN処理系等に於処理車スティングする
B l;l: JulであるがFORTHに於ては頻繁
に起る。
5て、まず第1図の様にネスティングの無い場合を考え
る。まず、サブルーチンに相当する機械語命令列MB−
1の最後に行う機械11/1列終了命令rRETJの処
理はレジスタRが指すポインタraJでアドレスされる
機械語命令rA4へ間接ジャンプを行い、かつRが次の
スレツブイド・コード「d」のある番地を指す(点線1
′)様にインクリメントすることである。
この様なレジスタHの自動増加を伴なったメモリの間接
ジャンプ命令はDEC社のミニコンであるFDP−11
等で既に用いられている事は周知の事実である。しかし
ながらこの命令のみではスレツデイドeコードのネステ
ィングに対処できない。従ってFORTH処理系にこの
まま適用する事はできない。
第3図は本発明の一実施例の動作を説明する概念図であ
る。本発明に係るネスティングの処理は、先ずネスティ
ング先に第4図で示す処理を行う第1の機械語命令「P
」を設ける事により他の既存の機械語命令列部MA−1
.MC−1等を占き換える事なくネスティング処J11
1のfJt存がHf能となる。
以下その動作を第3図、第4図に従って具体的に説明す
る。まず第3 IMにおいてレジスタRの内容「4」に
よって示されるscの内容のスレッデイトφコードrn
Jがプログラム・カウンタPCに移され、かつHの内容
がプラス1更新される。
間接ジャンプは通常の機械語命令列の実行がなされる場
合と同様にしてコード「PJがInにフェッチされる。
フェッチ後は、PCの内容が次の命令語アドレスを示す
ためにrl」が加えられ、rn+lJ となる。ここま
でがネスティングするスレツブイド・コード列SC−1
の先頭におかれた機械語命令rpJのフェッチの過程で
ある。次に「P」の実行は、第4図のようになる。f?
J4図に於て処理1ではスタックSTK中へ命令「P」
で指定されたレジスタ只の内容r5Jをブツシュする処
理を行う。スタックSTKに格納するアドレスはスタッ
クポインタSPによって管理されている。次に処理2で
プロクテムφカウンタPCの内容rn+1」をレジスタ
Hに移す。次に処理3でレジスタRが指すスレツブイド
・コート「c」をプログラム・カウンタPCにロードし
、かつレジスタHの内容は次の番地(n+2)を指す様
にプラス1更新する。
以上の処理によりレジスタHの11]内容「5」はスタ
ックSTK中へ退避された後、新しくn+2を指す様に
更新され、n+1番地の内容「cJカ(指す機械語命令
列の実行に制御が移行する。このようにして、スレツブ
イト・コード列5C−1へのネスティング遷移ができた
。従って、以下、ネスティングしたスレツブイド・コー
ドの継続する区間は通常のスレツブイト・コートの実1
Jとして行われる。
さて、次に「戻り処理」の説明に移る。第3図中アドレ
スrn+5JのスレツデイV’−コードr交」を実行す
る場所に第2の機械171!命令rQJが設けられてい
る。これはネスティング前のスレツブイド・コード列S
Cの適切な戻り先への「戻り処理」を実行するための命
令である。第5図にはその処理内容を示す。まず、処理
4でスタックSTKから命令rQJで指定ネれたレジス
タHにその内容「5」をポツプアップする。この場合の
処理は第4図の処理lの逆処理に相当し、退避されたレ
ジスタRの内容を復元する°1¥を、a、味する。
次にR「5」が指すメモリの内容raJをプログラム・
カウンタPCにロードし、かつ]/シスタRには次の番
地を指す様lを加え「6」に更新する。このようにする
と、SCはスレツブイド・コードのネスティングより戻
り、次のスレツブイト・コー1”raJつより機械語命
令群rM(、−1」の処理が可能となる。
第3図のように第2の機械語命令「Q」をネスティング
したコート群SC−1から独立した場所に置けることは
結局複数のネスティングコード群からの戻り処理として
この単一の機械語命令rQJを利用できることを意味す
る。このことはメモリの節約にもつながる。勿論ネステ
ィングの更にネスティングが行えることは明らかである
このような第1及び第2の機械語命令の処理を具体的に
実行するハードウェアはこのコマンドコードを識別する
デコーダ手段とタイムシーケンスに従って第4図及び第
5図の処理を実行するレジスタ処理手段を伺加するだけ
で容易に実現される。
:56図に一実施例の電r−51算機の概略構成ブロッ
ク図を示す。ここで、1はスタックを含む主記憶メモリ
、2はメモリを7トレンシングするメモリアドレスレジ
スタ(MAR)、3はデータの読み占きを行なうメモリ
バイトレジスタ(MBR)である。
命令レジスタ(IR)6にフェッチされた命令はテコ−
タフで解読される。次に制御回路8は解読ごれたデコー
ト信号に従ってレジスタ群4と算術論理演算回路(AL
U)5を制御する。例えば、命令語で指定されたレジス
タの内容はSバス9を介してMAR2に転送される。M
BR3に読み出されたデータをALU5とD/<ス10
を介してプログラムカウンタPCにセントすることも可
能である。また、ALU5はSバス9から取り込んだ内
容に演算をほどこして結果をレジスタ群4のなかの所定
のレジスタに格納できる。そしてこのような処理は主記
憶メモリ1のプログラムに従って実行される。
特に、マイクロプログラミング方式の電子51算機であ
れば、処理手順を記憶させたROMにこのような処理手
順を新たに書込付加するだけで良い。
効果 以上述べてきた如く本発明によれば、従来行われてきた
スレツデイトΦコードのフェッチ処理のオー/ヘーヘッ
トを無くすばかりでなく全体としての実行速度もジャン
プサブルーチン方式以上の迅速な処理速度が得られる。
【図面の簡単な説明】
第1図は一般的なスレツブイト・コー)・の処理r順を
示す概念図、 第2図はネスティングを有するスレツブイド争コードの
処理のN念図、 第3図は本発明の一実施例の動作を説明するための概念
図、 第4図は、第3図のP部の処理り順を示すフローチャー
ト、 第5図は、第3図の9部の処J!I! T−11「1を
示すフローチャート、 第6図は一実施例の電子819o機の概略構成を示すブ
ロック図である。 図中、R・・・レジスタ、PC・・・プログラム・カウ
ンタ、IR・・・命令レジスタ、SP川用タック書ポイ
ンタ、SC,5C−1・・・スレツブイト・コード列、
P・・・第1の機械語命令、Q・・・第2の機械語命令
、RET・・・機械語列終了命令、MA−1,MB−1
,MC−1・・・機械語命令列である。

Claims (1)

    【特許請求の範囲】
  1. (1)命令語で指定されたレジスタが指す番地の内容を
    間接語とみなして間接アクセスをするとともに前記レジ
    スタの内容を前記間接語の次の間接+j/jを指すよう
    に更新をするアドレッシングモートを有する電子計算機
    において、1の命令語の実行11+jに、該1の命令語
    で指定されたレジスタの内容をスタックにプンシュし、
    次に該lの命令語の次の間JM nBの番地を前記lの
    命令語で指定されたレジスタにロードし、次に前記アト
    レンジングモートを用いて間接ジャンプをする前記lの
    命令:j、r)の実行f段を有することを特徴とする電
    子計(2)命令語で指定されたレジスタ力曵指す番地の
    時に、スタックの内容を該lの命令コムで指定されモー
    ドを用いて間接ジャンプをするnOO12命令機。
JP58142415A 1983-08-05 1983-08-05 電子計算機 Granted JPS6033633A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58142415A JPS6033633A (ja) 1983-08-05 1983-08-05 電子計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58142415A JPS6033633A (ja) 1983-08-05 1983-08-05 電子計算機

Publications (2)

Publication Number Publication Date
JPS6033633A true JPS6033633A (ja) 1985-02-21
JPH0560130B2 JPH0560130B2 (ja) 1993-09-01

Family

ID=15314798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58142415A Granted JPS6033633A (ja) 1983-08-05 1983-08-05 電子計算機

Country Status (1)

Country Link
JP (1) JPS6033633A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61281339A (ja) * 1985-03-29 1986-12-11 Fujitsu Ltd 情報処理装置の命令分岐方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61281339A (ja) * 1985-03-29 1986-12-11 Fujitsu Ltd 情報処理装置の命令分岐方式
JPH0417529B2 (ja) * 1985-03-29 1992-03-26 Fujitsu Ltd

Also Published As

Publication number Publication date
JPH0560130B2 (ja) 1993-09-01

Similar Documents

Publication Publication Date Title
US5115500A (en) Plural incompatible instruction format decode method and apparatus
US6654875B1 (en) Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator
US7343471B2 (en) Processor and method for generating and storing compressed instructions in a program memory and decompressed instructions in an instruction cache wherein the decompressed instructions are assigned imaginary addresses derived from information stored in the program memory with the compressed instructions
US4179731A (en) Microprogrammed control system
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
JP2002328804A (ja) データ処理装置、命令セット切換方法、データ処理アーキテクチャおよびデータ処理装置作動方法
US5446849A (en) Electronic computer which executes squash branching
EP0476722A2 (en) Data processing system
US4388682A (en) Microprogrammable instruction translator
JPS62197830A (ja) デ−タ処理システム
US5682531A (en) Central processing unit
US5574887A (en) Apparatus and method for emulation routine pointer prefetch
US3698007A (en) Central processor unit having simulative interpretation capability
US5590358A (en) Processor with word-aligned branch target in a byte-oriented instruction set
KR100601745B1 (ko) 다중 데이터형 결과를 발생하는 컴퓨터 명령
JP2004086837A (ja) データ処理装置
US5247624A (en) Microprogram controller including leading microinstruction from a generator executed while succeeding microinstruction from memory is read out
US5390306A (en) Pipeline processing system and microprocessor using the system
JPS6212529B2 (ja)
JPS6033633A (ja) 電子計算機
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
JP2583506B2 (ja) データ処理装置
JP4545777B2 (ja) データ処理装置
US7966473B2 (en) Optimised storage addressing method
JPH0666052B2 (ja) メモリ内容を機械レジスタに自動的に写像する計算機