WO2015064048A1 - 情報処理装置、データキャッシュ装置、情報処理方法およびデータキャッシュ方法 - Google Patents

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

Info

Publication number
WO2015064048A1
WO2015064048A1 PCT/JP2014/005311 JP2014005311W WO2015064048A1 WO 2015064048 A1 WO2015064048 A1 WO 2015064048A1 JP 2014005311 W JP2014005311 W JP 2014005311W WO 2015064048 A1 WO2015064048 A1 WO 2015064048A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
request
cache
read
memory
Prior art date
Application number
PCT/JP2014/005311
Other languages
English (en)
French (fr)
Inventor
浩明 井上
竹中 崇
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/030,965 priority Critical patent/US20160253094A1/en
Priority to JP2015544783A priority patent/JPWO2015064048A1/ja
Publication of WO2015064048A1 publication Critical patent/WO2015064048A1/ja

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/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
    • 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/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

Definitions

  • the present invention relates to an information processing device, a data cache device, an information processing method, and a data cache method.
  • Patent Document 1 describes a method for determining which mirror site of a content provider should receive an end-user content request in a load balancing system.
  • Patent Document 2 describes a method in which an intermediate node returns a cache document to a client when a cache server is installed in the entire network and a document request can be executed by the intermediate node along the routing graph.
  • An in-memory information processing device that handles data on a memory is implemented in, for example, a CPU (Central Processing Unit) that processes data using a large-capacity memory in response to a read / write request input from a network.
  • a data processing unit A data processing unit.
  • an information processing apparatus that is faster than the in-memory type information processing apparatus mounts the data processing unit on a device different from a CPU, unlike a normal server.
  • Devices different from the CPU are a field programmable gate array (FPGA), a many-core processor, and the like.
  • the information processing apparatus processes a read / write request input from the network at a higher speed than the CPU (for example, Non-Patent Document 1).
  • the above configuration is implemented on a board equipped with a special device. Therefore, the amount of data that can be handled is limited to a small capacity due to limitations of the board. Therefore, a large amount of data cannot be handled on the in-memory.
  • Patent Documents 1 and 2 do not support data writing. Further, in the above method, an access protocol (URL (Uniform Resource Locator) etc.) used when data is cached is different from that of a large-capacity memory.
  • a microprocessor cache for example, Non-Patent Document 2 is also known as a similar data arrangement mechanism, but the access protocol differs between the microprocessor cache memory and the large-capacity memory.
  • the in-memory type information processing apparatus has a problem that it is difficult to handle a large amount of data at high speed.
  • the present invention has been made in view of the above problems, and an object thereof is to realize an information processing apparatus capable of handling a large amount of data at high speed.
  • An information processing apparatus includes a data cache device including a cache memory and a management device including a large-capacity memory having a larger capacity than the cache memory, and the data cache device includes: Data cache control means for controlling to place data of a predetermined condition stored in the cache memory in the large-capacity memory when a read request or write request is received from the outside of the data cache, the data cache control means When the received request is a write request, data to be written is written to the cache memory according to the write request, and when the request is a read request, the data read according to the read request is written to the cache memory. Write to memory.
  • a data cache device is a data cache device including a cache memory and connected to a management device including a large-capacity memory having a larger capacity than the cache memory, the data cache device and the data cache device
  • a data cache control means for controlling to place data of a predetermined condition stored in the cache memory in the large-capacity memory when a read request or a write request is received from outside the management device;
  • the control means When the received request is a write request, the control means writes the data to be written to the cache memory according to the write request, and when the request is a read request, the control means reads the data read according to the read request. Write to the cache memory.
  • An information processing method is an information processing method for an information processing apparatus including a data cache device including a cache memory and a management device including a large-capacity memory having a larger capacity than the cache memory.
  • a data cache method is a data cache method for a data cache device that is connected to a management device that has a built-in cache memory and a large-capacity memory that has a larger capacity than the cache memory.
  • a read request or a write request is received from outside the cache device and the management device, and when the received request is a write request, control is performed to place data of a predetermined condition in the large-capacity memory, and the write According to the request, the data to be written is written to the cache memory, and when the received request is a read request, control is performed so that data of a predetermined condition is arranged in the large-capacity memory.
  • the issued data is written into the cache memory.
  • FIG. 10 is a flowchart illustrating an example of a processing flow of the data cache device when the read request is a request handled by the data cache device and data corresponding to the read request does not exist in the small-capacity memory.
  • FIG. 10 is a flowchart illustrating an example of a processing flow of the data cache device when the size of the free area of the small capacity memory is smaller than the data length of the data read by the read request in the case of FIG. 9.
  • 10 is a flowchart illustrating an example of a processing flow of the data cache device when the write request is a request handled by the data cache device and data corresponding to the write request exists in the small-capacity memory.
  • 10 is a flowchart illustrating an example of a processing flow of the data cache device when the write request is a request handled by the data cache device and data corresponding to the write request does not exist in the small-capacity memory.
  • 12 is a flowchart showing another example of the processing flow of the data cache device when the write request is a request handled by the data cache device and the data corresponding to the write request does not exist in the small-capacity memory.
  • It is a block diagram which shows an example of the hardware constitutions of the information processing apparatus which concerns on the 2nd Embodiment of this invention.
  • It is a functional block diagram which shows an example of a function structure of the accelerator of the data cache apparatus which concerns on the 2nd Embodiment of this invention.
  • FIG. 1 is a block diagram showing an example of a hardware configuration of the information processing apparatus 100 according to the first embodiment of the present invention.
  • the information processing apparatus 100 includes a data cache apparatus 101, an in-memory type information processing apparatus 102, and a communication I / F (interface) 103.
  • the data cache device 101 includes an accelerator 1 and a small capacity memory 2.
  • the in-memory information processing apparatus 102 includes a CPU (Central Processing Unit) 4 provided in a general server, and a large capacity memory 5 having a larger capacity than the small capacity memory 2.
  • the in-memory type information processing apparatus 102 according to the present embodiment functions as a database management server apparatus incorporating the large capacity memory 5.
  • the communication I / F 103 receives a read / write request from the network and supplies it to the accelerator 1. Further, a read / write response to the read / write request supplied from the accelerator 1 is returned to the network.
  • the accelerator 1 is connected to a small-capacity memory 2 and transmits / receives data, read / write requests, and the like to / from the CPU 4.
  • the accelerator 1 is realized by an FPGA, a many core processor, or the like.
  • the accelerator 1 receives the read / write request received by the communication I / F 103. Further, the accelerator 1 returns a read / write response to the communication I / F 103.
  • the functional configuration of the accelerator 1 will be described with reference to different drawings.
  • the CPU 4 includes a data management unit corresponding to a so-called in-memory type database management system using the large-capacity memory 5.
  • the data management unit of the CPU 4 receives a read / write request from the accelerator 1 and performs corresponding processing. Then, the CPU 4 returns a read / write response to the accelerator 1. Since the CPU 4 according to the present embodiment is a general CPU, detailed description thereof is omitted.
  • FIG. 2 is a diagram for explaining an example of a data structure of a read / write request and a read / write response.
  • the write request # 10 includes a request type “SET”, an attribute name, unique data, a retention period, a data length, and data.
  • the attribute name is for referring to the data, and is unique information for specifying the data when the data is stored in the small capacity memory 2 or the large capacity memory 5.
  • the attribute name is represented by an identifier such as an ID (identifier).
  • the unique data guarantees the uniqueness of the request.
  • the retention period indicates a period for retaining the stored data.
  • the data length indicates the length of data to be written.
  • write data data to be written
  • Write response # 15, which is a response to write request # 10, includes response information.
  • the response information is information indicating whether or not the writing by the writing request # 10 has been normally completed.
  • the read request # 20 is composed of “GET” as a request type and an attribute name.
  • the read response # 25 to the read request # 20 includes a response type “VALUE”, an attribute name corresponding to the read request # 20, unique data, a data length, and data.
  • the unique data corresponds to the unique data included in the write request # 10 including the attribute name corresponding to the read request # 20.
  • the attribute name of the write request # 10 and the read request # 20 includes only one, but can be extended to a plurality.
  • the read response # 25 includes a plurality of responses for each attribute name.
  • FIG. 3 is a functional block diagram illustrating an example of a functional configuration of the accelerator 1 of the data cache device 101.
  • the accelerator 1 includes a data cache unit 10 that processes requests from the network at high speed.
  • the data cache unit 10 includes a command interpretation unit 11, a data cache control unit 12, a data reading unit 13, a data writing unit 14, a refill control unit 15, and a command response unit 16.
  • the command interpretation unit 11 is a determination unit that receives a read / write request from the communication I / F 103 and interprets the received request to determine whether the request is a request to be processed by the data cache device 101. is there.
  • the determination as to whether or not the request is processed by the data cache device 101 is based on, for example, the character string included in the attribute name included in the read request # 20 and the write request # 10, the data length included in the write request # 10, and the like. Based on. Note that the criterion of determination is not limited to this. If the command interpretation unit 11 determines that the received request is a request to be processed by the data cache device 101, the command interpretation unit 11 supplies the request to the data cache control unit 12. On the other hand, if the command interpretation unit 11 determines that the received request is not a request to be processed by the data cache device 101, the command interpretation unit 11 supplies the request to the refill control unit 15.
  • the data cache device 101 can be controlled to process the received request by a suitable device. Therefore, data to be processed by the data cache device 101 can be processed by the data cache device 101 without supplying the data to the in-memory type information processing device 102. Therefore, it is possible to more suitably realize high-speed data processing. it can.
  • the data cache control unit 12 receives from the command interpretation unit 11 a request that the command interpretation unit 11 determines to be a request to be processed by the data cache device 101.
  • the data cache control unit 12 confirms whether or not the data to be written included in the received write request # 10 or the data to be read by the received read request # 20 exists in the small capacity memory 2 To do.
  • data to be written included in write request # 10 and “data to be read by read request # 20” are respectively referred to as “data corresponding to write request # 10” and “read”. It is also called “data corresponding to request # 20”.
  • the data read by the read request # 20 is also referred to as “read data”.
  • the data cache control unit 12 issues a read instruction or a write instruction to the data reading unit 13 or the data writing unit 14 according to each request.
  • the data cache control unit 12 checks the free area of the small capacity memory 2 and determines the size of the free area and the write data. Compare the data length.
  • the data cache control unit 12 issues a write instruction to the data writing unit 14 in accordance with the write request # 10.
  • the data cache control unit 12 transfers the read request # 20 to the refill control unit 15 when the data corresponding to the read request # 20 does not exist in the small capacity memory 2. Then, the data cache control unit 12 receives the read data corresponding to the read request # 20 from the refill control unit 15 and compares the data length of the read data with the size of the free area of the small capacity memory 2. .
  • the data cache control unit 12 then writes a data (read data) read in accordance with the read request # 20 into the small capacity memory 2 when the data length is equal to or smaller than the size of the free area. 14 is instructed to write.
  • the data cache control unit 12 confirms the date and time of the last reference of each data with respect to the data stored in the small-capacity memory 2, and selects data with a lower reference degree. .
  • the size of the free area in the small capacity memory 2 is smaller than the data length included in the write request # 10 or the data length of the read data corresponding to the read request # 20. Then, the refill control unit 15 is instructed to place the selected data in the large capacity memory 5, and the data writing unit 14 is instructed to place the data corresponding to the received request in the small capacity memory 2.
  • the data cache control unit 12 receives a response to the read instruction from the data reading unit 13 (read data read by the data reading unit 13) and supplies the response to the command response unit 16. Further, the data cache control unit 12 receives a response to the write instruction from the data writing unit 14 and supplies the response to the command response unit 16.
  • the data reading unit 13 reads data of a specified length from the small capacity memory 2 based on an instruction from the data cache control unit 12.
  • the data reading unit 13 supplies the read data to the data cache control unit 12 as a response to the read instruction.
  • the data writing unit 14 writes data of a specified length to the small capacity memory 2 based on an instruction from the data cache control unit 12.
  • the data writing unit 14 supplies the data cache control unit 12 with a response indicating whether or not the data writing has ended normally.
  • the refill control unit 15 transmits the write request # 10 or the read request # 20 supplied from the command interpretation unit 11 or the data cache control unit 12 to the in-memory type information processing apparatus 102.
  • the refill control unit 15 receives a response corresponding to the write request # 10 or the read request # 20 from the in-memory type information processing apparatus 102.
  • the refill control unit 15 sends the response to the command response unit 16 and / or data depending on the request source of the request and the request type (write request # 10 or read request # 20) corresponding to the received response. This is supplied to the cache control unit 12.
  • the command response unit 16 creates a write response # 15 or a read response # 25 based on the response supplied from the refill control unit 15 or the data cache control unit 12, and transmits it to the communication I / F 103.
  • Data to be arranged in the small capacity memory 2 may be arranged in the order of FIFO (First In First Out) order, random order, and the like according to an instruction from the data cache control unit 12.
  • FIFO First In First Out
  • the data cache apparatus 101 may be configured to transmit the write request # 10 to the in-memory information processing apparatus 102.
  • the data cache unit 10 of the data cache apparatus 101 parameters equivalent to the design parameters in the microprocessor cache configuration can be adopted.
  • FIG. 4 is a functional block diagram showing a detailed functional configuration of the data cache control unit 12.
  • the data cache control unit 12 includes a management table control unit 121, a data control unit 122, and a table storage unit 123.
  • the table storage unit 123 is a means for storing the management table 124.
  • the management table 124 is for managing information on data stored in the small capacity memory 2.
  • FIG. 5 is a diagram illustrating an example of the management table 124 stored in the table storage unit 123.
  • the management table 124 stores the data state, attribute name, data head address, and data length in association with each other.
  • Each row of the management table 124 is also called an entry.
  • the management table 124 according to the present embodiment includes a plurality of entries, each having a status, attribute name, data start address, and data length as one entry.
  • Each column of the management table 124 is not limited to this, and may be information indicating data handled by the data cache device 101.
  • the attribute name is for specifying data, and corresponds to the attribute name included in the write request # 10, the read request # 20, and the read response # 25.
  • the start address of the data indicates the start address in the small capacity memory 2 of the data recorded in the small capacity memory 2.
  • the data length indicates the length of the data.
  • the state indicates the state of data, and is represented by “invalid”, “clean”, “dirty”, and “refill clean”, for example, in the same manner as the cache of the microprocessor.
  • “Clean” indicates that the entry having the state is valid, the data exists in the small capacity memory 2, and the data is the data stored in the large capacity memory 5 of the in-memory type information processing apparatus 102. It is in a state that matches. Here, when the data stored in the small-capacity memory 2 and the data stored in the large-capacity memory 5 match, the data stored in the large-capacity memory 5 is cached in the small-capacity memory 2. Later, it is shown that the data has not been written (updated) without passing the data to the in-memory type information processing apparatus 102.
  • “Dirty” indicates that an entry having the state is valid, the data exists in the small capacity memory 2, and the data is stored in the large capacity memory 5 of the in-memory type information processing apparatus 102. Is in a state that does not match.
  • the data stored in the small-capacity memory 2 and the data stored in the large-capacity memory 5 do not match, the data stored in the large-capacity memory 5 is cached in the small-capacity memory 2. Further, it is shown that data has been written (updated) without passing the data to the in-memory type information processing apparatus 102.
  • Refill clean is a state in which the entry having the state is valid, the data does not exist in the small-capacity memory 2, and the in-memory information processing apparatus 102 is requested to read the data. It is.
  • the data state is not limited to the above four.
  • it may be in various states that can constitute a cache (see Non-Patent Document 2).
  • the data cache control unit 12 of the data cache device 101 uses information such as the attribute name, data start address, and data length.
  • the number of cache ways (data storage candidate location) is described as fully associative (can be stored in an arbitrary location). It is possible to make variable up to an arbitrary number.
  • state information indicating the state of the data is associated with the information of the data, whether the data is valid or not is stored in the large capacity memory 5 and the data stored in the small capacity memory 2. It is possible to easily confirm information such as whether or not the data matches.
  • the management table control unit 121 is means for managing the management table 124.
  • the management table control unit 121 updates an entry in the management table 124 or adds an entry to the management table 124.
  • the management table control unit 121 receives a request from the command interpretation unit 11.
  • the management table control unit 121 refers to the management table 124 to determine whether the data corresponding to the received write request # 10 or the data corresponding to the received read request # 20 exists in the small capacity memory 2. Confirm. Whether or not the data corresponding to each request exists in the small-capacity memory 2 is determined based on whether the attribute name of the entry in the management table 124 whose status is “clean” or “dirty” is included in each request. This is done by checking whether or not it matches the included attribute name. As described above, the management table control unit 121 can easily check whether the data corresponding to the read / write request exists in the small capacity memory 2 by referring to the management table 124.
  • the management table control unit 121 refers to the management table 124 and manages the free area of the small capacity memory 2.
  • the management table control unit 121 manages the free area of the small-capacity memory 2 based on the start address of the data included in the entry included in the management table 124 and the data length of the data.
  • the present invention is not limited to this.
  • the management table control unit 121 or the data control unit 122 may access the small-capacity memory 2 and check the free space.
  • the management table control unit 121 (1) request type (write request # 10 or read request # 20), (2) whether or not the data corresponding to the request exists in the small-capacity memory 2, (3) each request An instruction is issued to the data control unit 122 or the refill control unit 15 depending on whether or not there is an empty area whose size is equal to or larger than the data length of the data corresponding to.
  • the management table control unit 121 confirms the date and time of the last reference of each data for the data stored in the small-capacity memory 2, and selects data with a low reference degree.
  • the entry of data having a low reference degree is, for example, at least one of (a) an entry whose status is invalid and (b) an entry of data whose date and time last referenced are the oldest. It is not limited. Then, the management table control unit 121 supplies the data control unit 122 with the start address and data length of the data of the selected entry.
  • the order of entries that the management table control unit 121 of the data cache control unit 12 determines to have a low reference degree is the order of (a) and (b) above, but is not limited to this. Absent.
  • the management table control unit 121 of the data cache control unit 12 stores information on the selected entry.
  • the selected entry is referred to as “replacement target entry”, and the data corresponding to the entry is referred to as “replacement target data”.
  • an LRU (Least Recently Used) table, a FIFO order table, or the like may be provided to manage additional information for each data.
  • the data reference date / time information that is referred to for specifying the replacement target data is information that a general cache has, and will not be described.
  • the data control unit 122 When the data control unit 122 is supplied with the head address and the data length of the data from the management table control unit 121, the data control unit 122 creates a read instruction for reading data corresponding to the data length from the head address of the data. The data control unit 122 transmits the created read instruction to the data read unit 13.
  • the data control unit 122 when the data control unit 122 is supplied with the head address, data length, and data of the data from the management table control unit 121, the data control unit 122 creates a write instruction for writing the data from the head address of the data by the data length. The data control unit 122 transmits the created write instruction to the data writing unit 14.
  • the data control unit 122 receives responses from the data reading unit 13 and the data writing unit 14. The data control unit 122 supplies the received response to the command response unit 16.
  • the data control unit 122 when the data control unit 122 receives a response to the replacement target data read request # 20, the data control unit 122 creates a write request # 10 for writing the read data into the large-capacity memory 5. The data control unit 122 transmits the created write request # 10 to the refill control unit 15.
  • FIG. 6 is a flowchart showing an example of the processing flow of the data cache device 101 according to the present embodiment. As shown in FIG. 6, the data cache device 101 performs the following steps S61 to S66.
  • Step S61 The command interpretation unit 11 receives the write request # 10 or the read request # 20 from the communication I / F 103.
  • Step S62 The command interpretation unit 11 determines whether the write request # 10 or the read request # 20 received in step S61 is a request handled by the data cache device 101. When the write request # 10 or the read request # 20 is a request handled by the data cache device 101 (in the case of YES), the process proceeds to step S63. When the write request # 10 or the read request # 20 is not a request handled by the data cache device 101 (in the case of NO), the process proceeds to process A (see FIG. 7).
  • Step S63 The data cache control unit 12 determines whether the request supplied from the command interpretation unit 11 is the write request # 10 or the read request # 20. If the supplied request is the read request # 20, the process proceeds to step S64. When the request supplied from the command interpretation unit 11 is the write request # 10, the process proceeds to step S65.
  • Step S64 The data cache control unit 12 confirms whether or not the data corresponding to the read request # 20 supplied from the command interpretation unit 11 exists in the small capacity memory 2. Specifically, the management table control unit 121 of the data cache control unit 12 checks whether or not the attribute name included in the read request # 20 is included in the management table 124. When the data corresponding to the read request # 20 exists in the small capacity memory 2 (in the case of YES), the process proceeds to process B (see FIG. 8). When the data corresponding to the read request # 20 does not exist in the small capacity memory 2 (in the case of NO), the process proceeds to the process C (see FIG. 9).
  • Step S65 The data cache control unit 12 confirms whether or not the data corresponding to the write request # 10 supplied from the command interpretation unit 11 exists in the small capacity memory 2. Specifically, the management table control unit 121 of the data cache control unit 12 checks whether or not the attribute name included in the write request # 10 is included in the management table 124. When the data corresponding to the write request # 10 exists in the small capacity memory 2 (in the case of YES), the process proceeds to the process E (see FIG. 11). If the data corresponding to the write request # 10 does not exist in the small capacity memory 2 (NO), the process proceeds to step S66.
  • Step S66 The data cache control unit 12 determines whether or not the size of the free area of the small capacity memory 2 is equal to or larger than the data length included in the write request # 10. If the size of the free area is equal to or greater than the data length (in the case of YES), the process proceeds to process F (see FIG. 12). When the size of the empty area is smaller than the data length (in the case of NO), the process proceeds to process G (see FIG. 13).
  • FIG. 7 is a flowchart showing an example of the processing flow of the data cache device 101 when the write request # 10 or the read request # 20 is not a request handled by the data cache device 101.
  • the command interpretation unit 11 supplies a write request # 10 or a read request # 20 to the refill control unit 15.
  • the data cache device 101 performs the following steps S71 to S74.
  • Step S71 The refill control unit 15 transmits the write request # 10 or the read request # 20 supplied from the command interpretation unit 11 to the in-memory information processing apparatus 102.
  • Step S72 The refill control unit 15 stores the network information of the request source. Note that step S72 may be performed simultaneously with step S71 or may be performed before step S71.
  • Step S73 The refill control unit 15 receives a response to the request transmitted in step S71 from the in-memory type information processing apparatus 102.
  • Step S74 Since the request source of the request is another device connected to the network and the request is supplied from the command interpretation unit 11, the refill control unit 15 stores the network information stored in Step S72. The response received in step S73 is supplied to the command response unit 16. The command response unit 16 creates the write response # 15 or the read response # 25 including the network information based on the network information and the response received from the refill control unit 15, and transmits them to the network.
  • the information processing apparatus 100 can process a request not processed by the data cache apparatus 101 by the in-memory type information processing apparatus 102.
  • FIG. 8 shows an example of the processing flow of the data cache device 101 when the read request # 20 is a request handled by the data cache device 101 and the data corresponding to the read request # 20 exists in the small capacity memory 2. It is a flowchart to show. As shown in FIG. 8, the data cache device 101 performs the following steps S81 to S83.
  • Step S81 The data cache control unit 12 creates a read instruction for the data read unit 13 in accordance with the read request # 20. Specifically, the data cache control unit 12 performs the following processes (1) to (3). (1) The management table control unit 121 of the data cache control unit 12 in step S64 confirms that it has the attribute name included in the read request # 20. Read the length. (2) The management table control unit 121 of the data cache control unit 12 supplies the start address and the data length of the data read from the management table 124 to the data control unit 122. (3) The data control unit 122 creates a read instruction for reading the data corresponding to the data length from the head address from the small-capacity memory 2 and transmits the read instruction to the data reading unit 13.
  • Step S82 The data reading unit 13 reads data from the small-capacity memory 2 in accordance with the read instruction created in step S81.
  • Step S83 The command response unit 16 receives the data read by the data reading unit 13 in step S82 from the data control unit 122 of the data cache control unit 12 as a response to the read instruction. Then, the command response unit 16 creates a read response # 25 having the attribute name included in the read request # 20 based on the received response, and transmits it to the network together with the request source network information.
  • the information processing apparatus 100 is the read request # 20 determined to be processed by the data cache apparatus 101, and the data corresponding to the read request # 20 is in the small capacity memory 2, the read request # 20 is output.
  • the data cache device 101 performs processing.
  • FIG. 9 shows an example of the processing flow of the data cache device 101 when the read request # 20 is a request handled by the data cache device 101 and the data corresponding to the read request # 20 does not exist in the small capacity memory 2. It is a flowchart to show. As shown in FIG. 9, the data cache device 101 performs the following steps S90 to S99.
  • Step S90 The management table control unit 121 of the data cache control unit 12 extracts an entry of data with a low reference degree from the entries included in the management table 124.
  • entries of data with a low reference degree are extracted in the order of (a) an entry whose state is “invalid”, and (b) an entry of data having the oldest reference date and time.
  • the management table control unit 121 may extract the entry having the longest data length included in the entry. .
  • the management table control unit 121 may extract an entry of data having the longest data length among entries of data whose date and time last referenced is before a predetermined period.
  • the management table control unit 121 of the data cache control unit 12 updates the status of the extracted entry to “refill clean”.
  • the extracted entry is referred to as “replacement candidate entry”.
  • the management table control unit 121 stores information on replacement candidate entries (attribute name, data start address and data length) and a state before the state is updated to “refill clean”.
  • Step S91 The refill control unit 15 transmits the read request # 20 supplied from the data cache control unit 12 to the in-memory type information processing apparatus 102.
  • Step S92 The refill control unit 15 stores the network information of the request source. Note that step S92 may be performed simultaneously with step S91 or may be performed before step S91.
  • Step S93 The refill control unit 15 receives a response to the read request # 20 transmitted in step S91 (read data read by the in-memory type information processing apparatus 102) from the in-memory type information processing apparatus 102. Since the request source of the request is another device connected to the network and the request is supplied from the data cache control unit 12, the refill control unit 15 stores the network information stored in step S92. The received response is supplied to the command response unit 16 and the data cache control unit 12.
  • Step S94 The management table control unit 121 of the data cache control unit 12 reads the data (corresponding to the read request # 20) read by the in-memory information processing apparatus 102 based on the response supplied from the refill control unit 15 in step S93. It is confirmed whether or not there is an empty area in the small-capacity memory 2 that is equal to or larger than the data length of (read data). If there is an empty area in the small capacity memory 2 that is equal to or larger than the data length of the data corresponding to the read request # 20 (YES), the process proceeds to step S96. If there is no free area in the small capacity memory 2 larger than the data length of the data corresponding to the read request # 20 (in the case of NO), the process proceeds to step S95.
  • Step S95 The data cache control unit 12 performs processing when there is no free area in the small capacity memory 2 that is larger than the data length of the read data. This process will be described with reference to FIG.
  • Step S96 When there is an empty area larger than the data length of the read data in the small capacity memory 2 (YES in step S94), the management table control unit 121 of the data cache control unit 12 stores the management table 124 in the management table 124. , Add a new entry. The management table control unit 121 sets the “status”, “attribute name”, “data start address”, and “data length” of the added entry to “clean”, the attribute name included in the read request # 20, and the free space, respectively. Address and the data length of the read data. Further, the state of the replacement candidate entry extracted in step S90 is updated to the original state.
  • Step S97 The data cache control unit 12 creates a write instruction for writing the read data into the data writing unit 14. Specifically, the data cache control unit 12 performs the following processes (1) and (2). (1) The management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the start address, data length, and read data of the data included in the entry added in step S96. (2) The data control unit 122 creates a write instruction for writing the data corresponding to the data length from the head address to the small-capacity memory 2 and transmits the write instruction to the data writing unit 14.
  • Step S98 The data writing unit 14 writes data into the small capacity memory 2 in accordance with the write instruction created in step S97.
  • Step S99 The command response unit 16 creates a read response # 25 including the network information based on the network information and the response received from the refill control unit 15, and transmits them to the network.
  • the information processing apparatus 100 processes the read request # 20 in the data cache apparatus 101 when the following (A) to (C) are satisfied, and further processes the read data in a small capacity Arranged in the memory 2.
  • (B) Data corresponding to the read request # 20 does not exist in the small-capacity memory 2;
  • (C) The small capacity memory 2 has an empty area having a size equal to or larger than the data length of the data corresponding to the read request # 20.
  • FIG. 10 is a flowchart showing an example of the processing flow of the data cache device 101 when the following (A) to (C) are satisfied, and shows the detailed processing of step S95 of FIG.
  • Read request # 20 is a request handled by the data cache device 101.
  • Data corresponding to the read request # 20 does not exist in the small-capacity memory 2;
  • the size of the free area in the small capacity memory 2 is smaller than the data length of the read data read by the read request # 20.
  • the data cache device 101 performs the following steps S100 to S110.
  • Step S100 The data cache control unit 12 determines that the sum of the data length of the replacement candidate entry and the size of the free area in the small capacity memory 2 is a response to the read request # 20 (read data read by the in-memory information processing apparatus 102) It is determined whether the data length is equal to or greater than (). If it is longer than the data length (in the case of YES), the process proceeds to step S102. If the data length is smaller (NO), the process proceeds to step S101.
  • Step S101 The management table control unit 121 of the data cache control unit 12 updates the status of the replacement candidate entry extracted in step S90 to “invalid”, and ends the process.
  • the management table control unit 121 may update the state of the replacement candidate entry to the original state.
  • Step S102 The management table control unit 121 of the data cache control unit 12 confirms whether or not the state before update of the replacement candidate entry stored in step S90 is “clean”. When the state before the update is “clean” (in the case of YES), the process proceeds to step S108. When the state before the update is not “clean” (in the case of NO), the process proceeds to step S103.
  • Step S103 The data cache control unit 12 uses the replacement candidate entry as a replacement target entry, and creates a replacement target data read instruction to the data reading unit 13. Specifically, the data cache control unit 12 performs the following processes (1) and (2). (1) The management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the data start address and the data length of the data of the replacement target entry (replacement candidate entry) stored in step S90. . (2) The data control unit 122 creates a read instruction for reading data corresponding to the data length from the head address from the small-capacity memory 2 and transmits the read instruction to the data reading unit 13.
  • Step S104 The data reading unit 13 reads data (replacement target data) from the small-capacity memory 2 in accordance with the read instruction created in step S103.
  • Step S105 The data control unit 122 of the data cache control unit 12 receives the replacement target data read by the data reading unit 13 in step S104 from the data reading unit 13. Then, the data control unit 122 creates the replacement request data write request # 10.
  • Step S106 The refill control unit 15 transmits the replacement request data write request # 10 created by the data control unit 122 of the data cache control unit 12 to the in-memory information processing apparatus 102 in step S105.
  • Step S107 The refill control unit 15 receives a response to the write request # 10 transmitted in step S106 from the in-memory information processing apparatus 102. Since the request source of the request is the data cache control unit 12, the refill control unit 15 supplies the received response to the data cache control unit 12.
  • Step S108 The management table control unit 121 of the data cache control unit 12 sets the “status” and “data length” of the entry to be replaced as the data length of the data corresponding to “clean” and the read request # 20, respectively.
  • the management table control The unit 121 updates the “data start address” of the replacement target entry.
  • Step S109 The data cache control unit 12 creates a write instruction to the data writing unit 14 for the read data corresponding to the read request # 20. Specifically, the data cache control unit 12 performs the following processes (1) and (2). (1) The management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the start address of the data included in the entry updated in step S108, the read data read, and the data length of the data. . (2) The data control unit 122 creates a write instruction for writing the data corresponding to the data length from the head address in the small capacity memory 2 and transmits the write instruction to the data writing unit 14.
  • Step S110 The data writing unit 14 writes data into the small capacity memory 2 in accordance with the write instruction created in step S109. Then, the process proceeds to step S99 in FIG.
  • the data cache control unit 12 If the response to the replacement target data write request # 10 received in S107 is a response indicating that the write has not been completed normally, the data cache control unit 12 skips steps S108 to S110. To do. Furthermore, the management table control unit 121 of the data cache control unit 12 changes the status of the entry to be replaced to “invalid” or restores the original state.
  • step S110 in step S99 of FIG. 9, as described above, the command response unit 16 creates a read response # 25 including the network information based on the network information and response received from the refill control unit 15. , Send to the network.
  • the information processing apparatus 100 reads the data corresponding to the read request # 20 from the in-memory information processing apparatus 102 when the following (A) to (C) are satisfied,
  • the replacement target data is selected so that the data is arranged in the small capacity memory 2.
  • (C) The small-capacity memory 2 does not have a vacant area larger than the data length of the data corresponding to the read request # 20.
  • the data cache control unit 12 arranges the read data in the small capacity memory 2,
  • the replacement target data is arranged in the large capacity memory 5.
  • the information processing apparatus 100 can arrange data with a high reference degree (for example, read data) in the high-speed small-capacity memory 2 and data with a low reference degree in the large-capacity memory 5. Data processing can be performed at higher speed.
  • a high reference degree for example, read data
  • FIG. 11 shows an example of the processing flow of the data cache device 101 when the write request # 10 is a request handled by the data cache device 101 and the data corresponding to the write request # 10 exists in the small capacity memory 2. It is a flowchart to show. As shown in FIG. 11, the data cache device 101 performs the following steps S111 to S113.
  • Step S111 The data cache control unit 12 creates a write instruction for the data write unit 14 in accordance with the write request # 10. Specifically, the data cache control unit 12 performs the following processes (1) to (3). (1) The management table control unit 121 of the data cache control unit 12 reads the head address of data in the entry confirmed to have the attribute name included in the write request # 10 in step S65. (2) The management table control unit 121 of the data cache control unit 12 supplies the start address of the read data read from the management table 124 and the data length and data included in the write request # 10 to the data control unit 122. . (3) The data control unit 122 creates a write instruction for writing the data corresponding to the data length from the head address to the small-capacity memory 2 and transmits it to the data writing unit 14.
  • Step S112 The data writing unit 14 writes data into the small capacity memory 2 in accordance with the write instruction created in step S111.
  • Step S113 The command response unit 16 sends response information indicating whether or not the writing based on the write request # 10 has been normally completed as a response to the data writing by the data writing unit 14 in Step S112. 12 data control units 122. Then, the command response unit 16 creates a write response # 15 including the response information based on the received response, and transmits it to the network together with the network information of the request source.
  • the write request # 10 10 is processed by the data cache device 101.
  • FIG. 12 is a flowchart showing an example of the processing flow of the data cache device 101 when the following (A) to (C) are satisfied.
  • A) Write request # 10 is a request handled by the data cache device 101.
  • B) Data corresponding to the write request # 10 does not exist in the small-capacity memory 2;
  • C) The size of the free area of the small capacity memory 2 is equal to or greater than the data length included in the write request # 10.
  • the data cache device 101 performs the following steps S121 to S124.
  • Step S121 The management table control unit 121 of the data cache control unit 12 adds a new entry to the management table 124.
  • the management table control unit 121 sets the “status”, “attribute name”, “data start address”, and “data length” of the added entry to “dirty”, the attribute name included in the write request # 10, and the free space, respectively. And the data length included in the write request # 10.
  • Step S122 The data cache control unit 12 creates a write instruction for the data write unit 14 in accordance with the write request # 10. Specifically, the data cache control unit 12 performs the following processes (1) and (2). (1) The management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the start address of the data included in the entry added in step S121 and the data length and data included in the write request # 10. To do. (2) The data control unit 122 creates a write instruction for writing the data corresponding to the data length from the head address to the small-capacity memory 2 and transmits the write instruction to the data writing unit 14.
  • Step S123 The data writing unit 14 writes data in the small capacity memory 2 in accordance with the write instruction created in Step S122.
  • Step S124 As a response to the data writing by the data writing unit 14 (step S123), the command response unit 16 sends response information indicating whether or not the data writing to the write request # 10 has been normally completed as a data cache. Received from the data control unit 122 of the control unit 12. Then, the command response unit 16 creates a write response # 15 including the response information based on the received response, and transmits it to the network together with the network information of the request source.
  • step S124 if the response information indicates that the write request # 10 has not ended normally, the management table control unit 121 of the data cache control unit 12 deletes the entry added in step S121.
  • the information processing apparatus 100 processes the write request # 10 in the data cache apparatus 101 when the following (A) to (C) are satisfied.
  • (B) Data corresponding to the write request # 10 does not exist in the small-capacity memory 2;
  • (C) The small capacity memory 2 has an empty area whose size is equal to or larger than the data length of the data corresponding to the write request # 10.
  • FIG. 13 is a flowchart showing an example of the processing flow of the data cache device 101 when the following (A) to (C) are satisfied.
  • A) Write request # 10 is a request handled by the data cache device 101.
  • B) Data corresponding to the write request # 10 does not exist in the small-capacity memory 2;
  • C) The size of the free area in the small-capacity memory 2 is smaller than the data length included in the write request # 10.
  • the data cache device 101 performs the following steps S131 to S140.
  • Step S131 The data cache control unit 12 determines that the sum of the data length of the entry included in the management table 124 and the size of the free area in the small capacity memory 2 is equal to or greater than the data length included in the write request # 10.
  • An entry with a low reference degree is selected as an entry to be replaced.
  • entries of data with a low reference degree are extracted in the order of (a) an entry whose state is “invalid”, and (b) an entry of data having the oldest reference date and time. An example will be explained.
  • the management table control unit 121 of the data cache control unit 12 stores information on the selected replacement target entry.
  • Step S132 The management table control unit 121 of the data cache control unit 12 sets the “status” and “data length” of the replacement target entry selected in step S131 to “dirty” and the data length included in the write request # 10, respectively. To do. A case will be described in which when the data included in the write request # 10 is written, the leading address of the data changes depending on the position of the free area in the small capacity memory 2 and the arrangement position of the replacement target data in the small capacity memory 2. In this case, the management table control unit 121 updates the “data start address” of the selected entry.
  • Step S133 The data cache control unit 12 creates a replacement instruction data read instruction for the data reading unit 13. Specifically, the data cache control unit 12 performs the following processes (1) and (2). (1) The management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the data start address and the data length of the replacement target entry stored in step S131. (2) The data control unit 122 creates a read instruction for reading data corresponding to the data length from the head address from the small-capacity memory 2 and transmits the read instruction to the data reading unit 13.
  • Step S134 The data reading unit 13 reads data (replacement target data) from the small-capacity memory 2 in accordance with the read instruction created in step S133.
  • Step S135 The data cache control unit 12 creates a write instruction for the data write unit 14 in accordance with the write request # 10. Specifically, the data cache control unit 12 performs the following processes (1) and (2).
  • the management table control unit 121 of the data cache control unit 12 supplies the data control unit 122 with the start address of the data included in the entry updated in step S132 and the data length and data included in the write request # 10. To do.
  • the data control unit 122 creates a write instruction for writing the data corresponding to the data length from the head address in the small capacity memory 2 and transmits the write instruction to the data writing unit 14.
  • Step S136 The data writing unit 14 writes data to the small-capacity memory 2 in accordance with the write instruction created in Step S135.
  • Step S137 The data control unit 122 of the data cache control unit 12 receives from the data reading unit 13 the replacement target data read by the data reading unit 13 in step S134. Then, the data control unit 122 creates the replacement request data write request # 10.
  • Step S138 The refill control unit 15 transmits the replacement target data write request # 10 created by the data control unit 122 of the data cache control unit 12 in step S137 to the in-memory information processing apparatus 102.
  • Step S139 The refill control unit 15 receives a response to the write request # 10 transmitted in step S138 from the in-memory type information processing apparatus 102. Since the request source of the request is the data cache control unit 12, the refill control unit 15 supplies the received response to the data cache control unit 12.
  • the processing for the write request # 10 received from the network (steps S135 to S136) and the processing for the replacement request data write request # 10 created by the data cache control unit 12 (steps S137 to S139) are simultaneously performed. Either may be performed, or either may be performed first.
  • Step S140 As a response to the data writing by the data writing unit 14 (step S136), the command response unit 16 displays response information indicating whether or not the data writing to the write request # 10 has been normally completed, as a data cache. Received from the data control unit 122 of the control unit 12. Then, the command response unit 16 creates a write response # 15 including the response information based on the received response, and transmits it to the network together with the network information of the request source.
  • the data cache control unit 12 determines that the replacement target data write request # 10 is abnormal in step S140. Notify the end.
  • the command response unit 16 receives the notification of the abnormal end, the command response unit 16 transmits a write response # 15 including response information indicating that the data writing has not ended normally as a response to the write request # 10 transmitted from the network. To do. Then, the data cache control unit 12 returns the replacement target data and the entry for the replacement target data to the state before step S131.
  • step S131 the management table control unit 121 of the data cache control unit 12 determines that the sum of the size of the free area in the small capacity memory 2 and the data length of the data is equal to or greater than the data length included in the write request # 10. A case where it is determined that there is no data will be described. In this case, the data cache control unit 12 transfers a write instruction to the refill control unit 15, and the data cache device 101 performs the processes of steps S71 to S74. In this case, the source of the request is the data cache control unit 12, but the response to the request is supplied to the command response unit 16 as in step S 74.
  • the information processing apparatus 100 places the replacement target data in the large-capacity memory 5 and issues the write request # 10 with the data cache apparatus 101. Process. As a result, the information processing apparatus 100 places the data corresponding to the write request # 10 in the small capacity memory 2.
  • (B) Data corresponding to the write request # 10 does not exist in the small-capacity memory 2;
  • (C) The small-capacity memory 2 does not have an empty area larger than the data length of the data corresponding to the write request # 10.
  • the information processing apparatus 100 can handle a large amount of data at a higher speed.
  • data stored in the small-capacity memory 2 with a lower reference degree is stored in the large size of the in-memory type information processing device 102. Arranged in the capacity memory 5. This is because the data cache control unit 12 writes the data to be written or the data read according to the read request into the small capacity memory 2.
  • the information processing apparatus 100 can be arranged in the small-capacity memory 2 that can process, for example, data with a higher reference degree such as read data and write data at a high speed. Therefore, even a large amount of data can be handled at a higher speed.
  • FIGS. 1 A second embodiment of the present invention will be described with reference to FIGS.
  • the small-capacity memory 2 has been described as an example in which the small-capacity memory 2 is configured separately from the accelerator 1.
  • a cache memory corresponding to the small-capacity memory 2 is built in an accelerator will be described.
  • members having the same functions as those included in the drawings described in the first embodiment described above are given the same reference numerals, and descriptions thereof are omitted.
  • FIG. 14 is a block diagram showing a hardware configuration of the information processing apparatus 200 according to the second embodiment of the present invention.
  • the information processing device 200 includes a data cache device 201, an in-memory type information processing device 102, and a communication I / F 103.
  • the data cache device 201 includes an accelerator 3.
  • FIG. 15 is a functional block diagram showing a functional configuration of the accelerator 3 of the data cache device 201.
  • the accelerator 3 includes a data cache unit 30 that processes requests from the network at high speed. As shown in FIG. 15, the data cache unit 30 includes a command interpretation unit 11, a data cache control unit 32, a refill control unit 15, and a command response unit 16.
  • the data cache control unit 32 has the same function as that of the data cache control unit 12 of the first embodiment. The detailed configuration of the data cache control unit 32 will be described with reference to FIG.
  • FIG. 16 is a functional block diagram showing a detailed functional configuration of the data cache control unit 32.
  • the data cache control unit 32 includes a management table control unit 321 and a small capacity memory 323.
  • the small capacity memory 323 corresponds to the table storage unit 123 and the small capacity memory 2 according to the first embodiment.
  • a management table 324 is stored in the small capacity memory 323.
  • the management table 324 will be described with reference to FIG.
  • FIG. 17 is a diagram illustrating an example of the management table 324 stored in the small capacity memory 323.
  • the management table 324 is different from the management table 124 in the first embodiment in that data corresponding to each entry is stored. As shown in FIG. 17, the management table 324 stores the data state, the attribute name, the data start address, the data length, and the data in association with each other.
  • the management table control unit 321 is means for managing the management table 324.
  • the management table control unit 321 updates an entry in the management table 324 or adds an entry to the management table 324.
  • the management table control unit 321 determines whether or not the data corresponding to the request received from the command interpretation unit 11 exists in the small-capacity memory 323, similarly to the management table control unit 121 of the first embodiment. Check.
  • management table control unit 321 refers to the management table 324 and manages the free area of the small capacity memory 323. Further, the management table control unit 321 determines (1) request type (write request # 10 or read request # 20), (2) whether data corresponding to the request exists in the small capacity memory 323, (3) An instruction is issued to the refill control unit 15 depending on whether or not there is an empty area larger than the data length of the data corresponding to each request.
  • the management table control unit 321 confirms the date and time of the last reference of each data with respect to the data stored in the management table 324 of the small-capacity memory 323, and selects data with a low reference degree.
  • the entry of data having a low reference degree is, for example, at least one of (a) an entry whose status is invalid and (b) an entry of data whose date and time last referenced are the oldest. It is not limited.
  • the order of entries that the management table control unit 321 of the data cache control unit 32 determines that the reference degree is low is the order of (a) and (b) above, but is not limited to this. Absent.
  • the management table control unit 321 of the data cache control unit 32 stores information on the selected entry.
  • management table control unit 321 reads / writes data from the management table 324 according to the request. Then, these responses are supplied to the command response unit 16.
  • the management table control unit 321 reads data (replacement target data) included in the replacement target entry. Then, a write request # 10 for writing the read replacement target data into the large-capacity memory 5 is created. The management table control unit 321 transmits the created write request # 10 to the refill control unit 15.
  • the data cache device 201 includes the accelerator 3 incorporating the small capacity memory 323.
  • data control unit 122 the data reading unit 13, and the data writing unit 14 as in the first embodiment. Therefore, according to the data cache device 201 of the present embodiment, data can be read / written without going through a plurality of means, so that data access can be further speeded up.
  • FIG. 18 is a block diagram showing an example of the configuration of the information processing apparatus 300 according to the present embodiment.
  • the information processing device 300 includes a data cache device 301 and a database management device 102.
  • the database management device (also simply referred to as a management device) 102 has a built-in large capacity memory 5 having a larger capacity than the cache memory 303. Since the configuration of the database management apparatus 102 is the same as that of the in-memory information processing apparatus 102 according to the first and second embodiments, the description thereof is omitted.
  • the data cache device 301 includes a data cache control unit 302 and a cache memory 303.
  • the data cache control unit 302 is realized by an accelerator, for example. Further, the cache memory 303 may be provided in the accelerator, or may be provided separately from the accelerator.
  • the data cache control unit 302 arranges data of a predetermined condition stored in the cache memory 303 in the large capacity memory 5. Control to do.
  • the data of the predetermined condition is, for example, data with a lower reference degree or data of a specific type, but this embodiment is not limited to this.
  • the specific type of data for example, data in which the state in the entry is “invalid” described in the first embodiment can be cited.
  • the data cache control unit 302 writes the data to be written into the cache memory 303 according to the write request. Further, when the received request is a read request, the data cache control unit 302 writes the data read according to the read request into the cache memory 303.
  • the information processing apparatus 300 arranges data of a predetermined condition in the large-capacity memory 5 of the database management apparatus 102 and arranges data to be read or data to be written in the cache memory 303.
  • the data corresponding to the write request or the data corresponding to the read request is stored in the cache memory 303 which can be processed at high speed, and the data of a predetermined condition is arranged in the large capacity memory 5. Therefore, even a large amount of data can be handled at a higher speed.
  • the information processing apparatus 400 according to the present embodiment is configured to include the second accelerator 9 in the data cache apparatus 101 of the information processing apparatus 100 according to the first embodiment. Note that the information processing apparatus 400 according to the present embodiment is not limited to this.
  • the information processing device 400 may be configured to include the second accelerator 9 in the data cache device 201 of the information processing device 200 according to the second embodiment, or the information processing device according to the third embodiment.
  • the data cache device 301 of the device 300 may be configured to include the second accelerator 9.
  • FIG. 19 is a block diagram illustrating an example of a hardware configuration of an information processing device 400 according to the fourth embodiment of the present invention.
  • the information processing device 400 includes a data cache device 401, an in-memory type information processing device 102, and a communication I / F 103.
  • the data cache device 401 includes an accelerator 1, a small capacity memory 2, and a second accelerator 9.
  • the in-memory type information processing apparatus 102 and the communication I / F 103 of the information processing apparatus 400 are the same as the in-memory type information processing apparatus 102 and the communication I / F 103 according to each of the above-described embodiments, and thus description thereof is omitted.
  • the second accelerator 9 is realized by, for example, an FPGA, a many-core processor, or the like, similar to the accelerator 1.
  • the second accelerator 9 is connected to the accelerator 1.
  • the second accelerator 9 determines whether or not data having the attribute name of the read / write request exists in the in-memory information processing apparatus 102.
  • the functional configuration of the second accelerator 9 will be described with reference to different drawings.
  • the second accelerator 9 may be configured on the same device as the accelerator 1 or may be configured on a different device from the accelerator 1.
  • FIG. 20 is a functional block diagram illustrating an example of a functional configuration of the second accelerator 9 of the data cache device 401.
  • the second accelerator 9 includes a determination unit (data presence determination unit) 91, a transmission unit 92, a second table storage unit 93, and a management unit 95.
  • the second table storage unit 93 is a means for storing the second management table 94.
  • the second management table 94 is for managing information indicating whether or not the data specified by the attribute name is stored in the large-capacity memory 5 of the in-memory information processing apparatus 102.
  • the second management table 94 includes an attribute name and information associated with the attribute name. The latter information is information indicating whether or not the data specified by the attribute name is stored in the large capacity memory 5.
  • the second management table 94 may include attribute names included in the data stored in the large-capacity memory 5. According to this, the fact that the attribute name is included in the second management table 94 is information in which data specified by the attribute name is stored in the large capacity memory 5.
  • the second management table 94 may further include information related to the attribute name and indicating the in-memory type information processing apparatus 102 in which data specified by the attribute name is stored. For example, it is assumed that a plurality of information processing apparatuses 400 are connected via a network and a certain information processing apparatus 400 receives a request. At this time, the in-memory type information processing apparatus 102 having the large-capacity memory 5 that stores the data specified by the attribute name included in the received request is changed to the in-memory type information processing included in another information processing apparatus. Assume that the device 102 is used. At this time, the second management table 94 includes information indicating the in-memory type information processing apparatus 102.
  • the information may be information indicating the other information processing apparatus, not information indicating the in-memory type information processing apparatus 102 included in the other information processing apparatus.
  • Information indicating the large-capacity memory 5 included in the in-memory type information processing apparatus 102 may be used. That is, the second management table 94 only needs to store information indicating where the data specified by the attribute name is stored.
  • the second table storage unit 93 may be built in the second accelerator 9 or may be configured separately from the second accelerator 9.
  • the management unit 95 is a means for managing the second management table 94 stored in the second table storage unit 93.
  • the management unit 95 receives, from the in-memory type information processing apparatus 102, a response similar to the response received by the refill control unit 15 (for example, the response received in step S73). And the management part 95 updates the information of the 2nd management table 94 according to this response.
  • the management unit 95 stores the data stored in the other in-memory type information processing apparatus described above in the second management table 94.
  • the information shown is included, the information is managed.
  • the management unit 95 transmits the other in-memory type information processing apparatus.
  • the configuration may be such that information related to data stored in is acquired and updated via a network.
  • the determination unit 91 receives a read / write request from the communication I / F 103. Then, the determination unit 91 refers to the second table storage unit 93 to determine whether or not the data specified by the attribute name included in the received request is stored in the in-memory type information processing apparatus 102. (Existence determination). The presence determination of the data specified by the attribute name performed by the determination unit 91 may be realized by various algorithms, and may be implemented by, for example, Counting Bloom Filter or the like. When the data is not stored in the in-memory information processing apparatus 102, the determination unit 91 supplies information indicating the transmission destination of the received request to the transmission unit 92.
  • the transmission unit 92 receives information indicating the transmission destination of the request received by the determination unit 91 from the determination unit 91. Then, the transmission unit 92 stops each process in the data cache device 401 for the request received by the determination unit 91. Specifically, the transmission unit 92 transmits a stop instruction for stopping the process corresponding to the request received by the accelerator 1 to the accelerator 1. Upon receiving this instruction, the accelerator 1 can stop the process being executed.
  • the transmission unit 92 transmits a response to another device via the network. Specifically, the transmission unit 92 transmits a response to the request transmission destination via the communication I / F 103 indicating that there is no data targeted for the request in its own device that has received the request. To do.
  • the second management table 94 includes information indicating the in-memory type information processing apparatus 102 of another information processing apparatus in which data specified by the attribute name included in the received request is stored, determination is made.
  • the unit 91 may supply information indicating the in-memory type information processing apparatus 102 of the other information processing apparatus to the transmission unit 92 together with the received request.
  • the transmission unit 92 may transfer the request to the other information processing apparatus via the communication I / F 103.
  • FIG. 21 is a diagram showing an example of the processing flow of the second accelerator 9 in the data cache device 401 according to the present embodiment.
  • the second accelerator 9 performs the following steps S211 to S214.
  • Step S211 The determination unit 91 receives the write request # 10 or the read request # 20 from the communication I / F 103.
  • the request received at this time is the same as the request received by the command interpretation unit 11 of the accelerator 1 in step S61 described above.
  • Step S212 The determination unit 91 determines whether or not the data specified by the attribute name included in the received request is stored in the in-memory type information processing apparatus 102. If it is stored (in the case of YES), the second accelerator 9 ends the process. Therefore, the data cache device 401 performs the same processing (the processing shown in FIGS. 6 to 13) as when the second accelerator 9 does not exist like the data cache device according to the first to third embodiments. . If not stored (NO), the process proceeds to step S213.
  • Step S213 The transmission unit 92 transmits a process stop instruction to the accelerator 1 in order to stop each process in the data cache device 401 in response to the request received by the determination unit 91. As a result, the accelerator 1 stops the process being executed (for example, the process shown in FIGS. 6 to 13).
  • Step S214 The transmission unit 92 transmits to the request transmission destination a response indicating that there is no data that is the target of the request, or the request received by the determination unit 91.
  • the request is transmitted to another information processing apparatus in which data specified by the attribute name included in is stored. Then, the second accelerator 9 ends the process.
  • steps S213 and S214 may be performed in reverse order or simultaneously.
  • the second accelerator 9 of the data cache device 401 receives a read request or a write request from the outside of the information processing device 400, data corresponding to the received request is stored in the in-memory type information processing device 102. It is because it is determined whether or not. This is because the second accelerator 9 transmits a response to another device when data is not stored. Furthermore, this is because the transmission unit 92 of the second accelerator 9 of the data cache device 401 stops processing in the data cache device 401 (processing of the accelerator 1) for the request.
  • the average response delay of the entire system including information processing apparatus 400 can be reduced.
  • the information processing apparatus 400 stores the data in the in-memory The received request is transferred to other information processing apparatuses including the type information processing apparatus 102.
  • each operation in the above-described embodiment can be executed by hardware or software, or a combination of both.
  • a data cache device including a cache memory and a management device including a large-capacity memory having a capacity larger than that of the cache memory, and the data cache device receives a read request or a write request from outside the information processing device
  • Data cache control means for controlling the data stored in the cache memory to be placed in the large-capacity memory when the received request is a write request.
  • the write target data is written to the cache memory according to the write request, and when the request is a read request, the data read according to the read request is written to the cache memory.
  • the data cache control means checks whether there is data corresponding to the received request in the cache memory, and if there is data corresponding to the request in the cache memory, According to the request, data is read from or written to the cache memory, and when there is no data corresponding to the request in the cache memory, the data of the predetermined condition is arranged in the large-capacity memory.
  • the information processing apparatus according to appendix 1, wherein the data to be written or the data read according to the read request is written to the cache memory.
  • the data cache control unit stores the data length of the data to be written or the data to be read in the read request in the cache memory. It is further confirmed whether or not there is a free area of the above size, and when there is a free area of a size greater than or equal to the data length in the cache memory, according to the data to be written or the read request, the large capacity The data read from the memory is written to the free area of the cache memory, and when there is no free area larger than the data length in the cache memory, the data of the predetermined condition is arranged in the large capacity memory In addition to the data to be written or the read request. Writing the read data in the cache memory, the information processing apparatus according to note 2, wherein the.
  • the data cache control means includes a management table control means for controlling a management table for managing information on data stored in the cache memory, and the management table includes information on the data. , An identifier indicating data, a data length of the data, and a start address of the data in the cache memory are included, and the management table control unit refers to the management table to store the data in the cache memory. 4.
  • the information processing apparatus according to appendix 2 or 3, wherein it is confirmed whether or not data corresponding to the received request exists.
  • the management table control means controls the data cache control means to place the data of the predetermined condition in the large-capacity memory, and is read according to the data to be written or the read request.
  • the information processing apparatus according to appendix 5, wherein the state information is updated when the data is written to the cache memory.
  • the said cache memory is incorporated in the said data cache control means,
  • the said management table is stored in the said cache memory,
  • the information of the said data is stored in the said management table as the information with respect to the said data.
  • the said transmission means transmits the response which shows that the data corresponding to the said request are not stored in the said management apparatus to the transmission destination of the said request,
  • the additional remark 11 characterized by the above-mentioned. Information processing device.
  • the data cache device is included in each of the management device connected to the data cache device and one or more other information processing devices connected to the data cache device via a network.
  • Management means for managing information indicating data stored in another management device is further provided, and when data corresponding to the request is stored in the other management device, the transmission means The information processing apparatus according to appendix 11, wherein the received request is transmitted to the other information processing apparatus including a management apparatus.
  • the data cache device receives a read request or a write request from the outside of the information processing device, and determines whether the received read request or write request is a request to be processed by the data cache device.
  • a determination unit; and a refill control unit that transmits the read request or the write request to the management device and receives a read response or a write response corresponding to the read request or the write request, respectively, and the determination unit
  • the read request or write request is supplied to the refill control means, and the received read request or write request is
  • a data cache device connected to a management device having a built-in cache memory and a large-capacity memory having a larger capacity than the cache memory, wherein a read request or an external request from the data cache device and the management device
  • data cache control means is provided for controlling the data of a predetermined condition stored in the cache memory to be placed in the large-capacity memory, and the data cache control means Writing data to be written into the cache memory according to the write request when the request is a write request, and writing data read according to the read request into the cache memory when the request is a read request;
  • a data cache device is provided for controlling the data of a predetermined condition stored in the cache memory to be placed in the large-capacity memory, and the data cache control means Writing data to be written into the cache memory according to the write request when the request is a write request, and writing data read according to the read request into the cache memory when the request is a read request;
  • the data cache control means checks whether or not the data corresponding to the received request exists in the cache memory, and if the data corresponding to the request exists in the cache memory, According to the request, data is read from or written to the cache memory, and when there is no data corresponding to the request in the cache memory, the data of the predetermined condition is arranged in the large-capacity memory. 16.
  • the data cache device according to supplementary note 15, wherein the data cache device is controlled to write the data to be written or the data read in accordance with the read request to the cache memory.
  • the data cache control unit stores the data length of the data to be written or the data to be read in the read request in the cache memory. It is further confirmed whether or not there is a free area of the above size, and when there is a free area of the data length or more in the cache memory, the large capacity memory according to the data to be written or the read request. The data read from is written to the free area of the cache memory, and when there is no free area larger than the data length in the cache memory, the data of the predetermined condition is arranged in the large capacity memory. In addition, control is performed according to the data to be written or the read request. Writing the read data in the cache memory, the data cache device according to appendix 16, wherein the.
  • the data cache control means includes a management table control means for controlling a management table for managing information on data stored in the cache memory, and the management table includes information on the data. , An identifier indicating data, a data length of the data, and a start address of the data in the cache memory are included, and the management table control unit refers to the management table to store the data in the cache memory. 18.
  • the data cache device according to appendix 16 or 17, wherein it is confirmed whether or not data corresponding to the received request exists.
  • the management table control means controls the data cache control means to place the data of the predetermined condition in the large-capacity memory and is read according to the data to be written or the read request 20.
  • the data cache device according to appendix 19, wherein the state information is updated when data is written to the cache memory.
  • the cache memory is built in the data cache control means, the management table is stored in the cache memory, and information on the data is stored in the management table. 22.
  • the data cache device according to any one of appendices 18 to 21, wherein a data main body is included.
  • Data presence determination means for determining whether data corresponding to the received request is stored in the management device when a read request or a write request is received from outside the data cache device and the management device And transmitting means for transmitting a response to another apparatus when the data is not stored in the management apparatus, wherein the transmitting means stops processing in the data cache apparatus for the request.
  • the data cache device according to any one of appendices 15 to 24, which is characterized by the following.
  • the said transmission means transmits the response which shows that the data corresponding to the said request
  • Determination means for receiving a read request or a write request from outside the data cache device and the management device, and determining whether the received read request or write request is a request to be processed by the own device; Refill control means for transmitting the read request or the write request to the management device and receiving a read response or a write response corresponding to the read request or the write request, respectively, and the determination means includes the reception When the read request or write request is determined not to be processed by the own device, the read request or write request is supplied to the refill control means, and the received read request or write request is processed by the own device. When it is determined that the read request or the write request is Supplied to the control means, that the data cache unit according to any of Supplementary Note 15, wherein 27.
  • An information processing method for an information processing apparatus including a data cache device incorporating a cache memory and a management device incorporating a large-capacity memory having a larger capacity than the cache memory, from the outside of the information processing device
  • a read request or a write request is received, and when the received request is a write request, control is performed so that data of a predetermined condition stored in the cache memory is arranged in the large-capacity memory, and the write request
  • the data to be written is written to the cache memory according to the control, and when the received request is a read request, control is performed so that the data of the predetermined condition is arranged in the large-capacity memory.
  • An information processing method wherein the outputted data is written into the cache memory.
  • control is performed so that data of a predetermined condition stored in the cache memory is placed in the large-capacity memory when the received request is a write request.
  • the data to be written is written to the cache memory, and when the received request is a read request, control is performed to place the data of the predetermined condition in the large-capacity memory, and further according to the read request
  • the read data is written to the cache memory.
  • Data cache how to.
  • a process of receiving a write request, and when the received request is a write request, control to place data of a predetermined condition stored in the cache memory in the large-capacity memory, and further according to the write request A process of writing data to be written to the cache memory, and when the received request is a read request, control to place the data of the predetermined condition in the large-capacity memory, and further, the read request And writing the data read in accordance with the cache memory into the cache memory Program which is characterized the door.
  • a read request is made from outside the data cache device and the management device to a computer including a data cache device connected to a management device having a built-in cache memory and a larger capacity memory than the cache memory. Or processing to receive a write request, and when the received request is a write request, control to place data of a predetermined condition stored in the cache memory in the large-capacity memory, and further, the write request And processing to write the data to be written to the cache memory, and when the received request is a read request, control to place the data of the predetermined condition in the large-capacity memory, and Processing to write the data read according to the request to the cache memory; A program characterized by executing.
  • Appendix 33 A computer-readable recording medium for recording the program described in Appendix 31 or Appendix 32.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (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.  キャッシュメモリを内蔵し、前記キャッシュメモリより容量の大きい大容量メモリを内蔵する管理装置と接続されたデータキャッシュ装置のデータキャッシュ方法であって、
     前記データキャッシュ装置および前記管理装置の外部から読出し要求または書込み要求を受信し、
     前記受信した要求が書込み要求であるとき、前記キャッシュメモリに格納されている所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記書込み要求に従って、書込み対象となるデータを前記キャッシュメモリに書込み、
     前記受信した要求が読出し要求であるとき、前記所定の条件のデータを前記大容量メモリに配置するよう制御し、更に、前記読出し要求に従って読み出されたデータを前記キャッシュメモリに書込む、ことを特徴とするデータキャッシュ方法。
PCT/JP2014/005311 2013-11-01 2014-10-20 情報処理装置、データキャッシュ装置、情報処理方法およびデータキャッシュ方法 WO2015064048A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/030,965 US20160253094A1 (en) 2013-11-01 2014-10-20 Information processing device, data cache device, information processing method, and data caching method
JP2015544783A JPWO2015064048A1 (ja) 2013-11-01 2014-10-20 情報処理装置、データキャッシュ装置、情報処理方法、データキャッシュ方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013-228291 2013-11-01
JP2013228291 2013-11-01
JP2014-082152 2014-04-11
JP2014082152 2014-04-11

Publications (1)

Publication Number Publication Date
WO2015064048A1 true WO2015064048A1 (ja) 2015-05-07

Family

ID=53003681

Family Applications (1)

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

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532416A (ja) * 2016-09-15 2019-11-07 オラクル・インターナショナル・コーポレイション ストリームデータにおける空間変化検出器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082323A (ko) * 2018-12-28 2020-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003173294A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd ディスク装置
JP2013164660A (ja) * 2012-02-09 2013-08-22 Nec Corp ストレージ装置

Family Cites Families (3)

* 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
JP4189436B2 (ja) * 2006-11-07 2008-12-03 日立ソフトウエアエンジニアリング株式会社 データ処理制御方法
WO2014061064A1 (en) * 2012-10-18 2014-04-24 Hitachi, Ltd. Cache control apparatus and cache control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003173294A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd ディスク装置
JP2013164660A (ja) * 2012-02-09 2013-08-22 Nec Corp ストレージ装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KEVIN LIM ET AL.: "Thin servers with smart pipes: designing SoC accelerators for memcached", ISCA '13 PROCEEDINGS OF THE 40TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, June 2013 (2013-06-01), pages 36 - 47 *
SAI RAHUL CHALAMALASETTI ET AL.: "An FPGA Memcached Appliance, FPGA", 13 PROCEEDINGS OF THE ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS, February 2013 (2013-02-01), pages 245 - 254 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532416A (ja) * 2016-09-15 2019-11-07 オラクル・インターナショナル・コーポレイション ストリームデータにおける空間変化検出器

Also Published As

Publication number Publication date
US20160253094A1 (en) 2016-09-01
JPWO2015064048A1 (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
US10891228B2 (en) Cache line states identifying memory cache
US8806148B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
CN102498476B (zh) 在数据库服务器和存储***之间高速缓存数据
US10432723B2 (en) Storage server and storage system
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
EP2541423B1 (en) Replacement policy for resource container
JP2014130420A (ja) 計算機システム及び計算機の制御方法
CN110765036B (zh) 在控制设备处管理元数据的方法和设备
CN107341114B (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) キャッシュ制御方法、ノード装置、マネージャ装置及び計算機システム
JP5661355B2 (ja) 分散キャッシュシステム
JP6035934B2 (ja) データストア管理装置、データ提供システム及びデータ提供方法
JP6036190B2 (ja) 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
US10733118B2 (en) Computer system, communication device, and storage control method with DMA transfer of data
CN110737397B (zh) 用于管理存储***的方法、设备和计算机程序产品
CN111522879B (zh) 一种基于缓存的数据分发方法和电子设备
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
US8051246B1 (en) Method and apparatus for utilizing a semiconductor memory of a node as a disk cache

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14857008

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015544783

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15030965

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14857008

Country of ref document: EP

Kind code of ref document: A1