JP2002149482A - 線形メモリ配列中の分割両方向スタック - Google Patents

線形メモリ配列中の分割両方向スタック

Info

Publication number
JP2002149482A
JP2002149482A JP2001286096A JP2001286096A JP2002149482A JP 2002149482 A JP2002149482 A JP 2002149482A JP 2001286096 A JP2001286096 A JP 2001286096A JP 2001286096 A JP2001286096 A JP 2001286096A JP 2002149482 A JP2002149482 A JP 2002149482A
Authority
JP
Japan
Prior art keywords
stack
storage area
data elements
size
section
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.)
Granted
Application number
JP2001286096A
Other languages
English (en)
Other versions
JP3564090B2 (ja
Inventor
Robert Farago Steven
スティーヴン・ロバート・ファラーゴ
Lee Wright Kenneth
ケネス・リー・ライト
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002149482A publication Critical patent/JP2002149482A/ja
Application granted granted Critical
Publication of JP3564090B2 publication Critical patent/JP3564090B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 データ要素の記憶を管理するための方法、シ
ステム、および装置において、第1の端および第2の端
を有する記憶域をデータ要素記憶用に提供すること。 【解決手段】 この記憶域中では、データ要素の第1の
スタックが、記憶域の第1の端および第2の端にそれぞ
れ向いた第1の端および第2の端を有し、第2のスタッ
クが、第1のスタックの両端に近接して位置するデータ
要素を有する。すなわち、第2のスタックは分割されて
おり、第1のスタックは第2のスタックのデータ要素間
に介在している。同様に、第3や第4のスタック等があ
ってもよく、これらも複数の部分に分割される。データ
要素の連続した1つ1つがそれぞれのスタックに記憶さ
れるのに応答して、スタックのサイズは、記憶域の第1
の端と記憶域の第2の端の両方に向かって大きくなる。
さらに、分割されたスタックのうちの1つのサイズが大
きくなることには、第1のスタックから離れる方向に大
きくなること、あるいは、第1のスタックに向かって大
きくなることを含めることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、改良型のデ
ータ処理システムに関し、より詳細には、メモリ配列内
における改良型の先入れ後出しデータ構造に関する。
【0002】
【従来の技術】関連出願の相互参照本出願は、本出願と
同一の出願人に譲渡され同日に出願される、以下の出願
に関するものであり、ここにこれらを参照により本明細
書に組み込む。 整理番号AUS9−2000−0436−US1 整理番号AUS9−2000−0491−US1
【0003】スタックまたは先入れ後出し(FILO)
データ構造は、多くのコンピュータ・アプリケーション
で用いられている。しばしば、単一のアプリケーション
中に複数のスタックが必要であり、これらは必要に応じ
て追加される。というのは、アプリケーションの開始時
点では、スタックがいくつ必要になるか分からないから
である。コンピュータ・システム中のメモリは線形配列
に構成されているので、アプリケーションは、複数のス
タックを配置するのに使用することになる、この線形配
列のいくつかのセグメントを有する。従来、スタックが
実装される方式は、ベース・ポインタおよびヘッド・ポ
インタを用いる方式である。
【0004】通常の場合では、2つのスタックが、メモ
リ配列の向かい合う端に配置される。一方のスタックは
右に増大し、他方のスタックは左に増大する。各スタッ
クは増大して、ついには反対方向からくるスタックに当
たる恐れがある(衝突と呼ばれる)。
【0005】2つのスタックが配列の向かい合う端から
相互に増大する構成は、両方のスタックが同じレートで
増大する場合には有効である。すなわち、メモリ配列中
のすべてのメモリが、衝突の前に消費されることにな
る。しかし、第3のスタックが必要な場合には問題が生
じる可能性がある。3つのスタックすべてが同じレート
で増大し、第3のスタックが一方向にしか増大せず、こ
の第3のスタックが最初の2つのスタックの真ん中に配
置されている場合、第3のスタックは、他の2つのスタ
ックの一方がその空間すべてを使い終わる前に、他の2
つのスタックの他方と衝突する傾向がある。この問題を
予期しようとして、第3のスタックを中央からずらした
位置にすることもできるが、3つのスタックが同じレー
トで増大しない場合、選択した第3のスタックのオフセ
ット位置は、助けとはならない可能性があり、問題を悪
化させる可能性さえある。
【0006】
【発明が解決しようとする課題】関連出願のうちの一方
では、1つまたは複数の両方向増大スタックによってこ
れらの問題に対処している。両方向増大スタックは、空
間の割振りを含めた、線形メモリ配列中の空間の管理に
おいて生じる問題に対処するのに有用である。しかし、
これらの問題の態様に別の形で関係する他の特徴であっ
て、いくつかの状況ではより大きな適合性さえもたらす
ことのできる他の特徴を有する、メモリを管理するため
の方法および装置が必要とされている。
【0007】
【課題を解決するための手段】本発明は、データ要素の
記憶を管理するための方法、システム、および装置にお
けるこうした必要性に対処するものである。第1の端お
よび第2の端を有する記憶域が、データ要素記憶用に提
供される。この記憶域中では、データ要素の第1のスタ
ックが、記憶域の第1の端および第2の端にそれぞれ向
いた第1の端および第2の端を有し、データ要素の第2
のスタックが、第1のスタックの両端に近接して位置す
るデータ要素を有する。すなわち、第2のスタックは分
割されており、第1のスタックは第2のスタックのデー
タ要素間に介在している。同様に、第3や第4のスタッ
ク等があってもよく、これらも複数の部分に分割され
る。データ要素の連続した1つ1つがそれぞれのスタッ
クに記憶されるのに応答して、スタックのサイズは、記
憶域の第1の端と記憶域の第2の端の両方に向かって大
きくなる。さらに、分割されたスタックのうちの1つの
サイズが大きくなることには、第1のスタックから離れ
る方向に大きくなること、あるいは、第1のスタックに
向かって大きくなることを含めることができる。
【0008】別の態様では、記憶域は、相互に排他的な
4つのセクションを有する。第1のセクション(セクシ
ョンのうちの「端部」セクション)は、記憶域の一方の
端に近接した端を有する。第2のセクション(セクショ
ンのうちのもう1つの「端部」セクション)は、記憶域
の第2の端に近接した端を有する。第3のセクション
(「中間」セクション)は、第1のセクションと第2の
セクションの間に位置する。第4のセクション(もう1
つの「中間」セクション)もまた、第1のセクションと
第2のセクションの間に位置する。第1のスタックは、
2つの中間セクションに限定され、第2のスタックは、
2つの端部セクションに限定される。
【0009】別の態様では、分割された第3のスタック
は、2つの中間セクションに限定される。
【0010】第2や第3のスタックなどのスタックが、
記憶域の第1の端と第2の端の両方に向かって大きいサ
イズになる態様に関し、一実施形態では、第2のスタッ
クが第1のスタックから離れる方向に大きくなり、第3
のスタックが第1のスタックに向かって大きくなる。別
法としては、第2のスタックが第1のスタックに向かっ
て大きくなり、第3のスタックが第1のスタックから離
れる方向に大きくなる。
【0011】関連出願のうちの一方に記述されているよ
うに、両方向増大スタックの利点の1つは、ある状況下
およびある制限内では、奇数の両方向スタックにより、
奇数の単一方向スタックによる場合よりも効率的に記憶
域が使用されることである。本発明の利点の1つは、記
憶域の中央部に位置する第1の両方向スタックを有し、
2つの部分に分割された第2の両方向スタックを第1の
スタックのどちら側にも1つずつ有することにより、あ
る状況下およびある制限内では記憶域中の空間がより効
率的に使用されることである。
【0012】
【発明の実施の形態】本明細書では、用語「配列」は、
離散的な記憶要素を有する、限られたサイズのメモリ記
憶空間(メモリ記憶域とも呼ばれる)を指す。本質的
に、配列の記憶要素は、相互に対しそれぞれの位置を有
する。用語「線形配列」は、配列中の記憶要素の位置が
線形方式で定義される記憶域を指す。すなわち、配列の
要素は、単一のファイル・ライン中にスタックアップさ
れると考えることができる。したがって、各要素は、
「ライン」に沿ったその位置に従って一意に識別するこ
とができ、限られたサイズの線形配列は、ラインの第1
の端と第2の端、例えば「右端」や「左端」を境界とす
ると言うことができる。したがって、線形配列の記憶要
素は、別の記憶要素に対し、ラインに沿って「右端寄
り」または「左端寄り」に位置すると言うことができ
る。より簡潔には、線形配列の、ある記憶要素は、線形
配列の別の記憶要素の「右」または「左」にあると言う
ことができる。
【0013】配列に記憶されたデータ要素のセットはま
た、配列内の個々の「スタック」、すなわち単一のファ
イル「ライン」中にスタックアップされたデータ要素の
セットと言うことができ、そうした「スタック」として
管理される。スタックには連続したデータ要素が追加さ
れるので、スタックは、「増大する」と言うことができ
る。第1のスタック中にデータ要素の途切れがない場
合、例えば第1のスタックのどのデータ要素の間にも第
2のスタックのデータ要素が介在していない場合は、第
1のスタックは、第1の端および第2の端のみを有する
と言うことができる(スタックが途切れている場合は、
そのスタックは2つよりも多くの端を有する可能性があ
る)。本明細書では、第1のスタックの「端に近接し
て」、または「端に」位置するデータ要素を有する第2
のスタックについて言及する場合、第2のスタックのデ
ータ要素のいずれかが第1のスタックの端に接している
ことを必ずしも意味するとは限らず、第2のスタックの
データ要素のいくつかが、第1のスタックの端とそれに
対応する記憶域端部との間に位置する構成も含む。
【0014】ここで図1を参照すると、データ要素を記
憶するための記憶域110が示されている。この記憶域
は、第1の端114および第2の端116を有する。第
1のデータ要素セット116〜120が、記憶域110
中の第1のスタック124に記憶されている。第1のス
タックは、記憶域110の第1の端114を向いた第1
の端130と、記憶域110の第2の端116を向いた
第2の端132を有する。
【0015】次に図2を参照すると、第2のデータ要素
セット136〜138が、記憶域中の第2のスタック1
40に記憶されている。データ要素137は、第1のス
タック124の第1の端130に近接して位置し、デー
タ要素136および138は、第1のスタック124の
第2の端132に近接して位置する。
【0016】次に図3を参照すると、第3のデータ要素
セット144および145が、記憶域110中の第3の
スタック150に記憶されている。データ要素145
は、第1のスタック124の第1の端130に近接して
位置し、データ要素144は、第1のスタック124の
第2の端132に近接して位置する。
【0017】再び図2を参照すると、記憶域110は、
相互に排他的な4つのセクション154、160、16
6、および170を有する。セクション154は、セク
ションのうちの端部セクションである。すなわち、セク
ション154は、記憶域の端114のところに端156
を有する。セクション160は、セクションのうちのも
う1つの端部セクションである。すなわち、セクション
160は、記憶域の端116のところに端162を有す
る。セクション166および170は、セクションのう
ちの中間セクションである。すなわち、セクション16
6および170は、端部セクション154と端部セクシ
ョン160の間に位置する。第1のスタック124は中
間セクション166および170に限定され、第2のス
タック140は端部セクション154および160に限
定されることに留意されたい。
【0018】再び図3を参照するが、第3のスタック1
50は、中間セクション166および170に限定され
ていることに留意されたい。
【0019】次に図4を参照すると、第4のデータ要素
セット174および175が、記憶域110中の第4の
スタック178に記憶されている。データ要素175
は、第1のスタック124の第1の端130に近接して
位置し、データ要素174は、第1のスタック124の
第2の端132に近接して位置する。第4のスタック
は、スタック124および150と同様、記憶域の中間
セクションに限定されている。
【0020】注目すべきは、スタック図1〜4に示す各
スタックにデータ要素の連続した1つ1つが記憶される
のに応答して、スタックのサイズが記憶域の第1の端と
記憶域の第2の端の両方に向かって大きくなることであ
る。すなわち、各スタックは両方向に増大する。第2の
スタック140のサイズが記憶域の第1の端および第2
の端に向かって大きくなることは、第1のスタック12
4から離れる方向に、すなわち記憶域の中間から離れる
方向にサイズが大きくなることを含み、第3のスタック
150のサイズが大きくなることは、第1のスタック1
24に向かって、すなわち記憶域の中間に向かって大き
くなることを含む。
【0021】図1の単一スタック構成では、スタック1
24が記憶域110の中間にあり両方向に増大するが、
この構成は、中間に位置し単一方向にしか増大しない単
一スタックよりも記憶域中の空間を有利に利用し、一方
の端に位置し一方向にしか増大しない単一スタックと同
様にうまく空間を利用することは明らかである。さら
に、図2の2スタック構成では、スタック124が中間
にあり、第2のスタック140の一方の部分の始点14
1が第1のスタックの片側130に近接して記憶域の左
半分にセンタリングされて、第2のスタック140の他
方の部分の始点142が第1のスタックの他方の側13
2で記憶域の右半分にセンタリングされるように、第2
のスタック140の一部があるが、この構成は、記憶域
の端に位置し中央に向かって単一方向にしか増大しない
2つのスタックと同様にうまく記憶域中の空間を利用
し、1つの単一方向スタックが中間にあり1つの単一方
向スタックが一方の端にある構成よりも有利に空間を利
用することに留意されたい。
【0022】一般に、スタックがいくつ記憶域中に配置
されることになるかが最初に分からないと仮定した場
合、かつ、本関連出願のうちの一方により、追加された
第1のスタックが両方向である場合、追加される次のス
タックには、追加の両方向スタックを使用するのが有利
であり、最終的なスタックの数が偶数ならば、本出願に
述べるような分割された両方向スタックを使用するのが
好ましい。追加された第1のスタックが単一方向の場
合、最終的に偶数になるスタックでは、単一方向スタッ
クまたは分割された両方向スタックを残りのスタックに
使用するのが好ましい。
【0023】次に図5を参照すると、スタック224が
示されている。このスタックは最初、単一のデッド(de
ad)要素215を有する。(図示の実施形態はデッド要
素FILOスタックなので、要素215はデータを有し
ない。)図5に示すように、最初、スタック224に対
する方向ポインタ・ビット224dpは値「0」を有す
る。この値は右を指す効果を有し、したがって、スタッ
ク224中の次の要素が現在要素215の右に位置する
ことになることを示す。図示のように、最初は、すなわ
ちスタック224中にデータがないときは、ベース・ポ
インタBもヘッド・ポインタHも両方とも要素215を
示す。
【0024】次に図6を参照すると、データ要素216
がスタック224に追加されている。このとき、データ
・ポインタ224dpは値「1」に設定されており、ス
タック中の次の要素が現在要素216の左に追加される
ことになることを示す。データ要素がスタック224に
追加すなわち「プッシュ」された後、ベース・ポインタ
Bは図示のように要素216を指し、ヘッド・ポインタ
Hは図示のように要素215を指している。ヘッド・ポ
インタHは要素215を指して、次の要素が要素215
に隣接するように、すなわちスタック224の左端に追
加されることになることを示す。ベース・ポインタBは
要素216を指して、要素216がスタック224の右
端であることを示し、これは現在におけるスタックのト
ップに対応する。
【0025】次に図7を参照すると、第2のデータ要素
217がスタックに追加されている。このとき、データ
・ポインタ224dpは値「0」を有し、次の要素が要
素217の右すなわちスタック224の右端に追加され
ることになることを示す。これに応じて、ヘッド・ポイ
ンタHは、スタック224の右端の要素である要素21
6に移動されており、この要素に隣接するように次の要
素が追加されることになる。ベース・ポインタBは、要
素217に、すなわちスタック224の新しい左端に動
かされている。
【0026】次に図8を参照すると、第3のデータ要素
218が追加されている。このとき、データ・ポインタ
224dpは値「1」を有し、次の要素がスタックの左
端に追加されることになることを示す。したがって、ヘ
ッド・ポインタは左端に動かされ、ベース・ポインタは
右端に動かされている。
【0027】次に図9を参照すると、追加された最後の
データ要素、すなわち第3のデータ要素218が、前に
スタックの右端だった位置から除去すなわち「ポップ」
されており、したがって、ヘッド・ポインタHは、今や
スタックの右端となったところにある要素216に戻さ
れている。ここに隣接するように、追加される次の要素
がプッシュされることになる。
【0028】図10〜14に2つのスタック、スタック
324およびスタック340を示す。スタック340
は、2つの部分に分割されて、スタック324の各側に
1つの部分が近接しており、外向きに増大する。2つに
分割されているので、スタック340は、図示のように
2つのデッド要素334および335を有する。図10
に示すように、これらのスタックは両方とも、最初はデ
ータ要素が空である。次いで、図6〜9でスタック22
4に対して行われたのとちょうど同じく、図11〜13
それぞれで、分割されたスタックすなわちスタック34
0にデータ要素が1つずつ追加され、最後に図14で除
去される。ポインタHおよびBは、図6〜9でポインタ
が動くのと同様に、連続したプッシュまたはポップのそ
れぞれに伴ってスタック340の一方の端から他方の端
に動き、方向ポインタは、図6〜9とちょうど同じく、
連続したプッシュおよびポップのそれぞれに伴って値を
交互に変えることに留意されたい。
【0029】図10〜14は、予想されたかもしれない
ことに反し、図5〜9に示した分割されない両方向スタ
ックと比較して、スタック340の各部分の間に介在す
るスタック324の存在によってスタック340のポイ
ンタおよびフラグの動作が複雑にはならないことを示し
ている。スタックが空であるときを決定するために、分
割されたスタックには、もう1つの情報が必要である。
すなわち、ベース・ポインタとヘッド・ポインタの初期
オフセットを現在オフセットと比較することによって空
のスタックを検出できるように、ベース・ポインタとヘ
ッド・ポインタの間の初期オフセットにも対応する2つ
のデッド要素間の初期オフセットを保存しなければなら
ない。したがって、図10〜14には、スタックに対し
てデータ340オフセットが示してあり、これは、ベー
ス・ポインタとヘッダ・ポインタの初期オフセットを示
す。
【0030】図18〜22に、2つのスタック、スタッ
ク724および740を示す。スタック740は、2つ
の部分に分割されており、それぞれは、図10〜14の
スタック324および340と同様にスタック724の
各側に近接しているが、スタック340とは異なり、ス
タック740は内向きに増大する。次いで、先に図示し
たように、図19〜21のそれぞれで、分割されたスタ
ックすなわちスタック740にデータ要素が1つずつ追
加され、最後に図22で除去される。前に図示した場合
とちょうど同様に、ポインタHおよびBは、連続したプ
ッシュおよびポップのそれぞれに伴ってスタック340
の一方の端から他方の端に動き、方向ポインタは、連続
したプッシュおよびポップのそれぞれに伴って値を交互
に変えるが、スタックが最初に右側部分から内向きに増
大する場合、方向ポインタは値「0」で開始することに
留意されたい。
【0031】図15に、データ要素を両方向スタックに
プッシュする動作をフロー・チャートで示す。410
で、データ要素をスタックに追加するためのアルゴリズ
ムが開始する。まず420で、方向ポインタが検査され
る。方向ポインタが0に等しい場合は、430でヘッド
・ポインタが1つ減分され、これにより、このポインタ
は記憶域中で左に1要素動かされる。方向が0に等しく
ない場合、すなわち方向ポインタ=1の場合は、440
でヘッド・ポインタは1つ増分され、これにより、この
ポインタは記憶域中で右に1要素動かされる。次いで、
ヘッド・ポインタが適切に位置変更された後、450に
示すように、ヘッド・ポインタによって示された新しい
位置にデータが追加すなわちプッシュされる。450に
示すようにまた、データがプッシュされた後、ヘッド・
ポインタおよびベース・ポインタが指す位置が交換さ
れ、方向ポインタの新しい値が、前の値の逆に設定され
る。460で、アルゴリズムは終了する。
【0032】図17に、データ要素を両方向スタックの
外にポップする動作をフロー・チャートで示す。610
でアルゴリズムが開始する。620に示すように、方向
ポインタが逆転され、ヘッド・ポインタおよびベース・
ポインタが指す位置が交換され、次いで、ヘッド・ポイ
ンタによって指された位置からデータがポップされる。
次に630で、方向ポインタがテストされる。方向が0
に等しい場合は、640でヘッド・ポインタは1つ増分
され、これにより、ヘッド・ポインタは右に動かされ
る。方向が1に等しい場合は、650でヘッド・ポイン
タは1つ減分され、これにより、ヘッド・ポインタは左
に動かされる。次に660で、アルゴリズムは終了す
る。
【0033】次に図16を参照すると、本発明を実施す
ることのできるデータ処理システムのブロック図が示さ
れている。データ処理システム500は、PCI(peri
pheral component interconnect)ローカル・バス・ア
ーキテクチャを採用する。図示の例ではPCIバスを採
用しているものの、マイクロチャネルやISAなど、他
のバス・アーキテクチャを使用してもよい。プロセッサ
502およびメイン・メモリ504が、PCIブリッジ
508を介してPCIローカル・バス506に接続され
ている。PCIブリッジ508はまた、プロセッサ50
2に対する統合メモリ・コントローラ/キャッシュ・メ
モリを含むこともできる。直接コンポーネント相互接続
またはアドイン・ボードを介して、PCIローカル・バ
ス506への追加の接続を行うこともできる。図示の例
では、ローカル・エリア・ネットワーク(LAN)アダ
プタ510、SCSIホスト・バス・アダプタ512、
および拡張バス・インタフェース514が、直接コンポ
ーネント接続を介してPCIローカル・バス506に接
続されている。これとは対照的に、オーディオ・アダプ
タ516、グラフィックス・アダプタ518、およびオ
ーディオ/ビデオ・アダプタ(A/V)519が、拡張
スロットに挿入されたアドイン・ボードによってPCI
ローカル・バス506に接続されている。拡張バス・イ
ンタフェース514は、キーボード/マウス・アダプタ
520、モデム522、および追加メモリ524に接続
を提供する。図示の例では、SCSIホスト・バス・ア
ダプタ512は、ハード・ディスク・ドライブ526、
テープ・ドライブ528、CD−ROMドライブ53
0、およびディジタル・ビデオ・ディスク読取り専用メ
モリ・ドライブ(DVD−ROM)532に接続を提供
する。通常のCPIローカル・バス実装は、3つまたは
4つのPCI拡張スロットまたはアドイン・コネクタを
サポートすることになる。
【0034】オペレーティング・システムが、プロセッ
サ502上で稼動し、図16のデータ処理システム50
0内の様々なコンポーネントの制御を調整および実現す
るのに使用される。オペレーティング・システムは、イ
ンターナショナル・ビジネス・マシーンズ・コーポレー
ションから入手可能なOS/2などの、市販のオペレー
ティング・システムとすることができる。「OS/2」
は、インターナショナル・ビジネス・マシーンズ・コー
ポレーションの商標である。オペレーティング・システ
ムと共に、Java(R)などのオブジェクト指向プログ
ラミング・システムを稼動させて、データ処理システム
500上で実行されるJava(R)プログラムまたはア
プリケーションからオペレーティング・システムへの呼
出しを実現することもできる。オペレーティング・シス
テムに対する命令、オブジェクト指向オペレーティング
・システム、およびアプリケーションまたはプログラム
は、ハード・ディスク・ドライブ526などの記憶装置
上にあり、プロセッサ502によって実行されるように
メイン・メモリ504にロードすることができる。
【0035】図16のハードウェアは実装形態に応じて
異なる場合があることを、当業者なら理解するであろ
う。例えば、図16に示すハードウェアに加えて、また
は代わりに、光学ディスク・ドライブなどの他の周辺装
置を使用することもできる。図示の例は、本発明に関す
る構造上の制限を意味するものではない。例えば、本発
明のプロセスは、マルチプロセッサ・データ処理システ
ムに適用することもできる。
【0036】本発明を、主に、単一方向増大デッド要素
スタックを両方向増大デッド要素スタックに変化させる
のに必要な修正に関して述べたが、他のタイプの両方向
増大スタックを生み出すのに本発明を適用することもで
きることを、当業者なら理解するであろう。例えば、デ
ッド要素スタックではなく、両方向増大使用済み要素ス
タックを生み出すのに本発明を適用することもできる。
使用済み要素スタック中では、スタックを開始する前に
ヘッド・ポインタとベース・ポインタの両方が指すメモ
リ位置は、要素を記憶するのに用いられる。ただし、デ
ッド要素(または空の要素)スタック中では、前述のよ
うに、スタックが開始する前にヘッド・ポインタとベー
ス・ポインタの両方が発生するメモリ位置は、要素を記
憶するのに用いられない。他のタイプのスタックも、両
方向増大スタックを生み出すように修正することができ
る。したがって本発明は、デッド要素スタックに限定し
たものではない。
【0037】完全に機能するデータ処理システムのコン
テキストで本発明を述べたが、本発明のプロセスが、命
令のコンピュータ可読媒体の形、および様々な形で配布
でき、本発明が、配布を行うのに実際に使用する特定の
タイプの信号搬送媒体に関わらず、等しく適用されるこ
とを、当業者なら理解するであろうということに留意す
ることが重要である。コンピュータ可読媒体の例には、
フロッピー(R)・ディスク、ハード・ディスク・ドライ
ブ、RAM、およびCD−ROMなどの記録可能タイプ
の媒体と、ディジタルおよびアナログの通信リンクなど
の伝送タイプの媒体が含まれる。
【0038】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0039】(1)データ要素の記憶を管理する方法に
おいて、第1の端および第2の端を有する記憶域をデー
タ要素記憶用に提供するステップと、前記記憶域中の第
1のスタックに第1のデータ要素セットを記憶するステ
ップであって、前記第1のスタックが、前記記憶域の前
記第1の端に向いた第1の端、および前記記憶域の前記
第2の端に向いた第2の端を有するステップと、前記記
憶域中の第2のスタックに第2のデータ要素セットを記
憶するステップであって、前記第2のスタックが、前記
第1のスタックの前記第1の端に近接して位置するデー
タ要素を少なくとも1つと、前記第1のスタックの前記
第2の端に近接して位置するデータ要素を少なくとも1
つ含むステップとを含む方法。 (2)前記記憶域中の第3のスタックに第3のデータ要
素セットを記憶するステップを含み、前記第3のスタッ
クが、前記第1のスタックの前記第1の端に近接して位
置するデータ要素を少なくとも1つと、前記第1のスタ
ックの前記第2の端に近接して位置するデータ要素を少
なくとも1つ含む、上記(1)に記載の方法。 (3)前記記憶域が、相互に排他的な4つのセクショ
ン、すなわち、i)セクションのうちの端部セクション
である第1のセクションであって、前記記憶域の端のう
ちの一方に近接する端を有する第1のセクションと、i
i)セクションのうちのもう1つの端部セクションであ
る第2のセクションであって、前記記憶域の端のうちの
第2の端に近接する端を有する第2のセクションと、i
ii)セクションのうちの中間セクションである第3お
よび第4のセクションであって、前記第1のセクション
と前記第2のセクションの間に位置する第3および第4
のセクションとを有し、前記第1のスタックを前記セク
ションのうちの前記中間セクションに限定し、前記第2
のスタックを前記セクションのうちの前記端部セクショ
ンに限定するステップを含む、上記(1)に記載の方
法。 (4)前記記憶域中の第3のスタックに第3のデータ要
素セットを記憶するステップであって、前記第3のスタ
ックが、前記第1のスタックの両端に近接して位置する
データ要素を含むステップと、前記第3のスタックを前
記セクションのうちの前記中間セクションに限定するス
テップとを含む、上記(3)に記載の方法。 (5)前記データ要素の連続した1つ1つがこのような
スタックに記憶されるのに応答して、前記スタックのサ
イズが、前記記憶域の前記第1の端と前記記憶域の前記
第2の端の両方に向かって大きくなる、上記(1)に記
載の方法。 (6)前記第2のスタックのサイズが前記記憶域の前記
第1の端および前記第2の端に向かって大きくなること
が、前記第1のスタックから離れる方向にサイズが大き
くなることを含む、上記(5)に記載の方法。 (7)前記記憶域中の第3のスタックに第3のデータ要
素セットを記憶するステップを含み、前記第3のスタッ
クが、前記第1のスタックの両端に近接して位置するデ
ータ要素を含み、前記データ要素の連続した1つ1つが
前記第3のスタックに記憶されるのに応答して、前記第
3のスタックのサイズが、前記記憶域の前記第1の端と
前記記憶域の前記第2の端の両方に向かって大きくな
り、前記第3のスタックのサイズが前記記憶域の前記第
1の端および前記第2の端に向かって大きくなること
が、前記第1のスタックに向かってサイズが大きくなる
ことを含む、上記(6)に記載の方法。 (8)前記第2のスタックのサイズが前記記憶域の前記
第1の端および前記第2の端に向かって大きくなること
が、前記第1のスタックに向かってサイズが大きくなる
ことを含む、上記(5)に記載の方法。 (9)前記記憶域中の第3のスタックに第3のデータ要
素セットを記憶するステップを含み、前記第3のスタッ
クが、前記第1のスタックの両端に近接して位置するデ
ータ要素を含み、前記データ要素の連続した1つ1つが
前記第3のスタックに記憶されるのに応答して、前記第
3のスタックのサイズが、前記記憶域の前記第1の端と
前記記憶域の前記第2の端の両方に向かって大きくな
り、前記第3のスタックのサイズが前記記憶域の前記第
1の端および前記第2の端に向かって大きくなること
が、前記第1のスタックから離れる方向にサイズが大き
くなることを含む、上記(8)に記載の方法。 (10)データ要素の記憶を管理するためのデータ処理
システム中で使用するコンピュータ可読媒体中のコンピ
ュータ・プログラム製品において、記憶域中の第1のス
タックにデータ要素を記憶するための第1の命令であっ
て、前記データ要素を、i)前記記憶域の第1の端に向
いた、前記第1のスタックの第1の端と、ii)前記記
憶域の第2の端に向いた、前記第1のスタックの第2の
端とに近接して記憶する命令を含む第1の命令と、前記
記憶域中の第2のスタックにデータ要素を記憶するため
の第2の命令であって、前記第1のスタックの両端に近
接して位置する記憶域空間に前記第2のスタックのデー
タ要素を記憶するための命令を含む第2の命令とを備え
るコンピュータ・プログラム製品。 (11)前記記憶域中の第3のスタックにデータ要素を
記憶するための第3の命令を備え、前記第3の命令が、
前記第1のスタックの両端に近接して位置する記憶域空
間に前記第3のスタックのデータ要素を記憶するための
命令を含む、上記(10)に記載のコンピュータ・プロ
グラム製品。 (12)前記記憶域が、相互に排他的な4つのセクショ
ン、すなわち、i)セクションのうちの端部セクション
である第1のセクションであって、前記記憶域の端のう
ちの一方に近接する端を有する第1のセクションと、i
i)セクションのうちのもう1つの端部セクションであ
る第2のセクションであって、前記記憶域の端のうちの
第2の端に近接する端を有する第2のセクションと、i
ii)セクションのうちの中間セクションである第3お
よび第4のセクションであって、前記第1のセクション
と前記第2のセクションの間に位置する第3および第4
のセクションとを有し、前記第2の命令が、前記第1の
スタックを前記セクションのうちの前記中間セクション
に限定するための命令を含み、前記第3の命令が、前記
第2のスタックを前記セクションのうちの前記端部セク
ションに限定するための命令を含む、上記(10)に記
載のコンピュータ・プログラム製品。 (13)前記記憶域中の第3のスタックにデータ要素を
記憶するための第3の命令を備え、前記第3の命令が、
前記第1のスタックの両端に近接して位置する記憶域空
間に前記第3のスタックのデータ要素を記憶するための
命令を含み、前記第3のスタックが、前記セクションの
うちの前記中間セクションに限定される、上記(12)
に記載のコンピュータ・プログラム製品。 (14)前記データ要素の連続した1つ1つがこのよう
なスタックに記憶されるのに応答して、前記スタックの
サイズが、前記記憶域の前記第1の端と前記記憶域の前
記第2の端の両方に向かって大きくなる、上記(10)
に記載のコンピュータ・プログラム製品。 (15)前記第2のスタックのサイズが前記記憶域の前
記第1の端および前記第2の端に向かって大きくなるこ
とが、前記第1のスタックから離れる方向にサイズが大
きくなることを含む、上記(14)に記載のコンピュー
タ・プログラム製品。 (16)前記記憶域中の第3のスタックにデータ要素を
記憶するための第3の命令を備え、前記第3の命令が、
前記第1のスタックの両端に近接して位置する記憶域空
間に前記第3のスタックのデータ要素を記憶するための
命令を含み、前記データ要素の連続した1つ1つが前記
第3のスタックに記憶されるのに応答して、前記第3の
スタックのサイズが、前記記憶域の前記第1の端と前記
記憶域の前記第2の端の両方に向かって大きくなり、前
記第3のスタックのサイズが前記記憶域の前記第1の端
および前記第2の端に向かって大きくなることが、前記
第1のスタックに向かってサイズが大きくなることを含
む、上記(15)に記載のコンピュータ・プログラム製
品。 (17)前記第2のスタックのサイズが前記記憶域の前
記第1の端および前記第2の端に向かって大きくなるこ
とが、前記第1のスタックに向かってサイズが大きくな
ることを含む、上記(14)に記載のコンピュータ・プ
ログラム製品。 (18)前記記憶域中の第3のスタックにデータ要素を
記憶するための第3の命令を備え、前記第3の命令が、
前記第1のスタックの両端に近接して位置する記憶域空
間に前記第3のスタックのデータ要素を記憶するための
命令を含み、前記データ要素の連続した1つ1つが前記
第3のスタックに記憶されるのに応答して、前記第3の
スタックのサイズが、前記記憶域の前記第1の端と前記
記憶域の前記第2の端の両方に向かって大きくなり、前
記第3のスタックのサイズが前記記憶域の前記第1の端
および前記第2の端に向かって大きくなることが、前記
第1のスタックから離れる方向にサイズが大きくなるこ
とを含む、上記(17)に記載のコンピュータ・プログ
ラム製品。 (19)データ要素の記憶を管理するためのシステムで
あって、第1の端および第2の端を有する記憶域をデー
タ要素記憶用に規定する手段と、前記記憶域中に第1の
スタックを規定する手段であって、前記第1のスタック
が、前記記憶域の前記第1の端に向いた第1の端、およ
び前記記憶域の前記第2の端に向いた第2の端を有する
手段と、前記記憶域中に第2のスタックを規定する手段
であって、前記第2のスタックが、前記第1のスタック
の両端に近接して位置するデータ要素を含む手段とを備
えるシステム。 (20)前記記憶域中に第3のスタックを規定する手段
を備え、前記第3のスタックが、前記第1のスタックの
両端に近接して位置するデータ要素を含む、上記(1
9)に記載のシステム。 (21)前記記憶域が、相互に排他的な4つのセクショ
ン、すなわち、i)セクションのうちの端部セクション
である第1のセクションであって、前記記憶域の端のう
ちの一方に近接する端を有する第1のセクションと、i
i)セクションのうちのもう1つの端部セクションであ
る第2のセクションであって、前記記憶域の端のうちの
第2の端に近接する端を有する第2のセクションと、i
ii)セクションのうちの中間セクションである第3お
よび第4のセクションであって、前記第1のセクション
と前記第2のセクションの間に位置する第3および第4
のセクションとを有し、前記記憶域中に前記第1のスタ
ックを規定する前記手段が、前記第1のスタックを前記
セクションのうちの前記中間セクションに限定する手段
を含み、前記記憶域中に前記第2のスタックを規定する
前記手段が、前記第2のスタックを前記セクションのう
ちの前記端部セクションに限定する手段を含む、上記
(19)に記載のシステム。 (22)前記記憶域中に第3のスタックを規定する手段
を備え、前記第3のスタックが、前記第1のスタックの
両端に近接して位置するデータ要素を含み、前記第3の
スタックが、前記セクションのうちの前記中間セクショ
ンに限定される、上記(21)に記載のシステム。 (23)前記データ要素の連続した1つ1つがこのよう
なスタックに記憶されるのに応答して、前記スタックの
サイズが、前記記憶域の前記第1の端と前記記憶域の前
記第2の端の両方に向かって大きくなる、上記(19)
に記載のシステム。 (24)前記第2のスタックのサイズが前記記憶域の前
記第1の端および前記第2の端に向かって大きくなるこ
とが、前記第1のスタックから離れる方向にサイズが大
きくなることを含む、上記(23)に記載のシステム。 (25)前記記憶域中に第3のスタックを規定する手段
を備え、前記第3のスタックが、前記第1のスタックの
両端に近接して位置するデータ要素を含み、前記データ
要素の連続した1つ1つが前記第3のスタックに記憶さ
れるのに応答して、前記第3のスタックのサイズが、前
記記憶域の前記第1の端と前記記憶域の前記第2の端の
両方に向かって大きくなり、前記第3のスタックのサイ
ズが前記記憶域の前記第1の端および前記第2の端に向
かって大きくなることが、前記第1のスタックに向かっ
てサイズが大きくなることを含む、上記(24)に記載
のシステム。 (26)前記第2のスタックのサイズが前記記憶域の前
記第1の端および前記第2の端に向かって大きくなるこ
とが、前記第1のスタックに向かってサイズが大きくな
ることを含む、上記(23)に記載のシステム。 (27)前記記憶域中に第3のスタックを規定するため
の第4の命令を備え、記第3のスタックが、前記第1の
スタックの両端に近接して位置するデータ要素を含み、
前記データ要素の連続した1つ1つが前記第3のスタッ
クに記憶されるのに応答して、前記第3のスタックのサ
イズが、前記記憶域の前記第1の端と前記記憶域の前記
第2の端の両方に向かって大きくなり、前記第3のスタ
ックのサイズが前記記憶域の前記第1の端および前記第
2の端に向かって大きくなることが、前記第1のスタッ
クから離れる方向にサイズが大きくなることを含む、上
記(26)に記載のシステム。
【図面の簡単な説明】
【図1】スタックを1つ有するメモリ記憶域を示す図で
ある。
【図2】スタックを2つ有するメモリ記憶域を示す図で
ある。
【図3】スタックを3つ有するメモリ記憶域を示す図で
ある。
【図4】スタックを4つ有するメモリ記憶域を示す図で
ある。
【図5】最初にデータ要素が空であるスタックを示す図
である。
【図6】次いでデータ要素が1つずつ加えられるスタッ
クを示す図である。
【図7】次いでデータ要素が1つずつ加えられるスタッ
クを示す図である。
【図8】次いでデータ要素が1つずつ加えられるスタッ
クを示す図である。
【図9】最後にデータ要素のうちの1つが除去されるス
タックを示す図である。
【図10】2つのスタックであって、両方とも外向きに
増大し、一方2つの部分に分割されて他方のスタックの
各側に1つずつあり、両方とも最初はデータ要素が空で
あるスタックを示す図である。
【図11】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図12】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図13】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図14】最後にデータ要素が除去される、2つのスタ
ックを示す図である。
【図15】データ要素を両方向スタックにプッシュする
動作を示すフロー・チャートである。
【図16】本発明を実施するための例示的なシステムを
示すブロック図である。
【図17】データ要素を両方向スタックの外にポップす
る動作を示すフロー・チャートである。
【図18】2つのスタックであって、一方が外向きに増
大し、一方が2つの部分に分割されて他方のスタックの
各側に近接し、かつ内向きに増大し、両方とも最初はデ
ータ要素が空であるスタックを示す図である。
【図19】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図20】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図21】次いで、分割されたスタックにデータ要素が
1つずつ加えられる、2つのスタックを示す図である。
【図22】最後にデータ要素が除去される、2つのスタ
ックを示す図である。
【符号の説明】
110 記憶域 114 記憶域の第1の端 116 記憶域の第2の端 116 第1のデータ要素 117 第1のデータ要素 118 第1のデータ要素 119 第1のデータ要素 120 第1のデータ要素 124 第1のスタック 130 第1のスタックの第1の端 132 第1のスタックの第2の端 136 第2のデータ要素 137 第2のデータ要素 138 第2のデータ要素 140 第2のスタック 144 第3のデータ要素 145 第3のデータ要素 150 第3のスタック 154 端部セクション 156 端部セクション154の端 160 端部セクション 162 端部セクション160の端 166 中間セクション 170 中間セクション 174 第4のデータ要素 175 第4のデータ要素 178 第4のスタック 215 デッド要素 216 データ要素 217 第2のデータ要素 218 第3のデータ要素 224 スタック 224dp スタック224に対する方向ポインタ・ビ
ット 324 スタック 334 デッド要素 335 デッド要素 340 スタック 500 データ処理システム 502 プロセッサ 504 メイン・メモリ 506 バス 508 PCIブリッジ 510 LANアダプタ 512 SCSIホスト・バス・アダプタ 514 拡張バス・インタフェース 516 オーディオ・アダプタ 518 グラフィックス・アダプタ 519 オーディオ/ビデオ・アダプタ 520 キーボード/マウス・アダプタ 522 モデム 524 メモリ 526 ハード・ディスク・ドライブ 528 テープ・ドライブ 530 CD−ROMドライブ 532 DVD−ROM 724 スタック 740 スタック B ベース・ポインタ H ヘッド・ポインタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーヴン・ロバート・ファラーゴ アメリカ合衆国78728 テキサス州オース チン ウェールズ・ブランチ・パークウェ イ 1801 ナンバー1115 (72)発明者 ケネス・リー・ライト アメリカ合衆国78729 テキサス州オース チン レッド・ディア・パス 12703 Fターム(参考) 5B033 AA04 AA10 DB00 DE03 DE07 5B060 AA07 AC07

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】データ要素の記憶を管理する方法におい
    て、 第1の端および第2の端を有する記憶域をデータ要素記
    憶用に提供するステップと、 前記記憶域中の第1のスタックに第1のデータ要素セッ
    トを記憶するステップであって、前記第1のスタック
    が、前記記憶域の前記第1の端に向いた第1の端、およ
    び前記記憶域の前記第2の端に向いた第2の端を有する
    ステップと、 前記記憶域中の第2のスタックに第2のデータ要素セッ
    トを記憶するステップであって、前記第2のスタック
    が、前記第1のスタックの前記第1の端に近接して位置
    するデータ要素を少なくとも1つと、前記第1のスタッ
    クの前記第2の端に近接して位置するデータ要素を少な
    くとも1つ含むステップとを含む方法。
  2. 【請求項2】前記記憶域中の第3のスタックに第3のデ
    ータ要素セットを記憶するステップを含み、前記第3の
    スタックが、前記第1のスタックの前記第1の端に近接
    して位置するデータ要素を少なくとも1つと、前記第1
    のスタックの前記第2の端に近接して位置するデータ要
    素を少なくとも1つ含む、請求項1に記載の方法。
  3. 【請求項3】前記記憶域が、相互に排他的な4つのセク
    ション、すなわち、i)セクションのうちの端部セクシ
    ョンである第1のセクションであって、前記記憶域の端
    のうちの一方に近接する端を有する第1のセクション
    と、ii)セクションのうちのもう1つの端部セクショ
    ンである第2のセクションであって、前記記憶域の端の
    うちの第2の端に近接する端を有する第2のセクション
    と、iii)セクションのうちの中間セクションである
    第3および第4のセクションであって、前記第1のセク
    ションと前記第2のセクションの間に位置する第3およ
    び第4のセクションとを有し、 前記第1のスタックを前記セクションのうちの前記中間
    セクションに限定し、前記第2のスタックを前記セクシ
    ョンのうちの前記端部セクションに限定するステップを
    含む、請求項1に記載の方法。
  4. 【請求項4】前記記憶域中の第3のスタックに第3のデ
    ータ要素セットを記憶するステップであって、前記第3
    のスタックが、前記第1のスタックの両端に近接して位
    置するデータ要素を含むステップと、 前記第3のスタックを前記セクションのうちの前記中間
    セクションに限定するステップとを含む、請求項3に記
    載の方法。
  5. 【請求項5】前記データ要素の連続した1つ1つがこの
    ようなスタックに記憶されるのに応答して、前記スタッ
    クのサイズが、前記記憶域の前記第1の端と前記記憶域
    の前記第2の端の両方に向かって大きくなる、請求項1
    に記載の方法。
  6. 【請求項6】前記第2のスタックのサイズが前記記憶域
    の前記第1の端および前記第2の端に向かって大きくな
    ることが、前記第1のスタックから離れる方向にサイズ
    が大きくなることを含む、請求項5に記載の方法。
  7. 【請求項7】前記記憶域中の第3のスタックに第3のデ
    ータ要素セットを記憶するステップを含み、 前記第3のスタックが、前記第1のスタックの両端に近
    接して位置するデータ要素を含み、 前記データ要素の連続した1つ1つが前記第3のスタッ
    クに記憶されるのに応答して、前記第3のスタックのサ
    イズが、前記記憶域の前記第1の端と前記記憶域の前記
    第2の端の両方に向かって大きくなり、 前記第3のスタックのサイズが前記記憶域の前記第1の
    端および前記第2の端に向かって大きくなることが、前
    記第1のスタックに向かってサイズが大きくなることを
    含む、請求項6に記載の方法。
  8. 【請求項8】前記第2のスタックのサイズが前記記憶域
    の前記第1の端および前記第2の端に向かって大きくな
    ることが、前記第1のスタックに向かってサイズが大き
    くなることを含む、請求項5に記載の方法。
  9. 【請求項9】前記記憶域中の第3のスタックに第3のデ
    ータ要素セットを記憶するステップを含み、 前記第3のスタックが、前記第1のスタックの両端に近
    接して位置するデータ要素を含み、 前記データ要素の連続した1つ1つが前記第3のスタッ
    クに記憶されるのに応答して、前記第3のスタックのサ
    イズが、前記記憶域の前記第1の端と前記記憶域の前記
    第2の端の両方に向かって大きくなり、 前記第3のスタックのサイズが前記記憶域の前記第1の
    端および前記第2の端に向かって大きくなることが、前
    記第1のスタックから離れる方向にサイズが大きくなる
    ことを含む、請求項8に記載の方法。
  10. 【請求項10】データ要素の記憶を管理するためのデー
    タ処理システム中で使用するコンピュータ可読媒体中の
    コンピュータ・プログラム製品において、 記憶域中の第1のスタックにデータ要素を記憶するため
    の第1の命令であって、前記データ要素を、i)前記記
    憶域の第1の端に向いた、前記第1のスタックの第1の
    端と、ii)前記記憶域の第2の端に向いた、前記第1
    のスタックの第2の端とに近接して記憶する命令を含む
    第1の命令と、 前記記憶域中の第2のスタックにデータ要素を記憶する
    ための第2の命令であって、前記第1のスタックの両端
    に近接して位置する記憶域空間に前記第2のスタックの
    データ要素を記憶するための命令を含む第2の命令とを
    備えるコンピュータ・プログラム製品。
  11. 【請求項11】前記記憶域中の第3のスタックにデータ
    要素を記憶するための第3の命令を備え、前記第3の命
    令が、前記第1のスタックの両端に近接して位置する記
    憶域空間に前記第3のスタックのデータ要素を記憶する
    ための命令を含む、請求項10に記載のコンピュータ・
    プログラム製品。
  12. 【請求項12】前記記憶域が、相互に排他的な4つのセ
    クション、すなわち、i)セクションのうちの端部セク
    ションである第1のセクションであって、前記記憶域の
    端のうちの一方に近接する端を有する第1のセクション
    と、ii)セクションのうちのもう1つの端部セクショ
    ンである第2のセクションであって、前記記憶域の端の
    うちの第2の端に近接する端を有する第2のセクション
    と、iii)セクションのうちの中間セクションである
    第3および第4のセクションであって、前記第1のセク
    ションと前記第2のセクションの間に位置する第3およ
    び第4のセクションとを有し、 前記第2の命令が、前記第1のスタックを前記セクショ
    ンのうちの前記中間セクションに限定するための命令を
    含み、前記第3の命令が、前記第2のスタックを前記セ
    クションのうちの前記端部セクションに限定するための
    命令を含む、請求項10に記載のコンピュータ・プログ
    ラム製品。
  13. 【請求項13】前記記憶域中の第3のスタックにデータ
    要素を記憶するための第3の命令を備え、前記第3の命
    令が、前記第1のスタックの両端に近接して位置する記
    憶域空間に前記第3のスタックのデータ要素を記憶する
    ための命令を含み、前記第3のスタックが、前記セクシ
    ョンのうちの前記中間セクションに限定される、請求項
    12に記載のコンピュータ・プログラム製品。
  14. 【請求項14】前記データ要素の連続した1つ1つがこ
    のようなスタックに記憶されるのに応答して、前記スタ
    ックのサイズが、前記記憶域の前記第1の端と前記記憶
    域の前記第2の端の両方に向かって大きくなる、請求項
    10に記載のコンピュータ・プログラム製品。
  15. 【請求項15】前記第2のスタックのサイズが前記記憶
    域の前記第1の端および前記第2の端に向かって大きく
    なることが、前記第1のスタックから離れる方向にサイ
    ズが大きくなることを含む、請求項14に記載のコンピ
    ュータ・プログラム製品。
  16. 【請求項16】前記記憶域中の第3のスタックにデータ
    要素を記憶するための第3の命令を備え、前記第3の命
    令が、前記第1のスタックの両端に近接して位置する記
    憶域空間に前記第3のスタックのデータ要素を記憶する
    ための命令を含み、前記データ要素の連続した1つ1つ
    が前記第3のスタックに記憶されるのに応答して、前記
    第3のスタックのサイズが、前記記憶域の前記第1の端
    と前記記憶域の前記第2の端の両方に向かって大きくな
    り、前記第3のスタックのサイズが前記記憶域の前記第
    1の端および前記第2の端に向かって大きくなること
    が、前記第1のスタックに向かってサイズが大きくなる
    ことを含む、請求項15に記載のコンピュータ・プログ
    ラム製品。
  17. 【請求項17】前記第2のスタックのサイズが前記記憶
    域の前記第1の端および前記第2の端に向かって大きく
    なることが、前記第1のスタックに向かってサイズが大
    きくなることを含む、請求項14に記載のコンピュータ
    ・プログラム製品。
  18. 【請求項18】前記記憶域中の第3のスタックにデータ
    要素を記憶するための第3の命令を備え、前記第3の命
    令が、前記第1のスタックの両端に近接して位置する記
    憶域空間に前記第3のスタックのデータ要素を記憶する
    ための命令を含み、前記データ要素の連続した1つ1つ
    が前記第3のスタックに記憶されるのに応答して、前記
    第3のスタックのサイズが、前記記憶域の前記第1の端
    と前記記憶域の前記第2の端の両方に向かって大きくな
    り、前記第3のスタックのサイズが前記記憶域の前記第
    1の端および前記第2の端に向かって大きくなること
    が、前記第1のスタックから離れる方向にサイズが大き
    くなることを含む、請求項17に記載のコンピュータ・
    プログラム製品。
  19. 【請求項19】データ要素の記憶を管理するためのシス
    テムであって、 第1の端および第2の端を有する記憶域をデータ要素記
    憶用に規定する手段と、 前記記憶域中に第1のスタックを規定する手段であっ
    て、前記第1のスタックが、前記記憶域の前記第1の端
    に向いた第1の端、および前記記憶域の前記第2の端に
    向いた第2の端を有する手段と、 前記記憶域中に第2のスタックを規定する手段であっ
    て、前記第2のスタックが、前記第1のスタックの両端
    に近接して位置するデータ要素を含む手段とを備えるシ
    ステム。
  20. 【請求項20】前記記憶域中に第3のスタックを規定す
    る手段を備え、前記第3のスタックが、前記第1のスタ
    ックの両端に近接して位置するデータ要素を含む、請求
    項19に記載のシステム。
  21. 【請求項21】前記記憶域が、相互に排他的な4つのセ
    クション、すなわち、i)セクションのうちの端部セク
    ションである第1のセクションであって、前記記憶域の
    端のうちの一方に近接する端を有する第1のセクション
    と、ii)セクションのうちのもう1つの端部セクショ
    ンである第2のセクションであって、前記記憶域の端の
    うちの第2の端に近接する端を有する第2のセクション
    と、iii)セクションのうちの中間セクションである
    第3および第4のセクションであって、前記第1のセク
    ションと前記第2のセクションの間に位置する第3およ
    び第4のセクションとを有し、 前記記憶域中に前記第1のスタックを規定する前記手段
    が、前記第1のスタックを前記セクションのうちの前記
    中間セクションに限定する手段を含み、前記記憶域中に
    前記第2のスタックを規定する前記手段が、前記第2の
    スタックを前記セクションのうちの前記端部セクション
    に限定する手段を含む、請求項19に記載のシステム。
  22. 【請求項22】前記記憶域中に第3のスタックを規定す
    る手段を備え、前記第3のスタックが、前記第1のスタ
    ックの両端に近接して位置するデータ要素を含み、前記
    第3のスタックが、前記セクションのうちの前記中間セ
    クションに限定される、請求項21に記載のシステム。
  23. 【請求項23】前記データ要素の連続した1つ1つがこ
    のようなスタックに記憶されるのに応答して、前記スタ
    ックのサイズが、前記記憶域の前記第1の端と前記記憶
    域の前記第2の端の両方に向かって大きくなる、請求項
    19に記載のシステム。
  24. 【請求項24】前記第2のスタックのサイズが前記記憶
    域の前記第1の端および前記第2の端に向かって大きく
    なることが、前記第1のスタックから離れる方向にサイ
    ズが大きくなることを含む、請求項23に記載のシステ
    ム。
  25. 【請求項25】前記記憶域中に第3のスタックを規定す
    る手段を備え、前記第3のスタックが、前記第1のスタ
    ックの両端に近接して位置するデータ要素を含み、前記
    データ要素の連続した1つ1つが前記第3のスタックに
    記憶されるのに応答して、前記第3のスタックのサイズ
    が、前記記憶域の前記第1の端と前記記憶域の前記第2
    の端の両方に向かって大きくなり、前記第3のスタック
    のサイズが前記記憶域の前記第1の端および前記第2の
    端に向かって大きくなることが、前記第1のスタックに
    向かってサイズが大きくなることを含む、請求項24に
    記載のシステム。
  26. 【請求項26】前記第2のスタックのサイズが前記記憶
    域の前記第1の端および前記第2の端に向かって大きく
    なることが、前記第1のスタックに向かってサイズが大
    きくなることを含む、請求項23に記載のシステム。
  27. 【請求項27】前記記憶域中に第3のスタックを規定す
    るための第4の命令を備え、記第3のスタックが、前記
    第1のスタックの両端に近接して位置するデータ要素を
    含み、前記データ要素の連続した1つ1つが前記第3の
    スタックに記憶されるのに応答して、前記第3のスタッ
    クのサイズが、前記記憶域の前記第1の端と前記記憶域
    の前記第2の端の両方に向かって大きくなり、前記第3
    のスタックのサイズが前記記憶域の前記第1の端および
    前記第2の端に向かって大きくなることが、前記第1の
    スタックから離れる方向にサイズが大きくなることを含
    む、請求項26に記載のシステム。
