JPH06236319A - Method and apparatus for execution, by computer, of procedure of different word size - Google Patents

Method and apparatus for execution, by computer, of procedure of different word size

Info

Publication number
JPH06236319A
JPH06236319A JP3354403A JP35440391A JPH06236319A JP H06236319 A JPH06236319 A JP H06236319A JP 3354403 A JP3354403 A JP 3354403A JP 35440391 A JP35440391 A JP 35440391A JP H06236319 A JPH06236319 A JP H06236319A
Authority
JP
Japan
Prior art keywords
bit
procedure
register
word size
save area
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
JP3354403A
Other languages
Japanese (ja)
Inventor
Michael Powell
マイケル・ポウェル
Robert Cmelik
ロバート・クメリク
Shing Kong
シン・コン
David Ditzel
デビッド・ディツェル
Edmund Kelly
エドモンド・ケリイ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06236319A publication Critical patent/JPH06236319A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Abstract

PURPOSE: To provide a method and device for allowing a 64-bit device to operate a 32-bit software. CONSTITUTION: This method and device is constituted of the process of placing display indicating the word size of a procedure in at least one of the number of the registers of a processor, the process of supplying a save area including at least one part of the save area of the procedure of the smallest word size in the same address for a memory for the register filing of each word size, the process of indicating the word size of the procedure at the part of the save area with the same address and place display held by at least one of the register of the processor, and the process of re-investigating display at the part of the save area with the same address each time of generating saving operation for deciding the word size of a procedure to be restored.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はコンピュータシステムに
関するものであり、さらに詳細には32ビットから64
ビットへコンピュータ・アーキテクチャを拡張するため
の方法及び装置である。
FIELD OF THE INVENTION This invention relates to computer systems, and more particularly from 32 bits to 64 bits.
A method and apparatus for extending a computer architecture to bits.

【0002】[0002]

【従来の技術】コンピュータはその速度並びに能力が改
善されているが、依然としてよりアドレス可能なメモリ
の要求がある。アドレスのサイズはアドレスされるメモ
リのサイズを直接制御している。アドレスの各追加ビッ
トはアドレス可能メモリを2倍にする。64ビットアド
レスを使用したシステムは32ビットアドレスを用いた
システムが供給することができるより2倍多くのアドレ
スを供給することができる。したがって、今日では研究
者は64ビット・アーキテクチャに基ずくコンピュータ
システムを開発している。一方、32ビットアドレスを
使用した非常に強力なコンピュータも存在している。そ
のようなシステムの非常に有効なソフトウエアも数多く
ある。多くの会社はハードウエアに投下するよりも多く
ソフトウエアに投資している。もしより多くのアドレス
に簡単にアドレスすることができる簡単な方法があれ
ば、これらの32ビットシステムはより多くの問題を処
理することができるかもしれない。より多くのメモリを
得るための有効なただ一つの方法が、より多くの(64
ビット)のアドレスを用いたシステムを設計することで
あるという考えは、32ビットシステム及びソフトウエ
アに投下した努力の全てを放棄することになり、そのよ
うなことは馬鹿げており、かつ経済的な災害である。そ
れ故に、新しいメモリ・サイズに基ずく新しいコンピュ
ータ・システムは、新しいアーキテクチャに古いプログ
ラムを用いることができるようにするという要求が優先
される。そのようなシステムを設計する際の最初の疑問
は、いかにしてメモリのアドレス・サイズを変え、新し
いアーキテクチャで古いプログラムを使用できるように
するかである。
BACKGROUND OF THE INVENTION Computers have improved in speed and power, but there is still a demand for more addressable memory. The size of the address directly controls the size of the addressed memory. Each additional bit of the address doubles the addressable memory. A system using a 64-bit address can supply twice as many addresses as a system using a 32-bit address can supply. Therefore, researchers are now developing computer systems based on 64-bit architectures. On the other hand, there are also very powerful computers that use 32-bit addresses. There are many very useful pieces of software for such systems. Many companies invest more in software than they invest in hardware. These 32-bit systems may be able to handle more problems if there is a simple way to easily address more addresses. The only valid way to get more memory is with more (64
The idea of designing a system with (bit) addresses would abandon all of the effort put into 32-bit systems and software, which would be ridiculous and economical. It is a disaster. Therefore, new computer systems based on new memory sizes are prioritized by the requirement to be able to use old programs for new architectures. The first question in designing such a system is how to change the memory address size to allow older programs to be used on the new architecture.

【0003】この問題を解決し、新しいシステムが新旧
双方のプログラムで動作するようにするために二つの異
なった方針がある。その一つの方法は同じ機械に異なっ
たメモリ・サイズに基ずくプログラムを処理する二つの
異なったアーキテクチャを用意し、いずれかのアーキテ
クチャを選択させることである。この場合、機械は二つ
の異なった命令のセットを実施することになる。この解
決方法の一つの問題は二つの独立したアーキテクチャが
新しい機械それぞれに永久に必要となることである。す
なわち、メーカーは32ビットのプログラムが使用され
る限り、32ビットと64ビットの双方のアーキテクチ
ャを有するシステムを作り続けなければならないという
ことである。さらに別の問題もある。すなわち、新旧の
手順がシステムの異なった位置で動作するので、それら
が容易にはコミニケートできないためである。デジタル
・イクエプトメント・カンパニ(Digital Equipment Co
mpany 、DEC)はコンピュータのPDP11シリーズ
からVAXシリーズへの変更のときにこの方法を採用し
た。DECは新しいVAXコンピュータにPDP11と
VAXの双方の命令セットで動作するマイクロコードを
準備し、その二つの命令セットを選択するモードスイッ
チを機械に設置した。
There are two different strategies to solve this problem and allow the new system to work with both old and new programs. One way is to have two different architectures on the same machine that handle programs based on different memory sizes and have one of them chosen. In this case, the machine will implement two different sets of instructions. One problem with this solution is that two independent architectures are permanently needed for each new machine. That is, manufacturers must continue to make systems with both 32-bit and 64-bit architectures as long as 32-bit programs are used. There is another problem. That is, because old and new procedures operate at different locations in the system, they cannot be easily communicated. Digital Equipment Company
mpany, DEC) adopted this method when the computer was changed from the PDP11 series to the VAX series. DEC prepared a new VAX computer with microcode that could operate with both PDP11 and VAX instruction sets, and installed a mode switch on the machine to select between the two instruction sets.

