JP2002108837A - 計算機システムとその計算制御方法 - Google Patents
計算機システムとその計算制御方法Info
- Publication number
- JP2002108837A JP2002108837A JP2000299683A JP2000299683A JP2002108837A JP 2002108837 A JP2002108837 A JP 2002108837A JP 2000299683 A JP2000299683 A JP 2000299683A JP 2000299683 A JP2000299683 A JP 2000299683A JP 2002108837 A JP2002108837 A JP 2002108837A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- computer system
- calculation
- processor
- 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.)
- Withdrawn
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims description 76
- 239000013598 vector Substances 0.000 claims abstract description 77
- 239000011159 matrix material Substances 0.000 description 32
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000329 molecular dynamics simulation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Abstract
データの分類処理等の各種の処理を、容易にベクトル化
して高速に処理することのできる計算機システムを提供
する。 【解決手段】 複数のメモリバンク40を備える計算機
システムにおいて、計算処理を制御するベクトルプロセ
ッサ11からの制御を受けて指定された演算をベクトル
プロセッサ11から独立に処理する付帯演算機30を各
メモリバンク40毎に備え、各付帯演算機30は、対応
するメモリバンク40内に記録されたベクトルプロセッ
サ11により指定されたアドレスのデータを読出し、読
み出したデータに対してベクトルプロセッサ11により
指定された演算を実行し、演算結果のデータを指定され
たアドレスに書き込むことにより、当該アドレスのデー
タの更新処理を行うことを特徴とする。
Description
クを備える計算機システムに関し、特に、ベトル計算機
や並列計算機等の高速に演算を処理する計算機システム
に関する。
するために、べクトル演算処理や、並列演算処理等の技
術が用いられている。
いては、行列計算やFortranのDOループのよう
に、各データに対し同一の手順の演算を繰返し行う処理
が多くの時間を占めている。べクトル演算処理は、こう
した繰返し行う処理を高速化するために、各行列やデー
タをそれぞれにベクトルとしてまとめて1命令で行列の
演算を実行するものであり、行列の各要素毎に1つずつ
演算を行う必要がないために高速に処理が可能となる。
この高速の処理は、各要素に対する命令を、“命令の呼
出”、“命令の解読”、“アドレス計算”等々の部分に
分けパイプライン制御により同時に並列に実行すること
により行われる。
ンピュータを用いて、それぞれに処理を振り分けて並行
して実行することにより、処理を高速化するものであ
る。
り、個々のプロセッサに振り分けられた各データは、途
中で各データそれぞれ個別の処理を行う場合も多い。こ
れには、FortranのDOループ中にIF文等の条
件付演算を含む場合等がある。
の要素を間接参照でメモリからロードして、所定の演算
を実行し、その演算結果を同要素が格納されていた元の
アドレスにストアするという操作が現れることがあり、
これは、有限要素法や分子動力学法の科学技術計算等の
多くの場合に現れる。
そのベクトル化(又、並列化)された範囲内においてデ
ータの書込先が重複しない等の保障が必要であり、その
保障のない強制的なベクトル化(又、並列化)には、不
正な演算結果が出力される危険がある。
難な処理の例には、例えば、データ集合内の各データを
順次、定められたグループに分類する処理がある。この
分類処理のループにおいては、各グループ毎に設けたカ
ウンタ値を当該グループに各データが分類される度に更
新するのであり、これの強制的なベクトル化(又、並列
化)は、カウンタ値の更新の一貫性が破壊される危険が
ある。
(又、並列化)においては、プログラム作成者が、デー
タの格納方法を工夫したり計算順序を変更することによ
り、ベクトル化(又、並列化)の各単位において更新デ
ータの格納先の重複や、カウンタ更新の重複等を回避す
る必要があった。
計算機システムでは、以下に述べるような問題点があっ
た。
ていた、更新データの格納先の重複やカウンタ更新の重
複等を回避した特別のプログラムを作成することは、プ
ログラマに大きな負担となっていた。
する必要性は、過去より蓄積されたプログラムを、ベク
トル計算機や共有メモリ並列計算機等に移植する際の大
きな障害となる。
業自身が並列化又はベクトル化できないので、アプリケ
ーションによっては高速化が望めないという問題もあ
る。
決し、例えば前述のメモリ内のデータの更新処理や、カ
ウンタの更新を伴うデータの分類処理等の、従来ではベ
クトル化(又、並列化)が困難であった各種の処理を、
容易にベクトル化(又、並列化)して高速に処理するこ
とのできる計算機システムと、その計算制御方法を提供
することである。
め、本発明の計算機システムは、複数のメモリバンクを
備える計算機システムにおいて、計算処理を制御するプ
ロセッサ部からの制御を受けて、指定された演算を前記
プロセッサ部から独立に処理する付帯演算機を、各前記
メモリバンク毎に備え、各前記付帯演算機は、対応する
前記メモリバンク内に記録されたデータに対する演算
や、読出し、書込みを、前記プロセッサ部から送信され
る命令やデータに基づいて処理することを特徴とする。
記付帯演算機により、対応する前記メモリバンク内に記
録された、前記プロセッサ部により指定されたアドレス
のデータを読出し、前記読み出したデータに対して、前
記プロセッサ部により指定された演算を実行し、演算結
果のデータを、前記指定されたアドレスに書き込むこと
により、当該アドレスのデータの更新処理を行うことを
特徴とする。
記プロセッサ部により指定されたアドレスのデータを、
前記プロセッサ部により送信されたデータを用いて、前
記プロセッサ部により指定された四則演算を行い、前記
指定されたアドレスのデータを演算結果のデータに更新
する手段を備えることを特徴とする。
記プロセッサ部により指定されたアドレスのデータに対
して、予め設定された値を加算された値に更新する手
段、及び予め設定された値を減算された値に更新する手
段を備えることを特徴とする。
記プロセッサ部において、ベクトル演算による計算処理
を実行することを特徴とする。
記プロセッサ部において、複数のプロセッサを備えて、
処理対象の計算を各前記プロセッサに割当てて並列処理
することを特徴とする。
のメモリバンクを備える計算機システムの計算制御方法
において、計算処理を制御するプロセッサ部が、各前記
メモリバンク毎に備えられた、前記プロセッサ部から独
立した付帯演算機に対し、演算の実行を指示するステッ
プと、前記付帯演算機が、対応する前記メモリバンク内
に記録された、前記プロセッサ部により指定されたアド
レスのデータを読出すステップと、前記読み出したデー
タに対して、前記プロセッサ部により指定された演算を
実行するステップと、演算結果のデータを、前記指定さ
れたアドレスに書き込むステップを備えることにより、
当該アドレスのデータの更新処理を行うことを特徴とす
る。
指定されたアドレスのデータを、前記プロセッサ部から
送信されたデータを用いて、前記プロセッサ部により指
定された四則演算を行い、前記指定されたアドレスのデ
ータを演算結果のデータに更新するステップを備えるこ
とを特徴とする。
指定されたアドレスのデータに対して、予め設定された
値を加算された値に更新するステップ、及び予め設定さ
れた値を減算された値に更新するステップを備えること
を特徴とする。
クトル演算による計算処理を実行することを特徴とす
る。
理対象の計算を、複数のプロセッサに割当てて並列処理
することを特徴とする。
て図面を参照して詳細に説明する。
バンクのそれぞれに独立に並列に動作する付帯演算機を
備えて、各メモリバンク毎に局所的な排他処理を行い、
付帯演算機によりメモリバンク内のデータを適切に更新
する。これにより、従来ではベクトル化(又、並列化)
が困難であった各種の処理に対しても、特別のプログラ
ムを必要とすることなく、正確で高速な演算処理を実現
させるのである。
は、ベクトル計算機や(メモリを共有する)並列計算機
等に適応することができる。
ル計算機システムに適応した実施の形態の一実施例の構
成を示すブロック図であり、図2は、本発明の計算機シ
ステムを並列計算機システムに適応した実施の形態の一
実施例の構成を示すブロック図である。いずれの形態に
おいても、複数の各メモリバンク40にそれぞれ付帯演
算機30を接続している。
態においては、ベクトル演算処理を行うベクトルプロセ
ッサ11を備え、又、図2の並列計算機システムの形態
においては、それぞれが並行して演算処理を実行する複
数のプロセッサ12を備えている。また、本発明の計算
機システムの、これらプロセッサを備える部分をプロセ
ッサ部と呼ぶものとする。
40との間には、各メモリバンク40へのアクセスや、
各付帯演算機30への命令やデータの送受を制御するメ
モリ制御部20を備えている。
ク40内に記録されたデータに対して、例えば、アクセ
ス権(排他制御)の設定や解放、データの読出しや書
込、データの演算等を行う。また、データの演算におい
ては、メモリバンク40から読み出したデータと、プロ
セッサの側から送られたデータとを用いて四則演算等の
各種定められた演算を実行する機能をも備える。そし
て、このメモリバンク40から読み出したデータのアド
レスに、その演算結果のデータを書き込むことにより、
メモリバンク40のデータを更新するのである。また、
付帯演算機30は、このようにメモリバンク40内のデ
ータを更新するのみに限らず、メモリバンク40内に新
規のデータを書き込む機能等を備えてもよい。
態における付帯演算機30とメモリバンク40との接続
と、付帯演算機30の一実施例の構成を示すブロック図
である。
30は、メモリ制御部20とメモリバンク40との間
に、その双方を結ぶメモリ制御線71、データ線72、
アドレス線73を介して接続している。メモリ制御線7
1ではメモリバンク40を制御する命令を通信し、デー
タ線72では記録されたデータや記録するデータを送受
し、アドレス線73ではメモリバンク40内のアクセス
先のデータのアドレスを通信する。
の間には、メモリアクセスの排他制御を調停するアクセ
ス調停部60を設けており、メモリ制御部20とアクセ
ス調停部60をアクセス調停線74で、付帯演算機制御
部31とアクセス調停部60をアクセス調停線75で接
続している。また、メモリ制御部20から付帯演算機3
0に対して、実行する演算の内容や更新処理の内容を通
知するための付帯演算機制御線76を備えている。
の計算機システムの処理を説明する。
態の計算機システムの処理を説明するための図であり、
この例においては、所定の計算により算出される値“f
(a,b,c,…)”を、メモリバンク40に記録され
たデータ“Y”に加算して更新する処理を説明するもの
である。なお、“+=”の記号は、左辺に示される変数
の値に、右辺の値を加算する旨を示す演算子である。
セッサ11及び図2のプロセッサ12は、図4の右辺に
示されるように更新に用いるデータ“f(a,b,c,
…)”を算出する処理を実行し、その算出結果を付帯演
算機30の側に渡す。そして、付帯演算機30が、更新
対象のデータ“Y”をロードし、このロードしたデータ
をプロセッサから渡された値と共に指定された演算(図
4の例では加算)を実行し、この更新された“Y”の値
をメモリバンク40に書き込むのである。
から独立して演算やデータの読出し書き込みを実行する
演算機であり、プロセッサから受けた命令やデータはデ
ータ用シフトレジスタ33やアドレス用シフトレジスタ
34に順次記録され順番に実行する。このため、プロセ
ッサの側においては、ベクトル演算処理のループ中等に
おいてメモリバンク40のデータを更新する必要が発生
した場合には、その更新処理を付帯演算機30に対して
命令することにより、処理を中断することなく要求され
る演算を適切に実行することができる。
発生する場合等においても、従来では必要とされた特別
のプログラムの作成等の処理が不要となり、利用者は高
速の演算処理を簡易に実行することができる。
理をフローチャートを参照してより詳細に説明する。図
5は、本発明の図1、図2の各実施の形態の計算機シス
テムの処理を説明するためのフローチャートである。
図2のプロセッサ12は、更新に用いるデータを算出す
る(ステップ501)。この更新に用いるデータとは、
図4の例においては右辺の“f(a,b,c,…)”で
あり、プロセッサはこれを算出するのである。
更新に用いるデータと、更新対象のデータのアドレスの
指定と、更新における演算の内容を、メモリ制御部20
に対し通知する(ステップ502)。図4の例において
は、更新対象のデータのアドレスは、変数“Y”のアド
レスであり、更新における演算の内容は、当該変数
“Y”に対して更新に用いるデータを加算することであ
る。このようにプロセッサは、付帯演算機30に実行さ
せる加算処理等の四則演算やその他の演算処理を指定し
て、メモリ制御部20に通知するのである。
の通知を受けると、付帯演算機30に対してデータの更
新処理を要求する(ステップ503)。この要求先の付
帯演算機30は、更新対象のデータを記録するメモリバ
ンク40に対して設置されているものである。
30に対して、更新に用いるデータをデータ線72か
ら、更新されるデータのアドレスをアドレス線73か
ら、実行する演算の内容の指定を付帯演算機制御線76
から送信することにより、更新処理を要求する。
0から送信される信号を検知し、データ用シフトレジス
タ33に更新に用いるデータを記録し、アドレス用シフ
トレジスタ34に更新対象のデータのアドレスを記録す
る。そして、この格納が終了すると、メモリ制御部20
に対して格納動作の終了の旨を付帯演算機制御線76を
通して通知する。
タ33及びアドレス用シフトレジスタ34に記録された
データやアドレスを、記録された順番に読み出して演算
を実行する。
タを実行する順番が到来した場合には、付帯演算機30
は、そのメモリアクセスの処理を実行する。データ用シ
フトレジスタ33の出口にデータが現れた場合には、付
帯演算機制御部31は、データ用シフトレジスタ33及
びアドレス用シフトレジスタ34の出口のデータを取り
出して、それぞれをレジスタ(レジスタ37とレジスタ
35)に格納し、アクセス調停部60に対してメモリバ
ンク40のアクセス権をアクセス調停線75を通して要
求する(ステップ504)。
要求を受けると、メモリバンク40の接続をメモリ制御
部20から付帯演算機30の側に切り替える。例えば、
図3の装置構成において、スイッチ81、82、83、
84をオフとし、スイッチ85、86をオンにするので
ある。そして、付帯演算機制御部31に対して、メモリ
バンク40へのアクセス許可をアクセス調停線75を通
して発行する。
0のデータへのアクセス権を得ると、更新対象のデータ
をレジスタ36に読み込む(ステップ505)。
ジスタ36に記録された更新対象のデータと、レジスタ
37に記録された更新に用いるデータを用いて、指定さ
れた演算を実行し、その演算結果をレジスタ38に格納
する(ステップ506)。
チ32−1をオンにし、更新されたデータをメモリバン
クに書き込む(ステップ507)。
理が終了すると、アクセス調停部60に対して、メモリ
バンクのアクセス権の返還をアクセス調停線75を通し
て通知する(ステップ508)。アクセス調停部60
は、アクセス権の返還の通知を受けると、ステップ50
4において変更したスイッチの状態を元に戻す等によ
り、メモリバンク40の接続を付帯演算機30からメモ
リ制御部20の側に切り替えて元の状態に戻すのであ
る。
タの更新処理の一連の動作が終了する。
4を設けた理由は、同一メモリバンクへのデータ更新要
求が短い時間間隔で生じた場合でも、更新要求を貯めて
おき、メモリ制御部20が速やか次の処理に移れるよう
にするためである。
においては、例えば上記の例においては、スイッチ8
1、82、83、84がオフになっているために、メモ
リ制御部20は、メモリバンク40にアクセスすること
はできないが、付帯演算機30に対して、更新に用いる
データと更新されるデータのアドレスをそのシフトレジ
スタ33、34に書き込むことができる。
は、プロセッサの側から更新に用いるデータを送信する
ものであったが、他に例えば、記録されたデータの値を
“1”つづつ増加させるカウンタの処理の場合等におい
ては、そのカウンタ処理の旨と、更新対象のデータのア
ドレスを通知するのみで十分であり、更新に用いるデー
タの値を送る必要はない。本発明の計算機システムは、
図5のフローチャートと同様にしてこうした処理に対応
させることができる。
態の計算機システムによるカウンタの加算処理を説明す
るためのフローチャートである。付帯演算機30は、カ
ウンタを排他的に加算更新を実行する。
図2のプロセッサ12は、メモリ制御部20に対して、
加算更新の対象である整数データのアドレスと、当該整
数データに対して加算更新を実行する旨を通知する(ス
テップ601)。
クセス調停部60に対して加算演算の許可をアクセス調
停線74を通して要求する(ステップ602)。アクセ
ス調停部は、もし付帯演算機30の側にアクセス権を与
えていない場合には、メモリ制御部20にアクセス権を
与えてその旨をアクセス調停線74を通して通知し、
又、オン・オフの変更の必要なスイッチを変更する。
付帯演算機制御部31に対して、加算更新の実行を付帯
演算機制御線76を通して要求する(ステップ60
3)。付帯演算機制御部31は、これを受けてスイッチ
34−1をオンにする。
のデータを読み出す(ステップ604)。これは、加算
更新対象のデータのアドレスをアドレス線73に出力し
て、その加算更新対象のデータをデータ線72から受け
取ることができる。また、付帯演算機制御部31におい
ても、ここで加算対象のデータ及びそのデータのアドレ
スのそれぞれを、前記読み込み動作中にデータ線77と
アドレス線73のそれぞれから読み取って、それぞれを
レジスタ(レジスタ36とレジスタ35)に格納するこ
とができる。
20による動作が終了すると、アクセス権を自動的に付
帯演算機30の側に切り替える(ステップ605)。例
えば、スイッチ81、82、83、84をオフにするの
である。
部32を用いて加算対象のデータの加算の演算を実行す
る(ステップ606)。これは、付帯演算機制御部31
が、加算対象のデータをレジスタ36から読み出して、
所定の加算演算を実行し、更新されたデータをレジスタ
38に格納するのである。
更新されたデータを加算対象のデータの元のアドレスに
書き込み、そのデータを更新する(ステップ607)。
これは、付帯演算機制御部31が、スイッチ86と32
−1とをオンにし、レジスタ38に格納されている更新
されたデータを、レジスタ35に示される加算対象のデ
ータのメモリバンク40内の元のアドレスに書き込むの
である。
終了すると、アクセス調停部60に対してアクセス権の
返還を通知する(ステップ608)。アクセス調停部6
0は、アクセス権の返還の通知を受けると、各スイッチ
を所定の状態に戻す等により、メモリバンク40の接続
を付帯演算機30からメモリ制御部20の側に切り替え
て元の状態に戻すのである。
ンタの更新処理の一連の動作が終了する。
は、他のメモリアクセスを許さないようにすることによ
り、カウンタの値を正確に一貫性を保って更新すること
ができる。
を、具体的な処理の実施例を用いて説明する。
考える。疎行列とは、行列成分に“0”以外の要素が少
ない行列である。このため、疎行列の演算においては、
値が“0”である殆どの要素に対して演算を実行する必
要がない等の場合が多く、その演算に際しては様々な高
速処理の技術が用いられている。
す図であり、ここでは疎行列Aに対して配列xを掛けて
得られる配列を、配列yに対して加算する処理を演算す
るのである。つまり、“y=y+Ax”(又“y+=A
x”)の式に示される演算を実行するのである。
演算を処理するアルゴリズムの一例を示すフローチャー
トである。
要素(非ゼロ成分)の総数を“n”と示し、その非ゼロ
成分の各値を“配列a”の各要素が示すものとする。つ
まり、配列aの要素であるn個の値、a(i)(i=1
〜n)が、疎行列Aの非ゼロ成分の各値を示すのであ
る。
を示す行番号と列番号とを、配列rowと配列colu
mnとのそれぞれにより示すものとする。つまり、各i
(=1〜n)におけるa(i)の値は、疎行列Aの(r
ow(i)、column(i))の座標の値である。
また、配列aが、疎行列Aの各非ゼロ成分を示す順番は
任意である。
の非ゼロ成分を抽出して、演算処理をその非ゼロ成分に
対してのみ行うことにより、必要とする演算回数を大幅
に削減し高速化を図っているのである。この技術は、従
来よりベクトル計算機等の高速処理を行う計算機システ
ムにおいて実施されている。
ゴリズムを用いた、図7の例の“y=y+Ax”の行列
演算を示す図である。
は4個であり(よってn=4)、これをここでは、座標
(1、1)(1、2)(3、1)(5、5)の順番に配
列aに格納している。よってa(i)(i=1〜4)の
値は、順に“5”、“6”、“7”、“8”である。
ow、x、yを用いて演算を行うことができ、プロセッ
サは、更新に用いるデータである各k=1〜4に対する
“a(k)*x(column(k))”の値を図9に
示されるように算出し、更新対象のデータのアドレスで
ある各k=1〜4に対する“y(row(k))”のデ
ータのアドレスを検出し、これらを加算更新を行う旨の
命令と共にメモリ制御部20に送る。そして、付加演算
機30が、メモリ制御部20からこれらのデータや命令
を受け付けて、配列yの更新を実行する。
(3)=17、y(5)=14として更新され、yは、
y=(19、8、17、10、14)に更新される。
1つの行に非ゼロ成分が座標(1、1)と座標(1、
2)との2箇所に存在することである。“y(row
(k))”に対して“a(k)*x(column
(k))”の値を加算し更新する処理は、この座標
(1、1)と座標(1、2)とのそれぞれを順次実行す
る必要があるのであり、この双方の更新を同時に処理し
たのでは不正な結果が出力されることとなる。
あり、このy(1)の値はインデックスk=1とk=2
の時に更新される。ここで、図10においては、インデ
ックス順にまずk=1の更新を行い“12”を加えた後
に、続いてk=1の更新を行い“0”を加えるため、y
(1)は正しく“19”に更新されている。しかし、こ
こでのk=1とk=2の更新が同時に実行されると、同
じy(1)の値がそれぞれに“19”と“7”に更新さ
れることになり、不正な結果が出力される危険がある。
の1つの行に2以上の非ゼロ成分が存在する可能性があ
るために、もしベクトル計算機や共有メモリ並列計算機
により処理しようとしても、ステップ803において配
列yの同一の要素を更新する命令が、ベクトル化された
1つの単位内に発生したり、異なるプロセッサに並列化
されて更新が同時に要求されることにより、正確な更新
ができないという危険がある。このため、通常のベクト
ル計算機や共有メモリ並列計算機では、インデックスk
に関してベクトル化又並列化を行うことはできなかっ
た。しかし、図3に示した付帯演算機30を以下のよう
に用いることにより、インデックスkに関してベクトル
化及び並列化が可能になる。
システムの形態における行列演算“y=y+Ax”の処
理を説明するためのフローチャートである。
されたものと同様に、(疎)行列Aの非ゼロ成分(全n
個)を任意の順番により、配列a(i)(i=1〜n)
により示し、その各a(i)が示す行列Aの要素の座標
が、配列rowと配列columnを用いて(row
(i)、column(i))と示されるものとする。
(=1〜n)を用いて、これをベクトルレジスタ長VL
毎に区切ってベクトル処理を実施するものである。この
ベクトルレジスタ長VLは、1回のベクトル化において
まとめられる要素の数を示すものであり、個々のベクト
ル計算機において設定された所定の値が使用される。ま
た、これによりまとめられる最後のセグメントは、VL
よりも短くなる可能性があるため“L=min(n−k
+1,VL)”によりセグメントの長さを設定すること
で、配列a等における未定義のデータ(番号nを超過す
る配列のデータ)を読み出す等の問題を解消している。
においては、ベクトルレジスタ長VLにまとめられたベ
クトルレジスタとして、Vcol、Vrow、Va、V
axを定義して用いている。
トル計算機システムでは、行列演算“y=y+Ax”を
以下のように行っている。
る“1”を設定し(ステップ901)、このkの値が非
ゼロ成分の総数“n”を超えるまでステップ903の計
算処理を実行する(ステップ902)。
ず1〜nまでを、VLの倍数毎に区分けしてベクトル化
する範囲を設定している。つまり、(1〜VL)、(V
L+1〜2*VL)、(2*VL+1〜3*VL)、…
のように“n”を超えるまでを区分けしている。
ad命令により、アドレス用ベクトルレジスタVcol
に、整数配列columnのインデックスkから始まる
L個の連続にならんだデータをロードする。また、kの
値は、ステップ904の更新処理において示されるよう
にVLの整数倍を成している。同様に、アドレス用ベク
トルレジスタVrowに、整数配列rowのデータをロ
ードする。
より、ベクトルレジスタVaに、実数配列aから非ゼロ
成分の実数データをロードする。
レジスタVxに、実数配列xのデータにおけるアドレス
用ベクトルレジスタVcolに順次示される位置のデー
タをロードする。
て、ベクトル演算パイプラインを用いVaとVxのデー
タの積を計算し、ベクトルレジスタVaxに格納する。
このベクトル演算は各ベクトルレジスタの要素毎に積を
算出するものであり、つまり、ここで“Vax=Va*
Vx”の演算は、“Vax(i)=Va(i)*Vx
(i)”(i=1〜L)をベクトル演算パイプラインに
より演算することを意味する。
り、実数配列yにおけるアドレス用ベクトルレジスタV
rowに順次示される位置のデータに、付帯演算機30
によりVaxのデータを加算し、yをもとの場所に格納
してデータを更新する。
図3の付帯演算機30を用いてscatter処理によ
り分配されたデータの加算更新を行うことを指示するコ
マンドである。すなわち、ベクトルプロセッサは、ベク
トルレジスタVaxの各データを、配列y内の対応する
データを格納すべきメモリバンクに、アドレス用ベクト
ルレジスタVrowを参照してscatter処理によ
り分配し、付帯演算機30が分配されたデータを用いて
y内の対応するデータの加算更新を実行するのである。
素を一まとめにしたベクトル演算が終了すると、インデ
ックスkにVLを加算して更新し(ステップ904)、
再びステップ902以下の処理に戻り計算を続行する。
処理が終了すると、ベクトルプロセッサと付帯演算機3
0の間で同期を取り(ステップ905)、付帯演算機3
0に加えられるデータが残っていないかどうかの確認等
を行い更新動作を終了する。
算機システムを用いることにより、容易にインデックス
kに関してベクトル化を行うことができる。例えば、前
述の図7の式の計算においては、y(1)の値のk=
1、2における更新は、ベクトルプロセッサ11から順
次付帯演算機30に対して更新の命令が送信され、これ
が順次シフトレジスタに記録されて順番に実行されるた
め、正しく更新が実行されるのである。
計算機システムの形態における行列演算“y=y+A
x”の処理を説明するためのフローチャートである。図
12では、1からnまでのインデックスを2つに分割し
て、それぞれを2つのプロセッサ12により並列に処理
している。また、ここでフローチャート中の“[n/
2]”の記号は、n/2よりも小さい整数の内で最大の
値を示すものとする。
同一のデータの更新処理がベクトル化された1つの単位
内に発生した場合に、不正な更新が行われることを防止
するものであった。ここでの、共有メモリ並列計算機シ
ステムの形態においては、同一のデータの更新処理が異
なるプロセッサに割当てられた場合に、それぞれのプロ
セッサにより個別に更新が実行され、不正な更新が行わ
れることを防止する。
08における計算処理においては、先に説明したベクト
ル計算機の場合と同様に、演算子“+=”に示される右
側の被演算データに左側の被演算データを加えて更新す
る処理を、図3の付帯演算機30を用いて処理するので
ある。
(k)*x(column(k))の値を計算し、その
計算結果のデータをy(row(k))のアドレスの指
定と加算処理を実行する旨の命令と共に、メモリ制御部
20に送る。
(k))のデータの格納された付帯演算機30に対し
て、これらのデータやアドレスと共に、加算処理を実行
する旨の命令を送る。付帯演算機30は、この命令を受
けてy(row(k))の加算更新を実行するのであ
る。
モリ並列計算機システムでの実施例のように、メモリバ
ンクに接続された付帯演算機でデータの加算更新を行う
ことにより、最終的な加算結果の正当性が守られる。
次に実行されるが、それぞれメモリバンクが他とは独立
に動作するので全体として高速な演算が実現される。
更新処理を考える。第1の実施例と同様に、同一のカウ
ンタの更新がベクトル化された1つの単位内に発生した
場合や、並列処理における異なるプロセッサから同時に
発生した場合においても、カウンタを正確にかつ高速に
更新するのである。
は、複数個の実数値のデータをその整数部分が等しいも
の毎にそれぞれを分類する分類処理において、各グルー
プに分類されたデータをカウントする(又そのデータの
位置を記録する)るものである。
の整数部分に基づく分類処理の内容を説明するための図
である。分類対象のデータとして5つの実数値を備える
配列x=(1.2、2.0、1.4、4.5、2.5)
がある。このxの各要素のデータを整数部分に基づいて
分類し、分類結果を順次配列list(j、i)に記録
するのである。ここで、配列list(j、i)は、各
列(i)において分類された整数部分の値を示し、各行
(j)において分類されたデータの数を示し、この配列
の(j、i)成分は、整数部分の値が“i”である
“j”番目に分類されたデータのインデックスを示すも
のである。
に基づく分類を処理するアルゴリズムの一例を示すフロ
ーチャートである。
総数を“n”と示し、その各実数データを配列xにより
x(i)(i=1〜n)と示す。また関数“int”は
実数データの整数部分を出力する。
ープに分類された実数データの総数を示す。例えば、
“count(2)”により、これまでに分類された整
数部分が“2”である実数データの総数が示されるので
ある。また、前述の様に2次元配列list(j、i)
は、分類されたデータの元の配列xにおけるインデック
スを示す。ここで、配列countや2次元配列lis
tのサイズは、予め適切なサイズを設定しておく。ま
た、配列countの各要素の値は、計算処理の実行前
に予め“0”に初期化しておく。また、“count
(i)++”は、配列の要素“count(i)”の値
を1つ増加させる命令を意味する。
理では、各インデックスkにおいて、x(k)の整数部
分“i”を計算し、その整数部分“i”に該当するカウ
ンタ値“count(i)”の値を“1”増加させる。
そして、2元配列listにおける、当該整数部分
“i”の当該カウンタ値“count(i)”を示す要
素“list(count(i)、i)”に対して、現
在のインデックスの値“k”を代入する。この操作を全
てのk(=1〜n)に対し順次実行することにより、図
13の例に示されるように実数データが分類されるので
ある。
ズムを用いた、図13の例の実数データx=(1.2、
2.0、1.4、4.5、2.5)を分類する処理を説
明するための図である。
順次1つずつ図14のアルゴリズムに基づいて、各グル
ープ毎にカウントすることにより、インデックスの値
“k”の代入先である2元配列listの座標が求めら
れている。
整数部分が等しいデータを分類する処理が1つのベクト
ル化の単位内に発生したり、異なるプロセッサから同時
に発生する可能性があり、配列countや2元配列l
istが不正に更新される危険があるため、従来のベク
トル計算機や共有メモリ並列計算機ではインデックスk
に関してベクトル化及び並列化ができなかった。
下のように用いることにより、インデックスkに関する
ベクトル化及び並列化が可能になる。
システムの形態における実数データの整数部分に基づく
分類処理を説明するためのフローチャートである。
示されたものと同様に、分類対象の実数データ(全n
個)を、配列x(i)(i=1〜n)により示し、その
各要素x(i)の分類を、前述の様に配列countを
用いて、2元配列listに記録するのである。
場合と同様にインデックスk(=1〜n)を用いて、こ
れをベクトルレジスタ長VL毎に区切ってベクトル処理
を実施するものである。また、これによりまとめられる
最後のセグメントは、VLよりも短くなる可能性がある
ため“L=min(n−k+1,VL)”により適切な
セグメントの長さを設定する。
3においては、ベクトルレジスタ長VLにまとめられた
ベクトルレジスタとして、Vx、Vint、Vcn、V
adを定義して用いている。
tの各要素list(j、i)を、1次元配列にlis
t(m*(i-1)+j)=list(j、i)の方式に
より変換して指定している。また、ここで“m”は、2
元配列配列list(j、i)の第1次元目の総個数で
ある(つまり、2元配列配列listは、各iにおいて
list(1、i)からlist(m、i)までの要素を備
える。)。
ける計算処理を実行するステップ1603以外は、図1
1に示される第1の実施例と同様である。
ず、r_vector_load命令により、実数配列
x内のインデックスkからk+L−1までの各データ
を、ベクトルレジスタVxにロードする。
トル演算パイプラインを用いてVx内の各実数データの
整数部を計算し、アドレス用ベクトルレジスタVint
に格納する。つまり、Vint(i)=int(Vx
(i))、(i=1〜L)の演算を行う。
各整数部分Vint(i)の値のカウンタ値count
(Vint(i))の値を“1”増加させて、gath
er処理によりベクトルレジスタVcnにロードする。
ここで、式の右辺“count(Vint(i))”の
項の左側につけられた演算子“++”は、右辺の値を左
辺に代入する前に、その“count(Vint
(i))”の項の値を“1”増加させる命令を意味す
る。
ては、単にgather処理によるデータのロードを行
うだけでなく、ロードされる整数データの排他的な加算
更新を各メモリバンク40において付帯演算機30によ
り行うことを指示する。
は、ベクトル演算パイプラインを用いて、各要素の整数
部分の値Vint(i)とカウンタ値Vcn(i)を基
に配列listの格納先インデックスを計算し、アドレ
ス用ベクトルレジスタVadに格納する。
このVadの格納先インデックスの値を参照しながら、
list内の対応するアドレスに各インデックスの値
(k〜k+L−1)を分配する。
算機システムを用いることにより、容易にインデックス
kに関してベクトル化を行うことができる。例えば、前
述の図13、図15に示される分類処理の例において
は、k=1、3において共通の整数部分“1”が示さ
れ、k=2、5において共通の整数部分“2”が示され
ているため、従来のベクトル計算機システムではベクト
ル化することができなかった。しかし、本実施の形態の
ベクトル計算機システムでは、これらを全て1つのベク
トルにベクトル化した場合においても、ベクトルプロセ
ッサ11から順次付帯演算機30に対して更新の命令が
送信され、これが順次シフトレジスタに記録されて順番
に実行されるため、正しく更新が実行されるのである。
計算機システムの形態における実数データの整数部分に
基づく分類処理を説明するためのフローチャートであ
る。図17では、1からnまでのインデックスを2つに
分割して、それぞれを2つのプロセッサ12により並列
に処理している。
08における計算処理においては、先に説明したベクト
ル計算機の場合と同様に、カウンタcountの更新処
理と、実数データの分類先をlistに記録する処理と
を、図3の付帯演算機30を用いて処理するのである。
ステム及び共有メモリ計算機システムによる各実施の形
態の本発明の計算機システムは、メモリバンク40に接
続された付帯演算機30において、データの更新処理や
カウンタの加算処理を行うことにより、正確かつ高速に
演算を処理することができる。この際、各メモリバンク
40におけるデータの更新は逐次に実行されるが、それ
ぞれのメモリバンクが他のメモリバンクと独立に動作す
るため、全体として高速な演算が行われる。
の、ベクトル計算機システムによる形態と、共有メモリ
計算機システムによる形態とは、合わせて実施すること
ができる。つまり、図2に示される共有メモリ計算機シ
ステムの各プロセッサに、本発明のベクトル演算を実行
するベクトルプロセッサを用いることが可能である。
て本発明を説明したが、本発明は必ずしも上記実施の形
態及び実施例に限定されるものではなく、その技術的思
想の範囲内において様々に変形して実施することができ
る。
テムによれば、以下のような効果が達成される。
数のメモリバンクのそれぞれに独立かつ並列に動作する
付帯演算機を備えて、各メモリバンク毎に局所的な排他
処理を行うことにより、ベクトル演算や並列処理におけ
る個々のデータの一貫性を保った更新処理を、正確に容
易に高速に処理することができる。
メモリ内のデータの更新処理や、カウンタの更新を伴う
データの分類処理等の、従来ではベクトル化(又、並列
化)が困難であった各種の処理を、容易にベクトル化
(又、並列化)して高速に処理することができる。
ステムに適応した実施の形態の一実施例の構成を示すブ
ロック図である。
ムに適応した実施の形態の一実施例の構成を示すブロッ
ク図である。
との接続と、付帯演算機30の一実施例の構成を示すブ
ロック図である。
めの図であり、
めのフローチャートである。
算処理を説明するためのフローチャートである。
ゴリズムの一例を示すフローチャートである。
の“y=y+Ax”の行列演算を示す図である。
7の“y=y+Ax”の行列演算を示す図である。
形態における行列演算“y=y+Ax”の処理を説明す
るためのフローチャートである。
テムの形態における行列演算“y=y+Ax”の処理を
説明するためのフローチャートである。
を説明するための図である。
するアルゴリズムの一例を示すフローチャートである。
図13の例の実数データを分類する処理を説明するため
の図である。
形態における実数データの整数部分に基づく分類処理を
説明するためのフローチャートである。
テムの形態における実数データの整数部分に基づく分類
処理を説明するためのフローチャートである。
Claims (11)
- 【請求項1】 複数のメモリバンクを備える計算機シス
テムにおいて、 計算処理を制御するプロセッサ部からの制御を受けて、
指定された演算を前記プロセッサ部から独立に処理する
付帯演算機を、各前記メモリバンク毎に備え、 各前記付帯演算機は、 対応する前記メモリバンク内に記録されたデータに対す
る演算や、読出し、書込みを、前記プロセッサ部から送
信される命令やデータに基づいて処理することを特徴と
する計算機システム。 - 【請求項2】 前記付帯演算機は、 対応する前記メモリバンク内に記録された、前記プロセ
ッサ部により指定されたアドレスのデータを読出し、 前記読み出したデータに対して、前記プロセッサ部によ
り指定された演算を実行し、 演算結果のデータを、前記指定されたアドレスに書き込
むことにより、当該アドレスのデータの更新処理を行う
ことを特徴とする請求項1に記載の計算機システム。 - 【請求項3】 前記プロセッサ部により指定されたアド
レスのデータを、前記プロセッサ部により送信されたデ
ータを用いて、前記プロセッサ部により指定された四則
演算を行い、前記指定されたアドレスのデータを演算結
果のデータに更新する手段を備えることを特徴とする請
求項1又は請求項2に記載の計算機システム。 - 【請求項4】 前記プロセッサ部により指定されたアド
レスのデータに対して、予め設定された値を加算された
値に更新する手段、及び予め設定された値を減算された
値に更新する手段を備えることを特徴とする請求項1か
ら請求項3のいずれか一つに記載の計算機システム。 - 【請求項5】 前記プロセッサ部は、 ベクトル演算による計算処理を実行することを特徴とす
る請求項1から請求項4のいずれか一つに記載の計算機
システム。 - 【請求項6】 前記プロセッサ部は、 複数のプロセッサを備えて、処理対象の計算を各前記プ
ロセッサに割当てて並列処理することを特徴とする請求
項1から請求項5のいずれか一つに記載の計算機システ
ム。 - 【請求項7】 複数のメモリバンクを備える計算機シス
テムの計算制御方法において、 計算処理を制御するプロセッサ部が、各前記メモリバン
ク毎に備えられた、前記プロセッサ部から独立した付帯
演算機に対し、演算の実行を指示するステップと、 前記付帯演算機が、 対応する前記メモリバンク内に記録された、前記プロセ
ッサ部により指定されたアドレスのデータを読出すステ
ップと、 前記読み出したデータに対して、前記プロセッサ部によ
り指定された演算を実行するステップと、 演算結果のデータを、前記指定されたアドレスに書き込
むステップを備えることにより、当該アドレスのデータ
の更新処理を行うことを特徴とする計算制御方法。 - 【請求項8】 前記指定されたアドレスのデータを、前
記プロセッサ部から送信されたデータを用いて、前記プ
ロセッサ部により指定された四則演算を行い、前記指定
されたアドレスのデータを演算結果のデータに更新する
ステップを備えることを特徴とする請求項7に記載の計
算制御方法。 - 【請求項9】 前記指定されたアドレスのデータに対し
て、予め設定された値を加算された値に更新するステッ
プ、及び予め設定された値を減算された値に更新するス
テップを備えることを特徴とする請求項7又は請求項8
に記載の計算制御方法。 - 【請求項10】 ベクトル演算による計算処理を実行す
ることを特徴とする請求項7から請求項9のいずれか一
つに記載の計算制御方法。 - 【請求項11】 処理対象の計算を、複数のプロセッサ
に割当てて並列処理することを特徴とする請求項7から
請求項10のいずれか一つに記載の計算制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000299683A JP2002108837A (ja) | 2000-09-29 | 2000-09-29 | 計算機システムとその計算制御方法 |
US09/964,749 US6957324B2 (en) | 2000-09-29 | 2001-09-28 | Computer system and method of controlling computation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000299683A JP2002108837A (ja) | 2000-09-29 | 2000-09-29 | 計算機システムとその計算制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002108837A true JP2002108837A (ja) | 2002-04-12 |
Family
ID=18781457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000299683A Withdrawn JP2002108837A (ja) | 2000-09-29 | 2000-09-29 | 計算機システムとその計算制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6957324B2 (ja) |
JP (1) | JP2002108837A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009447A (ja) * | 2007-06-29 | 2009-01-15 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
JP2011233155A (ja) * | 2011-06-16 | 2011-11-17 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
JP2014504418A (ja) * | 2010-12-22 | 2014-02-20 | インテル・コーポレーション | ベクトルコンフリクト命令 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7404065B2 (en) * | 2005-12-21 | 2008-07-22 | Intel Corporation | Flow optimization and prediction for VSSE memory operations |
KR102099914B1 (ko) | 2013-10-29 | 2020-05-15 | 삼성전자주식회사 | 영상 처리 장치 및 영상 처리 방법 |
US9870339B2 (en) * | 2015-06-26 | 2018-01-16 | Intel Corporation | Hardware processors and methods for tightly-coupled heterogeneous computing |
US10346944B2 (en) | 2017-04-09 | 2019-07-09 | Intel Corporation | Machine learning sparse computation mechanism |
US20220283947A1 (en) * | 2020-03-18 | 2022-09-08 | Nec Corporation | Information processing device and information processing method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5742842A (en) * | 1992-01-28 | 1998-04-21 | Fujitsu Limited | Data processing apparatus for executing a vector operation under control of a master processor |
DE69421103T2 (de) * | 1993-01-22 | 2000-06-08 | Matsushita Electric Ind Co Ltd | Programmgesteuertes Prozessor |
JPH08278916A (ja) * | 1994-11-30 | 1996-10-22 | Hitachi Ltd | マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路 |
US6029242A (en) * | 1995-08-16 | 2000-02-22 | Sharp Electronics Corporation | Data processing system using a shared register bank and a plurality of processors |
US5680641A (en) * | 1995-08-16 | 1997-10-21 | Sharp Microelectronics Technology, Inc. | Multiple register bank system for concurrent I/O operation in a CPU datapath |
US6003129A (en) * | 1996-08-19 | 1999-12-14 | Samsung Electronics Company, Ltd. | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
-
2000
- 2000-09-29 JP JP2000299683A patent/JP2002108837A/ja not_active Withdrawn
-
2001
- 2001-09-28 US US09/964,749 patent/US6957324B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009447A (ja) * | 2007-06-29 | 2009-01-15 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
JP2014504418A (ja) * | 2010-12-22 | 2014-02-20 | インテル・コーポレーション | ベクトルコンフリクト命令 |
JP2016028351A (ja) * | 2010-12-22 | 2016-02-25 | インテル・コーポレーション | ベクトルコンフリクト命令 |
JP2011233155A (ja) * | 2011-06-16 | 2011-11-17 | Nippon Telegr & Teleph Corp <Ntt> | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20020040428A1 (en) | 2002-04-04 |
US6957324B2 (en) | 2005-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3442225B2 (ja) | 演算処理装置 | |
JP2665111B2 (ja) | ベクトル処理装置 | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
US4771380A (en) | Virtual vector registers for vector processing system | |
US20070299892A1 (en) | Algebra operation method, apparatus, and storage medium thereof | |
JP2002297379A (ja) | ハードウェアプリフェッチシステム | |
CN114004349A (zh) | 一种能支持不同位宽运算数据的运算单元、方法及装置 | |
KR20200031150A (ko) | 데이터 처리장치의 데이터 항목들 내의 성분들의 계수 | |
CN103988174A (zh) | 无需额外寄存器执行寄存器重命名的数据处理设备和方法 | |
JP2002108837A (ja) | 計算機システムとその計算制御方法 | |
JPH0465426B2 (ja) | ||
CN111258950A (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
KR19990072270A (ko) | 무순서동작시예외를트래킹하는장치를구비하는데이터처리시스템및그방법 | |
CN105373496A (zh) | 微型计算机 | |
US3473159A (en) | Data processing system including means for protecting predetermined areas of memory | |
JP3683281B2 (ja) | メモリアクセスの高速化処理装置および方法 | |
JP3146077B2 (ja) | プロセッサ | |
US3201760A (en) | Information handling apparatus | |
JP7377208B2 (ja) | データ処理 | |
JPS58178464A (ja) | 並列演算処理装置 | |
KR0136111B1 (ko) | 데이터요소의 수정장치 및 그 방법 | |
US20080263091A1 (en) | Asynchronous Linked Data Structure Traversal | |
JPS6058487B2 (ja) | デ−タ処理装置 | |
US20020156992A1 (en) | Information processing device and computer system | |
JP2906958B2 (ja) | ユーザプログラムロード方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070622 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070820 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070828 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20071026 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20080603 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20090508 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100419 |