KR102208497B1 - 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 - Google Patents

메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 Download PDF

Info

Publication number
KR102208497B1
KR102208497B1 KR1020200080803A KR20200080803A KR102208497B1 KR 102208497 B1 KR102208497 B1 KR 102208497B1 KR 1020200080803 A KR1020200080803 A KR 1020200080803A KR 20200080803 A KR20200080803 A KR 20200080803A KR 102208497 B1 KR102208497 B1 KR 102208497B1
Authority
KR
South Korea
Prior art keywords
scrambled data
data
toggles
scrambling
scrambling unit
Prior art date
Application number
KR1020200080803A
Other languages
English (en)
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 주식회사 파두
Priority to KR1020200080803A priority Critical patent/KR102208497B1/ko
Application granted granted Critical
Publication of KR102208497B1 publication Critical patent/KR102208497B1/ko
Priority to US17/359,935 priority patent/US11656772B2/en

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
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0625Power saving in storage 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/0661Format or protocol conversion arrangements
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스에 관한 것으로, 본 발명의 실시예에 따른 메모리 컨트롤러(100)는 호스트(300)로부터 입력된 오리지널 데이터(original data)를 랜덤화하여, 적어도 2개 이상의 스크램블된 데이터(scrambled data)를 생성하는 스크램블링부(10), 스크램블링부(10)에서 생성된 2개 이상의 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트하는 토글 카운터(20), 및 카운트된 토글 개수를 상호 비교하여, 2개 이상의 스크램블된 데이터 중, 상대적으로 토글 개수가 가장 적은 어느 하나를 출력하는 스크램블 데이터 출력부(30)를 포함하고, 스크램블 데이터 출력부(30)에서 출력된 하나의 스크램블된 데이터를 비휘발성 메모리 장치(200)에 프로그램한다.

Description

메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스{MEMORY CONTROLLER AND STORAGE DEVICE INCLUDING THE SAME}
본 발명은 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스에 관한 것으로, 보다 상세하게는 비휘발성 메모리 장치와의 사이에 데이터 전송시 입출력 전력 소모를 줄일 수 있는 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스에 관한 것이다.
반도체 메모리는 정보의 기억 메커니즘에 따라 휘발성 메모리(Volatile Memory)와 비휘발성 메모리(Non-volatile Memory)로 구분된다. 휘발성 메모리로는 DRAM, SRAM 등이 있는데, 읽고 쓰는 속도가 빠르지만 전원 공급이 차단되면 기억정보가 소실된다. 한편, 비휘발성 메모리는 전원이 차단되어도 기억정보를 보존할 수 있기 때문에 전원의 공급 여부에 무관하게 보존해야 할 데이터를 저장하는데 사용한다. 이러한 비휘발성 메모리로는 EPROM, EEPROM, FRAM, PRAM, MRAM, 플래시 메모리(Flash Memory) 등이 있는데, 특히 하기 선행기술문헌의 특허문헌에 개시된 바와 같이, 플래시 메모리가 컴퓨터, 스마트폰, 디지털카메라, 보이스 리코더, 캠코더 등과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다.
비휘발성 메모리, 특히 플래시 메모리는 미세 공정을 사용하여 셀의 크기와 회로 선폭을 줄이고, 셀 당 저장되는 비트 수를 늘려주는 멀티 레벨 셀(multi-level cell, MLC) 기술에 의해 집적도가 향상되고 있다. 다만, 미세 공정화로 인한 회로 선폭 감소는 셀 간 간섭(cell-to-cell interference)에 취약해지기 때문에, 메모리에 데이터 기입시 셀 간 간섭이 발생하게 된다. 이때, 간섭의 정도는 셀에 기입되는 데이터 비트(bit) 값에 의존적이고, 간섭 정도가 큰 비트 값이 연속적으로 발생하는 데이터를 기입하는 경우, 기존에 기입된 다른 데이터에 비트 에러(bit error)를 유발할 수 있다. 이러한 문제를 해결하기 위해, 데이터를 스크램블링(scrambling)하여 메모리에 전송하고 기입하는 기술이 개발되었다.
한편, 메모리 컨트롤러와 비휘발성 메모리 사이의 데이터 전송 시 소모되는 입출력 전력은 각 데이터 비트별 토글(toggle) 빈도와 관련이 있는데, 토글 횟수가 많을수록 입출력 전력 소모가 크다. 따라서, 입력 데이터를 랜덤화하여 스크램블링하는 과정에서, 스크램블링된 데이터의 비트별 토글 횟수가 증가하게 되면 데이터 전송시 입출력 전력 소모가 늘어나는 문제가 발생하게 된다.
이에 종래 스크램블링된 데이터 전송 시 과도하게 소모되는 입출력 전력 문제를 해결하기 위한 방안이 절실히 요구되고 있다.
KR 1994-0022295 A
본 발명은 상술한 종래기술의 문제점을 해결하기 위한 것으로, 본 발명의 일 측면은 입력 데이터를 스크램블링하여 다수의 스크램블된 데이터를 생성하고, 각각의 스크램블된 데이터의 비트별 토글 개수를 카운트하여 그 중 최소 토글 개수를 갖는 어느 하나를 비휘발성 메모리 장치에 기입하는 메모리 컨트롤러를 제공하는 데 있다.
본 발명의 실시예에 따른 메모리 컨트롤러는 호스트로부터 입력된 오리지널 데이터(original data)를 랜덤화하여, 적어도 2개 이상의 스크램블된 데이터(scrambled data)를 생성하는 스크램블링부; 상기 스크램블링부에서 생성된 2개 이상의 상기 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트하는 토글 카운터; 및 카운트된 상기 토글 개수를 상호 비교하여, 2개 이상의 상기 스크램블된 데이터 중, 상대적으로 상기 토글 개수가 가장 적은 어느 하나를 출력하는 스크램블 데이터 출력부;를 포함하고, 상기 스크램블 데이터 출력부에서 출력된 하나의 상기 스크램블된 데이터를 비휘발성 메모리 장치에 프로그램할 수 있다.
또한, 본 발명의 실시예에 따른 메모리 컨트롤러에 있어서, 상기 스크램블링부는, 2개 이상의 서로 다른 시드를 이용해 2개 이상의 랜덤 시퀀스를 생성하는 랜덤 시퀀스 발생기, 및 생성된 2개 이상의 상기 랜덤 시퀀스 각각과 상기 오리지널 데이터를 배타적 논리합 연산하는 2개 이상의 논리 연산기를 포함하여, 2개 이상의 서로 다른 상기 스크램블된 데이터를 생성하는 적어도 1개 이상의 스크램블링 유닛;를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 메모리 컨트롤러에 있어서, 상기 스크램블링 유닛은, 다수 개로, 서로 다른 알고리즘을 사용하여, 각각 서로 다른 상기 스크램블된 데이터를 생성할 수 있다.
또한, 본 발명의 실시예에 따른 메모리 컨트롤러에 있어서, 상기 스크램블링부는, 각각의 상기 스크램블된 데이터에, 각각의 상기 스크램블 데이터를 생성한 상기 스크램블링 유닛 및 상기 시드의 정보를 부가할 수 있다.
또한, 본 발명의 실시예에 따른 메모리 컨트롤러에 있어서, 상기 스크램블링부는, 1개의 시드를 이용해 1개의 랜덤 시퀀스를 생성하는 랜덤 시퀀스 발생기, 및 생성된 1개의 상기 랜덤 시퀀스와 상기 오리지널 데이터를 배타적 논리합 연산하는 논리 연산기를 각각 포함하는 다수의 스크램블링 유닛;을 포함하되, 다수의 상기 스크램블 유닛은 서로 다른 알고리즘을 사용하여, 각각 서로 다른 상기 스크램블된 데이터를 생성할 수 있다.
또한, 본 발명의 실시예에 따른 메모리 컨트롤러에 있어서, 상기 스크램블링부는, 각각의 상기 스크램블된 데이터에, 각각의 상기 스크램블된 데이터를 생성한 상기 스크램블링 유닛 및 상기 시드의 정보를 부가할 수 있다.
한편, 본 발명의 실시예에 따른 스토리지 디바이스는 데이터가 프로그램되는 비휘발성 메모리 장치; 및 호스트로부터 입력된 오리지널 데이터를 랜덤화하여 다수의 스크램블된 데이터를 생성하고, 생성된 다수의 상기 스크램블된 데이터 중 비트별 토글(toggle) 개수가 상대적으로 가장 적은 어느 하나를 상기 비휘발성 메모리 장치에 프로그램하는 메모리 컨트롤러;를 포함할 수 있다.
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.
이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고 사전적인 의미로 해석되어서는 아니되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
본 발명에 따르면, 메모리 컨트롤러와 비휘발성 메모리 장치 사이의 데이터 전송 시, 토글 빈도를 줄임으로써 입출력 전력을 줄일 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 컨트롤러를 개략적으로 도시한 블록도이다.
도 2 내지 도 3은 본 발명의 실시예에 따른 메모리 컨트롤러에서 비휘발성 메모리 장치로 전송되는 데이터의 비트별 토글 개수를 설명하기 위한 블록도이다.
도 4 내지 도 6은 본 발명의 서로 다른 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 스토리지 디바이스를 개략적으로 도시한 블록도이다.
도 8은 본 발명의 실시예에 따른 스토리지 디바이스를 SSD에 적용한 예를 도시한 블록도이다.
본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다. 이하, 본 발명을 설명함에 있어서, 본 발명의 요지를 불필요하게 흐릴 수 있는 관련된 공지 기술에 대한 상세한 설명은 생략한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시형태를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 메모리 컨트롤러를 개략적으로 도시한 블록도이고, 도 2 내지 도 3은 본 발명의 실시예에 따른 메모리 컨트롤러에서 비휘발성 메모리 장치로 전송되는 데이터의 비트별 토글 개수를 설명하기 위한 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리 컨트롤러(100)는 호스트(300)로부터 입력된 오리지널 데이터(original data)를 랜덤화하여, 적어도 2개 이상의 스크램블된 데이터(scrambled data)를 생성하는 스크램블링부(10), 스크램블링부(10)에서 생성된 2개 이상의 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트하는 토글 카운터(20), 및 카운트된 토글 개수를 상호 비교하여, 2개 이상의 스크램블된 데이터 중, 상대적으로 토글 개수가 가장 적은 어느 하나를 출력하는 스크램블 데이터 출력부(30)를 포함하고, 스크램블 데이터 출력부(30)에서 출력된 하나의 스크램블된 데이터를 비휘발성 메모리 장치(200)에 프로그램한다.
본 발명은 비휘발성 메모리 장치(200)를 제어하는 메모리 컨트롤러(100)에 관한 것이다. 여기서, 메모리 컨트롤러(100)는 호스트(300)의 요청에 응답하여 비휘발성 메모리 장치(200)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 호스트(300)로부터 수신된 데이터 동작 요청(request)에 응답하여 비휘발성 메모리 장치(200)에 저장된 데이터(data)를 독출(read)하거나, 비휘발성 메모리 장치(200)에 데이터를 기입하도록 메모리 장치(200)를 제어할 수 있다. 호스트(300)는 메모리 컨트롤러(100)에 데이터 동작 요청 및 어드레스를 송신할 수 있으며, 메모리 컨트롤러(100)와 데이터를 주고받을 수 있다. 예시적으로, 호스트(300)는 메모리 컨트롤러(100)와 USB(Universal Serial Bus) 프로토콜, MMC(Multi Media Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(Small Computer Small Interface) 프로토콜, ESDI(Enhanced Small Disk Interface) 프로토콜, IDE(Integrated Drive Electronics) 프로토콜, MIPI(Mobile Industry Processor Interface) 프로토콜 및 UFS(Universal Flash Storage) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나에 기반하여 데이터를 교환할 수 있다. 이러한 호스트(300)는 휴대폰, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치, 데스크탑 컴퓨터, 게임기, TV 등과 같은 전자 장치들을 포함할 수 있다.
메모리 컨트롤러(100)는 비휘발성 메모리 장치(200)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호 등을 제공함으로써 메모리 장치(200)의 쓰기, 읽기 및 지우기 동작을 제어할 수 있다. 또한, 상기 동작들을 위한 데이터가 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다. 비휘발성 메모리 장치(200)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND, VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory, RRAM), 상변화 메모리(Phase-Change Random Access Memory, PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory, MRAM), 강유전체 메모리(Ferroelectric Random Access Memory, FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory, STT-RAM) 등을 포함할 수 있으며, 이들의 조합도 가능하다. 비휘발성 메모리 장치(200)는 메모리 컨트롤러(100)로부터 수신된 신호들에 응답하여 데이터의 프로그램(쓰기), 읽기 및 지우기 등의 동작들을 수행할 수 있다.
비휘발성 메모리 장치(200)에서는 신뢰성을 높이기 위해서 데이터 스크램블링(data scrambling)을 사용한다. 비휘발성 메모리 장치(200)에 데이터를 기입하는 과정에서 셀 간 간섭(cell-to-cell interference)이 발생할 수 있다. 이때, 간섭의 정도는 셀에 기입되는 데이터 비트(bit) 값에 의존적이고, 간섭 정도가 큰 비트 값이 연속적으로 발생하는 데이터를 기입하는 경우, 기존에 기입된 다른 데이터에 비트 에러(bit error)를 유발할 수 있다. 이에 데이터를 스크램블링(scrambling)하여 비휘발성 메모리 장치(200)에 전송하고 기입함으로써 비휘발성 메모리 장치(200)의 신뢰성을 향상시킨다.
한편, 메모리 컨트롤러(100)와 비휘발성 메모리 사이의 데이터 전송 시 소모되는 입출력 전력은 각 데이터 비트별 토글 빈도와 관련이 있는데, 토글 횟수가 많을수록 입출력 전력 소모가 크다. 따라서, 입력 데이터를 랜덤화하여 스크램블링하는 과정에서, 스크램블링된 데이터의 비트별 토글 횟수가 증가하게 되면 데이터 전송시 입출력 전력 소모가 늘어나는 문제가 발생하게 된다. 이러한 종래 기술의 문제점을 해결하기 위한 방안으로서 본 발명에 따른 메모리 컨트롤러(100)가 안출되었다.
구체적으로, 본 발명의 실시예에 따른 메모리 컨트롤러(100)는, 스크램블링부(10), 토글 카운터(20), 및 스크램블 데이터 출력부(30)를 포함한다.
스크램블링부(10)는 호스트(300)로부터 입력된 오리지널 데이터(original data)를 랜덤화하여 스크램블된 데이터(scrambled data)를 생성한다. 여기서, 스크램블된 데이터는, 랜덤 시퀀스(random sequence)와 오리지널 데이터가 배타적 논리합(exclusive-OR, XOR) 연산되어 생성될 수 있다. 이때, 스크램블된 데이터는 2개 이상 다수 개가 생성된다. 다수의 스크램블된 데이터는 서로 다른 방식으로 오리지널 데이터를 램덤화한 결과로서 생성되고, 이로 인해 서로 다른 비트 값을 가진다. 이러한 스크램블된 데이터는 스크램블링 유닛에 의해 생성되는데, 이에 대해서는 후술한다.
토글 카운터(20)는 스크램블링부(10)에서 생성된 2개 이상의 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트한다. 전술한 바와 같이, 메모리 컨트롤러(100)와 비휘발성 메모리 장치(200) 사이의 데이터 전송시, 데이터 비트별 토글 빈도가 높을수록 입출력 전력 소모가 증가하게 된다.
도 2는 데이터의 모든 비트가 매번 토글되는 데이터 전송을 도시한 것이고, 도 3은 데이터 비트가 1씩 증가하는 패턴을 가지는 데이터 전송을 도시한 것이다. 여기서, 데이터 비트폭(data bit width)은 8 비트로 가정하였다. 도 2에서 비트 값이 "1111 1111"인 데이터(FF)와 비트 값이 "0000 0000"인 데이터(00) 사이에는 8 비트 토글이 일어나므로, 총 32회 토글된다. 도 3에서는 비트 값이 "0000 0000"인 데이터(00)와 비트 값이 "0000 0001"인 데이터(01) 사이에는 1 비트 토글이, 데이터(01)와 비트 값이 "0000 0010"인 데이터(02) 사이에는 2 비트 토글이, 데이터(02)와 비트 값이 "0000 0011"인 데이터(03) 사이에는 1 비트 토글이, 데이터(03)와 비트 값이 "0000 0100"인 데이터(04) 사이에는 3 비트 토글이 각각 일어나므로, 총 토글 횟수는 7회이다. 따라서, 도 3의 데이터 전송이 도 2에 비해 토글 횟수가 작기 때문에, 입출력 전력 소모가 작다.
상기와 같이 데이터 전송시 각 데이터 비트별 토글 횟수가 작을수록 입출력 전력 소모도 작아지므로, 토글 카운터(20)는 입출력 전력 소모가 적은 스크램블된 데이터를 선정하기 위한 전제로서, 다수의 스크램블된 데이터 각각에 대한 토글 개수를 카운트한다.
스크램블 데이터 출력부(30)는 토글 카운터(20)에서 카운트된 각각의 토글 개수를 상호 비교하고, 다수의 스크램블된 데이터 중 토글 개수가 상대적으로 가장 적은 어느 하나를 출력한다. 출력된 스크램블 데이터는 비휘발성 메모리 장치(200)에 프로그램되고, 읽기 동작시에는 비휘발성 메모리 장치(200)에서 메모리 컨트롤러(100)로 전송된 후 디스크램블링(descrambling)되어 호스트(300)로 전달된다. 따라서, 스크램블 데이터 출력부(30)에서 선택되어 출력되는 스크램블된 데이터는 메모리 컨트롤러(100)와 비휘발성 메모리 장치(200) 간의 데이터 전송시 입출력 전력 소모를 최소화할 수 있다.
종합적으로, 본 발명에 따르면, 메모리 컨트롤러(100)와 비휘발성 메모리 장치(200) 사이의 데이터 전송 시, 토글 빈도를 줄임으로써 입출력 전력을 줄일 수 있다.
본 발명에 따른 메모리 컨트롤러(100)는 호스트(300)와의 인터페이스를 제공하는 수단으로서, 호스트 인터페이스(40)를 더 포함할 수 있다. 호스트 인터페이스(40)는 적어도 하나 이상의 채널이나 포트들을 통해 호스트(300)와 연결될 수 있다. 예를 들어, 호스트 인터페이스(40)는 PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment), PCIe 버스(peripheral component interconnect express) 중 어느 하나 또는 이들 모두를 통해 호스트(300)와 연결되거나, SCSI, USB 등을 통해 외부와 연결될 수 있다.
또한, 본 발명에 따른 메모리 컨트롤러(100)는 비휘발성 메모리 장치(200)와의 인터페이스를 제공하는 수단으로서, 메모리 채널 컨트롤러(60)를 더 포함할 수 있다. 여기서 비휘발성 메모리 장치(200)는 적어도 하나 이상 제공될 수 있고, 다수의 비휘발성 메모리 장치(200)를 지원하기 위해 다수의 메모리 채널 컨트롤러(60)가 사용될 수 있다. 이때, 하나의 메모리 채널 컨트롤러(60)에는 하나 또는 그 이상의 비휘발성 메모리 장치(200)가 연결될 수 있고, 하나의 메모리 채널 컨트롤러(60)에 연결되는 비휘발성 메모리 장치(200)들은 동일한 데이터 버스를 공유할 수 있다.
본 발명에 따른 메모리 컨트롤러(100)는 호스트(300)의 데이터 동작 요청을 처리하기 위해 메모리 컨트롤러(100)의 전체적인 동작을 제어하는 프로세서(50)가 더 포함될 수 있다. 프로세서(50)는 마이크로 컨트롤 유닛(MCU), 중앙처리장치(CPU) 등으로 구현될 수 있고, 소프트웨어를 구동하여 메모리 컨트롤러(100)의 기능을 제어할 수 있다.
이하에서는 스크램블링부(10)의 다양한 실시예에 따라 동작하는 메모리 컨트롤러(100)에 대해 설명한다. 도 4 내지 도 6은 본 발명의 서로 다른 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 블록도이다.
본 발명에 따른 스크램블링부(10)는 적어도 1개 이상의 스크램블링 유닛(11, 13, 15)을 포함할 수 있는데, 여기서 다수의 스크램블링 시드(scrambling seed) 및 다수의 스크램블링 유닛(11, 13, 15) 중 적어도 어느 하나를 이용해 다수의 스크램블링된 데이터를 생성할 수 있다.
도 4는 하나의 스크램블링 유닛에 다수의 시드를 사용하는 실시예를 도시하고 있다. 스크램블링부(10)는 스크램블링 유닛(11)을 포함할 수 있는데, 도 4를 참고로, 제1 실시예에 따른 제1 스크램블링 유닛(11)은 랜덤 시퀀스 발생기(11a), 및 2개 이상의 논리 연산기(11b)를 포함할 수 있다. 여기서, 랜덤 시퀀스 발생기(11a)는 2개 이상의 서로 다른 시드(seed1 및 seed2)를 이용해 각각에 대한 랜덤 시퀀스를 생성할 수 있다. 이때, 시드의 개수와 동일한 개수의 랜덤 시퀀스가 생성되고, 각각의 랜덤 시퀀스는 서로 다르게 생성될 수 있다. 논리 연산기(11b)는 랜덤 시퀀스와 오리지널 데이터를 배타적 논리합 연산하여 스크램블된 데이터를 생성한다. 여기서, 논리 연산기(11b)는 시드 내지 랜덤 시퀀스의 개수와 동일한 개수로 구비되므로, 2개 이상의 서로 다른 램덤 시퀀스 각각과 오리지널 데이터가 배타적 논리합 연산하여 2개 이상의 서로 다른 스크램블된 데이터를 생성할 수 있다. 도 4에서는 2개의 시드 및 2개의 논리 연산기(11b)만 도시되어 있지만, 그 이상의 시드 및 논리 연산기(11b)를 사용하여, 그 개수와 동일한 개수의 스크램블된 데이터를 생성할 수 있다. 이렇게 생성된 다수의 스크램블된 데이터 각각에 대해, 토글 카운터(20)가 토글 개수를 카운트하고, 스크램블 데이터 출력부(30)가 각각에 대한 토글 개수를 상호 비교하여 토글 개수가 가장 작은 어느 하나의 스크램블된 데이터를 출력할 수 있다.
제1 실시예에 따른 제1 스크램블링 유닛(11)은 적어도 1개 이상 구비될 수 있다. 이때, 다수 개의 제1 스크램블링 유닛(11)은 서로 다른 알고리즘을 사용하여, 각각 서로 다른 스크램블된 데이터를 생성할 수 있다. 또한, 다수 개의 제1 스크램블링 유닛(11) 각각에 사용되는 시드가 서로 상이할 수 있다.
한편, 상기 스크램블링부(10)는 다수의 스크램블된 데이터 각각에, 각각의 스크램블된 데이터를 생성한 스크램블링 유닛(11)이 다수인 경우, 스크램블링 유닛 및 시드의 정보를 부가할 수 있다. 따라서, 스크램블 데이터 출력부(30)에서 선택적으로 출력된 어느 하나의 스크램블된 데이터는, 그 스크램블된 데이터를 생성한 스크램블링 유닛(11) 및 시드의 정보와 함께 비휘발성 메모리 장치(200)에 기록되게 되고, 그 정보를 기반으로 디스크램블링될 수 있다.
도 5는 각각 하나의 시드를 이용하는 다수의 스크램블링 유닛을 사용하는 실시예를 도시하고 있다. 도 5를 참고로, 스크램블링부(10)는 다수의 제2 스크램블링 유닛(13, 15)을 포함할 수 있다. 여기서, 제2 스크램블링 유닛(13, 15)은, 하나의 시드(seed 1, seed 2)를 사용해 하나의 랜덤 시퀀스를 생성하는 랜덤 시퀀스 발생기(13a, 15a), 및 생성된 랜덤 시퀀스와 오리지널 데이터를 배타적 논리합 연산하여 하나의 스크램블된 데이터를 생성하는 논리 연산기(13b, 15b)를 포함할 수 있다. 이러한 제2 스크램블링 유닛(13, 15)은 적어도 2개 이상 구비되어, 각각 스크램블된 데이터를 생성할 수 있다. 이때, 2개 이상의 제2 스크램블링 유닛(13, 15)은 서로 다른 알고리즘을 사용하거나, 또는 서로 다른 시드를 사용하는 방식으로, 서로 다른 스크램블된 데이터를 생성할 수 있다. 도 5에서는 2개의 제2 스크램블링 유닛(13, 15)을 도시하고 있지만, 그 개수는 2개 이상이기만 하면 특별한 제한이 없다. 이렇게 생성된 서로 다른 스크램블된 데이터에 대해서, 토글 카운터(20)가 토글 개수를 카운트하고, 스크램블 데이터 출력부(30)에서 토글 개수가 상대적으로 가장 적은 어느 하나를 선택하여 출력할 수 있다.
여기서, 스크램블링부(10)는 다수의 스크램블된 데이터 각각에, 각각의 스크램블된 데이터를 생성한 스크램블링 유닛(13, 15), 및 시드의 정보를 부가함으로써, 이후 읽기 동작 중에 스크램블된 데이터를 디스크램블링할 수 있다.
도 6은 전술한 제1 스크램블링 유닛, 및 제2 스크램블링 유닛을 혼합 사용하는 실시예를 도시하고 있다. 여기서, 스크램블링부(10)는 적어도 하나 이상의 제1 스크램블링 유닛(11), 및 적어도 하나 이상의 제2 스크램블링 유닛(13)을 포함할 수 있다. 각각의 제1 스크램블링 유닛(11)은 시드의 개수에 대응하는 다수의 스크램블된 데이터를 생성하고, 제2 스크램블링 유닛(13)은 1개의 스크램블된 데이터를 생성할 수 있다. 생성된 각각의 스크램블된 데이터의 토글 개수는 토글 카운터(20)에서 카운트되고, 이를 기반으로 스크램블 데이터 출력부(30)에서 토글 개수가 가장 적은 어느 하나를 출력할 수 있다. 이때, 스크램블링부(10)는 생성된 각각의 스크램블된 데이터에 대응되는 스크램블링 유닛(11, 13), 및 시드 정보를 함께 부가할 수 있다.
전술한 스크램블링부(10), 토글 카운터(20), 스크램블 데이터 출력부(30)는 각각 또는 적어도 2개 이상이 통합되어 하드웨어 또는 소프트웨어로 구현될 수 있다. 즉, 메모리 컨트롤러(100) 내부에 위치한 디지털 또는 아날로그 회로 형태로 구현되거나, 별도의 칩 또는 모듈로 구현되어 메모리 컨트롤러(100)에 연결될 수 있으며, SRAM과 같은 내장 메모리나 플로피 디스크, 컴팩트 디스크, USB 등과 같은 외장 메모리에 소프트웨어를 저장하고 실행하는 방식으로 구현될 수 있다. 또한, 사용자에 의해 프로그램될 수 있는 형태로 구현될 수도 있으며, 다른 내장 모듈(예를 들어, 프로세서) 등에 통합될 수도 있다.
본 발명에 따른 메모리 컨트롤러는 스토리지 디바이스에 적용될 수 있는데, 이하에서 설명한다.
도 7은 본 발명의 실시예에 따른 스토리지 디바이스를 개략적으로 도시한 블록도이고, 도 8은 본 발명의 실시예에 따른 스토리지 디바이스를 SSD에 적용한 예를 도시한 블록도이다.
도 7에 도시된 바와 같이, 본 발명의 실시예에 따른 스토리지 디바이스(1000)는 데이터가 프로그램되는 비휘발성 메모리 장치(200), 및 호스트(300)로부터 입력된 오리지널 데이터를 랜덤화하여 다수의 스크램블된 데이터를 생성하고, 생성된 다수의 스크램블된 데이터 중 비트별 토글(toggle) 개수가 상대적으로 가장 적은 어느 하나를 비휘발성 메모리 장치(200)에 프로그램하는 메모리 컨트롤러(100)를 포함할 수 있다.
여기서, 스토리지 디바이스(1000)는 메모리 카드나 착탈 가능한 이동식 저장 장치를 포함할 수 있다. 스토리지 디바이스(1000)는 호스트(300)와 연결되어 사용되고, 호스트 인터페이스(40)를 통해 호스트(300)와 데이터를 주고받는다. 이때, 스토리지 디바이스(1000)는 호스트(300)로부터 전원을 공급받아 내부 동작을 수행할 수 있다.
비휘발성 메모리 장치(200)는 플래시 메모리 등으로 구현될 수 있고, 메모리 컨트롤러(100)는 다수의 스크램블링 유닛 및/또는 다수의 스크램블링 시드를 사용해 오리지널 데이터에 대해 다수의 스크램블된 데이터를 생성한 후에, 토글 개수가 가장 적은 어느 하나의 스크램블된 데이터를 선택하여 비휘발성 메모리 장치(200)에 기록할 수 있다. 이와 관련된 내용에 대해서는 전술하였는바 자세한 설명은 생략한다.
또한, 도 8를 참고로, 본 발명에 따른 스토리지 디바이스(1000)는 솔리드 스테이트 드라이브(Solid State Drive, SSD)일 수도 있다.
SSD는 호스트(300)와 연결되기 때문에, 호스트(300)는 SSD에 데이터를 쓰거나 SSD에 저장된 데이터를 읽을 수 있다. SSD는 호스트 인터페이스를 통해 호스트(300)와 신호를 교환하고 전원 커넥터를 통해 전원을 공급받을 수 있다. SSD는 다수의 비휘발성 메모리 장치(200), 및 SSD 컨트롤러를 포함할 수 있는데, 여기서 비휘발성 메모리 장치(200)는 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있고, 복수의 비휘발성 메모리 장치(200)가 복수의 채널을 통해 SSD 컨트롤러와 연결될 수 있다. 이때, 하나의 채널에는 하나 또는 그 이상의 비휘발성 메모리 장치(200)가 연결될 수 있고, 하나의 채널에 연결되는 비휘발성 메모리 장치(200)는 동일한 데이터 버스에 연결될 수 있다.
한편, 본 발명에 따른 메모리 컨트롤러(100)는 SSD 컨트롤러로서 제공되어, 호스트 인터페이스를 통해 호스트(300)와 신호를 주고받는다. 여기서, 신호를 통해 커맨드, 어드레스, 데이터 등이 전달될 수 있고, 호스트(300)의 커맨드에 따라 해당 비휘발성 메모리 장치(200)에 데이터를 쓰거나 해당 비휘발성 메모리 장치(200)로부터 데이터를 읽어낸다.
이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속한 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.
10: 스크램블링부 11, 13, 15: 스크램블링 유닛
11a, 13a, 15a: 랜덤 시퀀스 발생기 11b. 13b, 15b: 논리 연산기
20: 토글 카운터 30: 스크램블 데이터 출력부
40: 호스트 인터페이스 50: 프로세서
60: 메모리 채널 컨트롤러 100: 메모리 컨트롤러
200: 비휘발성 메모리 장치 300: 호스트
1000: 스토리지 디바이스

Claims (7)

  1. 삭제
  2. 호스트로부터 입력된 오리지널 데이터(original data)를 랜덤화하여, 적어도 2개 이상의 스크램블된 데이터(scrambled data)를 생성하는 스크램블링부;
    상기 스크램블링부에서 생성된 2개 이상의 상기 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트하는 토글 카운터; 및
    카운트된 상기 토글 개수를 상호 비교하여, 2개 이상의 상기 스크램블된 데이터 중, 상대적으로 상기 토글 개수가 가장 적은 어느 하나를 출력하는 스크램블 데이터 출력부;를 포함하고,
    상기 스크램블 데이터 출력부에서 출력된 하나의 상기 스크램블된 데이터를 비휘발성 메모리 장치에 프로그램하고,
    상기 스크램블링부는,
    2개 이상의 서로 다른 시드를 이용해 2개 이상의 랜덤 시퀀스를 생성하는 랜덤 시퀀스 발생기, 및 생성된 2개 이상의 상기 랜덤 시퀀스 각각과 상기 오리지널 데이터를 배타적 논리합 연산하는 2개 이상의 논리 연산기를 포함하여, 2개 이상의 서로 다른 상기 스크램블된 데이터를 생성하는 적어도 1개 이상의 스크램블링 유닛;를 포함하는 메모리 컨트롤러.
  3. 청구항 2에 있어서,
    상기 스크램블링 유닛은,
    다수 개로, 서로 다른 알고리즘을 사용하여, 각각 서로 다른 상기 스크램블된 데이터를 생성하는 메모리 컨트롤러.
  4. 청구항 2에 있어서,
    상기 스크램블링부는,
    각각의 상기 스크램블된 데이터에, 각각의 상기 스크램블된 데이터를 생성한 상기 스크램블링 유닛 및 상기 시드의 정보를 부가하는 메모리 컨트롤러.
  5. 호스트로부터 입력된 오리지널 데이터(original data)를 랜덤화하여, 적어도 2개 이상의 스크램블된 데이터(scrambled data)를 생성하는 스크램블링부;
    상기 스크램블링부에서 생성된 2개 이상의 상기 스크램블된 데이터의 비트별 토글(toggle) 개수를 각각 카운트하는 토글 카운터; 및
    카운트된 상기 토글 개수를 상호 비교하여, 2개 이상의 상기 스크램블된 데이터 중, 상대적으로 상기 토글 개수가 가장 적은 어느 하나를 출력하는 스크램블 데이터 출력부;를 포함하고,
    상기 스크램블 데이터 출력부에서 출력된 하나의 상기 스크램블된 데이터를 비휘발성 메모리 장치에 프로그램하고,
    상기 스크램블링부는,
    1개의 시드를 이용해 1개의 랜덤 시퀀스를 생성하는 랜덤 시퀀스 발생기, 및 생성된 1개의 상기 랜덤 시퀀스와 상기 오리지널 데이터를 배타적 논리합 연산하는 논리 연산기를 각각 포함하는 다수의 스크램블링 유닛;을 포함하되, 다수의 상기 스크램블링 유닛은 서로 다른 알고리즘을 사용하여, 각각 서로 다른 상기 스크램블된 데이터를 생성하는 메모리 컨트롤러.
  6. 청구항 5에 있어서,
    상기 스크램블링부는,
    각각의 상기 스크램블된 데이터에, 각각의 상기 스크램블된 데이터를 생성한 상기 스크램블링 유닛 및 상기 시드의 정보를 부가하는 메모리 컨트롤러.
  7. 데이터가 프로그램되는 비휘발성 메모리 장치; 및
    청구항 2 내지 6 중 어느 한 항에 따라, 호스트로부터 입력된 오리지널 데이터를 랜덤화하여 다수의 스크램블된 데이터를 생성하고, 생성된 다수의 상기 스크램블된 데이터 중 비트별 토글(toggle) 개수가 상대적으로 가장 적은 어느 하나를 상기 비휘발성 메모리 장치에 프로그램하는 메모리 컨트롤러;를 포함하는 스토리지 디바이스.