【0004】第2の解決方法は、同じハードウエアが同
じ回路を用いて新旧双方のプログラムを処理することが
できる新しいシステムを設計することである。これはよ
り好ましい解決方法である。しかしながらこの問題に対
応しようとした従来技術は、異なったアーキテクチャへ
向けられた特別のハードウエアを除去する目的を達成す
ることができなかった。例えば、インテルは、コンピュ
ータの80×86ラインの設計および改良にこの方法に
従った。インテルは古いアーキテクチャに基ずくプログ
ラムのメモリ処理ハードウエア機構を継続し、新しいア
ーキテクチャに基ずくプログラムのための付加的なメモ
リ処理ハードウエアを追加するようにした。古いプログ
ラムに適用できる命令は新しい機械に利用できる命令の
全体セットのサブセットである。この解決方法では同じ
プロセッサで新旧双方のソフトウエアを利用できるが、
新旧のプロセスを同時に利用する簡単な方法がない。こ
の方法はより進んだアーキテクチャを破壊することがあ
るより進んだステップを備えた付加的なメモリ処理ハー
ドウエアを含むことを要求する。たとえば最新のインテ
ルのプロセスは、古い機械に備えられたメモリ・マッピ
ング・ハードウエアを使用しない場合は、より大きなア
ドレス空間を処理することができない。
The second solution is to design a new system where the same hardware can process both old and new programs using the same circuitry. This is the more preferred solution. However, the prior art attempts to address this problem have failed to achieve the purpose of eliminating special hardware destined for different architectures. For example, Intel followed this method in the design and improvement of its 80x86 line of computers. Intel continued the memory handling hardware mechanism of programs based on the old architecture, adding additional memory handling hardware for programs based on the new architecture. The instructions applicable to the old program are a subset of the total set of instructions available to the new machine. This solution allows you to use both old and new software on the same processor,
There is no easy way to use the old and new processes at the same time. This method requires the inclusion of additional memory processing hardware with more advanced steps that can disrupt more advanced architectures. For example, modern Intel processes cannot handle larger address spaces without the memory mapping hardware provided by older machines.

【0005】このように問題に対しては少なくとも二つ
の解決方法がある。しかし各方法とも、新しいシステム
が新しいアドレス空間を用いた新旧プログラムを簡単に
動作させるような形で問題を解決することはできない。
いずれも膨大な量の新しいハードウエアを必要とし、新
しいハードウエアに適合するように古いソフトウエアを
書き直す必要があった。
Thus, there are at least two solutions to the problem. However, each method cannot solve the problem in such a way that the new system can easily run old and new programs using the new address space.
Both required a huge amount of new hardware, and the old software had to be rewritten to match the new hardware.

【0006】そのようなシステムを提供することに関連
する一つの困難な問題は、古いシステムがレジスタ・フ
ァイルを有し、ある動作の間にそれらのレジスタの内容
をメモリに記憶させ、それらの内容を復元させるという
方法に原因がある。古いシステムの2倍のメモリ・アド
レス・サイズを有する新しいシステムは、情報を記憶さ
せるために古いシステムと異なった空間を用いなければ
ならないので、システムが双方のサイズのプログラムの
ための情報を正しく処理する何らかの方法を見つけださ
なければならない。
One difficult problem associated with providing such a system is that older systems have register files that store the contents of their registers in memory during certain operations and their contents. The cause is the method of restoring. The new system, which has twice the memory address size of the old system, must use a different space to store the information than the old system, so the system handles the information correctly for programs of both sizes. I have to find some way to do it.

【0007】[0007]

【発明が解決しようとする課題】本発明は、32ビット
・ワード・サイズを持つプログラムと64ビット・ワー
ド・サイズを持つ新しいプログラムとが存在して動作す
るコンピュータシステムのための方法及び装置を提供す
ることである。本発明の他の目的は、32ビット・ワー
ド・サイズを持つプログラムと64ビット・ワード・サ
イズを持つ新しいプログラムとの双方がある状態で、ハ
ードウエアを増加させずに、かつ既存の32ビット・ソ
フトウエアの変形を要求せずに、コンピュータ・システ
ムがレジスタ・ファイルから記憶し、メモリからレジス
タ・ファイルに復元させることができる方法及び装置を
提供することである。本発明のさらに他の目的は、32
ビット・ワード・サイズを持つプログラムと64ビット
・ワード・サイズを持つ新しいプログラムとの双方のト
ラップの存在に応答してコンピュータシステムが退避と
復元状態となる方法及び装置を提供することである。
SUMMARY OF THE INVENTION The present invention provides a method and apparatus for a computer system in which a program having a 32-bit word size and a new program having a 64-bit word size exist and operate. It is to be. Another object of the present invention is to have an existing 32-bit program without increasing hardware, with both a program having a 32-bit word size and a new program having a 64-bit word size. It is an object of the present invention to provide a method and apparatus by which a computer system can store from and restore from a register file without requiring a software transformation. Still another object of the present invention is 32
It is an object of the present invention to provide a method and apparatus for bringing a computer system into a saved and restored state in response to the presence of traps for both programs having a bit word size and new programs having a 64-bit word size.

【0008】[0008]

【課題を解決するための手段】上記及び他の目的は、プ
ロセッサのレジスタの数の少なくとも一つに手順のワー
ド・サイズを指示する表示を置く過程と、各ワード・サ
イズのレジスタ・ファイルのためにメモリに、ワード・
サイズの最も小さいものの手順の退避領域の少なくとも
一つの部分を同じアドレスに含む退避領域を供給する過
程と、退避動作が生じたときいつでも、同じアドレスを
持つ退避領域の前記部分で手順のワード・サイズを指示
する、プロセッサのレジスタの少なくとも一つに保持さ
れた表示を置く過程と、復元される手順でワードのサイ
ズを決定するために退避動作が生じるごとに同じアドレ
スを持つ退避領域の部分に表示を再調査する過程と、を
有する最も大きなワード・サイズの手順で実行するよう
に設計されたレジスタを有するプロセッサで異なったワ
ード・サイズの手順をコンピュータに実行させる方法に
よって達成される。
SUMMARY OF THE INVENTION The above and other objects are for placing an indication in the at least one of the number of registers of a processor indicating the word size of a procedure, and for each word size register file. In memory, word
The process of supplying a save area containing at least one part of the save area of the procedure with the smallest size at the same address, and the word size of the procedure in the part of the save area having the same address whenever a save operation occurs. The process of placing the display held in at least one of the processor's registers, and the save area having the same address each time the save operation occurs to determine the word size in the restoration procedure. And a method of causing a computer to perform different word size procedures on a processor having a register designed to perform the largest word size procedure with.

【0009】上記及び他の目的及び発明の特徴は以下の
図面とともに詳細に説明する実施例によってよく理解さ
れるであろう。
The above and other objects and features of the invention will be better understood by the embodiments described in detail with reference to the following drawings.

【0010】[0010]

【実施例】【Example】

注意及び用語 以下に述べる詳細な説明においてはコンピュータメモリ
のデータ・ビットに関する動作を示すアルゴリズム及び
記号表示の用語が存在する。これらのアルゴリズムの表
示及び記述はデータ処理技術の当業者によって他人に自
分の仕事の内容を伝えるためによく用いられる手段であ
る。アルゴリズムは、ここでは又は一般的に所望の結果
へ導く過程の一貫したシークエンスと考えられている。
過程は物理量の物理的操作を要求される。その物理量は
記憶され、伝達され、結合され、比較され、その他の操
作される際に電気的又は磁気的信号の形を取る必要が必
ず要求されるわけではない。一般的に用いられていると
いう理由によってそのような信号はビット、値、要素、
記号、文字、期間、数その他として言及するのが便利で
あることが証明されている。しかしながら、それらの用
語及びその類似語は適切な物理量に対応され、それらは
その量に適用される単なるラベルであるということを銘
記すべきである。さらに実行される操作は追加、比較な
どオペレータによって実行される操作と関連した用語で
表されることがある。多くの場合そのようなオペレータ
による操作は発明を形成するために述べる操作には必要
でなく又好ましくもない。操作は機械の動作である。本
発明を実行する有用な機械は一般的なデジタルコンピュ
ータやその類似したものである。コンピュータの操作の
方法と計算それ自身の方法との区別を心すべきである。
本発明は電気的又は他の(例えば機械的、化学的)物理
信号を生成するためにこれらの物理信号を処理するコン
ピュータの操作のための装置及び方法に関する。
Caveats and Terminology In the detailed description which follows, there are terminology for algorithms and symbols that describe the operation of computer memory data bits. The display and description of these algorithms is a means commonly used by those skilled in the data processing arts to convey the substance of their work to others. An algorithm is here or generally considered to be a consistent sequence of processes leading to a desired result.
The process requires physical manipulations of physical quantities. The physical quantity need not necessarily be stored, transmitted, combined, compared, or otherwise manipulated to take the form of an electrical or magnetic signal. Such signals may be bits, values, elements, because they are commonly used.
It has proven convenient to refer to it as a symbol, letter, period, number, etc. However, it should be noted that those terms and their synonyms correspond to the appropriate physical quantity and that they are merely labels applied to that quantity. Further performed operations may be expressed in terms related to operations performed by an operator, such as addition and comparison. In many cases, such operator intervention is not necessary or preferred for the operations described to form the invention. An operation is a machine action. Useful machines for practicing the invention are common digital computers and the like. One should keep in mind the distinction between the method of operating a computer and the method of computation itself.
The present invention relates to an apparatus and method for operating a computer to process electrical or other (eg mechanical, chemical) physical signals in order to generate these physical signals.

【0011】32ビットアドレスを処理するシステムか
ら64ビット・アドレスを処理するシステムへの変更の
問題は、レジスタのサイズを変えるだけで簡単なように
見える。しかしハードウエアとソフトウエアとがすでに
存在するので実際は複雑である。この複雑さの理由は3
2ビットSPARCアーキテクチャとその32ビット・
アーキテクチャを置き換えるために設計された64ビッ
トアーキテクチャを用いたレジスタ・ファイルを図示し
た図1を参照することで理解できるであろう。SPAR
Cを用いた機械は、カリフォルニア州マウンテンビュウ
のサン・マイクロシステム社(Sun Microsystems, In
c.)が設計し、製造しかつ販売している。ゼロ及び1と
して表すバイナリ情報の32ビットを格納することがで
きる16の個々のレジスタが左側に示されている。それ
ぞれのレジスタのビット位置は32ビットレジスタ・フ
ァイルの上に示されている。SPARCフォーマットで
は底から7番目のレジスタがスタック・ポインタとされ
るのが決まりであり、スタック・ポインタは割り込みの
ときレジスタ・ファイルの一部がメモリ内で記憶される
スタックア・ドレスを含んでいる。
The problem of changing from a system that handles 32-bit addresses to a system that handles 64-bit addresses seems simple by simply changing the size of the registers. However, it is actually complicated because the hardware and software already exist. 3 reasons for this complexity
2-bit SPARC architecture and its 32-bit
It may be understood with reference to FIG. 1 which illustrates a register file using a 64-bit architecture designed to replace the architecture. SPAR
The machine using C is Sun Microsystems, Inc. of Mountain View, California.
c.) designed, manufactured and sold. Shown on the left are 16 individual registers that can store 32 bits of binary information represented as zeros and ones. The bit positions for each register are shown above the 32-bit register file. In the SPARC format, it is customary that the 7th register from the bottom be the stack pointer, and the stack pointer contains the stack address in which a part of the register file is stored in memory at the time of the interrupt.

【0012】右側に示された64ビット・レジスタ・フ
ァイルは同じように配置されている。バイナリ情報の6
4ビットを保持できる個々の16個のレジスタを有して
いる。そのレジスタのビット位置は64ビット・ファイ
ルの上に示してある。64ビット・レジスタに記憶され
たワードは32ビットSPARCアーキテクチャで用い
られた重要なワードに関しては一致させられている。
The 64-bit register file shown on the right is similarly arranged. Binary information 6
It has 16 individual registers that can hold 4 bits. The bit positions for that register are shown above the 64-bit file. The words stored in the 64-bit registers are matched with respect to the significant words used in the 32-bit SPARC architecture.

【0013】当業者は一般的に32ビットレジスタに含
まれたデータが結果に影響をおよぼさずに64ビット・
レジスタに置かれ、用いられることができるということ
を理解するであろう。多くのアーキテクチャが一般的に
左へオーバーフローする二つの補数アーキテクチャを用
いているのでこれが生じる。そして32ビットのアーキ
テクチャの命令のための用いられる32ビットは確かに
64ビット・アーキテクチャで供給されたレジスタ空間
に置かれる。
Those skilled in the art will generally appreciate that the data contained in a 32-bit register does not affect the result in a 64-bit
It will be appreciated that it can be placed in a register and used. This occurs because many architectures generally use a two's complement architecture that overflows to the left. And the 32 bits used for an instruction in a 32-bit architecture are certainly placed in the register space provided in the 64-bit architecture.

【0014】しかし、多くのアーキテクチャでソフトウ
エアを実行させる場合は一つの手順から他の手順へ又は
一つのプログラムから他のプログラムへスイッチするこ
とが頻繁に行われる。新しい手順を処理するためにプロ
セッサにレジスタが十分にない場合は常に、レジスタの
少なくともいくつかの内容が、それが占める空間が新し
い手順によって用いられるように、メモリを退避しなけ
ればならない。プログラムが動作し、システムが特定の
手順を停止し、他の手順へ移行しなければならないとき
は常に、現在の手順の状態(関連するレジスタ・ファイ
ルに保持され及びその手順によって用いられる情報)は
手順へ戻る際の使用のために退避されることが必要であ
る。レジスタは新しい手順のために復元されねばなら
ず、新しい手順が実行され、古い手順からの状態が検索
されてレジスタに置かれ、古い手順が再始動する。どの
ようなフォーマットで実行されるかに係わらず、多くの
アーキテクチャではこのように行われる。
However, when executing software in many architectures, switching from one procedure to another or from one program to another is often done. Whenever the processor does not have enough registers to process a new procedure, at least some of the contents of the register must be saved so that the space it occupies is used by the new procedure. Whenever a program runs and the system has to stop a particular procedure and move to another procedure, the state of the current procedure (information held in the associated register file and used by that procedure) is It needs to be evacuated for use in returning to the procedure. The register must be restored for the new procedure, the new procedure is executed, the state from the old procedure is retrieved and placed in the register, and the old procedure is restarted. This is true of many architectures, regardless of what format they are run in.

【0015】多くのアーキテクチャと異なりSPARC
アーキテクチャは、整数プロセッサに多くのレジスタ・
ウインドを含むレジスタ・ファイルを持っている。各レ
ジスタ・ウインドは16レジスタを含み、その8レジス
タはLOCALレジスタと、残りの8レジスタはINレ
ジスタと呼ばれている。SPARCアーキテクチャを実
行するときは常に少なくとも2レジスタ・ウインドが存
在する。一つのレジスタ・ウインドのINレジスタはレ
ジスタ・ウインドが大きなリングを形成と考えられるよ
うに、すぐ前のウインドのOUTレジスタとして機能す
る。プログラムが一つの手順から次の手順へ変化すると
一つのウインドから隣のウインドへスイッチすること
で、残った手順のレジスタのメモリを退避せずに、かつ
メモリからその手順のレジスタを復元せずに、プロセッ
サは多くの手順を実行する。これがプロセッサの動作を
速める。
Unlike many architectures, SPARC
The architecture is based on an integer processor with many registers.
You have a register file that contains windows. Each register window contains 16 registers, 8 of which are called LOCAL registers and the remaining 8 are called IN registers. There is always at least two register windows when implementing the SPARC architecture. The IN register of one register window functions as the OUT register of the immediately preceding window, as the register windows are considered to form a large ring. When a program changes from one procedure to the next, it switches from one window to the next window without saving the memory of the remaining procedure registers and restoring the procedure registers from memory. , The processor performs many steps. This speeds up the operation of the processor.

【0016】しかしながら、SPARCプロセッサはレ
ジスタ・ウインドの数が制限されている。そしてその制
限に達するとリングの次のウインドのレジスタはメモリ
を退避する。これをなすためにSPARCアーキテクチ
ャはウインド・ポインタを有している。レジスタ・ファ
イルがレジスタ・ウインド外であり、新しいウインドが
要求されているということをウインド・ポインタが示し
ている場合は、オーバーフロー・トラップが発生して、
次のレジスタ・ウインド内容がメモリに退避されるよう
に指示する。この退避させられた手順が再び実行させら
れると、そのレジスタの内容はメモリから復元される。
同様にして退避させられた手順がレジスタ・ウインドに
復元させられると、そのレジスタ・ウインドは、復元さ
れた手順がウインドのレジスタに置かれる前に退避させ
られた手順を含む。これを果たすために、ウインド・ポ
インタが使用され、アンダーフロー・トラップが生成さ
れる。したがって一般的なアーキテクチャとSPARC
アーキテクチャとの双方において、レジスタ・ファイル
がメモリへ退避し、レジスタ・ファイルが復元するとき
がくる。
However, SPARC processors have a limited number of register windows. When the limit is reached, the register in the next window of the ring saves the memory. To do this, the SPARC architecture has a window pointer. If the register file is outside the register window and the window pointer indicates that a new window is requested, an overflow trap occurs,
Instructs the contents of the next register window to be saved to memory. When the saved procedure is executed again, the contents of the register are restored from the memory.
Similarly, when a procedure that has been saved is restored to a register window, the register window contains the procedure that was saved before the restored procedure was placed in the window's register. To accomplish this, a window pointer is used and an underflow trap is generated. So the general architecture and SPARC
In both architectures, it is time to save the register file to memory and restore it.

【0017】オーバーフロー又はアンダーフローに応答
して手順の状態を退避するために、32ビットSPAR
Cアーキテクチャの機械は、整数プロセッサの現行のレ
ジスタ・ウインドのそれぞれから32ビットを取り、メ
モリの32ビット退避空間の情報を記憶する(スタック
に)。ハードウエアとプログラムとでこれが生じるよう
にする。システムはスタック・ポインタ・レジスタに記
憶されたアドレスを用い、レジスタ・ファイルのレジス
タのスタック・ポインタ・アドレスで始まるメモリのア
ドレスに記憶された情報を置く。ハードウエアとソフト
ウエアとが結合され、トラップの生起に関するレジスタ
状態を記憶するために特定の32ビット退避空間を作り
出す。これは32ビットアーキテクチャ動作にもとずく
一般的な方法である。
A 32-bit SPAR to save the state of the procedure in response to an overflow or underflow.
The C architecture machine takes 32 bits from each of the integer processor's current register windows and stores (in a stack) information in a 32-bit save space in memory. Let the hardware and program do this. The system uses the address stored in the stack pointer register and places the information stored at the address in memory starting at the stack pointer address of the register in the register file. The hardware and software are combined to create a specific 32-bit save space for storing register states for trap occurrences. This is a common method based on 32-bit architecture operation.

【0018】そのようなSPARC機械の32ビット退
避空間が図2に示されている。図示のように退避空間は
スタック・ポインタ・アドレスから始まる16個の32
ビットワードを含んでいる。他の目的のために退避空間
のレジスタ・ファイル・記憶領域の上に付加空間が存在
することに注意すべきである。図1に示すレジスタ・フ
ァイルのスタック・ポインタ・レジスタに保持されたア
ドレスがメモリの退避空間の7番目のワード空間に記憶
されていることも同様に注目すべきである。手順が再始
動するときは、退避領域のデータはプロセッサによって
レジスタ・ファイルに戻され、利用されるようになる。
The 32-bit save space of such a SPARC machine is shown in FIG. As shown, the save space is 16 32 bytes starting from the stack pointer address.
Contains a bit word. It should be noted that there is additional space above the register file, storage area of the save space for other purposes. It should also be noted that the address held in the stack pointer register of the register file shown in FIG. 1 is stored in the seventh word space of the save space of the memory. When the procedure restarts, the data in the save area will be returned to the register file for use by the processor.

【0019】32ビット手順で動作するため、新しいシ
ステムのアーキテクチャはそのコードで使用された習慣
に従わなければならない。すなわち、新しいシステムは
レジスタ・ファイルに保持された古い手順から古いアー
キテクチャがするように32ビット退避領域に32ビッ
ト情報を退避できなければならない。その情報を検索
し、レジスタ・ファイルに正しく置き換えなければなら
ない。
Because it operates on a 32-bit procedure, the architecture of the new system must follow the conventions used in its code. That is, the new system must be able to save the 32-bit information in the 32-bit save area as the old architecture did from the old procedure held in the register file. You must retrieve that information and replace it properly in the register file.

【0020】32ビット手順のために用意されたメモリ
の退避空間は64ビットワードを処理するようにはされ
ていない。そこでシステムは長いワードをどこかに記憶
することが必要である。新しいアーキテクチャで使用さ
れる64ビットレジスタを置くためのいくつかの配置を
示すことができる。例えば、64ビットワードを半分に
分け、スタックポインタで始まる退避空間のとなり合う
ワード空間の下位ビットの半分の上に上位ビットを含む
半分を配置することが可能である。しかし、システムが
記憶したデータを探すとき32ビットフォーマットと6
4ビットフォーマットでは異なった位置にあかもしれな
い。システムが32ビットデータと予測してデータを検
索し、それが64ビットデータであると(その逆のばあ
いも)、システムは正しく動作することができない。
The memory save space provided for the 32-bit procedure is not designed to handle 64-bit words. So the system needs to store a long word somewhere. Some arrangements can be shown for placing the 64-bit registers used in the new architecture. For example, it is possible to divide a 64-bit word into halves, and place the half including the high-order bits on the half of the low-order bits of the word space that is adjacent to the save space starting with the stack pointer. However, when searching for data stored by the system, the 32-bit format and
It may be in a different position in the 4-bit format. If the system expects 32-bit data to retrieve the data and it is 64-bit data (and vice versa), the system cannot operate properly.

【0021】64ビットワードを記憶する十分な空間を
供給する配置があったとしても、システムは、適切に動
作するためには、情報が64ビット情報であるか32ビ
ット情報であるかを判断しなければならないというのは
明かである。そしてたとえ情報が正しく格納されていた
としても、システムは必要なときにその情報をいかに復
元するかを知らなければならない。
Even with the arrangement providing enough space to store a 64-bit word, the system must determine whether the information is 64-bit information or 32-bit information in order to operate properly. It is clear that it must be. And even if the information is stored correctly, the system must know how to restore it when needed.

【0022】これは多くの問題を引き起こす。最初に、
システムはレジスタ・ファイルの情報が32ビット情報
であるか64ビット情報であるかをどうやって知るか。
2番目に、たとえシステムが情報が適切なフォーマット
であると知っても、ビットが何を意味するか。例えば、
もし手順が32ビット手順であればレジスタに保持され
た上段のビットは無意味になる、しかし64ビット手順
であればそれは必要な情報である。機械がレジスタに6
4ビットを復元し、32ビット手順で無意味なビットを
使用すると、手順は極めて困難である。
This causes a number of problems. At first,
How does the system know if the information in the register file is 32-bit information or 64-bit information?
Second, what the bits mean, even if the system knows that the information is in the proper format. For example,
If the procedure is a 32-bit procedure then the upper bits held in the register are meaningless, but if it is a 64-bit procedure it is the necessary information. Machine is 6 in the register
Restoring 4 bits and using meaningless bits in a 32-bit procedure makes the procedure extremely difficult.

【0023】レジスタ及び記憶機構がハードウエアで固
定されていると、この問題は困難である。しかし、レジ
スタと退避空間がソフトウエアに書かれていると問題は
より大きくなる。例えば、特定のシステム(SPARC
アーキテクチャのような)の動作を規定するのに用いら
れる従来のものはその特定のシステムで動作するプログ
ラムや手順のための記憶範囲を規制する。各手順はこの
ようにしてレジスタ・スタックを組み立てる。それはレ
ジスタ・退避領域を示すスタック・ポインタを組み立て
る。レジスタ退避領域及びスタック・ポインタの位置は
変化せず、古いプログラムは動作しない。古い手順は配
置が定義されているので、32ビット機械で実行される
古い全ての手順は正しく機能するために変化させられね
ばならず、その情報で何をするかを知らねばならない。
古いプログラムを正しく調整(翻訳)することは全く不
可能である。したがって、64ビットアーキテクチャを
含むシステムに変える際には、新しいシステムのソフト
ウエアが新旧双方のプログラムで、それらのプログラム
を変更せずに、実行できるように作られなければならな
い。
This problem is difficult if the registers and storage are fixed in hardware. However, if the registers and save space are written in software, the problem becomes more serious. For example, a specific system (SPARC
The conventions used to define behavior (such as architecture) regulate the storage for programs and procedures running on that particular system. Each procedure thus assembles the register stack. It builds a stack pointer that points to a register / save area. The positions of the register save area and stack pointer do not change, and old programs do not run. Since the old procedure has a defined layout, all old procedures running on a 32-bit machine must be modified to function properly and they must know what to do with that information.
Correctly adjusting (translating) old programs is completely impossible. Therefore, when converting to a system that includes a 64-bit architecture, the software of the new system must be created so that both old and new programs can run without modification.

【0024】本発明は、ハードウエアを実質的に増加さ
せずに、かつ今ある32ビットソフトウエアの変更を要
求されずに32ビット情報と64ビット情報の双方を記
憶させ、かつ復元させる際の問題を解決する。本発明は
手順が32ビット手順であるか64ビット手順であるか
を知らせるための手順レベルでの表示を利用するもので
ある。これを実現するため、表示を記憶するためにスタ
ック・ポインタを使用する。これは表示のための位置と
して周知である。なぜならシステムは退避空間のアドレ
スを見つけるスタックポインタを利用しなければならな
いからである。レジスタ・ファイル・退避を要求するト
ラップ上で、表示は状態が32ビット退避空間に記憶さ
れているか、又は64ビット退避空間に記憶されている
かを決定するために調べる。このようにして、古い手順
のための退避空間が古いシステムのソフトウエアで用い
られるようにメモリの同じ領域を使用する。付加的空間
は64ビット手順のレジスタを記憶するために用意され
る。
The present invention provides a method for storing and restoring both 32-bit and 64-bit information without substantially increasing the hardware and without requiring modification of existing 32-bit software. Solve a problem. The present invention utilizes a procedure level indication to indicate whether the procedure is a 32 bit procedure or a 64 bit procedure. To accomplish this, a stack pointer is used to store the display. This is known as the position for display. This is because the system has to use the stack pointer to find the address of the save space. On a trap requesting a register file save, the display examines to determine if the state is stored in 32-bit save space or 64-bit save space. In this way, the save space for the old procedure uses the same area of memory as is used by the software of the old system. Additional space is provided to store 64-bit procedure registers.

【0025】図1でSPARCアーキテクチャを用いた
システムでいかに上記したことが実現できるかを示して
いる。図示のように、64ビットレジスタは下位ビット
に32ビット・レジスタの値を含む。SPARCアーキ
テクチャで用いる各32ビット手順は、スタック・ポイ
ンタ・レジスタに含まれるので、この手順を記録する位
置のメモリのアドレスを示すスタック・ポインタは記憶
される。スタック・ポインタ・レジスタは常にこのスタ
ック・アドレスを含んでいる。レジスタに保持された特
定の手順のワードが32又は64ビットワードであるか
を表示するために、スタック・ポインタのビット63
(最上位ビット)が使用される。もし手順が32ビット
手順であるとこのビット位置にゼロが置かれ、64ビッ
ト手順であれば1が置かれる。SPARCアーキテクチ
ャでは、オーバーフロー・トラップが実行している手順
のレジスタが記憶されるということを示すときは、トラ
ップ・ハンドラ・手順(すなわちハードウエア)が含ま
れる。ハードウエアで行われてもソフトウエアで行われ
ても、トラップ・ハンドラはスタック・ポインタのこの
ビットを見て特定の手順の種類にしたがってレジスタを
記憶するようにそれに作用する。
FIG. 1 shows how the above can be realized in a system using the SPARC architecture. As shown, the 64-bit register contains the value of the 32-bit register in the low order bits. Since each 32-bit procedure used in the SPARC architecture is contained in the stack pointer register, the stack pointer indicating the address of the memory at which this procedure is recorded is stored. The Stack Pointer Register always contains this stack address. Bit 63 of the stack pointer to indicate whether the particular procedure word held in the register is a 32 or 64 bit word.
(Most significant bit) is used. A zero is placed in this bit position if the procedure is a 32-bit procedure, and a 1 is placed in a 64-bit procedure. In the SPARC architecture, a trap handler procedure (ie, hardware) is included when an overflow trap indicates that the register of the procedure being executed is stored. Whether done in hardware or software, the trap handler looks at this bit in the stack pointer and acts on it to store the register according to the particular procedure type.

【0026】このビットが用いられるのは他のビットを
用いるより重要である。スタック・ポインタは退避領域
が見いだされる位置でアドレスを含んでいる。このアド
レスがアドレッシングで数学的に操作されるので、最上
位ビットの使用はスタック・ポインタ・アドレスに、ビ
ット63に保持された手順の種類の指示に影響を与えず
に加算又は減算を行わせる。ビット63が最上位ビット
であるので、スタック・ポインタでのアドレス操作で行
われる低レベルでの加算又は減算に影響を与えない。
The use of this bit is more important than the use of other bits. The stack pointer contains the address where the save area is found. Since this address is manipulated mathematically in addressing, the use of the most significant bit causes the stack pointer address to add or subtract without affecting the type of procedure held in bit 63. Since bit 63 is the most significant bit, it does not affect the low level addition or subtraction performed by addressing with the stack pointer.

【0027】SPARCアーキテクチャ及びほとんどの
他のアーキテクチャは2の補数演算を利用しているの
で、演算結果の下位ビットはオペランドの上位ビットに
依存しない。これはアドレスが32ビットコードであろ
うが64ビットコードであろうが演算がスタック・ポイ
ンタのアドレスで行われる。
Since the SPARC architecture and most other architectures utilize two's complement arithmetic, the low order bits of the operation result are independent of the high order bits of the operands. This is done with the address of the stack pointer, whether the address is a 32-bit code or a 64-bit code.

【0028】上述した配置では、記憶動作が必要なとき
手順によって使用されたデータのフォーマットをシステ
ムが知ることができる。この表示に応答して、図2に示
した退避空間の32ビット手順のためのレジスタに情報
を置く。しかし、上述したように、この空間は64ビッ
ト手順のレジスタ情報のために編成されない。したがっ
て64ビット機能又は手順は新しい退避領域を定義す
る。この退避領域は図3に示されている。この空間は同
じスタック・ポインタ・アドレスで始まり、32ビット
領域のように同じレジスタ空間をあらかじめ占有してい
る。しかしこの空間に記憶された情報はスタック・ポイ
ンタ・アドレスの低位の32ビットであり、他のレジス
タ記憶位置は空のままに残される。32ビット退避領域
の上の第1位置で始まり、完全な新しい64ビット退避
領域が定義される。SPARCで用いられる本発明の実
施例では、各レジスタからのデータは、下位ビットが上
位ビットの下になるようにして互いに隣接された二つの
32ビットワードに格納される。32ビットワード空間
の全体、すなわち各32ビットは64ビット手順のため
のレジスタファイルを格納することができる。スタック
・ポインタはこの64ビット退避領域に再び変形されな
い形で格納されるということを注意すべきである。その
理由はいかの記載で明らかになるであろう。
The arrangement described above allows the system to know the format of the data used by the procedure when a store operation is required. In response to this indication, information is placed in the registers for the 32-bit procedure of the save space shown in FIG. However, as mentioned above, this space is not organized for register information in 64-bit procedures. Therefore, the 64-bit function or procedure defines a new save area. This save area is shown in FIG. This space starts at the same stack pointer address and pre-occupies the same register space, such as a 32-bit area. However, the information stored in this space is the lower 32 bits of the stack pointer address, leaving the other register storage locations empty. Starting at the first position above the 32-bit save area, a completely new 64-bit save area is defined. In the embodiment of the invention used in SPARC, the data from each register is stored in two 32-bit words that are adjacent to each other with the lower bits below the upper bits. The entire 32-bit word space, ie each 32 bits, can store a register file for a 64-bit procedure. It should be noted that the stack pointer is stored in this 64-bit save area again in a non-deformed form. The reason for this will become clear in the description.

【0029】記憶された手順が復元において64ビット
手順か32ビット手順であるかを示すため、表示は32
ビット退避領域のみがサーチされるように下位32ビッ
トに移動させられる。そのビットが機械に、復元された
とき32ビット手順における状態の下位32ビットのみ
が使用されるということ又は復元されたとき64ビット
手順における状態の64ビットが使用されるということ
を知らせる。
The indication is 32 to indicate whether the stored procedure is a 64-bit procedure or a 32-bit procedure at decompression.
It is moved to the lower 32 bits so that only the bit save area is searched. That bit tells the machine that only the lower 32 bits of the state in the 32-bit procedure is used when restored or that the 64 bits of the state in the 64-bit procedure is used when restored.

【0030】上述したように、スタック・ポインタ・レ
ジスタo6に置かれた表示は、レジスタファイルで実行
される手順が32ビット手順であるか64ビット手順で
あるかをシステムに知らせるのに十分である。しかしな
がら、退避領域に格納された状態はそれを再使用するた
めに再格納しなければならない。退避領域を検索すると
きシステムが32ビットであるか64ビットであるかを
決定するための方法はいくつかあるであろう。新しい設
計の要求の一つは32ビット退避領域フォーマットが変
化させられないということであるので、32ビット手順
のためにスタック・ポインタのビット63の情報を検索
することは、このビットがそのような32ビット手順の
退避領域には存在しないので何も知らせないであろう。
As mentioned above, the indication placed in the stack pointer register o6 is sufficient to inform the system whether the procedure performed in the register file is a 32-bit procedure or a 64-bit procedure. . However, the state stored in the save area must be restored in order to reuse it. There may be several ways to determine if the system is 32 bit or 64 bit when searching the save area. One of the requirements of the new design is that the 32-bit save area format is not changed, so retrieving the information in bit 63 of the stack pointer for a 32-bit procedure makes this bit It will not inform you because it is not in the save area of the 32-bit procedure.

【0031】スタック・ポインタの下位32ビットから
手順の種類を決定するいくつかの方法がある。他のアー
キテクチャも同様であるが、幸いにもSPARCアーキ
テクチャではスタック・ポインタ・アドレスの値は4バ
イト境界に並んでいる。スタック・ポインタ・レジスタ
は最下位のビットとしてゼロを含むアドレスを保持して
いる。スタック・ポインタ・レジスタの上位のビットに
記憶されたフォーマット表示を記録するためにこのビッ
トを使用すると、レジスタの状態がメモリの32ビット
領域と64ビット領域の双方に格納されているとき、表
示を32ビット退避領域に転送することができる。した
がってレジスタ・ファイルの状態が記憶されると63ビ
ット位置のビットの状態が最下位のビットに移動され
る。このようにして32ビット退避領域のスタック・ポ
インタのみがサーチされればよい。
There are several ways to determine the type of procedure from the lower 32 bits of the stack pointer. Fortunately for SPARC architectures, the stack pointer address values are aligned on 4-byte boundaries, as are other architectures. The stack pointer register holds an address containing zero as the least significant bit. Use this bit to record the format indication stored in the upper bits of the Stack Pointer Register, allowing the indication to be displayed when the register state is stored in both 32-bit and 64-bit areas of memory. It can be transferred to the 32-bit save area. Therefore, when the state of the register file is stored, the state of the bit at the 63 bit position is moved to the least significant bit. In this way, only the stack pointer in the 32-bit save area needs to be searched.

【0032】アンダーフロー・トラップがメモリの退避
領域を復元するために使用される。退避領域に記憶され
ているのが32ビット手順か64ビット手順かを決定す
るために、オーバーフロー・トラップは単にスタック・
ポインタの最低位のビットだけを検索すれば良いように
する。これでシステムに今どの種類の手順が用いられて
いるかを知らせる。本実施例では32ビット手順である
ことを表すためにゼロを用いている。すでに用いられて
いる32ビット手順が変わらず、最下位のビットにゼロ
が正常に発見されれば、これは32ビット手順が変わら
ず退避領域に残っている。これに対して最下位ビットの
1が64ビット手順を示すために用いられている。64
ビット・スタック・ポインタの低位32ビットのコピー
(実際には最下位ビットのみが必要)が32ビットスタ
ック・ポインタのための通常の位置に記憶されているの
で、一度64ビット手順がトラップによって検出される
と、64ビット手順は、異なった記憶位置から復元する
ための応答とは別として、手順に変更なく同じアンダー
フロー・トラップに応答する。
The underflow trap is used to restore the save area of memory. The overflow trap is simply a stack trap to determine if the 32-bit or 64-bit procedure is stored in the save area.
Only search the least significant bit of the pointer. This tells the system what kind of procedure is currently being used. In this embodiment, zero is used to represent the 32-bit procedure. If the 32 bit procedure already used has not changed and a zero is normally found in the least significant bit, this remains in the save area with the 32 bit procedure unchanged. In contrast, the least significant bit 1 is used to indicate a 64-bit procedure. 64
Once the low-order 32-bit copy of the bit stack pointer (actually only the least significant bit is needed) is stored in the normal location for the 32-bit stack pointer, once the 64-bit procedure is detected by the trap. The 64-bit procedure then responds to the same underflow trap without modification to the procedure, apart from the response to restore from a different storage location.

【0033】スタック・ポインタの情報は手順によって
用いられなければならないので、もし手順が64ビット
であると、システムは、最下位ビット位置が1である最
初の条件の上位領域のスタック・ポインタをレジスタフ
ァイルが復元されるときに時間をロスしないようにその
まま残す。32ビット退避領域のスタック・ポインタの
最下位のビットがレジスタファイルが退避領域に格納さ
れている間に同じ情報を供給していても、図3に示した
ように、64ビット手順であることを示すビット位置6
3の1は残る。
Since the stack pointer information must be used by the procedure, if the procedure is 64 bits, the system will register the stack pointer of the upper region of the first condition where the least significant bit position is one. Leave it intact so that you don't lose time when files are restored. Even if the least significant bit of the stack pointer of the 32-bit save area supplies the same information while the register file is stored in the save area, as shown in FIG. 3, it is a 64-bit procedure. Bit position 6 to indicate
1 of 3 remains.

【0034】32ビット手順と64ビット手順の双方の
ために同じ64ビットレジスタを使用することの問題の
一つは、32ビット手順を実行しているレジスタ・ファ
イルが手順に関係しない上位のビットを含むかも知れな
いということである。ある場合には不幸にもこれらのビ
ットが実行中の手順の成果に影響する。例えば、もしレ
ジスタが32ビット手順のためのロード又は記憶動作に
用いられるアドレスを含み、その上位ビットが使用され
ていると、それらは間違ったアドレスを発生する。した
がってこれらのビットは何らかの方法でマスクされなけ
ればならない。本実施例においては、用いられるべきア
ドレスの特定のビットに関する情報を記憶するためにマ
スク・レジスタが用いられる。データがレジスタ・ファ
イルに保持されたアドレスを用いてロードされ、記憶さ
れるときそのマスク・レジスタが上位ビットの状態を強
制し、情報が無効になるのを防ぐ。このようなマスク・
レジスタの詳細は「コンピュータ・プロセッサのための
マスク・レジスタ(MASK REGISTER FOR COMPUTER PROCES
SOR)」という題で同日付けで出願され、本出願人に譲渡
されたポーエル(Powell)他の米国特許出願番号第
号に記載されている。
One of the problems of using the same 64-bit registers for both 32-bit and 64-bit procedures is that a register file performing a 32-bit procedure will have the upper bits unrelated to the procedure. It may be included. Unfortunately in some cases these bits affect the outcome of the procedure being performed. For example, if a register contains an address used in a load or store operation for a 32-bit procedure and its high order bits are used, they will generate the wrong address. Therefore these bits must be masked in some way. In this embodiment, a mask register is used to store information about the particular bit of the address to be used. When data is loaded and stored using the address held in the register file, its mask register forces the state of the upper bits and prevents the information from being invalidated. Such a mask
For details of the register, refer to "MASK REGISTER FOR COMPUTER PROCES
SOR) '' filed on the same date and assigned to the applicant by Powell et al.
No.

【0035】図4は本発明の方法を実施するために用い
られる過程を反復して示したものである。本発明は実施
例に示された用語で説明してあるが、本発明の精神及び
範囲を逸脱せずに、当業者によって様々な変更を加えら
れるのは当然である。したがって本発明は特許請求の範
囲の用語でもってのみ制限されるべきである。
FIG. 4 is an iterative representation of the steps used to carry out the method of the present invention. While the invention has been described in terms set forth in the examples, it will be apparent to those skilled in the art that various changes can be made without departing from the spirit and scope of the invention. Therefore, the present invention should be limited only by the terms of the appended claims.

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

【図1】32ビットSPARCアーキテクチャで用いら
れるレジスタ・ファイルと32ビットアーキテクチャを
置き換えるために設計された64ビットアーキテクチャ
で用いられるレジスタ・ファイルである。
1 is a register file used in a 64-bit architecture designed to replace the register file used in a 32-bit SPARC architecture and a 32-bit architecture.

【図2】32ビットアーキテクチャでレジスタ・ファイ
ルを退避するために使用されるメモリの領域を示す図で
ある。
FIG. 2 is a diagram showing an area of memory used to save a register file in a 32-bit architecture.

【図3】64ビットアーキテクチャでレジスタ・ファイ
ルを退避するために使用されるメモリの領域を示す図で
ある。
FIG. 3 is a diagram showing an area of memory used for saving a register file in a 64-bit architecture.

【図4】この方法を実施するために用いられる過程を示
す図である。
FIG. 4 illustrates the process used to carry out this method.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・クメリク アメリカ合衆国 94086 カリフォルニア 州・サニーヴェイル・チュラ ヴィスタ テラス・1024 (72)発明者 シン・コン アメリカ合衆国 94039 カリフォルニア 州・マウンテン ビュー・ピイオーボック ス391379・番地なし (72)発明者 デビッド・ディツェル アメリカ合衆国 94022 カリフォルニア 州・ロス アルトス ヒルズ・ペイジ ミ ル ロード・4010 (72)発明者 エドモンド・ケリイ アメリカ合衆国 95136 カリフォルニア 州・サン ホゼ・リオ グランデ ドライ ブ・5277 ─────────────────────────────────────────────────── ─── Continued Front Page (72) Inventor Robert Kumelik United States 94086 California, Sunnyvale Chula Vista Terrace 1024 (72) Inventor Shin Con United States 94039 California, Mountain View Pioobox 391379 No house number (72) Inventor David Ditzel United States 94022 Los Altos Hills Page Mill Road, California 4010 (72) Inventor Edmond Kelly United States 95136 San Jose Rio Grande Drive 5277 California

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 プロセッサのレジスタの数の少なくとも
一つに手順のワード・サイズを指示する表示を置く過程
と、各ワード・サイズのレジスタ・ファイルのためにメ
モリに、ワード・サイズの最も小さいものの手順の退避
領域の少なくとも一つの部分を同じアドレスに含む退避
領域を供給する過程と、退避動作が生じたときいつで
も、同じアドレスを持つ退避領域の前記部分で手順のワ
ード・サイズを指示する、プロセッサのレジスタの少な
くとも一つに保持された表示を置く過程と、復元される
手順でワードのサイズを決定するために退避動作が生じ
るごとに同じアドレスを持つ退避領域の部分に表示を再
調査する過程と、を有する最も大きなワード・サイズの
手順で実行するように設計されたレジスタを有するプロ
セッサで異なったワード・サイズの手順をコンピュータ
に実行させる方法。
1. A process of placing an indication indicating a word size of a procedure in at least one of the number of registers of a processor, and in memory for each word size register file, the smallest word size of A process of supplying a save area including at least one part of the save area of the procedure at the same address, and instructing the word size of the procedure in the part of the save area having the same address whenever the save operation occurs Of placing the display held in at least one of the registers, and re-examining the display in the portion of the save area that has the same address each time a save operation occurs to determine the word size in the restored procedure. And a processor with registers designed to execute in the largest word size procedure with How to get a computer to perform a custom size procedure.
【請求項2】 プロセッサのレジスタの数の少なくとも
一つに手順のワード・サイズを指示する表示を置く手段
と、各ワード・サイズのレジスタ・ファイルのためにメ
モリに、ワード・サイズの最も小さいものの手順の退避
領域の少なくとも一つの部分を同じアドレスに含む退避
領域を供給する手段と、退避動作が生じたときいつで
も、同じアドレスを持つ退避領域の前記部分で手順のワ
ード・サイズを指示する、プロセッサのレジスタの少な
くとも一つに保持された表示を置く手段と、復元される
手順でワードのサイズを決定するために退避動作が生じ
るごとに同じアドレスを持つ退避領域の部分に表示を再
調査する手段と、を有する最も大きなワード・サイズの
手順で実行するように設計されたレジスタを有するプロ
セッサで異なったワード・サイズの手順をコンピュータ
に実行させる装置。
2. A means for placing an indication indicating the word size of the procedure in at least one of the number of registers in the processor, and the smallest word size in memory for each word size register file. A means for supplying a save area including at least one part of the save area of the procedure at the same address, and a processor for indicating the word size of the procedure in the part of the save area having the same address whenever the save operation occurs Means for placing the display held in at least one of the registers, and means for re-examining the display in the portion of the save area that has the same address each time a save operation occurs to determine the word size in the procedure to be restored. And a processor with registers designed to execute in the largest word size procedure with A device that causes a computer to perform a custom size procedure.
JP3354403A 1990-12-21 1991-12-20 Method and apparatus for execution, by computer, of procedure of different word size Pending JPH06236319A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63201790A 1990-12-21 1990-12-21
US632017 1990-12-21

Publications (1)

Publication Number Publication Date
JPH06236319A true JPH06236319A (en) 1994-08-23

Family

ID=24533737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3354403A Pending JPH06236319A (en) 1990-12-21 1991-12-20 Method and apparatus for execution, by computer, of procedure of different word size

Country Status (6)

Country Link
US (1) US5430864A (en)
EP (1) EP0492970B1 (en)
JP (1) JPH06236319A (en)
KR (1) KR960007831B1 (en)
CA (1) CA2058270A1 (en)
DE (1) DE69111778T2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9226463D0 (en) * 1992-12-18 1993-02-10 Univ London Integrated circuits
US5835774A (en) * 1996-04-30 1998-11-10 Hewlett-Packard Company Efficient 32-bit based case table support for 64-bit architectures
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US5906002A (en) * 1997-02-10 1999-05-18 International Business Machines Corporation Method and apparatus for saving and restoring the context of registers using different instruction sets for different sized registers
US6049667A (en) * 1997-08-15 2000-04-11 International Business Machines Corporation Computer system, method of compiling and method of accessing address space with pointer of different width therefrom
US6243798B1 (en) * 1997-10-28 2001-06-05 Microchip Technology Incorporated Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
EP0992897B1 (en) * 1998-10-06 2006-07-26 Texas Instruments Inc. Stack pointer management
DE19933130A1 (en) 1999-07-19 2001-01-25 Giesecke & Devrient Gmbh Operand stack and method for operating an operand stack
US20040215941A1 (en) * 2003-04-24 2004-10-28 Sun Microsystems, Inc. Method and system to handle register window fill and spill
WO2016034087A1 (en) * 2014-09-03 2016-03-10 Mediatek Inc. Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735355A (en) * 1971-05-12 1973-05-22 Burroughs Corp Digital processor having variable length addressing
NL7807314A (en) * 1978-07-06 1980-01-08 Philips Nv DEVICE FOR INCREASING THE LENGTH OF A LOGICAL COMPUTER ADDRESS.
US4445173A (en) * 1981-09-11 1984-04-24 Data General Corporation Improved system for saving and restoring state in call and return operations
US4604695A (en) * 1983-09-30 1986-08-05 Honeywell Information Systems Inc. Nibble and word addressable memory arrangement
DE3479356D1 (en) * 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
JPS62169218A (en) * 1986-01-17 1987-07-25 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Application suspension restarter for information processing system
US4868740A (en) * 1986-06-04 1989-09-19 Hitachi, Ltd. System for processing data with multiple virtual address and data word lengths
JP2507756B2 (en) * 1987-10-05 1996-06-19 株式会社日立製作所 Information processing device
FR2652926B1 (en) * 1989-10-06 1994-07-08 Bull Sa METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD.

Also Published As

Publication number Publication date
US5430864A (en) 1995-07-04
DE69111778D1 (en) 1995-09-07
KR960007831B1 (en) 1996-06-12
EP0492970B1 (en) 1995-08-02
KR920013099A (en) 1992-07-28
CA2058270A1 (en) 1992-06-22
EP0492970A3 (en) 1992-11-19
EP0492970A2 (en) 1992-07-01
DE69111778T2 (en) 1996-05-02

Similar Documents

Publication Publication Date Title
JP3683230B2 (en) Data processing apparatus, instruction set switching method, data processing architecture, and data processing apparatus operating method
EP0730226B1 (en) Hardware support for fast software emulation of unimplemented instructions
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
JP3592230B2 (en) Data processing device
US6334176B1 (en) Method and apparatus for generating an alignment control vector
JP2992223B2 (en) Computer system, instruction bit length compression method, instruction generation method, and computer system operation method
JP6807383B2 (en) Transfer prefix instruction
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JP2006079652A (en) Data processing by multiple instruction sets
JPH10116200A (en) System and method for evading exception of specific type of digital computer system
US4562538A (en) Microprocessor having decision pointer to process restore position
JPH07248897A (en) Method and device for recovery from exception in computer system
US5210839A (en) Method and apparatus for providing a memory address from a computer instruction using a mask register
JPH06236319A (en) Method and apparatus for execution, by computer, of procedure of different word size
KR20100113070A (en) Execute relative instruction
JPH11353179A (en) Process of exception of pipeline control data processor
US5784607A (en) Apparatus and method for exception handling during micro code string instructions
US6363474B1 (en) Process switching register replication in a data processing system
US6516405B1 (en) Method and system for safe data dependency collapsing based on control-flow speculation
US5819078A (en) Addressing extended memory using millicode by concatenating a small millicode address and address extension data
US4611278A (en) Wraparound buffer for repetitive decimal numeric operations
US5812813A (en) Apparatus and method for of register changes during execution of a micro instruction tracking sequence
KR19990082747A (en) Specialized millicode instructions for packed decimal division
US5841999A (en) Information handling system having a register remap structure using a content addressable table