JP7069455B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP7069455B2 JP7069455B2 JP2019086434A JP2019086434A JP7069455B2 JP 7069455 B2 JP7069455 B2 JP 7069455B2 JP 2019086434 A JP2019086434 A JP 2019086434A JP 2019086434 A JP2019086434 A JP 2019086434A JP 7069455 B2 JP7069455 B2 JP 7069455B2
- Authority
- JP
- Japan
- Prior art keywords
- bank
- memory
- hash calculation
- hash
- data
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 33
- 238000004364 calculation method Methods 0.000 claims description 195
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 101100184147 Caenorhabditis elegans mix-1 gene Proteins 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000005065 mining Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
仮想通貨システムに関するブロックチェーンは、様々存在するが、代表的なものとしてビットコイン(Bitcoin)や、イーサリアム(Ethereum)があり、これらの仮想通貨システムではプルーフ・オブ・ワーク(PoW)と呼ばれ、ブロック同士をチェーンで繋ぐためのキーであるナンス(nonce)を探し当てるハッシュ関数演算が行われる。
ハッシュ関数演算は、従来CPUやGPUを用いて行われていた。しかし、近年はハッシュ関数演算用のASIC(特定用途向け集積回路)が用いられ、ASICを大量に準備できる資本を有する者が優位な立場にあり、マイニングの中央集権化が問題となりつつある。
そのため、ビットコイン(Bitcoin)のハッシュ関数演算に比較してASIC耐性があるが、イーサリアム(Ethereum)の仮想通貨をマイニング(ナンスの特定)するためには、DAGに格納されたデータへの高速アクセスが課題である。
図8は、従来のイーサリアム(Ethereum)に用いられるプルーフ・オブ・ワーク(PoW)のアルゴリズムの概要を示す図である。
まず、1つ前のブロックヘッダ情報と推測したナンスとをSHA3(Keccak512)のアルゴリズムを用いてハッシュ演算し(ステップS1)、その演算結果(Mix0)を得る。
その後、演算結果(Mix0)をアドレス生成用Mixing関数(FNVハッシュアルゴリズム)でハッシュ演算し、DAGのアドレス情報を求め、求められたアドレスに格納されている128バイトのデータを読み出す(ステップS2)。
このようなアドレス生成用のハッシュ演算と、DAGからのデータ読み出しと、読み出したデータとMix値とを用いたMixデータ生成用のハッシュ演算とを64回繰り返し(ステップS4)、Mix64を得る(ステップS5)。
その後、事後処理関数を用いてデータの圧縮等の処理を行い(ステップS6)、得られたハッシュ値が特定の条件を満たす場合(ターゲットとなる閾値以下)であればプルーフ・オブ・ワーク(PoW)の成功と見なされる(ステップS7)。
DAGのデータセットが格納されているメモリに高速アクセスするためには、メモリとしてHBM(High Bandwidth Memory)やHBM2を利用することが考えられるが、HBMやHBM2はDRAMが用いられているので、DRAMのレイテンシを遮蔽すると共にメモリ帯域を最大限に利用する必要がある。
ハッシュ演算におけるDAGリードのリードアドレスはランダム性を持つことから、単純にハッシュ演算回路を多数準備して並列実行させたとしても、複数のバンクを備えるメモリに対するバンクアクセス競合が避けられず、メモリアクセス効率が落ちてしまう。
本発明の一実施形態は、上記に鑑みてなされたもので、その目的は、多数のハッシュ演算回路から複数のバンクを備えるメモリに対してバンク競合を起こさないように制御することにより、メモリ帯域を最大限に有効活用することにある。
本発明は、複数のバンクを備えたメモリにバンクに対して複数のハッシュ演算回路から同時に異なるバンクを指定してアクセスすることにより、メモリの帯域を有効活用する。
すなわち、本発明の情報処理装置は、複数のバンクを備えたメモリと、複数のハッシュ演算回路と、メモリの各バンクとハッシュ演算回路とを接続するインターコネクトと、を備えた情報処理装置において、各ハッシュ演算回路は、メモリからデータを読み出すためのリードリクエストが同一サイクルにおいてそれぞれが異なるバンクを指定するためのバンク番号を含むように制御することを特徴とする。
以上の構成を備えることにより、複数のバンクを備えたメモリに複数のハッシュ演算回路から同時に異なるバンクを指定してアクセスすることにより、メモリの帯域を有効活用することができる。
上記記載の本発明の特徴について、以下の図面を用いて詳細に解説する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
上記の本発明の特徴に関して、以下、図面を用いて詳細に説明する。
本発明の一実施形態に係る情報処理装置は、プロセッサと高速なメモリ(例として、HBM)とASICやFPGA等の半導体集積回路とを用いてハッシュ関数演算を行うものであり、メモリはマルチバンク構成とし、ハッシュ関数演算を行う半導体集積回路はメモリのアクセスレイテンシを遮蔽するためマルチスレッドを採用し、かつメモリの帯域をフルに使うことができる並列演算を行うものである。
イーサリアム(Ethereum)のプルーフ・オブ・ワーク(PoW)を高速に実現するためには、DAGに格納された128byteのデータ(以下、「DAGデータ」という。)を高速に読み込みすることが効果的である。
そのため、本実施形態では、DAGデータを帯域幅の広いHBM(High Bandwidth Memory)やHBM2に格納する。
HBMやHBM2は、DRAMをスタックした構成であるため、長いアクセスレイテンシが発生する。
本実施形態では、メモリのアクセスレイテンシを遮蔽するため、ハッシュ演算回路はマルチスレッド構成を採用する。
情報処理装置100は、メモリ1と、インターコネクト2と、複数のハッシュ演算クラスタ3と、を備えている。
メモリ1は、HBM2(High Bandwidth Memory 2)と呼ばれ、複数のバンク(本実施形態では32個のバンク)を有するマルチバンク構成のDRAM(Dynamic Random Access Memory)である。
インターコネクト2は、前記メモリ1とハッシュ演算クラスタ3に含まれる各ハッシュ演算回路8とを接続している。
各ハッシュ演算クラスタ(HCL(0)~HCL(7))3は、ナンス生成回路4、チェック回路5、ケチャック回路(512)6、ケチャック回路(256)7、複数のハッシュ演算回路8を備えている。
ナンス生成回路4は、ブロック同士をチェーンで繋ぐためのキーであるナンス候補を生成する回路である。
チェック回路5は、演算結果が所望のものであるか否か(マイニングが成功したか否か)を判定する回路である。
ケチャック回路(512)6は、ケチャック(Keccak)と呼ばれるハッシュ関数演算ロジックであり、ケチャック回路(512)は、背景技術において説明したSHA3と同様に、一つ前のブロックヘッダ情報と推測したナンスをハッシュ化するための回路である。
ケチャック回路(256)7は、ハッシュ演算結果であるMix64をハッシュ演算し、演算結果を圧縮するものである。なお、ケチャック回路(256)7は、背景技術において説明したMixダイジェスト(32b)と同様である。
情報処理装置100には、ハッシュ演算クラスタ3を8個含み、各ハッシュ演算クラスタ3に4個のハッシュ関数部が実装されているので、合計32個のハッシュ演算部HAS(0)~HAS(31)を含んでいる。
一方、各ハッシュ演算クラスタ3には、ケチャック回路(512)6、ケチャック回路(256)7、ナンス生成回路4、チェック回路5がそれぞれ1個ずつ実装され、それらを4つのハッシュ演算回路8で共用している。
ハッシュ演算回路8の実装数はメモリ1の帯域、インターコネクトのバス幅、動作周波数、扱うデータ量によって定める。
例えば、メモリ1の帯域が512GB/secであり、インターコネクト2のバス幅を64byte、動作周波数を250MHzとすると、128byteのDAGデータを処理するハッシュ演算回路8は32個あればメモリ1の帯域を使いきることとなる。すなわち、バス幅64byteのインターコネクト2で128byteのデータを処理するためには2クロックで一回のデータ処理が行われるので、512GB/(128byte×125MHz)=32となる。
また、ケチャック回路(512)6、ケチャック回路(256)7のスループットと、ハッシュ演算回路8のスループットとがバランスがとれるようにハッシュ演算クラスタ3内のハッシュ演算回路8の個数を選定している。
図2は、本発明の一実施形態に係る情報処理装置のハッシュ演算回路、インターコネクト、メモリの関係を示す概要図である。なお、図2に示す各部に付与した符号は図1と同様である。また、図1に示した8つのハッシュ演算クラスタ(HCL(0)~HCL(7))に含まれるハッシュ演算回路(HAS(0)~HAS(3))を説明の都合上、HAS(0)~HAS(31)と通し番号で記載している。
したがって、図2において、HAS(4)はハッシュ演算クラスタHCL(1)のHAS(0)に相当し、HAS(30)、HAS(31)はハッシュ演算クラスタHCL(7)のHAS(2)及びHAS(3)に相当する。
図示したように、各ハッシュ演算回路8からハッシュ演算回路のスレッド番号(後述)及びアドレスが出力され、インターコネクト2のアドレスルータ2Aがハッシュ演算回路の回路番号及びバンク番号を付加し、ハッシュ演算回路からのリードリクエストRRqをメモリ1側に出力する。
また、インターコネクト2のアドレスルータ2Aの出力段では、バンク番号に関するデータを削除し、メモリ1にはアドレス、ハッシュ演算回路番号及びスレッド番号が供給される。メモリ1は供給されたアドレス情報に基づいてDAGデータを読み出し、ハッシュ演算回路番号及びスレッド番号はメモリ1に一時記憶され、読み出されたDAGデータをハッシュ演算回路に出力する際、ハッシュ演算回路番号及びスレッド番号が利用される。なお、インターコネクト2のアドレスルータ2Aはハッシュ演算回路8から出力されたリードリクエストRRqに含まれるアドレス(バンク)バンク番号に応じて、バンク0~バンク31の任意のバンクに接続できるよう構成している。
ここで、図において、RRqはハッシュ演算回路8からのリードリクエストを表し、RDはメモリ1から出力されるDAGデータを表している。
図3(a)は、本発明の一実施形態に係る情報処理装置のインターコネクト2のアドレスルータ2Aの構成、及び各ルータのポート番号を示す図であり、図3(b)は一つのルータのポート構造を示す図である。なお、インターコネクト2のデータルータ2Dもアドレスルータ2Aと同じ構成である。
図3(a)において、符号12はメモリ1に設けられたメモリバンク側I/Oを示し、14Aはインターコネクト2に設けられたアドレスルータ2Aのルーティング部を示し、16はハッシュ演算クラスタ(HCL0~HCL7)に設けられたハッシュ演算回路のI/Oを示している。
ルーティング部14Aは、バンク数及びハッシュ演算回路数に応じてルータ列が決定され、本実施形態のようにバンク数及びハッシュ演算回路数が32個の場合には、32を二進数で表した際のビット数5に等しいルータ列が必要となる。
ルーティング部14Aのハッシュ演算回路のI/Oに接続しているルータ列(R1-1~R1-16)は各ハッシュ演算回路8から出力されるバンク番号(後述するFIFOの番号)の最上位ビット(5ビット目)の“0”または“1”によってルートが制御され、次のルータ列(R2-1~R2-16)は最上位から2番目のビットの値によってルートが制御される。
以下同様にハッシュ演算回路のI/Oから3列目、4列目、5列目のルータ列はそれぞれバンク番号の3ビット目、4ビット目、5ビット目(最下位ビット)のビット値によってルートが制御される。
バンク番号の最下位ビットにより制御されるルータ列(R5-1~R5-16)はメモリ1の各バンクのI/Oへ接続されている。また、ルーティング部14Aは複数のルータをバタフライ接続した構成であり、各ルータは図3(b)に示すように入力2ポート、出力2ポートであり、入力ポートから“0”が入力するとポート0(port0)へ接続し、“1”が入力するとポート1(port1)へ接続するように構成している。
例えば、1列目のルータR1-1のハッシュ演算回路側から見た出力ポートのポート1(port1)は2列目のルータR2-9の入力ポートのポート0(port0)と接続し、同じく1列目のルータR1-8の出力ポートのポート1は2列目のルータR2-16の入力ポートのポート0(port0)と接続している。また、1列目のルータR1-2~R1-7の出力ポート1は2列目のルータR2-10~R2-16の入力ポート0(port0)とそれぞれ接続している。さらに、ルータR1-1~R1-8はいずれもその出力ポート0は2列目のルータ列のR2-1~R2-8の入力ポート0と接続している。
一方、1列目のルータR1-9~R1-16は出力ポート1がそれぞれ2列目のルータ列のR2-9~R2-16の入力ポート1と接続し、出力ポート0がそれぞれ2列目のルータ列のR2-1~R2-8の入力ポート1と接続するよう結線されている。
2列目から5列目の各入出力ポートの接続は図3(a)に示した通りである。
また、ハッシュ演算回路の回路番号0がメモリ1のバンク番号31を指定した場合、ハッシュ演算回路からルーティング部14Aに入力されるバンク番号は11111となり、ルータR1-1、R2-9、R3-13、R4-15、R5-16のすべてのルータでポート1出力となり、バンク31に接続しているI/Oとの間でデータの送信ができることとなる。
すなわち、初期値として、ハッシュ演算回路の回路番号として偶数番号(0、2、4、・・・30)をメモリ1のバンク番号0~15に割り当て、ハッシュ演算回路の回路番号として奇数番号(1、3、5、・・・31)をメモリ1のバンク番号16~31に割り当てることで、データの衝突を回避している。このように構成することにより、同じルータに接続した2つの異なるハッシュ演算回路から出力されるバンク番号の最上位ビットが必ず異なり、調停が不要となるのでデータの転送速度を向上することができる。
ハッシュ演算回路8から出力される、メモリ1のバンク番号を表すビットは、ルーティング部14Aを制御し、メモリアドレスはバンク内のDAGデータを読み出すアドレスであり、ハッシュ演算回路8の回路番号はメモリ1から読み出したデータを要求元であるハッシュ演算回路8に戻すために用いられ、スレッド番号はハッシュ演算回路8のスレッドを制御するために用いられる。
次に、メモリ1のバンクから読み出されたDAGデータをリクエスト元のハッシュ演算回路に転送する制御について説明する。
メモリ1のバンクから読み出されたDAGデータをリクエスト元のハッシュ演算回路に転送する際はデータルータ2Dを介してDAGデータが転送される。データルータ2Dは図3(a)に示したアドレスルータ2Aと同じ構成であり、データの流れがアドレスルータ2Aと異なるだけである。
先に述べたように、ハッシュ演算回路8は、自己の回路番号をアドレスルータ2Aのルーティング部14Aに供給しているので、リードリクエストRRqの結果、各バンクから読み出したデータ転送の際に、データルータ2Dのルーティング部14Aはこの回路番号を利用してルーティングを行う。
例えば、ハッシュ演算回路の回路番号1からバンク番号16を表す値「10000」がアドレスルータ2Aルーティング部に入力され、バンク番号に基づきルーティングが制御され、メモリ1のバンク番号「16」にリードリクエストRRqが行われると、メモリ1のバンク番号「16」から読み出されたDAGデータはデータルータ2Dを介して要求元であるハッシュ演算回路の回路番号1に転送される。
ハッシュ演算回路の回路番号1は、回路番号として00001をアドレスルータ2Aに供給し、インターコネクト2のルーティングコントローラ(図示省略)は受け取った回路番号を、10000に変換すると共にバンク番号「16」から読み出したDAGデータと変換した回路番号のデータとスレッド番号とをデータルータ2Dに供給する。データルータ2Dはルータ列(R5-1~R5-16)において、変換された回路番号のデータの最下位ビットに基づきルート判定を行い、その後、各ルータ列(R4、R3、R2、R1)でも最下位ビットから2ビット目、3ビット目、4ビット目、5ビット目(最上位ビット)の値に基づきルート判定が行われ、読み出したDAGデータをハッシュ演算回路の回路番号1に供給する。
なお、ルーティングコントローラにおける回路番号のビットシフト処理を行わず、図3(a)に示したルーティング部14Aのルータ列が反転した構成、すなわち、メモリバンク側のI/Oに最も近いルータ列にR1-1~R1-16を配置し、ハッシュ演算回路側のI/Oに最も近いルータ列にR5-1~R5-16を配置すると共に、それに伴い2段目から4段目の各ルータ列も反転した位置に配置し、ルータ列R1-1~R1-16にて回路番号の最上位ビットでルーティングを制御し、ルータ列R5-1~R5-16で回路番号の最下位ビットでルーティングを制御するよう構成しても良い。
このようにアドレスルータとデータルータのルータ列およびその接続を反転させることで、データルータにおけるルーティング制御でビットの入れ替えやビットシフト等、回路番号のアドレス加工が不要となる。
ただし、インターコネクト2を構成する半導体素子の実装上の配線が複雑になるので、アドレスルータ2A及びデータルータ2Dは相似の構成とするのが好ましい。
図4は、本発明の一実施形態に係る情報処理装置のハッシュ演算回路の概要を示す図である。
ハッシュ演算回路8は、ハッシュ演算部(FNVアルゴリズム)21、スレッド部23、スレッドコントローラ25、アドレス生成・バンク判定部(FNVアルゴリズム)27、FIFO29、セレクタ31と、カウンタ33を備えている。
図1にて説明したように、ケチャック回路(512)6は、ナンス生成回路4から取得したデータをハッシュ演算し、その結果である演算結果(Mix0)を得て、ハッシュ演算回路8に設けられたスレッド部23に演算結果(Mix0)を出力する。
なお、スレッドコントローラ25は、スレッド部23を構成しているSRAMの中のマルチスレッドコンテキストの空き状況や計算状況(計算中・計算完了)等の情報に基づきスレッド部23のスレッド実行制御を行っている。また、スレッド部23が保持するスレッド数は、メモリ1のアクセスレイテンシよりも十分大きな数とすることで、レイテンシを完全に遮蔽する。
次に、アドレス生成・バンク判定部27は、得られたバンク番号に対応したFIFO29にメモリのアドレス及びスレッド番号を表すデータを格納する。各FIFO29は複数のデータを先入れ先出しするメモリで、各FIFOは例えば8段分のデータを格納できる。
次に、セレクタ31は、カウンタ33から入力されるカウンタ値に基づいて32個のFIFO29のうちの1つを選択し、選択したFIFO29から当該セレクタ31を介してアドレス及びスレッド番号を含むリードリクエストRRqをインターコネクト2へ送出する。この際、インターコネクト2はリードリクエストを出力しているハッシュ演算回路の回路番号や各ハッシュ演算回路のセレクタ31を介してリクエストが出力されたFIFOの番号をバス側から把握できるので、ハッシュ演算回路番号やバンク番号(=FIFO番号)をリードリクエスト及び読み出しデータ転送のルーティングに利用する。
図1及び図4を参照して、ハッシュ演算回路によるプルーフ・オブ・ワーク(PoW)のアルゴリズムの概要について説明する。
(1)ケチャック(512)6は、256ビットのヘッダーと64ビットのナンスからなる320ビットのデータをハッシュ演算し、512ビットの演算結果を得、その演算結果を2回繰り返すことで1024ビットのMix0を得る。
(2)ハッシュ演算回路8のスレッド部23はMix0とスレッド番号とからなるデータをアドレス生成・バンク判定部27に供給し、該アドレス生成・バンク判定部27にてMix0のデータについてFNVハッシュ演算を行うことでバンク番号及びアドレスの情報を得る。
(3)アドレス生成・バンク判定部27は、得られたバンク番号と同じ番号のFIFO29にアドレスとスレッド番号を格納する。
(4)セレクタ31がいずれかのFIFO29をインターコネクト2に接続すると、該FIFO29に格納されているリードリクエスト(アドレスおよびスレッド番号)がインターコネクト2を介してメモリ1の所望のバンクに供給される。なお、メモリ1のバンク番号はセレクタ31が選択したFIFO番号に等しいので、インターコネクト2はFIFO番号を見ることでリードリクエストを供給すべきバンク番号を把握することができ、バンク番号に基づいてアドレスルータ2Aのルーティング部14Aを制御する。また、ハッシュ演算回路8の番号もインターコネクト2側から把握することができるので、インターコネクト2はハッシュ演算回路8の番号をリードリクエスト受付時に記憶し、リードリクエストに対応するリードデータがメモリ1から出力された際にハッシュ演算回路8の回路番号を再度付与することでリードデータのルーティングを制御している。
(5)インターコネクト2に供給されたリードリクエストはメモリ1の所望のバンクに供給され、DAGデータが読み出される。インターコネクト2を介したリードリクエストの供給および読み出したDAGデータの転送については、図2及び図3で説明した通りである。
(6)インターコネクト2を介してメモリ1から読み出されたDAGデータはハッシュ演算回路8のハッシュ演算部21に供給される。該ハッシュ演算部21ではFNVアルゴリズムに基づくハッシュ演算が行われ、ハッシュ演算結果であるMix1がスレッド部23に供給される。
(7)その後、Mix1及びスレッド番号をアドレス生成・バンク判定部27に供給し、該アドレス生成・バンク判定部27にてMix1のデータについてFNVハッシュ演算を行うことで次のハッシュ演算に利用するDAGデータが格納されているバンク番号及びアドレスの情報を得る。
(8)以降、上記(2)~(6)を63回(既に記載した処理も含め、合計64回)繰り返し、Mix64を得、得られたMix64(1024ビット)をFNVで256ビットに圧縮する。
(9)その後、ケチャック(256)7は、得られたMix64をハッシュ演算によりデータ圧縮し、その結果が所定の条件を満たしているか否かをチェック回路5にて判定する。
図5は、FIFOとセレクタの周辺回路の一例を示す図である。
アドレス生成・バンク判定部27とFIFO29(0)~(31)との間には、アドレスデコーダ35(0)~(31)が設けられている。
アドレスデコーダ35(0)~(31)は、アドレス生成・バンク判定部27から出力されるバンク番号およびアドレスのうち、バンク番号(0)~(31)をそれぞれデコードしてバンクイネーブル信号BE(0)~(31)を生成し、生成されたバンクイネーブル信号BE(0)~(31)をそれぞれ対応するFIFO29(0)~(31)に供給することで、それぞれ適切なバンク番号およびアドレスが各FIFO29(0)~(31)に入力される。
この結果、各FIFO29(0)~(31)には、同一番号のバンク番号(0)~(31)およびアドレスが順次に格納される。
なお、ハッシュ演算回路(HAS(0)~HAS(31))8のカウンタ初期値は図3に示した通りである。
図6は、本発明の一実施形態に係る情報処理装置の各ハッシュ演算回路のカウンタに設定されているカウンタ初期値を表で示す図であり、同図に示すように、ハッシュ演算クラスタ3(0)~(7)の各々には4つのハッシュ演算回路8(ハッシュ演算回路0~31)が備わっているので、各ハッシュ演算回路8に備えられたカウンタ33の初期設定値は全てが重複しないように設定している。また、同じルータに同時にアクセスするハッシュ演算回路8はデータ転送における調停が発生しないよう、カウンタ初期値が選択されている。
すなわち、カウンタ値はインターコネクト2に出力するリードリクエストが格納されたFIFOの番号であり、またFIFOの番号はリードリクエストにより読み出されるDAGのデータセットが格納されたメモリ1のバンク番号に等しい。
そのため、32個のハッシュ演算回路8がそれぞれ異なるバンクにアクセスするようカウンタの初期値が設定され、かつ同じルータに同時にアクセスするハッシュ演算回路8はルーティング部14Aの1列目~5列目のいずれの列においても、各ルータで異なるポートが選択されることで、ルーティング制御において調停が発生しないようにカウンタ初期値並びにルーティング部14Aのバタフライ接続の結線が設定されている。
図7は、メモリ1のレイテンシを遮蔽する目的で各ハッシュ演算回路8のスレッド部がスレッド処理を行う状態をタイミングチャートで示したものである。
ハッシュ演算クラスタ3では、複数(本実施形態では4つ)のハッシュ演算回路8がナンス生成回路4、チェック回路5、ケチャック回路(512)6、ケチャック回路(256)7を共用している。そのため、同じクラスタに属するハッシュ演算回路から出力されるリードリクエストRRqは出力されるタイミングが異なる。例えば、図7に例示したように、ハッシュ演算クラスタ(0)に含まれるハッシュ演算回路(0)とハッシュ演算回路(1)はリードリクエストRRqが出力されるタイミングがずれている。またリードリクエストRRqのずれに伴い、リードデータの出力もずれている。
一方、ハッシュ演算クラスタ(1)、(2)、(3)に属するハッシュ演算回路(8)、(16)、(24)はハッシュ演算クラスタ(0)に含まれるハッシュ演算回路(0)と同じタイミングでリードリクエストRRqを出力し、同じタイミングでリードデータが得られる。
図7ではスレッド数が256のものを例示しており、このスレッド数はメモリ1のレイテンシ(LTC)を遮蔽するのに十分な数としている。
また各スレッド番号の下に表示した数字は各ハッシュ演算回路8のカウンタ値であり、図6に示したものと同じ情報を記載している。各セレクタ31を制御している全てのカウンタ33は初期値が異なるが同期してカウント動作を行っているので、インターコネクト2のアドレスルータ2Aにおけるアドレスの衝突は発生せず、かつデータルータ2Dにおけるデータの衝突も発生しない。
<マルチスレッド構成>
DAGのデータは帯域幅の広いHBM(High Bandwidth Memory)やHBM2に格納する。しかし、HBMやHBM2はDRAMをスタックした構成であるため、長いアクセスレイテンシが発生する。
本実施形態では、長いアクセスレイテンシの発生を遮蔽するために、ハッシュ演算回路8はマルチスレッド構成を採用する。マルチスレッド構成を採用することで、リードリクエストからリードデータ出力までの遅延時間が生じても、その遅延時間に他のスレッドのリードリクエスト及びリードデータ出力が行われるので、HBMやHBM2の帯域を効率的に活用することができる。
本実施形態では、マルチスレッドを採用したハッシュ演算回路8を複数備え、各ハッシュ演算回路8はメモリ1の異なるバンクに同時にアクセスするよう制御しているので、マルチスレッドによるメモリ帯域の活用に加え、HBMやHBM2の性能をさらに引き出す、すなわち、帯域をフルに使うことが可能となる。なお、本実施形態ではハッシュ演算回路8の実装数をメモリ1のバンク数に等しい数に設定しているが、これに限定されるものではなく、バンク数以上のハッシュ演算回路を実装するようにしても良い。ただし、バンク数以上のハッシュ演算回路を実装すると、バンクに対してリードリクエストを出すことができない、すなわち、ハッシュ演算を行うことができないハッシュ演算回路が発生することとなり無駄が生じる。また、バンク数以上のハッシュ演算回路を実装すると、バス(インターコネクト)における調停論理回路を導入する必要があり、バスの実装面積が大きくなる。そのため、ハッシュ演算回路数は最大でバンク数と等しいのが好ましい。
各ハッシュ演算回路8がメモリ1の異なるバンクに同時にアクセスするためには、メモリ1の各バンクに対して衝突がないリードリクエストが必要となる。
本実施形態では、各ハッシュ演算回路8のI/Oとメモリ1の各バンクのI/Oとの接続において、同時にアクセスされるバンクが重複しないようにバスを構成することで、各ハッシュ演算回路8がメモリ1の異なるバンクに同時にアクセスすることができる。
<第1態様>
本態様の情報処理装置は、複数のバンクを備えたメモリ1と、複数のハッシュ演算回路8と、メモリ1の各バンクとハッシュ演算回路8とを接続するインターコネクト2と、を備えた情報処理装置において、各ハッシュ演算回路8は、メモリ1からデータを読み出すためのリードリクエストが同一サイクルにおいてそれぞれが異なるバンクを指定するためのバンク番号を含むように制御することを特徴とする。
本態様によれば、各ハッシュ演算回路8は、メモリ1からデータを読み出すためのリードリクエストが同一サイクルにおいてそれぞれが異なるバンクを指定するためのバンク番号を含むように制御することで、複数のバンクを備えたメモリに複数のハッシュ演算回路が常にそれぞれ重複しないバンクにアクセスすることにより、メモリからのDAGデータ読み込みを効率的に行うことができる。
本態様の情報処理装置において、メモリ1は、事前に計算されたDAGデータを記憶し、ハッシュ演算回路8は、ハッシュ演算部21と、スレッド部23と、スレッドコントローラ25と、アドレス生成・バンク判定部27と、バンクの数と等しい数のFIFO29と、セレクタ31と、カウンタ33を備え、ハッシュ演算部21は、メモリ1から読み出したDAGデータに基づいてハッシュ演算を行い、アドレス生成・バンク判定部27は、スレッド部23のコンテキストに基づき入力データをハッシュ演算してアクセスするDAGのデータセットが格納されたバンク番号とアドレスを得ると共にバンク番号に等しい番号のFIFO29にデータを格納し、セレクタ31は、入力されるカウンタ値に基づきFIFO29を決定したことを特徴とする。
本態様によれば、ハッシュ演算部21は、メモリ1から読み出したDAGのデータに基づいてハッシュ演算を行い、アドレス生成・バンク判定部27は、スレッド部23のコンテキストに基づき入力データをハッシュ演算してアクセスするDAGデータが格納されたバンク番号とアドレスを得ると共にバンク番号に等しい番号のFIFO29にデータを格納し、セレクタ31は、入力されるカウンタ値に基づきFIFO29を決定し、各ハッシュ演算回路8のカウンタ初期値がいずれのハッシュ演算回路とも重複しないよう設定している。そのため、全てのハッシュ演算回路からのリードリクエストは衝突することなくインターコネクト2を介してメモリ1に供給され、またメモリ1から読み出されたDAGデータも衝突することなく各ハッシュ演算回路に供給される。
本態様のセレクタ31に入力されるカウンタ値は、全てのハッシュ演算回路8においてそれぞれ異なることを特徴とする。
本態様によれば、セレクタ31に入力されるカウンタ値は、全てのハッシュ演算回路8においてそれぞれ異なることで、各ハッシュ演算回路8がメモリ1の異なるバンクに衝突せずに同時にアクセスすることができる。
本態様のインターコネクト2は、複数のルータをバタフライ接続した構成であることを特徴とする。
本態様によれば、インターコネクト2は、複数のルータをバタフライ接続した構成であることで、全てのハッシュ演算回路からのリードリクエストは衝突することなくインターコネクト2を介してメモリ1に供給され、またメモリ1から読み出されたDAGデータも衝突することなく各ハッシュ演算回路に供給される。
本態様のインターコネクト2は、バンクの数を2ビットで表した場合のビット数に等しい段数であることを特徴とする。
本態様によれば、インターコネクト2は、バンクの数を2ビットで表した場合のビット数に等しい段数であることで、メモリのバンクの数と同数の経路をインターコネクト2の内部に構成することができる。
本態様のインターコネクト2は、リードリクエストRRqに含まれる指定バンク情報に基づいてハッシュ演算回路8とメモリ1のバンクとを接続し、リードリクエストRRqをメモリ1のバンクに供給することを特徴とする。
本態様によれば、インターコネクト2は、リードリクエストRRqに含まれる指定バンク情報に基づいて各ハッシュ演算回路8とメモリ1の各バンクとを接続し、リードリクエストRRqをメモリ1のバンクに供給することで、インターコネクト2により各ハッシュ演算回路8とメモリ1の各バンクとを1対1で接続することができる。
本態様のインターコネクト2は、リードリクエストRRqに含まれるハッシュ演算回路8の番号に基づいてハッシュ演算回路8とメモリ1とを接続し、メモリ1から読み出したデータを前記番号を有するハッシュ演算回路8に供給することを特徴とする。
本態様によれば、インターコネクト2は、リードリクエストRRqに含まれるハッシュ演算回路8の番号に基づいてハッシュ演算回路8とメモリ1とを接続し、メモリ1から読み出したデータをハッシュ演算回路8に供給することで、メモリ1から読み出したデータを前記番号を有するハッシュ演算回路8に供給することができる。
Claims (7)
- 複数のバンクを備えたメモリと、
複数のハッシュ演算回路と、
前記メモリの各バンクと前記ハッシュ演算回路とを接続するインターコネクトと、を備えた情報処理装置において、
偶数番号の前記ハッシュ演算回路を前記メモリのバンク番号の前半分に割り当て、
奇数番号の前記ハッシュ演算回路を前記メモリのバンク番号の後半分に割り当て、
各前記ハッシュ演算回路では、初期カウンタ値が全て異なる値に設定されて1サイクル毎に1ずつカウントアップされるカウンタのカウンタ値が入力されるセレクタが、前記カウンタ値に等しいバンク番号のバンクを指定するリードリクエストを選択することで、前記メモリからデータを読み出すための各前記ハッシュ演算回路からのリードリクエストが同一サイクルにおいてそれぞれが異なるバンクを指定し、
前記インターコネクトのルーティング部はバタフライ接続結線により各前記ハッシュ演算回路からのリードリクエストの調停が生じないよう設定されていることを特徴とする情報処理装置。 - 前記メモリは、事前に計算されたDAGデータを記憶し、
各前記ハッシュ演算回路は、ハッシュ演算部と、スレッド部と、スレッドコントローラと、アドレス生成・バンク判定部と、前記バンクの数と等しい数のFIFOと、セレクタと、カウンタと、を備え、
各前記ハッシュ演算部は、前記メモリから読み出したDAGデータに基づいてハッシュ演算を行い、
各前記アドレス生成・バンク判定部は、前記スレッド部のコンテキストに基づき入力データをハッシュ演算してアクセスするDAGデータが格納されたバンク番号とアドレスを得ると共に前記バンク番号に等しい番号のFIFOにリードリクエストを格納し、
各前記カウンタは、各初期値が異なり、かつ、それぞれが同期してカウント動作を行って得られたカウント値を各前記セレクタに出力し、
各前記セレクタは、入力されるカウンタ値に等しい番号のFIFOを決定したことを特徴とする請求項1記載の情報処理装置。 - 各前記セレクタにそれぞれが同期して入力されるカウンタ値は、全てのハッシュ演算回路において同じタイミングでそれぞれ異なることを特徴とする請求項1または2記載の情報処理装置。
- 前記インターコネクトは、複数のルータをバタフライ接続した構成であることを特徴とする請求項1記載の情報処理装置。
- 前記インターコネクトは、前記バンクの数を2進数で表した場合のビット数に等しい段数であることを特徴とする請求項4記載の情報処理装置。
- 前記インターコネクトは、リードリクエストに含まれる指定バンク情報に基づいて各前記ハッシュ演算回路と前記メモリの各バンクとを接続し、リードリクエストをメモリのバンクに供給することを特徴とする請求項5記載の情報処理装置。
- 前記インターコネクトは、前記リードリクエストに含まれるハッシュ演算回路の番号に基づいて各前記ハッシュ演算回路と前記メモリとを接続し、前記メモリから読み出したデータを前記番号を有するハッシュ演算回路に供給することを特徴とする請求項6記載の情報処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019086434A JP7069455B2 (ja) | 2019-04-26 | 2019-04-26 | 情報処理装置 |
PCT/JP2020/004345 WO2020217640A1 (ja) | 2019-04-26 | 2020-02-05 | 情報処理装置 |
US17/593,259 US11961073B2 (en) | 2019-04-26 | 2020-02-05 | Information processing device |
CN202080029695.XA CN113924556A (zh) | 2019-04-26 | 2020-02-05 | 信息处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019086434A JP7069455B2 (ja) | 2019-04-26 | 2019-04-26 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020184095A JP2020184095A (ja) | 2020-11-12 |
JP7069455B2 true JP7069455B2 (ja) | 2022-05-18 |
Family
ID=72942458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019086434A Active JP7069455B2 (ja) | 2019-04-26 | 2019-04-26 | 情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11961073B2 (ja) |
JP (1) | JP7069455B2 (ja) |
CN (1) | CN113924556A (ja) |
WO (1) | WO2020217640A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282802B (zh) * | 2021-06-17 | 2022-06-24 | 浙江毫微米科技有限公司 | 工作量证明算法优化方法、装置、计算机设备和存储介质 |
CN114584482B (zh) * | 2022-02-14 | 2023-09-08 | 阿里巴巴(中国)有限公司 | 基于内存存储检测数据的方法、装置以及网卡 |
CN115002050B (zh) * | 2022-07-18 | 2022-09-30 | 中科声龙科技发展(北京)有限公司 | 工作量证明芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010001239A2 (en) | 2008-07-03 | 2010-01-07 | Nokia Corporation | Address generation for multiple access of memory |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6366661A (ja) * | 1986-09-08 | 1988-03-25 | Hitachi Ltd | 記憶制御方式 |
JPWO2006051780A1 (ja) * | 2004-11-10 | 2008-05-29 | 松下電器産業株式会社 | 不揮発性メモリ装置および不揮発性メモリ装置のアクセス方法 |
US7461208B1 (en) * | 2005-06-16 | 2008-12-02 | Sun Microsystems, Inc. | Circuitry and method for accessing an associative cache with parallel determination of data and data availability |
EP2115593B1 (en) * | 2007-01-26 | 2018-10-24 | Intel Corporation | Hierarchical immutable content-addressable memory processor |
US9332083B2 (en) * | 2012-11-21 | 2016-05-03 | International Business Machines Corporation | High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts |
US9424209B2 (en) * | 2013-09-19 | 2016-08-23 | Intel Corporation | Dynamic heterogeneous hashing functions in ranges of system memory addressing space |
US9342462B2 (en) * | 2013-10-31 | 2016-05-17 | Oracle International Corporation | Systems and methods for implementing low-latency lookup circuits using sparse hash functions |
WO2016046821A1 (en) * | 2014-09-23 | 2016-03-31 | Spondoolies Tech Ltd. | Method and system for reducing power consumption in bitcoin mining via data input hopping |
US10049126B2 (en) * | 2015-09-06 | 2018-08-14 | Mellanox Technologies Tlv Ltd. | Cuckoo hashing with selectable hash |
CA3066903A1 (en) * | 2017-07-11 | 2019-01-17 | Swirlds, Inc. | Methods and apparatus for efficiently implementing a distributed database within a network |
US11436046B2 (en) * | 2018-10-11 | 2022-09-06 | Powerchip Semiconductor Manufacturing Corporation | Electronic device with memory processor-based multiprocessing architecture and operation method thereof |
-
2019
- 2019-04-26 JP JP2019086434A patent/JP7069455B2/ja active Active
-
2020
- 2020-02-05 US US17/593,259 patent/US11961073B2/en active Active
- 2020-02-05 WO PCT/JP2020/004345 patent/WO2020217640A1/ja active Application Filing
- 2020-02-05 CN CN202080029695.XA patent/CN113924556A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010001239A2 (en) | 2008-07-03 | 2010-01-07 | Nokia Corporation | Address generation for multiple access of memory |
US20100005221A1 (en) | 2008-07-03 | 2010-01-07 | Nokia Corporation | Address generation for multiple access of memory |
CN102084346A (zh) | 2008-07-03 | 2011-06-01 | 诺基亚公司 | 用于存储器的多路访问的地址生成 |
Also Published As
Publication number | Publication date |
---|---|
WO2020217640A1 (ja) | 2020-10-29 |
JP2020184095A (ja) | 2020-11-12 |
CN113924556A (zh) | 2022-01-11 |
US11961073B2 (en) | 2024-04-16 |
US20220156734A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020217640A1 (ja) | 情報処理装置 | |
US9335934B2 (en) | Shared memory controller and method of using same | |
US7346750B2 (en) | Memory interleave system | |
US7386689B2 (en) | Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner | |
CN112189324B (zh) | 带宽匹配的调度器 | |
WO2007069506A1 (ja) | 記憶領域割当システム及び方法と制御装置 | |
CN112214427B (zh) | 缓存结构、工作量证明运算芯片电路及其数据调用方法 | |
JP2019159566A (ja) | 計算装置 | |
Kobus et al. | Gossip: Efficient communication primitives for multi-gpu systems | |
JP2006262243A (ja) | クロスバー装置、制御方法及びプログラム | |
JPH10161984A (ja) | Sci相互接続を用いたtocカウンタの同期 | |
US11449449B2 (en) | Data processing apparatus and operating method thereof | |
US20080235707A1 (en) | Data processing apparatus and method for performing multi-cycle arbitration | |
US8806132B2 (en) | Information processing device, memory access control device, and address generation method thereof | |
US8489839B1 (en) | Increasing memory capacity of a frame buffer via a memory splitter chip | |
JP2010244096A (ja) | データ処理装置、印刷システムおよびプログラム | |
US9507541B2 (en) | Computation device, computation method, and medium | |
US8935559B2 (en) | System and method for reducing crosstalk in on-chip networks using a contraflow interconnect and offset repeaters | |
JP4360300B2 (ja) | 記憶制御装置及び制御方法 | |
US20240211414A1 (en) | Multichannel memory arbitration and interleaving scheme | |
US20210117866A1 (en) | Address interleaving for machine learning | |
JP5499346B2 (ja) | 半導体装置およびそれを用いた通信装置 | |
TWI442383B (zh) | 顯示裝置之記憶體架構及其控制方法 | |
JP4936223B2 (ja) | アフィン変換装置および方法 | |
JP6160717B1 (ja) | プロセッサ、および、データ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220328 |
|
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: 20220405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7069455 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |