KR20090102870A - 컨텐츠-종결 dma - Google Patents
컨텐츠-종결 dmaInfo
- Publication number
- KR20090102870A KR20090102870A KR1020097017581A KR20097017581A KR20090102870A KR 20090102870 A KR20090102870 A KR 20090102870A KR 1020097017581 A KR1020097017581 A KR 1020097017581A KR 20097017581 A KR20097017581 A KR 20097017581A KR 20090102870 A KR20090102870 A KR 20090102870A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- transfer
- dma
- operable
- terminate
- Prior art date
Links
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- 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/38—Information transfer, e.g. on bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
컨텐츠-종결 직접 메모리 액세스(CT-DMA) 회로는 자율적으로(autonomously) 소스로부터 목적지로 알려지지 않은 길이의 데이터들을 송신하고, 데이터의 컨텐츠에 기초하여 전달을 종결한다. 필터 기준이 데이터 전달 이전에 CT-DMA에 제공된다. 필터 기준은 전달 데이터와 비교되는 패턴 데이터 및 비교 결과들을 해석하기 위한 전달 종결 규칙들을 포함한다. 데이터는 필터 기준이 충족될 때까지 목적지로 기록된다. 전형적인 필터 기준은 전달 데이터의 하나 이상의 유닛들이 패턴 데이터와 매칭되는지; 전달 데이터의 하나 이상의 유닛들이 패턴 데이터와 매칭되는데 실패하는지; 또는 전달 데이터의 하나 이상의 유닛들이 미리 결정된 횟수만큼 패턴 데이터와 매칭되는지 여부를 포함할 수 있다.
Description
본 발명은 일반적으로 컴퓨팅 시스템들에서의 직접 메모리 액세스(DMA)에 관한 것이며, 특히, 송신되고 있는 데이터의 값(들)에 응답하여 데이터 전달들을 종결하는 DMA에 관한 것이다.
휴대용 전자 디바이스들의 컴퓨팅 시스템들을 포함하는 현대의 컴퓨팅 시스템들은 사진, 그래픽 이미지, 비디오, 오디오 등을 나타내는 디지털 데이터와 같은 대량의 데이터를 프로세싱한다. 이러한 데이터는 입력/출력(I/O) 주변 디바이스로부터 메모리로, 메모리로부터 그래픽 프레임 버퍼로, 메모리의 한 영역으로부터 다른 영역으로 - 일반적으로 데이터 소스로부터 데이터 목적지로 - 와 같이 컴퓨팅 시스템 내에서 송신되어야 한다. 프로세서에 부담을 주지 않고 인트라-시스템 데이터 전달을 달성하기 위한 공지된 기술은 DMA 제어기로서 또한 공지되는 직접 메모리 액세스(DMA) 회로를 포함하는 것이다.
프로세서는 DMA 제어기의 제어 레지스터들에 정보를 기록함으로써, 또는 메모리에 제어 블럭들을 기록하고 DMA 제어기 레지스터의 제어 블럭들로 포인터를 위치시킴으로써, 소스 및 목적지 정보(메모리 어드레스들 또는 주변 장치 포트들을 포함할 수 있는) 및 송신 카운트로 DMA 제어기를 개시한다. 프로세서로부터 GO 지시 또는 명령을 수신시, DMA 제어기는 자율적으로 소스로부터 데이터를 판독하여 그것을 목적지에 기록하며, 특정 수의 데이터 유닛(unit)들이 송신되는 때까지 프로세스를 반복한다. 복잡한 DMA 제어기들은 다수의 채널들을 포함할 수 있고, 상이한 워드 크기들을 갖는 유닛들 사이에서의 데이터 전달을 위한 분산/수집 동작들과 같은, 저-레벨 데이터 전달 업무들을 처리할 수 있다. 그것은 또한 연쇄(chain) DMA 전달들로 공지된다. 연쇄 동작들에서, 후속 DMA 전달 지시를 위해 DMA 제어기가 정보(예를 들어, 새로운 소스, 목적지, 카운트 등)에 제공되거나 정보에 대해 지시될 수 있으며, 이는 진행중인 DMA 전달의 종결시 시작된다.
프로세서가 컴퓨팅 시스템 내에 송신을 요구하는 데이터 수집의 길이를 선험적으로 항상 알 수는 없다. 예를 들어, 문자 스트링("Hello world"와 같은)을 카피하기 위하여, 각각의 문자는 소스 위치로부터 검색되고, 레지스터에 위치되며, 0과 비교된다(C 언어 스트링 종결 문자). 비교가 실패하면, 문자는 목적지 위치에 기록되고, 다음 문자가 판독되고 비교된다. 프로세서가 문자 스트링에서 0과 만날 때, 데이터 전달이 완료된다. 이것은 프로세서-민감성 업무이고, 부가적으로 매우 많은 횟수의 메모리 액세스들을 포함하는 것이다. 소스 및/또는 목적지 어드레스들이 캐시 입력 불가능하다면(non-cacheable), CPU는 특히 메모리 액세스들이 프로세서 실행보다 훨씬 느린 시스템들에서, 메모리 동작들이 완료되길 기다리는데 상당한 시간을 소비할 수 있다. 이것은 프로세서 성능을 심각하게 저하시킨다.
문자 스트링의 길이가 공지되지 않기 때문에, 데이터 전달 업무는 일반적으로 종래의 DMA 제어기에 오프-로딩되지 않는다. 종래의 DMA 제어기들은 그들이 송신하는 데이터를 검사할 수 있는 능력을 갖지 않으며, 소스로부터 목적지로 명시된 데이터량을 "보이지 않게(blindly)" 송신한다. 문자 스트링의 길이는 각각의 문자를 공지된 데이터 패턴과 비교함으로써 결정된다. 이러한 비교는 종래에 프로세서에 의하여 수행된다. 프로세서가 종래의 DMA 제어기에 대한 데이터 전달 업무를 오프-로딩하기 위하여, 이것은 스트링 길이를 결정하기 위해 문자들을 성공적으로 판독하고 비교하며, 송신 카운트로 DMA 동작을 구성해야 한다. 그러나, 이것은 데이터 전달 업무의 절반을 수행하기 때문에(판독), 종래의 DMA 제어기들을 갖는 시스템들의 프로세서들은 간단히 각각의 문자를 목적지에 직접 기록하고, 스트링의 끝을 구별하는 공지된 데이터 패턴이 검출될 때, 프로세스를 중지시킨다.
다른 프로토콜들은 다수의 문자들을 갖는 데이터 스트링들을 종결시킨다. 예를 들어, 하이퍼-텍스트 마크업 언어(HTML)에서, 특정 포맷팅 또는 처리를 수신하기 위해 스트링은 시퀀스</키워드>에 의하여 종결되며, 이는 검출하기 위하여 다수의 연속적인 문자 비교들을 요구한다.
도 1은 CT-DMA 회로를 포함하는 컴퓨팅 시스템의 기능적 블럭도이다.
도 2는 CT-DMA 회로의 데이터 비교 회로의 기능적 블럭도이다.
도 3은 소스로부터 목적지로 알려지지 않은 데이터량을 송신하는 방법의 흐름도이다.
본 명세서에 설명되고 청구되는 하나 이상의 실시예들에서, 컨텐츠-종결 직접 메모리 액세스(CT-DMA) 회로는 알려지지 않은 길이의 데이터의 DMA 전달들을 수행하고, 데이터의 컨텐츠에 기초하여 전달을 종결한다. 필터 기준이 데이터 전달 이전에 CT-DMA에 제공된다. 필터 기준은 전달 데이터와 비교되는 패턴 데이터 및 비교 결과들을 해석하기 위한 전달 종결 규칙들을 포함한다. CT-DMA는 소스로부터 데이터를 판독하여, 그것을 필터 기준이 충족될 때까지 목적지에 기록한다.
일 실시예는 CT-DMA 회로에 관한 것이다. 회로는 소스로부터 데이터를 판독 및/또는 목적지에 데이터를 기록하도록 동작가능한 데이터 전달 인터페이스 및 필터 기준을 저장하도록 동작가능한 메모리를 포함한다. CT-DMA 회로는 전달 데이터를 하나 이상의 필터 기준과 비교하도록 동작가능한 비교기 및 비교기 출력에 응답하여 DMA 전달을 종결하도록 동작가능한 제어기를 더 포함한다.
다른 실시예는 소스로부터 목적지로 알려지지 않은 양의 데이터를 송신하는 방법에 관한 것이다. 데이터는 연속적으로 소스로부터 판독되어, 미리 결정된 패턴 데이터와 비교된다. 비교에 응답하여 전달을 종결할 때가 결정된다. 데이터는 송신이 종결될 때까지 목적지로 연속하여 기록된다. 이러한 방법 단계들은 프로세서에 의해 자율적으로 수행된다.
또 다른 실시예들은 컴퓨팅 시스템과 관련된다. 시스템은 데이터를 제공하도록 동작가능한 데이터 소스 및 데이터를 수신하도록 동작가능한 데이터 목적지를 포함한다. 시스템은 소스로부터 목적지로 데이터 전달을 수행하도록 동작가능하며, 전달 데이터의 하나 이상의 값들에 응답하여 데이터 전달을 종결하도록 추가로 동작가능한 CT-DMA 회로를 더 포함한다. 시스템은 CT-DMA 회로를 개시하도록 동작가능한 프로세서를 더 포함한다.
하나 이상의 실시예들에 따라, 컨텐츠-종결 직접 메모리 액세스(CT-DMA)는 소스로부터 목적지로 알려지지 않은 길이의 데이터를 송신하며, "무선(in-flight)" 데이터에 필터 기준을 적용함으로서 전달을 종결한다. 필터 기준은 송신되고 있는 데이터와 비교하기 위한 패턴 데이터 및 비교에 응답하여 전달을 종결하기 위한 규칙을 포함한다.
도 1은 일반적으로 번호 10으로 지시되는 전형적인 컴퓨팅 시스템을 도시한다. 컴퓨팅 시스템(10)은 레벨-1(L1) 캐시(14)를 포함할 수 있는 프로세서(12)를 포함한다. 프로세서(12)는 본 기술분야에 공지되는 바와 같이, 프로그램-저장된 마이크로프로세서, 디지털 신호 프로세서(DSP) 등을 포함할 수 있다. 메모리 계층구조에서 L1 캐시(14) 뒤에 L2 캐시(16)가 올 수 있다. 일 실시예에서, L2 캐시(16)를 포함하는 메모리의 일부는 긴밀하게 결합된 메모리(TCM)(18)로서 프로세서(12)에 의하여 이용된다. TCM(18)은 메모리 계층구조에서 메인 메모리 어드레스 공간의 일부이나, 물리적이고 논리적으로 프로세서(12)에 보다 긴밀하게 연결된다 - 예를 들어, 프로세서는 TCM(18)에 액세스하기 위하여 시스템 버스(20)에 대하여 조정할 필요가 없다. L2 캐시(16) 및 CT-DMA(26)는 시스템 버스(20)를 통해 메인 메모리(22)를 판독하고 기록한다. TCM(18) 및 예를 들어, NIC 카드, 무선 통신 트랜시버, 블루투스 인터페이스 등과 같은 입력/출력(I/O) 주변 장치(24)는 시스템 버스(20)상의 종속 디바이스이다. I/O 주변 장치(24)는 컴퓨팅 시스템(10)으로 또는 컴퓨팅 시스템 외부로 데이터를 송신할 수 있다.
CT-DMA 회로(26)는 시스템 버스(20)상의 마스터 디바이스이고, 이에 의하여 메인 메모리(22), TCM(18) 및 I/O 주변 장치(24)를 판독하고 기록할 수 있다. CT-DMA 회로(26)는 부가적으로 또는 대안적으로 I/O 주변 장치(24)의 데이터 포트에 직접 연결될 수 있다. 추가로, 도 1에 개시되는 실시예에서, CT-DMA 회로(26)는 프로세서(12)에 긴밀하게 통합되고, 프로세서(12)와 CT-DMA(26) 사이에서 TCM(18)에 직접 액세스할 수 있다(프로세서(12)와 CT-DMA(26) 사이에서 TCM(18)으로 어드레스 비트들을 멀티플렉싱하는 단계 등에 의하여).
프로세서(12)에 의한 초기화에 이어, CT-DMA 회로(26)는 컴퓨팅 시스템(10) 내에 소스로부터 목적지로 데이터를 송신하고, 데이터의 하나 이상의 값들에 응답하여 전달을 종결한다. 하나의 도식적인 실시예로서, 프로세서(12)는 메인 메모리(22)로부터 CT-DMA 회로(26)가 TCM(18)으로 비공지된 길이의 문자 스트링을 송신하도록 지시할 수 있으며, 프로세서(12)는 문자 스트링을 보다 효율적으로 작동할 수 있다.
하나 이상의 실시예들에서, 송신되고 있는 데이터에 응답하여 CT-DMA 회로(26)가 송신이 완료된 것으로 결정할 때, CT-DMA 회로(26)는 전달을 종결하고, 인터럽트 제어기(28)를 통해 또는 직접 프로세서(12)를 인터럽트할 수 있다. 다른 실시예들에서, CT-DMA 회로(26)는 제어 레지스터에 플래그를 설정하고, 데이터 전달이 완료된 것으로 결정하기 위하여 플래그의 상태를 폴링(polling)하는 프로세서(12)에 의존할 수 있다. 다른 실시예들에서, 임의의 특정 구현의 명령들 또는 선호들을 충족시키기 위하여 본 기술분야의 당업자들에 의하여 용이하게 고안될 수 있는 바와 같이, CT-DMA 회로(26)는 다양한 방식으로 프로세서(12)로 완료된 데이터 전달 동작을 시그널링할 수 있다.
본 명세서에서 사용될 때, 데이터 소스는 임의의 메모리 위치(22, 18), 주변 장치(24)의 데이터 포트, 또는 시스템 버스(20)를 통해 또는 직접 연결에 의하여 CT-DMA 회로(26)에 의해 액세스가능한 다른 데이터 소스로 지칭된다. 본 명세서에서 사용될 때, 데이터 목적지는 유사하게 임의의 메모리(22, 18) 또는 주변 장치(24)로 지칭된다. 또한, 데이터 목적지는 NULL 목적지일 수 있으며, 이 경우에 전달 데이터는 폐기된다. 데이터는 문자 스트링(예를 들어, C 언어 동작 strlen)의 길이를 결정하도록 다양한 이유들로 바람직하게는 NULL 목적지로 "송신"될 수 있다.
도 2는 통상적 CT-DMA 회로(26)의 일 실시예의 데이터 비교 기능의 양상들을 전개도록 표시되는 기능적 블럭도이다. 도 2는 임의의 주어진 CT-DMA 회로(26)의 실제 하드웨어를 나타내도록 의도되지 않았음을 유념해야 한다. 추가로, 도 2는 CT-DMA 회로(26) 기능의 서브세트를 도시한다; 논의와 밀접한 관계가 있지 않은 다수의 DMA 회로들 및 기능들이 명료성을 위하여 도 2로부터 삭제된다.
일 실시예에서, CT-DMA 회로(26)는 도시된 실시예에서는 8개 저장 위치들을 포함하는 퍼스트-인-퍼스트-아웃(FIFO) 데이터 버퍼(30)를 포함한다. 저장 위치들은 본 기술분야에 공지되는 바와 같이 레지스터들 또는 메모리를 포함할 수 있으며, 다양한 작동 버퍼들(30) 중 임의의 것으로서 구성될 수 있다. 저장 위치들은 필요 또는 요구되는 바에 따라 임의의 폭일 수 있으며(예를 들어, 바이트, 하프워드, 워드 등), 각각에 저장되는 데이터는 데이터의 "유닛"으로서 본 명세서에서 지칭된다. 물론, 버퍼(30)는 필요 또는 요구되는 바에 따라 8개보다 많거나 더 적은 저장 위치들을 포함할 수 있다. CT-DMA 데이터 전달 동안에 소스로부터 판독되는 데이터는 FIFO(30)으로 입력되며, 비교 동작들의 결과들에 따라, 목적지로 기록될 수 있다. 이러한 데이터는 본 명세서에서 전달 데이터로서 지칭된다.
CT-DMA 회로(26)는 패턴 데이터 저장부(32)를 포함한다. 프로세서(12)는 CT-DMA 데이터 전달을 개시하기 이전에 패턴 데이터 저장 위치들(32)로 미리 결정된 데이터 패턴들을 기록할 수 있다. 도 2에 개시되는 실시예에서, 패턴 데이터 저장부(32)는 저장 위치들의 개수 및 그들의 데이터 폭의 관점에서 FIFO(30)를 반영한다. 다른 실시예들에서, 저장 위치들의 개수는 매칭되지 않을 수 있다. 특히, 일 실시예에서, FIFO(30)는 하나 이상의 저장 위치들을 포함할 수 있으며, 패턴 데이터 저장부(32)는 FIFO(30)에서의 개수보다 많은 다수의 저장 위치들을 포함할 수 있다. 이러한 경우에, 상태 머신과 같은 제어 회로는 FIFO(30)의 전달 데이터의 각각의 유닛을 둘 이상의 데이터 패턴 유닛과 연속적으로 비교할 수 있다. 일 실시예에서, 데이터 저장 위치들의 개수가 매칭되는지 여부에 따라, FIFO(30)와 패턴 데이터 저장부(32) 사이의 데이터 유닛 폭은 상이할 수 있다. 예를 들어, 패턴 데이터의 단일 바이트는 예를 들어, 모든 전달 데이터 워드의 동일한 바이트, 모든 데이터 전달 워드의 각각의 바이트 등과 비교될 수 있다. 이러한 데이터 비교 프로시져들은 프로그램가능할 수 있으며, 필터 기준에 포함될 수 있다. 애플리케이션에 대한 특정 패턴 데이터가 공지되는 일 실시예에서, 패턴 데이터 저장부(32)는 하나 이상의 하드와이어드(hardwired) 비트 패턴들을 포함할 수 있다.
전달 데이터가 FIFO(30)를 통해 흐를 때, 그들은 n-비트 비교기들(34)에서 대응 패턴 데이터와 비교된다(여기서, N은 데이터 유닛 폭과 매칭됨 - 즉, 패턴 데이터(32) 입력들 및 FIFO(30)의 폭). 비교기들(23)의 출력들은 패턴 데이터 및 전달 데이터의 하나 이상의 유닛들 사이에서의 매칭을 검출하기 위하여 함께 논리적으로 AND 연산된다. 일 실시예에서, 도 2에 보여지는 바와 같이 AND 함수들(36)은 캐스케이딩(cascade)되고, 각각의 중간 출력은 전달 종결 결정 로직(38)으로 제공된다. 도시되는 실시예에서, 전달 종결 결정 로직(38)은 1 내지 8개 데이터 유닛들을 포함하는 송신-종결 비교를 검출할 수 있다. 예를 들어, 전달 종결 규칙들은 전달을 종결하기 위하여 특정 순서로 미리 결정된 문자들을 매칭시키기 위하여 문자 스트링에서 8개에 달하는 문자를 요구할 수 있다.
전달 종결 결정 로직(38)이 작동하는 규칙들은 프로세서(12)에 의하여 CT-DMA 제어 로직(40)으로 제공되며, CT-DMA 제어 로직(40)은 전달 종결 결정 로직(38)을 구성한다. 패턴 데이터와 함께, 이러한 전달 종결 규칙들은 본명세서에서 필터 기준으로서 지칭된다. 일반적으로, 본 발명의 CT-DMA 회로(26)는 충분한 필터 기준 세트를 지원하고, 광대한 범위의 송신-종결 기능을 제공할 수 있다. 하기의 리스트는 필터 기준 및 데이터 목적지를 변경함으로써 CT-DMA 회로(26)의 실시예들에 의하여 제공되는 기능의 몇몇 대표적인 비-제한 실시예들을 제공한다; 몇몇 기능들은 연관된 기능에 의하여 직접 구현될 수 있는 C 언어 명령들을 포함한다:
· 미리 결정된 키에 의하여 종결된 데이터 전달(strcpy);
· NULL 목적지: 카피는 수행되지 않거나 폐기됨(srcmp);
· 송신 길이 결정(strlen) - NULL 목적지로 송신함으로써 카운트만의 수행 또는 송신에 부수적인;
· 송신과 연관될 수 있는 최대 길이(strnlen, strncpy, strncmp);
· 다중-유닛 키에 의하여 종결되는 데이터 전달(HTML 태그)
· 상이한 키들에 대한 비교 결과들의 논리적 결합들(AND, OR)
· 전달 데이터 및 패턴 데이터가 미리 결정된 횟수만큼 매칭
· 반전 매칭 경우(즉, 전달 데이터가 패턴 데이터와 매칭하는데 실패할 때 전달을 종결)
제어 로직(40)은 부가적으로 충분한 컨텐츠-종결 DMA 세트 뿐 아니라 종래의 DMA 전달 기능을 구현하기 위하여 다양한 상태 레지스터들, 카운터들 및 로직(미도시)을 포함한다. 어드레스 생성 회로(42)를 제어함으로써, 제어 로직(40)은 다음과 같은 광범위한 CT-DMA 전달 기능을 지원할 수 있다:
· 증분(increment) 또는 비-증분 소스 및/또는 목적지 어드레스들(예를 들어, 스트리밍 데이터);
· 상이한 워드 폭을 갖는 소스와 목적지 사이에서의 데이터를 송신하기 위한 분산/수집 동작들을 수행;
· 오름차순(ascending) 또는 내림차순(descending) 송신들(즉, 증분 또는 감소 연속 어드레스들);
· 선택적으로 패턴들을 송신하거나 그러지 않기 위하여 NULL 목적지를 사용하는 것을 포함하는, 스트라이드(stride) 설정(행/열 해석);
· 컨텐츠-제어된 연쇄(chained) DMA 전달들
연쇄 DMA 전달들은 다양한 방식으로 전달 데이터의 컨텐츠에 의하여 제어될 수 있다. 예를 들어, 현재 DMA 동작에서의 전달 데이터의 하나 이상의 값들이 어느 DMA 채널이 후속 DMA 동작을 위해 사용될지를 결정할 수 있다. 다른 실시예로서, 소스 및/또는 목적지, 스트라이드, 및/또는 후속 DMA 동작에 대한 카운트는 전달 데이터의 값들에 의하여 결정될 수 있다. 일 실시예에서, 패턴 데이터에 대한 전달 데이터의 매치는 DMA 제어 파라미터들(소스, 목적지 등)을 포함하는 상이한 메모리 위치들로 CT-DMA를 지향시킴으로써 후속 DMA 동작들을 제어할 수 있다.
도 3은 프로세서(12)(왼쪽) 및 CT-DMA 회로(26)(오른쪽)의 관점으로부터, 알려지지 않은 데이터량을 소스로부터 목적지로 송신하는 방법의 흐름도를 도시한다. 방법은 소스 및 목적지 어드레스들 또는 식별자들 및 필터 기준(패턴 데이터 및 전달 종결 규칙들 모두를 포함하는)과 같은 초기화 정보를 CT-DMA 회로(26)로 제공함으로써 프로세서(12)가 송신을 설정할 때 시작한다(블럭(100)). 이것은 CT-DMA 회로(26)상에 패턴 데이터 저장부(32) 및/또는 레지스터들로 정보를 기록하는 단계 또는 메모리에 정보를 저장하는 단계 및 CT-DMA 회로(26) 레지스터로 메모리 위치에 대한 포인터를 기록하는 단계를 포함할 수 있다. 따라서, CT-DMA 회로(26)는 메모리에서 직접 또는 메모리로부터 그것을 판독함으로써 초기화 정보를 수용한다(블럭(102)). 프로세서(12)는 송신을 개시하기 위하여 CT-DMA 회로(26)로 GO 지시를 송신한다(블럭(103)). GO 지시는 CT-DMA 제어 로직(40)에서 제어 레지스터로 플래그를 기록하는 단계, 프로세서(12)와 CT-DMA 회로(26) 사이에서 신호를 어서트(assert)하는 단계를 포함할 수 있으며, 또는 본 기술분야에 공지되는 다른 수단에 의하여 수행될 수 있다.
CT-DMA 회로(26)는 메모리 위치 또는 주변 장치 포트를 포함할 수 있는 소스로부터의 데이터 유닛을 FIFO(30)와 같은 버퍼에 판독함으로써(블럭(104)) 송신을 시작한다. 데이터 유닛 판독은 소스 데이터 인터페이스의 폭에 따라, 소스에 지시된 하나 이상의 판독 동작들을 요구할 수 있다. CT-DMA 회로(26)는 FIFO(30)의 전달 데이터를 프로세서(12)에 의하여 제공되는 패턴 데이터(32)와 비교한다(블럭(106)). CT-DMA 회로(26)에서의 전달 종결 결정 로직(38)은 비교들의 결과들로 프로세서(12)에 의하여 제공되는 전달 종결 규칙들을 적용한다(블럭(108)). 전달 종결 결정 로직(38)이 송신이 아직 종결되어서는 안 됨을 지시한다면(블럭(110)), CT-DMA 회로(26)는 데이터의 유닛을 목적지 메모리 어드레스 또는 주변 장치 포트에 기록하고(블럭(112)), 이는 목적지로 지시되는 하나 이상의 기록 동작들을 요구할 수 있다. CT-DMA 회로(26)는 그 후 송신 카운트를 업데이트하고(예를 들어, 카운터를 증분 또는 감소시킴으로써)(블럭(114)), 소스로부터 전달 데이터의 다른 유닛을 판독한다(블럭(104)).
CT-DMA 회로(26)가 전달 데이터 및 패턴 데이터 비교 결과들에 전달 종결 규칙들을 인가하는 것에 기초하여 송신이 종결되어야 하는 것으로 결정할 때, 이것을 프로세서(12)에 통지한다. 상기 개시된 바와 같이, 이러한 통지는 인터럽트를 어서트하는 것, 제어 로직(40)의 상태 레지스터 또는 메모리(22)의 미리 결정된 위치와 같은 미리 결정된 위치로 플래그 또는 다른 미리 결정된 데이터를 기록하는 것, 또는 다른 통지 수단을 포함할 수 있다.
하나 이상의 실시예들에서, 프로세서(12)는 데이터 전달을 일부로서 종결 키를 유지시키도록 원하고, 종결 송신 결정(블럭(110))은 CT-DMA 회로(26)가 소스로부터의 데이터 판독을 종결하도록 할 수 있으나(블럭(104)), 목적지에 전달 데이터를 기록하고(블럭(112)), 종결 키가 송신될 때까지 계속해서 송신 카운트를 업데이트한다(블럭(114)). 몇몇 실시예들에서, 종결 동작은 프로그래밍가능하다 - 즉, 송신의 일부로서 종결 키를 기록할지 아닌지 여부에 대한 결정은 초기화 정보의 일부로서 프로세서(12)에 의하여 명시된다.
도 3의 점선은 프로세서(12)와 CT-DMA 회로(26) 사이의 동기화를 도시한다. 시간으로부터, 프로세서(12)는 CT-DMA 회로(26)가 프로세서(12)에 송신이 완료되었음을 통지할 때까지(블럭(116)) GO 지시를 발행하고(블럭(103)), 프로세서(12)는 자유롭게 다른 업무들을 수행하거나(블럭(118)), 또는 다른 업무들이 계류중이라면 슬리프 모드가 된다. CT-DMA 회로(26)로부터 송신이 완료되었다는 통지를 수신시(블럭(116)), 프로세서는 목적지에서 송신된 데이터를 프로세싱하거나(블럭(120)), 그렇지 않으면 포스트-데이터-송신 활동을 진행할 수 있다.
CT-DMA 회로(26)의 실시예들은 알려지지 않은 길이의 루틴한 데이터 전달들(그리고 스트링 길이를 결정하는 것과 같은 다른 동작들)을 수행하고, 프로세서(12)가 자유롭게 다른 업무들을 수행함으로써, 프로세서 성능을 현저히 개선할 수 있다. 부가적으로, CT-DMA 회로(26)는 예를 들어, 각각 소스로부터의 데이터 유닛 판독 및 목적지로의 기록과 연관되는 L1 캐시(14) 및 L2 캐시(16)에서 반복되는 검색들을 방지함으로써 전력을 절약할 수 있다.
본 발명은 물론 본 발명의 본질적인 특징들을 벗어나지 않고 본 명세서에서 설명되는 것과 다른 방식들로 실행될 수 있다. 본 실시예들은 도식적이지만 비제한적인 것으로서 모든 양상들로 고려되며, 첨부된 도면들의 효력 및 동등한 범위 내로부터 오는 모든 변화들이 본 발명에 포함되는 것으로 간주된다.
Claims (27)
- 컨텐츠-종결 직접 메모리 액세스(CT-DMA: Content-Terminated Direct Memory Access) 회로로서,적어도 하나의 데이터 전달 인터페이스;필터 기준을 저장하도록 동작가능한 메모리;전달 데이터를 하나 이상의 필터 기준과 비교하도록 동작가능한 비교기; 및상기 비교기 출력에 응답하여 DMA 전달을 종결하도록 동작가능한 제어기를 포함하는, CT-DMA 회로.
- 제1항에 있어서,상기 데이터 전달 인터페이스는 시스템 버스 인터페이스를 포함하는, CT-DMA 회로.
- 제1항에 있어서,상기 데이터 전달 인터페이스는 다른 회로에 대한 전용 데이터 인터페이스를 포함하는, CT-DMA 회로.
- 제1항에 있어서,상기 메모리는 하나 이상의 레지스터들을 포함하는, CT-DMA 회로.
- 제4항에 있어서,상기 레지스터들은 프로세서에 의하여 실행되는 보조 프로세서(coprocessor) 레지스터 액세스 명령들을 통해 액세스되는, CT-DMA 회로.
- 제4항에 있어서,상기 레지스터들은 메모리 맵핑되는, CT-DMA 회로.
- 제1항에 있어서,상기 메모리는 하드와이어드(hardwired) 데이터 패턴들을 포함하는, CT-DMA 회로.
- 제1항에 있어서,상기 필터 기준은 패턴 데이터의 하나 이상의 유닛(unit)들을 포함하며, 상기 비교기는 전달 데이터의 하나 이상의 유닛들을 상기 패턴 데이터와 비교하도록 동작가능한, CT-DMA 회로.
- 제8항에 있어서,상기 비교기는 패턴 데이터의 둘 이상의 유닛들과 전달 데이터의 유닛을 비교하도록 동작가능한, CT-DMA 회로.
- 제8항에 있어서,상기 제어기는 전달 데이터의 하나 이상의 유닛들이 상기 패턴 데이터와 매칭될 때, DMA 전달을 종결하도록 동작가능한, CT-DMA 회로.
- 제8항에 있어서,상기 제어기는 전달 데이터의 하나 이상의 유닛들이 상기 패턴 데이터와 매칭하는데 실패할 때, DMA 전달을 종결하도록 동작가능한, CT-DMA 회로.
- 제8항에 있어서,상기 제어기는 전달 데이터의 하나 이상의 유닛들이 미리 결정된 회수만큼 상기 패턴 데이터와 매칭될 때, DMA 전달을 종결하도록 동작가능한, CT-DMA 회로.
- 제1항에 있어서,상기 제어기는 인터럽트를 어서트(assert)함으로써 DMA 전달을 종결하도록 동작가능한, CT-DMA 회로.
- 제1항에 있어서,상기 제어기는 미리 결정된 값을 미리 결정된 위치에 기록함으로써 DMA 전달을 종결하도록 동작가능한, CT-DMA 회로.
- 제1항에 있어서,상기 제어기는 상기 비교기 출력에 응답하여 다른 DMA 전달을 개시하도록 추가로 동작가능한, CT-DMA 회로.
- 제15항에 있어서,상기 비교기 출력에 응답하여 다른 DMA 전달을 개시하는 동작은 상기 비교기 출력에 응답하여 결정되는 메모리 위치로부터 DMA 제어 파라미터들을 판독하는 동작을 포함하는, CT-DMA 회로.
- 소스로부터 목적지로 알려지지 않은 양의 데이터를 송신하는 방법으로서,소스로부터의 전달 데이터를 연속하여 판독하는 단계;전달 데이터를 미리 결정된 패턴 데이터와 비교하는 단계;상기 비교에 응답하여 전달을 종결할 때를 결정하는 단계; 및상기 전달을 종결할 때까지 전달 데이터를 상기 목적지에 연속적으로 기록하는 단계를 포함하며, 상기 단계들은 프로세서에 의해 자율적으로 수행되는, 데이터를 송신하는 방법.
- 제17항에 있어서,상기 비교에 응답하여 전달을 종결할 때를 결정하는 단계는 전달 데이터의 하나 이상의 유닛들이 상기 패턴 데이터와 매칭될 때 상기 전달을 종결하도록 결정하는 단계를 포함하는, 데이터를 송신하는 방법.
- 제17항에 있어서,상기 비교에 응답하여 전달을 종결할 때를 결정하는 단계는 전달 데이터의 하나 이상의 유닛들이 상기 패턴 데이터와 매칭하는데 실패할 때 상기 전달을 종결하도록 결정하는 단계를 포함하는, 데이터를 송신하는 방법.
- 제17항에 있어서,상기 비교에 응답하여 전달을 종결할 때를 결정하는 단계는 전달 데이터의 하나 이상의 유닛들이 미리 결정된 회수만큼 상기 패턴 데이터와 매칭될 때, 상기 전달을 종결하도록 결정하는 단계를 포함하는, 데이터를 송신하는 방법.
- 제17항에 있어서,필터 기준을 수신하는 단계를 더 포함하는, 데이터를 송신하는 방법.
- 제21항에 있어서,상기 필터 기준은 상기 패턴 데이터를 포함하는, 데이터를 송신하는 방법.
- 제22항에 있어서,상기 필터 기준은 전달 데이터 및 패턴 데이터 비교들을 결합하기 위한 규칙들을 포함하는, 데이터를 송신하는 방법.
- 컴퓨팅 시스템으로서,데이터를 제공하도록 동작가능한 데이터 소스;데이터를 수신하도록 동작가능한 데이터 목적지;상기 소스로부터 상기 목적지로 전달 데이터를 수행하도록 동작가능하며, 하나 이상의 전달 데이터의 값들에 응답하여 데이터 전달을 종결하도록 추가로 동작가능한 컨텐츠-종결 직접 메모리 액세스(CT-DMA) 회로; 및상기 CT-DMA 회로를 개시하도록 동작가능한 프로세서를 포함하는, 컴퓨팅 시스템.
- 제24항에 있어서,상기 프로세서는 상기 CT-DMA 회로의 하나 이상의 메모리 위치들에 필터 기준을 기록함으로써 상기 CT-DMA 회로를 개시하는, 컴퓨팅 시스템.
- 제24항에 있어서,상기 CT-DMA 회로는 전달 데이터를 필터 기준과 비교하고, 상기 비교에 응답하여 상기 데이터 전달을 종결하는, 컴퓨팅 시스템.
- 제24항에 있어서,상기 프로세서는 메모리에 필터 기준을 기록하고, 상기 CT-DMA 회로에 상기 메모리에 대한 포인터를 제공함으로써 상기 CT-DMA 회로를 개시하는, 컴퓨팅 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/626,414 | 2007-01-24 | ||
US11/626,414 US7934025B2 (en) | 2007-01-24 | 2007-01-24 | Content terminated DMA |
PCT/US2008/051965 WO2008092044A2 (en) | 2007-01-24 | 2008-01-24 | Content-terminated dma |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090102870A true KR20090102870A (ko) | 2009-09-30 |
KR101064101B1 KR101064101B1 (ko) | 2011-09-08 |
Family
ID=39366882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097017581A KR101064101B1 (ko) | 2007-01-24 | 2008-01-24 | 컨텐츠-종결 dma |
Country Status (8)
Country | Link |
---|---|
US (1) | US7934025B2 (ko) |
EP (1) | EP2126710B1 (ko) |
JP (1) | JP5185289B2 (ko) |
KR (1) | KR101064101B1 (ko) |
CN (1) | CN101589377B (ko) |
AT (1) | ATE540362T1 (ko) |
TW (1) | TW200842593A (ko) |
WO (1) | WO2008092044A2 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831746B2 (en) * | 2007-03-13 | 2010-11-09 | Sgi International, Inc. | Direct memory access engine for data transfers |
JP4985599B2 (ja) * | 2008-09-18 | 2012-07-25 | Necエンジニアリング株式会社 | Dma転送制御システム |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US20110093099A1 (en) * | 2009-10-16 | 2011-04-21 | Newport Controls | Controller system adapted for spa |
US8589603B2 (en) * | 2010-08-30 | 2013-11-19 | International Business Machines Corporation | Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation |
WO2012032582A1 (en) * | 2010-09-10 | 2012-03-15 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
JPWO2012039143A1 (ja) * | 2010-09-21 | 2014-02-03 | 三菱電機株式会社 | Dmaコントローラ及びデータ読出装置 |
US11797474B2 (en) * | 2011-02-17 | 2023-10-24 | Hyperion Core, Inc. | High performance processor |
US9454367B2 (en) * | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US8943239B2 (en) | 2012-07-30 | 2015-01-27 | Qualcomm Incorporated | Data snooping direct memory access for pattern detection |
US10049061B2 (en) * | 2012-11-12 | 2018-08-14 | International Business Machines Corporation | Active memory device gather, scatter, and filter |
EP2923279B1 (en) | 2012-11-21 | 2016-11-02 | Coherent Logix Incorporated | Processing system with interspersed processors; dma-fifo |
DE102013109978A1 (de) * | 2013-09-11 | 2015-03-12 | Technische Universität Dresden | Verfahren und Vorrichtung zum Vor-Auswählen, Filtern und Verteilen von Daten in Datenbank-Management-Systemen |
JP6205386B2 (ja) * | 2015-05-18 | 2017-09-27 | 長瀬産業株式会社 | 半導体装置及び情報書込/読出方法 |
US10599208B2 (en) | 2015-09-08 | 2020-03-24 | Toshiba Memory Corporation | Memory system and controller |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6072057A (ja) * | 1983-09-28 | 1985-04-24 | Nec Corp | Dmaコントロ−ラ |
JPS6426964A (en) * | 1987-07-23 | 1989-01-30 | Fujitsu Ltd | Memory writing device for code data |
JPH03156659A (ja) * | 1989-11-15 | 1991-07-04 | Hitachi Ltd | ダイレクトメモリアクセスコントローラ |
JPH0535656A (ja) * | 1991-07-30 | 1993-02-12 | Oki Electric Ind Co Ltd | データ検索方式 |
JPH08287003A (ja) * | 1995-04-11 | 1996-11-01 | Mitsubishi Electric Corp | Dmaコントローラ |
US5784390A (en) * | 1995-06-19 | 1998-07-21 | Seagate Technology, Inc. | Fast AtA-compatible drive interface with error detection and/or error correction |
US6081852A (en) * | 1996-04-26 | 2000-06-27 | Texas Instruments Incorporated | Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list |
US6185634B1 (en) * | 1996-09-27 | 2001-02-06 | Emc Corporation | Address triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register |
US6157971A (en) * | 1998-06-02 | 2000-12-05 | Adaptec, Inc. | Source-destination re-timed cooperative communication bus |
JP3765931B2 (ja) * | 1998-10-15 | 2006-04-12 | 富士通株式会社 | バッファ制御方法及びバッファ制御装置 |
US6611879B1 (en) * | 2000-04-28 | 2003-08-26 | Emc Corporation | Data storage system having separate data transfer section and message network with trace buffer |
US6681273B1 (en) * | 2000-08-31 | 2004-01-20 | Analog Devices, Inc. | High performance, variable data width FIFO buffer |
US6901468B1 (en) * | 2000-09-27 | 2005-05-31 | Emc Corporation | Data storage system having separate data transfer section and message network having bus arbitration |
US6831916B1 (en) * | 2000-09-28 | 2004-12-14 | Balaji Parthasarathy | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network |
US6775719B1 (en) * | 2000-09-28 | 2004-08-10 | Intel Corporation | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network |
GB2377139A (en) | 2001-06-29 | 2002-12-31 | Zarlink Semiconductor Ltd | Network gateway utilising DMA controller to transfer data between buffers |
US6981073B2 (en) * | 2001-07-31 | 2005-12-27 | Wis Technologies, Inc. | Multiple channel data bus control for video processing |
US6754733B2 (en) * | 2001-08-23 | 2004-06-22 | Texas Instruments Incorporated | Shared memory architecture for increased bandwidth in a printer controller |
US6904473B1 (en) | 2002-05-24 | 2005-06-07 | Xyratex Technology Limited | Direct memory access controller and method of filtering data during data transfer from a source memory to a destination memory |
US20040153911A1 (en) * | 2002-12-24 | 2004-08-05 | Alon Regev | Testing of a CAM |
US7200688B2 (en) | 2003-05-29 | 2007-04-03 | International Business Machines Corporation | System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command |
JP4373255B2 (ja) | 2004-03-23 | 2009-11-25 | 富士通株式会社 | ダイレクトメモリアクセス制御装置および方法 |
JP2005149519A (ja) * | 2004-12-14 | 2005-06-09 | Ricoh Co Ltd | 情報処理装置 |
JP4972932B2 (ja) * | 2005-12-26 | 2012-07-11 | 富士通株式会社 | メモリアクセス装置 |
US7721018B2 (en) * | 2006-08-24 | 2010-05-18 | Microchip Technology Incorporated | Direct memory access controller with flow control |
US20080140963A1 (en) * | 2006-12-11 | 2008-06-12 | Thomason Ronald G | Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots |
US8117475B2 (en) * | 2006-12-15 | 2012-02-14 | Microchip Technology Incorporated | Direct memory access controller |
-
2007
- 2007-01-24 US US11/626,414 patent/US7934025B2/en active Active
-
2008
- 2008-01-24 AT AT08713994T patent/ATE540362T1/de active
- 2008-01-24 CN CN2008800027365A patent/CN101589377B/zh not_active Expired - Fee Related
- 2008-01-24 KR KR1020097017581A patent/KR101064101B1/ko active IP Right Grant
- 2008-01-24 JP JP2009547431A patent/JP5185289B2/ja not_active Expired - Fee Related
- 2008-01-24 EP EP08713994A patent/EP2126710B1/en not_active Not-in-force
- 2008-01-24 WO PCT/US2008/051965 patent/WO2008092044A2/en active Application Filing
- 2008-01-24 TW TW097102668A patent/TW200842593A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR101064101B1 (ko) | 2011-09-08 |
US7934025B2 (en) | 2011-04-26 |
EP2126710A2 (en) | 2009-12-02 |
WO2008092044A2 (en) | 2008-07-31 |
CN101589377B (zh) | 2012-05-23 |
JP2010517182A (ja) | 2010-05-20 |
EP2126710B1 (en) | 2012-01-04 |
WO2008092044A3 (en) | 2008-12-18 |
JP5185289B2 (ja) | 2013-04-17 |
ATE540362T1 (de) | 2012-01-15 |
TW200842593A (en) | 2008-11-01 |
US20080177909A1 (en) | 2008-07-24 |
CN101589377A (zh) | 2009-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101064101B1 (ko) | 컨텐츠-종결 dma | |
US7724740B1 (en) | Computer system and network interface supporting class of service queues | |
CN114443529B (zh) | 内存直接访问架构、系统、方法、电子设备和介质 | |
EP1573559B1 (en) | Method, system, and program for handling input/output commands | |
US7433977B2 (en) | DMAC to handle transfers of unknown lengths | |
US7894480B1 (en) | Computer system and network interface with hardware based rule checking for embedded firewall | |
US9479464B1 (en) | Computer system and network interface with hardware based packet filtering and classification | |
US8099529B1 (en) | Software based native command queuing utilizing direct memory access transfer context information | |
US6631430B1 (en) | Optimizations to receive packet status from fifo bus | |
US20050114561A1 (en) | Method for performing DMA transfers with dynamic descriptor structure | |
JPH08506674A (ja) | ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ | |
US20080059683A1 (en) | Method and Apparatus for Conditional Broadcast of Barrier Operations | |
JP2009527815A5 (ko) | ||
KR100579203B1 (ko) | 능률화된 ata 장치 초기화 방법 및 장치 | |
US20070022226A1 (en) | Direct memory access system for iSCSI | |
JPH03127154A (ja) | 転送制御システム | |
US20040111537A1 (en) | Method, system, and program for processing operations | |
KR20070000941A (ko) | 브릿지장치 | |
KR20030044373A (ko) | 기억 장치 직접 접근 인터페이스를 지원하는 범용 직렬버스 장치 | |
US20100011140A1 (en) | Ethernet Controller Using Same Host Bus Timing for All Data Object Access | |
JP2009100400A (ja) | ハブ装置 | |
JPH04314157A (ja) | 通信装置 | |
KR20050076527A (ko) | 다중 입출력 장치를 이용한 인터페이스 장치 | |
JP2003296264A (ja) | データ転送システム | |
JPH05100987A (ja) | データ転送方式 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20140828 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170629 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 8 |