JP2000029690A - デ―タ処理の方法および装置 - Google Patents

デ―タ処理の方法および装置

Info

Publication number
JP2000029690A
JP2000029690A JP11078350A JP7835099A JP2000029690A JP 2000029690 A JP2000029690 A JP 2000029690A JP 11078350 A JP11078350 A JP 11078350A JP 7835099 A JP7835099 A JP 7835099A JP 2000029690 A JP2000029690 A JP 2000029690A
Authority
JP
Japan
Prior art keywords
memory
stack
address
stack pointer
data
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
JP11078350A
Other languages
English (en)
Inventor
Tessaroro Alexander
テッサロロ アレクサンダー
M Mehendeeru Meheshu
エム.メヘンデール メヘシュ
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000029690A publication Critical patent/JP2000029690A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing

Landscapes

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

Abstract

(57)【要約】 【課題】 プロセッサからのデータをスタックメモリ上
で操作するための方法を提供する。 【解決手段】 本方法はスタックメモリ110中のスタ
ックポインタ104を第1のメモリアドレス126へ整
列させる工程、前記スタックポインタ104を第2のメ
モリアドレス128へ増分させる工程、データをレジス
タ102から第2のメモリアドレス128の位置のスタ
ックメモリ110中へ保存する工程、保存工程が完了し
た時に、もし奇数アドレスにあればスタックポインタ1
04を次の偶数アドレスへ整列させる工程、プロセッサ
演算を実行する工程、前記スタックポインタ104を偶
数アドレスから整列解除して奇数アドレスへ戻す工程、
データをスタックメモリ110からレジスタ102へ復
元する工程、スタックポインタ104を第2のメモリア
ドレス128から第1のメモリアドレス126へ減分す
る工程を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に中央演算処理
ユニットに関するものであって、更に詳細には、プロセ
ッサからのデータをスタックメモリ上で操作するための
装置および方法に関する。
【0002】
【従来の技術】レジスタあるいはプロセッサを使用して
データの読み書きを行うことは当該分野では既知であっ
て、ほとんどすべてのコンピュータアーキテクチャ応用
において使用されている。プロセッサは、演算を実行す
る過程において、データメモリに対して読み書きを行
う。読み書き操作は、また、コンピュータの中央演算処
理ユニット(“CPU”)に含まれるはずのスタックメ
モリ上でも発生できる。スタックメモリはパラメータの
受け渡しあるいはデータ用の一時記憶として使用され
る。スタックメモリは、また、割り込みの間に、レジス
タからのデータの保存および復元を行うためにも使用さ
れる。割り込みの間に、レジスタは、スタックメモリ上
での読み書き操作を用いて、自動的に保存および復元を
行う。スタックメモリは、一般的に、スタックメモリ上
の最上位のデータワードのアドレスを指すようにスタッ
クポインタと呼ばれるアドレスレジスタを有する。スタ
ックメモリは低位から高位へと増大し、スタックポイン
タは一般に次の空き記憶場所を指す。
【0003】読み書き操作は、スタックポインタを増分
または減分することによってスタックメモリ上で実行す
ることができる。スタックポインタは、スタックメモリ
の最上位に現在あるデータのアドレスと等しい値を記憶
するレジスタである。読み出し操作は、スタックポイン
タによって指示されるアドレスに存在するメモリデータ
を読み出して、スタックポインタの内容を減分すること
によって、スタックメモリ上で実行される。書き込み操
作は、スタックポインタを増分し、スタックメモリ中の
次の上位のメモリアドレスへデータを書き込むことによ
って実行される。データをスタックメモリから読み出す
ことは行われても、物理的に除去されることはない。新
しいデータワードは、読み出されたメモリアドレス中へ
書き込める。
【0004】
【発明の解決しようとする課題】スタックメモリに対す
るすべての操作は偶数アドレスに整列される。もしスタ
ックポインタが演算の前に奇数アドレス場所と整列して
いれば、1つの値の書き込みは、次に最も低位の偶数ア
ドレスから開始される。一般に、コンピュータ装置はス
タックポインタが割り込みの発生前に常に整列している
ことを保証するようになっている。従って、スタックメ
モリ上での書き込み操作の間に、奇数アドレスを指すス
タックポインタは、奇数アドレスよりも低い偶数アドレ
スへそれ自体を減分する。書き込み操作の間に、入力さ
れるデータは、最初にスタックポインタによって指示さ
れていた奇数アドレスに存在するデータを上書きするこ
とでエラーを引き起こす。奇数アドレスにあるデータは
上書きによって破壊されるはずである。
【0005】スタック上へ保存されるデータは、16ビ
ットワードと32ビットワードとを混在して含み得る。
データワードが混在する場合、もし16ビット値の数が
32ビット値の間に偶数個存在しなければ、スタックメ
モリ上での任意の操作に先立ってスタックポインタが偶
数アドレスと整列するので、メモリホールが生じてしま
う。
【0006】高級言語のコンパイラはスタックメモリの
整列について常に既知であることが求められる。割り込
みの間、スタックメモリの状態は既知ではないかもしれ
ない。スタックメモリの状態を知れば、割り込みが完了
した時に、前の状態へ復元することが可能となる。
【0007】以上のことから、整列の間にデータを破壊
することなしに、スタックメモリ上で操作を実行するた
めの方法に対する需要が生ずることを理解されよう。本
発明に従えば、プロセッサからのデータをスタックメモ
リ上で操作するための装置および方法が提供され、それ
らは従来のスタックメモリ操作に付随する欠点および問
題を本質的に解消または低減させる。
【0008】
【課題を解決するための手段】プロセッサからのデータ
をスタックメモリ上で操作するための装置が開示され
る。本装置は、スタックメモリに関するスタックポイン
タと、そのスタックポインタと整列した第1のメモリア
ドレスとを有する。本装置は、更に、第2のメモリアド
レスを有する。第2のメモリアドレスは、データがスタ
ックメモリ中へ保存される時に、第1のメモリアドレス
からスタックポインタを増分することによって決定され
る。スタックポインタは、データがスタックメモリから
復元される時に、第2のメモリアドレスから第1のメモ
リアドレスへ減分する。本装置は、更に、少なくとも1
つのレジスタを有しており、それのデータは、第2のメ
モリアドレスにあるスタックメモリ中へ保存され、また
その少なくとも1つのレジスタへ復元して戻されるよう
になっている。本装置は、更に、データがスタックメモ
リへ保存された後でポインタが奇数アドレスを指す時に
は、スタックポインタを整列させ、またスタックメモリ
からのデータ復元に先だってスタックポインタを整列解
除するための整列装置を有する。整列装置は、更に、ス
タックポインタが奇数アドレスを指す時に、次の偶数ア
ドレスへスタックポインタを整列させる。本装置は、更
に、整列装置がスタックポインタを整列させる時には1
に等しい、スタックポインタ整列ビットを有する。
【0009】別の実施例で、本発明に従って使用するた
めのスタックメモリ上でプロセッサからのデータを操作
するための方法は8つの工程を含んでいる。第1工程
は、スタックメモリ中のスタックポインタを第1のメモ
リアドレスと整列させることを含む。第2工程は、スタ
ックポインタを第2のメモリアドレスへ増分させて、ス
タックメモリ中に1つの空きメモリアドレスを生成する
ことを含む。第3工程は、少なくとも1つのレジスタか
らのデータを、スタックポインタによって指示される第
2のメモリアドレスに存在するスタックメモリ中へ保存
することを含む。第4工程は、保存工程が完了した後
で、スタックポインタが奇数アドレスを指す時には、ス
タックポインタを次の偶数アドレスと整列させて、レジ
スタに関するスタックポインタ整列ビットを1に等しく
設定することを含む。第5工程は、プロセッサ演算を実
行することを含む。第6工程は、第2の整列工程が実行
されて、スタックポインタ整列ビットが1に等しい時
に、スタックポインタを次の偶数アドレスから整列解除
して奇数アドレスへ戻すことを含む。第7工程は、プロ
セッサ演算の完了後に、スタックメモリからレジスタ中
へデータを復元することを含む。第8工程は、スタック
ポインタを第2のメモリアドレスから第1のメモリアド
レスへ減分して、空のメモリアドレスを除去することを
含む。
【0010】本発明の技術的な特徴は、プロセッサから
のデータをスタックメモリ上で操作する方法が提供され
ることである。本発明の別の技術的特徴は、アドレスレ
ジスタが、整列操作の間の上書きによって破壊されるこ
とはないであろうということである。本発明の別の技術
的特徴は、スタックメモリの利用度およびメモリコスト
が削減されることである。本発明の別の技術的特徴は、
スタックメモリ中のメモリホールが減少し、それによっ
てスタックメモリの有効性が増大することである。
【0011】本発明およびそれの特徴をより完全に理解
するために、ここで添付図面を参照しながら以下の詳細
な説明を行う。
【0012】
【発明の実施の形態】本発明の一実施例およびそれの特
徴は、ここで図面の図1および図2をより詳細に参照す
ることで最も良く理解される。図面において、同様な部
品には同じ参照符号が用いられている。図1および図2
は、本発明の一実施例に従う、プロセッサからのデータ
をスタックメモリ上で操作するための装置および方法を
示している。
【0013】図1はプロセッサ100を示している。プ
ロセッサ100は、データメモリに対して32ビットで
読み書きを実行できる16ビットアドレシング可能なマ
シンでよい。図1で、プロセッサ100に関連してステ
ータスレジスタ102が設けられている。プロセッサ1
00には、その他のレジスタ(図示されていない)も設
けられ得る。ステータスレジスタ102のデータ内容は
スタックメモリ110へ保存することができる。スタッ
クメモリ110はプロセッサ100と関連していても関
連していなくても構わない。スタックメモリ110はパ
ラメータの受け渡しや、プロセッサ100に関するレジ
スタからのデータの一時記憶として使用されよう。一実
施例では、データ内容は、プロセッサ100に対する割
り込みの間にスタックメモリ110へ保存される。この
データは、割り込みが完了するまでスタックメモリ11
0中に保たれて、そしてこのデータ内容はスタックメモ
リ110から読み出されて、ステータスレジスタ102
中へ戻される。
【0014】割り込みの間、ステータスレジスタ102
などのレジスタは、スタックメモリ110上での32ビ
ットの読み書き操作を利用して、自動的に保存および復
元され得る。スタックメモリ110は、図1に示すよう
に、低位から高位メモリへと増大している。スタックメ
モリ110は記憶デバイスであって、それは最後に記憶
された項目が最初に取り出されるような形で情報を記憶
する。
【0015】スタックメモリ110は、また、スタック
ポインタ104を含む。スタックポインタ104は、そ
の値がスタックメモリ110中の最上位のデータワード
のアドレスに等しい2進数を含むアドレスレジスタであ
る。レジスタ114、118、120、124、12
6、128、129、および130はスタックメモリ1
10の物理的レジスタを表している。これらの物理的レ
ジスタは、スタックメモリ110上でデータワードの読
み書きを行うために使用され得る。一実施例では、32
ビットワードの内容がスタックメモリ110の物理的レ
ジスタ中へ挿入または上書きされ得る。スタックポイン
タ104はスタックメモリ110に挿入された最後の項
目のアドレスを保持する。
【0016】図1で、レジスタ114、118、12
0、および124は詰まっている。レジスタ126およ
び128は空である。レジスタ129はレジスタ128
とレジスタ130との間の物理的レジスタ群を表してい
る。更に、図1は物理的レジスタのアドレスも示してい
る。レジスタ124はアドレス3を有しているが、スタ
ックメモリ110中の詰まっている最も上位のメモリ場
所である。レジスタ126はアドレス4を有している
が、次に空の記憶場所である。ステータスレジスタ10
2からのデータは、スタックメモリ110上のレジスタ
126に書き込まれ得る。スタックポインタ104は、
この次の空のメモリ場所と整列される。スタックメモリ
110上で操作が実行される時は、スタックポインタ1
04は増分および減分されて、それ自体がスタックメモ
リ110中の次の空のメモリ場所と整列するようにされ
る。それらの記憶場所は、次の空のメモリ場所のアドレ
スがスタックポインタ104中に収納されて、スタック
メモリ110中のレジスタのアドレスによって指示され
る。
【0017】整列装置はスタックポインタ104および
プロセッサ100中の論理を含むことができる。スタッ
クポインタ104は、スタックメモリ110上での増分
または減分を指示するコマンドを受信した後で、それ自
体をレジスタアドレスと整列させる。命令はメモリに記
憶することができる。命令はメモリからCPUへ取り出
され、スタックポインタ104をスタックメモリ110
と整列させる目的でプロセッサ100中へ読み出されよ
う。一実施例では、それらの命令はプロセッサ100に
関連する論理として実現され得る。例えば、一実施例で
の割り込みの間に、プロセッサ100はメモリから整列
命令を読み出して、それに従ってスタックポインタ10
4を整列させることができる。プロセッサ100に関連
する、ステータスレジスタ102等のレジスタからのデ
ータは、次に、スタックメモリ110上で読み出しまた
は書き込みのいずれかの操作を施されよう。
【0018】一実施例では、プロセッサ100に対する
割り込みの間に、ステータスレジスタ102は保存およ
び復元され得る。ステータスレジスタ102は、割り込
みが発生した時の、プロセッサ100に関するその他の
レジスタおよび部品の状態を表示することができる。ス
タックメモリ110の状態も、ステータスレジスタ10
2中に表示することができる。スタックポインタ整列ビ
ットはステータスレジスタ102中に含ませることがで
き、それはステータスレジスタ102中に保存および復
元されるが、プロセッサ100に対する割り込みの間に
保存される。スタックポインタ整列ビットは1または0
であり、割り込みに先行してスタックメモリ110上で
演算が実行されたかどうかを表示する。ステータスレジ
スタ102が割り込み後に復元された時、スタックポイ
ンタ整列ビットは、それ以上の整列操作がスタックメモ
リ110において必要とされるかどうかを表示され得
る。例えば、スタックポインタ104は、スタックポイ
ンタ整列ビットに記憶されている値に依存して、増分ま
たは減分され得る。
【0019】図2を参照すると、本発明に従って、プロ
セッサ100からのデータをスタックメモリ110上で
操作するための方法が開示されている。一実施例では、
プロセッサ100に対する割り込みが発生すると、割り
込みの進行中に、データをスタックメモリ110上へ記
憶することが要求される。更に、一実施例では、割り込
みが発生するまでは整列ルーチンは実行できない。この
ように、スタックポインタ104は、スタックメモリ1
10上での操作毎にそれ自体を整列させる必要はないで
あろう。工程200では、現在の演算の割り込みを実行
すべきであることを指示する割り込み信号が受信され
る。工程204では、工程200での割り込み信号の受
信によって、スタックメモリ110中の第1のメモリア
ドレスと整列していたスタックポインタ104が自動的
に増分される。この第1のメモリアドレスは次の空き記
憶場所であろう。従って、スタックポインタ104は、
第1のメモリアドレスの上の第2のメモリアドレスへ増
分される。この増分により、スタックメモリ110中に
空きのメモリアドレスが生ずる。一実施例では、スタッ
クポインタは1だけ増分される。図1に戻ると、スタッ
クポインタ104は割り込みが発生した時に、アドレス
4にあるレジスタ126と整列する。スタックポインタ
104は、従って、アドレス5にあるレジスタ128へ
増分され、それによってレジスタ126に空きのメモリ
アドレスが生ずる。
【0020】工程208では、プロセッサ100に関連
するレジスタから、スタックポインタ104で指示され
る第2のメモリアドレスにあるスタックメモリ110中
へデータが保存される。スタックポインタ整列ビットを
含むステータスレジスタ102もまた、スタックメモリ
110上へ保存され得る。図1へ戻ると、データワード
はアドレス5にあるレジスタ128から始まる場所へ記
憶され得る。一実施例では、32ビットワードがスタッ
クメモリ110中へ書き込まれる。32ビット操作が実
行されない場合には、整列ということは全く無視される
ことになる。更に、工程208において、スタック11
0上に保存されたスタックポインタ整列ビットは、その
整列装置がプロセッサ100によって以前に使用された
かどうかを示す。工程240では、プロセッサ100に
関連するレジスタからスタックメモリ110中へビット
書き込みを行うことによって、保存操作が実行される。
【0021】工程210では、整列装置がスタックポイ
ンタ整列命令を受信して、スタックポインタ命令を実行
する。その命令は条件付きでスタックポインタ104の
整列を行う。工程212では、スタックポインタ104
は、スタックポインタ104のレジスタ中に奇数のメモ
リアドレスが記憶されているかどうかが調べられる。図
1に戻ると、スタックポインタ104は、スタックメモ
リ110中のスタックの最上位を指示するように、レジ
スタ128のアドレスとして5を記憶していよう。もし
スタックポインタ104がそれが奇数のメモリアドレス
と整列していることを表示していれば、スタックポイン
タ整列ビットを1に等しく設定することによって工程2
14が実行される。工程216では、スタックポインタ
104はそれのレジスタを増分され、新しいメモリアド
レスへ移動させられる。一実施例では、スタックポイン
タ104は次に最上位の偶数アドレスへ1だけ増分され
る。こうして、スタックメモリ110中で操作が実行で
き、それは32ビットの操作に対して偶数のアドレス整
列を要求しよう。更に、スタックポインタ104によっ
て指示される奇数アドレスより下位にあるレジスタ類
は、整列が行われた時に上書きされることはないであろ
う。工程212に戻って参照すると、もしスタックポイ
ンタ104が奇数のメモリアドレスを指示していなけれ
ば、工程218が実行される。工程218においては、
スタックポインタ104は既に偶数のアドレス場所と整
列しているので、整列の必要はない。スタックポインタ
整列ビットは0に等しくセットされて、それは工程21
0を実行する場合に整列調整が不要であることを示す。
【0022】工程242では、プロセッサ100上およ
びスタックメモリ100上で演算が実行され得る。それ
らの演算は、スタックポインタ104が空のレジスタと
整列したスタックメモリ110上での読み書きを含むこ
とができる。一実施例では、スタックポインタ104
は、これらの操作を実行する一方で、偶数アドレスと整
列されよう。偶数アドレスと整列することによって、ス
タックポインタ104は、スタックメモリ110中のス
タックの最上位を指すような既知の整列状態にあること
で矛盾はないはずである。
【0023】工程220では、整列装置がスタックポイ
ンタ104の整列を解除して、先に工程210で指示さ
れたメモリアドレスへ戻る。このメモリアドレスは工程
204で指示された第2のメモリアドレスとなり得る。
工程220は、もし工程216でスタックポインタ10
4が増分されたのであれば、スタックポインタ104を
奇数アドレスへ戻す。工程222では、スタックポイン
タ整列ビットの値が解析されて、スタックポインタ10
4が何らかの整列を必要とするかどうかが決定される。
もしスタックポインタ整列ビットが1に等しければ、こ
れは工程216でスタックポインタ104が奇数アドレ
スから偶数アドレスへ整列されたことを示す。工程22
4では、スタックポインタ整列ビットが0へリセットさ
れる。工程226では、スタックポインタ104は整列
解除されて、それのレジスタ中のアドレスが減分され
て、工程210の前にスタックポインタ104と整列し
ていた奇数アドレスへ戻される。一実施例では、スタッ
クポインタ104は1アドレスだけ減分される。工程2
22に戻ると、もしスタックポインタ整列ビットが0に
等しくなければ、整列解除の命令は不要である。工程2
44では、工程210の前に指示された場所におけるス
タックポインタ104およびスタックメモリ110で以
て更なる演算が実行されよう。
【0024】工程230で、“割り込みからの戻り命
令”(“IRET”)が受信される。一実施例では、I
RETは、割り込みが完了し、割り込みの前に走ってい
た演算を復元すべきことを表す。スタックメモリ110
中のデータは対応するレジスタへ復元され、またプロセ
ッサはそれの最初の状態へ戻される。スタックポインタ
104は、スタックメモリ110からスタックレジスタ
中へすべてのデータを復元した後で自動的に減分されよ
う。工程232において、工程208で保存されたスタ
ックポインタ整列ビットはステータスレジスタ102へ
復元して戻される。工程232を実行することによっ
て、スタックメモリ110の元の状態が復元され、そし
てその後に、更なる任意の整列または整列解除が実行さ
れよう。工程234では、スタックポインタ104は第
2のメモリの場所から第1のメモリの場所へ減分され
る。この第1のメモリの場所は工程204のものと同じ
メモリの場所であり、それは元々スタックポインタ10
4と整列していたものである。更に、工程204で生じ
た空のメモリの場所が消去される。工程250では、も
し割り込みルーチンが完了していれば、プロセッサ10
0はそれの元の状態へ戻る。
【0025】このように、本発明に従えば、プロセッサ
からのデータをスタックメモリ上で操作するために、上
で述べた特徴を満足する装置および方法が提供されるこ
とが明らかである。本発明について詳細に説明してきた
が、各種の変更、置換、および修正がここに行われ得る
ことを理解すべきである。例えば、データ操作は割り込
みの間に行われるように説明してきたが、この操作はス
タックメモリとの間でデータを保存および復元する任意
の場合に実行してもよい。その他の例も、特許請求の範
囲に定義された本発明の精神およびスコープから外れる
ことなく行い得ることを当業者は容易に確かめることが
できる。
【0026】以上の説明に関して更に以下の項を開示す
る。 (1)プロセッサからのデータをスタックメモリ上で操
作するための方法であって、前記スタックメモリ中のス
タックポインタを前記スタックメモリ中の第1メモリア
ドレスと整列させる工程、前記スタックポインタを第2
のメモリアドレスへ増分して、前記スタックメモリ中に
1つの空きメモリアドレスを生成する工程、少なくとも
1つのレジスタ位置からのデータを、前記スタックポイ
ンタによって指示される前記第2メモリアドレスにある
前記スタックメモリ中へ保存する工程、プロセッサ演算
を実行する工程、前記プロセッサ演算の完了後に、前記
スタックメモリから前記少なくとも1つのレジスタ中へ
データを復元する工程、および前記スタックポインタを
前記第2メモリ場所から前記第1メモリ場所へ減分し
て、前記スタックメモリ中の前記空のメモリアドレスを
除去する工程、を含む方法。
【0027】(2)第1項記載の方法であって、更に前
記保存工程の完了後に、前記スタックポインタが奇数ア
ドレスを指示する時には、前記スタックポインタを新し
いメモリアドレスへ整列させる工程、および前記スタッ
クポインタを前記新しいメモリアドレスから整列解除し
て、前記奇数アドレスへ戻す工程、を含む方法。
【0028】(3)第1項記載の方法であって、ここに
おいて、前記実行する工程が、前記スタックメモリ上で
プロセッサ演算を実行する工程を含んでいる方法。
【0029】(4)第2項記載の方法であって、ここに
おいて、前記新しいメモリアドレスが前記奇数アドレス
の上位にある次の偶数アドレスである方法。
【0030】(5)第2項記載の方法であって、ここに
おいて、前記整列工程がスタックポインタ整列ビットを
設定する工程を含んでおり、更に、前記スタックポイン
タが前記奇数アドレスを指示する時は、前記スタックポ
インタ整列ビットが1に等しい方法。
【0031】(6)第5項記載の方法であって、ここに
おいて、前記スタックポインタ整列ビットが1に等しい
時に前記整列解除工程が実行される方法。
【0032】(7)第5項記載の方法であって、ここに
おいて、前記保存工程において前記スタックポインタ整
列ビットが、前記データを少なくとも1つのレジスタ上
に記憶した形で保存される方法。
【0033】(8)第1項記載の方法であって、ここに
おいて、前記増分工程が、前記プロセッサからの割り込
み信号に応答して実行される方法。
【0034】(9)第1項記載の方法であって、ここに
おいて、前記実行工程が、更に、前記演算の間に前記ス
タックポインタを偶数アドレスと整列させる工程を含ん
でいる方法。
【0035】(10)プロセッサからのデータをスタッ
クメモリ上で操作するための方法であって、前記スタッ
クメモリ中のスタックポインタを前記スタックメモリ中
の第1メモリアドレスと整列させる工程、前記スタック
ポインタを第2メモリアドレスへ増分して、前記スタッ
クメモリ中に1つの空きメモりアドレスを生成する工
程、少なくとも1つのレジスタ位置からのデータを、前
記スタックポインタによって指示される前記第2メモリ
アドレスにある前記スタックメモリ中へ保存する工程、
前記保存工程の完了後に、前記スタックポインタが奇数
アドレスを指示する時には、前記スタックポインタを次
の偶数アドレスと整列させて、前記少なくとも1つのレ
ジスタ上のスタックポインタ整列ビットを1に等しく設
定する工程、プロセッサ演算を実行する工程、前記第2
の整列工程が実行され、前記スタックポインタ整列ビッ
トが1に等しい時に、前記スタックポインタを前記次の
偶数アドレスから整列解除して、前記奇数アドレスへ戻
す工程、前記プロセッサ演算の完了後に、前記スタック
メモリから前記少なくとも1つのレジスタ中へデータを
復元する工程、および前記スタックポインタを前記第2
メモリ場所から前記第1メモリ場所へ減分して、前記ス
タックメモリ中の前記空のメモリアドレスを除去する工
程、を含む方法。
【0036】(11)第10項記載の方法であって、こ
こにおいて、前記スタックポインタ整列ビットが前記保
存工程の間に保存される方法。
【0037】(12)第10項記載の方法であって、こ
こにおいて、前記データが32ビットワードである方
法。
【0038】(13)第10項記載の方法であって、こ
こにおいて、前記第1の整列工程が、前記スタックポイ
ンタを前記スタックメモリ中の次の空き記憶場所と整列
させるようになった方法。
【0039】(14)第10項記載の方法であって、前
記保存工程が、前記少なくとも1つのレジスタ位置にあ
る前記データを前記スタックメモリ中へ書き込む工程、
を含んでいる方法。
【0040】(15)第10項記載の方法であって、前
記復元工程が、前記データをスタックメモリから前記少
なくとも1つのレジスタ位置へ読み出す工程、を含んで
いる方法。
【0041】(16)プロセッサからのデータをスタッ
クメモリ上で操作するための装置であって、前記スタッ
クメモリに関連するスタックポインタ、第1のメモリア
ドレスであって、前記スタックポインタがそれと整列す
る第1メモリアドレス、データが前記スタックメモリ中
へ保存される時に、前記第1メモリアドレスから前記ス
タックポインタを増分することによって決定される第2
のメモリアドレスであって、ここにおいて、前記スタッ
クメモリからデータが復元される時には、前記スタック
ポインタが前記第1メモリアドレスへ減分して戻るよう
になっている第2メモリアドレス、前記第2メモリアド
レスにある前記スタックメモリ中へ保存され、前記スタ
ックメモリから復元されるデータを有する少なくとも1
つのレジスタ、およびデータが前記スタックメモリへ保
存された後で、前記スタックポインタが奇数アドレスを
指示する時には、前記スタックポインタを整列させ、ま
た前記スタックメモリからデータを復元する前に前記ス
タックポインタを整列解除する整列装置、を含む装置。
【0042】(17)第16項記載の装置であって、更
に、前記スタックポインタが奇数アドレスを指示する時
に、前記スタックポインタを次の偶数アドレスと整列さ
せる前記整列装置、を含む装置。
【0043】(18)第16項記載の装置であって、更
に、スタックポインタ整列ビットであって、ここにおい
て、前記整列装置が前記スタックポインタを整列させる
時に前記スタックポインタ整列ビットが1に等しくなっ
ている、スタックポインタ整列ビットを含む装置。
【0044】(19)第18項記載の装置であって、こ
こにおいて、前記スタックポインタ整列ビットが1に等
しい時に、前記整列装置が前記スタックポインタを整列
解除するようになった装置。
【0045】(20)第19項記載の装置であって、こ
こにおいて、前記スタックポインタ整列ビットが前記ス
タックメモリ中へ保存されるようになった装置。
【0046】(21)プロセッサからのデータをスタッ
クメモリ上で操作するための方法が開示されている。本
方法はスタックメモリ(110)中のスタックポインタ
(104)を第1メモリアドレス(126)へ整列させ
る工程を含む。本方法は更に前記スタックポインタ(1
04)を第2メモリアドレス(128)へ増分させる工
程を含む。本方法は更にレジスタ(102)からのデー
タを第2メモリアドレス(128)位置のスタックメモ
リ(110)中へ保存する工程を含む。本方法は更に、
保存工程が完了した時にもし奇数アドレスにあれば、ス
タックポインタ(104)を次の偶数アドレスへ整列さ
せる工程を含む。本方法は更にプロセッサ演算を実行す
る工程を含む。本方法は更に前記スタックポインタ(1
04)を偶数アドレスから整列解除して奇数アドレスへ
戻す工程を含む。本方法は更にスタックメモリ(11
0)からレジスタ(102)へデータを復元する工程を
含む。本方法は更にスタックポインタ(104)を第2
メモリアドレス(128)から第1メモリアドレス(1
26)へ減分する工程を含む。更に、プロセッサからの
データをスタックメモリ上で操作するための装置が開示
されている。スタックメモリ(110)上のスタックポ
インタ(104)が第1メモリアドレス(126)と整
列させられる。スタックポインタ(104)はデータが
スタックメモリ(110)中へ保存される時に、第2メ
モリアドレス(128)へ増分される。スタックポイン
タ(104)はデータがスタックメモリ(110)から
復元される時に、第1メモリアドレス(126)へ減分
される。レジスタはデータを、第2メモリアドレス(1
28)にあるスタックメモリ(110)中へ保存され、
またスタックメモリ(110)から復元される。整列装
置はデータの保存後に奇数アドレスが指示される時はス
タックポインタを偶数アドレスへ整列させ、またデータ
の復元の前にスタックポインタ(104)を整列解除す
る。
【図面の簡単な説明】
【図1】本発明の一実施例に従って、CPU中で使用さ
れるスタックメモリのブロック図。
【図2】本発明の一実施例に従って、データを保存およ
び復元するための方法のフローチャート。
【符号の説明】
100 プロセッサ 102 ステータスレジスタ 104 スタックポインタ 110 スタックメモリ 114,118,120,124,126,128,1
29,130 レジスタ 200 割り込み信号受信工程 204 スタックポインタ増分工程 208 スタックポインタ整列ビット保存工程 210 スタックポインタ整列命令実行工程 212 奇数アドレス判定工程 214 スタックポインタ整列ビット設定工程 216 スタックポインタ増分工程 218 スタックポインタ整列ビット設定工程 220 整列解除命令実行工程 222 スタックポインタ整列ビット判定工程 224 スタックポインタ整列ビット設定工程 226 スタックポインタ増分工程 230 IRET命令受信工程 232 スタックポインタ整列ビット復元工程 234 スタックポインタ減分工程 240 演算実行工程 242 演算実行工程 244 演算実行工程 250 リターン工程

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサからのデータをスタックメモ
    リ上で操作するための方法であって、 前記スタックメモリ中のスタックポインタを前記スタッ
    クメモリ中の第1メモリアドレスと整列させ、 前記スタックポインタを第2のメモリアドレスへ増分し
    て、前記スタックメモリ中に1つの空きメモリアドレス
    を生成し、 少なくとも1つのレジスタ位置からのデータを、前記ス
    タックポインタによって指示される前記第2メモリアド
    レスにある前記スタックメモリ中へ保存し、 プロセッサ演算を実行し、 前記プロセッサ演算の完了後に、前記スタックメモリか
    ら前記少なくとも1つのレジスタ中へデータを復元し、 前記スタックポインタを前記第2メモリの場所から前記
    第1メモリの場所へ減分して、前記スタックメモリ中の
    前記空のメモリアドレスを除去する、ことを備えた方
    法。
  2. 【請求項2】 プロセッサからのデータをスタックメモ
    リ上で操作するための装置であって、 前記スタックメモリに関連するスタックポインタと、 第1のメモリアドレスであって、前記スタックポインタ
    が前記第1のメモリアドレスと整列し、 データが前記スタックメモリ中へ保存される時に、前記
    第1のメモリアドレスから前記スタックポインタを増分
    することによって決定される第2のメモリアドレスであ
    って、前記スタックメモリからデータが復元される時に
    は、前記スタックポインタが前記第1メモリアドレスへ
    減分して戻るようにし、 前記第2のメモリアドレスにある前記スタックメモリ中
    へ保存され、前記スタックメモリから復元されるデータ
    を有する少なくとも1つのレジスタと、 データが前記スタックメモリへ保存された後で、前記ス
    タックポインタが奇数アドレスを指示する時に、前記ス
    タックポインタを整列させ、前記スタックメモリからデ
    ータを復元する前に前記スタックポインタを整列解除す
    る整列装置と、を備えた装置。
