KR100954661B1 - Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체 - Google Patents

Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR100954661B1
KR100954661B1 KR1020030005033A KR20030005033A KR100954661B1 KR 100954661 B1 KR100954661 B1 KR 100954661B1 KR 1020030005033 A KR1020030005033 A KR 1020030005033A KR 20030005033 A KR20030005033 A KR 20030005033A KR 100954661 B1 KR100954661 B1 KR 100954661B1
Authority
KR
South Korea
Prior art keywords
parameter
smbus
bus
data
aml
Prior art date
Application number
KR1020030005033A
Other languages
English (en)
Other versions
KR20030070819A (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 KR20030070819A publication Critical patent/KR20030070819A/ko
Application granted granted Critical
Publication of KR100954661B1 publication Critical patent/KR100954661B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • Alarm Systems (AREA)

Abstract

SM버스에 대한 액세스를 용이하게 하는 시스템이 제공된다. 이 시스템은 SM버스 이벤트를 식별하는 통지 요소와 SM버스 이벤트를 AML 이벤트 핸들러로 디스패치하는 드라이버를 포함한다. SM버스 이벤트 핸들링 방법도 제공된다. 이 방법은 SM버스 이벤트 통지를 수신하는 단계, SM버스 이벤트 통지를 식별하는 단계, SM버스 이벤트 통지를 AML 이벤트 핸들러로 디스패치하는 단계, 및 SM버스 이벤트 통지를 AML 코드로 핸들링하는 단계를 포함한다. 3-파라미터 동작 영역 판독과 3-파라미터 동작 영역 기입인, 2개의 새로운 ACPI 연산 코드가 본 발명에 따라 사용될 수 있다.
SM버스, AML 이벤트 핸들러, AML 코드, ACPI 연산 코드, 통지 요소

Description

SM버스에 대한 AML 액세스를 용이하게 하는 시스템과, SM버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체{SMBus Notifications}
도 1은 본 발명의 양태에 따라, SM버스 액세스를 용이하게 하는 시스템의 블록도.
도 2는 본 발명의 양태에 따라, SM버스 액세스를 용이하게 하고, 3-파라미터 판독과 기입을 사용하는 시스템의 블록도.
도 3은 본 발명의 양태에 따라, SM버스 이벤트 통지 핸들링을 용이하게 하는 시스템의 블록도.
도 4는 본 발명의 양태에 따라, SM버스 이벤트 통지 핸들링을 용이하게 하는 시스템의 제어 흐름을 설명하는 흐름도.
도 5는 본 발명에 양태에 의해 간략해진 AML 이벤트 핸들링 코드를 구현하기 위한 생산성 주기를 설명하는 설명도.
도 6은 본 발명의 양태에 따라, SM버스 이벤트 통지를 처리하는 방법을 설명하는 플로우 차트.
도 7은 본 발명의 양태에 따라, SM버스 이벤트 통지를 처리하는 방법을 설명하는 플로우 차트.
도 8은 본 발명이 채용될 수 있는 예시적인 오퍼레이팅 환경을 설명하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
110, 210 : AML 이벤트 핸들러
120, 220 : 드라이버
130, 230 : 통지 요소
140, 240 : SM버스
145, 155 : 이벤트
150, 250 : 디바이스
본 발명은 일반적으로 SM버스(System Management Bus) 이벤트 통지 핸들링에 관한 것으로, 보다 구체적으로 AML(ACPI Machine Language) 코드와 AML 이미지로 컴파일되는 ASL(ACPI Source Language) 코드로 SM버스 이벤트 통지를 핸들링하는 것 - ASL 코드가 내장형 컨트롤러 등의 하위레벨 하드웨어를 조작할 필요성을 제거하는 것에 관한 것이다.
ACPI 사양은 내장형 컨트롤러와의 인터페이스를 약술한다. SM버스는 시스템 관리 버스이다. SM버스는 퍼스널 컴퓨터 하드웨어(예를 들면, 에너지 효율적인 디바이스, ACPI(Advanced Configuration Power Interface) 환경에서 관리되기 쉬운 디바이스)에 대한 액세스에 사용된다. 통상적으로, SM버스는 ACPI 특정 내장형 컨트롤러 및 그 내장형 컨트롤러에 관련된 디바이스 드라이버를 통해 오퍼레이팅 시스템에 의해 액세스된다. 예를 들면, 오퍼레이팅 시스템과 AML 코드가 거의 동시에 SM버스를 액세스하고자 하는 경우, 동기화 문제(들)이 발생할 수 있다.
다음은 본 발명의 일부 양태들에 대한 기본적인 이해를 제공하기 위해 본 발명의 간단한 요약을 제시한다. 이 요약은 본 발명의 광범위한 개요가 아니다. 본 발명의 핵심적인/중요한 요소들을 확인하거나, 본 발명의 범위를 서술하도록 의도되지 않는다. 단지 후술될 보다 상세한 설명에 대한 서두로서 간단한 형식으로 본 발명의 일부 개념을 제시하고자 하는 것이다.
본 발명은 ACPI 특정 내장형 컨트롤러를 AML 코드로 직접 조작할 필요없이 SM버스 이벤트 통지의 수신을 용이하게 한다. SM버스 드라이버는 통지 인터럽트들을 수신하고 _Qxx 제어 메소드와 관련된 등록된 AML 이벤트 핸들링 코드를 호출한다. 이에 의해, 상위레벨의 AML 코드(예를 들면, ASL 소스 코드에 기초함)가 SM버스 이벤트 통지들을 핸들링하도록 사용될 수 있다.
배경 기술에서 언급한 바와 같이, ACPI 사양은 내장형 컨트롤러에 대한 인터페이스를 약술한다. ACPI 사양에 기재된 내장형 컨트롤러는 비효율적인 키보드 인터페이스에 채용된 프로그래밍 모델과 유사한 프로그래밍 모델을 사용하며, 1 바이트를 전송하기 위해 대략 하나의 인터럽트를 필요로 하는 인터럽트 인텐시브 접근(interrupt intensive approach)을 이용한다. 개선된 동작 영역 액세스 방식들을 채용하는 것은, SM버스 이벤트 통지들에 대한 액세스를 간단하게 하고, 이와 같은 이벤트 핸들링의 효율성을 증가시키며, 동기화 문제(들)를 감소시킨다. 예를 들면, 전반적인 컴퓨터 전력 효율성을 증가시키고 개시 및 종료 지연을 제거하도록 설계된 아키텍쳐에서는, 이와 같은 개선된 액세스 및 관련 효율성들이 사용될 수 있다. 또한, 이러한 개선된 액세스 및 관련 효율성들은 오퍼레이팅 시스템이 전력 관리 동작들을 조정하는 중요한 역할을 맡고, 시스템의 전력 상태 변화를 정의 및 핸들링하는 책임을 갖는 아키텍쳐에서 사용될 수 있다.
상기 및 관련된 목표들을 달성하기 위해, 본 발명의 임의의 예시적인 양태들은 다음의 설명과 첨부된 도면들에 따라 이하에 기재된다. 그러나, 이들 양태는 본 발명의 원리들이 채용될 수 있는 다양한 방식들 중 단지 소수만을 설명하고 있으며, 본 발명은 모든 이러한 양태들 및 그 등가물들을 포함하도록 의도된다. 본 발명의 다른 장점 및 진보적인 특징은, 도면을 참조하여 고려되는 경우, 이하 본 발명의 상세한 설명으로부터 자명해질 것이다.
본 발명은 도면을 참조하여 이하에 설명되고, 전반적으로 유사한 요소들을 언급하기 위해 유사한 참조 부호들이 사용된다. 이하의 설명에서는, 설명의 편의상, 본 발명의 전반적인 이해를 제공하기 위해 다수의 상세한 설명들을 개시한다. 그러나, 본 발명은 이들 상세한 설명이 없어도 행해질 수 있다는 것은 명백하다. 다른 예에는, 본 발명의 설명을 용이하게 하기 위해 공지된 구조들과 디바이스들이 블록도 형태로 도시되어 있다.
이 명세서에 사용될 때, "컴퓨터 구성 요소"라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 중 어느 것인 컴퓨터 관련 엔티티를 나타내는 것이다. 예를 들면, 컴퓨터 구성 요소는, 프로세서에서 실행되는 프로세스, 프로세서, 오브젝트, 실행가능파일, 실행 스레드(a thread of execution), 프로그램, 및 컴퓨터일 수 있지만 이에 한정되지 않는다. 설명에 있어서, 서버에서 실행되는 어플리케이션과 그 서버 둘다가 컴퓨터 구성 요소일 수 있다.
도 1은 SM버스 이벤트 통지들을 직접(예를 들면, ACPI 지정 내장형 컨트롤러를 채용하지 않고) 용이하게 핸들링하는 SM버스 액세싱 시스템(100)을 나타낸다. SM버스는 시스템 관리 버스(System Management Bus)이다. SM버스는 퍼스널 컴퓨터 하드웨어(예를 들면, 배터리들, 에너지 효율적인 디바이스들, ACPI 환경에서 관리되기 쉬운 디바이스들)로의 액세스를 위해 채용된다. 통상적으로, SM버스는 ACPI 특정 내장형 컨트롤러, 및 그 내장형 컨트롤러에 관련된 디바이스 드라이버들을 통해 오퍼레이팅 시스템에 의해 액세스된다. 이러한 디바이스 드라이버들은, ACPI 레지스터 인터페이스를 통해서 그리고 내장형 컨트롤러 통지 이벤트 시에 호출되는 표준 제어 메소드들을 정의함으로써, SM버스, 및 다른 구성 요소들과 인터페이스한다. _Qxx(xx=00-ff)로 정의된 내장형 컨트롤러 통지들은 단지 내장형 컨트롤러 디바이스의 범위 내에 배치될 수 있기 때문에, 동일한 세트의 제어 메소드들은 그들이 SM버스 디바이스 아래에만 위치되도록 요구함으로써 SM버스에 재사용될 수 있다. 이에 의해, 본 발명이 채용될 수 있는 하나의 환경에서는, SM버스 드라이버가 SM버스 경보들에 대한 제어 메소드들을 큐잉(queing)할 수 있으며, 그 메소드들은 SM버스 디바이스 아래에 _Qxx라는 이름으로 위치되고, xx는 경보를 전송하는 디바이스의 SM버스 어드레스의 16진 포맷이다.
ACPI는 오퍼레이팅 시스템 지시 전력 관리, 리소스 관리 및 시스템 구성을 용이하게 하는 시스템 보드와의 인터페이스를 정의하는 사양이다. ACPI는 시스템 보드가 자신의 디바이스 구성 및 오퍼레이팅 시스템과의 전력 제어 하드웨어 인터페이스를 설명하기 위한 표준 방식을 정의한다. ACPI는 표준 레지스터 인터페이스를 통해 ACPI 시스템에서의 하드웨어 조작을 용이하게 하는 "제어 메소드"를 제공한다. 제어 메소드들 중 일부(예를 들면, _Qxx 제어 메소드들)는 SM버스 이벤트 통지 수신 및 코드 핸들링 메소드의 호출을 용이하게 하기 위해 채용될 수 있다. ACPI 환경에서는, 시스템 보드 설계자가 필요한 레지스터 인터페이스들을 구현하고, 디바이스들과 그 제어 메카니즘들에 대한 정보를 제공하며, 이러한 정보는 기술표에 저장되어 있다.
ACPI 디바이스의 기능을 향상시키기 위해, 벤더(vender)는 드라이버에 의해 공급되는 동작 영역을 통해 ACPI BIOS와 통신하는 기능 드라이버(function driver)를 공급할 수 있다. ACPI 드라이버는 기능 드라이버에 의해 공급된 동작 영역 핸들러를 호출함으로써 동작 영역을 액세스할 수 있다. 동작 영역은, 다른 AML 데이터 오브젝트들처럼 핸들링될 수 있는 각종 크기의 필드들로 분할될 수 있고 하드웨어(예를 들면, SM버스, SM버스 컨트롤러)와의 통신을 용이하게 하는 데이터 오브젝트이다.
ACPI 동작 영역들을 통해 통신함으로써, BIOS의 AML 코드는 드라이버의 구성과 호스트 시스템에 의존하는 디바이스 특정 동작들을 호출할 수 있다. 종래, BIOS는 디바이스의 동작 영역에 있는 데이터를 액세스한다(판독 또는 기입). 그 후, 동작 영역을 액세스하기 위해, ACPI 드라이버는 기능 드라이버의 동작 영역 핸들러를 호출하고, 동작 영역 핸들러는 그 액세스를 위해 프로그램된 어떤 동작이라도 행하고 액세스와 관련된 정보를 돌려보낸다. ACPI는 3-파라미터 동작 영역 판독 및/또는 기입을 지정하지 않는다.
ACPI의 목표중 일부는 배터리 전력 관리, 긴 배터리 수명 및 열발생의 감소이다. 따라서, ACPI는 OSPM 환경에서 흔히 채용된다. OSPM은 오퍼레이팅 시스템 전력 관리(Operating System Power Management)이다. OSPM은 오퍼레이팅 시스템 레벨에서 디바이스 전력 관리를 제어하는 것에 관여한다. 오퍼레이팅 시스템은 시스템에 존재하는 디바이스들을 식별하고 식별된 디바이스들에 대한 적절한 디바이스 드라이버의 로딩을 용이하게 하기 위해 ACPI BIOS(Basic Input Output System)에 저장된 ACPI AML(ACPI Machine Language) 코드를 사용한다. ASL은 ACPI 소스 언어이다. ASL은 AML 코드와 AML 이미지들로 컴파일된다. AML은 ACPI 기계 언어이다. AML은 ACPI BIOS RAM(Random Access Memory)에 저장된다. AML은 AML 인터프리터(interpreter)에 의해 해석될 수 있는 의사코드 어셈블리 언어이다. AML 인터프리터는 AML 바이트 코드를 파싱(parsing)하고 실행한다. AML 인터프리터는 이름 공간 오브젝트(name space object)를 평가하고 AML 제어 메소드들을 실행한다. 제어 메소드는, 실행될 하나 이상의 AML 명령들을 포함하는, 소정의 다른 프로그래밍 언어의 함수(function)와 매우 유사한 일종의 이름 공간 오브젝트이고, 입력 파라미터(들)를 받아들일 수 있고 결과를 돌려보낸다. 이름 공간 오브젝트는 (변수와 같은) 단일 값, (데이터 구조와 같은) 데이터의 패키지로부터, 동작 영역 필드, 또는 제어 메소드에 이르기까지 광범위한 엔티티들일 수 있다. 디바이스 드라이버들은 디바이스 하드웨어를 액세스하고 전력 관리를 용이하게 하기 위해 ACPI AML 코드의 제어 메소드들(예를 들면, _Qxx 제어 메소드들)을 사용한다. 이러한 드라이버들은, 예를 들면, WDM(Windows driver model, I/O 서비스들에 대해 공통 아키텍쳐를 제공함) 드라이버들일 수 있다.
ACPI는 ACPI 특정 내장형 컨트롤러를 통해 오퍼레이팅 시스템과 SM버스 컨트롤러 간의 하드웨어와 소프트웨어 인터페이스를 정의했다. ACPI 사양은 내장형 컨트롤러에 대한 인터페이스를 약술한다. 일부 경우에서, ACPI 사양에 기재되어 있는 내장형 컨트롤러는, 키보드 인터페이스를 프로그램하는 것과 유사하게 프로그램되며, 이는 비효율적일 수 있다. ACPI 특정 내장형 컨트롤러는 단일 바이트를 전송하기 위해 대략 하나의 인터럽트를 이용하기 때문에 인터럽트 인텐시브이고 느리다. 개선된 동작 영역 액세스 메소드들에 의해, 해석된 AML이 아니라 본래의 기계 코드로 운영되는 디바이스 드라이버에 의해 SM버스 액세스가 행해지는 경우에 성능이 증가된다. 본 발명의 시스템 및 방법의 부가적인 이점은, AML 코드가 전형적으로 각 BIOS에 대한 많은 OEM들에 의해 여러번 기입되어야 하는 반면, 일반적으로 드라이버는 보다 보편적이라는 것이다.
내장형 컨트롤러는 (예를 들면, 배터리 수명 및/또는 전력 소비가 중요한 이동 환경에서) OEM(Original Equipment Manufacturer) 고유 구현을 지원하기 위해 사용되는 일반적인 수준의 마이크로 컨트롤러이다. 내장형 컨트롤러는 호스트 마이크로프로세서와의 인터페이스를 통해 복잡한 하위 레벨의 기능들을 행한다. ACPI는 오퍼레이팅 시스템 드라이버와 내장형 컨트롤러(예를 들면, 스마트 배터리용) 사이의 표준 하드웨어 및 소프트웨어 통신 인터페이스를 정의한다. 본 발명은, AML 코드를 드라이버에 인터페이스하는 것을 용이하게 하여, SM버스 컨트롤러의 액세스와 동기화의 세부사항들이 AML 코드보다는 드라이버에 의해 행해질 수 있다.
시스템(100)은 (SM버스(140)에 의해 발생된) 이벤트(145)를 식별하는 통지 요소(130)를 갖는 SM버스(140)을 포함한다. 이벤트(145)는 디바이스(150)에 의해 발생된 디바이스 이벤트(155)에 응답하여 통지 요소(130)에 의해 발생될 수 있다. 예를 들면, 배터리는 경보 신호를 SM버스(140)로 보낼 수 있다. 통지 요소(130)는 그 후 이벤트(145)를 발생할 수 있다. 이벤트의 발생은 _Qxx 제어 메소드를 큐잉하는 것을 포함할 수 있다. 통지 요소(130)는 그 용어가 여기에 정의된 대로의 컴퓨터 구성 요소이다. 따라서, 통지 요소(130)는 조건부 분기 기술, 인터럽트 벡터 테이블 기술, 패턴 매칭 기술 등을 포함하지만 이에 한정되지 않는 기술들에 의해 이벤트(155)를 분석할 수 있다.
통지 요소(130)는 이벤트(155)를 식별하고 드라이버(120)와 인터페이스한다. 드라이버(120)과 인터페이스하는 동안, 통지 요소(130)는 드라이버 호출(145)과 함께 상태 및/또는 데이터를 드라이버(120)로 보낼 수 있다. 그 상태는 SM버스 세그먼트와 관련될 수 있고, 예를 들면 이벤트를 발생시킨 디바이스 및 이벤트의 타입을 식별할 수 있다. 데이터 또한 SM버스 이벤트와 관련될 수 있고, 이벤트와 관련된 정보(예를 들면, 시간, 디바이스, 이벤트의 타입)를 제공할 수 있다. 드라이버(120)는 드라이버 호출(145)을 수신하고 SM버스 이벤트를 AML 이벤트 핸들러(110)로 디스패치한다.
도 2를 참조하여, SM버스(240)와 관련된 버퍼(260)를 액세스하기 위해 3-파라미터 버퍼 판독 메소드(270) 및/또는 3-파라미터 버퍼 기입 메소드(280)를 채용한 SM버스 이벤트 핸들링 시스템(200)에 대해 설명한다. 시스템(100)과 마찬가지로, 시스템(200)은 디바이스(250)와 관련된 SM버스 이벤트(245)를, AML 이벤트 핸들링 코드(210)를 호출하는 드라이버(220)로 디스패치하는 통지 요소(230)를 갖는 SM버스(240)를 포함한다.
AML 이벤트 핸들러(210)에 의해 행해지는 이벤트 핸들링 작업들은 3-파라미터 판독(270) 및/또는 3-파라미터 기입(280)을 사용함으로써 간단해지고 보다 효율적으로 된다. 이들 3-파라미터 메소드들은 상태와 각종 크기의 데이터 블록들을 전송하기 위해, 버퍼(260)(예를 들면, 동작 영역)를 액세스한다. 동작 영역은, 다른 AML 데이터 오브젝트들처럼 취급될 수 있는 각종 크기의 필드들로 분할될 수 있고 하드웨어(예를 들면, SM버스, 메모리 또는 입/출력(I/O) 포트들)와의 통신을 용이하게 하는 데이터 오브젝트이다. SM버스를 액세스하는 데 필요한 동작 영역의 타입은 BufferAcc 동작 영역이다. SM버스와의 인터페이스는 동작 영역들이 사용되는 다른 리소스(예를 들면, 메모리 및 I/O 포트)들에 대한 인터페이스보다 복잡하기 때문에, BufferAcc 액세스 타입은 ACPI에 의해 정의되었다. BufferAcc 동작 영역들은, 판독 및 기입 동작 둘다를 위한 기능 드라이버의 동작 영역 핸들러와 AML 환경 사이에서 양방향으로 전체 버퍼를 전송하도록 설계되었다. 그러나, "저장(Store)"과 같은 통상의 AML 연산 코드들은 동작 영역으로부터 또는 동작 영역으로, 한 방향으로만 데이터를 패스하도록 설계되어 있다. 본 발명을 채용함으로써, BufferAcc 동작 영역은 3-파라미터 Buffer_Acc_Read 메소드를 통해 판독될 수 있고, 3-파라미터 Buffer_Acc_Write 메소드에 의해 기입될 수 있으며, 제1 파라미터는 동작 영역 핸들러로 패스되기 전의 버퍼의 초기 내용이고, 제2 파라미터는 액세스되고 있는 동작 영역 핸들러에 대한 레퍼런스이고, 제3 파라미터는 동작 영역 핸들러에 의해 반환되는 버퍼를 수신하는 버퍼이다. SM버스와 관련된 BufferAcc 동작 영역에의 판독과 기입은 SM버스 드라이버(예를 들면, 드라이버(220))로의 호출을 트리거할 수 있다.
3-파라미터 버퍼 판독(270)의 일례는 SM버스와 관련된 동작 영역을 액세스하는 컴퓨터 요소에 의해 채용되는 초기 데이터를 보유하는 제1 파라미터를 포함한다. 이러한 초기 데이터는, 예를 들면, 동작 영역이 판독되는 방법, 판독되는 시간, 판독되는 순서 등을 제어할 수 있다. 3-파라미터 버퍼 판독(270)의 다른 예는 데이터가 판독될 SM버스와 관련된 동작 영역에 대한 레퍼런스인 제2 파라미터를 포함한다. 이러한 레퍼런스는, 예를 들면, 미리 정해진 동작 영역, 또는 동작 영역을 정의하는 어드레스들의 범위를 식별하는 수치 식별자일 수 있다. 3-파라미터 버퍼 판독(270)의 또 다른 예는, 동작 영역으로부터 판독된 데이터를 보유하거나 및/또는 판독된 데이터가 배치되는 메모리 위치(들)에 대한 레퍼런스를 보유하는 제3 파라미터를 포함한다.
3-파라미터 판독(270)은 AML 이벤트 핸들러(210)로부터 생성될 수 있다. 따라서, SM버스 이벤트 핸들러는 더 높은 레벨로 기입될 수 있고, SM버스 이벤트 통지 핸들링을 간략화시킨다.
3-파라미터 버퍼 기입 메소드(280)의 하나의 예는, SM버스와 관련된 동작 영역에 기입될 데이터이거나, 기입될 데이터가 저장되는 위치에 대한 레퍼런스인 제1 파라미터를 포함한다. 3-파라미터 버퍼 기입 메소드(280)의 다른 예는, 데이터가 기입될 동작 영역에 대한 레퍼런스인 제2 파라미터를 포함한다. 레퍼런스는 동작 영역을 식별하며, 예를 들면, 동작 영역 어드레스 표의 색인, 어드레스 및/또는 어드레스들의 범위일 수 있다. 3-파라미터 버퍼 기입 메소드(280)의 또 다른 예는 데이터를 동작 영역에 기입한 컴퓨터 요소에 의해 반환된 상태 코드인 제3 파라미터를 포함한다. 이러한 상태 코드는, 예를 들면, 기입의 성공 또는 실패, 및/또는 기입된 데이터량을 나타낼 수 있다. 3-파라미터 버퍼 기입 메소드들(280)의 예는 AML 이벤트 핸들러(210)가 버퍼(260)를 통해 SM버스를 액세스하는 것을 용이하게 한다. 더 높은 레벨의 AML 메소드들은 SM버스 이벤트 핸들링 코드의 기입을 간략화한다. 또한, 3-파라미터 기입 메소드(280)는 가변 길이 데이터 블록들을 SM버스(240)와 관련된 동작 영역에 직접 기입하는 것을 용이하게 함으로써, SM버스 데이터 전송에 관련된 인터럽트의 수를 감소시키고, 이러한 전송에 관여하는 요소들의 수를 감소시키는 것을 용이하게 한다. 이에 의해, 효율성 개선이 실현된다.
도 3을 참조하여, SM버스 이벤트 핸들링을 용이하게 하는 시스템(300)을 설명한다. 시스템(300)은 OSPM에 관련된 오퍼레이팅 시스템(310) 및/또는 스마트 배터리 드라이버(312)가, SM버스 이벤트를 BIOS(320)의 AML 코드에 저장된 엔트리 포인트를 갖는 AML 이벤트 핸들러로 디스패치할 SM버스 드라이버(330)와 상호작용하는 것을 용이하게 한다. SM버스 드라이버(330)는 SM버스 컨트롤러(360)로부터의 통지를 수신한 후, 하나 이상의 동작 영역(들)(340)을 통해 SM버스 컨트롤러(360)와 통신할 수 있다. SM버스 드라이버(330)는 또한 BIOS(320)에 저장된 AML 코드와 상호작용할 수 있다. AML 코드는 예를 들면, ASL 코드 이벤트 핸들러에 대한 엔트리 포인트를 저장할 수 있다. 본 발명의 하나의 예에서, 엔트리 포인트는, 내장형 제어 인터럽트를 처리하는 기술 분야에 공지되어 있는 제어 메소드인 _Qxx 제어 메소드를 통해, 액세스될 수 있다. BIOS(320)의 AML 코드, 및/또는 AML 이벤트 핸들링 코드는 동작 영역(들)(340)에 판독 및 기입 호출 R/W을 할 수 있게 한다. 판독 또는 기입 R/W가 이루어지는 동작 영역이 SM버스 컨트롤러(360) 및/또는 SM버스(350)와 관련되어 있으면, SM버스 드라이버(330)에 대한 호출이 트리거될 수 있다.
이에 의해, 도 3에서, 디바이스들(예를 들면, 디바이스(370) 내지 디바이스(380))은 SM버스(350)에게 중요한 조건들을 경험할 수 있다. 따라서, 디바이스들은 SM버스(350) 및/또는 SM버스 컨트롤러(360)에 의해 수신되어 해석되는 경보, 통지, 이벤트, 인터럽트, 에지(edge), 트리거 또는 다른 신호(375)를 발생시킬 수 있다. SM버스(350)는 종래 내장형 컨트롤러에 의해 처리되었고 AML 코드에 의해 핸들링되었던 이벤트 통지(365)를 발생시킨다. 본 발명을 채용함으로써, 이벤트 통지(365)는 이벤트를 AML 이벤트 핸들러로 디스패치하는 AML 코드_Qxx 디스패칭 제어 메소드에 의해 처리될 수 있다. AML 코드를 갖는 내장형 컨트롤러를 통해 SM버스를 직접 액세스하지 않고, 동작 영역들을 통해 SM버스를 액세스하고(예를 들면, 도 2를 참조하여 기재된 3-파라미터 액세스 메소드들을 채용함) _Qxx 메소드들을 통해 통지를 수신함으로써, ASL 코드가 간략화되고, 스마트 배터리 드라이버로부터 그리고 ASL 코드로부터의 SM버스에 대한 액세스가 동기화된다.
도 4는 본 발명에 의해 용이하게 된 SM버스 이벤트 핸들링과 관련된 예시적인 프로세스 흐름도(400)를 나타낸다. 디바이스들(예를 들면, 디바이스(460) 내지 디바이스(470))는 SM버스 하드웨어(450)에 의해 수신되고 해석되는 경보, 통지, 이벤트, 인터럽트, 에지, 트리거 또는 기타 신호를 발생할 수 있다. 따라서, A에서, SM버스 하드웨어(450)는 이벤트 통지를 발생할 수 있다. B에서, SM버스 드라이버(420)는 이벤트 통지를 식별하고 이벤트 통지와 관련된 데이터 및/또는 상태를 부가적으로 판독할 수 있다. SM버스 드라이버(420)는, 관련된 통지 타입을 핸들링하기 위해, 오퍼레이팅 시스템(410)을 통해, 미리 등록된 _Qxx 메소드(440)에 대한 호출을 개시한다.
C에서, AML 인터프리터(430)는 _Qxx 메소드(440)의 해석을 개시하며, 이는 AML 이벤트 핸들러에 대한 호출 또는 엔트리 포인트의 확인을 포함한다. D에서, 이벤트 핸들러는 SM버스와 관련된 동작 영역을 액세스하기 위해 3-파라미터 BufferAcc 액세스 메소드들(예를 들면, Buffer_Acc_Read, Buffer_Acc_Write)을 채용한다. E에서, AML 인터프리터(430)는 SM버스 드라이버(420)로의 호출을 트리거하는, SM버스와 관련된 동작 영역에 액세스하는 판독들 및/또는 기입들을 검출한다. F에서, SM버스 하드웨어(450)로부터의 데이터는, SM버스 하드웨어(450)와 관련된 동작 영역(들)을 통해, AML 이벤트 핸들러로 패스된다. 이 예의 프로세스 흐름도(400)는 본 발명의 시스템 및 방법에 의해 실현되는 SM버스 이벤트 핸들링의 간이화를 설명한다.
도 5는 ACPI 환경에서 본 발명의 이점을 이용하여 기입하는 프로그래머들에 의해 채용될 수 있는 설계 프로세스(500)를 나타낸다. 설계자는 우선 이벤트 핸들러를 설계하고, 그 핸들러를 ASL 코드(510)로 작성한다. 그 후 ASL 코드(510)는 BIOS(530)에 저장되는 AML 코드(520)로 컴파일된다. BIOS를 내장한 시스템이 부팅되면, AML 코드(520)는 BIOS(530)로부터 검색되고 RAM(540)에 기억된다. 그 후, AML 인터프리터(550)가 RAM(540)에 기억된 AML 코드(520)를 해석하기 위해 채용된다. 도 5는 하나의 가능한 설계 및 실행 프로세스를 나타내고, 다른 이러한 프로세스들이 본 발명에 채용될 수 있다는 것을 인식해야 한다.
이상 도시되고 기재된 예시적인 시스템의 관점에서, 본 발명에 의해 구현될 수 있는 방법론들은 도 6 및 도 7의 플로우챠트를 참조하면 보다 잘 인식될 것이다. 설명의 간략화를 위해, 방법들은 일련의 블록들로 도시되고 기재되고 있지만, 본 발명에 따라, 일부 블록들은 본원에 도시되고 기재된 것과는 다르게, 상이한 순서로 발생하거나 및/또는 다른 블록들과 동시에 발생할 수 있기 때문에, 본 발명은 블록들의 순서에 의해 한정되지 않는다는 것을 이해하고 인식해야 한다. 또한, 본 발명에 의한 방법들을 구현하기 위해 설명된 모든 블록들이 필요한 것은 아니다.
본 발명은 하나 이상의 요소들에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행가능한 명령들의 일반적인 문맥으로 기재될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 행하거나 특정 데이터 타입을 구현하는, 루틴, 프로그램, 오브젝트, 데이터 구조 등을 포함한다. 일반적으로 프로그램 모듈의 기능성은 각종 실시예에서 원하는 대로 조합되거나 분산될 수 있다. 따라서, 여기에 기재된 방법들을 행하기 위해 동작할 수 있는 컴퓨터 실행가능한 명령들은 디스크, 메모리, 및 반송파를 포함하지만 이에 한정되지 않는 컴퓨터 판독가능한 매체에 저장될 수 있다. 유사하게, 여기에 기재된 시스템들의 컴퓨터 실행가능한 요소들은 디스크, 메모리 및 반송파를 포함하지만 이에 한정되지 않는 컴퓨터 판독가능한 매체에 저장될 수 있다.
도 6은 다이렉트 SM버스 이벤트 핸들링을 위한 방법(600)을 설명한다. 610에서, 방법은 SM버스 이벤트 통지를 수신한다. 이러한 통지는, 디바이스가 조건(예를 들면, 낮은 배터리 전력, 과열 소자)에 따라 SM버스에게 경고하는 것에 응답하여 발생된다. 620에서, 방법(600)은 SM버스 이벤트 통지를 식별한다. 예를 들면, SM버스는 3개의 상이한 디바이스들(예를 들면, 배터리, 드라이브, 디스플레이)로부터의 통지들을 수신할 수 있다. 각 디바이스는 2개의 상이한 신호들(예를 들면, 파워온, 파워오프)을 발생하도록 프로그램될 수 있다. 이에 따라, 620에서의 SM버스 이벤트 통지 식별은 3개의 가능한 디바이스들 및/또는 6개의 가능한 이벤트 타입들을 구별하도록 프로그램될 수 있다. 3개의 디바이스들과 2개의 신호들이 기재되어 있지만, 더 많거나 적은 수의 디바이스들, 신호들 및 이벤트 통지들이 방법(600)에 의해 처리될 수 있다는 것을 인식해야 한다. 630에서, 방법(600)은 SM버스 이벤트 통지를 AML 이벤트 핸들러로 디스패치한다. 한정이 아닌 설명을 위해, 방법(600)은, 오퍼레이팅 시스템 데이터 구조를 검사하고, 620에서 식별된 SM버스 이벤트 통지의 타입을 핸들링하기 위해 등록된 이벤트 핸들러에 대한 개시 어드레스를 산출할 수 있다. 예를 들면, OSPM 환경에서, 디스크 디바이스 드라이버는 디스크 전력 이벤트(예를 들면, 파워온, 파워오프)를 핸들링하기 위한 2개의 엔트리 포인트를 등록했을 수 있다. 이에 따라, 630에서, SM버스 이벤트는 적당한 디스크 전력 이벤트 엔트리 포인트로 디스패치될 것이다. 640에서, AML 이벤트 핸들러는 SM버스 이벤트 통지를 핸들링할 것이다. 방법(600)은 여기에 기재된 3-파라미터 버퍼 액세스 루틴을 채용할 수 있기 때문에 SM버스를 액세스하기 위해 내장형 컨트롤러 레지스터를 직접 조작할 필요가 없고, 이에 따라 AML 코드가 간단해지고, 이들 레지스터에 대한 OS 액세스를 방해하지 않는다.
도 7은 SM버스를 액세스하고 SM버스 이벤트 통지들을 처리하는 방법(700)을 설명한다. 710에서, 일반적인 초기화가 발생한다. 이러한 초기화들은, 메모리 할당, 포인터 확립, 데이터 통신 확립, 리소스 획득, 오브젝트 인스턴스화, 및 변수들의 초기값들 설정을 포함하지만 이에 한정되지 않는다. 720에서, SM버스 하드웨어 통지가 수신된다. 예를 들면, 인터럽트 라인은, SM버스 디바이스가 이벤트를 발생시킨 것을 나타내는 에지 트리거를 수신할 수 있다. 730에서, 방법(700)은 SM버스 하드웨어 통지와 관련된 데이터를 판독한다. 예를 들면, 다른 데이터 중에서, 디바이스 식별 데이터, 통지 식별 데이터 및/또는 상태 데이터가 판독될 수 있다. 이러한 데이터는, 예를 들면, SM버스 드라이버에 의해 판독될 수 있다.
740에서, 방법(700)은 BIOS에 저장된 AML 코드에 대한 호출을 개시한다. 본 발명의 하나의 예에서, ASL 코드 이벤트 핸들러에 대한 엔트리 포인트는, 730 동안 판독된 데이터에 의해 색인되는, _Qxx 제어 메소드를 통해 액세스된다. 750에서, AML 인터프리터는 _Qxx 제어 메소드를 통해 액세스된 메소드를 해석하기 시작하고, 이에 의해 _Qxx 메소드에 엔트리 포인트가 저장된 AML 이벤트 핸들러가 실행을 개시할 수 있다. 760에서, AML 이벤트 핸들러는 3-파라미터 연산 코드(예를 들면, Buffer_Acc_Read, Buffer_Acc_Write)를 통해 SM버스와 관련된 동작 영역을 액세스할 수 있다. 이러한 판독 및/또는 기입은, 770에서, AML 인터프리터가 초기 데이터, 동작 영역 레퍼런스, 기입할 데이터, 판독 데이터를 저장하는 데이터 위치에 대한 레퍼런스 등을 갖는 SM버스 디바이스 드라이버를 호출하도록 할 수 있다. 따라서, 770에서 판독이 호출되면, 780에서, 판독된 데이터가 3-파라미터 판독에서 지정된 위치에 저장될 수 있다.
790에서, 방법(700)이 또 다른 통지를 처리할지의 여부에 관한 결정을 한다. 예를 들면, 이벤트 통지가 파워 다운 통지이면, 방법(700)은 종료할 것이다. 따라서, 790에서, 결정이 NO이면, 처리가 종료되고, 그렇지 않으면 처리는 720으로 돌아갈 수 있다.
본 발명의 각종 양태들을 위한 부가적인 문맥을 제공하기 위해, 도 8 및 다음 설명은 본 발명의 각종 양태들이 구현될 수 있는 환경(810)의 간략하고 일반적인 설명을 제공하도록 의도된다. 본 발명은 컴퓨터 하드웨어 및/또는 하나 이상의 컴퓨터 또는 다른 디바이스들에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능한 명령의 일반적인 문맥으로 기재되어 있지만, 당업자들은 본 발명이 다른 프로그램 모듈과의 조합 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수도 있다는 것을 인식할 것이다. 그러나, 일반적으로, 프로그램 모듈은 특별한 작업을 행하거나 특별한 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 구성 요소, 데이터 구조 등을 포함한다. 오퍼레이팅 환경(810)은 본 발명이 상호 작용할 수 있는 환경의 단지 하나의 예이고, 본 발명의 사용 또는 기능성의 범위에 대한 어떤 제한도 암시하도록 의도되지 않는다. 본 발명이 적절하게 사용될 수 있는 다른 공지된 컴퓨터 시스템, 환경, 및/또는 구성들은, 퍼스널 컴퓨터, 휴대용 또는 랩톱 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 프로그래머블 소비자 전자 기기, 네트워크 PC들, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들 또는 디바이드 등을 포함하는 분산형 컴퓨팅 환경을 포함하지만 이에 한정되지 않는다. 보다 구체적으로, 본 발명은 ACPI 사양을 채용하고 OSPM을 행하는 시스템에서 채용될 수 있다.
도 8을 참조하면, 본 발명의 각종 양태들이 상호 작용할 수 있는 예시적인 환경(810)은 컴퓨터(812)를 포함한다. 컴퓨터(812)는 처리 유닛(814), 시스템 메모리(816), 및 시스템 버스(818)를 포함한다. 시스템 버스(818)는 시스템 메모리(816)를 포함하나 이에 한정되지 않는 시스템 구성 요소들을 처리 유닛(814)과 연결시킨다. 처리 유닛(814)은 사용가능한 프로세서들 중 임의의 것일 수 있다. 듀얼 마이크로프로세서들 및 다른 멀티프로세서 아키텍쳐들은 또한 처리 유닛(814)으로 채용될 수 있다. 단일 내부 버스 접속 아키텍쳐가 도시되어 있지만, 다른 버스 아키텍처들 및 접속 메카니즘들도 본 발명에 채용될 수 있다는 것을 인식해야 한다.
시스템 버스(818)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 또는 외부 버스, 및/또는 8비트 버스, ISA(Industrial Standard Architecture), MSA(Micro-Channel Architecture), EISA(Extended ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association Bus), 및 SCSI(Small Computer Systems Interface)를 포함하지만 이에 한정되지 않는 각종 이용가능한 버스 아키텍쳐들중 임의의 것을 사용한 로컬 버스를 포함하는 여러 타입의 버스 구조 중 임의의 것일 수 있다.
시스템 메모리(816)는 휘발성 메모리(820) 및 불휘발성 메모리(822)를 포함한다. 개시 동안 등에서, 컴퓨터(812) 내의 소자들 사이에서 정보를 전송하기 위한 기본적인 루틴을 포함하는, 기본 입출력 시스템(BIOS)은 불휘발성 메모리(822)에 기억된다. 제한이 아닌 설명을 위해, 불휘발성 메모리(822)는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable ROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리(820)는 프로세서의 외부 캐시 메모리로서 작용하는 RAM(random access memory)을 포함한다. 제한이 아닌 설명을 위해, RAM은 SRAM(synchronous RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synchlink DRAM), 및 DRRAM(direct Rambus RAM)과 같은 많은 형식으로 이용가능하다.
또한, 컴퓨터 시스템(812)은 제거가능/제거 불가능, 휘발성/불휘발성 컴퓨터 기억 매체를 포함한다. 도 8은 예를 들면 디스크 기억장치(824)를 설명한다. 디스크 기억장치(824)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jazz) 드라이브, 집(Zip) 드라이브, LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱 등의 디바이스들을 포함하지만 이에 제한되지 않는다. 또한, 디스크 기억장치(824)는 CD-ROM(compact disk ROM divice), CD-R 드라이브(CD recordable drive), CD-RW 드라이브(CD rewriteable drive) 또는 DVD-ROM(digital versatile disk ROM drive)을 포함하지만 이에 제한되지 않는 다른 기억 매체와는 개별적인 또는 조합의 예시적인 기억 매체를 포함할 수 있다. 시스템 버스(818)에 대한 디스크 기억 드라이브들(824)의 접속을 용이하게 하기 위해, 인터페이스(826) 등의 일반적으로 제거가능한 또는 제거 불가능한 인터페이스가 사용된다. SM버스는 이러한 디바이스들을 접속하고, 오퍼레이팅 시스템(828)에 의한 OSPM을 용이하게 하기 위해 사용될 수 있다.
도 8은 사용자들과 오퍼레이팅 환경(810)에 기재된 기본적인 컴퓨터 리소스들 사이의 중간매체로서 작용하는 소프트웨어를 설명하고 있다는 것을 인식해야 한다. 이러한 소프트웨어는 오퍼레이팅 시스템(828)을 포함한다. 디스크 기억매체(824)에 기억될 수 있는 오퍼레이팅 시스템(828)은 컴퓨터 시스템(812)의 리소스들을 제어하고 할당하는 작용을 한다. 오퍼레이팅 시스템에 의해 행해지는 하나의 기능은, 본 발명의 ASL SM버스 이벤트 핸들링 및 액세스에 의해 간단해지는 OSPM이다. 시스템 어플리케이션들(830)은 시스템 메모리(816) 또는 디스크 기억장치(824) 중 어느 하나에 기억된 프로그램 모듈(832) 및 프로그램 데이터(834)를 통해 오퍼레이팅 시스템(828)에 의한 리소스들의 관리를 이용한다.
사용자는 입력 디바이스(들)(836)을 통해 컴퓨터(812)로 커맨드들 또는 정보를 입력한다. 입력 디바이스(836)는, 마우스, 트랙볼(trackball), 스타일러스 (stylus), 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 위성 디시(dish), 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등을 포함하지만 이에 한정되지는 않는다. 이들 및 다른 입력 디바이스들은 인터페이스 포트(들)(838)를 경유하여 시스템 버스(818)를 통해 처리 유닛(814)에 접속된다. 인터페이스 포트(들)(838)는 예를 들면 직렬 포트, 병렬 포트, 게임 포트, 및 유니버셜 직렬 버스(USB)를 포함한다. 출력 디바이스(들)(840)은 입력 디바이스(들)(836)와 동일한 타입의 포트들의 일부를 사용한다. 따라서, 예를 들면, USB 포트는 컴퓨터 시스템(812)으로의 입력을 제공하고, 컴퓨터 시스템(812)으로부터의 정보를 출력 디바이스(840)에 출력하도록 이용될 수 있다. 출력 어댑터(842)는 다른 출력 디바이스들(840) 중에서도, 모니터, 스피커, 및 프린터와 같이, 특별한 어댑터들을 필요로 할 수 있는 소정의 출력 디바이스들(840)이 있다는 것을 설명하기 위해 제공된다. 출력 어댑터들(842)은 출력 디바이스(840)와 시스템 버스(818) 사이의 접속 수단을 제공하는 비디오 및 사운드 카드들을 포함하지만 이에 한정되지 않는다. 다른 디바이스들 및/또는 디바이스의 시스템들은 리모트 컴퓨터(들)(844) 등과 같이 입력 및 출력 능력 모두를 제공한다. 다시, 이러한 디바이스들은 SM버스에 접속될 수 있기 때문에 본 발명에 의해 제공되는 SM버스 이벤트 통지 및 액세스로 이득을 얻을 수 있다.
컴퓨터(812)는 리모트 컴퓨터(844) 등과 같이 하나 이상의 리모트 컴퓨터에 대한 논리적 접속들을 사용하는 네트워크 환경에서 동작할 수 있다. 리모트 컴퓨터(844)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반의 장치, 피어(peer) 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 일반적으로 컴퓨터(812)에 관하여 설명된 많은 또는 모든 소자들을 포함한다. 설명의 편의상, 메모리 기억 장치(846)만이 리모트 컴퓨터(844)에 도시되어 있다. 리모트 컴퓨터(844)는 네트워크 인터페이스(848)를 통해 컴퓨터(812)로 논리적으로 접속되어 있고, 통신 접속(850)을 통해 물리적으로 접속되어 있다. 네트워크 인터페이스(848)는 LAN(local-area networks)과 WAN(wide-area networks) 등의 통신 네트워크들을 포함한다. LAN 기술들은 FDDI(Fiber Distributed Data Interface), CDDI(Copper Distributed Data Interface), 이더넷/IEEE 802.3, 토큰 링/IEEE 802.5 등을 포함한다. WAN 기술들은 점대점 링크(point-to-point links), ISDN(Integrated Services Digital Networks) 및 그 변경과 같은 회선 스위칭 네트워크, 패킷 스위칭 네트워크 및 DSL(Digital Subscriber Lines)을 포함하지만 이에 한정되지 않는다. 통신 접속(들)(850)은 네트워크 인터페이스(848)를 버스(818)에 접속시키기 위해 사용된 하드웨어/소프트웨어를 나타낸다. 통신 접속(850)은 설명의 편의상 컴퓨터(812) 내부에 도시되었지만, 컴퓨터(812) 외부에 있을 수 있다. 네트워크 인터페이스(848)에 대한 접속을 위해 필요한 하드웨어/소프트웨어는, 단지 예시적인 목적으로, 일반 전화급 모뎀, 케이블 모뎀 및 DSL 모뎀, ISDN 어댑터, 및 이더넷 카드를 포함하는 모뎀들과 같은 내부 및 외부 기술들을 포함한다.
이상 기재된 것은 본 발명의 예들을 포함한다. 물론, 본 발명을 설명하기 위해 구성 요소들 또는 방법들의 모든 생각할 수 있는 조합을 기재하는 것은 불가능하지만, 당업자들은 본 발명의 다른 조합 및 치환이 가능하다는 것을 인식할 수 있다. 따라서, 본 발명은 첨부된 클레임의 정신 및 범위 내에 있는 모든 대체, 수정 및 변경을 포함하도록 의도된다. 또한, "포함한다(includes)"는 용어가 상세한 설명 또는 청구범위 중 어느 곳에 사용되는 경우에는, 청구범위에 과도기적인 단어로서 사용될 경우 "포함하는(comprising)"이 해석되는 바와 같이, 이러한 용어는 "포함하는(comprising)" 용어와 유사한 방식으로 포함적인 의미를 갖도록 의도된다.
이와 같이, 본 발명은 ACPI 특정 내장형 컨트롤러를 AML 코드로 직접 조작할 필요없이 SM버스 이벤트 통지의 수신을 용이하게 한다. SM버스 드라이버는 통지 인터럽트들을 수신하고 _Qxx 제어 메소드와 관련된 등록 AML 이벤트 핸들링 코드를 호출한다. 이에 의해, 고급 AML 코드(예를 들면, ASL 소스 코드에 기초함)가 SM버스 이벤트 통지들을 핸들링하도록 사용될 수 있다.

Claims (27)

  1. SM버스로의 AML 액세스를 위한 시스템에 있어서,
    AML 이벤트 핸들러; 및
    SM버스 이벤트를 식별하고 상기 SM버스 이벤트를 상기 AML 이벤트 핸들러에 디스패치하는 드라이버
    를 포함하고,
    상기 AML 이벤트 핸들러는, 상기 SM버스와 관련된 동작 영역으로부터 데이터를 판독하기 위해 3-파라미터 버퍼 액세스 판독 메소드 또는 상기 SM버스와 관련된 동작 영역에 데이터를 기입하기 위해 3-파라미터 버퍼 액세스 기입 메소드를 사용하며, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제1 파라미터는 상기 SM버스와 관련된 상기 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 초기 데이터를 제공하고, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제2 파라미터는 상기 데이터가 판독될 상기 SM버스와 관련된 상기 동작 영역에 대한 레퍼런스인 시스템.
  2. 제1항에 있어서, 상기 드라이버는 SM버스 이벤트와 관련된 상태 및 데이터를 SM버스로부터 수신하는 시스템.
  3. 제1항에 있어서, 상기 드라이버는 SM버스 이벤트를 상기 AML 이벤트 핸들러로 디스패치하기 위해 _Qxx 제어 메소드(method)를 사용하는 시스템.
  4. 제1항에 있어서, 적어도 하나의 AML 이벤트 핸들러 엔트리 포인트가 _Qxx 제어 메소드에 의해 액세스되는 시스템.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제3 파라미터는 상기 제2 파라미터에 의해 식별된 동작 영역으로부터 판독된 데이터를 보유하는 시스템.
  8. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제3 파라미터는 상기 제2 파라미터에 의해 식별된 동작 영역으로부터 판독된 데이터를 저장할 위치에 대한 레퍼런스인 시스템.
  9. 삭제
  10. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 상기 제1 파라미터는 SM버스와 관련된 동작 영역에 기입될 데이터인 시스템.
  11. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 상기 제1 파라미터는 SM버스와 관련된 동작 영역에 기입될 데이터에 대한 레퍼런스인 시스템.
  12. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 상기 제2 파라미터는 데이터가 기입될 SM버스와 관련된 동작 영역에 대한 레퍼런스인 시스템.
  13. 제1항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제3 파라미터는 SM버스와 관련된 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 의해 반환된 상태 코드인 시스템.
  14. SM버스로의 액세스를 위한 시스템용의 컴퓨터 실행가능한 구성 요소들을 갖는 컴퓨터 판독가능한 매체로서,
    SM버스 이벤트 통지를 식별하는 컴퓨터 실행가능한 식별자; 및
    상기 SM버스 이벤트 통지를 컴퓨터 실행가능한 AML 이벤트 핸들러로 직접 디스패치하는 컴퓨터 실행가능한 디스패처(dispatcher)
    를 포함하고,
    상기 AML 이벤트 핸들러는, 상기 SM버스와 관련된 동작 영역으로부터 데이터를 판독하기 위해 3-파라미터 버퍼 액세스 판독 메소드 또는 상기 SM버스와 관련된 동작 영역에 데이터를 기입하기 위해 3-파라미터 버퍼 액세스 기입 메소드를 사용하며, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제1 파라미터는 상기 SM버스와 관련된 상기 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 초기 데이터를 제공하고, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제2 파라미터는 상기 데이터가 판독될 상기 SM버스와 관련된 상기 동작 영역에 대한 레퍼런스인 컴퓨터 판독가능한 매체.
  15. SM버스 이벤트 핸들링 방법에 있어서,
    SM버스 이벤트 통지를 수신하는 단계;
    상기 SM버스 이벤트 통지를 식별하는 단계;
    상기 SM버스 이벤트 통지를 AML 이벤트 핸들러로 디스패치하는 단계; 및
    상기 SM버스 이벤트 통지를 AML 코드로 핸들링하는 단계
    를 포함하고,
    상기 AML 이벤트 핸들러는, 상기 SM버스와 관련된 동작 영역으로부터 데이터를 판독하기 위해 3-파라미터 버퍼 액세스 판독 메소드 또는 상기 SM버스와 관련된 동작 영역에 데이터를 기입하기 위해 3-파라미터 버퍼 액세스 기입 메소드를 사용하며, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제1 파라미터는 상기 SM버스와 관련된 상기 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 초기 데이터를 제공하고, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제2 파라미터는 상기 데이터가 판독될 상기 SM버스와 관련된 상기 동작 영역에 대한 레퍼런스인 SM버스 이벤트 핸들링 방법.
  16. 제15항에 있어서, 상기 SM버스 이벤트 통지는 SM버스 이벤트 통지와 관련된 데이터 및 상태 중 적어도 하나를 검사함으로써 식별되는 SM버스 이벤트 핸들링 방법.
  17. 제15항에 있어서, 상기 SM버스 이벤트 통지를 디스패치하는 단계는 등록된 AML 이벤트 핸들러를 통해 _Qxx 제어 메소드로 색인되는(indexing) 단계를 포함하는 SM버스 이벤트 핸들링 방법.
  18. 제15항에 있어서, 상기 SM버스 이벤트 통지를 AML 코드로 핸들링하는 단계는 SM버스 통지를 발생시킨 SM버스와 관련된 동작 영역을 판독하는 단계를 포함하는 SM버스 이벤트 핸들링 방법.
  19. 제18항에 있어서, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제3 파라미터는 상기 동작 영역으로부터 판독된 데이터를 보유하는 SM버스 이벤트 핸들링 방법.
  20. 제18항에 있어서, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제3 파라미터는 상기 동작 영역으로부터 판독된 데이터에 대한 레퍼런스를 보유하는 SM버스 이벤트 핸들링 방법.
  21. 제15항에 있어서, 상기 SM버스 이벤트 통지를 AML 코드로 핸들링하는 단계는 SM버스 통지를 발생시킨 SM버스와 관련된 동작 영역을 기입하는 단계를 포함하는 SM버스 이벤트 핸들링 방법.
  22. 제21항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제1 파라미터는 상기 동작 영역에 기입될 데이터를 보유하고, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제2 파라미터는 상기 동작 영역에 대한 레퍼런스를 보유하고, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제3 파라미터는 반환된 상태 호출을 보유하는 SM버스 이벤트 핸들링 방법.
  23. 제21항에 있어서, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제1 파라미터는 상기 동작 영역에 기입될 데이터에 대한 레퍼런스를 보유하고, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제2 파라미터는 상기 동작 영역에 대한 레퍼런스를 보유하고, 상기 3-파라미터 버퍼 액세스 기입 메소드의 제3 파라미터는 반환된 상태 호출을 보유하는 SM버스 이벤트 핸들링 방법.
  24. 제15항의 방법을 실행하도록 동작가능한 컴퓨터 명령어들을 저장하는 컴퓨터 판독가능한 매체.
  25. SM버스 이벤트 핸들링 시스템에 있어서,
    SM버스 통지를 수신하는 수단;
    상기 SM버스 통지와 관련된 AML 코드 이벤트 핸들러를 배치하는 수단; 및
    상기 SM버스 통지와 관련된 AML 코드 이벤트 핸들러를 호출하는 수단
    을 포함하고,
    상기 AML 코드 이벤트 핸들러는, 상기 SM버스와 관련된 동작 영역으로부터 데이터를 판독하기 위해 3-파라미터 버퍼 액세스 판독 메소드 또는 상기 SM버스와 관련된 동작 영역에 데이터를 기입하기 위해 3-파라미터 버퍼 액세스 기입 메소드를 사용하며, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제1 파라미터는 상기 SM버스와 관련된 상기 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 초기 데이터를 제공하고, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제2 파라미터는 상기 데이터가 판독될 상기 SM버스와 관련된 상기 동작 영역에 대한 레퍼런스인 SM버스 이벤트 핸들링 시스템.
  26. 제25항에 있어서, SM버스와 통신하도록 채용된 데이터 오브젝트를 상기 AML 코드 이벤트 핸들러가 액세스하는 수단을 포함하는, SM버스 이벤트 핸들링 시스템.
  27. SM버스 이벤트를 AML 코드 이벤트 핸들러로 디스패치하기 위한 데이터 구조를 기록한 컴퓨터 판독가능한 저장 매체로서, 상기 데이터 구조는,
    적어도 하나의 색인된 AML 코드 엔트리 포인트; 및
    상기 적어도 하나의 색인된 AML 코드 엔트리 포인트와 관련된 적어도 하나의 AML 이벤트 핸들러 엔트리 포인트를 포함하고,
    상기 AML 이벤트 핸들러는, 상기 SM버스와 관련된 동작 영역으로부터 데이터를 판독하기 위해 3-파라미터 버퍼 액세스 판독 메소드 또는 상기 SM버스와 관련된 동작 영역에 데이터를 기입하기 위해 3-파라미터 버퍼 액세스 기입 메소드를 사용하며, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제1 파라미터는 상기 SM버스와 관련된 상기 동작 영역으로의 액세스를 제공하는 컴퓨터 구성 요소에 초기 데이터를 제공하고, 상기 3-파라미터 버퍼 액세스 판독 메소드의 제2 파라미터는 상기 데이터가 판독될 상기 SM버스와 관련된 상기 동작 영역에 대한 레퍼런스인 컴퓨터 판독가능한 저장 매체.
KR1020030005033A 2002-02-26 2003-01-25 Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체 KR100954661B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/083,098 US7418714B2 (en) 2002-02-26 2002-02-26 Employing three parameter buffer access in connection with SMBus notifications
US10/083,098 2002-02-26

Publications (2)

Publication Number Publication Date
KR20030070819A KR20030070819A (ko) 2003-09-02
KR100954661B1 true KR100954661B1 (ko) 2010-04-27

Family

ID=27753235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030005033A KR100954661B1 (ko) 2002-02-26 2003-01-25 Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체

Country Status (5)

Country Link
US (1) US7418714B2 (ko)
EP (1) EP1347380A3 (ko)
KR (1) KR100954661B1 (ko)
CN (1) CN1441347B (ko)
TW (1) TWI260507B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10262080B4 (de) * 2002-10-25 2005-01-27 Advanced Micro Devices, Inc., Sunnyvale SMBus-Testgerät und zugehöriges Verfahren
DE10249883B4 (de) * 2002-10-25 2005-02-03 Advanced Micro Devices, Inc., Sunnyvale Verfahren und Vorrichtung zur Handhabung von SMBUS-Nachrichten
CN100382044C (zh) * 2004-10-22 2008-04-16 英业达股份有限公司 一种电池信息的取得方法及取得装置
US20060174231A1 (en) * 2005-01-31 2006-08-03 Dong Wei Method and an apparatus for using code written in a language that is not native to the computer system to invoke a procedure written in a programming language that is native to the computer system
US8281083B2 (en) * 2005-06-30 2012-10-02 Intel Corporation Device, system and method of generating an execution instruction based on a memory-access instruction
US8234626B2 (en) * 2008-06-04 2012-07-31 Dell Products L.P. Modular ASL component
US8347070B1 (en) * 2008-10-30 2013-01-01 Hewlett-Packard Development Company, L.P. System and methods for sharing platform data with an ACPI module of a computer system
US9749176B2 (en) * 2010-06-29 2017-08-29 Nokia Technologies Oy Systems, methods, and apparatuses for providing adaptive user notifications
US9396513B2 (en) * 2013-08-05 2016-07-19 Intel Corporation Using group page fault descriptors to handle context switches and process terminations in graphics processors
TWI601014B (zh) * 2016-11-15 2017-10-01 英業達股份有限公司 記憶體訪問衝突控制的電腦系統
US10929320B1 (en) * 2019-12-06 2021-02-23 Quanta Computer Inc. Control circuit for dynamic bifurcation control
US11544205B2 (en) 2020-11-20 2023-01-03 Western Digital Technologies, Inc. Peer storage devices sharing host control data
US11531498B2 (en) 2020-11-20 2022-12-20 Western Digital Technologies, Inc. Peer storage device messaging over control bus
US11971771B2 (en) 2022-01-25 2024-04-30 Western Digital Technologies, Inc. Peer storage device messaging for power management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219742B1 (en) * 1998-04-29 2001-04-17 Compaq Computer Corporation Method and apparatus for artificially generating general purpose events in an ACPI environment
US20060167511A1 (en) * 2005-01-27 2006-07-27 Cardiac Pacemakers, Inc. Apparatus and method for temporary treatment of acute heart failure decompensation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19750662C2 (de) * 1997-11-15 2002-06-27 Daimler Chrysler Ag Prozessoreinheit für ein datenverarbeitungsgestütztes elektronisches Steuerungssystem in einem Kraftfahrzeug
JP3188862B2 (ja) 1997-12-24 2001-07-16 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 消費電力解析方法及び装置
US6131131A (en) 1998-01-22 2000-10-10 Dell U.S.A., L.P. Computer system including an enhanced communication interface for an ACPI-compliant controller
US6189108B1 (en) 1998-02-19 2001-02-13 International Business Machine Corporation Reporting of power states for a network connected PC
US6138183A (en) * 1998-05-06 2000-10-24 Ess Technolgoy Inc. Transparent direct memory access
US6167511A (en) * 1998-06-15 2000-12-26 Phoenix Technologies Ltd. Method to reflect BIOS set up changes into ACPI machine language
US6185677B1 (en) * 1998-09-30 2001-02-06 Phoenix Technologies Ltd. Automatic generation of ACPI source language for peripheral resource configuration
US6145036A (en) * 1998-09-30 2000-11-07 International Business Machines Corp. Polling of failed devices on an I2 C bus
US6460106B1 (en) * 1998-10-20 2002-10-01 Compaq Information Technologies Group, L.P. Bus bridge for hot docking in a portable computer system
JP2001209466A (ja) 2000-01-26 2001-08-03 Internatl Business Mach Corp <Ibm> コンピュータの制御方法、コンピュータ、及び記録媒体
US6907474B2 (en) * 2000-09-15 2005-06-14 Microsoft Corporation System and method for adding hardware registers to a power management and configuration system
US6748461B2 (en) * 2001-03-15 2004-06-08 Microsoft Corporation System and method for accessing a CMOS device in a configuration and power management system
US7032116B2 (en) * 2001-12-21 2006-04-18 Intel Corporation Thermal management for computer systems running legacy or thermal management operating systems
US6792491B2 (en) * 2001-12-21 2004-09-14 Intel Corporation Invoking ACPI source language code from interrupt handler

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219742B1 (en) * 1998-04-29 2001-04-17 Compaq Computer Corporation Method and apparatus for artificially generating general purpose events in an ACPI environment
US20060167511A1 (en) * 2005-01-27 2006-07-27 Cardiac Pacemakers, Inc. Apparatus and method for temporary treatment of acute heart failure decompensation

Also Published As

Publication number Publication date
US20030163599A1 (en) 2003-08-28
CN1441347B (zh) 2010-05-26
TWI260507B (en) 2006-08-21
TW200303471A (en) 2003-09-01
KR20030070819A (ko) 2003-09-02
EP1347380A3 (en) 2006-11-08
EP1347380A2 (en) 2003-09-24
US7418714B2 (en) 2008-08-26
CN1441347A (zh) 2003-09-10

Similar Documents

Publication Publication Date Title
KR100954661B1 (ko) Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체
US6425038B1 (en) Conversion of desk-top operating system for real-time control using installable interrupt service routines
US5519851A (en) Portable PCMCIA interface for a host computer
CN1318970C (zh) 对多体系组件软件的系统管理模式加载程序和执行机制
EP0106213B1 (en) Decentralized information processing system and initial program loading method therefor
KR100681875B1 (ko) 내장형 시스템
US5754855A (en) System and method for managing control flow of computer programs executing in a computer system
US6230118B1 (en) DOS based application supports for a controllerless modem
US20070118723A1 (en) Computer system and method that eliminates the need for an operating system
JPH0863354A (ja) コンピュータプロセッシングを行うための装置及び方法
CN114625545A (zh) 进程持锁检测方法及其电子设备和可读介质
WO2006071944A2 (en) Method, apparatus and system to generate an interrupt by monitoring an external interface
US7076551B2 (en) Using remote procedure calls to manage co-processor resources
US7325146B2 (en) Method and apparatus for generating SMI from ACPI ASL control code to execute complex tasks
JP2822782B2 (ja) シングルチップマイクロコンピュータ
EP3633507B1 (en) Technologies for secure and efficient native code invocation for firmware services
US20070260761A1 (en) Inter-module data communication control method and system for ACPI and BIOS
JPH1021094A (ja) リアルタイム制御方式
US20090031288A1 (en) Ejection failure mechanism
US7043565B1 (en) System and method for transferring data over an external transmission medium
CN114003408A (zh) 在内核态与用户态之间交换报文的系统和方法
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
EP0948769A1 (en) Real time services in backwardly compatible operating systems
CN109901826B (zh) 用于Java程序的数据处理方法、装置和电子设备
Schleipfer The ServOS kernel: a special-purpose operating system kernel for server machines

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: 20130329

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee