WO2014073747A1 - 플래시 메모리의 소모 전력 감소 방법 및 그 장치 - Google Patents

플래시 메모리의 소모 전력 감소 방법 및 그 장치 Download PDF

Info

Publication number
WO2014073747A1
WO2014073747A1 PCT/KR2013/000427 KR2013000427W WO2014073747A1 WO 2014073747 A1 WO2014073747 A1 WO 2014073747A1 KR 2013000427 W KR2013000427 W KR 2013000427W WO 2014073747 A1 WO2014073747 A1 WO 2014073747A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
binary data
flash memory
value
converted
Prior art date
Application number
PCT/KR2013/000427
Other languages
English (en)
French (fr)
Inventor
김탁곤
박대진
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Publication of WO2014073747A1 publication Critical patent/WO2014073747A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Definitions

  • the present invention relates to a reduction in power consumption of a flash memory.
  • the binary data is bit-transformed so that the number of bits of a value (eg, '0') that increases the operating current when reading data stored in the flash memory is small.
  • the present invention relates to a method and apparatus for reducing power consumption of a flash memory capable of reducing power consumption when reading a flash memory by storing the same in a flash memory.
  • flash memory is a type of nonvolatile memory that is similar to electrical erasing and programmable read-only memory (EEPROM) in that it can be erased by electrical processing. Flash memory must be erased block by block, whereas it can be erased one byte at a time. Because of this feature, flash memory is often used as a substitute or replacement for a hard disk in a portable computer, and the most common example is used as a storage device for a PC card that can be inserted into the PCMCIA slot of a portable computer.
  • EEPROM electrical erasing and programmable read-only memory
  • FIG. 1 is an equivalent circuit diagram of a general flash memory, in which a portion in which a gate portion is indicated by two lines is a flash memory cell, and an operating characteristic thereof is shown in FIG. 2. As shown in FIG. 2, unprogrammed or erased cells have a Vth value of about 2.5 [V]. Considering these characteristics, the operation of the circuit shown in FIG. 1 will be described below.
  • the value of the bit line BIT LINE is held to 1 using the PMOS transistor P0, and then one of the plurality of NMOS transistors NL00, NL01, ..., NLn0, NLn1 on the left side is held.
  • the NMOS transistor is selected to apply the gate voltage Vgs.
  • the voltage applied to the gate is about 5.0V.
  • the current (Irds) hardly flows (the right line in the graph), and if the selected cell is erased, about 60 [kW] of the current (Irds) flows (the left line in the graph). ).
  • the operating current Irds input to the gate terminal becomes about 0 [kW] because there is no voltage difference between the gate voltage Vgs and Vth in the programmed cell, but in the case of the erased cell, the gate voltage Vgs.
  • the voltage difference between and Vth is about 60 [kV].
  • the prior art relates to a configuration for selectively inverting data stored in a flash memory to store data in a direction of low power consumption.
  • the prior art since the prior art was developed based on a small capacity flash memory, it is a time when a new data reconstruction method suitable for a large and complicated flash memory device is newly developed according to the recent technology development.
  • the present invention has been made to solve the above-described problems of the prior art, and an object of the present invention is to provide a method and apparatus for reducing power consumption of a flash memory capable of reducing power consumption when reading binary data stored in a flash memory.
  • the present invention divides binary data into horizontal and vertical axis segments of the flash memory, respectively, and bit-converts the number of bit values '0' to be less than or equal to '1' for each of the divided segments.
  • bit-converted binary data By storing the bit-converted binary data in the flash memory in the direction in which the total number of bit-converted '0's is smaller in two directions, the number of' 0's, which consumes more current in the sense amplifier when reading data stored in the flash memory, This reduces the overall current draw of the sense amplifier.
  • the present invention analyzes binary data and sets a data area (data area to which data is frequently accessed) that is repeatedly performed a predetermined number of times as a hot-spot to set all bit values of data included in the data area to '1'.
  • a data area data area to which data is frequently accessed
  • the data of the hot-spot is read in a separate storage means. Reading the data stored in the instrument reduces the total current consumption of the sense amplifier.
  • an object of the present invention is to provide a method and apparatus for reducing power consumption of a flash memory that can reduce the total power consumption of a device equipped with a flash memory by reducing the power consumption of the sense amplifier when reading the flash memory. .
  • a method of reducing power consumption of a flash memory comprises the steps of receiving binary data from the outside; Performing bit conversion such that the number of first values of the binary data is less than or equal to the number of second values in each of the first segment units preset in the first direction of the flash memory; Performing bit conversion such that the number of the first value of the binary data is equal to or less than the number of the first value in each second segment unit preset in the second direction of the flash memory; Comparing the total number of the second value of the binary data bit-converted in the first direction with the total number of the second value of the binary data bit-converted in the second direction; And storing the converted binary data bit-converted with respect to the binary data in the total number of directions in the flash memory.
  • the method may further include bit converting and reading the converted binary data stored in the flash memory into segments of the total number of directions.
  • the storing may store a flag bit corresponding to whether a bit is converted for each of the segments having a large number of directions, and the reading may be performed by bit converting the corresponding segment when the value of the stored flag bit is a bit conversion value. Can be.
  • the performing of the bit conversion may be performed by dividing the corresponding segment unit into a plurality of predetermined subdivided segments, and in each of the plurality of subdivided segments so that the number of the first values of the binary data is less than or equal to the number of the second values. You can perform the conversion.
  • a method of reducing power consumption of a flash memory may include receiving binary data from an external device; Analyzing the received binary data to detect a data region to be repeated at least a predetermined number of times; Converting all bit values of data corresponding to the detected data area into a first predetermined bit value; And storing data corresponding to the data area before being converted into the first bit value in a predetermined storage means, and storing the binary data including the data area converted into the first bit value in a flash memory. It includes.
  • the method according to the present invention comprises the steps of: dividing the binary data into predetermined segment units; And performing bit conversion such that the number of first values of the binary data is less than or equal to a number of second values in each of the divided segment units except for the data area.
  • the binary data may be stored in the flash memory.
  • the method according to the present invention further comprises the steps of checking the value of the flag bit for whether or not the bit conversion is stored in advance for each of the segments, and if the value of the flag bit is a bit conversion value, the method further comprises the step of bit-translating and reading the corresponding segment. can do.
  • the method according to the invention further comprises the step of reading the binary data stored in the flash memory, wherein data corresponding to the data area can be read from the storage means.
  • An apparatus for reducing power consumption of a flash memory may include a receiver configured to receive binary data from an external device; A first converter configured to perform bit conversion such that the number of first values of the binary data is less than or equal to the number of second values in each of the first segment units preset in the first direction of the flash memory; A second converter configured to perform bit conversion such that the number of the first values of the binary data is equal to or less than the number of the first values in each of the second segment units preset in the second direction of the flash memory; A comparison unit comparing a total number of the second value of the binary data bit-converted in the first direction with a total number of the second value of the binary data bit-converted in the second direction; And a storage unit to store, in the flash memory, the converted binary data bit-converted with respect to the binary data in the total number direction.
  • an apparatus for reducing power consumption of a flash memory includes a receiver configured to receive binary data from an external device; A detector configured to analyze the received binary data and detect a data area to be repeated at least a predetermined number of times; A first converter converting all bit values of data corresponding to the detected data area into a first predetermined bit value; And storing data corresponding to the data area before being converted into the first bit value in a predetermined storage means, and storing the binary data including the data area converted into the first bit value in a flash memory. Contains wealth.
  • the present invention after dividing the binary data into the horizontal axis and vertical axis segment of the flash memory, and bit conversion so that the number of bit value '0' is less than the number of '1' for each divided segment
  • bit conversion so that the number of bit value '0' is less than the number of '1' for each divided segment
  • the present invention analyzes binary data and sets a data area that is repeatedly performed a predetermined number of times as a hot-spot, converts all bit values of data included in the data area to '1' and stores it in a flash memory.
  • data for hot spot is read in a separate storage means, so the total current consumption of the sense amplifier when reading data stored in flash memory. Can be reduced.
  • the present invention can reduce the power consumption of the sense amplifier when reading the flash memory, thereby reducing the total power consumption of the device equipped with the flash memory.
  • the present invention can reduce power consumption through a technique for converting binary data (or code), encoding / decoding logic, and a storage area for storing additional flag information, the present invention achieves a desired object using only a conventional sense amplifier. can do.
  • FIG. 1 shows an equivalent circuit diagram of a general flash memory.
  • FIG. 2 shows a graph of the operating characteristics of one embodiment for a typical flash memory.
  • FIG. 3 illustrates a configuration of an apparatus for reducing power consumption of a flash memory according to an embodiment of the present invention.
  • FIG. 4 illustrates an example of performing bit conversion by segmenting in a first direction of a flash memory.
  • FIG. 5 illustrates an example of performing bit conversion by segmenting in a second direction of a flash memory.
  • FIG. 6 illustrates an example of performing bit conversion by dividing a plurality of detailed segments in a first direction of a flash memory.
  • FIG. 7 illustrates a configuration of an apparatus for reducing power consumption of a flash memory according to another embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a method of reducing power consumption of a flash memory according to an embodiment of the present invention.
  • FIG. 10 illustrates an operation flowchart of an embodiment of a method of reading binary data stored by FIG. 9.
  • FIG. 11 is a flowchart illustrating a method of reducing power consumption of a flash memory according to another embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating an embodiment of operation S1160 shown in FIG. 11.
  • FIG. 13 illustrates an operation flowchart of an embodiment of a method of reading binary data stored by FIG. 11.
  • a method of reducing power consumption of a flash memory comprises the steps of receiving binary data from the outside; Performing bit conversion such that the number of first values of the binary data is less than or equal to the number of second values in each of the first segment units preset in the first direction of the flash memory; Performing bit conversion such that the number of the first value of the binary data is equal to or less than the number of the first value in each second segment unit preset in the second direction of the flash memory; Comparing the total number of the second value of the binary data bit-converted in the first direction with the total number of the second value of the binary data bit-converted in the second direction; And storing the converted binary data bit-converted with respect to the binary data in the total number of directions in the flash memory.
  • the method may further include bit converting and reading the converted binary data stored in the flash memory into segments of the total number of directions.
  • the storing may store a flag bit corresponding to whether a bit is converted for each of the segments having a large number of directions, and the reading may be performed by bit converting the corresponding segment when the value of the stored flag bit is a bit conversion value. Can be.
  • the performing of the bit conversion may be performed by dividing the corresponding segment unit into a plurality of predetermined subdivided segments, and in each of the plurality of subdivided segments so that the number of the first values of the binary data is less than or equal to the number of the second values. You can perform the conversion.
  • a method of reducing power consumption of a flash memory may include receiving binary data from an external device; Analyzing the received binary data to detect a data region to be repeated at least a predetermined number of times; Converting all bit values of data corresponding to the detected data area into a first predetermined bit value; And storing data corresponding to the data area before being converted into the first bit value in a predetermined storage means, and storing the binary data including the data area converted into the first bit value in a flash memory. It includes.
  • the method according to the present invention comprises the steps of: dividing the binary data into predetermined segment units; And performing bit conversion such that the number of first values of the binary data is less than or equal to a number of second values in each of the divided segment units except for the data area.
  • the binary data may be stored in the flash memory.
  • the method according to the present invention further comprises the steps of checking the value of the flag bit for whether or not the bit conversion is stored in advance for each of the segments, and if the value of the flag bit is a bit conversion value, the method further comprises the step of bit-translating and reading the corresponding segment. can do.
  • the method according to the invention further comprises the step of reading the binary data stored in the flash memory, wherein data corresponding to the data area can be read from the storage means.
  • An apparatus for reducing power consumption of a flash memory may include a receiver configured to receive binary data from an external device; A first converter configured to perform bit conversion such that the number of first values of the binary data is less than or equal to the number of second values in each of the first segment units preset in the first direction of the flash memory; A second converter configured to perform bit conversion such that the number of the first values of the binary data is equal to or less than the number of the first values in each of the second segment units preset in the second direction of the flash memory; A comparison unit comparing a total number of the second value of the binary data bit-converted in the first direction with a total number of the second value of the binary data bit-converted in the second direction; And a storage unit to store, in the flash memory, the converted binary data bit-converted with respect to the binary data in the total number direction.
  • an apparatus for reducing power consumption of a flash memory includes a receiver configured to receive binary data from an external device; A detector configured to analyze the received binary data and detect a data area to be repeated at least a predetermined number of times; A first converter converting all bit values of data corresponding to the detected data area into a first predetermined bit value; And storing data corresponding to the data area before being converted into the first bit value in a predetermined storage means, and storing the binary data including the data area converted into the first bit value in a flash memory. Contains wealth.
  • FIG. 3 illustrates a configuration of an apparatus for reducing power consumption of a flash memory according to an embodiment of the present invention.
  • the apparatus includes a receiver 310, a first converter 320, a second converter 330, a comparator 340, a storage 350, and a flash memory 360.
  • the third converter 370 and the reader 380 are included.
  • the receiver 310 receives binary data, for example, binary data generated by compiling or assembling source code from the outside.
  • the first converter 320 divides the binary data received by the receiver 310 in a first direction of the flash memory 360, for example, in an address space direction, in a predetermined first segment unit, and divides the first segment. In each unit, bit conversion is performed such that the number of first values of the binary data, for example, the bit value '0' is less than or equal to the second value, for example, the bit value '1'.
  • the first converter 320 does not perform bit conversion on the first segment having the number of '0's or less.
  • the first value is defined as a bit value '0'
  • the second value is defined as a bit value '1'.
  • the current consumption of the sense amplifier may increase when reading the bit value '1'.
  • the first value becomes the bit value '1'
  • the second value becomes the bit value '0'. This can be In the present invention, a case where the current consumption of the sense amplifier increases when reading the bit value '0' stored in the flash memory will be described as an example.
  • the second converter 330 divides the binary data received by the receiver in the second direction, for example, the word line direction, of the flash memory 360 into a preset second segment unit, and in each of the divided second segment units. Bit conversion is performed such that the number of bit values '0' of the binary data is equal to or less than the number of bit values '1'.
  • the second converter 330 does not perform bit conversion on the second segment having the number of '0's or less.
  • the comparator 340 is configured to determine the total number of bit values '1' of the binary data bit-converted for each of the first segments in the first converter 320 and bits for each of the second segments in the second converter 330. Compare the total number of bit values '1' of the converted binary data.
  • bit-converted binary data for all segments means that both the bit-converted segment and the non-bit-converted segment are included, and the total number of '1' is bit-converted. Refers to the number of bit values '1' included in both the segment and the bit unconverted segment.
  • comparison unit 340 is not limited to comparing the total number of bit values '1', and may also compare the total number of bit values '0'.
  • the storage 350 receives the comparison result by the comparator 340, and stores the binary data bit-converted in a direction in which the total number of '1's is large, in the flash memory 360.
  • the storage 350 stores the bits of the binary data in which the total number of bit values '1' of the binary data bit-converted by the first converter 320 is bit-converted by the second converter 330. If more than the total number of values '1', the binary data bit-converted by the first converter 320 is stored in the flash memory 360.
  • the storage unit 350 may store a flag bit for whether or not bit conversion for each of the corresponding segments, the flag bit of the flash memory 360 It may be stored in a preset area, but is not limited thereto and may be stored in a separate storage means other than the flash memory 360.
  • the storage 350 may store information about a segment unit and a segment direction of binary data stored in the flash memory 360 in a predetermined region of the flash memory 360 or in a separate storage means. The information may be used when the third converter 370 bit converts data stored in the flash memory 360.
  • bit value of the flag bit is '1' when the corresponding segment is bit converted, and the bit value of the flag bit is '0' when the corresponding segment is not bit converted.
  • the third converter 370 bit-converts the binary data stored in the flash memory 360 in units of predetermined segments in order to read the binary data stored in the flash memory 360. That is, the third converter 370 receives binary data stored in the flash memory 360 through the sense amplifier and performs bit conversion on each of the segments.
  • the third converter 370 may perform bit conversion based on the segment unit and the segment direction when the binary data is stored in the flash memory 360.
  • the third converter 370 may perform bit conversion or no bit conversion on each segment based on the bit value of the flag bit stored for each segment. That is, when the flag bit value of the corresponding segment is '1', the third converter 370 converts a bit having a value of '1' into a bit having a value of '0' with respect to the binary data of the segment. Converts a bit of '0' to a bit of '1'.
  • the read unit 380 reads the binary data bit-converted by the third converter 370.
  • the read unit 380 bit-converts the binary data stored in the flash memory 360 through the third converter 370 and restores and reads the binary data received by the receiver 310.
  • FIG. 4 illustrates an example of performing bit conversion by segmenting in a first direction of a flash memory, and illustrates a case where bit conversion is performed by the first converter 320.
  • the first converter 320 divides binary data into segments in the address space direction of the flash memory, and identifies the number of '1' and the number of '0' for each of the divided segments. For a segment where the number of '1' is less than or equal to the number of '0', a bit inversion is performed to switch the bit value '1' and the bit value '0', and the number of '1' is' No bit conversion is performed for segments larger than 0 '.
  • the bit conversion is performed.
  • the second segment and the fourth segment also perform bit conversion because the number of bit values '0' is greater than the number of '1', and the third and fifth segments have the number of bit values '0' equal to '1'. It does not perform bit conversion because it is less than the number of '.
  • the value of bit conversion of each of these segments is stored as a flag bit 420 in a predetermined storage space, the flag bit value '1' is stored for the segment in which the bit conversion is performed, and the segment in which the bit conversion is not performed.
  • the flag bit value '0' is stored.
  • FIG. 5 illustrates an example of performing bit conversion by segmenting in a second direction of the flash memory, and illustrates a case of performing bit conversion by the second converter 330.
  • the second converter 330 divides binary data in segment units in the word line direction of the flash memory, and grasps the number of '1' and the number of '0' for each of the divided segments. For a segment where the number of '1' is less than or equal to the number of '0', a bit inversion is performed to switch the bit value '1' and the bit value '0', and the number of '1' is' No bit conversion is performed for segments larger than 0 '.
  • bit conversion is performed in the case of the first segment 510.
  • the third segment also performs bit conversion because the number of bit values '0' is greater than the number of '1', and the second and fourth segments have the number of bit values '0' more than the number of '1'. Because it is small, it does not perform bit conversion.
  • the value of bit conversion of each of these segments is stored as a flag bit 520 in a predetermined storage space, the flag bit value '1' is stored for the segment in which the bit conversion is performed, and the segment in which the bit conversion is not performed.
  • the flag bit value '0' is stored.
  • the number of '1' of the binary data bit-converted by the first converter 320 is 48
  • the number of '1' of the binary data bit-converted by the second converter 330 is 52.
  • the storage unit 350 stores the binary data bit-converted by the second converter 330 in the flash memory.
  • information on the unit and direction of the segment of the binary data bit-converted by the second converter 330 should also be stored, and the third converter 370 segments the data stored in the flash memory based on the information. You can convert bits in units.
  • FIG. 6 illustrates an example of performing bit conversion by dividing a plurality of detailed segments in a first direction of a flash memory, and illustrates a case in which the segment unit illustrated in FIG. 4 is divided into a plurality of detailed segments.
  • each segment is divided into four sub-segments and has a flag bit 620 for each sub-segment. That is, FIG. 6 shows that a predetermined size in the horizontal direction and the vertical direction is divided into one segment unit, and it is determined whether or not bit conversion is performed for each of the detailed segments, which are each divided segment, and the bit is determined through bit conversion determination. You can perform the conversion. Of course, the flag bit value is determined as '1' for the bit-converted detail segment, and the flag bit value is determined as '0' for the non-bit-converted detail segment.
  • bit conversion is performed because the number of '0' is equal to or greater than the number of '1'.
  • bit conversion is performed because the number of '0' is equal to or greater than the number of '1'.
  • the fourth sub-segment 613 since the number of '0' is smaller than the number of '1', no bit conversion is performed. As a result, the flag bit value for the corresponding detail segments becomes '1110'.
  • the detail segment unit may be adjusted differently according to a situation, and the detail segment unit may be determined by calculating the number of bits for each detail segment unit.
  • the apparatus divides the binary data into horizontal and vertical axis segments of the flash memory, respectively, so that the number of bit values '0' is less than or equal to '1' for each of the divided segments.
  • the binary data which is bit-transformed in the direction where the total number of bit-converted '0' is smaller or the number of '1' is greater, is stored in the flash memory so that the data stored in the flash memory can be sensed.
  • the number of '0's with large current consumption of the amplifier is reduced, which minimizes the total current consumption of the sense amplifier.
  • FIG. 7 illustrates a configuration of an apparatus for reducing power consumption of a flash memory according to another embodiment of the present invention
  • FIG. 8 illustrates converting all of hot-spot data set for binary data into bit values '1'. An illustration is shown.
  • the apparatus includes a receiver 710, a detector 720, a first converter 730, a second converter 740, a storage 750, and a storage means ( 760, a flash memory 770, a third converter 780, and a reader 790.
  • the receiver 710 receives binary data, for example, binary data generated by compiling or assembling source code from the outside.
  • the detector 720 analyzes the binary data received by the receiver 710 to detect a data region that is repeated a predetermined number of times or more.
  • an example of a data spot (hot-spot) that is repeated a predetermined number or more may be an area of code repeated by a loop command in a program.
  • various types of codes may be included.
  • special codes in the program code that are executed conditionally or unconditionally, such as loops and branches.
  • Program code is not executed 100% uniformly in sequence, but there are frequently executed codes and rarely executed codes due to the characteristics of each code.
  • This phenomenon is often expressed as 10/90's law in which 10% of codes are executed for 90% of time. In some cases, 20% of the code is represented by the law of 20/80, which is performed for 80% of the time.
  • the detection unit 720 may detect a hot spot in consideration of the characteristics of the source code, that is, binary data, and a method of detecting the hot spot may be performed through source code analysis.
  • the detector 720 stores the data of the detected data area in a storage means 760, for example, a register.
  • the storage means 760 is illustrated as a separate means from the flash memory 770, but is not limited thereto and may be a predetermined area of the flash memory 770.
  • the detector 720 detects data corresponding to the second segment 810 as hot-spot data through data analysis.
  • the first converter 730 converts all bit values of the binary data corresponding to the data area (hot-spot) detected by the detector 720 to '1'.
  • the second converter 740 divides the binary data received by the receiver 710 into predetermined segment units, and the number of bit values '0' of the binary data in each of the divided segment units is equal to or less than '1'. Perform bit conversion whenever possible.
  • the second converter 740 may perform bit conversion by determining whether or not to perform bit conversion in each segment except for the data area detected by the detector 720, and includes all data including a hot spot. Bit conversion may also be performed on each segment.
  • the configuration of the second converter 740 may be removed according to circumstances. That is, bit conversion may not be performed on data except for data included in a hot-spot among binary data received by the receiver 710.
  • the second converter 740 may adjust the segment direction according to the situation, and the segment direction may be the first direction and the second direction described with reference to FIG. 3.
  • the storage unit 750 stores the binary data bit-converted by the first converter 730 and the second converter 740 in the flash memory 770.
  • the storage unit 750 stores all the data of the data area (hot-spot) detected by the detector 720 as the bit value '1' converted by the first converter 730, Accordingly, when the second converter 740 is not provided in the device, the second converter 740 may be directly stored in the flash memory 770 without performing bit conversion on the binary data received by the receiver 710. Of course, in this case, the storage unit 750 stores only the binary data corresponding to the hot spot as '1'.
  • the storage unit 750 may store a flag bit corresponding to bit conversion for each of the corresponding segments.
  • the flash memory may be stored in a predetermined area of the flash memory, but is not limited thereto and may be stored in a separate storage space instead of the flash memory.
  • the storage unit 750 stores the data, that is, the bit value '1', converted by the first converter 730 in the second segment 820, and the segment is hot. store -spot as a separate hot-spot bit (830).
  • the storage unit 750 may store information on a segment unit of the binary data stored in the flash memory 770, and information about the segment direction, if necessary, in a predetermined area of the flash memory 770, or as a separate storage space.
  • the data may be stored in the storage means 760, and the information may be used when the third converter 780 bit-converts data stored in the flash memory 770.
  • the segment 820 when the original data stored in the hot-spot is stored in a separate storage space 760, the segment 820 is not frequently accessed in the process of actually reading the data. However, when arbitrary data is stored in the segment 820 or information about data actually stored in the segment 820 is lost, it may cause a decrease in the reliability of the memory cell corresponding to the segment 820. Therefore, the segment 820 may store all values of '1' for easy management, thereby increasing the stability of the memory cell. In addition, in order to check the integrity of the data stored in the flash memory, a function of periodically or sequentially reading data stored in the flash memory at an idling time may be provided. By storing the value, the amount of power consumed in the integrity check can be reduced.
  • the third converter 780 bit-converts the binary data stored in the flash memory 770 in units of predetermined segments, and stores the bit value '1' stored in the hot-spot.
  • the data having the data is replaced with the binary data stored in the storage means 760, that is, the original binary data corresponding to the hot spot.
  • the third converter 780 may perform bit conversion or no bit conversion on each segment based on the bit value of the flag bit stored for each segment. That is, when the flag bit value of the corresponding segment is '1', the third converter 780 converts a bit having a value of '1' into a bit having a value of '0' with respect to binary data of the corresponding segment. Converts a bit of '0' to a bit of '1'.
  • the third converter 780 replaces the binary data stored in the storage means 760 in the case of the data stored in the hot-spot.
  • the read unit 790 reads the binary data bit-converted by the third converter 780.
  • the read unit 790 converts the binary data received by the receiver 710 into bit-converted binary data stored in the flash memory 770 and hot-spot data stored in the storage unit 760. Through bit conversion again through the binary data received by the receiving unit 710 is read.
  • the apparatus for reducing power consumption of the flash memory detects hot-spot data, bit-converts all detected hot-spot data to '1', and stores the result in the flash memory, whereby a predetermined number of times in the source code is exceeded. It is possible to minimize the current consumption of the sense amplifier generated when reading repeated frequently read binary data, thereby minimizing the power consumed to read all the binary data.
  • FIG. 9 is a flowchart illustrating a method of reducing power consumption of a flash memory according to an embodiment of the present invention.
  • the method according to the present invention receives binary data from an external source, divides the received binary data into a predetermined first segment unit in a first direction of the flash memory, for example, in an address space direction, and then divides the received binary data into a first segment unit. Bit conversion is performed such that the number of bit values '0' of binary data is less than or equal to the number of bit values '1' in each segment unit (S910 to S930).
  • FIG. 4 An example of dividing a segment in a first direction and performing bit conversion is illustrated in FIG. 4, and a description thereof is omitted herein because it has been described above.
  • the received binary data is divided into a second segment unit predetermined in a second direction of the flash memory, for example, in a word line direction, and the number of bit values '0' of the binary data in each of the second segment units is a bit value.
  • Bit conversion is performed to be equal to or less than '1' (S940 and S950).
  • FIG. 5 An example of dividing a segment in a second direction and performing bit conversion is illustrated in FIG. 5, and a description thereof is omitted herein.
  • the first segment and the second segment unit divided in the above steps S920 and S940 may be divided into sub-segments according to a situation. Bit conversion may be performed such that the number is equal to or smaller than the number of bit values '1'. This is described in detail in FIG. 6.
  • steps S940 and S950 are shown to be performed after step S930, the present invention is not limited thereto and may be performed in parallel with steps S920 and S930.
  • step S960 the binary data, which is segmented in the direction in which the total number of '1' is large and is bit-converted, is stored in the flash memory, and the segment direction of the binary data stored in the flash memory and the flag bit for each of the segments. It is stored (S970, S980).
  • the segment direction of the binary data stored in the flash memory, the flag bit for each segment, and each of the segments may be stored in a predetermined region of the flash memory, or may be stored in a separate storage means.
  • FIG. 10 illustrates an operation flowchart of an embodiment of a method of reading binary data stored by FIG. 9.
  • the segment direction and further the segment unit for the binary data, which are bit-converted and stored in the flash memory, are checked (S1010).
  • operation S1020 it is checked whether a bit is converted in each segment through a flag bit value for each segment unit.
  • step S1020 bit conversion is performed on data stored in the corresponding segment. If the flag bit value is '0', bit conversion is not performed on data stored in the corresponding segment (S1030). ).
  • Bit conversion is performed on each of the segments or the binary data without bit conversion is read (S1040).
  • bit-converted binary data stored in flash memory can be read.
  • FIG. 11 is a flowchart illustrating a method of reducing power consumption of a flash memory according to another exemplary embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating operations of the apparatus of FIG. 7.
  • the method according to the present invention receives binary data from the outside, analyzes the received binary data, and detects a data area, that is, a hot-spot, which is repeated a predetermined number of times (S1110 through S1130).
  • the hot-spot may be detected by analyzing the characteristics of the received binary data, and in addition, various conditions for detecting the hot-spot may be considered.
  • the data included in the detected hot-spot is stored in the storage means, and all bit values of the data included in the hot-spot are converted to '1' (S1140 and S1150).
  • Binary data including a hot-spot in which all bit values are converted to '1' is stored in the flash memory (S1160).
  • bit conversion may be performed on binary data other than the data included in the hot-spot, which will be described with reference to FIG. 12.
  • FIG. 12 is a flowchart illustrating an embodiment of operation S1160 shown in FIG. 11.
  • the received binary data is divided into predetermined segment units, and the number of bit values '0' of the binary data in each of the segment units is equal to the bit value '1'. Bit conversion is performed so that the number is equal to or less than the number (S1210, S1220).
  • the information about the segment unit and the segment direction may be stored separately.
  • step S1220 The binary data bit-converted in step S1220 is stored in the flash memory, and the flag bits for each segment are stored in the flash memory or separate storage means (S1230 and S1240).
  • step S1230 when the bit-converted binary data is stored in the flash memory, the data area corresponding to the hot spot is all stored as the bit value '1'.
  • FIG. 13 illustrates an operation flowchart of an embodiment of a method of reading binary data stored by FIG. 11.
  • a segment unit and a segment direction of the binary data bit-converted and stored in the flash memory are checked, and flag bit values for each segment unit are checked (S1310 and S1320).
  • step S1320 If the flag bit value checked through step S1320 is '1', bit conversion is performed on data stored in the corresponding segment. If the flag bit value is '0', bit conversion is not performed on data stored in the corresponding segment. (S1330).
  • bit conversion may or may not be performed for the hot-spot area, and all data in the hot-spot area where the read stored in the flash memory is repeatedly performed are all bit values '1'. This minimizes the current consumption of the sense amplifier.
  • bit-converted binary data and original binary data of a region corresponding to the hot-spot identified in step S1340 are read (S1350).
  • bit-converted binary data stored in flash memory can be read.
  • the method of reducing power consumption of a flash memory may be implemented in the form of program instructions that may be executed by various computer means and may be 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.
  • a method of reducing power consumption of a flash memory may include receiving binary data from an external source; Performing bit conversion such that the number of first values of the binary data is less than or equal to the number of second values in each of the first segment units preset in the first direction of the flash memory; Performing bit conversion such that the number of the first value of the binary data is equal to or less than the number of the first value in each second segment unit preset in the second direction of the flash memory; Comparing the total number of the second value of the binary data bit-converted in the first direction with the total number of the second value of the binary data bit-converted in the second direction; And storing the converted binary data bit-converted with respect to the binary data in the total number of directions in the flash memory, wherein the converted binary data stored in the flash memory is stored in segments of the total number of directions.
  • the method may further include a step of bit-converting to read, thereby reducing power consumption when reading the flash memory

Landscapes

  • Read Only Memory (AREA)

Abstract

플래시 메모리의 소모 전력 감소 방법 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 단계; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 단계를 포함하고, 상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 단계를 더 포함함으로써, 플래시 메모리를 읽을 때의 소모 전력을 감소시킬 수 있다.

Description

플래시 메모리의 소모 전력 감소 방법 및 그 장치
본 발명은 플래시 메모리의 소모 전력 감소에 대한 것으로, 상세하게는 플래시 메모리에 저장된 데이터를 읽을 때 동작 전류가 증가하는 값(예를 들어, '0')의 비트 개수가 적도록 바이너리 데이터를 비트 변환하여 플래시 메모리에 저장함으로써, 플래시 메모리를 읽을 때의 소모 전력을 감소시킬 수 있는 플래시 메모리의 소모 전력 감소 방법 및 그 장치에 관한 것이다.
일반적으로, 플래시 메모리(Flash memory)는, 일종의 비휘발성 기억 장치로서 전기적인 처리에 의해 기억 내용을 소거할 수 있는 점에서는 전기적 소거 및 프로그램 가능 읽기 전용 기억 장치(EEPROM)와 유사하지만, EEPROM은 한 번에 1바이트씩 소거할 수 있는 데 비해 플래시 메모리는 블록 단위로 소거해야 한다는 점에서 상이하다. 이 특성 때문에 플래시 메모리는 흔히 휴대형 컴퓨터의 하드 디스크 대용 또는 보충용으로 사용되며, 가장 흔히 사용되는 예는 휴대형 컴퓨터의 PCMCIA 슬롯에 삽입하여 사용할 수 있는 PC 카드의 기억 장치로 사용되는 것이다.
도 1은 일반적인 플래시 메모리의 등가 회로도로서, 게이트 부분을 2개의 선으로 표시한 부분이 플래시 메모리 셀이며, 그 동작 특성은 도 2에 도시된 바와 같다. 도 2에 나타난 바와 같이, 프로그램되지 않은 셀이나 지워진 셀은 Vth 값이 약 2.5[V]이다. 이러한 특성을 고려하여 도 1에 도시된 회로의 동작을 설명하면 아래와 같다.
먼저, 비트 라인(BIT LINE)의 값이 PMOS 트랜지스터(P0)를 이용하여 1로 홀드(hold)된 후, 왼쪽의 복수개의 NMOS 트랜지스터(NL00, NL01, ..., NLn0, NLn1) 중 하나의 NMOS 트랜지스터가 선택되어 게이트 전압(Vgs)이 인가된다.
여기서, 게이트에 인가되는 전압은 약 5.0V가 된다. 이 때, 선택된 셀이 프로그램되어 있으면, 전류(Irds)가 거의 흐르지 않고(그래프 중 오른쪽 라인), 선택된 셀이 지워져 있을 경우에는 약 60[㎂]의 전류(Irds)가 흐르게 된다(그래프 중 왼쪽 라인). 이와 같은 동작을 하게 될 때, 데이터 값이 0으로 지워졌을 경우에 보다 많은 동작 전류가 흐르는 것을 알 수 있다. 즉, 게이트 단자로 입력되는 동작 전류(Irds)는, 프로그램된 셀의 경우 게이트 전압(Vgs)과 Vth 간의 전압 차가 없음으로 인하여 약 0[㎂]가 되지만, 지워지는 셀의 경우 게이트 전압(Vgs)과 Vth 간의 전압 차로 인하여 약 60[㎂]가 되는 것이다.
상술한 플래시 메모리에 있어서의 동작 특성으로 인하여, 0으로 지워지는 동작이 많을 경우 동작 전류가 증가되므로, 이에 따라 동작 전류를 생성하기 위하여 전체적인 전력 소모가 커지는 문제점이 있다.
따라서, 플래시 메모리의 소모 전력을 줄일 수 있는 방법의 필요성이 대두된다. 이 같은 요청에 따라 개발된 선행기술로서 한국등록특허 제10-0464951호 "플래시 메모리 소모 전력 감소 장치 및 방법"이 제안되었다.
상기 선행기술은 플래시 메모리에 저장된 데이터를 선택적으로 반전하여 전력 소모가 적은 방향으로 데이터를 저장하는 구성에 관한 것이다. 다만 상기 선행기술은 작은 용량의 플래시 메모리를 전제로 개발된 것이므로 최근의 기술 발전에 따라 대용량화되고 복잡화된 플래시 메모리 장치에 적합한 새로운 데이터 재구성 방법의 필요성이 새롭게 대두되고 있는 시점이다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 플래시 메모리에 저장된 바이너리 데이터를 읽을 때 소모 전력을 줄일 수 있는 플래시 메모리의 소모 전력 감소 방법 및 그 장치를 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 바이너리 데이터를 플래시 메모리의 가로축 방향 세그먼트와 세로축 방향 세그먼트로 각각 분할하고, 분할된 각각의 세그먼트에 대해 비트 값 '0'의 개수가 '1'의 개수 이하가 되도록 비트 변환한 후 두 방향 중 비트 변환된 '0'의 전체 개수가 적은 방향으로 비트 변환된 바이너리 데이터를 플래시 메모리에 저장함으로써, 플래시 메모리에 저장된 데이터를 읽을 때 센스 앰프의 소모 전류가 많은 '0'의 개수가 적어지고, 이를 통해 센스 앰프의 전체 소모 전류를 최소화할 수 있다.
추가적으로, 본 발명은 바이너리 데이터를 분석하여 일정 횟수 이상 반복 수행되는 데이터 영역(데이터가 빈번하게 억세스되는 데이터 영역)을 hot-spot으로 설정하여 해당 데이터 영역에 포함된 데이터의 비트 값을 모두 '1'로 변환하여 플래시 메모리에 저장하고, hot-spot의 원본 데이터를 별도의 저장 수단에 저장한 후 플래시 메모리에 저장된 바이너리 데이터를 읽을 때 hot-spot에 대한 데이터는 별도의 저장 수단에서 읽음으로써, 플래시 메모리에 저장된 데이터를 읽을 때 센스 앰프의 전체 소모 전류를 줄일 수 있다.
또한, 본 발명은 플래시 메모리를 읽을 때 센스 앰프의 소모 전력을 감소시킴으로써, 플래시 메모리가 탑재된 기기의 전체 소모 전력을 줄일 수 있는 플래시 메모리의 소모 전력 감소 방법 및 그 장치를 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 단계; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 단계를 포함한다.
나아가, 본 발명에 따른 방법은 상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 단계를 더 포함할 수 있다.
상기 저장하는 단계는 상기 전체 개수가 많은 방향의 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장하고, 상기 읽는 단계는 상기 저장된 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽을 수 있다.
상기 비트 변환을 수행하는 단계는 해당 세그먼트 단위를 미리 결정된 복수의 세부 세그먼트들로 분할하고, 상기 복수의 세부 세그먼트들 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제2 값 개수 이하가 되도록 비트 변환을 수행할 수 있다.
본 발명의 다른 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 단계; 상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 단계; 및 상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 단계를 포함한다.
나아가, 본 발명에 따른 방법은 상기 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하는 단계; 및 상기 데이터 영역을 제외한 상기 분할된 상기 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계를 더 포함하고, 상기 저장하는 단계는 상기 비트 변환된 상기 바이너리 데이터를 상기 플래시 메모리에 저장할 수 있다.
더 나아가, 본 발명에 따른 방법은 상기 세그먼트 각각에 대하여 미리 저장된 비트 변환 여부에 대한 플래그 비트의 값을 확인하고, 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 단계를 더 포함할 수 있다.
더 나아가, 본 발명에 따른 방법은 상기 플래시 메모리에 저장된 상기 바이너리 데이터를 읽는 단계를 더 포함하고, 상기 데이터 영역에 해당하는 데이터는 상기 저장 수단으로부터 읽을 수 있다.
본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 장치는 외부로부터 바이너리 데이터를 수신하는 수신부; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 제1 변환부; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 제2 변환부; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 비교부; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 저장부를 포함한다.
본 발명의 다른 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 장치는 외부로부터 바이너리 데이터를 수신하는 수신부; 상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 검출부; 상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 제1 변환부; 및 상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 저장부를 포함한다.
본 발명에 따르면, 바이너리 데이터를 플래시 메모리의 가로축 방향 세그먼트와 세로축 방향 세그먼트로 각각 분할하고, 분할된 각각의 세그먼트에 대해 비트 값 '0'의 개수가 '1'의 개수 이하가 되도록 비트 변환한 후 두 방향 중 비트 변환된 '0'의 전체 개수가 적은 방향으로 비트 변환된 바이너리 데이터를 플래시 메모리에 저장함으로써, 플래시 메모리에 저장된 데이터를 읽을 때 센스 앰프의 소모 전류가 많은 '0'의 개수가 적어지고, 이를 통해 센스 앰프의 전체 소모 전류를 최소화할 수 있다.
나아가, 본 발명은 바이너리 데이터를 분석하여 일정 횟수 이상 반복 수행되는 데이터 영역을 hot-spot으로 설정하여 해당 데이터 영역에 포함된 데이터의 비트 값을 모두 '1'로 변환하여 플래시 메모리에 저장하고, hot-spot의 원본 데이터를 별도의 저장 수단에 저장한 후 플래시 메모리 저장된 바이너리 데이터를 읽을 때 hot spot에 대한 데이터는 별도의 저장 수단에서 읽음으로써, 플래시 메모리에 저장된 데이터를 읽을 때 센스 앰프의 전체 소모 전류를 줄일 수 있다.
이런, 본 발명은 플래시 메모리를 읽을 때 센스 앰프의 소모 전력을 감소시킬 수 있기 때문에 플래시 메모리가 탑재된 기기의 전체 소모 전력을 줄일 수 있다.
또한, 본 발명은 바이너리 데이터(또는 코드)를 변환하는 기법과 인코딩/디코딩 로직 그리고 추가적인 플래그 정보를 저장하기 위한 저장 영역을 통하여 소모 전력을 줄일 수 있기 때문에 기존의 센스 앰프만을 가지고도 원하는 목적을 달성할 수 있다.
도 1은 일반적인 플래시 메모리의 등가 회로도를 나타낸 것이다.
도 2는 일반적인 플래시 메모리에 대한 일 실시예의 동작 특성의 그래프를 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 장치에 대한 구성을 나타낸 것이다.
도 4는 플래시 메모리의 제1 방향으로 세그먼트하여 비트 변환을 수행하는 일 예시도를 나타낸 것이다.
도 5는 플래시 메모리의 제2 방향으로 세그먼트하여 비트 변환을 수행하는 일 예시도를 나타낸 것이다.
도 6은 플래시 메모리의 제1 방향으로 복수의 세부 세그먼트들을 분할하여 비트 변환을 수행하는 일 예시도를 나타낸 것이다.
도 7은 본 발명의 다른 일 실시예에 따른 플래시 메모리의 소모 전력 감소 장치에 대한 구성을 나타낸 것이다.
도 8은 바이너리 데이터에 대해 설정된 hot-spot의 데이터를 비트 값 '1'로 모두 변환하는 일 예시도를 나타낸 것이다.
도 9는 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법에 대한 동작 흐름도를 나타낸 것이다.
도 10은 도 9에 의해 저장된 바이너리 데이터를 읽는 방법에 대한 일 실시예의 동작 흐름도를 나타낸 것이다.
도 11은 본 발명의 다른 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법에 대한 동작 흐름도를 나타낸 것이다.
도 12는 도 11에 도시된 단계 S1160에 대한 일 실시예 동작 흐름도를 나타낸 것이다.
도 13은 도 11에 의해 저장된 바이너리 데이터를 읽는 방법에 대한 일 실시예의 동작 흐름도를 나타낸 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 단계; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 단계를 포함한다.
나아가, 본 발명에 따른 방법은 상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 단계를 더 포함할 수 있다.
상기 저장하는 단계는 상기 전체 개수가 많은 방향의 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장하고, 상기 읽는 단계는 상기 저장된 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽을 수 있다.
상기 비트 변환을 수행하는 단계는 해당 세그먼트 단위를 미리 결정된 복수의 세부 세그먼트들로 분할하고, 상기 복수의 세부 세그먼트들 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제2 값 개수 이하가 되도록 비트 변환을 수행할 수 있다.
본 발명의 다른 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 단계; 상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 단계; 및 상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 단계를 포함한다.
나아가, 본 발명에 따른 방법은 상기 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하는 단계; 및 상기 데이터 영역을 제외한 상기 분할된 상기 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계를 더 포함하고, 상기 저장하는 단계는 상기 비트 변환된 상기 바이너리 데이터를 상기 플래시 메모리에 저장할 수 있다.
더 나아가, 본 발명에 따른 방법은 상기 세그먼트 각각에 대하여 미리 저장된 비트 변환 여부에 대한 플래그 비트의 값을 확인하고, 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 단계를 더 포함할 수 있다.
더 나아가, 본 발명에 따른 방법은 상기 플래시 메모리에 저장된 상기 바이너리 데이터를 읽는 단계를 더 포함하고, 상기 데이터 영역에 해당하는 데이터는 상기 저장 수단으로부터 읽을 수 있다.
본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 장치는 외부로부터 바이너리 데이터를 수신하는 수신부; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 제1 변환부; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 제2 변환부; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 비교부; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 저장부를 포함한다.
본 발명의 다른 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 장치는 외부로부터 바이너리 데이터를 수신하는 수신부; 상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 검출부; 상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 제1 변환부; 및 상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 저장부를 포함한다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시 예에 대한 설명을 통하여 명백히 드러나게 될 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법 및 그 장치를 첨부된 도 3 내지 도 13을 참조하여 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 장치에 대한 구성을 나타낸 것이다.
도 3을 참조하면, 본 발명에 따른 장치는 수신부(310), 제1 변환부(320), 제2 변환부(330), 비교부(340), 저장부(350), 플래시 메모리(360), 제3 변환부(370) 및 읽기부(380)를 포함한다.
수신부(310)는 외부로부터 바이너리 데이터 예를 들어, 소스 코드가 컴파일(compile) 되거나 어셈블(assemble)되어 생성된 바이너리 데이터를 수신한다.
제1 변환부(320)는 플래시 메모리(360)의 제1 방향 예를 들어, address space 방향으로 수신부(310)로 수신된 바이너리 데이터를 미리 설정된 제1 세그먼트 단위로 분할하고, 분할된 제1 세그먼트 단위 각각에서 바이너리 데이터의 제1 값 예를 들어, 비트 값 '0'의 개수가 제2 값 예를 들어, 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행한다.
여기서, 제1 변환부(320)는 '0'의 개수가 '1'의 개수 이하인 제1 세그먼트에 대해서는 비트 변환을 수행하지 않는다.
이하, 발명에 대한 설명의 편의를 위하여 제1 값은 비트 값 '0', 제2 값은 비트 값 '1'로 정의한다. 물론, 플래시 메모리에 따라 비트 값 '1'을 읽을 때 센스 앰프의 소모 전류가 증가할 수도 있으며, 이런 플래시 메모리에서는 제1 값이 비트 값 '1'이 되고, 제2 값이 비트 값 '0'이 될 수 있다. 본 발명에서는 플래시 메모리에 저장된 비트 값 '0'을 읽을 때 센스 앰프의 소모 전류가 증가하는 경우를 예로 설명한다.
제2 변환부(330)는 플래시 메모리(360)의 제2방향 예를 들어, word line 방향으로 수신부로 수신된 바이너리 데이터를 미리 설정된 제2 세그먼트 단위로 분할하고, 분할된 제2 세그먼트 단위 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행한다.
여기서, 제2 변환부(330)는 '0'의 개수가 '1'의 개수 이하인 제2 세그먼트에 대해서는 비트 변환을 수행하지 않는다.
비교부(340)는 제1 변환부(320)에서 제1 세그먼트 각각에 대해 비트 변환된 바이너리 데이터의 비트 값 '1'의 전체 개수와 제2 변환부(330)에서 제2 세그먼트 각각에 대해 비트 변환된 바이너리 데이터의 비트 값 '1'의 전체 개수를 비교한다.
여기서, 모든 세그먼트(제1 세그먼트, 제2 세그먼트)에 대해 비트 변환된 바이너리 데이터는 비트 변환된 세그먼트와 비트 변환되지 않은 세그먼트를 모두 포함하는 것을 의미하는 것으로, '1'의 전체 개수는 비트 변환된 세그먼트와 비트 변환되지 않은 세그먼트 모두에 포함된 비트 값 '1'의 개수를 말한다.
물론, 비교부(340)는 비트 값 '1'의 전체 개수를 비교하는 것에 한정하지 않으며, 비트 값 '0'의 전체 개수를 비교할 수도 있다.
저장부(350)는 비교부(340)에 의한 비교 결과를 수신하고, '1'의 전체 개수가 많은 방향으로 비트 변환된 바이너리 데이터를 플래시 메모리(360)에 저장한다.
예를 들어, 저장부(350)는 제1 변환부(320)에 의해 비트 변환된 바이너리 데이터의 비트 값 '1'의 전체 개수가 제2 변환부(330)에 의해 비트 변환된 바이너리 데이터의 비트 값 '1'의 전체 개수보다 많은 경우, 제1 변환부(320)에 의해 비트 변환된 바이너리 데이터를 플래시 메모리(360)에 저장한다.
이 때, 저장부(350)는 플래시 메모리(360)에 비트 변환된 바이너리 데이터를 저장할 때, 해당 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장할 수 있으며, 플래그 비트는 플래시 메모리(360)의 미리 설정된 영역에 저장될 수도 있지만 이에 한정하지 않으며 플래시 메모리(360)가 아닌 별도의 저장 수단에 저장될 수도 있다.
또한, 저장부(350)는 플래시 메모리(360)에 저장된 바이너리 데이터의 세그먼트 단위와 세그먼트 방향에 대한 정보를 플래시 메모리(360)의 일정 영역에 저장할 수도 있고, 별도의 저장 수단에 저장할 수 있으며, 이에 대한 정보는 제3 변환부(370)에서 플래시 메모리(360)에 저장된 데이터를 비트 변환할 때 사용될 수 있다.
이하, 해당 세그먼트가 비트 변환된 경우 플래그 비트의 비트 값이 '1', 해당 세그먼트가 비트 변환되지 않은 경우 플래그 비트의 비트 값이 '0'인 것으로 가정하여 설명한다.
제3 변환부(370)는 플래시 메모리(360)에 저장된 바이너리 데이터를 읽기 위하여, 미리 결정된 세그먼트 단위로 플래시 메모리(360)에 저장된 바이너리 데이터를 비트 변환한다. 즉, 제3 변환부(370)는 센스 앰프를 통하여 플래시 메모리(360)에 저장된 바이너리 데이터를 수신하고, 이를 세그먼트 각각에 대하여 비트 변환을 수행한다.
이 때, 제3 변환부(370)는 플래시 메모리(360)에 바이너리 데이터를 저장할 때의 세그먼트 단위와 세그먼트 방향에 기초하여 비트 변환을 수행할 수 있다.
나아가, 제3 변환부(370)는 세그먼트 각각에 대해 저장된 플래그 비트의 비트 값에 기초하여 세그먼트 각각에 대하여 비트 변환을 수행하거나 비트 변환을 수행하지 않을 수 있다. 즉, 제3 변환부(370)는 해당 세그먼트의 플래그 비트 값이 '1'인 경우 해당 세그먼트에 대한 바이너리 데이터에 대해 값이 '1'인 비트를 값이 '0'인 비트로 전환하고, 값이 '0'인 비트를 값이 '1'인 비트로 전환한다.
읽기부(380)는 제3 변환부(370)에 의해 비트 변환된 바이너리 데이터를 읽는다.
즉, 읽기부(380)는 비트 변환되어 플래시 메모리(360)에 저장된 바이너리 데이터를 제3 변환부(370)를 통해 다시 비트 변환하여 수신부(310)로 수신된 바이너리 데이터를 복원하여 읽는다.
이런 본 발명에 따른 플래시 메모리의 소모 전력 감소 장치에 대해 도 4 내지 도 6을 예를 들어 설명한다.
도 4는 플래시 메모리의 제1 방향으로 세그먼트하여 비트 변환을 수행하는 일 예시도를 나타낸 것으로, 제1 변환부(320)에 의해 비트 변환하는 경우를 나타낸 것이다.
도 4에서 알 수 있듯이, 제1 변환부(320)는 플래시 메모리의 address space 방향으로 바이너리 데이터를 세그먼트 단위로 분할하고, 분할된 세그먼트 각각에 대하여 '1'의 개수와 '0'의 개수를 파악하여 '1'의 개수가 '0'의 개수보다 적거나 같은 세그먼트에 대해서는 비트 값 '1'과 비트 값 '0'을 전환하는 비트 변환(local inversion)을 수행하고, '1'의 개수가 '0'의 개수보다 많은 세그먼트에 대해서는 비트 변환을 수행하지 않는다.
예컨대, 첫 번째 세그먼트(410)의 경우 세그먼트에 포함된 비트 값 '1'의 개수가 7개 이고, 비트 값 '0'의 개수가 9개 이기 때문에 비트 변환을 수행한다. 마찬가지로, 두 번째 세그먼트와 네 번째 세그먼트 또한 비트 값 '0'의 개수가 '1'의 개수보다 많기 때문에 비트 변환을 수행하고, 세 번째 세그먼트와 다섯 번째 세그먼트는 비트 값 '0'의 개수가 '1'의 개수보다 적기 때문에 비트 변환을 수행하지 않는다.
이런 세그먼트 각각의 비트 변환 여부에 대한 값은 미리 결정된 저장 공간에 플래그 비트(420)로 저장되며, 비트 변환이 수행된 세그먼트에 대해서는 플래그 비트 값 '1'이 저장되고, 비트 변환이 수행되지 않은 세그먼트에 대해서는 플래그 비트 값 '0'이 저장된다.
도 4의 비트 변환 과정에 의해 바이너리 데이터에 포함된 '1'의 개수가 36개에서 48개로 늘어나고, '0'의 개수가 44개에서 32개로 줄어든 것을 알 수 있다.
도 5는 플래시 메모리의 제2 방향으로 세그먼트하여 비트 변환을 수행하는 일 예시도를 나타낸 것으로, 제2 변환부(330)에 의해 비트 변환하는 경우를 나타낸 것이다.
도 5에서 알 수 있듯이, 제2 변환부(330)는 플래시 메모리의 word line 방향으로 바이너리 데이터를 세그먼트 단위로 분할하고, 분할된 세그먼트 각각에 대하여 '1'의 개수와 '0'의 개수를 파악하여 '1'의 개수가 '0'의 개수보다 적거나 같은 세그먼트에 대해서는 비트 값 '1'과 비트 값 '0'을 전환하는 비트 변환(local inversion)을 수행하고, '1'의 개수가 '0'의 개수보다 많은 세그먼트에 대해서는 비트 변환을 수행하지 않는다.
예컨대, 첫 번째 세그먼트(510)의 경우 세그먼트에 포함된 비트 값 '1'의 개수가 9개 이고, 비트 값 '0'의 개수가 11개 이기 때문에 비트 변환을 수행한다. 마찬가지로, 세 번째 세그먼트 또한 비트 값 '0'의 개수가 '1'의 개수보다 많기 때문에 비트 변환을 수행하고, 두 번째 세그먼트와 네 번째 세그먼트는 비트 값 '0'의 개수가 '1'의 개수보다 적기 때문에 비트 변환을 수행하지 않는다.
이런 세그먼트 각각의 비트 변환 여부에 대한 값은 미리 결정된 저장 공간에 플래그 비트(520)로 저장되며, 비트 변환이 수행된 세그먼트에 대해서는 플래그 비트 값 '1'이 저장되고, 비트 변환이 수행되지 않은 세그먼트에 대해서는 플래그 비트 값 '0'이 저장된다.
도 5의 비트 변환 과정에 의해 바이너리 데이터에 포함된 '1'의 개수가 36개에서 52개로 늘어나고, '0'의 개수가 44개에서 28개로 줄어든 것을 알 수 있다.
이와 같이, 제1 변환부(320)에 의해 비트 변환된 바이너리 데이터의 '1'의 개수가 48개 이고, 제2 변환부(330)에 의해 비트 변환된 바이너리 데이터의 '1'의 개수가 52개 이기 때문에 저장부(350)는 제2 변환부(330)에 의해 비트 변환된 바이너리 데이터를 플래시 메모리에 저장하게 된다. 물론, 제2 변환부(330)에 의해 비트 변환된 바이너리 데이터의 세그먼트 단위와 방향에 대한 정보 또한 저장되어야 하며, 제3 변환부(370)는 이에 대한 정보에 기초하여 플래시 메모리에 저장된 데이터를 세그먼트 단위로 비트 변환할 수 있다.
도 6은 플래시 메모리의 제1 방향으로 복수의 세부 세그먼트들을 분할하여 비트 변환을 수행하는 일 예시도를 나타낸 것으로, 도 4에 도시된 세그먼트 단위를 복수의 세부 세그먼트들로 분할한 경우를 나타낸 것이다.
도 6에서 알 수 있듯이, 세그먼트 각각을 4개의 세부 세그먼트들로 분할되어 있으며, 세부 세그먼트들 각각에 대한 플래그 비트(620)를 가지고 있다. 즉, 도 6은 가로 방향과 세로 방향의 일정 크기를 하나의 세그먼트 단위로 분할한 것으로 볼 수 있으며, 분할된 각각의 세그먼트인 세부 세그먼트 각각에 대하여 비트 변환 여부를 판단하고, 비트 변환 판단을 통하여 비트 변환을 수행할 수 있다. 물론, 비트 변환된 세부 세그먼트에 대해서는 플래그 비트 값이 '1'로 결정되고, 비트 변환되지 않은 세부 세그먼트에 대해서는 플래그 비트 값이 '0'으로 결정된다.
예컨대, 첫 번째 세부 세그먼트(611), 두 번째 세부 세그먼트(612), 세 번째 세부 세그먼트(613)의 경우에는 '0'의 개수가 '1'의 개수와 같거나 많기 때문에 비트 변환을 수행하고, 네 번째 세부 세그먼트(613)의 경우에는 '0'의 개수가 '1'의 개수보다 적기 때문에 비트 변환을 하지 않는다. 이로 인해 해당 세부 세그먼트들에 대한 플래그 비트 값은 '1110'이 된다.
도 6의 비트 변환 과정을 통해 알 수 있듯이, 바이너리 데이터에 포함된 '1'의 개수가 36개에서 56개로 늘어나고, '0'의 개수가 44개에서 24개로 줄어든 것을 알 수 있다.
물론, 도 6의 경우 플래그 비트를 저장하기 위한 공간이 도 4와 도 5에 비해 더 많이 필요한 것은 사실이지만, 바이너리 데이터의 용량 또는 크기에 따라 더 뛰어난 성능을 가질 수도 있다. 또한, 세부 세그먼트 단위는 상황에 따라 상이하게 조절할 수도 있으며, 이런 세부 세그먼트 단위 별로 비트 개수를 계산함으로써, 세부 세그먼트 단위를 결정할 수도 있다.
이와 같이, 본 발명에 따른 장치는 바이너리 데이터를 플래시 메모리의 가로축 방향 세그먼트와 세로축 방향 세그먼트로 각각 분할하고, 분할된 각각의 세그먼트에 대해 비트 값 '0'의 개수가 '1'의 개수 이하가 되도록 비트 변환한 후 두 방향 중 비트 변환된 '0'의 전체 개수가 적은 방향 또는 '1'의 개수가 많은 방향으로 비트 변환된 바이너리 데이터를 플래시 메모리에 저장함으로써, 플래시 메모리에 저장된 데이터를 읽을 때 센스 앰프의 소모 전류가 많은 '0'의 개수가 적어지고, 이를 통해 센스 앰프의 전체 소모 전류를 최소화할 수 있다.
도 7은 본 발명의 다른 일 실시예에 따른 플래시 메모리의 소모 전력 감소 장치에 대한 구성을 나타낸 것이고, 도 8은 바이너리 데이터에 대해 설정된 hot-spot의 데이터를 비트 값 '1'로 모두 변환하는 일 예시도를 나타낸 것이다.
도 7과 도 8을 참조하면, 본 발명에 따른 장치는 수신부(710), 검출부(720), 제1 변환부(730), 제2 변환부(740), 저장부(750), 저장 수단(760), 플래시 메모리(770), 제3 변환부(780) 및 읽기부(790)를 포함한다.
수신부(710)는 외부로부터 바이너리 데이터 예를 들어, 소스 코드가 컴파일(compile) 되거나 어셈블(assemble)되어 생성된 바이너리 데이터를 수신한다.
검출부(720)는 수신부(710)로 수신된 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출한다.
여기서, 일정 횟수 이상 반복되는 데이터 영역(hot-spot)에 대한 예로는, 프로그램에서 루프(loop) 명령에 의해 반복되는 코드의 영역이 될 수 있으며, 이 외에도 다양한 형태의 코드가 포함될 수 있다. 실제로 프로그램 코드에는 루프(loop), 분기(branch) 등 조건에 따라 또는 무조건적으로 수행되는 특수한 코드가 존재한다. 프로그램 코드는 순차적으로 100% 균등하게 실행되는 것이 아니라 각 코드의 특성 상 자주 실행되는 코드가 존재하고 드물게 실행되는 코드가 존재한다.
이러한 현상을 경험칙상 10%의 코드가 90%의 시간 동안 수행되는 10/90의 법칙 등으로 표현하기도 한다. 경우에 따라서는 20%의 코드가 80%의 시간 동안 수행되는 20/80의 법칙으로 표현되기도 한다.
이 때, 검출부(720)는 소스 코드 즉, 바이너리 데이터의 특성을 고려하여 hot-spot을 검출할 수 있으며, hot-spot을 검출하는 방식은 소스 코드 분석을 통해 이루어질 수 있다.
검출부(720)는 검출된 데이터 영역의 데이터를 저장 수단(760) 예를 들어, 레지스터(register)에 저장한다.
여기서, 저장 수단(760)은 플래시 메모리(770)와 별개의 수단으로 도시되어 있지만, 이에 한정하지 않고, 플래시 메모리(770)의 일정 영역이 될 수도 있다.
예컨대, 검출부(720)는 도 8에 도시된 바와 같이, 데이터 분석을 통하여 두 번째 세그먼트(810)에 해당하는 데이터를 hot-spot 데이터로 검출한다.
제1 변환부(730)는 검출부(720)에 의해 검출된 데이터 영역(hot-spot)에 해당하는 바이너리 데이터의 모든 비트 값을 '1'로 변환한다.
제2 변환부(740)는 수신부(710)로 수신된 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하고, 분할된 세그먼트 단위 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 '1'의 개수 이하가 되도록 비트 변환을 수행한다.
여기서, 제2 변환부(740)는 검출부(720)에 의해 검출된 데이터 영역을 제외한 세그먼트 각각에서 비트 변환 여부를 결정하여 비트 변환을 수행할 수도 있고, 데이터 영역(hot-spot)을 포함하는 모든 세그먼트 각각에서 비트 변환을 수행할 수도 있다.
도 7의 장치에서 제2 변환부(740)의 구성은 상황에 따라 제거될 수도 있다. 즉, 수신부(710)로 수신된 바이너리 데이터 중 hot-spot에 포함된 데이터를 제외한 데이터에 대해 비트 변환을 수행하지 않을 수도 있다.
나아가, 제2 변환부(740)는 상황에 따라 세그먼트 방향을 조절할 수도 있으며, 세그먼트 방향에 대해서는 도 3에서 설명한 제1 방향과 제2 방향일 수 있다.
저장부(750)는 제1 변환부(730)와 제2 변환부(740)에 의해 비트 변환된 바이너리 데이터를 플래시 메모리(770)에 저장한다.
이 때, 저장부(750)는 검출부(720)에 의해 검출된 데이터 영역(hot-spot)의 모든 데이터를 제1 변환부(730)에 의해 변환된 비트 값 '1'로 저장하고, 상황에 따라 제2 변환부(740)가 장치에 구비되지 않은 경우에는 수신부(710)로 수신되는 바이너리 데이터에 대해 비트 변환을 수행하지 않고 플래시 메모리(770)에 바로 저장할 수 있다. 물론, 이 경우 저장부(750)는 hot-spot에 해당하는 바이너리 데이터만을 모두 '1'로 저장하게 된다.
저장부(750)는 제2 변환부(740)에 의해 비트 변환된 바이너리 데이터를 플래시 메모리(770)에 저장할 때, 해당 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장할 수 있으며, 플래그 비트는 플래시 메모리의 미리 설정된 영역에 저장될 수도 있지만 이에 한정하지 않으며 플래시 메모리가 아닌 별도의 저장 공간에 저장될 수도 있다.
예컨대, 저장부(750)는 도 8에 도시된 바와 같이, 제1 변환부(730)에 의해 변환된 데이터 즉, 비트 값 '1'을 두 번째 세그먼트(820)에 저장하고, 해당 세그먼트가 hot-spot이라는 것을 별도의 hot-spot 비트(830)로 저장한다.
비록, 도 8에서 세부 세그먼트들로 분할된 예를 도시하였지만, 이에 한정하지 않는다.
또한, 저장부(750)는 플래시 메모리(770)에 저장된 바이너리 데이터의 세그먼트 단위, 필요에 따라 세그먼트 방향에 대한 정보를 플래시 메모리(770)의 일정 영역에 저장할 수도 있고, 별도의 저장 공간 예를 들어, 저장 수단(760)에 저장할 수도 있으며, 이에 대한 정보는 제3 변환부(780)에서 플래시 메모리(770)에 저장된 데이터를 비트 변환할 때 사용될 수 있다.
한편 본 발명에서 hot-spot에 저장된 원래의 데이터를 별도의 저장 공간(760)에 저장한 경우, 실제로 데이터를 읽는 과정에서는 세그먼트(820)를 빈번하게 액세스하지는 않는다. 그러나 세그먼트(820)에 임의의 데이터가 저장되거나 세그먼트(820)에 실제로 저장된 데이터에 대한 정보를 유실하게 되는 경우에는 세그먼트(820)에 해당하는 메모리 셀의 신뢰성을 저하시키는 원인이 될 수 있다. 따라서 세그먼트(820)에는 관리가 용이하도록 모두 '1'의 값을 저장할 수 있는데, 이로 인하여 메모리 셀의 안정성을 높일 수 있다. 또한 플래시 메모리에 저장된 데이터의 무결성을 체크하기 위하여 주기적으로 또는 아이들링 타임(idling time) 에 플래시 메모리에 저장된 데이터를 순차적으로 읽는 기능이 제공되는 경우가 있는데, 이 때 세그먼트(820)에 '1'의 값을 저장해 둠으로써 무결성 체크 시에 소모되는 전력의 양을 절감할 수 있는 효과가 있다.
제3 변환부(780)는 플래시 메모리(770)에 저장된 바이너리 데이터를 읽기 위하여, 미리 결정된 세그먼트 단위로 플래시 메모리(770)에 저장된 바이너리 데이터를 비트 변환하고, hot-spot에 저장된 비트 값 '1'을 가지는 데이터를 저장 수단(760)에 저장된 바이너리 데이터 즉, hot-spot에 해당하는 원본 바이너리 데이터로 대체한다.
이 때, 제3 변환부(780)는 세그먼트 각각에 대해 저장된 플래그 비트의 비트 값에 기초하여 세그먼트 각각에 대하여 비트 변환을 수행하거나 비트 변환을 수행하지 않을 수 있다. 즉, 제3 변환부(780)는 해당 세그먼트의 플래그 비트 값이 '1'인 경우 해당 세그먼트에 대한 바이너리 데이터에 대해 값이 '1'인 비트를 값이 '0'인 비트로 전환하고, 값이 '0'인 비트를 값이 '1'인 비트로 전환한다. 물론, 제3 변환부(780)는 hot-spot에 저장된 데이터의 경우 저장 수단(760)에 저장된 바이너리 데이터로 대체한다.
읽기부(790)는 제3 변환부(780)에 의해 비트 변환된 바이너리 데이터를 읽는다.
즉, 읽기부(790)는 수신부(710)로 수신된 바이너리 데이터가 비트 변환되어 플래시 메모리(770)에 저장된 바이너리 데이터와 저장 수단(760)에 저장된 hot-spot 데이터를 제3 변환부(780)를 통해 다시 비트 변환하여 수신부(710)로 수신된 바이너리 데이터를 복원하여 읽는다.
이와 같이, 본 발명에 따른 플래시 메모리의 소모 전력 감소 장치는 hot-spot 데이터를 검출하고, 검출된 hot-spot 데이터를 모두 '1'로 비트 변환하여 플래시 메모리에 저장함으로써, 소스 코드에서 일정 회수 이상 반복되어 자주 읽혀지는 바이너리 데이터를 읽을 때 발생되는 센스 앰프의 소모 전류를 최소화시킬 수 있으며, 이를 통해 바이너리 데이터를 모두 읽는데 소모되는 전력을 최소화할 수 있다.
도 9는 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법에 대한 동작 흐름도를 나타낸 것으로, 도 3에 구성된 장치에서의 동작 흐름도를 나타낸 것이다.
도 9를 참조하면, 본 발명에 따른 방법은 외부로부터 바이너리 데이터를 수신하고, 수신된 바이너리 데이터를 플래시 메모리의 제1 방향 예를 들어, address space 방향으로 미리 결정된 제1 세그먼트 단위로 분할한 후 제1 세그먼트 단위 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행한다(S910 내지 S930).
제1 방향으로 세그먼트를 분할하고, 비트 변환을 수행하는 예는 도 4에 도시되어 있으며, 이에 대한 설명은 앞서 기술하였기에 여기서는 생략한다.
그리고, 수신된 바이너리 데이터를 플래시 메모리의 제2 방향 예를 들어, word line 방향으로 미리 결정된 제2 세그먼트 단위로 분할한 후 제2 세그먼트 단위 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행한다(S940, S950).
제2 방향으로 세그먼트를 분할하고, 비트 변환을 수행하는 예는 도 5에 도시되어 있으며, 이에 대한 설명은 앞서 기술하였기에 여기서는 생략한다.
상기 단계 S920과 S940에서 분할된 제1 세그먼트와 제2 세그먼트 단위는 상황에 따라 세부 세그먼트들로 분할될 수 있으며, 세부 세그먼트들로 분할되는 경우 세부 세그먼트들 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행할 수 있다. 이에 대한 것은 도 6에서 상세히 설명하였다.
그리고, 단계 S940과 S950이 단계 S930 이후에 수행되는 것으로 도시되었지만, 이에 한정하지 않고 단계 S920, S930과 병렬적으로 수행될 수도 있다.
상기 과정들을 통하여 제1 세그먼트 단위로 비트 변환된 바이너리 데이터에 포함된 비트 값 '1'의 전체 개수와 제2 세그먼트 단위로 비트 변환된 바이너리 데이터에 포함된 비트 값 '1'의 전체 개수를 비교한다(S960).
단계 S960 비교 결과, '1'의 전체 개수가 많은 방향으로 세그먼트 분할되어 비트 변환된 바이너리 데이터를 플래시 메모리에 저장하고, 플래시 메모리에 저장되는 바이너리 데이터의 세그먼트 방향과 세그먼트 단위 나아가 세그먼트 각각에 대한 플래그 비트를 저장한다(S970, S980).
여기서, 플래시 메모리에 저장되는 바이너리 데이터의 세그먼트 방향과 세그먼트 단위 나아가 세그먼트 각각에 대한 플래그 비트는 플래시 메모리의 일정 영역에 저장될 수도 있고, 별도의 저장 수단에 저장될 수도 있다.
도 10은 도 9에 의해 저장된 바이너리 데이터를 읽는 방법에 대한 일 실시예의 동작 흐름도를 나타낸 것이다.
도 10을 참조하면, 플래시 메모리에 비트 변환되어 저장된 바이너리 데이터에 대한 세그먼트 방향, 나아가 세그먼트 단위를 확인한다(S1010).
그리고, 세그먼트 단위 각각에 대한 플래그 비트 값을 통해 세그먼트 각각의 비트 변환 여부를 확인한다(S1020).
단계 S1020을 통해 플래그 비트 값이 '1'인 경우 해당 세그먼트에 저장된 데이터에 대해서는 비트 변환을 수행하고, 플래그 비트 값이 '0'인 경우 해당 세그먼트에 저장된 데이터에 대해서는 비트 변환을 수행하지 않는다(S1030).
단계 S1030에서 센스 앰프를 통해 플래시 메모리에 저장된 데이터 즉, '0'의 개수가 적은 비트 변환된 바이너리 데이터를 읽어 오기 때문에 센스 앰프의 소모 전류를 줄일 수 있다.
세그먼트 각각에 대해 비트 변환을 수행하거나 비트 변환을 수행하지 않은 바이너리 데이터를 읽는다(S1040).
이와 같은 과정을 통해 플래시 메모리에 저장된 비트 변환된 바이너리 데이터를 읽을 수 있다.
도 11은 본 발명의 다른 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법에 대한 동작 흐름도를 나타낸 것으로, 도 7에 구성된 장치에서의 동작 흐름도를 나타낸 것이다.
도 11을 참조하면, 본 발명에 따른 방법은 방법은 외부로부터 바이너리 데이터를 수신하고, 수신된 바이너리 데이터를 분석하여 일정 횟수 이상 반복되는 데이터 영역 즉, hot-spot을 검출한다(S1110 내지 S1130).
여기서, hot-spot은 수신되는 바이너리 데이터의 특성을 고려하여 분석함으로써, 검출될 수 있으며, 이 뿐만 아니라 hot-spot을 검출할 수 있는 다양한 조건을 고려할 수 있다.
Hot-spot이 검출되면, 검출된 hot-spot에 포함된 데이터를 저장 수단에 저장하고, hot-spot에 포함된 데이터에 대한 모든 비트 값을 '1'로 변환한다(S1140, S1150).
모든 비트 값이 '1'로 변환된 hot-spot을 포함하는 바이너리 데이터를 플래시 메모리에 저장한다(S1160).
이 때, hot-spot에 포함된 데이터 이외의 바이너리 데이터에 대하여 비트 변환을 수행할 수도 있으며, 이에 대해 도 12을 참조하여 설명한다.
도 12는 도 11에 도시된 단계 S1160에 대한 일 실시예 동작 흐름도를 나타낸 것이다.
도 12를 참조하면, 플래시 메모리에 저장하는 단계(S1160)는 수신된 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하고, 세그먼트 단위 각각에서 바이너리 데이터의 비트 값 '0'의 개수가 비트 값 '1'의 개수 이하가 되도록 비트 변환을 수행한다(S1210, S1220).
이 때, 세그먼트 단위 및 세그먼트 방향에 대한 정보는 별도로 저장될 수 있다.
단계 S1220에 의해 비트 변환된 바이너리 데이터를 플래시 메모리에 저장하고, 세그먼트 각각에 대한 플래그 비트를 플래시 메모리 또는 별도의 저장 수단에 저장한다(S1230, S1240).
여기서, 단계 S1230은 비트 변환된 바이너리 데이터를 플래시 메모리에 저장할 때 hot-spot에 해당하는 데이터 영역은 비트 값 '1'로 모두 저장된다.
도 13은 도 11에 의해 저장된 바이너리 데이터를 읽는 방법에 대한 일 실시예의 동작 흐름도를 나타낸 것이다.
도 13을 참조하면, 플래시 메모리에 비트 변환되어 저장된 바이너리 데이터에 대한 세그먼트 단위, 나아가 세그먼트 방향을 확인하고, 세그먼트 단위 각각에 대한 플래그 비트 값을 확인한다(S1310, S1320).
단계 S1320을 통해 확인된 플래그 비트 값이 '1'인 경우 해당 세그먼트에 저장된 데이터에 대해서는 비트 변환을 수행하고, 플래그 비트 값이 '0'인 경우 해당 세그먼트에 저장된 데이터에 대해서는 비트 변환을 수행하지 않는다(S1330).
이 때, hot-spot에 해당하는 영역에 대해서는 비트 변환을 수행할 수도 있고 수행하지 않을 수도 있으며, 플래시 메모리에 저장된 읽기가 자주 반복 수행되는 hot-spot에 해당하는 영역의 데이터가 모두 비트 값 '1'이기 때문에 센스 앰프의 소모 전류를 최소화할 수 있다.
그리고, 별도의 저장 수단에 저장된 hot-spot에 해당하는 영역의 원본 바이너리 데이터를 확인한다(S1340).
세그먼트 각각에 대해 비트 변환된 바이너리 데이터와 단계 S1340에서 확인된 hot-spot에 해당하는 영역의 원본 바이너리 데이터를 읽는다(S1350).
이와 같은 과정을 통해 플래시 메모리에 저장된 비트 변환된 바이너리 데이터를 읽을 수 있다.
본 발명의 일 실시 예에 따른 플래시 메모리의 소모 전력 감소 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
플래시 메모리의 소모 전력 감소 방법 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 플래시 메모리의 소모 전력 감소 방법은 외부로부터 바이너리 데이터를 수신하는 단계; 플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 단계; 상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 단계; 및 상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 단계를 포함하고, 상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 단계를 더 포함함으로써, 플래시 메모리를 읽을 때의 소모 전력을 감소시킬 수 있다.

Claims (15)

  1. 외부로부터 바이너리 데이터를 수신하는 단계;
    플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계;
    상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 단계;
    상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 단계; 및
    상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 단계
    를 포함하는 플래시 메모리의 소모 전력 감소 방법.
  2. 제1항에 있어서,
    상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 단계
    를 더 포함하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  3. 제2항에 있어서,
    상기 저장하는 단계는
    상기 전체 개수가 많은 방향의 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장하고,
    상기 읽는 단계는
    상기 저장된 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  4. 제1항에 있어서,
    상기 비트 변환을 수행하는 단계는
    해당 세그먼트 단위를 미리 결정된 복수의 세부 세그먼트들로 분할하고, 상기 복수의 세부 세그먼트들 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제2 값 개수 이하가 되도록 비트 변환을 수행하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  5. 외부로부터 바이너리 데이터를 수신하는 단계;
    상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 단계;
    상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 단계; 및
    상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 단계
    를 포함하는 플래시 메모리의 소모 전력 감소 방법.
  6. 제5항에 있어서,
    상기 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하는 단계; 및
    상기 데이터 영역을 제외한 상기 분할된 상기 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 단계
    를 더 포함하고,
    상기 저장하는 단계는
    상기 비트 변환된 상기 바이너리 데이터를 상기 플래시 메모리에 저장하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  7. 제6항에 있어서,
    상기 세그먼트 각각에 대하여 미리 저장된 비트 변환 여부에 대한 플래그 비트의 값을 확인하고, 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 단계
    를 더 포함하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  8. 제5항에 있어서,
    상기 플래시 메모리에 저장된 상기 바이너리 데이터를 읽는 단계
    를 더 포함하고,
    상기 데이터 영역에 해당하는 데이터는
    상기 저장 수단으로부터 읽는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 방법.
  9. 제1항 내지 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  10. 외부로부터 바이너리 데이터를 수신하는 수신부;
    플래시 메모리의 제1 방향으로 미리 설정된 제1 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 제1 변환부;
    상기 플래시 메모리의 제2 방향으로 미리 설정된 제2 세그먼트 단위 각각에서 상기 바이너리 데이터의 상기 제1 값 개수가 상기 제1 값 개수 이하가 되도록 비트 변환을 수행하는 제2 변환부;
    상기 제1 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수와 상기 제2 방향으로 비트 변환된 상기 바이너리 데이터의 상기 제2 값에 대한 전체 개수를 비교하는 비교부; 및
    상기 전체 개수가 많은 방향으로 상기 바이너리 데이터에 대해 비트 변환된 변환 바이너리 데이터를 상기 플래시 메모리에 저장하는 저장부
    를 포함하는 플래시 메모리의 소모 전력 감소 장치.
  11. 제10항에 있어서,
    상기 플래시 메모리에 저장된 상기 변환 바이너리 데이터를 상기 전체 개수가 많은 방향의 세그먼트 단위로 비트 변환하여 읽는 읽기부
    를 더 포함하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 장치.
  12. 제11항에 있어서,
    상기 저장부는
    상기 전체 개수가 많은 방향의 세그먼트 각각에 대하여 비트 변환 여부에 대한 플래그 비트를 저장하고,
    상기 읽기부는
    상기 저장된 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 장치.
  13. 외부로부터 바이너리 데이터를 수신하는 수신부;
    상기 수신된 상기 바이너리 데이터를 분석하여 미리 결정된 횟수 이상 반복되는 데이터 영역을 검출하는 검출부;
    상기 검출된 상기 데이터 영역에 해당하는 데이터의 모든 비트 값을 미리 결정된 제1 비트 값으로 변환하는 제1 변환부; 및
    상기 제1 비트 값으로 변환되기 전의 상기 데이터 영역에 해당하는 데이터를 미리 결정된 저장 수단에 저장하고, 상기 제1 비트 값으로 변환된 상기 데이터 영역을 포함하는 상기 바이너리 데이터를 플래시 메모리에 저장하는 저장부
    를 포함하는 플래시 메모리의 소모 전력 감소 방법.
  14. 제13항에 있어서,
    상기 바이너리 데이터를 미리 결정된 세그먼트 단위로 분할하고, 상기 데이터 영역을 제외한 상기 분할된 상기 세그먼트 단위 각각에서 상기 바이너리 데이터의 제1 값 개수가 제2 값 개수 이하가 되도록 비트 변환을 수행하는 제2 변환부
    를 더 포함하고,
    상기 저장부는
    상기 제1 변환부와 상기 제2 변환부에서 비트 변환된 상기 바이너리 데이터를 상기 플래시 메모리에 저장하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 장치.
  15. 제14항에 있어서,
    상기 세그먼트 각각에 대하여 미리 저장된 비트 변환 여부에 대한 플래그 비트의 값을 확인하고, 상기 플래그 비트의 값이 비트 변환 값인 경우 해당 세그먼트를 비트 변환하여 읽는 읽기부
    를 더 포함하는 것을 특징으로 하는 플래시 메모리의 소모 전력 감소 장치.
PCT/KR2013/000427 2012-11-06 2013-01-18 플래시 메모리의 소모 전력 감소 방법 및 그 장치 WO2014073747A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0124865 2012-11-06
KR1020120124865A KR101379883B1 (ko) 2012-11-06 2012-11-06 플래시 메모리의 소모 전력 감소 방법 및 그 장치

Publications (1)

Publication Number Publication Date
WO2014073747A1 true WO2014073747A1 (ko) 2014-05-15

Family

ID=50656167

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/000427 WO2014073747A1 (ko) 2012-11-06 2013-01-18 플래시 메모리의 소모 전력 감소 방법 및 그 장치

Country Status (2)

Country Link
KR (1) KR101379883B1 (ko)
WO (1) WO2014073747A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
KR20070112021A (ko) * 2006-05-18 2007-11-22 가부시끼가이샤 도시바 Nand형 플래시 메모리 장치 및 메모리 디바이스
KR20090014036A (ko) * 2007-08-03 2009-02-06 삼성전자주식회사 읽기 디스터번스로 인한 에러를 방지하는 메모리 시스템 및그 방법
US20100002504A1 (en) * 2008-07-02 2010-01-07 Mosaid Technologies Incorporated Mulitple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
KR20100061306A (ko) * 2008-11-28 2010-06-07 삼성전자주식회사 불휘발성 메모리 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
KR20070112021A (ko) * 2006-05-18 2007-11-22 가부시끼가이샤 도시바 Nand형 플래시 메모리 장치 및 메모리 디바이스
KR20090014036A (ko) * 2007-08-03 2009-02-06 삼성전자주식회사 읽기 디스터번스로 인한 에러를 방지하는 메모리 시스템 및그 방법
US20100002504A1 (en) * 2008-07-02 2010-01-07 Mosaid Technologies Incorporated Mulitple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
KR20100061306A (ko) * 2008-11-28 2010-06-07 삼성전자주식회사 불휘발성 메모리 장치

Also Published As

Publication number Publication date
KR101379883B1 (ko) 2014-04-01

Similar Documents

Publication Publication Date Title
WO2014073747A1 (ko) 플래시 메모리의 소모 전력 감소 방법 및 그 장치
WO2019190277A1 (ko) 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
WO2021091022A1 (ko) 머신 러닝 시스템 및 머신 러닝 시스템의 동작 방법
WO2009148273A2 (ko) Rfid 서비스를 위한 rfid 태그 및 그의 rfid 서비스 방법
WO2019190073A1 (en) Electronic device and control method thereof
WO2020171427A1 (ko) 어플리케이션을 프리페치하는 전자 장치 및 방법
WO2017126786A1 (ko) 악성 코드 분석을 위한 전자 장치 및 이의 방법
WO2019168315A1 (en) Trustzone graphic rendering method and display device using the same
WO2017206879A1 (zh) 一种移动终端应用程序的处理方法、装置、存储介质及电子设备
WO2023106572A1 (ko) 가상 자산 부정 거래 탐지를 위한 탐지 모델의 학습 방법, 탐지 모델을 이용한 가상 자산 부정 거래의 탐지 방법 및 이들을 수행하는 장치 및 컴퓨터 프로그램
WO2016064131A1 (ko) 데이터 처리 방법 및 장치
WO2020166855A1 (en) Electronic device and control method thereof
WO2021085786A1 (ko) 집적 회로 및 그것을 포함하는 시스템 제어 장치
WO2020027618A1 (en) Electronic apparatus including non-volatile memory
WO2019039713A1 (en) METHOD AND APPARATUS FOR LOCATION DETERMINATION USING IDENTIFICATION INFORMATION CORRESPONDING TO AN EXTERNAL ELECTRONIC DEVICE
WO2015005718A1 (en) Method of controlling operation mode and electronic device therefor
WO2017206884A1 (zh) 应用程序关闭方法、装置、存储介质及电子设备
WO2015080440A1 (en) Method and processor for executing instructions, method and apparatus for encoding instructions, and recording medium therefor
WO2023003246A1 (ko) 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법
WO2021125521A1 (ko) 순차적 특징 데이터 이용한 행동 인식 방법 및 그를 위한 장치
WO2015102266A1 (en) Processor and method of controlling the same
WO2016023509A1 (zh) 呈现文件的方法和文件呈现装置
WO2020213885A1 (en) Server and control method thereof
EP3472711A1 (en) Data input/output unit, electronic apparatus, and control methods thereof
WO2022097798A1 (ko) 중간언어 기반 코드 변환 방법 및 이를 포함하는 전자 장치

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

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

Country of ref document: EP

Kind code of ref document: A1