JP2003271448A - スタック管理方法及び情報処理装置 - Google Patents

スタック管理方法及び情報処理装置

Info

Publication number
JP2003271448A
JP2003271448A JP2002074732A JP2002074732A JP2003271448A JP 2003271448 A JP2003271448 A JP 2003271448A JP 2002074732 A JP2002074732 A JP 2002074732A JP 2002074732 A JP2002074732 A JP 2002074732A JP 2003271448 A JP2003271448 A JP 2003271448A
Authority
JP
Japan
Prior art keywords
stack
storage area
stack storage
temporary
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002074732A
Other languages
English (en)
Inventor
Masayuki Naganuma
政幸 長沼
Takeshi Eto
健 衛藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002074732A priority Critical patent/JP2003271448A/ja
Priority to US10/386,709 priority patent/US20030177328A1/en
Publication of JP2003271448A publication Critical patent/JP2003271448A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/451Stack data

Landscapes

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

Abstract

(57)【要約】 【課題】本発明は、作業領域を効率的に使用することで
スタック拡張処理を実行可能なスタック記憶領域の管理
方法を提供することを目的とする。 【解決手段】スタック管理方法は、所定の記憶領域に一
時スタック格納領域を予め設け、主記憶空間内で現在ス
タック格納領域にオーバーフローが発生すると現在スタ
ック格納領域に連続するメモリ領域に一時スタック格納
領域を割り当て、一時スタック格納領域を作業領域とし
て使用することにより新たなスタック格納領域を確保し
て現在スタック格納領域に対するスタック拡張処理を実
行する各段階を含むことを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータの記
憶領域の管理方式に関し、詳しくはスタックマシンアー
キテクチャにおけるスタック記憶領域の管理方式に関す
る。
【従来の技術】スタックマシンアーキテクチャは、演算
や操作の対象、作用、ローカル変数、引数、戻り値、ス
タックフレームの管理情報等を、記憶領域上に設けたス
タックに格納する。このようなスタックマシンアーキテ
クチャは比較的単純な構成で実現が容易であるために、
実際のレジスタアーキテクチャのハードウェア上にソフ
トウェアで仮想マシンとして実装されることが多かっ
た。
【0002】例えば、ネットワークを介してプログラム
受信する場合等に悪意に基づくプログラムによりシステ
ムが致命的なダメージを受けることを避けるために、ネ
ットワーク外部からの攻撃に対する脆弱性を補う手段と
して、仮想的なマシンに仲介役を勤めさせる方法があ
る。仮想的なマシンは、外部から到来するプログラムを
仲介し、システムのクリティカルな部分に対するアクセ
スを拒否することによりシステムを保護する。このよう
な仮想的なマシンは、Java仮想マシンに代表される
ように、スタックマシンアーキテクチャに基づいて容易
に構成することが出来る。
【0003】また最近では、より高速なプログラムの実
行や省資源による実行環境の実現を目的として、ハード
ウェアとして直接スタックマシンアーキテクチャを実現
することもなされている。
【0004】スタックを無限に連続した領域としてメモ
リ上に確保或いはハードウェア実装することは現実には
困難であるので、メモリ上に有限の領域をまず確保す
る。この際、スタックに必要な容量はスタック格納領域
の確保時に知ることはできないので、所定の領域をメモ
リ上に確保することになる。以降、処理が進むにつれて
スタックフレームが順次積み上げられる。最初に確保し
た領域を超えて更なるスペースをスタックとして使用す
る場合には、新たにスタック領域を確保することが必要
になる。この状態をスタックオーバーフローと呼ぶ。
【0005】マルチスレッドやマルチタスクを実現する
システムでは、同時に複数の処理を時分割処理によって
実行している。このスレッド或いはタスク間の処理は基
本的に非同期であり、それぞれのスレッドがスタック格
納領域を独立に消費していく。従って、各スレッドはそ
れぞれ独立したスタック格納領域を保持している必要が
ある。同時に複数のスレッドが存在すると共に主記憶の
容量が限られているので、スタック格納領域として各ス
レッドが最大必要とする充分な記憶領域を確保しておく
ことは出来ない。従って、スタックオーバーフローが発
生することは避けることが出来ない。
【0006】スタックオーバーフローが発生した時、処
理を継続するために、スタック格納領域を拡張するスタ
ック拡張処理が実行される。スタック拡張処理において
は、主記憶からより大きな連続した空き領域を探した
り、スタックオーバーフロー発生前のスタックの内容を
新たに獲得したスタック格納領域に移動したり、複数の
スタックフレームからなるスタックを適当なサイズに分
割したりする処理が行われる。このスタック拡張処理
は、通常のプログラム実行と同様にスタック領域を使っ
て実行するので、そのために使用する作業領域をスタッ
ク領域として提供する必要がある。
【発明が解決しようとする課題】従来、スタック拡張処
理が使用する作業領域を、現在確保してあるスタック格
納領域のスタックの一部として割り当てている。即ち、
現在確保して使用中であるスタック格納領域内の最後の
部分を作業領域として割り当て、スタック格納領域にお
いてこの作業領域以外の部分を使い切ると、スタックオ
ーバーフローが発生したとしてスタック拡張処理を実行
する。この場合、本来の処理に必要なスタック容量に加
えてスタック拡張処理が使用する作業領域を含めて、ス
タック格納領域を確保することになる。
【0007】前述のようにマルチスレッドやマルチタス
クの場合、各スレッド或いはタスク毎にそれぞれ独立し
たスタック格納領域を保持している。従ってこの場合、
スレッド或いはタスクの数をnとすると、n個のスタッ
ク拡張処理用の作業領域が、実際に必要となるか否かに
関わらず常にメモリ内に確保されていることになる。こ
れは、システムの限られた資源である主記憶の有効利用
という観点から好ましくない。
【0008】以上を鑑みて、本発明は、作業領域を効率
的に使用することでスタック拡張処理を実行可能なスタ
ック記憶領域の管理方法を提供することを目的とする。
【課題を解決するための手段】本発明によるスタック管
理方法は、所定の記憶領域に一時スタック格納領域を予
め設け、主記憶空間内で現在スタック格納領域にオーバ
ーフローが発生すると該現在スタック格納領域に連続す
るメモリ領域に該一時スタック格納領域を割り当て、該
一時スタック格納領域を作業領域として使用することに
より新たなスタック格納領域を確保して該現在スタック
格納領域に対するスタック拡張処理を実行する各段階を
含むことを特徴とする。
【0009】上記発明においては、現在スタック格納領
域を使用している現在実行中のプロセスにおいてスタッ
クオーバーフローが発生すると、主記憶のメモリ空間内
或いは別のメモリ空間内に確保されている一時スタック
格納領域を、現在スタック格納領域に連続する領域に割
り付けるようにアドレス変換が実行される。即ちCPU
からメモリ空間を見ると、論理アドレス空間上では現在
スタック格納領域と一時スタック格納領域とが連続す
る。一時スタック格納領域が配置されると、この一時ス
タック格納領域を作業領域として使用してスタック拡張
処理を実行する。従って、従来のようにスタック拡張処
理のための作業領域をスタック格納領域内に確保してお
く必要が無くなる。また各プロセスにおいてスタックオ
ーバーフローが発生するたびに一時スタック格納領域を
順次利用すればよいので、複数のプロセスで時分割共有
する単一の一時スタック格納領域を用意しておけばよ
く、作業領域を効率的に使用しながらスタック拡張処理
を実行することが可能になる。
【0010】また本発明による情報処理装置は、主記憶
空間を構成する主記憶ユニットと、該主記憶空間に設け
た現在スタック格納領域を利用して処理を実行する実行
ユニットと、該現在スタック格納領域にオーバーフロー
が発生すると該実行ユニットからのオーバーフロー通知
に応じて該現在スタック格納領域に連続するメモリ領域
に一時スタック格納領域を割り当てるアドレス変換ユニ
ットを含み、該実行ユニットは、該一時スタック格納領
域を作業領域として使用することにより新たなスタック
格納領域を確保して該現在スタック格納領域に対するス
タック拡張処理を実行することを特徴とする。
【0011】上記の構成のように、物理アドレスと論理
アドレスとの間の変換を行うアドレス変換ユニットを設
けることで、主記憶のメモリ空間内或いは別のメモリ空
間に存在する一時スタック格納領域を現在スタック格納
領域に連続する領域に割り当てることが可能になる。従
って、従来のようにスタック拡張処理のための作業領域
をスタック格納領域内に確保しておく必要が無くなる。
また複数のプロセスで時分割共有する単一の一時スタッ
ク格納領域を用意しておけばよく、作業領域を効率的に
使用しながらスタック拡張処理を実行することが可能に
なる。
【発明の実施の形態】以下に、本発明の実施例を添付の
図面を用いて詳細に説明する。
【0012】本発明の原理は、現在確保しているスタッ
ク格納領域内にスタック拡張処理用の作業領域を設ける
ことなく、スタック格納領域内の全てを使いきるとスタ
ックオーバーフローが発生したとして、主記憶のメモリ
空間内或いは別のメモリ空間内に確保されている作業領
域を使用してスタック拡張処理を実行する。スタック拡
張処理が実行終了し、新たなスタック格納領域への移動
が終了すると、スタック拡張処理用の作業領域は、別の
スレッド或いはタスクによる次のスタック拡張処理のた
めに使用可能である。このスタック拡張処理用の作業領
域を、一時スタック格納領域と呼ぶ。
【0013】図1は、本発明によるスタック記憶領域の
管理の原理を説明するための図である。
【0014】図1において、主記憶メモリ空間10に
は、現在実行の対象となっているスタック格納領域であ
る現在スタック格納領域11が、1つのプロセス(又は
スレッド或いはタスク)に対して確保されている。現在
スタック格納領域11には、このような現在スタック格
納領域11が複数のプロセスに対して設けられてよい。
図1においては、対象のプロセスの処理が進みスタック
内容が増大すると、スタックが上方に向けて伸長する。
【0015】図1は、既に使用されている領域である占
有領域12が、現在スタック格納領域11の伸張方向に
存在する状態を示している。この占有領域12には、現
在スタック格納領域11に対応するプロセス以外のプロ
セスのデータが格納されている可能性があり、現在実行
中のプロセスが侵してはならない領域である。
【0016】現在スタック格納領域11を使用している
現在実行中のプロセスにおいてスタックオーバーフロー
が発生すると、主記憶のメモリ空間内或いは別のメモリ
空間内に確保されている一時スタック格納領域13を、
現在スタック格納領域11に連続する領域に割り付ける
ようにアドレス変換が実行される。図2は、アドレス変
換により一時スタック格納領域13が現在スタック格納
領域11に連続するように配置されている状態を示す。
CPUからメモリ空間を見ると、図2に示されるように
各領域が配置されており、一時スタック格納領域13と
オーバーラップしている占有領域12部分にはアクセス
することが出来ない。従って、スタック拡張処理によっ
て占有領域12の内容が破壊されることは無い。
【0017】一時スタック格納領域13が配置される
と、この一時スタック格納領域13を作業領域として使
用してスタック拡張処理を実行する。即ち、現在スタッ
ク格納領域11より大きな連続した空き領域を主記憶メ
モリ空間10内で探したり、スタックオーバーフロー発
生前のスタックの内容を新たに獲得したスタック格納領
域に移動したり、複数のスタックフレームからなるスタ
ックを適当なサイズに分割したりする処理を実行する。
【0018】例えば現在スタック格納領域11より大き
な連続した空き領域を主記憶メモリ空間10内に確保す
る場合には、図1に拡張処理後スタック格納領域14と
して示すように、新たなスタック格納領域を確保し、現
在スタック格納領域11の内容を拡張処理後スタック格
納領域14に移動することで、拡張処理後スタック格納
領域14を以降の処理において現在スタック格納領域と
して使用する。
【0019】この拡張処理後スタック格納領域14は、
論理空間上で連続した領域であれば物理空間上で連続し
た領域である必要はなく、複数の空き領域をリストによ
り纏めたチェーン構造であってもよい。またスタックの
内容を実際に新たなスタック格納領域に移動しても構わ
ないし、新たなスタック格納領域を現在スタック格納領
域11に連続するようにメモリ管理機構によりアドレス
制御してもよい。
【0020】スタック拡張処理が完了した後は、一時ス
タック格納領域13の割付を終了することで、現在スタ
ック格納領域11に隣接する占有領域12の部分をアク
セス可能にする。従ってその後は、占有領域12に通常
にアクセスすることが可能になる。
【0021】以上のように、スタックオーバーフロー時
に占有領域12が現在スタック格納領域11の伸張方向
に隣接していたとしても、一時スタック格納領域13を
割り付けて作業領域として使用することで、スタック拡
張処理を実行することが出来る。従って、従来のように
スタック拡張処理のための作業領域をスタック格納領域
内に確保しておく必要が無くなる。また各プロセスにお
いてスタックオーバーフローが発生するたびに一時スタ
ック格納領域13を順次利用すればよいので、複数のプ
ロセスで時分割共有する単一の一時スタック格納領域1
3を用意しておけばよく、作業領域を効率的に使用しな
がらスタック拡張処理を実行することが可能になる。
【0022】図3は、一時スタック格納領域を主記憶メ
モリ空間上に配置した場合を示す図である。
【0023】スタックオーバーフローが発生すると、ア
ドレス変換が行われ、一時スタック格納領域13が現在
スタック格納領域11に連続する。前述のようにメモリ
空間は、CPUからは図2のように見える。
【0024】図4は、図3のように一時スタック格納領
域を主記憶メモリ空間上に配置するための構成を示す図
である。
【0025】図4に示すように、実行ユニット21と主
記憶ユニット23との間にアドレス変換ユニット22を
設ける。アドレス変換ユニット22は、実行ユニット2
1が使用する論理アドレスと主記憶ユニット23の物理
アドレスとの間でアドレスを変換する。
【0026】スタックオーバーフロー発生時には、実行
ユニット21からスタックオーバーフロー通知をアドレ
ス変換ユニット22に供給する。アドレス変換ユニット
22は、これに応答して主記憶ユニット23の主記憶メ
モリ空間10の一部である一時スタック格納領域13を
現在スタック格納領域11にリンクするようにアドレス
変換を実行する。
【0027】図5は、一時スタック格納領域を主記憶メ
モリ空間上に配置する構成の一例を示す図である。
【0028】図3において、一時スタック格納領域13
は例えば所定のアドレスに固定的に割り当てられてい
る。それに対して図5においては、一時スタックポイン
タ15に一時スタック格納領域13を示すポインタ(一
時スタック格納領域13のアドレス)を格納する構成と
なっている。このような構成とすることで、システムの
都合に応じて、一時スタック格納領域13を主記憶メモ
リ空間10内で移動することが可能になる。
【0029】図6は、現在スタック格納領域を現在スタ
ックポインタで管理する構成の一例を示す図である。
【0030】図6の構成においては、現在スタックポイ
ンタ16に現在スタック格納領域11を示すポインタ
(現在スタック格納領域11のアドレス)を格納する構
成となっている。スタック拡張処理によってスタックフ
レーム(スタックの内容)を完全に一時スタック格納領
域或いは拡張処理後スタック格納領域に移動した後であ
れば、現在スタックポインタ16に格納されるポインタ
を変更するという単純な操作によって、現在スタック格
納領域11の主記憶メモリ空間10内での位置を随時変
更することができる。図7は、現在スタックポインタ1
6による現在スタック格納領域11の移動を説明する図
である。図7に示されるように、現在スタック格納領域
11のデータを拡張処理後スタック格納領域14に転送
し、その後現在スタックポインタ16のポインタを書き
換えることで、現在スタックポインタ16が拡張処理後
スタック格納領域14を指し示すように設定する。これ
により現在スタック格納領域11は開放され、以後の処
理においては、拡張処理後スタック格納領域14が現在
スタック格納領域11として利用される。
【0031】図8は、一時スタック格納領域を主記憶メ
モリ空間とは別のメモリ空間で構成した場合を示す図で
ある。
【0032】図8においては、一時スタックレジスタ1
7を設け、このレジスタにより一時スタック格納領域1
3を実現する。このように主記憶ユニットとは別の高速
レジスタにより一時スタック格納領域13を構成するこ
とで、スタック拡張処理を高速に実行することが可能に
なる。
【0033】図9は、図8のように一時スタック格納領
域を一時スタックレジスタで実現するための構成を示す
図である。
【0034】図9に示すように、実行ユニット21と主
記憶ユニット23との間にアドレス変換ユニット22を
設ける。アドレス変換ユニット22は、実行ユニット2
1が使用する論理アドレスと主記憶ユニット23の物理
アドレスとの間でアドレスを変換する。また一時スタッ
クレジスタ17がアドレス変換ユニット22に接続され
る。アドレス変換ユニット22はマルチプレクサ31を
含み、主記憶ユニット23と一時スタックレジスタ17
との間でアクセス先を切換可能となっている。
【0035】スタックオーバーフロー発生時には、実行
ユニット21からスタックオーバーフロー通知をアドレ
ス変換ユニット22に供給する。アドレス変換ユニット
22のマルチプレクサ31は、これに応答してマッピン
グ先を主記憶ユニット23から一時スタックレジスタ1
7に切り替えることで、一時スタック格納領域13への
アクセスを可能にする。
【0036】図10は、一時スタックレジスタを構成す
る高速レジスタの容量が十分でない場合にキャッシュを
利用した構成を示す図である。図10において、図9と
同一の構成要素は同一の番号で参照され、その説明は省
略する。
【0037】図10の構成では、図9の構成に加え、連
想制御ユニット24が一時スタックレジスタ17と主記
憶ユニット23との間に設けられている。この連想制御
ユニット24によって、一時スタックレジスタ17を主
記憶ユニット23のキャッシュメモリとして使用するこ
とが可能になる。即ち使用頻度の高いデータを高速アク
セスが可能な一時スタックレジスタ17に格納してお
き、キャッシュミスが発生したときには主記憶ユニット
23にアクセスするように制御する。このように構成す
ることで、高速な一時スタックレジスタ17を用意して
高速動作を実現すると共に、一時スタックレジスタ17
として必要になる最大容量を用意することなく適度なメ
モリ容量を確保しておけばよく、コスト及び実装面積と
性能とのバランスを考慮した構成とすることが出来る。
【0038】図11は、連想制御により一時スタックレ
ジスタのマッピングをする場合のメモリ空間の構成を示
す図である。
【0039】図11に示されるように、現在スタックポ
インタ16に現在スタック格納領域11を示すポインタ
(現在スタック格納領域11のアドレス)を格納すると
共に、連想一時スタックポインタ18に連想一時スタッ
ク格納領域19を示すポインタ(連想一時スタック格納
領域19のアドレス)を格納する構成となっている。
【0040】このような構成とすることで、システムの
都合に応じて、連想一時スタック格納領域19を主記憶
メモリ空間10内で容易に移動することが可能になる。
また現在スタックポインタ16に格納されるポインタを
変更するという単純な操作によって、現在スタック格納
領域11の主記憶メモリ空間10内での位置を随時変更
することが出来る。
【0041】以上、本発明を実施例に基づいて説明した
が、本発明は上記実施例に限定されるものではなく、特
許請求の範囲に記載の範囲内で様々な変形が可能であ
る。
【発明の効果】本発明においては、現在スタック格納領
域を使用している現在実行中のプロセスにおいてスタッ
クオーバーフローが発生すると、主記憶のメモリ空間内
或いは別のメモリ空間内に確保されている一時スタック
格納領域を、現在スタック格納領域に連続する領域に割
り付けるようにアドレス変換が実行される。一時スタッ
ク格納領域が配置されると、この一時スタック格納領域
を作業領域として使用してスタック拡張処理を実行す
る。
【0042】従って、従来のようにスタック拡張処理の
ための作業領域をスタック格納領域内に確保しておく必
要が無くなる。また各プロセスにおいてスタックオーバ
ーフローが発生するたびに一時スタック格納領域を順次
利用すればよいので、複数のプロセスで時分割共有する
単一の一時スタック格納領域を用意しておけばよく、作
業領域を効率的に使用しながらスタック拡張処理を実行
することが可能になる。
【図面の簡単な説明】
【図1】本発明によるスタック記憶領域の管理の原理を
説明するための図である。
【図2】アドレス変換により一時スタック格納領域が現
在スタック格納領域に連続するように配置されている状
態を示す図である。
【図3】一時スタック格納領域を主記憶メモリ空間上に
配置した場合を示す図である。
【図4】図3のように一時スタック格納領域を主記憶メ
モリ空間上に配置するための構成を示す図である。
【図5】一時スタック格納領域を主記憶メモリ空間上に
配置する構成の一例を示す図である。
【図6】現在スタック格納領域を現在スタックポインタ
で管理する構成の一例を示す図である。
【図7】現在スタックポインタによる現在スタック格納
領域の移動を説明する図である。
【図8】一時スタック格納領域を主記憶メモリ空間とは
別のメモリ空間で構成した場合を示す図である。
【図9】図8のように一時スタック格納領域を一時スタ
ックレジスタで実現するための構成を示す図である。
【図10】一時スタックレジスタを構成する高速レジス
タの容量が十分でない場合にキャッシュを利用した構成
を示す図である。
【図11】連想制御により一時スタックレジスタのマッ
ピングをする場合のメモリ空間の構成を示す図である。
【符号の説明】
11 現在スタック格納領域 12 占有領域 13 一時スタック格納領域 14 拡張処理後スタック格納領域

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】所定の記憶領域に一時スタック格納領域を
    予め設け、 主記憶空間内で現在スタック格納領域にオーバーフロー
    が発生すると該現在スタック格納領域に連続するメモリ
    領域に該一時スタック格納領域を割り当て、 該一時スタック格納領域を作業領域として使用すること
    により新たなスタック格納領域を確保して該現在スタッ
    ク格納領域に対するスタック拡張処理を実行する各段階
    を含むことを特徴とするスタック管理方法。
  2. 【請求項2】該現在スタック格納領域に対するスタック
    拡張処理を終了すると該メモリ領域への一時スタック格
    納領域の割り当てを終了することを特徴とする請求項1
    記載のスタック管理方法。
  3. 【請求項3】該一時スタック格納領域は該主記憶空間内
    の所定のアドレスに設けられることを特徴とする請求項
    1記載のスタック管理方法。
  4. 【請求項4】該一時スタック格納領域を該主記憶空間内
    に設け該一時スタック格納領域の指し示すアドレスポイ
    ンタを設けることを特徴とする請求項1記載のスタック
    管理方法。
  5. 【請求項5】該現在スタック格納領域を指し示すアドレ
    スポインタを設けることを特徴とする請求項1記載のス
    タック管理方法
  6. 【請求項6】該一時スタック格納領域は該主記憶空間を
    構成するメモリとは別の高速レジスタに設けられること
    を特徴とする請求項1記載のスタック管理方法。
  7. 【請求項7】主記憶空間を構成する主記憶ユニットと、 該主記憶空間に設けた現在スタック格納領域を利用して
    処理を実行する実行ユニットと、 該現在スタック格納領域にオーバーフローが発生すると
    該実行ユニットからのオーバーフロー通知に応じて該現
    在スタック格納領域に連続するメモリ領域に一時スタッ
    ク格納領域を割り当てるアドレス変換ユニットを含み、
    該実行ユニットは、該一時スタック格納領域を作業領域
    として使用することにより新たなスタック格納領域を確
    保して該現在スタック格納領域に対するスタック拡張処
    理を実行することを特徴とする情報処理装置。
  8. 【請求項8】該一時スタック格納領域は該主記憶空間の
    所定のアドレスに設けられることを特徴とする請求項7
    記載の情報処理装置。
  9. 【請求項9】該一時スタック格納領域を設ける一時スタ
    ックレジスタを更に含むことを特徴とする請求項7記載
    の情報処理装置。
  10. 【請求項10】該一時スタックレジスタと該主記憶ユニ
    ットとを接続する連想制御ユニットを更に含むことを特
    徴とする請求項7記載の情報処理装置。
JP2002074732A 2002-03-18 2002-03-18 スタック管理方法及び情報処理装置 Withdrawn JP2003271448A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002074732A JP2003271448A (ja) 2002-03-18 2002-03-18 スタック管理方法及び情報処理装置
US10/386,709 US20030177328A1 (en) 2002-03-18 2003-03-13 Method and apparatus for controlling stack area in memory space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002074732A JP2003271448A (ja) 2002-03-18 2002-03-18 スタック管理方法及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2003271448A true JP2003271448A (ja) 2003-09-26

Family

ID=28035322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002074732A Withdrawn JP2003271448A (ja) 2002-03-18 2002-03-18 スタック管理方法及び情報処理装置

Country Status (2)

Country Link
US (1) US20030177328A1 (ja)
JP (1) JP2003271448A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009157542A (ja) * 2007-12-26 2009-07-16 Nec Electronics Corp 情報処理装置及びそのスタックポインタ更新方法
KR100928865B1 (ko) 2008-02-28 2009-11-30 주식회사 안철수연구소 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치
KR101200477B1 (ko) 2006-06-06 2012-11-12 콸콤 인코포레이티드 프로세서 코어 스택 익스텐션
JP2013534681A (ja) * 2010-07-16 2013-09-05 クアルコム,インコーポレイテッド 共有スタックの部分を割り当てるためのシステムおよび方法
KR102365261B1 (ko) * 2022-01-17 2022-02-18 삼성전자주식회사 전자시스템, 그 동작방법 및 그 메모리 장치의 동작방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198464A1 (en) * 2004-03-04 2005-09-08 Savaje Technologies, Inc. Lazy stack memory allocation in systems with virtual memory
US7363475B2 (en) * 2004-04-19 2008-04-22 Via Technologies, Inc. Managing registers in a processor to emulate a portion of a stack
US7350059B2 (en) * 2004-05-21 2008-03-25 Via Technologies, Inc. Managing stack transfers in a register-based processor
US7350047B2 (en) * 2004-10-07 2008-03-25 International Business Machines Corporation Memory overflow management
US8015612B2 (en) 2007-04-27 2011-09-06 Rogson Ariel S Addressing security in writes to memory
US7991962B2 (en) * 2007-12-10 2011-08-02 International Business Machines Corporation System and method of using threads and thread-local storage
US8990546B2 (en) 2011-10-31 2015-03-24 Freescale Semiconductor, Inc. Data processing system with safe call and return
US20160028767A1 (en) * 2014-07-25 2016-01-28 Jose Ismael Ripoll Method for Preventing Information Leaks on the Stack Smashing Protector Technique
CN107729240B (zh) * 2017-09-30 2020-10-30 山东省科学院自动化研究所 嵌入式软件堆栈溢出检测方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3725876A (en) * 1972-02-08 1973-04-03 Burroughs Corp Data processor having an addressable local memory linked to a memory stack as an extension thereof
US4405983A (en) * 1980-12-17 1983-09-20 Bell Telephone Laboratories, Incorporated Auxiliary memory for microprocessor stack overflow
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
US6038643A (en) * 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
US5835958A (en) * 1996-10-29 1998-11-10 Sun Microsystems, Inc. Method and apparatus for dynamically sizing non-contiguous runtime stacks
US6167488A (en) * 1997-03-31 2000-12-26 Sun Microsystems, Inc. Stack caching circuit with overflow/underflow unit
US6314513B1 (en) * 1997-09-30 2001-11-06 Intel Corporation Method and apparatus for transferring data between a register stack and a memory resource
US6006323A (en) * 1998-05-20 1999-12-21 Industrial Technology Research Institute Intelligent multiple stack management unit

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101200477B1 (ko) 2006-06-06 2012-11-12 콸콤 인코포레이티드 프로세서 코어 스택 익스텐션
JP2009157542A (ja) * 2007-12-26 2009-07-16 Nec Electronics Corp 情報処理装置及びそのスタックポインタ更新方法
KR100928865B1 (ko) 2008-02-28 2009-11-30 주식회사 안철수연구소 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치
JP2013534681A (ja) * 2010-07-16 2013-09-05 クアルコム,インコーポレイテッド 共有スタックの部分を割り当てるためのシステムおよび方法
KR102365261B1 (ko) * 2022-01-17 2022-02-18 삼성전자주식회사 전자시스템, 그 동작방법 및 그 메모리 장치의 동작방법

Also Published As

Publication number Publication date
US20030177328A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
US8307053B1 (en) Partitioned packet processing in a multiprocessor environment
US7509391B1 (en) Unified memory management system for multi processor heterogeneous architecture
EP1247168B1 (en) Memory shared between processing threads
US6948034B2 (en) Method for use of stack
EP1734444A2 (en) Exchanging data between a guest operating system and a control operating system via memory mapped I/O
JP2003271448A (ja) スタック管理方法及び情報処理装置
US7661115B2 (en) Method, apparatus and program storage device for preserving locked pages in memory when in user mode
KR101150661B1 (ko) 정보 처리 장치 및 메모리 영역 관리 방법
US20030056084A1 (en) Object orientated heterogeneous multi-processor platform
KR20080017292A (ko) 내장 시스템들을 위한 저장 아키텍쳐
US8291426B2 (en) Memory allocators corresponding to processor resources
JP3810735B2 (ja) スケーラブル・メモリの効率的なスレッドローカル・オブジェクト割り当て方法
JP4130465B2 (ja) メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術
KR20010080208A (ko) 처리 시스템 스케쥴링
JP3546694B2 (ja) マルチスレッド計算機システム及びマルチスレッド実行制御方法
US6895583B1 (en) Task control block for a computing environment
EP1067461A1 (en) Unified memory management system for multi process heterogeneous architecture
JPH1173365A (ja) データ移動操作を最適化する方法
JP7217341B2 (ja) プロセッサおよびレジスタの継承方法
RU2238584C2 (ru) Способ организации персистентной кэш памяти для многозадачных, в том числе симметричных многопроцессорных компьютерных систем и устройство для его осуществления
KR100772874B1 (ko) 메모리에서 공유된 오브젝트들에 대해 유용한 페이지관리를 제공하는 장치 및 방법
JPH09167114A (ja) マルチスレッドタスクのスタック割り当て方法
JP2742245B2 (ja) 並列計算機
JP2002268897A (ja) スレッド管理方法及び情報処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050607