KR20230029113A - 전자 장치 - Google Patents

전자 장치 Download PDF

Info

Publication number
KR20230029113A
KR20230029113A KR1020210111200A KR20210111200A KR20230029113A KR 20230029113 A KR20230029113 A KR 20230029113A KR 1020210111200 A KR1020210111200 A KR 1020210111200A KR 20210111200 A KR20210111200 A KR 20210111200A KR 20230029113 A KR20230029113 A KR 20230029113A
Authority
KR
South Korea
Prior art keywords
security
data
memory
processor
volatile memory
Prior art date
Application number
KR1020210111200A
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 KR1020210111200A priority Critical patent/KR20230029113A/ko
Priority to US17/746,049 priority patent/US20230059382A1/en
Priority to CN202210827161.2A priority patent/CN115904219A/zh
Priority to TW111127200A priority patent/TW202407705A/zh
Publication of KR20230029113A publication Critical patent/KR20230029113A/ko

Links

Images

Classifications

    • 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/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

전자 장치가 개시된다. 본 개시의 기술적 사상에 따른 전자 장치는 노멀 모드 또는 저전력 모드로 동작하고, 제1 비휘발성 메모리, 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리, 및 노멀 모드에서 제1 보안 데이터를 제1 비휘발성 메모리에 저장하도록 제1 비휘발성 메모리에 액세스하는 보안 프로세서를 포함하도록 구성된 시스템 온 칩을 포함한다.

Description

전자 장치{ELECTRONIC DEVICE}
본 개시의 기술적 사상은 전자 장치에 관한 것이다.
외부의 부적절한 공격으로부터 데이터를 보호하기 위한 데이터 보안은, 고도화된(advanced) 공격으로부터 데이터를 보호하기 위하여 소프트웨어 및 하드웨어를 함께 활용할 수 있다. 데이터 보안에서 키(key)는 데이터를 암호화(encryption)하거나 복호화(decryption)하는데 사용될 수 있고, 정당한 키, 즉 암호화에 사용된 키와 상이한 키를 사용하여 데이터를 복호화하는 것은 용이하지 아니할 수 있다. 이에 따라, 외부 공격으로부터 키를 안전하게 관리하는 것은 데이터 보안에서 중대할 수 있다.
본 개시의 기술적 사상은, 저전력 모드로 동작하는 경우에 메인 프로세서를 활성화하지 않고도 보안이 요구되는 데이터를 처리하는 전자 장치를 제공하는 것이다.
일 측면에서, 본 개시의 기술적 사상에 따른 전자 장치는, 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서, 데이터를 저장하도록 구성된 제1 비휘발성 메모리, 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치, 및 보안 채널을 통해 보안 장치와 통신하고, 노멀 모드에서 제1 보안 데이터를 제1 비휘발성 메모리에 저장하도록 제1 비휘발성 메모리에 액세스하는 보안 프로세서를 포함하도록 구성된 시스템 온 칩을 포함한다.
다른 측면에서, 본 개시의 기술적 사상에 따른 전자 장치는, 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서, 데이터를 저장하도록 구성된 제1 비휘발성 메모리, 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치, 보안 채널을 통해 보안 장치와 통신하고, 노멀 모드에서 제1 보안 데이터를 저장할 것을 요청하는 제1 기입 요청 신호와 제1 보안 데이터를 출력하는 보안 처리 모듈, 및 통신 채널을 통해 보안 처리 모듈 및 제1 비휘발성 메모리와 각각 통신하고, 제1 기입 요청 신호에 응답하여 제1 보안 데이터, 제1 프로그램 커맨드, 및 제1 어드레스를 제1 비휘발성 메모리에 제공하는 시스템 온 칩을 포함한다.
또 다른 측면에서, 본 개시의 기술적 사상에 따른 전자 장치는, 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서, 데이터를 저장하는 제1 비휘발성 메모리, 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치, 노멀 모드에서 제1 보안 데이터를 저장할 것을 요청하는 제1 기입 요청 신호를 출력하는 보안 프로세서, 제1 기입 요청 신호에 응답하여 제1 제어 커맨드를 출력하는 메인 프로세서, 및 제1 제어 커맨드에 응답하여 제1 프로그램 커맨드, 제1 어드레스 및 제1 보안 데이터를 제1 비휘발성 메모리에 출력하는 제1 메모리 컨트롤러 포함하도록 구성된 시스템 온 칩, 및 노멀 모드에서 제1 비휘발성 메모리, 보안 장치, 시스템 온 칩에 전력을 공급하고, 저전력 모드에서 보안 장치 및 보안 프로세서에 전력을 공급하도록 구성된 파워 컨트롤러를 포함한다.
본 개시의 기술적 사상에 의하면, 저전력 모드로 동작하는 경우에 메인 프로세서를 활성화하지 않고도 보안이 요구되는 데이터를 처리 및 저장함으로써, 전자 장치의 소비 전력을 감소시키는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 제1 비휘발성 메모리를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 제2 비휘발성 메모리를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 노멀 모드를 설명하기 위한 도면이다.
도 5a 및 도 5b는 노멀 모드에서 비휘발성 메모리를 제어하는 실시예들을 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 저전력 모드를 설명하기 위한 도면이다.
도 7은 저전력 모드에서 제2 비휘발성 메모리를 제어하는 실시예를 설명하기 위한 도면이다.
도 8은 전자 장치의 모드가 저전력 모드에서 노멀 모드로 변경된 경우 비휘발성 메모리를 제어하는 실시예를 설명하기 위한 도면이다.
도 9는 본 개시의 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 10은 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다. 본 개시의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 개시를 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 개시는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조 부호를 유사한 구성요소에 대해 사용한다. 본 명세서에서 "제1", "제2"는 용어를 구분하기 위해 사용되는 것일 뿐, 이에 한정되는 것은 아니다.
도 1은 본 개시의 일 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(10)는, 예를 들어 서버(server), 데스크탑 컴퓨터, 키오스크(kiosk) 등과 같은 고정형(stationary) 컴퓨팅 시스템 또는 그것의 서브 시스템일 수 있다. 전자 장치(10)는, 다른 예를 들어, 모바일 폰, 웨어러블 기기, 랩탑 컴퓨터 등과 같은 휴대용(portable) 컴퓨팅 시스템 또는 그것의 서브 시스템일 수 있다. 전자 장치(10)는, 또 다른 예를 들어, 가전, 산업기기, 운송수단 등과 같이, 독립형 컴퓨팅 시스템과 상이한 시스템에 포함되는 서브 시스템일 수도 있다.
일 실시예에서, 전자 장치(10)는 노멀 모드 또는 저전력 모드로 동작할 수 있다. 일 실시예에서, 저전력 모드에서 전자 장치(10)에 포함된 구성 요소들 중 일부 구성 요소들이 비활성화될 수 있다. 본 명세서에서 "비활성화"라는 용어는 "슬립(Sleep)", "유휴(idle)", "대기(standby)", "턴 오프(turn off)", 또는 "저전력(low power)" 등으로 지칭될 수 있다.
일 실시예에서, 전자 장치(10)는 시스템 온 칩(system on chip; SOC, 100), 제1 비휘발성 메모리(200), 보안 장치(300), 및 파워 컨트롤러(400)를 포함할 수 있다.
일 실시예에서, SOC(100)는 버스(BUS), 메인 프로세서(110), 보안 프로세서(120), 제1 메모리 컨트롤러(130), 및 상태 매니저(140)를 포함할 수 있다.
일 실시예에서, SOC(100)는, 전자 장치(10)의 모드(예를 들어, 노멀 모드 또는 저전력 모드)에 따라 활성화 또는 비활성화될 수 있다. 예를 들면, 전자 장치(10)의 모드가 노멀 모드인 경우, SOC(100)는 활성화되고, 활성화된 SOC(100)에 포함된 메인 프로세서(110), 보안 프로세서(120), 제1 메모리 컨트롤러(130), 및 상태 매니저(140)에 전력이 모두 공급될 수 있다. 이때, 활성화된 SOC(100)의 전력 공급 상태는 노멀 모드에 대응되며 제1 상태로 지칭될 수 있다. 다른 예를 들면, 전자 장치(10)의 모드가 저전력 모드인 경우, SOC(100)에 포함된 메인 프로세서(110) 및 제1 메모리 컨트롤러(130)는 비활성화되고, SOC(100)에 포함된 보안 프로세서(120)는 활성화될 수 있다. 이때, SOC(100)의 전력 공급 상태는 저전력 모드에 대응되며 제2 상태로 지칭될 수 있다. 다른 예에서 SOC(100)에 포함된 상태 매니저(140)도 보안 프로세서(120)와 함께 활성화될 수도 있다.
메인 프로세서(110), 보안 프로세서(120), 제1 메모리 컨트롤러(130), 및 상태 매니저(140)는 버스(BUS)를 통해 서로 통신할 수 있다.
메인 프로세서(110)는 SOC(100)의 전반적인 작업들을 처리할 수 있다. 예를 들어, 메인 프로세서(110)는 전자 장치(10)의 파워-온에 응답하여 부팅을 수행할 수 있다. 메인 프로세서(110)는 제1 비휘발성 메모리(200)에 저장된 데이터를 처리할 수 있고, 제1 비휘발성 메모리(200)에 저장된 프로그램 이미지를 SOC(100)로 로드(Load)할 수 있다. 메인 프로세서(110)는 제1 비휘발성 메모리(200)에 저장된 프로그램 이미지를 실행할 수 있다. 예를 들면, 메인 프로세서(110)는 제1 비휘발성 메모리(220)에 저장된 프로그램 이미지를 리드(Read)할 것을 지시하는 제어 커맨드를 제1 메모리 컨트롤러(130)에 제공하고, 제1 메모리 컨트롤러(130)에 의해 리드된 프로그램 이미지에 포함된 일련의 명령어들(instructions)을 실행할 수 있다. 본 명세서에서, 메인 프로세서(110)가 프로그램 이미지에 포함된 명령어들을 실행함으로써 동작을 수행하는 것은, 메인 프로세서(110)가 동작을 수행하는 것으로 지칭될 수 있다.
메인 프로세서(110)는 데이터를 제1 비휘발성 메모리(200)에 저장할 수 있다. 메인 프로세서(110)는 제1 비휘발성 메모리(200)에 데이터를 저장할 것을 지시하는 제어 커맨드를 제1 메모리 컨트롤러(130)에 제공할 수 있다. 이에 따라, 데이터가 제1 메모리 컨트롤러(130)에 의해 제1 비휘발성 메모리(200)에 기입(Write)될 수 있다.
적어도 하나의 메인 프로세서(110)가 SOC(100)에 포함될 수 있다. 복수의 메인 프로세서들은, 각각 동일한 기능을 수행하거나 서로 다른 기능을 수행하는 프로세서일 수 있다. 예를 들면, 복수의 메인 프로세서들 중 어느 하나는 어플리케이션 프로세서(Application processor)이고 다른 하나는 커뮤니케이션 프로세서(Communication processor)일 수 있다. 하지만, 이에 한정되는 것은 아니다. 일 실시예에서 메인 프로세서(110)는 적어도 하나의 코어를 포함할 수 있다.
보안 프로세서(120)는 다양한 목적들을 위하여 보안이 요구되는 데이터를 처리할 수 있다. 예를 들면, 보안 프로세서(120)는 전자 장치(10)의 사용자와 관계된 고유 정보를 안전하게 처리할 수 있고, 전자 장치(10)의 제조자 또는 정당한 공급자와 관계된 고유 정보를 안전하게 처리할 수도 있다. 보안이 요구되는 데이터는 키를 사용하여 암호화될 수 있고, 암호화된 데이터는 키를 사용하여 복호화되어 사용된 후 다시 암호화될 수 있다. 데이터는 임의의 암호 알고리즘(cryptographic algorithm)에 기초하여 암호화되거나 복호화될 수 있다. 일부 실시예들에서, 데이터는 대칭키 암호 알고리즘, 공개키 암호 알고리즘 등에 의해서 암호화되거나 복호화될 수 있다. 대칭키 암호 알고리즘은 예를 들어, DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등을 포함할 수 있다. 공개키 암호 알고리즘은, 예를 들어 RSA(Rivest-Shamir-Adleman), 타원 곡선 기법(elliptic curve technique) 등을 포함할 수 있다.
보안이 요구되는 데이터는 프로그램 이미지의 로딩 정보를 나타내는 로딩 데이터, 및 디지털 서명의 검증 정보를 나타내는 검증 데이터, 및 암호화된 데이터, 사용자 인증 데이터, 메인 이미지 버전 정보, 후보 이미지 버전 정보 등을 포함할 수 있다. 이에 대한 구체적인 내용은 도 2 및 도 3을 참조하여 후술한다. 본 명세서에서는 보안이 요구되는 데이터는 보안 데이터로 지칭될 수 있다.
보안 프로세서(120)는 제1 비휘발성 메모리(220)에 액세스할 수 있다. 구체적으로, 보안 프로세서(120)는 암호화된 데이터를 기입할 것을 요청하는 기입 요청 신호를 메인 프로세서(110)에 제공할 수 있다. 또는, 보안 프로세서(120)는 암호화된 데이터를 리드할 것을 요청하는 리드 요청 신호를 메인 프로세서(110)에 제공할 수 있다. 메인 프로세서(110)는 제어 커맨드를 제1 메모리 컨트롤러(130)에 제공하고, 제1 메모리 컨트롤러(130)는 제어 커맨드에 응답하여 제1 비휘발성 메모리(220)에 액세스할 수 있다.
보안 프로세서(120)는 보안 장치(300)에 배타적으로 액세스할 수 있다. 구체적으로, 보안 프로세서(120)는 암호화된 데이터를 기입할 것을 요청하는 기입 요청 신호를 메모리 프로세서(310)에 제공할 수 있다. 또는, 보안 프로세서(120)는 제2 비휘발성 메모리(330)에 저장된 암호화된 데이터를 리드할 것을 요청하는 리드 요청 신호를 메모리 프로세서(310)에 제공할 수 있다. 메모리 프로세서(310)는 제어 커맨드를 제2 메모리 컨트롤러(320)에 제공하고, 제2 메모리 컨트롤러(320)는 제어 커맨드에 응답하여 제2 비휘발성 메모리(330)에 액세스할 수 있다.
보안 프로세서(120)는 파워 컨트롤러(400)로부터 SOC(100)에 공급되는 전력과 별도로 전력을 공급받을 수 있다. 이는 전자 장치(10)의 모드가 저전력 모드인 경우에도 보안 프로세서(120)가 활성화되기 위함이다. 이에 의하면, 보안 프로세서(120)는 독립적으로 동작을 수행할 수 있다.
보안 프로세서(120)는 메인 프로세서(110)에 의해서 실행되는 프로그램 이미지에 사용되는 키를 생성할 수 있다. 예를 들면, 보안 프로세서(120)는, 전자 장치(10)의 사용자를 식별하기 위한 사용자 식별 정보의 암호화 또는 복호화를 위하여 사용되는 키를 생성할 수 있다. 또한, 보안 프로세서(120)는, 전자 장치(10)의 소프트웨어 업데이트를 위한 시스템 식별 정보의 암호화 또는 복호화를 위하여 사용되는 키를 생성할 수도 있다. 보안 프로세서(120)는 생성된 키를 버스(BUS)를 통해 메인 프로세서(110)에 제공할 수 있다.
본 명세서에서, 데이터 보안을 위하여 키를 생성하는 동작, 키를 이용하여 보안이 요구되는 데이터를 암호화하는 동작, 또는 키를 사용하여 암호화된 데이터를 복호화하는 동작은 보안 동작으로 지칭될 수 있다. 즉, 보안 프로세서(120)는 보안 동작을 수행하여 보안 데이터를 생성할 수 있다.
보안 프로세서(120)는 보안이 요구되는 데이터 및/또는 암호 알고리즘에 사용되는 키(또는 비밀키)에 대한 보안을 강화하기 위하여, SOC(100)의 다른 구성 요소들, 예컨대 메인 프로세서(110)와 물리적으로 격리된 영역에 형성될 수 있다. 보안 프로세서(120)는 SOC(100)의 다른 구성요소들로부터 액세스가 불가능한 구성요소를 포함할 수 있고, 독립적으로 동작을 수행할 수 있다. 예를 들면, 메인 프로세서(110)에 의해서 실행되는 보안 프로그램(또는 보안 소프트웨어)도 보안 프로세서(120)에 포함된 구성요소들에 대한 접근이 제한될 수 있다. 이에 따라, 보안 프로세서(120)는 전자 장치(10)의 보안 레벨을 크게 향상 시킬 수 있다.
일 실시예에서, 보안 프로세서(120)의 소비 전력은, 메인 프로세서(110)의 소비 전력보다 낮을 수 있다.
일 실시예에서, 보안 프로세서(120)는 프로세싱 코어(121), 상태 레지스터(122), 및 내부 메모리(123)를 포함할 수 있다. 본 명세서에서, 보안 프로세서(120)에 포함된 구성 요소들 각각에 의해서 수행되는 동작은 보안 프로세서(120)에 의해서 수행되는 것으로 지칭될 수 있다.
프로세싱 코어(121)는 명령어를 실행하도록 구성된 임의의 프로세싱 엘리먼트(processing element)일 수 있다. 프로세싱 코어(121)는 내부 메모리(123)에 저장된 일련의 명령어들을 실행함으로써 보안 동작을 수행할 수 있다. 예를 들면, 프로세싱 코어(121)는 암호 알고리즘에 사용되는 키를 생성할 수 있다. 또는 프로세싱 코어(121)는 키를 이용하여 보안이 요구되는 데이터를 암호화하여 암호화된 데이터를 생성할 수 있다. 또는 프로세싱 코어(121)는 키를 사용하여 암호화된 데이터를 복호화하여 데이터(또는 복호화된 데이터)를 생성할 수 있다. 다른 예를 들면, 프로세싱 코어(121)는 후보 펌웨어에 대한 디지털 서명을 검증하거나, 버전 정보를 확인할 수 있다.
적어도 하나의 프로세싱 코어(121)가 보안 프로세서(120)에 포함될 수 있다. 본 명세서에서, 하나의 프로세싱 코어(121)에 의해서 실행되는 명령어들을 포함하는 프로그램 이미지는 보안 펌웨어(firmware) 또는 보안 펌웨어 이미지로서 지칭될 수 있다. 프로세싱 코어(121)는 중앙 처리 장치(CPU; central processing unit)로 구현될 수 있다. 하지만, 이에 한정되는 것은 아니다.
일 실시예에서, 프로세싱 코어(121)는 상태 레지스터(122)에 저장된 파워 플래그를 모니터링함으로써 SOC(100)의 전력 공급 상태를 확인할 수 있다. 그리고, 프로세싱 코어(121)는 SOC(100)의 전력 공급 상태에 따라 제1 비휘발성 메모리(200)에 액세스하거나 제2 비휘발성 메모리(330)에 액세스할 수 있다. 구체적으로 예를 들면, SOC(100)의 전력 공급 상태가 제1 상태인 경우, 프로세싱 코어(121)는 제1 비휘발성 메모리(200) 또는 제2 비휘발성 메모리(330)에 액세스할 수 있다. 다른 예를 들면, SOC(100)의 전력 공급 상태가 제2 상태인 경우, 프로세싱 코어(121)는 제2 비휘발성 메모리(330)에만 액세스할 수 있다.
일 실시예에서, 저전력 모드에서(또는 제2 상태에서), 제2 비휘발성 메모리(330)는 보안 데이터를 저장할 수 있다. 이 경우, 프로세싱 코어(121)는 보안 데이터를 리드하기 위해 제2 비휘발성 메모리(330)에 액세스할 수 있다. 그리고, 프로세싱 코어(121)는 제2 비휘발성 메모리(330)에 보안 데이터를 내부 메모리(123)에 로드할 수 있다. 보안 데이터가 제2 비휘발성 메모리(330)에 저장된 이후 전자 장치(10)의 모드가 노멀 모드로 변경된 경우(또는 SOC(100)의 전력 공급 상태가 제2 상태에서 제1 상태로 변경된 경우), 프로세싱 코어(121)는 제2 비휘발성 메모리(330)에 저장된 보안 데이터 또는 내부 메모리(123)에 로드된 보안 데이터를 저장하도록 제1 비휘발성 메모리(200)에 액세스할 수 있다.
상태 레지스터(122)는 SOC(100)의 전력 공급 상태에 관한 정보를 저장할 수 있다. 상태 레지스터(122)는 상태 매니저(140) 또는 프로세싱 코어(121)에 의해 액세스될 수 있다. 구체적으로 예를 들면, 상태 매니저(140)는 파워 플래그를 저장하기 위해 상태 레지스터(122)에 액세스할 수 있다. 또는 프로세싱 코어(121)는 파워 플래그에 의해 지시되는 전력 공급 상태를 확인하기 위해 상태 레지스터(122)에 액세스할 수 있다. 상태 레지스터(122)는 메일박스(mailbox) 또는 메일박스 하드웨어로 구현될 수 있다. 상태 매니저(140)는 APM으로 구현될 수 있다.
SOC(100)의 전력 공급 상태는 파워 플래그의 논리 레벨에 의해 표현될 수 있다. 예를 들면, 파워 플래그는 온(On) 또는 오프(Off)로 나타낼 수 있다. 또는, 파워 플래그는 로직 하이 레벨(Logic high level) 또는 로직 로우 레벨(Logic low level)로 나타낼 수 있다. 또는, 파워 플래그는 "1" 또는 "0"으로 나타낼 수 있다. 온, 로직 하이 레벨, 및 "1"은 SOC(100)의 전력 공급 상태가 제1 상태, 즉 SOC(100)에 포함된 구성 요소들 모두에 전력이 공급됨을 가리킬 수 있다. 오프, 로직 로우 레벨, 및 "0"은 SOC(100)의 전력 공급 상태가 제2 상태, 즉 보안 프로세서(120)에 전력이 공급됨을 가리킬 수 있다. 하지만, 이에 한정되는 것은 아니며, 서로 반대의 경우도 본 실시예에 해당될 수 있다.
내부 메모리(123)는 보안 프로세서(120)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들면, 내부 메모리(123)는, 보안 펌웨어 이미지가 로딩되거나 프로세싱 코어(121)에 의해서 처리되는 데이터를 임시 저장하는 RAM(Random Access Memory)를 포함할 수 있다. 다른 예를 들면, 내부 메모리(123)는 적어도 하나의 프로세싱 코어(121)에 의해서 실행될 수 있는 명령어들을 저장하는 ROM(Read Only Memory)을 포함할 수 있다. 또 다른 예를 들면, 내부 메모리(123)는 리드된 프로그램 이미지의 적어도 일부를 저장할 수도 있다.
일 실시예에서, 보안 프로세서(120)는 직접 메모리 액세스(Direct Memory Access)를 수행하는 DMA 컨트롤러, 미리 정의된 동작을 고속으로 수행하도록 설계된 하드웨어 가속기 등을 더 포함할 수 있다. 여기서, 하드웨어 가속기는 암호 엔진(crypto engine)을 포함할 수 있다. 암호 엔진(crypto engine)은 리드된 프로그램 이미지의 적어도 일부의 해시(hash)를 생성하는 해시 함수를 구현하거나, 데이터의 암호화 및/또는 복호화를 수행하거나, 또는 프로그램 이미지의 디지털 서명을 검증할 수 있다.
일 실시예에서, 보안 프로세서(120)는 키 페어(key pair) 등을 생성하기 위한 난수 생성기(random number generator), 하드웨어 키를 제공하는 구성 요소 등을 더 포함할 수 있다.
제1 메모리 컨트롤러(130)는 제1 비휘발성 메모리(200)의 전반적인 동작을 제어할 수 있다. 제1 메모리 컨트롤러(130)는 메인 프로세서(110)의 쓰기 요청, 리드 요청, 또는 소거 요청에 응답하여 프로그램 동작(또는 쓰기 동작), 리드 동작 또는 소거 동작을 수행하도록 제1 비휘발성 메모리(200)를 제어할 수 있다. 프로그램 동작 시, 제1 메모리 컨트롤러(130)는 프로그램 커맨드, 물리 어드레스, 및 데이터를 제1 비휘발성 메모리(200)에 제공할 수 있다. 리드 동작 시, 제1 메모리 컨트롤러(130)는 리드 커맨드 및 물리 어드레스를 제1 비휘발성 메모리(200)에 제공할 수 있다. 소거 동작 시, 제1 메모리 컨트롤러(130)는 이레이즈 커맨드 및 물리 어드레스를 제1 비휘발성 메모리(200)에 제공할 수 있다. 제1 비휘발성 메모리(200)가 플래시 메모리로 구현되는 경우, 제1 메모리 컨트롤러(130)는 플래시 메모리 인터페이스를 제공하는 플래시 컨트롤러로 구현될 수 있다. 제1 메모리 컨트롤러(130)와 제1 비휘발성 메모리(200)는 통신 채널을 통해서 상호 통신할 수 있다. 예를 들면, 제1 비휘발성 메모리(200)가 시리얼 인터페이스를 지원할 수 있고, 제1 메모리 컨트롤러(130)는, I2C(Inter-Integrated Circuit), SPI(Serial Peripheral Interface) 등과 같은 USI(Universal Serial Interface)를 제공할 수 있다.
상태 매니저(140)는 SOC(100)의 전력 공급 상태를 나타내는 파워 플래그를 출력할 수 있다. 상태 매니저(140)는 파워 컨트롤러(400)로부터 전력을 계속 공급받을 수 있다.
일 실시예에서, 전자 장치(10)의 모드가 노멀 모드에서 저전력 모드로 변경된 경우, 상태 매니저(140)는 SOC(100)의 전력 공급 상태가 제2 상태인 것을 나타내는 파워 플래그, 예를 들어 로직 로우 레벨을 갖는 파워 플래그를 상태 레지스터(122)에 저장할 수 있다.
다른 실시예에서, 전자 장치(10)의 모드가 저전력 모드에서 노멀 모드로 변경된 경우, 상태 매니저(140)는 SOC(100)의 전력 공급 상태가 제1 상태인 것을 나타내는 파워 플래그, 예를 들어 로직 하이 레벨을 갖는 파워 플래그를 상태 레지스터(122)에 저장할 수 있다.
제1 비휘발성 메모리(200)는 제1 메모리 컨트롤러(130)로부터 커맨드 및 어드레스를 수신하고, 메모리 셀들 중 어드레스에 의해 선택된 메모리 셀을 액세스할 수 있다. 제1 비휘발성 메모리(200)는 어드레스에 의해 선택된 메모리 셀에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 여기서, 커맨드는, 예를 들어 프로그램 커맨드, 리드 커맨드, 또는 이레이즈 커맨드일 수 있고, 커맨드가 지시하는 동작은 예를 들어 프로그램 동작, 리드 동작 또는 소거 동작일 수 있다. 제1 비휘발성 메모리(200)는, 예를 들어, 플래시 메모리(flash memory)일 수 있다. 플래시 메모리에는, 예를 들어 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노어 플래시 메모리(NOR flash memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등이 포함될 수 있다.
일 실시예에서, 제1 비휘발성 메모리(200)는, 전자 장치(10)의 모드(예를 들어, 노멀 모드 또는 저전력 모드)에 따라 활성화 또는 비활성화될 수 있다. 예를 들면, 전자 장치(10)의 모드가 노멀 모드인 경우, 제1 비휘발성 메모리(200)는 활성화될 수 있다. 다른 예를 들면, 전자 장치(10)의 모드가 저전력 모드인 경우, 제1 비휘발성 메모리(200)는 비활성화될 수 있다.
보안 장치(300)는 보안 프로세서(120)에 의해서 배타적으로 액세스될 수 있고, 보안 장치(300) 및 보안 프로세서(120)는 보안 채널을 통해서 상호 통신할 수 있다. 여기서, 보안 채널은 보안이 요구되는 통신 채널일 수 있다. 보안 장치(300)는 보안 프로세서(120)에 의해서 실행되는 프로그램 이미지를 저장할 수 있다. 보안 장치(300)는 보안 프로세서(120)가 키를 생성하는데 필요한 정보를 저장할 수 있다. 보안 장치(300)는 보안 프로세서(120)에 의해서 실행되는 프로그램 이미지 또는 보안 프로세서(120)가 키를 생성하는데 필요한 정보를 보안 프로세서(120)에 제공할 수 있다. 보안 프로세서(120)가 전자 장치(10)의 모드와 무관하게 독립적으로 동작하므로, 보안 장치(300)도 보안 프로세서(120)와 함께 동작할 수 있다.
일 실시예에서, 보안 장치(300)는 메모리 프로세서(310), 제2 메모리 컨트롤러(320), 및 제2 비휘발성 메모리(330)를 포함할 수 있다.
메모리 프로세서(310)는 프로세싱 코어(121)와 보안 채널을 통해서 통신할 수 있다. 메모리 프로세서(310)는 프로세싱 코어(121)의 요청 신호에 응답하여, 제어 커맨드를 생성할 수 있다. 메모리 프로세서(310)는 생성된 제어 커맨드를 제2 메모리 컨트롤러(320) 제공할 수 있다. 메모리 프로세서(310)는 제2 메모리 컨트롤러(320)로부터 수신된 데이터를 프로세싱 코어(121)에 제공할 수도 있다. 메모리 프로세서(310)는 CPU로 구현될 수 있다. 하지만, 이에 한정되는 것은 아니다.
제2 메모리 컨트롤러(320)는, 제1 메모리 컨트롤러(130)와 유사하게, 메모리 프로세서(310)의 쓰기 요청, 리드 요청, 또는 소거 요청에 응답하여 프로그램 동작, 리드 동작 또는 소거 동작을 수행하도록 제2 비휘발성 메모리(330)를 제어할 수 있다. 제2 메모리 컨트롤러(320)는, 사용자 승인이 활성화되고, 사용자로부터 입력된 사용자 인증 정보(User Authorization information)를 제2 비휘발성 메모리(330)에 기입할 수 있다. 여기서, 사용자 인증 정보는, 사용자 ID(identification)와 패스워드(password) 및 사용자의 생체 정보(예를 들어, 지문 정보, 홍채 정보, 안면 인식 정보, 목소리 정보, 정맥 정보)를 포함할 수 있다.
제2 비휘발성 메모리(330)는 보안이 요구되는 데이터, 즉 보안 데이터를 저장할 수 있다. 제2 비휘발성 메모리(330)는, 제1 비휘발성 메모리(200)와 유사하게, 제2 메모리 컨트롤러(320)로부터 커맨드 및 어드레스를 수신하고, 메모리 셀들 중 어드레스에 의해 선택된 메모리 셀을 액세스할 수 있다. 제2 비휘발성 메모리(330)는, 예를 들어, 플래시 메모리일 수 있다.
일 실시예에서, 제2 비휘발성 메모리(330)의 저장 용량은, 제1 비휘발성 메모리(200)의 저장 용량보다 작을 수 있다.
일 실시예에서, 제2 비휘발성 메모리(330)의 소비 전력은, 제1 비휘발성 메모리(200)의 소비 전력보다 낮을 수 있다.
파워 컨트롤러(400)는 외부로부터 전자 장치(10)에 공급되는 전력을 전반적으로 제어할 수 있다. 파워 컨트롤러(400)는 SOC(100), 제1 비휘발성 메모리(200), 및 보안 장치(300) 각각에 공급되는 전력을 조절할 수 있다. 파워 컨트롤러(400)는 SOC(100)에 포함된 보안 프로세서(120)에 공급되는 전력을 SOC(100)와 별도로 제공할 수 있다. 일 실시예에서, 파워 컨트롤러(400)는 전자 장치(10)의 모드에 따라 SOC(100) 및 제1 비휘발성 메모리(200)에 공급되는 전력을 제어할 수 있다. 파워 컨트롤러(400)는 PMIC(Power Management Integrated Circuit)으로 지칭될 수 있다.
본 명세서에서, SOC(100)는 버스(BUS), 메인 프로세서(110), 제1 메모리 컨트롤러(130), 및 상태 매니저(140)는 제1 회로들로 지칭되고, 보안 프로세서(120)는 제2 회로로 지칭될 수 있다.
도 2는 본 개시의 일 실시예에 따른 제1 비휘발성 메모리를 설명하기 위한 도면이고, 도 3은 본 개시의 일 실시예에 따른 제2 비휘발성 메모리를 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 제1 비휘발성 메모리(200)는 제1 영역(210) 및 제2 영역(220)을 포함할 수 있다. 제1 영역(210)은 비보안 영역으로 지칭될 수 있다. 제2 영역(220)은 보안 영역으로 지칭될 수 있다.
제1 영역(210)에는 적어도 하나의 프로그램 이미지가 저장될 수 있다. 도 2를 참조하여 예를 들면, 제1 내지 제3 프로그램 이미지들(IMG 1, IMG 2, IMG 3)이 제1 영역(210)에 저장될 수 있다. 하지만, 이에 한정되는 것은 아니다.
프로그램 이미지는 이진 데이터(Binary data)를 포함할 수 있다. 도 2를 참조하여 예를 들면, 제1 프로그램 이미지(IMG1)는 제1 이진 데이터(BD 1)를 포함하고, 제2 프로그램 이미지(IMG2)는 제2 이진 데이터(BD 2)를 포함하며, 제3 프로그램 이미지(IMG3)는 제3 이진 데이터(BD 3)만을 포함할 수 있다. 이진 데이터는 메인 프로세서(110)에 의해서 실행되는 명령어들로 구성될 수 있고, 예컨대 프로그래밍 언어로 작성된 소스 코드를 컴파일(compile)함으로써 생성될 수 있다. 일부 실시예들에서, 이진 데이터는 명령어들뿐만 아니라 명령어들에 의해서 참조되는 데이터를 포함할 수도 있다. 이진 데이터는, 이진 이미지, 이진 코드, 이진 코드 이미지로 지칭될 수도 있다.
프로그램 이미지는 디지털 서명(또는 전자 서명)을 포함할 수 있다. 도 2를 참조하여 예를 들면, 제1 프로그램 이미지(IMG1)는 제1 디지털 서명(SIG 1)을 포함하고, 제2 프로그램 이미지(IMG2)는 제2 디지털 서명(SIG 2)을 포함할 수 있다. 디지털 서명은 프로그램 이미지의 진정성(authenticity), 즉 프로그램 이미지가 인증된(authenticated) 자에 의해 생성된 것임을 판정하는데 사용될 수 있다. 도 2를 참조하여 예를 들면, 제1 디지털 서명(SIG 1)은 제1 프로그램 이미지(IMG1)의 진정성을 판정하는데 사용될 수 있다. 공통의 소스로부터 생성된 다이제스트(digest)들로서, 디지털 서명 및 검증 정보가 생성될 수 있고, 디지털 서명은 검증 정보에 의해서 검증될 수 있다. 예를 들면, 개인 키(private key) 및 공개 키(public key)로 구성된 키 페어(key pair)가 생성될 수 있고, 디지털 서명은 개인 키로부터 생성될 수 있으며, 검증 정보로서 공개 키(public key)에 의해서 수학적 알고리즘에 기초하여 디지털 서명이 검증될 수 있다.
보안 프로세서(120)는 디지털 서명을 검증함으로써 프로그램 이미지의 진정성을 판정할 수 있다. 이를 위하여, 보안 프로세서(120)는 검증 정보를 획득할 수 있고, 검증 정보에 기초하여 디지털 서명을 검증할 수 있다. 일부 실시예들에서, SOC(100) 및/또는 전자 장치(10)의 제조과정에서, 검증 정보로서 공개 키 및/또는 공개 키의 다이제스트가 보안 프로세서(120)에 주입(provisioning)될 수 있고, 보안 프로세서(120)는 주입된 공개 키 및/또는 공개 키의 다이제스트에 기초하여 디지털 서명을 검증할 수 있다. 하지만, 이에 한정되는 것은 아니다. 검증을 통과한 디지털 서명을 포함하는 프로그램 이미지, 즉 인증된(authenticated) 프로그램 이미지는 신뢰할 수 있고, 메인 프로세서(110)는 인증된 프로그램 이미지를 실행할 수 있다.
보안 프로세서(120)는 제1 비휘발성 메모리(200)의 제1 영역(210)으로부터 디지털 서명을 리드할 수 있고, 리드된 디지털 서명에 기초하여 키를 생성할 수 있다. 예를 들면, 보안 프로세서(120)는 키를 요청한 프로그램 이미지에 포함된 디지털 서명에 기초하여 키를 생성할 수도 있고, 키를 요청한 프로그램 이미지와 상이한 프로그램 이미지에 포함된 디지털 서명에 기초하여 키를 생성할 수도 있다.
제2 영역(220)에는 로딩 정보(LDI), 검증 정보(VFI), 암호 정보(EDI)가 저장될 수 있다. 일 실시예에서, 로딩 정보(LDI), 검증 정보(VFI), 암호 정보(EDI)는 저장 장치(10)의 모드가 노멀 모드인 경우에 제1 비휘발성 메모리(200)에 저장될 수 있다.
로딩 정보(LDI)는 프로그램 이미지의 식별자 및 이에 대응하는 어드레스 및 크기를 포함할 수 있다. 도 2를 참조하여 예를 들면, 로딩 정보(LDI)는 제1 프로그램 이미지(IMG 1)의 제1 식별자(ID 1) 및 이에 대응하는 제1 어드레스(ADD 1) 및 제1 크기(SIZE 1)를 포함할 수 있고, 제1 프로그램 이미지(IMG 1)는 제1 비휘발성 메모리(200)의 제1 어드레스(ADD 1)에서 시작하고 제1 크기(SIZE 1)에 대응하는 영역에 저장될 수 있다. 일부 실시예들에서, 제1 크기(SIZE 1)는 제1 어드레스(ADD 1)로부터 제1 프로그램 이미지(IMG 1)의 종료(end) 어드레스까지의 어드레스 오프셋일 수 있다. 일부 실시예들에서, 로딩 정보(LDI)는 제1 크기(SIZE 1) 대신 제1 프로그램 이미지의 종료 어드레스를 포함할 수도 있다. 유사하게, 로딩 정보(LDI)는 제2 프로그램 이미지의 제2 식별자(ID 2) 및 이에 대응하는 제2 어드레스(ADD 2) 및 제2 크기(SIZE 2)를 포함할 수 있다. 보안 프로세서(120)는 제1 비휘발성 메모리(200)의 제2 영역(220)으로부터, 프로그램 이미지의 식별자에 대응하는 어드레스 및 크기를 획득할 수 있다.
검증 정보(VFI)는 프로그램 이미지의 식별자 및 이에 대응하는 공개 키를 포함할 수 있다. 도 2를 참조하여 예를 들면, 검증 정보(VFI)는 제1 프로그램 이미지(IMG 1)의 제1 식별자(ID 1) 및 이에 대응하는 제1 공개 키(PUB KEY 1)를 포함할 수 있고, 제1 프로그램 이미지(IMG 1)에 포함된 제1 디지털 서명(SIG 1)은 제1 공개 키(PUB KEY 1)에 의해서 검증될 수 있다. 유사하게, 검증 정보(VFI)는 제2 프로그램 이미지의 제2 식별자(ID 2) 및 이에 대응하는 제2 공개 키(PUB KEY 2)를 포함할 수 있고, 제2 프로그램 이미지에 포함된 디지털 서명은 제2 공개 키(PUB KEY 2)에 의해서 검증될 수 있다. 보안 프로세서(120)는 제1 비휘발성 메모리(200)의 제2 영역(220)으로부터, 프로그램 이미지의 식별자 및 이에 대응하는 공개 키를 획득할 수 있다.
암호 정보(EDI)는 암호화된 데이터를 포함할 수 있다. 도 2를 참조하여 예를 들면, 암호 정보(EDI)는 제1 암호화된 데이터(ED 1) 및 제2 암호화된 데이터(ED 2)를 포함할 수 있다.
일 실시예에서, 보안 프로세서(120)는 로딩 정보(LDI), 검증 정보(VFI), 및/또는 암호 정보(EDI)를 메인 프로세서(110)로부터 획득할 수 있다. 또는 보안 프로세서(120)는, 제1 비휘발성 메모리(200)에 로딩 정보(LDI), 검증 정보(VFI), 및/또는 암호 정보(EDI)를 기입하기 위해, 로딩 정보(LDI), 검증 정보(VFI), 및/또는 암호 정보(EDI)를 메인 프로세서(110)에 제공할 수 있다.
도 3을 참조하면, 제2 비휘발성 메모리(330)에는 로딩 정보(LDI), 검증 정보(VFI), 암호 정보(EDI)가 저장될 수 있다. 일 실시예에서, 로딩 정보(LDI), 검증 정보(VFI), 암호 정보(EDI)는 저장 장치(10)의 모드가 노멀 모드인 경우에 제2 비휘발성 메모리(330)에 저장될 수 있다. 다른 실시예에서, 로딩 정보(LDI), 검증 정보(VFI), 암호 정보(EDI)는 저장 장치(10)의 모드가 저전력 모드인 경우에 제2 비휘발성 메모리(330)에 저장될 수 있다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 노멀 모드를 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(10)는 노멀 모드로 동작할 수 있다. 이 경우, 파워 컨트롤러(400)는 SOC(100), 보안 프로세서(120), 제1 비휘발성 메모리(200), 및 보안 장치(300)에 전력을 공급할 수 있다.
상태 매니저(140)는 온(ON)을 나타내는 파워 플래그(FLAG)를 버스(BUS)를 통해 상태 레지스터(122)에 저장할 수 있다.
상태 레지스터(122)에 저장된 파워 플래그(FLAG)는 SOC(100)의 전력 공급 상태가 제1 상태인 것을 나타낼 수 있다.
프로세싱 코어(121)는, 보안 동작을 수행하기 위해, 상태 레지스터(122)를 모니터링할 수 있다. 모니터링 결과, 프로세싱 코어(121)는 SOC(100)의 전력 공급 상태가 제1 상태인 것을 확인할 수 있다.
도 5a 및 도 5b는 노멀 모드에서 비휘발성 메모리를 제어하는 실시예들을 설명하기 위한 도면들이다. 구체적으로 도 5a는 노멀 모드에서 보안 프로세서(120)가 제1 비휘발성 메모리(200)에 액세스하는 실시예를 설명하기 위한 도면이고, 도 5b는 노멀 모드에서 보안 프로세서(120)가 제2 비휘발성 메모리(320)에 액세스하는 실시예를 설명하기 위한 도면이다.
도 5a를 참조하면, 노멀 모드에서, 보안 프로세서(120)는 버스(BUS)를 통해 요청 신호(REQ)를 메인 프로세서(110)에 제공할 수 있다. 여기서, 요청 신호(REQ)는, 예를 들어, 전술한 기입 요청 신호 또는 리드 요청 신호일 수 있다. 요청 신호(REQ)가 기입 요청 신호인 경우, 보안 프로세서(120)는 보안 데이터, 예를 들면 암호화된 데이터, 검증 데이터 등을 요청 신호(REQ)와 함께 메인 프로세서(110)에 제공할 수 있다.
메인 프로세서(110)는 요청 신호(REQ)에 응답하여 요청 신호(REQ)에 따른 동작을 수행할 것을 지시하는 제어 커맨드(CCMD)를 버스(BUS)를 통해 제1 메모리 컨트롤러(130)에 제공할 수 있다. 요청 신호(REQ)에 따른 동작은, 예를 들면 프로그램 동작 또는 리드 동작일 수 있다.
제1 메모리 컨트롤러(130)는 제어 커맨드(CCMD)에 응답하여 커맨드 및 어드레스를 제1 비휘발성 메모리(200)에 제공할 수 있다. 요청 신호(REQ)에 따른 동작이 프로그램 동작인 경우, 제1 메모리 컨트롤러(130)는 보안 데이터를 추가적으로 제1 비휘발성 메모리(200)에 제공할 수도 있다.
제1 비휘발성 메모리(200)는 보안 데이터를 저장하거나, 저장된 보안 데이터를 제1 메모리 컨트롤러(130)에 제공할 수 있다. 제1 비휘발성 메모리(200)가 저장된 보안 데이터를 제1 메모리 컨트롤러(130)에 제공하면, 제1 메모리 컨트롤러(130)는 버스(BUS)를 통해 보안 데이터를 보안 프로세서(120)에 제공할 수 있다.
도 5b를 참조하면, 저전력 모드에서, 보안 프로세서(120)는 보안 채널을 통해 요청 신호(REQ)를 메모리 프로세서(310)에 제공할 수 있다. 여기서, 요청 신호(REQ)는, 예를 들어, 전술한 기입 요청 신호 또는 리드 요청 신호일 수 있다.
메모리 프로세서(310)는 요청 신호(REQ)에 따른 동작을 수행할 것을 지시하는 제어 커맨드(CCMD)를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 요청 신호(REQ)에 따른 동작은, 예를 들면 프로그램 동작 또는 리드 동작일 수 있다.
제2 메모리 컨트롤러(320)는 제어 커맨드(CCMD)에 응답하여 커맨드 및 어드레스를 제2 비휘발성 메모리(330)에 제공할 수 있다. 요청 신호(REQ)에 따른 동작이 프로그램 동작인 경우, 제2 메모리 컨트롤러(320)는 보안 데이터를 추가적으로 제2 비휘발성 메모리(330)에 제공할 수도 있다.
제2 비휘발성 메모리(330)는 보안 데이터를 저장하거나, 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 제2 비휘발성 메모리(330)가 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공하면, 제2 메모리 컨트롤러(320)는 보안 채널을 통해 보안 데이터를 보안 프로세서(120)에 제공할 수 있다.
보안 프로세서(120)가 도 5a에 도시된 바와 같이 제1 비휘발성 메모리(200)에 액세스하는 동작과 보안 프로세서(120)가 도 5b에 도시된 바와 같이 제2 비휘발성 메모리(320)에 액세스하는 동작은 선택적으로 실행될 수 있다. 보안 프로세서(120)가 도 5a에 도시된 바와 같이 제1 비휘발성 메모리(200)에 액세스하는 동작의 경우, 메인 프로세서(110) 및 제1 메모리 컨트롤러(130)가 필요하다. 메인 프로세서(110)는 프로그램 이미지에 포함된 명령어를 수행하는 등의 다른 프로세스를 수행할 수 있으므로, 메인 프로세서(110)의 동작에 따른 레이턴시(latency)가 발생할 수 있다. 반면에, 보안 프로세서(120)가 도 5b에 도시된 바와 같이 제2 비휘발성 메모리(320)에 액세스하는 동작의 경우, 보안 프로세서(120)와 보안 장치(300)가 서로 통신하고 있으므로, 메인 프로세서(110)의 동작에 따른 레이턴시(latency)가 발생하지 않을 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 저전력 모드를 설명하기 위한 도면이다.
도 6을 참조하면, 전자 장치(10)는 저전력 모드로 동작할 수 있다. 이 경우, 파워 컨트롤러(400)는 보안 프로세서(120) 및 보안 장치(300)에 전력을 공급할 수 있다. 파워 컨트롤러(400)는 상태 매니저(140)에도 전력을 공급할 수도 있다.
SOC(100)에 포함된 메인 프로세서(110) 및 제1 메모리 컨트롤러(130)는 비활성화될 수 있다. 또한, 제1 비휘발성 메모리(200)도 비활성화될 수 있다.
상태 매니저(140)는 오프(OFF)을 나타내는 파워 플래그(FLAG)를 버스(BUS)를 통해 상태 레지스터(122)에 저장할 수 있다.
상태 레지스터(122)에 저장된 파워 플래그(FLAG)는 SOC(100)의 전력 공급 상태가 제2 상태인 것을 나타낼 수 있다.
프로세싱 코어(121)는, 보안 동작을 수행하기 위해, 상태 레지스터(122)를 모니터링할 수 있다. 모니터링 결과, 프로세싱 코어(121)는 SOC(100)의 전력 공급 상태가 제2 상태인 것을 확인할 수 있다.
도 7은 저전력 모드에서 제2 비휘발성 메모리를 제어하는 실시예를 설명하기 위한 도면이다.
도 7을 참조하면, 저전력 모드에서, SOC(100)에 포함된 메인 프로세서(110) 및 제1 메모리 컨트롤러(130)는 비활성화될 수 있다. 또한, 제1 비휘발성 메모리(200)도 비활성화될 수 있다.
도 5b에 도시된 실시예와 유사하게, 저전력 모드에서, 보안 프로세서(120)는 보안 채널을 통해 요청 신호(REQ)를 메모리 프로세서(310)에 제공할 수 있다. 메모리 프로세서(310)는 요청 신호(REQ)에 따른 동작을 수행할 것을 지시하는 제어 커맨드(CCMD)를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 제2 메모리 컨트롤러(320)는 제어 커맨드(CCMD)에 응답하여 커맨드 및 어드레스를 제2 비휘발성 메모리(330)에 제공할 수 있다. 제2 비휘발성 메모리(330)는 보안 데이터를 저장하거나, 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 제2 비휘발성 메모리(330)가 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공하면, 제2 메모리 컨트롤러(320)는 보안 채널을 통해 보안 데이터를 보안 프로세서(120)에 제공할 수 있다.
보안 프로세서(120)는 제2 메모리 컨트롤러(320)로부터 제공된 보안 데이터를 내부 메모리(123)에 로드할 수 있다.
전술한 바에 의하면, 노멀 모드에서 저전력 모드로 동작하는 경우에 메인 프로세서를 활성화하지 않고도 보안이 요구되는 데이터를 처리 및 저장함으로써, 전자 장치(10) 또는 SOC(100)의 소비 전력을 감소시키는 효과가 있다.
전술한 바에 의하면, 노멀 모드에서 저전력 모드로 동작하는 경우에 보안이 요구되는 데이터를 처리함으로써, 전자 장치의 보안 레벨을 강화하는 효과가 있다.
도 8은 전자 장치의 모드가 저전력 모드에서 노멀 모드로 변경된 경우 비휘발성 메모리를 제어하는 실시예를 설명하기 위한 도면이다.
도 8을 참조하면, 전자 장치(10)의 모드가 저전력 모드에서 노멀 모드로 변경될 수 있다. 이 경우, 파워 컨트롤러(400)는 비활성화된 SOC(100) 및 비활성화된 제1 비휘발성 메모리(200)에 전력을 다시 공급할 수 있다. SOC(100)의 전력 공급 상태는 제1 상태일 수 있다. 상태 매니저(140)는 온(ON)을 나타내는 파워 플래그(FLAG)를 버스(BUS)를 통해 상태 레지스터(122)에 저장할 수 있다. 프로세싱 코어(121)는, 상태 레지스터(122)를 모니터링하고, SOC(100)의 전력 공급 상태가 제1 상태인 것을 확인할 수 있다.
일 실시예에서, 노멀 모드에서, 보안 프로세서(120)는 내부 메모리(123)에 로드된 보안 데이터를 저장할 것을 요청하는 요청 신호(REQ)와 보안 데이터를 메인 프로세서(110)에 제공할 수 있다. 메인 프로세서(110)는 요청 신호(REQ)에 응답하여 프로그램 동작을 지시하는 제어 커맨드(CCMD)를 버스(BUS)를 통해 제1 메모리 컨트롤러(130)에 제공할 수 있다. 요청 신호(REQ)에 따른 동작은, 예를 들면 프로그램 동작 또는 리드 동작일 수 있다. 제1 메모리 컨트롤러(130)는 제어 커맨드(CCMD)에 응답하여 프로그램 커맨드, 어드레스, 및 보안 데이터를 제1 비휘발성 메모리(200)에 제공할 수 있다. 제1 비휘발성 메모리(200)는 프로그램 커맨드에 응답하여 어드레스를 갖는 메모리 블록에 보안 데이터를 저장할 수 있다.
다른 실시예에서, 노멀 모드에서, 보안 프로세서(120)는 제2 비휘발성 메모리(330)에 저장된 보안 데이터를 제1 비휘발성 메모리(200)에 복사(copy)할 수 있다. 구체적으로, 보안 프로세서(120)는 보안 채널을 통해 요청 신호(REQ)를 메모리 프로세서(310)에 제공할 수 있다. 여기서, 요청 신호(REQ)는 제2 비휘발성 메모리(330)에 저장된 보안 데이터를 리드할 것을 요청하는 신호일 수 있다. 메모리 프로세서(310)는 요청 신호(REQ)에 따른 리드 동작을 수행할 것을 지시하는 제어 커맨드(CCMD)를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 제2 메모리 컨트롤러(320)는 제어 커맨드(CCMD)에 응답하여 리드 커맨드 및 어드레스를 제2 비휘발성 메모리(330)에 제공할 수 있다. 제2 비휘발성 메모리(330)는 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공할 수 있다. 제2 비휘발성 메모리(330)가 저장된 보안 데이터를 제2 메모리 컨트롤러(320)에 제공하면, 제2 메모리 컨트롤러(320)는 보안 채널을 통해 보안 데이터를 보안 프로세서(120)에 제공할 수 있다. 보안 프로세서(120)는 요청 신호(REQ)와 보안 데이터를 메인 프로세서(110)에 제공할 수 있다. 메인 프로세서(110)는 제어 커맨드(CCMD)를 제1 메모리 컨트롤러(130)에 제공할 수 있다. 제1 메모리 컨트롤러(130)는 제어 커맨드(CCMD)에 응답하여 프로그램 커맨드, 어드레스, 및 보안 데이터를 제1 비휘발성 메모리(200)에 제공할 수 있다. 제1 비휘발성 메모리(200)의 저장 용량이 제2 비휘발성 메모리(330)의 저장 용량보다 큰 경우, 메모리를 효율적으로 사용하는 효과가 있다.
전자 장치(10)의 모드가 저전력 모드에서 노멀 모드로 변경된 이후, 도 5a 또는 도 5b에 도시된 바와 같이, 보안 프로세서(120)는 보안 동작을 수행하여 새로운 보안 데이터를 생성하고, 새로운 보안 데이터를 저장하기 위해 제1 비휘발성 메모리(200) 또는 제2 비휘발성 메모리(330)에 액세스할 수 있다. 또는 전자 장치(10)의 모드가 저전력 모드에서 노멀 모드로 변경된 이후, 도 5a 또는 도 5b에 도시된 바와 같이, 보안 프로세서(120)는 제1 비휘발성 메모리(200) 또는 제2 비휘발성 메모리(330)에 저장된 다른 보안 데이터를 리드하기 위해 제1 비휘발성 메모리(200) 또는 제2 비휘발성 메모리(330)에 액세스할 수도 있다.
전술한 바에 의하면, 저장 장치(10)의 모드가 저전력 모드에서 노멀 모드로 변경된 경우, 보안 데이터를 저장 용량이 상대적으로 큰 저장 장치에 저장함으로써, 전자 장치의 보안 레벨을 강화하는 효과가 있다.
도 9는 본 개시의 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 9를 참조하면, 전자 장치(20)는, 도 1을 참조하여 전술한 전자 장치(10)와 유사하게, SOC(500), 제1 비휘발성 메모리(200), 보안 장치(300), 및 파워 컨트롤러(400)를 포함할 수 있다. 전자 장치(20)는 보안 처리 모듈(Security processing module, 600)을 더 포함할 수 있다.
SOC(500)는 메인 프로세서(510), 제1 메모리 컨트롤러(520), 및 상태 매니저(530)를 포함할 수 있다. 메인 프로세서(510), 제1 메모리 컨트롤러(520), 및 상태 매니저(530)는 도 1을 참조하여 전술한 메인 프로세서(110), 제1 메모리 컨트롤러(130), 및 상태 매니저(140)와 동일할 수 있다.
보안 처리 모듈(600)은, 도 1을 참조하여 전술한 보안 프로세서(120)를 모듈로 구현한 것으로, SOC(500)와 별도로 존재하는 구성일 수 있다. SOC(500)와 보안 처리 모듈(600)은 통신 채널을 통해 서로 통신할 수 있다. 또한, 보안 장치(300)와 보안 처리 모듈(600)는 보안 채널을 통해 서로 통신할 수 있다. 보안 처리 모듈(600)은 프로세싱 코어(610), 상태 레지스터(620), 및 내부 메모리(630)를 포함하며, 이에 대한 설명은 도 1 내지 도 8을 참조하여 전술한 바와 같다.
일 실시예에서, 보안 처리 모듈(600)은 노멀 모드에서 제1 보안 데이터를 저장할 것을 요청하는 제1 기입 요청 신호와 제1 보안 데이터를 SOC(500)에 출력할 수 있다. 그리고, SOC(500)는 제1 기입 요청 신호에 응답하여 제1 보안 데이터, 제1 프로그램 커맨드, 및 제1 어드레스를 제1 비휘발성 메모리(200)에 제공할 수 있다. 구체적으로, 내부 메모리(630)는 제1 보안 데이터를 임시 저장할 수 있다. 상태 매니저(530)는 노멀 모드에 대응되는 파워 플래그를 상태 레지스터(620)에 출력할 수 있다. 프로세싱 코어(610)는 상태 레지스터(620)에 저장된 파워 플래그를 모니터링한 결과에 기초하여, 제1 기입 요청 신호와 임시 저장된 제1 보안 데이터를 메인 프로세서(510)에 출력할 수 있다. 메인 프로세서(510)는 제1 기입 요청 신호에 응답하여 제1 보안 데이터를 저장할 것을 지시하는 제어 커맨드를 제1 메모리 컨트롤러(520)에 출력할 수 있다. 제1 메모리 컨트롤러(520)는 제어 커맨드에 응답하여 제1 프로그램 커맨드, 제1 어드레스 및 제1 보안 데이터를 제1 비휘발성 메모리(200)에 제공할 수 있다.
다른 실시예에서, 보안 처리 모듈(600)은, 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고, 제2 보안 데이터의 특성에 따라, 제2 보안 데이터 및 제2 기입 요청 신호를 SOC(500)에 제공할 수 있다. SOC(500)는, 제2 기입 요청 신호에 응답하여 제2 보안 데이터, 제2 프로그램 커맨드, 및 제2 어드레스를 제1 비휘발성 메모리(200)에 제공할 수 있다. 여기서, 제2 보안 데이터의 특성은 예를 들면, 데이터의 크기, 데이터의 중요도(또는 보안 레벨)를 포함할 수 있다.
또 다른 실시예에서, 보안 처리 모듈(600)은, 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고, 제2 보안 데이터를 제2 비휘발성 메모리에 저장하도록 제2 비휘발성 메모리에 액세스할 수 있다.
또 다른 실시예에서, 보안 처리 모듈(600)은, 저전력 모드에서 제2 비휘발성 메모리에 액세스할 수 있다.
파워 컨트롤러(400)는 노멀 모드에서 제1 비휘발성 메모리(200), 보안 장치(300), SOC(500), 및 보안 처리 모듈(600)에 전력을 공급할 수 있다. 파워 컨트롤러(400)는 저전력 모드에서 보안 장치(300) 및 보안 처리 모듈(600)에 전력을 공급할 수 있다.
도 10은 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 10을 참조하면, 전자 장치(30)는 이동 전화기, 스마트폰, 태블릿 PC (tablet personal computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대 가능한 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 휴대 가능한 장치(handheld device)로 구현될 수 있다.
전자 장치(30)는 시스템 온 칩(1000), 외부 메모리(1850), 디스플레이 장치(1550), 및 전원 관리 집적 회로(PMIC; power management integrated circuit)(1950)를 포함할 수 있다.
시스템 온 칩(1000)은 중앙 처리 장치(CPU; central processing unit)(1100), 뉴럴 네트워크 처리 장치(NPU; neural processing unit)(1200), 그래픽 처리 장치(GPU; Graphics Processing Unit)(1300), 타이머(1400), 디스플레이 컨트롤러(1500), RAM(random access memory)(1600), ROM(read only memory)(1700), 메모리 컨트롤러(1800), 클럭 관리 유닛(CMU; clock management unit)(1900), 및 버스(1050)를 포함할 수 있다. 시스템 온 칩(1000)은 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다. 예를 들어, 전자 장치(30)는 디스플레이 장치(1550), 외부 메모리(1850), 및 PMIC(1950)를 더 포함할 수 있다. PMIC(1950)가 시스템 온 칩(1000)의 외부에 구현될 수 있다. 하지만, 이에 한정되는 것은 아니며, 시스템 온 칩(1000)은 PMIC(1950)의 기능을 수행할 수 있는 전력 관리 유닛(PMU; power management unit)을 포함할 수도 있다.
CPU(1100)는 프로세서(processor)라고도 불릴 수 있고, 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(1100)는 CMU(1900)로부터 출력된 동작 클럭 신호에 응답하여 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
CPU(1100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(1100)의 메모리(미도시)에 로드(load)될 수 있다.
NPU(1200)는 인공 신경망을 이용하여 대규모 연산을 효율적으로 처리할 수 있다. NPU(1200)는 동시다발적인 행렬 연산을 지원함으로써 딥 러닝(deep learning)을 수행할 수 있다.
GPU(1300)는 메모리 컨트롤러(1800)에 의해 외부 메모리(1850)로부터 리드 된 데이터(read data)를 디스플레이 장치(1550)에 적합한 신호로 변환할 수 있다.
타이머(1400)는 CMU(1900)로부터 출력된 동작 클럭 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.
디스플레이 장치(1550)는 디스플레이 컨트롤러(1500)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 장치(1550)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다. 디스플레이 컨트롤러(1500)는 디스플레이 장치(1550)의 동작을 제어할 수 있다.
RAM(1600)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리에 저장된 프로그램들 및/또는 데이터는 CPU(1100)의 제어에 따라 또는 ROM(1700)에 저장된 부팅 코드(booting code)에 따라 RAM(1600)에 일시적으로 저장될 수 있다. RAM(1600)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
ROM(1700)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(1700)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.
메모리 컨트롤러(1800)는 인터페이스를 통해 외부 메모리(1850)와 통신할 수 있다. 메모리 컨트롤러(1800)는 외부 메모리(1850)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리(1850) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(1800)는 호스트의 요청에 따라 외부 메모리(1850)에 데이터를 쓰거나 외부 메모리(1850)로부터 데이터를 읽을 수 있다. 여기서, 호스트는 CPU(1100), GPU(1300), 또는 디스플레이 컨트롤러(1500)와 같은 마스터(master) 장치일 수 있다.
외부 메모리(1850)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(1850)는 예컨대 DRAM(1600) 일수 있으나 이에 한정되는 것은 아니다. 예를 들어, 외부 메모리(1850)는 비휘발성 메모리 장치(예컨대, 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM (resistive RAM), 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시 예에서 외부 메모리(1850)는 시스템 온 칩(1000)의 내부에 구비되는 내장 메모리일 수 있다. 또한, 외부 메모리(1850)는 플래시 메모리, eMMC(embedded multimedia card), 또는 UFS(universal flash storage)일 수 있다.
CMU(1900)는 동작 클럭 신호를 생성한다. CMU(1900)는 위상 동기 루프(PLL; phase locked loop), 지연 동기 루프(DLL; delayed locked loop), 또는 크리스탈 오실레이터 등과 같은 클럭 신호 생성 장치를 포함할 수 있다.
동작 클럭 신호는 GPU(1300)로 공급될 수 있다. 물론, 동작 클럭 신호는 다른 구성 요소(예컨대, CPU(1100) 또는 메모리 컨트롤러(1800) 등)로 공급될 수도 있다. CMU(1900)는 동작 클럭 신호의 주파수를 변경할 수 있다.
CPU(1100), NPU(1200), GPU(1300), 타이머(1400), 디스플레이 컨트롤러(1500), RAM(1600), ROM(1700), 메모리 컨트롤러(1800), CMU(1900) 각각은 버스(1050)를 통하여 서로 통신할 수 있다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 11을 참조하면, 전자 장치(40)는 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.
전자 장치(40)는 시스템 온 칩(2000), 카메라 모듈(2100), 디스플레이(2200), 파워 소스(2300), 입출력 포트(2400), 메모리(2500), 스토리지(2600), 외부 메모리(2700), 및 네트워크 장치(2800)를 포함할 수 있다.
카메라 모듈(2100)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈로부터 출력된 전기적인 이미지는 스토리지(2600), 메모리(2500), 또는 외부 메모리(2700)에 저장될 수 있다. 또한, 카메라 모듈로부터 출력된 전기적인 이미지는 디스플레이(2200)를 통하여 표시될 수 있다.
디스플레이(2200)는 스토리지(2600), 메모리(2500), 입출력 포트(2400), 외부 메모리(2700), 또는 네트워크 장치(2800)로부터 출력된 데이터를 디스플레이(2200)할 수 있다. 디스플레이(2200)는 도 10에 도시된 디스플레이 장치(1550)일 수 있다.
파워 소스(2300)는 구성 요소들 중 적어도 하나로 동작 전압을 공급할 수 있다. 파워 소스(2300)는 도 10에 도시된 PMIC(1950)에 의해 제어될 수 있다.
입출력 포트(2400)는 전자 장치(40)으로 데이터를 전송하거나 또는 전자 장치(40)로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(2400)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
메모리(2500)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(2500)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 시스템 온 칩(2000)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 메모리 컨트롤러는 시스템 온 칩(2000)과 메모리(2500) 사이에 구현될 수 있다.
스토리지(2600)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
외부 메모리(2700)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 외부 메모리(2700)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.
네트워크 장치(2800)는 전자 장치(40)를 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서,
    데이터를 저장하도록 구성된 제1 비휘발성 메모리;
    상기 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치; 및
    상기 노멀 모드에서 상기 제1 보안 데이터를 상기 제1 비휘발성 메모리에 저장하도록 상기 제1 비휘발성 메모리에 액세스하는 보안 프로세서를 포함하도록 구성된 시스템 온 칩을 포함하는 전자 장치.
  2. 제1 항에 있어서,
    상기 시스템 온 칩은,
    상기 보안 프로세서로부터 출력되는 요청 신호에 응답하여, 상기 제1 보안 데이터를 저장할 것을 지시하는 제1 제어 커맨드를 출력하는 메인 프로세서;
    통신 채널을 통해 상기 제1 비휘발성 메모리와 통신하고, 상기 제1 제어 커맨드에 응답하여 제1 프로그램 커맨드, 제1 어드레스 및 상기 제1 보안 데이터를 상기 제1 비휘발성 메모리에 제공하는 메모리 컨트롤러; 및
    상기 노멀 모드에 대응되는 상기 시스템 온 칩의 전력 공급 상태를 나타낸 파워 플래그를 출력하는 상태 매니저를 포함하는 것을 특징으로 하는, 전자 장치.
  3. 제2 항에 있어서,
    상기 보안 프로세서는,
    상기 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고,
    상기 제2 보안 데이터 및 기입 요청 신호를 상기 메인 프로세서에 제공하고,
    상기 메인 프로세서는,
    상기 기입 요청 신호에 응답하여, 상기 제2 보안 데이터를 저장할 것을 지시하는 제2 제어 커맨드를 상기 메모리 컨트롤러에 제공하고,
    상기 메모리 컨트롤러는,
    상기 제2 제어 커맨드에 응답하여, 제2 프로그램 커맨드, 제2 어드레스 및 상기 제2 보안 데이터를 상기 제1 비휘발성 메모리에 제공하는 것을 특징으로 하는, 전자 장치.
  4. 제1 항에 있어서,
    상기 보안 프로세서는,
    상기 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고,
    상기 제2 보안 데이터를 상기 제2 비휘발성 메모리에 저장하도록 상기 제2 비휘발성 메모리에 액세스하는 것을 특징으로 하는, 전자 장치.
  5. 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서,
    데이터를 저장하도록 구성된 제1 비휘발성 메모리;
    상기 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치;
    보안 채널을 통해 상기 보안 장치와 통신하고, 상기 노멀 모드에서 상기 제1 보안 데이터를 저장할 것을 요청하는 제1 기입 요청 신호와 상기 제1 보안 데이터를 출력하는 보안 처리 모듈; 및
    통신 채널을 통해 상기 보안 처리 모듈 및 상기 제1 비휘발성 메모리와 각각 통신하고, 상기 제1 기입 요청 신호에 응답하여 상기 제1 보안 데이터, 제1 프로그램 커맨드, 및 제1 어드레스를 상기 제1 비휘발성 메모리에 제공하는 시스템 온 칩을 포함하는 전자 장치.
  6. 제5 항에 있어서,
    상기 보안 처리 모듈은,
    상기 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고,
    상기 제2 보안 데이터 및 제2 기입 요청 신호를 상기 시스템 온 칩에 제공하고,
    상기 시스템 온 칩은,
    상기 제2 기입 요청 신호에 응답하여 상기 제2 보안 데이터, 제2 프로그램 커맨드, 및 제2 어드레스를 상기 제1 비휘발성 메모리에 제공하는 것을 특징으로 하는, 전자 장치.
  7. 제5 항에 있어서,
    상기 보안 처리 모듈은,
    상기 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고,
    상기 제2 보안 데이터를 상기 제2 비휘발성 메모리에 저장하도록 상기 제2 비휘발성 메모리에 액세스하는 것을 특징으로 하는, 전자 장치.
  8. 노멀 모드 또는 저전력 모드로 동작하는 전자 장치에 있어서,
    데이터를 저장하는 제1 비휘발성 메모리;
    상기 저전력 모드에서 생성된 제1 보안 데이터를 저장하는 제2 비휘발성 메모리를 포함하는 보안 장치;
    상기 노멀 모드에서 상기 제1 보안 데이터를 저장할 것을 요청하는 제1 기입 요청 신호를 출력하는 보안 프로세서, 상기 제1 기입 요청 신호에 응답하여 제어 커맨드를 출력하는 메인 프로세서, 및 상기 제어 커맨드에 응답하여 프로그램 커맨드, 어드레스 및 상기 제1 보안 데이터를 상기 제1 비휘발성 메모리에 출력하는 제1 메모리 컨트롤러 포함하도록 구성된 시스템 온 칩; 및
    상기 노멀 모드에서 상기 제1 비휘발성 메모리, 상기 보안 장치, 상기 시스템 온 칩에 전력을 공급하고, 상기 저전력 모드에서 상기 보안 장치 및 상기 보안 프로세서에 전력을 공급하도록 구성된 파워 컨트롤러를 포함하는 전자 장치.
  9. 제8 항에 있어서,
    상기 보안 장치는,
    상기 제2 비휘발성 메모리를 제어하는 제2 메모리 컨트롤러 및 상기 보안 프로세서와 통신하여 제2 메모리 컨트롤러를 제어하는 메모리 프로세서를 더 포함하고,
    상기 보안 프로세서는,
    상기 노멀 모드에서 보안 동작을 수행하여 제2 보안 데이터를 생성하고,
    상기 제2 보안 데이터의 특성에 따라, 상기 제2 보안 데이터를 저장할 것을 요청하는 제2 기입 요청 신호를 상기 메인 프로세서에 출력하거나, 상기 제2 기입 요청 신호를 상기 메모리 프로세서에 출력하는 것을 특징으로 하는, 전자 장치.
  10. 제8 항에 있어서,
    상기 제1 비휘발성 메모리, 상기 메인 프로세서, 및 상기 제1 메모리 컨트롤러는,
    상기 저장 장치의 동작이 상기 노멀 모드에서 상기 저전력 모드로 변경된 경우, 상기 저전력 모드에서 비활성화되고,
    상기 보안 프로세서는,
    상기 저전력 모드에서 상기 제2 비휘발성 메모리에 액세스하는 것을 특징으로 하는, 전자 장치.
KR1020210111200A 2021-08-23 2021-08-23 전자 장치 KR20230029113A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210111200A KR20230029113A (ko) 2021-08-23 2021-08-23 전자 장치
US17/746,049 US20230059382A1 (en) 2021-08-23 2022-05-17 Electronic device
CN202210827161.2A CN115904219A (zh) 2021-08-23 2022-07-13 电子设备
TW111127200A TW202407705A (zh) 2021-08-23 2022-07-20 電子裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210111200A KR20230029113A (ko) 2021-08-23 2021-08-23 전자 장치

Publications (1)

Publication Number Publication Date
KR20230029113A true KR20230029113A (ko) 2023-03-03

Family

ID=85228471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210111200A KR20230029113A (ko) 2021-08-23 2021-08-23 전자 장치

Country Status (4)

Country Link
US (1) US20230059382A1 (ko)
KR (1) KR20230029113A (ko)
CN (1) CN115904219A (ko)
TW (1) TW202407705A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230138817A1 (en) * 2021-10-28 2023-05-04 Rambus Inc. Multi-processor device with external interface failover
US20240061602A1 (en) * 2022-08-22 2024-02-22 Micron Technology, Inc. Power safety configurations for logical address space partitions

Also Published As

Publication number Publication date
CN115904219A (zh) 2023-04-04
US20230059382A1 (en) 2023-02-23
TW202407705A (zh) 2024-02-16

Similar Documents

Publication Publication Date Title
US11374967B2 (en) Systems and methods for detecting replay attacks on security space
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US8914627B2 (en) Method for generating a secured boot image including an update boot loader for a secured update of the version information
US8572410B1 (en) Virtualized protected storage
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
TWI632483B (zh) 安全裝置及在其內提供安全服務至主機的方法、安全設備以及電腦軟體產品
US20230059382A1 (en) Electronic device
US11222144B2 (en) Self-encrypting storage device and protection method
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
US9935768B2 (en) Processors including key management circuits and methods of operating key management circuits
KR20190014444A (ko) 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법
EP3757838B1 (en) Warm boot attack mitigations for non-volatile memory modules
US20220222384A1 (en) Encrypted key management
US11533172B2 (en) Apparatus and method for securely managing keys
US20060194603A1 (en) Architecture partitioning of a nonvolatile memory
Gross et al. Enhancing the Security of FPGA-SoCs via the Usage of ARM TrustZone and a Hybrid-TPM
US20230162779A1 (en) Electronic device and operating method thereof
US20230188326A1 (en) System on chip, security system, and method of performing authentication
US20220129527A1 (en) Secure Reduced Power Mode
JP2023136601A (ja) ソフトウェア管理装置、ソフトウェア管理方法、及びプログラム
KR20230090210A (ko) 시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법
CN115361132A (zh) 密钥生成方法、装置、片上系统、设备及存储介质