KR20170004831A - Cache coherent system including master-side filter and data processing system having the same - Google Patents
Cache coherent system including master-side filter and data processing system having the same Download PDFInfo
- Publication number
- KR20170004831A KR20170004831A KR1020160021651A KR20160021651A KR20170004831A KR 20170004831 A KR20170004831 A KR 20170004831A KR 1020160021651 A KR1020160021651 A KR 1020160021651A KR 20160021651 A KR20160021651 A KR 20160021651A KR 20170004831 A KR20170004831 A KR 20170004831A
- Authority
- KR
- South Korea
- Prior art keywords
- master device
- address
- master
- cache
- security attribute
- Prior art date
Links
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
Abstract
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 for performing security checks and a data processing system including the coherent system.
컴퓨터 과학에서, 캐시 코히런시(cache coherence)는 공유 메모리 시스템에서 클라이언트들(또는 프로세서들) 각각에 포함된 로컬 캐시 사이의 코히런시를 의미한다. 클라이언트들 각각이 자신만의 로컬 캐시를 포함하고, 상기 클라이언트들이 메모리를 공유하고 있을 때, 상기 클라이언트들 중에서 어느 하나의 캐시가 업데이트될 때, 캐시 코히런시 문제가 발생할 수 있다.In computer science, cache coherence refers to coherency between local caches included in each of the clients (or processors) in a shared memory system. A cache coherency problem may occur when each of the clients includes its own local cache and when the cache of any of the clients is updated when the clients are sharing the memory.
상기 캐시 코히런시 문제가 발생하면, 공유 메모리 시스템은 캐시 코히런시를 위한 작동들을 수행하므로, 상기 공유 메모리 시스템이 공유 메모리에 데이터를 라이트할 때 라이트 작동의 레이턴시가 증가할 수 있다.When the cache coherency problem occurs, the shared memory system performs operations for cache coherency, so that the latency of the write operation may increase when the shared memory system writes data to the shared memory.
캐시 코히런트 인터페이스, 상기 캐시 코히런트 인터페이스에 연결된 CPU, 및 상기 캐시 코히런트 인터페이스에 연결된 GPU를 포함하는 종래의 시스템에서, 비-보안 모드에서 동작하는 상기 CPU가 스눕 요청을 상기 GPU로 출력하고, 상기 GPU의 캐시에서 캐시 히트가 발생하면, 상기 캐시에 저장된 캐시 라인(즉 라인 데이터)은 상기 시스템에 연결된 외부 메모리 장치로 라이트-백(write-back) 된다. 상기 라이트-백이 완료된 후, 상기 CPU는 상기 외부 메모리 장치에 라이트-백된 캐시 라인을 리드하기 위한 명령을 상기 외부 메모리 장치를 제어하는 컨트롤러로 전송한다. 따라서, 상기 라이트-백에 관련된 라이트-백 트래픽과 상기 외부 외부 메모리 장치에 저장된 상기 캐시 라인의 읽기에 관련된 메모리 리드 요청 트래픽이 증가한다.In a conventional system comprising a cache coherent interface, a CPU coupled to the cache coherent interface, and a GPU coupled to the cache coherent interface, the CPU operating in non-secure mode outputs a snoop request to the GPU, When a cache hit occurs in the cache of the GPU, the cache line (i.e., line data) stored in the cache is write-back to an external memory device connected to the system. After the write-back is completed, the CPU transmits a command for reading the write-back cache line to the external memory device to the controller for controlling the external memory device. Thus, the write-back traffic related to the write-back and the memory lead request traffic related to the reading of the cache line stored in the external external memory device increase.
본 발명이 이루고자 하는 기술적인 과제는 캐시 효율을 높이기 위해 캐시 코히런트 인터커넥트에 연결된 마스터들 사이에서 스눕 요청을 수행할 경우 보안 체크를 위해 발생하는 부가적인 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거하기 위해 상기 스눕 요청에 대해서 종래의 슬레이브-사이드 필터를 대체하여 상기 보안 체크를 수행하는 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to eliminate additional write-back traffic and memory lead request traffic generated for security checks when a snoop request is made between masters connected to a cache coherent interconnect to increase cache efficiency Side filter for performing the security check by replacing the conventional slave-side filter with respect to the snoop request, and a data processing system including the cache coherent system.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함한다.An application processor according to an embodiment of the present invention includes a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a second coherent interconnect coupled between the cache coherent interconnect and the second master device , Receiving a snoop request transmitted from the first master device via the cache coherent interconnect and transmitting a second security attribute of the second master device and a first security attribute of the first master device included in the snoop request And a master-side filter for determining whether to send the first address included in the snoop request to the second master device according to the comparison result.
상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송한다. 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.Wherein the master-side filter is configured to send the first cache miss to the second master device via the cache coherent interconnect when the first security attribute and the second security attribute are different, To the first master device. Wherein the master-side filter transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other, and wherein each of the first and second security attributes It includes a secure mode and a non-secure mode.
상기 제2마스터 장치는 제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시와, 상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고, 상기 캐시 컨트롤러는 상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송한다.Wherein the second master device comprises a cache for storing data corresponding to the second address and the second address and a cache controller for controlling the operation of the cache, Side filter, and transmits the data stored in the cache to the master-side filter when the first address and the second address coincide with each other, and when the first address and the second address coincide with each other, Side filter, the cache coherent interconnect transmits the first cache miss, the data, or the second cache miss output from the master-side filter to the master-side filter when the first cache miss is different from the first cache miss, To the master device.
상기 애플리케이션 프로세서는 상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러와, 상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함한다.The application processor further comprises a security attribute controller for determining the second security attribute based on a control signal transmitted from the first master device and a transmission line for transmitting the second security attribute to the master- .
실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-sided filter comprises a memory device for storing attributes of a memory area corresponding to a second address and the second address, and a memory device coupled to the memory device, Determines whether or not the attribute matches and whether the first address and the second address coincide with each other, and determines whether to transmit the first address to the second master device according to a result of the determination.
상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.The decision logic circuit transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address, 1 < / RTI > security attribute and the second security attribute do not match or the first address and the second address do not match, the cache coherent interconnect sends a cache miss to the cache coherent interconnect, To the first master device.
실시 예들에 따라, 상기 마스터-사이드 필터는 제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치와, 상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함한다.According to embodiments, the master-sided filter comprises a memory device for storing attributes of a memory area corresponding to a second address and the second address, and a memory device coupled to the memory device, Determining whether or not the attribute of the first address agrees with the attribute of the second address and determining whether to transmit the first address to the second master device according to a result of the determination do.
상기 결정 로직 회로는, 상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송한다.Wherein the decision logic circuit transmits the first address to the second master device when the first security attribute matches the second security attribute and the attribute of the first address matches the attribute of the second address And transmits a cache miss to the cache coherent interconnect when the first security attribute and the second security attribute do not match or the attribute of the first address and the attribute of the second address do not match, The coherent interconnect transmits the cache miss to the first master device.
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는, 상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고, 상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제한다.Wherein the software executed in the first master device and controlling the operation of the second master device comprises software that, when the second master device enters the secure mode from the non-secure mode, And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits the non-secure mode from the secure mode.
상기 애플리케이션 프로세서는 상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고, 상기 마스터-사이드 필터는 스눕 동작을 수행하고, 상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는다.Wherein the application processor further comprises a slave-side filter coupled to the cache coherent interconnect for processing a memory access request of the first master device to a main memory device, the master-side filter performing a snoop operation , The slave-side filter does not perform the snoop operation.
상기 제1마스터 장치는 CPU이고, 상기 제2마스터 장치는 GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 또는 DSP(digital signal processor)이다.The first master device is a CPU and the second master device is a graphics processing unit (GPU), general-purpose computing on graphics processing units (GPGPU), or a digital signal processor (DSP).
본 발명의 실시 예에 따른 데이터 처리 시스템은 애플리케이션 프로세서와 상기 애플리케이션 프로세서에 연결된 외부 메모리 장치를 포함한다. 상기 애플리케이션 프로세서는 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 상기 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.A data processing system according to an embodiment of the present invention includes an application processor and an external memory device connected to the application processor. Wherein the application processor is coupled between a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a second master device coupled between the cache coherent interconnect and the second master device, A master-side filter connected to the cache coherent interconnect and the external memory device for performing a snoop operation in response to a snoop request sent from the first master device, And a slave-side filter that performs a memory access operation to the memory device.
상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정한다.The master-side filter receives the snoop request via the cache coherent interconnect, compares the second security attribute of the second master device with the first security attribute of the first master device included in the snoop request And determines whether to transmit the first address included in the snoop request to the second master device according to the comparison result.
상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고, 상기 마스터-사이드 필터는, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함한다.Wherein the master-side filter is configured to send the first cache miss to the second master device via the cache coherent interconnect when the first security attribute and the second security attribute are different, The master-side filter transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other, and transmits the first security attribute to the first master device, And the second security attribute each include a security mode and a non-secure mode.
본 발명의 실시 예에 따른 캐시 코히런트 시스템은 캐시 코히런트 인터커넥트와, 상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치와, 제2마스터 장치와, 상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터와, 상기 캐시 코히런트 인터커넥트와 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함한다.A cache coherent system according to an embodiment of the present invention includes a cache coherent interconnect, a first master device coupled to the cache coherent interconnect, a second master device, and a cache coherent interconnect between the cache coherent interconnect and the second master device A master-side filter coupled to the cache coherent interconnect and performing a snoop operation in response to a snoop request transmitted from the first master device; and a memory coupled between the cache coherent interconnect and an external memory device, And a slave-side filter for performing a memory access operation to the external memory device in response to an access request.
상기 마스터-사이드 필터는 상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고, 상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 마스터-사이드 필터는 상기 제1어드레스를 상기 제2마스터 장치로 전송한다.The master-side filter receives the snoop request via the cache coherent interconnect, compares the second security attribute of the second master device with the first security attribute of the first master device included in the snoop request And transmits a cache miss to the cache coherent interconnect without transmitting a first address included in the snoop request to the second master device when the first security attribute and the second security attribute are different from each other, 1 < / RTI > security attribute and the second security attribute are equal to each other, the master-side filter transmits the first address to the second master device.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드를 지원하는 데이터 처리 시스템에서 스눕 동작 시에 보안 검색을 위한 라이트-백 트래픽과 메모리 리드 요청 트래픽을 제거할 수 있는 효과가 있다. 상기 마스터-사이드 필터는 풀 캐시 코히런시(full cache coherency)를 관리할 수 있는 효과가 있다.An application processor or cache coherent system including a master-side filter according to an embodiment of the present invention may be used in a data processing system that supports both secure and non-secure modes, It is possible to eliminate the read request traffic. The master-side filter has the effect of managing full cache coherency.
본 발명의 실시 예에 따른 애플리케이션 프로세서 또는 캐시 코히런트 시스템이 캐시 코히런트 네트워크 내에서 내부 캐시를 포함하는 마스터 장치를 포함할 때, 상기 애플리케이션 프로세서 또는 상기 캐시 코히런트 시스템의 오버헤드를 줄이거나 제거할 수 있는 효과가 있다.When an application processor or cache coherent system according to an embodiment of the present invention includes a master device including an internal cache in a cache coherent network, the overhead of the application processor or the cache coherent system may be reduced or eliminated There is an effect that can be.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 캐시-코히런트 인터커넥트를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention is advantageous in that it does not require hardware changes for the cache-coherent interconnect.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 비-보안 고려(non-security awareness or non trustzone awareness)를 갖는 마스터 장치를 위해 하드웨어를 변경하지 않아도 되는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention has the effect of not requiring hardware changes for a master device with non-security awareness or non-trust awareness have.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은, 종래의 솔루션들(solutions)과 비교할 때, 캐시 코히런트 네트워크를 위한 타이밍 오버헤드를 제거할 수 있는 효과가 있다.An application processor or cache coherent system comprising a master-side filter according to an embodiment of the present invention has the effect of eliminating the timing overhead for the cache coherent network when compared to conventional solutions have.
본 발명의 실시 예에 따른 마스터-사이드 필터를 포함하는 애플리케이션 프로세서 또는 캐시 코히런트 시스템은 보안 모드와 비-보안 모드 사이의 변환(또는 스위칭)을 위한 소프트웨어를 실행할 수 있으므로, 보안 결정 로직 회로를 위한 영역 오버헤드(area overhead)를 줄이거나 최소화할 수 있는 효과가 있다.An application processor or cache coherent system comprising a master-sided filter according to an embodiment of the present invention may execute software for conversion (or switching) between secure and non-secure modes, The area overhead can be reduced or minimized.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 3은 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다.
도 5는 도 1의 제1마스터로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이다.
도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 플로우 차트이다.
도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블이다.
도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블이다.
도 10은 도 1의 제1마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.
도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
1 is a block diagram of a data processing system in accordance with an embodiment of the present invention.
2 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG.
FIG. 3 is a flowchart for explaining the operation of the master-side filter and the second master device shown in FIG. 1;
4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG.
5 is a view for explaining the operations of the master-side filter according to the snoop request output from the first master of FIG.
FIG. 6 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1;
7 is a flowchart for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 8 is a second table for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 9 is a third table for explaining the operation of the master-side filter and the second master device shown in FIG.
FIG. 10 is a view for explaining operations of the master-side filter according to the snoop request output from the first master device of FIG.
11 is a diagram conceptually illustrating software operations in the operation modes and the operation modes of the second master device shown in FIG.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200)와 메인 메모리 장치(300)를 포함할 수 있다.1 is a block diagram of a data processing system in accordance with an embodiment of the present invention. Referring to FIG. 1, a
데이터 처리 시스템(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)로 구현될 수 있다.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)를 통해 신호들을 주거나 받을 수 있다.The
제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, 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)을 제거할 수 있는 효과가 있다.The
마스터-사이드 필터(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, when the first security attribute AT1 and the second security attribute AT2 are different from each other, 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)에 의해 발생할 수 있다.The 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, 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, when the first security attribute AT1 and the third security attribute AT3 are different from each other, 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마스터 장치로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.FIG. 2 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1, FIG. 3 illustrates operations of the master-side filter and the second master device shown in FIG. 1 5 is a view for explaining the operations of the master-side filter according to the snoop request output from the first master device of FIG.
제2마스터 장치(240)의 제2보안 속성(AT2)은 보안 모드를 나타낸다고 가정하고, 제2마스터 장치(240)에 포함된 캐시(244)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 데이터(DATA1, DATA3, DATA4, 및 DATA5)를 저장한다고 가정한다.Assume that the second security attribute AT2 of the
도 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)은 보안 모드를 나타낸다.5, a first snoop request SREQ1 includes a first indication bit SMB and a first address ADD = ADD1, as shown in CASE1 in FIG. The first indication bit SMB indicates that the operation mode of the
캐시 컨트롤러(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)은 보안 모드를 나타낸다.5, the first snoop request SREQ1 includes a second indication bit SMB and a first address ADD = ADD2. The first security attribute AT1 for the
캐시 컨트롤러(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)로 전송된다.The
도 4는 도 1에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제1테이블이다. 도 1부터 도 4를 참조하면, 테이블1(TABLE1)에 도시된 바와 같이, 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 동일할 때, 즉 보안 속성들이 동일할 때, 마스터-사이드 필터 (250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송할 수 있다. 요청자(예컨대, 220 또는 270)는 발송자(sender)를 의미할 수 있고, 핸들러(예컨대, 240)는 수신기 (receiver)를 의미할 수 있다.4 is a first table for explaining the operation of the master-side filter and the second master device shown in FIG. 1 to 4, when the operation mode of the requestor (e.g., 220 or 270) and the operation mode of the handler (e.g., 240) are the same as shown in Table 1 (TABLE 1) The master-
그러나 요청자(예컨대, 220 또는 270)의 동작 모드와 핸들러(예컨대, 240)의 동작 모드가 서로 다를 때, 즉 보안 속성들이 일치하지 않을 때, 마스터-사이드 필터(250)는 요청자(예컨대, 220 또는 270)로부터 전송된 스눕 요청(SREQ1 또는 SREQ2)에 포함된 어드레스를 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스(MISS)를 캐시 코히런트 인터커넥트(210)를 통해 요청자(예컨대, 220 또는 270)로 전송할 수 있다.However, when the operating mode of the requestor (e.g., 220 or 270) and the handler (e.g., 240) are different, i.e. when the security attributes do not match, the master- (E.g., 220 or 270) via the cache
예컨대, 요청자(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
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 마스터-사이드 필터와 제2마스터 장치의 블록도이고, 도 7은 도 6에 도시된 마스터-사이드 필터와 제2마스터 로부터 출력된 스눕 요청에 따른 마스터-사이드 필터의 동작들을 설명하기 위한 실시 예들이다.FIG. 6 is a block diagram of a master-side filter and a second master device according to an embodiment of the present invention shown in FIG. 1, FIG. 7 is a block diagram of the master- Are examples for explaining the operations of the master-side filter according to FIG.
도 1, 도 6, 및 도 7을 참조하면, 마스터-사이드 필터(250-1)는 결정 로직 회로(252)와 보안 속성 룩-업 테이블을 저장하는 메모리 장치(254)를 포함할 수 있다. 비록, 도 6에서는 마스터-사이드 필터(250-1)가 메모리 장치(254)를 포함하는 실시 예가 도시되어 있으나, 메모리 장치(254)는 마스터-사이드 필터(250-1)의 외부에 구현될 수 있다. 실시 예들에 따라, 메모리 장치(254)는 SRAM(static random access memory)로 구현될 수 있다. 실시 예들에 따라, 메모리 장치(254)는 컨트롤러(200)의 내부에서 어디라도 구현될 수 있으므로, 메모리 장치(254)는 제2마스터 장치(240)에 포함될 수도 있다.Referring to Figures 1, 6, and 7, the master-side filter 250-1 may include a
메모리 장치(254)는 각 어드레스(ADD1, ADD3, ADD4, 및 ADD5)에 해당하는 메모리 영역의 보안 속성(SM과 NSM)을 저장할 수 있다. 본 명세서에서 상기 메모리 영역은 메인 메모리 장치(300)의 전체, 상기 전체의 일부분, 및 라인(또는 캐시 라인에 해당하는 라인)을 의미할 수 있다.The
도 6에 예시적으로 도시된 바와 같이, 각 어드레스(ADD1과 ADD3)에 해당하는 각 메모리 영역은 보안 모드(SM)에서 액세스 가능한 메모리 영역(예컨대, 보안 메모리 영역)임을 나타낼 수 있다. 또한, 각 어드레스(ADD4와 ADD5)에 해당하는 각 메모리 영역은 비-보안 모드(NSM)에서 액세스 가능한 메모리 영역(예컨대, 비-보안 메모리 영역)임을 나타낼 수 있다.As exemplarily shown in FIG. 6, each memory area corresponding to each of the addresses ADD1 and ADD3 may indicate that it is a memory area accessible in the security mode SM (e.g., a secure memory area). Also, each memory area corresponding to each of the addresses ADD4 and ADD5 may indicate that it is a memory area accessible in the non-secure mode (NSM) (e.g., non-secure memory area).
제1마스터 장치(220)는 제1보안 속성(AT1)과 제1어드레스(ADD=ADD1)를 포함하는 제1스눕 요청(SREQ1)을 캐시 코히런트 인터커넥트(210)로 전송할 수 있다.The
마스터-사이드 필터(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 equal to each other and an address matching the first address ADD = ADD1 exists in the memory device 254 (YES in S220), the
경우 4(CASE4)와 경우 5(CASE5)를 설명하기 위해, 제2마스터 장치(240)의 제2보안 속성(AT2)은 제2마스터 장치(240)의 동작 모드가 보안 모드임을 나타낸다고 가정한다.To illustrate Case 4 (Case 4) and Case 5 (Case 5), it is assumed that the second security attribute AT2 of the
예컨대, 도 10의 경우 4(CASE4)에 도시된 바와 같이, 제1스눕 요청(SREQ1)은 제4지시 비트(SMB)와 제1어드레스(ADD=ADD1)를 포함한다. 제4지시 비트(SMB)는 제1마스터 장치(220)의 동작 모드가 보안 모드임을 지시하고, 제4지시 비트(SMB)는 제1보안 속성(AT1)을 나타낸다. 따라서 제1어드레스(ADD=ADD1)에 해당하는 메모리 영역은 보안 모드(SM)에서 액세스 가능한 보안 메모리 영역이다.10, the first snoop request SREQ1 includes a fourth indication bit SMB and a first address ADD = ADD1. The fourth indication bit SMB indicates that the operation mode of the
제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) in FIG. 10, the first snoop request SREQ1 includes the fifth indication bit SMB and the first address ADD = ADD4. The fifth indication bit SMB indicates that the operation mode of the
보안 모드를 지시하는 제1보안 속성(AT1)과 상기 보안 모드를 지시하는 제2보안 속성(AT2)은 서로 일치한다. 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타내므로, 제1마스터 장치(220)는 보안 메모리 영역을 액세스할 수 있는 어드레스를 출력해야 한다. 그러나 제1마스터 장치(220)의 제1보안 속성(AT1)이 보안 모드를 나타냄에도 불구하고 제1마스터 장치(220)에 의해 액세스될 제1어드레스(ADD=ADD4)은 비-보안 메모리 영역을 지시한다.The first security attribute AT1 indicating the security mode and the second security attribute AT2 indicating the security mode coincide with each other. Since the first security attribute AT1 of the
따라서, 결정 로직 회로(252)는 제1어드레스(ADD=ADD1)를 제2마스터 장치 (240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 바로 전송한다(S220의 NO와 S230).Thus, the
경우 6(CASE6)과 경우 7(CASE7)을 설명하기 위해 제2마스터 장치(240)의 제2보안 속성(AT2)은 비-보안 모드를 나타낸다고 가정한다.Assume 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) in FIG. 10, the first snoop request SREQ1 includes the sixth instruction bit NSMB and the first address ADD = ADD4. The sixth indication bit NSMB indicates that the operation mode of the
비-보안 모드를 나타내는 제1보안 속성(AT1)과 상기 비-보안 모드를 나타내는 제2보안 속성(AT2)은 서로 일치한다. 또한, 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD4)는 비-보안 메모리 영역을 지시하고, 메모리 장치(254)에 저장된 어드레스(ADD4)는 비-보안 메모리 영역을 지시한다. 따라서 제1스눕 요청 (SREQ1)에 포함된 제1어드레스(ADD=ADD4)의 속성과 메모리 장치(254)에 저장된 어드레스(ADD4)의 속성은 서로 일치한다.The first security attribute AT1 indicating the non-secure mode and the second security attribute AT2 indicating the non-secure mode coincide with each other. Also, the first address ADD = ADD4 included in the first snoop request SREQ1 indicates a non-secure memory area and the address ADD4 stored in the
결정 로직 회로(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) in FIG. 10, the first snoop request SREQ1 includes the seventh indication bit NSMB and the first address ADD = ADD1. The seventh indication bit NSMB indicates that the operation mode of the
비-보안 모드를 나타내는 제1보안 속성(AT1)과 비-보안 모드를 나타내는 제2보안 속성(AT2)은 서로 일치한다. 그러나 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)은 비-보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스 (ADD=ADD1)는 비-보안 메모리 영역을 지시하고, 메모리 장치(254)에 저장된 어드레스(ADD1)는 보안 메모리 영역을 지시한다. 따라서 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD1)의 속성과 메모리 장치(254)에 저장된 어드레스(ADD4)의 속성은 서로 일치하지 않는다. 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD=ADD4)를 제2마스터 장치(240)의 캐시 컨트롤러(242)로 전송하지 않고 스눕 미스를 캐시 코히런트 인터커넥트(210)로 전송한다(S220의 NO와 S230).The first security attribute AT1 representing the non-security mode and the second security attribute AT2 representing the non-security mode coincide with each other. However, the first security attribute AT1 included in the first snoop request SREQ1 indicates the non-secure mode and the first address ADD = ADD1 included in the first snoop request SREQ1 indicates the non- And the address ADD1 stored in the
도 8은 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제2테이블의 실시 예이다. 도 6부터 도 8에 도시된 실시 예들을 참조하면, 요청자(220)의 동작 모드와 핸들러(240)의 동작 모드가 서로 일치하고 제1스눕 요청(SREQ1)에 포함된 어드레스(ADD)에 해당하는 어드레스가 메모리 장치(254)에 존재할 때, 스눕 히트가 발생한다. 상기 스눕 히트는 캐시 컨트롤러(242)가 결정 로직 회로(252)로부터 출력된 어드레스(ADD)에 해당하는 데이터를 결정 로직 회로 (252)로 전송하는 것은 의미할 수 있다.FIG. 8 is an embodiment of a second table for explaining the operation of the master-side filter and the second master device shown in FIG. 6 to 8, if the operation mode of the supplicant 220 matches the operation mode of the
예컨대, 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치 (254)에 저장되고 상기 제2어드레스가 보안 메모리 영역을 지시할 때, 스눕 히트가 발생한다.For example, if the operation mode of the supplicant 220 is the security mode SM, the first address ADD included in the first snoop request SREQ1 indicates the secure memory area, and the operation mode of the
그러나 요청자(220)의 동작 모드가 보안 모드(SM)이고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하고, 핸들러(240)의 동작 모드가 보안 모드이고 제1어드레스(ADD)에 매치되는 제3어드레스가 메모리 장치 (254)에 저장되고 상기 제3어드레스가 비-보안 메모리 영역을 지시할 때, 스눕 미스가 발생한다. 상기 스눕 미스가 발생할 때, 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것을 차단할 수 있다. 즉, 결정 로직 회로(252)는 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하지 않는다.However, if the first address ADD included in the first snoop request SREQ1 indicates the secure memory area, the operation mode of the
실시 예들에 따라, 결정 로직 회로(252)는 요청자(220)의 보안 속성과 핸들러(240)의 보안 속성의 일치 여부를 판단할 뿐만 아니라 요청자(220)로부터 전송된 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)에 매치되는 제2어드레스가 메모리 장치(254)에 존재하는지를 판단하고, 판단의 결과에 따라 제1어드레스(ADD)를 제2마스터 장치(240)로 전송하거나 제1어드레스(ADD)가 제2마스터 장치(240)로 전송되는 것은 차단할 수 있다.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어드레스의 속성의 일치 여부를 고려한다.The
여기서, 어드레스의 속성은 상기 어드레스에 해당하는 메모리 영역이 보안 메모리 영역인지 또는 비-보안 메모리 영역인지를 나타내는 정보(또는 데이터)일 수 있다.Here, the attribute of the address may be information (or data) indicating whether the memory area corresponding to the address is a secure memory area or a non-secure memory area.
도 9는 도 6에 도시된 마스터-사이드 필터와 제2마스터 장치의 동작을 설명하기 위한 제3테이블의 실시 예이다. 도 6, 도 7, 및 도 9에 도시된 실시 예들을 참조하면, 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 보안 메모리 영역을 지시하면, 스눕 히트가 발생할 수 있다. 이때, 제1어드레스(ADD1)와 상기 제2어드레스는 동일하다고 가정한다.FIG. 9 is an example of a third table for explaining the operation of the master-side filter and the second master device shown in FIG. 6, 7, and 9, when the second security attribute AT2 indicates a security mode and the second address stored in the
그러나 제2보안 속성(AT2)이 보안 모드를 나타내고 메모리 장치(254)에 저장된 제2어드레스가 보안 메모리 영역을 지시할 때, 제1스눕 요청(SREQ1)에 포함된 제1보안 속성(AT1)이 보안 모드를 나타내고 제1스눕 요청(SREQ1)에 포함된 제1어드레스(ADD)가 비-보안 메모리 영역을 지시하면, 스눕 미스가 발생할 수 있다.However, when the second security attribute AT2 indicates the security mode and the second address stored in the
다른 예로서, 제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 referencing attributes of each of the requestor 220 and the
도 11은 도 1에 도시된 제2마스터 장치의 동작 모드들과 상기 동작 모드들 각각에서의 소프트웨어 동작을 개념적으로 설명하는 도면이다. 도 1과 도 11을 참조하면, 제1마스터 장치(220)는 보안 모드를 수행할 수 있는 소프트웨어(또는 펌웨어; SW)를 실행할 수 있다. 제1마스터 장치(220)에 의해 실행되는 소프트웨어(SW)는 제2마스터 장치(240)의 동작을 제어할 수 있다.11 is a diagram conceptually illustrating software operations in the operation modes and the operation modes of the second master device shown in FIG. Referring to FIGS. 1 and 11, the
제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)에는 데이터가 저장될 수 있다.The 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)은 비-보안 모드를 나타낸다.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, a cache flush operation (CACHE FLUSH1 and CACHE FLUSH2) may be performed at the start (or entry) of the secure operation mode and at the end (or exit) of the secure operation mode. Thus, all data stored in the
도 1부터 도 11을 참조하여 설명한 바와 같이, 스눕 제어(snoop control)를 위해 마스터-사이드 필터(250)가 컨트롤러(200)에 구현되고, 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)이 슬레이브-사이드 필터(280) 대신에 마스터-사이드 필터(250)에서 수행되므로, 상기 스눕 동작(또는 상기 스눕 동작에서 일차 보안 검색)을 위해 슬레이브-사이드 필터(280)에 대한 액세스는 더 이상 요구되지 않는다.As described with reference to FIGS. 1 to 11, a master-
스눕 시간(snoop time) 또는 스눕 레이턴시(snoop latency)는 제1마스터 장치(220)와 제2마스터 장치(240) 사이에서 주고받는 신호만으로 결정될 수 있다. 따라서 마스터-사이드 필터(250)를 포함하는 컨트롤러(200)에서 스눕 동작을 위한 타이밍 오버헤드(timing overhead)는 제거될 수 있다.The snoop time or the snoop latency may be determined only by signals transmitted and received between the
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
100: 데이터 처리 시스템
200: 컨트롤러
210: 캐시 코히런트 인터커넥트
220: 제1마스터 또는 제1마스터 장치
230: 보안 속성 컨트롤러
240: 제2마스터 또는 제2마스터 장치
242: 캐시 컨트롤러
244: 캐시
250, 250-1: 마스터-사이드 필터
252: 결정 로직 회로
254: 메모리 장치
280: 슬레이브-사이드 필터
300: 외부 메모리 장치100: Data processing system
200: controller
210: Cache Coherent Interconnect
220: first master or first master device
230: Security attribute controller
240: second master or second master device
242: Cache controller
244: Cache
250, 250-1: Master-side filter
252: decision logic circuit
254: Memory device
280: Slave-side filter
300: external memory device
Claims (20)
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치; 및
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교의 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 마스터-사이드 필터를 포함하는 애플리케이션 프로세서.Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device; And
And a second master device coupled between the cache coherent interconnect and the second master device for receiving a snoop request from the first master device via the cache coherent interconnect, And a master-side filter for comparing the first security attribute of the first master device included in the request and determining whether to transmit the first address included in the snoop request to the second master device according to a result of the comparison Application processor.
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함하는 애플리케이션 프로세서.The method of claim 1, wherein the master-
Transferring a first cache miss to the first master device via the cache coherent interconnect without transferring the first address to the second master device when the first security attribute and the second security attribute are different ,
When the first security attribute and the second security attribute are equal to each other, transmitting the first address to the second master device,
Wherein the first security attribute and the second security attribute each include a secure mode and a non-secure mode.
제2어드레스와 상기 제2어드레스에 해당하는 데이터를 저장하는 캐시; 및
상기 캐시의 동작을 제어하는 캐시 컨트롤러를 포함하고,
상기 캐시 컨트롤러는,
상기 제2어드레스와 상기 마스터-사이드 필터로부터 전송된 상기 제1어드레스를 서로 비교하고, 상기 제1어드레스와 상기 제2어드레스가 일치할 때 상기 캐시에 저장된 상기 데이터를 상기 마스터-사이드 필터로 전송하고 상기 제1어드레스와 상기 제2어드레스가 다를 때 제2캐시 미스를 상기 마스터-사이드 필터로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 마스터-사이드 필터로부터 출력된 상기 제1캐시 미스, 상기 데이터, 또는 상기 제2캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.3. The apparatus of claim 2, wherein the second master device comprises:
A cache for storing data corresponding to the second address and the second address; And
And a cache controller for controlling the operation of the cache,
The cache controller comprising:
Side filter, comparing the second address with the first address transmitted from the master-side filter, and transmitting the data stored in the cache to the master-side filter when the first address matches the second address A second cache miss is transmitted to the master-side filter when the first address is different from the second address,
Wherein the cache coherent interconnect transmits the first cache miss, the data, or the second cache miss output from the master-side filter to the first master device.
상기 제1마스터 장치로부터 전송된 제어 신호에 기초하여 상기 제2보안 속성을 결정하는 보안 속성 컨트롤러; 및
상기 제2보안 속성을 상기 마스터-사이드 필터로 전송하는 전송 라인을 더 포함하는 애플리케이션 프로세서.The method according to claim 1,
A security attribute controller for determining the second security attribute based on a control signal transmitted from the first master device; And
And a transmission line for transmitting the second security attribute to the master-side filter.
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.The method of claim 1, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute match and whether the first address and the second address match with each other, 2 < / RTI > master device.
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.6. The apparatus of claim 5, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address,
When the first security attribute and the second security attribute do not match or when the first address and the second address do not match, sending a cache miss to the cache coherent interconnect,
Wherein the cache coherent interconnect sends the cache miss to the first master device.
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 애플리케이션 프로세서.The method of claim 1, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute coincide with each other and whether the attribute of the first address matches the attribute of the second address, And a decision logic circuit for determining whether to transfer the address to the second master device.
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스의 속성과 상기 제2어드레스의 속성이 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 애플리케이션 프로세서.8. The apparatus of claim 7, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the attribute of the first address matches the attribute of the second address,
And transmitting a cache miss to the cache coherent interconnect when the first security attribute and the second security attribute do not match or when the attribute of the first address and the attribute of the second address do not match,
Wherein the cache coherent interconnect sends the cache miss to the first master device.
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는,
상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고,
상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제하는 애플리케이션 프로세서.The method according to claim 1,
The software executed in the first master device and controlling the operation of the second master device,
Delete all data stored in the cache included in the second master device when the second master device enters the secure mode from the non-secure mode,
And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits the non-secure mode from the secure mode.
상기 캐시 코히런트 인터커넥트에 연결되고, 메인 메모리 장치에 대한 상기 제1마스터 장치의 메모리 액세스 요청을 처리하는 슬레이브-사이드 필터를 더 포함하고,
상기 마스터-사이드 필터는 스눕 동작을 수행하고,
상기 슬레이브-사이드 필터는 상기 스눕 동작을 수행하지 않는 애플리케이션 프로세서.The method according to claim 1,
Further comprising a slave-side filter coupled to the cache coherent interconnect for processing a memory access request of the first master device to the main memory device,
The master-side filter performs a snoop operation,
Wherein the slave-side filter does not perform the snoop operation.
상기 제1마스터 장치는 CPU이고,
상기 제2마스터 장치는 GPU(graphics processing unit), GPGPU(general-purpose computing on graphics processing units), 또는 DSP(digital signal processor)인 애플리케이션 프로세서.The method according to claim 1,
The first master device is a CPU,
Wherein the second master device is a graphics processing unit (GPU), general purpose computing on graphics processing units (GPGPU), or a digital signal processor (DSP).
상기 애플리케이션 프로세서에 연결된 외부 메모리 장치를 포함하고,
상기 애플리케이션 프로세서는,
캐시 코히런트 인터커넥트;
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치;
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터; 및
상기 캐시 코히런트 인터커넥트와 상기 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함하는 데이터 처리 시스템.An application processor; And
An external memory device coupled to the application processor,
The application processor,
Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device;
A master-side filter connected between the cache coherent interconnect and the second master device, the master-side filter performing a snoop operation in response to a snoop request transmitted from the first master device; And
A slave-side filter coupled between the cache coherent interconnect and the external memory device for performing a memory access operation to the external memory device in response to a memory access request output from the first master device, system.
상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고, 비교 결과에 따라 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 데이터 처리 시스템.13. The method of claim 12, wherein the master-
Receiving a snoop request through the cache coherent interconnect, comparing a second security attribute of the second master device with a first security attribute of the first master device included in the snoop request, And determines whether to transmit the first address included in the snoop request to the second master device.
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 제1캐시 미스를 상기 캐시 코히런트 인터커넥트를 통해 상기 제1마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성 각각은 보안 모드와 비-보안 모드를 포함하는 데이터 처리 시스템.14. The method of claim 13, wherein the master-
Transferring a first cache miss to the first master device via the cache coherent interconnect without transferring the first address to the second master device when the first security attribute and the second security attribute are different ,
When the first security attribute and the second security attribute are equal to each other, transmitting the first address to the second master device,
Wherein the first security attribute and the second security attribute each include a secure mode and a non-secure mode.
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스와 상기 제2어드레스의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 데이터 처리 시스템.13. The method of claim 12, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute match and whether the first address and the second address match with each other, 2 < / RTI > master device.
상기 제1보안 속성과 상기 제2보안 속성이 일치하고 상기 제1어드레스와 상기 제2어드레스가 일치할 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 일치하지 않거나 상기 제1어드레스와 상기 제2어드레스가 일치하지 않을 때, 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 캐시 코히런트 인터커넥트는 상기 캐시 미스를 상기 제1마스터 장치로 전송하는 데이터 처리 시스템.16. The apparatus of claim 15, wherein the decision logic circuit comprises:
And transmits the first address to the second master device when the first security attribute matches the second security attribute and the first address matches the second address,
When the first security attribute and the second security attribute do not match or when the first address and the second address do not match, sending a cache miss to the cache coherent interconnect,
Wherein the cache coherent interconnect transmits the cache miss to the first master device.
제2어드레스와 상기 제2어드레스에 해당하는 메모리 영역의 속성을 저장하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 제1보안 속성과 상기 제2보안 속성의 일치 여부와 상기 제1어드레스의 속성과 상기 제2어드레스의 속성의 일치 여부를 판단하고, 판단의 결과에 따라 상기 제1어드레스를 상기 제2마스터 장치로 전송할지를 결정하는 결정 로직 회로를 포함하는 데이터 처리 시스템.13. The method of claim 12, wherein the master-
A memory device for storing an attribute of a memory area corresponding to a second address and the second address; And
Wherein the memory device is connected to the memory device and determines whether or not the first security attribute and the second security attribute coincide with each other and whether the attribute of the first address matches the attribute of the second address, And a decision logic circuit for determining whether to transfer the address to the second master device.
상기 제1마스터 장치에서 실행되고 상기 제2마스터 장치의 동작을 제어하는 소프트웨어는,
상기 제2마스터 장치가 비-보안 모드로부터 보안 모드로 진입할 때 상기 제2마스터 장치에 포함된 캐시에 저장된 모든 데이터를 삭제하고,
상기 제2마스터 장치가 상기 보안 모드로부터 상기 비-보안 모드로 탈출할 때 상기 제2마스터 장치가 상기 보안 모드에서 동작하는 동안에 상기 캐시에 저장된 모든 데이터를 삭제하는 데이터 처리 시스템.13. The method of claim 12,
The software executed in the first master device and controlling the operation of the second master device,
Delete all data stored in the cache included in the second master device when the second master device enters the secure mode from the non-secure mode,
And deletes all data stored in the cache while the second master device is operating in the secure mode when the second master device exits from the secure mode to the non-secure mode.
상기 캐시 코히런트 인터커넥트에 연결된 제1마스터 장치;
제2마스터 장치;
상기 캐시 코히런트 인터커넥트와 상기 제2마스터 장치 사이에 연결되고, 상기 제1마스터 장치로부터 전송된 스눕 요청에 응답하여 스눕 동작을 수행하는 마스터-사이드 필터; 및
상기 캐시 코히런트 인터커넥트와 외부 메모리 장치 사이에 연결되고, 상기 제1마스터 장치로부터 출력된 메모리 액세스 요청에 응답하여 상기 외부 메모리 장치에 대한 메모리 액세스 동작을 수행하는 슬레이브-사이드 필터를 포함하는 캐시 코히런트 시스템.Cache Coherent Interconnect;
A first master device coupled to the cache coherent interconnect;
A second master device;
A master-side filter connected between the cache coherent interconnect and the second master device, the master-side filter performing a snoop operation in response to a snoop request transmitted from the first master device; And
A slave-side filter coupled between the cache coherent interconnect and an external memory device for performing a memory access operation to the external memory device in response to a memory access request output from the first master device, system.
상기 스눕 요청을 상기 캐시 코히런트 인터커넥트를 통해 수신하고, 상기 제2마스터 장치의 제2보안 속성과 상기 스눕 요청에 포함된 상기 제1마스터 장치의 제1보안 속성을 비교하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 다를 때, 상기 스눕 요청에 포함된 제1어드레스를 상기 제2마스터 장치로 전송하지 않고 캐시 미스를 상기 캐시 코히런트 인터커넥트로 전송하고,
상기 제1보안 속성과 상기 제2보안 속성이 서로 같을 때, 상기 제1어드레스를 상기 제2마스터 장치로 전송하는 캐시 코히런트 시스템.20. The method of claim 19, wherein the master-
Receiving the snoop request via the cache coherent interconnect, comparing a second security attribute of the second master device with a first security attribute of the first master device included in the snoop request,
Transmitting a cache miss to the cache coherent interconnect without sending a first address included in the snoop request to the second master device when the first security attribute and the second security attribute are different,
And transmits the first address to the second master device when the first security attribute and the second security attribute are equal to each other.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016130528A JP6739253B2 (en) | 2015-07-01 | 2016-06-30 | Cache coherent system including master side filter and data processing system including the same |
US15/198,583 US9864687B2 (en) | 2015-07-01 | 2016-06-30 | Cache coherent system including master-side filter and data processing system including same |
CN201610512585.4A CN106326148B (en) | 2015-07-01 | 2016-06-30 | Data processing system and method of operation thereof |
TW105120864A TWI724004B (en) | 2015-07-01 | 2016-07-01 | Application processor and operating method thereof, and data processing system and operating method thereof |
DE102016211986.9A DE102016211986A1 (en) | 2015-07-01 | 2016-07-01 | A cache coherent system comprising a master-side filter and a data processing system including the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562187365P | 2015-07-01 | 2015-07-01 | |
US62/187,365 | 2015-07-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170004831A true KR20170004831A (en) | 2017-01-11 |
KR102485999B1 KR102485999B1 (en) | 2023-01-06 |
Family
ID=57833434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160021651A KR102485999B1 (en) | 2015-07-01 | 2016-02-24 | Cache coherent system including master-side filter and data processing system having the same |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102485999B1 (en) |
TW (1) | TWI724004B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023121925A1 (en) * | 2021-12-21 | 2023-06-29 | Advanced Micro Devices, Inc. | Coherent block read fulfillment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161619A (en) * | 1997-06-30 | 1999-06-18 | Sun Microsyst Inc | Snoop filter for multiprocessor computer system |
KR20060037174A (en) * | 2004-10-27 | 2006-05-03 | 삼성전자주식회사 | Apparatus and method for snooping in multi processing system |
KR20070119653A (en) * | 2005-03-29 | 2007-12-20 | 인터내셔널 비지네스 머신즈 코포레이션 | Method and apparatus for filtering snoop requests using stream registers |
WO2015061731A1 (en) * | 2013-10-27 | 2015-04-30 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2820850B1 (en) * | 2001-02-15 | 2003-05-09 | Bull Sa | CONSISTENCY CONTROLLER FOR MULTIPROCESSOR ASSEMBLY, MODULE AND MULTIPROCESSOR ASSEMBLY WITH MULTIMODULE ARCHITECTURE INCLUDING SUCH A CONTROLLER |
US7434008B2 (en) * | 2004-04-23 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | System and method for coherency filtering |
CN106776364B (en) * | 2012-10-22 | 2020-07-17 | 英特尔公司 | Apparatus, method and system for high performance interconnect physical layer |
US9129071B2 (en) * | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
-
2016
- 2016-02-24 KR KR1020160021651A patent/KR102485999B1/en active IP Right Grant
- 2016-07-01 TW TW105120864A patent/TWI724004B/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161619A (en) * | 1997-06-30 | 1999-06-18 | Sun Microsyst Inc | Snoop filter for multiprocessor computer system |
KR20060037174A (en) * | 2004-10-27 | 2006-05-03 | 삼성전자주식회사 | Apparatus and method for snooping in multi processing system |
KR20070119653A (en) * | 2005-03-29 | 2007-12-20 | 인터내셔널 비지네스 머신즈 코포레이션 | Method and apparatus for filtering snoop requests using stream registers |
WO2015061731A1 (en) * | 2013-10-27 | 2015-04-30 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023121925A1 (en) * | 2021-12-21 | 2023-06-29 | Advanced Micro Devices, Inc. | Coherent block read fulfillment |
US11874783B2 (en) | 2021-12-21 | 2024-01-16 | Advanced Micro Devices, Inc. | Coherent block read fulfillment |
Also Published As
Publication number | Publication date |
---|---|
KR102485999B1 (en) | 2023-01-06 |
TW201717028A (en) | 2017-05-16 |
TWI724004B (en) | 2021-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326148B (en) | Data processing system and method of operation thereof | |
JP4960989B2 (en) | Delete invalidation transaction from snoop filter | |
US8904045B2 (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
US9348740B2 (en) | Memory access controller, multi-core processor system, memory access control method, and computer product | |
US20090006668A1 (en) | Performing direct data transactions with a cache memory | |
JPH10154100A (en) | Information processing system, device and its controlling method | |
CN114860329B (en) | Dynamic consistency bias configuration engine and method | |
US9015436B2 (en) | Performing an atomic operation without quiescing an interconnect structure | |
US20220114098A1 (en) | System, apparatus and methods for performing shared memory operations | |
KR20140098096A (en) | Integrated circuits with cache-coherency | |
KR20110127479A (en) | Multi processor device and inter process communication method thereof | |
US20220114099A1 (en) | System, apparatus and methods for direct data reads from memory | |
US9372795B2 (en) | Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method | |
US20090006777A1 (en) | Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor | |
US8667226B2 (en) | Selective interconnect transaction control for cache coherency maintenance | |
US9448937B1 (en) | Cache coherency | |
KR102485999B1 (en) | Cache coherent system including master-side filter and data processing system having the same | |
US10963409B2 (en) | Interconnect circuitry and a method of operating such interconnect circuitry | |
US11275707B2 (en) | Multi-core processor and inter-core data forwarding method | |
US7757046B2 (en) | Method and apparatus for optimizing line writes in cache coherent systems | |
US20150113221A1 (en) | Hybrid input/output write operations | |
US11874783B2 (en) | Coherent block read fulfillment | |
US10521346B2 (en) | Arithmetic processing apparatus and control method for arithmetic processing apparatus | |
CN115934367A (en) | Buffer processing method, snoop filter, multiprocessor system, and storage medium | |
KR20060037174A (en) | Apparatus and method for snooping in multi processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |