JPH036735A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH036735A
JPH036735A JP1142522A JP14252289A JPH036735A JP H036735 A JPH036735 A JP H036735A JP 1142522 A JP1142522 A JP 1142522A JP 14252289 A JP14252289 A JP 14252289A JP H036735 A JPH036735 A JP H036735A
Authority
JP
Japan
Prior art keywords
pointer
instruction
data
stack
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
JP1142522A
Other languages
English (en)
Inventor
Masaya Miyazaki
雅也 宮崎
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 JP1142522A priority Critical patent/JPH036735A/ja
Priority to CA002018182A priority patent/CA2018182C/en
Priority to KR1019900008268A priority patent/KR930003410B1/ko
Priority to EP19900110608 priority patent/EP0401745A3/en
Publication of JPH036735A publication Critical patent/JPH036735A/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • 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
    • 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
    • G06F9/4486Formation of subprogram jump address

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)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は スタック領域のデータ参照を高速化する機構
を持つデータ処理装置に関するものであも 従来の技術 プログラムによって動作するデータ処理装置の処理を高
速化するためにCヨ  サブルーチンが使用するデータ
への参照を高速化する必5.要があa これをソフトウ
ェアによって実現する手段のひとつとして、サブルーチ
ンが使用するデータをできるかぎり高速参照可能なレジ
スタに保持するという方法かあも しかし 通常使用可
能なレジスタの数には制限があり、サブルーチンの実行
後に使用するデータを保持しているレジスタはサブルー
チン呼出し時に退避しなければならないという問題があ
ム そこで、ハードウェアによって実現する手段の一つ
として、スタック領域のデータのみを格納し高速アクセ
ス可能な記憶手段を設けてサブルーチンが使用するデー
タをスタック領域に保持するという方法があも 従来のスタック領域のデータ参照を高速化する機構を持
つデータ処理装置としてζよ 例えば「エイ・エム29
000 32−ビット ストリームラインド インスト
ラクション プロセッサーユーザーズ マニュアル」ア
ドバンスト マイクロ デイバイシズ インコーホレー
テッド、 1988  (ADVANCED MICR
ODEVICES、INC,、Am2900032−B
it Streamlined In5tructio
n ProcessorUsers Manual、 
1988 )に示されていも この従来のデータ処理装
置:よ 第1オペランドと第2オペランドを演算して第
3オペランドに格納する3オペランド形式の命令体系を
持板 スタック領域のデータをスタックポインタに格納
されたアドレスからの相対位置によって指定するたべ 
第1オペランド、第2オペランド、第3オペランドのそ
れぞれに対応する3個の相対位置指定部を命令語中に持
つ。
第7図はこの従来のデータ処理装置のブロック図を示す
ものであり、 1はデータ記憶半没101は命令語を格
納する命令レジスタ(図中rIRJと記す)、 102
はスタックポインタ(図中「SP」と記す)、 103
は解読平成 104は演算半没 201. 202. 
203は加算器 204゜205、 206. 207
はパイプライン処理のためのレジスタ(図中「REG」
と記す)、 301゜302は演算手段104の大カバ
、(303は演算手段104の出力バスであも 以上のように構成された従来のデータ処理装置において
1よ 命令レジスタ101にスタック領域のデータを参
照する命令語が格納されると、解読手段103によって
命令語が解読されると同時へ加算器201.202.2
03によってスタックポインタ102に格納されている
アドレスと命令語の第1オペランドの相対位置指定部 
第2オペランドの相対位置指定部 第3オペランドの相
対位置指定部のそれぞれの値が加算され その出力がレ
ジスタ204. 205. 206に格納される。
次にデータ記憶手段1から第1オペランドと第2オペラ
ンドが読みだされてバス301,302に出力され 演
算手段104内部の入力レジスタに格納さると同時く 
レジスタ206に格納されていた第3オペランドのアド
レスがレジスタ207に転送されも 次に演算手段10
4は命令語で指定された演算を実行してその結果を内部
の出力レジスタに格納すると同時へ レジスタ207に
格納されていたアドレスがレジスタ208に転送され翫
 最後に 演算結果がバス303に出力されデータ記憶
手段1のレジスタ208の出力するアドレスに格納され
も 次に スタック領域のデータを参照する命令が連続する
時の動作について説明する。この従来のデータ処理装置
(友 命令の解法 オペランドの読出L 演算の実イπ
 演算結果の格納の4ステージによって構成されたバイ
ブライン処理方式を採用しているたべ その動作は第8
図に示すようになム すなわ板 各ステージが並列に動
作するため実質的に1サイクルで命令を実行することが
できも な耘 演算結果を次命令のオペランドとして読
みだす場合に(友 演算結果を直接次の演算の入力とす
るためのバイパス回路が使用されも次に スタックポイ
ンタ102の内容を変更する命令を実行した直後にスタ
ック領域のデータを参照する命令を実行する時の動作を
説明すも 第9図はこの時のバイブライン動作を示すも
のであり、スタックポインタ102の変更が終了するま
でデータ記憶手段1のアドレス計算が実行できないた八
 3サイクルのアイドル時間が生じも発明が解決しよう
とする課題 サブルーチンで使用するデータをスタック領域に保持す
る場合(飄 例えは 森下巖「マイクロコンピュータの
ハードウェアJ I)961−71に示されているよう
にスタックポインタとフレームポインタをペースレジス
タとしてスタック領域のデータへアクセスするという方
法がよく用いられる。またサブルーチンへのパラメータ
の引渡しやレジスタの一時的な待避にはスタックへのプ
ッシュ力(レジスタの復元にはスタックからのポツプが
実行され その時にはスタックポインタの内容をパラメ
ータやレジスタのサイズだけデクリメントまたはインク
リメントする必要があム しかしながら上記のような構成で(友 フレームポイン
タをペースレジスタとしてサブルーチンの局所変数を高
速に参照することができないという課題を有してい九 また サブルーチンの呼出し 復帰の前後ではスタック
ポインタの内容を変更するプッシュ、ポツプが連続して
バイブライン処理に多くのアイドル状態が発生し 実行
速度が低下するという課題も有してい九 また サブルーチンは呼び出された直後に 局所変数領
域をスタック領域に確保するためへ サブルーチンを呼
び出した側のフレームポインタをスタックにプッシュし
 現在のスタックポインタの内容をフレームポインタに
コピーし スタックポインタに確保する局所変数領域の
サイズを減算するという処理をよく行い(例えは モト
ローラ社製のマイクロコンピュータMC68000では
LINKというl命令でこの処理を実行する)、この処
理のことを一般的にスタックフレームの形成と呼属 し
かしなが収 この処理もスタックポインタの更新を最後
に実行するた数 その直後にスタック領域のデータを参
照する命令を実行するとバイブライン処理にアイドル状
態が発生し 実行速度が低下するという課題も有してい
九請求項1記載の発明はかかる点に鑑へ フレームポイ
ンタをペースレジスタとしてスタック領域のデータを高
速に参照でき、プッシュ、ポツプが連続しても実行速度
の低下をまねかないデータ処理装置を提供することを目
的とし また請求項2記載の発明ζよ さらにサブルー
チンのスタックフレーム形成を高速化することを目的と
すム課題を解決するための手段 請求項1記載の発明はスタックポインタと、フレームポ
インタと、少なくとも2個のデータの読み出しと1個の
データの書き込みを同時に行うデータ記憶手段と、前記
スタックポインタの内容変更を伴う命令を解読する解読
手段と、前記スタックポインタの示すアドレスが前記デ
ータ記憶手段のどの位置にマツピングされていすかを示
す第1のポインタと、前記フレームポインタの示すアド
レスが前記データ記憶手段のどの位置にマツピングされ
ているかを示す第2のポインタと、命令語中のメモリア
ドレス指定部の一部と前記第1のポインタに格納されて
いるデータを加算する第1の加算手段と、命令語中のメ
モリアドレス指定部の一部と前記第2のポインタに格納
されているデータを加算する第2の加算手段と、前記第
1のポインタに格納されているデータと予め決められた
定数を加算する第3の加算手段と、前記第1の加算手段
が出力する位置の前記データ記憶手段のデータを読みだ
す第1のデータ読出し手段と、前記第2の加算手段が出
力する位置の前記データ記憶手段のデータを読みだす第
2のデータ読出し手段と、前記第3の加算手段の出力を
前記第1のポインタに書き込む第1のポインタ更新手段
と、前記スタックポインタの示すアドレスの前記データ
記憶手段のマツピング位置を前記第1のポインタに書き
込む第2のポインタ更新手段と、前記フレームポインタ
の示すアドレスの前記データ記憶手段のマツピング位置
を前記第2のポインタに書き込む第3のポインタ更新手
段とを備えたデータ処理装置である。
請求項2記載の発明は特許請求の範囲第1項記載の手段
に加え スタックフレーム形成命令を解読する解読手段
と、第1のポインタと命令語中のアドレス指定部に格納
されているデータと予め決められた定数とを加算する第
4の加算手段と、前記第4の加算手段の出力を前記第1
のポインタに書き込む第4のポインタ更新手段と、第2
の加算手段の出力を第2のポインタに書き込む第5のポ
インタ更新手段とを備えたデータ処理装置であも作  
 用 請求項1記載の発明は前記した構成により、フレームポ
インタに命令語で指定された相対位置を加算したアドレ
スがデータ記憶手段のどの位置にマツピングするかを第
2の加算手段の出力によって決定し フレームポインタ
をペースレジスタとしてスタック領域のデータを高速に
参照することができム また プツシ占 ポツプ命令を
実行した時には 実際のスタックポインタがデクリメン
トまたはインクリメントされる前に第3の加算手段の出
力を第1の更新手段によって第1のポインタに書き込へ
 その直後にスタックポインタを参照する命令が実行さ
れても更新された第1のポインタを使用し パイプライ
ンにアイドル状態を生じることなく命令を実行できも また 請求項2記載の発明はさらに前記した構成により
、スタックフレーム形成命令が実行された時に1よ 第
4の加算手段の出力を第4の更新手段によって第1のポ
インタに書き込へ 第3の加算手段の出力を第5の更新
手段によって第2のポインタに書き込へ その直後にス
タックポインタまたはフレームポインタを参照する命令
が実行されても更新された第1のポインタまたは第2の
ポインタを使用し パイプライン処理にアイドル状態を
生じることなく命令を実行できも 実施例 第1図は請求項1記載の発明の一実施例におけるデータ
処理装置のブロック図を示すのもであム第1図において
、 1は2個のデータ読み出しと1個のデータ書き込み
を同時に実行できる3ボートのデータ記憶半没 11は
第1のポインタ(図中rP IJと記す)、 12は第
2のポインタ(図中「P2」と記す)、 21.22は
加算器 31゜32、 33. 34. 35は選択器
 41.42は定数発生手R101は命令レジス久 1
02はスタックポイン久 103は解読半没 104は
演算手段 105はフレームポインタ(図中「FP」と
記す)、 106は汎用レジスタ脈 107は予め決め
られた定数を加減算する加減算手段、204、 205
. 207. 208はパイプライン処理のためのレジ
ス久 301,302は演算手段104の大カバ″7.
,303は演算手段104の出力バスであも この第Iの実施例のデータ処理装置は 第1オペランド
と第2オペランドを演算して再び第2オペランドに格納
するという2オペランド方式の命令体系を持板 それぞ
れのオペランドに対して、スタックポインタからの相対
位置によってアドレスを指定するスタックポインタ相対
アドレッシングモードと、フレームポインタからの相対
位置によってアドレスを指定するフレームポインタ相対
アドレッシングモードを使用することができる。
まf、  スタックポインタの内容を書き込むデータの
サイズだけデクリメントした後スタックポインタの示す
アドレスにデータを書き込むPUSH命令とスタックポ
インタの示すアドレスからデータを読み出した後スタッ
クポインタの内容を読み出したデータのサイズだけイン
クリメントするPOP命令を持ち 鑞 第1の実施例においてはデータ記憶手段1の容量は
256バイトであり、 4バイト単位にダイレクトマツ
プ方式でデータを記憶しているた敷第1のポインタ11
および第2のポインタ12+1それぞれスタックポイン
タおよびフレームポインタの下位から3ビツト目から8
ビツト目の値を通常保持する。
以上のように構成された第1の実施例のデータ処理装置
について、以下その動作を説明する。
まず、スタッポインタ相対アドレッシングモードで指定
された第1オペランドとフレームポインタ相対アドレッ
シングモードで指定された第2オペランドを演算してそ
の結果を第2オペランドに格納する命令を実行する時の
動作を説明する。まず、命令語が命令レジスタ101に
格納されると、解読手段103によって命令が解読され
ると同時へ 選択器31は第】のポインタ11の出力を
選択器 選択器32は命令レジスタ101に格納された
命令l吾の第1オペランドの相対位置指定部を選択し 
選択器33は第2のポインタ12の出力を選択し 選択
器34は命令レジスタ101に格納された命令語の第2
オペランドの相対位置指定部を選択すム 加算器21は
選択器31と選択器32の出力を加算することによって
データ記憶手段lの第1オペランドのアドレスを決定し
 そのアドレスがレジスタ204に格納され 加算器2
2は選択器33と選択器34の出力を加算することによ
ってデータ記憶手段1の第2オペランドのアドレスを決
定し そのアドレスがレジスタ205に格納されも 次
へ データ記憶手段1のレジスタ204が示すアドレス
とレジスタ205が示すアドレスのデータが読みだされ
てバス301、バス302に出力され それぞれ演算手
段l内部の入力レジスタに格納されると同時に艮 レジ
スタ205の内容がレジスタ207に転送されム次I、
、演算手段104で命令で指定された演算が実行され 
演算結果が演算手段l内部の出力レジスタに格納される
と同時(ζ レジスタ207の内容がレジスタ208に
転送される。最後に 演算結果がバス303に出力され
 データ記憶手段Iのレジスタ208が示すアドレスに
書き込まれも以上の処理はバイブライン処理方式によっ
て実行され 同様の命令が連続して実行される時のバイ
ブライン動作は第3図のようになる。
次に4バイト長の汎用レジスタの1つをスタックにプッ
シュする命令を実行する時の動作を説明する。ま哄 命
令語が命令レジスタ101に格納されると解読手段10
3によって命令が解読されてプッシュするレジスタの番
号が汎用レジスタ群106に出力されると同時に 選択
器33は第1のポインタ11を選択し 選択器34は定
数発生手段42が出力する−4を選択し 選択器35は
加算器22の出力を選択すム 加算器22は選択器33
と選択器34の出力を加算することによってデータ記憶
手段1の汎用レジスタをプッシュするアドレス(第1の
ポインタの示すアドレス−4)を決定し そのアドレス
がレジスタ205と第1ポインタ11に格納されも こ
の時点で第1のポインタ11は次命令のデータ記憶手段
lのアドレス計算に必要な値を保持することになり、次
命令がスタックポインタを参照する命令であってもバイ
ブライン動作にアイドル状態を生じることはな(−次に
 汎用レジスタ群106の命令で指定されたレジスタの
内容がバス301に出力され 演算手段104内部の人
力レジスタに格納されると同時に レジスタ205の内
容がレジスタ207に転送され スタックポインタ10
2の内容が加減算手段107内部の入力レジスタに転送
される。
次に 演算手段104で内部の入力レジスタの内容が内
部の出力レジスタに転送されると同時へレジスタ207
の内容がレジスタ208に転送され 加減算手段107
では内部の入力レジスタに格納されたスタックポインタ
の内容から4が減算され 加減算手段107内部の出力
レジスタに格納されも 最後へ 指定された汎用レジス
タの内容がバス303に出力され データ記憶手段1の
レジスタ208が示すアドレスに書き込まれると同時へ
 加減算手段107内部の出力レジスタの内容がスタッ
クポインタ102に書き込まれも以上の処理は同様にバ
イブライン処理方式によって実行さh  PUSH命令
が連続して実行される時のパイプライン動作は第4図の
ようになム な耘 第1の実施例では加減算手段107
を設けている力(加減算手段を設けなかった場合に(友
 演算手段104でスタックポインタの内容から4を減
算することによってPUSH命令の実行には2サイクル
を必要とする力<  PUSH命令の直後にスタックポ
インタを参照する命令を実行する場合く アイドル状態
が生じないという点は同じであ次に4バイト長の汎用レ
ジスタの1つをスタックからデータをポツプする命令を
実行する時の動作を説明する。まず−命令語が命令レジ
スタ101に格納されると命令解読手段103によって
命令が解読されてポツプされたデータを格納するレジス
タの番号が汎用レジスタ群106に出力されると同時番
ヘ  選択器31は第1のポインタ11を選択し 選択
器32は定数発生手段41が出力する0を選択し 選択
器33は第1のポインタ11を選択し 選択器34は定
数発生手段42が出力する+4を選択し 選択器35は
加算器22の出力を選択すム 加算器21は選択器31
と選択器32の出力を加算することによってデータ記憶
手段1のポツプするアドレス(第1のポインタの示すア
ドレス)を決定し そのアドレスがレジスタ204に格
納されも 加算器22は選択器33と選択器34の出力
を加算することによってデータ記憶手段lのポツプ命令
実行後のスタックポインタが示すアドレス(第1のポイ
ンタの示すアドレス+4)を決定し そのアドレスが第
1ポインタ11に格納されも この時点で第1のポイン
タ11は次命令のデータ記憶手段1のアドレス計算に必
要な値を保持することになり、次命令がスタックポイン
タを参照する命令であってもパイプライン動作にアイド
ル状態を生じることはな(−次へデータ記憶手段lのレ
ジスタ204が示すアドレスのデータが読みだされてバ
ス301に出力され演算手段104内部の入力レジスタ
に格納されると同時く スタックポインタ102の内容
が加、減算手段107内部の入力レジスタに転送されム
次く 演算手段104で内部の入力レジスタの内容が内
部の出力レジスタに転送されると同時く加減算手段10
7では内部のレジスタに格納されたスタックポインタの
内容に4が加算され 内部の出力レジスタに格納されも
 最後ベ ポツプされたデータがバス303に出力され
 汎用レジスタ群108の指定されたレジスタに書き込
まれると同時へ 加減算手段107内部の出力レジスタ
の内容がスタックポインタ102に書き込まれム以上の
処理は同様にバイブライン処理方式によって実行さh 
 POP命令が連続して実行される時のパイプライン動
作は第5図のようになム な抵第1の実施例では加減算
手段107を設けている力(加減算手段を設けなかった
場合に(友 演算手段104でスタックポインタの内容
に4を加算することによってPOP命令の実行には2サ
イクルを必要とする力<、POP命令の直後にスタック
ポインタを参照する命令を実行する場合へ アイドル状
態が生じないという点は同じであaただL  PUSH
,POP命令以外の命令でスタックポインタやフレーム
ポインタを変更した直後にそれらを参照する命令を実行
した場合に(よスタックポインタ102またはフレーム
ポインタ105の更新と同時へ 第1のポインタ11ま
たはす第2のポインタの更新を行なうたへ 従来と同様
にパイプライン動作にアイドル状態を生ずもしかしなが
fi  PUSH,POP命令の実行頻度と比較すると
それらの命令の実行頻度は小さ(X。
また スタックポインタ相対アドレツシングモードおよ
びフレームポインタ相対アドレッシングモード以外のア
ドレッシングモードでメモリ上のデータを参照する場合
(よ 演算手段104でアドレス計算を実行した後にそ
のアドレスのデータを読出すた八 実行に多くの時間を
必要とすも以上のように第1の実施例によれIL  第
2のポインタと命令語の一部を加算する手段を設けるこ
とにより、フレームポインタをペースレジスタとしてス
タック領域のデータを高速に参照することができ、第1
のポインタと予め決められた定数を加算する手段とその
出力を第1のポインタに書き込む手段を設けたことによ
り、 PUSH命令やPOP命令等のスタックポインタ
の変更を伴う命令を実行した直後に スタックポインタ
を参照する命令をパイプライン処理にアイドル状態を生
ずることなく実行することができも な耘 第1の実施例において、第1の加算手段と第2の
加算手段と第3の加算手段を、 2個の選択器と1個の
定数発生手段と1個の加算器によって実現したカミ 選
択器を1個にして3人力加算器を使用するなど他の構成
により実現することもでき る。
第2図は請求項2記載の発明の一実施例におけるデータ
処理装置のブロック図を示すのもであ4第2図において
、 23は第3の加算器 42は定数発生手段、 36
は第6の選択a  108はスタックポインタの内容と
予め決められた定数を加算する機能と、その加算結果と
命令語の一部を加算する機能を持つ加算手段 その他は
第1図と同じであム この第2の実施例のデータ処理装置1よ 第1の実施例
のデータ処理装置と同様の命令体系および命令を持板 
さらにフレームポインタをスタックにプッシュし プッ
シュ後のスタックポインタの内容をフレームポインタに
コピーし スタックポインタの内容を指定した値だけ加
算するという処理を1命令で行なう、スタックフレーム
形成命令を持つ。
以上のように構成された第2の実施例のデータ処理装置
について、以下その動作を説明すムスタックフレーム形
成命令が命令レジスタ101に格納されると、命令が解
読手段103によって解読されると同時に 選択器33
は第1のポインタ11を選択し 選択器34は定数発生
手段42が出力する−4を選択し 選択器35は加算器
23を選択し 選択器36は加算器22を選択し定数発
生手段43は−4を出力すム 加算器22は選択器33
と選択器34の出力を加算することによってデータ記憶
手段lのフレームポインタ105をプッシュするアドレ
ス(第1のポインタ4)を決定し そのアドレスがレジ
スタ205と第2のポインタ12に格納されも この時
、加算器23は第1のポインタの出力と命令レジスタI
01に格納された命令語の局所変数領域を確保するため
の値(負数)を指定する部分と定数発生手段43の出力
を加算し その値が第1のポインタ11に格納されも 
この時点で第1のポインタ11と第2のポインタ12は
次命令のデータ記憶手段lのアドレス計算に必要な値を
保持することになり、次命令がスタックポインタまたは
フレームポインタを参照する命令であってもバイブライ
ン処理にアイドル状態を生じることはな(℃ 次にフレ
ームポインタ105の内容がバス301に出力されて演
算手段104内部の入力レジスタに格納され スタック
ポインタ102の内容が加算手段108内部の人力レジ
スタに転送されると同時間レジスタ205の内容がレジ
スタ207に転送されも 次く 演算手段104で内部
の入力レジスタの内容が内部の出力レジスタに転送され
 加算手段108で(よ 内部の入力レジスタに格納さ
れたスタックポインタの内容に−4が加算されて内部の
第1の出力レジスタに格納されるとともに入力レジスタ
に格納されたスタックポインタの内容と−4と命令レジ
スタに格納された命令語の一部が加算されて内部の第2
の出力レジスタに格納されると同時に レジスタ207
の内容がレジスタ208に転送されも 最後に 演算手
段104内部の出力レジスタに格納されたフレームポイ
ンタの内容がデータ記憶手段lのレジスタ208が示す
アドレスに書き込まれると同時に 加算手段108内部
の第1の出力レジスタの内容がフレームポインタ105
に書き込まれ 加算手段108内部の第2の出力レジス
タの内容がスタックポインタ102に書き込まれも 以
上の処理は同様にパイプライン処理方式によって実行さ
れ スタックフレーム形成命令が実行された直後にスタ
ックポインタ相対アドレッシングモードで指定された第
1オペランドをフレームポインタ相対アドレッシングモ
ードで指定された第2オペランドを演算して第2オペラ
ンドに格納する命令を実行した時のパイプライン動作は
第6図のようになも な抵第2の実施例では加算手段1
08を設けている力交加算手段108を設けなかった場
合に(よ 演算手段104でスタックポインタの内容に
4を加算してフレームポインタに格納し さらにその値
に命令語で指定された値を加算することによってスタッ
クフレーム形成命令の実行には3サイクルを必要とする
カミ スタックフレーム形成命令の直後にスタックポイ
ンタやフレームポインタを参照する命令を実行する場合
へ アイドル状態が生じないという点は同じである。
以上のように第2の実施例によれ(戴 第1のポインタ
と命令語の一部と予め決められた定数を加算する手段と
、第3の加算手段の出力を第2のポインタに書き込む手
段を設けたことにより、スタックフレーム形成命令を実
行した直後に スタックポインタやフレームポインタを
参照する命令をパイプライン動作にアイドル状態を生じ
ることなく実行することができる。
発明の詳細 な説明したようへ 請求項1記載の発明によれは サブ
ルーチンが使用するスタック領域のデータをフレームポ
インタをペースレジスタとして高速に参照することがで
き、PUSH命令やPOP命令等のスタックポインタの
更新を伴う命令を実行した直後く スタックポインタを
参照する命令を実行してもパイプライン処理にアイドル
状態を生ずることがないた数 実行速度低下をまねが慣
 その実用的効果は太き(− また 請求項2記載の発明にょれIL  さらにスタッ
クフレーム形成命令を実行した直後へ スタックポイン
タやフレームポインタを参照する命令を実行してもパイ
プライン処理にアイドル状態を生ずることがないた八 
実行速度低下をまねかず、その実用的効果は太き(−
【図面の簡単な説明】
第1図は請求項1記載の発明の一実施例におけるデータ
処理装置のブロックは 第2図は請求項2記載の発明の
一実施例におけるデータ処理装置のブロック医 第3@
 第4@ 第5図は前記請求項!記載の発明の実施例に
おいて命令を実行した時のパイプライン動作図 第6図
は前記請求項2記載の発明の実施例において命令を実行
した時パイプライン動作図 第7図は従来のデータ処理
装置のブロック医 第8@ 第9図は従来のデータ処理
装置で命令を実行した時のパイプライン動作図であも l・・・データ記憶半没 11・・・第1のポイン久1
2・・・第2のポイン久 21. 22. 23・・・
加算法 31. 32. 33. 34. 35. 3
6・・・選択器 41. 42. 43・・・定数発生
手a  102・・・スタックポイン久 105−・・
フレームポインタ。

Claims (2)

    【特許請求の範囲】
  1. (1)スタックポインタと、スタック領域内のサブルー
    チンの局所変数領域のベースアドレスを示すフレームポ
    インタと、少なくとも2個のデータの読み出しと1個の
    データの書き込みを同時に行うデータ記憶手段と、前記
    スタックポインタの内容変更を伴う命令を解読する解読
    手段と、前記スタックポインタの示すアドレスが前記デ
    ータ記憶手段のどの位置にマッピングされているかを示
    す第1のポインタと、前記フレームポインタの示すアド
    レスが前記データ記憶手段のどの位置にマッピングされ
    ていすかを示す第2のポインタと、命令語中のメモリア
    ドレス指定部の一部と前記第1のポインタに格納されて
    いるデータを加算する第1の加算手段と、命令語中のメ
    モリアドレス指定部の一部と前記第2のポインタに格納
    されているデータを加算する第2の加算手段と、前記第
    1のポインタに格納されているデータと予め決められた
    定数を加算する第3の加算手段と、前記第1の加算手段
    が出力する位置の前記データ記憶手段のデータを読みだ
    す第1のデータ読出し手段と、前記第2の加算手段が出
    力する位置の前記データ記憶手段のデータを読みだす第
    2のデータ読出し手段と、前記第3の加算手段の出力を
    前記第1のポインタに書き込む第1のポインタ更新手段
    と、前記スタックポインタの示すアドレスの前記データ
    記憶手段のマッピング位置を前記第1のポインタに書き
    込む第2のポインタ更新手段と、前記フレームポインタ
    の示すアドレスの前記データ記憶手段のマッピング位置
    を前記第2のポインタに書き込む第3のポインタ更新手
    段とを備え、予め決められた前記スタックポインタの内
    容変更を伴う命令が実行された時には前記第1のポイン
    タ更新手段によって第1のポインタの内容を更新し、そ
    の他の命令によって前記スタックポインタの内容が変更
    された時は前記第2のポインタ更新手段によって第1の
    ポインタの内容を更新し、前記フレームポインタを更新
    する命令が実行された時は前記第3のポインタ更新手段
    によって前記第2のポインタを更新することを特徴とす
    るデータ処理装置。
  2. (2)サブルーチンが呼び出された時のフレームポイン
    タをスタックにプッシュし、その後のスタックポインタ
    の内容をフレームポインタにコピーし、サブルーチンの
    局所変数領域を確保するスタックフレーム形成命令を解
    読する解読手段と、第1のポインタと命令語中のアドレ
    ス指定部に格納されているデータと予め決められた定数
    とを加算する第4の加算手段と、前記第4の加算手段の
    出力を前記第1のポインタに書き込む第4のポインタ更
    新手段と、第2の加算手段の出力を第2のポインタに書
    き込む第5のポインタ更新手段とを備え、前記スタック
    フレーム形成命令が実行された時には、前記第4の更新
    手段によって前記第1のポインタの内容を変更し、前記
    第5のポインタ更新手段によって前記第2のポインタの
    内容を変更することを特徴とする請求項1記載のデータ
    処理装置。
JP1142522A 1989-06-05 1989-06-05 データ処理装置 Pending JPH036735A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1142522A JPH036735A (ja) 1989-06-05 1989-06-05 データ処理装置
CA002018182A CA2018182C (en) 1989-06-05 1990-06-04 Data processor for high-speed access to stack area data
KR1019900008268A KR930003410B1 (ko) 1989-06-05 1990-06-05 스택영역의 데이터참조를 고속으로 행하는 데이터처리장치
EP19900110608 EP0401745A3 (en) 1989-06-05 1990-06-05 Data processor for high-speed access to stack area data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1142522A JPH036735A (ja) 1989-06-05 1989-06-05 データ処理装置

Publications (1)

Publication Number Publication Date
JPH036735A true JPH036735A (ja) 1991-01-14

Family

ID=15317318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1142522A Pending JPH036735A (ja) 1989-06-05 1989-06-05 データ処理装置

Country Status (4)

Country Link
EP (1) EP0401745A3 (ja)
JP (1) JPH036735A (ja)
KR (1) KR930003410B1 (ja)
CA (1) CA2018182C (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004003732A1 (en) * 2002-06-27 2004-01-08 Infineon Technologies Ag Method for accessing local variables

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3786432A (en) * 1972-06-20 1974-01-15 Honeywell Inf Systems Push-pop memory stack having reach down mode and improved means for processing double-word items
JPH06100967B2 (ja) * 1987-06-10 1994-12-12 三菱電機株式会社 パイプライン処理機構を持つデータ処理装置および処理方法
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

Also Published As

Publication number Publication date
KR910001537A (ko) 1991-01-31
EP0401745A2 (en) 1990-12-12
KR930003410B1 (ko) 1993-04-29
CA2018182C (en) 1994-02-01
EP0401745A3 (en) 1991-10-30
CA2018182A1 (en) 1990-12-05

Similar Documents

Publication Publication Date Title
JP2883784B2 (ja) マイクロコンピュータ
JPH0414385B2 (ja)
JPH0683582A (ja) データ演算装置
JPS6212529B2 (ja)
JPH0523447B2 (ja)
JPH036735A (ja) データ処理装置
JP3570287B2 (ja) マイクロコンピュータ
JPH0577096B2 (ja)
JPS63111535A (ja) デ−タ処理装置
JPH0222413B2 (ja)
JPS58200349A (ja) マイクロプログラム制御装置
JPS61235985A (ja) ベクトルプロセツサ
JPS588011B2 (ja) マイクロプログラムセイギヨホウシキ
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JP3124361B2 (ja) メモリデータロード装置
JPH0535499A (ja) データ処理装置及びデータ処理方法
JPS6346856B2 (ja)
JPH03282928A (ja) アドレス制御型情報処理装置
JPS61112240A (ja) デ−タ処理装置
JPH05165640A (ja) マイクロプロセッサ
JPH04128344U (ja) 信号処理装置
JPS6028014B2 (ja) マイクロプロセツサ
JPS63223923A (ja) プログラムカウンタ回路
JPH0358128A (ja) 情報処理装置
JPH06131250A (ja) データ処理装置