JP11078350A 1998-03-20 1999-03-23 デ―タ処理の方法および装置 Pending JP2000029690A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7869998P 1998-03-20 1998-03-20
US078699 1998-03-20

Publications (1)

Publication Number Publication Date
JP2000029690A true JP2000029690A (ja) 2000-01-28

Family

ID=22145682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11078350A Pending JP2000029690A (ja) 1998-03-20 1999-03-23 デ―タ処理の方法および装置

Country Status (2)

Country Link
US (1) US6341344B1 (ja)
JP (1) JP2000029690A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536504A (ja) * 2010-08-12 2013-09-19 アーム・リミテッド アラインメント制御

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061551A1 (en) * 2005-09-13 2007-03-15 Freescale Semiconductor, Inc. Computer Processor Architecture Comprising Operand Stack and Addressable Registers
TW200725393A (en) 2005-12-23 2007-07-01 Padauk Technology Co Ltd Self-control multi-microcontroller system and method
US20070220234A1 (en) * 2006-03-16 2007-09-20 Chang Jung L Autonomous multi-microcontroller system and the control method thereof
JP4284559B2 (ja) * 2007-04-12 2009-06-24 セイコーエプソン株式会社 マイクロプロセッサ、マイクロコンピュータ、電子機器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3889243A (en) * 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US4419726A (en) * 1981-01-16 1983-12-06 Sperry Corporation Instruction decoding in data processing apparatus
US5396624A (en) * 1990-12-20 1995-03-07 Visa International Service Association Account file for off-line transaction authorization
US5335332A (en) * 1991-12-24 1994-08-02 International Business Machines Corporation Method and system for stack memory alignment utilizing recursion
US5687336A (en) * 1996-01-11 1997-11-11 Exponential Technology, Inc. Stack push/pop tracking and pairing in a pipelined processor
US5761491A (en) * 1996-04-15 1998-06-02 Motorola Inc. Data processing system and method for storing and restoring a stack pointer
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
CA2211515C (en) * 1997-07-25 2001-12-11 Kevin Alexander Stoodley System and method of local data alignment for stack memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536504A (ja) * 2010-08-12 2013-09-19 アーム・リミテッド アラインメント制御
US9760374B2 (en) 2010-08-12 2017-09-12 Arm Limited Stack pointer and memory access alignment control

Also Published As

Publication number Publication date
US6341344B1 (en) 2002-01-22

Similar Documents

Publication Publication Date Title
US4970641A (en) Exception handling in a pipelined microprocessor
US7659904B2 (en) System and method for processing high priority data elements
US20020129226A1 (en) Circuits and methods for recovering link stack data upon branch instruction mis-speculation
US7426728B2 (en) Reducing latency, when accessing task priority levels
JPH05204709A (ja) プロセッサ
JPH0414385B2 (ja)
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JP2000029690A (ja) デ―タ処理の方法および装置
US5581720A (en) Apparatus and method for updating information in a microcode instruction
JPH09128267A (ja) データ処理装置およびデータ処理方法
JP2690406B2 (ja) プロセッサおよびデータ処理システム
JP2553200B2 (ja) 情報処理装置
JP2001306334A (ja) エミュレーション装置
JP3211423B2 (ja) 分岐命令実行方法および分岐命令実行装置
EP0177712B1 (en) Masked data fetch and modifying device
US5893928A (en) Data movement apparatus and method
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2671160B2 (ja) 例外処理方式
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
JP2915680B2 (ja) Riscプロセッサ
JP2004021896A (ja) キャッシュフィル制御方法及びcpu
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
JPS60134937A (ja) アドレス拡張装置
JPS6149695B2 (ja)
JPH05257807A (ja) キャッシュメモリ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080319

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080325

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080617