JP3645671B2 - 命令バッファを有するプロセッサ装置 - Google Patents
命令バッファを有するプロセッサ装置 Download PDFInfo
- Publication number
- JP3645671B2 JP3645671B2 JP28656796A JP28656796A JP3645671B2 JP 3645671 B2 JP3645671 B2 JP 3645671B2 JP 28656796 A JP28656796 A JP 28656796A JP 28656796 A JP28656796 A JP 28656796A JP 3645671 B2 JP3645671 B2 JP 3645671B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- context
- instruction buffer
- buffer
- processor device
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は,異なるコンテキスト演算等の処理を同時に実行することが可能な命令バッファを有するプロセッサ装置に関するものである。
【0002】
【従来の技術】
図6は,主記憶装置または下位キャッシュ装置に接続された従来のマイクロプロセッサの構成図である。
【0003】
マイクロプロセッサ100は,例えば図6に示すように,メモリ管理装置(MMU)200,キャッシュ装置300を介して主記憶装置400に接続される。マイクロプロセッサ100は,主記憶装置400から読み出した命令を一時的に格納する命令バッファ110と,命令を実行する命令実行部111とを備えている。
【0004】
マイクロプロセッサ100が主記憶装置400にデータ供給要求を出す場合,仮想アドレスを用いてデータ供給要求を出す。この要求に対して,メモリ管理装置200は,メモリ管理装置200内で現在実行しているコンテキスト番号に従って,仮想アドレス空間から物理アドレス空間へのマッピングを行い,主記憶装置400へのメモリアクセスを行い,データ(命令)をアクセスする。
【0005】
オペレーティング・システム(OS)により,コンテキストのスイッチが行われた場合,レジスタ等のマイクロプロセッサ100内部の情報を主記憶装置400上に退避した後,新しいコンテキストの情報を主記憶装置400上から読み込み,新しいコンテキストのもとで命令の実行を続ける。
【0006】
なお,コンテキストは,プログラムの実行に関するマイクロプロセッサの内部状態,すなわちプログラムカウンタやその他のプログラムの実行に必要なレジスタの値などからなる命令の実行環境に関する情報である。
【0007】
【発明が解決しようとする課題】
図6に示す構成の場合,一つのマイクロプロセッサ100は,単一の仮想アドレス空間のみしかサポートしていないため,コンテキストスイッチの際に,現在のコンテキストでのマイクロプロセッサ内部の状態の主記憶装置400への書き込みと,新しいコンテキストでのマイクロプロセッサ内部の状態の主記憶装置400からの読み出しとを行う必要がある。
【0008】
そこで,本発明は,マイクロプロセッサ内部の状態を主記憶装置内で保持するためのオーバヘッドを少なくすることを目的とする。
【0009】
【課題を解決するための手段】
図1は,本発明の構成例を示す図である。
マイクロプロセッサ1は,命令バッファ10と命令の実行環境に関するコンテキストごとに命令を実行する命令実行部16a,16b,…とを持つ。命令バッファ10は,読み出した命令を一時的に格納する命令保持部12と,読み出した各命令と共にその命令を実行すべき命令実行部16a,16b,…のコンテキストを識別する情報を保持するコンテキスト情報保持部11とを持つ。
【0010】
また,命令バッファ10は,コンテキストに応じて仮想アドレスから物理アドレスへの変換を行い,キャッシュ装置2を介して間接的に,または直接的に主記憶装置3から命令を読み出すメモリアクセス制御部13を持つ。このメモリアクセス制御部13は,従来のメモリ管理装置が持つMMU機能を有するものである。
【0011】
命令実行部16a〜16cは,あらかじめ割り当てられたコンテキストを識別するコンテキスト識別子を保持するコンテキスト識別子保持部17a〜17cを持ち,このコンテキスト識別子保持部17a〜17cが保持するコンテキスト識別子と,命令バッファ10から命令と共に供給されるコンテキストを識別する情報とを比較し,一致する場合に命令を実行する制御を行う比較部18a〜18cを持つ。
【0012】
また,命令バッファ10は,主記憶装置3から読み出すべき命令のコンテキストをラウンドロビン方式により順番に決定するコンテキスト決定部14を持つ。この場合,コンテキスト決定部14は,例えばコンテキストが3個存在したとすると,1番目のコンテキストの命令の読み出し,次に2番目のコンテキストの命令の読み出し,次に3番目のコンテキストの命令の読み出し,その次には再度1番目のコンテキストに戻って,1番目のコンテキストの命令の読み出し,…というように順番に,読み出し対象とする命令をどのコンテキストのものにするかを決定する。
【0013】
このように,ラウンドロビン方式でコンテキストを決定する代わりに,あらかじめオペレーティング・システム等から指定されたコンテキストの優先順位(優先度の順位)に従って,命令を読み出すべきコンテキストを決定する方式を用いることもできる。この方式では,コンテキスト優先順位保持部15がオペレーティング・システム等から設定されたコンテキストの優先順位情報を保持し,コンテキスト決定部14は,その優先順位に従って,優先順位が高いコンテキストの命令を優先順位が低いコンテキストの命令よりも優先的に読み出すように,コンテキストの決定を行う。
【0014】
さらに,各命令実行部16a〜16cは,複数の命令実行用の演算器を持ち,いわゆるスーパスカラ方式などの技術により同時に複数のコンテキストの命令を実行する機構を備えていてもよい。
【0015】
以上のように,命令バッファ10は,キャッシュ装置2または主記憶装置3から読み出した命令がどのコンテキストで実行されるべきかというコンテキスト情報をコンテキスト情報保持部11に保持することができ,複数の仮想アドレス空間を,各命令実行部16の資源ごとに割り当てることができる。
【0016】
マイクロプロセッサ1が命令の読み出しを行う際には,命令バッファ10内のメモリアクセス制御部13により,コンテキスト決定部14が決定したコンテキストに従って仮想アドレスから物理アドレスへの変換を行う。この物理アドレスにより,マイクロプロセッサ1からメモリアクセス要求が出され,要求した命令がキャッシュ装置2または主記憶装置3から供給された場合,マイクロプロセッサ1内の命令バッファ10では,その命令を命令保持部12に保持すると共に,コンテキスト情報をコンテキスト情報保持部11に保持する。
【0017】
命令バッファ10が,命令実行部16から命令供給要求を受けた場合,命令バッファ10は,命令保持部12に保持している命令と共に,コンテキスト情報保持部11のコンテキスト情報を命令実行部16に供給する。
【0018】
命令実行部16では,どのメモリ空間で命令を実行すべきかを示すコンテキスト識別子をコンテキスト識別子保持部17に保持し,これと命令バッファ10から供給されるコンテキスト情報とを比較部18によって比較し,比較の結果が真であるならば,供給された命令を実行する。
【0019】
以上により,一つのマイクロプロセッサ1上で,複数の仮想アドレス空間の命令を実行することができるため,主記憶装置3へのマイクロプロセッサ1内部の情報の書き込みおよび読み出しにかかるオーバヘッドを少なくすることが可能になる。
【0020】
【発明の実施の形態】
図2は,本発明の実施の形態であるマイクロプロセッサの構成を示すブロック図,図3は,マイクロプロセッサ内のメモリアクセス制御部のブロック図,図4は,マイクロプロセッサが実行する命令の例を示す図,図5は,マイクロプロセッサの動作を示すタイムチャートである。
【0021】
図2に示すマイクロプロセッサ1のメモリアクセス制御部13は,例えば図3に示すような構成になっており,割り当てられたコンテキストごとに仮想アドレスを物理アドレスに変換するMMU機能部41〜43を持つ。各MMU機能部41〜43は,仮想アドレスレジスタ40を持ち,その仮想アドレスを物理アドレスに変換するためのTLB(Translation-Lookaside Buffer)44とページテーブル(Page Table)45とを持つ。
【0022】
各MMU機能部41〜43が仮想アドレスを物理アドレスに変換する場合には,仮想アドレスの仮想ページ番号(Virtual Page Number)によりTLB44を検索し,以前のアドレス変換情報が存在することによりヒットした場合には,そのTLB44から出力される物理ページアドレスと,仮想アドレスレジスタ40が保持する仮想アドレス中のページオフセットとを加算することにより物理アドレスを求める。
【0023】
TLB44の検索でヒットしなかった場合には,仮想ページ番号によりページテーブル45を検索し,検索結果とページオフセットとを加算することにより物理アドレスを求める。
【0024】
図2に示すメモリアクセス制御部13’は,命令オペランドで指定されたデータのロード/ストア用のアクセスを制御する部分で,仮想アドレスから物理アドレスへの変換機構は,命令フェッチ用のメモリアクセス制御部13と同様な構成になっている。
【0025】
マイクロプロセッサ1が,2つの命令実行部16a,16bを使用する場合について説明する。各命令実行部16a,16bは,それぞれ同時に複数の命令を実行することができる構造とすることも可能であり,この場合には,命令バッファ10から発行された命令は,実行が可能であれば,一つの命令実行部16で同時に複数実行されることもある。
【0026】
例えば,図2に示すように,命令実行部16aが2つの加算用演算器19,20を持つとすると,命令バッファ10からの複数の加算命令を同時に実行することが可能である。
【0027】
図2に示すマイクロプロセッサ1の動作は,以下のとおりである。
命令実行部16aには,オペレーティング・システムなどにより,事前にコンテキスト識別子保持部17aにコンテキスト識別子として“1”が設定され,命令実行部16bには,コンテキスト識別子保持部17bにコンテキスト識別子として“2”が設定されているものとする。
【0028】
また,コンテキスト識別子が“1”のプログラム(以下,Context1という)が図4(A)のとおりであり,コンテキスト識別子が“2”のプログラム(以下,Context2という)が図4(B)のとおりであったとする。
【0029】
Context1では,仮想アドレスの1000番地でAdd命令(加算命令)を,1001番地でSub命令(減算命令)を,1002番地でShift命令(シフト命令)を実行する。一方,Context2では,仮想アドレスの1000番地でFAdd命令(浮動小数点型加算命令)を,1001番地でFMul命令(浮動小数点型乗算命令)を,1002番地でFDiv命令(浮動小数点型除算命令)を実行する。
【0030】
これらのコンテキストには,あらかじめオペレーティング・システム等によって指定された優先順位が付けられており,命令バッファ10は,その優先順位に従って,優先順位の高いものが低いものより多く命令が実行されるように,命令の読み出しおよび供給を行う。
【0031】
図4(C)は,Context2の優先順位がContext1の優先順位よりも高い場合に,命令バッファ10の命令保持部12に主記憶装置3から読み出されて保持される命令列の例を示している。ここでは最初,Context1の命令を読み出しているが,Context2の優先順位が高いので,次にはContext2の命令を2回連続して読み出している。なお,優先順位を与えずに,ラウンドロビン方式により順番に読み出すような実施も可能である。
【0032】
これらの命令実行時のタイムチャートを図5に示す。
T1サイクルにおいて,Context1における仮想アドレス1000番地が物理アドレス11000番地に変換され,メモリアクセスが行われる。T2サイクルにおいて,11000番地の命令(Add)が,命令バッファ10に取り込まれる。
【0033】
命令バッファ10は,コンテキスト情報(識別子“1”)を保持し,T3サイクルにおいて命令実行部16aの比較部18aは,自分に割り当てられたコンテキスト識別子保持部17a内のコンテキスト識別子と,命令バッファ10からのコンテキスト情報とを比較し,比較結果が真となるため,命令実行部16aによりそのAdd命令が実行される。命令実行部16bでも同様にコンテキスト識別子の比較を行うが,比較結果が偽となるため,命令実行部16bではそのAdd命令は破棄され実行されない。
【0034】
以上の処理と並列にT2サイクルにおいて,Context2における仮想アドレス1000番地が物理アドレス21000番地に変換され,メモリアクセスが行われる。T3サイクルにおいて,21000番地の命令(FAdd)が,命令バッファ10に取り込まれる。
【0035】
命令バッファ10は,コンテキスト情報(識別子“2”)を保持し,T4サイクルにおいて命令実行部16bの比較部18bは,自分に割り当てられたコンテキスト識別子保持部17b内のコンテキスト識別子と,命令バッファ10からのコンテキスト情報とを比較し,比較結果が真となるため,命令実行部16bによりそのFAdd命令が実行される。
【0036】
以下,同様に命令が実行されていく。
【0037】
【発明の効果】
以上説明したように,本発明によれば,一つのマイクロプロセッサ上で複数の仮想アドレスの命令を実行することができるため,主記憶装置上へのマイクロプロセッサ内部の情報の書き込み,読み出しにかかるオーバヘッドを少なくすることができる。さらに,命令バッファにコンテキストの優先情報を保持させることにより,優先順位の高いコンテキストの命令を優先的に実行することができ,命令実行の効率化が図れるようになる。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の実施の形態であるマイクロプロセッサの構成を示すブロック図である。
【図3】マイクロプロセッサ内のメモリアクセス制御部のブロック図である。
【図4】マイクロプロセッサが実行する命令の例を示す図である。
【図5】マイクロプロセッサの動作を示すタイムチャートである。
【図6】従来技術の例を示す図である。
【符号の説明】
1 マイクロプロセッサ
2 キャッシュ装置
3 主記憶装置
10 命令バッファ
11 コンテキスト情報保持部
12 命令保持部
13 メモリアクセス制御部
14 コンテキスト決定部
15 コンテキスト優先順位保持部
16 命令実行部
17 コンテキスト識別子保持部
18 比較部
Claims (5)
- 主記憶装置から読み出した命令を一時的に格納する命令バッファと,命令の実行環境に関するコンテキストごとに命令を実行する命令実行部とを有するプロセッサ装置において,
前記命令バッファは,
コンテキストに応じて仮想アドレスから物理アドレスへの変換を行い,主記憶装置から命令を読み出す手段と,
読み出した各命令と共にその命令を実行すべき前記命令実行部のコンテキストを識別する情報を保持する手段とを備える
ことを特徴とする命令バッファを有するプロセッサ装置。 - 請求項1記載の命令バッファを有するプロセッサ装置において,
前記命令実行部は,
あらかじめ割り当てられたコンテキストの識別情報を保持する手段と,
前記命令バッファから命令と共に供給されるコンテキストを識別する情報と自命令実行部が保持するコンテキストの識別情報とを比較し,一致する場合に命令を実行する手段とを備える
ことを特徴とする命令バッファを有するプロセッサ装置。 - 請求項1または請求項2記載の命令バッファを有するプロセッサ装置において,
前記命令バッファは,
主記憶装置から読み出すべき命令のコンテキストをラウンドロビン方式により順番に決定する手段を備える
ことを特徴とする命令バッファを有するプロセッサ装置。 - 請求項1または請求項2記載の命令バッファを有するプロセッサ装置において,
前記命令バッファは,
設定されたコンテキストの優先順位を保持する手段と,
前記優先順位に従って,優先順位が高いコンテキストの命令を優先順位が低いコンテキストの命令よりも多く読み出す制御を行う手段とを備える
ことを特徴とする命令バッファを有するプロセッサ装置。 - 請求項1記載の命令バッファを有するプロセッサ装置において,
前記命令実行部は,
同時に複数のコンテキストの命令を実行する手段を備える
ことを特徴とする命令バッファを有するプロセッサ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28656796A JP3645671B2 (ja) | 1996-10-29 | 1996-10-29 | 命令バッファを有するプロセッサ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28656796A JP3645671B2 (ja) | 1996-10-29 | 1996-10-29 | 命令バッファを有するプロセッサ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10133872A JPH10133872A (ja) | 1998-05-22 |
| JP3645671B2 true JP3645671B2 (ja) | 2005-05-11 |
Family
ID=17706088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28656796A Expired - Fee Related JP3645671B2 (ja) | 1996-10-29 | 1996-10-29 | 命令バッファを有するプロセッサ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3645671B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1181648A1 (en) * | 1999-04-09 | 2002-02-27 | Clearspeed Technology Limited | Parallel data processing apparatus |
| US7543126B2 (en) * | 2005-08-31 | 2009-06-02 | International Business Machines Corporation | Apparatus, system, and method for implementing protected virtual memory subcontexts |
-
1996
- 1996-10-29 JP JP28656796A patent/JP3645671B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH10133872A (ja) | 1998-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5372994B2 (ja) | アーキテクチャイベントの間のプロセッサリソースの保持 | |
| JP3672634B2 (ja) | データ処理装置 | |
| US4811215A (en) | Instruction execution accelerator for a pipelined digital machine with virtual memory | |
| US6021489A (en) | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture | |
| JP3871884B2 (ja) | 記憶からロードへの転送のための機構 | |
| US10146545B2 (en) | Translation address cache for a microprocessor | |
| JP4162825B2 (ja) | マイクロプロセッサ | |
| US6345351B1 (en) | Maintenance of speculative state of parallel executed jobs in an information processing system | |
| JPH10232834A (ja) | キャッシュメモリを作動する方法およびコンピュータシステム | |
| JPS61206057A (ja) | アドレス変換装置 | |
| JPS6341100B2 (ja) | ||
| US5226132A (en) | Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system | |
| JP2001034537A (ja) | アドレス変換回路 | |
| JPH04213135A (ja) | 外部メモリアクセスシステム | |
| US5715420A (en) | Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer | |
| JP3645671B2 (ja) | 命令バッファを有するプロセッサ装置 | |
| JP2000020311A (ja) | 情報処理装置 | |
| JPS626261B2 (ja) | ||
| JPS61160160A (ja) | 仮想計算機システムにおけるアドレツシング制御装置 | |
| JPH0552539B2 (ja) | ||
| CN120492402A (zh) | 一种向量值预测器实现方法、处理器及电子设备 | |
| JP2003058421A (ja) | プロセッサ及びコンピュータシステム | |
| JPH07152653A (ja) | データ処理装置 | |
| JPH0766352B2 (ja) | 仮想計算機システム | |
| JPS5975483A (ja) | バツフア・ストレ−ジ制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050124 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050201 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050204 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080210 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120210 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130210 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130210 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |