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

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

Info

Publication number
JPH11316744A
JPH11316744A JP10122541A JP12254198A JPH11316744A JP H11316744 A JPH11316744 A JP H11316744A JP 10122541 A JP10122541 A JP 10122541A JP 12254198 A JP12254198 A JP 12254198A JP H11316744 A JPH11316744 A JP H11316744A
Authority
JP
Japan
Prior art keywords
access request
subpage
bus
memory
page
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
JP10122541A
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 JP10122541A priority Critical patent/JPH11316744A/ja
Priority to US09/300,461 priority patent/US6349370B1/en
Publication of JPH11316744A publication Critical patent/JPH11316744A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 高い演算性能を発揮できる並列プロセッサを
提供する。 【解決手段】 一のプロセッサエレメントから共有メモ
リ224に対してページフォルトを伴う第1のアクセス
要求による外部アクセスバス26を介した外部メモリと
の間のページ転送処理が終了する前に、他のプロセッサ
エレメントから共有メモリ224に対してページフォル
トを伴う第2のアクセス要求が発生した場合に、第1の
アクセス要求および第2のアクセス要求によって要求さ
れるサブページを、外部メモリから共有メモリ224に
転送した後に、当該要求されるサブページが属するペー
ジの他のサブページを、外部メモリから共有メモリ22
4に転送する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、複数のプロセッサ
エレメントおよび共有メモリがコモンバスを介して接続
された並列プロセッサおよび演算処理方法に関する。
【0002】
【従来の技術】近年、プログラム中の同時に実行可能な
複数の命令を1チップ内に組み込まれた複数のプロセッ
サエレメント(PE)で並列に実行し、プログラム全体
の実行時間の短縮を図る並列プロセッサの開発が行われ
ている。このような並列プロセッサのアーキテクチャと
して種々のものが提案されているが、それらの一つとし
て、1組のコモンバス(共有バス)に、複数のプロセッ
サエレメントおよび共有メモリを接続したものがある。
【0003】図16は、従来の一般的な並列プロセッサ
1のシステム構成図である。図16に示すように、並列
プロセッサ1は、1チップ内にコモンバス2、n個のプ
ロセッサエレメント31 〜3n 、共有メモリ4およびバ
スユニット5が組み込まれており、コモンバス2にプロ
セッサエレメント31 〜3n 、共有メモリ4およびバス
ユニット5が接続されている。また、バスユニット5
は、外部のチップインタフェース6を介してメインメモ
リ7に接続されている。また、共有メモリ4のメモリセ
ル領域4aには、1個のデータポートI/Oが備えられ
ている。並列プロセッサ1では、プロセッサエレメント
1 〜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のバスと、前
記第1のバスおよび前記第2のバスの双方に接続された
共有メモリとを有する。ここで、前記共有メモリは、複
数のサブページを記憶する記憶手段と、前記プロセッサ
エレメントからのアクセス要求に応じて、当該プロセッ
サエレメントの内部メモリと前記記憶手段との間の前記
第1のバスを介したサブページの転送、および、前記記
憶手段と前記外部メモリとの間の前記第2のバスを介し
た複数のサブページからなるページの転送を制御し、一
の前記プロセッサエレメントから前記記憶手段に対して
のページフォルトを伴う第1のアクセス要求による前記
第2のバスを介した前記共有メモリと外部メモリとの間
のページ転送処理が終了する前に、他の前記プロセッサ
エレメントから前記記憶手段に対してページフォルトを
伴う第2のアクセス要求が発生した場合に、前記第1の
アクセス要求および前記第2のアクセス要求によって要
求されるサブページを、前記外部メモリから前記記憶手
段に転送した後に、前記第1のアクセス要求および前記
第2のアクセス要求によって要求されるサブページが属
するページの他のサブページを、前記外部メモリから前
記記憶手段に転送する制御手段と。
【0007】また、本発明の並列プロセッサは、好まし
くは、前記制御手段は、前記第1のアクセス要求および
前記第2のアクセス要求によって要求されるサブページ
を、前記第2のバスを介して前記外部メモリから前記記
憶手段に順に転送した後に、前記第1のアクセス要求に
よって要求されるサブページが属するページの他のサブ
ページを、前記第2のバスを介して前記外部メモリから
前記記憶手段に転送し、それに続いて、前記第2のアク
セス要求によって要求されるサブページが属するページ
の他のサブページを、前記第2のバスを介して前記外部
メモリから前記記憶手段に転送する。
【0008】また、本発明の並列プロセッサは、好まし
くは、前記制御手段は、前記第1のアクセス要求によっ
て要求されるサブページを、前記第2のバスを介して前
記外部メモリから前記記憶手段に転送した後に、当該サ
ブページを、前記第1のバスを介して前記記憶手段から
当該第1のアクセス要求を発したプロセッサエレメント
に転送する。
【0009】また、本発明の並列プロセッサは、好まし
くは、前記制御手段は、前記第2のアクセス要求によっ
て要求されるサブページを、前記第2のバスを介して前
記外部メモリから前記記憶手段に転送した後に、当該サ
ブページを、前記第1のバスを介して前記記憶手段から
当該第2のアクセス要求を発したプロセッサエレメント
に転送する。
【0010】また、本発明の並列プロセッサは、好まし
くは、前記第1のバスを介したサブページの転送処理
と、前記第2のバスを介したサブページの転送処理とを
並行して行う。
【0011】また、本発明の並列プロセッサは、好まし
くは、前記制御手段は、前記第1のアクセス要求および
前記第2のアクセス要求を記憶するアクセス要求記憶部
と、前記第1のアクセス要求および前記第2のアクセス
要求によって要求されるサブページが属するページの他
のサブページを前記外部メモリから前記記憶手段に転送
する処理を示す手続きを記憶する退避手続き記憶部と、
前記第1のアクセス要求によって要求されるサブページ
を、前記第2のバスを介して前記外部メモリから前記記
憶手段に転送した後に、前記第1のアクセス要求によっ
て要求されるサブページが属するページの他のサブペー
ジを前記第2のバスを介して前記外部メモリから前記記
憶手段に転送する第1の手続きを前記退避手続き記憶部
に記憶し、前記第2のアクセス要求によって要求される
サブページを、前記第2のバスを介して前記外部メモリ
から前記記憶手段に転送した後に、前記第2のアクセス
要求によって要求されるサブページが属するページの他
のサブページを前記第2のバスを介して前記外部メモリ
から前記記憶手段に転送する第2の手続きを前記退避手
続き記憶部に記憶すると共に、前記退避手続き記憶部か
ら前記第1の手続きを呼び出して実行し、前記第1の手
続きの実行後に、前記退避手続き記憶部から前記第2の
手続きを呼び出して実行する制御部とを有する。
【0012】また、本発明の並列プロセッサは、好まし
くは、前記制御手段は、前記第1のアクセス要求および
前記第2のアクセス要求を、退避データと対応付けて記
憶するアクセス要求記憶部と、前記第1のアクセス要求
によって要求されるサブページを、前記第2のバスを介
して前記外部メモリから前記記憶手段に転送した後に、
前記アクセス要求記憶部に記憶された前記第1のアクセ
ス要求に対応する前記退避データを退避状態に設定し、
前記第2のアクセス要求によって要求されるサブページ
を、前記第2のバスを介して前記外部メモリから前記記
憶手段に転送した後に、前記アクセス要求記憶部に記憶
された前記第2のアクセス要求に対応する前記退避デー
タを退避状態に設定すると共に、前記退避データを用い
て、前記アクセス要求記憶部に記憶された前記第1のア
クセス要求を読み出して、当該第1のアクセス要求によ
って要求されるサブページが属するページの他のサブペ
ージを前記第2のバスを介して前記外部メモリから前記
記憶手段に転送し、当該転送後に、前記退避データを用
いて、前記アクセス要求記憶部に記憶された前記第2の
アクセス要求を読み出して、当該第2のアクセス要求に
よって要求されるサブページが属するページの他のサブ
ページを前記第2のバスを介して前記外部メモリから前
記記憶手段に転送する。
【0013】さらに、本発明の演算処理方法は、プロセ
ッサエレメントからのアクセス要求に応じて、当該プロ
セッサエレメントと共有メモリとの間の前記第1のバス
を介したサブページの転送、および、前記共有メモリと
外部メモリとの間の前記第2のバスを介した複数のサブ
ページからなるページの転送を制御し、複数のプロセッ
サエレメントのうち、一のプロセッサエレメントから前
記共有メモリに対してのページフォルトを伴う第1のア
クセス要求による前記第2のバスを介した前記共有メモ
リと外部メモリとの間のページ転送処理が終了する前
に、他のプロセッサエレメントから前記共有メモリに対
してページフォルトを伴う第2のアクセス要求が発生し
た場合に、前記第1のアクセス要求および前記第2のア
クセス要求によって要求されるサブページを、前記外部
メモリから前記共有メモリに転送した後に、前記第1の
アクセス要求および前記第2のアクセス要求によって要
求されるサブページが属するページの他のサブページ
を、前記外部メモリから前記共有メモリに転送する。
【0014】
【発明の実施の形態】以下、本発明の実施形態に係わる
並列プロセッサについて詳細に説明する。第1実施形態 図1は、本実施形態の並列プロセッサ21のシステム構
成図である。図1に示すように、並列プロセッサ21
は、例えば、第1のバスとしてのコモンバス22、プロ
セッサエレメント231 〜23n 、共有メモリ24、バ
スユニット25および第2のバスとしての外部アクセス
バス26を有する。
【0015】並列プロセッサ21では、コモンバス22
に、プロセッサエレメント231 〜23n および共有メ
モリ24が接続されている。また、外部アクセスバス2
6に、共有メモリ24およびバスユニット25が接続さ
れている。
【0016】コモンバス22は128ビットのバス幅を
有し、外部アクセスバス26は32ビットのバス幅を有
している。コモンバス22は、外部アクセスバス26に
比べて4倍以上のデータ転送速度を持つ。なお、コモン
バス22と外部アクセスバス26とのバス幅を同じにし
て、同じデータ転送速度を持つようにすることも可能で
ある。プロセッサエレメント231 〜23n は、例え
ば、並列プロセッサ1がMIMD(Multiple Instructio
n Multiple Data)型の並列プロセッサの場合には、個々
にプログラムカウンタを持ち、当該プログラムカウンタ
によって指し示される図示しないインストラクションメ
モリのアドレスに記憶された命令に応じた処理を相互に
独立して行う。プロセッサエレメント231 〜23n
しては、例えば、RISC(Reduced Instruction Set C
omputer)型の汎用プロセッサが用いられる。
【0017】プロセッサエレメント231 〜23n は、
それぞれ複数のサブページ、例えば、3個のサブページ
を記憶可能な内部メモリとしてのサブバンク271 ,2
2,273 を備えている。ここで、サブページは、メ
インメモリ7上の連続したアドレスの記憶領域に記憶さ
れた512バイトのデータであり、4個の連続したアド
レスのサブページによって1ページが構成される。な
お、プロセッサエレメント231 〜23n が備えている
サブバンクの数を、相互に異なるようにすることも可能
である。プロセッサエレメント231 〜23n は、後述
するように、共有メモリ24からサブページを読み込ん
でサブバンク271 〜273 に記憶するが、プロセッサ
エレメント231 〜23n の相互間およびサブバンク2
1 〜273 の相互間で異なるページのサブページを記
憶できる。バスユニット25は、並列プロセッサ21の
外部に設けられたチップインタフェース6を介してメイ
ンメモリ7に接続されている。メインメモリ7は、4G
バイトの連続したアドレスを持つメモリ空間を有する。
【0018】図2は、図1に示す共有メモリ24の構成
図である。図2に示すように、共有メモリ24は、例え
ば、コモンバス用制御回路31、外部バス用制御回路3
2、制御回路33、メモリ内部バス51,52、マルチ
プレクサ(MUX)53,54,55,56、第1の記
憶手段としてのメモリセル領域90、アドレスデコーダ
57,58,59,60、第2の記憶手段としてのタグ
データ領域120およびリクエストキュー125を有す
る。
【0019】なお、本実施形態では、コモンバス用制御
回路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との間のページ転送を制御する。
【0020】コモンバス用制御回路31は、メモリ内部
バス51およびコモンバス22を介したプロセッサエレ
メント231 〜23n とメモリサブバンク41〜44と
の間のサブページの転送を制御する。具体的には、コモ
ンバス用制御回路31は、制御回路33から制御信号に
基づいて、制御信号S31を出力してアドレスデコーダ
57〜60を制御すると共に、マルチプレクサ53〜5
6の切り換え制御を行う。
【0021】外部バス用制御回路32は、メモリ内部バ
ス52および外部アクセスバス26を介したメモリサブ
バンク41〜44とメインメモリ7との間のページの転
送を制御する。具体的には、外部バス用制御回路32
は、制御回路33からの制御信号に基づいて、制御信号
S32を出力してアドレスデコーダ57〜60を制御す
ると共に、マルチプレクサ53〜56の切り換え制御を
行う。
【0022】マルチプレクサ53〜56は、制御信号S
31,S32および制御回路33からの制御信号に基づ
いて、それぞれメモリサブバンク41〜44を、メモリ
内部バス51および52の何れか一方と接続する。
【0023】アドレスデコーダ57〜60は、制御信号
S31,S32をデコードして、それぞれメモリサブバ
ンク41〜44に対してのアクセスを制御する。
【0024】メモリセル領域90は、4個のメモリサブ
バンク41〜44に物理的に等分に分割されている。メ
モリサブバンク41〜44は、それぞれシングルデータ
ポートを備えている。また、メモリセル領域90は、そ
れぞれメモリサブバンク41〜44に対して等分に跨が
るように、m個のバンク800 〜80m-1 によって区切
られている。メモリサブバンク41〜44は、例えば、
それぞれm個のサブページを記憶可能な記憶容量を有す
る。なお、サブページは、画像データを含んでいる。メ
モリサブバンク41〜44は、それぞれマルチプレクサ
53〜56、メモリ内部バス51およびコモンバス22
を介して、プロセッサエレメント231 〜23n との間
で、データの入れ替えをサブページ単位で行う。ここ
で、データを入れ換えるとは、プロセッサエレメント2
1 〜23n からメモリサブバンク41〜44にデータ
を書き込む動作、メモリサブバンク41〜44からプロ
セッサエレメント231 〜23n にデータを読み出す動
作、および、その両方の動作を含む。
【0025】コモンバス22は128ビットのバス幅を
有することから、サブページが1回当たりのデータ転送
の単位となるコモンバス22を介したバスオペレーショ
ンでは、512バイトのサブページを転送するには、3
2(=512×8/128)回分のバストランザクショ
ンが最低限必要である。
【0026】また、メモリサブバンク41〜44は、マ
ルチプレクサ53〜56、メモリ内部バス52および外
部アクセスバス26を介して、各バンク800 〜80
m-1 に記憶されるページ単位で、メインメモリ7との間
でデータを入れ替える。ここで、1ページは2Kバイト
であり、4個のサブページからなる。従って、プロセッ
サエレメント231 〜23n がアクセスしようとするサ
ブページの先頭アドレスが、図3に示すA番地、(A+
512)番地、(A+1024)番地あるいは(A+1
536)番地である場合には、メインメモリ7からA番
地から2Kバイトの連続したアドレスに記憶された1ペ
ージ分のデータを共有メモリ4に転送し、この1ページ
分のデータを4個のサブページに分割して、各バンク8
0 〜80m に記憶する。本実施形態では、メインメモ
リ7の4Gバイトのメモリ空間を、32ビットのアドレ
スで指し示している。ここで、この32ビットのアドレ
スのうち、31〜11ビット目がページの先頭アドレス
を示し、10〜0ビット目がページ内のアドレスを示し
ている。また、10ビット目および9ビット目がサブバ
ンクを示している。
【0027】メモリサブバンク41〜44に記憶されて
いるサブページは、全てのプロセッサエレメント231
〜23n で共有できるように、システム全体で、サブペ
ージのデータ量を統一することが望ましい。本実施形態
では、プロセッサエレメント231 〜23n のサブバン
ク271 のメモリ容量を512バイトとし、サブページ
のデータ量も512バイトとしている。ここで、外部ア
クセスバス26は32ビットのバス幅を有するため、ペ
ージがデータ転送の単位となる外部アクセスバス26を
介した1回当たりのバスオペレーションでは、2Kバイ
トのページを転送するために、512(=2048×8
/32)回分のバストランザクションが最低限必要であ
る。
【0028】タグデータ領域120は、図2に示すよう
に、メモリサブバンク41〜44からなるメモリセル領
域90に記憶されたサブページの特性データとしてのタ
グデータを記憶する。タグデータ領域120は、バンク
800 〜80m-1 に対応したタグバンク1300 〜13
m-1 を有し、タグバンク1300 〜130m-1 には、
それぞれバンク800 〜80m に記憶されているサブペ
ージの特性を示すデータが記憶されている。タグデータ
は、バリッド識別領域121、ダーディ識別領域122
およびページセレクタ領域123から構成される。
【0029】バリッド識別領域121は、各サブページ
のデータの有効性を示す1ビットのバリッドビットを、
サブページの数だけ備えている。例えば、バリッド識別
領域121には、有効なサブページに対応するバリッド
ビットにバリッドを示す「1」がセットされ、有効でな
い(無効な)サブページに対応するバリッドビットにイ
ンバリッドを示す「0」がセットされている。
【0030】ダーディ識別領域122は、各サブページ
のデータがダーティであるか否かを示す1ビットのダー
ティビットを、サブページの数だけ備えている。ここ
で、ダーティであるとは、当該サブページに、プロセッ
サエレメント231 〜23n から書き込みがあったこと
を意味し、当該サブページが記憶されている記憶領域を
開放するときに、当該サブページをメインメモリ7に書
き戻す必要がある。すなわち、ライトバックを行う必要
がある。例えば、ダーディ識別領域122には、ダーテ
ィなサブページに対応するダーティビットにバリッドを
示す「1」がセットされ、ダーティでないサブページに
対応するダーティビットにインバリッドを示す「0」が
セットされている。
【0031】ページセレクタ領域123は、バンク80
0 〜80m に記憶されているページの識別番号(例え
ば、ページの先頭アドレス)を示すページセレクタを有
する。
【0032】また、リクエストキュー125は、コモン
バス22およびメモリ内部バス51を介して入力した共
有メモリ4に対してのプロセッサエレメント231 〜2
nから複数のアクセス要求が競合した場合に、これら
のアクセス要求をキューに蓄え、以下に示す手順で制御
回路33に出力して実行させる。
【0033】以下、並列プロセッサ21の動作について
説明する。ここで、図4に示すように、nを任意の整数
としたときに、ページP(n)を構成する4つのサブペ
ージのうち、サブバンク41,42,43,44に記憶
されるものをそれぞれPs0(n),Ps1(n),P
s2(n),Ps3(n)とする。
【0034】例えば、図2に示す制御回路33が、図1
に示すプロセッサエレメント231からサブページ入れ
替え要求信号を入力した場合に、タグデータ領域120
に記憶されたタグデータから、当該要求があった図3に
示すサブページPs1(1)がメモリセル領域90に記
憶されていない場合、ページミスと判断され、外部アク
セスバス26を介して、共有メモリ24と図1に示すメ
インメモリ7との間で、当該要求があったサブページP
s1(1)を含むページP(1)と、共有メモリ24に
既に記憶されているページとが入れ替えられる。このと
き、ページP(1)を構成する4個のサブページPs0
(1),Ps1(1),Ps2(1),Ps3(1)の
うち、プロセッサエレメント231 から要求のあったサ
ブページPs1(1)が最初に入れ替えられる。そし
て、当該要求があったサブページPs1(1)が、コモ
ンバス22を介して、共有メモリ24からプロセッサエ
レメント231 に出力される。このとき、サブページP
s1(1)の入れ替え直後から、共有メモリ24とプロ
セッサエレメント231 との間でのサブページPs1
(1)の入れ替えと並行して、メインメモリ7と共有メ
モリ24との間でサブページPs2(1),Ps3
(1),Ps0(1)が順に入れ替えられる。
【0035】なお、プロセッサエレメントPEが要求し
たサブページをコモンバス22を介して最終的に当該プ
ロセッサエレメントPEに転送するまでの処理をフォア
グランドジョブと呼び、残りの3つのサブページを外部
アクセスバス26を介してメインメモリ7から共有メモ
リ24に転送する処理をバックグランドジョブと呼ぶ。
【0036】以下、図1に示すプロセッサエレメント2
1 からのサブページ入れ替え要求に応じて共有メモリ
24とメインメモリ7との間でのページP(1)の入れ
替えを完了する前に、例えば、図1に示すプロセッサエ
レメント232 からページミスを伴うサブページPs2
(2)の入れ替え要求信号が発生した場合の並列プロセ
ッサ21の動作を図5を参照しながら説明する。具体的
には、図5に示すタイミング「r1」で、前述したよう
に、図1に示すプロセッサエレメント231 からサブペ
ージPs1(1)の入れ替え要求が発生し、続いて、タ
イミング「r2」で、図1に示すプロセッサエレメント
232 からサブページPs2(2)の入れ替え要求が発
生した場合を考える。この場合には、タイミング「r
3」で、メインメモリ7から共有メモリ24へのサブペ
ージPs1(1)の入れ替えが完了し、続いて、コモン
バス22を介して、サブページPs1(1)共有メモリ
24からがプロセッサエレメント231に転送される。
また、メインメモリ7から共有メモリ24へのサブペー
ジPs1(1)の入れ替えが完了した後、続いて、外部
アクセスバス26を介して、サブページPs2(1),
Ps3(1),Ps0(1)が、メインメモリ7から共
有メモリ24に転送される。
【0037】そして、サブページPs0(1)の入れ替
えが完了した後に、続いて、サブページPs2(2)
が、外部アクセスバス26を介して、メインメモリ7か
ら共有メモリ24に入れ替えられ、当該入れ替えが完了
したタイミング「r4」から、サブページPs2(2)
がコモンバス22を介してプロセッサエレメント232
に転送される。また、メインメモリ7から共有メモリ2
4へのサブページPs2(2)の入れ替えが完了した
後、続いて、外部アクセスバス26を介して、サブペー
ジPs3(2),Ps0(2),Ps1(2)が、メイ
ンメモリ7から共有メモリ24に入れ替えられる。
【0038】並列プロセッサ21によれば、前述したよ
うに、サブページPs1(1)の入れ替え要求に応じて
Ps1(1)を含む1ページをメインメモリ7から共有
メモリ24に転送した後に、次に発生したサブページP
s2(2)の入れ替え要求に応じてPs2(2)を含む
1ページをメインメモリ7から共有メモリ24に転送す
る。そのため、図5に示すサブページPs1(1)のメ
インメモリ7から共有メモリ24への転送終了タイミン
グ「r3」から、サブページPs2(2)のメインメモ
リ7から共有メモリ24への転送終了タイミング「r
4」まで、512サイクルを要する。
【0039】第2実施形態 本実施形態では、上述した第1実施形態の並列プロセッ
サを改良に係わるものであり、一のプロセッサエレメン
トからの第1のサブページ入れ替え要求に応じた共有メ
モリとメインメモリとの間のページ入れ替えが完了する
前に、他のプロセッサエレメントからページミスを伴う
サブページに対して第2のサブページ入れ替え要求がさ
らに発生した場合に、当該第2のサブページ入れ替え要
求に示されたサブページをさらに速いタイミングでプロ
セッサエレメントに供給できる並列プロセッサについて
説明する。
【0040】図6は、本実施形態の並列プロセッサ22
1のシステム構成図である。図6に示すように、並列プ
ロセッサ221は、例えば、第1のバスとしてのコモン
バス22、プロセッサエレメント231 〜23n 、共有
メモリ224、バスユニット25および第2のバスとし
ての外部アクセスバス26を有する。並列プロセッサ2
21では、コモンバス22に、プロセッサエレメント2
1〜23n および共有メモリ224が接続されてい
る。また、外部アクセスバス26に、共有メモリ224
およびバスユニット25が接続されている。ここで、図
6に示すコモンバス22、プロセッサエレメント231
〜23n 、バスユニット25および外部アクセスバス2
6は、前述した図1に示すものと同じである。すなわ
ち、並列プロセッサ221は、共有メモリ224に特徴
を有する。以下、共有メモリ224について主に説明す
る。
【0041】図7は、図6に示す共有メモリ224の構
成図である。図7に示すように、共有メモリ224は、
例えば、コモンバス用制御回路231、外部バス用制御
回路232、制御回路233、メモリ内部バス51,5
2、マルチプレクサ(MUX)53,54,55,5
6、第1の記憶手段としてのメモリセル領域90、アド
レスデコーダ57,58,59,60、第2の記憶手段
としてのタグデータ領域120およびリクエストキュー
125を有する。
【0042】なお、本実施形態では、コモンバス用制御
回路231、外部バス用制御回路232および制御回路
233が制御手段として機能する。図8は、制御回路2
33の構成図である。図8に示すように、制御回路23
3は、シーケンサ270、要求バッファ271および退
避バッファ272を有する。シーケンサ270は、要求
バッファ271から読み出したサブページ入れ替え要求
をデコードし、デコード結果に応じた制御信号S270
をコモンバス用制御回路231、外部バス用制御回路2
32、マルチプレクサ53〜56、アドレスデコーダ5
7〜60に出力し、これらを制御する。
【0043】また、シーケンサ270は、サブページ入
れ替え要求(アクセス要求)が要求するサブページがメ
モリセル領域90に記憶されているか否か(ページヒッ
トの有無)をタグデータ領域120に記憶された特性デ
ータとしてタグデータを参照して判断し、ページフォル
トが発生したと判断した場合には、後述する方法で、メ
モリセル領域90に記憶されている複数のページの中か
ら、メインメモリ7からページインするページと入れ替
えを行う対象とするページを決定する。また、シーケン
サ270は、プロセッサエレメント231 〜23n から
要求があったサブページを最初にメインメモリ7から共
有メモリ224に転送するように、共有メモリ224と
メインメモリ7との間のページ転送を制御する。なお、
シーケンサ270は、要求バッファ271および退避バ
ッファ272の読み書きを自由に行える。
【0044】以下、複数のサブページ入れ替え要求が連
続して発生した場合における制御回路233の動作を説
明する。図9は、複数のサブページ入れ替え要求が連続
して発生した場合における制御回路233の処理のフロ
ーチャートである。 ステップS1:制御回路233は、コモンバス22を介
して、例えば、プロセッサエレメント231 から第1の
サブページ入れ替え要求を入力し、これを要求バッファ
271に記憶する。
【0045】ステップS2:制御回路233は、コモン
バス22を介して、例えば、プロセッサエレメント23
2 から第2のサブページ入れ替え要求を入力し、これを
要求バッファ271に記憶する。
【0046】ステップS3:シーケンサ270は、要求
バッファ271から第1のサブページ入れ替え要求を読
み出して、これをデコードし、当該デコード結果に応じ
た制御信号S270に基づいて、第1のサブページ入れ
替え要求が要求するサブページについて、外部アクセス
バス26を介して、メインメモリ7と共有メモリ224
との間で入れ替えを行う。
【0047】ステップS4:シーケンサ270は、第1
のサブページ入れ替え要求に伴うバックグランドジョ
ブ、すなわち、第1のサブページ入れ替え要求が要求す
るサブページが属するページのうち、当該要求があった
サブページ以外のサブページを、メインメモリ7と共有
メモリ224との間で入れ替えるジョブを、要求バッフ
ァ271に退避する。
【0048】ステップS5:シーケンサ270は、要求
バッファ271から第2のサブページ入れ替え要求を読
み出して、これをデコードし、当該デコード結果に応じ
た制御信号S270に基づいて、第2のサブページ入れ
替え要求が要求するサブページについて、外部アクセス
バス26を介して、メインメモリ7と共有メモリ224
との間で入れ替えを行う。
【0049】ステップS6:シーケンサ270は、第2
のサブページ入れ替え要求に伴うバックグランドジョ
ブ、すなわち、第2のサブページ入れ替え要求が要求す
るサブページが属するページのうち、当該要求があった
サブページ以外のサブページを、メインメモリ7と共有
メモリ224との間で入れ替えるジョブを、要求バッフ
ァ271に退避する。
【0050】ステップS7:シーケンサ270は、ステ
ップS4で退避した第1のサブページ入れ替え要求に伴
うバックグランドジョブを読み出して実行する。
【0051】ステップS8:シーケンサ270は、ステ
ップS6で退避した第2のサブページ入れ替え要求に伴
うバックグランドジョブを読み出して実行する。
【0052】要求バッファ271は、プロセッサエレメ
ント231 〜23n からのサブページ入れ替え要求を記
憶する、例えばFIFO(First In First Out)方式のメ
モリであり、一度に複数のサブページ入れ替え要求に対
応できる。退避バッファ272は、前述した図9に示す
ステップS4およひS5において、シーケンサ270か
ら退避されたサブページ入れ替え要求を記憶する、例え
ばFIFO方式のメモリである。
【0053】コモンバス用制御回路231は、メモリ内
部バス51およびコモンバス22を介したプロセッサエ
レメント231 〜23n とメモリサブバンク41〜44
との間のサブページの転送を制御する。具体的には、コ
モンバス用制御回路231は、制御回路233から制御
信号に基づいて、制御信号S31を出力してアドレスデ
コーダ57〜60を制御すると共に、マルチプレクサ5
3〜56の切り換え制御を行う。
【0054】外部バス用制御回路232は、メモリ内部
バス52および外部アクセスバス26を介したメモリサ
ブバンク41〜44とメインメモリ7との間のページの
転送を制御する。具体的には、外部バス用制御回路23
2は、制御回路33からの制御信号に基づいて、制御信
号S32を出力してアドレスデコーダ57〜60を制御
すると共に、マルチプレクサ53〜54の切り換え制御
を行う。
【0055】ここで、図7に示すメモリ内部バス51,
52、マルチプレクサ(MUX)53,54,55,5
6、メモリセル領域90、アドレスデコーダ57,5
8,59,60、タグデータ領域120およびリクエス
トキュー125は、前述した図2に示すものと同じであ
る。
【0056】以下、並列プロセッサ221の動作につい
て説明する。ここでは、以下、図6に示すプロセッサエ
レメント231 からのサブページ入れ替え要求に応じて
共有メモリ224とメインメモリ7との間でのページP
(1)の入れ替えを完了する前に、例えば、図6に示す
プロセッサエレメント232からページミスを伴うサブ
ページPs2(2)の入れ替え要求信号が発生した場合
の並列プロセッサ21の動作を図10を参照しながら説
明する。具体的には、図10に示すタイミング「r1」
で、前述したように、図1に示すプロセッサエレメント
231 からサブページPs1(1)の入れ替え要求が発
生し、続いて、タイミング「r2」で、図1に示すプロ
セッサエレメント232からサブページPs2(2)の
入れ替え要求が発生した場合を考える。
【0057】この場合には、先ず、図10に示すタイミ
ング「r1」で、コモンバス22を介して、プロセッサ
エレメント231 から図7に示す共有メモリ224の制
御回路233に、サブページPs1(1)の入れ替え要
求が出力され、当該入れ替え要求が、図8に示す要求バ
ッファ271に蓄えられる。そして、シーケンサ270
において、要求バッファ271に蓄えられたサブページ
Ps1(1)の入れ替え要求がデコードされ、当該デコ
ード結果に応じた制御信号S270が生成される。ま
た、それに続いて、図10に示すタイミング「r2」
で、コモンバス22を介して、プロセッサエレメント2
2 から図7に示す共有メモリ224の制御回路233
に、サブページPs2(2)の入れ替え要求が出力さ
れ、当該入れ替え要求が、図8に示す要求バッファ27
1に蓄えられる。そして、シーケンサ270において、
要求バッファ271に蓄えられたサブページPs2
(2)の入れ替え要求がデコードされ、当該デコード結
果に応じた制御信号S270が生成される。
【0058】次に、シーケンサ270におけるサブペー
ジPs1(1)の入れ替え要求のデコード結果に応じた
制御信号S270に基づいて、図10に示すように、サ
ブページPs1(1)が、外部アクセスバス26を介し
て、メインメモリ7と図7に示す共有メモリ224のサ
ブバンク42との間で入れ替えられる。そして、図10
に示すタイミング「r3」で当該入れ替えが完了する
と、次に、サブページPs1(1)が、コモンバス22
を介して、サブバンク42からプロセッサエレメント2
1 に出力される。また、図10に示すタイミング「r
3」で、サブページPs1(1)の入れ替え要求に伴う
バックグランドジョブが、退避バッファ272に退避さ
れる。
【0059】また、図10に示すタイミング「r3」で
は、シーケンサ270におけるサブページPs2(2)
の入れ替え要求のデコード結果に応じた制御信号S27
0に基づいて、図10に示すように、サブページPs2
(2)が、外部アクセスバス26を介して、メインメモ
リ7と図7に示す共有メモリ224のサブバンク43と
の間で入れ替えられる。そして、図10に示すタイミン
グ「r5」で当該入れ替えが完了すると、次に、サブペ
ージPs2(2)が、コモンバス22を介して、サブバ
ンク43からプロセッサエレメント232 に出力され
る。また、図10に示すタイミング「r5」では、サブ
ページPs2(2)の入れ替え要求に伴うバックグラン
ドジョブが、退避バッファ272に退避される。
【0060】さらに、図10に示すタイミング「r5」
では、退避バッファ272に退避したサブページPs1
(1)の入れ替え要求に伴うバックグランドジョブがシ
ーケンサ270に呼び出されて実行され、サブページP
s2(1),Ps3(1),Ps0(1)が、外部アク
セスバス26を介して、メインメモリ7と図7に示す共
有メモリ224のサブバンク43,44,41との間で
入れ替えられる。そして、図10に示すタイミング「r
6」で、当該入れ替えが完了すると、次ぎに、退避バッ
ファ272に退避したサブページPs2(2)の入れ替
え要求に伴うバックグランドジョブがシーケンサ270
に呼び出されて実行され、サブページPs3(2),P
s0(2),Ps1(2)が、外部アクセスバス26を
介して、メインメモリ7と図7に示す共有メモリ224
のサブバンク44,41,42との間で入れ替えられ
る。
【0061】以上説明したように、並列プロセッサ22
1によれば、複数のサブページ入れ替え要求が連続して
発生した場合に、これらのサブページ入れ替え要求によ
って要求されるサブページのフォアグランドジョブを、
それらのバックグランドジョブに先立って実行する。そ
のため、例えば、図10に示すサブページPs1(1)
のメインメモリ7から共有メモリ224への転送終了タ
イミング「r3」から、サブページPs2(2)のメイ
ンメモリ7から共有メモリ224への転送終了タイミン
グ「r5」までの時間を128サイクルに短縮できる。
すなわち、並列プロセッサ221によれば、前述した第
1実施形態の並列プロセッサ21に比べて、プロセッサ
エレメント231 〜23n がサブページ入れ替え要求を
発してから、当該要求するサブページを得るまでの時間
を短縮できる。その結果、メモリアクセスに伴うプロセ
ッサエレメント231 〜23n の待ち時間を短縮でき、
並列プロセッサ221の演算性能を向上できる。
【0062】並列プロセッサ221によれば、このよう
に、メモリアクセスに伴うプロセッサエレメントの待ち
時間を短縮できることから、科学技術計算用の汎用コン
ピュータの他にも、リアルタイム性が要求されるエンベ
デッド分野やNC工作機械などの分野にも応用できる。
また、高いリアルタイム性が要求される画像・音声情報
処理(生放送)にも応用できる。
【0063】特に、マルチプロセッサにおいては、共有
メモリの性能(サービスのスループットとレイテンシ)
がシステム性能に及ぼす影響が大きく、かつ、今までは
経済的に効果のある方法を用いておらず、コストの高い
方法で共有メモリを設計していた。例えば、共有メモリ
が保持することができるメモリ容量を大きくし、共有メ
モリ内にページが存在する確率を高めるなどの方法が採
られていた。しかしながら、これではLSIに実装する
メモリが占める面積が増大して、低コストでチップが制
作できないなどの問題があった。また、面積の増大に伴
う動作周波数などの回路的な問題も存在していた。並列
プロセッサ221によれば、これらの問題を解決でき
る。
【0064】また、画像処理などの分野では、同一のペ
ージ内のデータが、プロセッサエレメント231 〜23
n から連続してアクセスされる場合が多いが、並列プロ
セッサ21では、ページフォルトが発生した場合に、要
求が生じたサブページの他に当該サブページと連続した
アドレスを持つ他の3個のサブページもメインメモリ7
から共有メモリ224に読み込むため、次にページフォ
ルトが発生する可能性を低減できる。すなわち、画像処
理の特性から、要求があったサブページと連続したアド
レスのサブページについても近い将来、プロセッサエレ
メント231 〜23n からアクセスが発生する可能性が
高いため、これらのサブページを要求があったサブペー
ジと共にメインメモリ7から共有メモリ224に読み込
むことは、将来のページフォルトの発生率を低下させる
のに有効である。
【0065】また、並列プロセッサ221では、共有メ
モリ224のメモリセルとして1ポート構造のものを用
いて、プロセッサエレメント231 〜23n と共有メモ
リ224との間でのサブページ入れ替え処理と、共有メ
モリ224とメインメモリ7との間でのページ入れ替え
処理とを並行して行うことができるため、小さな回路規
模で、高速処理を実現できる。すなわち、共有メモリ2
24は、シングルポートであるにも係わらずに、機能的
に、2ポートと略同じ性能を実現できる。
【0066】第3実施形態 本実施形態の並列プロセッサは、基本的に、図7に示す
制御回路233の構成を除いて、前述した第2実施形態
の図6および図7に示す並列プロセッサ221と同じで
ある。図11は、本実施形態の並列プロセッサ321の
システム構成図である。図11に示すように、並列プロ
セッサ321は、共有メモリ324を除いて、前述した
図6に示す並列プロセッサ221と同じである。図12
は、図11に示す共有メモリ324の構成図である。図
12に示すように、共有メモリ324は、制御回路33
3を除いて、前述した図7に示す共有メモリ224と同
じである。
【0067】以下、図13に示す制御回路333につい
て説明する。図12に示すように、制御回路333は、
シーケンサ370および要求バッファ371を有し、退
避バッファを有しない。図14は、要求バッファ371
の各エントリィの構成を説明するための図である。図1
4に示すように、要求バッファ371の各エントリィ
は、要求ページのアドレス「ADDRESS」の他に、
有効ビット「V」、新規エントリィ判別ビット「N」、
退避ビット「S」および処理中ビット「P」の4ビット
の情報ビットを有する。
【0068】有効ビット「V」は、エントリィが有効で
あるか否かを示す。新規エントリィ判別ビット「N」
は、エントリィが新規であり、プロセッサエレメントに
ページがサービスされていないことを示す。退避ビット
「S」は、エントリィが退避されていることを示す。処
理中ビット「P」は、現在、コモンバス22あるいは外
部アクセスバス26を介して、サブページあるいはペー
ジを入れ替え中であることを示している。
【0069】これらの4ビットの情報ビットは、各ビッ
トの組み合わせによって、図15に示す5つの意味を持
つ。以下、「x」は、「0」および「1」の何れでも良
いことを意味する。図15に示すように、「V,N,
S,P」が「0,x,x,x」の場合には、当該エント
リィは存在しないことを意味する。また、「V,N,
S,P」が「1,1,0,0」の場合には、当該エント
リィが新規エントリィであって未処理であることを意味
する。
【0070】また、「V,N,S,P」が「1,1,
0,1」の場合には、当該エントリィが新規エントリィ
であって、現在、ページを、外部アクセスバス26を介
して共有メモリ324とメインメモリ7との間で入れ替
え中であることを示す。また、「V,N,S,P」が
「1,0,0,1」の場合には、当該エントリィが新規
エントリィであって、現在、サブページを、コモンバス
22を介してプロセッサエレメント231 〜23n と共
有メモリ324との間で入れ替え中であることを示す。
さらに、「V,N,S,P」が「1,1,1,0」の場
合には、当該エントリィが新規エントリィであって、外
部アクセスバス26を介して共有メモリ324とメイン
メモリ7との間でページを入れ替え中に退避されたこと
を意味している。
【0071】以下、前述した図10に示す場合を用い
て、並列プロセッサ321の動作について説明する。具
体的には、図10に示すタイミング「r1」で、前述し
たように、図1に示すプロセッサエレメント231 から
サブページPs1(1)の入れ替え要求が発生し、続い
て、タイミング「r2」で、図1に示すプロセッサエレ
メント232からサブページPs2(2)の入れ替え要
求が発生した場合を考える。
【0072】この場合には、先ず、図10に示すタイミ
ング「r1」で、コモンバス22を介して、プロセッサ
エレメント231 から図7に示す共有メモリ224の制
御回路233に、サブページPs1(1)の入れ替え要
求が出力され、当該入れ替え要求が、図13に示す要求
バッファ371に蓄えられる。そして、シーケンサ37
0において、要求バッファ371に蓄えられたサブペー
ジPs1(1)の入れ替え要求がデコードされ、当該デ
コード結果に応じた制御信号S370が生成される。こ
のとき、要求バッファ371におけるサブページPs1
(1)の入れ替え要求のエントリィは、「ADDRES
S」がサブページPs1(1)のアドレスになってお
り、「V,N,S,P」が「1,1,0,0」となって
いる。
【0073】また、それに続いて、図10に示すタイミ
ング「r2」で、コモンバス22を介して、プロセッサ
エレメント232 から図7に示す共有メモリ224の制
御回路233に、サブページPs2(2)の入れ替え要
求が出力され、当該入れ替え要求が、図8に示す要求バ
ッファ271に蓄えられる。そして、シーケンサ370
において、要求バッファ371に蓄えられたサブページ
Ps2(2)の入れ替え要求がデコードされ、当該デコ
ード結果に応じた制御信号S370が生成される。この
とき、要求バッファ371におけるサブページPs2
(2)の入れ替え要求のエントリィは、「ADDRES
S」がサブページPs2(2)のアドレスになってお
り、「V,N,S,P」が「1,1,0,0」となって
いる。
【0074】そして、シーケンサ370におけるサブペ
ージPs1(1)の入れ替え要求のデコード結果に応じ
た制御信号S370に基づいて、図10に示すように、
サブページPs1(1)が、外部アクセスバス26を介
して、メインメモリ7と図11に示す共有メモリ324
のサブバンク42との間で入れ替えられる。このとき、
要求バッファ371におけるサブページPs1(1)の
入れ替え要求のエントリィは、「V,N,S,P」が
「1,1,0,1」となっている。
【0075】そして、図10に示すタイミング「r3」
で当該入れ替えが完了すると、次に、サブページPs1
(1)が、コモンバス22を介して、共有メモリ324
のサブバンク42からプロセッサエレメント231 に出
力される。
【0076】また、図10に示すタイミング「r3」
で、要求バッファ371におけるサブページPs1
(1)の入れ替え要求のエントリィは、「V,N,S,
P」が「1,1,1,0」に設定される。これによっ
て、当該サブページPs1(1)の入れ替え要求のバッ
クグランドジョブが退避状態となる。
【0077】また、図10に示すタイミング「r3」で
は、シーケンサ370におけるサブページPs2(2)
の入れ替え要求のデコード結果に応じた制御信号S37
0に基づいて、図10に示すように、サブページPs2
(2)が、外部アクセスバス26を介して、メインメモ
リ7と図11に示す共有メモリ324のサブバンク43
との間で入れ替えられる。このとき、要求バッファ37
1におけるサブページPs2(2)の入れ替え要求のエ
ントリィは、「V,N,S,P」が「1,1,0,1」
となっている。
【0078】そして、図10に示すタイミング「r5」
で当該入れ替えが完了すると、次に、サブページPs2
(2)が、コモンバス22を介して、サブバンク43か
らプロセッサエレメント232 に出力される。
【0079】また、図10に示すタイミング「r5」
で、要求バッファ371におけるサブページPs2
(2)の入れ替え要求のエントリィは、「V,N,S,
P」が「1,1,1,0」に設定される。これによっ
て、当該サブページPs2(2)の入れ替え要求のバッ
クグランドジョブが退避状態となる。
【0080】さらに、図10に示すタイミング「r5」
では、要求バッファ371における退避状態を示す
(「V,N,S,P」が「1,1,1,0」となってい
る)エントリィに記憶されたサブページPs1(1)の
入れ替え要求に伴うバックグランドジョブがシーケンサ
270に呼び出されて実行され、サブページPs2
(1),Ps3(1),Ps0(1)が、外部アクセス
バス26を介して、メインメモリ7と図11に示す共有
メモリ324のサブバンク43,44,41との間で入
れ替えられる。
【0081】そして、図10に示すタイミング「r6」
で、当該入れ替えが完了すると、次ぎに、要求バッファ
371における退避状態を示す(「V,N,S,P」が
「1,1,1,0」となっている)エントリィに記憶さ
れたサブページPs2(2)の入れ替え要求に伴うバッ
クグランドジョブがシーケンサ270に呼び出されて実
行され、サブページPs3(2),Ps0(2),Ps
1(2)が、外部アクセスバス26を介して、メインメ
モリ7と図11に示す共有メモリ324のサブバンク4
4,41,42との間で入れ替えられる。
【0082】以上説明したように、並列プロセッサ32
1によれば、前述した並列プロセッサ221と同様に、
複数のサブページ入れ替え要求が連続して発生した場合
に、これらのサブページ入れ替え要求によって要求され
るサブページのフォアグランドジョブを、それらのバッ
クグランドジョブに先立って実行する。そのため、例え
ば、図10に示すサブページPs1(1)のメインメモ
リ7から共有メモリ324への転送終了タイミング「r
3」から、サブページPs2(2)のメインメモリ7か
ら共有メモリ324への転送終了タイミング「r5」ま
でを128サイクルに短縮できる。
【0083】本発明は上述した実施形態には限定されな
い。例えば、上述した第2実施形態では、図10に示す
ように、メインメモリ7から共有メモリ324へのサブ
ページPs2(2)の転送が完了したタイミング「r
5」から、サブページPs1(1)のバックグランドジ
ョブの実行を開始したが、当該バックグランドジョブの
開始は、タイミング「r5」以降であれば特に限定され
ない。
【0084】また、上述した第3実施形態では、図14
および図15に示す退避ビット「S」に1ビットを割り
当てた場合を例示したが、1ページに含まれる要求があ
ったサブページを除く3個のサページのうち、最初にバ
ックグランドジョブを行うサブページを特定可能な2ビ
ット以上を退避ビット「S」に割り当てることで、バッ
クグランドジョブを実行中に他のサブページ入れ替え要
求が発生した場合にも適切に対処できる。
【0085】また、上述した第3実施形態では、第1の
サブページ入れ替え要求と第2のサブページ入れ替え要
求とが連続して発生した場合を例示したが、本発明は、
3個以上のサブページ入れ替え要求が連続して発生する
場合にも対応可能である。この場合には、連続して発生
したサブページ入れ替え要求のフォアグランドジョブを
順次に実行した後に、これらのバックグランドジョブを
順次に実行する。
【0086】また、上述した実施形態では、共有メモリ
24,224,324のメモリセル領域を4個のメモリ
サブバンク41〜44に分割した場合を例示したが、メ
モリサブバンクの数は任意である。従って、例えば、共
有メモリ24,224,234のメモリセル領域を8個
のメモリサブバンクに分割してもよい。この場合には、
1ページは8個のサブページで構成される。また、上述
した実施形態では、単数のサブページのデータ量を51
2バイトとしたが、このデータ量は特に限定されず、2
56バイトあるいは1024バイトなどであってもよ
い。
【0087】また、上述した並列プロセッサでは、図
2,図7および図11に示すように、1組のメモリ内部
バス51およびコモンバス22を用いた場合を例示した
が、メモリサブバンクの数以下の複数組のメモリ内部バ
ス51およびコモンバス22を設けてもよい。この場合
には、当該組の数に応じて、プロセッサエレメント23
1 〜23n から共有メモリ24,224,324の異な
るサブバンクに同時にアクセスが可能となり、さらなる
高速処理を実現できる。
【0088】
【発明の効果】以上説明したように、本発明の並列プロ
セッサによれば、プロセッサエレメントが共有メモリに
アクセスするときの待ち時間を短縮でき、高い演算性能
を実現できる。また、本発明の演算処理方法によれば、
プロセッサエレメントが共有メモリにアクセスするとき
の待ち時間を短縮でき、プロセッサエレメントに高い演
算性能を実現させることが可能になる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態の並列プロセッ
サのシステム構成図である。
【図2】図2は、図1に示す共有メモリの構成図であ
る。
【図3】図3は、図2に示すメモリサブバンクに記憶さ
れるサブページを説明するための図である。
【図4】図4は、図3に示すサブページと、共有メモリ
のサブバンクとの対応を説明するための図である。
【図5】図5は、図1に示す並列プロセッサの動作を説
明するためのタイミングチャートである。
【図6】図1は、本発明の第2実施形態の並列プロセッ
サのシステム構成図である。
【図7】図7は、図6に示す共有メモリの構成図であ
る。
【図8】図8は、図7に示す制御回路の構成図である。
【図9】図9は、複数のサブページ入れ替え要求が連続
して発生した場合における制御回路の処理のフローチャ
ートである。
【図10】図10は、図6に示す並列プロセッサの動作
を説明するためのタイミングチャートである。
【図11】図11は、本発明の第3実施形態の並列プロ
セッサのシステム構成図である。
【図12】図12は、図11に示す共有メモリの構成図
である。
【図13】図13は、図12に示す制御回路の構成図で
ある。
【図14】図14は、図13に示す要求バッファの各エ
ントリィの構成を説明するための図である。
【図15】図15は、図14に示す各エントリィの情報
ビットが示す意味を説明するための図である。
【図16】図16は、従来の一般的な並列プロセッサの
システム構成図である。
【符号の説明】
6…チップインタフェース、7…メインメモリ、22…
コモンバス、231 〜23n …プロセッサエレメント、
24,224,324…共有メモリ、25…バスユニッ
ト、26…外部アクセスバス、271 〜273 ,41〜
44…サブバンク、31…コモンバス用制御回路、32
…外部バス用制御回路、33,232,333…制御回
路、53〜56…マルチプレクサ、57〜60…アドレ
スデコーダ、800 〜80m …バンク、120…タグデ
ータ領域、121…バリッド識別領域、122…ダーテ
ィ識別領域、123…ページセレクタ領域、125…リ
クエストキュー、1300 〜130m-1 …タグバンク、
270,370…シーケンサ、271,371…要求バ
ッファ、272…退避バッファ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】単数または複数のサブページを記憶する内
    部メモリを備え、当該内部メモリに記憶されたデータを
    用いて演算処理を行う複数のプロセッサエレメントと、 前記複数のプロセッサエレメントと接続された第1のバ
    スと、 外部メモリと接続された第2のバスと、 前記第1のバスおよび前記第2のバスの双方に接続され
    た共有メモリとを有し、 前記共有メモリは、 複数のサブページを記憶する記憶手段と、 前記プロセッサエレメントからのアクセス要求に応じ
    て、当該プロセッサエレメントの内部メモリと前記記憶
    手段との間の前記第1のバスを介したサブページの転
    送、および、前記記憶手段と前記外部メモリとの間の前
    記第2のバスを介した複数のサブページからなるページ
    の転送を制御し、一の前記プロセッサエレメントから前
    記記憶手段に対してのページフォルトを伴う第1のアク
    セス要求による前記第2のバスを介した前記共有メモリ
    と外部メモリとの間のページ転送処理が終了する前に、
    他の前記プロセッサエレメントから前記記憶手段に対し
    てページフォルトを伴う第2のアクセス要求が発生した
    場合に、前記第1のアクセス要求および前記第2のアク
    セス要求によって要求されるサブページを、前記外部メ
    モリから前記記憶手段に転送した後に、 前記第1のアクセス要求および前記第2のアクセス要求
    によって要求されるサブページが属するページの他のサ
    ブページを、前記外部メモリから前記記憶手段に転送す
    る制御手段とを有する並列プロセッサ。
  2. 【請求項2】前記制御手段は、前記第1のアクセス要求
    および前記第2のアクセス要求によって要求されるサブ
    ページを、前記第2のバスを介して前記外部メモリから
    前記記憶手段に順に転送した後に、前記第1のアクセス
    要求によって要求されるサブページが属するページの他
    のサブページを、前記第2のバスを介して前記外部メモ
    リから前記記憶手段に転送し、それに続いて、前記第2
    のアクセス要求によって要求されるサブページが属する
    ページの他のサブページを、前記第2のバスを介して前
    記外部メモリから前記記憶手段に転送する請求項1に記
    載の並列プロセッサ。
  3. 【請求項3】前記制御手段は、前記第1のアクセス要求
    によって要求されるサブページを、前記第2のバスを介
    して前記外部メモリから前記記憶手段に転送した後に、
    当該サブページを、前記第1のバスを介して前記記憶手
    段から当該第1のアクセス要求を発したプロセッサエレ
    メントに転送する請求項2に記載の並列プロセッサ。
  4. 【請求項4】前記制御手段は、前記第2のアクセス要求
    によって要求されるサブページを、前記第2のバスを介
    して前記外部メモリから前記記憶手段に転送した後に、
    当該サブページを、前記第1のバスを介して前記記憶手
    段から当該第2のアクセス要求を発したプロセッサエレ
    メントに転送する請求項3に記載の並列プロセッサ。
  5. 【請求項5】前記第1のバスを介したサブページの転送
    処理と、前記第2のバスを介したサブページの転送処理
    とを並行して行う請求項4に記載の並列プロセッサ。
  6. 【請求項6】前記制御手段は、 前記第1のアクセス要求および前記第2のアクセス要求
    を記憶するアクセス要求記憶部と、 前記第1のアクセス要求および前記第2のアクセス要求
    によって要求されるサブページが属するページの他のサ
    ブページを前記外部メモリから前記記憶手段に転送する
    処理を示す手続きを記憶する退避手続き記憶部と、 前記第1のアクセス要求によって要求されるサブページ
    を、前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送した後に、前記第1のアクセス要求によっ
    て要求されるサブページが属するページの他のサブペー
    ジを前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送する第1の手続きを前記退避手続き記憶部
    に記憶し、 前記第2のアクセス要求によって要求されるサブページ
    を、前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送した後に、前記第2のアクセス要求によっ
    て要求されるサブページが属するページの他のサブペー
    ジを前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送する第2の手続きを前記退避手続き記憶部
    に記憶すると共に、前記退避手続き記憶部から前記第1
    の手続きを呼び出して実行し、 前記第1の手続きの実行後に、前記退避手続き記憶部か
    ら前記第2の手続きを呼び出して実行する制御部とを有
    する請求項2に記載の並列プロセッサ。
  7. 【請求項7】前記制御手段は、 前記第1のアクセス要求および前記第2のアクセス要求
    を、退避データと対応付けて記憶するアクセス要求記憶
    部と、 前記第1のアクセス要求によって要求されるサブページ
    を、前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送した後に、前記アクセス要求記憶部に記憶
    された前記第1のアクセス要求に対応する前記退避デー
    タを退避状態に設定し、 前記第2のアクセス要求によって要求されるサブページ
    を、前記第2のバスを介して前記外部メモリから前記記
    憶手段に転送した後に、前記アクセス要求記憶部に記憶
    された前記第2のアクセス要求に対応する前記退避デー
    タを退避状態に設定すると共に、前記退避データを用い
    て、前記アクセス要求記憶部に記憶された前記第1のア
    クセス要求を読み出して、当該第1のアクセス要求によ
    って要求されるサブページが属するページの他のサブペ
    ージを前記第2のバスを介して前記外部メモリから前記
    記憶手段に転送し、 当該転送後に、前記退避データを用いて、前記アクセス
    要求記憶部に記憶された前記第2のアクセス要求を読み
    出して、当該第2のアクセス要求によって要求されるサ
    ブページが属するページの他のサブページを前記第2の
    バスを介して前記外部メモリから前記記憶手段に転送す
    る請求項2に記載の並列プロセッサ。
  8. 【請求項8】前記記憶手段は、それぞれ単数のサブペー
    ジを記憶する複数のサブバンクを備え、 前記共有メモリは、前記複数のサブバンクのそれぞれに
    対応して設けられ、対応するサブバンクと前記第1のバ
    スおよび第2のバスのうち選択した一方とを接続する複
    数の選択手段をさらに有する請求項1に記載の並列プロ
    セッサ。
  9. 【請求項9】前記第1のバスのデータ転送速度は、前記
    第2のバスのデータ転送速度と同一、または、前記第2
    のバスのデータ転送速度より速い請求項1に記載の並列
    プロセッサ。
  10. 【請求項10】前記記憶手段の記憶領域の各サブバンク
    に、それぞれ単数のデータポートが設けられている請求
    項8に記載の並列プロセッサ。
  11. 【請求項11】前記記憶手段の複数のサブバンクは、同
    じ記憶容量を有する請求項8に記載の並列プロセッサ。
  12. 【請求項12】前記記憶手段のサブバンクの数と、前記
    ページを構成するサブページの数とは同じである請求項
    8に記載の並列プロセッサ。
  13. 【請求項13】前記ページを構成する複数のサブページ
    は、前記外部メモリのアドレス空間で連続したアドレス
    を持つ請求項1に記載の並列プロセッサ。
  14. 【請求項14】プロセッサエレメントからのアクセス要
    求に応じて、当該プロセッサエレメントと共有メモリと
    の間の前記第1のバスを介したサブページの転送、およ
    び、前記共有メモリと外部メモリとの間の前記第2のバ
    スを介した複数のサブページからなるページの転送を制
    御し、 複数のプロセッサエレメントのうち、一のプロセッサエ
    レメントから前記共有メモリに対してのページフォルト
    を伴う第1のアクセス要求による前記第2のバスを介し
    た前記共有メモリと外部メモリとの間のページ転送処理
    が終了する前に、他のプロセッサエレメントから前記共
    有メモリに対してページフォルトを伴う第2のアクセス
    要求が発生した場合に、前記第1のアクセス要求および
    前記第2のアクセス要求によって要求されるサブページ
    を、前記外部メモリから前記共有メモリに転送した後
    に、 前記第1のアクセス要求および前記第2のアクセス要求
    によって要求されるサブページが属するページの他のサ
    ブページを、前記外部メモリから前記共有メモリに転送
    する演算処理方法。
  15. 【請求項15】前記第1のアクセス要求および前記第2
    のアクセス要求によって要求されるサブページを、前記
    第2のバスを介して前記外部メモリから前記共有メモリ
    に順に転送した後に、前記第1のアクセス要求によって
    要求されるサブページが属するページの他のサブページ
    を、前記第2のバスを介して前記外部メモリから前記共
    有メモリに転送し、それに続いて、前記第2のアクセス
    要求によって要求されるサブページが属するページの他
    のサブページを、前記第2のバスを介して前記外部メモ
    リから前記共有メモリに転送する請求項14に記載の演
    算処理方法。
  16. 【請求項16】前記第1のアクセス要求によって要求さ
    れるサブページを、前記第2のバスを介して前記外部メ
    モリから前記共有メモリに順に転送した後に、当該サブ
    ページを、前記第1のバスを介して前記共有メモリから
    当該第1のアクセス要求を発したプロセッサエレメント
    に転送する請求項15に記載の演算処理方法。
  17. 【請求項17】前記第2のアクセス要求によって要求さ
    れるサブページを、前記第2のバスを介して前記外部メ
    モリから前記共有メモリに転送した後に、当該サブペー
    ジを、前記第1のバスを介して前記共有メモリから当該
    第2のアクセス要求を発したプロセッサエレメントに転
    送する請求項16に記載の演算処理方法。
  18. 【請求項18】前記第1のバスを介したサブページの転
    送処理と、前記第2のバスを介したサブページの転送処
    理とを並行して行う請求項17に記載の演算処理方法。
JP10122541A 1998-05-01 1998-05-01 並列プロセッサおよび演算処理方法 Pending JPH11316744A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10122541A JPH11316744A (ja) 1998-05-01 1998-05-01 並列プロセッサおよび演算処理方法
US09/300,461 US6349370B1 (en) 1998-05-01 1999-04-28 Multiple bus shared memory parallel processor and processing method

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JPH11316744A true JPH11316744A (ja) 1999-11-16

Family

ID=14838435

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US6349370B1 (ja)
JP (1) JPH11316744A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100448709B1 (ko) * 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
KR100736902B1 (ko) * 2005-06-23 2007-07-10 엠텍비젼 주식회사 복수의 프로세서에 의한 메모리 공유 방법 및 장치
KR100895298B1 (ko) * 2007-04-30 2009-05-07 한국전자통신연구원 멀티미디어 데이터의 효율적인 병렬 처리를 위한 장치,방법, 데이터 처리 엘리먼트
US11947458B2 (en) * 2018-07-27 2024-04-02 Vmware, Inc. Using cache coherent FPGAS to track dirty cache lines

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
US5845329A (en) * 1993-01-29 1998-12-01 Sanyo Electric Co., Ltd. Parallel computer
US5511224A (en) * 1993-02-18 1996-04-23 Unisys Corporation Configurable network using dual system busses with common protocol compatible for store-through and non-store-through cache memories

Also Published As

Publication number Publication date
US6349370B1 (en) 2002-02-19

Similar Documents

Publication Publication Date Title
US5966734A (en) Resizable and relocatable memory scratch pad as a cache slice
US20080270707A1 (en) Data processor
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
US6446181B1 (en) System having a configurable cache/SRAM memory
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
EP0803818B1 (en) Single-cycle multi-accessible interleaved cache
JPH11316744A (ja) 並列プロセッサおよび演算処理方法
JPH07248967A (ja) メモリ制御方式
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
EP0310446A2 (en) Cache memory management method
WO2015067195A1 (zh) 一种可重构缓存组织结构
JPH11203200A (ja) 並列プロセッサおよびメモリ制御方法
US20090164732A1 (en) Cache memory system and cache memory control method
JPH07282023A (ja) データ転送量可変プロセッサ及びそれを用いたシステム
JPH0695962A (ja) 並列アクセスバスをもつプロセッサ
JP5091548B2 (ja) メモリシステム
JPH11203252A (ja) 並列プロセッサおよびメモリ制御方法
JP2000235490A (ja) マイクロプロセッサ
JPH06324999A (ja) マルチプロセッサシステム
JPH11328123A (ja) プロセッサ、並列プロセッサおよび演算処理方法
JPH0877072A (ja) キャッシュメモリ装置
JP2000010952A (ja) プロセッサおよび並列プロセッサ
JPH1055303A (ja) メモリシステム