JPH01126730A - スタック・メモリ装置 - Google Patents

スタック・メモリ装置

Info

Publication number
JPH01126730A
JPH01126730A JP28418187A JP28418187A JPH01126730A JP H01126730 A JPH01126730 A JP H01126730A JP 28418187 A JP28418187 A JP 28418187A JP 28418187 A JP28418187 A JP 28418187A JP H01126730 A JPH01126730 A JP H01126730A
Authority
JP
Japan
Prior art keywords
stack
memory
contents
speed memory
flop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP28418187A
Other languages
English (en)
Inventor
Shinichi Habata
幅田 伸一
Mamoru Umemura
梅村 護
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP28418187A priority Critical patent/JPH01126730A/ja
Publication of JPH01126730A publication Critical patent/JPH01126730A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は計算機におけるスタック機能を少ないハードウ
ェアによって効率よく実現することにより処理速度を増
大させて複雑な応用プログラムを広い範囲で利用可能に
するためのものである。
(従来の技術) スタック機能は、計算機の動作において一時的に状態を
保存し、関連する他の動作が終了した時点で前記保存し
た状態に復帰する機能であり、古くから頻繁に使用され
てきた基本的な機能である。一般にスタックは複数の状
態を次々に積み上げて論理的に無限のエントリを保持し
得るよう構成する必要がある。ところがハードウェアの
量的な制限により現実にはこれをすべてハードウェアで
実現することは困難である。この問題を解決するため、
従来比較的高価な少量の高速メモリと比較的安価な大容
量の低速メモリとの組み合わせにより実現されてきた。
この2階層のメモリの間のデータの出し入れは動作が複
雑であり、従来主としてソフトウェアおよびマイクロプ
ログラムによって実現されてきた。
(発明が解決しようとする問題点) スタック操作は非常に頻繁に発生するものであり、その
実現効率はシステム効率に大きく影響をおよぼすもので
ある。とくにLISPやPROLOGに代表され・るよ
うなスタック操作をプログラミング言語自体の基本メカ
ニズムとして含む言語の実行においてはその効率が極め
て重要である。論理的に無限の状態を保存し得る状態を
作り出す為には従来、システムの基本的機能としてソフ
トウェアおよびファームウェアによって実現されてきた
が、効率上およびシステム資源の限界上多くの問題を抱
えている。したがって従来より多くの発明がなされてき
たが、ハードウェアによるサポートによる実現に於いて
は複雑な動作に対応してハードウェア量が増加する傾向
があった。
より具体的には、2つのメモリ階層の間の入れ替えを行
うタイミングの検出と実際の入れ替え動作の効率が大き
な問題であった。
本発明の目的はこれらの問題点を解決したスタック・メ
モリ装置を提供することにある。
:(問題点を解決するための手段) 本発明は、スタックとして使用する2のべき乗のエント
リを格納する高速メモリと、スタック内容を退避するた
めの外部メモリと、スタック・トップカウンタと、スタ
ック・ベースカウンタと、前記2種類のカウンタの内容
を1だけ減算した出力を発生する減算器Aと、前記スタ
ック・ベースカウンタの内容を1だけ減算した出力を発
生する減算器Bと、前記2種類のカウンタの内容および
前記減算器A、前記減算器Bの出力を互いに比較し一致
を検出する一致回路と、前記スタック・ベースカウンタ
の最上位への桁上がり信号でセットされるフリップフロ
ップから成り、スタックプッシュ操作において前記一致
回路によって前記メモリのエントリがすべて満たされた
事を検出したときに前記フリップフロップの状態が変更
されるまで前記外部メモリに前記高速メモリの内容を退
避し、また、スタックポツプ捜査において前記一致回路
によって前記メモリの内容がすべて空になった事を検出
したときには前記フリップフロップの状態が変更される
まで前記外部メモリより高速メモリに復帰することによ
り、常にスタックの先頭のデータ群を前記高速メモリに
保持することを特徴とするスタック・メモリである。
(作用) スタック機能は、ある時点での状態を保持し、さらに引
き続く時点の状態を次々に保持し、アクセスされたとき
には最も最近に保持された状態を出力するラストインフ
ァーストアウト(Last InFirst 0ut)
メモリ(LIFOメモリ)で実現される。ここで前者を
ブツシュ操作、後者をポツプ操作と呼ぶ。ブツシュ操作
は論理的には無限回行える必要があるが、ハードウェア
量は限界がある。スタック操作を効率よく実現するため
には少量の高速だが高価なメモリと低速だが安価な故に
大容量化が可能なメモリとの組み合わせによって構成す
る。
すなわち、最近にブツシュされた状態はアクセスされる
可能性が最も高いため、できる限り高速なメモリ上に置
いておくことが望ましい。ここで高速メモリへのブツシ
ュ操作が続き、高速メモリをオーバーフロラするときに
は、古い状態から順に低速メモリへの掃き出しを行い、
高速メモリは引き続くブツシュ操作に備えてクリアーす
る必要がある。この内容入れ替えのタイミングと入れ替
え処理の高速化が重要である。
本発明のスタックメモリは前記高速メモリのベースを指
すスタックベースカウンタとブツシュlポツプ操作のた
めの前記メモリのアドレスを指すスタックトップカウン
タによってスタック操作を実現するとともに、前記高速
メモリがオーバーフロウするか否かをハードウェアによ
って検出し、高速な内容入れ替え動作を実現するための
ものである。
(実施例) 以下、本発明のスタックメモリの実施例について図面を
用いて詳細に説明する。
第1図は本発明の一実施例を示すブロック図である。図
において10はスタックとして使用する2のべき乗のエ
ントリを格納する高速メモリ、20は外部メモリ、30
はスタックトップカウンタ(STと略称する)、40は
スタックベースカウンタ(SBと略称する)、50は減
算器A160は減算器B170は一致回路、80はフリ
ップフロップ、11,51,71.72はセレクタであ
る。
簡単のため高速メモリ10のエントリ数(アドレス)が
4である例について説明する。初期状態では5T30お
よび5B40はともに00”にセットされ、フリップフ
ロップ80はリセットされる。
(ブツシュ操作) ブツシュ操作が行われるときの各セレクタは以下の状態
にセットされる。すなわち、セレクタ11の入力は線3
01、セレクタ71の入力は線301、セレクタ72の
入力は線601が選ばれる。初期状態におけるブツシュ
操作は、5T30の内容が線301、セレクタ11、線
111を介して番地付けされ、高速メモリ10の“00
パ番地へデータレジスタ(図示せず)の内容が書き込ま
れることで実現され、5T30はこの書き込み終了後に
1加算される。すなわち5T30の出力は書き込み終了
時点で“01″となり、次のブツシュ操作に備えた準備
が行われる。この値は、線301、セレクタ71、線7
11を介して一致回路70の一方の入力として与えられ
る。−数回路70の他方の入力は5B40から1だけ減
算された値、すなわち11°”である。−数回路はこ゛
の時点では一致を検出しないためこれ以。
上の動作を生起しない。
引き続きブツシュ操作が行われた時には一致回路70が
一致を検出するまで上記と同様の動作が実行される。
(退避処理) 一致回路70が一致を検出したときの5T30と5B4
0の値は共に’oo”であり、高速メモリ10のエント
リがすべて使われた状態を示している。この状態のとき
にブツシュ操作が行われると高速メモリ10の内容を外
部メモリ20へ掃き出す退避処理が必要となるがこのと
きの各セレクタの状態は以下のとおりである。すなわち
セレクタ11の入力は線401、セレクタ51の入力は
線301、セレクタ71の入力は線501、セレクタ7
2の入力は線401が選択される。以後高速メモリ10
の外部メモリ20への退避処理が行われる。まず、8B
40の内容がアドレスとして高速メモリ10に与えられ
、“00′”番地の内容が外部メモリ20への転送され
た後5B40の値が1だけ加算される。5B40の最上
位桁の出力は線402を介してフリップフロップ80に
与えられ、桁上がりが起こるとセットされる。上記動作
はこのフリップフロップ80がセットされるまで行われ
る。すなわち高速メモリ10の半分の量が退避されるこ
とになる。最終エントリの退避が終了した時点での5B
40の内容は“10”になっている。したがってこの後
のスタック・ベースは高速メモリ10の後半の先頭位置
となる。この状態からさらにブツシュ操作が行われ、高
速メモリ10が再び一杯になるとフリップフロップ80
がセットされているため高速メモリ10の後半部分が退
避されスタックベースは再度110011番地に更新さ
れる。以後の復帰処理終了は5B40の最上位の桁上が
りによってフリップフロップ80がリセット、される時
点である。また、高速メモリ10から外部゛メモリ20
への退避が行われたことは(図示しない)外部装置によ
って記憶される。
(ポツプ操作) ポツプ操作が行われるときの各セレクタの状態は以下の
とおりである。すなわち、セレクタ11の入力は線50
1、セレクタ51の入力は線301、セレクタ71の入
力は線501、−セレクタ72の入力は線401が選択
されている。5T30は次にブツシュされるべき高速メ
モリ10のアドレスを指示しているため、ポツプ操作に
おいて減算器50によって1だけ以前のアドレスの読み
だしが行われることになる。この読みだしが終了した時
点で8T30は1だけ減算される。−数回路70には5
B40の値と、5T30の値から1だけ減算された値が
入力されている。ポツプ操作は一致回路70が一致を検
出するまでは上記動作の繰り返しで実現される。
(復帰処理) 復帰処理が行われるときの各セレクタの状態は以下のと
おりである。すなわち、セレクタ11の入力は線501
、セレクタ51の入力は線401、セレクタ71の入力
は線301、セレクタ72の入力は線601が選択され
ている。前記ポツプ操作中に一致回路70が一致を検出
するのは5B30の内容が01”、8B40の内容が“
’oo”のときである。この直後には8T30は”oo
’”に更新され、この時点でポツプ操作が行われるとア
ドレスパ11”へアクセスが行われる。ここでもし、以
前に退避処理が行われていた時には復帰処理が行われな
ければならない。復帰は5B40から1だけ減算された
アドレス1111+1へ行われ、読みだしが終了した時
点で5B40の値が1だけ減算される。この操作が5B
40の最上位の桁下がりによってフリップフロップ80
がリセットされるまで繰り返される。この操作によって
高速メモリ10の半分の内容が高速メモリ10へ復帰さ
れる。尚、復帰処理は外部装置によって高速メモリ10
の内容が外部メモリ2oに退避されていることがわかっ
ているときのみ行われるのは言うまでもない。
以上の4種の動作説明により、実施例の内容がすべて説
明された。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図である。 図において、10はスタックとして使用する2のべき乗
のエントリを格納する高速メモリ、20は外部メモリ、
30はスタックトップカウンタ、40はスタックベース
カウンタ、50.60は減算器、7oは一致回路、80
はフリップフロップ、11,51,71.72はセレク
タである。 工業技術院長 飯塚十三

Claims (1)

    【特許請求の範囲】
  1. スタックとして使用する2のべき乗のエントリを格納す
    る高速メモリと、スタック内容を退避するための外部メ
    モリと、スタック・トップカウンタと、スタック・ベー
    スカウンタと、前記2種類のカウンタの内容を1だけ減
    算した出力を発生する減算器Aと、前記スタック・ベー
    スカウンタの内容を1だけ減算した出力を発生する減算
    器Bと、前記2種類のカウンタの内容および前記減算器
    A、前記減算器Bの出力を互いに比較し一致を検出する
    一致回路と、前記スタック・ベースカウンタの最上位へ
    の桁上がり信号でセットされるフリップフロップから成
    り、スタックプッシュ操作において前記一致回路によっ
    て前記メモリのエントリがすべて満たされた事を検出し
    たときに前記フリップフロップの状態が変更されるまで
    前記外部メモリに前記高速メモリの内容を退避し、また
    、スタックポップ操作において前記一致回路によって前
    記メモリの内容がすべて空になった事を検出したときに
    は前記フリップフロップの状態が変更されるまで前記外
    部メモリより高速メモリに復帰することにより、常にス
    タックの先頭のデータ群を前記高速メモリに保持するこ
    とを特徴とするスタック・メモリ装置。
