JP2022056144A - プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム - Google Patents

プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム Download PDF

Info

Publication number
JP2022056144A
JP2022056144A JP2020163989A JP2020163989A JP2022056144A JP 2022056144 A JP2022056144 A JP 2022056144A JP 2020163989 A JP2020163989 A JP 2020163989A JP 2020163989 A JP2020163989 A JP 2020163989A JP 2022056144 A JP2022056144 A JP 2022056144A
Authority
JP
Japan
Prior art keywords
module
circuit
timing
programmable logic
memory
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
JP2020163989A
Other languages
English (en)
Inventor
宏明 塩川
Hiroaki Shiokawa
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fujifilm Business Innovation 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 Fujifilm Business Innovation Corp filed Critical Fujifilm Business Innovation Corp
Priority to JP2020163989A priority Critical patent/JP2022056144A/ja
Priority to US17/334,811 priority patent/US11942184B2/en
Publication of JP2022056144A publication Critical patent/JP2022056144A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Memory System (AREA)

Abstract

【課題】プログラマブル論理回路に再構成された複数のモジュールが共有のメモリにアクセスするタイミングを分散させる【解決手段】1つのリコンフィグ領域R1には、モジュールに含まれる入出力回路C1、計測回路C2、遅延回路C3、及び処理回路C4が、それぞれ再構成されている。処理回路C4は、決められた処理を行う回路である。入出力回路C1は、処理回路C4が使用するデータを、デバイス内メモリ20に入出力する回路である。計測回路C2は、入出力回路C1が、他のモジュールによってデータの入出力を待たされた待機時間を計測する回路である。遅延回路C3は、計測回路C2が計測した待機時間に応じて、処理回路C4による処理の開始を遅延させる回路である。遅延回路C3は、起動後に初めて処理回路C4が処理を実行する際に、初期遅延時間に基づいてその実行を遅延させる。【選択図】図9

Description

本発明は、プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラムに関する。
プログラマブル論理回路において、複数のモジュールが共有するメモリに同時にアクセスすると処理が遅延することがあった。メモリ競合時間の計測について、例えば、特許文献1は、メモリ競合時間を正確に計測できるメモリ競合時間計測装置を開示している。また、特許文献2は、少なくとも2つのメモリデバイスにおける応答に必要な最大クロックパルス数により、最大の遅延時間を計測し、これに応答してデータ出力を遅らせるデジタルメモリシステムを開示している。また、特許文献3は、リコンフィグレーション領域内にコンフィグレーションされ動作中の複数の論理回路のデータ転送量の測定値を取得し、取得したデータ転送量の合計がプログラマブルロジック回路装置のバスのデータ転送量の上限値を超えない範囲で、リコンフィグレーション領域内にコンフィグレーションする複数の論理回路それぞれの並列数を増加する情報処理装置を開示している。
特開2005-258617号公報 特許3860842号 特開2018-101359号公報
本発明は、プログラマブル論理回路に再構成された複数のモジュールが共有のメモリにアクセスするタイミングを分散させることを目的とする。
本発明の請求項1に係るプログラマブル論理回路は、通信可能に接続された複数の論理ブロックを有し、前記複数の論理ブロックのいずれかに、複数のモジュールが再構成され、前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングに、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングが重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させるプログラマブル論理回路である。
本発明の請求項2に係るプログラマブル論理回路は、請求項1に記載の態様において、前記第1タイミング、及び前記第2タイミングを予測するプログラマブル論理回路である。
本発明の請求項3に係るプログラマブル論理回路は、請求項1又は2に記載の態様において、前記メモリは、前記複数の論理ブロックのいずれかに再構成されているプログラマブル論理回路である。
本発明の請求項4に係るプログラマブル論理回路は、請求項1から3のいずれか1項に記載の態様において、1以上の前記第1モジュールと、前記第2モジュールとの組合せに応じて、該第2モジュールの実行の開始を、1以上の前記第1モジュールのいずれかの実行の開始時点から遅延させるプログラマブル論理回路である。
本発明の請求項5に係るプログラマブル論理回路は、請求項1から4のいずれか1項に記載の態様において、前記第2モジュールは、決められた処理を行う処理回路と、前記処理回路が使用するデータを前記メモリに入出力する入出力回路と、前記入出力回路が前記第1モジュールにより前記データの入出力を待たされた待機時間を計測する計測回路と、前記計測回路が計測した前記待機時間に応じて前記処理回路による前記処理の開始を遅延させる遅延回路と、を有するプログラマブル論理回路である。
本発明の請求項6に係るプログラマブル論理回路は、請求項5に記載の態様において、前記遅延回路は、前記待機時間に応じて、前記処理回路による前記処理の開始を遅延させる遅延時間を算出し、該遅延時間を算出した回数が閾値以上になった後は、新たに遅延時間を算出することなく、既に算出された前記遅延時間を用いて前記処理の開始を遅延させるプログラマブル論理回路である。
本発明の請求項7に係るプログラマブル論理回路は、請求項1から6のいずれか1項に記載の態様において、前記複数のモジュールのうち、いずれか2以上のモジュールが、互いに競合して前記メモリにアクセスした場合、該複数のモジュールのそれぞれに割り当てられた順位に応じて、該2以上のモジュールのそれぞれに前記メモリへのアクセスを許可するプログラマブル論理回路である。
本発明の請求項8に係る情報処理装置は、プログラマブル論理回路と接続されたプロセッサ、を有し、前記プロセッサは、前記プログラマブル論理回路に、複数のモジュールを再構成し、前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測し、前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測し、前記第2タイミングが前記第1タイミングと重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させる情報処理装置である。
本発明の請求項9に係る情報処理装置は、請求項8に記載の態様において、前記プロセッサは、前記メモリを、前記プログラマブル論理回路に再構成する情報処理装置である。
本発明の請求項10に係る情報処理システムは、プログラマブル論理回路と、前記プログラマブル論理回路と接続されたプロセッサと、を有し、前記プロセッサは、前記プログラマブル論理回路に、複数のモジュールを再構成し、前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測し、前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測し、前記第2タイミングが前記第1タイミングと重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させる情報処理システムである。
本発明の請求項11に係るプログラムは、プログラマブル論理回路と接続されたプロセッサ、を有するコンピュータに、前記プログラマブル論理回路に、複数のモジュールを再構成するステップと、前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測するステップと、前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測して、該第2タイミングが前記第1タイミングと重ならないように、該第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させるステップと、を実行させるプログラムである。
請求項1、10、11に係る発明によれば、プログラマブル論理回路に再構成された複数のモジュールが共有のメモリにアクセスするタイミングを分散させることができる。
請求項2に係る発明によれば、プログラマブル論理回路が自身で第1タイミング、及び第2タイミングを予測して、第1タイミングに重ならないように、第2タイミングを遅延させることができる。
請求項3、9に係る発明によれば、プログラマブル論理回路にデバイス内メモリを設ける必要がない。
請求項4に係る発明によれば、1以上の第1モジュールと、第2モジュールとの組合せに応じて、第2モジュールを遅延させる遅延時間が決まる。
請求項5に係る発明によれば、実際にデータの入出力を待たされた待機時間により、処理の開始を遅延させる遅延時間を決めることができる。
請求項6に係る発明によれば、遅延時間を算出する回数の上限を定めることができる。
請求項7に係る発明によれば、2以上のモジュールが互いに競合してメモリにアクセスした場合に、どのモジュールを優先させるかを予め決めておくことができる。
請求項8に係る発明によれば、プログラマブル論理回路に再構成された第1モジュールと、第2モジュールと、がそれぞれ共有のメモリにアクセスするタイミングを予測して、これらを分散させることができる。
情報処理システム9の構成の例を示す図。 モジュールDB121の例を示す図。 遅延時間DB122の例を示す図。 プログラムDB123の例を示す図。 優先順位表124の例を示す図。 論理デバイス2の構成の例を示す図。 本実施形態におけるプログラマブル論理回路21の構成の例を示す図。 プログラマブル論理回路21の領域の例を示す図。 再構成されたモジュールに含まれる回路を説明するための図。 2つの処理が並行して実行される論理デバイス2の例を示す図。 プロセッサ11の機能的構成の例を示す図。 プロセッサ11の動作の流れの例を示すフロー図。 論理デバイス2の動作の流れの例を示すフロー図。 モジュールの処理の周期を説明するための図。 競合によるメモリアクセス時間の増大を説明するための図。 実行の開始が遅延させられた第2モジュールM2を説明するための図。 他のモジュールの整数倍の周期を有するモジュールを説明するための図。 整数倍の周期を有するモジュールに対して開始を遅延させる例を示す図。 変形例における遅延時間DB122aの例を示す図。 変形例におけるプロセッサ11の機能的構成の例を示す図。 変形例におけるプログラマブル論理回路21の例を示す図。
<実施形態>
<情報処理システムの構成>
図1は、情報処理システム9の構成の例を示す図である。図1に示す情報処理システム9は、情報処理装置1と、論理デバイス2とを有する。情報処理装置1は、例えば、画像を示す画像データ、各種のコンピュータ・プログラム(以下、単にプログラムという)、モジュール等の情報を処理する装置である。また、情報処理装置1は、論理デバイス2を制御して、この論理デバイス2に処理の実行を指示する。論理デバイス2は、情報処理装置1の制御の下、内部の回路を再構成し、指示された処理を実行するデバイスである。
情報処理装置1は、クロック10、プロセッサ11、メモリ12、操作部14、表示部15、画像読取部17、及び画像形成部18を有する。これらの構成は、バス19で、互いに通信可能に接続されている。また、論理デバイス2は、バス19に接続され、情報処理装置1の各構成と通信可能である。
バス19は、プロセッサ11を図示しないチップセットに接続するホストバス、及び、そのチップセットに含まれる図示しないメモリコントローラとメモリ12とを接続するメモリバスを含む。また、バス19は、プロセッサ11と、論理デバイス2等とを接続するPCI(Peripheral Component Interconnect)バス、及び、このPCIバスと、上述したホストバスとを接続するホスト・PCIバスブリッジを含む。また、バス19は、画像読取部17や画像形成部18が利用する、画像データをやり取りするための画像バスを含んでいてもよい。
クロック10は、プロセッサ11、又は論理デバイス2にクロック信号を供給する構成であり、例えば水晶振動子を利用した発振回路を有する。
プロセッサ11は、メモリ12に記憶されているプログラムを読出して実行することにより情報処理装置1の各部を制御する。プロセッサ11は、例えばCPU(Central Processing Unit)である。
操作部14は、各種の指示をするための操作ボタン、キーボード、マウス、タッチパネル等の操作子を備えており、操作を受付けてその操作内容に応じた信号をプロセッサ11に送る。
表示部15は、プロセッサ11、又は論理デバイス2の制御の下、指定された画像を表示する。図1に示す表示部15は、上述した画像を表示するための表示画面である液晶ディスプレイを有している。この液晶ディスプレイの上には、操作部14の透明のタッチパネルが重ねて配置されてもよい。
画像読取部17は、LED(light emitting diode)等の照射装置、レンズやプリズム等の光学系、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサや、CCD(Charge Coupled Device)イメージセンサ等の撮像素子等を備える。画像読取部17は、プロセッサ11、又は論理デバイス2の制御の下、紙等の媒体に形成された画像を読取り、読取った画像を示す画像データを生成してプロセッサ11に供給する。
画像形成部18は、プロセッサ11、又は論理デバイス2の制御の下、例えば電子写真方式等により、紙などの媒体に画像を形成する。
メモリ12は、プロセッサ11に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。また、メモリ12は、論理デバイス2に供給するモジュールを記憶する。メモリ12は、RAM(Random Access Memory)やROM(Read Only Memory)を有する。なお、メモリ12は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。また、メモリ12は、モジュールDB121、遅延時間DB122、プログラムDB123、及び優先順位表124を記憶する。
図2は、モジュールDB121の例を示す図である。このモジュールDB121において、モジュールIDの欄は、上述したモジュールを識別する識別情報である「モジュールID」を記憶する欄である。データの欄は、対応するモジュールIDで識別されるモジュールを論理デバイス2に再構成する際に用いるデータ(コンフィグレーションデータともいう)を記憶する欄である。図2に示すモジュールDB121において、1つのモジュールは、1つのコンフィグレーションデータで構成される。
図3は、遅延時間DB122の例を示す図である。図3に示す遅延時間DB122は、第2モジュールIDリスト1221、及び遅延時間表1222を有する。第2モジュールIDリスト1221は、他のモジュール(第1モジュールという)の実行中に、実行を開始するモジュール(第2モジュールという)の識別情報であるモジュールID(第2モジュールIDという)を列挙したリストである。
遅延時間表1222は、第2モジュールIDリスト1221に挙げられている第2モジュールIDごとに1つずつ設けられた表である。遅延時間表1222は、対応する第2モジュールIDで識別される第2モジュールの実行の開始を遅延させる時間(遅延時間という)の初期値(初期遅延時間という)を記憶する。この初期遅延時間は、既に実行中である1以上の第1モジュールの組合せに応じて予め決められている。
プロセッサ11は、図3に示す遅延時間DB122を参照し、第1モジュール、及び第2モジュールが再構成された論理デバイス2に対して、この初期遅延時間を伝える。後述する論理デバイス2のプログラマブル論理回路21は、伝えられた初期遅延時間に応じて、第2モジュールの実行の開始を、1以上の第1モジュールのいずれかの実行が開始された時点(開始時点という)から遅延させる。例えば、プログラマブル論理回路21は、1以上の第1モジュールの各開始時点のうち、最も遅いものから初期遅延時間だけ遅れて第2モジュールの実行を開始する。
つまり、この論理デバイス2のプログラマブル論理回路21は、1以上の第1モジュールと、第2モジュールとの組合せに応じて、第2モジュールの実行の開始を、1以上の第1モジュールのいずれかの実行の開始時点から遅延させるプログラマブル論理回路の例である。
図4は、プログラムDB123の例を示す図である。図4に示すプログラムDB123は、プログラムID、使用モジュール、及びデータを対応付けて記憶する。図4に示すプログラムIDの欄は、情報処理装置1で指示され得るプログラムの識別情報を記憶する欄である。図4に示す使用モジュールの欄は、対応するプログラムIDで識別されるプログラムにおいて、使用される1以上のモジュールの識別情報をそれぞれ記憶する欄である。図4に示すデータの欄は、対応するプログラムIDで識別されるプログラムの内容そのものを示すデータである。
図5は、優先順位表124の例を示す図である。優先順位表124は、論理デバイス2において並行して実行される2以上のモジュールのそれぞれが、競合して共通のメモリにアクセスしたときに、いずれのモジュールのアクセスを優先するかを定めた表である。図5に示す優先順位表124は、モジュールが再構成された領域に、メモリアクセスの優先順位を対応付けて記憶する。例えば、図5に示す優先順位表124は、領域ID「R1a」→「R1b」→「R1c」→「R1d」の順に、それぞれの領域IDで識別される領域に再構成されたモジュールに対して、メモリへのアクセスを優先させることを定めている。
論理デバイス2は、プロセッサ11の制御の下、機能を実現するモジュールを再構成することが可能な論理回路であり、例えばFPGA(Field Programmable Gate Array)である。図1に示す論理デバイス2は、表示部15、画像読取部17、及び画像形成部18のうち、少なくともいずれかを制御する。なお、論理デバイス2が制御する対象はこれらに限られない。また、論理デバイス2は、これらを制御しなくてもよい。
<論理デバイスの構成>
図6は、論理デバイス2の構成の例を示す図である。図6に示す論理デバイス2は、デバイス内メモリ20、及びプログラマブル論理回路21を有する。図6に示すデバイス内メモリ20は、論理デバイス2に内蔵された記憶装置であり、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)である。図6に示すプログラマブル論理回路21は、内部の論理回路の構造を再構成できる半導体チップである。
図7は、本実施形態におけるプログラマブル論理回路21の構成の例を示す図である。図7に示すプログラマブル論理回路21は、いわゆるアイランドスタイルのFPGAである。
このプログラマブル論理回路21は、それぞれ格子状に配列された複数の、論理ブロック211、スイッチブロック212、接続ブロック213、及び入出力端子214を有する。すなわち、このプログラマブル論理回路21は、格子状に配列された複数の論理ブロックを有するプログラマブル論理回路の例である。なお、図7に示すプログラマブル論理回路21は略図であり、論理ブロック211等の個数は図7に示したものに限らない。
論理ブロック211は、真理値表回路等を用いて、論理や演算回路、記憶回路等、各種の機能を実現するモジュールを構成する単位となるブロックである。
スイッチブロック212、及び、接続ブロック213は、これらを繋ぐ配線とともに配線領域を構成する。
スイッチブロック212は、配線どうしの接続を切替えるブロックである。接続ブロック213は、論理ブロック211の入出力と上述した配線領域との接続を切替えるブロックである。
スイッチブロック212、及び、接続ブロック213は、例えば、バストランジスタを用いたスイッチとその制御用のコンフィグレーションメモリとで構成される。
入出力端子214は、プログラマブル論理回路21とプロセッサ11とを通信可能に接続し、プロセッサ11からの入力、及びプロセッサ11への出力のインタフェースとなるブロックである。
また、入出力端子214のうち、いずれかは、上述したデバイス内メモリ20に接続されており、プログラマブル論理回路21に再構成されたモジュールから要求される、そのデバイス内メモリ20へのアクセスを中継する。図7に示す入出力端子214は、上述した配線領域に接続されている。
なお、プログラマブル論理回路21は、例えば、決められた処理の実行に用いるDSP(digital signal processor)を備えていてもよい。
プロセッサ11は、メモリ12に記憶されたコンフィグレーションデータをプログラマブル論理回路21の論理ブロック211、スイッチブロック212、及び接続ブロック213にそれぞれ書き込むことで、プログラマブル論理回路21を再構成する。
図8は、プログラマブル論理回路21の領域の例を示す図である。図8に示す通り、プログラマブル論理回路21は、格子状に配列された複数の論理ブロック211を、それぞれの位置に応じて、複数の領域に区画している。図8に示すプログラマブル論理回路21は、少なくとも1つのスタティック領域R0と、複数のリコンフィグ領域R1a、R1b、R1c…を有する。リコンフィグ領域R1a、R1b、R1c…は、特に区別する必要がない場合、リコンフィグ領域R1と表記する。
スタティック領域R0は、情報処理装置1に対する電力の供給が開始される起動時に再構成される領域である。このスタティック領域R0は、例えば、呼び出される頻度の高いモジュール等や、モジュール間で共通して参照されるデータを記憶するメモリ等が起動時に再構成される。
リコンフィグ領域R1は、プロセッサ11に指示されたときに再構成される領域である。複数のリコンフィグ領域R1のそれぞれには、1つずつモジュールが再構成される。
図9は、再構成されたモジュールに含まれる回路を説明するための図である。図9に示す1つのリコンフィグ領域R1には、モジュールに含まれる入出力回路C1、計測回路C2、遅延回路C3、及び処理回路C4が、それぞれ再構成されている。
処理回路C4は、決められた処理を行う回路である。この「決められた処理」とは、例えば、画像を示す画像データを指定した角度だけ回転させる回転演算処理、画像が鮮明になるように各画素の階調を調整する画像鮮明化処理、画像から被写体の形状を検出するエッジ検出処理等である。
入出力回路C1は、処理回路C4が使用するデータを、デバイス内メモリ20に入出力する回路である。なお、この入出力回路C1は、モジュールのコンフィグレーションデータとともに、優先順位表124から読出した優先順位に基づいて再構成される。これにより、この入出力回路C1は、メモリアクセスのタイミングが複数のモジュールで競合したときに、それらのモジュールが再構成されている領域の優先順位を使って、待機を指示し、メモリアクセスの調停を行う。
計測回路C2は、入出力回路C1が、他のモジュールによってデータの入出力を待たされた時間(待機時間という)を計測する回路である。
遅延回路C3は、計測回路C2が計測した待機時間に応じて、処理回路C4による処理の開始を遅延させる回路である。なお、この遅延回路C3は、モジュールのコンフィグレーションデータとともに、遅延時間DB122から読出した初期遅延時間に基づいて再構成される。これにより、この遅延回路C3は、起動後に初めて処理回路C4が処理を実行する際に、初期遅延時間に基づいてその実行を遅延させる。
すなわち、入出力回路C1、計測回路C2、遅延回路C3、及び処理回路C4を有するモジュールが再構成されるプログラマブル論理回路21は、決められた処理を行う処理回路と、処理回路が使用するデータをメモリに入出力する入出力回路と、入出力回路が第1モジュールによりデータの入出力を待たされた待機時間を計測する計測回路と、計測回路が計測した待機時間に応じて処理回路による処理の開始を遅延させる遅延回路と、を有するプログラマブル論理回路の例である。
図9に示すリコンフィグ領域R1に再構成されたモジュールは、入出力回路C1によってデバイス内メモリ20からデータを読込み、そのデータを処理回路C4に供給する。計測回路C2は、入出力回路C1を監視して待機時間を計測し、その結果を遅延回路C3に伝える。
遅延回路C3は、計測された待機時間に応じて、入出力回路C1が次にデバイス内メモリ20にアクセスすべきタイミングを予測し、その結果に応じて次に処理回路C4に処理を開始させるタイミングを決定する。このタイミングは、実行中の他のモジュールの開始のタイミングからの遅延時間を算出することによって表される。つまり、この遅延回路C3は、待機時間に応じて、処理回路による処理の開始を遅延させる遅延時間を算出する遅延回路の例である。
処理回路C4は、遅延回路C3が決定したタイミングまで処理の実行を遅延させる。処理回路C4が処理を終了すると、入出力回路C1は、その処理の結果をデバイス内メモリ20に書込む。
図10は、2つの処理が並行して実行される論理デバイス2の例を示す図である。図10に示す論理デバイス2のプログラマブル論理回路21において、リコンフィグ領域R1aには第1モジュールM1が、リコンフィグ領域R1bには第2モジュールM2が、それぞれ再構成されている。図10に示す論理デバイス2では、第1モジュールM1の処理が先に開始され、その後に、第2モジュールM2の処理が開始される。そして、第1モジュールM1、及び第2モジュールM2のいずれもが、共通の記憶装置であるデバイス内メモリ20にアクセスする。
<プロセッサの機能的構成>
図11は、プロセッサ11の機能的構成の例を示す図である。情報処理装置1のプロセッサ11は、メモリ12に記憶されたプログラムを実行することにより、再構成部111、及び指示部112として機能する。
再構成部111は、メモリ12からコンフィグレーションデータを読出して、論理デバイス2のプログラマブル論理回路21のいずれかの領域に書き込み、モジュールを再構成する。
指示部112は、上述した再構成部111による再構成が完了すると、再構成されたそのモジュールにより実現する回路に処理を実行するよう指示する。複数のモジュールの処理の実行を並行して指示するとき、図11に示すプロセッサ11は、これら複数のモジュールによるデバイス内メモリ20へのアクセスを調停しない。この調停は、プログラマブル論理回路21によって行われる。
<情報処理装置の動作>
図12は、プロセッサ11の動作の流れの例を示すフロー図である。プロセッサ11は、情報処理装置1が起動されると、バス19を介して論理デバイス2を制御し、プログラマブル論理回路21のスタティック領域R0を再構成する(ステップS101)
。この再構成は、起動の際に一度だけ行われる。
次に、プロセッサ11は、操作部14を監視してユーザから選択されたプログラムの実行の指示があったか否かを判断する(ステップS102)。ユーザの指示がない、と判断する間(ステップS102;NO)、プロセッサ11は、この判断を続ける。
一方、ユーザの指示がある、と判断した場合(ステップS102;YES)、プロセッサ11は、プログラムDB123を参照して、指示されたプログラムの識別情報であるプログラムIDから、そのプログラムで使用されているモジュールのモジュールIDを特定し、それらモジュールにプログラマブル論理回路21の領域を割当てる(ステップS103)。
そして、プロセッサ11は、それらモジュールを、割当てたそれぞれの領域に再構成し(ステップS104)、論理デバイス2に処理の実行を指示する(ステップS105)。論理デバイス2による処理の実行が終了すると、プロセッサ11は、処理をステップS102に戻す。
<論理デバイスの動作>
図13は、論理デバイス2の動作の流れの例を示すフロー図である。論理デバイス2のプログラマブル論理回路21は、情報処理装置1のプロセッサ11から処理の実行を指示されると、再構成された1以上のモジュールごとに、決められた遅延時間に沿って、実行の開始を遅延し(ステップS201)、その後、処理を実行する(ステップS202)。
ステップS202において、入出力回路C1によりデバイス内メモリ20へのアクセスが行われると、プログラマブル論理回路21の計測回路C2は、待機時間を計測する(ステップS203)。そして、遅延回路C3は、計測された待機時間を用いて、次のメモリアクセスのタイミングを予測する(ステップS204)。
この予測は、メモリアクセスと並行して行われてもよく、メモリアクセスの待機中に行われてもよい。メモリアクセスと並行して次のメモリアクセスのタイミングを予測する場合、モジュールは実行中である。一方、メモリアクセスの待機中に次のメモリアクセスのタイミングを予測する場合、モジュールは実行中でない。
予測の結果に基づいて、プログラマブル論理回路21の遅延回路C3は、遅延時間の更新が必要であるか否かを判断する(ステップS205)。このプログラマブル論理回路21は、例えば、実行中でないモジュールが次にメモリにアクセスするタイミングと、実行中のモジュールが次にメモリにアクセスタイミングと、が重なる場合、遅延時間の更新が必要であると判断する。ここで、2以上のタイミングが重なるとは、これら2以上のタイミングの時間差が決められた閾値未満になることである。
なお、プログラマブル論理回路21は、更新のために遅延時間を算出した回数が閾値以上になった後は、遅延時間の更新が必要でない、と判断してもよい。更新が必要でないと判断されると、プログラマブル論理回路21は、既に用いられている遅延時間を用いて処理の開始を遅延させる。これにより、遅延時間が閾値以上の回数にわたって更新されることがなくなり、情報処理システムの動作は安定する。
この場合、この遅延回路C3は、待機時間に応じて、処理回路による処理の開始を遅延させる遅延時間を算出し、この遅延時間を算出した回数が閾値以上になった後は、新たに遅延時間を算出することなく、既に算出された遅延時間を用いて処理の開始を遅延させる遅延回路の例である。
遅延時間の更新が必要である、と判断する場合(ステップS205;YES)、この遅延回路C3は、自身に書込まれている遅延時間を更新し(ステップS206)、処理をステップS209に進める。この場合、更新された遅延時間は、プログラマブル論理回路21によって次にステップS201を行うときに参照され、この遅延時間に応じてモジュールの実行の開始が遅延される。
つまり、このプログラマブル論理回路21は、通信可能に接続された複数の論理ブロックを有し、複数の論理ブロックのいずれかに、複数のモジュールが再構成され、複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングに、実行中でない第2モジュールがメモリにアクセスする第2タイミングが重ならないように、第2モジュールの実行の開始を第1モジュールの実行の開始時点から遅延させるプログラマブル論理回路の例である。
一方、遅延時間の更新が必要でない、と判断する場合(ステップS205;NO)、プログラマブル論理回路21の処理回路C4は、他のモジュールとの間に、デバイス内メモリ20へのアクセスのタイミングが重なって、そのアクセスの要求が競合することがあるか否かを判断する(ステップS207)。
競合がある、と判断する場合(ステップS207;YES)、処理回路C4は、再構成の際に優先順位表124に基づいて自身に書込まれた優先順位に応じて、待機の是非を判断し(ステップS208)、処理をステップS209に進める。例えば、処理回路C4は、優先順位表124を参照して、自身を含むモジュールの順位よりも高い順位が、実行中の他のモジュールに割り当てられている場合に、そのモジュールによるメモリアクセスが終了するまで、入出力回路C1を待機させ、終了した後にそのメモリアクセスを許可する。
この場合、上述したモジュールが再構成されるプログラマブル論理回路21は、複数のモジュールのうち、いずれか2以上のモジュールが、互いに競合してメモリにアクセスした場合、これら複数のモジュールのそれぞれに割り当てられた順位に応じて、2以上のモジュールのそれぞれにメモリへのアクセスを許可するプログラマブル論理回路の例である。
一方、競合がない、と判断する場合(ステップS207;NO)、処理回路C4は、ステップS208を行わずに、そのまま処理をステップS209に進める。
プログラマブル論理回路21は、例えば、プロセッサ11からの割り込み要求や、演算の終了等の、終了条件を充足しているか否かを判断し(ステップS209)、充足していると判断する場合(ステップS209;YES)、処理を終了する。一方、終了条件を充足していない、と判断する場合(ステップS209;NO)、プログラマブル論理回路21は、処理をステップS201に戻す。
なお、各モジュールの処理の周期が外乱等に影響されることがなく、初期遅延時間のまま遅延時間を更新する必要がない場合、プログラマブル論理回路21は、上述したステップS204において、メモリアクセスのタイミングを予測しなくてもよい。また、この場合、プログラマブル論理回路21は、上述したステップS205、及びステップS207の判断を行わなくてもよい。
<共通の周期を有するモジュールのケース>
上述した動作によってモジュールの実行の開始は、以下の通り調整される。図14は、モジュールの処理の周期を説明するための図である。図14において、横方向は時間の流れを示し、この時間は左から右に流れる。モジュールの1周期分の処理は、読込→メモリアクセスを伴わない処理→書出、の3段階で構成され、この順に行われる。プログラマブル論理回路21のうち、このモジュールが再構成された領域は、まず、デバイス内メモリ20から初期値となるデータを読込み、読込んだデータを用いてメモリアクセスを伴わない処理を実行する。そして、この領域は、実行した処理の結果を示すデータをデバイス内メモリ20に書出す。
図15は、競合によるメモリアクセス時間の増大を説明するための図である。図15(a)に示す通り、プログラマブル論理回路21において、第1モジュールM1が単独で周期P1の処理を繰り返して実行する場合、上述した読込、及び書出の段階、つまり、メモリアクセスに要する時間T1は、決められた長さである。これは、他のモジュールとデバイス内メモリ20へのアクセス権を奪い合うことがないため、メモリアクセスそのものに費やされる時間のみが反映されているからである。
一方、図15(b)に示す通り、プログラマブル論理回路21において、共通の周期を有する第1モジュールM1と第2モジュールM2とが、例えば同時に開始されると、これらそれぞれのメモリアクセスのタイミングが重なる。すなわち、メモリアクセスが2つのモジュールで競合する。このとき、デバイス内メモリ20は、第1モジュール及び第2モジュールからそれぞれ要求されるアクセスに、一度に応じることができないため、アクセスのコマンドが待たされ、両方のメモリアクセスに要する時間T3が、それぞれ単独で実行するときに比べていずれも長くなる(T3>T1)。
そこで、プログラマブル論理回路21は、第1モジュールM1が実行中に開始する第2モジュールM2の処理を遅延させる。図16は、実行の開始が遅延させられた第2モジュールM2を説明するための図である。例えば、プログラマブル論理回路21は、第2モジュールM2と第1モジュールM1との組合せに応じて初期遅延時間を特定し、この初期遅延時間を遅延時間D1として用いて、第2モジュールM2の実行の開始を、第1モジュールM1の実行の開始より遅延させる。
これにより第1モジュールM1がデバイス内メモリ20にアクセスするタイミング(第1タイミングという)と、第2モジュールM2がデバイス内メモリ20にアクセスするタイミング(第2タイミングという)が重ならなくなる。そのため、第1モジュールM1がメモリアクセスに要する時間T1、及び第2モジュールM2がメモリアクセスに要する時間T2は、いずれも、それぞれが単独で実行されるときと変わらない長さに留まる。
<他のモジュールの周期の整数倍の周期を有するモジュールのケース>
また、プログラマブル論理回路21において、再構成され、並行して実行される2以上のモジュールの周期が異なることもある。しかし、一方のモジュールの周期が、他方のモジュールの周期の整数倍であり、かつ、他方のモジュールのメモリアクセスに要する時間が、一方のモジュールのメモリアクセスを伴わない処理に要する時間よりも短い、といった条件が揃った場合、一方のモジュールの実行の開始を遅延させることで、メモリアクセスの競合が避けられることがある。
図17は、他のモジュールの整数倍の周期を有するモジュールを説明するための図である。図17(a)に示す第1モジュールM1は、周期P1の処理を繰り返し、メモリアクセスに時間T1を要する。
図17(b)に示す第2モジュールM2は、周期P2の処理を繰り返し、メモリアクセスに時間T2を要する。周期P2は周期P1の半分(=P1/2)である。つまり、周期P1は、周期P2の2倍である。
この場合、第1モジュールM1及び第2モジュールM2を、例えば、同時に開始すると、図17(c)に示す通り、第2モジュールM2の繰り返し回数が偶数のときに、第1モジュールM1と、メモリアクセスが競合する。このとき、メモリアクセスに要する時間T3は、第1モジュールM1が単独でメモリアクセスに要する時間T1、及び、第2モジュールM2が単独でメモリアクセスに要する時間T2のいずれよりも長い。その結果、処理の全体に要する時間は、それぞれのモジュールを単独で実行したときの時間よりも長くなる。
図18は、整数倍の周期を有するモジュールに対して開始を遅延させる例を示す図である。2倍の周期P1を有する第1モジュールM1の開始時点に対し、プログラマブル論理回路21は、第2モジュールM2の開始時点を遅延時間D2だけ遅延させる。これにより、第1モジュールM1のメモリアクセスのタイミングである第1タイミングは、第2モジュールM2のメモリアクセスを伴わない処理中に収まる。また、第2モジュールM2のメモリアクセスのタイミングである第2タイミングは、第1モジュールM1のメモリアクセスを伴わない処理中に収まる。すなわち、第1モジュールM1と、第2モジュールM2とは、メモリアクセスが競合しない。
なお、上述した通り、遅延時間D1及び遅延時間D2は、実際の処理に際して計測された待機時間に応じて、更新される。これにより、初期遅延時間の遅延でメモリアクセスが競合した場合でも、それによる待機時間が少なくなるように、改めて第2モジュールM2の実行の開始が遅延される。
上述した動作により、論理デバイス2のプログラマブル論理回路21は、自身に再構成された複数のモジュールが、それぞれ共有のデバイス内メモリ20にアクセスするタイミングを分散させる。その結果、メモリアクセスが競合することによる待機時間の発生が抑制され、論理デバイス2における処理の実行速度は向上する。
<変形例>
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例は、互いに組合されてもよい。
<1>
上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
また上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
<2>
上述した実施形態において、遅延時間DB122は、第2モジュールIDリスト1221、及び遅延時間表1222を有していたが、他の構成であってもよい。例えば、遅延時間DB122は、2以上のモジュールの組合せごとに、初期遅延時間を対応付けてもよい。図19は、変形例における遅延時間DB122aの例を示す図である。図19に示す遅延時間DB122aは、プログラムで使用されるモジュールの組合せごとに、初期遅延時間が対応付けて記憶されている。この場合、この組合せに含まれる、実行中でないモジュールには、この組合せに対応付けられた初期遅延時間が用いられる。
<3>
上述した実施形態において、プログラマブル論理回路21は、入出力回路C1、計測回路C2、遅延回路C3、及び処理回路C4を有するモジュールを再構成していたが、計測回路C2、及び遅延回路C3の機能は、プロセッサ11によって実現されてもよい。
図20は、変形例におけるプロセッサ11の機能的構成の例を示す図である。このプロセッサ11は、計測部113、及び予測部114として機能する。図20に示す計測部113は、論理デバイス2を監視して、プログラマブル論理回路21に再構成された1以上のモジュールのそれぞれの待機時間を計測し、その結果を予測部114に伝える。
予測部114は、計測された待機時間に応じて、実行中の第1モジュールが次にデバイス内メモリ20にアクセスする第1タイミングを予測する。また、予測部114は、待機時間に応じて、実行中でない第2モジュールが次にデバイス内メモリ20にアクセスする第2タイミングを予測する。そして、予測部114は、予測した第1タイミング、及び第2タイミングを指示部112に伝える。
指示部112は、予測された第2タイミングが第1タイミングと重ならないように、第2モジュールに処理の実行を開始させる際の遅延時間を算出する。そして、指示部112は、算出した遅延時間に応じて、プログラマブル論理回路21に処理の開始を遅延させるよう指示すればよい。
この変形例におけるプロセッサ11は、プログラマブル論理回路と接続され、プログラマブル論理回路に、複数のモジュールを再構成し、複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測し、複数のモジュールのうち、実行中でない第2モジュールがメモリにアクセスする第2タイミングを予測し、第2タイミングが第1タイミングと重ならないように、第2モジュールの実行の開始を第1モジュールの実行の開始時点から遅延させるプロセッサの例である。
<4>
上述した実施形態において、プログラマブル論理回路21に再構成された各モジュールは、論理デバイス2に備えられた共通のデバイス内メモリ20にアクセスしていたが、これに限られない。例えば、各モジュールは、情報処理装置1のメモリ12にアクセスしてもよい。また、各モジュールは、プログラマブル論理回路21のスタティック領域R0に再構成されたメモリにアクセスしてもよい。
図21は、変形例におけるプログラマブル論理回路21の例を示す図である。図21に示すプログラマブル論理回路21は、スタティック領域R0に再構成メモリM0を再構成している。リコンフィグ領域R1aに再構成された第1モジュールM1、及びリコンフィグ領域R1bに再構成された第2モジュールM2は、ともにスタティック領域R0に再構成された共通のメモリである再構成メモリM0にアクセスする。そして、スタティック領域R0も、複数の論理ブロック211を含む。つまり、この再構成メモリM0は、複数の論理ブロックのいずれかに再構成されているメモリの例である。この場合にも、プログラマブル論理回路21は、第2タイミングが第1タイミングと重ならないように、第2モジュールM2に処理の実行を遅延させればよい。
<5>
上述した実施形態において、情報処理装置1のプロセッサ11によって実行されるプログラムは、プログラマブル論理回路と接続されたプロセッサ、を有するコンピュータに、前記プログラマブル論理回路に、複数のモジュールを再構成するステップと、前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測するステップと、前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測して、該第2タイミングが前記第1タイミングと重ならないように、該第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させるステップと、を実行させるプログラムの例である。
このプログラムは、磁気テープ及び磁気ディスク等の磁気記録媒体、光ディスク等の光記録媒体、光磁気記録媒体、半導体メモリ等の、コンピュータ装置が読取り可能な記録媒体に記憶された状態で提供し得る。また、このプログラムは、インターネット等の通信回線経由でダウンロードされてもよい。
1…情報処理装置、10…クロック、11…プロセッサ、111…再構成部、112…指示部、113…計測部、114…予測部、12…メモリ、121…モジュールDB、122、122a…遅延時間DB、1221…第2モジュールIDリスト、1222…遅延時間表、123…プログラムDB、124…優先順位表、14…操作部、15…表示部、17…画像読取部、18…画像形成部、19…バス、2…論理デバイス、20…デバイス内メモリ、21…プログラマブル論理回路、211…論理ブロック、212…スイッチブロック、213…接続ブロック、214…入出力端子、9…情報処理システム、C1…入出力回路、C2…計測回路、C3…遅延回路、C4…処理回路、D1、D2…遅延時間、M0…再構成メモリ、M1…第1モジュール、M2…第2モジュール、P1、P2…周期、R0…スタティック領域、R1、R1a、R1b、R1c、R1d…リコンフィグ領域、T1、T2、T3…時間。

Claims (11)

  1. 通信可能に接続された複数の論理ブロックを有し、
    前記複数の論理ブロックのいずれかに、複数のモジュールが再構成され、
    前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングに、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングが重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させる
    プログラマブル論理回路。
  2. 前記第1タイミング、及び前記第2タイミングを予測する
    請求項1に記載のプログラマブル論理回路。
  3. 前記メモリは、前記複数の論理ブロックのいずれかに再構成されている
    請求項1又は2に記載のプログラマブル論理回路。
  4. 1以上の前記第1モジュールと、前記第2モジュールとの組合せに応じて、該第2モジュールの実行の開始を、1以上の前記第1モジュールのいずれかの実行の開始時点から遅延させる
    請求項1から3のいずれか1項に記載のプログラマブル論理回路。
  5. 前記第2モジュールは、
    決められた処理を行う処理回路と、
    前記処理回路が使用するデータを前記メモリに入出力する入出力回路と、
    前記入出力回路が前記第1モジュールにより前記データの入出力を待たされた待機時間を計測する計測回路と、
    前記計測回路が計測した前記待機時間に応じて前記処理回路による前記処理の開始を遅延させる遅延回路と、を有する
    請求項1から4のいずれか1項に記載のプログラマブル論理回路。
  6. 前記遅延回路は、前記待機時間に応じて、前記処理回路による前記処理の開始を遅延させる遅延時間を算出し、該遅延時間を算出した回数が閾値以上になった後は、新たに遅延時間を算出することなく、既に算出された前記遅延時間を用いて前記処理の開始を遅延させる
    請求項5に記載のプログラマブル論理回路。
  7. 前記複数のモジュールのうち、いずれか2以上のモジュールが、互いに競合して前記メモリにアクセスした場合、該複数のモジュールのそれぞれに割り当てられた順位に応じて、該2以上のモジュールのそれぞれに前記メモリへのアクセスを許可する
    請求項1から6のいずれか1項に記載のプログラマブル論理回路。
  8. プログラマブル論理回路と接続されたプロセッサ、を有し、前記プロセッサは、
    前記プログラマブル論理回路に、複数のモジュールを再構成し、
    前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測し、
    前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測し、
    前記第2タイミングが前記第1タイミングと重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させる
    情報処理装置。
  9. 前記プロセッサは、
    前記メモリを、前記プログラマブル論理回路に再構成する
    請求項8に記載の情報処理装置。
  10. プログラマブル論理回路と、
    前記プログラマブル論理回路と接続されたプロセッサと、を有し、
    前記プロセッサは、
    前記プログラマブル論理回路に、複数のモジュールを再構成し、
    前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測し、
    前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測し、
    前記第2タイミングが前記第1タイミングと重ならないように、前記第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させる
    情報処理システム。
  11. プログラマブル論理回路と接続されたプロセッサ、を有するコンピュータに、
    前記プログラマブル論理回路に、複数のモジュールを再構成するステップと、
    前記複数のモジュールのうち、実行中の第1モジュールがメモリにアクセスする第1タイミングを予測するステップと、
    前記複数のモジュールのうち、実行中でない第2モジュールが前記メモリにアクセスする第2タイミングを予測して、該第2タイミングが前記第1タイミングと重ならないように、該第2モジュールの実行の開始を前記第1モジュールの実行の開始時点から遅延させるステップと、
    を実行させるプログラム。
JP2020163989A 2020-09-29 2020-09-29 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム Pending JP2022056144A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020163989A JP2022056144A (ja) 2020-09-29 2020-09-29 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム
US17/334,811 US11942184B2 (en) 2020-09-29 2021-05-31 Programmable logic circuit, information processing apparatus, and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020163989A JP2022056144A (ja) 2020-09-29 2020-09-29 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム

Publications (1)

Publication Number Publication Date
JP2022056144A true JP2022056144A (ja) 2022-04-08

Family

ID=80823059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020163989A Pending JP2022056144A (ja) 2020-09-29 2020-09-29 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム

Country Status (2)

Country Link
US (1) US11942184B2 (ja)
JP (1) JP2022056144A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022040721A (ja) * 2020-08-31 2022-03-11 富士フイルムビジネスイノベーション株式会社 情報処理装置、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892981A (en) 1996-10-10 1999-04-06 Hewlett-Packard Company Memory system and device
JP2005258617A (ja) 2004-03-10 2005-09-22 Nec Corp メモリ競合時間計測装置、メモリ競合時間計測方法及びプログラム
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7420874B2 (en) * 2005-04-06 2008-09-02 Rambus Inc. Integrated circuit memory device, system and method having interleaved row and column control
US11328764B2 (en) * 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
JP5565204B2 (ja) * 2010-08-23 2014-08-06 株式会社リコー データ転送装置、データ転送方法およびプログラム、ならびに、画像形成装置
US9293176B2 (en) * 2014-02-18 2016-03-22 Micron Technology, Inc. Power management
KR101593835B1 (ko) * 2014-10-30 2016-02-12 엘에스산전 주식회사 Plc 시스템
US9653148B1 (en) * 2016-02-18 2017-05-16 Piecemakers Technology, Inc. Multi-bank memory device and system
JP6849908B2 (ja) 2016-12-21 2021-03-31 富士通株式会社 情報処理装置、pld管理プログラム及びpld管理方法
US10884829B1 (en) * 2020-05-05 2021-01-05 Innovium, Inc. Shared buffer memory architecture

Also Published As

Publication number Publication date
US11942184B2 (en) 2024-03-26
US20220101897A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
JP5498505B2 (ja) データバースト間の競合の解決
JP6761870B2 (ja) 低電力メモリのスロットリング
EP3979072B1 (en) Firmware boot task distribution to enable low latency boot performance
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
EP0463775B1 (en) Multiple speed expansion card
JP2022056144A (ja) プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム
US9003217B2 (en) Semiconductor integrated circuit apparatus
US11157206B2 (en) Multi-die system capable of sharing non-volatile memory
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
JP7468112B2 (ja) インタフェース回路およびインタフェース回路の制御方法
JP2022072452A (ja) 情報処理装置、及びプログラム
JP2006215621A (ja) Dma制御装置
JP2022040721A (ja) 情報処理装置、及びプログラム
WO2002093392A1 (fr) Processeur de donnees
US5799160A (en) Circuit and method for controlling bus arbitration
JP2011203843A (ja) 情報処理装置
JP2010113414A (ja) マルチコアシステム、スレッドスケジューリング方法、プログラム、記憶媒体
US20010005870A1 (en) External bus control system
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
JP2012168773A (ja) バスシステムおよびアクセス制御方法
JP2012221125A (ja) データ転送制御装置、データ転送システム及びデータ転送方法
JP2000250852A (ja) バス調停装置、バスシステムおよびバス調停方法
JP5949330B2 (ja) 情報処理装置、情報処理方法
JP2013073297A (ja) 時分割方式による割り込み制御回路および割り込み制御方法
JP2006031227A (ja) Dma転送を用いたコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240613

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240827