KR102218202B1 - 반도체 장치 - Google Patents

반도체 장치 Download PDF

Info

Publication number
KR102218202B1
KR102218202B1 KR1020140148335A KR20140148335A KR102218202B1 KR 102218202 B1 KR102218202 B1 KR 102218202B1 KR 1020140148335 A KR1020140148335 A KR 1020140148335A KR 20140148335 A KR20140148335 A KR 20140148335A KR 102218202 B1 KR102218202 B1 KR 102218202B1
Authority
KR
South Korea
Prior art keywords
address
secure
processing unit
content
unit
Prior art date
Application number
KR1020140148335A
Other languages
English (en)
Other versions
KR20160016488A (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 삼성전자주식회사
Priority to KR1020140148335A priority Critical patent/KR102218202B1/ko
Priority to US14/674,869 priority patent/US10068110B2/en
Publication of KR20160016488A publication Critical patent/KR20160016488A/ko
Application granted granted Critical
Publication of KR102218202B1 publication Critical patent/KR102218202B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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 physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

반도체 장치가 제공된다. 상기 반도체 장치는, 메모리에 저장된 데이터를 이용하여 연산을 수행하는 제1 프로세싱 유닛 및 제1 프로세싱 유닛과 통신하며, 제1 프로세싱 유닛이 연산을 수행하도록 메모리를 제어하는 메모리 패스 컨트롤러를 포함하되, 메모리 패스 컨트롤러는, 메모리의 주소를 보안 주소(secure address)와 비보안 주소(non-secure address)로 구분하고, 보안 주소 또는 비보안 주소로의 제1 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부와, 주소 영역 제어부와 연결되고, 제1 프로세싱 유닛이 비보안 주소에 보안 콘텐츠(secure content)를 라이트(write)하는 것을 방지하는 제1 콘텐츠 방화벽(content firewall) 유닛을 포함한다.

Description

반도체 장치{Semiconductor device}
본 발명은 반도체 장치에 관한 것이다.
암 트러스트 존(ARM Trust Zone)은 모바일 애플리케이션의 안전한 실행 환경을 제공하는 보안 하드웨어 및 소프트웨어 기술로 칩 설계 회사인 ARM에서 개발하였다. 별도의 보안 하드웨어 칩을 쓰지 않고 하나의 CPU에 보안 영역(Secure World)과 일반 영역(Normal World)이 존재하도록 하여 일반 애플리케이션은 일반 영역(Normal World)에서 동작하고 보안이 필요한 애플리케이션은 보안 영역(Secure World)에서 안전하게 동작하도록 하는 실행 환경을 제공한다.
자체적으로 ISA(Instruction Set Architecture) 및 캐쉬(cache)를 가지고 있으나, 이러한 암 트러스트 존이 적용되지 않는 프로세싱 유닛의 경우, ISA 및 캐쉬를 위한 프로그래밍 레지스터 사용시, 보안 콘텐츠(secure content)가 비보안 메모리 영역으로 복사될 위험성이 있는바, 이를 해결하기 위한 필요성이 대두되고 있다.
본 발명이 해결하려는 과제는, 암 트러스트 존이 담당하던 보안 기능을 커버할 수 있는 콘텐츠 방화벽 유닛을 포함하는 반도체 장치를 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 일 실시예는, 메모리에 저장된 데이터를 이용하여 연산을 수행하는 제1 프로세싱 유닛 및 제1 프로세싱 유닛과 통신하며, 제1 프로세싱 유닛이 연산을 수행하도록 메모리를 제어하는 메모리 패스 컨트롤러(Memory path controller)를 포함하되, 메모리 패스 컨트롤러는, 메모리의 주소를 보안 주소(secure address)와 비보안 주소(non-secure address)로 구분하고, 보안 주소 또는 비보안 주소로의 제1 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부와, 주소 영역 제어부와 연결되고, 제1 프로세싱 유닛이 비보안 주소에 보안 콘텐츠(secure content)를 라이트(write)하는 것을 방지하는 제1 콘텐츠 방화벽(content firewall) 유닛을 포함한다.
상기 제1 콘텐츠 방화벽 유닛은, 제1 프로세싱 유닛으로부터 보안 콘텐츠를 비보안 주소에 라이트(write)하라는 명령을 제공받은 경우, 제1 프로세싱 유닛으로 에러 메시지를 송신할 수 있다.
상기 에러 메시지는 비보안 주소가 비존재하는 주소라는 정보를 포함할 수 있다.
상기 제1 콘텐츠 방화벽 유닛은 주소 영역 제어부로부터, 제1 프로세싱 유닛이 보안 콘텐츠를 라이트하고자 하는 메모리의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보를 제공받을 수 있다.
상기 메모리는 DRAM을 포함할 수 있다.
상기 제1 프로세싱 유닛이 사용하는 가상 주소(virtual address)를 물리적 주소(physical address)로 변환하는 메모리 관리 유닛을 더 포함할 수 있다.
상기 메모리 관리 유닛은 제1 프로세싱 유닛과 제1 콘텐츠 방화벽 유닛 사이에 연결되고, 제1 프로세싱 유닛으로부터 제공받은 가상 주소에 기반한 명령을 물리적 주소에 기반한 명령으로 변환하여 제1 콘텐츠 방화벽 유닛으로 제공할 수 있다.
상기 보안 주소에 저장된 보안 콘텐츠를 비보안 주소에 라이트하고자 할 때 사용되는 암호화 유닛과, 암호화 유닛과 연결되고, 비보안 주소에 암호화된 보안 콘텐츠가 라이트되는 것을 허여하는 제2 콘텐츠 방화벽 유닛을 더 포함할 수 있다.
상기 암호화 유닛은, 보안 주소에 저장된 보안 콘텐츠를 비보안 주소에 라이트하고자 할 때 보안 콘텐츠를 암호화하여 제2 콘텐츠 방화벽 유닛으로 라이트 명령을 제공할 수 있다.
상기 주소 영역 제어부와, 제1 및 제2 콘텐츠 방화벽 유닛과, 암호화 유닛은 물리적 주소를 사용할 수 있다.
상기 주소 영역 제어부는 보안 주소 또는 비보안 주소로의 암호화 유닛의 액세스를 허용할 수 있다.
상기 제1 프로세싱 유닛과 다른 제2 프로세싱 유닛과, 주소 영역 제어부와 연결되고, 제2 프로세싱 유닛이 메모리의 비보안 주소에 보안 콘텐츠를 라이트 하는 것을 막는 제3 콘텐츠 방화벽 유닛을 더 포함할 수 있다.
상기 제1 내지 제3 콘텐츠 방화벽 유닛과 주소 영역 제어부 사이를 연결하고, 제1 내지 제3 콘텐츠 방화벽 유닛의 출력을 정리하여 주소 영역 제어부로 제공하는 중간 연결부를 더 포함할 수 있다.
상기 제1 프로세싱 유닛은 GPU를 포함하고, 제2 프로세싱 유닛은 CPU를 포함할 수 있다.
상기 제1 프로세싱 유닛은 비디오 코덱을 포함하고, 제2 프로세싱 유닛은 씨커(Seeker)를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 다른 반도체 장치는, 메모리에 저장된 데이터를 이용하여 연산을 수행하는 프로세싱 유닛, 프로세싱 유닛이 연산을 수행하도록 메모리를 제어하는 메모리 패스 컨트롤러, 메모리 패스 컨트롤러와 연결되고, 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 주소 또는 비보안 주소로의 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부 및 주소 영역 제어부와 연결되고, 프로세싱 유닛이 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지하는 콘텐츠 방화벽 유닛를 포함한다.
상기 과제를 해결하기 위한 본 발명의 또 다른 실시예에 다른 반도체 장치는, 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 권한을 갖는 프로세싱 유닛이 보안 주소와 비보안 주소에 액세스하는 것을 허용하고, 비보안 권한을 갖는 프로세싱 유닛이 보안 주소에 액세스하는 것을 금지하는 주소 영역 제어부 및 주소 영역 제어부로부터 보안 주소 및 비보안 주소에 관한 정보를 제공받아, 보안 권한을 갖는 프로세싱 유닛이 보안 주소에 라이트(write)된 보안 콘텐츠(secure content)를 리드(read)하는 것을 허용하고, 보안 권한을 갖는 프로세싱 유닛이 보안 주소로부터 리드한 보안 콘텐츠를 비보안 주소에 라이트 하는 것을 금지하는 콘텐츠 방화벽(content firewall) 유닛을 포함한다.
상기 과제를 해결하기 위한 본 발명의 또 다른 실시예에 다른 반도체 장치는, 메모리에 저장된 데이터를 이용하여 연산을 수행하는 프로세싱 유닛, 메모리에 저장된 데이터를 암호화하는 암호화 유닛 및 프로세싱 유닛 및 암호화 유닛과 통신하며, 프로세싱 유닛 및 암호화 유닛이 연산을 수행하도록 메모리를 제어하는 메모리 패스 컨트롤러를 포함하되, 메모리 패스 컨트롤러는, 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 주소 또는 비보안 주소로의 프로세싱 유닛 및 암호화 유닛의 액세스를 허용하는 주소 영역 제어부와, 주소 영역 제어부와 연결되고, 프로세싱 유닛이 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지하고, 암호화 유닛이 비보안 주소에 암호화된 보안 콘텐츠를 라이트하는 것을 허여하는 콘텐츠 방화벽 유닛을 포함한다.
상기 암호화 유닛은, 보안 주소에 저장된 보안 콘텐츠를 비보안 주소에 라이트하고자 할 때 보안 콘텐츠를 암호화하여 콘텐츠 방화벽 유닛으로 라이트 명령을 제공할 수 있다.
상기 암호화 유닛은, 보안 주소에 저장된 보안 콘텐츠를 리드하여 암호화하고, 암호화된 보안 콘텐츠를 비보안 주소에 라이트할 수 있다.
상기 콘텐츠 방화벽 유닛은, 프로세싱 유닛으로부터 보안 콘텐츠를 비보안 주소에 라이트하라는 제1 명령을 제공받은 경우, 프로세싱 유닛으로 에러 메시지를 송신하고, 암호화 유닛으로부터 암호화된 보안 콘텐츠를 비보안 주소에 라이트하라는 제2 명령을 제공받은 경우, 제2 명령을 주소 영역 제어부로 제공할 수 있다.
상기 프로세싱 유닛이 사용하는 가상 주소를 물리적 주소로 변환하는 메모리 관리 유닛을 더 포함할 수 있다.
상기 메모리 관리 유닛은 프로세싱 유닛과 콘텐츠 방화벽 유닛 사이에 연결되고, 프로세싱 유닛으로부터 제공받은 가상 주소에 기반한 명령을 물리적 주소에 기반한 명령으로 변환하여 콘텐츠 방화벽 유닛으로 제공할 수 있다.
상기 주소 영역 제어부와, 콘텐츠 방화벽 유닛과, 암호화 유닛은 물리적 주소를 사용할 수 있다.
상기 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 반도체 장치는, 보안 영역과 비보안 영역을 포함하는 메모리, 메모리로 라이트 명령을 제공하는 제1 프로세싱 유닛, 메모리로 라이트 또는 리드 명령을 제공하고, 제1 프로세싱 유닛과 다른 제2 프로세싱 유닛 및 제2 프로세싱 유닛과 메모리 사이에 연결되고, 제2 프로세싱 유닛이 보안 영역의 비보안 주소 또는 비보안 영역의 비보안 주소로 보안 콘텐츠를 라이트하는 것을 방지하는 콘텐츠 방화벽 유닛을 포함한다.
상기 제2 프로세싱 유닛이 보안 영역의 비보안 주소 또는 비보안 영역의 비보안 주소로 보안 콘텐츠를 라이트하라는 명령을 제공할 때, 콘텐츠 방화벽 유닛은 제2 프로세싱 유닛으로 에러 메시지를 송신할 수 있다.
상기 에러 메시지는 보안 주소가 비존재하는 주소라는 정보를 포함할 수 있다.
상기 메모리는, 보안 영역 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 라이트 명령을 허용하고 리드 명령을 거부하는 비보안 주소를 가지는 제1 버퍼와, 보안 영역 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 리드 및 라이트 명령을 모두 거부하는 비보안 주소를 가지는 제2 버퍼를 포함할 수 있다.
상기 제1 버퍼는 콘텐츠(content)와 코드(code)를 포함할 수 있다.
상기 제1 프로세싱 유닛은 제1 버퍼로 라이트 명령을 제공하고, 제2 프로세싱 유닛은 제1 버퍼로 리드 또는 라이트 명령을 제공할 수 있다.
상기 제2 버퍼는 콘텐츠를 포함할 수 있다.
상기 제2 프로세싱 유닛은 제2 버퍼로 리드 또는 라이트 명령을 제공할 수 있다.
상기 메모리는 비보안 영역 내에 위치하는 제3 버퍼를 더 포함하되, 제1 프로세싱 유닛은 제3 버퍼로 라이트 명령을 제공하고, 제2 프로세싱 유닛은 제3 버퍼로 리드 명령을 제공할 수 있다.
상기 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 주소 또는 비보안 주소로의 제2 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부를 더 포함할 수 있다.
상기 콘텐츠 방화벽 유닛은 주소 영역 제어부로부터, 제2 프로세싱 유닛이 보안 콘텐츠를 라이트하고자 하는 메모리의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보를 제공받을 수 있다.
상기 제1 프로세싱 유닛은 CPU를 포함하고, 제2 프로세싱 유닛은 GPU를 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 2는 도 1의 메모리 패스 컨트롤러를 설명하는 도면이다.
도 3은 도 2의 주소 영역 제어부의 기능을 설명하기 위한 도면이다.
도 4는 도 2의 콘텐츠 방화벽 유닛의 기능을 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 6은 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 7은 도 6의 메모리 패스 컨트롤러를 설명하는 도면이다.
도 8은 도 7의 제3 콘텐츠 방화벽 유닛 및 암호화 유닛의 기능을 설명하기 위한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 10은 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 11은 도 10의 메모리 패스 컨트롤러와 메모리를 설명하는 도면이다.
도 12 및 도 13은 도 11의 제1 내지 제4 버퍼 및 콘텐츠 방화벽 유닛의 기능을 설명하기 위한 도면이다.
도 14는 본 발명의 몇몇 실시예에 따른 반도체 장치가 적용된 컴퓨팅 디바이스를 설명하기 위한 블록도이다.
도 15 내지 도 17은 본 발명의 몇몇 실시예에 따른 반도체 장치를 적용할 수 있는 예시적인 반도체 시스템들이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서, 도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 반도체 장치에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하는 블록도이다. 도 2는 도 1의 메모리 패스 컨트롤러를 설명하는 도면이다. 도 3은 도 2의 주소 영역 제어부의 기능을 설명하기 위한 도면이다. 도 4는 도 2의 콘텐츠 방화벽 유닛의 기능을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)는 메모리(100), 메모리 패스 컨트롤러(200), 프로세싱 유닛(300)을 포함할 수 있다.
메모리(100)는 예를 들어, DRAM을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 메모리(100)는 메모리 패스 컨트롤러(200)와 연결되고, 메모리 패스 컨트롤러(200)에 의해 제어될 수 있다.
메모리(100)는 메모리 주소에 관한 정보(M.A)를 메모리 패스 컨트롤러(200)로 제공하는바, 이에 대한 구체적인 설명은 후술하도록 한다.
메모리 패스 컨트롤러(200)는 프로세싱 유닛(300)과 통신하며, 프로세싱 유닛(300)이 연산을 수행하도록 메모리(100)를 제어할 수 있다.
구체적으로, 메모리 패스 컨트롤러(200)는 프로세싱 유닛(300)으로부터 명령(C.VA)을 제공받고, 에러 메시지(E.M)를 프로세싱 유닛으로 제공할 수 있다. 또한 메모리 패스 컨트롤러(200)는 프로세싱 유닛(300)으로부터 제공받은 명령(C.VA)을 토대로 메모리(100)에 라이트(write) 또는 리드(read) 동작(R/W)을 수행할 수 있다.
또한 메모리 패스 컨트롤러(200)는 메모리(100)로부터 메모리 주소에 관한 정보(M.A)를 제공받을 수 있다.
메모리 패스 컨트롤러(200)에 대한 보다 구체적인 설명은 도 2에서 하도록 한다.
프로세싱 유닛(300)은 메모리(100)에 저장된 데이터를 이용하여 연산을 수행할 수 있다.
구체적으로, 프로세싱 유닛(300)은 메모리 패스 컨트롤러(200)로부터 에러 메시지(E.M)를 제공받고, 명령(C.VA)을 메모리 패스 컨트롤러(200)로 제공할 수 있다. 명령(C.VA)은 예를 들어, 메모리(100)에 저장된 데이터를 리드하거나 메모리(100)로 데이터를 라이트하는 명령일 수 있다. 또한 데이터는 예를 들어, 콘텐츠(contents)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한 프로세싱 유닛(300)은 가상 주소(virtual address)를 사용하는바, 명령(C.VA) 역시 가상 주소를 기반으로 내려질 수 있다. 또한 에러 메시지(E.M)는 후술하는 콘텐츠 방화벽 유닛(도 2의 220)으로부터 제공받는바, 이에 대한 구체적인 설명은 후술하도록 한다.
추가적으로, 프로세싱 유닛(300)은 예를 들어, CPU(Central Processing Unit), GPU(Graphic Processing Unit), 비디오 코덱(video codec) 등 일 수 있으나, 이에 한정되는 것은 아니다.
도 2를 참조하면, 메모리 패스 컨트롤러(200)는 주소 영역 제어부(210), 콘텐츠 방화벽 유닛(220), 메모리 관리 유닛(230)을 포함할 수 있다.
주소 영역 제어부(210)는 메모리(100)의 주소를 보안 주소(secure address)와 비보안 주소(non-secure address)로 구분하고, 보안 주소 또는 비보안 주소로의 프로세싱 유닛(300)의 액세스(access)를 허용할 수 있다. 즉, 주소 영역 제어부(210)는 보안 권한을 갖는 프로세싱 유닛이 보안 주소와 비보안 주소에 액세스하는 것을 허용하고, 비보안 권한을 갖는 프로세싱 유닛이 보안 주소에 액세스하는 것을 금지할 수 있다.
구체적으로, 주소 영역 제어부(210)는 콘텐츠 방화벽 유닛(220)으로부터 물리적 주소(physical address)에 기반한 명령(C.PA)을 제공받아 메모리(100)에 데이터를 라이트하거나 메모리(100)에 저장된 데이터를 리드할 수 있다. 또한 주소 영역 제어부(210)는 프로세싱 유닛(300)이 데이터를 라이트 또는 리드하고자 하는 메모리(100)의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보(A.I)를 콘텐츠 방화벽 유닛(220)으로 제공할 수 있다.
또한 주소 영역 제어부(210)는 메모리(100)로부터 메모리 주소에 관한 정보(M.A)를 제공받아, 프로세싱 유닛(300)이 데이터를 라이트 또는 리드하고자 하는 메모리(100)의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보(A.I)를 생성할 수 있다.
콘텐츠 방화벽 유닛(220)은 주소 영역 제어부(210)와 연결되고, 프로세싱 유닛(300)이 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지할 수 있다. 즉, 콘텐츠 방화벽 유닛(220)은 보안 권한을 갖는 프로세싱 유닛이 보안 주소에 라이트된 보안 콘텐츠를 리드하는 것을 허용하고, 보안 권한을 갖는 프로세싱 유닛이 보안 주소로부터 리드한 보안 콘텐츠를 비보안 주소에 라이트 하는 것을 금지할 수 있다.
물론 콘텐츠 방화벽 유닛(220)은, 프로세싱 유닛(300)이 비보안 주소에 라이트된 보안 콘텐츠를 리드하는 것 역시 방지할 수 있다. 다만, 설명의 편의를 위해 본 발명의 몇몇 실시예에서, 콘텐츠 방화벽 유닛(220)은, 프로세싱 유닛(300)이 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지하는 역할을 수행한다는 점에 중점을 두어 설명하기로 한다.
구체적으로, 콘텐츠 방화벽 유닛(220)은 주소 영역 제어부(210)와 메모리 관리 유닛(230) 사이에 연결될 수 있다. 또한 메모리 관리 유닛(230)으로부터 물리적 주소에 기반한 명령(C.PA)을 제공받고, 주소 영역 제어부(210)로부터 프로세싱 유닛(300)이 데이터를 라이트 또는 리드하고자 하는 메모리(100)의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보(A.I)를 제공받을 수 있다.
콘텐츠 방화벽 유닛(220)은, 메모리 관리 유닛(230)으로부터 제공받은 명령(C.PA)이 보안 콘텐츠를 비보안 주소에 라이트하라는 명령인 경우, 프로세싱 유닛(300)으로 에러 메시지(E.M)을 송신할 수 있다.
여기에서, 에러 메시지(E.M)는 비보안 주소가 비존재하는 주소라는 정보를 포함할 수 있다. 보다 구체적으로, 에러 메시지(E.M)는 예를 들어, 디코딩 에러(decoding error) 메시지일 수 있으나, 이에 한정되는 것은 아니다.
또한 콘텐츠 방화벽 유닛(220)은, 메모리 관리 유닛(230)으로부터 제공받은 명령(C.PA)이 보안 콘텐츠를 비보안 주소에 라이트하라는 명령이 아닌 경우, 주소 영역 제어부(210)로 메모리 관리 유닛(230)으로부터 제공받은 명령(C.PA)을 제공할 수 있다.
메모리 관리 유닛(230)은 프로세싱 유닛(300)이 사용하는 가상 주소를 물리적 주소로 변환할 수 있다.
구체적으로, 메모리 관리 유닛(230)은 프로세싱 유닛(300)과 콘텐츠 방화벽 유닛(220) 사이에 연결되고, 프로세싱 유닛(300)이 사용하는 가상 주소를 물리적 주소로 변환하여 콘텐츠 방화벽 유닛(220)으로 제공할 수 있다. 즉, 메모리 관리 유닛(230)은 프로세싱 유닛(300)으로부터 제공받은 가상 주소에 기반한 명령(V.A)을 물리적 주소에 기반한 명령(P.A)으로 변환하여 콘텐츠 방화벽 유닛(220)으로 제공할 수 있다. 이를 통해 메모리(100)가 보다 효율적으로 관리 및 보호될 수 있으며, 캐시(cache) 역시 효율적으로 관리될 수 있다. 메모리 관리 유닛(230)에 대한 보다 구체적인 설명은 생략하도록 한다.
정리하자면, 프로세싱 유닛(300)은 가상 주소를 사용하고, 메모리 관리 유닛(230)을 통해 이러한 가상 주소가 물리적 주소로 변환되어 콘텐츠 방화벽 유닛(220), 주소 영역 제어부(210)에서도 역시 물리적 주소가 사용될 수 있다.
도 3을 참조하면, 주소 영역 제어부(210)에 의해 메모리(100)의 주소가 보안 주소(SECURE)와 비보안 주소(NON-SECURE)로 구분된 테이블이 도시되어 있다.
구체적으로, 주소 영역 제어부(210)는 메모리(100)의 주소를 2가지 즉, 보안 주소(SECURE)와 비보안 주소(NON-SECURE)로 구분할 수 있다. 또한 프로세싱 유닛(300)이 제공한 명령의 물리적 주소(C.PA)가 보안 주소(SECURE)에 해당하는지 또는 비보안 주소(NON-SECURE)에 해당하는지는 주소 영역 제어부(210)를 통해 알 수 있다.
예를 들어, 메모리(100)의 주소가 1000번지~5000번지($1000~$5000)를 포함한다고 가정했을 때, 1000번지($1000)는 보안 주소(SECURE), 2000번지($2000)는 비보안 주소(NON-SECURE), 3000번지($3000)는 보안 주소(SECURE), 4000번지($4000)는 보안 주소(SECURE), 5000번지($5000)는 비보안 주소(NON-SECURE)일 수 있다. 물론 도 3에 도시된 각각의 번지에 따른 보안 또는 비보안 주소 여부는 이에 한정되는 것은 아니다.
도 4를 참조하면, 프로세싱 유닛(300)이 보안 콘텐츠를 비보안 주소(NON-SECURE)에 라이트하라는 명령을 콘텐츠 방화벽 유닛(220)으로 제공한 경우, 콘텐츠 방화벽 유닛(220)이 메모리(100)의 주소를 어떻게 프로세싱 유닛(300)에게 보여주는지가 도시되어 있다.
구체적으로, 콘텐츠 방화벽 유닛(220)은 보안 콘텐츠를 비보안 주소(NON-SECURE)에 라이트하라는 명령을 제공받은 경우, 비보안 주소(NON-SECURE)에 해당하는 메모리(100)의 주소(예를 들면, 2000번지($2000)와 5000번지($5000))가 존재하지 않는다는 에러 메시지(E.M)를 프로세싱 유닛(300)으로 송신할 수 있다.
예를 들어, 프로세싱 유닛(300)이 1000번지($1000)에 저장된 보안 콘텐츠를 리드해서 레지스터(미도시)에 저장한 후, 레지스터(미도시)에 저장된 보안 콘텐츠를 2000번지($2000)에 라이트하라는 명령을 콘텐츠 방화벽 유닛(220)으로 제공한 경우, 콘텐츠 방화벽 유닛(220)은 프로세싱 유닛(300)으로 2000번지($2000)는 존재하지 않는 주소라는 에러 메시지(E.M)를 제공할 수 있다.
즉, 콘텐츠 방화벽 유닛(220)에 의해 보안 콘텐츠가 비보안 주소(NON-SECURE)로 라이트되는 것이 방지되기에, 비보안 주소(NON-SECURE)에는 보안 콘텐츠가 저장되지 않게 되고, 이에 따라 다른 비보안 권한을 가진 프로세싱 유닛에 의해 보안 콘텐츠가 복사되는 일이 방지될 수 있다.
본 발명의 일 실시예에 따른 반도체 장치(1)는 보안 기능을 담당하는 콘텐츠 방화벽 유닛(220)을 포함하고, 콘텐츠 방화벽 유닛(220)은 프로세싱 유닛(300)으로부터 보안 콘텐츠를 비보안 주소(NON-SECURE)에 라이트하라는 명령을 제공받은 경우 비보안 주소(NON-SECURE)에 해당하는 메모리(100)의 주소가 존재하지 않는다는 에러 메시지(E.M)를 프로세싱 유닛(300)으로 다시 송신함으로써, 보안 콘텐츠가 비보안 주소(NON-SECURE)로 복사되는 것을 방지할 수 있다. 또한 이를 통해 암 트러스트 존 기술이 담당하던 보안 기능을 커버할 수 있다.
이하에서는, 도 5를 참조하여, 본 발명의 다른 실시예에 따른 반도체 장치에 대해 설명하도록 한다. 앞서 설명한 실시예와의 차이점을 중심으로 설명하도록 한다.
도 5는 본 발명의 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 5를 참조하면, 본 발명의 다른 실시예에 따른 반도체 장치(2)는 메모리(100), 프로세싱 유닛(300), 메모리 패스 컨트롤러(400), 주소 영역 제어부(410), 콘텐츠 방화벽 유닛(420), 메모리 관리 유닛(430)을 포함할 수 있다.
도 5의 반도체 장치(2)는 도 1의 반도체 장치(1)와 달리, 메모리 패스 컨트롤러(400) 외부에 주소 영역 제어부(410), 콘텐츠 방화벽 유닛(420), 메모리 관리 유닛(430)이 위치한다.
먼저, 메모리(100)는 메모리 패스 컨트롤러(400)로 메모리 주소에 관한 정보(M.A)를 제공할 수 있고, 메모리 패스 컨트롤러(400)는 메모리(100)에 라이트 또는 리드 동작(R/W)을 수행할 수 있다.
이어서, 주소 영역 제어부(410)는 메모리 패스 컨트롤러(400)와 콘텐츠 방화벽 유닛(420) 사이에 연결되고, 콘텐츠 방화벽 유닛(420)으로부터 물리적 주소에 기반한 명령(C.PA)을 제공받아 메모리 패스 컨트롤러(400)로 제공할 수 있다.
또한 주소 영역 제어부(410)는 메모리 패스 컨트롤러(400)로부터 제공받은 메모리 주소에 관한 정보(M.A)를 토대로 프로세싱 유닛(300)이 데이터를 라이트 또는 리드하고자 하는 메모리(100)의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보(A.I)를 생성할 수 있다.
추가적으로, 프로세싱 유닛(300)과 메모리 패스 컨트롤러(400) 사이에는 주소 영역 제어부(410), 콘텐츠 방화벽 유닛(420), 메모리 관리 유닛(430)이 위치할 수 있다.
즉, 본 발명의 다른 실시예에 따른 반도체 장치(2)를 통해, 주소 영역 제어부(410), 콘텐츠 방화벽 유닛(420), 메모리 관리 유닛(430)이 메모리 패스 컨트롤러(400) 외부에 위치할 수도 있다는 것을 알 수 있다. 다만, 본 발명에 도시되어 있지는 않지만 주소 영역 제어부(410), 콘텐츠 방화벽 유닛(420), 메모리 관리 유닛(430) 중 한 개 또는 두 개가 메모리 패스 컨트롤러(400) 내부에 포함되고, 나머지는 메모리 패스 컨트롤러(400) 외부에 위치할 수도 있다.
이하에서는, 도 6 내지 도 8을 참조하여, 본 발명의 또 다른 실시예에 따른 반도체 장치에 대해 설명하도록 한다. 앞선 실시예들과의 차이점을 중심으로 설명하도록 한다.
도 6은 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다. 도 7은 도 6의 메모리 패스 컨트롤러를 설명하는 도면이다. 도 8은 도 7의 제3 콘텐츠 방화벽 유닛의 기능을 설명하기 위한 도면이다.
도 6을 참조하면, 본 발명의 또 다른 실시예에 따른 반도체 장치(3)는 메모리(100), 메모리 패스 컨트롤러(500), 제1 및 제2 프로세싱 유닛(600, 610), 암호화 유닛(620)을 포함할 수 있다.
제1 및 제2 프로세싱 유닛(600, 610)은 앞서 도 2에서 설명한 프로세싱 유닛(300)과 동일한 동작을 수행한다. 여기에서, 반도체 장치(3)가 2개의 프로세싱 유닛(600, 610) 즉, 제1 및 제2 프로세싱 유닛(600, 610)을 포함하는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 반도체 장치(3)는 하나 이상의 프로세싱 유닛을 포함할 수 있다.
다만, 도 2의 반도체 장치(1)와 달리, 도 6의 반도체 장치(3)는 암호화 유닛(620)을 더 포함할 수 있다. 여기에서, 암호화 유닛(620)은 메모리(100)의 보안 주소에 저장된 보안 콘텐츠를 비보안 주소에 라이트하고자 할 때 사용될 수 있다.
구체적으로, 도 7을 참조하면, 암호화 유닛(620)과 연결된 제3 콘텐츠 방화벽 유닛(550)과 제1 및 제2 프로세싱 유닛(600, 610)과 연결된 제1 및 제2 콘텐츠 방화벽 유닛(530, 540)은 서로 다른 역할을 수행한다.
즉, 제1 및 제2 콘텐츠 방화벽 유닛(530, 540)은 앞서 설명한 도 2의 콘텐츠 방화벽 유닛(220)과 동일한 역할을 수행할 수 있다. 즉, 제1 및 제2 콘텐츠 방화벽 유닛(530, 540)은 각각 제1 및 제2 프로세싱 유닛(600, 610)이 메모리(100)의 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지할 수 있다.
여기에서, 제1 프로세싱 유닛(600)과 제2 프로세싱 유닛(610)은 서로 다른 프로세싱 유닛일 수 있다. 즉, 제1 프로세싱 유닛(600)은 예를 들어, GPU이고, 제2 프로세싱 유닛(610)은 예를 들어, CPU일 수 있다. 또한 제1 프로세싱 유닛(600)은 예를 들어, 비디오 코덱이고, 제2 프로세싱 유닛(610)은 예를 들어, 씨커(Seeker)일 수 있으나, 이에 한정되는 것은 아니다.
이에 반해, 제3 콘텐츠 방화벽 유닛(550)은 비보안 주소에 암호화된 보안 콘텐츠가 라이트되는 것을 허여할 수 있다.
구체적으로, 암호화 유닛(620)은 메모리(100)의 보안 주소에 저장된 보안 콘텐츠를 비보안 주소에 라이트하고자 할 때 보안 콘텐츠를 암호화하여 제3 콘텐츠 방화벽 유닛(550)으로 라이트 명령을 제공할 수 있다.
즉, 암호화 유닛(620)은 메모리(100)의 보안 주소에 저장된 보안 콘텐츠를 리드하여 암호화하고, 암호화된 보안 콘텐츠를 메모리(100)의 비보안 주소에 라이트할 수 있다. 제3 콘텐츠 방화벽 유닛(550) 역시 비보안 주소에 보안 콘텐츠를 라이트하라는 명령을 제공받았다고 해서 무조건 이에 대해 에러 메시지를 발생하는 것이 아니라 암호화된 보안 콘텐츠를 라이트하라는 명령을 제공받은 경우에 한해서 비보안 주소에 보안 콘텐츠가 라이트되는 것을 허여한다.
또한 도 2의 반도체 장치(1)와 달리, 반도체 장치(3)는 제1 내지 제3 콘텐츠 방화벽 유닛(550)을 포함하기에, 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550)과 주소 영역 제어부(510) 사이를 연결하는 중간 연결부(520)를 더 포함할 수 있다.
중간 연결부(520)는 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550)과 주소 영역 제어부(510) 사이를 연결하고, 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550)의 출력을 정리하여 주소 영역 제어부(510)로 제공할 수 있다.
즉, 중간 연결부(520)는 제1 콘텐츠 방화벽 유닛(530)으로부터 제공받은 제1 명령(C.PA1), 제2 콘텐츠 방화벽 유닛(540)으로부터 제공받은 제2 명령(C.PA2), 제3 콘텐츠 방화벽 유닛(550)으로부터 제공받은 암호화된 명령(E.C)이 섞이지 않도록 정리하여 주소 영역 제어부(510)로 제공할 수 있다.
도 8을 참조하면, 암호화 유닛(620)에 의해 암호화된 보안 콘텐츠가 비보안 주소에 라이트된 상태가 도시되어 있다.
구체적으로, 예를 들어, 암호화 유닛(620)이 1000번지($1000)에 저장된 보안 콘텐츠를 리드해서 레지스터(미도시)에 저장하고, 레지스터(미도시)에 저장된 보안 콘텐츠를 암호화한 후, 2000번지($2000)에 라이트하라는 명령을 제3 콘텐츠 방화벽 유닛(550)으로 제공한 경우, 제3 콘텐츠 방화벽 유닛(550)은 암호화된 보안 콘텐츠가 2000번지($2000)로 라이트되는 것을 허여할 수 있다.
즉, 제3 콘텐츠 방화벽 유닛(550)은 보안 콘텐츠 중에서도 암호화된 보안 콘텐츠를 비보안 주소(NON-SECURE)에 라이트하라는 명령을 받은 경우, 이를 허여할 수 있다. 그 결과 비보안 주소인 2000번지($2000; NON-SECURE(ENCRYPTED))에 암호화된 보안 콘텐츠가 라이트될 수 있다.
결과적으로, 반도체 장치(3)는 보안 콘텐츠를 비보안 주소에 라이트해야 하는 경우(예를 들면, DRM(Digital Rights Management) 콘텐츠와 같은 보안 콘텐츠를 와이파이 인터페이스(WiFi interface)를 통해 외부 디스플레이로 전달해야하는 경우)에도 제3 콘텐츠 방화벽 유닛(550)과 암호화 유닛(620)을 이용하여, 안정적으로 이를 수행할 수 있다. 즉, 반도체 장치(3)는 비보안 주소에 보안 콘텐츠를 암호화하여 라이트함으로써, 라이트된 보안 콘텐츠가 다른 보안 권한을 가지지 않은 프로세싱 유닛에 의해 복사되는 것을 방지할 수 있다.
추가적으로, 도 6 및 도 7의 반도체 장치(3)는 메모리 패스 컨트롤러(500) 내에 주소 영역 제어부(510), 중간 연결부(520), 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550), 제1 및 제2 메모리 관리 유닛(535, 545)을 포함하는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 도 5에 도시된 반도체 장치(2)와 같이, 메모리 패스 컨트롤러(500) 외부에 주소 영역 제어부(510), 중간 연결부(520), 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550), 제1 및 제2 메모리 관리 유닛(535, 545)이 위치할 수도 있고, 주소 영역 제어부(510), 중간 연결부(520), 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550), 제1 및 제2 메모리 관리 유닛(535, 545) 중 하나 이상이 메모리 패스 컨트롤러(500) 내에 위치하고, 나머지는 메모리 패스 컨트롤러(500) 외부에 위치할 수도 있다.
이하에서는, 도 9를 참조하여, 본 발명의 또 다른 실시예에 따른 반도체 장치에 대해 설명하도록 한다. 앞서 실시예들과의 차이점을 중심으로 설명하도록 한다.
도 9는 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 9를 참조하면, 반도체 장치(4)는 도 6의 반도체 장치(3)와 달리, 제1 및 제2 프로세싱 유닛(600, 610), 암호화 유닛(620)과 통신하는 콘텐츠 방화벽 유닛(720)을 한 개만 가지고 있다.
즉, 도 9의 반도체 장치(4)는 도 6의 반도체 장치(3)와 달리, 제1 및 제2 프로세싱 유닛(600, 610), 암호화 유닛(620) 각각의 리드/라이트 명령에 대한 보안 기능을 담당하는 콘텐츠 방화벽 유닛(720)이 한 개로 통합되어 있다.
따라서, 반도체 장치(4)의 콘텐츠 방화벽 유닛(720)은 제1 및 제2 프로세싱 유닛(600, 610)과 각각 연결된 제1 및 제2 메모리 관리 유닛(730, 740)으로부터 각각 제1 및 제2 명령(C.PA1, C.PA2)을 제공받고, 암호화 유닛(620)으로부터 암호화된 명령(E.C)을 제공받아 도 7의 제1 내지 제3 콘텐츠 방화벽 유닛(720)과 동일한 역할을 수행할 수 있다.
즉, 콘텐츠 방화벽 유닛(720)은 제1 프로세싱 유닛(600)으로부터 메모리(100)의 비보안 주소에 보안 콘텐츠를 라이트하라는 명령을 제공받은 경우, 제1 프로세싱 유닛(600)으로 제1 에러 메시지(E.M1)를 제공할 수 있다. 또한 콘텐츠 방화벽 유닛(720)은 제2 프로세싱 유닛(610)으로부터 메모리(100)의 비보안 주소에 보안 콘텐츠를 라이트하라는 명령을 제공받은 경우, 제2 프로세싱 유닛(610)으로 제2 에러 메시지(E.M2)를 제공할 수 있다. 뿐만 아니라 콘텐츠 방화벽 유닛(720)은 암호화 유닛(620)으로부터 메모리(100)의 비보안 주소에 암호화된 보안 콘텐츠를 라이트하라는 명령을 제공받은 경우, 이를 허여할 수 있다.
또한 콘텐츠 방화벽 유닛(720)은 제1 메모리 관리 유닛(730)으로부터 제공받은 제1 명령(C.PA1), 제2 메모리 관리 유닛(740)으로부터 제공받은 제2 명령(C.PA2), 암호화 유닛(620)으로부터 제공받은 암호화된 명령(E.C)이 섞이지 않도록 정리하여 주소 영역 제어부(710)로 제공할 수 있다.
결과적으로, 도 9의 콘텐츠 방화벽 유닛(720)은 도 7의 제1 내지 제3 콘텐츠 방화벽 유닛(530, 540, 550)과 중간 연결부(520) 둘다의 역할을 수행할 수 있다.
추가적으로, 9의 반도체 장치(4)는 메모리 패스 컨트롤러(700) 내에 주소 영역 제어부(710), 콘텐츠 방화벽 유닛(720), 제1 및 제2 메모리 관리 유닛(730, 740)을 포함하는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 도 5에 도시된 반도체 장치(2)와 같이, 메모리 패스 컨트롤러(700) 외부에 주소 영역 제어부(710), 콘텐츠 방화벽 유닛(720), 제1 및 제2 메모리 관리 유닛(730, 740)이 위치할 수도 있고, 주소 영역 제어부(710), 콘텐츠 방화벽 유닛(720), 제1 및 제2 메모리 관리 유닛(730, 740) 중 하나 이상이 메모리 패스 컨트롤러(700) 내에 위치하고, 나머지는 메모리 패스 컨트롤러(700) 외부에 위치할 수도 있다.
이하에서는, 도 10 내지 도 13을 참조하여, 본 발명의 또 다른 실시예에 따른 반도체 장치에 대해 설명하도록 한다. 앞서 설명한 실시예들과의 차이점을 중심으로 설명하도록 한다.
도 10은 본 발명의 또 다른 실시예에 따른 반도체 장치를 설명하는 블록도이다. 도 11은 도 10의 메모리 패스 컨트롤러와 메모리를 설명하는 도면이다. 도 12 및 도 13은 도 11의 제1 내지 제4 버퍼 및 콘텐츠 방화벽 유닛의 기능을 설명하기 위한 도면이다.
도 10을 참조하면, 본 발명의 또 다른 실시예에 따른 반도체 장치(5)는 메모리(900), 제1 및 제2 프로세싱 유닛(800, 810), 메모리 패스 컨트롤러(850)를 포함할 수 있다.
도 10의 반도체 장치(5)는 앞서 설명한 반도체 장치들(1~4)과 달리, 프로세싱 유닛(800, 810)과 메모리(900) 간에 직접 리드 또는 라이트 동작이 수행되기도하고, 메모리(900) 내의 버퍼들마다 각자 실행하는 보안 기능이 서로 다르다.
또한 제1 프로세싱 유닛(800)은 메모리(900)로 제1 명령(C1)을 제공하고, 제2 프로세싱 유닛(810)은 메모리(900)로 제2 명령(C2)을 제공할 수 있다. 여기에서 제1 명령(C1)은 라이트 명령이고, 제2 명령(C2)은 리드 또는 라이트 명령일 수 있는바, 이에 한정되는 것은 아니다.
구체적으로, 도 11을 참조하면, 메모리(900)는 보안 영역(S.R)과 비보안 영역(NS.R)을 포함할 수 있다.
여기에서, 보안 영역(S.R)은 메모리(900) 내의 버퍼 중 자체적으로 보안 기능을 수행할 수 있는 버퍼가 포함된 영역이고, 비보안 영역(NS.R)은 메모리(900) 내의 버퍼 중 자체적으로 보안 기능을 수행할 수 없는 버퍼가 포함된 영역일 수 있다.
또한 메모리(900)는 제1 내지 제4 버퍼(910, 915, 920, 925)를 포함할 수 있다.
먼저, 제1 버퍼(910)는 비보안 영역(NS.R) 내에 위치하고, 제1 프로세싱 유닛(800)으로부터 라이트 명령(W)을 제공받고, 제2 프로세싱 유닛(810)으로부터 리드 명령(R)을 제공받을 수 있다.
제2 버퍼(915)는 보안 영역(S.R) 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 라이트 명령을 허용하고 리드 명령을 거부하는 비보안 주소를 가질 수 있다. 제2 버퍼(915)는 제1 프로세싱 유닛(800)으로부터 라이트 명령(W)을 제공받고, 제2 프로세싱 유닛(810)으로부터 리드/라이트 명령(R/W)을 제공받을 수 있다.
제3 버퍼(920)는 보안 영역(S.R) 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 리드 및 라이트 명령을 모두 거부하는 비보안 주소를 가질 수 있다. 제3 버퍼(920)는 제2 프로세싱 유닛(810)으로부터 리드 명령(R)을 제공받을 수 있다.
제4 버퍼(925)는 보안 영역(S.R) 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 리드 및 라이트 명령을 모두 거부하는 비보안 주소를 가질 수 있다. 제4 버퍼(925)는 제2 프로세싱 유닛(810)으로부터 리드/라이트 명령(R/W)을 제공받을 수 있다.
제1 프로세싱 유닛(800)은 메모리(900)로 라이트 명령(W)을 제공할 수 있고, 예를 들어, CPU를 포함할 수 있으나, 이에 한정되는 것은 아니다.
제2 프로세싱 유닛(810)은 메모리(900)로 리드/라이트 명령(R/W)을 제공할 수 있고, 제1 프로세싱 유닛(800)과 다른 프로세싱 유닛을 포함할 수 있다. 즉, 제2 프로세싱 유닛(810)은 예를 들어, GPU를 포함할 수 있으나, 이에 한정되는 것은 아니다.
메모리 패스 컨트롤러(850)는 제2 프로세싱 유닛(810)과 메모리(900) 사이에 연결되고, 콘텐츠 방화벽 유닛(855)과 주소 영역 제어부(857)를 포함할 수 있다.
콘텐츠 방화벽 유닛(855)은 제2 프로세싱 유닛(810)과 메모리(900) 사이에 연결되고, 제2 프로세싱 유닛(810)이 보안 영역(S.R)의 비보안 주소 또는 비보안 영역(NS.R)의 비보안 주소로 보안 콘텐츠를 라이트하는 것을 방지할 수 있다. 즉, 콘텐츠 방화벽 유닛(855)은, 제2 명령(C2)이 보안 영역(S.R)의 비보안 주소 또는 비보안 영역(NS.R)의 비보안 주소로 보안 콘텐츠를 라이트하라는 명령인 경우, 에러 메시지(E.M)를 제2 프로세싱 유닛(810)으로 제공할 수 있다.
또한 콘텐츠 방화벽 유닛(855)은 주소 영역 제어부(857)로부터, 제2 프로세싱 유닛(810)이 보안 콘텐츠를 라이트하고자 하는 메모리(900)의 주소가 보안 주소인지 또는 비보안 주소인지에 관한 정보(A.I)를 제공받을 수 있다.
여기에서, 도면에 도시되어 있지는 않지만, 앞서 설명한 메모리 관리 유닛이 제2 프로세싱 유닛(810)과 콘텐츠 방화벽 유닛(855) 사이에 위치할 수도 있다.
주소 영역 제어부(857)는 메모리(900)의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 주소 또는 비보안 주소로의 제2 프로세싱 유닛(810)의 액세스를 허용할 수 있다.
또한 주소 영역 제어부(857)는 메모리(900)로부터 메모리 주소에 관한 정보(M.A)를 제공받을 수 있다.
도 12 및 도 13을 참조하면, 제1 내지 제4 버퍼(910, 915, 920, 925) 및 콘텐츠 방화벽 유닛(855)에 의해 메모리(900)의 비보안 주소로 보안 콘텐츠가 라이트되는 것이 방지된다는 것을 알 수 있다.
구체적으로, 제1 버퍼(910)의 경우, 제2 내지 제4 버퍼(915, 920, 925)와 달리, 비보안 영역(NS.R)에 위치하기에, 자체적으로 보안 기능을 가지고 있지 않다.
따라서, 제1 버퍼(910)의 비보안 주소인 2000번지($2000)에 제1 프로세싱 유닛(800)이 보안 콘텐츠를 라이트하는 경우, 제1 버퍼(910)는 이를 방지할 수 없다(즉, 도 12와 같이, 비보안 주소(NON-SECURE)에 제1 프로세싱 유닛(800)에 의한 보안 콘텐츠의 라이트 명령(PU1-W)이 수행됨). 다만, 제1 프로세싱 유닛(800)은 라이트 명령만 제공할 뿐 리드 명령은 제공하지 않기에 제1 프로세싱 유닛(800)은 더 이상 문제가 되지 않는다. 또한 제2 프로세싱 유닛(810)이 비보안 주소인 2000번지($2000)에 라이트된 보안 콘텐츠를 리드한다고 하더라도, 콘텐츠 방화벽 유닛(855)이 이를 막기 때문에 제2 프로세싱 유닛(810)도 더 이상 문제가 되지 않는다(즉, 도 13과 같이, 콘텐츠 방화벽 유닛(855)이 제2 프로세싱 유닛(810)에게 비보안 주소(NON-SECURE)인 2000번지($2000)와 5000번지($5000)를 비존재하는 주소로 응답함).
즉, 비보안 영역(NS.R)에 존재하는 제1 버퍼(910)의 경우, 제1 프로세싱 유닛(800)이 쓰기 명령만 수행한다는 점 및 콘텐츠 방화벽 유닛(855)에 의해 제2 프로세싱 유닛(810)이 비보안 주소(NON-SECURE)에 라이트된 보안 콘텐츠를 리드하는 것이 방지된다는 점을 통해 보호될 수 있다.
다음으로, 제2 버퍼(915)의 경우, 콘텐츠와 코드(code)를 모두 포함할 수 있고, 보안 영역(S.R)에 위치하고, 자체적으로 보안 기능을 가질 수 있다.
따라서, 제2 버퍼(915)의 경우, 제2 버퍼(915)의 비보안 주소인 2000번지($2000)에 제1 프로세싱 유닛(800)이 보안 콘텐츠를 라이트하는 경우, 제2 버퍼(915)는 이를 방지할 수 없다(즉, 도 12와 같이, 비보안 주소(NON-SECURE)에 제1 프로세싱 유닛(800)에 의한 보안 콘텐츠의 라이트 명령(PU1-W)이 수행됨). 다만, 제1 프로세싱 유닛(800)은 라이트 명령만 제공할 뿐 리드 명령은 제공하지 않기에 제1 프로세싱 유닛(800)은 더 이상 문제가 되지 않는다. 물론 제2 버퍼(915) 자체가 비보안 주소에 대한 리드 명령을 거부하기에 제1 프로세싱 유닛(800)은 문제가 되지 않는다. 또한 제2 프로세싱 유닛(810)이 비보안 주소인 2000번지($2000)에 라이트된 보안 콘텐츠를 리드하는 명령을 제공한다고 하더라도, 제2 버퍼(915) 자체가 비보안 주소에 대한 리드 명령을 거부하기에 콘텐츠 방화벽 유닛(855)과 상관 없이, 제2 프로세싱 유닛(810) 역시 문제가 되지 않는다(즉, 도 12와 같이, 설령 비보안 주소(NON-SECURE)인 2000번지($2000)가 제2 프로세싱 유닛(810)에게 인식된다고 하더라도, 제2 버퍼(915) 자체가 비보안 주소에 대한 리드 명령을 거부하기에 2000번지($2000)와 5000번지($5000)에 대해 제2 프로세싱 유닛(810)이 리드 명령을 내릴 수 없음).
이어서, 제3 버퍼(920)의 경우, 콘텐츠를 포함할 수 있고, 보안 영역(S.R)에 위치하고, 자체적으로 보안 기능을 가질 수 있다.
구체적으로, 제3 버퍼(920)는, 제3 버퍼(920)의 비보안 주소(NON-SECURE)에 대한 리드 및 라이트 명령을 모두 거부하기에, 비보안 주소(NON-SECURE)로 보안 콘텐츠가 라이트될 염려가 없고, 이에 따라 비보안 주소(NON-SECURE)에 저장된 보안 콘텐츠가 리드될 염려 역시 없다.
따라서, 제2 프로세싱 유닛(810)이 제3 버퍼(920)의 비보안 주소에 대해 리드 명령을 제공한다고 하더라도, 콘텐츠 방화벽 유닛(855)과 상관없이, 리드 명령 자체가 거부될 수 있다.
마지막으로, 제4 버퍼(925)의 경우, 콘텐츠를 포함할 수 있고, 보안 영역(S.R)에 위치하고, 자체적으로 보안 기능을 가질 수 있다.
구체적으로, 제4 버퍼(925)는, 제4 버퍼(925)의 비보안 주소(NON-SECURE)에 대한 리드 및 라이트 명령을 모두 거부하기에, 비보안 주소(NON-SECURE)로 보안 콘텐츠가 라이트될 염려가 없고, 이에 따라 비보안 주소(NON-SECURE)에 저장된 보안 콘텐츠가 리드될 염려 역시 없다.
따라서, 제2 프로세싱 유닛(810)이 제4 버퍼(925)의 비보안 주소에 대해 리드/라이트 명령을 제공한다고 하더라도, 콘텐츠 방화벽 유닛(855)과 상관없이, 리드/라이트 명령 자체가 거부될 수 있다.
정리하자면, 반도체 장치(5)는 메모리(900)의 비보안 영역(NS.R)에 대해서는 콘텐츠 방화벽 유닛(855)을 이용하여 보안 기능을 수행하고, 메모리(900)의 보안 영역(S.R)에 대해서는 자체적인 보안 기능을 수행함으로써, 암 트러스트 존 기술이 담당하던 보안 기능을 커버할 수 있다.
이하에서는, 도 14를 참조하여, 본 발명의 몇몇 실시예에 따른 반도체 장치가 적용된 컴퓨팅 디바이스(1000)를 설명하도록 한다.
컴퓨팅 디바이스(1000)는 CPU(1010), CPU/DSP(1020), GPU(1030), 메모리 패스 컨트롤러(1040), H.264 비디오 인코더(1050), MP3 오디오 인코더(1060), AES 인크립션(1070), 커스텀 입/출력(1080), 메모리(1090), 버스(1095)를 포함할 수 있다. CPU(1010), CPU/DSP(1020), GPU(1030), 메모리 패스 컨트롤러(1040), H.264 비디오 인코더(1050), MP3 오디오 인코더(1060), AES 인크립션(1070), 커스텀 입/출력(1080)은 버스(1095)를 통해 상호 통신할 수 있다. 한편, 메모리 패스 컨트롤러(1040)는 메모리(1090)를 제어할 수 있다. 본 발명의 몇몇의 실시예에서, 컴퓨팅 디바이스(1000)는 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 비디오 게임 플랫폼/콘솔, 무선 통신 디바이스, 핸드헬드 디바이스, 텔레비전, 서버, 네트워크 디바이스, 메인프레임 컴퓨터 및 그래픽 데이터를 처리하거나 표시하는 기타 디바이스를 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 15 내지 도 17은 본 발명의 몇몇 실시예에 따른 반도체 장치를 적용할 수 있는 예시적인 반도체 시스템들이다.
도 15는 태블릿 PC(1200)을 도시한 도면이고, 도 16은 노트북(1300)을 도시한 도면이며, 도 17은 스마트폰(1400)을 도시한 것이다. 본 발명의 몇몇 실시예에 따른 반도체 장치(1~5)는 이러한 태블릿 PC(1200), 노트북(1300), 스마트폰(1400) 등에 사용될 수 있다.
또한, 본 발명의 몇몇 실시예에 따른 반도체 장치(1~5)는 예시하지 않는 다른 집적 회로 장치에도 적용될 수 있음은 당업자에게 자명하다. 즉, 이상에서는 본 실시예에 따른 반도체 시스템의 예로, 태블릿 PC(1200), 노트북(1300), 및 스마트폰(1400)만을 들었으나, 본 실시예에 따른 반도체 시스템의 예가 이에 제한되는 것은 아니다. 본 발명의 몇몇 실시예에서, 반도체 시스템은, 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등으로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 메모리에 저장된 데이터를 이용하여 연산을 수행하는 제1 프로세싱 유닛; 및
    상기 제1 프로세싱 유닛과 통신하며, 상기 제1 프로세싱 유닛이 연산을 수행하도록 상기 메모리를 제어하는 메모리 패스 컨트롤러(Memory path controller)를 포함하되,
    상기 메모리 패스 컨트롤러는,
    상기 메모리의 주소를 보안 주소(secure address)와 비보안 주소(non-secure address)로 구분하고, 상기 보안 주소 또는 상기 비보안 주소로의 상기 제1 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부와,
    상기 주소 영역 제어부와 연결되고, 상기 제1 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트(write)하라는 명령을 제공받은 경우, 상기 제1 프로세싱 유닛이 상기 비보안 주소에 보안 콘텐츠(secure content)를 라이트(write)하는 것을 방지하고, 상기 제1 프로세싱 유닛이 상기 비보안 주소에 보안 콘텐츠(secure content)를 리드(read)하는 것을 방지하는 제1 콘텐츠 방화벽(content firewall) 유닛과
    상기 보안 주소에 저장된 보안 콘텐츠를 상기 비보안 주소에 라이트하고자 할 때 사용되는 암호화 유닛과,
    상기 암호화 유닛과 연결되고, 상기 비보안 주소에 암호화된 보안 콘텐츠가 라이트되는 것을 허여하는 제2 콘텐츠 방화벽 유닛과
    상기 제1 내지 제2 콘텐츠 방화벽 유닛과 상기 주소 영역 제어부 사이를 연결하고, 상기 제1 내지 제2 콘텐츠 방화벽 유닛의 출력을 정리하여 상기 주소 영역 제어부로 제공하는 중간 연결부를 포함하고,
    상기 제1 콘텐츠 방화벽 유닛은, 상기 제1 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트(write)하라는 명령을 제공받은 경우, 상기 제1 프로세싱 유닛으로 에러 메시지를 송신하며,
    상기 에러 메시지는 상기 비보안 주소가 비존재하는 주소라는 정보를 포함하는 반도체 장치.
  2. 삭제
  3. 삭제
  4. 제 1항에 있어서,
    상기 제1 콘텐츠 방화벽 유닛은 상기 주소 영역 제어부로부터, 상기 제1 프로세싱 유닛이 보안 콘텐츠를 라이트하고자 하는 메모리의 주소가 상기 보안 주소인지 또는 상기 비보안 주소인지에 관한 정보를 제공받는 반도체 장치.
  5. 제 1항에 있어서,
    상기 제1 프로세싱 유닛이 사용하는 가상 주소(virtual address)를 물리적 주소(physical address)로 변환하는 메모리 관리 유닛을 더 포함하는 반도체 장치.
  6. 제 5항에 있어서,
    상기 메모리 관리 유닛은 상기 제1 프로세싱 유닛과 상기 제1 콘텐츠 방화벽 유닛 사이에 연결되고, 상기 제1 프로세싱 유닛으로부터 제공받은 가상 주소에 기반한 명령을 물리적 주소에 기반한 명령으로 변환하여 상기 제1 콘텐츠 방화벽 유닛으로 제공하는 반도체 장치.
  7. 제1항에 있어서, 상기 보안 콘텐츠는 비디오 데이터를 포함하는 반도체 장치.
  8. 제 1항에 있어서,
    상기 암호화 유닛은, 상기 보안 주소에 저장된 보안 콘텐츠를 상기 비보안 주소에 라이트하고자 할 때 상기 보안 콘텐츠를 암호화하여 상기 제2 콘텐츠 방화벽 유닛으로 라이트 명령을 제공하는 반도체 장치.
  9. 제 7항에 있어서,
    상기 제1 프로세싱 유닛과 다른 제2 프로세싱 유닛과,
    상기 주소 영역 제어부와 연결되고, 상기 제2 프로세싱 유닛이 상기 메모리의 비보안 주소에 보안 콘텐츠를 라이트 하는 것을 막는 제3 콘텐츠 방화벽 유닛을 더 포함하는 반도체 장치.
  10. 제9항에 있어서,
    상기 제1 프로세싱 유닛은 GPU(Graphic Processing Unit)을 포함하고,
    상기 제2 프로세싱 유닛은 CPU(Central Processing Unit)을 포함하는 반도체 장치.
  11. 메모리에 저장된 데이터를 이용하여 연산을 수행하는 프로세싱 유닛;
    상기 프로세싱 유닛이 연산을 수행하도록 상기 메모리를 제어하는 메모리 패스 컨트롤러;
    상기 메모리 패스 컨트롤러와 연결되고, 상기 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 상기 보안 주소 또는 상기 비보안 주소로의 상기 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부;
    상기 주소 영역 제어부와 연결되고, 상기 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트하라는 명령을 수신한 경우, 상기 프로세싱 유닛이 상기 비보안 주소에 보안 콘텐츠를 라이트하거나 상기 비보안 주소에 보안 콘텐츠를 리드하는 것을 방지하는 제1 콘텐츠 방화벽 유닛;
    상기 보안 주소에 저장된 보안 콘텐츠를 상기 비보안 주소에 라이트하고자 할 때 사용되는 암호화 유닛;
    상기 암호화 유닛과 연결되고 상기 비보안 주소에 암호화된 보안 콘텐츠가 라이트되는 것을 허여하는 제2 콘텐츠 방화벽 유닛; 및
    상기 제1 및 제2 콘텐츠 방화벽 유닛과 상기 주소 영역 제어부 사이를 연결하고, 상기 제1 및 제2 콘텐츠 방화벽 유닛의 출력을 정리하여 상기 주소 영역 제어부로 제공하는 중간 연결부를 포함하고,
    상기 제1 콘텐츠 방화벽 유닛은 상기 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트하라는 명령을 수신하면 상기 프로세싱 유닛으로 에러 메시지를 송신하며, 상기 에러 메시지는 상기 비보안 주소가 비존재하는 주소라는 정보를 포함하는 반도체 장치.
  12. 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 보안 권한을 갖는 프로세싱 유닛이 상기 보안 주소와 상기 비보안 주소에 액세스하는 것을 허용하고, 비보안 권한을 갖는 프로세싱 유닛이 상기 보안 주소에 액세스하는 것을 금지하는 주소 영역 제어부;
    상기 주소 영역 제어부로부터 상기 보안 주소 및 상기 비보안 주소에 관한 정보를 제공받아, 상기 보안 권한을 갖는 프로세싱 유닛이 상기 보안 주소에 라이트(write)된 보안 콘텐츠(secure content)를 리드(read)하는 것을 허용하고, 상기 보안 권한을 갖는 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트하라는 명령을 수신한 경우, 상기 보안 권한을 갖는 프로세싱 유닛이 상기 보안 주소로부터 리드한 상기 보안 콘텐츠를 상기 비보안 주소에 라이트 하는 것을 금지하는 제1 콘텐츠 방화벽(content firewall) 유닛;
    상기 보안 주소에 저장된 보안 콘텐츠를 상기 비보안 주소에 라이트하고자 할 때 사용되는 암호화 유닛;
    상기 암호화 유닛과 연결되고 상기 비보안 주소에 암호화된 보안 콘텐츠가 라이트되는 것을 허여하는 제2 콘텐츠 방화벽 유닛; 및
    상기 제1 및 제2 콘텐츠 방화벽 유닛과 상기 주소 영역 제어부 사이를 연결하고, 상기 제1 및 제2 콘텐츠 방화벽 유닛의 출력을 정리하여 상기 주소 영역 제어부로 제공하는 중간 연결부를 포함하고,
    상기 제1 콘텐츠 방화벽 유닛은 상기 명령을 수신하면 상기 프로세싱 유닛으로 에러 메시지를 송신하며, 상기 에러 메시지는 상기 비보안 주소가 비존재하는 주소라는 정보를 포함하는 반도체 장치.
  13. 메모리에 저장된 데이터를 이용하여 연산을 수행하는 프로세싱 유닛;
    상기 메모리에 저장된 데이터를 암호화하는 암호화 유닛; 및
    상기 프로세싱 유닛 및 상기 암호화 유닛과 통신하며, 상기 프로세싱 유닛 및 상기 암호화 유닛이 연산을 수행하도록 상기 메모리를 제어하는 메모리 패스 컨트롤러를 포함하되,
    상기 메모리 패스 컨트롤러는,
    상기 메모리의 주소를 보안 주소와 비보안 주소로 구분하고, 상기 보안 주소 또는 상기 비보안 주소로의 상기 프로세싱 유닛 및 상기 암호화 유닛의 액세스를 허용하는 주소 영역 제어부와,
    상기 주소 영역 제어부와 연결되고, 상기 프로세싱 유닛으로부터 보안 콘텐츠를 상기 비보안 주소에 라이트하라는 제1 명령을 제공받은 경우 상기 프로세싱 유닛이 상기 비보안 주소에 보안 콘텐츠를 라이트하는 것을 방지하고, 상기 프로세싱 유닛이 상기 비보안 주소에 쓰여진 보안 콘텐츠를 리드하는 것을 방지하며, 상기 암호화 유닛이 상기 비보안 주소에 암호화된 보안 콘텐츠를 라이트하는 것을 허여하는 콘텐츠 방화벽 유닛과
    상기 콘텐츠 방화벽 유닛과 상기 주소 영역 제어부 사이를 연결하고, 상기 콘텐츠 방화벽 유닛의 출력을 정리하여 상기 주소 영역 제어부에 상기 출력을 제어하는 중간 연결부를 포함하고,
    상기 콘텐츠 방화벽 유닛은 상기 비보안 주소에 상기 보안 콘텐츠를 라이트하라는 상기 제1 명령을 상기 프로세싱 유닛으로부터 수신하면, 상기 프로세싱 유닛으로 에러 메시지를 전송하고,
    상기 에러 메시지는 상기 비보안 주소가 비존재하는 주소라는 정보를 포함하는 반도체 장치.
  14. 보안 영역과 비보안 영역을 포함하는 메모리;
    상기 메모리로 라이트 명령을 제공하는 제1 프로세싱 유닛;
    상기 메모리로 라이트 또는 리드 명령을 제공하고, 상기 제1 프로세싱 유닛과 다른 제2 프로세싱 유닛;
    상기 제2 프로세싱 유닛과 상기 메모리 사이에 연결되고, 상기 제2 프로세싱 유닛으로부터 보안 콘텐츠를 비보안 주소에 라이트하라는 명령을 제공받은 경우 상기 제2 프로세싱 유닛이 상기 보안 영역의 비보안 주소 또는 상기 비보안 영역의 비보안 주소로 보안 콘텐츠를 라이트하는 것을 방지하는 콘텐츠 방화벽 유닛;
    상기 메모리의 주소를 보안 주소와 상기 비보안 주소로 구분하고, 상기 보안 주소 또는 상기 비보안 주소로의 상기 제1 및 제2 프로세싱 유닛의 액세스를 허용하는 주소 영역 제어부; 및
    상기 콘텐츠 방화벽 유닛과 상기 주소 영역 제어부 사이를 연결하고, 상기 콘텐츠 방화벽 유닛의 출력을 정리하여 상기 주소 영역 제어부에 상기 출력을 제어하는 중간 연결부;을 포함하고,
    상기 콘텐츠 방화벽 유닛은 상기 비보안 주소에 상기 보안 콘텐츠를 라이트하라는 상기 명령을 상기 프로세싱 유닛으로부터 수신하면, 상기 프로세싱 유닛으로 에러 메시지를 전송하고,
    상기 에러 메시지는 상기 비보안 주소가 비존재하는 주소라는 정보를 포함하는 반도체 장치.
  15. 제 14항에 있어서,
    상기 메모리는,
    상기 보안 영역 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 라이트 명령을 허용하고 리드 명령을 거부하는 비보안 주소를 가지는 제1 버퍼와,
    상기 보안 영역 내에 위치하고, 리드 및 라이트 명령을 모두 허용하는 보안 주소와 리드 및 라이트 명령을 모두 거부하는 비보안 주소를 가지는 제2 버퍼를 포함하는 반도체 장치.
  16. 제 15항에 있어서,
    상기 제1 버퍼는 콘텐츠(content)와 코드(code)를 포함하는 반도체 장치.
  17. 제 16항에 있어서,
    상기 제1 프로세싱 유닛은 상기 제1 버퍼로 라이트 명령을 제공하고, 상기 제2 프로세싱 유닛은 상기 제1 버퍼로 리드 또는 라이트 명령을 제공하는 반도체 장치.
  18. 제 15항에 있어서,
    상기 제2 버퍼는 콘텐츠를 포함하는 반도체 장치.
  19. 제 18항에 있어서,
    상기 제2 프로세싱 유닛은 상기 제2 버퍼로 리드 또는 라이트 명령을 제공하는 반도체 장치.
  20. 제 15항에 있어서,
    상기 메모리는 상기 비보안 영역 내에 위치하는 제3 버퍼를 더 포함하되,
    상기 제1 프로세싱 유닛은 상기 제3 버퍼로 라이트 명령을 제공하고, 상기 제2 프로세싱 유닛은 상기 제3 버퍼로 리드 명령을 제공하는 반도체 장치.

KR1020140148335A 2014-08-01 2014-10-29 반도체 장치 KR102218202B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140148335A KR102218202B1 (ko) 2014-08-01 2014-10-29 반도체 장치
US14/674,869 US10068110B2 (en) 2014-08-01 2015-03-31 Semiconductor device including a content firewall unit that has a secure function

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462032089P 2014-08-01 2014-08-01
US62/032,089 2014-08-01
KR1020140148335A KR102218202B1 (ko) 2014-08-01 2014-10-29 반도체 장치

Publications (2)

Publication Number Publication Date
KR20160016488A KR20160016488A (ko) 2016-02-15
KR102218202B1 true KR102218202B1 (ko) 2021-02-23

Family

ID=55180072

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140148335A KR102218202B1 (ko) 2014-08-01 2014-10-29 반도체 장치

Country Status (2)

Country Link
US (1) US10068110B2 (ko)
KR (1) KR102218202B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223292B2 (en) * 2016-11-28 2019-03-05 Microsoft Technology Licensing, Llc Securing stream buffers
GB2580968B (en) * 2019-02-01 2021-08-04 Advanced Risc Mach Ltd Lookup circuitry for secure and non-secure storage
US11526632B2 (en) 2019-09-04 2022-12-13 Rambus Inc. Securing address information in a memory controller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130305388A1 (en) * 2012-05-10 2013-11-14 Qualcomm Incorporated Link status based content protection buffers

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203310B2 (en) 2001-12-04 2007-04-10 Microsoft Corporation Methods and systems for cryptographically protecting secure content
DE60306952T2 (de) * 2002-11-18 2007-02-08 Arm Ltd., Cherry Hinton Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
CA2527501A1 (en) * 2003-05-28 2004-12-09 Caymas Systems, Inc. Multilayer access control security system
EP1612638B1 (en) * 2004-07-01 2011-03-09 Texas Instruments Incorporated Method and system of verifying proper execution of a secure mode entry sequence
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7412579B2 (en) * 2004-12-30 2008-08-12 O'connor Dennis M Secure memory controller
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US9158941B2 (en) 2006-03-16 2015-10-13 Arm Limited Managing access to content in a data processing apparatus
US7624242B2 (en) * 2006-03-31 2009-11-24 Intel Corporation Operating system agnostic sharing of proteced memory using memory identifiers
US20080134300A1 (en) * 2006-07-08 2008-06-05 David Izatt Method for Improving Security of Computer Networks
GB2442023B (en) * 2006-09-13 2011-03-02 Advanced Risc Mach Ltd Memory access security management
US8307416B2 (en) * 2007-01-03 2012-11-06 Texas Instruments Incorporated Data structures for use in firewalls
US8301863B2 (en) * 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
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
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US9183135B2 (en) * 2011-01-21 2015-11-10 Micron Technology, Inc. Preparation of memory device for access using memory access type indicator signal
US9116711B2 (en) * 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9477834B2 (en) * 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US8910307B2 (en) 2012-05-10 2014-12-09 Qualcomm Incorporated Hardware enforced output security settings
US8775757B2 (en) * 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
KR101954733B1 (ko) * 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
JP2014089652A (ja) 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
JP2014089644A (ja) 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
US8930638B2 (en) * 2012-11-27 2015-01-06 Qualcomm Technologies, Inc. Method and apparatus for supporting target-side security in a cache coherent system
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9245129B2 (en) * 2013-03-15 2016-01-26 Nvidia Corporation System and method for protecting data by returning a protect signal with the data
US9672162B2 (en) * 2013-08-16 2017-06-06 Arm Limited Data processing systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130305388A1 (en) * 2012-05-10 2013-11-14 Qualcomm Incorporated Link status based content protection buffers

Also Published As

Publication number Publication date
US20160034216A1 (en) 2016-02-04
US10068110B2 (en) 2018-09-04
KR20160016488A (ko) 2016-02-15

Similar Documents

Publication Publication Date Title
TWI606364B (zh) 處理安全內容之系統單晶片及包含其之行動裝置
US20190155754A1 (en) Technologies for secure i/o with memory encryption engines
CN111898156B (zh) 区块链中实现合约调用的方法及节点、存储介质
US9607177B2 (en) Method for securing content in dynamically allocated memory using different domain-specific keys
US10810138B2 (en) Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)
US20140164793A1 (en) Cryptographic information association to memory regions
JP6774084B2 (ja) 文書処理方法及び装置
US11847225B2 (en) Blocking access to firmware by units of system on chip
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
US11239997B2 (en) Techniques for cipher system conversion
KR20170077943A (ko) 접근 제어 유닛을 포함하는 시스템 온 칩 및 시스템 온 칩을 포함하는 모바일 장치
US9747435B2 (en) Authentication and control of encryption keys
US20220092223A1 (en) Technologies for filtering memory access transactions received from one or more i/o devices
US11748493B2 (en) Secure asset management system
US20190228159A1 (en) Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link
KR102218202B1 (ko) 반도체 장치
KR102100456B1 (ko) 전자장치에서 디지털 저작권 관리 서비스를 제공하기 위한 장치 및 방법
CN106845174A (zh) 一种安全系统下的应用权限管理方法及系统
EP4134845A1 (en) Memory access method, system-on-chip, and electronic device
CN113344764A (zh) 安全图形处理器、处理器芯片、显示卡、装置、方法及存储介质
KR20160019780A (ko) 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법
US9858444B2 (en) Securing a human interface device input to wireless display device
EP3155821B1 (en) Video content tracking
US11722299B1 (en) Spatially-bound cryptographic storage
US10628332B2 (en) Semiconductor device, semiconductor system, and system

Legal Events

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