JPS62134763A - 3アドレス・コ−ドの指標づけ装置 - Google Patents

3アドレス・コ−ドの指標づけ装置

Info

Publication number
JPS62134763A
JPS62134763A JP25710986A JP25710986A JPS62134763A JP S62134763 A JPS62134763 A JP S62134763A JP 25710986 A JP25710986 A JP 25710986A JP 25710986 A JP25710986 A JP 25710986A JP S62134763 A JPS62134763 A JP S62134763A
Authority
JP
Japan
Prior art keywords
index
address
register
counter
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP25710986A
Other languages
English (en)
Other versions
JPH0477346B2 (ja
Inventor
ダニエル・ジヨナサン・アウアバツチ
テイエン・チ・チエン
ヴオルフガンク・ヤコブ・パウル
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS62134763A publication Critical patent/JPS62134763A/ja
Publication of JPH0477346B2 publication Critical patent/JPH0477346B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、科学用プロセッサに関する。さらに詳しくは
、科学用プロセッサの操作において有用なメモリにアク
セスするために、アドレス・ベクトルを発生するための
フレキシブルな装置に関する。
B、従来技術およびその問題点 CDC7600(商標)やクレイ1 (商[)等のマシ
ンによって代表される、超高速科学計算用の「スーパー
」コンピュータは、「3アドレス・コード」と呼ばれる
命令を用いる。3アドレス・コード操作とは、各命令ワ
ードが3アドレスを持つことによって特徴づけられる。
3アドレスのうちの2つはオペランド用であり、1つは
結実用である。通常、2つのオペランドは、所定のマシ
ン・サイクルの間に浮動小数点数演算論理機構に与えら
れ、演算論理機構からの結果は、同じサイクルの間にメ
モリに記憶し直される。パイプライン化されたシステム
では、該サイクルの間に記憶される結果は、より早期の
命令で与えられたオペランドに対する操作に対応する。
従来の3アドレス・コードを扱うマシンは、アドレス指
定機能に制限を加えていた。通常、そのようなマシンは
、スカシ・モードまたは高速ベクトル・モードで作動す
る。スカシ・モードでは、アドレスは、各命令サイクル
の間にソフトウェアによって独立して生成または付与さ
れる。高速ベクトル・モードでは、発生したアドレスは
、マシンによって、各サイクル毎にアドレスを1つ増す
カウンタによって、指標づけられる。
このような従来技術におけるアドレス指定能力は、科学
用コンピュータで望まれる多くの操作には不十分である
。例えば、いわゆる分散・集合ベクトル操作(後述する
第4A図および第4B図参照)は、標準的なベクトル・
モードのマシンまたはスカシ・モードのマシンでは極め
てわずられしいものとなる。さらに、従来のマシンでは
、アドレスの非自明の更新を必要とするベクトルに対す
る、他の簡単な操作は、比較的遅いスカシ・モードで行
わなければならない。
C5問題点を解決するための手段 本発明は、従来の3アドレス・コード式「スーパー」コ
ンピュータに共通する硬直した順序づけを克服する科学
用コンピュータの、アドレス発生に用いられるベクトル
・レジスタの指標づけをフレキシブルに行うアーキテク
チャを提供するものである。
一面では1本発明は、連続するサイクルにおいて、命令
ワードに応答し、rビットのアドレスによってアドレス
指定可能なデータ・オブジェクトを記憶するメモリのた
めに、アドレスを発生させるための装置である。該メモ
リは、少なくとも、第1のrビット・アドレス・ポート
と関連する出力レジスタ、第2のrビット・アドレス・
ポートと関連する出力レジスタおよび第3のrビット・
アドレス・レジスタと関連する入力レジスタを含む。該
装置は、第1、第2および第3の指標レジスタを含み、
これらの指標レジスタは、それぞれ、rビット・アドレ
ス・ポートにアドレスとして与えるための変更可能な第
1、第2および第3の指標を記憶する。さらに、該装置
は、1サイクルにおいて、命令ワードの少なくとも一部
に応答し、該サイクルの間に、独立して、第1、第2お
よび第3の指標を増加させるカウンタ手段を含む。この
面において、本装置は、第1、第2および第3の指標レ
ジスタのために、命令ワードから直接、部分基底アドレ
スを与える手段も含む。さらに、1サイクルにおいて、
命令ワードの少なくとも1部に応答し、該サイクルの間
に、独立して、第1、第2および第3の指標の少なくと
も1つを更新するために、第1、第2および第3の指標
レジスタの少なくとも1つに任意の指標を与える手段が
追加される。
3つの独立した指標レジスタを規定し、命令ワードの一
部による制御の下、1または0増加するカウンタを各レ
ジスタに対応させることにより、典型的な科学用コンピ
ュータによる指標づけが提供される。さらに、指標レジ
スタに与えるための任意の指標を発生させる手段により
、非自明の更新がもたらされる。本発明は、ベクトル・
モードの指標づけと結びつけてアドレスの非自明な更新
を提供することにより、科学用プロセッサまたは他のベ
クトル計算を行うプロセッサの能力を飛」的に高める。
D、実施例 丑圭旦と1履■ 以下1図面を参照しつつ、本発明の好ましい実施例を説
明する。第1図は、本発明に応じた浮動小数点プロセッ
サのアーキテクチャを示している。
第2A、2B、3.4A、4B図は1本発明の応用を示
している。第5図は、本実施例用の3ボ一トRAMを示
している。
第1A、IB、IC図では、本発明の具体例である浮動
小数点数プロセッサのアーキテクチャが示されている。
該アーキテクチャは、命令レジスタ102に、連続する
サイクルで命令ワードを与えるための順序づけ手段1o
を含む。順序づけ手段10は、命令メモリ101のアド
レス指定のための順序づけモジュール100を含む。命
令メモリ101からのデータは、命令レジスタ102に
クロックされる。命令レジスタ102の内容を、プロセ
ッサの命令ワードと呼ぶ。プロセッサが1つの命令ワー
ドを実行する時間を、1命令サイクルと呼ぶ。
該アーキテクチャは、固定小数点手段20(第1B図参
照)を含む。該固定小数点手段20は、1サイクルで命
令ワードの一部に応答して、任意の指標を独立して該サ
イクルの間に与えるためのものである。指標の用途は以
下で述入る。固定小数点手段20は、固定小数点数の計
算用のマイクロプロセッサ103を含む、また、指標レ
ジスタと固定小数点メモリ(Xメモリ)105を含む、
固定小数点アドレス(Xアドレス)・カウンタ104も
、固定小数点手段20に含まれる。固定小数点アドレス
・カウンタ104は、固定小数点メモリ105にアドレ
スを与える。
本実施例に従う浮動小数点手段30(第1C図参照)は
、浮動小数点メモリ(Fメモリ)106を含む。Fメモ
リ106は、3ボートRA Mから成り立っているが、
その説明は第5図に譲る。1命令サイクルの間に、Fメ
モリ106は、第1のrビット・アドレス・ポート(A
アドレス・ポート)107にて与えられるアドレスに記
憶されているデータ項目を、関連する出力ポート(A出
力ボート)108に取り出すとともに、第2のrビット
・アドレス・ポート(Bアドレス・ポート)109に与
えられるアドレスに記憶されているデータ項目を、関連
する出力ボート(B出力ボート)110に取り出し、さ
らに、入力ポート(C入力ポート)111に与えられる
データ項目を、第3のrビット・アドレス・ポート(C
アドレス・ポート)112にて与えられるアドレスに記
憶する。
また、浮動小数点手段30は、浮動小数点数演算論理機
構(F−ALU)113を含む。F−ALU113は、
Fメモリ106のA出力ボート1o8およびB出力ボー
ト110からのデータを組み合わせ、結果を得る。該結
果は、例えばd命令サイクルのパイプライン遅れの後、
メモリ106のC入力ボート111に与えられる。数d
は、演算論理機構113のパイプ深さと呼ばれる。
順序づけ手段10に関連する条件コード・マルチプレク
サ(mux) 114は、マイクロプロセッサ103に
よって与えられるX条件コード(X −CC)115と
、F−ALU113によって与えられるF条件コードC
F−CC)116(7)うちの1つを選択し、選択した
ものを順序づけモジュール100へ送る。
Aアドレス・ポート107、Bアドレス・ポート109
およびCアドレス・ポート112にアドレスを与える手
段は、Aカウンタ118、Bカウンタ123およびCカ
ウンタ128から成り、これらはそれぞれ第1.第2.
第3の指標レジスタを含んでいる。本実施例におけるア
ドレス付与手段を記述するために、rは自然数で、かっ
R=2**r(j中本Jは「r」がべき指数であること
を示す)とし、Fメモリ106には内部アドレスがR個
あるものとする。したがって、Fメモリ106のアドレ
スは、rビット・アドレスで指定することができる。m
はrより小さな自然数で、rビット・アドレスのための
部分基底アドレスの長さであるとする。
Fメモリ106のAアドレス・ポート107に与えられ
るアドレスの下位(r−m)桁117は、Aカウンタ1
18の中の指標レジスタの下位(r−m)ビットから成
る。Fメモリ106のAアドレス・ポート107に与え
られるアドレスの上位mビット119は、回路120の
出力に由来する。
該回路120は、Aカウンタ118の上位mビットと1
mビット幅の部分基底アドレス(基底(A))121の
ビット毎のORを計算する。ここで、部分基底アドレス
121は、命令レジスタ102からの命令ワードのうち
のmビット幅の部分として与えられる。
Fメモリ106のBアドレス・ポート109に与えられ
るアドレスの下位(r−m)桁122は、Bカウンタ1
23の中の指標レジスタの下位(r−m)ビットから成
る。Fメモリ106のBアドレス・ポート109に与え
られるアドレスの上位mビット124は、回路125の
出方に由来する。
該回路125は、Bカウンタ123の上位mビットと、
mビット幅の部分基底アドレス(基底(B))126の
ビット毎のORを計算する。ここで、部分基底アドレス
126は、命令レジスタ102からの命令ワードのうち
のmビット幅の部分として与えられる。
Fメモリ106のCアドレス・ポート112に与えられ
るアドレスの下位(r −m )桁127は、Cカウン
タ128の中の指標レジスタの下位(r−m)ビットか
ら成る。Fメモリ106のCアドレス・ポート112に
与えられるアドレスの上位mビット129は、回路13
0の出力に由来する。
該回路130は、Cカウンタ128の上位mビットと1
mビット幅の部分基底アドレス(基底(C))131の
ビット毎のORを計算する。ここで1部分基底アドレス
131は、命令レジスタ102からの命令ワードのうち
のmビット幅の部分として与えられる。
命令メモリ101、順序づけモジュール100、マイク
ロプロセッサ103、固定小数点メモリ105、Xアド
レス・カウンタ104、浮動小数点メモリ106、Aカ
ウンタ118、Bカウンタ123、Cカウンタ128、
メイン・メモリおよび外部入出力機構は、システム・バ
ス134を経由して通信する。メイン・メモリと外部入
出力機構は、完全を期すために述べたのであり、第1図
には示されていない。
分岐即値命令、固定小数点即値命令および浮動小数点即
値命令の実行用に、命令レジスタ102からシステム・
バス134へ至るデータ経路が設けられている。これら
のデータ経路は、完全を期すだめに述べたものであり、
第1図には示されていない。
命令ワード、すなわち命令レジスタ102の内容は、い
くつかのフィールドに分割される。タイプ・フィールド
138は、命令タイプを決定し、それによって、命令ワ
ードの残りのビットの意味が順に決定される。命令タイ
プには1分岐即値操作、固定小数点即値命令、浮動小数
点即値命令用のものと、メモリ101.105.106
.メイン・メモリ、外部入出力機構の間のデータの移動
用のものとがある。本発明に関連する命令タイプは、「
計算」命令タイプである。
計算命令タイプでは、タイプ・フィールド138の外の
命令ワードのビットは、3つの大きなフィールドに再分
化されている。1番目は、S命令(順序づけ命令)フィ
ールド139であり、条件コード・マルチプレクサ11
4を制御するとともに、順序づけモジュール100の操
作を決定する。
2番目は、X命令(固定小数点命令)フィールド140
であり、マイクロプロセッサ103.固定小数点メモリ
105、Xアドレス・カウンタ104、Aカウンタ11
8、Bカウンタ123およびCカウンタ128を制御す
る。X命令フィールド140は、5つのサブフィールド
、つまり、ソース・フィールド141、X操作フィール
ド142、宛先フィールド143、テスト・ビットXT
145およびカウンタ・フィールド144に分割される
。カウンタ・フィールドには、4つのビットx、a、b
およびCがある。ソース・フィールド141による制御
の下、Xメモリ105のXデータ・ボート150の内容
、またはXアドレス・カウンタ104の値、またはAカ
ウンタ118の値、またはBカウンタ123の値、また
はCカウンタ128の値は、システム・バス134を経
由してマイクロプロセッサ103にロードされる。
X操作フィールド142による制御の下、マイクロプロ
セッサ103にロードされたデータは、マイクロプロセ
ッサ103に内的に記憶されているデータと論理的に組
み合わされる。テスト・ビットXT145が0の場合は
、前記組合せの結果はシステム・バス134に戻される
。そして、宛先フィールド143による制御の下、前記
結果は、Xメモリ105のデータ・ボート、Xアドレス
・カウンタ104、Aカウンタ118、Bカウンタ12
3、Cカウンタ128のうちの1つないし複数にロード
されたり、あるいはどれにもロードされなかったりする
。テスト・ビットXT145が1の場合、宛先フィール
ド143は条件コード・マスクとして解釈される。そし
て、該条件コード・マスクによって指定されるテストが
前記結果に適用され、X条件コード115が更新される
カウンタ・フィールド144のビットXが1の場合は、
Xアドレス・カウンタ104の中の指標レジスタが増加
される。カウンタ・フィールド144のビットaが1の
場合は、Aカウンタ118の中の指標レジスタが増加さ
れる。カウンタ・フィールド144のビットbが1の場
合は、Bカウンタ123の中の指標レジスタが増加され
る。カウンタ・フィールド144のビットCが1の場合
は、Cカウンタ128の中の指標レジスタが増加される
。カウンタが、宛先フィールド143による制御の下、
ロードされ、さらに、カウンタ・フィールド144によ
る制御の下、増加される場合には、ロードの方が増加よ
りも優先する。
命令サイクルにおいてXメモリ105のXデータ・ボー
ト150にロードされるデータは、同命令サイクルの終
わりにおいてXアドレス・カウンタ104が指示する位
置に自動的に記憶される。
命令サイクルiにおいてXアドレス・カウンタ104が
変更されると、命令サイクルiの終わりにてカウンタが
指示するメモリ位置の内容が、命令サイクル(i+1)
の終わりにおいてXデータ・ボート150にロードされ
る。この過程は、パイプライン化が可能である。
3番目は、F命令(浮動小数点命令)フィールド146
であり、5つのサブフィールド、つまり、既に定義した
基底(A)121、基底(B)126、基底(C)13
1およびF操作フィールド147、FTテスト・ビット
148を持つ。命令サイクルの間に、Aカウンタ118
、Bカウンタ123およびCカウンタ128の中の指標
レジスタの値は、X命令140による制御下で更新され
る前に、上述したように、それぞれ回路120.125
、l 30 ニよッテ、基底(A)121.基底(B)
126、基底(C)131のフィールドの部分基底アド
レスと組み合わされる。その結果発生するアドレスA、
B、Cは、それぞれAアドレス・ボート107、Bアド
レス・ボート109、Cアドレス・ボート112にロー
ドされる。また。
F操作フィールド147の内容は、F操作レジスタ14
9の中へパイプライン化されている。
次の命令サイクルでは、Aアドレス・ボート107によ
り指定されるオペランドが、Fメモリ106のAオペラ
ンド・ボート108にロードされるとともに、Bアドレ
ス・ボート109により指定されるオペランドが、Bオ
ペランド・ボート110にロードされる。同じ命令サイ
クルの間に、オペランドは、ボート108,110から
F−ALUIL3にロードされる。また、同じ命令サイ
クルの間に、F操作レジスタ149の内容がF−ALU
113にロードされる。F−ALU113の中では、レ
ジスタ149の内容によって指定される操作が、オペラ
ンドに対して適用される。さらにd (パイプライン深
さ)命令サイクル後に、結果は使用可能となり、FTテ
スト・ビット148による制御の下、記憶またはテスト
の一方が行われる。
FTテスト・ビット148が0の場合は、F−ALUに
よってメモリ106のC入力ボート111に与えられる
データは、アドレスCに記憶される。FTテスト・ビッ
ト148が1の場合は、Cアドレス112の先頭のmビ
ットは条件コード・マスクとして解釈され、このマスク
により指定されるテストが、この命令サイクルにおいて
、F−ALU113により伝達される結果に対して適用
されるとともに、F条件コード116が更新される。こ
の過程はパイプライン化が可能である。
1命令サイクルの間に条件コードX−CCll5および
F−CC116のどれか1つが更新されると、順序づけ
モジュール100による命令の選択(次の命令サイクル
の間に、命令レジスタ1゜2に取り出すためのもの)に
影響が現れ得る。
瓜朋■ 1、べ之Σ土艮止 パイプライン式浮動小数点プロセッサにおける。
ベクトル・レジスタを用いる操作の代表として、2つの
ベクトルX=(X(0)、・・・・、X(N−1))と
Y=(Y(0)、・・・・、Y(N−1))を1例えば
成分毎に掛は合わせて、つまり、1=O1・・・・、N
−1についてZ (i): =X(i)* Y(i)と
して。
第3のベクトルZ=(Z(0)、・・−・、Z(N−1
))を得る組合せを挙げることができる。オペランド・
ベクトルX、Yは、少なくともNの長さのベクトル・レ
ジスタからロードされ、結果Zは少なくともNの長さの
ベクトル・レジスタに記憶される。
M=2傘傘mとし、L=2拳*(r−m)とする。第2
A図に示されるように、Fメモリ106を、それぞれの
長さがLであるM個のベクトル・レジスタのように使う
ことができる。i=0、・・・・、M−1とすると、i
番目のベクトル・レジスタの機能は、メモリ106のi
L、iL+1、・・・・、(i+1)L−1の位置によ
り営まれる。
i番目のベクトル・レジスタの連続するL個のアドレス
を、以下のようにして、L個の連続する命令サイクルの
間に、例えばFメモリ106のAアドレス・ボート10
7にて発生させることができる。まず、X操作フィール
ド142による制御の下、マイクロ・プロセッサ103
は値Oを発生し、それをシステム・バス134にのせる
。次に。
値0は、宛先フィールド143による制御の下、Aカウ
ンタ118の指標レジスタにロードされる。
続く命令の間に、カウンタ・フィールド144のビット
aによる制御の下、Aカウンタ118は指標を(L−1
)回増加させる一方、基底(A)121のフィールドは
、値iを持つ。Aカウンタの中の指標レジスタの指標は
L=2拳傘(r−m)より小さいままなので、該指標の
先頭のm個は零である。したがって、Aアドレス107
の先頭のmビット119は、基底(A)121のフィー
ルドによって指定される値と全く一致する。このように
して、発生したAアドレスは、(i*2**(r−m)
+0)、・・・・、(i*2**(r−m)+L−1)
となる。
表1.1および1.2は、プログラムと第1図に示され
るプロセッサ内の様々なレジスタの内容を例示する。こ
れらは、それぞれ、ベクトルXとYの成分毎の積を求め
るプログラムが実行される際のものである。p、g、s
はベクトル・レジスタのナンバとする。ベクトルX、Y
はN=6の長さを持つものとし、ベクトル・レジスタp
、gの最初の6個の位置に記憶されていると仮定する。
また、値Oがマイクロプロセッサ103の内部レジスタ
R(0)に記憶されているとする。表1.1の内容は、
ベクトルX、Yの成分毎の積を求め、結果として生じる
ベクトルZをベクトル・レジスタSの最初の6個の位置
に記憶させるプログラムである。
P=p*L、Q=q*L、S=s傘りとしている。表1
.2は、命令1から9を実行後の、A、B、Cカウンタ
118.123.128の中の指標レジスタ、A、B、
Cアドレス107.112.127、オペランド108
.110.F操作レジスタ149および結果111の値
を示す。F−ALU113のパイプ深さd=2を仮定し
ている。
第2B図に示されるように、Fメモリ106をもつと少
ない個数に区分し、もつと長いベクトル・レジスタを作
ることもできる。例えば、M/2個のベクトル・レジス
タに区分して、それぞれの長さを2Lとすることができ
る。この場合、i番目のベクトル・レジスタは、i*2
L、・・・・、(i+1)$2L−1の位置を占める。
i番目のベクトル・レジスタの2L個の連続するアドレ
スを、以下のようにして、2L個の連続する命令サイク
ルの間に、例えばFメモリ106のAアドレス・ボート
107にて発生させることができる。まず、X命令フィ
ールド140による制御の下、値OはAカウンタ118
の指標レジスタにロードされる。続く命令の間に、カウ
ンタ・フィールド144のビットaによる制御の下、A
カウンタ118はその指標レジスタを(2L−1)回増
加させる一方、基底(A)121のフィールドは値2i
を持つ。21は偶数なので、基底(A)の最下位のビッ
トはOである。指標レジスタの指標はL−=2ii*(
r−m+1)より小さいので、該指標の先頭の(m−1
)個は零である。したがって、Aアドレス107の先頭
の(m−1)ビットは、基底(A)の先頭の(m−1)
ビットと全く一致する、つまり、値iを表わすとともに
、後の(m+1)ビットは、指標を表わす。このように
して、発生したAアドレスは、(i傘2*拳(r−m+
1)+O)、・・・・、(i*2**(r−m+1)+
2L−1)となる。
また、表1.2は、ベクトル操作の進行中(命令1.2
、・・・・)に、マイクロプロセッサ103、Xアドレ
ス・カウンタ104および固定小数点メモリ]05は休
んでおり、ベクトル操作と並行して自分自身の計算を行
い得ることを示している。
2、−2のストライドを、つアドレス 計算する際に、一定のストライドmだけ異なる例えばn
個のアドレスa、a+m、a+2m、・・・・、a+(
n−1)mを発生させる必要がしばしば生じる。例えば
、第3図では、Aは1行m列の行列であり、行(A(0
,○)、・・・・、A(0,m−1)) i ・・・・
i (A(n −1、O))、 ・・・・A (n −
1、m−1)を持つ。Aは、行毎に、Fメモリ106の
す、b+1、・・・・、b+n*(m−1)レジスタに
記憶される。Aの転置行列が行毎に位置Cから記憶され
ると仮定する。例えばAの転置行列の第1行を生成する
ためには、位@a、a+m、・・・・、a+(n−1)
mからデータを取り出して位置c、c+1、・・・・、
c+h−1に記憶しなければならない。
前のセクションでは、A、B、Cカウンタ118.12
3.128を一定値に初期設定する方法、カウンタ・フ
ィールド144のビットを用いて連続するアドレスc、
c+1、・・・・、c+n−1を発生させる方法および
命令ワードからのフィールド121,126.131に
よってもたらされる基底アドレスによりカウンタ118
.123.128の値を修正する方法について述べた。
例えば一定のストライドを持つa、a+m、a+2mと
いうAアドレス117を発生させるためには、まずマイ
クロプロセッサ103にストライド値mを内的に記憶さ
せるとともに、Aカウンタ118を値aに初期設定する
。以下の各命令において、Aカウンタ118はmずつ増
加されなければならない。これは、ソース・フィールド
141でAカウンタ118を指定しくこれにより、Aカ
ウンタの指標の現在値は2マイクロプロセツサにロード
される)、Aカウンタの現在の指標にmを加え(マイク
ロプロセッサ103は、X操作フィールド142による
制御の下、これを行う)、宛先フィールド143でAカ
ウンタ118を指定する(これにより、古い指標にmを
加えたものが、Aカウンタの指標レジスタにロードされ
る)ことにより達成される。
表2.1は、(既に第3図を参照して述べたような、行
列Aの第1列を、位置Cから始まる連続した位置に記憶
させるプログラムを示す。表2゜2は、様々なレジスタ
を通して計算の進度を示す。
値mが例えばマイクロプロセッサ103の内部レジスタ
R(0)に記憶されているとともに、Aカウンタ118
の指標が値aに初期設定され、かつCカウンタ128の
指標が値Cに初期設定されていると仮定している。さら
に、Bカウンタ123が値すに初期設定されており、か
つFメモリ106の位置すにはOが記憶されていると仮
定している。したがって1位置すから取り出されたBオ
ペランド110をAオペランド108に加えると、最初
のAオペランド108と同じC結果が得られる。
この例では、基底フィールド121,126゜131は
示されていない。これらは使用できるけれども、0であ
ると仮定している。表2.2には、パイプ・フィル(p
ipe fill)およびパイプが一杯(full、フ
ル)になった場合の最初の2つの命令サイクルの間の計
算の進度が示されている。
3、且丘亙主旦分散 第4A、4B図は、それぞれ集合操作、分散操作を示す
。I=(I(0)、・・・・、I(n−1))を指標ベ
クトルとする。X=(X(0)、・・・・、X(N−1
))は、ベクトルエより長いベクトルとする。ベクトル
エ、X、’lIらベクトルZ=(X(工(o))、・・
・・、X(I (n −1))を計算することを集合操
作と呼ぶ。
Iと又は上述の通りとする。y= (y(0)、・・・
・、Y(n−1))は、ベクトル■と同じ長さのベクト
ルとする。すべてのi=0.・・・・、n−1について
、ベクトルXの要素X(i)をベクトルYの要素y(I
(i))と置換することを、分散操作と呼ぶ。
指標ベクトルエが固定小数点メモリ105において位置
iから記憶されているとともに、ベクトルXがFメモリ
106において位置xから記憶されており、ベクトルZ
が集合操作によってベクトル1.Xから計算され、かつ
Fメモリ106において1位置Zから記憶されるものと
仮定する。
この応用例においては、アドレスX十I(0)、X+I
(1)、・・・・、X+I(h−1)のセットを発生さ
せ、かつAカウンタ118にロードしなげればならない
。まず、値Xをマイクロプロセッサ103に内的に記憶
させるとともに、Xアドレス・カウンタ104を値iに
初期設定する。続く命令において、カウンタ・フィール
ド144のビットXによる制御の下、Xアドレス・カウ
ンタ104を増加させる。したがって、Xアドレス・カ
ウンタ104は、イ直i、i+1、i+2、・・・・を
引き受け、その結果、固定小数点メモリ105のXデー
タ・ボート150にデータI(i)、I (i + 1
)、I (i + 2)・・・・が現れる。これらのデ
ータは使用可能になると、マイクロプロセッサ103に
ロードされ(Xデータ・ポート150がソース・フィー
ルド141にて指定されている)、アドレスXに(X操
作フィールド142による制御の下、マイクロプロセッ
サ103において内的に加算され、その和はシステム・
バス134に乗せられ、(宛先フィールド143によっ
て指定される)Aカウンタ118の指標レジスタにロー
ドされる。ベクトルZを記憶するアドレスは連続してい
るが、既に前のセクションにおいて、そのようなアドレ
スの発生のさせ方は示されている。
表3.1および3.2は、集合操作の実行のためのプロ
グラムとレジスタの進度をそれぞれ示す。
値又はマイクロプロセッサ103の内部レジスタR(0
)に記憶され、Xアドレス・カウンタ104は値iに初
期設定され、Cアドレス・カウンタ128の指標は値2
に初期設定され、Fメモリ106の位[bは値○で記憶
しており、そして、Bカウンタ123の指標は値すに初
期設定されていると仮定する。
表3.1の命令は、このような状況で集合操作を開始す
る。基底フィールド121,126.131は示されて
いないが、値0を持つものと仮定する。表3.2は、パ
イプが一杯になりつつある間およびパイプが一杯(フル
)になった場合の最初の2つの命令サイクルの間の計算
の進度が示されている。
分散操作は同様の方法により行われる。分散操作の場合
は、連続するAアドレスが発生されるとともに、アドレ
スX+■(O)、X+I(1)、・・・・は適当な時に
Cカウンタにロードされる。
4、  ベクトルの生 この応用例では、前の応用例で用いられたベクトルエの
ような指標ベクトルの、効率的な発生のさせ方が示され
ている。
ペクト/L/X=(X(0)、−−−−1X(N−1)
)がFメモリ106にて位[Xから記憶されていると仮
定する。X(I(0))、・・・・、X(un−1))
は、ベクトルXの要素であって、一定値りよりも小さい
ものとする。前記値りはFメモリ106の位置dに記憶
されており、また、指標ベクトルエ=(I (0)、・
・・・、I(n−1))は計算されて、固定小数点メモ
リ105にて位置iから記憶されるものと仮定する。
初め、値(i−1)がXアドレス・カウンタ104に記
憶されていると仮定する。また、マイクロプロセッサ1
03の内部レジスタR(0)には値1が記憶され、かつ
マイクロプロセッサ103のアキュムレータ(ace)
には、初め、値(−1)が記憶されていると仮定する。
指標ベクトルエは、次のようにして計算される。
Aカウンタ118は、カウンタ・フィールド144のビ
ットaによる制御の下、アドレスX、X+1、・・・・
を発生させる。Bカウンタ123はアドレスdを保持す
る。基底(A)121.基底(B)126のフィールド
は0である。F操作フィールド147は、Aオペランド
108(つまりベクトルXの要素X (i )からBオ
ペランド110(つまり値D)を引くように指定する。
テスト・ビットFT148は、オン状態にある。基底(
C)131のフィールドは、F−ALU113による演
算結果がOより小さい場合に、F条件コード116がオ
ンとなるような条件コード・マスクを指定する。
Cカウンタ128の値は0である(もし0でないと、C
カウンタの頭のビットが1回路130を経由してくる条
件コード・マスクと干渉する可能性がある)。
F条件コード116の機能として、2つの命令のうちの
1つが取り出される。例えば、命令コードがOの場合に
、命令aが取り出され、0でない場合に、命令すが取り
出される。どちらの命令でも、レジスタR(0)の内容
は、マイクロプロセッサ103のアキュムレータに加算
される。このようにして、アキュムレータの値は、rX
(j)<D?Jというテストが、前記命令を取り出す条
件コードを作ることになるような指標jと等しくなる。
命令aでは、他に何もなされない。命令すでは、アキュ
ムレータの新しい値がシステム・バス134に乗せられ
、宛先フィールド143による制御の下、固定小数点メ
モリ105のXデータ・ボート150にロードされる。
また、命令すでは、カウンタ・フィールド144のビッ
トXによる制御の下、Xアドレス・カウンタ104は増
加される。指標jがrX(j)<D」というテストが命
令すを取り出す結果を招くようなに番目の指標であった
ならば、Xアドレス・カウンタ104は値(i+k  
1)まで増加し、値、j=I(k−1)が。
固定小数点メモリ105の位置(i+に−1)に記憶さ
れる。
表4.1.4.2は、上述のようにして、指標べクトル
エを発生させて固定小数点メモリ105に記憶させるプ
ログラムとレジスタの進度をそれぞれ示す。X(1)、
X(2)はDより小さく、かつX(0)、X(3)、X
(4)はDより大きいと仮定する。
表4.1では、上述にようにして指標ベクトルエの発生
を開始する一連の命令が示されている。表4.2では、
パイプ・フィルおよびパイプが一杯になった場合の最初
の2つの命令サイクルの間の計算の進度が示されている
Fメモリ106の 第5図は、Fメモリ106のような3ポ一トRAMの、
よく知られた実現方法を示す。各位置は、2つのバンク
、つまりAバンク513に1度、Bバンク514に1度
、複写される。Aオペランドを取り出すために、Aアド
レス107が、Aアドレス・マルチプレクサ511を経
てA/<ンク513に送られる。Aオペランドは、Aア
ドレス107によって指定された位置から取り出され、
Aオペランド・ボート108にロードされる。
Bオペランドを取り出すためには、Bアドレス109が
、Bアドレス・マルチプレクサ512を経てBバンク5
14に送れらる。Bオペランドは、Bアドレス109に
よって指定された位置から取り出され、Bオペランド・
ボート110にロードされる。
C結果を記憶するために、Cアドレス112が、Aアド
レス・マルチプレクサ511を経てAバンク513に送
られ、かつ、Bアドレス・マルチプレクサ512を経て
Bバンク514に送られる。
C結果ボート111からのデータは、ドライバ515を
経由してAバンク513のデータ・ボート517に送ら
れる。データは、そこからCアドレス112によって指
定される位置に記憶される。
また、C結果ボート111からのデータは、ドライバ5
16を経由してBバンク514のデータ・ボート518
にも送られる。データは、そこからCアドレス112に
よって指定される位置に記憶される。
1命令サイクルの間の2回の読取りと1回の書込みから
なるアドレス操作では、命令サイクルの前半で読取りが
行われ、後半で書込みが行われる。
を  する  − 表5では、複数ボートメモリ106を除き、第1図に示
される浮動小数点プロセッサのモジュールを実現する部
品であって、広く手に入るものが掲載されている。表6
では、第5図に示される3ボ一トRAMのモジュールを
実現する部品が示されている。
粘」L 以上、開示したものは、3アドレス・コード操作を効率
よく行うのに適用される。浮動小数点プロセッサのため
の強力なアーキテクチャである。
実施例とその応用例は、説明用に選ばれたものである。
もちろん1本発明の要旨を逸脱しない範囲で、種々の変
形が可能であることは言うまでもな11゜ 部用   しく  普  畳  費   畳  優  
 費  ンく 8に1  − − − −   〇  
〇   〇  〇  〇  〇″   司 − ス 、δ 0?   国  の   ぐ  ■   Q  ミ  
ω  ■需4  1B   +、>i   +、t!o
  OO。
処 Al  o  o  o  。
Φ1 o  o  o  。
sl、−1+   −− Q    −4N        13asl  F−
1+   −、−+          (川ooo 
o 、+ :、1 X      K                 
XX      バ                
 kバ                      
 k−S   +V   −で1 O間 ℃                   1 
 1<−− Q(’J  t”−Nの   リ =1 の 寸       +@  0 0  の0  .0 Q         O、−I   LI’)   O
の  −リー        −処  Oの  へ  
、 ■     −^  ぐ  トー!   ぐ 葦 さ ■ φ さ ぐ 遅  の  −  Σ  の  へ ′  −二  −民  − ■ 0  へ       − 、−− さ   、、c。
O−ぐ  〇  − 、−1、−1−−1の 、LL1′)   の  +   。
1  訃  、  、 ■ 菫へのり一 嚇  Δ  −Ω  − ベトの一゛( Δ蚕へL驚 ′L全八へ1い ト? +/噛ヱ E0発明の効果 本発明によれば、3アドレス式コンピュータにおけるア
ドレス指定能力が飛躇的に高まり、ベクトルに対する操
作がアドレスの非自明の更新を伴う場合でも、速いベク
トル・モードで行うことが可能になる。
【図面の簡単な説明】
第1A、IBおよびIC図は、−緒になって本発明の説
明図を構成する図、 第1D図は第1A乃至第1C図の並べ方を説明する図、 第2A、2B図は1本発明の一面が教える基底アドレス
指定によりもたらされるフレキシビリティを示す図、 第3図は、1応用例として、本発明によるベクトル・ア
ドレスの非自明の更新を示す図、第4A、4B図は、本
発明により効率よく行われる集合および分散操作をそれ
ぞれ示す図。 第5図は、本発明と用いられる3ボート・メモリの説明
図である。 孕( ×Q 令 +40 .Φ+146    才IC圀 ンΔ 一2 第3 回 Fメ七す 条含琢作 X(N−11矛4A図 第4日図     X(N−1) 才5回

Claims (2)

    【特許請求の範囲】
  1. (1)連続するサイクルにおいて、命令ワードに応答し
    、rビットのアドレスによつてアドレス指定可能なデー
    タ・オブジェクトを記憶するメモリのために、アドレス
    を発生させるための装置であつて、該メモリが、少なく
    とも、第1のrビット・アドレス・レジスタと関連する
    出力レジスタ、第2のrビット・アドレス・レジスタと
    関連する出力レジスタおよび第3のrビット・アドレス
    ・レジスタと関連する入力レジスタを有するものであり
    、 第1のrット・アドレス・レジスタにアドレスとして与
    えるための、変更可能な第1の指標を記憶する第1の指
    標レジスタと、 第2のrビット・アドレス・レジスタにアドレスとして
    与えるための、変更可能な第2の指標を記憶する第2の
    指標レジスタと、 第3のrビット・アドレス・レジスタにアドレスとして
    与えるための、変更可能な第3の指標を記憶する第3の
    指標レジスタと、 1サイクルにおいて、命令ワードの少なくとも一部に応
    答し、該サイクルの間に、独立して、第1、第2および
    第3の指標レジスタの第1、第2および第3の指標をそ
    れぞれ増加させるカウンタ手段と、 1サイクルにおいて、命令ワードの少なくとも一部に応
    答し、該サイクルの間に、独立して、第1、第2および
    第3の指標の少なくとも1つを更新するために、第1、
    第2および第3の指標レジスタの少なくとも1つに任意
    の指標を与える手段と から成ることを特徴とする3アドレス・コードの指標づ
    け装置。
  2. (2)連続するサイクルにおいて、命令ワードに応答し
    、rビットのアドレスによつてアドレス指定可能なデー
    タ・オブジェクトを記憶するメモリのために、アドレス
    を発生させる装置であつて、該メモリが、少なくとも第
    1のrビット・アドレス・レジスタと関連する出力レジ
    スタ、第2のrビット・アドレス・レジスタと関連する
    出力レジスタおよび第3のrビット・アドレス・レジス
    タと関連する入力レジスタを有するものであり、 第1のrビット・アドレス・レジスタにアドレスとして
    与えるための、変更可能な第1の指標を記憶する第1の
    指標レジスタと、 第2のrビット・アドレス・レジスタにアドレスとして
    与えるための、変更可能な第2の指標を記憶する第2の
    指標レジスタと、 第3のrビット・アドレス・レジスタにアドレスとして
    与えるための、変更可能な第3の指標を記憶する第3の
    指標レジスタと、 1サイクルにおいて、命令ワードの少なくとも一部に応
    答し、該サイクルの間に、独立して、第1、第2および
    第3の指標レジスタの第1、第2および第3の指標をそ
    れぞれ増加させるカウンタ手段と、 第1、第2および第3の指標レジスタの少なくとも1つ
    と通信して、1サイクルにおいて、それぞれの指標の上
    位のm(rより小さい)ビットを命令ワードからのmビ
    ットと組み合わせ、該サイクルの間に、それぞれのrビ
    ット・アドレス・レジスタに与えるためのアドレスを発
    生させる手段と から成ることを特徴とする3アドレス・コードの指標づ
    け装置。
JP25710986A 1985-12-02 1986-10-30 3アドレス・コ−ドの指標づけ装置 Granted JPS62134763A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US80420685A 1985-12-02 1985-12-02
US804206 1985-12-02

Publications (2)

Publication Number Publication Date
JPS62134763A true JPS62134763A (ja) 1987-06-17
JPH0477346B2 JPH0477346B2 (ja) 1992-12-08

Family

ID=25188425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25710986A Granted JPS62134763A (ja) 1985-12-02 1986-10-30 3アドレス・コ−ドの指標づけ装置

Country Status (3)

Country Link
EP (1) EP0227900B1 (ja)
JP (1) JPS62134763A (ja)
DE (1) DE3688186D1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6429932A (en) * 1987-07-27 1989-01-31 Mitsubishi Electric Corp Address control system for signal processing
JPH01151648A (ja) * 1987-12-04 1989-06-14 Naka Ind Ltd フロアパネルの支持装置
JPH01156825A (ja) * 1987-12-15 1989-06-20 Mitsubishi Electric Corp 信号処理用アドレス生成方式

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0580109B1 (en) * 1992-07-23 1997-12-10 Rockwell International Corporation Data acces in a RISC digital signal processor
WO1997031310A1 (en) * 1996-02-23 1997-08-28 Advanced Micro Devices, Inc. A microprocessor configured to execute instructions which specify increment of a source operand
GB2352065B (en) 1999-07-14 2004-03-03 Element 14 Ltd A memory access system
WO2001090888A1 (en) * 2000-05-23 2001-11-29 Theis Jean Paul A data processing system having an address generation unit with hardwired multidimensional memory indexing support
ATE498158T1 (de) 2000-11-06 2011-02-15 Broadcom Corp Umkonfigurierbares verarbeitungssystem und - verfahren
JP3659252B2 (ja) 2003-03-28 2005-06-15 セイコーエプソン株式会社 ベクトルデータのアドレス参照方法およびベクトルプロセッサ
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH077385B2 (ja) * 1983-12-23 1995-01-30 株式会社日立製作所 データ処理装置
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
EP0731108A1 (en) * 1995-03-10 1996-09-11 Boehringer Mannheim Gmbh Method of manufacturing a therapeutic agent for the regeneration of oligodendrocytes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6429932A (en) * 1987-07-27 1989-01-31 Mitsubishi Electric Corp Address control system for signal processing
JPH01151648A (ja) * 1987-12-04 1989-06-14 Naka Ind Ltd フロアパネルの支持装置
JPH0645962B2 (ja) * 1987-12-04 1994-06-15 ナカ工業株式会社 フロアパネルの支持装置
JPH01156825A (ja) * 1987-12-15 1989-06-20 Mitsubishi Electric Corp 信号処理用アドレス生成方式

Also Published As

Publication number Publication date
DE3688186D1 (de) 1993-05-06
EP0227900B1 (en) 1993-03-31
JPH0477346B2 (ja) 1992-12-08
EP0227900A2 (en) 1987-07-08
EP0227900A3 (en) 1989-08-16

Similar Documents

Publication Publication Date Title
JP3889069B2 (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
US4399507A (en) Instruction address stack in the data memory of an instruction-pipelined processor
EP1019805B1 (en) Data processing unit with digital signal processing capabilities
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
JPH07152733A (ja) ベクトル・データを処理するコンピュータ・システムおよび方法
JPH02300983A (ja) 中央処理装置における高速演算処理の方法
JPH0374434B2 (ja)
JPH0371337A (ja) マイクロプロセツサ回路
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US5854939A (en) Eight-bit microcontroller having a risc architecture
EP2302510B1 (en) A processor and method performed by a processor for executing a matrix multipy operation using a wide operand
JPS62134763A (ja) 3アドレス・コ−ドの指標づけ装置
US4611278A (en) Wraparound buffer for repetitive decimal numeric operations
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
US4598359A (en) Apparatus for forward or reverse reading of multiple variable length operands
US4608633A (en) Method for decreasing execution time of numeric instructions
US4575795A (en) Apparatus for detecting a predetermined character of a data string
US8332447B2 (en) Systems and methods for performing fixed-point fractional multiplication operations in a SIMD processor
US20050139647A1 (en) Method and apparatus for performing bit-aligned permute
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리