WO2016170673A1 - Computer system and memory module - Google Patents

Computer system and memory module Download PDF

Info

Publication number
WO2016170673A1
WO2016170673A1 PCT/JP2015/062491 JP2015062491W WO2016170673A1 WO 2016170673 A1 WO2016170673 A1 WO 2016170673A1 JP 2015062491 W JP2015062491 W JP 2015062491W WO 2016170673 A1 WO2016170673 A1 WO 2016170673A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
decompression
compressed
command
Prior art date
Application number
PCT/JP2015/062491
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2015/062491 priority Critical patent/WO2016170673A1/en
Publication of WO2016170673A1 publication Critical patent/WO2016170673A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Definitions

  • the present invention relates generally to storage control, for example, to computer system and memory module technologies.
  • Japanese Patent Application Laid-Open No. 2004-228561 discloses a technology for broadening the SAN bandwidth in a computer system connected via a SAN (Storage Area Network) that connects such server computers and storage devices. More specifically, a cache control program executed by the server computer reads the compressed data stored in the storage device and writes it to the drive of the flash memory of the server computer. Then, the decompression program executed by the server computer reads the compressed data from the drive of the flash memory, decompresses it, and provides it to the database program or the like.
  • SAN Storage Area Network
  • Patent Document 1 it is possible to realize a wider connection band between the server computer and the storage computer, but it is impossible to realize a wider bandwidth of the internal bus in the server computer, particularly PCI-Express or SATA (Serial ATA). This problem is expected to become a problem especially when flash memory devices are connected by PCI-Express, or when the connection bandwidth between the server computer and the storage device is close to that of PCI-Express.
  • an object of the present invention is to provide a computer system and a memory module that efficiently use a connection bandwidth between a server computer and a storage device.
  • a computer system includes a storage device that stores compressed data of access target data, and a server computer that is at least partially connected to the storage device via a path that conforms to PCI-Express.
  • the server computer includes a processor module capable of executing a program, a memory module capable of storing data, and a decompression unit capable of decompressing compressed data, and the processor module and the memory module are connected via a first memory bus.
  • the storage apparatus receives a read request specifying access target data that is a request generated by execution of a program in the processor module, and sends compressed data of the access target data to a program through a PCI-Express compliant path. DMA transfer to the program designated area which is designated area.
  • the decompression unit generates decompressed data from the compressed data transferred by DMA, and stores the generated decompressed data in the program designated area.
  • connection bandwidth between the server computer and the storage device can be used efficiently.
  • 4 is a flowchart illustrating an example of processing of the memory module according to the first embodiment. An example of the operation in the memory module when the external command and the compressed read command according to the first embodiment coexist is shown. An example of the operation in the memory module when the external command and the buffer write command according to the first embodiment coexist is shown.
  • an ID is used as element identification information, but other types of identification information may be used instead of or in addition to the ID.
  • a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used.
  • an ID assigned to the element may be used instead of the reference code.
  • memory device 14 when the memory device 14 is described without being particularly distinguished, it is described as “memory device 14”, and when the individual memory device 14 is described with being distinguished, it is described as “memory device 14a”. There is.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using a memory device and / or an interface device (for example, a communication port), the subject of processing may be a processor.
  • the process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • FIG. 1 is a block diagram illustrating a configuration example of a computer system 1-1 according to the first embodiment.
  • the computer system 1-1 includes a server computer 2-1, a storage device 4, and a CPA 6.
  • the CPA 6 has EPs 51a and 51b serving as endpoints of PCIe (PCI-Express) devices, and may have a switch function for transmitting and receiving data between the PCIe devices connected to the EPs 51a and 51b.
  • PCIe PCI-Express
  • the server computer 2-1 is connected to the EP 51 a of the CPA 6 through the PCIe network 82.
  • the storage device 4 is connected to the EP 51 b of the CPA 6 through the PCIe network 80. Therefore, the server computer 2-1 and the storage device 4 can bidirectionally transmit and receive data in accordance with the PCIe standard.
  • the storage device 4 performs data read processing / write processing and the like in response to a read / write request from the server computer 2-1.
  • the storage device 4 includes one or more storage drives 42 that store data, and a storage controller 40 that controls the storage drives 42.
  • the storage drive 42 may be, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a combination thereof.
  • the storage controller 40 may compress the write data corresponding to the write request and write the compressed write data 110 to the storage drive 42.
  • the storage controller 40 may read the compressed data 110 corresponding to the read request from the storage drive 42 and send the compressed data 110 to the server computer 2-1 as it is. .
  • the storage controller 40 and the storage drive 42 may be connected by a SAS 81.
  • the storage controller 40 may perform RAID control of the plurality of storage drives 42 to form a RAID group.
  • the server computer 2-1 sends a read request to the storage device 4 to acquire read data, or sends a write request to the storage device 4 to write the write data.
  • the server computer 2-1 includes a processor module 30 that executes a program and the like, and a memory module 10-1 that stores the program and data.
  • the processor module 30 and the memory module 10-1 include a DDR (Double- It may be connected by IF (InterFace) based on the Data-Rate standard.
  • IF InterFace
  • An IF based on the DDR standard that connects the processor module 30 and the memory module 10 is referred to as a first DDR IF 91.
  • the processor module 30 includes a memory controller 34, an RC (Root Complex) 36 based on PCIe, and a CPU core 32, which may be connected by an internal bus 38 capable of bidirectional data transmission / reception.
  • RC Root Complex
  • the CPU core 32 may be a logic circuit that executes arithmetic processing based on a program or the like.
  • the memory controller 34 may be a logic circuit that transmits commands and data to the memory module 10 through the first DDR IF 91 and receives commands and data transmitted from the memory module 10 through the first DDR IF 91.
  • RC 36 is an IF for connecting a PCIe device compliant with the PCIe standard under the server computer 2.
  • the memory module 10-1 includes a control unit 12-1, an expansion unit 16, an expansion buffer unit 18, and one or more memory devices 14.
  • the control unit 12-1 and the memory device 14 may be connected by a second DDR IF 92 that is an IF based on the DDR standard.
  • the first DDR IF 91 may be connected to the control unit 12-1.
  • the control unit 12-1, the expansion unit 16, and the expansion buffer unit 18 may be connected by an internal bus 94 capable of bidirectional data transmission / reception.
  • the decompression unit 16 is a logic circuit that decompresses the compressed data.
  • the decompression unit 16 may be configured by an ASIC (Application Specific Integrated Circuit). Data decompressed by the decompression unit 16 may be referred to as decompressed data.
  • ASIC Application Specific Integrated Circuit
  • the decompression buffer unit 18 is a storage device that temporarily stores decompressed data.
  • the decompression completion flag 20 is a flag indicating whether or not decompression of compressed data in the memory module 10 and storage of the decompressed data in the memory device 14 are completed.
  • the decompression completion flag 20 may be configured as a register controlled by the control unit 12-1.
  • the memory device 14 is a storage device that stores data.
  • the memory device 14 is, for example, a DDR SDRAM that conforms to the DIMM (Dual Inline Memory Modules) standard.
  • the storage controller 40 maintains the compressed data 110 stored in the storage drive 42 in a compressed state (without expansion in the storage apparatus 4) through the networks 80 and 82 and the CPA 6. DMA transfer to the server computer 2-1. Then, the RC 36 of the processor module 30 of the server computer 2-1 transfers the DMA-transferred compressed data 110 to the memory module 10-1. Then, the controller 12-1 of the memory module 10-1 stores the DMA-transferred compressed data 110 in the memory device 14. The decompressing unit 16 generates decompressed data 210 from the compressed data stored in the memory device 14 and stores the decompressed data 210 in the decompressing buffer unit 18.
  • the control unit 12-1 stores the decompressed data 210 stored in the decompression buffer unit 18 in the memory device 14 at an appropriate timing.
  • the compressed data 110 is transferred in the sections of the networks 80 and 82, the CPA 6 and the first DDR IF 91. Therefore, compared with the case where the compressed data is decompressed and transferred by the storage apparatus 4, the data transfer amount ( Connection bandwidth) can be reduced. Details of this process will be described below.
  • FIG. 2 is a schematic diagram illustrating an example of compressed data decompression processing according to the first embodiment.
  • the uncompressed data (decompressed data) 210 may be composed of a plurality of data blocks 211-214.
  • the size of one data block before compression is 8 KB.
  • the size of the data 210 before compression is 32 KB.
  • the compressed data 210 may be composed of compressed blocks 111 to 114 compressed for each data block.
  • the size of the compressed block 111 of the data block 211 is 2 KB
  • the size of the compressed block 112 of the data block 212 is 4 KB
  • the size of the compressed block 113 of the data block 113 is 6 KB
  • the size of the compressed block 114 of the data block 214 is 6 KB.
  • the size of the compressed data 110 (the total of the compressed blocks 111 to 114) is 18 KB.
  • the read program of the processor module 30 transmits a read request for the compressed data 110 to the storage controller 40.
  • the storage controller 40 Upon receipt of the read request, the storage controller 40 transmits a DMA command including information on the compressed data 110 corresponding to the read request to the RC 36.
  • Information related to the compressed data 110 includes the size of the data block before compression (8 KB), the number of data blocks constituting the compressed data (four), the size of the compressed data (18 KB), and the storage destination in the memory device 14.
  • the first address (for example, address X) may be included.
  • the RC 36 notifies the control unit 12-1 to prepare for reception related to the DMA transfer of the compressed data 110.
  • the control unit 12-1 secures the storage area “address X to address X + 32 KB” in the memory device 14, for example.
  • the storage controller 40 transmits the compressed data 110 to the memory module 10-1 by DMA transfer.
  • the compressed data 110 is transferred to the control unit 12-1 of the memory module 10-1 through the networks 80 and 82, the CPA 6, and the RC 36.
  • the control unit 12-1 of the memory module 10-1 stores the received compressed data 110 in a storage area secured in the memory device 14 in a compressed state.
  • the control unit 12 stores the compressed data 110 so that the end of the compressed data 110 is the end address “address X + 32 KB” of the storage area. For example, when the size of the compressed data is 18 KB, the control unit 12 stores the compressed data 110 from the position “address X + 14 KB” in the storage area.
  • the control unit 12 reads out one compressed block 111 (2 KB) constituting the compressed data 110 from the storage area through the second DDR IF 92, and passes it to the decompression unit 16.
  • the decompression unit 16 generates the decompression block 211 (8 KB) from the compression block 111 (2 KB) and stores it in the decompression buffer unit 18.
  • the control unit 12 reads the decompression block 211 from the decompression buffer unit 18, transmits the decompression block 211 to the memory device 14 through the second DDR IF 92, and stores it from the head position “address X” of the storage area.
  • the control unit 12 reads the compressed block 112 (4 KB) from the storage area through the second DDR IF 92 and passes it to the decompression unit 16 as in S15.
  • the decompression unit 16 generates a decompression block 212 (8 KB) from the compression block 112 (4 KB) and stores it in the decompression buffer unit 18.
  • the control unit 12 reads the decompression block 212 from the decompression buffer unit 18, transmits the decompression block 212 to the memory device 14 through the second DDR IF 92, and is positioned next to the decompression block 211 in the storage area. Store from "address X + 8KB".
  • the compressed blocks 113 and 114 are similarly expanded, and the expanded blocks 213 and 214 are stored in the storage area.
  • the control unit 12 After completing the decompression of all the compressed blocks 111 to 114, the control unit 12 changes the decompression completion flag 20 to “ON”.
  • the read program of the processor module 30 may check the decompression completion flag 20 in a predetermined cycle, and if the decompression completion flag 20 is “ON”, it may be determined that the read request processing has been completed. Instead of setting the decompression completion flag 20 to “ON”, the control unit 12 may notify the processor module 30 that the decompression has been completed.
  • the capacity allocated to the decompression buffer unit 18 can be reduced to the size of the data block before compression (8 KB).
  • FIG. 3 is a flowchart showing an example of processing of the memory module 10-1 according to the first embodiment.
  • the control unit 12-1 of the memory module 10-1 receives a read / write command (including DMA transfer of compressed data from the storage controller 40) transmitted from the outside through the first DDR IF 91, and the internal of the memory module 10-1. It is necessary to process commands issued from the decompression unit 16 and the decompression buffer unit 18. When the processing of one decompression block is completed, the decompression unit 16 requests the next compressed block from the control unit 12-1.
  • the decompression buffer unit 18 requests the control unit 12 to write the buffer data (that is, the decompressed block) to the memory device 14 when its buffer is full.
  • control unit 12-1 receives the read / write command (referred to as “external command”) received through the first DDR IF 91, the compressed block read command (referred to as “compressed read command”) received from the decompression unit 16, and the decompression buffer.
  • the decompression block write command (referred to as “buffer write command”) received from the unit 18 needs to be processed.
  • the compressed read command and buffer write command issued in the memory module 10-1 are sometimes collectively referred to as “internal commands”.
  • the memory module 10-1 performs processing corresponding to the external command at the timing when the specified number of clocks has elapsed since the reception of the external command according to the DIMM standard.
  • the memory module 10-1 needs to return read data to the transmission source of the external read command at a timing 12 clocks after the external read command is received.
  • the memory module 10-1 receives write data transmitted from the transmission source of the external write command at a timing 11 clocks after the external write command is received.
  • the control unit 12-1 performs the following processing shown in FIG.
  • the control unit 12-1 confirms the command being received (S101).
  • the control unit 12-1 When the command being received is only an external command or only an internal command (S101: only an external command or only an internal command), the control unit 12-1 performs the following processing.
  • the control unit 12-1 secures a prescribed clock conforming to the DIMM standard for the address line and data line of the second DDR IF 92 (S110). Then, the control unit 12-1 returns to S101.
  • the prescribed clock may be different for each command as follows, for example.
  • the control unit 12-1 When only the external read command is being received, the control unit 12-1 sends the external read command to the memory device 14-1 after 6 clocks when the external read command is received for the address line of the second DDR IF92. To ensure. Then, the control unit 12-1 obtains, from the memory device 14 of the read data corresponding to the external read command, four clocks after 12 clocks at the time of receiving the external read command for the data line of the second DDR IF92. Secure.
  • the control unit 12-1 secures the address line of the second DDR IF 92 for sending the external write command to the memory device 14 after 6 clocks when the external write command is received. To do. Then, the control unit reserves four clocks for the data line of the second DDR IF 92 for 11 clocks after the reception of the external write command for sending the write data corresponding to the external write command to the memory device 14.
  • the control unit 12-1 uses the second DDR IF 92 address line for sending a compressed read command after at least 4 clocks have elapsed from the previously sent command. To ensure. When 4 clocks or more have elapsed from the previously sent command, the control unit 12-1 may reserve the latest clock for sending the compressed read command.
  • the control unit 12-1 determines whether it is necessary to delay the internal command (S130). This is because, as described above, external commands need to be processed with a specified number of clocks according to the DIMM specification. However, if an internal command is processed first, external commands cannot be processed with a specified number of clocks. Because there is. In this case, the control unit 12-1 determines “YES” in S130, and delays the clock reserved for the internal command in the second DDR IF 92 (S120). That is, the control unit 12-1 reserves a clock later than the clock being secured for the internal command. As a result, the securing of the external command is prioritized in the second DDR IF 92, so that the external command can be processed with the specified number of clocks. Then, the control unit 12-1 returns to S101. When there is no need to delay the internal command (S130: NO), the control unit 12 may proceed to S110.
  • the memory module 10-1 can achieve acquisition, decompression, and storage of the internal compressed block while satisfying the regulations regarding the number of clocks of the DIMM for the external command.
  • FIG. 4 shows an example of the operation in the memory module 10-1 when an external command and a compressed read command are mixed.
  • processing at several clocks will be described with reference to FIG.
  • the control unit 12-1 receives the compression read command B1R from the decompression unit 16.
  • the control unit 12-1 determines that “only the compressed read command (internal command)” in S101 of FIG. 3, and sends the compressed read command B1R to the address line 92a of the second DDR IF.
  • the control unit 12-1 compresses the data corresponding to the compressed read command B1R for 4 clocks (clocks “6 to 9”) from the 6th clock after receiving the compressed read command B1R for the data line 92b of the second DDR IF. Secured for acquisition of lead block B1RD.
  • the control unit 12-1 receives the external read command A1R through the address line 91a of the first DDR IF.
  • the control unit 12-1 determines that “only an external command” in S101 of FIG. 3, and after 6 clocks (clock “6”) at the time of receipt of the external read command A1R for the address line 92a of the second DDR IF. Reserved for sending the external read command A1R.
  • the control unit 12-1 sets the external read command A1R for 4 clocks (clocks “12 to 15”) after 12 clocks (K10) when the external read command A1R is received for the data line 92b of the second DDR IF. Secured for acquisition of corresponding external read data A1RD.
  • the control unit 12-1 sends the compressed read command B1R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “6-9” after 6 clocks from the sending). ”) Is reserved for acquisition of the compressed read data B1RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B1R has been sent. Upon receiving this notification, the decompression unit 16 transmits the compressed read command B2R to the control unit 12-1 at the next clock.
  • the control unit 12-1 receives the compression read command B2R from the decompression unit 16.
  • the control unit 12-1 determines to be “multiple commands” in S101 of FIG. 3 (because it has the external read command A1R and the compressed read command B2R), and needs to delay the compressed read command B2R (internal command). It is determined whether or not (S130). This determination is performed as follows, for example.
  • the controller 12-1 determines in S130 that the compressed read command B2R needs to be delayed (S130: YES).
  • the controller 12-1 sends the external read command A1R to the address line 92a of the second DDR IF. Further, the control unit 12-1 acquires the external read data B1RD through the data line 92b of the second DDR IF and passes it to the decompression unit 16 (clocks “6 to 9”).
  • the control unit 12-1 sends the compressed read command B2R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “16 to 19”) 6 clocks after the sending. Is secured for obtaining the compressed read data B2RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B2R has been sent. Upon receiving this notification, the decompression unit 16 transmits a compressed read command B3R to the control unit 12-1 at the next clock. Also, the control unit 12-1 receives the external write command A2W through the address line 91a of the first DDR IF.
  • control unit 12-1 determines that “external command only” in S101 of FIG. 3, and after 6 clocks (clock “16”) from the reception of the address line 92a of the second DDR IF, the control unit 12-1 receives the external write command A2W.
  • the control unit 12-1 For the data line 92b of the second DDR IF, 4 clocks (clocks “21 to 24”) 11 clocks after the reception are secured for sending the external write data A2WD.
  • the control unit 12-1 receives the compression read command B3R from the decompression unit 16.
  • the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the compressed read command B3R), and determines whether or not it is necessary to delay the compressed read command B3R. Determine (S130). If the compressed read command B3R is sent to the address line 92a of the second DDR IF four clocks (clock "14") after the compressed read command B2R (clock "10"), the data line 92b of the second DDR IF is transmitted.
  • the control unit 12-1 acquires the external read data A1RD through the data line 92b of the second DDR IF (clocks “12 to 15”). Then, the control unit 12-1 sends the external read data A1RD to the data line 91b of the first DDR IF.
  • the controller 12-1 sends the external write command A2W to the address line 92a of the second DDR IF. Further, the control unit 12-1 acquires the compressed read data B2RD through the data line 92b of the second DDR IF and passes it to the decompression unit 16 (clocks “16 to 19”).
  • the control unit 12-1 sends the compressed read command B3R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “26 to 29”) 6 clocks after the sending. Is secured for obtaining the compressed read data B2RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B3R has been sent. Upon receiving this notification, the decompression unit 16 transmits the compressed read command B4R to the control unit 12-1 at the next clock.
  • the control unit 12-1 receives the compression read command B4R from the decompression unit 16.
  • the control unit 12-1 determines “compressed read command (internal command only)” in S101 in FIG. 3, and after sending the compressed read command B3R to the address line 92a of the second DDR IF, four clocks later ( Clock "24") is reserved for sending the compressed read command B4R.
  • the control unit 12-1 sends the external write data A2WD acquired through the data line 91b of the first DDR IF to the data line 92b of the second DDR IF (clocks “21 to 24”).
  • the control unit 12-1 acquires the compressed read data B3RD through the data line 92b of the second DDR IF, and passes it to the decompression unit 16 (clocks “26 to 29”).
  • the control unit 12-1 when the control unit 12-1 receives a compressed read command which is a kind of internal command while delaying the external command by 6 clocks, the control unit 12-1 supposes that the compressed read command is 4 from the transmission of the previous command. If the external read / write data corresponding to the external read / write command cannot be processed with the specified clock when it is sent to the address line 92a of the second DDR IF after the clock, the sending of the compressed read command is delayed. As a result, the memory module 10-1 can appropriately process the compressed read command while processing the external read / write command received through the first DDR IF 91 with the specified clock.
  • FIG. 5 shows an example of the operation in the memory module 10-1 when an external command and a buffer write command coexist.
  • processing at several clocks will be described with reference to FIG.
  • the control unit 12-1 receives the buffer write command C1W from the buffer 18.
  • the control unit 12-1 determines that “only the buffer write command (internal command)” in S101 of FIG. 3, and sends the buffer write command C1W to the address line 92a of the second DDR IF.
  • the control unit 12-1 then transfers the buffer corresponding to the buffer write command C1W for four clocks (clocks “5 to 8”) after five clocks at the time of transmission of the buffer write command C1W for the data line 92b of the second DDR IF. Secured for sending write data C1WD.
  • control unit 12-1 receives the external read command A1R through the address line 91a of the first DDR IF.
  • the control unit 12 determines that “external command only” in S101 of FIG. 3, and after 6 clocks (clock “6”) at the time of receiving the external read command A1R for the address line 92a of the second DDR IF, Reserved for sending the read command A1R.
  • the control unit 12-1 uses the data line 92b of the second DDR IF for four clocks (clocks “12 to 15”) after 12 clocks (K30) when the external read command A1R is received as the external read command A1R. Secured for acquisition of corresponding external read data A1RD.
  • the control unit 12-1 outputs the buffer write command C1W to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “6-9” after 6 clocks from the transmission). ”) Is reserved for acquisition of the compressed read data B1RD. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C1W has been sent. Upon receiving this notification, the decompression buffer unit 18 sends a buffer write command C2W to the control unit 12-1 at the next clock.
  • the control unit 12-1 receives the buffer write command C2W from the decompression buffer unit 18.
  • the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external read command A1R and the buffer write command C2W), and determines whether or not the buffer write command C2W needs to be delayed. Determine (S130). This determination is performed as follows, for example.
  • the buffer write command C2W is sent to the address line 92a of the second DDR IF 4 clocks after the buffer write command C1W (clock "4"), the buffer write command C2W is sent to the data line 92b of the second DDR IF. It is necessary to secure 4 clocks (clocks “9 to 12”) after 5 clocks for sending the buffer write block C2WD. However, for the data line 92b of the second DDR IF, this clock “9 to 12” is partially overlapped with the clock “12 to 15” reserved for acquiring the external read data A1R as described above. I can't. Therefore, the control unit 12-1 determines that it is necessary to delay the buffer write command (internal command) in S130 (S130: YES).
  • the control unit 12-1 waits for one clock (clock “17”) after completing the acquisition of the external read data A1RD (clock “15”) for the second DDR IF data line 92 b, It is necessary to ensure transmission of the write block C2WD.
  • the control unit 12-1 sends the buffer write data C1WD to the data line 92b of the second DDR IF (clocks “5 to 8”).
  • the controller 12-1 sends the external read command A1R to the address line 92a of the second DDR IF.
  • the control unit 12-1 receives the external write command A2W through the address line 91a of the first DDR IF.
  • the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the buffer write command C2W), and determines whether or not it is necessary to delay the buffer write command C2W. Determine (S130). This determination is performed as follows, for example.
  • the data line 92b of the second DDR IF It is necessary to secure 4 clocks (clocks “22 to 25”) 11 clocks after receiving the external write command A2W for sending the external write data A2WD. This does not overlap with the clocks “17 to 20” reserved for sending the buffer write data C2WD for the data line 92b of the second DDR IF.
  • control unit 12-1 determines that it is not necessary to delay the buffer write command C2W (internal command) in S130 (S130: NO), and uses the buffer “12” for the clock “12” for the command line 92a of the second DDR IF. Keep reserved for C2W transmission.
  • the control unit 12-1 sends the buffer write command C2W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C2W has been sent. Upon receiving this notification, the decompression buffer unit 18 sends a buffer write command C3W to the control unit 12-1 at the next clock “13”. Further, the control unit 12-1 acquires the external read data A1RD through the data line 92b of the second DDR IF and sends it to the data line 91b of the first DDR IF (clocks “12 to 15”).
  • the control unit 12-1 receives the buffer write command C3W from the decompression buffer unit 18.
  • the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the buffer write command C3W), and whether or not it is necessary to delay the buffer write command C3W. Is determined (S130). If the buffer write command C3W is transmitted 4 clocks after the buffer write command C2W (clock “16”), the data line 92b of the second DDR IF is 4 clocks (clock “5” after the transmission). 21 to 24 ") must be secured for sending the buffer write data C3WD corresponding to the buffer write command C3W.
  • the control unit 12-1 determines that it is necessary to delay the buffer write command C2W in S130 (S130: YES). In this case, the control unit 12-1 uses four clocks (clocks “26 to 29”) after transmission of the external write data A2WD is completed for transmission of the buffer write data C3WD to the data line 92b of the DDR IF. May be secured.
  • the controller 12-1 sends the external write command A2W to the address line 92a of the second DDR IF. Further, the control unit 12-1 sends the buffer write data C2WD to the data line 92b of the second DDR IF (clocks “17 to 20”).
  • the control unit 12-1 sends the buffer write command C3W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C3W has been sent. Receiving this notification, the decompression buffer unit 18 sends a buffer write command C4W to the control unit at the next clock “22”.
  • the control unit 12-1 receives the buffer write command C4W from the decompression buffer unit 18.
  • the control unit 12-1 determines in S101 that “only a buffer write command (internal command)” and four clocks after sending the buffer write command C3W to the address line 92a of the second DDR IF (clock “25”). ”) Is reserved for sending the received buffer write command C4W.
  • the control unit 12-1 sends the external write data A2WD acquired through the data line 91a of the first DDR IF to the data line 92b of the second DDR IF (clocks “22 to 25”).
  • the control unit 12-1 sends the buffer write command C4W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C2W has been sent.
  • the control unit 12-1 sends the buffer write data C3WD to the data line 92b of the second DDR IF (clocks “26 to 29”).
  • the control unit 12-1 when the control unit 12-1 receives a buffer write command which is a kind of internal command while delaying the external command by 6 clocks, the control unit 12-1 supposes that the buffer write command is 4 from the transmission of the previous command. If the external read / write data corresponding to the external read / write command cannot be processed with the specified clock when it is transmitted to the address line 92a of the second DDR IF after the clock, the transmission of the buffer write command is delayed. As a result, the memory module 10-1 can appropriately process the buffer write command while processing the external read / write command received through the first DDR IF 91 with the specified clock.
  • FIG. 6 is a block diagram illustrating a configuration example of the computer system 1-2 according to the second embodiment.
  • FIG. 7 is a schematic diagram illustrating an example of compressed data decompression processing according to the second embodiment.
  • the same elements as those in the first embodiment are denoted by the same reference numerals, and description thereof is omitted.
  • the memory module 10-2 further includes a compression buffer unit 19 and a buffer free space register 22 indicating the free space of the compression buffer unit 19.
  • the capacity of the compression buffer unit 19 is set to 16 KB
  • the size of the data before compression (after decompression) is 64 KB
  • the size of the compressed data is 32 KB
  • the read program of the processor module 30 transmits a read request for the compressed data 110 to the storage controller 40.
  • the storage controller 40 Upon receipt of the read request, the storage controller 40 transmits a DMA command including information on the compressed data 110 corresponding to the read request to the RC 36.
  • the information regarding the compressed data 110 may include the size of data before compression (64 KB) and the start address (for example, address X) of the storage destination in the memory device 14.
  • the RC 36 notifies the control unit 12-2 to prepare for reception of the compressed data 110 relating to DMA transfer.
  • the control unit 12-2 secures the storage area “address X to address X + 64 KB” in the memory device 14, for example.
  • the storage controller 40 transmits the compressed data 110 to the memory module 10-2 by DMA transfer.
  • the compressed data 110 is transferred to the control unit 12-2 of the memory module 10-2 through the networks 80 and 82, the CPA 6, and the RC 36.
  • the control unit 12-2 of the memory module 10-2 compresses the compressed data for 16KB indicated by the buffer free space 22 in the received compressed data 110.
  • the decompression unit 16 extracts 12 KB of compressed data from the compression buffer unit 19 to generate decompressed data 221 and stores the decompressed data 221 in the storage area of the memory device 14. As a result, the buffer free capacity register 22 becomes “12 KB”.
  • the control unit 12-2 Since the buffer free space register 22 is “12 KB”, the control unit 12-2 stores the compressed data for 12 KB indicated by the buffer free space register 22 in the compressed buffer unit 19 among the remaining compressed data 121. .
  • the decompression unit 16 extracts 12 KB of compressed data from the compression buffer unit 19 to generate decompressed data 222 and stores the decompressed data 222 in the storage area of the memory device 14. By repeating S43 to S45, the decompressed data is stored in the storage area of the memory device 14.
  • the control unit 12-2 After storing all the decompressed data in the storage area of the memory device 14, the control unit 12-2 sets the decompression completion flag 20 to “ON”.
  • the read program of the processor module 30 may check the decompression completion flag 20 at a predetermined cycle, and if the decompression completion flag 20 is “ON”, it may be determined that the read request processing has been completed.
  • the above processing compared with the first embodiment, it is unnecessary to acquire compressed data from the memory device 14 through the second DDR IF 92 and pass it to the decompression unit 16 in the memory module 10-2.
  • the data transfer amount in the second DDR IF 92 can be reduced.
  • FIG. 8 is a flowchart showing an example of processing of the memory module 10-2 according to the second embodiment. In the description of FIG. 8, the same processes as those in FIG.
  • the control unit 12-2 confirms the command being received (S201). When the command being received is a plurality of commands (S201: a plurality of commands), the control unit 12-2 performs the processing after S130 shown in FIG. When the command being received is only an internal command (S201: only the internal command), the control unit 12-2 performs the processing after S110 shown in FIG.
  • control unit 12-2 When the command being received is only an external command (S201: only external command), the control unit 12-2 performs the following processing.
  • the control unit 12-2 uses a compressed data write command (referred to as “compressed write command”) transmitted from the storage controller 40 or a normal read / write command (“ It is determined whether it is a “normal command” (S204).
  • control unit 12-2 When the external command is a normal command (S204: normal command), the control unit 12-2 performs the processing after S110 shown in FIG.
  • the control unit 12-2 receives the compressed data corresponding to the compressed write command and stores it in the compression buffer unit 19 (S206). Return to processing.
  • the compressed data stored in the compression buffer unit 19 is expanded by the expansion unit 16 and written to the memory device 14 as described above.
  • FIG. 9 is a block diagram illustrating a configuration example of a computer system 1-3 according to the third embodiment.
  • FIG. 10 is a diagram for explaining an example of the operation of the third embodiment. Note that the CPA 6 and the storage device 4 in the third embodiment have the same configuration as in the first embodiment, and thus the description of the drawings is omitted.
  • the server computer 2-3 according to the third embodiment includes a plurality of memory modules 10-1a and 10-1b.
  • the memory modules 10-1a and 10-1b according to the third embodiment may have the same configuration as the memory module 10-1 according to the first embodiment.
  • the configuration may be the same as that of the memory module 10-2 according to the second embodiment.
  • the processor module 30 can transmit and receive data to and from the memory modules 10-1a and 10-1b through the first DDR IF 91.
  • the control unit 12-1a of the memory module 10-1a can transmit and receive data to and from the memory device 14c through the second DDR IF 92c, and the control unit 12-1b of the memory module 10-1b can communicate with the memory device 14d through the second DDR IF 92d. Data can be sent and received. That is, the second DDR IFs 92c and 92d are independent.
  • the server computer 2-3 can operate as follows (see FIG. 10).
  • the RC 36 of the processor module 30 transfers the compressed data 400a transferred from the storage device 4 to the memory module 10-1a through the data line 91c of the first DDR IF 91.
  • the decompressed data 402a obtained by decompressing the compressed data 400a is stored in the storage area of the memory device 14c through the data line 92c of the second DDR IF.
  • the RC 36 of the processor module 30 transfers the compressed data 400b transferred from the storage device 4 to the memory module 10-1b through the data line 91c of the first DDR IF 91.
  • the decompressed data 402b obtained by decompressing the compressed data 400b is stored in the storage area of the memory device 14d through the data line 92d of the second DDR IF.
  • the processor module 30 can read the decompressed data 404a from the memory module 10-1a immediately after the completion of S62. Since the decompression of the compressed data 400b transferred to the memory module 10-1b is completed while the decompressed data 404a is being read, the processor module 30 immediately after reading the decompressed data 404a. The decompressed data 404b can be read from 1b.
  • FIG. 11 is a block diagram illustrating a configuration example of a computer system 1-4 according to the fourth embodiment. Note that the CPA 6 and the storage apparatus 4 in the fourth embodiment have the same configuration as that in the first embodiment, and thus the description of the drawings is omitted.
  • the processor module 30-4 includes the decompression unit 16 included in the memory module 10 in the first to third embodiments. That is, the server computer 2-4 includes a processor module 30-4 and one or more memory devices 14e and 14f.
  • the processor module 30-4 includes the memory controller 34, the CPU core 32, the RC 36, and the decompression unit 16. And have.
  • the processor module 30-4 may further include a cache unit 33.
  • the processor module 30-4 can transmit / receive data to / from one or more memory devices 14e and 14f through the second DDR IF 92.
  • the server computer 2-4 operates as follows, for example.
  • the RC 36 of the processor module 30-4 passes the compressed data DMA-transferred from the storage device 4 to the decompression unit 16.
  • the decompression unit 16 generates decompressed data 210 from the compressed data, and stores the decompressed data 210, for example, in the storage area of the memory device 14e through the second DDR IF 92.
  • the processor module 30-4 includes the cache unit 33, the decompressed data 210 may be once written in the cache unit 33 and then stored in the storage area of the memory device 14e.
  • the decompressed data can be distributed and written to the plurality of memory devices 14e and 14f by memory interleaving. That is, the I / O of decompressed data to the memory device 14 can be speeded up.
  • Computer system 2 Server computer 6: CPA 4: Storage device 10: Memory module 30: Processor module 40: Storage controller 42: Storage drive

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

Provided is computer system, comprising a storage device which stores compressed data, and a server computer which is connected to the storage device via a PCI-Express-compliant path. The server computer further comprises a processor module, a memory module, and an expansion unit which is capable of expanding the compressed data. The processor module and the memory module are connected via a first memory bus. The storage device receives a read request which is generated upon the execution of a program in the processor module, and DMA transfers compressed data, which is data which is to be accessed, via the PCI-Express-compliant path to a program-designated region. The expansion unit generates expanded data from the DMA-transferred compressed data, and stores the expanded data in the program-designated region.

Description

計算機システム、及び、メモリモジュールComputer system and memory module
 本発明は、概して、記憶制御に関し、例えば、計算機システム及びメモリモジュールの技術に関する。 The present invention relates generally to storage control, for example, to computer system and memory module technologies.
 サーバ計算機及びストレージ装置のそれぞれの性能向上、並びに、フラッシュメモリをストレージ装置に利用することによるバックエンドの広帯域化に伴い、サーバ計算機とストレージ計算機の間の接続帯域の広帯域化が要求される。特許文献1には、こうしたサーバ計算機とストレージ装置とを接続するSAN(Storage Area Network)を介して接続される計算機システムにおいて、SANを広帯域化する技術が開示されている。より具体的には、サーバ計算機で実行されるキャッシュ制御プログラムが、ストレージ装置に格納した圧縮データを読み出してサーバ計算機のフラッシュメモリのドライブに書きこむ。そして、サーバ計算機で実行される伸長プログラムがフラッシュメモリのドライブから圧縮データを読み出し、伸長してデータベースプログラム等に提供する。 As the performance of the server computer and the storage device is improved and the bandwidth of the back end is increased by using the flash memory for the storage device, it is required to increase the bandwidth of the connection between the server computer and the storage computer. Japanese Patent Application Laid-Open No. 2004-228561 discloses a technology for broadening the SAN bandwidth in a computer system connected via a SAN (Storage Area Network) that connects such server computers and storage devices. More specifically, a cache control program executed by the server computer reads the compressed data stored in the storage device and writes it to the drive of the flash memory of the server computer. Then, the decompression program executed by the server computer reads the compressed data from the drive of the flash memory, decompresses it, and provides it to the database program or the like.
US2013/0332652US2013 / 0332652
 特許文献1では、サーバ計算機とストレージ計算機の間の接続帯域の広帯域化を実現できるが、サーバ計算機内の内部バス、特にPCI-ExpressやSATA(Serial ATA)の広帯域化を実現できない。なお、この問題は特にPCI-Expressでフラッシュメモリデバイスを接続する場合、又は、サーバ計算機とストレージ装置との間の接続帯域がPCI-Expressに近い性能となった場合に問題となることが予想される。 In Patent Document 1, it is possible to realize a wider connection band between the server computer and the storage computer, but it is impossible to realize a wider bandwidth of the internal bus in the server computer, particularly PCI-Express or SATA (Serial ATA). This problem is expected to become a problem especially when flash memory devices are connected by PCI-Express, or when the connection bandwidth between the server computer and the storage device is close to that of PCI-Express. The
 そこで本発明の目的は、サーバ計算機とストレージ装置との間の接続帯域を効率的に利用する計算機システム及びメモリモジュールを提供することにある。 Therefore, an object of the present invention is to provide a computer system and a memory module that efficiently use a connection bandwidth between a server computer and a storage device.
 一実施形態に係る計算機システムは、アクセス対象データの圧縮データを格納するストレージ装置と、少なくとも一部がPCI-Expressに準拠する経路でストレージ装置と接続されているサーバ計算機とを有する。
 サーバ計算機は、プログラムを実行可能なプロセッサモジュールと、データを格納可能なメモリモジュールと、圧縮データを伸長可能な伸長部とを含み、プロセッサモジュールとメモリモジュールとは第1メモリバスを通じて接続されている。
 ストレージ装置は、プロセッサモジュールにおけるプログラムの実行をきっかけとして生成されたリクエストであってアクセス対象データを指定したリードリクエストを受信し、当該アクセス対象データの圧縮データを、PCI-Express準拠の経路を通じて、プログラムが指定した領域であるプログラム指定領域へDMA転送する。
 伸長部は、DMA転送された圧縮データから伸長データを生成し、その生成した伸長データをプログラム指定領域に格納する。
A computer system according to an embodiment includes a storage device that stores compressed data of access target data, and a server computer that is at least partially connected to the storage device via a path that conforms to PCI-Express.
The server computer includes a processor module capable of executing a program, a memory module capable of storing data, and a decompression unit capable of decompressing compressed data, and the processor module and the memory module are connected via a first memory bus. .
The storage apparatus receives a read request specifying access target data that is a request generated by execution of a program in the processor module, and sends compressed data of the access target data to a program through a PCI-Express compliant path. DMA transfer to the program designated area which is designated area.
The decompression unit generates decompressed data from the compressed data transferred by DMA, and stores the generated decompressed data in the program designated area.
 本発明によれば、サーバ計算機とストレージ装置との間の接続帯域を効率的に利用することができる。 According to the present invention, the connection bandwidth between the server computer and the storage device can be used efficiently.
第1の実施形態に係る計算機システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the computer system which concerns on 1st Embodiment. 第1の実施形態に係る圧縮データの伸長処理の一例を説明する模式図である。It is a schematic diagram explaining an example of the decompression process of the compressed data which concerns on 1st Embodiment. 第1の実施形態に係るメモリモジュールの処理の一例を示すフローチャートである。4 is a flowchart illustrating an example of processing of the memory module according to the first embodiment. 第1の実施形態に係る外部コマンドと圧縮リードコマンドとが混在する場合のメモリモジュールにおける動作の一例でを示す。An example of the operation in the memory module when the external command and the compressed read command according to the first embodiment coexist is shown. 第1の実施形態に係る外部コマンドとバッファライトコマンドとが混在する場合のメモリモジュールにおける動作の一例を示す。An example of the operation in the memory module when the external command and the buffer write command according to the first embodiment coexist is shown. 第2の実施形態に係る計算機システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the computer system which concerns on 2nd Embodiment. 第2の実施形態に係る圧縮データの伸長処理の一例を示す模式図である。It is a schematic diagram which shows an example of the expansion | extension process of the compressed data which concerns on 2nd Embodiment. 第2の実施形態に係るメモリモジュールの処理の一例を示すフローチャートである。It is a flowchart which shows an example of a process of the memory module which concerns on 2nd Embodiment. 第3の実施形態に係る計算機システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the computer system which concerns on 3rd Embodiment. 第3の実施形態の動作の一例を示す。An example of operation | movement of 3rd Embodiment is shown. 第4の実施形態に係る計算機システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the computer system which concerns on 4th Embodiment.
 以下、幾つかの実施形態を説明する。なお、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。例えば、メモリデバイス14を特に区別しないで説明する場合には、「メモリデバイス14」と記載し、個々のメモリデバイス14を区別して説明する場合には、「メモリデバイス14a」のように記載することがある。また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜にメモリデバイス及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 Hereinafter, some embodiments will be described. In the following description, an ID is used as element identification information, but other types of identification information may be used instead of or in addition to the ID. In the following description, when a description is made without distinguishing the same type of element, a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used. Alternatively, an ID assigned to the element may be used instead of the reference code. For example, when the memory device 14 is described without being particularly distinguished, it is described as “memory device 14”, and when the individual memory device 14 is described with being distinguished, it is described as “memory device 14a”. There is. In the following description, the process may be described using “program” as a subject. However, the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using a memory device and / or an interface device (for example, a communication port), the subject of processing may be a processor. The process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor. The processor may include a hardware circuit that performs a part or all of the processing. The program may be installed in a computer-like device from a program source. The program source may be, for example, a storage medium that can be read by a program distribution server or a computer. In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
(第1の実施形態)
 図1は、第1の実施形態に係る計算機システム1-1の構成例を示すブロック図である。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of a computer system 1-1 according to the first embodiment.
 計算機システム1-1は、サーバ計算機2-1と、ストレージ装置4と、CPA6とを有する。CPA6は、PCIe(PCI-Express)デバイスのエンドポイントとなるEP51a、51bを有し、これらのEP51a、51bに接続されたPCIeデバイス間でデータを送受信するためのスイッチ機能を有してよい。 The computer system 1-1 includes a server computer 2-1, a storage device 4, and a CPA 6. The CPA 6 has EPs 51a and 51b serving as endpoints of PCIe (PCI-Express) devices, and may have a switch function for transmitting and receiving data between the PCIe devices connected to the EPs 51a and 51b.
 サーバ計算機2-1はPCIeネットワーク82を通じてCPA6のEP51aに接続される。ストレージ装置4はPCIeネットワーク80を通じてCPA6のEP51bに接続される。したがって、サーバ計算機2-1とストレージ装置4とは、PCIe規格に準拠して双方向にデータを送受信できる。 The server computer 2-1 is connected to the EP 51 a of the CPA 6 through the PCIe network 82. The storage device 4 is connected to the EP 51 b of the CPA 6 through the PCIe network 80. Therefore, the server computer 2-1 and the storage device 4 can bidirectionally transmit and receive data in accordance with the PCIe standard.
 ストレージ装置4は、サーバ計算機2-1からのリード/ライト要求に応じて、データのリード処理/ライト処理等を行う。ストレージ装置4は、データを格納する1以上のストレージドライブ42と、ストレージドライブ42を制御するストレージコントローラ40とを有する。ストレージドライブ42は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はこれらの組み合わせなどであってよい。 The storage device 4 performs data read processing / write processing and the like in response to a read / write request from the server computer 2-1. The storage device 4 includes one or more storage drives 42 that store data, and a storage controller 40 that controls the storage drives 42. The storage drive 42 may be, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a combination thereof.
 ストレージコントローラ40は、サーバ計算機2-1からライト要求を受領した場合、そのライト要求に対応するライトデータを圧縮し、その圧縮したライトデータ110をストレージドライブ42に書き込んでよい。ストレージコントローラ40は、サーバ計算機2-1からリード要求を受領した場合、そのリード要求に対応する圧縮データ110をストレージドライブ42から読み出し、その圧縮データ110のままサーバ計算機2-1へ送出してよい。 When the storage controller 40 receives a write request from the server computer 2-1, the storage controller 40 may compress the write data corresponding to the write request and write the compressed write data 110 to the storage drive 42. When the storage controller 40 receives a read request from the server computer 2-1, the storage controller 40 may read the compressed data 110 corresponding to the read request from the storage drive 42 and send the compressed data 110 to the server computer 2-1 as it is. .
 ストレージコントローラ40とストレージドライブ42とは、SAS81で接続されてよい。ストレージコントローラ40は、複数のストレージドライブ42をRAID制御し、RAIDグループを構成してもよい。 The storage controller 40 and the storage drive 42 may be connected by a SAS 81. The storage controller 40 may perform RAID control of the plurality of storage drives 42 to form a RAID group.
 サーバ計算機2-1は、ストレージ装置4に対してリード要求を送出してリードデータを取得したり、ストレージ装置4に対してライト要求を送出してライトデータを書き込んだりする。サーバ計算機2-1は、プログラム等を実行するプロセッサモジュール30と、プログラム及びデータ等を格納するメモリモジュール10-1とを有し、プロセッサモジュール30とメモリモジュール10-1とは、DDR(Double-Data-Rate)規格に基づくIF(InterFace)によって接続されてよい。このプロセッサモジュール30とメモリモジュール10とを接続するDDR規格に基づくIFを、第1DDR IF91という。 The server computer 2-1 sends a read request to the storage device 4 to acquire read data, or sends a write request to the storage device 4 to write the write data. The server computer 2-1 includes a processor module 30 that executes a program and the like, and a memory module 10-1 that stores the program and data. The processor module 30 and the memory module 10-1 include a DDR (Double- It may be connected by IF (InterFace) based on the Data-Rate standard. An IF based on the DDR standard that connects the processor module 30 and the memory module 10 is referred to as a first DDR IF 91.
 プロセッサモジュール30は、メモリコントローラ34と、PCIeに係るRC(RootComplex)36と、CPUコア32とを含み、これらは双方向にデータ送受信が可能な内部バス38で接続されてよい。 The processor module 30 includes a memory controller 34, an RC (Root Complex) 36 based on PCIe, and a CPU core 32, which may be connected by an internal bus 38 capable of bidirectional data transmission / reception.
 CPUコア32は、プログラム等に基づく演算処理を実行する論理回路であってよい。 The CPU core 32 may be a logic circuit that executes arithmetic processing based on a program or the like.
 メモリコントローラ34は、第1DDR IF91を通じてメモリモジュール10へコマンド及びデータを送信したり、メモリモジュール10から第1DDR IF91を通じて送信されたコマンド及びデータを受信したりする論理回路であってよい。 The memory controller 34 may be a logic circuit that transmits commands and data to the memory module 10 through the first DDR IF 91 and receives commands and data transmitted from the memory module 10 through the first DDR IF 91.
 RC36は、サーバ計算機2の配下にPCIe規格に準拠するPCIeデバイスを接続するためのIFである。 RC 36 is an IF for connecting a PCIe device compliant with the PCIe standard under the server computer 2.
 メモリモジュール10-1は、制御部12-1と、伸長部16と、伸長バッファ部18と、1以上のメモリデバイス14とを含む。制御部12-1とメモリデバイス14とは、DDR規格に基づくIFである第2DDR IF92によって接続されてよい。制御部12-1には、第1DDR IF91が接続されてよい。制御部12-1と、伸長部16と、伸長バッファ部18とは、双方向にデータの送受信が可能な内部バス94で接続されてよい。 The memory module 10-1 includes a control unit 12-1, an expansion unit 16, an expansion buffer unit 18, and one or more memory devices 14. The control unit 12-1 and the memory device 14 may be connected by a second DDR IF 92 that is an IF based on the DDR standard. The first DDR IF 91 may be connected to the control unit 12-1. The control unit 12-1, the expansion unit 16, and the expansion buffer unit 18 may be connected by an internal bus 94 capable of bidirectional data transmission / reception.
 伸長部16は、圧縮データを伸長する論理回路である。伸長部16は、ASIC(Application Specific Integrated Circuit)によって構成されてもよい。伸長部16によって伸長されたデータを伸長データということがある。 The decompression unit 16 is a logic circuit that decompresses the compressed data. The decompression unit 16 may be configured by an ASIC (Application Specific Integrated Circuit). Data decompressed by the decompression unit 16 may be referred to as decompressed data.
 伸長バッファ部18は、伸長データを一時的に格納する記憶デバイスである。 The decompression buffer unit 18 is a storage device that temporarily stores decompressed data.
 伸長完了フラグ20は、メモリモジュール10において圧縮データの伸長、及び、伸長データのメモリデバイス14への格納が完了したか否かを示すフラグである。伸長完了フラグ20は、制御部12-1が制御するレジスタとして構成されてもよい。 The decompression completion flag 20 is a flag indicating whether or not decompression of compressed data in the memory module 10 and storage of the decompressed data in the memory device 14 are completed. The decompression completion flag 20 may be configured as a register controlled by the control unit 12-1.
 メモリデバイス14は、データを格納する記憶デバイスである。メモリデバイス14は、例えば、DIMM(Dual Inline Memory Modules)規格に準拠するDDR SDRAMである。 The memory device 14 is a storage device that stores data. The memory device 14 is, for example, a DDR SDRAM that conforms to the DIMM (Dual Inline Memory Modules) standard.
 第1の実施形態において、ストレージコントローラ40は、ストレージドライブ42に格納されている圧縮データ110を、圧縮された状態のまま(ストレージ装置4内で伸長することなく)、ネットワーク80、82及びCPA6を通じて、サーバ計算機2-1へDMA転送する。そして、サーバ計算機2-1のプロセッサモジュール30のRC36は、このDMA転送された圧縮データ110を、メモリモジュール10-1へ転送する。そして、メモリモジュール10-1の制御部12-1は、このDMA転送された圧縮データ110を、メモリデバイス14に格納する。そして、伸長部16は、メモリデバイス14に格納された圧縮データから伸長データ210を生成し、伸長バッファ部18に格納する。制御部12-1は、伸長バッファ部18に格納された伸長データ210を、適切なタイミングでメモリデバイス14に格納する。これにより、ネットワーク80、82、CPA6及び第1DDR IF91の区間において圧縮データ110が転送されるので、ストレージ装置4で圧縮データを伸長して転送する場合と比較して、当該区間のデータ転送量(接続帯域)を削減することができる。以下、本処理の詳細を説明する。 In the first embodiment, the storage controller 40 maintains the compressed data 110 stored in the storage drive 42 in a compressed state (without expansion in the storage apparatus 4) through the networks 80 and 82 and the CPA 6. DMA transfer to the server computer 2-1. Then, the RC 36 of the processor module 30 of the server computer 2-1 transfers the DMA-transferred compressed data 110 to the memory module 10-1. Then, the controller 12-1 of the memory module 10-1 stores the DMA-transferred compressed data 110 in the memory device 14. The decompressing unit 16 generates decompressed data 210 from the compressed data stored in the memory device 14 and stores the decompressed data 210 in the decompressing buffer unit 18. The control unit 12-1 stores the decompressed data 210 stored in the decompression buffer unit 18 in the memory device 14 at an appropriate timing. As a result, the compressed data 110 is transferred in the sections of the networks 80 and 82, the CPA 6 and the first DDR IF 91. Therefore, compared with the case where the compressed data is decompressed and transferred by the storage apparatus 4, the data transfer amount ( Connection bandwidth) can be reduced. Details of this process will be described below.
 図2は、第1の実施形態に係る圧縮データの伸長処理の一例を説明する模式図である。 FIG. 2 is a schematic diagram illustrating an example of compressed data decompression processing according to the first embodiment.
 図2に示すように、圧縮前のデータ(伸長データ)210は、複数のデータブロック211~214から構成されてよい。ここで、圧縮前の1つのデータブロックのサイズを8KBとする。この場合、圧縮前のデータ210のサイズは32KBとなる。また、図2に示すように、圧縮データ210は、データブロック毎に圧縮した圧縮ブロック111~114から構成されてよい。ここで、データブロック211の圧縮ブロック111のサイズは2KB、データブロック212の圧縮ブロック112のサイズは4KB、データブロック113の圧縮ブロック113のサイズは6KB、データブロック214の圧縮ブロック114のサイズは6KBとする。この場合、圧縮データ110のサイズ(圧縮ブロック111~114の合計)は18KBとなる。 As shown in FIG. 2, the uncompressed data (decompressed data) 210 may be composed of a plurality of data blocks 211-214. Here, the size of one data block before compression is 8 KB. In this case, the size of the data 210 before compression is 32 KB. As shown in FIG. 2, the compressed data 210 may be composed of compressed blocks 111 to 114 compressed for each data block. Here, the size of the compressed block 111 of the data block 211 is 2 KB, the size of the compressed block 112 of the data block 212 is 4 KB, the size of the compressed block 113 of the data block 113 is 6 KB, and the size of the compressed block 114 of the data block 214 is 6 KB. And In this case, the size of the compressed data 110 (the total of the compressed blocks 111 to 114) is 18 KB.
 以下、圧縮データ110が、圧縮された状態のままサーバ計算機2―1のメモリデバイス14に格納されるまでの処理例を説明する。
(S11)プロセッサモジュール30のリードプログラムは、ストレージコントローラ40に対して、圧縮データ110のリード要求を送信する。
(S12)ストレージコントローラ40は、リード要求を受信すると、そのリード要求に対応する圧縮データ110に関する情報を含むDMAコマンドをRC36へ送信する。圧縮データ110に関する情報には、圧縮前のデータブロックのサイズ(8KB)と、圧縮データを構成するデータブロックの数(4つ)と、圧縮データのサイズ(18KB)と、メモリデバイス14における格納先の先頭アドレス(例えばアドレスX)とが含まれてよい。この通知を受けたRC36は、圧縮データ110のDMA転送に係る受信準備を行うよう制御部12-1へ通知する。この通知を受けた制御部12-1は、例えば、メモリデバイス14に格納領域「アドレスX~アドレスX+32KB」を確保する。
(S13)ストレージコントローラ40は、メモリモジュール10―1に対して、DMA転送により圧縮データ110を送信する。圧縮データ110は、ネットワーク80、82、CPA6、及び、RC36を通じて、メモリモジュール10-1の制御部12-1へ転送される。
(S14)メモリモジュール10―1の制御部12―1は、受信した圧縮データ110を、圧縮された状態のまま、メモリデバイス14に確保した格納領域に格納する。このとき制御部12は、圧縮データ110の最後尾がその格納領域の最後尾アドレス「アドレスX+32KB」となるように格納する。例えば、圧縮データのサイズが18KBの場合、制御部12は、格納領域の「アドレスX+14KB」の位置から圧縮データ110を格納する。
(S15)制御部12は、第2DDR IF92を通じて格納領域から圧縮データ110を構成する1つの圧縮ブロック111(2KB)を読み出し、伸長部16へ渡す。伸長部16は、その圧縮ブロック111(2KB)から伸長ブロック211(8KB)を生成し、伸長バッファ部18に格納する。
(S16)制御部12は、伸長バッファ部18から伸長ブロック211を読み出し、その伸長ブロック211を第2DDR IF92を通じてメモリデバイス14に送信し、格納領域の先頭位置「アドレスX」から格納する。
(S17)制御部12は、S15と同様に、第2DDR IF92を通じて格納領域から圧縮ブロック112(4KB)を読み出し、伸長部16へ渡す。伸長部16は、その圧縮ブロック112(4KB)から伸長ブロック212(8KB)を生成し、伸長バッファ部18に格納する。
(S18)制御部12は、S16と同様に、伸長バッファ部18から伸長ブロック212を読み出し、その伸長ブロック212を第2DDR IF92を通じてメモリデバイス14に送信し、格納領域の伸長ブロック211の次の位置「アドレスX+8KB」から格納する。
(S19)圧縮ブロック113及び114についても同様に伸長し、伸長ブロック213及び214を格納領域に格納する。
(S20)制御部12は、全ての圧縮ブロック111~114の伸長を完了した後、伸長完了フラグ20を「ON」に変更する。
(S21)プロセッサモジュール30のリードプログラムは、所定の周期で伸長完了フラグ20をチェックし、伸長完了フラグ20が「ON」ならば、リード要求の処理が完了したと判定してよい。なお、伸長完了フラグ20を「ON」にすることに代えて、制御部12が、伸長を完了したことをプロセッサモジュール30に通知してもよい。
Hereinafter, an example of processing until the compressed data 110 is stored in the memory device 14 of the server computer 2-1 in a compressed state will be described.
(S11) The read program of the processor module 30 transmits a read request for the compressed data 110 to the storage controller 40.
(S12) Upon receipt of the read request, the storage controller 40 transmits a DMA command including information on the compressed data 110 corresponding to the read request to the RC 36. Information related to the compressed data 110 includes the size of the data block before compression (8 KB), the number of data blocks constituting the compressed data (four), the size of the compressed data (18 KB), and the storage destination in the memory device 14. The first address (for example, address X) may be included. Receiving this notification, the RC 36 notifies the control unit 12-1 to prepare for reception related to the DMA transfer of the compressed data 110. Upon receiving this notification, the control unit 12-1 secures the storage area “address X to address X + 32 KB” in the memory device 14, for example.
(S13) The storage controller 40 transmits the compressed data 110 to the memory module 10-1 by DMA transfer. The compressed data 110 is transferred to the control unit 12-1 of the memory module 10-1 through the networks 80 and 82, the CPA 6, and the RC 36.
(S14) The control unit 12-1 of the memory module 10-1 stores the received compressed data 110 in a storage area secured in the memory device 14 in a compressed state. At this time, the control unit 12 stores the compressed data 110 so that the end of the compressed data 110 is the end address “address X + 32 KB” of the storage area. For example, when the size of the compressed data is 18 KB, the control unit 12 stores the compressed data 110 from the position “address X + 14 KB” in the storage area.
(S15) The control unit 12 reads out one compressed block 111 (2 KB) constituting the compressed data 110 from the storage area through the second DDR IF 92, and passes it to the decompression unit 16. The decompression unit 16 generates the decompression block 211 (8 KB) from the compression block 111 (2 KB) and stores it in the decompression buffer unit 18.
(S16) The control unit 12 reads the decompression block 211 from the decompression buffer unit 18, transmits the decompression block 211 to the memory device 14 through the second DDR IF 92, and stores it from the head position “address X” of the storage area.
(S17) The control unit 12 reads the compressed block 112 (4 KB) from the storage area through the second DDR IF 92 and passes it to the decompression unit 16 as in S15. The decompression unit 16 generates a decompression block 212 (8 KB) from the compression block 112 (4 KB) and stores it in the decompression buffer unit 18.
(S18) As in S16, the control unit 12 reads the decompression block 212 from the decompression buffer unit 18, transmits the decompression block 212 to the memory device 14 through the second DDR IF 92, and is positioned next to the decompression block 211 in the storage area. Store from "address X + 8KB".
(S19) The compressed blocks 113 and 114 are similarly expanded, and the expanded blocks 213 and 214 are stored in the storage area.
(S20) After completing the decompression of all the compressed blocks 111 to 114, the control unit 12 changes the decompression completion flag 20 to “ON”.
(S21) The read program of the processor module 30 may check the decompression completion flag 20 in a predetermined cycle, and if the decompression completion flag 20 is “ON”, it may be determined that the read request processing has been completed. Instead of setting the decompression completion flag 20 to “ON”, the control unit 12 may notify the processor module 30 that the decompression has been completed.
 第1の実施形態によれば、伸長バッファ部18に割り当てる容量を、圧縮前のデータブロックのサイズ(8KB)まで小さくすることができる。 According to the first embodiment, the capacity allocated to the decompression buffer unit 18 can be reduced to the size of the data block before compression (8 KB).
 図3は、第1の実施形態に係るメモリモジュール10―1の処理の一例を示すフローチャートである。 FIG. 3 is a flowchart showing an example of processing of the memory module 10-1 according to the first embodiment.
 メモリモジュール10―1の制御部12―1は、第1DDR IF91を通じて外部から送信されたリード/ライトコマンド(ストレージコントローラ40からの圧縮データのDMA転送も含む)と、メモリモジュール10―1の内部の伸長部16及び伸長バッファ部18から発行されたコマンドと、を処理する必要がある。伸長部16は、1つの伸長ブロックの処理が完了すると、制御部12―1に対して、次の圧縮ブロックを要求する。伸長バッファ部18は、自分のバッファが満杯になると、制御部12に対して、バッファデータ(つまり伸長ブロック)のメモリデバイス14への書き込みを要求する。 The control unit 12-1 of the memory module 10-1 receives a read / write command (including DMA transfer of compressed data from the storage controller 40) transmitted from the outside through the first DDR IF 91, and the internal of the memory module 10-1. It is necessary to process commands issued from the decompression unit 16 and the decompression buffer unit 18. When the processing of one decompression block is completed, the decompression unit 16 requests the next compressed block from the control unit 12-1. The decompression buffer unit 18 requests the control unit 12 to write the buffer data (that is, the decompressed block) to the memory device 14 when its buffer is full.
 したがって制御部12―1は、第1DDR IF91を通じて受領したリード/ライトコマンド(「外部コマンド」という)と、伸長部16から受領した圧縮ブロックのリードコマンド(「圧縮リードコマンド」という)と、伸長バッファ部18から受領した伸長ブロックのライトコマンド(「バッファライトコマンド」という)と、を処理する必要がある。なお、メモリモジュール10-1内で発行される圧縮リードコマンド及びバッファライトコマンドをまとめて「内部コマンド」ということがある。 Therefore, the control unit 12-1 receives the read / write command (referred to as “external command”) received through the first DDR IF 91, the compressed block read command (referred to as “compressed read command”) received from the decompression unit 16, and the decompression buffer. The decompression block write command (referred to as “buffer write command”) received from the unit 18 needs to be processed. The compressed read command and buffer write command issued in the memory module 10-1 are sometimes collectively referred to as “internal commands”.
 ここでメモリモジュール10―1は、第1DDR IF91を通じて受領した外部コマンドについては、DIMMの規格上、その外部コマンドを受領したときから規定のクロック数が経過したタイミングで、その外部コマンドに対応する処理する必要がある。例えば、外部リードコマンドを受領した場合、メモリモジュール10―1は、その外部リードコマンドを受領したときから12クロック後のタイミングで、その外部リードコマンドの送信元へリードデータを返す必要がある。例えば、外部ライトコマンドを受領した場合、メモリモジュール10―1は、その外部ライトコマンドを受領したときから11クロック後のタイミングで、その外部ライトコマンドの送信元から送信されてくるライトデータを受領する必要がある。そこで制御部12―1は、例えば、図3に示す以下の処理を行う。 Here, for the external command received through the first DDR IF 91, the memory module 10-1 performs processing corresponding to the external command at the timing when the specified number of clocks has elapsed since the reception of the external command according to the DIMM standard. There is a need to. For example, when an external read command is received, the memory module 10-1 needs to return read data to the transmission source of the external read command at a timing 12 clocks after the external read command is received. For example, when an external write command is received, the memory module 10-1 receives write data transmitted from the transmission source of the external write command at a timing 11 clocks after the external write command is received. There is a need. Therefore, for example, the control unit 12-1 performs the following processing shown in FIG.
 制御部12―1は、受領中のコマンドを確認する(S101)。 The control unit 12-1 confirms the command being received (S101).
 受領中のコマンドが、外部コマンドのみ又は内部コマンドのみである場合(S101:外部コマンドのみ or 内部コマンドのみ)、制御部12―1は次の処理を行う。制御部12―1は、第2DDR IF92のアドレス線及びデータ線について、DIMM規格に準拠する規定のクロックを確保する(S110)。そして、制御部12―1は、S101へ戻る。規定のクロックとは、例えば以下のように、コマンド毎に異なってよい。 When the command being received is only an external command or only an internal command (S101: only an external command or only an internal command), the control unit 12-1 performs the following processing. The control unit 12-1 secures a prescribed clock conforming to the DIMM standard for the address line and data line of the second DDR IF 92 (S110). Then, the control unit 12-1 returns to S101. The prescribed clock may be different for each command as follows, for example.
 外部リードコマンドのみを受領中の場合、制御部12―1は、第2DDR IF92のアドレス線について、外部リードコマンドの受領時の6クロック後を、外部リードコマンドのメモリデバイス14―1への送出用に確保する。そして、制御部12―1は、第2DDR IF92のデータ線について、外部リードコマンドの受領時の12クロック後から4クロック分を、外部リードコマンドに対応するリードデータのメモリデバイス14からの取得用に確保する。 When only the external read command is being received, the control unit 12-1 sends the external read command to the memory device 14-1 after 6 clocks when the external read command is received for the address line of the second DDR IF92. To ensure. Then, the control unit 12-1 obtains, from the memory device 14 of the read data corresponding to the external read command, four clocks after 12 clocks at the time of receiving the external read command for the data line of the second DDR IF92. Secure.
 外部ライトコマンドのみを受領中の場合、制御部12―1は、第2DDR IF92のアドレス線について、外部ライトコマンドの受領時の6クロック後を、外部ライトコマンドのメモリデバイス14への送出用に確保する。そして、制御部は、第2DDR IF92のデータ線について、外部ライトコマンドの受領時の11クロック後から4クロック分を、外部ライトコマンドに対応するライトデータのメモリデバイス14への送出用に確保する。 When only the external write command is being received, the control unit 12-1 secures the address line of the second DDR IF 92 for sending the external write command to the memory device 14 after 6 clocks when the external write command is received. To do. Then, the control unit reserves four clocks for the data line of the second DDR IF 92 for 11 clocks after the reception of the external write command for sending the write data corresponding to the external write command to the memory device 14.
 伸長部16からの圧縮リードコマンドのみを受領中の場合、制御部12―1は、第2DDR IF92のアドレス線について、先に送出したコマンドから少なくとも4クロック以上経過後を、圧縮リードコマンドの送出用に確保する。なお、先に送出したコマンドから4クロック以上経過している場合、制御部12―1は、直近のクロックを圧縮リードコマンドの送出用に確保してよい。 When only the compressed read command from the decompression unit 16 is being received, the control unit 12-1 uses the second DDR IF 92 address line for sending a compressed read command after at least 4 clocks have elapsed from the previously sent command. To ensure. When 4 clocks or more have elapsed from the previously sent command, the control unit 12-1 may reserve the latest clock for sending the compressed read command.
 次に、複数のコマンド(外部コマンド及び内部コマンド)を受領中の場合(S101:複数コマンド)の制御部12―1の処理について説明する。 Next, processing of the control unit 12-1 when a plurality of commands (external commands and internal commands) are being received (S101: multiple commands) will be described.
 この場合、制御部12―1は、内部コマンドを遅延させる必要があるか否かを判定する(S130)。なぜなら、上述のとおり、外部コマンドはDIMMの規定により規定のクロック数で処理を行う必要があるところ、仮に内部コマンドを先に処理してしまうと、外部コマンドを規定のクロック数で処理できないことがあるからである。この場合、制御部12―1は、S130において「YES」と判定し、第2DDR IF92において、内部コマンド用に確保したクロックを遅延させる(S120)。つまり、制御部12―1は、確保中のクロックよりも後のクロックを内部コマンド用に確保し直す。これにより、第2DDR IF92において外部コマンドの確保が優先されるので、外部コマンドを規定のクロック数で処理することができる。そして、制御部12―1は、S101へ戻る。なお、内部コマンドを遅延させる必要が無い場合(S130:NO)、制御部12は、S110へ進めばよい。 In this case, the control unit 12-1 determines whether it is necessary to delay the internal command (S130). This is because, as described above, external commands need to be processed with a specified number of clocks according to the DIMM specification. However, if an internal command is processed first, external commands cannot be processed with a specified number of clocks. Because there is. In this case, the control unit 12-1 determines “YES” in S130, and delays the clock reserved for the internal command in the second DDR IF 92 (S120). That is, the control unit 12-1 reserves a clock later than the clock being secured for the internal command. As a result, the securing of the external command is prioritized in the second DDR IF 92, so that the external command can be processed with the specified number of clocks. Then, the control unit 12-1 returns to S101. When there is no need to delay the internal command (S130: NO), the control unit 12 may proceed to S110.
 以上の処理により、メモリモジュール10―1は、外部コマンドに対するDIMMのクロック数に関する規定を満たしつつ、内部における圧縮ブロックの取得、伸長及び格納を実現することができる。 Through the above processing, the memory module 10-1 can achieve acquisition, decompression, and storage of the internal compressed block while satisfying the regulations regarding the number of clocks of the DIMM for the external command.
 図4は、外部コマンドと圧縮リードコマンドとが混在する場合のメモリモジュール10―1における動作の一例を示す。以下、図3も参照しながら、幾つかのクロックにおける処理を説明する。 FIG. 4 shows an example of the operation in the memory module 10-1 when an external command and a compressed read command are mixed. Hereinafter, processing at several clocks will be described with reference to FIG.
<クロック「0」>
 制御部12―1は、伸長部16から圧縮リードコマンドB1Rを受領する。ここで制御部12―1は、図3のS101で「圧縮リードコマンド(内部コマンド)のみ」と判定し、圧縮リードコマンドB1Rを、第2DDR IFのアドレス線92aへ送出する。そして制御部12―1は、第2DDR IFのデータ線92bについて、圧縮リードコマンドB1Rの受領時の6クロック後から4クロック分(クロック「6~9」)を、圧縮リードコマンドB1Rに対応する圧縮リードブロックB1RDの取得用に確保する。
<Clock “0”>
The control unit 12-1 receives the compression read command B1R from the decompression unit 16. Here, the control unit 12-1 determines that “only the compressed read command (internal command)” in S101 of FIG. 3, and sends the compressed read command B1R to the address line 92a of the second DDR IF. Then, the control unit 12-1 compresses the data corresponding to the compressed read command B1R for 4 clocks (clocks “6 to 9”) from the 6th clock after receiving the compressed read command B1R for the data line 92b of the second DDR IF. Secured for acquisition of lead block B1RD.
 また、制御部12―1は、第1DDR IFのアドレス線91aを通じて外部リードコマンドA1Rを受領する。ここで制御部12―1は、図3のS101で「外部コマンドのみ」と判定し、第2DDR IFのアドレス線92aについて、外部リードコマンドA1Rの受領時の6クロック後(クロック「6」)を、外部リードコマンドA1Rの送出用に確保する。そして制御部12―1は、第2DDR IFのデータ線92bについて、外部リードコマンドA1Rの受領時の12クロック後(K10)から4クロック分(クロック「12~15」)を、外部リードコマンドA1Rに対応する外部リードデータA1RDの取得用に確保する。 Also, the control unit 12-1 receives the external read command A1R through the address line 91a of the first DDR IF. Here, the control unit 12-1 determines that “only an external command” in S101 of FIG. 3, and after 6 clocks (clock “6”) at the time of receipt of the external read command A1R for the address line 92a of the second DDR IF. Reserved for sending the external read command A1R. Then, the control unit 12-1 sets the external read command A1R for 4 clocks (clocks “12 to 15”) after 12 clocks (K10) when the external read command A1R is received for the data line 92b of the second DDR IF. Secured for acquisition of corresponding external read data A1RD.
 なお、制御部12―1は、圧縮リードコマンドB1Rを第2DDR IFのアドレス線92aへ送出し、第2DDR IFのデータ線92bについて、当該送出から6クロック後の4クロック分(クロック「6~9」)を圧縮リードデータB1RDの取得用に確保する。そして、制御部12―1は、圧縮リードコマンドB1Rを送出した旨を伸長部16へ通知する。この通知を受けた伸長部16は、次のクロックで圧縮リードコマンドB2Rを制御部12―1へ送信する。 The control unit 12-1 sends the compressed read command B1R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “6-9” after 6 clocks from the sending). ") Is reserved for acquisition of the compressed read data B1RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B1R has been sent. Upon receiving this notification, the decompression unit 16 transmits the compressed read command B2R to the control unit 12-1 at the next clock.
<クロック「1」>
 制御部12―1は、伸長部16から圧縮リードコマンドB2Rを受領する。ここで制御部12―1は、図3のS101で「複数コマンド」と判定し(外部リードコマンドA1R及び圧縮リードコマンドB2Rを有するため)、圧縮リードコマンドB2R(内部コマンド)を遅延させる必要があるか否かを判定する(S130)。この判定は、例えば次のように行う。
<Clock “1”>
The control unit 12-1 receives the compression read command B2R from the decompression unit 16. Here, the control unit 12-1 determines to be “multiple commands” in S101 of FIG. 3 (because it has the external read command A1R and the compressed read command B2R), and needs to delay the compressed read command B2R (internal command). It is determined whether or not (S130). This determination is performed as follows, for example.
 仮に、圧縮リードコマンドB1R(クロック「0」)の4クロック後(クロック「4」)に、圧縮リードコマンドB2Rを第2DDR IFのアドレス線92aに送出するならば、第2DDR IFのデータ線92bについて、圧縮リードコマンドB2Rの送出から6クロック後の4クロック分(クロック「10~13」)を、メモリデバイス14からの圧縮リードデータB2RDの取得用に確保する必要がある。しかし、第2DDR IFのデータ線92bについて、このクロック「10~13」は、上記で外部リードデータA1RDの取得用に確保したクロック「12~15」と一部重複しているため、確保することはできない。したがって制御部12―1は、S130において、圧縮リードコマンドB2Rを遅延させる必要がある(S130:YES)と判定する。この場合、制御部12―1は、第2DDR IFのデータ線92bについて、外部リードデータA1RDの取得を完了(クロック「15」)した後(クロック「16」)に、圧縮リードコマンドB2Rの取得用を確保する必要がある。そこで制御部12―1は、第2DDR IFのコマンド線92aについてクロック「10(=16-6)」を圧縮リードコマンドB2Rの取得用に確保し、第2DDR IFのデータ線92bについてクロック「16~19」を圧縮リードデータB2RDの取得用に確保する。 If the compressed read command B2R is sent to the address line 92a of the second DDR IF 4 clocks (clock "4") after the compressed read command B1R (clock "0"), the data line 92b of the second DDR IF Therefore, it is necessary to secure four clocks (clocks “10 to 13”), six clocks after sending the compressed read command B2R, for acquiring the compressed read data B2RD from the memory device. However, for the data line 92b of the second DDR IF, this clock “10 to 13” is partially overlapped with the clock “12 to 15” reserved for acquiring the external read data A1RD above. I can't. Therefore, the controller 12-1 determines in S130 that the compressed read command B2R needs to be delayed (S130: YES). In this case, the control unit 12-1 acquires the compressed read command B2R after completing the acquisition of the external read data A1RD (clock “15”) for the data line 92b of the second DDR IF (clock “16”). It is necessary to ensure. Therefore, the control unit 12-1 reserves the clock “10 (= 16-6)” for the second DDR IF command line 92a for acquisition of the compressed read command B2R, and the clock “16 to 16” for the second DDR IF data line 92b. 19 "is reserved for obtaining the compressed read data B2RD.
<クロック「6」>
 制御部12―1は、外部リードコマンドA1Rを第2DDR IFのアドレス線92aへ送出する。また、制御部12―1は、第2DDR IFのデータ線92bを通じて外部リードデータB1RDを取得し、伸長部16へ渡す(クロック「6~9」)。
<Clock “6”>
The controller 12-1 sends the external read command A1R to the address line 92a of the second DDR IF. Further, the control unit 12-1 acquires the external read data B1RD through the data line 92b of the second DDR IF and passes it to the decompression unit 16 (clocks “6 to 9”).
<クロック「10」>
 制御部12―1は、圧縮リードコマンドB2Rを第2DDR IFのアドレス線92aへ送出し、第2DDR IFのデータ線92bについて、当該送出から6クロック後の4クロック分(クロック「16~19」)を圧縮リードデータB2RDの取得用に確保する。そして、制御部12―1は、圧縮リードコマンドB2Rを送出したその旨を伸長部16へ通知する。この通知を受けた伸長部16は、次のクロックで圧縮リードコマンドB3Rを制御部12―1へ送信する。また、制御部12―1は、第1DDR IFのアドレス線91aを通じて外部ライトコマンドA2Wを受領する。ここで制御部12―1は、図3のS101で「外部コマンドのみ」と判定し、第2DDR IFのアドレス線92aについて、当該受領から6クロック後(クロック「16」)を外部ライトコマンドA2Wの送出用に確保し、第2DDR IFのデータ線92bについて、当該受領から11クロック後の4クロック分(クロック「21~24」)を外部ライトデータA2WDの送出用に確保する。
<Clock “10”>
The control unit 12-1 sends the compressed read command B2R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “16 to 19”) 6 clocks after the sending. Is secured for obtaining the compressed read data B2RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B2R has been sent. Upon receiving this notification, the decompression unit 16 transmits a compressed read command B3R to the control unit 12-1 at the next clock. Also, the control unit 12-1 receives the external write command A2W through the address line 91a of the first DDR IF. Here, the control unit 12-1 determines that “external command only” in S101 of FIG. 3, and after 6 clocks (clock “16”) from the reception of the address line 92a of the second DDR IF, the control unit 12-1 receives the external write command A2W. For the data line 92b of the second DDR IF, 4 clocks (clocks “21 to 24”) 11 clocks after the reception are secured for sending the external write data A2WD.
<クロック「11」>
 制御部12―1は、伸長部16から圧縮リードコマンドB3Rを受領する。ここで制御部12―1は、図3のS101で「複数コマンド」と判定し(外部ライトコマンドA2W及び圧縮リードコマンドB3Rを有するため)、圧縮リードコマンドB3Rを遅延させる必要があるか否かを判定する(S130)。仮に、圧縮リードコマンドB2R(クロック「10」)の4クロック後(クロック「14」)に、圧縮リードコマンドB3Rを第2DDR IFのアドレス線92aに送出するならば、第2DDR IFのデータ線92bについて、圧縮リードコマンドB3Rの出力時の6クロック後から4クロック分(クロック「20~23」)を、圧縮リードデータB3RDの取得用に確保する必要がある。しかし、第2DDR IFのデータ線93bについて、このクロック「20~23」は、外部ライトデータA2WDの送出用に確保したクロック「21~24」と一部重複しているため、確保することができない。したがって制御部12は、S130において圧縮リードコマンドB3Rを遅延させる必要がある(S130:YES)と判定する。この場合、制御部12―1は、第2DDR IFのアドレス線92aについて、外部ライトコマンドA2Wを送出してから4クロック後(クロック「20」)を、圧縮リードコマンドB3Rの送出用に確保する。
<Clock “11”>
The control unit 12-1 receives the compression read command B3R from the decompression unit 16. Here, the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the compressed read command B3R), and determines whether or not it is necessary to delay the compressed read command B3R. Determine (S130). If the compressed read command B3R is sent to the address line 92a of the second DDR IF four clocks (clock "14") after the compressed read command B2R (clock "10"), the data line 92b of the second DDR IF is transmitted. Therefore, 4 clocks (clocks “20 to 23”) after 6 clocks when the compressed read command B3R is output must be secured for acquiring the compressed read data B3RD. However, for the data line 93b of the second DDR IF, this clock “20-23” cannot be secured because it partially overlaps with the clock “21-24” secured for sending the external write data A2WD. . Therefore, the control unit 12 determines that it is necessary to delay the compressed read command B3R in S130 (S130: YES). In this case, the control unit 12-1 reserves the second DDR IF address line 92a for sending the compressed read command B3R after 4 clocks (clock “20”) after sending the external write command A2W.
<クロック「12」>
 制御部12―1は、第2DDR IFのデータ線92bを通じて外部リードデータA1RDを取得する(クロック「12~15」)。そして、制御部12―1は、この外部リードデータA1RDを第1DDR IFのデータ線91bへ送出する。
<Clock “12”>
The control unit 12-1 acquires the external read data A1RD through the data line 92b of the second DDR IF (clocks “12 to 15”). Then, the control unit 12-1 sends the external read data A1RD to the data line 91b of the first DDR IF.
<クロック「16」>
 制御部12―1は、外部ライトコマンドA2Wを第2DDR IFのアドレス線92aへ送出する。また、制御部12―1は、第2DDR IFのデータ線92bを通じて圧縮リードデータB2RDを取得し、伸長部16へ渡す(クロック「16~19」)。
<Clock “16”>
The controller 12-1 sends the external write command A2W to the address line 92a of the second DDR IF. Further, the control unit 12-1 acquires the compressed read data B2RD through the data line 92b of the second DDR IF and passes it to the decompression unit 16 (clocks “16 to 19”).
<クロック「20」>
 制御部12―1は、圧縮リードコマンドB3Rを第2DDR IFのアドレス線92aへ送出し、第2DDR IFのデータ線92bについて、当該送出から6クロック後の4クロック分(クロック「26~29」)を圧縮リードデータB2RDの取得用に確保する。そして、制御部12―1は、圧縮リードコマンドB3Rを送出した旨を伸長部16へ通知する。この通知を受けた伸長部16は、次のクロックで圧縮リードコマンドB4Rを制御部12―1へ送信する。
<Clock “20”>
The control unit 12-1 sends the compressed read command B3R to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “26 to 29”) 6 clocks after the sending. Is secured for obtaining the compressed read data B2RD. Then, the control unit 12-1 notifies the decompression unit 16 that the compressed read command B3R has been sent. Upon receiving this notification, the decompression unit 16 transmits the compressed read command B4R to the control unit 12-1 at the next clock.
<クロック「21」>
 制御部12―1は、伸長部16から圧縮リードコマンドB4Rを受領する。ここで制御部12―1は、図3のS101で「圧縮リードコマンド(内部コマンド)のみ」と判定し、第2DDR IFのアドレス線92aについて、圧縮リードコマンドB3Rを送出してから4クロック後(クロック「24」)を、圧縮リードコマンドB4Rの送出用に確保する。また、制御部12―1は、第1DDR IFのデータ線91bを通じて取得した外部ライトデータA2WDを、第2DDR IFのデータ線92bに送出する(クロック「21~24」)。
