KR100247719B1 - 주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체 - Google Patents

주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체 Download PDF

Info

Publication number
KR100247719B1
KR100247719B1 KR1019970006337A KR19970006337A KR100247719B1 KR 100247719 B1 KR100247719 B1 KR 100247719B1 KR 1019970006337 A KR1019970006337 A KR 1019970006337A KR 19970006337 A KR19970006337 A KR 19970006337A KR 100247719 B1 KR100247719 B1 KR 100247719B1
Authority
KR
South Korea
Prior art keywords
card
device driver
bit mode
response
mode
Prior art date
Application number
KR1019970006337A
Other languages
English (en)
Other versions
KR970071303A (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 KR970071303A publication Critical patent/KR970071303A/ko
Application granted granted Critical
Publication of KR100247719B1 publication Critical patent/KR100247719B1/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/14Handling requests for interconnection or transfer
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

DOS/Windows 3.x계의 디바이스 드라이버로만 동작하는 PC 카드가 삽입되었을 때에는 이 디바이스 드라이버에 의해 PC 카드를 인에이블하는 한편, Windows 95 네이티브의 디바이스 드라이버로 동작하는 PC 카드가 삽입되었을 때에는 이 디바이스 드라이버에 의해 PC 카드를 인에이블할 수 있는, 우수한 디바이스 드라이버의 자동인에이블 방법을 제공한다.
32비트 모드 또는 16비트 모드의 어느 한쪽으로 동작 가능한 오퍼레이팅 시스템의 제어하에 놓여짐과 동시에, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 타입의 정보 처리 시스템 상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 이 PC 카드를 인에이블할 기회를 부여하는 단계와, (c) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만 32비트 모드로 동작하는 디바이스 드라이버에 대하여 이 PC 카드를 인에이블할 기회를 부여하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.

Description

주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체
본 발명은 퍼스널 컴퓨터를 비롯한 정보 처리 시스템에 관한 것으로, 특히 PC 카드 등의 주변 디바이스를 표준 장비 또는 외부 접속함과 동시에, 대응하는 디바이스 드라이버에 의해 각 주변 디바이스를 구동하는 타입의 정보 처리 시스템에 관한 것이다. 더욱 상세하게는, 본 발명은 이와 같은 정보 처리 시스템에서 적용 가능하고, 새롭게 착탈된 주변 디바이스를 자동적으로 인에이블/디세이블(enable/disable)하기 위한 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로세스를 실현하기 위한 컴퓨터 프로그램을 유형적으로 저장한 컴퓨터 가독(加讀) 기억 매체에 관한 것이다.
최근의 기술 혁신에 수반하여 데스크톱형, 노트북형 등의 각종 퍼스널 컴퓨터(PC)가 개발되어 시판되고 있다. PC는 CPU나 메인 메모리 등의 기본적인 디바이스류를 표준 장비한 형태로 출하되는 한편, 엔드 유저는 자신의 필요에 따라서 주변 디바이스를 확장할 수 있게 되어 있다. 또한, PC는 일반적으로 오퍼레이팅 시스템(OS)이라 불려지는 기본 소프트웨어의 제어하에 각종 컴퓨터 처리를 실행하도록 되어 있다.
[PC 카드]
종래, 주변 디바이스의 확장은 퍼스널 컴퓨터에 준비된 버스 슬롯에 「확장 어댑터 카드」를 장착하는 형태로 행해지고 있었다(도7a 참조). 비디오 어댑터나 통신 어댑터, 증설 메모리, SCSI(Small Computer System Interface) 인터페이스 등이 확장 어댑터 카드의 으뜸가는 예이다.
확장 어댑터 카드에 의한 시스템 구성의 확장은, 특히 데스크톱 컴퓨터에 있어서는 유효하였다. 그러나, 노트북 컴퓨터의 경우, 소형 경량을 특징으로 한 결과로서, 본체 내의 실장 밀도가 극도로 높아져서, 제공할 수 있는 버스 슬롯의 수나 미디어의 수납 공간이 현저하게 제한되어 있다. 즉, 노트북 컴퓨터에서는, 확장 어댑터 카드에 의한 시스템 구성의 증설에는 한계가 있었다.
이른바 PC 카드는 노트북 컴퓨터의 확장성을 보완하는 것을 초기 목적으로 하여 개발된 크레디트 카드 크기의 주변 디바이스이다. 노트북 컴퓨터는 PC 카드를 수용하기 위한 수납 공간과 이것을 전기적으로 접속하기 위한 커넥터를 갖는 슬롯(즉 PC 카드 슬롯)을 구비함으로써, 비교적 용이하게 시스템 구성을 확장할 수 있다(도7b 참조). PC 카드의 기계적 및 전기적인 사양에 관한 가이드 라인은 PCMCIA(Personal Computer Memory Card International Association)와 JEIDA(Japan Electronic Industry Development Association)이 중심이 되어 국제 표준으로서 책정되어 있다. 현재, 3.3mm 두께의 타입 I, 5.5mm 두께의 타입Ⅱ, 10.5mm 두께의 타입Ⅲ의 3종류의 PC 카드가 출하되고 있다. 타입Ⅰ은 주로 메모리 카드로서 이용되고 있다. 타입Ⅱ는 팩시밀리/모뎀이나 이더넷(Ethernet) 어댑터, SCSI 어댑터 등의 용도로 사용되고 있다. 또한, 타입Ⅲ는 주로 하드 디스크 내장 카드로서 이용되고 있다. 최근에는 PC 카드의 품종이 풍부해진 점, 저가격화된 점등에 의해 노트북 뿐만 아니라 데스크톱 컴퓨터도 PC 카드 슬롯을 장비하게 되었다. 1994년 여름에 미국 정부가 「모든 데스크톱 컴퓨터에 PC 카드 슬롯을 장비할 것」을 조달 기준으로서 제안한 후, PC 카드의 보급은 더욱 박차를 가하고 있다.
PC 카드의 이용 형태의 큰 특징은 빈번하게 착탈된다는 점이다. 이것은 유저의 요구가 다양화하여 온 점, 노트북 컴퓨터와 같은 휴대형 PC는 사용 장소별로 필요한 디바이스류가 변동하는 점, PC가 장비 가능한 카드 슬롯수에 제한이 있는 점, 등의 이유에 의거하는 것이다. 애당초, PC 카드는 확장 어댑터와 같이 본체에 고정하여 사용하는 것을 전제로 하지 않는다. 예를 들면, 그 폼 팩터는 착탈성을 고려하여 카트리지식으로 형성되어 있고, 또한 전기적으로 활성 삽입 발취(핫 플러그) 가능하게 설계되어 있다.
한편, PC 카드를 착탈하는 등으로 하여 시스템 구성이 변동했을 때에는 PC 본체(이하, 「시스템」이라 함) 측에서는 시스템 리소스를 재 배분해야만 한다. 여기에서 말하는 시스템 리소스란, 예를 들면 I/O 어드레스, 메모리 어드레스, DMA(Direct Memory Access) 레벨, IRQ(인터럽트 요구) 레벨 등의 것을 가리킨다. CPU는 각 주변 디바이스에 할당된 I/O 어드레스에 기초하여 억세스할 수 있다. 또한, 각 주변 기기는 자신에게 예약된 DMA 레벨이나 IRQ 레벨에 따라서 CPU에 요구나 응답을 행할 수 있다. 따라서, 각 주변 디바이스간에 경합(conflicts)이 발생하지 않도록 시스템 리소스를 할당할 필요가 있다. 또한, 시스템 리소스에는 한계가 있기[예를 들면 ISA(Industry Standard Architecture) 시스템에서는 DMA 레벨이 8개, IRQ 레벨이 16개만이 준비되어 있다] 때문에, 낭비없이 시스템 리소스를 배분할 필요가 있다. 예를 들면, 이미 발취되어 시스템 구성상에 존재하지 않는 주변 디바이스의 시스템 리소스는 해방해야 하고, 또한 IRQ를 이용하지 않는 주변 디바이스에 IRQ 레벨을 예약해서는 안된다. 따라서, PC 카드를 적절하게 활용하기 위해서는 시스템 리소스를 동적이며 효율적으로 재배분할 필요가 있다.
종래의 주변 디바이스에서는 점퍼나 DIP 스위치에 의해 자신이 사용할 시스템 리소스를 정의하도록 되어 있다. 각 주변 디바이스간에 시스템 리소스가 경합하지 않도록 점퍼나 DIP 스위치를 조작하는 것은 일반 유저에 있어서는 곤란한 작업이다. 이 때문에, 미국 마이크로소프트사와 미국 인텔사는 주변 디바이스의 착탈에 따라서 시스템 리소스 등의 시스템 환경을 자동 설정하기 위한 규격 "Plug&Play"(이하, "PnP"라 함)를 제창하고 있다. PnP에 의하면, 시스템 가동중에 주변 디바이스가 활성 삽입 발취되어도, 동적으로 시스템 리소스가 할당되거나 또는 해방된다. 또한, 시스템 리소스가 경합하였을 때에는 자동적으로 퇴피(resolve)된다. 즉, PnP란 종래 사람 손으로 행하였던 셋업 작업을 시스템 스스로 행하게 하는 것이다.
PCMCIA/JEIDA가 책정한 PC 카드 사양은, PC상에서 사용되고 있는 인터페이스 중에서도 가장 일찍부터 PnP에 대응하여 설계된 아키텍쳐이다. 예를 들면, PC 카드를 시스템에 끼워넣는 것만으로, 시스템이 PC 카드를 자동 인식하고, 카드 전용의 소프트웨어(「카드 서비스」나 「소켓 서비스」 : 후술)가 PC 카드에 대하여 시스템 리소스를 할당하여, PC 카드를 시스템 구성에 자동적으로 조립하도록 되어 있다. 이 때문에, PC 카드에는 점퍼나 DIP 스위치는 불필요하다.
[PC 카드를 위한 PnP 서포트]
여기에서, PC 카드의 PnP의 구조에 대하여 도8을 참조하면서 설명한다.
DOS(Disk Operating System : 단, 여기에서는 Windows 3.1을 포함하며, 이하, "DOS/Windows 3.x"라 함) 환경하에서는 PC 카드의 PnP는 「소켓 서비스」와 「카드 서비스」로 불려지는 2종류의 카드용 디바이스 드라이버에 의해 실현되고 있다. 소켓 서비스와 카드 서비스는 DOS가 PC 카드를 인식하기 위한 중요한 소프트웨어 레이어이고, 모든 PC 카드에 필요하다. 이들 2개의 소프트웨어 레이어의 상위(上位)에는, 대응하는 PC 카드를 구동하기 위하여 필요한 PC 카드 자체의 디바이스 드라이버(클라이언트 드라이버)가 존재한다.
소켓 서비스란 하드웨어인 PC 카드 컨트롤러를 추상화하기 위한 소프트웨어 레이어이고, PC 카드 컨트롤러를 직접 제어하기 위한 펑션 콜을 구비하고 있다. 상위의 소프트웨어 레이어는 이 소켓 서비스를 통하여 하드웨어와 교신할 수 있다.
카드 서비스란 카드 슬롯에 삽입된 PC 카드의 시스템 리소스를 관리하기 위한 소프트웨어 레이어이다. 카드 서비스는 소켓 서비스에 대한 펑션 콜을 구비함과 동시에, 자신에게 클라이언트 등록되어 있는 상위 디바이스 드라이버(클라이언트 디바이스 드라이버)에 대해서는 프로그래밍 인터페이스(PI)를 제공하고 있다.
클라이언트 디바이스 드라이버란 PC 카드 자체의 디바이스 드라이버, 즉 각 PC 카드마다 준비된 전용의 디바이스 드라이버이다. 클라이언트 디바이스 드라이버의 예는 LAN 카드를 구동하기 위한 LAN 카드 드라이버, 메모리 카드를 구동하기 위한 메모리 카드 드라이버, SCSI 카드를 구동하기 위한 SCSI 카드 드라이버 등 이다. 이들 클라이언트 디바이스 드라이버는 카드 서비스에 대하여 클라이언트 등록1)함으로써, PC 카드의 착탈 등의 이벤트를 수취할 수 있음과 동시에, 카드 서비스에 대하여 시스템 리소스의 할당/해방이나, PC 카드에 급전(給電)의 개시/정지를 요구할 수 있다. 단, PnP 기능을 서포트하기 위해서는, 클라이언트 디바이스 드라이버는 미리 시스템에 로드되고(즉 메인 메모리에 상주하고), 또한 카드 서비스에 클라이언트 등록되어 있을 것이 전제가 된다.
DOS/Windows 3.x 환경하에서 예를 들면, PC 카드가 슬롯에 끼워지면 PC 카드 컨트롤러를 경유하여 소켓 서비스와 카드 서비스가 이것을 인식한다. 이어서, 카드 서비스는 자신에게 클라이언트 등록되어 있는 각 클라이언트 디바이스 드라이버에 대하여 이벤트(카드 삽입 사실)를 통지한다(도8 중의 화살표 P1). 통지를 받은 각클라이언트 디바이스 드라이버는 순차적으로 PC 카드 내의 메모리로부터 속성 정보[타플(tuple)이라고도 함]를 판독한다 (동 화살표 P2, P3). 그리고, 타플의 내용으로부터 자신이 PC 카드에 대응하는 드라이버라고 판단한 클라이언트 디바이스 드라이버는 동 타플의 내용으로부터 PC 카드에 필요한 시스템 구성을 알고, 카드 서비스에 대하여 시스템 리소스의 할당을 요구한다 (동 화살표 P4). 카드 서비스는 사용할 수 있는 시스템 리소스가 발견되면, 이것을 카드 서비스 내의 리소스 테이블에 기입함과 동시에, 클라이언트 디바이스 드라이버에게 시스템 리소스의 이용을 허가한다 (동 화살표 P5). 계속하여, 클라이언트 디바이스 드라이버는 카드 서비스 및 소켓 서비스를 통하여 PC 카드 컨트롤러를 프로그램하여(동 화살표 P6), PC 카드를 시스템 구성에 조립한다. 또한 클라이언트 드라이버는 슬롯으로의 급전 개시를 요구한다. 이 결과, PC 카드는 시스템상에서 인에이블되게 된다.
소켓 서비스나 카드 서비스의 사양은 Rel 2.1 이후의 PCMCIA(혹은 Ver4.2 이후의 JEIDA)에서 미리 표준화되어 있다. 소켓 서비스나 카드 서비스는 PC 카드 슬롯에 억세스하기 위한 소프트웨어이며, PC 카드 슬롯용의 디바이스 드라이버로 파악할 수도 있을 것이다. 단, 소켓 서비스나 카드 서비스 등의 PC 카드 제어용 소프트웨어는 종래의 DOS에는 표준 장비되어 있지 않다. 이 때문에, 이들 2계층의 디바이스 드라이버는 일반적으로 OS 메이커 이외의 PC 카드 소프트의 메이커에 의해 제공되고 있다. 예를 들면, 일본 아이 비 엠(주)이 시판하는 "PlayAtWill"("PlayAtWill"은 미국 IBM사의 상표)은 소켓 서비스와 카드 서비스를 패키지화한 소프트웨어 제품이다.
[오퍼레이팅 시스템]
한편, 오퍼레이팅 시스템(OS)이란, 이미 주지한 바와 같이, PC의 하드웨어 및 소프트웨어를 종합적으로 관리하기 위한 기본 소프트웨어이다. OS는 일반적으로 하드 디스크 드라이브(HDD) 등의 보조 기억 장치에의 화일의 기입/판독을 관리하기 위한 「화일 매니저」, 메모리 공간을 관리하기 위한 「메모리 매니저」, 태스크 실행의 우선도를 관리하기 위한 「스케쥴러」등을 포함하고 있다. 또한, 화면 표시나 커맨드 입력, 마우스 조작을 처리하기 위한 「유저 인터페이스」도 OS에 포함된다.
최근 OS의 대표예는 1995년에 미국 마이크로소프트사에서 발표된 "Windows 95"이다. Windows 95는 32비트 아키텍쳐의 CPU(예를 들면 미국 인텔사의 80486SX 이상)를 전제로 한, 32비트의 어드레스 공간에서 동작 가능한 「32비트 OS」이다. 이에 반해, 종래의 DOS/Windows 3.x는 16비트 아키텍쳐의 CPU(예를 들면 미국 인텔사의 80386)을 전제로 한, 16비트 어드레스 공간에서 동작하는 「16비트 OS」였다. Windows 95는 DOS/Windows 3.x의 2배의 속도로 데이타를 CPU에 취득하여 처리할 수 있는 하이 퍼포먼스의 OS라고 할 수 있다. 이러한 한편, Windows 95는 DOS/Windows 3.x계의 어플리케이션과의 호환성을 확보하기 위하여 16비트 호환 모드로 구비하고 있다. 단, 16비트 호환 모드로 동작중에는, OS의 커넬(kernel)(중핵 부분)에서는 적절하게 16비트 모드와 32비트 모드 사이에서 스위칭이 행해지므로, 퍼포먼스의 저하를 수반한다.
Windows 95는 정보 기기(OA 기기나 통신 기기 등)의 통합을 꾀한 OS이기도 하며, 그 주된 특징으로서 「멀티태스크 대응」과 「PnP 대응」을 들 수 있다. 멀티태스크 대응으로 한 목적은 복수의 처리를 병행하여 실행하는 것이 정보 기기 통합의 열쇠가 되기 때문이다 [예를 들면, 동화상 재생 중에 전화나 팩시밀리를 수취하거나, 백그라운드에서 서버의 데이타베이스에 억세스하면서 포워그라운드(foreground)(디스플레이 화면상)에서는 전자 메일을 읽는 등]. 또한, PnP 대응으로 한 목적은 오피스에서의 PC 운용 코스트의 억제에 있다. 여러 종류의 주변 기기를 PC에 장착할 가능성이 높아지고 복잡화된 시스템 구성을 자동적으로 관리함으로써, 운용 코스트를 억제할 수 있고, 그렇게 함으로써 정보 기기의 통합을 꾀할 수 있다는 것이다.
도9에는 Windows 95의 PnP 아키텍쳐를 도해하고 있다. 도시한 바와 같이, Windows 95에서는 시스템 중의 각 서브 시스템[예를 들면 ISA 버스, PCI(Periphaeral Component Interconnect) 버스, SCSI(Small Computer System Interface) 버스, PCMCIA 버스]마다 버스 에뉴머레이터(Enumerator)를 준비함과 동시에, 버스 에뉴머레이터의 상위에 「컨피그레이션 매니저」라 불리는 소프트웨어층을 준비하고 있다. 예를 들면 PCMCIA 버스에 에뉴머레이터는 PCMCIA Rel 2.1 준거의 소켓 서비스나 카드 서비스 외에 PC 카드를 인에이블하기 위한 커먼 인에이블러, 클라이언트 디바이스 드라이버를 자동 로드하기 위한 디바이스 드라이버 로더, 컨피그레이션 매니저와 대화하기 위한 C/M 인터페이스 등을 장비하고 있다2).
OS에는 이미 방대한 종류의 디바이스 드라이버가 존재하고 있지만, 이것들이 서로 리소스의 충돌을 일으켜서는 시스템이 적절하게 동작할 수 없다. Windows 95에서는 각 버스 에뉴머레이터에 의해 버스 단위로 각 디바이스 드라이버 간의 강조(强調)를 꾀할 수 있음과 아울러, 컨피그레이션 매니저에 의해 시스템 전체의 리소스를 관리함으로써 PnP화를 실현하고 있다. 예를 들면 PC 카드가 카드 슬롯에 삽입되면, PCMCIA 버스 에뉴머레이터를 통하여 우선 로컬로 PC 카드가 자동 인식됨과 동시에, 컨피그레이션 매니저에 의해 다른 버스상의 주변 디바이스와 경합하지 않도록 시스템 리소스가 할당되어, 결과적으로 시스템 구성에 조립된다.
또한, Windows 95의 PnP 기능에 따르면, 시스템 리소스의 자동 설정뿐만 아니라, 디바이스 드라이버의 자동 로딩도 행하도록 되어 있다. 예를 들면 PCMCIA 버스 에뉴머레이터는 PC 카드가 시스템에 삽입되면, PC 카드에 시스템 리소스를 할당함과 동시에, 적절한 PC 카드용 디바이스 드라이버(클라이언트 드라이버)를 자동적으로 로드한다. 이 점은 클라이언트 드라이버가 메모리 상주인 것을 전제로 하는 DOS/Windows 3.x와는 서로 다르며, 디바이스 드라이버를 위한 메모리 공간을 절약할 수 있다.
[오퍼레이팅 시스템과 디바이스 드라이버의 공존]
PC 카드의 규격화 단체인 PCMCIA/JEIDA는 호스트 시스템측의 진화에 대응하는 사양의 작성에 힘쓰고 있다. 예를 들면 1995년에 발표한 사양 "PC Card Standard"에서는 고속의 PCI(Peripheral Component Interconnect) 버스에 대응하기 위하여 32비트 버스 마스터 기능이 있는 「카드 버스(Card Bus)」가 포함되어 있다. 카드 버스에 의하면, 고품위의 동화상 취득 등 멀티미디어 관련 기능도 PC 카드로 실현할 수 있게 된다.
한편, OS도 정보 처리 기기의 통합을 궁극 목표로 하여 멀티태스크화나 PnP화에 힘쓰고 있다. 예를 들면, Windows 95에서 OS가 적극적으로 하드웨어의 리소스 관리에 개입하고 있다. 예를 들면 PC 카드를 자동 인식하기 위한 소켓 서브스나 카드 서비스도 Windows 95에 표준 첨부되어 있다(상술함).
그런데, PC 카드와 OS는 반드시 동기적으로 진화한다고는 할 수 없다. 이것은 PC 카드나 PCMCIA/JEIDA에 의해 규격화되어 PC 카드 벤더에 의해 개발되는 한편으로, OS는 미국 마이크로소프트사를 대표적 예로 하는 OS 메이커에 의해 개발되고 있다는, 즉 양자는 개별적으로 개발되고 있다는 극히 단순한 이유에 의거하고 있다. 더욱 구체적인 예는 「카드 버스」에의 대응이다. 1995년에 발표된 Windows 95의 PCMCIA 기능(즉 Windows 95판의 소켓 서비스나 카드 서비스)은 32비트계이기는 하지만, 기능적으로는 1993년에 책정된 "PCMCIA Rel 2.1"(즉 1세대 이전의 사양)에 준거한 것으로, 최신의 "카드 버스" 사양에 대응하려면 더 시간을 요할 전망이다. 이것에 비하여, PC 카드 메이커는 1996년 중에는 카드 버스에 대응된 PC 카드나 디바이스 드라이버를 출하하고, 또한 PC 메이커도 동년 내에 카드 버스를 장비한 PC를 출하할 것이다. 한편, PC 카드 메이커나 공급하는 카드 버스 대응 디바이스 드라이버는 일반적으로는 16비트계로서, Windows 95의 32비트 모드에서는 사용할 수 없다. 카드 버스 대응 디바이스 드라이버가 16비트계로서 디자인되는 것은 Windows 95가 카드 버스에 대응하고 있지 않기 때문이다.
요약하자면, Windows 95 네이티브의 디바이스 드라이버는 32비트계의 고기능의 디바이스 드라이버이지만 최신의 PCMCIA/JEIDA 사양에 준거한 PC 카드를 동작시키지 못하는 한편, PC 카드 메이커가 공급하는 디바이스 드라이버는 최신의 PC 카드를 구동 가능하지만 16비트계(즉 DOS/Windows 3.x용)의 디바이스 드라이버에 불과하다는 모순을 생기게 하는 것이다3).
Windows 95 네이티브 모드에서는 카드 버스 대응의 PC 카드를 사용할 수 없다. 만일 유저가 카드 버스 대응의 PC 카드를 사용하고자 하는 경우에는 DOS/Windows 3.x용의 16비트계 디바이스 드라이버를 사용할 수 밖에 없다. 그러나, Windows 95에서 32비트 모드와 16비트 모드가 배타적이므로, 예컨데 PC 카드를 16비트 모드로 동작하는 경우에는 대응하는 32비트계의 서브 시스템(즉 PCMCIA 버스 에뉴머레이터)를 기동시에 디세이블해 두어야만 한다. 또, 32비트 모드와 16비트 모드의 전환은 정적인 것으로, 기동시에 디세이블된 32비트 모드를 기동중에 인에이블시키는 것은 불가능하다.
따라서, Windows 95 네이티브 모드하에서 PC 카드를 사용하는데는 이하의 문제점이 수반하게 된다. 즉,
(1) 카드 버스 대응의 PC 카드를 사용하는 경우에는 DOS/Windows 3.x용의 카드 버스 대응 드라이버(즉 16비트 드라이버)를 로드함과 동시에, 미리 PCMCIA 버스 에뉴머레이터(즉, 32비트 드라이버)를 디세이블해 두어야만 한다. 이 경우, Windows 95 네이티브의 디바이스 드라이버를 전혀 사용할 수 없으므로, 그 후 Windows 95 대응의 PC 카드를 장착해도 DOS/Windows 3.x용 19비트 드라이버로 계속해서 구동할 수 밖에 없다(또는 PC 카드를 동작시키지 못함). 이 결과, 클라이언트 드라이버의 자동 로딩을 비롯한 Windows 95 네이티브 드라이버의 장점을 전혀 활용할 수 없게 된다.
(2) Windows 95의 일부 서브 시스템을 16비트 모드로 동작하고 있기 때문에, OS의 커넬에서는 끊임없이 32비트~16비트간의 스위칭이 행해져, 시스템 전체의 퍼포먼스가 저하되어 버린다.
(3) 반대로, PCMCIA 버스 에뉴머레이터(즉 32비트 드라이버)를 인에이블하고 있을 때 카드 버스 대응의 PC 카드를 삽입해도 이것에 대응하는 디바이스 드라이버(즉 Windows 95 외의 16비트 드라이버)를 사용할 수 없으므로, PC 카드를 사용할 수 없다. 즉, 버젼이 다른 PC 카드를 자유롭게 교환할 수 없는 경우도 발생할 수 있다. 이것은, PC 카드의 PnP 기능을 현저하게 손상시키게 된다. 또, 노트북 PC와 같이 시스템 구성의 동적인 변동이 요구되고 있는 머신에서는 이용성(usability)을 잃는 결과가 있다.
이 외에, PCMICA/JEIDA의 오래된 버젼에만 대응하고 있기 때문에, Windows 95 네이티브 드라이버에서는 동작하지 않는 기존의 PC 카드도 있다. 이와 같은 기존 제품의 유저는 DOS/Windows 3.x용의 기존 디바이스 드라이버를 사용할 수 밖에 없어서, 상기와 같은 문제점으로 고민하게 될 것이다.
[주석]
1) 카드 서비스는 클라이언트 드라이버에 대한 콜백 루틴(callback routine)의 엔트리 포인트(즉, 이벤트 레코드를 클라이언트에게 인도할 때의 공통 어드레스)를 등록함으로써, 클라이언트 등록을 행한다.
2) Windows 95의 PCMCIA 버스 에뉴머레이터는 소켓 서비스 부분과 그 외의 부분과의 사이에 프로그래밍 인터페이스(PI)를 준비하고 있다. 따라서, 예를 들면 다른 PC 카드 메이커는 Windows 95에 표준 첨부된 소켓 서비스 부분을 자사제품으로 치환할 수 있다.
3) 1993년판의 PC 카드 사양인 "PCMCIA Rel 2.1/JEIDA Ver 4.2"에서는 카드 속성 정보(CIS)나 카드 서비스, 소켓 서비스, 인터페이스 등에 대하여 규정하고 있다. 이에 대하여, 1995년판의 PC 카드 사양인 "PC Card Standard"에서는 또한 기존의 각 사양을 그레이드업한 것 외에 카드 버스나 파워 매니지먼트 사양, 멀티펑션에 대해서도 기술하고 있다.
본 발명의 목적은 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드로 동작하는 디바이스 드라이버가 공존하는 타입의 정보 처리 시스템에 적용 가능하며, 적절한 디바이스 드라이버에 의해 주변 디바이스를 인에이블하여 구동할 수 있는, 우수한 주변 디바이스의 자동 인에이블 방법을 제공하는 것이다.
본 발명의 다른 목적은 16비트계의 디바이스 드라이버에 의해 구동되는 PC카드와 32비트계의 디바이스 드라이버가 공존하는 타입의 정보 처리 시스템에 적용 가능하며, 적절한 디바이스 드라이버에 의해 PC 카드를 인에이블함과 동시에 구동할 수 있는, 우수한 PC 카드의 자동 인에이블 방법을 제공하는 것이다.
본 발명의 다른 목적은 DOS/Windows 3.x계의 디바이스 드라이버로만 작동할 수 있는 PC 카드가 삽입되었을 때에는 이 디바이스 드라이버에 의해 PC 카드를 인에이블하는 한편, Windows 95 네이티브의 디바이스 드라이버로 동작하는 PC가 삽입되었을 때에는 이 디바이스 드라이버에 의해 PC 카드를 인에이블할 수 있는, 우수한 PC 카드의 자동 인에이블 방법을 제공하는 것이다.
본 발명의 다른 목적은 Windows 95 내에 있는 서브 시스템(예를 들면 PCMCIA계의 서브 시스템)을 32비트 모드와 16비트 모드 사이에서 외관상은 동적으로 전환할 수 있는, 우수한 PC 카드의 자동 인에이블 방법을 제공하는 것이다.
제1도는 본 발명을 실현하는데 적합한 전형적인 퍼스널 컴퓨터(PC)의 하드웨어 아키텍쳐를 모식적으로 도시한 도면.
제2도는 본 발명에 의한 PnP 기능을 서포트하기 위한 소프트웨어 아키텍쳐를 모식적으로 도시한 도면.
제3도는 PC 카드가 시스템(100)에 삽입되었을 때, 본 실시예에 관한 각 디바이스 드라이버가 행하는 협동적 동작을 플로우차트화하여 도시한 도면.
제4도는 DOS/Window 3.x 호환 모드하에서 삽입된 PC 카드에 시스템 리소스를 할당하기 위한 순서를 플로우차트화하여 도시한 도면.
제5도는 Windows 95 네이티브 모드하에서 삽입된 PC 카드에 시스템 리소스를 할당하기 위한 순서를 플로우차트화하여 도시한 도면.
제6도는 PC카드가 시스템(100)으로부터 발취(拔取)되었을 때, 본실시예에 관한 각 디바이스 드라이버가 행하는 협동적 동작을 플로우차트화 하여 도시한 도면.
제7도는 퍼스널 컴퓨터에 주변 디바이스를 확장하는 모습을 도시한 도면으로서, 제7a도는 데스크톱 컴퓨터에 확장 어댑터 카드를 장착하는 모습을 도시한 도면이고, 제7b도는 노트북 컴퓨터에 PC 카드를 장착하는 모습을 도시한 도면.
제8도는 PC 카드를 서포트하는 소프트웨어 아키텍쳐를 도해한 블럭도.
제9도는 Windows 95의 PnP 아키텍쳐를 도해한 블럭도.
〈도면의 주요부분에 대한 부호의 설명〉
11 : CPU 12 : 메인 메모리
13 : ROM 14 : 표시 장치
15 : 입력 수단 16 : HDD
17 : FDD 18 : PC 카드 컨트롤러
19 : PC 카드 슬롯 20 : 버스
51 : 소켓 서비스 52 : PCMCIA 버스 에뉴머레이터(PCMCIA bus enumerator)
53 : 32비트 클라이언트 디바이스 드라이버
54 : 컨피그레이션 매니저
61 : 16비트 디바이스 드라이버
62 : 16비트 클라이언트 디바이스 드라이버
63, 64 : 가상 디바이스 드라이버
71 : 어플리케이션 프로그램
100 : 컴퓨터 시스템
본 발명은 상기 과제를 참작하여 이루어진 것으로서, 그 제1 측면은 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, 주변 디바이스의 자동 인에이블 방법에 있어서, (a) 주변 디바이스가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 이 주변 디바이스를 인에이블할 기회를 부여하는 단계와, (c) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 이 주변 디바이스가 인에이블되지 않았을때에만, 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 이 주변 디바이스를 인에이블할 기회를 부여하는 단계를 구비하는 것을 특징으로 하는 주변 디바이스의 자동 인에이블 방법이다.
또한, 본 발명의 제2 측면은 16비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 이 PC 카드를 인에이블할 기회를 부여하는 단계와, (c) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 이 PC 카드를 인에이블할 기회를 부여하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제3 측면은 32비트 모드 또는 16비트 모드의 어느 한쪽으로 동작 가능한 오퍼레이팅 시스템의 제어하에 놓임과 동시에, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 타입의 정보 처리 시스템상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 이 PC 카드를 인에이블할 기회를 부여하는 단계와, (c) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 이 PC 카드를 인에이블할 기회를 부여하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제4 측면은 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, 주변 디바이스의 자동 인에이블 방법에 있어서, (a) 주변 디바이스가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 자신이 이 주변 디바이스를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 주변 디바이스를 위한 시스템 리소스를 설정하는 단계와, (e) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 이 주변 디바이스가 인에이블되지 않았을 때에만, 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 주변 디바이스 드라이버를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e)단계에서 긍정 응답한 디바이스 드라이버가 장착된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 주변 디바이스를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 주변 디바이스의 자동 인에이블 방법이다.
또한, 본 발명의 제5 측면은 16비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계와, (e) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e) 단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제6 측면은 32비트 모드 또는 16비트 모드의 어느 한쪽으로 동작 가능한 오퍼레이팅 시스템의 제어하에 놓임과 동시에, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 타입의 정보 처리 시스템 상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계와, (e) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e) 단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제7 측면은 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, 주변 디바이스의 자동 인에이블 방법에 있어서, (a) 장착 중인 주변 디바이스가 발취된 것을 검출하는 단계와, (b) 발취된 주변 디바이스가 제1 어드레싱 모드로 동작하는 디바이스 드라이버로 구동되어 있으면, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (c) 상기 (b)단계에서의 통지에 응답하여 제1 어드레싱 모드로 동작하는 디바이스 드라이버가, 발취된 주변 디바이스에 할당되어 있던 시스템 리소스를 해방함으로써, 이 주변 디바이스를 디세이블하는 단계와, (d) 발취된 주변 디바이스가 제2 어드레싱 모드로 동작하는 디바이스 드라이버로 구동되고 있으면, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (e) 상기 (d)에서의 통지에 응답하여 제2 어드레싱 모드로 동작하는 디바이스 드라이버가, 발취된 주변 디바이스에 할당되어 있던 시스템 리소스를 해방함으로써, 이 주변 디바이스를 디세이블하는 단계를 구비하는 것을 특징으로 하는 주변 디바이스의 자동 인에이블 방법이다.
또한, 본 발명의 제8 측면은 16비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드로 동작하는 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 타입의 정보 처리 시스템상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) 장착중인 PC 카드가 발취된 것을 검출하는 단계와, (b) 발취된 PC 카드가 16비트 모드로 동작하는 디바이스 드라이버로 구동되고 있으면, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (c) 상기 (b)단계에서의 통지에 응답하여 16비트 모드로 동작하는 디바이스 드라이버가, 발취된 PC 카드에 할당되어 있던 시스템 리소스를 해방함으로써, 이 PC 카드를 디세이블하는 단계와, (d) 발취된 PC 카드가 32비트 모드로 동작하는 디바이스 드라이버로 구동되고 있으면, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (e) 상기 (d)에서의 통지에 응답하여 32비트 모드로 동작하는 디바이스 드라이버가, 발취된 PC 카드에 할당되어 있던 시스템 리소스를 해방함으로써, 이 PC 카드를 디세이블하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제9 측면은 32비트 모드 또는 16비트 모드의 어느 한쪽으로 동작 가능한 오퍼레이팅 시스템의 제어하에 놓임과 동시에, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 타입의 정보 처리 시스템 상에서 적용되는, PC 카드의 자동 인에이블 방법에 있어서, (a) 장착중인 PC 카드가 발취된 것을 검출하는 단계와, (b) 발취된 PC 카드가 16비트 모드로 동작하는 디바이스 드라이버로 구동되고 있으면, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (c) 상기 (b)단계에서의 통지에 응답하여 16비트 모드로 동작하는 디바이스 드라이버가, 발취된 PC 카드에 할당되어 있던 시스템 리소스를 해방함으로써, 이 PC 카드를 디세이블하는 단계와, (d) 발취된 PC 카드가 32비트 모드로 동작하는 디바이스 드라이버로 구동되고 있으며, 이 디바이스 드라이버에 대하여 발취된 것을 통지하는 단계와, (e) 상기 (d)에서의 통지에 응답하여, 32비트 모드로 동작하는 디바이스 드라이버가, 발취된 PC 카드에 할당되어 있던 시스템 리소스를 해방함으로써, 이 PC 카드를 디세이블하는 단계를 구비하는 것을 특징으로 하는 PC 카드의 자동 인에이블 방법이다.
또한, 본 발명의 제10 측면은 제1 어드레싱 모드 또는 제2 어드레싱 모드로 동작하는 타입의 컴퓨터 시스템상에서의 주변 디바이스의 자동 인에이블 프로세스를 실현하기 위한 컴퓨터 프로그램을 유형적으로 저장한 컴퓨터 가독(可讀) 기억 매체에 있어서, 상기 프로세스는 (a) 주변 디바이스가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 자신이 이 주변 디바이스를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 주변 디바이스를 위한 시스템 리소스를 설정하는 단계와, (e) 주변 디바이스의 장착에 응답하여, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 이 주변 디바이스가 인에이블되지 않았을 때에만, 제2 어드레싱 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 주변 디바이스를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 주변 디바이스를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 가독(可讀) 기억 매체이다.
또한, 본 발명의 제11 측면은 16비트 모드 또는 32비트 모드로 동작하는 타입의 컴퓨터 시스템상에서의 PC 카드의 자동 인에이블 프로세스를 실현하기 위한 컴퓨터 프로그램을 유형적으로 저장한 컴퓨터 가독 기억 매체에 있어서, 상기 프로세스는 (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가 장착된, PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계와, (e) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이드 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 가독 기억 매체이다.
또한, 본 발명의 제12 측면은 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 타입의 컴퓨터 시스템상에서의 PC 카드의 자동 인에이블 프로세스를 실현하기 위한 컴퓨터 프로그램을 유형적으로 저장한 컴퓨터 가독 기억 매체에 있어서, 상기 프로세스는 (a) PC 카드가 상기 정보 처리 시스템에 장착된 것을 검출하는 단계와, (b) PC 카드의 장착에 응답하여, 16비트 모드로 동작하는 디바이스 드라이버에 대하여 우선적으로 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (c) 상기 (b)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (d) 상기 (c)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계와, (e) PC 카드의 장착에 응답하여, 15비트 모드로 동작하는 디바이스 드라이버에 의해 이 PC 카드가 인에이블되지 않았을 때에만, 32비트 모드로 동작하는 디바이스 드라이버에 대하여 자신이 이 PC 카드를 구동 가능한 디바이스 드라이버인지의 여부를 확인할 기회를 부여하는 단계와, (f) 상기 (e)단계에서 긍정 응답한 디바이스 드라이버가, 장착된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와, (g) 상기 (f)단계에서의 요구에 응답하여, 장착된 PC 카드를 위한 시스템 리소스를 설정하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 가독 기억 매체이다.
이렇게 하여, 본 발명의 제1 내지 제6 측면에 관한 주변 디바이스/PC 카드의 자동 인에이블 방법에 따르면, 컴퓨터 시스템의 PC 카드 슬롯에 DOS/Windows 3.x 호환의 16비트 디바이스 드라이버회로만 동작하는 PC 카드가 삽입되었을 때에는, 대응하는 16비트 디바이스 드라이버에 의해 PC 카드가 자동적으로 인에이블된다. 또한, Windows 95 네이티브의 32비트 디바이스 드라이버로 동작하는 PC 카드가 삽입되었을 때에는, 대응하는 32비트 디바이스 드라이버에 의해 PC 카드가 자동적으로 인에이블된다.
또한, DOS/Windows 3.x 호환 모드에서만 동작하는 PC 카드로부터 Windows 95 네이티브 모드로 동작 가능한 PC 카드로 교환되었을 때나, 반대로 Windows 95 네이티브 모드로 동작 가능한 PC 카드로부터 DOS/Windows 3.x 호환 모드로만 동작하는 PC 카드로 교환되었을 때에도, 각각의 경우에 적당한 디바이스 드라이버에 의해 PC 카드가 자동적으로 인에이블된다. 즉, 외견상은 시스템이 Windows 95 네이티브 모드와 DOS/Windows 3.x 호환 모드 사이를 동적으로 전환할 수 있다.
또한, 본 발명의 제7 내지 제9 측면에 관한 주변 디바이스/PC 카드의 자동인에이블 방법에 따르면, DOS/Windows 3.x 호환의 16비트 디바이스 드라이버로 동작중인 PC 카드가 발취되고, 또는 Windows 95 네이티브의 32비트 디바이스 드라이버로 동작중인 PC 카드가 발취되었을 때에는 각각의 경우에 대응하는 디바이스 드라이버에 대하여 카드 발취 사실이 통지되도록 되어 있다. 이 결과, 대응하는 디바이스 드라이버는 PC 카드에 할당되어 있던 시스템 리소스를 해방시킴으로써, PC 카드를 디세이블할 수 있다.
또한, 본 발명의 제10 내지 제12 측면에 관한 컴퓨터 가독 기억 매체는 컴퓨터 프로그램의 기능을 실현하기 위한 컴퓨터 프로그램과 기억 매체와의 구조상 또는 기능상의 협동적 관계를 정의한 것이다. 바꿔말하면, 이 컴퓨터가 가독 기억 매체를 컴퓨터 시스템에 조립함으로써, 컴퓨터 시스템상에서는 협동적 작용이 발휘되어 본 발명의 제1 내지 제6 측면과 같은 효과를 얻을 수 있다.
본 발명은 예를 들면, PC 카드 컨트롤러를 직접 하드웨어 조작하는 소켓 서비스가 16비트 카드 서비스 및 32비트 카드 서비스의 각각에 대하여 적절하게 동작하는 형태로서 바람직하게 실현될 것이다. 즉, Windows 95에 첨부된 소켓 서비스를 치환함으로써 적절하게 실현된다. 바꿔말하면, 16비트 카드 서비스와 32비트 카드 서비스 및 각 카드 서비스의 클라이언트 디바이스 드라이버는 본 발명의 실현만을 목적으로 하여 설계 변경할 필요는 전혀 없다. 상세한 것은 다음의 발명의 실시예의 설명 부분을 참조하기 바란다.
또, 본 발명의 제2, 제3, 제5와 제6 측면 및 본 발명의 제11 및 제12 측면에 따르면, 16비트계의 디바이스 드라이버에 대하여 우선적으로 PC 카드를 인에이블할 기회를 부여하도록 하고 있다. 이것은 주로 이하의 이유에 의거한다. 즉,
(1) Windows 95는 자신에게 네이티브의 디바이스 드라이버를 자동 로딩할 수 있는 한편, 삽입된 PC 카드에 대응하는 디바이스 드라이버가 인스톨되어 있지 않으면, 시스템이 「디바이스 드라이버를 인스톨하여 주십시오」라는 요지의 유저 메시지를 표시하도록 설계되어 있다. 이 때문에, Windows 95 네이티브 모드를 우선시킨 경우, 16비트 디바이스 드라이버로만 구동하는 PC 카드가 삽입되었을 때에는 유저 메시지 상태(즉 웨이트 상태)에 빠져서, 16비트 디바이스 드라이버에 대한 문의로 진행할 수 없다.
(2) 16비트 디바이스 드라이버는 DOS/Windows 3.x 호환 드라이버이며, 유저가 "config.sys" 화일에 기술함으로써 각 디바이스 드라이버의 인스톨 유무를 컨트롤하도록 되어 있다.
오퍼레이팅 시스템이 Windows 95와 같이 설계되어 있지 않을 경우에는 16비트계의 디바이스 드라이버에 대한 문의를 우선시키는 적극적인 이유가 아니라, 반대로 32비트계의 디바이스 드라이버에 우선권을 부여하여도 동일한 효과를 나타낼 것이다.
본 발명의 또 다른 목적, 특징이나 이점은 후술하는 본 발명의 실시예나 첨부하는 도면에 기초한 보다 상세한 설명에 의해 명확해 질 것이다.
이하, 도면을 참조하면서 본 발명의 실시예를 상세히 설명한다.
[A. 시스템 구성]
[하드웨어 구성]
도1에는 본 발명을 실현하는데 적합한 전형적인 퍼스널 컴퓨터(PC : 100)의 하드웨어 아키텍쳐를 모식적으로 도시하고 있다.
PC(100)는 CPU(11)와 메인 메모리(12)와 ROM(13)과 표시 장치(14)와 입력 수단으로서의 키보드/마우스(15)와 하드 디스크 드라이브(HDD : 16) 및 플로피 디스크 드라이브(FDD : 17)와 PC 카드 컨트롤러(18)와 PC 카트 슬롯(19)을 포함하고 있다.
메인 컨트롤러인 CPU(11)는 OS(후술)의 제어하에서 각종 프로그램을 실행하도록 되어 있다. CPU(11)는 데이타 신호선, 어드레스 신호선, 컨트롤 신호선 등을 포함하는 공통 신호 전송로(버스 : 20)를 통하여 다른 하드웨어 구성 요소와 상호 접속되어 있다.
메인 메모리(12)는 DRAM(다이나믹 RAM)등의 기입 가능한 메모리로 구성되며, CPU(11)가 실행하는 각 프로그램(OS나 PC 카드용 디바이스 드라이버를 포함함)을 로드하거나, 각 프로그램을 실행하기 위한 작업 영역으로서 이용된다. 또한, ROM(13)은 소정의 코드를 항구적으로 저장하기 위한 비휘발성 메모리이다. 여기에서 말하는 「소정의 코드」에는 시스템 시동시의 실행 프로그램(POST)등이 포함된다.
HDD(16)나 FDD(17)는 이른바 외부 기억 장치로서, 컴퓨터 프로그램이나 그 작업 데이타의 보관 장소이다. 본 발명을 실현하는데 있어서 협동적으로 작용하는 OS나 각종 디바이스 드라이버도 HDD(16)나 FDD(17)에 인스톨되어 있고, 시스템 기동시 또는 가동중에 적절하게 메인 메모리(12)에 로드되도록 되어 있다. HDD(16)나 FDD(17)는 PC(100)에 표준 장비되어 있는 곳에서도 착탈이 자유로운 형태로 옵션 접속된 것이라도 좋다.
PC 카드 슬롯(19)는 PCMCIA/JEIDA의 규격에 준거한 PC 카드를 수용 가능하게디자인되어 있다. 슬롯(19)은 일반적으로는 타입Ⅰ/Ⅱ 카드를 2매 겹쳐서, 혹은 타입Ⅲ 카드를 1매 수용할 수 있다.
PC 카드 컨트롤러(18)는 PC 카드 슬롯(19)에 수용된 PC 카드와 시스템(100)사이에서의 인터페이스 프로토콜을 실현하기 위한 전용 컨트롤러이다. 이 컨트롤러(18)는 슬롯(19)으로의 PC 카드의 착탈 상황을 나타내는 레지스터(카드 착탈 레지스터) 등의 복수의 레지스터(도시하지 않음)를 포함하고 있다. CPU(11)가 실행하는 상위 프로그램은 소켓 서비스 경유하여 PC 카드 컨트롤러(18)를 하드웨어 조작할 수 있다. 또한, 카드 서비스 등의 상위 프로그램은 소켓 서비스 경유하여 카드 착탈 레지스터를 폴링(즉 정기적인 감시)을 행함으로써 카드의 착탈을 검출할 수 있다[단, 폴링 대신에 인터럽트 요구(IRQ)를 발행함으로써 카드의 착탈을 통지하도록 하여도 동일하게 동작한다는 것은 말할 필요도 없음].
또, 컴퓨터 시스템(100)을 구성하기 위해서는 도1에 도시한 것 이외에도 많은 하드웨어 구성 요소가 필요하다. 단, 이것들은 당업자에게는 주지된 사실이며, 또한 본 발명의 요지를 구성하는 것은 아니므로, 본 명세서 내에서는 생략하고 있다.
[소프트웨어 구성]
도2에는 본 발명에 의한 PnP 기능을 서포트하기 위한 소프트웨어 아키텍쳐(특히 PCMCIA계의 서브 시스템)를 모식적으로 도시하고 있다. 동 도면중에서 사선 블럭은 32비트 모드(Windows 95 네이티브 모드)로 동작 가능한 소프트웨어이며, 사선없는 블럭은 16비트 모드(DOS/Windows 3.x 호환 모드)로 동작 가능한 소프트 웨어이다.
소프트웨어의 최하층은 소켓 서비스(51)이다. 소켓 서비스(51)는 하드웨어층의 상위(相違)를 흡수하기 위한 디바이스 드라이버이며, PC 카드 컨트롤러에 직접 억세스하기 위한 펑션콜을 구비하고 있다. 본 실시예의 소켓 서비스(51)의 특필(特筆)해야 할 기능은 상위의 각 카드 서비스(후술)로부터의 폴링에 대해서는 소정의 수속에 따라 PC 카드 슬롯(19)에서의 사실(이벤트)을 통지하는 점이다. 이 소정의 수속에 따른 동작에 대해서는 후속하는 B항을 참조하기 바란다. 또, Windows 95 네이티브의 소켓 서비스는 이 기능을 구비하고 있지 않기 때문에, 이 기능을 장비한 소켓 서비스(51)로 치환함으로써, 본 발명은 실현 가능해진다(Windows 95 네이티브의 소켓 서비스를 치환 가능하다는 점은 이미 설명하였음).
PCMCIA 버스 에뉴머레이터(52)는 PC 카드의 시스템 리소스를 관리하기 위한 카드 서비스나, PC 카드를 인에이블하기 위한 커먼 인에이블러, 32비트 클라이언트 디바이스 드라이버를 자동 로드하기 위한 디바이스 드라이버 로더, 컨피그레이션 매니저(C/M)와 대화하기 위한 C/M 인터페이스를 장비하고 있다. 이 중 카드 서비스 부분(이하, 「32비트 카드 서비스」라 함)은 소켓 서비스(51)에 대한 펑션 콜을 구비하는 한편, 소켓 서비스(51) 경유로 PC 카드 슬롯(19)의 상황을 폴링하도록 되어 있다. 또한 커먼 인에이블러는 시스템(100)에 인스톨 완료된 클라이언트 디바이스 드라이버(53)에 의해 구동 가능한 PC 카드를 인에이블 처리하도록 되어 있다. 본 실시예의 PCMCIA 버스 에뉴머레이터(52)는 Windows 95 네이티브의 PCMCIA 버스 에뉴머레이터(단, 소켓 서비스 부분을 제외)로 좋다.
컨피그레이션 매니저(54)는 시스템 전체의 리소스를 관리하기 위한 소프트웨어이다. 컨피그레이션 매니저(54)는 예를 들면, PCMCIA 버스 에뉴머레이터(52)가 사용 요구하는 시스템 리소스가 다른 서브 시스템에서 사용중인 시스템 리소스와 결합하지 않도록 조정 작업을 행하게 되어 있다. 컨피그레이션 매니저(54)는 Windows 95 네이티브의 것이 좋다.
참조 번호 53은 32비트 카드 서비스에 클라이언트 등록된 32비트 클라이언트 드라이버이다. 32비트 클라이언트 드라이버는 Windows 95 대응의 PC 카드(혹은 PCMCIA Rel 2.1 준거의 PC 카드)를 구동하기 위하여 사용된다. 단, PCMCIA 버스 에뉴머레이터(52)는 자동 로딩 기능을 구비하고 있기 때문에, 32비트 클라이언트 드라이버는 메모리에 상주할 필요는 없다.
16비트 카드 서비스(61)는 Windows 95 네이티브 모드에서는 인에이블할 수 없는 타입의 PC 카드의 시스템 리소스를 관리하기 위하여 설치되어 있다. 여기에서 말하는 Windows 95 네이티브 모드에서는 인에이블할 수 없는 PC 카드란 최신의 PCMCIA/JEIDA 사양(즉, "PC Card Standard")에 준거한 PC 카드나 PCMCIA Rel 2.1 이전의 사양에 준거한 구식 PC 카드이다. 또한, 카드 서비스(61)는 소켓 서비스(51)에 대한 펑션 콜을 구비함과 동시에, 소켓 서비스(51) 경유로 PC 카드 슬롯(19)의 상황을 폴링하도록 되어 있다. 또, 16비트 카드 서비스(61)는 Windows 95 네이티브에서는 없고, 또 이것에 표준 첨부되어 있지도 않다. 따라서, Windows 95의 유저는 16비트 디바이스 드라이버로 PC 카드를 구동시키고자 할 경우에는 자체적으로 카드 서비스(61)를 인스톨해야만 한다.
참조 번호 62는 16비트 카드 서비스(61)에 클라이언트 등록된 16비트 클라이언트 디바이스 드라이버이다. 16비트 클라이언트 드라이버는 Windows 95에 대응하지 않는 PC 카드를 구동하기 위하여 사용된다. DOS/Windows 3.x에서는 자동 로딩 기능을 구비하고 있지 않기 때문에, 16비트 클라이언트 디바이스 드라이버는 메모리에 상주할(즉 " config.sys" 화일 중에서 지정함) 필요가 있다.
참조 번호 63 및 64는 이른바 가상 디바이스 드라이버(VxD)이다. VxD는 어드레스 모드의 상이(相異)를 흡수하기 위하여 설치된 것으로, VxD(63)는 소켓 서비스(51)와 카드 서비스(61)와의 사이를, 또한 VxD(64)는 카드 서비스(61)와 컨피그레이션 매니저(54)와의 사이를 각각 중개하도록 되어 있다. VxD의 구성이나 동작은 본 발명의 요지와는 직접 관련되지 않기 때문에, 이 이상의 상세한 언급은 하지 않는다.
참조 번호 71은 이른바 어플리케이션 프로그램이다. PC 카드 이용의 편의를 도모하기 위한 PCMCIA 유틸리티 등은 어플리케이션 프로그램에 해당한다.
[B. PnP 서포트 오퍼레이션]
이상, 본 발명을 구현하는 컴퓨터 시스템(100)의 하드웨어 및 소프트웨어 구성을 설명하였다. 이하에서는, 이 시스템의 동작과 함께 본 발명의 작용에 대하여 설명하기로 한다.
[B-1. PC 카드 삽입 오퍼레이션]
도3에는 PC 카드가 시스템(100)에 삽입되었을 때에 각 디바이스 드라이버가 행하는 협동적 동작을 플로우차트화하여 도시하고 있다.
PC 카드가 PC 카드 슬롯(19)에 삽입됨으로써 처리가 개시된다(단계 S100).
이 동안, 16비트 카드 서비스(61)나 32비트 카드 서비스는 각각 소켓 서비스(51) 경유로 PC 카드 슬롯(19)의 상황을 폴링하고 있다(단계 S102).
소켓 서비스(51)는 폴링 요구를 수취했을 때에는 먼저, 16비트 카드 서비스(61)가 시스템(100)에 로드되어 있는지의 여부를 판단한다(단계 S104). 16비트 카드 서비스(61)가 존재하지 않으면 DOS/Windows 3.x 호환 모드에 의한 PC 카드의 인에이블 처리를 완성할 수 없기 때문에, 그 판단 단계의 분기 "No"로 빠져서, Windows 95 네이티브 모드에 의한 PC 카드의 인에이블 처리를 실시한다(단계 S116 : 후술). 또, 소켓 서비스는 일반적으로 기동시에 각 카드 서비스와 프로그래밍 인터페이스를 교환하도록 되어 있고, 그 처리의 유무에 따라서 16비트 카드 서비스(16)의 존재를 검지할 수 있다.
한편, 판단 단계 S104의 결과가 긍정적이면, 다음 단계 S106으로 진행하여 소켓 서비스(51)가 수취한 폴링 요구가 16비트 카드 서비스(61)에 의한 것인지의 여부를 판단한다. 16비트 카드 서비스(61) 이외의 것에 의한 폴링 요구라면, 단계 S102로 복귀하여 16비트 카드 서비스(61)로부터의 폴링 요구시까지 대기한다.
폴링 요구가 16비트 카드 서비스(61)에 의한 것이라면, 소켓 서비스(51)는 16비트 카드 서비스(61)에 대하여 카드 삽입 사실(삽입 이벤트)을 통지한다(단계 S108).
카드 삽입 사실을 통지 받은 16비트 카드 서비스(61)는 자체적으로 PC 카드의 인에이블 처리(즉 DOS/Windows 3.x 호환 모드에 의한 인에이블 처리)를 실시한다(단계 S110). 이 인에이블 처리의 상세는 후술한다.
계속하여, 단계 S112에서는 16비트 카드 서비스(61)에 의해 PC 카드의 인에이블이 실제로 행해졌는지의 여부를 판단한다. 그 판단은 예를 들면, 소켓 서비스(51) 자신이 새로운 시스템 리소스의 내용을 PC 카드 컨트롤러(18)에 프로그램했는지의 여부를 기억하여 둠으로써 가능하다.
16비트 카드 서비스(61)에 의해 PC 카드의 인에이블 처리가 행해지지 않으면, 32비트 카드 서비스(즉 Windows 95 네이티브 모드)에 의해 PC 카드의 인에이블 처리를 실시할 필요가 있다. 이 때문에, 판단 단계 S112의 분기 "No"에서 단계 S116으로 진행하여 Windows 95 네이티브 모드에 위한 PC 카드의 인에이블 처리를 실시한다.
한편, 16비트 카드 서비스(61)에 의해 PC 카드의 인에이블 처리가 완료되면, 판단 단계 S112의 분기 "Yes"로 진행하여 전(全)처리를 종료한다(단계 S114). 이후, 소켓 서비스(51)는 32비트 카드 서비스로부터의 폴링에 대해서는 계속 무시한다. 이 때문에, 32비트 카드 서비스는 PC 카드가 실제로 삽입되어 있는데도 불구하고, 카드의 삽입을 알지 못하는 상태를 유지하며, Windows 95 네이티브 모드에 의한 PC 카드의 인에이블 처리가 행해지지 않는다. 또한, PC 카드의 구동은 16비트 클라이언트 디바이스 드라이버에 의해 행해지게 된다.
또, 이 플로우차트에서 2개의 판단 단계 S104 및 S106을 마련함으로써, 16비트 카드 드라이버(61)에 대하여 우선적으로 카드 삽입 사실을 통지하여, DOS/Windows 3.x 호환 모드에 의한 PC 카드의 인에이블 처리를 우선하도록 하고 있다. 이것은 주로,
* Windows 95는 자체적으로 네이티브의 디바이스 드라이버를 자동 로딩할 수 있는 한편, 삽입된 PC 카드에 대응하는 디바이스 드라이버가 인스톨되어 있지 않으면, 시스템이 「디바이스 드라이버를 인스톨하여 주십시오」라는 요지의 유저 메시지를 표시하도록 설계되어 있다. 이 때문에, Windows 95 네이티브 모드를 우선시킨 경우, 16비트 클라이언트 디바이스 드라이버로만 구동하는 PC 카드가 삽입되었을 때에는 유저 메시지 상태(즉 웨이트 상태)에 빠져서, DOS/Windows 호환 모드[즉 16비트 카드 서비스(61)]에 의한 인에이블 처리로 진행할 수 없다. *
라는 이유에 의거한 것이다. 오퍼레이팅 시스템이 Windows 95와 같이 설계되어 있지 않은 경우에는 16비트계의 디바이스 드라이버를 우선시키는 적극적인 이유가 아니라, 반대로 32비트계의 디바이스 드라이버에 우선권을 부여하도록 하여도 좋다.
[DOS/Windows 호환 모드하에서의 인에이블 처리]
도4에는 DOS/Windows 호환 모드하에서 PC 카드를 인에이블하기 위한 처리 순서(즉 도3의 단계 S110)를 더욱 상세히 플로우차트화하여 도시하고 있다.
폴링의 결과로서 카드 삽입 사실을 수취한 16비트 카드 서비스(61)는 자체적으로 클라이언트 등록하고 있는 각 클라이언트 디바이스 드라이버(62 …)에 대하여 카드 삽입 사실을 순차적으로 통지한다(단계 S202).
각 클라이언트 디바이스 드라이버(62 …)는 각각 카드 서비스(61) 및 소켓 서비스(51) 경유로 PC 카드 내의 메모리로부터 카드 속성 정보(타플)을 독해하고(단계 S204), 타플의 내용에 따라서 자신이 구동해야 할 PC 카드인지의 여부를 판단한다(단계 S206).
자신이 구동해야 할 PC 카드가 아니라고 판단한 클라이언트 디바이스 드라이버는 단계 S208로 진행하여 카드 삽입 사실을 무시하고 인에이블 처리를 행하지 않는다.
이에 반하여, 자신이 구동해야 할 PC 카드라고 판단한 클라이언트 디바이스 드라이버는 단계 S210으로 진행하여 타플의 내용으로부터 PC 카드에 필요한 시스템리소스를 인지하고, 16비트 카드 서비스(61)에 대하여 시스템 리소스의 할당을 요구한다.
16비트 카드 서비스(61)는 자신의 리소스 테이블을 참조함과 동시에, 가상 디바이스 드라이버(64) 경유로 컨피그레이션 매니저(54)에 문의하여 시스템 리소스의 사용을 확인한다. 그리고, 시스템 리소스의 사용이 확인되면, 클라이언트 디바이스 드라이버는 16비트 카드 서비스(61) 경유로 PC 카드 컨트롤러(18)를 프로그램하여 PC 카드를 시스템 구성에 조립한다(단계 S212). 이 결과, PC 카드는 DOS/Windows 3.x 호환 모드로 인에이블되게 된다.
[Windows 95 네이티브 모드하에서의 인에이블 처리]
도5에는 Windows 95 네이티브 모드하에서 PC 카드를 인에이블하기 위한 처리 순서(즉 도3의 단계 S116)를 더욱 상세히 플로우차트화하여 도시하고 있다.
먼저, 32비트 카드 서비스는 소켓 서비스(51)에 대하여 폴링을 요구함으로써, 카드 삽입 사실을 수취한다(단계 S302).
계속하여, PCMCIA 버스 에뉴머레이터 내의 커먼 인에이블러는 32비트 카드 서비스 및 소켓 서비스(51) 경유로, PC 카드내의 메모리로부터 카드 속성 정보(타플)을 독해한다(단계 S304). 또한, 필요에 따라서 FDD(17) 등의 보조 기억 장치로부터 PC 카드 구동을 위한 정보를 저장하고 있는 INF 화일을 판독한다.
타플이나 INF 화일의 내용에 의해 커먼 인에이블러가 인에이블할 수 있는 PC 카드인 것이 판단된 경우에는, 커먼 인에이블러는 컨피그레이션 매니저(54)에 대하여 PC 카드의 시스템 리소스 사용을 요구한다. 계속하여, 커먼 인에이블러는 32 비트 카드 서비스 및 소켓 서비스(51) 경유로 PC 카드 컨트롤러(18)를 프로그램한다(단계 S306). 이 결과, PC 카드는 Windows 95 네이티브 모드로 인에이블되게 된다.
반대로, 커먼 인에이블러에 의해 인에이블할 수 없는 PC 카드인 것이 판단된 경우에는, 대응하는 클라이언트 디바이스 드라이버의 시스템(100)으로의 인스톨[즉 HDD(17)에의 복수]을 촉구하는 유저 메시지를 표시한다(단계 S308). 그리고, 유저가 지정된 클라이언트 디바이스 드라이버를 인스톨하면, 이 클라이언트 디바이스 드라이버에 대해 카드 삽입 사실을 통지하여 PC 카드의 인에이블 처리(즉 시스템 리소스의 할당)를 행하게 한다(단계 S310). 이 결과, PC 카드는 Windows 95 네이티브 모드로 인에이블되게 된다.
PC 카드가 인에이블되면, PCMCIA 버스 에뉴머레이터 내의 디바이스 드라이버 로더는 INF 화일에 기술되어 있는 클라이언트 디바이스 드라이버를 메모리(12)에 자동 로드한다(S312). 이 결과, 시스템(100)이 PC 카드를 이용 가능하게 된다.
[B-2. PC 카드 리무벌 오퍼레이션]
도6에는 PC 카드가 시스템(100)으로부터 발취되었을 때, 본 실시예에 관한 각 디바이스 드라이버가 행하는 협동적 동작을 플로우차트화 하여 도시하고 있다.
PC 카드가 발취되면(단계 S402), 소켓 서비스(51)는 이 PC 카드가 32비트 카드 서비스 또는 16비트 카드 서비스(61)의 어느쪽의 관리하에 놓여 있는지를 판단한다(단계 S404).
PC 카드가 16비트 카드 서비스(61)의 관리하에 있으면, 소켓 서비스(51)는 16비트 카드 서비스(61)로부터의 폴링에 대해서만 카드 발취 사실(리무벌 이벤트)를 통지한다(단계 S406). 이 결과, 16비트 카드 서비스(61)는 대응하는 클라이언트 디바이스 드라이버에 그 사실을 보고한다. 보고를 받은 클라이언트 디바이스 드라이버는 PC 카드에 할당되어 있던 시스템 리소스를 해방시켜 PC 카드를 디세이블한다.
한편, PC 카드가 32비트 카드 서비스의 관리하에 있으면, 소켓 서비스(51)는 32비트 카드 서비스로부터의 폴링에 대해서만 카드 발취 사실(리무벌 이벤트)을 통지한다(단계 S408). 이 결과, 32비트 카드 서비스는 대응하는 클라이언트 디바이스 드라이버에 그 사실을 보고한다. 보고를 받은 클라이언트 디바이스 드라이버는 PC 카드에 할당되어 있던 시스템 리소스를 해방시켜 PC 카드를 디세이블한다.
이와 같이 하여, PC 카드가 디세이블된 후에는, 소켓 서비스(51)는 다음에 PC 카드가 삽입될 때까지 대기한다.
[C. 덧붙임]
이상, 특정의 실시예를 참조하면서, 본 발명에 대하여 상세히 설명하였다. 그러나, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 그 실시예의 수정이나 대용을 이룰 수 있는 것은 자명하다, 본 명세서에서는 PCMCIA/JEIDA의 규격에 준거한 PC 카드의 자동 인에이블을 예로 들어 설명하고 있지만, 본 발명의 요지는 이것에 한정되지는 않는다. 다른 소정 규격에 준거한 메모리 카드, I/O 카드 등의 주변 디바이스를 표준 장비 또는 옵션 장비 가능한 정보 처리 시스템에 대해서도 본 발명을 적용할 수 있다. 요컨데, 예시적인 형태로 본 발명을 개시한 것이며 한 정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는, 뒤에 기재하는 특허 청구의 범위 란을 참조해야 한다.
이상 상세히 기술한 바와 같이, 본 발명에 따르면, 제1 어드레싱 모드로 동작하는 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드로 동작하는 디바이스 드라이버가 공존하는 타입의 정보 처리 시스템에 적용 가능하며, 적절한 디바이스 드라이버에 의해 주변 디바이스를 인에이블하여 구동할 수 있는 우수한 주변 디바이스의 자동 인에이블 방법을 제공할 수 있다.
더욱 구체적으로는, 본 발명에 따른 DOS/Windows 3.x계의 디바이스 드라이버로만 동작하는 PC 카드가 삽입되었을 때에는 그 디바이스 드라이버에 의해 PC 카드를 인에이블하는 한편, Windows 95 네이티브의 디바이스 드라이버로 구동하는 PC 카드가 삽입되었을 때에는 그 디바이스 드라이버에 의해 PC 카드를 인에이블할 수 있다. 즉, 외견상으로는 PCMCIA계의 서브 시스템이 Windows 95 네이티브 모드와 DOS/Windows 3.x 호환 모드와의 사이를 동적으로 전환하는 것이다.

Claims (9)

  1. 제1 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스의 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는 주변 디바이스의 자동 인에이블 방법(automatically enabling method)에 있어서,
    (a) 주변 디바이스가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 제1 어드레싱 모드의 디바이스 드라이버에 대하여 우선적으로 상기 주변 디바이스를 인에이블할 기회를 제공하는 단계와,
    (c) 상기 다수의 제1 어드레싱 모드 디바이스 드라이버를 연속적으로 초기화하는 단계와,
    (d) 상기 각각의 연속적인 제1 어드레싱 모드 디바이스 드라이버에 의한 주변 디바이스 인에이블을 검출하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 제1 어드레싱 모드의 임의의 디바이스 드라이버에 의해 상기 삽입된 디바이스가 인에이블되지 않으면, 상기 제2 어드레싱 모드의 디바이스 드라이버에 대하여 상기 주변 디바이스를 인에이블할 기회를 제공하는 단계를 포함하는 주변 디바이스의 자동 인에이블 방법.
  2. 16비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) PC 카드가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 대하여 우선적으로 상기 PC 카드를 인에이블할 기회를 제공하는 단계와,
    (c) 상기 16 비트 모드 디바이스 드라이버를 초기화하는 단계와,
    (d) 상기 16 비트 모드 디바이스 드라이버에 의한 PC 카드 인에이블을 검출하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 임의의 디바이스 드라이버에 의해 상기 PC 카드가 인에이블되지 않으면, 상기 32비트 모드의 디바이스 드라이버에 대하여 상기 PC 카드를 인에이블할 기회를 제공하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
  3. 32비트 모드 또는 16비트 모드 중 어느 하나의 모드를 갖는 오퍼레이팅 시스템에 의해 제어되며, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) PC 카드가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 대하여 우선적으로 상기 PC 카드를 인에이블할 기회를 제공하는 단계와,
    (c) 상기 16 비트 모드 디바이스 드라이버를 연속적으로 초기화하는 단계와,
    (d) 상기 각각의 연속적인 16 비트 모드 디바이스 드라이버에 의한 PC 카드 인에이블을 검출하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 임의의 디바이스 드라이버에 의해 상기 PC 카드가 인에이블되지 않으면, 상기 32비트 모드의 디바이스 드라이버에 대하여 상기 PC 카드를 인에이블할 기회를 제공하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
  4. 제1 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는, 주변 디바이스의 자동 인에이블 방법에 있어서,
    (a) 주변 디바이스가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 제1 어드레싱 모드의 디바이스 드라이버에 대하여 우선적으로 상기 디바이스 드라이버가 상기 주변 디바이스를 구동할 수 있는 지의 여부를 확인할 기회를 제공하는 단계와,
    (c) 상기 (b) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (d) 상기 (c) 단계에서의 요구에 응답하여, 상기 삽입된 주변 디바이스를 위한 상기 시스템 리소스를 할당하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 제1 어드레싱 모드의 상기 디바이스 드라이버에 의해 상기 주변 디바이스가 인에이블되지 않으면, 상기 제2 어드레싱 모드의 디바이스 드라이버에 대하여 상기 디바이스 드라이버가 상기 주변 디바이스를 구동할 수 있는 지의 여부를 확인할 기회를 제공하는 단계와,
    (f) 상기 (e) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 주변 디바이스를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (g) 상기 (f) 단계에서의 요구에 응답하여, 상기 삽입된 주변 디바이스를 위한 상기 시스템 리소스를 할당하는 단계를 포함하는 주변 디바이스의 자동 인에이블 방법.
  5. 16비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) PC 카드가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 대하여 우선적으로 상기 디바이스 드라이버가 상기 PC 카드를 구동할 수 있는지의 여부를 확인할 기회를 제공하는 단계와,
    (c) 상기 (b) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (d) 상기 (c) 단계에서의 요구에 응답하여, 상기 삽입된 PC 카드를 위한 상기 시스템 리소스를 할당하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 의해 상기 PC 카드가 인에이블되지 않으면, 상기 32비트 모드의 디바이스 드라이버에 대하여 상기 디바이스 드라이버가 상기 PC 카드를 구동할 수 있는 지의 여부를 확인할 기회를 제공하는 단계와,
    (f) 상기 (e) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (g) 상기 (f) 단계에서의 요구에 응답하여, 상기 삽입된 PC 카드를 위한 상기 시스템 리소스를 할당하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
  6. 32비트 모드 또는 16비트 모드 중 어느 하나의 모드를 갖는 오퍼레이팅 시스템에 의해 제어되며, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) PC 카드가 상기 정보 처리 시스템 내로 삽입되는 경우에 삽입 사실을 검출하는 단계와,
    (b) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 대하여 우선적으로 상기 디바이스 드라이버가 상기 PC 카드를 구동할 수 있는 지의 여부를 확인할 기회를 제공하는 단계와,
    (c) 상기 (b) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (d) 상기 (c) 단계에서의 요구에 응답하여, 상기 삽입된 PC 카드를 위한 상기 시스템 리소스를 할당하는 단계와,
    (e) 상기 삽입 사실에 응답하여, 상기 16비트 모드의 디바이스 드라이버에 의해 상기 PC 카드가 인에이블되지 않으면, 상기 32비트 모드의 디바이스 드라이버에 대하여 상기 디바이스 드라이버가 상기 PC 카드를 구동할 수 있는 지의 여부를 확인할 기회를 제공하는 단계와,
    (f) 상기 (e) 단계에서의 응답이 긍정인 경우, 상기 디바이스 드라이버가, 상기 삽입된 PC 카드를 위한 시스템 리소스의 할당을 요구하는 단계와,
    (g) 상기 (f) 단계에서의 요구에 응답하여, 상기 삽입된 PC 카드를 위한 상기 시스템 리소스를 할당하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
  7. 제1 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스와 제2 어드레싱 모드의 디바이스 드라이버에 의해 구동되는 주변 디바이스 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는, 주변 디바이스의 자동 인에이블 방법에 있어서,
    (a) 삽입된 주변 디바이스가 발취(拔取)되는 경우에 발취 사실을 검출하는 단계와,
    (b) 상기 발취된 주변 디바이스가 상기 제1 어드레싱 모드의 디바이스 드라이버에 의해 구동되었으면, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (c) 상기 (b) 단계에서의 통지에 응답하여, 상기 제1 어드레싱 모드의 디바이스 드라이버가 상기 발취된 주변 디바이스에 할당된 시스템 리소스를 해방시켜, 상기 주변 디바이스를 디세이블(disable)하는 단계와,
    (d) 상기 발취된 주변 디바이스가 상기 제2 어드레싱 모드의 디바이스 드라이버에 의해 구동되었으면, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (e) 상기 (d) 단계에서의 통지에 응답하여, 상기 제2 어드레싱 모드의 디바이스 드라이버가 상기 발취된 주변 디바이스에 할당된 시스템 리소스를 해방시켜, 상기 주변 디바이스를 디세이블하는 단계를 포함하는 주변 디바이스의 자동 인에이블 방법.
  8. 16비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드와 32비트 모드의 디바이스 드라이버에 의해 구동되는 PC 카드 쌍방을 장착할 수 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) 삽입된 PC 카드가 발취되는 경우에 발취 사실을 검출하는 단계와,
    (b) 상기 발취된 PC 카드가 상기 16비트 모드의 디바이스 드라이버에 의해 구동된 경우, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (c) 상기 (b) 단계에서의 통지에 응답하여, 상기 16비트 모드의 디바이스 드라이버가 상기 발취된 PC 카드에 할당된 시스템 리소스를 해방시켜, 상기 PC 카드를 디세이블하는 단계와,
    (d) 상기 발취된 PC 카드가 상기 32비트 모드의 디바이스 드라이버에 의해 구동된 경우, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (e) 상기 (d) 단계에서의 통지에 응답하여, 상기 32비트 모드의 디바이스 드라이버가 상기 발취된 PC 카드에 할당된 시스템 리소스를 해방시켜, 상기 PC 카드를 디세이블하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
  9. 32비트 모드 또는 16비트 모드 중 어느 하나의 모드를 갖는 오퍼레이팅 시스템에 의해 제어되며, 32비트 모드 및 16비트 모드의 복수의 디바이스 드라이버가 공존하고 있는 정보 처리 시스템에 적용될 수 있는, PC 카드의 자동 인에이블 방법에 있어서,
    (a) 삽입된 PC 카드가 발취되는 경우에 발취 사실을 검출하는 단계와,
    (b) 상기 발취된 PC 카드가 상기 16비트 모드의 디바이스 드라이버에 의해 구동된 경우, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (c) 상기 (b) 단계에서의 통지에 응답하여, 상기 16비트 모드의 디바이스 드라이버가 상기 발취된 PC 카드에 할당된 시스템 리소스를 해방시켜, 상기 PC 카드를 디세이블하는 단계와,
    (d) 상기 발취된 PC 카드가 상기 32비트 모드의 디바이스 드라이버에 의해 구동된 경우, 상기 디바이스 드라이버에 대하여 상기 발취 사실을 통지하는 단계와,
    (e) 상기 (d) 단계에서의 통지에 응답하여, 상기 32비트 모드의 디바이스 드라이버가 상기 발취된 PC 카드에 할당된 시스템 리소스를 해방시켜, 상기 PC 카드를 디세이블하는 단계를 포함하는 PC 카드의 자동 인에이블 방법.
KR1019970006337A 1996-04-26 1997-02-27 주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체 KR100247719B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP10665296A JP3274604B2 (ja) 1996-04-26 1996-04-26 周辺デバイスの自動イネーブル方法
JP96-106652 1996-04-26

Publications (2)

Publication Number Publication Date
KR970071303A KR970071303A (ko) 1997-11-07
KR100247719B1 true KR100247719B1 (ko) 2000-03-15

Family

ID=14439051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970006337A KR100247719B1 (ko) 1996-04-26 1997-02-27 주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체

Country Status (3)

Country Link
US (1) US5935228A (ko)
JP (1) JP3274604B2 (ko)
KR (1) KR100247719B1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141712A (en) * 1998-01-30 2000-10-31 Object Technology Licensing Corporation Apparatus and method for modeling behavior of expansion boards in a computer system
US6247081B1 (en) * 1998-02-19 2001-06-12 Nortel Networks Limited Method and apparatus for installing drivers without requiring system re-boot
WO2004097621A1 (ja) * 1998-04-17 2004-11-11 Shinji Tanaka Pc周辺機器のメンテナンスガイド装置、方法及びプログラム記録媒体
US6205432B1 (en) 1998-06-05 2001-03-20 Creative Internet Concepts, Llc Background advertising system
US6178468B1 (en) * 1998-06-19 2001-01-23 Hewlett-Packard Company Real time supply PF plug-and-play installation resources
US6170020B1 (en) * 1998-06-30 2001-01-02 Compaq Computer Corporation Reservation and dynamic allocation of resources for sole use of docking peripheral device
KR20000009369A (ko) * 1998-07-23 2000-02-15 윤종용 피씨카드를장착가능한컴퓨터시스템및그것의부팅방법
US6311242B1 (en) * 1998-08-27 2001-10-30 Apple Computer, Inc. Method and apparatus for supporting dynamic insertion and removal of PCI devices
TW507154B (en) * 1998-10-23 2002-10-21 Inventec Corp Automatic detection method for sound card
US6199137B1 (en) * 1999-01-05 2001-03-06 Lucent Technolgies, Inc. Method and device for controlling data flow through an IO controller
US6360364B1 (en) * 1999-03-17 2002-03-19 Microsoft Corporation System and method for installing an application on a portable computer
JP2001027916A (ja) * 1999-05-12 2001-01-30 Fujitsu Ltd 電子機器及び電源制御装置並びに電源供給制御方法
US6625680B1 (en) * 1999-08-16 2003-09-23 Cisco Technology, Inc. System and method for processing circuit card connector and redundancy events
JP3946397B2 (ja) * 1999-12-24 2007-07-18 三菱電機株式会社 車載情報処理装置
US6601163B1 (en) * 2000-05-08 2003-07-29 International Business Machines Corporation Method and system for executing adapter configuration routines utilizing different operating modes
KR20020080587A (ko) * 2001-04-16 2002-10-26 주식회사 알파텔레콤 마이크로소프트 윈도우즈 운영체계에서의 주변장치설치방법 및 그 기록매체
US7228366B2 (en) * 2001-06-29 2007-06-05 Intel Corporation Method and apparatus for deterministic removal and reclamation of work items from an expansion bus schedule
US20030074268A1 (en) 2001-10-11 2003-04-17 Haines Robert E. User and device interactions for web consolidation
US20030072027A1 (en) * 2001-10-11 2003-04-17 Haines Robert E. Unique identifier for customer account and method
US20030074442A1 (en) * 2001-10-11 2003-04-17 Haines Robert E. Hardcopy output engine discovery method and apparatus
US20030074547A1 (en) * 2001-10-11 2003-04-17 Haines Robert E. Hardcopy output engine consumable supply management and method
KR100941563B1 (ko) * 2001-10-17 2010-02-10 엔엑스피 비 브이 전자 장치 및 전자 장치의 자동 설정 방법
US20030088762A1 (en) * 2001-11-05 2003-05-08 Jenny Liang Storage media of operating system arranging at the expansion slot of motherboard
US6725291B2 (en) * 2002-01-18 2004-04-20 Key Technology Corporation Detection method used in adaptor capable of inserting various kinds of memory cards
US7188347B2 (en) 2002-05-24 2007-03-06 Nokia Corporation Method, apparatus and system for connecting system-level functionality of domestic OS of a mobile phone to any application operating system
US7299346B1 (en) 2002-06-27 2007-11-20 William K. Hollis Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing
FI117489B (fi) 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
US8001325B2 (en) * 2004-01-09 2011-08-16 Sandisk Corporation Memory card that supports file system interoperability
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US8145785B1 (en) 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7860961B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7953903B1 (en) * 2004-02-13 2011-05-31 Habanero Holdings, Inc. Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7613862B2 (en) * 2004-08-10 2009-11-03 Intel Corporation Embedded driver for bus-connected device
JP2006172325A (ja) * 2004-12-17 2006-06-29 Toshiba Corp デバイス状態制御方法および情報処理装置
US20070101328A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Sequencing a single task sequence across multiple operating environments
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US20080120451A1 (en) * 2006-11-16 2008-05-22 Kolvick Randolph S Method and apparatus for automatically enabling replacement hardware
TW201005535A (en) * 2008-07-17 2010-02-01 Ind Tech Res Inst Electronic apparatus and method for managing a plugged device
US11237840B2 (en) * 2015-04-26 2022-02-01 Intel Corporation All in one mobile computing device
US11507421B2 (en) * 2019-06-11 2022-11-22 Dell Products L.P. Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689710A (en) * 1993-04-01 1997-11-18 Intel Corporation Protected mode C binding for PCMCIA card services interface
US5787246A (en) * 1994-05-27 1998-07-28 Microsoft Corporation System for configuring devices for a computer system
EP0789951B1 (en) * 1994-11-04 2006-03-29 Intel Corporation Pcmcia autoconfigure pc card
US5630174A (en) * 1995-02-03 1997-05-13 Cirrus Logic, Inc. Adapter for detecting whether a peripheral is standard or multimedia type format and selectively switching the peripheral to couple or bypass the system bus
US5710941A (en) * 1995-02-28 1998-01-20 Microsoft Corporation System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation
US5802365A (en) * 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
US5671368A (en) * 1996-02-22 1997-09-23 O2 Micro, Inc. PC card controller circuit to detect exchange of PC cards while in suspend mode
JPH09237166A (ja) * 1996-02-29 1997-09-09 Toshiba Corp コンピュータシステムおよびこのシステムで使用されるカードデバイスコントローラ並びに動画像エンコーダカード

Also Published As

Publication number Publication date
JP3274604B2 (ja) 2002-04-15
US5935228A (en) 1999-08-10
JPH09293041A (ja) 1997-11-11
KR970071303A (ko) 1997-11-07

Similar Documents

Publication Publication Date Title
KR100247719B1 (ko) 주변 디바이스의 자동 인에이블 방법, 및 주변 디바이스의 자동 인에이블 프로그램을 저장한 기억 매체
JP4327363B2 (ja) 周辺リソース構成のためのacpiソース言語の自動生成
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
US6496893B1 (en) Apparatus and method for swapping devices while a computer is running
US6401198B1 (en) Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
US5797031A (en) Method and apparatus for peripheral device control by clients in plural memory addressing modes
US5634058A (en) Dynamically configurable kernel
US5319751A (en) Device driver configuration in a computer system
US5781798A (en) Method and apparatus for providing hot swapping capability in a computer system with static peripheral driver software
US5870610A (en) Autoconfigurable method and system having automated downloading
US6591358B2 (en) Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
EP0552873B1 (en) Modifying system configuration in a computer system
JP2691140B2 (ja) 情報処理装置及びその制御方法
US6311242B1 (en) Method and apparatus for supporting dynamic insertion and removal of PCI devices
EP1909474B1 (en) Image processor and its control method
US7526578B2 (en) Option ROM characterization
US20070233928A1 (en) Mechanism and apparatus for dynamically providing required resources for a hot-added PCI express endpoint or hierarchy
JP2001229117A (ja) 拡張ユニットの制御方法、コンピュータ、記録媒体及び伝送媒体
US20080276011A1 (en) Structure for option rom characterization
JP2004070946A (ja) CECCSRのためにACPIにおけるvendor−longディスクリプタを使用するシステムおよび方法
US7228263B2 (en) Method for representing root busses using object oriented abstractions
JP2002366501A (ja) 周辺デバイス、コンピュータシステム、及びインストーラプログラム
JP2003525494A (ja) コンピュータの動作中に装置をスワップするための装置および方法
Cook et al. Plug and Play Technology

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
LAPS Lapse due to unpaid annual fee