WO2017104906A1 - 메모리제어장치 및 메모리제어장치의 동작 방법 - Google Patents

메모리제어장치 및 메모리제어장치의 동작 방법 Download PDF

Info

Publication number
WO2017104906A1
WO2017104906A1 PCT/KR2016/003400 KR2016003400W WO2017104906A1 WO 2017104906 A1 WO2017104906 A1 WO 2017104906A1 KR 2016003400 W KR2016003400 W KR 2016003400W WO 2017104906 A1 WO2017104906 A1 WO 2017104906A1
Authority
WO
WIPO (PCT)
Prior art keywords
distribution target
information
distribution
read request
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2016/003400
Other languages
English (en)
French (fr)
Inventor
노홍찬
박상현
이종찬
박홍규
김재형
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industry Academic Cooperation Foundation of Yonsei University
SK Telecom Co Ltd
Original Assignee
Industry Academic Cooperation Foundation of Yonsei University
SK Telecom Co Ltd
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 Industry Academic Cooperation Foundation of Yonsei University, SK Telecom Co Ltd filed Critical Industry Academic Cooperation Foundation of Yonsei University
Priority to US16/062,860 priority Critical patent/US10599574B2/en
Priority to CN201680073498.1A priority patent/CN108431789B/zh
Publication of WO2017104906A1 publication Critical patent/WO2017104906A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Definitions

  • the present invention provides a method of operating a memory controller and a memory controller capable of maximizing throughput of the entire storage device by distributing and delivering read requests for cache hit data to be processed not only in the cache memory but also in the hard disk. It is about.
  • SSDs Solid state disks
  • SSDs are used as cache devices for hard disks rather than as single storage devices in order to build high-efficiency systems at low cost.
  • SSD is used as a cache device (hereinafter referred to as SSD-based cache memory), so that frequently used data is loaded into the SSD-based cache memory and relatively less frequently used data is loaded onto the hard disk,
  • SSD-based cache memory a cache device
  • the slow performance problems of using a single hard disk as a single storage device and the high price and limited lifetime of using a single SSD as a suitable storage are alleviated.
  • the cache hit data is read only from the cache memory and the hard disk does not operate during that time.
  • the hard disk is kept in a waiting state for a considerably long time when a large amount of cache hit data is read from the cache memory, and the standby hard disk is not utilized. This is inefficient in terms of throughput of the storage device.
  • the present invention is to propose a method for maximizing the throughput of the entire storage device by enabling the cache hit data to be read from the hard disk as well as the cache memory.
  • An object of the present invention is to provide a memory control device and a memory that can maximize the throughput (throughput) of the entire storage by distributing and delivering the read request for the cache hit data to be processed not only in the cache memory but also the hard disk It is to provide a method of operation of the control device.
  • the activation control unit for activating the distribution function according to the state of the cache memory, if the read request for the cache hit data existing in the hard disk and the cache memory;
  • a distribution target confirmation unit for confirming whether or not the process generating the read request becomes a distribution target when the distribution function is activated;
  • a read request transfer unit for transmitting the read request to the hard disk when the process is determined to be a distribution target, so that the read request can be processed in the hard disk instead of the cache memory.
  • the activation control unit may monitor an average processing time of a request processed for a unit time in the cache memory, and activate the distribution function when the average processing time is equal to or more than a predetermined threshold time.
  • the threshold time may be equal to or longer than the lowest processing time measured when the bandwidth according to the throughput of the request processed for the unit time in the cache memory approaches a predetermined maximum bandwidth.
  • the activation controller in the state that the distribution function is activated, the bandwidth of the cache memory is smaller than the maximum bandwidth by a predetermined size or more, or the total bandwidth of the hard disk and cache memory is activated the distribution function. If less than immediately before, the dispensing function can be deactivated.
  • the activation control unit may differently define the threshold number of processes that can be set as the distribution target according to the degree that the average processing time is greater than or equal to the threshold time.
  • the distribution target confirmation unit may check whether the process becomes a distribution target, based on the distribution target list in which the information of each process set as the distribution target is listed.
  • the information of the process listed in the distribution target list includes a process delimiter and a request time of the last read request occurring in the process, and the distribution target list is the most in a state where a predetermined threshold number of process information is listed.
  • the information of the process including the old request time has a sequence structure in which the tail is located, and may be updated to reflect the confirmation result of the distribution target confirmation unit.
  • the distribution target confirmation unit when the information of the process exists in the distribution target list, confirms that the process is a distribution target, and in the distribution target list, information of the process existing in the distribution target list. Is deleted, and information of each process located from the head of the distribution target list to just before the information of the deleted process is moved, and the information of the process including the request time of the read request is updated to be located at the head. Can be.
  • the distribution target confirmation unit confirms that the process is a distribution target when the number of processes set as the distribution target is less than the threshold number.
  • the information of each process located from the head of the distribution target list is moved, the information of the process including the request time of the read request may be updated to be located at the head.
  • the distribution target confirmation unit if the number of processes set as the distribution target is not less than the threshold number, is added to the tail of the distribution target list. By checking whether the information of the located process can be deleted, it can be confirmed that the process is to be distributed only when it is deleted.
  • the distribution target list when the request time included in the process information located in the tail of the distribution target list has passed a predefined list holding time, the process information located in the tail is deleted, and the distribution target After the information of each process located from the head of the list is moved, the information of the process including the request time of the read request may be updated to be located at the head.
  • An operating method of a memory control apparatus may include: an activation control step of activating a distribution function according to a state of a cache memory when a read request for cache hit data existing in a hard disk and a cache memory is confirmed; A distribution target confirmation step of confirming whether or not the process that generated the read request becomes a distribution target when the distribution function is activated; And a read request delivery step of transmitting the read request to the hard disk when the process is determined to be a distribution target, so that the read request can be processed in the hard disk instead of the cache memory.
  • the distribution target confirmation step may determine whether the process becomes a distribution target, based on the distribution target list in which the information of each process set as the distribution target is listed.
  • the information of the process listed in the distribution target list includes a process delimiter and a request time of the last read request occurring in the process, and the distribution target list is the most in a state where a predetermined threshold number of process information is listed.
  • the information of the process including the old request time has a sequence structure in which the tail is located, and can be updated to reflect the result of confirming the distribution target expansion step.
  • the distribution target confirmation step when the information of the process exists in the distribution target list, it may be confirmed that the process is a distribution target.
  • the distribution target confirmation step when the information of the process does not exist in the distribution target list, if the number of processes set as the distribution target is less than the threshold number, the process is identified as the distribution target, and the distribution target If the number of processes set as is not less than the threshold number, it is possible to check whether information of a process located in a tail of the distribution target list can be deleted, and confirm that the process is to be distributed only when it is deleted.
  • the effect of maximizing the throughput of the entire storage device is derived.
  • FIG. 1 is a block diagram schematically illustrating a configuration of a memory system including a memory control apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram specifically illustrating a memory control apparatus according to an embodiment of the present invention.
  • Figure 3 is an illustration showing a distribution target list according to an embodiment of the present invention.
  • FIG. 4 is an operation flowchart illustrating a method of operating a memory control apparatus according to an embodiment of the present invention.
  • the memory system includes a hard disk 20 and a cache memory 10 as storage devices.
  • the memory system also includes a file system 200 that attempts a memory operation to the storage device, and a memory control device 100 that controls the storage device between the file system 200 and the storage device.
  • the memory control device 100 of the present invention may be a control device dedicated to the cache memory 10 capable of interworking with a control device (not shown) dedicated to the hard disk 20 controlling the hard disk 20.
  • the controller may control both the cache memory 10 and the hard disk 20.
  • the memory controller 100 of the present invention may operate at the block hierarchy level of the operating system. This means that the input / output form of the process controlled by the memory controller 100 depends on the data structure used in the block layer, and the form includes the size of input / output (in sector units) and input / output. It may include a logical sector address of the I / O and an input / output type (read / write).
  • the input / output form at the block hierarchy level that is, the structure of the read / write request that occurs in the file system 200, specifically, the process in the file system 200, follows the data structure of bio .
  • the memory control apparatus 100 of the present invention located in the block hierarchy of the operating system may control a read request (bio structure) generated in a process in the file system 200, specifically, the file system 200.
  • the cache memory 10 used as a cache device may be a NAND flash memory.
  • the cache memory 10 may be a solid state drive (SSD), which is a type of NAND flash memory.
  • SSD solid state drive
  • the cache memory 10 and the SSD 10 will be used interchangeably.
  • the SSD 10 in order to construct a high efficiency system at a low price, the SSD is used as a cache device of a hard disk rather than as a single storage device.
  • cache hit data data (cache hit data) from the SSD 10, that is, the cache memory 10
  • the cache hit data is read only from the cache memory 10, and the hard disk 20 operates during this time. You will not.
  • the hard disk 20 is kept in a waiting state for a considerably long time when a large amount of cache hit data is read from the cache memory 10, Since the standby hard disk 20 is not utilized, it may be inefficient in terms of throughput of a storage device.
  • the cache hit data can be read not only from the cache memory 10 but also from the hard disk 20, and a method of maximizing throughput of the entire storage device is proposed.
  • the memory control apparatus 100 determines that a read request for cache hit data existing in the hard disk 20 and the cache memory 10 is confirmed, the memory control apparatus 100 according to the state of the cache memory 10 is determined.
  • Activation control unit 110 for activating the distribution function, when the distribution function is activated, the distribution target confirmation unit 120 for confirming whether or not the process that generated the read request is the distribution target, and when the process is confirmed to be the distribution target
  • the read request transfer unit 140 transmits the read request to the hard disk 20 so that the read request can be processed by the hard disk 20 instead of the cache memory 10.
  • the cache memory 10 may be a solid state drive (SSD), which is a type of NAND flash memory, as mentioned in the description with reference to FIG. 1.
  • SSD solid state drive
  • the cache memory 10 and the SSD 10 will be used interchangeably.
  • the activation controller 110 activates the distribution function according to the state of the cache memory 10 when the read request for the cache hit data existing in the hard disk 20 and the cache memory 10 is confirmed.
  • the activation control unit 110 the file system 200, specifically, the memory control device 100 of the present invention in which a read request generated in a process in the file system 200 is located in the block hierarchy of the operating system
  • the first check is whether the read request is a read request for cache hit data.
  • the memory control apparatus 100 of the present invention transfers the current read request to the hard disk 20, and then the hard disk 20. Will allow the read request to be processed.
  • the activation control unit 110 activates the distribution function according to the state of the cache memory 10.
  • cache hit data data can be guaranteed that both the hard disk and the cache memory exist according to the write-through policy, but data exists in both the hard disk and the cache memory according to the write back or write-around policy. I can't guarantee that.
  • the activation controller 110 checks whether the cache hit data read from the index inside the cache memory 10 exists in the hard disk, and if not, the cache Only the memory 10 can transmit the read request this time.
  • the activation control unit 110 checks whether the cache hit data read this time from the index inside the cache memory 10 exists in the hard disk.
  • the distribution function can be activated according to the state of (10).
  • the cache hit data described below means data that is guaranteed or confirmed to exist in both the cache memory 10 and the hard disk 20.
  • the distribution function when the read request for the cache hit data is confirmed, if the state of the cache memory 10 is in a congested state, the distribution function is automatically activated.
  • the activation controller 110 monitors an average processing time of a request processed in the cache memory 10 for a unit time, and activates a distribution function when the average processing time is equal to or greater than a predetermined threshold time. You can.
  • the activation control unit 110 monitors the average processing time of requests (eg, read / write requests) that are processed for a unit time (eg, 1 second) in the cache memory 10.
  • the activation controller 110 calculates an average time obtained by averaging the processing time (await time) of each request (eg, a read / write request) that is processed for a unit time (eg, 1 second) in the cache memory 10. To watch.
  • the await time is a request (eg, read / write request) is transferred to the cache memory 10, and the request (eg, read / write request) is finally performed in the cache memory 10. It means the time difference of the viewpoint.
  • the activation control unit 110 may activate the distribution function when the average processing time monitored in units of unit time (for example, 1 second) is equal to or greater than the threshold time (await threshold value).
  • the threshold time (await threshold value) is used when the bandwidth according to the throughput of the request (eg, read / write request) processed in the cache memory 10 for a unit time (eg, 1 second) is close to the predetermined maximum bandwidth. It can be defined as the same or longer time than the lowest processing time (lowest await value) measured.
  • the bandwidth according to the throughput of the request (e.g., read / write request) processed for the most recent unit time (e.g., 1 second) in the cache memory 10 is close to the maximum bandwidth (e.g., Find the lowest processing time (lowest await value) for the maximum bandwidth ⁇ 5%) and define this minimum processing time (lowest await value) as the threshold time (await threshold), or exceed this minimum processing time (lowest await value).
  • An await value larger than a certain size may be defined as a threshold time (await threshold value).
  • the threshold time (await threshold value) can be defined in the cache memory 10 in unit time (for example, 1 second) in the same manner as described above, and thus, unit time (for example, 1 second).
  • the threshold time (await threshold) defined in units will naturally be maintained (defined) as a certain time elapses.
  • the activation control unit 110 if the average processing time monitored in units of unit time (for example, 1 second) is equal to or greater than the threshold time (await threshold value) defined in the same manner as described above, the state of the cache memory 10 ( Throughput is considered to be near the maximum bandwidth, or congestion, and automatically activates the distribution function.
  • the threshold time await threshold value
  • the activation control unit 110 when activating the distribution function, the average processing time of the request (for example, read / write request) that is processed for a unit time (for example, 1 second) in the cache memory 10 is the threshold time (A threshold number of processes that can be set as a distribution target can be defined differently depending on the degree of the await threshold value).
  • the activation controller 110 may define the threshold number as a larger number as the average processing time is greater than or equal to the threshold time (await threshold value), and as the degree becomes smaller, according to a predetermined policy.
  • the threshold number can be defined differently.
  • the activation control unit 110 while the distribution function is activated, the request (eg, read) that is processed for the bandwidth of the cache memory 10, that is, the most recent unit time (eg 1 second) in the cache memory 10 / Writing request) can automatically disable the distribution function when the bandwidth according to the throughput of the write request is smaller than a predetermined maximum size.
  • the activation controller 110 may automatically deactivate the distribution function when the total bandwidth of the hard disk 20 and the cache memory 10 is smaller than immediately before the distribution function is activated while the distribution function is activated. have.
  • the bandwidth and the cache memory 10 according to the throughput of the request that are processed during the most recent unit time (eg, 1 second) in the hard disk 20 while the distribution function is activated. If the total bandwidth of the combined bandwidth according to the throughput of the request (eg read / write request) processed during the most recent unit time (eg 1 second) is less than the total bandwidth just before the distribution function is activated, the secretion function This is due to the reduced throughput of the entire storage due to activation.
  • the activation control unit 110 when the distribution function is activated, when the total bandwidth of the hard disk 20 and the cache memory 10 is less than immediately before the distribution function is activated, the previously defined threshold time (await threshold) By gradually increasing the value), the distribution function deactivation may be realized in such a manner that the situation becomes insufficient to activate the distribution function.
  • the distribution target confirmation unit 120 confirms whether or not the process that generated the read request is the distribution target.
  • the distribution target confirmation unit 120 may check whether the process that has issued the read request is the distribution target based on the distribution target list in which the information of each process set as the distribution target is listed.
  • the memory control apparatus 100 of the present invention may manage the distribution target list 130 having a structure in which information of each process set as a distribution target is listed.
  • the distribution target confirmation unit 120 may check whether the process that has issued the read request is the distribution target, based on the distribution target list 130.
  • the distribution target list 130 has a structure in which information of each process set as a distribution target is listed.
  • the information of the process listed in the distribution target list 130 is a form including a process delimiter and the request time of the last read request generated in the process.
  • the distribution target list 130 the information of the process including the most recent request time is located in the head (head), and includes the oldest request time in a state where the predetermined threshold number of process information is listed
  • Information of a process may have a list structure in which a tail is located.
  • the distribution target list 130 may be updated by reflecting the verification result of the distribution target confirmation unit 120.
  • the distribution target list 130 may have a structure in which N process information may be arranged.
  • N number may be a threshold number defined by the above-described activation control unit 110.
  • the distribution target list 130 may list a total of N process information from the head to the tail.
  • the process information listed in the distribution target list 130 includes a process identifier (PID) and a request time of the last read request generated in the process.
  • PID process identifier
  • the information of the process including the latest request time is located at the head, and the information of the process including the oldest request time is listed when N process information is listed. It has a list structure located at the tail.
  • the last read request is best among the information of the processes listed in the distribution target list 130. It can be seen that the information of the recently generated process 1 is located, and in the tail of the distribution target list 130, the information of the process 7 which occurred the longest before the last read request is located among the information of the processes listed in the distribution target list 130. have.
  • the distribution target confirmation unit 120 includes information about a process for which the read request has occurred this time. Check if it exists.
  • the distribution target confirmation unit 120 if the information of the process that issued the read request is present in the distribution target list 130, it can confirm that the process is the distribution target.
  • the distribution target confirmation unit 120 confirms that the information of the process 3 that generated the current read request exists in the distribution target list 130, and the process You will see 3 as the distribution target.
  • the result of confirming the distribution target confirmation unit 120 that is, the result of confirming the process 3 present in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 to update the distribution target list 130.
  • the information of the process 3 existing in the distribution target list 130 is deleted, and each process positioned from the head of the distribution target list 130 to immediately before the information of the deleted process 3 is deleted.
  • the information i.e., the information of the processes 1 and 5 are moved (one by one)
  • the information of the process 3 including the request time of the read request will be updated to be located in the head.
  • the distribution target confirmation unit 120 does not exist in the distribution target list 130, the information of the process that issued the current read request, if the number of processes set as the distribution target is less than the threshold number to be the distribution target You can check it.
  • the distribution target confirmation unit 120 confirms that information of the process 11 that generated the current read request does not exist in the distribution target list 130. Check if the number of processes currently assigned for distribution is less than the threshold number.
  • the distribution target confirmation unit 120 will confirm that the process 11 is a distribution target.
  • the threshold number (N) since the number of information of the processes listed in the distribution target list 130 is smaller than N, at least a tail portion of the distribution target list 130. Will be empty.
  • the result of confirming the distribution target confirmation unit 120 that is, the result of confirming the process 11 that does not exist in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 and the distribution target list 130 is updated. Will be.
  • the information of each process located from the head of the distribution target list 130 that is, the information of the processes 1, 5, 3 ... is moved (one after the other) and then read this time.
  • the process 11 information, including the request time of the request, will be updated to be located at the head.
  • the distribution target confirmation unit 120 when the distribution target confirmation unit 120 does not exist in the distribution target list 130, the information of the process that issued the read request, the distribution target if the number of processes set as the distribution target is less than the threshold number (N) It is checked whether information of a process located in the tail of the list 130 can be deleted.
  • the distribution target confirmation unit 120 will confirm the process 11 as the distribution target only when the information of the process located in the tail of the distribution target list 130 is deleted.
  • the distribution target list 130 may be in a full state in which the number of information of the listed processes is N up to the tail.
  • a request time 7 including process 7 information located in a tail of the distribution target list 130 is predefined. If the retention time has elapsed, the information of Process 7 located in the tail may be deleted.
  • the distribution target confirmation unit 120 will confirm that the process 11 is the distribution target.
  • the result of confirming the distribution target confirmation unit 120 that is, the result of confirming the process 11 that does not exist in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 and the distribution target list 130 is updated. Will be.
  • the information of each process located from the head of the distribution target list 130 that is, the information of the processes 1, 5, 3 ... is moved (one after the other) and then read this time.
  • the process 11 information, including the request time of the request, will be updated to be located at the head.
  • the distribution target list 130 through the management method updated by reflecting the confirmation result of the distribution target confirmation unit 120, which processes are the distribution target processes (up to N), and the distribution target It keeps track of when the request time for the last read request occurred.
  • the read request transfer unit 140 transmits the read request to the hard disk 20.
  • the read request transfer unit 140 transfers the read request generated by the distribution target processor to the hard disk 20 so that the read request can be processed by the hard disk 20 instead of the cache memory 10. .
  • the read request transfer unit 140 if it is determined that the process that generated the read request for the cache hit data by the distribution target confirmation unit 120 is not the distribution target, the read request is returned to the cache memory 10 as it was. To pass.
  • the read request transfer unit 140 transfers the read request generated by the process other than the distribution target processor to the cache memory 10 as it is, so that the cache memory 10 can process the read request.
  • the read request can be processed not only in the cache memory 10 but also in the hard disk 20. By distributing the distribution to ensure that the throughput of the entire storage is maximized.
  • FIG. 4 For convenience of description, reference will be made to the reference numerals of FIGS. 1 to 3.
  • the operation method of the memory control device 100, the file system 200, specifically, the read request generated in the process in the file system 200 is received by the memory control device 100 of the present invention located in the block hierarchy of the operating system If (delivery) (S100), first check whether the read request is a read request for the cache hit data (S110).
  • the current read request is not a read request for the cache hit data (S110 No)
  • the current read request is transferred to the hard disk 20 (S160), and the hard disk ( 20) will allow the read request to be processed.
  • the distribution function is activated according to the state of the cache memory 10 (S120).
  • the operating method of the memory control device 100 by monitoring the average processing time of the request (for example, read / write request) that is processed for a unit time (for example, 1 second) in the cache memory 10, If the processing time is greater than or equal to the threshold time (await threshold value), it is assumed that the state (throughput) of the cache memory 10 is close to the maximum bandwidth, that is, the congestion state, and the distribution function is automatically activated (S120 Yes).
  • the threshold time await threshold value
  • the operation method of the memory control apparatus 100 if the average processing time monitored in units of unit time (for example, 1 second) is not greater than or equal to the threshold time (await threshold value), the state of the cache memory 10 (throughput) Will not be congested and will disable the dispensing function (S120 No).
  • the distribution function is inactive (S120 No)
  • the current read request is transferred to the cache memory 10 (S220)
  • the read request from the cache memory 10 Will be able to handle it.
  • the operation method of the memory control device 100 checks whether the information of the process that has issued the read request exists in the distribution target list 130 (S130).
  • process 3 For example, assuming that the process that generated the read request is Process 3, the operation method of the memory controller 100 confirms that the information of the process 3 that generated the read request exists in the distribution target list 130. As a result, process 3 will be identified as being distributed.
  • step S140 that is, the result of confirming the process 3 present in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 and the distribution target list 130 will be updated (S150).
  • the information of the process 3 existing in the distribution target list 130 is deleted, and each process positioned from the head of the distribution target list 130 to immediately before the information of the deleted process 3 is deleted.
  • the information i.e., the information of the processes 1 and 5 are moved (one by one)
  • the information of the process 3 including the request time of the current read request will be updated to be located at the head (S150).
  • the operating method of the memory control apparatus 100 may transmit the read request to the hard disk 20 (S160), so that the read request may be processed by the hard disk 20.
  • the operation method of the memory control device 100 when the information of the process that caused the read request does not exist in the distribution target list (130) (S130 No), the threshold number of the process set as the distribution target is predefined Check whether it is less than the number (N) (S170).
  • the operation method of the memory controller 100 confirms that the information of the process 11 that generated the read request does not exist in the distribution target list 130. Then, it is checked whether the number of processes set to be distributed so far is less than the threshold number N.
  • the operation method of the memory control apparatus 100 will confirm that the process 11 is to be distributed (S180).
  • the threshold number (N) since the number of information of the processes listed in the distribution target list 130 is smaller than N, at least a tail portion of the distribution target list 130. Will be empty.
  • step S180 that is, the result of checking the process 11 that does not exist in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 and the distribution target list 130 will be updated (S190). .
  • the information of each process located from the head of the distribution target list 130 that is, the information of the processes 1, 5, 3 ... is moved (one after the other) and then read this time.
  • Information of the process 11 including the request time of the request will be updated to be located in the head (S190).
  • the operating method of the memory control apparatus 100 may transmit the read request to the hard disk 20 (S160), so that the read request may be processed by the hard disk 20.
  • the operation method of the memory control device 100 if the number of processes set to be distributed in step S170 is less than the threshold number (N) (S170 No), the information of the process located in the tail of the distribution target list 130 Check if can be deleted.
  • the distribution target list 130 may be in a full state in which the number of information of the listed processes is N up to the tail.
  • a request time 7 including process 7 information located in a tail of the distribution target list 130 is predefined. If the maintenance time has passed (S200 Yes), the information of the process 7 located in the tail may be deleted (S210).
  • step S180 that is, the result of checking the process 11 that does not exist in the distribution target list 130 as the distribution target, is reflected in the distribution target list 130 and the distribution target list 130 will be updated (S190). .
  • the information of each process located from the head of the distribution target list 130 that is, the information of the processes 1, 5, 3 ... is moved (one after the other) and then read this time.
  • Information of the process 11 including the request time of the request will be updated to be located in the head (S190).
  • the operating method of the memory control apparatus 100 may transmit the read request to the hard disk 20 (S160), so that the read request may be processed by the hard disk 20.
  • the read request is transferred to the cache memory 10.
  • the throughput of the entire storage device can be maximized.
  • An operating method of a memory control apparatus may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Magneto-optical media and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은, 캐시 적중 데이터에 대한 읽기요청을 캐시메모리 뿐 아니라 하드디스크에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법을 제안한다.

Description

메모리제어장치 및 메모리제어장치의 동작 방법
본 발명은, 캐시 적중 데이터에 대한 읽기요청을 캐시메모리 뿐 아니라 하드디스크에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법에 관한 것이다.
SSD(Solid State Disk)는 성능 측면에서 하드디스크 대비 우월한 장점이 있다. 하지만, SSD는 가격대비 용량 및 수명 측면에서 하드디스크 보다 비효율적인 단점이 있다.
이러한 SSD의 하드디스크 대비 장/단점 때문에, 메모리 시스템에서는, 낮은 가격으로 고효율 시스템을 구축하기 위해, SSD를 단일 저장장치로 사용하기 보다는 하드디스크의 캐시 디바이스로 사용하고 있다.
즉, 메모리 시스템에서는, SSD를 캐시 디바이스(이하, SSD 기반 캐시메모리)로 사용하여, 빈번하게 사용되는 데이터는 SSD 기반 캐시메모리에 적재하고 상대적으로 덜 빈번하게 사용되는 데이터는 하드디스크에 적재함으로써, 하드디스크를 단일 저장장치로 사용했을 때의 느린 성능 문제, SSD를 단일 저장장치로 사용했을 때의 높은 가격 및 제한된 수명 문제를 적절하게 완화하고 있다.
따라서, SSD 기반 캐시메모리를 채택하는 메모리 시스템에서는 빈번하게 접근(사용)되는 데이터를 SSD 기반 캐시메모리에 적재하는 것이, 시스템 성능 면에서 유리할 것이다.
한편, 메모리 시스템에서는, 캐시메모리의 특성상, 작은 크기의 데이터를 읽어오는 환경에서는 큰 문제가 없지만, 빅데이터 플랫폼과 같은 환경에서 대량의 데이터를 읽어오는 경우 비효율적인 부분이 존재한다.
구체적으로 설명하면, 캐시메모리로부터 데이터(캐시 적중 데이터)를 읽어오는 경우, 캐시메모리로부터만 캐시 적중 데이터를 읽어오게 되고 그 동안 하드디스크는 동작하지 않게 된다.
따라서, 캐시메모리로부터 대용량의 캐시 적중 데이터를 읽어오게 되는 경우, 하드디스크는 대용량의 캐시 적중 데이터가 캐시메모리로부터 읽어지는 상당히 긴 시간 동안 계속 대기상태로 있게 되고, 대기상태의 하드디스크가 활용되지 못하기 때문에 저장장치의 처리량(Throughput) 측면에서 비효율적이라 할 수 있다.
이에, 본 발명에서는, 캐시 적중 데이터를 캐시메모리 뿐 아니라 하드디스크에서 읽어올 수 있도록 하여, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 방안을 제안하고자 한다.
본 발명에서 도달하고자 하는 목적은, 캐시 적중 데이터에 대한 읽기요청을 캐시메모리 뿐 아니라 하드디스크에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 메모리제어장치는, 하드디스크 및 캐시메모리에 존재하는 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리의 상태에 따라서 분배 기능을 활성화시키는 활성화제어부; 상기 분배 기능이 활성화되면, 상기 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 분배대상확인부; 및 상기 프로세스가 분배 대상인 것으로 확인되면 상기 읽기요청을 상기 하드디스크로 전달하여, 상기 캐시메모리 대신 상기 하드디스크에서 상기 읽기요청을 처리할 수 있게 하는 읽기요청전달부를 포함한다.
구체적으로는, 상기 활성화제어부는, 상기 캐시메모리에서 단위시간 동안 처리되는 요청의 평균 처리시간을 감시하여, 상기 평균 처리시간이 기 정의된 임계시간 이상이면, 상기 분배 기능을 활성화시킬 수 있다.
구체적으로는, 상기 임계시간은, 상기 캐시메모리에서 단위시간 동안 처리되는 요청의 처리량에 따른 대역폭이 기 정해진 최대 대역폭에 근접한 때에 측정되는 최저 처리시간과 동일하거나 긴 시간일 수 있다.
구체적으로는, 상기 활성화제어부는, 상기 분배 기능이 활성화된 상태에서, 상기 캐시메모리의 대역폭이 상기 최대 대역폭 보다 일정 크기 이상 작아지거나 또는 상기 하드디스크 및 캐시메모리의 총 대역폭이 상기 분배 기능이 활성화되기 직전 보다 작은 경우, 상기 분배 기능을 비활성화시킬 수 있다.
구체적으로는, 상기 활성화제어부는, 상기 분배 기능을 활성화시키는 경우, 상기 평균 처리시간이 상기 임계시간 이상인 정도에 따라 분배 대상으로 설정 가능한 프로세스의 임계개수를 상이하게 정의할 수 있다.
구체적으로는, 상기 분배대상확인부는, 분배 대상으로 설정된 각 프로세스의 정보가 나열된 분배대상리스트에 기초하여, 상기 프로세스가 분배 대상이 되는지 여부를 확인할 수 있다.
구체적으로는, 상기 분배대상리스트에 나열된 프로세스의 정보는, 프로세스 구분자 및 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하며, 상기 분배대상리스트는, 기 정의된 임계개수의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가지며, 상기 분배대상확인부의 확인 결과를 반영하여 갱신될 수 있다.
구체적으로는, 상기 분배대상확인부는, 상기 프로세스의 정보가 상기 분배대상리스트에 존재하는 경우, 상기 프로세스를 분배 대상인 것으로 확인하며, 상기 분배대상리스트에서는, 상기 분배대상리스트에 존재하던 상기 프로세스의 정보가 삭제되고, 상기 분배대상리스트의 헤드부터 삭제된 상기 프로세스의 정보 직전까지 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신될 수 있다.
구체적으로는, 상기 분배대상확인부는, 상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이면 상기 프로세스를 분배 대상인 것으로 확인하며, 상기 분배대상리스트에서는, 상기 분배대상리스트의 헤드부터 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신될 수 있다.
구체적으로는, 상기 분배대상확인부는, 상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이 아니면, 상기 분배대상리스트의 테일(tail)에 위치한 프로세스의 정보가 삭제 가능한지 확인하여, 삭제되는 경우에만 상기 프로세스를 분배 대상인 것으로 확인할 수 있다.
구체적으로는, 상기 분배대상리스트에서는, 상기 분배대상리스트의 테일에 위치한 프로세스 정보가 포함하고 있는 요청시간이 기 정의된 리스트유지시간을 경과한 경우 상기 테일에 위치한 프로세스 정보가 삭제되고, 상기 분배대상리스트의 헤드부터 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신될 수 있다.
본 발명의 일 실시예에 따른 메모리제어장치의 동작 방법은, 하드디스크 및 캐시메모리에 존재하는 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리의 상태에 따라서 분배 기능을 활성화시키는 활성화제어단계; 상기 분배 기능이 활성화되면, 상기 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 분배대상확인단계; 및 상기 프로세스가 분배 대상인 것으로 확인되면 상기 읽기요청을 상기 하드디스크로 전달하여, 상기 캐시메모리 대신 상기 하드디스크에서 상기 읽기요청을 처리할 수 있게 하는 읽기요청전달단계를 포함한다.
구체적으로는, 상기 분배대상확인단계는, 분배 대상으로 설정된 각 프로세스의 정보가 나열된 분배대상리스트에 기초하여, 상기 프로세스가 분배 대상이 되는지 여부를 확인할 수 있다.
구체적으로는, 상기 분배대상리스트에 나열된 프로세스의 정보는, 프로세스 구분자 및 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하며, 상기 분배대상리스트는, 기 정의된 임계개수의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가지며, 상기 분배대상확단계의 확인 결과를 반영하여 갱신될 수 있다.
구체적으로는, 상기 분배대상확인단계는, 상기 프로세스의 정보가 상기 분배대상리스트에 존재하는 경우 상기 프로세스를 분배 대상인 것으로 확인할 수 있다.
구체적으로는, 상기 분배대상확인단계는, 상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이면 상기 프로세스를 분배 대상인 것으로 확인하고, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이 아니면 상기 분배대상리스트의 테일(tail)에 위치한 프로세스의 정보가 삭제 가능한지 확인하여, 삭제되는 경우에만 상기 프로세스를 분배 대상인 것으로 확인할 수 있다.
본 발명에 따르면, 캐시 적중 데이터에 대한 읽기요청을 캐시메모리 뿐 아니라 하드디스크에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 효과를 도출한다.
도 1은 본 발명의 일 실시예에 따른 메모리제어장치가 포함된 메모리시스템의 구성을 간략하게 보여주는 구성도이다.
도 2는 본 발명의 일 실시예에 따른 메모리제어장치를 구체적으로 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 분배대상리스트를 보여주는 예시이다.
도 4는 본 발명의 일 실시예에 따른 메모리제어장치의 동작 방법을 나타내는 동작 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
먼저, 도 1을 참조하여 본 발명의 일 실시예에 따른 메모리제어장치가 포함된 메모리시스템의 구성을 설명하겠다.
도 1에 도시된 바와 같이, 메모리시스템은, 하드디스크(20) 및 캐시메모리(10)를 저장장치로서 포함한다. 또한, 메모리시스템은, 저장장치로의 메모리연산을 시도하는 파일시스템(200)과, 파일시스템(200) 및 저장장치 사이에서 저장장치를 제어하는 메모리제어장치(100)를 포함한다.
이때, 본 발명의 메모리제어장치(100)는, 하드디스크(20)를 제어하는 하드디스크(20) 전용의 제어장치(미도시)와 연동이 가능한 캐시메모리(10) 전용의 제어장치일 수 있고, 캐시메모리(10) 및 하드디스크(20) 모두를 제어하는 제어장치일 수도 있다.
이러한 본 발명의 메모리제어장치(100)는, 운영체제의 블록 계층 수준에서 동작할 수 있다. 이는, 메모리제어장치(100)에 의해 제어되는 프로세스의 입/출력 형태가, 블록 계층에서 사용하는 자료구조에 따른다는 것을 의미하며, 그 형태는 입/출력의 크기(Sector 단위), 입/출력의 논리적 섹터 주소(Logical Sector Address), 입/출력의 형태(읽기/쓰기)를 포함할 수 있다.
도 1에서 알 수 있듯이, 블록 계층 수준에서의 입/출력 형태, 즉 파일시스템(200) 구체적으로는 파일시스템(200) 내 프로세스에서 발생하는 읽기/쓰기요청의 구조체는, bio라는 자료구조에 따른다.
따라서, 운영체제의 블록 계층에 위치하는 본 발명의 메모리제어장치(100)는, 파일시스템(200) 구체적으로는 파일시스템(200) 내 프로세스에서 발생하는 읽기요청(bio 구조체)을 제어할 수 있다.
그리고, 본 발명의 메모리제어장치(100)가 적용되는 도 1의 메모리시스템에서, 캐시 디바이스로서 사용하는 캐시메모리(10)는 낸드 플래시 메모리일 수 있다.
예를 들면, 캐시메모리(10)는, 낸드 플래시 메모리의 일종인 SSD(Solid State Drive)일 수 있다. 이하에서는 설명의 편의를 위해, 캐시메모리(10)와 SSD(10)를 혼용하여 사용하도록 하겠다.
이와 같이, SSD(10)를 캐시 디바이스로서 사용하는 메모리시스템에서는, 낮은 가격으로 고효율 시스템을 구축하기 위해, SSD를 단일 저장장치로 사용하기 보다는 하드디스크의 캐시 디바이스로 사용하고 있다.
이와 같이, SSD(10)를 캐시 디바이스로서 사용하는 메모리시스템에서는, 비교적 작은 SSD(10)를 캐시 디바이스로 사용해 낮은 가격으로 고효율적인 시스템을 구축하기 위해서, 빈번하게 사용되는 데이터는 SSD(10)에 적재하고 상대적으로 덜 빈번하게 사용되는 데이터는 하드디스크(20)에 적재함으로써, 하드디스크(20)를 단일 저장장치로 사용했을 때의 느린 성능 문제, SSD(10)를 단일 저장장치로 사용했을 때의 높은 가격 및 제한된 수명 문제를 적절하게 완화하고 있다.
따라서, 메모리시스템에서는 빈번하게 접근(사용)되는 데이터를 SSD(10)에 적재하는 것이, 시스템 성능 면에서 유리할 것이다.
한편, 메모리시스템에서는, 캐시메모리의 특성상, 작은 크기의 데이터를 읽어오는 환경에서는 큰 문제가 없지만, 빅데이터 플랫폼과 같은 환경에서 대량의 데이터를 읽어오는 경우 비효율적인 부분이 존재한다.
구체적으로 설명하면, SSD(10) 즉 캐시메모리(10)로부터 데이터(캐시 적중 데이터)를 읽어오는 경우, 캐시메모리(10)로부터만 캐시 적중 데이터를 읽어오게 되고 그 동안 하드디스크(20)는 동작하지 않게 된다.
따라서, 캐시메모리(10)로부터 대용량의 캐시 적중 데이터를 읽어오게 되는 경우, 하드디스크(20)는 대용량의 캐시 적중 데이터가 캐시메모리(10)로부터 읽어지는 상당히 긴 시간 동안 계속 대기상태로 있게 되고, 대기상태의 하드디스크(20)가 활용되지 못하기 때문에 저장장치의 처리량(Throughput) 측면에서 비효율적이라 할 수 있다.
이에, 본 발명에서는, 캐시 적중 데이터를 캐시메모리(10) 뿐 아니라 하드디스크(20)에서 읽어올 수 있도록 하여, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있는 방안을 제안하고자 한다.
이하에서는, 도 2를 참조하여 본 발명의 일 실시예에 따른 메모리제어장치를 구체적으로 설명하도록 한다.
본 발명의 일 실시예에 따른 메모리제어장치(100)는, 하드디스크(20) 및 캐시메모리(10)에 존재하는 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리(10)의 상태에 따라서 분배 기능을 활성화시키는 활성화제어부(110)와, 분배 기능이 활성화되면, 상기 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 분배대상확인부(120)와, 상기 프로세스가 분배 대상인 것으로 확인되면 상기 읽기요청을 하드디스크(20)로 전달하여, 캐시메모리(10) 대신 하드디스크(20)에서 상기 읽기요청을 처리할 수 있게 하는 읽기요청전달부(140)를 포함한다.
여기서 캐시메모리(10)는, 도 1을 참조한 설명에서 언급한 바와 같이, 낸드 플래시 메모리의 일종인 SSD(Solid State Drive)일 수 있다. 이하에서는 설명의 편의를 위해, 캐시메모리(10)와 SSD(10)를 혼용하여 사용하도록 하겠다.
활성화제어부(110)는, 하드디스크(20) 및 캐시메모리(10)에 존재하는 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리(10)의 상태에 따라서 분배 기능을 활성화시킨다.
보다 구체적으로 설명하면, 활성화제어부(110)는, 파일시스템(200) 구체적으로는 파일시스템(200) 내 프로세스에서 발생하는 읽기요청이 운용체제의 블록 계층에 위치한 본 발명의 메모리제어장치(100)로 수신(전달)되면, 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청인지 여부를 먼저 확인한다.
여기서, 캐시 적중 데이터에 대한 읽기요청인지 여부를 확인하는 것은, 기존의 확인 방식에 따르며, 이에 대한 구체적인 설명은 생략하도록 하겠다.
활성화제어부(110)에서 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청이 아니라고 확인되면, 본 발명의 메모리제어장치(100)는 금번 읽기요청을 하드디스크(20)로 전달하여, 하드디스크(20)에서 읽기요청을 처리할 수 있게 할 것이다.
한편, 활성화제어부(110)는, 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청으로 확인되면, 캐시메모리(10)의 상태에 따라서 분배 기능을 활성화시킨다.
이때, 캐시 적중 데이터의 경우는, Write-through 정책에 따른다면 데이터가 하드디스크와 캐시메모리 모두 존재한다고 보장할 수 있지만, Write back이나 Write-around 정책에 따른다면 데이터가 하드디스크와 캐시메모리 모두 존재한다고 보장할 수 없다.
따라서, 활성화제어부(110)는, 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리(10) 내부의 인덱스에서 금번 읽기요청된 캐시 적중 데이터가 하드디스크에 존재하는지 확인하여, 존재하지 않을 경우 캐시메모리(10)로만 금번 읽기요청을 전달할 수 있다.
한편, 활성화제어부(110)는, 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리(10) 내부의 인덱스에서 금번 읽기요청된 캐시 적중 데이터가 하드디스크에 존재하는지 확인하여, 존재하는 경우 캐시메모리(10)의 상태에 따라서 분배 기능을 활성화시킬 수 있다.
따라서, 이하에서 설명하는 캐시 적중 데이터는, 캐시메모리(10) 및 하드디스크(20) 모두에 존재하는 것이 보장되거나 확인된 데이터를 의미한다.
즉, 본 발명에서는, 캐시 적중 데이터에 대한 읽기요청 확인 시, 캐시메모리(10)의 상태가 혼잡상태에 놓인 경우라면, 분배 기능을 자동으로 활성화시키는 것이다.
이에 대해 보다 구체적으로 설명하면, 활성화제어부(110)는, 캐시메모리(10)에서 단위시간 동안 처리되는 요청의 평균 처리시간을 감시하여, 평균 처리시간이 기 정의된 임계시간 이상이면 분배 기능을 활성화시킬 수 있다.
활성화제어부(110)는, 캐시메모리(10)에서 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 평균 처리시간을 감시한다.
즉, 활성화제어부(110)는, 캐시메모리(10)에서 단위시간(예: 1초) 동안 처리되는 각 요청(예: 읽기/쓰기요청)의 처리시간(await time)을 평균 연산한 평균시간을 감시하는 것이다.
이때, 처리시간(await time)이란, 요청(예: 읽기/쓰기요청)이 캐시메모리(10)에 전달되고, 해당 요청(예: 읽기/쓰기요청)이 캐시메모리(10)에서 최종적으로 수행 완료된 시점의 시간 차이를 의미한다.
이에, 활성화제어부(110)는, 단위시간(예: 1초) 단위로 감시한 평균 처리시간이 임계시간(await 임계값) 이상이면 분배 기능을 활성화시킬 수 있다.
여기서, 임계시간(await 임계값)은, 캐시메모리(10)에서 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 처리량에 따른 대역폭이 기 정해진 최대 대역폭에 근접한 때에 측정되는 최저 처리시간(최저 await값)과 동일하거나 긴 시간으로 정의될 수 있다.
이를 위해, 본 발명에서는, 캐시메모리(10)에서 가장 최근의 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 처리량에 따른 대역폭이 최대 대역폭에 근접한 때(예: 최대 대역폭 ±5%)에 최저 처리시간(최저 await값)을 찾아, 이 최저 처리시간(최저 await값)을 임계시간(await 임계값)으로 정의하거나, 또는 이 최저 처리시간(최저 await값) 보다 일정 크기 이상인 await값을 임계시간(await 임계값)으로 정의할 수 있다.
이에, 본 발명에서는, 전술과 같은 방식으로, 캐시메모리(10)에서 단위시간(예: 1초) 단위로 임계시간(await 임계값)을 정의할 수 있고, 이처럼 단위시간(예: 1초) 단위로 정의되는 임계시간(await 임계값)은 어느 정도의 시간이 경과하면서 자연스럽게 일정한 임계시간(await 임계값)으로 유지(정의)될 것이다.
따라서, 활성화제어부(110)는, 단위시간(예: 1초) 단위로 감시한 평균 처리시간이 전술과 같은 방식으로 정의된 임계시간(await 임계값) 이상이면, 캐시메모리(10)의 상태(처리량)가 최대 대역폭에 가까운 상태 즉 혼잡상태인 것으로 보고, 분배 기능을 자동으로 활성화시키는 것이다.
이때, 활성화제어부(110)는, 분배 기능을 활성화시키는 경우, 캐시메모리(10)에서 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 평균 처리시간이 임계시간(await 임계값) 이상인 정도에 따라 분배 대상으로 설정 가능한 프로세스의 임계개수를 상이하게 정의할 수 있다.
예컨대, 활성화제어부(110)는, 평균 처리시간이 임계시간(await 임계값) 이상인 정도가 클수록 임계개수를 큰 개수로 정의하고 그 정도가 작을수록 임계개수를 작은 개수로 정의하도록 기 설정된 정책에 따라서, 임계개수를 상이하게 정의할 수 있다.
한편, 활성화제어부(110)는, 분배 기능이 활성화된 상태에서, 캐시메모리(10)의 대역폭 즉 캐시메모리(10)에서 가장 최근의 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 처리량에 따른 대역폭이, 전술의 최대 대역폭 보다 일정 크기 이상 작아지면, 분배 기능을 자동으로 비활성화시킬 수 있다.
이는, 캐시메모리(10)의 대역폭이 최대 대역폭 보다 일정 크기 이상 작아지면, 캐시메모리(10)의 혼잡상태가 해소된 것으로 볼 수 있음에 기인한다.
또는, 활성화제어부(110)는, 분배 기능이 활성화된 상태에서, 하드디스크(20) 및 캐시메모리(10)의 총 대역폭이 분배 기능이 활성화되기 직전 보다 작은 경우, 분배 기능을 자동으로 비활성화시킬 수 있다.
이는, 분배 기능이 활성화된 상태에서, 하드디스크(20)에서 가장 최근의 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 처리량에 따른 대역폭과 캐시메모리(10)에서 가장 최근의 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 처리량에 따른 대역폭을 합한 총 대역폭이, 분배 기능이 활성화되기 직전의 총 대역폭 보다 작아지면, 분비 기능 활성화로 인해 오히려 전체 저장장치의 처리량(Throughput)이 감소한 것임에 기인한다.
이때, 활성화제어부(110)는, 분배 기능이 활성화된 상태에서, 하드디스크(20) 및 캐시메모리(10)의 총 대역폭이 분배 기능이 활성화되기 직전 보다 작은 경우, 앞서 정의된 임계시간(await 임계값)을 점진적으로 키움으로써, 분배 기능 활성화시키는데 불충분한 상황이 되도록 하는 방식으로 분배 기능 비활성화를 실현할 수도 있다.
분배대상확인부(120)는, 분배 기능이 활성화되면, 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인한다.
보다 구체적으로, 분배대상확인부(120)는, 분배 대상으로 설정된 각 프로세스의 정보가 나열된 분배대상리스트에 기초하여, 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인할 수 있다.
즉, 본 발명의 메모리제어장치(100)는, 분배 대상으로 설정된 각 프로세스의 정보가 나열된 구조의 분배대상리스트(130)를 관리할 수 있다.
이에, 분배대상확인부(120)는, 분배대상리스트(130)에 기초하여, 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인할 수 있다.
이하에서는, 분배대상리스트(130)에 대하여 구체적으로 설명하겠다.
분배대상리스트(130)는, 분배 대상으로 설정된 각 프로세스의 정보가 나열된 구조를 갖는다.
이때, 분배대상리스트(130)에 나열된 프로세스의 정보는, 프로세스 구분자 및 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하는 형태이다.
이에, 분배대상리스트(130)는, 가장 최근의 요청시간을 포함하고 있는 프로세스의 정보가 헤드(head)에 위치하고, 기 정의된 임계개수의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가질 수 있다.
그리고, 분배대상리스트(130)는, 분배대상확인부(120)의 확인 결과를 반영하여 갱신될 수 있다.
도 3을 참조하여 보다 구체적으로 설명하면, 분배대상리스트(130)는, N개의 프로세스 정보를 나열 가능한 구조일 수 있다. 여기서, N개는, 전술한 활성화제어부(110)에 의해 정의된 임계개수일 것이다.
즉, 분배대상리스트(130)는, 헤드(head)부터 테일(tail)까지, 총 N개의 프로세스 정보를 나열할 수 있다.
이때, 전술한 바와 같이, 분배대상리스트(130)에 나열된 프로세스의 정보는, 프로세스 구분자(PID: Process ID)와, 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하는 형태이다.
이에, 도 3을 참조하여 분배대상리스트(130)의 헤드에 위치한 프로세스의 정보를 언급하여 설명하면, 헤드에 위치한 프로세스1의 정보에는 프로세스1을 구분하기 위한 프로세스 구분자(PID1)과 프로세스1에서 발생한 마지막 읽기요청의 요청시간1이 포함된다.
이러한 분배대상리스트(130)는, 가장 최근의 요청시간을 포함하고 있는 프로세스의 정보가 헤드(head)에 위치하고, N개의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가진다.
따라서, 도 3과 같이 N개의 프로세스 정보가 나열된 상태의 분배대상리스트(130)를 가정하면, 분배대상리스트(130)의 헤드에는 분배대상리스트(130)에 나열된 프로세스의 정보 중에서 마지막 읽기요청을 가장 최근에 발생한 프로세스1의 정보가 위치하고, 분배대상리스트(130)의 테일에는 분배대상리스트(130)에 나열된 프로세스의 정보 중에서 마지막 읽기요청을 가장 오래 전에 발생한 프로세스7의 정보가 위치하게 되는 것을 알 수 있다.
설명의 편의를 위해, 메모리제어장치(100)의 관리(갱신)에 의해 도 3과 같은 분배대상리스트(130) 상태를 가정하여 설명하겠다.
이하에서는, 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 과정을 구체적으로 설명하겠다.
분배대상확인부(120)는, 전술한 바와 같이, 캐시 적중 데이터에 대한 읽기요청이 확인되고 캐시메모리(10)의 상태가 혼잡상태인 경우, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하는지 확인한다.
이에, 분배대상확인부(120)는, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하면, 해당 프로세스를 분배 대상인 것으로 확인할 수 있다.
예를 들어, 금번 읽기요청을 발생한 프로세스가 프로세스3이라고 가정하면, 분배대상확인부(120)는, 금번 읽기요청을 발생한 프로세스3의 정보가 분배대상리스트(130)에 존재하는 것을 확인하고, 프로세스3을 분배 대상인 것으로 확인할 것이다.
이때, 분배대상확인부(120)의 확인 결과 즉 분배대상리스트(130)에 존재하는 프로세스3을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다.
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)에 존재하던 프로세스3의 정보가 삭제되고, 분배대상리스트(130)의 헤드부터 삭제된 프로세스3의 정보 직전까지 위치하는 각 프로세스의 정보 즉 프로세스1,5의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스3의 정보가 헤드에 위치하도록 갱신될 것이다.
한편, 분배대상확인부(120)는, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 임계개수 미만이면 해당 프로세스를 분배 대상인 것으로 확인할 수 있다.
예를 들어, 금번 읽기요청을 발생한 프로세스가 프로세스11이라고 가정하면, 분배대상확인부(120)는, 금번 읽기요청을 발생한 프로세스11의 정보가 분배대상리스트(130)에 존재하지 않는 것을 확인하고, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수 미만인지 확인한다.
그리고, 분배대상확인부(120)는, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수 미만인 경우, 프로세스11을 분배 대상인 것으로 확인할 것이다.
여기서, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만인 경우라면, 분배대상리스트(130)에 나열된 프로세스의 정보 개수가 N개 보다 작은 경우이므로 분배대상리스트(130)에서 적어도 테일 부분은 비어 있을 것이다.
이때, 분배대상확인부(120)의 확인 결과 즉 분배대상리스트(130)에 존재하지 않는 프로세스11을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다.
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)의 헤드부터 위치하는 각 프로세스의 정보 즉 프로세스1,5,3...의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스11의 정보가 헤드에 위치하도록 갱신될 것이다.
한편, 분배대상확인부(120)는, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만이 아니면 분배대상리스트(130)의 테일에 위치한 프로세스의 정보가 삭제 가능한지 확인한다.
이에, 분배대상확인부(120)는, 분배대상리스트(130)의 테일에 위치한 프로세스의 정보가 삭제되는 경우에만, 프로세스11을 분배 대상인 것으로 확인할 것이다.
현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만이 아닌 경우라면, 분배대상리스트(130)는, 나열된 프로세스의 정보 개수가 N개로 테일까지 가득 차있는 풀(Full) 상태일 것이다.
이에, 분배대상리스트(130)에서는, 테일에 위치한 프로세스의 정보가 삭제 가능한지 확인이 시도됨에 따라, 분배대상리스트(130)의 테일에 위치한 프로세스7 정보가 포함하고 있는 요청시간7이 기 정의된 리스트유지시간을 경과한 경우 테일에 위치한 프로세스7의 정보가 삭제될 수 있다.
이는, 분배대상리스트(130)에서, 리스트유지시간 만큼 충분히 오래 전에 읽기요청을 발생한 분배 대상 프로세스의 정보를 삭제하고, 다른 새로운 프로세스를 분배 대상으로 설정하기 위함이다.
이에, 프로세스7 정보가 포함하고 있는 요청시간7이 리스트유지시간을 경과한 경우라면, 분배대상리스트(130)의 테일에서 프로세스7의 정보가 삭제될 것이다.
그리고, 분배대상확인부(120)는, 분배대상리스트(130)의 테일에 위치한 프로세스의 정보가 삭제되면, 프로세스11을 분배 대상인 것으로 확인할 것이다.
이때, 분배대상확인부(120)의 확인 결과 즉 분배대상리스트(130)에 존재하지 않는 프로세스11을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다.
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)의 헤드부터 위치하는 각 프로세스의 정보 즉 프로세스1,5,3...의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스11의 정보가 헤드에 위치하도록 갱신될 것이다.
전술한 바와 같이, 분배대상리스트(130)는, 분배대상확인부(120)의 확인 결과를 반영하여 갱신되는 관리 방식을 통해, 어떤 프로세스가 분배 대상 프로세스(최대 N개 까지)인지, 그리고 분배 대상 프로세스가 발생한 마지막 읽기요청의 요청시간이 언제인지를 최신으로 관리하게 된다.
읽기요청전달부(140)는, 분배대상확인부(120)에서 금번 캐시 적중 데이터에 대한 읽기요청을 발생한 프로세스가 분배 대상인 것으로 확인되면, 금번 읽기요청을 하드디스크(20)로 전달한다.
즉, 읽기요청전달부(140)는, 분배 대상 프로세서가 발생한 읽기요청에 대해서는 하드디스크(20)로 전달하여, 캐시메모리(10) 대신 하드디스크(20)에서 읽기요청을 처리할 수 있게 하는 것이다.
물론, 읽기요청전달부(140)는, 분배대상확인부(120)에서 금번 캐시 적중 데이터에 대한 읽기요청을 발생한 프로세스가 분배 대상이 아닌 것으로 확인되면, 금번 읽기요청을 원래대로 캐시메모리(10)로 전달한다.
즉, 읽기요청전달부(140)는, 분배 대상 프로세서가 아닌 프로세스가 발생한 읽기요청에 대해서는 원래대로 캐시메모리(10)로 전달하여, 캐시메모리(10)에서 읽기요청을 처리할 수 있게 하는 것이다.
이상에서 설명한 바와 같이, 본 발명에 따르면, 캐시 적중 데이터에 읽기요청을 무조건 캐시메모리(10)로 전달하는 기존과 달리, 읽기요청을 캐시메모리(10) 뿐 아니라 하드디스크(20)에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있다.
더욱이, 본 발명에 따르면, 읽기요청을 캐시메모리(10) 및 하드디스크(20)로 분배함에 있어서, 어떤 프로세스가 분배 대상 프로세스(최대 N개 까지)인지 및 분배 대상 프로세스가 발생한 마지막 읽기요청의 요청시간이 언제인지를 지속적으로 갱신하여 최신으로 관리하는 분배대상리스트를 활용하는 프로세스 단위의 분배 방식을 제안함으로써, 읽기요청의 분배로 인한 시스템 성능 하락을 최소화하면서 효율적으로 분배할 수 있다.
이하에서는, 도 4를 참조하여 본 발명의 일 실시예에 따른 메모리제어장치의 동작 방법을 설명하도록 하겠다. 설명의 편의를 위해서, 도 1 내지 도 3의 참조번호를 언급하여 설명하도록 하겠다.
메모리제어장치(100)의 동작 방법은, 파일시스템(200) 구체적으로는 파일시스템(200) 내 프로세스에서 발생하는 읽기요청이 운용체제의 블록 계층에 위치한 본 발명의 메모리제어장치(100)로 수신(전달)되면(S100), 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청인지 여부를 먼저 확인한다(S110).
메모리제어장치(100)의 동작 방법은, 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청이 아니라고 확인되면(S110 No), 금번 읽기요청을 하드디스크(20)로 전달하여(S160), 하드디스크(20)에서 읽기요청을 처리할 수 있게 할 것이다.
메모리제어장치(100)의 동작 방법은, 금번 읽기요청이 캐시 적중 데이터에 대한 읽기요청으로 확인되면(S110 Yes), 캐시메모리(10)의 상태에 따라서 분배 기능을 활성화시킨다(S120).
보다 구체적으로, 메모리제어장치(100)의 동작 방법은, 캐시메모리(10)에서 단위시간(예: 1초) 동안 처리되는 요청(예: 읽기/쓰기요청)의 평균 처리시간을 감시하여, 평균 처리시간이 임계시간(await 임계값) 이상이면, 캐시메모리(10)의 상태(처리량)가 최대 대역폭에 가까운 상태 즉 혼잡상태인 것으로 보고, 분배 기능을 자동으로 활성화시키는 것이다(S120 Yes).
한편, 메모리제어장치(100)의 동작 방법은, 단위시간(예: 1초) 단위로 감시한 평균 처리시간이 임계시간(await 임계값) 이상이 아니면, 캐시메모리(10)의 상태(처리량)가 혼잡상태가 아닌 것으로 보고, 분배 기능을 비활성화시킬 것이다(S120 No).
이에, 메모리제어장치(100)의 동작 방법은, 분배 기능이 비활성화된 상태에서(S120 No), 금번 읽기요청을 캐시메모리(10)로 전달하여(S220), 캐시메모리(10)에서 읽기요청을 처리할 수 있게 할 것이다.
한편, 메모리제어장치(100)의 동작 방법은, 분배 기능이 활성화된 상태에서(S120 Yes), 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인한다.
이하에서는, 금번 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 과정을 구체적으로 설명하겠다.
먼저, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하는지 확인한다(S130).
이에, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하면(S130 Yes), 해당 프로세스를 분배 대상인 것으로 확인할 수 있다(S140).
예를 들어, 금번 읽기요청을 발생한 프로세스가 프로세스3이라고 가정하면, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 발생한 프로세스3의 정보가 분배대상리스트(130)에 존재하는 것을 확인하고, 프로세스3을 분배 대상인 것으로 확인할 것이다.
이때, S140단계의 확인 결과 즉 분배대상리스트(130)에 존재하는 프로세스3을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다(S150).
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)에 존재하던 프로세스3의 정보가 삭제되고, 분배대상리스트(130)의 헤드부터 삭제된 프로세스3의 정보 직전까지 위치하는 각 프로세스의 정보 즉 프로세스1,5의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스3의 정보가 헤드에 위치하도록 갱신될 것이다(S150).
그리고, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 하드디스크(20)로 전달하여(S160), 하드디스크(20)에서 읽기요청을 처리할 수 있게 할 것이다.
한편, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 발생한 프로세스의 정보가 분배대상리스트(130)에 존재하지 않는 경우(S130 No), 분배 대상으로 설정된 프로세스의 개수가 기 정의된 임계개수(N) 미만인지 확인한다(S170).
예를 들어, 금번 읽기요청을 발생한 프로세스가 프로세스11이라고 가정하면, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 발생한 프로세스11의 정보가 분배대상리스트(130)에 존재하지 않는 것을 확인하고, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만인지 확인한다.
그리고, 메모리제어장치(100)의 동작 방법은, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만인 경우(S170 Yes), 프로세스11을 분배 대상인 것으로 확인할 것이다(S180).
여기서, 현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만인 경우라면, 분배대상리스트(130)에 나열된 프로세스의 정보 개수가 N개 보다 작은 경우이므로 분배대상리스트(130)에서 적어도 테일 부분은 비어 있을 것이다.
이때, S180단계의 확인 결과 즉 분배대상리스트(130)에 존재하지 않는 프로세스11을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다(S190).
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)의 헤드부터 위치하는 각 프로세스의 정보 즉 프로세스1,5,3...의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스11의 정보가 헤드에 위치하도록 갱신될 것이다(S190).
그리고, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 하드디스크(20)로 전달하여(S160), 하드디스크(20)에서 읽기요청을 처리할 수 있게 할 것이다.
한편, 메모리제어장치(100)의 동작 방법은, S170단계에서 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만이 아니면(S170 No), 분배대상리스트(130)의 테일에 위치한 프로세스의 정보가 삭제 가능한지 확인한다.
현재까지 분배 대상으로 설정된 프로세스의 개수가 임계개수(N) 미만이 아닌 경우라면, 분배대상리스트(130)는, 나열된 프로세스의 정보 개수가 N개로 테일까지 가득 차있는 풀(Full) 상태일 것이다.
이에, 분배대상리스트(130)에서는, 테일에 위치한 프로세스의 정보가 삭제 가능한지 확인이 시도됨에 따라, 분배대상리스트(130)의 테일에 위치한 프로세스7 정보가 포함하고 있는 요청시간7이 기 정의된 리스트유지시간을 경과한 경우(S200 Yes) 테일에 위치한 프로세스7의 정보가 삭제될 수 있다(S210).
이는, 분배대상리스트(130)에서, 리스트유지시간 만큼 충분히 오래 전에 읽기요청을 발생한 분배 대상 프로세스의 정보를 삭제하고, 다른 새로운 프로세스를 분배 대상으로 설정하기 위함이다.
이에, 프로세스7 정보가 포함하고 있는 요청시간7이 리스트유지시간을 경과한 경우라면, 분배대상리스트(130)의 테일에서 프로세스7의 정보가 삭제될 것이다.
메모리제어장치(100)의 동작 방법은, 분배대상리스트(130)의 테일에 위치한 프로세스의 정보가 삭제되면(S210 ①), 프로세스11을 분배 대상인 것으로 확인할 것이다(S180).
이때, S180단계의 확인 결과 즉 분배대상리스트(130)에 존재하지 않는 프로세스11을 분배 대상으로 확인한 결과가, 분배대상리스트(130)에 반영되어 분배대상리스트(130)가 갱신될 것이다(S190).
보다 구체적으로 분배대상리스트(130)에서는, 분배대상리스트(130)의 헤드부터 위치하는 각 프로세스의 정보 즉 프로세스1,5,3...의 정보가 이동(하나씩 뒤로 이동)된 후, 금번 읽기요청의 요청시간이 포함된 프로세스11의 정보가 헤드에 위치하도록 갱신될 것이다(S190).
그리고, 메모리제어장치(100)의 동작 방법은, 금번 읽기요청을 하드디스크(20)로 전달하여(S160), 하드디스크(20)에서 읽기요청을 처리할 수 있게 할 것이다.
메모리제어장치(100)의 동작 방법은, 시스템이 종료되지 않는 한(S230 No), 읽기요청이 수신(전달)될 때마다 전술의 S100단계 이후를 수행함으로써(②), 읽기요청을 캐시메모리(10) 및 하드디스크(20)로 분배 전달할 것이다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 메모리제어장치의 동작 방법은, 캐시 적중 데이터에 읽기요청을 무조건 캐시메모리(10)로 전달하는 기존과 달리, 읽기요청을 캐시메모리(10) 뿐 아니라 하드디스크(20)에서도 처리할 수 있도록 분배 전달함으로써, 전체 저장장치의 처리량(Throughput)을 극대화할 수 있다.
본 발명의 일 실시예에 따른 메모리제어장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 실시예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.