JP2001286096A 2000-09-21 2001-09-20 データ要素の記憶を管理する方法及びシステム Expired - Fee Related JP3564090B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/667751 2000-09-21
US09/667,751 US6643662B1 (en) 2000-09-21 2000-09-21 Split bi-directional stack in a linear memory array

Publications (2)

Publication Number Publication Date
JP2002149482A true JP2002149482A (ja) 2002-05-24
JP3564090B2 JP3564090B2 (ja) 2004-09-08

Family

ID=24679480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001286096A Expired - Fee Related JP3564090B2 (ja) 2000-09-21 2001-09-20 データ要素の記憶を管理する方法及びシステム

Country Status (2)

Country Link
US (1) US6643662B1 (ja)
JP (1) JP3564090B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221657A (ja) * 2005-02-11 2006-08-24 Fujitsu Ltd アクセプタンス状態の表示システム及び方法
JP2006221653A (ja) * 2005-02-11 2006-08-24 Fujitsu Ltd 文書分析において受付状態を決定するシステム及び方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
US7797505B2 (en) * 2005-04-25 2010-09-14 Hewlett-Packard Development Company, L.P. Program stack handling
TW200732913A (en) * 2006-02-24 2007-09-01 Benq Corp Memory allocation method and system
US7647482B2 (en) * 2006-03-31 2010-01-12 Intel Corporation Methods and apparatus for dynamic register scratching
US20100122039A1 (en) * 2008-11-11 2010-05-13 Ravi Ranjan Kumar Memory Systems and Accessing Methods
US9256468B2 (en) * 2010-08-24 2016-02-09 Red Hat, Inc. Dynamic incremental memory allocation on program stack

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138210A (en) * 1997-06-23 2000-10-24 Sun Microsystems, Inc. Multi-stack memory architecture
US6006323A (en) * 1998-05-20 1999-12-21 Industrial Technology Research Institute Intelligent multiple stack management unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221657A (ja) * 2005-02-11 2006-08-24 Fujitsu Ltd アクセプタンス状態の表示システム及び方法
JP2006221653A (ja) * 2005-02-11 2006-08-24 Fujitsu Ltd 文書分析において受付状態を決定するシステム及び方法
JP2013008395A (ja) * 2005-02-11 2013-01-10 Fujitsu Ltd アクセプタンス状態の表示システム及び方法

Also Published As

Publication number Publication date
US6643662B1 (en) 2003-11-04
JP3564090B2 (ja) 2004-09-08

Similar Documents

Publication Publication Date Title
US5079695A (en) Object management facility which includes a snapshot facility for providing data transfer between two objects
JP3629518B2 (ja) オペレーティング・システムのブート方法、実行方法、そのシステム及びそのプログラム製品
AU618593B2 (en) Object management facility for maintaining data in a computer system
US5386564A (en) Conversion of data and objects across classes in an object management system
US6996696B2 (en) Compressed file system for non-volatile RAM
JP2571664B2 (ja) コンピュータ主記憶域管理システムおよび方法
US20050144608A1 (en) Operating system allowing running of real-time application programs, control method therefor, and method of loading dynamic link libraries
JP2002149482A (ja) 線形メモリ配列中の分割両方向スタック
JP2807017B2 (ja) データ圧縮方法
JP2002514331A (ja) 物理的情報ファイルの情報を共有するための仮想ファイルを生成するコンピュータ実行法
JP2010539592A (ja) データを交換する方法及びシステム
CN1860438A (zh) 多端口装置配置
US6934825B1 (en) Bi-directional stack in a linear memory array
JP3564091B2 (ja) データ要素の記憶を管理する方法及びシステム
US5878263A (en) Internal chaining technique for fixup records
US6725226B2 (en) Computer system using a queuing system and method for managing a queue and heterogeneous data structures
US6147628A (en) Efficient data conversion of list of strings
KR100417765B1 (ko) 애드-온 소프트웨어 태스크와 코어 소프트웨어 태스크를동적으로 통합하는 방법 및 컴퓨터 프로그램 제품
JP3267550B2 (ja) デグレードチェック装置
US6178471B1 (en) Method of sharing buffers for the streaming of unchanged data
JP2000035917A (ja) 改良された周波数動作のための複数ステ―ジ・パイプライン式デ―タ・コアレッシング方法および装置
US5748965A (en) Language processing method for calculating optimum address of array
JPH0869403A (ja) ファイル管理装置
JP2000357112A (ja) ファイルシステムドライバ
JP2000231494A (ja) ソフトウェア実行システム及びソフトウェア実行方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040604

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080611

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees