JPH0331937A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH0331937A JPH0331937A JP16797989A JP16797989A JPH0331937A JP H0331937 A JPH0331937 A JP H0331937A JP 16797989 A JP16797989 A JP 16797989A JP 16797989 A JP16797989 A JP 16797989A JP H0331937 A JPH0331937 A JP H0331937A
- Authority
- JP
- Japan
- Prior art keywords
- register
- physical
- registers
- management table
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000010586 diagram Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、複数個のレジスタを有するマイクロプロセ
ッサ(以下、CPUという、)に関するものである。
ッサ(以下、CPUという、)に関するものである。
第5図は従来の32ビツトCPUのレジスタ構成の一例
を示す構造図である0図において、501は現実にデー
タが読み書きされる物理レジスタの集合であるレジスタ
ファイル、502は間接ポインタアクセスレジスタ、5
03はスタックポインタ、504は64個のグローバル
レジスタ、505は128個のローカルレジスタ、50
6はバンクとしては使用できない領域、507はグロー
バルレジスタ領域を構成し直したレジスタバンク、50
8はローカルレジスタ領域を構成し直したレジスタバン
クである。各レジスタバンク507゜508は、それぞ
れ16個の物理レジスタで構成されている。
を示す構造図である0図において、501は現実にデー
タが読み書きされる物理レジスタの集合であるレジスタ
ファイル、502は間接ポインタアクセスレジスタ、5
03はスタックポインタ、504は64個のグローバル
レジスタ、505は128個のローカルレジスタ、50
6はバンクとしては使用できない領域、507はグロー
バルレジスタ領域を構成し直したレジスタバンク、50
8はローカルレジスタ領域を構成し直したレジスタバン
クである。各レジスタバンク507゜508は、それぞ
れ16個の物理レジスタで構成されている。
次に動作について説明する。第5図左側に示した構成に
よれば、グローバルレジスタ504は64から127の
固定番号を持っている。また、ローカルレジスタ505
は0から127の相対番号を持っている。そして、プロ
グラムではグローバルレジスタ504を固定番号で直接
アクセスする。また、ローカルレジスタ505をスタッ
クポインタ503を介してアクセスする。つまり、スタ
ックポインタ503に設定されている値を相対番号0と
して、相対番号0から127までをルーブさせて使用す
る。このような使い方をすることにより、ローカルレジ
スタ505はグローバルレジスタ504のスタックキャ
ッシュとしてレジスタ退避用に使用することができる。
よれば、グローバルレジスタ504は64から127の
固定番号を持っている。また、ローカルレジスタ505
は0から127の相対番号を持っている。そして、プロ
グラムではグローバルレジスタ504を固定番号で直接
アクセスする。また、ローカルレジスタ505をスタッ
クポインタ503を介してアクセスする。つまり、スタ
ックポインタ503に設定されている値を相対番号0と
して、相対番号0から127までをルーブさせて使用す
る。このような使い方をすることにより、ローカルレジ
スタ505はグローバルレジスタ504のスタックキャ
ッシュとしてレジスタ退避用に使用することができる。
また、レジスタファイル501は第5図右側に示すよう
に、レジスタバンク507,508(7)fi合として
使用することもできる。各レジスタバンク507,50
8は、それぞれ16個の物理レジスタで構成される。こ
の場合には、マルチタスク構成のプログラムにおいて、
各タスクと各レジスタバンク507,508とを対応さ
せた使い方ができる。
に、レジスタバンク507,508(7)fi合として
使用することもできる。各レジスタバンク507,50
8は、それぞれ16個の物理レジスタで構成される。こ
の場合には、マルチタスク構成のプログラムにおいて、
各タスクと各レジスタバンク507,508とを対応さ
せた使い方ができる。
従来のマイクロプロセッサは以上のように構成されてい
るので、グローバルレジスタ504とローカルレジスタ
505とで使用する場合にはレジスタの使用効率が低く
、一方、レジスタバンク507.508として使用する
場合には、レジスタバンク507.508内のレジスタ
数が固定されていて、タスクで使用するレジスタに過不
足が生したり、最適配置しにくいなどの課題があった。
るので、グローバルレジスタ504とローカルレジスタ
505とで使用する場合にはレジスタの使用効率が低く
、一方、レジスタバンク507.508として使用する
場合には、レジスタバンク507.508内のレジスタ
数が固定されていて、タスクで使用するレジスタに過不
足が生したり、最適配置しにくいなどの課題があった。
この発明は上記のような課題を解消するためになされた
もので、レジスタファイル上でレジスタを動的に配置で
きるとともに、コンチクストスイッチにおけるレジスタ
の退避を削減することができるマイクロプロセッサを得
ることを目的とする。
もので、レジスタファイル上でレジスタを動的に配置で
きるとともに、コンチクストスイッチにおけるレジスタ
の退避を削減することができるマイクロプロセッサを得
ることを目的とする。
この発明に係るマイクロプロセッサは、複数個の物理レ
ジスタから成るレジスタファイルと、このレジスタファ
イル内の各物理レジスタを示す物理IDとプログラムで
使用する論理レジスタの論理IDとを対応づけるレジス
タ管理テーブルと、プログラムを構成するプロセスで使
用する論理レジスタの使用状況を示すプロセス情Wi領
域とを備えたものである。なお、ここでは、実行にあた
ってコンチクストスイッチが必要となるプログラム中の
単位をプロセスという。
ジスタから成るレジスタファイルと、このレジスタファ
イル内の各物理レジスタを示す物理IDとプログラムで
使用する論理レジスタの論理IDとを対応づけるレジス
タ管理テーブルと、プログラムを構成するプロセスで使
用する論理レジスタの使用状況を示すプロセス情Wi領
域とを備えたものである。なお、ここでは、実行にあた
ってコンチクストスイッチが必要となるプログラム中の
単位をプロセスという。
この発明におけるマイクロプロセッサは、プログラムが
論理IDでアクセスした論理レジスタから、レジスタ管
理テーブルを参照して物理レジスタを特定することによ
り、レジスタファイル上で論理レジスタの動的配置を可
能にし、物理レジスタの使用効率を向上させる。
論理IDでアクセスした論理レジスタから、レジスタ管
理テーブルを参照して物理レジスタを特定することによ
り、レジスタファイル上で論理レジスタの動的配置を可
能にし、物理レジスタの使用効率を向上させる。
以下、この発明の一実施例を図について説明する。第1
図において、101は複数の物理レジスタ108から成
るレジスタファイル、102はレジスタ管理テーブルで
あり、103はレジスタ相対ID(以下、frnという
。)、104は論理レジスタを示すレジスタ論理ID(
以下、論理IDという。)、105はR0〜R,1の物
理IDに対するオフセント値が設定されるレジスタ物理
IDオフセフ)ポインタ(設定値をroffで示す。)
、106はレジスタ使用数レジスタ(設定値をn (r
)で示す。)、107は次に実行されるプロセスで使用
するレジス゛りの先頭物理IDが設定される次レジスタ
バンクオフセットポインタ(以下、nex tという、
)である、この場合には、roff 105、n(r)
106およびnextl07がプロセス情報領域である
。
図において、101は複数の物理レジスタ108から成
るレジスタファイル、102はレジスタ管理テーブルで
あり、103はレジスタ相対ID(以下、frnという
。)、104は論理レジスタを示すレジスタ論理ID(
以下、論理IDという。)、105はR0〜R,1の物
理IDに対するオフセント値が設定されるレジスタ物理
IDオフセフ)ポインタ(設定値をroffで示す。)
、106はレジスタ使用数レジスタ(設定値をn (r
)で示す。)、107は次に実行されるプロセスで使用
するレジス゛りの先頭物理IDが設定される次レジスタ
バンクオフセットポインタ(以下、nex tという、
)である、この場合には、roff 105、n(r)
106およびnextl07がプロセス情報領域である
。
次に動作について説明する。物理IDは、frn103
とroff 105とから(1)式のように決定される
。
とroff 105とから(1)式のように決定される
。
物理I D = frn + roff (
11マイクロプロセツサは、レジスタ管理テーブル10
2において、出現順にfrn103を割り当てていく。
11マイクロプロセツサは、レジスタ管理テーブル10
2において、出現順にfrn103を割り当てていく。
そして、コンチクストスイッチ等によりレジスタ退避が
必要な場合には、レジスタ管理テーブル102の内容を
、レジスタファイルまたはメモリ上のスタックに退避す
る。また、roff 105をnextl O7の値で
置き換え、次プロセスでは、レジスタファイル101の
未使用領域の先頭から物理レジスタ108を割り当てら
れるようにしておく、第1図に示した例は、roff
105が0となっていて、レジスタファイル101の先
頭からレジスタの割り当てがなされることを示している
。
必要な場合には、レジスタ管理テーブル102の内容を
、レジスタファイルまたはメモリ上のスタックに退避す
る。また、roff 105をnextl O7の値で
置き換え、次プロセスでは、レジスタファイル101の
未使用領域の先頭から物理レジスタ108を割り当てら
れるようにしておく、第1図に示した例は、roff
105が0となっていて、レジスタファイル101の先
頭からレジスタの割り当てがなされることを示している
。
そして、現在、r2とroの2個の論理レジスタが物理
レジスタ108に割り当てられたことを示している。つ
まり、n(r) 1.06は2となっている。さらに
、nextl O7は3となっていて、次プロセスはレ
ジスタファイル10Iiの3番目(Of−から計数して
)から物理レジスタ108の割り当てが行われることを
示している。
レジスタ108に割り当てられたことを示している。つ
まり、n(r) 1.06は2となっている。さらに
、nextl O7は3となっていて、次プロセスはレ
ジスタファイル10Iiの3番目(Of−から計数して
)から物理レジスタ108の割り当てが行われることを
示している。
なお、上記実施例はプログラムでは論理レジスタをアク
セスし、マイクロプロセッサがレジスタ管理テーブル1
02を参照してレジスタファイル101上の該当する物
理レジスタ108をアクセスするように構成したが、第
2図に示すように、レジスタファイル101とは別に物
理レジスタ領域201を用意して、通常は、プログラム
でこの領域を直接アクセスするようにしてもよい。第2
図において、202は論理レジスタと1対1に対応する
テンポラリ物理レジスタであり、その他のものは同一符
号を付して第1図に示したものと同一のものである。プ
ログラムでは、テンポラリ物理レジスタ202を直接ア
クセスするが、その時にプロセッサは、レジスタ管理テ
ーブル102に論理レジスタの出現順に新たなfrn1
03を設定したり、対応するレジスタファイル101中
の物理レジスタ108の内容を更新したりする。そして
、レジスタの退避が必要な場合には、先の実施例と同様
に、レジスタ管理テーブル102をレジスタファイル1
01やスタックに退避する。
セスし、マイクロプロセッサがレジスタ管理テーブル1
02を参照してレジスタファイル101上の該当する物
理レジスタ108をアクセスするように構成したが、第
2図に示すように、レジスタファイル101とは別に物
理レジスタ領域201を用意して、通常は、プログラム
でこの領域を直接アクセスするようにしてもよい。第2
図において、202は論理レジスタと1対1に対応する
テンポラリ物理レジスタであり、その他のものは同一符
号を付して第1図に示したものと同一のものである。プ
ログラムでは、テンポラリ物理レジスタ202を直接ア
クセスするが、その時にプロセッサは、レジスタ管理テ
ーブル102に論理レジスタの出現順に新たなfrn1
03を設定したり、対応するレジスタファイル101中
の物理レジスタ108の内容を更新したりする。そして
、レジスタの退避が必要な場合には、先の実施例と同様
に、レジスタ管理テーブル102をレジスタファイル1
01やスタックに退避する。
また、第3図に示すように、レジスタ管理テーブル10
2にプロセス情報を設定する領域をさらに追加してもよ
い。第3図において、301はプロセス情報領域であり
、例えば、マルチタスク処理時のタスク夏りが設定され
る。302はタスクごとのレジスタ使用数が設定される
n (r) 、303はタスクごとのroff、304
は現在実行中のタスクIDが設定される実行中プロセス
IDレジスタである。この場合には、タスク切換え時に
、つまりコンチフストスインチを行う時にタスクIDを
レジスタ管理テーブル102のプロセスID領域301
に設定し、同時にn(r)302およびroff303
に該当する値を設定し、実行中プロセスIDレジスタ3
04に次タスクのタスクIDを設定する。そして、ある
タスクの処理で論理レジスタがアクセスされた時に、マ
イクロプロセッサは実行中プロセスIDレジスタ304
に設定されているタスクIDとプロセスID領域301
に設定されているタスクIDとを照合して、レジスタフ
ァイル101のアクセスすべきレジスタを決定する。
2にプロセス情報を設定する領域をさらに追加してもよ
い。第3図において、301はプロセス情報領域であり
、例えば、マルチタスク処理時のタスク夏りが設定され
る。302はタスクごとのレジスタ使用数が設定される
n (r) 、303はタスクごとのroff、304
は現在実行中のタスクIDが設定される実行中プロセス
IDレジスタである。この場合には、タスク切換え時に
、つまりコンチフストスインチを行う時にタスクIDを
レジスタ管理テーブル102のプロセスID領域301
に設定し、同時にn(r)302およびroff303
に該当する値を設定し、実行中プロセスIDレジスタ3
04に次タスクのタスクIDを設定する。そして、ある
タスクの処理で論理レジスタがアクセスされた時に、マ
イクロプロセッサは実行中プロセスIDレジスタ304
に設定されているタスクIDとプロセスID領域301
に設定されているタスクIDとを照合して、レジスタフ
ァイル101のアクセスすべきレジスタを決定する。
さらに、第4図に示すように、レジスタファイル101
の各物理レジスタ108の使用状況を示すレジスタ使用
マツプ401を設けてもよい。マイクロプロセッサは、
コンチフストスインチの際に、レジスタバンクID40
2の内容をもとにレジスタマツプ401をサーチすれば
、roff 105、n(r)106およびnextl
O7の値を算出することができる。従って、コンチフ
ストスインチの際にこれらを退避しなくても済む。
の各物理レジスタ108の使用状況を示すレジスタ使用
マツプ401を設けてもよい。マイクロプロセッサは、
コンチフストスインチの際に、レジスタバンクID40
2の内容をもとにレジスタマツプ401をサーチすれば
、roff 105、n(r)106およびnextl
O7の値を算出することができる。従って、コンチフ
ストスインチの際にこれらを退避しなくても済む。
なお、以上の説明において、マイクロプロセンサの制御
内容はマイクロプログラムもしくは布線論理にて容易に
実現できる。
内容はマイクロプログラムもしくは布線論理にて容易に
実現できる。
以上のように、この発明によればマイクロプロセッサを
レジスタ管理テーブルを介してレジスタファイルを参照
するようにし、かつ、実行にあたってコンチフストスイ
ンチを必要とするプロセスに関する情報を設定する領域
を有して構成したので、レジスタの使用効率が高く、し
かも、コンチフストスインチ時のレジスタ退避を削減で
きるものが得られる効果がある。
レジスタ管理テーブルを介してレジスタファイルを参照
するようにし、かつ、実行にあたってコンチフストスイ
ンチを必要とするプロセスに関する情報を設定する領域
を有して構成したので、レジスタの使用効率が高く、し
かも、コンチフストスインチ時のレジスタ退避を削減で
きるものが得られる効果がある。
第1図はこの発明の一実施例によるマイクロプロセッサ
のレジスタ構成を示す構成図、第2図〜第4図はそれぞ
れこの発明の他の実施例によるマイクロプロセッサのレ
ジスタファイルを示す構成図、第5図は従来のマイクロ
プロセッサのレジスタ構成を示す構成図である。 101はレジスタファイル、102はレジスタ管理テー
ブル、105はレジスタ物理IDオフセットポインタ(
プロセス情報領域)、106はレジスタ使用数レジスタ
(プロセス情報領域)、107は次レジスタバンクオフ
セットポインタ(プロセス情報領域)、108は物理レ
ジスタ。 なお、図中、同一符号は同一、または相当部分を示す。 第 1 図 01 レブス々フ、(lし 02゛ レツス・9管)里テーア)し 05、し;・スタ匂工里IDオフtットホ゛イフタ(プ
ロセス・)を幸g↑負域)06、レジ゛スタづ犬屑数し
ジス9()0ロセスノ虜t?艮季負域)07゛;大しう
;゛スタ)\フクオフセットボAフダ(アotス横辛天
1負緘)08:す玉里し5スタ 第 図 第 図 第 図 第 5
のレジスタ構成を示す構成図、第2図〜第4図はそれぞ
れこの発明の他の実施例によるマイクロプロセッサのレ
ジスタファイルを示す構成図、第5図は従来のマイクロ
プロセッサのレジスタ構成を示す構成図である。 101はレジスタファイル、102はレジスタ管理テー
ブル、105はレジスタ物理IDオフセットポインタ(
プロセス情報領域)、106はレジスタ使用数レジスタ
(プロセス情報領域)、107は次レジスタバンクオフ
セットポインタ(プロセス情報領域)、108は物理レ
ジスタ。 なお、図中、同一符号は同一、または相当部分を示す。 第 1 図 01 レブス々フ、(lし 02゛ レツス・9管)里テーア)し 05、し;・スタ匂工里IDオフtットホ゛イフタ(プ
ロセス・)を幸g↑負域)06、レジ゛スタづ犬屑数し
ジス9()0ロセスノ虜t?艮季負域)07゛;大しう
;゛スタ)\フクオフセットボAフダ(アotス横辛天
1負緘)08:す玉里し5スタ 第 図 第 図 第 図 第 5
Claims (1)
- 複数個の物理レジスタから成るレジスタファイルと、前
記各物理レジスタを表示する物理IDを、プログラムで
使用する論理レジスタの論理IDと対応づけるレジスタ
管理テーブルと、前記プログラムを構成するプロセスで
使用する前記論理レジスタに関する使用状況を示すプロ
セス情報領域とを備えたマイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16797989A JPH0331937A (ja) | 1989-06-29 | 1989-06-29 | マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16797989A JPH0331937A (ja) | 1989-06-29 | 1989-06-29 | マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0331937A true JPH0331937A (ja) | 1991-02-12 |
Family
ID=15859563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16797989A Pending JPH0331937A (ja) | 1989-06-29 | 1989-06-29 | マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0331937A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011238271A (ja) * | 2004-07-13 | 2011-11-24 | Nvidia Corp | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
-
1989
- 1989-06-29 JP JP16797989A patent/JPH0331937A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011238271A (ja) * | 2004-07-13 | 2011-11-24 | Nvidia Corp | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8250348B2 (en) | Methods and apparatus for dynamically switching processor mode | |
US4843541A (en) | Logical resource partitioning of a data processing system | |
EP0213843B1 (en) | Digital processor control | |
JPS6027964A (ja) | メモリアクセス制御回路 | |
JP2018506790A (ja) | マルチコアシステムのメモリ同期のためのシステム及び方法 | |
US3982231A (en) | Prefixing in a multiprocessing system | |
KR100194850B1 (ko) | 디지털 신호 처리 장치 | |
JPH0331937A (ja) | マイクロプロセッサ | |
US4984150A (en) | Virtual memory control management system | |
JP2941583B2 (ja) | データ処理装置 | |
JP3520527B2 (ja) | データ管理方法 | |
JPS6243734A (ja) | マイクロプロセツサ | |
JP2596185B2 (ja) | アカウント採取方式 | |
JP2742245B2 (ja) | 並列計算機 | |
JPH02178748A (ja) | 仮想記憶計算システムの仮想記憶制御方法 | |
JPS62106548A (ja) | デ−タ処理装置 | |
JPH05108374A (ja) | マルチタスク実行装置 | |
Killeen et al. | Reducing interprocess communication overhead through register windows | |
JPH0290228A (ja) | マイクロプロセッサ | |
JPS60222942A (ja) | マイクロプロセツサ | |
JPH0194469A (ja) | 並列処理方式 | |
JPS63118852A (ja) | 仮想記憶装置の制御方式 | |
JPH09325910A (ja) | マイクロコンピュータ | |
JPH03206525A (ja) | シングルチップマイコンのスタック方式 | |
JPH08339330A (ja) | キャッシュメモリをレジスタとして使用したデータ処理方法および装置 |