JP28418187A 1987-11-12 1987-11-12 スタック・メモリ装置 Pending JPH01126730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28418187A JPH01126730A (ja) 1987-11-12 1987-11-12 スタック・メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28418187A JPH01126730A (ja) 1987-11-12 1987-11-12 スタック・メモリ装置

Publications (1)

Publication Number Publication Date
JPH01126730A true JPH01126730A (ja) 1989-05-18

Family

ID=17675226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28418187A Pending JPH01126730A (ja) 1987-11-12 1987-11-12 スタック・メモリ装置

Country Status (1)

Country Link
JP (1) JPH01126730A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001020623A1 (de) * 1999-09-10 2001-03-22 Marconi Communications Gmbh Kondensatorbauelement

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5241132A (en) * 1975-09-29 1977-03-30 Hitachi Ltd Molten plating method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5241132A (en) * 1975-09-29 1977-03-30 Hitachi Ltd Molten plating method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001020623A1 (de) * 1999-09-10 2001-03-22 Marconi Communications Gmbh Kondensatorbauelement
US6639785B1 (en) * 1999-09-10 2003-10-28 Marconi Communications Gmbh Capacitor component

Similar Documents

Publication Publication Date Title
US4426682A (en) Fast cache flush mechanism
US3786432A (en) Push-pop memory stack having reach down mode and improved means for processing double-word items
JPH0414385B2 (ja)
US6295534B1 (en) Apparatus for maintaining an ordered list
JPH0410108B2 (ja)
JPH01126730A (ja) スタック・メモリ装置
US5293594A (en) Data processing system having a plurality of register groups and a logical or circuit for addressing one register of one of the register groups
JPH01126729A (ja) スタック記憶装置
JPH01126731A (ja) スタック・メモリ
US6243800B1 (en) Computer
US3268874A (en) Computer multi-register linkage with a memory unit
JPS619725A (ja) マイクロプログラム制御回路
JPH06103477B2 (ja) 並列キャッシュメモリ
KR930009666B1 (ko) 기억장치 액세스기구
JPH01273132A (ja) マイクロプロセッサ
JP2604604B2 (ja) スタック制御装置
WO2026055618A1 (en) Heap data structure for a field programmable gate array
JPS63261430A (ja) 情報処理方式および装置
JPH01106138A (ja) 連想記憶装置
JPS62110697A (ja) アドレス制御方式
JP3074897B2 (ja) メモリ回路
JPS5840664A (ja) バツフアメモリ装置
JPS6327731B2 (ja)
JPS58189888A (ja) ハ−ドウエア・スタツク装置
JPS61201335A (ja) プログラム格納方法