JPH03180933A - スタックメモリ - Google Patents

スタックメモリ

Info

Publication number
JPH03180933A
JPH03180933A JP1319857A JP31985789A JPH03180933A JP H03180933 A JPH03180933 A JP H03180933A JP 1319857 A JP1319857 A JP 1319857A JP 31985789 A JP31985789 A JP 31985789A JP H03180933 A JPH03180933 A JP H03180933A
Authority
JP
Japan
Prior art keywords
data
bit
stack
storage element
memory
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
JP1319857A
Other languages
English (en)
Inventor
Masaichi Nakajima
雅逸 中島
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1319857A priority Critical patent/JPH03180933A/ja
Priority to US07/618,861 priority patent/US5269012A/en
Publication of JPH03180933A publication Critical patent/JPH03180933A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロプロセッサで用いられるスタックメ
モリに関する。
従来の技術 第2図は、従来のこの種のスタックメモリの構成を示し
ている。1はnビットのアドレス入力部2を持つグワー
ドの記憶要素、3はスタックポインターであり、スタッ
クポインター3からのnビットのアドレス出力が、記憶
要素1のアドレス入力部2に接続されている。
次に、上記従来例の動作について第3図および第4図を
参照して説明する。第3図はスタックメモリの基本動作
を説明する図である。説明を簡単にするため、記憶要素
のワード数を23−8ワード、スタックポインター(以
下、1iiDと省略することがある。)のビット数を3
ビツトとする。このスタックポインターは記憶要素1の
アドレス入力部2に接続されている。まず第3図(a)
のpush動作について説明する。push動作とは、
スタックメモリに対してデータを書き込む動作である。
第3図(a)において、スタックポインターが現在5で
あるとする。これは、記憶要素1のアドレスが5から7
までのワードにデータが格納されているということを示
している。このスタックメモリにデータをpushすな
わち書き込む際には、まずスタックポインターがプリデ
クリメントされて4にセットされる。そして、このプリ
デクリメントされたスタックポインターが示すワードに
対してデータが書き込まれる。第3図(a)では、aと
いうデータが5p=4のワードに書き込まれる様子を示
している。
次に第3図(b)のpop動作について説明する。po
p動作とはスタックメモリからデータを読み出す動作で
ある。第3図(b)において、スタックポインターは現
在4であり、記憶要素1のアドレスが4から7までのワ
ードに対してデータが書き込まれていることを示してい
る。この状態のスタックメモリからデータをpopすな
わち読み出す際には、記憶要素1から現在スタックポイ
ンターが指し示しているワードのデータを読み出した後
、スタックポインターの値をポストインクリメントする
動作を行なう。この二つの動作により、スタックメモリ
はL I F O(La5t In Fast Out
 )メモリとして動作し、常にスタックポインターは、
記憶要素内でデータが格納されているワードの先頭のア
ドレスを指し示すように制御される。
さて、このような動作を行なうスタックメモリは、通常
、変数の引渡し、戻り番地の格納、レジスタの退避等の
ために用いられるが、これをオンチップ化した場合には
、チップ上にインプリメントできる記憶要素には限りが
あるので次のような処理が必要となってくる。すなわち
、スタックメモリから外部メモリに対するデータの退避
動作と、外部メモリからスタックメモリに対するデータ
の復帰動作である。
次に第4図を参照してこの動作を説明する。第4図(a
)は外部メモリへの退避動作を示している。現在スタッ
クポインターの値は1を指し示しており、記憶要素1の
アドレス1から7までのワードにデータが格納されてい
ることを示している。この状態でpush動作を連続さ
せると、記憶要素1にデータを書き込む空き領域が無く
なってしまうので、データを外部メモリへ退避して空き
領域をつくる必要が生じる。ここでは、記憶要素1全体
の2分の1ずつ退避するものとする。まず、スタックポ
インターを4にセットして、そこから下半分のデータを
pop動作により読み出し、外部メモリに退避する。次
に退避動作で空き領域になった領域に、上半分のデータ
を移動させてきて空き領域を有効なデータで埋めてしま
う。この動作は、スタックポインターの操作とpop、
 pushの繰り返しにより実現される。つまり、51
1)=3のデータをp。
pシ、popシたデータを5D=7にpush 、つづ
いて5p=2のデータをI)OpL/、pop L/た
データをsp6にpushということの繰り返しにより
実行され、大きく時間を要する動作である。最後に、外
部メモリに退避したデータの分だけスタックポインター
をインクリメントし、退避を終了する。
同様に、第4図(b)は外部メモリからの復帰動作を示
している。現在のスタックポインターは7を示しており
、記憶要素1のアドレス7のみにデータが格納されてい
るということを示している。この状態でpop動作を連
続させると、記憶要素1から有効なデータがなくなって
しまうので、外部メモリに有効なデータが退避されてい
る場合にはそのデータを復帰させる必要がある。この場
合、まず、データを復帰できるように記憶要素の下半分
に空き領域をつくる。これは、先はど第4図(a)で説
明したのと同様にスタックポインターの操作とpQps
pushの繰り返しにより実行される。すなわち、5p
=7のデータをpopシ、そのデータを5o=3にpu
shという動作の繰り返しである。この後、外部メモリ
からデータをロードしてきて、push動作により5p
=7から4のワードに有効なデータを書き込む。最後に
復帰されたデータの分だけスタックポインターを減少さ
せ、SI)’=3にセットしてその処理を終える。
このように、従来のスタックメモリでもスタックメモリ
から外部メモリへのデータの退避と、外部メモリからス
タックメモリへのデータの復帰とを行なうことができる
発明が解決しようとする課題 しかしながら、上記従来のスタックメモリでは、スタッ
クメモリから外部メモリへのデータの退避、および外部
メモリからのデータの復帰の際に、スタックメモリ内の
データの移動に大きく時間がかかり、プロセッサの処理
速度を低下させる問題があった。これら一連の動作をで
きるだけ短時間に処理できないことには、せっかくスタ
ックメモリをオンチップ化したのにその効果がほとんど
得られないことになる。特にスタックメモリ内部でのデ
ータの移動は、スタックメモリをオンチップ化したこと
により発生するオーバーヘッドであり、プロセッサの高
速化を阻害する大きな原因となっていた。
本発明は、このような従来の問題を解決するものであり
、スタックメモリ内のデータの移動を高速に実行でき、
外部メモリに対するデータの退避および復帰を高速に処
理することができるスタックメモリを提供することを目
的とする。
課題を解決するための手段 本発明は、上記目的を達成するために、nビットのアド
レス入力部を持つ2ワードの記憶要素と、少なくともn
ビットの幅を持ち、任意の制御信号によりnビット目の
ビットのみを反転して出力可能なスタックポインターと
、nビットの人出カポートを備えてスタックポインター
からの人力のうち前記任意の制御信号によりnビット目
のビットのみを反転して記憶要素から出力するアドレス
バッファーとを備えたものである。
作用 したがって本発明によれば、データが格納されている記
憶要素のアドレスを指し示すスタックポインターのnビ
ット目のビットを反転した後、それをアドレスバッファ
ーにより再反転して記憶要素に与えるので、スタックポ
インターによってのみスタックをアドレッシングするプ
ログラマ−からは、スタック内部であたかもデータが移
動したかに見え、スタックメモリ内部でのデータの移動
をpush、 I)Op動作を用いないで高速に実行す
ることができる効果がある。
実施例 第1図は本発明の一実施例におけるスタックメモリの構
成を示すものである。10はnビットのアドレス入力部
20を持ち、2ワードのデータを格納できる記憶要素、
30はnビットの輻を持ち、任意の制御信号40により
nビット目のビットのみ反転可能なスタックポインター
、50はnビットの入出力ポートを備え、人力ポートか
らのnビットのデータのうち任意の制御信号40により
、最上位のビットであるnビット目のみを反転して出力
ポートから出力するアドレスバッファーである。
次に上記実施例におけるスタックメモリの動作について
説明する。但し、通常のpusThs pOp動作に関
しては従来の技術と同様であるので、その説明を省略し
て本発明の特徴であるスタックメモリ内でのデータの移
動に関してのみ説明する。まず、スタックメモリが第4
図(])の(2)の状態にあるとする。すなわち、5D
=1で上半分のデータを下半分に移動させる場合を考え
る。従来の技術によると、push、 popおよびス
タックポインターの操作による煩雑な動作でこの移動を
行なっていた。しかしながら、本実施例では、制御信号
40によりスタックポインターの最上位ビットを反転し
そのビットをさらにアドレスバッファ−50で反転する
だけでこのデータ移動動作を終了する。すなわち、5p
−1の最上位ビットを反転することで2進数001が1
01になるので、スタックポインターは1から5に変化
するが、さらにそのビットを反転してから記憶要素10
に供給することで、記憶要素10には、5D=1に変化
したことでデータが空になった5p=1というアドレス
が相変わらず与えられており、物理的なデータの移動で
はなく、仮想的にデータの移動が行われたことになる。
すなわち、スタックポインターによってのみスタックが
移動したかのようにみえるのである。第4図(b)の(
1)に関しても同様である。この場合は、スタックメモ
リの下半分のデータを上半分に移動するのであるが、ま
ったく同じ処理が行われる。すなわち、制御信号40に
より、5p=7の最上位ビットが反転されることで、2
進数111が011になるのでスタックポインターは7
から3に変化し、さらにそのビットは、アドレスバッフ
ァー50により反転されて記憶要素10に供給されるの
で、記憶要素0 10には7というアドレスが供給されたままである。す
なわち、第4図(a)の場合と同様に、プログラマ−か
らみた仮想的なデータの移動が1ザイクルで実行できる
ことになる。
発明の詳細 な説明したように、本発明によれば、データが格納され
ている記憶要素のアドレスを指し示すスタックポインタ
ーのnビット目のビットを反転した後、それをアドレス
バッファーにより再反転して記憶要素に与えるので、ス
タックメモリ内のデータの移動を高速に実行でき、外部
メモリに対するデータの退避および復帰を高速に処理で
きるスタックメモリを実現することができる。
【図面の簡単な説明】
第1図は本発明の一実施例におけるスタックメモリの概
略ブロック図、第2図は従来のスタックメモリの概略ブ
ロック図、第3図はスタックメモリの基本動作であるp
ush動作およびpop動作を説明するためのデータ格
納状態図、第4図はスタックメモリにおけるデータの退
避および復帰動作を1 説明するためのデータ格納状態図である。

Claims (1)

    【特許請求の範囲】
  1.  nビットのアドレス入力部を有する2^nワードの記
    憶要素と、少なくともnビットの幅を有して任意の制御
    信号によりnビット目のビットのみを反転して出力可能
    なスタックポインターと、nビットの入出力ポートを有
    して前記スタックポインターからの入力のうち前記任意
    の制御信号によりnビット目のビットのみを反転して前
    記記憶要素へ出力するアドレスバッファーとを備えたス
    タックメモリ。
JP1319857A 1989-12-08 1989-12-08 スタックメモリ Pending JPH03180933A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1319857A JPH03180933A (ja) 1989-12-08 1989-12-08 スタックメモリ
US07/618,861 US5269012A (en) 1989-12-08 1990-11-28 Stack memory system including an address buffer for generating a changed address by inverting an address bit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1319857A JPH03180933A (ja) 1989-12-08 1989-12-08 スタックメモリ

Publications (1)

Publication Number Publication Date
JPH03180933A true JPH03180933A (ja) 1991-08-06

Family

ID=18115010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1319857A Pending JPH03180933A (ja) 1989-12-08 1989-12-08 スタックメモリ

Country Status (2)

Country Link
US (1) US5269012A (ja)
JP (1) JPH03180933A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203701B2 (ja) * 1990-11-01 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor
US5386534A (en) * 1992-10-27 1995-01-31 Motorola, Inc. Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
US5473271A (en) * 1993-02-09 1995-12-05 Dallas Semiconductor Corporation Microprocessor output driver
US5638528A (en) * 1993-11-01 1997-06-10 Motorola, Inc. Data processing system and a method for cycling longword addresses during a burst bus cycle
KR100468675B1 (ko) * 1997-07-25 2005-03-16 삼성전자주식회사 스태틱램자기테스트회로의어드레스발생기및어드레스발생방법
US6453394B2 (en) * 1997-10-03 2002-09-17 Matsushita Electric Industrial Co., Ltd. Memory interface device and memory address generation device
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations
US6058467A (en) * 1998-08-07 2000-05-02 Dallas Semiconductor Corporation Standard cell, 4-cycle, 8-bit microcontroller
US6892278B2 (en) * 2002-03-05 2005-05-10 Sun Microsystems, Inc. Method and apparatus for efficiently implementing a last-in first-out buffer
KR100532421B1 (ko) * 2003-02-17 2005-11-30 삼성전자주식회사 (n/2)스테이지를 갖는 어드레스 버퍼
NL2002091C (nl) 2008-10-13 2010-04-14 Croppings Holding B V Systeem en werkwijze voor het telen van een gewas in een althans ten dele geconditioneerde omgeving.

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62287499A (ja) * 1986-06-06 1987-12-14 Fujitsu Ltd 半導体メモリ装置
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU

Also Published As

Publication number Publication date
US5269012A (en) 1993-12-07

Similar Documents

Publication Publication Date Title
JP2916045B2 (ja) Fifoモジュール
JPS6053896B2 (ja) デ−タ処理装置のメモリシステム
JPH03180933A (ja) スタックメモリ
JPH01182992A (ja) 半導体記憶装置
JPH0414385B2 (ja)
US3949376A (en) Data processing apparatus having high speed slave store and multi-word instruction buffer
JPS59188764A (ja) メモリ装置
EP0256134B1 (en) Central processing unit
US4019144A (en) Conditional latch circuit
JPS6148174B2 (ja)
CN101443731A (zh) 计算机的循环寄存器阵列
JP2661150B2 (ja) データ転送装置
KR100207651B1 (ko) 메모리 엑세스 장치
JPH02212952A (ja) メモリアクセス制御方式
JPS5849960B2 (ja) 情報チエツク方式
JPH02287732A (ja) レジスタアドレス生成装置
JPS6017537A (ja) 計算機制御装置
JPS62249228A (ja) シフト装置
JPH03248242A (ja) メモリ制御回路
JPH023143A (ja) 半導体メモリ
JPH01256094A (ja) レジスタファイル
JPH01260529A (ja) 半導体記憶装置
JPS59180632A (ja) 演算装置
JPH11144035A (ja) 半導体記憶装置
JPS63241647A (ja) マイクロプロセツサ