JP2003532221A - Processor architecture with ALU, Java stack and multiple stack pointers - Google Patents

Processor architecture with ALU, Java stack and multiple stack pointers

Info

Publication number
JP2003532221A
JP2003532221A JP2001580661A JP2001580661A JP2003532221A JP 2003532221 A JP2003532221 A JP 2003532221A JP 2001580661 A JP2001580661 A JP 2001580661A JP 2001580661 A JP2001580661 A JP 2001580661A JP 2003532221 A JP2003532221 A JP 2003532221A
Authority
JP
Japan
Prior art keywords
stack
data
processing
operand
operation unit
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
JP2001580661A
Other languages
Japanese (ja)
Inventor
ロニー、シー.ゴフ
デイビッド、アール.エボイ
サティエンドラ、エス.セシー
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2003532221A publication Critical patent/JP2003532221A/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 プロセッサを介してデータを処理するスタックベースのプロセッサ機構と関連の方法が提供される。処理されるべき第1のデータは、オペランドスタックに書き込まれる。オペランドスタック内のデータ位置は、スタックプロセッサのスタック/ALUコントローラに含まれるスタックポインタを用いて特定される。スタックポインタは、データが格納されるべきオペランドスタック内のバンクを特定する。データ位置が特定された後、スタックポインタと機能コードを用いて選択されたデータの並列転送が行われる。選択されたデータは、オペランドスタックから、機能コードにより特定された命令に応じた処理を行う論理演算ユニットに転送される。その後、その結果はオペランドスタックに効率的に戻され、所望のときに読み出される。 SUMMARY A stack-based processor mechanism and associated method for processing data through a processor is provided. The first data to be processed is written to the operand stack. The data position in the operand stack is specified using a stack pointer included in the stack / ALU controller of the stack processor. The stack pointer specifies a bank in the operand stack where data is to be stored. After the data position is specified, the selected data is transferred in parallel using the stack pointer and the function code. The selected data is transferred from the operand stack to a logical operation unit that performs a process according to the instruction specified by the function code. Thereafter, the result is efficiently returned to the operand stack and read when desired.

Description

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

【0001】 (技術分野) 本発明は、Java(登録商標)のスタックベースのプロセッサ内部の実行ユニッ
トに関する。より具体的には、本発明は、処理部と記憶部との間で、データをよ
り効率的に送受するスタック処理ハードウェア構成によるデータ処理に関する。
TECHNICAL FIELD The present invention relates to an execution unit inside a Java (registered trademark) stack-based processor. More specifically, the present invention relates to data processing by a stack processing hardware configuration that transmits and receives data more efficiently between a processing unit and a storage unit.

【0002】 (背景技術) コンピュータ用プロセッサが市場に氾濫するとき、より高度な処理性能をもつ
プロセッサに対する要求が高まっている。今日のプロセッサは、より高速の処理
速度を要求する、より複雑なタスクを操作する。さらに、これらの複雑なタスク
は、内部の記憶装置の性能をより効率よく引き出すプロセッサを要求する。公知
のプロセッサは、オペランドスタックから取り出したデータに対して論理演算を
行う。この種のスタックベースのプロセッサの一つとして、Java仮想マシン(J
VM)がある。JVMは、コンピュータモデルの一般的な形態であり、Java言語
を実行する。JVMは、要求の少ないアプリケーションに対しては良好に動作す
るが、ハードウェアでJVMのいくつかを実装するには、性能を改善する必要が
ある。すなわち、スタックプロセッサはハードウェアで実装されたが、その実装
は、処理性能に対する要求の高まりに対して効率的ではなかった。例えば、一般
的なスタックベースのプロセッサは、32ビットか64ビットのワイドスタック
で構成される。
2. Description of the Related Art When computer processors flood the market, there is an increasing demand for processors with higher processing performance. Today's processors handle more complex tasks that require faster processing speeds. Moreover, these complex tasks require a processor that more efficiently exploits the performance of internal storage. A known processor performs a logical operation on the data taken out from the operand stack. As one of this kind of stack-based processor, Java Virtual Machine (J
VM). The JVM is a common form of computer model that implements the Java language. While the JVM works well for less demanding applications, implementing some of the JVM in hardware requires improved performance. That is, the stack processor was implemented in hardware, but the implementation was not efficient in response to the increasing demand for processing performance. For example, a typical stack-based processor has a 32-bit or 64-bit wide stack.

【0003】 32ビット幅のスタックベースのプロセッサが利用されて、64ビット幅のエ
ントリーを書き込む要求があれば、オペランドスタックからALUにデータを読
むために2つのアクセスが要求される。2つのアクセスは、スタックに結果を書
き戻すために要求される。すなわち、スタックからデータを読むために2回の3
2ビット読み出しが要求され、スタックにデータを書き戻すためにさらに2回の
32ビット書き込みが要求される。64ビット幅のスタックベースのプロセッサ
が2組の64ビット幅のデータを有するならば、スタックからデータを読み出し
て、オペランドスタックに結果を格納するまで、合計4回のアクセスが要求され
る。これは、オペランドスタックからデータを読み出すのに2組の64ビットが
要求され、オペランドスタックに結果を格納するのに2組の64ビットが要求さ
れることを意味する。したがって、現在のスタックベースのプロセッサでデータ
を処理するために要求される複数のアクセスは、データの全体的な処理時間を増
やし、スタックベースのプロセッサを用いた実装の全体的な効率性を悪くする。
If a 32-bit wide stack-based processor is utilized and there is a request to write a 64-bit wide entry, then two accesses are required to read the data from the operand stack into the ALU. Two accesses are required to write the result back to the stack. Ie, three times to read the data from the stack
A 2-bit read is required and two additional 32-bit writes are required to write the data back to the stack. If a 64-bit wide stack-based processor has two sets of 64-bit wide data, a total of four accesses are required until the data is read from the stack and the result is stored in the operand stack. This means that two sets of 64 bits are required to read the data from the operand stack and two sets of 64 bits are required to store the result in the operand stack. Therefore, the multiple accesses required to process data on current stack-based processors increases the overall processing time of the data and reduces the overall efficiency of implementations using stack-based processors. .

【0004】 また、現在の64ビット幅のスタックは、64ビット幅以下のデータの効率的
な割り当てを許容しない。例えば、32ビット幅のデータは、64ビットを保持
可能なスタック記憶領域列を占有しうる。すなわち、その列内の残りの32ビッ
トは浪費されうる。このため、この種の実装は、高価な記憶空間を無駄にするた
め、非常に望ましくない。
Also, current 64-bit wide stacks do not allow efficient allocation of data that is 64 bits wide or less. For example, 32-bit wide data can occupy a stack storage area column that can hold 64 bits. That is, the remaining 32 bits in the column can be wasted. Therefore, this type of implementation wastes expensive storage space and is highly undesirable.

【0005】 上述したスタックベースのプロセッサに加えて、性能、Java命令の完全なハー
ドウェア解釈、ネイティブJavaおよびコンパイルを向上させるために、現在のと
ころ、3つの基本的な技術がある。ハードウェア解釈のアプローチは、解釈処理
を改良するためにハードウェアを利用する。ホストのハードウェアは、Java命令
を機械語に翻訳する。翻訳された機械語は、Javaマシンをモデリングしているハ
ードウェアの産業上の標準プロセッサと互換性がある。これには2つの機能的な
問題がある。まず、翻訳がソフトウェア解釈(典型的な状況)とハードウェア翻
訳のどちらで実行されても関係なく、時間がかかる。いったん結果が生成される
と、翻訳が実行されなければならない。このように、ハードウェア翻訳は2つの
ステップ処理である(すなわち、実行の後に翻訳)。Javaのハードウェア翻訳に
関連のある二つ目の問題は、アーキテクチャである。もし目標のプロセッサが(
たいていのマシンと同様に)スタックベースのマシンでなければ、翻訳処理は複
雑になる。その結果、人工的な(すなわち、仮想の)スタックがエミュレートで
きるように、各Java命令は複数の目標のプロセッサ命令に発展する。
In addition to the stack-based processor described above, there are currently three basic techniques to improve performance, full hardware interpretation of Java instructions, native Java and compilation. The hardware interpretation approach utilizes hardware to improve the interpretation process. The host hardware translates the Java instructions into machine language. The translated machine language is compatible with industry standard processors of hardware modeling Java machines. This has two functional problems. First, it takes time regardless of whether the translation is done by software interpretation (typical situation) or hardware translation. Once the result is produced, the translation has to be performed. Thus, hardware translation is a two step process (ie, translation after execution). The second issue associated with Java hardware translation is architecture. If the target processor is (
Unless you have a stack-based machine (like most machines), the translation process is complicated. As a result, each Java instruction evolves into multiple target processor instructions so that an artificial (ie, virtual) stack can be emulated.

【0006】 純粋なJavaプロセッサは、ハードウェアにて実のスタックベースのプロセッサ
を生成する。しかしながら、実のスタックベースのプロセッサは、非常に複雑で
あり、標準のプロセッサ(例えば、ARM、MIPSおよびx86など)で利用可能
なたいていのソフトウェアを利用できない。
A pure Java processor produces a real stack-based processor in hardware. However, real stack-based processors are very complex and do not take advantage of most of the software available on standard processors (eg ARM, MIPS and x86).

【0007】 コンパイルは性能を向上させる他の技術である。コンパイルはインタープリタ
ーを不要とし、Javaを直接特定の機械語にコンパイルする。にもかかわらず、結
果の実行ファイルは小型ではない。Javaのコンパイルの実行に必要なリソースは
高価であり、ときには不便である(例えば、ハンドヘルド型パーソナル・デジタ
ル・アシスタントや携帯電話はコンパイラをサポートする十分なメモリを持たな
い)。さらに、コンパイルの実行に要求される時間は、過度の初期遅延を引き起
こす(すなわち、実時間応答は起動時には必要ではない)。
Compilation is another technique that improves performance. Compile does not require an interpreter and compiles Java directly into a specific machine language. Nevertheless, the resulting executable is not small. The resources required to perform a Java compilation are expensive and sometimes inconvenient (eg, handheld personal digital assistants and cell phones do not have enough memory to support the compiler). Moreover, the time required to perform the compilation causes an excessive initial delay (ie, real-time response is not needed at startup).

【0008】 上述の観点で、従来の技術の問題点を解消するスタックベースの処理機構が必
要になる。さらに、開示された機構とそれに関連する手法は、従来の技術の問題
点を解消しつつ、オペランドスタック内での記憶空間の効率的な使用を可能にす
る。
From the above viewpoint, a stack-based processing mechanism that solves the problems of the conventional technology is required. Further, the disclosed mechanism and related techniques allow for efficient use of storage space within the operand stack while eliminating the problems of the prior art.

【0009】 (発明の開示) 広義には、本発明は、スタックベースのプロセッサを用いてデータを効率的に
処理する手法とハードウェアを提供することにより、上述した必要性を満たすも
のである。本発明は、処理、装置、システム、デバイスおよび方法を含む数多く
の手法で実装されうることを評価すべきである。本発明のいくつかの発明性のあ
る実施形態を以下に説明する。
DISCLOSURE OF THE INVENTION Broadly speaking, the present invention satisfies the above need by providing a method and hardware for efficiently processing data using a stack-based processor. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device and a method. Several inventive embodiments of the present invention are described below.

【0010】 一実施形態では、スタックプロセッサを介してデータを処理する手法が開示さ
れる。この手法は、オペランドスタックにデータを書き込み、オペランドスタッ
ク内のデータ位置を特定するものである。オペランドスタック内のデータ位置は
、一以上のスタックポインタを用いて特定される。スタックポインタがオペラン
ドスタック内のデータを位置づけると、論理演算ユニットへのデータの並列転送
が行われる。転送されたデータは、スタックポインタや機能コードを用いて選択
される。転送されたデータは、機能コードにより定義される命令に応じて、論理
演算ユニット内で処理される。
In one embodiment, a technique for processing data via a stack processor is disclosed. This technique writes data to the operand stack and identifies the data location within the operand stack. Data locations within the operand stack are identified using one or more stack pointers. When the stack pointer positions the data in the operand stack, the data is transferred in parallel to the logical operation unit. The transferred data is selected using the stack pointer or the function code. The transferred data is processed in the logical operation unit according to the instruction defined by the function code.

【0011】 他の実施形態では、データを処理するスタック処理サブシステムを開示する。
スタック処理システムは、スタック処理サブシステム内に位置するオペランドス
タックを有する。このオペランドスタックは、データを格納可能なバンクを有す
る。スタック処理サブシステムは、オペランドスタックのバンク内のデータ位置
を特定するスタックポインタも有する。論理演算ユニットは、オペランドスタッ
クとのインタフェースであり、オペランドスタックから論理演算ユニットまでデ
ータの並列ワード転送が実行されうる。さらに、並列ワード転送で転送されるべ
きデータは、スタックポインタと機能コードを用いて特定される。機能コードは
、論理演算ユニットにより処理される特定の命令を特定する。
In another embodiment, a stack processing subsystem for processing data is disclosed.
The stack processing system has an operand stack located within the stack processing subsystem. This operand stack has banks capable of storing data. The stack processing subsystem also has a stack pointer that identifies a data location within a bank of the operand stack. The logical operation unit is an interface with the operand stack, and parallel word transfer of data can be performed from the operand stack to the logical operation unit. Further, the data to be transferred by the parallel word transfer is specified by using the stack pointer and the function code. The function code identifies the particular instruction processed by the logical operation unit.

【0012】 他の実施形態では、スタックポインタを用いたデータでの処理を実行する手法
を開示する。このデータは、スタックプロセッサ内に含まれるオペランドスタッ
クに配置される。オペランドスタック内のデータ位置は、スタックプロセッサ内
にも位置するスタックポインタにより追跡される。データがオペランドスタック
内に配置された後、データはオペランドスタックから論理演算ユニットに転送さ
れる。このデータは、オペランドスタックから論理演算ユニットに128ビット
の増分で転送されうる。データが論理演算ユニットに転送されると、そのデータ
は機能コードからの命令により処理される。
[0012] In another embodiment, a method of performing processing on data using a stack pointer is disclosed. This data is placed on the operand stack contained within the stack processor. The data position in the operand stack is tracked by the stack pointer, which is also located in the stack processor. After the data is placed in the operand stack, the data is transferred from the operand stack to the logical operation unit. This data can be transferred from the operand stack to the logical operation unit in 128 bit increments. When the data is transferred to the logical operation unit, the data is processed by the instruction from the function code.

【0013】 本発明の多くの利点を認識すべきである。本発明の一実施形態において、オペ
ランドスタックと論理演算ユニットは、単一ユニットに統合される。さらに、本
発明は、スタックをバンクに分割することにより、128ビット幅のより効率的
な使用を可能にする。過去に、スタックのデータ幅未満のデータがスタックに格
納されたとき(すなわち、64ビットスタックにおける32ビットデータ)、残
りの空間は無駄に浪費されていた(すなわち、64ビットスタックにおける残り
の32ビットデータは無駄に浪費されていた)。本発明において、スタックポイ
ンタは、個々の列ごとにデータを配置する(すなわち、128ビットの列ごとに
2組の独立した64ビットのエントリーを配置する)場合と対比して、複数のデ
ータを同じ列(同じ列で2組の独立した64ビットエントリー)に配置させる。
本発明はまた、単一の演算処理(すなわち、一つのリードアクセスと一つのライ
トアクセス)において2つのアクセスのみで128ビット幅のデータを完全に処
理させる。このように、Javaのスタックベースのプロセッサの処理時間は、開示
されクレームされた構造および方法により、データのより少ないアクセスと効率
的な処理が可能になるので、非常に短くなる。
One should appreciate the many advantages of the present invention. In one embodiment of the present invention, the operand stack and the logical operation unit are combined into a single unit. Further, the present invention allows for more efficient use of 128 bits wide by dividing the stack into banks. In the past, when less than the stack's data width was stored on the stack (ie, 32-bit data in a 64-bit stack), the remaining space was wasted (ie, the remaining 32-bits in the 64-bit stack). The data was wasted wastefully). In the present invention, the stack pointer is the same for a plurality of data as compared with the case where data is arranged for each column (that is, two sets of independent 64-bit entries are arranged for each 128-bit column). Place in columns (two independent 64-bit entries in the same column).
The present invention also allows 128-bit wide data to be fully processed with only two accesses in a single arithmetic operation (ie, one read access and one write access). Thus, the processing time of Java's stack-based processor is very short because the disclosed and claimed structures and methods allow for less access to data and efficient processing.

【0014】 本発明の他の特徴および効果は、本発明の原理を図示した添付図面を参照して
、以下に詳しく説明される。
Other features and advantages of the present invention are described in detail below with reference to the accompanying drawings that illustrate the principles of the present invention.

【0015】 (発明を実施するための最良の形態) 本発明は、添付図面とともに以下の詳細な説明により容易に理解されうる。同
一の構成要素には同一の符号を付している。
BEST MODE FOR CARRYING OUT THE INVENTION The present invention can be easily understood by the following detailed description in conjunction with the accompanying drawings. The same components are designated by the same reference numerals.

【0016】 スタックサブシステムを用いてデータを処理する、統合的なスタック/ALU
サブシステムとそれに関連する方法についての機構を開示する。以下の記載では
、本発明を完全に理解するために、数多くの具体的な詳細説明がなされる。しか
しながら、当業者には、本発明はこれら具体的な詳細のいくつか、またはすべて
がなくても実現可能であることがわかるであろう。他の例では、公知の処理動作
は、本発明を不必要にあいまいにしないように、詳細には説明されていない。
Integrated stack / ALU for processing data using stack subsystem
Mechanisms for subsystems and related methods are disclosed. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, one of ordinary skill in the art will appreciate that the present invention may be practiced without some or all of these specific details. In other instances, well-known processing operations have not been described in detail so as not to unnecessarily obscure the present invention.

【0017】 図1は本発明の一実施形態であるJavaスタックサブシステム102の外観図1
00を示している。Javaスタックサブシステム102は、Javaプロセッサ用の実
行ユニットである。Javaスタックサブシステム102は、他のサブシステムとシ
ステムバス150との通信を行う32ビット幅のバス120を有する。一実施形
態では、バス120は、入力マルチプレクサ(入力mux)108にロードされ
るべきデータを供給することができる。入力mux108は、バス120からオ
ペランド110に32ビットデータを導く。
FIG. 1 is an external view of a Java stack subsystem 102 that is an embodiment of the present invention.
00 is shown. The Java stack subsystem 102 is an execution unit for a Java processor. The Java stack subsystem 102 has a 32-bit wide bus 120 that communicates with the system bus 150 with other subsystems. In one embodiment, bus 120 may provide the data to be loaded into input multiplexer (input mux) 108. Input mux 108 directs 32-bit data from bus 120 to operand 110.

【0018】 オペランドスタック110にデータをロードするために、スタック/ALUコ
ントローラ104は、機能コード124をデコードする。機能コード124は、
オペランドスタック110に格納されたデータに対してどのような処理が実行さ
れるべきかに関する情報をスタック/ALUコントローラ104に提供する。例
えば、機能コード124は、所定のデータセットで実行されるべきADD演算を
要求しうる。この場合、機能コード124は、オペランドスタック110から読
まれるべきデータに関するADD演算を論理演算ユニット(ALU)106に実
行させる。このため、機能コード124は、スタックポインタ105c-f(すなわち
、スタックポインタ-1、スタックポインタ-2、スタックポインタ-3、スタックポ
インタ-4)にオペランドスタック110内の所望のデータ位置を特定させる。所
望のデータは、128ビット幅のバスを用いて出力マルチプレクサ112により
ALU106により取り出される。このように、オペランドスタック110の各
部からのデータ(例えば、各32ビット部分)は、単一アクセスの間に、ALU
106により読み出されうる。
To load data into operand stack 110, stack / ALU controller 104 decodes function code 124. The function code 124 is
It provides the stack / ALU controller 104 with information regarding what processing should be performed on the data stored in the operand stack 110. For example, function code 124 may require an ADD operation to be performed on a given data set. In this case, function code 124 causes logical operation unit (ALU) 106 to perform an ADD operation on the data to be read from operand stack 110. Therefore, the function code 124 causes the stack pointers 105c-f (that is, the stack pointer-1, the stack pointer-2, the stack pointer-3, and the stack pointer-4) to specify the desired data position in the operand stack 110. The desired data is retrieved by ALU 106 by output multiplexer 112 using a 128 bit wide bus. As such, data from each part of the operand stack 110 (eg, each 32-bit part) is transferred to the ALU during a single access.
Can be read by 106.

【0019】 オペランドスタック110は、一実施形態では、4つのバンク110a〜110dを有
する。各バンク110は32ビット幅が望ましい。スタックポインタ105は3
2ビット中心であり、オペランドスタック110のバンク110a〜110dのどれがデ
ータを受け取って、バンク110a〜110d内のどのデータがALU106に通過する
かを選択するために用いられる。スタックポインタ105c-fは、オペランドスタッ
ク110に押し込められた最後の4つのエントリー用のデータ位置を特定する。
Operand stack 110, in one embodiment, has four banks 110a-110d. Each bank 110 is preferably 32 bits wide. Stack pointer 105 is 3
It is 2-bit centric and is used to select which of the banks 110a-110d of the operand stack 110 will receive the data and which of the banks 110a-110d will pass to the ALU 106. Stack pointers 105c-f identify the data locations for the last four entries pushed onto operand stack 110.

【0020】 好適な実施形態では、スタック/ALUコントローラ104は、すべての演算
を制御し、スタック/ALUサブシステム102内のすべての機能性を操作する
。スタック/ALUコントローラ104は、スタックへの柔軟で効率的なアクセ
スを許容する6つのスタックポインタ105を有する。スタックポインタ105a(
スタックポインタ+1)とスタックポインタ105b(スタックポインタ)は、スタ
ックポインタ105c-fで定義される。(スタックポインタ+1)105aは、スタック+1
の先頭アドレスである。スタックポインタ105bは常にスタックの先頭アドレスで
ある。スタックポインタ105c-fはそれぞれ、上述したように、スタック-1,-2,-3
,-4の先頭アドレスである。アクセスの間、スタックポインタ105c-fはそれぞれ
、一つまたはすべてのバンク110a〜dのどれがゲートされるべきかを定義するこ
とができる。結果として、単一のアクセスサイクルの間に、128ビット幅のバ
スにゲートされる全4つのバンク110a〜110dをALU106に持つことができる
。このため、スタック/ALUサブシステム102は、サイクル当たり32ビッ
トエンティティを一つだけ読み、その後、次の32ビットエンティティを読むた
めにスタックポインタを調整することにより、時間を浪費しない。
In the preferred embodiment, the stack / ALU controller 104 controls all operations and operates all functionality within the stack / ALU subsystem 102. The stack / ALU controller 104 has six stack pointers 105 that allow flexible and efficient access to the stack. Stack pointer 105a (
Stack pointer +1) and stack pointer 105b (stack pointer) are defined by stack pointers 105c-f. (Stack pointer +1) 105a is the stack +1
Is the start address of. The stack pointer 105b is always the top address of the stack. The stack pointers 105c-f are respectively stack-1, -2, -3 as described above.
, -4 is the start address. During access, the stack pointers 105c-f can each define which one or all banks 110a-d should be gated. As a result, the ALU 106 can have all four banks 110a-110d gated to a 128-bit wide bus during a single access cycle. Thus, the stack / ALU subsystem 102 does not waste time by reading only one 32-bit entity per cycle and then adjusting the stack pointer to read the next 32-bit entity.

【0021】 また、バスマスタ・インタフェースユニット(BMIU)130がバス120に接
続されている。BMIU130は、システムバス150とスタック/ALUサブシス
テム102との間で通信を行う。例えば、BMIU130は、スタック/ALUサブ
システム102へのアドレッシング142とリード/ライト144を制御できる
。また、スタック/ALUサブシステム102と通信されうるホールト145コ
マンドが図示されている。スタック/ALUサブシステム102と通信を行うた
めに、リード/ライトスタック(RD/WRT STK)126がまた図示されている。RD
/WRT STK126は、一つの例では、図2を参照して議論される機能コードにより
特定される。RD/WRT STK126は、ホストプロセッサに対して、オペランドスタ
ック110からの読み出しと書き込みを許可する。さらに、ウェイト136コマ
ンドとALU CC(状態コード)134は、スタック/ALUサブシステム102か
らの信号として図示されている。バス140は、出力116からパス132に沿
ってBMIU130に出力される出力を取り込む。
Further, a bus master interface unit (BMIU) 130 is connected to the bus 120. The BMIU 130 communicates between the system bus 150 and the stack / ALU subsystem 102. For example, the BMIU 130 can control addressing 142 and read / write 144 to the stack / ALU subsystem 102. Also shown are the Halt 145 commands that may be communicated with the Stack / ALU subsystem 102. A read / write stack (RD / WRT STK) 126 is also shown to communicate with the stack / ALU subsystem 102. RD
/ WRT STK 126 is identified in one example by the function code discussed with reference to FIG. The RD / WRT STK 126 permits the host processor to read and write from the operand stack 110. In addition, the wait 136 command and ALU CC (status code) 134 are shown as signals from the stack / ALU subsystem 102. Bus 140 takes the output from output 116 along path 132 to BMIU 130.

【0022】 以下は、理解を目的とした、スタック/ALUサブシステム102の効率的な
動作の一例である。まず、32ビット幅のデータは、バス120を介してスタッ
ク/ALUサブシステム102に送られる。スタックポインタ105c-fは32ビッ
トのデータをバンク110a,110b,110c,110dのそれぞれに導く。一例として、AD
D演算を定義する機能コード124は、機能コード124がデコードされるスタ
ック/ALUコントローラ104に導かれる。スタック/ALUコントローラ1
04が機能コード124をデコードした後、第1サイクルが始まる。第1サイク
ルでは、スタック/ALUコントローラ104は、オペランドスタック110か
らのデータを、出力mux112を介してALU106に導く。好適な一実施形態
では、出力mux112からALU106に導かれたデータは、128ビット幅(
例えば、複数の32ビットワード)である。これは、32ビット幅の増分(例え
ば、一回に一ワードのみ)データを転送する従来例とは逆であり、32ビット以
上の転送は、スタックポインタを使用せずに多くのサイクルを用いて行われる。
The following is an example of efficient operation of the stack / ALU subsystem 102 for understanding purposes. First, 32-bit wide data is sent to the stack / ALU subsystem 102 via the bus 120. The stack pointers 105c-f guide the 32-bit data to the banks 110a, 110b, 110c, 110d, respectively. As an example, AD
The function code 124 defining the D operation is directed to the stack / ALU controller 104 where the function code 124 is decoded. Stack / ALU controller 1
After 04 decodes the function code 124, the first cycle begins. In the first cycle, the stack / ALU controller 104 directs the data from the operand stack 110 to the ALU 106 via the output mux 112. In one preferred embodiment, the data derived from output mux 112 to ALU 106 is 128 bits wide (
For example, multiple 32-bit words). This is the opposite of the conventional example of transferring data in 32-bit width increments (eg, only one word at a time), and transfers of 32 bits or more use many cycles without using the stack pointer. Done.

【0023】 データがALU106に導かれるとき、スタック/ALUコントローラ104
はALU106に機能コードを転送する。このため、ALU106は、結果を生
成するためにデータの機能コード124により特定される所望の動作を行う(例
えば、その動作はプロセッサやJavaプロセッサなどにより一般に実行される演算
動作でありうる)。ALU106は、動作が完了したことを知らせる信号をスタ
ック/ALU104に送り、スタック/ALUコントローラ104は、ALU1
06からの結果を読み出してオペランドスタック110に戻す。ALU106か
らオペランドスタック110への戻りパス114は、2種類の32ビット幅のパ
ス114a,114b(すなわち、64ビット幅のパス)で特定される。これは、その結
果が同一の単一アクセス動作の間に格納されうることを保障する。その結果がオ
ペランドスタック110に書き戻されるとき、スタックポインタ105e(スタック
ポインタ-3)とスタックポインタ105f(スタックポインタ-4)はオペランドスタ
ック110内の結果の位置を特定する。
Stack / ALU controller 104 when data is directed to ALU 106
Transfers the function code to the ALU 106. As such, the ALU 106 performs the desired operation specified by the function code 124 of the data to produce the result (e.g., the operation may be a computing operation commonly performed by a processor, Java processor, etc.). The ALU 106 sends a signal to the stack / ALU 104 indicating that the operation is completed, and the stack / ALU controller 104 sends the signal to the ALU1.
The result from 06 is read and returned to the operand stack 110. The return path 114 from the ALU 106 to the operand stack 110 is specified by two types of 32-bit width paths 114a and 114b (that is, 64-bit width paths). This ensures that the result can be stored during the same single access operation. When the result is written back to operand stack 110, stack pointer 105e (stack pointer-3) and stack pointer 105f (stack pointer-4) locate the result within operand stack 110.

【0024】 スタックポインタ105は、その結果が2番目のサイクルでオペランドスタッ
ク110に読み戻された後、再調整される。スタックポインタは、スタックポイ
ンタ105c(スタックポインタ-1)とスタックポインタ105d(スタックポインタ-2
)がデータ位置を示すように再調整される。オペランドスタック110内のデー
タ位置は変わらないことに注意されたい。スタックポインタを再調整する命令は
、機能コード124の一部である。ユーザがオペランドスタック110内に格納
された結果を読み出すとき、出力mux112は32ビット幅の結果を吐き出す
。オペランドスタック110からの結果を吐き出す命令は、機能コード124に
書き込まれ、標準のJavaコードの一部である。Javaスタックから取り出された情
報はPOP命令の制御の下で一般になされる。機能コードは、デコード/実行サ
ブシステムにより、スタック/ALUサブシステム102に送られる。機能コー
ドがスタック/ALUサブシステム102に送られるとき、オペランドスタック
110内の適当なデータをBバスにゲートさせる。
The stack pointer 105 is readjusted after the result is read back into the operand stack 110 in the second cycle. The stack pointers are stack pointer 105c (stack pointer-1) and stack pointer 105d (stack pointer-2).
) Is readjusted to indicate the data position. Note that the data position within operand stack 110 does not change. The instruction to realign the stack pointer is part of the function code 124. When the user reads the result stored in the operand stack 110, the output mux 112 spits out a 32-bit wide result. The instruction that flushes the result from the operand stack 110 is written into the function code 124 and is part of the standard Java code. The information retrieved from the Java stack is generally done under the control of the POP instruction. The function code is sent to the stack / ALU subsystem 102 by the decode / execute subsystem. When the function code is sent to the stack / ALU subsystem 102, it gates the appropriate data in the operand stack 110 on the B bus.

【0025】 図2はオペランドスタック110からALUスロット112a〜dにデータを転送
するスタックポインタ105を示す本発明の一実施形態である。機能コードレジ
スタ202は、スタック/ALUサブシステム102により実行されるべき動作
を保持する。この情報は、デコード/実行サブシステムによるJava命令から引き
出される。デコード/実行サブシステムは、スタック/ALUサブシステム10
2と通信する。その機能は、当業者に知られている。一実施形態において、機能
コードは、オペランドスタック110内のデータに関して実行されることを要求
する。例えば、ADD演算が要求された場合、ADD演算を指示するように機能
コードレジスタ202が書き込まれる。機能コードレジスタ202は、機能デコ
ードテーブル204と通信を行うように図示されている。一実施形態において、
機能コードテーブル204は、デコード信号(例えば、ADDや長い分割など)
を有する。このため、これらデコード信号204aは、一実施形態において、実行さ
れるべき機能を特定する。
FIG. 2 is an embodiment of the present invention showing the stack pointer 105 for transferring data from the operand stack 110 to the ALU slots 112a-d. The function code register 202 holds the operation to be performed by the stack / ALU subsystem 102. This information is derived from Java instructions by the decode / execute subsystem. The decoding / execution subsystem is the stack / ALU subsystem 10
Communicate with 2. Its function is known to those skilled in the art. In one embodiment, the function code requires that it be performed on the data in the operand stack 110. For example, when the ADD operation is requested, the function code register 202 is written so as to instruct the ADD operation. Function code register 202 is shown in communication with function decode table 204. In one embodiment,
The function code table 204 includes a decoded signal (for example, ADD or long division).
Have. Thus, these decode signals 204a identify the function to be performed, in one embodiment.

【0026】 機能デコードテーブル204は、デコード信号204aをバンクセレクタmux2
06に伝送する。スタックポインタ105は、オペランドスタック110内のデ
ータのバンクアドレス情報をバンク選択mux206に伝送する。スタックポイ
ンタ105は、オペランドスタック110内のデータのバンクアドレスを特定す
るアドレスビット105c-1〜105f-1を含んでいる。バンクセレクタ206は、デコ
ード信号204aからの情報を取得し、アドレスビット105c-1〜105f-1はスロット選
択信号206aを生成する。スロット選択信号206aは、ALU106で処理するため
に送られるデータを出力mux112のALUスロット112a〜dに関連づける。
スロット選択信号206aはまた、ALU演算結果を含むオペランドバンク110内
の目標位置を入力mux108に知らせる。データがオペランドスタック110
内にどの順序で存在するかに関係なく、バンク110a〜dのいずれかから取得され
ることに注意されたい。
The function decode table 204 transfers the decode signal 204a to the bank selector mux2.
It is transmitted to 06. The stack pointer 105 transfers the bank address information of the data in the operand stack 110 to the bank selection mux 206. Stack pointer 105 includes address bits 105c-1 to 105f-1 that specify the bank address of the data in operand stack 110. The bank selector 206 acquires the information from the decoded signal 204a, and the address bits 105c-1 to 105f-1 generate the slot selection signal 206a. Slot select signal 206a associates data sent for processing by ALU 106 with ALU slots 112a-d of output mux 112.
The slot select signal 206a also informs the input mux 108 of the target position within the operand bank 110 containing the ALU operation result. Data is operand stack 110
Note that it will come from any of the banks 110a-d, regardless of their order in which they are present.

【0027】 理解のために、以下では、図2を参照して議論されたように、オペランドスタ
ック110からのデータをALUスロット112a〜dに転送する動作の一例を説明
する。例えば、Java命令は、ADD演算がオペランドスタック110内に含まれ
るデータ組に対して実行されることを特定する。Java命令のデコードは、ロード
されるべきADD命令を機能コードに要求させる。
For purposes of understanding, an example operation of transferring data from operand stack 110 to ALU slots 112a-d, as discussed with reference to FIG. 2, is described below. For example, a Java instruction specifies that an ADD operation is performed on the data set contained within operand stack 110. Decoding a Java instruction causes the function code to request the ADD instruction to be loaded.

【0028】 機能デコードテーブル204がアクセスされた後、デコード信号204aが生成さ
れてバンク選択mux206に送られる。さらに、スタックポインタ105は、
オペランドスタック110内のデータのバンクアドレスを指示する情報を送る。
例えば、スタックポインタ105fは、アドレスビット105f-lをもつ要求されたAD
D命令用のデータ組のバンク位置を特定する。バンクセレクタmux206は、
スロット信号206aを生成し、この信号を出力mux112に送る。スロット信号
206aは、データ組のバンクアドレスを出力muxに知らせる。
After the function decode table 204 is accessed, the decode signal 204 a is generated and sent to the bank selection mux 206. Furthermore, the stack pointer 105 is
Send information indicating the bank address of the data in operand stack 110.
For example, the stack pointer 105f is the requested AD with address bits 105f-l.
Identify the bank position of the data set for the D instruction. The bank selector mux 206 is
It produces a slot signal 206a and sends this signal to the output mux 112. Slot signal
206a informs the output mux of the bank address of the data set.

【0029】 上述したように、本発明は、ユーザに多くの利点をもたらす。本発明は、より
少ないアクセスで、かつより効率的にスタックプロセッサを用いて実行される。
多くても、読み出しと書き込みの2つのアクセスが要求される。オペランドスタ
ックからALUへのデータパスは、128ビット幅であり、2組の64ビットエ
ントリーが単一のアクセスで読み出される。以前は、データパスは、32ビット
幅か64ビット幅のいずれかであった。いずれの場合も、128ビットエンティ
ティ用のALUにオペランドスタックからのデータを読み出すには複数回のアク
セスが必要であり、処理時間の増大を招いていた。
As mentioned above, the present invention offers many advantages to the user. The present invention is implemented with a stack processor with fewer accesses and more efficiently.
At most, two accesses, read and write, are required. The data path from the operand stack to the ALU is 128 bits wide and two sets of 64 bit entries are read in a single access. Previously, the datapath was either 32 or 64 bits wide. In either case, the ALU for 128-bit entity needs to be accessed multiple times to read data from the operand stack, resulting in an increase in processing time.

【0030】 さらに、スタックポインタは、スタック内の高価な記憶空間を浪費するのを防
止する。スタックポインタは、選択可能なバンクを生成し、これにより、32ビ
ット幅の記憶領域が128ビット幅のスタックに生成される。このように、一つ
の128ビット幅スタックには、4つの32ビット幅の独立したデータエントリ
ーまで格納できる。従来の技術と比較して、一つの32ビットデータエントリー
は128ビット幅のスタック内の記憶空間を浪費せず、これによりスタックの記
憶空間をより効率的に使用できる。
In addition, the stack pointer prevents wasting expensive storage space in the stack. The stack pointer creates a selectable bank, which creates a 32-bit wide storage area in a 128-bit wide stack. Thus, a 128-bit wide stack can store up to four 32-bit wide independent data entries. Compared to the prior art, one 32-bit data entry does not waste the storage space in the 128-bit wide stack, which allows the storage space of the stack to be used more efficiently.

【0031】 本発明は、適切なソフトウェアで駆動されるコンピュータ実装動作を用いて実
現可能である。このように、コンピュータ周辺機器を駆動するためのコンピュー
タシステム内(すなわち、ソフトウェアドライバの形態)に格納されたデータを
含む種々のコンピュータ実装動作が適用可能である。これらの動作は、物理量の
物理的操作を要求する。通常、必ずしも必要でないが、これらの物理量は、格納
され、伝送され、結合され、比較され、操作されることができる電子的または磁
気的な信号の形態を要する。さらに、実行される操作はたびたび、確認し、識別
し、走査し、または比較する期間で参照される。
The present invention can be implemented using computer-implemented operations driven by suitable software. Thus, various computer-implemented operations involving data stored within a computer system (ie, in the form of software drivers) for driving computer peripherals are applicable. These operations require physical manipulations of physical quantities. Usually, though not necessarily, these physical quantities require the form of electronic or magnetic signals that can be stored, transmitted, combined, compared, and manipulated. Further, the manipulations performed are often referred to in the periods to confirm, identify, scan, or compare.

【0032】 本発明の一部を形成する上述した動作のいくつかは、機械動作に有益である。
これら動作を実行するために、適切なデバイスまたは装置が有効でありうる。装
置は、要求された目的のために特に構成されるか、あるいはコンピュータ内に格
納されたコンピュータプログラムにより選択的に活性化されるか構成される汎用
のコンピュータでありうる。特に、種々の汎用のマシンは、上述した説明にした
がって記載されたコンピュータプログラムで用いられうる。この種のマシンは、
要求された動作を実行するためにより専門化した装置を構成するためにより便利
である。
Some of the operations described above that form part of the present invention are beneficial to machine operation.
Appropriate devices or apparatus may be available to perform these operations. The device may be a general purpose computer specifically configured for the required purpose or selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with the computer programs described in accordance with the above description. This kind of machine
It is more convenient to configure a more specialized device to perform the required operations.

【0033】 上述した発明は、わかりやすくするために詳細に説明されたが、添付の特許請
求の範囲の範囲内で特定の変更や変形が可能であることは明らかである。したが
って、本実施形態は、図式化されたものであり、限定的なものではない。本発明
は、上述した詳細説明に限定されず、添付の特許請求の範囲の範囲とその均等範
囲内で種々の変更が可能である。
Although the above invention has been described in detail for the sake of clarity, it will be apparent that certain changes and modifications are possible within the scope of the appended claims. Therefore, this embodiment is schematic and not limiting. The present invention is not limited to the above detailed description, and various modifications can be made within the scope of the appended claims and the equivalents thereof.

【0034】 本発明は、適切なソフトウェアで駆動されるコンピュータ実装動作を用いて実
施することもできる。このように、コンピュータ周辺機器を駆動するためのコン
ピュータシステム内(すなわち、ソフトウェアドライバの形態)に格納されたデ
ータを含む種々のコンピュータ実装動作が適用可能である。これらの動作は、物
理量の物理的操作を要求する。通常、必ずしも必要でないが、これらの物理量は
、格納され、伝送され、結合され、比較され、操作されることができる電子的ま
たは磁気的な信号の形態を要する。さらに、実行される操作はたびたび、確認し
、識別し、走査し、または比較する期間で参照される。
The invention may also be implemented using computer-implemented operations driven by suitable software. Thus, various computer-implemented operations involving data stored within a computer system (ie, in the form of software drivers) for driving computer peripherals are applicable. These operations require physical manipulations of physical quantities. Usually, though not necessarily, these physical quantities require the form of electronic or magnetic signals that can be stored, transmitted, combined, compared, and manipulated. Further, the manipulations performed are often referred to in the periods to confirm, identify, scan, or compare.

【0035】 本発明の一部を形成する上述した動作のいくつかは、機械動作に有益である。
これら動作を実行するために、適切なデバイスまたは装置が有用でありうる。装
置は、要求された目的のために特に構成されるか、あるいはコンピュータ内に格
納されたコンピュータプログラムにより選択的に活性化されるか構成される汎用
のコンピュータでありうる。特に、種々の汎用のマシンは、上述した説明にした
がって記載されたコンピュータプログラムで用いられうる。この種のマシンは、
要求された動作を実行するためにより専門化した装置を構成するためにより便利
である。
Some of the above-described operations that form part of the present invention are beneficial to machine operation.
Appropriate devices or apparatus may be useful for performing these operations. The device may be a general purpose computer specifically configured for the required purpose or selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with the computer programs described in accordance with the above description. This kind of machine
It is more convenient to configure a more specialized device to perform the required operations.

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

【図1】 本発明の一実施形態によるJavaスタックサブシステムを示す図。[Figure 1]   FIG. 3 illustrates a Java stack subsystem according to one embodiment of the present invention.

【図2】 オペランドスタックから特定のALUスロットにデータを直接的に転送するス
タックポインタを示す本発明の一実施形態の図。
FIG. 2 is a diagram of one embodiment of the present invention showing a stack pointer that directly transfers data from the operand stack to a particular ALU slot.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 デイビッド、アール.エボイ アメリカ合衆国アリゾナ州、テンプ、ウェ スト、セクレタリアット、ドライブ、68 (72)発明者 サティエンドラ、エス.セシー アメリカ合衆国カリフォルニア州、プレザ ントン、マニアー、ウッド、ドライブ、 5179 Fターム(参考) 5B033 DE00 ─────────────────────────────────────────────────── ─── Continued front page    (72) Inventor David Earl. Evoie             Tempe, Arizona, United States             Strike, secretariat, drive, 68 (72) Inventor Satiendra, S. Cecie             Preza, California, United States             Tone, enthusiast, wood, drive,             5179 F-term (reference) 5B033 DE00

Claims (24)

【特許請求の範囲】[Claims] 【請求項1】 スタックプロセッサを介してデータを処理する方法であって、 オペランドスタックにデータを書き込み、 一以上のスタックポインタを用いて、オペランドスタック内のデータ位置を特
定し、 スタックポインタと、オペランドスタックから機能コードにより特定される命
令に応じた処理を行う論理演算ユニットへの機能コードと、を用いて選択された
データの並列転送を生成することを特徴とする方法。
1. A method of processing data through a stack processor, comprising writing data to an operand stack, using one or more stack pointers to identify a data position within the operand stack, the stack pointer and the operands. A method for generating parallel transfer of selected data by using a function code from a stack to a logical operation unit that performs processing according to an instruction specified by the function code.
【請求項2】 並列転送は、並列に64ビットを動かし、並列に96ビットを動かし、かつ並
列に128ビットを動かすことを特徴とする請求項1に記載のスタックプロセッ
サを介してデータを処理する方法。
2. A data transfer through a stack processor according to claim 1, wherein the parallel transfer moves 64 bits in parallel, moves 96 bits in parallel, and moves 128 bits in parallel. Method.
【請求項3】 並列転送は、選択されたデータを並列的なワード処理用の論理演算ユニットに
供給することを特徴とする請求項1に記載のスタックプロセッサを介してデータ
を処理する方法。
3. The method for processing data via a stack processor according to claim 1, wherein the parallel transfer supplies the selected data to a logical operation unit for parallel word processing.
【請求項4】 論理演算ユニットで結果を生成し、 その結果を単一ワードと複数ワードの一つとしてオペランドスタックに転送し
、一つ以上のスタックポインタはその結果用のオペランドスタック内の位置を特
定することを特徴とする請求項1に記載のスタックプロセッサを介してデータを
処理する方法。
4. A logical operation unit produces a result and transfers the result as one of a single word and a plurality of words onto an operand stack, wherein one or more stack pointers indicate a position in the operand stack for the result. The method for processing data via a stack processor according to claim 1, characterized in that it is specified.
【請求項5】 並列転送は、選択されたデータを並列ワード処理用の論理演算ユニットに供給
することを特徴とする請求項4に記載のスタックプロセッサを介してデータを処
理する方法。
5. The method of processing data through a stack processor according to claim 4, wherein the parallel transfer supplies the selected data to a logical operation unit for parallel word processing.
【請求項6】 スタックポインタとオペランドスタックから論理演算ユニットへの機能コード
とを用いて選択されたデータの並列転送を生成する際、 スタックポインタのアドレス情報とデコード信号をセレクタ・マルチプレクサ
に転送し、 セレクタマルチプレクサから受信されたスロット選択信号を出力マルチプレク
サに転送し、出力マルチプレクサはオペランドスタックからの特定のデータを選
択することを特徴とする請求項1に記載のスタックプロセッサを介してデータを
処理する方法。
6. When generating parallel transfer of selected data using a stack pointer and a function code from an operand stack to a logical operation unit, transferring address information of the stack pointer and a decode signal to a selector / multiplexer, The method of processing data through a stack processor of claim 1, wherein the slot select signal received from the selector multiplexer is transferred to the output multiplexer, the output multiplexer selecting specific data from the operand stack. .
【請求項7】 スタックプロセッサは、Javaスタックプロセッサであることを特徴とする請求
項1に記載のスタックプロセッサを介してデータを処理する方法。
7. The method of processing data via a stack processor of claim 1, wherein the stack processor is a Java stack processor.
【請求項8】 オペランドスタックは複数のバンクに分割され、各バンクは32ビット幅であ
ることを特徴とする請求項1に記載のスタックプロセッサを介してデータを処理
する方法。
8. The method of processing data through a stack processor of claim 1, wherein the operand stack is divided into a plurality of banks, each bank being 32 bits wide.
【請求項9】 特定と生成はスタック/ALUコントローラにより制御されることを特徴とす
る請求項1に記載のスタックプロセッサを介してデータを処理する方法。
9. The method of processing data via a stack processor of claim 1, wherein identification and generation are controlled by a stack / ALU controller.
【請求項10】 データを格納可能で、スタック処理サブシステム内に配置されたバンクを有す
るオペランドスタックと、 オペランドスタックのバンク内のデータの位置を特定する、スタック処理サブ
システム内のスタックポインタと、 データの並列ワード転送がオペランドスタックから論理演算ユニットまで行わ
れるように、オペランドスタックに接続される論理演算ユニットと、を備え、 並列ワード転送で転送されるべきデータは、スタックポインタと機能コードを
用いて特定され、機能コードは論理演算ユニットにより処理されるべき特定の命
令を特定することを特徴とするデータ処理用のスタック処理サブシステム。
10. An operand stack capable of storing data and having banks arranged in a stack processing subsystem; a stack pointer in a stack processing subsystem for locating data within a bank of the operand stack; The logical operation unit connected to the operand stack is provided so that the parallel word transfer of data is performed from the operand stack to the logical operation unit, and the data to be transferred by the parallel word transfer uses the stack pointer and the function code. A stack processing subsystem for data processing, characterized in that the function code specifies a specific instruction to be processed by a logical operation unit.
【請求項11】 並列転送は、64ビット並列転送と、96ビット並列転送と、128ビット並
列転送と、を含むことを特徴とする請求項10に記載のデータ処理用のスタック
処理サブシステム。
11. The stack processing subsystem for data processing according to claim 10, wherein the parallel transfer includes 64-bit parallel transfer, 96-bit parallel transfer, and 128-bit parallel transfer.
【請求項12】 スタックプロセッサ内のスタックポインタは、オペランドスタック内の処理デ
ータの位置を特定することを特徴とする請求項10に記載のデータ処理用のスタ
ック処理サブシステム。
12. The stack processing subsystem for data processing according to claim 10, wherein a stack pointer in the stack processor identifies a position of processing data in the operand stack.
【請求項13】 バンクセレクタ・マルチプレクサが出力マルチプレクサにスロット選択信号を
送るように、スタックポインタからのバンクアドレス情報と機能コードからのデ
コード信号を受け取ることを特徴とする請求項10に記載のデータ処理用のスタ
ック処理サブシステム。
13. The data processing according to claim 10, wherein the bank selector / multiplexer receives bank address information from the stack pointer and a decode signal from the function code so as to send the slot select signal to the output multiplexer. Stack processing subsystem for.
【請求項14】 出力マルチプレクサは、オペランドスタックからの特定データを選択すること
を特徴とする請求項13に記載のデータ処理用のスタック処理サブシステム。
14. The stack processing subsystem for data processing of claim 13, wherein the output multiplexer selects specific data from the operand stack.
【請求項15】 オペランドスタックは、32ビットワード幅の複数のバンクそれぞれごとに、
複数のバンクに分割されることを特徴とする請求項10に記載のデータ処理用の
スタック処理サブシステム。
15. The operand stack has a plurality of banks each having a 32-bit word width.
The stack processing subsystem for data processing according to claim 10, wherein the stack processing subsystem is divided into a plurality of banks.
【請求項16】 オペランドスタックはハードウェア論理であることを特徴とする請求項10に
記載のデータ処理用のスタック処理サブシステム。
16. The stack processing subsystem for data processing of claim 10, wherein the operand stack is hardware logic.
【請求項17】 スタックポインタはハードウェア論理であることを特徴とする請求項10に記
載のデータ処理用のスタック処理サブシステム。
17. The stack processing subsystem for data processing of claim 10, wherein the stack pointer is hardware logic.
【請求項18】 論理演算ユニットはハードウェア論理であることを特徴とする請求項10に記
載のデータ処理用のスタック処理サブシステム。
18. The stack processing subsystem for data processing according to claim 10, wherein the logical operation unit is hardware logic.
【請求項19】 オペランドスタックの間近に配置された入力マルチプレクサを備えることを特
徴とする請求項10に記載のデータ処理用のスタック処理サブシステム。
19. The stack processing subsystem for data processing according to claim 10, further comprising an input multiplexer arranged in the immediate vicinity of the operand stack.
【請求項20】 出力マルチプレクサは、論理演算ユニットのオペランドスタックの間近に配置
されることを特徴とする請求項14に記載のデータ処理用のスタック処理サブシ
ステム。
20. The stack processing subsystem for data processing according to claim 14, wherein the output multiplexer is arranged close to an operand stack of the logical operation unit.
【請求項21】 スタックポインタは、スタック/ALUコントローラに配置されることを特徴
とする請求項10に記載のデータ処理用のスタック処理サブシステム。
21. The stack processing subsystem for data processing of claim 10, wherein the stack pointer is located in the stack / ALU controller.
【請求項22】 データをスタックプロセッサ内に含まれるオペランドスタックに配置し、 スタックプロセッサ内に配置されるスタックポインタをもつオペランドスタッ
ク内のデータ位置を追跡し、 オペランドスタックから論理演算ユニットまで、128ビット増分で転送可能
なデータを転送し、 機能コードからの命令により、論理演算ユニット内のデータを処理することを
特徴とするスタックポインタを用いてデータ処理を行う方法。
22. Placing data on an operand stack contained within the stack processor, tracking the data position within the operand stack having a stack pointer located within the stack processor, 128 bits from the operand stack to the logical operation unit. A method of performing data processing by using a stack pointer, which is characterized by transferring data that can be transferred in increments and processing the data in the logical operation unit by an instruction from a function code.
【請求項23】 論理演算ユニットで結果を生成し、 その結果を単一ワードと複数ワードの一つとしてオペランドスタックに転送し
、一つ以上のスタックポインタがその結果用のオペランドスタックの位置を特定
することを特徴とする請求項22に記載のスタックポインタを用いてデータ処理
を行う方法。
23. A logical operation unit produces a result, transfers the result as one of a single word and a plurality of words to an operand stack, and one or more stack pointers identify the position of the operand stack for the result. The method for performing data processing using a stack pointer according to claim 22, wherein
【請求項24】 オペランドスタックから論理演算ユニットにデータを転送する際、 スタックポインタ・アドレス情報とデコード信号をセレクタ・マルチプレクサ
に転送し、 セレクタ・マルチプレクサから受信されたスロット選択信号を出力マルチプレ
クサに転送し、出力マルチプレクサはオペランドスタックからの特定データを選
択することを特徴とする請求項22に記載のスタックポインタを用いてデータ処
理を行う方法。
24. When data is transferred from the operand stack to the logical operation unit, the stack pointer address information and the decode signal are transferred to the selector multiplexer, and the slot select signal received from the selector multiplexer is transferred to the output multiplexer. 23. The method of performing data processing with a stack pointer of claim 22, wherein the output multiplexer selects specific data from the operand stack.
JP2001580661A 2000-05-04 2001-03-01 Processor architecture with ALU, Java stack and multiple stack pointers Pending JP2003532221A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56567900A 2000-05-04 2000-05-04
US09/565,679 2000-05-04
PCT/US2001/006813 WO2001084305A1 (en) 2000-05-04 2001-03-01 Processor architecture having an alu, a java stack and multiple satckpointers

Publications (1)

Publication Number Publication Date
JP2003532221A true JP2003532221A (en) 2003-10-28

Family

ID=24259660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001580661A Pending JP2003532221A (en) 2000-05-04 2001-03-01 Processor architecture with ALU, Java stack and multiple stack pointers

Country Status (3)

Country Link
EP (1) EP1281120A1 (en)
JP (1) JP2003532221A (en)
WO (1) WO2001084305A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4247920A (en) * 1979-04-24 1981-01-27 Tektronix, Inc. Memory access system
US4432055A (en) * 1981-09-29 1984-02-14 Honeywell Information Systems Inc. Sequential word aligned addressing apparatus
EP1050818A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Computer memory access

Also Published As

Publication number Publication date
WO2001084305A1 (en) 2001-11-08
EP1281120A1 (en) 2003-02-05

Similar Documents

Publication Publication Date Title
TWI407366B (en) Microprocessor with private microcode ram,method for efficiently storing data within a microprocessor ,and computer program product for use with a computing device
US5944841A (en) Microprocessor with built-in instruction tracing capability
US4763242A (en) Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
US10678545B2 (en) Data processing apparatus having streaming engine with read and read/advance operand coding
JP2539199B2 (en) Digital processor controller
WO1999054813A9 (en) Risc processor with context switch register sets accessible by external coprocessor
JPH0612327A (en) Data processor having cache memory
JPH06149545A (en) Semiconductor integrated circuit provided with cpu and multiplier
JPH10187533A (en) Cache system, processor, and method for operating processor
JP2000231549A (en) Microprocessor
WO2003058432A1 (en) Controlling compatibility levels of binary translations between instruction set architectures
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
RU2002129004A (en) MEMORING STACK OPERANDS IN THE REGISTER
JP2003296191A (en) Integrated circuit operable as general purpose processor and processor of peripheral device
CN107391400A (en) A kind of memory expanding method and system for supporting complicated access instruction
JPH01156845A (en) Memory system
US6981132B2 (en) Uniform register addressing using prefix byte
US6014739A (en) Increasing general registers in X86 processors
US6029241A (en) Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
JP3866513B2 (en) Computer processor and method for data streaming
US4701847A (en) Adaptive instruction sequence synthesizer and process
US20030196072A1 (en) Digital signal processor architecture for high computation speed
JP4465081B2 (en) Efficient sub-instruction emulation in VLIW processor
JP2003532221A (en) Processor architecture with ALU, Java stack and multiple stack pointers
US6957319B1 (en) Integrated circuit with multiple microcode ROMs