JP2013149091A - メモリ制御装置及び制御方法並びに情報処理装置 - Google Patents

メモリ制御装置及び制御方法並びに情報処理装置 Download PDF

Info

Publication number
JP2013149091A
JP2013149091A JP2012009186A JP2012009186A JP2013149091A JP 2013149091 A JP2013149091 A JP 2013149091A JP 2012009186 A JP2012009186 A JP 2012009186A JP 2012009186 A JP2012009186 A JP 2012009186A JP 2013149091 A JP2013149091 A JP 2013149091A
Authority
JP
Japan
Prior art keywords
memory
data
cache
hit
access
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.)
Granted
Application number
JP2012009186A
Other languages
English (en)
Other versions
JP5791529B2 (ja
Inventor
Atsushi Torii
淳 鳥居
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012009186A priority Critical patent/JP5791529B2/ja
Priority to US13/745,781 priority patent/US20130191587A1/en
Publication of JP2013149091A publication Critical patent/JP2013149091A/ja
Application granted granted Critical
Publication of JP5791529B2 publication Critical patent/JP5791529B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

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)

Abstract

【課題】2次キャッシュによるレイテンシの短縮を維持しつつ、2次キャッシュの容量を削減する。
【解決手段】メモリ制御装置3は、第1メモリ31と、第2メモリ32と、起動してから実際のデータアクセスまでの遅延時間が長い第3メモリ33と、制御部34とを備え、第2メモリ32は、複数のデータ列のうち各データ列の一部のデータを少なくとも格納し、第3メモリ33は、複数のデータ列内の全てのデータを格納し、制御部34は、第1メモリ31でキャッシュミスが発生した場合、第2メモリ32におけるキャッシュのヒット判定を行うと共に、第3メモリ33へのアクセスを開始し、ヒット判定の結果がキャッシュヒットである場合、該当する一部のデータを第2メモリ32から読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを第3メモリ33から読み出して当該先頭データの後続データとして応答する。
【選択図】図22

Description

本発明は、メモリ制御装置及び制御方法並びに情報処理装置に関し、特に、階層メモリへのアクセスを制御するメモリ制御装置及び制御方法並びに情報処理装置に関する。
プロセッサの速度向上に対して、外部メモリの速度向上は限られる。そのため、プロセッサコアは、キャッシュメモリと密接に結合して高速にデータの入出力を行うことにより、データ処理を行うことが一般的である。しかしながら、このようなキャッシュメモリは、高速動作を要求されるため、容量が限られる。また、単一のプロセッサコアに対しては専用のキャッシュメモリを持つことが一般的である。通常、このようなキャッシュメモリは、1次キャッシュと呼ばれる。さらに、より大容量なキャッシュとして、2次キャッシュや3次キャッシュなどの階層キャッシュ(階層メモリ)をプロセッサに内蔵する例が増えてきた。これは、ある程度高速性を犠牲としつつ、一定の容量を確保することによって、外部メモリのレイテンシやスループットと、内部の処理能力のギャップを埋める役割を担う。
ここで、階層キャッシュは、キャッシュのヒット率向上のための容量拡大とその際に生じるアクセス速度低下、電力増加に関するひとつの解決策である。一般に、階層キャッシュは、階層が上位であるほど高速動作する代わりに容量を小さくし、逆に階層が下位であるほど低速動作する代わりに容量を大きくするものである。非特許文献1には、図24に示すように階層キャッシュの基本的な構造が開示されている。図24に示す階層キャッシュは、小容量高速のL1キャッシュに対して、大容量中速のL2キャッシュを併せて備える。これにより、L1キャッシュのミスが発生した場合でも、(L2キャッシュに比べて低速の)主記憶にアクセスすることなくL2キャッシュからのデータ供給を受けることにより、レイテンシの短縮を図るものである。
また、1次キャッシュと2次及び3次キャッシュの間や、2次及び3次キャッシュと外部メモリを制御するインタフェースは、チップの内部接続網(On Chip Interconnect)によって接続される。さらに、チップの構成によっては、2次及び3次キャッシュを複数のコアの共有リソースとして構成されることもある。このような2次及び3次キャッシュは、1次キャッシュでミスが生じた場合にアクセスが生じることから、1次キャッシュよりも十分大きなメモリ容量を確保しないと効果が得られにくい。一方で、このような2次及び3次キャッシュは、1次キャッシュほどの高速なアクセス性能を要求されない。このため、携帯端末などに用いられる組み込みシステムなどのSoC(System on a Chip)では、2次キャッシュは、大きなメモリ容量を必要とし、かつ、コストやリーク電力などが増加するという課題が生じていた。
特許文献1には、キャッシュメモリ制御装置に関する技術が開示されている。図25は、特許文献1にかかるキャッシュメモリ制御装置91の構成を示すブロック図である。尚、ここでは、本願発明の先行技術部分についてのみ説明する。まず、コア9101は、MIポート9110を介して制御部9102に対して必要なデータのリード要求を行う。そして、制御部9102は、リード要求に応じてキャッシュメモリであるタグメモリ9112を検索する。キャッシュミスが発生すると、制御部9102は、MIバッファ9113を介してMAC9115へデータ転送の指示を行う。MAC9115は、指示されたデータを主記憶部(不図示)から取得し、MIDQ9104に格納される(ムーブイン(MOVE−IN))。MIDQ9104に保持されたデータは、データメモリ9106に書き込まれ、書き込み終了後にラインLO、セレクタ9107、セレクタ9108及びデータバス9109を介してコア9101へ出力される。そのため、ムーブイン後にデータメモリ9106からデータを読み出すリード要求が不要となり、キャッシュミス時のレイテンシを短縮することができる。
また、プロセッサチップの外部ピンネックの解消、外部メモリのスループット拡大のために、貫通ビア(TSV: Through Silicon Via)や、リアクタンス結合を用いた3次元積層技術が注目を集めている。これにより、プロセッサチップと外部メモリを3次元で接続し、バスビット幅を従来よりも大幅に拡大するとともに、チャネル数の拡大を図ることが可能である。
このような3次元積層を用いて、高ビット幅の転送が可能になれば、1次キャッシュと2次キャッシュの間の接続に用いられるチップの内部接続網とほぼ同等のスループットで外部メモリとのデータの授受が可能になると考えられる。この外部メモリは、集積度、コストの観点からDRAMなどの構成をとることが多い。
ここで、3次元積層化の一例として、特許文献2が挙げられる。特許文献2には、複数のLSI(Large Scale Integration)でプロセッサを構成する際に、回路構成を簡素にしながらキャッシュメモリの容量が異なるプロセッサを容易に構成する技術が開示されている。
また、特許文献3には、3次元積層化の他の例が挙げられる。図26は、特許文献3にかかるハードウエア・アーキテクチュアの構成を示すブロック図である。特許文献3にかかるハードウエア・アーキテクチュアは、下層ダイ923に上層ダイ925が積層されている3次元積層化された半導体集積回路である。下層ダイ923は、プロセッサコア921と、SRAM(Static Random Access Memory)922とを備える1チップSoCである。上層ダイ925は、DRAM(Dynamic Random Access Memory)924を備える。そして、プロセッサコア921は、タグモード及びキャッシュモードを選択的に実現できるものである。
特許文献3における目的は、プロセッサコア921の実行状況(実行アプリケーション)の特性に合わせて、メモリの有効活用を図りつつ、省電力化をあわせて実現するものである。キャッシュモードは、キャッシュメモリの容量に対する負荷の小さいアプリケーションを実行する状況で選択される。この場合、積層したDRAM924の電源をオフにして省電力化を図る。これにより、プロセッサコア921に対するL2キャッシュはSRAM922が担うことになり、小容量の高速なL2キャッシュとして動作する。
一方、タグモードは、キャッシュメモリの容量に対する負荷の大きなアプリケーションを実行する状況で選択される。この場合、L2キャッシュは大容量であることが望ましいからである。この場合、DRAM924の電源をオンにし、DRAM924をL2キャッシュのデータアレイとして利用される。このL2キャッシュ構成の場合、キャッシュのデータアレイが大容量となるため、キャッシュのエントリ数が増える。よって、キャッシュのタグメモリのメモリ要求量も大きくなる。そこで、タグモードの場合、SRAM922をキャッシュタグメモリとして利用する。すなわち、SRAM922は、状況に応じてキャッシュデータメモリとキャッシュタグメモリという2種類の役割を切り替えて利用することになる。
特開2009−288977号公報 特開2009−157775号公報 特開2010−250511号公報
John L. Hennessy, David A. Patterson, Computer architecture: a quantitative approach Fourth Edition, pp291 sec.4, P292, fig5.3
ここで、一般的なメモリ制御装置における構成を説明し、本願発明が解決しようとする課題を説明する。図27は、関連技術にかかるメモリ制御装置93の構成を示すブロック図である。メモリ制御装置93は、プロセッサコア931と、L1キャッシュ932と、L2キャッシュ933と、L2HIT/MISS判定部9341と、応答データセレクタ9342と、SDRAMコントローラ935と、SDRAM936とを備える。メモリ制御装置93は、階層メモリに対するアクセス制御を行うものである。ここでは、階層メモリは、最上位階層のL1キャッシュ932と、その次の階層のL2キャッシュ933と、最下位階層のSDRAM16とを用いて実現されるものとする。
プロセッサコア931は、データの読み出しや書き込みをするためのアクセス要求を階層メモリに対して行う。以下では説明のためアクセス要求をデータの読み出しにかかるものとする。まず、プロセッサコア931は、アクセス要求を行う場合、L1キャッシュ932におけるキャッシュのヒット判定を行う。キャッシュヒットと判定した場合、プロセッサコア931は、L1キャッシュ932に格納されたデータ列を読み出し、当該アクセス要求の応答データとして処理を行う。このとき、L2キャッシュ933及びSDRAM936にはアクセスが行われない。一方、L1キャッシュ932のヒット判定がキャッシュミスである場合、プロセッサコア931は、L2HIT/MISS判定部9341に対してアクセス要求x1を行う。
L2HIT/MISS判定部9341は、アクセス要求x1に応じてL2キャッシュ933におけるキャッシュのヒット判定を行う。具体的には、L2HIT/MISS判定部9341は、アクセス要求x1に含まれるアドレスとタグ9331とを照合し、一致するか否かを判定し、一致する場合にはキャッシュヒットと判定する。キャッシュヒットと判定した場合、L2HIT/MISS判定部9341は、応答データセレクタ9342に対してL2キャッシュ933からの出力を選択するための選択指示x4を行う。また、L2HIT/MISS判定部9341は、データアレイ9332のうちヒットしたタグ9331に対応するデータ列を読み出し、応答データセレクタ9343へ出力する。そして、応答データセレクタ9342は、L2キャッシュ933から出力されたデータ列をアクセス要求x1の応答データx5としてプロセッサコア931に対して出力する。このとき、SDRAM936にはアクセスが行われない。一方、L2HIT/MISS判定部9341のヒット判定がキャッシュミスである場合、応答データセレクタ9342に対してSDRAMコントローラ935からの出力を選択するための選択指示x4を行う。また、L2HIT/MISS判定部9341は、SDRAMコントローラ935に対してアクセス要求x6を行う。
SDRAMコントローラ935は、アクセス要求x6に応じてSDRAM936へのアクセスを制御し、応答データセレクタ9342に対して応答する。SDRAMコントローラ935は、シーケンサ9351と、ROWアドレス生成部9352と、COL(Column)アドレス生成部9353と、同期化バッファ9354とを備える。シーケンサ9351は、アクセス要求x6に応じてROWアドレス生成部9352を介して、SDRAM936に対してRowOpen要求を発行する。続いて、シーケンサ9351は、COLアドレス生成部9353を介してColRead要求を発行する。そして、同期化バッファ9354は、SDRAM936から読み出されたデータ列を格納し、応答データセレクタ9342へ出力する。そして、応答データセレクタ9342は、SDRAMコントローラ935から出力されたデータ列をアクセス要求x1の応答データx5としてプロセッサコア931に対して出力する。
ここで、L2キャッシュ933に十分な容量がないと、L2キャッシュのヒット率が上がらず、レイテンシ短縮効果を得ることが難しい。しかし、コストや消費電力制約が厳しい組み込みシステムにおいては、なかなか大容量化することが難しかった。例えば、L2キャッシュ933の容量を削減するには、メモリ制御装置93において、タグ9331及びデータアレイ9332のデータ列数を削減することが考えられる。しかし、単純にL2キャッシュ933の容量を削減してしまうと、L2キャッシュ933におけるヒット判定率が低下し、相対的にSDRAM936へのアクセス回数が増加する。SDRAM936の応答速度は、L2キャッシュ933に比べて遅いため、メモリ制御装置93全体としての平均レンテンシが増加してしまう。
一方で、今後は、特に3次元積層化技術の進展により、多ビット幅のI/Oが実現され、外部メモリのスループットは向上することが期待できる。例えば、JEDEC(Joint Electron Device Engineering Council)で規格化が進んでいるwide−I/O memoryでは、128bitのSDRAM(Synchronous DRAM)を4チャネル分1つのダイに集積しており、12.8GB/sのスループットを実現している。したがって、内部バスが64bit幅の場合や、内部バスが128bit幅の場合でも、複数のチャネルを同一バスに接続した場合には、内部バス速度と同等以上のスループットが期待できる。そのため、上記のように単純にL2キャッシュ933の容量を削減し、相対的にSDRAM936へのアクセス回数が増加してもスループットを維持できるとも考えられる。
しかしながら、このようにプロセッサコアとは別のダイに搭載される外部メモリを用いた場合であっても、外部メモリにリード/ライトのコマンドを発行してから、メモリセルからのデータを読み出したり、書き込んだりすることには、一定の時間を要する。例えば、外部メモリがSDRAM936の場合、その構造、制御仕様上SDRAMコントローラ935は、アクセス要求x6を受け付けてからRowOpen要求を発行し、SDRAM936を起動した後に、ColRead要求を発行することで初めて所望のデータ列を読み出すことができるからである。このため、メモリアクセスのレイテンシは大幅な短縮は難しく、レイテンシ短縮のためには依然として大容量の2次キャッシュが必要であった。つまり、レイテンシの短縮を維持しつつ、2次キャッシュの容量を削減することが困難であるという問題点があった。
特許文献1は、キャッシュミス時のレイテンシを短縮するものであるが、L2キャッシュメモリの容量を削減するための技術ではない。また、特許文献2も、同一階層であるL2キャッシュを複数のLSI上に分散するためのものであるが、L2キャッシュメモリの容量を削減するための技術ではない。
また、特許文献3におけるタグモードでは、SRAM922に対するタグのヒットミス判定の結果に関わらず、その後に必ず、DRAM924へのアクセスが発生する。タグモードでは、3次元積層化したDRAM924から大容量のデータをまとめて読み出すことは可能となる。しかしながら、一般にDRAMを含む外部メモリ装置は、その構造上、その構成からアクセスを開始するコマンドを発行してから最初のデータが出力されるまでに、数サイクルの遅延が生じる。したがって、3次元積層化したDRAMによるタグモードを用いた場合、キャッシュモードにおけるL2キャッシュのレイテンシには及ばない。一方、キャッシュモードではL2キャッシュのヒット率がタグモードに比べて低くなってしまう。そのため、特許文献3によっても、レイテンシの短縮を維持しつつ、2次キャッシュの容量を削減することは実現できない。
本発明の第1の態様にかかるメモリ制御装置は、
所定階層のキャッシュメモリである第1メモリと、
前記第1メモリより少なくとも下位階層のキャッシュメモリである第2メモリと、
前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリと、
前記第1メモリ、前記第2メモリ及び前記第3メモリに対する入出力の制御を行う制御部と、を備え、
前記第2メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第3メモリは、前記複数のデータ列内の全てのデータを格納し、
前記制御部は、
前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行うと共に、前記第3メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する。
本発明の第2の態様にかかるメモリ制御方法は、
所定階層のキャッシュメモリである第1メモリと、
前記第1メモリより少なくとも下位階層のキャッシュメモリであり、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する第2メモリと、
前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長く、前記複数のデータ列内の全てのデータを格納する第3メモリと、
を備えるメモリ制御装置におけるメモリ制御方法であって、
前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行い、
前記ヒット判定と共に、前記第3メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する。
本発明の第3の態様にかかる情報処理装置は、
プロセッサコアと、
所定階層のキャッシュメモリである第1メモリと、
前記第1メモリより少なくとも下位階層のキャッシュメモリである第2メモリと、
前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリと、
前記第1メモリ、前記第2メモリ及び前記第3メモリに対する入出力の制御を行うメモリ制御部と、を備え、
前記第2メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第3メモリは、前記複数のデータ列内の全てのデータを格納し、
前記メモリ制御部は、
前記プロセッサコアからのアクセス要求により前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行うと共に、前記第3メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する。
本発明の第4の態様にかかるメモリ制御装置は、
第1キャッシュメモリと、
少なくとも前記第1キャッシュメモリの下位階層である第2キャッシュメモリと、
少なくとも前記第1キャッシュメモリの下位階層である外部メモリと、を備え、
前記第2キャッシュメモリにおけるキャッシュのヒット判定結果がキャッシュヒットである場合、当該第2キャッシュメモリと前記外部メモリとを同一階層のメモリとし、
前記ヒット判定結果がキャッシュミスである場合、前記外部メモリを前記第2キャッシュメモリの下位階層とする。
本発明の第5の態様にかかるメモリ制御装置は、
3以上のメモリ階層を有するメモリ制御装置であって、
上位階層のキャッシュメモリにおいてキャッシュミスであった場合に、当該キャッシュメモリより下位階層である複数の階層のメモリに対して同時にアクセス要求を行い、
データの応答があった順番に応じて前記アクセス要求に対する応答データとする。
本発明の第1乃至第3の態様により、第2メモリにおいてキャッシュヒットした場合には、第2メモリ内の一部のデータを先頭データとし、第3メモリ内の同一のデータ列内の残りのデータをその後続データとすることで、応答データとしての整合性を取ることができる。ここで、第2メモリと第3メモリとは応答速度が異なる。そのため、第2メモリからの一部のデータについては、従来と同様に高速に応答できるが、第3メモリからの残りのデータについてはレイテンシがある。そこで、第2メモリのヒット判定と同時に第3メモリのアクセスを開始することで、第3メモリの応答時間の遅れを第2メモリから一部のデータが読み出される時間により補完することができる。これにより、応答速度の異なる第2メモリと第3メモリを用いて、第2メモリのみで応答しているときと同様のレイテンシを維持できる。そして、この場合には第2メモリには最低限、キャッシュヒットしたデータ列のうち一部のデータ、つまり、応答時に先頭部分となるデータのみを格納していれば十分である。よって、第2メモリにおけるキャッシュヒット率を従来と同様に維持しつつ、格納データ量を削減できる。すなわち、第2メモリのメモリ容量を削減することができる。
また、本発明の第4の態様により、ヒット判定結果に基づいて外部メモリの階層を変化させることができる。そのため、第2キャッシュメモリにおけるキャッシュヒットの場合に、同一階層の外部メモリからのデータを用いて応答することが可能となる。よって、第2キャッシュメモリにキャッシュヒットにかかるデータ列の全てのデータを格納しておく必要がなく、第2キャッシュメモリの容量を削減できる。
また、本発明の第5の態様により、L2キャッシュメモリにおけるキャッシュヒットの場合には、L2キャッシュメモリからの応答があり、その後、L2キャッシュメモリより階層の外部メモリ等からの応答という順番となる。そこで、L2キャッシュメモリから読み出されたデータを優先して、外部メモリ等から読み出されたデータをその後続データとして応答データとすることができる。そのため、L2キャッシュメモリに、最初に必要となる優先度の高いデータのみを格納しておけば、L2キャッシュメモリによるレイテンシ短縮の効果を維持しつつ、その容量を削減できる。
本発明により、2次キャッシュによるレイテンシの短縮を維持しつつ、2次キャッシュの容量を削減するためのメモリ制御装置及び制御方法並びに情報処理装置を提供することができる。
本発明の実施の形態1にかかるメモリ制御装置の構成を示すブロック図である。 本発明の実施の形態1にかかるデータ読出処理の流れを示すフローチャートである。 本発明の実施の形態1にかかるL2キャッシュヒット処理の流れを示すフローチャートである。 本発明の実施の形態1にかかるL2キャッシュミス処理の流れを示すフローチャートである。 本発明の実施の形態1にかかるL2キャッシュヒット時の効果を説明する図である。 本発明の実施の形態1にかかるL2キャッシュミス時の効果を説明する図である。 本発明の実施の形態1にかかるL2キャッシュヒット時(レイテンシが長い場合)の効果を説明する図である。 本発明の実施の形態1にかかるL2キャッシュヒット時(レイテンシが短い場合)の効果を説明する図である。 本発明の実施の形態1にかかるL2キャッシュヒット時(スループットが低い場合)の効果を説明する図である。 本発明の実施の形態1にかかる各メモリ階層に格納されるデータの関係の概念を説明する図である。 本発明の実施の形態1にかかるL1キャッシュとL2キャッシュに格納されるデータの関係の概念を説明する図である。 本発明の実施の形態2にかかるL2キャッシュヒット処理の流れを示すフローチャートである。 本発明の実施の形態2にかかるL2キャッシュミス処理の流れを示すフローチャートである。 本発明の実施の形態2にかかるL2キャッシュヒット時の効果を説明する図である。 本発明の実施の形態3にかかるメモリ制御装置の構成を示すブロック図である。 本発明の実施の形態3にかかるデータ読出処理の流れを示すフローチャートである。 本発明の実施の形態3にかかるL2キャッシュヒット処理の流れを示すフローチャートである。 本発明の実施の形態3にかかるL2キャッシュミス処理の流れを示すフローチャートである。 本発明の実施の形態3にかかるL2キャッシュヒット時の効果を説明する図である。 本発明の実施の形態4にかかるマルチプロセッサにおけるメモリ制御装置の構成を示すブロック図である。 本発明の実施の形態4にかかるL2キャッシュヒット時の効果を説明する図である。 本発明の実施の形態5にかかるメモリ制御装置の構成を示すブロック図である。 本発明の実施の形態6にかかる情報処理装置の構成を示すブロック図である。 関連技術にかかる階層キャッシュの基本的な構造の例を示す図である。 関連技術にかかるキャッシュメモリ制御装置の構成を示すブロック図である。 関連技術にかかるハードウエア・アーキテクチュアの構成を示すブロック図である。 関連技術にかかるメモリ制御装置の構成を示すブロック図である。 関連技術にかかるL1キャッシュとL2キャッシュに格納されるデータの関係 関連技術にかかるマルチプロセッサにおけるメモリ制御装置の構成を示すブロック図である。の概念を説明する図である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかるメモリ制御装置1の構成を示すブロック図である。メモリ制御装置1は、プロセッサコア11と、L1キャッシュ12と、L2キャッシュ13と、L2HIT/MISS判定部141と、転送回数カウンタ142と、応答データセレクタ143と、SDRAMコントローラ15と、SDRAM16とを備える。メモリ制御装置1は、階層メモリに対するアクセス制御を行うものである。ここでは、階層メモリは、最上位階層のL1キャッシュ12と、その次の階層のL2キャッシュ13と、最下位階層のSDRAM16とを用いて実現されるものとする。
L1キャッシュ12は、最上位階層のキャッシュメモリであり、当該階層メモリの中では、最高速で動作し、容量は最も少ない。L2キャッシュ13は、L1キャッシュ12より下位階層のキャッシュメモリであり、L1キャッシュ12に比べて低速かつ大容量であり、一方SDRAM16に比べて高速かつ少容量である。尚、L1キャッシュ12及びL2キャッシュ13は、例えば、SRAMで実現可能である。SDRAM16は、L2キャッシュ13より下位階層であり、L2キャッシュ13に比べて低速、つまり応答速度が遅くかつ大容量である。
L2キャッシュ13は、タグ131と、部分データアレイ132とを格納する。部分データアレイ132は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータである。また、部分データアレイ132は、少なくともL1キャッシュ12に格納されているデータ列以外のデータ列のうち、一部のデータである。タグ131は、部分データアレイ132の各データ列に対応するアドレス情報である。尚、一般に、タグ131は、L1キャッシュ12内のタグを包含するものである。また、L2キャッシュ13は、メモリの階層が第2番目である必要はなく、例えば、最下層のメモリの直前のLLC(Last Level Cache)であってもよい。
SDRAM16は、少なくとも部分データアレイ132が属するデータ列内の全てのデータを格納する。尚、一般に、SDRAM16は、L1キャッシュ12及びL2キャッシュ13に格納されているデータを包含し、それ以外のデータ列も含めて格納されているものである。
図10は、本発明の実施の形態1にかかる各メモリ階層に格納されるデータの関係の概念を説明する図である。まず、SDRAM16には、データ集合L3Dが格納されているものとする。ここで、データ集合L3Dは、データ列DA0、DA1、DA2、・・・DANを含む。例えば、データ列DA0には、データD000、D001、D002、・・・D015が属している。データ列DA1〜DANについても同様である。
また、L1キャッシュ12には、データ集合L1Dが格納されているものとする。データ集合L1Dは、データ列DA0及びDA1を含む。つまり、データ集合L1Dは、データ集合L3Dの部分集合である。
ここで、本発明の実施の形態1にかかるL2キャッシュ13には、データ集合L2Dが格納されているものとする。データ集合L2Dは、データD000〜D003、データD100〜D103、データD200〜D203及びデータD300〜D302を含む。つまり、データ集合L2Dは、データ列DA0〜DA3の各データ列の一部のデータである。尚、データ集合L2Dは、L1キャッシュ12に格納されているデータ列DA0及びDA1以外のデータ列DA2及びDA3のうち、一部のデータD200〜D203及びD300〜D303を少なくとも含めば良い。
さらに、L2キャッシュ13は、各データ列の全てのデータを格納した場合に比べて多くのデータ列についての一部のデータを格納するようにしてもよい。つまり、通常のL2キャッシュは、データ列DA0〜DA3の各データ列の全てを格納しており、その範囲内であれば、データD400〜D403及びデータD500〜D503等をさらに格納することが可能である。これにより、L2キャッシュにおけるヒット率を向上させることができる。
図1に戻り説明する。プロセッサコア11は、データの読み出しや書き込みをするためのアクセス要求を階層メモリに対して行う。特に、プロセッサコア11は、L1キャッシュ12におけるキャッシュミスが発生した場合、L2HIT/MISS判定部141及びSDRAMコントローラ15に対して同時にアクセス要求x1を発行する。尚、本発明の実施の形態1ではアクセス要求をデータの読み出しにかかるものとする。また、プロセッサコア11の代わりに、L1キャッシュコントローラを用いても構わない。
L2HIT/MISS判定部141は、アクセス要求x1に応じてL2キャッシュ13におけるキャッシュのヒット判定を行う。具体的には、L2HIT/MISS判定部141は、アクセス要求x1に含まれるアドレスとタグ131とを照合し、一致するか否かを判定し、一致する場合にはキャッシュヒットと判定する。キャッシュヒットと判定した場合、L2HIT/MISS判定部141は、L2がキャッシュヒットである旨及びSDRAM16における読出し対象アドレスを判定結果x2に含めてシーケンサ151及びCOLアドレス生成部153へ出力する。このとき、読出し対象アドレスは、部分データアレイ132のデータ列あたりのデータ数の直後を示す値となる。また、L2HIT/MISS判定部141は、部分データアレイ132のうちヒットしたタグ131に対応する部分データを読み出し、応答データセレクタ143へ出力する。一方、L2HIT/MISS判定部141のヒット判定がキャッシュミスである場合、L2がキャッシュミスである旨及びSDRAM16における読出し対象アドレスを判定結果x2に含めてシーケンサ151及びCOLアドレス生成部153へ出力する。このとき、読出し対象アドレスは、データ列あたりの先頭アドレスとなる。
転送回数カウンタ142は、L2キャッシュ13又はSDRAM16から読み出されたデータの転送回数を計測するカウンタである。また、転送回数カウンタ142は、シーケンサ151からの転送回数x3に応じて応答データセレクタ143に対して選択指示x4を行う。例えば、部分データアレイ132のデータ数が"4"の場合で説明する。L2がキャッシュヒットである旨がシーケンサ151から通知された場合、転送回数カウンタ142は、転送回数が"0"の時点でL2キャッシュ13からのデータを選択するように選択指示x4を行う。そして、転送回数が"4"の時点で、転送回数カウンタ142は、SDRAM16からのデータを選択するように選択指示x4を行う。また、L2がキャッシュミスである旨がシーケンサ151から通知された場合、転送回数カウンタ142は、転送回数が"0"の時点でSDRAM16からのデータを選択するように選択指示x4を行う。
応答データセレクタ143は、L2キャッシュ13又は同期化バッファ154から転送されるデータを選択指示x4に応じて選択して、応答データx5としてプロセッサコア11へ出力する選択回路である。
SDRAMコントローラ15は、アクセス要求x1に応じてSDRAM16へのアクセスを制御し、応答データセレクタ143に対して応答する。SDRAMコントローラ15は、シーケンサ151と、ROWアドレス生成部152と、COLアドレス生成部153と、同期化バッファ154とを備える。シーケンサ151は、プロセッサコア11からアクセス要求x1を受け付けると、ROWアドレス生成部152を介してSDRAM16に対してRowOpen要求を発行する。ここで、アクセス要求x1は、L2HIT/MISS判定部141及びシーケンサ151へ同時に発行されているため、L2HIT/MISS判定部141におけるヒット判定と同時に、RowOpen要求が発行されることとなる。つまり、当該ヒット判定中に、SDRAM16へのアクセスが開始される。そして、ヒット判定結果を待たずにSDRAM16が起動され、データの読み出しの準備が進められる。
また、シーケンサ151は、L2HIT/MISS判定部141から判定結果x2を受け付けると、判定結果x2に含まれているL2がキャッシュヒット又はキャッシュミスである旨について転送回数カウンタ142へ通知する。同時に、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対してColRead要求を発行する。このとき、既にSDRAM16は起動済みであるため、ColRead要求で指定されたアドレスに基づいて、即座にデータが読み出される。
ROWアドレス生成部152は、シーケンサ151からの指示に応じてSDRAM16に対するRowOpen要求を生成し、出力する。COLアドレス生成部153は、シーケンサ151からの指示に応じて、判定結果x2に含まれる読出し対象アドレスを読み出し開始アドレスとしてColRead要求を生成し、出力する。同期化バッファ154は、SDRAM16から読み出されたデータ列を格納し、応答データセレクタ143へ出力する。
尚、L2HIT/MISS判定部141、転送回数カウンタ142、応答データセレクタ143及びSDRAMコントローラ15は、L2キャッシュ13及びSDRAM16に対する入出力の制御を行う制御部と呼ぶことができる。
図2は、本発明の実施の形態1にかかるデータ読出処理の流れを示すフローチャートである。ここでは、読み出し要求に対してL1キャッシュ12においてキャッシュミスが発生した場合について説明する。つまり、プロセッサコア11からL2HIT/MISS判定部141及びシーケンサ151に対してアクセス要求x1が発行された場合となる。
まず、L2HIT/MISS判定部141は、アクセス要求x1に応じてL2キャッシュ13のタグ照合を行う(S101)。このとき並行して、シーケンサ151は、SDRAM16に対して、上位アドレスに基づきRowOpen要求を発行する(S102)。つまり、シーケンサ151は、アクセス要求x1に含まれるアクセス対象を指定したアドレスのうち、上位アドレスを用いる。
次に、L2HIT/MISS判定部141は、L2キャッシュがヒットしたか否かを判定する(S103)。ヒットした場合、L2キャッシュヒット処理を行う(S104)。また、ミスした場合、L2キャッシュミス処理を行う(S105)。
図3は、本発明の実施の形態1にかかるL2キャッシュヒット処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141は、L2がキャッシュヒットである旨及びSDRAM16における読出し対象アドレスを部分データアレイ132のデータ列あたりのデータ数の直後を示す値とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレス+L2サイズに基づきColRead要求を発行する(S111)。これと並行して、L2HIT/MISS判定部141及びシーケンサ151を経由して転送回数カウンタ142は、応答データセレクタ143の出力を、L2キャッシュ13に切り替える(S112)。そして、L2HIT/MISS判定部141は、部分データアレイ132から該当するタグに対応する一部のデータを読み出して、応答データセレクタ143へ出力する。応答データセレクタ143は、L2キャッシュ13から読み出されたデータを先頭データとしてプロセッサコア11へ供給する(S113)。すなわち、応答データセレクタ143は、応答データx5の先頭データをプロセッサコア11へ出力する。
その後、転送回数が"4"に達したとき、転送回数カウンタ142は、応答データセレクタ143の出力をSDRAM16に切り替える(S114)。そして、SDRAM16から後続データを供給する(S115)。すなわち、ステップS111におけるColRead要求に基づいてSDRAM16から該当データとして、キャッシュヒットしたデータ列のうち、部分データアレイ132以外のデータが読み出されて、同期化バッファ154に格納される。そして、同期化バッファ154は、応答データセレクタ143へ出力する。その後、応答データセレクタ143は、応答データx5の後続データとしてプロセッサコア11へ出力する。
最後に、シーケンサ151は、SDRAM16に対して先頭データの転送中止要求を発行する(S116)ことも可能である。SDRAM16からはD15の出力後wrap処理が行われ、D0−D3が続いて出力されるため、部分データアレイ132のデータと重複するデータについて、SDRAM16からWrap読み出しがされることを防ぐことができる。そのまま、Wrap読み出しされて、そのデータを破棄するという実装も取りうる選択肢である。
図4は、本発明の実施の形態1にかかるL2キャッシュミス処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141は、L2がキャッシュミスである旨及びSDRAM16における読出し対象アドレスをデータ列あたりの先頭とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレスに基づきColRead要求を発行する(S121)。これと並行して、L2HIT/MISS判定部141及びシーケンサ151を経由して転送回数カウンタ142は、応答データセレクタ143の出力を、SDRAM16に切り替える(S122)。
その後、SDRAM16から先頭データを供給する(S123)。すなわち、ステップS121におけるColRead要求に基づいてSDRAM16から該当データとして、キャッシュミスしたデータ列のうち先頭のデータから読み出されて、同期化バッファ154に格納される。そして、同期化バッファ154は、応答データセレクタ143へ出力する。その後、応答データセレクタ143は、応答データx5の先頭データとしてプロセッサコア11へ出力する。これと並行して、当該先頭データをL2キャッシュへ格納する(S124)。そして、SDRAM16から後続データを供給する(S125)。
このように、CPUなどのIPコアのL1キャッシュには、最もアクセス頻度の高いデータがデータ列単位で格納される。そして、L2キャッシュは、レイテンシの隠蔽に用いるキャッシュとしての役割を担う。但し、本発明の実施の形態1にかかるL2キャッシュは、データ列のうち先頭の一部分のみを格納する。また、外部メモリには、アクセス要求にかかるデータ列の全てが格納されている。そこで、IPコアはL1キャッシュミスが生じた際に、L2キャッシュと外部メモリの両者からデータの供給を受けることができる。
本発明の実施の形態1では上述したように、まず、プロセッサコア11がL1キャッシュのキャッシュミスによってデータを要求すると、L2HIT/MISS判定部141は自らのキャッシュのヒットミスを判定するとともに、外部メモリ(例えば、SDRAM16)の活性化がされる。
ここで、図5は、本発明の実施の形態1にかかるL2キャッシュヒット時の効果を説明する図である。L2キャッシュヒットであれば、L2キャッシュのレイテンシT1後に、L2キャッシュからデータ群RD1が供給される。また、L1キャッシュミスが発生後に、SDRAMのRowOpen要求を開始し、L2HIT/MISS判定後に、D4以降についてColRead要求を行っている。そのため、RASレイテンシT2+CASレイテンシT3の経過後に、データ群RD2が供給できる。
そのため、データ群RD1が外部メモリのレイテンシに相当する数サイクル分のデータである場合には、図5のように、L2キャッシュからデータ群RD1を供給後、続けてSDRAMからデータ群RD2が供給される。言い換えると、図10に示したデータ集合L2Dは、SDRAM16におけるアクセス開始から最初のデータが読み出されるまでの間に、L2キャッシュ13から読み出し続けられるデータ量であることが望ましい。これにより、レイテンシのタイミングが整合し、L2ヒット時の応答速度が維持できる。
また、図6は、本発明の実施の形態1にかかるL2キャッシュミス時の効果を説明する図である。L2キャッシュミスの場合、RASレイテンシT2+CASレイテンシT3の経過後に、SDRAM16からデータ群RD3が供給できる。これは、L2キャッシュのヒット/ミスに関わらず、外部DRAMの起動を開始するためである。関連技術の場合には、L2キャッシュがヒットした場合には、DRAMを起動すると無駄になるため、省電力化が重要なシステムにおいては、通常、DRAMの起動はL2キャッシュがミスした後となり、ミス時のレイテンシが図6の場合よりも長くなる。よって、本L2HIT/MISS判定後にRowOpen要求を行う関連技術に比べて、発明の実施の形態1によりRASレイテンシT2分の応答時間を短縮することができる。
また、上述したように本発明の実施の形態1では、第3メモリを外部メモリとし、特にDRAMを想定している。DRAMの場合、リードアクセスはRowアドレスのオープンとCOLアドレス及びコマンド発行という2段階のステップが必要である。ここで、Rowのオープンでは、L1キャッシュミスが生じたアクセスアドレスの上位アドレスを指定する。すなわち、図5及び図6のいずれの場合であっても、上位アドレスは同一である。したがって、Rowアドレスのオープン時には、L2キャッシュのヒット/ミスの結果が判明している必要はない。その後、L2キャッシュのヒット/ミスの結果により、ヒットの場合D0からのデータ転送、ミスの場合D4からのデータ転送かをCOLアドレスとして発行することで実現可能となる。
言い換えると、第3メモリは、アクセスを開始するための第1要求と、前記データ列内で当該アクセスにおける読み出し対象のデータ位置を指定する第2要求とに基づいてデータを読み出すものであり、前記制御部は、前記第2メモリにおける前記ヒット判定と同時に、前記第3メモリに対して前記第1要求を発行し、前記ヒット判定の結果がキャッシュヒットである場合、前記第3メモリに対して、当該キャッシュヒットに該当するデータ列のうち前記一部のデータ以後のデータを前記データ位置として指定して前記第2要求を発行し、前記ヒット判定の結果がキャッシュミスである場合、前記第3メモリに対して、当該キャッシュミスに該当するデータ列の全てを前記データ位置として指定して前記第2要求を発行することが望ましい。これにより、第3メモリがDRAM等の場合、予めRowOpen要求を発行しておき、L2ヒット判定結果に応じてCOLアドレスを変更することに拠って、読み出すデータ位置の指定を変更して、RASレイテンシ時間を短縮することができる。特に、第3メモリは、wide−I/O memory規格に基づくDRAMに適用可能である。
図7は、本発明の実施の形態1にかかるL2キャッシュヒット時(レイテンシが長い場合)の効果を説明する図である。ここでは、図5のCASレイテンシT3よりも図7のCASレイテンシT3aが長い場合を示す。このとき、L2キャッシュからデータ群RD1を供給後、SDRAMからのデータ群RD2の供給までの間に、転送空きサイクルT4が生じる。このような場合であっても、IPコアが届いたデータから先に処理を行える機構を持っていれば、十分効果を発揮することが可能であるし、このような機構を有してなくとも少なくとも、データ群RD1分のレイテンシ短縮は実現可能である。
図8は、本発明の実施の形態1にかかるL2キャッシュヒット時(レイテンシが短い場合)の効果を説明する図である。ここでは、図5のCASレイテンシT3よりも図7のCASレイテンシT3bが短い場合を示す。このとき、L2キャッシュの部分データアレイサイズを縮小して、ハードウェアを設計することが有効なコスト削減方法である。しかしながら、さまざまなSDRAMパラメタが存在することも十分想定される。そこで、図8に示したように、CAS発行調整サイクルT5を挿入して、CAS発行を遅延させることにより、SDRAMから供給するD4のデータがL2キャッシュから供給するD3のデータよりも後に出力される様にする。これにより、追加のデータバッファを挿入することなく、本発明を適用可能である。
図9は、本発明の実施の形態1にかかるL2キャッシュヒット時(スループットが低い場合)の効果を説明する図である。ここでは、SDRAMのスループットがL2キャッシュに比べて低い場合の例を示す。このとき、データ群RD4の供給の間に、転送空きサイクルT6及びT7等が発生することになる。しかし、この場合であっても図7と同様に少なくとも、データ群RD1分のレイテンシ短縮は実現可能である。
ここで、図27に示す関連技術と図1に示す本願発明との相違点について説明する。関連技術では、L2HIT/MISS判定部9341によるL2キャッシュ933のヒットミス判定終了後、キャッシュミスとなった場合に、SDRAMコントローラ935にSDRAMへのアクセスを開始するための要求を送る。これによって、無駄にSDRAM936がアクセスされないという効果が期待できる。一方、キャッシュミスの場合のアクセスレイテンシが長くなるという課題も生じる。
一方、本願発明では、L2HIT/MISS判定部141によるL2キャッシュ13のヒットミス判定とSDRAMコントローラ15へのSDRAM16のアクセス開始要求とが同時に行われる。これは、本願発明によるキャッシュが、L2キャッシュを用いたレイテンシ短縮の効果を狙ったものであるためである。そのため、SDRAM16に対しても常にアクセスすることとなるが、SDRAM16へのアクセス開始要求は、L2キャッシュヒット時にも無駄にならない。これは、L2キャッシュ13が保持する部分データアレイ132が、SDRAM16が保持するデータ列のうちの一部であるためである。
もし、関連技術において、L2キャッシュ933のヒットミス判定と、SDRAM936のアクセス開始要求とを単純に同時に行ったとしても、L2キャッシュヒットの場合、SDRAM936のアクセス開始要求を取り消す必要が生じる。そのため、関連技術では、無駄な処理が発生し、レイテンシを維持できない。
また、本願発明では、L2ヒットミス判定の結果が、CASアクセス(COLアドレスとリードコマンドの発行)に影響することから、L2キャッシュのヒットミス判定結果を、CASアクセス生成論理に通知する様に設計される。L2がヒットした場合には、SDRAMのデータ取得開始地点をL1からの要求アドレスに対して、L2キャッシュのラインサイズ分だけ加算して、CASアドレスを発行し、ミスの場合には、L1からの要求アドレスをそのままCASアドレスとして発行する。また、応答データセレクタは、同一のアクセス内で、転送回数カウンタでデータ転送量を計時して、L2キャッシュ相当分のみデータ転送が終了した時点で、SDRAMからのデータ転送に切り替える役割を担う。
言い換えると、第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行うと共に、前記第3メモリへのアクセスを開始し、前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する。
図28は、関連技術にかかるL1キャッシュとL2キャッシュに格納されるデータの関係の概念を説明する図である。L1キャッシュ932には、タグL1Tと、データアレイL1DAとが格納されている。タグL1T及びデータアレイL1DAは、アレイ数Ld1である。また、データアレイL1DAは、ラインサイズLs1である。また、L2キャッシュ933は、タグL2Tと、データアレイL2DAとが格納される。タグL2T及びデータアレイL2DAは、アレイ数Ld2である。また、データアレイL2DAは、ラインサイズLs2である。そして、データアレイL1DAは、データアレイL2DAに包含されており、データアレイL2DAは、SDRAM936に包含されている。
L2キャッシュ933にヒットした場合にはSDRAM936へのアクセスは生じない。L2キャッシュ933の効果を得るためには、データアレイL1DAに比べて十分な容量のデータアレイL2DAをL2キャッシュ933に確保する必要がある。しかし、組み込みシステムではそのコストが大きく実現が困難であった。
図11は、本発明の実施の形態1にかかるL1キャッシュとL2キャッシュに格納されるデータの関係の概念を説明する図である。L1キャッシュ12は、L1キャッシュ932と同等の構成である。但し、L1キャッシュ12でキャッシュミスとなった場合には、L2キャッシュ13及びSDRAM16に格納された内容で応答される場合がある。
L2キャッシュ13は、タグL2Tと、部分データアレイL2DAaとが格納されている。タグL2T及び部分データアレイL2DAaは、アレイ数Ld2であり、図28と同等である。一方、部分データアレイL2DAaは、ラインサイズLs2aであり、図28と異なる。
ここで、図28では、L2キャッシュ933における個々のキャッシュエントリのラインサイズLs2は、L1キャッシュ932のラインサイズLs1と同等か、それを上回るようにする必要がある。一方、図11では、L2キャッシュ13のラインサイズLs2aは、L1キャッシュ12のラインサイズLs1よりも十分に小さくできる。これによって、外部メモリのレイテンシを効果的に削減するとともに、L2キャッシュの問題点であったメモリ容量を大幅に削減することが可能になる。
一方で、L2キャッシュ13がヒットした際にもSDRAM16へのアクセスが必ず発生することになるが、背景で述べたように、3次元積層によるI/O電力の減少やバンド幅の拡大を有効に活用することにより、このことによるデメリットは従来外付けチップによる外部メモリ接続より軽減できると考えられる。
尚、本発明の実施の形態1は、次のように表現することができる。すなわち、第1キャッシュメモリと、少なくとも前記第1キャッシュメモリの下位階層である第2キャッシュメモリと、少なくとも前記第1キャッシュメモリの下位階層である外部メモリと、を備え、前記第2キャッシュメモリにおけるキャッシュのヒット判定結果がキャッシュヒットである場合、当該第2キャッシュメモリと前記外部メモリとを同一階層のメモリとし、前記ヒット判定結果がキャッシュミスである場合、前記外部メモリを前記第2キャッシュメモリの下位階層とするメモリ制御装置。これにより、ヒット判定結果に基づいて外部メモリの階層を変化させることができる。そのため、第2キャッシュメモリにおけるキャッシュヒットの場合に、同一階層の外部メモリからのデータを用いて応答することが可能となる。よって、第2キャッシュメモリにキャッシュヒットにかかるデータ列の全てのデータを格納しておく必要がなく、第2キャッシュメモリの容量を削減できる。
または、本発明の実施の形態1は、次のように表現することもできる。すなわち、3以上のメモリ階層を有するメモリ制御装置であって、上位階層のキャッシュメモリにおいてキャッシュミスであった場合に、当該キャッシュメモリより下位階層である複数の階層のメモリに対して同時にアクセス要求を行い、データの応答があった順番に応じて前記アクセス要求に対する応答データとするメモリ制御装置。これにより、L2キャッシュメモリにおけるキャッシュヒットの場合には、L2キャッシュメモリからの応答があり、その後、L2キャッシュメモリより階層の外部メモリ等からの応答という順番となる。そこで、L2キャッシュメモリから読み出されたデータを優先して、外部メモリ等から読み出されたデータをその後続データとして応答データとすることができる。そのため、L2キャッシュメモリに優先度の高いデータのみを格納しておけば、L2キャッシュメモリの容量を削減できる。
<発明の実施の形態2>
上述した発明の実施の形態1では、L1キャッシュミスが生じた際に、ミスしたラインをL2キャッシュ又は外部メモリから読み出す場合について説明した。一方、書き込みの場合、すなわちL1キャッシュの特定キャッシュラインのデータが主記憶と不一致状態であり、そのキャッシュラインをL1キャッシュから追い出す際にも、外部メモリには、遅延が生じる。この場合も、読み出しの場合同様、Rowアドレスのオープンをした後に、COLアドレス、コマンド発行となるため、この間の時間が遅延時間となり、L1キャッシュからのキャッシュラインの追い出しが遅延させられることになる。
そこで、本発明の実施の形態2では、L1キャッシュからの追い出しの最初の部分のみをL2キャッシュに取り込むものについて説明する。これにより、DRAMのレイテンシを隠蔽する。DRAMは1ページ分のデータを循環して書き込むことができるので、L2キャッシュに取り込んだデータはL1キャッシュからのデータの書き込み後に、連続してDRAMに書き込む。したがって、本発明におけるL2キャッシュに格納されたデータは、常にDRAMメモリと一致した状態を維持し、L2キャッシュのエントリの追い出しによる書き戻しは発生しない。これらの処理により、L1キャッシュの書き戻し時にも外部メモリの遅延を隠蔽することが可能になる。
つまり、本発明の実施の形態2にかかる制御部は、特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第2メモリへ書き込むと共に、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第3メモリへ書き込み、当該第3メモリへの書き込み後、前記第2メモリへ書き込まれた一部のデータを前記第3メモリへ書き込む。これにより、第2メモリ(例えば、L2キャッシュ)への書き込みが完了する前に第3メモリへの書き込みを開始しており、第2メモリと第3メモリの同期が速くなる。尚、本発明の実施の形態2にかかるメモリ制御装置の構成は、図1と同等であるため、図示及び説明を省略する。
本発明の実施の形態2にかかるデータ書込処理における全体の流れは、上述した図2と同等であるため、以下では、L2キャッシュヒット処理及びL2キャッシュミス処理について説明する。
図12は、本発明の実施の形態2にかかるL2キャッシュヒット処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141は、L2がキャッシュヒットである旨及びSDRAM16における書き込み対象アドレスを部分データアレイ132のデータ列あたりのデータ数の直後を示す値とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレス+L2サイズに基づきColWrite要求を発行する(S211)。これと並行して、L2HIT/MISS判定部141は、L2キャッシュ13に先頭データを書き込む(S213)。ここで、書き込むデータ数は、分データアレイ132のデータ数分である。また、ステップS211後、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に後続データを書き込む(S212)。
その後、L2HIT/MISS判定部141は、L2キャッシュ16から先頭データを読み出す(S214)。そして、シーケンサ151は、SDRAM16にL2キャッシュ13からの先頭データを書き込む(S215)。
図13は、本発明の実施の形態2にかかるL2キャッシュミス処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141は、L2がキャッシュミスである旨及びSDRAM16における書き込み対象アドレスをデータ列あたりの先頭とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレスに基づきColWrite要求を発行する(S221)。続いて、シーケンサ151は、SDRAM16に全データを書き込む(S222)。
ここで、図14は、本発明の実施の形態2にかかるL2キャッシュヒット時の効果を説明する図である。L1キャッシュにおいて追い出しが発生した場合、まず、プロセッサコア11は、L2HIT/MISS判定部141及びシーケンサ151に対してデータ書き込みに関するアクセス要求x1を発行する。そして、L2キャッシュヒットであれば、L2キャッシュ13にデータ群WD1が書き込まれる。一方、並行してSDRAM16に対してRowOpen要求及びD4からのColWrite要求が発行され、RASレイテンシT2+CASレイテンシT3の経過後に、データ群WD2が書き込まれる。そして、データ群WD2の書き込みが完了する前にL2キャッシュ13からデータ群WD1が読み出され、データ群WD2の書き込み完了後に続けてデータ群WD3が書き込まれる。ここで、データ群WD3は、L2キャッシュ13から読み出されたデータ群WD1である。
<発明の実施の形態3>
IPコアの一形態である汎用のマイクロプロセッサの中には、キャッシュミスにおける遅延時間短縮のため、必要なデータを最初に転送するようにして、そのデータの到着次第、キャッシュミスが完全に解消していなくても処理を再開するCritical Word First転送を備えたものがある。上述したL2キャッシュ13は、L1キャッシュラインの一部分をキャッシングするものであるが、このような場合には、先頭の数サイクル分だけを保持することに限定する必要はない。ここで、IPコアにおいて、L1キャッシュミスを引き起こすデータ参照のパターンは、再現性がある場合も多い。したがって、Critical Word First転送によるデータ転送のパターンは同じように繰り返される場合もある。よって、本発明の実施の形態3にかかるL2キャッシュ13aに格納されるデータの位置を、この最初に転送される一部分にすることによって、本発明によるレイテンシ短縮の効果を得ることができる。
つまり、第2メモリは、前記一部のデータについての前記データ列内でのデータ位置を示す部分タグ情報をさらに格納し、前記制御部は、データ列内で優先して出力すべき特定のデータ位置の指定を含むアクセス要求に応じて、前記ヒット判定において前記部分タグ情報が当該指定されたデータ位置に該当する場合にキャッシュヒットと判定し、前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記部分タグ情報に対応する前記一部のデータを前記第2メモリから読み出して前記先頭データとする。これにより、Critical Word First転送であっても同様の効果を得ることができる。
図15は、本発明の実施の形態3にかかるメモリ制御装置1aの構成を示すブロック図である。尚、本発明の実施の形態3にかかるメモリ制御装置1aの構成のうち、図1と同等のものについては同一の符号を付し、図示及び説明を省略する。L2キャッシュ13aは、L2キャッシュ13に加えて、部分タグ133が追加されている。これは、部分データアレイ132がアクセス要求x1にかかるデータ列のうちどの部分に相当するデータを格納しているかを示すものである。
図16は、本発明の実施の形態3にかかるデータ読出処理の流れを示すフローチャートである。ここでは、読み出し要求に対してL1キャッシュ12においてキャッシュミスが発生した場合について説明する。つまり、プロセッサコア11からL2HIT/MISS判定部141及びシーケンサ151に対してアクセス要求x1が発行された場合となる。
まず、L2HIT/MISS判定部141aは、アクセス要求x1に応じてL2キャッシュ13aのタグ照合及び部分タグ照合を行う(S301)。このとき並行して、シーケンサ151は、SDRAM16に対して、上位アドレスに基づきRowOpen要求を発行する(S302)。
次に、L2HIT/MISS判定部141aは、L2キャッシュがヒットしたか否かを判定する(S303)。ヒットした場合、L2キャッシュヒット処理を行う(S304)。また、ミスした場合、L2キャッシュミス処理を行う(S305)。
図17は、本発明の実施の形態3にかかるL2キャッシュヒット処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141aは、L2がキャッシュヒットである旨及びSDRAM16における読出し対象アドレスを部分データアレイ132のデータ列あたりのデータ数の直後を示す値とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレス+L2サイズに基づきColRead要求を発行する(S311)。これと並行して、L2HIT/MISS判定部141a及びシーケンサ151を経由して転送回数カウンタ142は、応答データセレクタ143の出力を、L2キャッシュ13に切り替える(S312)。そして、L2HIT/MISS判定部141aは、L2キャッシュ13aから要求データを供給する(S313)。つまり、アクセス要求x1で指定されたデータ位置をL2HIT/MISS判定部141aは、該当する部分タグ133に対応する一部のデータを読み出して、応答データセレクタ143へ出力する。応答データセレクタ143は、応答データx5の先頭データをプロセッサコア11へ出力する。
その後、転送回数が"4"に達したとき、転送回数カウンタ142は、応答データセレクタ143の出力をSDRAM16に切り替える(S314)。そして、SDRAM16から要求データの後続データを供給する(S315)。最後に、シーケンサ151は、SDRAM16に対して先頭データの転送中止要求する(S316)。
図18は、本発明の実施の形態3にかかるL2キャッシュミス処理の流れを示すフローチャートである。まず、L2HIT/MISS判定部141aは、L2がキャッシュミスである旨及びSDRAM16における読出し対象アドレスをデータ列あたりの先頭とした判定結果x2をシーケンサ151及びCOLアドレス生成部153へ通知する。そして、シーケンサ151は、COLアドレス生成部153を介してSDRAM16に対して下位アドレスに基づきColRead要求を発行する(S321)。これと並行して、L2HIT/MISS判定部141a及びシーケンサ151を経由して転送回数カウンタ142は、応答データセレクタ143の出力を、SDRAM16に切り替える(S322)。
その後、SDRAM16から要求データを供給する(S323)。これと並行して、要求データをL2キャッシュ13aへ格納する(S324)。そして、部分タグ133を更新する(S325)。その後、SDRAM16から要求データの後続データを供給する(S326)。
図19は、本発明の実施の形態3にかかるL2キャッシュヒット時の効果を説明する図である。ここでは、データD8がキャッシュミスを引き起こしたデータ、すなわちCritical Wordである。L1キャッシュにデータD8を含むデータ群RD5が到着次第、IPコアは処理を再開できる。もし、L2キャッシュにデータD8を含む部分データが格納されている場合には、L2キャッシュから当該データを供給後、外部メモリからそれ以外のデータを供給するような制御を行う。
これにより、本発明の実施の形態1と同等の効果を得ることができる。しかしながら、L2キャッシュのヒット率は若干低下することも想定されるため、同じL1キャッシュエントリに位置する異なった部分データを複数のL2キャッシュエントリに格納することも可能とし、アクセスの開始アドレスに反復性が少ないものにも対応させることが考えられる。
<発明の実施の形態4>
本発明の実施の形態4では、マルチコア構成でも共有メモリとしてのSDRAMコントローラ、共有L2キャッシュとして利用する場合について説明する。図29は、関連技術にかかるマルチプロセッサにおけるメモリ制御装置2の構成を示すブロック図である。メモリ制御装置94は、IPコア211〜214と、L1キャッシュ221〜224と、L2キャッシュ943と、アービタスケジューラ9440と、L2HIT/MISS判定部9441と、応答データセレクタ9442と、SDRAMコントローラ25と、SDRAM26とを備える。
IPコア211〜214は、それぞれL1キャッシュ221〜224を備え、L1キャッシュミスの場合、アービタスケジューラ9440へアクセス要求を発行する。L2キャッシュ943は、タグ9331と、データアレイ9332とを格納している。アービタスケジューラ9440は、複数のアクセス要求を受け付け、調停を行った上で、L2HIT/MISS判定部9441に対して一つずつアクセス要求x1を発行する。
L2HIT/MISS判定部9441は、アクセス要求x1に応じてL2キャッシュ933におけるキャッシュのヒット判定を行う。この後は、アクセス要求x1から応答バス270を解したその応答データの出力を一単位として図27と同様の処理であるため、詳細な説明を省略する。
図20は、本発明の実施の形態4にかかるマルチプロセッサにおけるメモリ制御装置2の構成を示すブロック図である。メモリ制御装置2は、IPコア211〜214と、L1キャッシュ221〜224と、L2キャッシュ23と、アービタスケジューラ240と、L2HIT/MISS判定部241と、転送回数カウンタ242と、応答データセレクタ2431及び2432と、SDRAMコントローラ25と、SDRAM26とを備える。
L2キャッシュ23は、図1と同様に、タグ231と、部分データアレイ232とを格納する。ここで、図20では、図29と比べて応答データセレクタが二重化されており、それぞれ応答バス271及び272に接続されている。
つまり、図20では、L2キャッシュ23からのデータ転送とSDRAM26からのデータ転送を畳み込んで、2重に応答し、メモリ制御装置2全体のスループットを向上させることが可能である。この場合は、応答データセレクタ2431及び2432や、応答バス271及び272のように二重化することによって、同時に複数IPに異なったデータの供給を行える構成にする必要がある。
このように、本発明の実施の形態4では、図20に示すような、複数のIPコアを持ったマルチコアSoCを仮定している。この構成では、IPコア211〜214がそれぞれ独立にメモリアクセス要求を行うことができる。ここで、図20のメモリ制御装置2は、これらの要求を図21に示すようにパイプライン的にL2キャッシュと外部メモリから供給することができる。
メモリ制御装置2は、各IPコアからの要求それぞれに対して、L2キャッシュ23のヒットミスを判定し、ヒットした場合には、L2キャッシュ23から外部メモリレイテンシ分のデータを供給する。その後は外部メモリからのデータ供給となるため、L2キャッシュ23のアクセスポートには空きが生じる。
図21は、本発明の実施の形態4にかかるL2キャッシュヒット時の効果を説明する図である。図21の例では、メモリ制御装置2は、まずIPコア211の要求に応答し、L2キャッシュ23からデータD0−D3(データ群RD11)を供給する。その後、D4以降(データ群RD12)は外部メモリ(SDRAM26)からの供給となるので、IPコア212の要求に対して、L2キャッシュ23からデータD0−D3(データ群RD21)を供給することが可能となる。すなわち、IPコア211に対してデータ群RD12の供給中に、IPコア212に対しては、L2キャッシュ23の部分データアレイ232から読み出されたデータ群RD21及びSDRAM26から読み出されたデータ群RD22との供給を開始する。したがって、この時間では、外部メモリからIPコア211へ、L2キャッシュ23からIPコア212への同時データ供給が可能となる。よって、外部メモリのレイテンシを隠蔽しつつ、メモリスループットを2倍にできる。同様に、IPコア212が外部メモリ供給の際に、IPコア213がL2キャッシュ23からのデータ群RD31を供給することも可能である。
言い換えると、本発明の実施の形態4にかかる制御部は、第1のプロセッサコアから第1のアクセス要求を受け付けた後に第2のプロセッサコアから受け付けた第2のアクセス要求に応じて前記ヒット判定を行い、当該第2のアクセス要求に応じた前記ヒット判定の結果がキャッシュヒットである場合、前記第3メモリからデータを読み出して当該第1のプロセッサコアに対して出力している最中に、前記第2メモリから当該第2のアクセス要求に基づく前記一部のデータを読み出して当該第2のプロセッサコアに対して出力する。
<発明の実施の形態5>
本発明の実施の形態5では、本発明の必要最小限の構成について説明する。図22は、本発明の実施の形態5にかかるメモリ制御装置3の構成を示すブロック図である。メモリ制御装置3は、所定階層のキャッシュメモリである第1メモリ31と、第1メモリ31より少なくとも下位階層のキャッシュメモリである第2メモリ32と、第2メモリ32より少なくとも下位階層であり、第1メモリ31及び第2メモリ32に比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリ33と、第1メモリ31、第2メモリ32及び第3メモリ33に対する入出力の制御を行う制御部34と、を備える。ここで、第2メモリ32は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する。また、第3メモリ33は、複数のデータ列内の全てのデータを格納する。制御部34は、第1メモリ31においてキャッシュミスが発生した場合、第2メモリ32におけるキャッシュのヒット判定を行うと共に、第3メモリ33へのアクセスを開始する。そして、制御部34は、ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを第2メモリ32から読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを第3メモリ33から読み出して当該先頭データの後続データとして応答する。
つまり、メインメモリ(第3メモリ33)前に位置する最終段階に位置するL2キャッシュ又はラストレベルキャッシュ(LLC)(第2メモリ32)は、メインメモリ、例えば外部DRAMのアクセスレイテンシ隠蔽の役割を担う。この第2メモリ32は、リードの際もライトの際もCPUなどのIPコアのL1キャッシュ(第1メモリ31)に格納するデータの一部分のみを格納する。この一部分は、主に、キャッシュの先頭に位置するデータとなるが、基本的にアクセスが最初に行われる部分として定義され、必ずしもキャッシュの先頭に位置するデータのみを格納する訳ではない。
IPコア各々が持つL1キャッシュミスが生じた際には、同時にL2キャッシュと外部DRAMの両者にアクセスを開始する。そこで、外部DRAMのレイテンシに相当する時間はL2キャッシュから、それ以降は外部DRAMからデータをリレー的に供給することによって、L1キャッシュミスの際のメモリアクセスのレイテンシを短縮しつつ、同時にL2キャッシュに要求されるメモリ容量を削減する。
当該L2キャッシュは、リードの際もライトの際もCPUなどのIPコアのL1キャッシュに格納するデータの一部分のみを格納する。L1キャッシュミスが生じた際には、同時にL2キャッシュと外部DRAMの両者を起動し、外部DRAMのレイテンシに相当する時間はL2キャッシュから、それ以降は外部DRAMからデータをリレー的に供給する。これによりメモリアクセスのレイテンシを短縮し、ラストレベルキャッシュに要求されるメモリ容量を削減する。
このように、第2メモリにおいてキャッシュヒットした場合には、第2メモリ内の一部のデータを先頭データとし、第3メモリ内の同一のデータ列内の残りのデータをその後続データとすることで、応答データとしての整合性を取ることができる。ここで、第2メモリと第3メモリとは応答速度が異なる。第2メモリからの一部のデータについては、従来と同様に高速に応答するが、第3メモリからの残りのデータについてはレイテンシがある。そこで、第2メモリのヒット判定と同時に第3メモリのアクセスを開始することで、第3メモリの応答時間の遅れを第2メモリから一部のデータが読み出される時間により補完することができる。これにより、応答速度の異なる第2メモリと第3メモリを用いて、第2メモリのみで応答しているときと同様のレイテンシを維持できる。そして、この場合には第2メモリには最低限、キャッシュヒットしたデータ列のうち一部のデータ、つまり、応答時に先頭部分となるデータのみを格納していれば十分である。よって、第2メモリにおけるキャッシュヒット率を従来と同様に維持しつつ、格納データ量を削減できる。すなわち、第2メモリのメモリ容量を削減することができる。
尚、上述した第3メモリ33の種類は問わない。例えば、第3メモリ33は、SRAM、DRAM、HDD、フラッシュメモリ等であってもよい。
<発明の実施の形態6>
図23は、本発明の実施の形態6にかかる情報処理装置4の構成を示すブロック図である。情報処理装置4は、プロセッサコア40と、所定階層のキャッシュメモリである第1メモリ41と、第1メモリ41より少なくとも下位階層のキャッシュメモリである第2メモリ42と、第2メモリ42より少なくとも下位階層であり、第1メモリ41及び第2メモリ42に比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリ43と、第1メモリ41、第2メモリ42及び第3メモリ43に対する入出力の制御を行うメモリ制御部44と、を備える。ここで、第2メモリ42は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する。第3メモリ43は、複数のデータ列内の全てのデータを格納する。メモリ制御部44は、プロセッサコア40からのアクセス要求により第1メモリ41においてキャッシュミスが発生した場合、第2メモリ42におけるキャッシュのヒット判定を行うと共に、第3メモリ43へのアクセスを開始する。ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを第2メモリ42から読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを第3メモリ43から読み出して当該先頭データの後続データとして応答する。
本発明の実施の形態6では、2次キャッシュ(第2メモリ42)にヒットした場合には、ヒットしたデータ列のうち先頭部分のデータを2次キャッシュから出力し、その間に、残りのデータについて外部メモリ(第3メモリ43)から出力を行う。そのため、プロセッサコア40に対しては、2次キャッシュから出力されたデータと、外部メモリから出力されたデータとにより、当初1次キャッシュでミスとなったデータ列を出力することができる。そして、外部メモリは読出しに時間のかかるため、その読み出し時間分について外部メモリより読出しが高速な2次キャッシュからデータを読み出すため、データ列の全ての2次キャッシュから読み出されているかのようなレイテンシの短縮を実現できる。そして、2次キャッシュには予め各データ列の一部分のみを保持するため、2次キャッシュの容量の削減も同時に実現できる。この削減量は、2次キャッシュのタグメモリのサイズには影響ないため、2次キャッシュのヒット率も維持でき、全体としてレイテンシの短縮を実現できる。
<その他の発明の実施の形態>
本発明は、階層キャッシュメモリを備えるプロセッサおよびプロセッサや他のハードウェアIPを集積したSoC(System on a Chip)に対して適用可能である。
また、本発明のその他の実施の形態として、次のように表現することもできる。すなわち、複数のメモリ階層から構成される情報処理装置において、上位階層のメモリから、下位階層のメモリに対して読み出し要求が生じた際に、下位階層に位置する複数のメモリ階層に対して、同時に読み出し要求を行い、応答のあった順にデータを構成して、上位階層のメモリ読み出し要求に応答することを特徴とした情報処理装置。
また、上記情報処理装置において、特定のメモリ階層がそれよりも下位階層の一部のデータ階層のデータのコピーを保持しているか否かによって、下位階層のメモリアクセス順序を決定することを特徴とした情報処理装置。
さらに、上記情報処理装置において、上位階層のメモリから、下位階層のメモリに対して書き込み要求が生じた際に、下位階層のメモリにデータを注入できるタイミングまで、特定階層のメモリにデータを蓄え、前期タイミング以降は、下位階層メモリに直接データを書きこむことを特徴とし、上記特定階層のメモリから、当該データが追い出される際には、改めて下位階層のメモリにデータの一部分を書き込むことを特徴とした情報処理装置。さらにまた、上記情報処理装置において、特に下位階層のメモリがDRAMであることを特徴とした情報処理装置。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
1 メモリ制御装置
1a メモリ制御装置
11 プロセッサコア
12 L1キャッシュ
13 L2キャッシュ
13a L2キャッシュ
131 タグ
132 部分データアレイ
133 部分タグ
141 L2HIT/MISS判定部
141a L2HIT/MISS判定部
142 転送回数カウンタ
143 応答データセレクタ
15 SDRAMコントローラ
151 シーケンサ
152 ROWアドレス生成部
153 COLアドレス生成部
154 同期化バッファ
16 SDRAM
2 メモリ制御装置
211 IPコア
212 IPコア
213 IPコア
214 IPコア
221 L1キャッシュ
222 L1キャッシュ
223 L1キャッシュ
224 L1キャッシュ
23 L2キャッシュ
231 タグ
232 部分データアレイ
240 アービタスケジューラ
241 L2HIT/MISS判定部
242 転送回数カウンタ
2431 応答データセレクタ
2432 応答データセレクタ
25 SDRAMコントローラ
26 SDRAM
270 応答バス
271 応答バス
272 応答バス
x1 アクセス要求
x2 判定結果
x3 転送回数
x4 選択指示
x5 応答データ
x51 応答データ
x52 応答データ
x6 アクセス要求
RD1 データ群
RD2 データ群
RD3 データ群
RD4 データ群
RD5 データ群
RD6 データ群
RD11 データ群
RD12 データ群
RD21 データ群
RD22 データ群
RD31 データ群
RD32 データ群
3 メモリ制御装置
31 第1メモリ
32 第2メモリ
33 第3メモリ
34 制御部
4 情報処理装置
40 プロセッサコア
41 第1メモリ
42 第2メモリ
43 第3メモリ
44 メモリ制御部
T1 レイテンシ
T2 RASレイテンシ
T2a RASレイテンシ
T2b RASレイテンシ
T3 CASレイテンシ
T3a CASレイテンシ
T3b CASレイテンシ
T4 転送空きサイクル
T5 RAS発行調整サイクル
T6 転送空きサイクル
T7 転送空きサイクル
DA0 データ列
DA1 データ列
DA2 データ列
DA3 データ列
DA4 データ列
DA5 データ列
DAN データ列
L1DA データアレイ
L2DA データアレイ
L2DAa 部分データアレイ
L3DA データアレイ
L1D データ集合
L2D データ集合
L3D データ集合
L1T タグ
L2T タグ
Ls1 ラインサイズ
Ls2 ラインサイズ
Ls2a ラインサイズ
Ld1 アレイ数
Ld2 アレイ数
WD1 データ群
WD2 データ群
WD3 データ群
91 キャッシュメモリ制御装置
9101 コア
9102 制御部
9103 WBDQ
9104 MIDQ
9105 セレクタ
9106 データメモリ
9107 セレクタ
9108 セレクタ
9109 データバス
9110 MIポート
9111 セレクタ
9112 タグメモリ
9113 MIバッファ
9114 MODQ
9115 MAC
LO ライン
921 プロセッサコア
922 SRAM
923 下層ダイ
924 DRAM
925 上層ダイ
93 メモリ制御装置
931 プロセッサコア
932 L1キャッシュ
933 L2キャッシュ
9331 タグ
9332 データアレイ
9341 L2HIT/MISS判定部
9342 応答データセレクタ
935 SDRAMコントローラ
9351 シーケンサ
9352 ROWアドレス生成部
9353 COLアドレス生成部
9354 同期化バッファ
936 SDRAM
94 メモリ制御装置
943 L2キャッシュ
9440 アービタスケジューラ
9441 L2HIT/MISS判定部
9442 応答データセレクタ
945 SDRAMコントローラ
946 SDRAM

