KR100982145B1 - 구성가능 어드레스 매핑의 방법 - Google Patents

구성가능 어드레스 매핑의 방법 Download PDF

Info

Publication number
KR100982145B1
KR100982145B1 KR1020057007810A KR20057007810A KR100982145B1 KR 100982145 B1 KR100982145 B1 KR 100982145B1 KR 1020057007810 A KR1020057007810 A KR 1020057007810A KR 20057007810 A KR20057007810 A KR 20057007810A KR 100982145 B1 KR100982145 B1 KR 100982145B1
Authority
KR
South Korea
Prior art keywords
protection
delete delete
request
module
service module
Prior art date
Application number
KR1020057007810A
Other languages
English (en)
Other versions
KR20050084639A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32176015&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100982145(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 소닉스, 인코퍼레이티드 filed Critical 소닉스, 인코퍼레이티드
Publication of KR20050084639A publication Critical patent/KR20050084639A/ko
Application granted granted Critical
Publication of KR100982145B1 publication Critical patent/KR100982145B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

온칩 시스템용 구성 가능 어드레스 매핑 및 보호 아키텍처의 방법과 장치 및 하드웨어가 설명되었다.
온칩, 어드레스, 매핑, 아키텍처

Description

구성가능 어드레스 매핑의 방법{A METHOD FOR CONFIGURABLE ADDRESS MAPPING}
기술분야
본 발명은 온칩 시스템 (on-chip systems) 에 관한 것이다. 보다 상세하게는, 본 발명은 온칩 시스템용 구성가능 어드레스 매핑과 보호 아키텍처에 대한 방법 및 장치와 하드웨어에 관한 것이다.
배경기술
대부분의 컴퓨터 및/또는 온칩 시스템용 동작 모델은 1이상의 프로세싱 유닛으로부터 1이상의 시스템 서비스 모듈로 리퀘스트 (request) 를 전송하는 것을 포함하고 있다. 프로세싱 유닛으로부터 리퀘스트 (즉, 명령) 를 수신하자마자, 서비스 모듈은 요구받은 대로 작업을 완료한다. 그 후, 서비스 모듈로부터 프로세싱 유닛으로의 복귀 응답이 있을 수 있다. 시스템에서 프로세싱 유닛과 서비스 모듈 두 가지 모두로 작동하는 구성요소를 갖는 것은 매우 일반적이다.
프로세싱 유닛과 서비스 모듈 사이의 리퀘스트와 응답을 전송하는 데에 여러 가지 다른 방법들이 이용될 수 있다. 리퀘스트를 전송하는 데 가장 흔히 이용되는 방법들 중 하나는 어드레싱 (플러스 보호 체킹) 에 의한 것이다. 예를 들어, 리퀘스트에 "목적지 어드레스 (destination address)" 와 "소스 보호 아이디 (source protection idenitification)" 를 붙인다. 목적지 어드레스는 서비스 모듈이 어디에 위치하는지 및/또는 리퀘스트를 서비스 모듈(들)에 어떻게 전송할 것인지를 알려준다. 소스 보호 아이디는 프로세싱 유닛을 식별하고 서비스 모듈이 리퀘스트를 실행해야 하는지, 또는 서비스 모듈로 리퀘스트가 전송될 수 있는지 여부를 판단함으로써 소스의 동일 여부에 따라 서비스 모듈에 선택적인 액세스를 제공하는 데 이용된다. 통상적으로, 트랜지스터 (종종 "게이트"라 함) 수와 어드레스 디코딩 및 보호 아이디 체크용 (예를 들어, 집적회로상의) 하드웨어 모듈때문에, 게이트 사이즈 (및 영역) 는 상대적으로 크다. 보다 많은 전력을 소모하는 부가 회로는 또한 이러한 동작 중 하드웨어 다이내믹 (즉, 구성가능함) 의 디코딩 및 체크를 위해 필요로 할 수도 있다. 특히, 더 작은 칩 다이 사이즈와 더 낮은 전력 소모의 요구가 높은 무선 장치의 경우, 높은 전력을 소모하는 어드레스 디코딩 및 보호 체크 모듈은 수용될 수 없다. 이것은 문제들을 제공한다.
도면의 간단한 설명
본 발명은 예를 통해 설명되고, 첨부한 도면상의 도면에 한정되는 것은 아니며, 도면에서 동일한 참조 부호는 유사한 엘리먼트를 나타낸다:
도 1은 본 발명의 방법과 장치가 구현될 수 있는 네트워크 환경에 대해 도시하고 있다.
도 2는 컴퓨터 시스템의 블록도이다.
도 3은 N개의 프로세싱 유닛, M개의 서비스 모듈, 어드레스 매핑과 보호 모듈, 및 리퀘스트-전송 모듈이 구비된 온칩 시스템을 블록도 형태로 나타낸 본 발명의 일 실시형태를 도시하고 있다.
도 4는 최적화된 어드레스 매핑 및 보호 하드웨어를 생성하는 데 있어서의 프로세스를 흐름도 형태로 나타낸 본 발명의 일 실시형태를 도시하고 있다.
도 5는 구성가능 어드레스 매핑 및 보호 아키텍처에 대한 하드웨어 구현을 블록도 형태로 나타낸 본 발명의 일 실시형태를 도시하고 있다.
도 6은 몇 가지 가능한 판독 전용, 판독-기입, 또는 액세스-불능 (non-accessible) 구성 파라미터에 대한 정의를 표 형태로 나타낸 본 발명의 일 실시형태를 도시하고 있다.
도 7은 몇 가지 가능한 액세스-불능 구성 파라미터에 대한 정의를 표 형태로 나타낸 본 발명의 일 실시형태를 도시하고 있다.
상세한 설명
구성가능 어드레스 매핑과 보호 아키텍처에 대한 방법 및 장치에 대하여 설명한다.
도 1은 설명되는 기술이 적용될 수도 있는 네트워크 환경 (100) 을 도시하고 있다. 네트워크 환경 (100) 은 S개의 서버들 (104-1 내지 104-S) 과 C개의 클라이언트 (108-1 내지 108-S) 를 연결시켜주는 네트워크 (102) 를 가지고 있다. 이하에서 보다 상세히 설명한다.
도 2는 도 1에 도시된 클라이언트 및/또는 서버들 중 임의의 것을 나타낼 수도 있는 컴퓨터 시스템 (200) 에 대해 블록도 형태로 도시하고 있다. 이하에서 보다 상세히 설명하기로 한다.
이 명세서에서 사용되는 IP라는 용어는 'Intellectual Property'를 나타낸다. IP라는 용어는 단독으로 사용될 수도 있으며, 또는 코어와 같이 기능성을 갖는 설계를 나타내는 다른 용어들과 함께 사용될 수도 있다. 예를 들어, 단락용 IP코어 또는 IP는 회로, 버스, 통신 링크, 마이크로프로세서 등으로 구성될 수도 있다. 또한 IP는 여러 가지 방법에 의해 구현될 수 있으며, 기타 집적회로상에서 제조될 수도 있다. 플러딩 (flooding) 이라는 용어는 인커밍 패킷이 복제되고 칩, 시스템 등의 대부분을 거쳐 모든 아웃고잉 경로상에서 송신되는 통신을 표시하는 데 사용된다.
이 명세서에서는, 온칩 시스템용 구성가능 어드레스 매핑과 보호 아키텍처에 대한 방법 및 장치와 온칩 시스템용 하드웨어에 대하여 설명한다. 본 발명의 일 실시형태에서는, 필요한 어드레스 매핑 및 보호 기능을 제공하는 회로가 하드웨어에 제공된다. 본 발명의 또 다른 실시형태는 최소한의 지정 매핑 및 보호만이 하드웨어로 구현되도록 제품 설계자로 하여금 설계시에 어드레스 매핑 및 보호 모듈을 구성할 수 있게 해준다. 따라서, 최종 게이트의 사이즈와 어드레스 매핑 및 보호 하드웨어 모듈의 전력 소모가 제품 사양에 의해 결정된다. 또한, 각 서비스 모듈에 대한 어드레스폭과 데이터 워드폭도 고려되어 서비스 모듈로의/로부터의 신호 와이어 수를 최소화시키는 데 이용될 수 있다. 이는 과도하게 설계되지 않는 하드웨어를 생성하여, 제품의 게이트수와 전력소모 조건을 용이하게 충족시킬 수 있다.
개시된 본 발명 "온칩 시스템용 구성가능 어드레스 매핑과 보호 아키텍처 및 하드웨어"는 다음을 제공할 수 있다:
1. 온칩 시스템용 집중형 구성가능 어드레스 매핑 및 보호 아키텍처.
2. 최종 어드레스 매핑 및 보호 하드웨어 모듈에 대한 전체 게이트 사이즈의 감소, 전력 소모의 감소, 및/또는 불필요한 신호 와이어의 제거를 유도할 수도 있는 구성 파라미터 세트.
3. 설계자가 설계시에 규격 언어를 사용하여 어드레스 매핑과 보호 하드웨어 모듈을 구성하고 최소화된 하드웨어를 구현시킬 수 있는 능력.
도 4는 최적화된 어드레스 매핑과 보호 하드웨어를 생성하는 데 이용될 수 있는 프로세싱 흐름을 도시하고 있다. 우선, 제품 설계자는 구성가능 아키텍처를 이해하여야 한다 (403). 아키텍처 (423) 는 어드레스 매핑구조에 대한 정의, 보호구조에 대한 정의, 구성 파라미터 세트에 대한 정의, 및 규격 언어에 대한 정의를 포함한다. 다음으로, 설계자는 제품의 요건을 토대로 최소의 하드웨어로 어드레스 매핑과 보호 모듈을 설계할 수 있다 (405). 설계자는 제품의 요건과 사용자 모델을 토대로, 예를 들어, 시스템의 서비스 모듈의 수, 서비스 모듈용 어드레스 영역의 수, 및 어드레스 영역에 관한 정보가 어떻게 이용될 것인지를 결정할 수 있어야 한다 (443).
다음으로, 설계자는 규격 언어를 사용하여 어드레스 매핑과 보호 하드웨어 모듈을 지정할 필요가 있다 (407, 425). 말미 (409) 에서, 설계사양을 입력으로 취하는 사후-프로세싱 툴이 사용되고 어드레스 매핑과 보호 하드웨어용의 최적화된 하드웨어 게이트 레벨 네트리스트 (427) 를 생성한다.
도 3은 상단의 N개의 프로세싱 유닛 (302-0, 302-1 내지 302-N), 및 하단의 M개의 서비스 모듈 (318-0, 318-1 내지 318-M) 이 구비된 온칩 시스템을 갖는 본 발명의 일 실시형태에 대한 블록도를 도시하고 있다. 시스템 중간에는 어드레스 매핑과 보호 모듈 (306) 이 있으며, 다음에 리퀘스트-전송 모듈 (314) 이 이어지는 어드레스 맵 (308) 과 보호 키 맵 (310) 이 도시되어 있다. 도 3은 시스템의 리퀘스트 전송측을 도시하고 있다 (즉, 리퀘스트측만 도시하고 복귀측은 미도시). 본 발명의 일 실시형태에서, 시스템의 사용 모델은 다음과 같다:
·리퀘스트가 (320-N과 같은) 프로세싱 유닛으로부터 어드레스 매핑과 보호 모듈 (306) 로 전송된다.
·어드레스 매핑과 보호 모듈 (306) 에서, "목적지 어드레스"와 "소스 보호 아이디"가 (304에 도시된 바와 같은) 리퀘스트로부터 추출된다. 서비스 모듈의 위치와 리퀘스트의 모듈로의 전송방법을 찾아내기 위해 어드레스가 디코딩되고 어드레스 맵 (308) 과 비교된다. 주어진 보호 아이디는 보호가 이를 허용하므로 리퀘스트가 서비스 모듈에 전송되어야 하는지의 여부를 판정하기 위해 보호 키 맵 (310) 에 대해 체크된다. 도 3에 도시되지는 않았지만, 리퀘스트 내 다른 가능한 필드는 "리퀘스트형 필드", "데이터 필드", (예를 들어, 버스트 데이터 스트림임을 나타내는) "데이터형 필드", 및 (예를 들어, 사용자가 이 필드를 이용하여 소유권을 제공하는 서브 리퀘스트 타입을 제공할 수 있는) "사용자 제공형 리퀘스트 정보"들이다.
·다음으로, (312 및 316에 도시된 것과 같은) 리퀘스트가 리퀘스트 전송 모듈 (314) 에 의하여 (318-2와 같은) 서비스 모듈로 전송된다.
전술한 온칩 시스템용 세그먼테이션 (segmentation) 및 어드레스 영역을 이용한 구성가능 어드레스 매핑 및 보호 아키텍처를 갖는 본 발명의 일 실시형태에 대하여 이하에서 설명한다. 개념적으로, 전체 온칩시스템을 위한 어드레스 공간은 R개의 어드레스 영역으로 분할될 수 있다. 시스템의 각 서비스 모듈은 다중 어드레스 영역을 가질 수도 있다. R개의 어드레스 영역들에 대한 1 로의 매칭의 복잡함을 줄이기 위해서, 다중 어드레스 영역은 하나의 어드레스 세그먼트로 그룹화될 수 있다. 시스템에서 세그먼트는 S개까지 있을 수 있다. 특정 서비스 모듈로 리퀘스트를 전송하기 위하여, 프로세싱 유닛은 모듈의 어드레스 영역 내에 있는 어드레스에 리퀘스트를 태그 (tag) 할 필요가 있다. 어드레스 영역에 관한 정보는 어드레스 맵 하드웨어에 저장되는 영역 레지스터에 보관된다. 어드레스 세그먼트에 관한 정보는 세그먼트 레지스터에 보관되며, 그 정보는 또한 어드레스 맵 하드웨어에 저장된다.
시스템에 서로 다른 보호키는 K개까지 있을 수 있다; 각 보호키는 보호 키 맵에 있는 보호키 레지스터에 보관된다. 각 어드레스 영역은 하나 이상의 보호키와 연관되어 있으며, 각 프로세싱 유닛은 하나 이상의 보호 아이디로 할당되어 있다. 리퀘스트가 프로세싱 유닛으로부터 전송되면, 리퀘스트는 프로세싱 유닛의 (도 5에 도시된 515와 같은) 보호 아이디에 태그된다. 리퀘스트의 목적지 어드레스가 디코딩되고 서비스 모듈의 어드레스 영역이 식별된 후, 리퀘스트를 서비스 모듈에 전송하는 것이 안전한지를 확인하기 위해 보호 아이디는 그 어드레스 영역과 연관된 보호키들에 대해 체크된다.
도 5는 전술한 어드레스 매핑과 보호 아키텍처에 대한 하드웨어 구현을 갖는 본 발명의 일 실시형태를 도시하고 있다. 도 5에서는, 리퀘스트가 (도 3의 304에 도시된 것과 같은) 목적지 어드레스 태그 및 보호 아이디 태그와 함께 리퀘스트가 도시되어 있다. 목적지 어드레스는 3개의 부분, 즉 세그먼트 (베이스) 어드레스부 (501a), 영역 (베이스) 어드레스부 (501b), 및 영역 내 오프셋 (501c) 을 포함한다. 어드레스 매핑 하드웨어는 S개의 세그먼트 레지스터 (503) 와 R개의 영역 레지스터 (예를 들어, 505a, 505b, 505c; 도 3에 도시된 바와 같이 영역 페이지는 더 많이 있을 수도 있음) 를 포함한다. 각 어드레스 세그먼트는 다중 어드레스 영역을 포함할 수도 있고, 즉, 각 세그먼트 레지스터와 연관된 하나의 페이지의 영역 레지스터를 갖는 것으로 도시되어 있다 (예를 들어, 페이지들 (505a, 505b 및 505c) 이 각각 세그먼트 레지스터 (0), 세그먼트 레지스터 (1), 및 세그먼트 레지스터 (2) 와 연관되어 있음). 또한, 도 5는 어드레스 세그먼트 (0) 가 5개의 영역 레지스터 (505a) 를 가지고 있음을 나타내고 있다.
또한, 리퀘스트의 세그먼트 어드레스는 세그먼트 레지스터 (509) 들 중 하나와 매칭시키는 데 이용되며, 영역 어드레스는 어드레스 맵에 저장된 영역 레지스터들 중 하나 이상과 매칭시키는 데 이용된다. 정상적인 경우, 두 개의 매칭 신호를 결합하면 한 개의 단일 매칭이 발생한다 (511). 바람직하다면, 이중 매칭과 매칭의 실패는 오류로 검출될 수도 있다.
단일 매칭이 발생하면, 영역과 연관된 보호 키 레지스터의 수가 복귀된다 (519) ; 그리고 목표 서비스 모듈에 대한 라우팅 정보도 복귀된다 (513). 보호 키 레지스터의 수 (519) 는 보호 키 맵 모듈 (517) 로부터의 관련없는 매칭들을 필터링하는 데 이용된다. 긍정 보안 양호 신호 (521) 는 리퀘스트가 서비스 모듈에 전송될 수 있다는 것을 나타낸다.
표 1은 정상적인 매칭 케이스 (즉, 단일 어드레스 매칭이 식별되고 보안체크도 양호), 및 에러 케이스의 조합 및 결과들의 개요를 보여주고 있다. 단일 매칭이 식별되면 목적지 서비스 모듈에 관한 (매칭된 영역 레지스터에 저장된) 정보가 다운스트림 모듈로 전송된다. 예를 들어,
·보호 키 아이디는 보안체크의 완료를 위하여 "보안 체크 양호"회로로 전송된다.
·목적지 서비스 모듈 데이터 워드 폭 및 물리적 목표 아이디 (물리적 목표 아이디는 서비스 모듈에 대한 물리적 위치 정보를 포함하고 있음) 는 리퀘스트 전송 모듈로 전송된다.
표 1

필드상의 매칭 및 체크

노멀 케이스

에러 케이스 1

에러 케이스 2

에러 케이스 3

리퀘스트의 세그먼트 (베이스) 어드레스

단일 매칭

단일 매칭

단일 매칭

이중 매칭

리퀘스트의 영역 (베이스) 어드레스

매칭된 세그먼트의 영역 레지스터 페이지상의 단일 매칭

매칭된 세그먼트의 영역 레지스터 페이지상의 단일 매칭

매칭된 세그먼트의 영역 레지스터 페이지상의 이중 매칭

무시

리퀘스트의 보호 아이디

양호

불량

무시

무시

결과

목적지 서비스 모듈에 대한 정보가 생성되며 리퀘스트 전송 모듈로 전송됨

보호 위반

영역 어드레스 맵에서 발견된 에러

세그먼트 어드레스 맵에서 발견된 에러
구성 파라미터와 레지스터 (플러스 각 유형의 레지스터의 레지스터 필드) 의 세트는 또한 설계자가 최소형 하드웨어로 어드레스 매핑과 보호 모듈을 설계하기 위해 그것들을 조절하는 것이 가능하도록 전술한 아키텍처에 대해 식별된다. 궁극적인 목적은 하드웨어 모듈의 게이트 사이즈, 전력 소모 및 신호 와이어를 감소시키는 것이다. 다음은 구성 파라미터, 그 정의, 및 그들이 하드웨어에 어떻게 영향을 줄 수 있는지에 대한 목록이다.
·DataWidth: 이 파라미터는 리퀘스트의 데이터 워드 사이즈를 나타낸다. 다른 프로세싱 유닛으로부터의 리퀘스트에 대해서는 다른 데이터 워드 사이즈가 허용될 수 있다. 그러나, 여기서는 단일 데이터 폭 파라미터만이 사용될 수 있고, 따라서 프로세싱 유닛으로부터의 리퀘스트는 동일한 데이터 워드 사이즈를 갖고 있다. 이 파라미터를 필요한 데이터 워드 사이즈에만 설정하게 되면 하드웨어 모듈의 게이트와 와이어를 줄일 수 있다.
·AddrWidth: 이 파라미터는 온칩 시스템에 대한 어드레스 태그 폭, 즉 어드레스 매핑의 크기를 나타낸다. 이 파라미터를 필요한 어드레스 폭에만 설정하면 하드웨어 모듈의 게이트와 와이어를 매우 많이 감소시킬 수 있다.
·NumSegments: 이 파라미터는 세그먼트 레지스터가 시스템에 얼마만큼 존재할 수 있는 지를 나타내고, 불필요한 세그먼트 레지스터를 제거하는데 이용된다.
·각 세그먼트 레지스터에 대하여:
SegmentSize 레지스터 필드: 이 필드는 세그먼트의 사이즈를 알려주며, 세그먼트 레지스터에 대한 비트수를 감소시키는 데 이용된다.
SegmentBase 레지스터 필드: 이 필드는 어드레스 세그먼트의 세그먼트 베이스 어드레스를 나타낸다.
·NumRegions: 이 파라미터는 영역 레지스터가 시스템에 얼마만큼 존재할 수 있는 지를 나타내고, 불필요한 영역 레지스터를 제거하는 데 이용된다.
·각 영역 레지스터에 대하여:
RegionSize 레지스터 필드: 이 필드는 어드레스 영역의 사이즈를 알려주며, 영역 레지스터에 대한 비트수를 감소시키는 데 이용된다.
RegionBase 레지스터 필드: 이 필드는 어드레스 영역의 영역 베이스 어드레스를 나타낸다.
RegionProtectionKeyRegisterNum (RPKRN) 레지스터 필드: 이 필드는 단일 매칭이 이 어드레스 영역상에 일어나는 경우 보안 체크 로직에 의하여 어느 보호 키 레지스터가 이용될 것인지를 알려준다. 이러한 유형의 다중 레지스터 필드가 존재할 수 있으나 여기서는 한 가지만 이용된다.
RegionDataWidth 레지스터 필드: 이 필드는 어드레스 영역과 링크되어 있는 서비스 모듈의 데이터 워드 폭을 알려준다. 그것은, 가능하다면, 서비스 모듈로 연결시키는 데이터 버스 와이어를 트리밍하는 데 이용될 수 있다. 그것은 또한 데이터 패킹 또는 언패킹이 필요한지 여부를 나타내는 데 이용될 수 있는데, 패킹 또는 언패킹이 리퀘스트 소스 프로세싱 유닛의 데이터 워드 사이즈가 리퀘스트 목적지 서비스 모듈의 데이터 워드 사이즈와 다를 경우 필요할 수도 있다.
RegionPhysicalTargetID (RPTID) 레지스터 필드: 이 필드는 어드레스 영역과 서비스 모듈간 물리적인 연결을 나타낸다. 이 물리적 연결은, 예컨대 (1) 리퀘스트를 서비스 모듈로 전송하기 위하여 리퀘스트 전송 모듈로 통과될 하드웨어 라우팅 정보; 또는 (2) 리퀘스트 전송 모듈이 신호를 어서트 (assert) 할 때, 리퀘스트가 서비스 모듈로 전송되도록 하는 하드웨어 신호 비트 위치일 수 있다.
RegionAddressSpace (RAS) 레지스터 필드: 이 필드는 서비스 모듈의 어드레스 영역이 더 분할되게 해준다.
RegionEnable 레지스터 필드: 이 필드는 이 영역 레지스터가 현 설계에 이용되는지 여부 또는 그 영역이 현재 이용가능한지 여부를 나타낸다.
·NumProtectionKeys: 이 파라미터는 보호키 레지스터가 시스템에 얼마만큼 존재할 수 있는 지를 나타내고 불필요한 보호키 레지스터를 제거하는 데 이용된다. 또한, 보호키의 수가 저장되어 있는 각 영역 레지스터의 비트를 절약할 수 있다.
·각 보호 키 레지스터에 대하여:
ProtectionKeyBitVector 레지스터 필드: 이 비트 벡터는, 이 보호키 레지스터를 가리키는 영역 레지스터에 의해 링크되어 있는 서비스 모듈에 어떠한 보호 아이디가 액세스할 수 있도록 허용되는지를 알려준다. 위치 N에 있는 비트 1 은 보호 아이디 (N) 가 붙여진 리퀘스트가 리퀘스트의 목적지 서비스 모듈에 액세스하는 데 양호하다는 것을 나타낸다.
·NumberProtectionIDs: 이 파라미터는 서로 다른 보호 아이디가 시스템에 얼마만큼 존재할 수 있는 지를 나타내고 ProtectionKeyBitVector 레지스터 필드의 불필요한 보호 키 비트를 제거하는 데 이용된다.
·Endianess: 이 파라미터는 큰 엔디아니스 또는 작은 엔디아니스가 아키텍처에 적용되는지를 알려주고, 즉 데이터 패킹/언패킹으로부터 어드레스 바이트 위치 및 데이터 바이트 시퀀스를 결정한다.
또한, 각 레지스터들의 레지스터 필드는 최소형 로직 설계가 영역 및 전력을 절약할 수 있는 하드웨어를 구성하는 데 적용될 수 있도록 다음 3 가지 처리 유형 중 하나가 되게 지정될 수 있다:
·Non-Accessible (NA) 레지스터 필드: 레지스터 필드는 파워온값에 접속되어 있으며 판독 또는 기입되는 것은 불가능하다.
·Read-Only (RO) 레지스터 필드: 레지스터 필드는 파워온값에 접속되어 있으며 동작 중에 소프트웨어로 볼 수 있어야 한다 (판독만 가능). 이 경우, 소프트웨어가 레지스터 필드의 액세스를 판독할 수 있도록 여분의 게이트가 필요하다.
·Read-Write (RW) 레지스터 필드: 레지스터 필드는 소프트웨어에 의하여 동적으로 판독되고 기입될 수 있다. 이러한 유형의 레지스터 필드의 경우, 소프트웨어가 변경될 수 있도록 (예를 들어, 플립플롭 및 게이트의 형태의) 임의의 회로가 필요하다.
또한, 각 레지스터 필드는 레지스터 필드의 네트리스트부가 최종 네트리스트 상위 레벨에 익스포트 (export) 되도록 "익스포트 상수 (EC: Exporting Constant)" 레지스터 필드로 지정될 수 있다. 이것은, 전체 칩 생산 프로세스 중 늦게, 제품이 요구하는 바대로 레지스터 필드의 파워온값들을 보다 용이하게 수동으로 수정할 수 있도록 해준다. 예컨대, 각 보호 키 레지스터의 ProtectionKeyBitVector 레지스터 필드는 "익스포트 상수" 필드로 선언될 수 있으며, 따라서 그것은 최종 보호키 맵이 제품의 생산 프로세스 늦게 칩으로 삽입될 수 있도록 해준다.
도 6 및 도 7은 2개의 거의 동일한 어드레스 매핑과 보호 구성을 도시하고 있다. 도 6상의 레지스터 필드가 RO, RW, 또는 NA 유형에 대한 것이나, 도 7의 경우 모든 레지스터 필드가 NA 유형에 대한 것이며, 비사용 영역 레지스터 (1) 는 제거되어 있다. 1차 추정으로부터, 도 7에서 절약된 플립-플롭 (flip-flops: 플롭이라고도 함) 의 수는 82이며, 도 3의 중심에 도시된 바와 같이, 어드레스 맵 (308) 과 보호키 맵 (310) 에는 플롭이 사용되지 않는다. (1) 하드웨어 모듈의 어드레스 폭이 20에서 17로 감소되고, (2) 보호 아이디의 수가 8로 다운 스캐일링되면, 부가 버퍼 레지스터 및 신호 와이어는 도 6의 경우에 대해 절약될 수 있다.
전술한 바와 같이, 규격 언어는 설계자가 제품에 대한 최소형 설계를 지정할 수 있게 제공될 필요가 있다. 본 발명의 일 실시형태로, 다음은 도 6에 도시된 예시적 사양에 대한 리스트이다:
Figure 112005023191779-pct00001
Figure 112005023191779-pct00002
Figure 112005023191779-pct00003
(도 6에서도 도시된) 앞 예의 경우, 2개의 세그먼트와 5개의 어드레스 영역이 존재하는데, 어드레스 영역 (1) 이 초기 시간 (즉, 영역 레지스터의 RegionEnable 필드가 "No"로 설정됨) 에서 작동되지 못하지만, 필드는 판독/기입이 가능하므로 구동 시간에서 재구성될 수가 있다. 두 개의 보호 키 레지스터가 존재하며 그 각각은 16비트의 비트벡터이다. 실시예는 또한 파워온시에 다음을 지정한다:
·리퀘스트 어드레스 폭은 20 비트이며 데이터 워드 사이즈는 16비트이다.
·4개의 서비스 모듈, 즉 ServiceModule (0,1,2,3) 이 있다.
·어드레스 영역 (0,1,2) 이 어드레스 세그먼트 (0) 에 존재하며 어드레스 0×00100, 0×01000과 0×0000, 및 그 각각은 사이즈 256바이트와 4k바이트, 및 16바이트를 기반으로 하고 있다. 영역 레지스터 1은 현재 시간에는 작동되지 못하나, 미래의 부가물로서 이용될 수 있다.
·어드레스 영역 3과 어드레스 영역 4는 어드레스 세그먼트 1에 존재하며 각각 어드레스 0×10000 및 0×11000에 기반을 두고 있고, 양자 모두 4k바이트의 사이즈를 갖는다.
·보호 아이디 (0,1,3,4,5, 및 6) (0×007B의 ProtectionKeyBitVector) 를 이용한 프로세싱 유닛으로부터의 리퀘스트는 리퀘스트 어드레스에 의존하여 ServiceModule (0, 1, 및 3) 로 진행할 수 있다. 리퀘스트 어드레스가 어드레스 영역 3의 범위에 있으면, 보호 아이디 (0, 2, 및 7) (0×0085의 ProtectionKeyBitVector) 를 이용한 프로세싱 유닛으로부터의 리퀘스트는 ServiceModule 2로 진행할 수 있다.
도 7에 도시된 설계의 경우, 그 사양은 다음과 같다:
Figure 112005023191779-pct00004
Figure 112005023191779-pct00005
Figure 112005023191779-pct00006
설명에서 언급한 바와 같이, 그리고 도 4에 도시된 바와 같이, 최종 단계 중 하나의 단계에서는 (위에서 나타낸 사양 텍스트와 같은) 특정 설계를 입력으로 취하는 사후-프로세스 툴이 사용되어 어드레스 매핑을 위한 최적화된 하드웨어 및 보호 하드웨어를 생성한다.
따라서, 개시된 것은 온칩 시스템용 구성가능 어드레스 매핑 방법 및 장치와 보호 하드웨어이다.
도 1를 다시 참조하면, 도 1은 설명된 기술이 적용될 수 있는 네트워크 환경 (100) 을 도시하고 있다. 네트워크 환경 (100) 은 S개의 서버 (104-1 내지 104-S) 와 C개의 클라이언트 (108-1 내지 108-C) 를 연결하는 네트워크 (102) 를 갖고 있다. 도시된 바와 같이, S개의 서버 (104-1 내지 104-S)와 C개의 클라이언트 (108-1 내지 108-C) 형태의 몇몇 시스템들이 네트워크 (102) 를 통해 서로 연결되어 있는데, 이들은, 예를 들어, 온칩 통신 네트워크일 수도 있다. 네트워크 (102) 는 인터칩 통신, 광학 네트워크, 인터넷, LAN, WAN, 위성링크, 파이버 네트워크 (fiber network), 케이블 네트워크, 또는 이들 및/또는 다른 것들의 조합 중 하나 이상일 수 있으며 또는 그들을 포함할 수도 있다. 서버는, 예를 들어, 칩상의 마스터장치; 메모리; 마이크로프로세서, 통신 인터페이스 등과 같은 IP코어; 디스트 저장 시스템; 및/또는 컴퓨터 리소스를 나타낼 수도 있다. 마찬가지로, 클라이언트는 컴퓨팅, 저장, 및 보기 능력을 가질 수 있다. 본 명세서에서 설명되는 방법 및 장치는 LAN, WAN, 시스템 버스, 온칩버스 등과 같은 로컬 또는 원격을 불문하고 실제 어느 유형의 통신 수단 또는 장치에라도 적용될 수가 있다. 클라이언트와 서버라는 용어를 사용하는 것은 누가 통신을 시작하고 (클라이언트) 누가 응답을 하는지 (서버) 를 특정하는 데 있어 명확성을 기하고자 함이다. 명확히 설명되지 않을 경우는 계층구조가 함축되어 있지 않기 때문이다. 두 기능 모두 단일 통신장치에 존재할 수 있는데, 이 경우 클라이언트-서버와 서버-클라이언트의 관계는 피어투피어 (peer-to-peer) 로 보일 수 있다. 따라서, 108-1 내지 104-S 와 같은 두 장치 모두 통신을 시작하고 통신에 응답할 수 있다면 그들의 통신은 피어투피어로 보일 수도 있다. 마찬가지로, 104-1 와 104-S, 및 108-1 과 108-C 사이의 통신은 그러한 통신장치 각각이 통신의 시작과 응답이 가능할 경우에 피어투피어로 보일 수 있다.
도 2를 다시 참조하면, 도 2는 도 1에 도시된 임의의 클라이언트 및/또는 서버를 나타낼 수도 있는 블록도 형태의 시스템 (200) 을 도시하고 있다. 블록도는 상위 레벨의 개념을 나타내며 다양한 방법과 아키텍처로 구현될 수가 있다. 버스 시스템 (202) 은 중앙 프로세싱 유닛 (CPU: 204), 롬 (ROM: 206), 램 (RAM : 208), 저장장치 (210), 디스플레이 (220), 오디오 (222), 키보드 (224), 포인터 (226), 여러 가지 입/출력 장치 (I/O: 228), 및 통신장치 (230) 를 상호연결한다. 버스 시스템 (202) 은, 예를 들어, 온칩 버스, 시스템 버스, PCI, AGP (Advanced Graphics Port), SCSI (Small Computor System Interface), IEEE (Institute of Electrical and Electronics Engineers) 표준 번호 1394 (FireWire), 유에스비 (USB) 등과 같은 버스들 중 하나 이상일 수 있다. CPU (204) 는 단일, 다중, 또는 분산 컴퓨팅 리소스일 수도 있다. 저장장치 (210) 는 CD, DVD, 하드디스크 (HD), 광학 디스크, 테입, 플래쉬, 메모리 스틱, 비디오레코더 등일 수 있다. 디스플레이 (220) 는, 예를 들어, CRT, LCD, 프로젝션 시스템, TV 등일 수 있다. 본 시스템의 실제 구현에 의존하여, 시스템은 블록도의 구성요소의 일부, 전부, 또는 더 많은 구성요소, 또는 구성요소의 재배열을 포함할 수 있다. 예컨대, 집적회로상의 온칩 통신 시스템은 디스플레이 (220), 키보드 (224), 및 포인터 (226) 가 부족할 수도 있다. 또 다른 예로, 예컨대 종래의 키보드 없는 무선 휴대용 장치로 구성될 수 있는 얇은 클라이언트가 있을 수 있다. 따라서, 도 2의 시스템에 대해 다양한 변형이 가능하다.
본 발명에 대한 설명과 이해를 위하여, 기술 및 접근방법의 설명을 위한 다양한 용어들은 당업자들에 의해 사용되는 것이어야 한다. 또한, 본 명세서에서는 설명의 목적으로 본 발명에 대한 철저한 이해를 제공하기 위하여 여러 가지 구체적인 사항들을 개시하였다. 그러나, 당업자에게는 본 발명은 이들의 구체적인 사항들 없이 실시가능하다는 것이 자명하다. 몇몇 예들에서, 본 발명을 불명확하게 하는 것을 피하기 위하여 다소 상세하게, 공지의 구조와 장치가 블록도 형태로 도시되어 있다. 이들 실시형태는 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 설명하였으며, 본 발명의 범위를 벗어남이 없이, 다른 실시형태도 이용될 수가 있으며 논리적, 기계적, 전기적 기타 다른 변경들도 이루어질 수 있는 것으로 이해되어야 한다.
설명 중 일부는 알고리즘, 및 예를 들어, 컴퓨터 메모리 내 데이터 비트상에서의 작동에 관한 기호 형태로 표현될 수도 있다. 이들 알고리즘 표현과 표시는 데이터 프로세싱 분야의 당업자가 그들의 작업 내용을 다른 사람들에게 가장 효율적으로 전달하기 위해 사용하는 수단이다. 일반적으로 본 명세서에서 알고리즘은 원하는 결과를 가져다 주는 논리정연한 일련의 동작으로 인식된다. 그 동작은 물리량에 대한 물리적 조작을 요하는 것들이다. 통상적으로, 반드시 필요한 것은 아니지만, 이러한 양들은 저장, 전송, 조합, 비교, 및 기타 조작이 가능한 전기적, 자기적, 또는 광학적 신호 형태를 취한다. 주로 공통적 사용의 이유로, 이들 신호를 비트, 밸류, 구성요소, 기호, 문자, 용어, 숫자 등이라 칭하는 것이 종종 편리하다.
그러나, 이들 모두와 이와 유사한 용어들은 적절한 물리량과 연관되어 있으며 이들 양에 적용되는 편리한 라벨들이다. 특히 설명들로부터 명확하게 기술되지 않았다면, 설명 전체에 걸쳐 "프로세싱" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "통신" 또는 "디스플레잉" 등과 같은 용어를 사용하는 설명은, 전자장치 또는 컴퓨터 시스템의 레지스터 및 메모리내의 물리 (전자) 량으로서 표시되는 데이터를 전자장치 및/또는 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 정보 저장장치, 전송 또는 디스플레이 장치내의 물리량으로서 유사하게 표시되는 다른 데이터로 조작하고 전송하는 컴퓨터 시스템, 또는 전자장치의 작동 및 프로세스에 대하여 언급한 것이라 할 수 있다.
본 발명은 명세서상의 동작을 수행하는 장치에 의하여 구현될 수 있다. 이 장치는 특히 필요한 목적을 위하여 구성될 수도 있고, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의하여 선택적으로 활성화되고 재구성되는 범용 컴퓨터를 포함할 수도 있다. 그러한 컴퓨터 프로그램은, 플로피디스크, 하드디스크, 광학 디스크, CD-ROM, DVD, 자기광학 디스크, ROM, RAM, EPROM (Electrically Programmable Read-Only Memories), EEPROM (Electrically Erasable Programmable Read-Only Memories), 플래시 메모리, 자기 또는 광학 카드 등, 또는 컴퓨터에 로컬적으로 또는 원격으로 전자적 명령을 저장하기에 적합한 다른 유형의 매체들과 같지만 이에 제한되지 않는 컴퓨터 판독이 가능한 저장매체에 저장될 수 있다.
본 명세서상의 알고리즘과 디스플레이는 본래 특정 컴퓨터나 다른 장치와 관련된 것은 아니다. 본 발명의 교시에 따른 프로그램에 여러 가지 범용 시스템이 이용될 수 있거나, 요구하는 방법을 수행하는 데 보다 특수한 장치를 구성하는 것이 편리하다. 예를 들어, 본 발명에 따른 방법 중 어느 것이라도, 하드웨어에 내장된 회로에서 범용 프로세서를 프로그래밍함으로써 또는 하드웨어와 소프트웨어의 조합에 의하여, 구현될 수 있다. 본 발명은, 휴대용 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍가능 가전제품, 디지털 신호 프로세싱 (DSP) 장치, 셋탑박스, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 (mainframe computors) 등을 포함하여, 전술한 것 이외의 컴퓨터 시스템 구성으로 실시될 수 있다. 또한 본 발명은 통신 네트워크를 통해 연결되어 있는 원격프로세싱 유닛에 의하여 작업이 수행되는 분산형 컴퓨팅 환경에서도 실시될 수 있다. 이 통신 네트워크는 사이즈에 의해 제한받지 않으며, 예를 들어, 온칩 통신에서부터 인터넷과 같은 WAN에 이르기까지 그 범위가 다양할 수 있다.
본 발명에 따른 방법은 컴퓨터 소프트웨어를 이용하여 구현할 수도 있다. 승인된 표준에 부합하는 프로그래밍 언어로 기입되면, 본 방법을 구현하도록 설계된 일련의 명령은 다양한 하드웨어 플랫폼상에서의 실행을 위해 그리고 다양한 운영 시스템과의 인터페이스를 위해 컴파일될 수가 있다. 전술한 바와 같이 본 발명의 교시를 구현시키는 데는 다양한 프로그래밍 언어를 사용할 수도 있다. 또한, 어떠한 조치를 취하거나 어떠한 결과를 가져오기 위한 것으로서 하나의 형태 또는 기타 다른 형태 (예를 들어, 프로그램, 프로시저, 애플리케이션, 드라이버 등) 로 소프트웨어를 언급하는 것은 당업자계에서는 일반적인 것이다. 그러한 표현은 컴퓨터에 의한 소프트웨어의 실행이 컴퓨터의 프로세서로 하여금 동작을 수행하거나 어떠한 결과를 초래한다고 표현하는 간단한 방법에 불과하다.
통신, 프로토콜, 애플리케이션, 실행, 메커니즘 등을 설명하는 데에 당업자에게는 다양한 용어와 기술이 사용될 수가 있다. 그러한 기술은 알고리즘 또는 수학적 표현 측면에서의 기술 실현에 대한 설명이다. 즉, 기술은 예컨대 컴퓨터상에서 코드를 실행시킴으로써 구현될 수 있지만, 그 기술에 대한 표현은 공식, 알고리즘 또는 수학적 표현으로서 보다 용이하고 간단하게 전달되고 통신된다. 따라서, 당업자라면 하드웨어 및/또는 소프트웨어에서의 구현이 두 개의 입력 (A와 B) 을 취하여 합 출력 (C) 을 낳는 덧셈 기능으로서 A+B=C 를 표시하는 블록을 인식할 수가 있다. 따라서, 설명으로 공식, 알고리즘, 또는 수학적 표현을 사용하는 것은 적어도 (본 발명에 따른 기술이 일 실시형태로서 구현되는 것은 물론 실시가 가능한 컴퓨터 시스템과 같은) 하드웨어 및/또는 소프트웨어에서의 하나의 물리적 실시형태를 갖는 것으로 이해되어야 한다.
장치 판독가능 매체는 정보를 기계 (예를 들어, 컴퓨터) 에 의해 판독이 가능한 형태로 저장 또는 전송하는 메커니즘을 포함하는 것으로 이해된다. 예컨대, 장치 판독가능 매체는 ROM; RAM; 자기 디스크 저장매체; 광학 저장매체; 플래시메모리장치; 전기, 광학, 음파, 또는 다른 형태의 전파 신호 (예를 들어, 반송파, 적외선 신호, 디지탈 신호 등) 등을 포함한다.
따라서, 온칩 시스템용 구성가능 어드레스 매핑과 보호 아키텍처의 방법 및 장치와 하드웨어에 대하여 설명되었다.

Claims (60)

  1. 서비스 모듈에 대한 제 1 어드레스 위치를 식별하는 구성 파라미터를 입력하는 단계;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 단계; 및
    상기 디바이스의 제 1 모듈로부터의 리퀘스트 (request) 가 상기 입력된 보호 파라미터 및 상기 서비스 모듈의 제 1 어드레스 위치에 기초하여 상기 서비스 모듈에 전달되고 실행되어야 하는지의 여부를 판정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 구성 파라미터는 어드레스 폭, 세그먼트의 수, 세그먼트 사이즈, 세그먼트 베이스, 및 영역의 수로 구성된 그룹 중에서 선택되는, 방법.
  3. 제 2 항에 있어서,
    상기 영역의 수는, 리퀘스트를 상기 서비스 모듈로 전달하기 위해 리퀘스트-전달 모듈로 전송되는 하드웨어 라우팅 정보를 포함하며,
    상기 위치는 하드웨어 신호 비트 위치를 포함하고, 리퀘스트-전달 모듈이 상기 하드웨어 신호 비트 위치에서 신호를 어서트 (assert) 하면, 리퀘스트는 상기 서비스 모듈로 전송되는, 방법.
  4. 제 1 항에 있어서,
    레지스터를 더 포함하는 회로를 구성하기 위한 데이터베이스를 생성하는 단계를 더 포함하며,
    상기 구성은 액세스-불능 (non-accessible) 레지스터, 판독 전용 레지스터, 및 판독-기입 레지스터로 구성된 그룹으로부터 선택된 동작 모드를 생성하고, 상기 레지스터의 구성은, 상기 데이터베이스에서 상기 레지스터의 네트리스트 부분이 네트리스트의 상위 레벨로 익스포트 (export) 되도록 익스포트 상수로서 상기 레지스터를 지정하는 단계를 더 포함하는, 방법.
  5. 서비스 모듈에 대한 제 1 어드레스 위치를 식별하는 구성 파라미터를 입력하는 수단;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 수단; 및
    상기 디바이스의 제 1 모듈로부터의 리퀘스트가 상기 입력된 보호 파라미터 및 상기 서비스 모듈의 제 1 어드레스 위치에 기초하여 상기 서비스 모듈에 전달되고 실행되어야 하는지의 여부를 판정하는 수단을 포함하는, 장치.
  6. 제 5 항에 있어서,
    영역의 수로부터, 상기 영역에 접속된 서비스 모듈의 라우팅 정보 및 위치를 포함하는 필드를 갖는 제 1 영역을 더 포함하는, 장치.
  7. 제 6 항에 있어서,
    상기 라우팅 정보는 리퀘스트를 상기 서비스 모듈로 전달하기 위하여 리퀘스트-전송 모듈에 전송되는 하드웨어 라우팅 정보를 포함하며,
    리퀘스트-전달 모듈이 하드웨어 신호 비트 위치에서 신호를 어서트하면, 리퀘스트는 상기 서비스 모듈로 전송되는, 장치.
  8. 제 6 항에 있어서,
    상기 위치는 하드웨어 신호 비트 위치를 포함하는, 장치.
  9. 제 5 항에 있어서,
    레지스터를 포함하는 회로를 구성하기 위한 데이터베이스를 생성하는 수단을 더 포함하며,
    상기 레지스터를 구성하는 것은, 상기 데이터베이스에서 상기 레지스터의 네트리스트 부분이 네트리스트의 상부 레벨로 익스포트되도록 익스포트 상수로서 상기 레지스터를 지정하는 것을 포함하며,
    상기 회로의 구성은, 상기 레지스터의 상기 구성 이후의 시간에 상기 네트리스트를 구성하는 것을 더 포함하는, 장치.
  10. 제 5 항에 있어서,
    상기 입력된 보호 파라미터 및 상기 구성 파라미터를, 집적회로 설계시에 설정된 소정의 기준에 대해 체크하는 수단을 더 포함하는, 장치.
  11. 제 10 항에 있어서,
    상기 소정의 기준은 보호 ID, 목적지 어드레스, 리퀘스트 유형, 데이터, 데이터 유형, 및 사용자 제공형 리퀘스트 정보로 구성되는 그룹 중에서 선택되는, 장치.
  12. 제 10 항에 있어서,
    상기 체크 수단은 세그먼트 어드레스를 하나 이상의 세그먼트 레지스터 필드에 대해 체크하고, 영역 어드레스를 하나 이상의 영역 레지스터 필드에 대해 체크하거나, 보호 키를 하나 이상의 보호 레지스터 필드에 대해 체크하거나, 복수의 소스 유닛으로부터 수신된 리퀘스트를 어드레스 맵 및 보호 키 맵에 대해 체크하는, 장치.
  13. 제 10 항에 있어서,
    상기 소정의 기준이 충족되면 부가 파라미터에 대한 리퀘스트를 생성하는 수단을 더 포함하는, 장치.
  14. 제 5 항에 있어서,
    제품 사양을 수신하는 수단; 및
    네트리스트를 생성하는 수단을 더 포함하는, 장치.
  15. 실행될 시에 제 1 항에 기재된 방법을 수행하는 명령이 저장된, 머신-판독가능 저장 매체.
  16. 제 1 항에 있어서,
    제품 사양을 수신하는 단계; 및
    최적화된 어드레스 매핑과 하드웨어 보호를 나타내는 네트리스트를 생성하는 단계를 더 포함하는, 방법.
  17. 제 5 항에 있어서,
    시스템에서의 제 1 어드레스 영역을 하나 이상의 보호 키와 연관시키는 수단; 및
    하나 이상의 가능한 보호 ID를 제 1 프로세싱 유닛에 할당하는 수단을 더 포함하는, 장치.
  18. 제 1 어드레스 위치를 서비스 모듈과 연관시키는 구성 파라미터를 입력하는 수단;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 수단;
    상기 디바이스의 제 1 모듈로부터의 리퀘스트가 상기 입력된 보호 파라미터에 기초하여 상기 서비스 모듈에 전달되고 실행되어야 하는지의 여부를 판정하는 수단; 및
    상기 리퀘스트가 상기 서비스 모듈로 전달되어 실행되어야 하는지 여부를 판정하기 위해, 상기 리퀘스트에 할당된 제 1 보호 ID를 하나 이상의 보호 키 레지스터들의 맵과 비교하는 수단을 포함하는, 장치.
  19. 제 18 항에 있어서,
    2개 이상의 가능한 보호 ID들을 갖는 제 1 프로세싱 유닛을 더 포함하는, 장치.
  20. 제 1 어드레스 위치를 서비스 모듈과 연관시키는 구성 파라미터들을 입력하는 구성 레지스터;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 보호 키 레지스터;
    상기 디바이스의 제 1 모듈로부터의 리퀘스트가 상기 입력된 보호 파라미터 및 상기 서비스 모듈의 상기 제 1 어드레스 위치에 기초하여 상기 서비스 모듈에 전달되고 실행되어야 하는지의 여부를 판정하는 보안 체크 로직; 및
    상기 리퀘스트에 연관된 제 1 보호 ID를 상기 서비스 모듈의 제 1 어드레스 위치와 매칭시킬 경우, 보호 키 레지스터가 상기 보안 체크 로직에 의해 사용되도록 상기 보안 체크 로직을 지시하는 소프트웨어 데이터베이스의 제 1 필드를 포함하는, 장치.
  21. 제 1 어드레스 위치를 서비스 모듈과 연관시키는 구성 파라미터들을 입력하는 구성 레지스터;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 보호 키 레지스터;
    상기 디바이스의 제 1 모듈로부터의 리퀘스트가 상기 입력된 보호 파라미터 및 상기 서비스 모듈의 상기 제 1 어드레스 위치에 기초하여 상기 서비스 모듈에 전달되고 실행되어야 하는지의 여부를 판정하는 보안 체크 로직; 및
    상기 리퀘스트와 관련된 보호 ID들이, 제 1 보호 키 레지스터를 지적하는 영역 레지스터에 의해 링크된 하나 이상의 서비스 모듈들에 액세스하게 허용되도록 상기 보안 체크 로직을 지시하는 비트 벡터를 포함하는, 장치.
  22. 제 5 항에 있어서,
    보호 키 레지스터들의 제 1 필드는, 상기 제 1 필드가 판독가능/기입가능하기 때문에 구동-시간에 재구성될 수 있는, 장치
  23. 실행될 시에 제 5 항에 기재된 장치를 생성하는 명령이 저장된, 머신-판독가능 저장 매체.
  24. 제 1 어드레스 위치를 서비스 모듈과 연관시키는 구성 파라미터을 입력하는 레지스터들의 제 1 세트;
    디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호키들 및 상기 디바이스의 모듈을 위해 존재할 수 있는 다수의 상이한 보호 ID들로 구성된 그룹으로부터 선택된 보호 파라미터를 입력하는 레지스터들의 제 2 세트; 및
    상기 디바이스의 제 1 모듈로부터의 리퀘스트가 상기 레지스터들의 제 2 세트의 상기 입력된 보호 파라미터 및 상기 레지스터들의 제 1 세트의 상기 입력된 구성 파라미터에 기초하여 상기 서비스 모듈로 전달되고 실행되어야 하는지의 여부를 판정하는 비교기를 포함하며,
    상기 비교기는, 상기 리퀘스트가 상기 서비스 모듈에 전달되어 실행되어야 하는지의 여부를 판정하기 위해, 상기 리퀘스트에 할당된 제 1 보호 ID를 하나 이상의 보호 키 레지스터들의 맵과 비교하는, 장치.
  25. 실행될 시에 제 24 항에 기재된 장치를 생성하는 명령이 저장된 머신-판독가능 저장 매체.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
KR1020057007810A 2002-11-05 2003-11-03 구성가능 어드레스 매핑의 방법 KR100982145B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/288,973 US7266786B2 (en) 2002-11-05 2002-11-05 Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US10/288,973 2002-11-05

Publications (2)

Publication Number Publication Date
KR20050084639A KR20050084639A (ko) 2005-08-26
KR100982145B1 true KR100982145B1 (ko) 2010-09-14

Family

ID=32176015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007810A KR100982145B1 (ko) 2002-11-05 2003-11-03 구성가능 어드레스 매핑의 방법

Country Status (6)

Country Link
US (3) US7266786B2 (ko)
EP (1) EP1561175B1 (ko)
JP (1) JP4768990B2 (ko)
KR (1) KR100982145B1 (ko)
AU (1) AU2003287494A1 (ko)
WO (1) WO2004044681A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925540B2 (en) * 2002-05-02 2005-08-02 Intel Corporation Systems and methods for chassis identification
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
JP4526111B2 (ja) * 2003-12-19 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロコンピュータおよびデバッグ方法
US7358761B1 (en) * 2005-01-21 2008-04-15 Csitch Corporation Versatile multiplexer-structures in programmable logic using serial chaining and novel selection schemes
JP4346587B2 (ja) * 2005-07-27 2009-10-21 富士通株式会社 システムシミュレーション方法
US7694249B2 (en) * 2005-10-07 2010-04-06 Sonics, Inc. Various methods and apparatuses for estimating characteristics of an electronic system's design
EP1801700B1 (en) * 2005-12-23 2013-06-26 Texas Instruments Inc. Method and systems to restrict usage of a DMA channel
US8719526B2 (en) * 2006-01-05 2014-05-06 Broadcom Corporation System and method for partitioning multiple logical memory regions with access control by a central control agent
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US20080120082A1 (en) * 2006-11-20 2008-05-22 Herve Jacques Alexanian Transaction Co-Validation Across Abstraction Layers
US8020124B2 (en) * 2006-11-20 2011-09-13 Sonics, Inc. Various methods and apparatuses for cycle accurate C-models of components
US8631468B2 (en) * 2008-11-10 2014-01-14 Samsung Electronics Co., Ltd. Active access monitoring for safer computing environments and systems
US8190804B1 (en) * 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
US8789170B2 (en) * 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
KR101724590B1 (ko) * 2011-01-31 2017-04-11 삼성전자주식회사 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8713240B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8713234B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9805221B2 (en) * 2011-12-21 2017-10-31 Intel Corporation Incorporating access control functionality into a system on a chip (SoC)
US9740518B2 (en) 2012-09-12 2017-08-22 Nxp Usa, Inc. Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines
US9904802B2 (en) 2012-11-23 2018-02-27 Nxp Usa, Inc. System on chip
US9336411B2 (en) 2012-11-23 2016-05-10 Freescale Semiconductor, Inc. System on chip
EP3014818A4 (en) * 2013-06-28 2017-03-15 Intel Corporation A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc)
WO2015008112A1 (en) 2013-07-18 2015-01-22 Freescale Semiconductor, Inc. System on chip and method therefor
CN103543980B (zh) * 2013-11-07 2021-10-22 吴胜远 数字数据处理的方法及装置
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
US9690719B2 (en) 2014-09-11 2017-06-27 Nxp Usa, Inc. Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
WO2017168753A1 (ja) * 2016-04-01 2017-10-05 富士通株式会社 通信システムおよび通信方法
DE102016220639A1 (de) 2016-10-20 2018-04-26 Infineon Technologies Ag Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) * 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
US10318455B2 (en) * 2017-07-19 2019-06-11 Dell Products, Lp System and method to correlate corrected machine check error storm events to specific machine check banks
US11281810B1 (en) * 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US11886877B1 (en) * 2021-09-24 2024-01-30 Apple Inc. Memory select register to simplify operand mapping in subroutines

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665395A (en) * 1984-12-14 1987-05-12 Ness Bradford O Van Automatic access control system for vehicles

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3747946A (en) 1970-12-21 1973-07-24 R Edens Tool holders
US4298208A (en) 1980-01-31 1981-11-03 Erickson Tool Company Spring actuated chuck
US4814982A (en) * 1984-12-24 1989-03-21 General Electric Company Reconfigurable, multiprocessor system with protected, multiple, memories
US5838894A (en) 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5991895A (en) * 1995-05-05 1999-11-23 Silicon Graphics, Inc. System and method for multiprocessor partitioning to support high availability
CA2178440A1 (en) * 1995-06-07 1996-12-08 Robert W. Horst Fail-fast, fail-functional, fault-tolerant multiprocessor system
US6072944A (en) * 1995-09-08 2000-06-06 Iq Systems, Inc. Methods and apparatus for distributed processing and rapid ASIC development
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US6023565A (en) * 1996-03-29 2000-02-08 Xilinx, Inc. Method for configuring circuits over a data communications link
US5774647A (en) * 1996-05-15 1998-06-30 Hewlett-Packard Company Management of memory modules
US6209123B1 (en) * 1996-11-01 2001-03-27 Motorola, Inc. Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
US6006022A (en) * 1996-11-15 1999-12-21 Microsystem Synthesis, Inc. Cross-linked development and deployment apparatus and method
US6516456B1 (en) * 1997-01-27 2003-02-04 Unisys Corporation Method and apparatus for selectively viewing nets within a database editor tool
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US5995736A (en) 1997-07-24 1999-11-30 Ati Technologies, Inc. Method and system for automatically modelling registers for integrated circuit design
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US6367058B1 (en) * 1998-03-26 2002-04-02 Altera Corporation Partitioning using hardware
US6182193B1 (en) * 1998-05-28 2001-01-30 3Com Corporation Caching system using cache indexes for call group data of call requests in ATM network devices
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6311316B1 (en) * 1998-12-14 2001-10-30 Clear Logic, Inc. Designing integrated circuit gate arrays using programmable logic device bitstreams
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6484227B1 (en) * 1999-08-23 2002-11-19 Advanced Micro Devices, Inc. Method and apparatus for overlapping programmable address regions
US6519690B1 (en) * 1999-08-23 2003-02-11 Advanced Micro Devices, Inc. Flexible address programming with wrap blocking
US6330225B1 (en) * 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
US6543043B1 (en) * 2000-06-01 2003-04-01 Cadence Design Systems, Inc. Inter-region constraint-based router for use in electronic design automation
US7080011B2 (en) * 2000-08-04 2006-07-18 International Business Machines Corporation Speech label accelerators and techniques for using same
US7165094B2 (en) 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US6662251B2 (en) 2001-03-26 2003-12-09 International Business Machines Corporation Selective targeting of transactions to devices on a shared bus
US6785753B2 (en) 2001-06-01 2004-08-31 Sonics, Inc. Method and apparatus for response modes in pipelined environment
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
US7107374B1 (en) * 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
US6578117B2 (en) 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6976106B2 (en) 2002-11-01 2005-12-13 Sonics, Inc. Method and apparatus for speculative response arbitration to improve system latency
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7149829B2 (en) 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US20040210696A1 (en) 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
US7062695B2 (en) * 2003-05-23 2006-06-13 Lsi Logic Corporation Memory implementation for handling integrated circuit fabrication faults
WO2006031921A2 (en) * 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US7324922B2 (en) * 2005-10-26 2008-01-29 International Business Machines Corporation Run-time performance verification system
US20070162268A1 (en) * 2006-01-12 2007-07-12 Bhaskar Kota Algorithmic electronic system level design platform
US8516418B2 (en) * 2006-06-30 2013-08-20 Oracle America, Inc. Application of a relational database in integrated circuit design
US8032329B2 (en) 2008-09-04 2011-10-04 Sonics, Inc. Method and system to monitor, debug, and analyze performance of an electronic design

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665395A (en) * 1984-12-14 1987-05-12 Ness Bradford O Van Automatic access control system for vehicles

