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
Links
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006866 deterioration 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/44—Arrangements 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)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (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.
図は本発明のスタツク装置の一実施例を示すブ
ロツク図である。
図において、参照数字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)
アウト形式で制御される複数組のレジスタスタツ
クと、該レジスタスタツクから追い出されたデー
タをラーストイン・フアーストアウト形式で蓄積
する主記憶装置と、演算処理ユニツト及び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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59123935A (en) * | 1982-12-29 | 1984-07-17 | Fujitsu Ltd | Stack device |
ATE94999T1 (en) * | 1984-11-21 | 1993-10-15 | Harris Corp | MICROPROCESSOR FOR FORTH-LIKE LANGUAGE. |
US20070282928A1 (en) * | 2006-06-06 | 2007-12-06 | Guofang Jiao | Processor core stack extension |
-
1981
- 1981-05-07 JP JP56068588A patent/JPS57182852A/en active Granted
Cited By (1)
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 |
---|---|---|
KR970008523B1 (en) | High-speed processor capable of handling multiple interupts | |
EP0241909B1 (en) | Information processing apparatus | |
US4217638A (en) | Data-processing apparatus and method | |
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 | |
EP0787326B1 (en) | System and method for processing of memory data and communication system comprising such system | |
JPH0377137A (en) | Information processor | |
JPS61184643A (en) | Starting control system for virtual computer | |
JPS6032220B2 (en) | information processing equipment | |
JPS60134937A (en) | Address extension device | |
JPH0397035A (en) | Storage means configuration system | |
JPS6057440A (en) | Information processor | |
JPS60215250A (en) | Data processor | |
JPS595481A (en) | Flag controlling system of stack memory control | |
JPH0738168B2 (en) | Data processing device | |
JPH0477930A (en) | Microcomputer | |
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 |