KR100305098B1 - 운영컴퓨터시스템에장치를삽입또는제거하는방법 - Google Patents

운영컴퓨터시스템에장치를삽입또는제거하는방법 Download PDF

Info

Publication number
KR100305098B1
KR100305098B1 KR1019970044691A KR19970044691A KR100305098B1 KR 100305098 B1 KR100305098 B1 KR 100305098B1 KR 1019970044691 A KR1019970044691 A KR 1019970044691A KR 19970044691 A KR19970044691 A KR 19970044691A KR 100305098 B1 KR100305098 B1 KR 100305098B1
Authority
KR
South Korea
Prior art keywords
secondary bus
bus
signal
controller
pci
Prior art date
Application number
KR1019970044691A
Other languages
English (en)
Other versions
KR19980063444A (ko
Inventor
프라나이 디 샤
케네쓰 씨 마
제프리 에이 하우키
케네쓰 제이 코트로우스키
Original Assignee
클라크 3세 존 엠.
내셔널 세미콘덕터 코포레이션
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 클라크 3세 존 엠., 내셔널 세미콘덕터 코포레이션 filed Critical 클라크 3세 존 엠.
Publication of KR19980063444A publication Critical patent/KR19980063444A/ko
Application granted granted Critical
Publication of KR100305098B1 publication Critical patent/KR100305098B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Abstract

2 차 버스 컨트롤러는 호스트 컴퓨터에서 소프트웨어를 정지시키지 않거나 혹은 동작을 멈추지 않으면서 2 차 버스로부터 장치의 핫 삽입 및 배출을 허용한다. 장치가 삽입될 경우, 신호는 2 차 버스 컨트롤러로 보내진다. 2 차 버스 컨트롤러는 2 차 버스의 동작을 중지시켜, 정지시 2 차 버스상에 장치를 위치시킨다. 인터럽트 핸들러는 일단 삽입되어진 새로운 삽입 카드에 대해 시스템을 변경시킨다. 삽입 동안 2 차 버스상에서 장치를 접근시키는 시도가 삽입이 완료될 때까지 재시도 신호와 만날 수 있다. 배출 처리는 유사한 단계를 뒤따라, 2 차 버스상에서 동작을 격리 및 중지시키며, 시스템을 변경시키도록 호스트 프로세서에서 인터럽트 루틴을 트리거한다. 2 차 버스 컨트롤러와 함께하는 호스트 프로세서 및 1 차 버스는 삽입 또는 배출 처리 동안 활성상태이다. 즉, 호스트 컴퓨터 상에서 실행하는 적용이 삽입 또는 배출동안 완료되지 않아도 된다. 본 발명은 특히 네트워크 서버 컴퓨터 시스템에 적용된다.

Description

운용 컴퓨터 시스템에 장치를 삽입 또는 제거하는 방법
본 발명은 일반적으로 운영 컴퓨터 시스템으로의 디바이스의 삽입과 그 시스템으로부터의 디바이스 제거를 제어하는 장치 및 방법에 관한 것이다. 더욱 상세하게는, 본 발명은 컴퓨터 시스템, 운영 소프트웨어 또는 네트워크의 동작을 인트럽트하지 않고, 네트워크 서버 등의 컴퓨터 시스템에 디바이스를 삽입하거나 또는 그 시스템으로부터 디바이스 카드 등을 제거할 수 있는 방법 및 장치에 관한 것이다.
컴퓨터 네트워크는 다양한 응용에 사용되어 다수의 컴퓨터 사이에서 데이터, 프로그램 등을 분배하는 수단을 제공한다. 많은 컴퓨터 네트워크는 네트워크 서버가 네트워크의 다수의 클라이언트 컴퓨터에 대해 다수의 중앙집중 하드웨어/소프트웨어 자원을 제공하는 클라이언트/서버 시스템을 사용하고 있다.
클라이언트/서버 시스템의 한 가지 단점은, 서버가 임의의 기간 동안 작동중단되는 경우, 네트워크와 많은 클라이언트 컴퓨터의 동작을 중단시킬 수 있다는 점이다. 이러한 중단은 퍼스널 컴퓨터(PC)의 주이점 중의 하나, 즉 PC 의 독립적인 동작(stand-alone)을 불가능하게 한다.
네트워크 서버는 여러가지 이유로 주기적으로 동작이 중단될 수 있다. 예를 들면, 소프트웨어를 업그레이드하거나 부가 애플리게이션 등을 재설정하는 것이 요구된다. 또한, 하드웨어를 업그레이드하거나 불량 하드웨어 부품을 대체하기 위하여 서버 컴퓨터의 동작을 중단시킬 수도 있다. 또한, 서버는 하드웨어를 교환하거나 액세서리 하드웨어 장치를 설치하기 위하여 동작이 중단될 수 있다. 예를 들면, 데이터 기억장치(예를 들면, 휴대용 하드 드라이브, CD-ROM, 등)를 서버에 부착하고 클라이언트 컴퓨터를 그 데이터 기억장치에 기억된 데이터에 접근토록 하는 것이 바람직할 수 있다.
따라서, 하드웨어 장치가 서버 컴퓨터로부터 제거되거나 부착(즉, 배출 또는 삽입)될 수 있도록 하는 방법 및 장치를 제공하는 것이 바람직하다. 종래 기술에서는, 완전히 초기화된 컴퓨터 시스템에서 부착물을 삽입 또는 그로부터 제거하는 기술을 시도하여 왔다. 그러한 시스템은 예를 들면, 본 발명에서 참조한 1995 년 1 월 31 일에 출원한, Lien 등의 미국 특허 제 5,386,567 호에 개시되어 있다.
Lien 은 어댑터 장치상에서 길이를 변하는 핀을 이용함으로써, 어댑터를 완전히 초기화된 컴퓨터에 삽입할 경우에는, 긴 핀을 이용하여, 어댑터를 삽입할 호스트 컴퓨터에 신호를 보내고 그 어댑터로부터 및 어댑터로 신호를 전송하기 이전에 어댑터에 전력을 공급한다.
Lien 은 사용자에 의해 어댑터를 분리하라는 요청이 주어질 때까지 어댑터를 호스트 컴퓨터에 고정하는 기계적으로 동작하는 어댑터용 잠금 기구의 사용을 개시하고 있다. 또한, Lien 의 긴 핀은 장치로 및 장치로부터 신호를 전송하기 이전에 전원을 안정화시켜 인가하기 위해 사용된다.(Col.5, 라인 10-16). 그후, 기억된 ID 코드를 호스트 컴퓨터로 전송하여, 어댑터가 핫 삽입과 호환하는 지를 판정하고 핫 삽입이 허용가능한 경우에는 속성 정보가 독출한다(Col 5, 라인 17-24).
Lien 등의 시스템은 장치의 삽입 및/또는 배출동안 복수개의 클라이언트 애플리케이션을 실행하는 네트워크 환경에용이하게 사용할 수 없다. 네트워크 환경에서는, 시스템으로부터 하드웨어 장치의 삽입 및/또는 제거 동안에 클라이언트 소프트웨어의 동작을 유지하여야 한다. 또한, 이러한 동작은 독립형 또는 클라이언트 컴퓨터에도 바람직하다.
종래의 일부 시스템은 시스템 상태를 메모리에 기억한 후(레지스터 등의 내용을 섀도우시키며), 1 차 호스트 프로세서의 동작을 일시 중지시켜 핫 삽입 또는 배출을 행하였다. 1 차 호스트 프로세서에 새로운 소프트웨어를 로드하여 핫 삽입 또는 배출 처리를 하였다. 삽입 또는 배출이 완료되면, 기억된 시스템 레지스터의 내용을 재저장하여 처리를 다시 시작한다.
독립형 또는 클라이언트 PC 에서는, PC 의 주 사용자가 삽입 또는 배출동안 PC 를 사용하지 않기 때문에, 이러한 시스템을 사용할 수 있다. 그러나, 클라이언트/서버(또는 피어 투 피어 랜상의 PC)에서는, 장치 삽입 또는 배출 동안 순간적이나마 동작 중단하는 것이 허용하지 않는다. 서버 컴퓨터의 동작이 일순간이라도 중단이 되면, 네트워크상의 수많은 클라이언트 컴퓨터의 동작이 중단될 수 있다.
본 발명은 완전한 운영 컴퓨터 시스템으로 장치의 삽입/배출이 가능하면서도 삽입 또는 배출시 컴퓨터 시스템의 자동적인 구성을 제공하는 방법 및 장치를 제공한다.
이동 장치(removeable device)에 2차 버스를 제공한다. 카드 삽입시에, 삽입 검출 기구에 의해 또는 사용자에 의해 초기화된 신호로부터 삽입 이벤트를 검출한다. 2 차 버스상의 장치에 의한 전기적인 손상을 방지하고 다른 장치에 의해 기록되어지는 것을 방지하기 위하여, 2 차 버스 컨트롤로에 의해 2 차 버스를 분리하여 정적 상태로 한다.
도 1 은 본 발명의 장치의 바람직한 실시예의 블록도.
도 2 는 장치의 삽입 및 배출시 도 1 의 시스템에서의 신호를 도시하는 파형도.
도 3 은 삽입처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 첫 번째 부분.
도 4a 는 삽입처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 두 번째 부분.
도 4b 는 삽입처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 세 번째 부분.
도 5 는 배출처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 첫 번째 부분.
도 6a 는 배출처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 두 번째 부분.
도 6b 는 배출처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 세 번째 부분.
도 6c 는 배출처리 동안 본 발명의 장치 및 관련 인터럽트 핸들러의 동작을 도시하는 흐름도의 네 번째 부분.
도 7 은 본 발명의 동작을 도시하는 상태도.
도 8 은 랩탑 도킹 스테이션(810)과 함께 사용하기 위해, 2차버스 컨트롤러(120)를 랩탑 컴퓨터(820)에 적용하는 방법을 나타낸 블록도.
도 9 는 도킹 스테이션(910)과 함께 사용하기 위해, 2차버스 컨트롤러(120)를 랩탑 컴퓨터(920)에 적용하는 방법을 나타낸 도면.
도 10 은 2 개의 2 차 버스 컨트롤러(120)가 랩탑(1020)및 도킹 스테이션(1010)에 적용하는 방법을 나타낸 도면.
도 11 은 이동 장치에 사용하는 슬롯의 수를 확장시키기 위해, 2 차 버스 컨트롤러(120)를 직렬로 접속하는 방법을 나타낸 도면.
도 12 는 부가적인 이동 또는 고정 장치를 지원하기 위해, 2 차 버스 컨트롤러(120)가 병렬로 접속하는 방법을 나타낸 도면.
도 13 은 일 군의 장치(확장장치(1310))를 컴퓨터(1320)와 인터페이스시키기 위해, 2차버스 컨트롤러(120)를 적용하는 방법을 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명 *
101 : 프로세서 102 : 호스트 버스
103 : 시스템 컨트롤러 104 : PCI 버스
105 : I/O 컨트롤러 106 : I/O 버스
120 : 2 차 버스 컨트롤러 130 : PCI 장치
150 : 커넥터
컴퓨터 시스템은 2 차 버스 컨트롤러에 의해 구동되는 인터럽트에 의해 삽입 이벤트를 통지 받는다. 장치가 삽입되면, 2 차 버스 컨트롤러에 의해 2차 버스가 시동된다. 컴퓨터 시스템은 재구성되며 의사배출을 방지하기 위해, 새로 삽입된 카드를 잠근다. 삽입 처리동안, 2 차 버스 이외의 컴퓨터 시스템은 실행이 계속되며, 또한 소프트웨어 애플리케이션도 실행이 계속된다.
카드 배출 이벤트는 사용자에 의해 시작된다. 2 차 버스 컨트롤러는 컴퓨터 시스템에 배출 이벤트를 통지하여, 인터럽트에 의한 요청카드를 식별한다.
컴퓨터 시스템은 배출 요청 카드용의 애플리케이션 자원을 폐쇄하고 자원 폐쇄의 완료를 배출 버스 컨트롤러에 통지한다. 2 차 버스 상의 장치를 전기적인 손상으로부터 보호하고 2 차 버스 상의 장치가 시스템 오류를 일으킬 수 있는 의사 신호를 기록하는 것을 방지하기 위하여, 2차버스 컨트롤러에 의해 2차버스를 분리하여, 정적 상태로 한다.
그후, 배출 요청 카드가 해제되고, 사용자에게 카드가 배출되었음을 알린다. 컴퓨터 시스템에는 2 차 버스 컨트롤러에 의해 구동되는 인터럽트에 의해 배출 완료가 통지된다. 그후, 2 차 버스 컨트롤러에 의해 2차버스가 재시작되고 컴퓨터 시스템이 재구성된다.
도 1 은 호스트 컴퓨터에 설치된 본 발명의 바람직한 실시예를 도시하는 블록도이다. 도 1 에서, 프로세서(101)는 컴퓨터 시스템(예를 들면,네트워크 서버 컴퓨터)의 호스트 프로세서로 이루어질 수 있으며, 다수의 공지된 프로세서 유형(예를 들면, 인텔 80×86, 모토롤라 68XX, 사이릭스 X86, AMD X86, MIPS, 알파 등)들중의 어느 하나일 수도 있다.
본 발명의 일 목적은 프로세서 유형과는 독립적인 장치의 핫 삽입/제거 기술을 제공하는 것이다.
본 발명의 바람직한 실시예에 있어서, 본 발명의 장치 및 방법은 윈도우즈 NT 또는 윈도우즈 9X 운영체제 환경에서 이용한다.
프로세서(101)는 공지된 다수의 호스트 버스(예를 들면, 펜티엄TM버스, 펜티엄 프로TM버스, 등)들중에서 어느 하나로 이루어질 수 있는 호스트 버스(102)를 통해 다른 장치에 접속될 수 있다. 또한, 프로세서(101)는 다중 프로세서 시스템의 다수의 프로세서들중의 어느 한 프로세서 또는 모두로 이루어질 수 있다. 시스템 컨트롤러(103)는 컴퓨터 시스템용 칩셋의 일부를 이루는 1개 이상의 반도체 회로로 이루어질 수 있다. 시스템 컨트롤러(103)는 프로세서(101)로의 입력 및 출력을 제어하고 부가적인 버스로 프로세서(101)를 인터페이스할 수 있다.
1 차 PCI 버스(104)는 시스템 컨트롤러(103)를 통해 프로세서(101)로 인터페이스될 수 있다. 1 차 PCI 버스(104)는 I/O 컨트롤러(105) 등의 시스템 컨트롤러를 통해 I/O 버스(106)를 구동함으로써, 다수의 장치들 중의 한 장치와 인터페이스할 수 있다. 여기서, 1 차 PCI 버스(104)가 PCI(Peripheral Communicatiions Interface) 버스로서 나타내었지만, 다른 유형의 버스도 본 발명의 사상과 범주로부터 일탈하지 않고 이용할 수 있다. PCI 버스는 널리 이용되는 산업표준이므로, 본 발명의 바람직한 실시예에서 사용하지만, PCI 버스 프로토콜을 지원하는 다수의 장치를 이용할 수도 있다.
2 차 버스 컨트롤러(120)는 도 1에서 도면부호 111 로 나타낸 1차 PCI 버스의 일부를 통해 인터페이스되는 1 차 PCI 버스(104)상의 장치로서 존재한다. 그 1 차 PCI 버스의 일부분(111)은 PCI 버스(104)의 데이터 라인, 어드레스 라인 및 제어 라인을 포함한다. 라인(109)상의 1 차 PCI 버스 클럭 PCICLKp 및 라인(110)상의 1 차 PCI 버스 리셋 신호 PCIRSTp#는, 도 1 에 도시된 바와 같이 시스템 컨트롤러(103)에 직접 라우트될 수 있다. 리셋 신호 PCIRSTp#에서 # 은, 당해 분야에 알려져 있는 바와 같이, 호라성 로우 신호를 나타낸다.
2 차 버스 컨트롤러(120)는 상술한 바와 같이 변형된 PCI 확장 버스 컨트롤러로 이루어질 수 있다. 다수의 장치에 대한 확장이 가능하도록, 복수개의 2 차 버스 컨트롤러(120)를 제공할 수도 있다. 바람직한 실시예에서, 각각의 2 차 버스 컨트롤러(120)는 5 개의 PCI 장치(예를 들면, 4 개의 이동장치와 1개의 고정장치)까지 인터페이스를 제공할 수 있다. 부가적인 2 차 버스 컨트롤러(120)를 부가하여, 그러한 컨트롤러를 도 1 에 도시된 방식으로 시스템 컨트롤러를 시스템 컨트롤러에 직접적으로 인터페이스하거나 2 차 버스 컨트롤러(120)를 직렬로 접속할 수도 있다.
2 차 버스 컨트롤러(120)는 다수의 PCI 장치를 프로세서(101)에 교대로 인터페이스할 수 있는 자체적인 PCI 버스(126)을 제공할 수 있다. 일반적인 PCI 버스 환경에서는, 1개의 버스로 10개의 장치를 지원할 수 있다. 또한 더이상의 장치는 전달 지연을 유발하여 성능을 저하시킬 수 있다. 물론, 부가적인 장치를 지원하기 위해, 하드웨어를 변경할 수도 있지만, 일반적인 PCI 사양은 10 개의 장치까지 지원한다. 본 발명의 바람직한 실시예에서는, 1개 이상의 고정 장치와 함께, 4 개의 이동장치까지 지원할 수 있다.
이동장치용의 각 커넥터는 총 8개의 등가장치 부하 만큼 부가적인 전달 지연부하를 4 개의 이동 장치에 가한다. 바람직한 실시예에서는, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)로부터 4 개의 이동 PCI 장치를 구동할 수 있다. 또한, 바람직한 실시예에서는 2차 PCI 버스 컨트롤러로서 도시하였지만, 이 2 차 버스 컨트롤러(120)는 다른 유형의 확장 버스에 인터페이스를 제공할 수 있다.
이하, 표 1 에 나타낸 레지스터 비트를, 본 발명과 관련하여, 설명한다. 2 차 버스 컨트롤러(120)는 이러한 레지스터 비트가 삽입/배출 아키텍쳐를 지원할 것을 요한다. 이들 레지스터 비트들은 예시로 나타낸 것으로, 본 발명의 범주를 한정하려는 것은 아니다.
레지스터 비트 설명
CHG_STS 삽입/배출을 뒤따르는 상태 변화를 나타냄. 변형에 대한 소프트웨어를 통지. 리셋시 "0" 으로 디폴트.
INSERT_EJECT_EN [3:0] 핫 삽입/배출에 대해 슬롯이 인에이블 인지의 여부를 제어. 주어진 슬롯 n 에 대해, 비트 INSERT_EJECT_EN [n] 은 INT#를 통해 보고된 경우에도 삽입 또는 배출에 대해 설정되어야 함. 리셋시 "0" 의 디스에이블값으로 디폴트.
INSERT [3:0] 소프트웨어에 의해 2 차 버스 컨트롤러에 통지하여 삽입을 초기화하도록 설정됨. 리셋시 "0000" 의 소프트웨어 미초기화 삽입 상태로 디폴트.
INSERT_REQ_STS [3:0] 삽입에 대한 미결 인터럽트를 나타냄. 리셋시 "0000" 으로 디폴트.
PRESENT [3:0] 디바운드를 뒤따르는 PRSNTS [3:0]# 의 상태를 반영. 설정될 경우, 슬롯이 로드되며, 카드가 존재함. 소거될 경우, 슬롯이 비게되며, 카드가 존재하지 않음. 리셋시, PRESENT[n] 은 PRSNTS[n]# 가 로우인 경우에 설정되며, PRSNTS[n]# 가 하이인 경우에 소거됨.
SLOT_CLK_ENs [3:0] PCICLKs[3:0] 를 제어. SLOT_CLK_ENs [n] 이 소거될 경우, PCICLKs[n] 이 로우로 설정되며, SLOT_CLK_ENs [n] 이 설정될 경우, PCICLKs[n] 이 토글하며, 1차 PCI 클록(PCICLKp)과 동기화함. PCICLKs[3:0] 이 차지하는 슬롯에 대해 작용하도록 리셋시 "1111" 로 디폴트
SLOT_RST_ENs [3:0] PCIRST[3:0]# 를 제어. 소거될 경우, PCIRSTs[n]# 는 PCIRSTp#를 뒤따름. SLOT_RST_ENs[n] 가 설정될 경우, PCIRSTs[n]# 은 로우로 유지됨. PCIRSTs[3:0]# 이 PCIRSTp#를 뒤따르도록 리셋시 "0000" 으로 디폴트.
EJECT_REQ_STS [3:0] 자원을 폐쇄하는 동안 배출에 대한 보류 인터럽트를 나타냄. 리셋시 "0000" 의 비보류 인터럽트 상태로 디폴트.
EJECT [3:0] 소프트웨어에 의해 2 차 버스 컨트롤러에 통지하여 배출을 초기화하도록 설정됨. 리셋시 "0000" 의 소프트웨어가 초기화되지않은 배출상태로 디폴트.
표 2 에 나타낸 신호명을, 본 발명의 2 차 버스 컨트롤러(120)과 관련하여 설명한다. 이들 신호명들은 예로 나타낸 것으로, 본 발명의 범주를 한정하려는 것이 아니다.
신호명 설명
IREQ[3:0]#/EREQ[3:0] PRSNTS[n]#이 하이인 IREQ[3:0]#/ EREQ[3:0]의 하강에지는 삽입 요청를 나타냄. PRSNTS[n]# 가 로우인 IREQ[3:0]#/EREQ[3:0] 의 상승에지는 배출 요청을 나타냄.
PCICLKp 1차 PCI 버스로부터의 클록입력; 내부 클록으로서 사용됨
PCIRSTp# 1차 PCI 버스로부터의 리셋 신호 입력; 내부 리셋으로서 사용됨
PCICLKs 고정 PCI 장치에 대한 2 차 PCI 클록
PCICLKs [3:0] 2 차 PCI 슬롯(또는 다른 고정 PCI 장치)에 대한 PCI 클록.
PCIRSTs# 고정 PCI 장치에 대한 2 차 PCI 리셋.
PCIRSTs [3:0]# 2 차 PCI 슬롯(또는 다른 고정 PCI 장치)에 대한 PCI 리셋.
PRSNTS [3:0]# 어서트될 경우, 카드의 존재를 나타냄. 디어서트될 경우 카드의 부재를 나타냄. 리셋동안, PCICLKs [3:0], PCIRSTs[3:0]#, 및 PCIGNTs[3:0]# 신호가 3 가지 상태가 되거나 또는 구동되는지를 결정하기 위해 샘플링됨.
PCIGNTs# PCI 버스 마스터가 고정 PCI 장치에 대한 제어신호를 승인함.
PCIGNTs [3:0]# PCI 버스 마스터가 이동 PCI 장치에 대한 제어신호를 승인함.
SLOT_EN [3:0] 슬롯에의 파워온/파워오프를 제어하고, 슬롯에 카드를 잠그는데 사용됨.
INT# 삽입 또는 배출사상에 대한 인터럽트(활성 저, 개방 드레인)를 요청하도록 2 차 버스 컨트롤러에 의해 어서트됨.
GPIO [3:0] 슬롯에 대한 부가적인 제어로서 활용가능.
2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)를 통해 고정 PCI 장치(130)와 인터페이스할 수 있다. 고정 PCI 장치(130)는 컴퓨터 시스템이 실행되는 동안 제거 또는 삽입될 것으로 예상되지 않는 PCI 장치(예를 들면, 하드 드라이브 컨트롤러, CD-ROM, 모뎀, 네트워크 카드, 디스플레이 드라이버 등)를 포함할 수 있다. 고정 PCI 장치의 사용은 선택적인 것으로, 1개 이상의 PCI 확장 버스상에서 고정 PCI 장치를 장치를 제거함으로써, 부가할 이동 PCI 장치의 수를 증대시킬 수 있다.
또한, 부가적인 고정 PCI 장치를 부가할 수 있으며, 이동장치용의 슬롯의 수를 감소시킬 수도 있다. PCI 장치(130)는 2 차 PCI 버스(126)및 라인(127)상의 2 차 PCI 클럭(PCICLKs)과 라인(128)상의 PCI 리셋 신호(PCIRSTs#)를 통해 2 차 버스 컨트롤러(120)에 인터페이스할 수 있다. 도 1 에서, 기호 "s" 는 일반적으로 2 차 PCI 버스(126)과 관련된 신호를 나타내는 한편, 기호 "p" 는 1 차 PCI 버스(104)와 관련된 신호를 나타낸다.
고정 PCI 장치(130)에 부가하여, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)를 통한 커넥터(150)를 통해 4 개의 이동 PCI 확장장치를 구동할 수 있다. 또한, 여기서는, 커넥터(150)를 통하는 4 개의 이동성 확장장치만을 나타내었지만, 레지스터 비트의 수를 변경하거나 및/또는 고정 PCI 장치의 사용을 제거함으로써, 부가적인 이동 확장 장치를 부가할 수도 있다. 또한, 상술한 바와 같이, 다중 2 차 버스 컨트롤러(120)를 컴퓨터 시스템에 부가적인 PCI 확장장치를 부가할 수 있도록, 서로 접속하거나 병렬로 제공할 수도 있다.
본 발명의 설명을 용이하게 하기 위해, 도 1에는 1개의 이동 장치용 커넥터(150)및 관련 하드웨어를 도시하였다. 그러나, 도 1 의 기호 [3:0] 은 커텍터(150)및 관련 하드웨어를 4 개의 이동 장치(즉, 장치0, 1, 2, 3)로 대체할 수 있음을 나타낸다. 이하, 도 1 의 구성요소에 대하여, 리셋, 삽입 및 제거 시퀀스와 관련하여 더 설명하기로 한다.
리셋 시퀀스
파워업 또는 리셋시에, 다수의 이벤트가 도 1 의 시스템 내에서 발생하여 핫 삽입 및 배출(통칭하여 "핫 스와핑"이라 함)을 인에이블시킨다. 시스템 컨트롤러(103)는 라인(110)상에서 1 차 PCI 리셋 PCIRSTp#을 어서트하며 라인(109)상에서 1 차 PCI 클럭 PCICLKp을 시작한다. 그후, 2 차 버스 컨트롤러(120)는 내부 리셋을 어스트하며 표 1 로부터의 구성 비트를 디폴트값을 리셋시킨다.
그후, 2 차 버스 컨트롤러(120)는 1 차 PCI 리셋 신호 PCIRSTp#를 어서트하는 것과 같이, 2 차 PCI 리셋 신호 PCIRSTs[3:0]# 및 PCIRSTs#를 어서트한다. 그와 같이, 2 차 고정 PCI 장치(130) 및 커넥터(150)에 결합된 이동 장치를 리셋시킨다. PCIRSTp# 활성 시간은 최소 1 msec 로서, 2 차 버스 컨트롤러(120)내에서 내부 클럭 및 위상 동기 루프(PLL)를 동기화하기에 충분한 시간이다.
그후, 2 차 버스 컨트롤러(120)는 SLOT_CLK_EN [3:0] 이 "1111" 로 디폴트되기 때문에, 2 차 PCI 클럭 신호 PCICLKs[3:0] 및 PCICLKs를 토글시킨다. 리셋동안, 2 차 버스 컨트롤러(120)는 신호 PRSNTS[3:0]# 을 샘플링하여 이들 신호의 상태를 비트 PRESENT[3:0]로서 기억하고, 적당한 SLOT_EN[3:0] 신호(144)를 어서트함으로서 로드된 슬롯으로 전력을 턴온한다. 비어있는 각 슬롯 n 에 대해, 2 차 버스 컨트롤러(120)는 해당 PCICLKs[n], PCIRSTs[n] 및 PCIGNTs[n] 신호의 3가지 상태로 만든다.
부팅시, 2 차 버스 컨트롤러(120)의 BIOS 는 PRESENT[3:0] 의 상태를 판독하고, "1" 을 기입하여 세트시켜, SLOT_RST_ENs[3:0] 을 세트시켜 로드되지 않은 슬롯에 대해 PRSNTS[3:0]을 활성화한다. 마지막으로, 2 차 버스 컨트롤러(120)의 BIOS 는 INSERT_EJECT_EN[3:0] 을 설정하여 삽입 및 배출은 인에이블시킨다. 이러한 마지막 단계는 이동 장치의 비승인 삽입 및/또는 배출을 방지하기 위한 보안형태로서 인에이블 또는 디스에이블 될 수도 있다.
삽입 시퀀스
"핫" 삽입 시퀀스는 4 가지 단계, 즉, 검출, 분리, 삽입 및 재구성으로 이루어질 수 있다. 본 발명의 설명을 위하여, 2차 버스 컨트롤러(120)로 또는 컨트롤러로부터의 여러 핀들 상의 신호를 대문자로 나타내었으나, 레지스터 비트는 이탤릭체 대문자로 나타내었다. 도 3, 4a, 및 4b 는 삽입 시퀀스의 4단계에서의 구성을 나타낸 흐름도로서, 시작단계(400)로 시작한다.
핫 삽입 시퀀스의 제 1 단계(410)는 검출이다. 검출단계(410)는 자동 또는 수동으로 실행할 수 있다. 자동 검출은 디바이스 카드 등의 돌발 삽입을 감지하는 근접 스위치 또는 접촉 스위치의 사용을 통해 이루어질 수 있다. 선택적으로 (예를 들어, 상술한 Lien 등에서와 같이, 카드의 다수의 긴 핀 또는 접점)검출을 수행하는데 다른 수단을 이용할 수도 있다.
도 1 에 도시된 바와 같이, 배출 스위치 EJECT[3:0] S1(141) 및 삽입 스위치 INSERT[3:0] S2(143)는 직렬로 접속할 수도 있다. 각 슬롯은 해당 삽입 및 배출 스위치를 제공할 수 있다. 장치가 해당 슬롯에 삽입하는 경우, 삽입스위치(143)는 닫힐 수 있는 근접 스위치 등(예를 들면, 광전자, 접촉 스위치, 홀 효과 등)을 포함할 수도 있다.
일반적으로, 각 배출 스위치(141)는 특정 슬롯에 근접하여 위치하거나 접속되는 정상 폐쇄형 간헐적인(예를 들면, 로드된 스프링) 수동 사용자 스위치를 포함할 수도 있다. 사용자가 장치를 배출하고자 할 경우, 사용자는 수동적으로 해당 배출 스위치를 누를수 있다. 삽입 스위치(143)의 폐쇄 또는 배출 스위치(141)의 개방은 삽입 또는 배출 요구 IREQ[3:0]#/EREQ[3:0] 을 발생시킬 수 있다. 삽입 및 배출 스위치를 직렬로 배치함으로서, 삽입 또는 배출을 위해 2 차 버스 컨트롤러(120)에 의해 요구되는 핀의 수가 최소화될 수 있다.
배출 스위치 삽입 스위치 라인(122)상의 전압
폐쇄 개방 Vcc
폐쇄 폐쇄 접지
개방 개방 Vcc
개방 폐쇄 Vcc
표 3 은 스위치(141, 143)의 여러 위치에 대한 라인(122)상의 신호에 대한 진리표를 도시한다. 배출 스위치(141)는 일반적으로 폐쇄되어 있으며 삽입 스위치(143)는 일반적으로 개방되어 있다. 그러한 상황하에서, 라인(122)은 분로 저항을 통해 시스템 전압(140)에 의해 하이가 된다. 삽입 스위치(143)가 폐쇄되는 경우, 라인(122)상의 전압은 로우가 되며, 이러한 변화는 해당 슬롯에 장치가 존재함을 나타낸다.
삽입 스위치(143)가 개방되는 동안에 배출 스위치(141)가 활성되는 경우, 라인(122) 상의 전압은 하이로 유지해야 한다. 이 상태는, 사용자가 비어있는 슬롯을 배출할 수 없기 때문에, 널(null)상태이다. 그러나, 삽입 스위치(143)가 폐쇄되고, 개방 스위치(141)가 개방되는 경우, 라인(122)상의 전압은 로우로부터 하이로 변화할 것이다. 라인(122)상의 하이로부터 로우로의 변화는 해당 슬롯에 대한 삽입을 나타내며, 로우로부터 하이로의 변화는 배출 요청을 나타낸다.
그러한 에지 검출은 1개의 라인(122)상에 2개의 신호를 제공할 수 있기 때문에, 2 차 버스 컨트롤러(120)상의 핀을 절감할 수 있다. 표 4 는 라인(122)에 대한 에지 검출방식을 요약한 것이다.
천이 신호 설명
로우로부터 하이로 EREQ[3:0] 배출 요청
하이로부터 로우로 IREQ[3:0]# 삽입 이벤트
표 4 의 에지 검출 방식 대신에, 레벨 검출방식을 이용할 수도 있으며, 이때 삽입 또는 배출 신호용으로 서로 다른 라인을 이용할 수 있다.
도 1, 도 3, 및 도 4 에 도시된 바와 같이, 삽입 요청 스위치 S2(143)는 IREQ[3:0]#/EREQ[3:0] 를 로우로 하여 단계 411 에 도시된 바와 같이 해당 슬롯에 대해 라인(122)상에서 신호 IREQ[3:0]#를 발생시킨다. 라인(122)상에서 신호 IREQ[3:0]# 가 어서트되며, 해당 INSERT_EJECT_EN[n] 비트가 설정되는 경우, 2 차 버스 컨트롤러(120)는 핫 삽입 시퀀스가 시작되었는지를 검출한다.
선택적으로, 도 3 의 단계 411 은 단계 412 에 도시된 바와 같은 소프트웨어를 통해 실행될 수 있다. 예를 들면, 사용자가 윈도우 95, 윈도우 NT, OS-2 등과 같은 그래픽 사용자 인터페이스에서는, 사용자가 "시작/삽입" 아이콘을 클릭할 수 있다. OS/BIOS 는 삽입을 초기화하는 소프트웨어가 요청되는 것을 나타내는 2 차 버스 컨트롤러(120)에서 비트 INSERT[n] 를 설정할 수 있다.
핫 삽입 시퀀스에서 제 2 단계(420)는 2 차 PCI 버스(126)및 그에 결합된 장치의 분리이다. 2 차 PCI 버스(126)는 버스 마스터링을 지원하는 동기화 버스이다. 즉, 2 차 PCI 버스(126)상의 다양한 장치는 데이터를 전송 또는 수신하기 위하여 삽입 컨트롤러(120)에 의해 2 차 PCI 버스(126)의 제어를 승인받을 수 있다. 이러한 버스 마스터링 기술은 버스 상에서 대역폭을 증가시키는데 사용할 수 있다. 이와 같이, 2 차 버스 컨트롤러(120)는 핫 삽입이 발생하기 이전에 2 차 PCI 버스(126)에 대한 제어를 다시 어서트(assert)하여야 한다.
분리 단계(420)동안, 단계 421에서 2 차 버스 컨트롤러(120)는 라인(132, 131)상에 신호 PCIGNTs# 및 PCIGNTs[3:0]# 을 각각 de-assert 함으로서 PCI 버스 마스터링을 디어서트(de-assert)한다. 2 차 버스 컨트롤러(120)는 버스 마스터가 제어하는 2차 PCI버스(126)상의 어느 장치가 그 싸이클을 완료하였는지를 대기한다. 그후, 단계 422에서, 2차버스 컨트롤러(120)는 2 차 PCI 버스(126)가 휴지 상태가 되는 것을 대기한다. 그후, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)상의 아비트레이션(arbitration)을 디스에이블시켜, 2 차 PCI 버스(126)상의 어떤 장치가 마스터 제어를 승인받는 것을 방지한다.
그후, 단계 423에서, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)상에서 어드레스 및 데이터 라인을 3 상태로 만든다. 그후, 단계 425에서, 2 차 버스 컨트롤러(120)는 비이동 PCI 장치(130)의 라인(127) 상의 PCI 클럭(PCICLKs)을 로우로 유지한다. 또한, 단계 425에서, 커넥터(150)상의 모든 로드된 슬롯으로의 라인(124)상의 PCI 클럭(PCICLKs[3:0])도 로우로 유지한다. 특정 슬롯이 로드 또는 로드되지 않았는지는, 단계 424 에 도시된 바와 같이 라인(123)상의 존재 신호(PRSNTS[3:0]#)를 샘플링하여 결정한다. 신호 PRSNTS[n]# 및 신호 IREQ[n]#/EREQ[n] 가 로우인 경우, 슬롯(n)이 로드되어 있다. 신호 PRSNTS[n]# 가 하이인 경우, 슬롯(n)은 비게 된다.
단계 426 및 427에서, 로드되지 않은 슬롯으로의 라인(124)상의 PCI 클럭 PCICLKs[3:0] 은 3가지 상태로 계속되며, 로드된 슬롯으로의 라인(125)상의 PCI 리셋 신호 PCIRSTs[3:0]# 는 각각 하이로(de-assert됨) 유지한다. 이런 방식으로, 2 차 PCI 버스(126)상에서 현재 동작중인 장치를 일시 정지 상태에 있게 함으로써, 삽입 처리 동안에 발생하는 어떠한 의사신호도 무시할 수 있다.
단계 428 에 나타낸 바와 같이, INSERT[n] 가 설정되는 경우(즉, 소프트웨어가 삽입을 초기화함), 처리는 단계 433 으로 진행한다. INSERT[n] 가 설정되지 않은 경우(즉, 하드웨어가 삽입을 초기화함), 2 차 버스 컨트롤러(120)는 해당 INSERT_REQ_STS[n] 비트를 설정하고, 라인(108)상에 통지 인터럽트 INT# 를 어서트하여 하드웨어 초기화 삽입이 요청되었다는 것을 운영체제 소프트웨어에 통지한다. 본 발명을 하드웨어 스위치 없이 시스템에 사용하는 경우에는, 2 차 버스 컨트롤러(120)의 구성 비트를 설정하여, 이러한 하드웨어 초기화 삽입 인터럽트를 디스에이블시킬 수 있다.
단계 430 에서, 운영체제 BIOS 은 인터럽트의 자원을 판단한다. 단계 431 에서, 운영체제 BIOS 은 INSERT_REQ_STS[n] 비트를 리셋시키고, 단계 432 에서 2차버스 컨트롤러(120)는 INT# 를 de-assert한다.
단계 433 에서, 운영체제 소프트웨어 또는 응용소프트웨어는 사용자프롬프트 메시지(예를 들면, "지금 카드삽입중")를 발생시키거나 및/또는 삽입 타이머를 시작할 수 있다. 이러한 삽입 타이머는 카드가 삽입되지 않거나 부적합하게 삽입되는 경우에 시스템이 정지하는 것을 방지하기 위해 사용할 수 있다. 단계 434에서, 삽입 타이머가 타임아웃되는 경우, 사용자에게 삽입 처리가 완료되지 않았음을 통지한다. 그러치 않으면, 삽입 단계가 실행되게 된다.
따라서, 삽입 동안, 통지 인터럽트 INT#(108)는 2번, 처음은 삽입 타임아웃 동안, 그 다음은 시스템 재구성 동안에 발생할 수 있다. 제 1 삽입 인터럽트는 소프트웨어에 의해 적당한 레지스터 비트를 설정함으로서 디스에이블될 수 있다.
삽입처리(440)동안, 1 차 PCI 버스(104)및 호스트 버스(102)는 동작상태로 유지한다. 이 삽입처리 동안, 2 차 PCI 버스(126)상의 장치에의 접근시도는 거부된다. 단계 441에 도시된 바와 같이, 2 차 버스 컨트롤러(120)는 1차버스 장치로의 재시도 명령에 의한 1차버스 상의 장치에의 접근 시도에 응답하여, 삽입 처리동안, 2 차 PCI 버스(126)상의 장치에의 접근을 시도한다. 삽입 스위치(143)가 자동화될 경우(즉, 근접 또는 다른 형태의 카드 감지 스위치가 사용된다면), 삽입 처리는 겨우 100 내지 200 ms 가 소요될 것으로 예상된다. 대부분의 응용 소프트웨어는 어려움없이 그러한 지연을 지원하고 있다.
프로세서(101)상에서 실행하는 소프트웨어는 타임아웃 상태가 발생할 때까지 접근의 재시도를 계속한다. 데이터 손실 또는 시스템 행업(hang up) 또는 손상을 방지하기 위해, 프로세서(101)상에서의 소프트웨어 동작을, 타임아웃기간을 확장시켜 장치의 삽입이 가능토록 변경할 수 있다. 삽입처리 동안에, 라인(109)상에서의 1 차 PCI 버스 클럭 PCICLKp 은 정지하지 않기 때문에, 삽입 처리내내, 2 차 버스 컨트롤러(120)는 동작상태로 유지된다.
일단 2 차 PCI 버스(126)가 분리되면, 단계 442 에서 삽입이 일어날 수 있다. 상술한 바와 같이, 바람직한 실시예에서는, 카드 또는 다른 장치를 4개의 커넥터 슬롯을 구비한 커넥터(150)에 삽입할 수도 있다. 이러한 응용예로서, 이동장치를 카드 등으로 하여 설명한다. 그러나, 장치는 소위 PCMCIA형 카드(즉, 특수한 플러그 또는 인터페이스를 갖는 크레디트 카드 크기의 장치), 소위 "스마트 카드" 등의 다른 유형일 수도 있다. 본 발명은 백플레인(backplane) 또는 마더보드에서의 카드 삽입으로 한정하려는 것은 아니다.
단계 443에서, 일단 장치가 커넥터(150)로 삽입된다면, 2 차 버스 컨트롤러(120)는 2 초 동안 PRSNTS[n]# 라인을 디바운드시킨후에 라인(123)상의 존재 신호 PRSNTS[3:0]# 를 샘플링하여 새로 로드된 장치의 존재를 해독하여, 카드가 적절하게 장착되었는지를 확인한다. 라인(123)상의 존재 신호 PRSNTS[3:0]# 는 라인(145)상의 신호 PRSNT1S[3:0]# 와 라인(146)상의 PRSNT2S[3:0]# 의 논리 조합일 수 있다. 이 응용예에서 사용한 명칭에서, 당해분야에 공지된 바와 같이, # 표시는 활성 로우 신호를 나타낸다.
PCI 버스 형 시스템 분야에서, 신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 는 널리 알려져 있다. 신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 는 함께 장치가 어떤 전력 요구의 형태를 갖는지를 나타낸다. 주어진 슬롯(즉, 슬롯 0-3)에 대한 두 신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 가 하이인 경우, 그 슬롯에는 삽입된 카드가 없다. 다른 신호의 조합(즉, 00, 10, 01)은 주어진 장치에 대한 상이한 전력 레벨 필요조건(즉, 5 와트)을 나타낸다. 신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 는 장치에 의해 수동적으로 생성될 수 있으므로(즉, 핀 또는 접점을 접지시킴)전력을 요구하지 않는다.
신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 는 AND 함수 로직(151)에 의해 AND 화되어 라인(123)상에서 존재 신호 PRSNTS[3:0]# 를 발생시킨다. 존재 신호 PRSNTS[3:0]# 가 주어진 슬롯에 대해 하이인 경우, 그 슬롯에는 카드가 존재하지 않는다. 존재 신호 PRSNTS[3:0]# 가 로우인 경우, 삽입이 요청되지 않았거나 그 슬롯에 카드가 존재하지 않는 것이다.
도 1의 AND 게이트 로직은 개략적으로 도시한 것이다. 실제 논리 하드웨어 구현은, 본 발명의 사상 및 범위로부터 일탈함이 없이, 변화할 수도 있다. 또한 신호 PRSNT1S[3:0]# 및 PRSNT2S[3:0]# 이외의 신호를 이용하여, 카드가 존재하는지를 모니터할 수도 있으며, 본 발명은 PCI 버스 실시예로 한정되지 않는다.
도 2 는 주어진 슬롯에 대한 라인(123)상의 존재 신호 PRSNTS[3:0]# 및 동일한 주어진 슬롯에 대한 라인(122)상의 삽입/배출 요구신호 IREQ[3:0]# /EREQ[3:0] 의 동작을 나타낸 것이다.
삽입 요구 스위치(143)를 닫아, 삽입 요청을 시작하면, 도 2에 도시된 바와 같이, 신호 IREQ[3:0]#/EREQ[3:0] 는 로우가 된다. 일정 시간후에(예를 들면, 2 초), 카드가 장착 및 디바운스되는 경우, 그 슬롯에 대한 신호 PRSNTS# 가 도 2 에 도시된 바와 같이 로우가 된다.
단계 444에서, 일단 카드 삽입이 검출되면, 2 차 버스 컨트롤러(120)는 단계 444 에서 새롭게 삽입된 카드에 대해 SLOT_EN[n] 을 어서트한다. 신호 SLOT_EN[n] 는 SCR 또는 다른 스위치 장치(180)를 스위치하여 새롭게 삽입된 카드에 시스템 전압(Vdd)를 공급할 수 있다. 추가적으로, GPIO 버스(133)가 새롭게 삽입된 카드를 잠글수 있다.
단계 445 에서, 새로 로드된 슬롯으로의 PCICLK[n] 가 로우로 유지된다. 단계 446 에서, 또한, 현재 전력이 공급되고 있는 새로 로드된 장치에의 PCIRSTs[n]# 도 로우로 유지된다. 단계 445 및 446 은 SCR 또는 다른 스위치 장치에 의해 인가된 후에 2 차 버스 컨트롤러(120)에서 하드웨어에 의해 실행된다. 새로 삽입한 장치에 전력을 공급하고 적당하게 리셋시키는 것을 보장하기 위해서는, 하드웨어적인 해결책을 사용하는 것이 소프트웨어적인 해결책 보다 더욱 바람직하다.
단계 447 에서, 2 차 버스에 대한 PCI 클럭 PCICLKs 및 PCKCLKs[n] 가 다시 시작된다. 2 차 PCI 버스(126)는 휴지시간 1.2 ms만큼 된다.
삽입이 일어나면, 재구성이 발생한다. 이 재구성은, 2 차 버스 컨트롤러(120)가 도 4b 의 단계 451 에 도시된 바와 같이 통지 인터럽트 INT#(108)에 의해 운영체제 또는 프로세서(101)의 BIOS 에서 동작하는 인터럽트 핸들러를 활성화키면, 시작한다. 그후, 단계 452에서, 인터럽트 핸들러는 인터럽트의 자원을 해독한다. 2 차 버스 컨트롤러(120)내의 비트 CHG_STS 가 세트되면, 인터럽트 핸들러는 변화 상태 인터럽트가 발생하였다는 것을 검출할 수 있다. 삽입 인터럽트가 발생할 경우, 단계 452에 도시된 바와 같이, 인터럽트 핸들러는 2 차 버스 컨트롤러(120)내의 비트 INSERT_REQ_STS[n] 를 판독하여 새로 로드된 슬롯을 판정한다.
그후, 삽입 인터럽트는 범용 인터페이스 GP I/O 버스(133)를 사용하는 전자 기계적 잠금장치에 의해 새로 로드된 슬롯을 잠글수 있다. 일반적으로, 이러한 잠금 단계는 선택적인 것으로, 불필요하면 없앨 수도 있다. 바람직한 실시예에서, 디바이스 카드 등의 의사 배출을 방지하기 위해, 카드 잠금장치를 제공할 수도 있다. 이 카드 잠금 하드웨어는 본 발명의 요지는 아니다.
단계 453 에서, OS/BIOS 는 CHG_STS 비트를 재설정하며 2 차 버스 컨트롤러(120)는 통지 인터럽트 INT#(108)를 de-assert한다.
단계 454 에서, 2차 PCI 버스 컨트롤러(120)에 로드된 슬롯에 대한 SLOT_CLK_ENs[3:0] 비트를 설정함으로서, 이전에 슬롯 뿐만 아니라 새로 로드된 슬롯(들)에 대한 PCI클럭 신호 PCICLKs[n]가 시작된다. 인터럽트 핸들러는 이전에 주 기억장치에 이전에 기억된 값과 PRESENT[3:0] 비트를 비교하여, 슬롯이 새로 로드되었는지를 식별한다. 바람직한 실시예에서, 소프트웨어 인에이블 단계로서 나타내었지만, 새로 로드된 슬롯(들)에 대한 2 차 PCI 클럭의 재시작은 하드웨어 또는 펌웨어에 의해 실행할 수 있다. 단계 455 에서, OS/BIOS 는 2 차 PCI 버스 컨트롤러(120)에서 새로 로드된 슬롯(들)에 해당하는 SLOT_RST_ENs [n] 를 소거함으로서 새로 로드된 슬롯(들)에 대한 PCI 리셋 신호 PCIRSTs[n]# 을 de-assert한다. 2 차 PCI 버스 컨트롤러(120)는 2 차 PCI 버스(126)가 휴지상태가 될 때까지 PCIRSTs[n] 의 de-assert을 지연시킬 수 있다. 그후, OS/BIOS 는 새로 삽입된 장치를 통합하기 위하여, 시스템을 재구성한다.
일단 2 차 PCI 버스(126)가 재활성되면, 2 차 아비트레이션이 인에이블 된다. 2 차 PCI 버스 컨트롤러(120)는 2 차 PCI 버스 상의 어떠한 내부 충돌도 초기에 제거할 수 있다. 그후, 프로세서(101)상의 운영체제 소프트웨어는 그 새로운 하드웨어 구성에 대해 시스템을 재구성한다. 하드웨어 및 소프트웨어 자원의 아비트레이션을 할당하여 충돌을 제거한다. 이러한 운영체제 소프트웨어에 대한 충돌의 해결책은 본 발명에 참조한, 1994 년 5 월 5 일의 "Plug and Play ISA Specification, 버전 1.0a" 라는 표제의 플러그 앤드 플레이(P & P) 사양에 기재되어 있다. 플러그 앤드 플레이 사양은, 예를 들면, 본 출원인에게 양도되었으며 본 발명에서 참조한, 1995 년 1 월 11 일에 출원된 발명의 명칭이 "BACKWARD COMPATINILITY FOR PLUG AND PLAY SYSTEMS" 인 미국 특허 출원 제 08/371,304 호에 개시되어 있다.
자원의 아비트레이션은 자원에 대한 충돌이 검출되었는지에 따라서, 컴퓨터 시스템의 완전한 재구성을 요구하거나 요하지 않을 수 있다. 만약, 새로 삽입된 장치가 기존 장치와 충돌하면, 자원 충돌을 제거하기 위해서는, 2개 이상의 장치를 재구성해야 한다. 일단 시스템이 재구성되면, 삽입 처리가 완료된다.
배출 시퀀스
핫 삽입 시퀀스는 다음의 5 단계, 즉, 검출, 자원 폐쇄, 분리, 배출 및 재구성으로 정의할 수 있다. 이 핫 배출 시퀀스의 5 단계는 도 5, 6a, 6b, 6c 에 도시된다. 도 5 는 검출 및 자원 폐쇄단계를 나타내며, 도 6a, 6b, 6c 는 분리, 배출 및 재구성 단계를 나타낸 것이다.
도 5 에서, 핫 배출 시퀀스는 시작 단계(500)로 시작하는 것으로 도시되어 있다. 단계 511에서, 신호 EJECT[3:0] 가 어서트되는 경우, 검출이 발생하여, 배출 요청 스위치(141)가 개방된다. 이 배출 요청 스위치(141)는 사용자에 의해 구동할 수 있는 폐쇄형 순시 스위치(예를 들면, 로드된 스프링)를 포함할 수 있다. 다른 방법으로는, EJECT[3:0] 에 의해 표시되는 전기 신호등은 배출 요청 스위치(141)를 개방힐 수도 있다. 단계 512 에서, 신호 IREQ[n]#/ EREQ[n] 가 라인(122)상에서 하이가 된다. 단계 513 에서, 신호 EJECT[3:0] 가 디어서트되며(즉, 배출 요구 스위치(141)가 해제되며), 단계 514 에서, 신호 IREQ[n]#/EREQ[n]는 로우가 된다. 이상 설명한 바와 같이, 2 차 버스 컨트롤러(120)는 라인(122)상에서 이러한 에지 변화를 검출하고, 신호 PRSNTS[3:0]# 와 함께, 배출 요청이 발생하였는지를 검출한다.
다른 방법으로는, 도 5 에서 도시된 바와 같이, 사용자가 단계 517 에서 소프트웨어에 의해 "정지/배출" 아이콘을 클릭할 수 있다. 그후, 2 차 버스 컨트롤러(120)는 2 차 버스 컨트롤러(120)내의 EJECT[n] 비트를 세트시킴으로써, 자원이 폐쇄되었음을 나타낸다. 그후, 자원 폐쇄 단계를 건너뛰고 도 6a 의 단계 A 로 진행한다.
배출 인터럽트가 검출되면, 프로세서(101)에서 인터럽트 핸들러는 배출될 자원을 폐쇄시킨다. 장치를 배출하기 전에, 배출될 장치에 접근하는 응용 소프트웨어를 폐쇄하여야 하며, 그러지 않을 경우에는, 소프트웨어 크래시 또는 행업이 일어날 수 있다. 배출될 자원을 이용하고 있는 클라이언트 애플리케이션은 프로세서(101)에 의해 통지되므로, 폐쇄될 자원과의 트랜잭션을 종료시킬 수 있다. 예를 들면, 클라이언트가 커넥터(105)에 부착된 이동 하드 드라이브로부터 데이터 파일에 접근하고 있는 경우, 클라이언트는 데이터 파일을 폐쇄할 것인지를 문의한다. 어느 자원이 폐쇄되어야 하는지는 EJECT_REQ_STS[3:0] 비트를 검사하여, 검출할 수 있다.
검출이 이루어지면, 자원이 폐쇄한다. 단계 521에서, 2 차 PCI 컨트롤러(120)는 배출 인터럽트가 발생하였음을 나타내는 수신 IREQ[n]#/EREQ[n] 의 상승 에지에 대응하여 EJECT_REQ_STS[n] 비트를 설정한다. 단계 522 에서, 2 차 버스 컨트롤러(120)는 통지 인터럽트 INT#(108)를 어서트하여, 프로세서(101)에 인터럽트 신호를 보낸다. 단계 523 에서, OS/BIOS 는 인터럽트 핸들러를 활성화시키고, 단계 524 에서 인터럽트의 자원을 해독한다.
프로세서(101)는 배출 인터럽트가 EJECT_REQ_STS[N] 의 상태로부터 배출 인터럽트가 요청되었는지를 판정한다. 이 배출 인터럽트에 응답하여, 단계 526에서 OS/BIOS 는 EJECT_REQ_STS[n] 를 소거한다. 그에 따라, 단계 527에서 2 차 버스 컨트롤러(120)는 통지 인터럽트 INT#(108)를 디어서트한다. 단계 528 에서, OS/BIOS 는 2 차 PCI 버스(126)상의 배출될 자원을 폐쇄한다. 일단 배출될 자원을 폐쇄하면, OS/BIOS 는 EJECT[n] 를 세트시킨다. EJECT[n] 를 세트시킴으로써, 2 차 버스 컨트롤러(120)는, 도 6a 에 나타낸 분리 처리를 시작할 수 있다.
배출될 자원이 폐쇄되면, 단계 525에 도시된 바와 같이, CLS_RES_REQ[3:0] 비트를 제거할 수 있다. 일단 배출될 자원을 폐쇄하면, 프로세서(101)상에서 실행되고 있는 운영체제 소프트웨어는, 클라이언트가 이후 배출될 자원을 재 개방하는 것을 방지하도록, 변경한다. 이러한 규정(provision)이 없으면, 클라이언트 소프트웨어가 자원 폐쇄와 장치 배출 사이의 윈도우동안에 자원을 재개방할 수 있다. 일단 자원이 폐쇄되면, 단계 526에 도시된 바와 같이, 배출 인터럽트가 완료된다.
자원 폐쇄가 완료되면, 도 6a의단계 620 으로 나타난 바와 같이, 분리가 발생한다. 단계 600∼609 는 핫 제거처리에 대한 분리단계를 나타낸 것이다. 배출시의 분리단계는 삽입시의 분리 단계와 유사하다. 분리 단계 동안, 단계 600에서 2 차 버스 컨트롤러(120)는 PCI 버스 마스터링을 디어서트하고, 버스 마스터 제어되는 2차 PCI 버스(126) 상의 어느 장치가 그 싸이클을 완료하기를 대기한다.
그후, 단계 601에서, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)상의 아비트레이션을 디스에이블시켜, 2 차 PCI 버스(126)상의 어떠한 장치도 버스 마스트 제어를 승인받는 것을 방지한다. 그후, 단계 602에서, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)가 휴지상태가 되는 것을 대기한다.
단계 603에서, 2 차 버스 컨트롤러(120)는 라인 127 상의 비이동 PCI 장치(130)로의 PCI 클럭 PCICLKs 을 로우로 유지한다. 또한, 단계 604에서, 커넥터(150)상에서의 모든 로드된 슬롯으로의 라인 124 상의 PCI 클럭 PCICLIs[3:1]도 로우로 유지한다. 특정 슬롯이 로드 또는 로드되지 않았는지의 여부는 라인 123 상의 존재 신호 PRSNTS[3:0], EJECT_REQ[3:0], INSERT_REQ[3:0] 를 샘플링하여 판정할 수 있다.
단계 605에서, 로드된 슬롯 및 영구 장치로의 라인 125 상의 PCI 리셋 신호 PCTRSTs[3:0]# 는 하이로 유지한다. 그후, 단계 606에서, 2 차 버스 컨트롤러(120)는 2 차 PCI 버스(126)상의 어드레스 라인과 데이터 라인을 3가지 상태로 할 수 있다. 단계 607 및 608에서, 로드되지 않은 슬롯으로의 라인 124 상의 PCI 클럭 PCICLKs [3:0] 은 로드되지 않은 슬롯으로의 라인 125 상의 PCI 리셋 신호 PCIRSTs[3:1]# 를 따라 3가지 상태가 된다. 이런 방식으로, 2 차 PCI 버스(126)상에 남아 있는 장치를, 배출 처리동안 발생하는 어떠한 의사 신호도 무시할 수 있도록, 일시적으로 정적인 상태stasis condition)에 있게 할 수 있다.
배출 처리동안, 호스트 버스(102)및 1 차 PCI 버스(104)는 실행상태를 유지한다. 2 차 PCI 버스(126)상의 장치에 접근 시도하는 1 차 PCI 버스 장치는 2 차 PCI 컨트롤러(120)에 의한 재시도 종료에 응답한다. 배출은 2차 마스터의 타겟으로 접근하기 위해, 100 내지 200 ms 의 대기시간을 도입함으로써, 트랜잭션을 시작한다. 이 대기시간동안 타임아웃 또는 시스템 행업을 방지하기 위하여, 호스트 프로세서(101)상에서 동작하는 소프트웨어 동작을 변경할 수도 있다.
그후, 단계 609에서, 2 차 PCI 컨트롤러(120)는 특정 카드가 배출 준비중임을 GP I/O 버스(133)를 통해 사용자에게 통지하고, 분리 처리(610)를 완료한다. 예를 들면, 각 슬롯에 인접하게 적색 및 녹색 LED 를 제공하여, 카드를 배출하는 것이 허용가능한(예를 들면, 모든 자원 애플리케이션이 폐쇄되었는지, 2 차 버스가 정적 상태인지)를 나타낼 수 있다. 녹색 LED 가 발광되면, 기술자 또는 사용자는 해당 카드를 제거할 수 있다.
다른 방법으로는, 호스트 프로세서(101)에 의해 생성되는 소프트웨어 표시(예를 들면, 아이콘, 텍스트 메시지, 오디오 톤, 또는 음성 알림)에 의해, 특정 카드가 배출 준비중임을 나타낼 수 있다.
분리 처리(610)가 완료되면, 배출 처리(620)를 시작할 수 있다. 단계 621 에서, 카드 제거가 일어난다. 카드 잠금이 이용하는 경우, GP I/O 버스(133)는 적당한 시간에 카드 록에 신호를 보내서 배출될 카드를 해제시키거나, 시간에 배출될 카드를 해제시키거나, 스프링 기구 등으로 배출할 카드를 물리적으로 배출할 수 있다.
상술한 바와 같이, 배출 스위치(141)가 활성되면, 단계 622에 나타난 바와 같이, 신호 PRSNTS[n]# 및 EREQ amy 는 하이가 된다. 그후, 2 차 버스 컨트롤러(120)는 2 초 동안 PRSNTS[n]# 를 디바운드시키는 동안, 장치는 배출된다. 단계 624에서, 배출 스위치(141)가 디어서트되는 경우, 2 차 버스 컨트롤러(120)는 20 mS 동안 디바운스한다.
단계 626에서, PRSNTS[n] 및 IREQ[n]#/EREQ[n] 가 하이로 샘플링되는 경우, 단계 627 에 나타낸 바와 같이, 물리적인 배출이 완료된 것으로 판정한다. 장치가 물리적으로 배출되면, 단계 628에서, 2 차 버스 컨트롤러(120)는 PRESENT[n] 비트를 제거하고, 단계 629 에서 이전에 로드된 슬롯 및 고정 장치로의 PCICLKs [n] PCICLK[n] 비트를 시작한다.
단계 630 에서, 2 차 버스(126)가 시작된다. 단계 631에서, 2 차 버스 컨트롤러(120)는 상태 변화를 나타내는 CHG_STS 비트를 세트하고, 단계 632 에서 통지 인터럽트 INT#(108)를 어서트한다. 시스템은 이제 재구성을 준비한다.
배출이 완료되면, 재구성이 일어날 수 있다. 단계 631 에서, 통지 인터럽트 INT#(108)가 프로세서(101)에 의해 수신된다. 단계 631 에서, 운영체제 BIOS는 인터럽트의 자원을 해독한다. 프로세서(101)는 CHG_STS 비트를 샘플링함으로서, 재구성이 요청되었는지를 판정한다.
단계 632 에서, 인터럽트 핸들러는 PRESENT[3:0] 비트를 판독함으로서 새로 비로드된 슬롯을 샘플링하여 슬롯이 로드되지 않았는지를 판정하고, 실제로 슬롯이 로드되지 않았는지를 확인한다. 슬롯이 로드되지 않았으면, 단계 633에서 인터럽트 핸들러는 CHG_STS 비트를 소거한다. 단계 634 에서, 2 차 버스 컨트롤러는 통지 인터럽트 INT# 를 디어서트하고, 단계 635 에서 OS/BIOS 는 EJECT[n] 비트를 소거하여, 배출 처리의 말기에 신호를 보낸다.
마지막으로, 단계 636에서, 프로세서(101)에서의 운영체제 BIOS 는 시스템으로부터 제거된 장치에 대한 자원 할당을 제거함으로서 시스템을 재구성한다.
일반적으로, 이러한 제거는, 자원의 제거가 일반적으로 장치의 충돌을 일으키지 않기 때문에, 전체적인 시스템의 재구성을 요하지는 않는다. 단계 640 는 핫 배출 처리의 완료을 나타낸다.
도 7 은 도 3, 4a, 4b, 5 및 6a-6c 의 소프트웨어에 대한 상태도를 나타낸 것이다. 삽입은 공백 상태 0 으로부터 로드된 (존재하는)상태 5 까지의 변화로 표현할 수 있다. 상태 0 은 리셋이 디어서트되는 경우에 들어가는 빈 슬롯 상태를 나타내며, PRESENT[3:0] 는 빈 슬롯을 나타낸다. 삽입이 이루어지면, 상태 1에서 2 차 버스 컨트롤러(120)는 2 차 PCI 버스 마스터링을 비활성화시킨다. 2 차 PCI 버스가 비활성되고 삽입 요청이 없는 경우, 하드웨어 초기화 삽입은 상태 2 로의 변화로 표현된다.
하드웨어 초기화 삽입이 상태 1 로부터 상태 3 으로의 변화로 나타낸 바와 같이 일어날 수 있다. 상태 3 에서, 상술한 바와 같이, 삽입 타임아웃을 발생시켜, 카드가 삽입되지 않거나 부적절하게 삽입될 경우의 시스템 행업을 방지하는 동안, 카드 삽입에 대한 시간을 허용한다. 상태 4 는 삽입 인터럽트를 나타낸다. 새로 삽입된 카드의 존재가 PRESENT[3:0] 비트의 상태에 의해 검출되면, 호스트 프로세서(101)에 어서트되며 시스템이 재구성된다. 인터럽트가 완료되면, 로드된 슬롯 상태(존재) 5 로 변화된다.
배출은 부하된 슬롯 상태 5 로부터 빈 슬롯 상태 0 까지의 변화로 표현할 수 있다. 상태 6 은 INSERT_EJECT_EN 및 INSERT_REQ_STS 의 어서트에 의해 천이되는 배출 요청을 나타낸다. 상태 7 은 시스템 자원을 폐쇄시키기에 충분한 시간을 허용하는 배출 대기 타이머를 나타낸다. 장치가 배출되면, EJECT[3:0] 의 어서트 및 INSERT_REQ_STS 의 디어서트에 의해 표시되는 바에 따라, 상태 1에서 2 차 PCI 버스(126)에 대한 버스 마스터링이 다시 디에이블 된다.
상태 8 에서, 2 차 PCI 버스(126)가 분리되며, 상태 9 에서, 배출이 발생되어 호스트 프로세서(101)가 시스템을 재구성하도록 한다. 도 7 의 상태도는 운영체제 소프트웨어의 전체 상태를 나타내기 위하여, 간단히 하였음을 당업자는 쉽게 할 수 있다.
응용
본 발명의 장치는 다수의 응용예에 적용되기에 충분히 유연성을 갖고 있어, 대량 생산을 통해 본 발명의 비용을 절감할 수 있다. 상술한 바와 같이, 본 발명은 다수의 이동 장치용 슬롯을 제공할 수 있도록, 네트워크 서버에 응용할 수도 있다. 또한, 본 발명의 장치는 변경없이, 도킹 스테이션 등에 대한 인터페이스로서 제공할 수도 있다.
도 8 은 랩탑 컴퓨터(820)와 도킹시키기 위해, 2 차 버스 컨트롤러(120)를 랩탑 도킹 스테이션(810)에 적용하는 방법을 나타낸 블럭도이다. 도킹 스테이션(810)내의 1개의 2 차 버스 컨트롤러(120)는 2 차 PCI 버스 접속부(109, 110, 111)을 통해 1 차 시스템 컨트롤러(130)와 인터페이스할 수 있다. 이러한 구성의 한 가지 이점은 랩탑 컴퓨터(820)가 임의의 PCI 형 장치와 인터페이스하는데 사용할 수 있는 표준 2 차 PCI 버스 출력 포트를 제공할 수 있다는 점이다.
도 9 는 도킹 스테이션(910)과 사용하기 위해 어떻게 2차버스 컨트롤러(120)가 랩탑 컴퓨터(920)에 적용되는지를 나타낸 것이다. 2 차 버스 컨트롤러(120)는 라인(122, 137, 124, 125 및 126)을 통해 도킹 스테이션(910)내의 커넥터 또는 고정 장치에 인터페이스할 수 있다. 이러한 구성은 랩탑 컴퓨터(920)를 인터럽트하지 않으면서 도킹 스테이션(910)으로부터의 장치의 삽입 및 제거를 가능케한다. 또한, 랩탑 컴퓨터(920)를 인터럽트 처리없이 도킹/비도킹할 수도 있다. 이들 도면에서 사용된 용어"랩탑" 은 여러가지 이동형을 포함한 어떠한 연산장치에 적용할 수 있다.
도 10 은 랩탑(1020) 및 도킹 스테이션(1010)에 2개의 2 차 버스 컨트롤러(120)를 적용하는 방법을 나타낸 것이다. 2 차 버스 컨트롤러(120)는 자체가 PCI 장치이기 때문에, 2차버스상에 PCI 장치로서 존재할 수 있다. 즉, 도킹 인터페이스를 제공하기 위해, 랩탑 컴퓨터(1020) 및 도킹 스테이션(1010)에, 2개의 2 차 버스 컨트롤러(120)를 각각 제공한다. 도 10 의 구성은 도 8 및 도 9 의 이점을 제공한다.
도 11 은 이동 장치에 이용할 수 있는 슬롯의 수를 확장시키기 위해, 2 차 버스 컨트롤러(120)를 직렬로 접속하는 방법을 나타낸 것이다. 부가적인 2 차 버스 컨트롤러(120')를 고정 또는 이동 장치로서 2 차 버스 컨트롤러(120)에 접속하여, 부가적인 커넥터(150')를 구동하는데 사용될 수 있다. 이러한 다수의 2 차 버스 컨트롤러를 이동 PCI 장치용 슬롯의 수를 확장하기 위해 제공할 수 있다.
도 12 는 부가적인 이동 또는 고정 장치 지원하기 위해, 2 차 버스 컨트롤러(120)가 병렬로 응용하는 방법을 나타낸 것이다. 이러한 병렬 구현의 이점은 삽입 또는 배출동안에 2차버스 컨트롤러에 의해서만 지원하는 1개의 장치만을 셧다운할 수 있다는 점이다.
도 13 은 일군의 장치(확장 장치(1310))를 컴퓨터(1310)에 인터페이스하기 위해, 2 차 버스 컨트롤러(120)가 적용하는 방법을 나타낸 것이다. 도 13 의 장치를, 예를 들면, 네트워크 컴퓨터 또는 PC 에서 확장슬롯을 대신하여, 응용할 수 있다. 복수개의 확장장치 또는 2차 PCI 확장 버스에 플러그시키기 위해, PC 에 다중 확장 슬롯을 제공하는 것 보다, 1개의 PCI 슬롯을 제공할 수 있다. 또한, 다중 장치의 구성을 인스톨하지 않고 1개의 슬롯확장/업그레이드(예를 들면, 멀티미디어 성능까지)를 제공하기 위해, 장치의 패키지(예를 들면, 사운드 카드(1340), CD-ROM 드라이브(1330), 비디오 카드(1350)등을 구비하는 멀티미디어 키트)를 컴퓨터(1320)(예를 들면, 휴대용 컴퓨터)에 플러그시킬 수 있다.
도 8-13 의 실시예에서 도시된 바와 같이, 본 발명의 장치는 매우 유연성이 있으며, 여기에 개시되지 않은 것을 포함하여 많은 응용예들이 있을 수 있다. 본 발명의 최초 실시예에서는, 주로 도킹 스테이션 지원용으로 장치를 사용하기 위해, 1개의 확장 슬롯 지원을 제공한다.
본 발명의 변형예을, 본 발명의 사상 및 범위로부터 벗어나지 않으면서 만들어질 수 있다. 예를 들면, 신호 INSERT_REQ[3:0] 및 EJECT_REQ[3:0] 은 결합되어 레벨이라기 보다는 에지를 사용함으로서 삽입 및 배출 이벤트를 통지하여 그러한 이벤트에 신호를 보낸다. 또한, 신호 PRSNTS[3:0] 는 수동 스위치를 초기화하는 사용자에게 삽입 또는 배출 처리의 시작 및 끝을 알려주도록 자격을 부여할 수 있다.
또한, 삽입/배출 과정(즉, "대체" 과정)은, 사용자가 한 개의 처리 단계로 특정 장치를 대체하도록, 상술한 각 단계들을 이용하여 달성할 수 있다. 그러한 대체 과정 동안, 새로운 장치가 삽입될 때까지 재구성을 지연할 수도 있다. 삽입된 장치가 제거된 장치와 동일하거나 유사할 경우(예를 들면, 결합있는 카드등으로 대체됨), 변형 및 아비트레이션이 필요하지 않을 것이다.
본 발명의 바람직한 실시예 및 다양한 변형예가 상세하게 기재되고 기술되었지만, 당업자는 본 발명의 사상 및 범위로부터 벗어나지 않으면서 형태 및 상세 사항에 대해 다양하게 변화시킬 수 있다.
이상, 본 발명의 바람직한 실시예 및 다양한 변형예를 자세히 도시 및 설명하였지만, 당업자는 본 발명의 사상 및 범위로부터 일탈함이 없이 형태 및 상세사항에 대해 다양하게 변형할 수 있다.

