KR102485999B1 - 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템 - Google Patents

마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템 Download PDF

Info

Publication number
KR102485999B1
KR102485999B1 KR1020160021651A KR20160021651A KR102485999B1 KR 102485999 B1 KR102485999 B1 KR 102485999B1 KR 1020160021651 A KR1020160021651 A KR 1020160021651A KR 20160021651 A KR20160021651 A KR 20160021651A KR 102485999 B1 KR102485999 B1 KR 102485999B1
Authority
KR
South Korea
Prior art keywords
address
master device
security attribute
master
snoop
Prior art date
Application number
KR1020160021651A
Other languages
English (en)
Other versions
KR20170004831A (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 CN201610512585.4A priority Critical patent/CN106326148B/zh
Priority to US15/198,583 priority patent/US9864687B2/en
Priority to JP2016130528A priority patent/JP6739253B2/ja
Priority to TW105120864A priority patent/TWI724004B/zh
Priority to DE102016211986.9A priority patent/DE102016211986A1/de
Publication of KR20170004831A publication Critical patent/KR20170004831A/ko
Application granted granted Critical
Publication of KR102485999B1 publication Critical patent/KR102485999B1/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/71Protecting 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/74Protecting 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

애플리케이션 프로세서가 게시된다. 상기 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결된 마스터-사이드 필터를 포함한다. 상기 마스터-사이드 필터는 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.

Description

마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템{CACHE COHERENT SYSTEM INCLUDING MASTER-SIDE FILTER AND DATA PROCESSING SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 캐시 코히런트 시스템에 관한 것으로, 특히 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템에 관한 것이다.
컴퓨터 과학에서, 캐시 코히런시(cache coherence)는 공유 메모리 시스템에서 클라이언트들(또는 프로세서들) 각각에 포함된 로컬 캐시 사이의 코히런시를 의미한다. 클라이언트들 각각이 자신만의 로컬 캐시를 포함하고, 상기 클라이언트들이 메모리를 공유하고 있을 때, 상기 클라이언트들 중에서 어느 하나의 캐시가 업데이트될 때, 캐시 코히런시 문제가 발생할 수 있다.
상기 캐시 코히런시 문제가 발생하면, 공유 메모리 시스템은 캐시 코히런시를 위한 작동들을 수행하므로, 상기 공유 메모리 시스템이 공유 메모리에 데이터를 라이트할 때 라이트 작동의 레이턴시가 증가할 수 있다.
캐시 코히런트 인터페이스, 상기 캐시 코히런트 인터페이스에 연결된 CPU, 및 상기 캐시 코히런트 인터페이스에 연결된 GPU를 포함하는 종래의 시스템에서, 비-보안 모드에서 동작하는 상기 CPU가 스눕 요청을 상기 GPU로 출력하고, 상기 GPU의 캐시에서 캐시 히트가 발생하면, 상기 캐시에 저장된 캐시 라인(즉 라인 데이터)은 상기 시스템에 연결된 외부 메모리 장치로 라이트-백(write-back) 된다. 상기 라이트-백이 완료된 후, 상기 CPU는 상기 외부 메모리 장치에 라이트-백된 캐시 라인을 리드하기 위한 명령을 상기 외부 메모리 장치를 제어하는 컨트롤러로 전송한다. 따라서, 상기 라이트-백에 관련된 라이트-백 트래픽과 상기 외부 외부 메모리 장치에 저장된 상기 캐시 라인의 읽기에 관련된 메모리 리드 요청 트래픽이 증가한다.
본 발명이 이루고자 하는 기술적인 과제는 캐시 효율을 높이기 위해 캐시 코히런트 인터커넥트에 연결된 마스터들 사이에서 스눕 요청을 수행할 경우 보안 체크를 위해 발생하는 부가적인 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거하기 위해 상기 스눕 요청에 대해서 종래의 슬레이브-사이드 필터를 대체하여 상기 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함한다.
상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송한다. 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.
상기 제2마스터 장치는 제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시와, 상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고, 상기 캐시 컨트롤러는 상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송한다.
상기 애플리케이션 프로세서는 상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러와, 상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함한다.
실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.
상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.
실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.
상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는, 상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고, 상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제한다.
상기 애플리케이션 프로세서는 상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고, 상기 마스터-사이드 필터는 스눕 동작을 수행하고, 상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는다.
상기 제1마스터 장치는 CPU이고, 상기 제2마스터 장치는 GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 또는 DSP(digital signal processor)이다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 애플리케이션 프로세서와 상기 애플리케이션 프로세서에 연결된 외부 메모리 장치를 포함한다. 상기 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 상기 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.
상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.
상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고, 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.
본 발명의 실시 예에 따른 캐시 코히런트 시스템은 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.
상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 마스터-사이드 필터는 상기 제1어드레스를 상기 제2마스터 장치로 전송한다.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드를 지원하는 데이터 처리 시스템에서 스눕 동작 시에 보안 검색을 위한 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거할 수 있는 효과가 있다. 상기 마스터-사이드 필터는 풀 캐시 코히런시(full cache coherency)를 관리할 수 있는 효과가 있다.
본 발명의 실시 예에 따른 애플리케이션 프로세서 또는 캐시 코히런트 시스템이 캐시 코히런트 네트워크 내에서 내부 캐시를 포함하는 마스터 장치를 포함할 때, 상기 애플리케이션 프로세서 또는 상기 캐시 코히런트 시스템의 오버헤드를 줄이거나 제거할 수 있는 효과가 있다.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 캐시-코히런트 인터커넥트를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 비-보안 고려(non-security awareness or non trustzone awareness)를 갖는 마스터 장치를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은, 종래의 솔루션들(solutions)과 비교할 때, 캐시 코히런트 네트워크를 위한 타이밍 오버헤드를 제거할 수 있는 효과가 있다.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드 사이의 변환(또는 스위칭)을 위한 소프트웨어를 실행할 수 있으므로, 보안 결정 로직 회로를 위한 영역 오버헤드(area overhead)를 줄이거나 최소화할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 3은 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다.
도 5는 도 1의 제1마스터로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블이다.
도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블이다.
도 10은 도 1의 제1마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200)와 메인 메모리 장치(300)를 포함할 수 있다.
데이터 처리 시스템(100)은 PC(personal computer) 또는 모바일 장치로 구현될 수 있다. 상기 모바일 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸(still) 카메라, 디지털 비디오(video) 카메라, PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(Internet of Things(IoT)) 장치, 만물 인터넷(Internet of Everything(IoE)) 장치, 드론(drone), 또는 e-북 (e-book)으로 구현될 수 있다. 또한, 데이터 처리 시스템(100)은 스마트 카 또는 자동차 시스템(automotive system)에 사용될 수 있다.
컨트롤러(200)는 메인 메모리 장치(300)의 동작을 제어할 수 있다. 컨트롤러 (200)는 캐시 코히런트(cache coherent) 시스템, 캐시 코히런트 네트워크, 또는 캐시 코히런트 컨트롤러를 의미할 수 있다. 컨트롤러(200)는 이종의 코어 클러스터들 (heterogeneous core clusters)를 포함하는 장치를 의미할 수 있다. 예컨대, 이종의 코어 클러스터들은 캐시 코히런트 인터커넥트(210)에 연결된 CPU(central processing unit), GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 및 DSP(digital signal processor)를 포함할 수 있으나 이에 한정되는 것은 아니다.
또한, 컨트롤러(200)는 집적 회로(IC), 시스템 온 칩(system on chip(SoC)), 프로세서, 애플리케이션 프로세서, 모바일 애플리케이션 프로세서, 마더보드 (motherboard), 칩셋(chipset), 또는 반도체 칩들의 집합을 의미할 수 있다. 예컨대, 컨트롤러(200)와 메인 메모리 장치(300)는 패키지 온 패키지(package-on-package)로 구현될 수 있다.
컨트롤러(200)는 캐시 코히런트 인터커넥트(210), 제1마스터 장치(또는 제1마스터; 220), 제2컨트롤러(또는 제1보안 속성 컨트롤러; 230), 제2마스터 장치(또는 제2마스터; 240), 마스터-사이드 필터(250), 및 슬레이브-사이드 필터(280)를 포함할 수 있다. 실시 예들에 따라, 컨트롤러(200)는 제3컨트롤러(또는 제2보안 속성 컨트롤러; 260)와 제3마스터 장치(또는 제3마스터; 270)를 더 포함할 수 있다.
마스터-사이드 필터(250)가 캐시 코히런트 인터커넥트(210)와 제2마스터 장치(240) 사이에 연결되고, 보안 체크(security check)가 마스터-사이드 필터(250)에서 수행됨에 따라, 스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)가 감소하는 효과가 있다.
구성 요소들(220, 230, 250, 260, 270, 및 280)은 캐시 코히런트 인터커넥트 (210)를 통해 신호들을 주거나 받을 수 있다.
제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드 (secure mode) 또는 비-보안 모드(non-secure mode)로 설정하기 위한 제1제어 신호 (CTR1)를 캐시 코히런트 인터커넥트(210)를 통해 제2컨트롤러(230)로 전송할 수 있다. 상기 보안 모드는 보안이 필요한 데이터를 처리할 수 있는 보안 동작 모드를 의미할 수 있고, 상기 비-보안 모드는 보안이 필요하지 않은 데이터를 처리할 수 있는 비-보안 동작 모드를 의미할 수 있으나 이에 한정되는 것은 아니다.
제1마스터 장치(220)는 CPU로 구현될 수 있다. 예컨대, 제1마스터 장치(220)는 보안 고려(security awareness)를 갖는 마스터 장치일 수 있다. 제1마스터 장치 (220)는 제1보안 속성(AT1)과 어드레스(ADD)를 포함하는 제1스눕 요청(SREQ1)을 생성할 수 있다. 제1보안 속성(AT1)은 제1마스터 장치(220)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)를 의미하고, 어드레스 (ADD)는 제1마스터 장치(220)가 액세스하고자 하는 메인 메모리 장치(300)의 메모리 영역을 지시할 수 있다.
제1마스터 장치(220)는 소프트웨어(222)를 실행할 수 있고, 소프트웨어(222)는 다른 마스터 장치(240 및/또는 270)의 동작을 제어하는데 사용될 수 있다.
제2컨트롤러(230)는, 제1마스터 장치(220)로부터 출력된 제1제어 신호(CTR1)를 이용하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제1제어 신호 (CTR1)는 제2컨트롤러(230)에 포함된 레지스터(235)에 저장될 수 있다.
예컨대, 레지스터(235)는 SFR(special function register)로 구현될 수 있다. SFR(235)에 저장된 제1제어 신호(CTR1)에 따라 제2마스터 장치(240)의 보안 속성, 예컨대 제2보안 속성(AT2)이 결정될 수 있다. 제2보안 속성(AT2)은 전송 라인(TL)을 통해 마스터-사이드 필터(250)로 제공될 수 있다. 전송 라인(TL)은 전용 (dedicated) 전송 라인일 수 있다. 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)일 수 있다.
제2마스터 장치(240)는, SFR(235)에 설정된 제2보안 속성(AT2)에 기초하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2마스터 장치(240)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니며, 그 내부에 캐시(cache)를 갖고 있고 메모리 액세스(memory access)가 가능한 마스터들을 모두 포함할 수 있다. 예컨대, 제2마스터 장치(240)는 비-보안 고려(non-security awareness)를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다.
마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)와 제1마스터 장치(220) 사이에 연결될 수 있다. 본 발명의 실시 예들에 따른 마스터-사이드 필터 (250 또는 250-1)는, 스눕 동작(snoop operation) 또는 캐시 스눕 동작에서, 보안 검색을 수행할 수 있다. 마스터-사이드 필터(250)는 마스터-사이드 보안 필터로 불릴 수 있다.
마스터-사이드 필터(250)가 스눕 동작시에 보안 검색을 수행할 수 있으므로, 마스터-사이드 필터(250)를 포함하는 데이터 처리 시스템(100)은, 모든 스눕 히트(또는 모든 캐시 히트)에 대해 슬레이브-사이드 필터(280)를 이용하여 수행되는 보안 검색에 의존하는 종래의 데이터 처리 시스템과 비교하여, 라이트-백 트래픽 (write-back traffic)과 메모리 리드 요청 트래픽(memory read request traffic)을 제거할 수 있는 효과가 있다.
마스터-사이드 필터(250)는 제1마스터 장치(220)로부터 전송된 제1스눕 요청 (SREQ1)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제1스눕 요청(SREQ1)에 포함된 제1마스터 장치(220)의 제1보안 속성(AT1)을 서로 비교하고, 비교의 결과에 따라 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.
예컨대, 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제2보안 속성 (AT2)이 서로 다를 때, 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송하지 않고 캐시 미스를 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 바로 전송(또는 리턴)할 수 있다.
그러나 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 같을 때, 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치 (240)로 전송할 수 있다.
제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 어드레스 (ADD)에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.
마스터-사이드 필터(250)는 스눕 동작에서 일차 보안 검색을 수행한다. 그러나 슬레이브-사이드 필터(280)는 스눕 동작에서 일차 보안 검색을 수행하지 않고, 메인 메모리 장치(300)에 대한 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 처리할 수 있다. 예컨대, 상기 메모리 액세스 요청은 마스터-사이드 필터(250)로부터 전송된 스눕 동작의 결과, 예컨대 캐시 미스에 기초하여 제1마스터 장치(220)에 의해 발생할 수 있다.
비록, 도 1에 도시된 데이터 처리 시스템(100)이 시스템 구성(system configuration)과 다른 목적을 위해 슬레이브-사이드 필터(280)와 메인 메모리 장치(200)를 포함하나, 보안 고려 스눕 동작을 위해서는 캐시 코히런트 인터커넥트 (210)와 마스터-사이드 필터(250)만이 요구된다.
제3컨트롤러(260)는, 제1마스터 장치(220)로부터 출력된 제2제어 신호(CTR2)를 이용하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2제어 신호(CTR2)는 제3컨트롤러(260)에 포함된 레지스터(265)에 저장될 수 있다. 각 제어 신호(CTR1과 CTR2)는 플래그(flag) 또는 적어도 하나의 비트를 갖는 디지털 신호일 수 있다.
예컨대, 레지스터(265)는 SFR로 구현될 수 있다. SFR(265)에 저장된 제2제어 신호(CTR2)에 따라 제3마스터 장치(270)의 제3보안 속성(AT3)이 결정될 수 있다. 제3보안 속성(AT3)은 제3마스터 장치(270)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)일 수 있다.
제3마스터 장치(270)는, SFR(265)에 설정된 제3보안 속성(AT3)에 기초하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제3마스터 장치(270)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 제3마스터 장치(270)는 비-보안 고려를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다. 예컨대, 제3마스터 장치(270)는 제3보안 속성(AT3)과 어드레스를 포함하는 제2스눕 요청(SREQ2)을 생성할 수 있다.
마스터-사이드 필터(250)는 제3마스터 장치(270)로부터 전송된 제2스눕 요청 (SREQ2)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제2스눕 요청(SREQ2)에 포함된 제3마스터 장치(270)의 제3보안 속성(AT3)을 서로 비교하고, 비교의 결과에 따라 제2스눕 요청(SREQ2)에 포함된 상기 어드레스를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.
예컨대, 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제3보안 속성 (AT3)이 서로 다를 때, 제2스눕 요청(SREQ2)에 포함된 어드레스를 제2마스터 장치 (240)로 전송하지 않고 캐시 미스를 캐시 코히런트 인터커넥트(210)를 통해 제3마스터 장치(270)로 바로 전송할 수 있다. 그러나 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제3보안 속성(AT3)이 서로 같을 때, 제2스눕 요청(SREQ2)에 포함된 상기 어드레스를 제2마스터 장치(240)로 전송할 수 있다.
제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 상기 어드레스에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.
메인 메모리 장치(300)는 컨트롤러(200)의 동작에 필요한 펌웨어와 사용자 데이터를 저장할 수 있다. 예컨대, 메인 메모리 장치(300)는 DRAM(dynamic random access memory)로 구현될 수 있다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이고, 도 3은 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이고, 도 5는 도 1의 제1마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타낸다고 가정하고, 제2마스터 장치(240)에 포함된 캐시(244)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 데이터(DATA1, DATA3, DATA4, 및 DATA5)를 저장한다고 가정한다.
도 1, 도 2, 도 3, 및 도 5를 참조하면, 제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.
마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다 (S110).
마스터-사이드 필터(250)는 제1보안 속성(AT1)과 제2보안 속성(AT2)을 서로 비교할 수 있다(S120). 제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 다를 때 (S120의 NO), 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)를 제2마스터 장치 (240)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)로 전송할 수 있다(S130). 스눕 미스(MISS)는 캐시 미스(MISS)를 의미할 수 있다. 따라서, 캐시 미스(MISS)는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송될 수 있다.
예컨대, 도 5의 경우 3(CASE3)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제3지시 비트(NSMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제3지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제3지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다. 즉, 제1마스터 장치(220)에 대한 제1보안 속성(AT1)은 비-보안 모드를 나타낸다.
제1마스터 장치(220)의 제1보안 속성(AT1)은 비-보안 모드를 나타내고 제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타내므로, 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)로 전송할 수 있다(S130).
제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 같을 때(S120의 YES), 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송한다. 따라서, 제2마스터 장치(240)의 캐시 컨트롤러(242)는 내부 캐시 라인을 위한 스눕 동작을 수행할 수 있다(S140).
예컨대, 도 5의 경우 1(CASE1)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제1지시 비트(SMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제1지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제1지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 즉, 제1마스터 장치(220)에 대한 제1보안 속성 (AT1)은 보안 모드를 나타낸다.
캐시 컨트롤러(242)는 제1어드레스(ADD=ADD1)에 매치되는 어드레스가 캐시 (244)에 존재하는지를 판단할 수 있다. 제1어드레스(ADD=ADD1)에 매치되는 어드레스(ADD1)가 캐시(244)에 존재할 때, 즉, 스눕 히트(또는 캐시 히트)가 발생할 때 (S150의 YES), 캐시 컨트롤러(242)는 캐시(244)에 저장되고 제1어드레스(ADD=ADD1)에 해당하는 데이터(DATA1)를 마스터-사이드 필터(250)로 전송할 수 있다(S160). 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)에 해당하는 데이터(DATA1)를 캐시 코히런트 인터커넥트(210)로 전송한다. 마스터-사이드 필터(250)로부터 전송된 데이터(DATA1)는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송될 수 있다.
예컨대, 도 5의 경우 2(CASE2)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제2지시 비트(SMB)와 제1어드레스(ADD=ADD2)를 포함한다. 제1마스터 장치(220)에 대한 제1보안 속성(AT1)은 보안 모드를 나타낸다.
캐시 컨트롤러(242)는 제1어드레스(ADD=ADD2)에 매치되는 어드레스가 캐시 (244)에 존재하는지를 판단할 수 있다. 제1어드레스(ADD=ADD2)에 매치되는 상기 어드레스(ADD2)가 캐시(244)에 존재하지 않을 때, 즉, 캐시 미스(또는 스눕 미스)가 발생할 때(S150의 NO), 캐시 컨트롤러(242)는 스눕 미스(MISS)를 마스터-사이드 필터(250)로 전송할 수 있다(S130). 마스터-사이드 필터(250)는 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)로 전송한다. 마스터-사이드 필터(250)로부터 전송된 캐시 미스(MISS)는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송될 수 있다.
도 5의 경우 2(CASE2)에 따라 스눕 미스(MISS)가 발생할 때, 제1마스터 장치 (220)는 제1어드레스(ADD2)를 포함하는 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 생성한다. 상기 메모리 액세스 요청은 캐시 코히런트 인터커넥트(210)를 통해 슬레이브-사이드 필터(280)로 전송된다. 슬레이브-사이드 필터(280)는 상기 메모리 액세스 요청에 대한 보안 검색을 수행한 후, 제1어드레스(ADD2)를 포함하는 상기 메모리 액세스 요청에 응답하여, 제1어드레스(ADD2)에 해당하는 메모리 영역에 저장된 데이터를 리드한다. 리드된 상기 데이터는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송된다.
도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다. 도 1부터 도 4를 참조하면, 테이블1(TABLE1)에 도시된 바와 같이, 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 동일할 때, 즉 보안 속성들이 동일할 때, 마스터-사이드 필터 (250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송할 수 있다. 요청자(예컨대, 220 또는 270)는 발송자(sender)를 의미할 수 있고, 핸들러(예컨대, 240)는 수신기 (receiver)를 의미할 수 있다.
그러나 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 다를 때, 즉 보안 속성들이 일치하지 않을 때, 마스터-사이드 필터(250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)를 통해 요청자(예컨대, 220 또는 270)로 전송할 수 있다.
예컨대, 요청자(220)에 의해 제1스눕 요청(SREQ1)이 발생하면, 두 개의 결정들이 시퀀스(sequence)로 수행될 수 있다. 첫 번째, 마스터-사이드 필터(250)는 제1스눕 요청(SREQ1)에 대한 보안 체크(또는 보안 속성들(AT1과 AT2)의 비교)를 수행한다(S120). 두 번째, 상기 보안 체크의 결과, 보안 이슈(security issue)가 없는 경우(또는 보안 속성들(AT1과 AT2)이 동일할 때; S120의 YES)), 핸들러(예컨대, 240)의 캐시 컨트롤러(242)는 캐시 히트 또는 캐시 미스를 체크한다(S150).
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이고, 도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 1, 도 6, 및 도 7을 참조하면, 마스터-사이드 필터(250-1)는 결정 로직 회로(252)와 보안 속성 룩-업 테이블을 저장하는 메모리 장치(254)를 포함할 수 있다. 비록, 도 6에서는 마스터-사이드 필터(250-1)가 메모리 장치(254)를 포함하는 실시 예가 도시되어 있으나, 메모리 장치(254)는 마스터-사이드 필터(250-1)의 외부에 구현될 수 있다. 실시 예들에 따라, 메모리 장치(254)는 SRAM(static random access memory)로 구현될 수 있다. 실시 예들에 따라, 메모리 장치(254)는 컨트롤러(200)의 내부에서 어디라도 구현될 수 있으므로, 메모리 장치(254)는 제2마스터 장치(240)에 포함될 수도 있다.
메모리 장치(254)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 메모리 영역의 보안 속성(SM과 NSM)을 저장할 수 있다. 본 명세서에서 상기 메모리 영역은 메인 메모리 장치(300)의 전체, 상기 전체의 일부분, 및 라인(또는 캐시 라인에 해당하는 라인)을 의미할 수 있다.
도 6에 예시적으로 도시된 바와 같이, 각 어드레스(ADD1과 ADD3)에 해당하는 각 메모리 영역은 보안 모드(SM)에서 액세스 가능한 메모리 영역(예컨대, 보안 메모리 영역)임을 나타낼 수 있다. 또한, 각 어드레스(ADD4와 ADD5)에 해당하는 각 메모리 영역은 비-보안 모드(NSM)에서 액세스 가능한 메모리 영역(예컨대, 비-보안 메모리 영역)임을 나타낼 수 있다.
제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.
마스터-사이드 필터(250-1)의 결정 로직 회로(252)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다(S210).
결정 로직 회로(252)는 제1보안 속성(AT1)과 제2보안 속성(AT2)을 서로 비교하고 제1어드레스(ADD=ADD1)에 매치되는 어드레스가 메모리 장치(254)에 존재하는지를 판단할 수 있다(S220). 상기 비교와 상기 판단은 순차적으로 또는 병렬적으로 수행될 수 있다.
제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 동일하면서 제1어드레스 (ADD=ADD1)에 매치되는 어드레스가 메모리 장치(254)에 존재할 때(S220의 YES), 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)로 전송할 수 있다. 제2마스터 장치(240)의 캐시 컨트롤러(242)는 캐시(244)에 저장되고 제1어드레스(ADD=ADD1)에 대응되는 데이터(DATA1)를 마스터-사이드 필터(250-1)로 전송할 수 있다(S160). 마스터-사이드 필터(250-1)의 결정 로직 회로(252)는 데이터(DATA1)를 캐시 코히런트 인터커넥트(210)로 전송할 수 있다. 마스터-사이드 필터(250)로부터 전송된 데이터(DATA1)는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송될 수 있다.
경우 4(CASE4)와 경우 5(CASE5)를 설명하기 위해, 제2마스터 장치(240)의 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드임을 나타낸다고 가정한다.
예컨대, 도 10의 경우 4(CASE4)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제4지시 비트(SMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제4지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제4지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 따라서 제1어드레스(ADD=ADD1)에 해당하는 메모리 영역은 보안 모드(SM)에서 액세스 가능한 보안 메모리 영역이다.
제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타내고 제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타내고, 제1어드레스 (ADD=ADD1)에 해당하는 메모리 영역이 보안 메모리 영역이고 메모리 장치(254)에 저장된 어드레스(ADD1)에 해당하는 메모리 영역이 보안 메모리 영역이므로, 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송할 수 있다(S220의 YES). 캐시 컨트롤러 (242)의 동작에 따라 캐시 히트 또는 스눕 히트가 발생한다(S240).
예컨대, 도 10의 경우 5(CASE5)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제5지시 비트(SMB)와 제1어드레스(ADD=ADD4)를 포함한다. 제5지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제5지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 따라서 제1어드레스(ADD=ADD4)에 해당하는 메모리 영역은 비-보안 동작 모드에서 액세스 가능한 비-보안 메모리 영역이다.
보안 모드를 지시하는 제1보안 속성(AT1)과 상기 보안 모드를 지시하는 제2보안 속성(AT2)은 서로 일치한다. 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타내므로, 제1마스터 장치(220)는 보안 메모리 영역을 액세스할 수 있는 어드레스를 출력해야 한다. 그러나 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타냄에도 불구하고 제1마스터 장치(220)에 의해 액세스될 제1어드레스(ADD=ADD4)은 비-보안 메모리 영역을 지시한다.
따라서, 결정 로직 회로(252)는 제1어드레스(ADD=ADD1)를 제2마스터 장치 (240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 바로 전송한다(S220의 NO와 S230).
경우 6(CASE6)과 경우 7(CASE7)을 설명하기 위해 제2마스터 장치(240)의 제2보안 속성(AT2)은 비-보안 모드를 나타낸다고 가정한다.
예컨대, 도 10의 경우 6(CASE6)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제6지시 비트(NSMB)와 제1어드레스(ADD=ADD4)를 포함한다. 제6지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제6지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다.
비-보안 모드를 나타내는 제1보안 속성(AT1)과 상기 비-보안 모드를 나타내는 제2보안 속성(AT2)은 서로 일치한다. 또한, 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD4)는 비-보안 메모리 영역을 지시하고, 메모리 장치(254)에 저장된 어드레스(ADD4)는 비-보안 메모리 영역을 지시한다. 따라서 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD=ADD4)의 속성과 메모리 장치(254)에 저장된 어드레스(ADD4)의 속성은 서로 일치한다.
결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD4)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송할 수 있다. 캐시 컨트롤러(242)의 동작에 따라 캐시 히트 또는 스눕 히트가 발생한다.
예컨대, 도 10의 경우 7(CASE7)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제7지시 비트(NSMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제7지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제7지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다.
비-보안 모드를 나타내는 제1보안 속성(AT1)과 비-보안 모드를 나타내는 제2보안 속성(AT2)은 서로 일치한다. 그러나 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)은 비-보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스 (ADD=ADD1)는 비-보안 메모리 영역을 지시하고, 메모리 장치(254)에 저장된 어드레스(ADD1)는 보안 메모리 영역을 지시한다. 따라서 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD1)의 속성과 메모리 장치(254)에 저장된 어드레스(ADD4)의 속성은 서로 일치하지 않는다. 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD4)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 전송한다(S220의 NO와 S230).
도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블의 실시 예이다. 도 6부터 도 8에 도시된 실시 예들을 참조하면, 요청자(220)의 동작 모드와 핸들러(240)의 동작 모드가 서로 일치하고 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)에 해당하는 어드레스가 메모리 장치(254)에 존재할 때, 스눕 히트가 발생한다. 상기 스눕 히트는 캐시 컨트롤러(242)가 결정 로직 회로(252)로부터 출력된 어드레스(ADD)에 해당하는 데이터를 결정 로직 회로 (252)로 전송하는 것은 의미할 수 있다.
예컨대, 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치 (254)에 저장되고 상기 제2어드레스가 보안 메모리 영역을 지시할 때, 스눕 히트가 발생한다.
그러나 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제3어드레스가 메모리 장치 (254)에 저장되고 상기 제3어드레스가 비-보안 메모리 영역을 지시할 때, 스눕 미스가 발생한다. 상기 스눕 미스가 발생할 때, 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것을 차단할 수 있다. 즉, 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하지 않는다.
실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하는지를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것은 차단할 수 있다.
이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려하지 않는다. 즉, 요청자(220)의 보안 속성과 핸들러 (240)의 보안 속성의 서로 일치하고 요청자(220)로부터 전송된 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하면, 결정 로직 회로(252)는 제1어드레스(ADD)를 제2마스터 장치(240)로 전송한다.
실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)의 속성과 메모리 장치(254)에 저장된 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치 (240)로 전송되는 것은 차단할 수 있다. 이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려한다.
여기서, 어드레스의 속성은 상기 어드레스에 해당하는 메모리 영역이 보안 메모리 영역인지 또는 비-보안 메모리 영역인지를 나타내는 정보(또는 데이터)일 수 있다.
도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블의 실시 예이다. 도 6, 도 7, 및 도 9에 도시된 실시 예들을 참조하면, 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하면, 스눕 히트가 발생할 수 있다. 이때, 제1어드레스(ADD1)와 상기 제2어드레스는 동일하다고 가정한다.
그러나 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 비-보안 메모리 영역을 지시하면, 스눕 미스가 발생할 수 있다.
다른 예로서, 제2보안 속성(AT2)이 비-보안 모드를 나타내고 메모리 장치 (254)에 저장된 제2어드레스가 비-보안 메모리 영역을 지시할 때, 제1스눕 요청 (SREQ1)에 포함된 제1보안 속성(AT1)이 비-보안 모드를 나타내고 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD)가 비-보안 메모리 영역을 지시하면, 스눕 히트가 발생할 수 있다.
그러나 제2보안 속성(AT2)이 비-보안 모드를 나타내고 메모리 장치 (254)에 저장된 제2어드레스가 비-보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 비-보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시할 때, 스눕 미스가 발생할 수 있다.
도 8에 도시된 실시 예는 요청자(220)와 핸들러(240) 각각의 속성과 어드레스 영역(또는 어드레스)의 속성을 함께 참조하는 방법을 나타내고, 도 9에 도시된 실시 예는 요청자(220)의 속성과 어드레스 영역(또는 어드레스)의 속성을 참조하는 방법은 나타낸다.
도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다. 도 1과 도 11을 참조하면, 제1마스터 장치(220)는 보안 모드를 수행할 수 있는 소프트웨어(또는 펌웨어; SW)를 실행할 수 있다. 제1마스터 장치(220)에 의해 실행되는 소프트웨어(SW)는 제2마스터 장치(240)의 동작을 제어할 수 있다.
제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR(235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 보안 모드를 나타낸다.
소프트웨어(SW)는 캐시(244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH1), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 보안 모드로 동작할 수 있다. 제2마스터 장치(240)가 상기 보안 모드로 동작하는 동안에 캐시(244)에는 데이터가 저장될 수 있다.
그 후에, 제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 비-보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR (235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 비-보안 모드를 나타낸다.
소프트웨어(SW)는 제2마스터 장치(240)가 보안 모드로 동작하는 동안에 캐시 (244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH2), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 비-보안 모드로 동작할 수 있다. 따라서, 제2마스터 장치(240)가 비-보안 모드로 동작을 시작하기 전(또는 직전)에, 보안 모드로 동작하는 동안에 캐시(244)에 저장된 모든 데이터가 삭제되므로, 컨트롤러(200)의 보안이 향상되는 효과가 있다.
즉, 보안 동작 모드의 시작(또는 진입)과 상기 보안 동작 모드의 끝(또는 탈출(exit))에서 캐시 플러쉬(cache flush) 동작(CACHE FLUSH1과 CACHE FLUSH2)이 수행될 수 있다. 따라서 캐시(244)에 저장된 모든 데이터는 삭제된다. 예컨대, 캐시 (244)의 어드레스별로 또는 캐시(244)의 캐시 라인별로 속성이 지원되지 않을 때 또는 상기 속성이 확인되지 않을 때, 상술한 바와 같이 캐시(244)에 저장된 모든 데이터는 삭제될 수 있다. 그러나 캐시(244)의 어드레스별로 또는 캐시(244)의 캐시 라인별로 속성이 지원될 때 또는 상기 속성이 확인될 때, 캐시(244)에 저장된 모든 데이터는 삭제되지 않을 수 있다.
도 1부터 도 11을 참조하여 설명한 바와 같이, 스눕 제어(snoop control)를 위해 마스터-사이드 필터(250)가 컨트롤러(200)에 구현되고, 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)이 슬레이브-사이드 필터(280) 대신에 마스터-사이드 필터(250)에서 수행되므로, 상기 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)을 위해 슬레이브-사이드 필터(280)에 대한 액세스는 더 이상 요구되지 않는다.
스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)는 제1마스터 장치(220)와 제2마스터 장치(240) 사이에서 주고받는 신호만으로 결정될 수 있다. 따라서 마스터-사이드 필터(250)를 포함하는 컨트롤러(200)에서 스눕 동작을 위한 타이밍 오버헤드(timing overhead)는 제거될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 데이터 처리 시스템
200: 컨트롤러
210: 캐시 코히런트 인터커넥트
220: 제1마스터 또는 제1마스터 장치
230: 보안 속성 컨트롤러
240: 제2마스터 또는 제2마스터 장치
242: 캐시 컨트롤러
244: 캐시
250, 250-1: 마스터-사이드 필터
252: 결정 로직 회로
254: 메모리 장치
280: 슬레이브-사이드 필터
300: 외부 메모리 장치

Claims (20)

  1. 제 1 보안 속성을 갖고, 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하는 제 1 마스터 장치;
    제 2 보안 속성을 갖는 제 2 마스터 장치; 및
    마스터 사이드 필터를 포함하되,
    상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 및 상기 마스터 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되고,
    상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 상기 제 1 스눕 요청을 수신함으로써 스눕 동작을 실행하고, 상기 제 2 보안 속성과, 상기 스눕 요청에 의해 나타나는 상기 제 1 보안 속성을 비교하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정하고, 그리고 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하기로 결정하는 애플리케이션 프로세서.
  2. 제 1 항에 있어서,
    상기 제 1 보안 속성은 상기 제 1 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고, 그리고
    상기 제 2 보안 속성은 상기 제 2 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내는 애플리케이션 프로세서.
  3. 제 2 항에 있어서,
    상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정할 때, 상기 마스터 사이드 필터는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정한 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
  4. 제 3 항에 있어서,
    상기 제 2 마스터 장치는:
    적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 데이터를 저장하는 캐시; 및
    상기 제 1 스눕 어드레스가 상기 마스터 사이드 필터로부터 전송된 경우 상기 적어도 하나의 어드레스를 상기 제 1 스눕 어드레스와 비교하고, 그리고 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스를 식별할 때 상기 일치하는 어드레스에 대응하는 데이터를 상기 마스터 사이드 필터로 전송하고, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없을 때, 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없는 상태를 나타내는 제 2 캐시 미스를 상기 마스터 사이드 필터로 전송하는 캐시 컨트롤러를 포함하는 애플리케이션 프로세서.
  5. 제 4 항에 있어서,
    상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 캐시 미스, 상기 대응하는 데이터, 또는 상기 제 2 캐시 미스 중 어느 하나를 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
  6. 제 2 항에 있어서,
    상기 제 1 마스터 장치는 상기 제 2 마스터 장치가 상기 보안 모드를 종료하고 상기 비-보안 모드로 진입하는 경우, 상기 보안 모드로 동작하는 동안 상기 제 2 마스터 장치의 캐시에 저장된 모든 보안 데이터가 삭제되도록 상기 제 2 마스터 장치의 동작을 더 제어하는 애플리케이션 프로세서.
  7. 제 1 항에 있어서,
    상기 제 1 마스터 장치로부터 전송된 제어 신호에 응답하여 상기 제 2 보안 속성을 결정하고, 전송 라인을 이용하여 상기 제 2 보안 속성을 상기 마스터 사이드 필터로 전송하는 컨트롤러를 더 포함하되,
    상기 전송 라인은 상기 컨트롤러와 상기 마스터 사이드 필터 사이의 전용 전송 라인인 애플리케이션 프로세서.
  8. 제 1 항에 있어서,
    상기 마스터 사이드 필터는:
    상기 적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 메모리 영역을 저장하는 메모리 장치; 및
    상기 메모리 장치와 연결되고, 상기 제 1 보안 속성과 상기 제 2 보안 속성을 비교하고, 그리고 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각을 비교하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.
  9. 제 8 항에 있어서,
    상기 제 1 보안 속성이 상기 제 2 보안 속성과 같고 상기 제 1 스눕 어드레스가 상기 적어도 하나의 어드레스 중 일치하는 어드레스와 같을 때, 상기 결정 로직 회로는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하고, 그리고
    상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 다르거나 또는 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각이 서로 다를 때, 상기 결정 로직 회로는 상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 다른 상태 또는 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각이 서로 다른 상태를 나타내는 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
  10. 제 8 항에 있어서,
    상기 메모리 장치는 각 메모리 영역에 대해 대응하는 보안 속성을 더 저장하고,
    상기 결정 로직 회로는 상기 제 1 보안 속성이 상기 제 2 보안 속성과 같은지 여부, 그리고 상기 제 1 스눕 어드레스에 의해 나타나는 메모리 영역에 대응하는 제 1 보안 속성이 상기 적어도 하나의 어드레스 중 일치하는 어드레스에 의해 나타나는 메모리 영역에 대응하는 제 2 보안 속성과 같은지 여부를 더 결정하고, 그리고 상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 같은 경우에만 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하는 애플리케이션 프로세서.
  11. 제 1 항에 있어서,
    상기 캐시 코히런트 인터커넥트와 연결되고, 상기 제 1 마스터 장치로부터 수신되는 메모리 액세스 요청에 응답하여 메인 메모리 장치를 액세스하는 슬레이브 사이드 필터를 더 포함하되,
    상기 슬레이브 사이드 필터는 상기 마스터 사이드 필터에 의해 실행되는 상기 스눕 동작을 수행하지 못하는 애플리케이션 프로세서.
  12. 제 1 항에 있어서,
    상기 제 1 마스터 장치는 CPU이고, 상기 제 2 마스터 장치는 GPU, GPGPU(general purpose computing on GPU), 또는 DSP(digital signal processor)인 애플리케이션 프로세서.
  13. 외부의 메인 메모리 장치에 연결되고, 제 1 보안 속성을 갖는 제 1 마스터 장치, 제 2 보안 속성을 갖는 제 2 마스터 장치, 마스터 사이드 필터, 및 슬레이브 사이드 필터를 포함하고, 상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 상기 마스터 사이드 필터, 및 상기 슬레이브 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되는 컨트롤러를 포함하되,
    상기 제 1 마스터 장치는 제 1 스눕 어드레스를 나타내는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하고,
    상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트 및 상기 제 2 마스터 장치 사이에 연결되고, 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 상기 제 1 스눕 요청을 수신함으로써 스눕 동작을 실행하고, 상기 제 2 보안 속성과 상기 스눕 요청에 의해 나타나는 상기 제 1 보안 속성을 비교하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정하고, 그리고 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하기로 결정하고, 그리고
    상기 슬레이브 사이드 필터는 상기 캐시 코히런트 인터커넥트와 상기 메인 메모리 장치 사이에 연결되고, 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 수신되는 메모리 액세스에 응답하여 상기 메인 메모리 장치에 대한 메모리 액세스 동작을 수행하는 데이터 처리 시스템.
  14. 제 13 항에 있어서,
    상기 제 1 보안 속성은 상기 제 1 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고,
    상기 제 2 보안 속성은 상기 제 2 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고, 그리고
    상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정할 때, 상기 마스터 사이드 필터는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정한 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 데이터 처리 시스템.
  15. 제 14 항에 있어서,
    상기 제 2 마스터 장치는:
    적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 데이터를 저장하는 캐시; 및
    상기 제 1 스눕 어드레스가 상기 마스터 사이드 필터로부터 전송된 경우 상기 적어도 하나의 어드레스를 상기 제 1 스눕 어드레스와 비교하고, 그리고 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스를 식별할 때 상기 일치하는 어드레스에 대응하는 데이터를 상기 마스터 사이드 필터로 전송하고, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없을 때, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없는 상태를 나타내는 제 2 캐시 미스를 상기 마스터 사이드 필터로 전송하는 캐시 컨트롤러를 포함하는 데이터 처리 시스템.
  16. 제 15 항에 있어서,
    상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 캐시 미스, 상기 대응하는 데이터, 또는 상기 제 2 캐시 미스 중 어느 하나를 상기 제 1 마스터 장치로 전송하는 데이터 처리 시스템.
  17. 제 14 항에 있어서,
    상기 제 1 마스터 장치는 상기 제 2 마스터 장치가 상기 보안 모드를 종료하고 상기 비-보안 모드로 진입하는 경우, 상기 보안 모드로 동작하는 동안 상기 제 2 마스터 장치의 캐시에 저장된 모든 보안 데이터가 삭제되도록 상기 제 2 마스터 장치의 동작을 제어하는 데이터 처리 시스템.
  18. 제 13 항에 있어서,
    상기 제 1 마스터 장치로부터 전송된 제어 신호에 응답하여 상기 제 2 보안 속성을 결정하고, 전송 라인을 이용하여 상기 제 2 보안 속성을 상기 마스터 사이드 필터로 전송하는 컨트롤러를 더 포함하되,
    상기 전송 라인은 상기 컨트롤러와 상기 마스터 사이드 필터 사이의 전용 전송 라인인 데이터 처리 시스템.
  19. 제 13 항에 있어서,
    상기 마스터 사이드 필터는:
    적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 메모리 영역을 저장하는 메모리 장치; 및
    상기 메모리 장치와 연결되고, 상기 제 1 보안 속성과 상기 제 2 보안 속성을 비교하고, 그리고 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각을 비교하는 결정 로직 회로를 포함하는 데이터 처리 시스템.
  20. 제 1 보안 속성을 갖고, 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하는 제 1 마스터 장치, 제 2 보안 속성을 갖는 제 2 마스터 장치, 및 마스터 사이드 필터를 포함하되, 상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 및 상기 마스터 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되는 애플리케이션 프로세서의 동작 방법에 있어서,
    상기 캐시 코히런트 인터커넥트를 통해 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 상기 제 1 마스터 장치로부터 상기 마스터 사이드 필터로 전송하는 단계; 및
    상기 마스터 사이드 필터를 이용하여 상기 스눕 요청에 응답하여 스눕 동작을 실행하는 단계를 포함하되,
    상기 스눕 동작을 실행하는 단계는:
    상기 제 2 보안 속성과 상기 제 1 보안 속성을 비교하는 단계; 및
    상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 단계를 포함하는 동작 방법.
KR1020160021651A 2015-07-01 2016-02-24 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템 KR102485999B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201610512585.4A CN106326148B (zh) 2015-07-01 2016-06-30 数据处理***及其操作方法
US15/198,583 US9864687B2 (en) 2015-07-01 2016-06-30 Cache coherent system including master-side filter and data processing system including same
JP2016130528A JP6739253B2 (ja) 2015-07-01 2016-06-30 マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
TW105120864A TWI724004B (zh) 2015-07-01 2016-07-01 應用處理器與其運作方法、及資料處理系統與其運作方法
DE102016211986.9A DE102016211986A1 (de) 2015-07-01 2016-07-01 Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562187365P 2015-07-01 2015-07-01
US62/187,365 2015-07-01

Publications (2)

Publication Number Publication Date
KR20170004831A KR20170004831A (ko) 2017-01-11
KR102485999B1 true KR102485999B1 (ko) 2023-01-06

Family

ID=57833434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021651A KR102485999B1 (ko) 2015-07-01 2016-02-24 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템

Country Status (2)

Country Link
KR (1) KR102485999B1 (ko)
TW (1) TWI724004B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11874783B2 (en) 2021-12-21 2024-01-16 Advanced Micro Devices, Inc. Coherent block read fulfillment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061731A1 (en) 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
FR2820850B1 (fr) * 2001-02-15 2003-05-09 Bull Sa Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
KR20060037174A (ko) * 2004-10-27 2006-05-03 삼성전자주식회사 다중처리시스템에서의 스누핑 장치 및 그 방법
US7392351B2 (en) * 2005-03-29 2008-06-24 International Business Machines Corporation Method and apparatus for filtering snoop requests using stream registers
DE112013007751B3 (de) * 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061731A1 (en) 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge

Also Published As

Publication number Publication date
TWI724004B (zh) 2021-04-11
KR20170004831A (ko) 2017-01-11
TW201717028A (zh) 2017-05-16

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US11036650B2 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
CN106326148B (zh) 数据处理***及其操作方法
US9563579B2 (en) Method, apparatus, system for representing, specifying and using deadlines
CN107436809B (zh) 数据处理器
US8352656B2 (en) Handling atomic operations for a non-coherent device
JP6984022B2 (ja) マルチノードシステムの低電力管理
US9348740B2 (en) Memory access controller, multi-core processor system, memory access control method, and computer product
CN114860329B (zh) 动态一致性偏置配置引擎及方法
US9015436B2 (en) Performing an atomic operation without quiescing an interconnect structure
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
US9372795B2 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
US20090006777A1 (en) Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US9448937B1 (en) Cache coherency
KR102485999B1 (ko) 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
KR101110550B1 (ko) 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
US9189296B2 (en) Caching agent for deadlock prevention in a processor by allowing requests that do not deplete available coherence resources
US10503471B2 (en) Electronic devices and operation methods of the same
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
US20210089487A1 (en) Multi-core processor and inter-core data forwarding method
US20150113221A1 (en) Hybrid input/output write operations
CN115794670A (zh) 一种缓存***及其管理方法

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