JPH05165640A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH05165640A
JPH05165640A JP3329304A JP32930491A JPH05165640A JP H05165640 A JPH05165640 A JP H05165640A JP 3329304 A JP3329304 A JP 3329304A JP 32930491 A JP32930491 A JP 32930491A JP H05165640 A JPH05165640 A JP H05165640A
Authority
JP
Japan
Prior art keywords
instruction
program counter
subroutine
main routine
counter
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
JP3329304A
Other languages
English (en)
Inventor
Masatake Fujii
方毅 藤井
Kaoru Kurebayashi
薫 紅林
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3329304A priority Critical patent/JPH05165640A/ja
Publication of JPH05165640A publication Critical patent/JPH05165640A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】本発明は、分岐命令に必要な時間を減少させ、
プログラムの実行速度を向上させることにある。 【構成】メモリ12のメインルーチンの命令を読み出すア
ドレスを示す第1のプログラムカウンタ11-1と、サブル
ーチンの命令を読み出すアドレスが格納される第2のプ
ログラムカウンタ11-2と、第1のプログラムカウンタに
示されるアドレスに該当するメインルーチンの命令をメ
モリから読み出してメインルーチンが実行されていると
きメインルーチンに書込まれたカウンタ選択命令をフェ
チすると第2のプログラムカウンタを選択し、該第2の
プログラムカウンタに格納されているアドレスに該当す
るサブルーチンの命令をメモリから読み出してサブルー
チンが実行されているときサブルーチンに書込まれたカ
ウンタ選択命令をフェッチすると第1のプログラムカウ
ンタを選択する選択切換機構11-4とを備えている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラムのメインルー
チンからサブルーチチンへの分岐を短時間で行い得るよ
うにしたマイクロフプロセッサに関する。
【0002】
【従来の技術】現在のマイクロプロセッサの実行手段と
しては、メモリ内の一定の領域を確保してサブルーチン
実行中プログラムカウンタの情報を一時退避させるスタ
ック方式と、マイクロプロセッサにプログラムの命令を
格納するプリフェッチキューを内蔵して命令の先取りを
行って効率化を図るようにしたパイプライン方式とがあ
る。
【0003】かかるマイクロプロセッサにおいて、ソフ
トウェアプログラミングを実行する場合、加減算や比較
のような比較的短い処理がしばしばサブルーチンとして
コールされることがある。この場合、サブルーチンは1
命令で実行できない加減算演算、不動小数点演算、倍精
度演算のための桁上りなどの比較的短時間の処理のた
め、深いネストでルーチンコールされることはない。
【0004】ところで、従来のマイクロプロセッサでサ
ブルーチン実行を必要とする場合、メモリ内に書込まれ
た分岐命令を使用するか、メモリ内にメインルーチンと
サブルーチンとをインライン展開でコードとして組込む
方法がある。
【0005】図4は分岐命令を使用する場合の構成例を
示すものである。図4において、1はマイクロプロセッ
サで、このマイクロプロセッサ1はプログラムカウンタ
1−1と、コール命令部1−2を備え、コール命令部1
−2によりメモリ2に格納されたプログラムのメインル
ーチンに書込まれたコール命令をフェッチすると、今ま
でのプログラムカウンタ1−1のアドレス値をメモリ2
のスタック2−1に格納すると共に、プログラムカウン
タ1−1の値を分岐先アドレスに変更してサブルーチン
が実行される。そして、サブルーチンを実行後、スタッ
ク2−1に書込まれているリターンアドレスを読取る
と、このスタック2−1に格納されたメインルーチンの
アドレスの値を再びプログラムカウンタ1−1に移し、
しかる後元のメインルーチンのプログラムによる処理が
実行される。
【0006】また、図4に示す構成において、メモリ2
にスタックを設けずにマイクロプロセッサにプリフェッ
チキューを内蔵したパイプライン方式の場合には、サブ
ルーチンへの分岐先アドレスをプリフェッチキューに取
込んで分岐先命令のフェッチを行なうことにより、パイ
プラインによる命令先行フェッチにより高速化を図るこ
とができる。これにより、サブルーチンコールでモジュ
ール化のプログラミングが可能となる。
【0007】さらに、図5はインライン展開の場合の構
成例を示すものである。図5において、1はプログラム
カウンタ1ー1を備えたマイクロプロセッサで、このプ
ログラムカウンタ1ー1に示されるアドレスに該当する
メインルーチンの命令をメモリ2から読取ってメインル
ーチンを実行しているとき、メインルーチンに書込まれ
ている命令コードを読取ると、サブルーチンへ移行する
アドレスに該当するインライン展開されたサブルーチン
の命令を読取ってサブルーチンが実行され、さらにメイ
ンルーチンへ移行する命令コードを読取ると、次のメイ
ンルーチンへ移行するアドレスに該当するメインルーチ
ンの命令を読取ってメインルーチンが実行される。
【0008】
【発明が解決しようとする課題】しかし、このような従
来のマイクロプロセッサにおいては、サブルーチンによ
る処理時間が前述したように比較的に短く、しかもサブ
ルーチンが頻繁に使用されることから、図4に示すよう
な構成ではスタックへのプッシュとポップに伴うオーバ
ヘッドを生じる。また、パイプライン方式を採用した場
合にはサブルーチンコールにともなう分岐によるパイプ
ラインの無駄なフェッチを生じるという問題があった。
さらに、メインルーチンからサブルーチンに移行する
際、プログラムカウンタに格納されているアドレスの値
を一旦メモリの中に確保されたスタックに保存される
が、これに要する処理はメモリアクセスを伴うため、あ
る時間を必要としていた。
【0009】また、マイクロプロセッサにプリフェッチ
キューが内臓されている場合も、メモリアクセスをなく
すためにバスを使用した命令動作が取られたものである
が、この命令動作に要する時間はサブルーチン・コール
が頻繁に繰返されるプログラムになればなるほど増加す
る。さらに、パイプライン使用時には分岐予測のため、
分岐しない場合と分岐する場合の命令の先取りをした
が、一つのプログラムカウンタで両方のアドレスを扱う
ため、複雑になるという問題があった。
【0010】一方、図5に示すようなインライン展開の
場合には、メインルーチンに書込まれた命令コードを読
取ってインライン展開されたサブルーチンの該当するア
ドレスの命令を読み出しているため、コードのステップ
数が増加し、プログラムの巨大化を招くという問題があ
った。本発明は分岐命令に必要な時間を減少させ、プロ
グラムの実行速度を向上させることができるマイクロプ
ロセッサを提供することを目的とする。
【0011】
【課題を解決するための手段】上記の目的を達成するた
め、本発明の第1の構成はメモリのメインルーチンの命
令を読み出すアドレスを示す第1のプログラムカウンタ
と、サブルーチンの命令を読み出すアドレスが格納され
る第2のプログラムカウンタと、前記第1のプログラム
カウンタに示されるアドレスに該当するメインルーチン
の命令を前記メモリから読み出してメインルーチンが実
行されているときメインルーチンに書込まれたカウンタ
選択命令をフェッチすると前記第2のプログラムカウン
タを選択し、該第2のプログラムカウンタに格納されて
いるアドレスに該当するサブルーチンの命令を前記メモ
リから読み出してサブルーチンが実行されているときサ
ブルーチンに書込まれたカウンタ選択命令をフェッチす
ると前記第1のプログラムカウンタを選択する選択手段
とを備えたものである。
【0012】また、本発明の第2の構成はメモリのメイ
ンルーチンの命令を読み出すアドレスを示す第1のプロ
グラムカウンタと、サブルーチンの命令を読み出すアド
レスが格納される第2のプログラムカウンタと、これら
第1および第2のフログラムカウンタに対応させてそれ
ぞれ設けられ前記メモリのメインルーチンおよびサブル
ーチンに書込まれたカウンタ選択命令がパイプラインに
入ると分岐予測に従って前記第1および第2のプログラ
ムカウンタに示されるアドレスに該当する前記メモリの
メインルーチンおよびサブルーチンの命令を格納するプ
リフェッチキューと、前記第1のプログラムカウンタに
示されるアドレスに該当するメモリのメインルーチンの
命令が実行されているときカウンタ選択命令を先行フェ
ッチすると前記第2のプログムカウンタを選択して前記
プリフェッチキューに格納されるサブルーチンの命令を
実行させ、サブルーチンの命令が実行されているときカ
ウンタ選択命令をフェッチすると前記第1のプログラム
カウンタを選択して前記プリフェッチキューに格納され
るメインルーチンの命令を実行させる選択手段とを備え
たものである。
【0013】
【作用】上記第1の構成のマイクロプロセッサにあって
は、第2のプログラムカウンタに予め分岐先のアドレス
がセットされている状態で、メインルーチンに書込まれ
たカウンタ選択命令がフェッチされると第1のプログラ
ムカウンタから第2のプログラムカウンタが選択され、
直ちに分岐先のアドレスに分岐されてサブルーチンが実
行されるので、分岐先アドレスの計算が不要となり、分
岐時の時間ロスを皆無にすることができる。また、カウ
ンタ選択命令による分岐はレジスタのハードウェア的セ
レクトのため、高速である。さらに、第1のプログラム
カウンタにはサブルーチンへ移行する直前のメインルー
チンのアドレスの値が保持されているので、戻り番地の
記憶が不要となり、サブルーチンへの移行およびリター
ン時共にアドレスの処理を省略化することができる。
【0014】また、上記第2の構成のマイクロプロセッ
サにあっては、パイプライン使用時メモリのメインルー
チンに書込まれたカウンタ選択命令またはサブルーチン
に書込まれたカウンタ選択命令がパイプラインに入ると
分岐予測に従って第1および第2のプログラムカウンタ
に示されるアドレスに該当するメモリのメインルーチン
およびサブルーチンの命令がプリフェッチキューに格納
され、メインルーチンの命令が実行されているときカウ
ンタ選択命令を先行フェッチすると第2のプログムカウ
ンタが選択され、リターン命令をフェッチすると第1の
プログラムカウンタが選択されるので分岐予測に必要な
アーキテクチャが単純化できる。
【0015】
【実施例】以下本発明の実施例を図面を参照して説明す
る。
【0016】図1は本発明によるマイクロプロセッサの
第1の実施例を示す構成図である。本実施例では、図1
に示すようにマイクロプロセッサ11にプログラムの各
命令のアドレスを示す第1のプログラムカウンタ11−
1と、サブルーチンのプログラムの分岐先アドレスが格
納される第2のプログラムカウンタ11−2を設け、ま
た実行部にメモリ12のプログラムのメインルーチンに
書込まれたカウンタ選択命令、またはプログラムのサブ
ルーチンに書込まれたカウンタ選択命令をフェッチする
と切換指令を出力するカウンタ選択命令部11−3を設
け、さらにこのカウンタ選択命令部11−3より切換指
令を受けると第1のプログラムカウンタ11−1から第
2のプログラムカウンタ11−2、または第2のプログ
ラムカウンタ11−2から第1のプログラムカウンタ1
1−1に切換える選択切換機構11−4を設ける構成と
したものである。次にこのように構成されたマイクロプ
ロセッサの作用について述べる。
【0017】いま、マイクロプロセッサ11の実行部に
よりメモリ12に書込まれたプログラムからメインルー
チンの各命令が読み出され、メインルーチンが実行され
ているものとする。この場合、第1のプログラムカウン
タ11−1にはメインルーチンより次々と読み出される
命令のアドレスが示されている。
【0018】このような状態にあるとき、メインルーチ
ンに書込まれたカウンタ選択命令が実行部のカウンタ選
択命令部11−3によりフェッチされると、このカウン
タ選択命令部より選択切換機構11−4にPC選択指令
が出され、この選択切換機構11−4により第1のプロ
グラムカウンタ11−1から第2のプログラムカウンタ
11−2に切換えられる。すると、実行部では第2のプ
ログラムカウンタ11−2に格納されているメモリ12
のサブルーチンの分岐先アドレスに分岐し、この分岐先
アドレスに該当するサブルーチンの命令が実行される。
この場合、第1のプログラムカウンタ11−1にはサブ
ルーチンに移行する直前のメインルーチンの命令のアド
レスが保持されている。
【0019】次にサブルーチンが実行されているときサ
ブルーチンに書込まれたカウンタ選択命令が実行部のカ
ウンタ選択命令部11−3にフェッチされると、選択切
換機構11−4により第2のプログラムカウンタ11−
2から第1のプログラムカウンタ11−1に切換えられ
る。すると、実行部では第1のプログラムカウンタ11
−1に示されているメモリ12のメインルーチンの命令
のアドレスにリターンし、再びメインルーチンの命令が
実行される。
【0020】図2は上述したカウンタ選択命令を用いた
プログラム例を示すものである。図2において、PC名
はPC1 (第1のプログラムカウンタ)、PC2 (第2のプ
ログラムカウンタ)であり、カウンタ選択命令はsel で
ある。
【0021】このようなプログラムにおいて、メインル
ーチンの実行中にPC2 にサブルーチンの分岐先アドレス
を格納し、sel 命令をフェッチするとサブルーチンの先
頭分岐先アドレスに分岐し、サブルーチンの命令が実行
される。そして、サブルーチンの実行中にsel pcl 命令
をフェッチすると、メインルーチンのPC1 に示されてい
るアドレスにリターンし、再度メインルーチンの命令が
実行される。
【0022】従って、このような構成のマイクロプロセ
ッサとすれば、分岐命令のアドレス処理に必要な時間を
減少させることができ、プログラムの実行速度を向上さ
せることができる。
【0023】図3は本発明によるマイクロプロセッサの
第2の実施例としてパイプラインを使用した場合の構成
を示すもので、図1と同一部分には同一記号をその説明
を省略し、ここでは異なる点についてのみ述べる。第2
の実施例では、実行部にメモリ12から読み出された命
令を格納するプリフェッチキュー11−5,11−6を
第1のプログラムカウンタ11−1、第2のプログラム
カウンタ11−2に対応させてそれぞれ設け、メモリ1
2のメインルーチンまたはサブルーチンに書込まれたカ
ウンタ選択命令が入ると分岐予測に従って第1のプログ
ラムカウンタ11−5または第2のプログラムカウンタ
11−6に示されるアドレスに該当するメモリ12のメ
インルーチンまたはサブルーチンの命令をプリフェッチ
キュー11−5または11−6に格納するようにしたも
のである。
【0024】従って、このようなパイプラインを用いた
構成のプログラムプロセッサにおいては、カウンタ選択
命令を先行フェッチした時点で直ぐ実行動作(カウンタ
選択)が行われてサブルーチンが実行され、それ以後の
命令フェッチは第1のプログラムカウンタ11−1によ
ってメインルーチンが実行されるので、パイプライン動
作がスムーズに連続して行うことができる。また、分岐
予測に必要なアーキテクチァをシンプルにすることがで
きる。
【0025】
【発明の効果】以上述べたように本発明によれば、分岐
命令に必要な時間を減少させ、プログラムの実行速度を
向上させることができるマイクロプロセッサを提供でき
る。
【図面の簡単な説明】
【図1】本発明によるマイクロプロセッサの第1の実施
例を示す構成図。
【図2】同実施例におけるフログラムの具体例を示す
図。
【図3】本発明によるマイクロプロセッサの第2の実施
例を示す構成図。
【図4】従来のマイクロプロセッサにおいて、分岐命令
を使用する場合の構成例を示す図。
【図5】従来のマイクロプロセッサにおいて、インライ
ン展開とした場合の構成例を示す図。
【符号の説明】
11……マイクロプロセッサ本体、11−1……第1の
プログラムカウンタ、11−2……第1のプログラムカ
ウンタ、11−3……カウンタ選択命令部、11−4…
…選択切換機構、11−5……プリフェッチキュー、1
2……メモリ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 メモリのメインルーチンの命令を読み出
    すアドレスを示す第1のプログラムカウンタと、サブル
    ーチンの命令を読み出すアドレスが格納される第2のプ
    ログラムカウンタと、前記第1のプログラムカウンタに
    示されるアドレスに該当するメインルーチンの命令を前
    記メモリから読み出してメインルーチンが実行されてい
    るときメインルーチンに書込まれたカウンタ選択命令を
    フェチすると前記第2のプログラムカウンタを選択し、
    該第2のプログラムカウンタに格納されているアドレス
    に該当するサブルーチンの命令を前記メモリから読み出
    してサブルーチンが実行されているときサブルーチンに
    書込まれたカウンタ選択命令をフェッチすると前記第1
    のプログラムカウンタを選択する選択手段とを具備した
    ことを特徴とするマイクロプロセッサ。
  2. 【請求項2】 メモリのメインルーチンの命令を読み出
    すアドレスを示す第1のプログラムカウンタと、サブル
    ーチンの命令を読み出すアドレスが格納される第2のプ
    ログラムカウンタと、これら第1および第2のフログラ
    ムカウンタに対応させてそれぞれ設けられ前記メモリの
    メインルーチンまたはサブルーチンに書込まれたカウン
    タ選択命令がパイプラインに入ると分岐予測に従って前
    記第1および第2のプログラムカウンタに示されるアド
    レスに該当する前記メモリのメインルーチンおよびサブ
    ルーチンの命令を格納するプリフェッチキューと、前記
    第1のプログラムカウンタに示されるアドレスに該当す
    るメモリのメインルーチンの命令が実行されているとき
    コール命令をフェッチすると前記第2のプログムカウン
    タを選択して前記プリフェッチキューに格納されるサブ
    ルーチンの命令によりサブルーチンを実行させ、リター
    ン命令をフェッチすると前記第1のプログラムカウンタ
    を選択して前記プリフェッチキューに格納されるメイン
    ルーチンの命令によりメインルーチンを実行させる選択
    手段とを具備したことを特徴とするマイクロプロセッ
    サ。
JP3329304A 1991-12-13 1991-12-13 マイクロプロセッサ Pending JPH05165640A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3329304A JPH05165640A (ja) 1991-12-13 1991-12-13 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3329304A JPH05165640A (ja) 1991-12-13 1991-12-13 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH05165640A true JPH05165640A (ja) 1993-07-02

Family

ID=18219966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3329304A Pending JPH05165640A (ja) 1991-12-13 1991-12-13 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH05165640A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269052A (ja) * 2007-04-17 2008-11-06 Nec Electronics Corp 演算処理回路、半導体集積回路、及びプログラムの変換方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269052A (ja) * 2007-04-17 2008-11-06 Nec Electronics Corp 演算処理回路、半導体集積回路、及びプログラムの変換方法

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5611061A (en) Method and processor for reliably processing interrupt demands in a pipeline processor
KR0138468B1 (ko) 마이크로 컴퓨터
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
US4541047A (en) Pipelined data processing system
US5978905A (en) Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
EP0093430A2 (en) Pipeline data processing system
JP3469469B2 (ja) 情報処理装置
US5390306A (en) Pipeline processing system and microprocessor using the system
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JP3490005B2 (ja) 命令制御装置及びその方法
JPH05165640A (ja) マイクロプロセッサ
US6182211B1 (en) Conditional branch control method
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
JPH10124312A (ja) 中央処理装置
JP3335735B2 (ja) 演算処理装置
JPH08161166A (ja) プロセッサ
JP2772100B2 (ja) 並列命令フェッチ機構
JP3325309B2 (ja) サブルーチンリターン命令処理装置
US20050071830A1 (en) Method and system for processing a sequence of instructions
JPS6116334A (ja) デ−タ処理装置
JP3493110B2 (ja) 高速分岐処理装置
JP2591325B2 (ja) 分岐制御装置
JPH08137690A (ja) プログラム実行制御方法
JPH07191845A (ja) 即値データ転送装置