WO2023162465A1 - ライトバッファ制御回路 - Google Patents

ライトバッファ制御回路 Download PDF

Info

Publication number
WO2023162465A1
WO2023162465A1 PCT/JP2022/048372 JP2022048372W WO2023162465A1 WO 2023162465 A1 WO2023162465 A1 WO 2023162465A1 JP 2022048372 W JP2022048372 W JP 2022048372W WO 2023162465 A1 WO2023162465 A1 WO 2023162465A1
Authority
WO
WIPO (PCT)
Prior art keywords
write
memory
parallel execution
upper limit
latency
Prior art date
Application number
PCT/JP2022/048372
Other languages
English (en)
French (fr)
Inventor
健一 中西
学 大西
直子 毛利
芳弘 小林
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023162465A1 publication Critical patent/WO2023162465A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Definitions

  • This technology relates to a write buffer control circuit. More particularly, it relates to a write buffer control circuit that controls write back operations from a write buffer to a memory.
  • cache memory In memory systems, cache memory is generally used to speed up access to memory. A partial copy of the memory is stored in the cache memory and write-back operations are performed to the memory via the write buffer. This write-back operation is known to affect the performance of the entire memory system. Therefore, for example, a device has been proposed that records the number of pages being updated and dynamically sets the access interval according to the number (see, for example, Patent Document 1).
  • This technology was created in view of this situation, and aims to suppress the decrease in read bandwidth and the increase in read latency in memories where the write latency is greater than the read latency.
  • a first aspect of the present technology is to provide a first a write-back control unit for generating write-back control information regarding write-back from the second memory to the first memory; and a write-back control unit for holding write-back data from the second memory to the first memory and and a write buffer for executing a write-back operation of the write-back data to the first memory based on back control information. This brings about the effect of controlling the write-back operation from the second memory to the first memory based on the memory operation state information.
  • the write-back control unit may generate a parallel execution upper limit value of the write-back operation as the write-back control information. This brings about the effect of controlling the write-back operation using the parallel execution upper limit value of the write-back operation.
  • the write buffer may control the operation interval in the write-back operation based on the write-back control information.
  • the memory operation state information may include the number of parallel executions in read operations from the first memory.
  • the write-back control unit holds the correspondence relationship between the number of parallel executions in the read operation from the first memory and the parallel execution upper limit value of the write-back operation, and is included in the memory operation state information.
  • the parallel execution upper limit value of the write-back operation may be generated based on the number of parallel executions in the read operation from the first memory.
  • the memory operation state information may include information on latency of write-back to the first memory.
  • the information on the latency of write-back to the first memory includes whether or not the verify operation is re-executed in the first memory, whether or not the read-modify-write operation is performed in the first memory, and whether the read-modify-write operation is performed in the first memory. It may include at least one of the presence or absence of garbage collection operations.
  • the write-back control unit stores the correspondence relationship between the number of parallel executions in read operations from the first memory and the parallel execution upper limit value of the write-back operations in the first memory. holding a plurality of information according to the latency of write back to the first memory, selecting one of the correspondences based on the information on the latency of write back to the first memory included in the memory operation state information, The parallel execution upper limit value of the write-back operation may be generated based on the number of parallel executions of the read operation from the first memory included in the memory operation state information in the selected correspondence relationship.
  • the write buffer sets an operation interval in the write-back operation to a fixed value when the number of write-back data held exceeds a predetermined threshold value. good too. This has the effect of resolving the congestion state of the write buffer.
  • FIG. 4 is a diagram showing an example of the relationship between bandwidth and latency for memory access; It is a figure which shows the example of the calculation reference
  • FIG. 6 is a flow chart showing an example of a processing procedure of write-back control part 330 in a 1st embodiment of this art.
  • 6 is a flow chart showing a processing procedure example of a write buffer 320 according to the first embodiment of the present technology; It is a figure which shows the structural example of the write-back control part 330 in 2nd Embodiment of this technique. It is a figure which shows the relationship example of the flag information and write-back parallel execution upper limit calculation reference
  • FIG. 13 is a diagram illustrating an operation mode example of a write buffer 320 according to a third embodiment of the present technology
  • FIG. 11 is a flow chart showing an example of a processing procedure of a write buffer 320 according to a third embodiment of the present technology
  • FIG. 11 is a flow chart showing an example of a processing procedure of a write buffer 320 according to a third embodiment of the present technology
  • First embodiment (example of setting the write-back parallel execution upper limit based on the host read parallel execution number) 2.
  • Second Embodiment (Example of Setting Write-back Parallel Execution Upper Limit in Consideration of Information on Write-back Latency) 3.
  • Third Embodiment (Example of setting the write-back request issuance interval in consideration of the write buffer wait count)
  • FIG. 1 is a diagram showing an overall configuration example of a computer system according to an embodiment of the present technology.
  • This computer system comprises a host computer 100 , a host instruction queue 190 , a cache memory 200 , a cache memory control section 300 , a memory control section 400 and a memory 500 .
  • the host computer 100 is an information processing device that accesses instructions and data stored in the memory 500 and performs information processing.
  • the host instruction queue 190 is a queue that holds instructions issued from the host computer 100 .
  • commands issued from the host computer 100 to the memory 500 for example, a load command for reading data from the memory 500 and a store command for writing data to the memory 500 are assumed.
  • the cache memory 200 is a storage device that is placed between the host computer 100 and the memory 500 and holds part of the memory contents of the memory 500 .
  • the cache memory control unit 300 is a device that controls access to the cache memory 200.
  • This cache memory control unit 300 comprises a memory request queue 310 , a write buffer 320 and a write back control unit 330 .
  • the cache memory control unit 300 is an example of the write buffer control circuit described in the claims.
  • the memory request queue 310 is a queue that holds access requests to the memory 500 .
  • Access requests held in the memory request queue 310 are, for example, host read requests for requesting reading from the memory 500 and write-back requests for requesting write-back from the memory 500 .
  • the write buffer 320 is a buffer that holds write-back data to be written back from the cache memory 200 to the memory 500 .
  • the write buffer 320 performs a write-back operation of write-back data to the memory 500 based on the write-back control information.
  • the write-back control unit 330 controls the write-back operation from the write buffer 320 to the memory 500 based on memory operation state information regarding the operation state of the memory 500 .
  • the memory control unit 400 controls access to the memory 500.
  • Memory 500 is a storage device that stores instructions and data accessed by host computer 100 .
  • This memory 500 can be realized by, for example, a non-volatile memory including resistance change memory such as PCM (Phase Change Memory) and flash memory. It is assumed that this memory 500 has a write latency greater than a read latency.
  • PCM Phase Change Memory
  • the memory 500 comprises a plurality of memory devices 510 operating in parallel.
  • a plurality of memory devices 510 in this memory 500 may be in a bank configuration or a die configuration.
  • a 4-bank configuration or a 4-die configuration may be used.
  • a two-die configuration may be employed, each of which is composed of two banks.
  • the memory 500 is an example of the first memory described in the claims.
  • the cache memory 200 is an example of the second memory described in the claims.
  • a load instruction from the host computer 100 reads data onto the cache memory 200 and a store instruction writes data onto the cache memory 200 .
  • a memory read is generated by a host read request at the time of a cache miss of a load instruction.
  • a memory write is generated by a write-back request for dirty data that has been evicted from cache memory 200 to write buffer 320 .
  • the cache memory control unit 300 is provided with a function of controlling the write-back band, thereby suppressing the decrease in host read band and the increase in latency.
  • the write-back control unit 330 by setting the upper limit of the number of write-back parallel executions according to the number of host read parallel executions, when the load of host read requests increases, the number of write-back parallel executions is reduced. Suppress and maintain host read bandwidth.
  • FIG. 2 is a diagram illustrating a configuration example of the write-back control unit 330 according to the first embodiment of the present technology.
  • the write-back control unit 330 in the first embodiment includes a host read parallel execution number acquisition unit 331, a write-back parallel execution upper limit calculation reference holding unit 334, and a write-back parallel execution upper limit calculation unit 335. .
  • the host read parallel execution number acquisition unit 331 acquires the host read parallel execution number during execution measured in the memory control unit 400 from the memory control unit 400 as memory operation state information.
  • the write-back parallel execution upper limit calculation reference holding unit 334 holds the reference for calculating the write-back parallel execution upper limit value.
  • the reference held in the write-back parallel execution upper limit calculation reference holding unit 334 indicates the write-back parallel execution upper limit value corresponding to the number of host read parallel executions. For example, the correspondence is held in a table format. or a function with the host read parallel execution number as an argument.
  • the write-back parallel execution upper limit value calculation unit 335 performs write operations based on the number of host read parallel executions acquired by the host read parallel execution number acquisition unit 331 according to the criteria held in the write-back parallel execution upper limit calculation standard holding unit 334. It calculates the back parallel execution upper limit value.
  • the write-back parallel execution upper limit value calculated by the write-back parallel execution upper limit value calculator 335 is supplied to the write buffer 320 .
  • FIG. 3 is a diagram showing a configuration example of the write buffer 320 according to the first embodiment of the present technology.
  • the write buffer 320 in the first embodiment includes a data buffer 321, a write-back request issuing unit 322, a write-back latency acquiring unit 323, a write-back parallel execution upper limit value acquiring unit 324, and a write-back request issuing interval and a calculator 325 .
  • the data buffer 321 is a buffer that holds write-back data to be written back from the cache memory 200 to the memory 500 .
  • the write-back request issuing unit 322 issues a write-back request to write back the write-back data held in the data buffer 321 to the memory 500 .
  • the write-back latency acquisition unit 323 acquires the write-back latency in the write-back request issued by the write-back request issuing unit 322. That is, this write-back latency is obtained as the latency required for the previous write-back.
  • the write-back parallel execution upper limit acquisition unit 324 acquires the write-back parallel execution upper limit value supplied from the write-back control unit 330 . That is, the write-back parallel execution upper limit value is calculated according to the host read parallel execution number.
  • the write-back request issuance interval calculation unit 325 performs write-back based on the write-back parallel execution upper limit value acquired by the write-back parallel execution upper-limit value acquisition unit 324 and the write-back latency acquired by the write-back latency acquisition unit 323. It calculates the request issuing interval.
  • the write-back request issuing unit 322 issues a write-back request according to the write-back request issuing interval calculated by the write-back request issuing interval calculating unit 325 .
  • FIG. 4 is a diagram showing an example of the relationship between bandwidth and latency for memory access.
  • bandwidth and latency In general, when the bandwidth between memory increases and the load that can be processed is exceeded, commands that cannot be processed are stagnant in the queue, resulting in a rapid increase in latency. Therefore, the relationship between bandwidth and latency is shown as in the figure.
  • FIG. 5 is a diagram illustrating an example of calculation criteria for write-back parallel execution upper limit values in the embodiment of the present technology.
  • the write-back parallel execution upper limit can be calculated according to the following two criteria using a previously measured bandwidth-latency relationship graph.
  • the first criterion is based on latency, as indicated by a in the figure.
  • the intersection of the specified latency and the relationship graph is selected as the upper limit.
  • the combination of the host read parallel number and the write back parallel number in the selected state is adopted as the upper limit.
  • the second criterion is based on the band, as shown in b in the figure.
  • the intersection of the specified band and the relationship graph is selected as the upper limit.
  • the combination of the host read parallel number and the write back parallel number in the selected state is adopted as the upper limit.
  • the write-back control unit 330 determines the write-back parallel execution upper limit from the measured number of parallel host read executions using the relationship graph for the assumed read/write ratio.
  • FIG. 6 is a diagram showing an example of calculation of a latency-based write-back parallel execution upper limit value in the embodiment of the present technology.
  • the host read parallel number and write back parallel number at the time of achievement near the intersection with the relationship graph are adopted as representative points, and the upper limit of the write back parallel execution number is set. It is tabulated.
  • the host read parallel number is "20" and the write back parallel number is "12" at the specified latency. This is set as a representative point Aa.
  • the correspondence relationship between the host read parallel execution number and the write-back parallel execution upper limit set in this manner is used as a reference for calculating the write-back parallel execution upper limit value by the write-back parallel execution upper limit calculation reference holding unit 334. is held to Then, the write-back parallel execution upper limit calculation unit 335 calculates the write-back parallel execution upper limit according to this held correspondence relationship.
  • FIG. 7 is a diagram showing an example of band-based write-back parallel execution upper limit calculation in the embodiment of the present technology.
  • the figure Based on the bandwidth specified on the relationship graph, the figure uses the host read parallel number and write back parallel number at the time of achievement near the intersection with the relationship graph as representative points, and the upper limit of the write back parallel execution number is set. It is tabulated.
  • the host read parallel number is "20" and the write back parallel number is "12" in the specified bandwidth. This is set as a representative point Ba.
  • the correspondence relationship between the host read parallel execution number and the write-back parallel execution upper limit set in this manner is used as a reference for calculating the write-back parallel execution upper limit value by the write-back parallel execution upper limit calculation reference holding unit 334. is held to Then, the write-back parallel execution upper limit calculation unit 335 calculates the write-back parallel execution upper limit according to this held correspondence relationship.
  • FIG. 8 is a flow chart showing a processing procedure example of the write-back control unit 330 according to the first embodiment of the present technology.
  • the host read parallel execution number acquisition section 331 of the write-back control section 330 acquires the host read parallel execution number during execution from the memory control section 400 as memory operation state information (step S911).
  • the write-back parallel execution upper limit calculation unit 335 of the write-back control unit 330 stores data in the write-back parallel execution upper limit calculation reference holding unit 334 based on the host read parallel execution number acquired by the host read parallel execution number acquisition unit 331.
  • a write-back parallel execution upper limit value is calculated based on the held reference (step S914).
  • FIG. 9 is a flowchart showing a processing procedure example of the write buffer 320 according to the first embodiment of the present technology.
  • the write buffer 320 waits until the data to be written back is held in the data buffer 321 (step S921: Yes). Issue (step S922). Then, the write-back latency acquiring unit 323 acquires the latency until the write-back operation ends (step S925).
  • the write-back parallel execution upper limit acquisition unit 324 of the write buffer 320 acquires the write-back parallel execution upper limit value supplied from the write-back control unit 330 (step S926).
  • the write-back request issuance interval calculation unit 325 of the write buffer 320 calculates the write-back parallel execution upper limit value acquired by the write-back parallel execution upper-limit value acquisition unit 324 and the write-back parallel execution upper limit value acquired by the write-back latency acquisition unit 323.
  • a write-back request issuance interval is calculated based on the latency (step S927).
  • step S928 it waits as necessary so as to satisfy the calculated write-back request issuing interval (step S928), and if the data buffer 321 is not empty (step S921: No), the write-back request issuing unit 322 A write-back request is issued again (step S922).
  • write-back parallel execution corresponding to the measured host read parallel execution number is performed in accordance with the predetermined correspondence relationship between the host read parallel execution number and the write-back parallel execution upper limit value.
  • the execution upper limit is obtained to control write back from the write buffer 320 .
  • the write-back parallel execution upper limit value is set from the host read parallel execution number during execution.
  • memory operation state information includes information on write-back latency, and a calculation criterion for the write-back parallel execution upper limit value is selected according to the information on write-back latency. Since the overall configuration of the computer system assumed in the second embodiment is the same as that in the first embodiment, detailed description thereof will be omitted.
  • FIG. 10 is a diagram illustrating a configuration example of the write-back control unit 330 according to the second embodiment of the present technology.
  • the write-back control unit 330 in the second embodiment includes a flag information acquisition unit 332 and a write-back parallel execution upper limit calculation reference selection unit. 333.
  • the flag information acquisition unit 332 acquires flag information from the memory control unit 400 in addition to the number of host read parallel executions as memory operation state information.
  • This flag information is information about write-back latency. A specific example of this flag information will be described later.
  • the write-back parallel execution upper limit calculation criterion selection unit 333 selects a criterion for calculating the write-back parallel execution upper limit value based on the flag information acquired by the flag information acquisition unit 332 .
  • the write-back parallel execution upper limit calculation reference holding unit 334 holds a plurality of references for calculating the write-back parallel execution upper limit value according to the flag information. Therefore, the write-back parallel execution upper limit value calculation reference selection unit 333 selects a corresponding calculation reference according to the flag information, and supplies the write-back parallel execution upper limit value calculation unit 335 with the corresponding calculation reference.
  • FIG. 11 is a diagram illustrating an example of the relationship between flag information and write-back parallel execution upper limit calculation criteria according to the second embodiment of the present technology.
  • “Verify re-execution” indicates the extension of memory write busy time due to verification.
  • the time required for a memory to complete after it becomes write busy may exhibit characteristics that change depending on factors such as aging.
  • the number of parallel executions changes depending on the write-busy time, so a different calculation formula is required for the write-back parallel execution upper limit value.
  • two types of write busy times occur, a normal state and a long state.
  • the write busy time is determined by the deterioration state of the memory cell to be written, and the write busy time is determined by the number of verify loops in the internal operation of the memory. If there is "re-execute verification", the write-back latency becomes longer due to the longer write-busy time of the memory.
  • Read-modify-write indicates the occurrence of a read-modify-write that is performed when the write data is smaller than the memory read unit.
  • the data read from the memory 500 is merged with the dirty data to be written back. Therefore, processing to write back to memory write back is required. This is called read-modify-write.
  • write-back control unit 330 determines a criterion for calculating the write-back parallel execution upper limit based on the flag information "read-modify-write" for indicating which write-back process has occurred. If there is a "read-modify-write", the write-back latency is also longer due to the read occurring before the memory write.
  • Garbage collection indicates the occurrence of garbage collection that frees up areas in the memory 500 that are no longer needed.
  • garbage collection occurs in the memory 500, the access to the memory 500 is temporarily delayed and the latency changes. If there is “garbage collection”, the writeback latency will also be longer due to the delay caused by the background processing.
  • восем ⁇ write-back parallel execution upper limit value calculation standards are prepared in the write-back parallel execution upper limit value calculation reference holding unit 334 corresponding to the presence or absence of these three factors. Then, based on the flag information acquired by the flag information acquisition unit 332, the write-back parallel execution upper limit value calculation reference selection unit 333 selects one write-back parallel execution upper limit value calculation reference. As a result, the write-back parallel execution upper limit calculation unit 335 calculates the write-back parallel execution upper limit based on the selected write-back parallel execution upper limit calculation reference.
  • FIG. 12 is a flow chart showing a processing procedure example of the write-back control unit 330 according to the second embodiment of the present technology.
  • the host read parallel execution number acquisition section 331 of the write-back control section 330 acquires the host read parallel execution number during execution from the memory control section 400 as memory operation state information (step S911).
  • the flag information acquisition unit 332 of the write-back control unit 330 acquires flag information as memory operation state information from the memory control unit 400 (step S912). Then, the write-back parallel execution upper limit calculation criterion selection unit 333 of the write-back control unit 330 selects a criterion for calculating the write-back parallel execution upper limit based on the flag information acquired by the flag information acquisition unit 332. (step S913).
  • the write-back parallel execution upper limit value calculation unit 335 of the write-back control unit 330 selects the write-back parallel execution upper limit value calculation reference selection unit 333 based on the host read parallel execution number acquired by the host read parallel execution number acquisition unit 331.
  • a write-back parallel execution upper limit value is calculated according to the selected write-back parallel execution upper limit calculation standard (step S914).
  • the write-back parallel execution upper limit value is obtained in consideration of information on write-back latency (verify re-execution, read-modify-write, garbage collection). This makes it possible to control write-back from the write buffer 320 in consideration of the operating state of the memory 500 .
  • FIG. 13 is a diagram showing a configuration example of the write buffer 320 according to the third embodiment of the present technology.
  • the write buffer 320 in the third embodiment includes a signal line 326 from the data buffer 321 to the write-back request issuance interval calculator 325 in addition to the write buffer 320 in the first embodiment.
  • This signal line 326 supplies the number of data held in the data buffer 321 to the write-back request issuance interval calculator 325 .
  • the write-back request issuance interval calculation unit 325 determines that the load state is normal, and performs control according to the write-back parallel execution upper limit value. On the other hand, when the number of data held in the data buffer 321 exceeds the threshold, it is determined that the load state is overloaded, and the write-back request issuance interval is set to the minimum value. As a result, the write-back processing is accelerated and the congestion state of the write buffer 320 is resolved.
  • the configuration of the write-back control unit 330 can be applied to both the first and second embodiments described above. That is, for the calculation of the write-back parallel execution upper limit value, only one calculation criterion may be used as in the first embodiment, or a plurality of calculation criteria may be selected as in the second embodiment. You may do so.
  • FIG. 14 is a diagram illustrating an operation mode example of the write buffer 320 according to the third embodiment of the present technology.
  • the write buffer 320 When the computer system is reset, it is initially in reset state 10 and then transitions to normal load state 20.
  • the write buffer 320 operates in a mode giving priority to the host read bandwidth, as described in the first and second embodiments. That is, by setting an upper limit on the number of write-back parallel executions relative to the number of host read parallel executions, and by operating the write buffer 320 according to this upper limit, the host read bandwidth is preferentially ensured and the reduction of the bandwidth is suppressed. Furthermore, by decreasing the write-back parallel execution upper limit as the host read parallel execution number increases, an increase in waiting time on the memory request queue 310 is suppressed.
  • the state transitions to the overload state 30 .
  • this excessive load state 30 by operating in a mode that prioritizes the write-back band, the congestion state of the cache memory and write buffer is eliminated in the shortest possible time. That is, by maximizing the write-back parallel execution upper limit value or minimizing the write-back execution interval, the congestion state of the write buffer 320 is eliminated in the shortest time.
  • the load state transitions again to the normal load state 20 and operates in a mode that prioritizes the host read band.
  • FIG. 15 is a flow chart showing a processing procedure example of the write buffer 320 according to the third embodiment of the present technology.
  • Steps S921, S922, and S925 to 928 of the processing procedure example of the write buffer 320 in the third embodiment are the same as the processing procedure example in the above-described first embodiment.
  • the write buffer 320 in the third embodiment performs the same processing as in the first embodiment if the number of waits held in the data buffer 321 is less than the predetermined threshold (step S923: No). conduct.
  • step S923 if the number of waits held in the data buffer 321 is equal to or greater than the predetermined threshold (step S923: Yes), the write-back request issuance interval is set to the minimum value (step S924). As a result, the congested state of the write buffer 320 is eliminated in the shortest time regardless of the write-back parallel execution upper limit value.
  • the write-back request issuance interval is set to the minimum value in the write buffer 320.
  • the write-back request issuance interval may be shortened as a result.
  • the congestion state of the write buffer 320 is eliminated by shortening the write-back request issuance interval. , the performance of the system as a whole can be improved.
  • the processing procedure described in the above embodiment may be regarded as a method having a series of procedures, and a program for causing a computer to execute the series of procedures or a recording medium for storing the program You can catch it.
  • this recording medium for example, CD (Compact Disc), MD (MiniDisc), DVD (Digital Versatile Disc), memory card, Blu-ray disc (Blu-ray (registered trademark) Disc), etc. can be used.
  • the present technology can also have the following configuration.
  • a write buffer control circuit comprising: (2) The write buffer control circuit according to (1), wherein the write-back control unit generates a parallel execution upper limit value of the write-back operation as the write-back control information.
  • the write-back control unit holds the correspondence relationship between the number of parallel executions in the read operation from the first memory and the parallel execution upper limit value of the write-back operation, and the memory operation state information includes the memory operation state information.
  • the write-back control unit determines the correspondence relationship between the number of parallel executions in the read operation from the first memory and the parallel execution upper limit value of the write-back operation as latency of write-back to the first memory. and selecting one of the correspondences based on the information about the latency of write-back to the first memory included in the memory operation state information, and selecting the selected correspondence in any one of (6) to (9) above, wherein the parallel execution upper limit value of the write-back operation is generated based on the number of parallel executions of the read operation from the first memory included in the memory operation state information.
  • write buffer control circuit (11) In the above (1) to (10), the write buffer sets an operation interval in the write-back operation to a fixed value when the number of write-back data held exceeds a predetermined threshold.
  • host computer 190 host instruction queue 200 cache memory 300 cache memory control unit 310 memory request queue 320 write buffer 321 data buffer 322 write back request issuing unit 323 write back latency acquisition unit 324 write back parallel execution upper limit acquisition unit 325 write back request Issue interval calculation unit 326 Signal line 330 Write back control unit 331 Host read parallel execution number acquisition unit 332 Flag information acquisition unit 333 Write back parallel execution upper limit calculation reference selection unit 334 Write back parallel execution upper limit calculation reference holding unit 335 Write back Parallel execution upper limit calculation unit 400 memory control unit 500 memory 510 memory device

