JPH1165923A - 演算処理装置およびメモリアクセス方法 - Google Patents

演算処理装置およびメモリアクセス方法

Info

Publication number
JPH1165923A
JPH1165923A JP21962397A JP21962397A JPH1165923A JP H1165923 A JPH1165923 A JP H1165923A JP 21962397 A JP21962397 A JP 21962397A JP 21962397 A JP21962397 A JP 21962397A JP H1165923 A JPH1165923 A JP H1165923A
Authority
JP
Japan
Prior art keywords
data
register
stored
address
memory
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
JP21962397A
Other languages
English (en)
Inventor
Yoshihiko Imamura
義彦 今村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP21962397A priority Critical patent/JPH1165923A/ja
Publication of JPH1165923A publication Critical patent/JPH1165923A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 レジスタ資源を効率的に利用でき、特に汎用
レジスタの機能を適切に発揮できる演算処理装置を提供
する。 【解決手段】 それぞれページを記憶するバンク161
〜164と、メモリアドレス空間上のアドレスを記憶す
るDPレジスタ149と、データレジスタr0と、バン
ク161〜164に記憶されたページのメモリアドレス
空間内の先頭アドレスを記憶し、当該記憶された先頭ア
ドレスと、DPレジスタ149に記憶されたアドレスと
を比較し、前記比較の結果に基づいて複数のバンクのい
ずれかにアクセス対象となるページが存在するか否かを
判別し、判別の結果、アクセス対象となるページが複数
のバンクのいずれかに存在する場合に、アクセス対象と
なるページが記憶されたバンクとデータレジスタr0
の間で、DPレジスタ149に記憶されたアドレスを用
いてデータの転送を行うように制御するバンク選択モジ
ュール151および制御回路180とを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は演算処理装置および
メモリアクセス方法に関する。
【0002】
【従来の技術】マイクロプロセッサを、一般的な設計思
想によって分類すると、例えば、RISC(Reduced Ins
truction Set Computer)型と、CISC(Complex Instr
uctionSet Computer)型とに分けられる。ところで、マ
イクロプロセッサ単体の性能を決めるプログラム実行時
間は下記式(1)で示される
【0003】
【数1】 プログラム実行時間=実行命令数(IC)×1命令当たりの平均所要クロック サイクル数(CPI)×クロックサイクル時間(CCT) …(1)
【0004】RISC型のマイクロプロセッサは、命令
パイプライン処理を駆使して、上記式(1)のCPIを
可能な限り1に近づけることを設計思想としている。そ
のため、RISC型のマイクロプロセッサでは、命令パ
イプライン処理に適するように命令の機能を単純化する
という観点から、命令を固定単一長とし、命令形式とし
てレジスタ−レジスタ形式(ロード/ストア型アーキテ
クチャ:演算命令のソースオペランドはレジスタオペラ
ンドのみ)を採用している。また、RISC型のマイク
ロプロセッサでは、命令パイプライン処理が滞らないよ
うにコンパイラによる静的コードスケジューリングを行
う。
【0005】これに対して、CISC型のマイクロプロ
セッサは、命令の機能レベルを上げて上記式(1)のI
Cを削減することを設計思想としている。そのため、C
ISC型のマイクロプロセッサでは、命令を固定複数長
あるいは可変長とし、命令形式には、レジスタ−メモリ
形式と、メモリ−メモリ形式(演算命令のソースオペラ
ンドにメモリオペランドも可能)とが混在している。す
なわち、レジスタとメモリとの直接的な演算を可能とし
ている。
【0006】ところで、メモリ上のデータをALU(Ari
thmetic Logic Unit) 演算の対象にした場合、RISC
型のマイクロプロセッサでは、メモリアクセスを行うた
めに、ロード命令とストア命令の2つが最低必要であ
る。これに対して、CISC型のマイクロプロセッサで
は、メモリアクセスのためのみの命令は必要ではない。
CISC型のマイクロプロセッサでは、メモリアドレス
を指定するための命令中のビットフィールドが多く必要
であり、前述したように可変長命令を採用することが多
い。しかしながら、可変長命令を用いると、デコード回
路が複雑かつ大規模になる傾向がある。そのため、CI
SC型のマイクロプロセッサでは、プログラム実行時間
を短縮するために、スーパースケーラ技術やアウトオブ
オーダ技術を用いてメモリ上のデータに対する演算を加
速させているのが現状である。
【0007】以下、従来のRISC型およびCISC型
のマイクロプロセッサにおけるメモリアクセス方法につ
いて説明する。図26は、従来のRISC型およびCI
SC型のマイクロプロセッサの汎用レジスタを説明する
ための図である。図26に示すように、従来のマイクロ
プロセッサには、例えば、16本の汎用レジスタセット
が備えられ、それら16本の汎用レジスタに、r0から
r15までの名前が付されていると仮定する。これらの
レジスタは、3オペランド演算命令セットのプロセッサ
アーキテクチャに実装する場合には、2個のリードポー
トと1個のライトポートとの合計3ポートが必要であ
る。
【0008】3オペランド演算命令では、図27に示す
ように、ALU演算命令のレジスタ指定子を3個指定で
きる。なお、図27において、「;」の右側に
は、「;」の左側に記述された命令についてのコメント
文が記述されている。図27に示す命令は、「r2←r
3+r4」を実行する命令である。r0からr15まで
のレジスタは汎用として、値を一時的に保持する目的と
して使用される。また、ロード/ストア型アーキテクチ
ュアを採用しているプロセッサでは、メモリのロード/
ストアを実現するために汎用レジスタに対してロード/
ストア命令を実行する。直接、ALU演算器に代入する
ような命令はない。このタイプは、RISC型のプロセ
ッサに多く見られる。図28に示すように、メモリ上の
データを加工する場合、一旦、ロード命令「lw r
3,0(r10)」を実行する必要がある。これに対し
て、CISC型のプロセッサにはメモリ上のデータをA
LU演算命令のオペランドとして指定することができる
ものがある。しかし、その場合、汎用レジスタを使用せ
ずにメモリバッファを直接使用することになる。
【0009】以下、従来のRISC型プロセッサのパイ
プライン処理について説明する。RISC型プロセッサ
では、5段あるいは8段パイプライン構造となっている
ものが多い。例えば、MIPS社のR3000(商標
名)は、図29に示すように、IF(Instruction Fetc
h) ステージ、DEC(Instruction Decode)ステージ、
ALUステージ、MEM(Memory)ステージおよびWB(W
rite Back)ステージの5段パイプラインを採用してい
る。このプロセッサでは、1段目のIFステージで命令
をフェッチし(読み込み)、2段目のDECステージで
命令をデコードする。なお、汎用レジスタをソースレジ
スタとして指定した命令であれば、DECステージで命
令をデコードした後に、汎用レジスタからデータを読み
出す。次に、3段目のALUステージで、ALU演算命
令を実行する。なお、フェッチした命令がALU命令で
ない場合は、ALUステージでは何も行わないので、デ
ータをALUの出力ポートにそのまま出力する。
【0010】次に、4段目のMEMステージでは、フェ
ッチした命令がメモリアクセス命令であるときに、メモ
リアクセスのためのメモリアドレスをメモリユニットに
出力してメモリアクセスを実行する。次に、5段目で、
汎用レジスタをディスティネーションレジスタとして指
定した命令について、ALUの演算結果を汎用レジスタ
に書き戻す。メモリリード命令(ロード命令)であれ
ば、メモリユニットから値を受け取り汎用レジスタに書
き込む。図29に示すように、5段パイプラインを採用
したプロセッサでは、例えば、クロックサイクルXにお
いて、コードC1 のWBステージと、コードC2 のME
Mステージと、コードC3 のALUステージと、コード
4 のDECステージと、コードC5 のIFステージと
を多重化して行う。
【0011】ところで、前述したようにRISC型プロ
セッサでは、ロード/ストア型命令セットアーキテクチ
ュアを採用していることから、ALU演算命令とロード
/ストア命令とが分離して各々独立して存在している。
そのため、これらの命令を含めて任意の命令を多重化す
るためには、例えば、図29に示す5段パイプライン構
造にすることが都合がよい。すなわち、メモリアクセス
命令とその他の命令とを同時に実行することができる。
メモリアクセスのパスは1系統(1セット)のみ存在す
ることを前提としているので、メモリリードとメモリラ
イトとを同じMEMステージで同時に実行することはな
い。また、メモリアクセス命令とそれ以外の命令とを各
々単独で扱うと、使用しないパイプラインステージが生
じてしまう。例えば、レジスタ間転送命令では、MEM
ステージの機能は使用されない。また、メモリアクセス
命令では、ALUステージの機能を使用しない。なお、
メモリアクセスのためのアドレス生成演算は、ALU以
外の別のユニットで行われる。
【0012】図29に示す5段パイプライン処理では、
メモリ上のデータをALU演算の対象にした場合に、例
えば図30に示すようにプログラムを記述する。図30
に示すプログラムでは、先ず、命令「lw r2, 0
(r10)」によって、レジスタr10が示すメモリア
ドレス上のデータをレジスタr2にロードする。次に、
命令「addu r3,r2,r9」によって、レジス
タr2とレジスタr9の値を加算し、その結果をレジス
タr3に代入する。次に、命令「sw r3,0(r1
1)」によって、レジスタr3の値をレジスタr11が
示すメモリアドレスにストアする(書き戻す)。これら
の操作を3命令で記述している。各命令とも実行には最
低1クロックサイクルを必要とするので、3命令を実行
するには、3クロックサイクルを必要とする。実際に
は、メモリリード(ロード)したデータは、その直後の
命令で参照できないので、もう1クロックサイクル必要
である。
【0013】
【発明が解決しようとする課題】しかしながら、画像処
理や音声処理などのメディア処理では、連続したメモリ
アドレス空間上のデータに対して所定のALU演算を繰
り返して行う必要がある。この場合には、図31に示す
ように、図30に示すプログラムに対して、メモリアド
レスを更新するための命令「addi r10,4」お
よび命令「addi r11,4」をさらに加える必要
がある。その結果、図31に示すプログラムを実行する
のに、最低5クロックサイクル必要になり、処理時間が
長期化してしまうという問題がある。なお、図31で
は、加算演算のソースデータのメモリ上の開始アドレス
をレジスタr10を用いて設定し、ディスティネーショ
ンデータの開始アドレスをレジスタr11を用いて設定
している。
【0014】また、上述した従来のマイクロプロセッサ
における5段パイプライン処理では、メモリアクセスは
MEMステージで実行され、メモリアクセスのパスが1
系統しか設けられていないため、メモリリードとメモリ
ライトとを同時に実行できない。したがって、メモリリ
ード命令とメモリライト命令とを独立して記述したプロ
グラムを作成する必要があり、そのことが処理時間の短
縮を図るときのボトルネックとなっていた。なお、マイ
クロプロセッサでは、限られたレジスタ資源を効率的に
使用することがシステム設計において非常に重要であ
る。
【0015】本発明は上述した従来技術の問題点に鑑み
てなされ、処理能力の向上を図れる演算処理装置および
メモリアクセス方法を提供する。また、本発明は、レジ
スタ資源を効率的に利用でき、特に汎用レジスタの機能
を適切に発揮できる演算処理装置およびメモリアクセス
方法を提供する。
【0016】
【課題を解決するための手段】上述した目的を達成する
ために、本発明の演算処理装置は、メモリアドレス空間
上の連続したアドレスに記憶された所定のデータ量のペ
ージをそれぞれ記憶する複数のバンクを備えた内部メモ
リと、前記メモリアドレス空間上のアドレスを記憶する
データポインタレジスタと、演算処理を行う演算手段
と、前記内部メモリおよび前記演算手段との間でデータ
の転送を行うデータレジスタと、前記複数のバンクに記
憶されたページの前記メモリアドレス空間内の先頭アド
レスを記憶し、当該記憶された先頭アドレスと、前記デ
ータポインタレジスタに記憶されたアドレスとを比較
し、前記比較の結果に基づいて前記複数のバンクのいず
れかにアクセス対象となるページが存在するか否かを判
別するページ有無判別手段と、前記判別の結果、アクセ
ス対象となるページが前記複数のバンクのいずれかに存
在する場合に、アクセス対象となるページが記憶された
バンクと前記データレジスタとの間で、前記データポイ
ンタレジスタに記憶されたアドレスを用いてデータの転
送を行うように制御する制御手段とを有する。
【0017】本発明の演算処理装置では、ページ有無判
別手段によって、内部メモリの複数のバンクのうち何れ
のバンクに、演算手段からのアクセス対象となるページ
が含まれているかが判別され、その判別結果に基づい
て、単体のデータレジスタが、複数のバンクのうち、ア
クセス対象のページを記憶するバンクを選択して接続さ
れる。
【0018】また、本発明のメモリアクセス方法は、演
算手段からデータレジスタを介して、メモリアドレス空
間上の連続したアドレスに記憶された所定のデータ量の
ページをそれぞれ記憶する複数のバンクを備えた内部メ
モリにアクセスするメモリアクセス方法であって、前記
メモリアドレス空間上のアドレスをデータポインタレジ
スタに記憶し、前記複数のバンクに記憶されたページの
前記メモリアドレス空間内の先頭アドレスを記憶し、当
該記憶された先頭アドレスと、前記データポインタレジ
スタに記憶されたアドレスとを比較し、前記比較の結果
に基づいて、前記複数のバンクのいずれかにアクセス対
象となるページが存在するか否かを判別し、前記判別の
結果、アクセス対象となるページが前記複数のバンクの
いずれかに存在する場合に、アクセス対象となるページ
が記憶されたバンクとデータレジスタとの間で、前記デ
ータポインタレジスタに記憶されたアドレスを用いてデ
ータの転送を行う。
【0019】
【発明の実施の形態】以下、本発明の実施形態に係わる
マイクロプロセッサについて説明する。第1実施形態 図1は、本実施形態のマイクロプロセッサ1の構成図で
ある。マイクロプロセッサ1は、図1に示す汎用レジス
タモジュール11、マルチプレクサ(MUX)12,1
6、ALU(Arithmetic Logic Unit) 13、インストラ
クションページメモリ35、デコーダ36と、図2に示
すDPレジスタ30,31および内部メモリ47を有
し、これらを1チップ内に組み込んだ構成をしている。
なお、マイクロプロセッサ1では、デコーダ36におけ
るデコード結果に応じた制御信号S36に基づいて、以
下に示す処理が行われる。
【0020】汎用レジスタモジュール11は、汎用的に
使用される例えば32ビットの16個のレジスタr0
15で構成されるレジスタセットである。汎用レジスタ
モジュール11を構成するレジスタの数は、命令セット
あるいはチップアーキテクチュアに大きく依存し、一般
的には、8個から32個の範囲で設定される。汎用レジ
スタモジュール11は、図1に示すように、7個のポー
トW,RA,RB,MA,MB,DA,DBを備えてい
る。ここで、ポートWは、ライトポートであり、ALU
13のポートAOUTから出力されたデータが、バス2
3およびポートWを介して、汎用レジスタモジュール1
1に書き込まれる。また、ポートMA,MBは、図2に
示すように、それぞれ内部メモリ47のメモリバンク4
5,46との間のポートであり、それぞれバス26,2
7を介して、メモリバンク45,46のポートとの間で
データ転送を行う。なお、ポートMA,MBを設けず
に、汎用レジスタモジュール11の外部で、ポートR
A,RB,Wを切り替えて、メモリバンク45,46と
の接続を実現するような構成にしてもよい。
【0021】また、ポートRA,RBは、リードポート
であり、ポートRA,RBおよびバス17,18を介し
て、汎用レジスタモジュール11から読み出されたデー
タがマルチプレクサ12に出力される。さらに、ポート
DA,DBは、それぞれマルチプレクサ16とデータレ
ジスタr0 ,r1 との間で、双方向通信を行うためのポ
ートである。
【0022】汎用レジスタモジュール11では、ポート
W,RA,RB,MA,MB,DA,DBを同時に使用
することができる。つまり、汎用レジスタモジュール1
1に対してのリード動作とライト動作とを独立して実行
できる。
【0023】マイクロプロセッサ1では、データレジス
タr0 ,r1 を、それぞれバス26,27を介してメモ
リとの間で通信を行うためのインターフェイスとなるバ
ッファとして用いる。また、レジスタr2 〜r15は、一
般的な汎用レジスタとして使用される。マイクロプロセ
ッサ1では、例えば、ALU13において内部メモリ4
7に記憶されたデータを用いる場合には、そのデータを
バス26を介してデータレジスタr0 に読み出した後
に、データレジスタr0 にアクセスを行う。このとき、
内部メモリ47からバス27を介して、データレジスタ
1 にデータを読み出した後に、データレジスタr1
アクセスしてもよい。また、マイクロプロセッサ1で
は、データを内部メモリ47に書き込む場合に、データ
レジスタr0 あるいはr1 にデータを書き込んだ後に、
この書き込んだデータをバス26あるいは27を介して
内部メモリ47に転送する。
【0024】なお、データレジスタr0 ,r1 は、他の
レジスタr2 〜r15と実質的に同じ接続形態をしてお
り、レジスタr2 〜r15と同様に汎用レジスタとしても
使用できる。具体的には、例えば、マルチプレクサ16
がバス21および22とポートDA,DBとの接続を選
択しているときに、ポートDA,DBがそれぞれRA,
RBと同様の機能を果たし、バス21,22がバス1
7、18と同様の機能を果たす。また、マルチプレクサ
16が、バス23とポートDAあるいはDBとの接続を
選択しているときには、ポートDAあるいはDBがポー
トWと同様の機能を果たす。そのため、データレジスタ
0 ,r1 は、プログラム内でレジスタr2 〜r15を含
む汎用レジスタ群の一部として統一的に記述され、デコ
ーダ36においても同様に認識される。
【0025】DP(Data Pointer)レジスタ30,31
は、それぞれ内部メモリ47のメモリバンク45,46
のメモリアドレス空間内のアドレスを記憶する。なお、
DPレジスタ30,31は、汎用レジスタモジュール1
1のレジスタr0 〜r15とは異なり、複数の制御レジス
タのうち一部を割り当てる。そのため、DPレジスタ3
0,31を、ALU演算命令のレジスタ指定子を用いて
直接的には指定することはできず、データ転送命令によ
って指定される。なお、DPレジスタ30,31に、内
部メモリ47上のアドレスを書き込むには、1命令分の
ステップを必要とするが、データレジスタr0 ,r1
介した内部メモリ47に対してのアクセス動作は、プロ
グラムには記述されておらず、プログラムに直接的に明
示された処理とは別に、バックグランドで行われる。す
なわち、内部メモリ47に対してのアクセス動作は、パ
イプライン処理と並行して行われる。
【0026】マイクロプロセッサ1では、例えば、図2
に示す内部メモリ47のメモリバンク45に記憶された
データを読み出す際に、当該読み出すデータのメモリバ
ンク45内でのアドレスをDPレジスタ30に書き込
む。これによって、DPレジスタ30に書き込まれたメ
モリバンク45内でのアドレスに記憶されたデータが、
バス26を介してメモリバンク45からデータレジスタ
0 に、ハードウェアによって自動的に読み出される。
その後、データレジスタr0 から、マルチプレクサ16
を介してALU13のポートAINあるいはBINにデ
ータが転送される。
【0027】また、同様に、マイクロプロセッサ1で
は、例えば、図2に示す内部メモリ47のメモリバンク
46に記憶されたデータを読み出す際に、当該読み出す
データのメモリバンク46内でのアドレスをDPレジス
タ31に書き込む。これによって、DPレジスタ31に
書き込まれたメモリバンク46内でのアドレスに記憶さ
れたデータが、バス26を介してメモリバンク46から
データレジスタr1 に、ハードウェアによって自動的に
読み出される。その後、データレジスタr1 から、マル
チプレクサ16を介してALU13のポートAINある
いはBINにデータが転送される。
【0028】このように、マイクロプロセッサ1では、
DPレジスタ30,31に、メモリバンク45,46内
のアドレスを書き込むことで、それぞれデータレジスタ
0,r1 に、当該アドレスに記憶されたデータを自動
的に読み出す。
【0029】一方、内部メモリ47のメモリバンク45
および46内の所定のアドレスにデータを書き込む場合
に、当該アドレスをそれぞれDPレジスタ30,31に
書き込んだ後に、それぞれデータレジスタr0 およびr
1 に当該データを書き込む。その後、ハードウェアによ
って自動的に、データレジスタr0 ,r1 に記憶された
データが、DPレジスタ30,31に記憶されたメモリ
バンク45,46内のアドレスに書き込まれる。なお、
データレジスタr0 とメモリバンク45とのデータ転送
と、データレジスタr1 とメモリバンク46とのデータ
転送とは、マイクロプロセッサ1において、同一のパイ
プラインサイクルで行うことができる。
【0030】ところで、内部メモリ47に対してのメモ
リライト動作で、データレジスタr0 またはr1 の一方
を使用すると、若干のサイクルをロスすることがある。
これは、データレジスタr0 またはr1 に対してデータ
の自動読み出し動作が不要に行われてしまうためであ
る。これを防ぐために、使用目的に合わせてデータレジ
スタr0 ,r1 の少なくとも一方をライト動作専用モー
ドに設定しておけば、無駄なメモリリード(ロード)動
作を実行することを回避できる。メモリリードあるいは
メモリライトの特性として、画像処理などの分野では、
連続したメモリアドレスが参照される可能性が高い。つ
まり、メモリリード命令の次には再びメモリリード命令
を実行することが多い。しかも、このとき、連続したメ
モリアドレスをアクセスする可能性が高い。そのため、
DPレジスタ30,31には、例えば、内部メモリ47
の記憶されたデータにアクセスする度に、記憶されてい
るアドレスを、例えば、+1,−1,+4,−4,+8
あるいは−8だけ自動的にインクリメントする機能を備
え、画像処理を行うときの処理効率の向上を図ってい
る。
【0031】図2に示す内部メモリ47のメモリバンク
45,46は、それぞれアドレスが連続した外部メイン
メモリ50のメモリアドレス空間上のデータのコピーを
記憶している。メモリバンク45と46との間では、外
部メインメモリ50のメモリアドレス空間上のアドレス
が連続している必要はない。
【0032】ALU13は、入力ポートAIN,BIN
およびポートAOUTを備え、デコーダ36からの制御
信号S36に基づいて、入力ポートAIN,BINから
入力されたデータに対して算術演算あるいは論理演算を
実行し、演算結果のデータをポートAOUTからバス2
3に出力する。ALU13では、演算を1クロックサイ
クルで実行する。ここで、ALU13は、演算命令の種
類によっては、デコーダ36からの制御信号S36に基
づいて、入力ポートAINあるいはBINからALU1
3に入力されたデータを演算を行わずに、そのまま出力
ポートAOUTから出力することもある。
【0033】以下、マイクロプロセッサ1におけるパイ
プライン処理動作について説明する。マイクロプロセッ
サ1では、図1に示す構成によって、以下に示すよう
に、命令実行時のデータパスを4段パイプライン構造に
する。図4は、マイクロプロセッサ1のパイプライン処
理を説明するための図である。図4に示すように、マイ
クロプロセッサ1は、IFステージ、DECステージ、
ALUステージおよびWB(Write Back)ステージの4段
パイプラインを採用している。すなわち、図4に示す4
段パイプラインには、図29に示す5段パイプラインの
MEMステージが存在しない。
【0034】図4に示す4段パイプラインにおいて、I
Fステージ、DECステージおよびALUステージにお
ける処理は、前述した図29に示す5段パイプラインの
場合と同じである。図4に示す4段パイプラインでは、
IFステージ、DECステージ、ALUステージおよび
WBステージが多重化して行われる。具体的には、マイ
クロプロセッサ1では、1段目のIFステージで、図1
に示すプログラムカウンタ34によって指し示されるイ
ンストラクションメモリ35上のアドレスから、次に実
行する命令をフェッチする(読み込む)。次に、2段目
のDECステージで、IFステージでフェッチした命令
を図1に示すデコーダ36でデコードする。そして、こ
のデコード結果に応じた制御信号S36に基づいて、マ
ルチプレクサ12,16およびALU13などが制御さ
れる。
【0035】なお、汎用レジスタモジュール11のレジ
スタr0 〜r15をソースレジスタとして指定した命令で
あれば、DECステージで命令をデコードした後に、デ
ータレジスタr0 〜r15からデータを、マルチプレクサ
12を介してALU13のポートAIN,BINに読み
出す。すなわち、マイクロプロセッサ1では、プログラ
ムに応じて、データレジスタr0 ,r1 を他の汎用のレ
ジスタr2 〜r15と同様にアクセスできる。このとき、
内部メモリ47に対してのメモリアクセスが必要な場合
には、図2に示すDPレジスタ30,31に、内部メモ
リ47上の所定のアドレスを記憶させた後に、データレ
ジスタr0 ,r1 にアクセスを行うことで、内部メモリ
47に対してのアクセスを実現する。すなわち、マイク
ロプロセッサ1では、データレジスタr0 ,r1 を介し
て、内部メモリ47へのメモリアクセスを実現する。
【0036】次に、3段目のALUステージで、ALU
演算命令を実行する。なお、フェッチした命令がALU
演算命令でない場合は、ALUステージでは何も行わ
ず、ポートAIN,BINから入力したデータをALU
13のポートAOUTからそのまま出力する。次に、4
段目のWBステージでは、データレジスタr0 ,r1
よびレジスタr2 〜r15の何れかを、ディスティネーシ
ョンレジスタとして指定した命令について、ALU13
の演算結果を、当該指定したレジスタに書き戻す。この
とき、データレジスタr0 ,r1 にデータを書き込むこ
とで、バス26,27を介して、間接的に内部メモリ4
7にデータを書き戻す。
【0037】図4に示す4段パイプライン処理では、コ
ードC1 が図2に示す内部メモリ47に対してのメモリ
ライト操作を伴う命令であり、コードC3 が内部メモリ
47に対してのメモリリード操作を伴う命令である場合
に、図5に示すクロックサイクルYにおいて、コードC
1 のWBステージ41と、コードC3 のDECステージ
42とで、同時にメモリアクセスを行うことになる。こ
の場合に、マイクロプロセッサ1では、内部メモリ47
に対してのアクセスのバッファとなるデータレジスタr
0 ,r1 を設け、内部メモリ47に対しての2系統のア
クセス経路を設けているため、コードC1 とコードC3
とでアクセスを行う内部メモリ47のバンクが異なれ
ば、図5に示すように、コードC1 のWBステージ41
とコードC3 のDECステージ42とを多重化でき、パ
イプライ処理は乱れない(ストールしない)。
【0038】以下、マイクロプロセッサ1におけるプロ
グラムの記述に応じた内部メモリ47に対してのアクセ
ス動作例について説明する。2オペランド演算命令を用いた場合 以下、図6に示すように、オペコード(OP)と、〔ソ
ースレジスタ〕および〔ディスティネーションレジス
タ〕を指定する2個のオペランドとを備えた2オペラン
ド演算命令を用いて、プログラムを記述した場合におけ
る内部メモリ47に対してのアクセス動作について説明
する。
【0039】例えば、図7に示すように、2オペランド
演算命令において、データレジスタr0 をソースレジス
タとして指定した場合には、内部メモリ47上のDPレ
ジスタ30に記憶されたアドレスからデータをデータレ
ジスタr0 に読み出した後に、データレジスタr0 に記
憶されたデータと、レジスタr4 に記憶されたデータと
を加算して、その加算結果のデータをレジスタr4 に書
き込む。
【0040】また、例えば、図8に示すように、2オペ
ランド演算命令において、データレジスタr1 をディス
ティネーションレジスタとして指定した場合には、内部
メモリ47上のDPレジスタ31に記憶されたアドレス
からデータをデータレジスタr1 に読み出した後に、デ
ータレジスタr1 に記憶されたデータと、レジスタr5
に記憶されたデータとを加算して、その加算結果のデー
タをレジスタr1 に書き込む。そして、内部メモリ47
上のDPレジスタ31に記憶されたアドレスに、データ
レジスタr1 に記憶されたデータを書き込む。
【0041】また、例えば、図9に示すように、2オペ
ランド演算命令において、データレジスタr0 をソース
アドレスとして指定し、データレジスタr1 をディステ
ィネーションレジスタとして指定した場合には、内部メ
モリ47上のDPレジスタ30,31に記憶されたアド
レスからデータをそれぞれデータレジスタr0 ,r1
読み出した後に、データレジスタr0 に記憶されたデー
タと、データレジスタr1 に記憶されたデータとを加算
して、その加算結果のデータをレジスタr1 に書き込
む。そして、内部メモリ47上のDPレジスタ31に記
憶されたアドレスに、データレジスタr1 に記憶された
データを書き込む。
【0042】ところで、図8に示す演算命令を連続して
実行したときに、図4に示すマイクロプロセッサ1のパ
イプライン処理において、図10に示すように、2クロ
ックサイクルのパイプライン・ハザード(ストール)が
発生する。これは、図10に示すクロックサイクルT+
3で、データレジスタr1 に対してのライト動作とリー
ド動作とが競合するためである。すなわち、図8に示す
演算命令であるコードC1 が、クロックサイクルT+1
でDECステージに進んだときに、図1に示すデコーダ
36は、コードC1 がロード/ストア命令であることを
認識してレジスタr1 を内部でロックする。そして、コ
ードC1 がクロックサイクルT+3でWBステージに進
んだときに、このロックは解除される。すなわち、内部
メモリ47に対してのリード・モディファイ・ライト
は、ライトバックされるまでロックされる。このロック
されたレジスタを命令がアクセスすると、ロックが解除
するまでアクセスが待たされる。そして、クロックサイ
クルT+3でALU13の出力をデータレジスタr1
書き込み、ロックの解除を決定し、DPレジスタ31を
更新する。そして、クロックサイクルT+4で、コード
2 に応じて、内部メモリ47からデータレジスタr1
にデータを読み込み、その後、コードC1 の場合と同様
の処理を繰り返す。
【0043】3オペランド演算命令を用いた場合 以下、図11に示すように、オペコード(OP)と、2
個の〔ソースレジスタ〕および〔ディスティネーション
レジスタ〕を指定する3個のオペランドとを備えた3オ
ペランド演算命令を用いて、プログラムを記述した場合
における内部メモリ47に対してのアクセス動作につい
て説明する。マイクロプロセッサ1では、例えば、従来
のマイクロプロセッサにおける図30に示すプログラム
を実行するときに、プログラムを図12に示すように記
述できる。図12において、命令「mov r0
2 」はデータレジスタr0 に記憶された内部メモリ4
7上のデータをレジスタr2 に転送することを示す。こ
のとき、命令「mov r0 ,r2 」を実行するのに先
立って、図2に示すDPレジスタ30にメモリバンク4
5内の読み込み対象のデータのアドレスが記憶され、ハ
ードウェアによって、当該アドレスに記憶されたデータ
が、バス26を介してデータレジスタr0 に転送されて
いる。そして、データレジスタr0 に記憶された内部メ
モリ47上のデータが、バス24、マルチプレクサ1
6,12およびバス23を介して、レジスタr2 に転送
される。
【0044】また、「add r2 ,r9 ,r3 」はレ
ジスタr2 に記憶されたデータとレジスタr9 に記憶さ
れたデータとを加算してレジスタr3 に記憶することを
示す。これによって、ALU13のポートAINに対し
てレジスタr2 に記憶されたデータが出力され、ポート
BINに対してレジスタr9 に記憶されたデータが出力
され、ALU13において、これらの加算が行われ、加
算結果がポートAOUTからバス23を介して、汎用レ
ジスタモジュール11のレジスタr3 に書き込まれる。
【0045】さらに、「mov r3 ,r1 」は、レジ
スタr3 に記憶されたデータをデータレジスタr1 に転
送することを意味する。これによって、レジスタr3
記憶されたデータが、例えばバス17、マルチプレクサ
12、バス23、マルチプレクサ16およびバス25を
介して、データレジスタr1 に転送される。その後、ハ
ードウェアによって、DPレジスタ31に記憶された内
部メモリ47上のアドレスに対して、データレジスタr
1 に記憶されたデータがバス27を介して自動的に書き
込まれる。
【0046】このように、マイクロプロセッサ1では、
図30に示すロード命令「lw」およびストア命令「s
w」の代わりに、図12に示すようにレジスタ間転送命
令「mov」を記述したプログラムを実行する。
【0047】なお、図12に示すプログラムは、例え
ば、図13に示すようにも記述できる。図13に示すプ
ログラムでは、命令「add」のソースレジスタとして
データレジスタr0 およびレジスタr9 を指定してお
り、ディステイネイションアドレスとしてデータレジス
タr1 を指定している。但し、この場合に、DPレジス
タ30,31によって、内部メモリ47上の異なるバン
ク内のアドレスが指し示されている必要がある。図13
に示すプログラムは、マイクロプロセッサ1によって1
クロックサイクルで実行される。
【0048】また、マイクロプロセッサ1では、内部メ
モリ47上の連続したメモリアドレスに記憶されたデー
タを加工する場合には、例えば、図14に示すようにプ
ログラムを記述する。図14に示すプログラムを実行す
ると、図2に示すDPレジスタ30,31に記憶されて
いるアドレスに対して順次に、例えば「+4」を加算し
て更新することで、データレジスタr0 ,r1 を介し
て、内部メモリ47における「+4」間隔のアドレスに
対して順次にアクセスが行われる。図13において、
「add r0 ,r9 ,r1 」は、データレジスタr0
に記憶されたデータと、レジスタr9 に記憶されたデー
タとを加算して、その加算結果のデータをデータレジス
タr1 に記憶することを示している。図14に示すプロ
グラムに応じた処理では、内部メモリ47上の8個のデ
ータを加工する。なお、図14に示すプログラムは、ル
ープを用いて記述してもよい。
【0049】マイクロプロセッサ1では、例えば、図3
に示す汎用レジスタモジュール11のレジスタr14をデ
ータレジスタとして扱い、レジスタr14に対応したDP
レジスタを更に設けることで、メモリアクセスのパスを
3系統にすることができる。この場合に、図15に示す
ように、プログラムを記述することで、加算命令「ad
d」の3個の全てのオペランドにおいて、データレジス
タr0 ,r14,r1 を指定することができる。
【0050】以上説明したように、マイクロプロセッサ
1によれば、汎用レジスタモジュール11を構成する複
数の汎用レジスタの一部を、データレジスタr0 ,r1
として用いることで、プログラムにおいて、内部メモリ
47に対してのメモリアクセスのためのメモリリード命
令およびメモリライト命令を、別途記述する必要がな
い。すなわち、命令セットを、メモリアクセスが必要な
場合も含めて、汎用レジスタに記憶されたデータ相互間
で行う演算として統一して記述できる。すなわち、マイ
クロプロセッサ1によれば、内部メモリ47に対しての
アクセスは、汎用レジスタに対してのアクセスの延長と
して扱われ、ソフトウェアからは、データレジスタ
0 ,r1 をメモリウィンドウとして使用できる。
【0051】また、マイクロプロセッサ1では、アクセ
スする内部メモリ47のアドレスおよびアクセスする順
番が予め決められている場合には、DPレジスタ30,
31のアドレス更新機能を用いて、DPレジスタ30,
31に記憶されているアドレスを自動的に更新すること
で、メモリアクセスのための手順を、プログラム内で毎
回明示して記述する必要がない。
【0052】そのため、内部メモリ47のメモリアドレ
ス空間内の連続したアドレスに記憶された複数のデータ
を順にアクセスして加工する場合に、アクセスするデー
タのアドレスを毎回指定する必要がなく、プログラムに
はALU演算命令のみを記述すればよい。このとき、デ
ータレジスタr0 ,r1 に対して、DPレジスタ30,
31が自動的に更新された直後に、内部メモリ47から
データを読み出すことで、ALU演算命令を実行する度
に、ALU13がメモリアクセスの完了を待たされるこ
とを回避できる。すなわち、ALU13がプログラムに
応じてALU演算を実行する時点で、内部メモリ47か
らデータレジスタr0 ,r1 に既にデータが既に読み込
まれている状態にすることができる。その結果、マイク
ロプロセッサ1における演算処理において、命令の多重
化を効率的に実現し、例えば、パイプライン処理におい
て、ALU演算命令を毎クロックサイクル実行できる。
また、ユーザによるプログラムの記述を簡単化できる。
【0053】また、マイクロプロセッサ1によれば、2
個のDPレジスタ30,31を設け、内部メモリ47上
のデータに対して直接的にALU演算命令を実行するこ
とで、例えば、内部メモリ47上のデータを読み出して
加工した後に、内部メモリ47に書き戻す処理を1命令
で記述できる。しかも、この命令において、内部メモリ
47から読み出すデータのバンクと、内部メモリ47に
書き込むデータのバンクとが異なる場合に、命令を1ク
ロックサイクル内に実行できる。なお、DPレジスタ3
0,31が共に内部メモリ47の全てのアドレスを指定
できる場合には、内部メモリ47から読み出すデータの
アドレスと、内部メモリ47に書き込むデータのアドレ
スとが異なれば、命令を1クロックサイクル内に実行で
きる。例えば、プログラムにおいて、メモリアクセスを
伴う演算処理を、例えば図13に示すように1命令で記
述し、1クロックサイクル内で実行できる。
【0054】また、マイクロプロセッサ1では、内部メ
モリ47にデータを書き戻す命令(ディスティネーショ
ンレジスタとしてデータレジスタr0 またはr1 を指定
するデータ転送命令)を連続して実行する場合に、DP
レジスタ30,31の自動読み出し機能を停止し、無駄
なメモリリードを無くすことができる。これにより、メ
モリライトを連続して実行することができ、命令の多重
化を実現できる。
【0055】また、マイクロプロセッサ1では、データ
レジスタr0 ,r1 およびDPレジスタ30,31を用
いたメモリ構成にしたことで、図23に示す従来の5段
パイプライン構造におけるMEMステージが不要とな
り、図4に示すように、4段パイプライン構造にするこ
とができる。すなわち、データレジスタr0 ,r1 を用
いて内部メモリ47に書き込み動作を行うことから、内
部メモリ47に対しての書き込み動作を、WBステージ
において行われるレジスタ書き込み動作によって行うこ
とができる。従って、パイプライン処理に、メモリアク
セス処理のステージを独立して設ける必要がない。その
結果、マイクロプロセッサ1では、プロセッサ全体の制
御回路が簡単になり、外部割り込みを含む例外処理に対
しても柔軟な対応を行うことができる。
【0056】第2実施形態 本実施形態のマイクロプロセッサは、内部メモリのバン
ク数、データレジスタおよびDPレジスタの数、およ
び、図1に示すマルチプレクサ12,16の代わりにマ
ルチプレクサ82を備えている点を除いて、基本的に、
前述した第1実施形態のマイクロプロセッサ1と同じ構
成をしている。図16は、本実施形態のマイクロプロセ
ッサ81の内部メモリ87の周辺の構成図である。図1
6に示すように、マイクロプロセッサ81は、内部メモ
リ87、DPレジスタ91,92,93、データレジス
タr0 ,r1 −R,r1 −W、マルチプレクサ82およ
びバス101〜106を備えている。
【0057】また、マイクロプロセッサ81は、図1に
示すマイクロプロセッサ1と同様に、ALU13、プロ
グラムカウンタ34、インストラクションページメモリ
35、デコーダ36、バス17,18,19,20,2
3を備えている。また、マイクロプロセッサ81では、
図1に示すレジスタr1 の代わりに、レジスタr1 −R
およびレジスタr1 −Wを備えている。すなわち、マイ
クロプロセッサ81には、図16に示すデータレジスタ
0 ,r1 −R,r1 −Wの他に、レジスタr2 〜r15
が備えられている。なお、マイクロプロセッサ81で
は、プログラムの記述において論理的に、物理的なデー
タレジスタr1 −Rとデータレジスタr1 −Wとを、単
体のデータレジスタr1 として扱う。
【0058】マイクロプロセッサ81では、DPレジス
タ91に記憶された内部メモリ87のメモリバンク11
0内のアドレスからデータを読み出して、データレジス
タr0 に記憶する。また、データレジスタr1 −Rは、
内部メモリ87のメモリバンク111からのデータ読み
出し動作専用であり、プログラムに記述された2オペラ
ンド演算命令においてディスティネーションレジスタと
して論理的なデータレジスタr1 のアドレスが指定され
ている場合に、DPレジスタ92に記憶されたメモリバ
ンク111内のアドレスから読み出されたデータを記憶
する。また、データレジスタr1 −Wは、内部メモリ8
7のメモリバンク112に対してのデータ書き込み動作
専用であり、プログラムに記述された2オペランド演算
命令においてディスティネーションレジスタとして論理
的なデータレジスタr1 のアドレスが指定されている場
合に、そのデータレジスタr1 −Wの記憶データを、D
Pレジスタ93に記憶されたメモリバンク112内のア
ドレスに書き込む。なお、論理的なデータレジスタr1
のアドレスの指定は、論理アドレスを直接指定する他、
例えば、論理レジスタ名を介して論理アドレスを間接的
に指定してもよい。
【0059】以下、マイクロプロセッサ81の動作につ
いて説明する。マイクロプロセッサ81では、例えば、
図6に示すフォーマットを持つ2オペランド演算命令を
実行する。マイクロプロセッサ81では、例えば、図1
7に示すように、データレジスタr1 がディスティネー
ションアドレスに指定されている命令を実行する場合
に、先ず、DPレジスタ92に加算対象データが記憶さ
れたメモリバンク111内のアドレスを書き込むこと
で、ハードウェアによって、バス102を介してデータ
レジスタr1 −Rに当該加算対象データを読み出す。次
に、図1に示すALU13において、レジスタr5 に記
憶されたデータと、データレジスタr1 −Rに記憶され
たデータとの加算演算を行い、加算結果のデータをバス
106を介してデータレジスタr1 −W0 に記憶する。
また、加算結果のデータを書き戻すメモリバンク112
内のアドレスをDPレジスタ93に書き込む。これによ
って、データレジスタr1 −W0 に記憶された加算結果
のデータが、ハードウェアによって、バス103を介し
てメモリバンク112に書き戻される。
【0060】以下、マイクロプロセッサ81において、
内部メモリ87上の連続したメモリアドレスに記憶され
たデータを加工する場合について説明する。マイクロプ
ロセッサ81において、例えば、図18に示すプログラ
ムを図4に示す4段パイプライン処理で実行するとき、
図19(A)に示すようになる。図18に示すコードC
1 〜C6 の各コードは、図19(A)に示すパイプライ
ン処理において、IFステージで命令「add r0
1 」のフェッチが行われ、DECステージで、DPレ
ジスタ91に記憶されたメモリバンク110上のアドレ
スからデータレジスタr0 に読み出された一方の加算対
象データが、データレジスタr0 からALU13のポー
トAINに出力される。それと共に、DPレジスタ92
に記憶されたメモリバンク111上のアドレスからデー
タレジスタr1 −Rに読み出された他方の加算対象デー
タがデータレジスタr1 −RからALU13のポートB
INに出力される。次に、ALUステージで、ALU1
3において双方の加算対象データを用いた加算が行わ
れ、WBステージで、ALU13の加算結果がポートA
OUTからデータレジスタr1 −Wに書き込まれる。そ
の後、DPレジスタ93に記憶されたメモリバンク11
2上のアドレスに、データレジスタr1 −Wの記憶デー
タが書き戻される。
【0061】このとき、図19(A)に示すように、ク
ロックサイクルTで、コードC1 のIFステージが行わ
れる。また、図19(B)に示すように、クロックサイ
クルT+1〜T+6で、コードC1 〜C6 によるデータ
レジスタr0 に対してのメモリリード動作(デコードス
テージ)が順に行われる。また、図19(C)に示すよ
うに、クロックサイクルT+1〜T+6で、コードC1
〜C6 によるデータレジスタr1 −Rに対してのメモリ
リード動作(デコードステージ)が順に行われる。さら
に、図19(D)に示すように、クロックサイクルT+
3〜T+8で、コードC1 〜C6 によるデータレジスタ
1 −Wに対してのメモリライト動作(WBステージ)
が順に行われる。すなわち、マイクロプロセッサ81で
は、前述したように、データレジスタr1 −R,r1
Wr0 を設けたことで、データレジスタr1 に対しての
メモリリード動作とメモリライト動作とを同時に行うこ
とができる。その結果、図18に示すコードC1 〜C6
を、それぞれ1クロックサイクルで実行できる。
【0062】以上説明したように、マイクロプロセッサ
81によれば、論理的なデータレジスタr1 をディステ
ィネーションアドレスに指定してリードモディファイラ
イトを行う2オペランド演算命令を繰り返し連続して行
う場合であっても、各演算命令を1クロックサイクルで
実行できる。また、マイクロプロセッサ81によれば、
2オペランド演算命令を用いて同一のクロックサイクル
で内部メモリ87上の異なる3個のデータにアクセスを
行い、実質的に3オペランド演算と同等の演算を実現で
きる。
【0063】第3実施形態 上述した第1実施形態および第2実施形態のマイクロプ
ロセッサでは、複数のデータレジスタと内部メモリの複
数のバンクとを、それぞれ1対1に固定して対応させた
場合について説明した。従って、これらのマイクロプロ
セッサでは、内部メモリのバンク数に対応した数のデー
タレジスタおよびDPレジスタを設ける必要がある。従
って、内部メモリのバンク数が多い場合には多数のデー
タレジスタおよびDPレジスタを備える必要がある。本
実施形態のマイクロプロセッサは、前述したマイクロプ
ロセッサ1において、単数のデータレジスタを介して、
内部メモリの複数のバンクをアクセス可能な構成をして
いる。
【0064】図20は本実施形態のマイクロプロセッサ
121のALU13の周辺の構成図、図21はマイクロ
プロセッサ121の内部メモリ147の周辺の構成図で
ある。なお、図20および図21において、図1および
図2に示した構成要素と同じ構成要素には同じ符号を付
してある。マイクロプロセッサ121は、図20に示す
汎用レジスタモジュール123、マルチプレクサ12
5,127、ALU13、プログラムカウンタ34、イ
ンストラクションページメモリ35およびデコーダ36
と、図21に示す内部メモリ147、DPレジスタ14
9、メインメモリ150、バンク選択モジュール15
1、ローカルバス153および制御回路180とを、例
えば1チップ内に組み込んだ構成をしている。マイクロ
プロセッサ121は、データレジスタr0 と内部メモリ
147のバンク161〜164との関係以外は、例えば
4段パイプライン処理を含めて、基本的に、前述した第
1実施形態のマイクロプロセッサ1と同じである。
【0065】汎用レジスタモジュール123は、図1に
示す汎用レジスタモジュール11からデータレジスタr
1 およびバス25,27を除いた構成をしている。マル
チプレクサ125は、図1に示すバス25,22に対し
ての選択機能を備えていない点を除いて、図1に示すマ
ルチプレクサ16と同じである。また、マルチプレクサ
127は、図1に示すバス22に対しての選択機能を備
えていない点を除いて、図1に示すマルチプレクサ12
と同じである。
【0066】DPレジスタ149は、マイクロプロセッ
サ121がアクセスを行うメモリアドレス空間の全域の
アドレスを記憶可能な記憶容量を備え、メモリリード時
には、データレジスタr0 に読み出すデータのメモリア
ドレス空間内のアドレスを記憶し、メモリライト時に
は、データレジスタr0 に記憶されたデータの書き込み
先であるメモリアドレス空間内のアドレスを記憶する。
【0067】DPレジスタ149は、図22に示すよう
に、32ビットのフィールドを有し、32ビットのアド
レスを記憶する。その結果、メモリアドレス空間とし
て、4Gバイトまでのアドレスを持つものを用いること
ができる。DPレジスタ149の32ビットフィールド
は、ページセレクトフィールド200、ページオフセッ
トフィールド201およびフィールド202からなる。
ページセレクトフィールド200は、ビット「9」〜
「31」によって構成され、メインメモリ150のメモ
リアドレス空間におけるページ(メモリブロック)の開
始アドレス(オフセット)を指定する。本実施形態で
は、1ページの容量を512バイトとしている。また、
ページオフセットフィールド201は、ビット「2」〜
「8」によって構成され、ページ内のオフセットを示し
ている。ここで、ページ内では、4バイト単位でメモリ
アクセスが行われる。また、フィールド202は、ビッ
ト「0」,「1」によって構成され、アドレスを指定す
るためには使用されない。
【0068】内部メモリ147は、図21に示すよう
に、4個のバンク161,162,163,164に分
割されている。バンク161,162,163,164
は、ローカルバス152を介して、DPレジスタ149
に接続されている。ここで、ローカルバス152は、D
Pレジスタ149のうち、後述する図22に示すページ
オフセットフィールド201のみに接続され、7ビット
のバス幅を有する。また、バンク161,162,16
3,164は、ローカルバス153を介して、データレ
ジスタr0 に接続されている。
【0069】バンク161〜164は、それぞれ1ペー
ジ分の容量を持ち、後述するように、選択回路179か
らの選択信号S1791 〜S1794 に応じてメインメ
モリ150から読み込んだページを記憶する。バンク1
61〜164に読み込まれるメインメモリ150上のデ
ータ(ページ)は、互いに重なり合うことはない。これ
は、選択回路179が、DPレジスタ149に記憶され
たアドレスに対応するページがバンク161〜164に
記憶されている場合には、そのページに対してメモリア
クセスを行い、その同じページをメインメモリ150か
ら読み出す作業を行わないためである。従って、バンク
161〜164のうち、2以上のバンクに同一のメモリ
アドレスのデータが記憶されることはない。
【0070】バンク161〜164は、データレジスタ
0 に対する読み出し動作を行う際に、それぞれイネー
ブル指示を示す選択信号S1791 〜S1794 を入力
すると、DPレジスタ149に記憶されたアドレスのペ
ージオフセットフィールド201によって示されるペー
ジ内のアドレスから4バイトのデータを読み出し、この
読み出したデータをローカルバス153を介してデータ
レジスタr0 に転送する。データレジスタr0 は、この
転送されたデータを記憶する。
【0071】バンク161〜164は、データレジスタ
0 からの書き込み動作において、それぞれイネーブル
指示を示す選択信号S1791 〜S1794 を入力する
と、データレジスタr0 に記憶された4バイトのデータ
をローカルバス153を介して入力し、DPレジスタ1
49に記憶されたアドレスのページオフセットフィール
ド201によって示されるページ内のアドレスに記憶す
る。
【0072】内部メモリ147は、ローカルバス153
を介してメインメモリ150に接続されている。メイン
メモリ150は、マイクロプロセッサ121のチップ内
に組み込んでも、あるいは、チップ外に設けてもよい。
【0073】バンク選択モジュール151は、図21に
示すように、DPC(Data PointerCache)レジスタ17
0,171,172,173、比較器174,175,
176,177および選択回路179を有する。DPC
レジスタ170,171,172,173は、それぞれ
バンク161,162,163,164に記憶されてい
るページのメインメモリ150上の先頭アドレスを記憶
する。この先頭アドレスは、図22に示すDPレジスタ
149に記憶されるアドレスのページセレクトフィール
ド200に対応している。ここで、比較器174〜17
7においては、DPレジスタ149に記憶されたアドレ
スのうちページセレクトフィールド200のみを比較す
れば良いため、DPCレジスタ170,171,17
2,173は、ページセレクトフィールド200に記憶
される32ビットのアドレスのうち、ページセレクトフ
ィールド200に対応するアドレスを記憶する23ビッ
トを備えていればよい。
【0074】DPCレジスタ170,171,172,
173に記憶されたアドレスは、それぞれバンク16
1,162,163,164に記憶されたページと、メ
インメモリ150に記憶されたページとが入れ替えられ
たときに、DPレジスタ149に記憶されたアドレスの
ページセレクトフィールド200によって更新される。
【0075】比較器174,175,176,177
は、それぞれDPCレジスタ170,171,172,
173に記憶されたメインメモリ150上のページの開
始アドレスと、DPレジスタ149のページセレクタフ
ィールドに記憶されたアドレスとを比較し、その比較結
果を、比較データS174,S175,S176,S1
77として選択回路179のポートin0,in1,i
n2,in3にそれぞれ出力する。なお、比較器17
4,175,176,177における比較処理は、DP
レジスタ149に記憶されたアドレスが更新される度に
行われる。
【0076】選択回路179は、比較データS174,
S175,S176,S177のそれぞれに基づいて、
比較結果が一致を示している場合にはイネーブルを指示
し、比較結果が一致していない場合にはディスイネーブ
ルを指示する選択信号S1791 ,S1792 ,S17
3 ,S1794 をバンク161,162,163,1
64にそれぞれ継続して出力する。なお、選択回路17
9は、比較データS174〜S177が変化したとき
に、それぞれ選択信号S1791 〜S1794 を、イネ
ーブル指示とディスイネーブル指示との間で切り換え
る。
【0077】また、選択回路179は、比較データS1
74,S175,S176,S177の全てが不一致で
あることを示す場合には、ページフォルトを示す指示信
号S1795 を制御回路180に出力する。制御回路1
80は、ページフォルトを示す指示信号S1795 を入
力すると、DPレジスタ149に記憶されているアドレ
スのページセレクタフィールドによって示されるメイン
メモリ150上の開始アドレスからページを読み出し、
このページをローカルバス153を介して内部メモリ1
47に読み込む。この内部メモリ147に読み込まれた
新たなページは、内部メモリ147のバンク161〜1
64に記憶された4枚のページのうち、最も先にアクセ
スされたページと入れ替えられる。すなわち、LRU(L
east Recently Used) 方式を採用する。なお、ページ入
れ替えのアルゴリズムは、LRUに限定されず、種々の
方法を採ることができる。ここで、ページフォルトの検
出は、キャッシュシステムを用いたマイクロプロセッサ
におけるキャッシュヒットの判断と同様に、回路上のク
リティカルパスになることが多い。ここで、クリティカ
ルパスは、LSIの最高動作周波数を決定する要因であ
る。
【0078】次に、上述したマイクロプロセッサ121
のメモリアクセス動作について説明する。図23は、マ
イクロプロセッサ121のメモリアクセス動作を説明す
るためのフローチャートである。先ず、図20に示すイ
ンストラクションページメモリ35上のプログラムカウ
ンタ34が指し示すアドレスから命令がフェッチされ、
デコーダ36においてデコードされる。このとき、デコ
ードされた命令が、メインメモリ150のメモリアドレ
ス空間上のデータを用いた演算命令である場合には、当
該データのメインメモリ150のメモリアドレス空間内
のアドレスが、図21に示すDPレジスタ149に記憶
される(ステップS1)。
【0079】次に、比較器174〜177において、そ
れぞれDPレジスタ149に記憶されたアドレスのペー
ジセレクトフィールド200と、DPCレジスタ170
〜173に記憶されたアドレスとが比較され、それらの
比較データS174〜S177が選択回路179に出力
される(ステップS2)。
【0080】次に、選択回路179において、比較デー
タS174〜S177の何れかが、アドレスの一致を示
しているか否かが判断され(ステップS3)、一致して
いることを示す比較データがある場合には、その比較デ
ータS174〜S177に対応するバンク161〜16
4に対して、イネーブルを示す指示信号S1791 〜1
794 を出力する。これによって、イネーブルを示す指
示信号S1791 〜1794 を入力したバンク161〜
164において、DPレジスタ149に記憶されたアド
レスのページオフセットフィールド201に示されるペ
ージ内のアドレスからデータが読み出され、この読み出
されたデータが、ローカルバス153を介して、データ
レジスタr0 に転送され記憶される(ステップS4)。
【0081】一方、選択回路179において、比較デー
タS174〜S177の全てが、不一致であることを示
していると判断された場合には(ステップS3)、前述
したLRUのアルゴリズムを用いて、メインメモリ15
0から対応するページをローカルバス153を介して内
部メモリ147に読み出すことを決定する(ステップS
5)。
【0082】そして、LRUのアルゴリズムによって入
れ替え対象となった内部メモリ147のバンク161〜
164に記憶されたページ内にダーティビットが存在す
るか否かが判断され(ステップS6)、ダーディビット
が存在する場合には、当該ページをメインメモリ150
にライトバックする(ステップS8)。ここで、ダーテ
ィビットは、例えば、マイクロプロセッサ121によっ
て、当該ページに書き込みが行われた場合に付される。
【0083】次に、ステップS5において、入れ替え対
象となった内部メモリ147のバンク161〜164
に、DPレジスタ149に記憶されたアドレスによって
指し示されるページをメインメモリ150からローカル
バス153を介して読み込み、ページの入れ替えを行う
(ステップS7)。このとき、DPレジスタ149に記
憶されたアドレスのページセレクトフィールド200に
よって、入れ替えを行ったバンク161〜164に対応
するDPCレジスタ170〜173に記憶されたアドレ
スを更新する。
【0084】一方、入れ替えの対象となったバンク16
1〜164に記憶されたページ内にダーティビットが存
在しない場合にも、当該入れ替えの対象となったページ
を、メインメモリ150から読み込んだページと入れ替
えるが、メインメモリ150へのライトバックは行わな
い(ステップS7)。
【0085】図24は、図20および図21に示すマイ
クロプロセッサ121におけるメモリアクセスのタイミ
ング図である。図24(A)に示すように、最初の5サ
イクルではバンク161に対してのアクセスおよびその
手続き(オペレーション)を行い、次の5サイクルでは
バンク162に対してのアクセスおよびその手続きを行
い、次の3サイクルではバンク163に対してのアクセ
スおよびその手続きを行う。なお、図24(A)におい
て、「X」はDPレジスタ149に記憶されたアドレス
の更新を行うオペレーションを示し、「Y」はデータレ
ジスタr0 に対しての読み出し動作あるいは書き込み動
作を行うオペレーションを示している。ここで、バンク
161〜164は、既に有効なデータを保持しているも
のとする。
【0086】図24(B)は、バンク161に対しての
アクセス動作を行う際にDPレジスタ149に記憶され
るアドレスのタイミングを示し、アドレス「A0」,
「A1」,「A2」,「A3」,「A4」,「A5」
は、図22に示すページセレクトフィールド200に対
応するアドレスが全て同一である。図24(C)は、バ
ンク161に対して読み出し動作あるいは書き込み動作
が行われるデータを示している。図24(C)に示すデ
ータは、データレジスタr0 に記憶される。
【0087】また、図24(D)は、バンク162に対
してのアクセス動作を行う際にDPレジスタ149に記
憶されるアドレスのタイミングを示し、アドレス「B
0」,「B1」,「B2」,「B3」,「B4」,「B
5」は、図22に示すページセレクトフィールド200
に対応するアドレスが全て同一である。図24(E)
は、バンク162に対して読み出し動作あるいは書き込
み動作が行われるデータを示している。図24(E)に
示すデータは、データレジスタr0 に記憶される。
【0088】また、図24(F)は、バンク163に対
してのアクセス動作を行う際にDPレジスタ149に記
憶されるアドレスのタイミングを示し、アドレス「C
0」,「C1」,「C2」,「C3」は、図22に示す
ページセレクトフィールド200に対応するアドレスが
全て同一である。図24(G)は、バンク163に対し
て読み出し動作あるいは書き込み動作が行われるデータ
を示している。図24(G)に示すデータは、データレ
ジスタr0 に記憶される。
【0089】さらに、図24(H)は、バンク164に
対してのアクセス動作を行う際にDPレジスタ149に
記憶されるアドレスのタイミングを示し、図24(I)
は、バンク164に対して読み出し動作あるいは書き込
み動作が行われるデータを示している。
【0090】図24(A),(B),(C)に示すよう
に、1サイクル目では、バンク161を選択するために
DPレジスタ149にアドレス「A0」を書き込む。こ
れによって、データレジスタr0 に、バンク161内の
アドレス「A0」のページオフセットフィールド201
によって示されるアドレスからデータが読み出され、図
24(C)に示すように、バンク161のデータポート
からデータ「d0」が出力され、このデータ「d0」が
データレジスタr0 に記憶される。その後、マイクロプ
ロセッサ121において、前述した第1実施形態のマイ
クロプロセッサ1において述べたように、DPレジスタ
149のアドレスが自動的に更新され、バンク内の連続
したアドレスが順次にアクセスされる。
【0091】データレジスタr0 には、DPレジスタ1
49に記憶されたアドレスを更新した次のサイクルで、
特に指定のない限りデータの先読みを実行する。従っ
て、2サイクル目では、アドレス「A0」が更新されて
「A1」となる。これによって、バンク161のアドレ
ス「A1」からデータ「d1」が読み出され、バンク1
61のデータポートから出力される。この2サイクル目
では、バンク161が選択されているため、データレジ
スタr0 に記憶されたデータ「d0」が、図20に示す
ALU13の入力ポートに出力された直後に、バンク1
61のデータポートからデータ「d1」が出力される。
【0092】以下、同様な処理が行われ、図24(J)
に示すように、データレジスタr0には、データ「d
0」〜「d12」が順次に記憶される。
【0093】以上説明したように、マイクロプロセッサ
121によれば、バンク選択モジュール151を設ける
ことで、4個のバンク161〜164に対して、単数の
DPレジスタ149を用いてアクセスできる。なお、バ
ンク選択モジュール151のDPCレジスタ170〜1
73は、ユーザは通常の方法ではアクセスできず、ユー
ザが管理する必要がない。
【0094】ところで、第1実施形態および第2実施形
態のように、内部メモリのバンク毎に固定したデータレ
ジスタを設けると、汎用レジスタの数に制限がある場合
には、汎用レジスタとして使用できるレジスタの数が減
ってしまい、処理能力の向上が抑えられる可能性があ
る。これに対して、マイクロプロセッサ121では、単
数のデータレジスタr0 が4個の全てのバンク161〜
164とデータ転送を行うことができるため、汎用レジ
スタモジュール123に設けられた16個のレジスタの
うちの一つのみをデータレジスタr0 として設ければよ
い。その結果、汎用レジスタとして使用できるレジスタ
の数を増やすことができ、第1実施形態および第2実施
形態に比べて、処理能力をさらに向上できる。マイクロ
プロセッサ121は、特に、内部メモリのバンク数が多
い場合に有効である。
【0095】また、マイクロプロセッサ121によれ
ば、DPCレジスタ170〜173に、DPレジスタ1
49に記憶されたアドレスのページセレクトフィールド
200に対応する部分のみを記憶するため、DPレジス
タ149に記憶されたアドレスの全体を記憶する場合に
比べて、DPCレジスタ170〜173および比較器1
74〜177の回路を縮小化できる。また、比較器17
4〜177の比較処理を高速に行うことができる。
【0096】また、マイクロプロセッサ121によれ
ば、バンク数分の比較器174〜177を設けて比較処
理を並列化することで、DPレジスタ149に記憶され
たアドレスの更新時と同一のサイクルで、バンク161
〜164から所望のデータを読み出すことができる。
【0097】また、マイクロプロセッサ121によれ
ば、DPレジスタ149に記憶するアドレスを図22に
示すような、ページセレクトフィールド200とページ
オフセットフィールド201とで構成されるフォーマッ
トにしたことで、バンク選択モジュール151によって
同一のページがバンク161〜164のうち複数のバン
クに記憶されることを簡単な構成で回避でき、内部メモ
リ147を効率的に使用できる。また、DPレジスタ1
49のページオフセットフィールド201のみを内部メ
モリ147に接続すればよく、ローカルバス152のバ
ス幅を小さくできる。
【0098】さらに、マイクロプロセッサ121によれ
ば、DPレジスタ149に記憶されているアドレスのう
ち、必要なフィールドのみをDPCレジスタ170およ
びバンク161〜164に転送しているため、アドレス
線の本数を抑制できる。なお、一般的に、アドレス線は
速いアクセス速度を得るために、配線が短く、容量が少
ない方が良い。また、アドレスとして用いる配線の本数
も少ないほうがよい。アクセスに伴う電力と、電源配線
容量の効果も無視できないからである。なお、マイクロ
プロセッサ121は、前述した第1実施形態のマイクロ
プロセッサ1の効果も同様に得ることができる。
【0099】本発明は上述した実施形態には限定されな
い。例えば、上述したマイクロプロセッサ121では、
ローカルバス153を介して、DPレジスタ149およ
びメインメモリ150とバンク161〜164との間の
データ伝送を行う場合について例示したが、マイクロプ
ロセッサ121において、例えば、図25に示すよう
に、ローカルバス153a,153bを用いて、このデ
ータ伝送を実現してもよい。
【0100】この場合には、図25に示すように、ロー
カルバス153aにデータレジスタr0 を接続し、ロー
カルバス153bにメインメモリ150を接続する。ま
た、バンク161〜164を、それぞれマルチプレクサ
301〜304を介して、ローカルバス153aおよび
153bに接続する。マルチプレクサ301〜304
は、それぞれバンク161〜164を、ローカルバス1
53aおよび153bの何れか一方と選択的に接続す
る。制御回路300は、制御信号S300aをバンク1
61〜164に出力し、データレジスタr0 との間のデ
ータの読み出しおよび書き込みを制御する。また、制御
回路300は、制御信号S300bをバンク161〜1
64に出力し、メインメモリ150との間のページ入れ
替え処理を制御する。
【0101】図25に示すような構成を採用すること
で、バンク161〜164のうち一のバンクとデータレ
ジスタr0 との間のデータ転送と、その他のバンクとメ
インメモリ150との間のページ入れ替え処理とを並行
して行う(多重化する)ことができる。そのため、ペー
ジフォルトに伴うページ入れ替え処理に要する時間を隠
蔽することができる。
【0102】また、マイクロプロセッサ121では、汎
用レジスタモジュール11に単数のDPレジスタ149
を設ける場合について例示したが、本発明は、複数のD
Pレジスタを設け、そのうち少なくとも一つが複数のバ
ンクと接続可能な構成にしてもよい。
【0103】また、マイクロプロセッサ121では、D
Pレジスタ149に記憶されたアドレスが更新される度
に、比較器174〜177で比較処理を行う場合につい
て例示したが、例えば、選択回路179あるいは制御回
路180によって、DPレジスタ149に記憶されたペ
ージセレクトフィールド200が更新されたか否かを監
視し、ページセレクトフィールド200が更新された場
合にのみ、比較器174〜177における比較処理を行
うように制御してもよい。このように制御を行うこと
で、比較器174〜177における比較処理の実行頻度
を飛躍的に減少でき、低電力化を図ることができる。
【0104】また、上述したマイクロプロセッサ121
では、内部メモリ147に4個のバンクを設けた場合に
ついて例示したが、本発明では、内部メモリに設けるバ
ンクの数は2以上であれば任意である。また、上述した
マイクロプロセッサ121では、DPCレジスタ170
〜173にDPレジスタ149のページセレクトフィー
ルド200のみを記憶する場合を例示したが、DPCレ
ジスタ170〜173に、DPレジスタ149に記憶さ
れるアドレスの全体、あるいは、ページセレクトフィー
ルド200およびページオフセットフィールド201の
みを記憶するようにしてもよい。
【0105】また、マイクロプロセッサ1では、汎用レ
ジスタモジュール11のうち、2個の汎用レジスタをデ
ータレジスタr0 ,r1 として用いた場合について例示
したが、データレジスタの数は、1以上であれば任意で
ある。また、データレジスタr0 ,r1 の使用方法は、
内部メモリ47との間のインターフェイスとして用いる
他、例えば、複数のマイクロプロセッサを搭載した並列
処理プロセッサにおけるマイクロプロセッサ相互間で通
信を行う際のFIFO(First In First Out)メモリと
して用いてもよい。また、データレジスタr0,r
1 は、ローカルメモリあるいはスタックメモリとして用
いてもよい。
【0106】また、マイクロプロセッサ1では、図1に
示すように、マルチプレクサ12とマルチプレクサ16
とを独立に設けたが、マルチプレクサ16の機能をマル
チプレクサ12に組み込んでもよい。
【0107】また、マイクロプロセッサ1では、図2に
示すように、内部メモリ47を2バンクに分けて構成し
たが、内部メモリ47を3バンク以上にバンク分けした
構成、あるいは、バンク分けしていない構成にしてもよ
い。
【0108】また、マイクロプロセッサ1では、図1に
示すように、汎用レジスタモジュール11に、複数の汎
用レジスタの一部として、データレジスタr0 ,r1
設けたが、汎用レジスタモジュール11の外部に、デー
タレジスタr0 ,r1 を設け、汎用レジスタとは別に扱
うようにしてもよい。
【0109】また、図16に示すメモリ構造を持つマイ
クロプロセッサ81において、内部メモリ87の代わり
に3本のFIFOメモリを備え、データレジスタr1
Rに入力用のFIFOメモリを接続し、データレジスタ
1 −Wに出力用のFIFOメモリを接続した構成にし
てもよい。
【0110】
【発明の効果】以上説明したように、本発明の演算処理
装置およびメモリアクセス方法によれば、単数のデータ
レジスタを介して、演算手段と、内部メモリの複数のバ
ンクとの間で、データ転送を行うことができ、レジスタ
資源を効果的に利用できる。その結果、データレジスタ
として汎用レジスタを用いている場合にも、汎用レジス
タの機能を適切に発揮させることができる。また、本発
明の演算処理装置およびメモリアクセス方法によれば、
内部メモリに対してのアクセスをデータレジスタを用い
て実現することで、内部メモリに対してのアクセスをレ
ジスタに対してのアクセスと同様に扱うことができる。
その結果、ユーザのプログラム作成時の負担を軽減でき
る。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態に係わるマイク
ロプロセッサの構成図である。
【図2】図2は、図1に示すマイクロプロセッサのデー
タレジスタ、DPレジスタおよび内部メモリを説明する
ための図である。
【図3】図3は、図1に示す汎用レジスタモジュールの
構成を説明するための図である。
【図4】図4は、図1に示すマイクロプロセッサの4段
パイプラン処理を説明するための図である。
【図5】図5は、図1に示すマイクロプロセッサのパイ
プラン処理を説明するための図である。
【図6】図6は、図1に示すマイクロプロセッサにおい
て用いられる2オペランド演算命令のフォーマットを説
明するための図である。
【図7】図7は、図6に示す演算命令において、ソース
レジスタにデータレジスタを指定した場合の演算命令を
説明するための図である。
【図8】図8は、図6に示す演算命令において、ディス
ティネーションレジスタにデータレジスタを指定した場
合の演算命令を説明するための図である。
【図9】図9は、図6に示す演算命令において、ソース
レジスタおよびディスティネーションレジスタの双方に
データレジスタを指定した場合の演算命令を説明するた
めの図である。
【図10】図10は、図8に示す演算命令を連続して行
う場合に生じるパイプライン処理のストールを説明する
ための図である。
【図11】図11は、図1に示すマイクロプロセッサに
おいて用いられる3オペランド演算命令のフォーマット
を説明するための図である。
【図12】図1に示すマイクロプロセッサにおいて、従
来のマイクロプロセッサにおける図30に示すプログラ
ムと同様の処理を記述したプログラムを説明するための
図である。
【図13】図13は、図1に示すマイクロプロセッサに
おいて、図12に示すプログラムと同様の処理を、ソー
スレジスタおよびディステイネイションアドレスとして
データレジスタを指定して記述したプログラムを説明す
るための図である。
【図14】図14は、図1に示すマイクロプロセッサに
おいて、内部メモリ上の連続したメモリアドレスに記憶
されたデータを加工する処理を示すプログラムを説明す
るための図である。
【図15】図15は、図1に示すマイクロプロセッサに
おいて、メモリアクセスのパスを3系統にして、加算命
令の3個の全てのオペランドにデータレジスタを指定し
た命令を含むプログラムを説明するための図である。
【図16】図16は、本発明の第2実施形態に係わるマ
イクロプロセッサの内部メモリの周辺の構成図である。
【図17】図17は、2オペランド演算命令において、
ディスティネーションアドレスとしてデータレジスタを
指定した場合の例を説明するための図である。
【図18】図18は、本発明の第2実施形態に係わるマ
イクロプロセッサにおいて、内部メモリ上の連続したメ
モリアドレスに記憶されたデータを加工するプログラム
を説明するための図である。
【図19】図19は、図18に示すプログラムを図4に
示す4段パイプライン処理で実行した場合を説明するた
めの図である。
【図20】図20は、本発明の第3実施形態のマイクロ
プロセッサのALUの周辺の構成図である。
【図21】図21は、図20に示すマイクロプロセッサ
の内部メモリの周辺の構成図である。
【図22】図22は、図21に示すDPレジスタの構成
を説明するための図である。
【図23】図23は、図20および図21に示すマイク
ロプロセッサのメモリアクセス動作を説明するためのフ
ローチャートである。
【図24】図24は、図20および図21に示すマイク
ロプロセッサにおけるメモリアクセスのタイミング図で
ある。
【図25】図25は、図21に示すマイクロプロセッサ
の内部メモリの周辺の変形例の構成図である。
【図26】図26は、従来のRISC型およびCISC
型のマイクロプロセッサの汎用レジスタを説明するため
の図である。
【図27】図27は、従来のマイクロプロセッサおける
3個のレジスタ指定子を持つALU演算命令を説明する
ための図である。
【図28】図28は、従来のマイクロプロセッサにおけ
るメモリ上のデータを加工する命令を説明するための図
である。
【図29】図29は、従来のマイクロプロセッサの5段
パイプラン処理を説明するための図である。
【図30】図30は、図29に示す5段パイプライン処
理において、メモリ上のデータをALU演算の対象にし
た処理のプログラムを説明するための図である。
【図31】図31は、従来のマイクロプロセッサにおい
て、メモリアドレス空間上の一定の距離を隔てたアドレ
スに繰り返してアクセスする処理のプログラムを説明す
るための図である。
【符号の説明】
1…マイクロプロセッサ、11,123…汎用レジスタ
モジュール、12,16,125,127…マルチプレ
クサ、13…ALU、21,22,23,24,25,
26,27…バス、30,31,149…DPレジス
タ、35…インストラクションページメモリ、36…デ
コーダ、45、46…バンク、47,147…内部メモ
リ、50…外部メインメモリ、150…メインメモリ、
151…バンク選択モジュール、152,153…ロー
カルバス、161〜164…バンク、170〜173…
DPCレジスタ、174〜177…比較器、179…選
択回路、180…制御回路

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】メモリアドレス空間上の連続したアドレス
    に記憶された所定のデータ量のページをそれぞれ記憶す
    る複数のバンクを備えた内部メモリと、 前記メモリアドレス空間上のアドレスを記憶するデータ
    ポインタレジスタと、 演算処理を行う演算手段と、 前記内部メモリおよび前記演算手段との間でデータの転
    送を行うデータレジスタと、 前記複数のバンクに記憶されたページの前記メモリアド
    レス空間内の先頭アドレスを記憶し、当該記憶された先
    頭アドレスと、前記データポインタレジスタに記憶され
    たアドレスとを比較し、前記比較の結果に基づいて前記
    複数のバンクのいずれかにアクセス対象となるページが
    存在するか否かを判別するページ有無判別手段と、 前記判別の結果、アクセス対象となるページが前記複数
    のバンクのいずれかに存在する場合に、アクセス対象と
    なるページが記憶されたバンクと前記データレジスタと
    の間で、前記データポインタレジスタに記憶されたアド
    レスを用いてデータの転送を行うように制御する制御手
    段とを有する演算処理装置。
  2. 【請求項2】前記メモリアドレス空間を持つメインメモ
    リをさらに有し、 前記制御手段は、前記判別の結果、アクセス対象となる
    ページが前記複数のバンクのいずれにも存在しない場合
    に、前記メインメモリからアクセス対象となるページを
    読み出し、前記複数のバンクに記憶されているページと
    入れ替える請求項1に記載の演算処理装置。
  3. 【請求項3】前記ページ有無判別手段は、 前記複数のバンクに記憶されたページの前記メモリアド
    レス空間内の先頭アドレスをそれぞれ記憶する複数の先
    頭アドレス記憶手段と、 前記複数の先頭アドレス記憶手段に記憶された先頭アド
    レスと、前記データポインタレジスタに記憶されたアド
    レスとを、それぞれ比較する複数の比較手段と、 前記複数の比較手段の比較結果に基づいて、前記複数の
    バンクのいずれかにアクセス対象となるページが存在す
    るか否かを判別する判別手段と有し、 前記制御手段は、前記判別手段の判別結果に基づいて、
    前記先頭アドレスと前記データポインタレジスタに記憶
    されたアドレスとが比較の結果一致した比較手段に対応
    するバンクと、前記データレジスタとの間で、前記デー
    タポインタレジスタに記憶されたアドレスを用いてデー
    タの転送を行うように制御する請求項1に記載の演算処
    理装置。
  4. 【請求項4】前記ページ有無判別手段は、 前記データポインタレジスタに記憶されたアドレスが更
    新される度に、前記複数のバンクのいずれかにアクセス
    対象となるページが存在するか否かを判別する請求項1
    に記載の演算処理装置。
  5. 【請求項5】前記データポインタレジスタに記憶される
    前記メモリアドレス空間上のアドレスは、前記メモリア
    ドレス空間内でのページのオフセットアドレスと、当該
    ページ内でのデータのオフセットアドレスとを有し、 前記ページ有無判別手段は、 前記複数のバンクに記憶されたページの前記メモリアド
    レス空間内でのページのオフセットアドレスを記憶し、 前記記憶されたページのオフセットアドレスと、前記デ
    ータポインタレジスタに記憶されたアドレスに含まれる
    ページのオフセットアドレスとを比較する請求項1に記
    載の演算処理装置。
  6. 【請求項6】前記ページ有無判別手段は、 前記データポインタレジスタに記憶されたアドレスに含
    まれる前記ページのオフセットアドレスが更新されたと
    きにのみ、前記比較を行う請求項5に記載の演算処理装
    置。
  7. 【請求項7】前記内部メモリの複数のバンクには、前記
    メモリアドレス空間上に記憶されたデータが重複しない
    ように記憶されている請求項1に記載の演算処理装置。
  8. 【請求項8】前記複数のバンクにおける前記データポイ
    ンタレジスタに記憶されたアドレスから読み出したデー
    タを、前記データレジスタに転送して記憶し、当該デー
    タレジスタに記憶したデータを前記演算手段に転送して
    メモリリード動作を行う請求項1に記載の演算処理装
    置。
  9. 【請求項9】前記データポインタレジスタに記憶された
    前記複数のバンクにおけるアドレスに、前記データレジ
    スタにデータを書き込んでメモリライト動作を行う請求
    項1に記載の演算処理装置。
  10. 【請求項10】複数の汎用レジスタの一部を、前記デー
    タレジスタとして用いる請求項1に記載の演算処理装
    置。
  11. 【請求項11】演算手段からデータレジスタを介して、
    メモリアドレス空間上の連続したアドレスに記憶された
    所定のデータ量のページをそれぞれ記憶する複数のバン
    クを備えた内部メモリにアクセスするメモリアクセス方
    法であって、 前記メモリアドレス空間上のアドレスをデータポインタ
    レジスタに記憶し、 前記複数のバンクに記憶されたページの前記メモリアド
    レス空間内の先頭アドレスを記憶し、 当該記憶された先頭アドレスと、前記データポインタレ
    ジスタに記憶されたアドレスとを比較し、 前記比較の結果に基づいて、前記複数のバンクのいずれ
    かにアクセス対象となるページが存在するか否かを判別
    し、 前記判別の結果、アクセス対象となるページが前記複数
    のバンクのいずれかに存在する場合に、アクセス対象と
    なるページが記憶されたバンクとデータレジスタとの間
    で、前記データポインタレジスタに記憶されたアドレス
    を用いてデータの転送を行うメモリアクセス方法。
JP21962397A 1997-08-14 1997-08-14 演算処理装置およびメモリアクセス方法 Pending JPH1165923A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21962397A JPH1165923A (ja) 1997-08-14 1997-08-14 演算処理装置およびメモリアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21962397A JPH1165923A (ja) 1997-08-14 1997-08-14 演算処理装置およびメモリアクセス方法

Publications (1)

Publication Number Publication Date
JPH1165923A true JPH1165923A (ja) 1999-03-09

Family

ID=16738438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21962397A Pending JPH1165923A (ja) 1997-08-14 1997-08-14 演算処理装置およびメモリアクセス方法

Country Status (1)

Country Link
JP (1) JPH1165923A (ja)

Similar Documents

Publication Publication Date Title
JP3864160B2 (ja) 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
EP0782071B1 (en) Data processor
JP3587259B2 (ja) 命令処理制御システム
EP2650778B1 (en) Method and apparatus for token triggered multithreading
JP3842474B2 (ja) データ処理装置
JPH11312122A (ja) 使用者が構築可能なオンチッププログラムメモリシステム
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US7308320B2 (en) Processor core for using external extended arithmetic unit efficiently and processor incorporating the same
JPH09311786A (ja) データ処理装置
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2015201216A (ja) マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JPH05143443A (ja) データ処理装置
JPH0553803A (ja) プロセツサ
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP4230504B2 (ja) データプロセッサ
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
JP2006517322A (ja) パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置
US6725355B1 (en) Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks
JP4110137B2 (ja) アドレスレジスタの内容をスワップするための方法および装置
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
JP2682217B2 (ja) マイクロプロセッサ
US20020188817A1 (en) Store buffer pipeline