JPH07191908A - マイクロプロセッサとその制御方法 - Google Patents

マイクロプロセッサとその制御方法

Info

Publication number
JPH07191908A
JPH07191908A JP5333434A JP33343493A JPH07191908A JP H07191908 A JPH07191908 A JP H07191908A JP 5333434 A JP5333434 A JP 5333434A JP 33343493 A JP33343493 A JP 33343493A JP H07191908 A JPH07191908 A JP H07191908A
Authority
JP
Japan
Prior art keywords
register
frame
buffer memory
register bank
microprocessor
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.)
Granted
Application number
JP5333434A
Other languages
English (en)
Other versions
JP2993342B2 (ja
Inventor
Masato Motomura
真人 本村
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP5333434A priority Critical patent/JP2993342B2/ja
Publication of JPH07191908A publication Critical patent/JPH07191908A/ja
Application granted granted Critical
Publication of JP2993342B2 publication Critical patent/JP2993342B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 レジスタファイルとバッファメモリの間を従
来に比べて広い転送バンド幅の転送手段により接続する
ことを可能とし、これにより高性能化を達成するマイク
ロプロセッサとその制御方法を提案する。 【構成】 本発明のマイクロプロセッサは、レジスタフ
ァイル110とバッファメモリ150を有し、レジスタ
ファイル110はレジスタバンク120から構成され
る。またバッファメモリ150はレジスタバンク120
と同じビット幅を持つバッファライン160から構成さ
れる。レジスタファイル110とバッファメモリ150
はレジスタバンク120と同じビット幅を持つ第1のデ
ータ転送手段180により接続される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理システムの中核
をなすマイクロプロセッサに関する。
【0002】
【従来の技術】一般にマイクロプロセッサは複数個のレ
ジスタを備えており、メインメモリあるいはレジスタ内
のデータを用いて演算処理を施し、演算結果をメインメ
モリあるいはレジスタへ書き込むことによりプログラム
を実行していく。これら複数のレジスタを総称してレジ
スタファイルと呼ぶ。レジスタファイル内のレジスタの
総数は32個、すなわち32ワード程度とするのが普通
である。CISC(Complex Instruct
ion Set Computer)アーキテクチャと
呼ばれるアーキテクチャを用いたプロセッサでは、メイ
ンメモリ内のデータを演算命令で指定し、指定されたメ
モリ上のデータを用いて直接演算を実行することが可能
である。一方、RISC(Reduced Instr
uction Set Computer)アーキテク
チャもしくはLoad/Storeアーキテクチャと呼
ばれるアーキテクチャを用いたマイクロプロセッサは、
メインメモリとレジスタ間の処理をロードとストアに限
っている。すなわち、メインメモリ内のデータに対して
はロード/ストア命令でしかアクセスできない。演算処
理はレジスタ内にロードされたデータを演算命令で指定
して処理を施すことにより行なう。どちらの型のアーキ
テクチャであっても、メインメモリ上のデータへのアク
セスは命令で指定されるワードもしくはそれ以下の単位
で行なわれる。ここでワードとはそのアーキテクチャで
のレジスタの大きさであり、通常32bitないしは6
4bitである。
【0003】マイクロプロセッサのアーキテクチャの如
何を問わず、キャッシュメモリと一般に呼ばれる小規模
のバッファリング用のメモリ(以下バッファメモリと呼
ぶ)がメインメモリとレジスタの間に設けられるのが普
通である。バッファメモリは、小規模なメモリ装置の方
が大規模なメモリ装置よりも高速にアクセス可能である
ことと、メインメモリへのアクセスに局所性が存在する
ことを利用して、プログラムの実行を高速化するために
使用されるものである。これはメインメモリへのアクセ
ス時間がマイクロプロセッサの命令処理時間に比べて大
きく、メインメモリへのアクセス時間が性能低下要因に
なっているために考え出されたものである。一般に、バ
ッファメモリは複数のバッファラインからなっており、
メインメモリ上のあるデータが例えばロード命令などで
アクセスされると、そのデータを含むバッファライン分
の大きさの領域をメインメモリからコピーしてバッファ
メモリ内に保持する。このとき、ロード命令などで実際
にアクセスされたデータは、バッファメモリからレジス
タへロードされる。コピーされたメインメモリ領域をど
のバッファラインに保持するかはそのメインメモリアド
レスの一部を用いて決定される。バッファメモリとレジ
スタの間でのデータ転送の単位は、メインメモリへのア
クセスがワード単位以下に規定されているので、ワード
単位以下に限定される。
【0004】実行するプログラムが幾つかの手続きから
なっており、それらの手続きの間で手続き呼び出しが行
なわれる場合、従来技術のマイクロプロセッサではレジ
スタファイルの使用にあたって次のような手順を実行す
る必要がある。なお、以下で親手続きとは呼び出す側の
手続き、子手続きとは呼び出された側の手続きを指す。
まず、手続き呼び出し時は、親手続きがレジスタに割り
付けて使用していた変数をメインメモリ内のスタック領
域に退避する必要がある。これは、これらの変数の値が
子手続きにより書き換えられてしまうのを避けるためで
ある。更に親手続きは子手続きに引き渡す引数をレジス
タファイル内、もしくは上記のスタック領域内に書き込
まねばならない。子手続きはこれらの引数を利用して処
理を行なう。手続き呼び出しの終了時には、スタック領
域に退避された親手続きの変数をレジスタに回復する。
このように手続き呼び出しにあたっては、メインメモリ
内のスタック領域へのアクセスが頻繁に生じる。多くの
場合、スタック領域はバッファメモリにコピーされてい
るので、バッファメモリへのアクセスが頻繁に生じるこ
とになる。
【0005】
【発明が解決しようとする課題】従来技術のマイクロプ
ロセッサの第1の問題点は、レジスタファイルとバッフ
ァメモリ間のデータ転送の転送バンド幅に関するもので
ある。以下これを説明する。
【0006】従来技術のマイクロプロセッサでは、既に
説明したように、レジスタファイルとバッファメモリ間
のデータの移動は命令で指定された1ワードもしくはそ
れ以下を単位として行なわれる。
【0007】一方、半導体集積回路技術の進展により、
バッファメモリはマイクロプロセッサの一部としてレジ
スタファイルなどと一緒に一つの集積回路チップに集積
されるようになっている。一般に、ある二つの回路ブロ
ックが別々の集積回路チップに存在する場合と、一つの
集積回路チップに集積された場合とでは、これらの回路
ブロック間の信号転送の転送バンド幅に対する物理的な
制約条件が大きく異なる。別々の集積回路チップに集積
される場合は、これら回路ブロック間の接続経路は集積
回路チップ間の境界を通らなければならない。すなわ
ち、集積回路チップの外部入出力ピンを通らざるを得な
いため、一般にピンネックと呼ばれる問題で、広い転送
バンド幅を確保することは難しい。具体的にいうと、一
つの集積回路チップあたりの外部入出力ピンの本数は1
993年の時点で500本程度であり、今後の実装技術
の進展により次第に多くなっていくことは予想されるも
のの、例えば1桁程度の向上は難しい問題である。ま
た、たとえ外部入出力ピンを増やすことが技術的に可能
であったとしても、これを増やすことにより実装コスト
や消費電力が増大することは避けられない。言い替える
と、別々の集積回路チップ間の転送バンド幅のコストは
非常に高い。一方、同一の集積回路チップ内に集積され
た回路ブロック同士の場合は、一つの集積回路チップ内
に相互の回路ブロック間の接続経路が閉じられるため、
半導体集積回路の微細配線技術を用いることにより、容
易に広い転送バンド幅を確保することが出来る。言い替
えると、同一の集積回路チップ内の信号転送の転送バン
ド幅のコストは非常に安い。より具体的に比較すると、
集積回路チップ内の配線間の間隔は1〜2ミクロン程度
であるのに対し、外部入出力ピン間の間隔は、100〜
200ミクロン程度であり、単位転送バンド幅あたりの
面積で二桁の違いがある。
【0008】従来技術のマイクロプロセッサの第1の問
題点とは、バッファメモリとレジスタファイルが一つの
集積回路チップに集積できるようになり、既に説明した
ように両者の間のデータ転送の転送バンド幅を広げるこ
とが物理的には容易になっているにも関わらず、アーキ
テクチャの制約により転送バンド幅が1ワードの大きさ
に限られているという点である。言い替えると、従来の
マイクロプロセッサ技術は、集積回路技術が未だ未発達
であった時代のものであり、集積回路技術の進展をうま
く利用できないという問題を抱えている。メモリネック
という言葉で一般に言われているように、プロセッサの
性能の向上が、演算器の演算能力よりも、むしろメモリ
からレジスへデータをロードするデータ転送能力により
律速されていることを考え併せると、この問題点を解決
することはマイクロプロセッサをより高性能化する上で
非常に重要であると言える。
【0009】従来技術のマイクロプロセッサの第2の問
題点は、手続き呼び出しの手順を実行するのに時間が掛
かるという問題である。既に説明した手続き呼びだしの
手順から分かるように、従来技術のマイクロプロセッサ
では、手続き呼びだし時に頻繁にバッファメモリにアク
セスする必要があり、これによりマイクロプロセッサの
性能が低下する。このような問題を解決するために、従
来技術の一つのしてレジスタウィンドウという方式が提
案されている。レジスタウィンドウについては、例え
ば、“Computer Architecture:
A Quantitative Approach,
John L.Hennessy&David A.P
atterson,Morgan Kaufmann
Publishers Inc.”等の文献に解説され
ている。以下簡単に説明する。レジスタウィンドウ方式
では、レジスタファイルは幾つかのレジスタウィンドウ
から構成されている。それぞれのレジスタウインドウは
次の4つの部分から構成される。すなわち、左隣のレジ
スタウィンドウと共有する部分、そのレジスタウィンド
ウに固有の部分、右隣のレジスタウィンドウと共有する
部分、レジスタファイル内の全てのレジスタウィンドウ
で共有する部分である。それぞれの手続きはそれぞれ違
ったレジスタウィンドウを使用する。レジスタウィンド
ウ毎に固有の部分が存在するので、この部分に固有の変
数を保持することにより、変数の退避/回復処理を行な
う必要はなくなる。また、隣合うレジスタウィンドウ同
士で共有する部分を用いて、この部分に引数を書き込
み、また読み出すことにより手続き呼び出しにおける引
数の引き渡しを行なうことができる。このようにレジス
タウィンドウ方式をとることにより、手続き呼びだし手
順を実行するにあたってバッファメモリもしくはメイン
メモリへのアクセスが頻繁に起こるという問題を解決す
ることが出来る。
【0010】しかし、レジスタウィンドウ方式を用いた
手続き呼び出しの場合にも、レジスタウィンドウのオー
バーフロー、アンダーフローという問題が存在する。レ
ジスタファイル中に存在するレジスタウィンドウの数
は、ハードウエアとして実現された数に固定されてしま
う。手続き呼び出しの深さがこの数より深くなってしま
った場合は、レジスタウィンドウのオーバーフローとア
ンダーフローという問題が起きる。このような場合、レ
ジスタウィンドウ方式は、オペレーテイングシステムが
割り込みを起こし、オーバーフロー時にはレジスタウィ
ンドウの記憶内容をメインメモリに退避するという処理
を行ない、アンダーフロー時にはメインメモリに退避さ
れた記憶内容をレジスタウィンドウに回復するとう処理
を行なう。このようなオペレーテイングシステムによる
割り込みは、マイクロプロセッサの実行環境を、実行中
のプログラムからオペレーティングシステムに切替える
などの処理をオーバーヘッドが大きく、マイクロプロセ
ッサの性能低下要因となっている。
【0011】本発明の目的は、以上のようなマイクロプ
ロセッサの従来技術におけるバッファメモリ及びレジス
タファイルの問題点を統一的に解決することにある。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるマイクロプロセッサは、レジスタファ
イルとバッファメモリとを備えたマイクロプロセッサに
おいて、レジスタファイルが複数の互いに独立したレジ
スタバンクと、レジスタバンク選択手段とから構成さ
れ、レジスタバンクがそれぞれ同じ数の複数のレジスタ
から構成されていることと、バッファメモリが複数のバ
ッファラインと、バッファライン選択手段とから構成さ
れ、バッファラインがレジスタバンクと同じビット幅を
持つように構成されていることと、レジスタバンクもし
くはバッファラインのビット幅を持つデータとしてフレ
ームを規定し、またレジスタのビット幅を持つデータと
してワードを規定し、レジスタファイルとバッファメモ
リとの間でフレーム単位、もしくはワード単位以下でデ
ータを相互転送するための第1のデータ転送手段によ
り、バッファメモリとレジスタファイルとが接続されて
いることと、バッファメモリとマイクロプロセッサの外
部に存在するメインメモリとの間でフレーム単位、もし
くはワード単位以下でデータを相互転送するための第2
のデータ転送手段により、バッファメモリとメインメモ
リとが接続されていることを特徴とする。
【0013】更に、本発明によるマイクロプロセッサ
は、上記のマイクロプロセッサにおいて、第1のデータ
転送手段を、フレームを一度に一括して転送できる転送
バンド幅を持った転送手段とすることを特徴とする。
【0014】本発明によるマイクロプロセッサの制御方
法は、このような構成に基づくマイクロプロセッサにお
いて、フレームを一意に指定するアドレスとしてフレー
ムアドレスを規定し、またレジスタバンクを一意に指定
する番号としてレジスタバンク番号を規定し、フレーム
アドレスとレジスタバンク番号とを指示し、フレームア
ドレスをバッファライン選択手段に与えることにより指
定されたバッファメモリ内のフレームをバッファメモリ
よりロードし、レジスタバンク番号をレジスタバンク選
択手段に与えることにより選択された前記レジスタバン
クにロードされたフレームを格納することと、フレーム
アドレスとレジスタバンク番号とを指示し、レジスタバ
ンク番号をレジスタバンク選択手段に与えることにより
選択されたレジスタバンクからフレームを読みだし、フ
レームアドレスをレジスタバンク選択手段に与えること
により指定されたバッファメモリ内の前記フレームに読
み出されたフレームをストアすることと、ロードとスト
アの各動作において、フレームアドレスにより指定され
たフレームがバッファメモリ内に存在しない場合、第2
のデータ転送手段を介して、メインメモリからバッファ
メモリへフレームを転送することを特徴とする制御方法
を用いる。
【0015】更に、本発明によるマイクロプロセッサの
制御方法は、上記のマイクロプロセッサの制御方法にお
いて、親手続きから子手続きを呼び出す手続き呼びだし
の際、親手続きが使用している変数のバッファメモリへ
の退避処理及びレジスタファイルへの回復処理を、フレ
ームを第1のデータ転送手段を介してバッファメモリと
レジスタファイル間でストアおよびロードすることによ
り行ない、前記バッファメモリを介して親手続きから子
手続きへの引数の引き渡しを、引数が書き込まれたフレ
ームを親手続きがバッファメモリにストアし、引数が書
き込まれたフレームを子手続きがレジスタファイルにロ
ードすることにより行なうことを特徴とする制御方法を
用いる。
【0016】
【作用】本発明のマイクロプロセッサでは、レジスタフ
ァイルとバッファメモリは、同じビット幅を持つレジス
タバンクとバッファラインでそれぞれ構成されている。
レジスタに格納されたデータをワードと呼び、レジスタ
バンクもしくはバッファラインに格納されたデータをフ
レームと呼ぶことにする。同じビット幅を持つため、レ
ジスタバンクに格納されたフレームはそのままバッファ
ラインに格納できるし、またその逆も成り立つ。レジス
タファイルとバッファメモリとを接続する第1のデータ
転送手段は、フレームを一度に一括して転送できるかも
しくはそれに準ずる広い転送バンド幅を持った転送手段
である。本発明では、この第1のデータ転送手段を介し
てフレーム単位でバッファメモリとレジスタファイル間
でデータをロードもしくはストアすることにより、上述
の従来技術の第1の問題点を解決している。
【0017】更に、本発明ではバッファメモリとレジス
タファイル間の広い転送バンド幅を利用して、手続き呼
び出し手順の高速化を実現できる。すなわち、親手続き
はあるレジスタバンクを指定し、このレジスタバンクに
格納されたフレームをレジスタファイルからバッファメ
モリにストアする。これにより親手続きが使用していた
変数のバッファメモリへの退避を行なう。退避した変数
の回復は、逆に変数を含むフレームをフレーム単位でバ
ッファメモリからレジスタフレームへロードすることに
より実行する。これにより、1ワードずつ退避/回復処
理を行なう従来技術と比べて、手続き呼びだし手順の高
速化を図ることが出来る。更に、この方式では、手続き
呼び出しの深さが深い場合でも従来のレジスタウィンド
ウ方式を用いた場合のような、オペレーティングシステ
ムによる割り込みという問題は生じない。なぜなら、バ
ッファメモリからメインメモリへの退避および回復は全
てハードウェアにより自動的に実行できるからである。
すなわち、変数を記憶したフレームは第1のデータ転送
手段を介してバッファメモリに退避され、このバッファ
メモリに格納し切れなくなったフレームは第2のデータ
転送手段を介してハードウェア管理の下でメインメモリ
に退避される。このように、バッファメモリとレジスタ
フレーム間を広いバンド幅を持つデータ転送手段で結合
し、これを利用して変数の退避/回復処理を行なうこと
により、従来技術の問題点を解決し、手続き呼びだし手
順の高速化を図ることが出来る。
【0018】
【実施例】図1は本発明によるマイクロプロセッサの一
実施例に関して、本発明に関する部分を示したブロック
構成図である。図1において、本発明の実施例では、一
例として、レジスタファイル110は4つのレジスタバ
ンク120から構成され、一つのレジスタバンクは8ワ
ードから構成されるものとしている。すなわち、レジス
タファイル110を構成するレジスタの総数は一例とし
て32個であるとしている。図1において、レジスタフ
ァイル110は4つのレジスタバンク120とレジスタ
バンク番号入力端子111から入力されたレジスタバン
ク番号を用いてレジスタバンク120を選択するレジス
タバンク選択手段130とから構成されており、レジス
タバンク120は8個のレジスタ125から構成されて
いる。また、バッファメモリ150はレジスタバンク1
20と同じビット幅を持つ複数のバッファライン160
とバッファライン選択手段170とから構成されてい
る。本実施例では、バッファメモリ150としてダイレ
クトマップ方式と一般に呼ばれる方式を採用したものを
一例として示している。バッファライン選択手段170
は、フレームアドレス入力手段151から入力されるフ
レームアドレスを用いて、フレームを格納すべきもしく
は読み出すべきバッファライン160を一意に選択し、
選択されたバッファライン160に格納されたフレーム
がフレームアドレスで指定されたものか否かを判断す
る。レジスタファイル110とバッファメモリ150の
間は第1のデータ転送手段180により接続されてい
る。この第1のデータ転送手段180はフレームを一度
に一括して転送できるだけの転送バンド幅を持ち、フレ
ームもしくはワード以下を単位としてデータの相方向の
転送を行なう。ここでワード以下とは、一般にマイクロ
プロセッサの処理単位として指定される、ワード、ハー
フワード、バイトなどのことを指す。またバッファメモ
リ150とメインメモリ接続端子191は第2のデータ
転送手段190により接続されている。メインメモリ接
続端子191はマイクロプロセッサの外部に存在するメ
インメモリと接続される。
【0019】図2は図1で示した一実施例のレジスタフ
ァイル110とバッファメモリ150、及び第1のデー
タ転送手段180により詳細な構成の実施例を示すブロ
ック構成図である。本実施例においては、レジスタファ
イル110を半導体集積回路のメモリアレイ、特にスタ
ティクRAMを用いて構成している。また本実施例にお
いては1ワードを32ビット構成としている。図2にお
いて、レジスタファイル110内のレジスタバンク12
0は、ワードを構成する1ビットずつに対応する32個
のレジスタサブバンク220 0〜220 31から構
成される。一つのレジスタサブバンク220内には、一
つのレジスタバンク120を構成するワード数が8ワー
ドであることに対応して、8個のメモリセル225が存
在する。メモリセル225はワード線221とビット線
対222に接続されており、ワード線221はレジスタ
バンク選択手段130の出力につながっている。レジス
タバンク選択手段130の入力であるレジスタ番号はレ
ジスタ番号入力端子111から入力される。各ビット線
対22は読みとり/書き込み回路235に接続される。
読みとり/書き込み回路235はビット線対222を介
してフレームもしくはワードを単位としてレジスタファ
イルの読みとり/書き込みを行う。読みとり/書き込み
をどちらの単位で行なうかは、レジスタ選択制御信号入
力端子213から入力されるレジスタ選択制御信号をデ
コーダ230によりデコードし、読みとり/書き込み回
路235に与えることにより指定される。ワード単位で
これを行なう場合、同じくデコーダ230からワードの
位置を読みとり/書き込み回路235に指定する。な
お、図中でビット線対222を太線で示しているが、こ
れは図面の冗長を避けるために細部を省略したことを示
すためのものである。
【0020】バッファメモリ150において、バッファ
ライン160は、レジスタバンク120の場合と同様
に、32個のバッファサブライン260 0〜260
31から構成される。一つのバッファサブライン260
を構成するメモリセル265の数は同様に8個である。
ワード線261はバッファライン選択手段170に接続
される。バッファライン選択手段170は、フレームア
ドレス入力端子151から入力されるフレームアドレス
を用いて一つのバッファライン160に対応するワード
線261を選択する。また、バッファライン選択手段1
70は選択されたバッファライン160が真にフレーム
アドレスにより指定されるものであるかどうかを判断
し、その結果を制御信号として読みとり/書き込み回路
275に送る。読みとり/書き込み回路275はビット
線対262に接続されており、選択されたバッファライ
ン160が真にフレームアドレスにより指定されたもの
であった場合、ビット線対262を介してフレーム単位
もしくはワード単位でデータの読みとり/書き込みを行
なう。選択されたバッファライン160が真にフレーム
アドレスで指定されるものではなかった場合、正しいフ
レームがメインメモリからバッファメモリ150に転送
され、バッファライン選択手段170で選択されたバッ
ファライン160に格納され、その後上と同様な動作を
行なう。このフレームの転送には、図1で示した第2の
データ転送手段190が用いられる。 第1のデータ転
送手段180は、256本のビット転送線282により
レジスタファイル110内の読みとり/書き込み回路2
35とバッファメモリ150内の読みとり/書き込み回
路275とを接続している。一本のビット転送線282
は、読みとり/書き込み回路235もしくは275で読
み出された1ビットの情報を読みとり/書き込み回路2
75もしくは235にそれぞれ互いに転送する。1本の
ビット転送線が一組のビット線対222に対応する。こ
れにより、レジスタファイル110とバッファメモリ1
50間で256ビットという広いバンド幅のデータ転送
手段を実現している。図2においてビット転送線282
はシフト回路280を経由している。シフト回路280
はフレームもしくはワード以下の単位のデータの転送に
関して以下のように機能する。フレーム単位でデータを
転送する場合は、ビット転送線282上の信号をそのま
ま転送する。ワード以下の単位のデータ転送の場合は、
要求されたワード以下のデータが要求された位置に転送
されるように横方向にビット転送線282上の信号をシ
フトして転送する。フレーム単位で転送するか否かと、
ワード以下の単位で転送を行なう場合のシフト方向とシ
フト幅とはシフト制御信号入力端子281から入力され
る。
【0021】図3は図1に示した本発明によるマイクロ
プロセッサの一実施例を用いて、本発明によるマイクロ
プロセッサの制御方法の実施例を説明するための説明図
である。図3には本発明によるマイクロプロセッサの制
御方式の第1、第2の実施例で使用する命令の一覧と命
令の一覧に使用した略称とが示されている。第1の命令
であるload frame命令はバッファメモリ15
0から一つのフレームをレジスタファイル110にロー
ドするための命令である。この命令の略称をlfとす
る。レジスタバンク番号をlf命令の第1引数として指
定し、フレームアドレスを第2引数、第3引数の組で指
定する。第3引数はフレームアドレスのベースを格納し
たレジスタのレジスタ番号を指定し、このベースに第2
引数で指定される直値を加算してフレームアドレスを求
める。図3中では第3引数を[]でで囲んで示してい
る。このフレームアドレスで指定されたフレームをバッ
ファメモリ150からロードし、第1引数で指定された
レジスタバンク120に格納する。第2の命令であるs
tore frame命令はレジスタファイル110か
ら一つのフレームをバッファメモリ150にストアする
ための命令である。この命令の略称をsfとする。sf
命令の引数の構成はlf命令と同様である。第1引数で
指定されたレジスタバンク120に格納されたフレーム
を第2引数、第3引数で指定されたフレームアドレスに
対応するバッファライン160にストアする。第3から
第6の命令は従来技術のマイクロプロセッサにも存在す
る命令である。本実施例では、特に米国MIPS社が定
めているMIPSアーキテクチャと呼ばれるアーキテク
チャで定義されている命令形式にしたがって、これらの
命令を定めている。これらの命令の詳細は、既にあげた
文献“Computer Architecture:
A Quantitative Approach”な
どの文献に記載されているので説明を省略する。なお、
jump and link命令は、実行の際、命令の
引数として陽に指定されていない31番のレジスタに戻
り命令アドレスを書き込むので注意が必要である。
【0022】図3において、load frame命
令、store frame命令は、本発明によるマイ
クロプロセッサの制御方法の特徴となる命令である。以
下、例として、load frame命令のより詳細な
動作を図1、図2を参照しながら説明する。load
frame命令が発行されると、第2引数と第3引数か
ら求められたフレームアドレスがバッファメモリ150
のフレームアドレス入力端子151から与えられ、バッ
ファライン選択手段170により一つのバッファライン
160が選択される。選択されたバッファライン160
が真にフレームアドレスで指定されたフレームを格納し
ているか否かがバッファライン選択手段170によりチ
ェックされ、もしそうであれば、読みとり/書き込み回
路275を介してフレームが読み出され、第1のデータ
転送手段180を介して一度に一括してレジスタファイ
ル110に転送される。指定されたフレームを格納して
いなかった場合は、メインメモリから第2のデータ転送
手段190を介してフレームが転送され、このフレーム
をバッファライン160に格納し、更にこのフレームを
第1のデータ転送手段180を介して一度に一括してレ
ジスタファイル110に転送する。一方、load f
rame命令の第1引数のレジスタバンク番号はレジス
タファイル110のレジスタバンク入力端子111から
入力され、レジスタバンク選択手段130によりレジス
タバンク120が選択される。この選択されたレジスタ
バンク120にバッファメモリ150から転送されたフ
レームが格納される。
【0023】本発明によるマイクロプロセッサの制御方
法では、これらの命令の他にも従来技術のマイクロプロ
セッサで使用されている命令を併用してマイクロプロセ
ッサの制御を行なうが、これらの命令は従来技術により
十分に開示されているので本実施例では説明を省略す
る。
【0024】図4は、図3に示した命令を用いて本発明
によるマイクロプロセッサの制御方法を示した第1の実
施例の説明図である。図4中左側に示したプログラムコ
ードに対し、既に説明した命令を用いた図中右側の命令
列を生成し、これを用いてマイクロプロセッサを制御す
ることによりプログラムコードを実行する。図4におい
て、プログラムコードはc言語で記述されている。この
プログラムコードはそれぞれ8個の要素を持つベクトル
xとyを加算し、その結果をベクトルzとするものであ
る。また、図4に示した命令列においてRB3、RB2
等は、それぞれレジスタバンク番号2、レジスタバンク
番号3等を意味する。またR8、R24等はそれぞれレ
ジスタ番号8、レジスタ番号24等を意味する。なお、
以下ではレジスタバンク番号2により指定されるレジス
タバンクをレジスタバンク2、レジスタ番号8で指定さ
れるレジスタをレジスタ8などと記載する。更にR4は
x[0]のアドレス、R5はy[0]のアドレス、R6
はz[0]のアドレスをそれぞれ保持しているのものと
し、ベクトルx、y.zはそれぞれフレームの境界に整
列されているものとする。本命令列では、最初にベクト
ルxとベクトルyとをレジスタバンク3とレジスタバン
ク2にそれぞれload frame命令でロードして
いる。次にレジスタバンク3とレジスタバンク2に格納
されたフレームの各ワードに対してadd命令で加算を
行ない、その結果をレジスタバンク1内の各レジスタに
書き込んでいる。ここで、レジスタ番号とレジスタバン
ク番号との対応関係を、レジスタ0からレジスタ7はレ
ジスタバング0に、レジスタ8からレジスタ15はレジ
スタバンク1に、レジスタ16からレジスタ23はレジ
スタバンク2に、レジスタ24からレジスタ31はレジ
スタバンク3に、それぞれ含まれるものとする。最後
に、store frame命令を用い、レジスタバン
ク1に記憶されたフレームをベクトルzにストアする。
このように、本発明のマイクロプロセッサの制御方法
では、フレームを単位として一括してデータのロードも
しくはストアを行なうことにより、ワードを単位とする
場合に比べて、バッファメモリへのアクセスの回数を削
減することが出来る。図4の実施例では、従来技術のマ
イクロプロセッサの制御方法では計24回のバッファメ
モリアクセスが必要であったのに対し、本発明では計3
回である。 図5は、図3に示した命令を用いて本発明
によるマイクロプロセッサの制御方法を示した第2の実
施例の説明図である。本実施例は、本発明によるマイク
ロプロセッサの制御方法による手続き呼びだし手順を示
したものである。図5中左側に示したc言語によるプロ
グラムコードは、mainという手続きからfooとい
う手続きを呼び出している。fooの引数は二つの整数
であり、mainは外部整数変数x、yの値をこの引数
として与えている。図中右側に対応する命令列を示し
た。この命令列では変数xとyのアドレスがレジスタ1
6とレジスタ17に格納されていると仮定する。またレ
ジスタバンク1に格納されたフレームはmainが使用
する変数を格納するために使用されていると仮定する。
本命令列では、まずxとyをload word命令で
レジスタバンク2内のレジスタにそれぞれロードする。
次に、mainの使用している変数を退避するために、
レジスタバンク1に格納されたフレームを、R29に格
納されたフレームアドレスで指定されるフレームにst
ore frame命令を用いてストアする。更に、引
数をfooに引き渡すためにxとyが格納されているレ
ジスタバンク2のフレームをR30に格納されたフレー
ムアドレスで指定されるフレームにstore fra
me命令を用いてストアし、jump and lin
k命令でfooを呼び出す。fooはR29で指定され
るフレームアドレスからload frame命令でフ
レームを呼び出してレジスタバンク1に格納し、mai
nからの変数を受けとる。fooは最後にjump r
egister命令でmainに戻り、mainはバッ
ファメモリに退避されたフレームをレジスタバンク2に
load frame命令を用いて回復する。なお、こ
こで引数の引り渡しをレジスタだけで行なえる場合は、
本実施例のようにレジスタバンク1に格納されたフレー
ムをバッファメモリにストアせずに、直接fooが使用
することも可能である。
【0025】このように、本発明のマイクロプロセッサ
の制御方法では、フレームを単位として一括してデータ
のロードもしくはストアを行なうことにより、ワードを
単位とする場合に比べて、手続き呼びだし手順を実行す
る際にバッファメモリへのアクセスの回数を減らすこと
が出来る。
【0026】なお以上説明してきた実施例の中で、図1
で示した本発明によるマイクロプロセッサの構成の実施
例では、レジスタファイル110とマイクロプロセッサ
内の演算器間の接続について説明を省略したが、これは
接続方法が従来技術により十分に開示されているからで
ある。例えば、図2に示したレジスタファイル110の
構成例で、レジスタファイル110を構成するメモリを
マルチポートメモリとし、それぞれのポートを演算器へ
データを供給するための読みとりポート、演算結果を格
納するための書き込みポートなどとすれば良い。また、
バッファメモリ150の構成方式についても本発明に関
連する部分以外については詳しく触れなかったが、これ
も従来技術により十分に開示されているからである。更
に、図1の実施例では、バッファメモリ150の構成と
してダイレクトマップ、レジスタファイル110内のワ
ードの数として32ワード、レジスタバンク120の数
として4レジスタバンクなどの例を上げたが、これらは
単なる例であり、他の種々の構成により本発明によるマ
イクロプロセッサを実現することが可能である。
【0027】
【発明の効果】以上説明してきたように、本発明による
マイクロプロセッサ及びその制御方法により、マイクロ
プロセッサを構成するバッファメモリおよびレジスタフ
ァイル間を広い転送バンドを持つデータ転送手段で接続
し、レジスタバンクもしくはバッファラインのサイズを
持ち、複数のワードの集合からなるデータであるフレー
ムを単位としてロードおよびストアを行なうことによ
り、バッファメモリへのアクセス回数を減らし、マイク
ロプロセッサの性能を向上することが可能となる。特
に、手続き呼びだし手順の実行の際に、フレームを単位
として変数の退避/回復、引数の引り渡し等を行なうこ
とにより、バッファメモリアクセスの回数を減少させる
ことができ、また従来技術であるレジスタウィンドウ方
式の場合のようなウィンドウのオーバーフローに伴うオ
ーバーヘッドの問題もないという効果がある。
【0028】本発明によるマイクロプロセッサの一実施
例として図2に示した第1のデータ転送手段の構成は、
レジスタファイルとバッファメモリが同一の集積回路チ
ップに集積される場合、如何に容易に広いバンド幅を確
保できるかを示している。図2において、第1の転送手
段180を構成するビット転送線282は、ビット線対
222あるいは262あたり一本の割合で配置される。
このように、レジスタファイル110とバッファメモリ
150を隣合わせに配置し、お互いの間を微細間隔な並
行配線で接続するだけで、第1のデータ転送手段180
は実現されている。
【図面の簡単な説明】
【図1】本発明によるマイクロプロセッサの一実施例に
関して、本発明に関わる部分を示したブロック構成図で
ある。
【図2】図1の実施例に示したマイクロプロセッサの、
レジスタファイルとバッファメモリ及びそれらの間の接
続手段のより詳細な構成を示したブロック構成図であ
る。
【図3】本発明によるマイクロプロセッサの制御方法を
説明するための説明図である。
【図4】本発明によるマイクロプロセッサの制御方法の
第1の実施例を示した説明図である。
【図5】本発明によるマイクロプロセッサの制御方法の
第2の実施例を示した説明図である。
【符号の説明】
110 レジスタファイル 120 レジスタバンク 130 レジスタバンク選択手段 150 バッファメモリ 160 バッファライン 170 バッファライン選択手段 180 第1のデータ転送手段 190 第2のデータ転送手段 111 レジスタバンク番号入力端子 151 フレームアドレス入力端子 191 メインメモリ接続端子

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 レジスタファイルとバッファメモリとを
    備えたマイクロプロセッサにおいて、前記レジスタファ
    イルが複数の互いに独立したレジスタバンクと、レジス
    タバンク選択手段とから構成され、前記レジスタバンク
    がそれぞれ同じ数の複数のレジスタから構成され、前記
    バッファメモリが複数のバッファラインと、バッファラ
    イン選択手段とから構成され、前記バッファラインが前
    記レジスタバンクと同じビット幅を持つよう構成され、
    前記レジスタバンクもしくは前記バッファラインのビッ
    ト幅を持つデータとしてフレームを規定し、また前記レ
    ジスタのビット幅を持つデータとしてワードを規定し、
    前記レジスタファイルと前記バッファメモリとの間で前
    記フレーム単位でデータを相互転送するための第1のデ
    ータ転送手段により、前記バッファメモリと前記レジス
    タファイルとが接続され、前記バッファメモリと前記マ
    イクロプロセッサの外部に存在するメインメモリとの間
    で前記フレーム単位、もしくはワード単位以下でデータ
    を相互転送するための第2のデータ転送手段により、前
    記バッファメモリと前記メインメモリとが接続されてい
    ることを特徴とするマイクロプロセッサ。
  2. 【請求項2】 請求項1に記載のマイクロプロセッサに
    おいて、更に、前記第1のデータ転送手段を、前記フレ
    ームを一度に一括して転送できる転送バンド幅を持った
    転送手段とすることを特徴とするマイクロプロセッサ。
  3. 【請求項3】 請求項1もしくは2に記載のマイクロプ
    ロセッサにおいて、前記フレームを一意に指定するアド
    レスとしてフレームアドレスを規定し、また前記レジス
    タバンクを一意に指定する番号としてレジスタバンク番
    号を規定し、前記フレームアドレスと前記レジスタバン
    ク番号とを指示し、前記フレームアドレスを前記バッフ
    ァライン選択手段に与えることにより指定された前記バ
    ッファメモリ内の前記フレームを前記バッファメモリよ
    りロードし、前記レジスタバンク番号を前記レジスタバ
    ンク選択手段に与えることにより選択された前記レジス
    タバンクにロードされた前記フレームを格納すること
    と、前記フレームアドレスと前記レジスタバンク番号と
    を指示し、前記レジスタバンク番号を前記レジスタバン
    ク選択手段に与えることにより選択された前記レジスタ
    バンクから前記フレームを読みだし、前記フレームアド
    レスを前記レジスタバンク選択手段に与えることにより
    指定された前記バッファメモリ内の前記フレームに読み
    出された前記フレームをストアすることと、前記ロード
    と前記ストアの各動作において、前記フレームアドレス
    により指定された前記フレームが前記バッファメモリ内
    に存在しない場合、前記第2のデータ転送手段を介し
    て、前記メインメモリから前記バッファメモリへ前記フ
    レームを転送することを特徴とするマイクロプロセッサ
    の制御方法。
  4. 【請求項4】 請求項3記載のマイクロプロセッサの制
    御方法において、更に、親手続きから子手続きを呼び出
    す手続き呼びだしの際、前記親手続きが使用している変
    数の前記バッファメモリへの退避処理及び前記レジスタ
    ファイルへの回復処理を、前記フレームを前記第1のデ
    ータ転送手段を介して前記バッファメモリと前記レジス
    タファイル間でストアおよびロードすることにより行な
    い、前記バッファメモリを介した前記親手続きから前記
    子手続きへの引数の引き渡しを、前記引数が書き込まれ
    た前記フレームを前記親手続きが前記バッファメモリに
    ストアし、前記引数が書き込まれた前記フレームを前記
    子手続きが前記レジスタファイルにロードすることによ
    り行なうことを特徴とするマイクロプロセッサの制御方
    法。
JP5333434A 1993-12-27 1993-12-27 マイクロプロセッサの制御方法 Expired - Lifetime JP2993342B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5333434A JP2993342B2 (ja) 1993-12-27 1993-12-27 マイクロプロセッサの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5333434A JP2993342B2 (ja) 1993-12-27 1993-12-27 マイクロプロセッサの制御方法

Publications (2)

Publication Number Publication Date
JPH07191908A true JPH07191908A (ja) 1995-07-28
JP2993342B2 JP2993342B2 (ja) 1999-12-20

Family

ID=18266067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5333434A Expired - Lifetime JP2993342B2 (ja) 1993-12-27 1993-12-27 マイクロプロセッサの制御方法

Country Status (1)

Country Link
JP (1) JP2993342B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524477A (ja) * 2003-04-22 2006-10-26 アギア システムズ インコーポレーテッド 共用マルチバンク・メモリのための方法および装置
JP2017527867A (ja) * 2014-07-08 2017-09-21 インテル・コーポレーション ロジックコアブロック及びメモリ冗長を協調最適化することによって面積削減を実現する技術

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262922A (ja) * 1985-05-17 1986-11-20 Fujitsu Ltd レジスタデ−タの高速スタツク回路
JPH05165641A (ja) * 1991-04-30 1993-07-02 Toshiba Corp シングルチップマイクロコンピュータ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262922A (ja) * 1985-05-17 1986-11-20 Fujitsu Ltd レジスタデ−タの高速スタツク回路
JPH05165641A (ja) * 1991-04-30 1993-07-02 Toshiba Corp シングルチップマイクロコンピュータ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524477A (ja) * 2003-04-22 2006-10-26 アギア システムズ インコーポレーテッド 共用マルチバンク・メモリのための方法および装置
JP2017527867A (ja) * 2014-07-08 2017-09-21 インテル・コーポレーション ロジックコアブロック及びメモリ冗長を協調最適化することによって面積削減を実現する技術
US10268122B2 (en) 2014-07-08 2019-04-23 Intel Corporation Techniques to achieve area reduction through co-optimizing logic core blocks and memory redundancies

Also Published As

Publication number Publication date
JP2993342B2 (ja) 1999-12-20

Similar Documents

Publication Publication Date Title
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US5729724A (en) Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
JP2539199B2 (ja) デジタルプロセッサ制御装置
EP0148478B1 (en) A data processor with control of the significant bit lenghts of general purpose registers
US5740093A (en) 128-bit register file and 128-bit floating point load and store for quadruple precision compatibility
JPH03219345A (ja) 多ポートキャッシュメモリ制御装置
JPH0472255B2 (ja)
JP2001216194A (ja) 演算処理装置
US5764959A (en) Adaptive 128-bit floating point load and store instructions for quad-precision compatibility
JP2523814B2 (ja) ム―ブアウト・システム
JP4865960B2 (ja) データ処理装置およびその制御方法
EP1039376B1 (en) Sub-instruction emulation in a VLIW processor
JP2993342B2 (ja) マイクロプロセッサの制御方法
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
JPS62156742A (ja) デ−タ書込み制御方式
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH04104350A (ja) マイクロプロセッサ
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH0926945A (ja) 情報処理装置
JP4421148B2 (ja) デバッグシステム
JP2883488B2 (ja) 命令処理装置
JP3717813B2 (ja) データ処理装置
JPH06332700A (ja) 情報処理装置
JPH0721154A (ja) ベクトル処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990921

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071022

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081022

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111022

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121022

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 14

EXPY Cancellation because of completion of term