JPS60169945A - スタツク制御方式 - Google Patents
スタツク制御方式Info
- Publication number
- JPS60169945A JPS60169945A JP2572384A JP2572384A JPS60169945A JP S60169945 A JPS60169945 A JP S60169945A JP 2572384 A JP2572384 A JP 2572384A JP 2572384 A JP2572384 A JP 2572384A JP S60169945 A JPS60169945 A JP S60169945A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- address
- stack pointer
- memory
- control
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、プロセッサ内に設けられるスタックメモリの
制御を行うスタック制御方式の改良に関する。
制御を行うスタック制御方式の改良に関する。
計算機システムにおいては、データ処理途中の演算結果
(動作環境)を一時的に格納しておくのに、メインメモ
リのワークエリアを利用することが行なわれている。一
方、メインメモリと演算結果のやりとりを行なうと、時
間がかかることから、近年プロセッサ内部に高速のスタ
ックメモリをハードウェアとして設け、このスタックメ
モリを利用して演算結果の一時格納を行うハードウェア
スタック機構が採用されている。
(動作環境)を一時的に格納しておくのに、メインメモ
リのワークエリアを利用することが行なわれている。一
方、メインメモリと演算結果のやりとりを行なうと、時
間がかかることから、近年プロセッサ内部に高速のスタ
ックメモリをハードウェアとして設け、このスタックメ
モリを利用して演算結果の一時格納を行うハードウェア
スタック機構が採用されている。
係るハードウェアスタック機構を有する計算機システム
では、第1図に示す様にプロセッサユニット1とメイン
メモリ2とが外部バス3で接続されるとともにプロセッ
サユニット1内にはハード的に設けられたスタックメモ
リ4を備えており、プロセッサユニット1内の演算部等
と内部バスで接続される。
では、第1図に示す様にプロセッサユニット1とメイン
メモリ2とが外部バス3で接続されるとともにプロセッ
サユニット1内にはハード的に設けられたスタックメモ
リ4を備えており、プロセッサユニット1内の演算部等
と内部バスで接続される。
一般に計算機システムでは、複数のプロセス(タスク)
を同時に実行することが行なわれているので、スタック
メモリもこのプロセスに応じて分割使用される。しかし
ながら、従来のスタック制御方式では、第2図に示す如
く、スタックメモリ4が各プロセスに応じてブロックP
1〜P4に分割され、且つ各ブロックとしてプロセスの
大小にかかわらず一定の大きさの領域が割当てられてお
り、そしてスタック制御部5は演算部等の指定に応じて
スタックポインタ5oの示すアドレスにアクセスを行っ
ていた。
を同時に実行することが行なわれているので、スタック
メモリもこのプロセスに応じて分割使用される。しかし
ながら、従来のスタック制御方式では、第2図に示す如
く、スタックメモリ4が各プロセスに応じてブロックP
1〜P4に分割され、且つ各ブロックとしてプロセスの
大小にかかわらず一定の大きさの領域が割当てられてお
り、そしてスタック制御部5は演算部等の指定に応じて
スタックポインタ5oの示すアドレスにアクセスを行っ
ていた。
このため、非実行中のプロセスに対し割当てられたブロ
ック(例えばP2、P4)の空き領域は、いくら実行中
のプロセスに割当てられたブロック(例えばP3)が満
杯になっても使用できないことから、スタックの使用効
率が悪くなるという問題があった。しかも、この様に当
該ブロックが満杯になると、以降そのプロセスのスタッ
ク利用ができなくなるため、そのブロックP3の格納内
容をメインメモリ2へ移して(スワツピングと称す)、
そのブロックP3を空にして、当該プロセスのスタック
利用を行なわせる必要がある。このため当該プロセスの
実行が中断され、高速処理を阻害するという問題もあっ
た。
ック(例えばP2、P4)の空き領域は、いくら実行中
のプロセスに割当てられたブロック(例えばP3)が満
杯になっても使用できないことから、スタックの使用効
率が悪くなるという問題があった。しかも、この様に当
該ブロックが満杯になると、以降そのプロセスのスタッ
ク利用ができなくなるため、そのブロックP3の格納内
容をメインメモリ2へ移して(スワツピングと称す)、
そのブロックP3を空にして、当該プロセスのスタック
利用を行なわせる必要がある。このため当該プロセスの
実行が中断され、高速処理を阻害するという問題もあっ
た。
一般にスタックメモリの容量は、メインメモリが存在す
ることから、その効率を考え有限なものであることから
、スタックの有効利用が望まれていた。
ることから、その効率を考え有限なものであることから
、スタックの有効利用が望まれていた。
本発明の目的は、ハードウェアスタック機構を有する計
算機システムにおいて、複数のプロセスを実行制御する
際にスタックを効率的に利用出来るスタック制御方式を
提供するにある。
算機システムにおいて、複数のプロセスを実行制御する
際にスタックを効率的に利用出来るスタック制御方式を
提供するにある。
上述の目的の達成のため、本発明は、スタックメモリの
アドレスを示すスタックポインタと、該スタックメモリ
内の各プロセスの占有状況を示すため該プロセスの識別
子情報、占有状況フラグ情報及び該スタックメモリ内の
占有位置情報を格納するテーブルと、該テーブルの情報
に基き該スタックポインタを制御するとともに該テーブ
ルの制御を行なう制御回路とを有し、該テーブル上の指
定されたプロセスに対応する占有位置情報に基き該スタ
ックポインタを制御するとともに該プロセスの実行に伴
ない該テーブルを書替え制御して該スタックメモリのス
タック割当てを可変にすることを特徴とする。
アドレスを示すスタックポインタと、該スタックメモリ
内の各プロセスの占有状況を示すため該プロセスの識別
子情報、占有状況フラグ情報及び該スタックメモリ内の
占有位置情報を格納するテーブルと、該テーブルの情報
に基き該スタックポインタを制御するとともに該テーブ
ルの制御を行なう制御回路とを有し、該テーブル上の指
定されたプロセスに対応する占有位置情報に基き該スタ
ックポインタを制御するとともに該プロセスの実行に伴
ない該テーブルを書替え制御して該スタックメモリのス
タック割当てを可変にすることを特徴とする。
以下、本発明を実施例により詳細に説明する。
第3図は本発明の一実施例プロツク図であり、図中、第
2図と同一のものは同一の記号で示してあり、51は加
減算器であり、スタックポインタレジスタ50の内容を
加減算するもの、52ばオア回路であり、スタックポイ
ンタレジスタ50に加減算器51の内容又は後述するス
タックポインタ制御部からの開始アドレスをセットする
ためのもの、53は制御テーブルであり、各プロセスの
スタック占有情報を格納するためのものであり、スタッ
ク占有情報として占有位置情報B−ADH(スタック上
に同一プロセスが連続して存在する場合の基点アドレス
であり、以下基点アドレスと称t) 、P−LNG (
連続した同一プロセスのスタック上での大きさを示し、
終点を基点からの相対アドレスで示したものであり、以
下長さと称す)と、占有識別子ID(テーブル上の情報
がどのプロセスのものであるかを示すもの)と、占有状
況フラグSF(プロセスのその占有領域、ロケーション
での状態を示すフラグ)とが格納されている。
2図と同一のものは同一の記号で示してあり、51は加
減算器であり、スタックポインタレジスタ50の内容を
加減算するもの、52ばオア回路であり、スタックポイ
ンタレジスタ50に加減算器51の内容又は後述するス
タックポインタ制御部からの開始アドレスをセットする
ためのもの、53は制御テーブルであり、各プロセスの
スタック占有情報を格納するためのものであり、スタッ
ク占有情報として占有位置情報B−ADH(スタック上
に同一プロセスが連続して存在する場合の基点アドレス
であり、以下基点アドレスと称t) 、P−LNG (
連続した同一プロセスのスタック上での大きさを示し、
終点を基点からの相対アドレスで示したものであり、以
下長さと称す)と、占有識別子ID(テーブル上の情報
がどのプロセスのものであるかを示すもの)と、占有状
況フラグSF(プロセスのその占有領域、ロケーション
での状態を示すフラグ)とが格納されている。
SPCはスタックポインタ制御部であり、スタックポイ
ンタレジスタ50に開始アドレスを与えるとともに制御
テーブル53を書替え制御するものであり、以下の54
〜60によって構成される。
ンタレジスタ50に開始アドレスを与えるとともに制御
テーブル53を書替え制御するものであり、以下の54
〜60によって構成される。
54はアダー(加算器)であり、制御テーブル53から
読出された基点アドレスB−ADRと長さP−LNGと
を加算してスタックポインタレジスタ50にセントする
開始アドレスを得るもの、55は比較回路であり、実行
プロセスのスタックポインタレジスタ50の内容と、ス
タック上の当該実行プロセスの領域の次の領域に割当て
られたテーブル上の基点アドレスB−ADRとを比較し
て当該プロセスのスタック上の使用領域がフル(満杯)
になったかを検出するもの、56はカウンタレジスタで
あり、プロセスの実行時に制御テーブル53上の長さP
−LNGがセットされ、長さP−LNGをスタックポイ
ンタレジスタ50の内容の変化と同期して変化させたも
のを保持しておくもの、57は加減算器であり、カウン
タレジスタ56の内容を加減算器51の動作に応じて加
減算するもの、58はオア回路であり、カウンタレジス
タ56に制御テーブル53の長さP−LNG又は加減算
器57の出力をセントするためのもの、59は零検出器
であり、カウンタレジスタ56の内容が零(即ち、プロ
セスの占有解除)となったことを検出するためのもの、
60はテーブル制御部であり、図示しない演算部等の指
定プロセスに応じ、制御テーブル53上の対応するスタ
ック占有情報を検索し、更に比較回路55のフル信号に
応じ新たなスタック上の領域を割当てるため制御テーブ
ル53を書替え、零検出器59のゼロ信号に応じスタッ
ク上のそのプロセスに割当てられた領域の占有を解除す
るため制御テーブル53を書替えるためのものである。
読出された基点アドレスB−ADRと長さP−LNGと
を加算してスタックポインタレジスタ50にセントする
開始アドレスを得るもの、55は比較回路であり、実行
プロセスのスタックポインタレジスタ50の内容と、ス
タック上の当該実行プロセスの領域の次の領域に割当て
られたテーブル上の基点アドレスB−ADRとを比較し
て当該プロセスのスタック上の使用領域がフル(満杯)
になったかを検出するもの、56はカウンタレジスタで
あり、プロセスの実行時に制御テーブル53上の長さP
−LNGがセットされ、長さP−LNGをスタックポイ
ンタレジスタ50の内容の変化と同期して変化させたも
のを保持しておくもの、57は加減算器であり、カウン
タレジスタ56の内容を加減算器51の動作に応じて加
減算するもの、58はオア回路であり、カウンタレジス
タ56に制御テーブル53の長さP−LNG又は加減算
器57の出力をセントするためのもの、59は零検出器
であり、カウンタレジスタ56の内容が零(即ち、プロ
セスの占有解除)となったことを検出するためのもの、
60はテーブル制御部であり、図示しない演算部等の指
定プロセスに応じ、制御テーブル53上の対応するスタ
ック占有情報を検索し、更に比較回路55のフル信号に
応じ新たなスタック上の領域を割当てるため制御テーブ
ル53を書替え、零検出器59のゼロ信号に応じスタッ
ク上のそのプロセスに割当てられた領域の占有を解除す
るため制御テーブル53を書替えるためのものである。
ADCはアドレス制御部であり、スタックポインタ制御
部spcのテーブル制御部60の指示に応じて制御テー
ブル53をアクセスするものであり、制御テーブル53
のためのアドレスカウンタと、リード(Read) /
ライト(Write)指示回路とを含むものである。
部spcのテーブル制御部60の指示に応じて制御テー
ブル53をアクセスするものであり、制御テーブル53
のためのアドレスカウンタと、リード(Read) /
ライト(Write)指示回路とを含むものである。
次に第3図実施例構成の動作について第4図乃至第6図
によって説明する。
によって説明する。
第4図は占有状況フラグSFとスタック上での状態を示
す関係図であり、ステータス=0の時、即ち5F=Oの
時には、第4図(A)に示す如くスタック4内のその領
域(ロケーション)が空き領域(未使用)となっている
ことを示し、ステータス=1の時、即ち5F=1の時に
は、第4図(B)に示す如くスタック4内のそのロケー
ションにプロセスが存在して使用されており、且つスタ
ック上での先頭のロケーションでないことを示し、ステ
ータス=2の時、即ち5F=2の時には、第4図(C)
に示す如くスタック4内のそのロケーションにプロセス
が存在して使用されており且つスタック上での先頭のロ
ケーションであることを示す。
す関係図であり、ステータス=0の時、即ち5F=Oの
時には、第4図(A)に示す如くスタック4内のその領
域(ロケーション)が空き領域(未使用)となっている
ことを示し、ステータス=1の時、即ち5F=1の時に
は、第4図(B)に示す如くスタック4内のそのロケー
ションにプロセスが存在して使用されており、且つスタ
ック上での先頭のロケーションでないことを示し、ステ
ータス=2の時、即ち5F=2の時には、第4図(C)
に示す如くスタック4内のそのロケーションにプロセス
が存在して使用されており且つスタック上での先頭のロ
ケーションであることを示す。
次に第5図及び第6図の制御テーブル遷移図に従って第
3図構成の動作を説明する。
3図構成の動作を説明する。
■演算部における実行プロセスが切換わると、その指定
プロセスがスタックポインタ制御部SPCに与えられる
。これに応じてテーブル制御部60はアドレス制御部A
DCを動作せしめ、制御テーブル53上の状況フラグS
F及び占有識別子IDを順次読み出し、指定プロセスに
対応するスタック上の領域の有無を判定する。
プロセスがスタックポインタ制御部SPCに与えられる
。これに応じてテーブル制御部60はアドレス制御部A
DCを動作せしめ、制御テーブル53上の状況フラグS
F及び占有識別子IDを順次読み出し、指定プロセスに
対応するスタック上の領域の有無を判定する。
■スタック上で該プロセスが初めて起動される時は、そ
のプロセスのスタック上のロケーションを確保するため
、テーブル制御部60は再度制御テーブル53の状況フ
ラグSFを読み出し、第5図(A)の如く、5F=2、
即ちスタックの先頭(P k)を見つけ、スタックの先
頭の状況フラグSFを2”から“1”へ書替え、更に先
頭であったエリアpkの次のエリアの状況フラグSFを
“2”とし、占有識別子IDを当該プロセスであるPN
に書替える。更に当該プロセスPj!のスタック上の基
点BPβをスタ・ツク上の前のロケーションの最終アド
レスよりめる。即ち、前のロケーションの最終アドレス
は(BPk+LPk’)であるので、アダー54でこれ
をめ、選択回路52を介しスタックポインタレジスタ5
(Hこ初期設定した後、スタックポインタレジスタ50
の内容(即ち、BPI2)を制御テーブル53のID=
PI2に対応するB−ADR欄に書込み、一方、文1応
するp−t、Nc+laにはカウンタレジスタ56の内
容゛O”を書込む。これによらてスタ・ツク上Gこおい
てプ1コセスPlのロケーションが確保されたことにな
る。
のプロセスのスタック上のロケーションを確保するため
、テーブル制御部60は再度制御テーブル53の状況フ
ラグSFを読み出し、第5図(A)の如く、5F=2、
即ちスタックの先頭(P k)を見つけ、スタックの先
頭の状況フラグSFを2”から“1”へ書替え、更に先
頭であったエリアpkの次のエリアの状況フラグSFを
“2”とし、占有識別子IDを当該プロセスであるPN
に書替える。更に当該プロセスPj!のスタック上の基
点BPβをスタ・ツク上の前のロケーションの最終アド
レスよりめる。即ち、前のロケーションの最終アドレス
は(BPk+LPk’)であるので、アダー54でこれ
をめ、選択回路52を介しスタックポインタレジスタ5
(Hこ初期設定した後、スタックポインタレジスタ50
の内容(即ち、BPI2)を制御テーブル53のID=
PI2に対応するB−ADR欄に書込み、一方、文1応
するp−t、Nc+laにはカウンタレジスタ56の内
容゛O”を書込む。これによらてスタ・ツク上Gこおい
てプ1コセスPlのロケーションが確保されたことにな
る。
■一方、スタック上で該プロセスが起動されたことがあ
り係るプロセスにより占有された領域力(有る場合は、
テーブル制御部60は、制御テーフ゛ル53上のID欄
がPlに対応するB−ADH欄の内容BPβ、P−LN
G欄の内容LPJを読み出し、アダー54に与え(UP
I!、+LPlの加算を行い、開始アドレスとしてスタ
ックポインタレジスタ50にセントし、且つカウンタレ
ジスタ56にLPj2をセットする。
り係るプロセスにより占有された領域力(有る場合は、
テーブル制御部60は、制御テーフ゛ル53上のID欄
がPlに対応するB−ADH欄の内容BPβ、P−LN
G欄の内容LPJを読み出し、アダー54に与え(UP
I!、+LPlの加算を行い、開始アドレスとしてスタ
ックポインタレジスタ50にセントし、且つカウンタレ
ジスタ56にLPj2をセットする。
■この様にして、スタックポインタレジスタ50に(B
Pjl+LP6)及びカウンタレジスタ56にLPβに
セントされた後、更に演算部等からのり一ド/ライト命
令毎に加減算器51.57が同期動作し、スタックポイ
ンタレジスタ50の内容及びカウンタレジスタ56の内
容を加減算してスタックポインタレジスタ50及びカウ
ンタレジスタ56にセントする。従ってスタックポイン
タレジスタ50にはスタック4上の絶対アドレスがカウ
ンタレジスタ56にはスタック4上の基点アドレスBP
lからの相対アドレスが保持されることになる。スタッ
クポインタレジスタ50の内容によってスタック4がア
クセスされるので、そのアドレスヘッドのり一ド/ライ
トが可能となる。
Pjl+LP6)及びカウンタレジスタ56にLPβに
セントされた後、更に演算部等からのり一ド/ライト命
令毎に加減算器51.57が同期動作し、スタックポイ
ンタレジスタ50の内容及びカウンタレジスタ56の内
容を加減算してスタックポインタレジスタ50及びカウ
ンタレジスタ56にセントする。従ってスタックポイン
タレジスタ50にはスタック4上の絶対アドレスがカウ
ンタレジスタ56にはスタック4上の基点アドレスBP
lからの相対アドレスが保持されることになる。スタッ
クポインタレジスタ50の内容によってスタック4がア
クセスされるので、そのアドレスヘッドのり一ド/ライ
トが可能となる。
一方、加減算器51.57はリード時には減算を行いス
タック上の使用ロケーションを縮め、ライト時には加算
を行い、スタック上の使用ロケーションを伸ばす。
タック上の使用ロケーションを縮め、ライト時には加算
を行い、スタック上の使用ロケーションを伸ばす。
この様にして、プロセスPgの制御が終了し別のプロセ
スに切換わると、第5図(B)に示す如く、テーブル制
御部60はアドレス制御部ADCに書込み1行来を行い
、カウンタレジスタ56の内容PA’を当該プロセスの
ための制御テーブル53上のP−LNG欄に書込む。
スに切換わると、第5図(B)に示す如く、テーブル制
御部60はアドレス制御部ADCに書込み1行来を行い
、カウンタレジスタ56の内容PA’を当該プロセスの
ための制御テーブル53上のP−LNG欄に書込む。
■この様にプロセスPAによるスタックメモリ4の使用
中に、テーブル制御部60は実行中のブI:JセスPI
!、のロケーションの次のロケーションの基点アドレス
(例えばI3Pm)をアドレス制御部へ〇Cを介し読出
し、比較回路55でスタックポインタレジスタ50の内
容と比較せしめる。この比較は、プロセスPlがスタッ
クメモリ4上の現在使用中のロケーションを使いきった
か否かを判定するためのものであり、次のロケーション
の基点アドレスとスタックポインタ50の内容とが一致
すると、使用中のロケーションを使いきったことになる
。この様に使用中のロケーションを使tl)きり、更に
プロセスPβのスタックが伸びる場合には、スタック上
の使用可能な新たなロケーションを確保しなければなら
ない。そこで、比較回路55から前述の一致によりフル
信号が発生すると、テーブル制御部60はアドレス制御
部ADCを介してカウンタレジスタ56の内容を制御テ
ーブル53のID欄がPj2に対応するP−LNG欄に
書込む。
中に、テーブル制御部60は実行中のブI:JセスPI
!、のロケーションの次のロケーションの基点アドレス
(例えばI3Pm)をアドレス制御部へ〇Cを介し読出
し、比較回路55でスタックポインタレジスタ50の内
容と比較せしめる。この比較は、プロセスPlがスタッ
クメモリ4上の現在使用中のロケーションを使いきった
か否かを判定するためのものであり、次のロケーション
の基点アドレスとスタックポインタ50の内容とが一致
すると、使用中のロケーションを使いきったことになる
。この様に使用中のロケーションを使tl)きり、更に
プロセスPβのスタックが伸びる場合には、スタック上
の使用可能な新たなロケーションを確保しなければなら
ない。そこで、比較回路55から前述の一致によりフル
信号が発生すると、テーブル制御部60はアドレス制御
部ADCを介してカウンタレジスタ56の内容を制御テ
ーブル53のID欄がPj2に対応するP−LNG欄に
書込む。
次に、テーブル制御部60は、アドレス制御部ADCを
介し制御テーブル53の5Flliiをサーチする。こ
れによって第6図(A)の如(,5F=0のロケーショ
ンを発見したら、そこは空きロケーションであるから、
制御テーブル53上の対応するID1liにプロセスP
j!を且つSF欄を5F=1にテーブル制御部60がア
ドレス制御部ADCを制御して冑・込み、ロケーション
を確保する。
介し制御テーブル53の5Flliiをサーチする。こ
れによって第6図(A)の如(,5F=0のロケーショ
ンを発見したら、そこは空きロケーションであるから、
制御テーブル53上の対応するID1liにプロセスP
j!を且つSF欄を5F=1にテーブル制御部60がア
ドレス制御部ADCを制御して冑・込み、ロケーション
を確保する。
そして、プロセスPj!の実行を行なうため、当該B−
ADR欄の内容(BPx)とP−LNG欄の内容(LP
x=0)との和をアダー54よりスタックポインタレジ
スタ50に、P−LN(Jlの内容をカウンタレジスタ
56に設定し、プロセスの実行を継続する。
ADR欄の内容(BPx)とP−LNG欄の内容(LP
x=0)との和をアダー54よりスタックポインタレジ
スタ50に、P−LN(Jlの内容をカウンタレジスタ
56に設定し、プロセスの実行を継続する。
■一方、前述の制御テーブル53のSF欄のサーチによ
って5F=Oのロケーションを発見できなかった場合に
は、5F=2即ちスタックの先頭の1」ケージジノを見
つける。このことはスタックの先頭まで空きロケーショ
ンがなかったことになる。そこで、スタックの先頭にプ
ロセスPIlのための新しいロケーションを生成する。
って5F=Oのロケーションを発見できなかった場合に
は、5F=2即ちスタックの先頭の1」ケージジノを見
つける。このことはスタックの先頭まで空きロケーショ
ンがなかったことになる。そこで、スタックの先頭にプ
ロセスPIlのための新しいロケーションを生成する。
第6図(B)に示す如くテーブル制御部60がID欄P
zで5F=2を発見したとすると、先づアドレス制御部
ADCを介し制御テーブル53の■DIIilPzの5
Flliを5F=1にし、更に次のエリアのSF欄を5
F=2、ID欄をID−Pj!とする。更に当該プロセ
スPβのスタック上の基点BP4を、スタック上の前の
ロケーションの最終アドレスよりめる。即ち、前のロケ
ーションの最終アドレスは(13Pz+LPz)である
ので、アダー54でこれをめ、選択回路52を介しスタ
ンクボインタレジスタ50に初期設定した後、スタック
ポインタレジスタ50の内容(即ち、BF2り・を制御
テーブル53のID=Pj2に対応するB−へDR欄に
書込み、一方、対応するP−LNC欄にはカウンタレジ
スタ56の内容“O″を書込む。これによってスタック
の先頭においてプロセスPlの新たなロケーションが確
保されたことになる。
zで5F=2を発見したとすると、先づアドレス制御部
ADCを介し制御テーブル53の■DIIilPzの5
Flliを5F=1にし、更に次のエリアのSF欄を5
F=2、ID欄をID−Pj!とする。更に当該プロセ
スPβのスタック上の基点BP4を、スタック上の前の
ロケーションの最終アドレスよりめる。即ち、前のロケ
ーションの最終アドレスは(13Pz+LPz)である
ので、アダー54でこれをめ、選択回路52を介しスタ
ンクボインタレジスタ50に初期設定した後、スタック
ポインタレジスタ50の内容(即ち、BF2り・を制御
テーブル53のID=Pj2に対応するB−へDR欄に
書込み、一方、対応するP−LNC欄にはカウンタレジ
スタ56の内容“O″を書込む。これによってスタック
の先頭においてプロセスPlの新たなロケーションが確
保されたことになる。
そして、前述のスタックポインタレジろ夕50及びカウ
ンタレジスタ56の設定によって、プロセスの実行が継
続される。
ンタレジスタ56の設定によって、プロセスの実行が継
続される。
■逆に、プロセスPlによるスタックメモリ4の使用中
に、スタックの縮みを零検出器59で検出している。即
ち、零検出器59はカウンタレジスタ56が零になった
か否かを検出しており、カウンタレジスタ56の内容が
零になると当該ロケーション内でプロセスが存在しなく
なったことになる。零検出器59はこれを検出するとゼ
ロ信号をテーブル制御部60へ与え、占有解除処理を行
なわしめる。即ち、第6図(C)に示す如く、制御テー
ブル53の当該ロケーションの5Fti+をs F=o
とし、更にP−LNC欄を0″と書替える様テーブル制
御部60がアドレス制御部ADCを介して制御する。
に、スタックの縮みを零検出器59で検出している。即
ち、零検出器59はカウンタレジスタ56が零になった
か否かを検出しており、カウンタレジスタ56の内容が
零になると当該ロケーション内でプロセスが存在しなく
なったことになる。零検出器59はこれを検出するとゼ
ロ信号をテーブル制御部60へ与え、占有解除処理を行
なわしめる。即ち、第6図(C)に示す如く、制御テー
ブル53の当該ロケーションの5Fti+をs F=o
とし、更にP−LNC欄を0″と書替える様テーブル制
御部60がアドレス制御部ADCを介して制御する。
更に当該プロセスPlの実行でスタックが縮む場合には
、テーブル制御部60ばアドレス制御部ADCを介し制
御テーブル53のID欄、SF欄を9・−チし、5F=
1で且つI D=P I!の同一プ1コセスPRに対す
るロケーションを見付ける。そして、前述の場合と同様
にスタックポインタレジスタ50に当該B−ADR欄B
PlとP−LNC;45] L P 1と和(アダー5
4の出力)を、カウンタレジスタ56にLPβを設定し
、当該プロセスPρの実行をIII続する。
、テーブル制御部60ばアドレス制御部ADCを介し制
御テーブル53のID欄、SF欄を9・−チし、5F=
1で且つI D=P I!の同一プ1コセスPRに対す
るロケーションを見付ける。そして、前述の場合と同様
にスタックポインタレジスタ50に当該B−ADR欄B
PlとP−LNC;45] L P 1と和(アダー5
4の出力)を、カウンタレジスタ56にLPβを設定し
、当該プロセスPρの実行をIII続する。
この様にして制御テーブル53の占有情報に基きスタッ
クポインタを制御するとともに占有情報を古替えること
によりスタック上の各プロセスの割当てロケーションを
可変にすることが可能となる。
クポインタを制御するとともに占有情報を古替えること
によりスタック上の各プロセスの割当てロケーションを
可変にすることが可能となる。
以上本発明を一実施例にり説明したが、本発明は本発明
の主旨に従い種々の変形が可能であり、本発明からこれ
らを排除するもので6よなl、)。
の主旨に従い種々の変形が可能であり、本発明からこれ
らを排除するもので6よなl、)。
以上説明した様に、本発明によれば、スタ・ツクメモリ
のアドレスを示すスタ・ツクポインタと、該スタックメ
モリ内の各プロセスの占有状況を示1−ため該プロセス
の識別子情報、占有状況フラク゛1青報及び該スタ・ツ
クメモリ内の占有位置情報を格納するテーブルと、該テ
ーブルの情報Gこ基き該スタックポインタを制御すると
ともに該テーブルの制御を行なう制御回路とを有し、該
テーブル上の1′行定されたプロセスに対応する占有位
置情報に基き該スタックポインタを制御するとともに該
プロセスの実行に伴ない該テーブルを書替え制御して該
スタックメモリのツク・ツク割当てを可変にすることを
特徴としているので、プロセスに対するスタックメモリ
上の割当て領域がプロセスの実行に伴ない可変にするこ
とができるという効果を奏するので、スタックメモリを
効率的しこ利用出来る。また、プロセスに対する使用エ
リアが不足してスワツピングしなければならない場合が
減少するとし)う効果も奏し、スタ・ツクメモリを設け
た高速イヒの利点を−M高めることもできる。
のアドレスを示すスタ・ツクポインタと、該スタックメ
モリ内の各プロセスの占有状況を示1−ため該プロセス
の識別子情報、占有状況フラク゛1青報及び該スタ・ツ
クメモリ内の占有位置情報を格納するテーブルと、該テ
ーブルの情報Gこ基き該スタックポインタを制御すると
ともに該テーブルの制御を行なう制御回路とを有し、該
テーブル上の1′行定されたプロセスに対応する占有位
置情報に基き該スタックポインタを制御するとともに該
プロセスの実行に伴ない該テーブルを書替え制御して該
スタックメモリのツク・ツク割当てを可変にすることを
特徴としているので、プロセスに対するスタックメモリ
上の割当て領域がプロセスの実行に伴ない可変にするこ
とができるという効果を奏するので、スタックメモリを
効率的しこ利用出来る。また、プロセスに対する使用エ
リアが不足してスワツピングしなければならない場合が
減少するとし)う効果も奏し、スタ・ツクメモリを設け
た高速イヒの利点を−M高めることもできる。
更に、テーブルの書替えによって実行してし)るので、
容易にしかも簡単に実現できるとも)う効果も奏する。
容易にしかも簡単に実現できるとも)う効果も奏する。
第1図は、ハードウエアスタ・ツク機構を有″4−る8
1算機システム構成図、第2図は従来のスタ・ツク制御
方式構成図、第3図は本発明の一実Ti缶伊1構成図、
第4図は第3図構成における占有1犬況フラク゛、とス
タック上での状態を示す関係図、第5図及び第6図は第
3図構成におけるテーブルの内容遷移図である。 図中、1−プロセツサユ二ット、4−・スタ・ツクメモ
リ、5−スタック制御部、50−・−スタ・ツクポイン
タレシス外53−制御テーフ゛ル、s p c−・・ス
タックポインク制御部、ADC・・・−アドレス制御部
。 特許出願人 富士通株式会社 代理人弁理士 山 谷 晧 榮 第 1 図 第 2 閏 第 4 図 (A) (U (c) SF璽Q 5F=j SFζ2 第 5 図 (A) 第 6 目 (A) (C)
1算機システム構成図、第2図は従来のスタ・ツク制御
方式構成図、第3図は本発明の一実Ti缶伊1構成図、
第4図は第3図構成における占有1犬況フラク゛、とス
タック上での状態を示す関係図、第5図及び第6図は第
3図構成におけるテーブルの内容遷移図である。 図中、1−プロセツサユ二ット、4−・スタ・ツクメモ
リ、5−スタック制御部、50−・−スタ・ツクポイン
タレシス外53−制御テーフ゛ル、s p c−・・ス
タックポインク制御部、ADC・・・−アドレス制御部
。 特許出願人 富士通株式会社 代理人弁理士 山 谷 晧 榮 第 1 図 第 2 閏 第 4 図 (A) (U (c) SF璽Q 5F=j SFζ2 第 5 図 (A) 第 6 目 (A) (C)
Claims (1)
- スタックメモリのアドレスを示すスタックポインタと、
該スタックメモリ内の各プロセスの占有状況を示すため
該プロセスの識別子情報、占有状況フラグ情報及び該ス
タックメモリ内の占有位置情報を格納するテーブルと、
該テーブルの情報に基き該スタックポインタを制御する
とともに該テーブルの制御を行なう制御回路とを有し、
該テーブル上の指定されたプロセスに対応する占有位置
情報に基き該スタックポインタを制御するとともに該プ
ロセスの実行に伴ない該テーブルを書替え制御して該ス
タックメモリのスタック割当てを可変にすることを特徴
とするスタック制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2572384A JPS60169945A (ja) | 1984-02-14 | 1984-02-14 | スタツク制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2572384A JPS60169945A (ja) | 1984-02-14 | 1984-02-14 | スタツク制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS60169945A true JPS60169945A (ja) | 1985-09-03 |
Family
ID=12173717
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2572384A Pending JPS60169945A (ja) | 1984-02-14 | 1984-02-14 | スタツク制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS60169945A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02143329A (ja) * | 1988-11-25 | 1990-06-01 | Toshiba Corp | プロセッサシステム |
| JPH05165651A (ja) * | 1991-12-17 | 1993-07-02 | Matsushita Electric Ind Co Ltd | スタック待避装置 |
-
1984
- 1984-02-14 JP JP2572384A patent/JPS60169945A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02143329A (ja) * | 1988-11-25 | 1990-06-01 | Toshiba Corp | プロセッサシステム |
| JPH05165651A (ja) * | 1991-12-17 | 1993-07-02 | Matsushita Electric Ind Co Ltd | スタック待避装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6505257B2 (en) | Multi-processor system, disk controller using the same and nondisruptive maintenance method thereof | |
| US6681239B1 (en) | Computer system having shared address space among multiple virtual address spaces | |
| US6393520B2 (en) | Data processor and data processing system with internal memories | |
| JPH07175698A (ja) | ファイルシステム | |
| JPS62165250A (ja) | 仮想記憶方法 | |
| JPH02227763A (ja) | データ転送制御システム | |
| US3778776A (en) | Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability | |
| JP2000200219A (ja) | 仮想メモリ管理方式 | |
| JPH06250928A (ja) | 情報処理装置 | |
| JP2010009290A (ja) | ストレージシステム,コピー制御方法およびコピー制御部 | |
| JPH0340868B2 (ja) | ||
| JPS5844263B2 (ja) | 記憶制御回路 | |
| JPH06110759A (ja) | ファイルシステム | |
| JPS61216016A (ja) | デ−タベ−スの領域管理方式 | |
| JPH08115238A (ja) | ファイルシステム | |
| JP3333527B2 (ja) | コンピュータ装置 | |
| JPS625727Y2 (ja) | ||
| JPS61136131A (ja) | 情報処理装置 | |
| JP3542894B2 (ja) | ファイルシステム | |
| JPS5817587A (ja) | 主メモリの空領域管理装置 | |
| JPS59231665A (ja) | デイスク制御装置 | |
| JPH0652045A (ja) | マイクロプロセッサ | |
| JPH10340221A (ja) | フラッシュメモリ装置 | |
| JPH03229328A (ja) | マイクロプロセッサ | |
| JPH01222350A (ja) | 記憶装置 |