KR1020200080803A 2020-07-01 2020-07-01 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 KR102208497B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200080803A KR102208497B1 (ko) 2020-07-01 2020-07-01 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US17/359,935 US11656772B2 (en) 2020-07-01 2021-06-28 Memory controller and storage device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200080803A KR102208497B1 (ko) 2020-07-01 2020-07-01 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

Publications (1)

Publication Number Publication Date
KR102208497B1 true KR102208497B1 (ko) 2021-01-27

Family

ID=74238905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200080803A KR102208497B1 (ko) 2020-07-01 2020-07-01 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

Country Status (2)

Country Link
US (1) US11656772B2 (ko)
KR (1) KR102208497B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220157155A (ko) * 2021-05-20 2022-11-29 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940022295A (ko) 1993-03-20 1994-10-20 가나이 쯔또무 플래시메모리를 포함하는 마이크로컴퓨터
US20050008150A1 (en) * 2003-07-07 2005-01-13 Sunplus Technology Co., Ltd. Device and method for scrambling data by means of address lines
KR100694978B1 (ko) * 2006-05-12 2007-03-14 주식회사 하이닉스반도체 데이터 입출력 속도를 증가시키는 구조를 가지는 플래시메모리 장치 및 그 데이터 입출력 동작 방법
US20080215798A1 (en) * 2006-12-24 2008-09-04 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
KR101121346B1 (ko) * 2007-02-14 2012-03-09 가부시끼가이샤 도시바 반도체 메모리에 대한 데이터 기록 방법 및 메모리 컨트롤러
KR20130052811A (ko) * 2011-11-14 2013-05-23 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20170098804A (ko) * 2014-12-27 2017-08-30 인텔 코포레이션 향상된 신호 무결성을 갖는 저-전력 스크램블링
KR20170128686A (ko) * 2016-05-12 2017-11-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019940B2 (en) * 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8713330B1 (en) * 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US10152262B2 (en) * 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions
US11114143B2 (en) * 2019-02-22 2021-09-07 Intel Corporation Bipolar decoder for crosspoint memory cells

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940022295A (ko) 1993-03-20 1994-10-20 가나이 쯔또무 플래시메모리를 포함하는 마이크로컴퓨터
US20050008150A1 (en) * 2003-07-07 2005-01-13 Sunplus Technology Co., Ltd. Device and method for scrambling data by means of address lines
KR100694978B1 (ko) * 2006-05-12 2007-03-14 주식회사 하이닉스반도체 데이터 입출력 속도를 증가시키는 구조를 가지는 플래시메모리 장치 및 그 데이터 입출력 동작 방법
US20080215798A1 (en) * 2006-12-24 2008-09-04 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
KR101121346B1 (ko) * 2007-02-14 2012-03-09 가부시끼가이샤 도시바 반도체 메모리에 대한 데이터 기록 방법 및 메모리 컨트롤러
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
KR20130052811A (ko) * 2011-11-14 2013-05-23 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20170098804A (ko) * 2014-12-27 2017-08-30 인텔 코포레이션 향상된 신호 무결성을 갖는 저-전력 스크램블링
KR20170128686A (ko) * 2016-05-12 2017-11-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법

Also Published As

Publication number Publication date
US20220004326A1 (en) 2022-01-06
US11656772B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
US10949105B2 (en) Data storage device and operating method of the data storage device
US8867283B2 (en) Semiconductor memory device, operating method thereof, and data storage apparatus including the same
US8705276B2 (en) Semiconductor memory device, reading method thereof, and data storage device having the same
US9099193B2 (en) Data storage device and operating method thereof
US9965205B2 (en) Data storage device performing a scramble operation and operating method thereof
KR20170102694A (ko) 데이터 저장 장치
KR20170099618A (ko) 데이터 저장 장치
KR102363382B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치
CN111916140B (zh) 控制器及其操作方法以及包括控制器的存储器系统
KR20160105625A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20090300372A1 (en) Solid state disk and input/output method
US10748626B2 (en) Data storage device and operating method thereof
CN110010185B (zh) 存储器系统及其操作方法
KR102208497B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
KR102029933B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
US11347634B2 (en) Memory system performing write-same operation and operating method thereof
US11263126B2 (en) Data storage device and operating method thereof
KR102645786B1 (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20210068734A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN108257629B (zh) 非易失性存储器装置和包括其的数据存储装置的操作方法
US11550929B2 (en) Memory system
US20140063956A1 (en) Nonvolatile memory device and operating method thereof
KR20210002190A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US20170212816A1 (en) Semiconductor memory device and data storage device including the same
CN114639423A (zh) 半导体存储器装置及其操作方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant