[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPWO2015064048A1 - 情報処理装置、データキャッシュ装置、情報処理方法、データキャッシュ方法およびプログラム - Google Patents

情報処理装置、データキャッシュ装置、情報処理方法、データキャッシュ方法およびプログラム Download PDF

Info

Publication number
JPWO2015064048A1
JPWO2015064048A1 JP2015544783A JP2015544783A JPWO2015064048A1 JP WO2015064048 A1 JPWO2015064048 A1 JP WO2015064048A1 JP 2015544783 A JP2015544783 A JP 2015544783A JP 2015544783 A JP2015544783 A JP 2015544783A JP WO2015064048 A1 JPWO2015064048 A1 JP WO2015064048A1
Authority
JP
Japan
Prior art keywords
data
request
cache
read
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015544783A
Other languages
English (en)
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
Publication of JPWO2015064048A1 publication Critical patent/JPWO2015064048A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • 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/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/465Structured object, e.g. database record

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

大容量のデータを高速に扱うことが可能な情報処理装置を実現する。キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備え、前記データキャッシュ装置は、情報処理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする情報処理装置。

Description

本発明は、情報処理装置、データキャッシュ装置、情報処理方法およびデータキャッシュ方法に関する。
近年、大量のデータに対応し、高速にデータを処理する情報処理装置の需要が高まっている。しかし、データをハードディスクなどの外部記憶装置上に蓄えたデータベース製品は、ディスクアクセスが低速である。したがって、近年では、データをハードディスクではなく、メインメモリのようなメモリ上に蓄えることで高速にデータ処理を行う情報処理装置(memcached等のインメモリデータベースシステム)が活用されている。
例えば、特許文献1には、負荷分散システムにおいて、エンドユーザのコンテント要求をコンテンツプロバイダの何れのミラーサイトが受信すべきかを、決定する方法が記載されている。
また、特許文献2には、キャッシュサーバをネットワーク全体に設置して、ドキュメント要求がルーチンググラフに沿って中間ノードで実行できる場合、中間ノードがクライアントにキャッシュドキュメントを返送する方法が記載されている。
特許第4690628号公報 特表2001−526814号公報
Michaela Blott, Kimon Karras, Ling Liu, Kees Vissers, Jeremia Baer, Zsolt Istvan, "Achieving 10Gbps Line-rate Key-value Stores with FPGAs", HotCloud'13, San Jose, CA, June 2013 John L. Hennessy, David A. Patterson, "Computer Architecture, Fifth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)", Morgan Kaufmann Publishers, 2011年9月
メモリ上でデータを扱うインメモリ型情報処理装置は、ネットワークから入力される読出し/書込み要求に対して、大容量メモリを利用してデータを処理する、例えば、CPU(Central Processing Unit)に実装されたデータ処理部を備えている。また、上記インメモリ型情報処理装置より高速化された情報処理装置は、上記データ処理部を、通常のサーバとは異なり、CPUとは異なるデバイス上に実装する。このCPUとは異なるデバイスとは、FPGA(Field Programmable Gate Array)やメニーコアプロセッサ等である。これにより、この情報処理装置は、CPUよりも高速に、ネットワークから入力される読出し/書込み要求を処理する(例えば、非特許文献1)。
しかしながら、上記構成では、通常のサーバとは異なり、特殊なデバイスを搭載したボード上での実装となる。そのため、該ボードの制限等により、扱うことのできるデータ量が小容量に限られる。よって、大量のデータをインメモリ上で扱うことができない。
また、特許文献1および2の方法では、データの書込みには対応していない。さらに、上記方法では、データをキャッシュする際に使用されるアクセスプロトコル(URL(Uniform Resource Locator)等)が、大容量メモリとは異なる。また、同様のデータ配置の仕組みとして、マイクロプロセッサのキャッシュ(例えば、非特許文献2)も知られているが、マイクロプロセッサのキャッシュメモリと大容量メモリとで、アクセスプロトコルが異なる。
したがって、インメモリ型情報処理装置に関して、高速に、大容量のデータを扱うことが難しいという問題があった。
本発明は、上記課題に鑑みてなされたものであり、その目的は、大容量のデータを高速に扱うことが可能な情報処理装置を実現することにある。
本発明の一態様に係る情報処理装置は、キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備え、前記データキャッシュ装置は、情報処理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む。
本発明の一態様に係るデータキャッシュ装置は、キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置であって、前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む。
本発明の一態様に係る情報処理方法は、キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備える情報処理装置の情報処理方法であって、前記情報処理装置の外部から読出し要求または書込み要求を受信し、前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む。
本発明の一態様に係るデータキャッシュ方法は、キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置のデータキャッシュ方法であって、前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信し、前記受信した要求が書込み要求であるとき、所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記受信した要求が読出し要求であるとき、所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む。
本発明によれば、大容量のデータをより高速に扱うことが可能となる。
本発明の第1の実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 読出し/書込み要求および読出し/書込み応答のデータ構造の一例について説明するための図である。 本発明の第1の実施の形態に係るデータキャッシュ装置のアクセラレータの機能構成の一例を示す機能ブロック図である。 本発明の第1の実施の形態に係るデータキャッシュ制御部の機能構成の一例を示す機能ブロック図である。 本発明の第1の実施の形態に係るテーブル記憶部に記憶された管理テーブルの一例を示す図である。 本発明の第1の実施の形態に係るデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 書込み要求または読出し要求がデータキャッシュ装置で扱う要求ではない場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 読出し要求がデータキャッシュ装置で扱う要求であり、かつ、読出し要求に対応するデータが小容量メモリに存在する場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 読出し要求がデータキャッシュ装置で扱う要求であり、且つ、読出し要求に対応するデータが小容量メモリに存在しない場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 図9の場合において、小容量メモリの空き領域の大きさが上記読出し要求によって読み出されたデータのデータ長より小さい場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 書込み要求がデータキャッシュ装置で扱う要求であり、かつ、書込み要求に対応するデータが小容量メモリに存在する場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 書込み要求がデータキャッシュ装置で扱う要求であり、書込み要求に対応するデータが小容量メモリに存在しない場合におけるデータキャッシュ装置の処理の流れの一例を示すフローチャートである。 書込み要求がデータキャッシュ装置で扱う要求であり、書込み要求に対応するデータが小容量メモリに存在しない場合におけるデータキャッシュ装置の処理の流れの他の一例を示すフローチャートである。 本発明の第2の実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 本発明の第2の実施の形態に係るデータキャッシュ装置のアクセラレータの機能構成の一例を示す機能ブロック図である。 本発明の第2の実施の形態に係るデータキャッシュ制御部の機能構成の一例を示す機能ブロック図である。 本発明の第2の実施の形態に係る管理テーブルの一例を示す図である。 本発明の第3の実施の形態に係る情報処理装置の構成の一例を示すブロック図である。 本発明の第4の実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 本発明の第4の実施の形態に係るデータキャッシュ装置の第2のアクセラレータの機能構成の一例を示す機能ブロック図である。 本発明の第4の実施の形態に係るデータキャッシュ装置の第2のアクセラレータの処理の流れの一例を示す図である。
<第1の実施の形態>
以下に、本発明の第1の実施の形態について、図面を参照して詳細に説明する。
(情報処理装置100)
図1は、本発明の第1の実施の形態に係る情報処理装置100のハードウェア構成の一例を示すブロック図である。図1に示すように、情報処理装置100は、データキャッシュ装置101、インメモリ型情報処理装置102および通信I/F(インタフェース)103を備えている。データキャッシュ装置101は、アクセラレータ1と、小容量メモリ2とを備えている。インメモリ型情報処理装置102は、一般的なサーバに備えられるCPU(Central Processing Unit)4と、上記小容量メモリ2より容量が大きい大容量メモリ5と、を備えている。本実施の形態におけるインメモリ型情報処理装置102は、大容量メモリ5を内蔵するデータベース管理サーバ装置として機能する。
通信I/F103は、ネットワークからの読出し/書込み要求を受信し、アクセラレータ1に供給する。また、アクセラレータ1から供給された上記読出し/書込み要求に対する読出し/書込み応答をネットワークに返す。
アクセラレータ1は、小容量メモリ2に接続しており、CPU4とデータ、読出し/書込み要求などの送受信を行う。アクセラレータ1は、FPGA、メニーコアプロセッサ等で実現される。アクセラレータ1は、通信I/F103が受信した読出し/書込み要求を受信する。また、アクセラレータ1は、読出し/書込み応答を通信I/F103に返す。アクセラレータ1の機能構成については、図面を変えて説明する。
CPU4は、大容量メモリ5を活用した、いわゆるインメモリ型のデータベース管理システムに相当するデータ管理部を備えている。CPU4のデータ管理部は、アクセラレータ1から読出し/書込み要求を受理し、対応する処理を行う。そして、CPU4は、読出し/書込み応答をアクセラレータ1に返す。本実施の形態に係るCPU4は、一般的なCPUであるため、詳細な説明を省略する。
ここで、読出し/書込み要求および読出し/書込み応答のデータ構造について説明する。図2は、読出し/書込み要求および読出し/書込み応答のデータ構造の一例について説明するための図である。図2に示す通り、書込み要求#10は、要求種別である「SET」と、属性名と、固有データと、保持期間と、データ長と、データとから構成される。属性名は、データを参照するためのものであり、小容量メモリ2または大容量メモリ5にデータを格納する際、該データを特定するための一意的な情報である。属性名は、例えば、ID(identifier)などの識別子によって表される。
固有データは、要求の一意性を保証するものである。保持期間は、格納したデータを保持する期間を示すものである。データ長は、書込み対象のデータの長さを示す。以降、書込み対象のデータを「書込みデータ」と呼ぶ。
書込み要求#10に対する応答である書込み応答#15は、応答情報を含んでいる。応答情報とは、上記書込み要求#10による書込みが正常に終了したか否かを示す情報である。
読出し要求#20は、要求種別である「GET」と、属性名とから構成される。読出し要求#20に対する読出し応答#25は、応答種別である「VALUE」と、前記読出し要求#20に対応する属性名と、固有データと、データ長と、データと、を含む。固有データは、前記読出し要求#20に対応する属性名を含んだ書込み要求#10に含まれる固有データに相当する。
なお、書込み要求#10、読出し要求#20の属性名は1つしか含んでいないが、複数に拡張することが可能である。その場合、読出し応答#25は、属性名毎に複数の応答を含む。
なお、図2に示した書込み要求#10、書込み応答#15、読出し要求#20および読出し応答#25のデータ構造は一例であり、これに限定されるものではない。
(アクセラレータ1)
次に、図3を参照して、データキャッシュ装置101のアクセラレータ1について説明する。図3は、データキャッシュ装置101のアクセラレータ1の機能構成の一例を示す機能ブロック図である。
アクセラレータ1は、高速にネットワークからの要求を処理するデータキャッシュ部10を備えている。データキャッシュ部10は、図3に示すように、コマンド解釈部11、データキャッシュ制御部12、データ読出し部13、データ書込み部14、リフィル制御部15およびコマンド応答部16を備えている。
コマンド解釈部11は、読出し/書込み要求を通信I/F103から受信し、受信した要求を解釈することにより、該要求がデータキャッシュ装置101で処理する要求であるか否かを判定する判定手段である。データキャッシュ装置101で処理する要求であるか否かの判定は、例えば、読出し要求#20および書込み要求#10に含まれる属性名に含まれる文字列、書込み要求#10に含まれるデータ長などに基づいて行う。なお、判定の基準となるものはこれに限定されるものではない。コマンド解釈部11は、受信した要求がデータキャッシュ装置101で処理する要求であると判定した場合、該要求をデータキャッシュ制御部12に供給する。一方、コマンド解釈部11は、受信した要求がデータキャッシュ装置101で処理する要求ではないと判定した場合、該要求をリフィル制御部15へ供給する。
これにより、データキャッシュ装置101は、受信した要求を適した装置で処理するよう制御することができる。したがって、データキャッシュ装置101で処理すべきデータをインメモリ型情報処理装置102に供給することなく、データキャッシュ装置101で処理することができるため、より好適にデータ処理の高速化を実現することができる。
データキャッシュ制御部12は、コマンド解釈部11がデータキャッシュ装置101で処理する要求であると判定した要求を、コマンド解釈部11から受け取る。データキャッシュ制御部12は、受け取った書込み要求#10に含まれる書込み対象となるデータ、または、受け取った読出し要求#20によって読出し対象となるデータが、小容量メモリ2に存在するか否かを確認する。
なお、以下では、「書込み要求#10に含まれる書込み対象となるデータ」、および、「読出し要求#20によって読出し対象となるデータ」をそれぞれ、「書込み要求#10に対応するデータ」および「読出し要求#20に対応するデータ」とも呼ぶ。また、読出し要求#20によって読み出されたデータを、「読出しデータ」とも呼ぶ。
データキャッシュ制御部12は、各要求に対応するデータが小容量メモリ2に存在する場合、各要求に従って、データ読出し部13またはデータ書込み部14に対して読出し指示または書込み指示を行う。
また、データキャッシュ制御部12は、書込み要求#10に対応する書込みデータが小容量メモリ2に存在しない場合、小容量メモリ2の空き領域を確認し、上記空き領域の大きさと、上記書込みデータのデータ長とを比較する。
そして、データキャッシュ制御部12は、上記データ長が上記空き領域の大きさ以下の場合、書込み要求#10に従って、データ書込み部14に対して書込み指示を行う。
また、データキャッシュ制御部12は、読出し要求#20に対応するデータが小容量メモリ2に存在しない場合、該読出し要求#20をリフィル制御部15に転送する。そして、データキャッシュ制御部12は、リフィル制御部15から上記読出し要求#20に対応する読出しデータを受信し、該読出しデータのデータ長と、小容量メモリ2の上記空き領域の大きさとを比較する。
そして、データキャッシュ制御部12は、上記データ長が上記空き領域の大きさ以下の場合、上記読出し要求#20に従って読み出されたデータ(読出しデータ)を小容量メモリ2に書き込むよう、データ書込み部14に対して書込み指示を行う。
また、データキャッシュ制御部12は、以下の条件を満たす場合、小容量メモリ2に格納されたデータに対し、各データの最後に参照された日時を確認し、参照度合いがより低いデータを選択する。
条件:小容量メモリ2の空き領域の大きさが書込み要求#10に含まれるデータ長または読出し要求#20に対応する読出しデータのデータ長より小さい。
そして、選択したデータを大容量メモリ5に配置するよう、リフィル制御部15に指示し、受信した要求に対応するデータを小容量メモリ2に配置するようデータ書込み部14に指示する。
また、データキャッシュ制御部12は、データ読出し部13から読出し指示に対する応答(データ読出し部13が読み出した読出しデータ)を受け取り、該応答をコマンド応答部16に供給する。また、データキャッシュ制御部12は、データ書込み部14から書込み指示に対する応答を受け取り、該応答をコマンド応答部16に供給する。
なお、データキャッシュ制御部12の詳細な構成については、図面を変えて説明する。
データ読出し部13は、データキャッシュ制御部12からの指示に基づき、小容量メモリ2から、指定された長さのデータを読み出す。データ読出し部13は、読み出したデータを読出し指示に対する応答として、データキャッシュ制御部12に供給する。
データ書込み部14は、データキャッシュ制御部12からの指示に基づき、小容量メモリ2へ、指定された長さのデータを書き込む。データ書込み部14は、データの書き込みが正常に終了したか否かを示す応答を、データキャッシュ制御部12に供給する。
リフィル制御部15は、コマンド解釈部11またはデータキャッシュ制御部12から供給された書込み要求#10または読出し要求#20を、インメモリ型情報処理装置102に送信する。
また、リフィル制御部15は、書込み要求#10または読出し要求#20に対応する応答をインメモリ型情報処理装置102から受信する。リフィル制御部15は、上記要求の要求元および受信した応答に対応する要求の要求種別(書込み要求#10か読出し要求#20か)に応じて、上記応答を、コマンド応答部16および/またはデータキャッシュ制御部12に供給する。
コマンド応答部16は、リフィル制御部15またはデータキャッシュ制御部12から供給された応答に基づき、書込み応答#15または読出し応答#25を作成し、通信I/F103に送信する。
なお、本実施の形態においては、参照度合いがより低いデータを大容量メモリ5へ配置する方法を例に説明を行うが、本発明はこれに限定されるものではない。データキャッシュ制御部12の指示により、小容量メモリ2へ配置するデータは、FIFO(First In First Out)オーダ、ランダムオーダなどの順で配置してもよい。
また、本実施の形態においては、データキャッシュ装置101が書込み要求#10を受信した際に、書込み要求#10に含まれる書込み対象となるデータが小容量メモリ2に存在しない場合には、小容量メモリ2に書き込む方法を例に説明を行うが、本発明はこれに限定されるものではない。上記場合には、データキャッシュ装置101は、インメモリ型情報処理装置102へと書込み要求#10を送信する構成であってもよい。本実施の形態では、データキャッシュ装置101のデータキャッシュ部10として、マイクロプロセッサのキャッシュ構成における設計パラメータと同等のパラメータを採用することができる。
(データキャッシュ制御部12の構成の詳細)
次に、図4を参照して、データキャッシュ制御部12の構成の詳細について説明する。図4は、データキャッシュ制御部12の詳細な機能構成を示す機能ブロック図である。図4に示す通り、データキャッシュ制御部12は、管理テーブル制御部121、データ制御部122およびテーブル記憶部123を備えている。
テーブル記憶部123は、管理テーブル124を記憶する手段である。管理テーブル124は、小容量メモリ2に記憶されているデータに対する情報を管理するためのものである。ここで、図5を参照して、管理テーブル124について説明する。図5は、テーブル記憶部123に記憶された管理テーブル124の一例を示す図である。図5に示す通り、管理テーブル124には、データの状態と、属性名と、データの先頭アドレスと、データ長とがそれぞれ対応付けられて格納されている。管理テーブル124の各行は、エントリとも呼ぶ。このように、本実施の形態に係る管理テーブル124には、状態、属性名、データの先頭アドレスおよびデータ長を1エントリとする複数のエントリが含まれている。なお、管理テーブル124の各列は、これに限定されるものではなく、データキャッシュ装置101が扱うデータを示す情報であればよい。
属性名は、データを特定するためのものであり、書込み要求#10、読出し要求#20および読出し応答#25に含まれる属性名に相当するものである。
データの先頭アドレスは、小容量メモリ2に記録されたデータの、小容量メモリ2における先頭アドレスを示している。データ長は、該データの長さを示している。状態は、データの状態を示すものであり、例えば、マイクロプロセッサのキャッシュと同様に、「インバリッド」、「クリーン」、「ダーティ」および「リフィルクリーン」で表される。
以下、データの各状態について説明する。「インバリッド」は、該状態を有したエントリが無効であることを示している。
「クリーン」は、該状態を有したエントリが有効であり、データが小容量メモリ2に存在しており、且つ、該データはインメモリ型情報処理装置102の大容量メモリ5に格納されたデータと一致している状態である。ここで、小容量メモリ2に格納されたデータと、大容量メモリ5に格納されたデータとが一致している状態とは、大容量メモリ5に格納されたデータを小容量メモリ2にキャッシュしたあとに、インメモリ型情報処理装置102にデータを渡すことなくデータを書き込んだ(更新した)ことがないことを示している。
「ダーティ」は、該状態を有したエントリが有効であり、データが小容量メモリ2に存在しており、且つ、該データはインメモリ型情報処理装置102の大容量メモリ5に格納されたデータと一致していない状態である。ここで、小容量メモリ2に格納されたデータと、大容量メモリ5に格納されたデータとが一致していない状態とは、大容量メモリ5に格納されたデータを小容量メモリ2にキャッシュしたあとに、インメモリ型情報処理装置102にデータを渡すことなくデータを書き込んだ(更新した)ことがあることを示している。
「リフィルクリーン」は、該状態を有したエントリが有効であり、データが小容量メモリ2に存在しておらず、且つ、インメモリ型情報処理装置102へ該データの読出し要求をしている状態である。
なお、データの状態は、上記4つに限定されるものではない。例えば、キャッシュを構成しうる様々な状態(非特許文献2参照)であってもよい。
このように、本実施の形態に係るデータキャッシュ装置101のデータキャッシュ制御部12は、マイクロプロセッサのキャッシュとは異なり、属性名、データの先頭アドレス、データ長等の情報を活用している。なお、本実施の形態では、キャッシュのウェイ数(データの格納候補場所)はフルアソシアティブ(任意の場所に格納可能)として説明するが、このウェイ数も、マイクロプロセッサのキャッシュのように、1から任意数まで可変にすることが可能である。
また、上記データの情報に対し、該データの状態を示す状態情報が対応付けられているため、データが有効か否か、小容量メモリ2に格納されたデータと、大容量メモリ5に格納されたデータとが一致しているか否かなどの情報を容易に確認することができる。
なお、図5の各エントリにおける各値は一例であり、これに限定されるものではない。
図4に戻り、データキャッシュ制御部12の各機能について説明する。管理テーブル制御部121は、管理テーブル124を管理する手段である。管理テーブル制御部121は、管理テーブル124のエントリを更新、または、管理テーブル124にエントリを追加する。
また、管理テーブル制御部121は、コマンド解釈部11から要求を受け取る。管理テーブル制御部121は、管理テーブル124を参照して、受け取った書込み要求#10に対応するデータ、または、受け取った読出し要求#20に対応するデータが、小容量メモリ2に存在するか否かを確認する。各要求に対応するデータが小容量メモリ2に存在するか否かの確認は、管理テーブル124に含まれるエントリのうち、状態が「クリーン」または「ダーティ」のエントリの属性名が、各要求に含まれる属性名と一致するか否かを確認することにより、行われる。このように、管理テーブル制御部121が管理テーブル124を参照することにより、読出し/書込み要求に対応するデータが小容量メモリ2に存在するか否かを、容易に確認することができる。
また、管理テーブル制御部121は、管理テーブル124を参照して、小容量メモリ2の空き領域を管理する。なお、本実施の形態において、管理テーブル制御部121は、管理テーブル124に含まれるエントリに含まれるデータの先頭アドレスおよび該データのデータ長に基づいて小容量メモリ2の空き領域の管理をすることを例に説明を行うが、本発明はこれに限定されるものではない。例えば、管理テーブル制御部121またはデータ制御部122が小容量メモリ2にアクセスし、空き領域を確認する構成であってもよい。
管理テーブル制御部121は、(1)要求種別(書込み要求#10か読出し要求#20か)、(2)要求に対応するデータが小容量メモリ2に存在するか否か、(3)各要求に対応するデータのデータ長以上の大きさの空き領域があるか否か、に応じて、データ制御部122またはリフィル制御部15に指示を発行する。
また、管理テーブル制御部121は、小容量メモリ2に格納されたデータに対し、各データの最後に参照された日時を確認し、参照度合いが低いデータを選択する。参照度合いが低いデータのエントリとは、例えば、(a)状態がインバリッドのエントリ、(b)最後に参照された日時が最も古いデータのエントリ、のうちの少なくとも何れかであるとするがこれに限定されるものではない。そして、管理テーブル制御部121は、選択したエントリのデータの先頭アドレスおよびデータ長をデータ制御部122に供給する。
なお、データキャッシュ制御部12の管理テーブル制御部121が、参照度合いが低いと判定するエントリの順は、上記(a)、(b)の順であるとするが、これに限定されるものではない。データキャッシュ制御部12の管理テーブル制御部121は、選択したエントリの情報を保存する。以降、選択したエントリを「置換対象エントリ」と呼び、該エントリに対応するデータを「置換対象データ」と呼ぶ。
なお、置換対象データの特定のために、LRU(Least Recently Used)テーブル、FIFO順序テーブル等を設けて、各データに対する付加情報を管理してもよい。置換対象データの特定のために参照する、データの参照日時の情報は、一般的なキャッシュが有する情報であるため、説明を省略する。
データ制御部122は、管理テーブル制御部121からデータの先頭アドレスおよびデータ長を供給されると、該データの先頭アドレスから該データ長分のデータを読み出す読出し指示を作成する。データ制御部122は、作成した読出し指示をデータ読出し部13に送信する。
また、データ制御部122は、管理テーブル制御部121からデータの先頭アドレス、データ長およびデータを供給されると、該データを、該データの先頭アドレスから該データ長分書き込む書込み指示を作成する。データ制御部122は、作成した書込み指示をデータ書込み部14に送信する。
データ制御部122は、データ読出し部13およびデータ書込み部14からの応答を受信する。データ制御部122は、受信した応答を、コマンド応答部16に供給する。
また、データ制御部122は、置換対象データの読出し要求#20に対する応答を受け取った場合、読み出したデータを大容量メモリ5に書き込むための書込み要求#10を作成する。データ制御部122は、作成した書込み要求#10をリフィル制御部15に送信する。
(データキャッシュ装置101の処理の流れ)
次に、図6から図13を参照して、本実施の形態に係る情報処理装置100のデータキャッシュ装置101の処理の流れについて説明する。
図6は、本実施の形態に係るデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。図6に示す通り、データキャッシュ装置101は、以下のステップS61〜S66の処理を行う。
ステップS61:コマンド解釈部11が、通信I/F103から書込み要求#10または読出し要求#20を受信する。
ステップS62:コマンド解釈部11は、ステップS61で受信した書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求か否かを判定する。上記書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求の場合(YESの場合)、ステップS63に進む。書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求ではない場合(NOの場合)、処理A(図7参照)に進む。
ステップS63:データキャッシュ制御部12が、コマンド解釈部11から供給された要求が書込み要求#10か読出し要求#20かを判定する。供給された要求が読出し要求#20の場合、ステップS64に進む。コマンド解釈部11から供給された要求が書込み要求#10の場合、ステップS65に進む。
ステップS64:データキャッシュ制御部12が、コマンド解釈部11から供給された読出し要求#20に対応するデータが小容量メモリ2に存在するか否かを確認する。具体的には、データキャッシュ制御部12の管理テーブル制御部121は、上記読出し要求#20に含まれる属性名が、管理テーブル124に含まれるか否かを確認する。上記読出し要求#20に対応するデータが小容量メモリ2に存在する場合(YESの場合)、処理B(図8参照)に進む。上記読出し要求#20に対応するデータが小容量メモリ2に存在しない場合(NOの場合)、処理C(図9参照)に進む。
ステップS65:データキャッシュ制御部12が、コマンド解釈部11から供給された書込み要求#10に対応するデータが小容量メモリ2に存在するか否かを確認する。具体的には、データキャッシュ制御部12の管理テーブル制御部121は、上記書込み要求#10に含まれる属性名が、管理テーブル124に含まれるか否かを確認する。上記書込み要求#10に対応するデータが小容量メモリ2に存在する場合(YESの場合)、処理E(図11参照)に進む。上記書込み要求#10に対応するデータが小容量メモリ2に存在しない場合(NOの場合)、ステップS66に進む。
ステップS66:データキャッシュ制御部12は、小容量メモリ2の空き領域の大きさが上記書込み要求#10に含まれるデータ長以上か否かを判定する。上記空き領域の大きさが上記データ長以上の場合(YESの場合)、処理F(図12参照)に進む。上記空き領域の大きさが上記データ長より小さい場合(NOの場合)、処理G(図13参照)に進む。
(書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求ではない場合におけるデータキャッシュ装置101の処理の流れ)
図7を参照して、書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求ではない場合におけるデータキャッシュ装置101の処理の流れについて説明する。図7は、書込み要求#10または読出し要求#20がデータキャッシュ装置101で扱う要求ではない場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。図6のステップS62にてNOの場合、コマンド解釈部11が、リフィル制御部15へ書込み要求#10または読出し要求#20を供給する。そして、図7に示す通り、データキャッシュ装置101は、以下のステップS71〜S74の処理を行う。
ステップS71:リフィル制御部15が、インメモリ型情報処理装置102へ、コマンド解釈部11から供給された書込み要求#10または読出し要求#20を送信する。
ステップS72:リフィル制御部15が、要求元のネットワーク情報を保存する。なお、ステップS72は、ステップS71と同時に行ってもよいし、ステップS71の前に行ってもよい。
ステップS73:リフィル制御部15が、インメモリ型情報処理装置102から、ステップS71にて送信した要求に対する応答を受信する。
ステップS74:該要求の要求元がネットワークに接続された他の装置であり、該要求がコマンド解釈部11から供給されたものであるため、リフィル制御部15は、ステップS72で保存したネットワーク情報と、ステップS73で受信した応答とを、コマンド応答部16に供給する。コマンド応答部16は、リフィル制御部15から受信したネットワーク情報と応答とに基づき、上記ネットワーク情報を含んだ書込み応答#15または読出し応答#25を作成し、ネットワークへ送信する。
以上により、本実施の形態に係る情報処理装置100は、データキャッシュ装置101で処理しない要求を、インメモリ型情報処理装置102で処理することができる。
(読出し要求#20がデータキャッシュ装置101で扱う要求であり、かつ、読出し要求#20に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れ)
図8を参照して、読出し要求#20がデータキャッシュ装置101で扱う要求であり、かつ、読出し要求#20に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れについて説明する。図8は、読出し要求#20がデータキャッシュ装置101で扱う要求であり、かつ、読出し要求#20に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。図8に示す通り、データキャッシュ装置101は、以下のステップS81〜S83の処理を行う。
ステップS81:データキャッシュ制御部12は、読出し要求#20に従い、データ読出し部13に対する読出し指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)〜(3)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS64において、読出し要求#20に含まれる属性名を有していると確認されたエントリにおける、データの先頭アドレスと該データのデータ長とを読み出す。
(2)データキャッシュ制御部12の管理テーブル制御部121が、管理テーブル124から読み出した上記データの先頭アドレスおよび上記データ長をデータ制御部122へ供給する。
(3)データ制御部122が、上記先頭アドレスから上記データ長分のデータを、小容量メモリ2から読み出す読出し指示を作成し、データ読出し部13へ送信する。
ステップS82:データ読出し部13が、ステップS81で作成された読出し指示に従い、小容量メモリ2からデータを読み出す。
ステップS83:コマンド応答部16は、データ読出し部13がステップS82で読み出したデータを、読出し指示に対する応答として、データキャッシュ制御部12のデータ制御部122から受け取る。そして、コマンド応答部16は、受け取った上記応答に基づき、読出し要求#20に含まれる属性名を有した読出し応答#25を作成し、要求元のネットワーク情報とともにネットワークへ送信する。
以上により、情報処理装置100は、データキャッシュ装置101で処理すると判定された読出し要求#20であり、該読出し要求#20に対応するデータが小容量メモリ2にある場合、該読出し要求#20を、該データキャッシュ装置101で処理する。
(読出し要求#20がデータキャッシュ装置101で扱う要求であり、且つ、読出し要求#20に対応するデータが小容量メモリ2に存在しない場合におけるデータキャッシュ装置101の処理の流れ)
図9を参照して、読出し要求#20がデータキャッシュ装置101で扱う要求であり、且つ、読出し要求#20に対応するデータが小容量メモリ2に存在しない場合におけるデータキャッシュ装置101の処理の流れについて説明する。図9は、読出し要求#20がデータキャッシュ装置101で扱う要求であり、且つ、読出し要求#20に対応するデータが小容量メモリ2に存在しない場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。図9に示す通り、データキャッシュ装置101は、以下のステップS90〜S99の処理を行う。
ステップS90:データキャッシュ制御部12の管理テーブル制御部121が、管理テーブル124に含まれるエントリのうち、参照度合いが低いデータのエントリを抽出する。なお、本例では、参照度合いが低いデータのエントリは、(a)状態が「インバリッド」のエントリ、(b)最後に参照された日時が最も古いデータのエントリ、の順で抽出されることを例に説明を行う。また、(b)の場合において、管理テーブル制御部121は、最後に参照された日時が最も古いデータのエントリが複数ある場合、該エントリに含まれるデータ長が最も大きいエントリを抽出してもよい。また、管理テーブル制御部121は、最後に参照された日時が所定の期間より前のデータのエントリのうち、データ長が最も大きいデータのエントリを抽出してもよい。データキャッシュ制御部12の管理テーブル制御部121は、抽出したエントリの状態を「リフィルクリーン」に更新する。以降、抽出したエントリを「置換候補エントリ」と呼ぶ。管理テーブル制御部121は、置換候補エントリの情報(属性名、データの先頭アドレスおよびデータ長)と、「リフィルクリーン」へ状態を更新する前の状態と、を保存する。
ステップS91:リフィル制御部15が、インメモリ型情報処理装置102へ、データキャッシュ制御部12から供給された読出し要求#20を送信する。
ステップS92:リフィル制御部15が、要求元のネットワーク情報を保存する。なお、ステップS92は、ステップS91と同時に行ってもよいし、ステップS91の前に行ってもよい。
ステップS93:リフィル制御部15が、インメモリ型情報処理装置102から、ステップS91にて送信した読出し要求#20に対する応答(インメモリ型情報処理装置102が読み出した読出しデータ)を受信する。そして、該要求の要求元がネットワークに接続された他の装置であり、該要求がデータキャッシュ制御部12から供給されたものであるため、リフィル制御部15は、ステップS92で保存したネットワーク情報と、受信した応答とを、コマンド応答部16およびデータキャッシュ制御部12に供給する。
ステップS94:データキャッシュ制御部12の管理テーブル制御部121が、ステップS93でリフィル制御部15から供給された応答に基づき、インメモリ型情報処理装置102が読み出したデータ(読出し要求#20に対応する読出しデータ)のデータ長以上の大きさの空き領域が小容量メモリ2にあるか否かを確認する。読出し要求#20に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にある場合(YESの場合)、ステップS96に進む。読出し要求#20に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にない場合(NOの場合)、ステップS95に進む。
ステップS95:データキャッシュ制御部12は、読出しデータのデータ長以上の大きさの空き領域が小容量メモリ2にない場合の処理を行う。この処理は、図10を用いて説明する。
ステップS96:読出しデータのデータ長以上の大きさの空き領域が小容量メモリ2にある場合(ステップS94にてYESの場合)、データキャッシュ制御部12の管理テーブル制御部121が、管理テーブル124に、新たなエントリを追加する。管理テーブル制御部121は、追加したエントリの「状態」、「属性名」、「データの先頭アドレス」および「データ長」をそれぞれ、「クリーン」、読出し要求#20に含まれる属性名、空き領域のアドレス、および、上記読出しデータのデータ長、とする。また、ステップS90で抽出した置換候補エントリの状態を、元の状態に更新する。
ステップS97:データキャッシュ制御部12は、読出しデータをデータ書込み部14に書き込む書込み指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS96で追加したエントリに含まれるデータの先頭アドレス、データ長、並びに、読出しデータをデータ制御部122へ供給する。
(2)データ制御部122は、上記先頭アドレスから上記データ長分の上記データを、小容量メモリ2に書き込む書込み指示を作成し、データ書込み部14へ送信する。
ステップS98:データ書込み部14が、ステップS97で作成された書込み指示に従い、小容量メモリ2にデータを書き込む。
ステップS99:コマンド応答部16は、リフィル制御部15から受信したネットワーク情報と応答とに基づき、上記ネットワーク情報を含んだ読出し応答#25を作成し、ネットワークへ送信する。
以上により、本実施の形態に係る情報処理装置100は、以下の(A)〜(C)を満たす場合、読出し要求#20を、データキャッシュ装置101で処理し、更に、読み出したデータを小容量メモリ2に配置する。
(A)データキャッシュ装置101で処理すると判定された読出し要求#20である、
(B)読出し要求#20に対応するデータが小容量メモリ2に存在しない、
(C)読出し要求#20に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にある。
(ステップS95におけるデータキャッシュ装置101の処理の流れ)
図10を参照して、上述したステップS95の処理の流れについて説明する。具体的には、以下の(A)〜(C)を満たす場合のデータキャッシュ装置101の処理の流れについて説明する。図10は、以下の(A)〜(C)を満たす場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートであり、図9のステップS95の詳細な処理を示すものである。
(A)読出し要求#20がデータキャッシュ装置101で扱う要求である、
(B)読出し要求#20に対応するデータが小容量メモリ2に存在しない、
(C)小容量メモリ2の空き領域の大きさが上記読出し要求#20によって読み出された読出しデータのデータ長より小さい。
図10に示す通り、データキャッシュ装置101は、以下のステップS100〜S110の処理を行う。
ステップS100:データキャッシュ制御部12は、置換候補エントリのデータ長と小容量メモリ2の空き領域の大きさとの和が、読出し要求#20に対する応答(インメモリ型情報処理装置102が読み出した読出しデータ)のデータ長以上か否かを判定する。データ長以上の場合(YESの場合)、ステップS102に進む。データ長より小さい場合(NOの場合)、ステップS101に進む。
ステップS101:データキャッシュ制御部12の管理テーブル制御部121が、ステップS90で抽出した置換候補エントリの状態を、「インバリッド」に更新し、処理を終了する。なお、管理テーブル制御部121は、上記置換候補エントリの状態を、元の状態に更新してもよい。
ステップS102:データキャッシュ制御部12の管理テーブル制御部121は、ステップS90で保存した置換候補エントリの更新前の状態が「クリーン」か否かを確認する。更新前の状態が「クリーン」の場合(YESの場合)、ステップS108に進む。更新前の状態が「クリーン」ではない場合(NOの場合)、ステップS103に進む。
ステップS103:データキャッシュ制御部12は、上記置換候補エントリを置換対象エントリとし、データ読出し部13に対する置換対象データの読出し指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS90で保存した、置換対象エントリ(置換候補エントリ)のデータの先頭アドレスと該データのデータ長とをデータ制御部122へ供給する。
(2)データ制御部122が、小容量メモリ2から、上記先頭アドレスから上記データ長分のデータを読み出す読出し指示を作成し、データ読出し部13へ送信する。
ステップS104:データ読出し部13が、ステップS103で作成された読出し指示に従い、小容量メモリ2からデータ(置換対象データ)を読み出す。
ステップS105:データキャッシュ制御部12のデータ制御部122が、データ読出し部13から、該データ読出し部13がステップS104で読み出した置換対象データを受け取る。そして、データ制御部122は、該置換対象データの書込み要求#10を作成する。
ステップS106:リフィル制御部15が、インメモリ型情報処理装置102へ、ステップS105にてデータキャッシュ制御部12のデータ制御部122が作成した置換対象データの書込み要求#10を送信する。
ステップS107:リフィル制御部15が、インメモリ型情報処理装置102から、ステップS106にて送信した書込み要求#10に対する応答を受信する。該要求の要求元がデータキャッシュ制御部12であるため、リフィル制御部15は、受信した応答を、データキャッシュ制御部12に供給する。
ステップS108:データキャッシュ制御部12の管理テーブル制御部121は、置換対象エントリの「状態」および「データ長」をそれぞれ、「クリーン」および読出し要求#20に対応するデータのデータ長とする。なお、読出し要求#20に対応するデータを書き込む際に、小容量メモリ2の空き領域の位置および置換対象データの小容量メモリ2における配置位置によって、該データの先頭アドレスが変わる場合、管理テーブル制御部121は、上記置換対象エントリの「データの先頭アドレス」を更新する。
ステップS109:データキャッシュ制御部12は、読出し要求#20に対応する読出しデータの、データ書込み部14に対する書込み指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS108で更新したエントリに含まれるデータの先頭アドレス、並びに、読み出した読出しデータおよび該データのデータ長をデータ制御部122へ供給する。
(2)データ制御部122が、小容量メモリ2に、上記先頭アドレスから上記データ長分の上記データを書き込む書込み指示を作成し、データ書込み部14へ送信する。
ステップS110:データ書込み部14が、ステップS109で作成された書込み指示に従い、小容量メモリ2にデータを書き込む。そして、図9のステップS99に進む。
なお、S107にて受信した、置換対象データの書込み要求#10に対する応答が、該書込みが正常に終了していない旨の応答である場合、データキャッシュ制御部12は、上記ステップS108〜S110をスキップする。さらに、データキャッシュ制御部12の管理テーブル制御部121は、置換対象エントリの状態を「インバリッド」にする、または、元の状態に戻す。
ステップS110の後、図9のステップS99では、上述したとおり、コマンド応答部16が、リフィル制御部15から受信したネットワーク情報と応答とに基づき、上記ネットワーク情報を含んだ読出し応答#25を作成し、ネットワークへ送信する。
以上により、本実施の形態に係る情報処理装置100は、以下の(A)〜(C)を満たす場合、読出し要求#20に対応するデータをインメモリ型情報処理装置102から読出し、読み出した読出しデータを小容量メモリ2に配置するよう、置換対象データを選択する。
(A)データキャッシュ装置101で処理すると判定された読出し要求#20である、
(B)読出し要求#20に対応するデータが小容量メモリ2に存在しない、
(C)読出し要求#20に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にない。
そして、置換対象データのデータ長と小容量メモリ2の空き領域の大きさとの和が、読出しデータのデータ長以上の場合、データキャッシュ制御部12は、読出しデータを小容量メモリ2に配置し、置換対象データを大容量メモリ5に配置する。
これにより、情報処理装置100は、参照度合いが高いデータ(例えば、読出しデータ)を、高速な小容量メモリ2に配置し、参照度合いが低いデータを大容量メモリ5に配置することができるため、より高速にデータ処理を行うことができる。
(書込み要求#10がデータキャッシュ装置101で扱う要求であり、かつ、書込み要求#10に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れ)
図11を参照して、書込み要求#10がデータキャッシュ装置101で扱う要求であり、かつ、書込み要求#10に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れについて説明する。図11は、書込み要求#10がデータキャッシュ装置101で扱う要求であり、かつ、書込み要求#10に対応するデータが小容量メモリ2に存在する場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。図11に示す通り、データキャッシュ装置101は、以下のステップS111〜S113の処理を行う。
ステップS111:データキャッシュ制御部12は、書込み要求#10に従い、データ書込み部14に対する書込み指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)〜(3)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS65において、書込み要求#10に含まれる属性名を有していると確認されたエントリにおける、データの先頭アドレスを読み出す。
(2)データキャッシュ制御部12の管理テーブル制御部121が、管理テーブル124から読み出した上記読出しデータの先頭アドレス、並びに、書込み要求#10に含まれるデータ長およびデータをデータ制御部122へ供給する。
(3)データ制御部122は、上記先頭アドレスから上記データ長分の上記データを、小容量メモリ2に書き込む書込み指示を作成し、データ書込み部14へ送信する。
ステップS112:データ書込み部14が、ステップS111で作成された書込み指示に従い、小容量メモリ2にデータを書き込む。
ステップS113:コマンド応答部16は、データ書込み部14がステップS112でデータの書込みに対する応答として、上記書込み要求#10に基づく書込みが正常に終了したか否かを示す応答情報を、データキャッシュ制御部12のデータ制御部122から受け取る。そして、コマンド応答部16は、受け取った上記応答に基づき、上記応答情報を含む書込み応答#15を作成し、要求元のネットワーク情報とともにネットワークへ送信する。
以上により、情報処理装置100は、データキャッシュ装置101で処理すると判定された書込み要求#10であり、該書込み要求#10に対応する書込みデータが小容量メモリ2に存在する場合、該書込み要求#10を該データキャッシュ装置101で処理する。
(書込み要求#10がデータキャッシュ装置101で扱う要求であり、書込み要求#10に対応するデータが小容量メモリ2に存在しない場合におけるデータキャッシュ装置101の処理の流れ(1))
図12を参照して、以下の(A)〜(C)を満たす場合のデータキャッシュ装置101の処理の流れについて説明する。図12は、以下の(A)〜(C)を満たす場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。
(A)書込み要求#10がデータキャッシュ装置101で扱う要求である、
(B)書込み要求#10に対応するデータが小容量メモリ2に存在しない、
(C)小容量メモリ2の空き領域の大きさが上記書込み要求#10に含まれるデータ長以上である。
図12に示す通り、データキャッシュ装置101は、以下のステップS121〜S124の処理を行う。
ステップS121:データキャッシュ制御部12の管理テーブル制御部121が、管理テーブル124に、新たなエントリを追加する。管理テーブル制御部121は、追加したエントリの「状態」、「属性名」、「データの先頭アドレス」および「データ長」をそれぞれ、「ダーティ」、書込み要求#10に含まれる属性名、空き領域のアドレス、および、書込み要求#10に含まれるデータ長、とする。
ステップS122:データキャッシュ制御部12は、書込み要求#10に従い、データ書込み部14に対する書込み指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS121で追加したエントリに含まれるデータの先頭アドレス、並びに、書込み要求#10に含まれるデータ長およびデータをデータ制御部122へ供給する。
(2)データ制御部122は、上記先頭アドレスから上記データ長分の上記データを、小容量メモリ2に書き込む書込み指示を作成し、データ書込み部14へ送信する。
ステップS123:データ書込み部14が、ステップS122で作成された書込み指示に従い、小容量メモリ2にデータを書き込む。
ステップS124:コマンド応答部16は、データ書込み部14によるデータの書込み(ステップS123)に対する応答として、上記書込み要求#10に対するデータの書込みが正常に終了したか否かを示す応答情報を、データキャッシュ制御部12のデータ制御部122から受け取る。そして、コマンド応答部16は、受け取った上記応答に基づき、上記応答情報を含む書込み応答#15を作成し、要求元のネットワーク情報とともにネットワークへ送信する。
なお、ステップS124において、書込み要求#10が正常に終了していない旨の応答情報である場合、データキャッシュ制御部12の管理テーブル制御部121は、ステップS121で追加したエントリを削除する。
以上により、本実施の形態に係る情報処理装置100は、以下の(A)〜(C)を満たす場合、書込み要求#10をデータキャッシュ装置101で処理する。
(A)データキャッシュ装置101で処理すると判定された書込み要求#10である、
(B)書込み要求#10に対応するデータが小容量メモリ2に存在しない、
(C)書込み要求#10に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にある。
(書込み要求#10がデータキャッシュ装置101で扱う要求であり、書込み要求#10に対応するデータが小容量メモリ2に存在しない場合におけるデータキャッシュ装置101の処理の流れ(2))
図13を参照して、以下の(A)〜(C)を満たす場合のデータキャッシュ装置101の処理の流れについて説明する。図13は、以下の(A)〜(C)を満たす場合におけるデータキャッシュ装置101の処理の流れの一例を示すフローチャートである。
(A)書込み要求#10がデータキャッシュ装置101で扱う要求である、
(B)書込み要求#10に対応するデータが小容量メモリ2に存在しない、
(C)小容量メモリ2の空き領域の大きさが上記書込み要求#10に含まれるデータ長より小さい。
図13に示す通り、データキャッシュ装置101は、以下のステップS131〜S140の処理を行う。
ステップS131:データキャッシュ制御部12は、管理テーブル124に含まれるエントリのデータ長と小容量メモリ2の空き領域の大きさとの和が書込み要求#10に含まれるデータ長以上となるデータのうち、参照度合いが低いデータのエントリを置換対象エントリとして選択する。なお、本例では、参照度合いが低いデータのエントリは、(a)状態が「インバリッド」のエントリ、(b)最後に参照された日時が最も古いデータのエントリ、の順で抽出されることを例に説明を行う。データキャッシュ制御部12の管理テーブル制御部121は、選択した置換対象エントリの情報を保存する。
ステップS132:データキャッシュ制御部12の管理テーブル制御部121は、ステップS131で選択した置換対象エントリの「状態」および「データ長」をそれぞれ、「ダーティ」および書込み要求#10に含まれるデータ長とする。なお、書込み要求#10に含まれるデータを書き込む際に、小容量メモリ2の空き領域の位置および置換対象データの小容量メモリ2における配置位置によって、該データの先頭アドレスが変わる場合について説明する。この場合、管理テーブル制御部121は、上記選択したエントリの「データの先頭アドレス」を更新する。
ステップS133:データキャッシュ制御部12は、データ読出し部13に対する置換対象データの読出し指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS131で保存した置換対象エントリのデータの先頭アドレスと該データのデータ長をデータ制御部122へ供給する。
(2)データ制御部122が、小容量メモリ2から、上記先頭アドレスから上記データ長分のデータを読み出す読出し指示を作成し、データ読出し部13へ送信する。
ステップS134:データ読出し部13が、ステップS133で作成された読出し指示に従い、小容量メモリ2からデータ(置換対象データ)を読み出す。
ステップS135:データキャッシュ制御部12は、書込み要求#10に従い、データ書込み部14に対する書込み指示を作成する。具体的には、データキャッシュ制御部12は、以下の(1)および(2)の処理を行う。
(1)データキャッシュ制御部12の管理テーブル制御部121が、ステップS132で更新したエントリに含まれるデータの先頭アドレス、並びに、書込み要求#10に含まれるデータ長およびデータをデータ制御部122へ供給する。
(2)データ制御部122が、小容量メモリ2に、上記先頭アドレスから上記データ長分の上記データを書き込む書込み指示を作成し、データ書込み部14へ送信する。
ステップS136:データ書込み部14が、ステップS135で作成された書込み指示に従い、小容量メモリ2にデータを書き込む。
ステップS137:データキャッシュ制御部12のデータ制御部122が、データ読出し部13から、該データ読出し部13がステップS134で読み出した置換対象データを受け取る。そして、データ制御部122は、該置換対象データの書込み要求#10を作成する。
ステップS138:リフィル制御部15が、インメモリ型情報処理装置102へ、ステップS137にてデータキャッシュ制御部12のデータ制御部122が作成した、置換対象データの書込み要求#10を送信する。
ステップS139:リフィル制御部15が、インメモリ型情報処理装置102から、ステップS138にて送信した書込み要求#10に対する応答を受信する。該要求の要求元がデータキャッシュ制御部12であるため、リフィル制御部15は、受信した応答を、データキャッシュ制御部12に供給する。
なお、ネットワークから受信した書込み要求#10に対する処理(ステップS135〜ステップS136)と、データキャッシュ制御部12が作成した置換対象データの書込み要求#10に対する処理(ステップS137〜ステップS139)とは、同時に行われてもよいし、どちらが先に行われてもよい。
ステップS140:コマンド応答部16が、データ書込み部14によるデータの書込み(ステップS136)に対する応答として、上記書込み要求#10に対するデータの書込みが正常に終了したか否かを示す応答情報を、データキャッシュ制御部12のデータ制御部122から受け取る。そして、コマンド応答部16は、受け取った上記応答に基づき、上記応答情報を含む書込み応答#15を作成し、要求元のネットワーク情報とともにネットワークへ送信する。
なお、置換対象データの書込み要求#10による書込みが正常に終了しなかった場合、ステップS140において、データキャッシュ制御部12は、コマンド応答部16に対して、置換対象データの書込み要求#10の異常終了を通知する。コマンド応答部16は、上記異常終了の通知を受け取ると、ネットワークから送信された書込み要求#10に対する応答として、データの書込みが正常に終了しなかった旨の応答情報を含む書込み応答#15を送信する。そして、データキャッシュ制御部12は、置換対象データおよび該置換対象データに対するエントリを、ステップS131を行う前の状態に戻す。
なお、ステップS131において、データキャッシュ制御部12の管理テーブル制御部121が、小容量メモリ2の空き領域の大きさと該データのデータ長との和が書込み要求#10に含まれるデータ長以上となるデータがないと判定した場合について説明する。この場合、データキャッシュ制御部12は、リフィル制御部15に書込み指示を転送し、データキャッシュ装置101は、ステップS71〜S74の処理を行う。なお、この場合、該要求の供給元はデータキャッシュ制御部12であるが、ステップS74と同様に、該要求に対する応答は、コマンド応答部16に供給される。
以上により、本実施の形態に係る情報処理装置100は、以下の(A)〜(C)を満たす場合、置換対象データを大容量メモリ5に配置し、書込み要求#10をデータキャッシュ装置101で処理する。これにより、情報処理装置100は、該書込み要求#10に対応するデータを小容量メモリ2に配置する。
(A)データキャッシュ装置101で処理すると判定された書込み要求#10である、
(B)書込み要求#10に対応するデータが小容量メモリ2に存在しない、
(C)書込み要求#10に対応するデータのデータ長以上の大きさの空き領域が小容量メモリ2にない。
(効果)
本実施の形態に係る情報処理装置100によれば、大容量のデータをより高速に扱うことが可能となる。
データキャッシュ装置101におけるデータキャッシュ制御部12が、外部から読出し要求または書込み要求を受信したとき、小容量メモリ2に格納されている参照度合いがより低いデータを、インメモリ型情報処理装置102の大容量メモリ5に配置する。そして、データキャッシュ制御部12が、書込み対象となるデータまたは読出し要求に従って読み出されたデータを小容量メモリ2に書込むからである。
これにより、情報処理装置100は、例えば、読出しデータ、書込みデータなどの参照度合いがより高いデータを、高速に処理することができる小容量メモリ2に配置することができる。したがって、大容量のデータであっても、より高速にデータを扱うことが可能となる。
<第2の実施の形態>
本発明の第2の実施の形態について、図14から図17を参照して説明を行う。第1の実施の形態では、小容量メモリ2がアクセラレータ1とは別個の構成であることを例に説明を行った。本実施の形態では、小容量メモリ2に相当するキャッシュメモリが、アクセラレータ内に内蔵される例について説明する。なお、説明の便宜上、前述した第1の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
(情報処理装置200)
図14は、本発明の第2の実施の形態に係る情報処理装置200のハードウェア構成を示すブロック図である。図14に示すように、情報処理装置200は、データキャッシュ装置201、インメモリ型情報処理装置102および通信I/F103を備えている。データキャッシュ装置201は、アクセラレータ3を備えている。
(アクセラレータ3)
次に、図15を参照して、データキャッシュ装置201のアクセラレータ3について説明する。図15は、データキャッシュ装置201のアクセラレータ3の機能構成を示す機能ブロック図である。
アクセラレータ3は、高速にネットワークからの要求を処理するデータキャッシュ部30を備えている。データキャッシュ部30は、図15に示すように、コマンド解釈部11、データキャッシュ制御部32、リフィル制御部15およびコマンド応答部16を備えている。
データキャッシュ制御部32は、第1の実施の形態のデータキャッシュ制御部12と同様の機能を有している。データキャッシュ制御部32の詳細な構成は、図16を参照して説明する。
(データキャッシュ制御部32の構成の詳細)
次に、図16を参照して、データキャッシュ制御部32の構成の詳細について説明する。図16は、データキャッシュ制御部32の詳細な機能構成を示す機能ブロック図である。図16に示す通り、データキャッシュ制御部32は、管理テーブル制御部321および小容量メモリ323を備えている。
小容量メモリ323は、第1の実施の形態に係るテーブル記憶部123および小容量メモリ2に相当する。小容量メモリ323には、管理テーブル324が格納されている。ここで、図17を参照して、管理テーブル324について説明する。図17は、小容量メモリ323に記憶された管理テーブル324の一例を示す図である。管理テーブル324が、第1の実施の形態における管理テーブル124と異なる点は、各エントリに対応するデータが格納されている点である。図17に示す通り、管理テーブル324には、データの状態と、属性名と、データの先頭アドレスと、データ長と、データとが対応付けられて格納されている。
図16に戻り、データキャッシュ制御部32の各機能について説明する。管理テーブル制御部321は、管理テーブル324を管理する手段である。管理テーブル制御部321は、管理テーブル324のエントリを更新、または、管理テーブル324にエントリを追加する。
また、管理テーブル制御部321は、第1の実施の形態の管理テーブル制御部121と同様に、コマンド解釈部11から受け取った要求に対応するデータが、小容量メモリ323に存在するか否かを確認する。
また、管理テーブル制御部321は、管理テーブル324を参照して、小容量メモリ323の空き領域を管理する。また、管理テーブル制御部321は、(1)要求種別(書込み要求#10か読出し要求#20か)、(2)要求に対応するデータが小容量メモリ323に存在するか否か、(3)各要求に対応するデータのデータ長以上の大きさの空き領域があるか否か、に応じて、リフィル制御部15に指示を発行する。
また、管理テーブル制御部321は、小容量メモリ323の管理テーブル324に格納されたデータに対し、各データの最後に参照された日時を確認し、参照度合いが低いデータを選択する。参照度合いが低いデータのエントリとは、例えば、(a)状態がインバリッドのエントリ、(b)最後に参照された日時が最も古いデータのエントリ、のうちの少なくとも何れかであるとするがこれに限定されるものではない。
なお、データキャッシュ制御部32の管理テーブル制御部321が、参照度合いが低いと判定するエントリの順は、上記(a)、(b)の順であるとするが、これに限定されるものではない。データキャッシュ制御部32の管理テーブル制御部321は、選択したエントリの情報を保存する。
また、管理テーブル制御部321は、要求に従って、管理テーブル324からデータの読出し/書込みを行う。そして、これらの応答を、コマンド応答部16に供給する。
また、管理テーブル制御部321は置換対象エントリを選択した場合、置換対象エントリに含まれるデータ(置換対象データ)を読み出す。そして、読み出した置換対象データを大容量メモリ5に書き込むための書込み要求#10を作成する。管理テーブル制御部321は、作成した書込み要求#10をリフィル制御部15に送信する。
(効果)
以上のように、本実施の形態に係るデータキャッシュ装置201は、小容量メモリ323を内蔵したアクセラレータ3を備えている。
これにより、第1の実施の形態のように、データ制御部122、データ読出し部13およびデータ書込み部14を備える必要がない。したがって、本実施の形態のデータキャッシュ装置201によれば、複数の手段を介することなく、データの読出し/書込みができるため、データアクセスをより高速化することができる。
<第3の実施の形態>
次に、第3の実施の形態について、図18を参照して説明する。なお、説明の便宜上、前述した第1の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
図18は、本実施の形態に係る情報処理装置300の構成の一例を示すブロック図である。図18に示す通り、情報処理装置300は、データキャッシュ装置301と、データベース管理装置102とを備えている。
データベース管理装置(単に管理装置とも呼ぶ)102は、キャッシュメモリ303よりも容量の大きい大容量メモリ5を内蔵している。データベース管理装置102の構成は、第1および第2の実施の形態に係るインメモリ型情報処理装置102と同様であるため、説明を省略する。
データキャッシュ装置301は、データキャッシュ制御部302と、キャッシュメモリ303とを備えている。データキャッシュ制御部302は、例えば、アクセラレータで実現される。また、キャッシュメモリ303は、上記アクセラレータ内に設けられる構成であってもよいし、上記アクセラレータとは別個の構成であってもよい。
データキャッシュ制御部302は、データキャッシュ装置301が、情報処理装置300の外部から読出し要求または書込み要求を受信すると、キャッシュメモリ303に格納されている所定の条件のデータを、大容量メモリ5に配置するよう制御する。所定の条件のデータとは、例えば、参照度合いがより低いデータ、特定の種別のデータであるとするが、本実施の形態はこれに限定されるものではない。上記特定の種別のデータの一例としては、例えば、第1の実施の形態において説明した、エントリにおける状態が「インバリッド」のデータなどが挙げられる。
また、データキャッシュ制御部302は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータをキャッシュメモリ303に書込む。また、データキャッシュ制御部302は、受信した要求が読出し要求であるとき、前記読出し要求に従って読み出したデータをキャッシュメモリ303に書込む。
このように、情報処理装置300は、所定の条件のデータをデータベース管理装置102の大容量メモリ5に配置し、読出し対象のデータまたは書込み対象のデータをキャッシュメモリ303に配置する。
これにより、書込み要求に対応するデータまたは読出し要求に対応するデータが、高速に処理することができるキャッシュメモリ303に格納され、所定の条件のデータが大容量メモリ5に配置される。したがって、大容量のデータであっても、より高速にデータを扱うことが可能となる。
<第4の実施の形態>
次に、本発明の第4の実施の形態について、図19〜図21を参照して説明する。なお、説明の便宜上、前述した第1から第3の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
本実施の形態に係る情報処理装置400は、第1の実施の形態に係る情報処理装置100のデータキャッシュ装置101に、第2のアクセラレータ9を備える構成である。なお、本実施の形態に係る情報処理装置400はこれに限定されるものではない。情報処理装置400は、第2の実施の形態に係る情報処理装置200のデータキャッシュ装置201に、第2のアクセラレータ9を備える構成であってもよいし、第3の実施の形態に係る情報処理装置300のデータキャッシュ装置301に、第2のアクセラレータ9を備える構成であってもよい。
(情報処理装置400)
図19は、本発明の第4の実施の形態に係る情報処理装置400のハードウェア構成の一例を示すブロック図である。図19に示すように、情報処理装置400は、データキャッシュ装置401、インメモリ型情報処理装置102および通信I/F103を備えている。データキャッシュ装置401は、アクセラレータ1と、小容量メモリ2と、第2のアクセラレータ9とを備えている。情報処理装置400のインメモリ型情報処理装置102および通信I/F103は、上述した各実施の形態に係るインメモリ型情報処理装置102および通信I/F103と同様であるため、説明を省略する。
第2のアクセラレータ9は、アクセラレータ1と同様に、例えば、FPGA、メニーコアプロセッサ等で実現される。第2のアクセラレータ9は、アクセラレータ1に接続している。第2のアクセラレータ9は、インメモリ型情報処理装置102に読出し/書込み要求の属性名を有するデータが存在するか否かを判定する。第2のアクセラレータ9の機能構成については、図面を変えて説明する。
なお、第2のアクセラレータ9は、アクセラレータ1と同一のデバイス上に実現される構成であってもよいし、アクセラレータ1とは別のデバイス上に実現される構成であってもよい。
次に、図20を参照して、データキャッシュ装置401の第2のアクセラレータ9について説明する。図20は、データキャッシュ装置401の第2のアクセラレータ9の機能構成の一例を示す機能ブロック図である。
図20に示す通り、第2のアクセラレータ9は、判定部(データ存在判定手段)91、送信部92、第2のテーブル記憶部93および管理部95を備えている。
第2のテーブル記憶部93は、第2の管理テーブル94を記憶する手段である。第2の管理テーブル94は、属性名で特定されるデータが、インメモリ型情報処理装置102の大容量メモリ5に格納されているか否かを示す情報を管理するためのものである。第2の管理テーブル94は、属性名と、該属性名に関連付けられた情報とを含む。後者の情報は、属性名で特定されるデータが大容量メモリ5に格納されているか否かを示す情報である。なお、第2の管理テーブル94は、大容量メモリ5に格納されたデータに含まれる属性名を含んでもよい。これによれば、第2の管理テーブル94に属性名が含まれることが、大容量メモリ5に該属性名で特定されるデータが格納されている情報となる。
第2の管理テーブル94は、更に、属性名に関連付けられた情報であって、該属性名で特定されるデータが格納されたインメモリ型情報処理装置102を示す情報を含んでもよい。例えば、複数の情報処理装置400がネットワークを介して接続しており、ある情報処理装置400が要求を受信したとする。そして、このとき、この受信した要求に含まれる属性名で特定されるデータを格納する大容量メモリ5を有するインメモリ型情報処理装置102が、他の情報処理装置に含まれるインメモリ型情報処理装置102であるとする。このとき、第2の管理テーブル94には、このインメモリ型情報処理装置102を示す情報が含まれる。
なお、上記情報は、他の情報処理装置に含まれるインメモリ型情報処理装置102を示す情報ではなく、上記他の情報処理装置を示す情報であってもよいし、上記他の情報処理装置のインメモリ型情報処理装置102に含まれる大容量メモリ5を示す情報であってもよい。つまり、第2の管理テーブル94には、属性名で特定されるデータがどこに格納されているかを示す情報が格納されていればよい。
また、第2のテーブル記憶部93は、第2のアクセラレータ9に内蔵されるものであってもよいし、第2のアクセラレータ9とは別個の構成であってもよい。
管理部95は、第2のテーブル記憶部93に記憶された第2の管理テーブル94を管理する手段である。管理部95は、インメモリ型情報処理装置102から、リフィル制御部15が受信する応答(例えば、ステップS73で受信する応答)と同様の応答を受信する。そして、管理部95は、該応答に従い、第2の管理テーブル94の情報を更新する。
また、管理部95は、第2の管理テーブル94に、インメモリ型情報処理装置102に格納されたデータを示す情報に加え、上述した、他のインメモリ型情報処理装置に格納されたデータを示す情報が含まれる場合、これらの情報を管理する。このとき、管理部95は、他のインメモリ型情報処理装置から、該他のインメモリ型情報処理装置に接続されたデータキャッシュ装置応答が送信されたとき、該他のインメモリ型情報処理装置に格納されたデータに関する情報を、ネットワークを介して取得し、更新する構成であってもよい。
判定部91は、読出し/書込み要求を通信I/F103から受信する。そして、判定部91は、第2のテーブル記憶部93を参照し、受信した要求に含まれる属性名で特定されるデータが、インメモリ型情報処理装置102内に格納されているか否かを判定(存在判定)する。判定部91が行う、属性名で特定されるデータの存在判定には、種々のアルゴリムで実現されてもよく、例えば、Counting Bloom Filter等によって実装されてもよい。判定部91は、上記データがインメモリ型情報処理装置102に格納されていない場合、受信した要求の送信先を示す情報を、送信部92に供給する。
送信部92は、上記データがインメモリ型情報処理装置102に格納されていない場合、判定部91から、該判定部91が受信した要求の送信先を示す情報を受信する。そして、送信部92は、判定部91が受信した要求に対するデータキャッシュ装置401における各処理を停止させる。具体的には、送信部92は、アクセラレータ1に対し、アクセラレータ1が実行している処理であって、アクセラレータ1が受信した要求に対応する処理を停止させるための停止指示を送信する。アクセラレータ1はこの指示を受信すると、実行中の処理を停止することができる。
また、送信部92は、ネットワークを介して他の装置に応答を送信する。具体的には、送信部92は、要求の送信先に対し、該要求を受信した自装置には該要求の対象となるデータが存在しないことを示す応答を、通信I/F103を介して送信する。
なお、第2の管理テーブル94に、受信した要求に含まれる属性名で特定されるデータが格納されている他の情報処理装置のインメモリ型情報処理装置102を示す情報が含まれる場合、判定部91は、該他の情報処理装置のインメモリ型情報処理装置102を示す情報を、受信した要求と共に送信部92に供給してもよい。この場合、送信部92は、該他の情報処理装置に対し、上記要求を、通信I/F103を介して転送してもよい。
(第2のアクセラレータ9の処理の流れ)
次に、図21を参照して、本実施の形態に係るデータキャッシュ装置401における第2のアクセラレータ9の処理の流れについて説明する。図21は、本実施の形態に係るデータキャッシュ装置401における第2のアクセラレータ9の処理の流れの一例を示す図である。
図21に示す通り、第2のアクセラレータ9は、以下のステップS211〜S214の処理を行う。
ステップS211:判定部91が、通信I/F103から書込み要求#10または読出し要求#20を受信する。このとき受信する要求は、上述したステップS61にて、アクセラレータ1のコマンド解釈部11が受信する要求と同様のものである。
ステップS212:判定部91は、受信した要求に含まれる属性名で特定されるデータが、インメモリ型情報処理装置102内に格納されているか否かを判定する。格納されている場合(YESの場合)、第2のアクセラレータ9は、処理を終了する。したがって、データキャッシュ装置401は、第1から第3の実施の形態に係るデータキャッシュ装置のような第2のアクセラレータ9が存在しない場合と同様の処理(図6から図13に示す処理)を行う。格納されていない場合(NOの場合)、ステップS213に進む。
ステップS213:送信部92は、判定部91が受信した要求に対するデータキャッシュ装置401における各処理を停止させるために、アクセラレータ1に対し、処理停止指示を送信する。これにより、アクセラレータ1は実行中の処理(例えば、図6から図13の示す処理)を停止する。
ステップS214:送信部92が、要求の送信先に対し、該要求を受信した自装置には該要求の対象となるデータが存在しないことを示す応答を送信、または、判定部91が受信した要求に含まれる属性名で特定されるデータが格納されている他の情報処理装置に対し、上記要求を送信する。そして、第2のアクセラレータ9は、処理を終了する。
なお、ステップS213およびステップS214は逆順で行われてもよいし、同時に行われてもよい。
(効果)
本実施の形態に係る情報処理装置400によれば、大容量のデータをより高速に扱うことが可能となる。
なぜならば、データキャッシュ装置401の第2のアクセラレータ9が、情報処理装置400の外部から読出し要求または書込み要求を受信したとき、受信した要求に対応するデータがインメモリ型情報処理装置102に格納されているか否かを判定するからである。そして、データが格納されていないとき、第2のアクセラレータ9が、他の装置に応答を送信するからである。さらに、データキャッシュ装置401の第2のアクセラレータ9の送信部92が要求に対するデータキャッシュ装置401における処理(アクセラレータ1の処理)を停止させるからである。
これにより、受信した要求に対応するデータが情報処理装置400のインメモリ型情報処理装置102に格納されていない(存在しない)場合に、アクセラレータ1が応答を上記要求の要求元に送信する前に、第2のアクセラレータ9が応答を送信することができる。したがって、本実施の形態に係る情報処理装置400によれば、情報処理装置400を含むシステム全体の平均応答遅延を低減することができる。
また、本実施の形態に係る情報処理装置400は、受信した要求に対応するデータが情報処理装置400のインメモリ型情報処理装置102に格納されていない場合、該データを格納しているインメモリ型情報処理装置102を含む他の情報処理装置に、受信した要求を転送する。
これにより、要求の要求元が、該要求に対応するデータが格納されたインメモリ型情報処理装置102を探すための処理時間を削減することができる。したがって、情報処理装置400を含むシステム全体の平均応答遅延をより低減することができる。
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
例えば、上述した実施の形態における各動作は、ハードウェアまたはソフトウェア、あるいはその両方の複合構成によって実行することも可能である。
なお、ソフトウェアによる処理を実行する場合には、例えば、上記各処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。また、上記プログラムは、例えば、ハードディスクなどの記録媒体に記録しておくことが可能である。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備え、前記データキャッシュ装置は、情報処理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする情報処理装置。
(付記2)前記データキャッシュ制御手段は、前記キャッシュメモリに、前記受信した要求に対応するデータが存在するか否かを確認し、前記キャッシュメモリに、前記要求に対応するデータが存在する場合、前記要求に従って、前記キャッシュメモリに対し、データの読出しまたはデータの書込みを行い、前記キャッシュメモリに、前記要求に対応するデータが存在しない場合、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記データキャッシュ制御手段は、前記キャッシュメモリに前記要求に対応するデータが存在しない場合、前記キャッシュメモリに、前記書込み対象となるデータまたは前記読出し要求において読み出し対象となるデータのデータ長以上の大きさの空き領域があるか否かを更に確認し、前記キャッシュメモリに前記データ長以上の大きさの空き領域があるとき、前記書込み対象となるデータまたは前記読出し要求に従って、前記大容量メモリから読み出されたデータを、前記キャッシュメモリの当該空き領域に書込み、前記キャッシュメモリに前記データ長以上の大きさの空き領域がないとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記データキャッシュ制御手段は、前記キャッシュメモリに格納されているデータに対する情報を管理するための管理テーブルを制御する管理テーブル制御手段を備え、前記管理テーブルには、前記データに対する情報として、データを示す識別子と、当該データのデータ長と、当該データの前記キャッシュメモリにおける先頭アドレスとが含まれており、前記管理テーブル制御手段は、前記管理テーブルを参照することにより、前記キャッシュメモリに前記受信した要求に対応するデータが存在するか否かを確認する、ことを特徴とする付記2または3に記載の情報処理装置。
(付記5)前記管理テーブル制御手段は、前記データの状態を示す状態情報を、当該データに対する情報に対応付けて管理する、ことを特徴とする付記4に記載の情報処理装置。
(付記6)前記管理テーブル制御手段は、前記データキャッシュ制御手段が、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込んだとき、前記状態情報を更新する、ことを特徴とする付記5に記載の情報処理装置。
(付記7)前記所定の条件のデータとは、前記状態情報が、当該データが無効状態であることを示す情報であるデータである、ことを特徴とする付記5または6に記載の情報処理装置。
(付記8)前記所定の条件のデータとは、参照度合いがより低いデータである、ことを特徴とする付記1から7のいずれかに記載の情報処理装置。
(付記9)前記参照度合いがより低いデータとは、最後に参照された日時が最も古いデータである、ことを特徴とする付記8に記載の情報処理装置。
(付記10)前記キャッシュメモリは、前記データキャッシュ制御手段に内蔵されており、前記キャッシュメモリには、前記管理テーブルが格納されており、前記管理テーブルには、前記データに対する情報として、当該データのデータ本体が含まれる、ことを特徴とする付記4から7の何れかに記載の情報処理装置。
(付記11)前記データキャッシュ装置は、前記情報処理装置の外部から読出し要求または書込み要求を受信したとき、受信した要求に対応するデータが前記管理装置に格納されているか否かを判定するデータ存在判定手段と、前記データが前記管理装置に格納されていないとき、他の装置に応答を送信する送信手段と、を備え、前記送信手段は、前記要求に対する前記データキャッシュ装置における処理を停止させる、ことを特徴とする付記1から10の何れかに記載の情報処理装置。
(付記12)前記送信手段は、前記要求の送信先に、前記要求に対応するデータが、前記管理装置に格納されていないことを示す応答を送信する、ことを特徴とする付記11に記載の情報処理装置。
(付記13)前記データキャッシュ装置は、当該データキャッシュ装置に接続された前記管理装置、および、当該データキャッシュ装置にネットワークを介して接続された1または複数の他の情報処理装置の夫々に含まれる他の管理装置に格納されているデータを示す情報を管理する管理手段を更に備え、前記要求に対応するデータが、前記他の管理装置に格納されているとき、前記送信手段は、前記他の管理装置を含む前記他の情報処理装置に、前記受信した要求を送信する、ことを特徴とする付記11に記載の情報処理装置。
(付記14)前記データキャッシュ装置は、前記情報処理装置の外部から読出し要求または書込み要求を受信し、当該受信した読出し要求または書込み要求が、当該データキャッシュ装置で処理する要求か否かを判定する判定手段と、前記読出し要求または前記書込み要求を前記管理装置に送信し、前記読出し要求または前記書込み要求にそれぞれ対応する読出し応答または書込み応答を受信するリフィル制御手段と、を更に備え、前記判定手段は、前記受信した読出し要求または書込み要求が前記データキャッシュ装置で処理する要求ではないと判定したとき、前記読出し要求または書込み要求を前記リフィル制御手段に供給し、前記受信した読出し要求または書込み要求が前記データキャッシュ装置で処理する要求であると判定したとき、前記読出し要求または書込み要求を前記データキャッシュ制御手段に供給する、ことを特徴とする付記1から13の何れかに記載の情報処理装置。
(付記15)キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置であって、前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とするデータキャッシュ装置。
(付記16)前記データキャッシュ制御手段は、前記キャッシュメモリに、前記受信した要求に対応するデータが存在するか否かを確認し、前記キャッシュメモリに、前記要求に対応するデータが存在する場合、前記要求に従って、前記キャッシュメモリに対し、データの読出しまたはデータの書込みを行い、前記キャッシュメモリに、前記要求に対応するデータが存在しない場合、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする付記15に記載のデータキャッシュ装置。
(付記17)前記データキャッシュ制御手段は、前記キャッシュメモリに前記要求に対応するデータが存在しない場合、前記キャッシュメモリに、前記書込み対象となるデータまたは前記読出し要求において読み出し対象となるデータのデータ長以上の大きさの空き領域があるか否かを更に確認し、前記キャッシュメモリに前記データ長以上の大きさの空き領域があるとき、前記書込み対象となるデータまたは前記読出し要求に従って前記大容量メモリから読み出されたデータを、前記キャッシュメモリの当該空き領域に書込み、前記キャッシュメモリに前記データ長以上の大きさの空き領域がないとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする付記16に記載のデータキャッシュ装置。
(付記18)前記データキャッシュ制御手段は、前記キャッシュメモリに格納されているデータに対する情報を管理するための管理テーブルを制御する管理テーブル制御手段を備え、前記管理テーブルには、前記データに対する情報として、データを示す識別子と、当該データのデータ長と、当該データの前記キャッシュメモリにおける先頭アドレスとが含まれており、前記管理テーブル制御手段は、前記管理テーブルを参照することにより、前記キャッシュメモリに前記受信した要求に対応するデータが存在するか否かを確認する、ことを特徴とする付記16または17に記載のデータキャッシュ装置。
(付記19)前記管理テーブル制御手段は、前記データの状態を示す状態情報を、当該データに対する情報に対応付けて管理する、ことを特徴とする付記18に記載のデータキャッシュ装置。
(付記20)前記管理テーブル制御手段は、前記データキャッシュ制御手段が、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込んだとき、前記状態情報を更新する、ことを特徴とする付記19に記載のデータキャッシュ装置。
(付記21)前記所定の条件のデータとは、前記状態情報が、当該データが無効状態であることを示す情報であるデータである、ことを特徴とする付記19または20に記載のデータキャッシュ装置。
(付記22)前記所定の条件のデータとは、参照度合いがより低いデータである、ことを特徴とする付記15から21の何れかに記載のデータキャッシュ装置。
(付記23)前記参照度合いがより低いデータとは、最後に参照された日時が最も古いデータである、ことを特徴とする付記22に記載のデータキャッシュ装置。
(付記24)前記キャッシュメモリは、前記データキャッシュ制御手段に内蔵されており、前記キャッシュメモリには、前記管理テーブルが格納されており、前記管理テーブルには、前記データに対する情報として、当該データのデータ本体が含まれる、ことを特徴とする付記18から21の何れかに記載のデータキャッシュ装置。
(付記25)前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信したとき、受信した要求に対応するデータが前記管理装置に格納されているか否かを判定するデータ存在判定手段と、前記データが前記管理装置に格納されていないとき、他の装置に応答を送信する送信手段と、を備え、前記送信手段は、前記要求に対する前記データキャッシュ装置における処理を停止させる、ことを特徴とする付記15から24の何れかに記載のデータキャッシュ装置。
(付記26)前記送信手段は、前記要求の送信先に、前記要求に対応するデータが、前記管理装置に格納されていないことを示す応答を送信する、ことを特徴とする付記25に記載のデータキャッシュ装置。
(付記27)前記データキャッシュ装置に接続された前記管理装置、および、当該データキャッシュ装置にネットワークを介して接続された1または複数の他のデータキャッシュ装置の夫々に接続された他の管理装置に格納されているデータを示す情報を管理する管理手段を更に備え、前記要求に対応するデータが、前記他の管理装置に格納されているとき、前記送信手段は、前記他の管理装置に接続された他のデータキャッシュ装置に、前記受信した要求を送信する、ことを特徴とする付記25に記載のデータキャッシュ装置。
(付記28)前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信し、当該受信した読出し要求または書込み要求が、自装置で処理する要求か否かを判定する判定手段と、前記読出し要求または前記書込み要求を前記管理装置に送信し、前記読出し要求または前記書込み要求にそれぞれ対応する読出し応答または書込み応答を受信するリフィル制御手段と、を更に備え、前記判定手段は、前記受信した読出し要求または書込み要求が自装置で処理する要求ではないと判定したとき、前記読出し要求または書込み要求を前記リフィル制御手段に供給し、前記受信した読出し要求または書込み要求が自装置で処理する要求であると判定したとき、前記読出し要求または書込み要求を前記データキャッシュ制御手段に供給する、ことを特徴とする付記15から27の何れかに記載のデータキャッシュ装置。
(付記29)キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備える情報処理装置の情報処理方法であって、前記情報処理装置の外部から読出し要求または書込み要求を受信し、前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする情報処理方法。
(付記30)キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置のデータキャッシュ方法であって、前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信し、前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とするデータキャッシュ方法。
(付記31)キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備える情報処理装置を含むコンピュータに、前記情報処理装置の外部から読出し要求または書込み要求を受信する処理と、前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込む処理と、前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む処理と、を実行させることを特徴とするプログラム。
(付記32)キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置を含むコンピュータに、前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信する処理と、前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込む処理と、前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む処理と、を実行させることを特徴とするプログラム。
(付記33)付記31または付記32に記載のプログラムを記録するコンピュータが読み取り可能な記録媒体。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2013年11月1日に出願された日本出願特願2013−228291および2014年4月11日に出願された日本出願特願2014−082152を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 アクセラレータ
2 小容量メモリ
3 アクセラレータ
4 CPU
5 大容量メモリ
9 第2のアクセラレータ
10 データキャッシュ部
11 コマンド解釈部
12 データキャッシュ制御部
13 データ読出し部
14 データ書込み部
15 リフィル制御部
16 コマンド応答部
30 データキャッシュ部
32 データキャッシュ制御部
91 判定部
92 送信部
93 第2のテーブル記憶部
94 第2の管理テーブル
95 管理部
100 情報処理装置
101 データキャッシュ装置
102 インメモリ型情報処理装置(データベース管理装置)
103 通信I/F
121 管理テーブル制御部
122 データ制御部
123 テーブル記憶部
124 管理テーブル
200 情報処理装置
201 データキャッシュ装置
321 管理テーブル制御部
323 小容量メモリ
324 管理テーブル
300 情報処理装置
301 データキャッシュ装置
302 データキャッシュ制御部
303 キャッシュメモリ
400 情報処理装置
401 データキャッシュ装置
#10 書込み要求
#15 書込み応答
#20 読出し要求
#25 読出し応答

Claims (17)

  1. キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備え、
    前記データキャッシュ装置は、情報処理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、
    前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする情報処理装置。
  2. 前記データキャッシュ制御手段は、
    前記キャッシュメモリに、前記受信した要求に対応するデータが存在するか否かを確認し、
    前記キャッシュメモリに、前記要求に対応するデータが存在する場合、前記要求に従って、前記キャッシュメモリに対し、データの読出しまたはデータの書込みを行い、
    前記キャッシュメモリに、前記要求に対応するデータが存在しない場合、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記データキャッシュ制御手段は、
    前記キャッシュメモリに前記要求に対応するデータが存在しない場合、前記キャッシュメモリに、前記書込み対象となるデータまたは前記読出し要求において読み出し対象となるデータのデータ長以上の大きさの空き領域があるか否かを更に確認し、
    前記キャッシュメモリに前記データ長以上の大きさの空き領域があるとき、前記書込み対象となるデータまたは前記読出し要求に従って、前記大容量メモリから読み出されたデータを、前記キャッシュメモリの当該空き領域に書込み、
    前記キャッシュメモリに前記データ長以上の大きさの空き領域がないとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記データキャッシュ制御手段は、
    前記キャッシュメモリに格納されているデータに対する情報を管理するための管理テーブルを制御する管理テーブル制御手段を備え、
    前記管理テーブルには、前記データに対する情報として、データを示す識別子と、当該データのデータ長と、当該データの前記キャッシュメモリにおける先頭アドレスとが含まれており、
    前記管理テーブル制御手段は、前記管理テーブルを参照することにより、前記キャッシュメモリに前記受信した要求に対応するデータが存在するか否かを確認する、ことを特徴とする請求項2または3に記載の情報処理装置。
  5. 前記管理テーブル制御手段は、前記データの状態を示す状態情報を、当該データに対する情報に対応付けて管理する、ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記管理テーブル制御手段は、前記データキャッシュ制御手段が、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、前記書込み対象となるデータまたは前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込んだとき、前記状態情報を更新する、ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記所定の条件のデータとは、前記状態情報が、当該データが無効状態であることを示す情報であるデータである、ことを特徴とする請求項5または6に記載の情報処理装置。
  8. 前記所定の条件のデータとは、参照度合いがより低いデータである、ことを特徴とする請求項1から7の何れか1項に記載の情報処理装置。
  9. 前記参照度合いがより低いデータとは、最後に参照された日時が最も古いデータである、ことを特徴とする請求項8に記載の情報処理装置。
  10. 前記キャッシュメモリは、前記データキャッシュ制御手段に内蔵されており、
    前記キャッシュメモリには、前記管理テーブルが格納されており、
    前記管理テーブルには、前記データに対する情報として、当該データのデータ本体が含まれる、ことを特徴とする請求項4から7の何れか1項に記載の情報処理装置。
  11. 前記データキャッシュ装置は、前記情報処理装置の外部から読出し要求または書込み要求を受信したとき、受信した要求に対応するデータが前記管理装置に格納されているか否かを判定するデータ存在判定手段と、
    前記データが前記管理装置に格納されていないとき、他の装置に応答を送信する送信手段と、を備え、
    前記送信手段は、前記要求に対する前記データキャッシュ装置における処理を停止させる、ことを特徴とする請求項1から10の何れか1項に記載の情報処理装置。
  12. 前記送信手段は、前記要求の送信先に、前記要求に対応するデータが、前記管理装置に格納されていないことを示す応答を送信する、ことを特徴とする請求項11に記載の情報処理装置。
  13. 前記データキャッシュ装置は、当該データキャッシュ装置に接続された前記管理装置、および、当該データキャッシュ装置にネットワークを介して接続された1または複数の他の情報処理装置の夫々に含まれる他の管理装置に格納されているデータを示す情報を管理する管理手段を更に備え、
    前記要求に対応するデータが、前記他の管理装置に格納されているとき、前記送信手段は、前記他の管理装置を含む前記他の情報処理装置に、前記受信した要求を送信する、ことを特徴とする請求項11に記載の情報処理装置。
  14. 前記データキャッシュ装置は、
    前記情報処理装置の外部から読出し要求または書込み要求を受信し、当該受信した読出し要求または書込み要求が、当該データキャッシュ装置で処理する要求か否かを判定する判定手段と、
    前記読出し要求または前記書込み要求を前記管理装置に送信し、前記読出し要求または前記書込み要求にそれぞれ対応する読出し応答または書込み応答を受信するリフィル制御手段と、を更に備え、
    前記判定手段は、前記受信した読出し要求または書込み要求が前記データキャッシュ装置で処理する要求ではないと判定したとき、前記読出し要求または書込み要求を前記リフィル制御手段に供給し、前記受信した読出し要求または書込み要求が前記データキャッシュ装置で処理する要求であると判定したとき、前記読出し要求または書込み要求を前記データキャッシュ制御手段に供給する、ことを特徴とする請求項1から13の何れか1項に記載の情報処理装置。
  15. キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置であって、
    前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信したとき、前記キャッシュメモリに格納されている所定の条件のデータを、前記大容量メモリに配置するよう制御するデータキャッシュ制御手段を備え、
    前記データキャッシュ制御手段は、受信した要求が書込み要求であるとき、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、前記要求が読出し要求であるとき、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とするデータキャッシュ装置。
  16. キャッシュメモリを内蔵するデータキャッシュ装置と、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置とを備える情報処理装置の情報処理方法であって、
    前記情報処理装置の外部から読出し要求または書込み要求を受信し、
    前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、
    前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とする情報処理方法。
  17. キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置のデータキャッシュ方法であって、
    前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信し、
    前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、
    前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とするデータキャッシュ方法。
JP2015544783A 2013-11-01 2014-10-20 情報処理装置、データキャッシュ装置、情報処理方法、データキャッシュ方法およびプログラム Pending JPWO2015064048A1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2013228291 2013-11-01
JP2013228291 2013-11-01
JP2014082152 2014-04-11
JP2014082152 2014-04-11
PCT/JP2014/005311 WO2015064048A1 (ja) 2013-11-01 2014-10-20 情報処理装置、データキャッシュ装置、情報処理方法およびデータキャッシュ方法

Publications (1)

Publication Number Publication Date
JPWO2015064048A1 true JPWO2015064048A1 (ja) 2017-03-09

Family

ID=53003681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015544783A Pending JPWO2015064048A1 (ja) 2013-11-01 2014-10-20 情報処理装置、データキャッシュ装置、情報処理方法、データキャッシュ方法およびプログラム

Country Status (3)

Country Link
US (1) US20160253094A1 (ja)
JP (1) JPWO2015064048A1 (ja)
WO (1) WO2015064048A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275492B2 (en) * 2016-09-15 2019-04-30 Oracle International Corporation Spatial change detector and check and set operation
KR20200082323A (ko) * 2018-12-28 2020-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 그 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
JP2003173294A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd ディスク装置
EP1956491B1 (en) * 2006-11-07 2012-03-14 Hitachi Solutions, Ltd. Data processing control method, information processor, and data processing control system
JP5924482B2 (ja) * 2012-02-09 2016-05-25 日本電気株式会社 ストレージ装置
US9128847B2 (en) * 2012-10-18 2015-09-08 Hitachi, Ltd. Cache control apparatus and cache control method

Also Published As

Publication number Publication date
US20160253094A1 (en) 2016-09-01
WO2015064048A1 (ja) 2015-05-07

Similar Documents

Publication Publication Date Title
US10891228B2 (en) Cache line states identifying memory cache
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
US8806148B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US20170070574A1 (en) Storage server and storage system
EP2541423B1 (en) Replacement policy for resource container
JP2007066161A (ja) キャッシュシステム
JP2014130420A (ja) 計算機システム及び計算機の制御方法
CN111406251B (zh) 数据预取方法及装置
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
KR102581572B1 (ko) 허브 디바이스 및 그의 작동방법
US10437725B2 (en) Master requesting missing segments of a cache line for which the master has coherence ownership
WO2015064048A1 (ja) 情報処理装置、データキャッシュ装置、情報処理方法およびデータキャッシュ方法
US7136969B1 (en) Using the message fabric to maintain cache coherency of local caches of global memory
JP6088853B2 (ja) 通信装置、通信方法および通信プログラム
JP5481669B2 (ja) キャッシュ制御方法、ノード装置、マネージャ装置及び計算機システム
CN110737397B (zh) 用于管理存储系统的方法、设备和计算机程序产品
JP5661355B2 (ja) 分散キャッシュシステム
JP6035934B2 (ja) データストア管理装置、データ提供システム及びデータ提供方法
CN111522879B (zh) 一种基于缓存的数据分发方法和电子设备
JP6036190B2 (ja) 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
US8700861B1 (en) Managing a dynamic list of entries for cache page cleaning
JP2018032072A (ja) プログラム、情報処理装置、ストレージシステム、およびストレージシステムの制御方法
US20160321191A1 (en) Add-On Memory Coherence Directory