JP2004355597A - ベクトルデータのアドレス参照方法およびベクトルプロセッサ - Google Patents

ベクトルデータのアドレス参照方法およびベクトルプロセッサ Download PDF

Info

Publication number
JP2004355597A
JP2004355597A JP2003203856A JP2003203856A JP2004355597A JP 2004355597 A JP2004355597 A JP 2004355597A JP 2003203856 A JP2003203856 A JP 2003203856A JP 2003203856 A JP2003203856 A JP 2003203856A JP 2004355597 A JP2004355597 A JP 2004355597A
Authority
JP
Japan
Prior art keywords
register
address
index
vector
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003203856A
Other languages
English (en)
Other versions
JP3659252B2 (ja
Inventor
Masaichi Isomura
政一 礒村
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003203856A priority Critical patent/JP3659252B2/ja
Priority to KR10-2004-0011855A priority patent/KR100539112B1/ko
Priority to US10/801,642 priority patent/US7093103B2/en
Priority to DE602004008818T priority patent/DE602004008818T2/de
Priority to EP04007009A priority patent/EP1462931B1/en
Publication of JP2004355597A publication Critical patent/JP2004355597A/ja
Application granted granted Critical
Publication of JP3659252B2 publication Critical patent/JP3659252B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D5/00Power-assisted or power-driven steering
    • B62D5/06Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle
    • B62D5/08Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle characterised by type of steering valve used
    • B62D5/087Sliding spool valves
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D5/00Power-assisted or power-driven steering
    • B62D5/06Power-assisted or power-driven steering fluid, i.e. using a pressurised fluid for most or all the force required for steering a vehicle
    • B62D5/07Supply of pressurised fluid for steering also supplying other consumers ; control thereof
    • B62D5/075Supply of pressurised fluid for steering also supplying other consumers ; control thereof using priority valves
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2304/00Optimising design; Manufacturing; Testing
    • B60Y2304/05Reducing production costs, e.g. by redesign
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2304/00Optimising design; Manufacturing; Testing
    • B60Y2304/07Facilitating assembling or mounting
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2400/00Special features of vehicle units
    • B60Y2400/40Actuators for moving a controlled member
    • B60Y2400/404Electro-magnetic actuators, e.g. with an electromagnet not rotating for moving a clutching member
    • B60Y2400/4045Electro-magnetic valves, i.e. solenoids
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2410/00Constructional features of vehicle sub-units
    • B60Y2410/10Housings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Transportation (AREA)
  • Combustion & Propulsion (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

【課題】間接指標ベクトル参照をより効率的に行うこと。
【解決手段】インデックスによって指定されたベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割し、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。したがって、1つのベクトルレジスタに、実質的に複数のインデックスベクトルを格納できることとなり、ベクトルレジスタを効率的に使用することが可能となる。また、インデックスベクトルを用意する手順としては、1つのインデックスベクトルの場合と同様であるため、プログラムのコードサイズや処理サイクルがほぼ増加することがない。即ち、本発明によれば、間接指標ベクトル参照をより効率的に行うことが可能となる。
【選択図】 図2

Description

【0001】
【発明の属する技術分野】
本発明は、ベクトルデータの読み出しあるいは書き込みにおけるアドレス参照方法およびベクトルプロセッサに関する。
【0002】
【従来の技術】
従来、画像処理等において、不規則にメモリ上のデータの読み出しあるいは書き込むことが行われており、そのような処理を効率的に行うべく、種々の方法が提案されている。
例えば、画像処理において、1枚の画像データの中で、特定のブロックのデータをメモリからレジスタに格納する場合、ブロックの一行分の画素データをレジスタに格納した後、ブロックの次行の画素データを読み込むために、メモリ上の所定長離れたアドレスが参照される。
【0003】
このように、複雑なアドレス参照を行うための方法として、参考文献「スーパーコンピュータ」(オーム社、長島重夫、田中義一著)に記載された技術が知られている。
本文献においては、多次元配列データをメモリからベクトルレジスタに読み込んだり、ベクトルレジスタからメモリに書き込んだりする場合に、間接指標ベクトル参照を用いる技術が開示されている。
【0004】
間接指標ベクトル参照とは、メモリ上の参照するアドレス順序を格納したリスト(指標ベクトル)を用意しておき、そのリストを順に参照することによって、間接的にメモリ上の所定のアドレスを参照する方式である。
このような間接指標ベクトル参照を用いることにより、メモリ上の複雑なアドレス参照を行うことが可能となる。
【0005】
【非特許文献1】
長島重夫、田中義一著「スーパーコンピュータ」オーム社、p.35−41
【0006】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、指標ベクトルをベクトルレジスタに格納しておく必要があるため、以下のような問題が生じていた。
第1に、指標ベクトルを用意しておく手順が必要となるため、プログラムのコードサイズや処理サイクル数が増加してしまう。
【0007】
第2に、用意しておく指標ベクトルが増加すると、指標ベクトルを格納しておくベクトルレジスタも増加することから、本来の演算処理に用いるレジスタリソースが不足し、演算効率の低下を招いてしまう。
本発明の課題は、間接指標ベクトル参照をより効率的に行うことである。
【0008】
【課題を解決するための手段】
以上の課題を解決するため、本発明は、
指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うアドレス参照方法であって、指標ベクトルの要素を格納する要素格納用レジスタ(例えば、図4のレジスタファイル40におけるインデックスベクトルを格納しているレジスタ)を複数領域(例えば、上位および下位の領域)に分割し、各領域に所定のコードを格納し、前記指標ベクトルの要素格納用レジスタそれぞれの所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能とすることを特徴としている。
【0009】
例えば、発明の実施の形態における命令コード内の“エクステンション”によって、インデックスレジスタにおいて分割されたいずれかの領域を選択する。そして、選択された領域のコードによって、指標ベクトル(インデックスベクトル)の要素が決定され、所定のメモリアドレスを指定する指標ベクトルが生成される。
【0010】
また、前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレス(例えば、ベースアドレス)に対する相対アドレスを示すコードを格納し、前記要素格納用レジスタそれぞれの分割された領域のうち、選択された領域のコード(例えば、上位16ビットあるいは下位16ビット等)と、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレス(メモリ上の参照アドレス)を算出することを特徴としている。
【0011】
この方法は、発明の実施の形態におけるインデックス修飾アドレッシングに関連する。
また、要素格納用レジスタにおける分割された領域のいずれを選択するかは、命令コード中で指定したり、選択する領域を指定する指定パターンをレジスタ等に記憶しておき、記憶された指定パターンを入力して領域を指定するといったことが可能である。
【0012】
また、前記指標ベクトルをベクトルレジスタに格納し、該ベクトルレジスタの各要素レジスタを分割した各領域に、前記相対アドレスを示すコードを格納することを特徴としている。
また、前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示すコードを格納し、前記要素格納用レジスタそれぞれの分割された領域のうち、選択された領域のコードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出し、算出されたターゲットアドレスを新たな参照基準アドレスとすることを特徴としている。
【0013】
この方法は、発明の実施の形態におけるポスト・レジスタ・アップデート・アドレッシングに関連する。
また、前記相対アドレスを示すコードを前記要素格納用レジスタとしてのスカラーレジスタに格納し、該スカラーレジスタを分割した各領域に、前記相対アドレスを示すコードを格納することを特徴としている。
【0014】
また、前記ベクトルデータの読み出しあるいは書き込みに関するベクトル命令の実行中に、前記分割された各領域のうち、選択する領域を動的に変化させることを特徴としている。
また、前記要素格納用レジスタの前記分割された各領域のうち、選択する領域を指定するための指定パターンを所定のレジスタに格納し、該指定パターンに基づいて前記分割された領域を指定することにより、所定の指標ベクトルを生成することを特徴としている。
【0015】
また、第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」)と、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタ(例えば、図9のサブインデックスレジスタ141,142)とを用意し、第1および第2のレジスタそれぞれにおける所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能とすることを特徴としている。
【0016】
また、本発明は、
指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うベクトルプロセッサであって、指標ベクトルの要素を格納する要素格納用レジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」の要素レジスタ)を備え、該要素格納用レジスタは、複数領域に分割されて各領域に所定のコードが格納され、該要素格納用レジスタそれぞれの所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能であることを特徴としている。
【0017】
また、第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタ(例えば、発明の実施の形態中の「インデックスレジスタ」)と、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタ(例えば、図9のサブインデックスレジスタ141,142)とを備え、第1および第2のレジスタそれぞれにおける所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能であることを特徴としている。
【0018】
ここで、第1のレジスタおよび第2のレジスタの要素格納用レジスタにおける分割された領域のいずれを選択するかは、命令コード中で指定したり、選択する領域を指定する指定パターンをレジスタ等に記憶しておき、記憶された指定パターンを入力して領域を指定するといったことが可能である。
本発明によれば、ベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割して、それぞれの領域に指標ベクトルの要素となる所定のコードを格納する。そして、分割した領域のいずれかを選択し、その領域に格納されたコードを用いて、所定の指標ベクトルを取得することとしている。
【0019】
したがって、1つの指標ベクトルを格納するレジスタの領域に、実質的に複数のインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
【0020】
【発明の実施の形態】
以下、図を参照して本発明に係るベクトルプロセッサの実施の形態を説明する。
(第1の実施の形態)
本発明に係るベクトルプロセッサは、指標ベクトルを格納するベクトルレジスタあるいはスカラーレジスタにおいて、ベクトルレジスタの要素レジスタあるいはスカラーレジスタを分割して使用し、アドレッシング機能を拡張している。
【0021】
したがって、初めに、このような機能を実現するための基本となる考え方について説明する。なお、本発明は、ベクトルプロセッサにおけるロード命令およびストア命令に関するものであるため、これらを中心に説明する。
ベクトルプロセッサにおいて、ロード命令あるいはストア命令のコードタイプには、アドレッシングモード(アドレス参照の方法)に応じて、以下の3種類が規定されている。
【0022】
図1は、ロード命令あるいはストア命令のフォーマットを示す図であり、(a)は、ベース相対アドレッシングに対応するLS0タイプ、(b)は、ポスト・オフセット・アップデート・アドレッシングに対応するLS1タイプ、(c)は、インデックス修飾アドレッシングおよびポスト・レジスタ・アップデート・アドレッシングに対応するLS2タイプを示している。
【0023】
図1において、LS0タイプはスカラーデータのロード命令およびストア命令に対応しており、LS1タイプおよびLS2タイプは、スカラーデータおよびベクトルデータのロード命令およびストア命令に対応している。
本発明は、ベクトルデータのロード命令およびストア命令を取り扱うものであり、インデックス修飾アドレッシングおよびポスト・レジスタ・アップデート・アドレッシングに関するものであるため、LS2タイプについて説明する。
【0024】
図1(c)において、LS2タイプのフォーマットには、オペコード(opecode)、デスティネーション(dst)、ベース(base)、リピートアマウント(rptamt)、エクステンション(extension)、インデックス(index)の6つのフィールドが含まれている。
オペコードは、命令の内容を示すフィールドであり、ロード命令あるいはストア命令のいずれかを示すコードが含まれている。
【0025】
デスティネーションは、ロードあるいはストアの対象となるデータが格納されたレジスタのアドレスを指定するフィールドである。即ち、ロード命令の場合、メモリから読み出したデータを書き込むレジスタのアドレスであり、ストア命令の場合、メモリに書き込むデータを読み出すレジスタのアドレスである。
ベースは、基準となるメモリアドレスが格納されたレジスタのアドレスを指定するフィールドである。
【0026】
リピートアマウントは、ベクトル命令における命令の繰り返し回数(要素データ数)を示すフィールドであり、命令繰り返し回数が“1”である場合はスカラー命令、“1”以外である場合はベクトル命令となる。
エクステンションは、機能拡張用に用意された5ビットのフィールドであり、本発明においては、後述のように、エクステンションを利用して、分割した要素レジスタのアドレスを指定する。
【0027】
インデックスは、ベースに示されたアドレスに対し、どのような修飾を施すか、即ち、ベースに示されたアドレスから参照するアドレス順序を示すフィールドである。本発明においては、後述のように、インデックスを利用して、アドレス修飾の拡張仕様を規定する。
なお、インデックスは、上述の指標ベクトルが格納されたベクトルレジスタあるいはスカラーレジスタ(以下、指標ベクトルが格納されたレジスタを「インデックスレジスタ」と言う。)を指定しており、インデックスを参照することによって、間接指標ベクトル参照が行われる。
【0028】
続いて、本発明におけるアドレス修飾の拡張仕様について具体的に説明する。
図2は、インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。なお、図2においては、アドレス修飾の拡張仕様を説明するため、C言語に準じた記述スタイルのプログラミング例を併せて示しており、後述の図3においても同様である。
【0029】
図2において、エクステンションが“000”である場合、インデックスとして指定されたレジスタ(インデックスレジスタ)の内容(指標ベクトル)を符号付きで解釈し、アドレス修飾を行う。
具体的には、ベースに示されたレジスタの値を常に基準とし、その値にインデックスに示されるアドレスを順次加算することにより、アドレス修飾を行う。
【0030】
また、エクステンションが“001”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレス修飾を行う。
また、エクステンションが“010”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレス修飾を行う。
さらに、エクステンションが“011”である場合、インデックスとして指定されたレジスタの下位16ビットおよび上位16ビットをそれぞれ符号付きで解釈し、交互にアドレス修飾を行う。具体的には、ベクトル命令における繰り返しの実行順序が偶数である場合、下位16ビットによってアドレス修飾を行い、奇数である場合、上位16ビットによってアドレス修飾を行う。
【0031】
次に、ポスト・レジスタ・アップデート・アドレッシングの拡張仕様について説明する。
図3は、ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【0032】
図3において、エクステンションが“000”である場合、インデックスとして指定されたレジスタの内容を符号付きで解釈し、アドレスの更新を行う。
具体的には、ベースに指定されたレジスタの値を所定のレジスタ(図3中のパラメータTの値を格納するレジスタ)に一旦格納し、そのレジスタの値を更新しながらアドレス修飾を行う。
【0033】
また、エクステンションが“001”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレスの更新を行う。
また、エクステンションが“010”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレスの更新を行う。
さらに、エクステンションが“011”である場合、インデックスとして指定されたレジスタの下位16ビットおよび上位16ビットをそれぞれ符号付きで解釈し、交互にアドレスの更新を行う。
【0034】
ここで、エクステンションが“000”〜“011”までの場合、ベクトル命令における命令の繰り返し回数の間、インデックスとして指定された内容に応じてアドレス修飾が行われ、繰り返し回数が終了した後、ベースに指定されたレジスタの値が更新される。
したがって、複数のロード命令あるいはストア命令を用いて、繰り返しロードあるいはストアを行う場合、ベースに指定されたレジスタが自動的に更新されるので、命令発行の都度、ベースのアドレスを別の命令で更新する必要がなく、直ちに命令の実行を行うことが可能である。
【0035】
また、図3において、エクステンションが“100”〜“111”の場合、エクステンションが“000”〜“011”の場合とそれぞれ同様にアドレスの更新を行う。ただし、エクステンションが“100”〜“111”の場合、命令の繰り返し回数が終了した後、ベースに指定されたレジスタの値を更新することなく命令の実行を終了する。
【0036】
次に、本実施の形態に係るベクトルプロセッサの構成を説明する。
図4は、本実施の形態に係るベクトルプロセッサ1の構成を示す図である。
図4において、ベクトルプロセッサ1は、メモリ10と、メモリ制御部20と、命令フェッチ部30と、レジスタファイル40と、ロードユニット50と、ストアユニット60と、演算ユニット70とを含んで構成される。
【0037】
メモリ10は、ベクトルプロセッサ1に与えられる命令コードおよび演算対象となるデータを記憶している。
メモリ制御部20は、メモリ10に対するアクセス、即ち、データの読み出しや書き込みを制御する。例えば、メモリ制御部20は、ロードユニット50あるいはストアユニット60によって指定されたメモリ10のアドレスからデータを読み出したり、メモリ10から読み出されたデータをレジスタファイル40に出力したりする。
【0038】
命令フェッチ部30は、メモリ制御部20を介して、メモリ10から命令コードをフェッチし、一時的に記憶する。
レジスタファイル40は、32個のスカラーレジスタSR0〜SR31と、8個の要素レジスタからなる8個のベクトルレジスタVR0〜VR7とを含んで構成され、メモリ10から読み出されたデータおよび演算結果を一時的に記憶する。なお、以下の説明において、ベクトルレジスタの要素レジスタおよびスカラーレジスタは、32ビットの幅を持つものとして説明する。
【0039】
ロードユニット50は、命令フェッチ部30に記憶された命令コードがロード命令である場合に、メモリ10から命令コードあるいはデータを読み出す処理を行う。
ストアユニット60は、命令フェッチ部30に記憶された命令コードがストア命令である場合に、メモリ10にデータを書き込む処理を行う。
【0040】
演算ユニット70は、命令フェッチ部30に記憶された命令コードが所定の演算命令である場合に、レジスタファイル40に記憶された所定データを対象として演算処理を行う。
ここで、ロードユニット50の構成について、詳細に説明する。
図5は、ロードユニット50の内部構成を示すブロック図である。
【0041】
図5において、ロードユニット50は、命令パイプライン制御部51と、インデックスレジスタ決定回路52と、デスティネーションレジスタ決定回路53と、アドレス演算回路54と、パイプラインレジスタ(PR)55,56と、レジスタ57とを含んで構成される。
命令パイプライン制御部51は、ロードユニット50全体を制御するものである。
【0042】
インデックスレジスタ決定回路52は、命令コードのインデックスフィールドに基づいて、指標ベクトルが格納されたインデックスレジスタを選択する信号(インデックスレジスタ選択信号)を生成する。
なお、インデックス修飾アドレッシングの場合、基準として指定されたアドレス(ベースアドレス)を保持し、そのアドレスに対する各要素の相対アドレスを指定することで参照アドレスを生成する。即ち、インデックス修飾アドレッシングの場合、要素ごとに相対アドレスを指定するため、インデックスレジスタとしてベクトルレジスタが指定される。
【0043】
一方、ポスト・レジスタ・アップデート・アドレッシングの場合、基準として指定されたアドレス(ベースアドレス)を参照アドレスとすると共に、そのアドレスに対する相対アドレスを指定してベースアドレスが更新される。そして、その更新されたベースアドレスに対する、次の要素の相対アドレスを指定することを繰り返して、参照アドレスを生成する。そのため、ポスト・レジスタ・アップデート・アドレッシングの場合、インデックスレジスタとしてスカラーレジスタとベクトルレジスタの双方が指定可能である。
【0044】
デスティネーションレジスタ決定回路53は、命令コードのデスティネーションフィールドおよびリピートアマウントフィールドに基づいて、デスティネーションアドレスを格納するためのデスティネーションレジスタを選択する信号(デスティネーションレジスタ選択信号)を生成する。
アドレス演算回路54は、命令パイプライン制御部51の指示に基づいて、レジスタファイル40から入力されるベースアドレスおよびインデックスアドレス(インデックスによって指定されるアドレス)から、ロード命令の対象となるメモリ10上のアドレス(ロードアドレス)を算出する。
【0045】
PR55,56は、命令フェッチ部30から入力されるデスティネーションフィールドおよびリピートアマウントフィールドのコードを一時的に記憶し、パイプライン処理において1サイクル遅延させて、デスティネーションレジスタ決定回路53に出力する。
レジスタ57は、命令フェッチ部30から入力されるベースフィールドのコードを一時的に記憶する。
【0046】
ここで、図5におけるアドレス演算回路54の構成について説明する。
図6は、アドレス演算回路54の構成例を示す図である。
図6において、アドレス演算回路54は、Iレジスタ54aと、Tレジスタ54bと、マルチプレクサ(MUX)54c〜54eと、加算器54fとを含んで構成される。
【0047】
Iレジスタ54aは、レジスタファイル40から入力されるインデックスアドレスを一時的に記憶する。
Tレジスタ54bは、MUX54cを介してレジスタファイル40から入力されるベースアドレスを一時的に記憶する。
MUX54cは、レジスタファイル40から入力されるベースアドレスと加算器54fの出力であるアップデート・ベースアドレスとのいずれかを切り替えて、Tレジスタ54bに出力する。
【0048】
MUX54dは、Iレジスタ54aから入力されるインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択して加算器54fに出力する。
MUX54eは、Tレジスタ54bから入力されるベースアドレスと加算器54fの出力であるアップデート・ベースアドレスとのいずれかを切り替えて、ベクトル命令の各繰り返しにおいて、ロード命令を実行するターゲットアドレスとして出力する。
【0049】
加算器54fは、Tレジスタ54bから入力されるベースアドレスの値と、MUX54dから入力されるインデックスアドレスの上位あるいは下位のデータに基づくアドレスとを加算し、アップデート・ベースアドレス(更新されたベースアドレスの値)として出力する。
なお、図6において、MUX54c〜54eは命令パイプライン制御部51によって制御される。即ち、MUX54c〜54eには、入力されるデータのいずれかを選択するための信号(選択指示信号)が命令パイプライン制御部51から入力される。
【0050】
また、アドレス演算回路54は、インデックス修飾アドレッシングの場合およびポスト・アップデート・アドレッシングの場合それぞれに対応して、所定の動作を行う。
次に、動作を説明する。
初めに、図4を参照して、ベクトルプロセッサ1全体の動作について説明する。
【0051】
ベクトルプロセッサ1において処理が行われる場合、メモリ制御部20を介してメモリ10から命令フェッチ部30に命令コードが読み出される。
そして、ロードユニット50、ストアユニット60および演算ユニット70のそれぞれに、命令フェッチ部30から命令コードが出力される。
命令コードが入力されたロードユニット50、ストアユニット60および演算ユニット70は、その命令コードをデコードし、それぞれのユニットに対応する命令である場合にのみ、命令を実行する。
【0052】
ここでは、図5を参照しつつ、命令コードがロード命令である場合について説明する。
命令コードのオペコードがロード命令を示している場合(より詳細にはprefixコードが“000”である場合)、ロードユニット50が動作する。
まず、ロードユニット50は、命令フェッチ部30から受け取ったベースフィールドのコードを、ベースレジスタ・リード選択信号(データの読み出し時にベースレジスタを選択する信号)としてレジスタファイル40に出力する。ベースレジスタ・リード選択信号は、レジスタファイル40内のスカラーレジスタSR0〜SR31のいずれかをベースレジスタとして選択するための信号である。
【0053】
そして、ベースレジスタ・リード選択信号を受け取ったレジスタファイル40から、ベースレジスタ・リード選択信号によって指定されたレジスタに記憶されたベースアドレスの値がロードユニット50に入力される。
レジスタファイル40から入力されたベースアドレスの値は、アドレス演算回路54に入力される。
【0054】
また、インデックスレジスタ決定回路52は、命令フェッチ部30から入力されたインデックスフィールドのコードおよびリピートアマウントフィールドのコードを受け取る。そして、インデックスレジスタ決定回路52は、命令パイプライン制御部51からの指示に従って、命令コードがベクトル命令であるかスカラー命令であるかを判定し、ベクトル命令である場合、インデックスレジスタ選択信号を、リピートアマウントに示される要素データ数分、レジスタファイル40に順次出力する。このとき、インデックスレジスタ選択信号によって指定されたレジスタがベクトルレジスタである場合、指定されたベクトルレジスタ内の各要素レジスタを特定するための所定の選択信号が出力される。
【0055】
インデックスレジスタ選択信号が入力されたレジスタファイル40からは、インデックスレジスタ選択信号に示されるレジスタから、インデックスアドレスの値が、アドレス演算回路54に順次入力される。
インデックスアドレスの値を受け取ったアドレス演算回路54は、ベースアドレスの値と、インデックスアドレスの値とからロードアドレスを算出し、メモリ制御部20に出力する。なお、アドレス演算回路54の動作については後述する。
【0056】
また、命令フェッチ部30から入力されたデスティネーションフィールドのコードおよびリピートアマウントフィールドのコードは、パイプライン処理におけるタイミングを合わせるべく、PR55,56に一旦記憶された後、デスティネーションレジスタ決定回路53に入力される。
すると、デスティネーションレジスタ決定回路53は、デスティネーションレジスタ選択信号を、メモリ10からロードされたデータと同期させてレジスタファイル40に出力する。
【0057】
そして、レジスタファイル40において、メモリ10からロードされたデータが、所定のデスティネーションレジスタに順次記憶される。
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、アドレス演算回路54によって出力されるアップデート・ベースアドレスをベースレジスタに書き込む。
【0058】
したがって、ベースフィールドのコードをレジスタ57に保持しておき、レジスタ57によって出力されるコードをベースレジスタ・ライト選択信号(データの書き込み時にベースレジスタを選択する信号)として用い、ベースレジスタ・ライト信号(ベースレジスタに対する書き込み指示信号)が入力されることに対応して、ベースレジスタのデータが更新される。
【0059】
次に、アドレス演算回路54の動作について説明する。
まず、インデックス修飾アドレッシングの場合について説明する。
インデックス修飾アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX54cを介してTレジスタ54bに格納される。
一方、インデックスアドレスの値は、Iレジスタ54aに格納される。
【0060】
次いで、サイクル“2”において、Tレジスタ54bのベースアドレスの値と、Iレジスタ54aの上位あるいは下位半分のいずれかのアドレスの値とが、加算器54fによって加算され、MUX54eを介してターゲットアドレス(ロードアドレス)として出力される。
そして、第3サイクル以後は、ベースアドレスの値がTレジスタ54bに保持された状態のまま、新たにインデックスアドレスが入力され、加算器54fによって、ベースアドレスとの加算が順次行われる。
【0061】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部51が、MUX54dを制御することにより、図2に示すインデックス修飾アドレッシングの拡張仕様が実現される。
即ち、エクステンションが“000”である場合、Iレジスタ54aに格納されたデータ(ここでは32ビット)が、そのまま加算器54fに入力される。
【0062】
一方、エクステンションが“001”である場合、Iレジスタ54aの下位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
また、エクステンションが“010”である場合、Iレジスタ54aの上位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
【0063】
さらに、エクステンションが“011”である場合、1サイクル毎に、Iレジスタ54aの下位16ビットと上位16ビットとを交互に選択し、32ビットに符号拡張されたデータが加算器54fに入力される。
続いて、ポスト・レジスタ・アップデート・アドレッシングの場合について説明する。
【0064】
ポスト・レジスタ・アップデート・アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX54cを介してTレジスタ54bに格納される。
一方、インデックスアドレスの値は、Iレジスタ54aに格納される。
次いで、サイクル“2”において、Tレジスタ54bのベースアドレスの値が、MUX54eを介して、そのままターゲットアドレス(ロードアドレス)として出力される。
【0065】
また、同時に、Tレジスタ54bのベースアドレスの値は、加算器54fにも出力され、Iレジスタ54aに記憶されているインデックスアドレスの値と加算される。
次いで、加算器54fの加算結果は、MUX54cを介して、Tレジスタ54bに格納され、Tレジスタ54bがベースアドレスとして記憶する値が更新される。
【0066】
そして、第3サイクル以後は、新たにインデックスアドレスが入力され、サイクル“1”,“2”と同様に、Tレジスタ54bの出力をターゲットアドレスとして出力すると共に、Tレジスタ54bがベースアドレスとして記憶する値が更新される。
その後、実行されているロード命令の最後の要素データのターゲットアドレスを出力するのと同一のタイミングで、加算器54fの出力がアップデート・ベースアドレスとしてレジスタファイル40に出力される。
【0067】
レジスタファイル40では、ベースレジスタ・ライト信号によって指示されたタイミングで、同時に入力されるベースレジスタ・ライト選択信号によって指定されたレジスタにアップデート・ベースアドレスを記憶する。
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部51が、MUX54dを制御することにより、図3に示すポスト・レジスタ・アップデート・アドレッシングの拡張仕様が実現される。
【0068】
即ち、エクステンションが“000”である場合、Iレジスタ54aに格納されたデータ(ここでは32ビット)が、そのまま加算器54fに入力される。
一方、エクステンションが“001”である場合、Iレジスタ54aの下位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
【0069】
また、エクステンションが“010”である場合、Iレジスタ54aの上位16ビットを符号拡張し、32ビットとされたデータが加算器54fに入力される。
さらに、エクステンションが“011”である場合、1サイクル毎に、Iレジスタ54aの下位16ビットと上位16ビットとを交互に選択し、32ビットに符号拡張されたデータが加算器54fに入力される。
【0070】
また、エクステンションが“100”〜“111”までである場合、エクステンションが“000”〜“011”までの場合とそれぞれ同様の機能拡張を行うが、命令パイプライン制御部51がベースレジスタ・ライト信号を出力することなく、ベースレジスタの更新を行わないように制御する。
以上のように、本実施の形態に係るベクトルプロセッサ1は、インデックスによって指定されたベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割し、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
【0071】
したがって、1つのベクトルレジスタに、実質的に複数のインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
また、インデックスベクトルを用意する手順としては、1つのインデックスベクトル(指標ベクトル)の場合と同様であるため、プログラムのコードサイズや処理サイクルがほぼ増加することがない。
【0072】
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、インデックスレジスタとしてスカラーレジスタが指定され、そのレジスタを複数の領域に分割し、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
そのため、インデックスレジスタとしてベクトルレジスタを用いる場合、ベクトルレジスタ全てにデータを格納した後でなければ後段の処理を開始できないのに対し、スカラーレジスタを使用できることから、スカラーレジスタにデータを格納した後、直ちに後段の処理が開始できる。
【0073】
したがって、インデックスベクトル(指標ベクトル)を用意する手順が軽減され、プログラムのコードサイズや処理サイクル数を減少させることが可能となる。
即ち、本発明によれば、間接指標ベクトル参照をより効率的に行うことが可能となる。
【0074】
なお、本実施の形態においては、アドレッシングの機能拡張のために、レジスタを上位および下位の2つの領域に分割して使用することとして説明したが、3つ以上の領域に分けて使用することも可能である。
さらに、本実施の形態においては、命令コードに含まれるエクステンションによって、その命令全体における要素レジスタのアドレスを固定的に指定する(単一のレジスタを指定したり、2つのレジスタを交互に指定する等)こととして説明したが、命令実行中に、要素レジスタの指定パターンを動的に変化させることも可能である。即ち、エクステンションのデータ長には限りがあり、複雑なパターンを指定できないことから、複雑な指定パターンを入力可能な手段を備えることにより、エクステンションによって指定可能なパターンより複雑なパターンを指定することが可能である。また、命令実行中に、要素レジスタを指定するための異なる指定パターンを入力したりすることも可能である。
(第2の実施の形態)
本実施の形態に係るベクトルプロセッサは、第1の実施の形態に係るベクトルプロセッサにおいて、図2および図3に示すアドレス修飾の拡張仕様をさらに発展させた仕様となっている。
【0075】
具体的には、命令コードにアドレッシングの機能拡張のためのコードを含め、インデックスレジスタの分割した領域を多様に指定することに加え、アドレッシングの機能拡張のための指標ベクトルを記憶する2つのレジスタ(以下、「サブインデックスレジスタA,B」と言う。)を指定対象としてさらに設けている。そして、命令コードのエクステンションのうち4ビットを使用して、アドレス修飾の方法を指定することにより、多様なアドレス修飾を可能としている。
【0076】
したがって、初めに、本実施の形態に係るベクトルプロセッサの拡張仕様について具体的に説明する。
図7は、インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。なお、図7においては、アドレス修飾の拡張仕様を説明するため、C言語に準じた記述スタイルのプログラミング例を併せて示しており、後述の図8においても同様である。
【0077】
図7において、エクステンションが“0000”である場合、インデックスとして指定されたレジスタの内容(指標ベクトル)を符号付きで解釈し、アドレス修飾を行う。
具体的には、ベースに示されたレジスタの値を常に基準とし、その値にインデックスに示されるアドレスを順次加算することにより、アドレス修飾を行う。
【0078】
また、エクステンションが“0100”である場合、インデックスとして指定されたレジスタの下位16ビットを符号付きで解釈し、アドレス修飾を行う。
さらに、エクステンションが“0110”である場合、インデックスとして指定されたレジスタの上位16ビットを符号付きで解釈し、アドレス修飾を行う。
次に、ポスト・レジスタ・アップデート・アドレッシングの拡張仕様について説明する。
【0079】
図8は、ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
図8において、エクステンションが“0000”、“0100”、“0101”、“0110”および“0111”である場合、図3における“000”、“001”、“101”、“010”、“110”とそれぞれ同様にアドレスの更新を行う。
【0080】
また、エクステンションが“1100”である場合、インデックスとして指定されたインデックスレジスタおよびサブインデックスレジスタAにおいて、下位16ビットあるいは上位16ビットのうち所定のデータを符号付きで解釈し、アドレスの更新を行う。このとき、所定のレジスタ(以下、「インデックススイッチレジスタ」と言う。)に記憶された指定パターンに基づいて、インデックスレジスタおよびサブインデックスレジスタAの上位16ビットあるいは下位16ビットのいずれかが指定される。
【0081】
具体的には、ベースに指定されたレジスタの値を所定のレジスタ(図8中のパラメータTの値を格納するレジスタ)に一旦格納し、そのレジスタの値を更新しながらアドレス修飾を行う。
また、エクステンションが“1110”の場合、インデックスとして指定されたインデックスレジスタおよびサブインデックスレジスタBにおいて、下位16ビットあるいは上位16ビットのうち所定のデータを符号付きで解釈し、アドレスの更新を行う。このとき、インデックススイッチレジスタに記憶された指定パターン(後述の「レジスタスイッチングパターン」)に基づいて、インデックスレジスタおよびサブインデックスレジスタBの上位16ビットあるいは下位16ビットのいずれかが指定される。
【0082】
ここで、エクステンションが“1100”および“1110”の場合、ベクトル命令における命令の繰り返し回数の間、インデックスとして指定された内容に応じてアドレス修飾が行われ、繰り返し回数が終了した後、ベースに指定されたレジスタの値が更新される。
したがって、複数のロード命令あるいはストア命令を用いて、繰り返しロードあるいはストアを行う場合、ベースに指定されたレジスタが自動的に更新されるので、命令発行の都度、ベースのアドレスを別の命令で更新する必要がなく、直ちに命令の実行を行うことが可能である。
【0083】
また、図8において、エクステンションが“1101”および“1111”の場合、エクステンションが“1100”および“1110”の場合とそれぞれ同様にアドレスの更新を行う。ただし、エクステンションが“1101”および“1111”の場合、命令の繰り返し回数が終了した後、ベースに指定されたレジスタの値を更新することなく命令の実行を終了する。
【0084】
次に、本実施の形態に係るベクトルプロセッサの構成を説明する。
図9は、本実施の形態に係るベクトルプロセッサ2の構成を示す図である。
図9において、ベクトルプロセッサ2の構成は、レジスタファイル140にサブインデックスレジスタ141,142とインデックススイッチレジスタ143とが含まれることを除き、第1の実施の形態におけるベクトルプロセッサ1の構成と同様である。したがって、サブインデックスレジスタ141,142およびインデックススイッチレジスタ143についてのみ説明し、他の部分については、図4において対応する部分を参照することとする。
【0085】
サブインデックスレジスタ141,142は、レジスタファイル140に含まれるスカラーレジスタあるいはベクトルレジスタ(ここでは、スカラーレジスタSR30,31とする)によって構成される。そして、サブインデックスレジスタ141,142には、所定の指標ベクトルがそれぞれ格納されている。
インデックススイッチレジスタ143は、レジスタファイル140に含まれるスカラーレジスタ(ここでは、スカラーレジスタSR29とする)によって構成され、インデックスレジスタおよびサブインデックスレジスタ141,142に含まれるいずれのデータをインデックスアドレスとして選択するかを示すデータ(以下、「レジスタスイッチングパターン」と言う。)を記憶している。
【0086】
レジスタスイッチングパターンは、具体的には、サブインデックスレジスタ141,142のいずれか一方における上位16ビットおよび下位16ビットと、後述する図11のIレジスタにおける上位16ビットおよび下位16ビットとを含む4つの領域のうち、アドレス修飾を行う要素ごとに、1つの領域を選択するためのデータである。
【0087】
図10は、レジスタスイッチングパターンのデータ構成を示す図である。
図10において、レジスタスイッチングパターンの上位半分には、サブインデックスレジスタ141が選択された場合のスイッチングパターンが格納され、下位半分には、サブインデックスレジスタ142が選択された場合のスイッチングパターンが格納されている。
【0088】
次に、図11は、ロードユニット150の内部構成を示すブロック図である。
図11において、ロードユニット150の内部構成は、命令パイプライン制御部151およびアドレス演算回路154の機能を除き、第1の実施の形態におけるロードユニット50の内部構成と同様である。したがって、命令パイプライン制御部151およびアドレス演算回路154についてのみ説明し、他の部分については、図5において対応する部分の説明を参照することとする。
【0089】
命令パイプライン制御部151は、ロードユニット150全体を制御するものである。また、命令パイプライン制御部151は、命令コードに含まれるエクステンションフィールドのコードに応じて、サブインデックスレジスタ141,142のいずれかのサブインデックスアドレスをアドレス演算回路154(より詳細にはMUX154g)に選択させると共に、レジスタファイル140のインデックススイッチレジスタ143における上位あるいは下位半分のレジスタスイッチングパターンを後述するJレジスタ154hに記憶させる。
【0090】
アドレス演算回路154は、命令パイプライン制御部151の指示に基づいて、レジスタファイル140から入力される、ベースアドレスおよびインデックスアドレス(インデックスフィールドによって指定されたアドレス)と、サブインデックスレジスタ141,142に記憶されたアドレス(以下、「サブインデックスアドレス」と言う。)と、インデックススイッチレジスタ143に記憶されたレジスタスイッチングパターンとから、ロード命令の対象となるメモリ110上のアドレス(ロードアドレス)を算出する。
【0091】
続いて、図11におけるアドレス演算回路154の構成について説明する。
図12は、アドレス演算回路154の構成例を示す図である。
図12において、アドレス演算回路154の構成は、マルチプレクサ(MUX)154d,154gと、Jレジスタ154hと、シフタ154iとを除き、第1の実施の形態におけるアドレス演算回路54の構成と同様である。したがって、MUX154d,154gと、Jレジスタ154hと、シフタ154iとについてのみ説明し、他の部分については、図6を参照において対応する部分を参照することとする。
【0092】
MUX154dは、Iレジスタ154aから入力されるインデックスアドレスの上位あるいは下位のアドレスと、後述するMUX154gから入力されるサブインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択して加算器154fに出力する。このとき、MUX154dは、後述するシフタ154iから入力される指示信号に基づいて、入力されたインデックスアドレスあるいはサブインデックスアドレスの上位あるいは下位のアドレスのいずれかを選択する。
【0093】
MUX154gは、サブインデックスレジスタ141,142から入力されるサブインデックスアドレスのうち、いずれかを選択してMUX54dに出力する。このとき、MUX154gは、命令パイプライン制御部151から入力される選択指示信号に基づいて、いずれかのサブインデックスアドレスを選択する。
Jレジスタ154hは、レジスタファイル140から入力されるインデックレジスタ選択データを一時的に記憶する。
【0094】
シフタ154iは、Jレジスタ154hからレジスタスイッチングパターンを受け取り、1サイクル毎に、レジスタスイッチングパターンに基づいて、MUX54dが選択するアドレスを指示するための信号を出力する。
次に、動作を説明する。
初めに、図9を参照して、ベクトルプロセッサ2全体の動作について説明する。
【0095】
ベクトルプロセッサ2において処理が行われる場合、メモリ制御部120を介してメモリ110から命令フェッチ部130に命令コードが読み出される。
そして、ロードユニット150、ストアユニット160および演算ユニット170のそれぞれに、命令フェッチ部130から命令コードが出力される。
命令コードが入力されたロードユニット150、ストアユニット160および演算ユニット170は、その命令コードをデコードし、それぞれのユニットに対応する命令である場合にのみ、命令を実行する。
【0096】
ここでは、図11を参照しつつ、命令コードがロード命令である場合について説明する。
命令コードのオペコードがロード命令を示している場合(より詳細にはprefixコードが“000”である場合)、ロードユニット150が動作する。
まず、ロードユニット150は、命令フェッチ部130から受け取ったベースフィールドのコードを、ベースレジスタ・リード選択信号(データの読み出し時にベースレジスタを選択する信号)としてレジスタファイル140に出力する。
【0097】
そして、ベースレジスタ・リード選択信号を受け取ったレジスタファイル140から、ベースレジスタ・リード選択信号によって指定されたレジスタに記憶されたベースアドレスの値がロードユニット150に入力される。
レジスタファイル140から入力されたベースアドレスの値は、アドレス演算回路154に入力される。
【0098】
また、インデックスレジスタ決定回路152は、命令フェッチ部130から入力されたインデックスフィールドのコードおよびリピートアマウントフィールドのコードを受け取る。そして、インデックスレジスタ決定回路152は、命令パイプライン制御部151からの指示に従って、命令コードがベクトル命令であるかスカラー命令であるかを判定し、ベクトル命令である場合、インデックスレジスタ選択信号を、リピートアマウントに示される要素データ数分、レジスタファイル140に順次出力する。このとき、インデックスレジスタ選択信号によって指定されたレジスタがベクトルレジスタである場合、指定されたベクトルレジスタ内の各要素レジスタを特定するための所定の選択信号が出力される。
【0099】
インデックスレジスタ選択信号が入力されたレジスタファイル140からは、インデックスレジスタ選択信号に示されるレジスタから、インデックスアドレスの値が、アドレス演算回路154に順次入力される。
また、命令パイプライン制御部151は、レジスタファイル140に、サブインデックスアドレス141,142およびインデックススイッチレジスタ143のアドレスを出力する。そして、インデックスアドレスの値がアドレス演算回路154に入力されるタイミングに合わせて、サブインデックスアドレスの値も、アドレス演算回路154に順次入力される。
【0100】
インデックスアドレスおよびサブインデックスアドレスの値を受け取ったアドレス演算回路154は、レジスタスイッチングパターンに基づいて、インデックスアドレスおよびサブインデックスアドレスのうち、所定の領域を選択し、ベースアドレスの値と、選択した領域に記憶されているアドレスの値とからロードアドレスを算出し、メモリ制御部120に出力する。なお、アドレス演算回路154の動作については後述する。
【0101】
また、命令フェッチ部130から入力されたデスティネーションフィールドのコードおよびリピートアマウントフィールドのコードは、パイプライン処理におけるタイミングを合わせるべく、PR155,156に一旦記憶された後、デスティネーションレジスタ決定回路153に入力される。
すると、デスティネーションレジスタ決定回路153は、デスティネーションレジスタ選択信号を、メモリ110からロードされたデータと同期させてレジスタファイル140に出力する。
【0102】
そして、レジスタファイル140において、メモリ110からロードされたデータが、所定のデスティネーションレジスタに順次記憶される。
さらに、ポスト・レジスタ・アップデート・アドレッシングの場合、アドレス演算回路154によって出力されるアップデート・ベースアドレスをベースレジスタに書き込む。
【0103】
したがって、ベースフィールドのコードをレジスタ157に保持しておき、レジスタ157によって出力されるコードをベースレジスタ・ライト選択信号(データの書き込み時にベースレジスタを選択する信号)として用い、ベースレジスタ・ライト信号(ベースレジスタに対する書き込み指示信号)が入力されることに対応して、ベースレジスタのデータが更新される。
【0104】
次に、アドレス演算回路154の動作について説明する。
まず、インデックス修飾アドレッシングの場合について説明する。
インデックス修飾アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX154cを介してTレジスタ154bに格納される。
一方、インデックスアドレスの値は、Iレジスタ154aに格納され、レジスタスイッチングパターンの上位あるいは下位半分のデータが、Jレジスタ154hに格納される。
【0105】
次いで、サイクル“2”において、Jレジスタ154hに格納されているレジスタスイッチングパターン(上位あるいは下位半分)における最下位2ビットがシフタ154iによってMUX154dに出力される。そして、MUX154dは、シフタ154iから入力された2ビットのデータに基づいて、MUX154gを介して入力されたサブインデックスアドレスの上位あるいは下位いずれかの16ビットのデータを選択し、加算器154fに出力する。また、Tレジスタ154bのベースアドレスの値と、MUX154dから出力されたアドレスの値とが、加算器154fによって加算され、MUX154eを介してターゲットアドレス(ロードアドレス)として出力される。
【0106】
そして、第3サイクル以後は、ベースアドレスの値がTレジスタ154bに保持された状態のまま、シフタ154iによって、Jレジスタ154hに格納されたレジスタスイッチングパターン(上位あるいは下位半分)において、下位から2ビットずつがMUX154dに順次出力され、加算器154fによって、MUX154dから出力されるアドレスが、ベースアドレスと順次加算される。
【0107】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部151が、MUX154gを制御すると共に、エクステンションフィールドのコードに応じて、レジスタスイッチングパターンの上位あるいは下位半分のデータのいずれかを選択してJレジスタ154hに記憶させることにより、図7に示すインデックス修飾アドレッシングの拡張仕様が実現される。
【0108】
即ち、エクステンションが“0000”である場合、Iレジスタ154aに格納されたデータ(ここでは32ビット)がMUX154dによって選択され、そのまま加算器154fに入力される。
一方、エクステンションが“0100”である場合、Iレジスタ154aの下位16ビットを符号拡張し、32ビットとされたデータがMUX154dによって選択され、加算器154fに入力される。
【0109】
また、エクステンションが“0110”である場合、Iレジスタ154dの上位16ビットを符号拡張し、32ビットとされたデータがMUX154dによって選択され、加算器154fに入力される。
続いて、ポスト・レジスタ・アップデート・アドレッシングの場合について説明する。
【0110】
ポスト・レジスタ・アップデート・アドレッシングの場合、サイクル“1”において、ベースアドレスの値が、MUX154cを介してTレジスタ154bに格納される。
一方、インデックスアドレスの値は、Iレジスタ154aに格納され、レジスタスイッチングパターンの上位あるいは下位半分のデータが、命令パイプライン制御部151の指示に従ってJレジスタ154hに格納される。
【0111】
次いで、サイクル“2”において、Tレジスタ154bのベースアドレスの値が、MUX154eを介して、そのままターゲットアドレス(ロードアドレス)として出力される。
また、同時に、Tレジスタ154bのベースアドレスの値は、加算器154fにも出力され、MUX154dから出力されたアドレスの値と加算される。
【0112】
次いで、加算器154fの加算結果は、MUX154cを介して、Tレジスタ154bに格納され、Tレジスタ154bがベースアドレスとして記憶する値が更新される。
そして、第3サイクル以後は、シフタ154iによって、Jレジスタ154hに格納されたレジスタスイッチングパターン(上位あるいは下位半分)において、下位から2ビットずつがMUX154dに順次出力され、サイクル“1”,“2”と同様に、Tレジスタ154bの出力をターゲットアドレスとして出力すると共に、Tレジスタ154bがベースアドレスとして記憶する値が更新される。
【0113】
その後、実行されているロード命令の最後の要素データのターゲットアドレスを出力するのと同一のタイミングで、加算器154fの出力がアップデート・ベースアドレスとしてレジスタファイル140に出力される。
レジスタファイル140では、ベースレジスタ・ライト信号によって指示されたタイミングで、同時に入力されるベースレジスタ・ライト選択信号によって指定されたレジスタにアップデート・ベースアドレスを記憶する。
【0114】
このとき、エクステンションフィールドのコードが入力された命令パイプライン制御部151が、MUX154gを制御すると共に、エクステンションフィールドのコードに応じて、レジスタスイッチングパターンの上位あるいは下位半分のデータのいずれかを選択してJレジスタ154hに記憶させることにより、図8に示すポスト・レジスタ・アップデート・アドレッシングの拡張仕様が実現される。
【0115】
即ち、エクステンションが“0000”である場合、Iレジスタ154aに格納されたデータ(ここでは32ビット)がMUX154dによって選択され、そのまま加算器154fに入力される。
一方、エクステンションが“0100”である場合、Iレジスタ154aに格納されたデータの下位16ビットがMUX154dによって選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0116】
また、エクステンションが“0110”である場合、Iレジスタ154aに格納されたデータの上位16ビットがMUX154dによって選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
また、エクステンションが“1100”である場合、Iレジスタ154aに格納されたデータおよびサブインデックスレジスタ141に格納されたデータそれぞれにおいて、下位16ビットあるいは上位16ビットのうち、レジスタスイッチングパターンに示されるデータがMUX154dによって順次選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0117】
また、エクステンションが“1110”である場合、Iレジスタ154aに格納されたデータおよびサブインデックスレジスタ142に格納されたデータそれぞれにおいて、下位16ビットあるいは上位16ビットのうち、レジスタスイッチングパターンに示されるデータがMUX154dによって順次選択され、符号拡張して32ビットとされたデータが加算器154fに入力される。
【0118】
また、エクステンションが“0101”、“0111”、“1101”および“1111”である場合、エクステンションが“0100”、“0110”、“1100”および“1110”の場合とそれぞれ同様の機能拡張を行うが、命令パイプライン制御部151がベースレジスタ・ライト信号を出力することなく、ベースレジスタの更新を行わないように制御する。
【0119】
以上のように、本実施の形態に係るベクトルプロセッサ2は、インデックスによって指定されたベクトルレジスタの要素レジスタあるいはスカラーレジスタを複数の領域に分割すると共に、指標ベクトルを格納した他のレジスタ(サブインデックスレジスタ141,142)を用意し、このレジスタも同様に、複数の領域に分割して使用する。そして、インデックスによって指定されたレジスタおよび用意した他のレジスタにおいて、分割した領域のいずれかを選択することによって、所定のインデックスベクトル(指標ベクトル)を取得することとしている。
【0120】
したがって、少数のレジスタに、実質的に、より多くのインデックスベクトルを格納できることとなり、レジスタリソースを効率的に使用することが可能となる。
また、ベクトルプロセッサ2は、インデックススイッチレジスタ143を備えている。そして、インデックススイッチレジスタ143に記憶されたレジスタスイッチングパターンによって、アドレス修飾を行う要素毎に、インデックスレジスタおよびサブインデックスレジスタ141,142の上位あるいは下位の領域のいずれかを任意に指定することが可能である。
【0121】
したがって、1つの命令を実行する際に、インデックスレジスタおよびサブインデックスレジスタ141,142における領域のいずれを選択するかを動的に変化させることができ、領域を指定することによって得られるインデックスベクトルを、より多様なものとすることができる。
即ち、本発明によれば、間接指標ベクトル参照をより効率的に行うことが可能となる。
【0122】
なお、本実施の形態においては、レジスタスイッチングパターンをインデックススイッチレジスタ143に格納しておくこととして説明したが、レジスタスイッチングパターンを命令コードのインデックスフィールドに含めることとしてもよい。
図13は、レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のデータ構成を示す図である。
【0123】
図13において、インデックスフィールドには、レジスタスイッチングパターンと、第1および第2のインデックスが格納されたそれぞれの領域(例えば、インデックスレジスタの上位および下位16ビット)を示すアドレスとが含まれている。
そして、アドレス修飾を行う8個の要素それぞれについて、2つのインデックスのいずれによって、アドレス修飾を行うかが任意に指定されている。
【0124】
また、この場合、図12のアドレス演算回路154の構成は、以下のようになる。
図14は、レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のアドレス演算回路154の構成を示す図である。
図14においては、レジスタスイッチングパターンが命令コードに含まれていることから、インデックススイッチレジスタ143に相当するレジスタが設けられておらず、レジスタファイル140を介して、Iレジスタ154aにレジスタスイッチングパターンと、第1および第2のインデックスが格納されたそれぞれの領域のアドレスとが入力される。
【0125】
そして、入力されたレジスタスイッチングパターンは、シフタ154iに入力され、アドレス修飾を行う要素毎に、Iレジスタ154aに記憶された2つのインデックスのいずれかを選択するための信号をMUX154dに出力する。
このような構成とすることにより、インデックススイッチレジスタ143を設けることなく、領域を指定することによって得られるインデックスベクトルを、多様なものとすることが可能となる。
【図面の簡単な説明】
【図1】ロード命令あるいはストア命令のフォーマットを示す図である。
【図2】インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図3】ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図4】本実施の形態に係るベクトルプロセッサ1の構成を示す図である。
【図5】ロードユニット50の内部構成を示すブロック図である。
【図6】アドレス演算回路54の構成例を示す図である。
【図7】インデックス修飾アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図8】ポスト・レジスタ・アップデート・アドレッシングの場合において、エクステンションによって示されるコードと、アドレス修飾の拡張仕様との対応関係を示す図である。
【図9】本実施の形態に係るベクトルプロセッサ2の構成を示す図である。
【図10】レジスタスイッチングパターンのデータ構成を示す図である。
【図11】ロードユニット150の内部構成を示すブロック図である。
【図12】アドレス演算回路154の構成例を示す図である。
【図13】レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のデータ構成を示す図である。
【図14】レジスタスイッチングパターンを命令コードのインデックスフィールドに含める場合のアドレス演算回路154の構成を示す図である。
【符号の説明】
1,2 ベクトルプロセッサ、10,110 メモリ,20,120 メモリ制御部,30,130 命令フェッチ部,40,140 レジスタファイル,50,150 ロードユニット,51,151 命令パイプライン制御部,52,152 インデックスレジスタ決定回路,53,153 デスティネーションレジスタ決定回路,54,154 アドレス演算回路,54a,154a Iレジスタ,54b,154b Tレジスタ,54c〜54e,154c〜154e,154g MUX(マルチプレクサ),54f,154f 加算器,145h Jレジスタ,154i シフタ,55,56,155,156 PR(パイプラインレジスタ),57,157 レジスタ,60,160 ストアユニット,70,170 演算ユニット

Claims (10)

  1. 指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うアドレス参照方法であって、
    指標ベクトルの要素を格納する要素格納用レジスタを複数領域に分割し、各領域に所定のコードを格納し、前記指標ベクトルの要素格納用レジスタそれぞれの所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能とすることを特徴とするベクトルデータのアドレス参照方法。
  2. 前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示すコードを格納し、
    前記要素格納用レジスタそれぞれの分割された領域のうち、選択された領域のコードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出することを特徴とする請求項1記載のベクトルデータのアドレス参照方法。
  3. 前記指標ベクトルをベクトルレジスタに格納し、該ベクトルレジスタの各要素レジスタを分割した各領域に、前記相対アドレスを示すコードを格納することを特徴とする請求項2記載のベクトルデータのアドレス参照方法。
  4. 前記要素格納用レジスタの各領域は、前記指標ベクトルの参照基準アドレスに対する相対アドレスを示すコードを格納し、
    前記要素格納用レジスタそれぞれの分割された領域のうち、選択された領域のコードと、該基準アドレスとに基づいて、参照先のメモリアドレスであるターゲットアドレスを算出し、算出されたターゲットアドレスを新たな参照基準アドレスとすることを特徴とする請求項1記載のベクトルデータのアドレス参照方法。
  5. 前記相対アドレスを示すコードを前記要素格納用レジスタとしてのスカラーレジスタに格納し、該スカラーレジスタを分割した各領域に、前記相対アドレスを示すコードを格納することを特徴とする請求項4記載のベクトルデータのアドレス参照方法。
  6. 前記ベクトルデータの読み出しあるいは書き込みに関するベクトル命令の実行中に、前記分割された各領域のうち、選択する領域を動的に変化させることを特徴とする請求項1〜5のいずれかに記載のベクトルデータのアドレス参照方法。
  7. 前記要素格納用レジスタの前記分割された各領域のうち、選択する領域を指定するための指定パターンを所定のレジスタに格納し、該指定パターンに基づいて前記分割された領域を指定することにより、所定の指標ベクトルを生成することを特徴とする請求項6記載のベクトルデータのアドレス参照方法。
  8. 第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタと、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタとを用意し、第1および第2のレジスタそれぞれにおける所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能とすることを特徴とする請求項1〜7のいずれかに記載のベクトルデータのアドレス参照方法。
  9. 指標ベクトルを用いて、ベクトルデータの読み出しあるいは書き込みにおけるメモリアドレスの参照を行うベクトルプロセッサであって、
    指標ベクトルの要素を格納する要素格納用レジスタを備え、
    該要素格納用レジスタは、複数領域に分割されて各領域に所定のコードが格納され、
    該要素格納用レジスタそれぞれの所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能であることを特徴とするベクトルプロセッサ。
  10. 第1の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第1のレジスタと、第2の指標ベクトルの要素が格納された前記要素格納用レジスタを含む第2のレジスタとを備え、第1および第2のレジスタそれぞれにおける所定領域に格納されたコードを用いて、複数の指標ベクトルを生成可能であることを特徴とする請求項9記載のベクトルプロセッサ。
JP2003203856A 2003-03-28 2003-07-30 ベクトルデータのアドレス参照方法およびベクトルプロセッサ Expired - Fee Related JP3659252B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003203856A JP3659252B2 (ja) 2003-03-28 2003-07-30 ベクトルデータのアドレス参照方法およびベクトルプロセッサ
KR10-2004-0011855A KR100539112B1 (ko) 2003-03-28 2004-02-23 벡터 데이터의 어드레스 참조 방법 및 벡터 프로세서
US10/801,642 US7093103B2 (en) 2003-03-28 2004-03-17 Method for referring to address of vector data and vector processor
DE602004008818T DE602004008818T2 (de) 2003-03-28 2004-03-24 Verfahren zur Bezugnahme auf die Adresse von Vektordaten und Vektorprozessor
EP04007009A EP1462931B1 (en) 2003-03-28 2004-03-24 Method for referring to address of vector data and vector processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003092381 2003-03-28
JP2003203856A JP3659252B2 (ja) 2003-03-28 2003-07-30 ベクトルデータのアドレス参照方法およびベクトルプロセッサ

Publications (2)

Publication Number Publication Date
JP2004355597A true JP2004355597A (ja) 2004-12-16
JP3659252B2 JP3659252B2 (ja) 2005-06-15

Family

ID=32829074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003203856A Expired - Fee Related JP3659252B2 (ja) 2003-03-28 2003-07-30 ベクトルデータのアドレス参照方法およびベクトルプロセッサ

Country Status (5)

Country Link
US (1) US7093103B2 (ja)
EP (1) EP1462931B1 (ja)
JP (1) JP3659252B2 (ja)
KR (1) KR100539112B1 (ja)
DE (1) DE602004008818T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009020A (ja) * 2010-06-22 2012-01-12 Internatl Business Mach Corp <Ibm> 命令が利用可能な汎用レジスタの数を拡張するための上位ワード・ファシリティ
JP2014182807A (ja) * 2013-03-15 2014-09-29 Intel Corp 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム
JP2018500660A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション ベクトルインデックスロードおよびストアのための方法および装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216218B2 (en) * 2004-06-02 2007-05-08 Broadcom Corporation Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations
US7747843B2 (en) * 2004-06-02 2010-06-29 Broadcom Corporation Microprocessor with integrated high speed memory
US7346763B2 (en) * 2004-06-02 2008-03-18 Broadcom Corporation Processor instruction with repeated execution code
JP2010039503A (ja) * 2008-07-31 2010-02-18 Panasonic Corp シリアルメモリ装置及び信号処理システム
US11327862B2 (en) 2019-05-20 2022-05-10 Micron Technology, Inc. Multi-lane solutions for addressing vector elements using vector index registers
US11340904B2 (en) 2019-05-20 2022-05-24 Micron Technology, Inc. Vector index registers
US11403256B2 (en) 2019-05-20 2022-08-02 Micron Technology, Inc. Conditional operations in a vector processor having true and false vector index registers
US11507374B2 (en) 2019-05-20 2022-11-22 Micron Technology, Inc. True/false vector index registers and methods of populating thereof
CN111782270B (zh) * 2020-06-09 2023-12-19 Oppo广东移动通信有限公司 一种数据处理方法及装置、存储介质
CN115794671B (zh) * 2023-02-07 2023-04-14 成都申威科技有限责任公司 一种兼容向量数据的访存系统及方法
CN117312330B (zh) * 2023-11-29 2024-02-09 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3827031A (en) * 1973-03-19 1974-07-30 Instr Inc Element select/replace apparatus for a vector computing system
JPS61211774A (ja) 1985-03-18 1986-09-19 Fujitsu Ltd ベクトル処理装置
DE3688186D1 (de) 1985-12-02 1993-05-06 Ibm Datenverarbeitungsgeraet mit drei-adress-befehlen.
JP2598441B2 (ja) 1987-12-28 1997-04-09 株式会社日立製作所 ベクトルデータ処理装置
JP2625277B2 (ja) 1991-05-20 1997-07-02 富士通株式会社 メモリアクセス装置
JP3931577B2 (ja) 2000-11-22 2007-06-20 セイコーエプソン株式会社 メモリの使用方法、及び演算処理装置
JP2003044272A (ja) 2001-08-02 2003-02-14 Seiko Epson Corp プロセッサ、データタイプ指定方法、データロード方法、演算方法、データタイプ更新方法および命令プログラム
JP2003101415A (ja) 2001-09-19 2003-04-04 Seiko Epson Corp データ変換装置、データ生成装置、データ変換プログラム及びデータ生成プログラム、並びにデータ変換方法及びデータ生成方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009020A (ja) * 2010-06-22 2012-01-12 Internatl Business Mach Corp <Ibm> 命令が利用可能な汎用レジスタの数を拡張するための上位ワード・ファシリティ
JP2013242918A (ja) * 2010-06-22 2013-12-05 Internatl Business Mach Corp <Ibm> 命令が利用可能な汎用レジスタの数を拡張するための上位ワード・ファシリティ
US8914619B2 (en) 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
US9459872B2 (en) 2010-06-22 2016-10-04 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
JP2014182807A (ja) * 2013-03-15 2014-09-29 Intel Corp 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム
US9244684B2 (en) 2013-03-15 2016-01-26 Intel Corporation Limited range vector memory access instructions, processors, methods, and systems
US9448795B2 (en) 2013-03-15 2016-09-20 Intel Corporation Limited range vector memory access instructions, processors, methods, and systems
JP2018500660A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション ベクトルインデックスロードおよびストアのための方法および装置

Also Published As

Publication number Publication date
US7093103B2 (en) 2006-08-15
JP3659252B2 (ja) 2005-06-15
EP1462931A3 (en) 2005-04-27
KR20040086529A (ko) 2004-10-11
US20040250044A1 (en) 2004-12-09
EP1462931A2 (en) 2004-09-29
DE602004008818T2 (de) 2008-06-12
EP1462931B1 (en) 2007-09-12
DE602004008818D1 (de) 2007-10-25
KR100539112B1 (ko) 2005-12-26

Similar Documents

Publication Publication Date Title
US7689811B2 (en) Method and apparatus for constant generation in SIMD processing
JP3659252B2 (ja) ベクトルデータのアドレス参照方法およびベクトルプロセッサ
KR101900236B1 (ko) 데이터 처리장치 및 방법
US6163836A (en) Processor with programmable addressing modes
JP5748935B2 (ja) Simd命令をサポートするプログラマブルデータ処理回路
US20050198473A1 (en) Multiplexing operations in SIMD processing
TW200527203A (en) A data processing apparatus and method for moving data between registers and memory
JP2005174295A (ja) Simdデータ処理における算術演算の実行のためのデータ処理装置及び方法
JP2008513903A (ja) シャッフル演算のためのマイクロプロセッサデバイス及び方法
TW201011638A (en) A microprocessor, a method for microprocessor and a computer program product for use with a computing device
US7210023B2 (en) Data processing apparatus and method for moving data between registers and memory in response to an access instruction having an alignment specifier identifying an alignment to be associated with a start address
US6754806B2 (en) Mapping circuitry and method comprising first and second candidate output value producing units, an in-range value determining unit, and an output value selection unit
US20090276576A1 (en) Methods and Apparatus storing expanded width instructions in a VLIW memory for deferred execution
CN111782270A (zh) 一种数据处理方法及装置、存储介质
JP2005174292A (ja) データシフト操作
US20080282070A1 (en) Simd arithmetic device capable of high-speed computing
KR102591988B1 (ko) 데이터 처리장치에서의 벡터 인터리빙
JP4901891B2 (ja) 画像処理プロセッサ
JP2004302647A (ja) ベクトルプロセッサおよびレジスタのアドレス指定方法
JP2006053830A (ja) 分岐予測装置および分岐予測方法
US10963251B2 (en) Vector register access
JP2906792B2 (ja) ディジタルプロセッサ及びその制御方法
JP2006502489A (ja) 並行処理する機能ユニットを有するデータ処理装置
EP1251425A2 (en) Very long instruction word information processing device and system
CN105404588B (zh) 处理器和其中生成数据存储操作的一个或多个地址的方法

Legal Events

Date Code Title Description
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: 20050222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050307

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: 20080325

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees