KR100423893B1 - 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬 - Google Patents
컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬 Download PDFInfo
- Publication number
- KR100423893B1 KR100423893B1 KR10-2001-0003728A KR20010003728A KR100423893B1 KR 100423893 B1 KR100423893 B1 KR 100423893B1 KR 20010003728 A KR20010003728 A KR 20010003728A KR 100423893 B1 KR100423893 B1 KR 100423893B1
- Authority
- KR
- South Korea
- Prior art keywords
- result
- operand
- cache
- partial
- operands
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
여기에 개시된 연산 장치는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬를 포함한다. 상기 캐쉬는 이전에 수행된 결과 데이터와 산술 연산을 수행하기 위한 오퍼랜드를 저장하고, 동일한 오퍼랜드가 수행되어질 경우, 해당되는 결과를 출력하고, 프로세서에 의한 처리 및 연산을 바이패스한다. 그리고, 상기 캐쉬를 구비한 상기 장치는 부분적으로 일치되는 오퍼랜드를 위해 부분적으로 결과를 출력할 수 있도록 구성된다.
Description
본 발명은 캐쉬 메모리와 더불어 컴퓨터 산술 연산 수행하는 장치 및 방법에 관한 것으로, 좀 더 구체적으로는 부분 출력이 가능한 캐쉬 메모리를 구비한 장치 및 방법에 관한 것이다.
컴퓨터는, 곱셈, 되풀이되는 쉬프트(shift)를 통한 데이터의 조작에 의한 나눗셈, 덧셈, 그리고 뺄셈과 같은 산술 연산(arithmetic operations)을 수행한다. 결과를 도출하는 데에는 데이터의 빈번한 억세스 및 조작상의 사이클들(operational cycles)이 필요로 한다. 제곱근(square root) 연산과 같이 복잡한 연산 기능과, 삼각 함수들(trigonometry functions)을 수행하기 위한 통상적인 컴퓨팅 프로세서는, 대단히 시간 소비적인 특징을 가진다. 그리고, 상기 컴퓨팅 프로세스는 몇몇 어플리케이션들에서 적용이 용이하지 않은 문제점을 가지고 있다.
더욱 복잡한 산술 연산들 중 일부는 룩-업 테이블(look-up table)을 사용할 수 있으나, 다양한 연산들에 상기 테이블 적용하기 위해서는 상기 테이블의 크기가 충분히 커져야만 한다. 만약 수행될 연산에서 한 비트만 다르더라도, 상기 룩-업 테이블은 제 기능을 수행하지 못하게 되고, 상기 룩-업 테이블로부터 도출되는 데이터는 잘못된 것이 된다. 따라서, 정확한 결과를 얻기 위해서는 상기 연산의 모든 자리수에 대한 전체 계산이 다시 수행되어야만 한다.
복잡한 산술 연산을 수행하는 다른 방법으로는, 예를 들면, Sutcliffe에 의해 취득된 미국 특허(U. S. Pat. No. 4,734,878), "CIRCUIT FOR PERFORMING SQUARE ROOT FUNCTIONS"과 같이 전용 회로(dedicated circuitry)를 사용하는 방법이 있을 수 있다. 그러나, 전용 회로는 적은 시간을 소비하긴 하지만 추가적인 하드웨어를 필요로 할뿐만 아니라, 특정 함수를 위해서만 사용된다. Sutcliffe에 의한 상기 전용 회로는 단지 제곱근 연산만을 수행할 수 있고, 곱셈기(multiplier)는 단지 곱셈 연산 등을 위해서만 사용될 수 있다.
캐쉬 메모리(cache memory)는 고속 RAM(Random Access Memory)으로서, CPU(Central Processing Unit)는 통상의 메모리보다 캐쉬 메모리를 더 빠르게 억세스 할 수 있다. 일반적으로, 캐쉬 메모리는 CPU에 의해 빈번히 억세스 되는 데이터를 저장하는데 사용되는 메모리이다. CPU는 캐쉬 메모리로부터 억세스된 데이터를 가지고 더 많은 연산을 수행할 수 있으며, 상기 연산은 통상의 메모리로부터 억세스된 데이터를 가지고 수행되는 연산보다 더욱 빠르게 수행될 수 있다.
상기 캐쉬 메모리는 CPU에 의해 직접 억세스 되며(예컨대, 외부 메모리 관리 유닛(external memory management unit)을 거치지 않고), CPU와 캐쉬 메모리 사이의 신호 전달 시간을 줄이기 위해 물리적으로 CPU 가까운 곳에 위치한다. Alpha AXP 21064 마이크로프로세서 내의 데이터 캐쉬의 동작 설명은, 1996년, David A. Paterns와 John L. Hennessy에 의해 Morgan Kaufmann Publishers Inc.에서 출판된 "Computer Architecture A Quantitive Approach"의 380-383쪽에서 찾아볼 수 있다.CPU가 독출 또는 페치(fetch) 동작을 수행하면, 데이터(data) 또는 명령어들(instructions)이 캐쉬 내에 있는지 여부가 판별될 것이다. 데이터 또는 명령어들이 만약 캐쉬 내에 존재한다면 이들은 빠른 속도로 억세스 되고, 만약 그렇지 않다면, 데이터 또는 명령어들은 통상의 메모리(예컨대, DRAM 또는 ROM)로부터 페치되고, 더 많은 시간을 소비할 것임에 틀림없다.
도 1에는 일반적인 캐쉬가 도시되어 있다. 캐쉬 메모리(10)는, 프로세서에 의해 최근 또는 자주 억세스 된 데이터, 어드레스(address), 또는 화일들(files)을 저장하기 위한 다수 개의 버퍼들(buffers)을 구비한 캐쉬 태그(11)를 포함한다. 캐쉬 메모리(10)는, 상기 태그에 저장된 데이터와 가장 최근에 입력된 데이터를 비교하기 위한 회로를 포함한다. 도 1에 도시된 바와 같이, XOR(exclusive OR) 게이트는 캐쉬 태그(11) 내에 구비된 각 버퍼의 각각의 비트에 연관된다. 새로이 입력된 데이터가 캐쉬 태그(11) 내 버퍼들 중 하나에 저장된 데이터와 일치되는 것으로 판명되면, 실제 비교 결과(true comparison)가 15, 16 내지 19 게이트들에서 출력된다. 캐쉬 데이터(12)는 캐쉬 태그(11) 내의 각 버퍼에 대응되는 데이터를 저장하는 파일(file)이다. 대응되는 게이트들(15, 16, …, 19)로부터 받아들인 실제 비교 결과는 캐쉬 데이터(12)의 해당 위치에 있는 q4, q3, q2, …, q0으로서 출력된다. 도 1에 도시된 캐쉬는 5 비트 폭을 가진다.
캐쉬 메모리의 특성들은 고속 연산을 수행하는 연산 장치를 위한 데이터 저장 장치(data storing device)로서 유용할 것이다. 예를 들어, 도 1에 도시된 것과 같은 캐쉬 메모리는 캐쉬 태그(11)에 오퍼랜드(operands)를 저장하고, 캐쉬데이터(12)에 대응되는 연산 결과를 저장한다. 만약 앞으로 수행될 동일한 산술 연산에 관한 오퍼랜드가 캐쉬 태그(11) 내에서 발견된다면, 그 산술 연산은 바이패스(bypass)된다. 이와 같은 경우, 캐쉬는 록-업 테이블로서 사용되고, 억세스 시간은 룩-업 테이블 ROM과 비교될 만큼 줄어든다. 그러나, 룩-업 테이블 ROM의 경우에 있어서 룩-업 테이블모드에서의 캐쉬의 사용은, 오퍼랜드가 캐쉬 태그에 저장된 데이터와 정확히 일치되는 경우에만 전체 처리량을 감소시킬 수 있을 것이다. 따라서, 부분적으로 일치되는 오퍼랜드에 대한 연산 결과를 부분적으로 출력할 수 있는 연산 장치에 사용되는 캐쉬 메모리를 구비한 장치가 요구된다.
따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, TAG 레지스터 및 캐쉬 데이터 메모리를 구비한 캐쉬 구조 및 이를 이용한 산술 연산 수행 방법을 제공하는데 있다.
도 1은 일반적인 캐쉬 메모리를 보여주기 위한 도면;
도 2는 본 발명의 일 실시예에 의한 연산 장치를 보여주기 위한 도면;
도 3은 도 2에 도시된 장치를 이용하여 제곱근 연산을 수행하기 위한 수순을 보여주기 위한 흐름도;
도 4는 도 2에 도시된 캐쉬 메모리 내의 검출 로직의 입출력 데이터를 보여주기 위한 테이블;
도 5는 본 발명의 일 실시예에 의한 입출력 데이터에 대한 마스킹 동작을 보여주기 위한 테이블; 그리고
도 6은 본 발명의 다른 실시예에 의한 연산 장치를 보여주기 위한 도면.
*도면의 주요 부분에 대한 부호의 설명*
100 : PMPO 캐쉬 메모리 21 : 캐쉬 태그
22 : 캐쉬 데이터 27 : 프로세스 모듈
29 : Q' 버퍼 42 : 검출 로직
43 : 선택 및 마스크 로직 45 : 마스크 레지스터
48 : 버퍼 61 : 피제곱근 수 분할 유닛
62, 63 : 멀티플렉서
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, TAG 레지스터 및 캐쉬 데이터 메모리를 구비한 캐쉬 구조를 이용한 산술 연산 수행 방법은, 다수 개의 알려져 있는 오퍼랜드들을 TAG 레지스터에 저장하되, 상기 오퍼랜드 각각은 산술 연산으로부터 유도된 결과를 가지며, 상기 결과는 캐쉬 데이터 메모리 내의 해당 위치에 저장되는 단계와; 수행될 산술 연산에 대한 새로운 오퍼랜드를 TAG 레지스터로 입력하는 단계와; 알려져 있는 다수 개의 오퍼랜드들과 새로운 오퍼랜드를 비교하는 단계; 그리고 만약 알려져 있는 오퍼랜드들 중 새로이입력된 오퍼랜드와 일치되는 것이 있는지 여부를 판별하고, 판별 결과 일치되는 것이 있으면 새로운 오퍼랜드와 일치되는 오퍼랜드에 대응되는 결과를 캐쉬 데이터 메모리로부터 출력하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 방법은 만약 상기 판별 단계에서 일치되는 오퍼랜드가 존재하지 않으면, 알려져 있는 오퍼랜드와 새로운 오퍼랜드가 부분적으로 일치되는 것이 있는지를 판별하는 단계와; 알려져 있는 오퍼랜드 중 새로운 오퍼랜드와 일치되는 상위 비트들(MSBs)을 가진 오퍼랜드를 선택하는 단계와; 가장 많이 일치되는 상위 비트들(MSBs)을 가진 오퍼랜드에 대응되는 결과를 캐쉬 데이터 메모리로부터 억세스하는 단계와; 알려져 있는 오퍼랜드의 일치된 상위 비트들로부터 도출되어 억세스된 결과의 제 1 부분을 결정하는 단계와; 상기 제 1 부분 이외에 억세스된 결과인 제 2 부분을 마스킹하는 단계; 그리고 마스크된 결과를 제 1 부분 결과로서 제공하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 방법은 제 2 부분 결과를 발생하기 위해서, 일치된 상위 비트들 이외에 해당되는 상기 새로운 오퍼랜드의 비트에 대한 산술 연산을 수행하는 단계; 그리고 상기 제 1 부분 결과와 상기 제 2 부분 결과를 결합하여 최종 결과를 출력하는 단계를 더욱 포함한다.
바람직하게, 전술한 바와 같은 본 발명에 의한 상기 방법은 제곱근 또는 곱셈 연산과 같은 산술 연산을 수행하는 것을 특징으로 한다.
산술 연산을 수행하기 위해 제공되는 캐쉬 장치는, 각각이 산술 연산으로부터 도출된 해당 결과를 가지는, 알려져 있는 다수 개의 오퍼랜드들을 저장하기 위한 태그 레지스터들과; 상기 알려져 있는 오퍼랜드들에 대응되는 결과를 저장하기 위한 캐쉬 데이터 메모리; 그리고 수행되어질 산술 연산을 위한 새로운 오퍼랜드를 상기 알려진 다수 개의 오퍼랜드들과 비교하기 위한, 태그 레지스터 내에 구비된 비교 로직을 포함한다. 여기서, 상기 알려져 있는 오퍼랜드들 가운데 하나가 상기 새로운 오퍼랜드와 일치하면, 상기 캐쉬 데이터 메모리는 상기 새로운 오퍼랜드와 일치되는, 알려져 있는 오퍼랜드에 대응되는 알려져 있는 결과를 출력한다.
상기 캐쉬 장치는, 공통 로직 레벨(common logic level)을 가진 데이터 그룹을 검출하되, 상기 새로운 오퍼랜드의 상위 비트들(MSBs)과 일치되는 가장 많은 수의 상위 비트들(MSBs)을 가진, 알려져 있는 오퍼랜드를 검출하기 위한 로직 그룹 검출기(logic group detector)와; 가장 많이 일치된 상위 비트들(MSBs)을 가진, 알려져 있는 오퍼랜드에 대응되는 결과를 부분적으로 마스킹하되, 상기 알려져 있는 오퍼랜드의 일치된 상위 비트들(MSBs)로부터 도출된 해당 결과의 제 1 부분을 통과시키고, 상기 제 1 부분을 제외한 상기 해당 결과의 제 2 부분을 마스킹하기 위한 마스킹 로직(masking logic); 그리고 산술 유닛(arithmetic unit)으로 상기 해당 결과의 상기 제 1 부분을 멀티플렉싱하기 위한 멀티플렉서를 더욱 포함한다.
바람직한 실시예에 있어서, 본 발명에 의한 상기 캐쉬는 제 2 멀티플렉서를 더욱 포함한다. 여기서, 상기 연산 유닛은 제 2 부분 결과를 발생하기 위해서 상기 일치된 상위 비트들(MSBs)을 제외한 상기 새로운 오퍼랜드의 비트들에 대한 산술 연산을 수행하며, 상기 제 2 멀티플렉서는 상기 제 2 부분 결과를 상기 연산 유닛으로 멀티플렉싱한다. 상기 제 2 부분 결과는 상기 제 1 부분 결과와 결합되어 최종 결과를 형성한다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면 도 2 내지 도 6을 참조하여 상세히 설명한다.
만약 현재의 오퍼랜드(current operand)가 동일한 산술 연산이 수행되는 이전의 오퍼랜드(previous operand)와 동일하다면, 본 발명의 신규한 연산용 캐쉬(operational cache)는 이전에 수행된 산술 연산 결과를 저장하고 결과 데이터(resultant data)를 출력한다. 만일 현재 오퍼랜드가 연산용 캐시에 저장된 이전의 오퍼랜드와 부분적으로 일치한다면, 본 발명의 연산용 캐쉬는 부분적인 연산 결과 데이터를 출력한다. 본 발명에 따른 연산용 캐시를 사용한 연산 유닛의 구조 및 동작이 이하 설명된다.
도 2는 제곱근 연산을 수행하는 연산 유닛을 보여주는 도면이다. 도 2에 도시된 연산 유닛은 본 발명에 따른 부분 일치 부분 출력(partial match partial output; 이하, PMPO라 칭함) 캐쉬를 보여주고 있다. 예시된 본 발명에 따른 연산 장치는 PMPO 캐시 태그(21)와 PMPO 캐쉬 데이터(22)로 구성된 PMPO 캐쉬(100)를 포함한다. 제곱근 모듈(27)은 피제곱근 수(X)의 제곱근을 계산하기 위한 소프트웨어 또는 하드웨어이다. 이 제곱근 모듈(27)은 제곱근 연산을 수행하기 위한 프로그래밍 단계들 또는 알고리즘으로 구성된다. 제곱근 연산은 1993년, Israel Koren에 의해서 ISBN D-13-151952-2에 개재된 "Computer Arithmetic Algorithms", Chapter 7의 "Restoring Division Scheme'과 개념적으로 동일하게 제곱근을 계산하는 "완전제곱(completing the square)" 방법 등으로 수행된다. 또한, 상기 제곱근 모듈(27)은 전통적인 나눗셈 및 나머지 계산 방법에 의해 입력된 피제곱근 수의 제곱근을 계산하기 위한 회로 또는 프로그램 단계들을 포함한다. 일 예로서, 8-비트 오퍼랜드의 '나눗셈 및 나머지' 제곱근 연산을 수행하는 프로세서는 제곱근 결과를 도출하기 위해 8 사이클을 요구한다. 제곱근 결과 데이터는 Q'버퍼(29)에 집합된다. 제곱근 연산이 완료되면, 제곱근 연산 결과는 저장하기 위하여 Q'버퍼(29)에서 PMPO 캐쉬 데이터(22) 내의 D1, D2... Dn 가운데 하나로 전달된다. 피제곱근 수 X는 PMPO 캐쉬 태그(21) 내의 대응하는 버퍼(T1, T2 ... Tn)에 저장된다. 여기서, 도 2에 도시된 산술 유닛은 제곱근 연산이 수행될 새로운 입력인 피제곱근 수(X')가 PMPO 캐쉬 태그(21) 내의 대응하는 버퍼 내의 피제곱근 수(X')와 일치하는 지의 여부가 결정되면, PMPO 캐쉬 데이터(22)로부터 제곱근 Q'를 출력할 것이다. 새로운 제곱근 수의 일치 여부 판별은 캐쉬 태그(21) 내의 익스클루시브 NOR 게이트들에 의해 수행된다. 상기 익스클루시브 NOR 게이트는 새롭게 입력된 피제곱근 수(X')의 각 비트들과 완전하게 일치하는 비트들(X)을 저장하는 버퍼에 대해서 모두 '1'을 출력한다. 피제곱근 수(X')와 완전히 일치하는 피제곱근(X)을 저장한 버퍼(T1, T2, ... Tn)와 대응하는 캐쉬 데이터(22)에 저장된 데이터가 제곱근 결과(Q')로서 출력된다. 이 경우, 제곱근 결과(Q')는 캐시 데이터(22)로부터 멀티플렉서(63)를 통하여 Q'버퍼(29)로 바로 출력된다. 이와 같은 피제곱근 일치 및 Q'버퍼(29)로의 제곱근 결과(Q') 출력은 제곱근 모듈(27)의 처리를 바이패스(bypass)시킨다.
또한, 도 2에 도시된 본 발명에 따른 PMPO 캐쉬를 구비한 연산 장치는, 새로 입력된 오퍼랜드(X')와 버퍼들(T1, T2,...Tn)에 저장된 복수의 오퍼랜드(Xs)가 부분적으로 일치하는 경우, 부분 제곱근 결과를 출력할 수 있는 구성을 갖는다. 부분 출력 부분 일치(PMPO) 동작의 실시예가 도 2 내지 도 5를 참조하여 설명된다. 제곱근 연산이 수행될 새로운 오퍼랜드(X')가 입력되면(단계 410), 오퍼랜드(X')는 PMPO 캐쉬 태그(21) 내의 버퍼들(T1, T2,...Tn)에 저장된 오퍼랜드들(Xs)과 비교된다(단계 412). 이 실시예에서, 오퍼랜드와 제곱근 데이터는 각각 8 비트 즉, X'[7:0] 및 Q'[7:0]이다. 도 2에 도시된 PMPO 캐쉬는 한 실시예에 따라 도시되었지만, 이 분야에 대한 통상의 기술자들에게 있어서 오퍼랜드들의 비트 폭은 다양하게 변경될 수 있음이 자명하다. 상기 캐쉬 태그(21)의 하나의 버퍼(Tx)에 대한 익스클루시브 NOR 게이트들은 58 비트 버퍼로 구현된 검출 로직(42)과 연결된다. 상기 검출 로직(42)은 익스클루시브 NOR 버퍼 그룹 각각으로부터 출력되는 58 비트를 저장한다. 그러므로, 오퍼랜드(X')와 캐쉬 태그(21) 내의 버퍼들 가운데 어느 하나에 저장된 오퍼랜드(X)가 완전히 일치하면, 검출 로직(42)의 대응하는 회로는 58 비트 버퍼에 모두 1을 저장할 것이다. 한편, 캐쉬 태그(21)에 익스클루시브 OR 게이트들이 사용될 경우, 오퍼랜드(X')와 캐쉬 태그(21) 내의 버퍼들 가운데 어느 하나에 저장된 오퍼랜드(X)가 완전히 일치하면, 상기 검출 로직에는 모두 0이 저장되는 것은 통상의 기술자들에게 있어 자명하다. 부분적으로 일치하는 경우, 상기 검출 로직(42)은 오퍼랜드(X')의 비트들과 일치하는 캐쉬 태그(21) 내의 오퍼랜드(Xn)의 비트들에 논리 '1'을 표시한다. 단계 414에서는, 새로 입력된 오퍼랜드(X')가 캐쉬 태그(21)의 버퍼들에 저장된 복수의 오퍼랜드들(X) 가운데 하나와 완전하게 또는 부분적으로 일치하는 지의 여부가 판별된다. 선택 및 마스크 로직(43)은 검출 로직(42)으로부터의 출력 신호들(Det_1, Det_2,...Det_n)을 디코딩하기 위한 로직 회로와 완전하게 혹은 부분적으로 일치하는 지의 여부를 판단하기 위한 로직 회로를 포함한다. 부분적으로 일치하는 경우, 매치된 길이가 판별된다. 선택 및 마스크 로직(43)은 캐쉬 데이터(22)와 마스크 레지스터(45)로 인에이블 신호들을 출력한다. 검출 로직(42)으로부터의 검출 신호들(Det_1, Det_2,...Det_n) 가운데 어느 하나가 모두 1을 포함하는 경우, 오퍼랜드(X')의 완전 일치가 판별된다. 만일 완전히 또는 부분적으로도 일치하지 않다면, PMPO 캐쉬(100)는 제곱근 데이터가 없다는 것을 나타내는 신호를 출력한다. 불일치 신호는 멀티플렉서들(62, 63)로 전송되어, 새로 입력된 피제곱근 수(X')가 제곱근 모듈(27)로 입력되도록 하여, 제곱근 모듈(27)에서 피제곱근 수(X')의 노멀 제곱근 연산이 수행되도록 한다(단계 416). 제곱근 모듈(27)로부터 유도된 결과 데이터는 오퍼랜드(X')를 저장하기 위해 사용되는 캐쉬 태그(21)의 버퍼(Tx)와 대응하는 위치에 저장하기 위해서 캐쉬 데이터(22)로 전달된다(단계 418).
부분적 또는 완전히 일치하는 것으로 판별된 경우에는 완전히 일치하는 지의 여부를 알기 위해 검출 로직(42)으로부터의 검출 신호들(Det_1, Det_2,...Det_n)이 검사된다(단계 420). 완전히 일치한다면, 선택 및 마스크 로직(43)은 캐쉬 태그(21)에서 완전히 일치하는 버퍼와 대응하는 위치의 캐쉬 데이터(22)로 신호를 출력한다. 이 경우, 캐쉬 데이터(22)로부터의 출력 데이터가 마스크 레지스터(45)를 통해 제곱근 버퍼(48)로 출력되고, 이 데이터는 제곱근 연산의 결과로서 멀티플렉서(63)를 통해 Q'버퍼(29)로 전달된다(단계 422).
오퍼랜드(X')가 부분적으로 일치되는 경우, 상기 선택 및 마스크 로직(43)은 최상위 비트(MSB)부터 가장 많이 연속적으로 일치되는 검출 신호들(Det_1, Det_2,...Det_n)을 선택한다(단계 424). 상기 검출 로직(42)은 데이터(M1 ~ Mn) 가운데 가장 먼저 0이 된 다음의 데이터는 'don't care'로 한다. 도 4는 검출 로직(42)으로부터의 출력(Det_1 ~ Det_n)에 대응하는 M1 ~ Mn을 보여주고 있다. 상기 선택 및 마스크 로직(43)은 상기 신호들(Det_1, Det_2,...Det_n)을 받아들이고, 검출 로직(42)으로부터 출력되는 신호들(Det_1 ~ Det_n) 가운데 연속적으로 논리 1이 두 개인 것마다 통과(pass-through) 신호를 발생하는 마스킹 연산을 수행한다. 신호들(Det_1 ~ Det_n)의 마스크 테이블은 선택 및 마스크 로직(43)으로부터의 대응하는 마스크 입력을 입력한다. 도 4는 8 비트 마스크 데이터(Mask[7:0])를 보여주고 있다. 선택 및 마스크 로직(43)은 캐시 데이터(22)에서 가장 유사한 패턴(Det_max)에 대응하는 위치를 억세스하기 위한 인에이블 신호(En)를 출력한다. 이 패턴(Det_max)에 대응하는 마스크 데이터(Mask[7:0])는 부분 출력 유닛(45)으로 입력되어, 패턴(Det_max)에 대응하는 마스크 데이터와 캐쉬 데이터(22)로부터 독출된 데이터 출력(Qi)에 대한 AND 연산이 수행된다(단계 426).
상술한 바와 같은 프로세스가 적용된 일 예는 다음과 같다. 오퍼랜드들(100000002, 100011112, 및 101011112)은 캐쉬 태그(21)의 T1~Tn에 저장되고, 상기 오퍼랜드들에 대응하는 제곱근 결과 데이터는 캐쉬 데이터 메모리(22)의 대응되는 위치에 저장된다. 피제곱근 수(X') 100000012는 산술 장치로 입력되어 제곱근 연산이 수행된다. 상기 검출 로직(42)은 오퍼랜드들에 대응하는 신호들(11111110, 11110xxx, 및 1110XXXX)을 입력 신호들(M1~Mn)로 각각 받아들이고, 비교 결과들에 대응하는 패턴들(Det_1 ~ Det_n)로서 (11111110, 1111000, 및 11000000)을 각각 출력한다. 그러므로, 논리 '1'은 T1~Tn에 저장된 오퍼랜드와 피제곱근 수(X')의 대응하는 비트들이 일치됨을 나타내고, 논리 '0'은 대응하는 비트들이 불일치 됨을 각각 나타낸다. 여기서, 'x'는 'don't care'를 의미한다.
검출 로직(42)으로부터 발생된 패턴들(Det_1=11111110, Det_2=11110000, 및 Det_3=11000000)은 상기 선택 및 마스크 로직(43)으로 입력되고, 상기 패턴(Det_1=11111110)은 가장 유사한 패턴(Det_max)으로 선택된다. 이 패턴(11111110)은 피제곱근 수(X')의 대응하는 비트들과 최상위 비트(MSB)부터 연속적으로 가장 많이 일치하는 것이다. 도 4에 도시된 진리표를 참조하면, 선택 및 마스크 로직(43)은 패턴(11111110)에 대응하는 마스크 패턴(11100000)을 발생한다. 유사한 패턴(Dex_max) 즉, 데이터가 11111110인 패턴(Det_1)에 대응하는 결과 데이터(Qi)를 출력하기 위해 출력 인에이블 신호(En)는 데이터 캐쉬 메모리(22)로 전송된다.
부분 출력 유닛(45)은 결과 데이터(Qi)와 마스크 데이터(11100000)를 앤드 연산하고, 그 결과인 q[x:0]를 버퍼(48)에 저장한다. 앞서 설명한 바와 같이, 만일 상기 검출 로직(42)으로부터의 검출 신호들(Det_1~Det_n) 모두가 0xxxxxxx2이면, 0이 Q'버퍼(29)의 초기값으로 입력되고, 오퍼랜드(X')는 제곱근 모듈(27)로 입력된다. 이 실시예와 같은 산술 연산에서, 오퍼랜드(X')의 모든 자리들에 대한 제곱근 계산은 산술 모듈(27, 이실시예에서는 제곱근 모듈)에서 수행된다. 그리고, 만일 캐쉬 태그(21)에 저장된 오퍼랜드들(T1 ~ Tn) 가운데 하나가 피제곱근(X')과 동일하면, 즉, 검출 로직(42)으로부터 출력되는 검출 신호들(Det_1 ~ Det_n)이 (11111111)이면, 검출 신호(11111111)에 대응하는 데이터(Qi)가 캐쉬 데이터(22)로부터 결과 데이터(Q')로 출력되고, 모듈(27)은 어떤 연산이나 처리를 수행하지 않는다.
연산자 분할 유닛(61)과 제 1 및 제 2 멀티플렉서들(62, 63)을 포함하는 매개 회로는 선택 및 마스크 로직(43)에 의해 제어된다. 상기 매게 회로는 데이터를 모듈(27)과 Q'버퍼(29)로 전달한다. 상기 연산자 분할 유닛(61)은 피제곱근 수(X')의 매우 큰 불일치된 부분으로부터 부분 오퍼랜드 X''를 추출하기 위해 사용된다. 제곱근 계산에 있어서, 제곱근 결과 데이터(q[x:0])는 부분 피제곱근 수(X'')를 얻기 위해 제곱 연산된 후 입력 피제곱근 수(X')로부터 감산된 것이다(X''=X2-q2). 부분 피제곱근 수(X'')는 제곱근 연산을 수행하기 위해 모듈(27)로 입력된다. 상기 부분 결과 출력(q[X:0])은 부분 결과 데이터로서 Q'버퍼(29)로 입력된다(단계 428). 부분 피제곱근 수(X'')와 데이터(q[x:0])는 각각이 선택 마스크 로직에 의해 제어되는 멀티플렉서들(62, 63)을 통해 선택된다.
모듈(27)이 부분 입력 (X'')에 대한 제곱근 프로세스를 완료하면, 결과 데이터는 Q'버퍼(29)에 저장된 부분 결과 데이터와 결합되어 최종 제곱근 결과 데이터를 형성한다.
본 발명에 따른 부분 일치 부분 출력의 장점은 산술 연산이 빈번하게 수행되는 경우 시스템 처리량을 현저하게 감소시킬 수 있다는 것이다.
비록 이 실시예에서는 제곱근 연산을 도시하고 설명하였으나, 도 2에 도시된 장치는 이 분야에 대한 기술을 습득한 자라면 최소한의 변경을 통해 제곱근, 나눗셈, 곱셈, 삼각법 기능들 등과 같은 다른 산술 연산에도 적용될 수 있다. 제곱근 계산은 다음과 같다.
나눗셈 계산은 다음과 같다.
여기서, X=11101001, Y=K일 때, 새로운 오퍼랜드 X'가 11111011이고, Y'=K이면, 나눗셈 연산은 두 개의 연산자(X, Y)가 필요하다는 것을 제외하고는 제곱근 연산과 동일하다. 만일 새로운 오퍼랜드(Y')가 이전 오퍼랜드(Y)와 완전하게 일치하면, 상기 나눗셈은 단항 연산이므로, 나눗셈은 PMPO 캐쉬(100)에서 수행될 수 있다.
곱셈에서, Q=X*Y이고, X=11101001, Y=K, 그리고 X'=11111011, Y'=K이면, 부분 곱셈은 본 발명에 따른 PMPO 캐쉬에서 수행될 수 있다. 도 5에서 마스킹 동작은 (X xor X') 그리고 X=0000_0000인 경우에만 유효하다. 도 6은, 도 2에 도시된 장치를 변형한 것으로, 도 2에 도시된 구성 요소들과 동일한 인출 번호를 갖는 것은 동일한 동작을 수행한다. 역함수(inverse function; 61)는 부분 오퍼랜드를 추출하기 위해 X''=X'-X를 수행하고자 변형된 것이다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
이상과 같은 본 발명에 의하면, 산술 연산이 빈번하게 수행되는 경우 시스템 처리량을 현저하게 감소시킬 수 있다.
Claims (9)
- TAG 레지스터 및 캐쉬 데이터 메모리를 구비한 캐쉬 구조를 이용한 산술 연산 수행 방법에 있어서:알려져 있는 복수의 오퍼랜드들을 상기 TAG 레지스터에 저장하되, 상기 오퍼랜드 각각은 산술 연산으로부터 구해진 대응하는 결과를 가지며, 상기 결과는 상기 캐쉬 데이터 메모리 내의 대응하는 위치에 저장되는 단계와;수행될 산술 연산에 대한 새로운 오퍼랜드를 상기 TAG 레지스터로 입력하는 단계와;상기 알려져 있는 다수 개의 오퍼랜드들과 상기 새로운 오퍼랜드를 비교하는 단계와;상기 알려져 있는 오퍼랜드들 중 상기 새로이 입력된 오퍼랜드와 일치되는 것이 있는지 여부를 판별하고, 판별 결과 일치되는 것이 있으면 상기 새로운 오퍼랜드와 일치되는 오퍼랜드에 대응되는 결과를 상기 캐쉬 데이터 메모리로부터 출력하는 단계와;만약 상기 판별 단계에서 일치되는 오퍼랜드가 존재하지 않으면, 상기 알려져 있는 오퍼랜드들과 상기 새로운 오퍼랜드가 부분적으로 일치되는 지를 판별하는 단계와;상기 알려져 있는 오퍼랜드 중 상기 새로운 오퍼랜드와 일치되는 최상위 비트들을 가진 오퍼랜드를 선택하는 단계와;가장 많이 일치되는 최상위 비트들을 가진 오퍼랜드에 대응되는 결과를 상기 캐쉬 데이터 메모리로부터 억세스하는 단계와;상기 알려져 있는 오퍼랜드의 일치된 최상위 비트들로부터 도출되어 억세스된 결과의 제 1 부분을 결정하는 단계와;상기 제 1 부분 이외에 억세스된 결과인 제 2 부분을 마스킹 하는 단계; 그리고마스크된 상기 결과를 제 1 부분 결과로서 제공하는 단계를 더욱 포함하는 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬의 산술 연산 방법.
- 삭제
- 제 1 항에 있어서,제 2 부분 결과를 발생하기 위해서, 일치된 상기 최상위 비트들 이외에 해당되는 상기 새로운 오퍼랜드의 비트에 대한 산술 연산을 수행하는 단계; 그리고상기 제 1 부분 결과와 상기 제 2 부분 결과를 결합하여 최종 결과를 출력하는 단계를 더욱 포함하는 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬의 산술 연산 방법.
- 제 1 항에 있어서,상기 산술 연산은 상기 새로운 오퍼랜드의 제곱근 연산인 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬의 산술 연산 방법.
- 제 1 항에 있어서,상기 산술 연산은 나눗셈이며, 여기서 상기 새로운 오퍼랜드는 제수인 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬의 산술 연산 방법.
- 제 1 항에 있어서,상기 산술 연산은 곱셈이며, 여기서 상기 새로운 오퍼랜드는 피승수인 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬의 산술 연산 방법.
- 산술 연산을 수행하기 위한 캐쉬 장치에 있어서:각각이 산술 연산으로부터 도출된 해당 결과를 가지는, 알려져 있는 다수 개의 오퍼랜드들을 저장하기 위한 태그 레지스터들과;상기 알려져 있는 오퍼랜드들에 대응되는 결과를 저장하기 위한 캐쉬 데이터 메모리와;수행되어질 산술 연산을 위한 새로운 오퍼랜드를 상기 알려진 다수 개의 오퍼랜드들과 비교하기 위한, 상기 태그 레지스터 내에 구비된 비교 로직과;상기 알려져 있는 오퍼랜드들 가운데 하나가 상기 새로운 오퍼랜드와 일치하면, 상기 캐쉬 데이터 메모리는 상기 새로운 오퍼랜드와 일치되는, 알려져 있는 오퍼랜드에 대응되는 알려져 있는 결과를 출력하고;상기 캐쉬 장치는, 공통 로직 레벨을 가진 데이터 그룹을 검출하되, 상기 새로운 오퍼랜드의 상위 비트들과 일치되는 가장 많은 수의 상위 비트들을 가진, 알려져 있는 오퍼랜드를 검출하기 위한 로직 그룹 검출기와, 가장 많이 일치된 상위 비트들을 가진, 알려져 있는 오퍼랜드에 대응되는 결과를 부분적으로 마스킹하되, 상기 알려져 있는 오퍼랜드의 일치된 상위 비트들로부터 도출된 해당 결과의 제 1 부분을 통과시키고, 상기 제 1 부분을 제외한 상기 해당 결과의 제 2 부분을 마스킹하기 위한 마스킹 로직 그리고 산술 유닛으로 상기 해당 결과의 상기 제 1 부분을 멀티플렉싱하기 위한 멀티플렉서를 더욱 포함하는 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬.
- 삭제
- 제 7 항에 있어서,상기 캐쉬는 제 2 멀티플렉서를 더욱 포함하되,상기 연산 유닛은 제 2 부분 결과를 발생하기 위해서 상기 일치된 상위 비트들을 제외한 상기 새로운 오퍼랜드의 비트들에 대한 산술 연산을 수행하며, 상기 제 2 멀티플렉서는 상기 제 2 부분 결과를 상기 연살 유닛으로 멀티플렉싱하고, 상기 제 2 부분 결과는 상기 제 1 부분 결과와 결합되어 최종 결과를 형성하는 것을 특징으로 하는 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/757,789 | 2001-01-10 | ||
US09/757,789 US6542963B2 (en) | 2001-01-10 | 2001-01-10 | Partial match partial output cache for computer arithmetic operations |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020060547A KR20020060547A (ko) | 2002-07-18 |
KR100423893B1 true KR100423893B1 (ko) | 2004-03-24 |
Family
ID=25049225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0003728A KR100423893B1 (ko) | 2001-01-10 | 2001-01-26 | 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6542963B2 (ko) |
EP (1) | EP1223505B1 (ko) |
JP (1) | JP4574030B2 (ko) |
KR (1) | KR100423893B1 (ko) |
CN (1) | CN1194301C (ko) |
DE (1) | DE60127524T2 (ko) |
TW (1) | TW501026B (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108368A1 (en) * | 2003-10-30 | 2005-05-19 | Aditya Mohan | Method and apparatus for representing data available in a peer-to-peer network using bloom-filters |
DE102004019967B4 (de) * | 2004-04-23 | 2014-02-13 | Rohde & Schwarz Gmbh & Co. Kg | Signalverarbeitungseinrichtung mit Nachverarbeitung |
US9189412B2 (en) * | 2013-03-07 | 2015-11-17 | Mips Technologies, Inc. | Apparatus and method for operating a processor with an operation cache |
US9817466B2 (en) | 2014-04-17 | 2017-11-14 | Arm Limited | Power saving by reusing results of identical micro-operations |
US9933841B2 (en) | 2014-04-17 | 2018-04-03 | Arm Limited | Reuse of results of back-to-back micro-operations |
GB2525263B (en) * | 2014-04-17 | 2021-06-02 | Advanced Risc Mach Ltd | Reuse of results of back-to-back micro-operations |
US10514928B2 (en) | 2014-04-17 | 2019-12-24 | Arm Limited | Preventing duplicate execution by sharing a result between different processing lanes assigned micro-operations that generate the same result |
US9946331B2 (en) * | 2014-06-27 | 2018-04-17 | Samsung Electronics Co., Ltd. | System and method to process signals having a common component |
GB2528497B (en) * | 2014-07-24 | 2021-06-16 | Advanced Risc Mach Ltd | Apparatus And Method For Performing Floating-Point Square Root Operation |
US10261911B2 (en) * | 2016-09-08 | 2019-04-16 | The Johns Hopkins University | Apparatus and method for computational workflow management |
US11269643B2 (en) | 2017-04-09 | 2022-03-08 | Intel Corporation | Data operations and finite state machine for machine learning via bypass of computational tasks based on frequently-used data values |
JP7143866B2 (ja) | 2020-03-25 | 2022-09-29 | カシオ計算機株式会社 | キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845103A (en) * | 1997-06-13 | 1998-12-01 | Wisconsin Alumni Research Foundation | Computer with dynamic instruction reuse |
US5862400A (en) * | 1991-08-09 | 1999-01-19 | Lotus Development Corp. | Formula processor having cache means for storing and retrieving results of previously computed formulas based on identification and dependency information |
WO1999045463A1 (fr) * | 1998-03-04 | 1999-09-10 | Hitachi, Ltd. | Processeur de donnees |
EP0990981A2 (en) * | 1998-09-30 | 2000-04-05 | STMicroelectronics, Inc. | High speed multiplier |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4734878A (en) | 1985-10-31 | 1988-03-29 | General Electric Company | Circuit for performing square root functions |
JP2613223B2 (ja) * | 1987-09-10 | 1997-05-21 | 株式会社日立製作所 | 演算装置 |
US5260898A (en) * | 1992-03-13 | 1993-11-09 | Sun Microsystems, Inc. | Result cache for complex arithmetic units |
US5828591A (en) * | 1992-11-02 | 1998-10-27 | Intel Corporation | Method and apparatus for using a cache memory to store and retrieve intermediate and final results |
US5537560A (en) * | 1994-03-01 | 1996-07-16 | Intel Corporation | Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor |
US6253287B1 (en) * | 1998-09-09 | 2001-06-26 | Advanced Micro Devices, Inc. | Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions |
US6343359B1 (en) * | 1999-05-18 | 2002-01-29 | Ip-First, L.L.C. | Result forwarding cache |
-
2001
- 2001-01-10 US US09/757,789 patent/US6542963B2/en not_active Expired - Lifetime
- 2001-01-26 KR KR10-2001-0003728A patent/KR100423893B1/ko active IP Right Grant
- 2001-02-07 JP JP2001031314A patent/JP4574030B2/ja not_active Expired - Fee Related
- 2001-02-09 EP EP01301168A patent/EP1223505B1/en not_active Expired - Lifetime
- 2001-02-09 DE DE60127524T patent/DE60127524T2/de not_active Expired - Lifetime
- 2001-02-09 CN CNB011119861A patent/CN1194301C/zh not_active Expired - Lifetime
- 2001-02-13 TW TW090103096A patent/TW501026B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862400A (en) * | 1991-08-09 | 1999-01-19 | Lotus Development Corp. | Formula processor having cache means for storing and retrieving results of previously computed formulas based on identification and dependency information |
US5845103A (en) * | 1997-06-13 | 1998-12-01 | Wisconsin Alumni Research Foundation | Computer with dynamic instruction reuse |
WO1999045463A1 (fr) * | 1998-03-04 | 1999-09-10 | Hitachi, Ltd. | Processeur de donnees |
EP0990981A2 (en) * | 1998-09-30 | 2000-04-05 | STMicroelectronics, Inc. | High speed multiplier |
Also Published As
Publication number | Publication date |
---|---|
TW501026B (en) | 2002-09-01 |
DE60127524T2 (de) | 2008-01-31 |
EP1223505A3 (en) | 2004-06-16 |
CN1194301C (zh) | 2005-03-23 |
DE60127524D1 (de) | 2007-05-10 |
JP4574030B2 (ja) | 2010-11-04 |
US6542963B2 (en) | 2003-04-01 |
US20020120814A1 (en) | 2002-08-29 |
JP2002229775A (ja) | 2002-08-16 |
EP1223505B1 (en) | 2007-03-28 |
CN1365049A (zh) | 2002-08-21 |
EP1223505A2 (en) | 2002-07-17 |
KR20020060547A (ko) | 2002-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5408626A (en) | One clock address pipelining in segmentation unit | |
JP3573755B2 (ja) | 画像処理プロセッサ | |
US5001662A (en) | Method and apparatus for multi-gauge computation | |
US4675809A (en) | Data processing system for floating point data having a variable length exponent part | |
US5381360A (en) | Modulo arithmetic addressing circuit | |
EP0755015B1 (en) | Combining data values | |
US4466077A (en) | Method and apparatus for division employing associative memory | |
KR100423893B1 (ko) | 컴퓨터 산술 연산을 위한 부분 일치 부분 출력 캐쉬 | |
US20050228846A1 (en) | Magnitude comparator | |
US5440702A (en) | Data processing system with condition code architecture for executing single instruction range checking and limiting operations | |
CA1171181A (en) | Data processor performing a decimal multiply operation using a read only memory | |
AU5353990A (en) | Improved cpu pipeline having register file bypass on update/access address compare | |
JPH07168697A (ja) | 倍精度除算回路および方法 | |
US7725522B2 (en) | High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area | |
US4837738A (en) | Address boundary detector | |
US6941334B2 (en) | Higher precision divide and square root approximations | |
US6751645B1 (en) | Methods and apparatus for performing pipelined SRT division | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
US5317531A (en) | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division | |
Eisig et al. | The design of a 64-bit integer multiplier/divider unit | |
US6240540B1 (en) | Cyclic redundancy check in a computer system | |
US5655139A (en) | Execution unit architecture to support X86 instruction set and X86 segmented addressing | |
US4870606A (en) | Trigonometric function preprocessing system | |
US5754460A (en) | Method for performing signed division | |
US20020032845A1 (en) | Array indexing with sequential address genarator for a multi-dimensional array having fixed address indices |
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: 20130228 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20140228 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20150302 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20170228 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20180228 Year of fee payment: 15 |