Claims (12)

  1. 所定階層のキャッシュメモリである第1メモリと、
    前記第1メモリより少なくとも下位階層のキャッシュメモリである第2メモリと、
    前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリと、
    前記第1メモリ、前記第2メモリ及び前記第3メモリに対する入出力の制御を行う制御部と、を備え、
    前記第2メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
    前記第3メモリは、前記複数のデータ列内の全てのデータを格納し、
    前記制御部は、
    前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行うと共に、前記第3メモリへのアクセスを開始し、
    前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する
    メモリ制御装置。
  2. 前記一部のデータは、前記第3メモリにおけるアクセス開始から最初のデータが読み出されるまでの間に、前記第2メモリから読み出し続けられるデータ量であることを特徴とする請求項1に記載のメモリ制御装置。
  3. 前記第2メモリは、各データ列の全てのデータを格納した場合に比べて多くのデータ列についての前記一部のデータを格納することを特徴とする請求項1又は2に記載のメモリ制御装置。
  4. 前記第3メモリは、アクセスを開始するための第1要求と、前記データ列内で当該アクセスにおける読み出し対象のデータ位置を指定する第2要求とに基づいてデータを読み出すものであり、
    前記制御部は、
    前記第2メモリにおける前記ヒット判定と同時に、前記第3メモリに対して前記第1要求を発行し、
    前記ヒット判定の結果がキャッシュヒットである場合、前記第3メモリに対して、当該キャッシュヒットに該当するデータ列のうち前記一部のデータ以後のデータを前記データ位置として指定して前記第2要求を発行し、
    前記ヒット判定の結果がキャッシュミスである場合、前記第3メモリに対して、当該キャッシュミスに該当するデータ列の全てを前記データ位置として指定して前記第2要求を発行する
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリ制御装置。
  5. 前記制御部は、
    特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第2メモリへ書き込むと共に、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第3メモリへ書き込み、
    当該第3メモリへの書き込み後、前記第2メモリへ書き込まれた一部のデータを前記第3メモリへ書き込む
    ことを特徴とする請求項1乃至4のいずれか1項に記載のメモリ制御装置。
  6. 前記第2メモリは、前記一部のデータについての前記データ列内でのデータ位置を示す部分タグ情報をさらに格納し、
    前記制御部は、
    データ列内で優先して出力すべき特定のデータ位置の指定を含むアクセス要求に応じて、前記ヒット判定において前記部分タグ情報が当該指定されたデータ位置に該当する場合にキャッシュヒットと判定し、
    前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記部分タグ情報に対応する前記一部のデータを前記第2メモリから読み出して前記先頭データとし、
    ことを特徴とする請求項1乃至5のいずれか1項に記載のメモリ制御装置。
  7. 前記制御部は、
    第1のプロセッサコアから第1のアクセス要求を受け付けた後に第2のプロセッサコアから受け付けた第2のアクセス要求に応じて前記ヒット判定を行い、
    当該第2のアクセス要求に応じた前記ヒット判定の結果がキャッシュヒットである場合、前記第3メモリからデータを読み出して当該第1のプロセッサコアに対して出力している最中に、前記第2メモリから当該第2のアクセス要求に基づく前記一部のデータを読み出して当該第2のプロセッサコアに対して出力する
    ことを特徴とする請求項1乃至6のいずれか1項に記載のメモリ制御装置。
  8. 前記第3メモリは、DRAMであることを特徴とする請求項1乃至7のいずれか1項に記載のメモリ制御装置。
  9. 所定階層のキャッシュメモリである第1メモリと、
    前記第1メモリより少なくとも下位階層のキャッシュメモリであり、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する第2メモリと、
    前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長く、前記複数のデータ列内の全てのデータを格納する第3メモリと、
    を備えるメモリ制御装置におけるメモリ制御方法であって、
    前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行い、
    前記ヒット判定と共に、前記第3メモリへのアクセスを開始し、
    前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する
    メモリ制御方法。
  10. プロセッサコアと、
    所定階層のキャッシュメモリである第1メモリと、
    前記第1メモリより少なくとも下位階層のキャッシュメモリである第2メモリと、
    前記第2メモリより少なくとも下位階層であり、前記第1メモリ及び前記第2メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第3メモリと、
    前記第1メモリ、前記第2メモリ及び前記第3メモリに対する入出力の制御を行うメモリ制御部と、を備え、
    前記第2メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
    前記第3メモリは、前記複数のデータ列内の全てのデータを格納し、
    前記メモリ制御部は、
    前記プロセッサコアからのアクセス要求により前記第1メモリにおいてキャッシュミスが発生した場合、前記第2メモリにおけるキャッシュのヒット判定を行うと共に、前記第3メモリへのアクセスを開始し、
    前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第2メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第3メモリから読み出して当該先頭データの後続データとして応答する
    情報処理装置。
  11. 第1キャッシュメモリと、
    少なくとも前記第1キャッシュメモリの下位階層である第2キャッシュメモリと、
    少なくとも前記第1キャッシュメモリの下位階層である外部メモリと、を備え、
    前記第2キャッシュメモリにおけるキャッシュのヒット判定結果がキャッシュヒットである場合、当該第2キャッシュメモリと前記外部メモリとを同一階層のメモリとし、
    前記ヒット判定結果がキャッシュミスである場合、前記外部メモリを前記第2キャッシュメモリの下位階層とする
    メモリ制御装置。
  12. 3以上のメモリ階層を有するメモリ制御装置であって、
    上位階層のキャッシュメモリにおいてキャッシュミスであった場合に、当該キャッシュメモリより下位階層である複数の階層のメモリに対して同時にアクセス要求を行い、
    データの応答があった順番に応じて前記アクセス要求に対する応答データとする
    メモリ制御装置。
JP2012009186A 2012-01-19 2012-01-19 メモリ制御装置及び制御方法並びに情報処理装置 Expired - Fee Related JP5791529B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012009186A JP5791529B2 (ja) 2012-01-19 2012-01-19 メモリ制御装置及び制御方法並びに情報処理装置
US13/745,781 US20130191587A1 (en) 2012-01-19 2013-01-19 Memory control device, control method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012009186A JP5791529B2 (ja) 2012-01-19 2012-01-19 メモリ制御装置及び制御方法並びに情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015153853A Division JP2016006662A (ja) 2015-08-04 2015-08-04 メモリ制御装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2013149091A true JP2013149091A (ja) 2013-08-01
JP5791529B2 JP5791529B2 (ja) 2015-10-07

Family

ID=48798200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012009186A Expired - Fee Related JP5791529B2 (ja) 2012-01-19 2012-01-19 メモリ制御装置及び制御方法並びに情報処理装置

Country Status (2)

Country Link
US (1) US20130191587A1 (ja)
JP (1) JP5791529B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150019788A (ko) * 2013-08-16 2015-02-25 에스케이하이닉스 주식회사 캐시 장치 및 그 제어 방법
WO2017023659A1 (en) * 2015-08-03 2017-02-09 Marvell World Trade Ltd. Method and apparatus for a processor with cache and main memory
US10198376B2 (en) * 2015-08-03 2019-02-05 Marvell World Trade Ltd. Methods and apparatus for accelerating list comparison operations
CN109660819A (zh) * 2017-10-10 2019-04-19 ***通信有限公司研究院 基于移动边缘计算的业务缓存方法、装置及服务基站
WO2021223098A1 (en) * 2020-05-06 2021-11-11 Alibaba Group Holding Limited Hierarchical methods and systems for storing data
KR20230011595A (ko) * 2021-07-14 2023-01-25 에스케이하이닉스 주식회사 시스템 및 시스템의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61273644A (ja) * 1985-05-30 1986-12-03 Fujitsu Ltd 磁気デイスク装置アクセス方式
JPH02188848A (ja) * 1989-01-17 1990-07-24 Fujitsu Ltd バッファメモリ方式を使用したデータ処理方式
JP2004520643A (ja) * 2000-11-30 2004-07-08 モーセッド・テクノロジーズ・インコーポレイテッド メモリシステムでの待ち時間を減じるための方法および装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587964B1 (en) * 2000-02-18 2003-07-01 Hewlett-Packard Development Company, L.P. Transparent software emulation as an alternative to hardware bus lock
US6832294B2 (en) * 2002-04-22 2004-12-14 Sun Microsystems, Inc. Interleaved n-way set-associative external cache
US20080010417A1 (en) * 2006-04-28 2008-01-10 Zeffer Hakan E Read/Write Permission Bit Support for Efficient Hardware to Software Handover
US7908439B2 (en) * 2007-06-25 2011-03-15 International Business Machines Corporation Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US8261019B2 (en) * 2009-02-13 2012-09-04 Oracle America, Inc. Conveying critical data in a multiprocessor system
US8683160B2 (en) * 2011-06-22 2014-03-25 International Business Machines Corporation Method and apparatus for supporting memory usage accounting

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61273644A (ja) * 1985-05-30 1986-12-03 Fujitsu Ltd 磁気デイスク装置アクセス方式
JPH02188848A (ja) * 1989-01-17 1990-07-24 Fujitsu Ltd バッファメモリ方式を使用したデータ処理方式
JP2004520643A (ja) * 2000-11-30 2004-07-08 モーセッド・テクノロジーズ・インコーポレイテッド メモリシステムでの待ち時間を減じるための方法および装置

Also Published As

Publication number Publication date
JP5791529B2 (ja) 2015-10-07
US20130191587A1 (en) 2013-07-25

Similar Documents

Publication Publication Date Title
US11221772B2 (en) Self refresh state machine mop array
KR102442078B1 (ko) 고속 메모리 인터페이스들을 위한 명령 중재
US8412885B2 (en) Searching a shared cache by using search hints and masked ways
CN109863481B (zh) 用于平台裕度调节和调试的软件模式寄存器访问
JP5791529B2 (ja) メモリ制御装置及び制御方法並びに情報処理装置
WO2009005694A1 (en) Cache memory having configurable associativity
KR102615693B1 (ko) Dram을 위한 리프레시 관리
EP3270294B1 (en) Command arbitration for high-speed memory interfaces
KR20230158571A (ko) 멀티-큐 메모리 컨트롤러를 위한 크레딧 스킴
KR20240022655A (ko) 하이브리드 dram/영구 메모리 채널 중재 기능을 갖는 메모리 제어기
KR20230160854A (ko) 메모리 제어기 전력 상태들
JP2016006662A (ja) メモリ制御装置及び制御方法
US11756606B2 (en) Method and apparatus for recovering regular access performance in fine-grained DRAM
Fang Architecture support for emerging memory technologies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150804

R150 Certificate of patent or registration of utility model

Ref document number: 5791529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees