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 PDFInfo
- 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
Links
- 230000001427 coherent effect Effects 0.000 title claims abstract description 91
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 5
- 102100034033 Alpha-adducin Human genes 0.000 description 32
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 32
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 32
- 102100031577 High affinity copper uptake protein 1 Human genes 0.000 description 11
- 101710196315 High affinity copper uptake protein 1 Proteins 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 102100024348 Beta-adducin Human genes 0.000 description 7
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 7
- 102100031145 Probable low affinity copper uptake protein 2 Human genes 0.000 description 4
- 101710095010 Probable low affinity copper uptake protein 2 Proteins 0.000 description 4
- 102100034004 Gamma-adducin Human genes 0.000 description 3
- 101000799011 Homo sapiens Gamma-adducin Proteins 0.000 description 3
- 101100322582 Streptomyces coelicolor (strain ATCC BAA-471 / A3(2) / M145) add1 gene Proteins 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- -1 ADD4 Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency 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
본 발명의 개념에 따른 실시 예는 캐시 코히런트 시스템에 관한 것으로, 특히 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템에 관한 것이다.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
데이터 처리 시스템(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
컨트롤러(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
또한, 컨트롤러(200)는 집적 회로(IC), 시스템 온 칩(system on chip(SoC)), 프로세서, 애플리케이션 프로세서, 모바일 애플리케이션 프로세서, 마더보드 (motherboard), 칩셋(chipset), 또는 반도체 칩들의 집합을 의미할 수 있다. 예컨대, 컨트롤러(200)와 메인 메모리 장치(300)는 패키지 온 패키지(package-on-package)로 구현될 수 있다.In addition, the
컨트롤러(200)는 캐시 코히런트 인터커넥트(210), 제1마스터 장치(또는 제1마스터; 220), 제2컨트롤러(또는 제1보안 속성 컨트롤러; 230), 제2마스터 장치(또는 제2마스터; 240), 마스터-사이드 필터(250), 및 슬레이브-사이드 필터(280)를 포함할 수 있다. 실시 예들에 따라, 컨트롤러(200)는 제3컨트롤러(또는 제2보안 속성 컨트롤러; 260)와 제3마스터 장치(또는 제3마스터; 270)를 더 포함할 수 있다.The
마스터-사이드 필터(250)가 캐시 코히런트 인터커넥트(210)와 제2마스터 장치(240) 사이에 연결되고, 보안 체크(security check)가 마스터-사이드 필터(250)에서 수행됨에 따라, 스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)가 감소하는 효과가 있다.As the master-
구성 요소들(220, 230, 250, 260, 270, 및 280)은 캐시 코히런트 인터커넥트 (210)를 통해 신호들을 주거나 받을 수 있다.
제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드 (secure mode) 또는 비-보안 모드(non-secure mode)로 설정하기 위한 제1제어 신호 (CTR1)를 캐시 코히런트 인터커넥트(210)를 통해 제2컨트롤러(230)로 전송할 수 있다. 상기 보안 모드는 보안이 필요한 데이터를 처리할 수 있는 보안 동작 모드를 의미할 수 있고, 상기 비-보안 모드는 보안이 필요하지 않은 데이터를 처리할 수 있는 비-보안 동작 모드를 의미할 수 있으나 이에 한정되는 것은 아니다.The
제1마스터 장치(220)는 CPU로 구현될 수 있다. 예컨대, 제1마스터 장치(220)는 보안 고려(security awareness)를 갖는 마스터 장치일 수 있다. 제1마스터 장치 (220)는 제1보안 속성(AT1)과 어드레스(ADD)를 포함하는 제1스눕 요청(SREQ1)을 생성할 수 있다. 제1보안 속성(AT1)은 제1마스터 장치(220)의 동작 모드가 보안 모드인지 또는 비-보안 모드인지를 나타내는 정보(또는 데이터)를 의미하고, 어드레스 (ADD)는 제1마스터 장치(220)가 액세스하고자 하는 메인 메모리 장치(300)의 메모리 영역을 지시할 수 있다. The
제1마스터 장치(220)는 소프트웨어(222)를 실행할 수 있고, 소프트웨어(222)는 다른 마스터 장치(240 및/또는 270)의 동작을 제어하는데 사용될 수 있다.The
제2컨트롤러(230)는, 제1마스터 장치(220)로부터 출력된 제1제어 신호(CTR1)를 이용하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제1제어 신호 (CTR1)는 제2컨트롤러(230)에 포함된 레지스터(235)에 저장될 수 있다.The
예컨대, 레지스터(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
제2마스터 장치(240)는, SFR(235)에 설정된 제2보안 속성(AT2)에 기초하여, 제2마스터 장치(240)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2마스터 장치(240)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니며, 그 내부에 캐시(cache)를 갖고 있고 메모리 액세스(memory access)가 가능한 마스터들을 모두 포함할 수 있다. 예컨대, 제2마스터 장치(240)는 비-보안 고려(non-security awareness)를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다.The
마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)와 제1마스터 장치(220) 사이에 연결될 수 있다. 본 발명의 실시 예들에 따른 마스터-사이드 필터 (250 또는 250-1)는, 스눕 동작(snoop operation) 또는 캐시 스눕 동작에서, 보안 검색을 수행할 수 있다. 마스터-사이드 필터(250)는 마스터-사이드 보안 필터로 불릴 수 있다.The master-
마스터-사이드 필터(250)가 스눕 동작시에 보안 검색을 수행할 수 있으므로, 마스터-사이드 필터(250)를 포함하는 데이터 처리 시스템(100)은, 모든 스눕 히트(또는 모든 캐시 히트)에 대해 슬레이브-사이드 필터(280)를 이용하여 수행되는 보안 검색에 의존하는 종래의 데이터 처리 시스템과 비교하여, 라이트-백 트래픽 (write-back traffic)과 메모리 리드 요청 트래픽(memory read request traffic)을 제거할 수 있는 효과가 있다.Since the master-
마스터-사이드 필터(250)는 제1마스터 장치(220)로부터 전송된 제1스눕 요청 (SREQ1)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제1스눕 요청(SREQ1)에 포함된 제1마스터 장치(220)의 제1보안 속성(AT1)을 서로 비교하고, 비교의 결과에 따라 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.The master-
예컨대, 마스터-사이드 필터(250)는, 제1보안 속성(AT1)과 제2보안 속성 (AT2)이 서로 다를 때, 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)를 제2마스터 장치(240)로 전송하지 않고 캐시 미스를 캐시 코히런트 인터커넥트(210)를 통해 제1마스터 장치(220)로 바로 전송(또는 리턴)할 수 있다.For example, the master-
그러나 마스터-사이드 필터(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-
제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 어드레스 (ADD)에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.The
마스터-사이드 필터(250)는 스눕 동작에서 일차 보안 검색을 수행한다. 그러나 슬레이브-사이드 필터(280)는 스눕 동작에서 일차 보안 검색을 수행하지 않고, 메인 메모리 장치(300)에 대한 메모리 액세스 요청(예컨대, 데이터 리드 요청)을 처리할 수 있다. 예컨대, 상기 메모리 액세스 요청은 마스터-사이드 필터(250)로부터 전송된 스눕 동작의 결과, 예컨대 캐시 미스에 기초하여 제1마스터 장치(220)에 의해 발생할 수 있다.Master-
비록, 도 1에 도시된 데이터 처리 시스템(100)이 시스템 구성(system configuration)과 다른 목적을 위해 슬레이브-사이드 필터(280)와 메인 메모리 장치(200)를 포함하나, 보안 고려 스눕 동작을 위해서는 캐시 코히런트 인터커넥트 (210)와 마스터-사이드 필터(250)만이 요구된다.Although the
제3컨트롤러(260)는, 제1마스터 장치(220)로부터 출력된 제2제어 신호(CTR2)를 이용하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제2제어 신호(CTR2)는 제3컨트롤러(260)에 포함된 레지스터(265)에 저장될 수 있다. 각 제어 신호(CTR1과 CTR2)는 플래그(flag) 또는 적어도 하나의 비트를 갖는 디지털 신호일 수 있다.The
예컨대, 레지스터(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
제3마스터 장치(270)는, SFR(265)에 설정된 제3보안 속성(AT3)에 기초하여, 제3마스터 장치(270)의 동작 모드를 보안 모드 또는 비-보안 모드로 설정할 수 있다. 제3마스터 장치(270)는 GPU, GPGPU, 또는 DSP로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 제3마스터 장치(270)는 비-보안 고려를 갖는 마스터 장치 또는 보안 고려가 없는 마스터 장치일 수 있다. 예컨대, 제3마스터 장치(270)는 제3보안 속성(AT3)과 어드레스를 포함하는 제2스눕 요청(SREQ2)을 생성할 수 있다.The
마스터-사이드 필터(250)는 제3마스터 장치(270)로부터 전송된 제2스눕 요청 (SREQ2)을 캐시 코히런트 인터커넥트(210)를 통해 수신하고, 제2마스터 장치(240)의 제2보안 속성(AT2)과 제2스눕 요청(SREQ2)에 포함된 제3마스터 장치(270)의 제3보안 속성(AT3)을 서로 비교하고, 비교의 결과에 따라 제2스눕 요청(SREQ2)에 포함된 상기 어드레스를 제2마스터 장치(240)로 전송할지를 결정할 수 있다.The master-
예컨대, 마스터-사이드 필터(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-
제2마스터 장치(240)는 마스터-사이드 필터(250)로부터 전송된 상기 어드레스에 매치되는 어드레스가 제2마스터 장치(240)의 내부 캐시에 존재하는지를 판단하고, 판단의 결과에 따라 캐시 미스 또는 캐시 히트를 결정하고, 결정 결과를 마스터-사이드 필터(250)로 전송할 수 있다.The
메인 메모리 장치(300)는 컨트롤러(200)의 동작에 필요한 펌웨어와 사용자 데이터를 저장할 수 있다. 예컨대, 메인 메모리 장치(300)는 DRAM(dynamic random access memory)로 구현될 수 있다.The
도 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
도 1, 도 2, 도 3, 및 도 5를 참조하면, 제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.Referring to FIGS. 1, 2, 3, and 5, the
마스터-사이드 필터(250)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다 (S110).The master-
마스터-사이드 필터(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-
예컨대, 도 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
제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
제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-
예컨대, 도 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
캐시 컨트롤러(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
예컨대, 도 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
캐시 컨트롤러(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
도 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
도 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-
그러나 요청자(예컨대, 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-
예컨대, 요청자(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-
도 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
메모리 장치(254)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 메모리 영역의 보안 속성(SM과 NSM)을 저장할 수 있다. 본 명세서에서 상기 메모리 영역은 메인 메모리 장치(300)의 전체, 상기 전체의 일부분, 및 라인(또는 캐시 라인에 해당하는 라인)을 의미할 수 있다.The
도 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
마스터-사이드 필터(250-1)의 결정 로직 회로(252)는 캐시 코히런트 인터커넥트(210)를 통해 제1보안 속성(AT1)과 제1어드레스(ADD1)를 포함하는 제1스눕 요청(SREQ1)을 수신할 수 있다(S210).The
결정 로직 회로(252)는 제1보안 속성(AT1)과 제2보안 속성(AT2)을 서로 비교하고 제1어드레스(ADD=ADD1)에 매치되는 어드레스가 메모리 장치(254)에 존재하는지를 판단할 수 있다(S220). 상기 비교와 상기 판단은 순차적으로 또는 병렬적으로 수행될 수 있다.The
제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
경우 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
예컨대, 도 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
제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
예컨대, 도 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
보안 모드를 지시하는 제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
따라서, 결정 로직 회로(252)는 제1어드레스(ADD=ADD1)를 제2마스터 장치 (240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 바로 전송한다(S220의 NO와 S230).Therefore, the
경우 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
예컨대, 도 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
비-보안 모드를 나타내는 제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
결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD4)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송할 수 있다. 캐시 컨트롤러(242)의 동작에 따라 캐시 히트 또는 스눕 히트가 발생한다.The
예컨대, 도 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
비-보안 모드를 나타내는 제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
도 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
예컨대, 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치 (254)에 저장되고 상기 제2어드레스가 보안 메모리 영역을 지시할 때, 스눕 히트가 발생한다.For example, the operation mode of the
그러나 요청자(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
실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하는지를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것은 차단할 수 있다.According to embodiments, the
이 경우, 결정 로직 회로(252)는 제1어드레스(ADD)의 속성과 상기 제2어드레스의 속성의 일치 여부를 고려하지 않는다. 즉, 요청자(220)의 보안 속성과 핸들러 (240)의 보안 속성의 서로 일치하고 요청자(220)로부터 전송된 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하면, 결정 로직 회로(252)는 제1어드레스(ADD)를 제2마스터 장치(240)로 전송한다.In this case, the
실시 예들에 따라, 결정 로직 회로(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
여기서, 어드레스의 속성은 상기 어드레스에 해당하는 메모리 영역이 보안 메모리 영역인지 또는 비-보안 메모리 영역인지를 나타내는 정보(또는 데이터)일 수 있다.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
그러나 제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
다른 예로서, 제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
그러나 제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
도 8에 도시된 실시 예는 요청자(220)와 핸들러(240) 각각의 속성과 어드레스 영역(또는 어드레스)의 속성을 함께 참조하는 방법을 나타내고, 도 9에 도시된 실시 예는 요청자(220)의 속성과 어드레스 영역(또는 어드레스)의 속성을 참조하는 방법은 나타낸다.The embodiment shown in FIG. 8 shows a method of referring to the attributes of each of the
도 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
제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR(235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 보안 모드를 나타낸다.The
소프트웨어(SW)는 캐시(244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH1), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 보안 모드로 동작할 수 있다. 제2마스터 장치(240)가 상기 보안 모드로 동작하는 동안에 캐시(244)에는 데이터가 저장될 수 있다.Software SW may control the
그 후에, 제1마스터 장치(220)는 제2마스터 장치(240)의 동작 모드를 비-보안 모드로 설정하기 위한 제1제어 신호(CTR1)를 제2컨트롤러(230)로 전송할 수 있다. 제2컨트롤러(230)는 제1제어 신호(CTR1)를 SFR(235)에 설정할 수 있다. SFR (235)에 설정된 제1제어 신호(CTR1)에 따라 제2보안 속성(AT2)은 비-보안 모드를 나타낸다.After that, the
소프트웨어(SW)는 제2마스터 장치(240)가 보안 모드로 동작하는 동안에 캐시 (244)에 저장된 모든 데이터를 삭제하기 위해 캐시 컨트롤러(242)를 제어할 수 있다. 캐시(244)에 저장된 모든 데이터가 삭제되면(CACHE FLUSH2), 소프트웨어(SW)의 제어에 따라 제2마스터 장치(240)는 비-보안 모드로 동작할 수 있다. 따라서, 제2마스터 장치(240)가 비-보안 모드로 동작을 시작하기 전(또는 직전)에, 보안 모드로 동작하는 동안에 캐시(244)에 저장된 모든 데이터가 삭제되므로, 컨트롤러(200)의 보안이 향상되는 효과가 있다.The software SW may control the
즉, 보안 동작 모드의 시작(또는 진입)과 상기 보안 동작 모드의 끝(또는 탈출(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
도 1부터 도 11을 참조하여 설명한 바와 같이, 스눕 제어(snoop control)를 위해 마스터-사이드 필터(250)가 컨트롤러(200)에 구현되고, 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)이 슬레이브-사이드 필터(280) 대신에 마스터-사이드 필터(250)에서 수행되므로, 상기 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)을 위해 슬레이브-사이드 필터(280)에 대한 액세스는 더 이상 요구되지 않는다.As described with reference to FIGS. 1 to 11 , the master-
스눕 시간(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
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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)
제 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 마스터 장치에 대한 보안 모드 또는 비-보안 모드를 나타내고, 그리고
상기 제 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.
상기 제 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.
상기 제 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.
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 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.
상기 제 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 마스터 장치로부터 전송된 제어 신호에 응답하여 상기 제 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 보안 속성과 상기 제 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.
상기 제 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.
상기 메모리 장치는 각 메모리 영역에 대해 대응하는 보안 속성을 더 저장하고,
상기 결정 로직 회로는 상기 제 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 마스터 장치로부터 수신되는 메모리 액세스 요청에 응답하여 메인 메모리 장치를 액세스하는 슬레이브 사이드 필터를 더 포함하되,
상기 슬레이브 사이드 필터는 상기 마스터 사이드 필터에 의해 실행되는 상기 스눕 동작을 수행하지 못하는 애플리케이션 프로세서.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 마스터 장치는 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 스눕 어드레스를 나타내는 스눕 요청 및 상기 제 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
상기 제 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.
상기 제 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.
상기 마스터 사이드 필터는 상기 캐시 코히런트 인터커넥트를 통해 상기 제 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.
상기 제 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.
상기 제 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.
상기 마스터 사이드 필터는:
적어도 하나의 어드레스 및 상기 적어도 하나의 어드레스 각각에 대응하는 메모리 영역을 저장하는 메모리 장치; 및
상기 메모리 장치와 연결되고, 상기 제 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 마스터 장치로부터 상기 마스터 사이드 필터로 전송하는 단계; 및
상기 마스터 사이드 필터를 이용하여 상기 스눕 요청에 응답하여 스눕 동작을 실행하는 단계를 포함하되,
상기 스눕 동작을 실행하는 단계는:
상기 제 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.
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)
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)
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)
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 |
-
2016
- 2016-02-24 KR KR1020160021651A patent/KR102485999B1/en active Active
- 2016-07-01 TW TW105120864A patent/TWI724004B/en active
Patent Citations (1)
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 |