JPH0245207B2 - - Google Patents

Info

Publication number
JPH0245207B2
JPH0245207B2 JP56068588A JP6858881A JPH0245207B2 JP H0245207 B2 JPH0245207 B2 JP H0245207B2 JP 56068588 A JP56068588 A JP 56068588A JP 6858881 A JP6858881 A JP 6858881A JP H0245207 B2 JPH0245207 B2 JP H0245207B2
Authority
JP
Japan
Prior art keywords
register
stack
job program
data
main memory
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
Application number
JP56068588A
Other languages
Japanese (ja)
Other versions
JPS57182852A (en
Inventor
Masahiro Yamamoto
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.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP56068588A priority Critical patent/JPS57182852A/en
Publication of JPS57182852A publication Critical patent/JPS57182852A/en
Publication of JPH0245207B2 publication Critical patent/JPH0245207B2/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/44Arrangements for executing specific programs

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)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 本発明はデータ処理装置に関し、特に、著名商
用計算機である米国バロース社のB6500で代表さ
れるようなスタツクマシンアーキテクチヤを高性
能に実現するスタツク装置に係る。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device, and more particularly to a stack device that realizes a high performance stack machine architecture, such as the B6500 manufactured by Burroughs Corporation in the United States, which is a famous commercial computer.

スタツクマシンアーキテクチヤを効率良く実現
するために、従来、スタツクを実現する主記憶の
一部を蓄積する高速レジスタを備えていた。例え
ば、バロース社のB6500では2個の高速レジス
タ、ヒユーレツトパツカード社のHP3000では4
個の高速レジスタを備えていた。一方、これらの
計算機ではジヨブプログラムの切り変え時には、
高速レジスタ中に貯えられたデータを主記憶装置
へ追い出し、その後にジヨブプログラムの実行が
開始されていた。
In order to efficiently implement a stack machine architecture, conventionally, a high-speed register was provided to store a part of the main memory that implements the stack. For example, the Burroughs B6500 has two high-speed registers, and the Heuretsu Patscard HP3000 has four.
It was equipped with several high-speed registers. On the other hand, with these computers, when switching job programs,
The data stored in the high-speed registers was flushed out to main memory, and then the job program started running.

従つて、高速レジスタとして、前記計算機のご
とく少量ではなくより多数語(例えば、128語や
256語)を蓄積する高速レジスタスタツクを備え
た場合には、ジヨブプログラムの切り変え時に生
じる主記憶への追い出し処理のために多くの時間
を必要としプログラム実行に対しては多大な無駄
時間となつていた。
Therefore, as a high-speed register, it is possible to store a larger number of words (for example, 128 words or
When equipped with a high-speed register stack that stores 256 words (256 words), it takes a lot of time to process the data to the main memory when switching job programs, resulting in a large amount of wasted time for program execution. It was becoming.

本発明の目的はこのような欠点を解決するもの
で、中央処理装置内に多数語から成る複数組のレ
ジスタスタツクを設け、ジヨブプログラムの実行
は本レジスタスタツクを切り変えて使用するとと
もに、切り変え時に、これまで使用してきたレジ
スタスタツク中に蓄積されているデータの主記憶
への追い出し処理を新しいジヨブプログラムの実
行と並行して行えるようにすることにより本レジ
スタスタツクの切り変えを効率良く行うことによ
り、切り変えによる性能低下を小さくする制御機
構を備えたスタツク装置を提供することにある。
The object of the present invention is to solve these drawbacks by providing multiple sets of register stacks each consisting of a large number of words in a central processing unit, and executing a job program by switching between these register stacks and using the register stacks. , when changing the register stack, the data accumulated in the previously used register stack can be flushed out to main memory in parallel with the execution of the new job program. It is an object of the present invention to provide a stack device equipped with a control mechanism that minimizes performance deterioration due to switching by efficiently performing switching.

本発明によれば、複数語で構成されラーストイ
ン・フアーストアウト形式で制御される複数組の
レジスタスタツク、該レジスタスタツクから追い
出されたデータをラーストイン・フアーストアウ
ト形式で蓄積する主記憶装置、演算処理ユニツト
及び1つのジヨブプログラムは該レジスタスタツ
クの内の1つを用いて実行し、他のジヨブプログ
ラムへの切り変えが生じた時には、他のレジスタ
スタツクを用いて処理するとともに、これと並行
して、これまで使用してきた該レジスタスタツク
に蓄積されたデータを該主記憶装置へ追い出す処
理を行う制御手段とを具備し、ジヨブ切り変え時
のレジスタスタツク切り変えを効率良く行うこと
を特徴とするスタツク装置、が得られる。
According to the present invention, a plurality of sets of register stacks each consisting of a plurality of words are controlled in a last-in, first-out format, and a main memory that stores data evicted from the register stacks in a last-in, first-out format. , an arithmetic processing unit and one job program are executed using one of the register stacks, and when switching to another job program occurs, processing is performed using the other register stack. At the same time, it is equipped with a control means for expelling the data accumulated in the register stack that has been used so far to the main memory, so that the register stack can be changed when the job is changed. A stacking device is obtained which is characterized by efficient stacking.

次に、本発明を用いた一実施例について、詳細
に述べる。本実施例では2組のレジスタスタツク
を有する場合について示す。
Next, one embodiment using the present invention will be described in detail. In this embodiment, a case will be described in which there are two sets of register stacks.

図は本発明の一実施例を示すブロツク図であ
る。複数語から成る2組のレジスタスタツク1と
2、該レジスタスタツク1と2のデータの蓄積さ
れている最上位位置を示すスタツクポインタ11
と12、該レジスタスタツク1と2から追い出さ
れたデータを別々の領域に蓄積する主記憶装置
3、該主記憶装置3の該スタツク1と2が追い出
されている領域の最上位位置をそれぞれ示すスタ
ツクポインタ21と22、演算処理ユニツト4、
該主記憶装置3とデータ授受を行うデータレジス
タ5、該主記憶装置3から取り出した命令を一時
記憶する命令レジスタ6、及び、制御手段7から
構成される。
The figure is a block diagram showing one embodiment of the present invention. Two sets of register stacks 1 and 2 consisting of a plurality of words, and a stack pointer 11 indicating the highest position where data of register stacks 1 and 2 is stored.
and 12, a main memory device 3 that stores the data evicted from the register stacks 1 and 2 in separate areas, and a top position of the area from which the stacks 1 and 2 of the main memory device 3 are evicted, respectively. Stack pointers 21 and 22, arithmetic processing unit 4,
It is composed of a data register 5 that exchanges data with the main memory 3, an instruction register 6 that temporarily stores instructions retrieved from the main memory 3, and a control means 7.

レジスタスタツク1と2は市販ICであるテキ
サスインスツルメント(TI)社のICである
SN74189を組み合わせることにより実現される。
スタツクポインタ11と12は、該レジスタスタ
ツク1と2が例えば256語の場合は8ビツト長の
カウントであり、市販の二進カウンタ用ICで実
現される。主記憶装置3は従来計算機の主記憶装
置に対応し、市販のICメモリで実現される。
Register stacks 1 and 2 are commercially available ICs from Texas Instruments (TI).
This is achieved by combining SN74189.
Stack pointers 11 and 12 are 8-bit long counts when the register stacks 1 and 2 are, for example, 256 words, and are realized by commercially available binary counter ICs. The main memory device 3 corresponds to the main memory device of a conventional computer and is realized by a commercially available IC memory.

スタツクポインタ21と22は、主記憶装置3
の中のスタツク領域の位置示し、スタツク領域が
例えば64K語の場合には16ビツト長のカウンタ
で、市販の2進カウンタで実現される。演算処理
ユニツト4は通常計算機における算術論理ユニツ
ト(ALU)に対応し、市販であるSN74181を組
み合わせることにより実現される。データレジス
タ5および命令レジスタ6は一定長のデータ又は
命令を蓄積するもので、市販ICであるD型フリ
ツプフロツプSN7474を組み合わせることにより
実現される。一方、制御手段7は演算処理ユニツ
ト4、データレジスタ5と命令レジスタ6を用い
て命令の実行制御を行うとともに前記レジスタス
タツク1と2、スタツクポインタ11,12,2
1と22の制御レジスタ41,42,51と5
2、制御フリツプフロツプ61,62と70及び
主記憶装置3と前記レジスタスタツク1,2との
データ授受制御を行うもので、市販のゲート回路
とフリツプフロツプ、等のICを組み合わせるこ
とにより実現される。
The stack pointers 21 and 22 are stored in the main memory 3.
If the stack area is, for example, 64K words, it is a 16-bit counter, which is realized by a commercially available binary counter. The arithmetic processing unit 4 corresponds to an arithmetic logic unit (ALU) in a normal computer, and is realized by combining a commercially available SN74181. The data register 5 and the instruction register 6 are for storing data or instructions of a fixed length, and are realized by combining a D-type flip-flop SN7474, which is a commercially available IC. On the other hand, the control means 7 controls the execution of instructions using the arithmetic processing unit 4, data register 5 and instruction register 6, and also controls the register stacks 1 and 2, stack pointers 11, 12, 2.
1 and 22 control registers 41, 42, 51 and 5
2. Control Controls data exchange between the flip-flops 61, 62 and 70, the main memory 3, and the register stacks 1 and 2, and is realized by combining commercially available gate circuits and ICs such as flip-flops.

先ず、1つのジヨブプログラム1をレジスタス
タツク1を用いて実行される状況について述べ
る。本ジヨブプログラムに実行が移つた時点で
は、レジスタスタツク1は空であり、従つて、ス
タツクポインタ11は最下位の位置を示し、0に
なつている。命令レジスタ6とデータレジスタ5
及び演算処理ユニツト4を用いて実行が進むと、
レジスタスタツク1にデータが蓄積されると共
に、スタツクポインタ11は該レジスタスタツク
1の上位位置を指すように更新される。1つのジ
ヨブプログラム1の実行はこのようにレジスタス
タツク1を用いて処理が行われる。
First, a situation in which one job program 1 is executed using register stack 1 will be described. When execution shifts to this job program, register stack 1 is empty, so stack pointer 11 indicates the lowest position and is 0. Instruction register 6 and data register 5
When the execution proceeds using the and arithmetic processing unit 4,
As data is stored in register stack 1, stack pointer 11 is updated to point to the upper position of register stack 1. Execution of one job program 1 is performed using register stack 1 in this way.

次に、別のジヨブプログラム2への切り変えが
生じると、現時点でレジスタスタツク1に蓄積さ
れているデータを主記憶装置3のスタツク領域3
1へ戻した後、新しいジヨブの実行を行う必要が
ある。これに関して、本実施例では、ジヨブプロ
グラムの切り変えが生じると、実行に伴い発生す
るダータの蓄積はレジスタスタツク1ではなくレ
ジスタスタツグ2へ切り変え、レジスタスタツク
2を用いて、新しいジヨブプログラム2の実行を
開始する。一方、新しいジヨブプログラム2の実
行において、主記憶装置3へアクセスしない時間
帯を用いて、レジスタスタツク1に蓄積されたデ
ータ(図ではi語)をスタツクポインタ21が指
す主記憶装置3のスタツク領域31(図のn+1
番地からn+i番地)へ移す。
Next, when switching to another job program 2 occurs, the data currently stored in register stack 1 is transferred to stack area 3 of main memory 3.
After reverting to 1, you need to run a new job. Regarding this, in this embodiment, when a job program is changed, the accumulation of data generated during execution is switched to register stack 2 instead of register stack 1, and register stack 2 is used to store a new job program. Start execution of job program 2. On the other hand, when executing a new job program 2, the data accumulated in the register stack 1 (word i in the figure) is transferred to the main memory 3 by using the time period when the main memory 3 is not accessed. stack area 31 (n+1 in the figure)
from address n+i).

一方、レジスタスタツク1のデータを主記憶装
置3のスタツク領域31移す動作を終了する以前
においては、新しいジヨブプログラムの実行中に
本データへアクセスすることを禁止することが必
要である(このような事態は余り頻繁には生じな
い)。このためにジヨブプログラム切り変え時に
はアドレス〔n+1〕とアドレス〔n+i〕を制
御手段7のレジスタ41と51にセツトし、新し
いジヨブプログラム2の実行を始める。そして、
新しいジヨブプログラム2の実行中に主記憶装置
3の中のスタツク領域に蓄積されたデータをアク
セスする時に、前記追い出し処理が終了する以前
の場合(フリツプフロツプ61が“1”の時)に
は、前記レジスタ41と51を用いて該当するデ
ータか否かをしらべる処理が行われる。そして、
もし、該当した場合には、1つの方法として、追
い出し処理が終了するのを待つか、又は他の方法
として、レジスタスタツク1から該当するデータ
を取り込むことが行なわれる。
On the other hand, before completing the operation of moving the data in register stack 1 to stack area 31 in main memory 3, it is necessary to prohibit access to this data while a new job program is being executed. (Such situations do not occur very often). For this reason, when changing job programs, address [n+1] and address [n+i] are set in registers 41 and 51 of control means 7, and execution of a new job program 2 is started. and,
When accessing data accumulated in the stack area in the main memory 3 during execution of a new job program 2, before the expulsion process is completed (when the flip-flop 61 is "1"), A process is performed using the registers 41 and 51 to check whether or not the data is relevant. and,
If so, one method is to wait for the eviction process to finish, or another method is to fetch the corresponding data from register stack 1.

ジヨブプログラム2の実行は、ジヨブプログラ
ム1の実行と同時に、レジスタスタツク2を用い
て処理される。
The execution of job program 2 is processed using register stack 2 simultaneously with the execution of job program 1.

次に、ジヨブプログラム2からジヨブプログラ
ム1へ実行が切り変ると、ジヨブプログラム2に
関するレジスタスタツク2に蓄積されたデータは
主記憶3のスタツク領域32のスタツクポインタ
22が示す場所へ移される。
Next, when execution switches from job program 2 to job program 1, the data stored in register stack 2 regarding job program 2 is moved to the location indicated by stack pointer 22 in stack area 32 of main memory 3. be transferred.

この時、ジヨブプログラム1から2へ移つた場
合と同様に、データ領域の保護のために、レジス
タ42と52が用いられる。
At this time, as in the case of moving from job program 1 to job program 2, registers 42 and 52 are used to protect the data area.

一方、ジヨブプログラム1の実行を開始する
と、スタツクポインタ11は始め0にセツトされ
る。そして、レジスタスタツク1を用いて実行が
進み、レジスタスタツク1上でのデータの蓄積と
除去が行なわれながら、処理が進行する。この時
に、レジスタスタツク1のデータが空になり、命
令の実行において、更に必要になつた場合には、
主記憶3のスタツク領域31に追い出されている
データをスタツクポインタ21が示す場所からレ
ジスタスタツク1へ移すことにより、処理を続行
する。
On the other hand, when execution of job program 1 is started, stack pointer 11 is initially set to 0. Then, execution proceeds using register stack 1, and processing proceeds while data is accumulated and removed on register stack 1. At this time, if the data in register stack 1 becomes empty and more is needed in the execution of an instruction,
Processing is continued by moving the data evicted from the stack area 31 of the main memory 3 from the location indicated by the stack pointer 21 to the register stack 1.

制御手段7は以上述べた制御を行うが、ここ
で、制御フリツプフロツプ70は、レジスタスタ
ツク1と2、スタツクポインタ11,21と1
2,22、16ビツトレジスタ41,51と42,
52のいずれを使用しているかを示すもので、例
えば、“0”であれば、レジスタ1、“1”であれ
ば、レジスタ2を使用している。又制御フリツプ
フロツプ61と62は、それぞれ、レジスタスタ
ツク1と2のデータを主記憶3に退避を完了して
いるか否かを示し、例えば、“1”であれば、退
避を完了しておらず、レジスタスタツク1又は2
にはデータが残つていることを示す。
The control means 7 performs the control described above. Here, the control flip-flop 70 controls register stacks 1 and 2, stack pointers 11, 21, and 1.
2, 22, 16 bit registers 41, 51 and 42,
For example, if it is "0", register 1 is being used, and if it is "1", register 2 is being used. Control flip-flops 61 and 62 each indicate whether or not the data in register stacks 1 and 2 has been saved to the main memory 3. For example, if it is "1", it means that the data has not been saved yet. , register stack 1 or 2
indicates that data remains.

以上は、2つのレジスタスタツクを備える場合
を示したが、ジヨブプログラムが複数個ある場合
に対処するたに、複数個のレジスタスタツクを備
えることが可能である。この時には、スタツクポ
インタ、制御手段7のレジスタ、制御フリツプフ
ロツプを対応する個数分備え、制御フリツプフロ
ツプ70については、1ビツトではなく、複数個
のレジスタスタツクを示すために必要なビツト数
を備えることにより、実現される。又、レジスタ
スタツクの制御については、レジスタスタツクの
番号順にリング状で使用することにより、実現さ
れる。
Although the case where two register stacks are provided has been described above, it is possible to provide a plurality of register stacks in order to cope with the case where there are a plurality of job programs. At this time, the corresponding number of stack pointers, registers of the control means 7, and control flip-flops are provided, and the control flip-flop 70 is provided with the necessary number of bits to indicate a plurality of register stacks instead of one bit. This is realized by Further, control of the register stack is realized by using register stacks in a ring shape in numerical order.

以上、本発明について述べるようにジヨブプロ
グラムの切り変えに伴うレジスタスタツクの切り
変えを効率良く行なうことが可能となりその効果
は多大なものである。
As described above regarding the present invention, it is possible to efficiently change register stacks as job programs are changed, and the effects thereof are significant.

【図面の簡単な説明】[Brief explanation of drawings]

図は本発明のスタツク装置の一実施例を示すブ
ロツク図である。 図において、参照数字1と2はレジスタスタツ
ク、11,12,21及び22はスタツクポイン
タ、3は主記憶装置、4は算術演算ユニツト、5
及び6はレジスタ、7は制御手段、をそれぞれ示
す。
The figure is a block diagram showing one embodiment of the stacking device of the present invention. In the figure, reference numbers 1 and 2 are register stacks, 11, 12, 21 and 22 are stack pointers, 3 is a main memory, 4 is an arithmetic operation unit, and 5 is a register stack.
and 6 indicate a register, and 7 indicates a control means, respectively.

Claims (1)

【特許請求の範囲】[Claims] 1 複数語で構成されラーストイン・フアースト
アウト形式で制御される複数組のレジスタスタツ
クと、該レジスタスタツクから追い出されたデー
タをラーストイン・フアーストアウト形式で蓄積
する主記憶装置と、演算処理ユニツト及び1つの
ジヨブプログラムは該レジスタスタツクの内の1
つを用いて実行し、他のジヨブプログラムへの切
り変えが生じた時には、他のレジスタスタツクを
用いて処理するとともに、これと並行して、これ
まで使用してきた該レジスタスタツクに蓄積され
たデータを該主記憶装置へ追い出す処理を行う制
御手段とを具備し、ジヨブ切り変え時のレジスタ
スタツク切り変えを効率良く行うことを特徴とす
るスタツク装置。
1 A plurality of register stacks consisting of multiple words and controlled in a last-in, first-out format, a main memory that stores data evicted from the register stack in a last-in, first-out format, and arithmetic processing. A unit and one job program use one of the register stacks.
When a job program is executed using one job program and a switch to another job program occurs, processing is performed using another register stack, and in parallel, the job program is accumulated in the register stack that has been used so far. What is claimed is: 1. A stack device comprising: control means for performing a process of expelling the stored data to the main memory, and efficiently changing register stacks when changing jobs.
JP56068588A 1981-05-07 1981-05-07 Stack device Granted JPS57182852A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56068588A JPS57182852A (en) 1981-05-07 1981-05-07 Stack device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56068588A JPS57182852A (en) 1981-05-07 1981-05-07 Stack device

Publications (2)

Publication Number Publication Date
JPS57182852A JPS57182852A (en) 1982-11-10
JPH0245207B2 true JPH0245207B2 (en) 1990-10-08

Family

ID=13378098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56068588A Granted JPS57182852A (en) 1981-05-07 1981-05-07 Stack device

Country Status (1)

Country Link
JP (1) JPS57182852A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042131A (en) * 1995-10-06 2007-02-15 Patriot Scientific Corp Structure of reduced instruction set computer type microprocessor

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123935A (en) * 1982-12-29 1984-07-17 Fujitsu Ltd Stack device
JPH0731603B2 (en) * 1984-11-21 1995-04-10 ノビツクス FORTH specific language microprocessor
US20070282928A1 (en) * 2006-06-06 2007-12-06 Guofang Jiao Processor core stack extension

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042131A (en) * 1995-10-06 2007-02-15 Patriot Scientific Corp Structure of reduced instruction set computer type microprocessor

Also Published As

Publication number Publication date
JPS57182852A (en) 1982-11-10

Similar Documents

Publication Publication Date Title
EP0241909B1 (en) Information processing apparatus
US4217638A (en) Data-processing apparatus and method
JPH0652511B2 (en) Address conversion method for information processing equipment
KR20010070469A (en) Device and method for performing high-speed low overhead context switch
US4454580A (en) Program call method and call instruction execution apparatus
US4654779A (en) Multiprocessor system including firmware
JPH0245207B2 (en)
JPS58225443A (en) High-speed data processor
JPS603229B2 (en) Information processing method
JP3317985B2 (en) Pseudo vector processor
EP0787326B1 (en) System and method for processing of memory data and communication system comprising such system
JPH0377137A (en) Information processor
JPS6032220B2 (en) information processing equipment
JPS60134937A (en) Address extension device
JPS6352240A (en) Data processor
JPS6057440A (en) Information processor
JPS60215250A (en) Data processor
JPS595481A (en) Flag controlling system of stack memory control
JPH0738168B2 (en) Data processing device
JPH01108652A (en) Address conversion system
JPS63113747A (en) Virtual memory managing device
JPS6155741A (en) Arithmetic processor
JPH0667976A (en) Cache memory control system by hardware control software
JPS6231456A (en) Swapping system for virtual memory
JPH04181446A (en) Replacement algorithm and computer system using the same