Also Published As

Publication number Publication date
WO2004044681B1 (en) 2004-11-18
WO2004044681A3 (en) 2004-09-23
JP2006505867A (ja) 2006-02-16
AU2003287494A8 (en) 2004-06-03
EP1561175A2 (en) 2005-08-10
US20040088566A1 (en) 2004-05-06
US7266786B2 (en) 2007-09-04
EP1561175A4 (en) 2008-12-24
EP1561175B1 (en) 2017-03-22
US20110067114A1 (en) 2011-03-17
US20060129747A1 (en) 2006-06-15
US8443422B2 (en) 2013-05-14
JP4768990B2 (ja) 2011-09-07
US7793345B2 (en) 2010-09-07
KR20050084639A (ko) 2005-08-26
AU2003287494A1 (en) 2004-06-03
WO2004044681A2 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
KR100982145B1 (ko) 구성가능 어드레스 매핑의 방법
TWI486810B (zh) 在狀態機晶格中之計數器操作
US10366009B2 (en) Methods and systems for handling data received by a state machine engine
US10929154B2 (en) Overflow detection and correction in state machine engines
US8020168B2 (en) Dynamic virtual software pipelining on a network on chip
KR101920956B1 (ko) 상태 기계에서의 검출을 위한 방법들 및 시스템들
JP6126127B2 (ja) ステートマシンにおけるルーティング用の方法およびシステム
US9063532B2 (en) Instruction insertion in state machine engines
US20090125703A1 (en) Context Switching on a Network On Chip
AU2014331142B2 (en) An asset management device and method in a hardware platform
US10019311B2 (en) Validation of a symbol response memory
US9135984B2 (en) Apparatuses and methods for writing masked data to a buffer
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
US20120239826A1 (en) System authorizing direct data transfers between memories of several components of that system
US8688608B2 (en) Verifying correctness of regular expression transformations that use a post-processor
US20130159591A1 (en) Verifying data received out-of-order from a bus
US7290085B2 (en) Method and system for flexible and efficient protocol table implementation
CN117155781A (zh) 数据处理器的交互方法、装置、设备及数据处理器
CN113886149A (zh) 可编程设备和云系统
CN116016395A (zh) 冗余切换方法、装置及网络设备
CN110807119A (zh) 人脸查重方法及装置
JPH02266448A (ja) データ処理装置

Legal Events

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

Payment date: 20130820

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190820

Year of fee payment: 10