JP2006215799A - メモリコントローラ - Google Patents

メモリコントローラ Download PDF

Info

Publication number
JP2006215799A
JP2006215799A JP2005027668A JP2005027668A JP2006215799A JP 2006215799 A JP2006215799 A JP 2006215799A JP 2005027668 A JP2005027668 A JP 2005027668A JP 2005027668 A JP2005027668 A JP 2005027668A JP 2006215799 A JP2006215799 A JP 2006215799A
Authority
JP
Japan
Prior art keywords
address
data
memory
circuit
processor
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
JP2005027668A
Other languages
English (en)
Inventor
Hiroyuki Takano
裕之 高野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005027668A priority Critical patent/JP2006215799A/ja
Priority to US11/282,656 priority patent/US20060184752A1/en
Publication of JP2006215799A publication Critical patent/JP2006215799A/ja
Pending legal-status Critical Current

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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】 プロセッサがメモリに格納されたデータを取得するときの遅延を低減し、且つ面積及び消費電力の増大を抑制したメモリコントローラを提供する。
【解決手段】 プロセッサ100からのアクセスに基づき、メモリ200の動作を制御するメモリコントローラ10であって、プロセッサ100がアクセスするデータのアドレスが非連続である非連続アクセスの履歴情報を格納する履歴格納回路32と、履歴情報に基づき、非連続アクセスを予測する非連続アクセス予測回路31と、非連続アクセスの予測に基づいて、メモリ200から読み出すデータの読み出しAWアドレスA9を出力するアドレス出力回路40と、読み出しAWアドレスA9に基づきメモリ200から読み出されたデータD9を格納するデータ格納回路51とを備える。
【選択図】 図1

Description

本発明は、メモリの動作を制御するメモリコントローラに関する。
メモリコントローラによりメモリの動作を制御して、メモリに格納されたデータにプロセッサがアクセスするときのスループットを小さくすることができる。ここで「スループット」とは、プロセッサがアクセス要求をしてから、プロセッサがデータを取得するまでの遅延である。したがって、スループットは、プロセッサがアクセス要求してから、メモリが動作をするまでのシステムのクロック数(レイテンシ)に依存する。以下において、メモリの読み出し動作に必要なレイテンシを「読み出しレイテンシ」という。
スループットを小さくするために、例えば以下のような方法がある。メモリの読み出しレイテンシが4であり、且つプロセッサとメモリ間のデータ転送を制御するメモリコントローラとメモリ間のデータバスのデータ幅が4データを転送できる幅であるとする。以下において、データバスのデータ幅に応じて一度にデータバスが転送できるデータに対応するアドレスを、「アドレス幅」という。つまり、データバスのデータ幅が4データである場合は、アドレス幅は4である。又、データバスのデータ幅に対応して、メモリコントローラはメモリから読み出したデータを、4データ格納できるとする。プロセッサがメモリコントローラに格納されたデータを読み出している間に、メモリコントローラは、次にプロセッサがアクセスすると予測される4データをメモリから読み出して格納する。ここで、メモリコントローラがメモリから読み出すデータは、その時点でプロセッサがメモリコントローラから読み出しているデータとアドレスが連続するデータである。したがって、スループットを1にするためには、以下の条件を満足する必要がある。
(1)プロセッサは、メモリコントローラに格納されたアドレスが連続する4データをすべて読み出す。
(2)プロセッサが次にアクセスするデータは、直前にプロセッサがメモリコントローラから読み出したデータとアドレスが連続する4データである。
しかし、例えばプロセッサがメモリコントローラに格納されたデータを読み出している途中で、プロセッサが非連続なアドレスのデータにアクセス(以下において、「非連続アクセス」という。)する場合がある。非連続アクセスの場合は、メモリコントローラに格納されているデータは役に立たない。そのため、アクセスされた時点から4レイテンシを要してメモリからデータを読み出す必要がある。したがって、スループットは増大する。
スループットを小さくする別の方法として、プロセッサとメモリの間にキャッシュメモリを設ける方法がある。しかし、消費電力や面積の増大等の問題が発生する。
一方、プロセッサがすべてのクロックにおいて命令を発行しないと、実行時間に無駄が生じる。プロセッサが命令を発行する頻度を示す指標に「インストラクションズ・パー・サイクル(IPC)」がある。分岐命令があると、非連続アクセスになる場合が多い。その結果、IPCが低下する。対策として、プロセッサが次にアクセスするアドレスを予測した情報を格納するメモリ等をプロセッサ内に設ける方法がある(例えば、特許文献1参照。)。しかし、アドレスを予測する精度を高めるためには、プロセッサ内に大きなメモリを設ける必要がある。そのため、プロセッサの消費電力や面積が増大する。
特開平11−232171号公報
本発明は、プロセッサがメモリに格納されたデータを取得するときの遅延を低減し、且つ面積及び消費電力の増大を抑制したメモリコントローラを提供する。
本発明の特徴は、プロセッサからのアクセスに基づき、メモリの動作を制御するメモリコントローラであって、(イ)プロセッサがアクセスするデータのアドレスが非連続である非連続アクセスの履歴情報を格納する履歴格納回路と、(ロ)履歴情報に基づき、非連続アクセスを予測する非連続アクセス予測回路と、(ハ)非連続アクセスの予測に基づいて、メモリから読み出すデータの読み出しアドレスを出力するアドレス出力回路と、(ニ)読み出しアドレスに基づきメモリから読み出されたデータを格納するデータ格納回路とを備えるメモリコントローラであることを要旨とする。
本発明によれば、プロセッサがメモリに格納されたデータを取得するときの遅延を低減し、且つ面積及び消費電力の増大を抑制したメモリコントローラを提供することができる。
次に、図面を参照して、本発明の第1又は第2の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第1又は第2の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
(第1の実施の形態)
本発明の第1の実施の形態に係るメモリコントローラは、図1に示すように、プロセッサ100からのアクセスに基づき、メモリ200の動作を制御するメモリコントローラ10であって、プロセッサ100がアクセスするデータのアドレスが非連続である非連続アクセスの履歴情報を格納する履歴格納回路32と、履歴情報に基づき、非連続アクセスを予測する非連続アクセス予測回路31と、非連続アクセスの予測に基づいて、メモリ200から読み出すデータの読み出しAWアドレスA9を出力するアドレス出力回路40と、読み出しAWアドレスA9に基づきメモリ200から読み出されたデータD9を格納するデータ格納回路51とを備える。
図1に示すように、非連続アクセス予測回路31、履歴格納回路32及び非連続アクセスの履歴情報を作成する非連続アクセス情報生成回路33は、非連続アドレス出力回路30に含まれる。又、メモリコントローラ10は、プロセッサ100から出力されたアクセスアドレスA1が入力される連続アドレス生成回路20を備える。更に、メモリコントローラ10は、データ格納回路51及びデータ格納回路51に格納されたデータを選択するデータ選択回路52を含むデータ出力回路50を備える。又、アドレス出力回路40は、比較回路41及びアドレス選択回路42を備える。
メモリコントローラ10は、バス110を介してプロセッサ100に接続される。又、メモリコントローラ10にメモリ200が接続される。メモリ200の読み出しレイテンシはnとする(n:2以上の整数)。
連続アドレス生成回路20に、非連続アドレス出力回路30、アドレス出力回路40及びバス110が接続する。アドレス出力回路40に、非連続アドレス出力回路30及びメモリ200が接続する。更に、データ出力回路50に、非連続アドレス出力回路30、メモリ200及びバス110が接続する。
メモリ200から読み出されたデータD9は、データバス210を介してデータ格納回路51に転送される。データ格納回路51は、データバス210のデータ幅に相当する数のデータを格納する。例えば、データバス210のデータ幅が4データの場合には、データ格納回路51は4データを格納する。したがって、データバス210のアドレス幅Wは4である。データバス210のデータ幅は、メモリ200の読み出しレイテンシn以上に設定される。そのため、例えばメモリ200の読み出しレイテンシn=4の場合は、データ格納回路51に格納されるデータが4データ以上に設定される。つまり、データD9は、4データを含む。
連続アドレス生成回路20は、プロセッサ100から入力されたアクセスアドレスA1に基づき、プロセッサ100からアクセスされると予測されるアドレスを作成する。「アクセスアドレス」は、プロセッサ100がアクセスしているデータのアドレスである。連続アドレス生成回路20は、データ格納回路51に格納されたデータとアドレスが連続するデータにプロセッサ100がアクセスすると仮定する。そして、その仮定に基づいて、連続アドレス生成回路20はプロセッサ100がアクセスするアドレスを予測する。
プロセッサ100がデータ格納回路51に格納されたデータを順次読み出す間に、メモリ200の読み出し動作が行われる。データ格納回路51に格納されるデータの数はメモリ200の読み出しレイテンシの値以上である。そのため、プロセッサ100がデータ格納回路51に格納されたデータをすべて読み出した後に、メモリ200から読み出されたデータD9がデータ格納回路51に格納される。アドレス幅Wが4である場合は、データ格納回路51に格納されるデータは4データである。したがって、連続アドレス生成回路20は、アクセスアドレスA1に基づき4アクセス後にプロセッサ100が要求するデータのアドレスを予測して、アドレスを作成する。つまり、連続アドレス生成回路20が作成するアドレスは、アクセスアドレスA1にアドレス幅Wを加えて作成される。
例えばデータ格納回路51に格納されるデータが4データである場合は、プロセッサ100がアクセスアドレスを4回出力する毎に、4データ分のアドレスが作成される。つまり、連続アドレス生成回路20は、アドレス幅W単位で数えたアドレス毎に、データ格納回路51に格納される4データ分のアドレスを作成する。以下において、アドレス幅W単位で数えたアドレスを、「AWアドレス」という。例えばアドレス幅Wが4である場合、AWアドレスは、アドレスm、アドレスm+4、・・・・・、となる。(m:0以上の整数。)。ここで、説明をわかりやすくするため、メモリ200に格納されているデータのアドレスは、1ずつ増えていくとする。メモリ200からデータを読み出すために予測されるAWアドレスを、以下において「格納AWアドレスA2」という。
格納AWアドレスA2をメモリ200に出力することにより、アドレス幅Wに相当する数のデータがメモリ200から読み出される。アドレス幅Wが4である場合は、格納AWアドレスA2=mをメモリ200に出力することにより、アドレスm、アドレスm+1、アドレスm+2及びアドレスm+3のデータがメモリ200から読み出される。
又、連続アドレス生成回路20は、プロセッサから出力されたアクセスアドレスA1に基づき、AWアドレスである要求AWアドレスA10を生成する。例えば、アドレス幅Wが4である場合は、アクセスアドレスA1がm、m+1、m+2又はm+3であるとき、要求AWアドレスA10=mである。格納AWアドレスA2は、要求AWアドレスA10にアドレスが連続するAWアドレスである。つまり、格納AWアドレスA2=要求AWアドレスA10+Wである。連続アドレス生成回路20は、要求AWアドレスA10及び格納AWアドレスA2をアドレス出力回路40に出力する。又、連続アドレス生成回路20は、要求AWアドレスA10を非連続アクセス予測回路31に出力する。
データ出力回路50は、プロセッサ100から入力されたアクセスアドレスA1に基づき、プロセッサ100が要求するデータをプロセッサ100に出力する。具体的には、データ選択回路52が、データ格納回路51に格納されたデータのうちから、アクセスアドレスA1に基づきプロセッサ100が要求するデータD1を選択する。そして、データ選択回路52は、選択されたデータD1をプロセッサ100に出力する。又、データ出力回路50は、非連続アクセス予測回路31に先頭AWアドレスA0を出力する。「先頭AWアドレス」とは、データ格納回路51に格納されている先頭のデータのAWアドレスである。又、データ出力回路50は、スループットを改善するために、メモリ200から読み出されたデータをデータ格納回路51に格納せずに、プロセッサ100に出力してもよい。例えば、不一致信号SMが入力された場合には、メモリ200から読み出されたデータをプロセッサ100に直接出力するようにデータ出力回路50を構成することができる。後述するように、不一致信号SMは、非連続アクセスが発生した場合に比較回路41から出力される。
履歴格納回路32は、履歴情報として複数の非連続アドレス組を格納する。非連続アドレス組は、第1アドレス及び第2アドレスからなる。非連続アドレス組は、不一致信号SMが入力された場合に、非連続アクセス情報生成回路33により作成される。作成される非連続アドレス組の第1アドレスは、不一致信号SMが入力された時点での先頭AWアドレスA0である。一方、作成される非連続アドレス組の第2アドレスは、非連続アクセスが発生したときの要求AWアドレスA10である。作成された非連続アドレス組は、履歴格納回路32に格納される。
又、非連続アクセス予測回路31は、先頭AWアドレスA0と履歴格納回路32に格納されている複数の第1アドレスとを比較する。先頭AWアドレスA0と履歴格納回路32に格納されている複数の第1アドレスのいずれかが一致した場合は、その時点でデータ格納回路51に格納されているデータにおいて、以前に非連続アクセスが発生した場合である。そのため、先頭AWアドレスA0と履歴格納回路32に格納されている複数の第1アドレスのいずれかが一致した場合は、非連続アクセス予測回路31は、予測信号SE及び非連続予測AWアドレスA3をアドレス選択回路42に出力する。非連続予測AWアドレスA3は、第1アドレスが先頭AWアドレスA0と一致する非連続アドレス組の第2アドレスである。
比較回路41に、要求AWアドレスA10と先頭AWアドレスA0が入力される。比較回路41は、要求AWアドレスA10と先頭AWアドレスA0を比較する。そして、比較回路41は、要求AWアドレスA10と格納AWアドレスA0が一致しない場合に、不一致信号SMを非連続アクセス情報生成回路33及びデータ出力回路50に出力する。又、不一致信号SMは、アドレス選択回路42に入力される。
アドレス選択回路42は、予測信号SEの入力の有無及び不一致信号SMの入力の有無等に基づき、以下のようにメモリ200に出力する読み出しAWアドレスA9を選択する。
(1)予測信号SEが入力されず、且つ不一致信号SMが入力されない場合は、プロセッサ100がアクセスしているデータが、データ格納回路51に格納されているデータに含まれている。つまり、非連続アクセスが発生していない。その場合、アドレス選択回路42は、格納AWアドレスA2を、読み出しAWアドレスA9としてメモリ200に出力する。
(2)予測信号SEが入力されず、且つ不一致信号SMが入力された場合は、履歴格納回路32に格納された非連続アドレス組と一致しない非連続アクセスが発生した場合である。その場合、プロセッサ100がアクセスしているデータは、データ格納回路51に格納されていない。そのため、アドレス選択回路42は、要求AWアドレスA10を、読み出しAWアドレスA9としてメモリ200に出力する。そして、読み出しAWアドレスA9に基づき、メモリ200からデータD9が読み出される。データD9が読み出されるまで、プロセッサ100は待ち状態になる。その結果、スループットはメモリ200の読み出しレイテンシnに依存する。不一致信号SMが入力された場合、データ出力回路50は、データD9をデータ格納装置に格納せずに、プロセッサ100に出力することができる。その結果、プロセッサ100の待ち時間を短縮することができる。
(3)非連続アクセス予測回路31から、予測信号SEがアドレス選択回路42に出力された場合は、アドレス選択回路42は、非連続アクセス予測回路31から出力される非連続予測AWアドレスA3を、読み出しAWアドレスA9としてメモリ200に出力する。したがって、次にデータ格納回路51に格納されるデータは、以前に非連続アクセスが発生したときにプロセッサ100がアクセスしたデータを含む。データ格納回路51に格納されたデータのうち、非連続アクセスが発生した時点までにプロセッサ100にアクセスされてないデータは、非連続アクセス後にプロセッサ100が要求するデータではない。そのため、プロセッサ100は、要求するデータがデータ格納回路51にデータが格納されるまで待ち状態になる。しかし、非連続アクセスが発生する前に非連続アクセスが発生することを予測し、非連続予測AWアドレスA3に基づきメモリ200からデータを読み出す動作が開始されている。つまり、以前発生したのと同じ非連続アクセスが発生した場合は、非連続アクセスが発生した時点で、プロセッサ100が要求するデータのメモリ200からの読み出しが開始されている。その結果、非連続アクセスが発生した後にプロセッサ100が要求するデータをメモリ200から読み出す場合よりも早く、プロセッサ100が要求するデータがメモリ200から読み出される。即ち、図1に示すメモリコントローラ10により、スループットが向上する。
以下に、図2〜図4に示すタイミングチャートの例を用いて、図1に示したメモリコントローラ10の動作を説明する。以下の説明において、メモリ200の読み出しレイテンシを4とする。又、メモリ200のアドレスは、1、2、・・・・・であるとする。そして、アドレスmのデータをD(m)として示す。更に、データバス210のデータ幅を4データ分、データ格納回路51に格納されるデータの数を4データとする。
<非連続アクセスが発生しない場合>
図2に示すタイミングチャートは、非連続アクセスが発生しない例である。又、履歴格納回路32には、非連続アドレス組が格納されていないとする。
図2に示すサイクルc1において、アクセスアドレスA1=1がプロセッサ100からメモリコントローラ10に出力される。データ格納回路51にデータD(1)、D(2)、D(3)及びD(4)が格納されている。そのため、サイクルc2において、データ出力回路50からデータD(1)がプロセッサ100に出力される。
又、サイクルc1において、アクセスアドレスA1=1であるため、要求AWアドレスA10=1、格納AWアドレスA2=5である。一方、データ格納回路51に、データD(1)〜D(4)が格納されているため、先頭AWアドレスA0=1である。そのため、不一致信号SMは出力されない。又、履歴格納回路32に非連続アドレス組が格納されていないため、予測信号SEは出力されない。その結果、格納AWアドレスA2が読み出しAWアドレスA9として、メモリ200に出力される。
サイクルc2〜c4では、アクセスアドレスA1=2〜4である。データD(2)〜D(4)はデータ格納回路51に格納されているため、不一致信号SMは出力されない。データD(2)〜D(4)は、サイクルc3〜c5において、それぞれプロセッサ100に出力される。
サイクルc1において読み出しAWアドレスA9がメモリ200に出力されたため、サイクルc5において、データD9がメモリ200から読み出される。読み出しAWアドレスA9=5であるため、データD9は、データD(5)〜D(8)である。そして、データD(5)〜D(8)がデータ格納回路51に格納される。サイクルc5におけるアクセスアドレスA1=5であるため、サイクルc6においてデータD(5)がデータ格納回路51からプロセッサ100に出力される。又、読み出しAWアドレスA9として、要求AWアドレスA2=9がアドレス出力回路40からメモリ200に出力される。その結果、サイクルc9において、データD(9)〜D(12)がメモリ200から読み出される。一方、サイクルc6〜c8におけるアクセスアドレスA1=6〜8に応じて、データD(6)〜D(8)がプロセッサ100に出力される。
サイクルc9以降においても、同様にしてアドレスが連続するデータがデータ格納回路51に格納される。そして、データ格納回路51からプロセッサ100にデータが出力される。その結果、スループット=1が維持される。
<非連続アクセスが発生する場合1>
図3に示すタイミングチャートは、非連続アクセスが発生する例である。又、履歴格納回路32には、非連続アドレス組が格納されていないとする。
図3に示すサイクルc1〜c4において、アクセスアドレスA1=1〜4である。そのため、サイクルc1〜c4におけるメモリコントローラの動作は、図2のタイミングチャートを用いて説明した場合と同様である。即ち、プロセッサ100から出力されるアクセスアドレスA1に応じて、メモリコントローラ10からデータD1がプロセッサ100に出力される。
サイクルc1において読み出しAWアドレスA9=5がメモリ200に出力される。そのため、サイクルc5において、データD9がメモリ200から読み出される。そして、データD(5)〜D(8)がデータ格納回路51に格納される。サイクルc5におけるアクセスアドレスA1=5であるため、サイクルc6においてデータD(5)がプロセッサ100に出力される。更に、サイクルc6におけるアクセスアドレスA1=6に応じて、データD(6)がプロセッサ100に出力される。
サイクルc7において、アクセスアドレスA1=15である。即ち、非連続アクセスが発生する。そのため、要求AWアドレスA10=13になり、先頭AWアドレスA0=5と一致しない。データ格納回路51にはデータD(15)は格納されていないため、プロセッサはデータ待ちの状態になる。
要求AWアドレスA10と先頭AWアドレスA0と一致しないため、比較回路41は不一致信号SMをデータ出力回路50、非連続アクセス情報生成回路33及びアドレス選択回路42に出力する。
一方、履歴格納回路32に非連続アドレス組が格納されていないため、予測信号SEは出力されない。そのため、アドレス選択回路42は、要求AWアドレスA10を、読み出しAWアドレスA9としてメモリ200に出力する。その結果、サイクルc11において、データD9がメモリ200から読み出される。そして、データD(13)〜D(16)がデータ格納回路51に格納される。図3に示すように、サイクルc11において、プロセッサ100にデータD(15)が出力される。又、データ出力回路50は、データD9をデータ格納装置に格納せずに、プロセッサ100に出力することができる。その結果、プロセッサ100の待ち時間を短縮することができる。
一方、不一致信号SMが入力された非連続アクセス情報生成回路33は、非連続アドレス組を作成する。作成される非連続アドレス組の第1アドレスは、サイクルc7における先頭AWアドレスA0=5である。一方、作成される非連続アドレス組の第2アドレスは、サイクルc7における要求AWアドレスA10=13である。作成された非連続アドレス組は、履歴格納回路32に格納される。
<非連続アクセスが発生する場合2>
図4に示すタイミングチャートは、非連続アクセスが発生する例である。又、履歴格納回路32には、図4を説明した際に生成された非連続アドレス組が格納されているとする。つまり、第1アドレスが5、第2アドレスが13である非連続アドレス組が履歴格納回路32に格納されている。
図4に示すサイクルc1〜c4において、アクセスアドレスA1=1〜4である。そのため、サイクルc1〜c4におけるメモリコントローラの動作は、図2のタイミングチャートを用いて説明した場合と同様である。即ち、プロセッサ100から出力されるアクセスアドレスA1に応じて、メモリコントローラ10からデータD1がプロセッサ100に出力される。
サイクルc1において読み出しAWアドレスA9=5がメモリ200に出力される。そのため、サイクルc5において、データD9がメモリ200から読み出される。そして、データD(5)〜D(8)がデータ格納回路51に格納される。サイクルc5におけるアクセスアドレスA1=5であるため、サイクルc6においてデータD(5)がプロセッサ100に出力される。
サイクルc5において、先頭AWアドレスA0=5となる。そのため、履歴格納回路32に格納されている第1アドレス=5、第2アドレス=13の非連続アドレス組の第1アドレスと一致する。その結果、非連続アクセス予測回路31が、予測信号SE及び非連続予測AWアドレスA3をアドレス選択回路42に出力する。非連続予測AWアドレスA3=13である。
予測信号SEが入力されたアドレス選択回路42は、非連続予測AWアドレスA3を、読み出しAWアドレスA9としてメモリ200に出力する。その結果、サイクルc5から、読み出しAWアドレスA9=13に基づきメモリ200の読み出し動作が開始される。次いで、サイクルc6におけるアクセスアドレスA1=6に応じて、データD(6)がプロセッサ100に出力される。
サイクルc7において、アクセスアドレスA1=15である。即ち、図3のタイミングチャートで説明した非連続アクセスと同じ非連続アクセスが発生する。データ格納回路51にはデータD(15)は格納されていないため、プロセッサはデータ待ちの状態になる。ただし、非連続アクセスが発生することを予測して、サイクルc5からメモリ200の読み出し動作が開始されている。そのため、サイクルc9においてデータD9がメモリ200から出力される。その結果、サイクルc9において、データ格納回路51からデータD(15)がプロセッサ100に出力される。つまり、図3の例に比べてため、スループットが改善されている。
図4の例において、先頭AWアドレスA0=5であっても、サイクルc7において非連続アクセスが発生しない場合がある。つまり、非連続アクセス予測回路31が予測信号SEを出力する場合でも、非連続アクセスが発生しない場合がある。例えば、プロセッサ100がメモリ200に格納されたデータを使用してループ動作を行った場合、同一の非連続アクセスが繰り返される。そして、ループ動作が終了した場合に、非連続アクセスが発生しない。非連続アクセスが発生しない場合には、不一致信号SMが比較回路41から出力されないため、非連続アクセスが発生していないことがわかる。予測信号SEが入力され、且つ不一致信号SMが入力されない場合には、アドレス選択回路42は、読み出しAWアドレスA9として要求AWアドレスA10をメモリ200に出力する。又、非連続アクセス予測回路31が予測信号SEを出力し、且つ比較回路41が不一致信号SMを出力しない場合には、参照された非連続アドレス組を履歴格納回路32から削除するようにメモリコントローラ10を設定することができる。
ところで、非連続アドレス組を無制限に履歴格納回路32に格納するためには、履歴格納回路32の面積、消費電力を大きくする必要がある。その結果、メモリコントローラ10の面積、消費電力が大きくなる。そのため、履歴格納回路32に格納される非連続アドレス組の数を制限することが望ましい。その場合、新たに非連続アクセス組を履歴格納回路32に格納するために、履歴格納回路32に格納されている非連続アクセス組を削除する必要がある。例えば、履歴格納回路32に格納されている非連続アドレス組のうち、最初に格納された非連続アドレス組を削除する。或いは、履歴格納回路32に格納されている非連続アドレス組のうち、先頭AWアドレスA0と第1アドレスが一致したのがもっとも古い非連続アドレス組を削除する。
以上に説明したように、本発明の第1の実施の形態に係るメモリコントローラによれば、非連続アクセスが発生することを予測し、非連続アクセスにおいてプロセッサが要求するデータをメモリ200から読み出す動作が、非連続アクセスが発生する前から開始できる。その結果、非連続アクセスが発生した場合のスループットを改善することができる。即ち、プロセッサ100がメモリ200に格納されたデータを取得するために必要な時間を低減できる。又、本発明の第1の実施の形態に係るメモリコントローラによれば、履歴格納回路32に格納される情報は、データではなくアドレスである。そのため、非連続アクセスの発生に備えてキャッシュ等にデータを格納しておく回路に比べて、回路面積や消費電力を抑制することができる。
(第2の実施の形態)
本発明の第2の実施の形態に係わるメモリコントローラは、図5に示すように第1のデータ格納回路51A、第2のデータ格納回路51B及び制御回路53を備える点が、図1に示したメモリコントローラ10と異なる。その他の構成については、図1に示す第1の実施の形態と同様である。
図1に示したメモリコントローラの説明では、プロセッサ100は、各サイクル毎にメモリコントローラ10からデータD1を読み出す例を示した。ただし、プロセッサ100がメモリコントローラ10からデータD1を読み出さないサイクルが発生することがある。その場合、メモリ200からデータD9が読み出されても、データ格納回路51に格納されたすべてのデータがプロセッサから読み出されていない。そのため、データD9をデータ格納回路51に格納すると、プロセッサ100が読み出していないデータ格納回路51に格納されたデータが上書きされてしまう。
しかし、図5に示したメモリコントローラ10Aによれば、第1のデータ格納回路51Aに格納されたデータをプロセッサ100に出力している間に、メモリ200から読み出されたデータD9を第2のデータ格納回路51Bに格納することができる。逆に、第2のデータ格納回路51Bに格納されたデータをプロセッサ100に出力している間に、メモリ200から読み出されたデータD9を第1のデータ格納回路51Aに格納することができる。
制御回路53は、第1のデータ格納回路51A及び第2のデータ格納回路51Bの動作を制御する。例えば、第1のデータ格納回路51Aからプロセッサ100にデータD1が出力されている間に、メモリ200からデータD9が読み出された場合、制御回路53は、第1のデータ格納回路51Aに格納されたすべてのデータがプロセッサ100に出力されていないことを検知できる。その場合、制御回路53は、データD9を第2のデータ格納回路51Bに格納させる。そして、制御回路53は、第1のデータ格納回路51Aに格納されたすべてのデータがプロセッサ100に出力されたことを検知すると、次にプロセッサ100が要求するデータを、第2のデータ格納回路51Bからプロセッサ100に出力させる。他は、第1の実施の形態と実質的に同様であり、重複した記載を省略する。
本発明の第2の実施の形態に係るメモリコントローラによれば、プロセッサ100がメモリコントローラ10Aからデータを読み出さないサイクルがあっても、メモリ200から読み出したデータD9を第1のデータ格納回路51A又は第2のデータ格納回路51Bに格納することができる。
(その他の実施の形態)
上記のように、本発明は第1又は第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
既に述べた第1又は第2の実施の形態の説明においては、プロセッサ100がバス110を介してメモリコントローラ10に接続されている例を示したが、プロセッサ100がメモリコントローラ10に直接接続されていてもよい。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の第1の実施の形態に係るメモリコントローラの構成を示す模式図である。 本発明の第1の実施の形態に係るメモリコントローラの動作を説明を示するための第1のタイミングチャートである。 本発明の第1の実施の形態に係るメモリコントローラの動作を説明を示するための第2のタイミングチャートである。 本発明の第1の実施の形態に係るメモリコントローラの動作を説明を示するための第3のタイミングチャートである。 本発明の第2の実施の形態に係るメモリコントローラの構成を示す模式図である。
符号の説明
10…、10A…メモリコントローラ
31…非連続アクセス予測回路
32…履歴格納回路
33…非連続アクセス情報生成回路
40…アドレス出力回路
41…比較回路
51…データ格納回路
100…プロセッサ
200…メモリ

