KR20160026599A - Semiconductor device, semiconductor system and system on chip - Google Patents
Semiconductor device, semiconductor system and system on chip Download PDFInfo
- Publication number
- KR20160026599A KR20160026599A KR1020140143553A KR20140143553A KR20160026599A KR 20160026599 A KR20160026599 A KR 20160026599A KR 1020140143553 A KR1020140143553 A KR 1020140143553A KR 20140143553 A KR20140143553 A KR 20140143553A KR 20160026599 A KR20160026599 A KR 20160026599A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory
- cache
- unit
- processor
- Prior art date
Links
Images
Classifications
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/0893—Caches characterised by their organisation or structure
-
- 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
- G06F13/1673—Details of memory controller using buffers
Abstract
Description
본 발명은 반도체 장치, 반도체 시스템 및 시스템 온 칩에 관한 것이다. The present invention relates to a semiconductor device, a semiconductor system, and a system-on-a-chip.
DMA(Direct Memory Access)는, 입출력 장치 제어기가 CPU(Central Processing Unit)에 의한 프로그램의 실행 없이 자료의 이동을 할 수 있도록 한 것을 의미한다. 이 방식에 의해서 입출력 속도를 향상시킬 수 있으며, CPU와 주변 장치간의 속도 차를 줄일 수 있다. 입출력 장치가 DMA를 요구하면 CPU가 주메모리의 제어를 넘겨주게 되는데 CPU는 이 작업을 CPU 사이클이 끝나는 지점마다 허용할 수 있다.DMA (Direct Memory Access) means that an input / output device controller can move data without executing a program by a CPU (Central Processing Unit). With this method, the input / output speed can be improved and the speed difference between the CPU and the peripheral device can be reduced. When an input / output device requests a DMA, the CPU passes control of the main memory, and the CPU can allow this operation every time the CPU cycle ends.
다만, DMA를 내장한 주변 장치 프로세싱 유닛을 이용하여 시스템 메모리의 특정 주소로 최신 데이터를 전송하고자하는 경우, 메모리의 상기 특정 주소로부터 제공받아 캐시(cache)에 저장된 예전 데이터는 유효하지 않기 때문에 먼저 캐시를 무효화(예를 들면, 플러싱(flushing))시키고 난 후 DMA를 시작한다. However, when the latest data is to be transferred to a specific address in the system memory using a peripheral processing unit having a built-in DMA, the old data stored in the cache received from the specific address of the memory is invalid, (E. G., Flushing) the DMA and then starts DMA.
본 발명이 해결하려는 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 반도체 장치를 제공하는 것이다. A problem to be solved by the present invention is to provide a semiconductor device with improved performance by performing a DMA function simultaneously with a cache invalidation (i.e., flushing) process.
본 발명이 해결하려는 다른 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 반도체 시스템을 제공하는 것이다. Another problem to be solved by the present invention is to provide a semiconductor system with improved performance by performing a DMA function simultaneously with a cache invalidation (i.e., flushing) process.
본 발명이 해결하려는 또 다른 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 시스템 온 칩(Systmen on Chip)을 제공하는 것이다. Another problem to be solved by the present invention is to provide a system on chip which improves the performance by performing the DMA function simultaneously with the invalidation (i.e., flushing) of the cache.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 일 실시예는, 메모리에 직접 엑세스하여 상기 메모리의 미리 정한 주소에 제1 데이터를 라이트(write)하는 디엠에이 모듈을 포함하되, 디엠에이 모듈은, 메모리에 제1 데이터를 라이트하기 위한 전송 파라미터를 설정하는 설정 유닛과, 설정된 전송 파라미터를 기반으로 메모리로 전송할 제1 데이터를 생성하는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 생성된 제1 데이터를 라이트하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제2 데이터를 메모리의 미리 정한 주소에 플러싱(flushing)하는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 생성된 제1 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.According to an aspect of the present invention, there is provided a semiconductor device including a DME module for directly accessing a memory and writing first data to a predetermined address of the memory, A setting unit for setting a transfer parameter for writing the first data into the memory; a generation unit for generating first data to be transferred to the memory based on the set transfer parameter; Wherein the setting unit sets the transmission parameter during a period in which the processor flushes the second data stored in the cache to a predetermined address in the memory, The transmission of the generated first data to a predetermined address of the memory is performed after the flushing is completed.
상기 제1 데이터는 제2 데이터와 다른 데이터일 수 있다.The first data may be data different from the second data.
상기 생성 유닛이 제1 데이터를 생성하는 것은, 생성 유닛이 제1 데이터를 외부 장치로부터 제공받거나 직접 생성하는 것을 포함할 수 있다.The generation unit may generate the first data by allowing the generation unit to receive or directly generate the first data from the external device.
상기 생성 유닛은 외부 장치로 리드(read) 동작 또는 라이트(write) 동작을 수행할 수 있다.The generating unit may perform a read operation or a write operation to an external device.
상기 제1 데이터가 저장되는 버퍼를 더 포함할 수 있다.And a buffer in which the first data is stored.
상기 생성 유닛은 제1 데이터를 생성하여 버퍼에 저장할 수 있다.The generating unit may generate and store the first data in a buffer.
상기 전송 유닛은 버퍼에 저장된 제1 데이터를 메모리로 전송할 수 있다.The transmitting unit may transmit the first data stored in the buffer to the memory.
상기 전송 파라미터는, 제1 데이터의 크기 또는 제1 데이터가 저장된 버퍼의 주소 또는 메모리의 미리 정한 주소를 포함할 수 있다.The transmission parameter may include a size of the first data or an address of a buffer where the first data is stored or a predetermined address of the memory.
상기 설정 유닛은, 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.The setting unit can be provided with information relating to transmission parameters from the processor and information relating to flushing of the cache.
상기 전송 유닛은, 설정 유닛으로부터 캐시의 플러싱과 관련된 정보를 제공받아 캐시가 플러싱되는 구간 동안 비활성화될 수 있다.The transfer unit may be deactivated during a period in which the cache is flushed by receiving information related to flushing of the cache from the setting unit.
상기 전송 유닛은 캐시의 플러싱이 완료된 후 활성화될 수 있다.The transmission unit can be activated after the flushing of the cache is completed.
상기 전송 유닛은 프로세서로부터 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.The sending unit may be provided with information relating to flushing of the cache from the processor.
상기 전송 유닛은 캐시로부터 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.The sending unit may be provided with information related to flushing of the cache from the cache.
상기 프로세서는 CPU(central processing unit)를 포함할 수 있다.The processor may include a central processing unit (CPU).
상기 메모리는 DRAM을 포함할 수 있다.The memory may comprise a DRAM.
상기 생성 유닛이 제1 데이터를 생성하는 것은 설정 유닛이 전송 파라미터를 설정하는 것이 완료된 후 시작될 수 있다.The generation unit may generate the first data after the setting unit has completed setting the transmission parameter.
상기 생성 유닛이 제1 데이터를 생성하는 것은 캐시가 플러싱되는 구간 동안 수행될 수 있다.The generation unit may generate the first data during the interval during which the cache is flushed.
상기 전송 유닛이 메모리의 미리 정한 주소에 생성된 제1 데이터를 전송하는 것은, 생성 유닛이 제1 데이터를 생성하는 것이 완료된 후 시작될 수 있다.The transmitting unit may transmit the generated first data to a predetermined address of the memory after the generating unit is finished generating the first data.
상기 전송 유닛은, 메모리로 리드(read) 동작 또는 라이트(write) 동작을 수행할 수 있다.The transmission unit may perform a read operation or a write operation to the memory.
상기 제1 데이터가 저장되는 버퍼를 더 포함하되, 제1 데이터는 제3 및 제4 데이터를 포함하고, 생성 유닛은 제3 데이터를 생성하여 버퍼에 저장하는 제1 생성 동작과 제2 데이터를 생성하여 버퍼에 저장하는 제2 생성 동작을 수행하고, 생성 유닛은 제1 생성 동작을 완료한 후 제2 생성 동작을 수행할 수 있다.And a buffer for storing the first data, wherein the first data includes third and fourth data, and the generating unit generates a third data by generating and storing the third data in a buffer, And stores it in a buffer, and the generating unit can perform the second generating operation after completing the first generating operation.
상기 미리 정한 주소는 제1 주소와 제2 주소를 포함하고, 전송 유닛은 제3 데이터를 제1 주소로 전송하는 제1 전송 동작과 제4 데이터를 제2 주소로 전송하는 제2 전송 동작을 수행하고, 전송 유닛은 제1 전송 동작을 완료한 후 제2 전송 동작을 수행하고, 제1 전송 동작은 제2 생성 동작이 수행되는 구간 동안 수행될 수 있다.The predetermined address includes a first address and a second address, and the transmission unit performs a first transmission operation for transmitting the third data to the first address and a second transmission operation for transmitting the fourth data to the second address The transmission unit performs the second transmission operation after completing the first transmission operation, and the first transmission operation can be performed during the interval in which the second generation operation is performed.
상기 제1 생성 동작은 캐시가 플러싱되는 구간 동안 수행되고, 제2 생성 동작은 캐시의 플러싱이 완료된 후 수행될 수 있다.The first generating operation may be performed during a period in which the cache is flushed, and the second generating operation may be performed after the flushing of the cache is completed.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 다른 실시예는, 메모리로 직접 엑세스하는 디엠에이 모듈; 및 메모리에 전송할 제1 및 제2 데이터를 저장하는 버퍼를 포함하되, 디엠에이 모듈은, 메모리에 제1 및 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 데이터를 생성하여 버퍼에 저장하는 제1 생성 동작과 제2 데이터를 생성하여 버퍼에 저장하는 제2 생성 동작을 순차적으로 수행하는 생성 유닛과, 전송 파라미터를 기반으로 버퍼에 저장된 제1 데이터를 메모리의 제1 주소로 전송하는 제1 전송 동작과 버퍼에 저장된 제2 데이터를 메모리의 제2 주소로 전송하는 제2 전송 동작을 순차적으로 수행하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제3 데이터를 제1 주소에 플러싱(flushing)하는 구간 동안 수행되고, 제1 생성 동작은 캐시가 플러싱되는 구간 동안 수행되고, 제2 생성 동작은 캐시의 플러싱이 완료된 후 수행되고, 제1 전송 동작은 캐시의 플러싱이 완료된 후 제2 생성 동작이 수행되는 구간 동안 수행된다.According to another aspect of the present invention, there is provided a semiconductor device comprising: a DME module for directly accessing a memory; And a buffer for storing first and second data to be transferred to the memory, wherein the DMA module comprises: a setting unit for setting transfer parameters for transferring the first and second data to and from the memory; A generation unit that sequentially performs a first generation operation of generating 1 data and storing the data in a buffer and a second generation operation of generating a second data and storing the second data in a buffer, And a second transmission operation for sequentially transmitting the first data to the first address of the memory and the second data stored in the buffer to the second address of the memory, wherein the setting unit sets transmission parameters Is performed during a period in which the processor flushes the third data stored in the cache to the first address, and the first generating operation is performed during a period in which the cache is flushed The second generating operation is performed after the flushing of the cache is completed, and the first transmitting operation is performed during the period in which the second generating operation is performed after the flushing of the cache is completed.
상기 생성 유닛은, 설정 유닛이 전송 파라미터를 설정하는 것을 완료한 후 제1 생성 동작을 수행할 수 있다.The generating unit may perform the first generating operation after the setting unit has completed setting the transmission parameter.
상기 제2 전송 동작은 제2 생성 동작이 완료된 후 수행될 수 있다.The second transmission operation may be performed after the second generation operation is completed.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 일 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및 제1 데이터와 다른 제2 데이터를 생성하여 메모리의 미리 정한 주소에 전송하는 제2 프로세서를 포함하되, 제2 프로세서는, 생성된 제2 데이터를 저장하는 버퍼와, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 전송 파라미터를 기반으로 버퍼에 저장된 제2 데이터를 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고, 디엠에이 모듈이 전송 파라미터를 설정하는 것은 제1 프로세서가 캐시에 저장된 제1 데이터를 미리 정한 주소에 플러싱하는 구간 동안 수행되고, 디엠에이 모듈이 제2 데이터를 미리 정한 주소에 전송하는 것은, 플러싱이 완료된 후 수행된다.According to another aspect of the present invention, there is provided a semiconductor system comprising: a cache connected to a memory via a bus; A first processor for flushing the first data stored in the cache to a predetermined address in the memory; And a second processor for generating second data different from the first data and transmitting the second data to a predetermined address of the memory, wherein the second processor comprises: a buffer for storing the generated second data; And a DMA module for setting a transmission parameter for transmitting the second data stored in the buffer to a predetermined address based on the transmission parameter, wherein the DMA module sets the transmission parameter in such a manner that the first processor is stored in the cache Flushing the first data to a predetermined address, and the DMA module transmits the second data to the predetermined address after the flushing is completed.
상기 제1 프로세서는, 캐시로 리드(read) 또는 라이트(write) 동작을 수행할 수 있다.The first processor may perform a read operation or a write operation to the cache.
상기 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 메모리로 전송할 제2 데이터를 생성하는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함할 수 있다.The DME module includes a setting unit for setting a transfer parameter for transferring second data to a memory, a generation unit for generating second data to be transferred to the memory based on the transfer parameter, And a transmission unit for transmitting the second data to the determined address.
상기 설정 유닛은, 제1 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.The setting unit can be provided with information relating to transmission parameters from the first processor and information relating to flushing of the cache.
상기 제1 및 제2 프로세서는 버스를 통해서 서로 연결될 수 있다.The first and second processors may be connected to each other via a bus.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 다른 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및 제1 데이터와 다른 제2 데이터를 생성하여 버스를 통해서 메모리의 미리 정한 주소에 전송하는 제2 프로세서를 포함하되, 제2 프로세서는, 제2 데이터를 저장하는 버퍼와, 버퍼에 저장된 제2 데이터를 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 제1 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받는 설정 유닛과, 전송 파라미터를 기반으로 메모리로 전송할 제2 데이터를 생성하여 버퍼에 저장하는 생성 유닛과, 전송 파라미터를 기반으로 버퍼에 저장된 제2 데이터를 메모리의 미리 정한 주소에 전송하는 전송 유닛을 포함하고, 설정 유닛이 전송 파라미터를 설정하는 것은, 캐시가 플러싱(flushing)되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.According to another aspect of the present invention, there is provided a semiconductor system comprising: a cache connected to a memory via a bus; A first processor for flushing the first data stored in the cache to a predetermined address in the memory; And a second processor for generating second data different from the first data and transmitting the generated second data to a predetermined address of the memory via the bus, wherein the second processor comprises: a buffer for storing the second data; Wherein the DMA module sets transfer parameters for transferring the second data to the memory and transfers information relating to the transfer parameter from the first processor and information relating to the flushing of the cache A generation unit for generating second data to be transmitted to the memory based on the transmission parameter and storing the second data in a buffer based on the transmission parameter and a transmission unit for transmitting the second data stored in the buffer to a predetermined address in the memory based on the transmission parameter, Unit, and the setting unit sets the transmission parameter is the number of times during which the cache is flushing. And, sending unit to send the second data to a predetermined address in memory, is carried out after flushing is complete.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 또 다른 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되, 제2 프로세서는 제2 데이터를 생성하여 제1 버퍼에 저장하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 버퍼에 저장된 제2 데이터를 제공받는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은 캐시가 플러싱되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.According to another aspect of the present invention, there is provided a semiconductor system comprising: a cache connected to a memory via a bus; A first processor for flushing the first data stored in the cache to a predetermined address in the memory; A second processor including a first buffer for storing second data different from the first data; And a third processor including a DME module for directly accessing the memory, wherein the second processor generates and stores the second data in a first buffer, the DME module comprising: A generating unit receiving second data stored in the first buffer based on the transmission parameter, and a transmitting unit transmitting the second data to a predetermined address of the memory based on the transmission parameter However, the setting unit sets transmission parameters during the period in which the cache is flushed, and the transmitting unit transmits the second data to the predetermined address in the memory after the flushing is completed.
상기 설정 유닛은, 제1 프로세서로부터 전송 파라미터 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.The setting unit can be provided with information relating to transmission parameters and flushing of the cache from the first processor.
상기 제3 프로세서는, 제공받은 제2 데이터를 저장하는 제2 버퍼를 더 포함할 수 있다.The third processor may further include a second buffer for storing the second data received.
상기 생성 유닛은, 제1 버퍼로부터 제공받은 데이터를 제2 버퍼에 저장할 수 있다.The generating unit may store the data provided from the first buffer in the second buffer.
상기 전송 유닛은, 제2 버퍼에 저장된 데이터를 메모리의 미리 정한 주소에 전송할 수 있다.The transmission unit may transmit the data stored in the second buffer to a predetermined address in the memory.
상기 생성 유닛이 제2 데이터를 제공받는 것은 설정 유닛이 전송 파라미터를 설정하는 것이 완료된 후 시작될 수 있다.The receiving of the second data by the generating unit can be started after the setting unit has completed setting the transmission parameters.
상기 제2 프로세서가 제2 데이터를 생성하여 제1 버퍼에 저장하는 것은, 캐시가 플러싱되는 구간 동안 수행될 수 있다.The second processor may generate the second data and store the second data in the first buffer during the interval during which the cache is flushed.
상기 생성 유닛이 제2 데이터를 제공받는 것은 캐시가 플러싱되는 구간 동안 수행될 수 있다.The receiving of the second data by the generating unit may be performed during a period in which the cache is flushed.
상기 전송 유닛이 제2 데이터를 미리 정한 주소에 전송하는 것은, 생성 유닛이 제2 데이터를 제공받는 것이 완료된 후 시작될 수 있다.The transmitting unit may transmit the second data to a predetermined address after the generating unit is finished receiving the second data.
상기 제1 내지 제3 프로세서는 버스를 통해서 서로 연결될 수 있다.The first to third processors may be connected to each other via a bus.
상기 제3 프로세서는, 설정 유닛으로부터 전송 파라미터를 제공받고, 전송 파라미터를 기반으로 제2 데이터를 생성할 수 있다. The third processor may receive the transmission parameter from the setting unit and generate the second data based on the transmission parameter.
상기 또 다른 과제를 해결하기 위한 본 발명의 시스템 온 칩의 일 실시예는, 메모리; 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되, 메모리와 제1 내지 제3 프로세서는 AXI(AMBA Advanced eXtensible Interface) 프로토콜을 따르는 버스를 통해서 서로 연결되고, 제2 프로세서는 제2 데이터를 생성하여 제1 버퍼에 저장하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 버퍼에 저장된 제2 데이터를 제공받는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은 캐시가 플러싱되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.According to another aspect of the present invention, there is provided a system-on-chip comprising: a memory; A cache associated with memory; A first processor for flushing the first data stored in the cache to a predetermined address in the memory; A second processor including a first buffer for storing second data different from the first data; And a third processor including a DME module for directly accessing the memory, wherein the memory and the first to third processors are connected to each other via a bus conforming to the AMBI Advanced Extensible Interface (AXI) protocol, 2 data and stores the data in the first buffer. The DME module includes a setting unit for setting a transmission parameter for transmitting the second data to the memory, and a setting unit for providing second data stored in the first buffer based on the transmission parameter And a transmission unit for transmitting the second data to a predetermined address of the memory based on the transmission parameter, wherein the setting unit sets transmission parameters for a period during which the cache is flushed, The transmission of the second data to the predetermined address of the second memory is performed after the flushing is completed.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하는 블록도이다.
도 2는 도 1의 디엠에이 모듈을 설명하기 위한 블록도이다.
도 3 및 도 4는 도 1의 반도체 장치의 동작을 설명하기 위한 개략도들이다.
도 5는 본 발명의 일 실시예에 따른 반도체 시스템을 설명하는 블록도이다.
도 6은 도 5의 제2 프로세서를 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 실시예에 따른 반도체 시스템을 설명하는 블록도이다.
도 8은 도 7의 제2 및 제3 프로세서를 설명하기 위한 블록도이다.
도 9는 시스템 온 칩(System on chip)으로 구현된 도 7의 반도체 시스템을 설명하는 도면이다.
도 10 내지 도 12는 본 발명의 몇몇 실시예에 따른 반도체 시스템을 적용할 수 있는 예시적인 전자 시스템들이다.
도 13 및 도 14는 도 1의 반도체 장치의 동작 방법을 설명하는 도면들이다.
도 15 및 도 16은 도 5의 반도체 시스템의 동작 방법을 설명하는 도면들이다.
도 17 및 도 18은 도 7의 반도체 시스템의 동작 방법을 설명하는 도면들이다. 1 is a block diagram illustrating a semiconductor device according to an embodiment of the present invention.
2 is a block diagram for explaining the DME module of FIG.
3 and 4 are schematic views for explaining the operation of the semiconductor device of FIG.
5 is a block diagram illustrating a semiconductor system according to one embodiment of the present invention.
FIG. 6 is a block diagram illustrating the second processor of FIG. 5. FIG.
7 is a block diagram illustrating a semiconductor system according to another embodiment of the present invention.
8 is a block diagram illustrating the second and third processors of FIG.
Figure 9 is a diagram illustrating the semiconductor system of Figure 7 implemented as a system on chip.
10 through 12 are exemplary electronic systems to which a semiconductor system according to some embodiments of the present invention may be applied.
13 and 14 are views for explaining a method of operating the semiconductor device of FIG.
FIGS. 15 and 16 are views for explaining a method of operating the semiconductor system of FIG.
17 and 18 are views for explaining a method of operating the semiconductor system of FIG.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. The dimensions and relative sizes of the components shown in the figures may be exaggerated for clarity of description. Like reference numerals refer to like elements throughout the specification and "and / or" include each and every combination of one or more of the mentioned items.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.It is to be understood that when an element or layer is referred to as being "on" or " on "of another element or layer, All included. On the other hand, a device being referred to as "directly on" or "directly above " indicates that no other device or layer is interposed in between.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.The terms spatially relative, "below", "beneath", "lower", "above", "upper" May be used to readily describe a device or a relationship of components to other devices or components. Spatially relative terms should be understood to include, in addition to the orientation shown in the drawings, terms that include different orientations of the device during use or operation. For example, when inverting an element shown in the figures, an element described as "below" or "beneath" of another element may be placed "above" another element. Thus, the exemplary term "below" can include both downward and upward directions. The elements can also be oriented in different directions, so that spatially relative terms can be interpreted according to orientation.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms " comprises "and / or" comprising "used in the specification do not exclude the presence or addition of one or more other elements in addition to the stated element.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various elements or components, it is needless to say that these elements or components are not limited by these terms. These terms are used only to distinguish one element or component from another. Therefore, it is needless to say that the first element or the constituent element mentioned below may be the second element or constituent element within the technical spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.
이하에서, 도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 반도체 장치에 대해 설명한다. Hereinafter, a semiconductor device according to an embodiment of the present invention will be described with reference to FIGS. 1 to 4. FIG.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하는 블록도이다. 도 2는 도 1의 디엠에이 모듈을 설명하기 위한 블록도이다. 도 3 및 도 4는 도 1의 반도체 장치의 동작을 설명하기 위한 개략도들이다.1 is a block diagram illustrating a semiconductor device according to an embodiment of the present invention. 2 is a block diagram for explaining the DME module of FIG. 3 and 4 are schematic views for explaining the operation of the semiconductor device of FIG.
이하에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다. The term "sub-unit" or "module" as used herein refers to a hardware component such as software or an FPGA or ASIC, and a sub-unit or module performs certain roles. However, " part " or " module " is not meant to be limited to software or hardware. The term " part " or " module " may be configured to reside on an addressable storage medium and configured to play one or more processors. Thus, by way of example, 'a' or 'module' is intended to be broadly interpreted as encompassing any type of process, including features such as software components, object-oriented software components, class components and task components, Microcode, circuitry, data, databases, data structures, tables, arrays, and variables, as used herein, Or " modules " or " modules " or " modules " or " modules " Can be further separated.
도 1을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(100)는 디엠에이 모듈(110)과 버퍼(160)를 포함할 수 있다.Referring to FIG. 1, a
디엠에이 모듈(110)은 메모리(200)에 직접 엑세스(access)할 수 있다.The
구체적으로, 디엠에이 모듈(110)은 데이터를 직접 생성하거나 외부 장치로부터 제공받아 버퍼(160)에 저장할 수 있고, 버퍼(160)에 저장된 데이터를 메모리(200)에 전송할 수 있다.Specifically, the
또한 디엠에이 모듈(110)은 메모리(200)에 리드(read) 또는 라이트(write) 동작을 수행할 수 있다. The
버퍼(160)는 디엠에이 모듈(110)에 의해 제공받은 데이터를 저장할 수 있다. 여기에서, 디엠에이 모듈(110)이 데이터 전송시 버스(미도시)를 차지하지 못하는 경우가 발생할 수도 있는바, 디엠에이 모듈(110)이 성능 저하 없이 원활하게 동작할 수 있도록 충분한 크기의 버퍼(160)가 확보되는 것이 바람직하다. The
구체적으로, 버퍼(160)는, 디엠에이 모듈(110)이 한번에 메모리(200)로 전송할 수 있는 데이터의 최대량 보다 큰 여유 공간을 가지는 것이 바람직하다. More specifically, the
추가적으로, 메모리(200)는 예를 들어, DRAM을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 메모리(200)는 일반 데이터를 저장하는 데이터 영역과 스페어 영역을 포함할 수 있다. 메모리(200)의 영역들 각각은 복수의 메모리 블록들로 구성될 수 있다. 이러한 메모리(200)의 상세 구성은 본 기술분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있는바, 자세한 설명은 생략하도록 한다.In addition, the
도 2를 참조하면, 디엠에이 모듈(110)은 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)을 포함할 수 있다. Referring to FIG. 2, the
설정 유닛(115)은 메모리(200)에 제1 데이터를 라이트하기 위한 전송 파라미터(DP)를 설정할 수 있다.The
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 전송 파라미터(DP)와 관련된 정보(DP.I)를 제공받아, 전송 파라미터(DP)를 설정할 수 있다. 여기에서 전송 파라미터(DP)는 예를 들어, 메모리(200)로 전송하고자 하는 제1 데이터의 크기, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 버퍼(160)의 주소, 제1 데이터를 전송하고자 하는 메모리(200)의 미리 정한 주소를 포함할 수 있으나, 이에 한정되는 것은 아니다. 제1 데이터는 메모리(200)에 전송하고자하는 데이터이다.Specifically, the
여기에서, 프로세서(250)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 제1 데이터는 메모리(200)의 미리 정한 주소에 저장하고자 하는 최신 데이터를 포함할 수 있다. Here, the
설정 유닛(115)은 프로세서(250)로부터 전송 파라미터와 관련된 정보(DP.I) 뿐만 아니라 캐시의 무효화(이하에서는, 플러싱이라고 함)와 관련된 정보(CI.I)도 제공받을 수 있으며, 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 전송 파라미터(DP)의 설정 동작을 시작할 수 있다. 즉, 전송 파라미터(DP)는 프로세서(250)로부터 제공받은 전송 파라미터와 관련된 정보(DP.I)를 기반으로 설정되고, 이러한 설정 동작의 시작 시점은 프로세서(250)로부터 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 결정될 수 있다.The
여기에서, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 설정 유닛(115)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 보다 구체적으로, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 먼저 설정 유닛(115)으로 제공된 후, 설정 유닛(115)에서 전송 유닛(125)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 설정 유닛(115)을 거치지 않고 바로 전송 유닛(125)으로 제공될 수도 있고, 캐시(300)의 플러싱이 시작되면, 캐시(300)는 자체적으로 캐시의 플러싱과 관련된 정보(CI.I)를 생성하여, 전송 유닛(125)으로 제공할 수도 있다. 다만, 설명의 편의를 위해 프로세서(250)로부터 설정 유닛(115)으로 캐시의 플러싱과 관련된 정보(CI.I)가 제공되는 것을 예로 들어 설명하도록 한다. Here, information (CI.I) related to the flushing of the cache is shown to be provided from the
설정 유닛(115)이 전송 파라미터(DP)를 설정하는 것은, 프로세서(250)가 캐시(300)에 저장된 제2 데이터를 메모리(200)의 미리 정한 주소에 플러싱하는 동안 수행될 수 있다. 여기에서, 제2 데이터는 예전 데이터(즉, 업데이트 되지 않은 데이터)로써, 최신 데이터인 제1 데이터와 다른 데이터일 수 있다. 또한 프로세서(250)는 캐시(300)를 플러싱하는 동작 이외에도 캐시(300)로 리드 또는 라이트 동작을 수행할 수 있다.The
설정 유닛(115)은 설정된 전송 파라미터(DP)를 생성 유닛(120)과 전송 유닛(125)으로 제공할 수 있다. 또한 설정 유닛(115)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(125)에 제공할 수 있는바, 이에 대한 구체적인 설명은 후술하도록 한다. The
생성 유닛(120)은 설정된 전송 파라미터(DP)를 기반으로 메모리(200)로 전송할 제1 데이터를 생성할 수 있다.The generating
구체적으로, 생성 유닛(120)은 설정 유닛(115)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 제1 데이터를 생성할 수 있다. 여기에서, 생성 유닛(120)이 데이터를 생성한다는 것은, 생성 유닛(120)이 데이터를 외부 장치(350)로부터 제공받거나(리드하거나) 직접 생성하는 것을 포함할 수 있다. 또한 생성 유닛(120)은 생성한 제1 데이터를 버퍼(160)에 저장(라이트)할 수 있다. Specifically, the generating
여기에서, 외부 장치(350)는 예를 들어, MMC(Multi-Media Card)를 포함할 수 있으나, 이에 한정되는 것은 아니다. Here, the
즉, 생성 유닛(120)은 전송 파라미터(DP)에서 가리키는 데이터의 크기에 맞추어서 제1 데이터를 생성하고, 생성한 제1 데이터를 전송 파라미터(DP)에서 가리키는 버퍼(160)의 주소에 저장할 수 있다.That is, the generating
생성 유닛(120)은 외부 장치(350)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 생성 유닛(120)은 제1 데이터를 생성하기 위해 외부 장치(350)로부터 제1 데이터를 제공받을 수도 있다고 하였는바, 생성 유닛(120)은 이와 같은 리드 동작 이외에 외부 장치(350)로 데이터를 라이트하는 동작도 수행할 수 있다.The
전송 유닛(125)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 라이트할 수 있다.The
구체적으로, 전송 유닛(125)은 설정 유닛(115)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다. 여기에서, 전송 유닛(125)은 버퍼(160)에 저장된 제1 데이터를 메모리(200)로 전송할 수 있다.Specifically, the
즉, 전송 유닛(125)은 전송 파라미터(DP)에서 가리키는 버퍼(160)의 주소에 저장된 제1 데이터를 리드하여, 전송 파라미터(DP)에서 가리키는 메모리(200)의 미리 정한 주소로 제1 데이터를 전송(라이트)할 수 있다.That is, the
전송 유닛(125)이 메모리(200)의 미리 정한 주소에 제1 데이터를 전송하는 것은, 캐시(300)의 플러싱이 완료된 후 수행될 수 있다. The
또한 전송 유닛(125)은 설정 유닛(115)으로부터 캐시(300)의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 시작된다는 정보)를 제공받아 캐시(300)가 플러싱되는 구간 동안 비활성화될 수 있다. 여기에서, 전송 유닛(125)이 비활성화되는 시점은 캐시(300)의 플러싱이 시작되기 전 또는 시작과 동시 또는 시작된 후 모두 가능하다. The
캐시(300)의 플러싱이 완료된 후에, 전송 유닛(125)은 설정 유닛(115)으로부터 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 완료되었다는 정보)를 제공받아 활성화될 수 있다. After the flushing of the
전송 유닛(125)은 메모리(200)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 전송 유닛(125)은 제1 데이터를 메모리(200)의 미리 정한 주소로 전송할 수 있다고 하였는바, 전송 유닛(125)은 이와 같은 라이트 동작 이외에 메모리(200)로부터 데이터를 리드하는 동작도 수행할 수 있다.The
도 2 및 도 3을 참조하면, 디엠에이 모듈의 동작이 캐시의 무효화(즉, 플러싱)가 완료된 후 시작되는 모습이 도시되어 있다. 도 3은, 본 발명의 일 실시예에 따른 반도체 장치(100)가 적용되지 않은 케이스이다. Referring to FIGS. 2 and 3, the operation of the DMA module is shown after the invalidation (i.e., flush) of the cache is completed. 3 is a case in which the
즉, 프로세서가 캐시를 플러싱하는 구간(Cache Invalidation)(시간 t1~t2)에서는 디엠에이 모듈의 동작이 블로킹될 수 있다. 이는 캐시를 플러싱하는 구간(시간 t1~t2) 동안 디엠에이 모듈의 동작이 블로킹되지 않는다면, 캐시가 플러싱되는 메모리의 주소와 디엠에이 모듈이 데이터를 전송하고자 하는 메모리의 주소가 동일한 경우, 디엠에이 모듈이 전송하고자하는 데이터가 최신 데이터인데도 불구하고, 캐시에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)될 수도 있기 때문이다. That is, the operation of the DMA module may be blocked during a period in which the processor flushes the cache (Cache Invalidation) (time t1 to t2). If the operation of the DMA module is not blocked during the period (time t1 to t2) during which the cache is flushed, if the address of the memory where the cache is flushed and the address of the memory to which the DMA module transmits data is the same, (I.e., un-updated data or old data) may be overwritten on the latest data even though the data to be transmitted is the latest data.
이에 따라, 캐시를 플러싱하는 구간(시간 t1~t2)에서는 디엠에이 모듈의 동작이 블로킹되고, 캐시의 플러싱이 완료된 시간 t2에서부터는 디엠에이 모듈의 초기 설정 작업(Initial Setup)(즉, 설정 유닛이 전송 파라미터를 설정하는 것)이 시작될 수 있다. Accordingly, the operation of the DMA module is blocked during the period (time t1 to t2) during which the cache is flushed, and the initial setup of the DMA module (Initial Setup) Transmission parameter setting) can be started.
디엠에이 모듈의 초기 설정 작업이 시간 t3에 완료되면, 시간 t3에서부터는 제1 데이터의 생성 작업(Data Creation1)(즉, 생성 유닛이 제1 데이터를 생성하는 것)이 시작될 수 있다. When the initial setting operation of the DME module is completed at the time t3, a data creation operation (Data Creation 1) (i.e., the generation unit generates the first data) can be started from the time t3.
또한 시간 t4에서 제1 데이터의 생성 작업이 완료되면, 시간 t4에서부터는 제2 데이터의 생성 작업(Data Creation2)(즉, 생성 유닛이 제1 데이터와 다른 최신 데이터인 제2 데이터를 생성하는 것)과 제1 데이터의 전송 작업(Data transfer 1)(즉, 전송 유닛이 제1 데이터를 메모리로 전송하는 것)이 동시에 시작될 수 있다. 즉, 디엠에이 모듈의 전송 유닛의 동작과 생성 유닛의 동작은 파이프라인(pipeline)될 수 있다.At the time t4, when the generation of the first data is completed, the generation of the second data (Data Creation 2) from the time t4 (i.e., the generation unit generates the second data which is the latest data different from the first data) And data transfer 1 of the first data (i.e., the transfer unit transfers the first data to the memory) can be started at the same time. That is, the operation of the transmission unit of the DME module and the operation of the generation unit can be pipelined.
이어서, 시간 t5에서 제2 데이터의 생성 작업과 제1 데이터의 전송 작업이 완료되면, 시간 t5에서 제2 데이터의 전송 작업(Data transfer 2)(즉, 전송 유닛이 제2 데이터를 메모리로 전송하는 것)이 시작될 수 있다.Subsequently, when the generation of the second data and the transfer of the first data are completed at the time t5, the transfer of the second data (Data transfer 2) (i.e., the transfer unit transfers the second data to the memory Can be started.
여기에서, 제2 데이터가 전송되는 메모리의 주소는 제1 데이터가 전송되는 메모리의 주소와 다를 수 있다.Here, the address of the memory to which the second data is transmitted may be different from the address of the memory to which the first data is transmitted.
이와 같이 도 3의 경우, 캐시에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)되는 것을 방지할 수 있지만, 캐시의 플러싱 시간만큼 디엠에이 모듈의 수행 시간이 늦춰진다는 점에서 전체적인 성능 저하 문제를 야기할 수 있다.3, it is possible to prevent the data flushed by the cache (i.e., the un-updated data or the old data) from being overwritten on the latest data. However, The execution time is slowed down, which may lead to a total performance degradation problem.
한편, 도 2 및 도 4를 참조하면, 디엠에이 모듈의 동작이 캐시의 무효화(즉, 플러싱)와 동시에 시작되는 모습이 도시되어 있다. 도 3은, 본 발명의 일 실시예에 따른 반도체 장치(100)가 적용된 케이스이다. On the other hand, referring to FIGS. 2 and 4, the operation of the DMA module starts at the same time as invalidation (i.e., flushing) of the cache. 3 is a case to which the
앞서 설명한 도 3과의 차이점을 중심으로 설명하도록 한다.The difference from the above-described FIG. 3 will be mainly described.
즉, 프로세서(250)가 캐시(300)를 플러싱하는 구간(Cache Invalidation)(시간 t1~t2)에서 도 3과 달리, 디엠에이 모듈(110)의 동작이 블로킹되지 않는다는 것을 알 수 있다. That is, unlike FIG. 3, it can be seen that the operation of the
구체적으로, 시간 t1에서 캐시(300)의 플러싱이 시작됨과 동시에, 디엠에이 모듈(110)의 전송 유닛(125)이 비활성화(Data transfer Disable)될 수 있다. 물론, 디엠에이 모듈(110)의 전송 유닛(125)이 비활성화되는 시점은 앞서 설명한 바와 같이, 캐시(300)의 플러싱이 시작되기 전 또는 시작과 동시에 또는 시작된 후 모두 가능하지만, 설명의 편의를 위해 도 4에서는, 캐시(300)의 플러싱이 시작됨과 동시에 진행되는 것으로 설명하기로 한다.Concretely, at the time t1, the flushing of the
여기에서, 전송 유닛(125)의 비활성화 구간은 시간 t4 즉, 캐시(300)의 플러싱이 완료되는 시점까지 지속될 수 있다. 이는 캐시(300)에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)되는 것을 방지하기 위해서이다.Here, the inactivation period of the
캐시(300)의 플러싱이 시작된 시간 t1보다 조금 경과된 시간 t2에서 디엠에이 모듈(110)의 초기 설정 작업(Initial Setup)(즉, 설정 유닛(115)이 전송 파라미터(DP)를 설정하는 것)이 시작될 수 있다. The initial setting operation (initial setting) of the DMA module 110 (that is, the
즉, 디엠에이 모듈(110)의 동작이 캐시(300)가 플러싱되는 구간동안 수행될 수 있다. 이에 따라, 앞서 설명한 도 4와 달리, 캐시(300)의 플러싱 시간만큼 디엠에이 모듈의 수행 시간이 늦춰짐으로써 발생하는 전체적인 성능 저하 문제를 방지할 수 있다. 다시 말하자면, 도 4에서 보다 캐시(300)의 플러싱 시간만큼 디엠에이 모듈(110)의 수행 시간을 앞당김으로써 전체적인 성능을 향상시킬 수 있다.That is, the operation of the
디엠에이 모듈(110)의 초기 설정 작업이 시간 t3에 완료되면, 시간 t3에서부터는 제1 데이터의 생성 작업(Data Creation1)(즉, 생성 유닛이 제1 데이터를 생성하는 것)이 시작될 수 있다. 여기에서, 제1 데이터의 생성 작업은 캐시(300)의 플러싱 구간과 파이프라인 될 수 있다. When the initial setting operation of the
구체적으로, 제1 데이터의 생성 작업은 캐시(300)의 플러싱 구간 중 시작되어(즉, 시간 t1에서 시간 t4 사이에 시작되어), 캐시의 플러싱 구간이 종료되기 전 또는 종료와 동시에 또는 종료된 후 종료될 수 있다. Specifically, the generation of the first data is started during the flushing interval of the cache 300 (i.e., starting from time t1 to time t4), before or after the end of the flushing interval of the cache, Can be terminated.
또한 시간 t4에서 캐시(300)의 플러싱이 완료되면, 시간 t4 이후부터는 디엠에이 모듈(110)의 전송 유닛(125)이 활성화(Data transfer Enable)될 수 있다. 이에 따라, 제1 데이터의 생성 작업이 시간 t5에서 완료되면, 시간 t5에서부터는 제2 데이터의 생성 작업(Data Creation2)(즉, 생성 유닛(120)이 제1 데이터와 다른 최신 데이터인 제2 데이터를 생성하는 것)과 제1 데이터의 전송 작업(Data transfer 1)(즉, 전송 유닛(125)이 제1 데이터를 메모리(200)로 전송하는 것)이 동시에 시작될 수 있다. When the flushing of the
즉, 디엠에이 모듈(110)의 전송 유닛(125)의 동작과 생성 유닛(120)의 동작은 파이프라인(pipeline)될 수 있다. That is, the operation of the
이어서, 시간 t6에서 제2 데이터의 생성 작업과 제1 데이터의 전송 작업이 완료되면, 시간 t6에서 제2 데이터의 전송 작업(Data transfer 2)(즉, 전송 유닛(125)이 제2 데이터를 메모리(200)로 전송하는 것)이 시작될 수 있다.Subsequently, at the time t6, when the generation of the second data and the transfer of the first data are completed, the transfer of the second data (Data transfer 2) (i.e., the
본 발명의 일 실시예에 따른 반도체 장치(100)는, 전송 유닛(125)의 비활성화 구간을 캐시(300)의 플러싱이 완료되는 시점까지 유지함으로써, 캐시(300)에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트되는 것을 방지할 수 있고, 캐시(300)의 플러싱 시간만큼 디엠에이 모듈(110)의 수행 시간을 앞당김으로써 전체적인 성능을 향상시킬 수 있다.The
또한 본 발명의 몇몇 실시예에서, 이러한 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)은 하드웨어 형태로 구현되고 있지만, 본 발명이 이에 한정되는 것은 아니다. 즉, 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)은 소프트웨어 형태로 구현되어 디엠에이 모듈(110)에 코드(code) 형태로 저장될 수 있다.Further, in some embodiments of the present invention, the
이하에서는, 도 5 및 도 6을 참조하여, 본 발명의 일 실시예에 따른 반도체 시스템에 대해 설명하도록 한다. 앞서 설명한 도 1 및 도 2의 내용과 중복되는 내용은 생략하도록 한다. Hereinafter, a semiconductor system according to an embodiment of the present invention will be described with reference to FIG. 5 and FIG. The contents overlapping with those of FIGS. 1 and 2 described above will be omitted.
도 5는 본 발명의 일 실시예에 따른 반도체 시스템을 설명하는 블록도이다. 도 6은 도 5의 제2 프로세서를 설명하기 위한 블록도이다.5 is a block diagram illustrating a semiconductor system according to one embodiment of the present invention. FIG. 6 is a block diagram illustrating the second processor of FIG. 5. FIG.
도 5를 참조하면, 본 발명의 일 실시예에 따른 반도체 시스템(400)은 제1 프로세서(410), 캐시(420), 제2 프로세서(430), 버스(470)를 포함할 수 있다.5, a
제1 프로세서(410)는 캐시(420)에 저장된 데이터(예를 들면, 예전 데이터, 즉, 업데이트 되지 않은 데이터)를 메모리(200)의 미리 정한 주소에 플러싱할 수 있다.The
구체적으로, 제1 프로세서(410)는 캐시(420)를 플러싱하는 동작 이외에도 캐시(420)로 리드 또는 라이트 동작을 수행할 수 있다. 또한 제1 프로세서(410)는 제2 프로세서(430)로 전송 파라미터(DP)와 관련된 정보 및 캐시(420)의 플러싱과 관련된 정보를 제공할 수 있다. In particular, the
여기에서, 제1 프로세서(410)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있고, 메모리(200)는 DRAM을 포함할 수 있는바, 이에 한정되는 것은 아니다. Here, the
캐시(420)는 제1 프로세서(410)에 의해 플러싱될 수 있다.The
구체적으로, 캐시(420)는 제1 프로세서(410)에 의해 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. 또한 캐시(420)는 버스(470)를 통해서 메모리(200)와 연결될 수 있다.Specifically, the
제2 프로세서(430)는 캐시(420)에 저장된 데이터와 다른 데이터(최신 데이터)를 생성하여 메모리(200)의 미리 정한 주소에 전송할 수 있다. The
여기에서, 제2 프로세서(430)는 내부적으로 데이터를 직접 생성하거나 외부 장치(350)로부터 제공받을 수 있다.Here, the
버스(470)는 제1 프로세서(410), 제2 프로세서(430), 캐시(420)를 서로 연결시켜줄 뿐만 아니라, 반도체 시스템(400)과 메모리(200)를 연결시킬 수 있다. The
구체적으로, 제1 프로세서(410)가 제2 프로세서(430)로 전송 파라미터(DP)와 관련된 정보 및 캐시(420)의 플러싱과 관련된 정보를 제공하는 것, 캐시(420)가 메모리(200)의 미리 저장된 주소로 플러싱되는 것, 제2 프로세서(430)가 메모리(200)의 미리 저장된 주소로 데이터를 전송하는 것 모두 버스(470)를 통해서 이루어질 수 있다.Specifically, the
추가적으로, 도 5에서는, 반도체 시스템(400)이 제1 프로세서(410), 캐시(420), 제2 프로세서(430), 버스(470)를 포함하는 것으로 도시되었지만, 이에 한정되는 것은 아니다. 즉, 반도체 시스템(400)은 메모리(200)와 외부 장치(350)도 포함할 수 있다.5,
도 6을 참조하면, 제2 프로세서(430)는 디엠에이 모듈(440)과 버퍼(450)를 포함할 수 있다. 여기에서, 제2 프로세서(430)는 도 2의 반도체 장치(100)일 수 있다. Referring to FIG. 6, the
따라서, 디엠에이 모듈(440)은 메모리(200)에 버스(470)를 통해서 직접 엑세스할 수 있다.Accordingly, the
구체적으로, 디엠에이 모듈(440)은 메모리(200)에 데이터를 전송하기 위한 전송 파라미터(DP)를 설정하고, 전송 파라미터(DP)를 기반으로 메모리(200)에 전송하고자 하는 데이터를 생성하여 버퍼(450)에 저장할 수 있다. 또한 디엠에이 모듈(440)은 버퍼(450)에 저장된 데이터를 메모리(200)의 미리 정한 주소에 전송할 수 있다. 여기에서, 디엠에이 모듈(440)은 메모리(200)에 전송하고자 하는 데이터를 내부적으로 직접 생성하거나 외부 장치(350)로부터 제공받을 수 있다.Specifically, the
또한 앞서 설명한 바와 같이, 디엠에이 모듈(440)은 설정 유닛(442), 생성 유닛(445), 전송 유닛(447)을 포함할 수 있는바, 이에 대한 구체적인 설명은 생략하도록 한다. Also, as described above, the
추가적으로, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(410)에서 제2 프로세서(430)(예를 들면, 제2 프로세서(430)의 설정 유닛(442))으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 보다 구체적으로, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(410)에서 먼저 설정 유닛(442)으로 제공된 후, 설정 유닛(442)에서 전송 유닛(447)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(410)에서 설정 유닛(442)을 거치지 않고 버스(470)를 통해 바로 전송 유닛(447)으로 제공될 수도 있고, 캐시(420)의 플러싱이 시작되면, 캐시(420)는 자체적으로 캐시의 플러싱과 관련된 정보(CI.I)를 생성하여, 버스(470)를 통해 전송 유닛(447)으로 제공할 수도 있다. In addition, information (CI.I) related to flushing the cache is provided to the second processor 430 (e.g., the
이하에서는, 도 7 및 도 8을 참조하여, 본 발명의 다른 실시예에 따른 반도체 시스템에 대해 설명하도록 한다. 앞서 설명한 실시예들의 내용과 중복되는 내용은 생략하도록 한다. Hereinafter, a semiconductor system according to another embodiment of the present invention will be described with reference to FIGS. 7 and 8. FIG. The contents overlapping with those of the above-described embodiments will be omitted.
도 7은 본 발명의 다른 실시예에 따른 반도체 시스템을 설명하는 블록도이다. 도 8은 도 7의 제2 및 제3 프로세서를 설명하기 위한 블록도이다.7 is a block diagram illustrating a semiconductor system according to another embodiment of the present invention. 8 is a block diagram illustrating the second and third processors of FIG.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 반도체 시스템(500)은 제1 프로세서(510), 캐시(520), 제2 프로세서(530), 제3 프로세서(580), 버스(595)를 포함할 수 있다.7, a
제1 프로세서(510)는 캐시(520)에 저장된 데이터(예를 들면, 예전 데이터, 즉, 업데이트 되지 않은 데이터)를 메모리(200)의 미리 정한 주소에 플러싱할 수 있다.The
구체적으로, 제1 프로세서(510)는 캐시(520)를 플러싱하는 동작 이외에도 캐시(520)로 리드 또는 라이트 동작을 수행할 수 있다. 또한 제1 프로세서(510)는 제2 프로세서(530)로 전송 파라미터(DP)와 관련된 정보 및 캐시(520)의 플러싱과 관련된 정보를 제공할 수 있다. Specifically, the
여기에서, 제1 프로세서(510)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있고, 메모리(200)는 DRAM을 포함할 수 있는바, 이에 한정되는 것은 아니다. Herein, the
캐시(520)는 제1 프로세서(510)에 의해 플러싱될 수 있다.The
구체적으로, 캐시(520)는 제1 프로세서(510)에 의해 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. 또한 캐시(520)는 버스(595)를 통해서 메모리(200)와 연결될 수 있다.Specifically, the
제2 프로세서(530)는 캐시(520)에 저장된 데이터와 다른 데이터(최신 데이터)를 메모리(200)의 미리 정한 주소에 전송할 수 있다. The
여기에서, 제2 프로세서(530)는 제3 프로세서(580)에 저장된 데이터를 제공받아(즉, 리드하여) 메모리(200)에 전송할 수 있다. Here, the
제3 프로세서(580)는 외부 장치(350)로부터 메모리(200)에 전송하고자 하는 데이터를 제공받아 저장할 수 있다. The
버스(595)는 제1 프로세서(510), 제2 프로세서(530), 제3 프로세서(580), 캐시(520)를 서로 연결시켜줄 뿐만 아니라, 반도체 시스템(500)과 메모리(200)를 연결시킬 수 있다. The
구체적으로, 제1 프로세서(510)가 제2 프로세서(530)로 전송 파라미터(DP)와 관련된 정보 및 캐시(520)의 플러싱과 관련된 정보를 제공하는 것, 제2 프로세서(510)가 제3 프로세서(580)로 전송 파라미터(DP)를 제공하는 것, 제2 프로세서(530)가 제3 프로세서(580)에 저장된 데이터를 제공받는 것, 캐시(520)가 메모리(200)의 미리 저장된 주소로 플러싱되는 것, 제2 프로세서(530)가 메모리(200)의 미리 저장된 주소로 데이터를 전송하는 것 모두 버스(595)를 통해서 이루어질 수 있다.Specifically, the
도 8을 참조하면, 제2 프로세서(530)는 디엠에이 모듈(540)과 제1 버퍼(560)를 포함할 수 있다. Referring to FIG. 8, the
구체적으로, 디엠에이 모듈(540)은 설정 유닛(542), 생성 유닛(545), 전송 유닛(547)을 포함할 수 있다. Specifically, the
설정 유닛(542)은 메모리(200)에 제1 데이터를 라이트하기 위한 전송 파라미터(DP)를 설정할 수 있다.The
구체적으로, 설정 유닛(542)은 제1 프로세서(510)로부터 버스(595)를 통해 전송 파라미터(DP)와 관련된 정보를 제공받아, 전송 파라미터(DP)를 설정할 수 있다. 여기에서 전송 파라미터(DP)는 예를 들어, 메모리(200)로 전송하고자 하는 제1 데이터의 크기, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 제1 버퍼(560)의 주소, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 제2 버퍼(590)의 주소, 제1 데이터를 전송하고자 하는 메모리(200)의 미리 정한 주소를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 제1 데이터는 메모리(200)에 전송하고자하는 최신 데이터를 포함할 수 있다.Specifically, the
설정 유닛(542)은 제1 프로세서(510)로부터 버스(595)를 통해 전송 파라미터(DP)와 관련된 정보뿐만 아니라 캐시의 무효화(이하에서는, 플러싱이라고 함)와 관련된 정보(CI.I)도 제공받을 수 있으며, 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 전송 파라미터(DP)의 설정 동작을 시작할 수 있다. 즉, 전송 파라미터(DP)는 제1 프로세서(510)로부터 제공받은 전송 파라미터(DP)와 관련된 정보를 기반으로 설정되고, 이러한 설정 동작의 시작 시점은 제1 프로세서(510)로부터 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 결정될 수 있다.The
여기에서, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(510)에서 제2 프로세서(530)(예를 들면, 제2 프로세서(530)의 설정 유닛(542))으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 보다 구체적으로, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(510)에서 먼저 설정 유닛(542)으로 제공된 후, 설정 유닛(542)에서 전송 유닛(547)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 캐시의 플러싱과 관련된 정보(CI.I)는 제1 프로세서(510)에서 설정 유닛(542)을 거치지 않고 버스(595)를 통해 바로 전송 유닛(547)으로 제공될 수도 있고, 캐시(520)의 플러싱이 시작되면, 캐시(520)는 자체적으로 캐시의 플러싱과 관련된 정보(CI.I)를 생성하여, 버스(595)를 통해 전송 유닛(547)으로 제공할 수도 있다. 다만, 설명의 편의를 위해 제1 프로세서(510)로부터 설정 유닛(542)으로 캐시의 플러싱과 관련된 정보(CI.I)가 제공되는 것을 예로 들어 설명하도록 한다.Herein, the information (CI.I) related to the flushing of the cache is provided from the
설정 유닛(542)이 전송 파라미터(DP)를 설정하는 것은, 제1 프로세서(510)가 캐시(520)에 저장된 제2 데이터를 메모리(200)의 미리 정한 주소에 플러싱하는 동안 수행될 수 있다. 여기에서, 제2 데이터는 예전 데이터(즉, 업데이트 되지 않은 데이터)로써, 최신 데이터인 제1 데이터와 다른 데이터일 수 있다. The
설정 유닛(542)은 설정된 전송 파라미터(DP)를 생성 유닛(545)과 전송 유닛(547)으로 제공할 수 있다. 또한 설정 유닛(542)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(547)에 제공할 수 있다. The
생성 유닛(545)은 설정된 전송 파라미터(DP)를 기반으로 메모리(200)로 전송할 제1 데이터를 생성할 수 있다.The generating
구체적으로, 생성 유닛(545)은 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 제3 프로세서(580)의 제2 버퍼(590)에 저장된 제1 데이터를 제공받을 수 있다. 또한 생성 유닛(545)이 제1 데이터를 제공받는 것은 캐시(520)가 플러싱되는 구간 동안 수행될 수 있다. More specifically, the
여기에서, 생성 유닛(545)은 제3 프로세서(580)의 제2 버퍼(590)로부터 버스(595)를 통해 데이터를 제공받거나 내부적으로 직접 데이터를 생성할 수 있다. Here, the generating
또한, 생성 유닛(545)은 제1 데이터를 전송 파라미터(DP)에서 가리키는 제1 버퍼(560)의 주소에 저장할 수 있다.The generating
전송 유닛(547)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 라이트할 수 있다.The
구체적으로, 전송 유닛(547)은 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다. 여기에서, 전송 유닛(547)은 제1 버퍼(560)에 저장된 제1 데이터를 메모리(200)로 전송할 수 있다.Specifically, the
즉, 전송 유닛(547)은 전송 파라미터(DP)에서 가리키는 제1 버퍼(560)의 주소에 저장된 제1 데이터를 리드하여, 전송 파라미터(DP)에서 가리키는 메모리(200)의 미리 정한 주소로 제1 데이터를 전송(라이트)할 수 있다.That is, the
전송 유닛(547)이 메모리(200)의 미리 정한 주소에 제1 데이터를 전송하는 것은, 캐시(520)의 플러싱이 완료된 후 수행될 수 있다. The
또한 전송 유닛(547)은 설정 유닛(542)으로부터 캐시(520)의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 시작된다는 정보)를 제공받아 캐시(520)가 플러싱되는 구간 동안 비활성화될 수 있다. 여기에서, 전송 유닛(547)이 비활성화되는 시점은 캐시(520)의 플러싱이 시작되기 전 또는 시작과 동시 또는 시작된 후 모두 가능하다. The
캐시(520)의 플러싱이 완료된 후에, 전송 유닛(547)은 설정 유닛(542)으로부터 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 완료되었다는 정보)를 제공받아 활성화될 수 있다. After the flushing of the
전송 유닛(547)은 메모리(200)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 전송 유닛(547)은 제1 데이터를 메모리(200)의 미리 정한 주소로 전송할 수 있다고 하였는바, 전송 유닛(547)은 이와 같은 라이트 동작 이외에 메모리(200)로 데이터를 리드하는 동작도 수행할 수 있다.The
제3 프로세서(580)는 제2 버퍼(590)를 포함할 수 있다.The
구체적으로, 제3 프로세서(580)는 제1 데이터를 생성하여 제2 버퍼(590)에 저장할 수 있다. 즉, 제3 프로세서(580)는 설정 유닛(542)으로부터 전송 파라미터를 제공받을 수 있고, 제공받은 전송 파라미터를 기반으로 외부 장치(350)로부터 제1 데이터를 제공받거나 내부적으로 제1 데이터를 생성할 수 있다.Specifically, the
즉, 도 8에 도시된 반도체 시스템(500)은, 도 6에 도시된 반도체 시스템(400)과 달리, 외부 장치(350)로부터 데이터를 제공받는 프로세서(즉, 제3 프로세서(580))와 외부 장치(350)로부터 제공받은 데이터를 메모리(200)로 전송하는 프로세서(즉, 제2 프로세서(530))가 별개로 존재한다는 것을 알 수 있다. That is, the
또한 도 6 및 도 8에 도시된 반도체 시스템들(400, 500)은 메모리(200)와 함께 하나의 시스템으로 집적될 수 있다. 예시적으로, 반도체 시스템(400 또는 500) 및 메모리(200)는 하나의 시스템으로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 반도체 시스템(400 또는 500) 및 메모리(200)는 하나의 시스템으로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 것이다. 뿐만 아니라 반도체 시스템(400 또는 500) 및 메모리(200)는 하나의 시스템으로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. The
또한 도 9를 참조하면, 본 발명의 다른 실시예에 따른 반도체 시스템(500)은 제1 프로세서(510), 캐시(520), 제2 프로세서(530), 제3 프로세서(580)를 포함하며, 이들은 하나의 시스템 온 칩(System on Chip)(600)으로 구현될 수도 있고, 이들 각 요소들은 시스템 온 칩 내의 내부 버스, 예컨대 AXI(AMBA Advanced eXtensible Interface) 프로토콜에 따르는 버스를 통해 상호 연결될 수 있다. 또한, 본 발명의 몇몇의 실시예에서. 상기 시스템 온 칩은 단말기에 탑재되는 어플리케이션 프로세서(Application Processor)로 구현될 수 있다. 본 발명의 몇몇의 실시예에서, 상기 시스템 온 칩은 메모리(200)와 외부 장치(350)도 포함하도록 구현될 수 있다.9, a
물론 도 7의 반도체 시스템(500) 뿐만 아니라 도 5의 반도체 시스템(400) 역시 시스템 온 칩으로 구현될 수 있으며, 이에 대한 구체적인 설명은 생략하도록 한다. Of course, not only the
추가적으로, 반도체 시스템(400 또는 500)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 반도체 시스템(400 또는 500)은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.도 10 내지 도 12는 본 발명의 몇몇 실시예에 따른 반도체 시스템을 적용할 수 있는 예시적인 전자 시스템들이다. Additionally, the
도 10는 태블릿 PC(1200)을 도시한 도면이고, 도 11은 노트북(1300)을 도시한 도면이며, 도 12은 스마트폰(1400)을 도시한 것이다. 본 발명의 몇몇 실시예에 따른 반도체 시스템(400, 500)은 이러한 태블릿 PC(1200), 노트북(1300), 스마트폰(1400) 등에 사용될 수 있다. Fig. 10 shows a
또한, 본 발명의 몇몇 실시예에 따른 반도체 시스템(400, 500)은 예시하지 않는 다른 집적 회로 장치에도 적용될 수 있음은 당업자에게 자명하다. 즉, 이상에서는 본 실시예에 따른 전자 시스템의 예로, 태블릿 PC(1200), 노트북(1300), 및 스마트폰(1400)만을 들었으나, 본 실시예에 따른 전자 시스템의 예가 이에 제한되는 것은 아니다. 본 발명의 몇몇 실시예에서, 전자 시스템은, 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등으로 구현될 수도 있다.It is also apparent to those skilled in the art that the
이하에서는, 도 13 및 도 14을 참조하여, 도 1의 반도체 장치의 동작 방법을 설명하도록 한다. 앞서 설명한 도 1의 내용과 중복되는 내용은 생략하도록 한다.Hereinafter, an operation method of the semiconductor device of FIG. 1 will be described with reference to FIG. 13 and FIG. The contents overlapping with those of FIG. 1 described above will be omitted.
도 13 및 도 14은 도 1의 반도체 장치의 동작 방법을 설명하는 도면들이다.13 and 14 are views for explaining a method of operating the semiconductor device of FIG.
도 2, 도 13, 도 14을 참조하면, 먼저, 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S100).Referring to FIGS. 2, 13 and 14, information (DP.I) related to transmission parameters and information (CI.I) related to flushing of a cache are provided (SlOO).
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다. Specifically, the
캐시(300)의 플러싱 시작 신호를 제공한다(S105).And provides a flushing start signal of the cache 300 (S105).
구체적으로, 프로세서(250)는 캐시(300)에 플러싱 시작 신호를 제공할 수 있다. Specifically, the
디엠에이 모듈(110)의 데이터 전송 동작이 비활성화된다(S107).The data transfer operation of the
구체적으로, 설정 유닛(115)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(125)으로 제공할 수 있다. 또한 전송 유닛(125)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.Specifically, the
캐시(300)의 플러싱이 시작된다(S110).Flushing of the
구체적으로, 캐시(300)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. In particular, the second data (old data, i.e., un-updated data) stored in the
본 발명에서, S100, S105, S107, S110가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 프로세서(250)는 캐시(300)에 플러싱 시작 신호를 제공한 후(S105), 설정 유닛(115)으로 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S100)할 수도 있다.In the present invention, S100, S105, S107, and S110 are sequentially generated, but the present invention is not limited thereto. That is, the
따라서, 전송 유닛(125)이 비활성화되는 시점(S107)은 캐시(300)의 플러싱이 시작되는 시점(S110)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.Thus, the point in time at which the
캐시(300)의 플러싱이 시작된 후, 설정 유닛(115)은 프로세서(250)로부터 제공받은 전송 파라미터와 관련된 정보(DP.I)를 토대로 전송 파라미터(DP)를 설정할 수 있다. 또한 설정 유닛(115)은 전송 파라미터(DP)를 설정하여 생성 유닛(120)으로 제공할 수 있다(S113).After the flushing of the
데이터를 생성한다(S115).Data is generated (S115).
구체적으로, 생성 유닛(120)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 생성할 수 있다. 생성 유닛(120)은 내부적으로 직접 제1 데이터를 생성하거나 외부 장치(350)로부터 제1 데이터를 제공받을 수 있다. Specifically, the generating
버퍼(160)에 데이터를 저장한다(S117).The data is stored in the buffer 160 (S117).
구체적으로, 생성 유닛(120)은 전송 파라미터(DP)가 가리키는 버퍼(160)의 주소에 제1 데이터를 저장할 수 있다. Specifically, the generating
프로세서(250)는 캐시(300)의 플러싱이 종료되면(S120), 설정 유닛(115)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(300)의 플러싱이 종료되지 않았다면, 전송 유닛(125)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S122).The
디엠에이 모듈(110)의 데이터 전송 동작이 활성화된다(S125).The data transfer operation of the
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 캐시(300)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(125)으로 제공할 수 있다.Specifically, when the
전송 유닛(125)은 캐시(300)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다. The
버퍼(160)에 저장된 데이터를 리드한다(S127).The data stored in the
구체적으로, 전송 유닛(125)은 전송 파라미터(DP)를 기반으로 버퍼(160)에 저장된 제1 데이터를 리드할 수 있다.Specifically, the
메모리(200)로 데이터를 전송한다(S130).Data is transmitted to the memory 200 (S130).
구체적으로, 전송 유닛(125)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.Specifically, the
이하에서는, 도 15 및 도 16를 참조하여, 도 5의 반도체 시스템의 동작 방법을 설명하도록 한다. 앞서 설명한 도 5의 내용과 중복되는 내용은 생략하도록 한다.Hereinafter, an operation method of the semiconductor system of Fig. 5 will be described with reference to Figs. 15 and 16. Fig. The contents overlapping with those of FIG. 5 described above will be omitted.
도 15 및 도 16는 도 5의 반도체 시스템의 동작 방법을 설명하는 도면들이다.FIGS. 15 and 16 are diagrams illustrating a method of operating the semiconductor system of FIG.
도 6, 도 15, 도 16를 참조하면, 먼저, 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S200).Referring to FIGS. 6, 15, and 16, information related to a transmission parameter and information (CI.I) related to flushing of a cache are provided (S200).
구체적으로, 제2 프로세서(430)의 디엠에이 모듈(440)에 포함된 설정 유닛(442)은 제1 프로세서(410)로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다. Specifically, the
캐시(420)의 플러싱 시작 신호를 제공한다(S205).And provides a flushing start signal of the cache 420 (S205).
구체적으로, 제1 프로세서(410)는 캐시에 무효화(즉, 플러싱) 시작 신호를 제공할 수 있다. Specifically, the
디엠에이 모듈(440)의 데이터 전송 동작이 비활성화된다(S207).The data transfer operation of the
구체적으로, 설정 유닛(442)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(447)으로 제공할 수 있다. 또한 전송 유닛(447)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(420)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.Specifically, the
캐시(420)의 플러싱이 시작된다(S210).Flushing of the
구체적으로, 캐시(420)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. In particular, the second data (old data, i.e., un-updated data) stored in the
본 발명에서, S200, S205, S207, S210가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 제1 프로세서(410)는 캐시(420)에 플러싱 시작 신호를 제공한 후(S205), 설정 유닛(442)으로 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S200)할 수도 있다.In the present invention, S200, S205, S207, and S210 are sequentially generated, but the present invention is not limited thereto. That is, after the
따라서, 전송 유닛(447)이 비활성화되는 시점(S207)은 캐시(420)의 플러싱이 시작되는 시점(S210)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.Thus, the point in time at which the
캐시(420)의 플러싱이 시작된 후, 설정 유닛(442)은 제1 프로세서(410)로부터 제공받은 전송 파라미터와 관련된 정보를 토대로 전송 파라미터(DP)를 설정할 수 있다. 또한 설정 유닛(442)은 전송 파라미터(DP)를 설정하여 생성 유닛(445)으로 제공할 수 있다(S213).After the flushing of the
데이터를 생성한다(S215).Data is generated (S215).
구체적으로, 생성 유닛(445)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 생성할 수 있다. 생성 유닛(445)은 내부적으로 직접 제1 데이터를 생성하거나 외부 장치(350)로부터 제1 데이터를 제공받을 수 있다. Specifically, the generating
버퍼(450)에 데이터를 저장한다(S217).The data is stored in the buffer 450 (S217).
구체적으로, 생성 유닛(445)은 전송 파라미터(DP)가 가리키는 버퍼(450)의 주소에 제1 데이터를 저장할 수 있다. Specifically, the generating
제1 프로세서(410)는 캐시(420)의 플러싱이 종료되면(S220), 설정 유닛(442)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(420)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(420)의 플러싱이 종료되지 않았다면, 전송 유닛(447)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S222).When the flushing of the
디엠에이 모듈(440)의 데이터 전송 동작이 활성화된다(S225).The data transfer operation of the
구체적으로, 설정 유닛(442)은 제1 프로세서(410)로부터 캐시(420)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(447)으로 제공할 수 있다.Specifically, when the
전송 유닛(447)은 캐시(420)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다. The
버퍼(450)에 저장된 데이터를 리드한다(S227).The data stored in the
구체적으로, 전송 유닛(447)은 전송 파라미터(DP)를 기반으로 버퍼(450)에 저장된 제1 데이터를 리드할 수 있다.Specifically, the
메모리(200)로 데이터를 전송한다(S230).And transfers the data to the memory 200 (S230).
구체적으로, 전송 유닛(447)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.Specifically, the
이하에서는, 도 17 및 도 18을 참조하여, 도 7의 반도체 시스템의 동작 방법을 설명하도록 한다. 앞서 설명한 도 7의 내용과 중복되는 내용은 생략하도록 한다.Hereinafter, an operation method of the semiconductor system of FIG. 7 will be described with reference to FIGS. 17 and 18. FIG. The contents overlapping with those of FIG. 7 described above will be omitted.
도 17 및 도 18은 도 7의 반도체 시스템의 동작 방법을 설명하는 도면들이다.17 and 18 are views for explaining a method of operating the semiconductor system of FIG.
도 7, 도 17, 도 18을 참조하면, 먼저, 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S300).Referring to FIGS. 7, 17 and 18, information relating to transmission parameters and information (CI.I) related to flushing of the cache are provided (S300).
구체적으로, 제2 프로세서(530)의 디엠에이 모듈(540)에 포함된 설정 유닛(542)은 제1 프로세서(510)로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다. Specifically, the
캐시(520)의 플러싱 시작 신호를 제공한다(S305).And provides a flushing start signal of the cache 520 (S305).
구체적으로, 제1 프로세서(510)는 캐시에 무효화(즉, 플러싱) 시작 신호를 제공할 수 있다. Specifically, the
디엠에이 모듈(540)의 데이터 전송 동작이 비활성화된다(S307).The data transfer operation of the
구체적으로, 설정 유닛(542)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(547)으로 제공할 수 있다. 또한 전송 유닛(547)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.Specifically, the
캐시(520)의 플러싱이 시작된다(S310).Flushing of the
구체적으로, 캐시(520)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. In particular, the second data (old data, i.e., un-updated data) stored in the
본 발명에서, S300, S305, S307, S310가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 제1 프로세서(510)는 캐시(520)에 플러싱 시작 신호를 제공한 후(S305), 설정 유닛(542)으로 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S300)할 수도 있다.In the present invention, S300, S305, S307, and S310 are sequentially generated, but the present invention is not limited thereto. That is, after providing the flushing start signal to the cache 520 (S305), the
따라서, 전송 유닛(547)이 비활성화되는 시점(S307)은 캐시(520)의 플러싱이 시작되는 시점(S310)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.Therefore, the time point S307 at which the
캐시(520)의 플러싱이 시작된 후, 설정 유닛(542)은 제1 프로세서(510)로부터 제공받은 전송 파라미터와 관련된 정보를 토대로 전송 파라미터(DP)를 설정할 수 있다. 도면에 도시되어 있지는 않지만, 제3 프로세서(580)는 설정 유닛(542)으로부터 전송 파라미터를 제공받을 수 있고, 제공받은 전송 파라미터를 기반으로 외부 장치(350)로부터 제1 데이터를 제공받거나 제1 데이터를 생성할 수 있다(S313).After the flushing of the
설정 유닛(542)은 전송 파라미터(DP)를 설정하여 생성 유닛(545)으로 제공할 수 있다(S314).The
도 18에서는, 제3 프로세서(580)가 설정 유닛(542)으로부터 전송 파라미터를 제공받아 제1 데이터를 생성하는 시점(S313)이 생성 유닛(545)이 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받는 시점(S314)보다 앞서는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다.18 shows a case where the
즉, 생성 유닛(545)이 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받는 시점은, 제3 프로세서(580)가 설정 유닛(542)으로부터 전송 파라미터를 제공받는 시점보다 이전이거나 동시이거나 이후일 수 있다. That is, the time when the
제2 버퍼(590)로부터 데이터를 리드한다(S315).Data is read from the second buffer 590 (S315).
구체적으로, 생성 유닛(545)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 제2 버퍼(590)로부터 리드할 수 있다. 물론 생성 유닛(545)은 내부적으로 직접 제1 데이터를 생성할 수도 있지만, 설명의 편의를 위해 제2 버퍼(590)에 저장된 제1 데이터를 제공받는 경우를 예로 들어 설명하도록 한다. Specifically, the
제1 버퍼(560)에 데이터를 저장한다(S317).The data is stored in the first buffer 560 (S317).
구체적으로, 생성 유닛(545)은 전송 파라미터(DP)가 가리키는 제1 버퍼(560)의 주소에 제1 데이터를 저장할 수 있다. Specifically, the generating
제1 프로세서(510)는 캐시(520)의 플러싱이 종료되면(S320), 설정 유닛(542)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(520)의 플러싱이 종료되지 않았다면, 전송 유닛(547)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S322).The
디엠에이 모듈(540)의 데이터 전송 동작이 활성화된다(S325).The data transfer operation of the
구체적으로, 설정 유닛(542)은 제1 프로세서(510)로부터 캐시(520)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(547)으로 제공할 수 있다.Specifically, when the
전송 유닛(547)은 캐시(520)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다. The
제1 버퍼(560)에 저장된 데이터를 리드한다(S327).The data stored in the
구체적으로, 전송 유닛(547)은 전송 파라미터(DP)를 기반으로 제1 버퍼(560)에 저장된 제1 데이터를 리드할 수 있다.Specifically, the
메모리(200)로 데이터를 전송한다(S330).The data is transmitted to the memory 200 (S330).
구체적으로, 전송 유닛(547)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.Specifically, the
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It is to be understood that the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
Claims (20)
상기 디엠에이 모듈은,
상기 메모리에 상기 제1 데이터를 라이트하기 위한 전송 파라미터를 설정하는 설정 유닛과,
상기 설정된 전송 파라미터를 기반으로 상기 메모리로 전송할 제1 데이터를 생성하는 생성 유닛과,
상기 전송 파라미터를 기반으로 상기 메모리의 상기 미리 정한 주소에 상기 생성된 제1 데이터를 라이트하는 전송 유닛을 포함하되,
상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제2 데이터를 상기 메모리의 상기 미리 정한 주소에 플러싱(flushing)하는 구간 동안 수행되고, 상기 전송 유닛이 상기 메모리의 상기 미리 정한 주소에 상기 생성된 제1 데이터를 전송하는 것은, 상기 플러싱이 완료된 후 수행되는 반도체 장치.And a DMA module for directly accessing the memory and writing the first data to a predetermined address of the memory,
The DME module includes:
A setting unit for setting a transfer parameter for writing the first data in the memory;
A generating unit for generating first data to be transmitted to the memory based on the set transmission parameters;
And a transmission unit for writing the generated first data to the predetermined address of the memory based on the transmission parameter,
The setting unit setting the transmission parameter is performed during a period in which the processor flushes the second data stored in the cache to the predetermined address of the memory, Wherein the transmitting of the first data is performed after the flushing is completed.
상기 제1 데이터는 상기 제2 데이터와 다른 데이터인 반도체 장치.The method according to claim 1,
Wherein the first data is data different from the second data.
상기 생성 유닛이 상기 제1 데이터를 생성하는 것은, 상기 생성 유닛이 상기 제1 데이터를 외부 장치로부터 제공받거나 직접 생성하는 것을 포함하는 반도체 장치.The method according to claim 1,
Wherein the generating unit generates the first data by causing the generating unit to receive or directly generate the first data from an external device.
상기 제1 데이터가 저장되는 버퍼를 더 포함하는 반도체 장치.The method according to claim 1,
And a buffer in which the first data is stored.
상기 전송 파라미터는, 상기 제1 데이터의 크기 또는 상기 제1 데이터가 저장된 상기 버퍼의 주소 또는 상기 메모리의 상기 미리 정한 주소를 포함하는 반도체 장치.5. The method of claim 4,
Wherein the transmission parameter includes a size of the first data or an address of the buffer where the first data is stored or the predetermined address of the memory.
상기 설정 유닛은, 상기 프로세서로부터 상기 전송 파라미터와 관련된 정보 및 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.The method according to claim 1,
Wherein the setting unit is provided with information relating to the transmission parameter and information relating to flushing of the cache from the processor.
상기 전송 유닛은 상기 프로세서로부터 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.The method according to claim 1,
Wherein the transfer unit is provided with information related to flushing of the cache from the processor.
상기 전송 유닛은 상기 캐시로부터 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.The method according to claim 1,
Wherein the transfer unit is provided with information related to flushing of the cache from the cache.
상기 생성 유닛이 상기 제1 데이터를 생성하는 것은 상기 설정 유닛이 상기 전송 파라미터를 설정하는 것이 완료된 후 시작되는 반도체 장치.The method according to claim 1,
Wherein said generation unit generates said first data after said setting unit has finished setting said transmission parameter.
상기 생성 유닛이 상기 제1 데이터를 생성하는 것은 상기 캐시가 플러싱되는 구간 동안 수행되는 반도체 장치.10. The method of claim 9,
Wherein the generation unit generates the first data during a period in which the cache is flushed.
상기 전송 유닛이 상기 메모리의 상기 미리 정한 주소에 상기 생성된 제1 데이터를 전송하는 것은, 상기 생성 유닛이 상기 제1 데이터를 생성하는 것이 완료된 후 시작되는 반도체 장치.11. The method of claim 10,
Wherein the transmitting unit starts transmitting the generated first data to the predetermined address of the memory after the generating unit is finished generating the first data.
상기 제1 데이터가 저장되는 버퍼를 더 포함하되,
상기 제1 데이터는 제3 및 제4 데이터를 포함하고,
상기 생성 유닛은 상기 제3 데이터를 생성하여 상기 버퍼에 저장하는 제1 생성 동작과 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 제2 생성 동작을 수행하고,
상기 생성 유닛은 상기 제1 생성 동작을 완료한 후 상기 제2 생성 동작을 수행하는 반도체 장치.The method according to claim 1,
And a buffer in which the first data is stored,
Wherein the first data comprises third and fourth data,
Wherein the generating unit performs a first generating operation of generating the third data and storing the third data in the buffer and a second generating operation of generating the second data and storing the second data in the buffer,
Wherein the generating unit performs the second generating operation after completing the first generating operation.
상기 미리 정한 주소는 제1 주소와 제2 주소를 포함하고,
상기 전송 유닛은 상기 제3 데이터를 상기 제1 주소로 전송하는 제1 전송 동작과 상기 제4 데이터를 상기 제2 주소로 전송하는 제2 전송 동작을 수행하고,
상기 전송 유닛은 상기 제1 전송 동작을 완료한 후 상기 제2 전송 동작을 수행하고,
상기 제1 전송 동작은 상기 제2 생성 동작이 수행되는 구간 동안 수행되는 반도체 장치.13. The method of claim 12,
Wherein the predetermined address includes a first address and a second address,
The transmission unit performs a first transmission operation for transmitting the third data to the first address and a second transmission operation for transmitting the fourth data to the second address,
Wherein the transmission unit performs the second transmission operation after completing the first transmission operation,
Wherein the first transfer operation is performed during a period in which the second generation operation is performed.
상기 제1 생성 동작은 상기 캐시가 플러싱되는 구간 동안 수행되고,
상기 제2 생성 동작은 상기 캐시의 플러싱이 완료된 후 수행되는 반도체 장치.13. The method of claim 12,
Wherein the first generating operation is performed during a period in which the cache is flushed,
Wherein the second generating operation is performed after the flushing of the cache is completed.
상기 메모리에 전송할 제1 및 제2 데이터를 저장하는 버퍼를 포함하되,
상기 디엠에이 모듈은,
상기 메모리에 상기 제1 및 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과,
상기 전송 파라미터를 기반으로 상기 제1 데이터를 생성하여 상기 버퍼에 저장하는 제1 생성 동작과 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 제2 생성 동작을 순차적으로 수행하는 생성 유닛과,
상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 상기 제1 데이터를 상기 메모리의 제1 주소로 전송하는 제1 전송 동작과 상기 버퍼에 저장된 상기 제2 데이터를 상기 메모리의 제2 주소로 전송하는 제2 전송 동작을 순차적으로 수행하는 전송 유닛을 포함하되,
상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제3 데이터를 상기 제1 주소에 플러싱(flushing)하는 구간 동안 수행되고, 상기 제1 생성 동작은 상기 캐시가 플러싱되는 구간 동안 수행되고, 상기 제2 생성 동작은 상기 캐시의 플러싱이 완료된 후 수행되고, 상기 제1 전송 동작은 상기 캐시의 플러싱이 완료된 후 상기 제2 생성 동작이 수행되는 구간 동안 수행되는 반도체 장치.A DMA module for directly accessing the memory; And
And a buffer for storing first and second data to be transmitted to the memory,
The DME module includes:
A setting unit for setting transmission parameters for transmitting the first and second data to the memory;
A generation unit configured to sequentially generate a first data generation operation for generating the first data based on the transmission parameter and storing the first data in the buffer and a second generation operation for generating the second data and storing the generated second data in the buffer;
A first transmission operation for transmitting the first data stored in the buffer to a first address of the memory based on the transmission parameter and a second transmission for transmitting the second data stored in the buffer to a second address of the memory, And a transmission unit for sequentially performing operations,
Wherein the setting unit sets the transmission parameter during a period in which the processor flushes third data stored in the cache to the first address and the first generating operation is performed during a period in which the cache is flushed Wherein the second generating operation is performed after the flushing of the cache is completed, and the first transmitting operation is performed during a period during which the second generating operation is performed after the flushing of the cache is completed.
상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및
상기 제1 데이터와 다른 제2 데이터를 생성하여 상기 메모리의 상기 미리 정한 주소에 전송하는 제2 프로세서를 포함하되,
상기 제2 프로세서는,
상기 생성된 제2 데이터를 저장하는 버퍼와,
상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 제2 데이터를 상기 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고,
상기 디엠에이 모듈이 상기 전송 파라미터를 설정하는 것은 상기 제1 프로세서가 상기 캐시에 저장된 상기 제1 데이터를 상기 미리 정한 주소에 플러싱하는 구간 동안 수행되고,
상기 디엠에이 모듈이 상기 제2 데이터를 상기 미리 정한 주소에 전송하는 것은, 상기 플러싱이 완료된 후 수행되는 반도체 시스템.A cache connected to the memory via a bus;
A first processor for flushing the first data stored in the cache to a predetermined address in the memory; And
And a second processor for generating second data different from the first data and transmitting the second data to the predetermined address of the memory,
Wherein the second processor comprises:
A buffer for storing the generated second data,
And a DMA module for setting a transmission parameter for transmitting the second data to the memory and transmitting the second data stored in the buffer to the predetermined address based on the transmission parameter,
Wherein the setting of the transmission parameter by the DMA module is performed during a period in which the first processor flushes the first data stored in the cache to the predetermined address,
Wherein the DMA module transfers the second data to the predetermined address after the flushing is completed.
상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및
상기 제1 데이터와 다른 제2 데이터를 생성하여 상기 버스를 통해서 상기 메모리의 상기 미리 정한 주소에 전송하는 제2 프로세서를 포함하되,
상기 제2 프로세서는,
상기 제2 데이터를 저장하는 버퍼와,
상기 버퍼에 저장된 제2 데이터를 상기 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고,
상기 디엠에이 모듈은,
상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 상기 제1 프로세서로부터 상기 전송 파라미터와 관련된 정보 및 상기 캐시의 플러싱과 관련된 정보를 제공받는 설정 유닛과,
상기 전송 파라미터를 기반으로 상기 메모리로 전송할 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 생성 유닛과,
상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 상기 제2 데이터를 상기 메모리의 상기 미리 정한 주소에 전송하는 전송 유닛을 포함하고,
상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은, 상기 캐시가 플러싱(flushing)되는 구간 동안 수행되고, 상기 전송 유닛이 상기 메모리의 상기 미리 정한 주소에 상기 제2 데이터를 전송하는 것은, 상기 플러싱이 완료된 후 수행되는 반도체 시스템.A cache connected to the memory via a bus;
A first processor for flushing the first data stored in the cache to a predetermined address in the memory; And
And a second processor for generating second data different from the first data and transmitting the second data to the predetermined address of the memory via the bus,
Wherein the second processor comprises:
A buffer for storing the second data,
And a DMA module for transmitting the second data stored in the buffer to the predetermined address,
The DME module includes:
A setting unit configured to set a transmission parameter for transmitting the second data to the memory, and receive from the first processor information related to the transmission parameter and information related to flushing of the cache;
A generating unit for generating the second data to be transmitted to the memory based on the transmission parameter and storing the generated second data in the buffer;
And a transmission unit for transmitting the second data stored in the buffer to the predetermined address of the memory based on the transmission parameter,
The setting unit is configured to set the transmission parameter during a period in which the cache is flushed, and the transmitting unit transmitting the second data to the predetermined address in the memory is a state in which the flushing is completed Lt; / RTI >
상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서;
상기 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및
상기 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되,
상기 제2 프로세서는 상기 제2 데이터를 생성하여 상기 제1 버퍼에 저장하고,
상기 디엠에이 모듈은,
상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과,
상기 전송 파라미터를 기반으로 상기 제1 버퍼에 저장된 상기 제2 데이터를 제공받는 생성 유닛과,
상기 전송 파라미터를 기반으로 상기 메모리의 상기 미리 정한 주소에 상기 제2 데이터를 전송하는 전송 유닛을 포함하되,
상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은 상기 캐시가 플러싱되는 구간 동안 수행되고, 상기 전송 유닛이 상기 메모리의 상기 미리 정한 주소에 상기 제2 데이터를 전송하는 것은, 상기 플러싱이 완료된 후 수행되는 반도체 시스템.A cache connected to the memory via a bus;
A first processor for flushing the first data stored in the cache to a predetermined address in the memory;
A second processor including a first buffer for storing second data different from the first data; And
And a third processor including a DME module for directly accessing the memory,
The second processor generates the second data and stores the second data in the first buffer,
The DME module includes:
A setting unit for setting a transmission parameter for transmitting the second data to the memory;
A generating unit receiving the second data stored in the first buffer based on the transmission parameter;
And a transmission unit for transmitting the second data to the predetermined address of the memory based on the transmission parameter,
The setting unit setting the transmission parameter is performed during a period in which the cache is flushed, and the transmitting unit transmitting the second data to the predetermined address in the memory is performed after the completion of the flushing system.
상기 제3 프로세서는, 상기 제공받은 제2 데이터를 저장하는 제2 버퍼를 더 포함하는 반도체 시스템.19. The method of claim 18,
And the third processor further comprises a second buffer for storing the second data.
상기 제1 내지 제3 프로세서는 상기 버스를 통해서 서로 연결되는 반도체 시스템.
19. The method of claim 18,
And the first to third processors are connected to each other via the bus.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/792,156 US9904626B2 (en) | 2014-08-29 | 2015-07-06 | Semiconductor device, semiconductor system and system on chip |
DE102015112598.6A DE102015112598A1 (en) | 2014-08-29 | 2015-07-31 | Semiconductor device, semiconductor system and single-chip system |
JP2015162240A JP6641120B2 (en) | 2014-08-29 | 2015-08-19 | Semiconductor device, semiconductor system and system on chip |
TW104127599A TWI682280B (en) | 2014-08-29 | 2015-08-25 | Semiconductor device, semiconductor system and system on chip |
CN201510536967.6A CN105389274B (en) | 2014-08-29 | 2015-08-27 | Semiconductor device, semiconductor system and system on chip |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462043595P | 2014-08-29 | 2014-08-29 | |
US62/043,595 | 2014-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160026599A true KR20160026599A (en) | 2016-03-09 |
KR102261591B1 KR102261591B1 (en) | 2021-06-04 |
Family
ID=55536943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140143553A KR102261591B1 (en) | 2014-08-29 | 2014-10-22 | Semiconductor device, semiconductor system and system on chip |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6641120B2 (en) |
KR (1) | KR102261591B1 (en) |
TW (1) | TWI682280B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190045225A (en) * | 2016-09-22 | 2019-05-02 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | A lock address contention predictor |
KR20220044094A (en) * | 2020-09-28 | 2022-04-06 | 고려대학교 산학협력단 | FPGA based cache invalidation method and apparatus performing the same |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004258935A (en) * | 2003-02-26 | 2004-09-16 | Matsushita Electric Ind Co Ltd | Semiconductor device |
US20080005465A1 (en) * | 2006-06-30 | 2008-01-03 | Matthews Jeanna N | Write ordering on disk cached platforms |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376762B2 (en) * | 2005-10-31 | 2008-05-20 | Sigmatel, Inc. | Systems and methods for direct memory access |
US20120151232A1 (en) * | 2010-12-12 | 2012-06-14 | Fish Iii Russell Hamilton | CPU in Memory Cache Architecture |
-
2014
- 2014-10-22 KR KR1020140143553A patent/KR102261591B1/en active IP Right Grant
-
2015
- 2015-08-19 JP JP2015162240A patent/JP6641120B2/en active Active
- 2015-08-25 TW TW104127599A patent/TWI682280B/en active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004258935A (en) * | 2003-02-26 | 2004-09-16 | Matsushita Electric Ind Co Ltd | Semiconductor device |
US20080005465A1 (en) * | 2006-06-30 | 2008-01-03 | Matthews Jeanna N | Write ordering on disk cached platforms |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190045225A (en) * | 2016-09-22 | 2019-05-02 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | A lock address contention predictor |
US11868818B2 (en) | 2016-09-22 | 2024-01-09 | Advanced Micro Devices, Inc. | Lock address contention predictor |
KR20220044094A (en) * | 2020-09-28 | 2022-04-06 | 고려대학교 산학협력단 | FPGA based cache invalidation method and apparatus performing the same |
Also Published As
Publication number | Publication date |
---|---|
TWI682280B (en) | 2020-01-11 |
JP2016051471A (en) | 2016-04-11 |
TW201608373A (en) | 2016-03-01 |
KR102261591B1 (en) | 2021-06-04 |
JP6641120B2 (en) | 2020-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105389274B (en) | Semiconductor device, semiconductor system and system on chip | |
KR20160013351A (en) | Storage device and data porcessing method thereof | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
US20070067506A1 (en) | Multimedia program download control system and method of apparatus equipped with multimedia processor | |
KR20140045553A (en) | Mobile memory cache read optimization | |
CN108304334B (en) | Application processor and integrated circuit including interrupt controller | |
CN110046050B (en) | Device and method for inter-core data transmission | |
JP5307133B2 (en) | Device emulation support apparatus, device emulation support method, device emulation support circuit, and information processing apparatus | |
WO2022143295A1 (en) | Method for upgrading firmware, and related device | |
TW202230111A (en) | Read optional and write optional commands | |
CN104460406A (en) | Single-line communication method and single chip microcomputer firmware updating method based on single-line communication | |
KR102261591B1 (en) | Semiconductor device, semiconductor system and system on chip | |
JP2007206933A (en) | Information processor, boot loader generation method and program transfer method in information processor | |
KR101651192B1 (en) | Methods and apparatus for improving performance of semaphore management sequences across a coherent bus | |
US20150177816A1 (en) | Semiconductor integrated circuit apparatus | |
CN113031855A (en) | Storage device group, storage system, and method for operating storage device | |
CN109189705B (en) | USB extension method, device, equipment, storage medium and system | |
CN110968147B (en) | Timer creating method and device, electronic equipment and medium | |
US8321605B2 (en) | PIO interjection between beats of a DMA operation | |
CN114070892A (en) | Data transmission method and device | |
US20060094463A1 (en) | Multiprocessing apparatus for a wireless terminal and method thereof | |
US20140136744A1 (en) | Reset method and network device | |
US20040003145A1 (en) | Method and apparatus to transfer information | |
EP4191419A1 (en) | Operating method of an electronic device | |
US9652413B2 (en) | Signal processing system and integrated circuit comprising a prefetch module and method therefor |
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 |