JP2001184211A - 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法 - Google Patents

処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法

Info

Publication number
JP2001184211A
JP2001184211A JP2000338990A JP2000338990A JP2001184211A JP 2001184211 A JP2001184211 A JP 2001184211A JP 2000338990 A JP2000338990 A JP 2000338990A JP 2000338990 A JP2000338990 A JP 2000338990A JP 2001184211 A JP2001184211 A JP 2001184211A
Authority
JP
Japan
Prior art keywords
stack pointer
stack
pointer
updated
register
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
JP2000338990A
Other languages
English (en)
Other versions
JP2001184211A5 (ja
Inventor
Farbliss Aidan
アイダン・ファブリス
Yoramm Salant
サラント・ヨーラム
Marc Erlneckaff
エルネケイブ・マーク
Leonido Tsukaaman
ツカーマン・レオニド
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JP2001184211A publication Critical patent/JP2001184211A/ja
Publication of JP2001184211A5 publication Critical patent/JP2001184211A5/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

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

Abstract

(57)【要約】 【課題】 処理システム内で高速のスタック動作が実行
できるようにする。 【解決手段】 第1および第2のスタックポインタ(S
P)はスタックの最上部および該スタックの最上部に続
くメモリロケーションを指し示す。第1のSPはポップ
動作の間に使用されかつ第2のSPはプッシュ動作の間
に使用される。あるSPが選択されたとき、それは他の
SPに取って代わる。選択されたメモリポインタはスタ
ックが構成されたメモリモジュールに提供され、かつま
た更新される。ポップ動作の場合、更新SPは選択SP
によって指し示されるメモリロケーションに先行するメ
モリロケーションを指し示し、かつプッシュ動作の場合
は、更新SPはそのアドレスに続くメモリアドレスを指
し示す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、処理システムにお
いてスタック動作を行なうための装置および方法に関
し、特に高速のスタック動作を可能にする装置および方
法に関する。
【0002】
【従来の技術】多くの処理システムはその中でスタック
(stack)が構成されたメモリモジュールを有して
いる。スタックは最も最近格納された値が読み出される
べき最初の値となるデータ構造である。いくつかのスタ
ックはメモリモジュールのより下位のアドレス/メモリ
ロケーションに向かって成長し、かついくつかのスタッ
クはメモリモジュールのより上位のアドレスに向かって
成長する。したがって、該スタックの最上位または最上
部(トップ:top)は、データが現在格納されている
スタックの最も低いまたは最も高いアドレスを備えたメ
モリロケーションである。
【0003】スタックに関連する2つの基本的な動作が
あり、すなわち、新しい値がスタックに加えられるプッ
シュ動作(push operation)、および該
スタックの最上部に位置する値が取り出されまたは読み
出されるポップ動作(popoperation)であ
る。前記新しい値は前記スタックの最上部に続くメモリ
ロケーションに格納される。
【0004】
【発明が解決しようとする課題】通常、スタックポイン
タはスタックの最上部をまたは該スタックの最上部に続
くメモリロケーションを指し示す(points t
o)。第1の種別のスタックポインタは高速のポップ動
作を可能にし、一方第2の種別のスタックポインタは高
速のプッシュ動作を可能にする。あるスタックがより上
位のアドレスに向かって成長しかつスタックポインタが
該スタックの最上部に続くメモリロケーションを指し示
す場合、ポップ動作は前記スタックポインタを減分しか
つ前記スタックの最上部に格納された値を移動すること
を含み、かつプッシュ動作はスタックポインタによって
指し示されるメモリロケーションにデータを書きかつ該
スタックポインタを増分することを含む。この従来技術
の手法は比較的時間を浪費する。
【0005】スタック動作は割込み(interrup
ts)にしたがって広く使用されている。通常、処理シ
ステムのステータスまたは状態情報を保持する、複数の
レジスタがスタックにプッシュされ、かつ結局該スタッ
クからポップされる。数多くのレジスタが処理システム
のステータスを格納する場合、割込みの実行は非常に時
間を浪費するものとなる。
【0006】スタック動作を行なうための高速かつ改善
された装置および方法を提供することが必要である。
【0007】
【課題を解決するための手段】本発明の一態様によれ
ば、処理システム内でポップ動作を行なうための方法
(300)が提供され、該方法は、第1のクロックサイ
クル(310)の間に、命令をデコードしかつポップ動
作を実行する必要があるか否かを判定しかつそれに応じ
てポップ動作を要求する制御指示子を発生する段階、第
2のクロックサイクルの第1のフェーズ(320)の間
に、選択されたスタックポインタを提供し、該選択され
たスタックポインタはスタックの最上部を指し示し、前
記スタックのポイントに続くメモリロケーションへのポ
インタを前記選択されたスタックポインタと置き換え、
前記選択されたスタックポインタによって指し示される
メモリロケーションに先行するメモリロケーションを指
し示す更新されたスタックポインタを発生し、前記選択
されたスタックポインタをスタックが構成されているメ
モリモジュールに送り、前記選択されたスタックポイン
タによって指し示されるメモリロケーションからデータ
が読み取れるようにする段階、そして第2のクロックサ
イクルの第2のフェーズ(340)の間に、前記第2の
クロックサイクルの第1のフェーズの間に提供された前
記選択されたスタックポインタを前記更新されたスタッ
クポインタと置き換える段階、を具備することを特徴と
する。
【0008】本発明の別の態様によれば、処理システム
内でプッシュ動作を行なうための方法(300)が提供
され、該方法は、第1のクロックサイクル(310)の
間に、命令をデコードしかつプッシュ動作を実行する必
要があるか否かを決定しかつそれに応じて前記プッシュ
動作を要求する制御指示子を発生する段階、第2のクロ
ックサイクルの第1のフェーズ(330)の間に、選択
されたスタックポインタを提供し、該選択されたスタッ
クポインタはスタックの最上部に続くメモリロケーショ
ンを指し示し、前記スタックの最上部を指し示すポイン
タを前記選択されたスタックポインタと置き換え、前記
選択されたスタックポインタによって指し示されるメモ
リロケーションに続くメモリロケーションを指し示す更
新されたスタックポインタを発生し、前記選択されたス
タックポインタをスタックが構成されているメモリモジ
ュールに送り、前記選択されたスタックポインタによっ
て指し示されるメモリロケーションにデータが書き込み
できるようにする段階、そして第2のクロックサイクル
の第2のフェーズ(350)の間に、前記第2のクロッ
クサイクルの前記第1のフェーズの間に提供された前記
選択されたスタックポインタを前記更新されたスタック
ポインタと置き換える段階、を具備することを特徴とす
る。
【0009】本発明のさらに別の態様によれば、処理シ
ステム内でスタック動作を行なうための方法(300)
が提供され、該方法は、第1のクロックサイクル(31
0)の間に、命令をデコードしかつポップ動作およびプ
ッシュ動作の内からあるスタック動作を実行する必要が
あるか否かを決定しかつそれにしたがって前記スタック
動作を要求する制御指示子を発生する段階、もし前記ス
タック動作がポップ動作であれば、以下のステップ、第
2のクロックサイクルの第1のフェーズ(320)の間
に、選択されたスタックポインタを提供し、該選択され
たスタックポインタはスタックの最上部を指し示し、前
記スタックのポイントに続くメモリロケーションへのポ
インタを前記選択されたスタックポインタで置き換え、
前記選択されたスタックポインタによって指し示される
メモリロケーションに先行するメモリロケーションを指
し示す更新されたスタックポインタを発生し、前記選択
されたスタックポインタをスタックが構成されているメ
モリモジュールに送り、前記選択されたスタックポイン
タによって指し示されるメモリロケーションからデータ
が読み出しできるようにする段階、第2のクロックサイ
クルの第2のフェーズ(340)の間に、前記第2のク
ロックサイクルの前記第1のフェーズの間に提供された
前記選択されたスタックポインタを前記更新されたスタ
ックポインタと置き換える段階、を含むステップを実行
する段階、およびもし前記スタック動作がプッシュ動作
であれば、以下のステップ、第2のクロックサイクルの
第1のフェーズ(330)の間に、選択されたスタック
ポインタを提供し、該選択されたスタックポインタはス
タックの最上部に続くメモリロケーションを指し示し、
前記スタックの最上部へのポインタを前記選択されたス
タックポインタと置き換え、前記選択されたスタックポ
インタによって指し示されるメモリロケーションに続く
メモリロケーションを指し示す更新されたスタックポイ
ンタを発生し、前記選択されたスタックポインタをスタ
ックが構成されているメモリモジュールに送り、前記選
択されたスタックポインタにより指し示されるメモリロ
ケーションに対しデータの書き込みができるようにする
段階、そして第2のクロックサイクルの第2のフェーズ
(350)の間に、前記第2のクロックサイクルの前記
第1のフェーズの間に提供された前記選択されたスタッ
クポインタを前記更新されたスタックポインタと置き換
える段階、を含むステップを実行する段階、を具備する
ことを特徴とする。
【0010】本発明の別の態様によれば、処理システム
内でスタック動作を行なうための装置(10)が提供さ
れ、該装置は、命令をデコードしかつそれに応じてスタ
ック動作を要求する制御指示子(30)を発生するため
のデコーダ(20)、第1のスタックポインタを格納す
るための第1のスタックポインタレジスタ(32)、第
2のスタックポインタを格納するための第2のスタック
ポインタレジスタ(34)、前記デコーダに結合され、
選択されたスタックポインタ(36)および定数(3
8)を受けかつ前記制御指示子(30)にしたがって更
新されたスタックポインタ(40)を発生するための加
算器(28)、そして前記第1および第2のスタックポ
インタに、前記加算器にそして前記デコーダに結合さ
れ、前記制御指示子を受けかつそれに応じて前記第1お
よび第2のスタックポインタの中から前記選択されたス
タックポインタ(36)を選択し、前記選択されたスタ
ックポインタは選択スタックポインタレジスタに格納さ
れ、前記選択されたスタックポインタを選択されなかっ
たスタックポインタレジスタに送り、前記選択されたス
タックポインタを前記加算器におよびスタックが構成さ
れたメモリモジュールに送り、そして前記更新されたス
タックポインタを前記加算器から前記選択スタックポイ
ンタレジスタに送るための選択論理(24)、を具備す
ることを特徴とする。
【0011】本発明の別の態様によれば、アドレスを発
生するための装置(10)が提供され、該装置は、第1
のスタックポインタ(32)を格納するための第1のス
タックポインタレジスタ(22)、第2のスタックポイ
ンタ(34)を格納するための第2のスタックポインタ
レジスタ(26)、前記第1および第2のスタックポイ
ンタ以外のメモリロケーションを格納するための複数の
レジスタ(40),(41),(42),(43)、前
記第1のスタックポインタレジスタ、第2のスタックポ
インタレジスタおよび前記複数のレジスタの中からある
選択されたレジスタを選択するための2つのマルチプレ
クサ(48),(47)、前記マルチプレクサに結合さ
れ、前記選択されたレジスタの内容および定数を受けか
つ前記選択されたレジスタに送られるべき更新された内
容を発生するための加算器(28)、前記第1および第
2のスタックポインタレジスタに結合され、前記第1の
スタックポインタが前記第2のスタックポインタレジス
タに書き込まれることができるようにしかつ前記第2の
スタックポインタが前記第1のスタックポインタレジス
タに書き込まれることができるようにするためのスイッ
チ(46)、前記第1および第2のスタックポインタレ
ジスタに、前記加算器におよび前記デコーダに結合さ
れ、命令を受けるよう構成され、該命令をデコードし、
かつそれにしたがって制御信号および制御指示子を発生
しかつ提供するための制御ユニット(264)、を具備
することを特徴とする。
【0012】上述の装置において、ある命令がポップ動
作を要求する場合、前記制御ユニットは前記2つのマル
チプレクサに前記第1のスタックポインタレジスタを選
択させ、前記スイッチに前記第1のスタックポインタを
前記第2のスタックポインタレジスタに書き込ませ、前
記加算器に定数を前記選択されたスタックポインタに加
算することにより更新されたスタックポインタを発生さ
せる制御信号を送ると好都合である。
【0013】さらに、ある命令がプッシュ動作を要求す
る場合、前記制御ユニットは前記2つのマルチプレクサ
に前記第2のスタックポインタレジスタを選択させ、前
記スイッチに前記第2のスタックポインタを前記第1の
スタックポインタレジスタに書き込ませ、前記加算器に
定数を前記選択されたスタックポインタから減算するこ
とにより更新されたスタックポインタを発生させる制御
信号を送ると好都合である。
【0014】
【発明の実施の形態】本発明は添付の特許請求の範囲に
特定的に示されているが、本発明の他の特徴は図面とと
もに以下の詳細な説明を参照することにより開示され
る。
【0015】一般に、本発明は高速のスタック動作を行
なうための装置および方法を提供する。本発明は2つの
スタックポインタを提供し、すなわちスタックの最上部
を指し示す第1のスタックポインタ、および該スタック
の最上部に続くメモリロケーションを指し示す第2のス
タックポインタである。これら2つのスタックポインタ
はそれらに応じてポップおよびプッシュ動作を行なう間
に使用される。それが使用されている前にスタックポイ
ンタを増分しまたは減分する必要はない。第1のスタッ
クポインタが選択された場合、それは選択されたスタッ
クポインタとしてスタックを保持するメモリモジュール
に提供され、それは第2のスタックポインタに取って代
わりかつ更新される。更新されたスタックポインタは前
記選択されたスタックポインタに先行するメモリロケー
ションを指し示す。更新されたスタックポインタは前に
選択されたスタックポインタとして提供された第1のス
タックポインタに取って代わる。第2のスタックポイン
タが選択されたとき、それは選択されたスタックポイン
タとして該スタックを保持するメモリに提供され、それ
は第1のスタックポインタに取って代わりかつ更新され
る。この更新されたスタックポインタは前記選択された
スタックポインタによって指し示されるメモリロケーシ
ョンに続くメモリロケーションを指し示す。前記更新さ
れたスタックポインタは前に選択されたスタックポイン
タとして提供された第2のスタックポインタに取って代
わる。
【0016】本詳細な説明および添付の図面において使
用される特定の用語および表現並びに開示される特定の
構造および動作の詳細は例示的な目的のためのものにす
ぎず、かつ決して添付の特許請求の範囲に記載された本
発明の範囲を限定するものではない。
【0017】図1は、本発明の好ましい実施形態に係わ
る、処理システム内でスタック動作を行なうための装置
10のブロック図を示す。
【0018】装置10は、命令をデコードしかつそれに
応じたスタック動作を要求する制御指示子(contr
ol indicator)(すなわち、プッシュ/ポ
ップ)30を発生するためのデコーダ20を具備する。
第1のスタックポインタレジスタ22は第1のスタック
ポインタ32を格納するためのものである。第2のスタ
ックポインタレジスタ26は第2のスタックポインタ3
4を格納するためのものである。加算器/減算器28は
選択されたスタックポインタ36および定数(cons
tant)38を受け、かつ前記制御指示子30にした
がって更新されたスタックポインタ40を発生するため
のものである。選択論理24は、制御指示子30を受け
かつそれにしたがって前記第1および第2のスタックポ
インタ32および34から選択されたスタックポインタ
(selected stackpointer)36
を選択し、該選択されたスタックポインタ36を選択さ
れなかったスタックポインタレジスタに送り、選択され
たスタックポインタ36を加算器/減算器28に送り、
そして加算器/減算器28からの更新されたスタックポ
インタ40を前記選択されたスタックポインタレジスタ
に送るためのものである。
【0019】選択論理24は制御指示子30を受けるた
めにバス21を介してデコーダ20に結合され、バス2
3および25を介して第1のスタックポインタレジスタ
22に結合され、バス27および29を介して第2のス
タックポインタレジスタ26に結合され、そしてバス3
3および31を介して加算器/減算器28に結合されて
いる。
【0020】好適には、第1のスタックポインタ32は
前記スタックの最上部を指し示しかつ第2のスタックポ
インタ34は前記スタックの最上部に続くメモリロケー
ションを指し示す。制御指示子30がポップ動作を要求
する場合、選択論理24は第1のスタックポインタレジ
スタ22を選択する。第1のスタックポインタ32に等
しい、選択されたスタックポインタ36は加算器/減算
器28に提供され、かつまたスタックが構成されている
メモリモジュール(図1には示されていない)に提供さ
れる。第1のスタックポインタ32は第2のスタックポ
インタレジスタ26に書き込まれる。加算器/減算器2
8は、選択されたスタックポインタ32から定数38を
減算することにより、第1のスタックポインタレジスタ
22に書き込まれるべき、更新されたスタックポインタ
40を発生する。定数38はスタックの最上部と該スタ
ックの最上部に続くメモリロケーションの間のオフセッ
トを反映する。
【0021】制御指示子30がプッシュ動作を要求する
場合、選択論理24は第2のスタックポインタレジスタ
26を選択する。第2のスタックポインタ34に等し
い、選択されたスタックポインタ36は加算器/減算器
28に提供されかつまたメモリモジュールに提供され
る。第2のスタックポインタ36は第1のスタックポイ
ンタレジスタ22に書き込まれる。加算器/減算器28
は選択されたスタックポインタ36に対し定数38を加
えることにより、第2のスタックポインタレジスタ26
に書き込まれるべき、更新されたスタックポインタ40
を発生する。
【0022】図2は、本発明の一実施形態に係わる、ア
ドレス発生ユニットを有する処理システム110のブロ
ック図である。好ましくは、処理システム110は「非
常に長い命令ワード(Very Long Instr
uction Word:VLIW)を有することによ
って特徴付けられるが、それは必ずしも必要なものでは
ない。VLIWは並列処理システムにおいて使用され
る。各々のVLIWは処理システム110の種々の部分
によって並列様式で実行される複数の命令を備えてい
る。
【0023】処理システム110は内部メモリモジュー
ル220,222、アドレスレジスタファィル226、
プログラムシーケンサ(program sequen
cer)224、データレジスタファイル228および
229、アドレス発生ユニット(AGU)230および
231、そして集合的に232で示される乗算および累
算(multiply and accumulat
e:MAC)ユニットを有する。AGU 230および
231は内部バス260を介してアドレスレジスタファ
イル226に結合されている。MACユニット232は
内部バス262を介してデータレジスタファイル228
および229に結合されている。プログラムシーケンサ
224は命令バス244を介してAGU 230および
231並びにMAC 232に結合されている。
【0024】処理システム110はさらにプログラムバ
ス238、第1のデータバス240および第2のデータ
バス242を含む。プログラムバス238はバス246
を介してプログラムシーケンサ224に結合され、それ
ぞれバス272および282を介してメモリモジュール
220および222に結合されている。データバス24
0および242はバス248および250を介してアド
レスレジスタファイル226に結合され、かつバス25
2,254を介してデータレジスタファイル228,2
29に結合されている。データバス240および242
はバス274〜280を介してメモリモジュール22
0,222に結合されている。
【0025】プログラムシーケンサ224はメモリモジ
ュール220および222の内の1つからVLIWをフ
ェッチし、かつ該VLIWの各部分をMAC 232、
AGU 230および231に送る。AGU 230お
よび231はメモリモジュール220および222に対
しデータまたは次の動作サイクルの間にフェッチされる
べきVLIWのアドレスを提供する。通常、メモリモジ
ュール220および222の内の1つにスタックが構成
される。
【0026】図3は、本発明に係わる、処理システム1
10内の、アドレス発生ユニット(すなわち、AGU)
230およびアドレスレジスタファイル226の一部2
80のブロック図を示す。
【0027】AGU 230は制御ユニット264、レ
ジスタN1 271および加算器/減算器28を備えて
いる。アドレスレジスタファイル226の一部280は
複数のレジスタR0,R1,R2,R3 40〜43、
第1のスタックポインタレジスタ(すなわち、SPR
1)22、第2のスタックポインタレジスタ(すなわ
ち、SPR2)26、スイッチ46、および2つのマル
チプレクサIN_MUX48およびOUT_MUX 4
7を備えている。制御ユニット264はプログラムシー
ケンサ224から命令を受け、該命令をデコードし、か
つ制御指示子30および複数の制御信号を部分280
に、加算器/減算器28に、およびN1 271に提供
し、選択されたスタックポインタおよび更新されたスタ
ックポインタのような、更新されたアドレスの発生を制
御する。
【0028】制御ユニット264は、バス282および
285を介して、IN_MUX 48にかつOUT_M
UX 47に制御信号を送りどのレジスタが更新された
アドレスの発生に関与するかを選択する。IN_MUX
48は、バス49を介して、レジスタR0,R1,R
2,R3 40〜43、SPR1 22およびSPR2
26に結合され、それが受けた制御信号にしたがって
どのレジスタがその内容をバス248および250を介
して加算器/減算器28にかつメモリモジュール222
および220に供給するかを選択する。加算器/減算器
28はバス70を介して前記選択されたレジスタの内容
を受け、加算動作または減算動作を要求する制御信号I
NC/DEC(増分/減分) 50および定数38また
はSIZE(サイズ) 52信号を受け、そして更新さ
れたアドレスを発生する。INC/DEC 50はバス
73を介して制御ユニット264によって提供される。
定数38はバス79を介して制御ユニット264により
あるいはバス39を介してN1 271により提供され
る。SIZE 52は制御ユニット264によって提供
される。
【0029】加算器/減算器28は、バス76、OUT
_MUX 47およびバス248を介して、前記選択さ
れたレジスタに更新されたアドレスを発生する。
【0030】第1のクロックサイクルの間に、制御ユニ
ット264はプログラムシーケンサ224によって提供
された命令をデコードし、かつ更新されたアドレスを発
生する必要があるか否かを判定する。
【0031】スタックポインタアドレスでない更新され
たアドレスの発生は通常R0〜R340〜43の内のレ
ジスタの内容に対しSIZE 52を加算または減算す
ることを含む。SIZE 52は命令のデコード段階の
間に発生されかつ該命令に関連するオペランドの長さを
反映する。例えば、命令“MOVE.2L(R1)+”
はR1 41の内容と8を加えたものに等しい更新され
たアドレスの発生を含む。“2L”は8バイトのデータ
ワードを意味し、したがってSIZE=8である。R1
41が選択されかつINC/DEC=1である。命令
“MOVE.B(R2)−”はR2 42の内容から1
を減算したものに等しい更新アドレスの発生を含む。
“B”は単一バイトのデータワードを意味し、したがっ
てSIZE=1である。R2 42が選択されかつIN
C/DEC=0である。
【0032】もしプッシュ動作を実行する必要があれ
ば、制御ユニット264は制御信号を発生しかつIN_
MUX 48にかつOUT_MUX47に送りSPR2
26かつしたがって第2のスタックポインタ34を選
択し、制御指示子30を発生しかつスイッチ46に送り
第2のクロックサイクルの第1のフェーズの間にSPR
2 26の内容がSPR1 22に書き込まれるべきこ
とを指示する。制御ユニット264はINC/DEC
50(INC/DEC=1)を発生しかつ加算器/減算
器28に提供する。
【0033】第2のクロックサイクルの第1のフェーズ
の間に、スイッチ46を介して、第2のスタックポイン
タ34がSPR1 22に送られ、かつIN_MUX
48を介して加算器/減算器28に送られる。第2のス
タックポインタ34はまたメモリモジュール220およ
び222の内の1つに与えられる。加算器/減算器28
は選択されたスタックポインタ36に定数38を加える
ことにより更新されたスタックポインタ40を発生す
る。
【0034】第2のクロックサイクルの第2のフェーズ
の間に、加算器/減算器28は、OUT_MUX 47
を介して、更新されたスタックポインタ40をSPR2
26に送る。
【0035】ポップ動作を実行する必要があれば、制御
ユニット264は制御信号を発生しかつIN_MUX
48におよびOUT_MUX 47に送りSPR1 2
2かつしたがって第1のスタックポインタ32を選択
し、制御指示子30を発生しかつスイッチ46に送り第
2のクロックサイクルの第1のフェーズの間にSPR1
22内に格納された第1のスタックポインタ32がSP
R2 26に書き込まれるべきことを指示する。制御ユ
ニット264はさらにINC/DEC 50(INC/
DEC=0)を発生しかつ加算器/減算器28に提供す
る。
【0036】第2のクロックサイクルの第1のフェーズ
の間に、第1のスタックポインタ32が、スイッチ46
を介して、SPR2 26に送られ、かつIN_MUX
48を介して加算器/減算器28に送られる。第1の
スタックポインタ32もまたスタックが構成されている
メモリモジュール220および222の内の1つに提供
される。加算器/減算器28は選択されたスタックポイ
ンタ36から定数38を減算することにより更新された
スタックポインタ40を発生する。
【0037】第2のクロックサイクルの第2のフェーズ
の間に、加算器/減算器28は、OUT_MUX 47
を介して、SPR1 22に対し更新されたスタックポ
インタ40を送る。
【0038】図4は、フローチャート形式で、処理シス
テム内でスタック動作を行なうための方法300を示
す。方形のボックス310,320,330,340お
よび350は方法300のステップを表わしている。経
路またはパス315および325で示されるように、ス
テップ310にはステップ320および330が続くこ
とができる。パス335および345で示されるよう
に、ステップ320および330にはステップ340お
よび350が続く。パス355および365で示される
ように、ステップ340および350にはステップ31
0が続く。
【0039】好適には、方法300はパイプライン化ア
ーキテクチャを有する処理システムで実行される。命令
は、プログラム・プリフェッチステージ、プログラム・
フェッチステージ、ディスパッチおよびデコードステー
ジ、アドレス発生ステージ、および実行ステージのよう
な、複数のステージまたは段階において処理される。ス
テップ310は前記ディスパッチおよびデコードステー
ジの間に行なわれる。ステップ320〜350は前記ア
ドレス発生ステージの間に行なわれる。説明の便宜上、
図4はこれら2つのステージのみを示している。
【0040】方法300は次のステップを具備してい
る。ステップ310の間にかつ第1のクロックサイクル
の間に、命令をデコードしかつプッシュ動作およびポッ
プ動作の内のあるスタック動作を実行する必要があるか
否かを判定し、そしてそれにしたがって該スタック動作
を要求する制御指示子を発生するステップ。
【0041】パス315および335に示されるよう
に、もし前記スタック動作がポップ動作であれば、ステ
ップ320および340を行なうステップ。
【0042】ステップ320の間にかつ第2のクロック
サイクルの第1のフェーズの間に、スタックの最上部を
指し示す選択されたスタックポインタ36を提供するス
テップ。前記スタックのポイントに続くメモリロケーシ
ョンへのポインタを前記選択されたスタックポインタに
置き換えるステップ。選択されたスタックポインタ36
によって指し示されるメモリロケーションに先行するメ
モリロケーションを指し示す更新されたスタックポイン
タ40を発生するステップ。選択されたスタックポイン
タ36をスタックが構成されているメモリモジュールに
送り、前記選択されたスタックポインタによって示され
るメモリロケーションからデータの読取りを可能にする
ステップ。
【0043】好適には、ステップ320の間にかつ第2
のクロックサイクルの第1のフェーズの間に、第1のス
タックポインタレジスタ22から選択されたスタックポ
インタ36を提供し、選択されたスタックポインタ36
を第2のスタックポインタレジスタ26に書き込み、選
択されたスタックポインタ36を加算器/減算器28に
送り、選択されたスタックポインタ36から定数38を
減算することにより更新されたスタックポインタ40を
発生し、かつスタックが構成されているメモリモジュー
ルに選択されたスタックポインタ36を送り、それによ
って前記実行ステージの間にスタックの最上部からデー
タが読み出すことができるようにされる。
【0044】ステップ340の間にかつ第2のクロック
サイクルの第2のフェーズの間に、第2のクロックサイ
クルの第1のフェーズの間に提供された選択されたスタ
ックポインタ36を更新されたスタックポインタ40と
置き換えるステップ。好適には、ステップ340の間に
かつ第2のクロックサイクルの第2のフェーズの間に、
更新されたスタックポインタ40を第1のスタックポイ
ンタレジスタ22に書き込むステップを具備する。
【0045】パス325および345によって示される
ように、もし前記スタック動作がプッシュ動作であれ
ば、ステップ330および350を行なうステップを具
備する。
【0046】ステップ330および第2のクロックサイ
クルの第1のフェーズの間に、スタックの最上部に続く
メモリロケーションを指し示す選択されたスタックポイ
ンタ36を提供する。前記スタックの最上部を指し示す
ポインタを選択されたスタックポインタ36によって置
き換える。前記選択されたスタックポインタ36によっ
て指し示されるメモリロケーションに続くメモリロケー
ションを指し示す更新されたスタックポインタ40を発
生する。選択されたスタックポインタ36をスタックが
構成されているメモリモジュールに送り、選択されたス
タックポインタ36によって指し示されるメモリロケー
ションにデータが書き込みできるようにする。好適に
は、ステップ330の間にかつ第2のクロックサイクル
の第1のフェーズの間に、第2のスタックポインタレジ
スタ26から選択されたスタックポインタ36を提供
し、選択されたスタックポインタ36を第1のスタック
ポインタレジスタ22に書き込み、選択されたスタック
ポインタ36を加算器/減算器28に送り、定数38を
選択されたスタックポインタ36に加えることにより更
新されたスタックポインタ40を発生し、そしてスタッ
クが構成されたメモリモジュールに選択されたスタック
ポインタ36を送り、それによって前記実行段階の間に
前記スタックの最上部に続くメモリロケーションにデー
タが書込みできるようにする。
【0047】ステップ340の間にかつ第2のクロック
サイクルの第2のフェーズの間に、前記第2のクロック
サイクルの第1のフェーズの間に提供された選択された
スタックポインタ36を更新されたスタックポインタ4
0によって置き換える。好適には、ステップ350の間
にかつ第2のクロックサイクルの第2のフェーズの間
に、更新されたスタックポインタ40を第2のスタック
ポインタレジスタ26に書き込む。
【0048】パス355および365によって示される
ように、ステップ340および350にはステップ31
0が続く。
【0049】
【発明の効果】したがって、スタック動作を行なうため
の装置および方法の少なくとも1つの好ましい実施形態
を含む実施形態がここで説明された。当業者には開示さ
れた主題は数多くの方法で変更できかつ上で特に述べら
れかつ説明された好ましい形式以外の数多くの実施形態
を取り得ることは明らかであろう。
【0050】したがって、上で開示された主題は例示的
なものであり制限的なものではなく、かつ法律によって
認められる最大の範囲内で添付の特許請求の範囲が本発
明の真の精神および範囲内にあるすべてのそのような変
更および他の実施形態をカバーするものと考える。本発
明の範囲は前述の詳細な説明よりはむしろ添付の特許請
求の範囲およびそれらの等価物の最も広い許容される解
釈によって決定されるべきである。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態に係わる、処理シス
テム内でスタック動作を行なうための装置を示すブロッ
ク図である。
【図2】本発明の好ましい実施形態に係わる、アドレス
発生ユニットを有するプロセッサを示すブロック図であ
る。
【図3】本発明の好ましい実施形態に係わる、アドレス
発生ユニットを示すブロック図である。
【図4】本発明に係わる、スタック動作を行なうための
方法を示すフローチャートである。
【符号の説明】
10 スタック動作を行なうための装置 20 デコーダ 22 第1のスタックポインタレジスタ 24 選択論理 26 第2のスタックポインタレジスタ 28 加算器/減算器 30 制御指示子 32,34 スタックポインタ 36 選択されたスタックポインタ 38 定数 40 更新されたスタックポインタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サラント・ヨーラム イスラエル ロッシュ−ハアイン 40800 ヒー−ベイヤー・ストリート57 (72)発明者 エルネケイブ・マーク イスラエル ラマット・ギャン 69395 アサフ26 (72)発明者 ツカーマン・レオニド イスラエル ハイファ 32584 マイモン 11/3

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 処理システム内でポップ動作を行なうた
    めの方法(300)であって、 第1のクロックサイクル(310)の間に、命令をデコ
    ードしかつポップ動作を実行する必要があるか否かを判
    定しかつそれに応じてポップ動作を要求する制御指示子
    を発生する段階、 第2のクロックサイクルの第1のフェーズ(320)の
    間に、選択されたスタックポインタを提供し、該選択さ
    れたスタックポインタはスタックの最上部を指し示し、
    前記スタックのポイントに続くメモリロケーションへの
    ポインタを前記選択されたスタックポインタと置き換
    え、前記選択されたスタックポインタによって指し示さ
    れるメモリロケーションに先行するメモリロケーション
    を指し示す更新されたスタックポインタを発生し、前記
    選択されたスタックポインタをスタックが構成されてい
    るメモリモジュールに送り、前記選択されたスタックポ
    インタによって指し示されるメモリロケーションからデ
    ータが読み取れるようにする段階、そして第2のクロッ
    クサイクルの第2のフェーズ(340)の間に、前記第
    2のクロックサイクルの第1のフェーズの間に提供され
    た前記選択されたスタックポインタを前記更新されたス
    タックポインタと置き換える段階、 を具備することを特徴とする処理システム内でポップ動
    作を行なうための方法(300)。
  2. 【請求項2】 処理システム内でプッシュ動作を行なう
    ための方法(300)であって、 第1のクロックサイクル(310)の間に、命令をデコ
    ードしかつプッシュ動作を実行する必要があるか否かを
    決定しかつそれに応じて前記プッシュ動作を要求する制
    御指示子を発生する段階、 第2のクロックサイクルの第1のフェーズ(330)の
    間に、選択されたスタックポインタを提供し、該選択さ
    れたスタックポインタはスタックの最上部に続くメモリ
    ロケーションを指し示し、前記スタックの最上部を指し
    示すポインタを前記選択されたスタックポインタと置き
    換え、前記選択されたスタックポインタによって指し示
    されるメモリロケーションに続くメモリロケーションを
    指し示す更新されたスタックポインタを発生し、前記選
    択されたスタックポインタをスタックが構成されている
    メモリモジュールに送り、前記選択されたスタックポイ
    ンタによって指し示されるメモリロケーションにデータ
    が書き込みできるようにする段階、そして第2のクロッ
    クサイクルの第2のフェーズ(350)の間に、前記第
    2のクロックサイクルの前記第1のフェーズの間に提供
    された前記選択されたスタックポインタを前記更新され
    たスタックポインタと置き換える段階、 を具備することを特徴とする処理システム内でプッシュ
    動作を行なうための方法(300)。
  3. 【請求項3】 処理システム内でスタック動作を行なう
    ための方法(300)であって、 第1のクロックサイクル(310)の間に、命令をデコ
    ードしかつポップ動作およびプッシュ動作の内からある
    スタック動作を実行する必要があるか否かを決定しかつ
    それにしたがって前記スタック動作を要求する制御指示
    子を発生する段階、 もし前記スタック動作がポップ動作であれば、以下のス
    テップ、 第2のクロックサイクルの第1のフェーズ(320)の
    間に、選択されたスタックポインタを提供し、該選択さ
    れたスタックポインタはスタックの最上部を指し示し、
    前記スタックのポイントに続くメモリロケーションへの
    ポインタを前記選択されたスタックポインタで置き換
    え、前記選択されたスタックポインタによって指し示さ
    れるメモリロケーションに先行するメモリロケーション
    を指し示す更新されたスタックポインタを発生し、前記
    選択されたスタックポインタをスタックが構成されてい
    るメモリモジュールに送り、前記選択されたスタックポ
    インタによって指し示されるメモリロケーションからデ
    ータが読み出しできるようにする段階、 第2のクロックサイクルの第2のフェーズ(340)の
    間に、前記第2のクロックサイクルの前記第1のフェー
    ズの間に提供された前記選択されたスタックポインタを
    前記更新されたスタックポインタと置き換える段階、 を含むステップを実行する段階、およびもし前記スタッ
    ク動作がプッシュ動作であれば、以下のステップ、 第2のクロックサイクルの第1のフェーズ(330)の
    間に、選択されたスタックポインタを提供し、該選択さ
    れたスタックポインタはスタックの最上部に続くメモリ
    ロケーションを指し示し、前記スタックの最上部へのポ
    インタを前記選択されたスタックポインタと置き換え、
    前記選択されたスタックポインタによって指し示される
    メモリロケーションに続くメモリロケーションを指し示
    す更新されたスタックポインタを発生し、前記選択され
    たスタックポインタをスタックが構成されているメモリ
    モジュールに送り、前記選択されたスタックポインタに
    より指し示されるメモリロケーションに対しデータの書
    き込みができるようにする段階、そして第2のクロック
    サイクルの第2のフェーズ(350)の間に、前記第2
    のクロックサイクルの前記第1のフェーズの間に提供さ
    れた前記選択されたスタックポインタを前記更新された
    スタックポインタと置き換える段階、 を含むステップを実行する段階、 を具備することを特徴とする処理システム内でスタック
    動作を行なうための方法(300)。
  4. 【請求項4】 処理システム内でスタック動作を行なう
    ための装置(10)であって、 命令をデコードしかつそれに応じてスタック動作を要求
    する制御指示子(30)を発生するためのデコーダ(2
    0)、 第1のスタックポインタを格納するための第1のスタッ
    クポインタレジスタ(32)、 第2のスタックポインタを格納するための第2のスタッ
    クポインタレジスタ(34)、 前記デコーダに結合され、選択されたスタックポインタ
    (36)および定数(38)を受けかつ前記制御指示子
    (30)にしたがって更新されたスタックポインタ(4
    0)を発生するための加算器(28)、そして前記第1
    および第2のスタックポインタに、前記加算器にそして
    前記デコーダに結合され、前記制御指示子を受けかつそ
    れに応じて前記第1および第2のスタックポインタの中
    から前記選択されたスタックポインタ(36)を選択
    し、前記選択されたスタックポインタは選択スタックポ
    インタレジスタに格納され、前記選択されたスタックポ
    インタを選択されなかったスタックポインタレジスタに
    送り、前記選択されたスタックポインタを前記加算器に
    およびスタックが構成されたメモリモジュールに送り、
    そして前記更新されたスタックポインタを前記加算器か
    ら前記選択スタックポインタレジスタに送るための選択
    論理(24)、 を具備することを特徴とする処理システム内でスタック
    動作を行なうための装置(10)。
  5. 【請求項5】 アドレスを発生するための装置(10)
    であって、 第1のスタックポインタ(32)を格納するための第1
    のスタックポインタレジスタ(22)、 第2のスタックポインタ(34)を格納するための第2
    のスタックポインタレジスタ(26)、 前記第1および第2のスタックポインタ以外のメモリロ
    ケーションを格納するための複数のレジスタ(40),
    (41),(42),(43)、 前記第1のスタックポインタレジスタ、第2のスタック
    ポインタレジスタおよび前記複数のレジスタの中からあ
    る選択されたレジスタを選択するための2つのマルチプ
    レクサ(48),(47)、 前記マルチプレクサに結合され、前記選択されたレジス
    タの内容および定数を受けかつ前記選択されたレジスタ
    に送られるべき更新された内容を発生するための加算器
    (28)、 前記第1および第2のスタックポインタレジスタに結合
    され、前記第1のスタックポインタが前記第2のスタッ
    クポインタレジスタに書き込まれることができるように
    しかつ前記第2のスタックポインタが前記第1のスタッ
    クポインタレジスタに書き込まれることができるように
    するためのスイッチ(46)、 前記第1および第2のスタックポインタレジスタに、前
    記加算器におよび前記デコーダに結合され、命令を受け
    るよう構成され、該命令をデコードし、かつそれにした
    がって制御信号および制御指示子を発生しかつ提供する
    ための制御ユニット(264)、 を具備することを特徴とするアドレスを発生するための
    装置(10)。
  6. 【請求項6】 ある命令がポップ動作を要求する場合、
    前記制御ユニットは前記2つのマルチプレクサに前記第
    1のスタックポインタレジスタを選択させ、前記スイッ
    チに前記第1のスタックポインタを前記第2のスタック
    ポインタレジスタに書き込ませ、前記加算器に定数を前
    記選択されたスタックポインタに加算することにより更
    新されたスタックポインタを発生させる制御信号を送る
    ことを特徴とする請求項5に記載の装置。
  7. 【請求項7】 ある命令がプッシュ動作を要求する場
    合、前記制御ユニットは前記2つのマルチプレクサに前
    記第2のスタックポインタレジスタを選択させ、前記ス
    イッチに前記第2のスタックポインタを前記第1のスタ
    ックポインタレジスタに書き込ませ、前記加算器に定数
    を前記選択されたスタックポインタから減算することに
    より更新されたスタックポインタを発生させる制御信号
    を送ることを特徴とする請求項5に記載の装置。
JP2000338990A 1999-11-09 2000-11-07 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法 Pending JP2001184211A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/436891 1999-11-09
US09/436,891 US6654871B1 (en) 1999-11-09 1999-11-09 Device and a method for performing stack operations in a processing system

Publications (2)

Publication Number Publication Date
JP2001184211A true JP2001184211A (ja) 2001-07-06
JP2001184211A5 JP2001184211A5 (ja) 2007-12-27

Family

ID=23734241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000338990A Pending JP2001184211A (ja) 1999-11-09 2000-11-07 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法

Country Status (5)

Country Link
US (1) US6654871B1 (ja)
JP (1) JP2001184211A (ja)
KR (1) KR100875377B1 (ja)
CN (1) CN1230739C (ja)
TW (1) TW535089B (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10121745A1 (de) * 2001-05-04 2002-11-14 Systemonic Ag Verfahren und Anordnung zu einem Stack mit einem, in Datengruppen mit mehreren Elementen aufgeteilten Speicher
IL152006A0 (en) * 2002-09-30 2003-07-31 Rabintex Ind Ltd Shell for ballistic helmet
CN100353335C (zh) * 2003-03-28 2007-12-05 联发科技股份有限公司 增加处理器中存储器的方法
US7111149B2 (en) * 2003-07-07 2006-09-19 Intel Corporation Method and apparatus for generating a device ID for stacked devices
CN100461090C (zh) * 2004-03-31 2009-02-11 英特尔公司 利用代码共享进行堆栈高速缓存的系统、方法和设备
US7290153B2 (en) 2004-11-08 2007-10-30 Via Technologies, Inc. System, method, and apparatus for reducing power consumption in a microprocessor
JP2006309508A (ja) * 2005-04-28 2006-11-09 Oki Electric Ind Co Ltd スタック制御装置およびその方法
US7769983B2 (en) * 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US7454572B2 (en) * 2005-11-08 2008-11-18 Mediatek Inc. Stack caching systems and methods with an active swapping mechanism
US7647482B2 (en) * 2006-03-31 2010-01-12 Intel Corporation Methods and apparatus for dynamic register scratching
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
WO2008122746A1 (en) * 2007-04-10 2008-10-16 Cambridge Consultants Limited Data processing apparatus
US8055886B2 (en) * 2007-07-12 2011-11-08 Texas Instruments Incorporated Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction
JP5044387B2 (ja) * 2007-12-26 2012-10-10 ルネサスエレクトロニクス株式会社 情報処理装置及びそのスタックポインタ更新方法
WO2010004245A1 (en) * 2008-07-10 2010-01-14 Cambridge Consultants Limited Processor with push instruction
US9588881B2 (en) * 2011-05-16 2017-03-07 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
US8934279B2 (en) * 2011-05-16 2015-01-13 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space
US9910823B2 (en) 2011-05-16 2018-03-06 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
US9697002B2 (en) * 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
CN112486897A (zh) * 2019-09-11 2021-03-12 中国科学院微电子研究所 一种高速缓存系统及单周期多数据的入栈、出栈操作方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58221446A (ja) * 1982-06-18 1983-12-23 Hitachi Ltd スタツクアドレス選択方式
JPS62128337A (ja) * 1985-11-30 1987-06-10 Nec Corp スタツク制御方式

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142635A (en) 1989-04-07 1992-08-25 Intel Corporation Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer
JPH0752576B2 (ja) 1990-07-19 1995-06-05 株式会社東芝 スタックメモリ
US5381360A (en) * 1993-09-27 1995-01-10 Hitachi America, Ltd. Modulo arithmetic addressing circuit
US5706491A (en) 1994-10-18 1998-01-06 Cyrix Corporation Branch processing unit with a return stack including repair using pointers from different pipe stages
KR970705077A (ko) * 1995-05-26 1997-09-06 존 엠. 클락3세 팝(POP) 명령 실행 장치 및 방법(Apparatus and Method for Executing Pop Instructions)
US5687336A (en) 1996-01-11 1997-11-11 Exponential Technology, Inc. Stack push/pop tracking and pairing in a pipelined processor
KR100246465B1 (ko) * 1996-11-06 2000-03-15 김영환 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58221446A (ja) * 1982-06-18 1983-12-23 Hitachi Ltd スタツクアドレス選択方式
JPS62128337A (ja) * 1985-11-30 1987-06-10 Nec Corp スタツク制御方式

Also Published As

Publication number Publication date
CN1295279A (zh) 2001-05-16
KR100875377B1 (ko) 2008-12-23
KR20010051522A (ko) 2001-06-25
CN1230739C (zh) 2005-12-07
TW535089B (en) 2003-06-01
US6654871B1 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
JP2001184211A (ja) 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法
CA1325285C (en) Method and apparatus for ordering and queueing multiple memory requests
JP3871883B2 (ja) 間接分岐ターゲットを計算するための方法
JP2006228241A (ja) プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法
JP2002073330A (ja) データ処理装置
JPH01503011A (ja) キャッシュマネッジメントシステムを含むデジタルデータ処理システム用汎用プロセッサユニット
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
JP3729545B2 (ja) キャッシュメモリへのアクセス
US5944801A (en) Isochronous buffers for MMx-equipped microprocessors
JP2002287959A (ja) ロード・ストアキュー
US5687353A (en) Merging data using a merge code from a look-up table and performing ECC generation on the merged data
JP6944576B2 (ja) キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US5197133A (en) Control store addressing from multiple sources
US4737908A (en) Buffer memory control system
JP3490005B2 (ja) 命令制御装置及びその方法
JP3644892B2 (ja) 複数組の命令組を実行するためのデータ処理装置
JP3132566B2 (ja) 命令先行制御装置
US11537402B1 (en) Execution elision of intermediate instruction by processor
EP0915416B1 (en) System for allowing a two word instruction to be executed in a single cycle and method therefor
JP3078293B2 (ja) 記憶制御装置
JP2569867B2 (ja) 実効アドレス先行計算型パイプラインマイクロプロセッサ
JPH10111798A (ja) 情報処理装置
JPH08171488A (ja) データアドレス制御回路
JP2001282618A (ja) 処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071105

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071105

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100713