KR101262313B1 - 지연된 메모리 억세스 요청 조정 - Google Patents
지연된 메모리 억세스 요청 조정 Download PDFInfo
- Publication number
- KR101262313B1 KR101262313B1 KR1020087008617A KR20087008617A KR101262313B1 KR 101262313 B1 KR101262313 B1 KR 101262313B1 KR 1020087008617 A KR1020087008617 A KR 1020087008617A KR 20087008617 A KR20087008617 A KR 20087008617A KR 101262313 B1 KR101262313 B1 KR 101262313B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory access
- memory
- access request
- memory controller
- controller
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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
-
- 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
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
지연된(delayed) 메모리 억세스 요청 조정(arbitration) 방법은 제 1 메모리 억세스 요청을 메모리 컨트롤러(102)에 디스패치하고, 상기 제 1 메모리 억세스 요청에 의해 나타나는 메모리 억세스 동작의 예측된 완료에 대한 응답으로 제 2 메모리 억세스 요청을 메모리 컨트롤러(102)에 디스패칭하는 과정을 포함한다. 또 다른 방법은 제 1 메모리 억세스 요청을 제 1 시각(time)에 버스 인터페이스 유닛에서 수신하는 단계와, 제 1 시각 다음인 제 2 시각에 제 2 메모리 억세스 요청을 메모리 컨트롤러에 디스패칭하는 단계와, 제 2 시각 다음인 제 3 시각에 버스 인터페이스 유닛에서 제 3 메모리 억세스 요청을 수신하는 단계와, 제 3 시각 다음인 제 4 시각에 제 3 메모리 억세스 요청을 메모리 컨트롤러에 디스패칭하고 제 4 시각 다음인 제 5 시각에 제 1 메모리 억세스 요청을 메모리 컨트롤러에 디스패칭하는 단계를 포함한다.
Description
본 발명의 개시사항은 일반적으로 메모리 억세스 요청들을 프로세싱하는 것에 관한 것이다.
메모리 컨트롤러는 프로세싱 시스템들에서 자주 사용되는데, 메모리에 데이터를 저장하거나 메모리로부터의 데이터에 억세스하려하는 소자의 메모리 리소스들에의 억세스를 제어하도록 사용된다. 종래의 시스템들에서, 메모리 억세스 요청들은 메모리 컨트롤러가 메모리 억세스 요청들을 받아들일 수 있게 되는대로 메모리 컨트롤러에 공급된다. 그 다음 메모리 컨트롤러는 전형적으로 메모리 억세스 요청들을 버퍼링하고, 할당된 특정 우선순위들(assigned priorities)에 기초하여 버퍼링된 메모리 억세스 요청들을 프로세싱한다. 그러나, 메모리 컨트롤러가 다음(next) 메모리 억세스 요청을 프로세싱하거나 버퍼링할 능력이 있게 되자마자 메모리 억세스 요청들을 메모리 컨트롤러에 디스패치(dispatch)하는 종래의 기술로 인하여, 메모리 컨트롤러가 우선 다음 메모리 억세스 요청을 수신할 능력을 갖추게 된 이후에 특정한 높은 우선순위의 메모리 억세스 요청들이 선택이 가능하게 된 때에는, 그 높은 우선순위의 메모리 억세스 요청들은 가장 효율적인 방식으로 프로세싱되지 못할 수 있다. 예를 들어 설명해 보면, 메모리 컨트롤러가 다음 요청을 받아들일 가능성으로 인해 높은 우선순위의 메모리 억세스 요청이 낮은 우선순위의 메모리 억세스 요청의 디스패치 직후에 수신된 경우에는, 높은 우선순위 메모리 억세스 요청의 프로세싱은 메모리 컨트롤러가 다시 다음 메모리 억세스 요청을 받아들일 능력이 될 때까지 지연될 수 있다.
따라서, 메모리 억세스 요청들을 프로세싱하는 향상된 기술이 유익할 것이다.
삭제
본 개시사항의 목적과 이점들은 하기의 상세한 설명과 첨부된 도면들의 조합으로부터 당업자에게는 명확해질 것이고, 도면에서 비슷한 참조 문자들은 비슷한 구성요소들을 지시하는데에 이용되며, 도면에서:
도 1은 본 개시사항의 적어도 하나의 실시예에 따라, 지연된 메모리 억세스 요청 디스패치 기술을 사용하는 예시적인 프로세싱 시스템을 도시하는 블럭 다이어그램이다.
도 2는 본 개시사항의 적어도 하나의 실시예에 따라, 지연된 메모리 억세스 요청 디스패치에 대한 예시적인 방법을 도시하는 순서도이다.
도 3은 본 개시사항의 적어도 하나의 실시예에 따라, 도 2의 방법의 예시적인 구현방안을 도시하는 타이밍 다이어그램과 우선순위 차트이다.
도 4는 본 개시사항의 적어도 하나의 실시예에 따라, 도 3의 타이밍 다이어그램에 대응되는 메모리 컨트롤러 큐(queue)의 예시적인 상태들을 도시하는 다이어그램이다.
하기의 설명은 메모리 억세스 요청들의 조정(arbitration)에 관한 여러 개의 구체적인 실시예들과 세부사항들을 제공함에 의해 본 개시사항에 대한 철저한 이해를 전달하기 위한 것이다. 그러나, 본 개시사항은 이러한 구체적 실시예들과 세부사항들로 한정되는 것이 아니고, 단지 예시적인 것일 뿐임이 이해되어야 한다. 또한 알려진 시스템들과 방법들의 관점에서, 당업자는 특정 디자인 및 다른 필요들에 따라 임의 개수의 대안적 실시예들로 본 개시사항의 용도를 의도된 목적 및 이점들에 맞게 인식할 수 있음이 이해되어야 한다.
본 개시사항의 일 실시형태에 따르면, 지연된 메모리 억세스 요청 조정 방법은 제 1 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하고, 제 1 메모리 억세스 요청에 의해 나타난 메모리 억세스 동작의 예측된 완료에 대한 응답으로 제 2 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하는 단계를 포함한다.
본 개시사항의 또 다른 실시형태에 따르면, 지연된 메모리 억세스 요청 조정 방법은 제 1 메모리 억세스 요청을 제 1 시각(time)에 버스 인터페이스 유닛(bus interface unit)에서 수신하는 단계와, 제 1 시각 다음인 제 2 시각에 제 2 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하는 단계와, 제 2 시각 다음인 제 3 시각에 버스 인터페이스 유닛에서 제 3 메모리 억세스 요청을 수신하는 단계와, 제 3 시각 다음인 제 4 시각에 제 3 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하고 제 4 시각 다음인 제 5 시각에 제 1 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하는 단계를 포함한다.
본 개시사항의 추가적인 실시형태에 따르면, 시스템은 메모리에 연결된 것으로서 메모리 억세스 요청들을 프로세싱하기 위한 메모리 컨트롤러와, 이 메모리 컨트롤러에 연결된 버스 인터페이스 유닛을 포함한다. 일 실시예에서, 버스 인터페이스 유닛은 하나 또는 그 이상의 메모리 억세스 요청들을 저장하기 위한 버퍼와, 메모리 억세스 요청들을 수신하기 위해 버퍼에 연결된 제 1 입력 및 메모리 컨트롤러로부터의 신호를 수신하기 위한 제 2 입력을 갖는 조정기(arbiter)로 구성되고, 상기 조정기는 상기 신호에 대한 응답으로 메모리 컨트롤러에 디스패치하기 위해 제 2 메모리 억세스 요청을 선택한다. 메모리 컨트롤러는 메모리 컨트롤러에 먼저 디스패치된 제 1 메모리 억세스 요청에 의해 나타나는 메모리 억세스 동작의 예측된 완료에 대한 응답으로 상기 신호를 공급한다.
도 1을 참조해 보면, 본 개시사항의 적어도 하나의 실시예에 따라, 지연된 메모리 억세스 요청 디스패치를 사용하는 예시적인 프로세싱 시스템(100)이 도시되어 있다. 도시된 예에서, 시스템(100)은 메모리 컨트롤러(102), 메모리(104)(예컨대 DRAM 또는 SRAM), 버스 인터페이스 유닛(BIU)(106)과 BIU(106)에 연결된 하나 또는 그 이상의 구성요소들, 예를 들어 중앙 처리 유닛(CPU)(108), 그래픽 엔진(110)과 하나 또는 그 이상의 장치들(114, 116)에 연결된 하나 또는 그 이상의 직접 메모리 억세스(DMA) 마스터(112)와 같은 구성요소들을 포함한다. 일 실시예에서, 상기 메모리 컨트롤러(102)는 하나 또는 그 이상의 큐 엔트리들(예컨대 큐 엔트리들(122, 124))을 갖는 메모리 억세스 요청 큐(120)와, 선택기(126) 그리고 스케줄 관리기(schedule manager)(128)를 포함한다. 일 실시예에서, BIU(106)는 BIU(106)에 연결된, CPU(108), 그래픽 엔진(110), DMA 마스터(112)와 같은 장치들로부터의 메모리 억세스 요청들을 버퍼링하기 위해 조정기(130)와 메모리 억세스 요청 큐(132)를 포함한다. 일 실시예에서, 조정기(130)는 스케줄 관리기(128) 또는 메모리 컨트롤러(102)의 또 다른 구성요소에 의해 공급되는 디스패치_req 신호(134)에 응답한다.
동작에 있어서, BIU(106)는 BIU(106)에 연결된 하나 또는 그 이상의 장치들로부터 메모리 억세스 요청들을 수신하고 큐(132)에서 메모리 억세스 요청들을 버퍼링한다. 메모리 억세스 요청들에 할당된 우선순위들 또는 메모리 억세스 요청들이 BIU(106)에서 수신되는 시퀀스와 같은 다양한 특성들에 기초하여, 조정기(130)는 프로세싱을 위해 큐(132)로부터의 메모리 억세스 요청을 선택하고 메모리 컨트롤러(102)에 요청을 디스패치한다. 큐(120)에서 버퍼링된 메모리 억세스 요청들은 스케줄 관리기(128)에 의해 결정된 스케줄 또는 우선순위와 같은 메모리 억세스 요청들의 특정한 특성들에 기초하여 순서대로 또는 번갈아 순서에 관계없이(선택기(126)를 이용하여) 프로세싱된다. 선택된 메모리 억세스 요청을 수신함에 있어서, 스케줄 관리기(128)는 선택된 메모리 억세스 요청을 선택된 메모리 억세스 요청에 의해 나타나는 메모리 억세스 동작을 수행하도록 프로세싱한다. 예를 들어, 이 메모리 억세스 동작은 데이터가 메모리(104)에 쓰여지는(written) 쓰기 동작 또는 데이터가 메모리(104)로부터 읽혀지는(read) 읽기 동작을 포함할 수 있다.
스케줄 관리기(128)가 선택된 메모리 억세스 요청의 프로세싱을 개시할 때, 프로세싱되고 있는 선택된 메모리 억세스 요청에 의해 비워진(vacated) 큐 엔트리들(122, 124) 중 하나에서 또는 직접적으로 선택기(126)를 통해, 메모리 컨트롤러(102)는 BIU(106)로부터 또 다른 메모리 억세스 요청을 수신할 수 있게 된다. 그러나, 일 실시예에서, 스케줄 관리기(128)는 메모리 컨트롤러(102)가 BIU(106)로부터 다음 메모리 억세스 요청을 수신할 수 있게 되자마자 조정기(130)가 디스패치를 위한 다음 메모리 억세스 요청을 선택하도록 지시하기보다는, 현재 메모리(104)를 사용하여 프로세싱되고 있는 메모리 억세스 동작의 완료가 가까워졌을 때까지(다시 말해, 메모리 억세스 동작의 예측된 완료시까지) 다음 메모리 억세스 요청을 위해 조정기(130)에 대한 시그널링(signaling)을 지연시킨다. 현재 메모리 억세스 동작의 완료가 잘 알려졌는지를 판단함에 있어서, 스케줄 관리기(128)는 디스패치_req 신호(134)를 어써트(assert)하고, 그에 의해 다음 메모리 억세스 요청을 메모리 컨트롤러(102)에 디스패치하도록 조정기(130)에 시그널링을 행한다. 상기 신호(134)에 대한 응답으로, 조정기(130)는 우선순위 또는 시간 스탬프들과 같은 하나 또는 그 이상의 특성들에 기초하여 큐(132)로부터 메모리 억세스 요청을 선택하고, 임시의 버퍼링과 후속되는 프로세싱을 위해 메모리 컨트롤러(102)에 선택된 메모리 억세스 요청을 디스패치한다. 그래서, 도 1의 프로세싱 시스템(100)은 종래의 시스템들에 의해 시행되던 것처럼 메모리 컨트롤러(102)에서 메모리 억세스 요청의 시작에 뒤이어 즉시 메모리 억세스 요청을 디스패치하도록 조정기(130)에 지시하기보다는, 지연된 조정 기술을 구현하고 그것에 의해, 메모리 컨트롤러(102)가 메모리 억세스 요청을 받아들일 수 있는 제 1 모멘트 후에, BIU(106)에서 수신되는 어느 높은 우선순위의 메모리 억세스 요청들이 조정기(130)에 의해 선택가능하고 메모리 컨트롤러(102)에 디스패치됨이 가능하게 하기 위하여 하나의 다음 메모리 억세스 요청이 선택될 필요가 있기 이전의 거의 마지막 모멘트에 이르기까지 메모리 컨트롤러에 디스패치돼야 할 다음 메모리 억세스 요청이 선택되지 않도록 하며, 그로써 시스템(100)의 효율을 향상시킨다.
스케줄 관리기(128)는 조정기(130)가 다양한 기술들 중 어느 것을 이용하여 다음 메모리 억세스 요청을 디스패치하도록 조정기(130)에 시그널링을 행하기 위해 메모리 억세스 동작의 예측된 완료 여부를 판단할 수 있다. 일 실시예에서, 메모리 억세스 동작의 예측된 완료는 메모리(104)와 메모리 컨트롤러(102) 사이의 시그널링을 이용하여 나타내어질 수 있다. 예를 들어, 읽기(read) 억세스 동작 중 메모리(104)는 요청된 데이터가 메모리 컨트롤러(102)와 메모리(104)에 연결된 버스 라인들에서 이용가능하다는 것을 나타내는 신호를 메모리 컨트롤러(102)에 공급할 수 있는데, 이는 상기 데이터가 다음 클럭 주기 도중 래칭(latching)되게 하기 위함이다. 따라서, 이러한 경우에, 메모리(104)로부터의 상기 신호를 받는 대로 메모리 컨트롤러(102)는 디스패치_req 신호(134)를 어써트할 수 있고 그럼으로써 조정기(130)가 다음 메모리 억세스 요청의 디스패치를 개시하도록 조정기에 시그널링을 행한다. 또 다른 예에서, 메모리 억세스 동작은 쓰기 억세스 동작을 포함할 수 있고 상기 시그널링은 메모리 컨트롤러로부터 메모리에 공급되는 신호를 포함할 수 있는데, 이 신호는 쓰기 데이터가 메모리 컨트롤러(102)와 메모리(104)를 연결하는 버스에 위치함을 나타내고, 다음 주기 동안 메모리(104)가 데이터를 래치(latch)하는 것에 대한 응답이다. 이러한 경우에 스케줄 관리기(128)는, 메모리(104)에 공급될 수 있는 또는 메모리로(104)부터 메모리 컨트롤러(102)에 공급될 수 있는 쓰기 데이터의 어써트에 대한 응답으로, 상기 신호(134)를 어써트할 수 있다. 또 다른 실시예에서, 메모리 컨트롤러(102)에 의해 프로세싱되는 메모리 억세스 동작들의 일부 또는 전부는 미리 결정된 지속구간(duration)을 가질 수 있다. 예를 들어 설명하자면, 읽기 억세스 동작들의 특정 타입들은 여러 개의 클럭 주기들 집합을 필요로 함이 메모리 컨트롤러(102)에 의해 알려질 수 있다. 따라서, 그러한 읽기 억세스 동작들의 예측된 완료는 메모리 억세스 동작의 실제 완료 이전에 미리 결정된 지속구간에 의해 나타날 수 있다. 예를 들어, 메모리 억세스 동작이 8 개의 클럭 주기들을 사용한다고 알려진 경우에, 메모리 억세스 동작의 예측된 완료는 예를 들어 7 번째 클럭 주기에서 발생할 수 있고, 이 때에 스케줄 관리기(128)는 메모리 컨트롤러(102)에 다음 메모리 억세스 요청 디스패치를 위해 조정기(130)에 시그널링을 행하도록 디스패치_req 신호(134)를 어써트할 수 있다.
도 2를 참조해 보면, 본 개시사항의 적어도 하나의 일 실시예에 따라, 지연된 메모리 억세스 요청을 메모리 컨트롤러에 디스패치하는 예시적인 방법(200)이 도시되어 있다. 상기 방법(200)은 블럭(202)에서 개시되는바, 여기서 메모리 컨트롤러(102)는 BIU(106)으로부터 수신된 선택된 메모리 억세스 요청에 의해 나타내어지는, 메모리(104)에 관한 메모리 억세스 동작을 개시한다. 블럭(204)에서, 스케줄 관리기(128)는 메모리 억세스 동작을 모니터링하고, 스케줄 관리기(128)가 현재 메모리 억세스 동작의 예측된 완료를 확인한 때에 스케줄 관리기(128)는 디스패치_req 신호(134)를 어써트하거나 그렇지 않으면 조정기(130)가 블럭(206)에서 BIU(206)로부터의 다음 메모리 억세스 요청의 디스패치를 개시하도록 조정기(130)에 신호를 전달한다. 블럭(208)에서 조정기(130)는 어써트된 디스패치_req 신호(134)를 수신한다. 그에 호응하여, 블럭(210)에서 조정기(130)는 메모리 컨트롤러(102)에의 디스패치를 위하여 큐(132)로부터 메모리 억세스 요청을 선택한다. 상기 언급된 바와 같이, 조정기(130)는 BIU(106)에서 수신되는 메모리 접근 요청들의 우선순위와 그와 같은 다양한 특성들에 기초하여 다음 메모리 억세스 요청을 선택할 수 있다. 블럭(212)에서, 조정기(130)는 선택된 메모리 억세스 요청을 메모리 컨트롤러(102)에 디스패치한다. 블럭(214)에서, 디스패치된 메모리 억세스 요청은 메모리 컨트롤러(102)에서 수신되고 메모리 억세스 요청 큐(120)에서 버퍼링될 수 있거나 선택기(126)를 사용하는 즉시의 프로세싱을 위해 스케줄 관리기(128)에 직접 공급될 수도 있는데, 이것은 스케줄 관리기(128) 또는 메모리 컨트롤러(102)의 다른 구성요소에 의해 제어될 수 있다.
도 3과 도 4를 참조해 보면, 본 개시사항의 적어도 하나의 일 실시예에 따라, 도 1의 시스템에서의 도 2의 방법에 대한 예시적인 구현이 도시되어 있다. 도 3은 본 개시사항의 적어도 하나의 일 실시예에 따라, BIU(106)에서의 메모리 억세스 요청들의 수신을 나타내는 시퀀스(302)와, 메모리 컨트롤러에 메모리 억세스 요청들을 디스패치하는 종래의 기술을 나타내는 시퀀스(304), 그리고 메모리 컨트롤러(102)에 메모리 요청들을 디스패치하는 기술을 나타내는 시퀀스(306)를 갖는 타이밍 다이어그램(300)을 도시하고 있다. 도 3은 또한 메모리 컨트롤러(102)에의 디스패치를 위해 메모리 억세스 요청들을 선택하는 데에 있어서 조정기(130)에 의해 사용되고 조정기(130)에 의해 유지될 수 있는 예시적인 특성 차트(310)를 도시하고 있다. 도 4는 종래의 디스패치 시퀀스(304)와 지연된 디스패치 시퀀스(306) 모두에 대한 타이밍 다이어그램(300)의 다양한 점들에서 메모리 컨트롤러(102)의 큐(120)의 예시적인 상태들을 도시하고 있다. 설명을 용이하게 하기 위해, 메모리 억세스 요청들은 메모리 컨트롤러(120)에 의한 추가적 프로세싱을 위해 큐(120)의 2개의 큐 엔트리들(122, 124)로부터 얻어진다는 점이 가정된다.
시퀀스(302)는 BIU(106)에서의 메모리 억세스 요청들(R1-R4)의 수신을 나타낸다. 도시된 대로, 메모리 억세스 요청들(R1, R2)은 포인트(A)에 앞서 수신되고 메모리 억세스 요청들(R3, R4)은 포인트(A)와 포인트(B) 사이에서 수신된다. 도시되지는 아니하였으나, 요청들(R0, R6)은 BIU(106)에서 메모리 억세스 요청(R1)의 수신에 앞서서 수신된다. 차트(310)에 도시하는 대로, 메모리 억세스 요청들(R6, R0)은 1의 우선순위를 가지고, 메모리 억세스 요청(R1)이 2의 우선순위를 가지며, 메모리 억세스 요청(R2)이 3의 우선순위를, 메모리 억세스 요청(R3)이 0의 우선순위를, 메모리 억세스 요청(R4)이 1의 우선순위를 가지고, 여기서 0의 우선순위는 가장 높은 우선순위를 나타내고 3의 우선순위는 가장 낮은 우선순위를 나타낸다. 타이밍 다이어그램(300)에서, 포인트들(A, B, C)은 메모리 컨트롤러(102)가 메모리 컨트롤러(102)에서 메모리 억세스 요청에 의해 나타나는 메모리 억세스 동작의 프로세싱을 개시하는 때의 포인트들을 나타내고, 그러므로 메모리 컨트롤러(102)가 BIU(106)로부터 또 다른 메모리 억세스 요청을 수신할 능력을 처음으로 갖게 되는 때를 나타낸다. 포인트들(A', B', C')은 개별적으로 스케줄 관리기(128)가 프로세싱되고 있는 메모리 억세스 동작의 예측된 완료를 식별하는 때의 포인트들을 나타낸다.
상기 언급된 바와 같이, 종래의 메모리 디스패치 기술은 메모리 컨트롤러가 또 다른 메모리 억세스 요청을 수신할 능력을 갖자마자 메모리 억세스 요청이 메모리 컨트롤러에 디스패치되는 것으로 구현된다. 이 종래의 기술을 나타내는 시퀀스(304)에 도시된 바와 같이, 포인트(A)일 때 BIU에서 버퍼링된, 가장 높은 우선순위를 갖는 메모리 억세스 요청(이 예에서는 메모리 억세스 요청 R1)은, 포인트(A) 직후에, 프로세싱을 위해 메모리 컨트롤러에 디스패치된다. 마찬가지로, 종래의 기 술 사용시 포인트(B)에서, 메모리 컨트롤러에서 공간이 다시 이용가능하게 되는 경우에는, 종래의 디스패치 시퀀스(304)는 가장 높은 우선순위의 메모리 억세스 요청이 디스패치를 위해 선택되는 포인트 B에서 버퍼링됨을 예시하고 있다(이 경우 메모리 억세스 요청 R3). 그러나, 상기에 언급된 대로 시퀀스(304)에 의해 나타내어진 이 종래의 기술은 종종 메모리 억세스 요청들의 덜 효율적인 스케줄링을 제공한다. 예를 들어, 메모리 억세스 요청 R3가 CPU(108)(도 1)로부터의 보다 높은 우선순위의 메모리 억세스 요청이라고 가정하면, 메모리 억세스 요청들(R1, R2)은 예컨대 DMA 마스터(112)에 연결된 장치들로부터의 낮은 우선순위의 메모리 억세스 요청들이다. 종래의 디스패치 시퀀스(304)에서, 메모리 억세스 요청(R1)은 메모리 억세스 요청(R3)의 디스패치와 프로세싱에 앞서 메모리 컨트롤러(102)에서 디스패치되고 프로세싱되는데(메모리 억세스 요청(R3)가 메모리 억세스 요청(R1)보다 높은 우선순위를 가지고 있는 경우에라도 그러하다), 이는 메모리 컨트롤러(102)가 버스 인터페이스 유닛(106)으로부터 메모리 억세스 요청을 수신할 능력을 처음으로 갖게 되는 때의 포인트(A) 이후의 시각에 메모리 억세스 요청(R3)이 수신되고 그로 인해 메모리 억세스 요청(R3)이 상기 수신으로 인해 디스패치를 위한 선택이 가능하지 않게 됨에 기인한다.
반면에, 도 2의 방법(200)의 예시적인 구현방안을 나타내는 디스패치 시퀀스(306)는, 조정 지연과 메모리 컨트롤러(102)에서 (메모리 컨트롤러(102)에 의해 수행되고 있는 메모리 억세스 동작의 예측된 완료에 의해 나타날 수 있는) 거의 가장 마지막 가능 모멘트에 이르기까지의 메모리 억세스 요청의 선택에 의해, 메모리 억세스 요청들의 더욱 효율적인 조정을 달성할 수 있음을 예시한다. 예를 들어 설명해보자면, 스케줄 관리기(128)는 현재 프로세싱 중인 메모리 억세스 동작이 포인트(A')에서 완료에 가까워졌는지를 판단한다. 이에 호응하여, 스케줄 관리기(128)는 조정기(130)에 의해 수신되는 디스패치_req 신호(134)를 어써트한다. 이 신호(134)의 어써트에 대한 응답으로, 조정기(130)는 큐(130)에서 그때에 이용가능한 메모리 억세스 요청들(다시 말해, 메모리 억세스 요청들 R6, R0)을 선택한다. 이 경우, 메모리 억세스 요청(R0)이 메모리 억세스 요청(R6)보다 높은 우선순위를 가지기 때문에, 메모리 억세스 요청(R0)은 메모리 컨트롤러(102)에의 디스패치를 위하여 조정기(130)에 의해 선택된다. 시퀀스(306)는 메모리 컨트롤러(102)가 현재의 메모리 억세스 동작을 완료하는 때인 포인트(A)까지 계속되나, 종래의 기술들과는 달리, 스케줄 관리기(128)는 메모리 컨트롤러(102)가 또 다른 메모리 억세스 요청을 수신할 능력을 갖게 되는 경우에도 다음 메모리 억세스 요청을 위해 시그널링을 행하지 않는다. 대신, 스케줄 관리기(128)는 다음 메모리 억세스 동작의 예측된 완료시까지 기다리고, 예측된 완료시인 포인트(B')에서 신호(134)를 어써트한다. 포인트(B')에서의 신호(134) 어써트에 대한 응답으로, 조정기(130)는 메모리 컨트롤러(102)에의 디스패치를 위해 다음 메모리 억세스 요청을 선택한다. 시퀀스(302)에서 예시된 바와 같이, 메모리 컨트롤러(102)가 처음으로 다음 메모리 억세스 요청을 수신할 능력을 가지게 되는 때인 포인트(A)부터 현재 메모리 억세스 동작이 메모리 컨트롤러(102)에서 완료에 가까워진 때인 포인트(B') 사이의 지연은, BIU(106)가 높은 우선순위의 메모리 억세스 요청(R3)을 수신할 수 있게 한다. 포인트(B')에서의 신호(134) 어써트에 대한 응답에 따라, 조정기(130)는 그것의 큐(132)에서 이용가능한 메모리 억세스 요청(R3)을 큐(132)에서 가장 높은 우선순위의 요청으로서 가지고, 조정기(130)는 포인트(B') 이후에 메모리 컨트롤러(102)에의 디스패치를 위해 메모리 억세스 요청(R3)을 선택한다. 비슷한 방식으로, 메모리 컨트롤러(102)에 의해 수행 중인 메모리 억세스 동작이 포인트(C')에서 완료에 가까워졌을 때, 조정기(130)가 메모리 컨트롤러(102)에의 디스패치를 위해 메모리 억세스 요청(R1)을 선택함에 대한 응답으로, 스케줄 관리기(128)는 신호(134)를 어써트한다.
도 4에 예시된 바와 같이, 메모리 억세스 요청의 지연된 선택 및 디스패치는 일반적으로 메모리 컨트롤러(102)에서 메모리 억세스 요청들의 보다 효율적인 스케줄링을 가능하게 한다. 예를 들어 설명해보면, 종래의 디스패치 시퀀스(304)의 포인트(B)에서 메모리 컨트롤러는 프로세싱을 위해 그것의 큐로부터 메모리 억세스 요청을 선택한다. 메모리 억세스 큐 상태(402)에 의해 예시된 바와 같이, 종래의 디스패치 기술을 사용하는 메모리 컨트롤러는 포인트(B)에서 큐 내부에 메모리 억세스 요청들(R1과 R0)을 가질 수 있는데, 메모리 억세스 요청(R0)이 일반적으로 그것의 높은 우선순위로 인해 프로세싱을 위하여 요청들(R1과 R0)로부터 선택될 수 있다. 또한, 종래의 기술을 사용하는 메모리 컨트롤러의 메모리 억세스 요청 큐는 메모리 억세스 요청들(R1, R3)을 가질 수 있는데, 메모리 억세스 요청(R3)이 일반적으로 그것의 높은 우선순위로 인해 프로세싱을 위하여 요청들(R1과 R3)로부터 선택될 수 있다. 반대로, 메모리 억세스 큐 상태(404)에 예시된 대로, 본 명세서에 개시된 지연된 메모리 억세스 요청 디스패치 기술을 갖는 메모리 컨트롤러(102)는, 포인트(B)에서, 그것의 큐(120) 내부에 메모리 억세스 요청(R3)을 가질 수 있는데, 이 메모리 억세스 요청(R3)은 프로세싱을 위해 선택될 수 있으며, 포인트(C)에서 큐(120)는 메모리 억세스 요청들(R1과 R0)을 포함할 수 있고, 메모리 억세스 요청(R0)이 프로세싱을 위해 요청들(R1과 R0)로부터 선택될 수 있다. 따라서, 도 3과 도 4가 예시하는 바와 같이, 본 명세서에 개시된 지연된 메모리 억세스 요청 디스패치 기술은 가장 높은 우선순위의 메모리 억세스 요청(R3)이 종래의 디스패치 기술을 사용하는 프로세싱 시스템에 있을 때보다 더 빨리 프로세싱될 수 있게 한다. 그래서, 본 명세서에 개시된 상기 지연된 메모리 억세스 요청 디스패치 기술은 종래의 기술들(이에 의해 메모리 억세스 요청들은 메모리 컨트롤러가 그것들을 수신할 능력을 갖자마자 즉시 디스패치됨)과 비교하여 메모리 억세스 요청들의 시퀀싱이 보다 효율적으로 이루어지도록 한다.
본 명세서에 개시된 실시예들을 면밀히 검토할 경우 본 개시사항의 다른 실시예들, 용도들, 이점들은 당업자에게 자명해질 것이다. 본 명세서와 도면들은 단지 예시적인 것으로 고려되어야 하고, 본 개시사항의 범위는 단지 특허청구범위와 그것의 균등물에 의해서만 제한될 수 있다.
Claims (10)
- 제 1 메모리 억세스 요청(memory access request)을 메모리 컨트롤러(memory controller)(102)에 디스패치(dispatch)하는 단계와;제 2 메모리 억세스 요청을 상기 메모리 컨트롤러(102)에 디스패치하는 단계와;상기 제 2 메모리 억세스 요청에 근거하여 상기 메모리 컨트롤러(102)에 의한 제 1 메모리 억세스 동작을 개시하는 단계와; 그리고상기 메모리 컨트롤러(102)가 상기 제 1 메모리 억세스 동작을 개시한 것에 응답하여 상기 메모리 컨트롤러(102)가 다음 메모리 억세스 요청을 수신할 수 있는 가장 빠른 시간 이후 상기 제 1 메모리 억세스 동작의 실제 완료 이전의 소정의 지속구간(predetermined duration)에서 상기 메모리 컨트롤러(102)가 상기 제 1 메모리 억세스 요청에 근거하여 제 2 메모리 억세스 동작을 개시하기 전에 제 3 메모리 억세스 요청을 상기 메모리 컨트롤러(102)에 디스패치하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서,상기 메모리 컨트롤러(102)가 다음 메모리 억세스 요청을 수신할 수 있는 상기 가장 빠른 시간은 메모리(104)와 상기 메모리 컨트롤러(102) 간의 시그널링(signaling)에 의해 나타내지는 것을 특징으로 하는 방법.
- 제2항에 있어서,상기 제 2 메모리 억세스 요청은, 읽기 억세스 요청(read access request)과 쓰기 억세스 요청(write access request) 중 하나를 포함하고,상기 읽기 억세스 요청의 경우, 상기 시그널링에는 요청된 데이터가 상기 메모리(104)로부터 상기 메모리 컨트롤러(102)로의 송신(transmission)에 대해 이용가능함을 나타내는 신호가 포함되고; 그리고상기 쓰기 억세스 요청의 경우, 상기 시그널링에는 쓰기 데이터가 상기 메모리(104)에 제공되고 있음을 나타내는 신호가 포함되는 것을 특징으로 하는 방법.
- 삭제
- 제1항에 있어서,상기 제 3 메모리 억세스 요청을 상기 메모리 컨트롤러(102)에 디스패치하는 단계는, 상기 메모리 컨트롤러(102)에 제공될 이용가능한 복수 개의 메모리 억세스 요청들로부터 상기 제 3 메모리 억세스 요청을 선택하는 것을 포함하는 것을 특징으로 하는 방법.
- 제2항에 있어서,상기 제 3 메모리 억세스 요청을 디스패치하는 단계는, 상기 메모리 컨트롤러(102)가 다음 메모리 억세스 요청을 수신할 수 있는 상기 가장 빠른 시간에 응답하여 상기 메모리 컨트롤러(102)로부터 버스 인터페이스 유닛(bus interface unit)(106)으로 신호(134)를 제공하는 것을 포함하고, 여기서 상기 버스 인터페이스 유닛(106)은 상기 신호(134)를 수신하는 것에 응답하여 복수 개의 메모리 억세스 요청들로부터 상기 제 3 메모리 억세스 요청을 선택하는 것을 특징으로 하는 방법.
- 시스템(100)으로서,버스 인터페이스 유닛(106)과; 그리고상기 버스 인터페이스 유닛(106)에 연결됨과 아울러 메모리(104)에 연결된 메모리 컨트롤러(102)를 포함하여 구성되고,상기 버스 인터페이스 유닛(106)은,하나 이상의 메모리 억세스 요청들을 저장하기 위한 버퍼(132)와, 그리고제 1 입력 및 제 2 입력을 갖는 조정기(130)를 포함하고,여기서 상기 조정기(130)의 제 1 입력은 상기 버퍼(132)에 연결되어 메모리 억세스 요청들을 수신하고, 상기 조정기(130)의 제 2 입력은 신호(134)를 수신하며, 상기 조정기(130)는 상기 신호(134)에 응답하여 디스패치를 위한 다음 메모리 억세스 요청을 선택하고,상기 메모리 컨트롤러(102)는 상기 버스 인터페이스 유닛(106)으로부터 디스패치된 복수 개의 메모리 억세스 요청들을 저장하는 버퍼(120)를 포함하고, 상기 버스 인터페이스 유닛(106)으로부터 디스패치된 복수 개의 메모리 억세스 요청들은 우선순위(priority)가 가장 높은 메모리 억세스 요청을 포함하고, 상기 우선순위가 가장 높은 메모리 억세스 요청은 우선순위가 낮은 메모리 억세스 요청 이후에 상기 메모리 컨트롤러(102)의 버퍼(120)에 수신되며,상기 메모리 컨트롤러(102)는 상기 우선순위가 낮은 메모리 억세스 요청에 근거하여 메모리 억세스 동작을 개시하기 전에 상기 우선순위가 가장 높은 메모리 억세스 요청에 근거하여 현재 메모리 억세스 동작을 개시하며,상기 메모리 컨트롤러(102)는, 상기 현재 메모리 억세스 동작의 개시에 응답하여 상기 메모리 컨트롤러(102)의 버퍼(120)에서 버퍼 위치가 이용가능하게 된 이후 상기 현재 메모리 억세스 동작의 실제 완료 이전의 소정의 지속구간에 상기 신호(134)를 상기 버스 인터페이스 유닛(106)에 제공하는 것을 특징으로 하는 시스템.
- 제7항에 있어서,상기 현재 메모리 억세스 요청은, 읽기 억세스 요청과 쓰기 억세스 요청 중 하나를 포함하고,상기 읽기 억세스 요청의 경우, 상기 신호(134)는 요청된 데이터가 상기 메모리(104)로부터 상기 메모리 컨트롤러(102)로의 송신에 대해 이용가능함을 나타내는 표시에 응답하여 제공되고; 그리고상기 쓰기 억세스 요청의 경우, 상기 신호(134)는 쓰기 데이터가 상기 메모리(104)에 제공되고 있음을 나타내는 표시에 응답하여 제공되는 것을 특징으로 하는 시스템.
- 삭제
- 제7항에 있어서,상기 조정기(130)는 상기 하나 이상의 메모리 억세스 요청들과 관련된 우선순위에 근거하여 상기 다음 메모리 억세스 요청을 선택하는 것을 특징으로 하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/222,615 | 2005-09-09 | ||
US11/222,615 US8065457B2 (en) | 2005-09-09 | 2005-09-09 | Delayed memory access request arbitration |
PCT/US2006/032742 WO2007032866A1 (en) | 2005-09-09 | 2006-08-23 | Delayed memory access request arbitration |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080043406A KR20080043406A (ko) | 2008-05-16 |
KR101262313B1 true KR101262313B1 (ko) | 2013-05-08 |
Family
ID=37562281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087008617A KR101262313B1 (ko) | 2005-09-09 | 2008-04-10 | 지연된 메모리 억세스 요청 조정 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8065457B2 (ko) |
EP (1) | EP1922627B1 (ko) |
JP (1) | JP5058167B2 (ko) |
KR (1) | KR101262313B1 (ko) |
CN (1) | CN101258476B (ko) |
DE (1) | DE602006018959D1 (ko) |
TW (1) | TWI426387B (ko) |
WO (1) | WO2007032866A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195903B2 (en) * | 2006-06-29 | 2012-06-05 | Oracle America, Inc. | System and method for metering requests to memory |
US8478950B2 (en) | 2008-07-29 | 2013-07-02 | Synopsys, Inc. | Data processing circuit with arbitration between a plurality of queues |
TWI370361B (en) * | 2008-08-21 | 2012-08-11 | Ili Technology Corp | Memory access controlling apparatus and control method thereof |
CN101667448B (zh) * | 2008-09-04 | 2012-11-07 | 奕力科技股份有限公司 | 存储器存取控制装置及其相关控制方法 |
JP5418193B2 (ja) * | 2009-12-14 | 2014-02-19 | 富士ゼロックス株式会社 | 調停装置、画像処理装置、及び画像形成システム |
US20120290810A1 (en) * | 2011-04-18 | 2012-11-15 | Jean-Jacques Lecler | Memory Access Latency Metering |
GB2518884A (en) * | 2013-10-04 | 2015-04-08 | Ibm | Network attached storage system and corresponding method for request handling in a network attached storage system |
US10402324B2 (en) | 2013-10-31 | 2019-09-03 | Hewlett Packard Enterprise Development Lp | Memory access for busy memory by receiving data from cache during said busy period and verifying said data utilizing cache hit bit or cache miss bit |
US9646660B2 (en) * | 2014-09-23 | 2017-05-09 | Intel Corporation | Selectable memory access time |
CN107526534B (zh) * | 2016-06-21 | 2020-09-18 | 伊姆西Ip控股有限责任公司 | 管理存储设备的输入输出(i/o)的方法和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030070018A1 (en) | 1999-04-23 | 2003-04-10 | Jiin Lai | Delayed transaction method and device used in a PCI system |
US20030185032A1 (en) | 2002-03-26 | 2003-10-02 | Zagorianakos Steven W. | Dual bus memory controller |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4400771A (en) * | 1975-12-04 | 1983-08-23 | Tokyo Shibaura Electric Co., Ltd. | Multi-processor system with programmable memory-access priority control |
US5524220A (en) * | 1994-08-31 | 1996-06-04 | Vlsi Technology, Inc. | Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems |
US5892981A (en) | 1996-10-10 | 1999-04-06 | Hewlett-Packard Company | Memory system and device |
US6134625A (en) * | 1998-02-18 | 2000-10-17 | Intel Corporation | Method and apparatus for providing arbitration between multiple data streams |
US6105086A (en) * | 1998-06-04 | 2000-08-15 | Lsi Logic Corporation | Data communication circuit and method for buffering data between a shared resource and multiple interfaces |
US6453401B1 (en) * | 1999-07-02 | 2002-09-17 | Rambus Inc. | Memory controller with timing constraint tracking and checking unit and corresponding method |
US6594730B1 (en) * | 1999-08-03 | 2003-07-15 | Intel Corporation | Prefetch system for memory controller |
US6499090B1 (en) * | 1999-12-28 | 2002-12-24 | Intel Corporation | Prioritized bus request scheduling mechanism for processing devices |
JP2002244919A (ja) * | 2001-02-20 | 2002-08-30 | Matsushita Electric Ind Co Ltd | Dramインターフェース回路 |
US7093094B2 (en) * | 2001-08-09 | 2006-08-15 | Mobilygen Corporation | Random access memory controller with out of order execution |
US6745308B2 (en) * | 2002-02-19 | 2004-06-01 | Ati Technologies, Inc. | Method and system for bypassing memory controller components |
US7099972B2 (en) * | 2002-07-03 | 2006-08-29 | Sun Microsystems, Inc. | Preemptive round robin arbiter |
JP4008307B2 (ja) * | 2002-08-09 | 2007-11-14 | 松下電器産業株式会社 | メモリインターフェース回路 |
US6857055B2 (en) * | 2002-08-15 | 2005-02-15 | Micron Technology Inc. | Programmable embedded DRAM current monitor |
JP3876816B2 (ja) * | 2002-10-24 | 2007-02-07 | 日本電気株式会社 | コンピュータの共有資源利用制限方法 |
US7093059B2 (en) * | 2002-12-31 | 2006-08-15 | Intel Corporation | Read-write switching method for a memory controller |
JP2004287576A (ja) * | 2003-03-19 | 2004-10-14 | Matsushita Electric Ind Co Ltd | バスコントローラ |
-
2005
- 2005-09-09 US US11/222,615 patent/US8065457B2/en active Active
-
2006
- 2006-08-18 TW TW095130385A patent/TWI426387B/zh active
- 2006-08-23 EP EP06802067A patent/EP1922627B1/en active Active
- 2006-08-23 JP JP2008530073A patent/JP5058167B2/ja active Active
- 2006-08-23 WO PCT/US2006/032742 patent/WO2007032866A1/en active Application Filing
- 2006-08-23 DE DE602006018959T patent/DE602006018959D1/de active Active
- 2006-08-23 CN CN2006800326550A patent/CN101258476B/zh active Active
-
2008
- 2008-04-10 KR KR1020087008617A patent/KR101262313B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030070018A1 (en) | 1999-04-23 | 2003-04-10 | Jiin Lai | Delayed transaction method and device used in a PCI system |
US20030185032A1 (en) | 2002-03-26 | 2003-10-02 | Zagorianakos Steven W. | Dual bus memory controller |
Also Published As
Publication number | Publication date |
---|---|
CN101258476A (zh) | 2008-09-03 |
WO2007032866A1 (en) | 2007-03-22 |
US8065457B2 (en) | 2011-11-22 |
TWI426387B (zh) | 2014-02-11 |
KR20080043406A (ko) | 2008-05-16 |
US20070067532A1 (en) | 2007-03-22 |
CN101258476B (zh) | 2011-06-08 |
EP1922627A1 (en) | 2008-05-21 |
JP5058167B2 (ja) | 2012-10-24 |
TW200723001A (en) | 2007-06-16 |
EP1922627B1 (en) | 2010-12-15 |
JP2009508215A (ja) | 2009-02-26 |
DE602006018959D1 (de) | 2011-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101262313B1 (ko) | 지연된 메모리 억세스 요청 조정 | |
JP4723260B2 (ja) | ソースデバイスに対するリクエストをスケジューリングする装置及び方法 | |
JP4944042B2 (ja) | Soc相互接続において転送待ち時間を低減するための方法および装置 | |
US20050102456A1 (en) | Command transmission method and command transmission apparatus in pipeline bus system | |
EP2807567B1 (en) | Systems and methods for dynamic priority control | |
JP2009508215A5 (ko) | ||
US20140325114A1 (en) | Multi-channel direct memory access controller and control method thereof | |
JP4184614B2 (ja) | バスシステム及びその実行順序の調整方法 | |
US7346722B2 (en) | Apparatus for use in a computer systems | |
US6901507B2 (en) | Context scheduling | |
US9620215B2 (en) | Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode | |
US20060179172A1 (en) | Method and system for reducing power consumption of a direct memory access controller | |
US20160246515A1 (en) | Method and arrangement for controlling requests to a shared electronic resource | |
CN115801814A (zh) | 一种基于串口双fifo缓冲区结构的数据传输方法、系统及存储介质 | |
JP2007249635A (ja) | データ転送装置及びデータ転送方法 | |
JPH11175464A (ja) | 調停装置および方法 | |
JPH06243093A (ja) | バス制御システム | |
JP6119997B2 (ja) | データ処理装置、データ処理装置の制御方法 | |
CN116225318A (zh) | 命令调度方法、闪存控制器、闪存设备及存储介质 | |
GB2341771A (en) | Address decoding | |
GB2341765A (en) | Bus idle usage | |
JPH11143812A (ja) | Dma回路 | |
JPH05134980A (ja) | バスシステム | |
GB2341772A (en) | Primary and secondary bus architecture | |
GB2341769A (en) | Data packet reordering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180328 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190328 Year of fee payment: 7 |