Claims (8)

  1. 운영 컴퓨터 시스템 상의 처리를 중단함이 없이, 운영 컴퓨터 시스템에 장치를 삽입 또는 제거하는 방법으로서,
    상기 운영 컴퓨터 시스템은 하나이상의 호스트 프로세서; 상기 호스트 프로세서에 접속되어 상기 하나 이상의 호스트 프로세서로/으로부터 데이터 및 어드레스 정보를 전송하는 호스트 버스; 상기 호스트 버스에 접속되어 상기 하나이상의 호스트 프로세서를 하나이상의 장치로 인터페이스하는 시스템 컨트롤러; 상기 시스템 컨트롤러에 접속되어 상기 시스템 컨트롤러를 상기 하나이상의 장치에 접속하는 1차버스; 상기 1차버스에 접속되어 상기 1차버스상의 장치로서 동작하며 하나이상의 착탈장치를 하나이상의 호스트 프로세서로 인터페이스하는 2차버스 컨트롤러; 및 컴퓨터 시스템에 삽탈할 장치를 수용하는 2차버스를 포함하되,
    상기 2차버스 컨트롤러에서, 삽입 또는 제거할 장치를 지시하는 제1신호를 수신하는 단계;
    상기 제1신호의 수신에 응답하여, 상기 제2버스상에 접속되어 있는 장치들상의 처리를 중단하도록, 상기 2차버스상의 버스 클릭을 중지하는 단계;
    상기 2차 버스로부터 장치를 삽입 또는 제거하는 단계;
    장치의 삽입 또는 제거가 완료되었음을 나타내는 제2신호를 수신하는 단계;
    상기 제2신호에 응답하여, 상기 2차버스에 대한 버스클럭을 재시작하는 단계; 및
    상기 2차버스상에 존재하는 장치들에 대해 컴퓨터 시스템을 재구성하는 단계를 포함하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  2. 제 1 항에 있어서, 2 차 컨트롤러에서, 장치가 착탈되는지를 판단하여, 상기 2차 컨트롤러내에 장치가 착탈되는지의 여부를 나타내는 비트를 설정하는 단계;
    상기 제1신호에 응답하여, 호스트 프로세서에서, 인터럽트 루틴을 신호하는 단계를 포함하되,
    상기 인터럽트 루틴은,
    상기 제1신호와 비트로부터, 장치가 착탈되는지의 여부를 판정하는 단계;
    장치가 삽입되어 있으면, 상기 제2신호에 응답하여, 그 장치가 2차버스에 삽입되었는지의 여부를 판정하는 단계;
    상기 2차 버스 컨트롤러에서, 상기 2차 버스 컨트롤러 클럭이 새로 삽입한 장치에 대해 시작되었음을 나타내는 비트를 설정하는 단계; 및
    삽입된 상기 장치로 리셋 신호가 디어서트됨을 나타내는 비트를, 상기 2차 버스 컨트롤러에 설정하는 단계를 포함하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  3. 제 2 항에 있어서,
    상기 인터럽트 루틴은 2차버스에 장치를 물리적으로 잠그기 위하여 신호를 발생하여 장치 잠금장치를 동작시키는 단계를 더 포함하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  4. 제 3 항에 있어서,
    상기 2 차 버스 컨트롤러는 장치의 삽입 또는 제거 동안에 컴퓨터 시스템으로부터의 접속요청에 응답하여 재시도 신호를 발생하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  5. 제 1 항에 있어서,
    상기 2차버스에 대한 버스클럭을 재시작하는 단계는,
    2차버스상의 새로 삽입한 장치로 리셋 신호를 어서트하는 단계;
    상기 리셋 신호의 어서트와 거의 동시에, 새로 삽입한 장치에 대한 버스 클럭을 재시작하는 단계;
    상기 리셋 신호를 2차 버스상의 새로 삽입한 장치로 디어서트하는 단계; 및
    2차버스상의 새로 삽입한 장치 이외의 장치에 대해 버스클럭을 재시작하는 단계를 포함하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  6. 제1항에 있어서,
    제1신호에 응답하여, 호스트 프로세서에서 인터럽트 루틴을 신호하는 단계를 더 포함하고,
    상기 인터럽트 루틴은,
    상기 제1신호로부터, 장치가 삽입 또는 제거되었는지의 여부를 판정하는 단계; 및
    만약 장치가 탈착되었으면, 그 탈착된 장치에 접속하는 시스템 자원을 폐쇄하는 단계를 포함하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  7. 제6항에 있어서,
    제2신호에 응답하여, 호스트 프로세서에서 인터럽트 루틴을 신호하는 단계를 더 포함하며,
    상기 인터럽트 루틴은,
    장치가 상기 2차버스로부터 탈착되었는지의 여부를 판정하는 단계; 및
    상기 2차버스로부터 어느 2차버스상의 장치가 탈착되었는지를 판정하는 단계를 포함하고,
    상기 2차버스상의 장치에 대하여 컴퓨터 시스템을 재구성하는 상기 단계는 상기 2차버스로부터 제거된 장치에 대한 구성정보를 제거하는 단계를 포함하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
  8. 제7항에 있어서,
    상기 2차버스 컨트롤러는 장치의 삽입 또는 제거 동안에 컴퓨터 시스템으로부터의 접속요청에 응답하여 재시도 신호를 발생하는 것을 특징으로 하는 운영 컴퓨터 시스템에 장치를 착탈하는 방법.
KR1019970044691A 1996-12-19 1997-08-30 운영컴퓨터시스템에장치를삽입또는제거하는방법 KR100305098B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/769,998 1996-12-19
US08/769,998 US6141711A (en) 1996-12-19 1996-12-19 Method and apparatus to enable insertion/ejection of a device in a computer system while maintaining operation of the computer system and application software
US08/769,998 1996-12-19

Publications (2)

Publication Number Publication Date
KR19980063444A KR19980063444A (ko) 1998-10-07
KR100305098B1 true KR100305098B1 (ko) 2001-11-22

Family

ID=25087155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970044691A KR100305098B1 (ko) 1996-12-19 1997-08-30 운영컴퓨터시스템에장치를삽입또는제거하는방법

Country Status (3)

Country Link
US (1) US6141711A (ko)
KR (1) KR100305098B1 (ko)
DE (1) DE19737214B4 (ko)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134615A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. System for facilitating the replacement or insertion of devices in a computer system through the use of a graphical user interface
US6125417A (en) * 1997-11-14 2000-09-26 International Business Machines Corporation Hot plug of adapters using optical switches
JP2938049B1 (ja) * 1998-07-02 1999-08-23 新潟日本電気株式会社 コンピュータ本体への拡張入出力装置の活線挿抜制御装置
EP1114377B1 (fr) * 1998-09-15 2004-11-10 Acqiris Systeme modulaire d'acquisition de donnees
US6295566B1 (en) * 1998-10-31 2001-09-25 Campaq Computer Corporation PCI add-in-card capability using PCI-to-PCI bridge power management
US6401157B1 (en) * 1999-04-30 2002-06-04 Compaq Information Technologies Group, L.P. Hot-pluggable component detection logic
US6487623B1 (en) * 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
DE19938429B4 (de) * 1999-08-13 2007-03-15 Force Computers Gmbh Computer
JP3908445B2 (ja) * 2000-08-01 2007-04-25 富士通株式会社 電子機器
JP2002055938A (ja) * 2000-08-10 2002-02-20 Pioneer Electronic Corp 情報処理装置、情報処理方法及び情報処理用プログラムがコンピュータで読取可能に記録された情報記録媒体
US6654843B1 (en) * 2000-10-12 2003-11-25 Hewlett-Packard Development Company, L.P. Hot swapping
US7111100B2 (en) * 2002-04-26 2006-09-19 The Boeing Company Systems and methods for assigning an address to a network device added to an existing network
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
EP1401546A4 (en) 2001-06-15 2006-11-02 Walker Digital Llc METHOD AND APPARATUS FOR PLANNING AND CUSTOMIZING A GAMING EXPERIENCE
US20030023410A1 (en) * 2001-07-20 2003-01-30 Roth Eric Scott Method and apparatus for flushing of a device cache and suspending/shutting-down the device
US7685348B2 (en) * 2001-08-07 2010-03-23 Hewlett-Packard Development Company, L.P. Dedicated server management card with hot swap functionality
FR2830164B1 (fr) * 2001-09-26 2005-08-05 Bull Sa Insertion a chaud d'une carte electronique dans un systeme
US7103788B1 (en) * 2001-10-31 2006-09-05 Microsoft Corporation Selective suspension of bus devices
US7069477B2 (en) * 2002-10-30 2006-06-27 International Business Machines Corporation Methods and arrangements to enhance a bus
US7085871B2 (en) * 2003-07-09 2006-08-01 Dell Products L.P. Information handling system wherein display movement from an open position to a closed position triggers an undocking request
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US7225448B2 (en) * 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US7120789B2 (en) * 2003-08-14 2006-10-10 International Business Machines Corporation System and method for portable on-demand central processing unit
US7225440B2 (en) * 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US8484671B1 (en) 2003-10-07 2013-07-09 The Directv Group, Inc. Receiver interface with multiple access cards
US8512144B2 (en) 2003-10-20 2013-08-20 Tipping Point Group, Llc Method and apparatus for providing secondary gaming machine functionality
US7234014B2 (en) * 2004-01-14 2007-06-19 International Business Machines Corporation Seamless user interactions for portable storage devices
US20070033314A1 (en) * 2005-08-04 2007-02-08 Arad Rostampour Event generation for device hotplug
US7533208B2 (en) * 2005-09-26 2009-05-12 Silicon Graphics, Inc. Hot plug control apparatus and method
US8992304B2 (en) 2006-04-13 2015-03-31 Igt Methods and systems for tracking an event of an externally controlled interface
US9028329B2 (en) 2006-04-13 2015-05-12 Igt Integrating remotely-hosted and locally rendered content on a gaming device
US10026255B2 (en) 2006-04-13 2018-07-17 Igt Presentation of remotely-hosted and locally rendered content for gaming systems
US8784196B2 (en) 2006-04-13 2014-07-22 Igt Remote content management and resource sharing on a gaming machine and method of implementing same
US7996579B2 (en) * 2006-05-14 2011-08-09 Sandisk Il Ltd. Apparatus, methods, and computer-code for handling an impending decoupling between a peripheral device and a host device
US20090156303A1 (en) 2006-11-10 2009-06-18 Igt Bonusing Architectures in a Gaming Environment
US9311774B2 (en) 2006-11-10 2016-04-12 Igt Gaming machine with externally controlled content display
TW200841531A (en) * 2007-04-02 2008-10-16 Asustek Comp Inc Slot device
CN101889269A (zh) * 2008-12-11 2010-11-17 Lsi公司 独立的驱动器功率控制器
TW201025015A (en) * 2008-12-30 2010-07-01 Wistron Corp Method for safely removing an external image processing device for a computer system and related computer system
JP2011081551A (ja) * 2009-10-06 2011-04-21 Panasonic Corp データ処理システム
JP5617429B2 (ja) * 2010-08-19 2014-11-05 ソニー株式会社 バスシステムおよびバスシステムと接続機器とを接続するブリッジ回路
US9875607B2 (en) 2011-07-13 2018-01-23 Igt Methods and apparatus for providing secure logon to a gaming machine using a mobile device
US10121318B2 (en) 2011-09-09 2018-11-06 Igt Bill acceptors and printers for providing virtual ticket-in and ticket-out on a gaming machine
US20190272704A1 (en) 2011-09-09 2019-09-05 Igt Redemption of virtual tickets using a portable electronic device
US10297105B2 (en) 2011-09-09 2019-05-21 Igt Redemption of virtual tickets using a portable electronic device
US9367835B2 (en) 2011-09-09 2016-06-14 Igt Retrofit devices for providing virtual ticket-in and ticket-out on a gaming machine
US8613659B2 (en) 2011-09-09 2013-12-24 Igt Virtual ticket-in and ticket-out on a gaming machine
US9524609B2 (en) 2011-09-30 2016-12-20 Igt Gaming system, gaming device and method for utilizing mobile devices at a gaming establishment
US8613668B2 (en) 2011-12-22 2013-12-24 Igt Directional wireless communication
US8876596B2 (en) 2012-02-29 2014-11-04 Igt Virtualized magnetic player card
US9311769B2 (en) 2012-03-28 2016-04-12 Igt Emailing or texting as communication between mobile device and EGM
US8961306B2 (en) * 2012-05-08 2015-02-24 Igt Feedback to player of device connection state
US9412227B2 (en) 2012-07-11 2016-08-09 Igt Method and apparatus for offering a mobile device version of an electronic gaming machine game at the electronic gaming machine
US9723745B2 (en) 2015-02-16 2017-08-01 Cisco Technology, Inc. Line card ejector with line card removal indication
US9916735B2 (en) 2015-07-22 2018-03-13 Igt Remote gaming cash voucher printing system
US10055930B2 (en) 2015-08-11 2018-08-21 Igt Gaming system and method for placing and redeeming sports bets
US10417867B2 (en) 2015-09-25 2019-09-17 Igt Gaming system and method for automatically transferring funds to a mobile device
US20170092054A1 (en) 2015-09-25 2017-03-30 Igt Gaming system and method for utilizing a mobile device to fund a gaming session
US10217317B2 (en) 2016-08-09 2019-02-26 Igt Gaming system and method for providing incentives for transferring funds to and from a mobile device
US10916090B2 (en) 2016-08-23 2021-02-09 Igt System and method for transferring funds from a financial institution device to a cashless wagering account accessible via a mobile device
US10621824B2 (en) 2016-09-23 2020-04-14 Igt Gaming system player identification device
US10332344B2 (en) 2017-07-24 2019-06-25 Igt System and method for controlling electronic gaming machine/electronic gaming machine component bezel lighting to indicate different wireless connection statuses
US10380843B2 (en) 2017-08-03 2019-08-13 Igt System and method for tracking funds from a plurality of funding sources
US10360763B2 (en) 2017-08-03 2019-07-23 Igt System and method for utilizing a mobile device to facilitate fund transfers between a cashless wagering account and a gaming establishment retail account
US10373430B2 (en) 2017-08-03 2019-08-06 Igt System and method for tracking fund transfers between an electronic gaming machine and a plurality of funding sources
US10360761B2 (en) 2017-08-03 2019-07-23 Igt System and method for providing a gaming establishment account pre-approved access to funds
US11922765B2 (en) 2017-12-18 2024-03-05 Igt System and method employing virtual tickets
US10643426B2 (en) 2017-12-18 2020-05-05 Igt System and method for providing a gaming establishment account automatic access to funds
US11341817B2 (en) 2017-12-18 2022-05-24 Igt System and method for providing awards for utilizing a mobile device in association with a gaming establishment retail account
US11043066B2 (en) 2017-12-21 2021-06-22 Igt System and method for centralizing funds to a primary gaming establishment account
US10950088B2 (en) 2017-12-21 2021-03-16 Igt System and method for utilizing virtual ticket vouchers
US10970968B2 (en) 2018-04-18 2021-04-06 Igt System and method for incentivizing the maintenance of funds in a gaming establishment account

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0241905A3 (en) * 1986-04-14 1990-04-25 Siemens Nixdorf Informationssysteme Aktiengesellschaft Circuit board for on-line insertion in computer system
US4835737A (en) * 1986-07-21 1989-05-30 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for controlled removal and insertion of circuit modules
JPH02139610A (ja) * 1988-11-19 1990-05-29 Fujitsu Ltd 活性着脱方式
JPH0366420U (ko) * 1989-10-31 1991-06-27
EP0471928B1 (en) * 1990-08-20 1999-07-14 Kabushiki Kaisha Toshiba Connection state confirmation system and method for expansion unit
US5265238A (en) * 1991-01-25 1993-11-23 International Business Machines Corporation Automatic device configuration for dockable portable computers
JPH0821015B2 (ja) * 1992-01-20 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータならびにそのシステム再構成化装置および方法
US5454081A (en) * 1992-08-28 1995-09-26 Compaq Computer Corp. Expansion bus type determination apparatus
US5323291A (en) * 1992-10-15 1994-06-21 Apple Computer, Inc. Portable computer and docking station having an electromechanical docking/undocking mechanism and a plurality of cooperatively interacting failsafe mechanisms
US5430847A (en) * 1992-10-22 1995-07-04 International Business Machines Corporation Method and system for extending system buses to external devices
US5463742A (en) * 1993-03-05 1995-10-31 Hitachi Computer Products (America), Inc. Personal processor module and docking station for use therewith
US5522089A (en) * 1993-05-07 1996-05-28 Cordata, Inc. Personal digital assistant module adapted for initiating telephone communications through DTMF dialing
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
US5526493A (en) * 1993-06-03 1996-06-11 Dell Usa Docking detection and suspend circuit for portable computer/expansion chassis docking system
ATE195380T1 (de) * 1994-03-25 2000-08-15 Advanced Micro Devices Inc Gerät und verfahren zum ermöglichen der ankoppelung eines koppelbaren rechnersystems während des betriebes
US5664118A (en) * 1994-03-28 1997-09-02 Kabushiki Kaisha Toshiba Computer system having detachable expansion unit
US5560022A (en) * 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5564024A (en) * 1994-08-02 1996-10-08 Pemberton; Adam C. Apparatus for connecting and disconnecting peripheral devices to a powered bus
US5680540A (en) * 1995-01-31 1997-10-21 Bell Usa, L.P. Suspend-to-disk system for removable hard drive
US5694600A (en) * 1996-02-09 1997-12-02 Iomega Corporation Methods and apparatus for booting a computer having a removable media disk drive
US5761460A (en) * 1996-07-19 1998-06-02 Compaq Computer Corporation Reconfigurable dual master IDE interface

Also Published As

Publication number Publication date
DE19737214A1 (de) 1998-07-02
KR19980063444A (ko) 1998-10-07
US6141711A (en) 2000-10-31
DE19737214B4 (de) 2007-01-04

Similar Documents

Publication Publication Date Title
KR100305098B1 (ko) 운영컴퓨터시스템에장치를삽입또는제거하는방법
US5875307A (en) Method and apparatus to enable docking/undocking of a powered-on bus to a docking station
JP3974288B2 (ja) 周辺装置をコンピュータに登録する方法及び装置
JP4132141B2 (ja) コンピュータ・システム及びそのホット・ドッキング/アンドッキング方法
US6041375A (en) Method and system for enabling nondisruptive live insertion and removal of feature cards in a computer system
US6038624A (en) Real-time hardware master/slave re-initialization
EP0720094B1 (en) Circuit for reassigning the power-on processor in a multiprocessing system
US5495569A (en) Circuit for ensuring that a local interrupt controller in a microprocessor is powered up active
KR100690307B1 (ko) 멀티 프로세서 데이터 처리 시스템과 그의 시스템 코어로직의 동작 주파수 변경 방법과 기록 매체
US6356965B1 (en) Hotkey for network service boot
US5798951A (en) Method and apparatus for automatic un-preconditioned insertion/removal capability between a notebook computer and a docking station
US8626973B2 (en) Pseudo multi-master I2C operation in a blade server chassis
US20030110337A1 (en) Apparatus and method of connecting and interfacing active device components
JPH1055230A (ja) 携帯型コンピュータを主pciバスを介してドッキング・ステーションにホットドッキングするための装置及び方法、及びこれらの結合を切る方法
US20020032807A1 (en) System and method for hiding peripheral devices in a computer system
JPH0997127A (ja) コンピュータシステム
US6493785B1 (en) Communication mode between SCSI devices
US7080164B2 (en) Peripheral device having a programmable identification configuration register
GB2421326A (en) Scalable reference clock unit for external cards
US6446148B1 (en) Enhanced ATA channel command structure for automatic polling, hot swapping and extending coupled peripheral devices
US7069360B2 (en) Method and apparatus for detecting a device's ability to run at a selected frequency in a PCI non-inhibit bus-connect mode
US7159060B2 (en) PCI standard hot-plug controller (SHPC) with user programmable command execution timing
US6134656A (en) Method for blocking bus transactions during reset
CN113867835B (zh) 用于dsp动态加载的装置及方法
JP2000207272A (ja) メモリ制御装置およびメモリ制御方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体

Legal Events

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

Payment date: 20130628

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee