KR950003882B1 - 멀티 사이클 명령을 처리하는 데이타 정적 제어장치 - Google Patents

멀티 사이클 명령을 처리하는 데이타 정적 제어장치 Download PDF

Info

Publication number
KR950003882B1
KR950003882B1 KR1019920013023A KR920013023A KR950003882B1 KR 950003882 B1 KR950003882 B1 KR 950003882B1 KR 1019920013023 A KR1019920013023 A KR 1019920013023A KR 920013023 A KR920013023 A KR 920013023A KR 950003882 B1 KR950003882 B1 KR 950003882B1
Authority
KR
South Korea
Prior art keywords
instruction
cycle
command
unit
decoder
Prior art date
Application number
KR1019920013023A
Other languages
English (en)
Other versions
KR940002709A (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 KR1019920013023A priority Critical patent/KR950003882B1/ko
Publication of KR940002709A publication Critical patent/KR940002709A/ko
Application granted granted Critical
Publication of KR950003882B1 publication Critical patent/KR950003882B1/ko

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

내용 없음.

Description

멀티 사이클 명령을 처리하는 데이타 정적 제어장치
제 1 도는 종래의 멀티 사이클 명령을 처리하는 제어장치를 나타낸 블럭도.
제 2 도는 이 발명에 따른 멀티 사이클 명령을 처리하는 데이타 정적 제어장치를 나타낸 블럭도.
* 도면의 주요부분에 대한 부호의 설명
100 : 명령어 래치부 200 : 제 1 명령디코더부
201 : 제 1 명령디코더 202,502,602,604,702 : 지연기
300 : 사이클 카운터부 400 : 사이클수 저장부
500 : 제 2 명령디코더부 501 : 제 2 명령디코더
600 : 제 3 명령디코더부 601 : 제 3 명령디코더
602 : 제 4 명령디코더 700 : 제 4 명령디코더부
701 : 제 5 명령디코더 800 : 타이밍 논리 조합부
이 발명은 파이프 라인(Pipe-line) 처리기능을 갖는 리스크(Reduced Instruction Set Computer ; 이하, RISC라 칭함) 콤퓨터의 제어부 설계에 관한 것으로서, 더욱 상세하게는 사이클 카운터를 이용하여 멀티 사이클 명령이 처리되는 동안 새로운 명령어의 로드를 방지하고, 파이프 라인 단계별로 명령어 디코딩을 수행하는 분산 디코딩 방식을 채택하여 멀티 사이클 명령(Multi Cycle Instruction)을 효율적으로 처리하는 데이타 정적(Data Stationary) 제어장치에 관한 것이다.
대부분의 시스크(Complex Instruction Set Computer ; 이하, CISC라 칭함) 콤퓨터에서 채택하고 있는 마이크로 프로그램 제어기법은 수정과 설계가 용이하다는 장점은 있으나, 마이크로 프로그램 저장을 위한 대규모의 롬(Read Only Memory ; 이하, ROM이라 칭함)이나 PLA(Programmable Logic Array)을 사용하기 때문에 속도가 느리다는 단점이 있다. 그리고, 각각의 명령어가 다수개의 마이크로 인스트럭션 수행을 통해 구현되므로 명령어 수행에 다수개의 클럭 사이클이 필요하게 된다.
따라서, 기존 콤퓨터의 명령어 세트 처리동작 분석결과에 바탕을 두면서 단순한 명령어 세트, 고정된 명령어 형태, 하드와이어드(Hardwired) 제어장치를 특징으로 하는 RISC 콤퓨터를 이용하고 있다.
그리고, 이러한 초기 RISC는 모든 명령어의 단일 사이클처리를 기본으로 하였다. 그러나, 로드(Load)와 스토어(Store) 같은 메모리 억세스 명령은 다수개의 사이클을 가지는 명령이므로 단일 사이클에서 처리하는 것이 불가능해졌고, 따라서, 이를 처리하기 위한 제어장치가 필요하게 되었다.
제 1 도는 이러한 멀티 사이클 명령을 처리하는 종래의 제어장치로서, 선택신호(SEL)에 의해 명령어(Instruction)와 내부 동작 코드(Instruction OP Code)를 선택 출력하는 멀티플렉서(MUX)와, 상기 멀티플렉서(MUX)의 출력을 제공받은 후 클럭2(CK2)이 입력될 때까지 래치하는 명령어 레지스터(Instruction Register)로 된 명령어 래치부(2)와, 상기 명령어 래치부(2)에 연결되어 상기 명령어 래치부(2)의 출력을 디코딩하여 각 파이프 라인 단계에 있는 제어신호로 출력하는 명령어 디코더(3)와, 상기 명령어 디코더(3)의 출력측에 연결되어 상기 명령어 디코더(3)의 출력을 지연하고 있다가 실제로 제어신호가 사용되기 바로 이전 클럭에 따라 출력하는 다수의 플립플롭으로 된 지연부(4)와, 상기 지연부(4)로부터 출력을 제공받아 현재 진행중인 명령이 단일 사이클인지 멀티 사이클인지를 판단하여 상기 멀티플렉서(MUX)에 내부 동작코드를 발생시키는 내부 동작 코드 PLA부(5)로 구성된다.
그리고, SOAR와 SPUR 마이크로 프로세서 SPARC(Scalable Processor ARChitecture) RISC 마이크로 프로세서등에서 멀티 사이클 명령을 처리하기 위해 사용되는 내부동작 코드 PLA부(5)는, 상기 멀티플렉서(MUX)로 입력되는 명령이 멀티 사이클인 경우에, 멀티 사이클 판단을 현재 명령어 래치부(2)에 담겨있는 멀티 사이클 명령어의 동작 코드 값을 검사하여, 다음 사이클에 명령어 세트에 정의된 동작 코드가 아닌 멀티 사이클 명령어의 서브사이클(Subcycle) 동작을 표현하는 유사 동작 코드(Pseudo OPcode)인 내부 동작 코드를 발생시킨다. 이 내부 동작 코드는 상기 명령어 래치부(2)의 명령어 레지스터의 동작 코드 필드에 담긴다. 그리고, 이러한 내부 동작 코드 생성 과정은 멀티 사이클 명령어 처리가 완료될 때까지 반복된다.
이상에서와 같이 상기의 제어장치는 기존의 멀티 사이클 명령을 단일 사이클 명령어의 동작 특성을 지닌, 다수개의 내부 명령으로 구현하여 모든 명령어의 단일 사이클이 수행이라는 기존의 RISC 특징에 잘 부합되는 특징이 있다.
그러나, 이 제어장치는 내부 동작 코드 발생을 위해 PLA라는 하드웨어가 추가적으로 필요하고, 이러한 PLA에 의해 지연시간이 발생하며, 또한, 내부 동작 코드 값이 기존의 명령어 세트에서 정의된 동작코드와 같지 않도록 정의되어야 하므로 명령어 세트와 내부동작 코드의 정의가 어려운 문제점이 있다.
이 발명은 이러한 문제점을 해결하기 위한 것으로서, 이 발명의 목적은 입력되는 명령어의 사이클을 카운트하는 사이클 카운터를 추가하여 이 사이클 카운터가 제로가 될 때까지 새로운 명령어가 명령 레지스터에 로드되는 것을 방지하고, 파이프 라인 단계별로 디코딩작업을 분산시킴으로써 명령어 디코더의 회로가 간단해지고 속도가 개선된 멀티 사이클 명령을 처리하는 데이타 정적 제어장치를 제공함에 있다.
이러한 목적을 달성하기 위한 이 발명의 특징은, 외부 메모리에서 페치된 명령어의 사이클을 카운트하는 사이클 카운트 수단과, 상기 카운트된 사이클수를 저장하는 저장 수단과, 한 명령어내에서 한 사이클이 수행될 때마다 상기 저장 수단의 카운트값을 하나씩 감소시키는 감소 수단과, 상기 감소 수단이 수행된 후 상기 저장 수단의 값을 비교하여 사이클 카운트값이 제로가 될때까지 새로운 명령어의 로드를 방지하는 비교수단과, 명령어 디코딩을 파이프 라인 단계별로 분산시켜 수행하는 분산 디코딩 수단으로 이루어지는 멀티 사이클 명령을 처리하는 데이타 정적 제어장치에 있다.
이하, 이 발명에 따른 일실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
제 2 도는 이 발명에 따른 멀티 사이클 명령을 처리하는 데이타 정적 제어장치의 일실시예를 나타낸 블럭도로서, 새로운 명령어를 받아들여 저장하는 명령어 래치부(100)와, 상기 명령어 래치부(100)에 연결되어 다음 명령의 페치와 현재 명령의 디코딩에 관련된 제어신호만 발생시키는 제 1 명령디코더부(200)와, 상기 명령어 래치부(100)에 연결되어 외부 메모리로부터 입력되는 새로운 명령어의 사이클수를 카운트하는 사이클 카운터부(300)와, 상기 사이클 카운터부(300)에 연결되어 상기 사이클 카운트값을 저장하는 상태 저장 레지스터로 된 사이클수 저장부(400)와, 상기 제 1 명령디코더부(200)에 연결되어 제 1 명령디코더부(200)로 페치된 명령어를 디코딩하고 레지스터 화일로부터 소스 오퍼랜드를 읽어와 출력하는 제 2 명령디코더부(500)와, 상기 제 2 명령디코더부(500)와 사이클수 저장부(400)에 연결되어 상기 오퍼랜드에 대해 산술 및 논리동작을 수행하는 제 3 명령디코더부(600)와, 상기 제 3 명령디코더부(600)에 연결되어 명령어의 처리에 대한 결과를 레지스터 화일에 기록하는 제 4 명령디코더부(700)와, 상기 제1 내지 제 4 명령디코더부(200,500,600,700)에 각각 연결되어 요구되는 클럭에 따라 논리 조합되어 제어신호를 출력하는 다수의 앤드게이트로 된 타이밍 논리 조합부(800)로 이루어진다.
그리고, 하나의 명령어가 한 사이클에서 4단계의 파이프 라인 단계를 거친다고 하면, 상기 제 1 명령디코더부(200)는 페치 단계(Fatch Stage), 제 2 명령디코더부(500)는 디코드 단계(Decode Stage), 제 3 명령디코더부(600)는 실행 단계(Execute Stage), 제 4 명령디코더부(700)는 라이트 단계(Write Stage)로 나눌 수 있다.
이때, 상기 제 1 명령디코더부(200)는, 제 1 명령디코더(201)와 상기 제 1 명령디코더(201)의 출력을 저장하는 지연기(202)로 구성되며, 상기 지연기(202)의 출력은 클럭1(CK1)에 의해 제어된다.
그리고, 상기 제 2 명령디코더부(500)는, 제 2 명령디코더(500)와 상기 제 2 명령디코더(500)의 출력을 저장하는 지연기(502)로 구성되며, 상기 지연기(502)의 출력은 클럭2(CK2)에 의해 제어된다.
그리고, 상기 제 3 명령디코더부(600)는, 제3, 제 4 명령디코더(601,603)와 상기 제3, 제4 명령디코더(601,603)의 출력측에 각각 연결된 2개의 지연기(602,604)로 구성되며, 상기 지연기(602,604)의 출력은 클럭1,클럭2(CK1,CK2)에 의해 각각 제어된다.
그리고, 상기 제 4 명령디코더부(700)는, 제 5 명령디코더(701)와 상기 제 5 명령디코더(701)의 출력을 저장하는 지연기(702)로 구성되며, 상기 지연기(702)의 출력은 클럭1(CK1)에 의해 제어된다.
즉, 상기 각 지연기들은 각 명령디코더부에서 출력되는 제어신호를 실제로 사용되는 시점까지 지연시키는 지연 역할을 수행하는 플립플롭으로 구성되며, 이 지연기들은 서로 다른 클럭을 사용한다.
이와 같이 구성된 이 발명은 외부 메모리(캐쉬)에서 하나의 명령이 페치되어 명령 레지스터로 된 명령어 래치부(100)에 래치되고, 클럭(CK2*LD_IF(클럭2*래치 제어신호))에 의해 명령어 래치부(100)로부터 새로운 명령어가 출력되면 제 1 명령디코더부(200)는 다음 명령의 페치와 현재 명령의 디코딩에 관련된 제어신호만 발생시킨다. 즉, 현재 페치된 명령어가 아닌 다음에 오는 명령어 페치와 관련된 제어신호를 출력한다.
이때, 제2, 제3, 제 4 명령디코더부(500,600,700)에서 필요한 제어신호는 명령어의 기능상 특성을 나타내는 상위 레벨 커맨드(High Level Command) 신호만 상기 제 1 명령디코더부(200)에서 발생하고, 세부적인 제어신호는 실제로 제어신호가 사용되는 바로 이전 클럭 페이즈에 제어를 받는 데이타 패스 근처에 위치한 로컬 디코더(Local Decoder ; 제2, 제3, 제 4 명령디코더부(500,600,700)에서 발생함으로써, 디코딩 계층 구조(Decoding Hierarchy ; 분산 디코딩 방법) 구현된다.
이때, 제2, 제3, 제 4 명령디코더부(500,600,700)에서 출력되는 제어신호는 현재 페치되어 디코딩중인 명령어에 관련된 제어신호로서, 상기 제 2 명령디코더부(500)의 제 2 명령디코더부(501)에서는 상기 제 1 명령디코더부(200)에서 페치된 명령에 대해 디코딩을 행하고, 소스 오퍼랜드들을 해당 레지스터 화일로부터 읽어오는 제어신호를 발생시키며, 다음 파이프 라인 단계 제어에 사용되는 제어 명령을 지연기(502)에 저장된다.
그리고, 제 3 명령디코더부(600)에서는 상기 제 2 명령디코더부(500)의 지연기(502)에 저장된 제어 명령을 사용하여 레지스터 화일에서 읽어온 데이타에 대한 산술 및 논리 동작 제어에 사용되는 신호를 발생시키고 다음 파이프 라인 단계 제어에 사용되는 제어 명령을 지연기(604)에 저장하며, 제 4 명령디코더부(700)에서는 명령의 수행 결과가 레지스터 화일에 쓰는(write) 제어신호를 발생시킨다.
한편, 상기 제1 내지 제 4 명령디코더부(200,500~700)에서 발생된 제어신호 값은 안정된 신호특성을 갖는데, 1사이클이 아닌 특정 페이즈(Phase)에만 액티브되어야 하는 제어신호(예 ; 래치 또는 플립플롭의 인에이블 신호 또는 클럭 입력, 다이나믹 MOS 회로의 이밸루에이션(Evaluation) 제어신호등)가 발생되는 경우는 타이밍 논리 조합부(800)에서 앤드게이트에 의해 클럭1,클럭2(CK1,CK2)가 논리곱된다.
그리고, 명령어 페치 시점 제어 기법으로 사이클 카운터를 사용하는 방식을 사용한다. 즉 사이클 카운터부(300)는 상기 명령어 래치부(100)에 래치된 새로운 명령어의 사이클을 카운트하여, 그 카운터 값을 카운트수 저장부(400)에 저장한다. 이때, 상기 카운트수 저장부(400)는 서로 다른 클럭(CK1,CK2)에 의해 제어되는 마스터-슬리이브 플립플롭 타입의 상태 저장 레지스터로 구현된다.
그리고, 명령어 세트에서 멀티 사이클 명령어가 필요로 하는 최대 사이클수가 4인 경우를 예로 들면, 2비트의 상태 저장 레지스터를 사용하여 사이클 카운터부(300)에서 카운트된 사이클수를 저장할 수 있다.
그리고, 2페이즈 클럭 기법에 맞게 안정된 제어신호를 발생시키기 위해 클럭2(CK2)에 제어되는 신호는 클럭1(CK1)에 의해 제어되는 래치(또는 지연기)에서 발생하며, 마찬가지의 조건이 클럭1(CK1)에 사용되는 제어신호에 적용된다.
이때, 멀티 사이클 명령어가 필요로 하는 사이클수의 최대값이 R인 경우, 사이클 카운터부(300)의 출력값을 저장하는 사이클수 카운터부(400)의 상태 저장 레지스터의 크기 n은 하기식으로 정의된다.
n=log2R…………………………………………(1)
따라서, 최대 사이클수가 4이면 2비트의 상태 저장 레지스터가 필요하다.
이때, 상기 사이클 카운터부(300)의 카운트값을 저장하는 사이클수 저장부(400)는, 초기에 외부 초기화신호(reset)에 의해 모두 0으로 초기화된다.
그리고, 단일 사이클 명령어가 페치되어 명령어 레지스터에 로드되는 경우, 그 값이 디코딩되는 다음 사이클에서는 0값이 되며, 계속해서 단일 사이클 명령이 페치되는 경우에는 그 값이 그대로 유지된다.
반면에, 명령 레지스터에 R개의 사이클이 필요한 멀티 사이클 명령어가 로드되는 경우는, 다음 사이클에 사이클 카운트 값이(R-1)로 바뀌어 사이클수 저장부(400)에 저장되고, 그 다음 사이클에는 (R-2)로 바뀌어 상기 사이클수 저장부(400)에 저장된다. 이러한 과정은 사이클수 저장부(400)에 저장된 사이클 카운터 값이 0으로 될 때까지 계속되며, 그동안 명령어 래치부(100)의 래치 제어신호(LD_IF)를 0의 값으로 제어하여 새로운 명령어가 명령어 래치부(100)에 로드되는 것을 방지한다.
즉, 사이클 카운트 값이 0이 아닌 경우에는 명령어 레지스터의 값은 이전 값을 유지한다. 따라서, 멀티 사이클 명령어의 각 사이클에 필요한 제어신호는 명령어 래치부(100)의 동작 코드와 사이클 카운터의 값으로 결정된다.
한편, 멀티 사이클 명령 수행시 다음에 수행할 새로운 명령어를 페치해서 명령어 래치부(100)에 저장하는 시점은 사이클 카운터의 값과 관련된다.
즉, 단일 사이클 명령어의 경우는 매 사이클마다 새로운 명령어를 명령어 래치부(100)에 로드하고, 멀티 사이클 명령어의 경우는 현재의 사이클 카운트의 값이 1이 되면, 외부의 메모리에서 새로운 명령어를 명령어 래치부(100)에 로드하는 제어신호가 명령어 디코더에서 발생되며 이때, 사이클 카운터의 값은 0으로 된다.
이상에서와 같이 이 발명은 명령어 디코딩 동작을 여러가지 파이프 라인 단계에서 분산시켜 제어신호를 발생시킴으로써 제어신호의 전송을 위한 와이어 갯수를 줄이고 속도를 증가시키며, 또한, 새로 입력되는 명령어가 멀티 사이클인 경우, 새로 입력되는 명령어의 사이클수를 카운트하는 사이클 카운터와 카운트된 사이클수를 저장하는 상태 비트 레지스터를 이용하여 한 사이클이 수행될 때마다 카운트된 사이클수를 하나씩 감소시키는 과정을 사이클 카운트 값이 0이 될 때까지 계속하여 그동안 새로운 명령어가 명령어 레지스터에 로드되는 것을 방지하고, 별도의 PLA를 사용하지 않아 하드웨어가 간단해지는 효과가 있다.

Claims (4)

  1. 외부 메모리에서 페치된 명령어의 현재 동작 사이클을 카운트하는 사이클 카운트 수단과, 상기 카운트된 사이클수를 저장하는 저장 수단과, 한 명령어내에서 한 사이클이 수행될 때마다 상기 저장 수단의 카운트 값을 하나씩 감소시키는 감소 수단과, 상기 감소 수단이 수행된 후 상기 저장 수단의 값을 비교하여 사이클 카운트 값이 제로가 될때까지 새로운 명령어의 로드를 방지하는 비교수단과, 명령어 디코딩을 파이프 라인 단계에서 분산시켜 수행하는 분산 디코딩 수단으로 이루어지는 멀티 사이클 명령을 처리하는 데이타 정적 제어장치.
  2. 제 1 항에 있어서, 상기 저장 수단은, 상태 저장 레지스터로 이루어짐을 특징으로 하는 멀티 사이클 명령을 처리하는 데이타 정적 제어장치.
  3. 제 1 항에 있어서, 상기 저장 수단은, 마스터-슬리이브 플립플롭으로 이루어짐을 특징으로 하는 멀티 사이클 명령을 처리하는 데이타 정적 제어장치.
  4. 제 1 항에 있어서, 상기 저장 수단은,
    n=log2R
    상기 식에 의해 비트수가 결정됨을 특징으로 하는 멀티 사이클 명령을 처리하는 데이타 정적 제어장치.
KR1019920013023A 1992-07-22 1992-07-22 멀티 사이클 명령을 처리하는 데이타 정적 제어장치 KR950003882B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920013023A KR950003882B1 (ko) 1992-07-22 1992-07-22 멀티 사이클 명령을 처리하는 데이타 정적 제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920013023A KR950003882B1 (ko) 1992-07-22 1992-07-22 멀티 사이클 명령을 처리하는 데이타 정적 제어장치

Publications (2)

Publication Number Publication Date
KR940002709A KR940002709A (ko) 1994-02-19
KR950003882B1 true KR950003882B1 (ko) 1995-04-20

Family

ID=19336740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920013023A KR950003882B1 (ko) 1992-07-22 1992-07-22 멀티 사이클 명령을 처리하는 데이타 정적 제어장치

Country Status (1)

Country Link
KR (1) KR950003882B1 (ko)

Also Published As

Publication number Publication date
KR940002709A (ko) 1994-02-19

Similar Documents

Publication Publication Date Title
US6216223B1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US5727194A (en) Repeat-bit based, compact system and method for implementing zero-overhead loops
US4435756A (en) Branch predicting computer
US5815699A (en) Configurable branch prediction for a processor performing speculative execution
KR0149658B1 (ko) 데이터 처리장치 및 데이터 처리방법
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5163139A (en) Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US20140075157A1 (en) Methods and Apparatus for Adapting Pipeline Stage Latency Based on Instruction Type
GB2287108A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
JPH04309131A (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US6023751A (en) Computer system and method for evaluating predicates and Boolean expressions
US5717909A (en) Code breakpoint decoder
US20070260857A1 (en) Electronic Circuit
EP0772827A1 (en) Pipeline microprocessor test method and apparatus
US5504923A (en) Parallel processing with improved instruction misalignment detection
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
US8595473B2 (en) Method and apparatus for performing control of flow in a graphics processor architecture
US4812970A (en) Microprogram control system
KR950003882B1 (ko) 멀티 사이클 명령을 처리하는 데이타 정적 제어장치
EP0279953A2 (en) Computer system having mixed macrocode and microcode instruction execution
CA2444543A1 (en) System and method including distributed instruction buffers holding a second instruction form
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
US4677545A (en) Microprocessor having macro-rom and main program queues
KR950003881B1 (ko) 멀티 사이클 명령을 처리하는 시간정적 제어장치
US5875323A (en) Processor using implicit register addressing

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060420

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee