JPH11328123A - プロセッサ、並列プロセッサおよび演算処理方法 - Google Patents

プロセッサ、並列プロセッサおよび演算処理方法

Info

Publication number
JPH11328123A
JPH11328123A JP13893898A JP13893898A JPH11328123A JP H11328123 A JPH11328123 A JP H11328123A JP 13893898 A JP13893898 A JP 13893898A JP 13893898 A JP13893898 A JP 13893898A JP H11328123 A JPH11328123 A JP H11328123A
Authority
JP
Japan
Prior art keywords
instruction
page
memory
instruction page
stored
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
JP13893898A
Other languages
English (en)
Inventor
Schroebenhauser Thomas
シュローベンハウザー トーマス
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 JP13893898A priority Critical patent/JPH11328123A/ja
Publication of JPH11328123A publication Critical patent/JPH11328123A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 高い演算性能を発揮できる並列プロセッサを
提供する。 【解決手段】 レジスタ群207に記憶されたインスト
ラクションポインタによって指し示されるインストラク
ションローカルメモリ201のインストラクションペー
ジが切り換わると、アドレスデコーダ230において、
当該切り換わった後のインストラクションページに続い
て前記インストラクションポインタで指し示されるイン
ストラクションページがインストラクションローカルメ
モリ201に記憶されているか否かを判断し、記憶され
ていないと判断した場合に、当該インストラクションペ
ージが、共有メモリ24からインストラクションローカ
ルメモリ201に読み込まれる。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、共有メモリからイ
ンストラクションローカルメモリ(インストラクション
キャッシュメモリ)にインストラクションページをプリ
ロードする並列プロセッサ、プロセッサおよび演算処理
方法に関する。
【0002】
【従来の技術】近年、プログラム中の同時に実行可能な
複数の命令を1チップ内に組み込まれた複数のプロセッ
サエレメント(PE)で並列に実行し、プログラム全体
の実行時間の短縮を図る並列プロセッサの開発が行われ
ている。このような並列プロセッサのアーキテクチャと
して種々のものが提案されているが、それらの一つとし
て、1組のコモンバス(共有バス)に、複数のプロセッ
サエレメントおよび共有メモリを接続したものがある。
【0003】図9は、従来の一般的な並列プロセッサ1
のシステム構成図である。図9に示すように、並列プロ
セッサ1は、1チップ内にコモンバス2、n個のプロセ
ッサエレメント31 〜3n 、共有メモリ4およびバスユ
ニット5が組み込まれており、コモンバス2にプロセッ
サエレメント31 〜3n 、共有メモリ4およびバスユニ
ット5が接続されている。また、バスユニット5は、外
部のチップインタフェース6を介してメインメモリ7に
接続されている。また、共有メモリ4のメモリセル領域
4aには、1個のデータポートI/Oが備えられてい
る。並列プロセッサ1では、プロセッサエレメント31
〜3n が、共有メモリ4に記憶されているデータにアク
セスするときに、コモンバス2およびデータポートI/
Oを介してデータが伝送される。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た並列プロセッサ1では、プロセッサエレメント31
n と共有メモリ4との間のデータ転送および共有メモ
リ4とメインメモリ7との間のデータ転送が共にコモン
バス2を介して行われ、しかも、共有メモリ4のメモリ
セル領域4aが1個のデータポートI/Oしか備えてい
ないため、以下に示すような理由から、プロセッサエレ
メント31 〜3n の待ち時間が長くなる可能性が高いと
いう問題がある。すなわち、共有メモリ4にページフォ
ルトが発生し、共有メモリ4とメインメモリ7との間で
ページの入れ替えを行っている間は、コモンバス2が使
用中であるため、プロセッサエレメント31 〜3n は共
有メモリ4にアクセスできない。従って、プロセッサエ
レメント31 〜3n から共有メモリ4に対してのアクセ
ス要求(リクエスト)は、ページ入れ替え処理が終了す
るまで待たされてしまい、並列プロセッサ1の演算性能
が低下する。
【0005】本発明は上述した従来技術の問題点に鑑み
てなされ、高い演算性能を発揮できるプロセッサ、並列
プロセッサおよび演算処理方法を提供することを目的と
する。
【0006】
【課題を解決するための手段】上述した従来技術の問題
点を解決し、上述した目的を達成するために、本発明の
プロセッサは、複数のインストラクションを含むインス
トラクションページを記憶する内部メモリと、前記内部
メモリに記憶されたインストラクションページのインス
トラクションを順次に指し示すポインタ手段と、前記ポ
インタ手段で指し示されたインストラクションを前記内
部メモリから読み込んで実行する演算手段と、前記ポイ
ンタ手段が指し示すインストラクションのインストラク
ションページが、第1のインストラクションページから
第2のインストラクションページに切り換わる前に、前
記第2のインストラクションページが前記内部メモリに
記憶されているか否かを判断し、記憶されていないと判
断した場合に、前記第2のインストラクションページ
を、外部メモリから前記内部メモリに読み込む制御手段
とを有する。
【0007】本発明のプロセッサは、ポインタ手段によ
って指し示されるインストラクションが内部メモリから
演算手段に読み出され、当該インストラクションが演算
手段で実行される。そして、演算手段におけるインスト
ラクションの実行に応じて、前記内部メモリに記憶され
たインストラクションがポインタ手段によって順次に指
し示される。そして、前記ポインタ手段が指し示すイン
ストラクションのインストラクションページが、第1の
インストラクションページから第2のインストラクショ
ンページに切り換わる前に、前記制御手段によって、前
記第2のインストラクションページが前記内部メモリに
記憶されているか否かが判断され、記憶されていないと
判断された場合に、前記第2のインストラクションペー
ジが前記外部メモリから前記内部メモリに読み込まれ
る。
【0008】また、本発明のプロセッサは、好ましく
は、前記制御手段は、前記ポインタ手段が指し示すイン
ストラクションのインストラクションページが、第1の
インストラクションページに切り換わったときに、前記
第2のインストラクションページが前記内部メモリに記
憶されているか否かを判断し、記憶されていないと判断
した場合に、前記第2のインストラクションページを前
記外部メモリから前記内部メモリに読み込む。
【0009】また、本発明のプロセッサは、好ましく
は、前記ポインタ手段は、前記演算手段が前記インスト
ラクションを読み出す毎に、前記内部メモリのアドレス
空間のアドレスを所定のアドレス間隔で順次に増加ある
いは減少させて指し示す。
【0010】また、本発明の並列プロセッサは、それぞ
れインストラクションに基づいて動作する複数のプロセ
ッサエレメントと、前記複数のプロセッサエレメントに
前記インストラクションを供給し、各々複数のインスト
ラクションを含む複数のインストラクションページを記
憶する共有メモリとを有する。ここで、前記プロセッサ
エレメントは、複数の前記インストラクションページを
記憶する内部メモリと、前記内部メモリに記憶されたイ
ンストラクションページのインストラクションを順次に
指し示すポインタ手段と、前記ポインタ手段で指し示さ
れたインストラクションを前記内部メモリから読み込ん
で実行する演算手段と、前記ポインタ手段が指し示すイ
ンストラクションのインストラクションページが、第1
のインストラクションページから第2のインストラクシ
ョンページに切り換わる前に、前記第2のインストラク
ションページが前記内部メモリに記憶されているか否か
を判断し、記憶されていないと判断した場合に、前記第
2のインストラクションページを前記共有メモリから前
記内部メモリに読み込む制御手段とを有する。
【0011】また、本発明の演算処理方法は、各々複数
のインストラクションを含む複数のインストラクション
ページを記憶する内部メモリに記憶されたインストラク
ションをポインタデータで順次に指し示し、前記ポイン
タデータが指し示したインストラクションを前記内部メ
モリから読み込んで実行し、前記ポインタデータが指し
示すインストラクションのインストラクションページ
が、第1のインストラクションページから第2のインス
トラクションページに切り換わる前に、前記第2のイン
ストラクションページが前記内部メモリに記憶されてい
るか否かを判断し、記憶されていないと判断した場合
に、前記第2のインストラクションページを外部メモリ
から前記内部メモリに読み込む。
【0012】
【発明の実施の形態】以下、本発明の実施形態に係わる
並列プロセッサについて詳細に説明する。第1実施形態 図1は、本実施形態の並列プロセッサ21のシステム構
成図である。図1に示すように、並列プロセッサ21
は、例えば、コモンバス22、プロセッサエレメント2
1 〜23n 、共有メモリ24、バスユニット25およ
び外部アクセスバス26を有する。
【0013】並列プロセッサ21では、コモンバス22
に、プロセッサエレメント231 〜23n および共有メ
モリ24が接続されている。また、外部アクセスバス2
6に、共有メモリ24およびバスユニット25が接続さ
れている。
【0014】コモンバス22は128ビットのバス幅を
有し、外部アクセスバス26は32ビットのバス幅を有
している。コモンバス22は、外部アクセスバス26に
比べて4倍以上のデータ転送速度を持つ。なお、コモン
バス22と外部アクセスバス26とのバス幅を同じにし
て、同じデータ転送速度を持つようにすることも可能で
ある。
【0015】プロセッサエレメント23 1 〜23 n プロセッサエレメント231 〜23n は、例えば、並列
プロセッサ21がMIMD(Multiple Instruction Mult
iple Data)型の並列プロセッサの場合には、個々にプロ
グラムカウンタに相当するインストラクションポインタ
レジスタを持ち、当該インストラクションポインタレジ
スタに記憶されたインストラクションポインタによって
指し示されるインストラクションに基づいた処理を相互
に独立して行う。プロセッサエレメント231 〜23n
としては、例えば、RISC(Reduced Instruction Set
Computer)型の汎用プロセッサが用いられる。
【0016】図2は、プロセッサエレメント231 の構
成図である。なお、プロセッサエレメント232 〜23
n は、プロセッサエレメント231と同じ構成をしてい
る。図2に示すように、プロセッサエレメント23
1 は、インストラクションバス200、インストラクシ
ョンローカルメモリ201、データローカルメモリ20
2、データバス203,204、内部バス205、CP
Uコア206、ページセレクタ220およびアドレスデ
コーダ230を有する。
【0017】インストラクションローカルメモリ201
は、各々512バイトのインストラクションページを記
憶するバンク201a,201b,201c,201d
を有する。バンク201a,201b,201c,20
1dの各々は、インストラクションバス200を介して
CPUコア206に接続されていると共に、内部バス2
05およびコモンバス22を介して図1に示す共有メモ
リ24に接続されている。
【0018】データローカルメモリ202は、各々51
2バイトのサブページを記憶するバンク202a,20
2b,202c,202dを有する。バンク202a,
202b,202c,201dの各々は、データバス2
03および204を介してCPUコア206のレジスタ
群207に接続されていると共に、データバス205お
よびコモンバス22を介して図1に示す共有メモリ24
に接続されている。ここで、サブページは、図1に示す
メインメモリ7上の連続したアドレスの記憶領域に記憶
された512バイトのデータであり、後述するように、
4個の連続したアドレスのサブページによって1ページ
が構成される。また、バンク202a,202b,20
2c,201dは、相互に異なるページのサブページを
記憶可能である。
【0019】CPUコア206は、図3に示すように、
コントロールレジスタ群207a、グローバルレジスタ
群207bおよびインストラクションポインタレジスタ
207cからなるレジスタ群207を有する。
【0020】コントロールレジスタ群207aは、例え
ば8個のコントロールレジスタからなり、これらのうち
の3つが図3に示すように、データポインタレジスタ2
07a1,207a2およびマシンコントロールレジス
タ207a3として使用される。ここで、マシンコント
ロールレジスタ207a3の記憶データの所定ビットに
よって、後述するインストラクションプリロード機能を
動作させるか否かが決定される。グローバルレジスタ群
207bは、例えば16個のグローバルレジスタからな
り、これらのうちの2つがデータレジスタ207b1,
207b2として使用される。データレジスタ207b
1,207b2は、それぞれデータバス203,204
に接続されており、CPUコア206でのインストラク
ション(命令)の実行に応じた制御によってデータロー
カルメモリ202から転送されたデータを記憶する。
【0021】インストラクションポインタレジスタ20
7cは、CPUコア206が次にフェッチするインスト
ラクションが記憶されているインストラクションローカ
ルメモリ201内の位置を指し示すインストラクション
ポインタを記憶する。ここで、インストラクションポイ
ンタは、アドレスのオートインクリメント機能により、
CPUコア206がインストラクションをフェッチする
度に、インストラクションローカルメモリ201のアド
レス空間内の次のアドレスを自動的に指し示す。
【0022】CPUコア206は、インストラクション
ポインタレジスタ207cに記憶されているインストラ
クションポインタが指し示すインストラクションを、イ
ンストラクションローカルメモリ201から読み込ん
で、当該インストラクションに基づいて演算を行い、必
要に応じてデータローカルメモリ202からレジスタ群
207に読み込んだデータを演算に用いる。
【0023】ページセレクタ220は、図4に示すよう
に、インストラクションローカルメモリ201のバンク
201a,201b,201c,201dの各々に対応
したエントリィ220a,220b,220c,220
dを有する。エントリィ220a〜220dの各々は、
インストラクションローカルメモリ201のそれぞれ対
応するバンクに記憶されているインストラクションペー
ジのページ番号(先頭アドレス)を示すフィールド22
0a1〜220d1と、当該インストラクションページ
の有効性を示すフィールド220a2〜220d2とを
有する。
【0024】アドレスデコーダ230は、インストラク
ションポインタレジスタ207cに記憶されているイン
ストラクションポインタS207cが指し示すインスト
ラクションのインストラクションページが切り換わった
ときに、当該切り換わった後のインストラクションペー
ジに続いて指し示されるインストラクションページが、
インストラクションローカルメモリ201に存在するか
否かを、ページセレクタ220を参照して判断する。
【0025】具体的には、アドレスデコーダ230は、
前記切り換わった後のインストラクションページに続い
て指し示されるインストラクションページのページ番号
が、ページセレクタ220のエントリィ220a〜22
0dのフィールド220a1〜220d1に記憶されて
いるページ番号の何れかと一致し、しかも、当該一致し
たフィールド220a1〜220d1に対応するフィー
ルド220a2〜220d2が有効であることを示して
いる場合に、前記切り換わった後のインストラクション
ページに続いて指し示されるインストラクションページ
がインストラクションローカルメモリ201に存在する
と判断し、それ以外の場合に存在しないと判断する。
【0026】アドレスデコーダ230は、前記切り換わ
った後のインストラクションページに続いて指し示され
るインストラクションページがインストラクションロー
カルメモリ201に記憶されていないと判断した場合
に、共有メモリ24にインストラクションページの入れ
替え要求信号を出力し、LRU(Least Recently Used)
方式で、スワッピング動作を行う。すなわち、バンク2
01a〜201dに記憶されているインストラクション
ページのうち一つを内部バス205およびコモンバス2
2を介して共有メモリ24に退避した後に、前記切り換
わった後のインストラクションページに続いて指し示さ
れるインストラクションページを共有メモリ24から前
記退避したインストラクションページが記憶されていた
インストラクションローカルメモリ201のバンク20
1a〜201dに読み出す。
【0027】バスユニット25 図1に示すバスユニット25は、並列プロセッサ21の
外部に設けられたチップインタフェース6を介してメイ
ンメモリ7に接続されている。メインメモリ7は、4G
バイトの連続したアドレスを持つメモリ空間を有する。
【0028】共有メモリ24 図5は、図1に示す共有メモリ24の構成図である。図
5に示すように、共有メモリ24は、例えば、コモンバ
ス用制御回路31、外部バス用制御回路32、制御回路
33、メモリ内部バス51,52、マルチプレクサ(M
UX)53,54,55,56、第1の記憶手段として
のメモリセル領域90、アドレスデコーダ57,58,
59,60、第2の記憶手段としてのタグデータ領域1
20およびリクエストキュー125を有する。
【0029】なお、本実施形態では、コモンバス用制御
回路31、外部バス用制御回路32および制御回路33
が制御手段として機能する。制御回路33は、コモンバ
ス用制御回路31、外部バス用制御回路32、マルチプ
レクサ53〜56、アドレスデコーダ57〜60を制御
する。また、制御回路33は、プロセッサエレメント2
1 〜23n から、インストラクションページおよびサ
ブページのうち少なくとも一方の入れ替え要求信号(ア
クセス要求)を入力した場合に、要求があったインスト
ラクションあるいはサブページがメモリセル領域90に
記憶されているか否か(ページヒットの有無)をタグデ
ータ領域120に記憶された特性データとしてタグデー
タを参照して判断し、ページフォルトが発生したと判断
した場合には、後述する方法で、メモリセル領域90に
記憶されている複数のページの中から、メインメモリ7
からページインするページと入れ替えを行う対象とする
ページを決定する。また、制御回路33は、プロセッサ
エレメント231 〜23n から要求があったインストラ
クションページあるいはサブページを最初にメインメモ
リ7から共有メモリ24に転送するように、共有メモリ
24とメインメモリ7との間のページ転送を制御する。
【0030】コモンバス用制御回路31は、メモリ内部
バス51およびコモンバス22を介したプロセッサエレ
メント231 〜23n とメモリサブバンク41〜44と
の間のインストラクションページおよびサブページの転
送を制御する。具体的には、コモンバス用制御回路31
は、制御回路33から制御信号に基づいて、制御信号S
31を出力してアドレスデコーダ57〜60を制御する
と共に、マルチプレクサ53〜56の切り換え制御を行
う。
【0031】外部バス用制御回路32は、メモリ内部バ
ス52および外部アクセスバス26を介したメモリサブ
バンク41〜44とメインメモリ7との間のページの転
送を制御する。具体的には、外部バス用制御回路32
は、制御回路33からの制御信号に基づいて、制御信号
S32を出力してアドレスデコーダ57〜60を制御す
ると共に、マルチプレクサ53〜56の切り換え制御を
行う。
【0032】マルチプレクサ53〜56は、制御信号S
31,S32および制御回路33からの制御信号に基づ
いて、それぞれメモリサブバンク41〜44を、メモリ
内部バス51および52の何れか一方と接続する。
【0033】アドレスデコーダ57〜60は、制御信号
S31,S32をデコードして、それぞれメモリサブバ
ンク41〜44に対してのアクセスを制御する。
【0034】メモリセル領域90は、4個のメモリサブ
バンク41〜44に物理的に等分に分割されている。メ
モリサブバンク41〜44は、それぞれシングルデータ
ポートを備えている。また、メモリセル領域90は、そ
れぞれメモリサブバンク41〜44に対して等分に跨が
るように、m個のバンク800 〜80m-1 によって区切
られている。メモリサブバンク41〜44は、例えば、
それぞれm個のインストラクションページおよびサブペ
ージを記憶可能な記憶容量を有する。なお、サブページ
は、画像データを含んでいる。メモリサブバンク41〜
44は、それぞれマルチプレクサ53〜56、メモリ内
部バス51およびコモンバス22を介して、プロセッサ
エレメント231 〜23n との間で、データの入れ替え
をインストラクションページ単位あるいはサブページ単
位で行う。ここで、データを入れ換えるとは、プロセッ
サエレメント231 〜23n からメモリサブバンク41
〜44にデータを書き込む動作、メモリサブバンク41
〜44からプロセッサエレメント231 〜23n にデー
タを読み出す動作、および、その両方の動作を含む。
【0035】コモンバス22は128ビットのバス幅を
有することから、インストラクションページあるいはサ
ブページが1回当たりのデータ転送の単位となるコモン
バス22を介したバスオペレーションでは、512バイ
トのインストラクションページあるいはサブページを転
送するには、32(=512×8/128)回分のバス
トランザクションが最低限必要である。
【0036】また、メモリサブバンク41〜44は、マ
ルチプレクサ53〜56、メモリ内部バス52および外
部アクセスバス26を介して、各バンク800 〜80
m-1 に記憶されるページ単位で、メインメモリ7との間
でデータを入れ替える。ここで、1ページは2Kバイト
であり、4個のインストラクションページあるいはサブ
ページからなる。従って、プロセッサエレメント231
〜23n がアクセスしようとするインストラクションペ
ージあるいはサブページの先頭アドレスが、図6に示す
A番地、(A+512)番地、(A+1024)番地あ
るいは(A+1536)番地である場合には、メインメ
モリ7からA番地から2Kバイトの連続したアドレスに
記憶された1ページ分のデータを共有メモリ4に転送
し、この1ページ分のデータを4個のインストラクショ
ンページあるいはサブページに分割して、各バンク80
0 〜80m に記憶する。本実施形態では、メインメモリ
7の4Gバイトのメモリ空間を、32ビットのアドレス
で指し示している。ここで、この32ビットのアドレス
のうち、31〜11ビット目がページの先頭アドレスを
示し、10〜0ビット目がページ内のアドレスを示して
いる。また、10ビット目および9ビット目がサブバン
クを示している。
【0037】メモリサブバンク41〜44に記憶されて
いるインストラクションページおよびサブページは、全
てのプロセッサエレメント231 〜23n で共有できる
ように、システム全体で、インストラクションページお
よびサブページのデータ量を統一することが望ましい。
本実施形態では、プロセッサエレメント231 〜23n
のサブバンク271 のメモリ容量を512バイトとし、
インストラクションページおよびサブページのデータ量
も512バイトとしている。ここで、外部アクセスバス
26は32ビットのバス幅を有するため、ページがデー
タ転送の単位となる外部アクセスバス26を介した1回
当たりのバスオペレーションでは、2Kバイトのページ
を転送するために、512(=2048×8/32)回
分のバストランザクションが最低限必要である。
【0038】タグデータ領域120は、図5に示すよう
に、メモリサブバンク41〜44からなるメモリセル領
域90に記憶されたインストラクションページおよびサ
ブページの特性データとしてのタグデータを記憶する。
タグデータ領域120は、バンク800 〜80m-1 に対
応したタグバンク1300 〜130m-1 を有し、タグバ
ンク1300 〜130m-1 には、それぞれバンク800
〜80m に記憶されているインストラクションページお
よびサブページの特性を示すデータが記憶されている。
タグデータは、バリッド識別領域121、ダーティ識別
領域122およびページセレクタ領域123から構成さ
れる。
【0039】バリッド識別領域121は、インストラク
ションページおよびサブページの各々の有効性を示す1
ビットのバリッドビットを、インストラクションページ
およびサブページの数だけ備えている。例えば、バリッ
ド識別領域121には、有効なインストラクションペー
ジおよびサブページに対応するバリッドビットにバリッ
ドを示す「1」がセットされ、有効でない(無効な)イ
ンストラクションページおよびサブページに対応するバ
リッドビットにインバリッドを示す「0」がセットされ
ている。
【0040】ダーティ識別領域122は、インストラク
ションページおよびサブページの各々のデータがダーテ
ィであるか否かを示す1ビットのダーティビットを、イ
ンストラクションページおよびサブページの数だけ備え
ている。ここで、ダーティであるとは、当該インストラ
クションページおよびサブページに、プロセッサエレメ
ント231 〜23n から書き込みがあったことを意味
し、当該インストラクションページおよびサブページが
記憶されている記憶領域を開放するときに、当該インス
トラクションページおよびサブページをメインメモリ7
に書き戻す必要がある。すなわち、ライトバックを行う
必要がある。例えば、ダーティ識別領域122には、ダ
ーティなインストラクションページおよびサブページに
対応するダーティビットにバリッドを示す「1」がセッ
トされ、ダーティでないインストラクションページおよ
びサブページに対応するダーティビットにインバリッド
を示す「0」がセットされている。
【0041】ページセレクタ領域123は、バンク80
0 〜80m に記憶されているページの識別番号(例え
ば、ページの先頭アドレス)を示すページセレクタを有
する。
【0042】また、リクエストキュー125は、コモン
バス22およびメモリ内部バス51を介して入力した共
有メモリ4に対してのプロセッサエレメント231 〜2
nから複数のアクセス要求が競合した場合に、これら
のアクセス要求をキューに蓄え、所定の順番で制御回路
33に出力して実行させる。
【0043】以下、並列プロセッサ21の動作について
説明する。インストラクションページのプリロード動作 先ず、図2に示すプロセッサエレメント231 における
インストラクションプリロード動作について説明する。
なお、ここでは、図3に示すコントロールレジスタ群2
07aのマシンコントロールレジスタ207a3の記憶
データが、インストラクションプリロード機能を実行す
ることを示している場合を説明する。先ず、図2に示す
CPUコア206でインストラクションが順次に実行さ
れる。このとき、アドレスのオートインクリメント機能
によって、図3に示すインストラクションポインタレジ
スタ207cに記憶されるインストラクションポインタ
IPTRが指し示すアドレスが順次に自動的に増加(イ
ンクリメント)される。
【0044】そして、図7(A)に示すように、当該イ
ンストラクションポインタIPTRが、インストラクシ
ョンローカルメモリ201のバンク201aに記憶され
ているインストラクションページIP1 の先頭のアドレ
スのインストラクションを指し示すと、図2に示すアド
レスデコーダ230は、インストラクションページIP
1 に続いて指し示されるインストラクションページIP
2 が、インストラクションローカルメモリ201に記憶
されているか否かを、ページセレクタ220を参照して
判断する。
【0045】そして、アドレスデコーダ230は、イン
ストラクションページIP2 がインストラクションロー
カルメモリ201に記憶されていないと判断すると、L
RU方式により、バンク201bに記憶されているイン
ストラクションページを、図2に示す内部バス205お
よびコモンバス22を介して共有メモリ24に退避し、
インストラクションIP2 を共有メモリ24から読み出
してバンク201bに記憶する。このとき、バンク20
1bと共有メモリ24との間でのインストラクションペ
ージのスワップ処理は、CPUコア206によるインス
トラクションローカルメモリ201へのアクセス処理と
並行して、すなわちバックグランドで行われるため、C
PUコア206の処理がストールすることはない。
【0046】そして、CPUコア206においてインス
トラクションが順次に実行され、図7(B)に示すよう
に、当該インストラクションポインタIPTRが、イン
ストラクションページIP2 の先頭のインストラクショ
ンを指し示すと、当該インストラクションページIP2
は、インストラクションローカルメモリ201のバンク
201bに既に記憶されているため、ページフォルトは
生じない。
【0047】このとき、図2に示すアドレスデコーダ2
30は、インストラクションページIP2 に続いて指し
示されるインストラクションページIP3 が、インスト
ラクションローカルメモリ201に記憶されているか否
かを、ページセレクタ220を参照して判断する。
【0048】そして、アドレスデコーダ230は、イン
ストラクションページIP3 がインストラクションロー
カルメモリ201に記憶されていないと判断すると、L
RU方式により、バンク201cに記憶されているイン
ストラクションページを、図2に示す内部バス205お
よびコモンバス22を介して共有メモリ24に退避し、
インストラクションIP3 を共有メモリ24から読み出
してバンク201cに記憶する。このとき、バンク20
1cと共有メモリ24との間でのインストラクションペ
ージのスワップ処理は、CPUコア206によるインス
トラクションローカルメモリ201へのアクセス処理と
並行して行われるため、CPUコア206の処理がスト
ールすることはない。
【0049】そして、CPUコア206においてインス
トラクションが順次に実行され、図7(C)に示すよう
に、当該インストラクションポインタIPTRが、イン
ストラクションページIP3 の先頭のインストラクショ
ンを指し示すと、当該インストラクションページIP3
は、インストラクションローカルメモリ201のバンク
201cに既に記憶されているため、ページフォルトは
生じない。
【0050】このとき、図2に示すアドレスデコーダ2
30は、インストラクションページIP3 に続いて指し
示されるインストラクションページIP4 が、インスト
ラクションローカルメモリ201に記憶されているか否
かを、ページセレクタ220を参照して判断する。
【0051】そして、アドレスデコーダ230は、イン
ストラクションページIP4 がインストラクションロー
カルメモリ201に記憶されていないと判断すると、L
RU方式により、バンク201dに記憶されているイン
ストラクションページを、図2に示す内部バス205お
よびコモンバス22を介して共有メモリ24に退避し、
インストラクションIP4 を共有メモリ24から読み出
してバンク201dに記憶する。このとき、バンク20
1dと共有メモリ24との間でのインストラクションペ
ージのスワップ処理は、CPUコア206によるインス
トラクションローカルメモリ201へのアクセス処理と
並行して行われるため、CPUコア206の処理がスト
ールすることはない。
【0052】そして、CPUコア206においてインス
トラクションが順次に実行され、図7(D)に示すよう
に、当該インストラクションポインタIPTRが、イン
ストラクションページIP4 の先頭のインストラクショ
ンを指し示すと、当該インストラクションページIP4
は、インストラクションローカルメモリ201のバンク
201dに既に記憶されているため、ページフォルトは
生じない。
【0053】このとき、図2に示すアドレスデコーダ2
30は、インストラクションページIP4 に続いて指し
示されるインストラクションページIP5 が、インスト
ラクションローカルメモリ201に記憶されているか否
かを、ページセレクタ220を参照して判断する。
【0054】そして、アドレスデコーダ230は、イン
ストラクションページIP5 がインストラクションロー
カルメモリ201に記憶されていないと判断すると、L
RU方式により、バンク201aに記憶されているイン
ストラクションページを、図2に示す内部バス205お
よびコモンバス22を介して共有メモリ24に退避し、
インストラクションIP5 を共有メモリ24から読み出
してバンク201aに記憶する。このとき、バンク20
1aと共有メモリ24との間でのインストラクションペ
ージのスワップ処理は、CPUコア206によるインス
トラクションローカルメモリ201へのアクセス処理と
並行して行われるため、CPUコア206の処理がスト
ールすることはない。そして、インストラクションポイ
ンタIPTRが指し示すアドレスが順次に増加するに応
じて、前述した処理が繰り返される。
【0055】共有メモリ24の動作 ここで、図8に示すように、nを任意の整数としたとき
に、ページP(n)を構成する4つのインストラクショ
ンページあるいはサブページのうち、サブバンク41,
42,43,44に記憶されるものをそれぞれPs0
(n),Ps1(n),Ps2(n),Ps3(n)と
する。
【0056】例えば、図5に示す制御回路33が、図1
に示すプロセッサエレメント231から、インストラク
ションページあるいはサブページの入れ替え要求信号を
入力した場合に、タグデータ領域120に記憶されたタ
グデータから、当該要求があったインストラクションペ
ージあるいはサブページPs1(1)がメモリセル領域
90に記憶されていない場合、ページミスと判断され、
外部アクセスバス26を介して、共有メモリ24と図1
に示すメインメモリ7との間で、当該要求があったイン
ストラクションページあるいはサブページPs1(1)
を含むページP(1)と、共有メモリ24に既に記憶さ
れているページとが入れ替えられる。このとき、ページ
P(1)を構成する4個のインストラクションページあ
るいはサブページPs0(1),Ps1(1),Ps2
(1),Ps3(1)のうち、プロセッサエレメント2
1 から要求のあったインストラクションページあるい
はサブページPs1(1)が最初に入れ替えられる。
【0057】そして、当該要求があったインストラクシ
ョンページあるいはサブページPs1(1)が、コモン
バス22を介して、共有メモリ24からプロセッサエレ
メント231 に出力される。このとき、インストラクシ
ョンページあるいはサブページPs1(1)の入れ替え
直後から、共有メモリ24とプロセッサエレメント23
1 との間でのインストラクションページあるいはサブペ
ージPs1(1)の入れ替えと並行して、メインメモリ
7と共有メモリ24との間でインストラクションページ
あるいはサブページPs2(1),Ps3(1),Ps
0(1)が順に入れ替えられる。
【0058】なお、プロセッサエレメントPEが要求し
たインストラクションページあるいはサブページをコモ
ンバス22を介して最終的に当該プロセッサエレメント
PEに転送するまでの処理をフォアグランドジョブと呼
び、残りの3つのインストラクションページあるいはサ
ブページを外部アクセスバス26を介してメインメモリ
7から共有メモリ24に転送する処理をバックグランド
ジョブと呼ぶ。
【0059】以上説明したように、並列プロセッサ21
によれば、図2に示すCPUコア206において実行さ
れるインストラクションのアドレスの自動インクリメン
ト機能を用いた場合に、インストラクションポインタI
PTRが指し示すインストラクションを含むインストラ
クションページが切り換わった場合でも、当該切り換わ
り時には、切り換わり後のインストラクションページは
既にインストラクションローカルメモリ201に記憶さ
れている。また、インストラクションローカルメモリ2
01と共有メモリ24との間でのインストラクションペ
ージのスワップ処理と、CPUコア206によるインス
トラクションローカルメモリ201へのアクセス処理と
は並行して行われる。そのため、インストラクションポ
インタIPTRが指し示すインストラクションが含まれ
るインストラクションページが切り換わった場合でも、
CPUコア206によるインストラクションの実行は停
止(ストール)しない。その結果、CPUコア206を
効率的に使用でき、プログラムの処理時間を短縮でき
る。
【0060】特に画像処理などの分野では、条件分岐な
どを含むジャンプ命令は少ないことから、上述したよう
なインストラクションのアドレスの自動インクリメント
機能は効果的であり、しかも、上述したように、インス
トラクションページのプリロード機能を持たせること
で、処理時間をさらに短縮できる。
【0061】本発明は上述した実施形態には限定されな
い。例えば、図7に示す例では、図3に示すコントロー
ルレジスタ群207aのマシンコントロールレジスタ2
07a3の記憶データが、インストラクションプリロー
ド機能を実行することを示している場合を説明したが、
当該記憶データが、インストラクションプリロード機能
を停止することを示している場合には、上述したインス
トラクションのプリロードは行わない。これは、例え
ば、図1に示す並列プロセッサ21を、プロセッサエレ
メント231 〜23n のうち何れか一つをマスタとし、
他をスレーブとし、マスタがスレーブに対して比較的小
さなタスクを分配するように構成した場合に有効であ
る。すなわち、マスタからスレーブに対して分配される
タスクが小さい場合には、各スレーブにおいてインスト
ラクションページを越えてインストラクションを読み出
すことが無く、インストラクションのプリロードは必要
でないばかりでなく、不必要に電力を消費してしまう可
能性がある。従って、このような場合には、スレーブの
マシンコントロールレジスタ207a3の記憶データを
インストラクションプリロード機能を停止することを示
すように設定する。
【0062】また、上述した実施形態では、共有メモリ
24のメモリセル領域を4個のメモリサブバンク41〜
44に分割した場合を例示したが、メモリサブバンクの
数は任意である。従って、例えば、共有メモリ24のメ
モリセル領域を8個のメモリサブバンクに分割してもよ
い。この場合には、1ページは8個のインストラクショ
ンページあるいはサブページで構成される。また、上述
した実施形態では、単数のインストラクションページお
よびサブページのデータ量を512バイトとしたが、こ
のデータ量は特に限定されず、256バイトあるいは1
024バイトなどであってもよい。
【0063】また、上述した実施形態では、並列プロセ
ッサ21について例示したが、前述したインストラクシ
ョンページのプリロード機能は、シングルプロセッサに
も適用できる。
【0064】
【発明の効果】以上説明したように、本発明のプロセッ
サによれば、演算手段がインストラクションを読み出す
際の待ち時間を短縮でき、処理時間を短縮できる。ま
た、本発明の並列プロセッサによれば、プロセッサエレ
メントの演算手段がインストラクションを読み出す際の
待ち時間を短縮でき、処理時間を短縮できる。また、本
発明の演算処理方法によれば、高い演算性能を実現する
ことができる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態に係わる並列プロセ
ッサのシステム構成図である。
【図2】図2は、図1に示すプロセッサエレメントの構
成図である。
【図3】図3は、図2に示すレジスタ群を説明するため
の図である。
【図4】図4は、図2に示すページセレクタを説明する
ための図である。
【図5】図5は、図1に示す共有メモリの構成図であ
る。
【図6】図6は、図5に示すメモリサブバンクに記憶さ
れるサブページを説明するための図である。
【図7】図2に示すプロセッサエレメントにおけるイン
ストラクションのプリロード機能を説明するための図で
ある。
【図8】図8は、図6に示すサブページと、共有メモリ
のサブバンクとの対応を説明するための図である。
【図9】図9は、従来の一般的な並列プロセッサのシス
テム構成図である。
【符号の説明】
6…チップインタフェース、7…メインメモリ、22…
コモンバス、231 〜23n …プロセッサエレメント、
24…共有メモリ、25…バスユニット、26…外部ア
クセスバス、41〜44…サブバンク、31…コモンバ
ス用制御回路、32…外部バス用制御回路、33,23
2,333…制御回路、53〜56…マルチプレクサ、
57〜60…アドレスデコーダ、800 〜80m …バン
ク、120…タグデータ領域、121…バリッド識別領
域、122…ダーティ識別領域、123…ページセレク
タ領域、125…リクエストキュー、1300 〜130
m-1 …タグバンク、200…インストラクションバス、
201…インストラクションローカルメモリ、202…
データローカルメモリ、203,204…データバス、
205…内部バス、206…CPUコア、207…レジ
スタ群、220…ページセレクタ、230…アドレスデ
コーダ

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】それぞれ複数のインストラクションを含む
    複数のインストラクションページを記憶する内部メモリ
    と、 前記内部メモリに記憶されたインストラクションページ
    のインストラクションを順次に指し示すポインタ手段
    と、 前記ポインタ手段で指し示されたインストラクションを
    前記内部メモリから読み込んで実行する演算手段と、 前記ポインタ手段が指し示すインストラクションのイン
    ストラクションページが、第1のインストラクションペ
    ージから第2のインストラクションページに切り換わる
    前に、前記第2のインストラクションページが前記内部
    メモリに記憶されているか否かを判断し、記憶されてい
    ないと判断した場合に、前記第2のインストラクション
    ページを外部メモリから前記内部メモリに読み込む制御
    手段とを有するプロセッサ。
  2. 【請求項2】前記制御手段は、前記ポインタ手段が指し
    示すインストラクションのインストラクションページ
    が、第1のインストラクションページに切り換わったと
    きに、前記第2のインストラクションページが前記内部
    メモリに記憶されているか否かを判断し、記憶されてい
    ないと判断した場合に、前記第2のインストラクション
    ページを前記外部メモリから前記内部メモリに読み込む
    請求項1に記載のプロセッサ。
  3. 【請求項3】前記ポインタ手段は、前記演算手段が前記
    インストラクションを読み出す毎に、前記内部メモリの
    アドレス空間のアドレスを所定のアドレス間隔で順次に
    増加あるいは減少させて指し示す請求項1に記載のプロ
    セッサ。
  4. 【請求項4】前記制御手段による前記外部メモリから前
    記内部メモリへのインストラクションの読み込みと、前
    記演算手段による前記内部メモリからのインストラクシ
    ョンの読み込みとを並行して実行可能である請求項1に
    記載のプロセッサ。
  5. 【請求項5】前記制御手段は、第1のインストラクショ
    ンページから第2のインストラクションページに切り換
    わる前に、前記第2のインストラクションページを前記
    外部メモリから前記内部メモリに読み込む動作を行うか
    否かを予め設定可能である請求項1に記載のプロセッ
    サ。
  6. 【請求項6】前記外部メモリは、メインメモリと接続さ
    れており、前記第2のインストラクションページを記憶
    していない場合に、前記第2のインストラクションペー
    ジからなるページを前記メインメモリから読み込む請求
    項1に記載のプロセッサ。
  7. 【請求項7】前記外部メモリは、前記ページのうち、前
    記第2のインストラクションページを最初に前記メイン
    メモリから読み込む請求項6に記載のプロセッサ。
  8. 【請求項8】前記外部メモリから前記内部メモリへのイ
    ンストラクションページの読み込み動作と、前記メイン
    メモリから前記外部メモリへの前記ページの読み込み動
    作とを並行して行う請求項6に記載のプロセッサ。
  9. 【請求項9】それぞれインストラクションに基づいて動
    作する複数のプロセッサエレメントと、 前記複数のプロセッサエレメントに前記インストラクシ
    ョンを供給し、各々複数のインストラクションを含む複
    数のインストラクションページを記憶する共有メモリと
    を有し、 前記プロセッサエレメントは、 複数の前記インストラクションページを記憶する内部メ
    モリと、 前記内部メモリに記憶されたインストラクションページ
    のインストラクションを順次に指し示すポインタ手段
    と、 前記ポインタ手段で指し示されたインストラクションを
    前記内部メモリから読み込んで実行する演算手段と、 前記ポインタ手段が指し示すインストラクションのイン
    ストラクションページが、第1のインストラクションペ
    ージから第2のインストラクションページに切り換わる
    前に、前記第2のインストラクションページが前記内部
    メモリに記憶されているか否かを判断し、記憶されてい
    ないと判断した場合に、前記第2のインストラクション
    ページを前記共有メモリから前記内部メモリに読み込む
    制御手段とを有する並列プロセッサ。
  10. 【請求項10】前記制御手段は、前記ポインタ手段が指
    し示すインストラクションのインストラクションページ
    が、第1のインストラクションページに切り換わったと
    きに、前記第2のインストラクションページが前記内部
    メモリに記憶されているか否かを判断し、記憶されてい
    ないと判断した場合に、前記第2のインストラクション
    ページを前記共有メモリから前記内部メモリに読み込む
    請求項9に記載の並列プロセッサ。
  11. 【請求項11】前記ポインタ手段は、前記演算手段が前
    記インストラクションを読み出す毎に、前記内部メモリ
    のアドレス空間のアドレスを所定のアドレス間隔で順次
    に増加あるいは減少させて指し示す請求項9に記載の並
    列プロセッサ。
  12. 【請求項12】前記制御手段による前記共有メモリから
    前記内部メモリへのインストラクションの読み込みと、
    前記演算手段による前記内部メモリからのインストラク
    ションの読み込みとを並行して実行可能である請求項9
    に記載の並列プロセッサ。
  13. 【請求項13】前記制御手段は、第1のインストラクシ
    ョンページから第2のインストラクションページに切り
    換わる前に、前記第2のインストラクションページを前
    記共有メモリから前記内部メモリに読み込む動作を行う
    か否かを予め設定可能である請求項9に記載の並列プロ
    セッサ。
  14. 【請求項14】前記共有メモリは、メインメモリと接続
    されており、前記第2のインストラクションページを記
    憶していない場合に、前記第2のインストラクションペ
    ージからなるページを前記メインメモリから読み込む請
    求項9に記載の並列プロセッサ。
  15. 【請求項15】前記共有メモリは、前記ページのうち、
    前記第2のインストラクションページを最初に前記メイ
    ンメモリから読み込む請求項14に記載の並列プロセッ
    サ。
  16. 【請求項16】前記共有メモリから前記内部メモリへの
    インストラクションページの読み込み動作と、前記メイ
    ンメモリから前記共有メモリへの前記ページの読み込み
    動作とを並行して行う請求項15に記載の並列プロセッ
    サ。
  17. 【請求項17】各々複数のインストラクションを含む複
    数のインストラクションページを記憶する内部メモリに
    記憶されたインストラクションをポインタデータで順次
    に指し示し、 前記ポインタデータが指し示したインストラクションを
    前記内部メモリから読み込んで実行し、 前記ポインタデータが指し示すインストラクションのイ
    ンストラクションページが、第1のインストラクション
    ページから第2のインストラクションページに切り換わ
    る前に、前記第2のインストラクションページが前記内
    部メモリに記憶されているか否かを判断し、記憶されて
    いないと判断した場合に、前記第2のインストラクショ
    ンページを外部メモリから前記内部メモリに読み込む演
    算処理方法。
  18. 【請求項18】前記ポインタデータが指し示すインスト
    ラクションのインストラクションページが、第1のイン
    ストラクションページに切り換わったときに、前記第2
    のインストラクションページが前記内部メモリに記憶さ
    れているか否かを判断し、記憶されていないと判断した
    場合に、前記第2のインストラクションページを前記外
    部メモリから前記内部メモリに読み込む請求項17に記
    載の演算処理方法。
  19. 【請求項19】前記インストラクションを読み出す毎
    に、前記ポインタデータは、前記内部メモリのアドレス
    空間のアドレスを所定のアドレス間隔で順次に増加ある
    いは減少させて指し示す請求項18に記載の演算処理方
    法。
JP13893898A 1998-05-20 1998-05-20 プロセッサ、並列プロセッサおよび演算処理方法 Pending JPH11328123A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13893898A JPH11328123A (ja) 1998-05-20 1998-05-20 プロセッサ、並列プロセッサおよび演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13893898A JPH11328123A (ja) 1998-05-20 1998-05-20 プロセッサ、並列プロセッサおよび演算処理方法

Publications (1)

Publication Number Publication Date
JPH11328123A true JPH11328123A (ja) 1999-11-30

Family

ID=15233665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13893898A Pending JPH11328123A (ja) 1998-05-20 1998-05-20 プロセッサ、並列プロセッサおよび演算処理方法

Country Status (1)

Country Link
JP (1) JPH11328123A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100034A (ja) * 2003-09-24 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理制御システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100034A (ja) * 2003-09-24 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理制御システム
US8135909B2 (en) 2003-09-24 2012-03-13 Panasonic Corporation System for starting a preload of a second program while a first program is executing

Similar Documents

Publication Publication Date Title
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US6014728A (en) Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
US5185878A (en) Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
US4933837A (en) Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US7203800B2 (en) Narrow/wide cache
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
KR100308682B1 (ko) 다중방향연관외부마이크로프로세서캐쉬
Chiou et al. StarT-NG: Delivering seamless parallel computing
JP2000003308A (ja) オ―バラップしたl1およびl2メモリ・アクセス方法および装置
US6446181B1 (en) System having a configurable cache/SRAM memory
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
US6101589A (en) High performance shared cache
EP0676690B1 (en) Delayed write of store instruction in processor device
EP0325422B1 (en) Integrated cache unit
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US8140765B2 (en) Information handling system with immediate scheduling of load operations in a dual-bank cache with single dispatch into write/read data flow
US6389527B1 (en) Microprocessor allowing simultaneous instruction execution and DMA transfer
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
US20020188817A1 (en) Store buffer pipeline
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
JPH11328123A (ja) プロセッサ、並列プロセッサおよび演算処理方法
WO1999032976A1 (en) Risc processor with concurrent snooping and instruction execution
JP3820645B2 (ja) マルチプロセッサシステム