KR20230102145A - 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법 - Google Patents

비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법 Download PDF

Info

Publication number
KR20230102145A
KR20230102145A KR1020210192038A KR20210192038A KR20230102145A KR 20230102145 A KR20230102145 A KR 20230102145A KR 1020210192038 A KR1020210192038 A KR 1020210192038A KR 20210192038 A KR20210192038 A KR 20210192038A KR 20230102145 A KR20230102145 A KR 20230102145A
Authority
KR
South Korea
Prior art keywords
data
memory
control unit
block
value
Prior art date
Application number
KR1020210192038A
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 KR1020210192038A priority Critical patent/KR20230102145A/ko
Priority to US18/078,560 priority patent/US20230214144A1/en
Priority to CN202211605664.1A priority patent/CN116382562A/zh
Priority to DE102022133918.1A priority patent/DE102022133918A1/de
Publication of KR20230102145A publication Critical patent/KR20230102145A/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
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 데이터가 저장되는 데이터 블록과, 상기 데이터에 관한 메타데이터가 저장되는 메타데이터 블록을 포함하는 제 1 메모리; 대기 중인 데이터를 저장하는 제 2 메모리; 및 상기 제 1 메모리 및 상기 제 2 메모리의 데이터를 관리하는 제어부를 포함하되, 상기 제어부는, 제 1 데이터를 상기 제 1 메모리에 저장하는 경우 상기 제 1 데이터를 다른 데이터와 구분하기 위한 랜덤 밸류를 생성하여 상기 제 1 데이터에 포함시킨 후 상기 데이터 블록에 저장하고, 상기 랜덤 밸류와 롤백키를 기반으로 상기 제 1 데이터에 대한 정보를 암호화하여 암호값을 상기 제 2 메모리에 저장하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치에 관한 것이다.

Description

비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법{ELECTRIC DEVICE AND METHOD FOR EMULATING NON-VOLATILE MEMORY}
본 발명은 저장된 데이터를 롤백(Roll-back)하여 데이터를 관리하는 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법에 관한 것이다.
EEPROM(Electrically Erased Programmable Rom)은 전기적으로 데이터를 쓰고 지울 수 있는 비휘발성 메모리이다.
EEPROM은 한번 내용을 저장하면 비교적 오랫동안 이를 저장하고 있으면서 주로 저장된 데이터를 읽는 기능만으로 사용하거나, 전원을 꺼도 지워져서는 안되는 중요한 데이터를 백업하여 두어야 하는 설정값 저장용 메모리로 사용하고 있다.
그러나 EEPROM은 복수의 데이터가 저장되더라도 신규 데이터만을 읽는 특성이 있으므로, 기 저장된 데이터를 활용하지 못하고 새로 신규 데이터를 추가해야 하는 번거로움이 있다.
따라서 EEPROM의 읽기와 쓰기의 특성을 활용하여 EEPROM에 기 저장된 기존 데이터를 이용할 수 있는 방안이 필요하다.
본 발명의 배경기술은 대한민국 등록특허 제10-1925383호에 개시되어 있다.
본 발명의 일 측면에 따르면, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창작된 것으로서, 비휘발성 메모리, 특히 EEPROM에 기 저장된 데이터를 롤백(Roll-back)하여 새로운 데이터로 추가할 수 있는, 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법을 제공하는 데 그 목적이 있다.
본 발명의 일측면에 따르면, 본 발명은 데이터가 저장되는 데이터 블록과, 상기 데이터에 관한 메타데이터가 저장되는 메타데이터 블록을 포함하는 제 1 메모리; 대기 중인 데이터를 저장하는 제 2 메모리; 및 상기 제 1 메모리 및 상기 제 2 메모리의 데이터를 관리하는 제어부를 포함하되, 상기 제어부는, 제 1 데이터를 상기 제 1 메모리에 저장하는 경우 상기 제 1 데이터를 다른 데이터와 구분하기 위한 랜덤 밸류를 생성하여 상기 제 1 데이터에 포함시킨 후 상기 데이터 블록에 저장하고, 상기 랜덤 밸류와 롤백키를 기반으로 상기 제 1 데이터에 대한 정보를 암호화하여 암호값을 상기 제 2 메모리에 저장하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치를 제공한다.
본 발명에서, 상기 제어부는 상기 랜덤 밸류와 상기 롤백키에 대한 배타적 논리합(XOR)을 연산하여 상기 암호값을 산출할 수 있다.
본 발명에서, 상기 제어부는 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 상기 데이터 블록에 저장하고, 상기 롤백키는 상기 메타데이터 블록에 저장하며, 상기 암호값을 상기 제 2 메모리의 스탠바이 램 영역에 저장할 수 있다.
본 발명에서, 상기 제어부는 상기 메타데이터 블록에 저장된 ID정보에 따라 순차적으로 상기 제 1 데이터를 상기 데이터 블록에 저장할 수 있다.
본 발명에서, 상기 제어부는 기존 데이터인 상기 제 1 데이터에 대한 사용 명령이 수신되면, 상기 암호값과 상기 롤백키를 이용하여 상기 데이터 블록에 저장된 상기 제 1 데이터를 읽어 신규 데이터로서 상기 데이터 블록에 추가할 수 있다.
본 발명에서, 상기 제어부는 상기 암호값과 상기 롤백키를 이용하여 데이터를 복호화하고, 산출되는 결과값과 일치하는 랜덤 밸류를 검색하여 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 읽어 올 수 있다.
본 발명에서, 상기 제어부는 상기 암호값과 상기 롤백키의 배타적 논리합(XOR)을 연산하여 상기 제 1 데이터의 상기 랜덤 밸류를 상기 결과값으로 산출할 수 있다.
본 발명에서, 상기 제어부는 상기 제 1 데이터를 신규 데이터로 추가하는 경우, 상기 제 1 메모리의 상기 데이터 블록에 빈 블록이 존재하지 않으면 가장 오래된 데이터 블록의 데이터를 삭제한 후, 상기 제 1 데이터를 신규 데이터로 저장할 수 있다.
본 발명에서, 상기 비휘발성 메모리는 EEPROM일 수 있다.
본 발명의 다른 측면에 따르면, 본 발명은 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법으로서, 제어부가 제 1 메모리에 저장할 제 1 데이터를 다른 데이터와 구분하기 위한 랜덤 밸류를 생성하는 단계; 상기 제어부가 상기 제 1 데이터에 상기 랜덤 밸류를 포함시켜 상기 제 1 메모리의 데이터 블록에 저장하는 단계; 상기 제어부가 상기 랜덤 밸류와 상기 제 1 메모리의 메타데이터 블록에 저장된 롤백키를 이용하여 상기 제 1 데이터에 대한 정보를 암호화하는 단계; 및 상기 암호화하는 단계에서 산출되는 암호값을 제 2 메모리에 저장하는 단계를 포함하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법을 제공한다.
상기 암호화하는 단계에서, 상기 제어부는 상기 랜덤 밸류와 상기 롤백키에 대한 배타적 논리합(XOR)을 연산하여 상기 제 1 데이터에 대한 상기 암호값을 산출할 수 있다.
본 발명에서, 상기 제 1 데이터에 대한 사용 명령의 수신에 응답하여, 상기 제어부가 상기 제 2 메모리에 저장된 상기 암호값과 상기 롤백키를 이용하여 상기 제 1 데이터에 대한 정보를 복호화하는 단계; 상기 제어부가 상기 복호화하는 단계에서 산출되는 결과값과 일치하는 랜덤 밸류를 상기 제 1 메모리로부터 검색하는 단계; 및 상기 제어부가 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 읽어 오는 단계를 더 포함할 수 있다.
상기 복호화하는 단계에서, 상기 암호값과 상기 롤백키의 배타적 논리합(XOR)을 연산하여 상기 결과값으로 상기 제 1 데이터에 포함된 상기 랜덤 밸류를 산출할 수 있다.
본 발명에서, 상기 제어부가, 읽어 온 상기 제 1 데이터를 신규 데이터로 추가하기 전, 상기 제 1 메모리의 데이터 블록에 빈 블록이 존재하는지 판단하는 단계; 및 상기 제어부가, 빈 블록이 존재하지 않는 경우 가장 오래된 데이터 블록을 삭제한 후, 상기 제 1 데이터를 신규 데이터로 저장하는 단계를 더 포함할 수 있다.
일 측면에 따르면, 본 발명은 비휘발성 메모리, 특히 EEPROM에 데이터를 구분하여 암호화하여 저장하고, 롤백 키를 이용하여 기 저장된 데이터를 롤백(Roll-back)하도록 EEPROM을 에뮬레이팅하여 기존 데이터를 활용할 수 있도록 함으로써, 수행시간을 단축하고 EEPROM의 수명을 증가시키는 효과가 있다.
본 발명의 다른 측면에 따르면, 본 발명은 EEPROM과 저전압의 스탠바이 램 영역을 사용하여 저장되는 데이터와 암호화데이터를 분리하여 저장할 수 있고, 논리연산을 통해 암호화하여 각 데이터의 고유성을 확보하고 쉽게 복호화할 수 있도록 함으로써 데이터를 효과적으로 관리할 수 있게 한다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 구성이 도시된 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 메모리 구조를 설명하는 예시도이다.
도 3은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 롤백 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 데이터 관리 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 롤백을 위한 데이터 암호화 방법을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 데이터를 롤백하는 방법을 도시한 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다. 프로세서는 또한 최종-사용자 사이에 정보의 통신을 용이하게 하는 컴퓨터, 셀 폰, 휴대용/개인용 정보 단말기(personal digital assistant: "PDA") 및 다른 디바이스 등과 같은 통신 디바이스를 포함한다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 구성이 도시된 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 비휘발성 메모리를 에뮬레이팅하는 전자장치는, 제어부(110), 제 1 메모리(120) 및 제 2 메모리(130)를 포함한다.
제어부(110)는 차량의 메인 제어기(ECU)에 탑재되어, 차량을 제어하고 수신되는 데이터를 바탕으로 차량의 상태를 모니터링한다.
또한, 제어부(110)는 제 1 메모리(120) 및 제 2 메모리(130)의 데이터 입출력을 제어하고, 상태를 모니터링한다.
제어부(110)는 제 1 메모리(120)의 데이터 읽기 및 쓰기(Read and Write)를 제어하고, 데이터의 롤백(Roll-Back)을 위한 데이터를 저장하거나 불러오기를 수행한다.
제어부(110)는 기존 데이터를 이용하는 경우 롤백을 이용하여 기 저장된 기존 데이터 중 특정 데이터를 롤백하여, 새로운 데이터로 추가한다. 제어부(110)는 제 1 메모리(120)의 데이터 중 신규 데이터를 읽어 동작하고, 기존 데이터를 롤백하여 신규 데이터로 저장함으로써, 기존 데이터를 새로이 작성하지 않더라도 롤백을 통해 활용할 수 있도록 한다.
제 1 메모리(120)는 전기적으로 데이터를 쓰고 지울 수 있는 비휘발성 메모리로서, 특히 EEPROM(Electrically Erased Programmable Rom)일 수 있는데, 본 실시예에는 상기 비휘발성 메모리가 EEPROM인 것을 예로 들어 설명하며, 이에 한정되는 것은 아니다.
제 1 메모리(120)는 롤백(Roll-Back)이 가능한 EEPROM 에뮬레이션(Emulation)을 구현하는 데 있어서, 기존 데이터와 신규 데이터를 식별하기 위한 정보를 포함하는 메타데이터 블록(Metadata Block)(121)과 데이터를 저장하는 데이터 블록(Data Block)(122)으로 구분하여 데이터를 저장한다.
제 1 메모리(120)는 메타데이터 블록(121)과 데이터 블록(122)으로 구성된 블록을 복수로 포함한다. 즉, 제 1 메모리(120)는 복수의 블록으로 구분되고, 각 블록에는 메타데이터 블록과 데이터 블록이 형성되어 데이터가 저장된다.
메타데이터 블록(121)은 이전 데이터와 최신 데이터를 구분하는 ID정보와, 데이터의 롤백을 위한 롤백키(Roll-Back key)를 저장한다.
데이터 블록(122)은 차량의 상태 진단 정보와 고장 정보 등의 데이터를 저장한다.
제 2 메모리(130)는 전자장치에 전원이 공급되지 않더라도 저전압으로 항시 동작하는 램(RAM, Random Access Memory)이다. 제 2 메모리(130)는 스탠바이 램(STANDBY RAM) 영역을 포함한다. 제어부(110)는 사용하기 위해 대기 중인 데이터를 제 2 메모리(130)의 스탠바이 램 영역에 저장한다.
제 2 메모리(130)는 암호화데이터(131)를 저장한다. 암호화데이터(131)는 스탠바이 램 영역에 포함된다.
암호화데이터(131)는 제 1 메모리(120)에 저장된 데이터의 롤백을 위하여, 저장된 데이터와 관련된 정보를 암호화하거나 또는 복호화하는 과정에서 생성되는 데이터이다. 예를 들어, 암호화데이터(131)는 데이터의 랜덤 밸류(Random value)와 롤백키(Roll-Back key)를 암호화 연산을 통해 산출된 암호값을 포함한다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 메모리 구조를 설명하기 위한 예시도이다.
도 2의 (a)에 도시된 바와 같이, 제 1 메모리(120)는 EEPROM 중 저장을 위한 공간인 EEPROM 영역(EEPROM Area)을 포함한다.
제 1 메모리(120)의 메타데이터 블록(Metadata Block)(121)(12)과 데이터 블록(Data Block)(122)(11)은 하나의 블록(50)을 형성한다. 블록은 EEPROM 영역에 형성되며, EEPROM 영역은 복수의 블록(50)(51 내지 59)을 포함한다.
즉, EEPROM 영역은 제 1 블록(51) 내지 제 n 블록(59)을 포함한다. 제 1 블록(51)은 제 1 메타데이터 블록과 제 1 데이터 블록을 포함하고, 제 2 블록(52)은 제 2 메타데이터 블록과 제 2 데이터 블록을 포함하며, 제 n 블록(59)은 제 n 메타데이터 블록과 제 n 데이터 블록을 포함한다.
데이터 블록(11)은 차량 고장 및 상태 정보에 대한 데이터(Data)와, 랜덤 밸류(Random Value)(14)를 포함한다.
랜덤 밸류(14)는 데이터 블록(Data Block)(11)을 구분하기 위한 값으로, 제 1 메모리(120)에 포함되는 복수의 데이터 블록 중 현 데이터 블록이 어떤 데이터 블록인지 구분하기 위한 값이다. 랜덤 밸류(14)는 약 4bytes 크기로 구성될 수 있다.
랜덤 밸류(14)는 데이터에 포함되어 데이터 블록(11)에 저장된다.
메타데이터 블록(12)은 순서를 표기하는 ID정보와, 암호화 및 복호화에 사용되는 롤백키(Roll-Back Key)(15)를 포함한다. ID정보는 메타데이터 블록(12)의 번호이다. 롤백키(15)는 데이터의 롤백(Roll-Back) 동작을 실행하기 위한 키(key)값이다.
도 2의 (b)에 도시된 바와 같이, 제 2 메모리(130)는 저전압으로 항상 유지하는 스탠바이 램(STANDBY RAM) 영역을 포함한다.
스탠바이 램 영역은 암호화 데이터(Encrypted data)(131)(13)를 포함한다.
암호화데이터(13)는 복수의 암호화데이터 블록(60)을 포함할 수 있다.
암호화데이터(13)는 데이터 블록(11)의 랜덤 밸류(14)와 메타데이터 블록(12)의 롤백키(15)를 배타적 논리합(XOR, Exclusive-OR)으로 연산하여 산출되는 암호값(16)을 포함한다.
제어부(110)는 제 1 메모리(120)의 데이터를 롤백(Roll-Back)할 수 있도록 데이터를 저장하는 경우, 메타데이터 블록(12)에 있는 ID정보에 따라 순차적으로 데이터 블록(11)에 데이터를 저장한다.
제어부(110)는 저장하는 데이터를 다른 데이터와 구분하기 위하여, 데이터에 대한 랜덤 밸류(14)를 생성한다. 제어부(110)는 생성된 랜덤 밸류(14)를 데이터의 마지막에 4byte 크기로 포함시킨 후, 랜덤 밸류(14)가 포함된 데이터를 데이터 블록(11)에 저장한다.
또한, 제어부(110)는 데이터 블록(11)의 랜덤 밸류(14)와 메타데이터 블록(12)의 롤백키(15)의 XOR 연산을 통해 저장할 데이터와 관련된 정보를 암호화하고, 그 결과값인 암호값(16)을 제 2 메모리(130)의 암호화데이터(131)에 저장한다.
그에 따라 본 발명의 전자장치는 저장되는 데이터에 대하여, 랜덤 밸류와 암호화를 통해 각 데이터의 고유성을 확보할 수 있다.
도 3 은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 롤백 방법을 설명하기 위한 예시도이다.
도 3에 도시된 바와 같이, 제 1 메모리(120)에 저장된 데이터를 롤백하기 위한 에뮬레이션을 구현하는 데 있어서, 제어부(110)는 데이터와 관련된 정보를 암호화하여 제 1 메모리(120)에 저장하는 단계(S37)와, 저장된 데이터를 롤백하여 신규 데이터로 추가하는 단계(S38)로 동작한다.
제 1 메모리(120)에 데이터를 저장하는 경우, 제어부(110)는 제 1 메모리(120)의 메타데이터 블록(12)에 저장되는 ID정보에 따라 데이터 블록(11)에 순차적으로 데이터를 저장한다.
제어부(110)는 저장하는 데이터를 다른 데이터와 구분하고, 어떤 데이터 블록에 해당 데이터가 저장되는지 구분하기 위한 랜덤 밸류(14)를 생성한다.
제어부(110)는 생성된 랜덤 밸류(14)를 데이터에 포함시키고, 랜덤 밸류(14)가 포함된 데이터를 데이터 블록(11)에 저장한다(S31).
제어부(110)는 메타데이터 블록(12)에 저장된 롤백키(15)를 읽어, 랜덤 밸류(14)와 롤백키(15)의 XOR 연산을 통해 암호화를 수행한다(S32).
롤백키는 데이터의 롤백을 위한 키값으로, 암호화 및 복호화 과정에서 사용되며, 메타데이터 블록(12)에 저장된다.
제어부(110)는 랜덤 밸류(14)와 롤백키(15)의 XOR 연산을 통해 산출되는 암호값(16)을 제 2 메모리(130)의 암호화데이터(131)에 저장한다(S37).
제어부(110)는 데이터를 제 1 메모리(120)에 저장하고, 암호값은 데이터와 별도로 제 2 메모리(130)에 저장한다. 제어부(110)는 암호값이 삭제되지 않도록, 전원이 공급되지 않더라도 저전압으로 유지되는 스탠바이 램 영역에 암호값을 저장한다.
제어부(110)는 제 1 메모리(120)에 데이터를 저장하는 경우 위와 같이 ID정보에 따라 데이터 블록 별로 데이터를 순차적으로 저장하되, 저장되는 데이터에 대한 암호값(16)을 생성하여 제 2 메모리(130)의 암호화데이터(131)에 저장하는 것을 반복한다.
제 1 메모리(120)에 기 저장된 데이터에 대하여, 제어부(110)는 롤백 단계(S38)를 통해, 기존 데이터 중 특정 데이터를 롤백하여 신규 데이터로 추가할 수 있다.
제어부(110)는 제 2 메모리(130)의 암호화데이터(131)에 저장된 암호값(16)을 읽어 오고(S34), 암호값(16)과 메타데이터 블록(12)에 저장된 롤백키(15)를 XOR 연산하여 데이터를 복호화 한다(S35).
제어부(110)는 랜덤 밸류(14)와 롤백키(15)를 XOR 연산한 결과값인 암호값(16)을 다시 롤백키(15)와 XOR 연산함으로써, 데이터의 랜덤 밸류(14)를 획득할 수 있다.
이에 따라 제어부(110)는 데이터의 복호화를 통해 산출되는 결과값에 의해 랜덤 밸류(14)를 확인한다. 즉, 복호화 과정에서 산출되는 결과값은 기존 데이터 중 어느 하나의 랜덤 밸류이다.
제어부(110)는 복호화 과정에서 산출되는 결과값을 데이터 블록(11)으로부터 검색하고, 데이터 블록(11)에 저장된 데이터 중 결과값과 일치하는 랜덤 밸류를 탐색하여, 값이 일치하는 랜덤 밸류의 데이터를 읽어 온다(S36).
제어부(110)는 읽어 온 데이터를 신규 데이터로서 제 1 메모리(120)의 데이터 블록(11)에 저장한다.
그에 따라 제어부(110)는 제 1 메모리(120)에 저장된 데이터를 롤백하여 신규 데이터로 사용할 수 있다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 데이터 롤백을 설명하기 위한 예시도이다.
제어부(110)는 데이터를 제 1 메모리(120)의 저장하는 경우 해당 데이터의 롤백(Roll-Back)을 고려하여, 도 4의 (a)에 도시된 바와 같이, 제 1 메모리(120)의 EEPROM 영역에서, 데이터 블록(11)과 메타데이터 블록(12)을 포함하는 블록(50) 단위로, 데이터를 순차적으로 저장한다.
제어부(110)는 제 1 메모리(120)의 메타데이터 블록(12)의 ID 정보에 따라 복수의 블록(50)에 순차적으로 데이터를 저장한다.
제 1 블록(51)에 제 1 데이터(22)가 저장되고, 제 2 블록(52)에 제 2 데이터(21)가 저장되면, 제어부(110)는 제 1 블록(51)의 제 1 데이터(22)를 기존 데이터(OLD DATA)로 판단하고, 제 2 블록(52)의 제 2 데이터(21)는 신규 데이터(NEW DATA)인 것으로 판단한다.
제어부(110)는 신규 데이터인 제 2 데이터를 우선적으로 읽어 특정 동작을 수행한다. 그에 따라 제어부(110)는 제 1 데이터를 사용하고자 하는 경우, 제 1 메모리(1200에 기 저장된 제 1 데이터를 롤백하도록 에뮬레이팅하여 신규 데이터로 추가함으로써, 신규 데이터로 변경된 제 1 데이터를 읽어 그에 대한 동작을 수행할 수 있다.
도 4의 (b)에 도시된 바와 같이, 제어부(110)는 복수의 암호화데이터 블록(60)으로 구성된, 제 2 메모리(120)의 스탠바이 램 영역에 대하여 데이터를 저장한다.
제어부(110)는 데이터가 저장되는 순서에 따라 신규 데이터(NEW DATA)(23)와 기존 데이터(OLD DATA)(24)를 구분한다.
제어부(110)는 제 1 메모리(120)의 복수의 블록에 데이터가 모두 저장되면, 가장 오래된 블록부터 삭제하고 새로운 데이터를 저장한다. 제어부(110)는 제 2 메모리(130)의 복수의 암호화데이터 블록에 암호화데이터(131)가 저장되면, 가장 오래된 순서로 삭제하고 새로운 암호화데이터를 저장한다.
도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 롤백을 위한 데이터 암호화 방법을 도시한 흐름도이다.
도 5에 도시된 바와 같이, 데이터를 제 1 메모리(120)의 데이터 블록(11)에 저장하는 경우, 제어부(110)는 저장할 데이터에 대한 랜덤 밸류를 생성한다(S310).
제어부(110)는 데이터의 마지막에 랜덤 밸류(14)를 포함시킨 후, 이를 메타데이터 블록(12)의 ID정보에 대응하여 순차적으로 데이터 블록(11)에 저장한다(S320).
제어부(110)는 저장되는 데이터의 랜덤 밸류(14)와 메타데이터의 롤백키(15)를 XOR 연산하여 암호값(16)을 생성한다(S330). 이에 따라 제어부(110)는 논리연산을 통해, 저장되는 데이터의 고유성을 확보할 수 있다.
제어부(110)는 생성된 암호값(16)을 제 2 메모리(130)의 암호화데이터(131)에 저장한다(S340).
제어부(110)는 데이터를 제 1 블록(51)의 제 1 데이터 블록에 저장하는 경우, 그에 대응하여 제 2 메모리(130)의 암호화데이터(131)(13)에 암호값(16)을 저장한다.
제어부(110)는 데이터를 추가하는 경우, 해당 데이터에 랜덤 밸류(14)를 생성하여 추가한 후, 랜덤 밸류(14)와 롤백키(15)를 이용하여 암호화하고, 그 데이터와는 별도로 제 2 메모리(130)의 암호화데이터(131)(13)에 암호값(16)을 저장하는 것을 반복하여 복수의 데이터를 블록 단위로 제 1 메모리(120)에 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리를 에뮬레이팅하는 전자장치의 데이터를 롤백하는 방법을 도시한 흐름도이다.
도 6에 도시된 바와 같이, 제어부(110)는 제 1 메모리(120)에 저장된 기존 데이터를 사용하도록 명령이 수신되면(S410), 제 1 메모리(120)의 기존 데이터(OLD DATA)에 대한 암호화데이터(131)(13)를 제 2 메모리(120)로부터 읽어 온다.
제어부(110)는 앞서 설명한 바와 같이, 제 2 메모리(130)의 암호화데이터(13)에 저장된 암호값(16)을 읽어 오고, 제 1 메모리(120)의 메타데이터 블록(121)(12)에 저장된 롤백키(15)를 읽어 온다.
제어부(110)는 암호값(16)과 롤백키(15)를 XOR연산하여 데이터에 대한 결과값을 산출함으로써, 데이터를 복호화 한다(S420).
제어부(110)는 복호화에 따른 결과값을 제 1 메모리(120)의 데이터 블록(11)으로부터 검색하여, 상기 결과값과 일치하는 랜덤 밸류를 탐색한다. 결과값과 일치하는 랜덤 밸류가 존재하는 경우, 제어부(110)는 해당 랜덤 밸류의 데이터를 읽어 온다(S430).
이 때, 제어부(110)는 랜덤 밸류(14)와 롤백키(15)를 XOR 연산한 결과 산출되는 암호값(16)을 다시 롤백키(15)와 XOR 연산하여 복호화하며, 그 결과값으로 랜덤 밸류(14)가 산출된다. 즉, 결과값은 읽어 올 데이터의 랜덤 밸류(14)이다.
제어부(110)는 읽어 온 기존 데이터를 저장하기 전, 제 1 메모리(120)의 복수의 데이터 블록에 모두 데이터가 저장되어 있는지, 즉 빈 데이터 블록이 존재하는지 확인한다(S440).
빈 데이터 블록이 존재하는 경우, 제어부(110)는 해당 데이터 블록에 읽어 온 기존 데이터를 신규 데이터로 추가한다(S460).
한편, 모든 데이터 블록에 데이터가 저장되어 있는 경우, 제어부(110)는 저장 시점이 가장 오래된 순서에 따라 데이터 블록의 데이터를 삭제한다(S450).
제어부(110)는 읽어 온 기존 데이터를, 데이터 블록에 신규 데이터로 저장한다(S460).
따라서, 제어부(110)는 제 1 메모리(120)인 EEPROM에 복수의 데이터를 저장하되 신규 데이터만을 읽는 특성을 기반으로, 기 저장된 기존 데이터를 롤백하도록 에뮬레이팅 함으로써, 기존 데이터를 신규 데이터로서 활용할 수 있다.
이상 살펴 본 바와 같이, 본 실시예에 따르면, 비휘발성 메모리, 특히 EEPROM에 데이터를 구분하여 암호화하여 저장하고, 롤백 키를 이용하여 기 저장된 데이터를 롤백(Roll-back)하도록 EEPROM을 에뮬레이팅하여 기존 데이터를 활용할 수 있도록 함으로써, 수행시간을 단축하고 EEPROM의 수명을 증가시킬 수 있다.
또한, 본 실시예에 따르면, EEPROM과 저전압의 스탠바이 램 영역을 사용하여 저장되는 데이터와 암호화데이터를 분리하여 저장할 수 있고, 논리연산을 통해 암호화하여 각 데이터의 고유성을 확보하고 쉽게 복호화할 수 있도록 함으로써 데이터를 효과적으로 관리할 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
11: 데이터 블록 12: 메타데이터 블록
13, 131: 암호화데이터 14: 랜덤 밸류
15: 롤백키 16: 암호값
50, 51 내지 59: 블록 60, 61, 62: 암호화데이터 블록
110: 제어부 120: 제 1 메모리(EEPROM)
130: 제 2 메모리(RAM)

Claims (15)

  1. 데이터가 저장되는 데이터 블록과, 상기 데이터에 관한 메타데이터가 저장되는 메타데이터 블록을 포함하는 제 1 메모리;
    대기 중인 데이터를 저장하는 제 2 메모리; 및
    상기 제 1 메모리 및 상기 제 2 메모리의 데이터를 관리하는 제어부를 포함하되,
    상기 제어부는, 제 1 데이터를 상기 제 1 메모리에 저장하는 경우 상기 제 1 데이터를 다른 데이터와 구분하기 위한 랜덤 밸류를 생성하여 상기 제 1 데이터에 포함시킨 후 상기 데이터 블록에 저장하고, 상기 랜덤 밸류와 롤백키를 기반으로 상기 제 1 데이터에 대한 정보를 암호화하여 암호값을 상기 제 2 메모리에 저장하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  2. 제 1 항에 있어서,
    상기 제어부는 상기 랜덤 밸류와 상기 롤백키에 대한 배타적 논리합(XOR)을 연산하여 상기 암호값을 산출하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  3. 제 1 항에 있어서,
    상기 제어부는 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 상기 데이터 블록에 저장하고, 상기 롤백키는 상기 메타데이터 블록에 저장하며, 상기 암호값을 상기 제 2 메모리의 스탠바이 램 영역에 저장하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  4. 제 1 항에 있어서,
    상기 제어부는 상기 메타데이터 블록에 저장된 ID정보에 따라 순차적으로 상기 제 1 데이터를 상기 데이터 블록에 저장하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  5. 제 1 항에 있어서,
    상기 제어부는 기존 데이터인 상기 제 1 데이터에 대한 사용 명령이 수신되면,
    상기 암호값과 상기 롤백키를 이용하여 상기 데이터 블록에 저장된 상기 제 1 데이터를 읽어 신규 데이터로서 상기 데이터 블록에 추가하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  6. 제 5 항에 있어서,
    상기 제어부는 상기 암호값과 상기 롤백키를 이용하여 데이터를 복호화하고, 산출되는 결과값과 일치하는 랜덤 밸류를 검색하여 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 읽어오는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  7. 제 6 항에 있어서,
    상기 제어부는 상기 암호값과 상기 롤백키의 배타적 논리합(XOR)을 연산하여 상기 제 1 데이터의 상기 랜덤 밸류를 상기 결과값으로 산출하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  8. 제 5 항에 있어서,
    상기 제어부는 상기 제 1 데이터를 신규 데이터로 추가하는 경우,
    상기 제 1 메모리의 상기 데이터 블록에 빈 블록이 존재하지 않으면 가장 오래된 데이터 블록의 데이터를 삭제한 후, 상기 제 1 데이터를 신규 데이터로 저장하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  9. 제 1 항에 있어서,
    상기 비휘발성 메모리는 EEPROM인 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치.
  10. 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법으로서,
    제어부가 제 1 메모리에 저장할 제 1 데이터를 다른 데이터와 구분하기 위한 랜덤 밸류를 생성하는 단계;
    상기 제어부가 상기 제 1 데이터에 상기 랜덤 밸류를 포함시켜 상기 제 1 메모리의 데이터 블록에 저장하는 단계;
    상기 제어부가 상기 랜덤 밸류와 상기 제 1 메모리의 메타데이터 블록에 저장된 롤백키를 이용하여 상기 제 1 데이터에 대한 정보를 암호화하는 단계; 및
    상기 암호화하는 단계에서 산출되는 암호값을 제 2 메모리에 저장하는 단계 를 포함하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
  11. 제 10 항에 있어서,
    상기 암호화하는 단계에서,
    상기 제어부는 상기 랜덤 밸류와 상기 롤백키에 대한 배타적 논리합(XOR)을 연산하여 상기 제 1 데이터에 대한 상기 암호값을 산출하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
  12. 제 10 항에 있어서,
    상기 제 1 데이터에 대한 사용 명령의 수신에 응답하여, 상기 제어부가 상기 제 2 메모리에 저장된 상기 암호값과 상기 롤백키를 이용하여 상기 제 1 데이터에 대한 정보를 복호화하는 단계;
    상기 제어부가 상기 복호화하는 단계에서 산출되는 결과값과 일치하는 랜덤 밸류를 상기 제 1 메모리로부터 검색하는 단계; 및
    상기 제어부가 상기 랜덤 밸류를 포함하는 상기 제 1 데이터를 읽어 오는 단계 를 더 포함하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
  13. 제 12 항에 있어서,
    상기 복호화하는 단계에서,
    상기 암호값과 상기 롤백키의 배타적 논리합(XOR)을 연산하여 상기 결과값으로 상기 제 1 데이터에 포함된 상기 랜덤 밸류를 산출하는 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
  14. 제 12 항에 있어서,
    상기 제어부가, 읽어 온 상기 제 1 데이터를 신규 데이터로 추가하기 전, 상기 제 1 메모리의 데이터 블록에 빈 블록이 존재하는지 판단하는 단계; 및
    상기 제어부가, 빈 블록이 존재하지 않는 경우 가장 오래된 데이터 블록을 삭제한 후, 상기 제 1 데이터를 신규 데이터로 저장하는 단계를 더 포함하는 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
  15. 제 10 항에 있어서,
    상기 비휘발성 메모리는 EEPROM인 것을 특징으로 하는, 비휘발성 메모리를 에뮬레이팅하는 전자장치의 동작방법.
KR1020210192038A 2021-12-30 2021-12-30 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법 KR20230102145A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210192038A KR20230102145A (ko) 2021-12-30 2021-12-30 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법
US18/078,560 US20230214144A1 (en) 2021-12-30 2022-12-09 Electric device and method for emulating a non-volatile memory
CN202211605664.1A CN116382562A (zh) 2021-12-30 2022-12-14 模拟非易失性存储器的电子设备及方法
DE102022133918.1A DE102022133918A1 (de) 2021-12-30 2022-12-19 Elektrische vorrichtung und verfahren zum emulieren eines nichtflüchtigen speichers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210192038A KR20230102145A (ko) 2021-12-30 2021-12-30 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20230102145A true KR20230102145A (ko) 2023-07-07

Family

ID=86766249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210192038A KR20230102145A (ko) 2021-12-30 2021-12-30 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법

Country Status (4)

Country Link
US (1) US20230214144A1 (ko)
KR (1) KR20230102145A (ko)
CN (1) CN116382562A (ko)
DE (1) DE102022133918A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10643046B2 (en) * 2015-09-21 2020-05-05 I.P Solutions, Ltd Device, and card type device
US20170220252A1 (en) * 2016-01-29 2017-08-03 Faraday&Future Inc. Flash emulated eeprom wrapper
US20210064234A1 (en) * 2019-04-16 2021-03-04 Formulus Black Corporation Systems, devices, and methods for implementing in-memory computing
US20190319781A1 (en) * 2019-06-27 2019-10-17 Intel Corporation Deterministic Encryption Key Rotation

Also Published As

Publication number Publication date
CN116382562A (zh) 2023-07-04
DE102022133918A1 (de) 2023-07-06
US20230214144A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
KR100969758B1 (ko) 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
US11100011B2 (en) Flash translation layer with hierarchical security
US8996933B2 (en) Memory management method, controller, and storage system
KR102223819B1 (ko) 자기 암호화 드라이브를 위한 가상 밴드 집중
EP3007094B1 (en) Boot program, information processing apparatus, information processing system, information processing method, semiconductor apparatus, and program
JP2010509690A (ja) 記憶装置のセキュリティを確保する方法とシステム
US7835518B2 (en) System and method for write failure recovery
KR20140027596A (ko) 메모리 시스템 및 메모리 시스템에서의 암호화 방법
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
US20220075549A1 (en) Data erasure in memory sub-systems
KR20230102145A (ko) 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법
US20230091431A1 (en) Memory system and random number generation device
US9411984B2 (en) Cryptographic processing apparatus, cryptographic processing system, and cryptographic processing method
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
CN112468300B (zh) 具有旁通通道的金钥管理装置及处理器芯片
KR101648262B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
EP4339790A1 (en) Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same
US20240086336A1 (en) Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same
JP2010009174A (ja) 不揮発性記憶媒体制御装置、不揮発性記憶媒体制御方法、及び不揮発性記憶媒体制御プログラム
US11588634B2 (en) Storage device and controlling method
CN117708900A (zh) 存储设备、操作其的方法和操作包括其的电子设备的方法
WO2024094290A1 (en) Apparatus and method for storage protection
CN117786774A (zh) 数据保护方法、闪存设备控制器及闪存设备
JP2020052181A (ja) マイクロコンピュータ