KR20120128530A - 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템 - Google Patents

부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템 Download PDF

Info

Publication number
KR20120128530A
KR20120128530A KR1020110081308A KR20110081308A KR20120128530A KR 20120128530 A KR20120128530 A KR 20120128530A KR 1020110081308 A KR1020110081308 A KR 1020110081308A KR 20110081308 A KR20110081308 A KR 20110081308A KR 20120128530 A KR20120128530 A KR 20120128530A
Authority
KR
South Korea
Prior art keywords
data
encoding
command
mode
encoder
Prior art date
Application number
KR1020110081308A
Other languages
English (en)
Other versions
KR101824044B1 (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 KR1020110081308A priority Critical patent/KR101824044B1/ko
Priority to US13/445,197 priority patent/US9373005B2/en
Priority to DE102012103577A priority patent/DE102012103577A1/de
Priority to TW101117600A priority patent/TWI539281B/zh
Priority to JP2012113143A priority patent/JP6039237B2/ja
Priority to CN201210154029.6A priority patent/CN102789560B/zh
Priority to CN201710505691.4A priority patent/CN107256369B/zh
Publication of KR20120128530A publication Critical patent/KR20120128530A/ko
Priority to US15/183,319 priority patent/US10133680B2/en
Priority to JP2016216495A priority patent/JP6431022B2/ja
Application granted granted Critical
Publication of KR101824044B1 publication Critical patent/KR101824044B1/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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

부호화 출력 기능을 구비한 데이터 저장 장치 및 상기 데이터 저장 장치를 구비한 데이터 저장 시스템 및 컴퓨팅 시스템이 제공 된다. 본 발명에 따른 데이터 저장 장치는, 입력 된 커맨드를 디코딩 하고, 상기 디코딩의 결과에 따라 내부 리드(read) 신호 및 내부 트리거(trigger) 신호 중 적어도 하나를 출력하는 제어부, 상기 내부 리드 신호를 제공 받아, 데이터를 출력하는 메모리부 및 상기 내부 트리거 신호의 제공에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 생성된 모드 결정 기초 데이터에 따라 상기 메모리부로부터 제공 받은 데이터를 부호화하는 부호화 모드를 결정하는 부호화부를 포함한다.

Description

부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템{Data storage apparatus providing coded-data output and data storage system thereof}
본 발명은 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템에 관한 것이다. 보다 자세하게는, 출력 되는 데이터를 부분적으로 부호화 하여 출력 하되, 전체 데이터의 각 조각에 대하여 적용 되는 부호화의 방식을 무작위로 달리함으로써 강화된 데이터 보안 기능을 제공하는 데이터 저장 장치 및 시스템에 관한 것이다.
디지털 데이터를 저장하기 위한 다양한 데이터 저장 장치가 제공 되고 있다. 예를 들어, 하드 디스크 드라이브, 솔리드 스테이트 드라이브(Solid State Drive; SSD) 및 다양한 메모리 카드가 제공 되고 있다. 상기 데이터 저장 장치가 저장하는 디지털 데이터가 열람 자격이 없는 자에 의해 조회 되지 않도록 하기 위하여, 보안 영역에 저장 된 데이터의 경우 부호화 한 후 출력함으로써, 데이터가 누출 되더라도 내용을 파악할 수 없도록 하는 강화된 데이터 보안 기술의 제공이 요청 된다.
본 발명이 해결하고자 하는 기술적 과제는, 데이터의 출력 동작 기간 중 외부에서 2 회 이상 특정 커맨드를 입력 받는 것 만으로 상기 데이터의 각 조각을 서로 다른 방식으로 부호화하여 출력하는 데이터 저장 장치 및 상기 데이터 저장 장치를 채용한 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 추가적인 기술적 과제는, 상기 부호화 출력 시, 출력 되는 데이터의 부호화 비율 등 부호화정책을 반영할 수 있는 데이터 저장 장치 및 상기 데이터 저장 장치를 채용한 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 추가적인 기술적 과제는, 원본 데이터를 용이하게 추출 할 수 없도록 데이터를 부호화 하는 데이터 저장 장치 및 상기 데이터 저장 장치를 채용한 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 태양에 따른 데이터 저장 장치는 입력 된 입력 된 커맨드를 디코딩 하고, 상기 디코딩의 결과에 따라 내부 리드(read) 신호 및 내부 트리거(trigger) 신호 중 적어도 하나를 출력하는 제어부, 상기 내부 리드 신호를 제공 받아, 데이터를 출력하는 메모리부 및 상기 내부 트리거 신호의 제공에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 생성된 모드 결정 기초 데이터에 따라 상기 메모리부로부터 제공 받은 메모리 출력 데이터를 부호화하는 부호화 모드부호화부를 포함한다.
상기 부호화부는 부호화를 위한 둘 이상의 부분부호화 모듈을 구비할 수 있으며, 상기 부호화부는 상기 결정 된 부호화 모드에 따라 상기 복수의 부분부호화 모듈 중 하나의 부분부호화 모듈 만을 ON 시킬 수 있다. 상기 복수의 부분부호화 모듈은 상기 메모리 출력 데이터 중 각각 상이한 비율의 데이터를 부호화하는 것이 바람직하다.
상기 부호화부는 상기 메모리 출력 데이터를 부호화 하는 부호화 모듈 및 상기 메모리부로부터 제공 받은 데이터를 그대로 출력하는 바이패스 버스를 구비하고, 상기 결정 된 부호화 모드에 따라 상기 부호화 모듈 및 상기 바이패스 버스 중 하나를 활성화할 수도 있다.
상기 부호화부는 복수의 랜덤데이터 생성기를 구비하며, 상기 결정 된 부호화 모드에 따라 상기 복수의 랜덤 데이터 생성기 중 하나의 랜덤 데이터 생성기 만을 ON 시키고, 상기 ON 된 랜덤 데이터 생성기로부터 제공 받은 랜덤 데이터를 상기 메모리 출력 데이터와 논리 연산한 결과를 출력할 수 있다. 이 때, 상기 복수의 랜덤데이터 생성기는 상기 논리 연산에 관한 피연산자 유지데이터를 생성할 확률이 각각 상이한 것이 바람직하다.
상기 부호화부는 랜덤데이터 생성기 및 피연산자 유지데이터 출력기를 구비하며, 상기 결정 된 부호화 모드에 따라 상기 랜덤데이터 생성기 및 상기 피연산자 유지데이터 출력기 중 하나로부터 제공 받은 데이터를 상기 메모리부로부터 제공 받은 데이터와 논리 연산하고 그 결과 데이터를 출력할 수도 있다.
상기 부호화부는 상기 내부 트리거 신호의 제공에 응답 하여 상기 모드 결정 기초 데이터로서 제1 랜덤 데이터를 생성할 수 있다. 상기 부호화부는 기 지정 된 확률로 특정 데이터가 생성 되도록 상기 제1 랜덤 데이터를 생성할 수도 있다. 예를 들어, 상기 부호화부는 상기 부호화부에 적용 중인 부호화정책에 따른 확률로 특정 데이터가 생성 되도록 상기 제1 랜덤 데이터를 생성할 수 있다.
상기 부호화부는 상기 메모리 출력 데이터를 상기 부호화 모드에 따라 처리하는 부호화기 및 상기 내부 트리거 신호의 제공에 응답 하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 상기 부호화 모드를 결정하며, 상기 부호화기를 상기 결정 된 부호화 모드로 동작시키기 위한 부호화기 제어신호를 상기 부호화기에 제공 하는 부호화 결정부를 포함할 수 있다.
상기 데이터 저장 장치는 상기 부호화정책을 변경하기 위한 커맨드를 제공 받아 부호화정책을 변경할 수 있다.
상기 제어부는 입력 된 제1 커맨드를 디코딩 하여 상기 내부 리드 신호를 제공하고, 입력 된 제2 커맨드를 디코딩 하여 상기 내부 트리거 신호를 제공하되, 상기 제1 커맨드 및 상기 제2 커맨드를 교대로 입력받을 수 있다.
상기 제어부는 입력 된 제3 커맨드를 디코딩 하여 상기 내부 리드 신호 및 상기 내부 트리거 신호를 제공할 수도 있다.
상기 메모리부는 보안 영역을 포함하고, 상기 부호화부는, 상기 메모리부 출력 데이터가 상기 보안 영역 이외의 영역에 저장된 것인 경우 상기 부호화 모드에 무관하게 상기 메모리부로부터 제공 받은 데이터를 바이패스하여, 보안 영역에 저장 된 데이터에 한하여 부호화 출력 기능을 제공 할 수 있다.
본 발명의 일 실시예에 따른 데이터 저장 시스템은, 부호화 대상 데이터의 일부에 대한 리드 요청을 입력 받아 제3 커맨드를 생성 하는 컨트롤러 및 상기 제3 커맨드에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 부호화 대상 데이터의 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다. 상기 리드 요청은 상기 부호화 대상 데이터 전체의 출력을 위하여 2회 이상 입력 되는 것이 바람직하다.
본 발명의 일 실시예에 따른 데이터 저장 시스템은, 부호화 대상 데이터의 리드 요청을 입력 받아, 상기 부호화 대상 데이터의 일부에 대한 제3 커맨드를 2회 이상 순차적으로 출력하는 컨트롤러 및 상기 제3 커맨드의 입력에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 부호화 대상 데이터의 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 데이터 저장 시스템은, 부호화 대상 데이터의 리드 요청을 입력 받아, 제2 커맨드 및 상기 부호화 대상 데이터 중 일부의 출력을 위한 제1 커맨드를 교대로 출력하는 컨트롤러 및 상기 제1 커맨드를 입력 받아 상기 부호화 대상 데이터 중 일부를 부호화 모드에 따라 부호화하여 출력하고, 상기 제2 커맨드의 입력에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 추후 출력될 데이터의 부호화 모드를 결정하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은, 부호화 대상 데이터의 리드 명령 호출 시, 상기 부호화 대상 데이터의 일부의 출력을 위한 제3 커맨드를 2회 이상 순차적으로 생성 하는 호스트 장치 및 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 부호화 대상 데이터의 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은 부호화 대상 데이터의 리드 명령 호출 시, 제2 커맨드 및 상기 부호화 대상 데이터의 일부의 출력을 위한 제1 커맨드를 교대로 생성 하는 호스트 장치 및 상기 제1 커맨드를 입력 받아 상기 부호화 대상 데이터 중 일부를 부호화 모드에 따라 부호화하여 출력하고, 상기 제2 커맨드를 입력 받아 모드 결정 기초 데이터를 생성하고 상기 모드 결정 기초 데이터에 따라 추후 출력될 데이터의 부호화 모드를 결정하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은 부호화 대상 데이터의 리드 명령 호출 시, 부호화 대상 데이터 중 일부에 대한 리드 요청을 2회 이상 순차적으로 생성하는 호스트 장치, 상기 리드 요청을 입력 받아 제3 커맨드를 생성 하는 컨트롤러 및 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 결정된 부호화 모드에 따라 상기 부호화 대상 데이터 중 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은 부호화 대상 데이터의 리드 명령 호출 시, 부호화 대상 데이터의 리드 요청을 생성하는 호스트 장치, 상기 리드 요청을 입력 받아, 상기 부호화 대상 데이터의 일부의 출력을 위한 제3 커맨드를 2회 이상 순차적으로 출력하는 컨트롤러 및 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 결정된 부호화 모드에 따라 상기 부호화 대상 데이터의 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템은 부호화 대상 데이터의 리드 명령 호출 시, 부호화 대상 데이터의 리드 요청을 생성하는 호스트 장치, 상기 리드 요청을 입력 받아, 상기 부호화 대상 데이터의 일부의 출력을 위한 제3 커맨드를 2회 이상 순차적으로 출력하는 컨트롤러 및 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 결정된 부호화 모드에 따라 상기 부호화 대상 데이터의 일부를 부호화하여 출력하는 데이터 저장 장치를 포함한다.
본 발명의 일 실시예에 따른 데이터 저장 시스템은 부호화 대상 데이터의 리드 명령 호출 시, 부호화 대상 데이터의 리드 요청을 생성하는 호스트 장치, 상기 리드 요청을 입력 받아, 제2 커맨드 및 상기 부호화 대상 데이터 중 일부의 출력을 위한 제1 커맨드를 교대로 출력하는 컨트롤러 및 상기 제1 커맨드를 입력 받아 상기 부호화 대상 데이터 중 일부를 부호화 모드에 따라 부호화하여 출력하고, 상기 제2 커맨드의 입력에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 추후 출력될 데이터의 부호화 모드를 결정하는 데이터 저장 장치를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면, 데이터 저장 장치로부터의 데이터 출력 도중, 상기 데이터 저장 장치에 특정 커맨드를 2회 이상 입력 해주는 것만으로 출력 되는 데이터의 보안성이 담보되는 부호화를 수행할 수 있는 효과가 있다.
또한, 상기 데이터 저장 장치 내의 부호화부 부호화 모드 스위칭이 상기 특정 커맨드 입력 시에 이뤄지고, 그 동안은 데이터 출력이 이뤄지지 않으므로, 부호화부 부호화 모드 스위칭에 소요 되는 시간을 충분히 확보할 수 있는 효과가 있다. 그 결과 데이터의 출력 도중 부호화부 부호화 모드 스위칭이 이뤄져서, 예를 들어 복구가능하지 않기 부호화 되지 않아야 할 데이터가 복구가능하게 부호화되거나 그 반대의 상황이 발생하는 것을 방지할 수 있다.
또한, 상기 데이터 저장 장치가 상기 특정 커맨드 입력 시 부호화부 부호화 모드를 결정함에 있어서, 기 지정 된 부호화정책을 반영할 수 있고, 상기 부호화정책은 외부 장치에서 지정할 수 있으므로, 부호화 방식을 외부 장치에서 지정할 수 있는 효과가 있다.
또한, 상기 데이터 저장 장치가 출력한 데이터 중 복구가능한 비율로 부호화 된 데이터의 위치가 매회 상이하고, 원본 데이터가 출력 되지 않기 때문에, 출력 된 데이터를 부적절한 목적으로 복호화하는 것을 방지할 수 있다.
도 1은 호스트 장치 및 데이터 저장 장치를 포함하는, 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 구성도이다.
도 2는 호스트 장치, 컨트롤러 및 데이터 저장 장치를 포함하는, 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 저장 장치의 블록 구성도, 입력 커맨드 및 출력 데이터를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 저장 장치가 데이터를 부호화 하여 출력하는 일 예를 나타낸 개념도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 저장 장치 내 부호화 결정부의 블록 구성도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 저장 장치 내에서 사용 될 수 있는 부호화정책 리스트를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 메모리부의 저장 영역 구성 예를 설명하기 위한 도면이다.
도 8 내지 도 13은 본 발명의 일 실시예에 따른 부호화기의 구성 예를 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시예에 따라 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 타이밍도이다.
도 15는 본 발명의 일 실시예에 따라 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 상세 타이밍도이다.
도 16은 본 발명의 일 실시예에 따라 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치에서 부호화부 스위칭 동작의 최대 허용 시간을 설명하기 위한 상세 타이밍도이다.
도 17은 본 발명의 일 실시예에 따라 부호화 대상 데이터를 동일 사이즈로 분할한 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 타이밍도이다.
도 18은 본 발명의 일 실시예에 따라 부호화 대상 데이터를 동일 하지 않은 사이즈로 분할한 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 타이밍도이다.
도 19는 본 발명의 일 실시예에 따라 제3 커맨드(AUTH_READ)를 순차적으로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 타이밍도이다.
도 20은 본 발명의 일 실시예에 따라 제3 커맨드(AUTH_READ) 및 그에 대한 주소 정보를 순차적으로 입력 받는 데이터 저장 장치의 동작을 설명하기 위한 타이밍도이다.
도 21은 컨트롤러 및 데이터 저장 장치를 포함하는, 본 발명의 일 실시예에 따른 데이터 저장 시스템의 구성 및 동작을 설명하기 위한 도면이다.
도 22는 컨트롤러 및 데이터 저장 장치를 포함하는, 본 발명의 일 실시예에 따른 데이터 저장 시스템의 구성 및 동작을 설명하기 위한 도면이다.
도 23은 컨트롤러 및 데이터 저장 장치를 포함하는, 본 발명의 일 실시예에 따른 데이터 저장 시스템의 구성 및 동작을 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
먼저, 본 명세서에서 사용 되는 '부호화'는 원본 데이터를 랜덤화하여 노이즈 데이터로 변환하는 것이거나, 원본 데이터를 암호화하여 추후 복호화를 통해 원상복구 가능하도록 하는 것을 의미할 수 있다. 본 발명의 일 실시예에 따른, 데이터 저장 장치(10)는 커맨드에 응답해서 원본 데이터를 노이즈 데이터로 변환하거나, 원본 데이터를 암호화할 수 있다.
데이터 저장 장치(10)가 원본 데이터를 노이즈 데이터로 변환하여 출력하는 경우, 부호화데이터의 복구를 위하여 상기 원본 데이터에는 에러 보정 코드가 포함되는 것이 바람직하다. 상기 에러 보정 코드는 Viterbi code, Turbo code 등 기 공지된 것을 사용할 수 있다.
먼저, 도 1을 참조하여, 본 발명의 일 실시예에 따른 컴퓨팅 시스템에 대하여 설명하기로 한다. 본 실시예에 따른 컴퓨팅 시스템(70)은 호스트 장치(60) 및 데이터 저장 장치(10)를 포함할 수 있다.
본 실시예에 따른 호스트 장치(60)는 프로세서와 같은 연산 수단을 구비한 프로세싱 장치 일 수 있다. 호스트 장치(60)를 포함하는 컴퓨팅 시스템(70, 80)은 휴대 전화기, 양방향 라디오 커뮤니케이션 시스템, 일방향 페이저, 양방향 페이저, 개인용 커뮤니케이션 시스템, 휴대용 컴퓨터, 개인 정보 관리기, 오디오 및/또는 비디오 플레이어, 디지털 및/또는 비디오 카메라, 네비게이션 시스템, GPS 등일 수 있다.
본 실시예에 따른 데이터 저장 장치(10)는 불휘발성 메모리로서, NAND-FLASH 메모리, NOR-FLASH 메모리, 상변화 메모리 (PRAM: Phase change Random Access Memory), 고체 자기 메모리(MRAM: Magnetic Random Access Memory), 저항 메모리(RRAM, Resistive Random Access Memory)를 저장 수단으로 사용 한 칩 또는 패키지 일 수 있다. 이하, 데이터 저장 장치(10)의 구현 예로서, FLASH 메모리 칩이 예시적으로 설명될 것이다.
도 1에 도시 된 바와 같이, 데이터 저장 장치(10)는 데이터 저장 장치(10)를 제어하는 호스트 장치(60)와 바로 연결될 수 있다. 본 실시예에 따른 호스트 장치(60)는, 부호화의 대상이 되는 데이터(20)를 얻기 위한 리드 명령을 호출 하는 경우, 부호화의 대상이 되는 데이터(20)의 리드 동작을 위한, 데이터 저장 장치(10)가 인식할 수 있는 커맨드를 생성하여 데이터 저장 장치(10)에 제공 할 수 있다.
상기 커맨드는 그 기능에 따라 데이터 리드(read) 명령인 제1 커맨드, 데이터 저장 장치(10)의 부호화 모드 결정을 위한 시작 신호가 되는 제2 커맨드 및 데이터 리드 및 부호화 모드 결정을 동시에 수행하도록 하는 제3 커맨드 등으로 지칭할 수 있다.
데이터 저장 장치(10)는 상기 제2 커맨드 또는 상기 제3 커맨드의 입력에 응답하여 추후 데이터 출력 시 적용 될 부호화 모드를 결정하기 때문에, 상기 제2, 3 커맨드의 입력을 부호화 모드 결정 프로세스의 시작 신호로만 사용하고, 커맨드가 지정한대로 부호화 모드를 결정하지는 않는다.
즉, 데이터 저장 장치(10)에 입력 되는 부호화 모드 결정과 관련 된 커맨드가 데이터 저장 장치(10)의 부호화 모드를 직접 지정 하지 않는다. 또한, 상기 부호화 모드 결정과 관련 된 커맨드가 입력 될 때 마다 데이터 저장 장치(10)가 부호화 모드를 변경 하지도 않는다. 상술한 바와 같이 데이터 저장 장치(10)가 부호화 모드를 자체적으로 결정하기 때문에, 데이터 저장 장치(10)로부터 출력 된 데이터를 해킹 의도로 얻어내더라도, 복구 가능한 데이터인지 여부를 파악하기 어려운 보안상의 효과를 가진다.
데이터 저장 장치(10)의 상기 부호화 모드는 몇 퍼센트의 메모리 출력 데이터를 부호화 할 것인지를 의미한다. 예를 들어, 데이터 저장 장치(10)의 부호화 모드는 20%의 데이터를 부호화하는 A 부호화 모드 및 70%의 데이터를 부호화하는 B 부호화 모드의 두가지가 존재할 수 있다. 데이터 저장 장치(10)는 상기 제2 커맨드 또는 제3 커맨드 입력을 시작 신호로 하여, 자신의 부호화 모드를 A, B 부호화 모드 중에서 자체적으로 결정한다.
또한, 데이터 저장 장치(10)의 부호화 모드는 데이터를 부호화하지 않고 바이패스하는 C 부호화 모드 및 모든 데이터를 부호화하는 D 부호화 모드의 두가지가 존재할 수도 있다. 데이터 저장 장치(10)는 상기 제2 커맨드 또는 제3 커맨드 입력을 시작 신호로 하여, 자신의 부호화 모드를 C, D 부호화 모드 중에서 자체적으로 결정할 수 있다..
데이터 저장 장치(10)의 부호화 모드는 서로 다른 데이터 부호화율을 가지는 복수의 부호화 모듈 중에서 어떠한 부호화 모듈을 사용할지를 의미하는 것일 수도 있다. 특히, 데이터 저장 장치(10)의 부호화 모드에는 부호화 후에 복구가능(correctable)한 부호화 모듈을 사용하는 부호화 모드, 부호화 후에 복구불가능(non-correctable)한 부호화 모듈을 사용하는 부호화 모드가 존재할 수 있다.
데이터 저장 장치(10)가 부호화 대상 데이터를 출력 하는 도중, 상기 제2 커맨드 또는 제3 커맨드를 데이터 저장 장치(10)에 복수 회 입력 해줌으로써 출력 되는 데이터의 부호화 패턴을 변경할 수 있다. 부호화 대상 데이터(20)는 디지털 데이터인 모든 데이터를 의미한다. 예를 들어 데이터 저장 장치(10)를 인증하기 위하여 사용 되는 데이터 저장 장치(10)의 식별 정보와 같은 인증 정보일 수 있다.
호스트 장치(60)가 데이터 저장 장치(10)에 부호화를 위한 상기 커맨드를 제공 하는 방식에 대하여 설명한다.
먼저, 부호화 대상 데이터(20)를 둘 이상으로 분할하여 각각의 분할 된 데이터에 대하여 적용 되는 부호화 모드를 부호화 대상 데이터(20) 출력 시 마다 무작위로 변경하는 방식에 대하여 설명한다.
호스트 장치(60)는 부호화 대상 데이터(20)의 출력 범위가 분할 된 제1 커맨드 및 제2 커맨드를 교대로 생성할 수 있다. 부호화 대상 데이터(20)의 출력 범위가 분할 된 상기 제1 커맨드는 부호화 대상 데이터(20)의 일부 만을 출력하기 위한 것을 의미한다.
데이터 저장 장치(10)는 상기 제1 커맨드를 입력 받아 부호화 대상 데이터(20) 중 일부 데이터를 부호화 모드에 따라 부호화하여 출력하고, 상기 제2 커맨드의 입력에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 추후 출력될 데이터를 부호화하는 것과 관련 된 부호화 모드를 결정한다. 데이터 저장 장치(10)는 상기 모드 결정 기초 데이터로서, 랜덤 데이터를 생성할 수 있으며, 상기 랜덤 데이터는 특정 값 생성 확률의 설정이 가능한 랜덤 데이터 생성기에 의하여 생성 될 수 있다.
상기 제1 커맨드 및 상기 제2 커맨드를 입력 받은 데이터 저장 장치(10)의 동작에 대하여는 도 14 내지 18을 참조하여 후술한다.
다음으로, 호스트 장치(60)는 부호화 대상 데이터(20)의 출력 범위가 분할 된 제3 커맨드를 2회 이상 순차적으로 생성할 수 있다. 데이터 저장 장치(10)는 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 부호화 대상 데이터 중 일부 데이터를 출력하되, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 일부 데이터를 부호화하여 출력한다. 상기 제3 커맨드의 일 회 입력 시 출력 되는 데이터의 범위는 상기 제3 커맨드에 포함 될 수도 있으며, 기 정의 된 것일 수도 있다. 상기 제3 커맨드를 입력 받은 데이터 저장 장치(10)의 동작 역시 도 19 내지 도 20을 참조하여 후술한다.
데이터 저장 장치(10)가 상기 제1 커맨드 또는 상기 제3 커맨드를 입력 받아 출력하는 부호화 대상 데이터(20)의 일부는 각각 동일한 데이터일 수도 있다. 즉, 부호화 대상 데이터(20)는 복수 개의 동일한 데이터 조각이 연결 된 것이며, 데이터 저장 장치(10)가 상기 제1 커맨드 또는 상기 제3 커맨드를 입력 받아 상기 데이터 조각을 하나씩 부호화하여 출력할 수 있다. 이러한 경우, 상기 제1 커맨드 또는 상기 제3 커맨드의 입력 시 마다 출력 되는 상기 데이터 조각은, 적용 되는 부호화 모드에 따라 서로 다른 데이터일 수 있다.
다음으로, 데이터 저장 장치(10)가 부호화 대상 데이터(20)를 반복 출력하는 방식에 대하여 설명한다.
데이터 저장 장치(10)는 상기 제1 커맨드 또는 상기 제3 커맨드를 입력 받아 부호화 대상 데이터(20) 전부를 출력한다. 데이터 저장 장치(10)는 상기 제1 커맨드를 입력 받는 경우, 부호화 대상 데이터(20) 출력 전 또는 출력 후 상기 제2 커맨드를 입력 받아 부호화 모드가 무작위 변경 될 수 있도록 하는 것이 바람직하다.
부호화 대상 데이터(20)를 반복 출력하는 데이터 저장 장치(10)는 동일한 주소에 저장 된 데이터를 출력함에도 불구하고, 출력시마다 다른 데이터가 출력 되도록 하여 출력 되는 데이터가 부정한 목적으로 원상 복구 되는 것을 방지할 수 있는 효과가 있다.
이하, 특별한 언급이 없는 경우, 데이터 저장 장치(10)는 부호화 대상 데이터(20)를 분할하여 출력하는 것을 의미한다.
도 2를 참조하여, 본 발명의 다른 실시예에 따른 컴퓨팅 시스템에 대하여 설명하기로 한다. 본 실시예에 따른 컴퓨팅 시스템(80)은 호스트 장치(60), 컨트롤러(40) 및 데이터 저장 장치(10)를 포함할 수 있다. 본 실시예에 따른 데이터 저장 장치(10)는 데이터 저장 장치(10)를 제어하는 컨트롤러(40)와 전기적으로 연결될 수 있다. 또한, 컨트롤러(40)는 호스트 장치(60)와 연결될 수 있다. 즉, 데이터 저장 장치(10)는 컨트롤러(40)를 통하여 호스트 장치(60)의 제어를 받을 수 있다.
호스트 장치(60)는 부호화 대상 데이터의 리드 명령이 호출 되는 경우 하나의 리드 요청을 컨트롤러(40)에 제공 하거나, 부호화 대상 데이터의 일부에 대한 분할 된 리드 요청을 2회 이상 분할 하여 제공할 수 있다.
호스트 장치(60)가 상기 분할 된 리드 요청을 제공하는 실시예에서, 컨트롤러(40)는 상기 분할 된 리드 요청을 데이터 저장 장치(10)에 전달한다. 즉, 컨트롤러(40)는 상기 분할 된 리드 요청을 입력 받아 제3 커맨드를 생성한 후, 데이터 저장 장치(10)에 제공한다. 데이터 저장 장치(10)는 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 부호화 대상 데이터(20) 중 일부 데이터를 출력하되, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 일부 데이터를 부호화하여 출력한다. 상기 출력 된 데이터는 컨트롤러(40)를 경유하여 호스트 장치(60)에 제공 될 수 있다.
호스트 장치(60)가 하나의 리드 명령 호출에 대하여 하나의 리드 요청을 컨트롤러(40)에 제공하는 실시예에서, 컨트롤러(40)는 상기 리드 요청을 입력 받아, 상기 부호화 대상 데이터의 출력 범위가 분할 된 제3 커맨드를 2회 이상 순차적으로 출력하거나, 제2 커맨드 및 상기 부호화 대상 데이터의 출력 범위가 분할 된 제1 커맨드를 교대로 출력할 수 있다. 이 때 데이터 저장 장치(10)는 상기 제3 커맨드의 입력에 응답하여, 모드 결정 기초 데이터를 생성하고, 상기 부호화 대상 데이터 중 일부 데이터를 출력하되, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 상기 부호화 대상 데이터 중 일부 데이터를 부호화하여 출력한다. 또한, 데이터 저장 장치(10)는 상기 제1 커맨드를 입력 받아 상기 부호화 대상 데이터 중 일부 데이터를 부호화 모드에 따라 부호화하여 출력하고, 상기 제2 커맨드의 입력에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 추후 출력될 데이터를 부호화하는 것과 관련 된 부호화 모드를 결정한다.
도 1 내지 도 2에 도시된 데이터 저장 장치(10)는 데이터 저장 장치(10)에 구비된 입출력 단자들(핀(pin) 또는 볼(ball)(미도시))을 통해 상기 제1 내지 제3 커맨드를 입력받을 수 있다. 상기 입출력 단자들은 기능에 따라 복수개 존재 할 수 있는데, 예를 들어 입출력 데이터가 송수신 되는 I/O 단자, 상기 I/O 단자를 통해 입력 되는 데이터가 커맨드 인지, 어드레스인지 알기 위한 커맨드 래치 단자 및 어드레스 래치 단자와 상기 I/O 단자를 통한 입출력 타이밍을 형성하기 위한 리드 인에이블먼트 단자 및 라이트 인에이블먼트 단자 등이 존재할 수 있다.
보다 자세하게는, 데이터 저장 장치(10)에 구비된 상기 I/O 단자들을 통해 커맨드를 식별하도록 하는 데이터가 입력 되며, 상기 I/O 단자들을 통해 입력 되는 데이터가 커맨드임을 특정하기 위해, 상기 커맨드 래치 단자 및 상기 어드레스 래치 단자를 통해 적절한 신호가 인가 될 수 있으며, 상기 I/O 단자들을 통한 입력 타이밍을 형성하기 위한 라이트 인에이블먼트 단자를 통하여도 적절한 신호가 동시에 인가 될 수 있다. 이와 관련 되어 도 16에서 추후 자세히 설명하기로 한다.
상기 제1 커맨드 또는 제3 커맨드는 어드레스 관련 정보를 수반할 수 있다. 이경우, 데이터 저장 장치(10)는 상기 제1 커맨드, 제3 커맨드에 수반 된 상기 어드레스에 해당 하는 데이터를 출력할 것이다.
본 발명의 일 실시예에 따른 데이터 저장 장치(10)의 구성 및 동작을 도 3을 참조하여 보다 자세히 설명한다. 도 3에 도시된 바와 같이, 데이터 저장 장치(10)는 메모리부(12), 제어부(14) 및 부호화부(16)를 포함할 수 있다.
제어부(14)는 입력 된 커맨드를 디코딩 하고, 상기 디코딩의 결과에 따라 내부 리드(read) 신호 및 내부 트리거(trigger) 신호 중 적어도 하나를 제공한다. 제어부(14)는 입력 된 커맨드를 디코딩 하는 커맨드 디코더(140)를 포함하고, 커맨드 디코더(140)의 디코딩 결과에 따라 내부 리드 신호(18) 만 출력하거나, 내부 리드 신호(18) 및 내부 트리거 신호(19)를 둘 다 출력하거나, 내부 트리거 신호(19) 만 출력할 수 있다. 본 명세서에서는 내부 리드 신호(18) 만 출력 되는 커맨드를 제1 커맨드, 내부 트리거 신호(19) 만 출력 되는 커맨드를 제2 커맨드, 내부 리드 신호(18) 및 내부 트리거 신호(19) 둘다 출력 되는 커맨드를 제3 커맨드로 지칭 한다.
내부 리드 신호(18)는 메모리부(12)가 부호화 대상 데이터(20)의 일부만을 출력하도록 할 수 있다. 데이터 저장 장치(10)는 부호화 출력을 위하여 부호화 대상 데이터(20)를 2회 이상 분할하여 출력하고, 그 사이에 부호화부(16)의 부호화 모드를 일 회 이상 전환한다.
메모리부(12)는 제어부(14)로부터 내부 리드 신호(18)를 제공 받아, 부호화 대상 데이터(20)의 일부를 출력하여 부호화부(16)에 제공한다.
메모리부(12)는 플래시 메모리 셀 들의 집합인 셀 어레이로 구성 될 수 있다. 상기 셀 어레이를 구성하는 메모리 셀의 종류 또한 다양한 형태로 구성될 수 있다. 예를 들면, 상기 셀 어레이는 낸드(NAND) 플래시 메모리 셀 또는 노어(NOR) 플래시 메모리 셀로 구성될 수 있고, 낸드(NAND) 플래시 메모리 셀과 노어(NOR) 플래시 메모리 셀이 혼합된 형태로 구성될 수도 있다.
메모리부(12)를 구성하는 셀 어레이는 2차원 또는 3차원으로 형성될 수 있다.
메모리부(12)의 각 메모리 셀에 저장되는 데이터 비트 수는 다양한 형태로 구성될 수 있다. 예를 들면, 메모리부(12)는 셀 당 1 비트의 데이터가 저장되는 단일-레벨 플래시 메모리 셀(SLC)들로 구성될 수도 있고, 셀 당 복수 비트의 데이터가 저장되는 멀티-레벨 플래시 메모리 셀(MLC)들로 구성될 수도 있다. 그리고, 단일-레벨 플래시 메모리 셀들과 멀티-레벨 플래시 메모리 셀들이 혼합된 형태로 구성될 수도 있다.
메모리부(12) 내부에는 부호화 대상 데이터(20)가 저장되는 보안 영역(120)이 할당 되어 있을 수 있다. 보안 영역(120)은 특정 어드레스 영역에 할당 될 수 있으며, 상기 어드레스 영역은 셀 어레이에서 특정 블록에 할당된 것일 수 있다. 즉, 보안 영역(120)은 특정 블록에 대하여 할당된 것일 수 있다. 보안 영역 할당의 일 예로, 도 7에는 블록 0-2가 보안영역으로 할당 된 것이 도시 되어 있다.
부호화부(16)는 보안 영역(120) 이외의 영역에 저장 된 데이터가 메모리부(12)로부터 제공 된 경우, 부호화 모드가 온-상태이더라도 메모리부(12)로부터 제공 받은 데이터를 바이패스하여 출력함으로써, 보안 영역 이외의 영역에 저장 된 데이터에 대하여 부호화를 요청하는 커맨드가 입력 되더라도, 자체적으로 부호화를 수행하지 않는 기능을 수행할 수 있다.
부호화 대상 데이터(20)가 저장되는 보안영역(120)은 SLC(Single Level Cell)로 보안영역(120)외의 일반영역은 MLC(Multi Level Cell)로 구성될 수 있다.
또한, 보안 영역(120) 내부에는 세부 구역이 존재할 수 있다. 각각의 상기 세부 구역에 저장 되는 데이터는 서로 다른 부호화정책을 적용 받을 수 있다. 도 7에 도시 된 바와 같이, 예를 들어, 블록 0에 저장 되는 데이터는 부호화정책 1에 따른 부호화정책, 블록 1에 저장 되는 데이터는 부호화정책 2에 따른 부호화정책, 블록 2에 저장 되는 데이터는 부호화정책 3에 따른 부호화정책을 각각 적용 받을 수 있다. 제어부(14)가 입력 받는 커맨드에 부호화정책을 가리키는 데이터가 포함되지 않은 경우, 제어부(14)는 부호화 대상 데이터(20)가 저장 된 세부 구역에 대응 되는 부호화정책이 적용 되도록, 부호화부(16)에 부호화정책 변경신호를 제공할 수 있다. 예를 들어, 도 7에 도시 된 메모리부(12) 구성에서, 부호화 대상 데이터(20)가 블록 2에 저장 된 것이면, 제어부(14)는 부호화부(16)에 부호화정책 3을 적용하도록 부호화정책 변경신호를 제공할 수 있을 것이다. 상기 부호화정책 변경신호를 제공 받은 부호화부(16)의 동작과 관련하여는 후술하여 자세히 설명한다.
상기 부호화정책은 특정 부호화 모드를 적용하는 비율을 지정한다. 예를 들어, 부호화 모드 A가 복구가 불가능하도록 부호화하는 부호화 모드고, 부호화 모드 B가 복구가 가능하도록 부호화하는 부호화 모드인 경우, 부호화 모드 B를 적용하는 비율을 70%로 하는 부호화정책은, 결과적으로 복구 가능 부호화의 비율을 70%로 하여 부호화하는 것을 의미한다.
부호화부(16)는 부호화 모드에 따라 메모리부(12)로부터 제공 받은 데이터를 부호화하여 출력한다.
부호화부(16)의 부호화 모드는 부호화를 수행하기 위한 모듈 중 어떤 모듈을 사용할 것인지를 의미하는 것일 수 있다. 예를 들어, 제1 부호화 모드에서는 입력 데이터 중 30%의 데이터를 부호화하기 위한 모듈을 사용할 수 있고, 제2 부호화 모드에서는 입력 데이터 중 70%의 데이터를 부호화하기 위한 모듈을 사용할 수 있다. 또한, 제1 부호화 모드에서는 입력 데이터를 전부부호화 하기 위한 모듈을 사용하고, 제2 부호화 모드에서는 입력 데이터를 그대로 출력하는 경우도 상정할 수 있다. 즉, 부호화부(16)의 부호화 모드는 입력되는 데이터의 부호화 비율을 의미할 수 있다.
부호화부(16)의 부호화 모드는 내부 트리거 신호(19)의 제공에 응답해서 부호화부(16)가 자체 결정할 수 있다. 보다 자세하게는, 부호화부(16)는 내부 트리거 신호(19)가 제공 되면 그것을 시작 신호로 하여 모드 결정 기초 데이터를 생성한다. 또한, 부호화부(16)는 상기 생성 된 모드 결정 기초 데이터를 기초로, 상기 메모리부로부터 제공 받은 데이터를 부호화하는 것과 관련 된 부호화 모드를 결정한다. 이미 상술한 바와 같이, 내부 트리거 신호(19)는 부호화부(16)의 부호화 모드를 결정하기 위한 시작 신호로서 제공 될 뿐, 상기 부호화 모드의 결정결과 자체에 영향을 미치지 못한다.
부호화부(16)는 랜덤 데이터 생성 방식으로 자신의 부호화 모드를 자체 결정할 수 있다. 즉, 부호화부(16)는 상기 내부 트리거 신호의 제공에 응답하여 상기 모드 결정 기초 데이터로서 제1 랜덤 데이터를 생성할 수 있다. 다만, 일정한 부호화정책에 부합하도록 데이터를 부호화해야 하므로, 부호화부(16)는 기 지정 된 확률로 상기 제1 랜덤 데이터를 생성할 수 있다. 예를 들어, 제1 부호화 모드를 의미하는 '0'과 제2 부호화 모드를 의미하는 '1' 중 하나의 값이 무작위로 생성 되되, '0'이 생성 될 확률이 70%가 되도록 랜덤 데이터 생성기를 설정할 수 있다. 상기 모드 결정 기초 데이터를 무작위로 생성하되 특정 값이 생성 될 확률을 특정하는 경우, 데이터의 부호화 출력 패턴을 무작위로 변형하면서도, 데이터의 부호화 비율과 관련 된 부호화정책은 지킬 수 있는 효과가 있다.
부호화부(16)는 제2 랜덤 데이터를 더 생성 할 수 있다. 상기 제2 랜덤 데이터는 메모리부(12)로부터 제공 된 데이터를 부호화하는 용도로 사용 될 수 있다. 예를 들어, 부호화부(16)는 메모리부(12)로부터 제공 된 데이터를 상기 제2 랜덤 데이터와 논리 연산한 결과 데이터를 출력함으로써, 메모리부(12)로부터 제공 된 데이터를 부호화하여 출력할 수 있다. 부호화부(16)로부터 출력 된 데이터 조각은 순차적으로 연결 되어 부호화 대상 데이터(20)의 부호화 된 데이터(30)를 구성할 수 있다.
본 실시예의 데이터 저장 장치(10)는 제2 커맨드 또는 제3 커맨드를 2회 이상 입력 해주는 것만으로 출력 되는 데이터의 부호화를 부호화정책에 따라 달리 할 수 있다. 도 4를 참조하여 이를 자세히 설명한다.
부호화 대상 데이터(20)를 10회로 나누어 리드 하며, 데이터 저장 장치(10)에 상기 제3 커맨드를 일정한 간격으로 10회 입력한다고 가정한다. 또한, 복구가능 한계부호화비율이 40%인 것으로 가정한다. 복구가능 한계부호화비율은 부호화 된 데이터를 예를 들어, 에러보정코드(ECC) 등을 이용하여 원상복구할 때 요구되는 최대한의 부호화 비율을 의미한다.
부호화 모드가 A-모드인 경우, 20%의 데이터를 부호화하는 부호화 모듈을 사용하고, 부호화 모드가 B-모드인 경우, 80%의 비율에 따른 데이터를 부호화하는 부호화 모듈을 사용한다고 가정한다. 즉, A-모드로 부호화되어 출력되는 데이터는 복구가 가능한 부호화 데이터이며, B-모드로 부호화되어 출력되는 데이터는 복구가 불가능한 노이즈 데이터이다. 또한, 상기 제3 커맨드가 입력 되는 경우 부호화정책에 따라 A-모드가 선택 될 확률은 70%인 것으로 가정한다.
이경우 도 4의 우측에 도시된 바와 같이, 부호화 패턴은 각 ROUND 별로 상이하지만, 복구 가능한 부호화 데이터가 출력 될 확률은 70%로 유지 됨을 알 수 있다. 부호화 모드의 결정이 랜덤 데이터 생성에 의존하므로, 상기 전제된 환경하에서 복구 가능한 부호화 데이터가 출력 될 확률은 70%와 다소 상이할 수도 있으나, 이러한 오차는 ROUND를 다수 실행함으로 인하여 극복가능할 것이다.
도 4에 도시 된 부호화 대상 데이터(20)는 10개로 나누어진 영역에 모두 동일한 데이터가 포함 된 것일 수도 있다. 즉, 부호화 대상 데이터(20)는 둘 이상의 동일한 데이터 조각이 연결 된 것일 수 있고, 데이터 저장 장치(10)는 부호화 대상 데이터(20)를 상기 데이터 조각 단위로 출력할 수 있다.
부호화 대상 데이터(20)는 복수 개의 동일한 데이터 조각이 연결 된 것인 경우, 데이터 저장 장치(10)는 동일한 데이터 조각을 복수 회 부호화 하여 출력하되, 출력 이전에 부호화 모드를 결정하고, 결정 된 부호화 모드에 따라 상기 데이터 조각을 부호화 하여 출력한다. 상기 데이터 조각의 부호화 패턴 역시 각 ROUND 별로 상이하지만, 하나의 ROUND 내에서 복구 가능하게 부호화 된 상기 데이터 조각이 존재하는 비율은 지정 가능하다.
도 4에 도시된 바와는 달리, 본 발명의 일 실시예에 따른 데이터 저장 장치(10)는 부호화 대상 데이터(20)를 복수 회로 나누어 리드 하지 않고, 부호화 대상 데이터(20)를 1회의 리드로 모두 출력할 수도 있다. 즉, 본 실시예에 따른 데이터 저장 장치(10)는 하나의 부호화 모드 만을 사용하여 부호화 대상 데이터(20) 전부를 부호화 할 수도 있다. 다만, 본 실시예에 따른 데이터 저장 장치(10)는 부호화 대상 데이터(20)의 출력 회차 마다 부호화 모드를 결정하여, 동일한 영역에 저장 된 부호화 대상 데이터(20)가 출력 되는 것임에도 불구하고, 부호화 모드에 따라 출력 되는 데이터가 상이할 수 있도록 할 수 있다.
부호화 대상 데이터(20)를 복수 회 출력하는 데이터 저장 장치(10)는 출력 횟수만큼의 커맨드를 입력 받을 수 있다. 예를 들어, 부호화 대상 데이터(20)를 10회 출력하는 경우, 상기 제1 커맨드와 상기 제2 커맨드를 교대로 10회씩 입력 받거나, 상기 제3 커맨드를 10회 입력 받을 수 있다.
반면에, 데이터 저장 장치(10)는 1회의 상기 제3 커맨드 입력 만으로 부호화 대상 데이터(20)를 복수 회 출력할 수도 있다. 이를 위해, 상기 제3 커맨드를 입력 받은 제어부(14)는 부호화 대상 데이터(20)가 전부 출력 되도록 하는 내부 리드 신호(18) 및 내부 트리거 신호(19)를 부호화 대상 데이터(20)의 출력 횟수 만큼 메모리부(12), 부호화부(16)에 각각 제공 할 수 있다.
상기 설명한 바와 같이, 본 발명에 따른 데이터 저장 장치(10)는 복구 가능한 부호화 데이터가 출력 될 확률을 준수하면서도 부호화 패턴이 매회 무작위로 변경 된다. 이러한 점으로 인하여, 보안성을 유지하면서도 데이터 저장 장치(10)로부터 독출하고자 하는 데이터를 부호화 데이터로부터 복구 할 수 있는 효과가 있다.
부호화부(16)의 부호화 모드는 둘 이상 존재할 수 있다. 다만, 이해의 편의를 돕기 위하여, 부호화부(16)의 부호화 모드는 두 가지가 존재하는 경우를 예를 들어 설명하기로 한다.
도 3에 도시된 바와 같이, 부호화부(16)는 메모리부(12)로부터 제공 받은 데이터를 상기 부호화 모드에 따라 처리하는 부호화기(168) 및 내부 트리거 신호(19)의 제공에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 상기 부호화 모드를 결정하며, 부호화기(168)를 상기 결정 된 부호화 모드로 동작시키기 위한 부호화기 제어신호를 부호화기(168)에 제공 하는 부호화 결정부(160)를 포함할 수 있다.
부호화 결정부(160)는 내부 트리거 신호(19)를 제공 받을 때마다 상기 부호화기 제어 신호를 부호화기(168)에 제공할 수도 있으나, 상기 자체 결정 된 부호화 모드가 부호화기(168)의 현 부호화 모드와 상이한 경우에 한하여 부호화기(168)의 부호화 모드 스위칭을 위한 상기 부호화기 제어신호를 부호화기(168)에 제공할 수도 있다. 즉, 부호화 결정부(160)는 부호화기(168)의 부호화 모드 스위칭이 필요한 경우에 한하여 상기 부호화기 제어신호를 부호화기(168)에 제공할 수 있는데, 이러한 경우 부호화기(168) 입장에서 제어신호를 최소한으로 입력 받으므로 동작의 효율성이 증대되는 효과가 있다.
이하, 도 5를 참조하여 부호화 결정부(160)의 상세 구성 및 동작에 대하여 자세히 설명한다. 부호화 결정부(160)는 데이터 저장 장치(10)에 전원이 인가 되는 때 부호화정책 리스트 저장부(163)로부터 부호화정책에 대한 데이터를 로딩하는 부호화정책 리스트 로딩부(164) 및 내부 트리거 신호(19) 입력 시 부호화기 부호화 모드를 자체적으로 결정하는 부호화 모드 결정기(161) 및 부호화 모드 결정기(161)의 결정 결과에 따른 부호화 모드로 부호화기(168)를 제어하기 위한 부호화기 제어신호 생성기(162)를 포함할 수 있다.
부호화정책 리스트 로딩부(164)는 부호화정책 리스트 저장부(163)에 저장 된 부호화정책에 대한 데이터를 로딩한다. 부호화정책 리스트 로딩부(164)는 상기 로딩 작업을 데이터 저장 장치(10)에 전원이 인가 되는 때에 수행할 수 있다. 또는 부호화정책 리스트 로딩부(164)는 상기 로딩 작업을 데이터 저장 장치(10)에 전원이 인가된 후 호스트장치 또는 컨트롤러로부터 입력되는 특정 커맨드에 응답해서 수행할 수 있다. 부호화정책 리스트 로딩부(164)는 로딩 된 데이터를 저장하기 위하여 휘발성 저장 수단인 레지스터들을 구비할 수 있다.
일 실시예에 따른 부호화정책 리스트는 도 6에 도시 되어 있다. 부호화정책은 단 하나만이 존재할 수도 있고, 둘 이상 존재하고 그 중에 하나를 선택하여 적용할 수도 있다. 부호화정책이 둘 이상 존재하는 경우, 데이터 저장 장치(10)가 컨트롤러(40) 또는 호스트 장치(60)로부터 지정 받거나, 데이터 저장 장치(10)가 자체적으로 결정한 부호화정책을 사용할 수 있다.
도 6에는 복수개의 부호화정책 중 하나가 선택 되어 사용 되는 경우의 예를 도시하고 있다. 예를 들어 '부호화정책 1'이 선택된 경우, 복구 가능한 부호화의 비율이 40%이다. 부호화 결정부(160)가 10번 내부 트리거 신호(19)를 제공 받으면, 복구가 가능하도록 부호화를 하는 모듈을 약 4번 선택하는 것을 기대할 수 있다.
부호화부(16)에 적용 되는 부호화정책을 변경하기 위하여, 데이터 저장 장치(10)는 부호화정책의 설정과 관련 된 커맨드를 입력 받을 수 있다. 즉, 이경우, 제어부(14)는 입력 된 커맨드를 디코딩 하고, 상기 디코딩의 결과에 따라 내부 리드(read) 신호, 내부 트리거(trigger) 신호 및 부호화정책 변경신호 중 적어도 하나를 출력한다. 또한, 부호화부(16)는 상기 부호화정책 변경신호를 제어부(14)로부터 제공 받아 상기 부호화정책을 변경한다.
즉, 데이터 저장 장치(10)의 전원 인가 시에 부호화정책 리스트가 로드 되고, 특정 부호화정책의 설정을 위한 커맨드가 입력 되어 상기 부호화정책 리스트에 포함 된 부호화정책 중 하나의 부호화정책이 설정 되면, 부호화부(16)는 상기 설정 된 부호화정책의 복구 가능 부호화 비율에 기반하여 상기 모드 결정 기초 데이터를 생성한다.
도 5에 도시된 바와 같이, 부호화정책 리스트 저장부(163)는 부호화 결정부(160) 외부에 별도의 모듈로 구비 될 수 있다. 예를 들어, 부호화정책 리스트 저장부(163)는 메모리부(12)의 특정 블록인 이-퓨즈(E-fuse) 블록을 의미할 수 있다. 또한, 부호화정책 리스트 저장부(163)는 내부에 구비 된 이-퓨즈 블록일 수도 있고, 데이터 저장 장치(10) 내부에 독립된 모듈로 구비 된 이-퓨즈 블록일 수도 있다. 데이터 저장 장치(10)로 전원이 인가 되면, 상기 이-퓨즈 블록 내에 저장 되는 상기 부호화정책에 대한 데이터에 대해 초기 독출 동작이 수행 된다. 초기 독출 동작에 의해 독출 된 상기 부호화정책에 대한 데이터는 부호화정책 리스트 로딩부(164)에 의하여 로딩 될 수 있다.
상기 이-퓨즈 블록 내에 저장 되는 데이터는 이-퓨즈 데이터 로딩 모드에서 갱신이 가능하므로, 상기 부호화정책에 대한 데이터 역시 갱신이 가능하다.
내부 트리거 신호(19)가 입력 되면 부호화 모드 결정기(161)는 모드 결정 기초 데이터를 생성한다(S1610). 상기 기재 된 바와 같이, 상기 모드 결정 기초 데이터는 설정 된 부호화정책에 따른 비율에 기반한 랜덤 데이터 생성 방식에 의하여 생성 될 수 있다. 즉, 부호화 모드 결정기(161)는 복구 가능하도록 부호화하는 부호화 모드를 의미하는 값이 부호화정책에 지정 된 비율로 생성 되도록 랜덤 데이터를 생성하는 것일 수 있다. 부호화 모드 결정기(161)는 내부 트리거 신호(19)가 1 회 입력 되면, 모드 결정 기초 데이터를 1 회 생성한다.
부호화 모드 결정기(161)는 생성(S1610) 된 모드 결정 기초 데이터를 기반으로 부호화기(168)의 부호화 모드를 결정한다(S1620). 결정 단계(S1620)에서, 상기 모드 결정 기초 데이터에 매칭 된 부호화 모드를 추후 데이터 출력 시 적용 될 부호화 모드로 결정한다. 만약, 부호화 모드로 A-모드, B-모드가 존재한다면, A-모드, B-모드 중 하나의 모드를 선택할 것이다.
다음으로, 결정(S1620) 결과에 따라, 부호화기 제어신호 생성기(162)가 부호화기(168)를 제어하는 부호화기 제어신호를 생성하여 출력한다.
부호화 결정부(160)가 랜덤 데이터 생성에 의하여 부호화기 부호화 모드를 결정하는 방식에 관하여 추가적으로 설명한다.
이미 언급한 바와 같이, 부호화정책 데이터에 부합하도록 결정 기초 데이터를 생성하는 것(S1610)은, 복구 가능하도록 데이터를 부호화하는 부호화 모드를 의미하는 값이 특정 확률로 생성 되도록 랜덤 데이터를 생성하는 것일 수 있다. 부호화 결정부(160)에서 생성 하는 상기 랜덤 데이터를 설명의 편의 상 '제1 랜덤 데이터'라 칭하기로 한다.
부호화 결정부(160)가 동일한 횟수, 동일한 간격으로 내부 트리거 신호(19)를 제공 받더라도, 부호화기(168) 부호화 모드의 결정 결과의 기초가 되는 데이터는 상기 제1 랜덤 데이터이므로, 랜덤 데이터 생성의 속성 상 특정 데이터의 특정 어드레스의 부호화 복구 가능 여부는 매회 동일하지 않다. 즉, 데이터 저장 장치(10)로부터 출력 되는 데이터의 부호화 복구 가능 영역이 매회 달라질 수 있다. 다시 말하면, 해커 입장에서 특정 데이터의 특정 오프셋에 해당 하는 값으로 출력 된 데이터가 매회 달라질 수 있으므로, 어떠한 데이터가 원상 복구 가능한 데이터인지 파악하기 곤란해 질 것이다. 따라서, 본 실시예에 따른 데이터 저장 장치(10)는 부호화 결정부(160)의 상기 제1 랜덤 데이터에 기반 한 부호화기(168) 부호화 모드 결정에 의하여, 부호화 대상 데이터(20) 중 복구 가능하도록 부호화 되는 영역의 위치가 고정 되지 않도록 하는 효과가 있다.
부호화 결정부(160)의 부호화 모드 결정기(161)는 특정 데이터가 생성 될 확률의 프로그램이 가능한 랜덤 데이터 생성 모듈을 통하여 상기 제1 랜덤 데이터를 생성할 수 있다.
이하, 도 8 내지 도 13을 참조하여 부호화기(168)의 구성을 설명하기로 한다.
먼저, 부호화기(168)는 메모리부(12)로부터 제공 받은 데이터를 부호화 하는 복수의 부호화 모듈을 구비할 수 있다. 도 8에는 그 일 실시예로 2 개의 부호화 모듈(169, 170)을 구비하는 부호화기(168)가 도시 되어 있다. 메모리부(12)로부터 출력 되는 데이터는 2 개의 부호화 모듈(169, 170)에 제공 되며, 부호화 결정부(160)로부터 제공 되는 상기 부호화기 제어신호에 따라 2 개의 부호화 모듈(169, 170) 중 하나 만이 ON 되어, ON 된 부호화 모듈로부터 제공 되는 부호화 데이터 만이 MUX(171)를 통하여 출력 된다. 이때, 상기 복수의 부호화 모듈은 입력 데이터 중 각각 상이한 비율의 데이터를 부호화하는 것이다. 도 8에는 MUX(171)가 부호화모듈들 뒤에 위치하고 있지만, MUX(171)는 메모리부(12)와 부호화 모듈들사이에 위치할 수도 있다.
상기 복수의 부호화 모듈들은 입력 데이터 중 복구가능 한계부호화비율 이하의 비율에 따른 데이터를 부호화하는 하나 이상의 A타입 부분부호화 모듈 및 입력 데이터 중 상기 복구가능 한계부호화비율 초과의 비율에 따른 데이터를 부호화하는 하나 이상의 B타입 부호화 모듈을 포함할 수 있다. 예를 들어, 호스트장치 또는 컨트롤러의 상기 복구가능 한계부호화비율이 30%인 경우, 부호화 모듈 A(169)는 20%의 데이터를 부호화하는 A 타입 부호화 모듈일 수 있으며, 부호화 모듈 B(170)는 70%의 데이터를 부호화하는 B 타입 부호화 모듈일 수 있다.
즉, 도 8에 도시 된 부호화기(168)는 부호화 결정부(160)의 제어에 따라, 상기 A타입 부호화 모듈 및 상기 B타입 부호화 모듈 중 하나의 부호화 모듈을 이용하여 부호화 된 데이터를 출력한다.
도 9에는, 부호화 결정부(160)의 제어에 따라, 메모리부(12)로부터 제공 되는 데이터를 부호화 하거나, 그대로 출력하는 부호화기(168)가 도시되어 있다. 도 9에 도시된 부호화기(168)는 입력 데이터를 부호화 하는 부호화 모듈(172) 및 메모리부(12)로부터 제공 받은 데이터를 그대로 출력하는 바이패스 버스(173)를 구비하고, 상기 결정 된 부호화 모드에 따른 부호화 결정부(160)의 제어에 의하여 상기 부호화 모듈 및 상기 바이패스 버스 중 하나를 활성화한다. 부호화 모듈(172)의 부호화 비율은 복구가능 한계부호화비율을 초과하는 범위 내에서 다양하게 설정될 수 있다. 예를 들어, 부호화 모듈(172)는 메모리부(12)로부터 제공 받은 데이터를 모두 부호화하는 것일 수 있다.
즉, 도 9에 도시 된 부호화기(168)는 부호화 결정부(160)의 제어에 따라, 메모리부(12)로부터 제공 된 데이터를 부호화 하거나 그대로 출력한다.
한편, 부호화기(168)는 복수개의 부호화 모듈을 구비하는 것이 아니라, 하나의 프로그래머블 부호화 모듈을 구비할 수도 있다. 도 10에는 프로그래머블 부호화 모듈(174)을 구비하는 부호화기(168)가 도시 되어 있다. 프로그래머블 부호화 모듈(174)은 입력 데이터의 부호화 비율을 설정할 수 있는 것이다.
도 10에 도시 된 부호화기(168)는 상기 결정 된 부호화 모드에 따른 부호화 결정부(160)의 제어에 따라 프로그래머블 부호화 모듈(174)의 부호화 비율을 설정한다. 도 10에 도시된 부호화기(168) 역시, 복구가능한 부호화가 되도록 하는 부호화 모드 및 복구불가능한 부호화가 되도록 하는 부호화 모드 간을 스위칭 할 수 있다. 즉, 부호화기(168)는 제1 부호화 모드에서 복구가능 한계부호화비율 이하인 제1 부호화 비율로 프로그래머블 부호화 모듈(174)의 부호화 비율을 설정하고, 제2 부호화 모드에서 복구가능 한계부호화비율 초과인 제2 부호화 비율로 프로그래머블 부호화 모듈(174)의 부호화 비율을 설정할 수 있다.
일 실시예에 따른 부호화기(168)는 복수의 부호화 모듈(169, 170) 대신 복수의 랜덤데이터 생성기를 구비할 수도 있다. 도 11에는 그 일 실시예로 2 개의 랜덤데이터 생성기(175, 176)를 통하여 부호화를 수행하는 부호화기(168)가 도시 되어 있다. 메모리부(12)로부터 출력 되는 데이터는 2 개의 랜덤데이터 생성기(175, 176)에 제공 되며, 부호화 결정부(160)로부터 제공 되는 상기 부호화기 제어신호에 따라 2 개의 랜덤데이터 생성기(175, 176) 중 하나 만이 ON 되어, ON 된 랜덤 데이터 생성기로부터 제공 되는 데이터를 메모리부(12)로부터 제공 받은 데이터와 논리 연산(180)한 결과 데이터를 출력한다. 복수의 랜덤데이터 생성기는 상기 논리 연산에 관한 피연산자 유지데이터를 생성할 확률이 각각 상이한 것이다. 상기 논리 연산에는 AND, OR, XOR, NOR, NAND 연산 등이 포함 될 수 있다.
상기 피연산자 유지데이터는, 피연산자와 논리 연산되더라도 그 결과 값으로 피연산자가 그대로 도출 되는 데이터를 의미한다. 예를 들어, 상기 피연산자 유지데이터를 "E"라고 하고, 상기 논리 연산을 XOR이라고 하면, 모든 피연산자 A에 대하여 "A XOR E = A"이다.
다시말해서, 랜덤데이터 생성기(175, 176) 중 ON 된 랜덤데이터 생성기의 피연산자 유지데이터 생성확률이 X 퍼센트인 경우, 부호화기(168)를 통하여 출력 되는 데이터 중 X 퍼센트는 메모리부(12)로부터의 원본 데이터가 그대로 출력 되고, (100-X) 퍼센트는 메모리부(12)로부터의 원본 데이터가 복구불가능하게 출력 될 것이다. 따라서, 랜덤데이터 생성기(175, 176)의 논리 연산(180)에 관한 피연산자 유지데이터를 생성할 확률은 부호화 비율과 관련 있는 것으로 이해 될 수 있을 것이다.
상기 복수의 랜덤데이터 생성기는 입력 데이터 중 복구가능 한계부호화비율 초과의 확률로 상기 피연산자 유지데이터를 생성하는 하나 이상의 A타입 랜덤데이터 생성기 및 입력 데이터 중 상기 복구가능 한계부호화비율 이하의 확률로 상기 피연산자 유지데이터를 생성하는 하나 이상의 B타입 랜덤데이터 생성기를 포함할 수 있다. 이는, 상기 복수의 랜덤데이터 생성기는 복구 가능하도록 부호화하는 A타입 및 복구 불가능하도록 부호화하는 B타입으로 구분 될 수 있음을 의미한다.
도 12에 도시된 바와 같이, 부호화기(168)는 랜덤데이터 생성기 A(175) 및 피연산자 유지데이터 출력기(178)를 구비하며, 상기 결정 된 부호화 모드에 따른 부호화 결정부(160)의 제어에 의하여 랜덤데이터 생성기 A(175) 및 피연산자 유지데이터 출력기(178) 중 하나로부터 제공 받은 데이터를 상기 메모리부로부터 제공 받은 데이터와 논리 연산하고 그 결과 데이터를 출력할 수 있다. 도 12에 도시된 부호화기(168)는 도 9에 도시된 부호화기(168)와 같이 부호화 결정부(160)의 제어에 따라, 메모리부(12)로부터 제공 된 데이터를 부호화 하거나 그대로 출력한다.
도 13에 도시된 바와 같이, 부호화기(168)는 특정 논리 연산에 관한 피연산자 유지데이터의 생성 확률을 설정 할 수 있는 프로그래머블 랜덤데이터 생성부(179)를 구비하며, 상기 결정 된 부호화 모드에 따라 프로그래머블 랜덤데이터 생성부(179)의 피연산자 유지데이터 생성 확률을 설정하고, 프로그래머블 랜덤데이터 생성부(179)로부터 제공 받은 데이터를 메모리부(12)로부터 제공 받은 데이터와 상기 특정 논리 연산(180)한 결과를 출력할 수 있다.
도 13에 도시 된 부호화기(168)는 도 10에 도시된 부호화기(168)와 마찬가지로, 복구가능한 부호화가 되도록 하는 부호화 모드 및 복구불가능한 부호화가 되도록 하는 부호화 모드 간을 스위칭 할 수 있다. 즉, 부호화기(168)는 제1 부호화 모드에서 복구가능 한계부호화비율 초과인 제1 부호화 비율로 상기 프로그래머블 랜덤데이터 생성부의 피연산자 유지데이터 생성 확률을 설정하고, 제2 부호화 모드에서 복구가능 한계부호화비율 이하인 제2 부호화 비율로 상기 프로그래머블 랜덤데이터 생성부의 피연산자 유지데이터 생성 확률을 설정할 수 있다.
도 8 내지 도 13에 도시 된 부호화기(168)는 일예로 설명한 것으로, 부호화기(168)는 미리 정해진 스크램블 로직회로로 구현될 수 도 있다.
본 실시예에 따른 데이터 저장 장치(10)는 하나의 부호화 대상 데이터(20)의 출력을 위하여 상기 제1 커맨드 및 상기 제2 커맨드를 교대로 입력 받을 수 있으며, 이경우, 데이터 저장 장치(10)는 기 지정 된 데이터 사이즈 마다 상기 제2 커맨드인 트리거 커맨드를 입력 받을 수도 있고, 부호화 대상 데이터(20) 전체의 출력을 위해 기 지정 된 횟수만큼의 상기 제2 커맨드를 입력 받을 수도 있다.
본 실시예에 따른 데이터 저장 장치(10)는 부호화 대상 데이터(20)의 출력을 위하여 상기 제3 커맨드를 2회 이상 입력 받을 수도 있다. 이경우, 데이터 저장 장치(10)는 기 지정 된 데이터 사이즈 마다 상기 제3 커맨드를 입력 받을 수도 있고, 부호화 대상 데이터(20) 전체의 출력을 위해 기 지정 된횟수만큼의 상기 제3 커맨드를 입력 받을 수도 있다.
이하, 부호화 대상 데이터(20)의 일부를 출력하기 위하여 상기 제1 커맨드 및 상기 제2 커맨드를 교대로 입력 받는 데이터 저장 장치(10)의 동작에 대하여 도 9 내지 도 13을 참조하여 구체적으로 설명한다.
상기 제1 커맨드 및 제2 커맨드에 대하여 다시 한번 설명하면, 상기 제1 커맨드는 제어부(14)에 의해 디코딩 되어 내부 리드 신호(18)의 형태로 메모리부(12)에 전달되는 점에서, 종래의 리드 커맨드와 유사한 것이고, 상기 제2 커맨드는 제어부(14)에 의해 디코딩 되어 내부 트리거 신호(19)의 형태로 부호화부(16)에 전달 되는 것이다.
데이터 저장 장치(10), 그중에서도 제어부(14)가 상기 제1 커맨드 및 상기 제2 커맨드를 교대로 입력 받는다는 것은 제1 커맨드의 입력 후에는 제2 커맨드가 입력 되고, 제2 커맨드가 입력 된 후에는 제1 커맨드가 입력되는 것을 의미한다. 다만, 제어부(14)는 부호화 대상 데이터(20)의 출력 기간 중 상기 제1 커맨드를 마지막으로 입력 받는 것이 바람직하다. 마지막 커맨드가 제2 커맨드인 경우, 더 이상 잔여 출력 데이터가 존재하지 않는 점에서, 제2 커맨드 입력의 의미가 없기 때문이다.
제어부(14)는 제2 커맨드를 최초로 입력 받을 수 있다. 예를 들어, 제2 커맨드, 제1 커맨드, 제2 커맨드, 제1 커맨드의 순서로 커맨드를 교대로 입력 받을 수 있다. 제어부(14)는 제1 커맨드를 최초로 입력 받을 수도 있다. 예를 들어, 제1 커맨드, 제2 커맨드, 제1 커맨드의 순서로 커맨드를 교대로 입력 받을 수 있다.
정리하면, 제어부(14)는 부호화 대상 데이터(20)의 출력 기간 중, 제2 커맨드를 최초로 입력 받거나, 제1 커맨드를 최초로 입력 받되, 제2 커맨드와 제1 커맨드를 교대로 입력 받고, 마지막 커맨드는 제1 커맨드인 것이 바람직하다.
도 14는 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치(10)의 동작을 설명하기 위한 타이밍도이다.
직전의 제1 커맨드(602)에 따른 데이터 출력(622)이 완료 된 후, I/O 핀을 통해 제2 커맨드(604)가 입력 된다. 제2 커맨드(604) 입력 시, 제어부(14)가 내부 트리거 신호(19)를 부호화부(16)에 제공하고, 부호화부(16)는 다음번에 제1 커맨드(602)가 입력 되는 경우의 부호화부(16) 부호화 모드를 상기 제1 랜덤 데이터에 따라 자체 결정한다. 상기 자체 결정 시, 부호화부(16) 부호화 모드가 스위칭 되어야 하는 것으로 결정 된 경우, 부호화부(16)가 내부 트리거 신호(19)를 입력 받은 후, 상기 스위칭을 완료하는데 소요 되는 시간을 tSW(606)이라고 기재한다.
이미 수차례 언급한 바와 같이, 부호화부(16)는 제2 커맨드(604)가 입력 되더라도 부호화 모드 스위칭이 되지 않을 수도 있다. 도 14에서는 첫번째 제2 커맨드(604) 입력 시에는 부호화부(16)의 부호화 모드 스위칭이 이뤄졌으나, 두번째 제2 커맨드(604) 입력 시에는 부호화부(16)의 부호화 모드 스위칭이 이뤄지지 않았다.
도 15에 도시된 바와 같이, 제1 커맨드(602)는 2개의 사이클로 구성 될 수 있다. 즉, 리드 시작 커맨드인 '00h', 리드 확인 커맨드인 '30h'을 포함할 수 있다. 또한, 리드 시작 커맨드 및 리드 확인 커맨드의 입력 사이에는 출력 대상 데이터의 어드레스 정보가 포함 될 수 있다. 제1 커맨드(602)의 입력에 따라 데이터 저장 장치(10)로부터 출력 되는 데이터는 리드 인에이블먼트(RE) 핀의 신호가 토글(toggle) 됨에 따라 어드레스가 하나씩 증가된다.
도 16은 본 발명의 일 실시예에 따라 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치에서 부호화부 스위칭 동작의 최대 허용 시간을 설명하기 위한 상세 타이밍도이다.
데이터 저장 장치(10)의 I/O 핀에 입력 된 커맨드는 라이트 인에이블먼트(WE) 핀에 인가 된 신호가 라이징 엣지(Rising edge) 되는 때에 래치(latch) 된다. 플래시 메모리 칩에 정해진 바에 따라, 라이트 인에이블먼트의 라이징 엣지 발생 시, I/O 핀에 입력 된 데이터의 종류는 커맨드 래치 핀(CMD) 및 어드레스 래치 핀(ALE)에 인가 된 신호의 상태를 통해 파악할 수 있다.
도 16에 도시된 바와 같이, 직전 제1 커맨드 입력에 의한 데이터 출력이 완료 된 후, 첫 번째 WE 핀 라이징 엣지(S700)에 의하여 I/O 핀에 입력 된 첫번 째 제2 커맨드(604)가 입력된다. 이 경우, 제어부(14)는 내부 트리거 신호(19)를 부호화부(16)에 제공 한다(S701). 다음으로, 두 번째 WE 핀 라이징 엣지(S702), 세 번째 WE 핀 라이징 엣지(S704) 및 네 번째 WE 핀 라이징 엣지(S706)를 통하여 '00h' 명령, 어드레스, '30h' 명령이 플래시 메모리 칩에 정해진 타이밍에 따라 순차적으로 입력 된다. 다음으로, 제1 커맨드(602)에 의한 데이터 출력이 이뤄진다. 제2 커맨드(604)의 입력 후, 다음 제1 커맨드(602) 입력에 따른 데이터 출력이 이뤄지기 전까지는 부호화부(16)의 스위칭이 이뤄지는 것이 바람직하다. 즉, tSW(606)의 최대 허용 기간(MAX tSW)은 S700 시점부터 S708 시점에 이른다.
도 16에 도시된 바와 같이, 부호화부(16)의 스위칭이 이뤄지기에 충분한 시간이 확보되는 것을 알 수 있다.
도 17은 본 발명의 일 실시예에 따라 부호화 대상 데이터를 동일 사이즈로 분할한 제1 커맨드(READ) 및 제2 커맨드(TR)를 교대로 입력 받는 데이터 저장 장치(10)의 동작을 설명하기 위한 타이밍도이다.
도 17에 도시된 바와 같이, 제1 커맨드(602)에 의해 메모리부(12)로부터 출력 되는 각 부호화 대상 데이터 조각(620, 622, 624, 626)의 사이즈는 동일할 수 있다. 물론, 마지막 제1 커맨드(602)에 의해 메모리부(12)로부터 출력 되는 부호화 대상 데이터 조각은 이미 출력 되고 남은 데이터만 출력 되는 것이므로, 다른 부호화 대상 데이터 조각의 사이즈와 다를 수 있다.
즉, 제2 커맨드(604)는 일정한 어드레스 간격으로 입력 될 수 있다. 첫 번째 제2 커맨드 입력 시(S900)에는 부호화부(16)가 B-상태에서 A-상태로 스위칭 되었으나, 두 번째 제2 커맨드 입력(S902) 및 세 번째 제2 커맨드 입력(S904) 시에는 부호화부(16)가 스위칭 되지 않았고, 네 번째 제2 커맨드 입력(S906) 시에는 부호화부(16)가 다시 스위칭 된 것을 알 수 있다. 이미 설명한 바와 같이, 동일한 부호화 대상 데이터(20)의 재 리드 요청에 따라 데이터가 재 출력 되는 경우, 도 17과 상이하게 부호화부(16) 부호화 모드 스위칭이 이뤄질 수 있다.
도 18에 도시된 바와 같이, 데이터 저장 장치(10)는 제2 커맨드(604) 및 부호화 대상 데이터(20)를 동일 하지 않은 사이즈로 분할한 제1 커맨드(602)를 교대로 입력 받을 수도 있다. 제1 커맨드(602)에 의해 메모리부(12)로부터 출력 되는 각 부호화 대상 데이터 조각(630, 632, 634)의 사이즈는 서로 상이할 수 있다. 도 18은 첫 번째 제2 커맨드 입력 시(S910), 두 번째 제2 커맨드 입력 시(S912) 및 세 번째 제2 커맨드 입력 시(S914) 시 모두 부호화부(16)의 부호화 모드가 스위칭 된 것을 도시 한다. 도 18에 도시된 부호화 모드 스위칭 케이스는 부호화부(16)의 부호화 모드 자체 결정 결과에 따라 매 횟수마다 상이할 수 있다.
이미 설명한 바와 같이, 데이터 저장 장치(10)는 제2 커맨드 또는 제3 커맨드를 입력 받아 부호화부(16)의 부호화 모드를 스위칭 할 수도 있고, 하지 않을 수도 있다. 다만, 부호화부(16)의 부호화 모드를 스위칭 하기 위하여는 제2 커맨드 또는 제3 커맨드를 반드시 입력 받아야 한다. 또한, 데이터 저장 장치(10)는 호스트 장치(60)로부터 입력 된 리드 요청에 따른 데이터 출력 기간 중 적어도 한번은 부호화부(16)의 부호화 모드를 스위칭 한다. 상기 언급 된 동작을 수행함으로써, 본 발명에 따른 데이터 저장 장치(10)는 부호화 출력 기능을 수행할 수 있다. 또한, 외부로부터 입력 되는 제2 커맨드 또는 제3 커맨드에 의하여 데이터 부호화 출력 여부의 전환이 이뤄지므로, 부호화 모드 전환이 지연 되어 일부 데이터가 비정상적으로 부호화 또는 비부호화 되어 출력 되는 문제점을 방지할 수 있다.
이하, 하나의 부호화 대상 데이터(20)의 출력을 위하여 상기 제3 커맨드를 2회 이상 입력 받는 데이터 저장 장치(10)의 동작에 대하여 도 19 내지 도 20을 참조하여 설명하기로 한다.
제어부(14)는 제3 커맨드(606)를 입력 받아 내부 리드 신호(18) 및 내부 트리거 신호(19)를 출력하는 바, 제3 커맨드(606)는 제1 커맨드(602) 및 제2 커맨드(604)가 하나로 병합된 커맨드로 이해할 수 있다.
도 19는 제3 커맨드(606)에 어드레스 정보가 포함 되지 않는 경우에 대하여 도시하고 있다. 제3 커맨드(606)에 어드레스 정보가 포함 되지 않더라도 데이터 저장 장치(10)가 부호화 대상 데이터(20)를 분할하여 출력하기 위해, 데이터 저장 장치(10)는 제3 커맨드(606) 입력 시, 기 정의된 사이즈만큼 만 최대로 데이터를 출력하도록 동작할 수 있다. 또는, 제3 커맨드(606) 입력 시 직전의 출력 종료 시점부터 데이터 출력을 재개 하되, 다음번 제3 커맨드(606) 입력 시점에서 데이터 출력을 일시 정지하도록 동작할 수도 있다.
데이터 저장 장치(10)는 제3 커맨드(606)를 입력 받아 부호화부(16)의 부호화 모드를 결정하는 것 및 메모리부(12)로부터 데이터가 출력되도록 준비하는 동작을 모두 수행한다. 메모리부(12)로부터 실제 데이터가 출력 되는 시점은 리드 인에이블먼트(RE) 핀의 신호가 토글(toggle) 되는 시점이다. (도 16 참고)
따라서, 제3 커맨드(606)의 입력에 따라 내부 트리거 신호(19)가 부호화부(16)로 전달되는 시점과 제3 커맨드(606)의 입력에 따라 데이터가 메모리부(12)로부터 출력되는 시점 사이에는 시간차가 존재한다. 따라서, 부호화부는, 내부 트리거 신호(19)의 제공에 따라 자체 결정 된 부호화 모드로의 변경을, 내부 트리거 신호(19)와 동시에 제공 된 내부 리드 신호(18)의 제공에 따른 상기 메모리부로부터의 데이터 출력 시점 이전에 완료하기만 하면, 제3 커맨드(606) 입력에 따라 결정 된 부호화부(16) 부호화 모드에 따라서 부호화 되거나 부호화 되지 않은 데이터 출력을 지원할 수 있다.
도 20은 도 19에 도시된 것과는 달리 제3 커맨드(606) 입력 후, 출력 될 데이터의 어드레스가 별도로 입력 되는 실시예를 나타낸다. 커맨드와 어드레스의 입력은 커맨드 래치 단자 및 어드레스 래치 단자에 인가 된 값에 의해 구별 된다. 이 경우, 데이터 저장 장치(10)는 제3 커맨드(606)의 입력 후 별도로 입력 되는 어드레스 정보에 부합하는 데이터만을 출력하게 된다.
이하, 본 발명의 다른 실시예에 따른 데이터 저장 시스템(50)의 구성에 대하여 도 21 내지 도 23을 참조하여 설명하기로 한다. 본 실시예에 따른 데이터 저장 시스템(50)은 외부 장치로부터 부호화 대상 데이터의 리드 요청을 입력 받아 커맨드를 출력하는 컨트롤러(40) 및 컨트롤러(40)로부터 상기 커맨드를 입력 받아 동작하는 데이터 저장 장치(10)를 포함한다.
데이터 저장 시스템(50)은 예컨대, 메모리 카드와 같은 카드로 구현될 수 있다. 구체적으로, 본 실시예에 따른 데이터 저장 시스템(50)은 휴대 전화기, 양방향 라디오 커뮤니케이션 시스템(two-way communication system), 일방향 페이저(one way pager), 양방향 페이저(two-way pager), 개인용 커뮤니케이션 시스템(personal communication system), 휴대용 컴퓨터(portable computer), 개인 정보 관리기(PDA; Personal Data Assistance), 오디오 및/또는 비디오 플레이어, 디지털 및/또는 비디오 카메라, 네비게이션 시스템(navigation system), GPS(Global Positioning System) 등의 전자 장치에 사용되는 소정의 산업 표준(industry standard)을 충족하는 카드로 구현될 수 있다. 하지만 이에 한정하는 것은 아니며 본 발명의 일 실시예에 따른 데이터 저장 시스템은 예컨대, 메모리 스틱(stick)과 같은 다양한 형태로 구현될 수 있다.
먼저, 도 21을 참조하여 일 실시예에 따른 데이터 저장 시스템(50)의 동작에 대하여 설명한다.
본 실시예에 따른 데이터 저장 시스템(50)의 컨트롤러(40)는 부호화 대상 데이터(20) 중 일부에 대한 리드 요청을 입력 받아 제3 커맨드(606)를 생성한다. 상기 리드 요청은 부호화 대상 데이터(20) 중 일부에 대한 것이므로, 부호화 대상 데이터(20) 전체의 출력을 위하여, 컨트롤러(40)는 상기 리드 요청을 2회 이상 입력 받아야 한다. 데이터 저장 장치(10)는 제3 커맨드(606)의 입력에 응답하여, 출력 될 데이터의 부호화와 관련 된 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터를 기초로 결정된 부호화 모드에 따라 부호화 대상 데이터(20) 중 일부 데이터를 부호화하여 출력한다. 데이터 저장 장치(10)가 제3 커맨드(606)를 입력 받았을 때의 동작은 이미 설명한 바 있으므로, 반복을 피하기 위하여 생략한다.
컨트롤러(40)는 상기 리드 요청에 트리거 타입이 부가 되는 경우, 상기 트리거 타입이 포함 된 제3 커맨드(606)를 생성할 수 있다. 이 경우, 데이터 저장 장치(10)가 상기 트리거 타입에 따른 부호화정책에 따라 제3 커맨드(606)의 입력에 따른 부호화 여부를 자체 결정하게 되는 점 역시 이미 설명한 바 있다. 컨트롤러(40)는 상기 리드 요청에 트리거 타입이 부가 되지 않더라도, 부호화 대상 데이터(20)의 저장 위치에 따라 정해지는 트리거 타입을 제3 커맨드(606)에 포함 시킬 수 있다.
다음으로, 도 22 내지 도 23을 참조하여 일 실시예에 따른 데이터 저장 시스템(50)의 동작에 대하여 설명한다.
본 실시예에 따른 데이터 저장 시스템(50)은 도 21에 도시된 저장 시스템과 달리, 부호화 대상 데이터(20) 전체의 출력을 위하여 한번의 리드 요청만 컨트롤러(40)에 입력해주면 된다.
먼저, 도 22에 도시 된 데이터 저장 시스템(50)은 컨트롤러(40)가 상기 리드 요청을 입력 받아, 부호화 대상 데이터(20)의 출력 범위가 분할 된 제3 커맨드(606)를 2회 이상 순차적으로 출력한다. 예를 들어, 도 22에 도시된 바와 같이, 각각의 출력 범위가 분할 된 제3 커맨드(606)는 10KB(Kilo Byte)만큼의 데이터를 각각 출력하도록 하는 것일 수 있다. 출력 범위가 분할 된 제3 커맨드(606)를 입력 받은 데이터 저장 장치(10)가 부호화 대상 데이터(20)의 조각을 출력함에 있어서, 부호화 모드를 자체 결정하고, 결정 결과에 따라 부호화하여 출력하는 점에 대하여는 이미 설명한바 있다.
데이터 저장 장치(10)의 부호화 여부 자체 결정에 적용 될 부호화정책에 대한 정보는 도 23에 도시 된 바와 같이, 상기 리드 요청에 포함 될 수 있다. 또한 컨트롤러(40)는 상기 리드 요청과 별도로 부호화정책을 설정 또는 변경하기 위해 데이터 저장 장치(10)에 부호화정책 변경을 위한 커맨드를 제공 할 수 있다.
상기 리드 요청에 상기 부호화정책이 포함되어 있지 않더라도, 부호화 대상 데이터(20)가 저장 된 영역에 따라 부호화정책을 결정(S40)하고, 결정(S40) 된 부호화정책에 따라 부호와 대상 데이터를 부호화한다.도 22에 도시된 바와 같이, 부호화 대상 데이터(20)가 타입 1의 부호화정책이 적용 되는 영역에 저장 된 것인 경우, 컨트롤러(40)는 상기 리드 요청에 부호화정책에 대한 정보가 전혀 포함되어 있지 않더라도, 부호화정책을 타입 1로 결정 할 수 있다.
다음으로, 도 23에 도시 된 데이터 저장 시스템(50)은 컨트롤러(40)가 부호화 대상 데이터의 리드 요청을 입력 받아, 제2 커맨드 및 상기 부호화 대상 데이터의 출력 범위가 분할 된 제1 커맨드를 교대로 출력한다.
도 23에 도시 된 바와 같이, 컨트롤러(40)는 상기 리드 요청을 입력 받아, 부호화 대상 데이터(20)의 출력 범위가 10KB 만큼씩 분할 된 제1 커맨드(602)를 출력하고, 제1 커맨드(602)와 제2 커맨드(604)를 교대로 출력한다.
출력 범위가 분할 된 제1 커맨드(602) 및 제2 커맨드(604)를 교대로 입력 받은 데이터 저장 장치(10)가 부호화 대상 데이터(20)의 조각을 출력함에 있어서, 제2 커맨드(604) 입력 시 부호화 모드를 자체 결정하고, 제2 커맨드(604) 입력 시의 부호화 모드 결정 결과에 따라 부호화하여 출력하는 점에 대하여는 이미 설명한바 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10 데이터 저장 장치
20 부호화 대상 데이터
22 원본 데이터
24 에러 보정 코드(ECC)
30 부호화 된 데이터
32 부호화 된 영역

Claims (31)

  1. 입력 된 커맨드를 디코딩 하고, 상기 디코딩의 결과에 따라 내부 리드(read) 신호 및 내부 트리거(trigger) 신호 중 적어도 하나를 출력하는 제어부;
    상기 내부 리드 신호를 제공 받아, 데이터를 출력하는 메모리부; 및
    상기 내부 트리거 신호의 제공에 응답하여 모드 결정 기초 데이터를 생성하고 상기 생성된 모드 결정 기초 데이터에 따라 부호화 모드를 결정하며, 결정된 부호화 모드에 따라 상기 메모리부로부터 제공 받은 데이터를 부호화하는 부호화부를 포함하는, 데이터 저장 장치.
  2. 제1 항에 있어서,
    상기 부호화부는,
    상기 내부 트리거 신호의 제공에 응답 하여 상기 모드 결정 기초 데이터로서 제1 랜덤 데이터를 생성하는, 데이터 저장 장치.
  3. 제2 항에 있어서,
    상기 부호화부는,
    상기 부호화부에 적용 중인 부호화정책에 따른 각 부호화 모드 간 비율에 따라 상기 특정 부호화 모드를 의미하는 데이터가 생성 되도록 상기 제1 랜덤 데이터를 생성하는, 데이터 저장 장치.
  4. 제2 항에 있어서,
    상기 부호화부는,
    상기 생성 된 제1 랜덤 데이터에 따라, 상기 메모리부로부터 제공 받은 데이터의 부호화 비율을 결정하는, 데이터 저장 장치.
  5. 제2 항에 있어서,
    상기 부호화부는,
    제2 랜덤 데이터를 더 생성하고, 상기 제2 랜덤 데이터를 이용하여 상기 메모리부로부터 제공 받은 데이터를 부호화하는, 데이터 저장 장치.
  6. 제1 항에 있어서,
    상기 부호화부는,
    상기 메모리부로부터 제공 받은 데이터를 부호화 하는 복수의 부호화 모듈을 구비하고, 상기 결정 된 부호화 모드에 따라 상기 복수의 부호화 모듈 중 하나의 부호화 모듈 만을 ON 시켜 상기 메모리부로부터 제공 받은 데이터를 부호화하되,
    상기 복수의 부호화 모듈은 상기 메모리부로부터 제공 받은 데이터를 각각 상이한 비율로 부호화하는 것인, 데이터 저장 장치.
  7. 제6 항에 있어서,
    상기 복수의 부호화 모듈은 복구가능 한계부호화비율 이하의 비율로 상기 메모리부로부터 제공 받은 데이터를 부호화하는 제1 부분부호화 모듈 및 상기 복구가능 한계부호화비율 초과의 비율로 상기 메모리부로부터 제공 받은 데이터를 부호화하는 제2 부분부호화 모듈을 포함하는, 데이터 저장 장치.
  8. 제1 항에 있어서,
    상기 부호화부는,
    상기 메모리부로부터 제공 받은 데이터를 부호화 하는 부호화 모듈 및 상기 메모리부로부터 제공 받은 데이터를 그대로 출력하는 바이패스 버스를 구비하고, 상기 결정 된 부호화 모드에 따라 상기 부호화 모듈 및 상기 바이패스 버스 중 하나를 활성화하는, 데이터 저장 장치.
  9. 제1 항에 있어서,
    상기 부호화부는,
    상기 메모리부로부터 제공 받은 데이터의 부호화 비율을 설정 할 수 있는 프로그래머블 부호화 모듈을 구비하며, 상기 결정 된 부호화 모드에 따라 상기 프로그래머블 부호화 모듈의 부호화 비율을 설정하는, 데이터 저장 장치.
  10. 제9 항에 있어서,
    상기 부호화부는,
    제1 부호화 모드에서 복구가능 한계부호화비율 이하인 제1 부호화 비율로 상기 프로그래머블 부호화 모듈의 부호화 비율을 설정하고, 제2 부호화 모드에서 복구가능 한계부호화비율 초과인 제2 부호화 비율로 상기 프로그래머블 부호화 모듈의 부호화 비율을 설정하는, 데이터 저장 장치.
  11. 제1 항에 있어서,
    상기 부호화부는 복수의 랜덤데이터 생성기를 구비하며, 상기 결정 된 부호화 모드에 따라 상기 복수의 랜덤 데이터 생성기 중 하나의 랜덤 데이터 생성기 만을 ON 시키고, 상기 ON 된 랜덤 데이터 생성기로부터 제공 받은 랜덤 데이터를 상기 메모리부로부터 제공 받은 데이터와 논리 연산한 결과 데이터를 출력하되,
    상기 복수의 랜덤데이터 생성기는 상기 논리 연산에 관한 피연산자 유지데이터를 생성할 확률이 각각 상이한 것인, 데이터 저장 장치.
  12. 제11 항에 있어서,
    상기 복수의 랜덤데이터 생성기는 상기 메모리부로부터 제공 받은 데이터 중 복구가능 한계부호화비율 초과의 확률로 상기 피연산자 유지데이터를 생성하는 제1타입 랜덤데이터 생성기 및 상기 메모리부로부터 제공 받은 데이터 중 상기 복구가능 한계부호화비율 이하의 확률로 상기 피연산자 유지데이터를 생성하는 제2 타입 랜덤데이터 생성기를 포함하는, 데이터 저장 장치.
  13. 제1 항에 있어서,
    상기 부호화부는 랜덤데이터 생성기 및 피연산자 유지데이터 출력기를 구비하며, 상기 결정 된 부호화 모드에 따라 상기 랜덤데이터 생성기 및 상기 피연산자 유지데이터 출력기 중 하나로부터 제공 받은 데이터를 상기 메모리부로부터 제공 받은 데이터와 논리 연산하고 그 결과 데이터를 출력하는, 데이터 저장 장치.
  14. 제13 항에 있어서,
    상기 랜덤데이터 생성기는 상기 메모리부로부터 제공 받은 데이터를 모두 부호화하는 것인, 데이터 저장 장치.
  15. 제1 항에 있어서,
    상기 부호화부는 특정 논리 연산에 관한 피연산자 유지데이터의 생성 확률을 설정 할 수 있는 프로그래머블 랜덤데이터 생성부를 구비하며, 상기 결정 된 부호화 모드에 따라 상기 프로그래머블 랜덤데이터 생성부의 피연산자 유지데이터 생성 확률을 설정하고, 프로그래머블 랜덤데이터 생성부로부터 제공 받은 데이터를 상기 메모리부로부터 제공 받은 데이터와 상기 특정 논리 연산한 결과 데이터를 출력하는, 데이터 저장 장치.
  16. 제15 항에 있어서,
    상기 부호화부는 제1 부호화 모드에서 복구가능 한계부호화비율 초과인 제1 부호화 비율로 상기 프로그래머블 랜덤데이터 생성부의 피연산자 유지데이터 생성 확률을 설정하고, 제2 부호화 모드에서 복구가능 한계부호화비율 이하인 제2 부호화 비율로 상기 프로그래머블 랜덤데이터 생성부의 피연산자 유지데이터 생성 확률을 설정하는, 데이터 저장 장치.
  17. 제1 항에 있어서,
    상기 부호화부는,
    상기 메모리부로부터 제공 받은 데이터를 상기 부호화 모드에 따라 처리하는 부호화기; 및
    상기 내부 트리거 신호의 제공에 응답하여 모드 결정 기초 데이터를 생성하고, 상기 모드 결정 기초 데이터에 따라 상기 부호화 모드를 결정하며, 상기 부호화기를 상기 결정 된 부호화 모드로 동작시키기 위한 부호화기 제어신호를 상기 부호화기에 제공 하는 부호화 결정부를 포함하는, 데이터 저장 장치.
  18. 제17 항에 있어서,
    상기 부호화 결정부는,
    상기 결정 된 부호화 모드가 상기 부호화기의 이전에 결정된 부호화 모드와 상이한 경우에 상기 부호화기 제어신호를 상기 부호화기에 제공하는, 데이터 저장 장치.
  19. 제1 항에 있어서,
    상기 제어부는 상기 디코딩의 결과에 따라 내부 리드(read) 신호, 내부 트리거(trigger) 신호 및 부호화정책 변경신호 중 적어도 하나를 출력하고,
    상기 부호화부는 상기 부호화정책 변경신호를 제공 받아 상기 모드 결정 기초 데이터의 생성 규칙이 되는 부호화정책을 변경하는, 데이터 저장 장치.
  20. 제1 항에 있어서,
    상기 부호화부는,
    상기 모드 결정 기초 데이터의 생성 시 이용 되는 부호화정책 리스트를 로드(load)하고, 상기 부호화정책 리스트에 포함 된 부호화정책 중 하나의 부호화정책에 따라 상기 모드 결정 기초 데이터를 생성하는, 데이터 저장 장치.
  21. 제20 항에 있어서,
    상기 부호화정책 리스트를 저장 하는 이-퓨즈(E-fuse) 블록을 더 포함하고,
    상기 부호화부는 상기 이-퓨즈 블록으로부터 상기 부호화정책 리스트를 로드 하는, 데이터 저장 장치.
  22. 제20 항에 있어서,
    상기 부호화정책 리스트는 각 부호화정책 별 상기 각 부호화 모드의 비율에 대한 데이터를 포함하는, 데이터 저장 장치.
  23. 제1 항에 있어서,
    상기 내부 리드 신호는 부호화 대상 데이터 중 일부 데이터의 출력을 위한 것이고,
    상기 제어부는 상기 부호화 대상 데이터 전체의 출력을 위하여 상기 내부 리드 신호 및 상기 내부 트리거 신호를 각각 2회 이상 출력하는, 데이터 저장 장치.
  24. 제23 항에 있어서,
    상기 제어부는,
    입력 된 제1 커맨드를 디코딩 하여 상기 내부 리드 신호를 제공하고, 입력 된 제2 커맨드를 디코딩 하여 상기 내부 트리거 신호를 제공하되, 상기 제1 커맨드 및 상기 제2 커맨드를 교대로 입력 받는, 데이터 저장 장치.
  25. 제24 항에 있어서,
    상기 부호화부는,
    상기 제2 커맨드의 입력에 따라 결정 된 부호화 모드로의 변경을, 상기 제2 커맨드 입력 직후의 상기 제1 커맨드 입력에 따라 상기 메모리부로부터 데이터가 출력 되는 시점 이전에 완료하는, 데이터 저장 장치.
  26. 제24 항에 있어서,
    상기 제어부는,
    기 지정 된 데이터 사이즈 마다 상기 제2 커맨드를 입력 받는, 데이터 저장 장치.
  27. 제24 항에 있어서,
    상기 제어부는, 부호화 대상 데이터 전체의 출력을 위해 기 지정 된 횟수만큼의 상기 제2 커맨드를 입력 받는 것을 특징으로 하는, 데이터 저장 장치.
  28. 제23 항에 있어서,
    상기 제어부는,
    입력 된 제3 커맨드를 디코딩 하여 상기 내부 리드 신호 및 상기 내부 트리거 신호를 제공하는, 데이터 저장 장치.
  29. 제28 항에 있어서,
    상기 부호화부는,
    상기 내부 트리거 신호의 제공에 따라 결정 된 부호화 모드로의 변경을, 상기 내부 트리거 신호와 동시에 제공 된 상기 내부 리드 신호의 제공에 따른 상기 메모리부로부터의 데이터 출력 시점 이전에 완료하는, 데이터 저장 장치.
  30. 제23 항에 있어서,
    상기 부호화 대상 데이터는 둘 이상의 데이터 조각이 연결 된 것이고,
    상기 내부 리드 신호는 상기 둘 이상의 데이터 조각 중 하나의 데이터 조각의 출력을 위한 것인, 데이터 저장 장치.
  31. 제1 항에 있어서,
    상기 내부 리드 신호는 부호화 대상 데이터 전부의 출력을 위한 것이고,
    상기 제어부는 상기 부호화 대상 데이터의 복수회 출력을 위하여 상기 내부 리드 신호 및 상기 내부 트리거 신호를 각각 2회 이상 출력하는, 데이터 저장 장치.
KR1020110081308A 2011-05-17 2011-08-16 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템 KR101824044B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020110081308A KR101824044B1 (ko) 2011-05-17 2011-08-16 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템
US13/445,197 US9373005B2 (en) 2011-05-17 2012-04-12 Data storage apparatus, coding unit, systems including the same, method of coding and method of reading data
DE102012103577A DE102012103577A1 (de) 2011-05-17 2012-04-24 Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten
JP2012113143A JP6039237B2 (ja) 2011-05-17 2012-05-17 符号化部とこれを含むデータ格納装置及びデータ格納システム並びにコンピュータシステム
TW101117600A TWI539281B (zh) 2011-05-17 2012-05-17 資料儲存裝置、編碼單元、包含該裝置、單元的系統、編碼方法以及讀取資料的方法
CN201210154029.6A CN102789560B (zh) 2011-05-17 2012-05-17 数据存储装置、编码单元、以及包括其的系统
CN201710505691.4A CN107256369B (zh) 2011-05-17 2012-05-17 编码数据的方法、读取数据的方法
US15/183,319 US10133680B2 (en) 2011-05-17 2016-06-15 Data storage apparatus, coding unit, systems including the same, method of coding and method of reading data
JP2016216495A JP6431022B2 (ja) 2011-05-17 2016-11-04 データ符号化方法及び符号化方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20110046405 2011-05-17
KR1020110046405 2011-05-17
KR1020110081308A KR101824044B1 (ko) 2011-05-17 2011-08-16 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템

Publications (2)

Publication Number Publication Date
KR20120128530A true KR20120128530A (ko) 2012-11-27
KR101824044B1 KR101824044B1 (ko) 2018-01-31

Family

ID=47088265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110081308A KR101824044B1 (ko) 2011-05-17 2011-08-16 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템

Country Status (6)

Country Link
US (2) US9373005B2 (ko)
JP (2) JP6039237B2 (ko)
KR (1) KR101824044B1 (ko)
CN (2) CN102789560B (ko)
DE (1) DE102012103577A1 (ko)
TW (1) TWI539281B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468996A (zh) * 2014-09-05 2016-04-06 深圳市同盛绿色科技有限公司 计算机
JP6465732B2 (ja) * 2015-04-24 2019-02-06 リンナイ株式会社 ガス燃焼装置
KR102506838B1 (ko) * 2016-09-30 2023-03-08 에스케이하이닉스 주식회사 반도체 장치 및 그의 동작 방법
CN108076351B (zh) * 2016-11-16 2020-12-08 杭州海康威视数字技术股份有限公司 一种音视频数据编码方法、装置及电子设备
KR102513328B1 (ko) * 2016-12-08 2023-03-24 에스케이하이닉스 주식회사 반도체 장치, 반도체 시스템 및 그의 동작 방법
CN108052285B (zh) * 2017-12-12 2018-12-11 清华大学 一种自适应编码长度的时序数据存储的方法和装置
US10747891B2 (en) * 2018-06-13 2020-08-18 EMC IP Holding Company LLC Floating data protection
CN109032619B (zh) * 2018-07-13 2021-12-24 上海艾为电子技术股份有限公司 确定熔丝烧录编码的方法及装置
TWI773442B (zh) * 2021-07-20 2022-08-01 宇瞻科技股份有限公司 儲存裝置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328034A (ja) * 1998-05-11 1999-11-30 Mega Chips Corp 半導体メモリおよびゲーム装置
US6598166B1 (en) * 1999-08-18 2003-07-22 Sun Microsystems, Inc. Microprocessor in which logic changes during execution
JP2001156772A (ja) * 1999-11-30 2001-06-08 Victor Co Of Japan Ltd 暗号化情報再生方法及び暗号化情報再生装置
EP1130600A1 (en) 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Data balancing scheme in solid state storage devices
WO2003027816A1 (en) * 2001-09-28 2003-04-03 High Density Devices As Method and device for encryption/decryption of data on mass storage device
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
JP2004070049A (ja) * 2002-08-07 2004-03-04 Denso Corp データの暗号化方法及び装置、データの復号化方法及び装置、プログラム
EP1758395A1 (en) * 2004-06-28 2007-02-28 Matsushita Electric Industrial Co., Ltd. Program creation device, program test device, program execution device, information processing system
US7770027B2 (en) 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP4119881B2 (ja) * 2004-11-15 2008-07-16 株式会社メガチップス 半導体メモリ装置
JP2007172508A (ja) * 2005-12-26 2007-07-05 Sony Corp 着脱式記憶装置及び認証方法
JP5030132B2 (ja) * 2006-01-17 2012-09-19 任天堂株式会社 ゲームプログラムおよびゲーム装置
KR20090019863A (ko) * 2006-06-19 2009-02-25 가부시키가이샤 엔티티 도코모 기지국 및 스케줄링 방법
CN101247506A (zh) * 2007-02-14 2008-08-20 中国科学院声学研究所 在数字媒体播放系统中的文件加密方法及加密文件结构
JP5387414B2 (ja) * 2007-12-11 2014-01-15 日本電気株式会社 認証装置、認証システム、認証方法及びプログラム
JP5260203B2 (ja) 2008-05-30 2013-08-14 日立アプライアンス株式会社 冷蔵庫
FR2937711B1 (fr) 2008-10-27 2010-11-19 Saint Gobain Module a diodes electroluminescentes pour vehicule, support a diodes
JP5045956B2 (ja) * 2009-04-16 2012-10-10 Necシステムテクノロジー株式会社 スクランブル装置、スクランブル方法及びプログラム
CN101882995B (zh) * 2009-05-06 2013-08-07 中兴通讯股份有限公司 数据发送、接收和传输方法及装置
US9026803B2 (en) * 2009-11-30 2015-05-05 Hewlett-Packard Development Company, L.P. Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms
CN101984574B (zh) * 2010-11-29 2012-09-05 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
JP2012227899A (ja) * 2011-04-22 2012-11-15 Toshiba Corp 認証コンポーネント、被認証コンポーネントおよびその認証方法

Also Published As

Publication number Publication date
CN107256369A (zh) 2017-10-17
CN102789560B (zh) 2017-07-21
CN107256369B (zh) 2021-06-01
US10133680B2 (en) 2018-11-20
DE102012103577A1 (de) 2012-11-22
KR101824044B1 (ko) 2018-01-31
JP6431022B2 (ja) 2018-11-28
JP2012243320A (ja) 2012-12-10
JP6039237B2 (ja) 2016-12-07
US20120297150A1 (en) 2012-11-22
TW201248407A (en) 2012-12-01
JP2017041908A (ja) 2017-02-23
US9373005B2 (en) 2016-06-21
CN102789560A (zh) 2012-11-21
TWI539281B (zh) 2016-06-21
US20170017582A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
KR101824044B1 (ko) 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템
US9197247B2 (en) Memory system and error correction method
US9459955B2 (en) System and method to scramble data based on a scramble key
KR100872186B1 (ko) 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR101824227B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
US9762229B2 (en) Data communicating method for use in a single-wire protocol communication and a single-wire protocol communication system using the same
CN104637534B (zh) 半导体存储器件及操作其的方法
US10043573B2 (en) Apparatus and method for endurance friendly programming using lower voltage thresholds
US10396827B2 (en) Data storage device
WO2011028802A1 (en) Systems and methods for compressing data in non-volatile semiconductor memory drives
TWI738097B (zh) 具有密碼學組件的記憶體裝置
KR101254136B1 (ko) 스트림 내 데이터 암호화/복호화 및 오류 정정 기능을 가진 메모리 시스템
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
KR20090014828A (ko) 에러 정정 코드를 암호화하는 플래시 메모리 시스템 및플래시 메모리 시스템의 암호화 방법
TWI474329B (zh) 提昇錯誤更正能力之方法以及記憶裝置及控制器
TW202022877A (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
US10511334B2 (en) Error correction circuit, operating method thereof and data storage device including the same
CN114442913B (zh) 数据存取方法、存储器控制器以及进阶加密标准处理电路
US10074433B1 (en) Data encoding method, memory control circuit unit and memory storage device

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