JPH0412860B2 - - Google Patents
Info
- Publication number
- JPH0412860B2 JPH0412860B2 JP60174922A JP17492285A JPH0412860B2 JP H0412860 B2 JPH0412860 B2 JP H0412860B2 JP 60174922 A JP60174922 A JP 60174922A JP 17492285 A JP17492285 A JP 17492285A JP H0412860 B2 JPH0412860 B2 JP H0412860B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- ring level
- branch
- ring
- cycle
- 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
- 230000010365 information processing Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 101100023434 Arabidopsis thaliana MINE1 gene Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Storage Device Security (AREA)
Description
【発明の詳細な説明】
〔概要〕
論理空間単位にアクセスの保護レベルを規定す
るリングレベルについて、読み出した命令と共
に、その命令が属するリングレベルを、命令バツ
フアレジスタ上に記憶し、同時にパイプラインに
流すことにより、連続する分岐命令に関して分岐
先の先取りを可能とし、分岐命令の前の命令のオ
ペランドアクセスの待ち時間および演算時間に並
行して分岐先命令の先取りを行うことによる命令
実行の高速化を可能にしている。[Detailed Description of the Invention] [Summary] Regarding the ring level that defines the access protection level for each logical space unit, the read instruction and the ring level to which the instruction belongs are stored in the instruction buffer register, and at the same time the pipeline This enables prefetching of the branch destination for consecutive branch instructions, and speeds up instruction execution by prefetching the branch destination instruction in parallel with the operand access latency and calculation time of the instruction before the branch instruction. It makes it possible to
本発明はリングレベル制御方式、特に、いわゆ
るリングレベルによつて、論理空間単位にアクセ
ス保護を行う装置であつて、パイプライン処理に
よつて命令を実行する情報処理装置におけるリン
グレベル制御方式に関するものである。
The present invention relates to a ring level control method, and more particularly, to a ring level control method for an information processing device that performs access protection in logical space units using a so-called ring level, and that executes instructions through pipeline processing. It is.
例えば、情報処理装置において実行される応用
処理プログラムが、命令の実行によつて、オペレ
ーテイング・システム等を破壊したりすることの
ないように、主記憶装置のデータを保護する方式
として、いわゆるリングレベルによるアクセス保
護の方式が用いられている。リングレベルによる
アクセス保護では、例えば論理空間のセグメント
に対応して、3ビツトにより、保護レベルが規定
され、実行リングレベルが、参照リングレベルよ
り、大きい数値であるときに、命令読み出しや、
データ書き込みが禁止されるようになつている。
実行リングレベルは、プログラム状態語(PSW)
に格納され、参照される側のリングレベルは、セ
グメント・テーブルの各エントリ毎に予め規定さ
れる。
For example, a so-called ring is used as a method to protect data in the main memory so that an application processing program executed in an information processing device does not destroy the operating system etc. by executing instructions. A level-based access protection method is used. In ring level access protection, for example, the protection level is defined by 3 bits corresponding to a segment of logical space, and when the execution ring level is a larger value than the reference ring level, instruction reading,
Data writing is now prohibited.
The execution ring level is the program state word (PSW)
The ring level stored and referenced in the segment table is defined in advance for each entry in the segment table.
例えば、あるセグメントから他のセグメントへ
分岐するような場合には、命令読み出しに関し
て、現在、PSWに設定されているリングレベル
が、分岐先への制御移行が許されているリングレ
ベルであるか否かをチエツクし、チエツクに合格
しない場合に、プログラム割込みが生じるように
なつている。 For example, when branching from one segment to another, whether the ring level currently set in the PSW for reading an instruction is a ring level that allows control to be transferred to the branch destination. If the check does not pass, a program interrupt is generated.
第3図は従来方式の問題点を説明するための図
である。 FIG. 3 is a diagram for explaining the problems of the conventional method.
命令1と、それに続く分岐命令B1と、さら
に後続する分岐命令B2とが、パイプライン処理
によつて処理されているとする。各命令は、命令
の解読を行うDサイクル、アドレス計算を行うA
サイクルと、メモリアクセスを行うTサイクルお
よびBサイクルと、演算を同うEサイクルと、演
算結果の書き込みを行うWサイクルとによつて処
理される。なお、これらのサイクルに先立つて、
命令をフエツチするサイクル、Tサイクル、B
サイクルおよび命令を命令バツフアにセツトする
Rサイクルがある。 Assume that an instruction 1, a branch instruction B1 that follows it, and a branch instruction B2 that follows it are processed by pipeline processing. Each instruction consists of a D cycle for decoding the instruction and an A cycle for calculating the address.
, a T cycle and a B cycle for performing memory access, an E cycle for performing an operation, and a W cycle for writing the operation result. Furthermore, prior to these cycles,
Cycle to fetch instructions, T cycle, B
There is an R cycle that sets the cycle and instructions into the instruction buffer.
命令が分岐命令である場合等に、分岐条件が満
足し、分岐が成功したときにおける分岐命令の先
取り用命令バツフアが用意される。しかし、従来
方式では、命令読み出しと共に、その命令が属す
るリングレベルを記憶するバツフアが用意されて
いない。そのため、リングレベルの記憶に関する
ハードウエア量は少量で済む利点はあるが、命令
の先取りが制限され、命令実行性能が低下すると
いう問題があつた。 When the instruction is a branch instruction, an instruction buffer is prepared for prefetching the branch instruction when the branch condition is satisfied and the branch is successful. However, the conventional system does not provide a buffer for reading an instruction and storing the ring level to which the instruction belongs. Therefore, although there is an advantage that the amount of hardware related to ring-level storage is small, there is a problem that prefetching of instructions is limited and instruction execution performance is degraded.
即ち、例えば第3図に示すように、命令1の
Eサイクルに数サイクルの繰り返しが必要である
とする。この場合、分岐命令B1は、命令I1の
実行終了(EU END)が通知されるまで、Bサ
イクルで待つ。分岐命令B1のDサイクルの後で
は、例えば分岐が成功した場合における命令の先
読みが行われるが、このとき、その命令が属する
リングレベルも読み出され、リングレベル用に1
つしかないバツフアにセツトされる。 That is, for example, as shown in FIG. 3, it is assumed that the E cycle of instruction 1 requires several cycles to be repeated. In this case, the branch instruction B1 waits in B cycles until the end of execution (EU END) of the instruction I1 is notified. After the D cycle of the branch instruction B1, for example, when the branch is successful, the instruction is prefetched, but at this time, the ring level to which the instruction belongs is also read, and 1 for the ring level is read.
It is set to a unique buffer.
このリングレベル用のバツフアは、分岐命令B
1の結果が確定されるまで、解放されない。従つ
て、分岐命令B1の後に、分岐命令B2があり、
分岐が連続すると、後続する分岐命令B2に関す
る分岐先の命令については、リングレベルのバツ
フアがないため、先読みのアクセスができないこ
ととなり、待ち時間が生じることとなる。 The buffer for this ring level is branch instruction B.
It will not be released until the result of 1 is confirmed. Therefore, after branch instruction B1, there is branch instruction B2,
When branches occur continuously, the branch destination instruction related to the subsequent branch instruction B2 cannot be read ahead and accessed because there is no ring level buffer, resulting in a waiting time.
この待ち時間の長さは、オペランドアクセスの
時間および演算の待ち時間の長さに比例して増大
する。さらに、いわゆるキヤツシユメモリである
ローカル・バツフア・ストレジ(LBS)に先読
み対象の命令がない場合には、アクセス時間が増
大することとなる。 The length of this latency increases in proportion to the length of operand access time and operation latency. Furthermore, if there is no instruction to be prefetched in the local buffer storage (LBS), which is a so-called cache memory, the access time will increase.
本発明は上記問題点の解決を図り、リングレベ
ル情報をパイプライン化して処理し、分岐命令の
先取り効果を高める手段を提供する。
The present invention aims to solve the above-mentioned problems and provides a means for processing ring level information in a pipeline manner to enhance the effect of prefetching branch instructions.
第1図は本発明の基本構成図を示す。 FIG. 1 shows a basic configuration diagram of the present invention.
第1図において、10A,10B,10Cはフ
エツチした命令が格納される命令作業レジスタ
(IWR)、12は先読みした命令が退避される命
令バツフアレジスタ、13は各サイクルに対応し
て命令およびリングレベルのタグを持つパイプラ
イン、14ないし18はセレクタ、20ないし2
4はOPコードやオペランド情報を保持するタグ、
30ないし34は各サイクルに対応してリングレ
ベル情報を保持するタグ、RLはリングレベルを
表す。 In FIG. 1, 10A, 10B, and 10C are instruction work registers (IWR) where fetched instructions are stored, 12 is an instruction buffer register where prefetched instructions are saved, and 13 is an instruction and ring register corresponding to each cycle. Pipeline with level tags, 14 to 18 are selectors, 20 to 2
4 is a tag that holds OP code and operand information,
30 to 34 are tags that hold ring level information corresponding to each cycle, and RL represents the ring level.
ローカル・バツフア・ストレジLBSから読み
出された命令は、リングレベルRLと共に、命令
作業レジスタ10A〜10Cの空いている1つに
セツトされる。この命令およびリングレベルRL
は、セレクタ15を経由して、パイプライン13
のタグ20〜24およびタグ30〜34に順次送
られ、命令の処理およびリングレベルRLのチエ
ツクに用いられる。 The instruction read from the local buffer storage LBS is set into a free one of the instruction working registers 10A-10C along with the ring level RL. This instruction and ring level RL
is sent to the pipeline 13 via the selector 15
The data is sequentially sent to tags 20 to 24 and tags 30 to 34, and used for processing commands and checking the ring level RL.
先行命令の処理に待ち時間があると、先読みし
た命令は、セレクタ14を通して、命令バツフア
レジスタ12の1つにセツトされる。分岐成功に
おける分岐先の命令についても、この命令バツフ
アレジスタ12へ用意される。本発明の場合、こ
の各命令バツフアレジスタ12に、その記憶され
る命令が属するリングレベルRL情報が、その命
令に併せて記憶されるようになつている。 If there is a waiting time in the processing of the preceding instruction, the prefetched instruction is set in one of the instruction buffer registers 12 through the selector 14. The instruction at the branch destination upon successful branching is also prepared in this instruction buffer register 12. In the case of the present invention, ring level RL information to which the stored instruction belongs is stored in each instruction buffer register 12 along with the instruction.
セレクタ15を介して、パイプライン13に流
されるリングレベルRL情報は、タグ30ないし
タグ34に順次送られ、セレクタ17により、そ
のリングレベルRLまたは演算結果(ARC12)
によるリングレベルRLの一方が選択される。セ
レクタ16は、ロードPSW命令または割込み等
があつた場合に、その結果のリングレベルRLを
選択する回路である。セレクタ18は、空間にま
たがる転送を指定する命令の実行にあたつて、そ
の指定リングレベルRL(TLR)を選択し、記憶
装置SUのアクセスに用いるための回路である。 The ring level RL information sent to the pipeline 13 via the selector 15 is sequentially sent to the tags 30 to 34, and the selector 17 selects the ring level RL or the calculation result (ARC12).
One of the ring levels RL is selected. The selector 16 is a circuit that selects the resulting ring level RL when a load PSW command or an interrupt occurs. The selector 18 is a circuit that selects the designated ring level RL (TLR) when executing an instruction that designates transfer across spaces, and uses the designated ring level RL (TLR) to access the storage device SU.
本発明によれば、各命令が属するリングレベル
RLを、先読みされたそれらの各命令と共に記憶
し、パイプライン13にそれらの各命令と共に流
す。従つて、リングレベルのバツフアが塞がつて
いるために、命令の先読みができないというよう
なことはなく、命令実行における全体の待ち時間
を短縮することが可能となる。
According to the invention, the ring level to which each instruction belongs
The RL is stored with each of its prefetched instructions and flows into the pipeline 13 with each of those instructions. Therefore, it is not possible to prefetch an instruction because the ring level buffer is full, and it is possible to shorten the overall waiting time in executing an instruction.
第2図は本発明の一実施例における動作を説明
するための図である。
FIG. 2 is a diagram for explaining the operation in one embodiment of the present invention.
第2図における命令の実行環境は、第3図に示
した従来例と同様である。即ち、命令I1の後
に、分岐命令B1および分岐命令B2が続いてい
る。命令I1のEサイクルに数サイクルかかると
き、後続する分岐命令B1は、Bサイクルで待た
される。分岐命令B1について、分岐条件が満足
し、分岐成功となつた場合における分岐先の命令
は、分岐命令B1のDサイクルの後に、先読みが
開始され、命令バツフアレジスタの1つであるレ
ジスタ12−1に格納される。この命令が属する
リングレベルRL情報も、同じバツフアレジスタ
12−1に格納される。 The instruction execution environment in FIG. 2 is similar to the conventional example shown in FIG. That is, instruction I1 is followed by branch instruction B1 and branch instruction B2. When the E cycle of instruction I1 takes several cycles, the subsequent branch instruction B1 is forced to wait for B cycles. Regarding branch instruction B1, when the branch condition is satisfied and the branch is successful, the prefetch of the branch destination instruction is started after the D cycle of branch instruction B1, and register 12-, which is one of the instruction buffer registers, is read ahead. It is stored in 1. Ring level RL information to which this instruction belongs is also stored in the same buffer register 12-1.
一方、分岐命令B1に後続する分岐命令B2に
ついても、パイプラインで処理が行われ、分岐命
令B1がBサイクルで処理待ちになつている間、
1つ前のTサイクルで待つ。分岐命令B2につい
ての分岐先命令の先読みは、分岐命令B2のDサ
イクルの後に開始することができ、先行命令につ
いてのオペランドアクセスの待ち時間および演算
時間に並行して行われる。この分岐先にある命令
のリングレベルRL情報は、上記バツフアレジス
タ12−1とは別のバツフアレジスタ12−2
に、その分岐先命令と共にセツトされるようにな
つており、先行する命令の分岐先命令が属するリ
ングレベルRL情報と、バツフア上で競合するこ
とがないので、命令先読みに関連する待ち時間は
不要となる。 On the other hand, branch instruction B2 following branch instruction B1 is also processed in the pipeline, and while branch instruction B1 is waiting for processing in cycle B,
Waits at the previous T cycle. Prefetching of the branch destination instruction for branch instruction B2 can begin after the D cycle of branch instruction B2, and is performed in parallel to the operand access latency and operation time for the preceding instruction. The ring level RL information of the instruction at this branch destination is stored in a buffer register 12-2 different from the buffer register 12-1.
It is set together with the branch destination instruction, and there is no conflict on the buffer with the ring level RL information to which the branch destination instruction of the preceding instruction belongs, so there is no need for the waiting time associated with instruction prefetching. becomes.
なお、先読みする命令がローカル・バツフア・
ストレジLBSにない場合には、演算時間に並行
して処理可能である。 Note that the instruction to read ahead is a local buffer.
If it is not in the storage LBS, it can be processed in parallel to the calculation time.
以上説明したように、本発明によれば、先読み
する命令が属するリングレベルRL情報について
の競合が生じないので、分岐命令における分岐先
の先取りが可能になり、命令の実行性能が向上す
る。
As described above, according to the present invention, since there is no conflict regarding the ring level RL information to which the prefetched instruction belongs, it is possible to prefetch the branch destination in a branch instruction, and the execution performance of the instruction is improved.
第1図は本発明の基本構成図、第2図は本発明
の一実施例における動作を説明するための図、第
3図は従来方式の説明図を示す。
図中、10A,10B,10Cは命令作業レジ
スタ、12は命令バツフアレジスタ、13はパイ
プライン、14ないし18はセレクタ、20ない
し24はタグ、30ないし34はリングレベル情
報を保持するタグ、RLはリングレベルをそれぞ
れ表す。
FIG. 1 is a basic configuration diagram of the present invention, FIG. 2 is a diagram for explaining the operation of an embodiment of the present invention, and FIG. 3 is an explanatory diagram of a conventional system. In the figure, 10A, 10B, 10C are instruction work registers, 12 is an instruction buffer register, 13 is a pipeline, 14 to 18 are selectors, 20 to 24 are tags, 30 to 34 are tags that hold ring level information, RL represents the ring level, respectively.
Claims (1)
い、論理空間単位にアクセス保護用のリングレベ
ルを持ち、パイプライン処理を行う情報処理装置
において、 分岐先命令を含む命令読み出しに関して、読み
出した命令と共に、その命令の属する上記リング
レベルを命令バツフアレジスタに記憶する手段1
2と、 選択された命令に対応して、同時にその命令の
属する上記リングレベルをパイプライン13に流
す手段30〜34とを備え、 分岐命令に先行する命令のオペランドアクセス
の待ち時間および演算時間に並行して分岐先命令
の先取りを行うようにしたことを特徴とするリン
グレベル制御方式。[Claims] 1. In an information processing device that performs pipeline processing, which accesses operands and instructions independently, has a ring level for access protection in logical space units, and performs pipeline processing: means 1 for storing in an instruction buffer register the ring level to which the instruction belongs together with the instruction;
2, and means 30 to 34 for simultaneously flowing the ring level to which the selected instruction belongs to the pipeline 13 in accordance with the selected instruction, and reducing the operand access latency and operation time of the instruction preceding the branch instruction. A ring level control method characterized by prefetching branch destination instructions in parallel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60174922A JPS6234259A (en) | 1985-08-08 | 1985-08-08 | Ring level control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60174922A JPS6234259A (en) | 1985-08-08 | 1985-08-08 | Ring level control system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6234259A JPS6234259A (en) | 1987-02-14 |
JPH0412860B2 true JPH0412860B2 (en) | 1992-03-05 |
Family
ID=15987058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60174922A Granted JPS6234259A (en) | 1985-08-08 | 1985-08-08 | Ring level control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6234259A (en) |
-
1985
- 1985-08-08 JP JP60174922A patent/JPS6234259A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS6234259A (en) | 1987-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4715013A (en) | Coprocessor instruction format | |
JP3151444B2 (en) | Method for processing load instructions and superscalar processor | |
US20050055536A1 (en) | Compiler instructions for vector transfer unit | |
US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
JPH0496825A (en) | Data processor | |
JP2620511B2 (en) | Data processor | |
US6687808B2 (en) | Data processor using indirect register addressing | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
JPH03233630A (en) | Information processor | |
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JPH0412860B2 (en) | ||
JP2861560B2 (en) | Data processing device | |
US6321319B2 (en) | Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction | |
JPS63163929A (en) | Microprocessor | |
JP2636821B2 (en) | Parallel processing unit | |
JPH0524537B2 (en) | ||
KR100300875B1 (en) | How to deal with cache misses | |
JP3102399B2 (en) | Data processing apparatus and method | |
US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JP3147884B2 (en) | Storage device and information processing device | |
JPH02301830A (en) | Information processing system |