JP7428392B2 - 演算回路、演算装置、方法、及びプログラム - Google Patents

演算回路、演算装置、方法、及びプログラム Download PDF

Info

Publication number
JP7428392B2
JP7428392B2 JP2021113691A JP2021113691A JP7428392B2 JP 7428392 B2 JP7428392 B2 JP 7428392B2 JP 2021113691 A JP2021113691 A JP 2021113691A JP 2021113691 A JP2021113691 A JP 2021113691A JP 7428392 B2 JP7428392 B2 JP 7428392B2
Authority
JP
Japan
Prior art keywords
data
control unit
read
dma
arithmetic
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
JP2021113691A
Other languages
English (en)
Other versions
JP2023009973A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2021113691A priority Critical patent/JP7428392B2/ja
Publication of JP2023009973A publication Critical patent/JP2023009973A/ja
Application granted granted Critical
Publication of JP7428392B2 publication Critical patent/JP7428392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

本開示は、演算回路、演算装置、方法、及びプログラムに関し、特に、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムに関する。
演算処理を実行する回路としてFPGA(Field Programmable Gate Array)が知られている。FPGAには複数の演算回路が含まれ、複数の演算回路と単一の外部メモリとが接続されるものが有る。そして、複数の演算回路のうちの第1演算処理の結果を第2演算処理で使用し、第2演算処理の結果を第3演算処理で使用するというような演算処理の方法が知られている。すなわち、シリーズに逐次処理する演算処理の方法が知られている。
特許文献1の0026段落には、「ASICは、外部デバイスとの接続のI/F(インターフェイス)を行うイーサネットI/FとUSB I/F、イーサネットI/F用のリードDMAC(Direct Memory Access Controller:DMAコントローラ)とライトDMAC、USB I/F用の2つのリードDMACとライトDMAC、アービタ及びPCIeインターフェイスであるPCIeエンドポイント等を備えており、外部デバイスとのインターフェイス処理を行う。」と記載されている。また、特許文献1の0028段落には、「メインメモリ上に保存されている出力データをリードDMACによって、PCIeエンドポイントからアービタを経由してUSB I/Fにデータ転送を行って、USB I/FによりUSB上に出力し、USBからのデータ受信においては、USB I/Fにより受信したデータをライトDMACによって、アービタを経由してメインメモリにライトする。」と記載されている。特許文献1には、シリーズに逐次処理する演算処理において処理時間を短縮することは記載されていない。
特開2010-211349号公報
上記のとおり、特許文献1には、シリーズに逐次処理する演算処理において処理時間を短縮することは記載されておらず、処理時間を短縮する回路等が所望されていた。
本開示の目的は、上述した課題を解決する演算回路、演算装置、方法、及びプログラムを提供することにある。
本開示に係る演算回路は、
別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送するDMA読出し制御部と、
前記第2データを演算処理して第3データを出力する前記演算処理部と、
前記第3データを前記外部メモリに書込むDMA書込み制御部と、
前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記DMA読出し制御部を制御するDMA転送制御部と、
を備える。
本開示に係る演算装置は、
第1データを演算処理し、演算処理した後の第2データを出力する第1演算回路と、
前記第2データを演算処理し、演算処理した後の第3データを出力する第2演算回路と、
を備え、
前記第1演算回路は、
外部メモリから前記第1データを読出し、前記第1データを第1演算処理部に転送する第1DMA読出し制御部と、
前記第1データを演算処理して前記第2データを出力する前記第1演算処理部と、
前記第2データを前記外部メモリに書込む第1DMA書込み制御部と、
前記第1データの読出しタイミングを制御する第1DMA転送制御部と、を有し、
前記第2演算回路は、
前記外部メモリから前記第2データを読出し、前記第2データを第2演算処理部に転送する第2DMA読出し制御部と、
前記第2データを演算処理して前記第3データを出力する前記第2演算処理部と、
前記第3データを前記外部メモリに書込む第2DMA書込み制御部と、
前記第1DMA書込み制御部から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記第2DMA読出し制御部を制御する第2DMA転送制御部と、を有する。
本開示に係る方法は、
別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送することと、
前記第2データを演算処理して第3データを出力することと、
前記第3データを前記外部メモリに書込むことと、
前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すことと、
を備える。
本開示に係るプログラムは、
別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送することと、
前記第2データを演算処理して第3データを出力することと、
前記第3データを前記外部メモリに書込むことと、
前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すことと、
をコンピュータに実行させる。
本開示によれば、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することができる。
実施の形態1に係る演算回路を例示するブロック図である。 実施の形態1に係る演算装置を例示するブロック図である。 実施の形態1に係る演算装置の動作を例示するフローチャートである。 実施の形態2に係る演算装置を例示するブロック図である。 実施の形態2の比較例に係る演算装置を例示するブロック図である。 実施の形態2の比較例に係る演算装置の動作を例示するフローチャートである。
以下、図面を参照して本発明の実施の形態について説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明を省略する。
[実施の形態1]
<構成>
図1は、実施の形態1に係る演算回路を例示するブロック図である。
図1は、例えば、FPGA(Field Programmable Gate Array)内部に実装された演算回路を示す。
図1に示すように、実施の形態1に係る演算回路12は、単一の外部メモリに接続されている。また、別の演算回路11も、単一の外部メモリに接続されている。演算回路12と別の演算回路11は、例えば、FPGAの中のそれぞれ1つの演算回路である。演算回路12と別の演算回路11は同様な構成であるので、ここでは、演算回路12について説明し、別の演算回路11の説明は省略する。
演算回路12は、DMA読出し制御部121と演算処理部と122とDMA書込み制御部123とDMA転送制御部124とを備える。DMA(Direct Memory Access)は、ダイレクトメモリーアクセスの略である。なお、別の演算回路を第1演算回路と称し、演算回路を第2演算回路と称することもある。また、DMA読出し制御部をダイレクトメモリリードコントローラと称し、DMA書込み制御部をダイレクトメモリライトコントローラと称することもある。
DMA読出し制御部121は、別の演算回路11が第1データを演算処理した結果得られた第2データであって外部メモリに保存された該第2データを外部メモリから読出す。DMA読出し制御部121は、読み出した第2データを演算処理部122に転送する。
演算処理部122は、外部メモリから読み出した第2データを演算処理して第3データを出力する。
DMA書込み制御部123は、演算処理部122が出力した第3データを外部メモリに書込む。
ここで、実施の形態1では、別の演算回路11の演算処理の結果を演算回路12の演算処理で使用する。具体的には、演算回路12の演算処理部122は、別の演算回路11の演算処理部112が演算処理した結果であって単一の外部メモリに保存された(書込まれた)第2データを演算処理する。従って、DMA読出し制御部121が第2データを読出す際に、該第2データが別の演算回路11のDMA書込み制御部113によって既に外部メモリに保存されていなければならない。一般的に、演算回路12のDMA読出し制御部121は、このような動作を行うため、別の演算回路11のDMA書込み制御部113による外部メモリへの転送及び書込み処理を待ち合わせる必要がある。このため、実施の形態1とは異なる方法では、例えば、第2データの外部メモリへの転送処理及び書込み処理が完了するタイミングを見計らって、任意のウェイト(時間)を入れて第2データの読出し開始タイミングを調整する方法を採用している。しかしながら、このような方法では、第2データの書込み完了時刻と第2データの読出し開始時刻との間に待ち時間が存在することになり、処理時間が増加してしまう。
そこで、実施の形態1では、別の演算回路11から、第2データの外部メモリへの書込みが完了した旨を示す書込完了通知を演算回路12のDMA転送制御部124に出力するような構成とした。これにより、実施の形態1に係る演算回路12のDMA転送制御部124は、別の演算回路11から、第2データの外部メモリへの書込みが完了した旨を示す書込完了通知を取得した後に、即座に外部メモリから第2データを読出すようにDMA読出し制御部121を制御する。
すなわち、DMA転送制御部124は、書込完了通知を取得した後、所定の期間内に外部メモリから第2データを読出すようにDMA読出し制御部121を制御する。
<効果>
実施の形態1に係る演算回路12は、第2データの書込完了通知を取得した後、即座に外部メモリから第2データを読出すことができる。これにより、第2データの書き込み完了時刻と第2データの読出し開始時刻との間に余分な待ち時間が無くなる。
その結果、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することができる。
<詳細な構成>
実施の形態1の詳細な構成について説明する。
この例では、第1演算回路11と第2演算回路12が単一の外部メモリと接続され、第1演算回路の演算結果を第2演算回路が使用する場合を例に挙げて説明する。
図2は、実施の形態1に係る演算装置を例示するブロック図である。
図2は、第1演算回路と第2演算回路とを有する演算装置の詳細な構成を示す。
第1演算回路と第2演算回路は、例えば、FPGAを構成する回路である。すなわち、図2は、FPGA内部の演算回路のブロックである。
図2に示す「Arb」はアービタ(Arbiter)を示し、図2に示す「M」はマスタ(Master)を示し、図2に示す「S」はスレーブ(Slave)を示す。マスタにはリードマスタ(Read Master)とライトマスタ(Write Master)があり、スレーブにはリードスレーブ(Read Slave)とライトスレーブ(Write Slave)がある。
図2に示すように、実施の形態1に係る演算装置10は、第1データを演算処理し演算処理した後の第2データを出力する第1演算回路11と、第2データを演算処理し演算処理した後の第3データを出力する第2演算回路12と、を備える。第1演算回路11と第2演算回路12は、同様な機能を有し、同様な動作をすることが可能である。
図2に示された第1演算回路は、図1に示された別の演算回路に相当し、図2に示された第2演算回路は、図1に示された演算回路に相当する。また、複数の演算回路によって、例えば、FPGAが構成される。よって、演算装置10は、例えば、複数の演算回路を有するFPGAを搭載した装置である。
第1演算回路11は、第1DMA読出し制御部111と第1演算処理部112と第1DMA書込み制御部113と第1DMA転送制御部114とを有する。
第1DMA読出し制御部111は、外部メモリから第1データを読出し、第1データを第1演算処理部112に転送する。第1演算処理部112は、第1データを演算処理して第2データを出力する。第1DMA書込み制御部113は、第2データを外部メモリに書込む。
第1DMA転送制御部114は、第1DMA読出し制御部111を制御して第1データの読出しタイミングを制御する。また、第1DMA転送制御部114は、第1DMA書込み制御部113を制御して第2データの書込みタイミングを制御する。
第2演算回路12は、第2DMA読出し制御部121と第2演算処理部122と第2DMA書込み制御部123と第2DMA転送制御部124とを有する。
第2DMA読出し制御部121は、外部メモリから第2データを読出し、第2データを第2演算処理部122に転送する。第2演算処理部122は、第2データを演算処理して第3データを出力する。第2DMA書込み制御部123は、第3データを外部メモリに書込む。
第2DMA転送制御部124は、第2DMA読出し制御部121が第2データを外部メモリから読出す際の処理時間が増加しないように、読出しタイミングを制御する。具体的には、第2DMA転送制御部124は、第1演算回路11の第1DMA書込み制御部113から第2データの書込みが完了した旨を示す書込完了通知を取得した後に、外部メモリから第2データを読出すように第2DMA読出し制御部121を制御する。また、第2DMA転送制御部124は、第2DMA書込み制御部123を制御して第3データの書込みタイミングを制御する。
第2DMA転送制御部124は、第2データを外部メモリから読出す読出し処理を、一旦停止し、書込完了通知を取得した場合、読出し処理を再開するように第2DMA読出し制御部121を制御してもよい。
また、第2DMA転送制御部124は、読出し処理を停止するため、第2DMA読出し制御部121へのアクセスに対してAck又はReadyを返さないようにしてもよい。Ack又はReadyを返さないことにより、読出し処理が停止する。第2DMA転送制御部124は、その後、書込完了通知を取得した場合に読出し処理を再開するため、第2DMA読出し制御部121へのアクセスに対してAck又はReadyを返してもよい。
第2DMA読出し制御部121は、読出し動作用ポインタ情報に従って、第2データの外部メモリからの読出し処理(転送処理)を制御してもよい。第2DMA書込み制御部123は、書込み動作用ポインタ情報に従って、第3データの外部メモリへの書込み処理(転送処理)を制御してもよい。
第2演算回路12は、ポインタ情報に従って動作するようにするため、読出し動作用ポインタ情報を記憶する第2読出しディスクリプタメモリ125と、書込み動作用ポインタ情報を記憶する第2書込みディスクリプタメモリ126と、をさらに備えてもよい。このとき、第2DMA読出し制御部121は、読出し動作用ポインタ情報に基づいて動作し、第2DMA書込み制御部123は、書込み動作用ポインタ情報に基づいて動作する。
第1演算回路11は第2演算回路12と同様な機能を有する。よって、第1演算回路11は、読出し動作用ポインタ情報を記憶する第1読出しディスクリプタメモリ115と、書込み動作用ポインタ情報を記憶する第1書込みディスクリプタメモリ116と、をさらに備えてもよい。このとき、第1DMA読出し制御部111は、読出し動作用ポインタ情報に基づいて動作し、第1DMA書込み制御部113は、書込み動作用ポインタ情報に基づいて動作する。
読出し動作用ポインタ情報の第1読出しディスクリプタメモリ115及び第2読出しディスクリプタメモリ125への記憶(格納)は、ソフトウェア(S/W)によって実行されてもよい。また、書込み動作用ポインタ情報の第1書込みディスクリプタメモリ116及び第2書込みディスクリプタメモリ126への記憶(格納)は、ソフトウェア(S/W)によって実行されてもよい。
ソフトウェアは、第1演算回路11の第1書込みディスクリプタメモリ116に、外部メモリへのポインタ情報を登録(保存、格納)し、その後、第1DMA転送制御部114へのポインタ情報を登録し、第2演算回路12の第2読出しディスクリプタメモリ125に、第2DMA転送制御部124へのポインタ情報を登録し、その後、外部メモリへのポインタ情報を登録する。ソフトウェアの上記に示したような登録の手順を手順1と称することにする。
実施の形態1では、上記の手順1で各ディスクリプタメモリにポインタ情報を登録する。これにより、仮に第2演算回路12の第2読出しディスクリプタメモリ125に、第1演算回路11の第1書込みディスクリプタメモリ116よりも早くポインタ情報が格納されたとしても、第2演算回路12の第2DMA読出し制御部121は、第1演算回路11の第1DMA書込み制御部113の転送処理が終わるまで停止した状態となる。このため、第2演算回路12の第2DMA読出し制御部121は、転送処理完了後、即時に読出し処理を開始することができる。
なお、ソフトウェア(S/W)は、第1DMA読出し制御部111の動作のためのポインタ情報を、予め第1読出しディスクリプタメモリ115に格納しておく。また、ソフトウェア(S/W)は、第1DMA書込み制御部113の動作のためのポインタ情報を、予め第1書込みディスクリプタメモリ116に格納しておく。
また、外部メモリ、第1DMA読出し制御部111、第1DMA書込み制御部113、第1演算処理部112、及びソフトウェア(S/W)との間の各種接続は、AXI4(Advanced eXtensible Interface 4)等のマスタースレーブ制御で動作するインターフェイス(I/F)を使用することが望ましい。
実施の形態1に係る演算装置10は、第2データの書込完了通知を取得した後、即座に外部メモリから第2データを読出すことができる。これにより、第2データの書き込み完了時刻と第2データの読出し開始時刻との間に余分な待ち時間が無くなる。
<動作>
実施の形態1に係る演算装置の動作について、第1演算回路11の演算結果(外部メモリに書込んだ結果)を、第2演算回路12が使用する場合を例に挙げて説明する。
図3は、実施の形態1に係る演算装置の動作を例示するフローチャートである。
図3に示すステップS101からステップS105は、ソフトウェアの動作を示す。図3に示すステップS201からステップS208は、ハードウェアの動作を示す。
ソフトウェアの動作について説明する。
図3に示すように、先ず、第2演算回路12の第2読出しディスクリプタメモリ125に、第1演算回路11の第1DMA転送制御部114へのポインタ情報を格納する(ステップS101)。
第1演算回路11の第1読出しディスクリプタメモリ115に外部メモリへのポインタ情報を格納する(ステップS102)。
第1演算回路11の第1書込みディスクリプタメモリ116に第2演算回路12の第2DMA転送制御部124へのポインタ情報を格納する(ステップS103)。
第2演算回路12の第2読出しディスクリプタメモリ125に外部メモリへのポインタ情報を格納する(ステップS104)。
第2演算回路12の第2書込みディスクリプタメモリ126に外部メモリへのポインタ情報を格納する(ステップS105)。
ハードウェアの動作について説明する。
図3に示すように、先ず、第2演算回路12が読出し処理を停止する(ステップS201)。具体的には、第2演算回路12の第2DMA読出し制御部121のリードマスタMが第2演算回路12の第2DMA転送制御部124の読出しスレーブSにアクセスする。これにより、第2演算回路12の読出し処理を停止させておく。
ステップS102に基づいて、第1演算回路11が外部メモリに第1データの読出し処理を実行する(ステップS202)。
第1演算回路11が第1データを使用した演算処理を実行する(ステップS203)。
第1演算回路11が演算結果(第2データ)の外部メモリへの書込み処理を実行する(ステップS204)。
ステップS104に基づいて、第2演算回路12がステップS201で停止していた読出し処理を再開する(ステップS205)。具体的には、第2演算回路12の第2DMA転送制御部124の書込み用のスレーブSにアクセスすることにより、第2演算回路12はステップS201で停止していた読出し処理を再開する。
第2演算回路12が外部メモリに第2データの読出し処理を実行する(ステップS206)。
第2演算回路12が第2データを使用した演算処理を実行する(ステップS207)。
第2演算回路12が演算結果(第3データ)の外部メモリへの書込み処理を実行する(ステップS208)。
実施の形態1では、ステップS201において、第2演算回路12の第2DMA読出し制御部121のリードマスタMが第2演算回路12の第2DMA転送制御部124の読出しスレーブSにアクセスすることで読出し処理を停止させておく。その後、ステップS204において、第1演算回路11の演算結果の外部メモリへの書き込み(Write)が完了した直後に、ステップS205において第2演算回路12の第2DMA転送制御部124の書込み用のスレーブSにアクセスすることにより、第2演算回路12はステップS201で停止していた読出し処理を再開する。このような動作により、第1演算回路11の処理から第2演算回路12の処理を待たせることなく連続で処理することができる。
その結果、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することができる。
[実施の形態2]
図4は、実施の形態2に係る演算装置を例示するブロック図である。
図4に示すように、実施の形態2に係る演算装置20は、実施の形態1に係る演算装置10と比べて、演算回路を3つ以上有する点が異なる。すなわち、演算装置20は、第1演算回路11、第2演算回路12、・・・、第N演算回路を有する。ただし、Nは3以上の整数である。
図4に示すように、第1DMA転送制御部114は2つのスレーブSを有し、1つ目のスレーブSには第1演算回路11内の第1DMA読出し制御部のリードマスタMが接続される。また、第1DMA転送制御部114の2つ目のスレーブSには第1演算回路11の第1DMA書込み制御部113のライトマスタM、第2演算回路12の第2DMA書込み制御部123のライトマスタM、及び、第N演算回路内のDMA書込み制御部のライトマスタMが接続される。演算装置20内の各DMA転送制御部の1つ目のスレーブSには同一の演算回路内のDMA読出し制御部のリードマスタMが接続され、2つ目のスレーブSには同一の演算回路内のDMA書込み制御部のライトマスタM、及び、その他の演算回路内のDMA書込み制御部のライトマスタMが接続される。
通常のマスタとスレーブ動作は、マスタの指令に対してスレーブがAckやReadyを返すことで1つの動作(処理)が完了する。
実施の形態1及び実施の形態2では、DMA転送制御部のDMA読出しスレーブSにアクセスが有った場合、読出し処理の完了後にAckやReadyを返さず、DMA書込みスレーブSにアクセスが有った場合、AckやReadyを返すようにする。
また、実施の形態1及び実施の形態2では、読出しディスクリプタメモリ及び書込みディスクリプタメモリに、外部メモリ宛のポインタ情報に加えてDMA転送制御部宛のポインタ情報を間に登録する。これにより、ソフトウェア(S/W)は処理タイミングを調整するためのウェイト処理を実行することなくポインタ情報を格納することができ、全体の処理時間を短縮することができる。
その結果、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することができる。
[比較例]
<構成>
図5は、実施の形態2の比較例に係る演算装置を例示するブロック図である。
図5に示すように、実施の形態2の比較例に係る演算装置50は、各演算回路内にDMA転送制御部が実装されていない点が異なる。
演算装置50の第1演算回路51は、単一の外部メモリから読み出し用のDMAコントローラである第1DMA読出し制御部511を介して、第1演算処理部512に入力データを転送する。その後、第1演算回路51の第1演算処理部512は、演算処理結果を書き込み用のDMAコントローラである第1DMA書込み制御部513を介して、再び外部メモリに転送する。
第1DMA読出し制御部511は第1読出しディスクリプタメモリ515と接続され、第1読出しディスクリプタメモリ515に格納されたポインタ情報に従い動作する。同様に、第1DMA書込み制御部513は第1書込みディスクリプタメモリ516と接続され、第1書込みディスクリプタメモリ516に格納されたポインタ情報に従い動作する。
演算装置50は、DMA転送制御部が実装されていない。このため、演算装置50は、第1演算回路の演算結果の外部メモリへの書込み処理が完了するタイミングを見計らって、任意のウェイトを入れて読出し開始タイミングを調整する必要がある。よって、演算装置50は、第1演算回路51の演算結果の外部メモリへの書き込みが完了した直後に、第2演算回路52が外部メモリから第1演算回路の演算結果を読出すことが難しい。
その結果、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することは難しい。
<動作>
図6は、実施の形態2の比較例に係る演算装置の動作を例示するフローチャートである。
ソフトウェアの動作について説明する。
図6に示すように、先ず、第1演算回路51の第1読出しディスクリプタメモリ515に外部メモリへのポインタ情報を格納する(ステップS301)。
第1演算回路51の第1書込みディスクリプタメモリ516に外部メモリへのポインタ情報を格納する(ステップS302)。
ウェイト処理(Wait処理)を実行する(ステップS303)。
第2演算回路52の第2読出しディスクリプタメモリ525に外部メモリへのポインタ情報を格納する(ステップS304)。
第2演算回路12の第2書込みディスクリプタメモリ526に外部メモリへのポインタ情報を格納する(ステップS305)。
ハードウェアの動作について説明する。
図6に示すように、先ず、ステップS301に基づいて、第1演算回路51の外部メモリへの読出し処理を実行する(ステップS401)。
第1演算回路51の演算処理を実行する(ステップS402)。
ステップS302に基づいて、第1演算回路51の外部メモリへの書込み処理を実行する(ステップS403)。
ステップS304に基づいて、第2演算回路52の外部メモリへの読出し処理を実行する(ステップS404)。
第2演算回路52の演算処理を実行する(ステップS405)。
ステップS305に基づいて、第2演算回路52の外部メモリへの書込み処理を実行する(ステップS406)。
比較例に係る演算装置50では、ステップS303のように、ウェイト処理(Wait処理)を実行する必要がある。これにより、演算装置50は、第1演算回路51の演算結果の外部メモリへの書き込みが完了した直後に、第2演算回路52が外部メモリから第1演算回路51の演算結果を読出すことが難しい。
その結果、第1演算処理の結果を第2演算処理で使用する場合に処理時間を短縮することが可能な演算回路、演算装置、方法、及びプログラムを提供することは難しい。
尚、上記の実施の形態では、本発明をハードウェアの構成として説明したが、本発明はこれに限定されるものではない。本発明は、各構成要素の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
上記の実施の形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実態のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(具体的にはフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(具体的には光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(具体的には、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM))、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
さらに、動作は特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序または連続した順序で実行されること、または示されたすべての動作が実行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。同様に、いくつかの特定の実施の形態の詳細が上記の議論に含まれているが、これらは本開示の範囲に対する制限としてではなく、特定の実施の形態に特有の特徴の説明として解釈されるべきである。別個の実施の形態の文脈で説明される特定の特徴は、単一の実施の形態に組み合わせて実装されてもよい。逆に、単一の実施の形態の文脈で説明される様々な特徴は、複数の実施の形態で別々にまたは任意の適切な組み合わせで実装されてもよい。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
尚、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
10、20、50…演算装置
11、51…第1演算回路、別の演算回路
111、511…第1DMA読出し制御部
112、512…第1演算処理部
113、513…第1DMA書込み制御部
114…第1DMA転送制御部
115、515…第1読出しディスクリプタメモリ
116、516…第1書込みディスクリプタメモリ
12、52…第2演算回路、演算回路
121、521…第2DMA読出し制御部
122、522…第2演算処理部
123、523…第2DMA書込み制御部
124…第2DMA転送制御部
125、525…第2読出しディスクリプタメモリ
126、526…第2書込みディスクリプタメモリ

Claims (8)

  1. 別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送するDMA読出し制御部と、
    前記第2データを演算処理して第3データを出力する前記演算処理部と、
    前記第3データを前記外部メモリに書込むDMA書込み制御部と、
    前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記DMA読出し制御部を制御するDMA転送制御部と、
    を備え
    前記DMA転送制御部は、
    前記第2データを前記外部メモリから読出す読出し処理を停止し、
    前記書込完了通知を取得した場合、前記読出し処理を再開するように前記DMA読出し制御部を制御し、
    前記DMA転送制御部は、
    前記読出し処理を停止するため、前記DMA読出し制御部へのアクセスに対してAck又はReadyを返さず、
    前記書込完了通知を取得した場合に前記読出し処理を再開するため、前記DMA読出し制御部へのアクセスに対して前記Ack又は前記Readyを返す、
    ように前記DMA読出し制御部を制御する、
    演算回路。
  2. 前記DMA転送制御部は、前記書込完了通知を取得した後、所定の期間内に前記外部メモリから前記第2データを読出すように制御する、
    請求項1に記載の演算回路。
  3. 読出し動作用ポインタ情報を記憶する読出しディスクリプタメモリと、
    書込み動作用ポインタ情報を記憶する書込みディスクリプタメモリと、
    をさらに備え、
    前記DMA読出し制御部は、前記読出し動作用ポインタ情報に基づいて動作し、
    前記DMA書込み制御部は、前記書込み動作用ポインタ情報に基づいて動作する、
    請求項1又は2に記載の演算回路。
  4. 前記読出し動作用ポインタ情報の前記読出しディスクリプタメモリへの格納と、前記書込み動作用ポインタ情報の前記書込みディスクリプタメモリへの格納は、ソフトウェアによって実行される、
    請求項3に記載の演算回路。
  5. 第1データを演算処理し、演算処理した後の第2データを出力する第1演算回路と、
    前記第2データを演算処理し、演算処理した後の第3データを出力する第2演算回路と、
    を備え、
    前記第1演算回路は、
    外部メモリから前記第1データを読出し、前記第1データを第1演算処理部に転送する第1DMA読出し制御部と、
    前記第1データを演算処理して前記第2データを出力する前記第1演算処理部と、
    前記第2データを前記外部メモリに書込む第1DMA書込み制御部と、
    前記第1データの読出しタイミングを制御する第1DMA転送制御部と、を有し、
    前記第2演算回路は、
    前記外部メモリから前記第2データを読出し、前記第2データを第2演算処理部に転送する第2DMA読出し制御部と、
    前記第2データを演算処理して前記第3データを出力する前記第2演算処理部と、
    前記第3データを前記外部メモリに書込む第2DMA書込み制御部と、
    前記第1DMA書込み制御部から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記第2DMA読出し制御部を制御する第2DMA転送制御部と、を有し、
    前記第2DMA転送制御部は、
    前記第2データを前記外部メモリから読出す読出し処理を停止し、
    前記書込完了通知を取得した場合、前記読出し処理を再開するように前記第2DMA読出し制御部を制御し、
    前記第2DMA転送制御部は、
    前記読出し処理を停止するため、前記第2DMA読出し制御部へのアクセスに対してAck又はReadyを返さず、
    前記書込完了通知を取得した場合に前記読出し処理を再開するため、前記第2DMA読出し制御部へのアクセスに対して前記Ack又は前記Readyを返す、
    ように前記第2DMA読出し制御部を制御する、
    演算装置。
  6. 前記第2DMA転送制御部は、前記書込完了通知を取得した後、所定の期間内に前記外部メモリから前記第2データを読出すように制御する、
    請求項5に記載の演算装置。
  7. 別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送するようにDMA読出し制御部を制御することと、
    前記第2データを演算処理して第3データを出力することと、
    前記第3データを前記外部メモリに書込むことと、
    前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記DMA読出し制御部を制御することと、
    前記第2データを前記外部メモリから読出す読出し処理を停止することと、
    前記書込完了通知を取得した場合、前記読出し処理を再開するように制御することと、
    前記読出し処理を停止するため、前記DMA読出し制御部へのアクセスに対してAck又はReadyを返さないことと、
    前記書込完了通知を取得した場合に前記読出し処理を再開するため、前記DMA読出し制御部へのアクセスに対して前記Ack又は前記Readyを返すように制御することと、
    を備える方法。
  8. 別の演算回路が第1データを演算処理した結果得られた第2データであって外部メモリに保存された前記第2データを前記外部メモリから読出し、前記第2データを演算処理部に転送するようにDMA読出し制御部を制御することと、
    前記第2データを演算処理して第3データを出力することと、
    前記第3データを前記外部メモリに書込むことと、
    前記別の演算回路から前記第2データの書込みが完了した旨を示す書込完了通知を取得した後に、前記外部メモリから前記第2データを読出すように前記DMA読出し制御部を制御することと、
    前記第2データを前記外部メモリから読出す読出し処理を停止することと、
    前記書込完了通知を取得した場合、前記読出し処理を再開するように制御することと、
    前記読出し処理を停止するため、前記DMA読出し制御部へのアクセスに対してAck又はReadyを返さないことと、
    前記書込完了通知を取得した場合に前記読出し処理を再開するため、前記DMA読出し制御部へのアクセスに対して前記Ack又は前記Readyを返すように制御することと、
    をコンピュータに実行させるプログラム。
JP2021113691A 2021-07-08 2021-07-08 演算回路、演算装置、方法、及びプログラム Active JP7428392B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021113691A JP7428392B2 (ja) 2021-07-08 2021-07-08 演算回路、演算装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021113691A JP7428392B2 (ja) 2021-07-08 2021-07-08 演算回路、演算装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2023009973A JP2023009973A (ja) 2023-01-20
JP7428392B2 true JP7428392B2 (ja) 2024-02-06

Family

ID=85119160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021113691A Active JP7428392B2 (ja) 2021-07-08 2021-07-08 演算回路、演算装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP7428392B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111815444A (zh) 2020-06-23 2020-10-23 深圳市先河系统技术有限公司 区块链的交易方法、电子设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4855351B2 (ja) * 2007-07-02 2012-01-18 シャープ株式会社 画像処理装置
JP2009055141A (ja) * 2007-08-24 2009-03-12 Ricoh Co Ltd データ処理装置及びデータ処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111815444A (zh) 2020-06-23 2020-10-23 深圳市先河系统技术有限公司 区块链的交易方法、电子设备和存储介质

Also Published As

Publication number Publication date
JP2023009973A (ja) 2023-01-20

Similar Documents

Publication Publication Date Title
RU2627100C2 (ru) Гибридное запоминающее устройство
US10657039B2 (en) Control device for a motor vehicle
WO2020177577A1 (zh) 一种控制器加载多核固件的方法、装置及计算机设备
US10866736B2 (en) Memory controller and data processing circuit with improved system efficiency
JP4834362B2 (ja) メモリ制御装置。
US7725621B2 (en) Semiconductor device and data transfer method
JP2016512361A (ja) デュアルホスト組込み共有デバイスコントローラ
JP7428392B2 (ja) 演算回路、演算装置、方法、及びプログラム
US20150177816A1 (en) Semiconductor integrated circuit apparatus
US7913013B2 (en) Semiconductor integrated circuit
JPWO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
TWI688864B (zh) 儲存設備及儲存方法
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP6416488B2 (ja) 半導体装置
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
US8843687B2 (en) Semiconductor device controlling outbound and inbound path switching sections based on a setting state and controlling method thereof
JPH10283302A (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム
JP6992295B2 (ja) 電子装置
JP5955489B1 (ja) データ転送装置、データ転送方法及びデータ転送プログラム
JP2016154001A (ja) 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム
JP2007108858A (ja) ピン共有装置およびピン共有方法
US20190087329A1 (en) Semiconductor device and program used in the semiconductor device
JP2007334600A (ja) 半導体集積回路装置
US20100153610A1 (en) Bus arbiter and bus system
CN114721581A (zh) 用于同步动态随机存取内存的控制模块及其控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231006

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240118

R151 Written notification of patent or utility model registration

Ref document number: 7428392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151