JPH0323938B2 - - Google Patents
Info
- Publication number
- JPH0323938B2 JPH0323938B2 JP56099204A JP9920481A JPH0323938B2 JP H0323938 B2 JPH0323938 B2 JP H0323938B2 JP 56099204 A JP56099204 A JP 56099204A JP 9920481 A JP9920481 A JP 9920481A JP H0323938 B2 JPH0323938 B2 JP H0323938B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- address
- memory block
- program
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 101001044053 Mus musculus Lithostathine-1 Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
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)
Description
本発明は、追加されたオプシヨンプログラムに
対する分岐アドレスを処理プログラムを要するこ
となく動的に生成する分岐アドレス生成方式に関
する。
I/O制御関係、言語関係等のプログラムはオ
プシヨンとすることが多く、かゝるオプシヨンプ
ログラムを基本プログラムに結合するには、基本
プログラムの該オプシヨンプログラムの分岐部分
の次の命令はプログラム例外としておき、該分岐
部分の命令が読出されたとき、オプシヨンプログ
ラムが追加されているなら、次は該オプシヨンプ
ログラムの先頭領域を指示する様にアドレスを変
更する。この変更処理を従来は、リンケージ等と
呼ばれる処理プログラムを用意してこれにより行
なうため、オプシヨンプログラム追加の操作が煩
雑になる欠点があつた。
本発明は、オプシヨンプログラムに対する分岐
アドレスを処理プログラムを要することなく簡易
に生成しようとするものである。本発明は基本プ
ログラムを格納した主メモリブロツクを備え、そ
してオプシヨンプログラムを格納した副メモリブ
ロツクを必要に応じて追加される電算機システム
での基本プログラムにおける分岐アドレス生成方
式において、主メモリブロツクに格納された基本
プログラムからオプシヨンプログラムへの分岐命
令の分岐先アドレスは主メモリブロツク内の所定
位置とし、且つ該所定位置には予め定められた所
定の命令を格納しておき、該分岐命令の実行に際
しては、該分岐命令のデコード結果と上記副メモ
リブロツク各々の実装状態を示す信号とのアンド
条件を調べ、該アンド条件が不成立の場合には前
記所定の命令を実行し、該アンド条件が成立の場
合にはその実装情報を取り入れて前記分岐命令の
有する前記分岐先アドレス部を、当該分岐命令が
示す副メモリブロツクをアクセスするように修飾
された形態とすることを特徴とするが、以下図示
の実施例を参照しながらこれを詳細に説明する。
第1図は本発明の一実施例を示す説明図であ
る。MEMは各種プログラムを格納するメモリ
で、複数のブロツクBL0,BL1……からなる。こ
れら複数のメモリブロツクBL0,BL1……はそれ
ぞれが異なるプリント基板上に形成され、少なく
とも基本プログラムを格納した主メモリブロツク
BL0が実装されていれば情報処理装置としての一
般的は機能は果される。これに対し、BL1,
BL2,……は例えばフオートランのコンパイラ
等、基本プログラムと結合して使用されるオプシ
ヨンプログラムを格納した副メモリブロツクで、
必要に応じて実装される。主メモリブロツクBL0
の基本プログラムでは、副メモリブロツクBL1が
未実装である場合、領域AR1から読出した命令
(この命令の次はBL1のプログラムへ移る)のネ
クストアドレス部は同じ主メモリブロツクBL0内
の他の領域AR2を指示する。この領域AR2は「プ
ログラム例外」を格納しており、こゝで基本プロ
グラムの実行は中断してオペレータ等による然る
べき処理待ちとなる。
これに対し、副メモリブロツクBL1が実装され
たときには、主メモリブロツクBL0の領域AR1か
ら読み出した命令のネクストドレス部が副メモリ
ブロツクBL1のオプシヨンプログラムの先頭領域
AR3を指示するように修飾することができれば、
リンケージ等の処理プログラムを要することなく
該オプシヨンプログラムは基本プログラムのAR1
領域の命令に続いて自動的に実行されることにな
る。本例ではこの分岐アドレス生成(修飾)をア
ドレス生成回路CONVで簡易に行なおうとする
ものである。第1図でメモリMEMのいずれかの
ブロツクから読出された命令は命令レジスタ
REG1に取り出され、そのうちのアドレスはアド
レス生成回路CONV、生成アドレスレジスタ
REG2、命令アドレスレジスタREG3を通して再
びメモリMEMのアクセスに用いられる。該アド
レスがオプシヨンプログラムへの分岐アドレスで
ないときはアドレス生成回路CONVを素通りす
る。これに対し該分岐アドレスであるときは副メ
モリブロツクBL1,BL2,……の実装情報C1,
C2,……に応じて修飾される。メモリMEMから
取り出したアドレスがオプシヨンプログラムへの
分岐アドレスであるか否かおよびどのオプシヨン
プログラムへの分岐アドレスであるかは命令レジ
スタREG1内のオペレーシヨンコードOPを命令
デコード回路DECでデコードして見れば分かる。
そして、該分岐アドレスであることが分つたとき
は、当該副メモリブロツクへジヤンプのためのア
ドレス修飾を行なう。この目的で命令のアドレス
部にはオプシヨンプログラムのためのアドレス部
optを設ける。領域AR1から取出した命令のopt部
は例えば0としておき、このアドレスopt=0が
オプシヨンプログラム実装有りにより変更される
ようにする。
第2図はアドレス生成回路CONVの具体例で
ある。命令レジスタREG1はオペレーシヨンコー
ドOPが書込まれる部分とネクストアドレスが書
込まれる部分との間に1〜数ビツトの余剰ビツト
を有し、実際にメモリMEMから読み出した命令
の前記アドレスoptを格納する。本例ではネクス
トアドレスは4ビツトb0〜b3、追加される副メモ
リブロツク数を3として、3ビツトのアドレスビ
ツト(opt)b4〜b6を用意する。この付加ビツト
b4〜b6はオアゲートOR1〜OR3を通して生成アド
レスレジスタREG2に入力する様にする。これに
対し本来のネクストアドレスb0〜b3はスルーでレ
ジスタREG2に入力する様にする。オアゲート
OR1〜OR3の他方の入力はアンドゲートAND1〜
AND3の出力である。このアンドゲートAND1〜
AND3はオペレーシヨンコードOPが、オプシヨ
ンプログラム分岐命令でないとき(即ち一般命令
や基本プログラム内への分岐命令のときはデコー
ド回路DECによつて全て閉じているので、レジ
スタREG2への入力b4〜b6はオール〓0”である。
つまり、レジスタREG1内のアドレスが分岐アド
レスでないとき該アドレスは、このアドレス生成
回路CONVにおいて何ら修飾されない。
これに対し、オペレーシヨンコードOPがオプ
シヨンプログラムの分岐命令であるとデコード回
路DECはそれがどのオプシヨンプログラムに関
するものかを解読し、アンドゲートAND1〜
AND3のいずれか1つだけを開とする。アンドゲ
ートAND1〜AND3の他方の入力には異なるオプ
シヨンプログラムを格納した副メモリブロツク
BL1〜BL3の実装情報C1〜C3が導びかれる。この
実装情報C1〜C3は副メモリブロツクBL1〜BL3を
実装したときにプリント基板とコネクタの結合状
態で発生される信号、或いはプリント基板に予め
設けられた識別信号発生部からの信号(プリント
板を挿込むことによりこの信号が送出される)で
あり、例えば未実装時には〓0”、実装時に〓1”
となる様に定めておく。この様にすれば副メモリ
ブロツクBL1が実装されるとC1=1となるので、
レジスタREG内にオプシヨンプログラム1に対
する分岐命令が取り込まれたときはアンドゲート
AND1が開となつて付加ビツトb4〜b6のうちb4が
〓1”になる。同様にして副メモリブロツクBL2
が実装されている場合にはC2=1となるので、
レジスタREG1にオプシヨンプログラム2に対す
る分岐命令が取り込まれた時はアンドゲート
AND2が開となつてb5=1となる。下表はこのア
ドレス生成回路CONVによる分岐アドレスの修
飾状態を示すものである。
The present invention relates to a branch address generation method that dynamically generates a branch address for an added option program without requiring a processing program. Programs related to I/O control, language, etc. are often options, and in order to combine such an option program with a basic program, the next instruction of the branch part of the option program in the basic program must be set as a program exception. If an option program has been added when the instruction in the branch part is read out, then the address is changed to point to the starting area of the option program. Conventionally, this changing process has been carried out by preparing a processing program called linkage or the like, which has had the disadvantage of making the operation of adding an optional program complicated. The present invention aims to easily generate a branch address for an option program without requiring a processing program. The present invention has a main memory block storing a basic program, and a sub memory block storing an optional program is added as necessary. The branch destination address of the branch instruction from the basic program to the option program is set to a predetermined location in the main memory block, and a predetermined instruction is stored in the predetermined location. checks the AND condition between the decoding result of the branch instruction and the signal indicating the implementation state of each of the sub-memory blocks, and if the AND condition is not satisfied, executes the predetermined instruction, and checks whether the AND condition is satisfied. In some cases, implementation information is incorporated to modify the branch destination address section of the branch instruction so as to access the sub-memory block indicated by the branch instruction. This will be explained in detail with reference to examples. FIG. 1 is an explanatory diagram showing one embodiment of the present invention. MEM is a memory that stores various programs and consists of multiple blocks BL 0 , BL 1 . . . These multiple memory blocks BL 0 , BL 1 . . . are each formed on a different printed circuit board, and each is a main memory block that stores at least a basic program.
If BL 0 is implemented, the general function as an information processing device will be fulfilled. On the other hand, BL 1 ,
BL 2 , ... is a secondary memory block that stores optional programs used in combination with the basic program, such as a fortrun compiler.
Implemented as needed. Main memory block BL 0
In the basic program, if sub memory block BL 1 is not implemented, the next address part of the instruction read from area AR 1 (next to this instruction moves to the program in BL 1 ) is in the same main memory block BL 0 . Indicate other areas AR 2 . This area AR 2 stores "program exceptions," where execution of the basic program is interrupted and waits for appropriate processing by an operator or the like. On the other hand, when the secondary memory block BL 1 is implemented, the next address part of the instruction read from the area AR 1 of the main memory block BL 0 is the start area of the option program in the secondary memory block BL 1 .
If you can modify it to point to AR 3 ,
This option program is AR 1 of the basic program without requiring any processing programs such as linkage.
It will be automatically executed following the area instruction. In this example, this branch address generation (modification) is attempted to be easily performed by the address generation circuit CONV. In Figure 1, the instruction read from any block of memory MEM is stored in the instruction register.
The address is taken out to REG 1 , and the address is sent to the address generation circuit CONV and the generation address register.
REG 2 and instruction address register REG 3 are used again to access the memory MEM. If the address is not a branch address to the option program, it passes through the address generation circuit CONV. On the other hand, when the branch address is the branch address, the implementation information C 1 ,
C 2 , modified according to... Decode the operation code OP in the instruction register REG 1 using the instruction decoding circuit DEC to determine whether the address retrieved from the memory MEM is a branch address to an option program and which option program it is a branch address to. I understand.
When it is determined that the address is the branch address, the address is modified for jumping to the sub-memory block. For this purpose, the address part of the instruction contains an address part for the optional program.
Set up opt. The opt part of the instruction taken out from area AR1 is set to 0, for example, and this address opt=0 is changed depending on whether the option program is implemented. FIG. 2 shows a specific example of the address generation circuit CONV. The instruction register REG 1 has one to several extra bits between the part where the operation code OP is written and the part where the next address is written, and the instruction register REG 1 has one to several extra bits between the part where the operation code OP is written and the part where the next address is written. Store. In this example, the next address is 4 bits b0 to b3 , the number of sub memory blocks to be added is 3, and 3 bits of address bits (opt) b4 to b6 are prepared. This additional bit
b 4 to b 6 are input to the generated address register REG 2 through OR gates OR 1 to OR 3 . On the other hand, the original next addresses b 0 to b 3 are passed through and input to the register REG 2 . or gate
The other input of OR 1 ~ OR 3 is an AND gate AND 1 ~
This is the output of AND 3 . This and gate AND 1 ~
AND 3 is input to register REG 2 b 4 when the operation code OP is not an optional program branch instruction (i.e., a general instruction or a branch instruction into the basic program) because it is all closed by the decode circuit DEC . ~b 6 are all 0''.
In other words, when the address in register REG 1 is not a branch address, the address is not modified in any way by this address generation circuit CONV. On the other hand, if the operation code OP is a branch instruction of an option program, the decode circuit DEC decodes which option program it pertains to and outputs the AND gate AND 1 ~
Only one of AND 3 is open. The other input of AND gates AND 1 to AND 3 is a sub memory block that stores different option programs.
Implementation information C 1 to C 3 of BL 1 to BL 3 is derived. This mounting information C 1 to C 3 is a signal generated when the printed circuit board and the connector are connected when the sub memory blocks BL 1 to BL 3 are mounted, or a signal from an identification signal generator provided in advance on the printed circuit board. (This signal is sent by inserting a printed board). For example, when it is not mounted, it is 0", and when it is mounted, it is 1".
Let's set it so that In this way, when the secondary memory block BL 1 is installed, C 1 = 1, so
When a branch instruction for option program 1 is loaded into register REG, an AND gate is executed.
AND 1 becomes open and b 4 of the additional bits b 4 to b 6 becomes 〓1''. In the same way, the sub memory block BL 2
is implemented, C 2 = 1, so
When a branch instruction for option program 2 is loaded into register REG 1 , an AND gate is executed.
AND 2 becomes open and b 5 =1. The table below shows the modification state of branch addresses by this address generation circuit CONV.
【表】【table】
Claims (1)
を備え、そしてオプシヨンプログラムを格納した
副メモリブロツクを必要に応じて追加される電算
機システムでの基本プログラムにおける分岐アド
レス生成方式において、 主メモリブロツクに格納された基本プログラム
からオプシヨンプログラムへの分岐命令の分岐先
アドレスは主メモリブロツク内の所定位置とし、
且つ該所定位置には予め定められた所定の命令を
格納しておき、該分岐命令の実行に際しては、該
分岐命令のデコード結果と上記副メモリブロツク
各々の実装状態を示す信号とのアンド条件を調
べ、該アンド条件が不成立の場合には前記所定の
命令を実行し、該アンド条件が成立の場合にはそ
の実装情報を取り入れて前記分岐命令の有する前
記分岐先アドレス部を、当該分岐命令が示す副メ
モリブロツクをアクセスするように修飾された形
態とすることを特徴とする分岐アドレス生成方
式。[Scope of Claims] 1. In a branch address generation method for a basic program in a computer system that is equipped with a main memory block storing a basic program and a sub-memory block storing an optional program is added as necessary, The branch destination address of a branch instruction from the basic program stored in the memory block to the optional program is a predetermined location within the main memory block,
In addition, a predetermined instruction is stored in the predetermined location, and when executing the branch instruction, an AND condition is performed between the decoding result of the branch instruction and the signal indicating the mounting state of each of the sub-memory blocks. If the AND condition is not satisfied, the predetermined instruction is executed, and if the AND condition is satisfied, the implementation information is taken in and the branch destination address part of the branch instruction is changed to the branch destination address part of the branch instruction. A branch address generation method characterized in that the branch address generation method is modified to access a sub-memory block shown in FIG.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56099204A JPS581245A (en) | 1981-06-26 | 1981-06-26 | Branch address producing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56099204A JPS581245A (en) | 1981-06-26 | 1981-06-26 | Branch address producing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS581245A JPS581245A (en) | 1983-01-06 |
JPH0323938B2 true JPH0323938B2 (en) | 1991-04-02 |
Family
ID=14241114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56099204A Granted JPS581245A (en) | 1981-06-26 | 1981-06-26 | Branch address producing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS581245A (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19923517C1 (en) * | 1999-05-21 | 2000-06-15 | Siemens Ag | Branch process for processing of program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52136535A (en) * | 1976-05-11 | 1977-11-15 | Sanyo Electric Co Ltd | Microprogram control system |
JPS5330843A (en) * | 1976-09-03 | 1978-03-23 | Hitachi Ltd | Execution address control unit |
JPS5468133A (en) * | 1977-11-11 | 1979-06-01 | Hitachi Ltd | Address self restoration unit of computer system |
JPS5583945A (en) * | 1978-12-19 | 1980-06-24 | Ricoh Co Ltd | Abnormal action preventing system for unit controlled by microcomputer |
-
1981
- 1981-06-26 JP JP56099204A patent/JPS581245A/en active Granted
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52136535A (en) * | 1976-05-11 | 1977-11-15 | Sanyo Electric Co Ltd | Microprogram control system |
JPS5330843A (en) * | 1976-09-03 | 1978-03-23 | Hitachi Ltd | Execution address control unit |
JPS5468133A (en) * | 1977-11-11 | 1979-06-01 | Hitachi Ltd | Address self restoration unit of computer system |
JPS5583945A (en) * | 1978-12-19 | 1980-06-24 | Ricoh Co Ltd | Abnormal action preventing system for unit controlled by microcomputer |
Also Published As
Publication number | Publication date |
---|---|
JPS581245A (en) | 1983-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0213843A2 (en) | Digital processor control | |
KR860007589A (en) | Data processing device | |
JPH08339298A (en) | Instruction addition method in microprocessor and microprocessor using the same | |
KR920004279B1 (en) | Microprocessor with pointer register | |
JPS6212529B2 (en) | ||
JPH0323938B2 (en) | ||
JPH0831033B2 (en) | Data processing device | |
JPS622332B2 (en) | ||
KR940007675A (en) | Data Processor and Debug Device Using It | |
KR960029969A (en) | A data processor having a pipeline processing function | |
JPS6286442A (en) | Data processor | |
JPS6020769B2 (en) | Microprogram control method | |
JP2570407B2 (en) | Programmable controller | |
JP3428253B2 (en) | Sequencer | |
JPH07191879A (en) | Microprocessor provided with executing function of instruction for debugging and debugging method | |
JPS63265332A (en) | Program jump system | |
JPH0319570B2 (en) | ||
JPH0795288B2 (en) | Microcomputer | |
JPS595931B2 (en) | Address stop method for arithmetic processing system | |
JPS6149695B2 (en) | ||
JPH02110636A (en) | Debugging device for tag architecture machine and its compiler | |
JPS63282527A (en) | Addressing circuit for information processor | |
JPS6031646A (en) | Data processor | |
JPS63317857A (en) | Memory access circuit | |
JPH03204029A (en) | Information processor |