KR102547034B1 - 정보 처리 장치 및 그 제어 방법 - Google Patents

정보 처리 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102547034B1
KR102547034B1 KR1020190136315A KR20190136315A KR102547034B1 KR 102547034 B1 KR102547034 B1 KR 102547034B1 KR 1020190136315 A KR1020190136315 A KR 1020190136315A KR 20190136315 A KR20190136315 A KR 20190136315A KR 102547034 B1 KR102547034 B1 KR 102547034B1
Authority
KR
South Korea
Prior art keywords
control unit
program
frequency
clock
system bus
Prior art date
Application number
KR1020190136315A
Other languages
English (en)
Other versions
KR20200049658A (ko
Inventor
요시히사 노무라
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20200049658A publication Critical patent/KR20200049658A/ko
Application granted granted Critical
Publication of KR102547034B1 publication Critical patent/KR102547034B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • 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

Abstract

정보 처리 장치는, 프로그램을 저장하는 메모리, 시스템 버스, 프로그램을 시스템 버스를 통해 판독하여, 판독된 프로그램이 변경되었는지를 판정하도록 구성된 제1 제어 유닛, 변경되지 않았다고 판정된 프로그램을 메모리로부터 시스템 버스를 통해 판독하여 프로그램을 실행하도록 구성된 제2 제어 유닛, 및 제1 제어 유닛에 포함된 모듈에 공급될 클록의 주파수를 제어하도록 구성된 클록 제어 유닛을 포함하고, 클록 제어 유닛은, 제1 제어 유닛이 프로그램을 판독하기 시작하는 시점으로부터 판독이 종료되는 시점까지, 클록의 주파수가 프로그램에 관한 판정 이후의 클록의 주파수보다 높게 되도록, 클록의 주파수를 제어한다.

Description

정보 처리 장치 및 그 제어 방법{INFORMATION PROCESSING APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 정보 처리 장치 및 그 제어 방법에 관한 것이다.
컴퓨터를 악용하기 위해 소프트웨어를 변경(alter)하기 위한 소프트웨어의 취약성에 대한 공격이 문제가 되고 있다.
WO 09/013825는 제1 중앙 처리 장치(CPU), 제2 CPU, 제2 CPU가 실행하는 프로그램을 저장하는 비휘발성 메모리를 포함하는 정보 처리 장치를 개시한다. 이 정보 처리 장치에서, 제1 CPU는 제2 CPU가 실행하는 프로그램을 비휘발성 메모리로부터 판독하고, 그 프로그램이 변경되었는지를 검증하고, 그 검증의 결과에 기초하여 그 프로그램을 제2 CPU에 출력한다. 따라서, 제2 CPU는 변경되지 않은 프로그램을 실행하기 때문에, 보안을 향상시킬 수 있다.
프로그램이 메모리로부터 판독되어 그 프로그램이 변경되었는지를 검증하는 시스템에서, 프로그램이 변경되었는지를 검출하는데 필요한 시간은 시스템 버스 및 중앙 처리 장치(CPU)와 같은 모듈에 공급되는 클록 주파수가 높으면 짧아진다. 한편, 모듈에 높은 클록 주파수가 공급되면, 모듈로부터의 방열량의 증대 및 소비 전력량의 증대로 이어진다. 방열량 및 소비 전력량은 적을수록 바람직하다. 본 개시내용은 방열량 및 소비 전력량의 증대를 방지하면서 검증 완료에 필요한 시간의 단축을 실현한다.
본 발명의 양태에 따르면, 정보 처리 장치는 프로그램을 저장하는 메모리, 시스템 버스, 메모리에 저장된 프로그램을 시스템 버스를 통해 판독하여, 판독된 프로그램이 변경되었는지를 판정하도록 구성된 제1 제어 유닛, 변경되지 않았다고 판정된 프로그램을 메모리로부터 시스템 버스를 통해 판독하여 프로그램을 실행하도록 구성된 제2 제어 유닛, 및 시스템 버스에 공급될 클록의 주파수 및 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급될 클록의 주파수를 제어하도록 구성된 클록 제어 유닛을 포함하고, 클록 제어 유닛은, 제1 제어 유닛이 프로그램을 판독하기 시작하는 시점으로부터 적어도 판독이 종료되는 시점까지, 적어도 하나의 모듈에 공급될 클록의 주파수가 프로그램에 관한 판정 이후에 적어도 하나의 모듈에 공급될 클록의 주파수보다 높게 되도록, 적어도 하나의 모듈에 공급될 클록의 주파수를 제어한다.
본 발명의 추가적인 특징들은 첨부된 도면들을 참조하여 예시적인 실시예들의 다음 설명으로부터 명백하게 될 것이다.
도 1은 제1 예시적인 실시예에 따른 복합기(multi-function peripheral(MFP))의 하드웨어 구성을 도시하는 블록도이다.
도 2는 중앙 처리 장치(CPU)에 의한 변경 검출 프로세스 동안의 전력 공급 상태를 도시하는 블록도이다.
도 3은 MFP의 소프트웨어 구성을 도시하는 블록도이다.
도 4a 및 도 4b는 기동 시의 동작을 도시하는 개략도이다.
도 5는 제1 예시적인 실시예에 따른 프로세스를 도시하는 흐름도이다.
도 6은 제1 예시적인 실시예에 따른 프로세스를 도시하는 흐름도이다.
도 7은 제2 예시적인 실시예에 따른 MFP의 하드웨어 구성을 도시하는 블록도이다.
도 8은 제2 예시적인 실시예에 따른 프로세스를 도시하는 흐름도이다.
이하, 첨부 도면들을 참조하여 본 발명의 예시적인 실시예들을 상세하게 설명할 것이다. 본 발명은 이하에 설명된 예시적인 실시예들에 한정되는 것이 아니며 이하에 설명된 특징들의 모든 조합이 본 발명의 기술적 해결책에 항상 필수적인 것은 아니라는 점에 유의해야 한다. 또한, 본 발명의 예시적인 실시예에 따른 정보 처리 장치의 예로서 복합기(MFP)(예를 들어, 디지털 MFP)를 설명하였지만, 본 발명의 응용은 MFP에 한정되지 않고, 본 발명은 임의의 정보 처리 장치에 적용될 수 있다.
도 1은 제1 예시적인 실시예에 따른 MFP(10)의 하드웨어 구성을 도시하는 블록도이다.
제어기(20)는 후술될, MFP(10)를 제어하기 위한 하드웨어 모듈들(101 내지 137)을 포함한다. 본 예시적인 실시예에서, 하드웨어 모듈들(101 내지 137)은 하나 이상의 반도체 칩에 통합되는 것으로서 설명될 것이다.
클록 생성 유닛(30)은 클록을 생성하여 MFP(10)에 포함된 각각의 모듈에 적합한 주파수의 클록 신호(외부 클록)를 공급한다. 본 예시적인 실시예에서, 클록 생성 유닛(30)은 클록 신호(31)를 제어기(20)에 포함된 위상 동기 루프(PLL)(123)에 공급한다. PLL(123)은 가변 주파수를 갖는 클록을 공급하도록 구성된 클록 공급 유닛으로서 기능한다. 클록 생성 유닛(30)의 주파수는 클록 제어 신호(32)에 의해 변경가능하다.
리셋 생성 유닛(40)은 리셋 신호를 생성하여 MFP(10)에 포함된 각각의 모듈을 리셋하도록 구성된 반도체 칩이다. 본 예시적인 실시예에서는 제어기(20)로 출력되는 리셋 신호(41)만이 도시되어 있지만, 리셋 신호는 스캐너(141) 및 프린터(142)와 같은 다른 모듈들에도 출력될 수 있다. MFP(10)에 전력이 공급되면, 미리 결정된 시간 동안(예를 들어, 공급된 전력 전압이 안정될 때까지) 리셋 신호(41)를 어써트된 상태로 유지하고, 그 후 리셋 신호(41)를 해제하여 제어기(20)의 리셋을 해제시킨다. 제어기(20)의 리셋이 해제되면, 제어기(20)에 포함된 모듈들은 동작을 개시한다.
중앙 처리 장치(CPU)(101)는 MFP(10)의 소프트웨어 프로그램을 실행하고 전체 장치를 제어한다.
랜덤 액세스 메모리(RAM)(103)는 CPU(101)가 MFP(10)를 제어할 때 프로그램 및 일시적인 데이터를 저장하는데 사용된다.
하드 디스크 드라이브(HDD)(144)는 일부 프로그램 및 다양한 타입의 데이터를 저장한다. HDD(144)는 CPU(101)가 실행하는 Java® 프로그램(214)을 저장한다.
플래시 메모리(145)는 예를 들어, MFP(10)의 미리 결정된 파라미터를 저장한다. 플래시 메모리(145)는 CPU(101)가 실행하는 기본 입력/출력 시스템(BIOS)(210)을 저장한다. 플래시 메모리(145)는 CPU(101)가 실행하는 로더(211), 커널(212), 및 네이티브 프로그램(213)을 더 저장한다. HDD(144)와 플래시 메모리(145)는 동일한 저장 모듈일 수 있다. CPU(111)는 CPU(101)가 실행하는 소프트웨어 프로그램의 변경을 검출하는 변경 검출 소프트웨어 프로그램을 실행하고, MFP(10)의 제어의 일부를 수행한다.
판독 전용 메모리(ROM)(112)는 예를 들어, 변경 검출 소프트웨어 프로그램 및 후술하는 공개 키(public key)를 저장한다. ROM(112)은 CPU(111)가 실행하는 부트 프로그램(209)을 더 저장한다.
ROM(112)은 데이터 콘텐츠의 재기입을 허용하지 않는 마스크 ROM, 또는 제조 시에 한번만 기입을 허용하는 1회 프로그램가능한(OTP) ROM이다.
RAM(113)은 CPU(111)가 MFP(10)를 제어할 때 프로그램 및/또는 일시적인 데이터를 저장하는데 사용되는 랜덤 액세스 메모리이다. RAM들(103 및 113)은 동일한 모듈일 수 있다.
전력 공급 제어 유닛(전력 제어 유닛)(120)은 제어기(20)에 포함된 모듈들로의 전력 공급을 제어하도록 구성된 집적 회로(IC)이다. 전력 공급 제어 유닛(120)은 제어기(20)(MFP(10))가 기동되거나 동작할 때, 모듈들 각각에 미리 결정된 양의 전력을 공급하거나 전력 공급을 정지시킬 수 있다.
클록 제어 유닛(121)은 PLL(123)을 내부 클록 제어 신호(33)를 사용하여 제어한다. 따라서, PLL(123)은 클록 신호(31)의 주파수를 승산하고, 승산된 클록 신호를 제어기(20)에 포함된 모듈들에 공급한다. 클록 제어 유닛(121)은 제어기(20)가 기동되거나 동작될 때, PLL(123)에 대하여 승산의 설정을 변경함으로써, PLL(123)이 모듈들 각각에 최적 주파수를 갖는 클록(내부 클록)을 공급하도록 제어를 수행한다. 또한, 클록 제어 유닛(121)은 각 모듈마다 개별적으로 클록을 게이트(gate)하여 정지시킬 수 있다.
리셋 제어 유닛(122)은 제어기(20)에 포함된 모듈 유닛들을 리셋한다. 리셋 제어 유닛(122)은 제어기(20)가 기동되거나 동작될 때, 각 모듈의 리셋을 리셋하거나 해제한다.
스캐너 인터페이스(I/F) 제어 유닛(131)은 스캐너(141)에 의해 수행되는 원고 판독의 제어를 수행한다. 프린터 I/F 제어 유닛(132)은 예를 들어, 프린터(142)에 의해 수행되는 인쇄 처리의 제어를 수행한다. 패널 제어 유닛(133)은 터치 패널인 조작 패널(143)의 제어를 수행하고, 다양한 타입의 정보의 표시 및 사용자로부터의 명령어 입력을 제어한다.
HDD 제어 유닛(134)은 HDD(144)에 대하여 데이터의 판독 및 기입의 제어를 수행한다. HDD 제어 유닛(134)은 예를 들어, RAM(103)에 저장된 화상 데이터를 판독하여 시스템 버스(109)를 통해 화상 데이터를 HDD(144)에 저장할 수 있다.
플래시 메모리 제어 유닛(135)은 플래시 메모리(145)에 대하여 데이터를 판독 및 기입하도록 제어를 수행한다. 플래시 메모리 제어 유닛(135)은 제어기(20)의 기동시에 플래시 메모리(145)에 저장된 프로그램을 판독하여 시스템 버스(109)를 통해 판독된 프로그램을 RAM(113)에 전개할 수 있다.
네트워크 I/F 제어 유닛(136)은 네트워크(146) 상의 다른 디바이스 또는 서버와의 데이터의 송수신의 제어를 수행한다.
외부 포트 제어 유닛(137)은 제어기(20)의 입력 및 출력 포트들의 제어를 수행한다. 예를 들어, 외부 포트 제어 유닛(137)은 출력 포트를 제어함으로써 발광 다이오드(LED)(147)를 필요에 따라 턴온하여, 소프트웨어 또는 하드웨어의 이상을 외부에 통지한다.
화상 처리 유닛(138)은 스캐너(141)로부터 판독된 화상 데이터를 쉐이딩 보정하고, 화상 데이터를 프린터(142)에 출력하기 위하여 하프톤 처리 및 평활화 처리를 수행하도록 구성된 처리 유닛이다.
시스템 버스(109)는 시스템 버스(109)에 접속된 모듈들을 서로 접속한다. 이 시스템 버스(109)를 통해 CPU들(101 및 111)로부터의 제어 신호들 또는 장치들 간의 데이터 신호들이 송수신된다.
도 3은 제1 예시적인 실시예에 따른 MFP(10)의 소프트웨어 모듈들을 도시하는 블록도이다. 소프트웨어는 다음 설명에서의 CPU(101 또는 111)에 의해 실행될 것이다.
통신 관리 유닛(207)은 네트워크(146)에 접속되는 네트워크 I/F 제어 유닛(136)을 제어하여 네트워크(146)를 통해 외부와 데이터를 송수신한다.
사용자 인터페이스(UI) 제어 유닛(203)은 패널 제어 유닛(133)을 통해 조작 패널(143)로의 입력을 수신하고, 그 입력에 기초하여 처리를 수행하고, 스크린을 조작 패널(143)에 출력한다.
부트 프로그램(209)은 MFP(10)가 턴온될 때 CPU(111)에 의해 실행되는 프로그램이며, 기동에 관계되는 처리로서 제어기(20)에 대하여 기동 시퀀스가 실행된다. 기동 시퀀스에 대하여는 도 4a 및 도 4b를 참조하여 이하에 설명될 것이다. 부트 프로그램(209)은 기동 후에 BIOS(210)의 변경 검출을 실행하기 위한 BIOS 변경 검출 처리부(201)를 포함한다.
BIOS(210)는 부트 프로그램(209)을 실행 후에 CPU(101)에 의해 실행되는 프로그램이다. BIOS(210)는 기동에 관련되는 처리 및 로더(211)에 대한 변경 검출을 실행하는 로더 변경 검출 처리부(202)를 포함한다.
로더(211)는 BIOS(210)에 의해 수행되는 처리가 종료된 후에 CPU(101)에 의해 실행되는 프로그램이다. 로더(211)는 기동에 관계되는 처리 및 커널(212)에 대한 변경 검출을 실행하는 커널 변경 검출 처리부(204)를 포함한다.
커널(212)은 로더(211)의 처리가 종료된 후에 CPU(101)에 의해 실행되는 프로그램이다. 커널(212)은 기동에 관계되는 처리 및 네이티브 프로그램(213)에 대한 변경 검출을 실행하는 네이티브 프로그램 변경 검출 처리부(205)를 포함한다.
네이티브 프로그램(213)은 CPU(101)에 의해 실행되는 프로그램이며, MFP(10)에 저장된 자바(Java) 프로그램(214)과 협력하여 기능을 제공하도록 구성된 복수의 프로그램을 포함한다. 복수의 프로그램은 예를 들어, 스캐너 IF 제어 유닛(131) 또는 프린터 IF 제어 유닛(132)을 제어하는 프로그램 및 기동 프로그램을 포함한다. 기동 프로그램은 커널(212)에 의해 네이티브 프로그램(213)으로부터 판독되어, 기동 처리를 수행한다. 네이티브 프로그램(213)은 프로그램들 중 하나로서 자바 프로그램(214)에 대한 변경 검출을 실행하기 위한 자바 프로그램 변경 검출 처리부(206)를 더 포함한다.
자바 프로그램(214)은 CPU(101)에 의해 실행되는 프로그램이며, MFP(10)에 설치된 네이티브 프로그램(213)(예를 들어, 조작 패널(143)에 화면을 표시하는 자바 프로그램(214))과 협력하여 각각의 기능을 제공하도록 구성된다.
다음으로, MFP(10)의 기동 시퀀스에 대해서는 도 4a 및 도 4b를 참조하여 설명될 것이다.
도 4a는 변경 검출을 수행하지 않고 MFP(10)가 기동되는 순서를 지정하는 기동 시퀀스를 도시하는 개략도이다. 부트 프로그램(209)은 BIOS(210)를 기동하고, BIOS(210)가 로더(211)를 기동하고, 로더(211)는 커널(212)을 기동하고, 커널(212)이 네이티브 프로그램(213)의 기동 프로그램을 기동한다. 기동 프로그램 동안, 자바 프로그램(214)이 기동되고, 그 후 네이티브 프로그램(213) 및 자바 프로그램(214)이 협력하여 MFP(10)에 설치된 각각의 기능을 제공한다.
도 4b는 변경 검출이 수행되는 동안 부트 프로그램(209), BIOS(210), 로더(211), 커널(212), 네이티브 프로그램(213), 및 자바 프로그램(214)이 기동되는 프로세스를 지정하는 기동 시퀀스를 도시하는 개략도이다. 도 4b에서의 개략도는 또한 각각의 프로그램, 디지털 서명(이하, "서명"이라고 칭함), 및 공개 키의 저장 위치를 지정한다.
서명이란, 예를 들어, 정규 프로그램(데이터 스트링)을 미리 결정된 해시 함수를 사용하여 해시값으로 변환하고, 공개 키에 대응하는 개인 키(private key)를 사용하여 해시값을 암호화함으로써 획득된 값이다. 이 암호화된 해시값을 공개 키를 사용하여 복호함으로써 정규 프로그램의 해시값을 계산하고, 변경 검증 대상인 프로그램을 전술한 해시 함수를 사용하여 해시값으로 변환한다. 다음으로, 이 2개의 해시값을 비교한다. 2개의 해시값이 동등하면, 검증 대상 프로그램은 정규 프로그램으로부터 변경되지 않았다고 판정된다. 한편, 2개의 해시값이 상이하면, 검증 대상 프로그램은 정규 프로그램으로부터 변경되었다고 판정된다. 전술한 서명을 사용하여 검증 대상 프로그램이 변경되었는지의 여부를 체크하는 방법은 이하 "프로그램 서명 검증"이라고 칭할 것이다. 프로그램이 변경되지 않은 상황은 "서명 검증이 성공적이다"라고 칭할 것이지만, 프로그램이 변경된 상황은 "서명 검증이 실패다"라고 칭할 것이다. 본 예시적인 실시예에서는, 프로그램이 변경되었는지를 체크하기 위한 방법으로서, 서명 및 공개 키를 사용하는 방법을 채택하였지만, 변경의 존재를 체크하는 다른 방법이 채택될 수 있다.
ROM(112)에는 부트 프로그램(209) 및 BIOS 서명 검증을 위한 공개 키(300)가 저장된다. 플래시 메모리(145)에는 BIOS(210), 로더(211), 커널(212), 네이티브 프로그램(213), 자바 프로그램(214)이 저장된다. 플래시 메모리(145)에는 추가로 BIOS 서명(302), 로더 검증을 위한 공개 키(303), 로더 서명(304), 커널 검증을 위한 공개 키(305), 커널 서명(306), 네이티브 프로그램 검증을 위한 공개 키(307)가 저장된다. 네이티브 프로그램 서명(309), 자바 프로그램 검증을 위한 공개 키(308), 자바 프로그램 서명(310)도 플래시 메모리(145)에 저장된다. 공개 키들과 서명들은 MFP(10)가 출하되기 전에 ROM(112) 및 플래시 메모리(145)에 미리 저장된다.
변경 검출 처리부들(201, 202, 204, 205 및 206)은 다음 프로그램이 변경되었는지를 검증하고, 검증된 프로그램이 변경되지 않았다면, 다음 프로그램을 기동한다. 프로그램들이 변경 검출 및 기동을 순차적으로 겪는 기동 시퀀스에 따라 MFP(10)이 기동된다.
본 예시적인 실시예의 특징인 기동 시퀀스에서 변경 검출 프로그램을 실행할 때에 주파수를 최대 속도에서 동작시키는 방법에 대하여 도 5 및 도 6을 참조하여 설명할 것이다.
도 5는 CPU(111)에 의해 실행되는 기동 시퀀스의 프로세스를 도시하는 흐름도이다. 도 6은 CPU(101)에 의해 실행되는 기동 시퀀스의 프로세스를 도시하는 흐름도이다.
본 예시적인 실시예에서는, 초기 상태에서 이하에 설명되는 설정 하에서 동작이 수행되고나서 도 5의 흐름도에 도시된 프로세스가 실행된다.
MFP(10)가 턴온되면, 전력 공급 제어 유닛(120)은 제어기(20)의 컴포넌트들에 전력을 공급하도록 제어를 수행한다. 전력이 클록 제어 유닛(121)에 공급되면, 클록 제어 유닛(121)은 클록 제어 신호(32)를 클록 생성 유닛(30)에 출력함으로써, 클록 생성 유닛(30)의 발진기 또는 진동자가 클록 신호(31)를 생성하도록 제어를 수행한다. 클록 제어 유닛(121)은 내부 클록 제어 신호(33)를 PLL(123)에 출력함으로써, PLL(123)이 원하는 제어기(20)의 내부 클록을 생성하도록 제어를 수행한다. 전력이 입력될 때의 디폴트 상태에서, PLL(123)의 승산 기능은 동작하고 있지 않고, 클록 신호(31)는 바이패스되어 내부 클록으로서 출력된다. 따라서, 내부 클록의 주파수는 통상 동작 동안 약 1/10의 저주파수이다.
다음으로, 리셋 생성 유닛(40)은 리셋 신호(41)를 통해 리셋 제어 유닛(122)의 리셋을 해제한다.
리셋 제어 유닛(122)의 리셋이 해제되면, 리셋 제어 유닛(122)은 먼저 CPU(111), ROM(112), 및 시스템 버스(109)의 리셋을 해제한다. 이때, CPU(101)의 리셋은 여전히 해제된 채로 있다. 또한, CPU(111)의 리셋 벡터는 ROM(112)의 어드레스이다. 구체적으로, CPU(111)의 리셋이 해제되면, CPU(111)는 ROM(112)에 저장된 프로그램을 실행한다. CPU(101)의 리셋 벡터는 플래시 메모리(145)의 어드레스이다. CPU(101)의 리셋이 해제되면, CPU(101)는 플래시 메모리(145)에 저장된 프로그램을 실행한다.
CPU(111)에 의해 실행되는 단계들 S401 내지 S410의 기동 시퀀스에 대해서는 도 5를 참조하여 설명될 것이다. 구체적으로, 이하에 설명되는 프로세스는 도 3에 도시되며 CPU(111)에 의해 실행되는 소프트웨어 모듈들에 의해 수행된다. 이 기동 시퀀스의 특징은 단계들 S402, S403, S407, 및 S408에서 실행된다. 구체적으로, 프로그램이 변경되었는지를 판정하는 프로세스(이하, 이 프로세스는 "변경 검출 프로세스"라고 칭할 것임) 동안, 변경 검출 프로세스에 수반되는 모듈들 중 적어도 하나에 고주파수 클록이 공급되며, 제어기(20)에 포함된 모듈들 중 일부에만 전력이 공급된다. 변경 검출 프로세스에 수반되는 모듈들의 예들은 CPU(111) 및 시스템 버스(109)를 포함한다. 변경 검출 프로세스(도 5) 후에, 제어기(20)에 포함된 모든 모듈에 전력이 공급되고, 모듈들 중 적어도 하나에 저주파수 클록이 공급된다. 예를 들어, 클록 제어 유닛(121)은 PLL(123)을 제어하여, CPU(111)가 ROM(112)으로부터의 BIOS(210)를 판독하기 시작하는 시점으로부터 적어도 CPU(111)가 BIOS(210)를 판독 종료하는 시점까지 고주파수 클록이 CPU(111) 및 시스템 버스(109)에 공급되도록 한다. 또한, 클록 제어 유닛(121)은 PLL(123)을 제어하여, CPU(111)가 BIOS(210)에 의해 수행된 변경 검출 프로세스를 실행한 후에 저주파수 클록이 CPU(111) 및 시스템 버스(109)에 공급되도록 한다.
단계 S401에서, CPU(111)의 리셋이 해제되면, CPU(111)는 ROM(112)에 저장된 부트 프로그램(209)을 시스템 버스(109)를 통해 판독하여 판독된 부트 프로그램(209)을 실행한다.
단계 S402에서, CPU(111)는 부트 프로그램(209)에 따라 전력 공급 제어(전력 제어)를 수행한다. 단계 S402에서, CPU(111)는 변경 검출을 행하기 위하여 필요한 제어기(20)에 포함된 모듈들 중 일부에만 전력을 공급하는 방식으로 제어를 수행한다. 본 예시적인 실시예에서는, 클록 제어 유닛(121), 리셋 제어 유닛(122), PLL(123), 및 전력 공급 제어 유닛(120)과 같은, 적어도 변경 검출 프로세스에 필요한 모듈들에 전력이 공급된다. CPU(101), RAM(103), CPU(111), ROM(112), RAM(113), HDD 제어 유닛(134), 플래시 메모리 제어 유닛(135), 플래시 메모리(145), 및 외부 포트 제어 유닛(137)에도 전력이 공급된다. 도 2에서 회색으로 나타낸 모듈들에는 전력이 공급되지 않는다.
단계 S403에서, CPU(111)는 부트 프로그램(209)에 따라 이하에 설명되는 클록 제어를 수행한다. 제어기(20)의 기동이 완료된 후에, 제어기(20)에 포함된 각 모듈의 동작 주파수는 MFP(10)의 제품 사양에 따라서 상이하다. 그러나, 기동 시간의 단축하기 위하여, 변경 검출 프로세스가 실행되는 동안, 변경 검출 프로세스에 수반되는 모듈들(예를 들어, CPU(111) 및 시스템 버스(109))에 공급되는 클록의 주파수는 고주파수로 설정하는 것이 바람직하다.
따라서, 본 예시적인 실시예에서, 클록 제어 유닛(121)은 클록 제어 신호(32)를 사용하여, 클록 생성 유닛(30)에게 고주파수를 갖는 클록 신호(31)를 공급하도록 지시한다. 외부 클록이 변경되는 경우에, 수정 진동자 및 수정 발진기가 안정될 때까지 대기할 필요가 있다.
클록 제어 유닛(121)은 내부 클록 제어 신호(33)를 사용하여 PLL(123)을 제어하여, 제어기(20)에 포함된 필요한 모듈들에 공급되는 내부 클록의 주파수가 고주파수로 설정되도록 한다. 이것은 CPU(111), 시스템 버스(109), 및 플래시 메모리 제어 유닛(135)이 처리를 고속으로 수행할 수 있게 한다.
클록 제어 유닛(121)은 내부 클록의 주파수를 변경하기 위하여 이하에 설명되는 처리를 수행한다. 구체적으로, 클록 제어 유닛(121)은 PLL(123)로부터의 클록을 일시적으로 게이트하고, PLL(123)을 바이패스한 외부 클록으로 스위칭하고, 다음으로 PLL(123)에 의해 생성되는 내부 클록이 안정된 후에 고속인 내부 클록을 각 모듈에 공급하도록 제어를 수행한다. 내부 클록을 스위칭하는 제어는 CPU(111)로의 클록 공급도 정지시키기 때문에, 클록 제어 유닛(121)에 제공되는 하드웨어 시퀀서로 제어를 수행한다.
클록 제어 유닛(121)은 CPU(101), RAM(103), CPU(111), ROM(112), RAM(113), 시스템 버스(109), HDD 제어 유닛(134), 플래시 메모리 제어 유닛(135), 및 플래시 메모리(145)에 공급되는 클록 주파수들의 설정을 수행한다. 설정되는 클록 주파수들 각각은 후술하는 단계 S407에서 설정되는 주파수보다 더 높다. 공급되는 각 클록의 주파수는 클록이 공급되는 각 모듈마다 상이하게 설정될 수 있다. 상이한 주파수의 클록이 공급될 수 있는데, 예를 들어, CPU(111)에는 150MHz의 클록이 공급될 수 있고 시스템 버스(109)에는 600MHz의 클록이 공급될 수 있다. 이들 클록은 후술하는 처리를 실행하는데 필요한 시간을 최소화한다. 특히, 플래시 메모리(145)로부터 판독되는 BIOS(210), 로더(211), 및 커널(212)은 데이터 양이 커서, 판독 또는 변경 검출 처리를 위한 암호화/복호화 처리가 기동 시간에 크게 영향을 미치게 될 수 있다. 따라서, 시스템 버스(109)의 동작 주파수와 플래시 메모리 제어 유닛(135) 및 CPU(111)의 동작 주파수를 최대로 함으로써 기동 시간을 단축시킬 수 있다.
단계 S404에서, CPU(111)는 부트 프로그램(209)에 기초하여 리셋을 해제한다. CPU(111)는 변경 검출 프로세스에 필요한 모듈들의 리셋을 해제한다. 구체적으로, RAM(113), HDD 제어 유닛(134), 플래시 메모리 제어 유닛(135), 플래시 메모리(145)의 리셋이 해제된다.
단계 S405에서, CPU(111)는 부트 프로그램(209)에 기초하여 BIOS(210)의 서명을 검증한다. 부트 프로그램(209)에 포함된 BIOS 변경 검출 처리부(201)는 플래시 메모리(145)로부터 BIOS(210) 및 BIOS 서명(302)을 판독하여, 시스템 버스(109)를 통해 BIOS(210) 및 BIOS 서명(302)을 RAM(113)에 기입한다. 다음으로, BIOS 변경 검출 처리부(201)는 BIOS 서명 검증을 위해 사용되는 공개 키(300)를 사용하여 BIOS 서명(302)을 검증한다.
단계 S406에서, CPU(111)는 BIOS(210)의 서명 검증에 성공했는지를 판정한다. 서명 검증의 결과, BIOS(210)가 변경되지 않았다면(해시값과 서명의 값이 일치한다면), CPU(111)는 서명 검증에 성공했다고 판정하고(단계 S406에서의 예), 처리는 단계 S407로 진행한다. 한편, BIOS(210)가 변경되었다면(해시값과 서명의 값이 일치하지 않는다면), CPU(111)는 서명 검증에 실패했다고 판정하고(단계 S406에서의 아니오), 처리는 단계 S410으로 진행한다.
S407에서, CPU(111)는 클록 제어 유닛(121)을 제어하여, PLL(123)에 의해 공급되는 클록의 주파수를, 단계 S403에서 설정한 고주파수로부터, MFP(10)의 제품 사양에 대응하는 상대적으로 낮은 동작 주파수로 변경한다. 공급되는 각 클록의 주파수는 클록이 공급되는 각 모듈마다 상이하게 설정될 수 있다. 예를 들어, CPU(111)에는 100MHz의 클록이 공급될 수 있고, 시스템 버스(109)에는 400MHz의 클록이 공급될 수 있다. 동작 주파수의 변경 방법에 대하여는 전술한 단계 S403에서의 방법과 유사하기 때문에, 그에 대한 설명은 생략한다.
단계 S408에서, CPU(111)는 전력 공급 제어 유닛(120)을 제어하여, 제어기(20)에 포함된 모든 모듈에 전력이 공급되도록 한다.
단계 S409에서, CPU(111)는 리셋 제어 유닛(122)을 제어하여 CPU(101) 및 RAM(103)의 리셋을 해제하고, 부트 프로그램(209)의 처리를 종료한다. 다음으로, 기동 시퀀스는 후술하는 단계 S501로 진행한다. 구체적으로, CPU(101)는 BIOS(210)를 실행하고 BIOS(210)가 기동된다.
단계 S410에서, BIOS 변경 검출 처리부(201)(CPU(111))는 단계 S406에서 서명 검증에 실패한 것을 통지하기 위하여, 외부 포트 제어 유닛(137)을 제어하여 LED(147)를 턴온시키고, 부트 프로그램(209)의 처리를 종료한다.
단계 S407에서의 제어는 CPU(101)에 의해 실행되는 후술하는 프로그램에 대응하는 BIOS(210) 또는 커널(212)을 사용하여 실행될 수 있다. 이러한 방식으로, CPU(101)의 기동 시퀀스를 고속 동작을 위한 주파수로 동작시키고, 기동 시간을 더욱 감축시킨다. 일부 제품 사양은 전력 용량 및 열용량을 갖기 때문에, 고속 동작이 보장되는 주파수 범위 내에서 클록 제어 및 전력 공급 제어가 수행된다.
CPU(101)는 변경되지 않은 BIOS(210)가 실행되도록 전술한 시퀀스를 실행한다.
CPU(101)에 의해 실행되는 기동 시퀀스는 이하 도 6을 참조하여 단계들 S501 내지 S510에서 설명될 것이다. 후술되는 프로세스는 CPU(101)에 의해 실행되는 소프트웨어 모듈들(도 3에 도시됨)에 의해 수행된다. 하기의 설명에서 프로그램(예를 들어, 로더(211), 커널(212), 네이티브 프로그램(213), 및 자바 프로그램(214))에서의 변경이 검출되었는지를 판정하는 방법은 단지 일례이며, 프로그램의 변경을 검출하는 다른 방법이 사용될 수 있다.
단계 S501에서, 플래시 메모리(145)로부터 시스템 버스(109)를 통해 BIOS(210)를 기동하는 경우, CPU(101)는 다양한 타입의 초기화 처리를 수행한다. 이때, BIOS(210)에 포함되는 로더 변경 검출 처리부(202)는 플래시 메모리(145)로부터 로더(211), 커널 검증을 위한 공개 키(305), 및 로더 서명(304)을 판독하여, 로더(211), 커널 검증을 위한 공개 키(305), 및 로더 서명(304)을 RAM(103)에 기입한다. 본 명세서에서의 초기화 시퀀스에서, 예를 들어, HDD 제어 유닛(134)을 초기화하여 HDD(144)에 액세스를 할 수 있도록 한다.
단계 S502에서, 로더 변경 검출 처리부(202)는 로더 검증을 위한 공개 키(303) 및 로더 서명(304)을 사용하여 로더(211)의 서명을 검증하고, 서명 검증에 성공했는지를 판정한다. 서명 검증에 실패한 경우(단계 S502에서의 아니오), 단계 S510에서, 로더 변경 검출 처리부(202)는 패널 제어 유닛(133)을 초기화하고 조작 패널(143)에 에러 메시지를 표시하여, 프로세스를 종료한다. 한편, 서명 검증에 성공한 경우(단계 S502에서의 예), 로더 변경 검출 처리부(202)는 처리를 종료하고, BIOS(210)는 RAM(103)에 기입되어 있던 로더(211)를 기동한다.
단계 S503에서, 로더(211)가 기동되면, 로더(211)는 다양한 타입의 초기화 처리를 수행한다. 본 명세서에서의 초기화에서는, 예를 들어, 패널 제어 유닛(133)이 초기화되고 조작 패널(143)에 기동 화면이 표시된다. 또한, 로더(211)에 포함되는 커널 변경 검출 처리부(204)는 플래시 메모리(145)로부터, 커널(212), 네이티브 프로그램 검증을 위한 공개 키(307), 및 커널 서명(306)을 판독한다. 다음으로, 커널 변경 검출 처리부(204)는 커널(212), 네이티브 프로그램 검증을 위한 공개 키(307), 및 커널 서명(306)을 RAM(103)에 기입한다.
단계 S504에서, 커널 변경 검출 처리부(204)는 커널 검증을 위한 공개 키(305) 및 커널 서명(306)을 사용하여 커널(212)의 서명을 검증하고, 서명 검증에 성공했는지를 판정한다. 서명 검증에 실패한 경우(단계 S504에서의 아니오), 단계 S510에서, 커널 변경 검출 처리부(204)는 조작 패널(143)에 에러 메시지를 표시하고 프로세스를 종료한다. 한편, 서명 검증에 성공한 경우(단계 S504에서의 예), 커널 변경 검출 처리부(204)는 처리를 종료하고, 로더(211)는 RAM(103)에 기입되어 있던 커널(212)을 기동한다.
단계 S505에서, 커널(212)이 기동되면, 커널(212)은 다양한 타입의 초기화 처리를 수행한다. 본 명세서에서의 초기화에서, 예를 들어, 네트워크 I/F 제어 유닛(136)을 초기화하여 네트워크(146)와의 통신을 가능하게 한다. 다음으로, 커널(212)에 포함된 네이티브 프로그램 변경 검출 처리부(205)는 플래시 메모리(145)로부터 네이티브 프로그램(213), 자바 프로그램(214)에 대한 자바 프로그램 검증을 위한 공개 키(307), 및 네이티브 프로그램 서명(309)을 판독하여, 네이티브 프로그램(213), 자바 프로그램(214)에 대한 자바 프로그램 검증을 위한 공개 키(307), 및 네이티브 프로그램 서명(309)을 RAM(103)에 기입한다.
단계 S506에서, 네이티브 프로그램 변경 검출 처리부(205)는 검증을 위한 공개 키(307) 및 네이티브 프로그램 서명(309)을 사용하여 네이티브 프로그램(213)의 서명을 검증하고, 서명 검증에 성공했는지 판정한다. 서명 검증에 실패한 경우(단계 S506에서의 아니오), 단계 S510에서, 네이티브 프로그램 변경 검출 처리부(205)는 조작 패널(143)에 에러 메시지를 표시하고, 프로세스를 종료한다. 한편, 서명 검증에 성공한 경우(단계 S506에서의 예), 네이티브 프로그램 변경 검출 처리부(205)는 처리를 종료하고 네이티브 프로그램(213)을 기동한다.
단계 S507에서, 네이티브 프로그램(213)에 포함되고 변경 검출의 처리를 수행하는 자바 프로그램 변경 검출 처리부(206)가 기동되면, 자바 프로그램 변경 검출 처리부(206)는 HDD(144)로부터 자바 프로그램(214) 및 자바 프로그램 서명(310)을 판독하고, 자바 프로그램(214) 및 자바 프로그램 서명(310)을 RAM(103)에 기입한다.
단계 S508에서, 자바 프로그램 변경 검출 처리부(206)는 자바 프로그램 검증을 위한 공개 키(308) 및 자바 프로그램 서명(310)을 사용하여 자바 프로그램(214)의 서명을 검증하고, 서명 검증에 성공했는지를 판정한다. 서명 검증에 실패한 경우(단계 S508에서의 아니오), 단계 S510에서, 자바 프로그램 변경 검출 처리부(206)는 조작 패널(143)에 에러 메시지를 표시하고, 처리를 종료한다. 한편, 서명의 검증에 성공한 경우(단계 S508에서의 예), 자바 프로그램 변경 검출 처리부(206)는 처리를 종료한다. 단계 S509에서, 자바 프로그램 변경 검출 처리부(206)는 자바 프로그램(214)을 기동한다.
단계 S510에서의 처리는 조작 패널(143)에 에러 메시지를 표시하지만, 에러 메시지를 표시하는 것 대신에, 단계 S410에서와 같이, 외부 포트 제어 유닛(137)을 제어하여 LED(147)를 턴온시킬 수 있다. 대안적으로, LED(147)를 턴온시키면서 조작 패널(143)에 에러 메시지를 표시할 수 있다.
전술한 바와 같이, 제1 예시적인 실시예에 따르면, 부트 프로그램(209)은 BIOS(210)의 변경을 검출하는 프로세스를 고속으로 실행하여 기동 시간을 단축시킬 수 있다.
본 예시적인 실시예에서는, 부트 프로그램(209)이 최대 주파수로부터 MFP(10)의 제품 사양에 따라 통상의 동작 주파수로 변경하는 프로세스를 실행하는 동안 클록 제어가 수행된다. 클록 제어를 수행하는 프로그램은 본 예시적인 실시예에서의 것에 한정되지 않고, BIOS(210) 또는 커널(212)이 클록 제어를 수행할 수 있다.
본 예시적인 실시예에서는 모든 공개 키가 상이한 키로서 설명되었지만, 공개 키들은 동일한 공개 키를 포함할 수 있다. 부트 프로그램(209) 이외의 프로그램들의 저장 위치들은 한정되지 않으며 다른 저장 매체일 수 있다. 또한, 프로그램들의 저장 위치들은 전술한 것들과 상이할 수 있다. 로더(211)는 예를 들어, ROM(112)에 저장될 수 있다.
제2 예시적인 실시예에 대하여 설명할 것이다. 제1 예시적인 실시예에서는, 제어기(20)가 단일 대규모 집적(LSI) 회로를 사용하여 구성된다. 제2 예시적인 실시예에 따른 방법에서는, 기동 시에 변경 검출을 수행하도록 구성된 전용 칩이 사용된다. 제1 예시적인 실시예와의 차이에 대해서만 설명될 것이다.
도 7은 본 예시적인 실시예에 따른 MFP(10)의 하드웨어 블록 구성을 도시한다. 제1 예시적인 실시예와의 차이는 변경 검출 제어기(50)가 집적 회로(IC)라는 점이다. 변경 검출 제어기(50)는 제1 예시적인 실시예에 따른 제어기(20)에 포함된 CPU(111), ROM(112), RAM(113), LED(147), 시스템 버스(109)에 각각 대응하는, CPU(501), ROM(502), RAM(503), LED(148), 시스템 버스(509)를 포함한다. 변경 검출 제어기(50)는 전력 공급 제어 유닛(520), 클록 제어 유닛(521), 리셋 제어 유닛(522), 외부 포트 제어 유닛(504), 및 플래시 메모리 제어 유닛(505)를 추가로 포함한다.
변경 검출 제어기(50)에는 클록 생성 유닛(30)을 제어하기 위한 클록 제어 신호(32) 및 제어기(20)의 리셋을 해제하기 위한 제어기 리셋 신호(42)가 접속된다. 변경 검출 제어기(50)는 플래시 메모리(145) 및 LED(148)에도 접속된다. 제어기(20) 및 변경 검출 제어기(50)는 플래시 메모리(145)에 동시에 액세스할 수 없기 때문에, 스위치(149)가 액세스 제어를 수행한다. 구체적으로, 스위치(149)는 제어기(20)가 플래시 메모리(145)에 액세스하는 동안 변경 검출 제어기(50)가 플래시 메모리(145)에 액세스를 할 수 없게 한다. 스위치(149)는 변경 검출 제어기(50)가 플래시 메모리(145)에 액세스하는 동안 제어기(20)가 플래시 메모리(145)에 액세스할 수 없게 한다.
본 예시적인 실시예에서는, 초기 상태에서 후술되는 설정 하에서 동작이 수행된다.
MFP(10)가 턴온되면, 전력 공급 제어 유닛(520)은 클록 제어 유닛(521), 리셋 제어 유닛(522), CPU(501), ROM(502), 및 RAM(503)에 전력이 공급되도록 제어를 수행한다. 리셋 생성 유닛(40)은 리셋 신호(41)를 통해 변경 검출 제어기(50)의 리셋을 해제한다. 클록 제어 유닛(521)에 전력이 공급되면, 클록 제어 유닛(521)은 MFP(10)에 포함된 클록 생성 유닛(30)의 발진기 또는 진동자와 제어기(20)(미도시됨)에 포함된 PLL(123)이 각각 미리 결정된 클록을 생성하도록 제어를 수행한다. 변경 검출 제어기(50)의 리셋이 해제되면, 리셋 제어 유닛(522)은 CPU(501)의 리셋을 해제한다. CPU(501)의 리셋 벡터는 ROM(502)의 어드레스에 설정되고, CPU(501)의 리셋이 해제되면, CPU(501)는 먼저 ROM(502)에 저장된 프로그램을 실행한다. 한편, 제어기(20)의 리셋이 제어기 리셋 신호(42)를 통해 해제되면, 리셋 제어 유닛(122)은 CPU(101)의 리셋을 해제한다. CPU(101)의 리셋 벡터가 플래시 메모리(145)의 어드레스에 설정되면, 리셋이 해제된 후의 CPU(101)는 먼저 플래시 메모리(145)에 저장된 프로그램을 실행한다.
도 8은 변경 검출을 수행하도록 구성된 전용 칩을 사용한 기동 시퀀스이다. 이하의 설명에서, CPU(501)는 단계들 S701 내지 S710를 실행한다. 단계 S709 이외의 단계들은 제1 예시적인 실시예에서의 것들과 유사하며, 그에 대한 설명은 생략된다. 구체적으로, 단계들 S701 내지 S708 및 S710은 각각 단계들 S401 내지 S408 및 S410과 유사하다. 단계들 S401 내지 S410에서의 제어기(20)에 포함된 모듈들인 CPU(111), ROM(112), 및 RAM(113)은 변경 검출 제어기(50)에 포함된 모듈들인 CPU(501), ROM(502), 및 RAM(503)에 대응한다. 플래시 메모리 제어 유닛(135), 외부 포트 제어 유닛(137), 및 시스템 버스(109)는 각각 플래시 메모리 제어 유닛(505), 외부 포트 제어 유낫(504), 및 시스템 버스(509)에 대응한다. 전력 공급 제어 유닛(120), 클록 제어 유닛(121), 및 리셋 제어 유닛(122)은 전력 공급 제어 유닛(520), 클록 제어 유닛(521), 및 리셋 제어 유닛(522)에 대응한다.
단계 S709에서, CPU(501)는 리셋 제어 유닛(522)을 제어함으로써 제어기(20)에 대한 제어기 리셋 신호(42)의 리셋을 해제하고, 부트 프로그램(209)의 처리를 종료한다.
전술한 바와 같이, 제2 예시적인 실시예에 따르면, 단계들 S701 내지 S710의 기동 시퀀스가 부트 프로그램(209)에 의해 BIOS(210)에 대한 변경 검출 처리를 고속으로 실행할 수 있게 함으로써, 기동 시간을 단축시킬 수 있다.
다른 실시예들
본 발명의 실시예(들)는 또한 저장 매체(이는 더 완전하게는 '비일시적 컴퓨터 판독가능 저장 매체'로서 지칭될 수도 있음)에 기록된 컴퓨터 실행가능 명령어(예를 들어, 하나 이상의 프로그램)를 판독하고 실행하여, 하나 이상의 상기 실시예(들)의 기능을 수행하고, 및/또는 하나 이상의 상기 실시예(들)의 기능을 수행하기 위한 하나 이상의 회로(예를 들어, 주문형 집적 회로(ASIC))를 포함하는 시스템 또는 장치의 컴퓨터에 의해, 그리고 예를 들어, 하나 이상의 상기 실시예(들)의 기능을 수행하기 위해 상기 저장 매체로부터 컴퓨터 실행가능 명령을 판독하고 실행함으로써 및/또는 하나 이상의 상기 실시예(들)의 기능을 수행하기 위해 하나 이상의 회로를 제어함으로써 시스템 또는 장치의 컴퓨터에 의해 수행된 방법에 의해 실현될 수도 있다. 컴퓨터는 하나 이상의 프로세서(예를 들어, 중앙 처리 장치(CPU), 마이크로 처리 장치(MPU))를 포함할 수 있으며, 컴퓨터 실행가능 명령어를 판독하고 실행하기 위해 별도의 컴퓨터 또는 개별 프로세서의 네트워크를 포함할 수 있다. 컴퓨터 실행가능 명령어들은 예를 들어, 네트워크 또는 저장 매체로부터 컴퓨터에 제공될 수 있다. 저장 매체는 예를 들어, 하드 디스크, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 분산형 컴퓨팅 시스템의 스토리지, 광디스크(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD) 또는 블루레이 디스크(BD)™), 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있다.
(기타의 실시예)
본 발명은, 상기의 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실현가능하다.
또한, 1개 이상의 기능을 실현하는 회로(예를 들어,ASIC)에 의해서도 실행가능하다.
본 발명은 예시적인 실시예를 참조하여 설명되었지만, 본 발명은 개시된 예시적인 실시예에 한정되지 않는다는 것을 이해해야 한다. 다음의 청구범위는 이러한 모든 수정 및 균등 구조 및 기능을 포함하도록 가장 넓게 해석되어야 한다.

Claims (17)

  1. 정보 처리 장치이며,
    프로그램을 저장하는 메모리;
    시스템 버스;
    상기 메모리에 저장된 프로그램을 상기 시스템 버스를 통해 판독하여, 판독된 프로그램이 변경(alter)되었는지를 판정하도록 구성된 제1 제어 유닛;
    변경되지 않았다고 판정된 상기 프로그램을 상기 메모리로부터 상기 시스템 버스를 통해 판독하여 상기 프로그램을 실행하도록 구성된 제2 제어 유닛; 및
    상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수를 제어하도록 구성된 클록 제어 유닛을 포함하고,
    상기 클록 제어 유닛은, 상기 제1 제어 유닛이 상기 프로그램을 판독하기 시작하면, 상기 적어도 하나의 모듈에 공급되는 클록의 주파수를, 상기 프로그램의 판독 시작 전에 상기 적어도 하나의 모듈에 공급되는 클록의 주파수보다 높게 되도록 제어하고, 상기 프로그램에 관한 상기 판정이 종료되면, 상기 적어도 하나의 모듈에 공급되는 클록의 주파수를, 상기 프로그램의 판독 시작 후에 상기 적어도 하나의 모듈에 공급되는 클록의 주파수보다 낮게 되도록 제어하는, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 클록 제어 유닛은, 상기 제1 제어 유닛이 상기 프로그램을 판독하기 시작하면, 상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 공급되는 클록의 주파수를 각각, 상기 프로그램의 판독 시작 전에 상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 공급되는 클록의 주파수보다 높게 되도록 제어하고, 상기 프로그램에 관한 판정이 종료되면, 상기 적어도 하나의 모듈에 공급되는 클록의 주파수를, 상기 프로그램의 판독 시작 후에 상기 적어도 하나의 모듈에 공급되는 클록의 주파수보다 낮게 되도록 제어하는, 정보 처리 장치.
  3. 제1항에 있어서,
    상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 공급되는 클록의 주파수는 상이한, 정보 처리 장치.
  4. 제3항에 있어서,
    상기 시스템 버스에 공급되는 클록의 주파수는 상기 제1 제어 유닛에 공급되는 클록의 주파수보다 높은, 정보 처리 장치.
  5. 제1항에 있어서,
    상기 시스템 버스 및 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 클록을 공급하도록 구성된 클록 공급 유닛을 추가로 포함하고,
    상기 클록 제어 유닛은, 상기 클록 공급 유닛에 의해 공급되는 클록의 주파수를 상기 클록 공급 유닛에 설정하고, 상기 클록의 주파수를 제어하는, 정보 처리 장치.
  6. 제1항에 있어서,
    상기 제1 제어 유닛 및 상기 제2 제어 유닛으로의 전력 공급을 제어하도록 구성된 전력 제어 유닛을 추가로 포함하고,
    상기 전력 제어 유닛은, 상기 제1 제어 유닛이 상기 프로그램을 판독하기 시작하는 시점으로부터 상기 판정이 종료되는 시점까지 상기 제1 제어 유닛에는 전력을 공급하고 상기 제2 제어 유닛에는 전력을 공급하지 않으며, 상기 판정이 종료된 후에, 상기 전력 제어 유닛은 상기 제1 제어 유닛 및 상기 제2 제어 유닛에 전력을 공급하는, 정보 처리 장치.
  7. 제1항에 있어서,
    상기 메모리는 개인 키(private key)로 암호화되는 프로그램의 서명을 저장하고,
    상기 제1 제어 유닛은,
    상기 메모리로부터 상기 시스템 버스를 통해 판독된 상기 프로그램의 서명을 계산하도록 구성된 계산 유닛과,
    암호화된 상기 서명을 상기 메모리로부터 판독하도록 구성된 판독 유닛, 및
    판독된 상기 암호화된 서명을 공개 키(public key)로 복호하도록 구성된 복호 유닛을 포함하고,
    상기 제1 제어 유닛은 계산된 상기 서명과 복호된 상기 서명을 비교함으로써 상기 메모리에 저장된 상기 프로그램이 변경되었는지를 판정하는, 정보 처리 장치.
  8. 제7항에 있어서,
    상기 서명은 상기 프로그램의 해시값인, 정보 처리 장치.
  9. 정보 처리 장치이며,
    프로그램을 저장하는 메모리;
    시스템 버스;
    상기 시스템 버스를 통해 데이터를 판독하기 위해 공급되는 클록의 주파수를 제어하도록 구성된 클록 제어 유닛;
    상기 클록 제어 유닛에 의해 제어된 주파수를 갖는 상기 클록을 공급하도록 구성된 클록 공급 유닛;
    상기 메모리에 저장된 프로그램을 상기 시스템 버스를 통해 판독하여, 판독된 프로그램을 검증하도록 구성된 제1 제어 유닛; 및
    상기 검증에 의해 변경되지 않았다고 판정된 상기 프로그램을 상기 메모리로부터 상기 시스템 버스를 통해 판독하여, 판독된 상기 프로그램을 실행하도록 구성된 제2 제어 유닛을 포함하고,
    상기 클록 제어 유닛은, 상기 제1 제어 유닛이 상기 프로그램을 상기 시스템 버스를 통해 판독하기 시작하면, 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 상기 클록의 주파수를, 상기 프로그램의 판독 시작 전에 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 상기 클록의 주파수보다 높게 되도록 제어하고, 상기 프로그램에 관한 판정이 종료되면, 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 상기 클록의 주파수를, 상기 프로그램의 판독 시작 후에 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수보다 낮게 되도록 제어하는, 정보 처리 장치.
  10. 정보 처리 장치의 제어 방법이며,
    상기 정보 처리 장치는,
    프로그램을 저장하는 메모리와,
    시스템 버스와,
    상기 메모리에 저장된 프로그램을 상기 시스템 버스를 통해 판독하여, 판독된 프로그램이 변경되었는지를 판정하도록 구성된 제1 제어 유닛, 및
    변경되지 않았다고 판정된 상기 프로그램을 상기 메모리로부터 상기 시스템 버스를 통해 판독하여 상기 프로그램을 실행하도록 구성된 제2 제어 유닛을 포함하고,
    상기 정보 처리 장치의 제어 방법은,
    상기 시스템 버스 및 상기 제1 제어 유닛에 클록을 공급하는 공급 단계를 포함하며,
    상기 공급 단계는, 상기 제1 제어 유닛이 상기 프로그램을 판독하기 시작하면, 상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수를 각각, 상기 프로그램의 판독 시작 전에 상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수보다 높게 되도록 제어하고, 상기 프로그램에 관한 판정이 종료되면, 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수를, 상기 프로그램의 판독 시작 후에 상기 제1 제어 유닛에 포함된 적어도 하나의 모듈에 공급되는 클록의 주파수보다 낮게 되도록 제어하는 제어 단계를 포함하는, 정보 처리 장치의 제어 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 시스템 버스에 공급되는 클록의 주파수 및 상기 제1 제어 유닛에 공급되는 클록의 주파수는 상이한, 정보 처리 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 시스템 버스에 공급되는 클록의 주파수는 상기 제1 제어 유닛에 공급되는 클록의 주파수보다 높은, 정보 처리 장치의 제어 방법.
  14. 제10항에 있어서,
    상기 정보 처리 장치는 상기 시스템 버스에 공급되는 클록 및 상기 제1 제어 유닛에 공급되는 클록을 생성하도록 구성된 클록 공급 유닛을 추가로 포함하고,
    상기 제어 단계는, 상기 클록 공급 유닛에 공급되는 클록의 주파수를 설정하고, 주파수를 제어하는, 정보 처리 장치의 제어 방법.
  15. 제10항에 있어서,
    상기 제1 제어 유닛 및 상기 제2 제어 유닛으로의 전력 공급을 제어하는 제어 단계를 추가로 포함하고,
    상기 제어 단계는, 상기 제1 제어 유닛이 상기 프로그램을 판독하기 시작하는 시점으로부터 상기 판정이 종료되는 시점까지 상기 제1 제어 유닛에는 전력을 공급하고 상기 제2 제어 유닛에는 전력을 공급하지 않으며, 상기 판정이 종료된 후에, 상기 제어 단계는 상기 제1 제어 유닛 및 상기 제2 제어 유닛에 전력을 공급하는, 정보 처리 장치의 제어 방법.
  16. 제10항에 있어서,
    상기 메모리는 개인 키로 암호화되는 프로그램의 서명을 저장하고,
    상기 제1 제어 유닛에 의한 상기 판정은,
    상기 메모리로부터 상기 시스템 버스를 통해 판독된 상기 프로그램의 서명을 계산하는 단계와,
    암호화된 상기 서명을 상기 메모리로부터 판독하는 단계와,
    판독된 상기 암호화된 서명을 공개 키로 복호하는 단계을 포함하고,
    상기 제1 제어 유닛은, 계산된 상기 서명과 복호된 상기 서명을 비교함으로써 상기 메모리에 저장된 상기 프로그램이 변경되었는지를 판정하는, 정보 처리 장치의 제어 방법.
  17. 제16항에 있어서,
    상기 서명은 상기 프로그램의 해시값인, 정보 처리 장치의 제어 방법.
KR1020190136315A 2018-10-31 2019-10-30 정보 처리 장치 및 그 제어 방법 KR102547034B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018205876A JP7187267B2 (ja) 2018-10-31 2018-10-31 情報処理装置及びその制御方法
JPJP-P-2018-205876 2018-10-31

Publications (2)

Publication Number Publication Date
KR20200049658A KR20200049658A (ko) 2020-05-08
KR102547034B1 true KR102547034B1 (ko) 2023-06-26

Family

ID=70328742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136315A KR102547034B1 (ko) 2018-10-31 2019-10-30 정보 처리 장치 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20200134232A1 (ko)
JP (1) JP7187267B2 (ko)
KR (1) KR102547034B1 (ko)
CN (1) CN111125686B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
KR102395258B1 (ko) * 2020-10-15 2022-05-10 한국전자통신연구원 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312056A (ja) * 2001-04-16 2002-10-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20060069903A1 (en) * 2004-09-30 2006-03-30 Fischer Stephen A Method and apparatus for establishing safe processor operating points
JP2018032313A (ja) * 2016-08-26 2018-03-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4118789A (en) * 1977-06-06 1978-10-03 Allen-Bradley Company Program protection module for programmable controller
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8627133B2 (en) 2010-12-20 2014-01-07 Red Hat Israel, Ltd. Virtual machine boot speed-up by clock acceleration
JP2015064676A (ja) 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
US9654499B2 (en) * 2014-06-20 2017-05-16 Vencore Labs, Inc. System and Method for mitigating TOC/TOU attacks in a cloud computing enviroment
US9490826B1 (en) * 2015-08-19 2016-11-08 Qualcomm Incorporated Methods and apparatus for synchronizing frequency dividers using a pulse swallowing technique
US10348281B1 (en) * 2016-09-06 2019-07-09 Ampere Computing Llc Clock control based on voltage associated with a microprocessor
KR20180043617A (ko) * 2016-10-20 2018-04-30 삼성전자주식회사 피드백 제공 방법 및 이를 지원하는 전자 장치
WO2018226550A1 (en) * 2017-06-06 2018-12-13 Walmart Apollo, Llc Rfid tag tracking systems and methods in identifying suspicious activities
US11144605B2 (en) * 2018-10-12 2021-10-12 Verizon Media Inc. Transmitting content items using search history profiles

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312056A (ja) * 2001-04-16 2002-10-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20060069903A1 (en) * 2004-09-30 2006-03-30 Fischer Stephen A Method and apparatus for establishing safe processor operating points
JP2018032313A (ja) * 2016-08-26 2018-03-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Also Published As

Publication number Publication date
KR20200049658A (ko) 2020-05-08
US20200134232A1 (en) 2020-04-30
CN111125686A (zh) 2020-05-08
JP7187267B2 (ja) 2022-12-12
CN111125686B (zh) 2023-12-08
JP2020071723A (ja) 2020-05-07

Similar Documents

Publication Publication Date Title
US10878098B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
RU2628325C2 (ru) Система на кристалле для выполнения безопасной начальной загрузки, использующее ее устройство формирования изображения и способ ее использования
KR102547034B1 (ko) 정보 처리 장치 및 그 제어 방법
US8438377B2 (en) Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data
CN109684849B (zh) 信息处理装置、其控制方法和存储介质
US20140164753A1 (en) System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US10943013B2 (en) Maintaining keys for trusted boot code
WO2013048407A1 (en) Apparatus, system, and method for providing memory access control
US11914714B2 (en) Information processing apparatus and start-up method of the same
US20200334360A1 (en) Information processing apparatus and method for controlling the same
JP5309709B2 (ja) ソフトウェア改ざん検知方法及び機器
US20200344066A1 (en) Information processing apparatus and data verification method
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP2020091698A (ja) 情報処理装置及びその制御方法
EP3654183B1 (en) Information processing apparatus and method of controlling information processing apparatus
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
US20230103698A1 (en) Information processing apparatus and control method therefor
JP2022182837A (ja) 情報処理装置、及びその制御方法
WO2022256124A1 (en) Firmware-based secure tenancy transfer

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant