JP2016018320A - 情報処理システム、情報処理方法、および、プログラム - Google Patents

情報処理システム、情報処理方法、および、プログラム Download PDF

Info

Publication number
JP2016018320A
JP2016018320A JP2014139754A JP2014139754A JP2016018320A JP 2016018320 A JP2016018320 A JP 2016018320A JP 2014139754 A JP2014139754 A JP 2014139754A JP 2014139754 A JP2014139754 A JP 2014139754A JP 2016018320 A JP2016018320 A JP 2016018320A
Authority
JP
Japan
Prior art keywords
address
instruction
buffer
copro
coprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014139754A
Other languages
English (en)
Inventor
希実 石原
Kimi Ishihara
希実 石原
友義 小堀
Tomoyoshi Kobori
友義 小堀
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2014139754A priority Critical patent/JP2016018320A/ja
Publication of JP2016018320A publication Critical patent/JP2016018320A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】性能を向上させる情報処理システム、情報処理方法、および、プログラムを提供する。
【解決手段】情報処理システム900はアドレス生成部010を含み、アドレス生成部010はローカルメモリ030と、複数のコプロ命令バッファ050/05rと、ローカルメモリ030へのアクセスの調停を行う転送制御部040と、ローカルメモリ030から転送制御部040を介してコプロ命令列を読み出し、コプロ命令バッファ050/05rに格納し、制御指示情報を出力するアドレス生成用プロセッサ020と、制御指示情報にしたがって、対応するコプロ命令バッファ050/05rからコプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、出力するコプロセッサである複数のコプロ部060/06rと、アレイメモリアドレスを格納し、出力するアドレスバッファ070と、を備える。
【選択図】図1

Description

本発明は、情報処理システム、情報処理方法、および、プログラムに関する。
無線通信等に使われる信号処理には、通常、高速性が求められ、専用回路による実現が一般的であった。しかし昨今では、コスト的な観点から、さまざまな信号処理をソフトウェアで実現し、プロセッサにより処理を行うことが求められるようになっている。そのため、信号処理用プロセッサの開発が行われている。
この分野の例として、特許文献1記載の技術がある。この技術は、アレイ演算装置に接続されたアドレス変換回路へのアドレスの生成、出力を、信号処理用プロセッサであるアドレス生成用プロセッサを複数、並列に動作させて実現するものである。
再特WO2009/072605号公報
特許文献1の技術では、アドレス生成用プロセッサのアドレス生成、出力の性能が、アレイ演算装置が要求するデータ転送速度より劣る場合があり、全体の性能が低下するという問題がある。特に、アドレス生成用プロセッサで実行されるアドレス生成のためのプログラムが複雑である場合にこの現象は顕著となる。
本発明の目的は、上記問題点を解決した情報処理システム、情報処理方法、および、プログラムを提供することである。
本発明の情報処理システムは、ローカルメモリと、複数のコプロ命令バッファと、前記ローカルメモリへのアクセスの調停を行う転送制御部と、前記ローカルメモリから前記転送制御部を介してコプロ命令列を読み出し、前記コプロ命令バッファに格納し、制御指示情報を出力するアドレス生成用プロセッサと、前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、出力するコプロセッサである複数のコプロ部と、前記アレイメモリアドレスを格納し、出力するアドレスバッファと、を備えるアドレス生成部を含む。
本発明の情報処理方法は、アドレス生成用プロセッサが、ローカルメモリから転送制御部を介してコプロ命令列を読み出し、コプロ命令バッファに格納し、制御指示情報を出力し、複数のコプロ部が、前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力する。
本発明のプログラムは、複数のコプロ部が制御指示情報にしたがって、対応するコプロ命令バッファからコプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力するように、前記コプロ命令列をローカルメモリから転送制御部を介して読み出し、前記コプロ命令バッファに格納し、前記制御指示情報を出力する処理を、コンピュータに実行させる。
本発明は、性能が向上するという効果を持つ。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態の動作を示す動作説明図である。 本発明の第2の実施の形態の構成を示すブロック図である。 アドレス生成用プロセッサで実行される特殊命令の書式を示す説明図である。 コプロ命令バッファの構成を示すブロック図である。 コプロ部の構成を示すブロック図である。 コプロ命令の書式を示す説明図である。 ローカルメモリに格納されるデータの一例を示す説明図である。 コプロ部により実行されるコプロ命令列の一例を示す説明図である。 アドレス生成用プロセッサにより実行される命令列の一例を示す説明図である。 コプロ部、および、アドレスバッファの動作を示すタイムチャートである。 アドレス生成部により実行されるコプロ命令列の一例を示す説明図である。 本発明の第3の実施の形態の構成を示すブロック図である。 コプロ命令バースト転送命令の書式を示す説明図である。 アドレス生成用プロセッサにより実行される命令列の一例を示す説明図である。 本発明の第5の実施の形態の構成を示すブロック図である。 読み出しアドレス生成命令の書式を示す説明図である。 アドレス生成用プロセッサで実行される命令列の一例を示す説明図である。 本発明の第5の実施の形態の動作を示すタイムチャートである。
[第1の実施の形態]
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、第1の実施の形態の構成を示すブロック図である。図1を参照すると、第1の実施の形態の情報処理システム900は、アドレス生成部010を含む。アドレス生成部010は、アドレス生成用プロセッサ020、ローカルメモリ030、転送制御部040、コプロ命令バッファ050〜コプロ命令バッファ05r、コプロ部060〜コプロ部06r(コプロセッサ)、および、アドレスバッファ070を含む。ここで、rは整数である。
アドレス生成部010は、たとえば、アレイ演算装置によって使用されるアレイメモリへのアレイメモリアドレスを生成し、出力する構成を持つ。
コプロ部060〜06rは、アドレス生成用プロセッサ020の制御にしたがってコプロ命令を実行し、アレイメモリアドレスを生成する。アドレスバッファ070は、コプロ部060〜06rにより生成されたアレイメモリアドレスを格納し、出力する。
ローカルメモリ030は、コプロ用データ、および、コプロ部060〜06rにおいて実行されるコプロ命令等を格納する。
転送制御部040は、アドレス生成用プロセッサ020、コプロ部060〜06rからのローカルメモリ030へのアクセスの調停制御の機能を持つ。たとえば、転送制御部040は、アービタの機能を持つ。また、転送制御部040は、DMA(Direct Memory Access)の機能を持つことも可能である。
また、図1には、アドレス生成部010のみ記載してあるが、情報処理システム900は、任意の個数のアドレス生成部を含むことが可能である。
次に、第1の実施の形態の動作について図面を参照して説明する。
アドレス生成部010を代表として説明する。図2は、第1の実施の形態の動作を示す動作説明図である。アドレス生成用プロセッサ020は、コプロ部060〜06rをリセットするリセット指示を出力する(ステップS1)。コプロ部060〜06rは、リセット指示にしたがい、一部の初期化(リセット)を行う(ステップS2)。
次に、アドレス生成用プロセッサ020は、ローカルメモリ030からコプロ用データを読み出し、内部に格納する(ステップS3)。次に、アドレス生成用プロセッサ020は、内部に格納したコプロ用データ、および、データ格納指示をコプロ部060〜06rに出力する(ステップS4)。
データ格納指示に該当するコプロ部060〜06rは、内部のレジスタ等に、コプロ用データを格納する(ステップS5)。
次に、アドレス生成用プロセッサ020は、ローカルメモリ030からコプロ命令を読み出し、内部に格納する(ステップS6)。次に、アドレス生成用プロセッサ020は、内部に格納したコプロ命令を対応するコプロ命令バッファ050〜05rに順次格納する(ステップS7)。
次に、アドレス生成用プロセッサ020は、コプロ部060〜06rに対して、処理開始指示を出力する(ステップS8)。コプロ部060〜06rは、処理開始指示にしたがって、それぞれ対応するコプロ命令バッファ050〜05rからコプロ命令を読み出し、実行し、アレイメモリアドレスを生成し、出力する(ステップS9)。このアレイメモリアドレスの生成には、コプロ用データが使用される。
次に、アドレスバッファ070は、コプロ部060〜06rからのアレイメモリアドレスを内部に格納し、出力する(ステップS9)。
ここで、アドレス生成用プロセッサ020が、処理開始指示とともに、処理繰り返し数を出力する構成が可能である。この場合、コプロ部060〜06rは、それぞれ、処理繰り返し数に基づいてループ数を算出し、それぞれ対応するコプロ命令バッファ050〜050rに格納されているコプロ命令をループ数の回数分繰り返し実行する。
上記リセット指示、データ格納指示、および、処理開始指示等を総称して、制御指示情報と呼ぶ。
また、アドレスバッファ070は、コプロ部060〜06rごとにアレイメモリアドレスを格納し、1つのコプロ部060〜06rごとにまとめてアレイメモリアドレスを出力する構成が可能である。たとえば、まず、コプロ部060により生成されたアレイメモリアドレスをまとめて出力し、順次出力する構成が可能である。
また、コプロ用データ、コプロ命令をアドレス生成用プロセッサ020に格納せず、ローカルメモリ030から、直接、それぞれ、コプロ部060〜060r、コプロ命令バッファ050〜05rに格納する構成が可能である。
また、ステップS6〜S7を、ステップS3〜S5より先に処理する構成が可能である。
また、アドレス生成用プロセッサ020(たとえば、コンピュータ)に、上記の機能を実現させるプログラムが実現可能である。また、このプログラムは、記録媒体に格納可能である。
次に、第1の実施の形態の効果について説明する。
第1の実施の形態は、アドレス生成部010のコプロ部060〜06rが、並列にアレイメモリアドレスの生成、出力を行う構成である。よって、第1の実施の形態は、アドレス生成部010内でアレイメモリアドレスの生成をアドレス生成用プロセッサ020のみが行う構成(たとえば、特許文献1)に比べて、アレイメモリアドレスを高速に生成、出力でき、性能が向上するという効果を持つ。
[第2の実施の形態]
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
第2の実施の形態は、第1の実施の形態の一例である。図3は、第2の実施の形態の構成を示すブロック図である。図3を参照すると、第2の実施の形態の情報処理システム900は、アドレス生成部010、アドレス生成部110、アドレス相互接続網200、タイミング制御ユニット300、アレイメモリ400、および、アレイ演算装置500を含む。
アドレス生成部010の構成は、第1の実施の形態のアドレス生成部010の構成(図1)と同一である。ただし、r=1であり、コプロ命令バッファ050、コプロ命令バッファ051、コプロ部060、および、コプロ部061が含まれる。
アドレス生成部110は、アドレス生成部010と同一構成である。アドレス生成部110は、アドレス生成用プロセッサ120、ローカルメモリ130、転送制御部140、コプロ命令バッファ150、コプロ命令バッファ151、コプロ部160、コプロ部161、および、アドレスバッファ170を含む。アドレス生成部110は、アドレス生成部010と同一の機能を持つ。
第2の実施の形態では、以降の記述において、一般的に記述されたrは、実際には、r=1である。
アドレス相互接続網200は、アドレス変換回路210を含む。アレイメモリ400は、メモリバンク(#0)410〜メモリバンク(#j)41j(jは整数、したがって、総数は、j+1)を含む。
アドレス相互接続網200、タイミング制御ユニット300、メモリバンク(#0)410〜メモリバンク(#j)41j、および、アレイ演算装置500は、特許文献1の対応するものと、同一の機能を持つ構成が可能である。以下、これらは、特許文献1の対応するものと、同一の機能を持つとして説明する。
アドレス生成部010、110で生成されたアレイメモリアドレスは、アドレス相互接続網200のアドレス変換回路210で受け取られ、アレイメモリ400を実際にアクセスするアレイメモリアドレス(実アレイメモリアドレスと呼ぶ)へと変換される。実アレイメモリアドレスは、タイミング制御ユニット300の制御にしたがい、アレイメモリ400に出力される。
読み出し制御の場合、アレイメモリ400は、実アレイメモリアドレスで指定された番地からデータを読み出し、アレイ演算装置500に出力する。また、書き込み制御の場合、アレイメモリ400は、アレイ演算装置500からのデータを実アレイメモリアドレスで指定された番地に書き込む。
次に、アドレス生成部010のアドレス生成用プロセッサ020について詳細に説明する。アドレス生成用プロセッサ020は、たとえば、32ビットのRISC(Reduced Instruction Set Computer)プロセッサであり、特許文献1に示されたようなアドレス生成機能を備えることが可能である。
なお、命令メモリ、データメモリのサイズ等についてはここでは本質ではないので、省略する。また、アドレス生成用プロセッサ020は、一般的なRISCプロセッサが備える命令セット、すなわち、即値、および、レジスタを用いた四則演算命令、メモリアクセス命令、論理演算命令、NOP等、および、図4に示す特殊命令を実行する。
図4は、アドレス生成用プロセッサ020で実行される特殊命令の書式を示す説明図である。図4を参照すると、特殊命令はMSBから4ビットに、当該命令であることを示す命令コードを持ち、それ以降に、命令に応じたデータを収めた形式となっている。また、命令コードは2進で示されている。なお、各命令名の下に()内で示したコマンドは、以降の説明で当該命令を参照する際に使用するフォーマットであり、命令名(パラメータ)の形式で示している。
なお、これらの命令処理は全て1サイクルで実行されることが可能である。
まず、コプロリセット命令(命令コード=0100)は、命令コード以外は、‘0’である。アドレス生成用プロセッサ020は、この命令を実行すると、コプロ部060〜06rにリセット指示を出力する。コプロ部060〜06rは、リセット指示にしたがい、それぞれ、コプロ命令バッファ050等に対応する命令書き込みポインタ05W0、命令読み出しポインタ05R0等(後述の図5参照)を‘0’にリセットする。
コプロ処理開始命令(命令コード=0101)は、20[ビット]の‘0’、8[ビット]の即値である処理繰り返し数を含む。アドレス生成用プロセッサ020は、この命令を実行すると、処理開始指示、および、処理繰り返し数=kをコプロ部060〜06rに出力する。コプロ部060〜06rは、処理開始指示にしたがい、まず、ループ数(回数)を次の計算式(式1)により算出し、内部に格納する。
└k/N┘+A ただし、A=1(t<k mod(N)の場合)、
A=0(t≧k mod(N)の場合)………(式1)。
ここで、└k/N┘は、k/Nを超えない最大の整数を意味する。tは、コプロ部060〜06rのコプロ番号である。たとえば、コプロ部060に関してはt=0あり、コプロ部06rに関しては、t=rである。また、Nは、コプロ部060〜06rの総数(=r+1)である。
たとえば、N=2、k=5であると、k mod(2)=1である。したがって、コプロ部060に関しては、t(=0)<1であり、A=1となる。また、コプロ部061に関しては、t(=1)≧1であり、A=0となる。したがって、コプロ部060に関しては、ループ数は、└k/N┘+A=└5/2┘+1=2+1=3である。コプロ部061に関しては、ループ数は、└k/N┘+A=└5/2┘+0=2+0=2である。
次に、コプロ部060〜06rは、それぞれ、対応するコプロ命令バッファ050〜05rからコプロ命令を読み出して実行する。たとえば、10番地までコプロ命令が格納されていると、0番地〜10番地の命令を順次実行する。そして、コプロ部060〜06rは、それぞれ、この実行をループ数の回数分繰り返す。
コプロレジスタ転送命令(命令コード=0110)は、4[ビット]の‘0’、4[ビット]の転送先レジスタ番号、4[ビット]のコプロ番号、および、16[ビット]のメモリアドレスを含む。アドレス生成用プロセッサ020は、この命令を実行すると、ローカルメモリ030のメモリアドレスに示される番地からコプロデータを読み出し、内部に格納する。
そして、アドレス生成用プロセッサ020は、このコプロデータ、転送先レジスタ番号、コプロ番号を、データ格納指示と共にコプロ部060〜06rに出力する。コプロ番号に該当するコプロ部060〜06rは、アドレス生成用プロセッサ020からのコプロデータを内部の転送先レジスタ番号で指定されたレジスタに格納する。
なお、コプロ番号が、最終コプロ番号(r)+1の場合には、すべてのコプロ部060〜06rの同じ転送先レジスタ番号に対し、コプロデータが格納される構成が可能である。
コプロ命令転送命令(命令コード=0111)は、12[ビット]の‘0’、および、16[ビット]のメモリアドレスを含む。アドレス生成用プロセッサ020は、ローカルメモリ030のメモリアドレスに示される番地からコプロ命令を読み出し、内部に格納する。そして、アドレス生成用プロセッサ020は、このコプロ命令をすべてのコプロ命令バッファ050〜05rに格納する。
アドレス生成用プロセッサ020が出力するリセット指示、処理開始指示、データ格納指示は、制御信号であるが、図4の対応する特殊命令の命令コードを制御信号として利用する構成が可能である。
次に、コプロ命令バッファ050〜05rについて詳細に説明する。代表してコプロ命令バッファ050について説明する。図5は、コプロ命令バッファ050の構成を示すブロック図である。コプロ命令バッファ050は、たとえば、0〜63番地にコプロ命令を格納可能である。図5を参照すると、コプロ命令バッファ050は、命令書き込みポインタ05W0、命令読み出しポインタ05R0によりそれぞれ書き込みアドレス、読み出しアドレスが指定される。
コプロ命令バッファ050は、コプロ部060によって実行されるコプロ命令を、命令書き込みポインタ05W0で指定されたアドレスに格納し、命令読み出しポインタ05R0で指定されたアドレスから読み出す。また、命令書き込みポインタ05W0、命令読み出しポインタ05R0は、アドレス生成用プロセッサ020、および/または、コプロ部060により制御される。
命令書き込みポインタ05W0は、コプロ命令が格納されるとインクリメント(+1)される(アドレス生成用プロセッサ020がコプロ命令転送命令の実行により実施)。命令読み出しポインタ05R0は、コプロ命令が読み出されるとインクリメント(+1)される(コプロ部060が処理開始指示にしたがい実施)。
図5においては、命令書き込みポインタ05W0の値は、‘p+1’であり、0〜p番地まで、コプロ命令が格納されている。また、命令読み出しポインタ05R0の値は、‘2’であり、0〜1番地までのコプロ命令が読み出されている。
次に、コプロ部060〜06rについて詳細に説明する。すべてのコプロ部060〜06rは、同一の機能を持つので、代表してコプロ部060について説明する。図6は、コプロ部060の構成を示すブロック図である。
図6を参照すると、コプロ部060は、アドレス生成用プロセッサ020、転送制御部040、コプロ命令バッファ050、および、アドレスバッファ070と接続される。コプロ部060は、ローカルメモリ030へのアクセスを転送制御部040を介して行う。説明をわかりやすくするため、以下の記述においては、転送制御部040の動作を記述しない場合がある。
ローカルメモリ030は、十分な容量を持ち、図示しない外部装置からのコプロ用データ、コプロ命令を格納している。ローカルメモリ030は、転送制御部040の制御にしたがい動作する。
コプロ部060は、アドレス生成処理部081、コプロ制御部082を含む。アドレス生成処理部081は、レジスタファイル083(たとえば、0〜15番地でアドレスされる16ビットのレジスタを16個)を含む。また、コプロ制御部082は、ループレジスタ084(ループ数を格納)を含む。
アドレス生成処理部081は、コプロ命令バッファ050からのコプロ命令の実行、即値、または、レジスタを使った四則演算、ローカルメモリ030からのデータの読み出し、アドレスバッファ070に格納するアレイメモリアドレスの生成等を行う。
コプロ制御部082は、アドレス生成用プロセッサ020から、リセット指示、コプロ用データ、データ格納指示、および、処理開始指示を受け取り、それらに対応する処理を行う。たとえば、コプロ制御部082は、データ格納指示を受け取ると、アドレス生成処理部081に指示し、受け取ったコプロ用データをレジスタファイル083の当該レジスタに格納させる。
主なコプロ命令について図面を参照して説明する。
図7は、コプロ命令の書式を示す説明図である。図7は、あくまでも、一例であって、この書式に限定されるものではない。なお、各命令名の下に()内で示したコマンドは、以降の説明で当該命令を参照する際に使用されるフォーマットであり、命令名(パラメータ)の形式で示されている。
まず、レジスタ加算命令(命令コード=0001)は、レジスタファイル083のソースレジスタ1の内容とソースレジスタ2の内容とを加算し、加算結果をデスティネーションレジスタに格納する命令である。
データロード命令(命令コード=0010)は、レジスタファイル083のソースレジスタに格納されているアドレスで、ローカルメモリ030をアクセスし、データを読み出し、デスティネーションレジスタに格納する命令である。
なお、本命令の実行では、転送制御部040を介してデータが読み出されるが、状況によっては、転送制御部040からデータが返されない場合がある。その場合には、転送制御部040からストール信号が送信される。
ストール信号は、該アクセスが完了してデータが返されるまで送信が続けられ、この信号をコプロ制御部082が受け取っているうちは、コプロ制御部082はコプロデータの読み出し信号を発生しない。すなわち、命令の実行が中断され、コプロ部060はストールする。
書き込みアドレス生成命令(命令コード=0100)は、レジスタファイル083のソースレジスタに格納されたアレイメモリアドレス(書き込みアドレス)をアドレスバッファ070に出力する。
読み出しアドレス生成命令(命令コード=0101)は、レジスタファイル083のソースレジスタに格納されたアレイメモリアドレス(読み出しアドレス)をアドレスバッファ070に出力する。
コプロ制御部082は、アドレス生成用プロセッサ020から処理開始指示、および、処理繰り返し数=kを受け取ると、処理を開始する。このとき、コプロ制御部082は、上述の(式1)によりループ数を算出し、ループレジスタ084に格納する。
コプロ制御部082は、このループレジスタ084内のループ数、コプロ命令バッファ050の命令書き込みポインタ05W0の値、命令読み出しポインタ05R0の値を参照して、制御を行う。
すなわち、コプロ制御部082は、コプロ命令バッファ050からコプロ命令を読み出すごとに、命令読み出しポインタ05R0をインクリメント(+1)する。命令読み出しポインタ05R0の値=命令書き込みポインタ05W0の値であると、コプロ制御部082は、ループレジスタ084をインクリメント(−1)し、命令読み出しポインタ05R0の値を‘0’にする。コプロ制御部082は、ループレジスタ084の値が‘0’になると、コプロ命令バッファ050からのコプロ命令の読み出しを終了する。
また、コプロ制御部082は、1ループ終了ごとに、単ループ終了情報をアドレスバッファ070に出力する。
次に、転送制御部040について詳細に説明する。
転送制御部040は、アドレス生成用プロセッサ020、コプロ部060〜060rから、書き込みアクセス(または、読み出しアクセス)、アドレス、データ(書き込みの場合)を受け取ると、調停を実施する。転送制御部040は、調停結果で処理可能であれば、そのアクセスの処理を行い、書き込みアクセスの場合、ローカルメモリ030のアドレスで指定された番地にデータを書き込む。転送制御部040は、読み出しアクセスの場合、ローカルメモリ030のアドレスで指定された番地からデータを読み出し、アクセス元のアドレス生成用プロセッサ020、コプロ部060〜060rに出力する。
転送制御部040は、競合により調停結果で処理不可能であれば、アドレス生成用プロセッサ020、コプロ部060〜060rを待たせる。
この場合、アドレス生成用プロセッサ020、コプロ部060〜060rは、待ち状態になり、一旦、処理を停止する。転送制御部040が、調停結果で処理可能になると、アドレス生成用プロセッサ020、コプロ部060〜060rは、処理を再開する。
転送制御部040は、競合に際し、事前に設定されたアドレス生成用プロセッサ020、各コプロ部060〜06rの優先度に基づいて調停を行う。また、処理実施後、転送制御部040は、処理を実施したアクセス元の優先度を下げる、または、待たせたアクセス元の優先度を上げる等の制御を行うことが可能である。
次に、アドレスバッファ070について詳細に説明する。
アドレスバッファ070は、コプロ部060〜060r対応のサブバッファを含む。アドレスバッファ070は、コプロ部060〜060rにより出力されたアレイメモリアドレスを一旦格納し、タイミング制御ユニット300により指示されるタイミングで出力する。
また、アドレスバッファ070は、バッファ内部のアレイメモリアドレスの数が予め設定された閾値を超えた場合、コプロ部060〜06rに対し、割り込み信号を出力する。この割り込み信号を受け取ると、コプロ部060〜060rは処理を中断する。
アドレスバッファ070は、アドレス相互接続網200にアレイメモリアドレスを出力し、内部のアレイメモリアドレスの数が閾値を下回ると、再度割り込み信号を出力し、コプロ部060〜06rに対して処理の再開を指示する。
また、アドレスバッファ070は、各コプロ部060〜06rからのアレイメモリアドレスの列を調停し、コプロ部060〜06rごとにまとめて出力するアドレス調停機能を持つ。これは、各コプロ部060〜06rにより出力される単ループ終了情報にしたがって次のように行われる。
まず、アドレスバッファ070は、各コプロ部060〜06rからのアドレスを、各コプロ部060〜06rに対応したバッファに一旦格納する。次に、アドレスバッファ070は、出力処理の開始時に、あるコプロ部060〜06rに対応するバッファのアレイメモリアドレスの列を読み出して出力処理を行う。
アドレスバッファ070は、この出力処理を続け、単ループ終了情報を検出すると、別のコプロ部060〜06rに対応するバッファからアレイメモリアドレスの列を読み出して出力処理を行う。アドレスバッファ070は、この処理を繰り返すことによって、コプロ部060〜06rが行ったループ処理ごとにアレイメモリアドレスをまとめて出力することができる。
アドレスバッファ070は、コプロ部060に対応するサブバッファ0、サブ読み出しポインタ0、サブ書き込みポインタ0、ループ終了ポインタ0、および、ループ終了フラグ0を持つ。また、アドレスバッファ070は、コプロ部061に対応するサブバッファ1、サブ読み出しポインタ1、サブ書き込みポインタ1、ループ終了ポインタ1、ループ終了フラグ1を持つ。
また、アドレスバッファ070は、現在読み出しているサブバッファ0〜1の番号を保持する読み出し先バッファ番号レジスタを内部に備える。
コプロ部060〜061からのアレイメモリアドレスは、それぞれ、サブバッファ0〜1に格納され、直後、サブ書き込みポインタ0〜1がインクリメント(+1)される。なお、サブ書き込みポインタ0〜1がバッファサイズと同じになった場合、サブ書き込みポインタ0〜1は、‘0’に更新される。
次に、コプロ部060〜061が、単ループ終了情報を出力すると、アドレスバッファ070は、その時点の対応するサブ書き込みポインタの0〜1の値を、それぞれ、ループ終了ポインタ0〜1に格納する。また、アドレスバッファ070は、同時に、対応するループ終了フラグを‘1’にする。
アドレスバッファ070は、サブ読み出しポインタ0、サブ読み出しポインタ1が、それぞれ、サブバッファ0、サブバッファ1の容量を超えると、これらを‘0’にする。
次に、第2の実施の形態の動作について図面を参照して説明する。
図8は、アドレス生成部010のローカルメモリ030に格納されるデータの一例を示す説明図である。図8を参照すると、6ワードのデータが格納されている。また、この6ワードの先頭をaddress0、3ワード目をaddresss1とする。また、あるアドレスから次のアドレスに遷移するために加算すべき値をoffset(変数)とする。
図9は、コプロ部060〜061により実行されるコプロ命令列(プログラム)の一例を示す説明図である。図9を参照すると、コプロ部060〜061により実行される命令は5つである。なお、本例は、図6に示す命令名を使って記述されており、()内の数字は全てレジスタ番号を示すものである。
LD(3,1)は、レジスタ1番内のアドレスでローカルメモリ030からデータを読み出し、レジスタ3番に格納する。ADD(4,3,2)は、レジスタ3番内のデータと、レジスタ2番内のデータとを加算し、加算結果をレジスタ4番に格納する。RD(3)は、レジスタ3番内のデータを出力する(この場合、アドレスバッファ070に)。RD(4)は、レジスタ4番内のデータを出力する(この場合、アドレスバッファ070に)。ADD(1,1,5)は、レジスタ1番内のデータ(アドレス)とレジスタ5番内のデータとを加算し、加算結果をレジスタ1番に格納する。
図9の右記は、図9の左記の命令を、図7に示した書式にしたがってバイナリ変換し、これを配列データにまとめたものである。
図10は、アドレス生成用プロセッサ020により実行される命令列(プログラム)の一例を示す説明図である。図10を参照すると、たとえば、命令列は、C言語の疑似ソースコードとして記述可能である。先頭から7行目までには、図9の右記に示される変換後の配列データが記載されている。
9行目には、処理関数が定義されている。この関数は引数を3つとり、これら引数は、図8に示されるaddress0、address1、offsetである。11行目には、処理繰り返し数(ここでは、‘4’)が定義されている。
13行目には、C_Reset命令(コプロ部060〜061のリセット)が記述されている。アドレス生成用プロセッサ020は、この命令を実行すると、コプロ部060〜061にリセット指示を出力する。
これにより、全コプロ部060〜061は、それぞれ、対応するコプロ命令バッファ050〜051の現在の命令書き込みポインタ05W0、および、命令読み出しポインタ05R0等の値を‘0’にリセットする。
15行目から19行目までには、C_Send命令が記述されている。なお本来は、図4に示す通り、同命令にはメモリアドレスを書くが、本例では簡略化のため、変数名や即値が直接記載されている。アドレス生成用プロセッサ020は、この命令を実行すると、コプロ用データ、コプロ番号、転送先レジスタ番号、および、データ格納指示をコプロ部060〜061に出力する。
そして、先頭の命令では、address0が、コプロ部060の1番レジスタに格納される。次の命令では、address1が、コプロ部061の1番レジスタに格納される。3番目の命令では、即値‘1’が、コプロ部060〜061の両方のレジスタ2番に格納される。最後の命令では、offsetが、コプロ部060〜061の両方のレジスタ5番に格納される。
22行目から26行目までには、C_Inst命令が記述されている。ここでも、本例では簡略化のため、変数名や即値が直接記載されている。アドレス生成用プロセッサ020は、この命令を実行すると、ローカルメモリ030に格納されたコプロ命令である配列データ(convd_inst)を内部のレジスタに格納し、次に、内部のレジスタからコプロ命令バッファ050〜051に格納する。
また、この命令実行により、コプロ命令バッファ050〜051の命令書き込みポインタ05W0等が、順次、‘0’から‘1’、…‘5’にインクリメントされる。
29行目には、C_Run命令が記述されている。この命令は、処理繰り返し数である引数のloopnum(=4)を持つ。アドレス生成用プロセッサ020は、この命令を実行すると、コプロ部060〜061に、処理開始指示、および、処理繰り返し数を出力する。
次に、コプロ部060〜061が処理開始指示および、処理繰り返し数(=4)を受け取り、ループレジスタ084等にループ数を格納した後、図9に示す命令列を実行する場合の動作について説明する。コプロ部060〜061におけるループ数は、上述の(式1)により、両方、‘2’である。なお、アドレス変換回路210からアドレスバッファ070へのアドレス出力アクセスは、常に出力されており、アドレスバッファ070は、すぐに、アレイメモリアドレスを出力する場合について説明する。
図11は、コプロ部060〜061、および、アドレスバッファ070の動作を示すタイムチャートである。LD、RDの直後の数字は、それぞれ、転送制御部040、アドレスバッファ070により処理される順番を示している。また、各サイクルにおける処理の結果は、各サイクルの最後(=次サイクルの開始時)に確定するものとする。
[サイクル0]においては、コプロ部060〜061が、それぞれ、コプロ命令バッファ050〜051から命令LD1、LD2を取り出し、実行する。
命令LD1、命令LD2の実行では、コプロ部060〜061は、転送制御部040を介してローカルメモリ030にアクセス(読み出し)する。
転送制御部040は、優先度(ここでは、コプロ部060の優先度>コプロ部061の優先度とする)にしたがい、調停を行う。したがって、転送制御部040は、命令LD1のアクセスを処理し、命令LD2のアクセスを待たせる。
すなわち、転送制御部040は、ローカルメモリ030から命令LD1に対応するデータを読み出し、コプロ部060に出力し、コプロ部061にストール信号を出力する。コプロ部061は、処理を中断する。そして、転送制御部040は、コプロ部060の優先度<コプロ部061にする。そして、コプロ部060は、転送制御部040からのデータを内部のレジスタ3番に格納する。
[サイクル1]においては、コプロ部060は、命令ADDを実行する。転送制御部040は、ストール信号をオフにし、ローカルメモリ030から命令LD2に対応するデータを読み出し、コプロ部061に出力する。そして、コプロ部061は、転送制御部040からのデータを受け取り、内部のレジスタ3番に格納する。また、転送制御部040は、優先度を元に戻す。
[サイクル2]においては、コプロ部060は、命令RD1を実行する。すなわち、コプロ部060は、アドレスバッファ070にレジスタ3番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ0に、コプロ部060からのデータ(RD1のアレイメモリアドレス)を格納し、サブ書き込みポインタ0をインクリメントし、‘1’にする。また、コプロ部061は、命令ADDを実行する。
[サイクル3]においては、アドレスバッファ070は、読み出し先バッファ番号(‘0’)に対応するサブバッファ0から書き込んだデータ(RD1のアレイメモリアドレス)を、アドレス変換回路210に出力する。そして、アドレスバッファ070は、サブ読み出しポインタ0をインクリメントし、‘1’にする。
また、コプロ部060は、命令RD2を実行する。すなわち、コプロ部060は、アドレスバッファ070にレジスタ4番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ0に、コプロ部060からのデータ(RD2のアレイメモリアドレス)を格納し、サブ書き込みポインタ0をインクリメントし、‘2’にする。また、コプロ部061は、命令RD3を実行する。すなわち、コプロ部061は、アドレスバッファ070にレジスタ3番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ1に、コプロ部061からのデータ(RD3のアレイメモリアドレス)を格納し、サブ書き込みポインタ1をインクリメントし、‘1’にする。
[サイクル4]においては、アドレスバッファ070は、サブバッファ0に書き込んだデータ(RD2のアレイメモリアドレス)を、アドレス変換回路210に出力し、サブ読み出しポインタ0をインクリメントし、‘2’にする。
また、コプロ部060は、命令ADDを実行し、単ループ終了情報をアドレスバッファ070に出する。そして、アドレスバッファ070は、この単ループ終了情報にしたがって、サブ書き込みポインタ0の値(‘2’)をループ終了ポンタに格納し、ループ終了フラグ0を‘1’にする。
また、コプロ部061は、命令RD4を実行し、アドレスバッファ070にレジスタ4番内のデータ(アレイメモリアドレス)を出力する。アドレスバッファ070は、サブバッファ1に、コプロ部061からのデータ(RD4アレイメモリアドレス)を格納し、サブ書き込みポインタ1をインクリメントし、‘2’にする。
[サイクル5]においては、ループ終了フラグ0の値=‘1’、かつ、サブ読み出しポインタ0の値(‘2’)=ループ終了ポインタの値(‘2’)である。したがって、アドレスバッファ070は、ループ終了フラグ0を‘0’にし、読み出し先バッファ番号をインクリメントし、‘1’にする。
コプロ部060は、命令LD3を実行する。また、コプロ部061は、命令ADDを実行し、単ループ終了情報をアドレスバッファ070に出力する。そして、アドレスバッファ070は、コプロ部061からの単ループ終了情報にしたがって、書き込みポインタ1の値(‘2’)をループ終了ポンタに格納し、ループ終了フラグ1を‘1’にする。
[サイクル6]においては、アドレスバッファ070は、読み出し先バッファ番号(‘1’)に対応するサブバッファ1からデータ(RD3のアレイメモリアドレス)を、アドレス変換回路210に出力する。そして、アドレスバッファ070は、サブ読み出しポインタ1をインクリメントし、‘1’にする。
また、コプロ部060は、命令ADDを実行する。また、コプロ部061は、LD4命令を実行する。
[サイクル7]においては、アドレスバッファ070は、サブバッファ1からデータ(RD4のアレイメモリアドレス)を、アドレス変換回路210に出力し、サブ読み出しポインタ1をインクリメントし、‘2’にする。
また、コプロ部060は、命令RD5を実行し、アドレスバッファ070にレジスタ3番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ0に、コプロ部060からのデータ(RD5のアレイメモリアドレス)を格納し、サブ書き込みポインタ0をインクリメントし、‘3’にする。
また、コプロ部061は、命令ADDを実行する。
[サイクル8]においては、ループ終了フラグ1の値=‘1’、かつ、サブ読み出しポインタ1の値(‘2’)=ループ終了ポインタの値(‘2’)である。したがって、アドレスバッファ070は、ループ終了フラグ1を‘0’にし、読み出し先バッファ番号を最初の値である‘0’にする。
また、コプロ部060は、命令RD6を実行し、アドレスバッファ070にレジスタ4番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ0に、コプロ部060からのデータ(RD6のアレイメモリアドレス)を格納し、サブ書き込みポインタ0をインクリメントし、‘4’にする。
また、コプロ部061は、命令RD7を実行し、アドレスバッファ070にレジスタ3番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ1に、コプロ部061からのデータ(RD7のアレイメモリアドレス)を格納し、サブ書き込みポインタ0をインクリメントし、‘3’にする。
[サイクル9]においては、アドレスバッファ070は、読み出し先バッファ番号(‘0’)に対応するサブバッファ0からデータ(RD5のアレイメモリアドレス)を、アドレス変換回路210に出力する。そして、アドレスバッファ070は、サブ読み出しポインタ0をインクリメントし、‘3’にする。
また、コプロ部060は、命令ADDを実行し、単ループ終了情報をアドレスバッファ070に出力する。そして、アドレスバッファ070は、この単ループ終了情報にしたがって、サブ書き込みポインタ0の値(‘4’)をループ終了ポンタに格納し、ループ終了フラグ0を‘1’にする。
また、コプロ部061は、命令RD8を実行し、アドレスバッファ070にレジスタ4番内のデータ(アレイメモリアドレス)を出力する。そして、アドレスバッファ070は、サブバッファ1に、コプロ部061からのデータ(RD8アレイメモリアドレス)を格納し、サブ書き込みポインタ1をインクリメントし、‘4’にする。
[サイクル10]においては、アドレスバッファ070は、サブバッファ0からデータ(RD6のアレイメモリアドレス)を、アドレス変換回路210に出力し、サブ読み出しポインタ0をインクリメントし、‘4’にする。
また、コプロ部061は、命令ADDを実行し、単ループ終了情報をアドレスバッファ070に出力する。そして、アドレスバッファ070は、コプロ部061からの単ループ終了情報にしたがって、書き込みポインタ1の値(‘4’)をループ終了ポンタに格納し、ループ終了フラグ1を‘1’にする。
[サイクル11]においては、ループ終了フラグ0の値=‘1’、かつ、サブ読み出しポインタ0の値(‘4’)=ループ終了ポインタの値(‘4’)である。したがって、アドレスバッファ070は、ループ終了フラグ0を‘0’にし、読み出し先バッファ番号をインクリメントし、‘1’にする。
[サイクル12]においては、アドレスバッファ070は、読み出し先バッファ番号(‘1’)に対応するサブバッファ1からデータ(RD7のアレイメモリアドレス)を、アドレス変換回路210に出力する。そして、アドレスバッファ070は、サブ読み出しポインタ1をインクリメントし、‘3’にする。
[サイクル13]においては、アドレスバッファ070は、サブバッファ1からデータ(RD8のアレイメモリアドレス)を、アドレス変換回路210に出力し、サブ読み出しポインタ1をインクリメントし、‘4’にする。
[サイクル14]においては、ループ終了フラグ1の値=‘1’、かつ、サブ読み出しポインタ1の値(‘4’)=ループ終了ポインタの値(‘4’)である。したがって、アドレスバッファ070は、ループ終了フラグ1を‘0’にし、読み出し先バッファ番号を最初の値である‘0’にする。
次に、アドレス生成部110の動作について説明する。アドレス生成部110の動作は、基本的にアドレス生成部010の動作と同等である。しかし、アドレス生成部110によって実行されるコプロ命令列(プログラム)は、アドレス生成部010で実行されるコプロ命令列(プログラム)と同一である必要はない。
図12は、アドレス生成部110により実行されるコプロ命令列(プログラム)の一例を示す説明図である。図12を参照すると、アドレス生成部010されるコプロ命令列(図9)との違いは、RD命令が、WR命令になっている点である。
アドレス変換回路210は、タイミング制御ユニット300の制御にしたがって、アドレス生成部010〜110から、アレイメモリアドレスを順次受け取り、たとえば、引用文献1と同様な処理を行う。
次に、第2の実施の形態の効果について説明する。
第2の実施の形態は、第1の実施の形態の一例である。したがって、第2の実施の形態は、第1の実施の形態と同一の効果を持つ。
[第3の実施の形態]
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図13は、第3の実施の形態の構成を示すブロック図である。図13を参照すると、第3の実施の形態のアドレス生成部010は、ローカルメモリ030を、アドレス生成用プロセッサ020の内部に含む(内蔵する)構成である。したがって、コプロ部060〜06rからローカルメモリ030へのアクセスに関して、転送制御部040は、アドレス生成用プロセッサ020を介して、ローカルメモリ030にアクセスする。
ローカルメモリ030には、アドレス生成用プロセッサ020により実行される命令列(図10)、および、コプロ部060〜06rで実行される命令列(図9等)、コプロ用データが格納可能である。ローカルメモリ030は、たとえば、デュアルポートのメモリで構成可能である。
第3の実施の形態の動作は、第1の実施の形態(詳細には、第2の実施の形態)と基本的に同一である。
次に、第3の実施の形態の効果について説明する。
第3の実施の形態は、アドレス生成用プロセッサ020により実行される命令列、コプロ部060〜06rで実行される命令列、および、コプロ用データが、ローカルメモリ030に格納される構成である。したがって、第1、第2の実施の形態より、プログラムの配置が簡単になり、使い勝手が向上するという効果を持つ。
[第4の実施の形態]
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。
第4の実施の形態においては、アドレス生成用プロセッサ020は、新たな特殊命令であるコプロ命令バースト転送命令を実行可能である。図14は、コプロ命令バースト転送命令(C_Inst_Burst)の書式を示す説明図である。図14を参照すると、この命令は、メモリアドレス(16[ビット])、および、転送サイズ(12[ビット])を含む。
アドレス生成用プロセッサ020は、本命令を実行すると、ローカルメモリ030からメモリアドレスを起点として、転送サイズ分のコプロ命令を読み出し、コプロ命令バッファ050〜05rに格納する。また、図15は、アドレス生成用プロセッサ020により実行される命令列(プログラム)の一例を示す説明図である。図15を参照すると、コプロ命令バースト転送命令の使用により、コプロ命令の転送のための5命令が1命令で、コーディング可能となる。
次に、第4の実施の形態の効果について説明する。
第4の実施の形態は、コプロ命令の転送のためにコプロ命令バースト転送命令を使用可能であり、アドレス生成用プロセッサ020で実行される命令列(プログラム)のプログラム容量が減少する構成である。したがって、第4の実施の形態は、第2〜第3の実施の形態に比べて、コーディング量が減少し、かつ、コーディングが容易であるという効果を持つ。
[第5の実施の形態]
次に、本発明の第5の実施の形態について図面を参照して詳細に説明する。
図16は、第5の実施の形態の構成を示すブロック図である。図16を参照すると、アドレス生成用プロセッサ020が、コプロ部060〜06rと同様、アレイメモリアドレスの生成、出力を行う機能を持つ。また、アドレスバッファ070は、アドレス生成用プロセッサ020用のサブバッファAを備える。
なお、アドレス生成用プロセッサ020とコプロ部060〜06rのアドレス生成、出力の優先度に関しては、種々可能である。たとえば、アドレス生成用プロセッサ020にコプロ部060〜06rと同様に番号を割り当て、これを用いて優先度が決定されてもよい。また、コプロ部060〜06rの動作中においては、アドレスバッファ070は、アドレス生成用プロセッサ020からのアレイメモリアドレスをアドレス変換回路210に出力しない構成が可能である。そして、この場合、アドレスバッファ070は、コプロ部060〜06rからのアレイメモリアドレスの出力後に、アドレス生成用プロセッサ020からのアレイメモリアドレスを出力する。
また、第5の実施の形態では、アドレス生成用プロセッサ020は、新たな特殊命令である読み出しアドレス生成命令を実行可能である。図17は、読み出しアドレス生成命令(RDA)の書式を示す説明図である。図17を参照すると、この命令は、ソースレジスタ番号(4[ビット])を含む。
アドレス生成用プロセッサ020は、本命令を実行すると、ソースレジスタからアレイメモリアドレスを読み出し、アドレスバッファ070に出力する。また、図18は、アドレス生成用プロセッサ020で実行される命令列(プログラム)の一例を示す説明図である。図18を参照すると、このプログラムは、第4の実施の形態のプログラム(図15)と基本的に同一であるが、28行目に読み出しアドレス生成命令(RDA)を含んでいる。
次に、第5の実施の形態の動作について図面を参照して説明する。
図19は、第5の実施の形態の動作を示すタイムチャートである。図19の動作は、図11の動作と基本的に同一である。
[サイクル2]においては、アドレス生成用プロセッサ020は、RDA命令を実行し、アレイメモリアドレスを出力し、アドレスバッファ070は、サブバッファAに、そのアレイメモリアドレスを格納する。
[サイクル15]においては、アドレスバッファ070は、コプロ部060〜061からのアレイメモリアドレスの出力が終了したので、サブバッファAに格納したアドレス生成用プロセッサ020からのアレイメモリアドレスを出力する。
次に、第5の実施の形態の効果について説明する。
第5の実施の形態は、アドレス生成用プロセッサ020、コプロ部060〜06rが両方とも、アレイメモリアドレスを生成する構成である。したがって、第5の実施の形態は、より高速に処理を実施できるという効果を持つ。
[第6の実施の形態]
次に、本発明の第6の実施の形態について説明する。
第6の実施の形態においては、コプロ部060〜06rが、アレイメモリアドレスをアドレスバッファ070に出力する時に、ループレジスタ084等の値を付加情報として出力する。アドレスバッファ070は、この付加情報を利用し、制御を実施する。アドレスバッファ070は、付加情報内のループレジスタ084等の値が、前回受け取った付加情報内のループレジスタ084等の値と同一であれば、同じコプロ部060〜06rに対する処理を行う。同一でなければ、アドレスバッファ070は、別のコプロ部060〜06rに対する処理を行う。
次に、第6の実施の形態の効果について説明する。
第6の実施の形態は、アレイメモリアドレスに付随する不可情報を使用する構成である。したがって、第6の実施の形態は、アドレスバッファ070の構成が簡単になるという効果を持つ。
また、以上の実施の形態を任意に組み合わせる構成が可能である。
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
ローカルメモリと、
複数のコプロ命令バッファと、
前記ローカルメモリへのアクセスの調停を行う転送制御部と、
前記ローカルメモリから前記転送制御部を介してコプロ命令列を読み出し、前記コプロ命令バッファに格納し、制御指示情報を出力するアドレス生成用プロセッサと、
前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、出力するコプロセッサである複数のコプロ部と、
前記アレイメモリアドレスを格納し、出力するアドレスバッファと、
を備えるアドレス生成部を含むことを特徴とする情報処理システム。
[付記2]
前記アドレス生成部の前記アドレスバッファは、前記アレイメモリアドレスを前記コプロ部ごとに格納し、前記コプロ部ごとにまとめて出力することを特徴とする付記1の情報処理システム。
[付記3]
前記アドレス生成部の前記アドレス生成用プロセッサは、前記制御指示情報である処理開始指示と共に、処理繰り返し数を出力し、
前記アドレス生成部の前記コプロ部は、前記処理開始指示を受け取ると、前記処理繰り返し数を含む計算式に基づいてループ数を算出し、対応する前記コプロ命令バッファに格納されている前記コプロ命令列を前記ループ数分繰り返し実行することを特徴とする付記1、または、2の情報処理システム。
[付記4]
前記アドレス生成部の前記コプロ部は、それぞれ、前記処理繰り返し数、および、前記コプロ部の総数、および、前記コプロ部の番号を含む前記計算式に基づいて前記ループ数を算出することを特徴とする付記3の情報処理システム。
[付記5]
前記アドレス生成部の前記アドレス生成用プロセッサは、前記ローカルメモリを内蔵し、
前記アドレス生成部の前記転送制御部は、前記アドレス生成用プロセッサを介して、前記ローカルメモリにアクセスことを特徴とする付記1、2、3、または、4の情報処理システム。
[付記6]
前記アドレス生成部の前記アドレス生成用プロセッサは、前記アレイメモリアドレスを生成、出力し、
前記アドレス生成部の前記アドレスバッファは、前記アドレス生成用プロセッサからの前記アレイメモリアドレスを格納し、出力することを特徴とする付記1、2、3、4、または、5の情報処理システム。
[付記7]
アレイメモリと、
アドレス演算装置と、
前記アドレス生成部の前記アドレスバッファからのアレイメモリアドレスを、前記アレイメモリを実際にアクセする実アレイメモリアドレスに変換し、前記アレイメモリに出力するアドレス変換回路と、
を含むことを特徴とする付記1、2、3、4、5、または、6の情報処理システム。
[付記8]
アドレス生成用プロセッサは、ローカルメモリから転送制御部を介してコプロ命令列を読み出し、コプロ命令バッファに格納し、制御指示情報を出力し、
複数のコプロ部は、前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力することを特徴とする情報処理方法。
[付記9]
前記アドレスバッファは、前記アレイメモリアドレスを前記コプロ部ごとに格納し、前記コプロ部ごとにまとめて出力することを特徴とする付記8の情報処理方法。
[付記10]
前記アドレス生成用プロセッサは、前記制御指示情報である処理開始指示と共に、処理繰り返し数を出力し、
前記アドレス生成部の前記コプロ部は、前記処理開始指示を受け取ると、前記処理繰り返し数を含む計算式に基づいてループ数を算出し、対応する前記コプロ命令バッファに格納されている前記コプロ命令列を前記ループ数分繰り返し実行することを特徴とする付記8、または、9の情報処理方法。
[付記11]
前記アドレス生成部の前記コプロ部は、それぞれ、前記処理繰り返し数、および、前記コプロ部の総数、および、前記コプロ部の番号を含む前記計算式に基づいて前記ループ数を算出することを特徴とする付記10の情報処理方法。
[付記12]
前記アドレス生成用プロセッサは、前記ローカルメモリを内蔵し、
前記転送制御部は、前記アドレス生成用プロセッサを介して、前記ローカルメモリにアクセスことを特徴とする付記8、9、10、または、11の情報処理方法。
[付記13]
前記アドレス生成部の前記アドレス生成用プロセッサは、前記アレイメモリアドレスを生成、出力し、
前記アドレス生成部の前記アドレスバッファは、前記アドレス生成用プロセッサからの前記アレイメモリアドレスを格納し、出力することを特徴とする付記8、9、10、11、または、12の情報処理方法。
[付記14]
複数のコプロ部が制御指示情報にしたがって、対応するコプロ命令バッファからコプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力するように、前記コプロ命令列をローカルメモリから転送制御部を介して読み出し、前記コプロ命令バッファに格納し、前記制御指示情報を出力する処理を、
コンピュータに実行させることを特徴とするプログラム。
[付記15]
前記コプロ部が前記処理開始指示を受け取ると、前記処理繰り返し数を含む計算式に基づいてループ数を算出し、対応する前記コプロ命令バッファに格納されている前記コプロ命令列を前記ループ数分繰り返し実行するように、前記制御指示情報である処理開始指示と共に、処理繰り返し数を出力する処理を、
コンピュータに実行させることを特徴とする付記14のプログラム。
[付記16]
前記コプロ部が、それぞれ、前記処理繰り返し数、および、前記コプロ部の総数、および、前記コプロ部の番号を含む前記計算式に基づいて前記ループ数を算出するように、前記処理繰り返し数を出力する処理を、
コンピュータに実行させることを特徴とする付記15のプログラム。
[付記17]
前記アドレスバッファに格納し、出力するための前記アレイメモリアドレスを生成、出力する処理を、
コンピュータに実行させることを特徴とする特徴とする付記14、15、または、16のプログラム。
010 アドレス生成部
020 アドレス生成用プロセッサ
030 ローカルメモリ
040 転送制御部
050 コプロ命令バッファ
051 コプロ命令バッファ
05r コプロ命令バッファ
05W0 命令書き込みポインタ
05R0 命令読み出しポインタ
060 コプロ部
061 コプロ部
06r コプロ部
070 アドレスバッファ
081 アドレス生成処理部
082 コプロ制御部
083 レジスタファイル
084 ループレジスタ
110 アドレス生成部
120 アドレス生成用プロセッサ
130 ローカルメモリ
140 転送制御部
150 コプロ命令バッファ
151 コプロ命令バッファ
160 コプロ部
161 コプロ部
170 アドレスバッファ
200 アドレス相互接続網
210 アドレス変換回路
300 タイミング制御ユニット
400 アレイメモリ
410 メモリバンク(#0)
41j メモリバンク(#j)
500 アレイ演算装置
900 情報処理システム

Claims (10)

  1. ローカルメモリと、
    複数のコプロ命令バッファと、
    前記ローカルメモリへのアクセスの調停を行う転送制御部と、
    前記ローカルメモリから前記転送制御部を介してコプロ命令列を読み出し、前記コプロ命令バッファに格納し、制御指示情報を出力するアドレス生成用プロセッサと、
    前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、出力するコプロセッサである複数のコプロ部と、
    前記アレイメモリアドレスを格納し、出力するアドレスバッファと、
    を備えるアドレス生成部を含むことを特徴とする情報処理システム。
  2. 前記アドレス生成部の前記アドレスバッファは、前記アレイメモリアドレスを前記コプロ部ごとに格納し、前記コプロ部ごとにまとめて出力することを特徴とする請求項1の情報処理システム。
  3. 前記アドレス生成部の前記アドレス生成用プロセッサは、前記制御指示情報である処理開始指示と共に、処理繰り返し数を出力し、
    前記アドレス生成部の前記コプロ部は、前記処理開始指示を受け取ると、前記処理繰り返し数を含む計算式に基づいてループ数を算出し、対応する前記コプロ命令バッファに格納されている前記コプロ命令列を前記ループ数分繰り返し実行することを特徴とする請求項1、または、2の情報処理システム。
  4. 前記アドレス生成部の前記コプロ部は、それぞれ、前記処理繰り返し数、および、前記コプロ部の総数、および、前記コプロ部の番号を含む前記計算式に基づいて前記ループ数を算出することを特徴とする請求項3の情報処理システム。
  5. 前記アドレス生成部の前記アドレス生成用プロセッサは、前記ローカルメモリを内蔵し、
    前記アドレス生成部の前記転送制御部は、前記アドレス生成用プロセッサを介して、前記ローカルメモリにアクセスことを特徴とする請求項1、2、3、または、4の情報処理システム。
  6. 前記アドレス生成部の前記アドレス生成用プロセッサは、前記アレイメモリアドレスを生成、出力し、
    前記アドレス生成部の前記アドレスバッファは、前記アドレス生成用プロセッサからの前記アレイメモリアドレスを格納し、出力することを特徴とする請求項1、2、3、4、または、5の情報処理システム。
  7. アレイメモリと、
    アドレス演算装置と、
    前記アドレス生成部の前記アドレスバッファからのアレイメモリアドレスを、前記アレイメモリを実際にアクセする実アレイメモリアドレスに変換し、前記アレイメモリに出力するアドレス変換回路と、
    を含むことを特徴とする請求項1、2、3、4、5、または、6の情報処理システム。
  8. アドレス生成用プロセッサが、ローカルメモリから転送制御部を介してコプロ命令列を読み出し、コプロ命令バッファに格納し、制御指示情報を出力し、
    複数のコプロ部が、前記制御指示情報にしたがって、対応する前記コプロ命令バッファから前記コプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力することを特徴とする情報処理方法。
  9. 前記アドレスバッファが、前記アレイメモリアドレスを前記コプロ部ごとに格納し、前記コプロ部ごとにまとめて出力することを特徴とする請求項8の情報処理方法。
  10. 複数のコプロ部が制御指示情報にしたがって、対応するコプロ命令バッファからコプロ命令列を読み出し、実行し、アレイメモリアドレスを生成し、アドレスバッファに出力するように、前記コプロ命令列をローカルメモリから転送制御部を介して読み出し、前記コプロ命令バッファに格納し、前記制御指示情報を出力する処理を、
    コンピュータに実行させることを特徴とするプログラム。
JP2014139754A 2014-07-07 2014-07-07 情報処理システム、情報処理方法、および、プログラム Pending JP2016018320A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014139754A JP2016018320A (ja) 2014-07-07 2014-07-07 情報処理システム、情報処理方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014139754A JP2016018320A (ja) 2014-07-07 2014-07-07 情報処理システム、情報処理方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2016018320A true JP2016018320A (ja) 2016-02-01

Family

ID=55233518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014139754A Pending JP2016018320A (ja) 2014-07-07 2014-07-07 情報処理システム、情報処理方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2016018320A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020038502A (ja) * 2018-09-04 2020-03-12 富士通株式会社 演算処理装置、情報処理装置及び情報処理装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020038502A (ja) * 2018-09-04 2020-03-12 富士通株式会社 演算処理装置、情報処理装置及び情報処理装置の制御方法
JP7137058B2 (ja) 2018-09-04 2022-09-14 富士通株式会社 演算処理装置、情報処理装置及び情報処理装置の制御方法

Similar Documents

Publication Publication Date Title
CN109542515B (zh) 运算装置及方法
US10255228B2 (en) System and method for performing shaped memory access operations
US9606808B2 (en) Method and system for resolving thread divergences
US9164951B2 (en) Multiprocessor system, execution control method and execution control program
US10007527B2 (en) Uniform load processing for parallel thread sub-sets
US9262174B2 (en) Dynamic bank mode addressing for memory access
TWI798605B (zh) 多處理器裝置及用於操作多處理器系統之方法
US9727504B2 (en) Data transfer apparatus, data transfer method, and data transfer program
TWI764997B (zh) 圖形處理單元及處理圖形應用程式的方法
Schroeder Peer-to-peer & unified virtual addressing
CN117453594A (zh) 数据传输装置及方法
JP4985452B2 (ja) ベクトル処理装置
JP2016018320A (ja) 情報処理システム、情報処理方法、および、プログラム
KR101715456B1 (ko) 스레드 오프셋 카운터
US11593115B2 (en) Processor, device, and method for executing instructions
JP5025521B2 (ja) 半導体装置
CN115905038B (zh) 缓存数据读取方法、装置、计算机设备和存储介质
US8819378B2 (en) Data processing apparatus and method for performing memory transactions within such a data processing apparatus
JP2007048019A (ja) エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
US10884738B2 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP5701930B2 (ja) 半導体装置
JP2007048020A (ja) エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
JP2005301589A (ja) データ処理装置
JP2011242995A (ja) 半導体装置
JP2014149745A (ja) アクセラレータ及びアクセラレータ制御方法