JP2001092796A - 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット - Google Patents

並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット

Info

Publication number
JP2001092796A
JP2001092796A JP26379399A JP26379399A JP2001092796A JP 2001092796 A JP2001092796 A JP 2001092796A JP 26379399 A JP26379399 A JP 26379399A JP 26379399 A JP26379399 A JP 26379399A JP 2001092796 A JP2001092796 A JP 2001092796A
Authority
JP
Japan
Prior art keywords
data
memory module
memory
space
mpu
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.)
Granted
Application number
JP26379399A
Other languages
English (en)
Other versions
JP4317296B2 (ja
JP2001092796A5 (ja
Inventor
Shinji Kosho
晋二 古庄
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.)
TAABO DATA LAB KK
TAABO DATA LABORATORY KK
Original Assignee
TAABO DATA LAB KK
TAABO DATA LABORATORY KK
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
Priority to JP26379399A priority Critical patent/JP4317296B2/ja
Application filed by TAABO DATA LAB KK, TAABO DATA LABORATORY KK filed Critical TAABO DATA LAB KK
Priority to AT00956868T priority patent/ATE357694T1/de
Priority to EP00956868A priority patent/EP1244020B1/en
Priority to PCT/JP2000/005947 priority patent/WO2001022229A1/ja
Priority to DE60034065T priority patent/DE60034065D1/de
Priority to US10/088,028 priority patent/US7185179B1/en
Priority to KR1020027003544A priority patent/KR100719872B1/ko
Priority to CNB008143676A priority patent/CN100401270C/zh
Priority to CA002385079A priority patent/CA2385079C/en
Publication of JP2001092796A publication Critical patent/JP2001092796A/ja
Publication of JP2001092796A5 publication Critical patent/JP2001092796A5/ja
Application granted granted Critical
Publication of JP4317296B2 publication Critical patent/JP4317296B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 分散メモリー型において、著しく高速な並列
処理を実現可能なコンピュータアーキテクチャを提供す
る 【解決手段】 コンピュータシステム10は、CPUモ
ジュール12と、それぞれがMPU36およびRAMコ
ア34とを有する複数のメモリモジュール14と、CP
Uとメモリモジュールとの接続やメモリモジュール間の
接続をなす複数組のバス24とを備え、CPU12から
与えられるインストラクションにより、各メモリモジュ
ールが作動する。所定の関連を有する一連のデータに
は、空間IDが付与され、各メモリモジュールが、少な
くとも、当該空間ID、自己が管理する一連のデータの
部分に関する論理アドレス、一連のデータのサイズを含
むテーブルを管理し、かつ、受理したインストラクショ
ンに、自己が管理する一連のデータの部分が関与してい
るか否かを判断して、RAMコアに記憶されたデータに
関する処理を実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の技術分野】本発明は、SIMD(Single Inst
ruction Stream, Multiple Data Stream)を実現可能な
並列コンピュータのアーキテクチャに関し、より詳細に
は、適切かつ高速なメモリ制御により、汎用的な並列演
算が可能なコンピュータアーキテクチャに関する。
【0002】
【従来の技術】社会全体のさまざまな場所にコンピュー
タが導入され、インターネットをはじめとするネットワ
ークが浸透した今日では、そこここで、大規模なデータ
が蓄積されるようになった。このような大規模データを
処理するには、膨大な計算が必要で、そのために並列処
理を導入しようと試みるのは自然である。
【0003】さて、並列処理アーキテクチャは「共有メ
モリ型」と「分散メモリ型」に大別される。前者(「共
有メモリ型」)は、複数のプロセッサが1つの巨大なメ
モリ空間を共有する方式である。この方式では、プロセ
ッサ群と共有メモリ間のトラフィックがボトルネックと
なるので、百を越えるプロセッサを用いて現実的なシス
テムを構築することは容易ではない。したがって、例え
ば10億個の浮動小数点変数の平方根を計算する際、単
一CPUに対する加速比は、せいぜい100倍というこ
とになる。経験的には、30倍程度が上限である。後者
(「分散メモリ型」)は、各プロセッサがそれぞれロー
カルなメモリを持ち、これらを結合してシステムを構築
する。この方式では、数百〜数万ものプロセッサを組み
込んだハードウェアシステムの設計が可能である。した
がって、上記10億個の浮動小数点変数の平方根を計算
する際の単一CPUに対する加速比を、数百〜数万倍と
することが可能である。しかしながら、後者において
も、後述するいくつかの課題が存在する。本出願は、
「分散メモリ型」に関するものであり、この方式につい
て最初に多少の考察を加えながら従来技術との比較を行
うことにする。
【0004】
【課題を解決するための手段】[第1の課題:巨大配列
の分掌管理]「分散メモリ型」の第1の課題は、データ
の分掌管理の問題である。巨大なデータ(一般的には配
列なので、以降、配列で説明する)は、1つのプロセッ
サの所有するローカルメモリに収容できるものではな
く、必然的に複数のローカルメモリに分掌管理される。
効率的かつ柔軟な分掌管理メカニズムを導入しないと、
プログラムの開発および実行に際してさまざまな障害を
抱え込むことになることは明らかである。
【0005】[第2の課題:プロセッサ間通信の効率の
低さ]分散メモリ型システムの各プロセッサが、巨大配
列にアクセスしようとすると、自己の所有するローカル
メモリ上の配列要素に対しては速やかにアクセスできる
ものの、他のプロセッサが所有する配列要素へのアクセ
スはプロセッサ間通信を必須とする。このプロセッサ間
通信はローカルメモリとの通信に比べ、極端にパフォー
マンスが低く、最低でも100クロックかかると言われ
ている。このため、ソート実施時には、巨大配列全域に
わたる参照が実施され、プロセッサ間通信が多発するた
め、パフォーマンスが極端に低下する。
【0006】この問題点につき、より具体的に説明を加
える。1999年現在、パソコンは、1〜数個のCPU
を用いて、「共有メモリ型」として構成されている。こ
のパソコンに使用される標準的なCPUは、メモリバス
の5〜6倍程度の内部クロックで動作し、その内部に自
動的な並列実行機能やパイプライン処理機能が装備され
ており、およそ1データを1クロック(メモリバス)で
処理できる。「共有メモリ型」であるパソコンにて巨大
配列のソート処理を行う場合、1データについて1クロ
ックを要し、このため、1データに100クロック(メ
モリバス)を要する、「分散メモリ型」のマルチプロセ
ッサシステムの100倍のパフォーマンスを発揮するこ
とも考えられる。
【0007】[第3の課題:プログラムの供給]「分散メ
モリ型」の第3の課題は、多数のプロセッサにどうやっ
てプログラムを供給するか、という問題である。非常に
多数のプロセッサに、別々のプログラムをロードし、全
体を協調動作させる方式(MIMD:Multiple Instruc
tion Stream, Multiple Data Stream)では、プログラ
ムの作成、コンパイル、配信のために多大な負荷を要す
る。その一方、多数のプロセッサを同一のプログラムで
動作させる方式(SIMD:Single Instruction Strea
m, Multiple Data Stream)では、プログラムの自由度
が減少し、所望の結果をもたらすプログラムが開発でき
ない事態も想定される。
【0008】本発明は、「分散メモリ型」の上記第1な
いし3の課題を解決する方法およびコンピュータアーキ
テクチャを提供する。第1の「巨大配列の分掌管理」の
課題は、配列の各要素の配置(物理アドレス)を、各プ
ロセッサモジュールが統一的な方法で分掌管理すること
で解決できる。この手法により、ガーベージコレクショ
ンの必要性が無くなり、配列要素の挿入・削除が数クロ
ックで完了し、SIMDを実現する上で欠かせない各プ
ロセッサの暗黙の(非明示的)処理分担を割り付けるこ
ともできる。この方法は、後ほど「多空間メモリ」とい
う概念で説明される。
【0009】第2の「プロセッサ間通信の効率の低さ」
の課題は、達成しようとする処理に応じて各プロセッサ
間をつなぎ替え、各接続経路毎に、定められた種類のデ
ータを、定められた順番で、1方向に連続転送すること
で、バスの能力を100%近くまで使用できるよう通信
をスケジュール化し、同時に巨大パイプライン処理を実
現することで解決できる。その有効性を実証するため、
後ほど、現実的なシステム設計で、10億行のソートを
1秒程度で完了するシステムの構成方法を例示するであ
ろう。これは、既知の最高速の装置に比べて、1万倍以
上高速である。この方法は、後ほど「組替えバス」技術
として説明される。
【0010】第3の「プログラムの供給」の課題は、S
IMD方式を採用することで解決できる。SIMDの場
合は、各プロセッサの暗黙の(非明示的)処理分担をど
うやって決定するか?が最大の問題であるが、前述の
「多空間メモリ」技術にてこの処理分担が自動的に決定
でき、SIMDであってもプログラムの自由度を保持す
ることができる。つまり、本発明は、分散メモリー型に
おいて、単一命令により種々のメモリーに記憶された配
列中の要素を入出力し、著しく高速な並列処理を実現可
能なコンピュータアーキテクチャを提供することを目的
とする。
【0011】
【課題を解決するための手段】本発明の目的は、CPU
モジュールと、それぞれがMPUおよびRAMコアとを
有する複数のメモリモジュールと、前記CPUとメモリ
モジュールとの接続、および/または、メモリモジュー
ル間の接続をなす複数組のバスとを備え、CPUから各
メモリモジュールのMPUに与えられるインストラクシ
ョンにより、各メモリモジュールのMPUが作動するよ
うに構成された並列コンピュータのアーキテクチャであ
って、所定の関連を有する一連のデータに、空間IDが
付与され、各メモリモジュールのMPUが、少なくと
も、当該空間ID、自己が管理する一連のデータの部分
に関する論理アドレス、当該部分のサイズ、および、一
連のデータのサイズを含むテーブルを管理し、かつ、各
メモリモジュールのMPUが、受理したインストラクシ
ョンに、自己が管理する一連のデータの部分が関与して
いるか否かを判断して、RAMコアに記憶されたデータ
を読み出してバスに送出し、バスを介して与えられたデ
ータをRAMコアに書き込み、データに必要な処理を施
し、および/または、前記テーブルを更新するように構
成されたことを特徴とする並列コンピュータのアーキテ
クチャにより達成される。
【0012】本発明によれば、空間IDを用いて一連の
データを把握するため、当該一連のデータが、多数のメ
モリモジュールにより分掌されても、各メモリモジュー
ルのMPUが、当該一連のデータを確実に認識すること
ができる。また、メモリモジュールは、一連のデータお
よび自己が管理するその部分を、テーブルにて把握して
いるため、インストラクションの受理にしたがって、そ
のテーブルを参照して、所定の処理を実行することがで
きる。これにより、単一インストラクションに基づく、
各MPUでの並列処理が実現できる。
【0013】本発明の好ましい実施態様においては、M
PUは、CPUから与えられた空間IDを、自己が管理
する1以上の一連のデータの空間IDと比較する空間コ
ンパレータと、CPUから与えられた論理アドレスと、
自己が管理するデータの部分の論理アドレスとを比較す
るアドレスコンパレータと、当該論理アドレスに基づ
き、自己のRAMセル上の物理アドレスを算出するアド
レスカリキュレータとを有している。これらコンパレー
タおよびカリキュレータは、ハードウェアにて構成され
ても良いし、MPUのプログラムによりソフトウェアと
して実現されるものであっても良い。
【0014】また、本発明の好ましい実施態様において
は、メモリモジュールの各々が、CPUモジュールおよ
び他のメモリモジュールとの同期をなすための同期信号
を受け入れ、かつ、前記複数組のバスの何れかとの接続
が可能な入力と、前記複数組のバスの他の何れかとの接
続が可能な出力を備え、少なくとも、前記同期信号にし
たがって、前記何れかのバスと入力との接続により、デ
ータを入力しつつ、前記他の何れかのバスと出力との接
続により、データを出力できるように構成されている。
本実施の形態によれば、同期信号にしたがって、メモリ
モジュールからのデータ出力およびメモリモジュールへ
のデータ入力がなされ、かつ、バスの接続の制御によ
り、適切に並列処理を実現することが可能となる。
【0015】複数組のバスの各々には、前記CPUモジ
ュールと何れかのメモリモジュールの入力または出力と
の間、および/または、他の何れかのメモリモジュール
の入力または出力と、さらに他のメモリモジュールの出
力または入力との間の接続を規定するためのスイッチが
設けられ、スイッチの切換により、複数組のバスの各々
において、並列的にデータの授受が実現されるのがより
好ましい。これにより、複数組のバスをより有効に利用
することが可能となり、より並列性を高めることが可能
となる。
【0016】本発明のさらに好ましい実施態様において
は、複数組のバスのうちの何れかである第1のバスに、
何れかのメモリモジュールの出力と、他の何れかのメモ
リモジュールの入力とが接続され、かつ、前記複数組の
バスのうち、他の何れかである第2のバスに、当該他の
何れかのメモリモジュールの出力と、さらに他の何れか
のメモリモジュールの入力とが接続され、第1のバスに
おけるデータの授受と、第2のバスにおけるデータの授
受が並列的に進行する。このように、コンピュータの実
施態様によれば、CPUモジュールと、メモリモジュー
ルとにより、パイプライン処理を実現することが可能と
なる。バスとメモリモジュールとの間の接続を繰り返し
て、多段のメモリモジュール間の接続を形成するのがよ
り好ましい。
【0017】本発明の別の好ましい実施態様において
は、MPUが、一連のデータ中の特定の要素を削除し、
前記一連のデータ中に特定の要素を挿入し、或いは、一
連のデータの末尾に特定の要素を追加することを示すイ
ンストラクションを受理すると、テーブルを参照して、
自己の管理するデータの領域と、削除、挿入或いは追加
にかかる要素の位置とを比較して、当該比較結果に応じ
て、前記テーブルの内容を更新する。すなわち、MPU
において、自己が管理するテーブルを更新する、すなわ
ち、リマッピングをすることにより、要素の削除、挿入
および追加を実現することが可能となる。
【0018】本発明のさらに別の実施態様においては、
MPUが、与えられたインストラクションに応答して、
一連のデータ中の要素を特定するための添え字を変換
し、および/または、要素に特定の修飾を与える値変換
を実行する。また、本発明の目的は、CPUモジュール
と、それぞれがMPUおよびRAMコアとを有する複数
のメモリモジュールと、前記CPUとメモリモジュール
との接続、および/または、メモリモジュール間の接続
をなす複数組のバスとを備え、CPUから各メモリモジ
ュールのMPUに与えられるインストラクションによ
り、各メモリモジュールのMPUが作動するように構成
された情報処理ユニットであって、所定の関連を有する
一連のデータに、空間IDが付与され、各メモリモジュ
ールのMPUが、少なくとも、当該空間ID、自己が管
理する一連のデータの部分に関する論理アドレス、当該
部分のサイズ、および、一連のデータのサイズを含むテ
ーブルを管理し、かつ、各メモリモジュールのMPU
が、受理したインストラクションに、自己が管理する一
連のデータの部分が関与しているか否かを判断して、R
AMコアに記憶されたデータを読み出してバスに送出
し、バスを介して与えられたデータをRAMコアに書き
込み、データに必要な処理を施し、および/または、前
記テーブルを更新するように構成されたことを特徴とす
る情報処理ユニットによっても達成される。たとえば、
前記ユニットが単一の回路基板に形成され、CPUモジ
ュールが、レガシーメモリ、入力装置および表示装置を
相互接続する他のバスと連結可能に構成されていても良
い。
【0019】さらに、本発明の目的は、上記情報処理ユ
ニットと、CPUモジュールと他のバスを介して連結さ
れた1以上のレガシーメモリを含む記憶装置、入力装置
および表示装置とを有することを特徴とするコンピュー
タシステムによっても達成される。
【0020】
【発明の実施の形態】[ハードウェア構成]以下、添付
図面を参照して、本発明の実施の形態につき説明を加え
る。図1は、本発明の実施の形態にかかるコンピュータ
システムの構成を示すブロックダイヤグラムである。図
1に示すように、コンピュータシステム10は、単一命
令による並列演算を実現するCPUモジュール12と、
並列演算のために必要な種々のデータを記憶するメモリ
モジュール14−1、14−2、14−3、…と、必要
なプログラムやデータを記憶する固定記憶装置16と、
キーボードやマウスなどの入力装置18と、CRTなど
からなる表示装置20と、種々の形式のデータ等が記憶
されているレガシーメモリ22とを備えている。また、
バス24−1、24−2、…において、CPUモジュー
ル12、各メモリモジュール14との接点には、スイッ
チ28−1、28−2、28−3、…などが配設され、
選択された回路要素間における情報の授受が可能となっ
ている。また、CPUモジュール12とメモリモジュー
ル14−1との間、隣接するメモリモジュール間におい
て、バスの連結および接続をなすためのスイッチ30−
1、30−2、…が設けられている。
【0021】CPUモジュール12と、メモリモジュー
ル14との間には、複数のバス24−1、24−2、2
4−3、24−4、…とが設けられている。したがっ
て、CPUモジュール12とメモリモジュール14との
間、および、メモリモジュール間は、上記バスによりデ
ータ等の授受が可能となっている。また、CPU12
と、メモリモジュール14との間には、制御信号ライン
25が設けられ、CPU12から発せられるインストラ
クションなどが、全てのメモリモジュール14に伝達さ
れるようになっている。
【0022】さらに、CPU12と、他の構成要素(た
とえば、固定記憶装置16、入力装置18など)との間
には、ローカルバス26が配設されており、これらの間
でもデータ等の授受が可能となっている。CPU12
は、固定記憶装置16に記憶され、或いは、バス26上
に接続されたRAMのような他の記憶装置(図示せず)
に記憶されたプログラムを読み出し、このプログラムに
したがって、以下に示すメモリモジュール14へのイン
ストラクションの送出を含むデータの授受のほか、スイ
ッチ28、30の制御等を実行する。また、CPU12
は、プログラムにしたがって、レガシーメモリ22に記
憶された種々の形式のデータを受け入れて、この形式の
データを、CPU12、メモリモジュール14、バス2
4からなる系にて処理可能な一連のデータ(配列)に変
換し、これらを、各メモリモジュール14に記憶させる
こともできる。
【0023】図2は、各メモリモジュール14の概略を
示すブロックダイヤグラムである。図2に示すように、
メモリモジュール14は、CPUモジュール12から与
えられるクロックなど同期信号を受け入れるクロックバ
ッファ32と、データを記憶するRAMコア34と、後
述する空間IDやデータの要素番号等を把握し、CPU
12からのインストラクションなどを受理した場合に、
空間IDや要素番号に基づき、RAMコア34へのデー
タ書き込みやRAMコアからのデータ読み出しを制御す
るMPU36と、バスの何れかからのデータを受け入れ
て、RAMコア34に供給し、および/または、RAM
コア34からのデータを何れかのバスに送出するI/O
38とを有している。この実施の形態において、メモリ
モジュール14は、制御信号ライン25を介して、CP
Uからのインストラクションを受け入れ、MPU36
が、このインストラクションに応答して、RAMコア3
4のデータを読み出し、RAMコア34にデータを書き
込み、或いは、データに所定の処理を施すことができる
ようになっている。また、RAMコア34へのデータア
クセスや、I/Oを介してデータ入力およびデータ出力
は、クロックバッファ32に与えられるクロックなどの
同期信号に基づき実行される。
【0024】図1および図2から明らかなように、本発
明において、コンピュータシステム10は、メモリ共有
型のシステムであると考えることができる。また、後述
するように、制御信号ライン25を介して、各メモリモ
ジュール14にインストラクションを与えることによ
り、各メモリモジュール14が並列的に処理を実行す
る。また、バスへのデータ出力およびバスからのデータ
入力などが、所定の同期信号に基づき実行される。した
がって、このコンピュータシステム10は、SIMDの
形態をなしていると考えることができる。
【0025】[実現される機能の概略]このような構成
を有するコンピュータシステム10につきより詳細な説
明を加える前に、本コンピュータシステム10により実
現される機能の概略を簡単に説明する。 (1)多空間メモリ 本明細書において、多空間メモリとは、メモリ空間を、
空間IDとアドレスとに基づきアクセスするために割り
当てられたメモリ空間をいう。これにより、一連のデー
タが多数のプロセッサに分掌されていても、各プロセッ
サが、これを確実に分離、認識することができる。従来
のメモリ空間においては、プロセス毎に個別の領域を割
り当てることはあっても、一連の変数(配列、構造体な
ど)毎に目盛り空間を割り当てることは行われてこなか
った。したがって、以下、このような従来のメモリ空間
を「単一メモリ空間」と称する。単一メモリ空間のシス
テムにおいては、アドレスのみを用いてデータにアクセ
スしているため、関連を有する一連のデータを分離した
り、認識することができなかった。このため、実際には
並列処理が可能であっても、その可否を判断できない場
合が多かった。また、ある単一メモリ空間に、新たな一
連のデータを収容させる場合に、当該一連のデータの収
容場所を確保するために、ガーベージコレクションを実
行する必要があった。
【0026】これに対して、本発明においては、メモリ
空間に、空間IDを導入し、一連のデータについて同一
のIDを付与している。また、メモリモジュール14に
おいて、自身のRAMコア34に保持されているデータ
に関する空間IDを把握し、これにより、各メモリモジ
ュール14自体が、現在アクセスされているデータの空
間IDを参照することにより、自己の作動の是非を決定
することができる。また、各メモリモジュールが空間I
Dと関連付けて、一連のデータの全部或いは一部を保持
できるため、ある一連のデータを、複数のメモリモジュ
ール14に分割して記憶させることができ、これにより
ガーベージコレクションを不要にすることができる。
【0027】たとえば、図3に示すように、単一メモリ
空間において、“A”という一連のデータ、“B”とい
う一連のデータ、…が収容されている場合を考える。た
とえば、ここで、全メモリサイズが32ワードで、上記
一連のデータのサイズの総和が30ワードであると仮定
する。これら一連のデータは、空間中に点在しているた
め、未使用のメモリサイズは、12ワードであるにもか
かわらず、実際に格納できる一連のデータのサイズは3
ワードに限定される。このため、3ワードを超えたサイ
ズを有する新たな一連のデータを収容すべき場合には、
ガーベージコレクションを実行しなければならない。そ
の一方、図4に示すように、本発明においては、一連の
データの各々に、空間IDが付与されている。これら
は、空間IDと関連付けられて、1以上のメモリモジュ
ール14に記憶される。したがって、未使用のサイズと
収容可能なサイズとを一致させることが可能となる。
【0028】(2)メモリモジュール また、本発明においては、各メモリモジュール14が、
MPU36を有し、上記空間IDのほか、自己が保持す
る一連のデータの各々の要素番号を把握している。した
がって、CPU12からのインストラクションを受理し
た後、MPU36が、インストラクションにしたがって
アクセスすべきデータが、自己のRAMコア34中に保
持されているものか否かを判断して、アクセスに必要の
是非を決定することができる。さらに、各メモリモジュ
ール14が、自己のRAMコア34に格納されている配
列要素の添え字の範囲から、SIMDでのインストラク
ションにおける暗黙の処理の分担範囲を決定することが
可能である。
【0029】また、本発明においては、メモリモジュー
ル14が、アドレスリマッピングを実行できるようにな
っている。たとえば、図5に示すように、ある配列の所
定の位置に特定の要素を挿入する場合、その他、所定の
位置の要素を削除し、或いは、配列の末尾に所定の要素
を追加する場合にも、本実施の形態においては、当該配
列に関連する要素を保持しているメモリモジュールの各
々において、MPU36が、アドレスリマッピングを実
行することにより、並列的かつ高速に、これらを実現す
ることができる。さらに、図6に示すように、配列の要
素(値)に修飾を与える場合(たとえば、各値に「1」
を加える場合)にも、関連する配列の要素を保持するメ
モリモジュールの各々において、MPU36が、並列的
かつ高速に、必要な処理を行うことができる。
【0030】また、メモリモジュール14においては、
MPU36が、RAMコア34にて記憶すべきデータの
各々のサイズを把握し、圧縮した形態にてこれらを記憶
することができる。たとえば、あるメモリモジュール1
4にて、整数値のデータを保持すべき場合に、実際のデ
ータ値が“0”ないし“3”までの値しか取り得ない場
合には、MPU36は、各データのために2ビットのみ
を用意する。CPU12との間では、1つの整数を表現
するために32ビットを使用していた場合には、メモリ
モジュール14とCPU12との間での通信のために、
MPU36が、データ形式を変更して、CPU12との
授受をなせば良い。これにより、RAMコア34をより
無駄なく利用することが可能となる。また、文字列のよ
うな長さの異なるデータについても、同様にデータ長を
変更して記憶することができるようになっている。
【0031】さらに、メモリモジュール14において
は、所定の空間IDに関連付けられたデータや、所定の
範囲の要素番号を付されたデータに、特定の値(たとえ
ば、「0」)をセットすることができるようになってい
る。これにより、メモリモジュール14内で、高速に初
期化の処理を実行することが可能となる。また、メモリ
モジュール14においては、ある特定のデータ(配列)
中の値を検索することや、添字の範囲をチェックするこ
とが可能である。
【0032】(3)組み替え可能バス 本発明においては、CPU12が、スイッチ28−1、
28−2、…およびスイッチ30−1、30−2、…を
選択的にオン/オフして、データの授受をなすべきメモ
リモジュール14を指定することにより、パイプライン
処理を実現している。たとえば、図7に示すように、あ
るメモリモジュール14−iから出力されたデータを、
他のメモリモジュール14−jに与え、かつ、当該他の
メモリモジュール14−jから出力されたデータを、さ
らに他のメモリモジュール14−kに伝達すべき場合に
は、CPU12は、バス24−mを、メモリモジュール
14−i、14−jのために割り当て、かつ、バス24
−nを、メモリモジュール14−j、14−kのために
割り当てるように、各スイッチの状態を設定する。
【0033】さらに、これらパイプライン処理は、単一
のメモリモジュール間の接続により実現される場合だけ
でなく、複数の一連のメモリモジュール(メモリモジュ
ール群)の間の接続により実現することも可能である。
達成しようとする処理に応じて、各メモリモジュール間
をつなぎ替え、各接続経路毎に、定められた種類のデー
タを定められた順序にて一方向に連続転送することで、
バスの能力を100%近く使用できるように、通信をス
ケジュール化することができる。これにより、分散メモ
リ型の並列処理システムの最大の問題であった、プロセ
ッサ間通信のパフォーマンスの低さを、解消することが
できる。このように構成されたコンピュータシステム1
0において、多空間メモリの具体的構成および多空間メ
モリにおけるシステムの作動につき説明を加える。
【0034】[多空間メモリ]図8は、多空間メモリの
下での、メモリモジュール14の構造を説明するための
図である。図8(a)に示すように、メモリモジュール
14中のRAMコア34には、空間ID管理テーブルが
設けられる。これにより、メモリモジュール14のMP
U36は、自己が保持するデータの空間ID等必要な情
報を把握することが可能となる。図8(b)に示すよう
に、空間ID管理テーブルには、自己が保持するデータ
群ごとの、空間ID、CPUの管理の下での、データ群
の論理開始アドレス、データ群が割り付けられた領域の
サイズ、RAMコア34中の物理開始アドレス、当該空
間IDを有する一連のデータの全サイズ、および、アク
セス制限を示すアクセス制限フラグが格納されている。
アクセス制限フラグは、この実施の形態においては、読
み出しのみ可能(R)、書き込みのみ可能(R)、読み
書き可能(RW)の3つの状態を示すことができるよう
になっている。
【0035】メモリモジュール14のMPU36は、あ
る空間IDを有するデータ群が与えられた際に、RAM
コア34中に当該データ群を収容すべき、1以上の領域
を見出して、当該領域にデータ群をそのまま、或いは、
2以上に分割して収容する。この際に、与えられた空間
ID、論理開始アドレス、全サイズ、アクセス制限フラ
グとともに、実際にデータを収容したRAMコア中の論
理開始アドレスや、割り付け領域サイズも、空間ID管
理テーブルに記憶される。図8(c)は、図8(b)に
よる空間ID管理テーブルにしたがったRAMコア36
中のデータを示す図である。
【0036】[メモリアクセスの概略説明]このように
構成されたメモリモジュール14へのアクセスにつき以
下に説明を加える。図9に示すように、まず、CPU1
2が、空間IDおよび論理アドレス、並びに、必要なイ
ンストラクション(たとえば、データの書き込みや読み
出し)を、制御信号ライン25を介して、全てのメモリ
モジュール14に伝達する。各メモリモジュール14に
おいては、これに応答して、MPU36に設けられた空
間コンパレータ52が、空間IDと、自己の空間ID管
理テーブル上に保持されている空間IDとを比較して、
同一のものを、自己が保持しているかを判断し、ま
た、、アドレスコンパレータ54が、論理アドレスにつ
いて、同様の判断を行う。次いで、メモリモジュール1
4のMPU36が、自己のRAMコア34に、インスト
ラクションによる処理対象となるデータが保持されてい
ると判断した場合には、アドレスカリキュレータ56
が、空間ID管理テーブルを参照して、RAMコア34
中の物理アドレスを算出し、処理対象となるデータを特
定する。このようにして、データが特定された後に、M
PU36は、CPU12から与えられたインストラクシ
ョンに応じた処理(たとえば、データの書き込みや読み
出し)を実行し、必要な場合には、データをCPU12
に伝達する(図9(c)参照)。
【0037】[多空間メモリのより具体的な動作:配列
中の要素の削除等]たとえば、ある空間IDをもつ一連
のデータ(以下、これを場合によって「配列」と称す
る。)が、1以上のメモリモジュール14に収容された
状態から、特定の要素が削除された状態までの一連の動
作につき以下に説明する。あるメモリモジュール14−
iにおいて、空間ID「010」に属するデータ群が、
図10(a)に示すように格納され、多のメモリモジュ
ール14−jにおいて、空間ID「010」に属するデ
ータ群が、図10(b)に示すように格納されている場
合を考える。たとえば、メモリモジュール14−iにお
いては、論理アドレス「0」から「59」までのデータ
が、そのRAMコアの物理アドレス「100」から記憶
されていることがわかる。この場合に、みかけの配列
は、図10(c)に示すようなものとなる。
【0038】このように複数のメモリモジュールに、あ
る配列が格納されている場合に、特定の要素を削除する
際の処理につき以下に述べる。CPU12から、各メモ
リモジュール14−1、14−2、…に、制御信号ライ
ン25を介して、空間ID「010」の要素「50〜5
9」を削除するというインストラクションが発せられた
場合を考える。図11および図13は、ある空間ID中
の所定の範囲の要素を削除するというインストラクショ
ンを受理した各メモリモジュールにて実行される処理を
示すフローチャートである。
【0039】各メモリモジュールのMPU36は、制御
信号ライン25を介して与えられたインストラクション
を受理して、その内容を解釈し(ステップ1101)、
インストラクション中の「空間ID」を調べ(ステップ
1102)、自己のRAMコア34が保持するデータの
空間IDに関連しているか否かを判断する(ステップ1
103)。ステップ1103にてノー(No)と判断され
た場合には、処理を終了し、その一方、イエス(Yes)
と判断された場合には、MPU36は、空間ID管理テ
ーブルを参照して、当該空間IDに関するデータ群が書
き込み可能な状態になっているか、或いは、削除要求の
あった範囲のサイズが、全サイズよりも小さいか否かな
どを判断する(ステップ1104)。チェックによって
異常があると判断された場合(ステップ1105でイエ
ス(Yes))には、MPU36は、制御信号ライン25を
介してエラーが生じたことを通知する。その一方、異常
がない場合には、MPU36は、インストラクションに
より削除を要求された範囲と、自己のRAMコア34に
て保持する要素の範囲とを比較し(ステップ110
7)、その比較結果によって(ステップ1108)、種
々の処理を実行する。
【0040】まず、削除要求のあった範囲が、自己の保
持する要素の範囲よりも後ろである場合(図11の
「A」および図12(a)参照)には、MPU36は何
ら処理を実行しない(ステップ1109参照)。削除要
求のあった範囲が、自己の保持する要素の後方に重なっ
て位置している場合(図11の「B」および図12
(b)参照)には、MPU36は、割り付け領域サイズ
を更新する(ステップ1110)。すなわち、削除要求
範囲の先頭(矢印1201参照)から、自己のRAMコ
ア34にて保持する要素の範囲の末尾(矢印1202参
照)までがガーベージとなるように、割り付け領域サイ
ズが変更される。
【0041】その一方、削除要求のあった範囲が、自己
の保持する要素の範囲よりも前方である場合(図11の
「C」および図12(c)参照)には、MPU36は、
論理開始アドレスを、削除要求のあったサイズ分だけ減
じるように、論理開始アドレスを更新する(ステップ1
111)。さらに、削除要求のあった範囲が、自己の保
持する要素の範囲よりも前方で、かつ、一部だけ重なる
場合(図11の「D」および図12(d)参照)には、
MPU36は、論理開始アドレスを、削除要求のあった
範囲の先頭の値に変更するとともに、物理開始アドレス
を、削除要求のあった範囲の末尾の値「+1」に対応す
る物理アドレスに変更する(ステップ1112)。次い
で、MPU36は、割り付け領域サイズを更新する(ス
テップ1113)。
【0042】また、削除要求のあった範囲が、自己の保
持する要素の範囲を包含する場合(図11の「E」およ
び図12(e)参照)には、MPU36は、当該空間I
Dに関する種々のデータを、空間ID管理テーブルから
削除する(図13のステップ1114)。最後に、削除
要求のあった範囲が、自己の保持する要素の範囲に包含
される場合(図11の「F」および図12(f)参照)
には、空間ID管理テーブルを二つに分割して、削除範
囲より前方に関する種々のデータと、削除範囲より後方
に関する種々のデータに関するものを生成する(ステッ
プ1115)。或いは、MPU36は、自己のRAM3
4に関して、ガベージコレクションを時刻しても良い。
【0043】このようにして、CPU12からの単一命
令(ある空間IDの削除命令)に応答して、各メモリモ
ジュール14が動作して、所定のメモリモジュールにて
必要な処理が並列的に実行される。次に、ある空間ID
を有する配列の末尾に、ある要素を追加する場合につき
簡単に説明する。図14は、ある空間IDの配列の末尾
に要素を追加するというインストラクションを受理した
各メモリモジュールにて実行される処理を示すフローチ
ャートである。図14のステップ1401〜ステップ1
406は、図11のステップ1101〜ステップ110
6に対応する。次いで、各メモリモジュール14のMP
U36は、追加すべき要素を、自己のRAMコア34に
記憶すべきか否かを判断する(ステップ1407)。こ
れは、MPU36が、自己の空間ID管理テーブルを参
照することにより実現できる。ステップ1407にてイ
エス(Yes)と判断された場合には、空間ID管理テーブ
ル中の必要な値を更新し(たとえば、割り付け領域サイ
ズを、追加する要素数に応じて変更する)、次いで、R
AMセル中の所定の領域に、追加すべき要素を書き込む
(ステップ1409)。或いは、空間ID管理テーブル
の種々の値を生成して、対応するRAMセル中の領域
に、追加すべき要素が書き込まれても良い。
【0044】次いで、MPU36は、空間ID管理テー
ブル中の当該空間IDに関連する「全サイズ」の値を更
新する(ステップ1410)。ステップ1407におい
てノー(No)と判断された場合にも、空間ID管理テーブ
ル中の関連する「全サイズ」の値が更新される。配列中
の任意の位置に要素を追加する場合にも、削除要求と略
同等の処理が、各メモリモジュール14にて実行され
る。
【0045】[多空間メモリのより具体的な動作:配列
の結合および分割]次に、図15(a)に示すように、
複数の配列を結合したり、或いは、図15(b)に示す
ように、単一の配列を複数の配列に分割する場合につき
説明を加える。本実施の形態にかかるコンピュータシス
テム10においては、ある空間ID(図15(a)にお
いては空間ID「100」)を有する配列、および/ま
たは、他の空間ID(図15(b)においては空間ID
「100」)を有する配列が、単一のメモリモジュール
のRAMコアに収容されていても良いし、或いは、複数
のメモリモジュールのRAMコアに収容されていても良
い。図16は、空間ID「10」を有する配列および空
間ID「11」を有する配列、並びに、これらがメモリ
モジュール中に収容された状態を示す図である。図16
(a)においては、その空間IDが「10」であり、か
つ、各要素のサイズが10ワードである配列1501が
示されている。この配列1501中の要素は、メモリモ
ジュール14−1ないし14−xに収容されている。ま
た、図16(b)においては、その空間IDが「11」
であり、かつ、各要素のサイズが10ワードである配列
1510が示されている。この配列1510の要素も、
メモリモジュール14−1ないし14−xに収容されて
いる。
【0046】CPU12が、制御信号ライン25を介し
て、「空間ID「10」の配列と空間ID「11」の配
列とを結合する」旨のインストラクションを発すると、
各メモリモジュール14は、これを受理して、自己の保
持しているデータの空間IDに関するインストラクショ
ンであるか否かを判断する。これらの処理は、図11の
ステップ1101ないしステップ1106と略同様であ
る。次いで、自己の保持しているデータの空間IDが、
インストラクションに関連している場合には、メモリモ
ジュールのMPUは、以下の手順にしたがって、配列の
結合を実現する。上記図16に示す場合に、関連する各
メモリモジュール14は、空間ID「10」および空間
ID「11」の双方の要素を保持している場合に、空間
ID「11」に関する空間ID管理テーブルの値を更新
する。より具体的には、空間ID「10」に関する「全
サイズ」の値を参照して、その論理開始アドレスを再度
算出する(たとえば、図17の符号1701、1702
参照)。また、関連する各メモリモジュールは、空間I
D管理テーブル中の「全サイズ」の値を、二つの配列を
くみ合わせたサイズに対応するものに更新する(たとえ
ば、図17の符号1703参照)。図17は、このよう
にして得られた配列1710、および、各メモリモジュ
ール14−1〜14−xにおける空間ID管理テーブル
(たとえば、符号1711、1712参照)を示す図で
ある。
【0047】図18は、空間ID「10」を有する配列
を、空間ID「10」を有する配列と、空間ID「1
1」を有する配列に分割する一例を示す図である。図1
8(a)に示す、空間ID「10」を有する配列の分解
点を定め、分解点より前方に位置する要素を空間ID
「10」の配列とするとともに、分解点より後方に位置
する要素を空間ID「11」の配列とする。
【0048】この場合にも、CPU12が、制御信号ラ
イン25を介して、「空間ID「10」の配列を、分解
点を境にして、空間ID「10」の配列と空間ID「1
1」の配列とに分解する」旨のインストラクションを発
すると、各メモリモジュール14は、図11のステップ
1101ないしステップ1106に略対応する処理を実
行し、メモリモジュールのうち、インストラクションに
関連するもの(図18の例では、メモリモジュール14
−1〜14−x)が、所定の処理を実行する。たとえ
ば、MPU36は、分解点より後方に位置する要素を収
容している場合に、空間ID「011」に関する空間I
D管理テーブル中の種々の値を作成するとともに、空間
ID「010」に関する空間管理IDテーブルのうち、
全サイズに関する値を更新する。また、分解点より前方
に位置する要素のみを収容している場合にも、メモリモ
ジュールのMPU36は、空間ID「010」に関する
空間管理IDテーブルのうち、全サイズに関する値を更
新する。図19は、このようにして得られた配列190
1、1902、および、各メモリモジュール14−1〜
14−xにおける空間ID管理テーブル(たとえば、符
号1911、1912および1913参照)を示す図で
ある。
【0049】[多空間メモリのより具体的な動作:パラ
レルコピー]次に、多空間メモリの下で、場合によって
は組み替え可能バスを利用したパラレルコピーにつき、
簡単に説明を加える。たとえば、CPU12からの単一
のインストラクションにしたがって、図20に示すよう
に、一方のメモリモジュール群140から、他のメモリ
モジュール群141へのデータのパラレルコピーを実現
することができる。パラレルコピーには以下の態様が考
えられる。
【0050】(1)一方のメモリモジュール群140に
は単一のメモリモジュールが含まれ、他方のメモリモジ
ュール群には、複数のメモリモジュールが含まれる場
合。 (2)一方のメモリモジュール群140に、複数のメモ
リモジュールが含まれ、他方のメモリモジュール群に
も、複数のメモリモジュールが含まれる場合。
【0051】前者においては、コピー元の要素を収容し
ているメモリモジュール14のMPU36は、CPU1
2から制御信号ライン25を介して与えられたインスト
ラクション(たとえば、ある空間IDを有する配列中の
所定の要素を、空間ID8、9、10の配列としてコピ
ーせよという指令)を受理して、RAMコア34から指
定された要素を所定のバス上に出力する。その一方、コ
ピー先となるMPU36も、同一のインストラクション
の受理に応答して、バスから出力された要素を受理し
て、これをRAMコア34の所定の領域に記憶するとと
もに、自己の空間ID管理テーブルを更新する。
【0052】後者においては、複数のバスを利用して、
一方のメモリモジュール群140中のメモリモジュール
からのデータを、それぞれ、他方のメモリモジュール群
141の対応するメモリモジュールに与えることが可能
である。この場合には、CPU12は、スイッチ28お
よびスイッチ30を、所定のメモリモジュール間のデー
タの授受が可能なように制御すれば良い。
【0053】[多空間メモリのより具体的な動作:隠れ
更新など]本実施の形態にかかる多空間メモリを用い
て、添字変換により、入力された添え字を変換して、変
換済みの添え字によって、配列を指定し、さらに、配列
の要素に値を修飾することができる。ある処理が終了し
て、コミットすることにより、添字変換や値修飾が不要
となったときに、各メモリモジュールのMPUは、当該
配列に関する空間ID管理テーブルを書きかえてリマッ
ピングを実行することにより、瞬時に添字変換を解消す
ることができる。その一方、値修飾自体は、実際のRA
Mコアに記憶された要素を更新する必要があるため、時
間を要する。したがって、各メモリモジュールにおい
て、変換済フラグを設け、値修飾が反映された要素が、
実際にRAMコアに記憶した後に、当該要素に対応する
フラグを「1」にセットされる。このようにすれば、あ
るプロセスにおいて、変換フラグを参照して、これが
「1」である場合には、値修飾を経る必要がなく、その
一方、変換フラグが「0」であるバイには、値修飾を経
る必要があることを容易に知ることができる。したがっ
て、実質的にコミットを瞬時に実現することができる。
さらに、本実施の形態にかかる多空間メモリを用いれ
ば、図21に示すように、ネスト構造の値修飾について
も、変換済フラグを設け、この変換済フラグを参照する
ことにより、値修飾を経る必要の有無を知ることが可能
となる。
【0054】[多空間メモリおよび組み替え可能バスの
利用:ソート(その1)]本実施の形態においては、多
空間メモリおよび組み替え可能バスを利用することによ
り、CPU12からの単一のインストラクションに基づ
き、並列的にソート処理を実行することが可能となる。
以下、本実施の形態における並列的なソート処理につき
説明を加える。図23および図24は、本実施の形態に
かかるソート処理の流れを説明するための図である。こ
のソート処理では、大きく分けて、図23に示す処理
(存在数の確定および累計の算出)と、図24に示す処
理(レコード番号の転送)とに分けて考えることができ
る。
【0055】この実施の形態にかかるソート処理を実現
するために、本実施の形態においては、レコード番号を
格納したレコード番号配列、ある項目に関する実際の項
目値を格納した値リスト、および、レコード番号配列か
らの値(レコード番号)を入力として、対応する値リス
トの格納位置を示すポインタ値を出力するように構成さ
れた値リストへのポインタとを利用している。すなわ
ち、レコード番号から、対応する位置の値リストへのポ
インタ値が参照され、そのポインタ値にしたがって、実
際の項目値が指定されるようになっている(図25参
照)。まず、CPU12が、必要なインストラクション
を、制御信号ライン25を介して、各メモリモジュール
14に与えると、各メモリモジュールにて、図11のス
テップ1101ないしステップ1106に略同等の処理
が実行される。また、関連するメモリモジュールのう
ち、レコード番号を格納したメモリモジュールからの通
知にしたがって、CPU12は、レコード番号を格納し
た一連のメモリモジュール(第1のメモリモジュール群
2301)の出力を、あるバス(「第1のバス」と称す
る)に接続するように、スイッチ28、30を制御す
る。
【0056】次いで、値リストへのポインタ配列を格納
したメモリモジュールからの通知にしたがって、CPU
12は、上記値リストへのポインタ配列を格納した一連
のメモリモジュール(第2のメモリモジュール群230
2)の出力を、あるバス(「第2のバス」と称する)に
接続するように、スイッチ28、30を制御する。さら
に、他の一連のメモリモジュール(第3のメモリモジュ
ール群2303)においては、値リストへのポインタと
同一サイズ(同じ要素数)の「存在数配列」のための領
域が確保され、かつ、各要素が「0」に初期化される。
さらに、第3のメモリモジュール群の入力を、上記第2
のバスと接続する。
【0057】次いで、レコード番号配列の先頭から順
に、レコード番号が第1のバスに送出される。これは、
第1のメモリモジュール群2301において、各メモリ
モジュールのMPU36が、空間ID管理テーブルを参
照して、自己が第1のバスにデータを出力するタイミン
グを検出して、所定のレコード番号を送出することによ
り実現される。レコード番号は、第1のバスを介して、
第2のメモリモジュール群2302を構成するメモリモ
ジュールの各々に与えられる。各メモリモジュールのM
PU36は、自己の空間ID管理テーブルを参照して、
自己が管理する値リストへのポインタ配列に関連するレ
コード番号が入力されたことを検出し、当該入力に対応
するポインタ値を第2のバスに出力する。
【0058】ポインタ値は、第2のバスを介して、第3
のメモリーのジュール群を構成するメモリモジュールの
各々に与えられる。各メモリモジュールのMPU36
は、自己の空間ID管理テーブルを参照して、自己が管
理する値リストのポインタ配列に関連するポインタ値が
与えられたことを検出し、存在数配列において、ポイン
タ値に対応する位置の要素をインクリメントする。この
動作を繰り返すことにより、項目値が何度レコード番号
により指されているか(ポイントされているか)を知る
ことができる。上記存在数配列のための一連の処理が終
了すると、ソートされたレコード番号を格納する配列を
作成するために、一連のメモリモジュールに、一定の領
域が確保される。この一連のメモリモジュールを、第4
のメモリモジュール群2304と称する。CPU12
は、先の処理に利用した第3のメモリモジュール群の出
力と、第4のメモリモジュール群の入力とを、バス
(「第3のバス」と称する)を介して接続するように、
スイッチ28、30を制御する。
【0059】このような準備が終了した後に、ソート処
理が実行される。より具体的には、レコード番号配列の
先頭から、レコード番号が第1のバスを介して、第2の
メモリモジュール群を構成するメモリモジュールに与え
られる。第2のメモリモジュール群中の所定のメモリモ
ジュールにおいては、MPU36がレコード番号の受理
に応答して、ポインタ値を、第2のバスを介して、第3
のモジュール群に伝達する。次いで、第3のメモリモジ
ュール群のうち、所定のメモリモジュールにおいて、M
PU36が、ポインタ値に基づき、関連する存在数配列
を参照して、レコード番号の格納位置を決定する。これ
により、レコード番号およびその格納位置が、が当該メ
モリモジュールから、第3のバスに送出される。したが
って、第4のメモリモジュール群の所定のメモリモジュ
ールにおいて、MPU36が、レコード番号を、所定の
格納位置に配置する。この処理を繰り返すことにより、
第4のメモリモジュール群に、ソートされたレコード番
号の配列(図24の符号2410)を作成することがで
きる。
【0060】たとえば、図23に示す処理を、パイプラ
イン処理にすることができる。すなわち、第1のバスに
おいて、あるレコード番号「p」が伝達されている際
に、第2のバスにおいては、レコード番号「p−1」に
関するポインタ値「P(p−1)」が伝達され得る。ま
た、同様に、図24に示す処理も、パイプライン処理に
することが可能である。この場合にも、第1のバスにお
いて、あるレコード番号「p」が伝達されている際に、
第2のバスにおいては、レコード番号「p−1」に関す
るポインタ値「P(p−1)」が伝達され得る。さら
に、同じタイミングで、第3のバスにおいては、レコー
ド番号「p−1」に関する格納位置が伝達され得る。
【0061】このようなパイプライン処理の処理時間に
つき、以下のような結果が得られた。まず、図23の処
理に関して、第1のバスないし第4のバスが、それぞ
れ、128ビットであり、それぞれ、12.8GB/秒
の転送能力があると考え、また、レコード番号やポイン
タ値が、それぞれ、32ビット整数であると仮定した。
いま、レコード数が10億個の場合に、上記処理では、
40億バイトの転送が発生するが、パイプライン処理を
実行するため、4G/12.8G=0.3125秒にて
完了することが分かった。同様に、図24の処理に関し
て、同様の転送能力およびデータサイズを仮定すると、
レコード数が10億個の場合に、80億バイトの転送が
発生するが、本実施の形態によれば、パイプライン処理
の実行により、8G/12.8G=0.625秒にて処
理を完了することができる。
【0062】[多空間メモリおよび組み替え可能バスの
利用:ソート(その2)]次に、他の手法によるソート
処理につき簡単に説明を加える。このソート処理におい
ても、まず、レコード番号配列を格納したメモリモジュ
ールからなる第1のメモリモジュール群(図26の符号
2601参照)の出力と、第1のバスとが接続され、か
つ、値リストへのポインタ配列を格納したメモリモジュ
ールからなる第2のメモリモジュール群2602の入力
が、第1のバスと接続される。これにより、第1のメモ
リモジュール群2601の出力が、第1のバスを介し
て、第2のメモリモジュール群2602に伝達可能とな
る。その一方、第2のメモリーモジュール群2602
と、同一の数の空間IDを有する配列の領域が、第3の
メモリモジュール群2603に確保されるとともに、第
2のメモリモジュール群2602の出力と、第3のメモ
リモジュール群の入力とが、第2のバスを介して接続さ
れる。
【0063】次いで、第1のメモリモジュール群260
1において、あるレコード番号を収容するメモリモジュ
ールのMPU36が、当該レコード番号を、第1のバス
に送出すると、第2のメモリモジュー群2602の所定
のメモリモジュールにおいて、MPU36がこの受理に
応答して、対応するポインタ値から、空間IDを算出
し、レコード番号および空間IDを、第2のバスに送出
する。
【0064】第3のメモリモジュール群において、当該
空間IDおよびレコード番号に基づき、所定のメモリモ
ジュール36が起動し、当該空間IDを有する配列の末
尾に、与えられたレコード番号を配置する。このような
処理を全てのレコード番号について実行した後に、第3
のメモリモジュール群において、各メモリモジュールの
MPU36は、自己の有する配列を結合するための処理
を実行する。このような手法によっても、高速なソート
処理を実現することができる。
【0065】[多空間メモリおよび組み替え可能バスの
利用:検索(その1)]また、本実施の形態において
は、多空間メモリおよび組み替え可能バスを利用するこ
とにより、CPU12からの単一のインストラクション
に基づき、並列的に検索処理を実行することができる。
図27および図28は、本実施の形態にかかる検索処理
の流れを説明するための図である。この検索処理のため
に、レコード番号配列、値リストへのポインタ配列、値
リストおよび後述する可否フラグ配列などが利用され
る。したがって、この例でも、図25のように、レコー
ド番号、ポインタ値、項目値の順に、値が参照されるよ
うになっている。
【0066】まず、CPU12が、必要なインストラク
ションを、制御信号ライン25を介して、各メモリモジ
ュール14に与えると、各メモリモジュールにて、図1
1のステップ1101ないしステップ1106に略同等
の処理が実行される。また、関連するメモリモジュール
のうち、値リストを格納したメモリモジュールからの通
知にしたがって、CPU12は、値リストを格納した一
連のメモリモジュール(第1のメモリモジュール群27
01)の出力を、あるバス(「第1のバス」と称する)
に接続するように、スイッチ28、30を制御する。さ
らに、そのよう素数が値リストのものと同じである可否
フラグ配列のための領域が、一連のメモリモジュール
(第2のメモリモジュール群2702)に確保され、当
該第2のメモリモジュール2702に属する各メモリモ
ジュールのMPU36が、当該領域の要素を「0」に初
期化する。
【0067】次いで、第2のメモリモジュール群270
2の入力が、第1のバスに接続される。次いで、CPU
12から与えられた検索条件にしたがって、第2のメモ
リモジュール群の各メモリモジュールにおいて、MPU
36が、値リスト中の検索条件に合致する項目値の位置
を参照して、可否フラグ配列の対応する値を「1」にセ
ットする。たとえば、検索条件が範囲であれば、二分割
法などを用いれば良い。また、その他の条件であれば、
要素ごとにその可否を判断すれば良い。このような処理
が終了した後に、検索が実行される。まず、レコード番
号配列を格納した一連のメモリモジュール(第3のメモ
リモジュール群2703)の出力を、第1のバスに接続
するとともに、値リストへのポインタ配列を格納した一
連のメモリモジュール(第4のメモリモジュール群27
04)の入力を、第1のバスに接続するよう、CPU1
2は、スイッチ28、30を制御する。また、第4のメ
モリモジュール群2704の出力を、第2のメモリモジ
ュール群2702の入力とを、第2のバスと接続するよ
うに、CPU12は、スイッチ28、30を制御する。
【0068】さらに、レコード番号の要素数と同じ要素
数を有する配列のための領域が、一連のメモリモジュー
ル(第5のメモリモジュール2705)に確保され、C
PU12は、その入力と、第2のメモリモジュール群2
702の出力とが、第3のバスを介して接続されるよう
に、スイッチ28、30を制御する。このような処理の
後に、レコード番号配列の先頭から順に、レコード番号
が第1のバスに送出される。これは、第3のメモリモジ
ュール群2703において、各メモリモジュールのMP
U36が、空間ID管理テーブルを参照して、自己が第
1のバスにデータを出力するタイミングを検出して、所
定のレコード番号を送出することにより実現される。
【0069】レコード番号は、第1のバスを介して、第
4のメモリモジュール群2704を構成するメモリモジ
ュールの各々に与えられる。各メモリモジュールのMP
U36は、自己の空間ID管理テーブルを参照して、自
己が管理する値リストへのポインタ配列に関連するレコ
ード番号が入力されたことを検出し、受理したレコード
番号および当該入力に対応するポインタ値を第2のバス
に出力する。ポインタ値は、レコード番号とともに、第
2のバスを介して、第3のメモリーのジュール群を構成
するメモリモジュールの各々に与えられる。各メモリモ
ジュールのMPU36は、自己の空間ID管理テーブル
を参照して、自己が管理する可否フラグ配列の位置と同
じ位置を示すポインタ値が与えられたことを検出し、当
該ポインタ値が示す可否フラグが、「0」であるか
「1」であるかを判断する。次いで、可否フラグが
「1」の場合には、関連するレコード番号が、第3のバ
スを介して、第5のメモリモジュール群2705に与え
られる。
【0070】第5のメモリモジュール群2705におい
ては、各メモリモジュールのMPU36は、自己の空間
ID管理テーブルを参照して、自己が管理するヒット情
報格納用配列の位置と同じ位置を示すレコード番号が与
えられたことを検出し、その位置の要素を「1」にす
る。このような処理を所定のレコード番号に関して繰り
返し、ヒット情報格納用配列にて「1」である要素を取
り出すことにより、検索が完了する。
【0071】ソート処理と同様に、上記検索処理でも、
図27を参照して説明した処理、および、図28を参照
して説明した処理を、それぞれ、パイプライン処理にて
実現することができる。検索処理におけるパイプライン
処理の処理時間につき、以下のような結果が得られた。
バスの転送能力、および、各要素のビット数は、ソート
処理と同様であると考えた。レコード数が10億個の場
合に、上記検索処理では、80億バイトの転送が発生す
るが、パイプライン処理を実行するため、8G/12.
8G=0.624秒にて完了することが分かった。
【0072】さらに、本検索処理を用いれば、AND、
OR或いはNOTなどを組み合わせた複数項目の検索を
実現することもできる。より具体的には、各項目につ
き、ヒット情報格納用配列を作成し、これら配列の要素
間での論理演算を行えば良い。たとえば、二つの項目の
AND或いはOR検索では、ヒット情報格納用配列の要
素の転送(10億バイト)が行われる。したがって、そ
の処理時間は、(10G/8)/12.8G=0.09
8秒だけ必要であることが理解できる。
【0073】なお、さらに高速化を図るために、AND
検索の場合には、二つの検索処理を実行するメモリモジ
ュール群を縦列に接続すれば良い。また、第4のメモリ
モジュール群と第2のメモリモジュール群を、同一の複
数のメモリモジュールにて構成できるように、配列を配
置すれば、ボトルネックを解消することができ、これに
より、略2倍の処理速度を得ることが可能となる。
【0074】本発明は、以上の実施の形態に限定される
ことなく、特許請求の範囲に記載された発明の範囲内
で、種々の変更が可能であり、それらも本発明の範囲内
に包含されるものであることは言うまでもない。たとえ
ば、前記実施の形態においては、本発明を、コンピュー
タシステムに適用しているがこれに限定されるものでは
なく、パーソナルコンピュータなどに接続可能なコンピ
ュータボードに適用することもできる。この場合には、
図1において、CPU12、メモリユニット14、バス
24等がボード上に搭載され、これが、本発明における
情報処理ユニットを構成する。
【0075】また、CPU12とメモリモジュール14
との間、および/または、メモリモジュール14間を接
続するバスの組の数は、前記実施の形態に限定されるも
のではなく、コンピュータシステムを搭載する回路基板
の大きさ、各バスのビット数などを考慮して適宜決定す
ることができる。また、前記実施の形態においては、メ
モリモジュールの入出力とバスとの接続を規定するため
のスイッチ28と、CPUとメモリモジュールとの間、
メモリモジュール間で、バスの切断することができるス
イッチ30とを設けている。スイッチ30を設けること
により、たとえば、あるバス(図1のバス24−4参
照)を、CPUモジュール12とメモリモジュール14
−1とのデータ授受のために利用するとともに、同時
に、メモリモジュール14−2とメモリモジュール14
−3との間のデータ授受のために利用することができる
(この場合に、スイッチ30−5をオフにすれば良
い)。したがって、より有効にバスを利用することが可
能となっている。しかしながら、バスの組を数を十分に
大きくできる場合、或いは、メモリモジュールの数が比
較的少ない場合には、スイッチ30を必ずしも設けなく
て良い。
【0076】また、本明細書において、制御信号ライン
25を介して、CPU12からのインストラクションが
与えられることを記載したが、制御信号ライン25を介
して、インストラクションのほか、クロックなど、各メ
モリモジュールが同期して作動するための種々の制御信
号が与えられ、かつ、各メモリモジュールからCPU1
2への所定の信号(たとえば、エラー信号や、データ受
理を示す信号)が与えられていることは言うまでもな
い。さらに、本明細書において、一つの手段の機能が、
二つ以上の物理的手段により実現されても、若しくは、
二つ以上の手段の機能が、一つの物理的手段により実現
されてもよい。
【0077】
【発明の効果】本発明によれば、分散メモリー型におい
て、単一命令により種々のメモリーに記憶された配列中
の要素を入出力し、著しく高速な並列処理を実現可能な
コンピュータアーキテクチャを提供することが可能とな
る。
【図面の簡単な説明】
【図1】 図1は、本発明の実施の形態にかかるコンピ
ュータシステムの構成を示すブロックダイヤグラムであ
る。
【図2】 図2は、本実施の形態にかかるメモリモジュ
ールの概略を示すブロックダイヤグラムである。
【図3】 図3は、単一メモリ空間における一連のデー
タの配置を示す図である。
【図4】 図4は、本発明に係る多空間メモリにおける
一連のデータの配置を示す図である。
【図5】 図5は、本実施の形態におけるアドレスリマ
ッピングを説明するための図である。
【図6】 図6は、本実施の形態における値修飾を説明
するための図である。
【図7】 図7は、本実施の形態にかかるメモリモジュ
ール間のパイプライン処理の概略を示す図である。
【図8】 図8は、本実施の形態にかかる多空間メモリ
の下での、メモリモジュール14の構造を説明するため
の図である。
【図9】 図9は、多空間メモリの下での、メモリモジ
ュール14の構造を説明するための図である。
【図10】 図10は、多空間メモリの下での、メモリ
モジュール14の構造を説明するための図である。
【図11】 図11は、ある空間ID中の所定の範囲の
要素を削除するというインストラクションを受理した各
メモリモジュールにて実行される処理を示すフローチャ
ートである。
【図12】 図12は、削除される要素と、メモリモジ
ュールにて保持している要素の配置との関係を示す図で
ある。
【図13】 図13は、ある空間ID中の所定の範囲の
要素を削除するというインストラクションを受理した各
メモリモジュールにて実行される処理を示すフローチャ
ートである。
【図14】 図14は、ある空間IDの配列の末尾に要
素を追加するというインストラクションを受理した各メ
モリモジュールにて実行される処理を示すフローチャー
トである。
【図15】 図15は、本実施の形態にかかる配列の結
合および配列の分割を説明するための図である。
【図16】 図16は、本実施の形態において、空間I
D「10」を有する配列および空間ID「11」を有す
る配列、並びに、これらがメモリモジュール中に収容さ
れた状態を示す図である
【図17】 図17は、本実施の形態において、配列の
結合により得られた配列、および、各メモリモジュール
における空間ID管理テーブルを示す図である。
【図18】 図18は、本実施の形態において、空間I
D「10」を有する配列を、空間ID「10」を有する
配列と、空間ID「11」を有する配列に分割する一例
を示す図である。
【図19】 図19は、本実施の形態において、配列の
分割により得られた配列、および、各メモリモジュール
における空間ID管理テーブルを示す図である。
【図20】 図20は、本実施の形態かかる、一方のメ
モリモジュール群から、他のメモリモジュール群へのデ
ータのパラレルコピーを示す図である。
【図21】 図21は、本実施の形態にかかる変換済み
フラグの利用を説明するための図である。
【図22】 図22は、本実施の形態にかかる変換済み
フラグの利用を説明するための図である。
【図23】 図23は、本実施の形態にかかるソート処
理の流れを説明するための図である。
【図24】 図24は、本実施の形態にかかるソート処
理の流れを説明するための図である。
【図25】 図25は、本実施の形態において、レコー
ド番号から項目値が特定されるまでのデータの参照手順
を示す図である。
【図26】 図26は、本実施の形態にかかる他のソー
ト処理の流れを説明するための図である。
【図27】 図27は、本実施の形態にかかる検索処理
の流れを説明するための図である。
【図28】 図28は、本実施の形態にかかる検索処理
の流れを説明するための図である。
【符号の説明】
10 コンピュータシステム 12 CPUモジュール 14 メモリモジュール 16 固定記憶装置 18 入力装置 20 表示装置 22 レガシーメモリ 24 バス 25 制御信号ライン 26 バス 28、30 スイッチ 32 クロックバッファ 34 RAMコア 36 MPU 38 I/O
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 13/16 510 G06F 13/16 510D 15/16 610 15/16 610A

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 CPUモジュールと、それぞれがMPU
    およびRAMコアとを有する複数のメモリモジュール
    と、前記CPUとメモリモジュールとの接続、および/
    または、メモリモジュール間の接続をなす複数組のバス
    とを備え、CPUから各メモリモジュールのMPUに与
    えられるインストラクションにより、各メモリモジュー
    ルのMPUが作動するように構成された並列コンピュー
    タのアーキテクチャであって、 所定の関連を有する一連のデータに、空間IDが付与さ
    れ、各メモリモジュールのMPUが、少なくとも、当該
    空間ID、自己が管理する一連のデータの部分に関する
    論理アドレス、当該部分のサイズ、および、一連のデー
    タのサイズを含むテーブルを管理し、かつ、 各メモリモジュールのMPUが、受理したインストラク
    ションに、自己が管理する一連のデータの部分が関与し
    ているか否かを判断して、RAMコアに記憶されたデー
    タを読み出してバスに送出し、バスを介して与えられた
    データをRAMコアに書き込み、データに必要な処理を
    施し、および/または、前記テーブルを更新するように
    構成されたことを特徴とする並列コンピュータのアーキ
    テクチャ。
  2. 【請求項2】 前記MPUが、CPUから与えられた空
    間IDを、自己が管理する1以上の一連のデータの空間
    IDと比較する空間コンパレータと、 CPUから与えられた論理アドレスと、自己が管理する
    データの部分の論理アドレスとを比較するアドレスコン
    パレータと、 当該論理アドレスに基づき、自己のRAMセル上の物理
    アドレスを算出するアドレスカリキュレータとを有する
    ことを特徴とする請求項1に記載のコンピュータアーキ
    テクチャ。
  3. 【請求項3】 前記メモリモジュールの各々が、CPU
    モジュールおよび他のメモリモジュールとの同期をなす
    ための同期信号を受け入れ、かつ、 前記複数組のバスの何れかとの接続が可能な入力と、前
    記複数組のバスの他の何れかとの接続が可能な出力を備
    え、少なくとも、前記同期信号にしたがって、前記何れ
    かのバスと入力との接続により、データを入力しつつ、
    前記他の何れかのバスと出力との接続により、データを
    出力できるように構成されたことを特徴とする請求項1
    または2に記載のコンピュータアーキテクチャ。
  4. 【請求項4】 前記複数組のバスの各々に、前記CPU
    モジュールと何れかのメモリモジュールの入力または出
    力との間、および/または、他の何れかのメモリモジュ
    ールの入力または出力と、さらに他のメモリモジュール
    の出力または入力との間の接続を規定するためのスイッ
    チが設けられ、 前記スイッチの切換により、複数組のバスの各々におい
    て、並列的にデータの授受が実現されることを特徴とす
    る請求項3に記載のコンピュータアーキテクチャ。
  5. 【請求項5】 前記複数組のバスのうちの何れかである
    第1のバスに、何れかのメモリモジュールの出力と、他
    の何れかのメモリモジュールの入力とが接続され、か
    つ、前記複数組のバスのうち、他の何れかである第2の
    バスに、当該他の何れかのメモリモジュールの出力と、
    さらに他の何れかのメモリモジュールの入力とが接続さ
    れ、第1のバスにおけるデータの授受と、第2のバスに
    おけるデータの授受が並列的に進行することを特徴とす
    る請求項4に記載のコンピュータアーキテクチャ。
  6. 【請求項6】 前記バスとメモリモジュールとの間の接
    続を繰り返して、多段のメモリモジュール間の接続を形
    成することを特徴とする請求項5に記載のコンピュータ
    アーキテクチャ。
  7. 【請求項7】 前記MPUが、一連のデータ中の特定の
    要素を削除し、前記一連のデータ中に特定の要素を挿入
    し、或いは、一連のデータの末尾に特定の要素を追加す
    ることを示すインストラクションを受理すると、テーブ
    ルを参照して、自己の管理するデータの領域と、削除、
    挿入或いは追加にかかる要素の位置とを比較して、当該
    比較結果に応じて、前記テーブルの内容を更新すること
    を特徴とする請求項1ないし6の何れか一項に記載のコ
    ンピュータアーキテクチャ。
  8. 【請求項8】 前記MPUが、与えられたインストラク
    ションに応答して、一連のデータ中の要素を特定するた
    めの添え字を変換し、および/または、要素に特定の修
    飾を与える値変換を実行することを特徴とする請求項1
    ないし7の何れか一項に記載のコンピュータアーキテク
    チャ。
  9. 【請求項9】 CPUモジュールと、それぞれがMPU
    およびRAMコアとを有する複数のメモリモジュール
    と、前記CPUとメモリモジュールとの接続、および/
    または、メモリモジュール間の接続をなす複数組のバス
    とを備え、CPUから各メモリモジュールのMPUに与
    えられるインストラクションにより、各メモリモジュー
    ルのMPUが作動するように構成された情報処理ユニッ
    トであって、 所定の関連を有する一連のデータに、空間IDが付与さ
    れ、各メモリモジュールのMPUが、少なくとも、当該
    空間ID、自己が管理する一連のデータの部分に関する
    論理アドレス、当該部分のサイズ、および、一連のデー
    タのサイズを含むテーブルを管理し、かつ、 各メモリモジュールのMPUが、受理したインストラク
    ションに、自己が管理する一連のデータの部分が関与し
    ているか否かを判断して、RAMコアに記憶されたデー
    タを読み出してバスに送出し、バスを介して与えられた
    データをRAMコアに書き込み、データに必要な処理を
    施し、および/または、前記テーブルを更新するように
    構成されたことを特徴とする情報処理ユニット。
  10. 【請求項10】 前記CPUモジュールが、レガシーメ
    モリ、入力装置および表示装置を相互接続する他のバス
    と連結可能に構成されたことを特徴とする請求項9に記
    載の情報処理ユニット。
  11. 【請求項11】 請求項9に記載の情報処理ユニット
    と、CPUモジュールと他のバスを介して連結された1
    以上のレガシーメモリを含む記憶装置、入力装置および
    表示装置とを有することを特徴とするコンピュータシス
    テム。
JP26379399A 1999-09-17 1999-09-17 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット Expired - Fee Related JP4317296B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP26379399A JP4317296B2 (ja) 1999-09-17 1999-09-17 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット
CA002385079A CA2385079C (en) 1999-09-17 2000-09-01 Parallel computer architecture, and information processing unit using the architecture
PCT/JP2000/005947 WO2001022229A1 (fr) 1999-09-17 2000-09-01 Architecture informatique parallele et unite de traitement de l'information au moyen de ladite architecture
DE60034065T DE60034065D1 (de) 1999-09-17 2000-09-01 Informationsverarbeitungseinheit
US10/088,028 US7185179B1 (en) 1999-09-17 2000-09-01 Architecture of a parallel computer and an information processing unit using the same
KR1020027003544A KR100719872B1 (ko) 1999-09-17 2000-09-01 병렬 컴퓨터 및 이를 이용한 정보처리유닛
AT00956868T ATE357694T1 (de) 1999-09-17 2000-09-01 Informationsverarbeitungseinheit
EP00956868A EP1244020B1 (en) 1999-09-17 2000-09-01 Information processing unit
CNB008143676A CN100401270C (zh) 1999-09-17 2000-09-01 并行计算机体系结构,使用这种体系结构的信息处理单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26379399A JP4317296B2 (ja) 1999-09-17 1999-09-17 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット

Publications (3)

Publication Number Publication Date
JP2001092796A true JP2001092796A (ja) 2001-04-06
JP2001092796A5 JP2001092796A5 (ja) 2007-04-26
JP4317296B2 JP4317296B2 (ja) 2009-08-19

Family

ID=17394340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26379399A Expired - Fee Related JP4317296B2 (ja) 1999-09-17 1999-09-17 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット

Country Status (9)

Country Link
US (1) US7185179B1 (ja)
EP (1) EP1244020B1 (ja)
JP (1) JP4317296B2 (ja)
KR (1) KR100719872B1 (ja)
CN (1) CN100401270C (ja)
AT (1) ATE357694T1 (ja)
CA (1) CA2385079C (ja)
DE (1) DE60034065D1 (ja)
WO (1) WO2001022229A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004092948A1 (ja) * 2003-04-16 2004-10-28 Turbo Data Lab Inc 情報処理システムおよび情報処理方法
WO2005041067A1 (ja) * 2003-10-27 2005-05-06 Shinji Furusho 分散メモリ型情報処理システム
WO2005064487A1 (ja) * 2003-12-25 2005-07-14 Shinji Furusho 分散メモリ型情報処理システム
WO2005073880A1 (ja) * 2004-01-29 2005-08-11 Shinji Furusho 分散メモリ型情報処理システム
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JPWO2005041066A1 (ja) * 2003-10-24 2007-04-26 株式会社ターボデータラボラトリー 情報処理システムおよび情報処理方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1785862A3 (en) * 2000-02-29 2007-08-15 Fujitsu Limited Method and apparatus for pipeline processing
US7352766B2 (en) * 2002-03-12 2008-04-01 Alcatel Lucent High-speed memory having a modular structure
JP3826859B2 (ja) * 2002-08-19 2006-09-27 ソニー株式会社 情報処理方法とその方法を実現するプログラム及び記録媒体
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
CN101495973A (zh) * 2006-06-09 2009-07-29 迅龙国际集团有限公司 N^n数据管理、访问、存储、传输、交换和检索系统(数据集中管理)
US8917165B2 (en) * 2007-03-08 2014-12-23 The Mitre Corporation RFID tag detection and re-personalization
US9665483B2 (en) * 2013-09-30 2017-05-30 Alcatel Lucent Method and apparatus for bit-interleaving
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10275392B2 (en) * 2015-04-08 2019-04-30 National University Corporation NARA Institute of Science and Technology Data processing device
US20210389151A1 (en) * 2020-06-13 2021-12-16 Megan Marie Braley Micromobility navigation system with integrated responsiveness to user demographic data
CN115917515A (zh) * 2020-08-31 2023-04-04 麦姆瑞克斯公司 存储器处理单元核心架构

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2742035A1 (de) * 1977-09-19 1979-03-29 Siemens Ag Rechnersystem
JPH0658646B2 (ja) * 1982-12-30 1994-08-03 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション デ−タ持続性が制御される仮想記憶アドレス変換機構
GB2168182A (en) * 1984-12-05 1986-06-11 Conic Corp Data-driven processor
JPS6222142A (ja) * 1985-07-19 1987-01-30 Sekisui Chem Co Ltd 記憶装置
JP2967928B2 (ja) * 1987-06-19 1999-10-25 日本電信電話株式会社 並列プロセツサ
EP0408810B1 (en) * 1989-07-20 1996-03-20 Kabushiki Kaisha Toshiba Multi processor computer system
US5490260A (en) * 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
JPH0667846A (ja) * 1992-08-18 1994-03-11 Hitachi Ltd 半導体記憶装置
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JP3489157B2 (ja) * 1993-11-26 2004-01-19 株式会社日立製作所 分散共有メモリシステムおよび計算機
JP3604176B2 (ja) * 1994-09-14 2004-12-22 株式会社東芝 仮想空間管理方法及び分散処理システム
JPH10143489A (ja) * 1996-11-11 1998-05-29 Hitachi Ltd 情報処理システム
US6226738B1 (en) * 1997-08-01 2001-05-01 Micron Technology, Inc. Split embedded DRAM processor
JP3385353B2 (ja) 1999-01-25 2003-03-10 独立行政法人産業技術総合研究所 官能基を有する環状ケイ素化合物

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JP4511464B2 (ja) * 2003-04-16 2010-07-28 株式会社ターボデータラボラトリー 情報処理システムおよび情報処理方法
JPWO2004092948A1 (ja) * 2003-04-16 2006-07-06 株式会社ターボデータラボラトリー 情報処理システムおよび情報処理方法
WO2004092948A1 (ja) * 2003-04-16 2004-10-28 Turbo Data Lab Inc 情報処理システムおよび情報処理方法
JPWO2005041066A1 (ja) * 2003-10-24 2007-04-26 株式会社ターボデータラボラトリー 情報処理システムおよび情報処理方法
KR101030249B1 (ko) 2003-10-24 2011-04-22 가부시키가이샤 터보 데이터 라보라토리 분산 메모리형 정보 처리 시스템
JP4620593B2 (ja) * 2003-10-24 2011-01-26 株式会社ターボデータラボラトリー 情報処理システムおよび情報処理方法
CN100452032C (zh) * 2003-10-27 2009-01-14 特博数据实验室公司 分布式存储器类型的信息处理系统
JPWO2005041067A1 (ja) * 2003-10-27 2007-04-26 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム
JP4511469B2 (ja) * 2003-10-27 2010-07-28 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム
WO2005041067A1 (ja) * 2003-10-27 2005-05-06 Shinji Furusho 分散メモリ型情報処理システム
US7849289B2 (en) 2003-10-27 2010-12-07 Turbo Data Laboratories, Inc. Distributed memory type information processing system
JP4772506B2 (ja) * 2003-12-25 2011-09-14 株式会社ターボデータラボラトリー 情報処理方法、情報処理システムおよびプログラム
WO2005064487A1 (ja) * 2003-12-25 2005-07-14 Shinji Furusho 分散メモリ型情報処理システム
JPWO2005073880A1 (ja) * 2004-01-29 2008-02-21 株式会社ターボデータラボラトリー 分散メモリ型情報処理システム
JP4559971B2 (ja) * 2004-01-29 2010-10-13 株式会社ターボデータラボラトリー 分散メモリ型情報処理システム
WO2005073880A1 (ja) * 2004-01-29 2005-08-11 Shinji Furusho 分散メモリ型情報処理システム
US8200913B2 (en) 2004-01-29 2012-06-12 Turbo Data Laboratories, Inc. Distributed memory type information processing system

Also Published As

Publication number Publication date
EP1244020A1 (en) 2002-09-25
CA2385079A1 (en) 2001-03-29
CN1379879A (zh) 2002-11-13
ATE357694T1 (de) 2007-04-15
US7185179B1 (en) 2007-02-27
KR100719872B1 (ko) 2007-05-18
KR20020064285A (ko) 2002-08-07
CA2385079C (en) 2009-07-21
WO2001022229A1 (fr) 2001-03-29
EP1244020A4 (en) 2003-01-15
CN100401270C (zh) 2008-07-09
JP4317296B2 (ja) 2009-08-19
DE60034065D1 (de) 2007-05-03
EP1244020B1 (en) 2007-03-21

Similar Documents

Publication Publication Date Title
JP4317296B2 (ja) 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット
JP3461704B2 (ja) 条件コードを使用する命令処理システムおよびコンピュータ
US4968977A (en) Modular crossbar interconnection metwork for data transactions between system units in a multi-processor system
JP2003532224A (ja) マルチプロセッサコンピュータシステムのための高度メモリアルゴリズミックプロセッサアーキテクチャ
CA2050166A1 (en) Parallel associative processor system
GB2122781A (en) Multimicroprocessor systems
EP1233332A1 (en) Information processing system
JPH05205005A (ja) ロジック・シミュレーション・マシン用ホスト・インタフェース
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JPH0668053A (ja) 並列計算機
US20220147328A1 (en) Compile time logic for inserting a buffer between a producer operation unit and a consumer operation unit in a dataflow graph
US20220309029A1 (en) Tensor Partitioning and Partition Access Order
US5710932A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US11366783B1 (en) Multi-headed multi-buffer for buffering data for processing
JPH0792790B2 (ja) ベクトル並列計算機
US5465369A (en) Network structure for parallel software processing
WO2005041066A1 (ja) 分散メモリ型情報処理システム
EP0326164B1 (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JP4559971B2 (ja) 分散メモリ型情報処理システム
WO2004092948A1 (ja) 情報処理システムおよび情報処理方法
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JPS63503099A (ja) 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア
Dally et al. The J-machine: a fine-grain parallel computer
Kerckhoffs Mini-Supercomputers: New Perspectives in Scientific Computation and Simulation
JPH05210645A (ja) 並列処理システムとそのためのコンパイル方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060906

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090519

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090522

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150529

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees