KR100339442B1 - 주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템 - Google Patents

주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR100339442B1
KR100339442B1 KR1019990008529A KR19990008529A KR100339442B1 KR 100339442 B1 KR100339442 B1 KR 100339442B1 KR 1019990008529 A KR1019990008529 A KR 1019990008529A KR 19990008529 A KR19990008529 A KR 19990008529A KR 100339442 B1 KR100339442 B1 KR 100339442B1
Authority
KR
South Korea
Prior art keywords
peripheral device
response
computer system
computer
bus
Prior art date
Application number
KR1019990008529A
Other languages
English (en)
Other versions
KR19990082733A (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 KR19990082733A publication Critical patent/KR19990082733A/ko
Application granted granted Critical
Publication of KR100339442B1 publication Critical patent/KR100339442B1/ko

Links

Classifications

    • 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
    • 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

Abstract

기능 정지를 피하고 그로 인하여 새 주변 장치를 오퍼레이팅 시스템이 초기화하기 위한 시스템 리부팅(rebooting)의 필요성을 피하기 위해 주변 장치로의 액세스 시도(access attempt)에 대한 응답으로 주변 장치에 공급되는 리셋 신호의 해제(deasserting)로부터 소정의 기간 내에 주변 장치로부터 컴퓨터 시스템의 버스로의 상태 메시지에 의해 응답함에 의해 컴퓨터 시스템에 새로이 추가된 주변 장치들을 등록하는 방법이다. 소정의 기간보다 짧은 초기 레이턴시(latency) 기간 동안에 응답이 발생하는 경우, 장치는 초기에 재시도 응답을 보내는 것이 허용될 수 있다. 본 발명은 또한 주변 장치들이 구성 완료 직후에 비 구성 사이클(non-configuration cycle)에 응답할 수 있게 한다. 상태 메시지에 의해 응답한 후에 주변 장치의 내부 논리(internal logic)는 초기화되어 질 수 있다. (주변 장치의 구성 공간 내에서 주변 장치가 준비완료되었다는 것을 표시하도록) 비트를 설정함에 의해 응답할 준비가 완료될 때까지 주변 장치들로의 비 구성 액세스는 방지되어 질 수 있다.

Description

주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템{METHOD OF REGISTERING A PERIPHERAL DEVICE WITH A COMPUTER AND COMPUTER SYSTEM}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 구체적으로 말하자면, 주변 장치들, 특히 시스템 리셋 후 구성을 요구하고 주변(로컬) 버스를 사용하여 시스템의 프로세서와 상호 접속되는 (그래픽 어댑터 혹은 네트워크 어댑터와 같은) 어댑터 장치들을 가지는 컴퓨터 시스템의 구성 방법에 관한 것이다.
종래의 컴퓨터의 전형적인 구조는 시스템 메모리 장치(랜덤 액세스 메모리 혹은 RAM)와 디스플레이 모니터, 키보드, 그래픽컬 포인터(마우스), 영구 저장 장치(하드디스크)와 같은 다양한 주변 기기, 혹은 입/출력(I/O) 장치들에 연결되는 하나 혹은 그 이상의 처리 장치들을 포함하고 있다. 시스템 메모리 장치는 처리 장치에 의해 프로그램 명령들을 수행하는데 사용되고 그러한 명령들 뿐만 아니라 프로그램으로 공급되거나 프로그램에 의해 발생되는 데이터 값들을 저장한다. 처리 장치는 하나 혹은 그 이상의 상호 접속들(버스들) 혹은 다이렉트 메모리 엑세스 채널들을 포함하는 다양한 수단에 의해 다른 구성 요소들과 통신한다. 컴퓨터 시스템은 프린터, 네트워크 어댑터 같은 것들에 연결하기 위한 직렬 또는 병렬 포트와 같은 많은 추가적인 구성 요소들을 가지고 있을 수 있다. 다른 구성 요소들이 앞서 말한 것들과 아울러 또한 사용될 수 있다. 예를 들면 디스플레이 어댑터가 비디오 디스플레이 모니터를 조절하기 위해 사용되어 질 수 있으며, 메모리 콘트롤러가 시스템 메모리에 접속하기 위해 사용될 수 있다는 등이다.
다양한 컴퓨터 구성 요소들을 상호 접속하기 위해 몇 개의 여러 가지 버스 디자인들이 개발되었다. IBM 사(본 발명의 출원인)에 의해 소개된 최초의 퍼스널 컴퓨터(PCs)는 추가적인 메모리(RAM), 사운드 카드, 전화 모뎀 등의 다양한 선택적 장치들을 사용자들이 추가할 수 있는 XT 버스로 알려진, '확장' 버스를 사용했다. 이런 초기의 디자인은 보다 많은 데이터와 어드레스 선, 새로운 인터럽트 선, 그리고 다이렉트 메모리 엑세스(DMA) 조절 선을 더 추가함에 의해 개량되어, 아이사(산업 표준 구조(ISA:Industry Standard Architecture)) 버스로도 알려진 AT 버스를 형성한다. AT 디자인은 마이크로프로세서가 확장 버스보다 더 빠른 속도에서 동작할 수 있게 한다. 이러한 버스에 32-비트 확장이 이후에 만들어져서, 확장 산업 표준 구조(EISA:Extended Industry Standard Architecture)로 불린다. IBM 사에 의해 개발된 또 다른 32-비트 확장 버스가 마이크로채널 구조(MCA) 버스이다.
앞서 말한 디자인들에 덧붙여서 주변 장치들을 (버스 브리지를 사용하는) 시스템 버스에 상호 접속시키는 별도의 로컬 버스와 함께 프로세서와 시스템 메모리 장치들을 상호 접속하는 시스템 버스의 사용을 가능하도록 몇 가지의 다른 버스 디자인들이 개발되어 왔다. 2 가지의 잘 알려진 표준은 비디오 일렉트로닉스 표준 협회 (VL:Video Electronics Standard Association) 버스와 주변 구성 요소 내부접속(PCI: Peripheral Component Interconnect) 버스이다.
PCI 규격은 PCI 버스를 따라 구성되는 '슬롯' 내에 4 개까지 PCI 규격을 따르는 확장 카드를 설치할 수 있다(10 개 까지의 로드(load)가 버스에 걸릴 수 있으나 한 슬롯에 대한 한 커넥터로서 한 로드를 구성하기 때문에, 각각의 장치는 두 개의 로드가 필요하게 되고 브리지도 역시 하나의 로드로 계산되기 때문에 최대 4 개의 장치들이 (8 개의 로드) 추가 될 수 있음). PCI 로컬 버스 시스템은 PCI 규격을 따르는 슬롯들 중 하나에 설치되어야만 하는 PCI 컨트롤러를 사용한다. 시스템의 ISA, EISA 혹은 MCA 슬롯들을 위한 확장 버스 콘트롤러가 선택적으로도 설치될 수 있으며, 모든 시스템의 버스 설치 자원들(resources)에 대한 증가된 동기화를 제공한다. PCI 콘트롤러는 실시예에 따라 한 번에 32 비트 혹은 64 비트씩 마이크로프로세서와 데이터를 교환하고, 특정한 '인텔리젼트' 한 PCI 규격을 따르는 어댑터가 버스 마스터링이라 불리는 기술을 이용하여 마이크로프로세서와 동시에 태스크를 수행하는 것을 허용한다. PCI 규격은 또한 한 개 이상의 전기 신호가 동시에 버스에 나타날 수 있게 하는 기술인 멀티플렉싱을 가능하게 한다.
전형적인 PCI 시스템(10)이 도 1에 나타나 있다. 중앙 처리 장치(CPU)(12), 펌웨어(firmware) 혹은 판독 전용 기억 장치(롬(ROM))(14), 동적 램(디램(DRAM))(16)을 포함하고 있으며, 시스템(10)은 모두 시스템 버스(18)에 연결되어 있다. CPU(12), ROM(14) 그리고 DRAM(16)은 역시 PCI 호스트 브리지(22)를 사용하여 PCI 로컬 버스(20)와 결합되어진다. PCI 호스트 브리지(22)는 낮은 레이턴시 경로를 제공하여, 프로세서(12)가 버스 메모리 혹은 I/O 어드레스 공간 내 어느 곳에 맵 화된 PCI 장치들에 접속할 수 있다. PCI 호스트 브리지(22)는 또한 PCI 장치들이 DRAM(16)에 접속할 수 있는 높은 대역 경로를 제공하기도 한다.
PCI 로컬 버스(20)에 부착된 것들은 근거리 통신망(랜(LAN)) 어댑터(24), 소형 컴퓨터 시스템 인터페이스(SCSI) 어댑터(26), 확장 버스 브리지(28), 오디오 어댑터(30) 그리고 그래픽 어댑터(32)이다. 랜 어댑터(24)는 컴퓨터 시스템(10)을 외부 컴퓨터 네트워크(34)에 연결하기 위해 사용된다. SCSI 어댑터(26)는 고속 SCSI 디스크 드라이브(36)을 조절하기 위해 사용된다. 확장 버스 브리지(28)는 ISA 확장 버스(38)를 PCI 로컬 버스(20)에 연결하기 위해 사용된다. 도시된 바와 같이, 키보드(40), 마이크로폰(42) 그리고 그래픽컬 포인팅 디바이스(마우스)(44)를 포함하는 몇 가지의 사용자 입력 장치들은 ISA 버스(38)에 연결된다. CD-ROM 드라이브(46)와 같은 다른 장치들 역시 ISA 버스(38)에 연결될 수 있다. 오디오 어댑터(30)는 스피커(48)로의 오디오 출력을 조절하고 그래픽 어댑터(32)는 디스플레이 모니터(50)로의 시각적 출력을 조절한다.
초기의 컴퓨터 시스템에서는 컴퓨터의 오퍼레이팅 시스템으로 장치를 정확하게 등록 (초기화) 하기 위해서 컴퓨터가 처음 켜졌을 때 모든 주변 구성 요소들이 연결되어져야만(PCI 혹은 ISA 슬롯에 삽입되어져야만) 했다. 이러한 장치들은 ROM(14) (또는 판독 전용 기억 장치 혹은 로스(ROS)로도 불림)에 저장된 장치들이 적절히 연결되어 있고 동작하는지를 알기 위해 주변 장치들을 테스트하는 루틴들의 한 세트를 포함하는 시스템의 파워-온(power-on) 자체 테스트(POST) 동안에 점검된다. 만약 어떤 장치에 문제가 발견된다면, 이러한 루틴들은 연속된 빕(beep) 소리를 내거나 진단 수치 값을 동반하는 메시지를 표준 출력 장치 혹은 표준 에러 장치(통상적으로 디스플레이 화면)를 통해 보여줌에 의해 사용자에게 경고를 한다.
초기의 컴퓨터 시스템에서는, 만약 어떤 장치가 단순히 POST 동안 나타나지 않는다면, 그 장치가 후에 (컴퓨터가 계속 작동중에) 슬롯에 삽입될 때, 그 장치는 인식되어지지 않는다. 그 대신, 그러한 시스템들은 후에 추가된 장치들과 통신하고 사용할 수 있기 위해 '리부팅(rebooted)'할 필요가 있었다. '리부팅 (rebooting)'이란 컴퓨터의 가장 기초적인 프로그램 명령, 다시말해 오퍼레이팅 시스템을 리로딩(reloading) 함에 의해 컴퓨터 시스템을 다시 시작하는 것을 말한다. 시스템은 소프트웨어 자체만을 사용(웜 부트(warm boot))하거나 시스템 하드웨어 즉, 리셋 혹은 파워 버튼을 작동(콜드 부트(cold boot))시켜서 리부팅 될 수 있다. 리부팅 후에 다양한 방법을 사용하여 새로운 장치를 식별할 수 있다. 미국 특허 제 5,594,873 호를 참조하기 바람.
최근의 컴퓨터 시스템은 컴퓨터가 동작하는 동안 버스에 추가된 장치들을 인식할 수 있는 능력이 있다. 다시 말하자면, 시스템 리부팅할 필요 없이 버스에 추가된 장치들을 인식할 수 있는 능력이 있다. 한가지 예로서 주변 장치들과 함께 작동하도록 자동으로 PC 스스로를 구성할 수 있는 '플러그 앤드 플레이(plug and play)'라는 것이 있다. 사용자가 수동으로 시스템을 구성함 없이 주변 장치에 버스를 '플러그(plug)' 하고 '플레이(play)' 할 수 있다. 플러그와 플레이 동작은 규격을 지원하는 ROM과 특별한 확장 카드 모두를 필요로 한다. 이러한 접근 방법은 새롭게 추가된 장치를 시스템이 인식할 수 있게 하지만 장치를 오퍼레이팅 시스템이 적절히 초기화하기 위하여 시스템 리셋이 계속해서 자주 필요하게 된다. 이런 분야에서 더 개량된 것은 '핫-플러그' 규격이라는 것인데, 그것은 별개의 리셋 라인이 각각의 주변 장치들에 제공되어서 전체 시스템을 리부팅할 필요 없이 장치를 오퍼레이팅 시스템이 초기화한다. (장치/시스템의 이런 능력은 '핫-플러거블 (hot-pluggable)' 로 알려져있다.)
주변 장치들의 초기화에서 잔존하는 하나의 문제는 리셋 신호(RST#)를 해제(deactivation)한 다음에, 어댑터가 (어댑터가 작동 중이지만 현재 너무 사용량이 많아 초기화에 응답할 수 없다는 것을 나타내기 위해 사용되는 응답인) RETRY 응답에 의해서도 구성 사이클(configuration cycle)에 응답할 준비가 되기 전에 긴 시간이 존재할 수 있다는 것이다. 그 결과, RST#를 해제 한 다음 만일 어댑터가 응답하지 않는다면 시스템이 어댑터가 존재하지 않거나 고장난 것 처럼 생각할 수 있다. 만일 장치가 RETRY에 의해 구성 혹은 레귤러(비 구성) 사이클에 응답한다면, PCI 버스 및/또는 시스템 프로세서의 기능이 정지할 수 있고, 결과적으로 시스템을 리부팅하는 것이 필수 요건이 된다.
이전에는 이러한 문제는 과히 중요하지 않았으나 현재는 프로세서와 나머지 I/O의 부분 시스템이 동작 중인 상태에 있는 동안 어댑터 카드 및/또는 어댑터 그룹이 리셋되는 결과를 낳을 수 있는 많은 상황들이 존재한다. 이러한 문제에 기여하는 하나의 요인은 RST# 해제(deactivation) 후에 구성 사이클을 처리할 수 있거나 혹은 RETRY에 의해 응답할 수 있기 전에 프로그램 가능한 논리 어레이(PLA)를 초기화해야만 하는 어댑터나 구성 사이클을 처리할 수 있거나 혹은 RETRY로 응답할 수 있기 전에 레지스터들을 로딩하고 다른 초기화 단계를 완수해야만 하는 온보드 프로세서(on-board processor)를 갖는 어댑터와 같은 어댑터들의 복잡성이 늘어나고 있다는 것이다. 다른 요인으로는 핫-플러그 규격 및 유사한 PCI 파워 관리 규격 혹은 나머지 시스템과 PCI I/O의 서브시스템이 동작 중인 상태에 있는 동안 각각의 카드에 대한 진단 분석 내에 제공되어져 있는 것 같은 그런 어댑터에 별개의 리셋 라인이 공급되고 있다는 것이다.
앞서 말한 것으로 미루어 보아, 주변 장치들로부터 지연된 초기화 응답을 동반하는 리부팅 필수 요건을 피하는 방법을 고안하는 것이 바람직할 것이다. 만일 구성 완료 다음으로 RETRY 응답 없이 어댑터가 정상적인 (비 구성) 사이클에 응답할 준비가 되어 있다면, 그것은 더욱더 이점으로 작용할 것이다.
따라서, 본 발명의 목적은 시스템에 주변 장치들을 추가하는 것을 허용하는 확장 버스를 가진 개량된 컴퓨터 시스템을 제공하는 것이다.
본 발명의 다른 목적은 전체 시스템의 리부팅 없이 장치를 컴퓨터 오퍼레이팅 시스템이 초기화할 수 있도록 하기 위해 주변 장치에 리셋 신호가 인가될 수 있는 그러한 컴퓨터 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 초기화 실패를 피하기 위해 주변 장치들로부터 초기화 응답의 지연을 줄이는 그러한 컴퓨터 시스템을 제공하는 것이다.
전술한 목적들은 주변 장치들을 컴퓨터에 등록하는 방법으로써 달성되어지는데, 일반적으로, 이 방법은 컴퓨터의 버스로부터 슬롯을 분리하고, 슬롯에 주변 장치를 삽입하며, 버스에 슬롯을 연결하고, 슬롯에 대한 리셋 신호를 해제(deasserting) 하며, 주변 장치로의 액세스 시도(access attempt)에 대해 응답하여 컴퓨터에 대해 설정된 소정의 기간 내에 주변 장치로부터 버스로의 상태 메시지에 의해 응답하고, 응답 단계에 응답하여 주변 장치들을 컴퓨터의 오퍼레이팅 시스템이 초기화하는 단계들을 포함하고 있다. 만약 상태 메시지가 재시도 응답이면, 응답 단계는 소정의 기간보다 짧은 초기 레이턴시 기간 동안에 이행된다. 본 발명은 역시 구성 완료 직후 비 구성 사이클(non-configuration cycle)에 주변 장치들이 응답할 수 있게 한다. 주변 장치의 내부 논리(internal logic)는 응답 단계 후에 초기화 될 수 있는데 달리 말하자면 진단 동작과 같은 다른 동작들로 내부 초기화 일부가 옮겨질 수 있다.
본 발명은 주변 장치가 비 구성 액세스(configuration access)에 응답할 준비가 완료될 때까지 주변 장치에 그러한 비 구성 액세스를 막기 위해 주변 장치의 구성 공간을 통해 장치 드라이버와 주변 장치간의 통신의 사용을 고려하고 있다. 이러한 특징적 구성은 주변 장치의 구성 공간 내에 비트를 설정함에 의해 구현될 수 있다.
위에 설명된 내용뿐만 아니라 본 발명의 추가적인 목적, 특징, 이점들이 다음의 상세하게 기술되는 것에 의해 명백하게 될 것이다.
도 1은 주변 장치가 컴퓨터 시스템에 부가 되는 것을 가능하게 하는 PCI 버스를 가지는 종래의 컴퓨터 시스템의 블록도.
도 2는 주변 장치들을 받아들이기 위한 다수의 슬롯들과 시스템의 나머지 부분들이 계속 작동하는 동안에 장치들을 초기화하기 위해 사용되어지는 "핫-플러그(hot-plug)" 콘트롤러가 있는 PCI 버스를 가진 본 발명에 따라 구성된 컴퓨터 시스템의 일 실시예의 블록도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨터 시스템
102 : 시스템 프로세서
104 : 시스템 메모리
106 : 시스템 버스
108 : PCI 호스트 브리지
110 : PCI 버스
112 : 슬롯1
114 : 슬롯2
116 : 슬롯3
118 : 핫-플러그 스위치
120 : 핫-플러그 스위치
122 : 핫-플러그 스위치
124 : 핫-플러그 콘트롤러
본 발명의 특성이라 믿어 의심치 않는 새로운 특징들은 첨부된 청구항에 밝혀져 있다. 그러나 발명 그 자체뿐만 아니라 바람직하게 사용할 모드, 더 추가된 목적, 이점들은 아래의 발명의 구성 및 작용에 상세히 기술된 내용과 다음에 기술되는 도면의 간단한 설명을 함께 읽음으로써 가장 잘 이해되어 질 수 있다.
특별히 도 2를 참조로 하면, 본 발명에 따라 구성된 컴퓨터 시스템(100)의 한 실시예가 나타나 있다. 시스템(100)은 시스템 버스(106)를 사용하여 시스템 메모리 장치(104)에 연결된 CPU 혹은 프로세서(102)를 포함한다. PCI 호스트 브리지(108) 는 PCI 로컬 버스(110)를 시스템 버스(106)에 연결하는 데 사용되어진다. 여러가지 주변 장치들이 복수의 슬롯들- 그들 중 세 개(112, 114 및 116)가 나타나 있음- 을 사용하여 시스템에 착탈이 가능하게 연결 될 수 있다. 각각의 슬롯은 각각의 핫 플러그 스위치들(118, 120 및 122)을 사용하여 PCI 버스(110)에 연결되어지는데, 이런 스위치들은 플렛폼의 나머지가 작동하는 동안에도 버스(110)로부터 하나의 슬롯상에 있는 모든 신호들을 분리하기 위하여 사용될 수 있다. 스위치들(118, 120 및 122)은 또한 플렛폼의 나머지가 아직 완전한 파워가 들어와 있는 동안에 슬롯으로부터 모든 파워를 제거한다. 핫-플러그 콘트롤러(124)는 또한 PCI 호스트 브리지(108)와 각각의 핫 플러그 스위치(118, 120 및 122)에 연결된다.
도시된 실시예에서, 컴퓨터 시스템(100)은 본 명세서에 참고로 사용된 인텔사에 의해 출간(1997년 10월 6일에 출간)된 문서 "PCI 핫-플러그 규격" rev. 1.0에 기술되어 있는 핫-플러그 디자인이 가능한 디자인을 따르고 있다. 그와 같이 슬롯들(112, 114 및 116)이 32 비트 혹은 64 비트폭의 어댑터 카드로서 디자인되고, 33 MHz 나 66 MHz 에서 동작하고 3.3 볼트나 5 볼트 신호를 사용한다. (그러한 어댑터 카드는 이 후 기술되는 바와 같은 신규한 구성을 갖고 있다.) 어댑터 카드는 PCI-PCI 브리지의 뒤로 단수의 PCI 장치나 복수의 장치를 가질 수 있다. 각각의 슬롯은 고유하게 특정의 슬롯을 식별하는 논리적 슬롯 식별기를 가지고 있다.
핫-플러그 콘트롤러(124)는 PCI 슬롯의 파워 업과 다운의 전기적 측면을 조정한다. 한 개 이상의 핫-플러그 콘트롤러가 사용될 수 있다. 핫-플러그 콘트롤러를 조절하고 감시하기 위해 소프트웨어 드라이버(핫-플러그 시스템 드라이버)가 사용되어진다. 만일 하나 이상의 핫-플러그 콘트롤러가 존재한다면, 하나 이상의 핫-플러그 시스템 드라이버가 사용될 수 있다. 높은 레벨의 소프트웨어(핫-플러그 '서비스')는 핫-플러그 동작의 전체를 조정한다. 이런 서비스는 사용자 인터페이스를 포함하며 오퍼레이팅 시스템이 어댑터의 동작을 정지시키는 요구를 발행할 수 있고 더 나아가서 스위치(118, 120 및 122)를 사용하여 슬롯들을 온(on) 혹은 오프(off) 시키기 위해 핫-플러그 시스템 드라이버에 요구(프리미티브 (primitive))를 발행할 수 있다.
슬롯들(112, 114 및 116) 중 하나에 위치하는 어댑터는 전체 시스템의 리부팅 필요 없이 컴퓨터 시스템(100)의 오퍼레이팅 시스템에 의해 초기화되어 질 수 있다. 어댑터 카드를 삽입하기 전에 핫-플러그 콘트롤러(124)를 사용하여 슬롯은 파워 다운되고 PCI 버스로부터 분리되어진다. 카드를 삽입한 후 사용자는 핫-플러그 서비스에 통보하여, 핫-플러그 시스템 드라이버에 프리미티브를 발행함에 의해 새로운 어댑터를 포함하는 슬롯을 턴온한다. 핫-플러그 시스템 드라이버는 슬롯을 파워-업하고, 적절한 핫-플러그 스위치를 사용하여(슬롯 특유의 리셋 핀들은 독립적으로 조정되어 짐) PCI 버스(110)에 슬롯을 연결하며, 슬롯에 대한 리셋 신호(RST#)를 해제하기 위하여 핫-플러그 콘트롤러(124)를 사용한다. 핫-플러그 서비스는 그 후에 새로운 어댑터 카드가 설치되었다는 것을 오퍼레이팅 시스템에 통보하고 그래서 오퍼레이팅 시스템이 어댑터를 초기화할 수 있고 그것을 사용할 준비를 할 수 있다. (사용자는 또한 디스플레이 모니터에 나타난 메시지에 의해 카드가 준비되어 있다는 것을 통보 받을 수 있다.)
리셋 신호의 해제에 대한 응답이 과도하게 지연되어서 리부팅이 필요한 앞서 언급한 바와 같은 어댑터의 문제를 본 발명에서는 피하고 있다. RST# 의 해제로부터 프로세서(102)에 의해 첫 번째 구성 액세스가 시도될 때까지의 기간 동안에 소정의 시간(Tx)이 설정되어 (예를 들어 1초 또는 2초) 어댑터의 내부 버스 논리가 초기화되어질 수 있게 한다. 어댑터가 내재되어 있지 않거나 고장난 것처럼 시스템(100)이 간주하게 되는 가능성을 줄이기 위해 이런 기간 Tx가 경과한 후에 카드가 정상적으로 RETRY 응답 없이 구성 액세스를 처리하도록 어댑터 카드가 디자인되어있다. 달리 말하자면, 카드는 이 기간 내에 재시도없는(non-retry) 상황 메시지 (혹은 긍정응답)에 의해 응답할 수 있는 규격에 따른다. 이따금씩 초기 레이턴시 필수 요건인 일례로 16 클럭 사이클에 맞도록 제공되면, RETRY 응답은 받아들여질 수 있다. 어댑터의 하드웨어 및/또는 소프트웨어는 Tx를 만족시키도록 실행된다. 본 발명에 따라 구성된 어댑터는 구성 완료 후에, 즉 구성 공간 설정 및 어댑터의 어드레스 공간의 인에이블화 직후에 정상적인(비 구성) 사이클에 (다시 정상적으로는 RETRY 응답 없이 그리고 초기의 레이턴시 요구에 맞는 그러한 응답으로) 응답할 수 있으면 더욱 바람직하다.
긴 내부 초기화 과정을 필요로 할 수 있는 좀 더 복잡한 어댑터 카드들에 대하여 Tx요구사항에 부합하는 한가지 해결책은 긴 내부 초기화 시간을 유발하는 기능들을 초기화 루틴에서 떼어 내어 내장된 자체 테스트(BIST) 동작과 같은 다른 동작으로 옮겨놓는 것이다. 그로 인하여 그러한 기능들은 초기화 동작의 일부가 아닌 (즉, 리셋 직후에) BIST 를 통하여 다음의 '진단' 동작 동안에 시작될 수 있다.
긴 일련의 RETRY 응답 혹은 대기 상태 이외의 것에 의해 정상 사이클에 아직 달리 응답할 수 없는 매우 복잡한 주변 장치들에 대하여 대안적인 해결책은 어댑터가 액세스에 응답할 준비가 완료될 때까지 어댑터로의 정상적인(비 구성) 액세스를 방지하는 어댑터 드라이버를 구현하는 것이다. 어댑터 구성 공간 내의 하나의 비트는 구성 소프트웨어나 장치 드라이버가 이런 비트를 점검할 수 있도록 정의될 수 있어서 어댑터가 (그 비트를 설정함에 의해) 정상 사이클에 응답할 준비가 완료되어 있다고 표시했는지를 결정한다.
비록 본 발명이 특정한 실시예에 대한 참조로 서술되어졌지만, 이러한 서술은 제한된 의미로 해석됨을 의미하지 않는다. 도시화된 실시예에 대한 다양한 변형뿐 아니라 발명의 대안적인 실시예들이 서술된 본 발명을 참조한다면 본 기술 분야에 숙달된 사람들에게 명백하게 될 것이다. 예를 들면, 본 발명은 PCI 파워 관리 서비스에 의해 발생되는 것과 같은 유사한 리셋 응답들에 응용될 수 있다. 그러므로 첨부된 청구항에 의해 정의되어지는 본 발명의 사상이나 범주로부터 벗어나지 않으면서 그러한 변형이 가능할 것으로 생각된다.
따라서 본 발명에 의해서, 소정의 기간보다 짧은 초기 레이턴시(latency) 기간 동안에 응답이 발생하는 경우, 장치는 초기에 재시도 응답을 보내는 것이 허용될 수 있다. 본 발명은 또한 주변 장치들이 구성 완료 직후에 비 구성 사이클에 응답할 수 있게 한다. 상태 메시지에 의해 응답한 후에 주변 장치의 내부 논리는 초기화되어 질 수 있다. (주변 장치의 구성 공간 내에서 주변 장치가 준비완료되었다는 것을 표시하도록) 비트를 설정함에 의해 응답할 준비가 완료될 때까지 주변 장치들로의 비 구성 액세스는 방지되어 질 수 있다.

Claims (19)

  1. 주변 장치를 컴퓨터에 등록하는 방법에 있어서,
    상기 주변 장치를 받아들이도록 적응화되어있는 슬롯을 상기 컴퓨터의 버스로부터 분리하는 단계;
    상기 주변 장치를 상기 슬롯에 삽입하는 단계;
    상기 삽입 단계 후에 상기 슬롯을 상기 버스에 연결하는 단계;
    상기 삽입 단계 후에 상기 슬롯상의 리셋(reset) 신호를 해제(deasserting)하는 단계;
    상기 주변 장치로의 액세스 시도(access attempt)에 대한 응답으로 상기 컴퓨터에 의해 설정된 소정의 기간 내에 상기 주변 장치로부터 상기 버스로 상태 메시지를 송신함으로써 응답하는 단계; 및
    상기 응답 단계에 응답하여 상기 컴퓨터의 오퍼레이팅 시스템으로 상기 주변 장치를 초기화하는 단계
    를 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  2. 제1항에 있어서, 상기 상태 메시지는 재시도 응답(retry response)이고, 상기 응답 단계는 상기 소정의 기간보다 짧은 초기 레이턴시(latency) 기간 동안에 발생하는 주변 장치를 컴퓨터에 등록하는 방법.
  3. 제1항에 있어서, 구성 완료 직후에 비 구성 사이클(non-configuration cycle)에 상기 주변 장치가 응답하는 단계를 더 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  4. 제3항에 있어서, 비 구성 사이클들에 응답하는 상기 단계가 상기 소정의 기간보다 짧은 초기 레이턴시 기간 동안에 재시도 응답을 전송하는 단계를 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  5. 제1항에 있어서, 상기 응답 단계 이후, 상기 주변 장치의 내부 논리(internal logic)를 초기화하는 단계를 더 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  6. 제5항에 있어서, 상기 주변 장치의 내부 논리를 초기화하는 상기 단계가 진단 동작을 수행하는 단계를 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  7. 제1항에 있어서, 상기 주변 장치가 비 구성 액세스에 응답할 준비가 완료될 때까지 드라이버가 상기 주변 장치로의 상기 비 구성 액세스를 방지하는 단계를 더 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  8. 제7항에 있어서, 상기 방지 단계는 상기 주변 장치의 구성 공간 내에 상기 주변 장치가 준비완료되었다는 것을 표시하는 비트를 설정하는 단계를 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  9. 제7항에 있어서, 상기 방지 단계는 상기 컴퓨터의 상기 오퍼레이팅 시스템의 구성 공간 내에 상기 주변 장치가 준비완료되었다는 것을 표시하는 비트를 설정하는 단계를 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  10. 제9항에 있어서, 상기 비트가 상기 구성 공간 내에 정의되었음을 상기 오퍼레이팅 시스템이 결정하는 단계를 더 포함하는 주변 장치를 컴퓨터에 등록하는 방법.
  11. 컴퓨터 시스템에 있어서,
    메모리 장치;
    상기 메모리 장치 내에 저장된 프로그램 명령들을 수행하는 프로세서 수단;
    주변 장치;
    상기 주변 장치를 상기 프로세서 수단에 연결하는 수단; 및
    상기 주변 장치에 공급되는 리셋 신호의 해제(deasserting)로부터 및 상기 주변 장치로의 액세스 시도에 응답하여 소정의 기간 내에 상기 주변 장치로부터 상태 메시지를 송신함으로써 응답하는 수단
    을 포함하는 컴퓨터 시스템.
  12. 제11항에 있어서, 상기 연결 수단에 상기 주변 장치가 부착되었음을 알리는 통지에 응답하여 상기 리셋 신호를 해제하는 수단을 더 포함하는 컴퓨터 시스템.
  13. 제11항에 있어서, 상기 프로세서 수단은 시스템 버스를 포함하고, 상기 연결 수단은 로컬 버스를 포함하는 컴퓨터 시스템.
  14. 제11항에 있어서, 상기 연결 수단은 상기 주변 장치를 받아들이도록 적응화되어있는 슬롯을 포함하는 컴퓨터 시스템.
  15. 제11항에 있어서, 상기 상태 메시지는 재시도 응답이고, 상기 응답 수단은 상기 소정의 기간보다 짧은 초기 레이턴시 기간 동안에 상기 재시도 응답을 전송하는 컴퓨터 시스템.
  16. 제11항에 있어서, 상기 주변 장치는 구성 완료 직후 상기 프로세서 수단으로부터의 비 구성 액세스에 응답하기 위한 수단을 포함하는 컴퓨터 시스템.
  17. 제11항에 있어서, 상기 주변 장치는 상기 상태 메시지의 상기 전송 후 상기 주변 장치의 내부 논리를 초기화하기 위한 수단을 포함하는 컴퓨터 시스템.
  18. 제11항에 있어서, 상기 주변 장치는 비 구성 액세스에 응답할 준비가 완료될 때까지 상기 주변 장치로의 상기 비 구성 액세스를 방지하기 위한 수단을 더 포함하는 컴퓨터 시스템.
  19. 제18항에 있어서, 상기 방지 수단은 구성 공간 내에 상기 주변 장치가 준비되었음을 표시하는 비트를 설정하는 컴퓨터 시스템.
KR1019990008529A 1998-04-27 1999-03-13 주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템 KR100339442B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/067,042 1998-04-27
US9/067,042 1998-04-27
US09/067,042 US6035355A (en) 1998-04-27 1998-04-27 PCI system and adapter requirements following reset

Publications (2)

Publication Number Publication Date
KR19990082733A KR19990082733A (ko) 1999-11-25
KR100339442B1 true KR100339442B1 (ko) 2002-06-03

Family

ID=22073348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990008529A KR100339442B1 (ko) 1998-04-27 1999-03-13 주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템

Country Status (6)

Country Link
US (1) US6035355A (ko)
EP (1) EP0953902A3 (ko)
JP (1) JP3974288B2 (ko)
KR (1) KR100339442B1 (ko)
CN (1) CN1130645C (ko)
TW (1) TW426833B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460106B1 (en) * 1998-10-20 2002-10-01 Compaq Information Technologies Group, L.P. Bus bridge for hot docking in a portable computer system
US6292859B1 (en) * 1998-10-27 2001-09-18 Compaq Computer Corporation Automatic selection of an upgrade controller in an expansion slot of a computer system motherboard having an existing on-board controller
US6295566B1 (en) * 1998-10-31 2001-09-25 Campaq Computer Corporation PCI add-in-card capability using PCI-to-PCI bridge power management
US6237057B1 (en) * 1998-12-16 2001-05-22 International Business Machines Corporation Method and system for PCI slot expansion via electrical isolation
US6195723B1 (en) * 1998-12-16 2001-02-27 International Business Machines Corporation Method and system for providing peer-to-peer control in an expanded slot environment using a bridge as an agent for controlling peripheral device
KR100517546B1 (ko) 1999-07-16 2005-09-28 삼성전자주식회사 엘이디 표시기에 포스트 코드를 표시하는 휴대용 컴퓨터
US6625680B1 (en) * 1999-08-16 2003-09-23 Cisco Technology, Inc. System and method for processing circuit card connector and redundancy events
US6618783B1 (en) * 1999-10-29 2003-09-09 Hewlett-Packard Development Company, L.P. Method and system for managing a PCI bus coupled to another system
DE19960243A1 (de) * 1999-12-14 2001-07-05 Infineon Technologies Ag Bussystem
US6532558B1 (en) * 2000-03-02 2003-03-11 International Business Machines Corporation Manufacturing testing of hot-plug circuits on a computer backplane
US6772263B1 (en) * 2000-08-10 2004-08-03 Serverworks Corporation PCI arbiter with hot plug controller support
US7295882B2 (en) * 2002-06-27 2007-11-13 International Business Machines Corporation Method and apparatus for audible error code detection and identification
CN1302358C (zh) * 2003-05-21 2007-02-28 华为技术有限公司 一种桥接芯片的复位方法及其装置
JP4321754B2 (ja) * 2003-07-31 2009-08-26 Tdk株式会社 圧電共振器およびそれを用いたフィルタ
US7073008B2 (en) * 2003-09-15 2006-07-04 Media Tek Inc. Method of function activation on a bridge system
US7310099B2 (en) * 2004-05-03 2007-12-18 Dell Products L.P. Information handling system including detection of inappropriate video connection
US20060161712A1 (en) * 2004-07-29 2006-07-20 Arramreddy Sujith K PCI arbiter with hot plug controller support
US7139184B2 (en) 2004-12-07 2006-11-21 Infineon Technologies Ag Memory cell array
US7539801B2 (en) * 2005-05-27 2009-05-26 Ati Technologies Ulc Computing device with flexibly configurable expansion slots, and method of operation
US20060282724A1 (en) * 2005-06-14 2006-12-14 Microsoft Corporation Programmatically switched hot-plug PCI slots
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
CN101981554B (zh) * 2008-03-25 2013-08-21 惠普开发有限公司 用于将pcie sr-iov功能转换成表现为传统功能的系统和方法
US8294188B2 (en) * 2008-10-16 2012-10-23 Qimonda Ag 4 F2 memory cell array
US7759704B2 (en) * 2008-10-16 2010-07-20 Qimonda Ag Memory cell array comprising wiggled bit lines
US8527816B2 (en) * 2010-03-10 2013-09-03 International Business Machines Corporation Identifying a defective adapter
CN104932921B (zh) * 2015-06-16 2018-07-06 联想(北京)有限公司 启动控制方法和电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426679A (en) * 1980-09-29 1984-01-17 Honeywell Information Systems Inc. Communication multiplexer using a random access memory for storing an acknowledge response to an input/output command from a central processor
JP3421378B2 (ja) * 1993-03-23 2003-06-30 株式会社東芝 伝送制御方式
US5548782A (en) * 1993-05-07 1996-08-20 National Semiconductor Corporation Apparatus for preventing transferring of data with peripheral device for period of time in response to connection or disconnection of the device with the apparatus
US5537664A (en) * 1993-06-30 1996-07-16 Intel Corporation Methods and apparatus for generating I/O recovery delays in a computer system
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5517646A (en) * 1994-04-25 1996-05-14 Compaq Computer Corp. Expansion device configuration system having two configuration modes which uses automatic expansion configuration sequence during first mode and configures the device individually during second mode
US5768542A (en) * 1994-06-08 1998-06-16 Intel Corporation Method and apparatus for automatically configuring circuit cards in a computer system
US5594873A (en) * 1994-12-08 1997-01-14 Dell Usa, L.P. System and method for identifying expansion devices in a computer system
US5548712A (en) * 1995-01-19 1996-08-20 Hewlett-Packard Company Data storage system and method for managing asynchronous attachment and detachment of storage disks
KR960032232A (ko) * 1995-02-25 1996-09-17 김광호 메모리 카드와 스마트카드 겸용 가능한 카드 리드/라이트 장치
US5737524A (en) * 1995-05-22 1998-04-07 International Business Machines Corporation Add-in board with programmable configuration registers for use in PCI bus computers
KR100244836B1 (ko) * 1995-11-02 2000-02-15 포만 제프리 엘 컴퓨터시스템 및 다수의 기능카드 중 한개의 기능카드를 격리하는 방법
US5933609A (en) * 1996-04-08 1999-08-03 Vlsi Technology, Inc. Method and system for hot docking a portable computer to a docking station via the primary PCI bus
US5875310A (en) * 1996-05-24 1999-02-23 International Business Machines Corporation Secondary I/O bus with expanded slot capacity and hot plugging capability
US5922060A (en) * 1996-12-31 1999-07-13 Compaq Computer Corporation Expansion card insertion and removal
US5898869A (en) * 1996-09-20 1999-04-27 The Foxboro Company Method and system for PCMCIA card boot from dual-ported memory
US5784576A (en) * 1996-10-31 1998-07-21 International Business Machines Corp. Method and apparatus for adding and removing components of a data processing system without powering down
US5887144A (en) * 1996-11-20 1999-03-23 International Business Machines Corp. Method and system for increasing the load and expansion capabilities of a bus through the use of in-line switches
US5845114A (en) * 1997-01-08 1998-12-01 Telxon Corporation PC card initialization for microprocessor based devices

Also Published As

Publication number Publication date
US6035355A (en) 2000-03-07
JP3974288B2 (ja) 2007-09-12
EP0953902A3 (en) 2003-10-29
KR19990082733A (ko) 1999-11-25
TW426833B (en) 2001-03-21
EP0953902A2 (en) 1999-11-03
CN1233799A (zh) 1999-11-03
JPH11353267A (ja) 1999-12-24
CN1130645C (zh) 2003-12-10

Similar Documents

Publication Publication Date Title
KR100339442B1 (ko) 주변장치를 컴퓨터에 등록하는 방법 및 컴퓨터 시스템
US6185642B1 (en) Bus for high frequency operation with backward compatibility and hot-plug ability
US7099969B2 (en) Dynamic reconfiguration of PCI Express links
US6338107B1 (en) Method and system for providing hot plug of adapter cards in an expanded slot environment
US7024510B2 (en) Supporting a host-to-input/output (I/O) bridge
US6038624A (en) Real-time hardware master/slave re-initialization
US20060168377A1 (en) Reallocation of PCI express links using hot plug event
US7117388B2 (en) Dynamic, Non-invasive detection of hot-pluggable problem components and re-active re-allocation of system resources from problem components
US6295566B1 (en) PCI add-in-card capability using PCI-to-PCI bridge power management
US20040215864A1 (en) Non-disruptive, dynamic hot-add and hot-remove of non-symmetric data processing system resources
JPH0863340A (ja) ネットワークにおけるシステムのコンフィギュレーション情報の通信方法及び装置
JPH08180013A (ja) コンピュータシステム、pciバスクロック信号周波数における変化に応答してpciバス装置のコンフィギュレーションレジスタを再構成する方法、およびpciバス装置がpciバスと異なる動作速度を有することをオペレータに通知する方法
JP2000311035A (ja) データ処理システムにプロセッサをホットプラグする方法およびシステム
WO2000019292A2 (en) Upgrade card for a computer system
US20020133693A1 (en) Apparatus and method for implementing fault resilient booting in a multi-processor system by using flush command to control resetting of the processors and isolating failed processors
US6615288B1 (en) Generating system management interrupt in response to usb controller signal and processing interrupt routine in upper most level of system memory
EP0836141B1 (en) A fault-tolerant bus system
US7080181B2 (en) Hot-pluggable video architecture
US6237057B1 (en) Method and system for PCI slot expansion via electrical isolation
JPH09185578A (ja) 拡張/ブリッジpciバスにおいてpci割込みバインディングおよびそれに関連した待ち時間を最適化するための方法および装置
US6564279B1 (en) Method and apparatus facilitating insertion and removal of modules in a computer system
US20040088466A1 (en) Hot docking drive wedge and port replicator
US6195723B1 (en) Method and system for providing peer-to-peer control in an expanded slot environment using a bridge as an agent for controlling peripheral device
US7099966B2 (en) Point-to-point electrical loading for a multi-drop bus
US7069360B2 (en) Method and apparatus for detecting a device&#39;s ability to run at a selected frequency in a PCI non-inhibit bus-connect mode

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20060417

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee