JP6237945B1 - メモリ制御装置 - Google Patents

メモリ制御装置 Download PDF

Info

Publication number
JP6237945B1
JP6237945B1 JP2017028616A JP2017028616A JP6237945B1 JP 6237945 B1 JP6237945 B1 JP 6237945B1 JP 2017028616 A JP2017028616 A JP 2017028616A JP 2017028616 A JP2017028616 A JP 2017028616A JP 6237945 B1 JP6237945 B1 JP 6237945B1
Authority
JP
Japan
Prior art keywords
bank
request
bank group
memory
banks
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
JP2017028616A
Other languages
English (en)
Other versions
JP2018136592A (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 Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2017028616A priority Critical patent/JP6237945B1/ja
Application granted granted Critical
Publication of JP6237945B1 publication Critical patent/JP6237945B1/ja
Priority to US15/868,071 priority patent/US11169937B2/en
Publication of JP2018136592A publication Critical patent/JP2018136592A/ja
Active 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/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
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Abstract

【課題】リクエスト発行待ちが発生して性能低下が生じる、ということを解決すること。【解決手段】本発明であるメモリ制御装置は、複数のバンクからなるバンクグループを複数有するメモリを制御し、バンクに対するメモリリクエストを記憶するリクエストバッファと、バンクのビジー状態を管理するバンクビジー管理部と、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部と、を備える。【選択図】図8

Description

本発明は、メモリ制御装置にかかり、特に、複数のバンクを有するメモリを制御するメモリ制御装置に関する。
複数のバンクを有するメモリであるSDRAM(Synchronous Dynamic Random Access Memory)のバンクアクセス制御方法が、特許文献1に開示されている。特許文献1に記載されているバンクアクセス制御方式を、図1のブロック図を参照して説明する。
図1に示すバンクアクセス制御方式では、まず、受信したメモリリクエストについてバンクチェック回路104でバンクチェックを行う。リクエストのバンクがバンクビジーカウンタ103で調べてバンクビジーでない場合は、そのまま受信したリクエストをメモリ制御部に出力する。リクエストのバンクがバンクビジーの場合には、リクエストをリクエストバッファ101に格納する。リクエストバッファ101内のリクエストのうち、バンクビジーでなくなったリクエストが複数あった場合には、リクエスト選択回路105にてあらかじめ定められた優先順位に従って、リクエストセレクタ102を介して、順次、メモリ制御部に送られる。
また、特許文献2には、複数のバンクをグループに分けて制御するメモリアクセス制御方式が開示されている。このメモリアクセス制御方式では、複数のバンクを2つのメモリモジュールに分けており、各バンクのビジー状態を調べ、一方のモジュール内のバンクのビジー状態が解除されると、他方のモジュール内のバンクへのリクエストを追い越して、一方のモジュール内のバンクにリクエストを発行している。
特許第3265226号公報 特開2006−99295号公報
ここで、近年では、DDR4規格のSDRAMが開発されている。このDDR4では、同じIO(Input Output)バッファを共有する複数のバンクであるバンクグループという機能が導入されている。このため、異なるバンクグループに属するバンク間にはリクエストを連続して発行することができるが、同じバンクグループに属するバンク間は、同じIOバッファを使用することから、リクエストを連続して発行することができない。
すると、上記DDR4を採用したメモリでは、上記特許文献1に開示の方式を用いたとしても、バンクグループが考慮されていないため、同一バンクグループに所属するバンクのリクエストを連続して発行してしまい、メモリ制御部で発行待ちが発生して性能低下が起こる、という問題が生じる。
さらに、上記特許文献2の方式では、主記憶を2つのグループに分けているだけであり、一方のグループに空きがある場合にかかるグループ内のバンクにリクエストを発行しているだけである。このため、バンクグループ間の状況を考慮してリクエストを発行しているわけではなく、単に各バンクの空き状況に応じてリクエストを発行しているだけである。その結果、上記DDR4を採用したメモリでは、同一バンクグループ内のバンクのリクエストを連続して発行することとなってしまい、リクエスト発行待ちが発生して性能低下が起こる、という問題が生じる。
このため、本発明の目的は、上述した課題である、リクエスト発行待ちが発生して性能低下が生じる、ということを解決することができるメモリ制御装置を提供することにある。
本発明の一形態であるメモリ制御装置は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えた、
という構成をとる。
また、本発明の一形態であるプログラムは、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させる、
という構成をとる。
また、本発明の一形態であるメモリ制御方法は、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
という構成をとる。
本発明は、以上のように構成されることにより、リクエスト発行待ちを抑制して性能低下を抑制することができる。
背景技術におけるバンクアクセス制御方式の構成を示す図である。 本発明の第1の実施形態におけるメモリ制御装置の構成を示す図である。 図2に開示したバンクグループチェック・バンクチェック回路によるバンクグループチェック機能部分の構成を示す図である。 図2に開示したバンクグループチェック・バンクチェック回路によるバンクチェック機能部分の構成を示す図である。 図2に開示したリクエスト選択回路の構成を示す図である。 本発明のバンクグループチェック機能の効果を示すために、単純なラウンドロビンによりバンクグループの選択をした場合におけるメモリリクエスト発行の様子を示す図である。 本発明のバンクグループチェック機能の効果を示すために、本発明によりバンクグループの選択をした場合におけるメモリリクエスト発行の様子を示す図である。 本発明の実施形態2におけるメモリ制御装置の構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図2乃至図7を参照して説明する。図2乃至図5は、実施形態1におけるメモリ制御装置の構成を説明するための図である。図6乃至図7は、メモリ制御装置の動作を説明するための図である。
[構成]
本発明におけるメモリ制御装置は、複数のバンクを有し、当該複数のバンクでバンクグループが形成されており、さらに、バンクグループを複数有するメモリ(主記憶)へのアクセスを制御する装置である。
図2に示すように、本実施形態におけるメモリ制御装置は、リクエストバッファ1と、リクエストセレクタ2と、バンクビジーカウンタ3と、バンクグループチェック・バンクチェック回路4と、リクエスト選択回路5と、を備えている。なお、これらの構成は、電子回路で構成されていてもよく、あるいは、演算装置にプログラムが組み込まれることで構成されてもよい。
上記リクエストバッファ1は、バンクに対するメモリリクエスト(以下、単に「リクエスト」とも言う)を記憶する。具体的に、リクエストバッファ1は、「ワード00」〜「ワードn」までの(n+1)個のメモリリクエストを、受信した順番で格納する。なお、メモリリクエストは、リクエストの宛先となるバンクを指定している。
例えば、受信リクエストも含めて(n+2)個のリクエストのうち、条件がそろって発行できるリクエストが複数個ある場合には、ワード00、ワード01、ワード02、・・・、ワードn、受信リクエスト、の優先順位で、最も優先順位が高いリクエストが発行される。このとき、リクエスト選択回路5からのリクエストセレクト6に従って、リクエストセレクタ2でリクエストが選択され、メモリ制御部に発行される。ここで、「ワードi」のリクエストが選択されて発行されたとすると、「ワードi+1」〜「ワードn」が、「ワードi」〜「ワードn-1」にシフトされ、受信リクエストが「ワードn」に格納される。
そして、メモリ制御部に発行されたリクエストの宛先となるバンクを示すバンクアドレス7が、バンクビジーカウンタ3に伝えられ、該当バンクのカウンタが初期化される。バンクビジーカウンタ3は、バンクのビジー状態を管理するバンクビジー管理部として機能する。具体的に、バンクビジーカウンタ3には、バンクごとにカウンタが備えられており、毎クロック、カウンタが減算される。カウンタの値が非ゼロの場合には、そのバンクのバンクビジー情報8が「1」となり、バンクビジーであることを示す。カウンタの値がゼロの場合には、そのバンクのバンクビジー情報8が「0」となり、バンクビジーでないことを示す。
また、全バンクのバンクビジー情報8は、バンクグループチェック・バンクチェック回路4に送られる。バンクグループチェック・バンクチェック回路4には、リクエストバッファ1から各リクエストの宛先であるバンクアドレス9も入力される。バンクグループチェック・バンクチェック回路4では、どのリクエストが次に発行できるかを示すバンクパス情報10を作成する。バンクパス情報10は、リクエスト選択回路5に入力され、次に発行するリクエストが決定され、リクエストセレクト信号6が作られる。
次に、図3を参照して、バンクグループチェック・バンクチェック回路4が有するバンクグループチェック機能(バンクグループチェック部、バンクグループ決定部)に関する構成を説明する。ここでは、全バンク数を「16」としてバンク0〜バンク15があり、それぞれ、4バンクずつで各バンクグループを形成していることとする。つまり、バンク0〜バンク3がバンクグループ0、バンク4〜バンク7がバンクグループ1、バンク8〜バンク11がバンクグループ2、バンク12〜バンク15がバンクグループ3、を形成している。なお、バンク数やバンクグループ数は、この例以外でもよい。
図3に示すバンク0ビジー〜バンク15ビジー信号は、図2のバンクビジーカウンタ3からのバンクビジー情報8により、バンク0〜バンク15がそれぞれバンクビジーであるかどうかを示す信号である。バンクiビジー信号が「1」の場合は「バンクビジー状態」を示し、「0」の場合は「バンクビジーでない」ことを示す。ワード00バンクアドレス〜ワードnバンクアドレス信号及び受信リクエストバンクアドレス信号は、図3のリクエストバッファ1のワード00〜ワードn内のリクエスト及び受信リクエストの宛先を示すバンクアドレス(バンク0〜バンク15)である。
例えば、図3に示すバンクグループチェック機能では、バンク0ビジーについて、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク0へのリクエストがあり、かつ、バンク0がバンクビジーでない場合には「1」の信号が、それ以外は「0」の信号が作られ、加算器11に入力される。バンク1ビジー〜バンク15ビジーについても、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク1〜15へのリクエストがあり、バンク1〜15がバンクビジーでない場合には「1」の信号が、それ以外は「0」の信号が作られ、加算器11に入力される。
加算器11は、各バンクグループに対応して設けられており、上述したように入力された信号から、対応するバンクグループのビジーではないバンクの情報を合計する。従って、加算器11の出力は「0〜4」の値となる。このように、加算器11(バンクグループチェック部)は、対応するバンクグループに属するバンクのうち、ビジーではないバンクの数を管理する機能を有する。
4個のバンクグループの各加算器11からの出力は、バンクグループ選択回路12に入力される。また、バンクグループ選択回路12には、直前に選択したリクエストの宛先となるバンクが属するバンクグループの番号も入力される。そして、バンクグループ選択回路12(バンクグループ決定部)は、直前に選択したバンクが属するバンクグループ以外のバンクグループのうち、リクエストのあるバンクビジーでないバンク数(加算器の出力)が最も大きいバンクグループを選択し、選択したバンクグループをバンクグループマスクとして出力する。
このように、バンクグループ選択回路12は、バンクグループのうち、ビジーではないバンクの数に基づいて、リクエストを発行するバンクグループを決定している。このとき、バンクグループ選択回路12は、必ずしもビジーではないバンクの数が最も多いバンクグループを決定することに限定されない。例えば、ビジーではないバンクが少なくとも1つあるバンクグループを決定してもよい。
また、上述した図3に示すバンクグループチェック機能では、ワードnバンクアドレス及び受信リクエストバンクアドレスから、各バンクのビジー状態を検出しており、つまり、メモリリクエストの宛先となっているバンクのビジー状態を検出している。但し、バンクグループチェック機能は、必ずしもメモリリクエストの宛先となっているバンクのビジー状態を検出することに限定されない。これにより、バンクグループ選択回路12は、各バンクグループのバンクのビジーではない数に応じて、バンクグループを決定してもよい。
次に、図4を参照して、バンクグループチェック・バンクチェック回路4のバンクチェック機能に関する構成を説明する。バンクチェック機能の回路は、バンク0ビジー〜バンク15ビジーと、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレス(バンクアドレス9)と、バンクグループマスクとから、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスを生成する。
具体的に、バンクチェック機能の回路は、バンクグループマスクで示された上記バンクグループ選択回路12で選択されたバンクグループの中のバンクのうち、バンクビジーではないバンクのワード00バンクパス〜ワードnバンクパス、受信リクエストバンクパスを「1」とし、それ以外は「0」とする。つまり、バンクチェック機能の回路は、選択されたバンクグループ内のバンクのうち、バンクビジーではないバンクのパスを「1」に設定して、バンクパス情報10としてリクエスト選択回路5に出力する。
次に、図5を参照して、リクエスト選択回路5について説明する。リクエスト選択回路5は、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスのうち、上述したバンクチェック機能の回路で「1」の値が設定されたバンクに対するリクエスト(ワード00〜ワードn及び受信リクエスト)の中で、最も優先度の高いリクエストを選択する。そして、その出力であるワード00セレクト〜ワードnセレクト及び受信リクエストセレクトは、選択されたものだけが「1」となり、それ以外は「0」となる。つまり、「1」となった選択されたリクエストが発行されるリクエストとなり、この信号が図2に示すリクエストセレクト6として出力される。
そして、リクエストセレクタ2は、リクエストセレクト6で示されたリクエストをメモリ制御部に出力する。これにより、上記バンクグループ選択回路12で選択されたバンクグループ内のビジーではないバンクに、リクエストが発行されることとなる。
このように、上述したバンクチェック機能とリクエスト選択回路5、さらに、リクエストセレクタ2とは、リクエストバッファ1の中から、決定したバンクグループ内のバンクにリクエストを発行するリクエスト発行部として機能する。なお、上述したリクエスト選択回路5では、最も優先度の高いリクエストを選択しているが、例えば、リクエストバッファ内の格納された順番が古いリクエストほど、優先度が高く設定されていてもよい。つまり、リクエスト選択回路5は、リクエストバッファ内のリクエストのうち、当該リクエストバッファに最も古く格納されたリクエストを、発行するリクエストとして選択してもよい。但し、優先度の設定方法は、リクエストバッファに格納された順番で設定することに限定されず、いかなる方法で優先度を設定してもよい。
[動作]
次に、上述した構成のメモリ制御装置の動作を、図6及び図7を参照して説明する。なお、以下では、簡単な例をあげて説明するが、比較例を例示して、バンクグループ間でバンクビジーでないバンク数に偏りがある場合でも、本発明の方法では、同一バンクグループ間の待ちがなくなることを示す。
図6は、比較例として、単純なラウンドロビンでバンクグループを選択した場合を示している。また、図7は、本発明の方法でバンクグループの選択を行った場合を示している。そして、時刻T0の初期状態は、図6、図7とも同じである。バンクグループ0は、バンク0だけがバンクビジーではなく、バンクグループ1は、バンク4、バンク6、バンク7の3つのバンクがバンクビジーではない。また、バンクグループ2は、バンク9だけがバンクビジーではなく、バンクグループ3は、バンク14だけがバンクビジーではない。
以下、説明を簡単にするため、新たにリクエストも受信しないし、新たにバンクビジーでなくなるバンクもないとする。
まず、図6の比較例の動作を説明する。時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。つまり、バンクグループ1からリクエストを選択しないため、図6では、時刻T0におけるバンクグループ1のセルが斜線となっている。かかる状況で、時刻T0では、バンクグループ2のバンク9のリクエストが選択される。
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。ラウンドロビンでバンクグループを選択するとしているので、バンクグループ3のバンク14のリクエストが選択される。
続いて、時刻T2では、バンクグループ3以外のバンクグループからリクエストを選択する。ここでは、バンクグループ0のバンク0のリクエストが選択される。
続いて、時刻T3では、バンクグループ0以外のバンクグループからリクエストを選択する。ここでは、バンクグループ1のバンク4のリクエストが選択される。
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
続いて、時刻T5では、バンクグループ1のバンク6のリクエストが選択される。
続いて、時刻T6では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
続いて、時刻T7では、バンクグループ1のバンク7のリクエストが選択される。
以上のように、図6の例では、時刻T4とT6でリクエストが選択できない、という事態が生じることとなる。
次に、本発明の方法による動作を、図7を参照して説明する。まず、時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。このとき、上述したバンクグループチェック機能回路により、バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーではないバンク数は、(1、1、1)で同数であるが、このうちバンクグループ2が選ばれ、バンク9のリクエストが選択される。
なお、上記のように、バンクビジーではないバンク数が同数の場合には、例えば、直前のリクエストが発行されたバンクグループの次のバンクグループを選択してもよく、あるいは、他の方法で他のバンクグループを選択してもよい。
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ3のバンクビジーでないバンク数は、(1、3、1)となり、そのうち最大のバンク数(3)であるバンクグループ1が選ばれ、バンク4のリクエストが選択される。
続いて、時刻T2では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、1)となり、このうちバンクグループ3が選ばれ、バンク14のリクエストが選択される。
続いて、時刻T3では、バンクグループ3以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ2のバンクビジーでないバンク数は、(1、2、0)となり、そのうち最大のバンク数(2)であるバンクグループ1が選ばれ、バンク6のリクエストが選択される。
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、0)となり、そのうち最大のバンク数(1)のバンクグループ0が選択され、バンク0のリクエストが選択される。
続いて、時刻T5では、バンクグループ0以外のバンクグループからリクエストを選択する。バンクグループ1、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、0)なので、そのうち最大のバンク数(1)のバンクグループ1が選ばれ、バンク7のリクエストが選択される。
このように、図7で説明した本発明の方法では、図6に示した選択可能なバンクグループの中から単純にラウンドロビンでバンクグループを選択する方法に比べて、2クロック早くリクエストを処理できる。つまり、図6の例では同一バンクグループのリクエストが連続するために2回分の待ちが発生するが、図7の例ではかかる2回分の待ちをなくすことができ、性能を向上を図ることができる。
以上のように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対してリクエストを発行している。特に、直前に発行したリクエストが属するバンクグループとは異なるバンクグループであったり、バンクビジーではないバンク数が最も多いバンクグループを選択している。このため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、また、各バンクグループ間に偏りがあっても異なるバンクグループのリクエストを選択できるようになり、性能低下を抑制することができる。
<実施形態2>
次に、本発明の第2の実施形態を、図8を参照して説明する。図8は、実施形態2におけるメモリ制御装置の構成を示すブロック図である。なお、本実施形態におけるメモリ制御装置は、実施形態1で説明したメモリ制御装置の構成の概略を示している。
図8に示すように、本実施形態おけるメモリ制御装置50は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置50であって、
バンクに対するメモリリクエストを記憶するリクエストバッファ51と、
バンクのビジー状態を管理するバンクビジー管理部52と、
バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部53と、
バンクグループ毎のビジーではない前記バンクの数に基づいて、メモリリクエストを発行するバンクグループを決定するバンクグループ決定部54と、
リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部55と、
を備える。
なお、上述したバンクビジー管理部52、バンクグループチェック部53、バンクグループ決定部54、リクエスト発行部55は、メモリ制御装置50に装備された演算装置がプログラムを実行することで、構築されてもよい。
上記構成のメモリ制御装置50は、まず、バンクのビジー状態を管理すると共に、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理する。そして、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行するバンクグループを決定し、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行する。
このように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対して、次にリクエストを発行している。このため、リクエストを発行するバンクグループが随時選択されるため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、性能低下を抑制することができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリ制御須知、プログラム、メモリ制御方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えたメモリ制御装置。
(付記2)
付記1に記載のメモリ制御装置であって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
(付記3)
付記1又は2に記載のメモリ制御装置であって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
(付記4)
付記1乃至3のいずれかに記載のメモリ制御装置であって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
(付記5)
付記1乃至4のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御装置。
(付記6)
付記1乃至5のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御装置。
(付記7)
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させるためのプログラム。
(付記7.1)
付記7に記載のプログラムであって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
(付記7.2)
付記7又は7.1に記載のプログラムであって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
(付記7.3)
付記7乃至7.2のいずれかに記載のプログラムであって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
(付記7.4)
付記7乃至7.3のいずれかに記載のプログラムであって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
プログラム。
(付記7.5)
付記7乃至7.4のいずれかに記載のプログラムであって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
プログラム。
(付記8)
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
メモリ制御方法。
(付記9)
付記8に記載のメモリ制御方法であって、
ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
(付記10)
付記8又は9に記載のメモリ制御方法であって、
直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
(付記11)
付記8乃至10のいずれかに記載のメモリ制御方法であって、
前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
(付記12)
付記8乃至11のいずれかに記載のメモリ制御方法であって、
決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御方法。
(付記13)
付記8乃至12のいずれかに記載のメモリ制御方法であって、
前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御方法。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
1 リクエストバッファ
2 リクエストセレクタ
3 バンクビジーカウンタ
4 バンクグループチェック・バンクチェック回路
5 リクエスト選択回路
11 加算器
12 バンクグループ選択回路
50 メモリ制御装置
51 リクエストバッファ
52 バンクビジー管理部
53 バンクグループチェック部
54 バンクグループ決定部
55 リクエスト発行部

Claims (10)

  1. 複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
    前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
    前記バンクのビジー状態を管理するバンクビジー管理部と、
    前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
    前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
    前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
    を備えたメモリ制御装置。
  2. 請求項1に記載のメモリ制御装置であって、
    前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
    メモリ制御装置。
  3. 請求項1又は2に記載のメモリ制御装置であって、
    前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
    メモリ制御装置。
  4. 請求項1乃至3のいずれかに記載のメモリ制御装置であって、
    前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
    メモリ制御装置。
  5. 請求項1乃至4のいずれかに記載のメモリ制御装置であって、
    前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
    メモリ制御装置。
  6. 請求項1乃至5のいずれかに記載のメモリ制御装置であって、
    前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
    メモリ制御装置。
  7. 複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
    前記バンクのビジー状態を管理するバンクビジー管理部と、
    前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
    前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
    前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
    を実現させるためのプログラム。
  8. 複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
    前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
    前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
    前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
    メモリ制御方法。
  9. 請求項8に記載のメモリ制御方法であって、
    ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
    メモリ制御方法。
  10. 請求項8又は9に記載のメモリ制御方法であって、
    直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
    メモリ制御方法。
JP2017028616A 2017-02-20 2017-02-20 メモリ制御装置 Active JP6237945B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017028616A JP6237945B1 (ja) 2017-02-20 2017-02-20 メモリ制御装置
US15/868,071 US11169937B2 (en) 2017-02-20 2018-01-11 Memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017028616A JP6237945B1 (ja) 2017-02-20 2017-02-20 メモリ制御装置

Publications (2)

Publication Number Publication Date
JP6237945B1 true JP6237945B1 (ja) 2017-11-29
JP2018136592A JP2018136592A (ja) 2018-08-30

Family

ID=60477100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017028616A Active JP6237945B1 (ja) 2017-02-20 2017-02-20 メモリ制御装置

Country Status (2)

Country Link
US (1) US11169937B2 (ja)
JP (1) JP6237945B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022103643A (ja) * 2020-12-28 2022-07-08 ソニーセミコンダクタソリューションズ株式会社 メモリ制御装置及びメモリ制御方法
JP2022168913A (ja) 2021-04-27 2022-11-09 富士通株式会社 制御装置及び制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916469A (ja) * 1995-04-27 1997-01-17 Hitachi Ltd 同期式dramからなるメモリに適したアドレス割り付けとアドレスロック機能を有するプロセッサシステム
JP2001154913A (ja) * 1999-11-30 2001-06-08 Hitachi Ltd 主記憶制御装置
JP2006099295A (ja) * 2004-09-29 2006-04-13 Nec Computertechno Ltd メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459868B2 (ja) * 1997-05-16 2003-10-27 日本電気株式会社 メモリ障害時におけるグループ入れ替え方式
JP3265226B2 (ja) * 1997-05-28 2002-03-11 甲府日本電気株式会社 バンクアクセス制御方式
US7516264B2 (en) * 2005-02-09 2009-04-07 International Business Machines Corporation Programmable bank/timer address folding in memory devices
US10152434B2 (en) * 2016-12-20 2018-12-11 Advanced Micro Devices, Inc. Efficient arbitration for memory accesses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916469A (ja) * 1995-04-27 1997-01-17 Hitachi Ltd 同期式dramからなるメモリに適したアドレス割り付けとアドレスロック機能を有するプロセッサシステム
JP2001154913A (ja) * 1999-11-30 2001-06-08 Hitachi Ltd 主記憶制御装置
JP2006099295A (ja) * 2004-09-29 2006-04-13 Nec Computertechno Ltd メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法

Also Published As

Publication number Publication date
US20180239720A1 (en) 2018-08-23
JP2018136592A (ja) 2018-08-30
US11169937B2 (en) 2021-11-09

Similar Documents

Publication Publication Date Title
JP6146128B2 (ja) データ処理装置
US10678437B2 (en) Method and device for managing input/output (I/O) of storage device
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
KR20130087735A (ko) 인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩
JP6237945B1 (ja) メモリ制御装置
KR20100050819A (ko) 반도체 메모리 시스템의 동작 방법
KR101519825B1 (ko) 데이터 처리 장치 및 그 제어 방법
CN111913807B (zh) 一种基于多个存储区域的事件处理方法、系统及装置
JP2011108202A (ja) コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP4934857B2 (ja) メモリアクセス制御装置、コンピュータ、メモリアクセス制御方法およびメモリアクセス制御プログラム
US20190171488A1 (en) Data token management in distributed arbitration systems
JP6004463B2 (ja) 記憶装置及びその制御方法
JP4882116B2 (ja) バッファ制御装置およびバッファ制御方法
US20110167184A1 (en) Access control apparatus, data processing apparatus, access control method, and program
JP2006235761A (ja) 分散共有メモリ装置およびメモリアクセス方法
JPH10333979A (ja) バンクアクセス制御方式
JP3698902B2 (ja) メモリアクセス装置及びそのアクセス方法
JP2018081642A (ja) メモリコントローラおよび方法
US20220334758A1 (en) Control circuit, information processing system, and control method
CN115344515B (zh) 实现访问控制的方法、片上计算系统及芯片
JP2009193260A (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
JP2006331008A (ja) メモリインタフェース
JP6213169B2 (ja) ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置
JP2012053501A (ja) 情報処理システム、情報処理方法、及び、プログラム

Legal Events

Date Code Title Description
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: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237945

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150