JP2009538488A - Computer circular register array - Google Patents
Computer circular register array Download PDFInfo
- Publication number
- JP2009538488A JP2009538488A JP2009513215A JP2009513215A JP2009538488A JP 2009538488 A JP2009538488 A JP 2009538488A JP 2009513215 A JP2009513215 A JP 2009513215A JP 2009513215 A JP2009513215 A JP 2009513215A JP 2009538488 A JP2009538488 A JP 2009538488A
- Authority
- JP
- Japan
- Prior art keywords
- register
- processor
- registers
- stack
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
Abstract
スタックプロセッサは、Tレジスタ及びSレジスタを備えるデータスタックと、円環パターン状で反復して機能する8つの固定配線されたボトム側レジスタとを含む。該スタックプロセッサは、また、Rレジスタを含むリターンスタックと、円環パターン状で反復して機能する8つの固定配線されたボトム側レジスタとを含む。ここで説明される円環状レジスタ配列はオーバーフロー及びアンダーフローのスタック状態を回避する。 The stack processor includes a data stack including a T register and an S register, and eight fixedly wired bottom registers that function repeatedly in an annular pattern. The stack processor also includes a return stack including an R register and eight fixedly wired bottom registers that function repeatedly in an annular pattern. The circular register arrangement described herein avoids overflow and underflow stacking conditions.
Description
本発明は、コンピュータ及びコンピュータプロセッサに関し、特に、スタックコンピュータのプロセッサ内のスタックのさらなる効率利用のための方法及び手段に関する。 The present invention relates to computers and computer processors, and in particular, to methods and means for further efficient utilization of stacks in a processor of a stack computer.
スタックマシンは、複合命令セットコンピュータ(CISC)よりも低いプロセッサ複雑性を与えると共に、縮小命令セットコンピュータ(RISC)又はCISCマシンの何れよりも低い全体システム複雑性を与える。従って、良好な性能のために複雑化されたコンパイラ又はキャシュ制御ハードウェアを要求することがない。また、競争力ある未加工の性能を達成すると共に、ほとんどのプログラミング環境において所与の価格で優れた性能を達成する。それらの最初に成功した応用分野は、リアルタイム埋込型制御環境においてであり、広範な利点によって他のシステムデザインアプローチを凌駕している。以前ではスタックはメモリ内にほとんど保持されていたが、新しいスタックマシンでは、スタック毎に別々のメモリチップ又はオンチップメモリのエリアにも保持されている。これらのスタックマシンは、きわめて高速のサブルーチンコール能力及び割り込みハンドリング及びタスク切替における優れた性能を提供する。 A stack machine provides lower processor complexity than a complex instruction set computer (CISC) and lower overall system complexity than either a reduced instruction set computer (RISC) or a CISC machine. Thus, there is no need for a complicated compiler or cache control hardware for good performance. It also achieves competitive raw performance, and excellent performance at a given price in most programming environments. Their first successful field of application is in real-time embedded control environments, surpassing other system design approaches with a wide range of advantages. In the past, stacks were mostly held in memory, but in new stack machines, each stack is held in a separate memory chip or on-chip memory area. These stack machines offer extremely fast subroutine call capabilities and excellent performance in interrupt handling and task switching.
しかし、オーバーフロー及びアンダーフローのスタックのハードウェア検出は何ら存在しなかった。スタックのオーバーフローは利用可能なレジスタに充分な数が無くスタック上へのプッシュ(push)が継続された場合に発生し、ボトム側レジスタ群が上書きされてしまうことになる。スタックのアンダーフローは全てのレジスタが空にされた場合に発生し、スタックの継続したポップ(pop)は、意図に沿わない又は不正確な結果をもたらす。他のスタックプロセッサでは、スタックポインタ及びメモリ管理を使用することよって、スタックポインタがスタックに割り当てられたメモリ範囲から逸脱したときに、エラー状態のフラグが立てられるようになっている。ザール(Zahir)氏及び他による特許文献1はレジスタスタックエンジンを開示し、これはメモリにレジスタスタックの充分なレジスタを提供し、スタックオーバーフロー事象においてより利用可能なレジスタを提供する。また、レジスタスタックエンジンは、スタックアンダーフローの場合に、そのエンジンが適当な数のレジスタを回復できる迄マイクロプロセッサを遅延させる。 However, there was no hardware detection of overflow and underflow stacks. A stack overflow occurs when there are not enough available registers and push on the stack continues, overwriting the bottom registers. Stack underflow occurs when all registers are emptied, and continued pops of the stack will lead to unintended or inaccurate results. Other stack processors use a stack pointer and memory management to flag an error condition when the stack pointer deviates from the memory range assigned to the stack. U.S. Pat. No. 6,057,097 to Zahir et al. Discloses a register stack engine that provides sufficient registers for the register stack in memory and provides more available registers in a stack overflow event. The register stack engine also delays the microprocessor in the event of a stack underflow until the engine can recover the appropriate number of registers.
ストーリ(Story)氏による特許文献2は、動作結果と閾値とを比較する方法を開示している。しかし、このアプローチは、閾値に丸められた場合の結果(これはオーバーフロー例外を生じる)と、閾値に丁度等しい場合の結果とを区別しない。ストーリ氏によって開示される他の方法は、ハードウェアフラグを読み書きすることでオーバーフロー又はアンダーフローの状態を識別する。
しかしながら、命令は順番に実行されなければならず、そしてレジスタのリード/ライトに引き続く命令はリード/ライト動作が完了される迄、次に進むことができなくなり、遅延動作を生ぜしめる。 However, the instructions must be executed in sequence, and the instruction following the register read / write cannot proceed to the next until the read / write operation is completed, causing a delay operation.
メモリ内のスタックでは、オーバーフロー又はアンダーフローがスタック項目を上書きするか、又はスタック部分であるとは意図されないスタック項目を使用してしまうこともあり得る。スタック内のオーバーフロー及びアンダーフローを低減又は除去する改良された方法への要請がある。 In a stack in memory, an overflow or underflow can overwrite a stack item or use a stack item that is not intended to be part of a stack. There is a need for an improved method of reducing or eliminating overflow and underflow in the stack.
本発明の目的は、デュアルスタックプロセッサのデータスタック及びリターンスタックがスタックポインタを用いてメモリ内でアクセスされる配列ではなく、代わりに別々の専用シフトレジスタによって固定配線アクセスされる装置及び方法を提供することである。 SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and method in which the data stack and return stack of a dual stack processor are not wired in an array that is accessed in memory using a stack pointer, but instead are fixed wire accessed by separate dedicated shift registers. That is.
本発明の他の目的は、データ又はリターンスタックのオーバーフロー及びアンダーフローを低減する若しくは除去することである。 Another object of the present invention is to reduce or eliminate overflow or underflow of the data or return stack.
本発明の他の目的は、双方向スタックレジスタの単一ビット(1ビット)スタックレジスタ間の電気的接続長を最小化することであり、これにより要求されるドライバサイズを最小化にすると共にバッファすることを最小化することである。 Another object of the present invention is to minimize the electrical connection length between single bit (1 bit) stack registers of a bidirectional stack register, thereby minimizing the required driver size and buffering. Minimizing what to do.
これら及び他の目的は本明細書に記載されている発明によって達成され、本発明においては、従来のスタックは、円環(循環的な)パターン状で反復して機能するレジスタ配列に代替される。この反復される円環パターンは、接続される双方向シフトレジスタの利用によって達成され、双方向シフトレジスタは1つおきパターン状に電気的に相互接続される複数の1ビットシフトレジスタを含む。この構成は、スタック外からリードされるのを防ぐと共に、意図されない空レジスタ値をリードするのを防止する。 These and other objects are achieved by the invention described herein, in which the conventional stack is replaced by a register array that functions repeatedly in a circular (circular) pattern. . This repeated circular pattern is achieved by the use of connected bidirectional shift registers, which include a plurality of 1-bit shift registers that are electrically interconnected in every other pattern. This configuration prevents reading from outside the stack and prevents reading an unintended empty register value.
上記したデュアルスタックプロセッサは、独立機能するプロセッサとして機能し得るし、又は幾つか他の同じ又は異なるプロセッサと共に相互接続化コンピュータ配列にて用いられ得る。 The dual stack processors described above can function as stand-alone processors or can be used in an interconnected computer arrangement with several other same or different processors.
本発明が図を参照して説明されるが、図において同じ符号は同じ要素を表すか又は類似した要素を表す。本発明が本発明の目的を達成する態様に関して説明される一方、本願にて請求される発明の思想及び範囲から逸脱することなく、本明細書における教示によって本発明が多様な形態にて実現され得ることは当業者によって認められる。 The present invention will be described with reference to the figures, wherein like reference numerals represent like or similar elements in the figures. While the invention will be described in connection with embodiments that achieve the objectives of the invention, the invention may be embodied in various forms without departing from the spirit and scope of the invention as claimed herein without departing from the spirit and scope of the invention as claimed herein. It will be appreciated by those skilled in the art.
本明細書において説明及び/又は図面に示されている本発明の実施例及び変形例は、例示のものであって本発明の範囲を制限するものでない。特に述べない限り、本発明の個々の態様及び要素は、本発明が多くの変形例に適応可能であると意図されることから、請求される発明の思想及び範囲内にある限り、省略されるか又は様々に改変され得る。 The embodiments and variations of the present invention described in this specification and / or shown in the drawings are illustrative and do not limit the scope of the present invention. Unless otherwise stated, individual aspects and elements of the invention are omitted as long as they are within the spirit and scope of the claimed invention, since the invention is intended to be amenable to many variations. Or various modifications.
図1は、本発明において用いられているデュアルスタックコンピュータ12の概略レイアウトを示しているブロック図である。コンピュータ12は、通常、自身のRAM24及びROM26を有する自己内蔵型のコンピュータである。
FIG. 1 is a block diagram showing a schematic layout of a
コンピュータ12の他の基本的なコンポーネントはリターンスタック28であり、これは、Rレジスタ29、命令エリア30、演算ロジックユニット(ALU又はプロセッサ)32と、データスタック34と、命令をデコードするためのデコードロジック部36とを含む。コンピュータ12は、データスタック34及び別のリターンスタック28を有するデュアルスタックコンピュータである。通常、当業者は本実施例のコンピュータ12の如きスタックベースのコンピュータの動作に精通している。
Another basic component of the
ここで記載される実施例において、命令エリア30は、この例ではAレジスタ40a、Bレジスタ40b及びPレジスタ40cを含む幾つかのレジスタ40を含む。この実施例では、Aレジスタ40aはフル18ビットレジスタであり、一方、Bレジスタ40b及びPレジスタ40cは9ビットレジスタである。
In the embodiment described herein, the
本発明はスタックコンピュータのプロセッサを開示し、そこではデータ及びリターンスタックは、周期的な反復すなわち円環パターン状にて機能するレジスタ配列を含む。データスタック及びリターンスタックは、従来技術の多くのコンピュータにおいてスタックポインタによってアクセスされるメモリ配列ではない。 The present invention discloses a stack computer processor, in which the data and return stacks include a register array that functions in a cyclic iteration or circular pattern. The data stack and return stack are not memory arrays accessed by the stack pointer in many prior art computers.
図2は、本発明による18ビットデータスタックの実施例を開示している。データスタック内のトップ側の2つのレジスタは、18ビットTレジスタ及び18ビットSレジスタである。データスタックの残りは、8つの付加的18ビットハードウェアレジスタを含み、この例ではS2〜S9と参照符号が付されている。円環状のレジスタS2〜S9は、T及びSレジスタが無い状態で動作することができる。しかし、レジスタS2〜S9と組み合わさった少なくともSレジスタの存在は、より速いアクセス回路とタイミング上の最適条件を提供し、従って円環状のレジスタ配列のより高動作速度を提供する。加えて、Sレジスタは、アドレス可能なレジスタS2〜S9とプロセッサシステムの残りの部分との間でバッファとして作用する。これは、レジスタS2〜S9とプロセッサシステムの残りの部分との間でタイミングの独立性を提供する。 FIG. 2 discloses an embodiment of an 18-bit data stack according to the present invention. The top two registers in the data stack are an 18-bit T register and an 18-bit S register. The rest of the data stack contains 8 additional 18-bit hardware registers, in this example labeled S2-S9. The circular registers S2 to S9 can operate without the T and S registers. However, the presence of at least the S register in combination with the registers S2-S9 provides faster access circuitry and optimal timing conditions, thus providing a higher operating speed of the annular register arrangement. In addition, the S register acts as a buffer between the addressable registers S2-S9 and the rest of the processor system. This provides timing independence between registers S2-S9 and the rest of the processor system.
この実施例は、また、複数の1ビットシフトレジスタを含む双方向シフトレジスタを含む。1ビットシフトレジスタの数はSレジスタの下に配置されたボトム側スタックレジスタS2〜S9の数に等しい。各1ビットシフトレジスタは、図2に示された対応するスタックレジスタS2〜S9に接続されている。1ビットシフトレジスタが1つおきパターン状に電気的に相互接続され、これによってスタックレジスタS2〜S9は、図2に示された如きS2→S4→S6→S8→S9→S7→S5→S3→S2によって与えられるシーケンシャルな円環状の相互接続パターンにて機能する。ボトム側スタックレジスタのこのシーケンシャルな選択が円環パターン状で反復して動作する。1ビットシフトレジスタの相互接続用配線は、隣接した3つ以上のシフトレジスタを越えて広がるとことはなく、ボトム側シフトレジスタをトップ側シフトレジスタに接続するのに長い配線の必要性を避けている。これらのより短い配線は、より小さいドライバを要求しバッファリングも最小化される。与えられる実施例は、円環状のレジスタ配列のための8つの付加的スタックレジスタを使用する。しかし、4の倍数単位で使用されるボトム側レジスタの他の組合せも用いられ得る。 This embodiment also includes a bidirectional shift register that includes a plurality of 1-bit shift registers. The number of 1-bit shift registers is equal to the number of bottom side stack registers S2 to S9 arranged below the S register. Each 1-bit shift register is connected to the corresponding stack register S2-S9 shown in FIG. Every other 1-bit shift register is electrically interconnected in a pattern, so that the stack registers S2 to S9 are connected as shown in FIG. 2 to S2, S4, S6, S8, S9, S7, S5, S3, It works with the sequential annular interconnect pattern given by S2. This sequential selection of the bottom stack register works repeatedly in an annular pattern. Interconnection wiring for a 1-bit shift register does not extend beyond three or more adjacent shift registers, avoiding the need for long wiring to connect the bottom shift register to the top shift register Yes. These shorter wires require smaller drivers and buffering is also minimized. The given example uses 8 additional stack registers for a circular register array. However, other combinations of bottom registers used in multiples of 4 can be used.
図2は、また、Tレジスタ及びSレジスタと同様に、レジスタS2〜S9を相互接続するリードバス及びライトバスを開示している。双方向シフトレジスタの各1ビットシフトレジスタは、S2〜S9配列内で対応するボトム側スタックレジスタに接続され、そこでは、シフトレジスタの1ビットのみが1つの時点でオンとなる一方、他の全てのビットはゼロとリードされる。電源投入時、シフトレジスタは初期化され、正確に1つのビットが1にセットされ且つ他のビットがゼロにセットされなければならない。所与の実施例において、シフトレジスタのトップ側ビットは、リードについてはレジスタS2を指示し、ライトについては相互接続された隣接したレジスタS4を図2における破線で示されるように指示する。1ビットシフトレジスタの残りのビットはレジスタS2〜S4のうちの対応するものに同様に接続されるが、不必要に図面を不明瞭にしないために他の配線は示されていない。 FIG. 2 also discloses a read bus and a write bus that interconnect the registers S2 to S9, as well as the T and S registers. Each one-bit shift register of the bi-directional shift register is connected to the corresponding bottom stack register in the S2-S9 array, where only one bit of the shift register is on at one time, while all other This bit is read as zero. At power up, the shift register is initialized and exactly one bit must be set to 1 and the other bit must be set to zero. In the given embodiment, the top bit of the shift register points to register S2 for reads and to the adjacent adjacent register S4 for writes as shown by the dashed line in FIG. The remaining bits of the 1-bit shift register are similarly connected to corresponding ones of registers S2-S4, but other wiring is not shown to avoid unnecessarily obscuring the drawing.
セル深度10のプッシュ下降スタックがレジスタT、S及びS2〜S9によって形成される。8つのボトム側レジスタが円環状のバッファを成すことから、そのハードウェアはオーバーフローするか又はアンダーフローするよりは、むしろ折り返し(wrap)するものである。10項目以上をプットし、次いでそれらを全て戻すことを期待してはいけないが、そのスタックのボトム側から得られた最後の8つの項目のコピーを永遠に取り続けることができる。エラーではないという意味でアンダーフローは何ら存在しない。プログラムがスタックから値をとり続ける場合にはボトム側の8つに何度もリードが行われることから、8つ(又は4又は2又は1)のワードのパターンを複製するのが最も速い方法である。
A push down stack with a cell depth of 10 is formed by resistors T, S and S2-S9. Since the eight bottom registers form a circular buffer, the hardware wraps rather than overflows or underflows. Don't expect to put more than 10 items and then return them all, but you can keep taking a copy of the last 8 items from the bottom of the stack forever. There is no underflow in the sense that it is not an error. If the program continues to take values from the stack, the
同様に、スタックポインタはスタックが他に進むことを可能としているという意味で、何らスタックオーバーフローは存在しない。スタックは有限であって10項目以上がそこにプットされる場合、最後の10だけが残り、最初の10の後に記憶されたものはレジスタS2〜S9のうちの1つを上書きしている。スタックをプリセット位置に「初期化する」する必要はなく、ただスタックのどこからでもスタックの使用を開始することでスタックが空であると宣言すればよい。 Similarly, there is no stack overflow in the sense that the stack pointer allows the stack to go elsewhere. If the stack is finite and more than 10 items are put there, only the last 10 remains, and what is stored after the first 10 overwrites one of the registers S2-S9. There is no need to "initialize" the stack to a preset location, just declare the stack empty by starting to use it from anywhere in the stack.
図3は、データ又はリターンスタック内の各レジスタの拡大図である。各18ビットレジスタは0〜17と番号が付与された18個のラッチを含む。1組で18個の入力パスゲート(0〜17と番号付け)があって、それら各々は18個のラッチのうちの対応する1つをライトバスに選択的に接続する。1組で18個の出力パスゲート(0〜17と番号付け)があって、それら各々は18個のラッチのうちの対応する1つをリードバスに選択的に接続する。入力パスゲートは,入力制御ライン(図2のライトライン)に接続された反転アンプを介して入力制御ライン上でアサートされるライト制御信号によって制御され、出力パスゲートは、出力制御線(図2のリードライン)に接続された反転アンプを介して出力制御ライン上でアサートされるリード制御信号によって制御される。 FIG. 3 is an enlarged view of each register in the data or return stack. Each 18-bit register includes 18 latches numbered 0-17. There is a set of 18 input pass gates (numbered 0-17), each selectively connecting a corresponding one of the 18 latches to the write bus. There is a set of 18 output pass gates (numbered 0-17), each selectively connecting a corresponding one of the 18 latches to the read bus. The input pass gate is controlled by a write control signal asserted on the input control line via an inverting amplifier connected to the input control line (write line in FIG. 2), and the output pass gate is controlled by the output control line (read in FIG. 2). Controlled by a read control signal asserted on the output control line via an inverting amplifier connected to the line).
図4は、本発明の18ビットのリターンスタックを開示している。リターンスタックのトップ側レジスタは、18ビットのRレジスタであり、8つの付加的18ビットハードウェアレジスタがRレジスタの下に配置され、ここではR1〜R8と番号付けされている。ボトム側の8つのレジスタR1〜R8は、上記されたデータスタックと同様に、反復する円環状配列として1つおきパターン状に機能する。 FIG. 4 discloses the 18-bit return stack of the present invention. The top register of the return stack is an 18-bit R register, and eight additional 18-bit hardware registers are located below the R register, here numbered R1-R8. The eight registers R1 to R8 on the bottom side function in a pattern of every other pattern as a repeating annular array, similar to the data stack described above.
円環状のレジスタ配列R1〜R8はRレジスタが無い状態で動作することができる。しかし、レジスタR1〜R8と組み合わさったRレジスタの存在はより高速なアクセス回路とタイミング上の最適条件を提供し、よって円環状レジスタ配列のより高速動作を提供する。加えて、Rレジスタは、アドレス可能レジスタR1〜R8とプロセッサシステムの残りの部分との間のバッファとして働き、アドレス可能レジスタR1〜R8とプロセッサシステムの残りの部分との間のタイミング上の独立性を提供する。 The annular register arrays R1 to R8 can operate without an R register. However, the presence of the R register in combination with the registers R1-R8 provides faster access circuitry and optimal timing conditions, thus providing faster operation of the annular register arrangement. In addition, the R register acts as a buffer between addressable registers R1-R8 and the rest of the processor system, and timing independence between addressable registers R1-R8 and the rest of the processor system. I will provide a.
この実施例は、また、複数の1ビットシフトレジスタを含む双方向シフトレジスタを含む。1ビットシフトレジスタの数は、Rレジスタの下に配置される付加的なボトム側レジスタR1〜R8の数に等しい。各1ビットシフトレジスタは、図4で示されるボトム側スタックレジスタR1〜R8のうちの対応するレジスタに接続されている。双方向シフトレジスタの1ビットシフトレジスタは、1つおきパターン状に電気的に相互接続されていることで、スタックのレジスタR1〜R8は、図4に示される如きR1→R3→R5→R7→R8→R6→R4→R2→R1によって与えられるシーケンシャルな円環状の相互接続パターンにて機能する。このシーケンシャルなレジスタ選択は円環パターン状で反復して動作する。シフトレジスタの相互接続配線は、隣接した3つ以上の1ビットシフトレジスタを越えて広がるとことはなく、ボトム側1ビットシフトレジスタをトップ側1ビットシフトレジスタに接続するのに長い配線の必要性を避けている。これらのより短い配線は、より小さいドライバを要求し、バッファリングも最小化される。所与の実施例において、8つの付加的なリターンレジスタが開示されたが、4の倍数個の他のボトム側レジスタの組合せが円環状のレジスタ配列において使用され得る。リードバス及びライトバスはレジスタR1〜R8を相互接続する。シフトレジスタの各1ビットレジスタは、R1〜R8配列内で対応するスタックレジスタに接続されている。シフトレジスタのうちの1ビットだけが1時点でオン(1としてリード)する一方、全ての他の全てのビットはゼロとして読まれる。電源投入時、シフトレジスタは正確に1ビットが1を含み、他の全てのビットがゼロを含むように初期化されなければならない。所与の実施例において、シフトレジスタのトップ側ビットがレジスタR1を指示し、すなわちR1をリードすることを指示し且つ相互接続された隣接レジスタR3にライトすることを指示している。 This embodiment also includes a bidirectional shift register that includes a plurality of 1-bit shift registers. The number of 1-bit shift registers is equal to the number of additional bottom registers R1-R8 located below the R register. Each 1-bit shift register is connected to a corresponding one of the bottom-side stack registers R1 to R8 shown in FIG. The 1-bit shift registers of the bidirectional shift register are electrically interconnected in a pattern of every other, so that the registers R1 to R8 of the stack are R1 → R3 → R5 → R7 → as shown in FIG. It works with a sequential annular interconnection pattern given by R8 → R6 → R4 → R2 → R1. This sequential register selection operates repeatedly in an annular pattern. Shift register interconnect wiring does not extend beyond three or more adjacent 1-bit shift registers, and the need for long wiring to connect the bottom 1-bit shift register to the top 1-bit shift register Avoid. These shorter wires require smaller drivers and buffering is also minimized. In the given embodiment, eight additional return registers have been disclosed, but multiple combinations of other bottom multiples of four can be used in an annular register arrangement. The read bus and the write bus interconnect the registers R1 to R8. Each 1-bit register of the shift register is connected to a corresponding stack register in the R1-R8 array. Only one bit of the shift register is on (read as 1) at a time, while all other bits are read as zero. At power up, the shift register must be initialized so that exactly one bit contains a 1 and all other bits contain a zero. In the given embodiment, the top bit of the shift register points to register R1, i.e., reads R1 and writes to the interconnected adjacent register R3.
本発明において、スタックオーバーフロー又はアンダーフロー状態に対するハードウェア検知は存在しない。通常、従来技術のプロセッサはスタックポインタ及びメモリ管理等を使用し、これによってスタックポインタがスタックに割り当てられたメモリ領域外に行ったときに、エラー状態にフラグを立てる。スタックがメモリ内に置かれて管理される場合では、オーバーフロー又はアンダーフローはスタック項目を上書きするか、又は意図される以外を使用する。しかし、本発明のボトム側レジスタは、円環状配列にて機能するので、スタックはスタックエリアからオーバーフロー又はアンダーフローすることはあり得ない。代わりに、円環状配列は単にレジスタ配列まわりに折り返すだけである。スタックが有限の深度を有するので、スタックのトップ側へのプッシュはボトム側で上書がなされることを意味する。所与の実施例において、データスタックに対する10項目以上のプッシュ動作、又はリターンスタックに対する9項目以上のプッシュ動作は、かかる動作が当該スタックのボトム側で項目が上書きされる結果をもたらすという知見を持ってなければならない。 In the present invention, there is no hardware detection for stack overflow or underflow conditions. Typically, prior art processors use a stack pointer and memory management, etc., to flag an error condition when the stack pointer goes outside the memory area assigned to the stack. In the case where the stack is managed in memory, an overflow or underflow will overwrite the stack item or use something other than intended. However, since the bottom register of the present invention functions in an annular arrangement, the stack cannot overflow or underflow from the stack area. Instead, the toric array simply wraps around the register array. Since the stack has a finite depth, pushing to the top side of the stack means that it is overwritten on the bottom side. In a given embodiment, a push operation of 10 items or more on the data stack or a push operation of 9 items or more on the return stack has the knowledge that such an operation results in an item being overwritten on the bottom side of the stack. Must be.
スタック上の項目数を追跡し続けることはソフトウェアの責任であり、各スタックが保持することのできる以上の項目をプッシュしようとしてはならない。ハードウェアは、スタックのボトム側の項目上書きを検出しないし、エラーとしてフラグを立てることもしない。スタックのボトム側での円環状配列の利点をソフトウェアが幾つかの手法で得ることができる点が留意されるべきである。1つの実施例として、ソフトウェアはスタックが何時でも「空である」であると単に仮定することができる。古い項目がボトム側に向けてプッシュダウンされ、スタックが満ちるにつれてボトム側で消失されることから、古い項目をスタックからクリアする必要がなく、それ故プログラムは初期化をすることなくスタックが空であると仮定することができる。 It is the software's responsibility to keep track of the number of items on the stack and do not try to push more items than each stack can hold. The hardware does not detect item overwrites at the bottom of the stack, nor does it flag as an error. It should be noted that the software can obtain the benefits of an annular arrangement at the bottom of the stack in several ways. As one example, the software can simply assume that the stack is “empty” at any time. Since old items are pushed down towards the bottom and disappear at the bottom as the stack fills, there is no need to clear old items from the stack, so the program is empty without initialization. It can be assumed that there is.
用いられ得る他の利点は、再利用のためには項目をリロードしなければならないという制約が無く、レジスタ項目を再利用することである。これらのスタック内のボトム側8つの項目は、スタック折り返しの利点を得るループ状にてリード又はライトされ得る。2つのデータスタックリードの後、レジスタT及びSは、下の8つのスタックレジスタの円環状配列からの2項目のコピーを有する。さらに8つ以上のリードの後、レジスタT及びSは、スタック折り返しを用いて下から再びリードされた同一値でリロードされる。これら8つの項目がシーケンス上でスタック外に何回リードされ得るかについて何ら制限はなく、この場合、項目を複製しなければならない制約、又はそれらをスタックにライトし直さなければならない制約がない。データ又はリターンスタック上の8つ、4つ又は2つのセルにて反復され得る1組のパラメータにわたるサイクルのアルゴリズムは、ボトム側レジスタがまさに折り返し、そしてスタックエラーが意図されない場合に、それらを反復してスタックからリードすることができる。 Another advantage that can be used is that register items are reused without the restriction that the item must be reloaded for reuse. The bottom eight items in these stacks can be read or written in a loop that takes advantage of stack wrapping. After two data stack reads, registers T and S have two entries from the toric array of the bottom eight stack registers. After 8 more reads, registers T and S are reloaded with the same value read again from below using stack wrap. There is no limit as to how many times these eight items can be read out of the stack on the sequence, in which case there are no constraints that must be duplicated or that they must be rewritten to the stack. A cycle algorithm over a set of parameters that can be repeated on 8, 4 or 2 cells on the data or return stack will iterate over if the bottom register is just wrapping and a stack error is not intended. Can be read from the stack.
本発明が、デュアルスタック18−ビットプロセッサのデータスタック及びリターンスタックのための実施例において記載されていたが、他のビットサイズプロセッサが本発明によって用いられてもよい。 Although the present invention has been described in the embodiment for the data stack and return stack of a dual stack 18-bit processor, other bit size processors may be used by the present invention.
上記した円環状のレジスタ配列は、単一のデュアルスタックプロセッサに関して記載された。しかし、上記した円環状のレジスタ配列を含むスタックプロセッサにおける複数回の繰り返しは、図5に示されるコンピュータ配列10の如き自己内蔵型コンピュータの配列において用いられ得る。コンピュータ配列10は、複数(例示では24個)のコンピュータ12(配列の例では、しばしば「コア」又は「ノード」とも称される)を有する。示される実施例において、コンピュータ12の全ては単一のダイ14に配置される。本発明の1つの実施例によれば、コンピュータ12の各々は通常独立して機能するコンピュータである。コンピュータ12は、複数の相互接続データバス16によって相互接続される。他の相互接続手段がその目的のために使用されてもよいことは本発明の範囲内であるが、この実施例においてデータバス16は双方向、非同期及び高速パラレルデータバスである。
The annular register arrangement described above has been described for a single dual stack processor. However, multiple iterations in a stack processor including an annular register arrangement as described above can be used in a self-contained computer arrangement such as the
コンピュータ12eは、配列10のコンピュータ12のうちの周辺上ではない1台の例である。すなわち、コンピュータ12eは直角に隣接した4台のコンピュータ12a、12b、12c及び12dを備えている。コンピュータ12a〜12eのこのグループ化が、配列10の複数のコンピュータ12間の通信のより詳細な議論に関連して例として用いられる。図5から分かるように、コンピュータ12eの如き内部のコンピュータは、バス16を介して直接通信をなし得る4台の他のコンピュータ12を備える。引き続く議論において、議論される原理はコンピュータ12の全てに適用されるが、これは、配列10の周辺上のコンピュータ12は他の3台のみと直接通信下にあり、又は角のコンピュータ12はコンピュータ12の他の2台のみと直接通信下にあることで除外される。
Computer 12e is an example of one that is not on the periphery of
図6は、図5の1部分をより詳細化し、コンピュータ12の幾つかのみを示し、特に、コンピュータ12a〜12eが含まれている。図6の図も、データバス16の各々が、リードライン18と、ライトライン20と、複数(この例では18個)のデータライン22とを備えることを明らかにしている。データライン22は、1つの18ビットの命令ワードの全てのビットを通常パラレルにて同時に転送する能力を有する。
FIG. 6 further refines a portion of FIG. 5 and shows only some of the
本発明の方法によれば、コンピュータ12eの如きコンピュータ12は、そのリードラインの1つ、2つ又は3つ又は4つの全てをハイにセットできることによって、隣接するコンピュータ12からデータを受け取る準備がなされる。同様に、コンピュータ12はそのライトライン20のうちの1つ、2つ、3つ又は4つの全てをハイにセットすることもできる。
In accordance with the method of the present invention, a
隣接コンピュータ12a、12b、12c又は12dの1台がそれ自体とコンピュータ12eとの間のライトライン20をハイにセットしたとき、もしコンピュータ12eが既に対応するリードライン18をハイにセットしていた場合には、ワードが当該コンピュータ12a、12b、12c又は12dからコンピュータ12eまで専用のデータライン22上で転送される。次いで、送信側のコンピュータ12はライトライン20を開放し、受信側のコンピュータ(この例では12e)は、ライトライン20及びリードライン18をロウにプル操作(pull)する。後の動作は、送信側のコンピュータ12にデータが受信されたことを確認通知する。
When one of adjacent computers 12a, 12b, 12c or 12d sets the
図1に示されるように、本発明のこの実施例において、コンピュータ12は上記の如く隣接コンピュータ12と通信する4つの通信ポート38を有する。通信ポート38は、オフステータスと、(コンピュータ12への駆動信号のための)受信ステータスと、(コンピュータ12外への駆動信号のための)送信ステータスとを有する3ステータスドライバである。コンピュータ12eの例の如く特定のコンピュータ12が配列(図5)内部に無い場合、通信ポート38のうちの1つ以上は少なくとも上記目的のためには当該特定のコンピュータにおいて使用されない。しかし、ダイのエッジに当接する通信ポート38は、コンピュータ12の内蔵用又は専用の外付用に設計された付加的な回路を有することができ、通信ポート38をして外部FOポート39(図5)として動作せしめる。かかる外部I/Oポート39の例は、制限するものではないが、USB(汎用シリアルバス)ポート、RS232シリアルバスポート、パラレル通信ポート、アナログからデジタルへ及び/又はデジタルからアナログへの変換ポート、及び多くの他の可能なバリエーションを含む。図5において、「エッジ」コンピュータ12fとは、外部装置82を備える外部I/Oポート39を通して通信する専用インタフェース回路80を備えて表わされる。
As shown in FIG. 1, in this embodiment of the invention,
多様な変形が本発明に対してその価値及び範囲を変えることのなくなされてもよい。例えば、本発明がここで特定のコンピュータ12を用いるものとして説明されているが、本発明の態様多く又は全てが他のコンピュータ設計又は他のコンピュータ配列等に容易に適応され得る。
Various modifications may be made to the invention without changing its value and scope. For example, although the present invention has been described herein as using a
本発明の態様が、ここでは主に単一ダイ14上の配列10内の複数コンピュータ12間の通信に関連して開示されたが、同一の原則及び方法が用いられ、又は使用毎に変形されて、コンピュータ12とその専用メモリとの間の通信又は配列10内のコンピュータ12と外部装置との間の通信の如き他の装置間通信を達成することができる。
Although aspects of the present invention have been disclosed herein primarily in the context of communication between
同様に、本発明は、ここではデュアルスタックプロセッサについて開示されたが、本発明はまた単一のスタックプロセッサ又は2つ以上のスタックを含むプロセッサについて実施され得る。 Similarly, although the invention has been disclosed herein for a dual stack processor, the invention can also be implemented for a single stack processor or a processor including two or more stacks.
上記の全ては本発明の利用可能な例の幾つかでしかない。当業者は容易にその多数の他の変形態様を知り得るものであり、かかる変形は本発明の思想及び範囲から逸脱することなくなされてもよい。従って、ここでの開示は制限するものとしては意図されず、添付の請求の範囲は本発明の全ての範囲を包囲するように解釈されるべきものである。 All of the above are only some of the available examples of the present invention. Those skilled in the art will readily recognize many other variations thereof, and such variations may be made without departing from the spirit and scope of the present invention. Accordingly, the disclosure herein is not intended to be limiting and the appended claims should be construed to encompass the full scope of the invention.
Claims (42)
データ及びコードを記憶するメモリと、
前記データ及び前記コードを処理するプロセッサと、
前記プロセッサによってスタックとして使用可能な複数の固定配線のレジスタと
を備えることを特徴とするコンピュータ。 A stack computer,
A memory for storing data and codes;
A processor for processing the data and the code;
And a plurality of fixed-wiring registers that can be used as a stack by the processor.
前記複数のレジスタが前記逆順にてアクセスされる場合には、前記レジスタのうちの最初のレジスタがアクセスされた後に、前記レジスタのうちの最終のレジスタがアクセスされることを特徴とする、請求項2に記載のコンピュータ。 If the plurality of registers are accessed in the normal order, after the last register of the registers is accessed in the sequence, the first register of the registers is accessed in the sequence;
The last register of the registers is accessed after the first register of the registers is accessed when the plurality of registers are accessed in the reverse order. The computer according to 2.
少なくとも1つのデータレジスタを有するデータスタックと、
少なくとも1つのリターンレジスタを有するリターンスタックと、
を備え、前記データスタック及び前記リターンスタックは18ビット命令ワードを収容し得ることを特徴とするプロセッサ。 A stack computer processor,
A data stack having at least one data register;
A return stack having at least one return register;
And the data stack and the return stack can accommodate an 18-bit instruction word.
複数の命令ワードを前記プロセッサ内の対応する複数命令セルに入力する入力ステップと、
前記複数の命令ワードを処理する処理ステップとを含み、
前記入力ステップ及び処理ステップの結果として、命令のオーバーフロー又はアンダーフローがないことを特徴とする方法。 A method of operating a computer processor, comprising:
An input step of inputting a plurality of instruction words into a corresponding plurality of instruction cells in the processor;
Processing steps for processing the plurality of instruction words,
A method wherein there is no instruction overflow or underflow as a result of the input step and the processing step.
レジスタ配列と、
シフトレジスタと、
を備え、前記シフトレジスタは、電気配線によって相互接続されている複数の1ビットシフトレジスタを有し、前記複数の1ビットシフトレジスタの数は、前記レジスタ配列におけるレジスタの数に等しいことを特徴とするプロセッサ。 A computer processor,
A register array;
A shift register;
The shift register has a plurality of 1-bit shift registers interconnected by electrical wiring, and the number of the plurality of 1-bit shift registers is equal to the number of registers in the register array. Processor.
レジスタ配列と、
前記レジスタ配列に固定配線された双方向シフトレジスタと、
を含み、
電気配線によって相互接続された複数の1ビットシフトレジスタをさらに含み、前記複数の1ビットシフトレジスタの数は、前記レジスタ配列におけるレジスタの数に等しいことを特徴とするプロセッサ。 A computer processor,
A register array;
A bidirectional shift register fixedly wired to the register arrangement;
Including
The processor further comprising a plurality of 1-bit shift registers interconnected by electrical wiring, wherein the number of the 1-bit shift registers is equal to the number of registers in the register array.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/441,818 US7934075B2 (en) | 2006-02-16 | 2006-05-26 | Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array |
US11/441,784 US7752422B2 (en) | 2006-02-16 | 2006-05-26 | Execution of instructions directly from input source |
US11/441,812 US7913069B2 (en) | 2006-02-16 | 2006-05-26 | Processor and method for executing a program loop within an instruction word |
US81808406P | 2006-06-30 | 2006-06-30 | |
US11/503,372 US7617383B2 (en) | 2006-02-16 | 2006-08-11 | Circular register arrays of a computer |
PCT/US2007/012539 WO2007139964A2 (en) | 2006-05-26 | 2007-05-25 | Circular register arrays of a computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009538488A true JP2009538488A (en) | 2009-11-05 |
JP2009538488A5 JP2009538488A5 (en) | 2010-07-15 |
Family
ID=38779252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009513215A Pending JP2009538488A (en) | 2006-05-26 | 2007-05-25 | Computer circular register array |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2009538488A (en) |
KR (1) | KR20090019806A (en) |
WO (1) | WO2007139964A2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101831420B1 (en) | 2015-07-09 | 2018-02-23 | 국민대학교산학협력단 | combination generating system for emotional-lighting color connected with playing sound source, method for the same, and computer-readable recording medium for the same |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60217438A (en) * | 1984-03-02 | 1985-10-31 | テキサス インスツルメンツ インコ−ポレイテツド | Data processing apparatus and method |
JPS63161584A (en) * | 1986-12-24 | 1988-07-05 | Mitsubishi Electric Corp | Semiconductor integrated circuit device |
JPS63168748A (en) * | 1987-01-07 | 1988-07-12 | Matsushita Electric Ind Co Ltd | Address control circuit |
US4821299A (en) * | 1986-02-18 | 1989-04-11 | Matsushita Electronics Corporation | Semiconductor integrated circuit device including shift register having substantially equalized wiring between stages thereof |
JPH01269293A (en) * | 1987-04-10 | 1989-10-26 | Tandem Comput Inc | Stack with single encoded stack point |
JP2003006040A (en) * | 2001-05-04 | 2003-01-10 | Systemonic Ag | Method and arrangement in one stack having one memory segmented into data groups having a plurality of elements |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449709B1 (en) * | 1998-06-02 | 2002-09-10 | Adaptec, Inc. | Fast stack save and restore system and method |
US6725361B1 (en) * | 2000-06-16 | 2004-04-20 | Transmeta Corporation | Method and apparatus for emulating a floating point stack in a translation process |
-
2007
- 2007-05-25 KR KR1020087028864A patent/KR20090019806A/en not_active Application Discontinuation
- 2007-05-25 JP JP2009513215A patent/JP2009538488A/en active Pending
- 2007-05-25 WO PCT/US2007/012539 patent/WO2007139964A2/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60217438A (en) * | 1984-03-02 | 1985-10-31 | テキサス インスツルメンツ インコ−ポレイテツド | Data processing apparatus and method |
US4821299A (en) * | 1986-02-18 | 1989-04-11 | Matsushita Electronics Corporation | Semiconductor integrated circuit device including shift register having substantially equalized wiring between stages thereof |
JPS63161584A (en) * | 1986-12-24 | 1988-07-05 | Mitsubishi Electric Corp | Semiconductor integrated circuit device |
JPS63168748A (en) * | 1987-01-07 | 1988-07-12 | Matsushita Electric Ind Co Ltd | Address control circuit |
JPH01269293A (en) * | 1987-04-10 | 1989-10-26 | Tandem Comput Inc | Stack with single encoded stack point |
JP2003006040A (en) * | 2001-05-04 | 2003-01-10 | Systemonic Ag | Method and arrangement in one stack having one memory segmented into data groups having a plurality of elements |
Non-Patent Citations (1)
Title |
---|
JPN6012033791; 中村浄重 外3名: 'VLIWハードウェアスタックプロセッサ' 情報処理学会研究報告. 計算機アーキテクチャ研究会報告 第95巻,第80号, 19950823, p.9-16, 一般社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
WO2007139964A3 (en) | 2009-01-15 |
WO2007139964A2 (en) | 2007-12-06 |
KR20090019806A (en) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7617383B2 (en) | Circular register arrays of a computer | |
CN110990060B (en) | Embedded processor, instruction set and data processing method of storage and computation integrated chip | |
US20060143428A1 (en) | Semiconductor signal processing device | |
CN111063379B (en) | Memory device and method of operating the same for reading a paged media stream | |
CN110825464A (en) | Method and apparatus for providing data received by a state machine engine | |
WO1992002018A1 (en) | Routing independent circuit components | |
WO1994022090A1 (en) | Intelligent memory architecture | |
US20100023730A1 (en) | Circular Register Arrays of a Computer | |
JPS6044699B2 (en) | Special address generator | |
TWI534615B (en) | Serial peripheral interface (spi) controller, serial peripheral interface flash memory and access method and access control method thereof | |
US20170371811A1 (en) | Systems and devices for accessing a state machine | |
WO2003044652A2 (en) | High-speed first-in-first-out buffer | |
JPH0155499B2 (en) | ||
KR20110128787A (en) | Microcontroller with linear memory in a banked memory | |
US20190354380A1 (en) | Systems and devices for accessing a state machine | |
US5317750A (en) | Microcontroller peripheral expansion bus for access to internal special function registers | |
JP2009538488A (en) | Computer circular register array | |
US6230238B1 (en) | Method and apparatus for accessing misaligned data from memory in an efficient manner | |
EP3859535B1 (en) | Streaming access memory device, system and method | |
US5515506A (en) | Encoding and decoding of dual-ported RAM parity using one shared parity tree and within one clock cycle | |
US5001629A (en) | Central processing unit with improved stack register operation | |
EP0020972B1 (en) | Program controlled microprocessing apparatus | |
KR100517765B1 (en) | Cache memory and control method thereof | |
JPH0721103A (en) | Data transfer device | |
EP1821198A1 (en) | Circular register arrays of a computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100525 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120629 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121122 |