KR20160019780A - 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법 - Google Patents

시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법 Download PDF

Info

Publication number
KR20160019780A
KR20160019780A KR1020140104538A KR20140104538A KR20160019780A KR 20160019780 A KR20160019780 A KR 20160019780A KR 1020140104538 A KR1020140104538 A KR 1020140104538A KR 20140104538 A KR20140104538 A KR 20140104538A KR 20160019780 A KR20160019780 A KR 20160019780A
Authority
KR
South Korea
Prior art keywords
flash memory
chip
security
command
access
Prior art date
Application number
KR1020140104538A
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 KR1020140104538A priority Critical patent/KR20160019780A/ko
Publication of KR20160019780A publication Critical patent/KR20160019780A/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법이 개시된다. 본 발명의 일 실시예에 따른 시스템 온 칩(System On Chip)은, 상기 시스템 온 칩에 연결될 수 있는 외부의 플래시 메모리 시스템의 저장 영역에 대한 보안 정보를 저장하는 보안 정보 저장부; 상기 시스템 온 칩의 중앙 처리 장치가 상기 플래시 메모리 시스템으로 인가하고자 하는 명령을 모니터링(monitoring) 하여, 상기 명령에 포함된 주소를 캡쳐(captur)하는 명령 모니터링부; 상기 보안 정보에 근거하여, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근의 허용 여부를 결정하는 접근 결정부; 및 상기 접근 결정부에 의해 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근이 허용된 경우, 상기 명령을 상기 플래시 메모리 시스템에 전송하는 플래시 메모리 인터페이스부를 구비하는 플래시 메모리 제어 블록을 포함한다.

Description

시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법 {SYSTEM ON CHIP, ELECTRONIC APPARATUS INCLUDING SYSTEM ON CHIP AND OPERATION METHOD OF SYSTEM ON CHIP}
본 개시는 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법에 관한 것으로, 플래시 메모리 시스템에 대한 다양한 보안 정책을 설정할 수 있어, 보안성을 유지 내지 증가시키면서도 효율을 향상시키는 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법에 관한 것이다.
네트워킹(networking) 또는 원격 컴퓨팅(remote computing)이 일상화되고, 전자 장치에 저장될 수 있는 데이터의 양이 증대하고 데이터의 종류가 다양해짐에 따라, 보안이 요구되는 데이터에 대한 보안을 효율적으로 수행하기 위한 방안들이 요구되고 있다.
본 개시는 보안성을 유지 내지 증가시키면서도 효율을 향상시키는 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법을 제공하는 것에 있다.
본 발명의 일 실시예에 따른 시스템 온 칩(System On Chip)은, 상기 시스템 온 칩에 연결될 수 있는 외부의 플래시 메모리 시스템의 저장 영역에 대한 보안 정보를 저장하는 보안 정보 저장부; 상기 시스템 온 칩의 중앙 처리 장치가 상기 플래시 메모리 시스템으로 인가하고자 하는 명령을 모니터링(monitoring) 하여, 상기 명령에 포함된 주소를 캡쳐(captur)하는 명령 모니터링부; 상기 보안 정보에 근거하여, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근의 허용 여부를 결정하는 접근 결정부; 및 상기 접근 결정부에 의해 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근이 허용된 경우, 상기 명령을 상기 플래시 메모리 시스템에 전송하는 플래시 메모리 인터페이스부를 구비하는 플래시 메모리 제어 블록을 포함한다.
상기 보안 정보는, 상기 저장 영역에 대응되는 LBA(Logical Block Address) 및 상기 LBA에 대응되는 영역에 대한 보안 정책을 포함할 수 있다.
상기 보안 정책은, 상기 LBA에 대응되는 영역으로, 상기 시스템 온 칩이 보안 모드(secure mode)에서 동작하는 때에 한해 접근이 가능한지 또는 상기 시스템 온 칩이 비보안 모드(non-secure mode)에서도 접근이 가능한지를 나타낼 수 있다.
상기 보안 정책은, 상기 LBA에 대응되는 영역으로 접근이 가능한 명령의 유형을 나타낼 수 있다.
상기 보안 정책은, 상기 LBA에 대응되는 영역에 대한 보안 레벨(secure level)을 나타낼 수 있다.
상기 명령은, SSD(Solid State Drive)로 구현되는 상기 플래시 메모리 시스템에 대응되는 포맷(format)으로 구현될 수 있다.
상기 명령은, 메모리 카드로 구현되는 상기 플래시 메모리 시스템에 대응되는 포맷(format)으로 구현될 수 있다.
상기 접근 결정부는, 상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우, 상기 시스템 온 칩이 보안 모드로 동작하는 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하는 경우 접근을 불허하는 것으로 결정할 수 있다.
상기 접근 결정부는, 상기 시스템 온 칩이 보안 모드 및 비보안 모드 중 어느 모드로 동작하는지를 나타내는 비보안 비트(NS bit)에 근거하여, 상기 시스템 온 칩의 동작 모드를 판단할 수 있다.
상기 시스템 온 칩은, 상기 중앙 처리 장치로부터 상기 플래시 메모리 제어 블록으로 상기 비보안 비트를 전송하는 모드 신호 전송선을 더 포함할 수 있다.
상기 접근 결정부는, 상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우, 상기 시스템 온 칩이 보안 모드로 동작하고 상기 명령이 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 명령인 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하거나 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 명령이 아닌 경우 접근을 불허할 수 있다.
상기 접근 결정부는, 상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우, 상기 시스템 온 칩이 보안 모드로 동작하고 상기 명령이 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 어플리케이션의 실행을 위한 명령인 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하거나 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 어플리케이션의 실행을 위한 명령이 아닌 경우 접근을 불허하는 것으로 결정할 수 있다.
상기 플래시 메모리 제어 블록은, 상기 시스템 온 칩의 외부에 위치하는 메인 메모리(main memory)에 저장된 평문을 암호화한 암호문을 상기 플래시 메모리 인터페이스부로 전송하거나, 상기 플래시 메모리 시스템에 저장된 암호문을 평문으로 복호화하는 암복호화 엔진을 더 포함할 수 있다.
상기 플래시 메모리 제어 블록은, 상기 메인 메모리에 저장된 평문을 상기 암복호화 엔진으로 전송하거나, 상기 암호화 엔진으로부터 복호화된 평문을 상기 메인 메모리로 전송하는 DMA(Dynamic Memory Access)를 더 포함할 수 있다.
상기 접근 결정부는, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근을 불허하는 것으로 결정한 경우, 상기 결정된 결과를 상기 암복호화 엔진 또는 상기 DMA에 전송하여 상기 암복호화 엔진 또는 상기 DMA가 상기 명령에 대한 동작을 수행하지 않도록 제어할 수 있다.
상기 시스템 온 칩은, 암 트러스트존(ARM TrustZone)의 구조로 구현될 수 있다.
본 발명의 다른 실시예에 따른 시스템 온 칩(System On Chip)은, 상기 시스템 온 칩에 연결될 수 있는 외부의 플래시 메모리 시스템에 인가하고자 하는 명령을 생성하는 중앙 처리 장치; 및 상기 시스템 온 칩이 비보안 모드로 동작하고 상기 명령이 상기 플래시 메모리 시스템의 보안 영역에 대한 접근을 요구하는 명령인 경우, 상기 명령을 상기 플래시 메모리 시스템으로 인가하지 아니하는 플래시 메모리 제어 블록을 포함할 수 있다.
상기 시스템 온 칩은, 상기 플래시 메모리 시스템의 보안 영역에 대한 보안 정보를 저장하는 저장부를 더 포함할 수 있다.
상기 보안 정보는, 상기 저장 영역에 대응되는 LBA(Logical Block Address) 및 상기 LBA에 대응되는 영역에 대한 보안 정책을 포함할 수 있다.
본 발명의 실시예에 따른 전자 장치는, 어플리케이션 프로세서(application processor) 및 플래시 메모리 시스템(flash memory system)을 포함하고, 상기 어플리케이션 프로세서는, 상기 플래시 메모리 시스템의 저장 영역에 대한 보안 정보를 저장하는 보안 정보 저장부; 상기 어플리케이션 프로세서의 중앙 처리 장치가 상기 플래시 메모리 시스템으로 인가하고자 하는 명령을 모니터링(monitoring) 하여, 상기 명령에 포함된 주소를 캡쳐(captur)하는 명령 모니터링부; 상기 보안 정보에 근거하여, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근의 허용 여부를 결정하는 접근 결정부; 및 상기 접근 결정부에 의해 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근이 허용된 경우, 상기 명령을 상기 플래시 메모리 시스템에 전송하는 플래시 메모리 인터페이스부를 구비하는 플래시 메모리 제어 블록을 포함한다.
본 개시의 일 실시예에 따른 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법에 의하면, 시스템 온 칩의 내부에서 플래시 메모리 시스템에 대한 다양한 보안 정책을 설정하고 보안 정책에 따른 차별된 제어를 수행함으로써, 보안성을 유지 내지 증가시키면서도 효율을 향상시킬 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 도면이다.
도 2는 도 1의 시스템 온 칩의 CPU(Central Processing Unit)의 일 예를 나타내는 도면이다.
도 3은 도 1의 시스템 온 칩의 동작의 일 예를 나타내는 도면이다.
도 4는 도 1의 시스템 온 칩과 전기적으로 연결될 수 있는 플래시 메모리 시스템의 일 예를 나타내는 도면이다.
도 5는 도 4의 플래시 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 6a, 도 6b 및 도 7은 각각, 도 1의 시스템 온 칩과 전기적으로 연결될 수 있는 플래시 메모리 시스템의 다른 예를 나타내는 도면이다.
도 8은 도 1의 플래시 메모리 제어 블록의 동작에 대한 일 예를 나타내는 도면이다.
도 9는 도 1의 시스템 온 칩에 연결될 수 있는 플래시 메모리의 각 영역에 대한 보안 설정의 일 예를 나타내는 도면이다.
도 10은 도 1의 플래시 메모리 시스템으로 인가되는 명령의 포맷(format)에 대한 일 예를 나타내는 도면이다.
도 11은 도 1의 플래시 메모리 제어 블록의 동작에 대한 다른 예를 나타내는 도면이다.
도 12 및 도 13은 각각, 본 발명의 실시예에 따른 시스템 온 칩에 연결될 수 있는 플래시 메모리의 예를 나타내는 도면이다.
도 14는 본 발명의 다른 실시예에 따른 시스템 온 칩을 나타내는 도면이다.
도 15 내지 도 17은 각각, 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록을 나타내는 도면이다.
도 18은 본 발명의 일 실시예에 따른 모바일 장치를 나타내는 도면이다.
도 19는 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 도면이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템 온 칩(100)은 중앙 처리부(Central Processing Unit(이하 CPU), 110), 메인 메모리 제어 블록(main memory control block, 120), 플래시 메모리 제어 블록(flash memory control block, 130), 다수의 IP(Intellectual Property, 140) 및 버스(bus, 150)를 포함한다. 도 1의 시스템 온 칩(100)은 암 트러스트존(ARM Trustzone)의 아키텍쳐(architecture)로 구현될 수 있다.
CPU(110)는 운영 체제(Operating System)를 구동하여, 어플리케이션(application)의 수행 등을 위해 시스템 온 칩(100)의 동작을 제어한다. 운영 체제는 시스템 온 칩(100) 또는 시스템 온 칩(100)이 포함된 전자 장치(미도시)가 턴-온 되는 때에, 시스템 온 칩(100)의 외부의 플래시 메모리 시스템(300)으로부터 시스템 온 칩(100)의 외부의 메인 메모리(200)로 로딩(loading)된다. CPU(110)는 암(ARM) CPU로 구현될 수 있다.
메인 메모리 제어 블록(120)은 CPU(110)의 제어하에, 시스템 온 칩(100)의 외부에 위치하는 메인 메모리(200)로의 기입 동작 또는 메인 메모리(200)로부터의 독출 동작 등을 제어한다. 메인 메모리(200)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(ferroelectrics Random Access Memory) 및 RRAM(Resistive Random Access Memory) 등일 수 있다.
플래시 메모리 제어 블록(130a)은 시스템 온 칩(100)의 외부에 위치하는 플래시 메모리 시스템(300)로의 프로그램 동작 또는 메인 메모리(200)로부터의 독출 동작 등을 제어한다. 플래시 메모리 제어 블록(130a)은 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133) 및 플래시 메모리 인터페이스부(134)를 구비할 수 있다. 플래시 메모리 제어 블록(130a)의 각 구성 및 동작에 대한 구체적인 사항은 후술된다.
다수의 IP(140)는 각각, 설정된 기능을 수행한다. 예를 들어, 다수의 IP(140)는 3D 엔진(3D engine), 비디오 코덱(video CODEC), 디스플레이 시스템(display system), 카메라 시스템(camera system), 후처리 프로세서(post processor), 퍼리퍼럴(peripheral) 또는 연결 장치(connectivity) 등으로 구현될 수 있다. CPU(110), 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130a) 및 다수의 IP(140)는 버스(150)에 연결되어, 명령, 주소 및 데이터 등을 송수신한다.
도 2는 도 1의 시스템 온 칩의 CPU(Central Processing Unit)의 일 예를 나타내는 도면이다. 도 2를 참조하면, CPU(110)는 CPU 코어(111) 및 레지스터 영역(112)으로 구성될 수 있다. CPU 코어(111)는 사용자 등으로부터 실행이 요청되는 어플리케이션을 실행한다. CPU 코어(111)는 다수의 처리 파이프라인을 구비하여 병렬 처리가 가능할 수 있다. 도 2에서 CPU(110)가 하나의 CPU 코어(111)를 포함하는 것으로 도시되어 있으나 이에 한정되는 것은 아니다. 본 발명의 실시예에 따른 시스템 온 칩(100)의 CPU(110)는, 예를 들어, Big and Little CPU로 구현되어 다수의 CPU 코어를 포함할 수도 있다.
레지스터 영역(112)은 CPU 코어(111)가 어플리케이션을 실행하는데 요구되는 다양한 정보를 포함하는 레지스터들이 포함될 수 있다. 도 2는 예시적으로, 레지스터 영역(112)에, 현재 프로그램 상태 레지스터(Current Program State Register, 112_1) 및 보안 환경 설정 레지스터(Secure Configuration Register, 112_2)를 포함함을 도시하고 있다. 현재 프로그램 상태 레지스터(112_1)는, 시스템 온 칩(100)에서 현재 실행되고 있는 프로그램(어플리케이션 등)의 현재의 동작 상태(조건부 명령의 실행 여부 등)를 나타내는 정보 또는 비트 값(bit value) 등을 포함하여, CPU(110)에 상태 신호(ST_sig)로 제공할 수 있다. 보안 환경 설정 레지스터(112_2)는, 시스템 온 칩(100)이 보안 모드(secure mode)로 동작하는지 비보안 모드(non-secure mode)로 동작하는지를 나타내는 비보안 비트(NS bit(Non-Secure bit)) 등을 포함하여, CPU(110)에 보안 신호(SC_sig)로 제공할 수 있다.
레지스터 영역(112)은 예시된 레지스터들(112_1, 112_2) 이외에, 범용 레지스터, 링크 레지스터(link register) 및 프로그램 카운터(program counter) 등이 더 포함될 수 있다. 현재 프로그램 상태 레지스터(112_1) 및 보안 환경 설정 레지스터(112_2)에 포함된 정보 또는 비트 값은 도 3의 모니터 모드(monitor mode)에서 모니터링(monitoring)된 결과에 따라 조절될 수 있다.
도 3은 도 1의 시스템 온 칩의 동작의 일 예를 나타내는 도면이다. 도 1 내지 도 3을 참조하면, 본 발명의 실시예에 따른 시스템 온 칩(100)은 도 3에 도시되는 바와 같이, 다양한 모드 중 하나로 동작할 수 있다. 도 3은 비보안 커널 모드(non-secure kernel mode), 비보안 유저 모드(non-secure user mode), 모니터 모드(monitor mode), 보안 커널 모드(secure kernel mode) 및 보안 유저 모드(secure user mode)를 예시한다. 비보안 커널 모드 또는 보안 커널 모드에서 운영 체제 코드가 실행되고, 비보안 유저 모드 또는 보안 유저 모드에서 어플리케이션 코드는 실행된다. 모니터 모드는 비보안 월드와 보안 월드의 전환 여부를 모니터링 한다.
시스템 온 칩(100)이 암 트러스트존의 구조로 구현되는 경우, 하나의 물리적인 CPU 코어(111)는 시스템 온 칩(100)을 보안 월드(secure world)와 비보안 월드(non-secure world)로 나눈다. 비보안 월드는 비보안 OS에 의해 비보안 어플리케이션이 실행되고, 보안 모드는 보안 OS에 의해 보안 어플리케이션이 실행된다. 비보안 월드와 보안 월드는 접근할 수 있는 디바이스(device) 또는 메모리 영역이 분리된다. 이는 비보안 월드와 보안 월드에서 기능하는, 도 2의 레지스터 영역(112)에 포함되는 일부 레지스터들을 분리시킴으로써 구현될 수 있다.
예를 들어, 암 트러스트존으로 동작하는 경우, 부팅(booting)이 2회에 걸쳐 수행된다. 2회의 부팅을 통해, 두 월드가 부팅된다. 먼저 보안 월드의 운영 체제(보안 OS)가 부팅되어 각 저장 영역에 대한 접근 권한이 설정된다. 보안 월드에 대한 부팅이 완료된 후, 노말 월드(normal world), 즉 비보완 월드의 운영 체제(비보안 OS)가 부팅된다. 이렇듯 보안 월드에 대한 초기화가 수행된 후에야 비로소 비보안 월드로 전환될 수 있으므로, 보안 월드의 코드(code)들이 안전하게 보호될 수 있다.
비보안 커널 모드 및 비보안 유저 모드는 비보안 월드에, 모니터 모드, 보안 커널 모드 및 보안 유저 모드는 보안 월드에 속할 수 있다. 하나의 월드에서 다른 월드로 전환은 상태 신호(ST_sig)와 보안 신호(SC_sig)의 값을 조절함으로써 수행될 수 있다. 보안 신호(SC_sig)에 포함되는 비보안 비트(NS bit)는 모니터 모드에서만 조절되므로, 모니터 모드는 보안 월드에서 동작한다. 모니터 모드로의 진입은 SMC(Secure Monitor Call) 명령이 실행되는 경우에 수행되는데 SMC 명령은 커널 모드에서만 실행이 가능하므로, 어플리케이션 레벨에서 임의적으로 월드를 전환할 수는 없다.
전술한 바와 같이, 비보안 월드와 보안 월드에서 접근할 수 있는 메모리 영역이 분리된다. 보안 월드 및 비보안 월드 모두에서 접근할 수 있는 메모리 영역은 비보안 영역이고, 보안 월드에서만 접근할 수 있고 비보안 월드에서 접근할 수 없는 메모리 영역은 보안 영역이라 할 수 있다.
도 4는 도 1의 시스템 온 칩과 전기적으로 연결될 수 있는 플래시 메모리 시스템의 일 예를 나타내는 도면이다. 도 4를 참조하면, 플래시 메모리 시스템(300)은 플래시 메모리 컨트롤러(310) 및 플래시 메모리(320)를 포함한다. 플래시 메모리 컨트롤러(310) 는 도 1의 시스템 온 칩(100)으로부터 인가되는 명령에 응답하여, 플래시 메모리(320)로부터 데이터를 독출하거나, 플래시 메모리(320)에 데이터를 프로그램을 하기 위한 제어를 수행한다. 이를 위해, 플래시 메모리 컨트롤러(310) 는 도 5와 같은 펌웨어를 포함할 수 있다.
도 5는 도 4의 플래시 메모리 컨트롤러의 동작을 설명하기 위한 도면이다. 도 5를 참조하면, 본 발명의 실시예에 따른 펌웨어(firmware)는 호스트 인터페이스 레이어(HIL) 및 플래시 변환 레이어(FTL)를 포함할 수 있다. 호스트 인터페이스 레이어(HIL)는 도 1의 시스템 온 칩(100)으로부터 수신되는 요청(프로그램 명령, 독출 명령 등)을 처리한다. 예를 들어, 호스트 인터페이스 레이어(HIL)는 시스템 온 칩(100)의 요청에 대한 기계어 처리 및 데이터 전송 등의 기능을 포함할 수 있다.
플래시 변환 레이어(FTL)는 호스트 인터페이스 레이어(HIL)에서 처리된 결과에 따라, 시스템 온 칩(100)으로부터 수신된 어드레스와 도 5의 플래시 메모리(320)의 물리적 어드레스를 맵핑하기 위한 제어 내지 리소스 할당을 수행할 수 있다. 도 5은 펌웨어가 요청 처리 레이어(RDL)를 더 포함하는 예를 도시한다. 도 5의 요청 처리 레이어(RDL)는 시스템 온 칩(100)의 요청에 따라 플래시 메모리(320)가 동작한 결과를, 요청에 대한 응답으로, 시스템 온 칩(100)에 전송한다. 도 5에서는 요청 처리 레이어(RDL)가 호스트 인터페이스 레이어(HIL)와 별개의 레이어로 구비되는 예를 도시하였으나, 호스트 인터페이스 레이어(HIL)에 포함될 수도 있다.
다시 도 4를 참조하면, 플래시 메모리(320)는 데이터를 저장하기 위한 저장 영역을 포함한다. 플래시 메모리(320)의 저장 영역은 보안 영역(321)과 비보안 영역(322)을 포함할 수 있다. 전술한 바와 같이, 보안 영역(321)은 보안 월드에서만 접근할 수 있고, 비보안 영역(322)은 보안 월드 및 비보안 월드 모두에서 접근할 수 있는 영역이다. 보안 영역(321)은 예를 들어, 부트 데이터(boot data), OS 데이터 및 보안 데이터 등이 저장될 수 있다. 비보안 영역(322)은 유저 데이터(user data)가 저장될 수 있다.
도 4의 플래시 메모리 시스템은 다양한 시스템으로 구현될 수 있다. 또한, 도 4의 플래시 메모리(320)에서 보안 영역과 비보안 영역은 다양한 방식으로 설정될 수 있다. 이에 대하여 설명한다.
도 6a, 도 6b 및 도 7은 각각, 도 1의 시스템 온 칩과 전기적으로 연결될 수 있는 플래시 메모리 시스템의 다른 예를 나타내는 도면이다. 본 발명의 실시예에 따른 시스템 온 칩(100)에 연결되는 플래시 메모리 시스템(300)은 도 6a과 같이, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD)로 구현되는 플래시 메모리 시스템(MSYS)일 수 있다. SSD(MSYS)는 SSD 컨트롤러(SCtrl) 및 플래시 메모리(MDEV)를 포함한다. SSD 컨트롤러(SCtrl)는 SSD(MSYS)의 제1 포트(PT1)를 통해 호스트 장치(HOST)로부터 수신되는 신호(SIG)에 응답하여 플래시 메모리(MDEV)를 제어한다. SSD 컨트롤러(SCtrl)는 다수의 채널(Ch1~CHn)을 통해 플래시 메모리(MDEV)와 연결될 수 있다. 플래시 메모리(MDEV)는 다수로 구비될 수 있다.
다수의 플래시 메모리들은 각각 도 4의 플래시 메모리(320)일 수 있다. 따라서, 각 플래시 메모리에 보안 영역 및 비보안 영역이 포함될 수 있다. 다만, 이에 한정되는 것은 아니다. 도 6b를 참조하면, 다수의 플래시 메모리 중 일부의 플래시 메모리(예를 들어, 제1 플래시 메모리)는 보안 영역만을 구비하고, 일부의 플래시 메모리(예를 들어, 제2 플래시 메모리)는 비보안 영역만을 구비할 수도 있다.
다시 도 6a를 참조하면, SSD(MSYS)는 보조 전원 장치(DSP)를 더 구비하여 제2 포트(PT2)를 통해 호스트 장치(HOST)로부터 전원(PWR)을 입력 받을 수 있다. 다만, 이에 한정되는 것은 아니고, SSD(MSYS)는 호스트 장치(HOST) 이외의 외부 장치로부터 전원을 공급받을 수 있다. SSD(MSYS)는 제1 포트(PT1)를 통해 호스트 장치(HOST)의 요청을 처리한 결과(SIG)를 출력할 수 있다. SSD(MSYS)로부터 출력되는 신호(SIG)는 전술된 메인 응답(MRSP)일 수 있다.
또한, 본 발명의 실시예에 따른 시스템 온 칩(100)에 연결되는 플래시 메모리 시스템(300)은 도 7과 같이, 메모리 카드(700)로 구현될 수 있다. 메모리 카드(700)는 도 1의 시스템 온 칩(100)에 연결되는 휴대용 저장장치일 수 있다. 도 7에 도시된 바와 같이, 메모리 카드(700)는 포트 영역(720), 플래시 메모리 컨트롤러(740) 및 플래시 메모리(660)을 구비할 수 있다. 메모리 카드(700)는 포트 영역(720)을 통해서 시스템 온 칩(100)과 통신할 수 있고, 플래시 메모리 컨트롤러(740) 는 플래시 메모리(760)를 제어할 수 있다. 플래시 메모리(320)는 다수로 구비될 수 있고, 다수의 플래시 메모리(320) 각각은 도 4의 플래시 메모리(320)와 같이, 보안 영역과 비보안 영역을 포함할 수 있다. 또는, 다수의 플래시 메모리(760) 각각은 도 6b와 같이, 일부의 플래시 메모리는 보안 영역만을 구비하고, 일부의 플래시 메모리는 비보안 영역만 구비할 수도 있다.
도 7의 본 발명의 실시예에 따른 시스템 온 칩(100)과 전기적으로 연결될 수 있는 플래시 메모리 시스템(300)인 메모리 카드(700)는, SD 카드(secure digital card), eMMC(embedded Multimedia Memory Card) 또는 UFS(universal Flash Storage) 등 다양한 형태로 구현될 수 있다. 다만, 도 7은 SD 카드, eMMC 또는 UFS을 구분하여 도시하지는 아니하였다.
본 발명의 실시예에 따른 시스템 온 칩(100)은 전술된 플래시 메모리의 보안 영역과 비보안 영역에 대한 접근을, 시스템 온 칩(100)의 내부에 위치하는 플래시 메모리 제어 블록(130a)에 의해 제어할 수 있다. 또한, 본 발명의 실시예에 따른 시스템 온 칩(100)은 보안 영역 및 비보안 영역에 대해 단순히 접근 여부를 설정하는 것에 나아가, 보안 영역 및 비보안 영역에 대한 요청의 유형에 따른 보안 정책을 달리 설정할 수도 있다. 이에 대하여 설명한다.
도 8은 도 1의 플래시 메모리 제어 블록의 동작에 대한 일 예를 나타내는 순서도이다. 도 1 및 도 8을 참조하면, 본 발명의 실시예에 따른 시스템 온 칩(100)의 플래시 메모리 제어 블록(130a)의 보안 정보 저장부(131)는 도 2의 플래시 메모리(320)의 각 영역에 대한 보안 정보를 저장한다(S810). 예를 들어, 보안 정보 저장부(131)는 보안 정보를 도 9에 도시된 표와 같은 형태로 저장할 수 있다.
도 9를 참조하면, 보안 정보는 플래시 메모리(320)의 저장 영역에 대응되는 LBA(Logical Block Address) 및 LBA에 대한 보안 정책을 포함할 수 있고, 표의 형태로 저장될 수 있다. 보안 정책은 LBA로 규정된 영역에 대한 보안 요구 여부, 보안이 요구되는 명령의 유형, 및 보안 레벨(암호화 여부 또는 암호화 정보) 중 적어도 하나 이상을 나타낼 수 있다. 도 9의 예에서, 표의 각 열에는, 시작 LBA, 끝 LBA, 시작 LBA 및 끝 LBA로 규정되는 플래시 메모리(320)의 저장 영역에 대한 보안 독출 여부, 보안 기입 여부, 비보안 독출 여부 및 비보안 기입 여부에 대한 보안 정보가 포함된다. 이때, 보안 독출 및 보안 기입은 각각, 보안 어플리케이션 또는 보안 OS의 수행에 따른 보안 모드에서의 독출 및 기입만이 허용되는 독출 및 기입을 나타내고, 비보안 독출 및 기입은 보안 어플리케이션(또는 보안 OS) 및 비보안 어플리케이션(또는 비보안 OS)의 수행에 따른 독출 및 기입이 모두 허용되는 독출 및 기입을 나타낸다. 즉, 보안 독출 및 보안 기입은 도 3의 보안 모드에서만 허용되고, 비보안 독출 및 비보안 기입은 도 3의 비보안 모드에서도 허용된다.
도 9의 표에 의하면, LBA 0x00000000~0x07FFFFFF로 규정되는 영역에 대하여는 보안 독출 및 보안 기입만이 허용된다. 즉, 비보안 어플리케이션의 수행을 위해, LBA 0x00000000~0x07FFFFFF로 규정되는 영역에 대한 접근이 불허된다. 반면, LBA 0x08000000~0x0BFFFFFF로 규정되는 영역에 대하여는 보안 독출만이 허용된다. 즉, LBA 0x00000000~0x0BFFFFFF로 규정되는 영역에 대한 기입을 위한 접근은 아예 불허된다.
도 8은 단계 S810은 보안 정보가 저장되는 단계를 도시하고 있으나 이에 한정되는 것은 아니다. 본 발명의 실시예에 따른 단계 S810은 보안 정보의 저장 이외에, 보안 정보가 업데이트(update) 되는 경우도 포함될 수 있다. 도 9의 표는 시스템 온 칩(100)이 턴-온 되어 플래시 메모리 시스템(300)으로부터 플래시 메모리 시스템(300)의 동작 환경에 대한 정보를 수신하는 때에 업데이트 될 수 있다. 시스템 온 칩(100)이 턴-온 되어 플래시 메모리 시스템(300)과 초기화 동작을 수행하는 중에, 플래시 메모리 시스템(300)의 저장 영역에 대한 보안 정책, 즉 어느 영역에 어떤 보안 정책이 설정되었는지를 나타내는 보안 정보가 시스템 온 칩(100)으로 전송될 수 있다.
다시 도 1 및 도 8을 참조하면, 플래시 메모리 제어 블록(130a)의 명령 모니터링부(132)는 CPU(110)가 플래시 메모리 시스템(300)으로 인가하는 명령을 모니터링(monitoring)하여(S820), 명령에 연관된 주소를 캡쳐(capture)한다(S830). 명령은, 플래시 메모리 시스템(300)이 eMMC로 구현되는 경우, 도 10과 같은 포맷(format)을 가질 수 있다.
도 10은 JEDEC Standard N0. 84-B45의 Table 34에서 규정된 명령 포맷이다. 도 10을 참조하면, eMMC로 인가되는 명령은 시작 비트(Start Bit), 전송 비트(Transmission Bit), 명령 인덱스(Command Index), 아규먼트(Argument), CRC7(cyclical redundancy check7) 및 끝 비트(End Bit)를 포함하는 48 비트로 구현된다. 시작 비트는 명령의 시작을 알리며 항상 0의 값을 갖는다. 전송 비트는 전송 방향을 나타내는데, 예를 들어, 호스트(도 1의 시스템 온 칩)는 1의 값을 갖는다. 명령 인덱스는 명령의 종류를 나타낸다. 예를 들어, JEDEC Standard N0. 84-B45의 Table 36에서 Table 44는 eMMC에서 사용되는 각종 명령의 종류를 나타낸다. 예를 들어, CMD1은 호스트가 eMMC에게 유효한 동작 상태를 보낼 것을 요청하는 명령이고, CMD2는 호스트가 eMMC에게 장치 식별자를 요청하는 명령이며, CMD17 및 CMD18은 eMMC에 저장된 데이터의 독출을 위한 명령이며, CMD24 및 CMD25는 eMMC에 데이터를 기입하기 위한 명령이다.
아규먼트는 예를 들어, 명령이 수행되는 eMMC의 저장 영역에 대한 주소를 나타낼 수 있으며, 32 비트로 코딩(coding)된다. 플래시 메모리 제어 블록(130a)으로부터 출력되는 명령에서, 아규먼트에 의해 나타내어지는 eMMC의 저장 영역에 대한 주소는 LBA(Logical Block Address)로 표현될 수 있다. eMMC의 메모리 컨트롤러의 FTL은 LBA를 eMMC의 저장 영역에 대한 물리적 주소에 맵핑(mapping)시킨다. CRC7은 에러 검출 및 정정을 위한 값을 포함한다. 끝 비트는 명령의 끝을 나타내며 항상 1의 값을 갖는다. 도 9의 표에서 x는 명령에 따라 다른 값을 가질 수 있음을 나타낸다.
명령 모니터링부(132)는 명령의 아규먼트를 캡쳐하여 접근 결정부(133)에 캡쳐된 주소를 전송할 수 있다. 접근 결정부(133)는 명령 모니터링부(132)로부터 전송된 주소에 대응되는 보안 정보 저장부(131)의 보안 정보에 근거하여 캡쳐된 주소로의 접근 가부를 판단한다(S840). 예를 들어, 명령 모니터링부(132)로부터 전송된 주소가 도 9의 표 상의 LBA 0x00000000~0x07FFFFFF에 포함된다면, 접근 결정부(133)는 보안 어플리케이션 또는 보안 OS에 의한 접근만을 허용한다. 예를 들어, 보안 모드에서 해당 명령이 발생한 경우, 접근 결정부(133)는 해당 영역에 대한 접근을 허용한다(S840의 YES). 이 경우, 플래시 메모리 시스템(300)과 인터페이싱하는 플래시 메모리 인터페이스부(134)는 명령을 플래시 메모리 시스템(300)으로 전송한다(S850). 반면, 비보안 모드에서 해당 명령이 발생한 경우, 접근 결정부(133)는 해당 영역에 대한 접근을 불허한다(S840의 NO). 이 경우, 접근 결정부(133)는 CPU(110)에게 명령이 거부되었음을 알릴 수 있다(S860).
도 11은 본 발명의 다른 실시예에 따른 시스템 온 칩의 동작 방법을 나타내는 도면이다. 도 1 및 도 11을 참조하면, 도 11의 시스템 온 칩(100)의 동작 방법은 도 8의 동작 방법과 마찬가지로, 보안 정보 저장부(131)가 도 2의 플래시 메모리(320)의 각 영역에 대한 보안 정보를 저장하고(S8010), 명령 모니터링부(132)가 CPU(110)로부터 플래시 메모리 시스템(300)으로 인가하는 명령을 모니터링(S820)한다. 또한, 도 11의 시스템 온 칩(100)의 동작 방법은 도 8의 동작 방법과 마찬가지로, 접근(또는 명령의 실행)이 허용되면(S845의 YES) 플래시 메모리 인터페이스부(134)가 명령을 플래시 메모리 시스템(300)으로 전송(S850)하고, 해당 영역에 대한 접근(또는 명령의 실행)을 불허(S845의 NO)되면 접근 결정부(133)는 CPU(110)에게 명령이 거부되었음을 알릴 수 있다(S860).
이때, 도 11의 시스템 온 칩(100)의 동작 방법은, 명령 모니터링부(132)가 CPU(110)로부터 플래시 메모리 시스템(300)으로 인가하는 명령을 모니터링(S820)하여, 명령에 연관된 주소와 함께 명령의 유형을 캡쳐할 수 있다(S835). 명령의 유형의 캡쳐(S835)는, 예를 들어, 도 10의 명령 인덱스를 캡쳐함으로써 수행될 수 있다.
이 경우, 접근 결정부(133)가 명령 모니터링부(132)로부터 전송된 주소에 대응되는 보안 정보 저장부(131)의 보안 정보에 근거하여 그 주소로의 접근 가부(캡쳐된 주소에서의 캡쳐된 유형에 해당하는 명령의 실행 가부)를 판단한다(S845). 캡쳐된 명령의 유형이 캡쳐된 주소에 대해 허용된 명령인지의 판단(S845)은, 예를 들어, 캡쳐된 주소가 도 9의 표 상의 LBA 0x08000000~0x0BFFFFFF로 규정되는 영역인 경우, 캡쳐된 명령이 해당 영역에 대해 허용된 독출 명령인지, 아니면 불허된 기입 명령인지를 판단함으로써 수행될 수 있다.
도 11과 같이, 캡쳐된 명령의 유형에 따라 플래시 메모리 시스템(300)의 저장 영역으로의 접근을 달리하기 위해, 플래시 메모리 시스템(300)의 저장 영역은 각 영역에 따라 보안의 정도를 달리할 수 있다. 본 발명의 일 실시예에 따른 시스템 온 칩에 전기적으로 연결될 수 있는 플래시 메모리의 일 예를 나타내는 도 12를 참조하면, 일 실시예에 따른 플래시 메모리(1220)는 보안 영역(1221) 및 비보안 영역(1222)을 포함할 수 있다. 이때, 보안 영역(1221)은 수행하고자 하는 명령의 유형에 따라 영역이 구분될 수 있다. 예를 들어, 보안 영역(1221)은 보안 독출 영역(1221_1), 보안 기입 영역(1221_2) 및 보안 독출 및 기입 영역(1221_3)을 포함할 수 있다. 보안 독출 영역(1221_1)은 도 9의 표 상의 보안 독출만이 허용되는 LBA 0x08000000~0x0BFFFFFF로 규정되는 영역이고 보안 독출 및 기입 영역(1221_3)은 도 9의 표 상의 보안 독출 및 보안 기입이 허용되는 LBA 0x00000000~0x07FFFFFF로 규정되는 영역에 대응될 수 있다. 비보안 영역(1222) 또한, 비보안 독출 영역(1222_1), 비보안 기입 영역(1222_2) 및 비보안 독출 및 기입 영역(1222_3)으로 구분되어 설정될 수 있다.
도 12는 보안 영역(1221) 및 비보안 영역(1222)이 모두 플래시 메모리 시스템(300)으로 인가되는 명령의 유형에 따라 세부적으로 구분되어 접근이 제어되는 예를 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 보안 영역(1221)만 명령의 유형에 따라 세부적으로 구분되고, 비보안 영역(1222)은 명령의 유형에 무관하게 접근이 허용될 수도 있다. 또한, 본 발명의 일 실시예에 따른 시스템 온 칩에 전기적으로 연결될 수 있는 플래시 메모리의 일 예를 나타내는 도 13에 도시되는 바와 같이, 플래시 메모리 시스템(300)으로 인가되는 명령의 유형이 아닌, 보안의 요구 정도에 따라 보안 영역(1321)은 보안 레벨 1 영역(1321_1) 및 보안 레벨 2 영역(1321_2) 등으로 구분하여 설정할 수 있다. 예를 들어, 보안 레벨 1 영역(1321_1)은 보안 레벨 2 영역(1321_2)와 마찬가지로 보안 영역에 포함되나, 보안 레벨 1 영역(1321_1)의 데이터를 사용할 수 있는 어플리케이션이 보안 레벨 2 영역(1321_2)의 데이터를 사용할 수 있는 어플리케이션보다 한정적일 수 있다. 예를 들어, 보다 높은 정도의 보안이 요구되는 제1 어플리케이션은 보안 레벨 1 영역(1321_1) 및 보안 레벨 2 영역(1321_2)의 데이터를 모두 사용할 수 있으나, 제1 어플리케이션보다 낮은 정도의 보안이 요구되는 제2 어플리케이션은 보안 레벨 2 영역(1321_2)의 데이터의 데이터만을 사용할 수 있다. 또는, 예를 들어, 보안 레벨 1 영역(1321_1)은 전술된 접근에 대한 제어 이외에 암호화가 요구되는 데이터를 저장하는 영역일 수 있다. 이때, 보안 레벨 1 영역(1321_1)은 보안 레벨 2 영역(1321_2)보다 강화된 암호화가 수행될 수 있다. 비보안 영역(1322) 또한 마찬가지이다. 이 경우, 시스템 온 칩(100)의 플래시 메모리 제어 블록(130a)은 명령의 실행 주체(어플리케이션) 또는 암호화 정도에 따라 보안의 레벨을 달리하는 보안 정보를 저장하고, 이에 따라 전술된 접근 허용 여부를 판단할 수 있을 것이다.
이렇듯, 본 발명의 실시예에 따른 시스템 온 칩(100)에 의하면, 플래시 메모리 시스템(300)의 저장 영역에 대한 보안 정책을 시스템 온 칩(100)의 내부에서 수행함으로써, 보안을 유지 내지 강화하면서도 시스템 온 칩(100) 또는 시스템 온 칩(100)을 포함하는 전자 장치의 동작 효율을 증대시킬 수 있다.
도 14는 본 발명의 다른 실시예에 따른 시스템 온 칩을 나타내는 도면이다. 도 14를 참조하면, 본 발명의 다른 실시예에 따른 시스템 온 칩(1400)은 도 1의 시스템 온 칩(100)과 마찬가지로, CPU(110), 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130), 다수의 IP(140) 및 버스(bus, 150)를 포함한다. 나아가, 도 14의 시스템 온 칩(1400)은 모드 신호 전송선(160)을 더 포함할 수 있다. CPU(110), 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130a) 및 다수의 IP(140)는 버스(150) 이외에, 모드 신호 전송선(160)으로 연결된다. CPU(110)는 시스템 온 칩(100)이 보안 모드(secure mode)로 운영되는지 비보안 모드(non-secure mode)로 운영되는지를 나타내는 NS bit를 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130a) 및 다수의 IP(140) 각각에 전송한다. NS bit는 도 2의 보안 신호(SC_sig)에 포함될 수 있다. 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130a) 및 다수의 IP(140) 각각은 NS bit에 근거하여, 현재 실행되는 모드가 보안 모드인지 비보안 모드인지를 판단할 수 있다. 이상에서는 시스템 온 칩이 보안 모드로 동작하는지 여부를 NS bit가 나타내는 것으로 설명되었으나, 이에 한정되는 것은 아니다. NS bit의 논리 레벨과 반전되는 S_bit(Secure_bit)를 통해 시스템 온 칩이 보안 모드로 동작하는지 여부를 나타낼 수도 있다.
모드 신호 전송선(160)은 도 14에 도시된 바와 같이, CPU(110), 메인 메모리 제어 블록(120), 플래시 메모리 제어 블록(130a) 및 다수의 IP(140)에 공통으로 연결될 수 있다. 다만, 이에 한정되는 것은 아니다. 모드 신호 전송선(160)은 CPU(110)와 메인 메모리 제어 블록(120), CPU(110)와 플래시 메모리 제어 블록(130a) 및 CPU(110)와 각각의 IP를 개별적으로 연결하도록 구비될 수 있다.
도 15는 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록을 나타내는 도면이다. 도 1 및 도 15를 참조하면, 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록(130b)은 도 1의 플래시 메모리 제어 블록(130a)과 같이, 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133) 및 플래시 메모리 인터페이스부(134)를 구비할 수 있다. 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133) 및 플래시 메모리 인터페이스부(134)의 구체적인 동작은 전술된 바와 같을 수 있다.
나아가, 도 15의 플래시 메모리 제어 블록(130b)은 암복호화 엔진(135)을 더 구비할 수 있다. 암복호화 엔진(135)은 메인 메모리(200)로부터 메인 메모리 제어 블록(120) 및 버스(150)를 통하여 전송되는 평문(pain text)를 암호문(cipher text)로 암호화하거나, 플래시 메모리 시스템(300)으로부터 플래시 메모리 제어 블록(130a) 및 버스(150)를 통하여 전송되는 암호문을 평문으로 복호화할 수 있다. 본 발명의 실시예에 따른 암복호화 엔진(135)은 암호문을 플래시 메모리 제어 블록(130a)와 플래시 메모리 시스템(300) 사이에서 직접 송수신하는, 즉 암복호화 엔진(135)이 플래시 메모리 제어 블록(130a)에 구비되어 암복호화 엔진(135) 및 플래시 메모리 제어 블록(130a)이 버스(150)를 통해 암호문을 송수신하지 아니하는 온-더-플라이(on-the-fly) 형태로 구현될 수 있다.
암복호화 엔진(135)은 암복호화가 필요한지를 나타내는 제어 신호(XCON)에 응답하여, 암복호화의 수행 여부를 달리할 수 있다. 제어 신호(XCON)는 CPU(110)로부터 생성될 수 있다. 또한, 전술된 보안 정보도 CPU(110)에 의해 보안 정보 저장부(131)로 제공될 수 있다. 접근 결정부(133)는 전술된 판단 동작에 따라 접근을 불허하는 경우, 명령이 불허되었음을 CPU(110)에 통보하는 한편, 암복호화 엔진(135)에도 통보하여, 암복호화 엔진(135)이 해당 명령에 대해 동작하지 아니하도록 할 수 있다.
도 15의 플래시 메모리 제어 블록(130b)을 포함하는 시스템 온 칩에 의하면, 버스(150)를 점유하지 아니하고 암복호화 엔진(135) 및 플래시 메모리 제어 블록(130a) 사이에 암호문의 전송이 가능하여 버스 자원을 절약할 수 있고, 암호문으로 플래시 메모리 시스템(300) 사이의 데이터 송수신을 수행함으로써 보안을 강화할 수 있다.
도 16은 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록을 나타내는 도면이다. 도 1 및 도 16을 참조하면, 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록(130c)은 도 15의 플래시 메모리 제어 블록(130b)과 마찬가지로, 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133), 플래시 메모리 인터페이스부(134) 및 암복호화 엔진(135)을 포함할 수 있다. 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133), 플래시 메모리 인터페이스부(134) 및 암복호화 엔진(135)의 구체적인 동작은 전술된 바와 같을 수 있다. 나아가 도 16의 플래시 메모리 제어 블록(130c)은 DMA(Dynamic Memory Access, 136)을 더 포함할 수 있다. DMA(136)는 CPU(110)의 개입 없이, 메인 메모리(200)로의, 또는 메인 메모리(200)로부터의 데이터 전송을 수행할 수 있다. DMA(136)는 버스(150)와 암복호화 엔진(135) 사이에 연결되어 암복호화 엔진(135)으로 메인 메모리(200)의 데이터를 전송하거나 암복호화 엔진(135)으로부터 메인 메모리(200)로 데이터를 전송할 수 있다. DMA(136)는 암복호화 엔진(135)의 내부에 구비될 수도 있다. 접근 결정부(133)는 전술된 판단 동작에 따라 접근을 불허하는 경우, 명령이 불허되었음을 CPU(110)에 통보하는 한편, 암복호화 엔진(135) 또는 DMA(136)에도 통보하여, 암복호화 엔진(135) 또는 DMA(136)가 해당 명령에 대해 동작하지 아니하도록 할 수 있다.
도 17은 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록을 나타내는 도면이다. 도 1 및 도 17을 참조하면, 본 발명의 다른 실시예에 따른 플래시 메모리 제어 블록(130d)은 도 16의 플래시 메모리 제어 블록(130c)과 마찬가지로 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133), 플래시 메모리 인터페이스부(134), 암복호화 엔진(135) 및 DMA(136)를 포함할 수 있다. 보안 정보 저장부(131), 명령 모니터링부(132), 접근 결정부(133), 플래시 메모리 인터페이스부(134), 암복호화 엔진(135) 및 DMA(136)의 구체적인 동작은 전술된 바와 같을 수 있다. 다만, 도 17의 플래시 메모리 제어 블록(130d)의 암복호화 엔진(135)은 키 저장부(170)에 저장된 암호 키(secure key)를 이용하여 암복호화를 수행할 수 있다. 키 저장부(170)는 OPT 메모리(One Time Programmable memory)로 구현될 수 있다.
이상에서 암복호화 엔진(135) 및 DMA(136)는 플래시 메모리 제어 블록(130)의 내부에 위치하고, 키 저장부(170)는 플래시 메모리 제어 블록(130)의 외부에 위치하는 것으로 설명되었으나, 이에 한정되는 것은 아니다. 암복호화 엔진(135), DMA(136) 및 키 저장부(170)는 시스템 온 칩의 내의 다른 영역에 위치할 수도 있다.
도 18은 본 발명의 일 실시예에 따른 모바일 장치를 나타내는 도면이다. 도 18을 참조하면, 모바일 장치(1800)는 시스템 온 칩으로 구현되는 어플리케이션 프로세서(1810), 커뮤니케이션 프로세서(1820), 카메라(1830), 디스플레이(1840), 커뮤니케이션 RF(communication Radio Frequency, 1850) 및 메모리들(1860, 1870)을 포함할 수 있다. 모바일 장치(1800)에서 어플리케이션 프로세서(1810)에 의해 어플리케이션(application)이 실행될 수 있다. 예를 들어, 카메라(1830)를 통해 영상이 촬영되면, 어플리케이션 프로세서(1810)는 촬영된 영상을 메모리(1870)에 저장하고, 디스플레이(1840)에 디스플레이할 수 있다. 어플리케이션 프로세서(1810)는 전술된 도 1의 시스템 온 칩(100) 또는 도 14의 시스템 온 칩(1400)일 수 있다. 촬영된 영상은 커뮤니케이션 프로세서(1820)의 제어에 따라 커뮤니케이션 RF(1850)을 통해 외부로 전송될 수 있다. 이때, 커뮤니케이션 프로세서(1820)는 영상을 전송하기 위해 임시적으로 영상을 메모리(1860)에 저장할 수 있다. 커뮤니케이션 프로세서(1820)는 그 밖에, 통화, 데이터 송수신을 위한 통신을 제어할 수 있다.
도 19는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(computing system)을 나타내는 도면이다. 도 19를 참조하면, 모바일 기기(mobile device), 데스크탑 컴퓨터(desktop computer) 또는 서버(server)와 같은 컴퓨팅 시스템(1900)에서 시스템 온 칩(1910), 메모리 장치(1920), 입출력 장치(1930) 및 디스플레이 장치(1940)을 더 포함할 수 있으며, 이들 구성요소들은 각각 버스(1950)에 전기적으로 연결될 수 있다. 도 19의 시스템 온 칩(1910)은 전술된 도 1의 시스템 온 칩(100) 또는 도 14의 시스템 온 칩(1400)과 같을 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 개시를 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 개시에 의한 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 1400, 1810, 1910: 시스템 온 칩
200: 메인 메모리
300: 플래시 메모리 시스템
110: CPU
120: 메인 메모리 제어 블록
130a, 130b, 130c, 130d: 플래시 메모리 제어 블록
140: IP들
150: 버스

Claims (10)

  1. 시스템 온 칩(System On Chip)에 있어서,
    상기 시스템 온 칩에 연결될 수 있는 외부의 플래시 메모리 시스템의 저장 영역에 대한 보안 정보를 저장하는 보안 정보 저장부;
    상기 시스템 온 칩의 중앙 처리 장치가 상기 플래시 메모리 시스템으로 인가하고자 하는 명령을 모니터링(monitoring) 하여, 상기 명령에 포함된 주소를 캡쳐(captur)하는 명령 모니터링부;
    상기 보안 정보에 근거하여, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근의 허용 여부를 결정하는 접근 결정부; 및
    상기 접근 결정부에 의해 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근이 허용된 경우, 상기 명령을 상기 플래시 메모리 시스템에 전송하는 플래시 메모리 인터페이스부를 구비하는 플래시 메모리 제어 블록을 포함하는 것을 특징으로 하는 시스템 온 칩.
  2. 제1항에 있어서, 상기 보안 정보는,
    상기 저장 영역에 대응되는 LBA(Logical Block Address) 및 상기 LBA에 대응되는 영역에 대한 보안 정책을 포함하는 것을 특징으로 하는 시스템 온 칩.
  3. 제2항에 있어서, 상기 보안 정책은,
    상기 LBA에 대응되는 영역으로, 상기 시스템 온 칩이 보안 모드(secure mode)에서 동작하는 때에 한해 접근이 가능한지 또는 상기 시스템 온 칩이 비보안 모드(non-secure mode)에서도 접근이 가능한지를 나타내는 것을 특징으로 하는 시스템 온 칩.
  4. 제2항에 있어서, 상기 보안 정책은,
    상기 LBA에 대응되는 영역으로 접근이 가능한 명령의 유형을 나타내는 것을 특징으로 하는 시스템 온 칩.
  5. 제1항에 있어서, 상기 접근 결정부는,
    상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우,
    상기 시스템 온 칩이 보안 모드로 동작하는 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하는 경우 접근을 불허하는 것으로 결정하는 것을 특징으로 하는 시스템 온 칩.
  6. 제1항에 있어서, 상기 접근 결정부는,
    상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우,
    상기 시스템 온 칩이 보안 모드로 동작하고 상기 명령이 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 명령인 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하거나 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 명령이 아닌 경우 접근을 불허하는 것으로 결정하는 것을 특징으로 하는 시스템 온 칩.
  7. 제1항에 있어서, 상기 접근 결정부는,
    상기 캡쳐된 주소가 상기 플래시 메모리 시스템의 저장 영역 중 보안 영역에 대응되는 것으로 판단된 경우,
    상기 시스템 온 칩이 보안 모드로 동작하고 상기 명령이 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 어플리케이션의 실행을 위한 명령인 경우 접근을 허용하는 것으로 결정하고, 상기 시스템 온 칩이 비보안 모드로 동작하거나 상기 캡쳐된 주소에 대응되는 보안 영역에 대해 허용된 어플리케이션의 실행을 위한 명령이 아닌 경우 접근을 불허하는 것으로 결정하는 것을 특징으로 하는 시스템 온 칩.
  8. 제1항에 있어서, 상기 플래시 메모리 제어 블록은,
    상기 시스템 온 칩의 외부에 위치하는 메인 메모리(main memory)에 저장된 평문을 암호화한 암호문을 상기 플래시 메모리 인터페이스부로 전송하거나, 상기 플래시 메모리 시스템에 저장된 암호문을 평문으로 복호화하는 암복호화 엔진을 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  9. 제8항에 있어서, 상기 플래시 메모리 제어 블록은,
    상기 메인 메모리에 저장된 평문을 상기 암복호화 엔진으로 전송하거나, 상기 암호화 엔진으로부터 복호화된 평문을 상기 메인 메모리로 전송하는 DMA(Dynamic Memory Access)를 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  10. 어플리케이션 프로세서(application processor) 및 플래시 메모리 시스템(flash memory system)을 포함하는 전자 장치에 있어서,
    상기 어플리케이션 프로세서는,
    상기 플래시 메모리 시스템의 저장 영역에 대한 보안 정보를 저장하는 보안 정보 저장부;
    상기 어플리케이션 프로세서의 중앙 처리 장치가 상기 플래시 메모리 시스템으로 인가하고자 하는 명령을 모니터링(monitoring) 하여, 상기 명령에 포함된 주소를 캡쳐(captur)하는 명령 모니터링부;
    상기 보안 정보에 근거하여, 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근의 허용 여부를 결정하는 접근 결정부; 및
    상기 접근 결정부에 의해 상기 캡쳐된 주소에 대응되는 저장 영역에 대한 접근이 허용된 경우, 상기 명령을 상기 플래시 메모리 시스템에 전송하는 플래시 메모리 인터페이스부를 구비하는 플래시 메모리 제어 블록을 포함하는 것을 특징으로 하는 전자 장치.
KR1020140104538A 2014-08-12 2014-08-12 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법 KR20160019780A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140104538A KR20160019780A (ko) 2014-08-12 2014-08-12 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140104538A KR20160019780A (ko) 2014-08-12 2014-08-12 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법

Publications (1)

Publication Number Publication Date
KR20160019780A true KR20160019780A (ko) 2016-02-22

Family

ID=55445451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140104538A KR20160019780A (ko) 2014-08-12 2014-08-12 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법

Country Status (1)

Country Link
KR (1) KR20160019780A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113050877A (zh) * 2019-12-27 2021-06-29 北京兆易创新科技股份有限公司 一种映射表存储的方法、装置、电子设备及存储介质
US11461475B2 (en) 2019-03-12 2022-10-04 Samsung Electronics Co., Ltd. Electronic device including secure integrated circuit
US11726672B2 (en) 2020-12-24 2023-08-15 Samsung Electronics Co., Ltd. Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461475B2 (en) 2019-03-12 2022-10-04 Samsung Electronics Co., Ltd. Electronic device including secure integrated circuit
CN113050877A (zh) * 2019-12-27 2021-06-29 北京兆易创新科技股份有限公司 一种映射表存储的方法、装置、电子设备及存储介质
CN113050877B (zh) * 2019-12-27 2024-03-01 兆易创新科技集团股份有限公司 一种映射表存储的方法、装置、电子设备及存储介质
US11726672B2 (en) 2020-12-24 2023-08-15 Samsung Electronics Co., Ltd. Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device

Similar Documents

Publication Publication Date Title
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
TWI570589B (zh) 用以提供受信任計算之裝置
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
KR101224322B1 (ko) 마이크로제어기 내의 데이터 보안 처리를 위한 방법, 장치 및 집적 회로
US8479264B2 (en) Architecture for virtual security module
US11411747B2 (en) Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems
US9607177B2 (en) Method for securing content in dynamically allocated memory using different domain-specific keys
KR102176612B1 (ko) 보안 서브시스템
US20140164793A1 (en) Cryptographic information association to memory regions
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
JP2005523519A (ja) 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能
US20150317495A1 (en) Protecting Critical Data Structures in an Embedded Hypervisor System
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
US10505927B2 (en) Memory device and host device
CN111881490A (zh) 与外置加密芯片融合应用nvme存储设备的共享数据保护方法
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
CN114238185A (zh) 直接存储访问及命令数据传输方法、装置及相关设备
KR20160019780A (ko) 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법
EP4134845A1 (en) Memory access method, system-on-chip, and electronic device
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
US20220198074A1 (en) Secure Transient Buffer Management
KR101320739B1 (ko) 휴대용 단말의 메모리 보안 시스템
KR102421318B1 (ko) 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스
CN112257092B (zh) 数据传输控制方法、密钥管理方法、配置方法及相关装置
US9218484B2 (en) Control method and information processing apparatus

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination