JP7010129B2 - プロセッサ及び情報処理装置 - Google Patents

プロセッサ及び情報処理装置 Download PDF

Info

Publication number
JP7010129B2
JP7010129B2 JP2018080846A JP2018080846A JP7010129B2 JP 7010129 B2 JP7010129 B2 JP 7010129B2 JP 2018080846 A JP2018080846 A JP 2018080846A JP 2018080846 A JP2018080846 A JP 2018080846A JP 7010129 B2 JP7010129 B2 JP 7010129B2
Authority
JP
Japan
Prior art keywords
processor
reduction
control information
value
communication unit
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.)
Active
Application number
JP2018080846A
Other languages
English (en)
Other versions
JP2019191704A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018080846A priority Critical patent/JP7010129B2/ja
Priority to US16/360,069 priority patent/US10983932B2/en
Publication of JP2019191704A publication Critical patent/JP2019191704A/ja
Application granted granted Critical
Publication of JP7010129B2 publication Critical patent/JP7010129B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30101Special purpose registers
    • 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/30181Instruction operation extension or modification
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、プロセッサ及び情報処理装置に関する。
並列計算では、データは複数のプロセッサに分割して配置され、各プロセッサの計算結果の値を集約・交換する処理が繰り返される。ここで、集約した値の総和を次の処理が用いる場合、集約の途中で値同士の加算を行えば、プロセッサ間の通信量を削減することができる。このような並列処理は縮約演算と呼ばれる。分散メモリ型の並列計算機ではプロセッサ間データ転送のコストが高いため、縮約演算は特に重要となる。
分散メモリ型の並列計算機で縮約演算を行う場合、各プロセッサはマイクロ秒オーダーの通信とマイクロ秒未満の計算を繰り返す。また、並列計算機システムではマルチタスクのオペレーティングシステムが稼働しており、各プロセッサは秒オーダーの間隔で強制的にタスクを切り替える。並列計算機システムでは通常、強制的に切り替えられた計算タスクが再び走行するまでミリ秒オーダーの時間がかかる。このオーバーヘッドはシステムノイズと呼ばれる。システムノイズは単一プロセッサの計算時間に対しては大きな影響を及ぼさないが、縮約演算に対しては破滅的な影響を及ぼすことが知られている。
縮約演算に対するシステムノイズの影響は、計算タスクと並行して走行しているシステム管理タスク等の数を減らす、各システム管理タスクはごく短時間の処理を行い直ちに待機状態に移行する等の対策により、ある程度緩和可能である。しかし、マルチタスクのオペレーティングシステムを使用し、かつプロセッサが通信と計算の処理を行っている限り、根本的にはシステムノイズの影響を回避することはできない。
そこで、多くの並列計算機システムでは、インターコネクトデバイスに縮約演算専用の装置又は回路を搭載し、システムノイズの影響を回避する。ここで、インターコネクトデバイスは、他のプロセッサと通信を行う通信装置である。また、インターコネクトデバイスに搭載された縮約演算装置はインターコネクトデバイスのIOレジスタ経由でアクセスされる。例えば、縮約演算装置を制御するための制御情報、縮約演算される値はIOレジスタ経由で縮約演算装置に渡される。
なお、並列計算機システムに関する従来技術として、ファイルサーバとの間のデータ転送の負荷を軽減する技術がある。この技術では、並列計算処理を行う複数の情報処理装置のうちの1つの情報処理装置は、算出部と、決定部と、転送部とを有する。算出部は、第1のデータ長と、第2のデータ長と、複数の情報処理装置のそれぞれの位置情報とに基づき複数の情報処理装置の重心位置を算出する。ここで、第1のデータ長は、自情報処理装置以外の各情報処理装置から取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータの長さである。第2のデータ長は、自情報処理装置が次にファイルサーバに読み込み又は書き込みを要求するデータの長さである。決定部は、重心位置に応じて複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する。転送部は、データ中継を行う情報処理装置が自情報処理装置である場合、複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめてファイルサーバとの間で転送する。
また、従来技術として、エミュレートされた共有メモリアーキテクチャのためのプロセッサアーキテクチャ構成体がある。このプロセッサアーキテクチャ構成体は、各々がインタリーブスレッド間パイプラインと、データに算術演算および論理演算を実行するための複数の機能ユニットとを備えるい複数のマルチスレッドプロセッサを備える。パイプラインは少なくとも2つの並列に動作可能なパイプラインブランチを含む。第1のパイプラインブランチは、整数演算を実行するように配列されたALU(Arithmetic Logic Unit)等の複数の機能ユニットの第1のサブグループを含む。第2のパイプラインブランチは、浮動小数点演算を実行するように配列されたFPU(Floating-Point Unit)等の複数の機能ユニットの第2の非オーバーラップのサブグループをむ。さらに、浮動小数点演算のために配列された少なくとも第2のサブグループの機能ユニットのうちの1つ又は複数が、パイプラインのメモリアクセスセグメントと並列に動作可能に配置される。
特開2017-21618号公報 特表2016-534433号公報 特開2012-58958号公報 特開2012-128808号公報 特開2012-128809号公報
"The Case of the Missing Supercomputer Performance:Achieving Optimal Performance on the 8,192 Processors of ASCI Q," Fabrizio Petrini et al., the ACM/IEEE Conference on Supercomputing (SC03), 2003. "Unfolding the IBM E-server Blue Gene Solution," IBM Redbooks, pp.27-29, 2005. "The Tofu Interconnect 2," Yuichiro Ajima et al., IEEE 22nd Annual Symposium on High Performance Interconnects (HOTI), 2014.
プロセッサは、深いパイプラインで構成され、さらに命令処理結果のレジスタやメモリへの書き込みを遅延するバッファを備え、命令実行順序の入れ替えや、分岐命令の後続命令の投機的実行を行ってパイプラインの充填率を向上している。プロセッサは、IOレジスタにアクセスする際、プロセッサによるメモリやIOレジスタへのアクセスの、プロセッサ外部から見た順序を保証する必要がある。
そのため、IOレジスタへのアクセスに先立って、先行命令処理結果のCPU(Central Processing Unit)レジスタやメモリへの書き込みを完了させる必要がある。この制約により、IOレジスタへのアクセスは、パイプラインへの命令投入を停止させるオーバーヘッドを伴うので、プロセッサ実行性能低下の原因となる。プロセッサがIOレジスタ経由でインターコネクトデバイスに縮約演算を指示する場合、オーバーヘッドの大きなIOレジスタへのアクセスを複数回(制御情報で1回、値で1回以上)行うことになり、プロセッサ実行性能が低下するという問題がある。
なお、IOレジスタの代わりにDMA(Direct Memory Access)を使用することが考えられる。具体的には、プロセッサは、メインメモリ上に縮約演算の制御情報と値を書き込んだ後、DMAでインターコネクトデバイスに制御情報と値を転送する。しかし、DMAの起動には最低限のIOレジスタへのアクセスを含む制御が必要であり、DMA起動のオーバーヘッドを避けることはできない。
本発明は、1つの側面では、縮約演算装置に制御情報と値を渡す場合のプロセッサ実行性能の低下を防ぐことを目的とする。
1つの態様では、プロセッサは、複数のプロセッサコアと、他のプロセッサと通信する通信部と、メインメモリを制御するメモリコントローラとを有する。また、プロセッサは、複数のプロセッサコア、通信部及びメモリコントローラを接続するバスと、バスと通信部に接続される縮約演算バッファとを有する。プロセッサコアは、通信部が備える縮約演算装置を制御する制御情報と該縮約演算装置が演算を行う値とを縮約演算バッファに書き込む。通信部は、縮約演算バッファから制御情報と値を読み出して縮約演算装置に渡す。
1つの側面では、本発明は、縮約演算装置に制御情報と値を渡す場合のプロセッサ実行性能の低下を防ぐことができる。
図1は、実施例に係る分散メモリ型並列計算機の構成を示す図である。 図2は、ノードの構成を示す図である。 図3は、インターコネクトデバイスによる1組の制御情報と値の選択を説明するための図である。 図4は、制御情報と値の転送シーケンスを示す図である。
以下に、本願の開示するプロセッサ及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る分散メモリ型並列計算機の構成について説明する。図1は、実施例に係る分散メモリ型並列計算機の構成を示す図である。図1に示すように、実施例に係る分散メモリ型並列計算機1は、メッシュ状に配置された複数のノード2を有する。なお、ここでは説明の便宜上、2次元に配置される場合を示すが、ノード2は、3次元、6次元等の、より高次元に配置されてもよい。また、ノード2は、トーラス状に配置されてもよい。
ノード2は、他のノード2と連携して並列処理を行う情報処理装置である。ノード2は、インターコネクトデバイス34を有し、インターコネクトデバイス34を介して上下左右のノード2と通信を行う。
図2は、ノード2の構成を示す図である。図2に示すように、ノード2は、プロセッサSoC(System-on-Chip)3と、メインメモリ4と、HDD(Hard Disk Drive)5とを有する。プロセッサSoC3は、複数のプロセッサコア31を含むプロセッサ・チップである。メインメモリ4は、プログラムやプログラムの実行途中結果などを記憶するメモリである。HDD5は、プログラムやデータを格納するディスク装置である。
プロセッサSoC3は、4個のプロセッサコア31と、メモリコントローラ32と、周辺デバイス33と、インターコネクトデバイス34と、ブリッジ35と、縮約演算専用バッファ36とを有する。なお、プロセッサSoC3は、8個、16個等のより多くのプロセッサコア31を有してもよい。
4個のプロセッサコア31、メモリコントローラ32、ブリッジ35及び縮約演算専用バッファ36は、キャッシュコヒーレントバス37で接続される。ブリッジ35、周辺デバイス33及びインターコネクトデバイス34はペリフェラルバス38で接続される。
プロセッサコア31は、メインメモリ4からプログラムを読み出して実行する。プロセッサコア31は、複数のCPUレジスタを有する。メモリコントローラ32は、メインメモリ4と接続され、メインメモリ4からのプログラム及びデータの読み出し、メインメモリ4へのプログラム及びデータの書き込みを制御する。
周辺デバイス33は、HDD5等の周辺装置と接続するインタフェースである。周辺デバイス33は、LAN(Local Area Network)と接続する。周辺デバイス33は、IOレジスタ39を有する。プロセッサコア31は、CPUレジスタの内容をIOレジスタ39に書き込む命令、もしくはIOレジスタ39の内容をCPUレジスタに読み出す命令により、周辺デバイス33にアクセスする。IOレジスタ39は、プロセッサコア31のIO空間もしくはメモリ空間にマップされる。
インターコネクトデバイス34は、他のノード2のプロセッサSoC3と通信を行う。インターコネクトデバイス34は、IOレジスタ40と縮約演算装置41を有する。プロセッサコア31は、CPUレジスタの内容をIOレジスタ40に書き込む命令、もしくはIOレジスタ40の内容をCPUレジスタに読み出す命令により、インターコネクトデバイス34にアクセスする。IOレジスタ40は、プロセッサコア31のIO空間もしくはメモリ空間にマップされる。
縮約演算装置41は、縮約演算を行う。縮約演算には、総和、総乗、総論理和、総論理積、最大値及び最小値がある。縮約演算装置41は、それぞれの縮約演算に対応する演算器を有する。
1ユーザーが並列プログラムを実行する際に使用するプロセッサコア31は分散メモリ型並列計算機1の一部である。また、縮約演算は並列プログラムが複数プロセッサコア31に分割したデータのうちの一部だけで行われる場合があるので、縮約演算装置41は利用するユーザー及びユーザーが実行する複数の縮約演算グループを識別する機能を備える。ここで、並列プログラムが複数プロセッサコア31に分割したデータのうちの一部とは、例えば2次元に分割したデータの該当行もしくは該当列のデータである。
また、並列プログラムは縮約演算を含む繰り返し処理を行う場合があり、前後の縮約演算が相互にデータを破壊するレーシングが起きないように、縮約演算装置41は縮約演算の順序を識別してデータを保護する管理機能を備える。
縮約演算装置41の機能を利用する際、ユーザーは、縮約演算グループの設定や縮約演算順序の初期化は事前に行い、縮約演算の種類や縮約演算グループの識別子は縮約演算毎に設定する。プロセッサコア31は、縮約演算の種類や縮約演算グループの識別子を制御情報として縮約演算される値とともに縮約演算装置41に渡す。
ブリッジ35は、キャッシュコヒーレントバス37とペリフェラルバス38を接続する。キャッシュコヒーレントバス37のデータ転送単位は、プロセッサコア31の間及びプロセッサコア31とメモリコントローラ32との間は、キャッシュラインサイズであり、プロセッサコア31と周辺デバイス33との間は、IOレジスタサイズである。また、周辺デバイス33とメモリコントローラ32との間の連続DMAデータがキャッシュコヒーレントバス37を介して転送される。
縮約演算専用バッファ36は、プロセッサコア31が縮約演算装置41に渡す制御情報と値を記憶する。制御情報と値は、プロセッサコア31の複数のCPUレジスタから縮約演算専用バッファ36に転送される。
このため、プロセッサコア31には、連続する複数のCPUレジスタの内容を読み出してバッファに格納し、バッファに格納した内容をキャッシュコヒーレントバス37経由で縮約演算専用バッファ36に転送する機能が必要になる。また、プロセッサコア31には、この機能を起動する機能も必要になる。
これらの機能を実現するための手段としては、プロセッサコア31の命令セットの拡張がある。すなわち、プロセッサコア31は、連続する複数のCPUレジスタの内容を読み出してバッファに格納し、バッファに格納した内容をキャッシュコヒーレントバス37経由で縮約演算専用バッファ36に転送する命令を実行することで制御情報と値を転送する。
また、別の手段として、メモリ書き込み命令又はIO出力命令の利用がある。プロセッサコア31は、特定のメモリ空間へのメモリ書き込みを行うことで制御情報と値を縮約演算専用バッファ36に転送する。あるいは、プロセッサコア31は、特定のアドレスのIOレジスタへの書き込みを行うことで制御情報と値を縮約演算専用バッファ36に転送する。特定のアドレスは、IOレジスタ39及びIOレジスタ40のアドレス以外のアドレスである。
メモリ書き込み命令やIO出力命令ではCPUレジスタは1つしか使われないが、制御情報と値の転送には複数のCPUレジスタが使用される。このため、プロセッサコア31は、複数のCPUレジスタに対してメモリ書き込み命令やIO出力命令を複数実行する際、命令順序の入れ替え機能を一時的に無効化し、誤動作が起きないようにする。
なお、命令セットに複数CPUレジスタの内容を1命令でメインメモリ4に書き込むブロック書き込み命令が存在する場合、プロセッサコア31は、ブロック書き込み命令を使用することで、命令順序入れ替え機能を無効化することはない。
縮約演算専用バッファ36は、インターコネクトデバイス34に直結される。制御情報と値は、縮約演算専用バッファ36から一括してインターコネクトデバイス34に転送される。インターコネクトデバイス34は、制御情報と値を受信して縮約演算装置41に渡す。
また、縮約演算装置41は複数の縮約演算グループに対応するので、縮約演算専用バッファ36は制御情報と値の組を縮約演算グループに対応する数だけ保持する。縮約演算専用バッファ36の内容を全て信号として出力してインターコネクトデバイス34に接続すると信号数が多くなりすぎる。
そこで、縮約演算装置41は、1つの組だけをインターコネクトデバイス34に出力する。どの組の値を出力するかはインターコネクトデバイス34が選択する。このように、1つの組だけをインターコネクトデバイス34に出力することで、縮約演算専用バッファ36から出力する信号線を制御情報と値の組1つ分だけに削減することができる。
このため、インターコネクトデバイス34は、制御情報と値の組を識別するアドレス信号を出力し、縮約演算専用バッファ36はアドレス信号を入力して対応する制御情報と値の組をインターコネクトデバイス34に出力する。
図3は、インターコネクトデバイス34による1組の制御情報と値の選択を説明するための図である。図3に示すように、縮約演算専用バッファ36は、バッファ部36aと選択部36bを有する。バッファ部36aは、制御情報と値の組を複数記憶する。選択部36bは、インターコネクトデバイス34が出力するアドレス信号に基づいてバッファ部36aから1組の制御情報と値を選択し、インターコネクトデバイス34に転送する。
次に、制御情報と値の転送シーケンスについて説明する。図4は、制御情報と値の転送シーケンスを示す図である。なお、図4では、IO出力命令又はメモリ書き込み命令を用いる場合について説明する。また、プロセッサコア31は、ブロック書き込み命令を有さないとする。
図4に示すように、プロセッサコア31は、制御情報と値を連続する複数のCPUレジスタに書き込み(ステップS1)、命令順序の入れ替え機能を無効化する(ステップS2)。そして、プロセッサコア31は、複数のCPUレジスタの内容を、IO出力命令で特定のアドレスのIOレジスタに書き込む、又は、メモリ書き込み命令で特定のアドレス空間に書き込む(ステップS3)。この結果、制御情報と値が縮約演算専用バッファ36に転送される。そして、プロセッサコア31は、命令順序の入れ替え機能を有効化する(ステップS4)。
一方、インターコネクトデバイス34は、縮約演算専用バッファ36に対して、縮約演算グループに対応するアドレス信号を出力する(ステップS5)。すると、縮約演算専用バッファ36は、インターコネクトデバイス34に、アドレス信号に対応する制御情報と値を選択して出力する(ステップS6)。そして、インターコネクトデバイス34は、制御情報と値を受信し、縮約演算装置41に渡す(ステップS7)。
上述してきたように、実施例では、キャッシュコヒーレントバス37とインターコネクトデバイス34に縮約演算専用バッファ36を接続する。そして、プロセッサコア31は、制御情報と値を縮約演算専用バッファ36に転送する。そして、インターコネクトデバイス34は、縮約演算専用バッファ36から制御情報と値を一括して取得する。したがって、プロセッサコア31は、IOレジスタ40を用いることなく制御情報と値をインターコネクトデバイス34に渡すことができ、実行性能の低下を防ぐことができる。
また、実施例では、プロセッサコア31は、IO出力命令で特定のアドレスのIOレジスタに書き込むこと、又は、メモリ書き込み命令で特定のアドレス空間に書き込むことで制御情報と値を縮約演算専用バッファ36に転送する。したがって、プロセッサコア31は、命令セットを拡張しなくても制御情報と値を縮約演算専用バッファ36に渡すことができる。
なお、プロセッサコア31は、複数のCPUレジスタの内容を縮約演算専用バッファ36に書き込む専用命令を有する場合には、IO出力命令やメモリ書き込み命令の代わりに専用の命令を用いて、制御情報と値を縮約演算専用バッファ36に書き込む。この場合、プロセッサコア31は、制御情報と値を縮約演算専用バッファ36に簡単に書き込むことができる。
また、実施例では、プロセッサコア31は、制御情報と値を特定のメモリ空間への複数のメモリ書き込み命令又は特定のアドレスへの複数のIO出力命令を用いて縮約演算専用バッファ36に書き込む際に、命令順序の入れ替え機能を一時的に無効化する。したがって、プロセッサコア31は、ノード2の誤動作を防ぐことができる。
また、実施例では、縮約演算専用バッファ36は、制御情報と値の組を複数有し、インターコネクトデバイス34は、縮約演算専用バッファ36にアドレス信号を出力して特定の組の制御情報と値を取得する。したがって、縮約演算装置41は、複数の縮約演算グループの中から特定の縮約演算グループに対応する組の制御情報と値を取得することができる。
1 分散メモリ型並列計算機
2 ノード
3 プロセッサSoC
4 メインメモリ
5 HDD
31 プロセッサコア
32 メモリコントローラ
33 周辺デバイス
34 インターコネクトデバイス
35 ブリッジ
36 縮約演算専用バッファ
36a バッファ部
36b 選択部
37 キャッシュコヒーレントバス
38 ペリフェラルバス
39 IOレジスタ
40 IOレジスタ
41 縮約演算装置

Claims (6)

  1. 複数のプロセッサコアと、
    他のプロセッサと通信する通信部と、
    メインメモリを制御するメモリコントローラと、
    前記複数のプロセッサコア、前記通信部及び前記メモリコントローラを接続するバスと、
    前記バスと前記通信部に接続される縮約演算バッファとを有し、
    プロセッサコアは、前記通信部が備える縮約演算装置を制御する制御情報と該縮約演算装置が演算を行う値とを前記縮約演算バッファに書き込み、
    前記通信部は、前記縮約演算バッファから前記制御情報と値を読み出して前記縮約演算装置に渡すことを特徴とするプロセッサ。
  2. 前記プロセッサコアは、前記制御情報と値を専用の命令を用いて前記縮約演算バッファに書き込むことを特徴とする請求項1に記載のプロセッサ。
  3. 前記プロセッサコアは、前記制御情報と値を特定のメモリ空間へのメモリ書き込み命令又は特定のアドレスへのIO出力命令を用いて前記縮約演算バッファに書き込むことを特徴とする請求項1に記載のプロセッサ。
  4. 前記プロセッサコアは、前記制御情報と値を特定のメモリ空間への複数のメモリ書き込み命令又は特定のアドレスへの複数のIO出力命令を用いて前記縮約演算バッファに書き込む際、命令順序の入れ替え機能を一時的に無効化することを特徴とする請求項3に記載のプロセッサ。
  5. 前記縮約演算バッファは、前記制御情報と値の組を複数有し、
    前記通信部は、読み出す組のアドレスを指定して、前記縮約演算バッファから前記制御情報と値とを読み出すことを特徴とする請求項1~4のいずれか1つに記載のプロセッサ。
  6. プロセッサと該プロセッサで実行されるプログラムを記憶するメインメモリとを備え、
    前記プロセッサは、
    複数のプロセッサコアと、
    他の情報処理装置のプロセッサと通信する通信部と、
    前記メインメモリを制御するメモリコントローラと、
    前記複数のプロセッサコア、前記通信部及び前記メモリコントローラを接続するバスと、
    前記バスと前記通信部に接続される縮約演算バッファとを有し、
    プロセッサコアは、前記通信部が備える縮約演算装置を制御する制御情報と該縮約演算装置が演算を行う値とを前記縮約演算バッファに書き込み、
    前記通信部は、前記縮約演算バッファから前記制御情報と値を読み出して前記縮約演算装置に渡すことを特徴とする情報処理装置。
JP2018080846A 2018-04-19 2018-04-19 プロセッサ及び情報処理装置 Active JP7010129B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018080846A JP7010129B2 (ja) 2018-04-19 2018-04-19 プロセッサ及び情報処理装置
US16/360,069 US10983932B2 (en) 2018-04-19 2019-03-21 Processor and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018080846A JP7010129B2 (ja) 2018-04-19 2018-04-19 プロセッサ及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2019191704A JP2019191704A (ja) 2019-10-31
JP7010129B2 true JP7010129B2 (ja) 2022-01-26

Family

ID=68236892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018080846A Active JP7010129B2 (ja) 2018-04-19 2018-04-19 プロセッサ及び情報処理装置

Country Status (2)

Country Link
US (1) US10983932B2 (ja)
JP (1) JP7010129B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163571B1 (en) * 2020-07-29 2021-11-02 International Business Machines Corporation Fusion to enhance early address generation of load instructions in a microprocessor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128808A (ja) 2010-12-17 2012-07-05 Fujitsu Ltd 並列計算機システム、同期装置、並列計算機システムの制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030058875A1 (en) * 2001-09-24 2003-03-27 International Business Machines Corporation Infiniband work and completion queue management via head only circular buffers
US8032892B2 (en) * 2007-06-26 2011-10-04 International Business Machines Corporation Message passing with a limited number of DMA byte counters
US8539204B2 (en) * 2009-09-25 2013-09-17 Nvidia Corporation Cooperative thread array reduction and scan operations
US8332460B2 (en) * 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US8489859B2 (en) * 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8949577B2 (en) * 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
JP5664039B2 (ja) 2010-09-08 2015-02-04 富士通株式会社 リダクション演算装置、処理装置及びコンピュータシステム
JP5549575B2 (ja) 2010-12-17 2014-07-16 富士通株式会社 並列計算機システム、同期装置、並列計算機システムの制御方法
JP2012252374A (ja) * 2011-05-31 2012-12-20 Renesas Electronics Corp 情報処理装置
ITRM20120094A1 (it) * 2012-03-14 2013-09-14 Istituto Naz Di Fisica Nuclea Re Scheda di interfaccia di rete per nodo di rete di calcolo parallelo su gpu, e relativo metodo di comunicazione internodale
JP5598493B2 (ja) * 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
US10229367B2 (en) * 2013-02-06 2019-03-12 Jacob Drew Collaborative analytics map reduction classification learning systems and methods
EP2866138B1 (en) 2013-10-23 2019-08-07 Teknologian tutkimuskeskus VTT Oy Floating-point supportive pipeline for emulated shared memory architectures
US9781225B1 (en) * 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
US9753873B1 (en) * 2014-12-09 2017-09-05 Parallel Machines Ltd. Systems and methods for key-value transactions
JP6503945B2 (ja) 2015-07-13 2019-04-24 富士通株式会社 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
JP2018165913A (ja) * 2017-03-28 2018-10-25 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US10133573B1 (en) * 2017-12-12 2018-11-20 Google Llc Multivalue reductions using serial initial reductions in multiple register spaces and parallel subsequent reductions in a single register space

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128808A (ja) 2010-12-17 2012-07-05 Fujitsu Ltd 並列計算機システム、同期装置、並列計算機システムの制御方法

Also Published As

Publication number Publication date
JP2019191704A (ja) 2019-10-31
US20190324927A1 (en) 2019-10-24
US10983932B2 (en) 2021-04-20

Similar Documents

Publication Publication Date Title
US9542184B2 (en) Local instruction loop buffer utilizing execution unit register file
US9274591B2 (en) General purpose processing unit with low power digital signal processing (DSP) mode
JP3442225B2 (ja) 演算処理装置
CN113495861A (zh) 用于计算的***和方法
JPS6353678A (ja) ベクトル処理装置
Okazaki et al. Supercomputer Fugaku Cpu A64fx realizing high performance, high-density packaging, and low power consumption
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
WO2007002408A2 (en) Computer processor pipeline with shadow registers for context switching, and method
JP2019185764A (ja) Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ―
JP7010129B2 (ja) プロセッサ及び情報処理装置
US11106465B2 (en) Vector add-with-carry instruction
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JPH02306361A (ja) マイクロプロセッサ
WO2018139344A1 (ja) 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体
JP2020140284A (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
KR102650569B1 (ko) 범용 연산 가속기 및 그것의 동작 방법
CN114970844A (zh) 一种通用神经网络张量处理器
JP2023082571A (ja) 演算処理装置及び演算処理方法
JPH0926945A (ja) 情報処理装置
JPH01243123A (ja) 情報処理装置
JP3532026B2 (ja) 演算装置
KR100976628B1 (ko) 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법
JPH06266860A (ja) ベクトル処理プロセッサ
Bhaskar et al. A hybrid closed queuing network approach to model dataflow in networked distributed processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211227

R150 Certificate of patent or registration of utility model

Ref document number: 7010129

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150