KR20230073876A - 전자 장치 및 그의 동작 방법 - Google Patents
전자 장치 및 그의 동작 방법 Download PDFInfo
- Publication number
- KR20230073876A KR20230073876A KR1020210160717A KR20210160717A KR20230073876A KR 20230073876 A KR20230073876 A KR 20230073876A KR 1020210160717 A KR1020210160717 A KR 1020210160717A KR 20210160717 A KR20210160717 A KR 20210160717A KR 20230073876 A KR20230073876 A KR 20230073876A
- Authority
- KR
- South Korea
- Prior art keywords
- time information
- processor
- power
- electronic device
- security
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title abstract description 5
- 230000004044 response Effects 0.000 claims description 16
- 239000003990 capacitor Substances 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 11
- 230000000903 blocking effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 101100247626 Drosophila melanogaster Rtc1 gene Proteins 0.000 description 8
- 101100247627 Homo sapiens RCL1 gene Proteins 0.000 description 8
- 101000699762 Homo sapiens RNA 3'-terminal phosphate cyclase Proteins 0.000 description 8
- 102100029143 RNA 3'-terminal phosphate cyclase Human genes 0.000 description 8
- 102100027566 RNA 3'-terminal phosphate cyclase-like protein Human genes 0.000 description 8
- 101100488920 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RTC2 gene Proteins 0.000 description 8
- 206010067959 refractory cytopenia with multilineage dysplasia Diseases 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
- G06F21/725—Protecting 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 operating on a secure reference time value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/81—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
- H03L7/0995—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
- Power Sources (AREA)
Abstract
전자 장치 및 그의 동작 방법이 개시된다. 본 개시의 기술적 사상에 따른 전자 장치는, 비휘발성 메모리, 전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성하고, 공급 전력과 무관하게 제1 시간 정보를 생성하도록 구성된 전력 관리 집적 회로, 및 동작 전력을 공급받아 제2 시간 정보를 생성하고, 동작 전력의 생성이 중단된 경우에 제1 시간 정보를 획득하여 제1 시간 정보 및 제2 시간 정보를 포함하는 타임 데이터, 쓰기 커맨드, 및 어드레스를 비휘발성 메모리에 출력하도록 구성된 어플리케이션 프로세서를 포함한다.
Description
본 개시의 기술적 사상은 전자 장치에 관한 것이며, 더욱 상세하게는, 전자 장치 및 그의 동작 방법에 관한 것이다.
모바일 디바이스는 시간 정보를 이용한 다양한 동작을 한다. 일반적적으로 모바일 디바이스의 시간 정보는 기지국 등 무선 통신 가능한 통신 장비로부터 수신하거나 디바이스 내부에 구비된 타이머에 의해 생성된다.
보안과 연계된 동작이 수행될 때 이용되는 시간 정보는 무결성이 요구되는데, 모바일 디바이스에서 공급되는 전력이 예상치 못하게 공급 중단되거나 악의적 사용자가 모바일 디바이스를 공격함으로써, 모바일 디바이스 내에 시간 정보가 변조될 수 있다. 이 시간 정보가 변조되는 것을 방지하기 위한 방안이 요구되고 있다.
본 개시의 기술적 사상은, 시스템 오프가 발생하는 경우에 보안이 요구되는 시간 정보의 무결성을 보장하는 전자 장치 및 그의 동작 방법을 제공한다.
본 개시의 기술적 사상에 따른 전자 장치는, 비휘발성 메모리, 전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성하도록 구성되고, 공급 전력과 무관하게 제1 시간 정보를 생성하도록 구성된 전력 관리 집적 회로, 및 동작 전력을 공급받아 제2 시간 정보를 생성하도록 구성되고, 동작 전력의 생성이 중단된 경우에 제1 시간 정보를 획득하여 제1 시간 정보 및 제2 시간 정보를 포함하는 타임 데이터, 쓰기 커맨드, 및 어드레스를 비휘발성 메모리에 출력하도록 구성된 어플리케이션 프로세서를 포함한다.
또한, 본 개시의 기술적 사상에 따른 전자 장치는, 암호화된 제1 및 제2 시간 정보를 포함하는 타임 데이터를 저장하도록 구성된 비휘발성 메모리, 전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성하도록 구성되고, 공급 전력과 무관하게 제1 시간 정보를 생성하도록 구성된 전력 관리 집적 회로, 및 동작 전력의 공급이 재개된 경우, 타임 데이터를 리드할 것을 지시하는 리드 커맨드 및 어드레스를 비휘발성 메모리에 출력하고 전력 관리 집적 회로로부터 제1 시간 정보를 획득하고, 획득된 제1 시간 정보 및 리드된 타임 데이터를 기초로 동작 전력의 공급이 중단되기 전에 생성된 제2 시간 정보를 업데이트하도록 구성된 어플리케이션 프로세서를 포함한다.
또한, 본 개시의 기술적 사상에 따른 전자 장치는, 비휘발성 메모리, 전원으로부터 공급된 공급 전력이 중단되는 상태인 시스템 오프가 발생함에 응답하여 미리 충전된 전하를 기초로 보조 전력을 제공하는 파워 커패시터 및 시스템 오프에서 보조 전력을 기초로 제1 시간 정보를 생성하는 읽기 전용 타이머를 포함하는 전력 관리 집적 회로, 및 외부로부터 제공된 클럭 소스를 기초로 제2 시간 정보를 생성하는 제1 시스템 타이머, 시스템 오프가 발생할 때 제1 시간 정보와 제2 시간 정보를 획득하여 타임 데이터를 생성하는 보안 프로세서, 및 타임 데이터, 쓰기 커맨드, 및 어드레스를 비휘발성 메모리에 제공하는 비휘발성 메모리 컨트롤러를 포함하는 어플리케이션 프로세서를 포함한다.
또한, 본 개시의 기술적 사상에 따른 전력 관리 집적 회로, 비휘발성 메모리, 및 어플리케이션 프로세서를 포함하는 전자 장치의 동작 방법은, 전원으로부터 공급된 공급 전력을 기초로 생성된 공급 전력과 무관하게 제1 시간 정보를 생성하는 단계, 동작 전력을 공급받아 제2 시간 정보를 생성하는 단계, 동작 전력의 생성이 중단되는 상태인 시스템 오프가 발생함에 응답하여, 제1 시간 정보 및 제2 시간 정보를 저장하는 단계, 및 동작 전력의 공급이 재개되는 상태인 시스템 온이 발생함에 응답하여, 저장된 제1 및 제2 시간 정보를 기초로 제2 시간 정보를 업데이트하는 단계를 포함한다.
본 개시의 기술적 사상에 의하면, 변조 방지용 인터페이스를 별도로 구비하지 않고도, 보안이 요구되는 시간 정보의 무결성이 보장되고 동작에 대한 오버헤드(overhead)가 감소되며 칩 사이즈가 감소되는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 비보안 프로세서가 액세스 가능한 구성과 액세스 불가능한 구성을 예시적으로 나타낸 도면이다.
도 3은 본 개시의 일 실시예에 따른 보안 프로세서가 액세스 가능한 구성을 예시적으로 나타낸 도면이다.
도 4는 본 개시의 일 실시예에 따른 보안 타이머와 시스템 타이머 각각이 생성하는 시간 정보를 예시적으로 나타낸 그래프이다.
도 5는 본 개시의 일 실시예에 따른 시스템 타이머가 생성하는 시간 정보를 업데이트하는 실시예를 설명하기 위한 그래프이다.
도 6은 본 개시의 일 실시예에 따라 시스템 오프가 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 6에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따라 시스템 오프 이후 시스템 온이 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 도 8에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 10은 본 개시의 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 13은 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 14는 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 비보안 프로세서가 액세스 가능한 구성과 액세스 불가능한 구성을 예시적으로 나타낸 도면이다.
도 3은 본 개시의 일 실시예에 따른 보안 프로세서가 액세스 가능한 구성을 예시적으로 나타낸 도면이다.
도 4는 본 개시의 일 실시예에 따른 보안 타이머와 시스템 타이머 각각이 생성하는 시간 정보를 예시적으로 나타낸 그래프이다.
도 5는 본 개시의 일 실시예에 따른 시스템 타이머가 생성하는 시간 정보를 업데이트하는 실시예를 설명하기 위한 그래프이다.
도 6은 본 개시의 일 실시예에 따라 시스템 오프가 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 6에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따라 시스템 오프 이후 시스템 온이 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 도 8에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 10은 본 개시의 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 13은 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 14는 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(10)는, 예를 들어 서버(server), 데스크탑 컴퓨터, 키오스크(kiosk) 등과 같은 고정형(stationary) 컴퓨팅 시스템 또는 그것의 서브 시스템일 수 있다. 전자 장치(10)는, 다른 예를 들어, 모바일 폰, 웨어러블 기기, 랩탑 컴퓨터 등과 같은 휴대용(portable) 컴퓨팅 시스템 또는 그것의 서브 시스템일 수 있다. 전자 장치(10)는, 또 다른 예를 들어, 가전, 산업기기, 운송수단 등과 같이, 독립형 컴퓨팅 시스템과 상이한 시스템에 포함되는 서브 시스템일 수도 있다.
일 실시예에서, 전자 장치(10)는 어플리케이션 프로세서(100), 전력 관리 집적 회로(PMIC; power management integrated circuit)(200), 비휘발성 메모리(300), 및 오실레이터(400)를 포함할 수 있다.
어플리케이션 프로세서(100)는, 전력 관리 집적 회로(200)로부터 공급되는 동작 전력을 공급받아 데이터를 처리할 수 있다. 어플리케이션 프로세서(100)는 노멀 모드 또는 저전력 모드로 동작할 수 있다. 노멀 모드는 어플리케이션 프로세서(100)에 구비된 모든 구성들이 활성화되는 것일 수 있다. 저전력 모드는 어플리케이션 프로세서(100)에 구비된 모든 구성들 중 일부 구성들만이 활성화되는 것일 수 있다. 즉, 저전력 모드에서 활성화된 구성들은, 올웨이즈 온(always-on)되는 구성일 수 있다.
어플리케이션 프로세서(100)는 비보안 프로세서(110), 보안 프로세서(120), 비휘발성 메모리 컨트롤러(130), 제1 프로텍션 컨트롤러(140), 시스템 타이머(150), 제2 프로텍션 컨트롤러(160), 아비터(170) 및 인터페이스(180)를 포함할 수 있다.
비보안 프로세서(110)는 전자 장치(10)의 전반적인 작업들(또는 동작들)을 처리할 수 있다. 예를 들어, 비보안 프로세서(110)는 전자 장치(10)의 파워 온에 응답하여 부팅을 수행할 수 있다. 비보안 프로세서(110)는 비휘발성 메모리(300)에 저장된 데이터를 처리할 수 있고, 비휘발성 메모리(300)에 저장된 프로그램 이미지를 어플리케이션 프로세서(100) 내부로 로드(Load)할 수 있다. 비보안 프로세서(110)는 비휘발성 메모리(300)에 저장된 프로그램 이미지를 실행할 수 있다. 본 명세서에서, 비보안 프로세서(110)가 프로그램 이미지에 포함된 명령어들을 실행하는 것은, 비보안 프로세서(110)가 전자 장치(10)의 제반 동작을 수행하는 것으로 지칭될 수 있다. 비보안 프로세서(110)의 개수는 적어도 하나일 수 있으나 이에 한정되는 것은 아니며, 단일 보안 프로세서(110)가 어플리케이션 프로세서(100)에 포함될 수도 있다. 비보안 프로세서(110)의 개수가 복수인 경우, 각 비보안 프로세서(110)는 서로 동일한 기능을 수행하거나 서로 다른 기능을 수행할 수 있다. 비보안 프로세서(110)는 처리된 데이터를 저장할 것을 지시하는 제어 커맨드를, 버스(BUS)를 통해, 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다. 본 명세서에서 비보안 프로세서(110)는 메인 프로세서로 지칭될 수 있다.
보안 프로세서(120)는 다양한 목적들을 위하여 보안이 요구되는 데이터를 처리할 수 있다. 예를 들면, 보안 프로세서(120)는 전자 장치(10)의 사용자와 관계된 고유 정보를 안전하게 처리할 수 있고, 전자 장치(10)의 제조자 또는 정당한 공급자와 관계된 고유 정보를 안전하게 처리할 수도 있다. 하지만, 이에 한정되는 것은 아니다. 보안 프로세서(120)의 개수는 적어도 하나일 수 있으나 이에 한정되는 것은 아니다. 보안 프로세서(120)는 처리된 데이터를 저장할 것을 지시하는 제어 커맨드를, 버스(BUS)를 통해, 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다. 보안 프로세서(120)는 시스템 타이머(150) 및 제1 버퍼(171)에 배타적으로 액세스할 수 있다.
일 실시예에서, 보안 프로세서(120)는 보안이 요구되는 시간 정보를 이용하여 인증이 요구되는 동작을 수행할 수 있다. 인증이 요구되는 동작은, 예를 들면 DRM(digital rights management)이 적용된 컨텐츠(contents)를 실행하는 동작, 잠금 해제 상황에서 일정 시간 동안 사용자에 의해 비밀번호가 입력되는 것을 차단하는 동작 등일 수 있다. 예를 들면, 보안 프로세서(120)는, 인증이 요구되는 동작이 실행 가능한 기간인 인증 기간 동안, DRM이 적용된 컨텐츠를 실행할 수 있다. 다른 예를 들면, 보안 프로세서(120)는, 화면 잠금 해제 상황에서 화면 잠금 해제가 실패됨에 따라 설정되는 잠금(locking) 기간 동안 사용자로부터 비밀번호를 입력하는 것을 차단할 수 있다. 본 명세서에서의 인증이 요구되는 동작은 인증 동작으로 지칭될 수 있다. 인증 동작은 전술한 바와 같이 인증 동작이 실행되는 것을 허용 또는 차단하도록 설정된 일정한 인증 기간을 가지고 있다. 이를 위하여, 보안이 요구되는 시간 정보에 따른 시간이 전술한 인증 기간 또는 잠금 기간 내에 포함되는지 여부를 판단할 필요가 있다. 보안 프로세서(120)는, 시스템 타이머(150)에 액세스하고, 시스템 타이머(150)로부터 시간 정보를 획득하며, 획득된 시간 정보에 따른 시간과 인증 기간 또는 잠금 기간을 비교할 수 있다. 일 실시예에서, 획득된 시간 정보에 따른 시간이 인증 기간의 만료일을 지난 경우 즉 인증 기간이 만료된 경우, DRM이 적용된 컨텐츠가 실행되는 것이 차단될 수 있다. 즉, 보안 프로세서(120)는 DRM이 적용된 컨텐츠를 실행하지 않는다. 예를 들어, 비휘발성 메모리(300)에 DRM이 적용된 컨텐츠에 대응되는 데이터가 저장되고, DRM이 적용된 컨텐츠의 인증 기간은 일주일이며, 전장 장치(10)의 동작 모드가 비행기(flight mode)와 같이 무선 통신 장치와의 통신을 차단하는 동작 모드인 경우, 전자 장치(10)가 파워 오프되고, 전자 장치(10)가 파워 오프된지 일주일이 경과된 이후에 전자 장치(10)가 파워 온된 경우, 전자 장치(10)에서 해당 DRM이 적용된 컨텐츠는 실행 불가능하다. 다른 실시예에서, 잠금 기간이 경과한 경우, 보안 프로세서(120)는 사용자로부터 비밀번호를 입력하는 것을 허용할 수 있다. 예를 들어, 사용자가 전자 장치(10)의 화면 잠금 해제를 연속적으로 실패하고, 전자 장치(10)의 잠금 기간은 1시간이고, 전장 장치(10)의 동작 모드가 비행기(flight mode)와 같이 무선 통신 장치와의 통신을 차단하는 동작 모드인 경우, 잠금 시간이 개시된 이후 전자 장치(10)가 파워 오프되고, 전자 장치(10)가 파워 오프된지 1시간이 경과된 이후에 전자 장치(10)가 파워 온된 경우, 사용자는 즉시 전자 장치(10)의 전자 장치(10)의 화면 잠금 해제를 시도 가능하다. 이에 의하면, 사용자에게 편의성을 제공하는 효과가 있다.
일 실시예에서, 보안 프로세서(120)는, 어플리케이션 프로세서(100)에 동작 전력이 공급되는 동안, 시스템 타이머(150)에서 생성되는 시간 정보를 업데이트할 수 있다.
비휘발성 메모리 컨트롤러(130)는 비휘발성 메모리(300)와 통신을 수행할 수 있다. 비휘발성 메모리 컨트롤러(130)는 비보안 프로세서(110) 또는 보안 프로세서(120)에 의해 처리된 데이터를 비휘발성 메모리(300)에 저장하도록 비휘발성 메모리(300)를 제어할 수 있다. 또는 비휘발성 메모리 컨트롤러(130)는 비휘발성 메모리(300)에 저장된 데이터를 리드하고, 리드된 데이터를 비보안 프로세서(110) 또는 보안 프로세서(120)에 전달할 수 있다.
제1 프로텍션 컨트롤러(140)는 보안 프로세서(120)의 액세스를 허용하고 비보안 프로세서(130)의 액세스를 차단할 수 있다. 예를 들면, 제1 프로텍션 컨트롤러(140)는 보안 프로세서의 액세스에 응답하여 시스템 타이머(150)에서 생성된 시간 정보를 보안 프로세서(120)에 전달할 수 있다. 다른 예를 들면, 제1 프로텍션 컨트롤러(140)는, 시스템 타이머(150)에 대한 비보안 프로세서(110)의 액세스를 차단할 수 있다. 제1 프로텍션 컨트롤러(140)는 TZPC(trust zone protection controller)로 구현될 수 있다.
시스템 타이머(150)는 클럭 소스를 기초로 시간 정보를 생성할 수 있다. 클럭 소스는, 예를 들어 오실레이터(400)에 의해 생성되는 주파수일 수 있으며, 클럭 소스의 값은, 예를 들어 32.768kHz일 수 있다. 하지만, 이에 한정되는 것은 아니다. 시간 정보는, 예를 들어 "년도", "월", "일", "시", "분", "초"를 나타내는 정보일 수 있다. 시스템 타이머(150)는 보안 프로세서(120)에 의해 설정된 초기값을 카운팅(counting)하는 카운터(counter)로 구현될 수 있다. 본 명세서에서 시스템 타이머(150)는 리얼 타임 클럭(real time clock)으로 지칭될 수 있다.
제2 프로텍션 컨트롤러(160)는 보안 프로세서(120)의 액세스를 허용하고 비보안 프로세서(130)의 액세스를 차단할 수 있다. 예를 들면, 제2 프로텍션 컨트롤러(160)는 보안 프로세서(120)가 제1 버퍼(171)에 액세스하는 것을 허용하고 비보안 프로세서(110)가 제1 버퍼(171)에 액세스하는 것을 차단할 수 있다. 그리고, 제2 프로텍션 컨트롤러(160)는 비보안 프로세서(110)가 제2 버퍼(172)에 액세스하는 것을 허용할 수 있다. 제2 프로텍션 컨트롤러(160)는, 제1 프로텍션 컨트롤러(140)와 마찬가지로, TZPC(trust zone protection controller)로 구현될 수 있다.
아비터(170)는 보안 프로세서(120)가 변조 불가능한 시간 정보에 액세스하는 것을 허용할 수 있다. 이를 위하여, 아비터(170)는 제1 버퍼(171)와 제2 버퍼(172)를 포함할 수 있다.
제1 버퍼(171)는 보안 프로세서(120)만 접근 가능한 데이터를 임시 저장할 수 있다. 예를 들면, 제1 버퍼(171)는 보안 타이머(210)에 의해 생성된 시간 정보를 포함하는 데이터를 저장할 수 있다.
제2 버퍼(172)는 비보안 프로세서(110)가 접근 가능한 데이터를 임시 저장할 수 있다. 예를 들면, 제2 버퍼(172)는 비보안 프로세서에 의해 생성된 정보를 포함하는 데이터를 임시 저장할 수 있다.
어플리케이션 프로세서(100)에서 인터페이스(180)에 아비터(170)가 배치됨으로써 정보가 변조되는 것을 방지하는 별도의 전용 인터페이스가 생략될 수 있다. 이에 따라, 칩 사이즈가 감소되고 변조 방지용 인터페이스가 구비되는 것에 비하여 오버헤드(overhead)가 감소될 수 있다.
인터페이스(180)는 전력 관리 집적 회로(200)와 통신을 수행할 수 있다. 구체적으로, 인터페이스(180)는 어플리케이션 프로세서(100)에 구비된 제1 핀(P1)을 통해 전력 관리 집적 회로(200)로부터 시간 정보를 수신할 수 있다. 이를 위하여, 인터페이스(180)는 I2C(Inter-Integrated Circuit), SPI(Serial Peripheral Interface) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
보안 프로세서(120), 제1 프로텍션 컨트롤러(140), 시스템 타이머(150), 제2 프로텍션 컨트롤러(160), 아비터(170) 및 인터페이스(180)는 올웨이즈 온될 수 있다. 다만, 전자 장치(10)가 비정상적으로 파워 오프되는 경우에 해당되는 시스템 오프가 발생한 경우, 보안 프로세서(120), 제1 프로텍션 컨트롤러(140), 시스템 타이머(150), 제2 프로텍션 컨트롤러(160), 아비터(170) 및 인터페이스(180)도 오프될 수 있다.
전력 관리 집적 회로(200)는 전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성할 수 있다. 여기서, 전원은, 예를 들어 전자 장치(10)에 구비된 배터리일 수 있으나 이에 한정되는 것은 아니다. 동작 전력은 어플리케이션 프로세서(100) 및 비휘발성 메모리(300)에 공급될 수 있다.
전력 관리 집적 회로(200)는 보안 타이머(210), 파워 커패시터(220), 및 인터페이스(230)를 포함할 수 있다.
보안 타이머(210)는, 전자 장치(10)가 시스템 온인 경우, 공급 전력을 공급받아 클럭 소스를 기초로 시간 정보를 생성할 수 있다. 또는 보안 타이머(210)는, 전자 장치(10)가 시스템 오프인 경우, 파워 커패시터(220)로부터 보조 전력을 공급받아 클럭 소스를 기초로 시간 정보를 생성할 수 있다. 즉, 보안 타이머(210)는 공급 전력과 무관하게 시간 정보를 생성할 수 있다. 보안 타이머(210)에 의해 생성된 시간 정보는, 예를 들어 "년도", "월", "일", "시", "분", "초"를 나타내는 정보일 수 있다. 보안 타이머(210)는 미리 설정된 초기값을 카운팅하는 카운터로 구현될 수 있다. 일 실시예에서, 보안 타이머(210)는 읽기 전용 타이머일 수 있다. 이에 따르면, 보안 타이머(210)에 쓰기 동작이 불가능하여 보안 타이머(210)에 의해 생성된 시간 정보의 무결성이 보장되고, 보안 타이머(210)에 의해 생성된 시간 정보가 비보안 프로세서(110)에 의해 변조되는 것이 방지되고, 전력 관리 집적 회로(200)에 별도의 보안 설계를 구현할 필요가 없어 제조 단가가 절감되고, 칩 사이즈가 감소될 수 있다. 시간 정보는 버스(BUS)를 통해 인터페이스(230)에 전달될 수 있다.
파워 커패시터(220)는 공급 전력을 수신하여 전하를 충전할 수 있다. 동작 전력의 생성이 중단되면, 즉 시스템 오프가 발생한 경우, 파워 커패시터(220)는 충전된 전하를 기초로 보조 전력을 생성할 수 있다. 생성된 보조 전력은 보안 타이머(210)에 공급될 수 있다. 본 명세서에서 파워 커패시터(220)는 수퍼 커패시터(super capacitor) 또는 코인 배터리 도메인(coin battery domain)으로 지칭될 수 있다.
인터페이스(230)는 어플리케이션 프로세서(100)와 통신을 수행할 수 있다. 구체적으로, 인터페이스(230)는 전력 관리 집적 회로(200)에 구비된 제1 핀(P1')을 통해 시간 정보를 전송할 수 있다. 이를 위하여, 인터페이스(230)는 I2C(Inter-Integrated Circuit) 등으로 구현될 수 있으나 이에 한정되지 않는다.
비휘발성 메모리(300)는 비휘발성 메모리 컨트롤러(130)로부터 커맨드 및 어드레스를 수신하고, 비휘발성 메모리(300)에 구비된 복수의 메모리 셀들 중 어드레스에 의해 선택된 메모리 셀을 액세스할 수 있다. 비휘발성 메모리(300)는 어드레스에 의해 선택된 메모리 셀에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 여기서, 커맨드는, 예를 들어 프로그램 커맨드, 리드 커맨드, 또는 이레이즈 커맨드일 수 있고, 커맨드가 지시하는 동작은 예를 들어 프로그램 동작, 리드 동작 또는 소거 동작일 수 있다. 비휘발성 메모리(300)는, 예를 들어, 플래시 메모리(flash memory)일 수 있다. 플래시 메모리에는, 예를 들어 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노어 플래시 메모리(NOR flash memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등이 포함될 수 있다. 비휘발성 메모리(300)는 UFS(Universal Flash Storage) 카드(card) 형태로 구현될 수도 있다.
일 실시예에서, 비휘발성 메모리(300)는 타임 데이터를 저장하거나 저장된타임 데이터를 출력할 수 있다. 타임 데이터는 시스템 오프가 발생한 때 보안 타이머(210) 및 시스템 타이머(150)에서 생성된 시간 정보를 포함하는 데이터일 수 있다.
오실레이터(400)는 시간 정보를 생성하기 위한 클럭 소스를 제공할 수 있다. 구체적으로, 오실레이터(400)는, 어플리케이션 프로세서(100) 및 전력 관리 집적 회로(200)에 구비된 제2 핀들(P2, P2')을 통해, 클럭 소스를 시스템 타이머(150) 및 보안 타이머(210)에 각각 제공할 수 있다. 오실레이터(400)는 크리스탈(410) 및 레조네이터(420)를 포함할 수 있다. 다른 실시예에서, 레조네이터(420)는 전력 관리 집적 회로(200)에 포함될 수 있다.
도시되지 않았지만, 본 발명의 일 실시예에 따른 전자 장치(10)는 무선 통신 가능한 기지국 등 통신 장치와 통신을 수행하는 네트워크 장치를 더 포함할 수 있다. 이 경우, 네트워크 장치는 기지국으로부터 글로벌 시간(global time)을 나타내는 글로벌 시간 정보를 수신하고, 수신된 시간 정보를 어플리케이션 프로세서(100)에 전달할 수 있다. 글로벌 시간 정보는 시스템 타이머(150)에 설정될 초기값으로 이용되거나 시스템 타이머(150)에서 생성된 시간 정보의 오류를 보정하는데 이용될 수 있다.
본 명세서에서 보안 타이머(210)에서 생성된 시간 정보는 보안 시간 정보 또는 제1 시간 정보로 지칭되고, 시스템 타이머(150)에서 생성된 시간 정보는 시스템 시간 정보 또는 제2 시간 정보로 지칭된다.
도 2는 본 개시의 일 실시예에 따른 비보안 프로세서가 액세스 가능한 구성과 액세스 불가능한 구성을 예시적으로 나타낸 도면이다.
도 2를 참조하면, 비보안 프로세서(110)는 비휘발성 메모리 컨트롤러(130)에 액세스할 수 있다. 예를 들면, 비보안 프로세서(110)는, 처리된 데이터를 비휘발성 메모리(300)에 저장하도록, 데이터 및 제어 신호를 출력할 수 있다. 데이터 및 제어 신호는 버스(BUS)를 통해 비휘발성 메모리 컨트롤러(130)에 전달될 수 있다.
비보안 프로세서(110)는 제2 버퍼(172)에 액세스할 수 있다. 예를 들면, 비보안 프로세서(110)는, 처리된 데이터를 전력 관리 집적 회로(200)에 제공하도록, 데이터를 제2 버퍼(172)에 전달할 수 있다. 이 경우, 비보안 프로세서(110)에 의해 출력된 데이터는 아비터(170)와 버스(BUS) 간의 채널을 통해 제2 버퍼(172)에 전달될 수 있다.
비보안 프로세서(110)는 시스템 타이머(150) 및 제1 버퍼(171)에 액세스할 수 없다. 이는 악의적 사용자(또는 오작동(malfunction))에 의해 비보안 프로세서(110)가 제1 버퍼(171)에 저장된 제1 시간 정보를 또는 시스템 타이머(150)에 의해 생성된 제2 시간 정보를 변조하는 것을 방지하기 위함이다. 예를 들면, 제1 프로텍션 컨트롤러(140)는 비보안 프로세서(110)가 시스템 타이머(150)에 액세스하는 것을 차단할 수 있다. 제2 프로텍션 컨트롤러(160)는 비보안 프로세서(110)가 제1 버퍼(171)에 액세스하는 것을 차단할 수 있다.
도 3은 본 개시의 일 실시예에 따른 보안 프로세서가 액세스 가능한 구성을 예시적으로 나타낸 도면이다.
도 3을 참조하면, 보안 프로세서(120)는 시스템 타이머(150)에 액세스할 수 있다. 예를 들면, 제1 프로텍션 컨트롤러(140)는 보안 프로세서(120)가 시스템 타이머(150)에 액세스하는 것을 허용하고, 보안 프로세서(120)는 시스템 타이머(150)에 의해 생성된 제2 시간 정보를 획득하거나 업데이트된 시간 정보(또는 보정된 시간 정보)를 제2 시간 정보로서 시스템 타이머(150)에 설정할 수 있다. 제2 시간 정보 또는 업데이트된 시간 정보 버스(BUS)를 통해 전달될 수 있다.
보안 프로세서(120)는 제1 버퍼(171)에 액세스할 수 있다. 예를 들면, 제2 프로텍션 컨트롤러(160)는 보안 프로세서(120)가 제1 버퍼(171)에 액세스하는 것을 허용하고, 보안 프로세서(120)는 제1 버퍼(171)에 저장된 데이터를 획득할 수 있다. 이 경우, 제1 버퍼(171)에 저장된 데이터는 제2 프로텍션 컨트롤러(160), 아비터(170) 및 버스(BUS) 간의 채널을 통해 보안 프로세서(120)에 전달될 수 있다.
도 4는 본 개시의 일 실시예에 따른 보안 타이머와 시스템 타이머 각각이 생성하는 시간 정보를 예시적으로 나타낸 그래프이다.
도 4를 참조하면, t0에서, 전자 장치(10)가 최초로 부팅(booting)된다. 이 경우, 보안 프로세서(120)는 초기 시간 정보에 따른 초기값(RTC0)을 시스템 타이머(150)에 설정할 수 있다. 한편, 보안 타이머(210)는 전자 장치(10)가 출하되기 전에 초기값(RTC0)을 포함하는 데이터를 저장하고 있다. 어플리케이션 프로세서(100)는 슬립 상태(sleep status)일 수 있다.
t0 이후, 전력 관리 집적 회로(200)가 동작 전력을 생성하고, 슬립된 어플리케이션 프로세서(100)가 웨이크 업(wake up)될 수 있다. 보안 타이머(210)는 클럭 소스에 응답하여 초기값(RTC0)부터 카운팅 동작을 수행할 수 있다. 시스템 타이머(150)도 클럭 소스에 응답하여 초기값(RTC0)부터 카운팅 동작을 수행할 수 있다. 시간 정보에 따른 값은 시간이 경과함에 따라 점점 증가할 수 있다.
t1에서, 시스템 오프가 발생할 수 있다. 시스템 오프는 전원으로부터 공급된 공급 전력이 중단되는 상태 또는 동작 전력의 생성이 중단되는 상태일 수 있다. 이 경우, 파워 커패시터(230)는 보조 전력을 생성하고 보안 타이머(210)는 보조 전력을 공급받아 카운팅 동작을 수행할 수 있다. 보안 타이머(210)에 의해 생성된 제1 시간 정보에 따른 값은 시간이 경과됨에 따라 증가된다. t1에서 제1 시간 정보에 따른 값은 제1 값(RTC1)일 수 있다. 한편, 시스템 오프가 발생한 경우에, 어플리케이션 프로세서(100)에 공급되는 동작 전력이 중단되므로, 시스템 타이머(150)는 카운팅 동작을 중단한다. t1에서 시스템 타이머(150)에 의해 생성된 제2 시간 정보에 따른 값은 제1 값(RTC1)이며 일정하다. 보안 프로세서(120)는 t1에서 시스템 타이머(150)에 의해 생성된 제2 시간 정보를 비휘발성 메모리(300)에 저장하도록, 제2 시간 정보를 포함하는 데이터 및 제어 신호를 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다.
t2에서, 시스템 온이 발생할 수 있다. 시스템 온은 동작 전력의 공급이 재개되는 상태일 수 있다. t2에서, 보안 타이머(210)에 의해 생성된 제1 시간 정보에 따른 값은 제2 값(RTC2)일 수 있다. 한편, 시스템 온이 발생한 경우에, 동작 전력이 어플리케이션 프로세서(100)에 공급되므로, 보안 프로세서(120)는, 비휘발성 메모리(300)에 저장된 제2 시간 정보를 획득하도록, 제어 신호를 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다. 보안 프로세서(120)가 비휘발성 메모리(300)에 저장된 제2 시간 정보를 획득하면, 보안 프로세서(120)는 획득된 제2 시간 정보를 시스템 타이머(150)에 설정한다. 이 경우, t2 이후 보안 타이머(210)에 의해 생성된 제1 시간 정보에 따른 값은 제1 값(RTC1)에서부터 증가되므로, 제1 시간 정보와 제2 시간 정보가 불일치할 수 있다.
도 5는 본 개시의 일 실시예에 따른 시스템 타이머가 생성하는 시간 정보를 업데이트하는 실시예를 설명하기 위한 그래프이다.
도 5를 참조하면, t0에서, 전자 장치(10)가 최초로 부팅되고, 보안 프로세서(120)는 초기값(RTC0)을 시스템 타이머(150)에 설정할 수 있다. t0 이후, 보안 타이머(210) 및 시스템 타이머(150)는 클럭 소스에 응답하여 초기값(RTC0)부터 카운팅 동작을 수행할 수 있다.
t1에서, 시스템 오프가 발생할 수 있다. 이 경우, 시스템 타이머(150)는 카운팅 동작을 중단한다. 보안 프로세서(120)는 t1에서의 제2 시간 정보를 비휘발성 메모리(300)에 저장하도록, 제1 시간 정보 및 제2 시간 정보를 포함하는 데이터 및 제어 신호를 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다. 비휘발성 메모리 컨트롤러(130)는 데이터, 쓰기 커맨드, 및 제1 어드레스를 비휘발성 메모리(300)에 전달할 수 있다. 비휘발성 메모리(300)에 저장된 제1 시간 정보 및 제2 시간 정보에 따른 값은 각각 제1 값(RTC1)일 수 있다.
t2에서, 시스템 온이 발생할 수 있다. 보안 프로세서(120)는, 비휘발성 메모리(300)에 저장된 제1 시간 정보 및 제2 시간 정보를 획득하도록, 제어 신호를 비휘발성 메모리 컨트롤러(130)에 전달할 수 있다. 비휘발성 메모리 컨트롤러(130)는 리드 커맨드, 및 제2 어드레스를 비휘발성 메모리(300)에 전달할 수 있다. 이때 제1 어드레스와 제2 어드레스는 동일하다. 한편, 보안 프로세서(120)는 t2에서 생성된 제1 시간 정보를 추가 획득한다. t2에서 생성된 제1 시간 정보에 따른 값은 제2 값(RTC2)일 수 있다. 보안 프로세서(120)는 t2에서 생성된 제1 시간 정보와 비휘발성 메모리(300)에 저장된 제1 시간 정보를 기초로 비휘발성 메모리(300)로부터 획득된 제2 시간 정보를 업데이트할 수 있다. 예를 들면, 비휘발성 메모리(300)에 저장된 제1 시간 정보에 따른 값은 제1 값(RTC1)이고, t2에서 생성된 제1 시간 정보에 따른 값은 제2 값(RTC2)이다. 보안 프로세서(120)는 제1 값(RTC1)과 제2 값(RTC2)의 시간 차이(Δ)를 계산한다. 그리고, 보안 프로세서(120)는, 비휘발성 메모리(300)에 저장된 제2 시간 정보에 따른 값(예를 들어, 제1 값(RTC1))에 시간 차이(Δ)를 합산함으로써, 비휘발성 메모리(300)로부터 획득된 제2 시간 정보를 업데이트할 수 있다. t2에서 업데이트된 제2 시간 정보에 따른 값은 제2 값(RTC2)이다.
t2 이후, 제1 시간 정보에 따른 값과 제2 시간 정보에 따른 값은 서로 동일하고, 제2 값(RTC2)에서부터 증가될 수 있다.
도 6은 본 개시의 일 실시예에 따라 시스템 오프가 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 1, 도 5 및 도 6을 참조하면, 단계 S110에서, 어플리케이션 프로세서(100)는 시스템 시간 정보 및 보안 시간 정보를 획득한다. 시스템 시간 정보는 시스템 타이머(150)에서 생성되는 제2 시간 정보이고, 보안 시간 정보는 보안 타이머(210)에서 생성되는 제1 시간 정보이다. 구체적으로 예를 들면, t1에서, 보안 프로세서(120)는 인터페이스(180)를 통해 제1 시간 정보를 획득하고, 버스(BUS) 및 제1 프로텍션 컨트롤러(140)를 통해 제2 시간 정보를 획득한다.
단계 S120에서, 어플리케이션 프로세서(100)는 획득된 시스템 시간 정보 및 보안 시간 정보를 암호화한다. 구체적으로 예를 들면, t1에서, 보안 프로세서(120)는 암호화 알고리즘을 이용하여 제1 및 제2 시간 정보를 암호화한다. 이는 t1에서의 제1 및 제2 시간 정보에 대한 신뢰성을 보장하기 위함이다.
단계 S130에서, 어플리케이션 프로세서(100)는 시스템 시간 정보 및 보안 시간 정보를 포함하는 타임 데이터를 비휘발성 메모리(300)에 저장한다. 일 실시예에서, 타임 데이터는 암호화된 시스템 시간 정보 및 보안 시간 정보를 포함할 수 있다. 구체적으로 예를 들면, t1에서, 보안 프로세서(120)는 타임 데이터 및 제어 신호를 비휘발성 메모리 컨트롤러(130)에 전달하고, 비휘발성 메모리 컨트롤러(130)는 타임 데이터, 쓰기 커맨드, 및 어드레스를 비휘발성 메모리 컨트롤러(130)에 전달한다.
도 7은 도 6에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 5, 도 6 및 도 7을 참조하면, 어플리케이션 프로세서(100)는 동작 전력의 생성이 중단된 경우에 전력 관리 집적 회로(200)로부터 제1 시간 정보(TI 1)를 획득하고, 제1 시간 정보(TI 1) 및 제2 시간 정보(TI 2)를 포함하는 타임 데이터(TDATA), 쓰기 커맨드(WCMD), 및 어드레스(ADDR)를 비휘발성 메모리(300)에 출력한다.
단계 S110에서, 보안 타이머(210)는 동작 전력의 생성이 중단된 때(예를 들면, t1) 생성된 제1 시간 정보(TI 1)를 버스(BUS)를 통해 인터페이스(230)에 출력한다. 제1 시간 정보(TI 1)는 전력 관리 집적 회로(200)의 제1 핀(P1')을 통해 어플리케이션 프로세서(100)에 전달된다. 어플리케이션 프로세서(100)의 제1 핀(P1)을 통해 전달된 제1 시간 정보(TI 1)는 인터페이스(180)를 통해 제1 버퍼(171)에 임시 저장된다. 보안 프로세서(120)는 제2 프로텍션 컨트롤러(160)를 통해 제1 버퍼(171)에 액세스하여 제1 시간 정보(TI 1)를 획득한다. 시스템 타이머(150)는 동작 전력의 생성이 중단된 때(예를 들면, t1) 생성된 제2 시간 정보(TI 2)를 제1 프로텍션 컨트롤러(140) 및 버스(BUS)를 통해 보안 프로세서(120)에 출력한다.
단계 S120에서, 보안 프로세서(120)는 t1에서의 제1 시간 정보(TI 1) 및 제2 시간 정보(TI 2)를 암호화하고, 암호화된 제1 및 제2 시간 정보를 포함하는 데이터를 타임 데이터(TDATA)로서 출력한다. 타임 데이터(TDATA)는 버스(BUS)를 통해 비휘발성 메모리 컨트롤러(130)에 전달된다.
단계 S130에서, 휘발성 메모리 컨트롤러(130)는 쓰기 커맨드(WCMD), 어드레스(ADDR), 및 타임 데이터(TDATA)를 출력한다. 쓰기 커맨드(WCMD), 어드레스(ADDR), 및 타임 데이터(TDATA)는 어플리케이션 프로세서(100)의 제3 핀(P3)을 통해 비휘발성 메모리(300)에 전달된다. 비휘발성 메모리(300)는 비휘발성 메모리(300)의 제3 핀(P3')을 통해 쓰기 커맨드(WCMD), 어드레스(ADDR), 및 타임 데이터(TDATA)를 수신하고, 어드레스(ADDR)에 의해 지시되는 주소를 갖는 메모리 셀들에 타임 데이터(TDATA)를 저장한다.
도 8은 본 개시의 일 실시예에 따라 시스템 오프 이후 시스템 온이 발생하는 경우에 어플리케이션 프로세서의 동작 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 단계 S210에서, 어플리케이션 프로세서(100)는 타임 데이터 및 현재 보안 시간 정보를 획득한다. 타임 데이터는 암호화된 제1 및 제2 시간 정보를 포함하고 비휘발성 메모리(300)에 저장되어 있다. 암호화된 제1 및 제2 시간 정보는 시스템 오프가 발생할 때 생성된 정보이다. 현재 보안 시간 정보는 시스템 오프 이후 시스템 온이 발생한 경우에 보안 타이머(210)에 의해 생성된 제1 시간 정보이다. 구체적으로 예를 들면, t2에서, 보안 프로세서(120)는 인터페이스(180)를 통해 제1 시간 정보를 획득하고, 버스(BUS) 및 비휘발성 메모리 컨트롤러(130)를 통해 타임 데이터를 획득한다.
단계 S220에서, 어플리케이션 프로세서(100)는 현재 보안 시간 정보와 보안 시간 정보를 기초로 보정 시간 정보를 계산한다. 보안 시간 정보는 타임 데이터에 포함된 제1 시간 정보이고, 보정 시간 정보는 현재 보안 시간 정보와 보안 시간 정보 간의 차이를 나타내는 정보로서 도 5를 참조하여 전술한 시간 차이(Δ)를 나타내는 정보이다. 구체적으로 예를 들면, 보안 프로세서(120)는 암호화된 제1 및 제2 시간 정보를 복호화하고, 복호화된 제1 및 제2 시간 정보에 따른 시간들의 시간 차이(Δ)를 계산한다.
단계 S230에서, 어플리케이션 프로세서(100)는 시스템 시간 정보에 보정 시간 정보를 반영하여 보정 시스템 시간 정보를 산출한다. 보정 시스템 시간 정보는 업데이트된 제2 시간 정보로서 도 5를 참조하여 전술한 바와 같이 t2에서의 제2 값(RCT2)을 나타낼 수 있다. 구체적으로 예를 들면, 보안 프로세서(120)는 제1 값(RTC1)에 시간 차이(Δ)를 합산하여 제2 값(RTC2)를 계산한다.
단계 S240에서, 어플리케이션 프로세서(100)는 시스템 타이머(150)의 시스템 시간 정보를 보정 시스템 시간 정보로 업데이트한다. 구체적으로 예를 들면, 보안 프로세서(120)는, 제2 값(RTC2)을 시스템 타이머(150)에 설정함으로써, 시스템 타이머(150)의 시간 정보를 업데이트한다.
도 9는 도 8에 도시된 흐름도를 구체적으로 설명하기 위한 도면이다.
도 5, 도 7, 도 8 및 도 9를 참조하면, 어플리케이션 프로세서(100)는, 동작 전력의 공급이 재개된 경우, 타임 데이터(TDATA)를 리드할 것을 지시하는 리드 커맨드(RCMD) 및 어드레스(ADDR)를 비휘발성 메모리(300)에 출력하고 전력 관리 집적 회로(200)로부터 제1 시간 정보(TI 1')를 획득하고, 획득된 제1 시간 정보(TI 1') 및 리드된 타임 데이터(TDATA)를 기초로 동작 전력의 공급이 중단되기 전에 생성된(예를 들어, t1에서 생성된) 제2 시간 정보를 업데이트할 수 있다.
단계 S210에서, 비휘발성 메모리 컨트롤러(130)는 동작 전력의 공급이 재개된 때 리드 커맨드(RCMD) 및 어드레스(ADDR)를 출력한다. 리드 커맨드(RCMD) 및 어드레스(ADDR)는 어플리케이션 프로세서(100)의 제3 핀(P3)을 통해 비휘발성 메모리(300)에 전달된다. 비휘발성 메모리(300)는 비휘발성 메모리(300)의 제3 핀(P3')을 통해 리드 커맨드(RCMD) 및 어드레스(ADDR)를 수신하고, 저장된 타임 데이터(TDATA)를 출력한다. 타임 데이터(TDATA)는 비휘발성 메모리(300)의 제3 핀(P3')을 통해 어플리케이션 프로세서(100)에 전달된다. 어플리케이션 프로세서(100)의 제3 핀(P3)을 통해 전달된 타임 데이터(TDATA)는 보안 프로세서(120)에 전달된다. 타임 데이터(TDATA)는 도 7을 참조하여 전술한 암호화된 제1 시간 정보(TI 1) 및 제2 시간 정보(TI 2)를 포함한다. 보안 타이머(210)는 동작 전력의 공급이 재개된 때(예를 들면, t2) 생성된 제1 시간 정보(TI 1')를 버스(BUS)를 통해 인터페이스(230)에 출력한다. 제1 시간 정보(TI 1')는 인터페이스(180)를 통해 제1 버퍼(171)에 임시 저장된다. 보안 프로세서(120)는 제2 프로텍션 컨트롤러(160)를 통해 제1 버퍼(171)에 액세스하여 제1 시간 정보(TI 1')를 획득한다.
단계 S220에서, 보안 프로세서(120)는 타임 데이터(TDATA)에서 암호화된 제1 시간 정보(TI 1) 및 제2 시간 정보(TI 2)를 복호화하고, 복호화된 제1 시간 정보(TI 1)와 획득된 제1 시간 정보(TI 1')의 차이 시간 정보(예를 들면, 도 5에 도시된 시간 차이(Δ))를 계산한다. 단계 S230에서, 보안 프로세서(120)는 복호화된 제2 시간 정보(TI 2)에 차이 시간 정보를 반영하여 업데이트된 제2 시간 정보(TI(UPDATED))를 생성한다. 단계 S240에서, 보안 프로세서(120)는 업데이트된 제2 시간 정보(TI(UPDATED))를 시스템 타이머(150)에 설정한다.
도 10은 본 개시의 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 10을 참조하면, 본 개시의 다른 실시예에 따른 전자 장치(20)는, 어플리케이션 프로세서(100), 전력 관리 집적 회로(201), 및 비휘발성 메모리(300)를 포함할 수 있다. 어플리케이션 프로세서(100) 및 비휘발성 메모리(300)은 도 1을 참조하여 전술한 바와 같다.
전력 관리 집적 회로(201)는 보안 타이머(210), 파워 커패시터(220), 인터페이스(230), 및 링 오실레이터(240)를 포함할 수 있다. 보안 타이머(210), 파워 커패시터(220), 및 인터페이스(230)는 도 1을 참조하여 전술한 바와 같다.
링 오실레이터(240)는 공급 전력을 기초로 클럭 소스를 생성할 수 있다. 링 오실레이터(240)는, 시스템 오프가 발생한 경우, 파워 커패시터(220)로부터 보조 전력을 공급받아 클럭 소스를 보안 타이머(210)에 제공할 수 있다.
도시되지 않았지만, 어플리케이션 프로세서(100) 및 전력 관리 집적 회로(201)는 제2 핀들(P2, P2')을 구비할 수 있다. 본 개시의 다른 실시예에 따른 전자 장치(20)는 도 1에 도시된 오실레이터(400)를 더 포함할 수도 있다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 11을 참조하면, 본 개시의 또 다른 실시예에 따른 전자 장치(30)는 어플리케이션 프로세서(101), 전력 관리 집적 회로(202), 비휘발성 메모리 장치(300), 및 오실레이터(400)를 포함할 수 있다. 비휘발성 메모리 장치(300) 및 오실레이터(400)는 도 1을 참조하여 전술한 바와 같다.
어플리케이션 프로세서(101)는 비보안 프로세서(110), 보안 프로세서(120), 비휘발성 메모리 컨트롤러(130), 제1 프로텍션 컨트롤러(140), 제1 시스템 타이머(151), 제2 프로텍션 컨트롤러(160), 아비터(170), 인터페이스(180), 및 제2 시스템 타이머(190)를 포함할 수 있다. 비보안 프로세서(110), 보안 프로세서(120), 비휘발성 메모리 컨트롤러(130), 제1 프로텍션 컨트롤러(140), 제2 프로텍션 컨트롤러(160), 아비터(170), 및 인터페이스(180)는 도 1을 참조하여 전술한 바와 같다.
제1 시스템 타이머(151)는 도 1에 도시된 시스템 타이머(150)에 대응될 수 있다. 제1 시스템 타이머(151)는 외부(예를 들면, 오실레이터(400))로부터 제공된 클럭 소스를 기초로 제2 시간 정보를 생성할 수 있다.
제2 시스템 타이머(190)는 외부(예를 들면, 오실레이터(400))로부터 제공된 클럭 소스를 기초로 제3 시간 정보를 생성할 수 있다. 제3 시간 정보는, 전자 장치(30)에서 사용되는 시간에 관한 정보일 수 있다. 비보안 프로세서(110)는 제3 시간 정보를 기초로 전자 장치(30)의 제반 동작을 수행할 수 있다. 예를 들면, 비보안 프로세서(110)는, 제3 시간 정보에 따른 시간을 사용자에게 알리기 위한 시간 이미지를 처리할 수 있다. 전자 장치(30)가 부팅되면, 비보안 프로세서(110)가 초기값을 제2 시스템 타이머(190)에 설정할 수 있다.
전력 관리 집적 회로(202)는 보안 타이머(210), 파워 커패시터(220), 인터페이스(230), 및 제3 시스템 타이머(250)를 포함할 수 있다. 보안 타이머(210), 파워 커패시터(220), 및 인터페이스(230)는 도 1을 참조하여 전술한 바와 같다. 보안 타이머(210)는 읽기 전용 타이머일 수 있다.
제3 시스템 타이머(250)는 외부(예를 들면, 오실레이터(400))로부터 제공된 클럭 소스를 기초로 제3 시간 정보를 생성할 수 있다.
일 실시예에서, 비보안 프로세서(110)는 제3 시스템 타이머(250)에 의해 생성된 제3 시간 정보를 획득하고, 획득된 시간 정보를 제2 시스템 타이머(190)에 카피(copy)할 수 있다. 제3 시간 정보는 인터페이스(180)에 의해 제2 버퍼(172)에 저장될 수 있다.
도시되지 않았지만, 본 개시의 또 다른 실시예에 따른 전자 장치(30)는, 시스템 오프가 발생함에 응답하여 보조 전력을 공급받아 클럭 소스를 보안 타이머(210)에 제공하는 링 오실레이터를 더 포함할 수 있다.
도 12는 본 발명의 일 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 1 및 도 12를 참조하면, 전자 장치(10)의 동작 방법은 전원으로부터 공급된 공급 전력을 기초로 생성된 공급 전력과 무관하게 제1 시간 정보를 생성하는 단계(S310), 동작 전력을 공급받아 제2 시간 정보를 생성하는 단계(S320), 동작 전력의 생성이 중단되는 상태에 대응되는 시스템 오프가 발생함에 응답하여, 제1 시간 정보 및 제2 시간 정보를 저장하는 단계(S330), 및 동작 전력의 공급이 재개되는 상태에 대응되는 시스템 온이 발생함에 응답하여, 저장된 제1 및 제2 시간 정보를 기초로 제2 시간 정보를 업데이트하는 단계(S340)를 포함한다. 제1 시간 정보는, 전력 관리 집적 회로(200)에 포함된 읽기 전용 타이머(예를 들면, 보안 타이머(210))에서 생성되는 정보이고, 제2 시간 정보는, 어플리케이션 프로세서(100)에 포함된 타이머(예를 들면, 시스템 타이머(150))에서 생성되는 정보이다.
단계 S330에서, 어플리케이션 프로세서(100)는, 시스템 오프가 발생할 때 생성된 제1 및 제2 시간 정보를 암호화하고, 암호화된 제1 및 제2 시간 정보를 비휘발성 메모리(300)에 저장한다.
단계 S340에서, 어플리케이션 프로세서(100)는, 시스템 온이 발생할 때 암호화된 제1 및 제2 시간 정보를 복호화하고, 시스템 온이 발생할 때 생성된 제1 시간 정보와 복호화된 제1 및 제2 시간 정보를 기초로 제2 시간 정보를 업데이트한다.
단계 S340에서, 어플리케이션 프로세서(100)는, 복호화된 제1 시간 정보와 획득된 제1 시간 정보 간의 차이 시간 정보를 계산하고, 복호화된 제2 시간 정보에 차이 시간 정보를 반영하여 제2 시간 정보를 업데이트한다.
도 13은 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 13을 참조하면, 전자 장치(40)는 이동 전화기, 스마트폰, 태블릿 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)로 구현될 수 있다.
전자 장치(40)는 시스템 온 칩(1000), 외부 메모리(1850), 디스플레이 장치(1550), 및 전력 관리 집적 회로(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)은 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다. 예를 들어, 전자 장치(40)는 디스플레이 장치(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)를 통하여 서로 통신할 수 있다.
도 14는 본 개시의 또 다른 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 14를 참조하면, 전자 장치(50)는 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.
전자 장치(50)는 시스템 온 칩(2000), 카메라 모듈(2100), 디스플레이(2200), 파워 소스(2300), 입출력 포트(2400), 메모리(2500), 스토리지(2600), 외부 메모리(2700), 및 네트워크 장치(2800)를 포함할 수 있다.
카메라 모듈(2100)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈로부터 출력된 전기적인 이미지는 스토리지(2600), 메모리(2500), 또는 외부 메모리(2700)에 저장될 수 있다. 또한, 카메라 모듈로부터 출력된 전기적인 이미지는 디스플레이(2200)를 통하여 표시될 수 있다.
디스플레이(2200)는 스토리지(2600), 메모리(2500), 입출력 포트(2400), 외부 메모리(2700), 또는 네트워크 장치(2800)로부터 출력된 데이터를 디스플레이(2200)할 수 있다.
파워 소스(2300)는 구성 요소들 중 적어도 하나로 동작 전압을 공급할 수 있다.
입출력 포트(2400)는 전자 장치(50)으로 데이터를 전송하거나 또는 전자 장치(50)로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(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)는 전자 장치(50)를 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 비휘발성 메모리;
전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성하도록 구성되고, 상기 공급 전력과 무관하게 제1 시간 정보를 생성하도록 구성된 전력 관리 집적 회로; 및
상기 동작 전력을 공급받아 제2 시간 정보를 생성하도록 구성되고, 상기 동작 전력의 생성이 중단된 경우에 상기 제1 시간 정보를 획득하여 상기 제1 시간 정보 및 상기 제2 시간 정보를 포함하는 타임 데이터, 쓰기 커맨드, 및 어드레스를 상기 비휘발성 메모리에 출력하도록 구성된 어플리케이션 프로세서를 포함하는 전자 장치. - 제1 항에 있어서,
상기 전력 관리 집적 회로는,
클럭 소스를 기초로 상기 제1 시간 정보를 생성하는 보안 타이머;
상기 공급 전력을 수신하여 전하를 충전하고, 상기 동작 전력의 생성이 중단되면 충전된 전하를 기초로 보조 전력을 상기 보안 타이머에 공급하는 파워 커패시터; 및
상기 제1 시간 정보를 상기 어플리케이션 프로세서에 제공하는 인터페이스를 포함하는 것을 특징으로 하는, 전자 장치. - 제2 항에 있어서,
상기 전력 관리 집적 회로는,
상기 보조 전력을 공급받아 상기 클럭 소스를 상기 보안 타이머에 제공하는 링 오실레이터를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제3 항에 있어서,
상기 보안 타이머는,
읽기 전용(Read-only)의 타이머인 것을 특징으로 하는, 전자 장치. - 제1 항에 있어서,
상기 어플리케이션 프로세서는,
상기 전력 관리 집적 회로와 통신하는 인터페이스;
상기 타임 데이터, 상기 쓰기 커맨드, 및 상기 어드레스를 상기 비휘발성 메모리에 제공하는 비휘발성 메모리 컨트롤러;
외부로부터 제공된 클럭 소스를 기초로 상기 제2 시간 정보를 생성하는 시스템 타이머; 및
상기 동작 전력의 생성이 중단된 때 상기 전력 관리 집적 회로에 의해 생성된 시간 정보를 상기 제1 시간 정보로서 획득하고, 상기 동작 전력의 생성이 중단된 때 생성된 제2 시간 정보와 상기 제1 시간 정보를 암호화하고, 암호화된 제1 및 제2 시간 정보를 포함하는 데이터를 상기 타임 데이터로서 상기 비휘발성 메모리 컨트롤러에 제공하는 보안 프로세서를 포함하는 것을 특징으로 하는, 전자 장치. - 제5 항에 있어서,
상기 어플리케이션 프로세서는,
상기 전자 장치의 제반 동작을 수행하는 비보안 프로세서;
상기 인터페이스를 통해 전달된 상기 제1 시간 정보를 저장하는 제1 버퍼와, 상기 비보안 프로세서에 의해 생성된 정보를 저장하는 제2 버퍼를 포함하는 아비터;
상기 보안 프로세서의 액세스에 응답하여 상기 시스템 타이머에서 생성된 상기 제2 시간 정보를 상기 보안 프로세서에 전달하고, 상기 비보안 프로세서의 액세스를 차단하는 제1 프로텍션 컨트롤러; 및
상기 보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 허용하고, 상기 비보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 차단하는 제2 프로텍션 컨트롤러를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제1 항에 있어서,
상기 제1 시간 정보 및 상기 제2 시간 정보를 각각 생성하기 위한 클럭 소스를 제공하는 오실레이터를 더 포함하는 것을 특징으로 하는, 전자 장치. - 암호화된 제1 및 제2 시간 정보를 포함하는 타임 데이터를 저장하도록 구성된 비휘발성 메모리;
전원으로부터 공급된 공급 전력을 기초로 동작 전력을 생성하도록 구성되고, 상기 공급 전력과 무관하게 제1 시간 정보를 생성하도록 구성된 전력 관리 집적 회로; 및
상기 동작 전력의 공급이 재개된 경우, 상기 타임 데이터를 리드할 것을 지시하는 리드 커맨드 및 어드레스를 상기 비휘발성 메모리에 출력하고 상기 전력 관리 집적 회로로부터 상기 제1 시간 정보를 획득하고, 획득된 상기 제1 시간 정보 및 리드된 상기 타임 데이터를 기초로 상기 동작 전력의 공급이 중단되기 전에 생성된 제2 시간 정보를 업데이트하도록 구성된 어플리케이션 프로세서를 포함하는 전자 장치. - 제8 항에 있어서,
상기 전력 관리 집적 회로는,
클럭 소스를 기초로 상기 제1 시간 정보를 생성하는 보안 타이머; 및
상기 제1 시간 정보를 상기 어플리케이션 프로세서에 제공하는 인터페이스를 포함하는 것을 특징으로 하는, 전자 장치. - 제9 항에 있어서,
상기 공급 전력을 기초로 상기 클럭 소스를 생성하는 링 오실레이터를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제10 항에 있어서,
상기 보안 타이머는,
읽기 전용(Read-only)의 타이머인 것을 특징으로 하는, 전자 장치. - 제8 항에 있어서,
상기 어플리케이션 프로세서는,
상기 전력 관리 집적 회로와 통신하는 인터페이스;
상기 동작 전력의 공급이 재개된 때 상기 리드 커맨드, 및 상기 어드레스를 상기 비휘발성 메모리에 제공하는 비휘발성 메모리 컨트롤러;
외부로부터 제공된 클럭 소스를 기초로 상기 제2 시간 정보를 생성하는 시스템 타이머;
상기 동작 전력의 공급이 재개된 때 상기 전력 관리 집적 회로에서 생성된 시간 정보를 상기 제1 시간 정보로서 획득하고, 상기 타임 데이터에서 상기 암호화된 제1 및 제2 시간 정보를 복호화하고, 복호화된 제1 및 제2 시간 정보 및 상기 획득된 제1 시간 정보를 이용하여 상기 제2 시간 정보를 업데이트하고, 업데이트된 제2 시간 정보를 상기 시스템 타이머에 설정하는 보안 프로세서를 포함하는 것을 특징으로 하는, 전자 장치. - 제12 항에 있어서,
상기 보안 프로세서는,
복호화된 제1 시간 정보와 상기 획득된 제1 시간 정보 간의 차이 시간 정보를 계산하고, 복호화된 제2 시간 정보에 상기 차이 시간 정보를 반영하여 상기 제2 시간 정보를 업데이트하는 것을 특징으로 하는, 전자 장치. - 제12 항에 있어서,
상기 어플리케이션 프로세서는,
상기 전자 장치의 제반 동작을 수행하는 비보안 프로세서;
상기 인터페이스를 통해 전달된 상기 제1 시간 정보를 저장하는 제1 버퍼와, 상기 비보안 프로세서에 의해 생성된 정보를 저장하는 제2 버퍼를 포함하는 아비터;
상기 보안 프로세서의 액세스에 응답하여 상기 업데이트된 제2 시간 정보를 상기 시스템 타이머에 전달하고, 상기 비보안 프로세서의 액세스를 차단하는 제1 프로텍션 컨트롤러; 및
상기 보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 허용하고, 상기 비보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 차단하는 제2 프로텍션 컨트롤러를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제8 항에 있어서,
상기 제1 시간 정보 및 상기 제2 시간 정보를 각각 생성하기 위한 클럭 소스를 제공하는 오실레이터를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제8 항에 있어서,
상기 어플리케이션 프로세서는,
업데이트된 제2 시간 정보를 기초로, 동작이 실행되는 것을 허용 또는 차단하도록 설정된 인증 기간을 갖는 인증 동작을 실행하되,
업데이트된 제2 시간 정보에 따른 시간이 상기 인증 기간 내인 경우, 상기 인증 동작을 실행하고,
상기 인증 기간이 만료된 경우, 상기 인증 동작을 실행하는 것을 차단하는 것을 특징으로 하는, 전자 장치. - 비휘발성 메모리;
전원으로부터 공급된 공급 전력이 중단되는 상태인 시스템 오프가 발생함에 응답하여 미리 충전된 전하를 기초로 보조 전력을 제공하는 파워 커패시터 및 상기 시스템 오프에서 상기 보조 전력을 기초로 제1 시간 정보를 생성하는 읽기 전용 타이머를 포함하는 전력 관리 집적 회로; 및
외부로부터 제공된 클럭 소스를 기초로 제2 시간 정보를 생성하는 제1 시스템 타이머, 상기 시스템 오프가 발생할 때 상기 제1 시간 정보와 상기 제2 시간 정보를 획득하여 타임 데이터를 생성하는 보안 프로세서, 및 상기 타임 데이터, 쓰기 커맨드, 및 어드레스를 상기 비휘발성 메모리에 제공하는 비휘발성 메모리 컨트롤러를 포함하는 어플리케이션 프로세서를 포함하는 전자 장치. - 제17 항에 있어서,
상기 어플리케이션 프로세서는,
상기 클럭 소스를 기초로 제3 시간 정보를 생성하는 제2 시스템 타이머;
상기 제2 시스템 타이머에서 생성된 제3 시간 정보를 기초로 상기 전자 장치의 제반 동작을 수행하는 비보안 프로세서; 및
상기 보안 프로세서의 액세스에 응답하여 상기 제1 시스템 타이머에서 생성된 상기 제2 시간 정보를 상기 보안 프로세서에 전달하고, 상기 비보안 프로세서의 액세스를 차단하는 제1 프로텍션 컨트롤러를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제17 항에 있어서,
상기 어플리케이션 프로세서는,
상기 전력 관리 집적 회로와 통신하는 인터페이스;
상기 인터페이스를 통해 전달된 상기 제1 시간 정보를 저장하는 제1 버퍼와, 상기 비보안 프로세서에 의해 생성된 정보를 저장하는 제2 버퍼를 포함하는 아비터; 및
상기 보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 허용하고, 상기 비보안 프로세서가 상기 제1 버퍼에 액세스하는 것을 차단하는 제2 프로텍션 컨트롤러를 더 포함하는 것을 특징으로 하는, 전자 장치. - 제17 항에 있어서,
상기 전력 관리 집적 회로는,
상기 클럭 소스를 기초로 제3 시간 정보를 생성하는 시스템 타이머; 및
상기 제3 시간 정보를 상기 어플리케이션 프로세서에 제공하는 인터페이스를 포함하는 것을 특징으로 하는, 전자 장치.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210160717A KR20230073876A (ko) | 2021-11-19 | 2021-11-19 | 전자 장치 및 그의 동작 방법 |
US17/881,208 US20230162779A1 (en) | 2021-11-19 | 2022-08-04 | Electronic device and operating method thereof |
TW111136786A TW202321964A (zh) | 2021-11-19 | 2022-09-28 | 電子裝置 |
EP22199258.9A EP4184280A1 (en) | 2021-11-19 | 2022-09-30 | Electronic device and operating method thereof |
CN202211440893.2A CN116149541A (zh) | 2021-11-19 | 2022-11-17 | 电子设备及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210160717A KR20230073876A (ko) | 2021-11-19 | 2021-11-19 | 전자 장치 및 그의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230073876A true KR20230073876A (ko) | 2023-05-26 |
Family
ID=83546761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210160717A KR20230073876A (ko) | 2021-11-19 | 2021-11-19 | 전자 장치 및 그의 동작 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230162779A1 (ko) |
EP (1) | EP4184280A1 (ko) |
KR (1) | KR20230073876A (ko) |
CN (1) | CN116149541A (ko) |
TW (1) | TW202321964A (ko) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60330646D1 (de) * | 2003-03-20 | 2010-02-04 | Sony Ericsson Mobile Comm Ab | Mobilgerät mit Zeitsteuerung für ein digitales Rechteverwaltungsverfahren (DRM) |
EP3236383A1 (en) * | 2016-04-20 | 2017-10-25 | Gemalto Sa | Method for managing a real-time clock in a portable tamper-resistant device |
CN113253598A (zh) * | 2020-02-10 | 2021-08-13 | 哈曼国际工业有限公司 | 用于保护和准确化系统时间的技术 |
-
2021
- 2021-11-19 KR KR1020210160717A patent/KR20230073876A/ko unknown
-
2022
- 2022-08-04 US US17/881,208 patent/US20230162779A1/en active Pending
- 2022-09-28 TW TW111136786A patent/TW202321964A/zh unknown
- 2022-09-30 EP EP22199258.9A patent/EP4184280A1/en active Pending
- 2022-11-17 CN CN202211440893.2A patent/CN116149541A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4184280A1 (en) | 2023-05-24 |
CN116149541A (zh) | 2023-05-23 |
US20230162779A1 (en) | 2023-05-25 |
TW202321964A (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11809544B2 (en) | Remote attestation for multi-core processor | |
US10402567B2 (en) | Secure boot for multi-core processor | |
US9983886B2 (en) | Updating boot code | |
US9990255B2 (en) | Repairing compromised system data in a non-volatile memory | |
US20100125908A1 (en) | Storage device, information processor, and information processing system | |
EP3646224B1 (en) | Secure key storage for multi-core processor | |
KR20150018041A (ko) | 웨이크-업 시간을 줄일 수 있는 시스템 온 칩, 이의 동작 방법, 및 상기 시스템 온 칩을 포함하는 컴퓨터 시스템 | |
US20230059382A1 (en) | Electronic device | |
US10628168B2 (en) | Management with respect to a basic input/output system policy | |
US20120303943A1 (en) | Information processing apparatus and authentication control method | |
KR20230073876A (ko) | 전자 장치 및 그의 동작 방법 | |
US10699033B2 (en) | Secure enablement of platform features without user intervention | |
US20230188326A1 (en) | System on chip, security system, and method of performing authentication | |
KR20230090210A (ko) | 시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법 | |
JP2022114702A (ja) | 情報処理装置、及び制御方法 |