KR20060113019A - 메모리 제어 시스템 - Google Patents

메모리 제어 시스템 Download PDF

Info

Publication number
KR20060113019A
KR20060113019A KR20050035807A KR20050035807A KR20060113019A KR 20060113019 A KR20060113019 A KR 20060113019A KR 20050035807 A KR20050035807 A KR 20050035807A KR 20050035807 A KR20050035807 A KR 20050035807A KR 20060113019 A KR20060113019 A KR 20060113019A
Authority
KR
South Korea
Prior art keywords
block
information
bank
master
address
Prior art date
Application number
KR20050035807A
Other languages
English (en)
Other versions
KR100726101B1 (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 KR20050035807A priority Critical patent/KR100726101B1/ko
Priority to US11/264,873 priority patent/US20060245265A1/en
Priority to JP2005336220A priority patent/JP2006309702A/ja
Priority to CNB2005101290765A priority patent/CN100418077C/zh
Publication of KR20060113019A publication Critical patent/KR20060113019A/ko
Application granted granted Critical
Publication of KR100726101B1 publication Critical patent/KR100726101B1/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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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

Abstract

본 발명에 따른 메모리 제어 시스템은 a) 복수 개의 뱅크들을 포함하는 메모리부, b) 버스사용 요청신호, 블럭 모드 신호, 블럭 정보 및 데이터에 대한 구동 정보를 출력하여 블록에 해당하는 데이터를 출력하거나 독출된 데이터를 입력받는 하나 이상의 버스 마스터, c) 버스사용 요청신호 및 구동 정보를 입력받아 억세스를 허용할 버스 마스터를 선택하는 마스터 선택신호와 선택된 버스 마스터로부터 입력된 구동 정보를 출력하는 중재기, d) 하나 이상의 버스 마스터로부터 블럭 모드 신호, 블럭 정보 및 블록에 해당하는 데이터를 입력받고 마스터 선택신호에 따라 선택된 버스 마스터의 블럭 모드 신호, 블럭 정보 및 블록에 해당하는 데이터를 출력하는 버스 마스터 선택부 및 e) 중재기로부터 구동 정보를 입력받고 버스 마스터 선택부로부터 블럭 모드 신호 및 블럭 정보를 입력받아 블럭의 라인 그룹 각각이 순차적으로 서로 다른 뱅크 각각에 저장되거나 독출되도록 하는 메모리 컨트롤러를 포함한다.

Description

메모리 제어 시스템{System for Controlling Memory}
도 1은 이미지 데이터를 메모리에 저장하는 종래의 방법을 설명하기 위한 것이다.
도 2는 종래의 메모리 제어 시스템의 블럭 구성도이다.
도 3a는 종래의 메모리 제어 시스템에서 버스 마스터와 슬레이브들 간의 데이터 엑세스시 중재를 위한 타이밍도이다.
도 3b는 종래의 메모리 제어 시스템의 뱅크 인터리빙 동작에 따른 타이밍도를 나타낸 것이다.
도 4는 본 발명에 따른 메모리 제어 시스템의 동작 개념을 설명하기 위한 것이다.
도 5는 본 발명에 따른 메모리 제어 시스템의 블럭 구성도이다.
도 6은 본 발명에 따라 저장된 이미지 데이터에 억세스하기 위한 어드레스 맵을 나타낸 것이다.
도 7은 본 발명의 메모리 제어 시스템의 동작에 따라 독출되거나 저장되는 이미지 데이터를 도식적으로 나타낸 것이다.
도 8은 도 7의 이미지 블럭에 해당하는 이미지 데이터를 나타낸 것이다.
도 9는 도 8의 이미지 데이터에 억세스하기 위하여 본 발명에 따른 메모리 제어 시스템의 동작에 따른 커맨드 및 어드레스 입력 타이밍도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
510 : 메모리부 510a, 510b, 510c, 510d : 복수 개의 뱅크
520a, 520b, 520c : 버스 마스터 530 : 중재기
535 : 버스 마스터 선택부 540 : 메모리 컨트롤러
본 발명은 메모리 제어 시스템에 관한 것으로서, 더욱 자세하게는 중재 장치(arbiter)를 포함하는 메모리 제어 시스템에 관한 것이다.
최근의 DMB(Digital Multimedia Broadcasting) 수신기를 포함한 이동통신장치는 지상이나 위성으로부터 전송된 다양한 멀티미디어 신호를 디지털 방식으로 처리하며 이미지 데이터를 고속으로 처리하기 위하여 이미지 데이터를 압축한다.
이미지 데이터의 압축은 각 프레임을 구성하는 상들의 움직임 정보에 대한 검출을 통하여 이루어진다. 이와 같이 움직임 정보를 이용하여 이미지 데이터를 압축하는 일반적인 방법은 다음과 같이 이루어진다.
먼저 현재 프레임에 포함된 기준 이미지 블럭과 이전 프레임에 포함된 비교 이미지 블럭들 각각과의 차성분이 계산되고, 계산된 차성분의 절대값이 최소가 되 는 비교 이미지 블럭이 선정된다. 이와 같이 선정된 비교 이미지 블럭과 기준 이미지 블럭과의 거리 차이 및 움직인 방향을 통하여 움직임 벡터(motion vector)가 결정된다.
다음으로 이전 프레임의 검색 영역에서의 블럭을 움직임 벡터만큼 이동시킨 블럭과 현재 프레임의 기본 블럭과의 차성분을 구하여, 이전 프레임으로 현재 프레임을 보상하기 위한 오차신호가 출력된다. 이러한 오차 신호를 이용하여 압축이 이루어지면 디코딩 과정에서 오차 신호를 이용하여 특정 프레임을 복원할 수 있기 때문에 압축율이 높아진다.
이와 같은 과정에서 현재 프레임, 이전 프레임, 기준 이미지 블럭 및 비교 이미지 블럭에 해당하는 이미지 데이터는 SDRAM(Synchronous Dynamic Random Access Memory)과 같은 메모리에 저장된다.
이 때 다음과 같은 일반적인 방법으로 메모리에 이미지 데이터가 저장된다.
도 1은 이미지 데이터를 메모리에 저장하는 일반적인 방법을 설명하기 위한 것이다. 일반적인 이미지 데이터 저장 방법은 하나의 프레임을 구성하는 이미지 데이터의 각 이미지 라인별 시작 어드레스의 위치를 동일하게 한다. 즉, 첫 번째 이미지 라인(Bank0,RAS0)을 구성하는 이미지 데이터 내지 16 번째 이미지 라인(Bank0 ~ RAS15)을 구성하는 이미지 데이터의 시작 위치는 동일하다. 이와 같이 이미지 데이터가 저장되면, 이미지 블럭을 구성하는 각 이미지 라인의 시작 위치 또한 동일하다.
이 때 각 라인의 뱅크 어드레스가 각각 다른 값을 가질 수 있도록 메모리 맵 을 설정할 경우에는 SDRAM의 특성을 이용하여 뱅크 인터리빙(bank interleaving) 방식으로 더 효율적인 억세스(access)를 할 수 있다.
이러한 뱅크 인터리빙 방식을 이용하기 위해서는 일반적인 AMBA(Advanced Microcontroller Bus Architecture) 인터페이스 외에 추가의 신호를 주고받는 구조가 필요하며, 이러한 이유로 한국공개특허 10-2004-0100631과 같은 메모리 제어 시스템이 제안되었다.
도 2는 종래의 메모리 제어 시스템의 블럭 구성도이고, 도 3a는 종래의 메모리 제어 시스템에서 버스 마스터와 슬레이브들 간의 데이터 엑세스시 중재를 위한 타이밍도이고, 도 3b는 종래의 메모리 제어 시스템의 뱅크 인터리빙 동작에 따른 타이밍도를 나타낸 것이다.
도 2 및 도 3a에 도시된 바와 같이, 버스 마스터1(110a)과 버스 마스터2(110b)가 동시에 중재기(120)로 싱크로너스 디램(140)에 억세스하기 위한 요청 신호(HBUSREQ1, HBUSREQ2)를 출력한다. 이에 따라 중재기(120)는 승인 신호(HGRANT1, HGRANT2)를 동시에 버스 마스터1(110a)과 버스 마스터2(110b)로 각각 출력하고 버스 마스터1(110a)과 버스 마스터2(110b)는 버스 소유권을 가진 것으로 판단한다.
이후 버스 마스터1(110a)과 버스 마스터2(110b)는 동시에 어드레스 정보(HADDR1, HADDR2)를 중재기(120)로 출력한다. 중재기(120)는 억세스가 요청된 뱅크들 중 억세스 준비가 빨리 된 뱅크에 억세스하려는 버스 마스터1(110a)에 실질적인 버스 소유권(bus ownership)을 준다. 이에 따라 SDRAM 컨트롤러(130)가 데이터(DATA1 내지 DATA4)를 독출하여 버스 마스터1(110a)로 출력하고 이후에 데이터 (DATA5 내지 DATA8)를 독출하여 버스 마스터2(110b)로 출력한다.
도 3b에 도시된 바와 같이, 종래의 메모리 제어 시스템은 첫번째 뱅크(BA:0)에 대하여 RAS 명령(RAS0)과 CAS 명령(CAS0)을 수행한 후, 다음 뱅크(BA1)에 대해 RAS 명령(RAS1)과 CAS 명령(CAS2)을 수행하고 있다. 또한, 이 명령들의 타이밍은 SDRAM(140)의 특성, 즉 tRCD (time of RAS to CAS)와 tCL(time of CAS Latency)에 적합하도록 맞추어져 데이터 독출시 불필요한 클럭의 소모를 제거하여 첫 번째 뱅크에 저장된 데이터(B0D0 내지 B0D3)가 독출된 후 이어서 두 번째 뱅크에 저장된 데이터(B1D0 내지 B1D3)가 독출된다.
그러나, 종래의 메모리 제어 시스템은 한 뱅크에서 데이터를 4개 이상 읽어올 때에만 불필요한 클럭 소모를 막을 수 있다. 만약 4개 미만의 데이터를 억세스하기 위해서는 첫 번째 뱅크(Bank0)(142a)에 대하여 수행되는 RAS 명령과 CAS 명령 사이에 두 번째 뱅크(Bank1)(142b)에 대하여 RAS 명령이 수행되어야 하므로 SDRAM 컨트롤러(130)의 구조가 복잡해지는 문제점이 발생한다.
즉, 도 3b에 도시된 바와 같이 tRCD와 tCL은 정해져 있기 때문에 4개 미만의 데이터를 클럭 소모없이 억세스 하기 위해서는 하나의 뱅크에 대하여 수행되는 RAS 명령과 CAS 명령 사이에 다음 뱅크에 대한 RAS 명령이 수행되어야 한다. 예를 들어, SDRAM 컨트롤러(130)가 첫 번째 뱅크(Bank0)의 억세스를 위한 RAS 명령과 CAS 명령 사이에 두 번째 뱅크(Bank1)의 억세스를 위한 RAS 명령을 처리해야 하기 때문에 SDRAM 컨트롤러(130)는 첫 번째 뱅크(Bank0)의 억세스를 위한 tRCD와 두 번째 뱅크(Bank1)의 억세스를 위한 tRCD가 보장되는 지를 개별적으로 계산해야 한다.
이와 같은 tRCD의 보장 확인을 위한 개별적 계산으로 인하여 SDRAM 컨트롤러(130)가 수행해야 하는 계산량은 증가하고, 이에 따라 SDRAM 컨트롤러(130)의 구조는 복잡해진다. 또한, tRCD가 보장되지 않을 경우 종래의 메모리 제어 시스템은 tRCD의 보장을 위한 회로를 더 구비해야 한다는 문제점도 발생한다. 종래의 메모리 제어 시스템의 중재기(120) 역시 SDRAM 컨트롤러(130)의 억세스 상태를 모니터링하면서 여러 버스 마스터의 억세스를 동시에 활성화해야 하기 때문에 버스 마스터의 개수가 많아질수록 회로가 복잡해지고 오류발생 가능성이 높아진다.
이와 같은 종래의 메모리 시스템은 도 1의 이미지 블럭의 사이즈가 작아질수록 두드러진다. 특히, H.264와 같은 압축 방식은 2ㅧ 2 사이즈(size)의 이미지 블럭을 사용하므로 종래의 메모리 시스템의 문제점이 더욱 심각해진다.
한편, 종래의 메모리 제어 시스템은 한번의 억세스에서 두 개 이상의 뱅크를 연결하는 억세스가 불가능하다. 예를 들어, 한 개의 버스 마스터가 첫 번째 뱅크(Bank0)(142a)의 뒷부분의 어드레스 영역부터 두 번째 뱅크(Bank1)(142b)의 앞부분 어드레스 영역까지 억세스를 원할 경우, 첫 번째 뱅크(Bank0)(142a)의 뒷부분의 어드레스 영역에 대한 억세스가 수행된 후 마스터로부터 두 번째 뱅크(Bank1)(142b)에 대한 억세스 요청이 별개로 이루어져야 한다. 따라서, 마스터가 억세스할 때 불필요한 시간지연이 발생하며 마스터의 회로가 복잡해진다.
또한 일반적인 데이터 인터페이스에서는 뱅크 인터리빙에 적합한 순서의 어드레스가 발생하지 않으며, 특히 이미지 처리 과정에서는 여러 이미지 라인의 억세스가 한번에 요구되기 때문에 뱅크 인터리빙을 필요로 하는 구조에서는 하나의 마 스터가 한번에 여러 이미지 라인의 억세스를 요청하는 것이 일반적이다. 하지만 종래의 메모리 제어 시스템은 하나의 마스터가 한번에 여러 이미지 라인의 억세스를 요청하는 것이 어렵다는 문제점이 있다.
본 발명은 상기와 같은 문제점들을 해결하기 위한 것으로, 이미지 데이터의 압축 처리 과정에서 이미지 블럭의 사이즈에 영향을 덜 받으면서도 클록의 소모가 없고 구조 및 계산 절차가 단순한 메모리 제어 시스템을 제공하기 위한 것이다.
상기 목적을 달성하기 위하여 본 발명에 따른 메모리 제어 시스템은 a) 복수 개의 뱅크들을 포함하는 메모리부, b) 버스사용 요청신호, 블럭 모드 신호, 블럭 정보 및 데이터에 대한 구동 정보를 출력하여 블록에 해당하는 데이터를 출력하거나 독출된 데이터를 입력받는 하나 이상의 버스 마스터, c) 버스사용 요청신호 및 구동 정보를 입력받아 억세스를 허용할 버스 마스터를 선택하는 마스터 선택신호와 선택된 버스 마스터로부터 입력된 구동 정보를 출력하는 중재기, d) 하나 이상의 버스 마스터로부터 블럭 모드 신호, 블럭 정보 및 블록에 해당하는 데이터를 입력받고 마스터 선택신호에 따라 선택된 버스 마스터의 블럭 모드 신호, 블럭 정보 및 블록에 해당하는 데이터를 출력하는 버스 마스터 선택부 및 e) 중재기로부터 구동 정보를 입력받고 버스 마스터 선택부로부터 블럭 모드 신호 및 블럭 정보를 입력받아 블럭의 라인 그룹 각각이 순차적으로 서로 다른 뱅크 각각에 저장되거나 독출되도록 하는 메모리 컨트롤러를 포함한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세히 설명하고자 한다.
도 4는 본 발명에 따른 메모리 제어 시스템의 동작 개념을 설명하기 위한 것이다. 도 4의 좌측에 도시된 것은 저장될 한 프레임의 화상을, 도 4의 중앙에 도시된 것은 본 발명의 메모리 제어 시스템의 동작에 의하여 메모리부에 저장된 이미지 데이터의 상태를, 도 4의 우측에 도시된 것은 메모리부에 저장된 이미지 데이터를 본 발명의 메모리 제어 시스템의 동작에 따라 독출한 결과를 도식적으로 나타낸 것이다.
도 4의 좌측에 도시된 바와 같이 각 이미지 라인에 해당하는 이미지 데이터는 도 4의 중앙에 도시된 것과 같이 서로 다른 뱅크에 각각 저장된다. 즉, 프레임의 첫 번째 이미지 라인(이미지 라인0)에 해당하는 이미지 데이터는 첫 번째 뱅크(Bank0)의 첫 번째 로우 어드레스(RAS0)에 해당하는 영역에 저장된다. 프레임의 두 번째 이미지 라인(이미지 라인1)에 해당하는 이미지 데이터는 두 번째 뱅크(Bank1)의 첫 번째 로우 어드레스(RAS0)에 해당하는 영역에 저장된다. 프레임의 세 번째 이미지 라인(이미지 라인2)에 해당하는 이미지 데이터는 세 번째 뱅크(Bank2)의 첫 번째 로우 어드레스(RAS0)에 해당하는 영역에 저장된다. 프레임의 네 번째 이미지 라인(이미지 라인3)에 해당하는 이미지 데이터는 네 번째 뱅크(BANK3)의 첫 번째 로우 어드레스(RAS0)에 해당하는 영역에 저장된다. 그리고 다섯 번째 이미지 라인(이미지 라인4)에 해당하는 이미지 데이터는 다시 첫 번째 뱅크(BANK0)의 두 번째 로우 어드레스(RAS1)에 해당하는 영역에 저장된다. 이후 이와 같이 과정이 반복된다.
이와 같은 과정은 하나의 이미지 라인이 하나의 뱅크에 순서대로 저장되는 것이지만 메모리가 복수 개의 뱅크로 이루어질 때 하나 이상의 이미지 라인으로 이루어진 이미지 라인 그룹 각각이 순서대로 뱅크 각각에 교대로 저장되는 것도 가능하다. 예를 들어, 프레임의 첫 번째 및 두 번째 이미지 라인에 해당하는 이미지 데이터가 첫 번째 뱅크(BANK0)에 저장된다. 프레임의 세 번째 및 네 번째 라인에 해당하는 이미지 데이터가 두 번째 뱅크(BANK1)에 저장된다. 프레임의 다섯 번째 및 여섯 번째 라인에 해당하는 이미지 데이터가 세 번째 뱅크(BANK2)에 저장된다. 프레임의 일곱 번째 및 여덟 번째 라인에 해당하는 이미지 데이터가 네 번째 뱅크(BANK3)에 저장된다. 프레임의 아홉 번째 및 열 번째 라인에 해당하는 이미지 데이터는 다시 첫 번째 뱅크(BANK0)에 저장되며 이와 같이 과정이 반복된다.
이와 같은 동작은 이미지 데이터를 압축하기 위해 사용되는 이미지 블럭에 대한 억세스에서도 동일하게 적용된다. 이에 대한 설명은 이후에 도 6과 도 7을 참조하여 설명하도록 한다.
도 5는 본 발명에 따른 메모리 제어 시스템의 블럭 구성도이다. 도 5에 도시된 바와 같이, 본 발명에 따른 메모리 제어 시스템은 메모리부(510), 복수 개의 버스 마스터(520a, 520b, 520c), 중재기(530) 및 메모리 컨트롤러(540)를 포함한다.
메모리부(510)는 복수 개의 뱅크들(510a, 510b, 510c, 510d)을 포함하며 이미지 블럭을 구성하는 이미지 라인 그룹에 해당하는 데이터를 저장한다. 이 때 이미지 라인 그룹은 하나 이상의 이미지 라인으로 구성된다.
하나 이상의 버스 마스터(520a, 520b, 520c)는 버스사용 요청신호(HBUSREQ0, HBUSREQ1, HBUSREQ2), 블럭 모드 신호(BLC.MODE0, BLC.MODE1, BLC.MODE2), 이미지 블럭 정보(Width0~Width2, Height0~Height2, Increment0~Increment2), 이미지 블록에 해당하는 데이터(HWDATA0~HWDATA2) 및 이미지 블럭의 데이터에 대한 구동 정보(HADDR0~HADDR2, HBUSRT0~HBUSRT2, HWRITE0~HWRITE2)를 출력하여 저장할 이미지 데이터를 출력하거나 독출된 이미지 데이터를 입력받는다. 이 때, 구동 정보는 어드레스 정보(HADDR1 ~ HADDR3)와 제어 정보(HBURST1 ~ HBURST3, HWRITE1 ~ HWRITE3)를 포함한다. 이미지 블럭 정보는 이미지 블럭의 폭(Width0~Width2), 이미지 블럭의 높이(Height0~Height2) 및 각 이미지 라인 그룹의 어드레스 변화값, 즉 이미지 라인 변화율(Increment0~Increment2)를 포함한다. 이 때 이미지 라인 변화율은 물리적인 어드레스의 증가량을 의미한다. 예를 들어, n번째 이미지 라인의 시작 어드레스가 0x400이고, n+1번째 이미지 라인의 시작 어드레스가 0x800이라면 이미지 라인 변화율(Increment)은 0x400이다. 이와 같이 이미지 라인 변화율(Increment)에 의하여 n+2번째 이미지 라인의 시작 어드레스는 0xC00으로 자동적으로 계산된다.
중재기(530)는 하나 이상의 버스 마스터(520a, 520b, 520c)로부터 버스사용 요청신호(HBUSREQ0, HBUSREQ1, HBUSREQ2) 및 이미지 블럭에 대한 구동 정보를 입력받고, 억세스를 허용할 버스 마스터를 선택하여 마스터 선택신호(HMASTER)와 선택된 버스 마스터로부터 입력된 구동 정보를 출력한다.
버스 마스터 선택부(535)는 멀티플렉서(MUX)를 포함하여 하나 이상의 버스 마스터(520a, 520b, 520c)로부터 블럭 모드 신호(BLC.MODE0~BLC.MODE2), 이미지 블록에 해당하는 이미지 데이터(HWDATA0~HWDATA2) 및 이미지 블럭 정보 (Width0~Width2, Height0~Height2, Increment0~Increment2)를 입력받고 중재기(530)로부터 출력된 마스터 선택신호(HMASTER)에 따라 선택된 버스 마스터의 블럭 모드 신호(BLC.MODE1), 이미지 블록 정보(Width1, Height1, Increment1) 및 이미지 블록에 해당하는 이미지 데이터(BIWDATA1)를 출력한다.
메모리 컨트롤러(540)는 중재기(530)로부터 구동 정보를 입력받고 버스 마스터 선택부(535)로부터 블럭 모드 신호(BLC.MODE0, BLC.MODE1, BLC.MODE2)를 입력받아 상기 구동 정보와 상기 블럭 모드 신호에 해당하는 이미지 블럭의 이미지 라인 그룹 각각이 순차적으로 뱅크 각각의 동일한 로우 어드레스(row address) 영역에 저장되거나 독출되도록 메모리부(510)를 제어한다.
다음으로 도면을 참조하여 본 발명의 메모리 제어 시스템의 동작을 상세히 설명한다.
각각의 버스 마스터(520a, 520b 또는 520c)는 메모리부(510)의 뱅크(510a,510b,510c,510d)에 억세스(access)하기 위한 요청 신호(HBUSREQ0, HBUSREQ1 또는 HBUSREQ2)를 중재기(530)로 출력하고, 이미지 블럭에 해당하는 데이터(HWDATA0, HWDATA1, HWDATA2), 블럭 모드 신호(BLC.MODE0, BLC.MODE1, BLC.MODE2) 및 이미지 블럭 정보(Width0 ~ Width2, Height0 ~ Height2, Increment0 ~ Increment2)를 버스 마스터 선택부(535)로 출력한다.
중재기(530)는 버스 마스터들(520a,520b,520c) 중 하나를 선택하여 승인 신호(HGRANT0, HGRANT1 또는 HGRANT2)를 선택된 버스 마스터로 출력하고, 마스터 선택신호(HMASTER)를 버스 마스터 선택부(535)로 출력한다. 이 때, 디스플레이를 담 당하는 버스 마스터1(520b)이 선택되었다면, 버스 마스터1(520b)은 구동 정보 즉, 어드레스 정보(HADDR1)와 제어 정보(HBURST1, HWRITE1)를 중재기(530)로 출력한다.
또한, 중재기(530)는 데이터 처리 준비 요구(BIREQD)를 메모리 컨트롤러(540)로 출력한다. 뱅크들이 억세스 준비가 완료되면, 중재기(530)는 상기 구동정보에 대응하는 어드레스 정보(BIADDR) 및 제어 정보(BIBA, BIBE, BIRCONT, BICCONT)를 받아서 메모리 컨트롤러 인터페이스(533)로 출력한다.
또한, 중재기(530)는 버스 마스터1(520b)가 시스템 버스를 사용하도록 준비 신호(HREADY1)를 출력하여 버스 마스터1(520b)과 뱅크들(510a,510b,510c,510d) 간에 데이터 전송이 이루어지도록 중재한다.
한편 버스 마스터 선택부(535)는 중재기(530)로부터 입력된 마스터 선택신호(HMASTER)에 따라 버스 마스터1(520b)로부터 전송된 이미지 블럭에 해당하는 데이터(HWDATA1), 블럭 모드 신호(BLC.MODE1) 및 이미지 블럭 정보(Width1, Height1, Increment1)를 메모리 컨트롤러(540)로 출력한다.
블럭 모드 신호(BLC.MODE1) 및 이미지 블럭 정보(Width1, Height1, Increment1)를 입력받은 메모리 컨트롤러(540)가 전송받은 어드레스 정보(BIADDR)에 따라 억세스 과정을 진행한다.
이 때, 어드레스 정보(BIADDR)의 어드레스 맵은 도 6과 같다. 도 6에 도시된 바와 같이, 본 발명의 메모리 제어 시스템의 동작을 위하여 뱅크 어드레스가 로우 어드레스보다 하위 비트에 할당된다. 이에 따라 컬럼 어드레스가 증가되면서 메모리의 특정 뱅크, 특정 로우 라인의 영역에 이미지 데이터가 저장된 후 뱅크 어드레 스가 증가하고 로우 어드레스는 그대로 유지되므로 다음 뱅크의 특정 로우 라인에 이미지 데이터가 저장된다.
이와 같은 어드레스 맵에 따라 메모리 컨트롤러(540)는 어드레스(ADDR) 및 제어 정보(NDCS, NRAS, NCAS, NDWE, BA 등)에 따라 메모리부(510)에 데이터(DATA)를 기입 또는 독출한다.
도 7은 본 발명의 메모리 제어 시스템의 동작에 따라 독출되거나 저장되는 이미지 데이터를 도식적으로 나타낸 것이다. 도 7에 도시된 바와 같이, 폭(Width1)과 높이(Height1) 그리고 이미지 라인 증가율(Increment1)을 지닌 이미지 블록의 이미지 라인은 순서대로 메모리 컨트롤러(540)에 의하여 각 뱅크에 저장되거나 각 뱅크로부터 독출된다.
즉, 메모리 컨트롤러(540)는 도 6의 어드레스 맵에 따라 특정 뱅크(BANK0), 특정 로우 라인(RAS0)의 영역에 0x0000부터 0x00CC까지 컬럼 어드레스를 증가시키면서 이미지 데이터를 저장한다. 이후 메모리 컨트롤러(540)는 뱅크 어드레스를 증가시켜 다음 뱅크(BANK1)를 지정하고 로우 어드레스를 그대로 유지시킨다. 이에 따라 BANK1, RAS0에 해당하는 영역에 0x0000부터 0x00CC까지 컬럼 어드레스가 증가되면서 이미지 데이터가 저장된다. 이후 이와 같은 과정을 반복하면서 이미지 블럭에 해당하는 이미지 데이터가 저장된다.
이 때, 메모리 컨트롤러(540)는 특정 이미지 라인(n 번째)에 해당하는 이미지 데이터에 억세스할 때 이전 이미지 라인(n-1 번째)의 어드레스에 이미지 라인 증가율(Increment)을 더하여 특정 이미지 라인(n 번째)의 어드레스를 계산한다.
이와 같이 본 발명의 메모리 제어 시스템의 동작에 의하여 컬럼 어드레스가 증가한 후 로우 어드레스보다 뱅크 어드레스가 우선적으로 증가하면, 메모리의 운영이 보다 효율적으로 이루어질 수 있다. 또한 본 발명의 메모리 제어 시스템은 이미지 라인 증가율(Increment)을 이용하여 어드레스를 계산하므로 계산량을 크게 줄일 수 있다.
도 8은 도 7의 이미지 블럭에 해당하는 이미지 데이터를 나타낸 것이고, 도 9는 도 8의 이미지 데이터에 억세스하기 위하여 본 발명에 따른 메모리 제어 시스템의 동작에 따른 커맨드 및 어드레스 입력 타이밍도이다.
먼저, DATA00 내지 DATA03에 대한 억세스를 위하여 첫 번째 뱅크(BANK0)의 첫 번째 로우 어드레스(RAS0)를 지정하기 위한 RAS 신호(910)가 입력되면, tRCD에 해당하는 클럭 이후에 읽기 명령(Read command1)과 CAS 신호(920)가 입력된다.
이 때, RAS 신호(910)와 CAS 신호(920) 사이의 tRCD 동안에 DATA10 내지 DATA13에 대한 억세스를 위하여 두 번째 뱅크(BANK1)의 첫 번째 로우 어드레스(RAS0)를 지정하기 위한 RAS 신호(930)가 입력된다.
이와 같은 신호 입력이 가능한 이유는 일반적으로 메모리를 구성하는 뱅크 각각에 대한 개별적인 제어가 가능하기 때문이다.
따라서, 본 발명과 같이 하나의 이미지 라인이 순서대로 교대되는 뱅크 각각에 저장되면 하나의 뱅크에 저장된 특정 이미지 라인의 억세스를 위한 tRCD 동안에 다음 뱅크에 저장된 특정 이미지 라인의 억세스를 위한 RAS 신호의 입력이 가능하다.
이와 같이 두 번째 뱅크(BANK1)에 저장된 DATA10 내지 DATA13의 억세스를 위한 읽기 명령(read command2)을 보내야 할 시점, 즉 두 번째 뱅크(BANK1)에 대한 CAS 신호 이전에 두 번째 뱅크(BANK1)에 대한 RAS 신호(930)가 첫 번째 뱅크(BANK0)에 대한 RAS 신호(910)와 CAS 신호(920) 사이에 입력되어 있는 상황이므로 별도의 클럭 소비 없이 억세스를 시작할 수 있다.
마찬가지로 첫 번째 뱅크(BANK0)에 대한 예비 충전(940)은 두 번째 뱅크(BANK1)에 대한 읽기 동작 동안 비어있는 클럭에서 수행할 수 있게 되므로 실제로는 예비 충전을 위한 클럭은 소비하지 않아도 된다. 즉, 예비 충전 명령 역시 뱅크 별로 수행되어야 하므로 소정 뱅크에 대한 억세스가 완료되어 다음 뱅크에 대한 억세스가 이루어질 때 소정 뱅크에 대한 예비 충전이 이루어지며 모든 뱅크에 대한 억세스가 끝난 다음에는 전체 뱅크들에 대한 예비 충전이 이루어진다.
만약 이미지 블록의 폭(width)이 매우 작아 예비 충전을 위한 클럭의 여유가 없는 경우 메모리 컨트롤러(540)는 이미지 라인 그룹에 해당하는 이미지 데이터를 소정의 뱅크에 저장하거나 뱅크로부터 독출한 다음 자동적으로 해당 뱅크에 대하여 예비 충전함으로써 예비 충전을 위한 클럭 소모를 없앨 수 있다.
이와 같이 과정이 두 번째 뱅크(BANK1) 내지 네 번째 뱅크(BANK3)에 대하여 동일하게 이루어진다. 즉, 하나의 뱅크의 특정 라인에 해당하는 이미지 데이터에 억세스하기 위한 RAS 신호와 CAS 신호 사이에 다음 뱅크의 특정 라인에 해당하는 이미지 데이터에 억세스하기 위한 RAS 신호가 입력된다. 또한, 하나의 뱅크에 대한 예비 충전은 다음 뱅크에 대한 억세스 동작 동안 이루어진다.
이 때, 본 발명의 메모리 제어 시스템은 도 7 및 도 8에 도시된 바와 같이, 이미지 블록을 구성하는 각 이미지 라인을 각 뱅크(BANK0,BANK1,BANK2,BANK3)의 동일 로우 어드레스(RAS0)에 저장 또는 독출하는 것도 가능하고, 각 이미지 라인을 각 뱅크의 다른 로우 어드레스에 저장 또는 독축하는 것도 가능하다.
이와 같은 과정을 정리하면 하나의 뱅크의 특정 라인에 해당하는 이미지 데이터에 대한 억세스가 이루어지는 동안 다음 뱅크의 특정 라인에 해당하는 이미지 데이터에 대한 억세스 명령이 이루어진다고 할 수 있다. 이러한 동작을 통하여 도 9의 DATA00 내지 DATA03에 대한 억세스와 DATA10 내지 DATA13에 대한 억세스가 연속적으로 발생하므로 불필요한 클럭 소모를 막을 수 있다.
종래의 메모리 제어 시스템이 뱅크 인터리빙 방식으로 소정 개 미만의 데이터를 억세스하기 위해서는 그 구조가 복잡해지는 문제점이 발생한다. 이에 비하여 본 발명의 메모리 제어 시스템은 억세스를 요청하는 버스 마스터에 의해 블록 모드 신호 및 이미지 블록 정보를 통하여 억세스의 형태가 이미 결정되어 메모리 컨트롤러에 전달되고, 이미지 블록의 각 이미지 라인이 순차적으로 각 뱅크의 동일 로우 어드레스 영역에 저장되기 때문에 하나의 뱅크에 대한 RAS 명령과 CAS 명령 사이에 다음 뱅크에 대한 RAS 명령과 CAS 명령이 수행될 수 있고 예비 충전은 다음 뱅크에 대한 읽기 동작 동안 이루어질 수 있다.
따라서 본 발명의 메모리 제어 시스템은 간단한 구조 하에서 억세스되는 이미지 블록의 사이즈에 영향을 적게 받으면서도 불필요한 클럭 소모를 막을 수 있다.
또한, 일반적인 이미지 처리와 같은 메모리 억세스는 한번에 여러 라인을 억세스하거나 여러 여러 뱅크의 억세스를 요구하지만, 종래의 메모리 제어시스템이 하나의 마스터 내에서 한번에 두 개 이상의 억세스를 하는 것은 불가능하다. 그러나 본 발명의 메모리 제어 시스템은 이미지 블록을 구성하는 각 이미지 라인의 데이터를 순차적으로 각 뱅크의 어드레스에 저장하기 때문에 이러한 문제점을 해결할 수 있다
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
예를 들어 본 발명의 메모리 제어 시스템은 이미지 데이터를 처리는데 이용될 수 있을 뿐만 아니라 일반적인 데이터를 처리할 때에도 적용가능하다.
이상에서와 같이 본 발명의 메모리 제어 시스템은 구조의 변경없이 이미지 블럭의 사이즈에 영향을 덜 받으면서도 필요없는 클록의 소모가 없고 계산 절차를 단순한 시킬 수 있다.

Claims (11)

  1. 복수 개의 뱅크들을 포함하는 메모리부;
    버스사용 요청신호, 블럭 모드 신호, 블럭 정보 및 데이터에 대한 구동 정보를 출력하여 상기 블록에 해당하는 데이터를 출력하거나 독출된 데이터를 입력받는 하나 이상의 버스 마스터;
    상기 버스사용 요청신호 및 상기 구동 정보를 입력받아 억세스를 허용할 버스 마스터를 선택하는 마스터 선택신호와 상기 선택된 버스 마스터로부터 입력된 구동 정보를 출력하는 중재기;
    상기 하나 이상의 버스 마스터로부터 상기 블럭 모드 신호, 상기 블럭 정보 및 상기 블록에 해당하는 데이터를 입력받고 상기 마스터 선택신호에 따라 선택된 버스 마스터의 블럭 모드 신호, 블럭 정보 및 블록에 해당하는 데이터를 출력하는 버스 마스터 선택부; 및
    상기 중재기로부터 구동 정보를 입력받고 상기 버스 마스터 선택부로부터 블럭 모드 신호 및 블럭 정보를 입력받아 상기 블럭의 라인 그룹 각각이 순차적으로 서로 다른 뱅크 각각에 저장되거나 독출되도록 하는 메모리 컨트롤러를 포함하는 메모리 제어 시스템.
  2. 제1항에 있어서,
    상기 구동 정보는,
    어드레스 정보와 제어 정보를 포함하는 것을 특징으로 하는 메모리 제어 시스템.
  3. 제1항에 있어서,
    상기 블럭 정보는,
    상기 블럭의 폭에 대한 정보, 상기 블럭의 높이에 대한 정보 및 각 라인 그룹의 로우 어드레스 변화값을 포함하는 것을 특징으로 하는 메모리 제어 시스템.
  4. 제1항에 있어서,
    상기 라인 그룹은,
    하나 이상의 라인으로 구성되는 것을 특징으로 하는 메모리 제어 시스템.
  5. 제2항에 있어서,
    상기 어드레스 정보의 어드레스 맵은,
    뱅크 어드레스가 로우 어드레스보다 하위 비트에 할당되는 것을 특징으로 하는 메모리 제어 시스템.
  6. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 라인 그룹 각각에 해당하는 데이터를 순차적으로 상기 뱅크 각각의 동 일한 로우 어드레스 영역에 저장하거나 독출하는 것을 특징으로 하는 메모리 제어 시스템.
  7. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    특정 뱅크의 억세스를 위한 RAS 명령과 CAS 명령 사이에 다음 뱅크의 억세스를 위한 RAS 명령을 출력하는 것을 특징으로 하는 메모리 제어 시스템.
  8. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    하나의 뱅크에 대한 예비 충전을 다음 뱅크에 대한 억세스 동작 동안 시행하는 것을 특징으로 하는 메모리 제어 시스템.
  9. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    모든 뱅크에 대한 억세스가 끝난 다음 모든 뱅크에 대한 예비 충전을 시행하는 것을 특징으로 하는 메모리 제어 시스템.
  10. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    설정된 모드에 따라 라인 그룹에 해당하는 데이터를 소정의 뱅크에 저장하거나 뱅크로부터 독출한 다음 자동적으로 해당 뱅크에 대하여 예비 충전하는 것을 특징으로 하는 메모리 제어 시스템.
  11. 제3항에 있어서,
    상기 메모리 컨트롤러는,
    이전 라인 그룹의 어드레스에 로우 어드레스 변화값을 더하여 다음 라인 그룹의 어드레스를 계산하는 것을 특징으로 하는 메모리 제어 시스템.
KR20050035807A 2005-04-29 2005-04-29 메모리 제어 시스템 KR100726101B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20050035807A KR100726101B1 (ko) 2005-04-29 2005-04-29 메모리 제어 시스템
US11/264,873 US20060245265A1 (en) 2005-04-29 2005-11-02 Memory control system
JP2005336220A JP2006309702A (ja) 2005-04-29 2005-11-21 メモリー制御システム
CNB2005101290765A CN100418077C (zh) 2005-04-29 2005-11-30 存储器控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20050035807A KR100726101B1 (ko) 2005-04-29 2005-04-29 메모리 제어 시스템

Publications (2)

Publication Number Publication Date
KR20060113019A true KR20060113019A (ko) 2006-11-02
KR100726101B1 KR100726101B1 (ko) 2007-06-12

Family

ID=37195260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20050035807A KR100726101B1 (ko) 2005-04-29 2005-04-29 메모리 제어 시스템

Country Status (4)

Country Link
US (1) US20060245265A1 (ko)
JP (1) JP2006309702A (ko)
KR (1) KR100726101B1 (ko)
CN (1) CN100418077C (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922732B1 (ko) * 2007-12-10 2009-10-22 한국전자통신연구원 메모리 액세스 충돌 감소 장치 및 방법
US9086959B2 (en) 2009-10-13 2015-07-21 Samsung Electronics Co., Ltd. Apparatus to access multi-bank memory
US9104526B2 (en) 2010-05-11 2015-08-11 Samsung Electronics Co., Ltd. Transaction splitting apparatus and method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5018074B2 (ja) * 2006-12-22 2012-09-05 富士通セミコンダクター株式会社 メモリ装置,メモリコントローラ及びメモリシステム
CN100472494C (zh) * 2007-02-05 2009-03-25 北京中星微电子有限公司 支持多总线多类型存储器的内存仲裁实现系统和方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06509893A (ja) * 1991-08-13 1994-11-02 ボード オブ リージェンツ オブ ザ ユニバーシティ オブ ワシントン 画像処理及びグラフィック処理システム
US5315698A (en) * 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
JP3188593B2 (ja) * 1993-07-14 2001-07-16 松下電器産業株式会社 画像データメモリ
JPH0773100A (ja) * 1993-09-06 1995-03-17 Matsushita Electric Ind Co Ltd 画像メモリ
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
JPH08161220A (ja) * 1994-12-01 1996-06-21 Matsushita Electric Ind Co Ltd メモリアクセス制御装置
JP3686155B2 (ja) * 1996-03-21 2005-08-24 株式会社ルネサステクノロジ 画像復号装置
JPH10304354A (ja) * 1997-04-28 1998-11-13 Toshiba Corp 動画像復号方法及び動画像復号装置
JPH1155676A (ja) * 1997-08-07 1999-02-26 Hitachi Ltd 同期型メモリを用いた動画像データ符号化装置
US6414689B1 (en) * 1999-03-03 2002-07-02 Mediaq Inc. Graphics engine FIFO interface architecture
US20020046251A1 (en) * 2001-03-09 2002-04-18 Datacube, Inc. Streaming memory controller
JP2001273248A (ja) 2000-03-24 2001-10-05 Canon Inc バス制御装置及びその制御方法
KR100644596B1 (ko) * 2000-07-27 2006-11-10 삼성전자주식회사 버스 시스템 및 그 버스 중재방법
JP3781634B2 (ja) * 2001-04-26 2006-05-31 シャープ株式会社 画像処理装置および画像処理方法並びに携帯用映像機器
JP3918145B2 (ja) * 2001-05-21 2007-05-23 株式会社ルネサステクノロジ メモリコントローラ
JP4694067B2 (ja) * 2001-09-28 2011-06-01 富士通セミコンダクター株式会社 半導体記憶装置
US7133995B1 (en) * 2002-12-16 2006-11-07 Advanced Micro Devices, Inc. Dynamic page conflict prediction for DRAM
JP4203337B2 (ja) * 2003-02-25 2008-12-24 株式会社リコー メモリアービタ及びメモリ制御装置
DE102004024849B4 (de) * 2003-05-23 2008-11-27 Samsung Electronics Co., Ltd. Arbitrierungseinheit, zugehöriges Bussystem und Arbitrierungsverfahren
KR100626362B1 (ko) * 2003-05-23 2006-09-20 삼성전자주식회사 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922732B1 (ko) * 2007-12-10 2009-10-22 한국전자통신연구원 메모리 액세스 충돌 감소 장치 및 방법
US7958321B2 (en) 2007-12-10 2011-06-07 Electronics And Telecommunications Research Institute Apparatus and method for reducing memory access conflict
US9086959B2 (en) 2009-10-13 2015-07-21 Samsung Electronics Co., Ltd. Apparatus to access multi-bank memory
US9104526B2 (en) 2010-05-11 2015-08-11 Samsung Electronics Co., Ltd. Transaction splitting apparatus and method

Also Published As

Publication number Publication date
CN1855077A (zh) 2006-11-01
JP2006309702A (ja) 2006-11-09
CN100418077C (zh) 2008-09-10
US20060245265A1 (en) 2006-11-02
KR100726101B1 (ko) 2007-06-12

Similar Documents

Publication Publication Date Title
US7486575B2 (en) Semiconductor memories with block-dedicated programmable latency register
US7707328B2 (en) Memory access control circuit
JP4786209B2 (ja) メモリアクセス装置
US8661180B2 (en) Memory controlling device and memory controlling method
US6340973B1 (en) Memory control unit and memory control method and medium containing program for realizing the same
JP2002063069A (ja) メモリ制御装置、データ処理システム及び半導体装置
US7370161B2 (en) Bank arbiter system which grants access based on the count of access requests
US6859407B1 (en) Memory with auto refresh to designated banks
KR100726101B1 (ko) 메모리 제어 시스템
WO2016185879A1 (ja) メモリ制御回路およびメモリ制御方法
US20080034132A1 (en) Memory interface for controlling burst memory access, and method for controlling the same
US20060059320A1 (en) Memory control device
US7373453B2 (en) Method and apparatus of interleaving memory bank in multi-layer bus system
KR100914017B1 (ko) 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템
KR100676981B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독가능한 기록 매체
US6374244B1 (en) Data transfer device
JP4250989B2 (ja) メモリアクセス制御装置
KR100676982B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독 가능 저장 매체
JPWO2009125572A1 (ja) メモリ制御回路及びメモリ制御方法
JP4234829B2 (ja) メモリ制御装置
KR100666824B1 (ko) 메모리에 이미지 데이터를 저장하는 방법
US20080263290A1 (en) Memory control apparatus and memory control method
TWI721660B (zh) 控制資料讀寫裝置與方法
JP2004078396A (ja) メモリ装置
JP2000029777A (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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160601

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180604

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 13