JP6477228B2 - 情報処理装置、メモリ制御装置、および情報処理装置の制御方法 - Google Patents

情報処理装置、メモリ制御装置、および情報処理装置の制御方法 Download PDF

Info

Publication number
JP6477228B2
JP6477228B2 JP2015101267A JP2015101267A JP6477228B2 JP 6477228 B2 JP6477228 B2 JP 6477228B2 JP 2015101267 A JP2015101267 A JP 2015101267A JP 2015101267 A JP2015101267 A JP 2015101267A JP 6477228 B2 JP6477228 B2 JP 6477228B2
Authority
JP
Japan
Prior art keywords
request
transmitted
memory
storage device
unselected
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.)
Expired - Fee Related
Application number
JP2015101267A
Other languages
English (en)
Other versions
JP2016218635A (ja
Inventor
明夫 常世田
明夫 常世田
正寿 相原
正寿 相原
浩一郎 ▲高▼山
浩一郎 ▲高▼山
広治 細江
広治 細江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015101267A priority Critical patent/JP6477228B2/ja
Priority to US15/095,203 priority patent/US10078602B2/en
Publication of JP2016218635A publication Critical patent/JP2016218635A/ja
Application granted granted Critical
Publication of JP6477228B2 publication Critical patent/JP6477228B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理装置、メモリ制御装置、および情報処理装置の制御方法に関する。
近年、High Performance Computer(HPC)、サーバ、パーソナルコンピュータ(PC)、または携帯電話等の情報処理装置が備えるプロセッサの製造プロセスの微細化が進んでいる。それにより、プロセッサ当たりの計算速度は増々向上している。これに伴い、主記憶の容量や帯域も向上していくことが望まれている。最近では、従来採用されてきたDual Inline Memory Module(DIMM)に替わるメモリ素子として、Hybrid Memory Cube(HMC)に代表される、メモリコントローラを内蔵したDynamic Random Access Memory(DRAM)が開発されている。
HMCは、DRAMの積層技術により、実装密度を向上することで大容量化を達成している。また、HMCは、複数のメモリコントローラを内蔵し、Central Processing Unit(CPU)とメモリ間のインターフェースに高速シリアル通信を採用することで、広帯域のデータ転送を実現している。
HMCは、ホストと接続する複数(例えば、2つ、4つ、または8つ等)のインターフェース(I/F)と、それぞれのI/Fにアドレスによって割り当てられた複数のクアドラントとを有する。クアドラントは、複数のVaultを含み、各VaultはVaultコントローラと複数のメモリバンクとを含む。具体的には、Vaultとは、シリコン貫通電極(TSV:Through Silicon Via)によって接続された複数の積層メモリである複数のメモリバンクと、当該複数のメモリバンクを制御するメモリコントローラであるVaultコントローラとを含む単位メモリである。
HMCのI/Fは、ホストから受信したパケットを格納する入力バッファを備える。入力バッファからVaultコントローラへパケットが送信されると、送信された分のパケット数のTokenパケットがホストに転送される。ホストは、Tokenレジスタを有し、Tokenレジスタのレジスタ値以内のパケット数のパケットをHMCに送信することができる。ホストは、送信済みのパケット数をTokenレジスタの値から減算し、HMCから転送さられてきたTokenパケットが示すパケット数をTokenレジスタの値に加算する。
プロセッサがアクセスするデータのアドレスが非連続である非連続アクセスの履歴情報を格納し、過去にアクセスしたデータのアドレスの履歴情報に基づいて非連続アクセスを予測する。そして、非連続アクセスの予測に基づいて、読み出しアドレスを出力して、メモリから読み出しアドレスに対応するデータを読み出す技術が知られている(例えば、特許文献1参照)。
また、メモリリード要求を発したI/O装置が連続メモリ領域をアクセスする傾向にある場合にのみ、メモリリード要求で指定されたメモリ領域に加え、当該指定されたメモリ領域に連続するメモリ領域のデータを先行して読み出す技術が知られている(例えば、特許文献2参照)。
特開2006−215799号公報 特開平9−198300号公報
ホストからHMCへのリクエストを含むパケットの送信時に、HMCのI/F全てがホストと接続されている場合、リクエストのアドレスに基づいて、アクセスするメモリバンクを含むクアドラントに直接属するI/Fにパケットを振り分ける(送信する)ことがある。一方、複数のI/Fのうち一部のI/Fのみがホストと接続している場合、パケットは接続されているI/Fに送信され、HMC内部のスイッチを介して指定されたアドレスのメモリバンクにアクセスする。
アクセス対象のメモリのアドレスが複数のVaultに万遍なく分散している場合は入力バッファがいっぱいになることはない。しかし、同一クアドラント、同一Vault、または同一Vault内の同一メモリバンクへのアクセスが重ねて発生すると処理スピードが低下し、入力バッファの空き容量が減少し、ホストはこれ以上パケットを送る事ができず、スループットが低下する。
本発明の課題は、スループットの低下を防止することである。
実施の形態の情報処理装置は、記憶装置、演算処理装置、およびメモリ制御装置を備える。
前記記憶装置は、データを記憶するメモリのグループであるメモリグループを複数有する
前記演算処理装置は、前記記憶装置に対するリクエストを発行する。
前記メモリ制御装置は、バッファと、履歴レジスタと、選択部と、を備える。前記バッファは、前記演算処理装置が発行した未選択のリクエストである未選択リクエストを格納する。前記履歴レジスタは、前記記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する。前記選択部は、前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストとして、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエスト前記バッファが格納する未選択リクエストから選択するとともに、選択された前記対象リクエストを前記記憶装置に送信する。
実施の形態の情報処理装置によれば、スループットの低下を防止することができる。
実施の形態に係る情報処理装置の構成図である。 実施の形態に係るHMCの構成図である。 実施の形態に係るリクエスト発行履歴レジスタの構成図である。 実施の形態に係るリクエストセレクタの構成図である。 実施の形態に係るリクエスト選択処理のフローチャートである。 実施の形態に係るメモリコントローラのタイミングチャートである。
以下、図面を参照しながら実施の形態について説明する。
図1は、実施の形態に係る情報処理装置の構成図である。
情報処理装置101は、プロセッサ201、メモリコントローラ301、およびHMC401を備える。情報処理装置101は、例えば、サーバやPC等のコンピュータである。
プロセッサ201は、HMC401に対するリクエストを発行する。プロセッサ201は、例えば、Central Processing Unit(CPU)である。
メモリコントローラ301は、プロセッサ201からリクエストを受信し、受信したリクエストを所定のルールに基づいて順番に、HMC401に送信する。
メモリコントローラ301は、FIFO311、リクエストコントローラ321、リクエストセレクタ331、リクエスト発行履歴レジスタ341、TOKENレジスタ351、Link MASTER361、Link Slave371を備える。
FIFO311は、プロセッサから発行されたリクエストが発行順に並んだリクエストキューを格納する。FIFO311は、例えば、シフトレジスタである。FIFO311は、フリップフロップ312−m(m=0〜7)を備える。FIFO311は、バッファの一例である。
フリップフロップ312−mは直列に接続されている。フリップフロップ312−mはリクエストを格納する。フリップフロップ312−2〜312−7は、それぞれ格納しているリクエストを後段のフリップフロップ312−0〜312−6に出力する。また、フリップフロップ312−mは、格納しているリクエストをリクエストセレクタ331に出力する。リクエストセレクタ331に出力される各リクエストには、リクエストキューのうちの何番目のリクエストであるかを示す情報(キュー番号)、すなわちどのフリップフロップ312−mに格納されているリクエストであるかを示す情報が含まれる。明細書及び図面において、フリップフロップ312−mに格納されているリクエストをそれぞれQmと表記する場合がある。
リクエストコントローラ321は、フリップフロップ312−mに格納されているリクエストへの読み書きやリクエストのシフトを制御する。リクエストコントローラ321は、リクエストセレクタ331から発行リクエストを受信し、発行リクエストに含まれているリクエストキューのうちのどのリクエストが選択されたかを示す情報(キュー番号)、すなわち選択されたリクエストを格納するフリップフロップ312−mを示す情報に基づいて、FIFO311に格納されているリクエストをシフトする。詳細には、リクエストコントローラ321は、選択されたリクエストより古いリクエストをホールドし、選択されたリクエストより新しいリクエストを1段シフトする。
リクエストセレクタ331は、リクエストキューに含まれる複数のリクエストから発行するリクエストを選択し、Link Master361に送信する。
リクエスト発行履歴レジスタ341は、リクエストセレクタ331が選択(出力)した新しい順に所定数のリクエストを格納する。詳細には、リクエスト発行履歴レジスタ341は、リクエストセレクタ331が選択した新しい順に所定数のリクエストのアドレスを格納する。
TOKENレジスタ351は、メモリコントローラ301が送信可能なパケット数を格納する。メモリコントローラ301が送信可能なパケット数は、言い換えれば、HMC401が受け付け可能なパケット数である。TOKENレジスタ351は、送信したパケットのパケット数をLink MASTER361から受信し、送信可能なパケット数から送信したパケット数を減算する。TOKENレジスタ351は、Link Slave371からTokenパケットを受信し、送信可能なパケット数にTokenパケットが示すパケット数を加算する。
Link MASTER361は、リクエストセレクタ331から受信したリクエストにヘッダやCRCを付加してパケットを生成し、HMC401に送信する。また、受信したリクエストに関連するパケットを生成し、HMC401に送信する。例えば、リクエストがデータの読み出しを要求するリードコマンドの場合、リードコマンドを含むパケットが生成及び送信される。例えば、リクエストがデータの書き込みを要求するライトコマンドであり且つ書き込みデータのサイズが大きい場合、書き込みデータは分割され、ライトコマンドと分割された書き込みデータの一部を含むパケット、および残りの分割された書き込みデータを含む複数のパケットが生成及び送信される。また、Link MASTER361は、送信したパケットの数(パケット数)をTOKENレジスタ351に通知する。
Link Slave371は、HMC401からTokenパケットを受信し、TokenパケットをTokenレジスタ351に送信する。また、Link Slave371は、HMC401から読み出したデータを含む応答を受信し、プロセッサ201に送信する。
HMC401は、データを記憶する記憶装置である。HMC401は、受信したリクエストに応じてデータの読み書きを行う。
図2は、実施の形態に係るHMCの構成図である。
HMC401は、リンクインタフェースコントローラ411−i(i=1〜4)、スイッチ421、およびクアドラント(Quadrant)431−iを備える。
リンクインタフェースコントローラ411−iは、スイッチ421と接続し、クアドラント431−iと通信する場合、スイッチ421を介して通信する。
リンクインタフェースコントローラ411−iは、Link Slave412−i、入力バッファ413−i、およびLink Master414−iを備える。
実施の形態では、複数のリンクインタフェースコントローラ411−iのうち、リンクインタフェースコントローラ411−1のみが使用され、リンクインタフェースコントローラ411−1はメモリコントローラ301と接続して通信する。尚、メモリコントローラ301と接続して通信するリンクインタフェースコントローラ411−iの数は、これに限られず、任意でよい。
スイッチ421は、リンクインタフェースコントローラ411とクアドラント431とを接続する。スイッチ421を介することにより、任意のリンクインタフェースコントローラ411−iとクアドラント431−i間で通信を行うことができる。スイッチ421は、例えば、クロスバスイッチである。
クアドラント431−iは、Vault432−i−j(j=1〜4)を備える。クアドラント431−iは、リンクインタフェースコントローラ411−iに関連付けられたVault432−i−jの集合(グループ)である。実施の形態では、リンクインタフェースコントローラ411−1〜411−4それぞれに対し、関連付けられたクアドラント431−1〜431−4がある。リンクインタフェースコントローラ411−iに関連付けられたクアドラント431−iは、リンクインタフェースコントローラ411−iに直接属するクアドラント431−iと呼ぶ場合がある。リンクインタフェースコントローラ411−iは、直接属するクアドラント431−iに対し、直接には属しないクアドラント431−iよりも高速にアクセスできる。クアドラント431−iは、メモリグループの一例である。以下、Vault432−1−1〜433−4−4をそれぞれVault0〜15と表記する場合がある。
Vault432−i−jは、Vaultコントローラ433−i−jおよびメモリバンクグループ434−i−jを備える。Vault432−i−jには、それぞれアドレス(Vaultアドレス)が割り当てられる。Vault432−i−jは、メモリ部の一例である。
Vaultコントローラ433−i−jは、メモリバンクグループ434−i−jを制御する。詳細には、Vaultコントローラ433−i−jは、メモリバンクグループ434−i−jに含まれるメモリバンクに対する読み書き等の制御を行う。
メモリバンクグループ434−i−jは、メモリバンクの集合である。メモリバンクグループ434−i−jは、16個のメモリバンク0〜15を有する。
図3は、実施の形態に係るリクエスト発行履歴レジスタの構成図である。
リクエスト発行履歴レジスタ341は、FIFO342、345、Vaultアドレスカウンタ344、およびBankアドレスカウンタ347を備える。
FIFO342は、リクエストセレクタ331が出力したリクエストに含まれるVault432−i−jのアドレス(以下、発行リクエストVaultアドレス)を新しい順に格納する。FIFO342は、フリップフロップ343−n(n=0〜14)を備える。すなわち、FIFO342は、15個の発行リクエストVaultアドレスを格納する。
フリップフロップ343−14には、リクエストセレクタ331が出力したリクエストが入力され、入力されたリクエストに含まれる発行リクエストVaultアドレスを格納する。リクエストセレクタ331からリクエストが出力されると、フリップフロップ343−1〜343−14は、それぞれ格納する発行リクエストVaultアドレスを後段のフリップフロップ343−0〜343−13に出力する。フリップフロップ343−0〜343−13は、前段のフリップフロップ343−1〜343−14から入力された発行リクエストVaultアドレスを格納する。このように、新しいリクエストがリクエストセレクタ331から発行されると、FIFO342内のデータ(発行リクエストVaultアドレス)はシフトし、FIFO342は、新しい順に15個の発行リクエストVaultアドレスを格納する。尚、フリップフロップ343−nの数は15に限られず、任意の数でよい。フリップフロップ343−nは、それぞれ格納する発行リクエストVaultアドレスをVaultアドレスカウンタ344に送信する。
Vaultアドレスカウンタ344は、フリップフロップ343−nから入力された発行リクエストVaultアドレスを受信し、発行リクエストVaultアドレスが示すVault0〜15それぞれのアドレスの数をカウントする。Vaultアドレスカウンタ344は、カウントしたVault0〜15それぞれのアドレスの数をValult0〜15のリクエスト数としてリクエストセレクタ331に出力する。
FIFO345は、リクエストセレクタ331が発行したリクエストに含まれるメモリバンクのアドレス(以下、発行リクエストBankアドレス)を新しい順に格納する。FIFO345は、フリップフロップ346−n(n=0〜14)を備える。すなわち、FIFO342は、15個の発行リクエストBankアドレスを格納する。
フリップフロップ346−14には、リクエストセレクタ331が発行したリクエストが入力され、入力されたリクエストに含まれる発行リクエストBankアドレスを格納する。リクエストセレクタ331からリクエストが発行されると、フリップフロップ346−1〜346−14は、それぞれ格納する発行リクエストBankアドレスを後段のフリップフロップ346−0〜346−13に出力する。フリップフロップ346−0〜346−13は、前段のフリップフロップ343−1〜343−14から入力された発行リクエストBankアドレスを格納する。このように、新しいリクエストがリクエストセレクタ331から発行されると、FIFO345内のデータ(発行リクエストBankアドレス)はシフトし、FIFO345は、新しい順に15個の発行リクエストBankアドレスを格納する。尚、フリップフロップ346−nの数は15に限られず、任意の数でよい。フリップフロップ346−nは、それぞれ格納する発行リクエストBankアドレスをBankアドレスカウンタ347に送信する。
Bankアドレスカウンタ347は、フリップフロップ346−nから入力された発行リクエストBankアドレスを受信し、発行リクエストBankアドレスが示すメモリバンク0〜15それぞれのアドレスの数をカウントする。Bankアドレスカウンタ347は、カウントしたBank0〜15それぞれのアドレスの数をBank0〜15のリクエスト数としてリクエストセレクタ331に出力する。
図4は、実施の形態に係るリクエストセレクタの構成図である。
リクエストセレクタ331は、Tokenスレッシュホルドレジスタ332、比較回路333、リクエスト選択回路334、およびセレクタ335、336を備える。
Tokenスレッシュホルドレジスタ332は、閾値を格納する。尚、閾値は予め適当な値が設定されている。
比較回路333は、Tokenレジスタ351が格納する値(すなわち、メモリコントローラ301が送信可能なパケット数)とTokenスレッシュホルドレジスタ322が格納する閾値とを比較し、比較結果をセレクタ336に送信する。例えば、Tokenレジスタ351が格納する値が閾値以上の場合、比較結果はL(=0)、Tokenレジスタ351が格納する値が閾値未満の場合、比較結果はH(=1)とする。
リクエスト選択回路334は、各リクエストに含まれるVaultアドレスとBankアドレス、およびリクエスト履歴発行レジスタ341から入力されるValut0〜15のリクエスト数とBank0〜15のリクエスト数から、各リクエストQ0〜Q7の重みを算出する。実施の形態において、重みは9ビットで表現される。
各リクエストの重みは以下のように算出される。
リクエスト選択回路334は、リクエストが送信されるクアドラント431−iと同じクアドラント431−iに対して送信されたリクエストがリクエスト発行履歴レジスタ341に格納されたリクエストにあるか否か判定する。尚、リクエストがどのクアドラント431−iに送信されるかは、Vaultアドレスから判定できる。また、あるクアドラント431−iに対して送信されたリクエストがリクエスト発行履歴レジスタ341に格納されたリクエストにあるか否かは、Vault0〜15のリクエスト数から判定できる。例えば、Vault0のリクエスト数が1以上の場合、クアドラント431−1に対して送信されたリクエストがリクエスト発行履歴レジスタ341に格納されたリクエストにあると判定される。リクエストが送信されるクアドラント431−iと同じクアドラント431−iに対して送信されたリクエストがリクエスト発行履歴レジスタ341に格納されたリクエストにあった場合、リクエスト選択回路334は、重みの最上位ビットに1をセットする。無かった場合、リクエスト選択回路334は、重みの最上位ビットに0をセットする。重みの最上位ビットはリクエストが送信されるクアドラント431−iにコマンド発行履歴レジスタに格納されたリクエストが送信されていたか否かを示す。尚、他の実施の形態として、重みを12ビットにして、重みの上から1〜4ビット目(下から9〜12ビット目)に、リクエストが送信されるクアドラントにコマンド発行履歴レジスタに格納されたリクエストが送信された回数をセットしても良い。
リクエスト選択回路334は、リクエストのVaultアドレスと同じVaultのリクエスト数を重みの下から5〜8ビット目にセットする。重みの下から5〜8ビット目は、リクエストが送信されるVault432−i−jに対して、コマンド発行履歴レジスタに格納されたリクエストが送信された回数を示す。
リクエスト選択回路334は、リクエストのBankアドレスと同じBankのリクエスト数を重みの下から1〜4ビット目にセットする。
リクエスト選択回路334は、重みが1番小さいリクエストを選択する。これより、コマンド発行履歴レジスタに格納されたリクエストが送信された回数が最も少ない若しくは送信されていないクアドラントに送信するリクエストが選択される。リクエストが送信された回数が最も少ない若しくは送信されていないクアドラントに送信するリクエストが複数ある場合には、その中で、コマンド発行履歴レジスタに格納されたリクエストが送信された回数が最も少ないVault432−i−jに送信するリクエストが選択される。コマンド発行履歴レジスタに格納されたリクエストが送信された回数が最も少ないVault432−i−jに送信するリクエストが複数ある場合には、その中で、コマンド発行履歴レジスタに格納されたリクエストが送信された回数が最も少ないメモリバンクに送信するリクエストが選択される。
リクエスト選択回路334は、選択したリクエストを示す選択信号をセレクタ335に送信する。
また、上述の実施の形態では、重みにそれぞれ4ビットで示されるVaultのリクエスト数とBankのリクエスト数を用いていたが、それぞれ1ビットで示される同じVaultの有無および同じメモリバンクの有無を用いてもよい。それにより、回路規模を少なくすることが可能である。
セレクタ335には、リクエストQ0〜Q7と選択信号が入力される。セレクタ335は、入力された選択信号が示すリクエストを選択し、セレクタ336に出力する。
セレクタ336は、比較結果に基づいて、リクエストQ0またはセレクタ335から出力されたリクエストのいずれかを選択し、出力する。セレクタ336は、比較結果がLの場合(すなわち、Tokenレジスタ351が格納する値が閾値以上の場合)、リクエストQ0を選択し、出力する。セレクタ336は、比較結果がHの場合(すなわち、Tokenレジスタ351が格納する値が閾値未満の場合)、セレクタ335から出力されたリクエストを選択し、出力する。出力されたリクエストは、発行リクエストとも呼ぶ。
図5は、実施の形態に係るリクエスト選択処理のフローチャートである。
ステップS501において、比較回路333は、Tokenレジスタ351が格納する値(すなわち、メモリコントローラ301が送信可能なパケット数)とTokenスレッシュホルドレジスタ322が格納する閾値とを比較し、比較結果をセレクタ336に送信する。Tokenレジスタ351が格納する値が閾値以上の場合、制御はステップS502に進み、Tokenレジスタ351が格納する値が閾値未満の場合、制御はステップS503に進む。
ステップS502において、セレクタ336は、リクエストキューの先頭のリクエストQ0を選択し、Link Master361に出力する。
ステップS503において、リクエスト選択回路334は、リクエストQ0〜Q7のそれぞれの重みをリクエストQ0〜Q7のアドレスとVault0〜fのリクエスト履歴数とBank0〜fのリクエスト履歴数から算出する。
ステップS504において、リクエスト選択回路334は、一番小さい重みに対応するリクエストを示す選択信号をセレクタ335に出力する。セレクタ335は、リクエストQ0〜Q7のうち、選択信号が示すリクエストを選択し、セレクタ336に出力する。
ステップS505において、セレクタ336は、セレクタ335から入力されたリクエストを選択し、Link Master361に出力する。Link Master361は、入力されたリクエストを含むパケットを生成し、HMC401に送信する。
図6は、実施の形態に係るメモリコントローラのタイミングチャートである。
サイクルC1において、FIFO311に格納されたリクエストキューのうちQ0〜Q5はそれぞれリクエストR0〜R5である。プロセッサ201からはリクエストR6が発行される。Tokenレジスタ351が格納する値が閾値以上であり、Tokenレジスタ351が格納する値が閾値以上であるか否かを示す比較結果はアサートされておらず、先頭のリクエストR0が選択され、出力される。
サイクルC2において、プロセッサ201からはリクエストR7が発行される。FIFO311に格納されたリクエストR0〜R5は1段シフトされる。それにより、リクエストR0は削除され、Q0〜Q5はそれぞれリクエストR1〜R4となる。また、リクエストR6は、リクエストキューの最後尾に格納されるので、Q5がリクエストR6となる。比較結果はアサートされておらず、先頭のリクエストR1が選択され、出力される。
サイクルC3において、FIFO311に格納されたリクエストR1〜R6は1段シフトされる。それにより、リクエストR1は削除され、Q0〜Q5はそれぞれリクエストR2〜R6となる。また、リクエストR7は、リクエストキューの最後尾に格納されるので、Q5がリクエストR7となる。Tokenレジスタ351が格納する値が閾値未満となり、比較結果はアサートされる。リクエスト選択回路334により、Q3=リクエストR5が選択され、出力される。
サイクルC4において、FIFO311に格納されたリクエストR2〜R7のうち、サイクルC3で選択されたリクエストR5より前の(古い)リクエストR2〜R4はホールドされ、リクエストR5より後の(新しい)リクエストR6、R7は1段シフトされる。それにより、リクエストR1は削除され、Q0〜Q4はそれぞれリクエストR2〜R4、R6、R7となる。比較結果はアサートされている。リクエスト選択回路334により、Q3=リクエストR6が選択され、出力される。
サイクルC5において、プロセッサ201からはリクエストR8が発行される。FIFO311に格納されたリクエストR2〜R4、R6、R7のうち、サイクルC4で選択されたリクエストR6より前のリクエストR2〜R4はホールドされ、リクエストR6より後のリクエストR7は1段シフトされる。それにより、リクエストR6は削除され、Q0〜Q3はそれぞれリクエストR2〜R4、R7となる。Tokenレジスタ351が格納する値が閾値以上となり、比較結果はネゲートされ、先頭のリクエストR2が選択され、出力される。
サイクルC6において、FIFO311に格納されたリクエストR2〜R4、R7は1段シフトされる。それにより、リクエストR2は削除され、Q0〜Q2はそれぞれリクエストR3、R4、R7となる。また、リクエストR8は、リクエストキューの最後尾に格納されるので、Q3がリクエストR8となる。比較結果はアサートされておらず、先頭のリクエストR3が選択され、出力される。
実施の形態の情報処理装置によれば、過去のリクエストのアドレス履歴に基づいて、送信された回数が少ないクアドラント、Vault、またはメモリバンクに対するリクエストを選択して送信することで、同一のクアドラント、同一のVault、または同一のメモリバンクへのアクセスが分散し、スループットの低下を防止することができる。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
データを記憶する記憶装置と、
前記記憶装置に対するリクエストを発行する演算処理装置と、
前記演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと、前記記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタと、前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストを前記バッファが格納する未選択リクエストから選択するとともに、選択された前記対象リクエストを前記記憶装置に送信する選択部とを備えたメモリ制御装置とを有する情報処理装置。
(付記2)
前記記憶装置は、前記メモリ制御装置と接続する複数のインタフェースコントローラ、および前記複数のインタフェースコントローラそれぞれに割り当てられた複数のメモリグループを備え、
前記メモリ制御装置は、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエストを前記未選択リクエストから選択することを特徴とする付記1記載の情報処理装置。
(付記3)
複数のメモリグループのそれぞれは、複数のメモリ部を備え、
前記複数のメモリ部のそれぞれは、制御部と前記制御部により制御される複数のメモリバンクを備え、
前記メモリ制御装置は、前記送信済みリクエストが送信された回数が最も少ないメモリ部に送信するリクエストを前記未選択リクエストから選択する付記2記載の情報処理装置。
(付記4)
前記メモリ制御装置は、前記送信済みリクエストが送信された回数が最も少ないメモリバンクに送信するリクエストを前記未選択リクエストから選択して送信する付記3記載の情報処理装置。
(付記5)
前記バッファは、前記未選択リクエストを前記演算処理装置から発行された順番に格納し、選択された前記対象リクエストより古いリクエストはホールドし、選択された前記対象リクエストより新しいリクエストをシフトすることを特徴とする付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと、
記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタと、
前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストを前記バッファが格納する未選択リクエストから選択するとともに、選択された前記対象リクエストを記憶装置に送信する選択部と
を備えるメモリ制御装置。
(付記7)
前記記憶装置は、前記メモリ制御装置と接続する複数のインタフェースコントローラ、および前記複数のインタフェースコントローラそれぞれに割り当てられた複数のメモリグループを備え、
前記選択部は、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエストを前記未選択リクエストから選択することを特徴とする付記6記載のメモリ制御装置。
(付記8)
前記複数のメモリグループのそれぞれは、複数のメモリ部を備え、
前記複数のメモリ部のそれぞれは、制御部と前記制御部により制御される複数のメモリバンクを備え、
前記選択部は、前記送信済みリクエストが送信された回数が最も少ないメモリ部に送信するリクエストを前記未選択リクエストから選択する付記7記載のメモリ制御装置。
(付記9)
前記選択部は、前記送信済みリクエストが送信された回数が最も少ないメモリバンクに送信するリクエストを前記未選択リクエストから選択して送信する付記8記載のメモリ制御装置。
(付記10)
前記バッファは、前記未選択リクエストを前記演算処理装置から発行された順番に格納し、選択された前記対象リクエストより古いリクエストはホールドし、選択された前記対象リクエストより新しいリクエストをシフトすることを特徴とする付記6乃至9のいずれか1項に記載のメモリ制御装置。
(付記11)
データを記憶する記憶装置と、前記記憶装置に対するリクエストを発行する演算処理装置と、前記演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと前記記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタとを備えたメモリ制御装置と、を有する情報処理装置の制御方法において、
前記メモリ制御装置が、前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストを前記バッファが格納するリクエストから選択し、
前記メモリ制御装置が、選択された前記対象リクエストを前記記憶装置に送信する情報処理装置の制御方法。
(付記12)
前記記憶装置は、前記メモリ制御装置と接続する複数のインタフェースコントローラ、および前記複数のインタフェースコントローラそれぞれに割り当てられた複数のメモリグループを備え、
前記選択する処理は、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエストを前記未選択リクエストから選択することを特徴とする付記11記載の制御方法。
(付記13)
前記複数のメモリグループのそれぞれは、複数のメモリ部を備え、
前記複数のメモリ部のそれぞれは、制御部と前記制御部により制御される複数のメモリバンクを備え、
前記選択する処理は、前記送信済みリクエストが送信された回数が最も少ないメモリ部に送信するリクエストを前記未選択リクエストから選択する付記12記載の制御方法。
(付記14)
前記選択する処理は、前記送信済みリクエストが送信された回数が最も少ないメモリバンクに送信するリクエストを前記未選択リクエストから選択して送信する付記13記載の制御方法。
(付記15)
前記バッファは、前記未選択リクエストを前記演算処理装置から発行された順番に格納し、
選択された前記対象リクエストより古いリクエストはホールドし、選択された前記対象リクエストより新しいリクエストをシフトする処理をさらに備えることを特徴とする付記11乃至14のいずれか1項に記載の制御方法。
101 情報処理装置
201 プロセッサ
301 メモリコントローラ
311 FIFO
321 リクエストコントローラ
331 リクエストセレクタ
332 Tokenスレッシュホルドレジスタ
333 比較回路
334 リクエスト選択回路
335、336 セレクタ
341 リクエスト発行履歴レジスタ
342 FIFO
344 Vaultアドレスカウンタ
345 FIFO
347 Bankアドレスカウンタ
351 TOKENレジスタ
361 Link MASTER
371 Link Slave
401 HMC
411 リンクインタフェースコントローラ
412 Link Slave
413 入力バッファ
414 Link Master
421 スイッチ
431 クアドラント
432 Vault
433 Vaultコントローラ
434 メモリバンクグループ

Claims (7)

  1. データを記憶するメモリのグループであるメモリグループを複数有する記憶装置と、
    前記記憶装置に対するリクエストを発行する演算処理装置と、
    前記演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと、前記記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタと、前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストとして、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエスト前記バッファが格納する未選択リクエストから選択するとともに、選択された前記対象リクエストを前記記憶装置に送信する選択部とを備えたメモリ制御装置とを有する情報処理装置。
  2. 前記記憶装置は、前記複数のメモリグループにそれぞれ割り当てられており前記メモリ制御装置と接続する複数のインタフェースコントローラを備えることを特徴とする請求項1記載の情報処理装置。
  3. 前記複数のメモリグループのそれぞれは、複数のメモリ部を備え、
    前記複数のメモリ部のそれぞれは、制御部と前記制御部により制御される複数のメモリバンクを備え、
    前記メモリ制御装置は、前記送信済みリクエストが送信された回数が最も少ないメモリ部に送信するリクエストを前記未選択リクエストから選択する請求項2記載の情報処理装置。
  4. 前記メモリ制御装置は、前記送信済みリクエストが送信された回数が最も少ないメモリバンクに送信するリクエストを前記未選択リクエストから選択して送信する請求項3記載の情報処理装置。
  5. 前記バッファは、前記未選択リクエストを前記演算処理装置から発行された順番に格納し、選択された前記対象リクエストより古いリクエストはホールドし、選択された前記対象リクエストより新しいリクエストをシフトすることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと、
    データを記憶するメモリのグループであるメモリグループを複数有する記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタと、
    前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストとして、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエスト前記バッファが格納する未選択リクエストから選択するとともに、選択された前記対象リクエストを記憶装置に送信する選択部と
    を備えるメモリ制御装置。
  7. データを記憶するメモリのグループであるメモリグループを複数有する記憶装置と、前記記憶装置に対するリクエストを発行する演算処理装置と、前記演算処理装置が発行した未選択のリクエストである未選択リクエストを格納するバッファと前記記憶装置に送信されたリクエストである送信済みリクエストのアドレスを保持する履歴レジスタとを備えたメモリ制御装置と、を有する情報処理装置の制御方法において、
    前記メモリ制御装置が、前記履歴レジスタに保持された送信済みリクエストのアドレスに基づいて、前記記憶装置に送信する対象リクエストとして、前記送信済みリクエストが送信された回数が最も少ないメモリグループに送信するリクエスト前記バッファが格納する未選択リクエストから選択し、
    前記メモリ制御装置が、選択された前記対象リクエストを前記記憶装置に送信する情報処理装置の制御方法。
JP2015101267A 2015-05-18 2015-05-18 情報処理装置、メモリ制御装置、および情報処理装置の制御方法 Expired - Fee Related JP6477228B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015101267A JP6477228B2 (ja) 2015-05-18 2015-05-18 情報処理装置、メモリ制御装置、および情報処理装置の制御方法
US15/095,203 US10078602B2 (en) 2015-05-18 2016-04-11 Information processing apparatus, memory controller, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015101267A JP6477228B2 (ja) 2015-05-18 2015-05-18 情報処理装置、メモリ制御装置、および情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016218635A JP2016218635A (ja) 2016-12-22
JP6477228B2 true JP6477228B2 (ja) 2019-03-06

Family

ID=57324785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015101267A Expired - Fee Related JP6477228B2 (ja) 2015-05-18 2015-05-18 情報処理装置、メモリ制御装置、および情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US10078602B2 (ja)
JP (1) JP6477228B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157023B2 (en) * 2016-02-25 2018-12-18 SK Hynix Inc. Memory controller and request scheduling method using request queues and first and second tokens
US10162781B2 (en) * 2016-06-01 2018-12-25 Micron Technology, Inc. Logic component switch
CN110890120B (zh) * 2019-10-21 2021-08-31 中国科学院计算技术研究所 基于阻变存储器的通用区块链应用处理加速方法及系统
JP7476676B2 (ja) 2020-06-04 2024-05-01 富士通株式会社 演算処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198300A (ja) 1996-01-16 1997-07-31 Hitachi Ltd メモリアクセス制御方法
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US6836831B2 (en) * 2002-08-08 2004-12-28 International Business Machines Corporation Independent sequencers in a DRAM control structure
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
JP2006215799A (ja) 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ
US7522468B2 (en) * 2006-06-08 2009-04-21 Unity Semiconductor Corporation Serial memory interface
US7660952B2 (en) * 2007-03-01 2010-02-09 International Business Machines Corporation Data bus bandwidth scheduling in an FBDIMM memory system operating in variable latency mode
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7978721B2 (en) * 2008-07-02 2011-07-12 Micron Technology Inc. Multi-serial interface stacked-die memory architecture
US9075746B2 (en) * 2011-12-23 2015-07-07 Intel Corporation Utility and lifetime based cache replacement policy
JP2014154119A (ja) * 2013-02-14 2014-08-25 Ricoh Co Ltd メモリ制御装置及び半導体記憶装置

Also Published As

Publication number Publication date
JP2016218635A (ja) 2016-12-22
US20160342541A1 (en) 2016-11-24
US10078602B2 (en) 2018-09-18

Similar Documents

Publication Publication Date Title
US10642612B2 (en) Memory device performing parallel arithmetic processing and memory module including the same
CN110175140B (zh) 融合式存储器件及其操作方法
US7984246B1 (en) Multicore memory management system
JP6477228B2 (ja) 情報処理装置、メモリ制御装置、および情報処理装置の制御方法
EP1754229A2 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
US10152434B2 (en) Efficient arbitration for memory accesses
JP2021506033A (ja) キャッシュ制御を考慮したメモリコントローラ
KR20100085564A (ko) 데이터 처리 시스템과 데이터 처리 방법
US11994996B2 (en) Transmission of address translation type packets
US20230094634A1 (en) Memory system and data processing system including the same
CN115361336B (zh) 具有缓存的路由器、路由交换网络系统、芯片及路由方法
CN113168378A (zh) 用于存储数据的区域的缓存
JP6331944B2 (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
US20170024146A1 (en) Memory controller, information processing device, and control method
JP2011013835A (ja) メモリシステム、メモリアクセス方法、及びプログラム
US10936534B2 (en) Converged memory device and method thereof
US20230195368A1 (en) Write Request Buffer
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
KR20210103836A (ko) 데이터 처리 장치 및 그 동작 방법
EP3244582B1 (en) Switch and data accessing method thereof
US11734203B2 (en) Response-based interconnect control
TW202020674A (zh) 數據處理系統
US10216454B1 (en) Method and apparatus of performing a memory operation in a hierarchical memory assembly
KR20190056626A (ko) 통합 메모리 디바이스 및 그의 동작 방법
US11928039B1 (en) Data-transfer test mode

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6477228

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees