KR20130098085A - 메모리 컨트롤러 및 이의 동작 방법 - Google Patents

메모리 컨트롤러 및 이의 동작 방법 Download PDF

Info

Publication number
KR20130098085A
KR20130098085A KR1020120019921A KR20120019921A KR20130098085A KR 20130098085 A KR20130098085 A KR 20130098085A KR 1020120019921 A KR1020120019921 A KR 1020120019921A KR 20120019921 A KR20120019921 A KR 20120019921A KR 20130098085 A KR20130098085 A KR 20130098085A
Authority
KR
South Korea
Prior art keywords
data
data block
random sequences
memory
randomized
Prior art date
Application number
KR1020120019921A
Other languages
English (en)
Other versions
KR102036348B1 (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 삼성전자주식회사
Priority to KR1020120019921A priority Critical patent/KR102036348B1/ko
Priority to US13/778,396 priority patent/US20130227213A1/en
Publication of KR20130098085A publication Critical patent/KR20130098085A/ko
Application granted granted Critical
Publication of KR102036348B1 publication Critical patent/KR102036348B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 컨트롤러 및 그 동작방법이 개시된다. 본 발명의 실시예들에 따른 메모리 컨트롤러의 동작 방법은 제1속성을 가진 데이터를 포함하는 데이터블럭에서, 다수의 랜덤시퀀스들을 로드하는 단계, 상기 다수의 랜덤시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤시퀀스들을 선택하는 단계 및 상기 선택된 랜덤시퀀스들을 이용하여, 상기 데이터블럭을 랜더마이즈하거나, 랜더마이즈된 데이터블럭을 디랜더마이즈하여 변환하는 단계를 포함한다.

Description

메모리 컨트롤러 및 이의 동작 방법{MEMORY CONTROLLER AND OPERATION METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 데이터 처리 기술에 관한 것으로, 특히 데이터의 종류에 따라 각각 랜더마이즈할 수 있는 새로운 구조의 메모리 컨트롤러과 이의 동작 방법에 관한 것이다.
랜덤 시퀀스는 통신 시스템 또는 데이터 저장 시스템에서 사용된다. 랜더마이저(randomizer)는 랜덤 시퀀스를 이용하여 데이터를 랜더마이즈된 데이터(randomized data)로 변환한다. 또한, 디랜더마이저(derandomizer)는 랜덤 시퀀스를 이용하여 랜더마이즈된 데이터를 디랜더마이즈된 데이터(derandomized data)로 변환한다.
데이터 저장 시스템은 펌웨어 등 설정환경의 변화에 따라 일부 데이터가 유동적으로 변할 수 있는데 이 때 랜더마이즈 또는 디랜더마이즈 동작은 상기 설정환경의 고려없이 변환동작이 수행될 수 있다.설정환경의 고려없이 랜더마이즈 또는 디랜더마이즈 동작이 수행될 경우 데이터 신뢰성이 떨어지게 된다.
본 발명이 이루고자 하는 기술적인 과제는 랜더마이즈 또는 디랜더마이즈 수행시 데이터 신뢰성을 향상시킬 수 있는 메모리 컨트롤러 및 이의 동작 방법을 제공하는 것이다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 일실시예에 따른 메모리 컨트롤러는 호스트로부터 수신한 명령을 수행하는 제1 프로세싱 유닛,다수의 랜덤 시퀀스들을 로드하는 메모리 및 상기 다수의 랜덤 시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤 시퀀스들을 선택하고, 선택된 랜덤 시퀀스를 이용하여 상기 데이터블럭을 랜더마이즈하거나, 상기 선택된 랜덤 시퀀스를 이용하여 랜더마이즈된 데이터블럭을 디랜더마이즈하는 제1 변환부를 포함한다.
상기 제1 변환부는 상기 데이터블럭 또는 상기 랜더마이즈된 데이터블럭을 수신할 때마다 상기 랜덤 시퀀스들을 상기 명령 수행 단위로 쉬프트하여 선택할 수 있다.
상기 제1 변환부는 상기 선택된 랜덤 시퀀스와 상기 데이터블럭을 XOR연산하여 랜더마이즈하거나 상기 선택된 랜덤 시퀀스와 상기 랜더마이즈된 데이터블럭을 XOR연산하여 디랜더마이즈할 수 있다.
상기 메모리는 상기 메모리 컨트롤러의 부팅시 또는 상기 제1 프로세싱 유닛의 명령 수행시 상기 다수의 랜덤 시퀀스들을 로드할 수 있다.
상기 메모리 컨트롤러는 상기 제1 프로세싱 유닛과 별도로 상기 호스트로부터 수신한 제2 명령을 수행하는 제2 프로세싱 유닛을 더 포함하고, 상기 제2 프로세싱 유닛은 상기 제2 명령을 수행하기 위한 상기 제1 변환부를 포함할 수 있다.
상기 데이터 블록은 제2속성을 가진 데이터를 더 포함하고, 상기 메모리 컨트롤러는 랜덤 시퀀스를 생성하는 회로에 의해서 생성된 랜덤 시퀀스를 이용하여 제2속성을 가진 상기 데이터를 랜더마이즈하거나, 제2속성을 가진 랜더마이즈된 상기 데이터를 디랜더마이즈하는 제2 변환부를 더 포함할 수 있다.
상기 데이터 블록은 제1속성을 가진 데이터는 메타 데이터이고, 제2속성을 가진 데이터는 유저 데이터인 데이터들을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 일실시예에 따른 메모리 컨트롤러의 동작방법은 다수의 랜덤시퀀스들을 로드하는 단계,상기 다수의 랜덤시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤시퀀스들을 선택하는 단계 및 상기 선택된 랜덤시퀀스들을 이용하여, 상기 데이터블럭을 랜더마이즈하거나, 랜더마이즈된 데이터블럭을 디랜더마이즈하여 변환하는 단계를 포함하고,상기 데이터블럭은 제1속성을 가진 데이터를 포함한다.
상기 선택하는 단계는 상기 데이터블럭 또는 상기 랜더마이즈된 데이터블럭을 수신할 때마다 상기 랜덤 시퀀스들을 상기 명령 수행 단위로 쉬프트하여 선택할 수 있다.
상기 변환하는 단계는 상기 선택된 랜덤 시퀀스들과 상기 데이터블럭을 XOR연산하여 랜더마이즈하는 단계 및 상기 랜더마이즈된 데이터블럭을 메모리 장치로 전송하는 단계를 포함할 수 있다.
상기 변환하는 단계는 메모리 장치로부터 상기 랜더마이즈된 데이터블럭을 수신받는 단계, 상기 선택된 랜덤 시퀀스들과 상기 랜더마이즈된 데이터블럭을 XOR 연산하여 디랜더마이즈하는 단계 및 상기 디랜더마이즈된 데이터블럭을 호스트로 전송하는 단계를 포함할 수 있다.
상기 데이터블럭은 제2속성을 가진 데이터를 더 포함하여, 랜덤 시퀀스를 생성하는 회로에 의해서 생성된 랜덤 시퀀스를 이용하여 상기 제2속성 데이터를 랜더마이즈하거나, 랜더마이즈된 상기 제2속성 데이터를 디랜더마이즈하는 단계를 더 포함할 수 있다.
상기 로드하는 단계는 상기 메모리 컨트롤러의 부팅시 또는 프로세싱 유닛의 명령 수행시 상기 다수의 랜덤 시퀀스들을 로드할 수 있다.
본 발명의 실시 예들에 따른 메모리 컨트롤러 및 이의 동작 방법은 메모리 컨트롤러의 설정 환경에 따라 유동적으로 변하는 메타 데이터에 상응하여 랜더마이즈 또는 디랜더마이즈 동작을 수행함으로써 데이터의 신뢰성을 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템의 블럭도이다.
도 2는 도 1에 도시한 메모리 장치 내 저장공간의 개념도이다.
도 3은 도 1에 도시한 메모리 컨트롤러의 블럭도이다.
도 4는 도 1의 메모리 컨트롤러의 동작을 설명하기 위한 일실시예의 개념도이다.
도 5는 도 1의 메모리 컨트롤러의 동작을 설명하기 위한 다른 일실시예의 개념도이다.
도 6은 도 3에 도시된 메모리에 로드되는 랜덤시퀀스들을 나타낸 도면이다.
도 7은 도 1의 메모리 컨트롤러가 랜덤시퀀스들을 선택하는 동작을 설명하기 위한 일실시예의 개념도이다.
도 8은 본 발명의 실시예들에 따른 메모리 시스템의 동작을 나타낸 블럭도이다.
도 9는 본 발명의 일실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸 흐름도이다.
도 10은 본 발명의 다른 일실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸 흐름도이다.
도 11은 본 발명의 일실시예에 따른 다수의 반도체 장치를 포함하는 멀티-칩 패키지의 일 실시예를 개략적으로 나타내는 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템의 블럭도이고, 도 2는 도 1에 도시한 메모리 장치 내 저장공간의 개념도이며, 도 3은 도 1에 도시한 메모리 컨트롤러의 블럭도이다.
도 1을 참조하면, 메모리 시스템(3)은 호스트(1)와 연결되어, 메모리 컨트롤러(100) 및 메모리 장치(2)를 포함한다.
메모리 시스템(3)은 랜더마이저 또는 디랜더마이저 중에서 적어도 하나를 포함하는 현재 알려진 또는 현재 개발 중인 모든 메모리 시스템을 의미한다.
따라서 메모리 시스템(3)은 PC(personal computer), 태블릿(tablet) PC, 노트-북, 메모리 카드(memory card), 스마트 카드(smart card), 이동 전화기, 스마트 폰(smart phone), 차량용 네비게이터, 데이터 서버(data server), HDD(hard disk drive), SSD(solid state drive), 또는 네트워크 스토리지(Network-attached storage(NAS))로 구현될 수 있다.
호스트(1)는 메모리 시스템(3)으로 명령을 전송하여 메모리 컨트롤러(100)가 명령을 수행하도록 한다. 상기 명령은 리드 동작, 이레이즈 동작 또는 프로그램 동작을 포함한다. 메모리 컨트롤러(100)는 상기 명령에 따라 메모리 장치(2)에 액세스하여 데이터블럭을 리드(Read)하거나, 이레이즈(Erase) 하거나 또는 프로그램(Program)할 수 있다.
메모리 장치(2)는 데이터를 저장하는 비휘발성(non-volatile) 메모리 장치로서 구현될 수 있다. 상기 비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), OUM(Ovonic Unified Memory)라고도 불리는 PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM 또는 ReRAM), 나노튜브 RRAM (Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)를 포함할 수 있다. 상기 비휘발성 메모리 장치의 메모리 셀은 1-비트 또는 그 이상의 비트들을 저장할 수 있다.
메모리 컨트롤러(100)는 호스트의 명령에 따라 메모리 장치(2)의 동작, 예를 들면 프로그램 동작, 리드 동작 또는 이레이즈 동작을 제어하기 위한 어드레스와 명령을 생성한다. 메모리 컨트롤러(100)는 메모리 장치(2)는 명령(CMD)에 따라 동작을 수행하고 그 결과를 메모리 컨트롤러(100)로 전송한다. 상기 메모리 장치(2)와 상기 메모리 컨트롤러(100)는 버스로 연결되어 있고, 상기 버스를 통해 명령(CMD), 데이터 또는 상태 신호 등이 송수신된다.
메모리 컨트롤러(100)와 메모리 장치(2) 간 송수신되는 데이터블럭은 제1속성을 가진 데이터 및/또는 제2속성을 가진 데이터를 포함한다. 도 2에 도시된 바와 같이, 메모리 장치(2)의 저장공간에는 제1속성을 가진 데이터와 제2속성을 가진 데이터가 각각 저장될 수 있다.
제1속성을 가진 데이터는 예를 들어, 메타 데이터(Meta data)일 수 있다. 메타 데이터는 메모리 컨트롤러(100)에서 메모리 시스템(3) 운영을 위해 관리하는 데이터로써, 예를 들면, 맵핑 테이블(Mapping table), 성능향상을 위한 알고리즘에 사용되는 데이터, 오류 블럭 관리 테이블(Bad block management table) 및 기타 시스템 운용상 필요한 데이터 등이 있다.
제2속성을 가진 데이터는 예를 들어, 유저 데이터(User data)일 수 있다. 유저 데이터는 호스트(1)에서 프로그램 동작, 이레이즈 동작 또는 리드 동작을 요청할 때 그 요청대상이 되는 데이터이다.
즉, 제2속성의 데이터는 호스트로부터 수신한 유저 데이터일 수 있고, 상기 제1속성을 가진 데이터는 제2속성에 기초하여 메모리 컨트롤러(100)에서 생성된 메타 데이터일 수 있다.
메모리 컨트롤러(100)와 메모리 장치(2) 각각은 패키지(package)에 패키징될 수 있다.
도 2에 도시된 바와 같이, 메모리 컨트롤러(100)는 메모리(110), 제1변환부(120), CPU(130),호스트 인터페이스(140), ECC 블록(150) 및 메모리 인터페이스(160)를 포함한다.
메모리(110)는 CPU(130)의 동작 메모리(operation memory)로서 사용될 수 있다. 메모리(110)는 DRAM(dynamic random access memory), SRAM (static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)과 같이 현존하는 휘발성 메모리 셀 (volatile memory cell)과 현재 개발 중인 휘발성 메모리 셀을 포함한다. 또한 메모리(110)는 ROM(Read Only Memory)로 구현될 수도 있다.
메모리(110)는 미리 정의된 다수의 랜덤 시퀀스들을 저장할 수 있다. 상기 다수의 랜덤 시퀀스들은 메모리 컨트롤러(100)의 부팅시 또는 CPU(130)이 호스트(1)의 요청에 따른 명령을 수행시 메모리(110)에 로드(load)될 수 있다.
상기 다수의 랜덤 시퀀스들은 메모리(110)를 효율적으로 사용하기 위해 CPU(130)의 명령 수행 단위에 맞게 쉬프트되는 연산 블럭으로 조합될 수 있다. 일례로, 32비트 CPU의 경우로써 메모리 장치(2)의 일단위의 메모리 셀이 2 비트 MLC(Multi-Level Cell)이면, 2 비트 MLC는 128페이지를 가지므로 512메가바이트(MByte)(즉, 512Mbyte = 32bit x 128 pages)의 메모리용량을 사용하게 된다.
제1 변환부(120)는 호스트(1)가 메모리 장치(2)에 대해 프로그램 동작을 요청할 경우, 호스트(1)로부터 수신한 프로그램할 데이터를 메모리 장치(2)에 적합하게 수정하여 전송한다. 일례로 제1 변환부(120)는 상기 다수의 랜덤 시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤 시퀀스들을 선택하고, 선택된 랜덤 시퀀스를 이용하여 상기 데이터블럭을 랜더마이즈(randomize)할 수 있다.
또한 제1 변환부(120)는 호스트(1)가 메모리 장치(2)에 대해 리드 동작을 요청할 경우, 메모리 장치(2)로부터 리드된 데이터를 호스트(1)에 적합하게 수정하여 전송한다. 일례로 제1 변환부(120)는 상기 다수의 랜덤 시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤 시퀀스들을 선택하고, 상기 선택된 랜덤 시퀀스를 이용하여 랜더마이즈된 데이터블럭을 디랜더마이즈(derandomize)할 수 있다.
제1 변환부(120)가 상기 선택된 랜덤 시퀀스들을 이용하여 데이터블럭을 랜더마이즈 또는 디랜더마이즈할 경우, 상기 랜덤 시퀀스들은 CPU(120)의 명령 수행 단위로 쉬프트되어 로드될 수 있다. 이에 대한 자세한 설명은 도 4 내지 도 8에서 하기로 한다.
제1 변환부(120)는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상기 제1변환부(120)는 별도로 도시되었으나 본 발명의 실시예가 이에 한정되지 아니하고, 실시예에 따라 CPU(13) 내부에 구현될 수도 있다.
CPU(130)는 버스를 통하여 메모리(110), 호스트 인터페이스(140), ECC 블록(150), 및 메모리 인터페이스(160) 사이에서 데이터의 교환을 제어할 수 있다. CPU(130)는 적어도 하나 이상, 즉, 멀티 코어(multi-core)로 구현될 수 있다. 멀티코어로 구현시 제1 프로세싱 유닛은 호스트(1)로부터 수신한 제1 명령을 수행하고, 제2 프로세싱 유닛은 상기 제1 프로세싱 유닛의 동작과 별도로 호스트(1)로부터 수신한 제2 명령을 수행할 수 있다.
호스트 인터페이스(140)는 메모리 시스템(3)에 접속된 호스트(1)의 프로토콜에 따라 상기 호스트(1)와 메모리 컨트롤러(100) 사이에서 데이터의 교환을 인터페이스할 수 있다.
ECC(error correction code) 블록(150)은 메모리 장치(2)로부터 읽혀진 데이터에 포함된 에러를 선택하고 정정할 수 있다.
메모리 인터페이스(160)는 메모리 장치(2)와 메모리 컨트롤러(100) 사이에서 데이터의 교환을 인터페이스할 수 있다.
메모리 시스템(3)은 USB(Universal Serial Bus) 플래시 드라이브 또는 메모리 스틱(memory stick)으로 구현될 수 있다.
메모리 컨트롤러(100)는 제2 변환부(170)를 더 포함할 수 있다.
제2 변환부(170)는 메모리(110)로부터 제1데이터 중 제2속성 데이터(일례로 유저데이터)를 제2데이터의 제2속성 데이터로 랜더마이즈할 수 있다. 또한 제2 변환부(170)는 랜더마이즈된 상기 제3데이터 중 제2속성 데이터를 상기 제4데이터의 제2속성 데이터로 디랜더마이즈한다. 이때 제2속성 데이터의 랜더마이즈 동작 또는 디랜더마이즈 동작은 랜덤 시퀀스를 생성하는 회로(예를 들면 의사난수 생성기)에 의해서 생성된 랜덤 시퀀스를 이용하여 수행될 수 있다.
제2 변환부(170)는 메모리 컨트롤러(100)의 내부에 구현되는 것으로 도시되었으나, 실시예가 이에 한정되지는 아니하고, 메모리 컨트롤러(100) 외부와 메모리 장치(2) 사이의 카드 인터페이스 사이에 구현될 수도 있다.
제1변환부(120) 및 제2 변환부(170)는 ECC 블록(150) 앞단 또는 뒷단에 위치하여 데이터를 랜더마이즈 또는 디랜더마이즈할 수 있다.
도 4은 도 1의 메모리 컨트롤러의 동작을 설명하기 위한 일실시예의 개념도이다.
도 4를 참조하면, 호스트가 메모리 시스템(3)에 데이터블럭에 대한 프로그래밍 요청을 보낸 경우의 메모리 컨트롤러(100)의 동작을 볼 수 있다.
일례로 제1속성을 가진 데이터블럭이 H1,A1,A2 및 H2라는 데이터 패턴을 포함하고 그중 랜더마이즈할 데이터 패턴은 A1 및 A2라고 가정하자. 상기 데이터블록은 제1속성을 가진 데이터(메타데이터) 외에 제2속성을 가진 데이터(유저데이터)를 더 포함할 수 있다. 설명의 편의를 위해 데이터블럭 중 제1속성(일례로 메타 데이터)의 변환동작을 도시한다.
제1변환부(120)는 호스트(1)로부터 데이터블럭을 수신하면, 데이터블럭 내 데이터 속성들에 기초하여 메모리(110)부터 랜덤 시퀀스들을 로드한다. 즉, 상기 데이터 속성은 제1속성인지 제2속성인지 여부, 및 랜더마이즈할 데이터인지 랜더마이즈하지 않을 데이터인지를 말한다. 따라서 랜덤 시퀀스들은 데이터 패턴에 따라 선택된다.
보다 구체적으로 설명하면, 도 4의 랜덤 시퀀스들은 데이터블럭의 H1,A1,A2 및 H2이 랜더마이즈할 데이터인지 랜더마이즈하지 않을 데이터인지에 따른 데이터 패턴에 따라 x,random1,random2,x로 정해진다. 상기 예에서 A1 및 A2는 랜더마이즈하고, H1 및 H2는 랜더마이즈 하지 않도록 설정되는 랜덤시퀀스들이 로드된다.
제1변환부(120)는 선택된 랜덤 시퀀스들을 이용하여 제1속성을 가진 데이터블록을 랜더마이즈한다. 상기 랜더마이즈는 일례로 XOR 연산을 포함하는 논리연산일 수 있다.
따라서, 제1속성을 가진 데이터블럭 H1,A1,A2 및 H2는 그 패턴에 상응하는 랜덤시퀀스들 x,random,random,x와 XOR연산을 수행하여 H1,제1랜더마이즈 데이터(randommized1), 제2랜더마이즈 데이터(randomized2) 및 H2로 랜더마이즈된다.
역으로, 호스트가 메모리 시스템(3)에 제3데이터에 대한 리드(Read) 요청을 보낸 경우의 메모리 컨트롤러(100)의 동작은 랜더마이즈 동작 수행시 사용되었던 랜덤시퀀스들을 다시 사용하여 디랜더마이즈하는 것으로 수행될 수 있다.
보다 구체적으로 설명하면, 메모리 컨트롤러(100)는 메모리 장치(2)로부터 이전에 랜더마이즈되었던 데이터블럭을 수신하면, 제1속성을 가진 랜더마이즈된 데이터블럭은 H1,제1랜더마이즈 데이터(randomized1), 제2랜더마이즈 데이터(randomized2) 및 H2을 포함한다.
제1변환부(100)는 상기 데이터들의 패턴에 기초하여 메모리(110)로부터 랜덤 시퀀스들을 선택한다. 선택된 랜덤 시퀀스들은 랜더마이즈 동작에 사용되었던 것과 동일한 랜덤 시퀀스들 x,random1,random2,x이다.
제1변환부(100)는 제1속성을 가진 랜더마이즈된 데이터블록을 상기 선택된 랜덤 시퀀스들과 XOR연산을 수행하여 디랜더마이즈한다. 즉, 랜더마이즈는 데이터 각각에 대해 각 랜덤 시퀀스들을 1회 XOR연산 수행하고, 디랜더마이즈는 상기 데이터 각각에 대해 상기 각 랜덤 시퀀스들을 2회 XOR연산 수행한 것일 수 있다.
디랜더마이즈 동작 결과 H1,A1,A2 및 H2가 호스트로 출력될 수 있다.
도 5는 도 1의 메모리 컨트롤러의 동작을 설명하기 위한 다른 일실시예의 개념도이다.
호스트가 메모리 시스템(3)에 데이터블럭에 대한 프로그래밍 요청을 보낸 경우, 도 5의 제1속성을 가진 데이터블럭은 H3,H4, H5 및 H6라는 데이터 패턴을 포함하고 랜더마이즈할 데이터는 H3라고 가정하자.
제1변환부(120)는 호스트(1)로부터 제1데이터를 수신하면, 제1속성을 가진 데이터블록의 데이터 패턴에 기초하여 메모리(110)부터 랜덤 시퀀스들을 선택한다. 이때 선택하는 랜덤 시퀀스들은 데이터 패턴 H3,H4,H5 및 H6에 따라 정해진다. 즉, H3는 랜더마이즈하고, H4,H5 및 H6는 랜더마이즈 하지 않도록 설정되는 랜덤시퀀스들 random,x,x,x가 선택된다.
제1변환부(120)는 제1속성을 가진 데이터블록 H3,H4, H5 및 H6는 그 데이터 패턴에 따라 선택되는 랜덤시퀀스들 random,x,x,x와 XOR연산을 수행하여 랜더마이즈된다.
역으로, 호스트가 메모리 시스템(3)에 랜더마이즈된 데이터에 대한 리드(Read) 요청을 보낸 경우를 가정하자. 메모리 컨트롤러(100)는 메모리 장치(2)로부터 수신한 랜더마이즈된 제1속성을 가진 데이터블럭을 그 데이터 패턴에 따라 기설정되어 선택된 랜덤시퀀스들 random3,x,x,x과 XOR연산을 수행하여 디랜더마이즈한다. 그 결과, 제3랜더마이즈 데이터(randomized3),H4,H5,H6은 데이터 블럭 H3,H4, H5 및 H6으로 디랜더마이즈된다.
도 6는 도 3에 도시된 메모리에 로드되는 랜덤시퀀스들을 나타낸 도면이고,도 7은 도 1의 메모리 컨트롤러가 랜덤시퀀스들을 선택하는 동작을 설명하기 위한 일실시예의 개념도이다.
메모리(110)는 도 6에 도시된 바와 같은 다수의 랜덤 시퀀스들을 저장할 수 있다. 일실시예로 32비트 CPU(130)인 경우의 랜덤시퀀스들을 나타낸 것이다.
하나의 랜덤 시퀀스(S1)당 4바이트(Byte), 즉, 32 비트(bit)로써 상기 CPU의 명령 수행단위(k)가 된다. 제1변환부(120)는 메타 데이터를 랜더마이즈 또는 디랜더마이즈 연산 수행시 상기 CPU의 명령 수행단위만큼 쉬프트한 랜덤 시퀀스를 사용할 수 있다. 그 결과 다수의 랜덤 시퀀스들이 메모리(110)에 저장되는 용량을 효율적으로 활용할 수 있다.
보다 구체적으로 설명하기 위해 도 6을 참조하면, 제1변환부(120)는 메타 데이터 D1,D2,D3,D4를 수신하면, 상기 메타 데이터 D1,D2,D3,D4의 데이터 패턴에 상응하는 랜덤시퀀스들 S1,S2,S3,S4을 상기 메모리(110)로부터 로드한다. 그리고 제1변환부(120)는 메타 데이터 D1,D2,D3,D4와 랜덤시퀀스들 S1,S2,S3,S4를 XOR 연산 수행하여 랜더마이즈한다. 이때 랜덤시퀀스들 S1,S2,S3,S4는 도 4 또는 도 5에 도시된 바와 같이 랜더마이즈할 것인지 랜더마이즈하지 않을 것인지 결정하는 시퀀스일 수 있다.
제1변환부(120)는 이어서 메타 데이터 D5,D6,D7,D8을 수신하면, 상기 메타 데이터 D5,D6,D7,D8의 데이터 패턴에 상응하는 랜덤시퀀스들 S2,S3,S4,S5를 상기 메모리(110)로부터 로드한다. 그리고 제1변환부(120)는 메타 데이터 D5,D6,D7,D8와 랜덤시퀀스들 S2,S3,S4,S5를 XOR 연산 수행하여 랜더마이즈한다.
즉, 연속되는 메타 데이터들에 대해 랜더마이즈 또는 디랜더마이즈할 때마다, 상응하는 랜덤시퀀스들을 CPU 명령 수행 단위로 쉬프트하여 연산하는 것이다. 상기 예에서 첫번째 랜더마이즈 연산 수행시 랜덤 시퀀스들을 S1,S2,S3,S4를 사용하였다면, 두번째 랜더마이즈 연산 수행시에는 랜덤 시퀀스들을 쉬프트하여 S2,S3,S4,S5를 사용하는 것이다.
그 결과 메모리 컨트롤러(100)에서 D1 내지 D64에 대해 랜더마이즈를 수행하면 랜덤 시퀀스는 S1부터 쉬프트 되며 하나의 시퀀스당 4번씩 이용되어 메모리(110)에 저장되는 랜덤 시퀀스들의 저장 용량을 줄일 수 있고, 데이터 패턴에 따라 랜덤 시퀀스를 사용하여 XOR 연산 수행하므로 랜더마이즈/디랜더마이즈 동작의 효율성을 높일 수 있다.
도 8은 본 발명의 실시예들에 따른 메모리 시스템의 동작을 나타낸 블럭도이다.
도 8을 참조하면, 메모리 컨트롤러(100)는 메모리 장치(2)와 데이터를 송수신 할 때, 메타 데이터(Meta data)에 대해서는 제1변형부(120)를 이용하여 메모리(110)로부터 로드된 제1 랜덤시퀀스(M Sequence)로 랜더마이즈/디랜더마이즈 연산을 수행할 수 있다. 한편 유저 데이터(User data)에 대해서는 제2변형부(170)를 이용하여 제2 랜덤시퀀스(U Sequence)로 랜더마이즈/디랜더마이즈 연산을 수행할 수 있다. 일례로 제2변형부(170)는 랜더마이저 또는 디랜더마이저와 같은 변환회로로 구현될 수 있다.
그 결과, 메타 데이터가 유저 데이터와 별개로 랜더마이즈/디랜더마이즈 됨으로써, 메타 데이터는 메모리 컨트롤러(100) 내의 설정 환경의 변화에 상응하여 데이터 패턴에 따른 랜더마이즈/디랜더마이즈 연산 수행할 수 있으므로 데이터 신뢰성이 향상될 수 있다.
도 9는 본 발명의 일실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸 흐름도이다.
도 9를 참조하면, 메모리 컨트롤러(100)는 제1속성을 가진 데이터블럭을 랜더마이즈하기 위해 먼저 다수의 랜덤 시퀀스들을 로드한다(S11). 이때 상기 다수의 랜덤 시퀀스들은 메모리 컨트롤러(100)의 부팅시 또는 호스트로부터 동작 수행 요청시 로드될 수 있다. 이때 제1속성을 가진 데이터블럭은 메타 데이터일 수 있다.
메모리 컨트롤러(100)는 상기 다수의 랜덤 시퀀스들 중 상기 데이터블럭의 데이터 패턴에 상응하는 랜덤 시퀀스를 선택한다(S12). 그리고 상기 선택된 랜덤 시퀀스들을 이용하여 상기 데이터블럭을 랜더마이즈 한다(S13).
메모리 컨트롤러(100)는 랜더마이즈된 상기 데이터블럭을 메모리 장치(2)로 출력한다(S14).
도 10은 본 발명의 다른 일실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸 흐름도이다.
도 10을 참조하면, 메모리 컨트롤러(100)는 제1속성을 가진 데이터블럭을 디랜더마이즈하기 위해 먼저 다수의 랜덤 시퀀스들을 로드한다(S21). 이때 상기 다수의 랜덤 시퀀스들은 메모리 컨트롤러(100)의 부팅시 또는 호스트로부터 동작 수행 요청시 로드될 수 있다. 이때 상기 데이터는 메타 데이터일 수 있다.
메모리 컨트롤러(100)는 상기 다수의 랜덤 시퀀스들 중 상기 데이터블럭의 데이터 패턴에 상응하는 랜덤 시퀀스를 선택한다(S22). 그리고 상기 선택된 랜덤 시퀀스들을 이용하여 상기 데이터블럭을 디랜더마이즈 한다(S23).
메모리 컨트롤러(100)는 디랜더마이즈된 상기 데이터블럭을 호스트(1)로 출력한다(S24).
상기 실시예들에 따른 메모리 컨트롤러의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 11은 본 발명의 일실시예에 따른 다수의 반도체 장치를 포함하는 멀티-칩 패키지(70)의 일 실시예를 개략적으로 나타내는 도면이다.
도 11을 참조하면, 멀티-칩 패키지(70)는 패키지 기판(71)상에 순차적으로 적층되는 다수의 반도체 장치들(72~74, Chip #1~Chip #3)을 포함할 수 있다. 다수의 반도체 장치들(72~74) 각각은 상술한 CPU, 컨트롤러, 또는 메모리 장치일 수 있다. 메모리 장치는 상술한 휘발성 메모리 장치 또는 비휘발성 메모리 장치일수 있다. 본 발명의 실시예에 따른 전원공급장치(1, 또는 1000)는 다수의 반도체 장치들(72~74) 중 하나 이상의 반도체 장치의 내부에 구비될 수도 있고, 패키지 기판(71) 상에 구현될 수도 있다. 다수의 반도체 장치들(72~74)간의 전기적 연결을 위해서, 실리콘 관통전극(TSV: Through-silicon via, 미도시), 연결선(미도시), 범프(bump, 미도시), 솔더 볼(75) 등이 사용될 수 있다.
1 : 호스트 2 : 메모리 장치
3 : 메모리 시스템 100 : 메모리 컨트롤러
110 : 메모리 120 : 제1변환부
130 : CPU 140 : 호스트 인터페이스
150 : ECC 160 : 메모리 인터페이스
170 : 제2변환부

Claims (10)

  1. 호스트로부터 수신한 명령을 수행하는 제1 프로세싱 유닛;
    다수의 랜덤 시퀀스들을 로드하는 메모리; 및
    상기 다수의 랜덤 시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤 시퀀스들을 선택하고, 선택된 랜덤 시퀀스를 이용하여 상기 데이터블럭을 랜더마이즈하거나, 상기 선택된 랜덤 시퀀스를 이용하여 랜더마이즈된 데이터블럭을 디랜더마이즈하는 제1 변환부를 포함하고,
    상기 데이터블럭은
    제1속성을 가진 데이터를 포함하는 메모리 컨트롤러.
  2. 제1항에 있어서, 상기 제1 변환부는
    상기 데이터블럭 또는 상기 랜더마이즈된 데이터블럭을 수신할 때마다 상기 랜덤 시퀀스들을 상기 명령 수행 단위로 쉬프트하여 선택하는 메모리 컨트롤러.
  3. 제1항에 있어서, 상기 제1 변환부는
    상기 선택된 랜덤 시퀀스와 상기 데이터블럭을 XOR연산하여 랜더마이즈하거나 상기 선택된 랜덤 시퀀스와 상기 랜더마이즈된 데이터블럭을 XOR연산하여 디랜더마이즈하는 메모리 컨트롤러.
  4. 제1항에 있어서, 상기 데이터 블럭은
    제2속성을 가진 데이터를 더 포함하고,
    상기 메모리 컨트롤러는
    랜덤시퀀스를 생성하는 회로에 의해 생성된 랜덤시퀀스를 이용하여 제2속성을 가진 상기 데이터를 랜더마이즈하거나, 제2속성을 가진 랜더마이즈된 상기 데이터를 디랜더마이즈하는 제2 변환부를 더 포함하는 메모리 컨트롤러.
  5. 제4항에 있어서, 상기 데이터 블럭은
    제1속성을 가진 데이터는 메타 데이터이고, 제2속성을 가진 데이터는 유저 데이터인 데이터들을 포함하는 메모리 컨트롤러.
  6. 다수의 랜덤시퀀스들을 로드하는 단계;
    상기 다수의 랜덤시퀀스들 중에서 데이터블럭의 데이터 패턴에 따라 기설정된 랜덤시퀀스들을 선택하는 단계; 및
    상기 선택된 랜덤시퀀스들을 이용하여, 상기 데이터블럭을 랜더마이즈하거나, 랜더마이즈된 데이터블럭을 디랜더마이즈하여 변환하는 단계를 포함하고,
    상기 데이터블럭은
    제1속성을 가진 데이터를 포함하는 메모리 컨트롤러의 동작 방법.
  7. 제6항에 있어서, 상기 선택하는 단계는
    상기 데이터블럭 또는 상기 랜더마이즈된 데이터블럭을 수신할 때마다 상기 랜덤 시퀀스들을 상기 명령 수행 단위로 쉬프트하여 선택하는 메모리 컨트롤러의 동작 방법.
  8. 제6항에 있어서, 상기 변환하는 단계는
    상기 선택된 랜덤 시퀀스들과 상기 데이터블럭을 XOR연산하여 랜더마이즈하는 단계; 및
    상기 랜더마이즈된 데이터블럭을 메모리 장치로 전송하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  9. 제6항에 있어서, 상기 변환하는 단계는
    메모리 장치로부터 상기 랜더마이즈된 데이터블럭을 수신받는 단계;
    상기 선택된 랜덤 시퀀스들과 상기 랜더마이즈된 데이터블럭을 XOR 연산하여 디랜더마이즈하는 단계; 및
    상기 디랜더마이즈된 데이터블럭을 호스트로 전송하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  10. 제6항에 있어서, 상기 데이터블럭은
    제2속성을 가진 데이터를 더 포함하여,
    랜덤시퀀스를 생성하는 회로에 의해 생성된 랜덤시퀀스를 이용하여 상기 제2속성 데이터를 랜더마이즈하거나, 랜더마이즈된 상기 제2속성 데이터를 디랜더마이즈하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
KR1020120019921A 2012-02-27 2012-02-27 메모리 컨트롤러 및 이의 동작 방법 KR102036348B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120019921A KR102036348B1 (ko) 2012-02-27 2012-02-27 메모리 컨트롤러 및 이의 동작 방법
US13/778,396 US20130227213A1 (en) 2012-02-27 2013-02-27 Memory controller and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120019921A KR102036348B1 (ko) 2012-02-27 2012-02-27 메모리 컨트롤러 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20130098085A true KR20130098085A (ko) 2013-09-04
KR102036348B1 KR102036348B1 (ko) 2019-10-24

Family

ID=49004560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120019921A KR102036348B1 (ko) 2012-02-27 2012-02-27 메모리 컨트롤러 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US20130227213A1 (ko)
KR (1) KR102036348B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049054B2 (en) * 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
KR20190033791A (ko) * 2017-09-22 2019-04-01 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 장치 및 이들을 포함하는 메모리 시스템
KR20190074890A (ko) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209561B1 (en) * 2002-07-19 2007-04-24 Cybersource Corporation System and method for generating encryption seed values
US20100002870A1 (en) * 2002-08-23 2010-01-07 Qualcomm Incorporated Partial encryption and full authentication of message blocks
KR20100039647A (ko) * 2008-10-08 2010-04-16 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
KR20030085094A (ko) * 2001-04-03 2003-11-01 미쓰비시덴키 가부시키가이샤 암호화 장치
US7167560B2 (en) * 2002-08-08 2007-01-23 Matsushita Electric Industrial Co., Ltd. Partial encryption of stream-formatted media
US7694151B1 (en) * 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
US7747710B1 (en) * 2005-02-03 2010-06-29 Dj Inventions, Llc System for detecting changes in preselected measurable conditions
US8428259B2 (en) * 2005-06-09 2013-04-23 General Dynamics Advanced Information Systems Apparatus and method for all-optical encryption and decryption of an optical signal
US8996421B2 (en) * 2006-05-15 2015-03-31 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at broadcast headends in pay delivery systems
US20080226078A1 (en) * 2007-03-12 2008-09-18 Microsoft Corporation Enabling recording and copying data
US8503678B2 (en) * 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US20090282267A1 (en) * 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
US8464074B1 (en) * 2008-05-30 2013-06-11 Cisco Technology, Inc. Storage media encryption with write acceleration
US8429330B2 (en) * 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
CN101685381B (zh) * 2008-09-26 2013-07-24 美光科技公司 固态大容量存储装置的数据串流
US8386856B2 (en) * 2009-07-01 2013-02-26 Silicon Motion, Inc. Data storage device capable of selecting scrambled signals according to transmission power
US8810560B2 (en) * 2010-12-13 2014-08-19 Apple Inc. Methods and apparatus for scrambler synchronization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209561B1 (en) * 2002-07-19 2007-04-24 Cybersource Corporation System and method for generating encryption seed values
US20100002870A1 (en) * 2002-08-23 2010-01-07 Qualcomm Incorporated Partial encryption and full authentication of message blocks
KR20100039647A (ko) * 2008-10-08 2010-04-16 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법

Also Published As

Publication number Publication date
US20130227213A1 (en) 2013-08-29
KR102036348B1 (ko) 2019-10-24

Similar Documents

Publication Publication Date Title
TWI757371B (zh) 記憶體系統及其操作方法
US20190361778A1 (en) Memory system and operating method thereof
CN109213441B (zh) 能够管理工作而无需处理器干预的存储装置
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
US20190087128A1 (en) Memory system and operating method of the same
US9396108B2 (en) Data storage device capable of efficiently using a working memory device
US9081658B2 (en) Storage device and data management method thereof
CN108257637B (zh) 存储器系统及其操作方法
KR102395541B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9472300B2 (en) Data storage device and operating method thereof
US9977735B2 (en) Data storage device and operating method thereof
US20210281414A1 (en) Computing system and operating method thereof
KR102558901B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20160179596A1 (en) Operating method of data storage device
US20200057653A1 (en) Data processing system and operating method thereof
KR20160105625A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10671523B2 (en) Memory system
US11194507B2 (en) Controller and operation method thereof
KR102036348B1 (ko) 메모리 컨트롤러 및 이의 동작 방법
US10521340B2 (en) Memory system and operating method thereof
US10642531B2 (en) Atomic write method for multi-transaction
US9652403B2 (en) Memory control unit and data storage device including the same
KR20130105972A (ko) 라이트 데이터의 에러 검출 방법 및 상기 방법을 수행할 수 있는 데이터 처리 시스템
KR20180012009A (ko) 데이터 맵핑을 수행하는 반도체 장치 및 시스템
US10908843B2 (en) Memory system for managing free pages based on real time clock and operating method thereof

Legal Events

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