<Clock “21”>
The control unit 12-1 receives the compression read command B4R from the decompression unit 16. Here, the control unit 12-1 determines “compressed read command (internal command only)” in S101 in FIG. 3, and after sending the compressed read command B3R to the address line 92a of the second DDR IF, four clocks later ( Clock "24") is reserved for sending the compressed read command B4R. Further, the control unit 12-1 sends the external write data A2WD acquired through the data line 91b of the first DDR IF to the data line 92b of the second DDR IF (clocks “21 to 24”).
<クロック「26」>
 制御部12―1は、第2DDR IFのデータ線92bを通じて圧縮リードデータB3RDを取得し、伸長部16へ渡す(クロック「26~29」)
<Clock “26”>
The control unit 12-1 acquires the compressed read data B3RD through the data line 92b of the second DDR IF, and passes it to the decompression unit 16 (clocks “26 to 29”).
 このように制御部12―1は、外部コマンドを6クロック遅延させている間に内部コマンドの一種である圧縮リードコマンドを受領した場合において、仮に、圧縮リードコマンドを、前のコマンドの送出から4クロック後に第2DDR IFのアドレス線92aへ送出した場合に、外部リード/ライトコマンドに対応する外部リード/ライトデータを規定のクロックで処理できなくなってしまうときは、圧縮リードコマンドの送出を遅延させる。これによりメモリモジュール10―1は、第1DDR IF91を通じて受領した外部リード/ライトコマンドを規定のクロックで処理しつつ、圧縮リードコマンドも適切に処理することができる。 As described above, when the control unit 12-1 receives a compressed read command which is a kind of internal command while delaying the external command by 6 clocks, the control unit 12-1 supposes that the compressed read command is 4 from the transmission of the previous command. If the external read / write data corresponding to the external read / write command cannot be processed with the specified clock when it is sent to the address line 92a of the second DDR IF after the clock, the sending of the compressed read command is delayed. As a result, the memory module 10-1 can appropriately process the compressed read command while processing the external read / write command received through the first DDR IF 91 with the specified clock.
 図5は、外部コマンドとバッファライトコマンドとが混在する場合のメモリモジュール10-1における動作の一例を示す。以下、図3も参照しながら、幾つかのクロックにおける処理を説明する。 FIG. 5 shows an example of the operation in the memory module 10-1 when an external command and a buffer write command coexist. Hereinafter, processing at several clocks will be described with reference to FIG.
<クロック「0」>
 制御部12―1は、バッファ18からバッファライトコマンドC1Wを受領する。ここで制御部12―1は、図3のS101で「バッファライトコマンド(内部コマンド)のみ」と判定し、バッファライトコマンドC1Wを、第2DDR IFのアドレス線92aへ送出する。そして制御部12―1は、第2DDR IFのデータ線92bについて、バッファライトコマンドC1Wの送信時の5クロック後から4クロック分(クロック「5~8」)を、バッファライトコマンドC1Wに対応するバッファライトデータC1WDの送出用に確保する。
<Clock “0”>
The control unit 12-1 receives the buffer write command C1W from the buffer 18. Here, the control unit 12-1 determines that “only the buffer write command (internal command)” in S101 of FIG. 3, and sends the buffer write command C1W to the address line 92a of the second DDR IF. The control unit 12-1 then transfers the buffer corresponding to the buffer write command C1W for four clocks (clocks “5 to 8”) after five clocks at the time of transmission of the buffer write command C1W for the data line 92b of the second DDR IF. Secured for sending write data C1WD.
 また、制御部12―1は、第1DDR IFのアドレス線91aを通じて外部リードコマンドA1Rを受領する。ここで制御部12は、図3のS101で「外部コマンドのみ」と判定し、第2DDR IFのアドレス線92aについて、外部リードコマンドA1Rの受領時の6クロック後(クロック「6」)を、外部リードコマンドA1Rの送出用に確保する。そして制御部12―1は、第2DDR IFのデータ線92bについて、外部リードコマンドA1Rの受領時の12クロック後(K30)から4クロック分(クロック「12~15」)を、外部リードコマンドA1Rに対応する外部リードデータA1RDの取得用に確保する。 Also, the control unit 12-1 receives the external read command A1R through the address line 91a of the first DDR IF. Here, the control unit 12 determines that “external command only” in S101 of FIG. 3, and after 6 clocks (clock “6”) at the time of receiving the external read command A1R for the address line 92a of the second DDR IF, Reserved for sending the read command A1R. Then, the control unit 12-1 uses the data line 92b of the second DDR IF for four clocks (clocks “12 to 15”) after 12 clocks (K30) when the external read command A1R is received as the external read command A1R. Secured for acquisition of corresponding external read data A1RD.
 なお、制御部12―1は、バッファライトコマンドC1Wを第2DDR IFのアドレス線92aへ出力し、第2DDR IFのデータ線92bについて、当該送出から6クロック後の4クロック分(クロック「6~9」)を圧縮リードデータB1RDの取得用に確保する。そして、制御部12―1は、バッファライトコマンドC1Wを送出した旨を伸長バッファ部18へ通知する。この通知を受けた伸長バッファ部18は、次のクロックでバッファライトコマンドC2Wを制御部12―1へ送出する。 The control unit 12-1 outputs the buffer write command C1W to the address line 92a of the second DDR IF, and for the data line 92b of the second DDR IF, four clocks (clocks “6-9” after 6 clocks from the transmission). ") Is reserved for acquisition of the compressed read data B1RD. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C1W has been sent. Upon receiving this notification, the decompression buffer unit 18 sends a buffer write command C2W to the control unit 12-1 at the next clock.
<クロック「1」>
 制御部12―1は、伸長バッファ部18からバッファライトコマンドC2Wを受領する。ここで制御部12―1は、図3のS101で「複数コマンド」と判定し(外部リードコマンドA1R及びバッファライトコマンドC2Wを有するため)、バッファライトコマンドC2Wを遅延させる必要があるか否かを判定する(S130)。この判定は、例えば以下のように行う。
<Clock “1”>
The control unit 12-1 receives the buffer write command C2W from the decompression buffer unit 18. Here, the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external read command A1R and the buffer write command C2W), and determines whether or not the buffer write command C2W needs to be delayed. Determine (S130). This determination is performed as follows, for example.
 仮に、バッファライトコマンドC1Wの4クロック後(クロック「4」)にバッファライトコマンドC2Wを第2DDR IFのアドレス線92aに送出するならば、第2DDR IFのデータ線92bについて、バッファライトコマンドC2Wの送出から5クロック後の4クロック分(クロック「9~12」)を、バッファライトブロックC2WDの送出用に確保する必要がある。しかし、第2DDR IFのデータ線92bについて、このクロック「9~12」は、上記で外部リードデータA1Rの取得用に確保したクロック「12~15」と一部重複しているため、確保することはできない。したがって制御部12―1は、S130においてバッファライトコマンド(内部コマンド)を遅延させる必要がある(S130:YES)と判定する。この場合、制御部12―1は、第2DDR IFのデータ線92bについて、外部リードデータA1RDの取得を完了(クロック「15」)してから1クロック空けた後(クロック「17」)に、バッファライトブロックC2WDの送出用を確保する必要がある。ここで1クロック空けた後としているのは、第2DDR IFのデータ線92bをリード用からライト用に切り替える必要があるためである。そこで制御部12―1は、第2DDR IFのコマンド線92aについてクロック「12(=17-5)」をバッファライトコマンドC2Wの送出用に確保し、第2DDR IFのデータ線92bについてクロック「17~20」をバッファライトデータC2WDの送出用に確保する。 If the buffer write command C2W is sent to the address line 92a of the second DDR IF 4 clocks after the buffer write command C1W (clock "4"), the buffer write command C2W is sent to the data line 92b of the second DDR IF. It is necessary to secure 4 clocks (clocks “9 to 12”) after 5 clocks for sending the buffer write block C2WD. However, for the data line 92b of the second DDR IF, this clock “9 to 12” is partially overlapped with the clock “12 to 15” reserved for acquiring the external read data A1R as described above. I can't. Therefore, the control unit 12-1 determines that it is necessary to delay the buffer write command (internal command) in S130 (S130: YES). In this case, the control unit 12-1 waits for one clock (clock “17”) after completing the acquisition of the external read data A1RD (clock “15”) for the second DDR IF data line 92 b, It is necessary to ensure transmission of the write block C2WD. Here, the reason is that one clock is left because the data line 92b of the second DDR IF needs to be switched from read to write. Therefore, the control unit 12-1 reserves the clock “12 (= 17-5)” for the second DDR IF command line 92a for sending the buffer write command C2W, and the clock “17 to 17” for the second DDR IF data line 92b. 20 "is reserved for sending buffer write data C2WD.
<クロック「5」>
 制御部12―1は、バッファライトデータC1WDを第2DDR IFのデータ線92bへ送出する(クロック「5~8」)。
<Clock “5”>
The control unit 12-1 sends the buffer write data C1WD to the data line 92b of the second DDR IF (clocks “5 to 8”).
<クロック「6」>
 制御部12―1は、外部リードコマンドA1Rを第2DDR IFのアドレス線92aへ送出する。
<Clock “6”>
The controller 12-1 sends the external read command A1R to the address line 92a of the second DDR IF.
<クロック「11」>
 制御部12―1は、第1DDR IFのアドレス線91aを通じて外部ライトコマンドA2Wを受領する。ここで制御部12―1は、図3のS101で「複数コマンド」と判定し(外部ライトコマンドA2W及びバッファライトコマンドC2Wを有するため)、バッファライトコマンドC2Wを遅延させる必要があるか否かを判定する(S130)。この判定は、例えば以下の様に行う。
<Clock “11”>
The control unit 12-1 receives the external write command A2W through the address line 91a of the first DDR IF. Here, the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the buffer write command C2W), and determines whether or not it is necessary to delay the buffer write command C2W. Determine (S130). This determination is performed as follows, for example.
 仮に、外部ライトコマンドA2Wを規定通り、当該外部ライトコマンドA2Wの受領から6クロック後(クロック「17」)に第2DDR IFのアドレス線92aに送出するならば、第2DDR IFのデータ線92bについて、当該外部ライトコマンドA2Wの受領から11クロック後の4クロック分(クロック「22~25」)を、外部ライトデータA2WDの送出用に確保する必要がある。これは、第2DDR IFのデータ線92bについて、上記バッファライトデータC2WDの送出用に確保したクロック「17~20」とも重複しない。したがって制御部12―1は、S130においてバッファライトコマンドC2W(内部コマンド)を遅延させる必要は無い(S130:NO)と判定し、第2DDR IFのコマンド線92aについて、クロック「12」をバッファライトコマンドC2Wの送出用に確保したままとする。 Assuming that the external write command A2W is sent to the address line 92a of the second DDR IF 6 clocks after receiving the external write command A2W (clock “17”) as specified, the data line 92b of the second DDR IF It is necessary to secure 4 clocks (clocks “22 to 25”) 11 clocks after receiving the external write command A2W for sending the external write data A2WD. This does not overlap with the clocks “17 to 20” reserved for sending the buffer write data C2WD for the data line 92b of the second DDR IF. Therefore, the control unit 12-1 determines that it is not necessary to delay the buffer write command C2W (internal command) in S130 (S130: NO), and uses the buffer “12” for the clock “12” for the command line 92a of the second DDR IF. Keep reserved for C2W transmission.
<クロック「12」>
 制御部12―1は、バッファライトコマンドC2Wを第2DDR IFのアドレス線92aへ送出する。そして、制御部12―1は、バッファライトコマンドC2Wを送出した旨を伸長バッファ部18へ通知する。この通知を受けた伸長バッファ部18は、次のクロック「13」でバッファライトコマンドC3Wを制御部12―1へ送出する。また、制御部12―1は、第2DDR IFのデータ線92bを通じて外部リードデータA1RDを取得し、第1DDR IFのデータ線91bへ送出する(クロック「12~15」)。
<Clock “12”>
The control unit 12-1 sends the buffer write command C2W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C2W has been sent. Upon receiving this notification, the decompression buffer unit 18 sends a buffer write command C3W to the control unit 12-1 at the next clock “13”. Further, the control unit 12-1 acquires the external read data A1RD through the data line 92b of the second DDR IF and sends it to the data line 91b of the first DDR IF (clocks “12 to 15”).
<クロック「13」>
 制御部12―1は、伸長バッファ部18からバッファライトコマンドC3Wを受領する。ここで制御部12―1は、図3のS101で「複数コマンド」と判定し(外部ライトコマンドA2W及びバッファライトコマンドC3Wを有するため)、このバッファライトコマンドC3Wを遅延させる必要があるか否かを判定する(S130)。仮に、バッファライトコマンドC2Wの4クロック後(クロック「16」)にこのバッファライトコマンドC3Wを送出するならば、第2DDR IFのデータ線92bについて、その送出から5クロック後の4クロック分(クロック「21~24」)を、そのバッファライトコマンドC3Wに対応するバッファライトデータC3WDの送出用に確保する必要がある。しかし、第2DDR IFのデータ線92bについて、このクロック「21~24」は、上記で外部ライトデータA2WDの送出用に確保したクロック「22~25」と重複するため、確保することはできない。したがって制御部12―1は、S130においてバッファライトコマンドC2Wを遅延させる必要がある(S130:YES)と判定する。この場合、制御部12―1は、第DDR IFのデータ線92bについて、外部ライトデータA2WDの送出を完了した後の4クロック(クロック「26~29」)を、バッファライトデータC3WDの送出用に確保してよい。そこで制御部12―1は、第2DDR IFのコマンド線92aについてクロック「21(=26-5)」をバッファライトコマンドC3Wの送出用に確保し、第2DDR IFのデータ線92bについてクロック「26~29」をバッファライトデータC3WDの送出用に確保する。
<Clock “13”>
The control unit 12-1 receives the buffer write command C3W from the decompression buffer unit 18. Here, the control unit 12-1 determines “multiple commands” in S101 of FIG. 3 (because it has the external write command A2W and the buffer write command C3W), and whether or not it is necessary to delay the buffer write command C3W. Is determined (S130). If the buffer write command C3W is transmitted 4 clocks after the buffer write command C2W (clock “16”), the data line 92b of the second DDR IF is 4 clocks (clock “5” after the transmission). 21 to 24 ") must be secured for sending the buffer write data C3WD corresponding to the buffer write command C3W. However, for the data line 92b of the second DDR IF, this clock “21 to 24” cannot be secured because it overlaps with the clock “22 to 25” secured for sending the external write data A2WD above. Therefore, the control unit 12-1 determines that it is necessary to delay the buffer write command C2W in S130 (S130: YES). In this case, the control unit 12-1 uses four clocks (clocks “26 to 29”) after transmission of the external write data A2WD is completed for transmission of the buffer write data C3WD to the data line 92b of the DDR IF. May be secured. Therefore, the control unit 12-1 reserves the clock “21 (= 26-5)” for the command line 92a of the second DDR IF for transmission of the buffer write command C3W, and the clock “26 to 26” for the data line 92b of the second DDR IF. 29 "is reserved for sending buffer write data C3WD.
<クロック「17」>
 制御部12―1は、外部ライトコマンドA2Wを第2DDR IFのアドレス線92aへ送出する。また、制御部12―1は、バッファライトデータC2WDを第2DDR IFのデータ線92bへ送出する(クロック「17~20」)。
<Clock “17”>
The controller 12-1 sends the external write command A2W to the address line 92a of the second DDR IF. Further, the control unit 12-1 sends the buffer write data C2WD to the data line 92b of the second DDR IF (clocks “17 to 20”).
<クロック「21」>
 制御部12―1は、バッファライトコマンドC3Wを第2DDR IFのアドレス線92aへ送出する。そして、制御部12―1は、バッファライトコマンドC3Wを送出した旨を伸長バッファ部18へ通知する。この通知を受けた伸長バッファ部18は、次のクロック「22」でバッファライトコマンドC4Wを制御部へ送出する。
<Clock “21”>
The control unit 12-1 sends the buffer write command C3W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C3W has been sent. Receiving this notification, the decompression buffer unit 18 sends a buffer write command C4W to the control unit at the next clock “22”.
<クロック「22」>
 制御部12―1は、伸長バッファ部18からバッファライトコマンドC4Wを受領する。ここで制御部12―1は、S101で「バッファライトコマンド(内部コマンド)のみ」と判定し、第2DDR IFのアドレス線92aについて、バッファライトコマンドC3Wを送出してから4クロック後(クロック「25」)を、この受領したバッファライトコマンドC4Wの送出用に確保する。また、制御部12―1は、第1DDR IFのデータ線91aを通じて取得した外部ライトデータA2WDを、第2DDR IFのデータ線92bに送出する(クロック「22~25」)。
<Clock “22”>
The control unit 12-1 receives the buffer write command C4W from the decompression buffer unit 18. Here, the control unit 12-1 determines in S101 that “only a buffer write command (internal command)” and four clocks after sending the buffer write command C3W to the address line 92a of the second DDR IF (clock “25”). ") Is reserved for sending the received buffer write command C4W. Also, the control unit 12-1 sends the external write data A2WD acquired through the data line 91a of the first DDR IF to the data line 92b of the second DDR IF (clocks “22 to 25”).
<クロック「25」>
 制御部12―1は、バッファライトコマンドC4Wを第2DDR IFのアドレス線92aへ送出する。そして、制御部12―1は、バッファライトコマンドC2Wを送出した旨を伸長バッファ部18へ通知する。
<Clock “25”>
The control unit 12-1 sends the buffer write command C4W to the address line 92a of the second DDR IF. Then, the control unit 12-1 notifies the decompression buffer unit 18 that the buffer write command C2W has been sent.
<クロック「26」>
 制御部12―1は、バッファライトデータC3WDを第2DDR IFのデータ線92bへ送出する(クロック「26~29」)。
<Clock “26”>
The control unit 12-1 sends the buffer write data C3WD to the data line 92b of the second DDR IF (clocks “26 to 29”).
 このように制御部12―1は、外部コマンドを6クロック遅延させている間に内部コマンドの一種であるバッファライトコマンドを受領した場合において、仮に、バッファライトコマンドを、前のコマンドの送出から4クロック後に第2DDR IFのアドレス線92aへ送出した場合に、外部リード/ライトコマンドに対応する外部リード/ライトデータを規定のクロックで処理できなくなってしまうときは、バッファライトコマンドの送出を遅延させる。これによりメモリモジュール10―1は、第1DDR IF91を通じて受領した外部リード/ライトコマンドを規定のクロックで処理しつつ、バッファライトコマンドも適切に処理することができる。 As described above, when the control unit 12-1 receives a buffer write command which is a kind of internal command while delaying the external command by 6 clocks, the control unit 12-1 supposes that the buffer write command is 4 from the transmission of the previous command. If the external read / write data corresponding to the external read / write command cannot be processed with the specified clock when it is transmitted to the address line 92a of the second DDR IF after the clock, the transmission of the buffer write command is delayed. As a result, the memory module 10-1 can appropriately process the buffer write command while processing the external read / write command received through the first DDR IF 91 with the specified clock.
(第2の実施形態)
 図6は、第2の実施形態に係る計算機システム1-2の構成例を示すブロック図である。図7は、第2の実施形態に係る圧縮データの伸長処理の一例を示す模式図である。第2の実施形態の説明において、第1の実施形態と同じ要素については同一の符号を付し、説明を省略する。
(Second Embodiment)
FIG. 6 is a block diagram illustrating a configuration example of the computer system 1-2 according to the second embodiment. FIG. 7 is a schematic diagram illustrating an example of compressed data decompression processing according to the second embodiment. In the description of the second embodiment, the same elements as those in the first embodiment are denoted by the same reference numerals, and description thereof is omitted.
 第2の実施形態に係るメモリモジュール10-2は、圧縮バッファ部19と、その圧縮バッファ部19の空き容量を示すバッファ空き容量レジスタ22と、をさらに有する。以下、圧縮バッファ部19の容量を16KB、圧縮前(伸長後)データのサイズを64KB、圧縮データのサイズを32KBとして、図6及び図7を参照しながら、第2の実施形態に係るサーバ計算機2-2の動作例を説明する。 The memory module 10-2 according to the second embodiment further includes a compression buffer unit 19 and a buffer free space register 22 indicating the free space of the compression buffer unit 19. Hereinafter, the capacity of the compression buffer unit 19 is set to 16 KB, the size of the data before compression (after decompression) is 64 KB, and the size of the compressed data is 32 KB, with reference to FIGS. 6 and 7, the server computer according to the second embodiment An operation example 2-2 will be described.
(S41)プロセッサモジュール30のリードプログラムは、ストレージコントローラ40に対して、圧縮データ110のリード要求を送信する。
(S42)ストレージコントローラ40は、リード要求を受信すると、そのリード要求に対応する圧縮データ110に関する情報を含むDMAコマンドをRC36へ送信する。圧縮データ110に関する情報には、圧縮前のデータのサイズ(64KB)と、メモリデバイス14における格納先の先頭アドレス(例えばアドレスX)とが含まれてよい。この通知を受けたRC36は、圧縮データ110のDMA転送に係る受信準備を行うよう制御部12-2へ通知する。この通知を受けた制御部12-2は、例えば、メモリデバイス14に格納領域「アドレスX~アドレスX+64KB」を確保する。
(S43)ストレージコントローラ40は、メモリモジュール10-2に対して、DMA転送により圧縮データ110を送信する。圧縮データ110は、ネットワーク80、82、CPA6、及び、RC36を通じて、メモリモジュール10-2の制御部12-2へ転送される。
(S44)メモリモジュール10―2の制御部12―2は、バッファ空き容量レジスタ22が「16KB」の場合、受信した圧縮データ110の内、バッファ空き容量22の示す16KB分の圧縮データを、圧縮バッファ部19に格納する。伸長部16は、圧縮バッファ部19から12KB分の圧縮データを取り出して伸長データ221を生成し、メモリデバイス14の格納領域に格納する。これにより、バッファ空き容量レジスタ22は「12KB」となる。
(S45)制御部12―2は、バッファ空き容量レジスタ22が「12KB」なので、残りの圧縮データ121の内、バッファ空き容量レジスタ22の示す12KB分の圧縮データを、圧縮バッファ部19に格納する。伸長部16は、圧縮バッファ部19から12KB分の圧縮データを取り出して伸長データ222を生成し、メモリデバイス14の格納領域に格納する。S43~S45を繰り返すことにより、メモリデバイス14の格納領域に、伸長データが格納される。
(S46)制御部12―2は、伸長データを全てメモリデバイス14の格納領域に格納した後、伸長完了フラグ20を「ON」にする。
(S47)プロセッサモジュール30のリードプログラムは、所定の周期で伸長完了フラグ20をチェックし、この伸長完了フラグ20が「ON」ならば、リード要求の処理が完了したと判定してよい。
(S41) The read program of the processor module 30 transmits a read request for the compressed data 110 to the storage controller 40.
(S42) Upon receipt of the read request, the storage controller 40 transmits a DMA command including information on the compressed data 110 corresponding to the read request to the RC 36. The information regarding the compressed data 110 may include the size of data before compression (64 KB) and the start address (for example, address X) of the storage destination in the memory device 14. Receiving this notification, the RC 36 notifies the control unit 12-2 to prepare for reception of the compressed data 110 relating to DMA transfer. Upon receiving this notification, the control unit 12-2 secures the storage area “address X to address X + 64 KB” in the memory device 14, for example.
(S43) The storage controller 40 transmits the compressed data 110 to the memory module 10-2 by DMA transfer. The compressed data 110 is transferred to the control unit 12-2 of the memory module 10-2 through the networks 80 and 82, the CPA 6, and the RC 36.
(S44) When the buffer free space register 22 is “16 KB”, the control unit 12-2 of the memory module 10-2 compresses the compressed data for 16KB indicated by the buffer free space 22 in the received compressed data 110. Store in the buffer unit 19. The decompression unit 16 extracts 12 KB of compressed data from the compression buffer unit 19 to generate decompressed data 221 and stores the decompressed data 221 in the storage area of the memory device 14. As a result, the buffer free capacity register 22 becomes “12 KB”.
(S45) Since the buffer free space register 22 is “12 KB”, the control unit 12-2 stores the compressed data for 12 KB indicated by the buffer free space register 22 in the compressed buffer unit 19 among the remaining compressed data 121. . The decompression unit 16 extracts 12 KB of compressed data from the compression buffer unit 19 to generate decompressed data 222 and stores the decompressed data 222 in the storage area of the memory device 14. By repeating S43 to S45, the decompressed data is stored in the storage area of the memory device 14.
(S46) After storing all the decompressed data in the storage area of the memory device 14, the control unit 12-2 sets the decompression completion flag 20 to “ON”.
(S47) The read program of the processor module 30 may check the decompression completion flag 20 at a predetermined cycle, and if the decompression completion flag 20 is “ON”, it may be determined that the read request processing has been completed.
 以上の処理によれば、第1の実施形態と比較して、メモリモジュール10-2内において、メモリデバイス14から第2DDR IF92を通じて圧縮データを取得し伸長部16へ渡す処理が不要となるので、第2DDR IF92におけるデータ転送量を削減することができる。 According to the above processing, compared with the first embodiment, it is unnecessary to acquire compressed data from the memory device 14 through the second DDR IF 92 and pass it to the decompression unit 16 in the memory module 10-2. The data transfer amount in the second DDR IF 92 can be reduced.
 図8は、第2の実施形態に係るメモリモジュール10―2の処理の一例を示すフローチャートである。図8の説明において、図3と同じ処理については同一の符号を付し、説明を省略する。 FIG. 8 is a flowchart showing an example of processing of the memory module 10-2 according to the second embodiment. In the description of FIG. 8, the same processes as those in FIG.
 制御部12―2は、受領中のコマンドを確認する(S201)。受領中のコマンドが、複数のコマンドである場合(S201:複数コマンド)、制御部12―2は、図3に示すS130以降の処理を行う。受領中のコマンドが内部コマンドのみである場合(S201:内部コマンドのみ)、制御部12―2は、図3に示すS110以降の処理を行う。 The control unit 12-2 confirms the command being received (S201). When the command being received is a plurality of commands (S201: a plurality of commands), the control unit 12-2 performs the processing after S130 shown in FIG. When the command being received is only an internal command (S201: only the internal command), the control unit 12-2 performs the processing after S110 shown in FIG.
 受領中のコマンドが外部コマンドのみである場合(S201:外部コマンドのみ)、制御部12―2は次の処理を行う。制御部12―2は、その外部コマンドが、ストレージコントローラ40から送信された圧縮データのライトコマンド(「圧縮ライトコマンド」という)、又は、プロセッサモジュール30から送信された通常のリード/ライトコマンド(「通常コマンド」という)の何れであるかを判定する(S204)。 When the command being received is only an external command (S201: only external command), the control unit 12-2 performs the following processing. The control unit 12-2 uses a compressed data write command (referred to as “compressed write command”) transmitted from the storage controller 40 or a normal read / write command (“ It is determined whether it is a “normal command” (S204).
 その外部コマンドが通常コマンドの場合(S204:通常コマンド)、制御部12―2は、図3に示すS110以降の処理を行う。 When the external command is a normal command (S204: normal command), the control unit 12-2 performs the processing after S110 shown in FIG.
 その外部コマンドが圧縮ライトコマンドの場合(S204:圧縮ライトコマンド)、制御部12―2は、その圧縮ライトコマンドに対応する圧縮データを受領して圧縮バッファ部19に格納し(S206)、S201の処理に戻る。この圧縮バッファ部19に格納された圧縮データは、上記で説明したように、伸長部16によって伸長されて、メモリデバイス14へ書き込まれることとなる。 If the external command is a compressed write command (S204: compressed write command), the control unit 12-2 receives the compressed data corresponding to the compressed write command and stores it in the compression buffer unit 19 (S206). Return to processing. The compressed data stored in the compression buffer unit 19 is expanded by the expansion unit 16 and written to the memory device 14 as described above.
(第3の実施形態)
 図9は、第3の実施形態に係る計算機システム1―3の構成例を示すブロック図である。図10は、第3の実施形態の動作の一例を説明するための図である。なお、第3の実施形態におけるCPA6及びストレージ装置4は、第1の実施形態と同様の構成であるため、図面の記載を省略する。
(Third embodiment)
FIG. 9 is a block diagram illustrating a configuration example of a computer system 1-3 according to the third embodiment. FIG. 10 is a diagram for explaining an example of the operation of the third embodiment. Note that the CPA 6 and the storage device 4 in the third embodiment have the same configuration as in the first embodiment, and thus the description of the drawings is omitted.
 第3の実施形態に係るサーバ計算機2―3は、複数のメモリモジュール10-1a、10―1bを有する。第3の実施形態に係るメモリモジュール10-1a、10―1bは、第1の実施形態に係るメモリモジュール10―1と同様の構成であってよい。又は、第2の実施形態に係るメモリモジュール10―2と同様の構成であってもよい。 The server computer 2-3 according to the third embodiment includes a plurality of memory modules 10-1a and 10-1b. The memory modules 10-1a and 10-1b according to the third embodiment may have the same configuration as the memory module 10-1 according to the first embodiment. Alternatively, the configuration may be the same as that of the memory module 10-2 according to the second embodiment.
 プロセッサモジュール30は、第1DDR IF91を通じて、メモリモジュール10-1a、10―1bとデータの送受信が可能である。メモリモジュール10-1aの制御部12-1aは、第2DDR IF92cを通じてメモリデバイス14cとデータの送受信が可能であり、メモリモジュール10―1bの制御部12―1bは、第2DDR IF92dを通じてメモリデバイス14dとデータの送受信が可能である。つまり、第2DDR IF92cと92dとは独立している。 The processor module 30 can transmit and receive data to and from the memory modules 10-1a and 10-1b through the first DDR IF 91. The control unit 12-1a of the memory module 10-1a can transmit and receive data to and from the memory device 14c through the second DDR IF 92c, and the control unit 12-1b of the memory module 10-1b can communicate with the memory device 14d through the second DDR IF 92d. Data can be sent and received. That is, the second DDR IFs 92c and 92d are independent.
 本実施形態に係るサーバ計算機2-3は、例えば、以下のような動作が可能である(図10参照)。
(S61)プロセッサモジュール30のRC36は、ストレージ装置4から転送されてきた圧縮データ400aを、第1DDR IF91のデータ線91cを通じて、メモリモジュール10-1aに転送する。メモリモジュール10-1a内では、圧縮データ400aを伸長した伸長データ402aを、第2DDR IFのデータ線92cを通じて、メモリデバイス14cの格納領域へ格納する。
(S62)プロセッサモジュール30のRC36は、圧縮データ400aの転送完了後、ストレージ装置4から転送されてきた圧縮データ400bを、第1DDR IF91のデータ線91cを通じて、メモリモジュール10―1bに転送する。メモリモジュール10―1b内では、圧縮データ400bを伸長した伸長データ402bを、第2DDR IFのデータ線92dを通じて、メモリデバイス14dの格納領域へ格納する。
For example, the server computer 2-3 according to the present embodiment can operate as follows (see FIG. 10).
(S61) The RC 36 of the processor module 30 transfers the compressed data 400a transferred from the storage device 4 to the memory module 10-1a through the data line 91c of the first DDR IF 91. In the memory module 10-1a, the decompressed data 402a obtained by decompressing the compressed data 400a is stored in the storage area of the memory device 14c through the data line 92c of the second DDR IF.
(S62) After completing the transfer of the compressed data 400a, the RC 36 of the processor module 30 transfers the compressed data 400b transferred from the storage device 4 to the memory module 10-1b through the data line 91c of the first DDR IF 91. In the memory module 10-1b, the decompressed data 402b obtained by decompressing the compressed data 400b is stored in the storage area of the memory device 14d through the data line 92d of the second DDR IF.
 例えば、圧縮データ400a、400bの圧縮率がそれぞれ50%である場合、上記S62において圧縮データ400bを転送し終えたときには、メモリモジュール10-1aにおいて、先に転送した圧縮データ400aの伸長が完了している。よってプロセッサモジュール30は、S62の完了後すぐにメモリモジュール10-1aから、伸長データ404aをリードすることができる。そして、この伸長データ404aをリードしている間に、メモリモジュール10―1bに転送した圧縮データ400bの伸長も完了するので、プロセッサモジュール30は、伸長データ404aをリードした後すぐにメモリモジュール10―1bから、伸長データ404bをリードすることができる。 For example, when the compression rates of the compressed data 400a and 400b are 50%, when the compressed data 400b is transferred in S62, the memory module 10-1a completes the expansion of the previously transferred compressed data 400a. ing. Therefore, the processor module 30 can read the decompressed data 404a from the memory module 10-1a immediately after the completion of S62. Since the decompression of the compressed data 400b transferred to the memory module 10-1b is completed while the decompressed data 404a is being read, the processor module 30 immediately after reading the decompressed data 404a. The decompressed data 404b can be read from 1b.
 このように、圧縮データを複数のメモリモジュール10―1a、10―1bに分けて転送することにより、圧縮データを1つのメモリモジュール10に転送する場合と比べて、所定量の圧縮データを伸長してメモリデバイス14に格納するのに要する時間、及び、プロセッサモジュール30がメモリモジュール10から伸長データを取得するのに要する時間を短縮することができる。 In this way, by transferring the compressed data separately to the plurality of memory modules 10-1a, 10-1b, a predetermined amount of compressed data is expanded as compared with the case where the compressed data is transferred to one memory module 10. Thus, the time required for storing in the memory device 14 and the time required for the processor module 30 to acquire decompressed data from the memory module 10 can be reduced.
(第4の実施形態)
 図11は、第4の実施形態に係る計算機システム1―4の構成例を示すブロック図である。なお、第4の実施形態におけるCPA6及びストレージ装置4は、第1の実施形態と同様の構成であるため、図面の記載を省略する。
(Fourth embodiment)
FIG. 11 is a block diagram illustrating a configuration example of a computer system 1-4 according to the fourth embodiment. Note that the CPA 6 and the storage apparatus 4 in the fourth embodiment have the same configuration as that in the first embodiment, and thus the description of the drawings is omitted.
 第4の実施形態に係るサーバ計算機2―4では、第1乃至3の実施形態においてメモリモジュール10が有していた伸長部16を、プロセッサモジュール30-4が有する。すなわち、サーバ計算機2―4は、プロセッサモジュール30―4及び1以上のメモリデバイス14e、14fを有し、プロセッサモジュール30―4は、メモリコントローラ34と、CPUコア32と、RC36と、伸長部16とを有する。プロセッサモジュール30―4は、さらにキャッシュ部33を有してもよい。プロセッサモジュール30―4は、第2DDR IF92を通じて、1以上のメモリデバイス14e、14fとデータの送受信が可能である。 In the server computer 2-4 according to the fourth embodiment, the processor module 30-4 includes the decompression unit 16 included in the memory module 10 in the first to third embodiments. That is, the server computer 2-4 includes a processor module 30-4 and one or more memory devices 14e and 14f. The processor module 30-4 includes the memory controller 34, the CPU core 32, the RC 36, and the decompression unit 16. And have. The processor module 30-4 may further include a cache unit 33. The processor module 30-4 can transmit / receive data to / from one or more memory devices 14e and 14f through the second DDR IF 92.
 本実施形態に係るサーバ計算機2―4は、例えば、以下のように動作する。
(S81)プロセッサモジュール30―4のRC36は、ストレージ装置4からDMA転送されてきた圧縮データを、伸長部16へ渡す。
(S82)伸長部16は、その圧縮データから伸長データ210を生成し、その伸長データ210を、第2DDR IF92を通じて、例えばメモリデバイス14eの格納領域に格納する。なお、プロセッサモジュール30―4がキャッシュ部33を有する場合、伸長データ210はいったんキャッシュ部33に書き込まれてから、メモリデバイス14eの格納領域に格納されてもよい。
The server computer 2-4 according to the present embodiment operates as follows, for example.
(S81) The RC 36 of the processor module 30-4 passes the compressed data DMA-transferred from the storage device 4 to the decompression unit 16.
(S82) The decompression unit 16 generates decompressed data 210 from the compressed data, and stores the decompressed data 210, for example, in the storage area of the memory device 14e through the second DDR IF 92. When the processor module 30-4 includes the cache unit 33, the decompressed data 210 may be once written in the cache unit 33 and then stored in the storage area of the memory device 14e.
 第4の実施形態の場合、RC36が、受信した圧縮データをバッファリングするので、第2の実施形態のようにメモリモジュール10―2内に圧縮バッファ部19を設ける必要が無い。 In the case of the fourth embodiment, since the RC 36 buffers the received compressed data, it is not necessary to provide the compression buffer unit 19 in the memory module 10-2 as in the second embodiment.
 また、プロセッサモジュール30―4で圧縮データを伸長することにより、この複数のメモリデバイス14e、14fに対して、メモリインターリーブによって伸長データを分散して書き込むことができる。すなわち、伸長データのメモリデバイス14に対するI/Oを高速化することができる。 Further, by decompressing the compressed data by the processor module 30-4, the decompressed data can be distributed and written to the plurality of memory devices 14e and 14f by memory interleaving. That is, the I / O of decompressed data to the memory device 14 can be speeded up.
 以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。 Although several embodiments have been described above, these are examples for explaining the present invention, and the scope of the present invention is not intended to be limited only to these embodiments. The present invention can be implemented in various other forms.
 1:計算機システム 2:サーバ計算機 6:CPA 4:ストレージ装置 10:メモリモジュール 30:プロセッサモジュール 40:ストレージコントローラ 42:ストレージドライブ
 

 
1: Computer system 2: Server computer 6: CPA 4: Storage device 10: Memory module 30: Processor module 40: Storage controller 42: Storage drive

Claims (13)

  1.  アクセス対象データの圧縮データを格納するストレージ装置と、少なくとも一部がPCI-Expressに準拠する経路で前記ストレージ装置と接続されているサーバ計算機と、を有し、
     前記サーバ計算機は、プログラムを実行可能なプロセッサモジュールと、データを格納可能なメモリモジュールと、圧縮データを伸長可能な伸長部とを含み、前記プロセッサモジュールと前記メモリモジュールとは第1メモリバスを通じて接続されており、
     前記ストレージ装置は、前記プロセッサモジュールにおけるプログラムの実行をきっかけとして生成されたリクエストであってアクセス対象データを指定したリードリクエストを受信し、当該アクセス対象データの圧縮データを、前記PCI-Express準拠の経路を通じて、前記プログラムが指定した領域であるプログラム指定領域へDMA(Direct Memory Access)転送し、
     前記伸長部は、前記DMA転送された圧縮データから伸長データを生成し、その生成した伸長データを前記プログラム指定領域に格納する
    計算機システム。
    A storage device that stores compressed data of access target data, and a server computer that is at least partially connected to the storage device via a path that conforms to PCI-Express,
    The server computer includes a processor module capable of executing a program, a memory module capable of storing data, and a decompression unit capable of decompressing compressed data, and the processor module and the memory module are connected through a first memory bus. Has been
    The storage device receives a read request specifying access target data that is a request generated by execution of a program in the processor module, and sends compressed data of the access target data to the PCI-Express compliant path Through the DMA (Direct Memory Access) to the program designated area that is designated by the program,
    The decompression unit generates decompression data from the DMA-transferred compressed data, and stores the created decompression data in the program designated area.
  2.  前記ストレージ装置は、前記圧縮データをDMA転送する場合、前記メモリモジュールに対して、前記圧縮データを転送する前に前記圧縮データに関する情報を通知する
    請求項1に記載の計算機システム。
    2. The computer system according to claim 1, wherein when the compressed data is DMA-transferred, the storage apparatus notifies the memory module of information related to the compressed data before transferring the compressed data.
  3.  前記プログラム指定領域は、前記メモリモジュール内の指定された領域であり、
     前記圧縮データは、前記第1メモリバスを通じて前記メモリモジュールへ転送される
    請求項2に記載の計算機システム。
    The program specified area is a specified area in the memory module,
    The computer system according to claim 2, wherein the compressed data is transferred to the memory module through the first memory bus.
  4.  前記伸長部は、前記メモリモジュール内に含まれ、
     前記圧縮データは、圧縮された状態で前記メモリモジュール内の前記プログラム指定領域に格納され、
     前記伸長部は、前記プログラム指定領域に格納された圧縮データから伸長データを生成する
    請求項3に記載の計算機システム。
    The decompression unit is included in the memory module,
    The compressed data is stored in the program designated area in the memory module in a compressed state,
    The computer system according to claim 3, wherein the decompressing unit generates decompressed data from the compressed data stored in the program designated area.
  5.  前記圧縮データは、前記メモリモジュール内の前記プログラム指定領域に後ろ詰めに格納される
    請求項4に記載の計算機システム。
    The computer system according to claim 4, wherein the compressed data is stored in the program designation area in the memory module in a trailing manner.
  6.  前記メモリモジュールは、前記伸長部が生成した伸長データを一時的に格納するための伸長バッファ部をさらに含み、
     前記圧縮データは、伸長後の伸長データが所定のサイズ以下となるように圧縮されており、
     前記伸長部は、前記メモリモジュール内の前記プログラム指定領域に格納された圧縮データから伸長データを生成し、その生成した伸長データを前記伸長バッファ部に格納し、
     前記伸長バッファ部に格納された伸長データは、前記メモリモジュール内の前記プログラム指定領域に前詰めに格納される
    請求項5に記載の計算機システム。
    The memory module further includes a decompression buffer unit for temporarily storing decompressed data generated by the decompression unit,
    The compressed data is compressed so that the decompressed data after decompression has a predetermined size or less,
    The decompression unit generates decompressed data from the compressed data stored in the program designated area in the memory module, stores the generated decompressed data in the decompression buffer unit,
    6. The computer system according to claim 5, wherein the decompressed data stored in the decompression buffer unit is stored in the program designation area in the memory module in a front-justified manner.
  7.  前記プロセッサモジュールで実行されるプログラムが、前記メモリモジュールに転送された全ての圧縮データの伸長処理が完了したか否かを監視する
    請求項6に記載の計算機システム。
    The computer system according to claim 6, wherein a program executed by the processor module monitors whether or not decompression processing of all compressed data transferred to the memory module is completed.
  8.  前記伸長部は、前記メモリモジュール内に含まれ、
     前記プログラム指定領域は、前記メモリモジュールに含まれるメモリデバイス内の指定された領域であり、
     前記メモリモジュールは、前記伸長部と、前記メモリデバイスと、前記伸長部が生成した伸張データを一時的に格納するための伸長バッファ部とを制御する制御部、をさらに有し、
     前記制御部と前記メモリデバイスとは第2メモリバスを通じて接続されており、前記第1メモリバス及び前記第2メモリバスはDDR(Double-Data-Rate)に準拠し、
     前記制御部は、
      前記伸長部又は前記伸長バッファ部から内部のコマンドを受領したとき、前記第1メモリバスを通じて受領した外部のコマンドが前記第2メモリバスへの送出待ちであるならば、前記内部のコマンドの前記第2メモリバスへの送出を前記外部のコマンドを送出した後以降に遅延させる必要があるか否かを判定する
    請求項2に記載の計算機システム。
    The decompression unit is included in the memory module,
    The program designated area is a designated area in a memory device included in the memory module,
    The memory module further includes a control unit that controls the decompression unit, the memory device, and an decompression buffer unit for temporarily storing decompressed data generated by the decompression unit,
    The control unit and the memory device are connected through a second memory bus, the first memory bus and the second memory bus comply with DDR (Double-Data-Rate),
    The controller is
    If an external command received through the first memory bus is waiting to be sent to the second memory bus when an internal command is received from the decompression unit or the decompression buffer unit, the first command of the internal command is sent. 3. The computer system according to claim 2, wherein it is determined whether or not it is necessary to delay sending to the memory bus after sending the external command.
  9.  前記制御部は、前記内部のコマンドを前記第2メモリバスへ送出した場合に、前記外部のコマンドがDDRに準拠する処理を実現できない場合、当該内部コマンドの前記第2メモリバイスへの送出を遅延させる必要があると判定する
    請求項8に記載の計算機システム。
    When the internal command is sent to the second memory bus, the control unit delays sending the internal command to the second memory device if the external command cannot realize processing conforming to DDR. The computer system according to claim 8, wherein it is determined that it is necessary to perform the operation.
  10.  前記伸長部は、前記プロセッサモジュール内に含まれ、
     前記サーバ計算機は複数のメモリデバイスを含み、
     前記伸長部が前記圧縮データから生成した伸長データは、前記複数のメモリデバイスに対して、メモリインターリーブによって分散して書き込まれる
    請求項2に記載の計算機システム。
    The decompression unit is included in the processor module,
    The server computer includes a plurality of memory devices,
    The computer system according to claim 2, wherein the decompressed data generated by the decompressing unit from the compressed data is distributed and written to the plurality of memory devices by memory interleaving.
  11.  圧縮データを伸長可能な伸長部と、
     データの格納領域を有するメモリデバイスと、
     前記伸長部及び前記メモリデバイスを制御する制御部と、を含み、
     前記制御部は、プログラムを実行可能なプロセッサモジュールに第1メモリバスを通じて接続されており、前記メモリデバイスに第2メモリバスを通じて接続されており、
     前記制御部は、
      前記圧縮データが転送される前に通知される前記圧縮データに関する情報に基づいて、前記圧縮データを伸長した伸長データを格納するための格納領域を前記メモリデバイスに確保し、
      前記伸長部に、前記第1メモリバスを通じてDMA転送された圧縮データから伸長データを生成させ、
      前記伸長データを、前記第2メモリバスを通じて、前記メモリデバイスに確保した格納領域に格納する
    メモリモジュール。
    A decompression unit capable of decompressing the compressed data;
    A memory device having a data storage area;
    A control unit for controlling the decompression unit and the memory device,
    The control unit is connected to a processor module capable of executing a program through a first memory bus, and connected to the memory device through a second memory bus,
    The controller is
    Based on the information about the compressed data notified before the compressed data is transferred, a storage area for storing the decompressed data obtained by decompressing the compressed data is secured in the memory device,
    Causing the decompression unit to generate decompressed data from the compressed data DMA-transferred through the first memory bus;
    A memory module for storing the decompressed data in a storage area secured in the memory device through the second memory bus.
  12.  前記圧縮データは、伸長後の伸長データが所定のサイズ以下となるように圧縮されており、
     前記制御部は、
      前記圧縮データを、圧縮された状態で、前記メモリデバイスに確保した格納領域に後ろ詰めに格納し、
      前記格納領域に格納した圧縮データを、前記第2メモリバスを通じて取得し、前記伸長部に伸長データを生成させ、
      その生成させた伸長データを、前記第2メモリバスを通じて、前記メモリデバイスに確保した格納領域に前詰めに格納する
    請求項11に記載のメモリモジュール。
    The compressed data is compressed so that the decompressed data after decompression has a predetermined size or less,
    The controller is
    Storing the compressed data in a compressed state in a storage area secured in the memory device,
    The compressed data stored in the storage area is acquired through the second memory bus, the decompression unit generates decompressed data,
    The memory module according to claim 11, wherein the generated decompressed data is stored in the storage area secured in the memory device through the second memory bus in a right-justified manner.
  13.  前記第1メモリバス及び前記第2メモリバスはDDRに準拠し、
     前記制御部は、
      前記伸長部から内部のコマンドを受領したとき、前記第1メモリバスを通じて受領した外部のコマンドが前記第2メモリバスへの送出待ちであるならば、前記内部のコマンドの第2メモリバスへの送出を前記外部のコマンドを送出した後以降に遅延させる必要があるか否かを判定する
    請求項11に記載のメモリモジュール。
     

     
    The first memory bus and the second memory bus comply with DDR,
    The controller is
    When an internal command is received from the decompression unit, if an external command received through the first memory bus is waiting to be sent to the second memory bus, the internal command is sent to the second memory bus. The memory module according to claim 11, wherein it is determined whether or not it is necessary to delay after the external command is transmitted.


PCT/JP2015/062491 2015-04-24 2015-04-24 Computer system and memory module WO2016170673A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062491 WO2016170673A1 (en) 2015-04-24 2015-04-24 Computer system and memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062491 WO2016170673A1 (en) 2015-04-24 2015-04-24 Computer system and memory module

Publications (1)

Publication Number Publication Date
WO2016170673A1 true WO2016170673A1 (en) 2016-10-27

Family

ID=57143023

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/062491 WO2016170673A1 (en) 2015-04-24 2015-04-24 Computer system and memory module

Country Status (1)

Country Link
WO (1) WO2016170673A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919456A (en) * 2017-03-01 2017-07-04 郑州云海信息技术有限公司 A kind of module for realizing server series connection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63116569A (en) * 1986-11-04 1988-05-20 Canon Inc Image processing system
JPH04322384A (en) * 1991-04-22 1992-11-12 Fuji Photo Film Co Ltd Method and device for storing picture data
JP2012098838A (en) * 2010-10-29 2012-05-24 Toshiba Corp Data transmission system and data transmission program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63116569A (en) * 1986-11-04 1988-05-20 Canon Inc Image processing system
JPH04322384A (en) * 1991-04-22 1992-11-12 Fuji Photo Film Co Ltd Method and device for storing picture data
JP2012098838A (en) * 2010-10-29 2012-05-24 Toshiba Corp Data transmission system and data transmission program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919456A (en) * 2017-03-01 2017-07-04 郑州云海信息技术有限公司 A kind of module for realizing server series connection

Similar Documents

Publication Publication Date Title
CN108363670B (en) Data transmission method, device, equipment and system
US8156252B2 (en) Apparatus and method for block-based data striping to solid-state memory modules with optional data format protocol translation
US10445018B2 (en) Switch and memory device
EP3616073A1 (en) Apparatus and method for controlling data acceleration
US10209922B2 (en) Communication via a memory interface
US7340551B2 (en) Bridge permitting access by multiple hosts to a single ported storage drive
US20110296129A1 (en) Data transfer device and method of controlling the same
EP1389760A2 (en) Data transfer control system, program and data transfer control method
US8924606B2 (en) Storage system and data transfer control method
US10331359B2 (en) Memory subsystem with wrapped-to-continuous read
US10860507B2 (en) Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
US10831684B1 (en) Kernal driver extension system and method
US7409486B2 (en) Storage system, and storage control method
WO2016170673A1 (en) Computer system and memory module
US10733127B2 (en) Data transmission apparatus and data transmission method
JP2020184224A (en) Information processing system, platform, and bridge driver
US9990284B2 (en) Storage control device
JP4936088B2 (en) Disk array device, disk array system, and cache control method
JP2014167818A (en) Data transfer device and data transfer method
US20050027906A1 (en) System and method for adaptive buffer allocation in a memory device interface
RU2475817C1 (en) Apparatus for buffering data streams read from ram
JP2016528634A (en) Method and controller for implementing a hardware automatic device operation initiator
CN110489359B (en) Data transmission control method and system
KR102536943B1 (en) Data Reduction Device, Data Reduction Method And System Including Data Reduction Device
US10452579B2 (en) Managing input/output core processing via two different bus protocols using remote direct memory access (RDMA) off-loading processing system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15889912

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP