JP2024059122A - 入出力制御装置 - Google Patents
入出力制御装置 Download PDFInfo
- Publication number
- JP2024059122A JP2024059122A JP2022166580A JP2022166580A JP2024059122A JP 2024059122 A JP2024059122 A JP 2024059122A JP 2022166580 A JP2022166580 A JP 2022166580A JP 2022166580 A JP2022166580 A JP 2022166580A JP 2024059122 A JP2024059122 A JP 2024059122A
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- read
- output control
- semiconductor 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
Links
- 238000012795 verification Methods 0.000 claims abstract description 57
- 239000004065 semiconductor Substances 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 44
- 230000006866 deterioration Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 12
- 230000007423 decrease Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】検証回路において、性能検証の精度低下を抑制する。
【解決手段】入出力制御装置200は、検証回路100と半導体メモリ装置320との間に接続され、データの入出力を制御する入出力制御装置であって、半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを検証回路から入力し、リードトランザクションに対応して半導体メモリ装置から受信するリードレスポンスを検証回路に出力するための第1ポート210と、リードトランザクションを半導体メモリ装置に出力し、リードトランザクションに対応して半導体メモリ装置から出力されるリードレスポンスを受信するための第2ポート240と、リードトランザクションの半導体メモリ装置への出力と、リードレスポンスの検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置250と、を備える。
【選択図】図1
【解決手段】入出力制御装置200は、検証回路100と半導体メモリ装置320との間に接続され、データの入出力を制御する入出力制御装置であって、半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを検証回路から入力し、リードトランザクションに対応して半導体メモリ装置から受信するリードレスポンスを検証回路に出力するための第1ポート210と、リードトランザクションを半導体メモリ装置に出力し、リードトランザクションに対応して半導体メモリ装置から出力されるリードレスポンスを受信するための第2ポート240と、リードトランザクションの半導体メモリ装置への出力と、リードレスポンスの検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置250と、を備える。
【選択図】図1
Description
本開示は、入出力制御装置に関する。
従来、電子回路の開発において、電子回路の性能および機能の検証のために、FPGA(Field Programmable Gate Array)に検証対象の電子回路を実装して検証を行う技術が知られている。かかる検証方法によれば、ソフトウェアによる検証と比較して短時間での検証が可能である。
[令和4年8月30日検索]、インターネット<URL:https://www.synopsys.com/ja-jp/verification/prototyping.html>
[令和4年8月30日検索]、インターネット<URL:https://www.synopsys.com/ja-jp/verification/emulation.html>
検証対象の電子回路が大量のメモリを必要とする場合にはFPGAにDRAM(Dynamic Random Access Memory)を接続して検証を行うことがある。しかしながら、DRAMの動作周波数は、FPGAの動作周波数に比べて大幅に高速であるため、電子回路の性能を正しく検証できないという問題がある。また、DRAMよりも動作周波数の遅いSRAM(Static Random Access Memory)を用いて検証を行う手法も存在するが、SRAMはDRAMに比べて単価が高く、検証コストが増大するという問題がある。
本開示は、以下の形態として実現することが可能である。
本開示の一形態によれば、入出力制御装置(200)が提供される。この入出力制御装置は、検証回路(100)と半導体メモリ装置(320)との間に接続され、データの入出力を制御する入出力制御装置であって、前記半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを前記検証回路から入力し、前記リードトランザクションに対応して前記半導体メモリ装置から受信するリードレスポンスを前記検証回路に出力するための第1ポート(210)と、前記リードトランザクションを前記半導体メモリ装置に出力し、前記リードトランザクションに対応して前記半導体メモリ装置から出力される前記リードレスポンスを受信するための第2ポート(240)と、前記リードトランザクションの前記半導体メモリ装置への出力と、前記リードレスポンスの前記検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置(250)と、を備える。
この形態の入出力制御装置によれば、リードトランザクションの半導体メモリ装置への出力と、リードレスポンスの検証回路への出力と、のうちの少なくとも一方を遅延させるので、検証回路の動作周波数と半導体メモリ装置の動作周波数との差異を抑制し、検証回路の性能検証の精度低下を抑制できる。
A.第1実施形態:
A-1.装置構成:
図1に示すように、入出力制御装置200は、検証回路100とメモリシステム300との間に接続され、検証回路100とメモリシステム300とのデータの入出力を制御する。より具体的には、入出力制御装置200は、検証回路100からメモリシステム300へのリードトランザクションの出力と、メモリシステム300から検証回路100へのリードレスポンスの出力とを、それぞれ予め設定されたサイクル数遅延させる。
A-1.装置構成:
図1に示すように、入出力制御装置200は、検証回路100とメモリシステム300との間に接続され、検証回路100とメモリシステム300とのデータの入出力を制御する。より具体的には、入出力制御装置200は、検証回路100からメモリシステム300へのリードトランザクションの出力と、メモリシステム300から検証回路100へのリードレスポンスの出力とを、それぞれ予め設定されたサイクル数遅延させる。
本実施形態では、検証回路100はFPGA(Field Programmable Gate Array)により実現され、演算装置110とバス120とを備える。演算装置110は、バス120を介して入出力制御装置200と互いに接続され、メモリシステム300に対するデータアクセスを要求するトランザクションを入出力制御装置200へ出力する。以下の説明において、メモリシステム300からのデータの読み出しを要求するトランザクションを「リードトランザクション」と呼ぶ。本実施形態では、演算装置110から出力されるリードトランザクションは、ID、データ量およびアクセス対象のアドレスを少なくとも有する。
メモリシステム300は、メモリコントローラ310と半導体メモリ装置320とを備える。メモリコントローラ310は、入出力制御装置200から出力されたトランザクションを、半導体メモリ装置320で処理するためのプロトコルに変換して半導体メモリ装置320へ出力する。また、メモリコントローラ310は、プロトコルに応じて半導体メモリ装置320から出力されたデータを、演算装置110で処理するためのリードレスポンスに変換して、バス10を介して入出力制御装置200へ出力する。リードレスポンスは、対応するリードトランザクションと同じIDを有する。
半導体メモリ装置320は、メモリコントローラ310から出力されたプロトコルにより指定される任意の記憶単位について、データの読み書きが可能に構成されている。本実施形態では、半導体メモリ装置320は、バンクB0、B1を有するDRAMとして構成されている。なお、半導体メモリ装置320は、1つのみ、または、3つ以上のバンクを備えていてもよい。
入出力制御装置200は、スレーブポート210と、帯域カウンタ装置220と、経過サイクルカウンタ231~234と、マスタポート240と、バッファ装置250とを備える。
スレーブポート210は、検証回路100と互いに接続し、検証回路100からのトランザクションの受信と検証回路100へのリードレスポンスの出力とを行う。スレーブポート210は、本開示における「第1ポート」に相当する。
帯域カウンタ装置220は、アクセスデータ量をカウントするとともに、予め設定された時間内におけるアクセスデータ量が予め設定された目標帯域を超えている場合に、リードトランザクションのメモリシステム300への出力を保留する。「アクセスデータ量」は、メモリシステム300へ出力されたリードトランザクションのデータ量の単位時間あたりの合計値を意味する。「目標帯域」は、バス10の使用帯域の目標を定める値を意味する。また、帯域カウンタ装置220は、アクセスデータ量が目標帯域以下となった場合に、マスタポート240を介してリードトランザクションをメモリシステム300へ出力する。帯域カウンタ装置220による具体的な処理については、後述するトランザクション出力処理において説明する。
経過サイクルカウンタ231~234は、リードトランザクションごとにメモリシステム300にリードトランザクションが出力されてからの経過サイクル数を保持する。また、経過サイクルカウンタ231~234はそれぞれ、経過サイクル数をカウントして保持しているか否かを示すパラメータ(以下、「ビジー」とも呼ぶ)を有する。ビジー「0」は、経過サイクル数を保持していないこと、すなわちカウントしていないことを示し、ビジー「1」は、経過サイクル数を保持していること、すなわちカウントしていることを示す。経過サイクルカウンタ231~234による具体的な処理については、後述するトランザクション出力処理およびレスポンス出力処理において説明する。
本実施形態の入出力制御装置200において、経過サイクルカウンタは、リードトランザクションの最大アウトスタンディング数と同数設けられていることが好ましい。「最大アウトスタンディング数」は、演算装置110がリードレスポンスを受け取ることなく連続してリードトランザクションを出力できる最大数を意味する。このような構成により、入出力制御装置200は、演算装置110から連続して出力されるリードトランザクションを過不足なく並列して処理することができる。
マスタポート240は、メモリシステム300と互いに接続し、メモリシステム300へのトランザクションの出力と、メモリシステム300からのリードレスポンスの受信とを行う。マスタポート240は、本開示における「第2ポート」に相当する。
バッファ装置250は、経過サイクル数が予め設定された閾値未満である場合にリードレスポンスを保留する。本実施形態では、バッファ装置250は、FIFO(First-In First-Out)形式でリードレスポンスを保留する。また、バッファ装置250は、経過サイクル数が閾値以上となった場合に、スレーブポート210を介してリードレスポンスを検証回路100へ出力する。バッファ装置250による具体的な処理については、後述するレスポンス出力処理において説明する。
A-2.トランザクション出力処理:
入出力制御装置200は、メモリシステム300へリードトランザクションを出力する際、図2に示すトランザクション出力処理を実行する。検証回路100からリードトランザクションが出力されると、帯域カウンタ装置220は、アクセスデータ量が目標帯域以下であるか否かを判定する(ステップS110)。
入出力制御装置200は、メモリシステム300へリードトランザクションを出力する際、図2に示すトランザクション出力処理を実行する。検証回路100からリードトランザクションが出力されると、帯域カウンタ装置220は、アクセスデータ量が目標帯域以下であるか否かを判定する(ステップS110)。
アクセスデータ量が目標帯域以下であると判定された場合(ステップS110:Yes)、入出力制御装置200は、経過サイクルカウンタ231~234のうちの少なくともいずれかひとつのビジーが「0」であるか否かを判定する(ステップS120)。経過サイクルカウンタ231~234のうちの少なくともいずれかひとつのビジーが「0」であると判定された場合(ステップS120:Yes)、入出力制御装置200は、リードトランザクションを、スレーブポート210を介して受信する(ステップS130)。
他方、アクセスデータ量が目標帯域を超えていると判定された場合(ステップS110:No)、または、経過サイクルカウンタ231~234すべてのビジーが「1」である場合(ステップS120:No)、入出力制御装置200は、スレーブポート210におけるリードトランザクションの受信を停止する。本実施形態では、リードトランザクションの受信が停止している間、リードトランザクションは、検証回路100において保持される。
ステップS140において、帯域カウンタ装置220は、受信したリードトランザクションのデータ量(以下、「受信データ量」とも呼ぶ)を、保持しているアクセスデータ量に加算した値を新たなアクセスデータ量とする。また、ステップS150において、帯域カウンタ装置220は、受信データ量をアクセスデータ量に加算した時刻を記録する。
ステップS160において、帯域カウンタ装置220は、リードトランザクションを、マスタポート240を介して出力する。
ステップS170において、経過サイクルカウンタ231~234のうち、ビジーが0であるいずれかひとつ(以下、「選択カウンタ」とも呼ぶ)において、ビジーが「1」に変更され、出力されたトランザクションのIDおよびデータ量が記録される。また、ステップS180において、選択カウンタは、経過サイクル数のカウントを開始する。選択カウンタは、1サイクル経過するごとに、保持している経過サイクル数に「1」を加算した値を新たに保持する。
入出力制御装置200は、上述のステップS110からステップS180を、検証回路100からリードトランザクションが出力されるたびに繰り返し実行する。
上述のステップS110からステップS180と並列して、帯域カウンタ装置220は、加算されてから予め定められた時間経過したデータ量をアクセスデータ量から減算する(ステップS190)。本実施形態では、帯域カウンタ装置220は、本ステップを繰り返し行うことにより、予め設定された時間枠内におけるアクセスデータ量をカウントして保持できる。
A-3.レスポンス出力処理:
入出力制御装置200は、検証回路100へリードレスポンスを出力する際、図3に示すレスポンス出力処理を実行する。入出力制御装置200がマスタポート240を介してリードレスポンスを受信すると(ステップS210:Yes)、バッファ装置250は、受信されたリードレスポンスを保留する(ステップS220)。バッファ装置250は、ステップS210およびステップS220を繰り返し実行する。
入出力制御装置200は、検証回路100へリードレスポンスを出力する際、図3に示すレスポンス出力処理を実行する。入出力制御装置200がマスタポート240を介してリードレスポンスを受信すると(ステップS210:Yes)、バッファ装置250は、受信されたリードレスポンスを保留する(ステップS220)。バッファ装置250は、ステップS210およびステップS220を繰り返し実行する。
ステップS210およびステップS220と並列して、バッファ装置250は、対応カウンタの経過サイクル数が予め設定された閾値以上であるか否かを判定する(ステップS230)。「対応カウンタ」は、経過サイクルカウンタ231~234のうち、記録されているIDと、バッファ装置250の先頭データのIDとが一致している経過サイクルカウンタを意味する。対応カウンタの経過サイクル数が閾値未満であると判定された場合(ステップS230:No)、バッファ装置250は、データを保留したまま待機する。
対応カウンタの経過サイクル数が閾値以上であると判定された場合(ステップS230:Yes)、バッファ装置250は、先頭データを、スレーブポート210を介して出力する(ステップS240)。かかる閾値は、検証回路100が模擬する電子回路にメモリシステム300を接続した場合のレイテンシを模擬するように、予め実験等を行うことにより特定された値として設定されている。
ステップS250において、バッファ装置250は、対応カウンタに記録されたデータ量分のデータが出力されたか否かを判定する(ステップS250)。対応カウンタに記録されたデータ量分のデータを出力されていないと判定された場合(ステップS250:No)、バッファ装置250は、対応カウンタに記録されたデータ量分のデータが出力されるまで、ステップS240およびステップS250を繰り返し実行する。
対応カウンタに記録されたデータ量分のデータが出力されたと判定された場合(ステップS250:Yes)、バッファ装置250は、対応カウンタのビジーを「0」にリセットし、記録されていたIDおよびデータ量を消去する(ステップS260)。本ステップ後、対応カウンタは、再び他のリードトランザクションの経過サイクル数をカウントできる状態となる。入出力制御装置200は、ステップS230からステップS260を繰り返し実行する。
以上説明した入出力制御装置200によれば、リードトランザクションのメモリシステム300への出力と、リードレスポンスの検証回路100への出力とを遅延させるので、検証回路100の動作周波数とメモリシステム300の動作周波数との差異を抑制し、検証回路100の性能検証の精度低下を抑制できる。
B.第2実施形態:
第2実施形態の入出力制御装置200Aは、図4に示すように目標帯域生成装置260を備える点と、図5に示すように、トランザクション出力処理においてステップS140の後に目標帯域設定処理(ステップS1400)を実行する点とにおいて、第1実施形態の入出力制御装置200と異なっている。第2実施形態の入出力制御装置200Aのその他の装置構成およびトランザクション出力処理におけるその他の手順は、第1実施形態の入出力制御装置200と同じであるので、同一の構成および同一の手順には同一の符号を付し、その詳細な説明を省略する。
第2実施形態の入出力制御装置200Aは、図4に示すように目標帯域生成装置260を備える点と、図5に示すように、トランザクション出力処理においてステップS140の後に目標帯域設定処理(ステップS1400)を実行する点とにおいて、第1実施形態の入出力制御装置200と異なっている。第2実施形態の入出力制御装置200Aのその他の装置構成およびトランザクション出力処理におけるその他の手順は、第1実施形態の入出力制御装置200と同じであるので、同一の構成および同一の手順には同一の符号を付し、その詳細な説明を省略する。
図4に示すように、目標帯域生成装置260は、バンクアクセスカウンタ装置261、262と、帯域設定部263とを備える。バンクアクセスカウンタ装置261、262はそれぞれ、バンクB0、B1を対象として、バンクアクセスデータ量をカウントし保持するとともに、各バンクにおける前回アクセスページを記録する。「バンクアクセスデータ量」は、各バンクにおいて同じページに対して連続して発行されたリードトランザクションのデータ量の合計値を意味する。「前回アクセスページ」は、各バンクにおいて、前回出力したリードトランザクションのアクセス対象となっていたページアドレスを意味する。なお、目標帯域生成装置260が備えるバンクアクセスカウンタ装置の数は、半導体メモリ装置320が備えるバンクの数と同じとする。バンクアクセスカウンタ装置261、262における処理については、後述する目標帯域設定処理において説明する。
帯域設定部263は、バンクアクセスカウンタ装置261、262にそれぞれ保持されたバンクアクセスデータ量の平均値を算出する。また、帯域設定部263は、算出されたバンクアクセスデータ量の平均値を利用して、目標帯域を設定する。
目標帯域生成装置260は、図5に示すように、ステップS140の後、目標帯域設定処理を実行し(ステップS1400)、上述のステップS110において参照する目標帯域を更新する。
図6に示す目標帯域設定処理において、目標帯域生成装置260は、リードトランザクションのアクセス対象のバンクアドレスが「0」であるか「1」であるかを判定する(ステップS1410)。アクセス対象のバンクアドレスが「0」であると判定された場合、受信したリードトランザクションのアクセス対象のページアドレス(以下、「今回アクセスページ」とも呼ぶ)がバンクB0における前回アクセスページと同じであるか否かを判定する(ステップS1420)。
今回アクセスページが前回アクセスページと同じである場合(ステップS1420:Yes)、バンクアクセスカウンタ装置261は、保持しているバンクアクセスデータ量に受信データ量を加算した値を新たなバンクアクセスデータ量とする(ステップS1430)。
今回アクセスページが前回アクセスページと異なる場合(ステップS1420:No)、バンクアクセスカウンタ装置261は、受信データ量を新たなバンクアクセスデータ量とし、今回アクセスページを記録する(ステップS1432)。
他方、アクセス対象のバンクアドレスが「1」であると判定された場合、今回アクセスページがバンクB1における前回アクセスページと同じであるか否かを判定する(ステップS1422)。
今回アクセスページが前回アクセスページと同じである場合(ステップS1422:Yes)、バンクアクセスカウンタ装置262は、保持しているバンクアクセスデータ量に受信データ量を加算した値を新たなバンクアクセスデータ量とする(ステップS1434)。
今回アクセスページが前回アクセスページと異なる場合(ステップS1422:No)、バンクアクセスカウンタ装置262は、受信データ量を新たなバンクアクセスデータ量とし、今回アクセスページを記録する(ステップS1436)。
ステップS1440において、帯域設定部263は、バンクアクセスカウンタ装置261、262それぞれにおいてカウントされて保持されているバンクアクセスデータ量の平均値を算出し、算出された平均値から目標帯域を設定する。本実施形態では、帯域設定部263は、図7に示すバンクアクセスデータ量の平均値と目標帯域との関係を示すテーブルを利用して目標帯域を設定する。本実施形態では、テーブルは、バンクアクセスデータ量の平均値が大きくなるにつれて、目標帯域が大きくなる関係を有する。より具体的には、テーブルは、バンクアクセスデータ量の平均値が大きくなるにつれて、目標帯域の増大量の傾きが小さくなる関係を有する。以上で、目標帯域生成装置260は、目標帯域設定処理を終了する。
以上説明した第2実施形態の入出力制御装置200Aによれば、各バンクアクセスカウンタ装置261、262それぞれにおいてカウントされて保持されているバンクアクセスデータ量の平均値に応じて目標帯域を設定するので、アクセスデータ量の変化に応じてリードトランザクションのメモリシステム300への出力を遅延させることができ、検証回路100の性能検証の精度低下をより抑制できる。
C.他の実施形態:
(C1)上記実施形態において、経過サイクルカウンタは最大アウトスタンディング数と同数設けられているが、本開示はこれに限定されない。経過サイクルカウンタは最大アウトスタンディング数よりも少ない数設けられていてもよい。かかる形態によっても、上記実施形態と同様の効果を奏する。
(C1)上記実施形態において、経過サイクルカウンタは最大アウトスタンディング数と同数設けられているが、本開示はこれに限定されない。経過サイクルカウンタは最大アウトスタンディング数よりも少ない数設けられていてもよい。かかる形態によっても、上記実施形態と同様の効果を奏する。
(C2)上記実施形態において、入出力制御装置200は、バッファ装置250と帯域カウンタ装置220とを備えるが、本開示はこれに限定されない。入出力制御装置200は、バッファ装置250と帯域カウンタ装置220とのうち、バッファ装置250のみ備えていてもよい。かかる形態によっても、入出力制御装置200は、リードレスポンスの検証回路100への出力を遅延させることができるので、検証回路の動作周波数と半導体メモリ装置320の動作周波数との差異を抑制し、検証回路100の性能検証の精度低下を抑制できる。
(C3)上記実施形態において、テーブルは、バンクアクセスデータ量の平均値が大きくなるにつれて、目標帯域の増大量の傾きが小さくなる関係を有するが、本開示はこれに限定されない。テーブルは、平均値が大きくなるにつれて、目標帯域が直線的に増大する関係を有してもよい。かかる形態によっても、上記実施形態と同様の効果を奏する。
本開示に記載の入出力制御装置200およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の入出力制御装置200およびその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の入出力制御装置200およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した形態中の技術的特徴に対応する各実施形態中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
[形態1]
検証回路(100)と半導体メモリ装置(320)との間に接続され、データの入出力を制御する入出力制御装置(200)であって、
前記半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを前記検証回路から受信し、前記リードトランザクションに対応して前記半導体メモリ装置から受信するリードレスポンスを前記検証回路に出力するための第1ポート(210)と、
前記リードトランザクションを前記半導体メモリ装置に出力し、前記リードトランザクションに対応して前記半導体メモリ装置から出力される前記リードレスポンスを受信するための第2ポート(240)と、
前記リードトランザクションの前記半導体メモリ装置への出力と、前記リードレスポンスの前記検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置(250)と、
を備える、
入出力制御装置。
[形態2]
形態1に記載の入出力制御装置であって、
前記リードトランザクションごとに前記半導体メモリ装置に前記リードトランザクションが出力されてからの経過サイクル数をカウントする経過サイクルカウンタ(231、232、233、234)をさらに備え、
前記バッファ装置は、前記経過サイクル数が予め設定された閾値未満である場合に前記リードレスポンスを保留し、前記経過サイクル数が前記閾値以上となった場合に前記リードレスポンスを、前記第1ポートを介して前記検証回路へ出力する、
入出力制御装置。
[形態3]
形態2に記載の入出力制御装置であって、
前記経過サイクルカウンタは、前記リードトランザクションの最大アウトスタンディング数と同数設けられている、
入出力制御装置。
[形態4]
形態1から形態3のいずれか一項に記載の入出力制御装置であって、
前記半導体メモリ装置へ出力された前記リードトランザクションのデータ量の合計値であるアクセスデータ量をカウントする帯域カウンタ装置(220)を備え、
前記帯域カウンタ装置は、設定された目標帯域を前記アクセスデータ量が超えている場合に前記第2ポートを介した前記リードトランザクションの前記半導体メモリ装置への出力を保留し、前記アクセスデータ量が前記目標帯域以下となった場合に前記リードトランザクションを、前記第2ポートを介して前記半導体メモリ装置へ出力する、
入出力制御装置。
[形態5]
形態4に記載の入出力制御装置であって、
前記帯域カウンタ装置は、予め設定された時間内における前記アクセスデータ量が予め設定された前記目標帯域を超えている場合に前記リードトランザクションの前記半導体メモリ装置への出力を保留する、
入出力制御装置。
[形態6]
形態4に記載の入出力制御装置であって、
前記帯域カウンタ装置の前記目標帯域を生成する目標帯域生成装置(260)をさらに備え、
前記目標帯域生成装置は、
前記半導体メモリ装置が備える複数のバンクと同数設けられ、互いに異なる前記バンクを対象として、各前記バンクにおいて同じページに対して連続して発行された前記リードトランザクションのデータ量の合計値であるバンクアクセスデータ量をそれぞれカウントする複数のバンクアクセスカウンタ装置(261、262)と、
各前記バンクアクセスカウンタ装置によりカウントされた前記バンクアクセスデータ量の平均値を算出し、算出された前記平均値と前記目標帯域との関係を示す予め設定されたテーブルを利用して前記目標帯域を設定する帯域設定部(263)と、
を備え、
各前記バンクアクセスカウンタ装置は、各前記バンクにおいて、受信した前記リードトランザクションのアクセス対象である今回アクセスページと、前回出力した前記リードトランザクションのアクセス対象である前回アクセスページと、が互いに同じである場合には、前記バンクアクセスデータ量に前記リードトランザクションのデータ量を加算した値を新たな前記アクセスデータ量とし、前記今回アクセスページと前記前回アクセスページとが互いに異なる場合には前記リードトランザクションのデータ量を新たな前記バンクアクセスデータ量とする、
入出力制御装置。
[形態7]
形態6に記載の入出力制御装置であって、
前記テーブルは、前記平均値が大きくなるほど前記目標帯域が大きくなるように設定されている、
入出力制御装置。
[形態1]
検証回路(100)と半導体メモリ装置(320)との間に接続され、データの入出力を制御する入出力制御装置(200)であって、
前記半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを前記検証回路から受信し、前記リードトランザクションに対応して前記半導体メモリ装置から受信するリードレスポンスを前記検証回路に出力するための第1ポート(210)と、
前記リードトランザクションを前記半導体メモリ装置に出力し、前記リードトランザクションに対応して前記半導体メモリ装置から出力される前記リードレスポンスを受信するための第2ポート(240)と、
前記リードトランザクションの前記半導体メモリ装置への出力と、前記リードレスポンスの前記検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置(250)と、
を備える、
入出力制御装置。
[形態2]
形態1に記載の入出力制御装置であって、
前記リードトランザクションごとに前記半導体メモリ装置に前記リードトランザクションが出力されてからの経過サイクル数をカウントする経過サイクルカウンタ(231、232、233、234)をさらに備え、
前記バッファ装置は、前記経過サイクル数が予め設定された閾値未満である場合に前記リードレスポンスを保留し、前記経過サイクル数が前記閾値以上となった場合に前記リードレスポンスを、前記第1ポートを介して前記検証回路へ出力する、
入出力制御装置。
[形態3]
形態2に記載の入出力制御装置であって、
前記経過サイクルカウンタは、前記リードトランザクションの最大アウトスタンディング数と同数設けられている、
入出力制御装置。
[形態4]
形態1から形態3のいずれか一項に記載の入出力制御装置であって、
前記半導体メモリ装置へ出力された前記リードトランザクションのデータ量の合計値であるアクセスデータ量をカウントする帯域カウンタ装置(220)を備え、
前記帯域カウンタ装置は、設定された目標帯域を前記アクセスデータ量が超えている場合に前記第2ポートを介した前記リードトランザクションの前記半導体メモリ装置への出力を保留し、前記アクセスデータ量が前記目標帯域以下となった場合に前記リードトランザクションを、前記第2ポートを介して前記半導体メモリ装置へ出力する、
入出力制御装置。
[形態5]
形態4に記載の入出力制御装置であって、
前記帯域カウンタ装置は、予め設定された時間内における前記アクセスデータ量が予め設定された前記目標帯域を超えている場合に前記リードトランザクションの前記半導体メモリ装置への出力を保留する、
入出力制御装置。
[形態6]
形態4に記載の入出力制御装置であって、
前記帯域カウンタ装置の前記目標帯域を生成する目標帯域生成装置(260)をさらに備え、
前記目標帯域生成装置は、
前記半導体メモリ装置が備える複数のバンクと同数設けられ、互いに異なる前記バンクを対象として、各前記バンクにおいて同じページに対して連続して発行された前記リードトランザクションのデータ量の合計値であるバンクアクセスデータ量をそれぞれカウントする複数のバンクアクセスカウンタ装置(261、262)と、
各前記バンクアクセスカウンタ装置によりカウントされた前記バンクアクセスデータ量の平均値を算出し、算出された前記平均値と前記目標帯域との関係を示す予め設定されたテーブルを利用して前記目標帯域を設定する帯域設定部(263)と、
を備え、
各前記バンクアクセスカウンタ装置は、各前記バンクにおいて、受信した前記リードトランザクションのアクセス対象である今回アクセスページと、前回出力した前記リードトランザクションのアクセス対象である前回アクセスページと、が互いに同じである場合には、前記バンクアクセスデータ量に前記リードトランザクションのデータ量を加算した値を新たな前記アクセスデータ量とし、前記今回アクセスページと前記前回アクセスページとが互いに異なる場合には前記リードトランザクションのデータ量を新たな前記バンクアクセスデータ量とする、
入出力制御装置。
[形態7]
形態6に記載の入出力制御装置であって、
前記テーブルは、前記平均値が大きくなるほど前記目標帯域が大きくなるように設定されている、
入出力制御装置。
100…検証回路、200…入出力制御装置、210…スレーブポート、240…マスタポート、250…バッファ装置、320…半導体メモリ装置
Claims (7)
- 検証回路(100)と半導体メモリ装置(320)との間に接続され、データの入出力を制御する入出力制御装置(200)であって、
前記半導体メモリ装置に対するデータの読み出しを要求するリードトランザクションを前記検証回路から受信し、前記リードトランザクションに対応して前記半導体メモリ装置から受信するリードレスポンスを前記検証回路に出力するための第1ポート(210)と、
前記リードトランザクションを前記半導体メモリ装置に出力し、前記リードトランザクションに対応して前記半導体メモリ装置から出力される前記リードレスポンスを受信するための第2ポート(240)と、
前記リードトランザクションの前記半導体メモリ装置への出力と、前記リードレスポンスの前記検証回路への出力と、のうちの少なくとも一方を遅延させるためのバッファ装置(250)と、
を備える、
入出力制御装置。 - 請求項1に記載の入出力制御装置であって、
前記リードトランザクションごとに前記半導体メモリ装置に前記リードトランザクションが出力されてからの経過サイクル数をカウントする経過サイクルカウンタ(231、232、233、234)をさらに備え、
前記バッファ装置は、前記経過サイクル数が予め設定された閾値未満である場合に前記リードレスポンスを保留し、前記経過サイクル数が前記閾値以上となった場合に前記リードレスポンスを、前記第1ポートを介して前記検証回路へ出力する、
入出力制御装置。 - 請求項2に記載の入出力制御装置であって、
前記経過サイクルカウンタは、前記リードトランザクションの最大アウトスタンディング数と同数設けられている、
入出力制御装置。 - 請求項1から請求項3のいずれか一項に記載の入出力制御装置であって、
前記半導体メモリ装置へ出力された前記リードトランザクションのデータ量の合計値であるアクセスデータ量をカウントする帯域カウンタ装置(220)を備え、
前記帯域カウンタ装置は、設定された目標帯域を前記アクセスデータ量が超えている場合に前記第2ポートを介した前記リードトランザクションの前記半導体メモリ装置への出力を保留し、前記アクセスデータ量が前記目標帯域以下となった場合に前記リードトランザクションを、前記第2ポートを介して前記半導体メモリ装置へ出力する、
入出力制御装置。 - 請求項4に記載の入出力制御装置であって、
前記帯域カウンタ装置は、予め設定された時間内における前記アクセスデータ量が予め設定された前記目標帯域を超えている場合に前記リードトランザクションの前記半導体メモリ装置への出力を保留する、
入出力制御装置。 - 請求項4に記載の入出力制御装置であって、
前記帯域カウンタ装置の前記目標帯域を生成する目標帯域生成装置(260)をさらに備え、
前記目標帯域生成装置は、
前記半導体メモリ装置が備える複数のバンクと同数設けられ、互いに異なる前記バンクを対象として、各前記バンクにおいて同じページに対して連続して発行された前記リードトランザクションのデータ量の合計値であるバンクアクセスデータ量をそれぞれカウントする複数のバンクアクセスカウンタ装置(261、262)と、
各前記バンクアクセスカウンタ装置によりカウントされた前記バンクアクセスデータ量の平均値を算出し、算出された前記平均値と前記目標帯域との関係を示す予め設定されたテーブルを利用して前記目標帯域を設定する帯域設定部(263)と、
を備え、
各前記バンクアクセスカウンタ装置は、各前記バンクにおいて、受信した前記リードトランザクションのアクセス対象である今回アクセスページと、前回出力した前記リードトランザクションのアクセス対象である前回アクセスページと、が互いに同じである場合には、前記バンクアクセスデータ量に前記リードトランザクションのデータ量を加算した値を新たな前記アクセスデータ量とし、前記今回アクセスページと前記前回アクセスページとが互いに異なる場合には前記リードトランザクションのデータ量を新たな前記バンクアクセスデータ量とする、
入出力制御装置。 - 請求項6に記載の入出力制御装置であって、
前記テーブルは、前記平均値が大きくなるほど前記目標帯域が大きくなるように設定されている、
入出力制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022166580A JP2024059122A (ja) | 2022-10-18 | 2022-10-18 | 入出力制御装置 |
US18/475,359 US20240126474A1 (en) | 2022-10-18 | 2023-09-27 | Input output control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022166580A JP2024059122A (ja) | 2022-10-18 | 2022-10-18 | 入出力制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024059122A true JP2024059122A (ja) | 2024-05-01 |
Family
ID=90626235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022166580A Pending JP2024059122A (ja) | 2022-10-18 | 2022-10-18 | 入出力制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240126474A1 (ja) |
JP (1) | JP2024059122A (ja) |
-
2022
- 2022-10-18 JP JP2022166580A patent/JP2024059122A/ja active Pending
-
2023
- 2023-09-27 US US18/475,359 patent/US20240126474A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240126474A1 (en) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Reineke et al. | PRET DRAM controller: Bank privatization for predictability and temporal isolation | |
CN106681661B (zh) | 一种固态硬盘中读写调度方法及装置 | |
Jung et al. | TLM modelling of 3D stacked wide I/O DRAM subsystems: a virtual platform for memory controller design space exploration | |
US11461028B2 (en) | Memory writing operations with consideration for thermal thresholds | |
JP7407167B2 (ja) | メモリの複数のランクを有するシステムのダイナミックランダムアクセスメモリリフレッシュの構成 | |
JP2016514329A (ja) | 可変レイテンシーメモリ動作用装置および方法 | |
CN108897630B (zh) | 一种基于OpenCL的全局内存缓存方法、系统及装置 | |
US10664445B2 (en) | Bloom filter generation method and apparatus | |
JP2016536666A (ja) | 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法 | |
CN112100097B (zh) | 多测试通道优先级自适应仲裁方法和存储器访问控制器 | |
KR20200057311A (ko) | 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치 | |
TW201009575A (en) | Memory access controlling apparatus and control method thereof | |
TW201926055A (zh) | 指令處理方法及使用所述方法的儲存控制器 | |
CN110232029B (zh) | 一种基于索引的fpga中ddr4包缓存的实现方法 | |
JP2024059122A (ja) | 入出力制御装置 | |
CN116737084A (zh) | 一种队列统计方法、装置、电子设备及存储介质 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
US20190324909A1 (en) | Information processing apparatus and information processing method | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
US20120331209A1 (en) | Semiconductor storage system | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
TWI844326B (zh) | 直接記憶體存取電路及其操作方法 | |
JP7491006B2 (ja) | 情報処理装置、及びプログラム | |
JP5907558B2 (ja) | マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム | |
CN115577760B (zh) | 一种数据处理方法、系统及相关设备 |