JP2003241977A - Central processing unit and information processor - Google Patents
Central processing unit and information processorInfo
- Publication number
- JP2003241977A JP2003241977A JP2002024689A JP2002024689A JP2003241977A JP 2003241977 A JP2003241977 A JP 2003241977A JP 2002024689 A JP2002024689 A JP 2002024689A JP 2002024689 A JP2002024689 A JP 2002024689A JP 2003241977 A JP2003241977 A JP 2003241977A
- Authority
- JP
- Japan
- Prior art keywords
- context
- unit
- central processing
- instruction
- register
- 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.)
- Pending
Links
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、中央演算処理装置
及び情報処理装置に関する。特に本発明は、複数の命令
列を並行に実行する中央演算処理装置及び情報処理装置
に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a central processing unit and an information processing device. In particular, the present invention relates to a central processing unit and an information processing device that execute a plurality of instruction sequences in parallel.
【0002】[0002]
【従来の技術】特許第2788605号は、特定の順序
で命令を受信し、複数の実行ユニットで実行する計算機
システムを開示している。また、複数の命令列を実行す
るために、演算ユニットによって直接アクセスできるレ
ジスタを複数備える中央演算処理装置が提案されている
(Introduction to Hyper−Th
reading Technology、Intel
Corporation著、2001年)。2. Description of the Related Art Japanese Patent No. 2788605 discloses a computer system that receives instructions in a specific order and executes them in a plurality of execution units. Further, there has been proposed a central processing unit having a plurality of registers that can be directly accessed by an arithmetic unit to execute a plurality of instruction sequences (Introduction to Hyper-Th).
reading technology, Intel
Corporation, 2001).
【0003】[0003]
【発明が解決しようとする課題】しかし、上記計算機シ
ステムは、複数の命令列を並行に実行できない。また、
上記中央演算処理装置において、実行する命令列当たり
に必要な半導体等は多くなる。そこで本発明は、上記の
課題を解決することのできる中央演算処理装置及び情報
処理装置を提供することを目的とする。この目的は特許
請求の範囲における独立項に記載の特徴の組み合わせに
より達成される。また従属項は本発明の更なる有利な具
体例を規定する。However, the computer system described above cannot execute a plurality of instruction sequences in parallel. Also,
In the central processing unit, the number of semiconductors and the like required for each instruction sequence to be executed increases. Therefore, an object of the present invention is to provide a central processing unit and an information processing apparatus that can solve the above problems. This object is achieved by a combination of features described in independent claims of the invention. The dependent claims define further advantageous specific examples of the present invention.
【0004】[0004]
【課題を解決するための手段】即ち、本発明の第1の形
態によると、複数の命令列を並行に実行する中央演算処
理装置であって、一の命令列を実行している途中の状態
を示すコンテキストを保持するレジスタと、命令列中に
おけるメモリへのアクセス命令に従いレジスタの内容を
メモリに格納するメモリアクセス部と、メモリアクセス
部がレジスタの内容を格納するメモリ領域とは別に提供
された、レジスタから退避されたコンテキストを格納す
るコンテキスト格納部と、レジスタからコンテキスト格
納部へコンテキストを退避し、またコンテキスト格納部
からレジスタにコンテキストを復帰する制御部とを備え
ることを特徴とする中央演算処理装置及び当該中央演算
処理装置を備える情報処理装置を提供する。なお上記の
発明の概要は、本発明の必要な特徴の全てを列挙したも
のではなく、これらの特徴群のサブコンビネーションも
又発明となりうる。That is, according to the first aspect of the present invention, there is provided a central processing unit for executing a plurality of instruction sequences in parallel, which is in the middle of executing one instruction sequence. Is provided separately from the register that holds the context indicating the, the memory access unit that stores the contents of the register in the memory according to the memory access instruction in the instruction sequence, and the memory area that the memory access unit stores the contents of the register. , A central processing unit comprising: a context storage unit that stores the context saved from the register; and a control unit that saves the context from the register to the context storage unit and restores the context from the context storage unit to the register An information processing apparatus including the apparatus and the central processing unit is provided. Note that the above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.
【0005】[0005]
【発明の実施の形態】以下、発明の実施の形態を通じて
本発明を説明するが、以下の実施形態はクレームにかか
る発明を限定するものではなく、又実施形態の中で説明
されている特徴の組み合わせの全てが発明の解決手段に
必須であるとは限らない。BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described through embodiments of the invention, but the following embodiments do not limit the claimed invention, and the features described in the embodiments Not all combinations are essential to the solution of the invention.
【0006】図1は、情報処理装置5の機能ブロック図
である。情報処理装置5は、中央演算処理装置10と、
メモリ20とを備える。中央演算処理装置10は、実行
部100と、レジスタ110と、コンテキスト格納部1
20と、キャッシュメモリ130と、判断部140と、
制御部150と、実行可能コンテキスト格納部160
と、優先順位変更部180とを有する。実行部100
は、メモリアクセス部102と、演算ユニット104と
を有する。FIG. 1 is a functional block diagram of the information processing device 5. The information processing device 5 includes a central processing unit 10 and
And a memory 20. The central processing unit 10 includes an execution unit 100, a register 110, and a context storage unit 1.
20, a cache memory 130, a determination unit 140,
Control unit 150 and executable context storage unit 160
And a priority changing unit 180. Execution unit 100
Has a memory access unit 102 and an arithmetic unit 104.
【0007】中央演算処理装置10は、メモリ20から
命令列を順次読み出し、実行する。中央演算処理装置1
0は、命令列を実行している途中の状態であるコンテキ
ストを、レジスタ110に保持している。中央演算処理
装置10は、命令列の実行に退避原因が発生すると、レ
ジスタ110が保持するコンテキストを、コンテキスト
格納部120に退避する。そして、実行可能コンテキス
ト格納部160に予め退避されていたコンテキストをレ
ジスタ110に復帰し、そのコンテキストに対応する命
令列の実行を再開する。この様にして、情報処理装置5
及び中央演算処理装置10は、コンテキストを退避し他
のコンテキストを復帰する処理であるコンテキストスイ
ッチを高速に行うことにより、効率よく複数の命令列を
実行することができる。The central processing unit 10 sequentially reads out the instruction sequence from the memory 20 and executes it. Central processing unit 1
0 holds in the register 110 the context that is in the middle of executing the instruction sequence. The central processing unit 10 saves the context held in the register 110 to the context storage unit 120 when the cause of saving occurs in the execution of the instruction sequence. Then, the context saved in advance in the executable context storage unit 160 is restored to the register 110, and the execution of the instruction sequence corresponding to the context is restarted. In this way, the information processing device 5
Also, the central processing unit 10 can efficiently execute a plurality of instruction sequences by performing a context switch, which is a process of saving a context and restoring another context, at high speed.
【0008】メモリ20は、中央演算処理装置10がプ
ログラムの実行に用いる命令群及びデータを格納する。The memory 20 stores an instruction group and data used by the central processing unit 10 to execute a program.
【0009】実行部100は、レジスタ110に格納さ
れたコンテキストに対応する命令列を実行する。すなわ
ち、実行部100は、コンテキストに基づき、命令列中
の命令をメモリ20から順次取得し、実行する。実行部
100は、命令を実行する場合に、必要に応じて、メモ
リ20からデータを取得あるいはメモリ20にデータを
格納する。実行部100は、メモリ20に代わって、キ
ャッシュメモリ130にアクセスしてもよい。そして、
実行部100は、命令の実行に応じて、レジスタ110
を随時更新する。さらに、実行部100は、命令列の実
行中に、コンテキストを退避させる要因となる退避原因
が生じた場合に、退避原因が生じた旨の情報を制御部1
50に送る。また、実行部100は、実行中の命令が完
了した場合に、命令の実行が完了した旨の情報を判断部
140に送る。The execution section 100 executes the instruction sequence corresponding to the context stored in the register 110. That is, the execution unit 100 sequentially acquires the instructions in the instruction sequence from the memory 20 based on the context and executes the instructions. The execution unit 100 acquires data from the memory 20 or stores data in the memory 20 as needed when executing an instruction. The execution unit 100 may access the cache memory 130 instead of the memory 20. And
The execution unit 100 responds to the execution of the instruction by register 110.
Will be updated from time to time. Furthermore, when a save cause that causes a context to be saved occurs during execution of an instruction sequence, the execution unit 100 provides information indicating that the save cause has occurred to the control unit 1.
Send to 50. In addition, when the instruction being executed is completed, the execution unit 100 sends information to the determination unit 140 that the execution of the instruction is completed.
【0010】メモリアクセス部102は、実行部100
が実行する命令のうち、キャッシュメモリ130及びメ
モリ20への読み出し及び書き込みを行う命令を専用に
実行する。一方、演算ユニット104は、実行部100
が実行する特定の種類の命令を実行する。演算ユニット
104は、例えば、分岐命令を専用に実行してもよい
し、加減算を専用に実行してもよいし、乗除算を専用に
実行してもよい。また、演算ユニット104は複数設け
られ、それぞれが互いに異なる種類の命令を専用に実行
してもよい。さらに、演算ユニット104は、演算ユニ
ット104が使用不可能な状態から新たに使用可能にな
った場合に、実行再開に演算ユニット104を必要とす
るコンテキストの実行を優先する旨の指示を優先順位変
更部180に送信する。The memory access unit 102 is an execution unit 100.
Among the instructions to be executed by, the instructions for reading and writing to the cache memory 130 and the memory 20 are exclusively executed. On the other hand, the arithmetic unit 104 includes the execution unit 100.
Execute certain types of instructions that are executed by. The arithmetic unit 104 may execute a branch instruction for exclusive use, an addition / subtraction for exclusive use, or a multiplication / division for exclusive use, for example. Further, a plurality of arithmetic units 104 may be provided, and each of them may exclusively execute different types of instructions. Further, when the arithmetic unit 104 is newly enabled from the unusable state, the arithmetic unit 104 changes the priority order to give priority to the execution of the context that requires the arithmetic unit 104 to resume execution. It is transmitted to the section 180.
【0011】レジスタ110は、命令列を実行している
途中の状態を示すコンテキストを保持する。レジスタ1
10は、コンテキストとして、実行を開始する命令が格
納されるメモリ20上の位置を示すプログラムカウンタ
を保持する。また、レジスタ110は、コンテキストと
して汎用レジスタの値や、制御レジスタの値や、スタッ
クポインタや、フレームポインタを保持してもよい。レ
ジスタ110は、これらのレジスタやポインタを保持す
ることにより、プロセス又はスレッドを動作させる命令
列の実行状態を保持してもよい。よって、レジスタ11
0が格納するコンテキストは、実行部100の実行に応
じて随時更新される。また、レジスタ110は、制御部
150からコンテキストを退避する旨の指示を受け取る
と、コンテキストをコンテキスト格納部120に送り、
実行可能コンテキスト格納部160から、実行可能コン
テキストを受け取る。ここで、レジスタ110は、コン
テキストをコンテキスト格納部120に送る場合に、コ
ンテキストの格納場所の情報を送るのではなく、実際の
コンテキストの内容すなわち実行再開に必要な命令列の
実行状態を送る。また、レジスタ110は、実行可能コ
ンテキスト格納部160から実行可能コンテキストを受
け取る場合も同様に実際のコンテキストの内容を受け取
る。The register 110 holds a context indicating a state in the middle of executing an instruction sequence. Register 1
10 holds, as a context, a program counter indicating a position on the memory 20 in which an instruction for starting execution is stored. Further, the register 110 may hold a value of a general-purpose register, a value of a control register, a stack pointer, or a frame pointer as a context. The register 110 may hold the execution state of an instruction sequence that operates a process or thread by holding these registers and pointers. Therefore, register 11
The context stored by 0 is updated at any time according to the execution of the execution unit 100. When the register 110 receives an instruction to save the context from the control unit 150, the register 110 sends the context to the context storage unit 120,
The executable context is received from the executable context storage unit 160. Here, when the context is sent to the context storage unit 120, the register 110 does not send the information on the storage location of the context, but sends the actual content of the context, that is, the execution state of the instruction string necessary for resuming the execution. The register 110 also receives the content of the actual context when receiving the executable context from the executable context storage unit 160.
【0012】コンテキスト格納部120は、レジスタ1
10から退避されたコンテキストを退避原因とともに格
納する。コンテキスト格納部120は、メモリアクセス
部102がレジスタ110の内容を格納するメモリ20
及びキャッシュメモリ130とは別に提供される。ま
た、コンテキスト格納部120は、互いに識別可能な複
数のコンテキストを格納してもよい。さらに、コンテキ
スト格納部120は、既に格納しているコンテキストの
総量及び格納するように指示されたコンテキストの合計
が、コンテキスト格納部120の記憶容量を超える場合
に、コンテキストをメモリ20に格納してもよい。The context storage unit 120 has a register 1
The context saved from 10 is stored together with the save cause. The context storage unit 120 includes the memory 20 in which the memory access unit 102 stores the contents of the register 110.
Also, it is provided separately from the cache memory 130. The context storage unit 120 may also store a plurality of contexts that can be identified with each other. Further, the context storage unit 120 may store the context in the memory 20 when the total amount of the contexts already stored and the total of the contexts instructed to be stored exceed the storage capacity of the context storage unit 120. Good.
【0013】キャッシュメモリ130は、実行部100
からメモリ20に書き込むデータを受け取ると、そのデ
ータを一時的に格納する。また、キャッシュメモリ13
0は、実行部100がメモリ20から読み出したデータ
を一時的に格納する。キャッシュメモリ130は、必要
に応じて、一時的に格納したデータをメモリ20に書き
戻す。The cache memory 130 includes an execution unit 100.
When the data to be written to the memory 20 is received from the memory 20, the data is temporarily stored. In addition, the cache memory 13
0 temporarily stores the data read from the memory 20 by the execution unit 100. The cache memory 130 writes back the temporarily stored data to the memory 20 as needed.
【0014】判断部140は、実行部100から命令の
実行が完了した旨の情報を受信する。そして、その命令
の実行が完了した旨の情報に基づいて、コンテキスト格
納部120が格納するコンテキストの退避原因が解消さ
れたか否かを判断する。判断部140は、退避原因が解
消されたと判断した場合、退避原因が解消された旨の情
報をコンテキスト格納部120に送る。コンテキスト格
納部120は、退避原因が解消された旨の情報を判断部
140から受け取ると、当該退避原因によってコンテキ
スト格納部120に退避されていたコンテキストを実行
可能コンテキスト格納部160に送り、実行可能な状態
とする。The judgment unit 140 receives information indicating that the execution of the instruction is completed from the execution unit 100. Then, based on the information indicating that the execution of the instruction is completed, it is determined whether the cause of saving the context stored in the context storage unit 120 has been resolved. When the determination unit 140 determines that the evacuation cause has been eliminated, it sends information indicating that the evacuation cause has been eliminated to the context storage unit 120. When the context storage unit 120 receives, from the determination unit 140, information indicating that the save cause has been resolved, the context storage unit 120 sends the context saved in the context storage unit 120 due to the save cause to the executable context storage unit 160 and is executable. State.
【0015】制御部150は、実行部100から退避原
因が生じた旨の情報を受け取ると、コンテキストを退避
する旨の指示をレジスタ110に送る。そして、制御部
150は、レジスタ110がコンテキストの退避を完了
すると、実行可能コンテキスト格納部160に、コンテ
キストを復帰する旨の指示を送る。ここで、制御部15
0は、高速なコンテキストスイッチを実現するために、
メモリアクセス部102がメモリ20にデータを格納す
るためにレジスタ110からデータを読み出す場合の転
送レートより速い転送レートで、レジスタ110からコ
ンテキスト格納部120へコンテキストを退避してもよ
い。また、レジスタ110は、メモリ20及びコンテキ
スト格納部120のそれぞれに互いに異なるアクセス経
路を用いてアクセスできる。このため、制御部150
は、メモリアクセス部102がメモリ20にデータを格
納するためにレジスタ110からデータを読み出す動作
と並行して、レジスタ110からコンテキスト格納部1
20へコンテキストを退避してもよい。When the control unit 150 receives the information indicating that the save cause has occurred from the execution unit 100, it sends an instruction to save the context to the register 110. Then, when the register 110 completes saving the context, the control unit 150 sends an instruction to restore the context to the executable context storage unit 160. Here, the control unit 15
0 is to realize a fast context switch,
The context may be saved from the register 110 to the context storage unit 120 at a transfer rate faster than the transfer rate when the memory access unit 102 stores the data in the memory 20 and reads the data from the register 110. Further, the register 110 can access the memory 20 and the context storage unit 120 using different access paths. Therefore, the control unit 150
Is executed by the memory access unit 102 in parallel with the operation of reading data from the register 110 in order to store the data in the memory 20.
The context may be saved to 20.
【0016】実行可能コンテキスト格納部160は、実
行可能コンテキスト及びその実行可能コンテキストをレ
ジスタ110に復帰する優先順位を格納する。実行可能
コンテキスト格納部160は、コンテキスト格納部12
0から実行可能コンテキストを受け取る。そして、実行
可能コンテキスト格納部160は、制御部150からコ
ンテキストを復帰する旨の指示を受け取ると、優先順位
の最も高い実行可能コンテキストをレジスタ110に送
る。また、実行可能コンテキスト格納部160は、優先
順位変更部180から実行可能コンテキストの優先順位
を変更する旨の指示を受け取ると、その指示に従い優先
順位を変更する。実行可能コンテキスト格納部160
は、優先順位として、実行可能コンテキストのそれぞれ
に予め定められた実行の優先順位を格納してもよい。例
えば、実行可能コンテキスト格納部160は、オペレー
ティングシステムによって予め定められたプロセスやス
レッドのスケジューリング優先順位を格納してもよい。
また、実行可能コンテキスト格納部160は、コンテキ
スト格納部120から実行可能コンテキストを受け取っ
た順序を優先順位として格納してもよい。この場合、実
行可能コンテキスト格納部160は、先入れ先出し(F
IFO)型のキュー構造であってもよい。The executable context storage unit 160 stores the executable context and the priority order for returning the executable context to the register 110. The executable context storage unit 160 includes the context storage unit 12
Receive executable context from 0. When the executable context storage unit 160 receives an instruction to restore the context from the control unit 150, the executable context storage unit 160 sends the executable context having the highest priority to the register 110. When the executable context storage unit 160 receives an instruction from the priority changing unit 180 to change the priority of the executable context, the executable context storage unit 160 changes the priority according to the instruction. Executable context storage unit 160
May store a predetermined priority of execution in each of the executable contexts as the priority. For example, the executable context storage unit 160 may store scheduling priorities of processes and threads predetermined by the operating system.
Further, the executable context storage unit 160 may store the order of receiving the executable contexts from the context storage unit 120 as a priority order. In this case, the executable context storage unit 160 stores the first-in first-out (F
It may be an IFO) type queue structure.
【0017】優先順位変更部180は、演算ユニット1
04からあるコンテキストの実行を優先する旨の指示を
受信した場合、そのコンテキストに対応した優先順位を
変更する旨の指示を、実行可能コンテキスト格納部16
0に送る。また、優先順位変更部180は、あるコンテ
キストの実行に時間の制約がある場合に、そのコンテキ
ストに対応した優先順位を変更してもよい。例えば、コ
ンテキストに対応する命令列が、リアルタイムオペレー
ティングシステムにより管理されている場合や、圧縮さ
れた動画像の一部を動的に展開して再生する場合に、優
先順位変更部180は、そのコンテキストの優先順位を
変更する。The priority changing unit 180 is composed of the arithmetic unit 1
When the instruction to prioritize the execution of a context is received from 04, the executable context storage unit 16 issues an instruction to change the priority order corresponding to the context.
Send to 0. Further, the priority order changing unit 180 may change the priority order corresponding to a context when there is a time constraint on the execution of the context. For example, when the instruction sequence corresponding to the context is managed by the real-time operating system, or when a part of the compressed moving image is dynamically expanded and reproduced, the priority order changing unit 180 determines the context. Change the priority of.
【0018】図2は、退避原因及び退避原因の解消要因
の組み合わせを示す。「割り込み待ち命令」は、「割り
込み発生」に対応する。すなわち、制御部150は、割
り込みが発生するまで動作を中断する命令である割り込
み待ち命令の実行を実行部100が開始した場合に、退
避原因が発生したと判断してコンテキストスイッチを行
う。そして、判断部140は、中央演算処理装置10に
割り込みが発生すると、その退避原因が解消されたと判
断し、当該コンテキストを実行可能と判断する。また、
「タイマ待ち命令」は「タイマ待ち完了」に対応する。
すなわち、制御部150は、所定の期間動作を中断する
命令であるタイマ待ち命令の実行を実行部100が開始
した場合に、退避原因が発生したと判断してコンテキス
トスイッチを行う。そして、判断部140は、当該所定
の期間が経過しタイマ待ちが完了すると、当該退避原因
が解消されたと判断し、当該コンテキストを実行可能と
判断する。FIG. 2 shows a combination of save causes and save cause canceling factors. The “interrupt wait instruction” corresponds to “interrupt occurrence”. That is, the control unit 150 determines that a save cause has occurred and performs a context switch when the execution unit 100 starts executing an interrupt waiting instruction that is an instruction that suspends operation until an interrupt occurs. Then, when an interruption occurs in the central processing unit 10, the judgment unit 140 judges that the save cause has been resolved, and judges that the context can be executed. Also,
The "timer wait instruction" corresponds to "timer wait completion".
That is, the control unit 150 determines that a save cause has occurred and performs a context switch when the execution unit 100 starts executing a timer wait instruction that is an instruction for suspending operation for a predetermined period. Then, when the predetermined period has elapsed and the waiting for the timer is completed, the determination unit 140 determines that the save cause has been resolved, and determines that the context can be executed.
【0019】「排他権の取得待ち」は、「排他権の取
得」に対応する。排他権とは、同時に並行してアクセス
することが制限された命令又はデータにアクセスするた
めにコンテキストに対して一時的に与えられる権利であ
る。すなわち、実行部100が排他権の取得を試みる命
令を実行したにもかかわらず当該排他権が他のコンテキ
ストにより既に取得されている場合に、制御部150
は、退避原因が発生したと判断してコンテキストスイッ
チを行う。そして、判断部140は、コンテキストが当
該排他権を取得できると、当該コンテキストを実行可能
と判断する。"Waiting for acquisition of exclusive right" corresponds to "acquisition of exclusive right". The exclusive right is a right temporarily given to the context in order to access an instruction or data that is restricted from being accessed in parallel at the same time. That is, when the execution unit 100 executes an instruction to acquire the exclusive right, but the exclusive right has already been acquired by another context, the control unit 150.
Determines that the save cause has occurred and performs a context switch. Then, when the context can acquire the exclusion right, the determination unit 140 determines that the context can be executed.
【0020】「読み出し時のキャッシュミス」は「読み
出し完了」に対応する。「読み出し時のキャッシュミ
ス」は、実行部100がメモリ20への読み出し命令を
実行したが、読み出したいデータがキャッシュメモリ1
30上に存在しないため、キャッシュメモリ130より
低速なメモリ20から当該データを読み出す場合であ
る。制御部150は、読み出し命令によりキャッシュミ
スが生じた時点で、退避原因が生じたと判断してコンテ
キストスイッチを行う。そして、判断部140は、当該
読み出し命令がメモリ20からのデータ読み出しを完了
した場合、当該コンテキストを実行可能と判断する。"Cache miss at the time of reading" corresponds to "completion of reading". In the "cache miss at the time of reading", the execution unit 100 has executed the read instruction to the memory 20, but the data to be read is the cache memory
This is a case where the data is read from the memory 20 that is slower than the cache memory 130 because it does not exist in the memory 30. When a cache miss occurs due to the read instruction, the control unit 150 determines that the save cause has occurred and performs a context switch. Then, the determination unit 140 determines that the context can be executed when the read command completes reading the data from the memory 20.
【0021】「遅い命令」は「遅い命令完了」に対応す
る。遅い命令は、実行完了までに予め定められた基準よ
り多く実行時間を要する。この遅い命令とは、例えば、
複雑な数値演算を実行する命令である。遅い命令が実行
する処理は、例えば、乗除算であってもよいし、三角関
数の演算であってもよいし、入力装置に対する入力命令
であってもよいし、出力装置に対する出力命令であって
もよい。例えば、実行部100が遅い命令の実行を開始
した場合、制御部150は、退避原因が生じたと判断し
てコンテキストスイッチを行う。そして、判断部140
は、当該遅い命令の実行が完了した場合に、当該コンテ
キストを実行可能と判断する。The "slow instruction" corresponds to the "slow instruction completion". A slow instruction requires more execution time than a predetermined standard to complete execution. This slow instruction is, for example,
This is an instruction to execute a complicated numerical operation. The process executed by the slow instruction may be, for example, multiplication / division, a trigonometric function operation, an input instruction to an input device, or an output instruction to an output device. Good. For example, when the execution unit 100 starts executing a slow instruction, the control unit 150 determines that a save cause has occurred and performs a context switch. Then, the determination unit 140
Determines that the context can be executed when the execution of the slow instruction is completed.
【0022】「演算ユニットが使用不可能」は「演算ユ
ニットが使用可能」に対応する。実行部100が命令の
実行を開始したが、当該命令に必要である演算処理を専
用に行う演算ユニットが使用不可能であった場合に、制
御部150は退避原因が発生したと判断し、コンテキス
トスイッチを行う。判断部140は、コンテキストの実
行再開に必要な当該演算ユニットが使用可能になった場
合に、当該コンテキストを実行可能と判断する。"The arithmetic unit cannot be used" corresponds to "the arithmetic unit can be used". When the execution unit 100 starts executing an instruction but the arithmetic unit dedicated to the arithmetic processing required for the instruction is unavailable, the control unit 150 determines that the save cause has occurred, and Switch. The determination unit 140 determines that the context can be executed when the operation unit necessary for restarting execution of the context becomes available.
【0023】制御部150は、さらに、図2に示した以
外の予め定められた命令の実行を開始する場合に、コン
テキストスイッチを行ってもよい。この場合、判断部1
40は、その予め定められたその他の命令の実行が完了
した場合に、当該コンテキストの退避原因が解消された
と判断する。また、制御部150は、命令列が予め定め
られた期間実行された場合に、実行中の命令列のコンテ
キストをコンテキスト格納部120に退避してもよい。
この場合、判断部140は、無条件で当該コンテキスト
の退避原因が解消されたと判断する。The control section 150 may further perform a context switch when starting execution of a predetermined instruction other than that shown in FIG. In this case, the judgment unit 1
When the execution of the other predetermined instructions is completed, 40 determines that the cause of saving the context has been resolved. In addition, the control unit 150 may save the context of the instruction sequence being executed in the context storage unit 120 when the instruction sequence is executed for a predetermined period.
In this case, the determination unit 140 unconditionally determines that the cause of saving the context has been resolved.
【0024】図3は、コンテキスト格納部120のデー
タ構造の一例を示す。コンテキスト格納部120は、コ
ンテキストフィールドと、コンテキストフィールドに対
応付けられた退避原因フィールドを格納する。コンテキ
ストフィールドは、コンテキストを識別するためのID
フィールド、実行部100が命令を実行する場合に用い
る汎用レジスタフィールド、実行部100が命令を実行
した結果の状態を表す制御レジスタフィールド、及び実
行部100が次に実行する命令のメモリ20中の位置を
表すプログラムカウンタフィールドを含む。FIG. 3 shows an example of the data structure of the context storage unit 120. The context storage unit 120 stores a context field and a save cause field associated with the context field. The context field is an ID for identifying the context
A field, a general-purpose register field used when the executing unit 100 executes an instruction, a control register field indicating a state of a result of executing the instruction by the executing unit 100, and a position in the memory 20 of an instruction to be executed next by the executing unit 100. Contains a program counter field that represents
【0025】例えば、IDが1であるコンテキストは、
汎用レジスタの値として、R0、R1、及びR2という
名前がついたレジスタの値を格納する。例えば、R0の
値は0x0010(16進数の10)である。IDが1
であるコンテキストは、制御レジスタの値として、SP
(スタックポインタ)及びCCR(コンディションコー
ドレジスタ)という名前がついたレジスタの値を格納す
る。SPは、メモリ20中に一時的に保存したデータの
位置を表す。また、CCRは、実行部100が直前に実
行した数値演算命令の桁あふれの有無や比較命令の結果
を、これらの論理和として格納するレジスタである。For example, the context whose ID is 1 is
The values of the registers named R0, R1, and R2 are stored as the values of the general-purpose registers. For example, the value of R0 is 0x0010 (hexadecimal 10). ID is 1
Is the SP as the value of the control register.
It stores the values of the registers named (Stack Pointer) and CCR (Condition Code Register). SP represents the position of the data temporarily stored in the memory 20. The CCR is a register that stores the presence or absence of overflow of the numerical operation instruction executed immediately before by the execution unit 100 and the result of the comparison instruction as the logical sum of these.
【0026】退避原因フィールドは各コンテキストがレ
ジスタ110からコンテキスト格納部120に退避され
た原因を格納する。IDが1であるコンテキストは、退
避原因として、「メモリ読み出し時のキャッシュミス」
を格納する。本図の例は、IDが1であるコンテキスト
がレジスタ110に保持され実行されている時に、「メ
モリ読み出し時のキャッシュミス」が発生した結果、当
該コンテキストがコンテキスト格納部120に退避され
たことを示す。The save cause field stores the cause of saving each context from the register 110 to the context storage unit 120. The context with ID 1 is "cache miss at memory read" as the cause of saving.
To store. In the example of the figure, when the context having the ID of 1 is held in the register 110 and executed, as a result of the occurrence of the “cache miss at memory read”, the context is saved in the context storage unit 120. Show.
【0027】このように、コンテキスト格納部120
は、コンテキストとして、命令列を実行再開する場合に
必要な情報を格納するとともに、そのコンテキストが退
避された原因を格納する。よって、判断部140は、退
避原因フィールドを見ることにより退避原因が解消され
たか否かを判断することができる。また、判断部150
は、コンテキストフィールドに格納される内容を実行可
能コンテキスト格納部160を経由して最終的にレジス
タ110に復帰させることにより、実行を再開させるこ
とができる。As described above, the context storage unit 120
Stores, as the context, information necessary for resuming execution of the instruction sequence, and also stores the reason for saving the context. Therefore, the determination unit 140 can determine whether the save cause has been resolved by looking at the save cause field. Also, the determination unit 150
Execution can be resumed by finally returning the contents stored in the context field to the register 110 via the executable context storage unit 160.
【0028】図4は、実行可能コンテキスト格納部16
0のデータ構造の一例を示す。実行可能コンテキスト格
納部160は、実行可能コンテキストフィールドと、実
行可能コンテキストフィールドに対応付けられた優先順
位フィールドを有する。実行可能コンテキスト格納部1
60が格納する実行可能コンテキストのデータ構成は、
図2で示したコンテキストのデータ構成と同様である。FIG. 4 shows the executable context storage unit 16
An example of the data structure of 0 is shown. The executable context storage unit 160 has an executable context field and a priority field associated with the executable context field. Executable context storage unit 1
The data structure of the executable context stored by 60 is
It is the same as the data structure of the context shown in FIG.
【0029】優先順位フィールドは、実行可能コンテキ
ストが制御部150によってレジスタ110に復帰され
る順序である優先順位を格納する。IDが7である実行
可能コンテキストの優先順位は1である。IDが5、
6、及び8である実行可能コンテキストの優先順位は、
それぞれ、3、4、及び2である。よって、制御部15
0は、レジスタ110が格納するコンテキストに退避原
因が発生し、当該コンテキストを退避した場合に、優先
順位が1であるIDが7のコンテキストをレジスタ11
0に復帰する。このように、制御部150は、優先順位
を参照することにより、復帰すべき実行可能コンテキス
トを、適切に選択できる。The priority field stores the priority order in which the executable contexts are returned to the register 110 by the control unit 150. The priority of the executable context whose ID is 7 is 1. ID is 5,
The priority of executable contexts that are 6 and 8 is
They are 3, 4, and 2, respectively. Therefore, the control unit 15
When 0 causes a saving cause in the context stored in the register 110, and when the context is saved, the context having the priority of 1 and the ID of 7 is set in the register 11
Return to 0. In this way, the control unit 150 can appropriately select the executable context to be restored by referring to the priority order.
【0030】図5は、コンテキストの退避及び復帰によ
って、複数の命令列が並行して実行される場合のタイム
チャートを示す。図5(A)は、命令列A、命令列B、
及び命令列Cそれぞれの実行のタイミングを示す。一
方、図5(B)は、中央演算処理装置10がこれらの命
令列を実際に実行するタイミングを示す。本図におい
て、縦方向は時間の経過を示す。図5(A)における横
向きの矢印は、コンテキストの退避及び復帰を示す。す
なわち、命令列Aから命令列Bへの矢印は、命令列Aの
コンテキストを退避し、命令列Bのコンテキストを復帰
したことを示す。FIG. 5 shows a time chart when a plurality of instruction sequences are executed in parallel by saving and restoring the context. FIG. 5A shows an instruction sequence A, an instruction sequence B,
And the execution timing of each instruction sequence C are shown. On the other hand, FIG. 5B shows the timing when the central processing unit 10 actually executes these instruction sequences. In this figure, the vertical direction indicates the passage of time. Horizontal arrows in FIG. 5A indicate saving and restoring of the context. That is, the arrow from the instruction sequence A to the instruction sequence B indicates that the context of the instruction sequence A is saved and the context of the instruction sequence B is restored.
【0031】実行部100が命令列Aを実行中に入力命
令の実行を開始すると、制御部150は、命令列Aに対
応するコンテキストを退避し、命令列Bに対応するコン
テキストを復帰する(S100)。次に、実行部100
が命令列Bを実行中に割り込み待ち命令の実行を開始す
ると、制御部150は、命令列Bに対応するコンテキス
トを退避し、命令列Cに対応するコンテキストを復帰す
る(S110)。次に、実行部100が実行を開始して
いた入力命令の実行を完了し(S120)、実行可能コ
ンテキスト格納部160は、命令列Aに対応するコンテ
キストをコンテキスト格納部120から実行可能コンテ
キスト格納部160に移す。実行部100が命令列Cを
実行中に遅い命令の実行を開始すると、制御部150
は、命令列Cに対応するコンテキストを退避する。そし
て、S120により入力命令が完了しているので、制御
部150は、命令列Aに対応するコンテキストを復帰す
る(S130)。When the execution unit 100 starts executing the input instruction while executing the instruction sequence A, the control unit 150 saves the context corresponding to the instruction sequence A and restores the context corresponding to the instruction sequence B (S100). ). Next, the execution unit 100
When the execution of the interrupt waiting instruction is started during execution of the instruction sequence B, the control unit 150 saves the context corresponding to the instruction sequence B and restores the context corresponding to the instruction sequence C (S110). Next, the execution unit 100 completes the execution of the input instruction that has started execution (S120), and the executable context storage unit 160 stores the context corresponding to the instruction sequence A from the context storage unit 120 to the executable context storage unit. Move to 160. When the execution unit 100 starts executing a slow instruction while executing the instruction sequence C, the control unit 150
Saves the context corresponding to the instruction sequence C. Then, since the input instruction is completed in S120, the control unit 150 restores the context corresponding to the instruction sequence A (S130).
【0032】次に、中央演算処理装置10が外部より割
り込みを受けると(S140)、実行可能コンテキスト
格納部160は、命令列Bに対応するコンテキストをコ
ンテキスト格納部120から実行可能コンテキスト格納
部160に移す。次に、実行部100が命令列Aを実行
中にタイマ待ち命令の実行を開始すると、制御部150
は、命令列Aに対応するコンテキストを退避する。そし
て、S140により割り込み待ちが完了しているので、
制御部150は、命令列Bに対応するコンテキストを復
帰する(S150)。実行部100が遅い命令の実行を
完了すると(S160)、実行可能コンテキスト格納部
160は、命令列Cに対応するコンテキストをコンテキ
スト格納部120から実行可能コンテキスト格納部16
0に移す。実行部100が命令列Bを実行中に排他権の
取得待ち命令を実行し、排他権の待ち状態になると、制
御部150は、命令列Bに対応するコンテキストを退避
する。そして、S160において遅い命令が完了してい
るので、制御部150は、命令列Cに対応するコンテキ
ストを復帰する(S170)。Next, when the central processing unit 10 receives an interrupt from the outside (S140), the executable context storage unit 160 transfers the context corresponding to the instruction string B from the context storage unit 120 to the executable context storage unit 160. Transfer. Next, when the execution unit 100 starts executing the timer wait instruction while executing the instruction sequence A, the control unit 150
Saves the context corresponding to the instruction sequence A. Then, since the interrupt waiting is completed in S140,
The control unit 150 restores the context corresponding to the instruction sequence B (S150). When the execution unit 100 completes the execution of the slow instruction (S160), the executable context storage unit 160 retrieves the context corresponding to the instruction sequence C from the context storage unit 120 to the executable context storage unit 16.
Move to 0. When the execution unit 100 executes an exclusive right acquisition wait instruction while the instruction string B is being executed and enters the exclusive right waiting state, the control unit 150 saves the context corresponding to the instruction string B. Then, since the late instruction is completed in S160, the control unit 150 restores the context corresponding to the instruction sequence C (S170).
【0033】実行部100がタイマ待ちを完了すると
(S180)、実行可能コンテキスト格納部160は、
命令列Aに対応するコンテキストをコンテキスト格納部
120から実行可能コンテキスト格納部160に移す。
実行部100が命令列Cを実行中に割り込み待ち命令の
実行を開始すると、制御部150は、命令列Cに対応す
るコンテキストを退避する。そして、S180において
タイマ待ちが完了しているので、制御部150は、命令
列Aに対応するコンテキストを復帰する(S190)。
このように、中央演算処理装置10は、遅い命令の実行
と並行して、他の命令列の命令を並列に実行できる。従
って、中央演算処理装置10は、遅い命令の実行をコン
テキストの退避原因とし、複数の命令列を並行に実行す
ることで、実行部100を有効かつ効率的に使用するこ
とができる。When the execution unit 100 completes waiting for the timer (S180), the executable context storage unit 160
The context corresponding to the instruction sequence A is moved from the context storage unit 120 to the executable context storage unit 160.
When the execution unit 100 starts executing the interrupt waiting instruction while executing the instruction sequence C, the control unit 150 saves the context corresponding to the instruction sequence C. Since the timer waiting is completed in S180, the control unit 150 restores the context corresponding to the instruction sequence A (S190).
In this way, the central processing unit 10 can execute the instructions of other instruction sequences in parallel with the execution of the slow instructions. Therefore, the central processing unit 10 can use the execution unit 100 effectively and efficiently by executing a plurality of instruction sequences in parallel with the execution of a slow instruction as a cause of saving the context.
【0034】図6は、コンテキストの状態の遷移を示
す。コンテキストは、起動されると(S5)、実行状態
となる(S10)。実行状態において、実行部100
は、当該コンテキストの命令列を実行する。コンテキス
トは、退避原因が発生すると、レジスタ110からコン
テキスト格納部120へ退避され(S20)、退避原因
が解消されるまで実行を中断する中断状態になる(S3
0)。コンテキストは、退避原因が解消されると、コン
テキスト格納部120から実行可能コンテキスト格納部
160に実行可能コンテキストとして取得され(S4
0)、実行再開を待つ実行可能状態になる(S50)。
実行可能コンテキストは、他のコンテキストに退避原因
が発生すると、実行可能コンテキスト格納部160から
レジスタ110に復帰され(S60)、再び実行状態に
なる(S10)。FIG. 6 shows the transition of the state of the context. When the context is activated (S5), it enters the execution state (S10). In the execution state, the execution unit 100
Executes the instruction sequence of the context. When the save cause occurs, the context is saved from the register 110 to the context storage unit 120 (S20), and the context is suspended until the save cause is resolved (S3).
0). When the cause of saving is eliminated, the context is acquired as an executable context from the context storage unit 120 to the executable context storage unit 160 (S4
0), the state becomes ready to wait for execution resumption (S50).
When the cause of saving is generated in another context, the executable context is restored from the executable context storage unit 160 to the register 110 (S60), and becomes the execution state again (S10).
【0035】以上に説明した実施形態から明らかなよう
に、本発明の実施形態に係る情報処理装置5及び中央演
算処理装置10は、コンテキストスイッチを高速に行
う。また、情報処理装置5及び中央演算処理装置10は
コンテキストスイッチを行う場合に、中央演算処理装置
10が行う命令の実行に何ら悪影響を与えない。よっ
て、情報処理装置5及び中央演算処理装置10は、コン
テキスト専用の格納場所すなわちコンテキスト格納部1
20を設けることにより、コンテキストをキャッシュメ
モリ130に格納するような形態に比べ、メモリへのア
クセス命令の実行と干渉することなく高速にコンテキス
トスイッチを行うことができる。また、本実施形態に対
して、中央演算処理装置10にレジスタ100を複数備
えさせる変形例が考えられる。この場合においても、一
方のレジスタがコンテキストスイッチを行う動作と独立
して、実行部100が他方のレジスタを用いて命令列を
実行することができ、情報処理装置5及び中央演算処理
装置10は、効率的に複数の命令列を並行実行すること
ができる。As is apparent from the embodiments described above, the information processing device 5 and the central processing unit 10 according to the embodiments of the present invention perform context switching at high speed. Further, the information processing device 5 and the central processing unit 10 do not have any adverse effect on the execution of the instructions performed by the central processing unit 10 when performing the context switch. Therefore, the information processing device 5 and the central processing unit 10 are stored in the storage area dedicated to the context, that is, the context storage unit 1.
By providing 20, the context switching can be performed at high speed without interfering with the execution of the memory access instruction as compared with the case where the context is stored in the cache memory 130. In addition, a modified example in which the central processing unit 10 is provided with a plurality of registers 100 is possible with respect to the present embodiment. Also in this case, the execution unit 100 can execute the instruction sequence by using the other register independently of the operation in which one register performs the context switch, and the information processing device 5 and the central processing unit 10 are It is possible to efficiently execute a plurality of instruction sequences in parallel.
【0036】以上に説明した実施形態によれば、以下の
各項目に示す中央演算処理装置が実現される。
(項目1) 複数の命令列を並行に実行する中央演算処
理装置であって、一の前記命令列を実行している途中の
状態を示すコンテキストを保持するレジスタと、前記命
令列中におけるメモリへのアクセス命令に従い前記レジ
スタの内容を前記メモリに格納するメモリアクセス部
と、前記メモリアクセス部が前記レジスタの内容を格納
するメモリ領域とは別に提供された、前記レジスタから
退避された前記コンテキストを格納するコンテキスト格
納部と、前記レジスタから前記コンテキスト格納部へ前
記コンテキストを退避し、また前記コンテキスト格納部
から前記レジスタに前記コンテキストを復帰する制御部
とを備えることを特徴とする中央演算処理装置。
(項目2) 前記制御部は、前記メモリアクセス部が前
記メモリにデータを格納する場合の転送レートより速い
転送レートで、前記レジスタから前記コンテキスト格納
部へ前記コンテキストを退避することを特徴とする項目
1記載の中央演算処理装置。
(項目3) 前記制御部は、前記メモリアクセス部が前
記メモリにデータを格納する動作と並行して、前記レジ
スタから前記コンテキスト格納部へ前記コンテキストを
退避することを特徴とする項目1記載の中央演算処理装
置。
(項目4) 前記コンテキスト格納部は、前記レジスタ
から退避された互いに識別可能な複数の前記コンテキス
トを格納することを特徴とする項目1記載の中央演算処
理装置。
(項目5) 前記制御部は、前記コンテキストを移動す
ることにより、前記レジスタと前記コンテキスト格納部
の間で前記コンテキストの退避及び復帰を行うことを特
徴とする項目1記載の中央演算処理装置。According to the embodiment described above, the central processing unit shown in each of the following items is realized. (Item 1) A central processing unit for executing a plurality of instruction sequences in parallel, comprising: a register for holding a context indicating a state during execution of one instruction sequence; and a memory in the instruction sequence. Storing the context saved from the register, which is provided separately from a memory access unit that stores the contents of the register in the memory according to the access instruction of 1. and a memory area that stores the contents of the register by the memory access unit. A central processing unit, comprising: a context storage unit that stores the context; and a control unit that saves the context from the register to the context storage unit and restores the context from the context storage unit to the register. (Item 2) The control unit saves the context from the register to the context storage unit at a transfer rate faster than a transfer rate when the memory access unit stores data in the memory. 1. The central processing unit according to 1. (Item 3) The central part of item 1, wherein the control unit saves the context from the register to the context storage unit in parallel with the operation of the memory access unit storing data in the memory. Processing unit. (Item 4) The central processing unit according to item 1, wherein the context storage unit stores a plurality of the contexts that are saved from the register and are distinguishable from each other. (Item 5) The central processing unit according to item 1, wherein the control unit saves and restores the context between the register and the context storage unit by moving the context.
【0037】(項目6) 前記コンテキスト格納部は、
退避された前記コンテキストに対応付けられた退避原因
をさらに格納し、前記コンテキストの前記退避原因が解
消されたか否かを判断する判断部と、前記判断部により
前記退避原因が解消されたと判断されたコンテキストで
ある実行可能コンテキストを前記コンテキスト格納部か
ら選択し格納する実行可能コンテキスト格納部とをさら
に備え、前記制御部は、前記実行可能コンテキストを前
記レジスタに復帰することを特徴とする項目1記載の中
央演算処理装置。
(項目7) 前記実行可能コンテキスト格納部は、前記
実行可能コンテキストを前記レジスタに復帰する優先順
位を更に格納し、前記制御部は、前記優先順位に基づ
き、前記実行可能コンテキストを前記レジスタに復帰す
ることを特徴とする項目6記載の中央演算処理装置。
(項目8) 前記実行可能コンテキスト格納部は、前記
優先順位として、前記コンテキストが実行可能になった
順序を格納することを特徴とする項目6記載の中央演算
処理装置。
(項目9) 前記実行可能コンテキスト格納部が格納す
る前記優先順位を変更する優先順位変更部をさらに備え
ることを特徴とする項目8記載の中央演算処理装置。
(項目10) 特定の種類の命令を実行する演算ユニッ
トをさらに備え、前記優先順位変更部は、実行再開に必
要な前記演算ユニットが使用可能になった場合に、前記
コンテキストの前記優先順位を高くすることを特徴とす
る項目9記載の中央演算処理装置。
(項目11) 特定の種類の命令を実行する演算ユニッ
トをさらに備え、前記制御部は、前記命令列の実行の継
続に必要な前記演算ユニットが使用不可能な場合に、前
記レジスタから前記コンテキスト格納部に前記命令列の
前記コンテキストを退避することを特徴とする項目1記
載の中央演算処理装置。(Item 6) The context storage section
A determination unit that further stores a save cause associated with the saved context, and determines whether the save cause of the context has been resolved, and the determination unit has determined that the save cause has been resolved. Item 2. The item further comprising: an executable context storage unit that selects and stores an executable context that is a context from the context storage unit, and the control unit restores the executable context to the register. Central processing unit. (Item 7) The executable context storage unit further stores a priority order for returning the executable context to the register, and the control unit returns the executable context to the register based on the priority order. The central processing unit according to item 6, characterized in that (Item 8) The central processing unit according to item 6, wherein the executable context storage unit stores, as the priority, the order in which the contexts are executable. (Item 9) The central processing unit according to item 8, further comprising a priority order changing unit that changes the priority order stored in the executable context storage unit. (Item 10) An operation unit that executes a specific type of instruction is further provided, and the priority order changing unit increases the priority order of the context when the operation unit necessary for restarting execution becomes available. 10. The central processing unit according to item 9, wherein (Item 11) An arithmetic unit for executing a specific type of instruction is further provided, and the control unit stores the context from the register when the arithmetic unit required for continuing execution of the instruction sequence is unavailable. 2. The central processing unit according to item 1, wherein the context of the instruction sequence is saved in a section.
【0038】(項目12) 前記制御部は、前記命令列
が予め定められた期間実行された場合に、実行中の前記
命令列の前記コンテキストを前記コンテキスト格納部に
退避することを特徴とする項目1記載の中央演算処理装
置。
(項目13) 前記制御部は、予め定められた命令の実
行を開始する場合に、前記レジスタから前記コンテキス
ト格納部に実行中の前記命令列の前記コンテキストを退
避することを特徴とする項目1記載の中央演算処理装
置。
(項目14) 前記制御部は、実行完了までに予め定め
られた基準より多く時間を要する命令の実行を開始する
場合に、前記レジスタから前記コンテキスト格納部に実
行中の前記命令列の前記コンテキストを退避することを
特徴とする項目13記載の中央演算処理装置。
(項目15) 前記制御部は、割り込みが発生するまで
動作を中断する割り込み待ち命令の実行を開始した場合
に、実行中の前記命令列の前記コンテキストを前記コン
テキスト格納部に退避することを特徴とする項目13記
載の中央演算処理装置。
(項目16) 前記制御部は、所定の時間が経過するま
で実行を中断するタイマー待ち命令の実行を開始した場
合に、実行中の前記命令列の前記コンテキストを前記コ
ンテキスト格納部に退避することを特徴とする項目13
記載の中央演算処理装置。(Item 12) The control unit saves the context of the instruction sequence being executed in the context storage unit when the instruction sequence is executed for a predetermined period. 1. The central processing unit according to 1. (Item 13) The control unit saves the context of the instruction sequence being executed from the register to the context storage unit when starting execution of a predetermined instruction. Central processing unit. (Item 14) The control unit, when starting execution of an instruction that requires more time than a predetermined standard until completion of execution, sets the context of the instruction sequence being executed from the register to the context storage unit. Item 13. The central processing unit according to item 13, wherein the central processing unit is evacuated. (Item 15) The control unit saves the context of the instruction sequence being executed to the context storage unit when the execution of an interrupt waiting instruction that suspends an operation until an interrupt occurs is started. The central processing unit according to item 13. (Item 16) The control unit saves the context of the instruction sequence being executed in the context storage unit when starting execution of a timer waiting instruction that suspends execution until a predetermined time elapses. Characteristic item 13
Central processing unit described.
【0039】(項目17) 前記制御部は、排他処理命
令を実行し、排他権の取得待ち状態になった場合に、実
行中の前記命令列の前記コンテキストを前記コンテキス
ト格納部に退避することを特徴とする項目1記載の中央
演算処理装置。
(項目18) 前記中央演算処理装置は、前記メモリへ
のアクセスを一時的に蓄積するキャッシュを用いて前記
複数の命令列の実行を行い、前記制御部は、一の前記命
令列の実行によりキャッシュミスが発生した場合に、実
行中の前記命令列の前記コンテキストを前記コンテキス
ト格納部に退避することを特徴とする項目1記載の中央
演算処理装置。
(項目19) 前記制御部が前記コンテキストを前記レ
ジスタから前記コンテキスト格納部に退避する場合に、
前記退避の前に実行が開始された命令及び前記退避の後
に前記レジスタに復帰される当該コンテキストとは異な
るコンテキストの命令の双方を並行に実行する実行部を
さらに備えることを特徴とする項目1記載の中央演算処
理装置。
(項目20) 複数の命令列を並行に実行する中央演算
処理装置及びメモリを備える情報処理装置であって、前
記メモリは、前記中央演算処理装置に前記命令列及びデ
ータを供給するとともに前記中央演算処理装置が生成し
たデータを格納し、前記中央演算処理装置は、一の前記
命令列を実行している途中の状態を示すコンテキストを
保持するレジスタと、前記命令列中における前記メモリ
へのアクセス命令に従い前記レジスタの内容を前記メモ
リに格納するメモリアクセス部と、前記メモリアクセス
部が前記レジスタの内容を格納するメモリ領域とは別に
提供された、前記レジスタから退避された前記コンテキ
ストを格納するコンテキスト格納部と、前記レジスタか
ら前記コンテキスト格納部へ前記コンテキストを退避
し、また前記コンテキスト格納部から前記レジスタに前
記コンテキストを復帰する制御部とを有することを特徴
とする情報処理装置。(Item 17) The control unit saves the context of the instruction sequence being executed in the context storage unit when executing the exclusive processing instruction and entering a waiting state for acquisition of the exclusive right. The central processing unit according to item 1 characterized. (Item 18) The central processing unit executes the plurality of instruction sequences by using a cache that temporarily stores access to the memory, and the control unit caches by executing one of the instruction sequences. The central processing unit according to item 1, wherein the context of the instruction sequence being executed is saved in the context storage unit when a miss occurs. (Item 19) When the control unit saves the context from the register to the context storage unit,
Item 1. The method further comprises an execution unit that executes in parallel both an instruction whose execution is started before the saving and an instruction in a context different from the context that is restored to the register after the saving. Central processing unit. (Item 20) An information processing device comprising a central processing unit for executing a plurality of instruction sequences in parallel and a memory, wherein the memory supplies the instruction sequence and data to the central processing unit and performs the central processing. The central processing unit stores data generated by the processing unit, and the central processing unit holds a context indicating a state during execution of one instruction sequence, and an access instruction to the memory in the instruction sequence. A memory access unit for storing the content of the register in the memory in accordance with the above, and a memory area for storing the context saved from the register, which is provided separately from the memory area in which the memory access unit stores the content of the register. Section, saves the context from the register to the context storage section, and The information processing apparatus characterized by the preparative storage unit and a control unit for returning the context in the register.
【0040】以上、本発明を実施形態を用いて説明した
が、本発明の技術的範囲は上記実施形態に記載の範囲に
は限定されない。上記実施形態に、多様な変更または改
良を加えることができる。そのような変更または改良を
加えた形態も本発明の技術的範囲に含まれ得ることが、
特許請求の範囲の記載から明らかである。Although the present invention has been described with reference to the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. Various changes or improvements can be added to the above-described embodiment. It is also possible to include such modifications or improvements in the technical scope of the present invention.
It is clear from the description of the claims.
【0041】[0041]
【発明の効果】上記説明から明らかなように、本発明に
よれば複数の命令列を効率よく実行する中央演算処理装
置等を提供する。As is apparent from the above description, according to the present invention, there is provided a central processing unit for efficiently executing a plurality of instruction sequences.
【図1】 情報処理装置5の機能ブロック図。FIG. 1 is a functional block diagram of an information processing device 5.
【図2】 退避原因及び退避原因の解消要因の組み合わ
せを示す図。FIG. 2 is a diagram showing a combination of save causes and save cause canceling factors.
【図3】 コンテキスト格納部120のデータ構造の一
例を示す図。FIG. 3 is a diagram showing an example of a data structure of a context storage unit 120.
【図4】 実行可能コンテキスト格納部160のデータ
構造の一例を示す図。FIG. 4 is a diagram showing an example of a data structure of an executable context storage unit 160.
【図5】 コンテキストの退避及び復帰によって、複数
の命令列が並行して実行される場合のタイムチャート。FIG. 5 is a time chart when a plurality of instruction sequences are executed in parallel by saving and restoring a context.
【図6】 コンテキストの状態が遷移する様子をあらわ
す図。FIG. 6 is a diagram showing how the state of context changes.
【符号の説明】 5 情報処理装置 10 中央演算処理装置 20 メモリ 100 実行部 102 メモリアクセス部 104 演算ユニット 110 レジスタ 120 コンテキスト格納部 130 キャッシュメモリ 140 判断部 150 制御部 160 実行可能コンテキスト格納部 180 優先順位変更部[Explanation of symbols] 5 Information processing equipment 10 Central processing unit 20 memory 100 execution unit 102 memory access unit 104 arithmetic unit 110 registers 120 Context storage 130 cache memory 140 Judgment section 150 control unit 160 Executable context storage 180 Priority change section
───────────────────────────────────────────────────── フロントページの続き (72)発明者 原田 信之 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 Fターム(参考) 5B098 BA14 DD01 DD02 GA02 GA04 GA05 GA08 GC02 ─────────────────────────────────────────────────── ─── Continued front page (72) Inventor Nobuyuki Harada 1623 1423 Shimotsuruma, Yamato-shi, Kanagawa Japan BM Co., Ltd. Daiwa Office F term (reference) 5B098 BA14 DD01 DD02 GA02 GA04 GA05 GA08 GC02
Claims (20)
処理装置であって、一の前記命令列を実行している途中
の状態を示すコンテキストを保持するレジスタと、 前記命令列中におけるメモリへのアクセス命令に従い前
記レジスタの内容を前記メモリに格納するメモリアクセ
ス部と、 前記メモリアクセス部が前記レジスタの内容を格納する
メモリ領域とは別に提供された、前記レジスタから退避
された前記コンテキストを格納するコンテキスト格納部
と、 前記レジスタから前記コンテキスト格納部へ前記コンテ
キストを退避し、また前記コンテキスト格納部から前記
レジスタに前記コンテキストを復帰する制御部とを備え
ることを特徴とする中央演算処理装置。1. A central processing unit for executing a plurality of instruction sequences in parallel, comprising: a register for holding a context indicating a state during execution of one instruction sequence; and a memory in the instruction sequence. A memory access unit that stores the contents of the register in the memory according to an access instruction to the memory, and a memory area that is provided by the memory access unit separately from the memory region that stores the contents of the register. A central processing unit, comprising: a context storage unit that stores the context; and a control unit that saves the context from the register to the context storage unit and restores the context from the context storage unit to the register.
前記メモリにデータを格納する場合の転送レートより速
い転送レートで、前記レジスタから前記コンテキスト格
納部へ前記コンテキストを退避することを特徴とする請
求項1記載の中央演算処理装置。2. The control unit saves the context from the register to the context storage unit at a transfer rate faster than a transfer rate when the memory access unit stores data in the memory. The central processing unit according to claim 1.
前記メモリにデータを格納する動作と並行して、前記レ
ジスタから前記コンテキスト格納部へ前記コンテキスト
を退避することを特徴とする請求項1記載の中央演算処
理装置。3. The control unit saves the context from the register to the context storage unit in parallel with the operation of the memory access unit storing data in the memory. Central processing unit.
タから退避された互いに識別可能な複数の前記コンテキ
ストを格納することを特徴とする請求項1記載の中央演
算処理装置。4. The central processing unit according to claim 1, wherein the context storage unit stores a plurality of the contexts saved from the register and identifiable with each other.
することにより、前記レジスタと前記コンテキスト格納
部の間で前記コンテキストの退避及び復帰を行うことを
特徴とする請求項1記載の中央演算処理装置。5. The central processing unit according to claim 1, wherein the control unit saves and restores the context between the register and the context storage unit by moving the context. .
前記コンテキストに対応付けられた退避原因をさらに格
納し、 前記コンテキストの前記退避原因が解消されたか否かを
判断する判断部と、 前記判断部により前記退避原因が解消されたと判断され
たコンテキストである実行可能コンテキストを前記コン
テキスト格納部から選択し格納する実行可能コンテキス
ト格納部とをさらに備え、 前記制御部は、前記実行可能コンテキストを前記レジス
タに復帰することを特徴とする請求項1記載の中央演算
処理装置。6. The determination unit, wherein the context storage unit further stores a save cause associated with the saved context, and determines whether the save cause of the context has been resolved, and the determine unit. Further comprises an executable context storage unit for selecting and storing an executable context that is a context determined to have solved the saving cause from the context storage unit, wherein the control unit stores the executable context in the register. The central processing unit according to claim 1, wherein the central processing unit returns.
記実行可能コンテキストを前記レジスタに復帰する優先
順位を更に格納し、 前記制御部は、前記優先順位に基づき、前記実行可能コ
ンテキストを前記レジスタに復帰することを特徴とする
請求項6記載の中央演算処理装置。7. The executable context storage unit further stores a priority order for returning the executable context to the register, and the control unit returns the executable context to the register based on the priority order. 7. The central processing unit according to claim 6, wherein
記優先順位として、前記コンテキストが実行可能になっ
た順序を格納することを特徴とする請求項6記載の中央
演算処理装置。8. The central processing unit according to claim 6, wherein the executable context storage unit stores, as the priority, the order in which the contexts are executable.
する前記優先順位を変更する優先順位変更部をさらに備
えることを特徴とする請求項8記載の中央演算処理装
置。9. The central processing unit according to claim 8, further comprising a priority order changing unit that changes the priority order stored in the executable context storage unit.
ットをさらに備え、 前記優先順位変更部は、実行再開に必要な前記演算ユニ
ットが使用可能になった場合に、前記コンテキストの前
記優先順位を高くすることを特徴とする請求項9記載の
中央演算処理装置。10. An operation unit for executing a specific type of instruction is further provided, wherein the priority order changing unit sets the priority order of the context when the operation unit required for resuming execution becomes available. The central processing unit according to claim 9, wherein the central processing unit has a higher height.
ットをさらに備え、 前記制御部は、前記命令列の実行の継続に必要な前記演
算ユニットが使用不可能な場合に、前記レジスタから前
記コンテキスト格納部に前記命令列の前記コンテキスト
を退避することを特徴とする請求項1記載の中央演算処
理装置。11. An operation unit for executing a specific type of instruction is further provided, wherein the control unit controls the context from the register when the operation unit required to continue execution of the instruction sequence is unavailable. The central processing unit according to claim 1, wherein the context of the instruction sequence is saved in a storage unit.
られた期間実行された場合に、実行中の前記命令列の前
記コンテキストを前記コンテキスト格納部に退避するこ
とを特徴とする請求項1記載の中央演算処理装置。12. The control unit saves the context of the instruction sequence being executed in the context storage unit when the instruction sequence is executed for a predetermined period. Central processing unit described.
実行を開始する場合に、前記レジスタから前記コンテキ
スト格納部に実行中の前記命令列の前記コンテキストを
退避することを特徴とする請求項1記載の中央演算処理
装置。13. The control unit saves the context of the instruction sequence being executed from the register to the context storage unit when starting execution of a predetermined instruction. 1. The central processing unit according to 1.
められた基準より多く時間を要する命令の実行を開始す
る場合に、前記レジスタから前記コンテキスト格納部に
実行中の前記命令列の前記コンテキストを退避すること
を特徴とする請求項13記載の中央演算処理装置。14. The control unit, when starting execution of an instruction that requires more time than a predetermined standard until completion of execution, the context of the instruction string being executed from the register to the context storage unit. 14. The central processing unit according to claim 13, wherein the central processing unit is saved.
で動作を中断する割り込み待ち命令の実行を開始した場
合に、実行中の前記命令列の前記コンテキストを前記コ
ンテキスト格納部に退避することを特徴とする請求項1
3記載の中央演算処理装置。15. The control unit saves, in the context storage unit, the context of the instruction sequence being executed when the execution of an interrupt waiting instruction that suspends an operation until an interrupt occurs is started. Claim 1
3. The central processing unit according to 3.
まで実行を中断するタイマー待ち命令の実行を開始した
場合に、実行中の前記命令列の前記コンテキストを前記
コンテキスト格納部に退避することを特徴とする請求項
13記載の中央演算処理装置。16. The control unit saves, in the context storage unit, the context of the instruction sequence being executed, when the execution of a timer waiting instruction that suspends execution until a predetermined time has elapsed is started. 14. The central processing unit according to claim 13.
し、排他権の取得待ち状態になった場合に、実行中の前
記命令列の前記コンテキストを前記コンテキスト格納部
に退避することを特徴とする請求項1記載の中央演算処
理装置。17. The control unit saves the context of the instruction sequence being executed in the context storage unit when executing an exclusive processing instruction and entering a waiting state for acquiring an exclusive right. The central processing unit according to claim 1.
へのアクセスを一時的に蓄積するキャッシュを用いて前
記複数の命令列の実行を行い、 前記制御部は、一の前記命令列の実行によりキャッシュ
ミスが発生した場合に、実行中の前記命令列の前記コン
テキストを前記コンテキスト格納部に退避することを特
徴とする請求項1記載の中央演算処理装置。18. The central processing unit executes the plurality of instruction sequences by using a cache that temporarily stores access to the memory, and the control unit executes one of the instruction sequences. The central processing unit according to claim 1, wherein when a cache miss occurs, the context of the instruction sequence being executed is saved in the context storage unit.
レジスタから前記コンテキスト格納部に退避する場合
に、前記退避の前に実行が開始された命令及び前記退避
の後に前記レジスタに復帰される当該コンテキストとは
異なるコンテキストの命令の双方を並行に実行する実行
部をさらに備えることを特徴とする請求項1記載の中央
演算処理装置。19. When the control unit saves the context from the register to the context storage unit, an instruction started to be executed before the saving and the context to be restored to the register after the saving. The central processing unit according to claim 1, further comprising an execution unit that executes both instructions in different contexts in parallel.
算処理装置及びメモリを備える情報処理装置であって、 前記メモリは、 前記中央演算処理装置に前記命令列及びデータを供給す
るとともに前記中央演算処理装置が生成したデータを格
納し、 前記中央演算処理装置は、 一の前記命令列を実行している途中の状態を示すコンテ
キストを保持するレジスタと、 前記命令列中における前記メモリへのアクセス命令に従
い前記レジスタの内容を前記メモリに格納するメモリア
クセス部と、 前記メモリアクセス部が前記レジスタの内容を格納する
メモリ領域とは別に提供された、前記レジスタから退避
された前記コンテキストを格納するコンテキスト格納部
と、 前記レジスタから前記コンテキスト格納部へ前記コンテ
キストを退避し、また前記コンテキスト格納部から前記
レジスタに前記コンテキストを復帰する制御部とを有す
ることを特徴とする情報処理装置。20. An information processing apparatus comprising a central processing unit for executing a plurality of instruction sequences in parallel and a memory, wherein the memory supplies the instruction sequence and data to the central processing unit and the central processing unit. The central processing unit stores data generated by an arithmetic processing unit, and the central processing unit holds a context indicating a state in the middle of executing one instruction sequence, and an access to the memory in the instruction sequence. A memory access unit that stores the contents of the register in the memory according to an instruction, and a context that is provided separately from the memory area that stores the contents of the register and that stores the context saved from the register A storage unit, saving the context from the register to the context storage unit, and The information processing apparatus characterized by the emission text storage unit and a control unit for returning the context in the register.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002024689A JP2003241977A (en) | 2002-01-31 | 2002-01-31 | Central processing unit and information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002024689A JP2003241977A (en) | 2002-01-31 | 2002-01-31 | Central processing unit and information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003241977A true JP2003241977A (en) | 2003-08-29 |
Family
ID=27773309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002024689A Pending JP2003241977A (en) | 2002-01-31 | 2002-01-31 | Central processing unit and information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003241977A (en) |
-
2002
- 2002-01-31 JP JP2002024689A patent/JP2003241977A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9047120B2 (en) | Virtual queue processing circuit and task processor | |
US5613114A (en) | System and method for custom context switching | |
JP3760035B2 (en) | Multi-thread processor that processes multiple instruction streams independently and flexibly controls processing performance in units of instruction streams | |
US9342350B2 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
JP5548037B2 (en) | Command issuing control device and method | |
US20080098397A1 (en) | System and method for CPI load balancing in SMT processors | |
US20050086660A1 (en) | System and method for CPI scheduling on SMT processors | |
US20120239908A1 (en) | Dual thread processor | |
JP4127848B2 (en) | Task processing device | |
JP2017037370A (en) | Computing device, process control method and process control program | |
US20230153113A1 (en) | System and Method for Instruction Unwinding in an Out-of-Order Processor | |
JP2006039815A (en) | Multithread processor and register control method | |
US8042116B2 (en) | Task switching based on the execution control information held in register groups | |
WO2001038970A2 (en) | Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks | |
JP4608100B2 (en) | Improved result processing method in multiprocessing system. | |
JP2003241977A (en) | Central processing unit and information processor | |
JP2008269597A (en) | Task processor | |
JP2768878B2 (en) | Data processing device, method for synchronizing instruction execution, method for saving instruction address when exception occurs, and method for invalidating instruction processing when exception occurs | |
JP2006195705A (en) | Processor | |
CN114579264A (en) | Processing apparatus, processing system, and processing method | |
JPH02173828A (en) | Interruption process system | |
JP2003323294A (en) | Superscalar processor | |
JPH10269079A (en) | Information processor provided with multiple pipelines | |
JPH06103065A (en) | Instruction prefetch device | |
JP2004295451A (en) | Processor and feasible task selection method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050308 |
|
A131 | Notification of reasons for refusal |
Effective date: 20050426 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050617 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050712 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051206 |