JPH0325533A - Microprocessor - Google Patents

Microprocessor

Info

Publication number
JPH0325533A
JPH0325533A JP16039889A JP16039889A JPH0325533A JP H0325533 A JPH0325533 A JP H0325533A JP 16039889 A JP16039889 A JP 16039889A JP 16039889 A JP16039889 A JP 16039889A JP H0325533 A JPH0325533 A JP H0325533A
Authority
JP
Japan
Prior art keywords
register
registers
physical
management table
logical
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
Application number
JP16039889A
Other languages
Japanese (ja)
Inventor
Takafumi Ushiro
後 尚文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP16039889A priority Critical patent/JPH0325533A/en
Publication of JPH0325533A publication Critical patent/JPH0325533A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To save and restore used registers with one instruction at the time of context switching by allowing logical registers and physical registers to correspond to each other on a register management table by a CPU and recognizing the number of used physical registers by a used register number management register. CONSTITUTION:When a call instruction 210 is executed, registers r0 to r2 out of physical registers are assigned to a user stack pointer 107, a user program counter 108, and a user status register 109. When a logical register which the physical register corresponding to is already registered appears in a program, the number of the physical register existing in a register management table 102 is referred to access data in the corresponding physical register. When a call instruction 211 appears, contents of the used register number management table are automatically referred to save contents of seven physical registers r0 to r6. Thus, context switching is performed without taking save and restore of registers into consideration, and programming is facilitated.

Description

【発明の詳細な説明】[Detailed description of the invention] 【産業上の利用分野】[Industrial application field]

この発明は、複数個のレジスタを有するマイクロプロセ
ッサ(以下、CPUという。)に関するものである。
The present invention relates to a microprocessor (hereinafter referred to as CPU) having a plurality of registers.

【従来の技術】[Conventional technology]

第5図は従来の32ビットCPUのレジスタ橘戒の一例
を示す構或図である.図において、501〜508はデ
ータを読み書きするためのデータレジスタ、509〜5
16はベースアドレスレジスタやスタックポインタとし
て使用するアドレスレジスタ、517〜527はその他
のレジスタである。 次に動作について説明する。データレジスタ501〜5
08やアドレス509〜516に付けられた番号(0)
〜(7)は物理番号であり、機械語で直接指定される。 従って、プログラムにおいて例えばdO,diおよびd
4を使用して、d2,d3は使用しないということもあ
る。この場合に、マルチタスク処理をしている時などに
、コンテクストスイッチによるレジスタの待避を行うに
は、プログラム側で使用中のレジスタdO,dl.d4
を待避させる命令が必要である。また、待避しておいた
レジスタを復帰させる際に、同様にd4,di,doと
逆順に復帰させる命令が必要である。
FIG. 5 is a diagram showing an example of the register structure of a conventional 32-bit CPU. In the figure, 501 to 508 are data registers for reading and writing data, and 509 to 5 are data registers for reading and writing data.
16 is an address register used as a base address register or a stack pointer, and 517 to 527 are other registers. Next, the operation will be explained. Data registers 501-5
08 and the number (0) assigned to addresses 509-516
~(7) are physical numbers, which are directly specified in machine language. Therefore, in the program, for example, dO, di and d
4 may be used, but d2 and d3 may not be used. In this case, in order to save registers by context switching when performing multitasking, the registers dO, dl. d4
An order to evacuate is necessary. Furthermore, when restoring the saved registers, an instruction for restoring them in the reverse order of d4, di, and do is required.

【発明が解決しようとする課題】[Problem to be solved by the invention]

従来のCPUは以上のように構威されているので、コン
テクストスインチが発生するごとに、プログラムでレジ
スタの待避、復帰処理を行う必要があり、処理時間が余
分にかかるなどの課題があった・ この発明は上記のような課題を解消するためになされた
もので、使用するレジスタ論理番号がいずれであるかに
かかわらず、連続するものとして使用できるとともに、
コンテクストスイッチに際して、使用していたレジスタ
の待避、復帰が1命令で行えるCPUを得ることを目的
とする。
Conventional CPUs are structured as described above, so each time a context blink occurs, the program must perform register saving and restoring processing, which poses problems such as extra processing time. - This invention was made to solve the above problems, and can be used as a continuous register regardless of which register logical number is used.
The purpose of the present invention is to provide a CPU capable of saving and restoring a used register with a single instruction when a context switch is performed.

【課題を解決するための手段】[Means to solve the problem]

この発明に係るCPUは、物理的に固定の番号または名
称を有する物理レジスタと、プログラムで使用するレジ
スタ論理番号またはレジスタ論理名が設定され、このレ
ジスタ論理番号またはレジスタ論理名に対応する物理レ
ジスタが番号または名称で登録されるレジスタ管理テー
ブルと、このレジスタ管理テーブルに登録済の物理レジ
スタの個数を計数するレジスタ使用数管理レジスタとを
備えたものである。
In the CPU according to the present invention, a physical register having a physically fixed number or name and a register logical number or register logical name used in a program are set, and a physical register corresponding to the register logical number or register logical name is set. It is equipped with a register management table that is registered by number or name, and a register usage number management register that counts the number of physical registers registered in this register management table.

【作用】[Effect]

この発明におけるCPUは、プログラムで使用するレジ
スタ論理番号またはレジスタ論理名を未登録の物理レジ
スタの番号または名称に対応させてレジスタ管理テーブ
ルに登録し、対応する物理レジスタが登録済である論理
レジスタを扱う場合には、レジスタ管理テーブルから対
応する物理レジスタの番号または名称を入手して、その
物理レジスタをアクセスする。
The CPU in this invention registers a register logical number or a register logical name used in a program in a register management table in correspondence with the number or name of an unregistered physical register, and registers a logical register in which the corresponding physical register is already registered. When handling the physical register, the number or name of the corresponding physical register is obtained from the register management table, and the physical register is accessed.

【実施例】【Example】

以下、この発明の一実施例を図について説明する。第1
図において、101は固定の番号を有する複数の物理レ
ジスタから或る汎用レジスタ群、102は論理レジスタ
番号領域110および物理レジスタ番号領域111を有
するレジスタ管理テーブル、103は物理レジスタ番号
領域111に登録済のレジスタの個数が設定されるレジ
スタ使用数管理レジスタ、105はデータレジスタ領域
、106はアドレスレジスタ領域、107はユーザスタ
ックポインタ、10Bはユーザプログラムカウンタ、1
09はユーザステータスレジスタである。 次に動作について説明する。第2図(A)はプログラム
の一例を示している.同図に示した命令のうち、210
.211はコンテクストスイッチを必要とするCALL
命令であるとする。まず、CALL命令210を実行す
る際に、ユーザスタックポインタ107,ユーザプログ
ラムカウンタ108およびユーザステータスレジスタ1
09に物理レジスタのうちrO,rlおよびr2が割り
当てられる.次に、コールされたfunc 1を実行中
にレジスタ関連命令が出現すると、順に物理レジスタを
割り当てていく。この場合には、命令201を実行する
際にd2の論理レジスタにr3の物理レジスタが、命令
202を実行する際にa3の論理レジスタにr4の物理
レジスタが、また、a1の論理レジスタにr5の物理レ
ジスタが、そして、命令203を実行する際にdoの論
理レジスタにr6の物理レジスタが割り当てられる。こ
の様子を第2図(B)に示す。この段階でレジスタ使用
数管理レジスタ103の内容は“7′となり、ro−r
6の物理レジスタが連続して使用されていることになる
。この後にプログラム中に、既に物理レジスタが登録済
の論理レジスタが出現すると、CPUはこれを解析して
、レジスタ管理テーブル102に存在する物理レジスタ
の番号を参照して、対応する物理レジスタに対してデー
タをアクセスする。さらに、CALL命令211が出現
すると、自動的にレジスタ使用数管理テーブルの内容を
参照して、rO〜r6の7個分の物理レジスタの内容を
待避する。また、レジスタ管理テーブル102とレジス
タ使用数管理レジスタ103を自動的に待避する。そし
て、func2の実行が完了した時には、待避しておい
たレジスタ使用数管理レジスタ103の内容を参照して
、rO〜r6の7個分の物理レジスタの内容を復帰させ
、また、レジスタ管理テーブル102およびレジスタ使
用数管理レジスタ103も自動的に復帰させる。 なお、上記実施例では、物理レジスタはプログラム中の
論理レジスタの出現順に割り当てるようにしたが、プロ
グラムにあらかじめ論理レジスタと物理レジスタとの割
り付けを最適化するための情報を作威しておいて、モジ
ュール内に保持しておき、コンテクストスインチが実行
される時にレジスタ管理テーブル102に書き込むよう
にしてもよい。第3図(A)は実行形式モジュール30
1の最後にレジスタ最適化情報部305を配置した例を
示したものであり、第3図(B)はコンテクストスイッ
チを行う単位ごとにレジスタ最適化情報部305を配置
した例を示したものである。ここで、302はモジュー
ルヘッダ、303はモジュールの実行部、304はシン
ボル情報部である.レジスタ最適化情報部305の位置
については、第3図(A),CB)に示したような2つ
の例を示したが、実行形式モジュール301内で実行部
303との関係が確定していれば、他の位置であっても
よい。また、この場合には、物理レジスタの待避または
復帰動作を行う際に、レジスタ管理テーブル102を待
避または復帰させる必要はない。 第4図は論理レジスタと物理レジスタとの対応づけを、
CPUO外のハードウェアにより実現した例を示したも
のである。同図において、401はプログラミング可能
なプログラマブル・ロジック・デバイス(PLD)であ
り、402はデータパスである。この場合には、レジス
タ管理テーブル102に物理アドレスを登録することに
かえて、PLD4 0 1に論理アドレスと物理アドレ
スとの関係をプログラミングしておく。そして、レジス
タをアクセスする際に、自動的に論理アドレスから物理
アドレスへの交換が行われるので、CPUにおいてレジ
スタ管理テーブル102を参照する必要をなくすことが
できる。 なお、以上の説明において、コンテクストスイッチが必
要か否かは、CALL命令210 , 211のような
サブプログラムの制御命令にて判別可能であるが、レジ
スタの待避・.復帰に相当する専用命令を備えてもよい
。 また、以上に述べた制御方式は、具体的にはマイクロプ
ログラムまたは布線論理で容易に実現できる。
An embodiment of the present invention will be described below with reference to the drawings. 1st
In the figure, 101 is a general-purpose register group from a plurality of physical registers having fixed numbers, 102 is a register management table having a logical register number area 110 and a physical register number area 111, and 103 is a register registered in the physical register number area 111. 105 is a data register area, 106 is an address register area, 107 is a user stack pointer, 10B is a user program counter, 1
09 is a user status register. Next, the operation will be explained. Figure 2 (A) shows an example of the program. Of the instructions shown in the figure, 210
.. 211 is a CALL that requires a context switch
Suppose it is a command. First, when executing the CALL instruction 210, the user stack pointer 107, user program counter 108, and user status register 1
Of the physical registers, rO, rl, and r2 are assigned to 09. Next, when a register-related instruction appears while executing the called func 1, physical registers are sequentially allocated. In this case, when executing instruction 201, the physical register of r3 is placed in the logical register of d2, and when executing the instruction 202, the physical register of r4 is placed in the logical register of a3, and the physical register of r5 is placed in the logical register of a1. Then, when executing instruction 203, the physical register of r6 is assigned to the logical register of do. This situation is shown in FIG. 2(B). At this stage, the content of the register usage number management register 103 becomes “7”, and ro-r
This means that 6 physical registers are used consecutively. After this, when a logical register for which a physical register has already been registered appears in the program, the CPU analyzes this, refers to the physical register number existing in the register management table 102, and registers the corresponding physical register. Access data. Furthermore, when the CALL instruction 211 appears, the contents of the register usage number management table are automatically referred to and the contents of seven physical registers rO to r6 are saved. Further, the register management table 102 and register usage number management register 103 are automatically saved. When the execution of func2 is completed, the contents of the saved register usage number management register 103 are referred to, and the contents of the seven physical registers rO to r6 are restored, and the contents of the register management table 103 are restored. And the register usage number management register 103 is also automatically restored. Note that in the above embodiment, physical registers are allocated in the order in which logical registers appear in the program, but information for optimizing the allocation of logical registers and physical registers may be created in advance in the program. It may be held in the module and written to the register management table 102 when the context switch is executed. FIG. 3(A) shows the executable module 30
1, and FIG. 3(B) shows an example in which the register optimization information section 305 is arranged for each unit in which context switching is performed. be. Here, 302 is a module header, 303 is a module execution part, and 304 is a symbol information part. Regarding the location of the register optimization information section 305, two examples as shown in FIG. For example, it may be in another position. Furthermore, in this case, there is no need to save or restore the register management table 102 when saving or restoring physical registers. Figure 4 shows the correspondence between logical registers and physical registers.
This shows an example realized by hardware outside the CPUO. In the figure, 401 is a programmable logic device (PLD), and 402 is a data path. In this case, instead of registering the physical address in the register management table 102, the relationship between the logical address and the physical address is programmed into the PLD 401. Then, when accessing a register, the logical address is automatically exchanged with a physical address, thereby eliminating the need for the CPU to refer to the register management table 102. In the above explanation, whether or not a context switch is necessary can be determined by subprogram control instructions such as the CALL instructions 210 and 211, but register saving, . A dedicated command corresponding to return may be provided. Moreover, the control method described above can be easily realized specifically by a microprogram or wiring logic.

【発明の効果】【Effect of the invention】

以上のように、この発明によれば、CPUをレジスタ管
理テーブルで論理レジスタと物理レジスタとを対応させ
、レジスタ使用数管理レジスタで物理レジスタの使用数
を把握できるように構威したので、コンテクストスイッ
チに際してレジスタの待避および復帰を考慮せずに済み
、プログラミングが容易になるものが得られる効果があ
る。
As described above, according to the present invention, the CPU is configured so that logical registers and physical registers correspond to each other in the register management table, and the number of physical registers in use can be grasped in the register usage number management register. There is no need to consider saving and restoring registers when programming, which has the effect of making programming easier.

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

第1図はこの発明の一実施例によるCPUのレジスタ構
或を示す構或図、第2図(A).(B)はレジスタ割り
付けの一例を示す説明図、第3図はこの発明の他の実施
例におけるレジスタ管理情報の配置を示す説明図、第4
図はこの発明のさらに他の実施例におけるPLDおよび
レジスタ等のブロック図、第5図は従来のCPUのレジ
スタ構或を示す構或図である。 101は汎用レジスタ群、102はレジスタ管理テーブ
ル、103はレジスタ使用数管理レジスタ。 なお、図中、同一符号は同一、または相当部分を示す。
FIG. 1 is a configuration diagram showing the register structure of a CPU according to an embodiment of the present invention, and FIG. 2(A). (B) is an explanatory diagram showing an example of register allocation, FIG. 3 is an explanatory diagram showing the arrangement of register management information in another embodiment of the present invention, and FIG.
The figure is a block diagram of a PLD, registers, etc. in yet another embodiment of the present invention, and FIG. 5 is a structural diagram showing the register structure of a conventional CPU. 101 is a group of general-purpose registers, 102 is a register management table, and 103 is a register for managing the number of registers used. In addition, in the figures, the same reference numerals indicate the same or equivalent parts.

Claims (1)

【特許請求の範囲】[Claims] 物理的に固定された番号または名称を有する複数個の物
理レジスタと、プログラムで使用するレジスタ論理番号
もしくはレジスタ論理名およびこのレジスタ論理番号も
しくはレジスタ論理名に対応する前記物理レジスタの前
記固定された番号または名称が登録されるレジスタ管理
テーブルと、このレジスタ管理テーブルに登録された前
記物理レジスタの個数を計数するレジスタ使用数管理レ
ジスタとを備えたマイクロプロセッサ。
A plurality of physical registers having physically fixed numbers or names, a register logical number or register logical name used in the program, and the fixed number of the physical register corresponding to this register logical number or register logical name. Alternatively, a microprocessor comprising a register management table in which names are registered, and a register usage number management register that counts the number of the physical registers registered in the register management table.
JP16039889A 1989-06-22 1989-06-22 Microprocessor Pending JPH0325533A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16039889A JPH0325533A (en) 1989-06-22 1989-06-22 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16039889A JPH0325533A (en) 1989-06-22 1989-06-22 Microprocessor

Publications (1)

Publication Number Publication Date
JPH0325533A true JPH0325533A (en) 1991-02-04

Family

ID=15714083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16039889A Pending JPH0325533A (en) 1989-06-22 1989-06-22 Microprocessor

Country Status (1)

Country Link
JP (1) JPH0325533A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6132865A (en) * 1997-07-23 2000-10-17 Tomoegawa Paper Co., Ltd. Adhesive tape for electronic parts

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6132865A (en) * 1997-07-23 2000-10-17 Tomoegawa Paper Co., Ltd. Adhesive tape for electronic parts

Similar Documents

Publication Publication Date Title
JP3136257B2 (en) Computer memory interface device
JPS61206043A (en) Interruption control method in virtual computer system
US4654779A (en) Multiprocessor system including firmware
KR20010080349A (en) Processing arrangements
JPH0325533A (en) Microprocessor
JPH10334055A (en) Multiprocessor system
JPS6349945A (en) Process roll-in system for data processor
JP3503504B2 (en) Debug processing system, computer and debug processing method
JPS61184643A (en) Starting control system for virtual computer
JPS6352240A (en) Data processor
RU2340933C2 (en) Method of computation process context switching during program interrupt or subroutine jump
JPS59218569A (en) Microcomputer
JPH0245207B2 (en)
JPS5942331B2 (en) Prosetsusasouchinoseigiohoshiki
JPH02178748A (en) Virtual storage control method for virtual storage computer system
JPH0738168B2 (en) Data processing device
JPH03182945A (en) Transfer system for data in main storage
JPH04138528A (en) Common data accessing system in contracted instruction setting computer
JPS61248152A (en) Procedure change controlling system
JPH0217541A (en) Stack system micro-computer
JPS60230240A (en) Interruption processing system
JPS63273133A (en) Data processor
JPS61269736A (en) Debugging device
JPH04280337A (en) Virtual storage computer system
JPH04115335A (en) Memory address conversion system