Claims (5)

  1. プロセッサからのアクセスに基づき、メモリの動作を制御するメモリコントローラであって、
    前記プロセッサがアクセスするデータのアドレスが非連続である非連続アクセスの履歴情報を格納する履歴格納回路と、
    前記履歴情報に基づき、前記非連続アクセスを予測する非連続アクセス予測回路と、
    前記非連続アクセスの予測に基づいて、前記メモリから読み出すデータの読み出しアドレスを出力するアドレス出力回路と、
    前記読み出しアドレスに基づき前記メモリから読み出されたデータを格納するデータ格納回路
    とを備えることを特徴とするメモリコントローラ。
  2. 前記プロセッサから出力されたアドレスに基づき、要求アドレスを生成する連続アドレス生成回路と、
    前記データ格納回路に格納されたデータの先頭アドレスと前記要求アドレスとを比較し、前期先頭アドレスと前記要求アドレスが一致しない場合に不一致信号を出力する比較回路と、
    前記非連続アクセスを予測した場合に前記非連続アクセス予測回路が出力する予測信号が入力され、且つ前記不一致信号が入力されない場合に、前記メモリに前記要求アドレスを出力するアドレス選択回路
    とを更に備えることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記不一致信号が入力された場合に、前記非連続アクセスの履歴情報を作成する非連続アクセス情報生成回路を更に備えることを特徴とする請求項2に記載のメモリコントローラ。
  4. 前記データ格納回路に格納されるデータ数が、前記メモリの読み出しレイテンシの値以上であることを特徴とする請求項1に記載のメモリコントローラ。
  5. 前記データ格納回路を複数備えることを特徴とする請求項1に記載のメモリコントローラ。
JP2005027668A 2005-02-03 2005-02-03 メモリコントローラ Pending JP2006215799A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005027668A JP2006215799A (ja) 2005-02-03 2005-02-03 メモリコントローラ
US11/282,656 US20060184752A1 (en) 2005-02-03 2005-11-21 Memory controller and memory control system predicting non-contiguous access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005027668A JP2006215799A (ja) 2005-02-03 2005-02-03 メモリコントローラ

Publications (1)

Publication Number Publication Date
JP2006215799A true JP2006215799A (ja) 2006-08-17

Family

ID=36816979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005027668A Pending JP2006215799A (ja) 2005-02-03 2005-02-03 メモリコントローラ

Country Status (2)

Country Link
US (1) US20060184752A1 (ja)
JP (1) JP2006215799A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078602B2 (en) 2015-05-18 2018-09-18 Fujitsu Limited Information processing apparatus, memory controller, and memory control method
CN109491817A (zh) * 2018-10-29 2019-03-19 江苏坤发信息科技有限公司 一种工业互联网反向处理***
US11200057B2 (en) 2017-05-15 2021-12-14 Fujitsu Limited Arithmetic processing apparatus and method for controlling arithmetic processing apparatus

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI365456B (en) * 2008-01-07 2012-06-01 Realtek Semiconductor Corp Apparatus for predicting memory access and method thereof
CN109189693B (zh) * 2018-07-18 2020-10-30 深圳大普微电子科技有限公司 一种对lba信息进行预测的方法及ssd

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04106645A (ja) * 1990-08-27 1992-04-08 Fujitsu Ltd キャッシュメモリのアドレス処理方法
JPH05224927A (ja) * 1991-11-15 1993-09-03 Matsushita Electric Ind Co Ltd プロセッサ
JPH0628180A (ja) * 1991-07-30 1994-02-04 Hitachi Ltd プリフェッチバッファ
JPH06168119A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ先読み制御装置
JPH06266683A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 並列処理装置
JPH07219838A (ja) * 1994-02-08 1995-08-18 Fujitsu Ltd データ先読み制御装置
JPH0816394A (ja) * 1994-03-11 1996-01-19 Advanced Micro Devicds Inc システムメモリから命令コードを先取りするための先取り装置および方法
JPH0895855A (ja) * 1994-09-26 1996-04-12 Nec Corp 演算処理システムに用いられるプリフェッチバッファ装置
JPH11232171A (ja) * 1997-10-29 1999-08-27 Hitachi Ltd 情報処理システム
JP2001166989A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd プリフェッチ機構を有するメモリシステム及びその動作方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US6611910B2 (en) * 1998-10-12 2003-08-26 Idea Corporation Method for processing branch operations
US6615322B2 (en) * 2001-06-21 2003-09-02 International Business Machines Corporation Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US6789171B2 (en) * 2002-05-31 2004-09-07 Veritas Operating Corporation Computer system implementing a multi-threaded stride prediction read ahead algorithm

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04106645A (ja) * 1990-08-27 1992-04-08 Fujitsu Ltd キャッシュメモリのアドレス処理方法
JPH0628180A (ja) * 1991-07-30 1994-02-04 Hitachi Ltd プリフェッチバッファ
JPH05224927A (ja) * 1991-11-15 1993-09-03 Matsushita Electric Ind Co Ltd プロセッサ
JPH06168119A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ先読み制御装置
JPH06266683A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 並列処理装置
JPH07219838A (ja) * 1994-02-08 1995-08-18 Fujitsu Ltd データ先読み制御装置
JPH0816394A (ja) * 1994-03-11 1996-01-19 Advanced Micro Devicds Inc システムメモリから命令コードを先取りするための先取り装置および方法
JPH0895855A (ja) * 1994-09-26 1996-04-12 Nec Corp 演算処理システムに用いられるプリフェッチバッファ装置
JPH11232171A (ja) * 1997-10-29 1999-08-27 Hitachi Ltd 情報処理システム
JP2001166989A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd プリフェッチ機構を有するメモリシステム及びその動作方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078602B2 (en) 2015-05-18 2018-09-18 Fujitsu Limited Information processing apparatus, memory controller, and memory control method
US11200057B2 (en) 2017-05-15 2021-12-14 Fujitsu Limited Arithmetic processing apparatus and method for controlling arithmetic processing apparatus
CN109491817A (zh) * 2018-10-29 2019-03-19 江苏坤发信息科技有限公司 一种工业互联网反向处理***

Also Published As

Publication number Publication date
US20060184752A1 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
JP5446464B2 (ja) 情報処理システム及びデータ転送方法
JP2004171177A (ja) キャッシュシステムおよびキャッシュメモリ制御装置
JP2006331408A (ja) 読み出し性能を向上させることができるメモリカード
JP2006215799A (ja) メモリコントローラ
JP2011065503A (ja) キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法
WO2022068149A1 (zh) 数据加载和存储***及方法
JP2009217640A (ja) データ転送制御装置
JP2010102623A (ja) キャッシュメモリ及びその制御方法
US9715427B2 (en) Memory control apparatus
JP2006268753A (ja) Dma回路及びコンピュータシステム
JP4707017B2 (ja) 信号処理装置
JP2009199384A (ja) データ処理装置
US20080250211A1 (en) Cache control method, cache device, and microcomputer
JP4374956B2 (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP4924970B2 (ja) データ処理システム
US9021234B2 (en) Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
JP3956698B2 (ja) メモリ制御装置
JP2006331248A (ja) データ転送装置
JP2006331008A (ja) メモリインタフェース
JP3479281B2 (ja) パケットバッファ制御方法および方式
JP2003177960A (ja) 演算装置及び記憶装置
JP3838405B2 (ja) 中央処理装置および中央処理システム
JP2702421B2 (ja) データベース検索方式
JPH09198305A (ja) メモリ制御装置
JP2005063358A (ja) 命令供給制御装置および半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405