Claims (16)

  1. 캐시 적중 데이터에 대한 읽기요청이 확인되면, 캐시메모리의 상태에 따라서 분배 기능을 활성화시키는 활성화제어부;
    상기 분배 기능이 활성화되면, 상기 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 분배대상확인부; 및
    상기 프로세스가 분배 대상인 것으로 확인되면 상기 읽기요청을 상기 하드디스크로 전달하여, 상기 캐시메모리 대신 상기 하드디스크에서 상기 읽기요청을 처리할 수 있게 하는 읽기요청전달부를 포함하는 것을 특징으로 하는 메모리제어장치.
  2. 제 1 항에 있어서,
    상기 활성화제어부는,
    상기 캐시메모리에서 단위시간 동안 처리되는 요청의 평균 처리시간을 감시하여,
    상기 평균 처리시간이 기 정의된 임계시간 이상이면, 상기 분배 기능을 활성화시키는 것을 특징으로 하는 메모리제어장치.
  3. 제 2 항에 있어서,
    상기 임계시간은,
    상기 캐시메모리에서 단위시간 동안 처리되는 요청의 처리량에 따른 대역폭이 기 정해진 최대 대역폭에 근접한 때에 측정되는 최저 처리시간과 동일한 시간이거나 또는 상기 최저 처리시간 보다 긴 시간인 것을 특징으로 하는 메모리제어장치.
  4. 제 3 항에 있어서,
    상기 활성화제어부는,
    상기 분배 기능이 활성화된 상태에서, 상기 캐시메모리의 대역폭이 상기 최대 대역폭 보다 일정 크기 이상 작아지거나 또는 상기 하드디스크 및 캐시메모리의 총 대역폭이 상기 분배 기능이 활성화되기 직전 보다 작은 경우, 상기 분배 기능을 비활성화시키는 것을 특징으로 하는 메모리제어장치.
  5. 제 2 항에 있어서,
    상기 활성화제어부는,
    상기 분배 기능을 활성화시키는 경우, 상기 평균 처리시간이 상기 임계시간 이상인 정도에 따라 분배 대상으로 설정 가능한 프로세스의 임계개수를 상이하게 정의하는 것을 특징으로 하는 메모리제어장치.
  6. 제 1 항에 있어서,
    상기 분배대상확인부는,
    분배 대상으로 설정된 각 프로세스의 정보가 나열된 분배대상리스트에 기초하여, 상기 프로세스가 분배 대상이 되는지 여부를 확인하는 것을 특징으로 하는 메모리제어장치.
  7. 제 6 항에 있어서,
    상기 분배대상리스트에 나열된 프로세스의 정보는,
    프로세스 구분자 및 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하며,
    상기 분배대상리스트는,
    기 정의된 임계개수의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가지며, 상기 분배대상확인부의 확인 결과를 반영하여 갱신되는 것을 특징으로 하는 메모리제어장치.
  8. 제 7 항에 있어서,
    상기 분배대상확인부는,
    상기 프로세스의 정보가 상기 분배대상리스트에 존재하는 경우, 상기 프로세스를 분배 대상인 것으로 확인하며,
    상기 분배대상리스트에서는,
    상기 분배대상리스트에 존재하던 상기 프로세스의 정보가 삭제되고, 상기 분배대상리스트의 헤드부터 삭제된 상기 프로세스의 정보 직전까지 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신되는 것을 특징으로 하는 메모리제어장치.
  9. 제 7 항에 있어서,
    상기 분배대상확인부는,
    상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이면 상기 프로세스를 분배 대상인 것으로 확인하며,
    상기 분배대상리스트에서는,
    상기 분배대상리스트의 헤드부터 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신되는 것을 특징으로 하는 메모리제어장치.
  10. 제 7 항에 있어서,
    상기 분배대상확인부는,
    상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우, 분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이 아니면,
    상기 분배대상리스트의 테일(tail)에 위치한 프로세스의 정보가 삭제 가능한지 확인하여, 삭제되는 경우에만 상기 프로세스를 분배 대상인 것으로 확인하는 것을 특징으로 하는 메모리제어장치.
  11. 제 10 항에 있어서,
    상기 분배대상리스트에서는,
    상기 분배대상리스트의 테일에 위치한 프로세스 정보가 포함하고 있는 요청시간이 기 정의된 리스트유지시간을 경과한 경우 상기 테일에 위치한 프로세스 정보가 삭제되고,
    상기 분배대상리스트의 헤드부터 위치하는 각 프로세스의 정보가 이동된 후, 상기 읽기요청의 요청시간이 포함된 상기 프로세스의 정보가 헤드에 위치하도록 갱신되는 것을 특징으로 하는 메모리제어장치.
  12. 캐시 적중 데이터에 대한 읽기요청이확인되면, 캐시메모리의 상태에 따라서 분배 기능을 활성화시키는 활성화제어단계;
    상기 분배 기능이 활성화되면, 상기 읽기요청을 발생한 프로세스가 분배 대상이 되는지 여부를 확인하는 분배대상확인단계; 및
    상기 프로세스가 분배 대상인 것으로 확인되면 상기 읽기요청을 상기 하드디스크로 전달하여, 상기 캐시메모리 대신 상기 하드디스크에서 상기 읽기요청을 처리할 수 있게 하는 읽기요청전달단계를 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
  13. 제 12 항에 있어서,
    상기 분배대상확인단계는,
    분배 대상으로 설정된 각 프로세스의 정보가 나열된 분배대상리스트에 기초하여, 상기 프로세스가 분배 대상이 되는지 여부를 확인하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
  14. 제 13 항에 있어서,
    상기 분배대상리스트에 나열된 프로세스의 정보는,
    프로세스 구분자 및 프로세스에서 발생한 마지막 읽기요청의 요청시간을 포함하며,
    상기 분배대상리스트는,
    기 정의된 임계개수의 프로세스 정보가 나열된 상태에서 가장 오래된 요청시간을 포함하고 있는 프로세스의 정보가 테일(tail)에 위치하는 나열 구조를 가지며, 상기 분배대상확단계의 확인 결과를 반영하여 갱신되는 것을 특징으로 하는 메모리제어장치의 동작 방법.
  15. 제 13 항에 있어서,
    상기 분배대상확인단계는,
    상기 프로세스의 정보가 상기 분배대상리스트에 존재하는 경우 상기 프로세스를 분배 대상인 것으로 확인하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
  16. 제 14 항에 있어서,
    상기 분배대상확인단계는,
    상기 프로세스의 정보가 상기 분배대상리스트에 존재하지 않는 경우,
    분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이면 상기 프로세스를 분배 대상인 것으로 확인하고,
    분배 대상으로 설정된 프로세스의 개수가 상기 임계개수 미만이 아니면 상기 분배대상리스트의 테일(tail)에 위치한 프로세스의 정보가 삭제 가능한지 확인하여, 삭제되는 경우에만 상기 프로세스를 분배 대상인 것으로 확인하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
PCT/KR2016/003400 2015-12-17 2016-04-01 메모리제어장치 및 메모리제어장치의 동작 방법 Ceased WO2017104906A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/062,860 US10599574B2 (en) 2015-12-17 2016-04-01 Memory control device and operating method thereof
CN201680073498.1A CN108431789B (zh) 2015-12-17 2016-04-01 存储器控制设备及其操作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150180958A KR102259868B1 (ko) 2015-12-17 2015-12-17 메모리제어장치 및 메모리제어장치의 동작 방법
KR10-2015-0180958 2015-12-17

Publications (1)

Publication Number Publication Date
WO2017104906A1 true WO2017104906A1 (ko) 2017-06-22

Family

ID=59056811

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/003400 Ceased WO2017104906A1 (ko) 2015-12-17 2016-04-01 메모리제어장치 및 메모리제어장치의 동작 방법

Country Status (4)

Country Link
US (1) US10599574B2 (ko)
KR (1) KR102259868B1 (ko)
CN (1) CN108431789B (ko)
WO (1) WO2017104906A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6968016B2 (ja) * 2018-03-22 2021-11-17 キオクシア株式会社 ストレージデバイスおよびコンピュータシステム
KR102736157B1 (ko) * 2019-07-29 2024-12-02 삼성전자주식회사 QoS 레이턴시 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치
KR20230076483A (ko) 2021-11-24 2023-05-31 삼성전자주식회사 촉매 분해 장치 및 폐가스 통합 처리 시스템
KR20240127602A (ko) * 2023-02-16 2024-08-23 삼성전자주식회사 컴퓨팅 시스템 및 그 동작 제어 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093108A1 (ko) * 2009-02-13 2010-08-19 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US20120210058A1 (en) * 2009-02-19 2012-08-16 Adaptec, Inc. Hard disk drive with attached solid state drive cache
KR20130118318A (ko) * 2010-09-15 2013-10-29 퓨어 스토리지, 아이앤씨. 저장 환경에서 리액티브 i/o 동작들의 스케줄링
KR101521026B1 (ko) * 2013-11-22 2015-05-15 주식회사 포스코아이씨티 태스크 분배 시스템 및 방법
KR20150106132A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 전자 장치의 캐시 메모리 제어 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
JP2006031386A (ja) * 2004-07-15 2006-02-02 Nec Electronics Corp キャッシュ制御装置と方法並びにコントローラ装置
JP5492156B2 (ja) * 2011-08-05 2014-05-14 株式会社東芝 情報処理装置およびキャッシュ方法
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9235516B1 (en) * 2013-05-02 2016-01-12 Emc Corporation Techniques using cacheless read and deferred caching
US9785564B2 (en) * 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
JP5961642B2 (ja) * 2014-01-27 2016-08-02 京セラドキュメントソリューションズ株式会社 情報処理装置および情報処理方法
KR101531026B1 (ko) 2014-07-30 2015-06-23 (주) 유파인스 FIFO(First In First Out) 메모리를 이용한 망내 클라이언트 노드 리스트 관리 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093108A1 (ko) * 2009-02-13 2010-08-19 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US20120210058A1 (en) * 2009-02-19 2012-08-16 Adaptec, Inc. Hard disk drive with attached solid state drive cache
KR20130118318A (ko) * 2010-09-15 2013-10-29 퓨어 스토리지, 아이앤씨. 저장 환경에서 리액티브 i/o 동작들의 스케줄링
KR101521026B1 (ko) * 2013-11-22 2015-05-15 주식회사 포스코아이씨티 태스크 분배 시스템 및 방법
KR20150106132A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 전자 장치의 캐시 메모리 제어 방법 및 장치

Also Published As

Publication number Publication date
KR102259868B1 (ko) 2021-06-01
CN108431789A (zh) 2018-08-21
CN108431789B (zh) 2021-12-03
US10599574B2 (en) 2020-03-24
KR20170072600A (ko) 2017-06-27
US20180373636A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
WO2017104906A1 (ko) 메모리제어장치 및 메모리제어장치의 동작 방법
US8006036B2 (en) Storage system and data management method
WO2014208863A1 (ko) 비휘발성 버퍼 캐시와 비휘발성 스토리지를 위한 통합 데이터 관리 장치 및 방법
WO2013183967A1 (en) Method and apparatus for handover in mobile content centric network
US7890461B2 (en) System executing log data transfer synchronously and database data transfer asynchronously
EP3129872A1 (en) Application execution method and apparatus
JP4796854B2 (ja) 差分リモートコピーにおける中間ボリュームのデータ溢れ対策
US7590809B2 (en) Remote copy system
US10234929B2 (en) Storage system and control apparatus
US8650339B2 (en) Control of data transfer
WO2010120032A1 (ko) 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
WO2010041852A2 (ko) 비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템
WO2013100573A1 (ko) 콘텐트 전송 시스템, 그 시스템에서의 네트워크 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
WO2013174210A1 (zh) 一种闪存设备中数据存储的方法及装置
TWI465924B (zh) 資訊傳送裝置、資訊傳送系統、及資訊傳送方法
WO2014204084A1 (ko) 어플리케이션 공유 서비스 방법 및 이에 적용되는 장치
US9769059B2 (en) Fast interlayer forwarding
WO2021012487A1 (zh) 跨系统的信息同步方法、用户设备、存储介质及装置
WO2024005444A1 (ko) 가상 무선 접속 네트워크의 스케일링 제어 방법 및 전자 장치
JP4566808B2 (ja) 情報処理システム、ストレージシステム及び情報処理方法
KR20120095431A (ko) 서버와 한 세트의 클라이언트들 사이의 데이터 파일들의 분배의 처리
WO2015115820A1 (en) Electronic device, and method for accessing data in electronic device
US7805572B2 (en) Cache pollution avoidance
WO2015156615A1 (en) Application execution method and apparatus
US9952805B2 (en) Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails

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

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

Country of ref document: EP

Kind code of ref document: A1