KR100379342B1 - 메모리시스템,컴퓨터시스템및,메모리모듈 - Google Patents

메모리시스템,컴퓨터시스템및,메모리모듈 Download PDF

Info

Publication number
KR100379342B1
KR100379342B1 KR1019950008738A KR19950008738A KR100379342B1 KR 100379342 B1 KR100379342 B1 KR 100379342B1 KR 1019950008738 A KR1019950008738 A KR 1019950008738A KR 19950008738 A KR19950008738 A KR 19950008738A KR 100379342 B1 KR100379342 B1 KR 100379342B1
Authority
KR
South Korea
Prior art keywords
memory
processing
active
variable length
host processor
Prior art date
Application number
KR1019950008738A
Other languages
English (en)
Other versions
KR950033863A (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 에이티 앤드 티 코포레이션
Publication of KR950033863A publication Critical patent/KR950033863A/ko
Application granted granted Critical
Publication of KR100379342B1 publication Critical patent/KR100379342B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)
  • Microcomputers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 시스템은 하나 또는 그 이상의 능동 기억 소자들을 포함한다. 각각의 능동 기억 소자는 메모리 소자와 상기 메모리 소자에 연관된 처리 소자를 포함한다. 메모리 소자는 특정 기능을 구현하기 위해 마이크로코드를 포함한다. 제 1 버스는 처리 소자를 호스트 프로세서에 접속한다. 제 2 버스는 처리 소자를 주변 장치에 접속한다.

Description

메모리 시스템, 컴퓨터 시스템 및, 메모리 모듈{Intelligent memory-based input/output system}
발명의 배경
본 발명은 컴퓨터 시스템들에 관한 것으로, 특히 컴퓨터 시스템들에 사용하기 위한 메모리 시스템들에 관한 것이다.
컴퓨터 시스템을 위한 중요한 용도는 데이터의 처리(data manipulation)에 있다. 이러한 데이터의 처리는 사람에 의해 용이하게 이해할 수 있는 테이블들로 대량의 정보를 편성하는 것과 같이 때로는 그 자체로 가치가 있다. 다른 경우에, 데이터는 선형 프로그래밍 최적화 처리와 같이 컴퓨터가 수행하는 몇몇 태스크의 일부로서 처리된다.
컴퓨터 메모리에 기억된 데이터는 컴퓨터의 제어 및 처리 회로에 의해 액세스되어야 한다. 통상의 메모리는 각각 정보를 기억할 수 있는 다수의 장소들(multiple locations)을 포함한다. 그들 장소들의 각각은 사서함(post office box)과 매우 유사하다. 특정 사서함의 내용들을 이용하기 위해서는, 그 특유한 식별 번호 또는 어드레스를 알아야 한다. 컴퓨터가 일정량의 데이터를 요구할 때마다, 컴퓨터는 요구된 데이터가 위치하는 메모리 장소(들)를 알아야 한다. 그후, 컴퓨터는 메모리에 적절한 장소(들)의 어드레스(들)를 지정하고, 차례로 메모리는 그들 장소(들)에 존재하는 데이터를 컴퓨터에 제공한다. 따라서, 메모리는 컴퓨터의 정보 보존 장소로서 수동적인 저장소(passive repository)의 역할을 한다.
컴퓨터는 기록된 프로그램들을 실행함으로써 유용한 태스크들을 수행한다. 이러한 프로그램들은 태스크의 일부로서 액세싱 및 처리될 데이터를 미리 알아야한다. 프로그래머들은 종종 데이터를 데이터 구조들(data structures)로 불리는 그룹들로 편성한다. 일반적으로 프로그래머는 각각의 데이터 구조에 포함된 실제 메모리 장소들을 계속적으로 알기 위해 상당한 노력을 들인다. 이러한 작업은 성가실뿐 아니라 에러를 일으키기 쉽고 상당히 비효율적이다. 스택 액세스(stack access)와 같은 단순한 태스크는 이상적으로 단일 메모리 액세스만을 요구한다. 그러나, 스택 액세스를 실행하기 위해, 경계 체킹(bounds checking) 및 기억 관리 등과 같은 다른 동작들이 필요함으로 인하여, 단순한 태스크에는 메모리에 대한 보다 많은 액세스들이 필요하게 된다.
전술한 바와 같이, 현존하는 컴퓨터 시스템들의 프로세서-중심의 설계들은 이상적으로 그들의 특성상 메모리 지향적인 데이터 베이스와 통신 응용들에 적합하지 않다. 예컨대, 통신 처리에서는, 통상적으로 통신 라인으로부터의 데이터가 입출력(I/O) 채널 프로세서 또는 직접 메모리 액세스(DMA) 장치의 도움으로 시스템 버스를 통해 메모리에 기억된다. 이러한 데이터 처리는 체크섬 계산(checksumcomputation), 비트 추출(bit extraction), 삽입(insertion), 헤더 해석(header parsing), 링크 리스트 처리(link list manipulation), 테이블 검사(table look up), 키워드 검색(keyword searches)과 같은 단순한 저-레벨 동작들(low level operations)을 포함할 수 있다. 일반적으로, 부동 소숫점 연산들(floating point operations)과 같은 대량의 프로세서 중심의 동작들은 포함되지 않는다. 필요한 처리가 완료된 이후에, 데이터는 통신 라인에 역으로 전송하기 위해 출력 큐(output queue)에 배치된다.
이러한 저-레벨 동작들은 자주 발생하는 경향이 있기 때문에, 많은 통신량(traffic)이 시스템 버스에 발생하여, 그 버스상에 문제(contention)가 발생된다. 프로세서는 펄요한 저-레벨 동작들이 실행될 수 있도록 메모리로부터 데이터를 연속적으로 전송 및 수신하여야 한다. 프로세서의 과도한 이용과 대조적으로, 메모리는 컴퓨터 시스템들에서 충분히 활용되지 않은 자원이 되는 경향이 있다. 종래 메모리는 프로세서와 함께 스케일링(scaling)될 수 없고, 결과적으로, 시스템은 더욱 혼잡하게 되어 시스템내의 문제를 증가시킨다. 주 메모리로부터 프로세서에 대하여 데이터를 액세스하는 동안 큰 대기시간들로 인하여, 많은 컴퓨터 응용들에서 상당한 비효율성을 야기한다.
발명의 개요
본 발명에 따라 저-레벨 처리 동작들을 수행할 수 있는 멀티-포트 메모리 시스템(multi-port memory system)이 실현된다. 본 메모리는 한 포트를 통해 프로세서와 상호 작용할 수 있고, 다른 포트를 통해 주변 장치 또는 통신 라인과 상호 작용하고, 양쪽 포트들의 데이터에 대해 데이터 처리를 수행할 수 있다.
상기 메모리 시스템은 하나 또는 그 이상의 능동 기억 소자들(active storage element; ASE)을 포함한다. 각각의 ASE는 국부적으로 데이터 처리 동작들을 수행 가능하게 하고, 적어도 두 개의 포트 중 하나를 통해 통신 가능하게 처리 논리(processing logic)를 포함한다. ASE들은 서로 다른 형태들의 작고 큰 객체들을 참가하도록 분할될 수 있고, 심지어 더 큰 객체들도 참가하도록 그룹화될 수 있다. 처리 논리는 포인터 참조 해제(pointer dereferencing), 메모리 간접 지정(memory indirection), 검색 및, 경계 체킹(bounds checking)과 같은 저-레벨 동작들을 수행할 수 있도록 설계된다. ASE들 중 적어도 몇 개는 디스크 또는 통신 라인과 같은 주변 장치에 직접 접속되는 적어도 하나의 백-엔드 포트(backend port)를 포함한다. 데이터는 프로세서에 의한 개입을 요구하지 않고 메모리에 직접 통과할 수 있다. 이는 시스템의 대기 시간과 주 시스템 버스상의 혼잡을 감소시킨다. 또한, 메모리 시스템은 가용한 전체 메모리와 ASE 어레이의 사이즈에 의해 성장할 수 있는 I/O 대역폭에 의해서도 스케일링(scale)될 수 있다.
처리 동작들을 수행할 수 있는 메모리 시스템을 이용함으로써, 종래의 기술에서 호스트 프로세서에 의해 수행되던 많은 저-레벨 계산을, 지금은 메모리 시스템에 로딩하지 않고 실행될 수 있다. 그 결과로서, 단순히 데이터를 이동시키는 것 보다는 더 복잡한 응용의 특정 동작들을 수행하고, 데이터를 처리하는 데 보다 많은 시간을 할애함으로써, 메모리 기능성이 증대된다. 프로세서는 일정한 태스크들을 메모리에 신속히 처리할 수 있으므로, 상당한 성능 이득들을 실현할 수 있다.
발명의 상세한 설명
메모리에 데이터 구조 요소들을 기억하고, 메모리내의 데이터 구조 요소들을 처리하고, 메모리로부터의 데이터 구조 요소들을 검색하는 개념은 Abhaya Asthana 등에 1992년 7월 28일자로 허여된 미국 특허 제 5,134,711 호에 기술되어 있다. 이 문헌은 본 명세서 참고 문헌으로서 포함된다. 상술한 공보에는 호스트 프로세서가 하나의 포트(버스 인터페이스) 보다 많은 포트들을 포함하는 지능 메모리를 이용하는 장치가 기재되어 있다. 그러한 호스트 프로세서는 호스트와 메모리 사이의 주 인터페이스의 버스 이외의 한 버스를 통해 주변 장치들과 인터페이스하도록 메모리를 프로그램하고, 어떤 선정된 방식으로 다른 버스를 통해 흐르는 데이터를 처리하도록 메모리를 지시할 수 있다.
비록 "데이터 구조들(data structures)"의 개념이 컴퓨터 기술자들에게 잘 알려져 있지만, 본 발명의 이해를 위해, "데이터 구조"가 무엇인지를 명확하게 설명하는 것이 유용하다. 이를 위해, Kernigham 등의 "(C 프로그래밍 언어(C Programming Language)" Prentice-Hall, 1978, 페이지 119에서 한 단락을 아래에 인용한다.
「구조는 조작의 편리를 위해 단일 명칭하에서 서로 그룹화된 하나 또는 그 이상의 서로 다른 형태들이 될 수 있는 변수들의 집합이다(구조들은 몇몇 언어들, 특히 파스칼 언어로 "레코드(record)"들로 불린다). 구조의 통상적인 예는 봉급 지급 명부 기록(payroll record)이다. 즉, "종업원(employee)"은 이름, 주소, 주민등록 번호, 봉급 등과 같은 일련의 속성들로 기술된다. 이들 속성들 중 일부는 또한구조들로 될 수 있다. 즉, 이름은 일부 성분들을 포함하고, 주소와 심지어 봉급도 일부 성분들을 포함한다. 구조들은, 특히 대규모 프로그램들에 있어서 복잡한 데이터를 조직화하는 유용한데, 그 이유는 많은 경우들에 있어서, 구조들에 의해, 연관된 일련의 변수들을, 별개의 실체를 대신하는 한 단위로서 취급될 수 있기 때문이다.」
제 1 도는 종래의 다중 프로세서 장치의 일반적인 개략도를 나타낸다. 여기서, 프로세서들(10 및 11)과, 프로세서들(10 및 11)이 접속되는 공통 버스(12)와, 주변 장치들(13 내지 18)을 포함한다. 주변 장치들(17 및 18)은 메모리들이다. 동작에 있어서, 프로세세들은 버스(12)를 요구하고, 요구에 성공한 프로세서는 버스에 접속된 주변 장치를 중의 임의의 하나에 액세스한다. 이와 같은 장치에 의해, 버스(12)에서는 프로세서들과 장치들 사이의 통신 처리에서의 잠재적인 병목(potential bottleneck)이 분명히 나타난다. 이러한 문제를 완화시키기 위하여, 약간의 설계자들은 각각의 프로세서에 캐시 메모리를 포함시킨다. 이러한 방법은 버스의 경쟁(bus contention)을 감소시키는데 도움이 되지만, 프로세서와 메모리 사이의 기본적인 통신 문제를 해결하지는 못한다. 여전히, 메모리 액세스는 기본적인 패치들 및 기억들(fetches and stores)의 형태를 취한다.
제 2 도는 본 발명의 원리들에 따른 컴퓨터 시스템의 블럭도를 제시한다. 예시를 위해, 프로세서들(10, 11)과, 주변 장치들(13, 14, 15 및 16)을 포함한다. 제 2 도에 있어서, 프로세서들은 스위칭 네트워크(19)에 접속된다. 또한, 본 발명의 원리들에 따라, 제 2 도의 컴퓨터 시스템은 네트워크(19)에 접속된 메모리시스템(20)을 포함한다. 제 1 도의 메모리들과는 달리 메모리(20)는 제어된 처리 및 통신 능력을 포함하는 메모리 모듈들을 구성된다. 특히, 메모리 모듈은 다양한 주변 장치들에 인터페이스될 수 있는 접속될 수 있는 백-엔드 포트들(backend ports)(제 4 도 참조)을 포함한다. 제 2 도에는 예시의 목적으로 소형 컴퓨터 시스템 인터페이스(small computer system interface)(SCSI) 디스크 제어기(220), 통신 라인(240) 및, 변환기 장치(260)가 도시되어 있다.
네트워크(19)는 다른 프로세서가 약간의 다른 주변 장치와 통신하고 있는 동안 한 프로세서가 메모리 시스템(20)과 통신하게 한다. 네트워크(19)는 경쟁의 문제(contention problem)를 어드레스하지만, 메모리와의 저-레벨 통신을 하지 않는다. 이 메모리는 메모리 시스템(20)내의 지능(intelligence)에 의해 어드레스된다. 물론, 경쟁의 문제가 없는 사용자들의 경우(예컨대, 충돌이 발생할 것 같지 않은 응용들에서), 네트워크(19)가 제거될 수 있다. 본 발명에 따라 메모리 시스템과 약간의 주변 장치들 사이의 통신은 종종 어떤 프로세서의 관여없이 행할 수 있다.
제 3 도는 메모리(20)를 좀 더 상세하게 설명하기 위한 도면이다. 메모리(20)는 통신 라인들(24, 25 및 26)을 포함하는 네트워크 등과 같은 한 네트워크와 상호 접속되는 메모리 모듈들(21, 22 및 23)을 포함한다. 또한, 모듈들(21, 22 및 23)은 네트워크에 접속된다. 각각의 메모리 모듈은 다수의 ASE를 포함하고, 각각의 ASE는 프로세서 소자(30)와 메모리 소자(31)를 포함한다. 프로세서 소자(30) 및 연관된 메모리 소자(31)는 ASE의 한 예이다. 각각의 처리 소자(30)는 주변 장치들에 접속되는 포트(47)를 더 포함할 수 있다. 또한, ASE들은 라인들(67,68 및 69)을 포함하는 네트워크와 같은 한 네트워크에 상호 접속되고, 이는 메모리 모듈을 구성한다.
제 4 도는 메모리 모듈에 대한 다른 실시예를 나타낸다. 본 실시예에는 라인들(28 및 29)과 같은 행들 및 열들로 개략적으로 도시된 양방향 통신 라인들의 스위칭 구조(switching fabric)를 포함한다. ASE(33)와 같은 각각의 ASE 모듈은 각각의 열 라인 및 행 라인 사이의 "교차점(cross point)"을 형성한다. 임의의 행 또는 열 라인들은 다른 ASE들과 통신하도록 지정될 수 있고, 또한, 임의의 열과 행 라인이 네트워크(19)와 통신하도록 지정될 수 있다. 통신은, 많은 공지의 방법들 중의 임의의 하나에 있어서 다른 ASE들의 통과와 조합하여 행과 열 라인들을 통해 소정의 메모리 모듈내의 ASE들 사이에서 행할 수 있다. 게다가, 메모리 모듈들은 현존 어레이로 포함된 행들 또는 열들(또는 둘 모두)을 연장함으로써 어레이로 부가될 수 있고, 그로 인해, 전체 용량을 확장한다. 통신은 패킷들을 통해 실행되고, 각각의 패킷은, 규정된 절차에 따라, 패킷과 만나는 각각의 ASE가 그 패킷을 행으로부터 열로 또는, 그 역으로 전송할 수 있는지 여부를 알도록 허용하는 목적지 어드레스를 갖는다. 이 용량에 있어서, ASE는 단순히 교차 스위치(cross-over switch)로서 기능을 한다. 제어 논리(CLAM)(45)는 ASE들을 네트워크(19) 또는 시스템 버스에 접속한다. 시스템 버스에는 호스트 프로세서(도시되지 않음)가 접속된다.
제 4 도에 예시된 장치에 있어서, ASE들(331, 332, 333 및 334)은 백-엔드 포트를 포함하고, 그들 백-엔드 포트들은 각각 디스크 기억 장치에 각각 접속된다. 또한, ASE들(335, 336, 337)도 백-엔드 포트를 포함하고, 그들 백-엔드 포트들은통신 라인에 각각 접속된다. 다른 모든 ASE들은 그들의 백-엔드 포트들을 이용하지 못한다. 물론, 다른 배열들도 용이하게 구현될 수 있다. 주변 장치[예를 들어, 디스크(220) 또는 통신 라인(240)]에 접속하는 ASE들은 호스트 프로세서에 의한 개입에 관계없이 데이터에 대한 저-레벨 동작들을 수행한다. 따라서, 호스트 프로세서는 메모리 모듈을 그 자신의 지능 메모리로서 취급하고, 이 지능 메모리는 호스트 프로세서로부터 최소 방향으로 호스트 프로세서를 대신하여 주변 장치들과 인터페이스한다.
제 5 도는 제 4 도의 스위칭 환경에서의 동작에 적응된 ASE내의 처리 소자의 한 실시예의 블럭도이다. 본 도면에는, 처리 소자의 두 개의 포트들에 접속되고, 상술한 교차 스위치로서의 역할을 하는 스위치(34)와, 다수의 블럭들이 접속되는 공통 버스(35)를 포함한다. 특히, 버스(35)는, 마이크로프로그램 메모리(36), 레지스터 어레이(37), 연산 논리 장치(ALU)(38), 마이크로프로그램 어드레스 제어 논리(39), 메모리 제어 논리(27)와 인터페이스한다. 백-엔드 포트(47)는 제 2 버스를 통해 ALU(38)와 인터페이스한다. 예를 들어, 백-엔드 포트(47)는 소형 컴퓨터 시스템 인터페이스(SCSI) 프로토콜 또는 다른 적절한 통신 프로토콜에 따라 동작하도록 적응될 수 있다.
동작에 있어서, 메모리 시스템(20)은 두 형태들의 액세스에 따른다. 하나는 메모리 시스템을 일반적으로 프로그램하는 것으로, 특히 필요한 ASE들의 각각을 프로그램한다. 프로그래밍은 메모리 시스템이 처리를 위해 요구되는 데이터 구조들과 이들 데이터 구조들에 대한 필요한 동작들을 수행하는 방식을 지정한다. 예를 들어, 한 프로그램 모듈은 백-엔드 포트상의 데이터에 대하여 ASE들의 예상하는 데이터 조작 처리를 규정하고, 다른 프로그램은 하나의 주 인터페이스(호스트에 대해)에 대하여 데이터 처리를 규정하며, 또한, 다른 프로그램 모듈은 더 많은 메모리 또는 데이터 처리가 특정 프로세서 모듈 등에 이용 가능한 것보다 특정 태스크에 필요할 때 다른 ASE들 사이의 상호작용을 규정한다. 제 2 형태의 액세스는 원하는 태스크를 실제로 실행하도록 메모리 시스템을 지시하는 것이다. 이는, 예를 들어, LIFO 스택으로 한 워드의 데이터를 기억하고, 최종 액세스된 "자식(child)"의 "부모(parent)" 등에 대해 액세스할 수 있다. 즉, 호스트 프로세서는 제 5 도의 메모리(40) 또는 메모리(36)와 직접 상호 작용할 수 있다.
ASE들로 하여금 전술한 형태의 태스크들을 실행 가능하게 하는 지능은 마이크로프로그램 메모리(36)에 위치한다. 이 메모리는 마이크로프로그램 제어 논리(39)의 제어 하에서 액세스되고, 이 제어 논리는 ALU(38), 레지스터 어레이(37)와 메모리(40)에 필요한 동작들을 실행하기 위해 필요한 제어 신호들을 제공한다. 메모리(36)는 종래 메모리일 수 있으나, 본 발명의 양호한 실시예에서의 마이크로프로그램 메모리(36)는 각각이 256 워드인 4 개의 32 비트 메모리 모듈들을 포함한다. 이와 같이 설계하는 이유는 가변 길이 명령들이 효율적으로 기억되게 하고, 동시에 기억된 가변 길이 명령에 병렬로 액세스를 허용하는 것에 있다. 마이크로프로그램 어드레스 제어 논리(39)는 트랩 논리 블럭(60)과 브랜치 논리 블록(branch logic block)(70)을 포함한다.
레지스터 어레이(37)는 ALU와 메모리의 다양한 천이 값들을 기억하는데 사용되는 레지스터들의 집합을 포함한다. 예를 들어, 레지스터(37)들은 레지스터들내에 매치 패턴(match pattern)을 유지하고, ALU(38)내의 메모리(40)로부터 획득한 데이터와 기억된 값들을 비교함으로써 패턴 매칭을 수행하는 회로내에 포함될 수 있다. 프로세서의 산술 논리 연산 장치는 임의의 종래 설계로도 가능하므로, 본 명세서에서는 상세히 기술하지 않는다.
다음은, 본 발명의 환경에서 상술한 구조를 포함하는 실시예들을 개략적으로 설명한다.
본 발명이 포함될 수 있는 응용들 중의 하나는 인터넷 프로토콜(internet protocol: IP) 라우터(router)가 될 수 있다. IP 라우터는 한 소스로부터 네트워크를 통해 한 목적지로 다수의 패킷들의 경로를 라우팅한다. 각각의 패킷은 특정 패킷의 소스와 목적지에 관한 정보뿐 아니라 패킷의 크기와 같은 다른 정보도 포함하는 하나의 IP 헤더를 갖는다. 패킷이 소스로부터 목적지로 전달될 때, 패킷은 "호프들(hops)"로 불리는 여러 중간 링크들을 통해 전달된다. 한 패킷이 한 호프에 도달할 때, 이 패킷은 다음 호프로 라우팅되어야 한다. 라우터는 하나 또는 그 이상의 수신 링크들로부터 패킷들을 수신하고, 특정 패킷의 목적지에 기초하여 다수의 송신 링크들 중 임의의 한 링크를 따라 패킷을 전송한다. 라우터는 병목 상태를 피하기 위하여 수신 링크들 상의 통신량에 대처할 수 있어야 한다. IP 라우터의 상세한 설명이 A. Asthana 등의 "Toward a Gigabit IP Router", Journal of High Speed Networks 1, IOS Press, 1992, pp. 281-288 에 기술되어 있고, 이는 본 명세서에 참조 문헌으로 포함된다.
IP 헤더 처리에 있어서, 제 6 도의 라우터는 에러 체크들, 체크섬들의 동시 재계산과, 다음 호프의 결정을 포함하는 많은 데이터 중심의 동작들을 수행해야 한다. 라우터는 세 가지 주 기능을 수행한다. 세 가지 주 기능은 링크와의 패킷 수신 및 전송, 수신 패킷이 전송되어야 하는 송신 링크의 결정, 입력 링크로부터 출력 링크로의 패킷 스위칭이다. 제 6 도의 장치에 있어서, 프로세싱 태스크들은 ASE들에 할당된 저-레벨 동작들의 세트와 호스트 프로세서에 의해 유지되는 복잡하고 계산 지향적인 동작들로 분할된다. 물론, 설계자에 의해서, 이러한 작업의 특정 분할은 기본적으로 "표준(standard)" 객체 처리 프로세스(현재의 응용에 대한 "표준")와 많은 응용 지정된 동작들인 일종의 동작들 사이의 균형을 행한다.
제 6 도는 본 발명과 일치하는 메모리 시스템(605)을 포함하는 라우터(600)의 블럭도를 예시한다. 데이터 패킷들(625)은 패킷(625)으로부터 IP 헤더를 제거하는 수신 링크(615)를 통해 제어 회로(610)에 의해 수신된다. 제어 회로(610)는 유효화 및 라우팅하기 위해 헤더(620)를 ASE(630)에 보낸다. 패킷(625)의 나머지는 소스 인터페이스 모듈에 위치한 버퍼(635)에 배치된다.
ASE들(630)은 병렬로 배열되고, 각각의 ASE(638)는 서로 다른 헤더(620)를 처리할 수 있다. ASE(630)는 헤더(620)로부터 패킷(625)의 목적지를 결정하고, 이에 기초하여 패킷이 전송되어야 할 송신 링크(645)의 정보를 결정한다. 헤더의 처리는 목적지와 다른 라우팅 정보와, 정보가 옳은지를 확인하는 에러 체킹을 포함하는 새로운 헤더의 작성을 포함한다. 그후, ASE(630)는 헤더(620)의 필드를 적당한 목적지 인터페이스 정보로 갱신한다. 그후, 패킷의 나머지는 소스 인터페이스 모듈내의 버퍼(635)로부터 목적지 인터페이스 모듈내의 버퍼(640)로 전송된다. 그후, 처리된 패킷은 데이터의 실제의 이동을 다음 호프로 실행하는 호스트 컴퓨터로 라우팅된다.
또한, ASE들은 패킷들이 수신된 순서와 동일한 순서로 전송되도록 순서 관리(order-maintenance)를 행할 수 있다. 라우터 기능들은 프로세서에 의한 개입에 관계없이 ASE들에 의해 완전히 실행되고, 그로 인해, 시스템의 전체 처리량을 증대시킨다. 게다가, ASE에 의한 헤더들의 처리는 단위 초당 1 기가비트 패킷 레이트가 수용될 수 있도록 처리 속도를 증대시킨다.
본 발명의 메모리 시스템을 포함하는 다른 응용은 제 7 도에 도시한 바와 같이 표준 스위칭 서비스로부터 여러 서비스 프로세서들 중의 하나로 전화 호출들을 전환시키는 호출 스크리닝 및 검출 시스템(700)이다. 서비스 프로세서들은 스위칭 서비스에 다른 부담을 주지 않고 특정 서비스와 호출 감시 서비스를 제공한다. 호출 스크리닝 에이전트(710)는 수신 전화 호출로부터 라인(750)상의 신호 전송 메시지들을 수신하고, 메시지들이 서비스 프로세서에 의해 처리되어야 하는지 또는 단순히 네트워크를 통해 라우팅되어야 하는지를 결정한다.
호출 스크리닝 에이전트(710)는 전화 호출을 부과하는 측의 호출 번호 또는 실시간으로 호출이 수신되는 측의 호출 번호의 데이터베이스 조사를 실행하여 결정하고, 그로 인해, 호출이 특정 서비스에 따르는지가 결정된다. 호출이 특정 서비스에 따르게 되면, 호출 스크리닝 에이전트는 특정 서비스를 가능케 하는 특정한 서비스 프로세서를 식별한다.
호출 스크린 에이전트(710)의 구조는 제 8 도에 도시되어 있다. 본 발명에 따라 유지, 구성 및 관리 기능들은 호스트 프로세서(810)에 의해 수행되고, 기본 통신과 질의 처리 동작들은 ASE들(815)의 어레이로 의해 실행된다. ASE들(805)의 어레이는 시스템 버스(805)를 통해 호스트 프로세서(810)에 접속된다. 통신 라인들로부터의 메시지들은 ASE들(805)에 의해 수신 및 처리된다. 통신 처리는 통신 라인들(820)들과의 메시지 신호 전송 패킷들의 수신 및 전송을 포함한다. 질의 처리는 특별한 서비스가 적용될 수 있는지를 지시하는 고객 데이터베이스들을 포함하는 복수의 랜덤 액세스 메모리(RAM) 디스크(825)들에 ASE들(805)을 인터페이스하는 것을 포함한다. 통신 처리와 질의 처리를 실행하는 마이크로코드는 기능적으로 분할되고 개별 ASE들 상에 위치한다.
ASE(805)들은 통신 라인(820)들로부터 직접 신호 전송 메시지들을 수신하고, 메시지들에 필요한 저-레벨 처리를 실행한다. ASE들(805)에 의해 수행되는 처리들중에는 고객 데이터베이스를 포함하는 디스크들(825)내의 호출(calling party) 또는 피호출(called party)에 대응하는 데이터를 검사하는 과정이 포함된다.
데이터베이스는 해시된 검사(hashed look-up)를 통해 질의 처리를 실행하는 ASE에 의해 액세스된다. 질의 처리 ASE의 메모리 소자는 디스크 블럭들의 색인을 포함한다. 피호출의 전화 번호상의 호출의 전화번호가 해시되어 한 색인에 한 포인터를 생성한다. 색인은 원하는 레코드가 검색되는 개시점을 포함한다. 데이터베이스로부터 검색된 정보로부터, ASE는 호출이 특별한 서비스 프로세서에 관한 것인지 여부를 결정한다. 그렇지 않으면, 호출은 네트워크에 대해 재-라우팅(rerouted)된다. ASE들은 프로그래밍 가능하고, 이에 의해, 서비스들을 갱신하고 새로운 서비스들을 부가하는 ASE들의 구성의 변화를 허용한다. 이러한 처리 모두는 호스트 프로세서(810)에 의한 개입에 관계없이 가상적으로 일어날 수 있다.
본 발명의 메모리 시스템을 이용하여 구현될 수 있는 다른 응용은 전화 데이터 베이스를 역으로 질의할 수 있는 시스템이다. 이러한 질의 능력은 호출자 식별 및 다른 지능적인 전화 서비스들과 같은 서비스에 이용된다. 제 9 도는 호스트 프로세서(서버)로 실행되는 모든 다른 태스크들에 부가하여 이러한 전화 번호 정보를 제공할 수 있는 전화 번호 서버(900)의 구조를 예시한다. 이러한 서버는 객체들에 대한 디렉토리 정보를 관찰하고, 이 객체들을 처리하여 ASE들과 상호 작용한다. 이는 새로운 객체를 ASE들에 공급하거나 ASE 등으로부터 기억된 객체의 검색을 요구할 수 있다. 또한, ASE들은 객체들을 유지하며, 이 대상들은 고객 이름, 주소, 시, 국가, 우편 번호 및, 전화 번호를 포함하는 디렉토리 레코드들이다.
지능 메모리내에서 내부적으로는, ASE(915)가 각각의 디스크(910)와 연관되고, 이 디스크에 포함된 데이타에 색인을 붙이는 역할을 한다. 이러한 색인 처리는 호스트 프로세서(920)로부터 전화 번호를 수신하고, 이 번호를 우측 ASE에 라우팅하며, 우측 메모리 페이지를 선택하고, 메모리 색인 검사 및 데스크 블럭 검색을 실행하는 것을 포함한다. 호스트 프로세서(920)는 서버(900)의 호출의 전화 번호에 대응하는 데이터를 라인(925)을 통해 주 서버 역할을 하는 ASE(930)로 전송한다. 서버 ASE(930)는 전화 번호 데이터 및 해당 고객 정보를 포함하는 디스크(910)와 연관된 워커(worker) ASE(915)로 전화 번호 데이터를 보낸다. 디스크(910)는 검사테이블을 통해 전화 번호 데이터를 식별하고, 해당 고객 정보를 검색한다. 검색된 고객 정보는 네트워크(도시되지 않음)의 정보를 피호출에 전송하는 워커 ASE(915)와 서버 ASE(930)을 통해 호스트 프로세서(920)로 전송된다.
본 발명의 숙련자들이라면, 비록 본 명세서에 명시적으로 개시되거나 기술되지 않았더라도, 본 발명의 범위 및 사상에 속하고 본 발명을 구체화한 많은 다양한 대안적인 장치들을 고안할 수 있음을 이해 할 것이다.
제 1 도는 하나의 메모리를 포함하는 주변 장치와 두 개의 프로세서들을 포함하는 종래 기술의 장치를 도시한 도면.
제 2 도는 본 발명의 원리들에 따른 컴퓨터 시스템의 일반화된 블럭도.
제 3 도는 제 2 도의 메모리 시스템의 보다 상세한 다이어그램.
제 4 도는 메모리 모듈내의 메모리 시스템(20)의 ASE 유닛들을 상호 접속하는 네트워크를 위한 하나의 구현을 도시한 도면.
제 5 도는 ASE 유닛의 블럭도.
제 6 도는 본 발명에 따른 메모리 시스템을 포함하는 인터넷 프로토콜 라우터(internet protocol router)를 도시한 도면.
제 7 도는 본 발명의 메모리 시스템을 포함하는 호출 스크리닝 및 검출 시스템(call screening and detection system)의 블럭도.
제 8 도는 제 7 도의 호출 스크리닝 에이전트(call screening agent)의 구조를 설명하는 도면.
제 9 도는 본 발명의 메모리 시스템을 포함하는 역 질의 전화 서버(inverse query telephone server)를 설명하는 도면.
* 도면의 주요부분에 대한 부호의 설명 *
10, 11 : 프로세서 17, 18 : 메모리
21, 22, 23 : 메모리 모듈 30 : 처리 소자
47 : 백-엔드 포트(back-end port) 620 : 헤더
710 : 호출 스크리닝 에이전트 810 : 호스트 프로세서

Claims (6)

  1. 두 개 또는 그 이상의 능동 기억 소자들을 포함하는 메모리 시스템으로서, 상기 두 개 또는 그 이상의 능동 기역 소자들은 어레이로 배열되고, 상기 능동 기억 소자들 중 적어도 하나는:
    메모리 소자와;
    상기 메모리 소자와 연관된 처리 소자로서, 상기 메모리 소자는 특정 기능을 구현하는데 사용되는 가변 길이 명령들을 수신 및 기억할 수 있는, 상기 처리 소자와;
    실행 시간에 상기 가변 길이 명령들을 상기 메모리 소자에 다운로딩하기 위한 수단과;
    상기 처리 소자를 호스트 프로세서에 접속하기 위한 제 1 포트와;
    상기 처리 소자를 주변 장치(peripheral)에 접속하기 위한 백-엔드 포트(back-end port)로서, 이에 의해, 상기 처리 소자는, 상기 호스트 프로세서에 의한 개입에 관계없이, 상기 주변 장치와 상기 능동 기역 소자 사이에 교환되는 데이터에 대한 저-레벨 처리 동작들을 실행하는, 상기 백-엔드 포트와;
    상기 적어도 하나의 능동 기억 소자를 적어도 하나의 다른 능동 기억 소자에 접속하기 위한 수단을 포함하는, 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 능동 기억 소자는, 상기 다른 능동 기억 소자들의 메모리 소자들에 기억된 데이터에 대한 특정 처리들의 수행에, 상기 다른 능동 기억 소자들을 참가(enlist)시키도록 상기 어레이에 포함된 다른 능동 기억 소자들의 처리 소자들과 통신하기 위한 수단을 더 포함하는, 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 가변 길이 명령들을 호출(invoke)하기 위해 능동 기억 소자의 상기 처리 소자에 패킷을 전송하기 위한 수단을 더 포함하는 메모리 시스템.
  4. 제 3 항에 있어서,
    제 2 능동 기억 소자에 포함된 가변 길이 명령들을 호출하기 위하여 제 1 능동 기억 소자에 의해 수신된 패킷을 상기 제 2 능동 기억 소자에 전달하기 위한 수단을 더 포함하는 메모리 시스템.
  5. 컴퓨터 시스템에 있어서,
    호스트 프로서서와,
    어레이로 배열된 두 개 또는 그 이상의 능동 기억 소자들을 포함하는 메모리로서, 각각의 능동 기억 소자는 메모리 소자와 상기 메모리 소자에 연관된 처리 소자를 포함하고, 상기 메모리 소자는 하나 또는 그 이상의 기능들을 구현하는데 사용되는 가변 길이 명령들을 수신 및 기억할 수 있고, 상기 호스트 프로세서는 실행시간에 상기 가변 길이 명령들을 상기 메모리에 다운로딩하는, 상기 메모리와,
    적어도 하나의 주변 장치와,
    상기 처리 소자를 상기 호스트 프로세서에 접속하기 위한 제 1 포트와,
    상기 처리 소자를 상기 주변 장치들 중 적어도 하나에 접속하기 위한 백-엔드 포트로서, 상기 처리 소자는, 상기 제 1 포트에 대한 상기 호스트 프로세서의 접속과 관계없는 버스를 통해 상기 주변 장치로부터 데이터를 수신하는, 상기 백-엔드 포트와,
    상기 가변 길이 명령들을 호출하기 위해 상기 처리 소자에 패킷을 전송하기 위한 수단으로서, 상기 호출된 가변 길이 명령들은, 상기 호스트 프로세서에 의한 개입에 관계없이, 상기 주변 장치와 상기 처리 소자 사이에 교환되는 데이터에 대한 저-레벨 동작들을 수행할 수 있는, 상기 전송 수단을 포함하는 컴퓨터 시스템.
  6. 메모리 어레이를 형성하도록 상호 접속되고 버스 인터페이스에 더 접속된 하나 또는 그 이상의 지능 메모리 소자들을 포함하는 메모리 모듈에 있어서,
    각각의 메모리 소자는,
    상기 지능 메모리 소자들 중 소자들 사이의 통신을 지정하기 위한 스위칭 수단과,
    데이터를 기억하기 위한 수단으로서, 상기 기억 수단은 상기 버스 인터페이스를 통해 데이터를 전송 및 수신할 수 있는, 상기 데이터 기억 수단과,
    하나 또는 그 이상의 기능들을 구현하는데 사용되는 가변 길이 명령들을 수신 및 기억할 수 있는 프로그램 메모리와,
    실행 시간에 상기 가변 길이 명령들을 상기 프로그램 메모리에 다운로딩하기 위한 수단과,
    메시지의 수신에 응답하여 상기 가변 길이 명령들을 실행하기 위한 상기 프로그램 메모리와 연관된 처리 수단과,
    주변 장치를 상기 처리 수단에 직접 접속하기 위해 상기 버스 인터페이스 이외의 인터페이스를 제공하는 백-엔드 포트로서, 이에 의해, 상기 처리 소자는, 상기 호스트 프로세서에 의한 개입에 관계없이, 상기 주변 장치와 상기 메모리 소자사이에 교환되는 데이터에 대한 저-레벨 처리 동작들을 실행하는, 상기 백-엔드 포트를 포함하는 메모리 모듈.
KR1019950008738A 1994-04-22 1995-04-14 메모리시스템,컴퓨터시스템및,메모리모듈 KR100379342B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23152894A 1994-04-22 1994-04-22
US231,528 1994-04-22

Publications (2)

Publication Number Publication Date
KR950033863A KR950033863A (ko) 1995-12-26
KR100379342B1 true KR100379342B1 (ko) 2003-07-18

Family

ID=22869616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950008738A KR100379342B1 (ko) 1994-04-22 1995-04-14 메모리시스템,컴퓨터시스템및,메모리모듈

Country Status (5)

Country Link
US (1) US5590370A (ko)
EP (1) EP0679998A1 (ko)
JP (1) JP3554605B2 (ko)
KR (1) KR100379342B1 (ko)
CA (1) CA2145106C (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US6938097B1 (en) * 1999-07-02 2005-08-30 Sonicwall, Inc. System for early packet steering and FIFO-based management with priority buffer support
JP2001184303A (ja) * 1999-12-22 2001-07-06 Nec Corp 可変長情報データアクセス方式
US20050240726A1 (en) * 2004-04-27 2005-10-27 Hitachi Global Storage Technologies Netherlands B.V. Synergistic hybrid disk drive
US8121114B2 (en) * 2009-02-12 2012-02-21 Cisco Technology, Inc. Prevention of voice over IP spam
US8228903B2 (en) * 2007-07-20 2012-07-24 Cisco Technology, Inc. Integration of VoIP address discovery with PBXs
US8204047B2 (en) * 2007-07-20 2012-06-19 Cisco Technology, Inc. Using PSTN reachability to verify caller ID information in received VoIP calls
US8223755B2 (en) * 2007-07-20 2012-07-17 Cisco Technology, Inc. Node reputation based on knowledge of PSTN calls
US8228904B2 (en) * 2007-07-20 2012-07-24 Cisco Technology, Inc. Using PSTN reachability in anonymous verification of VoIP call routing information
US8274968B2 (en) * 2007-07-20 2012-09-25 Cisco Technology, Inc. Restriction of communication in VoIP address discovery system
US8072967B2 (en) * 2007-07-20 2011-12-06 Cisco Technology, Inc. VoIP call routing information registry including hash access mechanism
US8228902B2 (en) 2007-07-20 2012-07-24 Cisco Technology, Inc. Separation of validation services in VoIP address discovery system
US8199746B2 (en) 2007-07-20 2012-06-12 Cisco Technology, Inc. Using PSTN reachability to verify VoIP call routing information
US8223754B2 (en) * 2009-02-09 2012-07-17 Cisco Technology, Inc. Auto-configured voice over internet protocol
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US8930618B2 (en) 2010-08-24 2015-01-06 Futurewei Technologies, Inc. Smart memory
US10089043B2 (en) 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61125664A (ja) * 1984-11-22 1986-06-13 Hitachi Ltd ネツトワ−クシステムにおけるメモリ管理方式
US4949245A (en) * 1988-10-21 1990-08-14 Modular Computer Systems, Inc. Intermediate memory system for connecting microcomputers to a rotating disk memory
US5134711A (en) * 1988-05-13 1992-07-28 At&T Bell Laboratories Computer with intelligent memory system
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
JPH0689255A (ja) * 1992-09-07 1994-03-29 Hitachi Ltd 計算機システムと高速i/oデータ転送方法
JPH06103243A (ja) * 1992-09-22 1994-04-15 Hitachi Ltd 通信機能付きメモリシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4881164A (en) * 1983-12-30 1989-11-14 International Business Machines Corporation Multi-microprocessor for controlling shared memory
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
US4604683A (en) * 1984-12-10 1986-08-05 Advanced Computer Communications Communication controller using multiported random access memory
US4731737A (en) * 1986-05-07 1988-03-15 Advanced Micro Devices, Inc. High speed intelligent distributed control memory system
US4912633A (en) * 1988-10-24 1990-03-27 Ncr Corporation Hierarchical multiple bus computer architecture
US5235685A (en) * 1989-05-11 1993-08-10 Data General Corp. Interface bus with independent data, command and direct control sections for parallel transfer of information between host and intelligent storage
EP0398523A3 (en) * 1989-05-19 1991-08-21 Hitachi, Ltd. A device for data i/o and execution support in digital processors
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61125664A (ja) * 1984-11-22 1986-06-13 Hitachi Ltd ネツトワ−クシステムにおけるメモリ管理方式
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US5134711A (en) * 1988-05-13 1992-07-28 At&T Bell Laboratories Computer with intelligent memory system
US4949245A (en) * 1988-10-21 1990-08-14 Modular Computer Systems, Inc. Intermediate memory system for connecting microcomputers to a rotating disk memory
JPH0689255A (ja) * 1992-09-07 1994-03-29 Hitachi Ltd 計算機システムと高速i/oデータ転送方法
JPH06103243A (ja) * 1992-09-22 1994-04-15 Hitachi Ltd 通信機能付きメモリシステム

Also Published As

Publication number Publication date
JPH07306824A (ja) 1995-11-21
KR950033863A (ko) 1995-12-26
CA2145106C (en) 1999-08-24
JP3554605B2 (ja) 2004-08-18
EP0679998A1 (en) 1995-11-02
CA2145106A1 (en) 1995-10-23
US5590370A (en) 1996-12-31

Similar Documents

Publication Publication Date Title
KR100379342B1 (ko) 메모리시스템,컴퓨터시스템및,메모리모듈
EP0197103B1 (en) Load balancing for packet switching nodes
JP3605573B2 (ja) ネットワーク処理システムにおけるメモリ管理方法およびネットワーク処理システム
US6971098B2 (en) Method and apparatus for managing transaction requests in a multi-node architecture
US8346884B2 (en) Method and apparatus for a shared I/O network interface controller
US5864680A (en) Method and system for distributing data in a real time data imaging network
US4149240A (en) Data processing apparatus for highly parallel execution of data structure operations
US7158964B2 (en) Queue management
US20030007493A1 (en) Routing mechanism for static load balancing in a partitioned computer system with a fully connected network
EP0422782B1 (en) Communications architecture interface
US20030028515A1 (en) Proxy processing method
KR970024763A (ko) 가입자/서버 시스템의 다양한 프로토콜 메소드 콜을 다루기 위한 방법 및 장치
US5951654A (en) System for processing cooperation signals by storing and executing the control part of the signal separately from the data part using pointer to link the two parts
JPH04299758A (ja) ソフトウエア間通信のためのデータ交換装置
KR890702360A (ko) 패킷된 디지탈 정보의 전송방법 및 스위칭용 노드
CN101986271A (zh) 调度tcam查询和刷新消息的方法和装置
US5535334A (en) Fault-tolerant system-to-system communications system and method utilizing multiple communications methods to transfer a single message
CN104468401A (zh) 一种报文处理方法和装置
JPH0229849A (ja) コンピュータ、メモリシステム、情報蓄積装置
JP2946517B2 (ja) ルーティング方式およびルーティング表更新方式
US20240146621A1 (en) Communication node for data networks and busses
KR0146490B1 (ko) 홈위치 등록기 시스템에서의 데이타 통신방법
Asthana et al. A memory participative architecture for high performance communication systems
CN114827016B (zh) 切换链路聚合方案的方法、装置、设备及存储介质
JP2746089B2 (ja) ネットワークインタフェース選択システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130305

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 12