Patent Publication Number: US-2021165733-A1

Title: Apparatus and method for writing data in a memory

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2019-0156121, filed on Nov. 28, 2019, in the Korean Intellectual Property Office, the disclosure of which is incorporated by reference herein in its entirety. 
     TECHNICAL FIELD 
     The inventive concept relates to data writing, and more particularly, to a device and method for writing data to a memory. 
     DISCUSSION OF RELATED ART 
     Semiconductor memory is a digital electronic semiconductor device used for digital data storage. Such memories or memory devices may be manufactured by a semiconductor process, and may store data in response to a data write command or may output stored data in response to a data read command. The memories may be formed with a variety of structures and may have different characteristics according to the structures. Various devices, which use memories to store data and use the stored data, may require high-performance memories. Accordingly, memories have been designed, which have structures that include characteristics such as fast operation speed, high storage capacity, high durability, and non-volatility. However, these memory structures may have certain disadvantageous characteristics that need to be compensated. 
     SUMMARY 
     According to an exemplary embodiment of the inventive concept, there is provided a device for writing data to a memory, the device including: a first write buffer having a first data width that matches a width of write data included in a write request and wherein the first write buffer is configured to store the write data; a second write buffer having a second data width that matches a data width of the memory and is greater than the first data width; and a controller configured to, based on a write address included in the write request and an address of the second data stored in the second write buffer, write first data stored in the first write buffer to the second write butler and write the second data stored in the second write buffer to the memory. 
     According to an exemplary embodiment of the inventive concept, there is provided a device for writing data to a memory, the device including: a first write buffer having a first data width that matches a width of write data included in a write request and wherein the first write buffer is configured to store the write data; a second write buffer having a second data width that matches a data width of the memory and is greater than the first data width; and a controller configured to update a portion of second data with first data stored in the first write buffer when a region of the memory corresponding to a write address included in the write request is included in a region of the memory corresponding to an address of the second data stored in the second write buffer so that a hit occurs in the second write buffer, and to write the second data to the memory based on an update state of the second data when the region of the memory corresponding to the write address included in the write request is not included in the region of the memory corresponding to the address of the second data stored in the second write buffer so that a miss occurs in the second write buffer. 
     According to an exemplary embodiment of the inventive concept, there is provided a method of writing data to a memory, the method including; receiving a write request including a write command, write data, and a write address; writing, in response to the write command, the write data to a first write buffer having a first data width that matches a width of the write data; writing first data stored in the first write buffer to a second write buffer based on the write address and an address of second data stored in the second write buffer, the second write buffer having a second data width that matches a data width of the memory and is greater than the first data width; and writing the second data to the memory based on the write address and the address of the second data stored in the second write buffer. 
     According to an exemplary embodiment of the inventive concept, there is provided a device for writing data to a memory, the device including: a first write buffer configured to store first data, the first write buffer having a first data width; a second write buffer having a second data width greater than the first data width, the second write buffer configured to store second data in a partially valid state, and when the second data is in the partially valid state, the memory stores partially valid data; and a controller configured to instruct the memory to provide the second write buffer with data read from a region of the memory corresponding to the second data and update an invalid portion of the second data with the data read from the memory such, that the second data stored in the second write buffer is in an entirety valid state, the controller further configured to instruct the second write buffer to write the all of the second data stored in the second write buffer to the memory and to instruct the first write buffer to write the first data to the second write buffer. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other features of the inventive concept will be more clearly understood by describing in detail exemplary embodiments thereof in conjunction with the accompanying drawings in which: 
         FIG. 1  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept; 
         FIG. 2  is a diagram illustrating examples of a state of second data of  FIG. 1  according to an exemplary embodiment of the inventive concept; 
         FIG. 3  is a diagram illustrating states of second data according to an exemplary embodiment of the inventive concept; 
         FIG. 4  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept; 
         FIGS. 5A, 5B and 5C  are block diagrams illustrating examples of an operation of a data writing device over time according to exemplary embodiments of the inventive concept; 
         FIG. 6  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept; 
         FIG. 7A  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept, and  FIG. 7B  is a diagram illustrating states of second data according to an exemplary embodiment of the inventive concept; 
         FIG. 8  is a block diagram illustrating examples of an operation of a data writing device over time according to an exemplary embodiment of the inventive concept; 
       FIG,  9  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept; 
         FIGS. 10A and 10B  are block diagrams illustrating examples of a data. writing device according to exemplary embodiments of the inventive concept; 
         FIG. 11  is a diagram illustrating states of second data according to an exemplary embodiment of the inventive concept; 
         FIG. 12  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept; 
         FIGS. 13A and 13B  are block diagrams illustrating examples of an operation of a data writing device over time according to exemplary embodiments of the inventive concept; 
         FIG. 14  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept; 
         FIG. 15  is a block diagram illustrating a system including a data writing device according to an exemplary embodiment of the inventive concept; 
         FIG. 16  is a block diagram illustrating a host including a data writing device and a memory according to an exemplary embodiment of the inventive concept; and 
         FIG. 17  is a block diagram illustrating a display system including a data writing device according to an exemplary embodiment of the inventive concept. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       FIG. 1  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept. For example,  FIG. 1  illustrates a data writing device  10  along with a memory  5 . Herein, the data writing device  10  may be referred to as a device for processing a write request. W_REQ for a memory or a device for processing a write request W_REQ. In exemplary embodiments of the inventive concept, the data writing device  10  and/or the memory  5  may be manufactured by a semiconductor process. For example, the data writing device  10  and the memory  5  may be included together in a single chip as described below with reference to  FIG. 15 , or may be included in separate chips as described below with reference to  FIG. 16 . 
     The memory  5  may be referred to as a memory device and may have any structure capable of storing externally received data and outputting stored data. In exemplary embodiments of the inventive concept, the memory  5  may include a volatile memory such as dynamic random access memory (DRAM), static random access memory (SRAM), and the like. The memory  5  may also include a non-volatile memory such as flash memory, electrically erasable and programmable read only memory (EEPROM), phase change memory, phase change memory and switch (PCMS), resistive random access memory (RRAM), ferroelectric memory, spin-transfer torque random access memory (STT-RAM), spin tunneling random access memory (STRAM), magnetoresistive memory, magnetic memory, magnetic random access memory (MRAM), semiconductor-oxide-nitride-oxide-semiconductor (SONGOS) memory, and the like. 
     The memory  5  may have a second data width DW 2 . The data width of the memory  5 , e.g., the second data width. DW 2 , may correspond to a size of data which is simultaneously writable in the memory  5 . In exemplary embodiments of the inventive concept, the memory  5  may write data on a block-by-block (or page-by-page) basis due to a structure of the memory  5 , and the second data width DW 2  may correspond to a size of the block. The size of the block, e.g., the second data width DW 2 , may be greater than a first data width DW 1  that will be described later, and may be, but is not limited to, 64 bits or 128 bits. As illustrated in  FIG. 1 , the memory  5  may receive second data D 2  having the second data width DW 2  and a third control signal C 3  from the data writing device  10 , and may store the second data D 2  based on the third control signal C 3 . In other words, the memory  5  may store the second data D 2  in response to the third control signal C 1 . 
     Herein, the data writing device  10  may receive the write request W_REQ, for the memory  5  and may process the write request W_REQ. The write request W_REQ may be referred to as a write message, and may include a write address A_WR, a write command and write data D_WR as illustrated in  FIG. 1 . The write address A_WR may indicate a location in which the write data D_WR is to be stored in the memory  5 , and the write command C_WR may indicate that a request provided to the data writing device  10  is the write request W_REQ. In other words, the write command C_WR may indicate the type of request being provided to the data writing device  10  . Although  FIG. 1  illustrates the write address A_WR, the write command C_WR, and the write data D_WR as being separately received, in exemplary embodiments of the inventive concept, the data writing device  10  may extract the write address A_WR, the write command C_WR, and the write data D_WR by receiving and decoding the write request W_REQ. Furthermore, in exemplary embodiments of the inventive concept, at least two of the write address A_WR, the write command C_WR, and the write data D_WR may be received at different timings. 
     A request for the memory  5 , which includes the write request W_REQ and the read request R_REQ of  FIG. 6 , may be provided from any device which is to use the memory  5 . For example, the write request W_REQ may be provided by a processor including at least one core and/or a functional block designed to perform a particular function, or may be provided from a host system via a memory interface. Furthermore, the write request W_REQ may be provided from a device exclusively connected to the data writing device  10 , or, when the data writing device  10  is connected to a bus, the write request W_REQ may be provided from any of a plurality of bus-connected devices. 
     The write data D_WR may have the first data width DW 1 . For example, a device or bus connected to the data writing device  10  to provide the write request W_REQ may operate based on data having, the first data width DW 1 . The first data width DW 1  may be less than the second data width DW 2  and may be, but is not limited to, 8 bits or 16 bits. In exemplary embodiments of the inventive concept, the first data width DW 1  may vary due to a device or bus that provides the write request W_REQ. As described below, the data writing device  10  may resolve issues caused by a difference between the first data width DW 1  and the second data width DW 2 , and thus, may efficiently process the write request W REQ. As illustrated in  FIG. 1 , the data writing device  10  may include a first write buffer  11 , a second write buffer  12 , and a controller  15 . 
     The first write buffer  11  may have the first data width DW 1 , and data having the first data width DW 1 , e.g., the write data D_WR, may be, written in the first write buffer  1  at one time. The first write buffer  11  may have a fast operation speed and may include, but is not limited to, a plurality of registers. As illustrated in  FIG. 1 , the first write buffer  11  may receive a first control signal C 1  from the controller  15  and may store the write data D_WR or may provide stored first data D 1  to the second write buffer  12  based on the first control signal C 1 . Herein, the first data D 1  may refer to data having the first data width DW 1  and stored in the first write buffer  11 . 
     The second write buffer  12  may have the second data width DW 2 , and data having the second data width DW 2 , e.g., the second data D 2  stored in the second write buffer  12 , may be simultaneously read from the second write buffer  12 . Similarly to the first write buffer  11 , the second write buffer  12  may have a fast operation speed and may include, but is not limited to, a plurality of registers. As illustrated in  FIG. 1 , the second write buffer  12  may receive a second control signal C 2  from the controller  15  and may store the first data D 1  or may provide the second data D 2  to the memory  5  based on the second control signal C 2 . Herein, the second data D 2  may refer to data having the second data width DW 2  and stored in the second write buffer  12 . In exemplary embodiments of the inventive concept, the second write buffer  12  may support overwriting, and, therefore, a portion of the second data D 2  may be updated with the first data D 1 , or a portion of the second data D 2  may be updated with a portion of data read from the memory  5 . 
     The controller  15  may receive the write address A_WR and the write command C_WR included in the write request W_REQ and may generate the first, second and third control signals C 1 , C 2  and C 3 . For example, the controller  15  may generate, in response to the write command C_WR, the first control signal C 1  so that the write data D_WR may be written in the first write buffer DW 1 . Furthermore, the controller  15  may generate, based on the write address A_WR and an address of the second data D 2 , the first control signal C 1  and the second control signal C 2  so that the first data D 1  may be written in the second write buffer  12 . Furthermore, the controller  15  may generate, based on the write address A_WR and an address of the second data D 2 , the second control signal C 2  and the third control signal C 3  so that the second data D 2  may be written in the memory  5 . 
     The controller  15  may instantly write the write data D_WR to the first write buffer  11  and may also write the second data D 2  having the second data width DW 2  of the memory  5  from the second write buffer  12  to the memory  5 . Therefore, the write request. W_REQ may be processed fast, and, moreover, deterioration of the memory  5  may be minimized since the number of times of writing to the memory  5  is reduced. Therefore, the lifespan of the memory  5  may be extended. The controller  15  may include a processing unit including at least one core and a software module executed by the at least one core, may include a hardware module designed by logic synthesis, or may include a combination of a processing unit and a hardware module, 
       FIG. 2  is a diagram illustrating examples of a state of the second data D 2  of  FIG. 1  according to an exemplary embodiment of the inventive concept. As described above with reference to  FIG. 1 , the second data D 2  may refer to data having the second data width DW 2  and stored in the second write buffer  12 . As illustrated in  FIG. 2 , a state S_D 2  of the second data D 2  may change, and the controller  15  of  FIG. 1  may process the write request W_REQ based on the state SD 2  of the second data D 2 . Hereinafter,  FIG. 2  will be described in connection with  FIG. 1 . 
     The second data D 2  may be partially updated with the first data D 1 . As illustrated in  FIG. 2 , the second data D 2  may be divided into data having the first data width DW 1 , and the controller  15  may refer to a flag F including information indicating validity (V) or invalidity (I) of divided data. Herein, data updated with new data may be referred to as valid data, and non-updated data or old data corresponding to updated data may be referred to as invalid data. In exemplary embodiments of the inventive concept, the flag F may be stored in the controller  15 , or may be stored in the second write buffer  12 . 
     In exemplary embodiments of the inventive concept, the second data D 2  may have one of an entirely invalid state EI, a partially valid state PV, and an entirely valid state EV. For example, as illustrated in  FIG. 2 , the second data D 2  may include only invalid data at a time t 21 , and thus the second data D 2  may be in the entirely invalid state EI (S_D 2 =EI). After the time t 21 , a portion of the second data D 2  may be updated since the first data D 1  is written to the second write buffer  12 , and thus, the second data D 2  may be in the partially valid state PV (S_D 2 =PV) at a time t 22 . After the time t 22 , another portion of the second data D 2  may be updated since the first data D 1  is written to the second write buffer  12 . In this case, the second data D 2  may still include non-updated data, and thus, the second data  132  may maintain the partially valid state PV (S_D 2 =PV) at a time t 23 . After the time t 23 , the second data D 2  may include only valid data since the first data D 1  is written to the second write buffer  12 , and thus, the second data D 2  may be in the entirely valid state EN (S_D 2 =EV) at the time t 24 . In exemplary embodiments of the inventive concept, when the first data D 1  is written to the second write buffer  12 , the flag F corresponding to the written data may be changed to indicate the validity V. Furthermore, in exemplary embodiments of the inventive concept, the controller  15  may change all the flags F into the invalidity  1  to set the second data D 2  to the entirely invalid state EI. 
       FIG. 3  is a diagram illustrating states of the second data D 2  according to an exemplary embodiment of the inventive concept. As described above with reference to  FIG. 2 , the second data D 2  may be in one state among the entirely invalid state E 1 , the partially valid state PV and the entirely valid state EV. Hereinafter,  FIG. 3  will be described in connection with  FIG. 1 . 
     The second data D 2  may be in the entirely invalid state EI in an initial state in which no write request W_REQ is received. Furthermore, the second data D 2  may be set to the entirely invalid state EI by the controller  15 . The second data D 2  may transition from the entirely invalid state EI to the partially valid state PV when a first condition CON 1  is satisfied. For example, the first condition CON 1  may include a condition that the first data D 1  stored in the first write buffer  11  is written to the second write buffer  12 . 
     The second data D 2  may maintain the partially valid state PV when a second condition CON 2  is satisfied in the partially valid state PV. For example, the second condition CON 2  may include a condition that the first data D 1  is stored in the second write buffer  12  but the second data D 2  still includes invalid data. Furthermore, the second data D 2  may transition from the partially valid state PV to the entirely valid state EV when a third condition CON 3  is satisfied. For example, the third condition CON 3  may include a condition that all of the invalid data included in the second data D 2  is switched to valid data since the first data D 1  is written to the second write buffer  12 . In other words, the third condition CON 3  may occur when all of the first data D 1  is finally written to the second write buffer  12 . 
     The second data  132  may maintain the entirely valid state EV when a fourth condition CON 4  is satisfied in the entirely valid state EV. For example, the fourth condition CON 4  may include a condition that the first data D 1  is written to the second write buffer  12 . Furthermore, the second data D 2  may transition from the entirely valid state EV to the entirely invalid state EI when a fifth condition CON 5  is satisfied. For example, the fifth condition CON 5  may include a condition that the second data D 2  stored in the second write buffer  12  is written to the memory  5 . 
       FIG. 4  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept. In exemplary embodiments of the inventive concept, the method of writing data, illustrated in  FIG. 4 , may be performed by the data writing device  10  illustrated in  FIG. 1 . Herein, the method of writing data may be referred to as a method of processing a write request W_REQ for the memory  5  of  FIG. 1  or a method of processing a write request W_REQ. As illustrated in  FIG. 4 , the method of writing data may include a plurality of operations S 41  to S 49 . Hereinafter,  FIG. 4  will be described in connection with  FIG. 1 . 
     In operation S 41 , an operation of receiving the write request W_REQ may be performed. For example, the data writing device  10  may receive the write request W_REQ including the write address A_WR, the write command C_WR, and the write data D_WR. In operation S 42 , an operation of writing the write data D_WR to the first write buffer  11  may be performed. For example, the controller  15  may provide, in response to the write command C_WR, the first control signal C 1  to the first write buffer  11  so that the write data D_WR may be written to the first write buffer  11 . Accordingly, the first write buffer  11  may store the write data D_WR included in the write request W_REQ when the write request W_REQ is received. The write data D_WR written to the first write buffer  11  may have the first data. width DW 1 . 
     In operation S 43 , whether a miss occurs in the second write buffer  12  may be determined. The controller  15  may determine whether a miss (or hit) occurs in the second write buffer  12  based on the write address A_WR and the address of the second data D 2 . For example, the controller  15  may determine that a hit occurs in the second write buffer  12  when a region of the memory  5  corresponding to the write address A_WR is included in a region of the memory  5  corresponding to the address of the second data D 2 . Furthermore, the controller  15  may determine that a miss occurs in the second write buffer  12  when the region of the memory  5  corresponding to the write address A_WR is not included in the region of the memory  5  corresponding to the address of the second data D 2 . As illustrated in  FIG. 4 , operation S 44  may be subsequently performed when it is determined that a miss occurs in the second write buffer  12 , or operation S 49  may be subsequently performed when it is determined that a hit occurs in the second write buffer  12 . 
     When it is determined that a miss occurs in the second write buffer  12 , it may be determined whether the state S_D 2  of the second data D 2  is the partially valid state PV operation S 44 . As illustrated in  FIG. 4 , operation S 45  may be subsequently performed when the state S_D 2  of the second data D 2  is the partially valid state PV, or operation S 47  may be subsequently performed when the state S_D 2  of the second data D 2  is the entirely invalid state EI or the entirely valid state EV. In operation S 47 , it may be determined whether the state S_D 2  of the second data D 2  is the entirely valid state EV. As illustrated in  FIG. 4 , operation S 48  may be subsequently performed when the state S_D 2  of the second data D 2  is the entirely valid state EV, or operation S 49  may be performed when the state S_D 2  of the second data D 2  is the entirely invalid state EI. Accordingly, after operation S 43  is performed, when the state S_D 2  of the second data D 2  is the partially valid state PV, operation S 45 , operation S 46 , operation S 48 , and operation S 49  may be sequentially performed, or, when the state S_D 2  of the second data D 2  is the entirely valid state EV, operation S 48  and operation S 49  may be sequentially performed, or, when the state S_D 2  of the second data D 2  is the entirely invalid state EI, operation S 49  may be performed. 
     When, a hit occurs in the second write buffer  12 , the first data D 1  may be written to the second write buffer  12  in operation S 49 . For example, the controller  15  may write the first data D 1  included in the first write buffer  11  to the second write buffer  12  regardless of the state S_D 2  of the second data D 2 , and thus, the second data D 2  stored in the second write buffer  12  may be the partially valid state PV or the entirely valid state EV. 
     When a miss occurs in the second write buffer  12  and the state S_D 2  of the second data D 2  is the partially valid state PV, data may be read from the memory  5  in operation S 45 . For example, the controller  15  may read data corresponding to the address of the second data D 2  from the memory  5 . Next, the second data D 2  may be updated in operation S 46 . For example, the controller  15  may update the second data D 2  by updating an invalid portion of the second data D 02  with data read from the memory  5 . Accordingly, the second data D 2  may include only valid data and may have the entirely valid state EV. Next, the second data D 2  may be written to the memory  5  in operation S 48 . For example, the controller  15  may write, to the memory  5 , the second data D 2 , which is in the entirely valid state EV, and may set the second data D 2  to the entirely invalid state IV. In operation S 49 , an operation of writing the first data D 1  to the second write buffer  12  may be performed, and the second data D 2  stored in the second write buffer  12  may have the partially valid state PV. 
     When a miss occurs in the second write buffer  12  and the state of the second data D 2  is the entirely valid state EV, an operation of writing the second data D 2  to the memory  5  may be performed in operation S 48 . For example, since the second data D 2  is in the entirely valid state EV, the controller  15  may skip updating the second data D 2  with data stored in the memory  5 , may write the second data D 2  to the memory  5 , and may set the second data D 2  to the entirely invalid state IV. Next, in operation S 49 , an operation of writing the first data D 1  to the second write buffer  12  may be performed, and the second data D 2  stored in the second write buffer  12  may have the partially valid state PV. 
     When a miss occurs in the second write buffer  12  and the state of the second data D 2  is the entirely invalid state EI, an operation of writing the first data D 1  to the second write buffer  12  may be performed in operation S 49 . For example, since the second data D 2  is in the entirely invalid state EI, the controller  15  may skip updating; the second data D 2  or writing the second data D 2 , and may write the first data D 1  to the second write buffer  12 . 
       FIGS. 5A to 5C  are block diagrams illustrating examples of an operation of a data writing device over time according to exemplary embodiments of the inventive concept. For example,  FIG. 5A  illustrates an example of an operation of a data writing device  50   a  when a miss occurs in a second write buffer WB 2  and the state SD 2  of the second data D 2  is the partially valid state PV,  FIG. 5B  illustrates an example of an operation of a data writing device  50   b  when a miss occurs in the second write buffer WB 2  and the state S_D 2  of the second data D 2  is the entirely valid state EV, and  FIG. 5C  illustrates an example of an operation of a data writing, device  50   c  when the state S_D 2  of the second data D 2  is the entirely invalid state IV. 
     Referring to  FIG. 5A , at a time t 51 , a first write buffer WB 1  may store the first data D 1  matching the write data D_WR, and the second data D 2  stored in a second write buffer WB 2  may be in the partially valid state PV. Accordingly, the memory  5  may store partially valid data. At a time t 52 , the second write buffer WB 2  may receive data read from a region of the memory  5  corresponding to the second data D 2 , and an invalid portion of the second data D 2  may be updated with the read data. Accordingly, the second data D 2  may be in the entirely valid state EV at the time t 52 . At a time t 53 , the second data D 2  stored in the second write buffer WB 2  may be written to the memory  5 , and thus, the second data D 2  may be in the entirely invalid state EI, and the memory  5  may store entirely valid data. In other words, at the time t 53 , the second write buffer WB 2  may be empty. At a time t 54 , the first data D 1  matching the write data D_WR and stored in the first write buffer WB 1  may be written to the second write buffer WB 2 . Accordingly, the second data D 2  may be in the partially valid state PV, and the memory  5  may store partially invalid data. 
     Referring to  FIG. 5B , at a time t 55 , the first write buffer WB 1  may store the first data D 1  matching the write data D_WR, and the second data D 2  stored in the second write buffer WB 2  may be in the entirely valid state EV. Accordingly, the memory  5  may store entirely invalid data. At a time t 56 , the second data D 2  stored in the second write buffer WB 2  may be written to the memory  5 , and thus, the second data D 2  may be in the entirely invalid state EI, and the memory  5  may store entirely valid data. At a time t 57 , the first data D 1  matching the write data D_WR and stored in the first write buffer WB 1  may be written to the second write buffer WB 2 . Accordingly, the second data D 2  may be in the partially valid state PV, and the memory  5  may store partially invalid data. 
     Referring to  FIG. 5C , at a time t 58 , the first write buffer WB 1  may store the first data D 1  matching the write data D_WR, and the second data D 2  stored in the second write buffer WB 2  may be in the entirely invalid state EI. Accordingly, the memory  5  may store entirety valid data. At a time t 59 , the first data DI matching the write data D_WR and stored in the first write buffer WB 1  may be written to the second write buffer WB 2 . Accordingly, the second data D 2  may be in the partially valid state PV, and the memory  5  may store partially invalid data. 
       FIG. 6  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept. For example,  FIG. 6  illustrates a data writing device  60 , which not only writes data to the memory  5  but also reads data from the memory  5 , e.g., processes a read request R_REQ. Similarly to the data writing device  10  of  FIG. 1 , the data writing device  60  may include a first write buffer  61 , a second write buffer  62 , and a controller  65 , and may further include a read buffer  63 . Hereinafter, descriptions previously given with reference to  FIG. 1  will be omitted to provide descriptions related to  FIG. 6 . 
     The data writing device  60  may receive the read request R_REQ for the memory  5  and may process the read request R_REQ. The read request R_REQ may be referred to as a read message, and may include a read address A_RD and a read command C_RD as illustrated in  FIG. 6 . The read address A_RD may indicate a location in which read data D_RD is stored in the memory  5 , and the read command C_RD may indicate that a request provided to the data writing device  60  is the read request R_REQ. Although  FIG. 6  illustrates the read address A_RD and the read command C_RD as being separately received, in exemplary embodiments of the inventive concept, the data writing device  60  may extract the read address A_RD and the read command C_RD by receiving and decoding the read request R_REQ. Like the write data D_WR of  FIG. 1 , the read data D_RD may have the first data width DW 1  and may be output from the read buffer  63 . 
     The read buffer  63  may have the second data width DW 2 . The read buffer  63  may have a fast operation speed and may include, but is not limited to, a plurality of registers. As illustrated in.  FIG. 6 , the read buffer  63  may receive a fourth control signal C 4 , may store, based on the fourth control signal C 4 , data read from the memory  5  having the second data width DW 2 , and may output the read data D_RD having the first data width DW 1  among stored third data. D 3 . 
     The controller  65  may receive the read address A_RD and the read command C_RD included in the read request R_REQ and may further receive the write address and A_WR and the write command C_WR included in the write request W_REQ as illustrated in  FIG. 1 . The controller  65  may generate first to fourth control signals C 1  to C 4 . For example, the controller  65  may generate, based on the read address A_RD and the read command C_RD, the third control signal C 3  so that data may be read from the memory  5  and may generate the fourth control signal C 4  so that read data may be written to the read buffer  63 . Furthermore, the controller  65  may generate, based on the read address A_RD, the fourth control signal C 4  so that data having the first data width DW 1  among the third data D 3  stored in the read buffer  63  is output as the read data D_RD. 
     When the write request W_REQ is received after the third data D 3  is stored in the read buffer  63  due to the read request R_REQ, the controller  65  may process the write request W_REQ based on an address of the third data D 3  and the write address A_WR included in the write request W_REQ. For example, the controller  65  may skip an operation of writing the third data D 3  to the memory  5  before processing the write request W_REQ. Accordingly, the time required for writing the third data D 3  may not be necessary, and operations of writing to the memory  5  may be reduced, and thus the lifespan of the memory  5  may be further extended. 
       FIG. 7A  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept, and  FIG. 7B  is a diagram illustrating states of the second data D 2  according to an exemplary embodiment of the inventive concept. In exemplary embodiments of the inventive concept, the method of writing data, illustrated in  FIG. 7A , may be performed by the data writing device  60  of  FIG. 6 , and  FIG. 7B  illustrates states of the second data D 2  in the data writing device  60  of  FIG. 6 . As illustrated in  FIG. 7A , the method of writing data may include a plurality of operations S 71  to S 78 . Hereinafter,  FIGS. 7A and 7B  will be described in connection with  FIG. 6 , and descriptions previously given with reference to  FIG. 4  will be omitted to provide descriptions related to  FIG. 7A , and descriptions previously given with reference to  FIG. 3  will be omitted to provide descriptions related to  FIG. 7B . 
     In operation S 71 , an operation of receiving the read request R_REQ may be performed. For example, the data writing device  60  may receive the read request R_REQ including the read address A_RD and the read command C_RD. For example, the controller  65  may receive the read request R_REQ. Next, in operation S 72 , an operation of reading data from the memory  5  and writing the data to the read buffer  63  may be performed. For example, the controller  15  may read data corresponding to the read address A_RD from the memo  5  and may write read data to the read buffer  63 . Next, in operation S 73 , an operation of selecting and outputting the read data D_RD may be performed. For example, the controller  15  may select, based on the read address A_RD, data having the first data width DW 1  from the third data D 3  having the second data width DW 2  and stored in the read buffer  63 , and may control the read buffer  63  through the fourth control signal C 4  so that the selected data may be output as the read data D_RD. The read data D_RD may be output with the first data width DW 1 . 
     In operation S 74 , the write request W_REQ may be received, and, in operation S 75 , an operation of writing the write data D_WR to the first write buffer  61  may be performed. Next, in operation S 76 , it may be determined whether a hit occurs in the read buffer  63 . For example, the controller  65  may determine whether a hit (or miss) occurs in the read buffer  63  based on the write address A_WR and the address of the third data D 3  stored in the read buffer  63 . For example, in a manner similar to the determination of the occurrence of a hit in the second write buffer  62 , the controller  65  may determine that a hit occurs in the read buffer  63  when a region of the memory  5  corresponding to the write address A_WR is included in a region of the memory  5  corresponding to the address of the third data D 3 . Furthermore, the controller  65  may determine that a miss occurs in the read buffer  63  when the region of the memory  5  corresponding to the write address A_WR is not included in the region of the memory  5  corresponding to the address of the third data D 3 . As illustrated in  FIG. 7A , operation S 77  may be subsequently performed when it is determined that a hit occurs in the read buffer  63 , or operation S 43  of  FIG. 4  may be subsequently performed when it is determined that a miss occurs in the read buffer  63 . 
     When it is determined that a hit occurs in the read buffer  63 , an operation of writing the first data D 1  to the read buffer  63  may be performed in operation S 77 . For example, the controller  65  may write, to the read buffer  63 , the first data D 1  matching the write data D_WR and stored in the first write buffer  61 . Accordingly, a portion of the third data D 3  may be updated with the first data D 1 . 
     In operation S 78 , an operation of writing the third data D 3  to the second write buffer  62  may be performed. For example, the controller  65  may write the third data D 3  stored in the read buffer  63  to the second write buffer  62  and may set the second data D 2  matching the third data  03  and stored in the second write buffer  62  to the entirely valid state EV. Thus, an operation of writing the third data D 3  stored in the read buffer  63  to the memory  5  may be skipped, 
     Referring to  FIG. 7B , the second data D 2  may be in one state among the entirely invalid state EI, the partially valid state PV, and the entirely valid state EV similarly to the data illustrated in  FIG. 3 . Similarly to the first to fifth conditions CON 1  to CON 5  illustrated in  FIG. 3 , first, second, third, fourth and fifth conditions CON 1 ′, CON 2 ′, CON 3 ′, CON 4 ′ and CON 5 ′ illustrated in  FIG. 7B  may allow the second data D 2  to transition between the entirely invalid state EI, the partially valid state PV, and the entirely valid state EV. Furthermore, as illustrated in.  FIG. 7B , the second data D 2  may transition from the entirely invalid state EI to the entirely valid state EV when a sixth condition CON 6  is satisfied. For example, after it is determined that a hit occurs in the read buffer  63  in operation S 76  of  FIG. 7A , and the first data D 1  is written to the read huller  63  in operation S 77 , the third data D 3  may be written to the second write buffer  62  in operation S 78 . Accordingly, the second data D 2  may transition from the entirely invalid state EI to the entirely valid state EV in operation S 78 , and the sixth condition CON 6  may include a condition that the third data D 3  is written from the read buffer  63  to the second write buffer  62 . 
       FIG. 8  is a block diagram illustrating examples of an operation of a data writing device over time according to an exemplary embodiment of the inventive concept. For example,  FIG. 8  illustrates an example of an operation of a data writing device  80  when a hit occurs in a read buffer RB due to the write address A_WR included in the write request W_REQ. 
     Referring to  FIG. 8 , at a time t 81 , data corresponding to the read address A_RD may be read from the memory  5  in response to the read request R_REQ, and the read buffer RB may store the read data D_RD. The read buffer RB may output the read data D_RD having the first data width DW 1  from the stored third data D 3 . At a time t 82 , the write request W_REQ may be received, the first write buffer WB 1  may store the first data D 1  matching the write data D_WR, and a hit may occur in the read buffer RB due to the write address A_WR. At a time t 83 , the first data D 1  stored in the first write buffer WB 1  may be written to the read buffer RB. In this case, the read buffer RB may include the write data D_WR and the read data D_RD. In exemplary embodiments of the inventive concept, unlike the illustration of  FIG. 8 , data that matches the read data D_RD in the third data D 3  may be overwritten by the first data D 1 . The read buffer RB may store the updated third data D 3 , and the memory  5  may include invalid data. At a time t 84 , the third data D 3  stored in the read buffer RB may be written to the second write buffer WB 2 . Accordingly, the second write buffer WB 2  may store the second data D 2 , which is in the entirely valid state EV. 
       FIG. 9  is a block diagram illustrating a data writing device according to an exemplary embodiment of the inventive concept. For example,  FIG. 9  illustrates a data writing device  90  including a controller  95  that includes a special function register SFR. Similarly to the data writing device  10  of  FIG. 1 , the data writing device  90  may include a first write buffer  91 , a second write buffer  92 , and the controller  95  and may process a write request for the memory  5 . Hereinafter, descriptions previously given with reference to  FIG. 1  will be omitted to provide descriptions related to  FIG. 9 . 
     The controller  95  may include the special function register SFR. The special function register SFR may be accessible from the outside of the data writing device  90  and may receive and store setting information SET for setting an operation of the controller  95 . The controller  95  may process the write request W_REQ based on information stored in the special function register SFR. 
     In exemplary embodiments of the inventive concept, the first write buffer  91  and/or the second write buffer  92  may be reconfigurable, and the controller  95  may set a first depth DD 1  of the first write buffer  91  and a second depth DD 2  of the second write buffer  92  based on the setting information SET stored in the special function register SFR. For example, the first depth DD 1  of the first write buffer  91  and the second depth DD 2  of the second write buffer  92  may be set in response to the first control signal C 1 . As described above with reference to  FIG. 1 , the first write buffer  91  may have the first data width DW 1  and may have the first depth DD 1  adjustable by the controller  95 . A capacity of the first write butler  91  may be determined by the lust data width DW 1  and the first depth DD 1 , and thus, the capacity of the reconfigurable first write buffer  91  may be determined by the controller  95 . Likewise, the second write buffer  92  may have the second data width DW 2 , and may have the second depth DD 2  adjustable by the controller  95 . A capacity of the second write buffer  92  may be determined by the second data width DW 2  and the second depth DD 2 , and thus, the capacity of the reconfigurable second write buffer  92  may be determined by the controller  95 . Furthermore, in exemplary embodiments of the inventive concept, the controller  95  may set not only the first depth DD 1  and the second depth DD 2  but also the first data width DW 1  and/or the second data width DW 2  based on the setting information SET. 
     In exemplary embodiments of the inventive concept, the controller  95  may repeatedly write the second data D 2  to the memory  5  based on the setting information SET stored in the special function register SFR. For example, in order to store the second data D 2 , the memory  5  may request repeated writing of the second data D 2  due to a structure of the memory  5 . The setting information SET may include information about the number of write repeats, and the controller  95  may repeat writing of the second data D 2  to the memory  5  by the number of times included in the setting information SET. 
       FIGS. 10A and 10B  are block diagrams illustrating examples of a data writing device according to exemplary embodiments of the inventive concept. For example,  FIGS. 10A and 10B  illustrate examples of a data writing device including a reconfigurable first writing buffer and second writing buffer. Hereinafter, descriptions previously given with reference to  FIG. 9  and overlapping descriptions related to  FIGS. 10A and 10B  will be omitted. 
     Referring to  FIG. 10A , a data writing device  100   a  may include a first write buffer  101   a , a second write buffer  102   a , and a controller  105   a , wherein the controller  105   a  may include a special function register SFR. In exemplary embodiments of the inventive concept, the controller  105   a  may set, based on the setting information SET, a first depth DD 1 ′ of the first write buffer  101   a  to be greater than that of the second write buffer  102   a , as illustrated in  FIG. 10A . For example, when an operation speed of the memory  5  is slower than that of a device or bus to which the data writing device  100   a  is connected, e.g., when an access time of the memory  5  is longer than a clock period of the device or bus to which the data writing device  100   a  is connected, the first depth DD 1 ′ of the first write buffer  101   a  may be set to be greater than the depth of the second write buffer  102   a  to prevent a write throughput from being reduced. Furthermore, when an integrated circuit including the data writing device  100   a  has a margin for the write throughput but is limited in terms of area, the first depth DD 1 ′ of the first write buffer  101   a  may be set to be greater than the depth of the second write buffer  102   a . In other words, the first depth DD 1 ′ of the first write buffer  101   a  may be increased. In exemplary embodiments of the inventive concept, the first write buffer  101   a  and the second write buffer  102   a  may not be reconfigurable, and the first depth DD 1 ′ may be determined when manufacturing the data writing device  100   a.    
     Referring to  FIG. 10B , a data writing device  100   b  may include a first write buffer  101   b , a second write buffer  102   b , and a controller  105   b  wherein the controller  105   b  may include a special function register SFR. In exemplary embodiments of the inventive concept, the controller  105   b  may set, based on the setting information SET, a second depth DD 2 ′ of the second write buffer  102   b  to be greater than that of the first write buffer  101   b  as illustrated in  FIG. 10B . For example, when the memory  5  has a lifespan sensitive to the number of times it is written, the second depth DD 2 ′ of the second write buffer  102   b  may be set greater than the depth of the first write buffer  101   b  to reduce deterioration of the memory  5  due to the number of wiring films, and thus, extend the lifespan of the memory  5 . In exemplary embodiments of the inventive concept, the first write buffer  101   b  and the second write buffer  102   b  may not be reconfigurable, and the second depth DD 2 ′ may be determined when manufacturing the data writing device  100   b.    
       FIG. 11  is a diagram illustrating states of second data according to an exemplary embodiment of the inventive concept. The second data D 2  may be in one state among the entirely invalid state EI, the partially valid state PV, the entirely valid state EV, and a backup state BK similarly to the data illustrated in  FIG. 3 . Hereinafter,  FIG. 11  will be described in connection with  FIG. 1 , and descriptions previously given with reference to  FIG. 3  will be omitted to provide descriptions related to  FIG. 11 . 
     Similarly to the first to fifth conditions CON 1  to CON 5  illustrated in  FIG. 3 , first, second, third, fourth and fifth conditions CON 1 ″, CON 2 ″, CON 3 ″, CON 4 ″ and CON 5 ″ illustrated in  FIG. 11  may allow the second data D 2  to transition between the entirely invalid state EI, the partially valid state PV, and the entirely valid state EV. The second data D 2  may transition from the entirely valid state EV to the backup state BK when a seventh condition CON 7  is satisfied. In exemplary embodiments of the inventive concept, the data writing device  10  may enter an idle mode. When entering the idle mode, the controller  15  may store, in the memory  5 , the second data D 2  stored in the second write buffer  12  and may set the second data D 2  to the backup state BK. Accordingly, the seventh condition CON 7  may include a condition that the second data D 2  is written to the memory  5  in the idle mode. 
     The second data D 2  may transition from the backup state BK to the entirely invalid state EI when an eighth condition CON 8  is satisfied. For example, the eighth condition CON 8  may include a condition that the idle mode is released and a miss occurs in the second write buffer  12  due to the write address A_WR included in the received write request W_REQ. Furthermore, the second data D 2  may transition from the backup state BK to the entirely valid state EV when a ninth condition CON 9  is satisfied. For example, the ninth condition CON 9  may include a condition that the idle mode is released and a hit occurs in the second write buffer  12  due to the write address A_WR included in the received write request W_REQ. 
       FIG. 12  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept. For example,  FIG. 12  illustrates a method of writing data when the second data D 2  may have the backup state BK. In exemplary embodiments of the inventive concept, the method of writing data, illustrated in  FIG. 12 , may be performed by the data writing device  10  illustrated in  FIG. 1 . As illustrated in  FIG. 12 , the method of writing data may include a plurality of operations S 121  to S 132 . Hereinafter,  FIG. 12  will be described in connection with  FIG. 1 , and descriptions previously given with reference to  FIGS. 4 and 7A  will be omitted to provide descriptions related to  FIG. 12 . 
     In operation S 121 , whether to enter the idle mode may be determined. For example, when the write request W_REQ and/or the read request R_REQ are not received for a predefined time or when a signal for instructing to enter the idle mode in order to reduce power consumption is received externally, the controller  15  may enter the idle mode. As illustrated in  FIG. 12 , operation S 122  may be performed when the idle mode is entered, or the method of  FIG. 12  may be ended and then, for example, the method of  FIG. 4 or 7A  may be performed when the idle mode is not entered. 
     When the idle mode is entered, in operation S 122 , it may be determined whether the state S_D 2  of the second data D 2  is the partially valid state PV. As illustrated in  FIG. 12 , operation S 123  may be subsequently performed when the state S_D 2  of the second data D 2  is the partially valid state PV, or operation S 124  may be subsequently performed when the state S_D 2  of the second data D 2  is the entirely invalid state EI or the entirely valid state EV. In operation S 124 , it may be determined whether the state S_D 2  of the second data D 2  is the entirely valid state EV. As illustrated in  FIG. 12 , operation S 125  may be subsequently performed when the state S_D 2  is the entirely valid state EV, or the method of  FIG. 12  may be ended when the state S_D 2  of the second data D 2  is the entirely invalid state EI. 
     When the second data D 2  is in the partially valid state PV, an operation of updating the second data D 2  may be performed in operation S 123 . For example, the controller  15  may read data corresponding to the address of the second data D 2  from the memory  5  and may write a portion of the read data to the second write buffer  12  to update invalid data included in the second data D 2  with valid data. Next, an operation of writing the second data D 2  to the memory  5  may be performed in operation S 125 . For example, the controller  15  may write the updated second data D 2  to the memory  5 , and thus, the second data D 2  stored in the second write buffer  12  may be backed up in the memory  5 . Accordingly, in subsequent operation S 126 , an operation of setting the state of the second data D 2  to the backup state BK may be performed. Moreover, when the second data D 2  is in the entirely valid state EV in operation S 124 , operation S 123  for updating the second data D 2  may be skipped and operation S 125  and operation S 126  may be performed as illustrated in  FIG. 12 . 
     An operation of receiving the write request W_REQ may be performed in operation S 127 , and an operation of writing the write data D_WR to the first write buffer  11  may be performed in operation S 128 . Next, in operation S 129 , it may be determined whether a hit occurs in the second write butler  12 . For example, the controller  15  may determine that a hit occurs in the second write buffer  12  when a region of the memory  5  corresponding to the address of the second data D 2  stored in the second write buffer  12 , e.g., the second data D 2  backed up in operation S 125 , includes a region of the memory  5  corresponding to the write address A_WR included in the write request W_REQ. Otherwise the controller  15  may determine that a miss occurs in the second write buffer  12 . As illustrated in  FIG. 12 , operation S 130  may be subsequently performed when it is determined that a hit occurs in the second write buffer  12 , or operation S 131  may be subsequently performed when it is determined that a miss occurs in the second write buffer  12 . 
     When it is determined that a hit occurs in the second write buffer  12 , an operation of setting the state S_D 2  of the second data D 2  to the entirely valid state EV may be performed in operation S 130 . For example, since the second data D 2 , which is in the backup state BK, matches data stored in the memory  5 , the controller  15  may set the state S_D 2  of the second data D 2  to the entirely valid state EV when a hit occurs in the second write buffer  12 . Furthermore, when it is determined that a miss occurs in the second write buffer  12 , an operation of setting the state S_D 2  of the second data D 2  to the entirely invalid state EI may be performed in operation S 131 . For example, when a miss occurs in the second write buffer  12 , the controller  15  may set the state S_D 2  of the second data D 2  to the entirely invalid state EI to invalidate data included in the second data D 2 . 
     In operation S 132 , an operation of writing the first data D 1  to the second write buffer  12  may be performed. Accordingly, as described above with reference to  FIGS. 3 and 11 , the second data D 2  may maintain the entirely valid state EV when operation S 132  is subsequently performed after operation S 130 , or the second data D 2  may transition to the partially valid state PV when operation S 132  is subsequently performed after operation S 131 . 
       FIGS. 13A and 13B  are block diagrams illustrating examples of an operation of a data writing device over time according to exemplary embodiments of the inventive concept. For example,  FIG. 13A  illustrates an example of operation of a data writing device  130   a  when a hit occurs in the second write buffer  12  after the idle mode is released, and  FIG. 13B  illustrates an example of operation of a data writing device  130   b  when a miss occurs in the second write buffer  12  after the idle mode is released. 
     Referring to  FIG. 13A , at a time t 131 , the second data D 2  stored in the second write buffer WB 2  may be written to the memory  5  due to entrance to the idle mode. Accordingly, the same data, e.g., the second data D 2 , may be stored in both the second write buffer WB 2  and the memory  5 , and the second data D 2  may be set to the backup state BK. At a time t 132 , the write data D_WR may be received after the idle mode is released, and thus, the first write buffer WB 1  may store the first data D 1  matching the write data D_WR. Furthermore, a hit may occur in the second write buffer WB 2  due to the write address A_WR received together with the write data D_WR. At a time t 133 , the first data D 1  stored in the first write buffer WB 1  may be written to the second write buffer WB 2 . Accordingly, the second data D 2  may be set to the entirely valid state EV, and the memory  5  may store invalid data. 
     Referring to  FIG. 13B , at a time t 134 , the second data D 2  stored in the second write buffer WB 2  may be written to the memory  5  due to entrance to the idle mode. Accordingly, the second data D 2  may be set to the backup state BK. At a time t 135 , the write data D_WR may be received after the idle mode is released, and thus, the first write buffer WB 1  may store the first data D 1  matching the write data D_WR. Furthermore, a miss may occur in the second write buffer WB 2  due to the write address A_WR received together with the write data D_WR, and, accordingly, the second data D 2  may be set to the entirely invalid state EI. At a time t 136 , the first data D 1  stored in the first write buffer WB 1  may be written to the second write buffer WB 2 . Accordingly, the second data D 2  may be in the partially valid state PV, and the memory  5  may store partially valid data. 
       FIG. 14  is a flowchart illustrating a method of writing data, according to an exemplary embodiment of the inventive concept. In exemplary embodiments of the inventive concept, the method of  FIG. 14  may be performed by the data writing, device  10  illustrated in  FIG. 1 . As illustrated in  FIG. 14 , the method of  FIG. 14  may include a plurality of operations S 141  to S 144 , and  FIG. 14  will be described in connection with  FIG. 1 . 
     In operation S 141 , an operation of receiving the write request W_REQ may be performed. As described above with reference to  FIG. 1 , the write request W_REQ may include the write address A_WR, the write command C_WR, and the write data D_WR. 
     In operation S 142 , an operation of writing the write data D_WR to the first write buffer  11  may be performed. For example, the controller  15  may write the write data D_WR to the first write buffer  11  regardless of the write address A_WR. 
     In operation S 143 , an operation of writing the first data D 1  to the second write buffer  12  may be performed based on the address of the second data D 2  and the write address A_WR. For example, the controller  15  may determine whether a hit occurs in the second write buffer  12  based on the address of the second data D 2  stored in the second write buffer  12  and the write address A_WR , and may write the first data D 1  to the second write buffer  12  when it is determined that a bit occurs in the second write buffer  12 . 
     In operation S 144 , an operation of writing the second data D 2  to the memory  5  may be performed based on the address of the second data D 2  and the write address A_WR. For example, the controller  15  may determine whether a miss occurs in the second write buffer  12  based on the address of the second data D 2  stored in the second write buffer  12  and the write address A_WR, may update the second data D 2  with data stored in the memory  5  when it is determined that a miss occurs in the second write buffer  12 , and may write the first data D 1  to the second write buffer  12  after writing the updated second data D 2  to the memory  5 . 
       FIG. 15  is a block diagram illustrating a system  150  including a data writing device according to an exemplary embodiment of the inventive concept. In exemplary embodiments of the inventive concept, the system  150  may be a single chip manufactured by a semiconductor process, and may be referred to as a system-on-chip (SoC). In exemplary embodiments of the inventive concept, a memory  154 _ 2  included in a memory subsystem  154  may be referred to as an embedded memory, and may also be referred to as an embedded magnetic random access memory (eMRAM) when the memory  154 _ 2  includes an MRAM. As illustrated in  FIG. 15 , the system  150  may include a processor  151 , a hardware accelerator  152 , an input/output subsystem  153 , the memory subsystem  154 , and a bus  155 . The processor  151 , the hardware accelerator  152 , the input/output subsystem  153 , and the memory subsystem  154  may communicate with each other via the bus  155 . 
     The processor  151  may include at least one core capable of executing instructions, and may include at least one cache. In exemplary embodiments of the inventive concept, the at least one core may execute instructions obtained from the memory subsystem  154 , may process data stored in the memory subsystem  154 , and may generate and store data in the memory subsystem  154 . To accomplish this, the processor  151  may provide a read request, a write request, and the like to the memory subsystem  154  via the bus  155 . 
     The hardware accelerator  152  may perform a predefined function at high speed. For example, the hardware accelerator  152  may encode/decode data stored in the memory subsystem  154 . To process data stored in the memory subsystem  154  and store the processed data in the memory subsystem  154 , the hardware accelerator  152  may provide a read request, a write request, and the like to the memory subsystem  154  via the bus  155 . 
     The input/output subsystem  153  may establish a communication channel to a device outside the system  150 . For example, the input/output subsystem  153  may establish a serial communication channel such as universal serial bus (USB), and may also establish a communication channel for connecting to a network. The input/output subsystem  153  may transmit data stored in the memory subsystem  154  to the outside via a communication channel, and may store, in the memory subsystem  154 , data received via the communication channel. To accomplish this, the input/output subsystem  153  may provide a read request, a write request, and the like to the memory subsystem  154  via the bus  155 . 
     The memory subsystem  154  may include a data writing device  154 _ 1  including a controller CTR, the first write buffer WB 1 , and the second write buffer WB 2 , and may include the memory  154 _ 2 . The data writing device  154 _ 1  may receive a write request and a read request according to specifications of the bus  155 . For example, the bus  155  may be based on an advanced microcontroller bus architecture (AMBA), and the memory subsystem  154  may receive a write request and a read request from the bus  155  according to an advanced high performance bus (AHB), and may transfer read data to the bus  155  according to the AHB in response to the read request. As described above with reference to exemplary embodiments of the inventive concept, the data writing device  154 _ 1  may efficiently process a write request provided to the memory subsystem  154 , thereby improving performance of the system  150 . Furthermore, the data writing device  154 _ 1  may extend the lifespan of the system  150  by reducing the number of times of writing to the memory  154 _ 2 . 
       FIG. 16  is a block diagram illustrating a host  161  including a data writing device  161 _ 2  and a memory  162  according to an exemplary embodiment of the inventive concept. As illustrated in  FIG. 16 , the host  161  may include a processor  161 _ 1  and the data writing device  161 _ 2 . 
     The data writing device  161 _ 2  may be used for the memory  162 . The memory  162  may be a stand-alone memory. For example, as illustrated in  FIG. 16 , the data writing device  161 _ 2  may include the controller CTR, the first write buffer WB 1 , and the second write buffer WB 2 , and may be included in the host  161  together with the processor  161 _ 1 . In response to a write request from the processor  161 _ 1 , the data writing device  161 _ 2  may write, to the memory  162 , write data efficiently as described above with reference to the figures. 
       FIG. 17  is a block diagram illustrating a display system  170  including a data writing device according to an exemplary embodiment of the inventive concept. As illustrated in  FIG. 17 , the display system  170  may include a host  171 , a display driver  172 , and a display panel  173 . The data writing devices described above with reference to exemplary embodiments of the inventive concept may be included in the display driver  172 . The display system  170  may include, but is not limited to, a mobile device such as a mobile phone, a smartphone, a tablet personal computer (PC), or the like and a fixed device such as a television (TV), a monitor, or the like. 
     The host  171  may provide, to the display driver  172 , image data IMG including, information about an image output through the display panel  173 . The display driver  172  may provide a driving signal DRV for driving the display panel  173  to the display panel  173  based on the image data IMG, and may be referred to as a display driver integrated circuit (DDI). The display panel  173  may output an image according to the driving signal DRV. 
     The display driver  172  may include a frame memory  172 _ 1  and a symbol memory  172 _ 2  as illustrated in  FIG. 17 . The frame memory  172 _ 1  may store the image data IMG, and may be a graphics random access memory (GRAM). While a still image is output through the display panel  173 , data stored in the frame memory  172 _ 1  may not be updated with the image data IMG received from the host  171 , and the display panel  173  may output an image corresponding to the data stored in the frame memory  172 _ 1 . The symbol memory  172 _ 1  may store data corresponding to a predefined image, e.g., a symbol image. For example, the symbol memory  172 _ 2  may store data corresponding to a particular image, character, number, sign, or the like. The host  171  may control the display driver  172  so that the display panel  173  may output the symbol image, and the display panel  173  may output the symbol image corresponding to data stored in the symbol memory  172 _ 2 . In exemplary embodiments of the inventive concept, the host  171  may change the symbol image by changing the data stored in the symbol memory  172 _ 2 . 
     The data writing devices described above with reference to exemplary embodiments of the inventive concept may be included in the frame memory  172 _ 1  and/or the symbol memory  172 _ 2 . For example, stored data may be frequently read from the symbol memory  172 _ 2  to output the symbol image, but data may not be frequently written to the symbol memory  172 _ 2  by the host  171 . Therefore, the symbol memory  172 _ 2  may include a non-volatile memory having a lifespan sensitive to the number of times it is written, and the data writing device may be included in the symbol memory  172 _ 2  together with the non-volatile memory. Accordingly, data corresponding to the symbol image may be efficiently written to the symbol memory  172 _ 2 , and may not be lost even when power supplied to the display system  170  is cut off, and thus, the Stepan of the symbol memory  172 _ 2  and the lifespan of the display driver  172  may be extended. 
     While the inventive concept has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood that various changes in form and details may be made thereto without departing from the spirit and scope of the inventive concept as set forth in the following claims.