Abstract

リードレイテンシよりライトレイテンシが大きいメモリにおいて、リード帯域の低下およびリードレイテンシの増加を抑制する。 第1のメモリは、リードレイテンシよりライトレイテンシが大きい。ライトバック制御部は、第1のメモリの動作状態に関するメモリ動作状態情報に基づいて、第2のメモリから第1のメモリへのライトバックに関するライトバック制御情報を生成する。ライトバッファは、第2のメモリから第1のメモリへのライトバックデータを保持する。ライトバッファは、ライトバック制御情報に基づいてライトバックデータの第1のメモリへのライトバック動作を実行する。

Description

ライトバッファ制御回路
 本技術は、ライトバッファ制御回路に関する。詳しくは、ライトバッファからメモリへのライトバック動作を制御するライトバッファ制御回路に関する。
 メモリシステムにおいては、メモリに対するアクセスを高速化するために、一般にキャッシュメモリが利用される。このキャッシュメモリにはメモリの部分的なコピーが記憶され、ライトバッファを介してメモリに書戻し(ライトバック)動作が行われる。このライトバック動作は、メモリシステム全体の性能に影響を及ぼすことが知られている。そのため、例えば、更新中ページの数を記録しておいて、その数に応じてアクセス間隔を動的に設定する装置が提案されている(例えば、特許文献1参照。)。
特開平6-175920号公報
 上述の従来技術では、更新中ページの数が増加していればライトバックの周期を短縮し、更新中ページの数が減少していればその周期を延長している。これにより、更新中ページの数が多くなるとライトバックが頻繁に行われるように制御される。しかしながら、リードレイテンシよりライトレイテンシが大きいメモリにおいて、リードおよびライトが混在したアクセスでは、ライト比率が高いほど帯域が低くなり、レイテンシが増加してしまうという問題がある。
 本技術はこのような状況に鑑みて生み出されたものであり、リードレイテンシよりライトレイテンシが大きいメモリにおいて、リード帯域の低下およびリードレイテンシの増加を抑制することを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、リードレイテンシよりライトレイテンシが大きい第1のメモリの動作状態に関するメモリ動作状態情報に基づいて、第2のメモリから上記第1のメモリへのライトバックに関するライトバック制御情報を生成するライトバック制御部と、上記第2のメモリから上記第1のメモリへのライトバックデータを保持して、上記ライトバック制御情報に基づいて上記ライトバックデータの上記第1のメモリへのライトバック動作を実行するライトバッファとを具備するライトバッファ制御回路である。これにより、第2のメモリから第1のメモリへのライトバック動作をメモリ動作状態情報に基づいて制御するという作用をもたらす。
 また、この第1の側面において、上記ライトバック制御部は、上記ライトバック制御情報として、上記ライトバック動作の並列実行上限値を生成するようにしてもよい。これにより、ライトバック動作の並列実行上限値を用いてライトバック動作を制御するという作用をもたらす。
 また、この第1の側面において、上記ライトバッファは、上記ライトバック制御情報に基づいて上記ライトバック動作における動作間隔を制御するようにしてもよい。
 また、この第1の側面において、上記メモリ動作状態情報は、上記第1のメモリからのリード動作における並列実行数を含んでもよい。この場合において、上記ライトバック制御部は、上記第1のメモリからのリード動作における並列実行数と上記ライトバック動作の並列実行上限値との対応関係を保持し、上記メモリ動作状態情報に含まれる上記第1のメモリからのリード動作における並列実行数に基づいて上記ライトバック動作の並列実行上限値を生成するようにしてもよい。
 また、この第1の側面において、上記メモリ動作状態情報は、上記第1のメモリへのライトバックのレイテンシに関する情報を含んでもよい。上記第1のメモリへのライトバックのレイテンシに関する情報は、上記第1のメモリにおけるベリファイ動作の再実行の有無、上記第1のメモリにおけるリードモディファイライト動作の有無、および、上記第1のメモリにおけるガベージコレクションの動作の有無の少なくとも1つを含んでもよい。
 また、この第1の側面において、上記ライトバック制御部は、上記第1のメモリからのリード動作における並列実行数と上記ライトバック動作の並列実行上限値との対応関係を、上記第1のメモリへのライトバックのレイテンシに関する情報に応じて複数保持し、上記メモリ動作状態情報に含まれる上記第1のメモリへのライトバックのレイテンシに関する情報に基づいて上記対応関係の一つを選択して、上記選択された対応関係において上記メモリ動作状態情報に含まれる上記第1のメモリからのリード動作における並列実行数に基づいて上記ライトバック動作の並列実行上限値を生成するようにしてもよい。
 また、この第1の側面において、上記ライトバッファは、上記ライトバックデータの保持数が所定の閾値よりも大きくなった場合には、上記ライトバック動作における動作間隔を固定値に設定するようにしてもよい。これにより、ライトバッファの混雑状態を解消するという作用をもたらす。
本技術の実施の形態におけるコンピュータシステムの全体構成例を示す図である。 本技術の第1の実施の形態におけるライトバック制御部330の構成例を示す図である。 本技術の第1の実施の形態におけるライトバッファ320の構成例を示す図である。 メモリアクセスに関する帯域とレイテンシの関係例を示す図である。 本技術の実施の形態におけるライトバック並列実行上限値の算出基準の例を示す図である。 本技術の実施の形態におけるレイテンシ基準のライトバック並列実行上限値算出例を示す図である。 本技術の実施の形態における帯域基準のライトバック並列実行上限値算出例を示す図である。 本技術の第1の実施の形態におけるライトバック制御部330の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるライトバッファ320の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるライトバック制御部330の構成例を示す図である。 本技術の第2の実施の形態におけるフラグ情報とライトバック並列実行上限値算出基準との関係例を示す図である。 本技術の第2の実施の形態におけるライトバック制御部330の処理手順例を示す流れ図である。 本技術の第3の実施の形態におけるライトバッファ320の構成例を示す図である。 本技術の第3の実施の形態におけるライトバッファ320の動作モード例を示す図である。 本技術の第3の実施の形態におけるライトバッファ320の処理手順例を示す流れ図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(ホストリード並列実行数によりライトバック並列実行上限値を設定する例)
 2.第2の実施の形態(ライトバックレイテンシに関する情報を加味してライトバック並列実行上限値を設定する例)
 3.第3の実施の形態(ライトバッファ待ち数を加味してライトバック要求発行間隔を設定する例)
 <1.第1の実施の形態>
 [コンピュータシステム]
 図1は、本技術の実施の形態におけるコンピュータシステムの全体構成例を示す図である。
 このコンピュータシステムは、ホストコンピュータ100、ホスト命令キュー190、キャッシュメモリ200、キャッシュメモリ制御部300、メモリ制御部400、および、メモリ500を備える。
 ホストコンピュータ100は、メモリ500に記憶された命令およびデータにアクセスして情報処理を行う情報処理装置である。ホスト命令キュー190は、ホストコンピュータ100から発行された命令を保持する待ち行列である。ホストコンピュータ100からメモリ500に対して発行される命令としては、例えば、メモリ500からデータを読み出すロード(Load)命令や、メモリ500にデータを書き込むストア(Store)命令などが想定される。
 キャッシュメモリ200は、ホストコンピュータ100とメモリ500との間に配置されて、メモリ500の記憶内容の一部を保持する記憶装置である。
 キャッシュメモリ制御部300は、キャッシュメモリ200に対するアクセスを制御する装置である。このキャッシュメモリ制御部300は、メモリ要求キュー310と、ライトバッファ320と、ライトバック制御部330とを備える。なお、キャッシュメモリ制御部300は、特許請求の範囲に記載のライトバッファ制御回路の一例である。
 メモリ要求キュー310は、メモリ500に対するアクセス要求を保持する待ち行列である。このメモリ要求キュー310に保持されるアクセス要求としては、例えば、メモリ500にリードを要求するホストリード要求や、メモリ500にライトバックを要求するライトバック要求などが想定される。
 ライトバッファ320は、キャッシュメモリ200からメモリ500にライトバックされるライトバックデータを保持するバッファである。このライトバッファ320は、ライトバック制御情報に基づいてライトバックデータのメモリ500へのライトバック動作を実行する。
 ライトバック制御部330は、メモリ500の動作状態に関するメモリ動作状態情報に基づいて、ライトバッファ320からメモリ500へのライトバック動作を制御するものである。
 メモリ制御部400は、メモリ500に対するアクセスを制御するものである。メモリ500は、ホストコンピュータ100からアクセスされる命令およびデータを記憶する記憶装置である。このメモリ500は、例えば、PCM(Phase Change Memory)などの抵抗変化型メモリやフラッシュメモリなどを含めた不揮発性メモリにより実現され得る。このメモリ500は、リードレイテンシよりライトレイテンシが大きいことが想定される。
 メモリ500は、並列に動作する複数のメモリデバイス510を備える。このメモリ500における複数のメモリデバイス510は、バンク(Bank)構成であってもよく、ダイ(Die)構成であってもよい。例えば、4つのメモリデバイス510を想定すると、4バンク構成であってもよく、4ダイ構成であってもよい。また、それぞれが2バンクずつからなる2ダイ構成であってもよい。
 なお、メモリ500は、特許請求の範囲に記載の第1のメモリの一例である。また、キャッシュメモリ200は、特許請求の範囲に記載の第2のメモリの一例である。
 このようなライトバッファ320を備えるシステムにおいては、ホストコンピュータ100からのロード命令はキャッシュメモリ200上にデータを読み出し、ストア命令はキャッシュメモリ200上にデータの書込みを行う。メモリリードは、ロード命令のキャッスミス時のホストリード要求により発生する。メモリライトは、キャッシュメモリ200からライトバッファ320に追い出したダーティデータのライトバック要求によって発生する。
 リードおよびライトが混在したアクセスでは、ライト比率が高いほど帯域が低くなり、レイテンシが増加する。すなわち、ホストリードに対してライトバックの並列実行数が増えると、ホストコンピュータ100からのアクセスの帯域が低下し、レイテンシも増加する。そこで、この実施の形態では、キャッシュメモリ制御部300において、ライトバックの帯域を制御する機能を備えることにより、ホストリードの帯域の低下およびレイテンシの増加を抑制する。具体的には、ライトバック制御部330において、ホストリード並列実行数に従ってライトバック並列実行数の上限値を設定することにより、ホストリード要求の負荷が上がった場合にはライトバックの並列実行数を抑制し、ホストリードの帯域を維持する。
 [ライトバック制御部]
 図2は、本技術の第1の実施の形態におけるライトバック制御部330の構成例を示す図である。
 この第1の実施の形態におけるライトバック制御部330は、ホストリード並列実行数取得部331と、ライトバック並列実行上限値算出基準保持部334と、ライトバック並列実行上限値算出部335とを備える。
 ホストリード並列実行数取得部331は、メモリ制御部400において測定された実行中のホストリード並列実行数を、メモリ動作状態情報としてメモリ制御部400から取得するものである。
 ライトバック並列実行上限値算出基準保持部334は、ライトバック並列実行上限値を算出するための基準を保持するものである。このライトバック並列実行上限値算出基準保持部334に保持される基準は、ホストリード並列実行数に対応するライトバック並列実行上限値を示すものであり、例えば、テーブル形式で対応関係を保持するものであってもよく、また、ホストリード並列実行数を引数とする関数であってもよい。
 ライトバック並列実行上限値算出部335は、ホストリード並列実行数取得部331によって取得されたホストリード並列実行数に基づいて、ライトバック並列実行上限値算出基準保持部334に保持された基準によりライトバック並列実行上限値を算出するものである。このライトバック並列実行上限値算出部335によって算出されたライトバック並列実行上限値は、ライトバッファ320に供給される。
 [ライトバッファ]
 図3は、本技術の第1の実施の形態におけるライトバッファ320の構成例を示す図である。
 この第1の実施の形態におけるライトバッファ320は、データバッファ321と、ライトバック要求発行部322と、ライトバックレイテンシ取得部323と、ライトバック並列実行上限値取得部324と、ライトバック要求発行間隔算出部325とを備える。
 データバッファ321は、キャッシュメモリ200からメモリ500にライトバックされるライトバックデータを保持するバッファである。
 ライトバック要求発行部322は、データバッファ321に保持されるライトバックデータをメモリ500に書き戻すライトバック要求を発行するものである。
 ライトバックレイテンシ取得部323は、ライトバック要求発行部322から発行されたライトバック要求におけるライトバックレイテンシを取得するものである。すなわち、このライトバックレイテンシは、直前のライトバックに要したレイテンシとして取得される。
 ライトバック並列実行上限値取得部324は、ライトバック制御部330から供給されたライトバック並列実行上限値を取得するものである。すなわち、このライトバック並列実行上限値は、ホストリード並列実行数に従って算出されたものである。
 ライトバック要求発行間隔算出部325は、ライトバック並列実行上限値取得部324によって取得されたライトバック並列実行上限値と、ライトバックレイテンシ取得部323によって取得されたライトバックレイテンシとに基づいてライトバック要求発行間隔を算出するものである。ライトバック要求発行間隔は、次式により算出される。
  ライトバック要求発行間隔=ライトバックレイテンシ
              /ライトバック並列実行上限値
 このライトバック要求発行間隔算出部325によって算出されたライトバック要求発行間隔に従って、ライトバック要求発行部322がライトバック要求を発行する。
 [帯域とレイテンシ]
 図4は、メモリアクセスに関する帯域とレイテンシの関係例を示す図である。
 一般に、メモリとの間の帯域が大きくなり、処理できる負荷を越えると、処理しきれないコマンドがキューに停滞するためレイテンシが急激に増加する。したがって、帯域とレイテンシとの関係は同図のように示される。
 これに対処するために、本実施の形態のようにライトバックを制御すると、ホストリードを実行する帯域が優先的に確保され、ホストリード要求の待ち時間も抑制されてレイテンシが減少する。すなわち、帯域およびレイテンシの両者が改善する。
 [ライトバック並列実行上限値の算出]
 図5は、本技術の実施の形態におけるライトバック並列実行上限値の算出基準の例を示す図である。
 ライトバック並列実行上限値は、予め測定した帯域とレイテンシの関係グラフを使用して、以下の2つの基準により算出され得る。
 第1の基準は、同図におけるaに示すように、レイテンシを基準とするものである。この場合、指定するレイテンシと関係グラフとの交点を上限として選択する。具体的には、選択した状態でのホストリード並列数とライトバック並列数の組み合わせを上限として採用する。
 第2の基準は、同図におけるbに示すように、帯域を基準とするものである。この場合、指定する帯域と関係グラフとの交点を上限として選択する。具体的には、選択した状態でのホストリード並列数とライトバック並列数の組み合わせを上限として採用する。
 上述の関係グラフはリードとライトの比率によって異なるため、ライトバック並列実行上限値を算出する際には、リード/ライト比率を考慮する必要がある。したがって、ライトバック制御部330は、測定したホストリード並列実行数から、想定するリード/ライト比率における関係グラフを使用してライトバック並列実行上限値を決定する。
 図6は、本技術の実施の形態におけるレイテンシ基準のライトバック並列実行上限値算出例を示す図である。
 同図は、関係グラフ上で指定したレイテンシを基準に、関係グラフとの交点付近での達成時のホストリード並列数とライトバック並列数を代表点として採用し、ライトバック並列実行数上限値をテーブル化したものである。
 例えば、リード/ライト比率が75パーセント対25パーセントの場合に、指定レイテンシにおいて、ホストリード並列数が「20」、ライトバック並列数が「12」であったとする。これを代表点Aaとして設定する。
 また、リード/ライト比率が50パーセント対50パーセントの場合に、指定レイテンシにおいて、ホストリード並列数が「12」、ライトバック並列数が「25」であったとする。これを代表点Abとして設定する。
 また、リード/ライト比率が25パーセント対75パーセントの場合に、指定レイテンシにおいて、ホストリード並列数が「5」、ライトバック並列数が「42」であったとする。これを代表点Acとして設定する。
 また、リード/ライト比率が0パーセント対100パーセントの場合に、指定レイテンシにおいて、ホストリード並列数が「0」、ライトバック並列数が「42」であったとする。これを代表点Adとして設定する。
 このようにして設定されたホストリード並列実行数とライトバック並列実行上限値との対応関係は、ライトバック並列実行上限値を算出するための基準として、ライトバック並列実行上限値算出基準保持部334に保持される。そして、この保持された対応関係に従って、ライトバック並列実行上限値算出部335がライトバック並列実行上限値を算出する。
 なお、この例では対応関係をテーブル化することを想定したが、これを関数として表してもよい。例えば、ライトバック並列実行上限値をWBとし、ホストリード並列実行数をHRとすると、次式の関数f1として表すことができる。
  WB=f1(HR)=12+(17-HR)×2.5
  HR=5~17
 図7は、本技術の実施の形態における帯域基準のライトバック並列実行上限値算出例を示す図である。
 同図は、関係グラフ上で指定した帯域を基準に、関係グラフとの交点付近での達成時のホストリード並列数とライトバック並列数を代表点として採用し、ライトバック並列実行数上限値をテーブル化したものである。
 例えば、リード/ライト比率が75パーセント対25パーセントの場合に、指定帯域において、ホストリード並列数が「20」、ライトバック並列数が「12」であったとする。これを代表点Baとして設定する。
 また、リード/ライト比率が50パーセント対50パーセントの場合に、指定帯域において、ホストリード並列数が「16」、ライトバック並列数が「30」であったとする。これを代表点Bbとして設定する。
 また、リード/ライト比率が25パーセント対75パーセントの場合に、指定帯域において、ホストリード並列数が「14」、ライトバック並列数が「40」であったとする。これを代表点Bcとして設定する。
 また、リード/ライト比率が0パーセント対100パーセントの場合に、指定帯域において、ホストリード並列数が「0」、ライトバック並列数が「40」であったとする。これを代表点Bdとして設定する。
 このようにして設定されたホストリード並列実行数とライトバック並列実行上限値との対応関係は、ライトバック並列実行上限値を算出するための基準として、ライトバック並列実行上限値算出基準保持部334に保持される。そして、この保持された対応関係に従って、ライトバック並列実行上限値算出部335がライトバック並列実行上限値を算出する。
 なお、この例では対応関係をテーブル化することを想定したが、これを関数として表してもよい。例えば、ライトバック並列実行上限値をWBとし、ホストリード並列実行数をHRとすると、次式の関数f2として表すことができる。
  WB=f2(HR)=12+(20-HR)×4.67
  HR=14~20
 [動作]
 図8は、本技術の第1の実施の形態におけるライトバック制御部330の処理手順例を示す流れ図である。
 ライトバック制御部330のホストリード並列実行数取得部331は、実行中のホストリード並列実行数をメモリ動作状態情報としてメモリ制御部400から取得する(ステップS911)。
 ライトバック制御部330のライトバック並列実行上限値算出部335は、ホストリード並列実行数取得部331によって取得されたホストリード並列実行数に基づいて、ライトバック並列実行上限値算出基準保持部334に保持された基準によりライトバック並列実行上限値を算出する(ステップS914)。
 図9は、本技術の第1の実施の形態におけるライトバッファ320の処理手順例を示す流れ図である。
 ライトバッファ320は、データバッファ321にライトバックすべきデータが保持されるまで待機し(ステップS921:Yes)、空でなくなると(ステップS921:No)、ライトバック要求発行部322がライトバック要求を発行する(ステップS922)。そして、そのライトバック動作が終了するまでのレイテンシをライトバックレイテンシ取得部323が取得する(ステップS925)。
 また、ライトバッファ320のライトバック並列実行上限値取得部324は、ライトバック制御部330から供給されたライトバック並列実行上限値を取得する(ステップS926)。
 これにより、ライトバッファ320のライトバック要求発行間隔算出部325は、ライトバック並列実行上限値取得部324によって取得されたライトバック並列実行上限値と、ライトバックレイテンシ取得部323よって取得されたライトバックレイテンシとに基づいてライトバック要求発行間隔を算出する(ステップS927)。
 そして、この算出されたライトバック要求発行間隔を満たすように、必要に応じて待機を行い(ステップS928)、データバッファ321が空でなければ(ステップS921:No)、ライトバック要求発行部322が再びライトバック要求を発行する(ステップS922)。
 このように、本技術の第1の実施の形態では、予め定めたホストリード並列実行数とライトバック並列実行上限値との対応関係に従って、測定されたホストリード並列実行数に対応するライトバック並列実行上限値を求めて、ライトバッファ320からのライトバックを制御する。これにより、ホストリード要求の負荷が上がった場合にはライトバックの並列実行数を抑制し、ホストリードの帯域を維持することができる。
 <2.第2の実施の形態>
 上述の第1の実施の形態では、メモリ動作状態情報として、実行中のホストリード並列実行数からライトバック並列実行上限値を設定していた。一方、メモリの挙動は、様々な要因により影響を受けるため、ライトバックのレイテンシも大きく変動し得る。そこで、この第2の実施の形態では、メモリ動作状態情報としてライトバックのレイテンシに関する情報を含み、このライトバックのレイテンシに関する情報に従ってライトバック並列実行上限値の算出基準を選択する。なお、この第2の実施の形態において想定するコンピュータシステムの全体構成は上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
 [ライトバック制御部]
 図10は、本技術の第2の実施の形態におけるライトバック制御部330の構成例を示す図である。
 この第2の実施の形態におけるライトバック制御部330は、上述の第1の実施の形態におけるライトバック制御部330に加えて、フラグ情報取得部332と、ライトバック並列実行上限値算出基準選択部333とを備える。
 フラグ情報取得部332は、メモリ動作状態情報として、ホストリード並列実行数に加えてフラグ情報をメモリ制御部400から取得するものである。このフラグ情報は、ライトバックのレイテンシに関する情報である。このフラグ情報の具体例については後述する。
 ライトバック並列実行上限値算出基準選択部333は、フラグ情報取得部332によって取得されたフラグ情報に基づいて、ライトバック並列実行上限値を算出するための基準を選択するものである。この第2の実施の形態では、ライトバック並列実行上限値算出基準保持部334は、ライトバック並列実行上限値を算出するための基準をフラグ情報に応じて複数保持する。そのため、このライトバック並列実行上限値算出基準選択部333は、フラグ情報に従って対応する算出基準を選択して、ライトバック並列実行上限値算出部335に供給させる。
 [フラグ情報]
 図11は、本技術の第2の実施の形態におけるフラグ情報とライトバック並列実行上限値算出基準との関係例を示す図である。
 ここでは、フラグ情報の具体例として、「ベリファイの再実行」の有無、「リードモディファイライト」の有無、および、「ガベージコレクション」の有無を挙げている。これらの発生の有無に応じて、1つのライトバック並列実行上限値算出基準が選択されることを想定している。
 「ベリファイの再実行」は、ベリファイによるメモリの書込みビジー時間の延長を示すものである。メモリがライトビジーとなってから完了するまでに必要とする時間は、経年変化などの要因によって変化する特性を示すことがある。その場合、メモリへのライトが発生するライトバック処理では、ライトビジーの時間によって並列実行数が変化するため、ライトバック並列実行上限値も異なる計算式が必要となる。例えば、通常(Normal)状態と延長(Long)状態の2種類のライトビジー時間が発生する。ライトビジー時間がいずれになるかは書き込もうとするメモリセルの劣化状態により決まり、ライトビジー時間はメモリ内部動作でのベリファイループの回数により決まる。「ベリファイの再実行」が有る場合には、メモリのライトビジー時間が長くなったことにより、ライトバックレイテンシも長くなる。
 「リードモディファイライト」は、書込みデータがメモリの読出し単位より小さい場合に行われるリードモディファイライトの発生を示すものである。ホストコンピュータ100からロード/ストアアクセスされるデータサイズとメモリ制御部400からメモリ500にリード/ライトアクセスするデータサイズが異なる場合に、メモリ500から読み出したデータを、ライトバックするダーティデータとマージしてから、メモリライトバックに書き戻す処理が必要になる。これをリードモディファイライトと呼ぶ。
 ライトのみのライトバック処理と、リードモディファイライトが発生するライトバック処理では、ライトバックレイテンシが変化するため、ライトバック並列上限値も異なる算出式が必要となる。すなわち、ライトのみとリードモディファイライトのいずれのライトバック処理が発生したかは、ダーティデータの更新状態で決まる。 ライトバック制御部330はどちらのライトバック処理が発生したかを示すためのフラグ情報「リードモディファイライト」に基づいて、ライトバック並列実行上限値を算出する基準を決定する。「リードモディファイライト」が有る場合には、メモリの書込みの前に読出しが発生したことにより、ライトバックレイテンシも長くなる。
 「ガベージコレクション」は、メモリ500において不要になった領域を解放するガベージコレクションの発生を示すものである。メモリ500においてガベージコレクションが発生すると、一時的にメモリ500へのアクセスが遅延してレイテンシが変化するため、ライトバック並列上限値も異なる算出式が必要となる。「ガベージコレクション」が有る場合には、バックグラウンド処理により遅延が発生するため、ライトバックレイテンシも長くなる。
 したがって、この例では、これら3つの要因の有無に対応して、8つのライトバック並列実行上限値算出基準をライトバック並列実行上限値算出基準保持部334に用意する。そして、フラグ情報取得部332によって取得されたフラグ情報に基づいて、ライトバック並列実行上限値算出基準選択部333が1つのライトバック並列実行上限値算出基準を選択する。これにより、ライトバック並列実行上限値算出部335は、その選択されたライトバック並列実行上限値算出基準によりライトバック並列実行上限値を算出する。
 [動作]
 図12は、本技術の第2の実施の形態におけるライトバック制御部330の処理手順例を示す流れ図である。
 ライトバック制御部330のホストリード並列実行数取得部331は、実行中のホストリード並列実行数をメモリ動作状態情報としてメモリ制御部400から取得する(ステップS911)。
 また、ライトバック制御部330のフラグ情報取得部332は、メモリ動作状態情報としてフラグ情報をメモリ制御部400から取得する(ステップS912)。そして、ライトバック制御部330のライトバック並列実行上限値算出基準選択部333は、フラグ情報取得部332によって取得されたフラグ情報に基づいて、ライトバック並列実行上限値を算出するための基準を選択する(ステップS913)。
 ライトバック制御部330のライトバック並列実行上限値算出部335は、ホストリード並列実行数取得部331によって取得されたホストリード並列実行数に基づいて、ライトバック並列実行上限値算出基準選択部333によって選択されたライトバック並列実行上限値算出基準によりライトバック並列実行上限値を算出する(ステップS914)。
 なお、本技術の第2の実施の形態におけるライトバッファ320の処理手順については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
 このように、本技術の第2の実施の形態では、ライトバックのレイテンシに関する情報(ベリファイの再実行、リードモディファイライト、ガベージコレクション)を加味してライトバック並列実行上限値を求める。これにより、メモリ500の動作状態を考慮してライトバッファ320からのライトバックを制御することができる。
 <3.第3の実施の形態>
 上述の第1および第2の実施の形態では、ホストリードを優先して、ライトバッファ320からのライトバックを制御していた。一方、ライトバックされるデータがライトバッファ320に一定以上溜まってしまうと、ライトバッファ320の混雑状態によって全体の性能に悪影響を与えるおそれがある。そこで、この第3の実施の形態では、ライトバッファ320における保持数によってライトバック制御のモードを切り替えて、システム全体としての性能向上を図る。なお、この第3の実施の形態において想定するコンピュータシステムの全体構成は上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
 [ライトバッファ]
 図13は、本技術の第3の実施の形態におけるライトバッファ320の構成例を示す図である。
 この第3の実施の形態におけるライトバッファ320は、上述の第1の実施の形態におけるライトバッファ320に加えて、データバッファ321からライトバック要求発行間隔算出部325に対する信号線326を備える。この信号線326は、データバッファ321におけるデータの保持数をライトバック要求発行間隔算出部325に供給するものである。
 ライトバック要求発行間隔算出部325は、データバッファ321におけるデータの保持数が閾値以下であれば正常な負荷状態であると判断して、ライトバック並列実行上限値に従った制御を行う。一方、データバッファ321におけるデータの保持数が閾値を超える場合には、負荷状態が過負荷であると判断して、ライトバック要求の発行間隔を最小値に設定する。これにより、ライトバックの処理を促進して、ライトバッファ320の混雑状態を解消する。
 なお、ライトバック制御部330の構成については、上述の第1および第2の実施の形態の何れについても適用可能である。すなわち、ライトバック並列実行上限値の算出については、第1の実施の形態のように1つの算出基準のみを使用してもよく、第2の実施の形態のように複数の算出基準から選択するようにしてもよい。
 [動作モード]
 図14は、本技術の第3の実施の形態におけるライトバッファ320の動作モード例を示す図である。
 コンピュータシステムがリセットされると、当初はリセット状態10となり、その後、正常負荷状態20に遷移する。この正常負荷状態20においては、上述の第1および第2の実施の形態において説明したように、ライトバッファ320はホストリードの帯域を優先するモードで動作する。すなわち、ホストリード並列実行数に対してライトバック並列実行数の上限を設けて、これに従ってライトバッファ320が動作することにより、ホストリード帯域を優先的に確保して、帯域低下を抑制する。さらに、ホストリード並列実行数が増えるほど、ライトバック並列実行上限値を小さくすることにより、メモリ要求キュー310上での待ち時間の増加を抑制する。
 その後、ライトバッファ320における保持数が所定の閾値を超えると、超過負荷状態30に遷移する。この超過負荷状態30においては、ライトバック帯域を優先するモードで動作することにより、キャッシュメモリとライトバッファの混雑状態を最短で解消する。すなわち、ライトバック並列実行上限値を最大にし、または、ライトバック実行間隔を最小にすることにより、最短の時間でライトバッファ320の混雑状態を解消する。
 超過負荷状態30において動作した後、ライトバッファ320における保持数が所定の閾値以下になると、再び正常負荷状態20に遷移して、ホストリードの帯域を優先するモードで動作するようになる。
 このように動作モードを切り替えることにより、適正なバランスによりホストリードとライトバックを制御することができる。
 [動作]
 図15は、本技術の第3の実施の形態におけるライトバッファ320の処理手順例を示す流れ図である。
 この第3の実施の形態におけるライトバッファ320の処理手順例のステップS921、S922、S925乃至928は、上述の第1の実施の形態における処理手順例と同様である。この第3の実施の形態におけるライトバッファ320は、データバッファ321に保持される待ち数が所定の閾値未満であれば(ステップS923:No)、上述の第1の実施の形態と同様の処理を行う。
 一方、データバッファ321に保持される待ち数が所定の閾値以上であれば(ステップS923:Yes)、ライトバック要求発行間隔を最小値に設定する(ステップS924)。これにより、ライトバック並列実行上限値に関わらず、最短の時間でライトバッファ320の混雑状態を解消する。
 なお、この処理手順例ではライトバッファ320においてライトバック要求発行間隔を最小値に設定することを想定したが、変形例として、ライトバック制御部330においてライトバック並列実行上限値を最大にすることにより、結果的にライトバック要求発行間隔を短くするようにしてもよい。
 このように、本技術の第3の実施の形態によれば、データバッファ321の保持数が多くなった場合にライトバック要求発行間隔を短くすることにより、ライトバッファ320の混雑状態を解消して、システム全体としての性能を向上させることができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)リードレイテンシよりライトレイテンシが大きい第1のメモリの動作状態に関するメモリ動作状態情報に基づいて、第2のメモリから前記第1のメモリへのライトバックに関するライトバック制御情報を生成するライトバック制御部と、
 前記第2のメモリから前記第1のメモリへのライトバックデータを保持して、前記ライトバック制御情報に基づいて前記ライトバックデータの前記第1のメモリへのライトバック動作を実行するライトバッファと
を具備するライトバッファ制御回路。
(2)前記ライトバック制御部は、前記ライトバック制御情報として、前記ライトバック動作の並列実行上限値を生成する
前記(1)に記載のライトバッファ制御回路。
(3)前記ライトバッファは、前記ライトバック制御情報に基づいて前記ライトバック動作における動作間隔を制御する
前記(1)または(2)に記載のライトバッファ制御回路。
(4)前記メモリ動作状態情報は、前記第1のメモリからのリード動作における並列実行数を含む
前記(1)から(3)のいずれかに記載のライトバッファ制御回路。
(5)前記ライトバック制御部は、前記第1のメモリからのリード動作における並列実行数と前記ライトバック動作の並列実行上限値との対応関係を保持し、前記メモリ動作状態情報に含まれる前記第1のメモリからのリード動作における並列実行数に基づいて前記ライトバック動作の並列実行上限値を生成する
前記(4)に記載のライトバッファ制御回路。
(6)前記メモリ動作状態情報は、前記第1のメモリへのライトバックのレイテンシに関する情報を含む
前記(1)または(4)に記載のライトバッファ制御回路。
(7)前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるベリファイ動作の再実行の有無を含む
前記(6)に記載のライトバッファ制御回路。
(8)前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるリードモディファイライト動作の有無を含む
前記(6)または(7)に記載のライトバッファ制御回路。
(9)前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるガベージコレクションの動作の有無を含む
前記(6)から(8)のいずれかに記載のライトバッファ制御回路。
(10)前記ライトバック制御部は、前記第1のメモリからのリード動作における並列実行数と前記ライトバック動作の並列実行上限値との対応関係を、前記第1のメモリへのライトバックのレイテンシに関する情報に応じて複数保持し、前記メモリ動作状態情報に含まれる前記第1のメモリへのライトバックのレイテンシに関する情報に基づいて前記対応関係の一つを選択して、前記選択された対応関係において前記メモリ動作状態情報に含まれる前記第1のメモリからのリード動作における並列実行数に基づいて前記ライトバック動作の並列実行上限値を生成する
前記(6)から(9)のいずれかに記載のライトバッファ制御回路。
(11)前記ライトバッファは、前記ライトバックデータの保持数が所定の閾値よりも大きくなった場合には、前記ライトバック動作における動作間隔を固定値に設定する
前記(1)から(10)のいずれかに記載のライトバッファ制御回路。
 100 ホストコンピュータ
 190 ホスト命令キュー
 200 キャッシュメモリ
 300 キャッシュメモリ制御部
 310 メモリ要求キュー
 320 ライトバッファ
 321 データバッファ
 322 ライトバック要求発行部
 323 ライトバックレイテンシ取得部
 324 ライトバック並列実行上限値取得部
 325 ライトバック要求発行間隔算出部
 326 信号線
 330 ライトバック制御部
 331 ホストリード並列実行数取得部
 332 フラグ情報取得部
 333 ライトバック並列実行上限値算出基準選択部
 334 ライトバック並列実行上限値算出基準保持部
 335 ライトバック並列実行上限値算出部
 400 メモリ制御部
 500 メモリ
 510 メモリデバイス

Claims (11)

  1.  リードレイテンシよりライトレイテンシが大きい第1のメモリの動作状態に関するメモリ動作状態情報に基づいて、第2のメモリから前記第1のメモリへのライトバックに関するライトバック制御情報を生成するライトバック制御部と、
     前記第2のメモリから前記第1のメモリへのライトバックデータを保持して、前記ライトバック制御情報に基づいて前記ライトバックデータの前記第1のメモリへのライトバック動作を実行するライトバッファと
    を具備するライトバッファ制御回路。
  2.  前記ライトバック制御部は、前記ライトバック制御情報として、前記ライトバック動作の並列実行上限値を生成する
    請求項1記載のライトバッファ制御回路。
  3.  前記ライトバッファは、前記ライトバック制御情報に基づいて前記ライトバック動作における動作間隔を制御する
    請求項1記載のライトバッファ制御回路。
  4.  前記メモリ動作状態情報は、前記第1のメモリからのリード動作における並列実行数を含む
    請求項1記載のライトバッファ制御回路。
  5.  前記ライトバック制御部は、前記第1のメモリからのリード動作における並列実行数と前記ライトバック動作の並列実行上限値との対応関係を保持し、前記メモリ動作状態情報に含まれる前記第1のメモリからのリード動作における並列実行数に基づいて前記ライトバック動作の並列実行上限値を生成する
    請求項4記載のライトバッファ制御回路。
  6.  前記メモリ動作状態情報は、前記第1のメモリへのライトバックのレイテンシに関する情報を含む
    請求項1記載のライトバッファ制御回路。
  7.  前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるベリファイ動作の再実行の有無を含む
    請求項6記載のライトバッファ制御回路。
  8.  前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるリードモディファイライト動作の有無を含む
    請求項6記載のライトバッファ制御回路。
  9.  前記第1のメモリへのライトバックのレイテンシに関する情報は、前記第1のメモリにおけるガベージコレクションの動作の有無を含む
    請求項6記載のライトバッファ制御回路。
  10.  前記ライトバック制御部は、前記第1のメモリからのリード動作における並列実行数と前記ライトバック動作の並列実行上限値との対応関係を、前記第1のメモリへのライトバックのレイテンシに関する情報に応じて複数保持し、前記メモリ動作状態情報に含まれる前記第1のメモリへのライトバックのレイテンシに関する情報に基づいて前記対応関係の一つを選択して、前記選択された対応関係において前記メモリ動作状態情報に含まれる前記第1のメモリからのリード動作における並列実行数に基づいて前記ライトバック動作の並列実行上限値を生成する
    請求項6記載のライトバッファ制御回路。
  11.  前記ライトバッファは、前記ライトバックデータの保持数が所定の閾値よりも大きくなった場合には、前記ライトバック動作における動作間隔を固定値に設定する
    請求項1記載のライトバッファ制御回路。
PCT/JP2022/048372 2022-02-24 2022-12-27 ライトバッファ制御回路 WO2023162465A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022026302 2022-02-24
JP2022-026302 2022-02-24

Publications (1)

Publication Number Publication Date
WO2023162465A1 true WO2023162465A1 (ja) 2023-08-31

Family

ID=87765313

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/048372 WO2023162465A1 (ja) 2022-02-24 2022-12-27 ライトバッファ制御回路

Country Status (1)

Country Link
WO (1) WO2023162465A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004288078A (ja) * 2003-03-25 2004-10-14 Hitachi Ltd 固定長ディスクを利用したディスクアレイシステム
JP2006091995A (ja) * 2004-09-21 2006-04-06 Toshiba Microelectronics Corp キャッシュメモリのライトバック装置
JP2006185198A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp メモリアクセス制御回路
JP2013539132A (ja) * 2010-09-28 2013-10-17 ピュア・ストレージ・インコーポレイテッド Ssd環境のための適応的raid
JP2015111334A (ja) * 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20160202909A1 (en) * 2015-01-14 2016-07-14 College Of William And Mary I/o scheduling method using read prioritization to reduce application delay

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004288078A (ja) * 2003-03-25 2004-10-14 Hitachi Ltd 固定長ディスクを利用したディスクアレイシステム
JP2006091995A (ja) * 2004-09-21 2006-04-06 Toshiba Microelectronics Corp キャッシュメモリのライトバック装置
JP2006185198A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp メモリアクセス制御回路
JP2013539132A (ja) * 2010-09-28 2013-10-17 ピュア・ストレージ・インコーポレイテッド Ssd環境のための適応的raid
JP2015111334A (ja) * 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20160202909A1 (en) * 2015-01-14 2016-07-14 College Of William And Mary I/o scheduling method using read prioritization to reduce application delay

Similar Documents

Publication Publication Date Title
USRE48736E1 (en) Memory system having high data transfer efficiency and host controller
US10642740B2 (en) Methods for performing a memory resource retry
KR20070086640A (ko) 메모리내의 명령을 실행하기 위한 우선순위 부여 방식
JP6146128B2 (ja) データ処理装置
EP3841481A1 (en) Ordering memory requests based on access efficiency
US8549181B2 (en) Semiconductor memory device and method of operating the semiconductor memory device
JP2012128815A (ja) メモリシステム
JP5428687B2 (ja) メモリ制御装置
CN110442321B (zh) 一种预取fifo电路及方法
WO2023162465A1 (ja) ライトバッファ制御回路
JP5108690B2 (ja) Dma装置及びdma転送方法
JP3880942B2 (ja) プロセッサ、計算機及び優先度決定方法
JP2021135538A (ja) ストレージ制御装置及びストレージ制御プログラム
US11029892B2 (en) Memory control apparatus and memory control method for swapping data based on data characteristics
US20080016296A1 (en) Data processing system
US10169235B2 (en) Methods of overriding a resource retry
US11923037B2 (en) Memory control circuit and method for controlling the same
JP5505195B2 (ja) メモリの制御装置、及び制御方法
WO2015173966A1 (ja) 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
JP2009059276A (ja) 情報処理装置およびプログラム
CN111414148A (zh) 面向高性能处理器的混合型fifo数据存储方法及装置
CN111831327A (zh) 可执行指令的电子装置以及指令执行方法
JP6115564B2 (ja) データ処理システム、半導体集積回路およびその制御方法
CN114265812B (zh) 降低risc-v向量处理器访存延迟的方法、装置、设备及介质
US11360901B2 (en) Method and apparatus for managing page cache for multiple foreground applications

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

Country of ref document: EP

Kind code of ref document: A1