KR102261591B1 - 반도체 장치, 반도체 시스템 및 시스템 온 칩 - Google Patents

반도체 장치, 반도체 시스템 및 시스템 온 칩 Download PDF

Info

Publication number
KR102261591B1
KR102261591B1 KR1020140143553A KR20140143553A KR102261591B1 KR 102261591 B1 KR102261591 B1 KR 102261591B1 KR 1020140143553 A KR1020140143553 A KR 1020140143553A KR 20140143553 A KR20140143553 A KR 20140143553A KR 102261591 B1 KR102261591 B1 KR 102261591B1
Authority
KR
South Korea
Prior art keywords
data
cache
memory
processor
flushing
Prior art date
Application number
KR1020140143553A
Other languages
English (en)
Other versions
KR20160026599A (ko
Inventor
우듬지
김관호
김미경
이범우
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/792,156 priority Critical patent/US9904626B2/en
Priority to DE102015112598.6A priority patent/DE102015112598A1/de
Priority to JP2015162240A priority patent/JP6641120B2/ja
Priority to TW104127599A priority patent/TWI682280B/zh
Priority to CN201510536967.6A priority patent/CN105389274B/zh
Publication of KR20160026599A publication Critical patent/KR20160026599A/ko
Application granted granted Critical
Publication of KR102261591B1 publication Critical patent/KR102261591B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Abstract

반도체 장치, 반도체 시스템 및 시스템 온 칩이 제공된다. 상기 반도체 장치는, 메모리에 직접 엑세스하여 메모리의 미리 정한 주소에 제1 데이터를 라이트(write)하는 디엠에이 모듈을 포함하되, 디엠에이 모듈은, 메모리에 제1 데이터를 라이트하기 위한 전송 파라미터를 설정하는 설정 유닛과, 설정된 전송 파라미터를 기반으로 메모리로 전송할 제1 데이터를 생성하는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 생성된 제1 데이터를 라이트하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제2 데이터를 메모리의 미리 정한 주소에 플러싱(flushing)하는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 생성된 제1 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.

Description

반도체 장치, 반도체 시스템 및 시스템 온 칩{SEMICONDUCTOR DEVICE, SEMICONDUCTOR SYSTEM AND SYSTEM ON CHIP}
본 발명은 반도체 장치, 반도체 시스템 및 시스템 온 칩에 관한 것이다.
DMA(Direct Memory Access)는, 입출력 장치 제어기가 CPU(Central Processing Unit)에 의한 프로그램의 실행 없이 자료의 이동을 할 수 있도록 한 것을 의미한다. 이 방식에 의해서 입출력 속도를 향상시킬 수 있으며, CPU와 주변 장치간의 속도 차를 줄일 수 있다. 입출력 장치가 DMA를 요구하면 CPU가 주메모리의 제어를 넘겨주게 되는데 CPU는 이 작업을 CPU 사이클이 끝나는 지점마다 허용할 수 있다.
다만, DMA를 내장한 주변 장치 프로세싱 유닛을 이용하여 시스템 메모리의 특정 주소로 최신 데이터를 전송하고자하는 경우, 메모리의 상기 특정 주소로부터 제공받아 캐시(cache)에 저장된 예전 데이터는 유효하지 않기 때문에 먼저 캐시를 무효화(예를 들면, 플러싱(flushing))시키고 난 후 DMA를 시작한다.
본 발명이 해결하려는 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 반도체 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 반도체 시스템을 제공하는 것이다.
본 발명이 해결하려는 또 다른 과제는, DMA 기능을 캐시의 무효화(즉, 플러싱) 과정과 동시에 수행함으로써, 성능을 향상시킨 시스템 온 칩(Systmen on Chip)을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 일 실시예는, 메모리에 직접 엑세스하여 상기 메모리의 미리 정한 주소에 제1 데이터를 라이트(write)하는 디엠에이 모듈을 포함하되, 디엠에이 모듈은, 메모리에 제1 데이터를 라이트하기 위한 전송 파라미터를 설정하는 설정 유닛과, 설정된 전송 파라미터를 기반으로 메모리로 전송할 제1 데이터를 생성하는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 생성된 제1 데이터를 라이트하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제2 데이터를 메모리의 미리 정한 주소에 플러싱(flushing)하는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 생성된 제1 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.
상기 제1 데이터는 제2 데이터와 다른 데이터일 수 있다.
상기 생성 유닛이 제1 데이터를 생성하는 것은, 생성 유닛이 제1 데이터를 외부 장치로부터 제공받거나 직접 생성하는 것을 포함할 수 있다.
상기 생성 유닛은 외부 장치로 리드(read) 동작 또는 라이트(write) 동작을 수행할 수 있다.
상기 제1 데이터가 저장되는 버퍼를 더 포함할 수 있다.
상기 생성 유닛은 제1 데이터를 생성하여 버퍼에 저장할 수 있다.
상기 전송 유닛은 버퍼에 저장된 제1 데이터를 메모리로 전송할 수 있다.
상기 전송 파라미터는, 제1 데이터의 크기 또는 제1 데이터가 저장된 버퍼의 주소 또는 메모리의 미리 정한 주소를 포함할 수 있다.
상기 설정 유닛은, 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.
상기 전송 유닛은, 설정 유닛으로부터 캐시의 플러싱과 관련된 정보를 제공받아 캐시가 플러싱되는 구간 동안 비활성화될 수 있다.
상기 전송 유닛은 캐시의 플러싱이 완료된 후 활성화될 수 있다.
상기 전송 유닛은 프로세서로부터 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.
상기 전송 유닛은 캐시로부터 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.
상기 프로세서는 CPU(central processing unit)를 포함할 수 있다.
상기 메모리는 DRAM을 포함할 수 있다.
상기 생성 유닛이 제1 데이터를 생성하는 것은 설정 유닛이 전송 파라미터를 설정하는 것이 완료된 후 시작될 수 있다.
상기 생성 유닛이 제1 데이터를 생성하는 것은 캐시가 플러싱되는 구간 동안 수행될 수 있다.
상기 전송 유닛이 메모리의 미리 정한 주소에 생성된 제1 데이터를 전송하는 것은, 생성 유닛이 제1 데이터를 생성하는 것이 완료된 후 시작될 수 있다.
상기 전송 유닛은, 메모리로 리드(read) 동작 또는 라이트(write) 동작을 수행할 수 있다.
상기 제1 데이터가 저장되는 버퍼를 더 포함하되, 제1 데이터는 제3 및 제4 데이터를 포함하고, 생성 유닛은 제3 데이터를 생성하여 버퍼에 저장하는 제1 생성 동작과 제2 데이터를 생성하여 버퍼에 저장하는 제2 생성 동작을 수행하고, 생성 유닛은 제1 생성 동작을 완료한 후 제2 생성 동작을 수행할 수 있다.
상기 미리 정한 주소는 제1 주소와 제2 주소를 포함하고, 전송 유닛은 제3 데이터를 제1 주소로 전송하는 제1 전송 동작과 제4 데이터를 제2 주소로 전송하는 제2 전송 동작을 수행하고, 전송 유닛은 제1 전송 동작을 완료한 후 제2 전송 동작을 수행하고, 제1 전송 동작은 제2 생성 동작이 수행되는 구간 동안 수행될 수 있다.
상기 제1 생성 동작은 캐시가 플러싱되는 구간 동안 수행되고, 제2 생성 동작은 캐시의 플러싱이 완료된 후 수행될 수 있다.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 다른 실시예는, 메모리로 직접 엑세스하는 디엠에이 모듈; 및 메모리에 전송할 제1 및 제2 데이터를 저장하는 버퍼를 포함하되, 디엠에이 모듈은, 메모리에 제1 및 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 데이터를 생성하여 버퍼에 저장하는 제1 생성 동작과 제2 데이터를 생성하여 버퍼에 저장하는 제2 생성 동작을 순차적으로 수행하는 생성 유닛과, 전송 파라미터를 기반으로 버퍼에 저장된 제1 데이터를 메모리의 제1 주소로 전송하는 제1 전송 동작과 버퍼에 저장된 제2 데이터를 메모리의 제2 주소로 전송하는 제2 전송 동작을 순차적으로 수행하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제3 데이터를 제1 주소에 플러싱(flushing)하는 구간 동안 수행되고, 제1 생성 동작은 캐시가 플러싱되는 구간 동안 수행되고, 제2 생성 동작은 캐시의 플러싱이 완료된 후 수행되고, 제1 전송 동작은 캐시의 플러싱이 완료된 후 제2 생성 동작이 수행되는 구간 동안 수행된다.
상기 생성 유닛은, 설정 유닛이 전송 파라미터를 설정하는 것을 완료한 후 제1 생성 동작을 수행할 수 있다.
상기 제2 전송 동작은 제2 생성 동작이 완료된 후 수행될 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 일 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및 제1 데이터와 다른 제2 데이터를 생성하여 메모리의 미리 정한 주소에 전송하는 제2 프로세서를 포함하되, 제2 프로세서는, 생성된 제2 데이터를 저장하는 버퍼와, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 전송 파라미터를 기반으로 버퍼에 저장된 제2 데이터를 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고, 디엠에이 모듈이 전송 파라미터를 설정하는 것은 제1 프로세서가 캐시에 저장된 제1 데이터를 미리 정한 주소에 플러싱하는 구간 동안 수행되고, 디엠에이 모듈이 제2 데이터를 미리 정한 주소에 전송하는 것은, 플러싱이 완료된 후 수행된다.
상기 제1 프로세서는, 캐시로 리드(read) 또는 라이트(write) 동작을 수행할 수 있다.
상기 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 메모리로 전송할 제2 데이터를 생성하는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함할 수 있다.
상기 설정 유닛은, 제1 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.
상기 제1 및 제2 프로세서는 버스를 통해서 서로 연결될 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 다른 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 및 제1 데이터와 다른 제2 데이터를 생성하여 버스를 통해서 메모리의 미리 정한 주소에 전송하는 제2 프로세서를 포함하되, 제2 프로세서는, 제2 데이터를 저장하는 버퍼와, 버퍼에 저장된 제2 데이터를 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 제1 프로세서로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보를 제공받는 설정 유닛과, 전송 파라미터를 기반으로 메모리로 전송할 제2 데이터를 생성하여 버퍼에 저장하는 생성 유닛과, 전송 파라미터를 기반으로 버퍼에 저장된 제2 데이터를 메모리의 미리 정한 주소에 전송하는 전송 유닛을 포함하고, 설정 유닛이 전송 파라미터를 설정하는 것은, 캐시가 플러싱(flushing)되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.
상기 다른 과제를 해결하기 위한 본 발명의 반도체 시스템의 또 다른 실시예는, 버스(bus)를 통해서 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되, 제2 프로세서는 제2 데이터를 생성하여 제1 버퍼에 저장하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 버퍼에 저장된 제2 데이터를 제공받는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은 캐시가 플러싱되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.
상기 설정 유닛은, 제1 프로세서로부터 전송 파라미터 및 캐시의 플러싱과 관련된 정보를 제공받을 수 있다.
상기 제3 프로세서는, 제공받은 제2 데이터를 저장하는 제2 버퍼를 더 포함할 수 있다.
상기 생성 유닛은, 제1 버퍼로부터 제공받은 데이터를 제2 버퍼에 저장할 수 있다.
상기 전송 유닛은, 제2 버퍼에 저장된 데이터를 메모리의 미리 정한 주소에 전송할 수 있다.
상기 생성 유닛이 제2 데이터를 제공받는 것은 설정 유닛이 전송 파라미터를 설정하는 것이 완료된 후 시작될 수 있다.
상기 제2 프로세서가 제2 데이터를 생성하여 제1 버퍼에 저장하는 것은, 캐시가 플러싱되는 구간 동안 수행될 수 있다.
상기 생성 유닛이 제2 데이터를 제공받는 것은 캐시가 플러싱되는 구간 동안 수행될 수 있다.
상기 전송 유닛이 제2 데이터를 미리 정한 주소에 전송하는 것은, 생성 유닛이 제2 데이터를 제공받는 것이 완료된 후 시작될 수 있다.
상기 제1 내지 제3 프로세서는 버스를 통해서 서로 연결될 수 있다.
상기 제3 프로세서는, 설정 유닛으로부터 전송 파라미터를 제공받고, 전송 파라미터를 기반으로 제2 데이터를 생성할 수 있다.
상기 또 다른 과제를 해결하기 위한 본 발명의 시스템 온 칩의 일 실시예는, 메모리; 메모리와 연결된 캐시(cache); 캐시에 저장된 제1 데이터를 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서; 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되, 메모리와 제1 내지 제3 프로세서는 AXI(AMBA Advanced eXtensible Interface) 프로토콜을 따르는 버스를 통해서 서로 연결되고, 제2 프로세서는 제2 데이터를 생성하여 제1 버퍼에 저장하고, 디엠에이 모듈은, 메모리에 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과, 전송 파라미터를 기반으로 제1 버퍼에 저장된 제2 데이터를 제공받는 생성 유닛과, 전송 파라미터를 기반으로 메모리의 미리 정한 주소에 제2 데이터를 전송하는 전송 유닛을 포함하되, 설정 유닛이 전송 파라미터를 설정하는 것은 캐시가 플러싱되는 구간 동안 수행되고, 전송 유닛이 메모리의 미리 정한 주소에 제2 데이터를 전송하는 것은, 플러싱이 완료된 후 수행된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 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의 반도체 시스템의 동작 방법을 설명하는 도면들이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서, 도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 반도체 장치에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하는 블록도이다. 도 2는 도 1의 디엠에이 모듈을 설명하기 위한 블록도이다. 도 3 및 도 4는 도 1의 반도체 장치의 동작을 설명하기 위한 개략도들이다.
이하에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(100)는 디엠에이 모듈(110)과 버퍼(160)를 포함할 수 있다.
디엠에이 모듈(110)은 메모리(200)에 직접 엑세스(access)할 수 있다.
구체적으로, 디엠에이 모듈(110)은 데이터를 직접 생성하거나 외부 장치로부터 제공받아 버퍼(160)에 저장할 수 있고, 버퍼(160)에 저장된 데이터를 메모리(200)에 전송할 수 있다.
또한 디엠에이 모듈(110)은 메모리(200)에 리드(read) 또는 라이트(write) 동작을 수행할 수 있다.
버퍼(160)는 디엠에이 모듈(110)에 의해 제공받은 데이터를 저장할 수 있다. 여기에서, 디엠에이 모듈(110)이 데이터 전송시 버스(미도시)를 차지하지 못하는 경우가 발생할 수도 있는바, 디엠에이 모듈(110)이 성능 저하 없이 원활하게 동작할 수 있도록 충분한 크기의 버퍼(160)가 확보되는 것이 바람직하다.
구체적으로, 버퍼(160)는, 디엠에이 모듈(110)이 한번에 메모리(200)로 전송할 수 있는 데이터의 최대량 보다 큰 여유 공간을 가지는 것이 바람직하다.
추가적으로, 메모리(200)는 예를 들어, DRAM을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 메모리(200)는 일반 데이터를 저장하는 데이터 영역과 스페어 영역을 포함할 수 있다. 메모리(200)의 영역들 각각은 복수의 메모리 블록들로 구성될 수 있다. 이러한 메모리(200)의 상세 구성은 본 기술분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있는바, 자세한 설명은 생략하도록 한다.
도 2를 참조하면, 디엠에이 모듈(110)은 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)을 포함할 수 있다.
설정 유닛(115)은 메모리(200)에 제1 데이터를 라이트하기 위한 전송 파라미터(DP)를 설정할 수 있다.
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 전송 파라미터(DP)와 관련된 정보(DP.I)를 제공받아, 전송 파라미터(DP)를 설정할 수 있다. 여기에서 전송 파라미터(DP)는 예를 들어, 메모리(200)로 전송하고자 하는 제1 데이터의 크기, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 버퍼(160)의 주소, 제1 데이터를 전송하고자 하는 메모리(200)의 미리 정한 주소를 포함할 수 있으나, 이에 한정되는 것은 아니다. 제1 데이터는 메모리(200)에 전송하고자하는 데이터이다.
여기에서, 프로세서(250)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 제1 데이터는 메모리(200)의 미리 정한 주소에 저장하고자 하는 최신 데이터를 포함할 수 있다.
설정 유닛(115)은 프로세서(250)로부터 전송 파라미터와 관련된 정보(DP.I) 뿐만 아니라 캐시의 무효화(이하에서는, 플러싱이라고 함)와 관련된 정보(CI.I)도 제공받을 수 있으며, 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 전송 파라미터(DP)의 설정 동작을 시작할 수 있다. 즉, 전송 파라미터(DP)는 프로세서(250)로부터 제공받은 전송 파라미터와 관련된 정보(DP.I)를 기반으로 설정되고, 이러한 설정 동작의 시작 시점은 프로세서(250)로부터 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 결정될 수 있다.
여기에서, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 설정 유닛(115)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 보다 구체적으로, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 먼저 설정 유닛(115)으로 제공된 후, 설정 유닛(115)에서 전송 유닛(125)으로 제공되는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 즉, 캐시의 플러싱과 관련된 정보(CI.I)는 프로세서(250)에서 설정 유닛(115)을 거치지 않고 바로 전송 유닛(125)으로 제공될 수도 있고, 캐시(300)의 플러싱이 시작되면, 캐시(300)는 자체적으로 캐시의 플러싱과 관련된 정보(CI.I)를 생성하여, 전송 유닛(125)으로 제공할 수도 있다. 다만, 설명의 편의를 위해 프로세서(250)로부터 설정 유닛(115)으로 캐시의 플러싱과 관련된 정보(CI.I)가 제공되는 것을 예로 들어 설명하도록 한다.
설정 유닛(115)이 전송 파라미터(DP)를 설정하는 것은, 프로세서(250)가 캐시(300)에 저장된 제2 데이터를 메모리(200)의 미리 정한 주소에 플러싱하는 동안 수행될 수 있다. 여기에서, 제2 데이터는 예전 데이터(즉, 업데이트 되지 않은 데이터)로써, 최신 데이터인 제1 데이터와 다른 데이터일 수 있다. 또한 프로세서(250)는 캐시(300)를 플러싱하는 동작 이외에도 캐시(300)로 리드 또는 라이트 동작을 수행할 수 있다.
설정 유닛(115)은 설정된 전송 파라미터(DP)를 생성 유닛(120)과 전송 유닛(125)으로 제공할 수 있다. 또한 설정 유닛(115)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(125)에 제공할 수 있는바, 이에 대한 구체적인 설명은 후술하도록 한다.
생성 유닛(120)은 설정된 전송 파라미터(DP)를 기반으로 메모리(200)로 전송할 제1 데이터를 생성할 수 있다.
구체적으로, 생성 유닛(120)은 설정 유닛(115)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 제1 데이터를 생성할 수 있다. 여기에서, 생성 유닛(120)이 데이터를 생성한다는 것은, 생성 유닛(120)이 데이터를 외부 장치(350)로부터 제공받거나(리드하거나) 직접 생성하는 것을 포함할 수 있다. 또한 생성 유닛(120)은 생성한 제1 데이터를 버퍼(160)에 저장(라이트)할 수 있다.
여기에서, 외부 장치(350)는 예를 들어, MMC(Multi-Media Card)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
즉, 생성 유닛(120)은 전송 파라미터(DP)에서 가리키는 데이터의 크기에 맞추어서 제1 데이터를 생성하고, 생성한 제1 데이터를 전송 파라미터(DP)에서 가리키는 버퍼(160)의 주소에 저장할 수 있다.
생성 유닛(120)은 외부 장치(350)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 생성 유닛(120)은 제1 데이터를 생성하기 위해 외부 장치(350)로부터 제1 데이터를 제공받을 수도 있다고 하였는바, 생성 유닛(120)은 이와 같은 리드 동작 이외에 외부 장치(350)로 데이터를 라이트하는 동작도 수행할 수 있다.
전송 유닛(125)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 라이트할 수 있다.
구체적으로, 전송 유닛(125)은 설정 유닛(115)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다. 여기에서, 전송 유닛(125)은 버퍼(160)에 저장된 제1 데이터를 메모리(200)로 전송할 수 있다.
즉, 전송 유닛(125)은 전송 파라미터(DP)에서 가리키는 버퍼(160)의 주소에 저장된 제1 데이터를 리드하여, 전송 파라미터(DP)에서 가리키는 메모리(200)의 미리 정한 주소로 제1 데이터를 전송(라이트)할 수 있다.
전송 유닛(125)이 메모리(200)의 미리 정한 주소에 제1 데이터를 전송하는 것은, 캐시(300)의 플러싱이 완료된 후 수행될 수 있다.
또한 전송 유닛(125)은 설정 유닛(115)으로부터 캐시(300)의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 시작된다는 정보)를 제공받아 캐시(300)가 플러싱되는 구간 동안 비활성화될 수 있다. 여기에서, 전송 유닛(125)이 비활성화되는 시점은 캐시(300)의 플러싱이 시작되기 전 또는 시작과 동시 또는 시작된 후 모두 가능하다.
캐시(300)의 플러싱이 완료된 후에, 전송 유닛(125)은 설정 유닛(115)으로부터 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 완료되었다는 정보)를 제공받아 활성화될 수 있다.
전송 유닛(125)은 메모리(200)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 전송 유닛(125)은 제1 데이터를 메모리(200)의 미리 정한 주소로 전송할 수 있다고 하였는바, 전송 유닛(125)은 이와 같은 라이트 동작 이외에 메모리(200)로부터 데이터를 리드하는 동작도 수행할 수 있다.
도 2 및 도 3을 참조하면, 디엠에이 모듈의 동작이 캐시의 무효화(즉, 플러싱)가 완료된 후 시작되는 모습이 도시되어 있다. 도 3은, 본 발명의 일 실시예에 따른 반도체 장치(100)가 적용되지 않은 케이스이다.
즉, 프로세서가 캐시를 플러싱하는 구간(Cache Invalidation)(시간 t1~t2)에서는 디엠에이 모듈의 동작이 블로킹될 수 있다. 이는 캐시를 플러싱하는 구간(시간 t1~t2) 동안 디엠에이 모듈의 동작이 블로킹되지 않는다면, 캐시가 플러싱되는 메모리의 주소와 디엠에이 모듈이 데이터를 전송하고자 하는 메모리의 주소가 동일한 경우, 디엠에이 모듈이 전송하고자하는 데이터가 최신 데이터인데도 불구하고, 캐시에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)될 수도 있기 때문이다.
이에 따라, 캐시를 플러싱하는 구간(시간 t1~t2)에서는 디엠에이 모듈의 동작이 블로킹되고, 캐시의 플러싱이 완료된 시간 t2에서부터는 디엠에이 모듈의 초기 설정 작업(Initial Setup)(즉, 설정 유닛이 전송 파라미터를 설정하는 것)이 시작될 수 있다.
디엠에이 모듈의 초기 설정 작업이 시간 t3에 완료되면, 시간 t3에서부터는 제1 데이터의 생성 작업(Data Creation1)(즉, 생성 유닛이 제1 데이터를 생성하는 것)이 시작될 수 있다.
또한 시간 t4에서 제1 데이터의 생성 작업이 완료되면, 시간 t4에서부터는 제2 데이터의 생성 작업(Data Creation2)(즉, 생성 유닛이 제1 데이터와 다른 최신 데이터인 제2 데이터를 생성하는 것)과 제1 데이터의 전송 작업(Data transfer 1)(즉, 전송 유닛이 제1 데이터를 메모리로 전송하는 것)이 동시에 시작될 수 있다. 즉, 디엠에이 모듈의 전송 유닛의 동작과 생성 유닛의 동작은 파이프라인(pipeline)될 수 있다.
이어서, 시간 t5에서 제2 데이터의 생성 작업과 제1 데이터의 전송 작업이 완료되면, 시간 t5에서 제2 데이터의 전송 작업(Data transfer 2)(즉, 전송 유닛이 제2 데이터를 메모리로 전송하는 것)이 시작될 수 있다.
여기에서, 제2 데이터가 전송되는 메모리의 주소는 제1 데이터가 전송되는 메모리의 주소와 다를 수 있다.
이와 같이 도 3의 경우, 캐시에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)되는 것을 방지할 수 있지만, 캐시의 플러싱 시간만큼 디엠에이 모듈의 수행 시간이 늦춰진다는 점에서 전체적인 성능 저하 문제를 야기할 수 있다.
한편, 도 2 및 도 4를 참조하면, 디엠에이 모듈의 동작이 캐시의 무효화(즉, 플러싱)와 동시에 시작되는 모습이 도시되어 있다. 도 3은, 본 발명의 일 실시예에 따른 반도체 장치(100)가 적용된 케이스이다.
앞서 설명한 도 3과의 차이점을 중심으로 설명하도록 한다.
즉, 프로세서(250)가 캐시(300)를 플러싱하는 구간(Cache Invalidation)(시간 t1~t2)에서 도 3과 달리, 디엠에이 모듈(110)의 동작이 블로킹되지 않는다는 것을 알 수 있다.
구체적으로, 시간 t1에서 캐시(300)의 플러싱이 시작됨과 동시에, 디엠에이 모듈(110)의 전송 유닛(125)이 비활성화(Data transfer Disable)될 수 있다. 물론, 디엠에이 모듈(110)의 전송 유닛(125)이 비활성화되는 시점은 앞서 설명한 바와 같이, 캐시(300)의 플러싱이 시작되기 전 또는 시작과 동시에 또는 시작된 후 모두 가능하지만, 설명의 편의를 위해 도 4에서는, 캐시(300)의 플러싱이 시작됨과 동시에 진행되는 것으로 설명하기로 한다.
여기에서, 전송 유닛(125)의 비활성화 구간은 시간 t4 즉, 캐시(300)의 플러싱이 완료되는 시점까지 지속될 수 있다. 이는 캐시(300)에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트(over write)되는 것을 방지하기 위해서이다.
캐시(300)의 플러싱이 시작된 시간 t1보다 조금 경과된 시간 t2에서 디엠에이 모듈(110)의 초기 설정 작업(Initial Setup)(즉, 설정 유닛(115)이 전송 파라미터(DP)를 설정하는 것)이 시작될 수 있다.
즉, 디엠에이 모듈(110)의 동작이 캐시(300)가 플러싱되는 구간동안 수행될 수 있다. 이에 따라, 앞서 설명한 도 4와 달리, 캐시(300)의 플러싱 시간만큼 디엠에이 모듈의 수행 시간이 늦춰짐으로써 발생하는 전체적인 성능 저하 문제를 방지할 수 있다. 다시 말하자면, 도 4에서 보다 캐시(300)의 플러싱 시간만큼 디엠에이 모듈(110)의 수행 시간을 앞당김으로써 전체적인 성능을 향상시킬 수 있다.
디엠에이 모듈(110)의 초기 설정 작업이 시간 t3에 완료되면, 시간 t3에서부터는 제1 데이터의 생성 작업(Data Creation1)(즉, 생성 유닛이 제1 데이터를 생성하는 것)이 시작될 수 있다. 여기에서, 제1 데이터의 생성 작업은 캐시(300)의 플러싱 구간과 파이프라인 될 수 있다.
구체적으로, 제1 데이터의 생성 작업은 캐시(300)의 플러싱 구간 중 시작되어(즉, 시간 t1에서 시간 t4 사이에 시작되어), 캐시의 플러싱 구간이 종료되기 전 또는 종료와 동시에 또는 종료된 후 종료될 수 있다.
또한 시간 t4에서 캐시(300)의 플러싱이 완료되면, 시간 t4 이후부터는 디엠에이 모듈(110)의 전송 유닛(125)이 활성화(Data transfer Enable)될 수 있다. 이에 따라, 제1 데이터의 생성 작업이 시간 t5에서 완료되면, 시간 t5에서부터는 제2 데이터의 생성 작업(Data Creation2)(즉, 생성 유닛(120)이 제1 데이터와 다른 최신 데이터인 제2 데이터를 생성하는 것)과 제1 데이터의 전송 작업(Data transfer 1)(즉, 전송 유닛(125)이 제1 데이터를 메모리(200)로 전송하는 것)이 동시에 시작될 수 있다.
즉, 디엠에이 모듈(110)의 전송 유닛(125)의 동작과 생성 유닛(120)의 동작은 파이프라인(pipeline)될 수 있다.
이어서, 시간 t6에서 제2 데이터의 생성 작업과 제1 데이터의 전송 작업이 완료되면, 시간 t6에서 제2 데이터의 전송 작업(Data transfer 2)(즉, 전송 유닛(125)이 제2 데이터를 메모리(200)로 전송하는 것)이 시작될 수 있다.
본 발명의 일 실시예에 따른 반도체 장치(100)는, 전송 유닛(125)의 비활성화 구간을 캐시(300)의 플러싱이 완료되는 시점까지 유지함으로써, 캐시(300)에 의해 플러싱된 데이터(즉, 업데이트되지 않은 데이터 또는 오래된 데이터)가 최신 데이터 위에 오버라이트되는 것을 방지할 수 있고, 캐시(300)의 플러싱 시간만큼 디엠에이 모듈(110)의 수행 시간을 앞당김으로써 전체적인 성능을 향상시킬 수 있다.
또한 본 발명의 몇몇 실시예에서, 이러한 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)은 하드웨어 형태로 구현되고 있지만, 본 발명이 이에 한정되는 것은 아니다. 즉, 설정 유닛(115), 생성 유닛(120), 전송 유닛(125)은 소프트웨어 형태로 구현되어 디엠에이 모듈(110)에 코드(code) 형태로 저장될 수 있다.
이하에서는, 도 5 및 도 6을 참조하여, 본 발명의 일 실시예에 따른 반도체 시스템에 대해 설명하도록 한다. 앞서 설명한 도 1 및 도 2의 내용과 중복되는 내용은 생략하도록 한다.
도 5는 본 발명의 일 실시예에 따른 반도체 시스템을 설명하는 블록도이다. 도 6은 도 5의 제2 프로세서를 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 반도체 시스템(400)은 제1 프로세서(410), 캐시(420), 제2 프로세서(430), 버스(470)를 포함할 수 있다.
제1 프로세서(410)는 캐시(420)에 저장된 데이터(예를 들면, 예전 데이터, 즉, 업데이트 되지 않은 데이터)를 메모리(200)의 미리 정한 주소에 플러싱할 수 있다.
구체적으로, 제1 프로세서(410)는 캐시(420)를 플러싱하는 동작 이외에도 캐시(420)로 리드 또는 라이트 동작을 수행할 수 있다. 또한 제1 프로세서(410)는 제2 프로세서(430)로 전송 파라미터(DP)와 관련된 정보 및 캐시(420)의 플러싱과 관련된 정보를 제공할 수 있다.
여기에서, 제1 프로세서(410)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있고, 메모리(200)는 DRAM을 포함할 수 있는바, 이에 한정되는 것은 아니다.
캐시(420)는 제1 프로세서(410)에 의해 플러싱될 수 있다.
구체적으로, 캐시(420)는 제1 프로세서(410)에 의해 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. 또한 캐시(420)는 버스(470)를 통해서 메모리(200)와 연결될 수 있다.
제2 프로세서(430)는 캐시(420)에 저장된 데이터와 다른 데이터(최신 데이터)를 생성하여 메모리(200)의 미리 정한 주소에 전송할 수 있다.
여기에서, 제2 프로세서(430)는 내부적으로 데이터를 직접 생성하거나 외부 장치(350)로부터 제공받을 수 있다.
버스(470)는 제1 프로세서(410), 제2 프로세서(430), 캐시(420)를 서로 연결시켜줄 뿐만 아니라, 반도체 시스템(400)과 메모리(200)를 연결시킬 수 있다.
구체적으로, 제1 프로세서(410)가 제2 프로세서(430)로 전송 파라미터(DP)와 관련된 정보 및 캐시(420)의 플러싱과 관련된 정보를 제공하는 것, 캐시(420)가 메모리(200)의 미리 저장된 주소로 플러싱되는 것, 제2 프로세서(430)가 메모리(200)의 미리 저장된 주소로 데이터를 전송하는 것 모두 버스(470)를 통해서 이루어질 수 있다.
추가적으로, 도 5에서는, 반도체 시스템(400)이 제1 프로세서(410), 캐시(420), 제2 프로세서(430), 버스(470)를 포함하는 것으로 도시되었지만, 이에 한정되는 것은 아니다. 즉, 반도체 시스템(400)은 메모리(200)와 외부 장치(350)도 포함할 수 있다.
도 6을 참조하면, 제2 프로세서(430)는 디엠에이 모듈(440)과 버퍼(450)를 포함할 수 있다. 여기에서, 제2 프로세서(430)는 도 2의 반도체 장치(100)일 수 있다.
따라서, 디엠에이 모듈(440)은 메모리(200)에 버스(470)를 통해서 직접 엑세스할 수 있다.
구체적으로, 디엠에이 모듈(440)은 메모리(200)에 데이터를 전송하기 위한 전송 파라미터(DP)를 설정하고, 전송 파라미터(DP)를 기반으로 메모리(200)에 전송하고자 하는 데이터를 생성하여 버퍼(450)에 저장할 수 있다. 또한 디엠에이 모듈(440)은 버퍼(450)에 저장된 데이터를 메모리(200)의 미리 정한 주소에 전송할 수 있다. 여기에서, 디엠에이 모듈(440)은 메모리(200)에 전송하고자 하는 데이터를 내부적으로 직접 생성하거나 외부 장치(350)로부터 제공받을 수 있다.
또한 앞서 설명한 바와 같이, 디엠에이 모듈(440)은 설정 유닛(442), 생성 유닛(445), 전송 유닛(447)을 포함할 수 있는바, 이에 대한 구체적인 설명은 생략하도록 한다.
추가적으로, 캐시의 플러싱과 관련된 정보(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)으로 제공할 수도 있다.
이하에서는, 도 7 및 도 8을 참조하여, 본 발명의 다른 실시예에 따른 반도체 시스템에 대해 설명하도록 한다. 앞서 설명한 실시예들의 내용과 중복되는 내용은 생략하도록 한다.
도 7은 본 발명의 다른 실시예에 따른 반도체 시스템을 설명하는 블록도이다. 도 8은 도 7의 제2 및 제3 프로세서를 설명하기 위한 블록도이다.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 반도체 시스템(500)은 제1 프로세서(510), 캐시(520), 제2 프로세서(530), 제3 프로세서(580), 버스(595)를 포함할 수 있다.
제1 프로세서(510)는 캐시(520)에 저장된 데이터(예를 들면, 예전 데이터, 즉, 업데이트 되지 않은 데이터)를 메모리(200)의 미리 정한 주소에 플러싱할 수 있다.
구체적으로, 제1 프로세서(510)는 캐시(520)를 플러싱하는 동작 이외에도 캐시(520)로 리드 또는 라이트 동작을 수행할 수 있다. 또한 제1 프로세서(510)는 제2 프로세서(530)로 전송 파라미터(DP)와 관련된 정보 및 캐시(520)의 플러싱과 관련된 정보를 제공할 수 있다.
여기에서, 제1 프로세서(510)는 예를 들어, CPU(Central Processing Unit)를 포함할 수 있고, 메모리(200)는 DRAM을 포함할 수 있는바, 이에 한정되는 것은 아니다.
캐시(520)는 제1 프로세서(510)에 의해 플러싱될 수 있다.
구체적으로, 캐시(520)는 제1 프로세서(510)에 의해 메모리(200)의 미리 정한 주소로 플러싱될 수 있다. 또한 캐시(520)는 버스(595)를 통해서 메모리(200)와 연결될 수 있다.
제2 프로세서(530)는 캐시(520)에 저장된 데이터와 다른 데이터(최신 데이터)를 메모리(200)의 미리 정한 주소에 전송할 수 있다.
여기에서, 제2 프로세서(530)는 제3 프로세서(580)에 저장된 데이터를 제공받아(즉, 리드하여) 메모리(200)에 전송할 수 있다.
제3 프로세서(580)는 외부 장치(350)로부터 메모리(200)에 전송하고자 하는 데이터를 제공받아 저장할 수 있다.
버스(595)는 제1 프로세서(510), 제2 프로세서(530), 제3 프로세서(580), 캐시(520)를 서로 연결시켜줄 뿐만 아니라, 반도체 시스템(500)과 메모리(200)를 연결시킬 수 있다.
구체적으로, 제1 프로세서(510)가 제2 프로세서(530)로 전송 파라미터(DP)와 관련된 정보 및 캐시(520)의 플러싱과 관련된 정보를 제공하는 것, 제2 프로세서(510)가 제3 프로세서(580)로 전송 파라미터(DP)를 제공하는 것, 제2 프로세서(530)가 제3 프로세서(580)에 저장된 데이터를 제공받는 것, 캐시(520)가 메모리(200)의 미리 저장된 주소로 플러싱되는 것, 제2 프로세서(530)가 메모리(200)의 미리 저장된 주소로 데이터를 전송하는 것 모두 버스(595)를 통해서 이루어질 수 있다.
도 8을 참조하면, 제2 프로세서(530)는 디엠에이 모듈(540)과 제1 버퍼(560)를 포함할 수 있다.
구체적으로, 디엠에이 모듈(540)은 설정 유닛(542), 생성 유닛(545), 전송 유닛(547)을 포함할 수 있다.
설정 유닛(542)은 메모리(200)에 제1 데이터를 라이트하기 위한 전송 파라미터(DP)를 설정할 수 있다.
구체적으로, 설정 유닛(542)은 제1 프로세서(510)로부터 버스(595)를 통해 전송 파라미터(DP)와 관련된 정보를 제공받아, 전송 파라미터(DP)를 설정할 수 있다. 여기에서 전송 파라미터(DP)는 예를 들어, 메모리(200)로 전송하고자 하는 제1 데이터의 크기, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 제1 버퍼(560)의 주소, 메모리(200)로 전송하고자 하는 제1 데이터가 저장된 제2 버퍼(590)의 주소, 제1 데이터를 전송하고자 하는 메모리(200)의 미리 정한 주소를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한 제1 데이터는 메모리(200)에 전송하고자하는 최신 데이터를 포함할 수 있다.
설정 유닛(542)은 제1 프로세서(510)로부터 버스(595)를 통해 전송 파라미터(DP)와 관련된 정보뿐만 아니라 캐시의 무효화(이하에서는, 플러싱이라고 함)와 관련된 정보(CI.I)도 제공받을 수 있으며, 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 전송 파라미터(DP)의 설정 동작을 시작할 수 있다. 즉, 전송 파라미터(DP)는 제1 프로세서(510)로부터 제공받은 전송 파라미터(DP)와 관련된 정보를 기반으로 설정되고, 이러한 설정 동작의 시작 시점은 제1 프로세서(510)로부터 제공받은 캐시의 플러싱과 관련된 정보(CI.I)를 기반으로 결정될 수 있다.
여기에서, 캐시의 플러싱과 관련된 정보(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)가 제공되는 것을 예로 들어 설명하도록 한다.
설정 유닛(542)이 전송 파라미터(DP)를 설정하는 것은, 제1 프로세서(510)가 캐시(520)에 저장된 제2 데이터를 메모리(200)의 미리 정한 주소에 플러싱하는 동안 수행될 수 있다. 여기에서, 제2 데이터는 예전 데이터(즉, 업데이트 되지 않은 데이터)로써, 최신 데이터인 제1 데이터와 다른 데이터일 수 있다.
설정 유닛(542)은 설정된 전송 파라미터(DP)를 생성 유닛(545)과 전송 유닛(547)으로 제공할 수 있다. 또한 설정 유닛(542)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(547)에 제공할 수 있다.
생성 유닛(545)은 설정된 전송 파라미터(DP)를 기반으로 메모리(200)로 전송할 제1 데이터를 생성할 수 있다.
구체적으로, 생성 유닛(545)은 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 제3 프로세서(580)의 제2 버퍼(590)에 저장된 제1 데이터를 제공받을 수 있다. 또한 생성 유닛(545)이 제1 데이터를 제공받는 것은 캐시(520)가 플러싱되는 구간 동안 수행될 수 있다.
여기에서, 생성 유닛(545)은 제3 프로세서(580)의 제2 버퍼(590)로부터 버스(595)를 통해 데이터를 제공받거나 내부적으로 직접 데이터를 생성할 수 있다.
또한, 생성 유닛(545)은 제1 데이터를 전송 파라미터(DP)에서 가리키는 제1 버퍼(560)의 주소에 저장할 수 있다.
전송 유닛(547)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 라이트할 수 있다.
구체적으로, 전송 유닛(547)은 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받을 수 있고, 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다. 여기에서, 전송 유닛(547)은 제1 버퍼(560)에 저장된 제1 데이터를 메모리(200)로 전송할 수 있다.
즉, 전송 유닛(547)은 전송 파라미터(DP)에서 가리키는 제1 버퍼(560)의 주소에 저장된 제1 데이터를 리드하여, 전송 파라미터(DP)에서 가리키는 메모리(200)의 미리 정한 주소로 제1 데이터를 전송(라이트)할 수 있다.
전송 유닛(547)이 메모리(200)의 미리 정한 주소에 제1 데이터를 전송하는 것은, 캐시(520)의 플러싱이 완료된 후 수행될 수 있다.
또한 전송 유닛(547)은 설정 유닛(542)으로부터 캐시(520)의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 시작된다는 정보)를 제공받아 캐시(520)가 플러싱되는 구간 동안 비활성화될 수 있다. 여기에서, 전송 유닛(547)이 비활성화되는 시점은 캐시(520)의 플러싱이 시작되기 전 또는 시작과 동시 또는 시작된 후 모두 가능하다.
캐시(520)의 플러싱이 완료된 후에, 전송 유닛(547)은 설정 유닛(542)으로부터 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 완료되었다는 정보)를 제공받아 활성화될 수 있다.
전송 유닛(547)은 메모리(200)로 리드 또는 라이트 동작을 수행할 수 있다. 앞서 설명한 바와 같이, 전송 유닛(547)은 제1 데이터를 메모리(200)의 미리 정한 주소로 전송할 수 있다고 하였는바, 전송 유닛(547)은 이와 같은 라이트 동작 이외에 메모리(200)로 데이터를 리드하는 동작도 수행할 수 있다.
제3 프로세서(580)는 제2 버퍼(590)를 포함할 수 있다.
구체적으로, 제3 프로세서(580)는 제1 데이터를 생성하여 제2 버퍼(590)에 저장할 수 있다. 즉, 제3 프로세서(580)는 설정 유닛(542)으로부터 전송 파라미터를 제공받을 수 있고, 제공받은 전송 파라미터를 기반으로 외부 장치(350)로부터 제1 데이터를 제공받거나 내부적으로 제1 데이터를 생성할 수 있다.
즉, 도 8에 도시된 반도체 시스템(500)은, 도 6에 도시된 반도체 시스템(400)과 달리, 외부 장치(350)로부터 데이터를 제공받는 프로세서(즉, 제3 프로세서(580))와 외부 장치(350)로부터 제공받은 데이터를 메모리(200)로 전송하는 프로세서(즉, 제2 프로세서(530))가 별개로 존재한다는 것을 알 수 있다.
또한 도 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)를 구성할 수 있다.
또한 도 9를 참조하면, 본 발명의 다른 실시예에 따른 반도체 시스템(500)은 제1 프로세서(510), 캐시(520), 제2 프로세서(530), 제3 프로세서(580)를 포함하며, 이들은 하나의 시스템 온 칩(System on Chip)(600)으로 구현될 수도 있고, 이들 각 요소들은 시스템 온 칩 내의 내부 버스, 예컨대 AXI(AMBA Advanced eXtensible Interface) 프로토콜에 따르는 버스를 통해 상호 연결될 수 있다. 또한, 본 발명의 몇몇의 실시예에서. 상기 시스템 온 칩은 단말기에 탑재되는 어플리케이션 프로세서(Application Processor)로 구현될 수 있다. 본 발명의 몇몇의 실시예에서, 상기 시스템 온 칩은 메모리(200)와 외부 장치(350)도 포함하도록 구현될 수 있다.
물론 도 7의 반도체 시스템(500) 뿐만 아니라 도 5의 반도체 시스템(400) 역시 시스템 온 칩으로 구현될 수 있으며, 이에 대한 구체적인 설명은 생략하도록 한다.
추가적으로, 반도체 시스템(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는 본 발명의 몇몇 실시예에 따른 반도체 시스템을 적용할 수 있는 예시적인 전자 시스템들이다.
도 10는 태블릿 PC(1200)을 도시한 도면이고, 도 11은 노트북(1300)을 도시한 도면이며, 도 12은 스마트폰(1400)을 도시한 것이다. 본 발명의 몇몇 실시예에 따른 반도체 시스템(400, 500)은 이러한 태블릿 PC(1200), 노트북(1300), 스마트폰(1400) 등에 사용될 수 있다.
또한, 본 발명의 몇몇 실시예에 따른 반도체 시스템(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) 등으로 구현될 수도 있다.
이하에서는, 도 13 및 도 14을 참조하여, 도 1의 반도체 장치의 동작 방법을 설명하도록 한다. 앞서 설명한 도 1의 내용과 중복되는 내용은 생략하도록 한다.
도 13 및 도 14은 도 1의 반도체 장치의 동작 방법을 설명하는 도면들이다.
도 2, 도 13, 도 14을 참조하면, 먼저, 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S100).
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다.
캐시(300)의 플러싱 시작 신호를 제공한다(S105).
구체적으로, 프로세서(250)는 캐시(300)에 플러싱 시작 신호를 제공할 수 있다.
디엠에이 모듈(110)의 데이터 전송 동작이 비활성화된다(S107).
구체적으로, 설정 유닛(115)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(125)으로 제공할 수 있다. 또한 전송 유닛(125)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.
캐시(300)의 플러싱이 시작된다(S110).
구체적으로, 캐시(300)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다.
본 발명에서, S100, S105, S107, S110가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 프로세서(250)는 캐시(300)에 플러싱 시작 신호를 제공한 후(S105), 설정 유닛(115)으로 전송 파라미터와 관련된 정보(DP.I) 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S100)할 수도 있다.
따라서, 전송 유닛(125)이 비활성화되는 시점(S107)은 캐시(300)의 플러싱이 시작되는 시점(S110)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.
캐시(300)의 플러싱이 시작된 후, 설정 유닛(115)은 프로세서(250)로부터 제공받은 전송 파라미터와 관련된 정보(DP.I)를 토대로 전송 파라미터(DP)를 설정할 수 있다. 또한 설정 유닛(115)은 전송 파라미터(DP)를 설정하여 생성 유닛(120)으로 제공할 수 있다(S113).
데이터를 생성한다(S115).
구체적으로, 생성 유닛(120)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 생성할 수 있다. 생성 유닛(120)은 내부적으로 직접 제1 데이터를 생성하거나 외부 장치(350)로부터 제1 데이터를 제공받을 수 있다.
버퍼(160)에 데이터를 저장한다(S117).
구체적으로, 생성 유닛(120)은 전송 파라미터(DP)가 가리키는 버퍼(160)의 주소에 제1 데이터를 저장할 수 있다.
프로세서(250)는 캐시(300)의 플러싱이 종료되면(S120), 설정 유닛(115)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(300)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(300)의 플러싱이 종료되지 않았다면, 전송 유닛(125)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S122).
디엠에이 모듈(110)의 데이터 전송 동작이 활성화된다(S125).
구체적으로, 설정 유닛(115)은 프로세서(250)로부터 캐시(300)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(125)으로 제공할 수 있다.
전송 유닛(125)은 캐시(300)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다.
버퍼(160)에 저장된 데이터를 리드한다(S127).
구체적으로, 전송 유닛(125)은 전송 파라미터(DP)를 기반으로 버퍼(160)에 저장된 제1 데이터를 리드할 수 있다.
메모리(200)로 데이터를 전송한다(S130).
구체적으로, 전송 유닛(125)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.
이하에서는, 도 15 및 도 16를 참조하여, 도 5의 반도체 시스템의 동작 방법을 설명하도록 한다. 앞서 설명한 도 5의 내용과 중복되는 내용은 생략하도록 한다.
도 15 및 도 16는 도 5의 반도체 시스템의 동작 방법을 설명하는 도면들이다.
도 6, 도 15, 도 16를 참조하면, 먼저, 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S200).
구체적으로, 제2 프로세서(430)의 디엠에이 모듈(440)에 포함된 설정 유닛(442)은 제1 프로세서(410)로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다.
캐시(420)의 플러싱 시작 신호를 제공한다(S205).
구체적으로, 제1 프로세서(410)는 캐시에 무효화(즉, 플러싱) 시작 신호를 제공할 수 있다.
디엠에이 모듈(440)의 데이터 전송 동작이 비활성화된다(S207).
구체적으로, 설정 유닛(442)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(447)으로 제공할 수 있다. 또한 전송 유닛(447)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(420)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.
캐시(420)의 플러싱이 시작된다(S210).
구체적으로, 캐시(420)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다.
본 발명에서, S200, S205, S207, S210가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 제1 프로세서(410)는 캐시(420)에 플러싱 시작 신호를 제공한 후(S205), 설정 유닛(442)으로 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S200)할 수도 있다.
따라서, 전송 유닛(447)이 비활성화되는 시점(S207)은 캐시(420)의 플러싱이 시작되는 시점(S210)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.
캐시(420)의 플러싱이 시작된 후, 설정 유닛(442)은 제1 프로세서(410)로부터 제공받은 전송 파라미터와 관련된 정보를 토대로 전송 파라미터(DP)를 설정할 수 있다. 또한 설정 유닛(442)은 전송 파라미터(DP)를 설정하여 생성 유닛(445)으로 제공할 수 있다(S213).
데이터를 생성한다(S215).
구체적으로, 생성 유닛(445)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 생성할 수 있다. 생성 유닛(445)은 내부적으로 직접 제1 데이터를 생성하거나 외부 장치(350)로부터 제1 데이터를 제공받을 수 있다.
버퍼(450)에 데이터를 저장한다(S217).
구체적으로, 생성 유닛(445)은 전송 파라미터(DP)가 가리키는 버퍼(450)의 주소에 제1 데이터를 저장할 수 있다.
제1 프로세서(410)는 캐시(420)의 플러싱이 종료되면(S220), 설정 유닛(442)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(420)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(420)의 플러싱이 종료되지 않았다면, 전송 유닛(447)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S222).
디엠에이 모듈(440)의 데이터 전송 동작이 활성화된다(S225).
구체적으로, 설정 유닛(442)은 제1 프로세서(410)로부터 캐시(420)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(447)으로 제공할 수 있다.
전송 유닛(447)은 캐시(420)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다.
버퍼(450)에 저장된 데이터를 리드한다(S227).
구체적으로, 전송 유닛(447)은 전송 파라미터(DP)를 기반으로 버퍼(450)에 저장된 제1 데이터를 리드할 수 있다.
메모리(200)로 데이터를 전송한다(S230).
구체적으로, 전송 유닛(447)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.
이하에서는, 도 17 및 도 18을 참조하여, 도 7의 반도체 시스템의 동작 방법을 설명하도록 한다. 앞서 설명한 도 7의 내용과 중복되는 내용은 생략하도록 한다.
도 17 및 도 18은 도 7의 반도체 시스템의 동작 방법을 설명하는 도면들이다.
도 7, 도 17, 도 18을 참조하면, 먼저, 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공한다(S300).
구체적으로, 제2 프로세서(530)의 디엠에이 모듈(540)에 포함된 설정 유닛(542)은 제1 프로세서(510)로부터 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공받을 수 있다.
캐시(520)의 플러싱 시작 신호를 제공한다(S305).
구체적으로, 제1 프로세서(510)는 캐시에 무효화(즉, 플러싱) 시작 신호를 제공할 수 있다.
디엠에이 모듈(540)의 데이터 전송 동작이 비활성화된다(S307).
구체적으로, 설정 유닛(542)은 캐시의 플러싱과 관련된 정보(CI.I)를 전송 유닛(547)으로 제공할 수 있다. 또한 전송 유닛(547)은 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 시작된다는 정보)를 제공받아 비활성화될 수 있다.
캐시(520)의 플러싱이 시작된다(S310).
구체적으로, 캐시(520)에 저장된 제2 데이터(예전 데이터, 즉, 업데이트 되지 않은 데이터)는 메모리(200)의 미리 정한 주소로 플러싱될 수 있다.
본 발명에서, S300, S305, S307, S310가 순차적으로 발생하는 것으로 도시하였지만, 이에 한정되는 것은 아니다. 즉, 제1 프로세서(510)는 캐시(520)에 플러싱 시작 신호를 제공한 후(S305), 설정 유닛(542)으로 전송 파라미터와 관련된 정보 및 캐시의 플러싱과 관련된 정보(CI.I)를 제공(S300)할 수도 있다.
따라서, 전송 유닛(547)이 비활성화되는 시점(S307)은 캐시(520)의 플러싱이 시작되는 시점(S310)보다 이전일 수도 있고, 동시일 수도 있으며, 이후일 수도 있다.
캐시(520)의 플러싱이 시작된 후, 설정 유닛(542)은 제1 프로세서(510)로부터 제공받은 전송 파라미터와 관련된 정보를 토대로 전송 파라미터(DP)를 설정할 수 있다. 도면에 도시되어 있지는 않지만, 제3 프로세서(580)는 설정 유닛(542)으로부터 전송 파라미터를 제공받을 수 있고, 제공받은 전송 파라미터를 기반으로 외부 장치(350)로부터 제1 데이터를 제공받거나 제1 데이터를 생성할 수 있다(S313).
설정 유닛(542)은 전송 파라미터(DP)를 설정하여 생성 유닛(545)으로 제공할 수 있다(S314).
도 18에서는, 제3 프로세서(580)가 설정 유닛(542)으로부터 전송 파라미터를 제공받아 제1 데이터를 생성하는 시점(S313)이 생성 유닛(545)이 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받는 시점(S314)보다 앞서는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다.
즉, 생성 유닛(545)이 설정 유닛(542)으로부터 전송 파라미터(DP)를 제공받는 시점은, 제3 프로세서(580)가 설정 유닛(542)으로부터 전송 파라미터를 제공받는 시점보다 이전이거나 동시이거나 이후일 수 있다.
제2 버퍼(590)로부터 데이터를 리드한다(S315).
구체적으로, 생성 유닛(545)은 제공받은 전송 파라미터(DP)를 기반으로 제1 데이터(즉, 메모리(200)의 미리 정한 주소에 전송하고자 하는 최신 데이터)를 제2 버퍼(590)로부터 리드할 수 있다. 물론 생성 유닛(545)은 내부적으로 직접 제1 데이터를 생성할 수도 있지만, 설명의 편의를 위해 제2 버퍼(590)에 저장된 제1 데이터를 제공받는 경우를 예로 들어 설명하도록 한다.
제1 버퍼(560)에 데이터를 저장한다(S317).
구체적으로, 생성 유닛(545)은 전송 파라미터(DP)가 가리키는 제1 버퍼(560)의 주소에 제1 데이터를 저장할 수 있다.
제1 프로세서(510)는 캐시(520)의 플러싱이 종료되면(S320), 설정 유닛(542)으로 캐시의 플러싱과 관련된 정보(CI.I)(예를 들면, 캐시(520)의 플러싱이 완료되었다는 정보)를 제공할 수 있다. 그러나, 캐시(520)의 플러싱이 종료되지 않았다면, 전송 유닛(547)의 비활성화 상태가 유지될 수 있다(즉, 디엠에이 모듈의 데이터 전송 동작 비활성화 상태 유지)(S322).
디엠에이 모듈(540)의 데이터 전송 동작이 활성화된다(S325).
구체적으로, 설정 유닛(542)은 제1 프로세서(510)로부터 캐시(520)의 플러싱이 완료되었다는 정보를 제공받으면, 이를 전송 유닛(547)으로 제공할 수 있다.
전송 유닛(547)은 캐시(520)의 플러싱이 완료되었다는 정보를 제공받고, 활성화될 수 있다.
제1 버퍼(560)에 저장된 데이터를 리드한다(S327).
구체적으로, 전송 유닛(547)은 전송 파라미터(DP)를 기반으로 제1 버퍼(560)에 저장된 제1 데이터를 리드할 수 있다.
메모리(200)로 데이터를 전송한다(S330).
구체적으로, 전송 유닛(547)은 전송 파라미터(DP)를 기반으로 메모리(200)의 미리 정한 주소에 제1 데이터를 전송할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 메모리에 직접 엑세스하여 상기 메모리의 미리 정한 주소에 제1 데이터를 라이트(write)하는 디엠에이 모듈을 포함하되,
    상기 디엠에이 모듈은,
    프로세서가 캐시에 저장된 제2 데이터를 상기 메모리의 상기 미리 정한 주소에 플러싱(flushing)하는 구간 동안, 상기 메모리에 상기 제1 데이터를 라이트하기 위한 전송 파라미터를 설정하는 설정 유닛과,
    상기 설정된 전송 파라미터를 기반으로 상기 메모리로 전송할 제1 데이터를 생성하는 생성 유닛과,
    상기 플러싱이 완료된 후에, 상기 전송 파라미터를 기반으로 상기 메모리의 상기 미리 정한 주소에 상기 생성된 제1 데이터를 라이트하는 전송 유닛을 포함하되, 상기 생성 유닛은 상기 캐시가 플러싱되는 구간 동안 상기 제1 데이터의 적어도 일부를 생성하는 반도체 장치.
  2. 제 1항에 있어서,
    상기 제1 데이터는 상기 제2 데이터와 다른 데이터인 반도체 장치.
  3. 제 1항에 있어서,
    상기 생성 유닛이 상기 제1 데이터를 생성하는 것은, 상기 생성 유닛이 상기 제1 데이터를 외부 장치로부터 제공받거나 직접 생성하는 것을 포함하는 반도체 장치.
  4. 제 1항에 있어서,
    상기 제1 데이터가 저장되는 버퍼를 더 포함하는 반도체 장치.
  5. 제 4항에 있어서,
    상기 전송 파라미터는, 상기 제1 데이터의 크기 또는 상기 제1 데이터가 저장된 상기 버퍼의 주소 또는 상기 메모리의 상기 미리 정한 주소를 포함하는 반도체 장치.
  6. 제 1항에 있어서,
    상기 설정 유닛은, 상기 프로세서로부터 상기 전송 파라미터와 관련된 정보 및 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.
  7. 제 1항에 있어서,
    상기 전송 유닛은 상기 프로세서로부터 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.
  8. 제 1항에 있어서,
    상기 전송 유닛은 상기 캐시로부터 상기 캐시의 플러싱과 관련된 정보를 제공받는 반도체 장치.
  9. 제 1항에 있어서,
    상기 생성 유닛이 상기 제1 데이터를 생성하는 것은 상기 설정 유닛이 상기 전송 파라미터를 설정하는 것이 완료된 후 시작되는 반도체 장치.
  10. 제 9항에 있어서,
    상기 생성 유닛이 상기 제1 데이터를 생성하는 것은 상기 캐시가 플러싱되는 구간 동안 수행되는 반도체 장치.
  11. 제 9항에 있어서,
    상기 생성 유닛이 상기 제1 데이터를 생성하는 것은 상기 설정 유닛이 상기 전송 파라미터를 설정하는 것에 연속되는 반도체 장치.
  12. 제 1항에 있어서,
    상기 제1 데이터가 저장되는 버퍼를 더 포함하되,
    상기 제1 데이터는 제3 및 제4 데이터를 포함하고,
    상기 생성 유닛은 상기 제3 데이터를 생성하여 상기 버퍼에 저장하는 제1 생성 동작과 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 제2 생성 동작을 수행하고,
    상기 생성 유닛은 상기 제1 생성 동작을 완료한 후 상기 제2 생성 동작을 수행하는 반도체 장치.
  13. 제 12항에 있어서,
    상기 미리 정한 주소는 제1 주소와 제2 주소를 포함하고,
    상기 전송 유닛은 상기 제3 데이터를 상기 제1 주소로 전송하는 제1 전송 동작과 상기 제4 데이터를 상기 제2 주소로 전송하는 제2 전송 동작을 수행하고,
    상기 전송 유닛은 상기 제1 전송 동작을 완료한 후 상기 제2 전송 동작을 수행하고,
    상기 제1 전송 동작은 상기 제2 생성 동작이 수행되는 구간 동안 수행되는 반도체 장치.
  14. 제 12항에 있어서,
    상기 제1 생성 동작은 상기 캐시가 플러싱되는 구간 동안 수행되고,
    상기 제2 생성 동작은 상기 캐시의 플러싱이 완료된 후 수행되는 반도체 장치.
  15. 메모리로 직접 엑세스하는 디엠에이 모듈; 및
    상기 메모리에 전송할 제1 및 제2 데이터를 저장하는 버퍼를 포함하되,
    상기 디엠에이 모듈은,
    상기 메모리에 상기 제1 및 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과,
    상기 전송 파라미터를 기반으로 상기 제1 데이터를 생성하여 상기 버퍼에 저장하는 제1 생성 동작과 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 제2 생성 동작을 순차적으로 수행하는 생성 유닛과,
    상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 상기 제1 데이터를 상기 메모리의 제1 주소로 전송하는 제1 전송 동작과 상기 버퍼에 저장된 상기 제2 데이터를 상기 메모리의 제2 주소로 전송하는 제2 전송 동작을 순차적으로 수행하는 전송 유닛을 포함하되,
    상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은, 프로세서가 캐시에 저장된 제3 데이터를 상기 제1 주소에 플러싱(flushing)하는 구간 동안 수행되고, 상기 제1 생성 동작은 상기 캐시가 플러싱되는 구간 동안 수행되고, 상기 제2 생성 동작은 상기 캐시의 플러싱이 완료된 후 수행되고, 상기 제1 전송 동작은 상기 캐시의 플러싱이 완료된 후 상기 제2 생성 동작이 수행되는 구간 동안 수행되는 반도체 장치.
  16. 버스(bus)를 통해서 메모리와 연결된 캐시(cache);
    상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱(flushing)하는 제1 프로세서; 및
    상기 제1 데이터와 다른 제2 데이터를 생성하여 상기 메모리의 상기 미리 정한 주소에 전송하는 제2 프로세서를 포함하되,
    상기 제2 프로세서는,
    상기 생성된 제2 데이터를 저장하는 버퍼와,
    상기 제1 프로세서가 상기 캐시에 저장된 상기 제1 데이터를 상기 미리 정한 주소에 플러싱하는 구간 동안 상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 상기 플러싱이 완료된 후 상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 제2 데이터를 상기 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고,
    상기 캐시가 플러싱되는 동안 상기 제2 데이터의 적어도 일부를 생성하는 반도체 시스템.
  17. 버스(bus)를 통해서 메모리와 연결된 캐시(cache);
    상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱(flushing)하는 제1 프로세서; 및
    상기 제1 데이터와 다른 제2 데이터를 생성하여 상기 버스를 통해서 상기 메모리의 상기 미리 정한 주소에 전송하는 제2 프로세서를 포함하되,
    상기 제2 프로세서는,
    상기 제2 데이터를 저장하는 버퍼와,
    상기 버퍼에 저장된 제2 데이터를 상기 미리 정한 주소에 전송하는 디엠에이 모듈을 포함하고,
    상기 디엠에이 모듈은,
    상기 캐시가 플러싱되는 구간 동안 상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하고, 상기 제1 프로세서로부터 상기 전송 파라미터와 관련된 정보 및 상기 캐시의 플러싱과 관련된 정보를 제공받는 설정 유닛과,
    상기 전송 파라미터를 기반으로 상기 메모리로 전송할 상기 제2 데이터를 생성하여 상기 버퍼에 저장하는 생성 유닛과,
    상기 플러싱이 완료된 후 상기 전송 파라미터를 기반으로 상기 버퍼에 저장된 상기 제2 데이터를 상기 메모리의 상기 미리 정한 주소에 전송하는 전송 유닛을 포함하고,
    상기 생성 유닛은 상기 캐시가 플러싱되는 구간 동안 상기 제2 데이터의 적어도 일부를 생성하는 반도체 시스템.
  18. 버스(bus)를 통해서 메모리와 연결된 캐시(cache);
    상기 캐시에 저장된 제1 데이터를 상기 메모리의 미리 정한 주소에 플러싱하는 제1 프로세서;
    상기 제1 데이터와 다른 제2 데이터를 저장하는 제1 버퍼를 포함하는 제2 프로세서; 및
    상기 메모리에 직접 엑세스하는 디엠에이 모듈을 포함하는 제3 프로세서를 포함하되,
    상기 제2 프로세서는 상기 제2 데이터를 생성하여 상기 제1 버퍼에 저장하고,
    상기 디엠에이 모듈은,
    상기 메모리에 상기 제2 데이터를 전송하기 위한 전송 파라미터를 설정하는 설정 유닛과,
    상기 전송 파라미터를 기반으로 상기 제1 버퍼에 저장된 상기 제2 데이터를 제공받는 생성 유닛과,
    상기 전송 파라미터를 기반으로 상기 메모리의 상기 미리 정한 주소에 상기 제2 데이터를 전송하는 전송 유닛을 포함하되,
    상기 설정 유닛이 상기 전송 파라미터를 설정하는 것은 상기 캐시가 플러싱되는 구간 동안 수행되고, 상기 전송 유닛이 상기 메모리의 상기 미리 정한 주소에 상기 제2 데이터를 전송하는 것은, 상기 플러싱이 완료된 후 수행되는 반도체 시스템.
  19. 제 18항에 있어서,
    상기 제3 프로세서는, 상기 제공받은 제2 데이터를 저장하는 제2 버퍼를 더 포함하는 반도체 시스템.
  20. 제 18항에 있어서,
    상기 제1 내지 제3 프로세서는 상기 버스를 통해서 서로 연결되는 반도체 시스템.

KR1020140143553A 2014-08-29 2014-10-22 반도체 장치, 반도체 시스템 및 시스템 온 칩 KR102261591B1 (ko)

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 (de) 2014-08-29 2015-07-31 Halbleitervorrichtung, Halbleitersystem und Ein-Chip-System
JP2015162240A JP6641120B2 (ja) 2014-08-29 2015-08-19 半導体装置、半導体システム及びシステムオンチップ
TW104127599A TWI682280B (zh) 2014-08-29 2015-08-25 半導體裝置、半導體系統以及系統晶片
CN201510536967.6A CN105389274B (zh) 2014-08-29 2015-08-27 半导体装置、半导体系统和片上系统

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 KR20160026599A (ko) 2016-03-09
KR102261591B1 true KR102261591B1 (ko) 2021-06-04

Family

ID=55536943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140143553A KR102261591B1 (ko) 2014-08-29 2014-10-22 반도체 장치, 반도체 시스템 및 시스템 온 칩

Country Status (3)

Country Link
JP (1) JP6641120B2 (ko)
KR (1) KR102261591B1 (ko)
TW (1) TWI682280B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868818B2 (en) * 2016-09-22 2024-01-09 Advanced Micro Devices, Inc. Lock address contention predictor
KR102526499B1 (ko) * 2020-09-28 2023-05-02 고려대학교 산학협력단 Fpga 기반 캐시 무효화 방법 및 이를 수행하는 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004258935A (ja) * 2003-02-26 2004-09-16 Matsushita Electric Ind Co Ltd 半導体装置
US20080005465A1 (en) * 2006-06-30 2008-01-03 Matthews Jeanna N Write ordering on disk cached platforms

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004258935A (ja) * 2003-02-26 2004-09-16 Matsushita Electric Ind Co Ltd 半導体装置
US20080005465A1 (en) * 2006-06-30 2008-01-03 Matthews Jeanna N Write ordering on disk cached platforms

Also Published As

Publication number Publication date
KR20160026599A (ko) 2016-03-09
JP2016051471A (ja) 2016-04-11
JP6641120B2 (ja) 2020-02-05
TW201608373A (zh) 2016-03-01
TWI682280B (zh) 2020-01-11

Similar Documents

Publication Publication Date Title
CN105389274B (zh) 半导体装置、半导体系统和片上系统
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
US8762628B2 (en) Information processing apparatus and cache method
KR102106261B1 (ko) 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
KR102479394B1 (ko) 이종 프로세서 시스템 내 캐시들 간에 데이터 이동
JP2017016660A (ja) マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
JP2014110057A (ja) 格納装置、フラッシュメモリ及び格納装置の動作方法
KR102261591B1 (ko) 반도체 장치, 반도체 시스템 및 시스템 온 칩
US20190095117A1 (en) Storage device
CN104460406A (zh) 单线通信的方法及基于单线通信的单片机固件升级方法
US9792225B2 (en) Host and computer system having the same
US9292442B2 (en) Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US9971549B2 (en) Method of operating a memory device
US11372645B2 (en) Deferred command execution
US20230169022A1 (en) Operating method of an electronic device
CN109189705B (zh) 一种usb扩展方法、装置、设备、存储介质及系统
KR102385541B1 (ko) 버스 시스템
US11593123B2 (en) Methods and apparatus for boot time reduction in a processor and programmable logic device environment
US8321605B2 (en) PIO interjection between beats of a DMA operation
US10839919B2 (en) Memory system and method of operating the same
US20060094463A1 (en) Multiprocessing apparatus for a wireless terminal and method thereof
US20180285269A1 (en) Aggregating cache maintenance instructions in processor-based devices
US20140281234A1 (en) Serving memory requests in cache coherent heterogeneous systems
US10248567B2 (en) Cache coherency for direct memory access operations

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