[go: up one dir, main page]

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

マイクロプロセッサ

Info

Publication number
JP2677202B2
JP2677202B2 JP6190447A JP19044794A JP2677202B2 JP 2677202 B2 JP2677202 B2 JP 2677202B2 JP 6190447 A JP6190447 A JP 6190447A JP 19044794 A JP19044794 A JP 19044794A JP 2677202 B2 JP2677202 B2 JP 2677202B2
Authority
JP
Japan
Prior art keywords
register
frame
address
bank
registers
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.)
Expired - Fee Related
Application number
JP6190447A
Other languages
English (en)
Other versions
JPH0855028A (ja
Inventor
真人 本村
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 JP6190447A priority Critical patent/JP2677202B2/ja
Priority to EP95112797A priority patent/EP0697651B1/en
Priority to DE69523690T priority patent/DE69523690T2/de
Priority to US08/514,928 priority patent/US5713038A/en
Publication of JPH0855028A publication Critical patent/JPH0855028A/ja
Application granted granted Critical
Publication of JP2677202B2 publication Critical patent/JP2677202B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • 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/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに関
し、特に高速データアクセスのために用いられるレジス
タファイルを含むマイクロプロセッサに関する。
【0002】
【従来の技術】一般に、マイクロプロセッサには複数個
のレジスタが備えられており、当該マイクロプロセッサ
においては、メインメモリ装置からのデータがレジスタ
にロードされ、当該レジスタ内のデータを用いて演算処
理が行われて、その演算処理結果がレジスタ内に書き込
まれ、更に当該演算結果はレジスタからメインメモリ装
置内に書き込まれるという動作手順を介して、所定のプ
ログラムの実行が行われている。これら上記の複数個の
レジスタは、一括してレジスタファイル装置と呼ばれて
いる。現在のマイクロプロセッサにおいては、32個程
度のレジスタから成るレジスタファイル装置が設けられ
ているのが通例である。このレジスタファイル装置は、
ブロセッサ外部のメモリ装置またはプロセッサ内部のキ
ャッシュメモリに比較して小規模であるために、高速ア
クセスが可能であり、また複数の読出し/書込みを並列
に行うことが、比較的に低コストで行うことができると
いう利点がある。
【0003】このように、マイクロプロセッサにおいて
は、レジスタファイル装置を活用することにより処理の
高速化が実現されているが、その一方において、このレ
ジスタファイル装置のために、プロセスまたはスレッド
間の処理の切替が遅くなるというデメリットが存在して
いる。ここで、上記のスレッドとは、一つのプロセスを
幾つかの並行または並列に実行可能な部分に切り分けた
命令列のことを指す言葉である。これらのプロセスまた
はスレッド間の処理の切替は一般的にはコンテキストス
イッチと呼ばれており、マイクロプロセッサにおいて
は、プロセスまたはスレッドの切替え時において、また
は割り込み処理時において、このコンテキストスイッチ
という現象が数多く発生する。
【0004】このコンテキストスイッチが起きると、新
たなプロセスまたはスレッドによってレジスタファイル
装置が使用されるために、コンテキストスイッチの発生
に対する対応策としては、実行環境即ちレジスタファイ
ル装置内の古い記憶内容をメインメモリ装置内に退避さ
せることが必要となる。一般に、通常のマイクロプロセ
ッサを使用している限りにおいては、このようなコンテ
キストスイッチという現象の発生は、処理上の大きなオ
ーバーヘッドとなる。通常のマイクロプロセッサにおい
て、このコンテキストスイッチ対応策に時間を要する理
由は、第1に、オペレーティングシステムまたはユーザ
ーレベルライブラリが介入する必要があるという点であ
り、第2には、退避すべき実行環境の情報が多いという
点である。この内、オベレーティングシステムまたはユ
ーザーレベルライブラリが介入しなければならないとい
う要因の一つは、レジスタファイル装置のデータ内容を
退避させるべきメモリ空間内のアドレスが定められてい
ないという点にある。このため前記オペレーテイングシ
ステムによりデータ退避用の領域がメモリ上において確
保され、これらの退避用の領域に、前記レジスタおよび
プログラムカウンタのデータ内容を格納するための手続
きがとられる。このような状態は、メモリ空間内のアド
レスが割り当てられておらずに、マイクロプロセッサ内
のハードウェアが維持されている状態という意味で、上
記の実行環境はプロセッサ状態と呼ばれることもある。
【0005】上記のコンテキストスイッチについては、
コンピュータ科学またはオペレーティングシステムの教
科書、例えば“ Operating System Concepts, A.Silber
schatz, J.Peterson and P.Galvin, Addison Wesley,
p.106”などに解説されている。ここにおいて、オペレ
ーティングシステムまたはユーザーレベルライブラリが
介入する理由の一つは、レジスタファイル装置の記憶内
容の退避場所を確保するためである。
【0006】このようなコンテキストスイッチに関する
問題を解決するために提案されている従来技術の一つと
して、レジスタウィンドウ技術がある。この技術は、マ
イクロプロセッサのRISCアーキテクチャの一つとし
て著名なSPARCアーキテクチャにおけるレジスタフ
ァイル装置において採用されているものである。レジス
タウィンドウ技術は、既に多くのコンピュータ科学の教
科書等にも解説されている技術であり、“The SPARC Ar
chitecture Manual, Prentice Hall”の第4章に詳しい
説明が記載されている。
【0007】以下に、図6を参照して、レジスタウィン
ドウ技術に基づくレジスタファイル装置の基本的な概念
と動作について説明する。図6は、当該レジスタファイ
ル装置40を形成する複数のレジスタウィンドウを示す
図である。図6に示されるように、レジスタファイル装
置40は、レジスタウィンドウ6011 、6012 、6
013 、………、601(N-1) 、601N を含むN個の
レジスタウィンドウに分割されており、それぞれのレジ
スタウィンドウは、相互に一部分が重なりあっている。
図6において、各レジスタウィンドウの斜線部分は、隣
接するレジスタウィンドウと相互に重なりあっている部
分を示している。今、関数の呼び出し時に、呼び出し関
数が或るウィンドウを用いているものとすると、呼び出
された関数はその次のウィンドウを用いる。このよう
に、別々のレジスタウィンドウを用いるために、従来の
レジスタファイル装置のような関数呼び出しに伴うレジ
スタ記憶内容の退避/回復を行う必要がない。レジスタ
ウィンドウ間のオーバーラップは、関数間の引数の引き
渡しに使用される。
【0008】このように、レジスタウィンドウ技術は、
関数呼び出しの高速化のために考案された技術である
が、上記資料“The SPARC Architecture Manual ”の付
録Dに記載されているように、コンテキストスイッチの
高速化のためにも使用することが可能である。これは、
それぞれのウィンドウを各プロセスまたはスレッドに割
当てることにより行われる。関数呼び出しの場合と同様
に、コンテキストスイッチに伴う記憶内容の退避/回復
を行う必要がなくなる。但し、この場合には、レジスタ
ウィンドウ間のオーバーラップを利用することはできな
くなる。
【0009】
【発明が解決しようとする課題】上述した従来のマイク
ロプロセッサにおいては、レジスタファイル装置は、当
該マイクロプロセッサの高性能化にとって必須の装置で
はあるが、コンテキストスイッチの発生に際しては、レ
ジスタファイル装置の記憶内容をメモリ装置に退避させ
なければならないという事態となり、オーバーヘッドが
生じるという問題がある。このオーバーヘッドは、コン
テキストスイッチが頻繁に行われるような使用環境にお
いては重大な問題となり、例えば、埋め込み型システム
と呼ばれるような外部機器の制御用としてマイクロプロ
セッサを使用する場合、または複数のマイクロプロセッ
サを使用する並列マイクロプロセッサシステム等におい
ては、運用上の障害になるという欠点がある。
【0010】また、従来のウィンドウ技術においては、
レジスタファイル装置内に用意されているレジスタウィ
ンドウで足りている場合には、レジスタの内容のセーブ
を行わないで済むという利点があり、コンテキストスイ
ッチを高速化することが可能ではあるか、レジスタウィ
ンドウの数が足りない場合(オーバーフローと呼ぶ)に
は、オペレーティングシステムが介入して、オーバーフ
ローしたレジスタウィンドウの記憶内容をメモリ装置に
退避することが必要となる。このような状況が生じた場
合には、むしろ通常のレジスタファイル装置を用いてコ
ンテキストスイッチが生じた場合よりも、更に長い時間
がかかってしまうという欠点がある。
【0011】本発明の目的は、コンテキストスイッチに
際して、レジスタファイル装置の記憶内容を退避させる
ためには、オペレーティングシステムまたはユーザーレ
ベルライブラリにより明示的に退避場所を確保する必要
があり、そのためにコンテキストスイッチに長い時間が
かかるという問題を解決し、より柔軟で高速のコンテキ
ストスイッチ方法を可能とする、新しいレジスタファイ
ル装置を備えたマイクロプロセッサを提供することにあ
る。
【0012】
【課題を解決するための手段】第1の発明のマイクロプ
ロセッサは、少なくともレジスタファイル装置と命令パ
イプラインとを備えて構成され、当該レジスタファイル
装置と所定のメモリ装置との間において、データのロー
ド/ストア処理を行うマイクロプロセッサにおいて、前
記レジスタファイル装置が、それぞれ同一数のレジスタ
を含む複数のレジスタバンクと、前記レジスタバンクと
同一数のフレームアドレス記憶レジスタと、前記命令パ
イプラインに対してレジスタ指定線および第1のデータ
転送線を介して接続され、前記複数のレジスタバンクに
連結される第1のデータ読み書き手段と、前記命令パイ
プラインに対してアドレス転送線を介して接続され、前
記複数のフレームアドレス記憶レジスタに連結されるア
ドレス読み書き手段と、前記複数のレジスタバンクに連
結され、前記メモリ装置に対して第2のデータ転送線を
介して接続される第2のデータ読み書き手段と、備えて
構成される。
【0013】また、第2の発明のマイクロプロセッサ
は、少なくともレジスタファイル装置と命令パイプライ
ンとを備えて構成され、当該レジスタファイル装置と所
定のメモリ装置との間において、データのロード/スト
ア処理を行うマイクロプロセッサにおいて、前記レジス
タファイル装置が、それぞれ同一数のレジスタを含む複
数のレジスタバンクと、前記レジスタバンクと同一数の
フレームアドレス記憶レジスタと、前記レジスタバンク
と同一数のフレーム状態記憶レジスタと、前記命令パイ
プラインに対してレジスタ指定線および第1のデータ転
送線を介して接続され、前記複数のレジスタバンクに連
結される第1のデータ読み書き手段と、前記命令パイプ
ラインに対してアドレス転送線を介して接続され、前記
複数のフレームアドレス記憶レジスタに連結されるアド
レス読み書き手段と、前記複数のレジスタバンクに連結
され、前記メモリ装置に対して第2のデータ転送線を介
して接続される第2のデータ読み書き手段と、前記命令
パイプラインに対してフレーム状態転送線を介して接続
され、前記複数のフレーム状態記憶レジスタに連結され
るフレーム状態更新手段と、とを備えて構成される。
【0014】更に、第3の発明のマイクロプロセッサ
は、少なくともレジスタファイル装置と命令パイプライ
ンとを備えて構成され、当該レジスタファイル装置と所
定のメモリ装置との間において、データのロード/スト
ア処理を行うマイクロプロセッサにおいて、前記レジス
タファイル装置が、それぞれ同一数のレジスタを含む複
数のレジスタバンクと、前記レジスタバンクと同一数の
フレームアドレス記憶レジスタと、前記レジスタバンク
と同一数のフレーム状態記憶レジスタと、前記レジスタ
バンクと同一数のレジスタバンク番号レジスタと、前記
命令パイプラインに対して第1のデータ転送線を介して
接続され、前記複数のレジスタバンクに連結される第1
のデータ読み書き手段と、前記命令パイプラインに対し
てアドレス転送線を介して接続され、前記複数のフレー
ムアドレス記憶レジスタに連結されるアドレス読み書き
手段と、前記複数のレジスタバンクに連結され、前記メ
モリ装置に対して第2のデータ転送線を介して接続され
る第2のデータ読み書き手段と、前記命令パイプライン
に対してフレーム状態転送線を介して接続され、前記複
数のフレーム状態記憶レジスタに連結されるフレーム状
態更新手段と、前記命令パイプラインに対してレジスタ
指定線を介して接続され、前記複数のレジスタバンク番
号レジスタに連結されるレジスタバンク選択手段と、と
を備えて構成される。
【0015】
【実施例】次に、本発明について図面を参照して説明す
る。
【0016】図1は本発明の第1の実施例の構成を示す
ブロック図である。図1に示されるように、本実施例の
マイクロプロセッサ1は、メモリ装置2に対応して、命
令パイプライン3と、レジスタファイル装置4とを備え
て構成されており、レジスタファイル装置4は、アドレ
ス読み書き回路5と、複数のフレームアドレス記憶レジ
スタ6と、データ読み書き回路7および10と、それぞ
れ同一数のレジスタ9を含み、フレームアドレス記憶レ
ジスタ6と同一数のレジスタバンク8とを備えて構成さ
れる。マイクロプロセッサ1内においては、命令パイプ
ライン3は、レジスタファイル装置4とレジスタ指定線
104、データ転送線105およびアドレス転送線10
6により接続されており、マイクロプロセッサ1内の命
令パイプライン3は、メモリ装置2とメモリアドレス線
101および命令供給線102により接続され、データ
読み書き回路10は、メモリ装置2とデータ転送線10
3により接続されている。
【0017】始めに、図1を参照して、マイクロプロセ
ッサ1の一般的な動作について説明する。まず、命令パ
イプライン3により、メモリアドレス線101を介して
メモリ装置2内のアドレスが指定され、当該指定された
アドレスに格納されている命令が命令供給線102を経
由して読み出されて、命令パイプライン3に入力され
る。命令パイプライン3においては、当該命令により指
示される処理が実行される。この処理の実行に当って
は、レジスタファイル装置4内のレジスタバンク8の何
れかのレジスタ9に格納されているデータを必要とする
場合、または当該処理結果を何れかのレジスタ9に格納
する場合に対応して、当該レジスタファイル装置4内の
レジスタ9に対するアクセスが行われる。ワード単位以
下のデータのロード/ストァ命令を処理する場合には、
何れかのレジスタ9とメモリ装置2との間において、デ
ータ転送線103およびデータ読み書き回路10を介し
てデータが転送される。メモリ装置2内のアドレスは、
命令パイプライン3により、メモリアドレス線101を
介して指定される。ここにおいて、ワードとは、一つの
レジスタ9に格納されている大きさ、即ちビット数を持
つデータを示している。以上の動作が、通常のマイクロ
プロセッサと、本発明のマイクロプロセッサ1に共通す
る動作内容である。
【0018】次に、本実施例の特徴である、フレーム単
位にてロード/ストア命令を処理する場合の動作につい
て説明する。ここにおいて、フレームとは、レジスタバ
ンク8と同一のビット数のデータとして規定されてい
る。例えば、図1の実施例においては、レジスタバンク
8が4個あり、それぞれのレジスタバンク8が8個のレ
ジスタ9により構成される場合を例として示されている
が、この場合におけるフレームの大きさは8ワードとな
る。またフレームアドレスとは、このフレームに対して
与えられるメモリ装置2内におけるアドレスを示してい
る。
【0019】フレームのロード命令の処理を行う際に
は、フレームアドレスをメモリアドレス線101を介し
て指定し、指定されたフレームアドレスの位置のフレー
ムを、データ転送線103およびデータ読み書き込み回
路10を介してレジスタバンク8に書き込む。何れのレ
ジスタバンク8に書き込むかは、命令パイプライン3よ
りレジスタ指定線104およびデータ読み書き回路7を
介して、該当するレジスタバンク8に指定される。更に
指定されたフレームアドレスが、アドレス転送線106
およびアドレス読込み書き回路5を介して、指定された
レジスタバンク8に対応するフレームアドレス記憶レジ
スタ6に書き込まれる。
【0020】フレームのストア命令の処理の実施は二つ
の方法により行うことができる。第1のストア方法にお
いては、何れのレジスタバンク8のフレームをストアす
るかをレジスタ指定線104を介して指定する。メモリ
装置2内の格納場所を示すフレームアドレスには指定さ
れたレジスタバンク8に対応するフレームアドレス気後
レジスタ6に格納されているフレームアドレスが用いら
れる。このフレームアドレスは、アドレス転送線106
を介して命令パイプライン3に読み出され、メモリアド
レス線101を介してメモリ装置2に入力されて格納さ
れる。また、第2のストア方法においては、同じく何れ
のレジスタバンク8のフレームをストアするかを、レジ
スタ指定線104を介して指定し、またストア先のフレ
ームアドレスを、命令パイプライン3によりメモリアド
レス線101を介して指定する。この指定されたフレー
ムをメモリ装置2内の指定されたフレームアドレスの位
置に格納する。
【0021】図2は、本実施例におけるフレーム単位の
ロード/ストア命令実行時のフレームアドレスの指定方
法を説明するための動作概念図である。フレームをロー
ドする際に、例えばフレームアドレス“A”を指定した
ものとすると、動作線201により示されるように、メ
モリ装置2内のフレームアドレス“A”により指定され
る位置のフレームがメモリ装置2から読み出されて、指
定されたレジスタバンク8に格納されるとともに、対応
するフレームアドレス記憶レジスタ6にフレームアドレ
ス“A”が格納される。このフレームを前記第1の方法
によりストアすると、動作線202により示されるよう
に、ロードされた場所、即ち元の場所にストアされる。
一方、前記第2の方法において、フレームアドレスとし
て“C”により指定した場合に、どこからロードされた
か否かに関わらず、動作線203により示されるよう
に、メモリ装置2内のフレームアドレス“C”により指
定される位置に、“フレームA”がストアされる。
【0022】次に、本発明の第2の実施例について説明
する。図3は、本実施例の構成を示すブロック図であ
る。図3に示されるように、本実施例のマイクロプロセ
ッサ14は、メモリ装置15に対応して、命令パイプラ
イン16と、レジスタファイル装置17とを備えて構成
されており、レジスタファイル装置17は、アドレス読
み書き回路18と、複数のフレームアドレス記憶レジス
タ19と、フレーム状態更新回路20と、フレームアド
レス記憶レジスタ19と同一数のフレーム状態記憶レジ
スタ21と、データ読み書き回路22および25と、そ
れぞれ同一数のレジスタ24を含み、フレームアドレス
記憶レジスタ19と同一数のレジスタバンク23とを備
えて構成される。また、マイクロプロセッサ14内にお
いては、命令パイプライン16は、レジスタファイル装
置17とレジスタ指定線304、データ転送線305、
アドレス転送線306およびフレーム状態転送線307
により接続されており、レジスタファイル装置17内の
アドレス読み書き回路18は、フレーム状態更新回路2
0とフレーム退避制御線308により接続され、マイク
ロプロセッサ14内の命令パイプライン16は、メモリ
装置15とメモリア/レス線301および命令供給線3
02により接続されて、データ読み書き回路25は、メ
モリ装置15とデータ転送線303により接続されてい
る。
【0023】本実施例において、新たに付加されている
フレーム状態記憶レジスタ21には、対応するレジスタ
バンク23に記憶されているフレームが有効であるか無
効であるかを示す情報が記憶されている。図4は、本実
施例におけるフレーム状態記憶レジスタ21における有
効/無効の情報間の状態遷移図を示す。図4において、
状態遷移を表わす矢印に添えられている(1) および(2)
の記号は、それぞれレジスタバンク23に対するフレー
ムのロードと、レジスタバング23内のレジスタ24に
対する書き込みというイベントを示しており、これらの
イベントが状態遷移を引き起す要因となっている。ま
た、(a) という記号は、第1のストア方法によるフレー
ムのストアというイベントを示しており、このイベント
は状態遷移に伴なって引き起される。今、或るフレーム
が無効(403)であるものとする。このフレームを含
んだレジスタバンク23内のレジスタ24の何れかにデ
ータの書き込みが行われると、状態は有効(401)に
遷移(405)する。一方、有効(401)なフレーム
を保持するレジスタバンク23に新たにフレームをロー
ドすると、状態は無効(403)に遷移(406)する
とともに、有効(401)であったフレームが、第1の
ストア方法に基づきメモリ装置2にストアされる。即
ち、対応するフレームアドレス記憶レジスタ19に格納
されていたフレームアドレスを用いて、そのフレームア
ドレスにより指定されるメモリ装置15内の位置にスト
アされる。その他に、有効(401)なフレームを保持
するレジスタバンク23内のレジスタ24の何れかにデ
ータの書き込みが行われると、状態は有効(401)の
ままの状態に保持される。また、無効(403)なフレ
ームを含むレジスタバンク24に新たにフレームをロー
ドすると、状態としては無効(403)のままであり、
元来無効(403)なフレームの上に、新たにロードさ
れたフレームが上書きされる。
【0024】図3において、フレーム状態更新回路20
は、命令パイプライン16から、フレーム状態転送線3
07を介して、これらの状態遷移を引き起すイベントの
発生を通知され、それぞれのフレーム状態記憶レジスタ
21の状態に応じて、次の状態を計算してフレーム状態
記憶レジスタ21を更新する。フレームをロードした際
に、状態遷移(406)に伴なって第1のストア方法に
より、そのレジスタバンク23に保持されていた有効な
フレームをストアする場合には、フレーム退避制御線3
08を介して、アドレス読み書き回路18に対してこの
ことを通知することにより、退避すべきフレームアドレ
スをフレームアドレス記憶レジスタ19から読み出し
て、アドレス転送線306を介して、命令パイプライン
16に伝達し、またフレーム状態転送線307を介し
て、第1のストア方法によりフレームを退避させる必要
が生じたことを命令パイプライン16に通知する。命令
パイプライン16においては、上記の第1のストア方法
の手順に従って、フレームをメモリ装置15にストア
し、その後に、指定されたフレームをレジスタバンク2
3にロードする。
【0025】図5は、本発明の第3の実施例の構成を示
すブロック図である。図5に示されるように、本実施例
のマイクロプロセッサ26は、メモリ装置27に対応し
て、命令パイプライン28と、レジスタファイル装置2
9とを備えて構成されており、レジスタファイル装置2
9は、アドレス読み書き回路30と、複数のフレームア
ドレス記憶レジスタ31と、フレーム状態更新回路32
と、フレームアドレス記憶レジスタ31と同一数のフレ
ーム状態記憶レジスタ33と、データ読み書き回路34
および37と、それぞれ同一数のレジスタ36を含み、
フレームアドレス記憶レジスタ31と同一数のレジスタ
バンク35と、レジスタバンク選択回路38と、フレー
ムアドレス記憶レジスタ31と同一数のレジスタバンク
番号レジスタ39とを備えて構成される。また、マイク
ロプロセッサ26内においては、命令パイプライン28
は、レジスタファイル装置29とデータ転送線505、
アドレス転送線506、フレーム状態転送線507およ
びレジスタ指定線509により接続されており、レジス
タファイル装置29内のアドレス読み書き回路30は、
フレーム状態更新回路32とフレーム退避制御線508
により接続され、マイクロプロセッサ26内の命令パイ
プライン28は、メモリ装置27とメモリアドレス線5
01および命令供給線502により接続されて、データ
読み書き回路37は、メモリ装置27とデータ転送線5
03により接続されている。
【0026】本実施例において、前述の第2の実施例に
対して、新たにレジスタバンク選択回路38と複数のレ
ジスタバンク番号レジスタ39が付加されている。図1
および図3に示される第1および第2の実施例によるマ
イクロプロセッサにおいては、レジスタファイル装置4
および17におけるレジスタバンク8およよび23の数
は、レジスタセットの大きさにより制限されているが、
本実施例においては、レジスタバンク35の数は任意に
設定される。なお、レジスタセットの大きさとは、プロ
セッサの命令から指定することのできるレジスタの数で
ある。この第1および第2の実施例における制約に対比
して、本実施例においては、レジスタファイル装置29
内のレジスタ36の数がレジスタセットの大きさよりも
大きくなるようにレジスタバンク35の数を設定するこ
とが可能である。このような構成において、それぞれの
レジスタバンク35に付随するレジスタバンク番号レジ
スタ39には、それぞれのレジスタバンク35が、レジ
スタセット内の何れのレジスタバンク35に対応するか
を示すレジスタバンク番号が記憶される。一例として、
レジスタバンク35の大きさを8レジスタとし、レジス
タセットの大きさを32レジスタであるものとする。こ
の場合には、レジスタセットは、バンク0からバンク3
までの4バンクにより構成されることが分かる。レジス
タバンク番号とは、これらの0から3までの四つの値で
ある。一方、本実施例においては、レシスタファイル装
置29を構成するレジスタバンク35の数は4よりも大
きければよく、4である必要はない。代りにレジスタバ
ンク番号レジスタ39にレジスタセット内のレジスタバ
ンク番号を記憶させて、間接的にレジスタバンク35を
アクセスする。即ち、レジスタバンク選択回路38にお
いては、命令パイプライン28により、レジスタ指定線
509を介して指定されるレジスタ36またはレジスタ
バンク35が、何れのレジスタバンク35に対応してい
るかを、レジスタバンク番号レジスタ39内に記憶され
ているレジスタバンク番号と指定されたレジスタバンク
番号とを比較して、一致したレジスタバンク35にアク
セスすることにより求めることができる。
【0027】新たなフレームをロードする際には、本実
施例におけるレジスタファイル装置29においては、無
効なフレームを記憶するレジスタバンク35をレジスタ
バンク選択回路により選択し、そのレジスタバンク35
にロードされたフレームを格納する。このレジスタバン
ク35に対応するレジスタバンク番号レジスタ39に
は、ロード先のレジスタバンク番号が格納され、同じく
対応するフレームアドレス記憶レジスタ31には、ロー
ドされたフレームのフレームアドレスが格納される。対
応するフレーム状態記憶レジスタ33における状態は、
第2の実施例において説明した状態遷移手順に基づいて
状態遷移が引き起される。
【0028】なお、無効なレジスタバンク35が複数あ
る場合には、どのレジスタバンクにロードするかが、レ
ジスタバンク選択回路38により選択される。一例とし
て、LRU(Least Recently Used )などのアルゴリズ
ムにより選択する方法が考えられる。
【0029】
【発明の効果】以上説明したように、本発明は、レジス
タ内の記憶データにメモリ空間内でのアドレスを与え、
このアドレスをレジスタファイル装置内に保持しておく
ことにより、コンテキストスイッチの際に、オペレーテ
ィングシステム等のメモリ空間内にこれらの記憶データ
を退避させる必要がなくなり、代りに、与えられたアド
レスの位置にハードウェアにより、必要に応じて自動的
に退避することが可能となり、これにより、コンテキス
トスイッチの際における処理速度の低下を回避すること
ができるという効果がある。
【0030】また、それぞれのレジスタバンクに格納さ
れているフレーム有効か無効かを判断する手段を付加す
ることにより、上記の自動的なフレーム退避を効率的に
行うことが可能となり、コンテキストスイッチの際にお
ける処理速度の低下を回避することができるという効果
がある。
【0031】更に、それぞれのレジスタバンクにレジス
タバンク番号レジスタを付随させ、レジスタバンク番号
レジスタ内に、レジスタセット内のレジスタバンク番号
を格納することにより、当該レジスタセット内のレジス
タバンクと、レジスタファイル装置内のレジスタバンク
との対応を仮想化することが可能となる。即ち、実際に
命令から指定可能なレジスタバンクよりも多数のレジス
タバンクをハードウェアとして用意し、その内の一部を
レジスタセットに割り当てて使用することができるよう
になり、これにより、上記のコンテキストスイッチの際
のフレームのハードウェアによる自動退避の回数を削減
することが可能となり、コンテキストスイッチの際にお
ける処理速度を更に高速化することが可能になるという
効果がある。
【0032】そして、更にまた、レジスタウィンドウ技
術とは異なり、本発明におけるレジスタファイル装置に
おいては、それぞれのフレームがメモリ装置内のフレー
ムアドレスを有しているために、ハードウェアによりメ
モリ装置に対するストアを実行することが可能となり、
これにより、オーバーフローが発生することにより、そ
の処理に時間を要するという問題が回避され、同様に、
コンテキストスイッチの際における処理速度を更に高速
化することが可能になるという効果がある。
【0033】そして、複数のワードをまとめてフレーム
というデータの単位を導入し、フレーム単位にて上記の
メモリ空間内のアドレスを与えることにより、レジスタ
ごとにアドレスを与える場合に比較して、ハードウェア
上のオーバーヘッドを削減することが可能となるととも
に、フレーム単位の一括転送という技術を、本発明と組
み合わせて使用することにより、更に処理速度の高速化
を図ることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例の構成を示すブロック図
である。
【図2】第1の実施例におけるフレーム単位のロード/
ストア命令実行時のフレームアドレス指定方法を示す図
である。
【図3】本発明の第2の実施例の構成を示すブロック図
である。
【図4】第2の実施例におけるフレームの有効/無効の
状態遷移を示す図である。
【図5】本発明の第3の実施例の構成を示すブロック図
である。
【図6】従来例におけるレジスタウィンドウ技術の動作
説明図である。
【符号の説明】
1、14、26 マイクロプロセッサ 2、13、15、27 メモリ装置 3、16、28 命令パイプライン 4、17、29、40 レジスタファイル装置 5、18、30 アドレス読み書き回路 6、19、31 フレームアドレス記憶レジスタ 7、10、22、25、34、37 データ読み書き
回路 8、12、23、35 レジスタバンク 9、24、36 レジスタ 11 フレームアドレスレジスタ 20、32 フレーム状態更新回路 21、33 フレーム状態記憶レジスタ 38 レジスタバンク選択回路 39 レジスタバンク番号レジスタ

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくともレジスタファイル装置と命令
    パイプラインとを備えて構成され、当該レジスタファイ
    ル装置と所定のメモリ装置との間において、データのロ
    ード/ストア処理を行うマイクロプロセッサにおいて、
    前記レジスタファイル装置が、それぞれ同一数のレジス
    タを含む複数のレジスタバンクと、このレジスタバンク
    と同一ビット長のデータであるフレームの、前記メモリ
    装置内の格納アドレスであるフレームアドレスを記憶
    し、前記レジスタバンクと同一数のフレームアドレス記
    憶レジスタと、前記命令パイプラインに対してレジスタ
    指定線および第1のデータ転送線を介して接続され、前
    記複数のレジスタバンクに連結される第1のデータ読み
    書き手段と、前記命令パイプラインに対してアドレス転
    送線を介して接続され、前記複数のフレームアドレス記
    憶レジスタに連結されるアドレス読み書き手段と、前記
    複数のレジスタバンクに連結され、前記メモリ装置に対
    して第2のデータ転送線を介して接続される第2のデー
    タ読み書き手段と、を備えて構成されることを特徴とす
    るマイクロプロセッサ。
  2. 【請求項2】 少なくともレジスタファイル装置と命令
    パイプラインとを備えて構成され、当該レジスタファイ
    ル装置と所定のメモリ装置との間において、データのロ
    ード/ストア処理を行うマイクロプロセッサにおいて、
    前記レジスタファイル装置が、それぞれ同一数のレジス
    タを含む複数のレジスタバンクと、前記レジスタバンク
    と同一数のフレームアドレス記憶レジスタと、前記レジ
    スタバンクと同一数のフレーム状態記憶レジスタと、前
    記命令パイプラインに対してレジスタ指定線および第1
    のデータ転送線を介して接続され、前記複数のレジスタ
    バンクに連結される第1のデータ読み書き手段と、前記
    命令パイプラインに対してアドレス転送線を介して接続
    され、前記複数のフレームアドレス記憶レジスタに連結
    されるアドレス読み書き手段と、前記複数のレジスタバ
    ンクに連結され、前記メモリ装置に対して第2のデータ
    転送線を介して接続される第2のデータ読み書き手段
    と、前記命令パイプラインに対してフレーム状態転送線
    を介して接続され、前記複数のフレーム状態記憶レジス
    タに連結されるフレーム状態更新手段と、とを備えて構
    成されることを特徴とするマイクロプロセッサ。
  3. 【請求項3】 少なくともレジスタファイル装置と命令
    パイプラインとを備えて構成され、当該レジスタファイ
    ル装置と所定のメモリ装置との間において、データのロ
    ード/ストア処理を行うマイクロプロセッサにおいて、
    前記レジスタファイル装置が、それぞれ同一数のレジス
    タを含む複数のレジスタバンクと、前記レジスタバンク
    と同一数のフレームアドレス記憶レジスタと、前記レジ
    スタバンクと同一数のフレーム状態記憶レジスタと、前
    記レジスタバンクと同一数のレジスタバンク番号レジス
    タと、前記命令パイプラインに対して第1のデータ転送
    線を介して接続され、前記複数のレジスタバンクに連結
    される第1のデータ読み書き手段と、前記命令パイプラ
    インに対してアドレス転送線を介して接続され、前記複
    数のフレームアドレス記憶レジスタに連結されるアドレ
    ス読み書き手段と、前記複数のレジスタバンクに連結さ
    れ、前記メモリ装置に対して第2のデータ転送線を介し
    て接続される第2のデータ読み書き手段と、前記命令パ
    イプラインに対してフレーム状態転送線を介して接続さ
    れ、前記複数のフレーム状態記憶レジスタに連結される
    フレーム状態更新手段と、前記命令パイプラインに対し
    てレジスタ指定線を介して接続され、前記複数のレジス
    タバンク番号レジスタに連結されるレジスタバンク選択
    手段と、とを備えて構成されることを特徴とするマイク
    ロプロセッサ。
  4. 【請求項4】 前記レジスタバンク番号記憶レジスタ
    に、それぞれ対応するレジスタバンク番号を格納し、前
    記レジスタファイル装置をアクセスする際には、前記レ
    ジスタバンク番号を指定して、当該指定されたレジスタ
    バンク番号を前記レジスタバンク番号記憶レジスタに格
    納しているレジスタバンクにアクセスすることを特徴と
    する請求項3記載のマイクロプロセッサ。
  5. 【請求項5】 前記フレームをロードする際には、前記
    フレームアドレスと前記レジスタバンクとを指定して、
    前記フレームアドレスにより指定される前記フレーム
    を、前記メモリ装置から前記レジスタファイル装置内の
    指定された前記レジスタバンクにロードし、前記フレー
    ムアドレスを前記レジスタバンクに対応する前記フレー
    ムアドレス記憶レジスタに格納するロード方法を用いる
    ことと、前記フレームをストアする際には、前記レジス
    タバンクを指定して、指定された前記レジスタバンクに
    対応する前記フレームアドレス記憶レジスタに格納され
    ている前記フレームアドレスを用いて前記メモリ装置内
    の格納位置を指定し、前記フレ ームを前記レジスタファ
    イル装置から前記メモリ装置の指定された前記格納位置
    にストアする第1のストア方法を用いるか、または、前
    記フレームアドレスと前記レジスタバンクを指定して、
    指定された前記レジスタバンク内に格納された前記フレ
    ームを前記メモリ装置内の指定された前記フレームアド
    レスの格納位置にストアする第2のストア方法を用いる
    こと、を特徴とする請求項1、2、3および4記載のマ
    イクロプロセッサ。
  6. 【請求項6】 前記フレーム状態記憶レジスタに、対応
    する前記レジスタバンクに格納された前記フレームが有
    効か無効かを示す情報が記憶されており、前記レジスタ
    バンクに前記メモリ装置より前記フレームをロードする
    際に、当該レジスタバンクに対応する前記フレーム状態
    記憶レジスタに保持されている状態が有効であった場合
    に、前記レジスタバンクに記憶された前記フレームを、
    前記第1のストア方法により自動的に前記メモリ装置に
    ストアすることを特徴とする請求項5記載のマイクロプ
    ロセッサ。
  7. 【請求項7】 前記レジスタバンク内の前記レジスタに
    データの書き込みが行われた際に、対応する前記フレー
    ム状態記憶レジスタに記憶された状態が有効化し、前記
    レジスタバンクに新たな前記フレームをロードした際に
    前記フレーム状態記憶レジスタに記憶された状態を無効
    化することを特徴とする請求項2、3、4、5および6
    記載のマイクロプロセッサ。
JP6190447A 1994-08-12 1994-08-12 マイクロプロセッサ Expired - Fee Related JP2677202B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP6190447A JP2677202B2 (ja) 1994-08-12 1994-08-12 マイクロプロセッサ
EP95112797A EP0697651B1 (en) 1994-08-12 1995-08-14 Microprocessor having register file
DE69523690T DE69523690T2 (de) 1994-08-12 1995-08-14 Mikroprozessor mit Registerspeicher
US08/514,928 US5713038A (en) 1994-08-12 1995-08-14 Microprocessor having register file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6190447A JP2677202B2 (ja) 1994-08-12 1994-08-12 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH0855028A JPH0855028A (ja) 1996-02-27
JP2677202B2 true JP2677202B2 (ja) 1997-11-17

Family

ID=16258290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6190447A Expired - Fee Related JP2677202B2 (ja) 1994-08-12 1994-08-12 マイクロプロセッサ

Country Status (4)

Country Link
US (1) US5713038A (ja)
EP (1) EP0697651B1 (ja)
JP (1) JP2677202B2 (ja)
DE (1) DE69523690T2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US6223208B1 (en) * 1997-10-03 2001-04-24 International Business Machines Corporation Moving data in and out of processor units using idle register/storage functional units
US6145049A (en) * 1997-12-29 2000-11-07 Stmicroelectronics, Inc. Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set
US6986141B1 (en) * 1998-03-10 2006-01-10 Agere Systems Inc. Context controller having instruction-based time slice task switching capability and processor employing the same
US7444641B1 (en) * 1998-03-10 2008-10-28 Agere Systems Inc. Context controller having context-specific event selection mechanism and processor employing the same
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US6292888B1 (en) * 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US6487630B2 (en) * 1999-02-26 2002-11-26 Intel Corporation Processor with register stack engine that dynamically spills/fills physical registers to backing store
US6351808B1 (en) * 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
US6507862B1 (en) * 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6668285B1 (en) 1999-05-12 2003-12-23 Koninklijke Philips Electronics N.V. Object oriented processing with dedicated pointer memories
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
JP2004518183A (ja) 2000-07-14 2004-06-17 クリアウオーター・ネツトワークス・インコーポレイテツド マルチスレッド・システムにおける命令のフェッチとディスパッチ
KR100491323B1 (ko) * 2002-03-13 2005-05-24 (주) 네오시스트 독립 파이프라인에 의한 저장 방식을 갖는 전자 계산기
JP2005284646A (ja) 2004-03-29 2005-10-13 Toshiba Corp マイクロプロセッサ
JP2006092042A (ja) * 2004-09-21 2006-04-06 Sanyo Electric Co Ltd 情報処理装置及びコンテキスト切り替え方法
US9342350B2 (en) 2006-08-24 2016-05-17 Renesas Electronics Corporation System for selecting a task to be executed according to an output from a task control circuit
US8938590B2 (en) * 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US8209521B2 (en) * 2008-10-18 2012-06-26 Micron Technology, Inc. Methods of indirect register access including automatic modification of a directly accessible address register
GB2605665B (en) 2021-09-30 2023-11-01 Imagination Tech Ltd Graphics processor
GB2605664B (en) * 2021-09-30 2023-03-29 Imagination Tech Ltd Processor with hardware pipeline

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4627024A (en) * 1983-07-21 1986-12-02 Trw Inc. Window-addressable memory circuit
JPS6151243A (ja) * 1984-08-20 1986-03-13 Toshiba Corp レジスタ式演算処理装置
JPS63156236A (ja) * 1986-12-19 1988-06-29 Toshiba Corp レジスタ装置
JPH0769821B2 (ja) * 1988-03-04 1995-07-31 日本電気株式会社 情報処理装置におけるバイパスライン制御方式
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
JPH0454652A (ja) * 1990-06-25 1992-02-21 Nec Corp マイクロコンピュータ
US5226142A (en) * 1990-11-21 1993-07-06 Ross Technology, Inc. High performance register file with overlapping windows
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5557766A (en) * 1991-10-21 1996-09-17 Kabushiki Kaisha Toshiba High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
JP2568017B2 (ja) * 1992-03-12 1996-12-25 株式会社東芝 マイクロプロセッサ及びそれを使用したデータ処理システム
JP3110866B2 (ja) * 1992-06-01 2000-11-20 株式会社東芝 マイクロプロセッサ

Also Published As

Publication number Publication date
EP0697651A3 (en) 1997-07-23
EP0697651A2 (en) 1996-02-21
US5713038A (en) 1998-01-27
DE69523690D1 (de) 2001-12-13
EP0697651B1 (en) 2001-11-07
DE69523690T2 (de) 2002-08-01
JPH0855028A (ja) 1996-02-27

Similar Documents

Publication Publication Date Title
JP2677202B2 (ja) マイクロプロセッサ
JP3512678B2 (ja) キャッシュメモリ制御装置および計算機システム
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US5838945A (en) Tunable software control of harvard architecture cache memories using prefetch instructions
EP0409415A2 (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US5423048A (en) Branch target tagging
EP0747816A2 (en) Method and system for high performance multithread operation in a data processing system
JPS6136667B2 (ja)
JPH0588888A (ja) アドレス生成機構及びデータの事前取り出し方法
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
US11119925B2 (en) Apparatus and method for managing capability metadata
US20110208916A1 (en) Shared cache controller, shared cache control method and integrated circuit
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
US8266379B2 (en) Multithreaded processor with multiple caches
JP2523814B2 (ja) ム―ブアウト・システム
US5729723A (en) Data processing unit
US7062607B2 (en) Filtering basic instruction segments in a processor front-end for power conservation
EP0101718B1 (en) Computer with automatic mapping of memory contents into machine registers
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
US5933856A (en) System and method for processing of memory data and communication system comprising such system
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH0628258A (ja) マイクロプロセッサ
US20050138340A1 (en) Method and apparatus to reduce spill and fill overhead in a processor with a register backing store
EP0634717B1 (en) Data processing unit
JP4307604B2 (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: 19970624

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

Free format text: PAYMENT UNTIL: 20070725

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090725

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees