[go: up one dir, main page]

KR102485999B1 - 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
KR102485999B1
KR102485999B1 KR1020160021651A KR20160021651A KR102485999B1 KR 102485999 B1 KR102485999 B1 KR 102485999B1 KR 1020160021651 A KR1020160021651 A KR 1020160021651A KR 20160021651 A KR20160021651 A KR 20160021651A KR 102485999 B1 KR102485999 B1 KR 102485999B1
Authority
KR
South Korea
Prior art keywords
address
master device
security attribute
master
snoop
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020160021651A
Other languages
Korean (ko)
Other versions
KR20170004831A (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 CN201610512585.4A priority Critical patent/CN106326148B/en
Priority to JP2016130528A priority patent/JP6739253B2/en
Priority to US15/198,583 priority patent/US9864687B2/en
Priority to DE102016211986.9A priority patent/DE102016211986A1/en
Priority to TW105120864A priority patent/TWI724004B/en
Publication of KR20170004831A publication Critical patent/KR20170004831A/en
Application granted granted Critical
Publication of KR102485999B1 publication Critical patent/KR102485999B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

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

Abstract

애플리케이션 프로세서가 게시된다. 상기 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결된 마스터-사이드 필터를 포함한다. 상기 마스터-사이드 필터는 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.An application processor is published. The application processor includes a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a master-side filter coupled between the cache coherent interconnect and the second master device. . The master-side filter receives the snoop request transmitted from the first master device through the cache coherent interconnect, and the second security attribute of the second master device and the first master device included in the snoop request. The first security attribute is compared, and based on the comparison result, it is determined whether to transmit the address included in the snoop request to the second master device.

Description

마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템{CACHE COHERENT SYSTEM INCLUDING MASTER-SIDE FILTER AND DATA PROCESSING SYSTEM HAVING THE SAME}Cache coherent system including master-side filter and data processing system including the same

본 발명의 개념에 따른 실시 예는 캐시 코히런트 시스템에 관한 것으로, 특히 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템에 관한 것이다.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 performing a security check and a data processing system including the same.

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

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

캐시 코히런트 인터페이스, 상기 캐시 코히런트 인터페이스에 연결된 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 a non-secure mode outputs a snoop request to the GPU; When a cache hit occurs in the cache of the GPU, a cache line (ie, line data) stored in the cache is written back to an external memory device connected to the system. After the write-back is completed, the CPU transmits a command for reading a cache line written-back to the external memory device to a controller that controls the external memory device. Accordingly, write-back traffic related to the write-back and memory read request traffic related to reading the cache line stored in the external memory device increase.

본 발명이 이루고자 하는 기술적인 과제는 캐시 효율을 높이기 위해 캐시 코히런트 인터커넥트에 연결된 마스터들 사이에서 스눕 요청을 수행할 경우 보안 체크를 위해 발생하는 부가적인 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거하기 위해 상기 스눕 요청에 대해서 종래의 슬레이브-사이드 필터를 대체하여 상기 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.A technical problem to be achieved by the present invention is to eliminate additional write-back traffic and memory read request traffic generated for security check when a snoop request is performed between masters connected to a cache coherent interconnect in order to increase cache efficiency. To provide a cache coherent system including a master-side filter that replaces a conventional slave-side filter for the snoop request and performs the security check, and a data processing system including the same.

본 발명의 실시 예에 따른 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함한다.An application processor according to an embodiment of the present invention is connected between a cache coherent interconnect, a first master device connected to the cache coherent interconnect, a second master device, and between the cache coherent interconnect and the second master device. , Receiving a snoop request transmitted from the first master device through the cache coherent interconnect, and determining 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 that compares 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보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.The master-side filter transmits a first cache miss through the cache coherent interconnect without transmitting the first address to the second master device when the first security attribute and the second security attribute are different from each other. transmitted to the first master device. 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 each of the first security attribute and the second security attribute is Includes secure mode and non-secure mode.

상기 제2마스터 장치는 제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시와, 상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고, 상기 캐시 컨트롤러는 상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송한다.The second master device includes a cache for storing a second address and data corresponding to the second address, and a cache controller for controlling an operation of the cache, wherein the cache controller includes the second address and the master-side The first addresses transmitted from the filter are compared with each other, and when the first address and the second address match, the data stored in the cache is transmitted to the master-side filter and the first address and the second address are matched. transmits a second cache miss to the master-side filter when is different, and 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 transmit to the master device.

상기 애플리케이션 프로세서는 상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러와, 상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함한다.The application processor further includes 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-side filter. .

실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-side filter includes a memory device for storing a second address and an attribute of a memory area corresponding to the second address, connected to the memory device, and the first security attribute and the second security attribute. and a decision logic circuit for determining whether attributes match and whether the first address and the second address match, and determining 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; When the first security attribute and the second security attribute do not match or the first address and the second address do not match, a cache miss is transmitted to the cache coherent interconnect, and the cache coherent interconnect detects the cache miss. transmitted to the first master device.

실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-side filter includes a memory device for storing a second address and an attribute of a memory area corresponding to the second address, connected to the memory device, and the first security attribute and the second security attribute. A decision logic circuit for determining whether the attributes match and whether the attributes of the first address and the attributes of the second address match, 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마스터 장치로 전송한다.The decision logic circuit transmits the first address to the second master device when the first security attribute and the second security attribute match and the attribute of the first address and the attribute of the second address match. and 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, transmit a cache miss to the cache coherent interconnect; A coherent interconnect forwards the cache miss to the first master device.

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

상기 애플리케이션 프로세서는 상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고, 상기 마스터-사이드 필터는 스눕 동작을 수행하고, 상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는다.The application processor further includes a slave-side filter coupled to the cache coherent interconnect and processing a memory access request of the first master device to a main memory device, wherein the master-side filter performs 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), a general-purpose computing on graphics processing unit (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. The application processor is coupled between a cache coherent interconnect, a first master device connected to the cache coherent interconnect, a second master device, and between the cache coherent interconnect and the second master device, wherein the first master device A master-side filter that performs a snoop operation in response to a snoop request transmitted from the external memory device, and is connected between the cache coherent interconnect and the external memory device, and responds to a memory access request output from the first master device to the external memory device. and a slave-side filter that performs memory access operations on the memory device.

상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.The master-side filter receives the snoop request through the cache coherent interconnect, compares 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 , It is determined 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보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.The master-side filter transmits a first cache miss through the cache coherent interconnect without transmitting the first address to the second master device when the first security attribute and the second security attribute are different from each other. to a first master device, and 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 the first security attribute and each of the second security attributes includes a secure 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 connected to the cache coherent interconnect, a second master device, and between the cache coherent interconnect and the second master device. a master-side filter that is connected and performs a snoop operation in response to a snoop request transmitted from the first master device, and a memory that is connected between the cache coherent interconnect and an external memory device and that is output from the first master device and a slave-side filter that performs a memory access operation on 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 through the cache coherent interconnect, compares 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 , When the first security attribute and the second security attribute are different from each other, transmit a cache miss to the cache coherent interconnect without transmitting the first address included in the snoop request to the second master device, and When the first 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 provides write-back traffic and memory for secure search during a snoop operation in a data processing system supporting a secure mode and a non-secure mode. This has the effect of removing lead request traffic. The master-side filter has an effect of managing full cache coherency.

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

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

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

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

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

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 3은 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다.
도 5는 도 1의 제1마스터로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블이다.
도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블이다.
도 10은 도 1의 제1마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다.
A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 is a block diagram of a data processing system according to an embodiment of the present invention.
FIG. 2 is a block diagram of a master-side filter and a second master device according to the embodiment of the present invention shown in FIG. 1 .
FIG. 3 is a flow chart for explaining the operation of the master-side filter and the second master device shown in FIG. 1;
FIG. 4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG. 1 .
FIG. 5 is exemplary embodiments for explaining operations of a master-side filter according to a snoop request output from the first master of FIG. 1 .
FIG. 6 is a block diagram of a master-side filter and a second master device according to the embodiment of the present invention shown in FIG. 1 .
FIG. 7 is a flow chart for explaining the operation of the master-side filter and the second master device shown in FIG. 6 .
FIG. 8 is a second table for explaining the operation of the master-side filter and the second master device shown in FIG. 6 .
FIG. 9 is a third table for explaining operations of the master-side filter and the second master device shown in FIG. 6 .
FIG. 10 is an embodiment for explaining operations of a master-side filter according to a snoop request output from the first master device of FIG. 1 .
11 is a diagram conceptually illustrating operation modes of the second master device shown in FIG. 1 and software operations in each of the operation modes.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are only illustrated for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention It can be embodied in various forms and is not limited to the embodiments described herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments according to the concept of the present invention can apply various changes and have various forms, so the embodiments are illustrated in the drawings and described in detail in this specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosure forms, and includes all changes, equivalents, or substitutes included in the spirit and technical scope of the present invention.

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

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is 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, but other elements may exist in the middle. It should be. On the other hand, when a component is referred to as “directly connected” or “directly connected” to another component, it should be understood that no other component exists in the middle. Other expressions describing the relationship between components, such as "between" and "directly between" or "adjacent to" and "directly adjacent to", etc., should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this specification are used only to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in this specification, but one or more other features It should be understood that it does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

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

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

도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200)와 메인 메모리 장치(300)를 포함할 수 있다.1 is a block diagram of a data processing system according to an embodiment of the present invention. Referring to FIG. 1 , the 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 includes a laptop computer, a mobile phone, a smart phone, a tablet PC, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, a digital video camera, and a portable MPP (PMP). multimedia player), personal navigation device or portable navigation device (PND), handheld game console, mobile internet device (MID), wearable computer, Internet of Things (IoT) device , Internet of Everything (IoE) devices, drones, or e-books. Further, the data processing system 100 may be used in a smart car or 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 may control the operation of the main memory device 300 . The controller 200 may mean 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 include a central processing unit (CPU), a graphics processing unit (GPU), a general-purpose computing on graphics processing unit (GPGPU), and a digital signal processor (DSP) connected to the cache coherent interconnect 210 . It may include, but is not limited to.

또한, 컨트롤러(200)는 집적 회로(IC), 시스템 온 칩(system on chip(SoC)), 프로세서, 애플리케이션 프로세서, 모바일 애플리케이션 프로세서, 마더보드 (motherboard), 칩셋(chipset), 또는 반도체 칩들의 집합을 의미할 수 있다. 예컨대, 컨트롤러(200)와 메인 메모리 장치(300)는 패키지 온 패키지(package-on-package)로 구현될 수 있다.In addition, the controller 200 may be an integrated circuit (IC), a system on chip (SoC), a processor, an application processor, a mobile application processor, a motherboard, a chipset, or a set of semiconductor chips. can mean 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 first master; 220), a second controller (or first security attribute controller; 230), a second master device (or second master; 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 second security attribute controller) 260 and a third master device (or 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, the snoop time ( This has the effect of reducing snoop time or snoop latency.

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

제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드 (secure mode) 또는 비-보안 모드(non-secure mode)로 설정하기 위한 제1제어 신호 (CTR1)를 캐시 코히런트 인터커넥트(210)를 통해 제2컨트롤러(230)로 전송할 수 있다. 상기 보안 모드는 보안이 필요한 데이터를 처리할 수 있는 보안 동작 모드를 의미할 수 있고, 상기 비-보안 모드는 보안이 필요하지 않은 데이터를 처리할 수 있는 비-보안 동작 모드를 의미할 수 있으나 이에 한정되는 것은 아니다.The first master device 220 transmits the first control signal CTR1 for setting the operation mode of the second master device 240 to a secure mode or a non-secure mode as a cache code. It can be transmitted to the second controller 230 through 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 operating mode capable of processing data not requiring security. It is not limited.

제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 having security awareness. The first master device 220 may generate a first snoop request SREQ1 including the first security attribute AT1 and the address ADD. The first security attribute AT1 means information (or data) indicating whether the operation mode of the first master device 220 is a secure mode or a non-secure mode, and the address ADD is the first master device 220 ) may indicate a memory area of the main memory device 300 to be accessed.

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

제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 a secure mode or a non-secure mode by using the first control signal CTR1 output from the first master device 220. there is. The first control signal CTR1 may be stored in a 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, 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 through 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 a secure mode or a 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 may set the operation mode of the second master device 240 to a secure mode or a 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, GPGPU, or DSP, but is not limited thereto, and may include all 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 awareness.

마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)와 제1마스터 장치(220) 사이에 연결될 수 있다. 본 발명의 실시 예들에 따른 마스터-사이드 필터 (250 또는 250-1)는, 스눕 동작(snoop operation) 또는 캐시 스눕 동작에서, 보안 검색을 수행할 수 있다. 마스터-사이드 필터(250)는 마스터-사이드 보안 필터로 불릴 수 있다.The master-side filter 250 may be connected 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. 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)을 제거할 수 있는 효과가 있다.Since the master-side filter 250 can perform a secure search during snoop operations, the data processing system 100 including the master-side filter 250 can perform a slave search for every snoop hit (or every cache hit). - can eliminate write-back traffic and memory read request traffic, compared to conventional data processing systems that rely on secure searches performed using side filters 280; 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) transmitted from the first master device 220 through the cache coherent interconnect 210, and receives the second security attribute of the second master device 240. (AT2) and the first security attribute (AT1) of the first master device 220 included in the first snoop request (SREQ1) are compared with each other, and the address included in the first snoop request (SREQ1) according to the comparison result. It is possible to determine whether to transmit (ADD) to the second master device 240.

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

그러나 마스터-사이드 필터(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 converts 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 matching the address ADD transmitted from the master-side filter 250 exists in the internal cache of the second master device 240, and according to the result of the determination, a cache miss Alternatively, a cache hit may be determined and the determined result may be transmitted to the master-side filter 250 .

마스터-사이드 필터(250)는 스눕 동작에서 일차 보안 검색을 수행한다. 그러나 슬레이브-사이드 필터(280)는 스눕 동작에서 일차 보안 검색을 수행하지 않고, 메인 메모리 장치(300)에 대한 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 처리할 수 있다. 예컨대, 상기 메모리 액세스 요청은 마스터-사이드 필터(250)로부터 전송된 스눕 동작의 결과, 예컨대 캐시 미스에 기초하여 제1마스터 장치(220)에 의해 발생할 수 있다.Master-side filter 250 performs a first-order security check in a snoop operation. However, the slave-side filter 280 may process a memory access request (eg, a data read request) for the main memory device 300 without performing the 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 transmitted from the master-side filter 250, for example, 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 a purpose other than system configuration, a cache for snoop operation considering security. Only coherent interconnect 210 and 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 may use the second control signal CTR2 output from the first master device 220 to set the operation mode of the third master device 270 to a secure mode or a non-secure mode. there is. 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 flag or a digital signal having at least one bit.

예컨대, 레지스터(265)는 SFR로 구현될 수 있다. SFR(265)에 저장된 제2제어 신호(CTR2)에 따라 제3마스터 장치(270)의 제3보안 속성(AT3)이 결정될 수 있다. 제3보안 속성(AT3)은 제3마스터 장치(270)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)일 수 있다.For example, 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 a secure mode or a 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 a secure mode or a 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, GPGPU, or DSP, but is not limited thereto. For example, the third master device 270 may be a master device with non-security considerations or a master device without security considerations. For example, the third master device 270 may generate a second snoop request SREQ2 including the third security attribute AT3 and the 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) transmitted from the third master device 270 through the cache coherent interconnect 210, and receives the second security attribute of the second master device 240. (AT2) and the third security attribute (AT3) of the third master device 270 included in the second snoop request (SREQ2) are compared with each other, and according to the comparison result, the security attribute (AT3) included in the second snoop request (SREQ2) is compared. It is possible to determine whether to transmit 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, the master-side filter 250 transfers 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 different from each other. A cache miss may be directly transmitted to the third master device 270 through the cache coherent interconnect 210 without transmission to . 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. can be sent to

제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 상기 어드레스에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.The second master device 240 determines whether an address matching the address transmitted from the master-side filter 250 exists in the internal cache of the second master device 240 and, depending on the result of the determination, a cache miss or cache miss. A hit may be determined, and the determined result may be transmitted 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 necessary for the operation of the controller 200 . For example, the main memory device 300 may be implemented with dynamic random access memory (DRAM).

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

제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타낸다고 가정하고, 제2마스터 장치(240)에 포함된 캐시(244)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 데이터(DATA1, DATA3, DATA4, 및 DATA5)를 저장한다고 가정한다.It is assumed that the second security attribute AT2 of the second master device 240 indicates a security mode, and the cache 244 included in the second master device 240 has respective addresses ADD1, ADD3, ADD4, and ADD5 Assume that data (DATA1, DATA3, DATA4, and DATA5) corresponding to are stored.

도 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 sends a first snoop request (SREQ1) including a first security attribute (AT1) and a first address (ADD=ADD1). may be transmitted to the cache coherent interconnect 210 .

마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다 (S110).The master-side filter 250 may receive the first snoop request SREQ1 including the first security attribute AT1 and the first address ADD1 through 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) (S120). When the first security attribute (AT1) and the second security attribute (AT2) are different (NO in S120), the master-side filter 250 transfers the first address (ADD=ADD1) to the second master device 240. The snoop miss (MISS) may be transmitted to the cache coherent interconnect 210 without being transmitted (S130). A snoop miss (MISS) may mean a cache miss (MISS). Accordingly, the cache miss MISS may be transmitted to the first master device 220 through 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 a 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 indicates 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 indicates a non-secure mode and the second security attribute AT2 of the second master device 240 indicates a secure mode, the master-side filter 250 ) may transmit a snoop miss (MISS) to the cache coherent interconnect 210 without transmitting 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 assigns the first address (ADD=ADD1) to the second master device 240. to the cache controller 242. Accordingly, 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)은 보안 모드를 나타낸다.For example, as shown in case 1 (CASE1) of FIG. 5, the first snoop request SREQ1 includes the first indication bit SMB and the first address ADD=ADD1. The first indication bit SMB indicates that the operation mode of the first master device 220 is a security mode, and the first indication bit SMB indicates the first security attribute AT1. That is, the first security attribute (AT1) of the first master device 220 indicates a 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 the address ADD1 matching the first address ADD=ADD1 exists in the cache 244, that is, when a snoop hit (or cache hit) occurs (YES in S150), the cache controller 242 caches ( 244) and transmits the data DATA1 corresponding to the first address (ADD=ADD1) to the master-side filter 250 (S160). The master-side filter 250 transmits data DATA1 corresponding to the first address ADD=ADD1 to the cache coherent interconnect 210 . Data DATA1 transmitted from the master-side filter 250 may be transmitted to the first master device 220 through the cache coherent interconnect 210 .

예컨대, 도 5의 경우 2(CASE2)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제2지시 비트(SMB)와 제1어드레스(ADD=ADD2)를 포함한다. 제1마스터 장치(220)에 대한 제1보안 속성(AT1)은 보안 모드를 나타낸다.For example, as shown in case 2 (CASE2) of FIG. 5, the first snoop request SREQ1 includes the second indication bit SMB and the first address ADD=ADD2. A first security attribute AT1 for the first master device 220 indicates a 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 ADD=ADD2 does not exist in the cache 244, that is, when a cache miss (or snoop miss) occurs (NO in S150), the cache controller 242 may transmit a snoop miss (MISS) to the master-side filter 250 (S130). The master-side filter 250 forwards snoop misses (MISS) to the cache coherent interconnect 210 . The cache miss (MISS) transmitted from the master-side filter 250 may be transmitted to the first master device 220 through the cache coherent interconnect 210 .

도 5의 경우 2(CASE2)에 따라 스눕 미스(MISS)가 발생할 때, 제1마스터 장치 (220)는 제1어드레스(ADD2)를 포함하는 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 생성한다. 상기 메모리 액세스 요청은 캐시 코히런트 인터커넥트(210)를 통해 슬레이브-사이드 필터(280)로 전송된다. 슬레이브-사이드 필터(280)는 상기 메모리 액세스 요청에 대한 보안 검색을 수행한 후, 제1어드레스(ADD2)를 포함하는 상기 메모리 액세스 요청에 응답하여, 제1어드레스(ADD2)에 해당하는 메모리 영역에 저장된 데이터를 리드한다. 리드된 상기 데이터는 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 전송된다.When a snoop miss (MISS) occurs according to case 2 (CASE2) of FIG. 5, the first master device 220 generates a memory access request (eg, data read request) including the first address ADD2. 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 on the memory access request, and then, in response to the memory access request including the first address ADD2, stores a memory area corresponding to the first address ADD2. Read the stored data. The read data is transmitted to the first master device 220 through 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)를 의미할 수 있다.FIG. 4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG. 1 . 1 to 4, as shown in Table 1 (TABLE1), when the operation mode of the requester (eg, 220 or 270) and the operation mode of the handler (eg, 240) are the same, that is, the security attribute When are equal, the master-side filter 250 may transmit the address included in the snoop request (SREQ1 or SREQ2) transmitted from the requester (eg, 220 or 270) to the cache controller 242. A requester (eg, 220 or 270) may mean a sender, and a handler (eg, 240) may mean a receiver.

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

예컨대, 요청자(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 requestor 220, the two decisions may be performed in sequence. First, the master-side filter 250 performs a security check (or comparison of security attributes AT1 and AT2) on the first snoop request SREQ1 (S120). Second, as a result of the security check, if there is no security issue (or when the security attributes (AT1 and AT2) are the same; YES in S120), the cache controller 242 of the handler (eg 240) ) checks for a cache hit or cache miss (S150).

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

도 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 FIGS. 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 attribute look-up table. Although FIG. 6 shows an embodiment in which the master-side filter 250-1 includes the memory device 254, the memory device 254 may be implemented outside the master-side filter 250-1. there is. According to example embodiments, the memory device 254 may be implemented as static random access memory (SRAM). According to example embodiments, since the memory device 254 may be implemented anywhere inside the controller 200 , 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 security attributes (SM and NSM) of memory areas corresponding to the respective addresses ADD1 , ADD3 , ADD4 , and ADD5 . In this specification, the memory area may mean the whole of the main memory device 300, a part of the whole, and a line (or a line corresponding to a cache line).

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

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

마스터-사이드 필터(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 including the first security attribute AT1 and the first address ADD1 through the cache coherent interconnect 210. It can receive (S210).

결정 로직 회로(252)는 제1보안 속성(AT1)과 제2보안 속성(AT2)을 서로 비교하고 제1어드레스(ADD=ADD1)에 매치되는 어드레스가 메모리 장치(254)에 존재하는지를 판단할 수 있다(S220). 상기 비교와 상기 판단은 순차적으로 또는 병렬적으로 수행될 수 있다.The decision logic circuit 252 may compare the first security attribute AT1 and the second security attribute AT2 with each other and determine whether an address matching the first address ADD=ADD1 exists in the memory device 254. Yes (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 identical 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 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 data DATA1 to the cache coherent interconnect 210 . Data DATA1 transmitted from the master-side filter 250 may be transmitted to the first master device 220 through the cache coherent interconnect 210 .

경우 4(CASE4)와 경우 5(CASE5)를 설명하기 위해, 제2마스터 장치(240)의 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드임을 나타낸다고 가정한다.To describe case 4 (CASE4) and case 5 (CASE5), 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 a security mode.

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

보안 모드를 지시하는 제1보안 속성(AT1)과 상기 보안 모드를 지시하는 제2보안 속성(AT2)은 서로 일치한다. 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타내므로, 제1마스터 장치(220)는 보안 메모리 영역을 액세스할 수 있는 어드레스를 출력해야 한다. 그러나 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타냄에도 불구하고 제1마스터 장치(220)에 의해 액세스될 제1어드레스(ADD=ADD4)은 비-보안 메모리 영역을 지시한다.A first security attribute (AT1) indicating a security mode and a 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 must output an address that can access the secure memory area. However, although the first security attribute (AT1) of the first master device 220 indicates the security mode, the first address (ADD=ADD4) to be accessed by the first master device 220 is a non-secure memory area. instruct

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

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

예컨대, 도 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) of FIG. 10 , the first snoop request SREQ1 includes the sixth indication 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 a 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)의 속성은 서로 일치한다.A first security attribute (AT1) indicating the non-secure mode and a second security attribute (AT2) indicating the non-secure mode coincide with each other. In addition, 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. . Accordingly, the attribute of the first address (ADD=ADD4) included in the first snoop request (SREQ1) and the attribute 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 transmit 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 according to 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) of 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 a 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 indicating the non-secure mode and the second security attribute AT2 indicating the non-secure mode coincide with each other. However, the first security attribute (AT1) included in the first snoop request (SREQ1) indicates a non-secure mode, and the first address (ADD=ADD1) included in the first snoop request (SREQ1) indicates a non-secure memory area. address ADD1 stored in the memory device 254 indicates a secure memory area. Accordingly, the attribute of the first address (ADD=ADD1) included in the first snoop request SREQ1 and the attribute of the address ADD4 stored in the memory device 254 do not match each other. The decision logic circuit 252 does not transmit the first address (ADD=ADD4) included in the first snoop request SREQ1 to the cache controller 242 of the second master device 240 and transmits the snoop miss to the cache coherent interconnect. It is transmitted to (210) (NO of S220 and S230).

도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블의 실시 예이다. 도 6부터 도 8에 도시된 실시 예들을 참조하면, 요청자(220)의 동작 모드와 핸들러(240)의 동작 모드가 서로 일치하고 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)에 해당하는 어드레스가 메모리 장치(254)에 존재할 때, 스눕 히트가 발생한다. 상기 스눕 히트는 캐시 컨트롤러(242)가 결정 로직 회로(252)로부터 출력된 어드레스(ADD)에 해당하는 데이터를 결정 로직 회로 (252)로 전송하는 것은 의미할 수 있다.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. Referring to the embodiments shown in FIGS. 6 to 8 , the operation mode of the requester 220 and the operation mode of the handler 240 match each other and correspond to the address ADD included in the first snoop request SREQ1. When the address is present in the memory device 254, a snoop hit occurs. The snoop hit may mean that the cache controller 242 transmits 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, the operation mode of the requester 220 is the secure mode (SM), the first address ADD included in the first snoop request SREQ1 indicates a secure memory area, and the operation mode of the handler 240 is the secure mode. and a second address matching 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 operation mode of the requester 220 is the secure mode (SM), the first address ADD included in the first snoop request SREQ1 indicates a secure memory area, and the operation mode of the handler 240 is the secure mode, When a third address matching the first address ADD is stored in the memory device 254 and the third address points to a non-secure memory area, a snoop miss occurs. When the snoop miss occurs, the decision logic circuit 252 may block transmission of the first address ADD included in the first snoop request SREQ1 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)로 전송되는 것은 차단할 수 있다.According to embodiments, the decision logic circuit 252 not only determines whether the security attributes of the requester 220 and the security attributes of the handler 240 match, but also determines whether or not the security attributes of the requester 220 match the first snoop request SREQ1 transmitted from the requestor 220. It is determined whether a second address matching the included first address ADD exists in the memory device 254, and according to the determination result, the first address ADD is transmitted to the second master device 240 or the first address ADD is transmitted to the second master device 240. Transmission of the address ADD to the second master device 240 may be blocked.

이 경우, 결정 로직 회로(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 security attributes of the requester 220 and the security attributes of the handler 240 match each other and the second address matches the first address ADD included in the first snoop request SREQ1 transmitted from the requestor 220. When is present in the memory device 254 , the decision logic circuit 252 transmits the first address ADD to the second master device 240 .

실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)의 속성과 메모리 장치(254)에 저장된 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치 (240)로 전송되는 것은 차단할 수 있다. 이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려한다.According to embodiments, the decision logic circuit 252 not only determines whether the security attributes of the requester 220 and the security attributes of the handler 240 match, but also determines whether or not the security attributes of the requester 220 match the first snoop request SREQ1 transmitted from the requestor 220. It is determined whether the included attribute of the first address ADD matches the attribute of the second address stored in the memory device 254, and the first address ADD is transferred to the second master device 240 according to the result of the determination. Transmission or transmission of the first address ADD 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 a 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 embodiment of a third table for explaining the operation of the master-side filter and the second master device shown in FIG. 6 . Referring to the embodiments shown in FIGS. 6, 7, and 9 , 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 1 If the first security attribute (AT1) included in the snoop request (SREQ1) indicates a security mode and the first address (ADD) included in the first snoop request (SREQ1) indicates a secure memory area, a snoop hit may occur. there is. 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 a security mode and the second address stored in the memory device 254 indicates a secure memory area, the first security attribute AT1 included in the first snoop request SREQ1 If the first address ADD, which indicates a secure mode and is 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, the first snoop request SREQ1 includes the second address. 1 If the 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, a snoop hit may occur.

그러나 제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 included in the first snoop request SREQ1 When (AT1) indicates a non-secure mode and the first address (ADD) included in the first snoop request (SREQ1) indicates a secure memory area, a snoop miss may occur.

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

도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다. 도 1과 도 11을 참조하면, 제1마스터 장치(220)는 보안 모드를 수행할 수 있는 소프트웨어(또는 펌웨어; SW)를 실행할 수 있다. 제1마스터 장치(220)에 의해 실행되는 소프트웨어(SW)는 제2마스터 장치(240)의 동작을 제어할 수 있다.11 is a diagram conceptually illustrating operation modes of the second master device shown in FIG. 1 and software operations in each of the operation modes. Referring to FIGS. 1 and 11 , the first master device 220 may execute software (or firmware; SW) capable of performing a security mode. Software (SW) executed by the first master device 220 may 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 for setting the operation mode of the second master device 240 to the security mode to the second controller 230 . The second controller 230 may set the first control signal CTR1 to the SFR 235 . According to the first control signal CTR1 set in the SFR 235, the second security attribute AT2 indicates a security mode.

소프트웨어(SW)는 캐시(244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH1), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 보안 모드로 동작할 수 있다. 제2마스터 장치(240)가 상기 보안 모드로 동작하는 동안에 캐시(244)에는 데이터가 저장될 수 있다.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 may operate in a secure mode under the control of the software (SW). Data may be stored in the cache 244 while the second master device 240 operates in the secure mode.

그 후에, 제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 비-보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR (235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 비-보안 모드를 나타낸다.After that, the first master device 220 may transmit a first control signal CTR1 for setting the operation mode of the second master device 240 to a non-secure mode to the second controller 230 . The second controller 230 may set the first control signal CTR1 to 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 operates in the secure mode. When all data stored in the cache 244 is deleted (CACHE FLUSH2), the second master device 240 may operate in a non-secure mode under the control of the software (SW). Therefore, before (or immediately before) the second master device 240 starts operating in the non-secure mode, all data stored in the cache 244 while operating in the secure mode is deleted, so that the security of the controller 200 This has an enhancing effect.

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

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

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

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is only exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the attached 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 보안 속성을 갖고, 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하는 제 1 마스터 장치;
제 2 보안 속성을 갖는 제 2 마스터 장치; 및
마스터 사이드 필터를 포함하되,
상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 및 상기 마스터 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되고,
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 상기 제 1 스눕 요청을 수신함으로써 스눕 동작을 실행하고, 상기 제 2 보안 속성과, 상기 스눕 요청에 의해 나타나는 상기 제 1 보안 속성을 비교하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정하고, 그리고 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하기로 결정하는 애플리케이션 프로세서.
a first master device that has a first security attribute and transmits a snoop request including a first snoop address and a security attribute indicator indicating the first security attribute;
a second master device having a second security attribute; and
Including a master side filter,
The first master device, the second master device, and the master side filter are connected to each other by a cache coherent interconnect,
The master side filter executes a snoop operation by receiving the first snoop request from the first master device through the cache coherent interconnect, and the second security attribute and the first security attribute indicated by the snoop request , and if the first security attribute and the second security attribute are different from each other, it is determined not to transmit the first snoop address to the second master device, and the first security attribute and the second security attribute are An application processor that determines to transmit the first snoop address to the second master device when they are the same.
제 1 항에 있어서,
상기 제 1 보안 속성은 상기 제 1 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고, 그리고
상기 제 2 보안 속성은 상기 제 2 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내는 애플리케이션 프로세서.
According to claim 1,
the first security attribute indicates a secure mode or a non-secure mode for the first master device; and
The second security attribute indicates a secure mode or a non-secure mode for the second master device.
제 2 항에 있어서,
상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정할 때, 상기 마스터 사이드 필터는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정한 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
According to claim 2,
When determining not to transmit the first snoop address to the second master device, the master side filter transmits a first cache miss to the cache co Application processor transmitting to the first master device through the runt interconnect.
제 3 항에 있어서,
상기 제 2 마스터 장치는:
적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 데이터를 저장하는 캐시; 및
상기 제 1 스눕 어드레스가 상기 마스터 사이드 필터로부터 전송된 경우 상기 적어도 하나의 어드레스를 상기 제 1 스눕 어드레스와 비교하고, 그리고 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스를 식별할 때 상기 일치하는 어드레스에 대응하는 데이터를 상기 마스터 사이드 필터로 전송하고, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없을 때, 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없는 상태를 나타내는 제 2 캐시 미스를 상기 마스터 사이드 필터로 전송하는 캐시 컨트롤러를 포함하는 애플리케이션 프로세서.
According to claim 3,
The second master device:
a cache for storing at least one address and data corresponding to each of the at least one address; and
comparing the at least one address with the first snoop address when the first snoop address is transmitted from the master side filter, and when identifying an address of the at least one address matching the first snoop address; Data corresponding to the matching address is transmitted to the master side filter, and when there is no address matching the first snoop address among the at least one address, a first snoop indicating a state in which there is no address matching the first snoop address. 2 cache miss to the master side filter.
제 4 항에 있어서,
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 캐시 미스, 상기 대응하는 데이터, 또는 상기 제 2 캐시 미스 중 어느 하나를 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
According to claim 4,
wherein the master side filter transmits any one of the first cache miss, the corresponding data, or the second cache miss to the first master device over the cache coherent interconnect.
제 2 항에 있어서,
상기 제 1 마스터 장치는 상기 제 2 마스터 장치가 상기 보안 모드를 종료하고 상기 비-보안 모드로 진입하는 경우, 상기 보안 모드로 동작하는 동안 상기 제 2 마스터 장치의 캐시에 저장된 모든 보안 데이터가 삭제되도록 상기 제 2 마스터 장치의 동작을 더 제어하는 애플리케이션 프로세서.
According to claim 2,
When the first master device exits the secure mode and enters the non-secure mode, the first master device deletes all secure data stored in the cache of the second master device while operating in the secure mode. Application processor for further controlling the operation of the second master device.
제 1 항에 있어서,
상기 제 1 마스터 장치로부터 전송된 제어 신호에 응답하여 상기 제 2 보안 속성을 결정하고, 전송 라인을 이용하여 상기 제 2 보안 속성을 상기 마스터 사이드 필터로 전송하는 컨트롤러를 더 포함하되,
상기 전송 라인은 상기 컨트롤러와 상기 마스터 사이드 필터 사이의 전용 전송 라인인 애플리케이션 프로세서.
According to claim 1,
Further comprising a controller determining the second security attribute in response to a control signal transmitted from the first master device and transmitting the second security attribute to the master side filter using a transmission line;
Wherein the transmission line is a dedicated transmission line between the controller and the master side filter.
제 1 항에 있어서,
상기 마스터 사이드 필터는:
상기 적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 메모리 영역을 저장하는 메모리 장치; 및
상기 메모리 장치와 연결되고, 상기 제 1 보안 속성과 상기 제 2 보안 속성을 비교하고, 그리고 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각을 비교하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.
According to claim 1,
The master side filter is:
a memory device configured to store the at least one address and a memory area corresponding to each of the at least one address; and
and a decision logic circuit connected to the memory device and configured to compare the first security attribute with the second security attribute and to compare the first snoop address with each of the at least one address.
제 8 항에 있어서,
상기 제 1 보안 속성이 상기 제 2 보안 속성과 같고 상기 제 1 스눕 어드레스가 상기 적어도 하나의 어드레스 중 일치하는 어드레스와 같을 때, 상기 결정 로직 회로는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하고, 그리고
상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 다르거나 또는 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각이 서로 다를 때, 상기 결정 로직 회로는 상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 다른 상태 또는 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각이 서로 다른 상태를 나타내는 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 애플리케이션 프로세서.
According to claim 8,
When the first security attribute is equal to the second security attribute and the first snoop address is equal to a matching address of the at least one address, the decision logic circuit transmits the first snoop address to the second master device. doing, and
When the first security attribute is different from the second security attribute or the first snoop address and the at least one address are different from each other, the decision logic circuit determines that the first security attribute is different from the second security attribute. An application processor configured to transmit cache misses indicating different states or states in which the first snoop address and the at least one address are different from each other to the first master device through the cache coherent interconnect.
제 8 항에 있어서,
상기 메모리 장치는 각 메모리 영역에 대해 대응하는 보안 속성을 더 저장하고,
상기 결정 로직 회로는 상기 제 1 보안 속성이 상기 제 2 보안 속성과 같은지 여부, 그리고 상기 제 1 스눕 어드레스에 의해 나타나는 메모리 영역에 대응하는 제 1 보안 속성이 상기 적어도 하나의 어드레스 중 일치하는 어드레스에 의해 나타나는 메모리 영역에 대응하는 제 2 보안 속성과 같은지 여부를 더 결정하고, 그리고 상기 제 1 보안 속성이 상기 제 2 보안 속성과 서로 같은 경우에만 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하는 애플리케이션 프로세서.
According to claim 8,
the memory device further stores a corresponding security attribute for each memory area;
The decision logic circuit determines whether the first security attribute is equal to the second security attribute, and whether the first security attribute corresponding to the memory area indicated by the first snoop address matches one of the at least one address. An application that further determines whether the first security attribute is equal to a second security attribute corresponding to the appearing memory area, and transmits the first snoop address to the second master device only when the first security attribute is equal to the second security attribute. processor.
제 1 항에 있어서,
상기 캐시 코히런트 인터커넥트와 연결되고, 상기 제 1 마스터 장치로부터 수신되는 메모리 액세스 요청에 응답하여 메인 메모리 장치를 액세스하는 슬레이브 사이드 필터를 더 포함하되,
상기 슬레이브 사이드 필터는 상기 마스터 사이드 필터에 의해 실행되는 상기 스눕 동작을 수행하지 못하는 애플리케이션 프로세서.
According to claim 1,
A slave side filter connected to the cache coherent interconnect and accessing a main memory device in response to a memory access request received from the first master device;
The slave side filter cannot perform the snoop operation executed by the master side filter.
제 1 항에 있어서,
상기 제 1 마스터 장치는 CPU이고, 상기 제 2 마스터 장치는 GPU, GPGPU(general purpose computing on GPU), 또는 DSP(digital signal processor)인 애플리케이션 프로세서.
According to claim 1,
Wherein the first master device is a CPU, and the second master device is a GPU, a general purpose computing on GPU (GPGPU), or a digital signal processor (DSP) application processor.
외부의 메인 메모리 장치에 연결되고, 제 1 보안 속성을 갖는 제 1 마스터 장치, 제 2 보안 속성을 갖는 제 2 마스터 장치, 마스터 사이드 필터, 및 슬레이브 사이드 필터를 포함하고, 상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 상기 마스터 사이드 필터, 및 상기 슬레이브 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되는 컨트롤러를 포함하되,
상기 제 1 마스터 장치는 제 1 스눕 어드레스를 나타내는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하고,
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트 및 상기 제 2 마스터 장치 사이에 연결되고, 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 상기 제 1 스눕 요청을 수신함으로써 스눕 동작을 실행하고, 상기 제 2 보안 속성과 상기 스눕 요청에 의해 나타나는 상기 제 1 보안 속성을 비교하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정하고, 그리고 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하기로 결정하고, 그리고
상기 슬레이브 사이드 필터는 상기 캐시 코히런트 인터커넥트와 상기 메인 메모리 장치 사이에 연결되고, 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로부터 수신되는 메모리 액세스에 응답하여 상기 메인 메모리 장치에 대한 메모리 액세스 동작을 수행하는 데이터 처리 시스템.
It is connected to an external main memory device and includes a first master device having a first security attribute, a second master device having a second security attribute, a master side filter, and a slave side filter, wherein the first master device, the A second master device, the master side filter, and the slave side filter include a controller connected to each other by a cache coherent interconnect,
the first master device transmits a snoop request indicating a first snoop address and a security attribute indicator indicating the first security attribute;
The master side filter is coupled between the cache coherent interconnect and the second master device, and executes a snoop operation by receiving the first snoop request from the first master device through the cache coherent interconnect, and 2 Compare the security attribute with the first security attribute indicated by the snoop request, and determine not to transmit the first snoop address to the second master device when the first security attribute and the second security attribute are different from each other and when the first security attribute and the second security attribute are equal to each other, determine to transmit the first snoop address to the second master device, and
The slave side filter is coupled between the cache coherent interconnect and the main memory device, and controls a memory access operation for the main memory device in response to a memory access received from the first master device through the cache coherent interconnect. A data processing system that performs
제 13 항에 있어서,
상기 제 1 보안 속성은 상기 제 1 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고,
상기 제 2 보안 속성은 상기 제 2 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고, 그리고
상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정할 때, 상기 마스터 사이드 필터는 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하지 않기로 결정한 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 데이터 처리 시스템.
According to claim 13,
the first security attribute indicates a secure mode or a non-secure mode for the first master device;
the second security attribute indicates a secure mode or a non-secure mode for the second master device; and
When determining not to transmit the first snoop address to the second master device, the master side filter transmits a first cache miss to the cache co A data processing system for transmitting to the first master device through a runt interconnect.
제 14 항에 있어서,
상기 제 2 마스터 장치는:
적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 데이터를 저장하는 캐시; 및
상기 제 1 스눕 어드레스가 상기 마스터 사이드 필터로부터 전송된 경우 상기 적어도 하나의 어드레스를 상기 제 1 스눕 어드레스와 비교하고, 그리고 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스를 식별할 때 상기 일치하는 어드레스에 대응하는 데이터를 상기 마스터 사이드 필터로 전송하고, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없을 때, 상기 적어도 하나의 어드레스 중 상기 제 1 스눕 어드레스와 일치하는 어드레스가 없는 상태를 나타내는 제 2 캐시 미스를 상기 마스터 사이드 필터로 전송하는 캐시 컨트롤러를 포함하는 데이터 처리 시스템.
15. The method of claim 14,
The second master device:
a cache for storing at least one address and data corresponding to each of the at least one address; and
comparing the at least one address with the first snoop address when the first snoop address is transmitted from the master side filter, and when identifying an address of the at least one address matching the first snoop address; Data corresponding to the matching address is transmitted to the master side filter, and when there is no address matching the first snoop address among the at least one address, an address matching the first snoop address among the at least one address and a cache controller to transmit a second cache miss indicating a state in which there is no error to the master side filter.
제 15 항에 있어서,
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 캐시 미스, 상기 대응하는 데이터, 또는 상기 제 2 캐시 미스 중 어느 하나를 상기 제 1 마스터 장치로 전송하는 데이터 처리 시스템.
According to claim 15,
wherein the master side filter transmits any one of the first cache miss, the corresponding data, or the second cache miss to the first master device over the cache coherent interconnect.
제 14 항에 있어서,
상기 제 1 마스터 장치는 상기 제 2 마스터 장치가 상기 보안 모드를 종료하고 상기 비-보안 모드로 진입하는 경우, 상기 보안 모드로 동작하는 동안 상기 제 2 마스터 장치의 캐시에 저장된 모든 보안 데이터가 삭제되도록 상기 제 2 마스터 장치의 동작을 제어하는 데이터 처리 시스템.
15. The method of claim 14,
When the first master device exits the secure mode and enters the non-secure mode, the first master device deletes all secure data stored in the cache of the second master device while operating in the secure mode. A data processing system for controlling the operation of the second master device.
제 13 항에 있어서,
상기 제 1 마스터 장치로부터 전송된 제어 신호에 응답하여 상기 제 2 보안 속성을 결정하고, 전송 라인을 이용하여 상기 제 2 보안 속성을 상기 마스터 사이드 필터로 전송하는 컨트롤러를 더 포함하되,
상기 전송 라인은 상기 컨트롤러와 상기 마스터 사이드 필터 사이의 전용 전송 라인인 데이터 처리 시스템.
According to claim 13,
Further comprising a controller determining the second security attribute in response to a control signal transmitted from the first master device and transmitting the second security attribute to the master side filter using a transmission line;
The transmission line is a dedicated transmission line between the controller and the master side filter.
제 13 항에 있어서,
상기 마스터 사이드 필터는:
적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 메모리 영역을 저장하는 메모리 장치; 및
상기 메모리 장치와 연결되고, 상기 제 1 보안 속성과 상기 제 2 보안 속성을 비교하고, 그리고 상기 제 1 스눕 어드레스와 상기 적어도 하나의 어드레스 각각을 비교하는 결정 로직 회로를 포함하는 데이터 처리 시스템.
According to claim 13,
The master side filter is:
a memory device configured to store at least one address and a memory area corresponding to each of the at least one address; and
and a decision logic circuit coupled to the memory device to compare the first security attribute and the second security attribute and to compare the first snoop address and each of the at least one address.
제 1 보안 속성을 갖고, 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 전송하는 제 1 마스터 장치, 제 2 보안 속성을 갖는 제 2 마스터 장치, 및 마스터 사이드 필터를 포함하되, 상기 제 1 마스터 장치, 상기 제 2 마스터 장치, 및 상기 마스터 사이드 필터는 캐시 코히런트 인터커넥트에 의해 서로 연결되는 애플리케이션 프로세서의 동작 방법에 있어서,
상기 캐시 코히런트 인터커넥트를 통해 제 1 스눕 어드레스를 포함하는 스눕 요청 및 상기 제 1 보안 속성을 나타내는 보안 속성 표시기를 상기 제 1 마스터 장치로부터 상기 마스터 사이드 필터로 전송하는 단계; 및
상기 마스터 사이드 필터를 이용하여 상기 스눕 요청에 응답하여 스눕 동작을 실행하는 단계를 포함하되,
상기 스눕 동작을 실행하는 단계는:
상기 제 2 보안 속성과 상기 제 1 보안 속성을 비교하는 단계; 및
상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 같은 경우 상기 제 1 스눕 어드레스를 상기 제 2 마스터 장치로 전송하고, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 경우, 상기 제 1 보안 속성과 상기 제 2 보안 속성이 서로 다른 상태를 나타내는 제 1 캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제 1 마스터 장치로 전송하는 단계를 포함하는 동작 방법.
A first master device having a first security attribute and transmitting a snoop request including a first snoop address and a security attribute indicator indicating the first security attribute, a second master device having a second security attribute, and a master side filter In the method of operating an application processor, wherein the first master device, the second master device, and the master side filter are connected to each other by a cache coherent interconnect,
sending a snoop request including a first snoop address and a security attribute indicator indicating the first security attribute from the first master device to the master side filter via the cache coherent interconnect; and
Executing a snoop operation in response to the snoop request using the master side filter;
The step of executing the snoop action is:
comparing the second security attribute with the first security attribute; and
When the first security attribute and the second security attribute are equal to each other, the first snoop address is transmitted to the second master device, and when the first security attribute and the second security attribute are different from each other, the first snoop address is transmitted to the second master device. and transmitting a first cache miss indicating a state in which an attribute and the second security attribute are different from each other to the first master device through the cache coherent interconnect.
KR1020160021651A 2015-07-01 2016-02-24 Cache coherent system including master-side filter and data processing system having the same Active KR102485999B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201610512585.4A CN106326148B (en) 2015-07-01 2016-06-30 Data processing system and method of operation
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
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
TW105120864A TWI724004B (en) 2015-07-01 2016-07-01 Application processor and operating method thereof, and data processing system and operating method thereof

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=57833434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021651A Active 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)

Families Citing this family (1)

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

Citations (1)

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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
FR2820850B1 (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
KR20060037174A (en) * 2004-10-27 2006-05-03 삼성전자주식회사 Snooping device and its method in multi-processing system
US7392351B2 (en) * 2005-03-29 2008-06-24 International Business Machines Corporation Method and apparatus for filtering snoop requests using stream registers
CN104756097B (en) * 2012-10-22 2018-05-15 英特尔公司 consistency protocol table
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit

Patent Citations (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US11036650B2 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
JP6739253B2 (en) Cache coherent system including master side filter and data processing system including the same
CN107436809B (en) data processor
CN114860329B (en) Dynamic consistency bias configuration engine and method
US9563579B2 (en) Method, apparatus, system for representing, specifying and using deadlines
JP6984022B2 (en) Low power management for multi-node systems
US8352656B2 (en) Handling atomic operations for a non-coherent device
US9015436B2 (en) Performing an atomic operation without quiescing an interconnect structure
US9348740B2 (en) Memory access controller, multi-core processor system, memory access control method, and computer product
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
US11275707B2 (en) Multi-core processor and inter-core data forwarding method
CN105874431A (en) Computing system for reducing data exchange load and related data exchange method
KR101695845B1 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
US9448937B1 (en) Cache coherency
KR102485999B1 (en) Cache coherent system including master-side filter and data processing system having the same
KR101110550B1 (en) A shared memory approach for processor units, multiprocessor systems, and multiprocessor systems
US9189296B2 (en) Caching agent for deadlock prevention in a processor by allowing requests that do not deplete available coherence resources
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
US20180181372A1 (en) Electronic devices and operation methods of the same
US20150113221A1 (en) Hybrid input/output write operations
CN115794670A (en) Cache system and management method thereof

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160224

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20210223

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20160224

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220405

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20221010

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230103

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230104

End annual number: 3

Start annual number: 1

PG1601 Publication of registration