KR101747123B1 - 데이터를 저장 매체에 기입하는 방법 및 장치 - Google Patents

데이터를 저장 매체에 기입하는 방법 및 장치 Download PDF

Info

Publication number
KR101747123B1
KR101747123B1 KR1020167020677A KR20167020677A KR101747123B1 KR 101747123 B1 KR101747123 B1 KR 101747123B1 KR 1020167020677 A KR1020167020677 A KR 1020167020677A KR 20167020677 A KR20167020677 A KR 20167020677A KR 101747123 B1 KR101747123 B1 KR 101747123B1
Authority
KR
South Korea
Prior art keywords
write
data
writing
storage
storage medium
Prior art date
Application number
KR1020167020677A
Other languages
English (en)
Other versions
KR20160102565A (ko
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 KR20160102565A publication Critical patent/KR20160102565A/ko
Application granted granted Critical
Publication of KR101747123B1 publication Critical patent/KR101747123B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 저장 매체에 데이터를 기입하는 방법 및 장치에 관한 것이다. 상기 데이터를 기입하는 방법은, 저장 매체의 기입 사이클(write cycle)에 따라 상기 저장 매체의 저장 단위(storage unit)에 데이터를 기입하는 단계 - 상기 저장 단위는 상기 저장 매체의 판독/기입 단위(read/write unit)임 -; 기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, 상기 n개의 저장 단위 중에서, 상기 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트하는 단계; 및 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작하는 단계를 포함한다. 제1 기입 사이클 동안 저장 단위에 기입하는 것이 성공한 경우에 관한 통계가 수집되고, 제1 기입 사이클 동안 상기 k개의 저장 단위에 대한 기입 작동이 완료되는 경우, 상기 제2 기입 사이클 동안 m개의 다음의 저장 단위에 대한 기입 작동이 시작되며, 이는 상기 저장 매체에 데이터를 기입하는 데 있어서 효율을 향상시킬 수 있다.

Description

데이터를 저장 매체에 기입하는 방법 및 장치{METHOD AND APPARATUS FOR WRITING DATA TO STORAGE MEDIUM}
삭제
본 발명은 데이터 저장 분야에 관한 것으로, 상세하게는 저장 매체에 데이터를 기입하는 장치 및 방법에 관한 것이다.
데이터를 저장 매체에 기입하는 프로세스에서, 저장 매체의 저장 단위들(storage units) 간의 개별적인 차이 때문에, 모든 저장 단위에 기입하는 것이 하나의 기입 작동(write operation)을 수행하여 성공하지 못할 수도 있고, 일부 저장 단위에 기입하는 것이 복수의 기입 작동이 반복적으로 수행되어야만 성공할 수도 있다.
현재, 데이터는 일반적으로 저장 매체에 일괄적으로 기입된다. 일반적으로, 기입-인에이블 제어(write-enable control)가 뱃치(batch)의 모든 저장 단위에 대해 수행된다. 이러한 뱃치의 저장 단위의 모든 비트(bit)가 성공적으로 기입되는지 여부가 판정된다. 성공적이지 않게 기입된 비트가 존재하는 경우, 기입-인에이블 제어가 이러한 뱃치에 대해 유지될 필요가 있다. 이러한 뱃치의 모든 저장 단위에 기입하는 것이 성공한 후에만, 기입-인에이블 제어가 다음 뱃치의 저장 단위에 대해 시작되어 다음 뱃치에 대해 기입 작동을 수행할 수 있게 된다.
서로 다른 저장 단위에 성공적인 기입을 위해 필요한 횟수(이는 저장 단위들 간의 개별적인 차이에 의존함)가 서로 다르기 때문에, 전술한 방식의 뱃치 기입에서의 데이터 기입 효율은 비교적 낮다.
이를 고려하여, 본 발명은 데이터를 저장 매체에 기입하는 프로세스에서의 비교적 커다란 개별적인 차이에 의해 야기되는 비교적 낮은 데이터 기입 효율의 문제를 해결하기 위하여, 저장 매체에 데이터를 기입하는 방법 및 장치를 제공한다.
전술한 기술적인 문제를 해결하기 위하여, 일 양태에 따라, 본 발명은 저장 매체에 데이터를 기입하는 방법을 제공한다. 상기 데이터를 기입하는 방법은,
저장 매체의 기입 사이클(write cycle)에 따라 상기 저장 매체의 저장 단위(storage unit)에 데이터를 기입하는 단계 - 상기 저장 단위는 상기 저장 매체의 판독/기입 단위(read/write unit)임 -;
기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, 상기 n개의 저장 단위 중에서, 상기 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트하는 단계 - n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수임 -; 및
기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작하는 단계 - m은 1보다 크거나 같은 정수이며, 상기 제2 기입 사이클은 상기 제1 기입 사이클에 인접한, 상기 제1 기입 사이클의 다음의 기입 사이클임 - 를 포함한다.
제1 양태를 참조하여, 제1 가능한 구현 방식에서, m은 k보다 작거나 같다.
제1 양태를 참조하여, 제2 가능한 구현 방식에서, m은 N-(n-k)보다 작거나 같고, N은 동시 실행(concurrent execution)의 최대 수량으로서, 상기 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 상기 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같다.
제1 양태 및 제1 양태의 제1 가능한 구현 방식과 제2 가능한 구현 방식 중 어느 하나를 참조하여, 제3 가능한 구현 방식에서, 데이터 양이 m개의 저장 단위인 데이터에 대한 상기 기입 작동의 총 기입 전력 소비(total write power consumption)가, 상기 제1 기입 사이클 동안 기입이 성공한 상기 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같다.
전술한 기술적인 문제를 해결하기 위하여, 제2 양태에 따라, 본 발명은 저장 매체에 데이터를 기입하는 장치를 제공한다. 상기 데이터를 기입하는 장치는,
저장 매체의 기입 사이클에 따라 상기 저장 매체의 저장 단위에 데이터를 기입하도록 구성된 데이터 기입 유닛(data writing unit) - 상기 저장 단위는 상기 저장 매체의 판독/기입 단위임 -;
상기 n개의 저장 단위 중에서 제1 기입 사이클 동안 기입에 성공한 저장 단위의 수량 k를 카운트하도록 구성된 카운팅 유닛(counting unit) - n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수임 -; 및
기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 상기 카운팅 유닛에 연결되고, 상기 데이터 기입 유닛이 제2 기입 사이클 동안 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동을 수행할 수 있게끔 하도록 구성된 시작 유닛(starting unit) - m은 1보다 크거나 같은 정수이며, 상기 제2 기입 사이클은 상기 제1 기입 사이클에 인접한, 상기 제1 기입 사이클의 다음의 기입 사이클임 - 을 포함한다.
제2 양태를 참조하여, 제1 가능한 구현 방식에서, m은 k보다 작거나 같다.
제2 양태를 참조하여, 제2 가능한 구현 방식에서, m은 N-(n-k)보다 작거나 같고, N은 동시 실행의 최대 수량으로서, 상기 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 상기 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같다.
제2 양태 및 제2 양태의 제1 가능한 구현 방식과 제2 가능한 구현 방식 중 어느 하나를 참조하여, 제3 가능한 구현 방식에서, 데이터 양이 m개의 저장 단위인 데이터에 대한 상기 기입 작동의 총 기입 전력 소비가, 상기 제1 기입 사이클 동안 기입이 성공한 상기 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같다.
제1 기입 사이클 동안 n(n은 2보다 크거나 같은 정수)개의 저장 단위 중에서 성공적으로 기입된 저장 단위의 개수가 카운트되고, 카운팅의 결과가 기입 작동이 제1 기입 사이클 동안 k(k는 1보다 크거나 같은 정수)개의 저장 단위에서 완료된 것을 나타내는 경우, 제2 기입 사이클 동안, 제1 기입 사이클 동안 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, m(m은 1보다 크거나 같은 정수)개의 다음의 저장 단위에 대해 기입 작동이 추가적으로 시작된다. 따라서, 제2 기입 사이클 동안 데이터를 기입하는 능력은, 데이터를 저장 매체에 기입하는 데 있어서의 효율을 효과적으로 향상시키기 위해 활용될 수 있다.
본 발명의 다른 특징 및 양태를 더 명확하게 하기 위하여, 실시예에 대해 다음의 첨부 도면를 참조하여 자세히 설명한다.
본 발명의 실시예에서의 과제 해결수단을 더 명확하게 설명하기 위하여, 이하에서는 실시예를 설명하기 위해 필요한 첨부 도면을 간략히 소개한다. 명백히, 다음의 설명에서의 첨부 도면은 본 발명의 일부 실시예를 나타낼 뿐이고, 당업자는 창의적인 노력 없이도 이러한 첨부한 도면으로부터 다른 도면을 여전히 도출할 수 있을 것이다.
도 1은 본 발명의 실시예 1에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다.
도 2는 데이터를 저장 매체에 일괄적으로 기입하는 프로세스의 개략도이다.
도 3은 본 발명의 실시예 1에서 제공된 방법에 따른, 데이터를 저장 매체에 기입하는 프로세스의 개략도이다.
도 4는 본 발명의 실시예 2에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다.
도 5는 본 발명의 실시예 3에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다
도 6은 본 발명의 실시예 4에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다.
도 7은 본 발명의 실시예 5에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다.
도 8은 본 발명의 실시예 6에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다.
도 9는 데이터를 저장 매체에 2 단계로 일괄적으로 저장하는 순서도이다.
도 10은 본 발명의 실시예 6에서 제공된 방법에 따라 데이터를 저장 매체에 2 단계로 기입하는 순서도이다.
도 11은 본 발명의 실시예 7에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다.
도 12는 본 발명의 실시예 8에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다.
도 13은 본 발명의 실시예 9에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다.
도 14는 본 발명의 실시예 10에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 다양한 실시예, 특징, 및 양태에 대해 상세하게 설명한다. 첨부한 도면에서의 동일한 도면 부호는 동일하거나 유사한 기능을 가진 엘리먼트를 나타낸다. 달리 명시되지 않은 한, 첨부한 도면에 도시된 실시예의 다양한 양태는 반드시 축적에 맞게 도시될 필요는 없다.
본 명세서에서 특별히 사용된 단어 "예시적인"은 "예나 실시예로서 사용되는, 또는 예가 되는"을 나타낸다. 일 실시예로서 설명되는 어떠한 실시예도 다른 실시예에 대하여 선호되거나 더 나은 것으로 해석되어서는 안된다.
또한, 복수의 특정 세부사항이 본 발명을 더 잘 설명하기 위하여 다음의 특정한 구현 방식으로 제시된다. 하지만, 당업자라면 본 발명이 일부 특정 세부사항 없이 실시될 수 있다는 것을 이해하여야 한다. 다른 일부 예에서, 본 발명의 요지를 강조하기 위하여 당업자에게 잘 알려진 방법, 수단, 엘리먼트, 및 회로에 대해 자세히 설명하지 않는다.
도 1은 본 발명의 실시예 1에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 1에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은, 주로 이하를 포함한다:
S100. 저장 매체의 기입 사이클에 따라 데이터를 저장 매체의 저장 단위에 기입한다. 여기서, 저장 단위는 저장 매체의 판독/기입 단위(read/write unit)이다.
S110. 기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트한다. 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수이다.
S120. 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작한다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다.
명세서에서, 용어 "저장 단위"는 데이터가 기입되는 저장 매체의 판독/기입 단위를 지칭한다. 구체적으로, 저장 단위는 기입된 데이터의 비트(bit), 바이트(byte), 또는 뱅크(bank) 등의 단위를 지칭할 수도 있다. 기술의 발전에 따라, 데이터의 또 다른 판독/기입 단위가 또한 본 발명에서 설명되는 "저장 단위"의 해석 범위에 포함될 수도 있다.
제1 기입 사이클 동안 성공적으로 기입되는 저장 단위의 개수가 카운트된다. 제1 기입 사이클 동안 k개의 저장 단위에 기입하는 것이 성공하는 경우, m개의 다음의 저장 단위에 대한 기입 작동이 제2 기입 사이클 동안 시작되며, 이는 데이터를 저장 매체에 기록하는 데 있어서의 효율을 향상시킬 수 있다.
유의해야 할 것은, 전술한 저장 매체는 상변화 메모리(Phase Change Memory, PCM), 다중값 상변화 메모리(multivalue phase change memory), 및 저항변화 메모리(Resistive Random Access Memory, RRAM)를 포함하지만 이에 제한되지 않는다는 것이다. 또한, 제1 기입 사이클 동안 저장 단위에 기입된 데이터의 컨텐츠는 제2 기입 사이클 동안 저장 단위에 기입된 데이터의 컨텐츠와 서로 다를 수 있다. 예를 들어, 제1 기입 사이클 동안 저장 단위에 기입된 데이터가 1이면, 제2 기입 사이클 동안 저장 단위에 기입된 데이터는 0일 수 있다; 제1 기입 사이클 동안 저장 단위에 기입된 데이터가 0이면, 제2 기입 사이클 동안 저장 단위에 기입된 데이터는 1일 수 있다.
예를 들어, 하나의 비트(bit)의 데이터가 저장 매체의 4개의 저장 단위에 개별적으로 기입되고, 각각의 기입 사이클 동안, 저장 매체가 기입 작동이 최대 2개의 저장 단위에 대해 동시에 실행되도록 허용하는 것이 추정된다.
데이터가 종래 기술에서 일괄적으로 기입되는 경우, 도 2에 도시된 바와 같이, 기입 사이클 0-T1에서, 제1 비트(즉, 비트 0)의 데이터는 제1 저장 단위에 기입되고, 제2 비트(즉, 비트 1)의 데이터는 제2 저장 단위에 기입된다. 제1 저장 단위에 기입하는 것은 하나의 기입 작동만을 수행함으로써 성공할 수 있고, 제2 저장 단위에 기입하는 것은 2개의 기입 작동을 수행함으로써 성공할 수 있다 . 따라서, 기입 사이클 0-T1이 종료되는 때, 제1 저장 단위에 기입하는 것이 성공하고, 기입 사이클 T1-T2 동안 제2 저장 단위에 대한 기입 작동이 지속된다. 기입 사이클 T1-T2이 종료되는 때, 제2 저장 단위에 기입하는 것이 성공한다.
기입 사이클 T2-T3 동안, 제3 비트(즉, 비트 2)의 데이터가 제3 저장 단위에 기입되고, 제4 비트(즉, 비트 3)의 데이터는 제4 저장 단위에 기입된다. 제4 저장 단위에 기입하는 것은 하나의 기입 작동만을 수행함으로써 성공할 수 있고, 제3 저장 단위에 기입하는 것은 2개의 기입 작동을 수행함으로써 성공할 수 있다. 따라서, 기입 사이클 T2-T3가 종료되면 제4 저장 단위에 기입하는 것이 성공하고, 기입 사이클 T3-T4가 종료되면 제3 저장 단위에 기입하는 것이 성공한다. 전술한 데이터를 일괄적으로 기입하는 것은 4개의 기입 사이클을 소비한다는 것을 알 수 있다.
도 3에 도시된 바와 같이 데이터가 본 실시예에서의 방법에 따라 기입되는 경우, 이와 유사하게, 기입 사이클 0-T1에서, 제1 비트(즉, 비트 0)의 데이터는 제1 저장 단위에 기입되고, 제2 비트(즉, 비트 1)의 데이터는 제2 저장 단위에 기입된다. 기입 사이클 0-T1이 종료되면 제1 저장 단위에 기입하는 것이 성공하고, 기입 사이클 T1-T2 동안 제2 저장 단위에 대한 기입 작동이 지속되며, 제3 저장 단위에 대한 기입 작동이 제3 비트(즉, 비트 2)의 데이터를 제3 저장 단위에 기입하기 위해 시작된다. 기입 사이클 T1-T2이 종료되는 때, 제2 저장 단위에 기입하는 것이 성공한다.
기입 사이클 T2-T3 동안 제3 저장 단위에 대한 기입 작동이 지속되고, 제4 저장 단위에 대한 기입 작동이 제4 비트(즉, 비트 3)의 데이터를 제4 저장 단위에 기입하기 위해 시작된다. 지금까지는, 2개의 기입 작동이 제3 저장 단위에 대해 수행되었고, 하나의 기입 작동이 제4 저장 단위에 대해 수행되었다. 따라서, 기입 사이클 T2-T3이 종료되는 때 제3 저장 단위 및 제4 저장 단위 양자 모두에 기입하는 것이 성공한다. 본 실시예에서의 방법에 따라 전술한 데이터를 기입하는 것은 3개의 기입 사이클을 소비한다는 것을 알 수 있다.
결론적으로, 데이터를 일괄적으로 기입하는 방식과 비교하여, 본 특허는 저장 매체에 데이터를 기입하는 데 있어서 효율을 향상시키고, 모든 저장 단위에 기입하는 것이 성공하는 것을 보장한다.
도 4는 본 발명의 실시예 2에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 4에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은, 주로 이하를 포함한다.
S410. 저장 매체의 기입 사이클 동안 데이터의 컨텐츠에 따라 데이터를 저장 매체의 저장 단위에 단계적으로 기입한다.
구체적으로, 기입 0 작동(write 0 operation) 및 기입 1 작동(write 1 operation)이 예로서 사용된다. 기입 0 작동을 위한 시간이 더 짧고 기입 1 작동의 기입 전류가 더 약하면, 데이터는 저장 매체에 2 단계로 기입된다. 제1 단계에서, 기입 0 작동이 실행되고, 기입 0 작동을 위한 시간이 더 짧기 때문에, 제1 단계에서 소비되는 시간이 더 짧다; 제2 단계에서, 기입 1 작동이 실행되고, 기입 1 작동의 기입 전류가 더 약하기 때문에, 더 많은 기입 1 작동이 제2 단계에서 동시에 실행될 수 있다.
이러한 방식으로, 데이터가 데이터의 컨텐츠에 따라 저장 매체의 저장 단위에 단계적으로 기입되며, 이는 저장 매체에 데이터를 기입하는 데 있어서 효율을 향상시킬 수 있다.
S420. 기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트한다. 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크다.
S430. 제2 기입 사이클 동안 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행한다.
S440. 제2 기입 사이클 동안 카운트된 k가 1보다 크거나 같으면, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동이 시작될 수 있다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다.
기입 작동이 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 수행되며, 이는 저장 매체의 모든 저장 단위에 기입하는 것이 성공하는 것을 보장할 수 있다.
도 5는 본 발명의 실시예 3에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 5에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은 이하를 포함한다:
S510. 기입될 데이터를 저장 매체 내의 기존의 데이터와 비교하여, 기입될 데이터와 기존의 데이터 사이에 변경되는 데이터 부분을 결정한다.
S520. 변화된 데이터 부분을 기입 사이클에 따라 저장 매체의 대응하는 저장 단위에 기입한다.
S530. 기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트한다. 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수이다.
S540. 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작한다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다.
이러한 방식으로, 기입될 데이터와 기존의 데이터 사이의 변화된 데이터 부분을 결정하기 위해 데이터는 저장 매체 내의 기존의 데이터와 비교되고, 변화된 데이터 부분만이 저장 매체의 대응하는 저장 단위에 기입되며, 이는 저장 매체에 데이터를 기입하는 데 있어서 효율을 향상시킬 수 있다.
도 6는 본 발명의 실시예 4에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 6에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은 이하를 포함한다:
S600. 데이터를 기입하기 위해 소비된 시간을 데이터의 반전된 데이터(inverted data)를 기입하기 위해 소비된 시간과 비교한다.
S610. 데이터를 기입하기 위해 소비된 시간이 데이터의 반전된 데이터를 기입하기 위해 소비된 시간보다 길면, 데이터를 반전시키고 데이터의 인버전 플래그 비트(inversion flag bit)를 유효한 것으로 설정한다.
S620. 반전된 데이터를 기입 사이클에 따라 저장 매체의 저장 단위에 기입한다.
S630. 기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트한다. 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수이다.
S640. 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작한다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다. 이러한 방식으로, 데이터를 기입하기 위해 소비된 시간은 데이터의 반전된 데이터를 기입하기 위해 소비된 시간과 비교된다; 데이터를 기입하기 위해 소비된 시간이 데이터의 반전된 데이터를 기입하기 위해 소비된 시간보다 길면, 데이터가 반전되고 데이터의 인버전 플래그 비트는 유효하다고 설정되며, 반전된 데이터가 기입 사이클에 따라 저장 매체의 저장 단위에 기입되고, 이는 저장 매체에 데이터를 기입하는 데 있어서 효율을 향상시킬 수 있다.
도 7은 본 발명의 실시예 5에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 7에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은 이하를 포함할 수 있다:
S710. 성공적으로 기입된 저장 단위를 카운트한다.
S720. 카운트하는 단계의 결과가 k개의 저장 단위에 기입하는 것이 제1 기입 사이클 동안 성공하는 것을 나타내면, 제2 기입 사이클 동안 m개의 다음의 저장 단위에 대한 기입 작동을 시작한다. 여기서, m은 k보다 작거나 같을 수 있다. 도 7에서, m=k가 설명을 위한 예로서 사용되고, 각각의 기입 사이클 동안 기입 작동이 n개의 저장 단위에 대해 동시에 실행될 수 있다.
구체적으로, 제1 기입 사이클 동안, 데이터 0 내지 데이터 n이 저장 단위 0 내지 저장 단위 n에 대응하게 기입되고, 성공적으로 기입된 저장 단위 0 내지 저장 단위 n이 카운트된다. 기입이 성공적이지 않은 저장 단위에 대해, 제2 기입 사이클 동안 기입 작동이 지속된다; 기입이 성공한 저장 단위에 대해, 기입이 성공한 저장 단위의 수량 k가 카운트되고, 제2 기입 사이클 동안 기입 작동이 m개의 다음의 저장 단위(즉, 저장 단위 n+1 내지 저장 단위 n+m)에 대해 시작된다.
유의해야 할 것은, 전술한 저장 단위를 뒤따르는 추가적인 개수는 서로 다른 저장 단위를 나타내기 위해 사용된다는 것이다. 예를 들어, 저장 단위는 저장 매체의 n번째 저장 단위를 나타낸다.
저장 매체의 동시 수행의 최대 수량은 N이라고 추정된다. 여기서, 동시 수행의 최대 수량 N은, 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 양을 나타내고, N은 양의 정수이다. 기입 작동이 데이터를 저장 매체에 기입하는 초기에 N 저장 단위에 대해 동시에 실행되면, 제2 기입 사이클 동안, 제1 기입 사이클 동안 기입이 성공한 저장 단위에 대해 기입 작동을 시작하는 것은, 데이터를 저장 매체에 기입하는 전체 프로세스에서 데이터가 최대 효율로 기입되는 것을 보장할 수 있다.
가능한 구현 방식에서, m은 N-(n-k)보다 작거나 같을 수 있다. 여기서, N은 동시 수행의 최대 수량이고 각각의 기입 사이클에서 (n-k)는 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량를 나타내며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같다.
m이 N-(n-k)와 같으면, 데이터를 저장 매체에 기입하는 전체 프로세스에서 데이터가 최대 효율로 기입되는 것이 보장될 수 있다.
도 8은 본 발명의 실시예 6에 따른, 저장 매체에 데이터를 기입하는 방법의 흐름도이다. 도 8에 도시된 바와 같이, 저장 매체에 데이터를 기입하는 방법은 이하를 포함할 수 있다:
S810. 성공적으로 기입된 저장 단위를 카운트한다.
S820. 카운트하는 단계의 결과가 k개의 저장 단위에 기입하는 것이 제1 기입 사이클 동안 성공한 것을 나타내면, 제2 기입 사이클 동안 m개의 다음의 저장 단위에 대한 기입 작동을 시작한다. 여기서, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비(total write power consumption)가 제1 기입 사이클 동안 기입이 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같다.
구체적으로, 제1 기입 사이클 동안, 데이터 0 내지 데이터 n이 저장 단위 0 내지 저장 단위 n에 대응하게 기입되고, 성공적으로 기입된 저장 단위 0 내지 저장 단위 n이 카운트된다. 기입이 성공적이지 않은 저장 단위에 대해, 제2 기입 사이클 동안 기입 작동이 지속된다; 기입이 성공한 저장 단위에 대해, 저장 단위의 총 기입 전력 소비가 계산되고, 제2 기입 사이클 동안 m개의 다음의 저장 단위(즉, 저장 단위 n+1 내지 저장 단위 n+m)에 대해 기입 작동이 시작되며, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비가 제1 기입 사이클 동안 기입에 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같아지게 진다.
기입 사이클 동안 저장 단위의 총 기입 전력 소비가 저장 매체에 데이터를 기입하는 초기에 최대 기입 전력 소비인 것이 보장되면, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비를 제1 기입 사이클 동안 기입에 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같아지게 하는 것은, 각각의 기입 사이클 동안 각각의 저장 단위에 대한 기입 작동이 원활하게 완료되는 것을 보장할 수 있다.
데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비가 제1 기입 사이클 동안 기입에 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비와 같아지게 되며, 이는 데이터를 저장 매체에 기입하는 프로세스에서 데이터가 최대 효율로 기입되는 것을 보장할 수 있다.
유의해야 할 것은, 전술한 기입 전력 소비는 전류 및 전압을 포함하지만, 이에 제한되지 않는다는 것이다. 예를 들어, 기입 전력 소비는 전류이다. 각각의 기입 사이클 동안 저장 매체에 의해 허용되는 최대 기입 전류가 I라고 추정되고, 기입 0 작동의 전류가 i이고 기입 1 작동의 전류가 i'이면, 각각의 기입 사이클 동안 I/i(0) 또는 I/i'(1)가 저장 매체에 동시에 기입될 수 있다.
기입 0 작동 및 기입 1 작동은 예로서 사용된다. 기입 1 작동의 기입 전류가 기입 0 작동의 기입 전류보다 작으면, 제1 기입 사이클 동안 하나의 기입 0 작동이 완료되는 경우, 제2 기입 사이클 동안 하나의 기입 0 작동 또는 적어도 하나의 기입 1 작동이 시작될 수 있다; 제1 기입 사이클 동안 하나의 기입 1 작동이 완료되면, 제2 기입 사이클 동안 하나의 기입 1 작동이 시작될 수 있다; 제1 기입 사이클 동안 복수의 기입 0 작동이 완료되면, 제2 기입 사이클 동안 적어도 하나의 기입 0 또는 기입 1 작동이 시작될 수 있다; 제1 기입 사이클 동안 복수의 기입 1 작동이 완료되면, 제2 기입 사이클 동안 적어도 하나의 기입 1 작동이 시작될 수 있고, 기입 전력 소비 조건이 만족되면 적어도 하나의 기입 0 작동이 시작될 수 있다. 물론, m개의 다음의 저장 단위에 대한 기입 작동이 기입 0 작동 및 기입 1 작동을 포함하지만 이에 제한되지 않고, 기입 0 작동의 기입 전류가 기입 1 작동의 기입 전류보다 작은 경우가 본 발명에서 배제되지 않는다.
예를 들어, 데이터는 저장 매체에 2 단계로 기입되고, 각각의 기입 사이클 동안 최대 2개의 0 또는 4개의 1이 저장 매체에 동시에 기입될 수 있다는 것이 추정된다. 기입될 데이터가 01011011이면, 대응하는 저장 단위에 성공적인 기입을 위해 필요한 기입 작동의 횟수를 다음의 표에 나타내었다:
Figure 112016073233177-pct00001
종래 기술의 뱃치 기입 방식(batch writing manner)에서 데이터가 저장 매체에 2 단계로 기입되는 경우, 뱃치 기입 방식에서 데이터를 2 단계로 기입하는 순서도가 도 9에 도시되어 있다. 여기서, 세로축은 서로 다른 저장 단위의 개수를 나타내고, 가로축은 사이클 수를 나타낸다. 여기서, 세로축은 서로 다른 저장 단위의 개수를 나타내고, 가로축은 사이클 수를 나타낸다. 하나의 사이클에서, 기입 0 작동 및 기입 1 작동은 실행을 위해 2 단계로 분리될 수 있다. 기입 0 작동을 위한 시간이 더 짧고 기입 1 작동을 위해 요구되는 전류가 더 약하면, 모든 기입 0 작동이 제1 단계에서 실행되고, 모든 기입 0 작동이 완료된 후에, 기입 1 작동은 제2 단계에서 시작된다. 물론, 기입 1 작동을 위한 시간이 더 짧고 기입 0 작동을 위해 요구되는 전류가 더 약한 경우가 본 발명에서 배제되지 않고, 이러한 경우 모든 기입 1 작동이 제1 단계에서 실행되며, 모든 기입 1 작동이 완료된 후에 기입 0 작동이 제2 단계에서 시작된다.
데이터가 실시예 6에서 제공된 방법에 따라 저장 매체에 2 단계로 기입되는 경우, 데이터를 단계적으로 기입하는 순서도가 도 10에 도시된다. 여기서, 세로축은 서로 다른 저장 단위의 개수를 나타내고, 가로축은 사이클 수를 나타낸다. 제1 기입 사이클에서, 기입 0 작동이 제1 저장 단위 및 제3 저장 단위에 대해 수행된다. 하나의 기입 작동이 수행되는 때에만 제1 저장 단위에 데이터 기입이 완료될 수 있기 때문에, 제2 기입 사이클이 종료되면 제1 저장 단위에 기입이 성공한다. 제3 기입 사이클에서, 제2 저장 단위에 대한 기입 0 작동이 지속되고, 제6 저장 단위에 대한 기입 0 작동이 시작된다. 제2 저장 단위 및 제6 저장 단위 양자 모두의 데이터 배선이 4개의 기입 작동 수행되는 경우에만 완료될 수 있기 때문에, 제4 기입 사이클이 종료되는 때 제2 저장 단위에 대한 기입 0 작동이 완료되고, 제5 기입 사이클이 종료되는 때 제6 저장 단위에 대한 기입 0 작동이 완료된다. 2개의 0 또는 4개의 1이 데이터가 최대 기입 전력 소비로 기입되는 것을 보장하기 위하여 각각의 기입 사이클 동안 저장 매체에 동시에 기입될 수 있기 때문에, 제5 기입 사이클 동안, 기입 0 작동을 제6 저장 단위에 대해 지속하는 것에 기초하여 제2 저장 단위 및 제4 저장 단위에 대해 기입 1 작동이 시작된다. 제6 기입 사이클 동안, 제2 저장 단위 및 제4 저장 단위에 대해 기입 1 작동을 지속하는 것에 기초하여, 기입 1 작동이 제5 저장 단위 및 제7 저장 단위에 대해 시작된다.
데이터를 일괄적으로 기입하는 방식과 비교하여, 본 발명은 데이터를 저장 매체에 저장하는 데 있어서 효율을 향상시키고, 데이터를 저장 매체에 기입하는 전체 프로세스에서 데이터가 최대 효율로 기입되는 것을 보장할 수 있다는 것을 알 수 있다.
도 11은 본 발명의 실시예 7에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다. 여기서, 저장 매체에 데이터를 기입하는 장치는 데이터 기입 유닛(1110), 카운팅 유닛(1120), 결정 유닛(1130), 및 시작 유닛(1140)을 포함한다.
데이터 기입 유닛(1110)은 저장 매체의 기입 사이클에 따라 데이터를 저장 매체의 저장 단위에 기입하도록 구성된다. 여기서, 저장 단위는 저장 매체의 판독/기입 단위이다.
카운팅 유닛(1120)은 n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트하도록 구성된다. 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수이다.
시작 유닛(1140)은 카운팅 유닛(1120)에 연결되고, 기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 기입 유닛이 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 수행할 수 있도록 구성된다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다.
가능한 구현 방식에서, 데이터 기입 유닛(1110)은 추가적으로, 데이터의 컨텐츠에 따라 데이터를 단계적으로 저장 매체의 저장 단위에 기입하도록 구성된다.
가능한 구현 방식에서, m은 k보다 작거나 같다.
가능한 구현 방식에서, m은 N-(n-k)보다 작거나 같고, N은 동시 실행의 최대 수량으로서, 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같다.
가능한 구현 방식에서, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비는, 제1 기입 사이클 동안 기입이 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같다.
도 12는 본 발명의 실시예 8에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다. 도 11에서의 도면 부호와 동일한 도면 부호를 가진 도 7에서의 구조는 동일한 기능을 가진다. 간략화를 위해, 이러한 구조의 상세한 설명은 생략된다.
도 12에 도시된 바와 같이, 도 12에 도시된 저장 매체에 데이터를 기입하는 장치와 도 11에 도시된 저장 매체에 데이터를 기입하는 장치 사이의 주요 차이는, 도 12에 도시된 장치가 데이터를 저장 매체 내의 기존의 데이터와 비교함으로써 기입될 데이터와 기존의 데이터 사이의 변경된 데이터 부분을 결정하도록 구성된 변경 데이터 결정 유닛(1210)을 더 포함한다는 것이다.
데이터 기입 유닛(1110)은 변경 데이터 결정 유닛(1210)에 연결되고 변화된 데이터 부분을 기입 사이클에 따라 저장 매체의 대응하는 저장 단위에 기입하도록 구성된다.
도 13 본 발명의 실시예 9에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다. 도 11에서의 도면 부호와 동일한 도면 부호를 가진 도 13에서의 구조는 동일한 기능을 가진다. 간략화를 위해, 이러한 구조의 상세한 설명은 생략된다.
도 13에 도시된 바와 같이, 도 13에 도시된 저장 매체에 데이터를 기입하는 장치와 도 11에 도시된 저장 매체에 데이터를 기입하는 장치 사이의 주요 차이는, 도 13에 도시된 장치가 데이터를 기입하기 위해 소비된 시간을 데이터의 반전된 데이터를 기입하기 위해 소비된 시간과 비교하도록 구성된 시간 비교 유닛(1320); 및
시간 비교 유닛(1320)에 연결되고 데이터를 기입하기 위해 소비된 시간이 반전된 데이터를 기입하기 위해 소비된 시간보다 길면, 데이터를 반전하고, 데이터의 인버전 플래그 비트를 유효한 것으로 설정하도록 구성된 반전 및 설정 유닛(1310)을 더 포함한다는 것이다.
데이터 기입 유닛(1110)은 반전 및 설정 유닛(1310)에 연결되고, 반전된 데이터를 기입 사이클에 따라 저장 매체의 대응하는 저장 단위에 기입하도록 구성된다.
도 14는 본 발명의 실시예 10에 따른, 저장 매체에 데이터를 기입하는 장치의 구조적인 블록도이다. 컴퓨팅 능력을 가진 호스트 서버, 개인용 컴퓨터 PC, 휴대용 컴퓨터, 또는 단말기 등일 수 있다. 컴퓨팅 노드의 특정 구현은 본 발명의 특정 실시예에서 제한되지 않는다.
데이터를 저장 매체에 기입하기 위한 장치(1400)는 프로세서(processor, 1410), 통신 인터페이스(Communications Interface, 1420), 메모리(memory, 1430), 및 버스(1440)를 포함한다. 여기서, 프로세서(1410), 통신 인터페이스(1420), 및 메모리(1430)는 버스(1440)를 이용함으로써 상호간의 통신을 수행한다.
통신 인터페이스(1420)은 가상 머신 관리 센터, 및 공유 메모리 등을 포함하는 네트워크 장치와 통신하도록 구성된다.
프로세서(1410)은 프로그램을 실행하도록 구성된다. 프로세서(1410)는 중앙처리장치(CPU), 주문형 반도체(Application Specific Integrated Circuit, ASIC), 또는 본 발명의 이 실시예를 구현하도록 구성된 하나 이상의 집적 회로일 수 있다.
메모리(1430)는 파일을 저장하도록 구성된다. 메모리(1430)는 고속 RAM 메모리를 포함할 수 있고, 비휘발성 메모리(non-volatile memory), 예를 들어, 적어도 하나의 자기 디스크 메모리를 더 포함할 수 있다. 메모리(1430)는 또한 메모리 어레이일 수 있다. 메모리(1430)는 또한 블록으로 분할될 수 있고, 블록은 특정 규칙에 따라 가상의 부피로 결합될 수 있다.
가능한 구현 방식에서, 메모리(1430)에 저장된 전술한 프로그램은 컴퓨터 작동 명령을 포함하는 프로그램 코드일 수 있다. 프로그램을 실행함으로써, 프로세서(1410)는 구체적으로,
저장 매체의 기입 사이클에 따라 데이터를 저장 매체의 저장 단위에 기입하고 - 여기서, 저장 단위는 저장 매체의 판독/기입 단위임 -;
기입 작동이 제1 기입 사이클에서 n개의 저장 단위에 대해 동시에 실행된 후에, n개의 저장 단위 중에서 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트하며 - 여기서, n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수임 -;
기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작하도록 구성될 수 있다. 여기서, m은 1보다 크거나 같은 정수이고, 제2 기입 사이클은 제1 기입 사이클에 인접한, 제1 기입 사이클의 다음의 기입 사이클이다.
가능한 구현 방식에서, m은 k보다 작거나 같다.
가능한 구현 방식에서, m은 N-(n-k)보다 작거나 같고, N은 동시 실행의 최대 수량으로서, 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같다.
가능한 구현 방식에서, 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동의 총 기입 전력 소비는, 제1 기입 사이클 동안 기입이 성공한 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같다.
당업자라면 본 명세서에서 설명되는 실시예에서의 예시적인 유닛 및 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합에 의해 구현될 수 있다는 것을 알 수 있을 것이다. 기능이 하드웨어 또는 소프트웨어에 의해 구현되는지 여부는 특정한 적용 및 과제 해결수단의 설계 제약 조건에 의존한다. 당업자는 특정한 적용을 위해 설명된 기능을 구현하기 위해 서로 다른 방법을 선택할 수 있으나, 이러한 구현이 본 발명의 보호범위를 벗어난 것으로 간주하지 말아야 한다.
기능이 컴퓨터 소프트웨어의 형태로 구현되고 독립적인 제품으로서 팔리거나 사용되면, 본 발명의 과제 해결수단(예컨대, 종래 기술에 기여하는 부분)의 전부 또는 일부가 어느 정도까지는 컴퓨터 소프트웨어 제품의 형태로 구현된다고 간주할 수 있다. 컴퓨터 소프트웨어 제품은 컴퓨터로 일반적으로 판독가능한 비휘발성 저장 매체에 저장되고 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치 등일 수 있음)에게 본 발명의 실시예에서 설명된 방법의 단계의 전부 또는 일부를 수행하도록 지시하는 몇몇 명령을 포함한다. 전술한 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예컨대, USB 플래쉬 드라이브, 리무버블 하드 디스크(removable hard disk), 롬(Read-Only Memory, ROM), 램(Random Access Memory, RAM), 자기 디스크, 또는 광 디스크를 포함한다.
전술한 설명은 단지 본 발명의 특정한 구현 방식일 뿐이며, 본 발명의 보호 범위를 제한하고자 하는 것은 아니다. 본 발명에서 개시된 기술적인 범위 내에서 당업자가 즉시 생각해 낼 수 있는 임의의 변형 또는 대체는 본 발명의 보호 범위에 속할 것이다. 따라서, 본 발명의 보호 범위는 특허 청구 범위의 보호 범위에 따른다.

Claims (8)

  1. 저장 매체에 데이터를 기입하는 방법으로서,
    저장 매체의 기입 사이클(write cycle)에 따라 상기 저장 매체의 저장 단위(storage unit)에 데이터를 기입하는 단계 - 상기 저장 단위는, 데이터의 대응 단위가 기입되는 상기 저장 매체의 판독/기입 단위(read/write unit)임 -;
    기입 작동이 제1 기입 사이클 동안 n개의 저장 단위에 대해 동시에 실행된 후에, 상기 n개의 저장 단위 중에서, 상기 제1 기입 사이클 동안 기입이 성공한 저장 단위의 수량 k를 카운트하는 단계 - n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수임 -; 및
    기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 제2 기입 사이클 동안, 데이터 양이 m개의 저장 단위인 다음 데이터에 대해 기입 작동을 시작하는 단계 - m은 1보다 크거나 같은 정수이며, 상기 제2 기입 사이클은 상기 제1 기입 사이클에 인접한, 상기 제1 기입 사이클의 다음의 기입 사이클임 -
    를 포함하고,
    m은 N-(n-k)보다 작거나 같고, N은 동시 실행(concurrent execution)의 최대 수량으로서, 상기 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 상기 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같고,
    상기 데이터를 기입하는 단계는 데이터의 컨텐츠에 따라, 1 단계에서는 0 비트(0-bits)가 기입되고 2 단계에서는 1 비트(1-bits)가 기입되는 2개의 단계로 수행되는,
    저장 매체에 데이터를 기입하는 방법.
  2. 제1항에 있어서,
    데이터 양이 m개의 저장 단위인 데이터에 대한 상기 기입 작동의 총 기입 전력 소비(total write power consumption)가, 상기 제1 기입 사이클 동안 기입이 성공한 상기 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같은, 저장 매체에 데이터를 기입하는 방법.
  3. 저장 매체에 데이터를 기입하는 장치로서,
    저장 매체의 기입 사이클에 따라 상기 저장 매체의 저장 단위에 데이터를 기입하도록 구성된 데이터 기입 유닛(data writing unit) - 상기 저장 단위는, 데이터의 대응 단위가 기입되는 상기 저장 매체의 판독/기입 단위임 -;
    n개의 저장 단위 중에서 제1 기입 사이클 동안 기입에 성공한 저장 단위의 수량 k를 카운트하도록 구성된 카운팅 유닛(counting unit) - n은 2보다 크거나 같은 정수이고, n은 k보다 크며, k는 1보다 크거나 같은 정수임 -; 및
    기입이 성공적이지 않은 (n-k)개의 저장 단위에 대해 기입 작동을 수행하는 것에 더하여, 상기 카운팅 유닛에 연결되고, 상기 데이터 기입 유닛이 제2 기입 사이클 동안 데이터 양이 m개의 저장 단위인 다음 데이터에 대한 기입 작동을 수행할 수 있게끔 하도록 구성된 시작 유닛(starting unit) - m은 1보다 크거나 같은 정수이며, 상기 제2 기입 사이클은 상기 제1 기입 사이클에 인접한, 상기 제1 기입 사이클의 다음의 기입 사이클임 -
    을 포함하고,
    m은 N-(n-k)보다 작거나 같고, N은 동시 실행의 최대 수량으로서, 상기 저장 매체가 각각의 기입 사이클 동안 기입 작동이 동시에 실행되도록 허용하는 저장 단위의 최대 수량을 나타내고, (n-k)는 상기 제1 기입 사이클 동안 기입이 성공적이지 않은 저장 단위의 수량이며, n은 N보다 작거나 같고, k는 N-(n-k)보다 작거나 같고,
    상기 데이터를 기입하는 것은 데이터의 컨텐츠에 따라, 1 단계에서는 0 비트(0-bits)가 기입되고 2 단계에서는 1 비트(1-bits)가 기입되는 2개의 단계로 수행되는,
    저장 매체에 데이터를 기입하는 장치.
  4. 제3항에 있어서,
    데이터 양이 m개의 저장 단위인 데이터에 대한 상기 기입 작동의 총 기입 전력 소비가, 상기 제1 기입 사이클 동안 기입이 성공한 상기 k개의 저장 단위에 대한 기입 작동의 총 기입 전력 소비보다 작거나 같은, 저장 매체에 데이터를 기입하는 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
KR1020167020677A 2013-12-30 2014-12-22 데이터를 저장 매체에 기입하는 방법 및 장치 KR101747123B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310753266.9 2013-12-30
CN201310753266.9A CN104750426B (zh) 2013-12-30 2013-12-30 向存储介质写数据的方法和装置
PCT/CN2014/094486 WO2015101188A1 (zh) 2013-12-30 2014-12-22 向存储介质写数据的方法和装置

Publications (2)

Publication Number Publication Date
KR20160102565A KR20160102565A (ko) 2016-08-30
KR101747123B1 true KR101747123B1 (ko) 2017-06-15

Family

ID=53493190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020677A KR101747123B1 (ko) 2013-12-30 2014-12-22 데이터를 저장 매체에 기입하는 방법 및 장치

Country Status (5)

Country Link
US (1) US20160313917A1 (ko)
EP (1) EP3076282A4 (ko)
KR (1) KR101747123B1 (ko)
CN (1) CN104750426B (ko)
WO (1) WO2015101188A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6862951B2 (ja) * 2017-03-15 2021-04-21 富士通株式会社 メモリ制御装置、情報処理装置およびメモリ制御方法
CN110908599B (zh) * 2019-09-27 2021-02-02 珠海博雅科技有限公司 数据的写入方法与写入系统
US11581030B2 (en) * 2020-07-20 2023-02-14 Nxp Usa, Inc. Resistive memory with adjustable write parameter
US11989109B2 (en) * 2022-10-12 2024-05-21 Dell Products L.P. Managing power consumption for a computing cluster

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268207A1 (en) 2004-05-28 2005-12-01 International Business Machines Corporation Techniques for operating semiconductor devices
US20100195370A1 (en) * 2009-02-05 2010-08-05 Sony Corporation Nonvolatile semiconductor memory device and method for performing verify write operation on the same
CN102331911A (zh) 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN102592665A (zh) 2011-10-24 2012-07-18 北京时代全芯科技有限公司 一种相变存储器的高速数据写入结构及写入方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523087B2 (en) * 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
US8386834B1 (en) * 2010-04-30 2013-02-26 Network Appliance, Inc. Raid storage configuration for cached data storage
US9274720B1 (en) * 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US10402261B2 (en) * 2015-03-31 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268207A1 (en) 2004-05-28 2005-12-01 International Business Machines Corporation Techniques for operating semiconductor devices
US20100195370A1 (en) * 2009-02-05 2010-08-05 Sony Corporation Nonvolatile semiconductor memory device and method for performing verify write operation on the same
CN102331911A (zh) 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN102592665A (zh) 2011-10-24 2012-07-18 北京时代全芯科技有限公司 一种相变存储器的高速数据写入结构及写入方法

Also Published As

Publication number Publication date
US20160313917A1 (en) 2016-10-27
CN104750426B (zh) 2018-08-14
KR20160102565A (ko) 2016-08-30
EP3076282A4 (en) 2017-01-11
WO2015101188A1 (zh) 2015-07-09
CN104750426A (zh) 2015-07-01
EP3076282A1 (en) 2016-10-05

Similar Documents

Publication Publication Date Title
KR101747123B1 (ko) 데이터를 저장 매체에 기입하는 방법 및 장치
KR102625637B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN102135927B (zh) 一种基于nand flash的系统引导方法和装置
US20150378888A1 (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
TWI493455B (zh) 命令佇列管理方法、記憶體控制器及記憶體儲存裝置
CN108733344A (zh) 数据读写方法、装置以及环形队列
EP3285159A1 (en) Access method and device for random access memories, control chip and storage medium
US10771358B2 (en) Data acquisition device, data acquisition method and storage medium
CN106201652B (zh) 一种数据处理方法及虚拟机
CN114063893A (zh) 数据储存装置与数据处理方法
WO2023226698A1 (zh) 用于寄生电容提取的随机行走方法、装置和电子装置
KR100643287B1 (ko) 플래시 메모리의 데이터 처리 장치 및 방법
CN110045924B (zh) 分级存储方法、装置、电子设备及计算机可读存储介质
US9836491B1 (en) Method and apparatus for hardware-implemented AVL tree updates
KR100631765B1 (ko) 플래시 메모리의 데이터 처리 장치 및 방법
WO2018026452A1 (en) System and method for distributing and replaying trigger packets via a variable latency bus interconnect
CN110650100A (zh) 抓取网卡数据包的方法、装置及电子设备
WO2022166265A1 (zh) 一种数据恢复方法、装置、设备及介质
TWI636363B (zh) 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器
CN107239376B (zh) 一种服务器互联芯片的自动化调试方法及装置
TWI670599B (zh) 記憶體管理方法以及儲存控制器
KR20170073266A (ko) 시리얼 인터페이스를 사용하는 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
CN112673364A (zh) 数据传输方法、数据传输装置、电子设备和存储介质
CN104636224B (zh) 一种硬件调试方法及装置
CN103412778A (zh) 一种片上系统NANDFlash程序引导方法与装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant