KR20170004831A - Cache coherent system including master-side filter and data processing system having the same - Google Patents

Cache coherent system including master-side filter and data processing system having the same Download PDF

Info

Publication number
KR20170004831A
KR20170004831A KR1020160021651A KR20160021651A KR20170004831A KR 20170004831 A KR20170004831 A KR 20170004831A KR 1020160021651 A KR1020160021651 A KR 1020160021651A KR 20160021651 A KR20160021651 A KR 20160021651A KR 20170004831 A KR20170004831 A KR 20170004831A
Authority
KR
South Korea
Prior art keywords
master device
address
master
cache
security attribute
Prior art date
Application number
KR1020160021651A
Other languages
Korean (ko)
Other versions
KR102485999B1 (en
Inventor
김식
전우형
조성민
허재영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to JP2016130528A priority Critical patent/JP6739253B2/en
Priority to US15/198,583 priority patent/US9864687B2/en
Priority to CN201610512585.4A priority patent/CN106326148B/en
Priority to TW105120864A priority patent/TWI724004B/en
Priority to DE102016211986.9A priority patent/DE102016211986A1/en
Publication of KR20170004831A publication Critical patent/KR20170004831A/en
Application granted granted Critical
Publication of KR102485999B1 publication Critical patent/KR102485999B1/en

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

Abstract

Disclosed is an application processor. The application processor comprises: a cache coherent interconnect; a first master device connected with the cache coherent interconnect; a second master device; and a master-side filter connected between the cache coherent interconnect and the second master device. The master-side filter receives, through the cache coherent interconnect, a request for a snoop transmitted from the first master device, and compares a first security feature of the first master device included in the request for a snoop with a second security feature of the second master device. As a result of comparison, it is determined whether an address included in the request for a snoop is transmitted to the second master device.

Description

마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템{CACHE COHERENT SYSTEM INCLUDING MASTER-SIDE FILTER AND DATA PROCESSING SYSTEM HAVING THE SAME}[0001] CACHE COHERENT SYSTEM INCLUDING MASTER-SIDE FILTER AND DATA PROCESSING SYSTEM HAVING THE SAME [0002] BACKGROUND OF THE INVENTION [0003]

본 발명의 개념에 따른 실시 예는 캐시 코히런트 시스템에 관한 것으로, 특히 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템에 관한 것이다.An embodiment according to the concept of the present invention relates to a cache coherent system, and more particularly to a cache coherent system including a master-side filter for performing security checks and a data processing system including the coherent system.

컴퓨터 과학에서, 캐시 코히런시(cache coherence)는 공유 메모리 시스템에서 클라이언트들(또는 프로세서들) 각각에 포함된 로컬 캐시 사이의 코히런시를 의미한다. 클라이언트들 각각이 자신만의 로컬 캐시를 포함하고, 상기 클라이언트들이 메모리를 공유하고 있을 때, 상기 클라이언트들 중에서 어느 하나의 캐시가 업데이트될 때, 캐시 코히런시 문제가 발생할 수 있다.In computer science, cache coherence refers to coherency between local caches included in each of the clients (or processors) in a shared memory system. A cache coherency problem may occur when each of the clients includes its own local cache and when the cache of any of the clients is updated when the clients are sharing the memory.

상기 캐시 코히런시 문제가 발생하면, 공유 메모리 시스템은 캐시 코히런시를 위한 작동들을 수행하므로, 상기 공유 메모리 시스템이 공유 메모리에 데이터를 라이트할 때 라이트 작동의 레이턴시가 증가할 수 있다.When the cache coherency problem occurs, the shared memory system performs operations for cache coherency, so that the latency of the write operation may increase when the shared memory system writes data to the shared memory.

캐시 코히런트 인터페이스, 상기 캐시 코히런트 인터페이스에 연결된 CPU, 및 상기 캐시 코히런트 인터페이스에 연결된 GPU를 포함하는 종래의 시스템에서, 비-보안 모드에서 동작하는 상기 CPU가 스눕 요청을 상기 GPU로 출력하고, 상기 GPU의 캐시에서 캐시 히트가 발생하면, 상기 캐시에 저장된 캐시 라인(즉 라인 데이터)은 상기 시스템에 연결된 외부 메모리 장치로 라이트-백(write-back) 된다. 상기 라이트-백이 완료된 후, 상기 CPU는 상기 외부 메모리 장치에 라이트-백된 캐시 라인을 리드하기 위한 명령을 상기 외부 메모리 장치를 제어하는 컨트롤러로 전송한다. 따라서, 상기 라이트-백에 관련된 라이트-백 트래픽과 상기 외부 외부 메모리 장치에 저장된 상기 캐시 라인의 읽기에 관련된 메모리 리드 요청 트래픽이 증가한다.In a conventional system comprising a cache coherent interface, a CPU coupled to the cache coherent interface, and a GPU coupled to the cache coherent interface, the CPU operating in non-secure mode outputs a snoop request to the GPU, When a cache hit occurs in the cache of the GPU, the cache line (i.e., line data) stored in the cache is write-back to an external memory device connected to the system. After the write-back is completed, the CPU transmits a command for reading the write-back cache line to the external memory device to the controller for controlling the external memory device. Thus, the write-back traffic related to the write-back and the memory lead request traffic related to the reading of the cache line stored in the external external memory device increase.

본 발명이 이루고자 하는 기술적인 과제는 캐시 효율을 높이기 위해 캐시 코히런트 인터커넥트에 연결된 마스터들 사이에서 스눕 요청을 수행할 경우 보안 체크를 위해 발생하는 부가적인 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거하기 위해 상기 스눕 요청에 대해서 종래의 슬레이브-사이드 필터를 대체하여 상기 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to eliminate additional write-back traffic and memory lead request traffic generated for security checks when a snoop request is made between masters connected to a cache coherent interconnect to increase cache efficiency Side filter for performing the security check by replacing the conventional slave-side filter with respect to the snoop request, and a data processing system including the cache coherent system.

본 발명의 실시 예에 따른 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함한다.An application processor according to an embodiment of the present invention includes a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a second coherent interconnect coupled between the cache coherent interconnect and the second master device , Receiving a snoop request transmitted from the first master device via the cache coherent interconnect and transmitting a second security attribute of the second master device and a first security attribute of the first master device included in the snoop request And a master-side filter for determining whether to send the first address included in the snoop request to the second master device according to the comparison result.

상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송한다. 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.Wherein the master-side filter is configured to send the first cache miss to the second master device via the cache coherent interconnect when the first security attribute and the second security attribute are different, To the first master device. Wherein the master-side filter transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other, and wherein each of the first and second security attributes It includes a secure mode and a non-secure mode.

상기 제2마스터 장치는 제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시와, 상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고, 상기 캐시 컨트롤러는 상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송한다.Wherein the second master device comprises a cache for storing data corresponding to the second address and the second address and a cache controller for controlling the operation of the cache, Side filter, and transmits the data stored in the cache to the master-side filter when the first address and the second address coincide with each other, and when the first address and the second address coincide with each other, Side filter, the cache coherent interconnect transmits the first cache miss, the data, or the second cache miss output from the master-side filter to the master-side filter when the first cache miss is different from the first cache miss, To the master device.

상기 애플리케이션 프로세서는 상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러와, 상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함한다.The application processor further comprises a security attribute controller for determining the second security attribute based on a control signal transmitted from the first master device and a transmission line for transmitting the second security attribute to the master- .

실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-sided filter comprises a memory device for storing attributes of a memory area corresponding to a second address and the second address, and a memory device coupled to the memory device, Determines whether or not the attribute matches and whether the first address and the second address coincide with each other, and determines whether to transmit the first address to the second master device according to a result of the determination.

상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.The decision logic circuit transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address, 1 < / RTI > security attribute and the second security attribute do not match or the first address and the second address do not match, the cache coherent interconnect sends a cache miss to the cache coherent interconnect, To the first master device.

실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-sided filter comprises a memory device for storing attributes of a memory area corresponding to a second address and the second address, and a memory device coupled to the memory device, Determining whether or not the attribute of the first address agrees with the attribute of the second address and determining whether to transmit the first address to the second master device according to a result of the determination do.

상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.Wherein the decision logic circuit transmits the first address to the second master device when the first security attribute matches the second security attribute and the attribute of the first address matches the attribute of the second address And transmits a cache miss to the cache coherent interconnect when the first security attribute and the second security attribute do not match or the attribute of the first address and the attribute of the second address do not match, The coherent interconnect transmits the cache miss to the first master device.

상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는, 상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고, 상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제한다.Wherein the software executed in the first master device and controlling the operation of the second master device comprises software that, when the second master device enters the secure mode from the non-secure mode, And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits the non-secure mode from the secure mode.

상기 애플리케이션 프로세서는 상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고, 상기 마스터-사이드 필터는 스눕 동작을 수행하고, 상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는다.Wherein the application processor further comprises a slave-side filter coupled to the cache coherent interconnect for processing a memory access request of the first master device to a main memory device, the master-side filter performing a snoop operation , The slave-side filter does not perform the snoop operation.

상기 제1마스터 장치는 CPU이고, 상기 제2마스터 장치는 GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 또는 DSP(digital signal processor)이다.The first master device is a CPU and the second master device is a graphics processing unit (GPU), general-purpose computing on graphics processing units (GPGPU), or a digital signal processor (DSP).

본 발명의 실시 예에 따른 데이터 처리 시스템은 애플리케이션 프로세서와 상기 애플리케이션 프로세서에 연결된 외부 메모리 장치를 포함한다. 상기 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 상기 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.A data processing system according to an embodiment of the present invention includes an application processor and an external memory device connected to the application processor. Wherein the application processor is coupled between a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a second master device coupled between the cache coherent interconnect and the second master device, A master-side filter connected to the cache coherent interconnect and the external memory device for performing a snoop operation in response to a snoop request sent from the first master device, And a slave-side filter that performs a memory access operation to the memory device.

상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.The master-side filter receives the snoop request via the cache coherent interconnect, compares the second security attribute of the second master device with the first security attribute of the first master device included in the snoop request And determines whether to transmit the first address included in the snoop request to the second master device according to the comparison result.

상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고, 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.Wherein the master-side filter is configured to send the first cache miss to the second master device via the cache coherent interconnect when the first security attribute and the second security attribute are different, The master-side filter transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other, and transmits the first security attribute to the first master device, And the second security attribute each include a security mode and a non-secure mode.

본 발명의 실시 예에 따른 캐시 코히런트 시스템은 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.A cache coherent system according to an embodiment of the present invention includes a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a cache coherent interconnect between the cache coherent interconnect and the second master device A master-side filter coupled to the cache coherent interconnect and performing a snoop operation in response to a snoop request transmitted from the first master device; and a memory coupled between the cache coherent interconnect and an external memory device, And a slave-side filter for performing a memory access operation to the external memory device in response to an access request.

상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 마스터-사이드 필터는 상기 제1어드레스를 상기 제2마스터 장치로 전송한다.The master-side filter receives the snoop request via the cache coherent interconnect, compares the second security attribute of the second master device with the first security attribute of the first master device included in the snoop request And transmits a cache miss to the cache coherent interconnect without transmitting a first address included in the snoop request to the second master device when the first security attribute and the second security attribute are different from each other, 1 < / RTI > security attribute and the second security attribute are equal to each other, the master-side filter transmits the first address to the second master device.

본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드를 지원하는 데이터 처리 시스템에서 스눕 동작 시에 보안 검색을 위한 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거할 수 있는 효과가 있다. 상기 마스터-사이드 필터는 풀 캐시 코히런시(full cache coherency)를 관리할 수 있는 효과가 있다.An application processor or cache coherent system including a master-side filter according to an embodiment of the present invention may be used in a data processing system that supports both secure and non-secure modes, It is possible to eliminate the read request traffic. The master-side filter has the effect of managing full cache coherency.

본 발명의 실시 예에 따른 애플리케이션 프로세서 또는 캐시 코히런트 시스템이 캐시 코히런트 네트워크 내에서 내부 캐시를 포함하는 마스터 장치를 포함할 때, 상기 애플리케이션 프로세서 또는 상기 캐시 코히런트 시스템의 오버헤드를 줄이거나 제거할 수 있는 효과가 있다.When an application processor or cache coherent system according to an embodiment of the present invention includes a master device including an internal cache in a cache coherent network, the overhead of the application processor or the cache coherent system may be reduced or eliminated There is an effect that can be.

본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 캐시-코히런트 인터커넥트를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention is advantageous in that it does not require hardware changes for the cache-coherent interconnect.

본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 비-보안 고려(non-security awareness or non trustzone awareness)를 갖는 마스터 장치를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention has the effect of not requiring hardware changes for a master device with non-security awareness or non-trust awareness have.

본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은, 종래의 솔루션들(solutions)과 비교할 때, 캐시 코히런트 네트워크를 위한 타이밍 오버헤드를 제거할 수 있는 효과가 있다.An application processor or cache coherent system comprising a master-side filter according to an embodiment of the present invention has the effect of eliminating the timing overhead for the cache coherent network when compared to conventional solutions have.

본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드 사이의 변환(또는 스위칭)을 위한 소프트웨어를 실행할 수 있으므로, 보안 결정 로직 회로를 위한 영역 오버헤드(area overhead)를 줄이거나 최소화할 수 있는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention may execute software for conversion (or switching) between secure and non-secure modes, The area overhead can be reduced or minimized.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 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마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
1 is a block diagram of a data processing system in accordance with an embodiment of the present invention.
2 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG.
FIG. 3 is a flowchart for explaining the operation of the master-side filter and the second master device shown in FIG. 1;
4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG.
5 is a view for explaining the operations of the master-side filter according to the snoop request output from the first master of FIG.
FIG. 6 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1;
7 is a flowchart for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 8 is a second table for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 9 is a third table for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 10 is a view for explaining operations of the master-side filter according to the snoop request output from the first master device of FIG.
11 is a diagram conceptually illustrating software operations in the operation modes and the operation modes of the second master device shown in FIG.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.

제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.

도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200)와 메인 메모리 장치(300)를 포함할 수 있다.1 is a block diagram of a data processing system in accordance with an embodiment of the present invention. Referring to FIG. 1, a data processing system 100 may include a controller 200 and a main memory device 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)에 사용될 수 있다.The data processing system 100 may be implemented as a personal computer (PC) or a mobile device. The mobile device may be a laptop computer, a mobile phone, a smart phone, a tablet PC, a PDA (personal digital assistant), an enterprise digital assistant (EDA), a digital still camera, a digital video camera, a multimedia player, a PND (personal navigation device or portable navigation device), a handheld game console, a mobile internet device (MID), a wearable computer, an Internet of Things (IoT) , An Internet of Everything (IoE) device, a drone, or an e-book. The data processing system 100 may also be used in a smart car or an 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)를 포함할 수 있으나 이에 한정되는 것은 아니다.The controller 200 can control the operation of the main memory device 300. [ The controller 200 may refer to a cache coherent system, a cache coherent network, or a cache coherent controller. The controller 200 may refer to a device including heterogeneous core clusters. For example, the heterogeneous core clusters may include a central processing unit (CPU), a graphics processing unit (GPU), general-purpose computing on graphics processing units (GPGPU), and a digital signal processor (DSP) coupled to the cache coherent interconnect 210 But are not limited thereto.

또한, 컨트롤러(200)는 집적 회로(IC), 시스템 온 칩(system on chip(SoC)), 프로세서, 애플리케이션 프로세서, 모바일 애플리케이션 프로세서, 마더보드 (motherboard), 칩셋(chipset), 또는 반도체 칩들의 집합을 의미할 수 있다. 예컨대, 컨트롤러(200)와 메인 메모리 장치(300)는 패키지 온 패키지(package-on-package)로 구현될 수 있다.The controller 200 may also be implemented as an integrated circuit (IC), a system on chip (SoC), a processor, an application processor, a mobile application processor, a motherboard, a chipset, . ≪ / RTI > For example, the controller 200 and the main memory device 300 may be implemented as a package-on-package.

컨트롤러(200)는 캐시 코히런트 인터커넥트(210), 제1마스터 장치(또는 제1마스터; 220), 제2컨트롤러(또는 제1보안 속성 컨트롤러; 230), 제2마스터 장치(또는 제2마스터; 240), 마스터-사이드 필터(250), 및 슬레이브-사이드 필터(280)를 포함할 수 있다. 실시 예들에 따라, 컨트롤러(200)는 제3컨트롤러(또는 제2보안 속성 컨트롤러; 260)와 제3마스터 장치(또는 제3마스터; 270)를 더 포함할 수 있다.The controller 200 includes a cache coherent interconnect 210, a first master device (or a first master) 220, a second controller (or a first security attribute controller) 230, a second master device (or a second master device; 240, a master-side filter 250, and a slave-side filter 280. According to embodiments, the controller 200 may further include a third controller (or a second security attribute controller) 260 and a third master device (or a third master 270).

마스터-사이드 필터(250)가 캐시 코히런트 인터커넥트(210)와 제2마스터 장치(240) 사이에 연결되고, 보안 체크(security check)가 마스터-사이드 필터(250)에서 수행됨에 따라, 스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)가 감소하는 효과가 있다.As the master-side filter 250 is connected between the cache coherent interconnect 210 and the second master device 240 and a security check is performed in the master-side filter 250, snoop time) or snoop latency (snoop latency).

구성 요소들(220, 230, 250, 260, 270, 및 280)은 캐시 코히런트 인터커넥트 (210)를 통해 신호들을 주거나 받을 수 있다.The components 220, 230, 250, 260, 270, and 280 may receive or receive signals via the cache coherent interconnect 210.

제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드 (secure mode) 또는 비-보안 모드(non-secure mode)로 설정하기 위한 제1제어 신호 (CTR1)를 캐시 코히런트 인터커넥트(210)를 통해 제2컨트롤러(230)로 전송할 수 있다. 상기 보안 모드는 보안이 필요한 데이터를 처리할 수 있는 보안 동작 모드를 의미할 수 있고, 상기 비-보안 모드는 보안이 필요하지 않은 데이터를 처리할 수 있는 비-보안 동작 모드를 의미할 수 있으나 이에 한정되는 것은 아니다.The first master device 220 transmits a first control signal CTR1 for setting the operation mode of the second master device 240 to a secure mode or a non- To the second controller 230 via the runt interconnect 210. The secure mode may mean a secure operation mode capable of processing data requiring security, and the non-secure mode may mean a non-secure operation mode capable of processing data that does not require security, But is not limited thereto.

제1마스터 장치(220)는 CPU로 구현될 수 있다. 예컨대, 제1마스터 장치(220)는 보안 고려(security awareness)를 갖는 마스터 장치일 수 있다. 제1마스터 장치 (220)는 제1보안 속성(AT1)과 어드레스(ADD)를 포함하는 제1스눕 요청(SREQ1)을 생성할 수 있다. 제1보안 속성(AT1)은 제1마스터 장치(220)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)를 의미하고, 어드레스 (ADD)는 제1마스터 장치(220)가 액세스하고자 하는 메인 메모리 장치(300)의 메모리 영역을 지시할 수 있다. The first master device 220 may be implemented as a CPU. For example, the first master device 220 may be a master device with security awareness. The first master device 220 may generate a first snoop request SREQ1 including a first security attribute AT1 and an address ADD. The first security attribute AT1 indicates information (or data) indicating whether the operation mode of the first master device 220 is the secure mode or the non-secure mode and the address ADD indicates the first master device 220 May point to the memory area of the main memory device 300 that it wishes to access.

제1마스터 장치(220)는 소프트웨어(222)를 실행할 수 있고, 소프트웨어(222)는 다른 마스터 장치(240 및/또는 270)의 동작을 제어하는데 사용될 수 있다.The first master device 220 may execute software 222 and the software 222 may be used to control operations of other master devices 240 and /

제2컨트롤러(230)는, 제1마스터 장치(220)로부터 출력된 제1제어 신호(CTR1)를 이용하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제1제어 신호 (CTR1)는 제2컨트롤러(230)에 포함된 레지스터(235)에 저장될 수 있다.The second controller 230 may set the operation mode of the second master device 240 to the secure mode or the non-secure mode using the first control signal CTR1 output from the first master device 220 have. The first control signal CTR1 may be stored in the register 235 included in the second controller 230. [

예컨대, 레지스터(235)는 SFR(special function register)로 구현될 수 있다. SFR(235)에 저장된 제1제어 신호(CTR1)에 따라 제2마스터 장치(240)의 보안 속성, 예컨대 제2보안 속성(AT2)이 결정될 수 있다. 제2보안 속성(AT2)은 전송 라인(TL)을 통해 마스터-사이드 필터(250)로 제공될 수 있다. 전송 라인(TL)은 전용 (dedicated) 전송 라인일 수 있다. 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)일 수 있다.For example, the register 235 may be implemented as a special function register (SFR). The security attribute of the second master device 240, for example, the second security attribute AT2, may be determined according to the first control signal CTR1 stored in the SFR 235. [ The second security attribute AT2 may be provided to the master-side filter 250 via the transmission line TL. The transmission line TL may be a dedicated transmission line. The second security attribute AT2 may be information (or data) indicating whether the operation mode of the second master device 240 is the secure mode or the non-secure mode.

제2마스터 장치(240)는, SFR(235)에 설정된 제2보안 속성(AT2)에 기초하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2마스터 장치(240)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니며, 그 내부에 캐시(cache)를 갖고 있고 메모리 액세스(memory access)가 가능한 마스터들을 모두 포함할 수 있다. 예컨대, 제2마스터 장치(240)는 비-보안 고려(non-security awareness)를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다.The second master device 240 can set the operation mode of the second master device 240 to the secure mode or the non-secure mode based on the second security attribute AT2 set in the SFR 235. [ The second master device 240 may be implemented as a GPU, a GPGPU, or a DSP. However, the second master device 240 may include masters having a cache therein and capable of memory access . For example, the second master device 240 may be a master device with non-security awareness or a master device without security considerations.

마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)와 제1마스터 장치(220) 사이에 연결될 수 있다. 본 발명의 실시 예들에 따른 마스터-사이드 필터 (250 또는 250-1)는, 스눕 동작(snoop operation) 또는 캐시 스눕 동작에서, 보안 검색을 수행할 수 있다. 마스터-사이드 필터(250)는 마스터-사이드 보안 필터로 불릴 수 있다.The master-side filter 250 may be coupled between the cache coherent interconnect 210 and the first master device 220. The master-side filter 250 or 250-1 according to embodiments of the present invention may perform a security search in a snoop operation or a cache snoop operation. The master-side filter 250 may be referred to as a master-side security filter.

마스터-사이드 필터(250)가 스눕 동작시에 보안 검색을 수행할 수 있으므로, 마스터-사이드 필터(250)를 포함하는 데이터 처리 시스템(100)은, 모든 스눕 히트(또는 모든 캐시 히트)에 대해 슬레이브-사이드 필터(280)를 이용하여 수행되는 보안 검색에 의존하는 종래의 데이터 처리 시스템과 비교하여, 라이트-백 트래픽 (write-back traffic)과 메모리 리드 요청 트래픽(memory read request traffic)을 제거할 수 있는 효과가 있다.The data processing system 100 including the master-side filter 250 is able to perform a security check on all the snoop hits (or all cache hits) since the master- Back-traffic and memory-read-request traffic, as compared to conventional data processing systems that rely on secure retrieval performed using the side- There is an effect.

마스터-사이드 필터(250)는 제1마스터 장치(220)로부터 전송된 제1스눕 요청 (SREQ1)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제1스눕 요청(SREQ1)에 포함된 제1마스터 장치(220)의 제1보안 속성(AT1)을 서로 비교하고, 비교의 결과에 따라 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.The master-side filter 250 receives the first snoop request SREQ1 sent from the first master device 220 via the cache coherent interconnect 210 and the second security attribute 240 of the second master device 240, The first security attribute AT1 of the first master device 220 included in the first snoop request SREQ1 is compared with the first security attribute AT1 of the first master device 220 included in the first snoop request SREQ1, (ADD) to the second master device (240).

예컨대, 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제2보안 속성 (AT2)이 서로 다를 때, 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송하지 않고 캐시 미스를 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 바로 전송(또는 리턴)할 수 있다.For example, when the first security attribute AT1 and the second security attribute AT2 are different from each other, the master-side filter 250 transmits the address ADD included in the first snoop request SREQ1 to the second master device (Or return) the cache miss directly to the first master device 220 via the cache coherent interconnect 210 without sending the cache miss to the first master device 240. [

그러나 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 같을 때, 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치 (240)로 전송할 수 있다.However, when the first security attribute AT1 and the second security attribute AT2 are equal to each other, the master-side filter 250 transmits the address ADD included in the first snoop request SREQ1 to the second master device 240).

제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 어드레스 (ADD)에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.The second master device 240 determines whether an address matched with the address ADD transmitted from the master-side filter 250 exists in the internal cache of the second master device 240, Or a cache hit, and send the determination result to the master-side filter 250. [

마스터-사이드 필터(250)는 스눕 동작에서 일차 보안 검색을 수행한다. 그러나 슬레이브-사이드 필터(280)는 스눕 동작에서 일차 보안 검색을 수행하지 않고, 메인 메모리 장치(300)에 대한 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 처리할 수 있다. 예컨대, 상기 메모리 액세스 요청은 마스터-사이드 필터(250)로부터 전송된 스눕 동작의 결과, 예컨대 캐시 미스에 기초하여 제1마스터 장치(220)에 의해 발생할 수 있다.The master-side filter 250 performs a primary security search in the snoop operation. However, the slave-side filter 280 may process a memory access request (e.g., a data read request) to the main memory device 300 without performing a primary security search in the snoop operation. For example, the memory access request may be generated by the first master device 220 based on a result of a snoop operation sent from the master-side filter 250, e.g., a cache miss.

비록, 도 1에 도시된 데이터 처리 시스템(100)이 시스템 구성(system configuration)과 다른 목적을 위해 슬레이브-사이드 필터(280)와 메인 메모리 장치(200)를 포함하나, 보안 고려 스눕 동작을 위해서는 캐시 코히런트 인터커넥트 (210)와 마스터-사이드 필터(250)만이 요구된다.Although the data processing system 100 shown in FIG. 1 includes a slave-side filter 280 and a main memory device 200 for purposes other than system configuration, Only the coherent interconnect 210 and the master-side filter 250 are required.

제3컨트롤러(260)는, 제1마스터 장치(220)로부터 출력된 제2제어 신호(CTR2)를 이용하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2제어 신호(CTR2)는 제3컨트롤러(260)에 포함된 레지스터(265)에 저장될 수 있다. 각 제어 신호(CTR1과 CTR2)는 플래그(flag) 또는 적어도 하나의 비트를 갖는 디지털 신호일 수 있다.The third controller 260 can set the operation mode of the third master device 270 to the secure mode or the non-secure mode using the second control signal CTR2 output from the first master device 220 have. The second control signal CTR2 may be stored in a register 265 included in the third controller 260. [ Each of the control signals CTR1 and CTR2 may be a digital signal having a flag or at least one bit.

예컨대, 레지스터(265)는 SFR로 구현될 수 있다. SFR(265)에 저장된 제2제어 신호(CTR2)에 따라 제3마스터 장치(270)의 제3보안 속성(AT3)이 결정될 수 있다. 제3보안 속성(AT3)은 제3마스터 장치(270)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)일 수 있다.For example, the register 265 may be implemented as an SFR. The third security attribute AT3 of the third master device 270 may be determined according to the second control signal CTR2 stored in the SFR 265. [ The third security attribute AT3 may be information (or data) indicating whether the operation mode of the third master device 270 is the secure mode or the non-secure mode.

제3마스터 장치(270)는, SFR(265)에 설정된 제3보안 속성(AT3)에 기초하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제3마스터 장치(270)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 제3마스터 장치(270)는 비-보안 고려를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다. 예컨대, 제3마스터 장치(270)는 제3보안 속성(AT3)과 어드레스를 포함하는 제2스눕 요청(SREQ2)을 생성할 수 있다.The third master device 270 may set the operation mode of the third master device 270 to the secure mode or the non-secure mode based on the third security attribute AT3 set in the SFR 265. [ The third master device 270 may be implemented as a GPU, a GPGPU, or a DSP, but is not limited thereto. For example, the third master device 270 may be a master device with non-secure considerations or a master device without security considerations. For example, the third master device 270 may generate a second snoop request SREQ2 including a third security attribute AT3 and an address.

마스터-사이드 필터(250)는 제3마스터 장치(270)로부터 전송된 제2스눕 요청 (SREQ2)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제2스눕 요청(SREQ2)에 포함된 제3마스터 장치(270)의 제3보안 속성(AT3)을 서로 비교하고, 비교의 결과에 따라 제2스눕 요청(SREQ2)에 포함된 상기 어드레스를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.The master-side filter 250 receives the second snoop request SREQ2 sent from the third master device 270 via the cache coherent interconnect 210 and the second security attribute 240 of the second master device 240, (AT2) included in the second snoop request (SREQ2) and the third security attribute (AT3) of the third master device (270) included in the second snoop request (SREQ2) It may decide to transfer the address to the second master device 240.

예컨대, 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제3보안 속성 (AT3)이 서로 다를 때, 제2스눕 요청(SREQ2)에 포함된 어드레스를 제2마스터 장치 (240)로 전송하지 않고 캐시 미스를 캐시 코히런트 인터커넥트(210)를 통해 제3마스터 장치(270)로 바로 전송할 수 있다. 그러나 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제3보안 속성(AT3)이 서로 같을 때, 제2스눕 요청(SREQ2)에 포함된 상기 어드레스를 제2마스터 장치(240)로 전송할 수 있다. For example, when the first security attribute AT1 and the third security attribute AT3 are different from each other, the master-side filter 250 transmits the address included in the second snoop request SREQ2 to the second master device 240, To the third master device 270 via the cache coherent interconnect 210 without sending the cache miss to the third master device 270. [ However, the master-side filter 250 transmits the address included in the second snoop request SREQ2 to the second master device 240 when the first security attribute AT1 and the third security attribute AT3 are equal to each other, Lt; / RTI >

제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 상기 어드레스에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.The second master device 240 determines whether an address matched with the address transmitted from the master-side filter 250 is present in the internal cache of the second master device 240, and determines whether a cache miss or a cache Determine the hit, and send the determination result to the master-side filter 250. [

메인 메모리 장치(300)는 컨트롤러(200)의 동작에 필요한 펌웨어와 사용자 데이터를 저장할 수 있다. 예컨대, 메인 메모리 장치(300)는 DRAM(dynamic random access memory)로 구현될 수 있다.The main memory device 300 may store firmware and user data required for the operation of the controller 200. [ For example, the main memory device 300 may be implemented as a dynamic random access memory (DRAM).

도 2는 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이고, 도 3은 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이고, 도 5는 도 1의 제1마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.FIG. 2 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1, FIG. 3 illustrates operations of the master-side filter and the second master device shown in FIG. 1 5 is a view for explaining the operations of the master-side filter according to the snoop request output from the first master device of FIG.

제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타낸다고 가정하고, 제2마스터 장치(240)에 포함된 캐시(244)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 데이터(DATA1, DATA3, DATA4, 및 DATA5)를 저장한다고 가정한다.Assume that the second security attribute AT2 of the second master device 240 represents a secure mode and the cache 244 contained in the second master device 240 is associated with each address ADD1, ADD3, ADD4, and ADD5, (DATA1, DATA3, DATA4, and DATA5) corresponding to the number of bits.

도 1, 도 2, 도 3, 및 도 5를 참조하면, 제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.Referring to FIGS. 1, 2, 3 and 5, the first master device 220 includes a first snoop request SREQ1 including a first security attribute AT1 and a first address ADD = ADD1, To the cache coherent interconnect (210).

마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다 (S110).The master-side filter 250 may receive a first snoop request SREQ1 including a first security attribute AT1 and a first address ADD1 via the cache coherent interconnect 210 (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)로 전송될 수 있다.The master-side filter 250 may compare the first security attribute AT1 and the second security attribute AT2 with each other (S120). When the first security attribute AT1 and the second security attribute AT2 are different from each other (NO in S120), the master-side filter 250 transmits the first address ADD = ADD1 to the second master device 240 (MISS) to the cache coherent interconnect 210 without transferring the snoop miss (S130). Snoop Miss (MISS) can mean cache miss (MISS). Thus, a cache miss (MISS) may be sent to the first master device 220 via the cache coherent interconnect 210. [

예컨대, 도 5의 경우 3(CASE3)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제3지시 비트(NSMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제3지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제3지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다. 즉, 제1마스터 장치(220)에 대한 제1보안 속성(AT1)은 비-보안 모드를 나타낸다.For example, as shown in Case 3 (CASE3) of FIG. 5, the first snoop request SREQ1 includes the third indication bit NSMB and the first address ADD = ADD1. The third indication bit NSMB indicates that the operation mode of the first master device 220 is the non-secure mode, and the third indication bit NSMB indicates the first security attribute AT1. That is, the first security attribute AT1 for the first master device 220 represents a non-secure mode.

제1마스터 장치(220)의 제1보안 속성(AT1)은 비-보안 모드를 나타내고 제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타내므로, 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)로 전송할 수 있다(S130).Since the first security attribute AT1 of the first master device 220 represents the non-secure mode and the second security attribute AT2 of the second master device 240 represents the secure mode, the master-side filter 250 May send a snoop miss (MISS) to the cache coherent interconnect 210 without sending the first address (ADD = ADD1) to the second master device 240 (S130).

제1보안 속성(AT1)과 제2보안 속성(AT2)이 서로 같을 때(S120의 YES), 마스터-사이드 필터(250)는 제1어드레스(ADD=ADD1)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송한다. 따라서, 제2마스터 장치(240)의 캐시 컨트롤러(242)는 내부 캐시 라인을 위한 스눕 동작을 수행할 수 있다(S140).When the first security attribute AT1 and the second security attribute AT2 are equal to each other (YES in S120), the master-side filter 250 transmits the first address ADD = ADD1 to the second master attribute 240 To the cache controller 242. Thus, the cache controller 242 of the second master device 240 may perform a snoop operation for the internal cache line (S140).

예컨대, 도 5의 경우 1(CASE1)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제1지시 비트(SMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제1지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제1지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 즉, 제1마스터 장치(220)에 대한 제1보안 속성 (AT1)은 보안 모드를 나타낸다.5, a first snoop request SREQ1 includes a first indication bit SMB and a first address ADD = ADD1, as shown in CASE1 in FIG. The first indication bit SMB indicates that the operation mode of the first master device 220 is the secure mode and the first indication bit SMB indicates the first security attribute AT1. That is, the first security attribute AT1 for the first master device 220 represents the security mode.

캐시 컨트롤러(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)로 전송될 수 있다.The cache controller 242 may determine whether an address matching the first address ADD = ADD1 exists in the cache 244. [ When an address ADD1 matching the first address ADD1 is present in the cache 244, that is, when a snoop hit (or cache hit) occurs (YES in S150), the cache controller 242 stores the address Side filter 250 to the data (DATA1) corresponding to the first address (ADD = ADD1) stored in the master-side filter 250 (S260). The master-side filter 250 transmits data (DATA1) corresponding to the first address (ADD = ADD1) to the cache coherent interconnect 210. The data DATA1 transmitted from the master-side filter 250 may be transmitted to the first master device 220 via the cache coherent interconnect 210. [

예컨대, 도 5의 경우 2(CASE2)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제2지시 비트(SMB)와 제1어드레스(ADD=ADD2)를 포함한다. 제1마스터 장치(220)에 대한 제1보안 속성(AT1)은 보안 모드를 나타낸다.5, the first snoop request SREQ1 includes a second indication bit SMB and a first address ADD = ADD2. The first security attribute AT1 for the first master device 220 represents the security mode.

캐시 컨트롤러(242)는 제1어드레스(ADD=ADD2)에 매치되는 어드레스가 캐시 (244)에 존재하는지를 판단할 수 있다. 제1어드레스(ADD=ADD2)에 매치되는 상기 어드레스(ADD2)가 캐시(244)에 존재하지 않을 때, 즉, 캐시 미스(또는 스눕 미스)가 발생할 때(S150의 NO), 캐시 컨트롤러(242)는 스눕 미스(MISS)를 마스터-사이드 필터(250)로 전송할 수 있다(S130). 마스터-사이드 필터(250)는 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)로 전송한다. 마스터-사이드 필터(250)로부터 전송된 캐시 미스(MISS)는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송될 수 있다.The cache controller 242 may determine whether an address matching the first address ADD = ADD2 exists in the cache 244. [ When the address ADD2 matching the first address ADD2 is not present in the cache 244, that is, when a cache miss (or a snoop miss) occurs (NO in S150) (MISS) to the master-side filter 250 (S130). The master-side filter 250 sends the snoop miss (MISS) to the cache coherent interconnect 210. The cache miss (MISS) sent from the master-side filter 250 may be transmitted to the first master device 220 via the cache coherent interconnect 210.

도 5의 경우 2(CASE2)에 따라 스눕 미스(MISS)가 발생할 때, 제1마스터 장치 (220)는 제1어드레스(ADD2)를 포함하는 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 생성한다. 상기 메모리 액세스 요청은 캐시 코히런트 인터커넥트(210)를 통해 슬레이브-사이드 필터(280)로 전송된다. 슬레이브-사이드 필터(280)는 상기 메모리 액세스 요청에 대한 보안 검색을 수행한 후, 제1어드레스(ADD2)를 포함하는 상기 메모리 액세스 요청에 응답하여, 제1어드레스(ADD2)에 해당하는 메모리 영역에 저장된 데이터를 리드한다. 리드된 상기 데이터는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송된다.The first master device 220 generates a memory access request including a first address ADD2 (e.g., a data read request) when a snoop miss (MISS) occurs according to case 2 (CASE2) in Fig. The memory access request is sent to the slave-side filter 280 via the cache coherent interconnect 210. The slave-side filter 280 performs a security search for the memory access request, and then, in response to the memory access request including the first address ADD2, the slave-side filter 280 stores the address in the memory area corresponding to the first address ADD2 Read the stored data. The read data is transferred to the first master device 220 via the cache coherent interconnect 210.

도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다. 도 1부터 도 4를 참조하면, 테이블1(TABLE1)에 도시된 바와 같이, 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 동일할 때, 즉 보안 속성들이 동일할 때, 마스터-사이드 필터 (250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송할 수 있다. 요청자(예컨대, 220 또는 270)는 발송자(sender)를 의미할 수 있고, 핸들러(예컨대, 240)는 수신기 (receiver)를 의미할 수 있다.4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG. 1 to 4, when the operation mode of the requestor (e.g., 220 or 270) and the operation mode of the handler (e.g., 240) are the same as shown in Table 1 (TABLE 1) The master-side filter 250 may send an address contained in the snoop request (SREQ1 or SREQ2) sent from the requestor (e.g., 220 or 270) to the cache controller 242 when they are identical. The requestor (e.g., 220 or 270) may refer to a sender and the handler (e.g., 240) may refer to a receiver.

그러나 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 다를 때, 즉 보안 속성들이 일치하지 않을 때, 마스터-사이드 필터(250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)를 통해 요청자(예컨대, 220 또는 270)로 전송할 수 있다.However, when the operating mode of the requestor (e.g., 220 or 270) and the handler (e.g., 240) are different, i.e. when the security attributes do not match, the master- (E.g., 220 or 270) via the cache coherent interconnect 210 without sending the address contained in the snoop request (SREQ1 or SREQ2) sent from the cache coherent interconnect 270 to the cache controller 242, Lt; / RTI >

예컨대, 요청자(220)에 의해 제1스눕 요청(SREQ1)이 발생하면, 두 개의 결정들이 시퀀스(sequence)로 수행될 수 있다. 첫 번째, 마스터-사이드 필터(250)는 제1스눕 요청(SREQ1)에 대한 보안 체크(또는 보안 속성들(AT1과 AT2)의 비교)를 수행한다(S120). 두 번째, 상기 보안 체크의 결과, 보안 이슈(security issue)가 없는 경우(또는 보안 속성들(AT1과 AT2)이 동일할 때; S120의 YES)), 핸들러(예컨대, 240)의 캐시 컨트롤러(242)는 캐시 히트 또는 캐시 미스를 체크한다(S150).For example, when a first snoop request SREQ1 is generated by the requester 220, two determinations may be performed in sequence. First, the master-side filter 250 performs a security check (or comparison of security attributes AT1 and AT2) for the first snoop request SREQ1 (S120). Second, if the result of the security check indicates that there is no security issue (or the security attributes AT1 and AT2 are the same, YES in S120), the cache controller 242 of the handler (e.g., 240) Checks a cache hit or a cache miss (S150).

도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이고, 도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.FIG. 6 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1, FIG. 7 is a block diagram of the master- Are examples for explaining the operations of the master-side filter according to FIG.

도 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)에 포함될 수도 있다.Referring to Figures 1, 6, and 7, the master-side filter 250-1 may include a decision logic circuit 252 and a memory device 254 that stores a security property look-up table. Although an embodiment is shown in FIG. 6 where master-side filter 250-1 includes memory device 254, memory device 254 may be implemented outside of master-side filter 250-1 have. According to embodiments, the memory device 254 may be implemented with static random access memory (SRAM). According to embodiments, the memory device 254 may be implemented anywhere within the controller 200, so that the memory device 254 may be included in the second master device 240.

메모리 장치(254)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 메모리 영역의 보안 속성(SM과 NSM)을 저장할 수 있다. 본 명세서에서 상기 메모리 영역은 메인 메모리 장치(300)의 전체, 상기 전체의 일부분, 및 라인(또는 캐시 라인에 해당하는 라인)을 의미할 수 있다.The memory device 254 may store the security attributes SM and NSM of the memory areas corresponding to the respective addresses ADD1, ADD3, ADD4, and ADD5. In this specification, the memory area may refer to the whole of the main memory device 300, a part of the entire memory device 300, and a line (or a line corresponding to a cache line).

도 6에 예시적으로 도시된 바와 같이, 각 어드레스(ADD1과 ADD3)에 해당하는 각 메모리 영역은 보안 모드(SM)에서 액세스 가능한 메모리 영역(예컨대, 보안 메모리 영역)임을 나타낼 수 있다. 또한, 각 어드레스(ADD4와 ADD5)에 해당하는 각 메모리 영역은 비-보안 모드(NSM)에서 액세스 가능한 메모리 영역(예컨대, 비-보안 메모리 영역)임을 나타낼 수 있다.As exemplarily shown in FIG. 6, each memory area corresponding to each of the addresses ADD1 and ADD3 may indicate that it is a memory area accessible in the security mode SM (e.g., a secure memory area). Also, each memory area corresponding to each of the addresses ADD4 and ADD5 may indicate that it is a memory area accessible in the non-secure mode (NSM) (e.g., non-secure memory area).

제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.The first master device 220 may send a first snoop request SREQ1 to the cache coherent interconnect 210 that includes a first security attribute AT1 and a first address ADD = ADD1.

마스터-사이드 필터(250-1)의 결정 로직 회로(252)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다(S210).The decision logic circuit 252 of the master-side filter 250-1 generates a first snoop request SREQ1 containing the first security attribute AT1 and the first address ADD1 via the cache coherent interconnect 210, (S210).

결정 로직 회로(252)는 제1보안 속성(AT1)과 제2보안 속성(AT2)을 서로 비교하고 제1어드레스(ADD=ADD1)에 매치되는 어드레스가 메모리 장치(254)에 존재하는지를 판단할 수 있다(S220). 상기 비교와 상기 판단은 순차적으로 또는 병렬적으로 수행될 수 있다.The decision logic circuit 252 may compare the first security attribute AT1 with the second security attribute AT2 and determine whether an address matching the first address ADD = ADD1 exists in the memory device 254 (S220). The comparison and the determination may be performed sequentially or in parallel.

제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)로 전송될 수 있다.When the first security attribute AT1 and the second security attribute AT2 are equal to each other and an address matching the first address ADD = ADD1 exists in the memory device 254 (YES in S220), the decision logic circuit 252 may transmit the first address (ADD = ADD1) included in the first snoop request (SREQ1) to the second master device (240). The cache controller 242 of the second master device 240 may transmit the data DATA1 stored in the cache 244 and corresponding to the first address ADD = ADD1 to the master-side filter 250-1 (S160). The decision logic circuit 252 of the master-side filter 250-1 may transmit the data DATA1 to the cache coherent interconnect 210. [ The data DATA1 transmitted from the master-side filter 250 may be transmitted to the first master device 220 via the cache coherent interconnect 210. [

경우 4(CASE4)와 경우 5(CASE5)를 설명하기 위해, 제2마스터 장치(240)의 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드임을 나타낸다고 가정한다.To illustrate Case 4 (Case 4) and Case 5 (Case 5), it is assumed that the second security attribute AT2 of the second master device 240 indicates that the operation mode of the second master device 240 is the secure mode.

예컨대, 도 10의 경우 4(CASE4)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제4지시 비트(SMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제4지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제4지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 따라서 제1어드레스(ADD=ADD1)에 해당하는 메모리 영역은 보안 모드(SM)에서 액세스 가능한 보안 메모리 영역이다.10, the first snoop request SREQ1 includes a fourth indication bit SMB and a first address ADD = ADD1. The fourth indication bit SMB indicates that the operation mode of the first master device 220 is the secure mode and the fourth indication bit SMB indicates the first security attribute AT1. Therefore, the memory area corresponding to the first address ADD = ADD1 is a secure memory area accessible in the security mode 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).The first security attribute AT1 of the first master device 220 indicates the security mode and the second security attribute AT2 of the second master device 240 indicates the security mode and the first security attribute AT1 indicates the security mode, The determination logic circuit 252 determines that the memory area corresponding to the address ADD1 stored in the memory device 254 is the secure memory area because the corresponding memory area is the secure memory area, The address ADD = ADD1 to the cache controller 242 of the second master device 240 (YES in S220). Cache hit or snoop hit occurs according to the operation of the cache controller 242 (S240).

예컨대, 도 10의 경우 5(CASE5)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제5지시 비트(SMB)와 제1어드레스(ADD=ADD4)를 포함한다. 제5지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제5지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 따라서 제1어드레스(ADD=ADD4)에 해당하는 메모리 영역은 비-보안 동작 모드에서 액세스 가능한 비-보안 메모리 영역이다.For example, as shown in Case 5 (CASE5) in FIG. 10, the first snoop request SREQ1 includes the fifth indication bit SMB and the first address ADD = ADD4. The fifth indication bit SMB indicates that the operation mode of the first master device 220 is the secure mode, and the fifth indication bit SMB indicates the first security attribute AT1. Thus, the memory area corresponding to the first address (ADD = ADD4) is a non-secure memory area accessible in the non-secure operating mode.

보안 모드를 지시하는 제1보안 속성(AT1)과 상기 보안 모드를 지시하는 제2보안 속성(AT2)은 서로 일치한다. 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타내므로, 제1마스터 장치(220)는 보안 메모리 영역을 액세스할 수 있는 어드레스를 출력해야 한다. 그러나 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타냄에도 불구하고 제1마스터 장치(220)에 의해 액세스될 제1어드레스(ADD=ADD4)은 비-보안 메모리 영역을 지시한다.The first security attribute AT1 indicating the security mode and the second security attribute AT2 indicating the security mode coincide with each other. Since the first security attribute AT1 of the first master device 220 indicates the security mode, the first master device 220 should output an address capable of accessing the secure memory area. However, the first address (ADD = ADD4) to be accessed by the first master device 220, even though the first security attribute AT1 of the first master device 220 represents the secure mode, Indicate.

따라서, 결정 로직 회로(252)는 제1어드레스(ADD=ADD1)를 제2마스터 장치 (240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 바로 전송한다(S220의 NO와 S230).Thus, the decision logic circuit 252 does not forward the first address (ADD = ADD1) to the cache controller 242 of the second master device 240 and directly sends the snoop miss to the cache coherent interconnect 210 NO of S220 and S230).

경우 6(CASE6)과 경우 7(CASE7)을 설명하기 위해 제2마스터 장치(240)의 제2보안 속성(AT2)은 비-보안 모드를 나타낸다고 가정한다.Assume that the second security attribute AT2 of the second master device 240 represents a non-secure mode to illustrate case 6 (CASE6) and case 7 (CASE7).

예컨대, 도 10의 경우 6(CASE6)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제6지시 비트(NSMB)와 제1어드레스(ADD=ADD4)를 포함한다. 제6지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제6지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다.For example, as shown in Case 6 (CASE6) in FIG. 10, the first snoop request SREQ1 includes the sixth instruction bit NSMB and the first address ADD = ADD4. The sixth indication bit NSMB indicates that the operation mode of the first master device 220 is the non-secure mode, and the sixth indication bit NSMB indicates the first security attribute AT1.

비-보안 모드를 나타내는 제1보안 속성(AT1)과 상기 비-보안 모드를 나타내는 제2보안 속성(AT2)은 서로 일치한다. 또한, 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD4)는 비-보안 메모리 영역을 지시하고, 메모리 장치(254)에 저장된 어드레스(ADD4)는 비-보안 메모리 영역을 지시한다. 따라서 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD=ADD4)의 속성과 메모리 장치(254)에 저장된 어드레스(ADD4)의 속성은 서로 일치한다.The first security attribute AT1 indicating the non-secure mode and the second security attribute AT2 indicating the non-secure mode coincide with each other. Also, the first address ADD = ADD4 included in the first snoop request SREQ1 indicates a non-secure memory area and the address ADD4 stored in the memory device 254 indicates a non-secure memory area . Therefore, the attributes of the first address ADD = ADD4 included in the first snoop request SREQ1 and the attributes of the address ADD4 stored in the memory device 254 coincide with each other.

결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD4)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송할 수 있다. 캐시 컨트롤러(242)의 동작에 따라 캐시 히트 또는 스눕 히트가 발생한다.The decision logic circuit 252 may send the first address ADD4 included in the first snoop request SREQ1 to the cache controller 242 of the second master device 240. [ A cache hit or a snoop hit occurs depending on the operation of the cache controller 242. [

예컨대, 도 10의 경우 7(CASE7)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제7지시 비트(NSMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제7지시 비트(NSMB)는 제1마스터 장치(220)의 동작 모드가 비-보안 모드임을 지시하고, 제7지시 비트 (NSMB)는 제1보안 속성(AT1)을 나타낸다.For example, as shown in Case 7 (CASE7) in FIG. 10, the first snoop request SREQ1 includes the seventh indication bit NSMB and the first address ADD = ADD1. The seventh indication bit NSMB indicates that the operation mode of the first master device 220 is the non-secure mode, and the seventh indication bit NSMB indicates the first security attribute 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).The first security attribute AT1 representing the non-security mode and the second security attribute AT2 representing the non-security mode coincide with each other. However, the first security attribute AT1 included in the first snoop request SREQ1 indicates the non-secure mode and the first address ADD = ADD1 included in the first snoop request SREQ1 indicates the non- And the address ADD1 stored in the memory device 254 indicates the secure memory area. Therefore, the attributes of the first address ADD = ADD1 included in the first snoop request SREQ1 and the attributes of the address ADD4 stored in the memory device 254 do not match with each other. The decision logic circuit 252 does not send the first address (ADD = ADD4) included in the first snoop request SREQ1 to the cache controller 242 of the second master device 240 and sends the snoop miss to the cache coherent interconnect (NO in S220 and S230).

도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블의 실시 예이다. 도 6부터 도 8에 도시된 실시 예들을 참조하면, 요청자(220)의 동작 모드와 핸들러(240)의 동작 모드가 서로 일치하고 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)에 해당하는 어드레스가 메모리 장치(254)에 존재할 때, 스눕 히트가 발생한다. 상기 스눕 히트는 캐시 컨트롤러(242)가 결정 로직 회로(252)로부터 출력된 어드레스(ADD)에 해당하는 데이터를 결정 로직 회로 (252)로 전송하는 것은 의미할 수 있다.FIG. 8 is an embodiment of a second table for explaining the operation of the master-side filter and the second master device shown in FIG. 6 to 8, if the operation mode of the supplicant 220 matches the operation mode of the handler 240 and the address corresponding to the address ADD included in the first snoop request SREQ1 When an address is present in the memory device 254, a snoop hit occurs. The snoop hit may mean that the cache controller 242 sends data corresponding to the address ADD output from the decision logic circuit 252 to the decision logic circuit 252. [

예컨대, 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치 (254)에 저장되고 상기 제2어드레스가 보안 메모리 영역을 지시할 때, 스눕 히트가 발생한다.For example, if the operation mode of the supplicant 220 is the security mode SM, the first address ADD included in the first snoop request SREQ1 indicates the secure memory area, and the operation mode of the handler 240 is the secure mode And a second address that matches the first address ADD is stored in the memory device 254 and the second address indicates a secure memory area, a snoop hit occurs.

그러나 요청자(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)로 전송하지 않는다.However, if the first address ADD included in the first snoop request SREQ1 indicates the secure memory area, the operation mode of the handler 240 is the secure mode, A snoop miss occurs when a third address that matches the first address ADD is stored in the memory device 254 and the third address points to a non-secure memory area. When the snoop miss occurs, the decision logic circuit 252 may block the first address ADD included in the first snoop request SREQ1 from being transmitted to the second master device 240. [ That is, the decision logic circuit 252 does not transmit the first address ADD included in the first snoop request SREQ1 to the second master device 240. [

실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하는지를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것은 차단할 수 있다.The decision logic circuit 252 determines whether the security attributes of the requestor 220 match the security attributes of the handler 240 and also determines whether the security attributes of the handler 240 match the security attributes of the handler 240 and the first snoop request SREQ1 sent from the requester 220 Determines whether a second address matching the included first address ADD exists in the memory device 254 and transmits the first address ADD to the second master device 240 according to the result of the determination, The address ADD can be blocked from being transmitted to the second master device 240. [

이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려하지 않는다. 즉, 요청자(220)의 보안 속성과 핸들러 (240)의 보안 속성의 서로 일치하고 요청자(220)로부터 전송된 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하면, 결정 로직 회로(252)는 제1어드레스(ADD)를 제2마스터 장치(240)로 전송한다.In this case, the decision logic circuit 252 does not consider whether the attribute of the first address ADD matches the attribute of the second address. That is, the first address ADD included in the first snoop request SREQ1 transmitted from the requester 220 matches the security attributes of the supplicant 220 and the handler 240, The decision logic circuit 252 transfers the first address ADD to the second master device 240. In this case,

실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)의 속성과 메모리 장치(254)에 저장된 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치 (240)로 전송되는 것은 차단할 수 있다. 이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려한다.The decision logic circuit 252 determines whether the security attributes of the requestor 220 match the security attributes of the handler 240 and also determines whether the security attributes of the handler 240 match the security attributes of the handler 240 and the first snoop request SREQ1 sent from the requester 220 (ADD) to the second master device 240 in accordance with the attribute of the included first address ADD and the attribute of the second address stored in the memory device 254 Or the first address ADD to be transmitted to the second master device 240 may be blocked. In this case, the decision logic circuit 252 considers whether the attribute of the first address ADD matches the attribute of the second address.

여기서, 어드레스의 속성은 상기 어드레스에 해당하는 메모리 영역이 보안 메모리 영역인지 또는 비-보안 메모리 영역인지를 나타내는 정보(또는 데이터)일 수 있다.Here, the attribute of the address may be information (or data) indicating whether the memory area corresponding to the address is a secure memory area or a non-secure memory area.

도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블의 실시 예이다. 도 6, 도 7, 및 도 9에 도시된 실시 예들을 참조하면, 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하면, 스눕 히트가 발생할 수 있다. 이때, 제1어드레스(ADD1)와 상기 제2어드레스는 동일하다고 가정한다.FIG. 9 is an example of a third table for explaining the operation of the master-side filter and the second master device shown in FIG. 6, 7, and 9, when the second security attribute AT2 indicates a security mode and the second address stored in the memory device 254 indicates a secure memory area, A snoop hit may occur if the first security attribute AT1 included in the first snoop request SREQ1 indicates a security mode and the first address ADD included in the first snoop request SREQ1 indicates a secure memory area have. At this time, it is assumed that the first address ADD1 and the second address are the same.

그러나 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 비-보안 메모리 영역을 지시하면, 스눕 미스가 발생할 수 있다.However, when the second security attribute AT2 indicates the security mode and the second address stored in the memory device 254 indicates the secure memory area, the first security attribute AT1 included in the first snoop request SREQ1 is If the first address ADD included in the first snoop request SREQ1 indicates a non-secure memory area, a snoop miss may occur.

다른 예로서, 제2보안 속성(AT2)이 비-보안 모드를 나타내고 메모리 장치 (254)에 저장된 제2어드레스가 비-보안 메모리 영역을 지시할 때, 제1스눕 요청 (SREQ1)에 포함된 제1보안 속성(AT1)이 비-보안 모드를 나타내고 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD)가 비-보안 메모리 영역을 지시하면, 스눕 히트가 발생할 수 있다.As another example, when the second security attribute AT2 indicates a non-secure mode and the second address stored in the memory device 254 indicates a non-secure memory area, A snoop hit may occur if the first security attribute AT1 indicates a non-secure mode and the first address ADD included in the first snoop request SREQ1 indicates a non-secure memory area.

그러나 제2보안 속성(AT2)이 비-보안 모드를 나타내고 메모리 장치 (254)에 저장된 제2어드레스가 비-보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 비-보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시할 때, 스눕 미스가 발생할 수 있다.However, when the second security attribute AT2 indicates a non-secure mode and the second address stored in the memory device 254 indicates a non-secure memory area, the first security attribute AT2 included in the first snoop request SREQ1, A snoop miss may occur when the first address AT1 indicates a non-secure mode and the first address ADD included in the first snoop request SREQ1 indicates a secure memory area.

도 8에 도시된 실시 예는 요청자(220)와 핸들러(240) 각각의 속성과 어드레스 영역(또는 어드레스)의 속성을 함께 참조하는 방법을 나타내고, 도 9에 도시된 실시 예는 요청자(220)의 속성과 어드레스 영역(또는 어드레스)의 속성을 참조하는 방법은 나타낸다.The embodiment shown in FIG. 8 shows a method of referencing attributes of each of the requestor 220 and the handler 240 together with attributes of the address area (or address), and the embodiment shown in FIG. The attribute and the method of referring to the attribute of the address area (or address) are shown.

도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다. 도 1과 도 11을 참조하면, 제1마스터 장치(220)는 보안 모드를 수행할 수 있는 소프트웨어(또는 펌웨어; SW)를 실행할 수 있다. 제1마스터 장치(220)에 의해 실행되는 소프트웨어(SW)는 제2마스터 장치(240)의 동작을 제어할 수 있다.11 is a diagram conceptually illustrating software operations in the operation modes and the operation modes of the second master device shown in FIG. Referring to FIGS. 1 and 11, the first master device 220 may execute software (or firmware) capable of performing a secure mode. The software SW executed by the first master device 220 can control the operation of the second master device 240. [

제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR(235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 보안 모드를 나타낸다.The first master device 220 may transmit a first control signal CTR1 to the second controller 230 to set the operation mode of the second master device 240 to the secure mode. The second controller 230 may set the first control signal CTR1 in the SFR 235. [ According to the first control signal CTR1 set in the SFR 235, the second security attribute AT2 indicates the security mode.

소프트웨어(SW)는 캐시(244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH1), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 보안 모드로 동작할 수 있다. 제2마스터 장치(240)가 상기 보안 모드로 동작하는 동안에 캐시(244)에는 데이터가 저장될 수 있다.The software SW may control the cache controller 242 to delete all data stored in the cache 244. [ When all data stored in the cache 244 is deleted (CACHE FLUSH1), the second master device 240 can operate in the secure mode under the control of the software SW. Data may be stored in the cache 244 while the second master device 240 is operating in the secure mode.

그 후에, 제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 비-보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR (235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 비-보안 모드를 나타낸다.The first master device 220 may then send a first control signal CTR1 to the second controller 230 to set the operational mode of the second master device 240 to the non-secure mode. The second controller 230 may set the first control signal CTR1 in the SFR 235. [ According to the first control signal CTR1 set in the SFR 235, the second security attribute AT2 indicates a non-secure mode.

소프트웨어(SW)는 제2마스터 장치(240)가 보안 모드로 동작하는 동안에 캐시 (244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH2), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 비-보안 모드로 동작할 수 있다. 따라서, 제2마스터 장치(240)가 비-보안 모드로 동작을 시작하기 전(또는 직전)에, 보안 모드로 동작하는 동안에 캐시(244)에 저장된 모든 데이터가 삭제되므로, 컨트롤러(200)의 보안이 향상되는 효과가 있다.The software SW may control the cache controller 242 to delete all data stored in the cache 244 while the second master device 240 is operating in secure mode. If all data stored in the cache 244 is deleted (CACHE FLUSH2), the second master device 240 may operate in a non-secure mode under control of the software SW. Thus, all data stored in the cache 244 is erased while the second master device 240 is operating in the secure mode (before or immediately before the start of operation in the non-secure mode), so that the security of the controller 200 Is improved.

즉, 보안 동작 모드의 시작(또는 진입)과 상기 보안 동작 모드의 끝(또는 탈출(exit))에서 캐시 플러쉬(cache flush) 동작(CACHE FLUSH1과 CACHE FLUSH2)이 수행될 수 있다. 따라서 캐시(244)에 저장된 모든 데이터는 삭제된다. 예컨대, 캐시 (244)의 어드레스별로 또는 캐시(244)의 캐시 라인별로 속성이 지원되지 않을 때 또는 상기 속성이 확인되지 않을 때, 상술한 바와 같이 캐시(244)에 저장된 모든 데이터는 삭제될 수 있다. 그러나 캐시(244)의 어드레스별로 또는 캐시(244)의 캐시 라인별로 속성이 지원될 때 또는 상기 속성이 확인될 때, 캐시(244)에 저장된 모든 데이터는 삭제되지 않을 수 있다. That is, a cache flush operation (CACHE FLUSH1 and CACHE FLUSH2) may be performed at the start (or entry) of the secure operation mode and at the end (or exit) of the secure operation mode. Thus, all data stored in the cache 244 is deleted. For example, as described above, all data stored in the cache 244 may be deleted when the attribute is not supported by the address of the cache 244 or by the cache line of the cache 244, or when the attribute is not checked . However, all of the data stored in the cache 244 may not be deleted when the attribute is supported by, or by, the address of the cache 244 or by the cache line of the cache 244.

도 1부터 도 11을 참조하여 설명한 바와 같이, 스눕 제어(snoop control)를 위해 마스터-사이드 필터(250)가 컨트롤러(200)에 구현되고, 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)이 슬레이브-사이드 필터(280) 대신에 마스터-사이드 필터(250)에서 수행되므로, 상기 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)을 위해 슬레이브-사이드 필터(280)에 대한 액세스는 더 이상 요구되지 않는다.As described with reference to FIGS. 1 to 11, a master-side filter 250 is implemented in the controller 200 for snoop control, and a snoop operation (or primary security search in the snoop operation) Side filter 280 is no longer required for the snoop operation (or the primary security search in the snoop operation) since it is performed in the master-side filter 250 instead of the sidewall filter 280 .

스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)는 제1마스터 장치(220)와 제2마스터 장치(240) 사이에서 주고받는 신호만으로 결정될 수 있다. 따라서 마스터-사이드 필터(250)를 포함하는 컨트롤러(200)에서 스눕 동작을 위한 타이밍 오버헤드(timing overhead)는 제거될 수 있다.The snoop time or the snoop latency may be determined only by signals transmitted and received between the first master device 220 and the second master device 240. [ Thus, the timing overhead for the snoop operation in the controller 200 including the master-side filter 250 can be eliminated.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

100: 데이터 처리 시스템
200: 컨트롤러
210: 캐시 코히런트 인터커넥트
220: 제1마스터 또는 제1마스터 장치
230: 보안 속성 컨트롤러
240: 제2마스터 또는 제2마스터 장치
242: 캐시 컨트롤러
244: 캐시
250, 250-1: 마스터-사이드 필터
252: 결정 로직 회로
254: 메모리 장치
280: 슬레이브-사이드 필터
300: 외부 메모리 장치
100: Data processing system
200: controller
210: Cache Coherent Interconnect
220: first master or first master device
230: Security attribute controller
240: second master or second master device
242: Cache controller
244: Cache
250, 250-1: Master-side filter
252: decision logic circuit
254: Memory device
280: Slave-side filter
300: external memory device

Claims (20)

캐시 코히런트 인터커넥트;
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치; 및
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교의 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함하는 애플리케이션 프로세서.
Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device; And
And a second master device coupled between the cache coherent interconnect and the second master device for receiving a snoop request from the first master device via the cache coherent interconnect, And a master-side filter for comparing the first security attribute of the first master device included in the request and determining whether to transmit the first address included in the snoop request to the second master device according to a result of the comparison Application processor.
제1항에 있어서, 상기 마스터-사이드 필터는,
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함하는 애플리케이션 프로세서.
The method of claim 1, wherein the master-
Transferring a first cache miss to the first master device via the cache coherent interconnect without transferring the first address to the second master device when the first security attribute and the second security attribute are different ,
When the first security attribute and the second security attribute are equal to each other, transmitting the first address to the second master device,
Wherein the first security attribute and the second security attribute each include a secure mode and a non-secure mode.
제2항에 있어서, 상기 제2마스터 장치는,
제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시; 및
상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고,
상기 캐시 컨트롤러는,
상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.
3. The apparatus of claim 2, wherein the second master device comprises:
A cache for storing data corresponding to the second address and the second address; And
And a cache controller for controlling the operation of the cache,
The cache controller comprising:
Side filter, comparing the second address with the first address transmitted from the master-side filter, and transmitting the data stored in the cache to the master-side filter when the first address matches the second address A second cache miss is transmitted to the master-side filter when the first address is different from the second address,
Wherein the cache coherent interconnect transmits the first cache miss, the data, or the second cache miss output from the master-side filter to the first master device.
제1항에 있어서,
상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러; 및
상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함하는 애플리케이션 프로세서.
The method according to claim 1,
A security attribute controller for determining the second security attribute based on a control signal transmitted from the first master device; And
And a transmission line for transmitting the second security attribute to the master-side filter.
제1항에 있어서, 상기 마스터-사이드 필터는,
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.
The method of claim 1, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute match and whether the first address and the second address match with each other, 2 < / RTI > master device.
제5항에 있어서, 상기 결정 로직 회로는,
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.
6. The apparatus of claim 5, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address,
When the first security attribute and the second security attribute do not match or when the first address and the second address do not match, sending a cache miss to the cache coherent interconnect,
Wherein the cache coherent interconnect sends the cache miss to the first master device.
제1항에 있어서, 상기 마스터-사이드 필터는,
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.
The method of claim 1, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute coincide with each other and whether the attribute of the first address matches the attribute of the second address, And a decision logic circuit for determining whether to transfer the address to the second master device.
제7항에 있어서, 상기 결정 로직 회로는,
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.
8. The apparatus of claim 7, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the attribute of the first address matches the attribute of the second address,
And transmitting a cache miss to the cache coherent interconnect when the first security attribute and the second security attribute do not match or when the attribute of the first address and the attribute of the second address do not match,
Wherein the cache coherent interconnect sends the cache miss to the first master device.
제1항에 있어서,
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는,
상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고,
상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제하는 애플리케이션 프로세서.
The method according to claim 1,
The software executed in the first master device and controlling the operation of the second master device,
Delete all data stored in the cache included in the second master device when the second master device enters the secure mode from the non-secure mode,
And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits the non-secure mode from the secure mode.
제1항에 있어서,
상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고,
상기 마스터-사이드 필터는 스눕 동작을 수행하고,
상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는 애플리케이션 프로세서.
The method according to claim 1,
Further comprising a slave-side filter coupled to the cache coherent interconnect for processing a memory access request of the first master device to the main memory device,
The master-side filter performs a snoop operation,
Wherein the slave-side filter does not perform the snoop operation.
제1항에 있어서,
상기 제1마스터 장치는 CPU이고,
상기 제2마스터 장치는 GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 또는 DSP(digital signal processor)인 애플리케이션 프로세서.
The method according to claim 1,
The first master device is a CPU,
Wherein the second master device is a graphics processing unit (GPU), general purpose computing on graphics processing units (GPGPU), or a digital signal processor (DSP).
애플리케이션 프로세서; 및
상기 애플리케이션 프로세서에 연결된 외부 메모리 장치를 포함하고,
상기 애플리케이션 프로세서는,
캐시 코히런트 인터커넥트;
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치;
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터; 및
상기 캐시 코히런트 인터커넥트와 상기 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함하는 데이터 처리 시스템.
An application processor; And
An external memory device coupled to the application processor,
The application processor,
Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device;
A master-side filter connected between the cache coherent interconnect and the second master device, the master-side filter performing a snoop operation in response to a snoop request transmitted from the first master device; And
A slave-side filter coupled between the cache coherent interconnect and the external memory device for performing a memory access operation to the external memory device in response to a memory access request output from the first master device, system.
제12항에 있어서, 상기 마스터-사이드 필터는,
상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 데이터 처리 시스템.
13. The method of claim 12, wherein the master-
Receiving a snoop request through the cache coherent interconnect, comparing a second security attribute of the second master device with a first security attribute of the first master device included in the snoop request, And determines whether to transmit the first address included in the snoop request to the second master device.
제13항에 있어서, 상기 마스터-사이드 필터는,
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함하는 데이터 처리 시스템.
14. The method of claim 13, wherein the master-
Transferring a first cache miss to the first master device via the cache coherent interconnect without transferring the first address to the second master device when the first security attribute and the second security attribute are different ,
When the first security attribute and the second security attribute are equal to each other, transmitting the first address to the second master device,
Wherein the first security attribute and the second security attribute each include a secure mode and a non-secure mode.
제12항에 있어서, 상기 마스터-사이드 필터는,
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 데이터 처리 시스템.
13. The method of claim 12, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute match and whether the first address and the second address match with each other, 2 < / RTI > master device.
제15항에 있어서, 상기 결정 로직 회로는,
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 데이터 처리 시스템.
16. The apparatus of claim 15, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address,
When the first security attribute and the second security attribute do not match or when the first address and the second address do not match, sending a cache miss to the cache coherent interconnect,
Wherein the cache coherent interconnect transmits the cache miss to the first master device.
제12항에 있어서, 상기 마스터-사이드 필터는,
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 데이터 처리 시스템.
13. The method of claim 12, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute coincide with each other and whether the attribute of the first address matches the attribute of the second address, And a decision logic circuit for determining whether to transfer the address to the second master device.
제12항에 있어서,
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는,
상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고,
상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제하는 데이터 처리 시스템.
13. The method of claim 12,
The software executed in the first master device and controlling the operation of the second master device,
Delete all data stored in the cache included in the second master device when the second master device enters the secure mode from the non-secure mode,
And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits from the secure mode to the non-secure mode.
캐시 코히런트 인터커넥트;
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치;
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터; 및
상기 캐시 코히런트 인터커넥트와 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함하는 캐시 코히런트 시스템.
Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device;
A master-side filter connected between the cache coherent interconnect and the second master device, the master-side filter performing a snoop operation in response to a snoop request transmitted from the first master device; And
A slave-side filter coupled between the cache coherent interconnect and an external memory device for performing a memory access operation to the external memory device in response to a memory access request output from the first master device, system.
제19항에 있어서, 상기 마스터-사이드 필터는,
상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하는 캐시 코히런트 시스템.
20. The method of claim 19, wherein the master-
Receiving the snoop request via the cache coherent interconnect, comparing a second security attribute of the second master device with a first security attribute of the first master device included in the snoop request,
Transmitting a cache miss to the cache coherent interconnect without sending a first address included in the snoop request to the second master device when the first security attribute and the second security attribute are different,
And transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other.
KR1020160021651A 2015-07-01 2016-02-24 Cache coherent system including master-side filter and data processing system having the same KR102485999B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016130528A JP6739253B2 (en) 2015-07-01 2016-06-30 Cache coherent system including master side filter and data processing system including the same
US15/198,583 US9864687B2 (en) 2015-07-01 2016-06-30 Cache coherent system including master-side filter and data processing system including same
CN201610512585.4A CN106326148B (en) 2015-07-01 2016-06-30 Data processing system and method of operation thereof
TW105120864A TWI724004B (en) 2015-07-01 2016-07-01 Application processor and operating method thereof, and data processing system and operating method thereof
DE102016211986.9A DE102016211986A1 (en) 2015-07-01 2016-07-01 A cache coherent system comprising a master-side filter and a data processing system including the same

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 true KR20170004831A (en) 2017-01-11
KR102485999B1 KR102485999B1 (en) 2023-01-06

Family

ID=57833434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021651A KR102485999B1 (en) 2015-07-01 2016-02-24 Cache coherent system including master-side filter and data processing system having the same

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023121925A1 (en) * 2021-12-21 2023-06-29 Advanced Micro Devices, Inc. Coherent block read fulfillment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161619A (en) * 1997-06-30 1999-06-18 Sun Microsyst Inc Snoop filter for multiprocessor computer system
KR20060037174A (en) * 2004-10-27 2006-05-03 삼성전자주식회사 Apparatus and method for snooping in multi processing system
KR20070119653A (en) * 2005-03-29 2007-12-20 인터내셔널 비지네스 머신즈 코포레이션 Method and apparatus for filtering snoop requests using stream registers
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820850B1 (en) * 2001-02-15 2003-05-09 Bull Sa CONSISTENCY CONTROLLER FOR MULTIPROCESSOR ASSEMBLY, MODULE AND MULTIPROCESSOR ASSEMBLY WITH MULTIMODULE ARCHITECTURE INCLUDING SUCH A CONTROLLER
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
CN106776364B (en) * 2012-10-22 2020-07-17 英特尔公司 Apparatus, method and system for high performance interconnect physical layer
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161619A (en) * 1997-06-30 1999-06-18 Sun Microsyst Inc Snoop filter for multiprocessor computer system
KR20060037174A (en) * 2004-10-27 2006-05-03 삼성전자주식회사 Apparatus and method for snooping in multi processing system
KR20070119653A (en) * 2005-03-29 2007-12-20 인터내셔널 비지네스 머신즈 코포레이션 Method and apparatus for filtering snoop requests using stream registers
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge

Cited By (2)

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

Also Published As

Publication number Publication date
KR102485999B1 (en) 2023-01-06
TW201717028A (en) 2017-05-16
TWI724004B (en) 2021-04-11

Similar Documents

Publication Publication Date Title
CN106326148B (en) Data processing system and method of operation thereof
JP4960989B2 (en) Delete invalidation transaction from snoop filter
US8904045B2 (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US9348740B2 (en) Memory access controller, multi-core processor system, memory access control method, and computer product
US20090006668A1 (en) Performing direct data transactions with a cache memory
JPH10154100A (en) Information processing system, device and its controlling method
CN114860329B (en) Dynamic consistency bias configuration engine and method
US9015436B2 (en) Performing an atomic operation without quiescing an interconnect structure
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
KR20140098096A (en) Integrated circuits with cache-coherency
KR20110127479A (en) Multi processor device and inter process communication method thereof
US20220114099A1 (en) System, apparatus and methods for direct data reads from memory
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
US8667226B2 (en) Selective interconnect transaction control for cache coherency maintenance
US9448937B1 (en) Cache coherency
KR102485999B1 (en) Cache coherent system including master-side filter and data processing system having the same
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
US11275707B2 (en) Multi-core processor and inter-core data forwarding method
US7757046B2 (en) Method and apparatus for optimizing line writes in cache coherent systems
US20150113221A1 (en) Hybrid input/output write operations
US11874783B2 (en) Coherent block read fulfillment
US10521346B2 (en) Arithmetic processing apparatus and control method for arithmetic processing apparatus
CN115934367A (en) Buffer processing method, snoop filter, multiprocessor system, and storage medium
KR20060037174A (en) Apparatus and method for snooping in multi processing 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