KR101954733B1 - 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 - Google Patents
보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 Download PDFInfo
- Publication number
- KR101954733B1 KR101954733B1 KR1020120119719A KR20120119719A KR101954733B1 KR 101954733 B1 KR101954733 B1 KR 101954733B1 KR 1020120119719 A KR1020120119719 A KR 1020120119719A KR 20120119719 A KR20120119719 A KR 20120119719A KR 101954733 B1 KR101954733 B1 KR 101954733B1
- Authority
- KR
- South Korea
- Prior art keywords
- security
- area
- secure
- hardware
- codec
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 69
- 230000015654 memory Effects 0.000 claims abstract description 129
- 230000003936 working memory Effects 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 12
- 239000000872 buffer Substances 0.000 claims description 81
- 238000013519 translation Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 230000009977 dual effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/78—Protecting 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
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
본 발명에 따른 모바일 장치는, 보안 영역과 비보안 영역으로 구분되는 메모리 영역을 갖는 워킹 메모리, 및 상기 보안 영역에 저장된 콘텐츠를 접근하여 처리하는 시스템 온 칩을 포함하되, 상기 시스템 온 칩은, 보안 운영 체제 또는 비보안 운영 체제에 따라 구동되는 프로세싱 유닛, 상기 프로세싱 유닛의 제어에 따라 상기 콘텐츠를 읽어와 처리하되, 마스트와 슬레이브에 대해서 서로 다른 보안 속성으로 설정되는 적어도 하나의 하드웨어 블록, 상기 워킹 메모리에 대한 상기 하드웨어 블록의 접근을 추가로 제한하는 적어도 하나의 메모리 관리 유닛, 그리고 상기 슬레이브 포트와 상기 마스터 포트의 보안 속성 또는 상기 워킹 메모리의 영역별 접근 권한을 설정하는 접근 제어 유닛을 포함한다.
Description
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치에 관한 것이다.
최근, 스마트폰, 테이블릿 PC, 디지털 카메라, MP3 플레이어, PDA 등과 같은 모바일 장치의 이용이 폭발적으로 증가하고 있다. 모바일 장치에는 다양한 종류의 콘텐츠를 처리하기 위한 응용 프로그램(Application program)들이 구동된다. 그리고 다양한 콘텐츠들은 비합법적인 사용자의 접근을 차단하기 위한 보안화 기술이 적용된다. 이러한 콘텐츠를 보안 콘텐츠라 칭하기로 한다. 보안 콘텐츠의 제공자는 콘텐츠가 허가되지 않은 불법 사용이나 불법 복제로부터 보호될 수 있고, 합법적 사용자에 의해서만 재생될 수 있는 모바일 장치의 지원을 요구한다.
이러한 기술은 모바일 장치의 하드웨어뿐 아니라 소프트웨어를 포함하는 시스템 전반에 걸친 보호 수단들을 필요로 한다. 이를 위해 디지털 콘텐츠 권리 관리(Digital Right Management: 이하 'DRM')라는 요구 사항이 지정되었다. 그리고 DRM은 대부분의 모바일 장치에서 구현이 의무화되어 있다. DRM의 핵심 요구 사항들을 준수하기 위해서는 허가되지 않은 접근(Access)으로부터 모바일 장치의 특정 소프트웨어나 하드웨어를 보호해야 한다. 이러한 기능을 지원하는 콘텐츠 보안 방식으로 트러스트존(TrustZone)이 있다. 하지만, 운영 체제(OS)의 구조 및 코드가 공개된 스마트폰에서는 상대적으로 보안 콘텐츠를 공격하기 용이한 면이 있다. 특히, 사용자가 임의의 응용 프로그램을 설치할 수 있는 스마트폰 환경에서 고품질의 콘텐츠가 보안 위협으로부터 안전하게 처리될 수 있어야 한다.
본 발명의 목적은, 기본 하드웨어의 변경을 최소화하면서도 보안 콘텐츠에 대한 높은 보안 성능을 제공하기 위한 시스템 온 칩을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 모바일 장치는, 보안 영역과 비보안 영역으로 구분되는 메모리 영역을 갖는 워킹 메모리, 및 상기 보안 영역에 저장된 콘텐츠를 접근하여 처리하는 시스템 온 칩을 포함하되, 상기 시스템 온 칩은, 보안 운영 체제 또는 비보안 운영 체제에 따라 구동되는 프로세싱 유닛, 상기 프로세싱 유닛의 제어에 따라 상기 콘텐츠를 읽어와 처리하되, 마스트와 슬레이브에 대해서 서로 다른 보안 속성으로 설정되는 적어도 하나의 하드웨어 블록, 상기 워킹 메모리에 대한 상기 하드웨어 블록의 접근을 추가로 제한하는 적어도 하나의 메모리 관리 유닛, 그리고 상기 슬레이브 포트와 상기 마스터 포트의 보안 속성 또는 상기 워킹 메모리의 영역별 접근 권한을 설정하는 접근 제어 유닛을 포함한다.
상기 목적을 달성하기 위한 본 발명에 따른 모바일 장치는, 코덱 입력 버퍼 영역, 코덱 출력 버퍼 영역, 프레임 버퍼 영역을 포함하는 보안 영역과 비보안 영역의 저장 영역을 포함하는 워킹 메모리, 그리고 상기 보안 영역 또는 상기 비보안 영역을 트러스트존 방식에 따라 접근하는 시스템 온 칩을 포함하되, 상기 시스템 온 칩은, 상기 트러스트존 방식의 접근 제어를 지원하는 프로세싱 유닛, 상기 프로세싱 유닛의 제어에 따라 상기 코덱 입력 버퍼 영역에 저장된 데이터를 처리하여 상기 코덱 출력 버퍼 영역에 저장하는 하드웨어 코덱, 상기 코덱 출력 버퍼에 저장된 데이터의 이미지 포맷을 변환하여 상기 프레임 버퍼 영역에 저장하는 이미지 컨버터, 상기 프레임 버퍼 영역에 저장된 데이터를 디스플레이에 표시하는 LCD 컨트롤러, 및 상기 하드웨어 코덱, 상기 이미지 컨버터, 상기 LCD 컨트롤러 각각의 상기 워킹 메모리로의 접근을 제한하는 제 1 내지 제 3 메모리 관리 유닛들을 포함하되, 상기 하드웨어 코덱, 상기 이미지 컨버터, 상기 LCD 컨트롤러 각각의 슬레이브 포트와 마스터 포트는 서로 다른 보안 속성으로 설정된다.
상기 목적을 달성하기 위한 본 발명에 따른 워킹 메모리에 접근하여 보안 콘텐츠를 처리하는 시스템 온 칩(SoC)은 상기 워킹 메모리에 로드된 보안 운영 체제와 비보안 운영 체제에 의해서 배타적으로 구동되는 프로세싱 유닛, 상기 프로세싱 유닛의 제어에 따라 상기 보안 콘텐츠를 재생하기 위한 적어도 하나의 하드웨어 블록, 그리고 상기 하드웨어 블록의 상기 워킹 메모리로의 접근을 제한하는 메모리 보호 유닛을 포함하되, 상기 하드웨어 블록의 슬레이브 포트는 비보안 속성으로, 상기 하드웨어 블록의 마스터 포트는 보안 속성으로 설정된다.
이상과 같은 본 발명의 실시 예에 따르면, 보안 콘텐츠에 대한 높은 보안 수준을 제공할 수 있다. 그리고 기존의 하드웨어에 대한 변경을 최소화하여 개발이나 검증에 필요한 비용을 최소화할 수 있다. 또한, 보안 영역에 대한 변경을 최소화하여 보안성과 시스템 안정성을 동시에 높일 수 있다. 더불어, 본 발명의 실시 예에 따르면, 보안 영역과 비보안 영역 간의 전환 회수를 크게 줄일 수 있어, 성능의 오버헤드 발생을 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 모바일 장치를 보여주는 블록도이다.
도 2는 도 1의 설정에서의 소프트웨어 구조를 간략히 보여주는 블록도이다.
도 3은 본 발명의 제 1 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 4는 도 3의 시스템 온 칩의 소프트웨어 구조를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 메모리 맵을 보여주는 도면이다.
도 6은 하드웨어 코덱이 접근 가능한 메모리 맵을 보여주는 도면이다.
도 7은 이미지 컨버터가 접근 가능한 메모리 맵을 보여주는 도면이다.
도 8은 LCD 컨트롤러가 접근 가능한 메모리 맵을 보여주는 도면이다.
도 9는 본 발명의 제 2 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 10은 본 발명의 제 3 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 11은 본 발명의 제 4 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 12는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 보안 기능을 수행하는 컴퓨터 시스템을 보여주는 블록도이다.
도 2는 도 1의 설정에서의 소프트웨어 구조를 간략히 보여주는 블록도이다.
도 3은 본 발명의 제 1 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 4는 도 3의 시스템 온 칩의 소프트웨어 구조를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 메모리 맵을 보여주는 도면이다.
도 6은 하드웨어 코덱이 접근 가능한 메모리 맵을 보여주는 도면이다.
도 7은 이미지 컨버터가 접근 가능한 메모리 맵을 보여주는 도면이다.
도 8은 LCD 컨트롤러가 접근 가능한 메모리 맵을 보여주는 도면이다.
도 9는 본 발명의 제 2 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 10은 본 발명의 제 3 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 11은 본 발명의 제 4 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 12는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 보안 기능을 수행하는 컴퓨터 시스템을 보여주는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 시스템 온 칩(SoC)이 본 발명의 특징 및 기능을 설명하기 위한 단위의 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 실시 예에 따른 모바일 장치를 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 모바일 장치(100)는 프로세싱 유닛(110), 컨트롤 버스(120), 하드웨어 블록(130), 메모리 관리 유닛(140), 데이터 버스(150), 접근 제어 유닛(160), 그리고 워킹 메모리(170)를 포함한다. 여기서, 워킹 메모리(170)를 제외한 구성들은 하나의 시스템 온 칩(SoC)에 포함될 수 있다.
프로세싱 유닛(110)은 애플리케이션 또는 운영 체제(OS)와 같은 소프트웨어에 의해서 제어된다. 프로세싱 유닛(110)은 다양한 프로그램이나, 하드웨어 드라이버(Hardware driver)들을 구동하게 될 것이다. 특히, 프로세싱 유닛(110)의 동작 모드는 일반 모드(Normal Mode)와 보안 모드(Secure Mode)로 구분될 수 있다. 본 발명의 프로세싱 유닛(110) 상에서 동작하는 소프트웨어는 마치 2개의 분리된 프로세서에서 동작하는 것처럼 보이게 하는 추상화 기술이 적용된다. 예를 들면, 단일 또는 멀티 코어로 구성되는 프로세싱 유닛(110) 상에서 보안 관련 소프트웨어와 일반 소프트웨어가 구분되어 구동될 수 있다. 예를 들면, 프로세싱 유닛(110)은 트러스트존(TrustZone) 보안 구조를 지원하는 임베디드 프로세서일 수 있다.
프로세싱 유닛(110)은 제공되는 콘텐츠에 포함된 보안 상태 비트(Secure state bit)를 참조하여 하드웨어 블록(130)과 메모리 관리 유닛(140)에 대한 보안 모드 설정을 수행할 수 있다. 프로세싱 유닛(110)의 보안 모드 설정은 접근 제어 유닛(160)의 설정을 통해서 달성될 수 있다.
예를 들면, 보안 콘텐츠를 처리(예를 들면, 재생)하는 경우, 프로세싱 유닛(110)은 하드웨어 블록(130)에 대한 보안 속성을 2중으로 설정할 수 있다. 즉, 프로세싱 유닛(110)은 하드웨어 블록(130)의 슬레이브 포트(132)를 비보안 모드(NS)로 설정할 수 있다. 그리고 프로세싱 유닛(110)은 하드웨어 블록(130)의 마스터 포트(134)를 보안 모드(S)로 설정할 수 있다. 이러한 프로세싱 유닛(110)의 제어 동작은 컨트롤 버스(120)를 통해서 이루어질 것이다.
컨트롤 버스(120)는 프로세싱 유닛(110)이 하드웨어 블록(130)을 제어하는 제어 경로를 제공한다. 컨트롤 버스(120)를 통한 프로세싱 유닛(110)의 하드웨어 유닛(130)의 접근 권한은 접근 제어 유닛(160)에 정의될 수 있다. 컨트롤 버스(120)를 통한 프로세싱 유닛(110)의 하드웨어 블록(130)으로의 접근은 자유롭게 이루어질 수 있다. 왜냐하면, 하드웨어 블록(130)의 보안 속성이 컨트롤 버스(120)에 대해서 비보안 모드(NS)로 설정되어 있기 때문이다.
하드웨어 블록(130)은 제공된 콘텐츠를 실질적으로 재생하기 위한 구성이다. 예를 들면, 하드웨어 블록(130)은 압축된 콘텐츠 데이터(Contents data)를 디코딩하고 그 결과로 동영상이나 음원 신호로 출력하는 코덱일 수 있다. 하드웨어 블록(130)은 이미지의 포맷이나 크기를 대응하는 모바일 장치에 적합한 형태로 변환하는 이미지 컨버터일 수 있다. 그리고 하드웨어 블록(130)은 대응하는 이미지를 표시하는 역할을 수행할 수도 있다. 하지만, 하드웨어 블록(130)의 기능이나 세부적인 구성은 여기에만 국한되지 않는다. 콘텐츠의 재생을 위한 데이터 처리를 수행하는 다양한 구성이 하드웨어 블록(130)에 포함될 수 있다.
본 발명의 하드웨어 블록(130)은 이중적인 보안 속성으로 설정될 수 있다. 즉, 하드웨어 블록(130)이 컨트롤 버스(120)에 연결되는 슬레이브 포트(132)는 비보안 모드(NS)로 설정된다. 그리고 데이터 버스(150)에 연결되는 마스터 포트(134)는 보안 모드(S)로 설정될 수 있다. 따라서, 하드웨어 블록(130)은 비보안 모드로 동작하는 모든 마스터 IP(Intellectual Property)들에 대해서 자유롭게 제어될 수 있다. 즉, 하드웨어 블록(130)은 프로세싱 유닛(110)에 의해서 구동되는 비보안 영역의 소프트웨어에 의해서 제한없이 접근될 수 있다.
메모리 관리 유닛(140)은 하드웨어 블록(130)과 데이터 버스(150) 사이에서 하드웨어 블록(130)이 접근하는 메모리 영역을 제한한다. 하드웨어 블록(130)에서 슬레이브 포트(132)를 비보안 모드(NS)로 설정하고, 마스터 포트(134)를 보안 모드(S)로 설정하는 경우에는 소프트웨어의 보안 영역과 비보안 영역의 분리 원칙을 무력화시킬 우려가 있다. 왜냐하면, 비보안 모드로 동작하는 임의의 마스터 IP를 통해서 보안 모드에 해당하는 트랜잭션이 만들어질 수 있기 때문이다.
본 발명에서는 하드웨어 블록(130)의 이중 보안 속성에 따른 취약점을 메모리 관리 유닛(140)에 의해서 해결될 수 있다. 메모리 관리 유닛(140)은 보안 영역에서 전적으로 관리된다. 그리고 메모리 관리 유닛(140)의 메모리 변환 테이블(Translation Table)에는 하드웨어 블록(130)이 접근하는 메모리 영역만 맵핑되도록 설정된다. 상술한 메모리 관리 유닛(140)의 설정에 의해서, 일반 운영 체제(OS)가 수행중인 때에, 프로세싱 유닛이 보안 메모리 영역에 존재하는 콘텐츠에 대한 접근이 불가하게 된다.
데이터 버스(150)는 프로세싱 유닛(110)이나 하드웨어 블록(130)에 의한 메모리 접근 경로를 제공한다. 데이터 버스(150)를 통해서 프로세싱 유닛(110)과 하드웨어 블록(130)은 워킹 메모리(170)를 접근한다. 보안 콘텐츠를 처리하기 위해서, 하드웨어 블록(130)은 단위 데이터를 읽어와 처리한 후에, 다시 워킹 메모리의 지정된 주소 영역에 저장하게 될 것이다.
접근 제어 유닛(160)은 프로세싱 유닛(110)의 제어에 따라 하드웨어 블록(130)의 보안 속성을 설정할 수 있다. 접근 제어 유닛(160)은 프로세싱 유닛(110)의 제어에 따라 워킹 메모리(170)의 보안 속성을 설정할 수 있다. 접근 제어 유닛(160)은 시스템 온 칩 내부의 하드웨어 블록들의 보안 속성을 설정하기 위한 기능을 포함한다. 그리고 접근 제어 유닛(160)은 시스템 온 칩에 의해서 접근되는 워킹 메모리의 보안 속성도 선택적으로 제어할 수 있다. 예를 들면, 접근 제어 유닛(160)은 ARM사의 TrustZone의 기능을 포함할 수 있다. 접근 제어 유닛(160)은 하드웨어 IP에 대한 보안 속성과 워킹 메모리(170)에 대한 보안 속성을 보안 모드와 비보안 모드로 구분해서 관리하는 제반 접근 제어 장치를 포함할 수 있다.
워킹 메모리(170)에는 다양한 데이터가 로드될 수 있다. 예를 들면, 운영 체제나 하드웨어를 구동하기 위한 드라이버들이 로드될 수 있다. 특히, 워킹 메모리(170)의 메모리 영역은 보안 영역과 비보안 영역으로 구별된다. 이러한 영역의 분리는 접근 제어 유닛(160)의 워킹 메모리 속성을 정의하는 기능을 통해서 구현될 수 있다. 보안 콘텐츠는 디코딩 과정을 거친 후에는 워킹 메모리(170)의 보안 메모리 영역에만 저장된다.
이상에서 설명된 모바일 장치(100)에 따르면, 비보안 모드에 대응하는 경우에도 보안 콘텐츠에 대한 접근이 완전히 차단될 수 있다.
도 2는 도 1의 설정에서의 소프트웨어 구조를 간략히 보여주는 블록도이다. 도 2를 참조하면, 모바일 장치(100)에서 구동되는 운영 체제(OS)는 일반 운영 체제(210)와 보안 운영 체제(220)로 분리된다. 상술한 도 1에서 설명된 방식으로 하드웨어 블록(130)의 보안 설정을 이중으로 관리하고, 메모리 관리 유닛(140)을 통해서 추가적인 접근 제어를 수행하는 경우에, 보안 운영 체제(220)의 부담은 감소한다. 반면, 일반 운영 체제(210) 상에서 하드웨어 블록(130)을 제어하기 위한 드라이버가 구동될 것이다. 따라서, 보안 모드와 일반 모드 간의 스위칭 발생이 최소화될 수 있다. 일반 모드는 비보안 모드(Non-secure mode)를 의미한다. 좀더 구체적으로 설명하면 다음과 같다.
모바일 장치(100)를 구동하기 위한 소프트웨어 구조는 크게 보안 모드(Secure mode)와 일반 모드(Normal mode)로 이분화된다. 각각의 모드는 하나의 프로세싱 유닛(110)에서 구동되기 때문에 스위칭에 의해서 서로 다른 시간 슬롯에서 실행된다.
일반 운영 체제(210)는 보안 요구가 없는 다양한 기본 동작들을 지원한다. 일반 운영 체제(210)는, 예를 들면, 리눅스 계열, 윈도우 계열, 안드로이드 또는 iOS 계열들 중 적어도 하나의 운영 체제일 수 있다. 특히, 본 발명에 따른 소프트웨어 구조에서, 하드웨어 블록 드라이버(215)는 일반 운영 체제(210) 영역에서 구동된다. 하드웨어 블록(130)을 구동하는 하드웨어 블록 드라이버(215)의 일반 영역에서의 구동은 이미 검증된 소프트웨어를 재활용을 가능케 한다. 보안 영역에서 구동할 하드웨어 블록(130)을 구동하기 위한 드라이버 소프트웨어를 추가해야 한다면, 보안 운영 체제(220)의 가용 자원의 소모를 피할 수 없다.
보안 운영 체제(220)는 보안을 요구하는 데이터 처리를 위해 별도로 구동되는 운영 체제이다. 일반적으로, 보안 콘텐츠를 처리하기 위해서는 보안 운영 체제(220) 상에서 관련 IP들의 드라이버가 수행되어야 했다. 하지만, 본 발명의 하드웨어 블록(130)의 이중적인 보안 설정 및 메모리 관리 유닛(140)에 의한 추가 설정을 통해서 보안 콘텐츠를 재생하기 위한 하드웨어 블록 드라이버(215)는 보안 운영 체제(220) 상에서 수행될 필요가 없어진다. 따라서, 보안 운영 체제(220) 상에는 메모리 관리 유닛(140)이나 접근 제어 유닛(160)을 제어하기 위한 방화벽 드라이버(225)가 수행될 것이다.
일반적으로 보안 운영 체제(220)는 콘텐츠의 처리를 위해서 설계된 것이 아니다. 따라서, 보안 운영 체제(220) 상에서 하드웨어 블록 드라이버(215)가 구동되는 것은 용이하지 않으며, 필요한 하드웨어들에 대한 드라이버를 지원하지 않는 경우도 허다하다. 그리고 영상 처리시에는 매 프레임마다 콘텐츠 처리용 IP들의 보안 설정을 보안 모드와 일반 모드로 스위칭해 주어야 한다. 따라서, 보안 콘텐츠의 재생을 보안 운영 체제(220)에 의해서 처리하는 것은 너무나 큰 부담을 제공한다.
더불어, 콘텐츠 재생과 같은 복잡한 연산을 수행하는 소프트웨어가 보안 운영 체제(220)에서 실행될 때, 안전성의 검증을 어렵게 만든다. 왜냐하면, 보안 콘텐츠에 대한 인증 절차에 소요되는 시간이 급격히 길어지고, 그에 동반하는 다양한 추가적인 문제점들이 야기될 수 있기 때문이다.
본 발명에서는 보안 운영 체제(220)는 하드웨어 블록(130)의 액세스를 제어하는 메모리 관리 유닛(140) 및 접근 제어 유닛(160)을 제어하는 방화벽 드라이버(225)가 보안 운영 체제(220)상에서 실행된다. 따라서, 콘텐츠의 재생을 위해서 최소한의 소프트웨어만이 보안 영역에서 수행될 것이다. 더불어, 콘텐츠 재생을 위한 데이터를 처리하는 모든 하드웨어 블록(130)을 보안 모드로 사용하기 위해서는 많은 시간 지연과 전력 소모를 야기한다. 하나의 프레임을 처리하기 위해서도 하드웨어 블록(130)의 실행 영역은 보안 영역과 비보안 영역을 수차례 전환되기 때문이다.
도 3은 본 발명의 제 1 실시 예에 따른 모바일 장치를 보여주는 블록도이다. 도 3을 참조하면, 모바일 장치는 개략적으로 시스템 온 칩(300)과 워킹 메모리로 제공되는 SDRAM(370) 및 외부 불휘발성 메모리(390)를 포함할 수 있다. 여기서, 시스템 온 칩(300)은 보안 영역과 비보안 영역으로 나누어 구동되는 프로세서와 하드웨어 IP들 각각에 대한 보안 설정이 가능한 트러스트존(TrustZone) 방식의 칩을 예로 설명할 것이다.
ARM 코어(310)는 트러스트존(TrustZone)을 지원하는 프로세싱 유닛이다. ARM 코어(310)는 구동되는 소프트웨어에 의해서 보안 모드와 비보안 모드로 나누어 동작한다. ARM 코어(310)는 보안 운영 체제(Secure OS)와 일반 운영 체제(Normal OS)에 대해서 보안 모드 및 비보안 모드 중 어느 하나의 모드로 동작하게 될 것이다. ARM 코어(310)는 처리할 콘텐츠의 종류에 따라 접근 제어 유닛들(TZPC, TZASC)을 설정할 것이다.
컨트롤 버스(320)는 ARM 코어(310)에 의한 시스템 온 칩(300)의 제반 구성들에 대한 제어 경로를 제공한다. 컨트롤 버스(320)를 통해서 ARM 코어(310)는 보안 상태 비트(S-bit)를 다양한 기능 블록들에 제공할 수 있다. 컨트롤 버스(320)에 의해서 제공되는 보안 상태 비트(S-bit)를 참조하여, 주변 장치들과 저장 장치들의 모든 트랜잭션은 논리적으로 분할된다. 이러한 트랜잭션의 논리적인 분할을 통해서 주변 장치나 저장 장치들의 동작은 보안 모드와 비보안 모드로 엄격히 분리될 수 있다.
하드웨어 코덱(330a)은 SDRAM(370)을 접근(Access)하여 저장된 콘텐츠 데이터를 읽어온다. 하드웨어 코덱(330a)은 SDRAM(370)의 보안 영역에 저장된 콘텐츠 데이터를 읽어와 디코딩하여 재생을 위한 영상 신호로 복원한다. 특히, 하드웨어 코덱(330a)의 마스터 포트(Master port)와 슬레이브 포트(Slave port)는 서로 다른 속성의 보안 모드로 설정될 수 있다. 즉, 컨트롤 버스(320)와 연결되는 하드웨어 코덱(330a)의 슬레이브 포트는 비보안 모드(Non-secure)로 설정될 수 있다. 그리고 메모리 관리 유닛(340a)에 연결되는 하드웨어 코덱(330a)의 마스터 포트(Master port)는 보안 모드(Secure)로 설정될 수 있다.
이러한 하드웨어 코덱(330a)의 설정에 따르면, ARM 코어(310)에서 구동되는 비보안 영역(Non-secure domain)의 소프트웨어는 하드웨어 코덱(330a)으로 용이하게 접근할 수 있다. 그리고 비보안 영역(Non-secure domain)에서 구동되는 드라이버에 의해서 하드웨어 코덱(330a)은 용이하게 제어될 수 있다.
반면, 하드웨어 코덱(330a)이 데이터 버스(350) 또는 메모리 관리 유닛(340a)과의 트랜잭션을 교환하는 마스터 포트(Master Port)는 보안 모드(Secure mode)로 설정된다. 반면, 하드웨어 코덱(330a)의 슬레이브 포트(Slave port)는 비보안 모드(Non-secure mode)로 설정되어 있다. 그렇기 때문에, 비보안 모드(Non-secure mode)로 ARM 코어(310)에서 구동되는 악성 코드(Malicious code)가 하드웨어 코덱(330a)을 악용하여 보안 메모리 영역에 접근할 우려가 있다. 이런 경우를 차단하기 위해서 하드웨어 코덱(330a)의 마스터 포트(Master Port)와 데이터 버스(350) 사이에 메모리 관리 유닛(340a)이 삽입된다.
이미지 컨버터(330b)는 하드웨어 코덱(330a)에 의해서 디코딩된 이미지의 크기, 색공간(Color space) 등의 포맷을 변환한다. 하드웨어 코덱(330a)에 의해서 디코딩된 원본 데이터는 다양한 모바일 장치의 디스플레이 장치의 포맷과 일치하지 않을 수 있다. 이런 경우, 원본 데이터는 LCD 컨트롤러(330c)에 의해서 처리하기 곤란할 수 있다. 이미지 컨버터(330b)는 원본 데이터를 모바일 장치(300)에 최적화된 포맷으로 변환할 것이다.
여기서, 이미지 컨버터(330b)의 마스터 포트(Master port)와 슬레이브 포트(Slave port)는 서로 다른 보안 모드로 설정된다. 즉, 컨트롤 버스(320)와 연결되는 이미지 컨버터(330b)의 슬레이브 포트는 비보안 모드(Non-secure mode)로 설정된다. 그리고 메모리 관리 유닛(340b)에 연결되는 이미지 컨버터(330b)의 마스터 포트는 보안 모드(Secure mode)로 설정된다.
LCD 컨트롤러(330c)는 하드웨어 코덱(330a)에 의해서 디코딩된 원본 이미지 데이터나, 이미지 컨버터(330b)에 의해서 변환된 이미지 데이터를 디스플레이(미도시됨)에 표시한다. LCD 컨트롤러(330c)에 의해서 이미지가 표시되기 위해서 이미지 데이터는 SDRAM(370)의 프레임 버퍼(Frame buffer)에 옮겨져야 한다. 그러면, LCD 컨트롤러(330c)는 프레임 버퍼(Frame buffer)의 이미지 데이터를 읽어와 디스플레이에 표시하게 될 것이다.
여기서, LCD 컨트롤러(330c)의 마스터 포트와 슬레이브 포트도 하드웨어 코덱(330a)이나 이미지 컨버터(330b)와 마찬가지로 이중적인 보안 속성으로 설정될 수 있다. 즉, 컨트롤 버스(320)와 연결되는 LCD 컨트롤러(330c)의 슬레이브 포트는 비보안 모드(Non-secure mode)로 설정된다. 그리고 메모리 관리 유닛(340c)에 연결되는 LCD 컨트롤러(330c)의 마스터 포트는 보안 모드(Secure mode)로 설정된다.
이상에서, 하드웨어 코덱(330a), 이미지 컨버터(330b), 그리고 LCD 컨트롤러(330c)의 이중적인 보안 속성의 설정 예가 설명되었다. 하지만, 이러한 이중적인 보안 설정의 대상에는 이들 구성에만 한정되는 것은 아니다. 즉, 보안 콘텐츠를 재생하기 위해서 SDRAM(370)의 보안 영역에 접근하는 다양한 하드웨어 IP들이 이중적인 보안 속성을 갖도록 설정될 수 있을 것이다.
메모리 관리 유닛(340a)은 하드웨어 코덱(330a)의 마스터 포트와 슬레이브 포트의 이중 보안 속성 설정에 따른 잠재적인 보안 취약점을 보완한다. 메모리 관리 유닛(340a)은 가상 주소를 물리 주소로 맵핑하기 위하여 다양한 시스템에서 사용된다. 하지만, 본 발명의 메모리 관리 유닛(340a)은 하드웨어 코덱(330a)으로부터 출력되는 가상 주소를 SDRAM(370)의 물리 주소로 맵핑한다. 만일, 일반 운영 체제(OS)의 수행 중에 ARM 코어(310)가 하드웨어 코덱(330a)으로 비보안 마스터인 상태로 접근하더라도, 하드웨어 코덱(330a)의 보안 트랜잭션이 실제로 접근할 수 있는 곳은 메모리 관리 유닛(340a)에 의해서 맵핑된 메모리 영역에 국한된다. 따라서, 하드웨어 코덱(330a)의 이중적인 보안 설정에 따른 잠재적인 보안 취약점은 메모리 관리 유닛(340a)의 변환 테이블(Translation Table)의 설정을 통해서 차단될 수 있다. 여기서, 메모리 관리 유닛(340a)의 변환 테이블(Translation Table)은 SDRAM(370)의 보안 영역에서 관리될 것이다.
메모리 관리 유닛들(340b, 340c)은 각각 이미지 컨버터(330b) 및 LCD 컨트롤러(330c)의 잠재적인 보안 취약점을 보완한다. 이미지 컨버터(330b)의 이중적인 보안 설정에 따른 잠재적인 보안 취약점은 메모리 관리 유닛(340b)의 변환 테이블(Translation Table)의 설정을 통해서 차단될 수 있다. LCD 컨트롤러(330c)의 이중적인 보안 설정에 따른 잠재적인 보안 취약점은 메모리 관리 유닛(340c)의 변환 테이블(Translation Table)의 설정을 통해서 차단될 수 있다. 메모리 관리 유닛들(340b, 340c) 각각의 변환 테이블들은 SDRAM(370)의 보안 영역에서 관리될 것이다.
데이터 버스(350)는 ARM 코어(310)나 하드웨어 코덱(330a), 이미지 컨버터(330b), LCD 컨트롤러(330c) 등의 메모리 접근 경로를 제공한다. 데이터 버스(350)를 통해서 시스템 온 칩(300)의 외부에 위치하는 SDRAM(370)이나 외부 불휘발성 메모리(390)에 대한 제반 하드웨어들의 접근이 이루어진다. 물론, 데이터 버스(350)는 다양한 마스터 IP들에 대해서 시스템 온 칩(300)의 내부에 위치하는 내부 램(380)으로의 메모리 접근 경로를 제공할 수 있다.
TZPC(360a)는 하드웨어 IP들의 보안 속성을 설정하기 위한 구성이다. TZPC(360a)는 보안 소프트웨어와 일반 소프트웨어에 의한 논리적 분할을 주변 장치(Peripheral IP)에 적용하기 위한 트러스트존(TrustZone) 방식의 시스템 온 칩의 구성이다. TZPC(360a)는 하드웨어 IP들의 모든 보안 속성을 설정할 수 있다. TZPC(360a)의 프로그램을 통해서 하드웨어 IP들의 보안 속성이 보안 모드, 비보안 모드로 설정될 수 있다. TZPC(360a)의 프로그램을 통해서 하드웨어 코덱(330a), 이미지 컨버터(330b), LCD 컨트롤러(330c) 등의 IP들에 대한 보안 속성이 이중적으로 설정될 수 있다. TZPC(360a)에 대한 프로그램은 보안 영역에 포함되는 애플리케이션이나 드라이버가 수행할 수 있다.
본 발명의 TZPC(360a)는 하드웨어 코덱(330a), 이미지 컨버터(330b), LCD 컨트롤러(330c) 각각의 슬레이브 포트와 마스터 포트의 보안을 독립적으로 설정할 수 있다. 물론, 하드웨어 코덱(330a), 이미지 컨버터(330b), LCD 컨트롤러(330c)뿐 아니라 보안 콘텐츠를 재생하는 경로에 포함되는 제반 하드웨어 IP들에 대해서도 TZPC(360a)는 이중적인 보안 속성의 설정이 가능하다. TZPC(360a)는 하드웨어 IP들의 메모리 관리 유닛(340a, 340b, 340c)에 연결되는 마스터 포트는 보안 모드(S)로, 컨트롤 버스(320)에 연결되는 슬레이브 포트들은 비보안 모드(NS)로 설정하게 될 것이다.
TZASC(360b)는 워킹 메모리의 보안 설정을 위한 제어 회로에 대응한다. 구체적으로 TZASC(360b)는 SDRAM(370)의 영역별 속성을 보안 영역과 비보안 영역으로 분리하기 위한 구성이다. 메모리 맵 상에서 보안 영역으로 관리되어야 하는 데이터와 비보안 영역으로 관리되어도 되는 데이터가 있다. 디코딩된 모든 보안 콘텐츠에 대응하는 데이터는 TZASC(360b)에 의해서 보안 영역에서 관리된다. 그리고 메모리 관리 유닛들(340a, 340b, 340c)의 접근 경로를 정의하는 변환 테이블들(Translation Table)은 SDRAM(370)의 보안 영역에 저장될 것이다.
더불어, 워킹 메모리로 제공되는 SDRAM(370)이 모바일 장치의 일부로 제공된다. SDRAM(370)의 메모리 영역은 보안 영역과 비보안 영역으로 구분되어 관리될 수 있다. SDRAM(370)의 메모리 맵에 대해서는 후술하는 도면에서 상세히 설명될 것이다. SDRAM(370)에 대한 접근을 제어하기 위한 DRAM 컨트롤러(375)가 시스템 온 칩의 내부에 포함될 것이다. DRAM 컨트롤러(375)는 데이터 버스(350)와 TZASC(360b)를 경유하여 제공되는 ARM 코어(310)나 하드웨어 IP들(330a, 330b, 330c)의 액세스 요청에 따라 SDRAM(370)을 제어할 것이다. 여기서, TZASC(360b)와 DRAM 컨트롤러(375)는 컨트롤 버스(320)에 의해서 보안 모드로 설정될 수 있다.
내부 RAM(380)에는 보안 운영 체제(Secure OS)가 로드된다. 내부 RAM(380)은 TZPC(360a)에 의해서 보안 모드로 설정될 수 있다. 외부 불휘발성 메모리(390)는 다양한 콘텐츠나 코드를 저장할 수 있다. 외부 불휘발성 메모리(390)를 제어하기 위한 스토리지 컨트롤러(395)가 시스템 온 칩(300)에 포함된다. 그리고 스토리지 컨트롤러(395)로의 접근은 비보안 모드(NS)로 설정될 것이다.
이상에서 설명된 본 발명의 시스템 온 칩(300)에 따르면, 콘텐츠 데이터를 처리하는 하드웨어 IP들(330a~330c)의 보안 속성이 2중으로 설정될 수 있다. 따라서, 이들 하드웨어 IP들(330a~330c)을 구동하기 위한 드라이버는 비보안 영역(일반 운영 체제)에서 실행될 수 있다. 따라서, 보안 콘텐츠의 재생에 소요되는 자원을 효율적으로 사용할 수 있다. 이들 하드웨어 IP들(330a~330c)의 2중적인 보안 설정에 의한 잠재적인 보안 위협은 보안 모드로 동작하는 메모리 관리 유닛(340a, 340b, 340c)을 통해서 제거할 수 있다. 이러한 구성을 통해서 본 발명의 실시 예에 따른 시스템 온 칩(300)은 보안 콘텐츠를 처리할 때에 높은 보안 성능을 제공할 수 있다. 그리고 본 발명의 실시 예에 따른 시스템 온 칩(300)은 기존의 시스템 온 칩(SoC)의 구조의 변경을 최소화하면서도 높은 보안 성능과 콘텐츠 재생 품질을 제공할 수 있다.
도 4는 도 3의 시스템 온 칩의 소프트웨어 구조를 보여주는 도면이다. 도 4를 참조하면, 트러스트존(TrustZone)을 지원하는 시스템 온 칩의 운영 체제는 일반 운영 체제(410)와 보안 운영 체제(420)로 이원화된다. 더불어, 보안 콘텐츠를 처리하기 위한 하드웨어 IP들의 드라이버들은 일반 운영 체제(410)에서 구동되며, 보안 운영 체제(420)에는 방화벽 드라이버(425)가 구동된다.
일반 운영 체제(410)는 모바일 장치에 최적화된 임의의 운영 체제일 수 있다. 예를 들면, 일반 운영 체제(410)는 리눅스, 안드로이드, iOS, 또는 윈도우 계열의 운영 체제일 수 있다. 하지만, 일반 운영 체제(410)는 트러스트존(TrustZone)을 지원할 수 있는 다양한 운영 체제를 포함할 수 있음은 잘 이해될 것이다. 일반 운영 체제(410)에서 코덱 드라이버(411), 이미지 컨버터 드라이버(412), LCD 컨트롤러 드라이버(413), 그리고 트러스트존 접근 드라이버(414) 등이 구동된다.
코덱 드라이버(411)를 사용하여 일반 운영 체제(410) 또는 일반 운영 체제(410) 상에서 구동되는 다양한 응용 프로그램은 하드웨어 코덱(330a)을 제어할 수 있다. 이미지 컨버터 드라이버(412)에 의해서 일반 운영 체제(410) 또는 일반 운영 체제(410) 상에서 구동되는 다양한 응용 프로그램은 이미지 컨버터(330b)를 제어할 수 있다. LCD 컨트롤러 드라이버(413)를 사용하여 일반 운영 체제(410) 또는 일반 운영 체제(410) 상에서 구동되는 다양한 응용 프로그램은 LCD 컨트롤러(330c)를 제어할 수 있다.
더불어, 일반 운영 체제(410)에는 트러스트존 접근 드라이버(414)가 구동된다. 트러스트존 접근 드라이버(414)에 의해서 일반 운영 체제(410) 또는 일반 운영 체제 영역에서 구동되는 응용 프로그램은 보안 운영 체제(420)와 통신할 수 있다.
보안 운영 체제(420)는 보안 기능을 통합시킨 보안 커널(Secure Kernal)을 포함하는 운영 체제이다. 트러스트존(TrustZone)을 지원하는 시스템 온 칩(300)에서, 보안 운영 체제(420)는 일반 운영 체제(410)와 동일하게 ARM 코어(310)를 통해서 구동된다. 하지만, 보안 운영 체제(420)는 일반 운영 체제(410)와는 다른 타임 슬롯에서 시스템의 제어 권한을 가진다.
만일, 본 발명의 메모리 관리 유닛(MMU)의 선택적 접근 제어가 존재하지 않는다면, 보안 콘텐츠의 재생을 위한 모든 하드웨어 IP들의 드라이버는 보안 운영 체제(420)에서 구동되어야 할 것이다. 왜냐하면, 하드웨어 IP들에 부여된 보안 속성이 획일적으로 보안 모드(Secure mode)로 설정되어야 하며, 이러한 하드웨어 IP들을 제어하기 위해서는 보안 운영 체제(420)의 권한으로만 가능하기 때문이다.
하지만, 본 발명의 특징에 따르면, 보안 운영 체제(420)에는 방화벽 드라이버(425)만이 구동된다. 방화벽 드라이버(425)는 시스템 온 칩(300)의 TZPC(370a), TZASC(370b), 메모리 관리 유닛들(340a, 340b, 340c)을 제어한다. 방화벽 드라이버(425)의 제어에 따라, 보안 콘텐츠를 처리하는 하드웨어 IP들의 동작이 제어될 수 있다. 즉, 방화벽 드라이버(425)에 의해서 본 발명의 보안 동작이 제어된다.
도 5는 본 발명의 실시 예에 따른 메모리 맵을 보여주는 도면이다. 도 5를 참조하면, ARM 코어(310)에 의해서 보여지는 메모리 맵이 도시되어 있다. 메모리 맵은 크게 보안 영역(510, 530, 540)과 비보안 영역(520)으로 구분될 수 있다. 이러한 영역의 구분은 앞서 설명된 TZASC(360b)에 의해서 설정될 수 있다.
보안 영역(510, 530, 540)은 메모리 관리 유닛(MMU)의 변환 테이블과 보호되어야 할 하드웨어 코덱의 버퍼들, 보안 운영 체제, 보안 리소스 등이 포함된다.
SDRAM(370)의 보안 영역(510)에는 메모리 관리 유닛들(340a, 340b, 340c) 각각에 대한 변환 테이블(511, 512, 513)이 포함된다. 변환 테이블(511)은 메모리 관리 유닛(340a)의 논리 어드레스와 물리 어드레스의 맵핑 테이블에 대응한다. 변환 테이블(511)에 의해서 하드웨어 코덱(330a)의 접근 가능 영역이 정의된다. 하드웨어 코덱(330a)의 슬레이브 포트가 비보안 속성으로 설정되었기 때문에, 임의의 소프트웨어에 의해서 하드웨어 코덱(330a)에 대한 접근이 가능하다. 따라서, 비보안으로 설정된 하드웨어 코덱(330a)의 마스터 IP에 의해서 보안 트랜잭션이 생성될 수 있다. 그러나, 하드웨어 코덱(330a)에 접근한 어떠한 마스터 IP도 메모리 관리 유닛(340a)에 설정된 변환 테이블(511)의 범위를 벗어나는 메모리 접근은 허용되지 않는다. 이러한 변환 테이블(511)의 기능은 이미지 컨버터(330b), LCD 컨트롤러(330c)에 대응하는 변환 테이블들(512, 513)에도 동일하게 적용된다.
변환 테이블(511)은 하드웨어 코덱(330a)의 접근 영역을 제한한다. 즉, 하드웨어 코덱(330a)에 의해서 접근 가능한 메모리 영역이 변환 테이블(511)에 의해서 설정된다. 변환 테이블(511)에 의해서 하드웨어 코덱(330a)은 SDRAM(370)의 보안 영역중 일부에만 접근이 허용된다. 예를 들면, 변환 테이블(511)은 하드웨어 코덱(330a)의 마스터 포트의 속성이 보안 모드(S)라 하더라도, SDRAM(370)의 모든 보안 영역들(510)에 접근하지는 못하도록 설정될 수 있다.
코덱 입력 버퍼(514)에는 하드웨어 코덱(330a)에서 처리할 콘텐츠 데이터가 저장된다. 코덱 입력 버퍼(514)에 저장된 콘텐츠를 하드웨어 코덱(330a)이 접근하여 처리하게 될 것이다. 그리고 레퍼런스 프레임 버퍼(515)에는 동영상의 움직임 보상을 위해 사용되는 레퍼런스 프레임(Reference frame)이 저장된다. 일반적으로는 레퍼런스 프레임으로는 이전 프레임의 데이터가 저장될 수 있다. 코덱 펌웨어(516)는 하드웨어 코덱(330a)의 기능을 지원하는 코드 데이터이다. 그리고 코덱 출력 버퍼(517)는 코덱에서 처리된 데이터가 저장되는 메모리 영역이다. 결국, 하드웨어 코덱(330a)은 SDRAM(370)의 보안 영역에 포함되는 코덱 입력 버퍼(514), 레퍼런스 프레임 버퍼(515)로부터 데이터를 읽어와서 처리하게 될 것이다. 그리고 하드웨어 코덱(330a)에 의해서 처리된 데이터는 코덱 출력 버퍼(517)에 저장된다.
프레임 버퍼(518)는 이미지 컨버터(330b)에 의해서 처리된 화상 데이터가 저장된다. 이미지 컨버터(330b)는 코덱 출력 버퍼(517)에 저장된 데이터를 읽어서, 하나의 화면에 대응하는 화소 데이터로 변환한다. 그리고 모바일 장치에 최적화된 포맷으로 변환된 화소 데이터는 다시 프레임 버퍼(518)에 저장될 것이다.
이상에서 보안 콘텐츠를 처리하기 위하여, 영상 콘텐츠가 저장되는 하드웨어 코덱(330a)과 이미지 컨버터(330b)에 의해서 접근되는 SDRAM(370)의 보안 메모리 영역(510)이 설명되었다.
비보안 메모리 영역(520)에는 UI 프레임 버퍼(521), 암호화된 콘텐츠(522), 그리고 비보안 운영 체제(523)가 로드된다. 비보안 메모리 영역(520)에 저장된 데이터에 대해서는 하드웨어 IP들의 보안 속성에 관계없이 접근이 가능할 것이다. 내부 SRAM(530)에는 보안 운영 체제(531)가 로드된다. 보안 운영 체제(531)는 보안을 요구하는 응용 프로그램을 구동할 수 있다. 장치 특정 키(540)도 보안 속성으로 설정될 것이다. 장치 특정 키(540)는 도시되지는 않았지만, 보안 키를 저장하기 위한 별도의 저장 장치에 구비될 수 있다.
이상에서는 ARM 코어(310)에서 바라본 메모리 맵이 설명되었다. 이러한 메모리 맵의 구성은 앞서 설명된 TZASC(360b)에 의해서 제어될 수 있다.
도 6은 하드웨어 코덱이 접근 가능한 메모리 맵을 보여주는 도면이다. 도 6을 참조하면, 하드웨어 코덱(330a)은 메모리 관리 유닛(340a)에 의해서 보안 영역의 일부 영역들(514, 515, 516, 517)로만 접근이 허용된다.
보안 콘텐츠의 DRM이 해제되면, SDRAM(370)의 보안 영역으로 할당되는 코덱 입력 버퍼(514)에 기록된다. 이때, 하드웨어 코덱(330a)은 코덱 입력 버퍼(514)에 저장된 콘텐츠를 읽어와 디코딩을 수행하게 될 것이다. 하드웨어 코덱(330a)은 코덱 입력 버퍼(514)로부터 읽어온 프레임 데이터를 변환하게 될 것이다. 하드웨어 코덱(330a)은 변환이 완료된 데이터를 코덱 출력 버퍼(517)에 기입할 것이다. 데이터의 변환에 소요되는 레퍼런스 프레임은 레퍼런스 프레임 버퍼(515)에 기입된다. 동영상의 경우, 레퍼런스 프레임은 이전 프레임들로 구성될 수 있다. 따라서, 하드웨어 코덱(330a)은 레퍼런스 프레임 버퍼(515)에 대한 읽기와 쓰기 권한을 모두 가지게 될 것이다. 그리고 하드웨어 코덱(330a)은 펌웨어 코드 영역(516)에 대해서는 읽기 권한만을 가진다.
하드웨어 코덱(330a)은 메모리 관리 유닛(340a)의 설정에 따라, 코덱 입력 버퍼(514)와 코덱 펌웨어 영역(516)에 대해서는 읽기 권한만을 가진다. 그리고 하드웨어 코덱(330a)은 메모리 관리 유닛(340a)의 설정에 따라, 레퍼런스 프레임 버퍼(515)에 대해서는 읽기-쓰기 권한을 가진다. 그리고 하드웨어 코덱(330a)은 메모리 관리 유닛(340a)의 설정에 따라, 코덱 출력 버퍼(517)에 대해서는 쓰기 권한만을 가진다.
도 7에는 이미지 컨버터가 접근 가능한 메모리 맵이 도시되어 있다. 도 7을 참조하면, 이미지 컨버터(330b)는 메모리 관리 유닛(340b)에 의해서 SDRAM(370)의 보안 영역의 일부 영역들(517, 518)로만 접근이 허용된다.
이미지 컨버터(330b)는 코덱 출력 버퍼(517)에 대해서 읽기 권한을 가진다. 하드웨어 코덱(330a)에 의해서 처리된 데이터는 코덱 출력 버퍼(517)에 기입된다. 그러면, 이미지 컨버터(330b)는 최적의 포맷으로 변환하기 위해서 코덱 출력 버퍼(517)에 액세스하여 데이터를 읽어온다. 이미지 컨버터(330b)에 의해서 변환된 영상 데이터는 프레임 버퍼(518)에 기입될 것이다.
이미지 컨버터(330b)는 메모리 관리 유닛(340b)의 설정에 따라, 코덱 출력 버퍼(517)에 대해서는 읽기 권한을, 프레임 버퍼(518)에 대해서는 쓰기 권한만을 가진다.
도 8에는 LCD 컨트롤러가 접근 가능한 메모리 맵이 도시되어 있다. 도 8을 참조하면, LCD 컨트롤러(330c)는 메모리 관리 유닛(340c)에 의해서 SDRAM(370)의 보안 영역의 일부(518)와 비보안 영역의 일부(521)에 접근할 수 있다.
LCD 컨트롤러(330c)는 이미지 컨버터(330b)에 의해서 변환된 이미지 데이터를 프레임 버퍼(518)로부터 읽어 온다. 보안이 필요한 콘텐츠에 대응하는 이미지 데이터는 보안 속성으로 설정되는 프레임 버퍼(518)에 저장될 것이다.
LCD 컨트롤러(330c)는 UI 프레임 버퍼(521)에 대해서 읽기 권한을 가진다. UI 프레임 버퍼(521)에는 디스플레이 상에 구현될 메뉴 항목이나, 터치 스크린의 다양한 입력 요소들이 포함될 것이다. 따라서, UI 프레임 버퍼(521)에 저장되는 데이터는 보안 콘텐츠와는 관련없는 데이터이다. 따라서, UI 프레임 버퍼(521)에 저장되는 데이터는 보안 속성으로 관리될 필요가 없다. 메모리 관리 유닛(340c)에 의해서 LCD 컨트롤러(330c)는 할당되는 메모리 영역에 대해서 읽기 권한만을 가진다.
도 9는 본 발명의 제 2 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다. 도 9를 참조하면, 시스템 온 칩(600)은 도 3의 시스템 온 칩(300)에 비하여 메모리 관리 유닛들(340a, 340b, 340c)이 메모리 보호 유닛들(640a, 640b, 640c)로 대체될 수 있음을 보여준다.
메모리 보호 유닛들(640a, 640b, 640c)은 일반적으로 메모리 관리 유닛들(340a, 340b, 340c)과 같은 가상 어드레스 맵핑 기능은 구비하고 있지 않다. 따라서, 메모리 보호 유닛들(640a, 640b, 640c)에 의한 SDRAM(670)의 접근 제어는 항상 SDRAM(670)의 물리 주소를 사용해야 함을 알 수 있다. 또한, 메모리 보호 유닛들(640a, 640b, 640c) 각각에 대한 어드레스 맵핑 테이블은 SDRAM(670)의 보안 영역에서 관리될 것이다. 또한, 시스템 온 칩(600)에 대한 소프트웨어 구조는 실질적으로 도 4와 동일하다.
도 10은 본 발명의 제 3 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다. 도 10을 참조하면, 도 10의 시스템 온 칩(700)은 도 9의 시스템 온 칩(600)에 비하여 메모리 보호 유닛들(640a, 640b, 640c)이 하나의 메모리 보호 유닛(740)으로 구성될 수 있음을 보여준다.
메모리 보호 유닛(740)은 도 9의 메모리 보호 유닛들(640a, 640b, 640c) 각각이 수행하는 접근 제어를 통합하여 수행할 수 있다. 메모리 보호 유닛(740)은 하드웨어 코덱(730a), 이미지 컨버터(730b), LCD 컨트롤러(730c)에 의해서 발생하는 보안 속성의 트랜잭션이라 하더라도 반드시 필요한 메모리 영역으로만 접근을 허용한다. 즉, 메모리 보호 유닛(740)은 하드웨어 코덱(730a)에 대해서는 코덱 입력 버퍼(514), 레퍼런스 프레임 버퍼(515), 코덱 펌웨어(516), 그리고 코덱 출력 버퍼(517)로의 접근만을 허용하게 될 것이다. 코덱 입력 버퍼(514), 레퍼런스 프레임 버퍼(515), 코덱 펌웨어(516), 그리고 코덱 출력 버퍼(517)는 SDRAM(770)의 보안 영역에 할당된다.
메모리 보호 유닛(740)은 이미지 컨버터(730b)에 대해서 SDRAM(770)의 보안 영역에 할당되는 코덱 출력 버퍼(517)와 프레임 버퍼(518)로의 접근을 허용할 것이다. 특히, 메모리 보호 유닛(740)의 변환 테이블에 의해서 이미지 컨버터(730b)가 코덱 출력 버퍼(517)에 대해서는 읽기 권한만을, 그리고 프레임 버퍼(518)에 대해서는 쓰기 권한만을 갖도록 설정될 것이다.
메모리 보호 유닛(740)은 LCD 컨트롤러(730c)에 대해서 SDRAM(770)의 보안 영역에 할당되는 프레임 버퍼(518)와 비보안 영역에 할당되는 UI 프레임 버퍼(521)로의 접근을 허용할 것이다. 특히, 메모리 보호 유닛(740)의 변환 테이블에 의해서 LCD 컨트롤러(730c)가 프레임 버퍼(518)와 UI 프레임 버퍼(521)에 대해서는 읽기 권한만을 갖도록 설정될 것이다.
여기서, 메모리 보호 유닛(740)의 변환 테이블은 SDRAM(770)의 보안 영역에 할당될 것이다. 또한, 시스템 온 칩(700)에 대한 소프트웨어 구조는 실질적으로 도 4와 동일하다.
도 11은 본 발명의 제 4 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다. 도 11을 참조하면, 시스템 온 칩(800)은 도 10의 시스템 온 칩(700)에 비하여 메모리 보호 유닛(740)이 하나의 메모리 관리 유닛(840)으로 구성될 수 있음을 보여준다.
메모리 관리 유닛(840)은 도 10의 메모리 보호 유닛(740)이 수행하는 접근 제어를 수행할 수 있다. 메모리 관리 유닛(840)은 하드웨어 코덱(830a), 이미지 컨버터(830b), LCD 컨트롤러(830c)에 의해서 발생하는 보안 속성의 트랜잭션이라 하더라도 반드시 필요한 메모리 영역으로만 접근을 허용한다. 즉, 메모리 관리 유닛(840)은 하드웨어 코덱(830a)에 대해서는 코덱 입력 버퍼(514, 도 5 참조), 레퍼런스 프레임 버퍼(515, 도 5 참조), 코덱 펌웨어(516, 도 5 참조), 그리고 코덱 출력 버퍼(517, 도 5 참조)로의 접근만을 허용하게 될 것이다. 코덱 입력 버퍼(514), 레퍼런스 프레임 버퍼(515), 코덱 펌웨어(516), 그리고 코덱 출력 버퍼(517)는 SDRAM(870)의 보안 영역에 할당된다.
메모리 관리 유닛(840)은 이미지 컨버터(830b)에 대해서 SDRAM(870)의 보안 영역에 할당되는 코덱 출력 버퍼(517)와 프레임 버퍼(518)로의 접근을 허용할 것이다. 특히, 메모리 관리 유닛(840)의 변환 테이블에 의해서 이미지 컨버터(830b)가 코덱 출력 버퍼(517)에 대해서는 읽기 권한만을, 그리고 프레임 버퍼(518)에 대해서는 쓰기 권한만을 갖도록 설정될 것이다.
메모리 관리 유닛(840)은 LCD 컨트롤러(830c)에 대해서 SDRAM(870)의 보안 영역에 할당되는 프레임 버퍼(518)와 비보안 영역에 할당되는 UI 프레임 버퍼(521)로의 접근을 허용할 것이다. 특히, 메모리 관리 유닛(840)의 변환 테이블에 의해서 LCD 컨트롤러(830c)가 프레임 버퍼(518)와 UI 프레임 버퍼(521)에 대해서는 읽기 권한만을 갖도록 설정될 것이다.
여기서, 메모리 관리 유닛(840)의 변환 테이블은 SDRAM(870)의 보안 영역에 할당될 것이다. 또한, 시스템 온 칩(800)에 대한 소프트웨어 구조는 실질적으로 도 4와 동일하다.
도 12는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다. 도 12를 참조하면, 본 발명의 실시 예에 따른 휴대용 단말기(1000)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), SRAM(1500), 유저 인터페이스(1600), 그리고 컨트롤러(1700)를 포함한다.
이미지 처리부(1100)는 렌즈(1110), 이미지 센서(1120), 이미지 프로세서(1130), 그리고 디스플레이부(1140)를 포함한다. 무선 송수신부(1200)는 안테나(1210), 트랜시버(1220), 모뎀(1230)을 포함한다. 오디오 처리부(1300)는 오디오 프로세서(1310), 마이크(1320), 그리고 스피커(1330)를 포함한다.
휴대용 단말기(1000)에는 다양한 종류의 반도체 장치들이 포함될 수 있다. 특히, 컨트롤러(1700)의 기능을 수행하는 시스템 온 칩의 경우 저전력, 고성능이 요구된다. 그리고 보안 콘텐츠를 처리하는 컨트롤러(1700)는 본 발명의 보안 OS와 일반 운영 체제(OS)를 병렬적으로 구동할 수 있다. 그리고 영상 콘텐츠를 처리하는 하드웨어 IP들의 보안 속성을 이중으로 설정하고, 이중으로 설정된 하드웨어 IP들의 접근 권한을 메모리 관리 유닛이나 메모리 보호 유닛을 사용하여 제한할 수 있다. 이러한 구조를 통해서 콘텐츠에 대한 충분한 보안성을 제공하면서도 고품질의 콘텐츠를 재생할 수 있다.
도 13에는 본 발명의 실시 예에 따른 보안 기능을 수행하는 컴퓨터 시스템(2000)이 개략적으로 도시되어 있다. 도 13을 참조하면, 컴퓨터 시스템(2000)은 시스템 버스(2060)에 전기적으로 연결되는 비휘발성 메모리 장치(2010), 중앙처리장치(2020), 램(2030)을 포함할 수 있다. 그리고 컴퓨팅 시스템(2000)은 시스템 버스(2060)에 전기적으로 연결된 사용자 인터페이스(2040), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(2050)을 포함한다.
본 발명에 따른 컴퓨팅 시스템(2000)이 모바일 장치인 경우, 컴퓨팅 시스템(2000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(2000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
여기서, 중앙처리장치(2020)는 도 3, 도 9 내지 11의 시스템 온 칩들(300, 600, 700, 800) 중에서 적어도 하나와 동일한 구성으로 제공될 수 있다. 즉, 중앙처리장치(2020)는 터러스트존(TrustZone) 방식의 접근 제어를 통해서 하드웨어 IP들의 메모리 접근을 제어할 수 있다. 더불어, 본 발명의 실시 예에 따라, 중앙처리장치(2020)를 구성하는 하드웨어 IP들의 보안 속성을 이중으로 설정하고, 메모리 관리 유닛(MMU)이나 메모리 보호 유닛(MPU)을 통해서 이중으로 보안 설정된 하드웨어 IP들의 SDRAM(1500)으로의 접근을 제한할 수 있다. 따라서, 본 발명의 컴퓨터 시스템(2000)에 따르면, 보안 콘텐츠에 대한 높은 보안성와 재생 품질을 제공할 수 있다.
본 발명에 따른 반도체 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 반도체 그리고/또는 컨트롤러는 PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline), TQFP(Thin Quad Flatpack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110 : 프로세싱 유닛 120 : 컨트롤 버스
130 : 하드웨어 블록 132 : 슬레이브 포트
134 : 마스터 포트 140 : 메모리 관리 유닛
150 : 데이터 버스 160 : 접근 제어 유닛
170 : 워킹 메모리 210 : 일반 운영 체제
215 : 하드웨어 블록 드라이버 220 : 보안 운영 체제
225 : 방화벽 드라이버 310, 610, 710, 810 : ARM 코어
320, 620, 720, 820 : 컨트롤 버스
330a, 630a, 730a, 830a : 하드웨어 코덱
330b, 630b, 730b, 830b : 이미지 컨버터
330c, 630c, 730c, 830c : LCD 컨트롤러
340a, 340b, 340c, 840 : 메모리 관리 유닛
640a, 640b, 640c, 740 : 메모리 보호 유닛
350, 650, 750, 850 : 데이터 버스
360a, 660a, 760a, 860a : TZPC
360b, 660b, 760b, 860b : TZASC
370, 670, 770, 870 : SDRAM
375, 675, 775, 875 : DRAM 컨트롤러
380, 680, 780, 880 : 내부 램
390, 690, 790, 890 : 외부 불휘발성 메모리
395, 695, 795, 895 : 저장 장치 컨트롤러
410 : 일반 운영 체제 411 : 코덱 드라이버
412 : 이미지 컨버터 드라이버 413 : LCD 컨트롤러 드라이버
414 : 트러스트존 접근 드라이버 420 : 보안 운영 체제
425 : 방화벽 드라이버
511~513 : 메모리 관리 유닛 변환 테이블
514 : 코덱 입력 버퍼 515 : 레퍼런스 프레임 버퍼
516 : 코덱 펌웨어 517 : 코덱 출력 버퍼
518 : 프레임 버퍼 521 : UI 프레임 버퍼
522 : 보안 콘텐츠 523 : 비보안 소프트웨어
531 : 보안 운영 체제 540 : 장치 특정 키
1110 : 렌즈 1120 : 이미지 센서
1130 : 이미지 프로세서 1140 : 디스플레이 유닛
1210 : 안테나 1220 : 송수신기
1230 : 모뎀 1310 : 오디오 처리기
1400 : 이미지 파일 생성 유닛 1500 : SDRAM
1600 : 유저 인터페이스 1700 : 컨트롤러
2010 : 비휘발성 메모리 장치 2020 : 중앙처리장치
2030 : 램 2040 : 유저 인터페이스
2050 : 모뎀 2060 : 시스템 버스
130 : 하드웨어 블록 132 : 슬레이브 포트
134 : 마스터 포트 140 : 메모리 관리 유닛
150 : 데이터 버스 160 : 접근 제어 유닛
170 : 워킹 메모리 210 : 일반 운영 체제
215 : 하드웨어 블록 드라이버 220 : 보안 운영 체제
225 : 방화벽 드라이버 310, 610, 710, 810 : ARM 코어
320, 620, 720, 820 : 컨트롤 버스
330a, 630a, 730a, 830a : 하드웨어 코덱
330b, 630b, 730b, 830b : 이미지 컨버터
330c, 630c, 730c, 830c : LCD 컨트롤러
340a, 340b, 340c, 840 : 메모리 관리 유닛
640a, 640b, 640c, 740 : 메모리 보호 유닛
350, 650, 750, 850 : 데이터 버스
360a, 660a, 760a, 860a : TZPC
360b, 660b, 760b, 860b : TZASC
370, 670, 770, 870 : SDRAM
375, 675, 775, 875 : DRAM 컨트롤러
380, 680, 780, 880 : 내부 램
390, 690, 790, 890 : 외부 불휘발성 메모리
395, 695, 795, 895 : 저장 장치 컨트롤러
410 : 일반 운영 체제 411 : 코덱 드라이버
412 : 이미지 컨버터 드라이버 413 : LCD 컨트롤러 드라이버
414 : 트러스트존 접근 드라이버 420 : 보안 운영 체제
425 : 방화벽 드라이버
511~513 : 메모리 관리 유닛 변환 테이블
514 : 코덱 입력 버퍼 515 : 레퍼런스 프레임 버퍼
516 : 코덱 펌웨어 517 : 코덱 출력 버퍼
518 : 프레임 버퍼 521 : UI 프레임 버퍼
522 : 보안 콘텐츠 523 : 비보안 소프트웨어
531 : 보안 운영 체제 540 : 장치 특정 키
1110 : 렌즈 1120 : 이미지 센서
1130 : 이미지 프로세서 1140 : 디스플레이 유닛
1210 : 안테나 1220 : 송수신기
1230 : 모뎀 1310 : 오디오 처리기
1400 : 이미지 파일 생성 유닛 1500 : SDRAM
1600 : 유저 인터페이스 1700 : 컨트롤러
2010 : 비휘발성 메모리 장치 2020 : 중앙처리장치
2030 : 램 2040 : 유저 인터페이스
2050 : 모뎀 2060 : 시스템 버스
Claims (20)
- 보안 영역과 비보안 영역으로 구분되는 메모리 영역을 갖는 워킹 메모리; 및
상기 보안 영역에 저장된 콘텐츠를 접근하여 처리하는 시스템 온 칩을 포함하되, 상기 시스템 온 칩은:
보안 운영 체제 및 비보안 운영 체제에 의해 구동되는 프로세싱 유닛;
상기 프로세싱 유닛의 제어에 따라 상기 콘텐츠를 접근하되, 마스터 포트와 슬레이브 포트에 대해서 서로 다른 보안 속성으로 설정되는 적어도 하나의 하드웨어 블록;
상기 워킹 메모리에 대한 상기 하드웨어 블록의 접근을 제어하는 적어도 하나의 메모리 관리 유닛; 그리고
상기 슬레이브 포트와 상기 마스터 포트의 보안 속성 또는 상기 워킹 메모리의 영역별 접근 권한을 설정하는 접근 제어 유닛을 포함하되,
상기 하드웨어 블록의 상기 슬레이브 포트는 비보안 속성으로, 상기 마스터 포트는 보안 속성으로 설정되는 모바일 장치. - 제 1 항에 있어서,
상기 하드웨어 블록을 제어하기 위한 드라이버는 상기 비보안 운영 체제에서 실행되는 모바일 장치. - 삭제
- 제 1 항에 있어서,
상기 메모리 관리 유닛은 상기 하드웨어 블록의 상기 보안 영역에 대한 접근 트랜잭션 중에서 일부만을 허용하는 모바일 장치. - 제 1 항에 있어서,
상기 메모리 관리 유닛과 상기 접근 제어 유닛을 제어하기 위한 방화벽 드라이버는 상기 보안 운영 체제에서 실행되는 모바일 장치. - 제 1 항에 있어서,
상기 보안 운영 체제와 상기 비보안 운영 체제는 상기 프로세싱 유닛에 의해서 서로 다른 타임 슬롯에서 실행되는 모바일 장치. - 제 1 항에 있어서,
상기 프로세싱 유닛은 상기 콘텐츠의 보안 속성에 따라 상기 접근 제어 유닛을 설정하는 모바일 장치. - 제 1 항에 있어서,
상기 접근 제어 유닛은:
상기 하드웨어 블록의 보안 속성을 정의하는 제 1 접근 제어 유닛; 그리고
상기 워킹 메모리의 영역별 접근 권한을 정의하는 제 2 접근 제어 유닛을 포함하는 모바일 장치. - 제 8 항에 있어서,
상기 프로세싱 유닛은 트러스트존(TrustZone) 보안 방식을 지원하는 모바일 장치. - 제 9 항에 있어서,
상기 제 1 접근 제어 유닛은 트러스트존 보호 제어기(TZPC)에 대응하고, 상기 제 2 접근 제어 유닛은 트러스트존 주소 공간 제어기(TZASC)에 대응하는 모바일 장치. - 코덱 입력 버퍼 영역, 코덱 출력 버퍼 영역, 프레임 버퍼 영역을 포함하는 보안 영역과 비보안 영역의 저장 영역을 포함하는 워킹 메모리; 그리고
상기 보안 영역 또는 상기 비보안 영역을 트러스트존 방식에 따라 접근하는 시스템 온 칩을 포함하되,
상기 시스템 온 칩은:
상기 트러스트존 방식의 접근 제어를 지원하는 프로세싱 유닛;
상기 프로세싱 유닛의 제어에 따라 상기 코덱 입력 버퍼 영역에 저장된 데이터를 처리하여 상기 코덱 출력 버퍼 영역에 저장하는 하드웨어 코덱;
상기 코덱 출력 버퍼에 저장된 데이터의 이미지 포맷을 변환하여 상기 프레임 버퍼 영역에 저장하는 이미지 컨버터;
상기 프레임 버퍼 영역에 저장된 데이터를 디스플레이에 표시하는 LCD 컨트롤러; 및
상기 하드웨어 코덱, 상기 이미지 컨버터, 상기 LCD 컨트롤러 각각의 상기 워킹 메모리로의 접근을 제어하는 제 1 내지 제 3 메모리 관리 유닛들을 포함하되,
상기 하드웨어 코덱, 상기 이미지 컨버터, 상기 LCD 컨트롤러 각각의 슬레이브 포트와 마스터 포트는 서로 다른 보안 속성으로 설정되는 모바일 장치. - 제 11 항에 있어서,
상기 슬레이브 포트는 비보안 속성으로 설정되고, 상기 마스터 포트는 보안 속성으로 설정되는 모바일 장치. - 제 12 항에 있어서,
상기 하드웨어 코덱, 상기 이미지 컨버터, 상기 LCD 컨트롤러의 보안 속성을 설정하기 위한 제 1 접근 제어 유닛을 더 포함하는 모바일 장치. - 제 13 항에 있어서,
상기 워킹 메모리의 보안 영역과 비보안 영역을 설정하는 제 2 접근 제어 유닛을 더 포함하는 모바일 장치. - 제 11 항에 있어서,
상기 보안 영역에는 상기 제 1 내지 제 3 메모리 관리 유닛들 각각의 접근 가능 영역을 정의하는 어드레스 변환 테이블이 저장되는 모바일 장치. - 워킹 메모리에 접근하여 보안 콘텐츠를 처리하는 시스템 온 칩에 있어서:
상기 워킹 메모리에 로드된 보안 운영 체제와 비보안 운영 체제에 의해서 배타적으로 구동되는 프로세싱 유닛;
상기 프로세싱 유닛의 제어에 따라 상기 보안 콘텐츠를 재생하기 위한 적어도 하나의 하드웨어 블록;
상기 하드웨어 블록의 상기 워킹 메모리로의 접근을 제한하는 메모리 보호 유닛; 그리고
상기 프로세싱 유닛 및 상기 하드웨어 블록의 상기 워킹 메모리로의 접근 트랜잭션을 보안 속성에 따라 논리적으로 분리하기 위한 접근 제어 유닛을 포함하되,
상기 하드웨어 블록의 슬레이브 포트는 비보안 속성으로, 상기 하드웨어 블록의 마스터 포트는 보안 속성으로 설정되는 시스템 온 칩. - 삭제
- 제 16 항에 있어서,
상기 접근 제어 유닛은 상기 하드웨어 블록의 마스터 포트 및 슬레이브 포트의 보안 속성을 설정하기 위한 트러스트존 보호 제어기(TZPC)를 포함하는 시스템 온 칩. - 제 16 항에 있어서,
상기 접근 제어 유닛은 상기 워킹 메모리로의 접근 트랜잭션을 보안 속성에 따라 제한하는 트러스트존 주소 공간 제어기(TZASC)를 포함하는 시스템 온 칩. - 제 16 항에 있어서,
상기 접근 제어 유닛을 제어하기 위한 드라이버 소프트웨어는 상기 보안 운영 체제에 의해서 실행되는 시스템 온 칩.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120119719A KR101954733B1 (ko) | 2012-10-26 | 2012-10-26 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
US13/966,478 US9361246B2 (en) | 2012-10-26 | 2013-08-14 | System-on-chip processing secure contents and mobile device comprising the same |
AU2013245457A AU2013245457A1 (en) | 2012-10-26 | 2013-10-14 | System-on-chip processing secure contents and mobile device comprising the same |
TW102136976A TWI606364B (zh) | 2012-10-26 | 2013-10-14 | 處理安全內容之系統單晶片及包含其之行動裝置 |
NL2011667A NL2011667B1 (en) | 2012-10-26 | 2013-10-24 | System-on-chip processing secure contents and mobile device comprising the same. |
JP2013222150A JP6289029B2 (ja) | 2012-10-26 | 2013-10-25 | 保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置 |
EP13190374.2A EP2725517B1 (en) | 2012-10-26 | 2013-10-25 | System-on-chip processing secure contents and mobile device comprising the same |
CN201310516723.2A CN103793629B (zh) | 2012-10-26 | 2013-10-28 | 处理安全内容的片上系统和包括片上系统的移动装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120119719A KR101954733B1 (ko) | 2012-10-26 | 2012-10-26 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140053595A KR20140053595A (ko) | 2014-05-08 |
KR101954733B1 true KR101954733B1 (ko) | 2019-03-06 |
Family
ID=49513750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120119719A KR101954733B1 (ko) | 2012-10-26 | 2012-10-26 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9361246B2 (ko) |
EP (1) | EP2725517B1 (ko) |
JP (1) | JP6289029B2 (ko) |
KR (1) | KR101954733B1 (ko) |
CN (1) | CN103793629B (ko) |
AU (1) | AU2013245457A1 (ko) |
NL (1) | NL2011667B1 (ko) |
TW (1) | TWI606364B (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102876A (zh) * | 2014-07-17 | 2014-10-15 | 北京握奇智能科技有限公司 | 保障客户端运行安全的装置 |
KR102218202B1 (ko) * | 2014-08-01 | 2021-02-23 | 삼성전자주식회사 | 반도체 장치 |
CN105516443B (zh) * | 2014-09-25 | 2020-01-07 | 中兴通讯股份有限公司 | 一种终端及终端多重防护方法 |
US10181027B2 (en) * | 2014-10-17 | 2019-01-15 | Intel Corporation | Interface between a device and a secure processing environment |
GB2531844B (en) * | 2014-10-31 | 2019-06-26 | Hewlett Packard Development Co | Hardware-protective data processing systems and methods using an application executing in a secure domain |
US9767324B2 (en) | 2014-11-22 | 2017-09-19 | Intel Corporation | Transparent execution of secret content |
WO2016082125A1 (zh) | 2014-11-26 | 2016-06-02 | 宇龙计算机通信科技(深圳)有限公司 | 多媒体文件处理方法、多媒体文件处理装置及终端 |
KR102327334B1 (ko) | 2014-12-31 | 2021-11-17 | 삼성전자주식회사 | 디스플레이 컨트롤러 및 이를 포함하는 반도체 집적회로 장치 |
CN104573565B (zh) * | 2015-01-23 | 2017-11-17 | 宇龙计算机通信科技(深圳)有限公司 | 一种TrustZone上的内存管理方法及装置 |
US9667665B1 (en) | 2015-02-25 | 2017-05-30 | Spring Communications Company L.P. | Session initiation protocol (SIP) communications over trusted hardware |
EP3082290A1 (en) * | 2015-04-17 | 2016-10-19 | Gemalto Sa | Device for managing multiple accesses to a secure module of a system on chip of an apparatus |
US10657274B2 (en) * | 2015-06-29 | 2020-05-19 | Samsng Electronics Co., Ltd. | Semiconductor device including memory protector |
US9648617B2 (en) | 2015-08-24 | 2017-05-09 | Sprint Communications Company L.P. | Hardware-trusted orthogonal frequency division multiplex (OFDM) access to a shared common public radio interface (CPRI) |
KR102429906B1 (ko) | 2015-10-13 | 2022-08-05 | 삼성전자주식회사 | 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치 |
US10261748B2 (en) * | 2015-12-18 | 2019-04-16 | Intel Corporation | Technologies for protecting audio data with trusted I/O |
US10671744B2 (en) * | 2016-06-23 | 2020-06-02 | Intel Corporation | Lightweight trusted execution for internet-of-things devices |
KR102668238B1 (ko) | 2016-12-15 | 2024-05-23 | 삼성전자주식회사 | 전자 장치 및 그 동작 방법 |
WO2018119904A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种实现安全操作系统切换的片上系统和方法 |
US10740496B2 (en) | 2017-02-13 | 2020-08-11 | Samsung Electronics Co., Ltd. | Method and apparatus for operating multi-processor system in electronic device |
RU2641226C1 (ru) * | 2017-02-13 | 2018-01-16 | Самсунг Электроникс Ко., Лтд. | Способ функционирования secureos на многопроцессорных системах в мобильных устройствах |
CN107220189A (zh) * | 2017-03-14 | 2017-09-29 | 晨星半导体股份有限公司 | 内存空间管理及内存访问控制方法及装置 |
CN109614798B (zh) * | 2017-09-30 | 2022-12-27 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN108491735A (zh) * | 2018-03-07 | 2018-09-04 | 京信通信系统(中国)有限公司 | Nor Flash安全存储方法、装置和设备 |
GB201806465D0 (en) | 2018-04-20 | 2018-06-06 | Nordic Semiconductor Asa | Memory-access controll |
GB201810662D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Access On A Secure-Aware Bus System |
GB201810659D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure-Aware Bus System |
GB201810653D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure peripheral interconnect |
JP7115351B2 (ja) * | 2019-02-13 | 2022-08-09 | オムロン株式会社 | 制御装置 |
KR102281601B1 (ko) | 2019-08-09 | 2021-07-23 | 엘지전자 주식회사 | 시스템 온 칩과 이를 이용한 정보 보호 방법 및 장치 |
CN110727636B (zh) * | 2019-10-10 | 2024-02-06 | 飞腾信息技术有限公司 | 片上系统的设备隔离方法 |
DE102019131603A1 (de) * | 2019-11-22 | 2021-05-27 | WAGO Verwaltungsgesellschaft mit beschränkter Haftung | Vorrichtung und verfahren zur gepufferten übertragung von daten |
CN113051199A (zh) | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 数据传输方法及装置 |
US12079379B2 (en) * | 2020-12-03 | 2024-09-03 | Huawei Technologies Co., Ltd. | Peripheral component interconnect express protection controller |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163368A1 (en) * | 2007-01-03 | 2008-07-03 | Arm Limited | Data processing apparatus and method for managing access to a display buffer |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225727A (ja) | 1994-02-14 | 1995-08-22 | Fujitsu Ltd | 計算機システム |
EP1139222A1 (en) * | 2000-03-31 | 2001-10-04 | Texas Instruments Incorporated | Prefetch for TLB cache |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
WO2004046924A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Processor switching between secure and non-secure modes |
GB2396930B (en) * | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
GB2396713B (en) | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
CN101092628B (zh) * | 2002-11-22 | 2010-11-03 | 卫材R&D管理有限公司 | 筛选在疟原虫中抑制gpi生物合成的化合物的方法 |
US20050078822A1 (en) | 2003-10-08 | 2005-04-14 | Eyal Shavit | Secure access and copy protection management system |
GB2422926B (en) * | 2005-02-04 | 2008-10-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for controlling access to memory |
US9158941B2 (en) | 2006-03-16 | 2015-10-13 | Arm Limited | Managing access to content in a data processing apparatus |
EP2023248B1 (en) * | 2006-04-24 | 2018-10-24 | Panasonic Intellectual Property Management Co., Ltd. | Data processing device, method, program, integrated circuit, and program generating device |
GB2442023B (en) | 2006-09-13 | 2011-03-02 | Advanced Risc Mach Ltd | Memory access security management |
US8392726B2 (en) * | 2006-12-20 | 2013-03-05 | Stmicroelectronics S.A. | Protection of memory areas |
KR20080067774A (ko) | 2007-01-17 | 2008-07-22 | 삼성전자주식회사 | 허가되지 않은 메모리 접근으로부터 비밀 영역을 보호하기위한 방법 및 시스템 |
GB2448151B (en) | 2007-04-03 | 2011-05-04 | Advanced Risc Mach Ltd | Memory domain based security control within data processing systems |
GB2460393B (en) | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
US8127131B2 (en) | 2008-04-10 | 2012-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient security domain translation and data transfer |
US8108908B2 (en) * | 2008-10-22 | 2012-01-31 | International Business Machines Corporation | Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor |
US8296538B2 (en) * | 2010-02-17 | 2012-10-23 | Arm Limited | Storing secure mode page table data in secure and non-secure regions of memory |
US8589650B2 (en) * | 2010-05-17 | 2013-11-19 | Texas Instruments Incorporated | Dynamically configurable memory system |
-
2012
- 2012-10-26 KR KR1020120119719A patent/KR101954733B1/ko active IP Right Grant
-
2013
- 2013-08-14 US US13/966,478 patent/US9361246B2/en active Active
- 2013-10-14 AU AU2013245457A patent/AU2013245457A1/en not_active Abandoned
- 2013-10-14 TW TW102136976A patent/TWI606364B/zh active
- 2013-10-24 NL NL2011667A patent/NL2011667B1/en active
- 2013-10-25 EP EP13190374.2A patent/EP2725517B1/en active Active
- 2013-10-25 JP JP2013222150A patent/JP6289029B2/ja active Active
- 2013-10-28 CN CN201310516723.2A patent/CN103793629B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163368A1 (en) * | 2007-01-03 | 2008-07-03 | Arm Limited | Data processing apparatus and method for managing access to a display buffer |
Also Published As
Publication number | Publication date |
---|---|
KR20140053595A (ko) | 2014-05-08 |
US9361246B2 (en) | 2016-06-07 |
TWI606364B (zh) | 2017-11-21 |
CN103793629A (zh) | 2014-05-14 |
TW201430609A (zh) | 2014-08-01 |
JP2014086092A (ja) | 2014-05-12 |
AU2013245457A1 (en) | 2014-05-15 |
NL2011667A (en) | 2014-04-29 |
JP6289029B2 (ja) | 2018-03-07 |
EP2725517A1 (en) | 2014-04-30 |
CN103793629B (zh) | 2018-05-11 |
EP2725517B1 (en) | 2017-09-27 |
US20140122820A1 (en) | 2014-05-01 |
NL2011667B1 (en) | 2016-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101954733B1 (ko) | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 | |
US10831886B2 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
JP5924829B2 (ja) | データトラフィックへの未認証アクセスの軽減 | |
US9607177B2 (en) | Method for securing content in dynamically allocated memory using different domain-specific keys | |
US7941860B2 (en) | Apparatus and method for content protection using one-way buffers | |
US8156565B2 (en) | Hardware-based protection of secure data | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
US20130166922A1 (en) | Method and system for frame buffer protection | |
KR20170077943A (ko) | 접근 제어 유닛을 포함하는 시스템 온 칩 및 시스템 온 칩을 포함하는 모바일 장치 | |
KR20130007659A (ko) | 가상화를 이용한 비디오 컨텐츠 보호 | |
US10395028B2 (en) | Virtualization based intra-block workload isolation | |
JP2023047278A (ja) | トランスフォーマ鍵識別子を使用する仮想機械マネージャによる信頼されたドメイン保護メモリへのシームレスなアクセス | |
KR20130101629A (ko) | 보안 실행 환경 지원 휴대단말에서 컨텐츠 출력 방법 및 장치 | |
US20160042195A1 (en) | Embedding secret data in code | |
CN113344764A (zh) | 安全图形处理器、处理器芯片、显示卡、装置、方法及存储介质 | |
WO2018171168A1 (en) | Methods and apparatus for controlling access to secure computing resources | |
Ruan et al. | Intel’s Embedded Solutions: from Management to Security |
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 |