KR100292833B1 - 제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치 - Google Patents

제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치 Download PDF

Info

Publication number
KR100292833B1
KR100292833B1 KR1019980704962A KR19980704962A KR100292833B1 KR 100292833 B1 KR100292833 B1 KR 100292833B1 KR 1019980704962 A KR1019980704962 A KR 1019980704962A KR 19980704962 A KR19980704962 A KR 19980704962A KR 100292833 B1 KR100292833 B1 KR 100292833B1
Authority
KR
South Korea
Prior art keywords
bus
local processor
configuration
intelligent
circuit
Prior art date
Application number
KR1019980704962A
Other languages
English (en)
Other versions
KR19990076835A (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 KR19990076835A publication Critical patent/KR19990076835A/ko
Application granted granted Critical
Publication of KR100292833B1 publication Critical patent/KR100292833B1/ko

Links

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
    • 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/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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
    • G06F13/404Coupling between buses using bus bridges with address mapping

Landscapes

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

Abstract

제1 버스 프로토콜에 합치하는 장치(8)를 제2 버스 프로토콜을 가지는 제2 버스(11)에 인터페이싱하고, 제2 버스(11)에 연결되는 지능 브리지(9)를 통하여 가상기능을 제공하는 방법 및 장치. 제2 버스(11)에 연결되어, 제2 버스 포맷의 어드레스들을 제1 버스 포맷의 어드레스로 번역하는 어드레스 번역기(35)가 제공된다. 제2 버스(11)로부터의 구성 사이클이 그 특정장치에 대한 것인지를 검출하기 위하여 장치 선택 검출회로(37)가 제공된다. 일단 구성 사이클이 검출되면, 인터럽트 발생회로(43)가 제1 로칼 프로세서 버스(13)에 연결된 로칼 프로세서(29)를 인터럽트시킨다. 장치 선택 검출회로(37)는 구성 제어기(39)에 배치된 레지스터(41)에 또한 기록한다. 구성 제어기(39)는 어드레스 번역기(35)의 기능을 제한하여, 로칼 프로세서 버스(13)로의 더 이상의 억세스가 차단되도록 한다.

Description

제1 버스 프로토콜에 합치하는 장치를 외부 버스에 인터페이싱하는 방법 및 장치{A METHOD AND APPARATUS FOR INTERFACING A DEVICE COMPLIANT TO FIRST BUS PROTOCOL TO AN EXTERNAL BUS}
도 1은 다수의 다른 장치들을 가지는 종래의 컴퓨터 시스템을 도시한 도면이다. 이러한 컴퓨터 시스템에서, 제1 PCI 합치장치 (예를 들면, 제1 회사에서 제조한 SCSI 제어기)는 1차 PCI 버스에 연결된다. PCI 대 PCI 브리지는 1차 PCI와 2차 PCI 버스 사이의 인터페이스를 제공한다. 다른 PCI 합치장치 (예를 들면, 제2 회사에서 제조한 제2 SCSI 제어기)는 이 2차 PCI 버스에 연결된다.
PCI 대 로칼(local) 프로세서 버스 브리지 (예를 들면, PLX 테크놀로지즈사에서 제조한 PLX 9036 또는 9060)는 1차 버스에 연결되는데, 1차 PCI 버스와 로칼 프로세서 버스 사이의 인터페이스를 제공한다. (제3 회사에서 제조한) SCSI 제어기는 로칼 프로세서 버스에 연결되며, 로칼 프로세서 버스 프로토콜과 합치한다. 그러나, 제3 회사에서 제조한 SCSI 제어기는 PCI와 합치하지 않는다.
이러한 컴퓨터 시스템은 몇 가지 단점을 가진다. 첫째로, 이러한 예에서의세 개의 SCSI 제어기 각각은 독립된 드라이버를 요한다 (즉, 이러한 장치들은 각 제어기에 대한 특정 명령어 세트에 의해 정의되는 다른 명령들에 의해 제어된다). 예를 들면, 제1 회사의 SCSI 제어기는 제1 회사의 드라이버와 함께 번들로 제공된다. 제2 회사의 SCSI 제어기는 독립된 제2 회사의 드라이버와 함께 번들로 제공된다. 제3 회사의 SCSI 제어기는 독립된 제3 회사의 드라이버를 가진다. 특정 드라이버는 그 드라이버와 관련된 장치만을 제어한다. 반대로, 특정장치는 그 장치와 관련된 드라이버만을 인식한다. 장치가 비슷한 기능을 수행할 수 있다고 하더라도, 하나의 하드웨어 제조원으로부터 구입하는 드라이버는 그 제조원이 제조한 장치들에 특정된다. 예를 들면, 제1 회사와 제2 회사가 제조한 SCSI 제어기들이 모두 PCI 합치장치들일지라도, 제2 회사의 SCSI 제어기는 제1 회사의 SCSI 제어기용 드라이버에 사용되는 명령들을 인식하지 않으며, 그 반대도 마찬가지이다.
두 번째로, 종래의 브리지(예를 들면, PLX 9036)칩은 PCI 버스사이클을 로칼 프로세서 버스사이클로 번역할 뿐이며, 그 반대도 마찬가지이다. 예를 들면, PLX 9036은 호스트 프로세서가 PLX 9036으로 구성 사이클을 시작할 때 호스트 프로세서에 억세스할 수 있는 구성 레지스터들을 포함한다. 그러나, 로칼 프로세서 버스에 연결된 장치들은 진정한 PCI 장치들이 아니다. 예를 들면, 제3 회사에서 제조한 SCSI 제어기는 PCI와 합치하지 않으며, PCI 어드레스 공간에서 인식조차 되지 않는다.
추가로, 종래의 컴퓨터 시스템에서 (1차 또는 2차) PCI 버스에 장치를 연결하기 위해서는 (즉, 장치를 PCI에 합치시키기 위해서는) 복잡한 인터페이스 회로가 필요하다. 전형적으로, 이러한 인터페이스 회로는 PCI 버스 프로토콜에 따른 전기적인 조건들, 버스 프로토콜 조건들 및 구성공간을 수행하는, 적용이 특정된 집적회로(ASIC)이다. 이러한 인터페이스 회로는 전형적으로 적용이 특정된 집적회로(ASIC)에 집적되는데, 일반적으로 설계 및 제조시 고가이며, 베이스 기판 또는 I/O 카드 상에서 물리적인 공간을 차지한다.
따라서 하나의 회사가 제조한 PCI와 합치하지 않는 장치가 다른 회사가 제조한 PCI 합치장치의 드라이버에 의해 제어될 수 있도록, PCI와 합치하지 않는 장치를 PCI 버스에 인터페이싱시키고 PCI 버스에 가상기능을 모방하는, 다기능 지능 브리지 장치에서 구현되는 방법 및 장치가 필요하다.
본 발명은 일반적으로 컴퓨터 장치에 관한 것으로, 특히 다기능 지능 브리지(bridge) 장치들에 관한 것이다.
본 발명은 바람직한 실시예들에 따른 이하의 상세한 설명 및 첨부도면으로부터 더 완전하게 이해될 수 있다. 그러나 이는 본 발명을 특정 실시예에 한정하고자 하는 것은 아니며, 설명과 이해를 위한 것뿐이다.
도 1은 종래의 컴퓨터 시스템을 나타내는 도면이다.
도 2는 본 발명이 실시되는 컴퓨터 시스템을 나타내는 블록도이다.
도 3은 다기능 PCI 합치장치의 구성요소들을 나타내는 블록도이다.
도 4는 본 발명의 일 실시예를 나타내는 도면이다.
도 5는 본 발명에 의해 채택된 처리단계들을 나타내는 도면이다.
도 6은 본 발명의 또 다른 실시예를 나타내는 도면이다.
도 7은 칩 선택 신호를 발생시키기 위하여 메모리 제어기 내의 회로에 의해 취해진 처리단계들을 나타내는 도면이다.
도 8은 출력가능 신호를 발생시키기 위하여 메모리 제어기 내의 회로에 의해 취해진 처리단계들을 나타내는 도면이다.
도 9는 기록가능 신호를 발생시키기 위하여 메모리 제어기 내의 회로에 의해 취해진 처리단계들을 나타내는 도면이다.
도 10은 다기능 지능 브리지를 통하여 가상기능들을 제공하기 위하여 본 발명에 의해 채택된 처리단계들을 나타내는 도면이다.
본 발명의 일태양에 따르면, PCI와 합치하지 않는 장치를 다기능 지능 브리지 장치를 통하여 PCI 버스에 인터페이싱하는 방법 및 장치가 제공된다. PCI 버스 프로토콜은 버스 상에 상주하는 모든 기능들을 위한 구성 레지스터들의 정의된 세트를 요한다. 본 발명은 다기능 PCI 장치를 위한 PCI 구성 어드레스 공간을 다기능 장치의 뒷면 상에서 또 다른 더 종래의 버스의 어드레스 공간으로 직접 맵핑하는 방법 및 장치를 제공한다. 본 발명은 뒷면의 버스상의 레지스터들이 PCI 버스 프로토콜에 의해 정의되는 바와 같이 하나의 다기능 PCI "장치"에 존재할 수 있는 여덟 개의 기능들중 어느 것을 위한 PCI 구성공간으로 맵핑될 수 있도록 한다.
어드레스 번역기는 PCI 버스와 로칼 프로세서 버스 사이에 연결되어 PCI 어드레스들을 로칼 프로세서 어드레스들로 번역하며 그 반대로도 마찬가지이다. 1차PCI 버스에 연결되어 PCI버스상의 구성 사이클이 그 특정장치에 대한 것인지를 검출하는 장치 선택 검출회로가 제공된다. 현재의 구성 사이클이 그 장치에 대한 것이라는 것을 검출하는 즉시, 이 장치 선택 검출회로는 구성 제어기에 통보한다. 이 구성 제어기는 어드레스 번역기의 기능을 억제하여, 1차 PCI 버스상의 버스 마스터에 의한 억세스가 차단되도록 한다. 구성 제어기는 또한 로칼 프로세서에 인터럽트 신호를 발생시키기 위하여 인터럽트 발생기에 신호를 전달하는데, 로칼 프로세서 버스에 연결된다. 구성 제어기는 호스트나 PCI 버스상의 임의의 다른 PCI 버스 마스터가 로칼 프로세서 버스로 억세스하려고 하는 경우, PCI 버스로 PCI 재시도 사이클들을 발생시키기 위하여 재시도 발생기에 또한 명령을 내린다.
본 발명의 다른 태양에 따르면, PCI 다기능 장치 내에서 가상기능을 제공하는 방법 및 장치가 제공된다. 로칼 프로세서 버스 상에 연결되는 로칼 프로세서는 모방 소프트웨어에 의해 다른 현존하는 PCI 장치들을 모방하는 것이 가능해진다.
실시예에서, PCI 다기능 장치는 인텔 80960 RP 칩(이하 "P2P"라 함)이다. P2P가 발생된 IDSEL#를 가진 구성 사이클을 간파할 때마다, P2P는 구성 사이클을 로칼 프로세서 버스상의 메모리 어드레스에 맵핑한다. 로칼 버스에 연결되는 메모리 제어기는 구성공간 내의 오프셋을 디코딩하고, 선택된 기능에 따라 응답한다 (즉, 특정기능에 대한 구성공간의 적절한 하드웨어 맵을 기록하고 판독한다). 그 다음, 메모리 제어기는 로칼 프로세서를 인터럽트하는데, 이 프로세서는 구성공간을 차례로 판독하고 사정에 따라 적절히 응답한다.
로칼 프로세서 버스에 연결되는 로칼 메모리는 하나의 PCI 장치의 명령어 세트를 또 다른 PCI 장치의 명령어 세트로 번역하기 위한 모방 소프트웨어를 저장한다. 게다가, 이 로칼 메모리는 특정기능에 대한 구성공간의 어떤 보호영역(즉, 각 기능에 대하여 256 바이트 하드웨어 맵)이 호스트 프로세서나 1차 PCI 버스상의 다른 PCI 마스터에 의해 덧씌워지지 않는다는 것을 보장하는 추가 소프트웨어를 포함한다. 로칼 프로세서(예를 들면, 인텔 80960 JF)는 구성공간의 2K 바이트 윈도의 임의의 부분에 기록이 가능하도록 하는데, 이는 가상 PCI 기능을 모방하기 때문이다. 그러나, 호스트 프로세서가 구성공간의 보호영역에 기록하게 되면, 이것을 정정하는 소프트웨어를 실행하는 로칼 프로세서는 구성공간에 적당한 값들(즉, 이전값들)을 복귀시킨다.
실시예에서는 또한, 로칼 메모리 내에 저장되는 소프트웨어 코드가 명령 또는 명령어들을 완료시키기 위하여 적당한 핸드쉐이크(habdshake) 신호들을 1차 PCI 버스에 제공한다.
따라서, 본 발명은 PCI와 합치하지 않는 장치를 PCI버스에 인터페이싱하는 방법 및 장치를 제공하며, 또한 PCI 다기능 장치를 통하여 가상기능들을 제공하는 방법 및 장치를 제공한다. 본 발명의 다른 특징들과 장점들이 이하의 상세한 설명 및 첨부도면으로부터 자명할 것이다.
이하에서 도면을 참조하여, 본 발명의 실시예들을 설명한다. 이 실시예들은 본 발명의 태양을 설명하기 위해 제공되는 것이며, 본 발명의 범위를 제한하고자 하는 것은 아니다. 이 실시예들은 블록도 또는 흐름도들을 참조하여 기본적으로 설명된다. 흐름도에 있어서, 흐름도 내의 각 블록은 방법단계 및 이 방법단계를 수행하기 위한 장치부재를 나타낸다. 실시태양에 따라, 대응하는 장치부재는 하드웨어,소프트웨어, 펌웨어(firmware) 또는 이들의 조합으로 구성될 수 있다.
도 2는 본 발명이 시사하는 바가 수행되는 컴퓨터 시스템을 나타내는 블록도이다. 호스트 프로세서(3)는 메모리 제어기, 캐쉬 제어기 및 호스트 버스 대 PCI 버스 브리지를 포함하는 칩세트(5)에 연결된다. 주 메모리(예를 들면, DRAM들)(4)가 호스트 프로세서(3)에 의해 실행되는 프로그램들을 저장하기 위하여 제공된다. 주 메모리(4)는 칩세트(5)에 연결되고, 주 메모리(4)로의 억세스는 칩세트(5)의 메모리 제어기에 의해 제어된다.
칩세트(5)는 1차 PCI 버스(7)에 연결된다. 이 1차 PCI 버스(7)는 장치(8)와 같은 다수의 PCI 합치장치들을 수용할 수 있다.
지능 브리지(9)(예를 들면, 인텔 80960 RP 칩, 이하에서 "P2P"라 함)는 1차 PCI 버스(7)와 2차 PCI 버스(11)에 연결된다. P2P는 컴퓨터 시스템에 다수의 기능을 제공한다 (즉, P2P는 다기능 PCI 장치이다). 첫째로, P2P(9)는 1차 PCI 버스(7) 상의 PCI 버스사이클들을 2차 PCI 버스(11)의 대응 PCI 사이클들로 번역하며, 그 반대로도 마찬가지이다. 두 번째로, P2P(9)는 PCI 버스사이클들을 로칼 프로세서 버스(13) 사이클들로 번역하며, 어드레스 번역기를 통하여 그 반대로도 마찬가지인데, 이하에서 좀 더 상세히 설명한다. P2P(9)는 입출력(I/O) 연산들을 전용으로 취급하는 프로세서를 또한 포함한다. P2P 칩은 로칼 버스(3)(예를 들면, 인텔 80960 프로세서 버스)를 또한 포함한다. PCI와 합치하지 않는 장치(15)는 로칼 프로세서 버스(13)에 연결될 수 있다.
2차 PCI 버스(11)는 장치(12)와 같이 복수의 PCI 합치장치들을 또한 포함할수 있다.
도 3은 본 발명과 관련된 P2P(9)의 주요 구성요소들을 나타내는 블록도이다. 이미 설명한 바와 같이, PCI 대 PCI 브리지(21)는 1차 PCI 버스(7)를 2차 PCI 버스(11)에 연결시킨다. 게다가, PCI 대 PCI 브리지(21)는 1차 PCI 버스(7) 상의 PCI 버스사이클들을 2차 PCI 버스(11) 상의 버스사이클로 번역하며, 그 반대로도 마찬가지이다. P2P(9)에 할당된 2K 바이트의 구성공간에서, PCI 대 PCI 브리지(21)는 2K 바이트 윈도 내에 (기능 0에 대응하는)인접하는 256 바이트들을 할당한다.
어드레스 번역 유니트(ATU)(23)는 P2P 프로세서(9)가 구성될 때 전형적으로 기능 1인데, 1차 PCI 버스(7)를 로칼 프로세서 버스(13)에 연결시킨다. 메모리 제어기(25)는 로칼 메모리(27)를 로칼 프로세서 버스(13)에 연결시키고, 로칼 메모리(27)로의 억세스 및 로칼 메모리(27)로부터의 억세스를 제어한다.
로칼 프로세서(29)(예를 들면, 인텔 80960 JF)는 로칼 프로세서 버스(13)에 또한 연결된다. 이 로칼 프로세서(29)는 로칼 메모리(27)에 저장된 프로그램들을 실행하고, 전형적으로 입출력(I/O) 명령어 세트(즉, I/O 명령들)를 취급하기 위하여 적용되는 특정 오퍼레이팅 시스템을 갖는다.
이미 설명한 바와 같이, PCI와 합치하지 않는 장치(15)는 로칼 프로세서 버스(13)에 연결될 수 있다. 이 장치(15)가 로칼 프로세서 버스(13)의 프로토콜과 합치해야 한다 하더라도 (예를 들면, 인텔 80960 프로세서 버스 프로토콜과 합치하는 것과 같이), 본 발명은 이러한 PCI와 합치하지 않는 장치(15)가 호스트 프로세서(3)와 1차 (7) 또는 2차 PCI 버스(11) 상의 임의의 다른 PCI 버스 마스터에 PCI 합치장치로 기능하고 나타나도록 한다.
도 4는 본 발명의 일 실시예를 나타내는 도면으로서, 본 발명의 주요 태양이 ATU(23)에서 실현된다.
본 실시예에서, ATU(23)는 1차 PCI 버스(7)로부터 로칼 프로세서 버스(13)로 PCI 버스사이클들을 번역하며 그 반대로도 마찬가지인 어드레스 번역기(35)를 포함한다. 가끔, 이 번역과정은 1차 PCI 버스 상의 버스사이클의 어드레스의 상위 비트들을 단순히 대체한다.
본 발명은 ATU(23)에서 실현되는 바와 같이, 1차 PCI 버스(7)로부터의 어드레스의 하위 두 비트들(즉, AD[1:0])과 IDSEL# 신호를 수신하기 위하여 1차 PCI 버스(7)에 연결되는 장치 선택 검출기(37)를 또한 포함한다. IDSEL# 신호가 발생되고 어드레스의 하위 두 비트들이 00 (즉, AD[1:0]=00)이라면, P2P(9)는 현재의 PCI 구성 사이클이 그 장치에 대한 것이라는 것을 인식한다.
PCI구성 사이클이 P2P(9)에 대한 것이라는 것을 검출하는 즉시, 장치 검출 선택기(37)는 P2P(9)가 선택된다는 것을 구성 제어기(39)에 알려준다. 장치 검출 선택기(37)는 모드 레지스터(41)에 소정의 비트 패턴을 또한 기록한다. 이 비트 패턴은 호스트 프로세서(3)가 현재의 PCI 구성 사이클을 시작했다는 것을 로칼 프로세서(29)에 지시한다. 장치 검출 선택기(37)는 또한 어드레스 번역기(35)의 기능을 억제시켜 어드레스 번역기(35)가 다시 가능하게 될 때까지 1차 PCI 버스(7)로부터의 어드레스들이 로칼 프로세서 버스(13)의 어드레스들로 번역되지 않도록 한다.
구성 제어기(39)는 인터럽트 발생기(43)를 제어한다. 인터럽트 발생기(43)는로칼 프로세서 버스(13)에 연결되는데, 로칼 프로세서(29)로 인터럽트를 발생시킨다. 구성 제어기(39)는 또한 재시도 발생기(45)를 제어한다. 재시도 발생기(45)는 1차 PCI 버스(7) 상에 재시도 사이클을 발생시켜, 로칼 프로세서가 P2P(9)의 구성 레지스터들의 상태를 체크하기에 충분한 시간을 가지도록 하며 승인된 비트들만이 변화된 것을 확인하도록 한다. 구성공간 내의 어떤 보호필드들이 PCI 버스 프로토콜 릴리즈(release) 2.1에서 정의되는 것과 같은 PCI 구성공간 하드웨어 맵(map) 프로토콜을 위반하여 호스트 프로세서에 의해 경고를 받았다는 것이 로칼 프로세서에 의해 판단되면, 로칼 프로세서는 로칼 메모리(27)에 상주하는 정정 소프트웨어를 실행한다.
PCI 버스 프로토콜은 모든 PCI합치장치에 대한 구성공간 레지스터들의 체제를 정의하고, 각 장치의 기능에 대한 256 바이트 공간상에 특정 레코드 구조나 템플리트(template)(즉, 하드웨어 맵)를 부과한다. 이 구성공간은 미리 정의된 헤더영역과 장치의존영역으로 분리된다. 장치의존영역은 장치의 특정정보를 포함한다. PCI 합치 장치는 그 적용에 필요하며 적절한 레지스터들을 보완한다.
미리 정의된 헤더영역은 장치를 유일하게 식별하고 그 장치를 총괄적으로 제어하도록 하는 필드들을 포함한다. 구성공간의 미리 정의된 헤더영역은 두 개의 부분으로 나누어진다. 첫 번째 16 바이트들은 모든 장치 타입에 대해 동일하게 정의된다. 나머지 바이트들은 장치가 지원하는 기본기능에 따라 다른 레이아웃을 가질 수 있다. (오프셋 0Eh에 위치하는) 헤더타입 필드는 어떤 종류의 특정 레이아웃이 제공되는지를 정의한다.
모든 PCI 합치장치들은 예약 레지스터들로의 구성공간 기록연산들을 No-Ops로서 취급한다. 달리 말하면, 억세스는 버스 상에서 정상적으로 완료되고, 데이터들은 폐기된다. 예약 또는 수행되지 않는 레지스터들로의 판독 억세스가 정상적으로 완료되고, 0의 데이터 값이 되돌려진다.
표 1은 256 바이트 구성공간의 00h 타입의 미리 정의된 헤더 부분을 나타내는 레이아웃이다. 장치들은 구성공간 내의 이 미리 정의된 헤더 다음에 임의의 필요한 장치의 특정 레지스터를 배열한다. 모든 PCI 합치장치들은 제조원 ID, 장치 ID, 명령어, 상태, 개정판 ID, 클래스(class) 코드 및 헤더 내의 헤더타입 필드들을 지원한다. 00h 타입의 미리 정의된 헤더 내의 다른 레지스터들의 실행은 장치의 기능에 따라 선택적이다 (즉, 예약 레지스터들로 취급될 수 있다). 장치가 레지스터와 관계되는 기능을 지원한다면, 장치는 정의된 위치 내에서 그리고 정의된 기능을 가지고 수행된다.
구성공간 헤더, 그 다양한 필드들 및 이 필드들 각각의 설명과 관련된 추가정보에 대하여는, PCI로칼 버스 규격명세서 개정판 2.1의 6장 185-218 페이지를 참조하라.
구성 레지스터들 내의 가능한 에러의 검출과 정정은 적어도 몇 개의 PCI 버스사이클을 요하기 때문에, 구성 레지스터들의 상태가 확인될 때까지 P2P(9)로의 임의의 새로운 1차 PCI 버스 억세스를 차단하기 위하여 재시도 발생기(45)가 본 발명에 의해 제공된다.
도 5는 본 발명의 실시예에 의해 채택된 처리단계들을 보여준다. 다음의 처리단계들을 실행하기 전에, 구성공간(즉, 모든 구성 레지스터들)의 복사가 이루어진다. 이러한 복사는 승인되지 않은 기록이 구성공간에서 발생했을 때 구성공간의 복귀가 보장되도록 하기 위하여 이루어진다. 도 5에 도시된 바와 같이, 처리단계들이 호스트 또는 다른 버스 마스터가 1차 PCI 버스(7) 상에서 구성 사이클을 발생시킬 때 시작한다. 두 번째로, 장치선택 검출기(37)는 PCI 구성 사이클을 검출한다 (처리단계 30).
이어서, 어드레스 번역기(35)가 이 PCI 구성 사이클을 로칼 프로세서 버스(13) 어드레스 공간(즉, 로칼 메모리 어드레스들)으로 번역한다 (처리단계 32). 그 다음 본 발명은 로칼 버스 상의 버스사이클을 실행한다 (처리단계 34). 이 버스사이클은 구성공간으로의 기록(즉, 수정명령)일 수 있고 또는 판독 사이클(즉, 판독 구성공간 명령)일 수 있다. 로칼 버스 상의 버스사이클이 실행된 후, 본 발명은 PCI 버스 상의 PCI 구성 사이클을 완료한다.
그리고, 본 발명은 재시도 메카니즘을 가능하게 한다(처리단계 35). 재시도 발생기(45)는 어드레스 번역기(35)의 기능을 억제하고, 로칼 프로세서 버스(13)로의 억세스를 위한 임의의 이어지는 요청을 위하여 1차 PCI 버스(7)로 재시도 사이클을 발생시킨다. 재시도 발생기(45)는 2차 PCI 버스로의 억세스들을 차단하지 않으며, 로칼 프로세서 버스 공간으로의 억세스들을 차단할 뿐이다.
재시도 사이클은 타겟(target) 장치가 이 순간에 요청이나 명령을 처리하도록 준비되지 않았다는 것을 호스트 프로세서에 지시한다. 재시도 사이클은 에러나 절단이 아닌데, 이는 이후에 다시 호스트 프로세서에 재시도 명령을 내리기 때문이다.
다음에, 인터럽트 발생기(43)는 로칼 프로세서(29)를 인터럽트하는데(처리단계 46), 이 프로세서는 구성 레지스터들이 호스트 프로세서(3)에 의해 적절히 갱신되었는지(처리단계 47)를 확인하기 위하여 확인 및 정정 프로그램 코드를 차례로 실행한다.
이 확인 및 정정 프로그램 코드는 (처리단계 47에서), 구성 레지스터들을 PCI 버스 프로토콜의 하드웨어 맵에 일치시킨다. 이 코드는 표 2를 참조하여 이하에서 설명한다.
PCI 구성공간에서 정의되는 많은 레지스터들은 판독/기록(RW) 비트들, 판독만(RO)의 비트들 및 몇몇 판독-클리어(RC) 비트들의 혼합이다. (판독-클리어 비트는 그 비트 위치에 1을 기록함으로써 판독하거나 클리어할 수 있다. 판독-클리어비트에 0을 기록하는 것은 효과가 없다.) 이러한 종류의 레지스터들의 좋은 예가 PCI 구성공간에서의 명령어 및 상태 레지스터들이다. 이러한 레지스터들 각각은 16 비트들이고 하나의 32 비트 DWORD로 정렬되기 때문에, 소프트웨어가 한번에 양 레지스터에 접근하는 것이 가능하다. 이러한 억세스는 세 가지 타입의 비트들(즉, RW, RO 및 RC 비트들) 모두를 포함한다. 본 발명은 호스트에 의해 레지스터에 기록된 데이터를 검사하고 어떤 비트들이 어떤 타입인지를 보여주는 템플리트 및 원래의 데이터들의 복사본을 사용하여 레지스터를 바르게 갱신하는 확인 및 정정 코드(예를 들면 펌웨어)를 채택한다. 표 2는 상태/명령어 레지스터의 포맷 예를 나타낸다.
펌웨어는 비트들이 RC(F1000000h)인 마스크와 비트들이 RW(00000357h)인 마스크를 포함한다.
펌웨어는 다음의 수학식 1의 불리안 함수를 적용함으로써 새로운 레지스터 값을 결정한다.
새값 = RW*기록값+RC*현재값*/기록값+/RW*/RC*현재값
예를 들어, 호스트가 상기 레지스터에 1FF001FEh를 기록하면(현재값은 32800307), 새로운 레지스터 값은 수학식 2와 같이 계산된다.
22800156h = 00000357h*1FF001FEh (00000156h)
+ F1000000h*32800307*E00FFE01h (20000000h)
+ FFFFFCA8*0EFFFFFF*32800307 (02800000h)
그 다음 이러한 결과는 이 레지스터들에 대해 사용되는 저장장소에 기록되고, PCI 버스로부터 다음 트랜잭션(transaction)이 받아들여 질 수 있다.
상태/명령어
원래의데이터 비트 # 타이프 이름
0 31 RC 검출된 패리티 에러
0 30 RC 신호처리된 SERR#
1 29 RC 수신된 마스터 어보트(abort)
1 28 RC 수신된 타겟 어보트
0 17 RO 신호처리된 타겟 어보트-선택사항-본 예에 의해서 실현되지 않음
01 26-25 RO DEVSEL 타이밍
0 24 RC 데이터 패리티 에러 검출
1 23 RO 패스트 백투백(fast back to back) 가능
0 22 RO UDF 지원
0 21 RO 66 MHz 지원
0 20-10 RO 예약됨
1 9 RW 패스트 백투백 가능
1 8 RW SERR# 가능
0 7 RO 어드레스 스텝핑(stepping)
0 6 RW 패리티 에러 응답
0 5 RO VGA 응답
0 4 RW MWI 가능
0 3 RO 특별 사이클
1 2 RW 마스터 가능
1 1 RW 메모리 공간
1 0 RW IO 공간
이미 설명한 바와 같이, 본 실시예에서는, 구성 사이클 전에 지능 브리지(9)의 구성공간이 로칼 메모리(27)에 저장된다. 보호된 구성 레지스터들이 호스트 프로세서의 구성 기록에 의해 변조되었다는 것이 로칼 프로세서(29) 상에서 실행되는 확인 및 정정 소프트웨어에 의해 판단되면, 확인 및 정정 소프트웨어는 로칼 메모리에 배치되는 구성공간의 복사본에 억세스하여, 원래의 값들을 이 구성 레지스터에 저장한다.
이미 설명한 바와 같이, 본 발명은 구성 헤더 공간의 PCI 하드웨어 맵이 승인되지 않은 기록에 의해 위반된다면 구성 레지스터들의 이전값들을 복귀시킨다(처리단계 48). 이 단계에서, 구성공간의 복사본이 이전값들을 복귀시키는데 사용된다. 그 다음 본 발명은 재시도 메카니즘의 기능을 억제하여, 로칼 프로세서 버스(13)로의 억세스를 위한 이어지는 요청들이 처리되도록 한다(처리단계 49).
도 6은 본 발명의 다른 실시예를 나타내는 도면인데, 본 발명의 주요태양들이 메모리 제어기(25)에서 1차적으로 실현된다. 본 실시예에서는 로칼 버스 메모리 어드레스들이 1차 PCI 버스(7) 상의 구성 사이클로부터 맵핑된 후 메모리 제어기(25)가 로칼 버스 메모리 어드레스들을 디코딩한다. 메모리 제어기(25)는 메모리 제어기(25)로 메모리 억세스의 소스(즉, 이러한 억세스들이 로칼 프로세서(29)에 의해서 시작되는지 또는 호스트 프로세서(3)에 의해서 시작되는지의 여부)를 지시하는 소스 신호(51)를 수신한다. 메모리 제어기(25)는 판독/기록 신호(R/W)(53), 바이트 가능(BE) 신호들(55)의 세트 및 메모리 어드레스들의 모든 비트들을 또한 수신한다. 메모리 제어기(25)는 신호들에 응답하여, 로칼 메모리(27)(예를 들면, SRAM)로 세 개의 신호들을 제공한다. 이러한 신호들은 칩선택(CS) 신호(57), 출력가능(OE) 신호(58) 및 기록가능(WE) 신호(59)를 포함한다. 이러한 신호들 각각을 발생시키기 위하여 메모리 제어기(25)에 의해 취해진 단계들을 이하에서 도7-9를 참조하면서 설명한다.
종래 컴퓨터 시스템에서의 메모리 제어기들은 전형적으로 메모리 어드레스의 상위 비트들만 사용하며, 메모리 어드레스의 하위 비트들은 로칼 메모리(27)에 직접 제공된다. 그러나, 본 발명의 메모리 제어기(25)는 메모리 어드레스의 모든 비트들을 제공한다.
도 7은 칩선택(CS) 신호(57)를 발생시키기 위하여 메모리 제어기(25) 내의 회로에 의해 취해진 단계들을 나타내는 도면이다. 먼저, 메모리 어드레스가 소정의 영역에 있는지의 판단이 이루어진다(결정블록 65). 만약 없다면, 더 이상의 진행이 이루어지지 않는다. 만약 있다면, 칩선택(CS) 신호를 가능하게 한다(단계 67).
도 8은 출력가능(OE) 신호(58)를 발생시키기 위하여 메모리 제어기(25) 내의 회로에 의해 취해진 단계들을 나타내는 도면이다. 먼저, 칩선택(CS) 신호(57)가 가능한지의 판단이 이루어진다(결정블록 71). 만약 아니라면, 더 이상의 진행이 이루어지지 않는다. 만약 가능하다면, 명령어가 판독명령인지를 한번 더 판단한다 (결정블록 73). 만약 아니라면(즉, 명령어가 기록이라면), 더 이상의 진행이 이루어지지 않는다. 만약 판독명령이라면, 출력가능(OE) 신호를 발생시킨다(단계 75).
도 9는 기록가능(WE) 신호(59)를 발생시키기 위하여 메모리 제어기(25) 내의 회로에 의해 취해진 단계들을 나타내는 도면이다. 먼저, 칩선택 신호(57)가 가능한지를 판단한다(결정블록 77). 만약 아니라면, 더 이상의 진행이 이루어지지 않는다. 만약 가능하다면, 명령이 기록 명령인지를 한번 더 판단한다(결정블록 79). 만약 아니라면, 더 이상의 진행이 이루어지지 않는다. 만약 기록명령이라면, 바이트 가능 신호들(55)이 발생되는지를 한번 더 판단한다(결정블록 81). 만약 아니라면, 더 이상의 진행이 이루어지지 않는다.
만약 발생된다면, 명령의 소스가 로칼 프로세서(29)인지를 한번 더판단한다(결정블록 83). 만약 로칼 프로세서(29)라면, 기록가능 신호(59)를 발생시킨다(단계 89). 만약 아니라면, 호스트 프로세서에 의해 갱신된 구성공간이 소정의 하드웨어 맵과 일치하는지를 한번 더 판단한다(결정블록 85). 호스트 프로세서가 PCI 구성공간 하드웨어 맵을 위반하여 구성 레지스터들을 수정하려고 한다면 (즉, 보호된 구성레지스터에 기록하려고 하면), 더 이상의 진행이 이루어지지 않는다. 호스트 프로세서가 PCI 구성공간 하드웨어 맵을 위반하지 않고 구성 레지스터들을 수정하려고 한다면, 기록가능 신호를 발생시킨다(단계 89).
본 실시예에서, 구성공간의 복사는 필요하지 않은데, 이는 메모리 제어기(20)에서 실현되는 본 발명이 보호되는 구성 레지스터로의 기록명령을 무시하기 때문이다 (즉, 메모리 제어기는 구성레지스터에 기록하기 전에 PCI버스 프로토콜 규격명세서에 기재된 소정의 하드웨어 맵을 체크한다). 따라서, 이전의 실시예와 달리 제2 실시예는 구성 사이클이 지능 브리지에 의해 받아들여지기 전에 로칼 메모리에 구성공간의 복사본을 저장하지 않는다.
도 10은 다기능 지능 브리지를 통하여 가상 기능들이 가능하도록 (즉, 다른 장치들의 기능을 모방하도록) 본 발명에 의해 채택된 처리단계들을 도시하는 도면이다. 이미 설명한 바와 같이, 본 발명은 PCI와 합치하지 않는 장치(15)가 P2P 프로세서(9)를 통하여 PCI합치 버스와 인터페이싱하도록 한다. 본 발명은 PCI와 합치하지 않는 장치(15)가 인식할 수 없는 장치 드라이버의 명령어들을 번역하는, 로칼 프로세서(29)에 의해 실행되는 모방 소프트웨어를 채택한다. 모방 소프트웨어는 마이크로코드(예를 들면, 펌웨어)에서 수행될 수 있는데, 모방장치의 장치 드라이버의 명령어 세트를 PCI와 합치하지 않는 장치(15)가 인식할 수 있는 명령어로 번역한다.
특별히, 본 발명은 모방장치의 구문을 인터럽트하고 원하는 기능을 결정하기 위하여 로칼 프로세서(29)상에서 모방 프로그램 코드를 실행한다(처리단계 121). 이 단계에서, 본 발명은 모방장치와 관련된 장치 드라이버로부터의 명령어를 디코딩하고 원하는 기능을 결정한다 (예를 들면, SCSI 제어기의 경우에, 제1 명령어가 SCSI 디스크 드라이버에 명령하여 특정 섹터에 정보를 기록하게 할 수 있고, 반면에 제2 명령어가 SCSI 디스크 드라이버에 명령하여 특정 섹터로부터 판독하게 할 수 있다).
다음에, 본 발명은 모방장치의 구문을 실제장치의 구문으로 번역한다(처리단계 125). 다른 말로 하면, 본 발명의 모방 소프트웨어는 처리단계 121에서 판단되는 것과 같이, PCI와 합치하지 않는 장치(15)가 인식할 수 있는 필요한 명령어들을 판단하여 원하는 기능을 달성하도록 한다.
마지막으로, 본 발명은 실제장치를 위한 구문(예를 들면, 명령어들)을 실행한다. 그 다음, 실제장치는 구문에 응답하여 원하는 기능을 수행한다(처리단계 127).
다기능 지능 브리지를 통하여 가상기능들을 제공하는 이러한 처리단계들의 순서는 도 5의 단계 49 다음에 실행될 수 있다.
실제장치의 구문으로 모방장치의 구문을 맵핑하는 것은 하찮은 것(예를 들면 아무것도 하지 않는 것)일 수 있는데, 이는 (예를 들면, 레지스터에 특별한 비트를기록하는 것과 같이) 특별한 기능이 하드웨어에서 실행되기 때문이다. 모방장치의 구문과 실제장치의 구문 사이의 맵핑이 간단하지 않다면, 모방코드는 모방장치의 명령어(예를 들면, 그래픽 드라이버의 특정 명령어)를 정확히 모방하기 위하여 다수의 처리단계들을 포함할 수 있다. 예를 들면, 모방장치의 특정 판독 및 기록 명령어가 다른 메모리 장소로 향하도록 하는데 필요할 수 있고 또는 모방장치의 하나의 명령어가 실제장치의 다수의 다른 명령어들로 번역 또는 맵핑될 수 있다. 기능을 모방하는 특정예가 "고급 프로그램 가능한 인터럽트 제어기의 기능을 모방하기 위한 회로 및 방법"이라는 명칭으로 1995, 12월 20일에 일련번호; 변리사 도켓번호 042390.P3299로 이미 출원된 특허출원에 개시된다.
다양한 하드웨어 및 소프트웨어의 기능이 여기에서 설명되었다. 실시예에 따라, 많은 하드웨어 기능들이 소프트웨어를 사용하여 모방될 수 있다. 마찬가지로, 소프트웨어 기능들도 그 기능들을 수행하도록 구성된 고정배선회로를 가지는 하드웨어 부품들을 사용하여 수행될 수 있다. 다른 실시예들에서는, 하드웨어 또는 소프트웨어의 몇 가지 기능이 펌웨어나 다른 컴퓨터 시스템 실현기술을 사용하여 구성될 수 있다.
본 명세서에 설명된 실시예들은 단지 본 발명의 원리를 설명하기 위하여 제공되는 것이며, 본 발명의 범위를 제한하고자 하는 것은 아니다. 본 발명의 원리들은 본 명세서에 서술된 장점들을 얻기 위하여 그리고 다른 장점들을 얻기 위하여 또는 다른 목적들을 만족시키기 위하여 광범위한 시스템에 적용될 수 있다.

Claims (11)

  1. 제1 버스 프로토콜과 합치하는 장치를 제2 버스 프로토콜에 인터페이싱시키며, 구성정보를 저장하는 복수의 구성 레지스터들을 가지는 지능 I/O 회로로서, 상기 지능 I/O 회로는
    a) 제1 버스 프로토콜 및 제2 버스 프로토콜 사이에서 버스사이클들을 번역하며, 소스 신호를 더 제공하는 어드레스 번역 유니트;
    b) 로칼 프로세서 버스에 연결되고 프로그램 명령들을 실행하는 로칼 프로세서;
    c) 제2 버스 프로토콜에 의해 정의된 바와 같은 소정의 하드웨어 맵을 체크하고, 상기 하드웨어 맵에 기초하여 타겟 구성 레지스터가 외부 에이전트에 의해 억세스 가능한지의 여부를 판단하는 제1 프로그램 수단;
    구성 레지스터들의 현재상태를 저장하는 제2 프로그램 수단;
    구성 레지스터들이 소정의 하드웨어 맵에 기초하여 외부 에이전트에 의해 억세스 가능한지를 판단하는 제3 프로그램 수단 및
    소정의 하드웨어 맵을 위반하여 외부 에이전트에 의해 기록되는 구성 레지스터에 이전값을 저장하는 제4 프로그램 수단을 포함하는 로칼 메모리;
    d) 로칼 프로세서 버스에 연결되고 로칼 메모리로의 억세스를 제어하는 메모리 제어기를 포함하는 것을 특징으로 하는 지능 I/O 회로.
  2. 제 1 항에 있어서, 상기 하드웨어 맵은 PCI 버스 프로토콜에 의해 정의되는 것을 특징으로 하는 지능 I/O 회로.
  3. 제 1 항에 있어서, 제2 버스를 제3 버스에 인터페이싱하는 브리지 회로를 더 구비하는 것을 특징으로 하는 지능 I/O 회로.
  4. 제 1 항에 있어서, 상기 제2 버스 프로토콜은 PCI 버스 프로토콜인 것을 특징으로 하는 지능 I/O 회로.
  5. 제 1 항에 있어서, 상기 로칼 프로세서는 인텔 80960 JF 프로세서 칩인 것을 특징으로 하는 지능 I/O 회로.
  6. 제 1 항에 있어서, 상기 메모리 제어기는
    판독/기록 신호, 바이트 가능 신호, 복수의 어드레스 신호 및 제1 신호에 응답하고, 메모리로의 억세스를 선택적으로 제어하는 수단;
    상기 메모리를 선택적으로 제어하는 수단에 연결되고, 로칼 프로세서에 인터럽트를 발생시키는 수단; 및
    타겟 구성 레지스터가 외부 에이전트에 의해 억세스 가능한지의 여부를 판단하는 프로그램 수단을 더 포함하는 것을 특징으로 하는 지능 I/O 회로.
  7. 제2 버스 프로토콜을 가지는 외부 버스에 제1 버스 프로토콜과 함께 작동하는 장치를 인터페이싱하고, 구성 정보를 저장하기 위하여 복수의 구성 레지스터들을 가지는 지능 I/O 회로로서, 상기 지능 I/O 회로는,
    a) 제1 버스 프로토콜을 가지는 로칼 프로세서 버스;
    b) 로칼 프로세서 버스에 연결되고 로칼 메모리로의 억세스를 제어하는 메모리 제어기로서, 상기 로칼 메모리는
    제2 버스 프로토콜 구성 사이클을 장치가 인식가능한 제1 버스 프로토콜 구성 사이클로 번역하는 제1 프로그램 수단;
    외부 버스에 적절한 핸드쉐이크 신호들을 제공하는 제2 프로그램 수단;
    복수의 구성 레지스터들이 제2 버스 프로토콜에 의해 정의되는 소정의 하드웨어 맵에 따라 외부 에이전트에 의해 수정되었는지를 확인하고, 상기 지능 I/O 회로 내에서 기록 불가능한 비트들을 특정하는 상기 하드웨어 맵을 위반하여 수정된 레지스터들을 복원시키는 제3 프로그램 수단을 구비하는, 상기 메모리 제어기;
    c) 로칼 프로세서 버스에 연결되고 프로그램 명령들을 실행하는 로칼 프로세서 및
    d) 외부 버스를 로칼 프로세서 버스에 연결시키고, 외부 버스와 로칼 프로세서 버스 사이의 인터페이싱을 제공하는 어드레스 번역 유니트를 포함하는 것을 특징으로 하는 지능 I/O 회로.
  8. 제 7 항에 있어서, 상기 어드레스 번역 유니트, 상기 메모리 제어기, 상기 로칼 프로세서, 상기 로칼 프로세서 버스 및 상기 브리지 회로는 인텔 80960 RP 칩에 집적되는 것을 특징으로 하는 지능 I/O 회로.
  9. 제 7 항에 있어서, 상기 어드레스 번역 유니트는
    외부 버스에 연결되고, 외부 버스 에이전트에 의해 발생되는 상기 외부 버스상의 구성 사이클이 상기 지능 브리지로 향하는지를 검출하는 수단;
    상기 검출수단에 연결되고, 구성이 완료된 후 로칼 프로세서에 인터럽트를 발생시키는 수단 및
    상기 인터럽트 발생수단에 연결되고, 로칼 프로세서가 로칼 프로세서 내에서 실행되는 정정 및 확인 프로그램의 실행을 완료할 때까지 외부 버스 상에 재시도를 표명하는 수단을 더 포함하는 것을 특징으로 하는 지능 I/O 회로.
  10. 기능들을 모방하고 비합치 장치에 버스능력을 제공하며, 메모리 제어기를 구비하는 지능 I/O 회로로서, 상기 메모리 제어기는
    a) 소스 신호에 응답하고 구성 명령의 소스를 지시하는 제1 신호를 발생시키는 수단;
    b) 판독/기록 신호, 복수의 바이트 인에이블 신호들, 복수의 어드레스 신호들 및 제1 신호에 응답하여, 메모리로의 억세스를 선택적으로 제어하는 수단;
    c) 메모리를 선택적으로 제어하는 수단에 연결되고 로칼 프로세서에 인터럽트를 발생시키는 수단;
    d) 복수의 구성 레지스터들의 현재 상태를 검출하는 수단;
    e) 구성 레지스터들의 현재상태를 저장하는 수단;
    f) 구성 레지스터들이 호스트 프로세서에 의해 억세스 가능한지의 여부를 판단하는 수단; 및
    g) 소정의 하드웨어 맵을 위반하여 호스트 프로세서에 의해 기록되는 구성 레지스터에 이전값을 복원시키는 수단을 포함하는 것을 특징으로 하는 지능 I/O 회로.
  11. 기능들을 모방하고 비합치 장치에 버스능력을 제공하며, 어드레스 번역 유니트를 구비하는 지능 I/O 회로로서, 상기 어드레스 번역 유니트는
    a) 외부 버스 상의 구성 사이클이 상기 지능 I/O 회로로 향하는지를 검출하는 수단;
    b) 상기 검출수단에 연결되고, 구성 레지스터가 외부 에이전트에 의해 수정될 수 있도록 로칼 프로세서에 인터럽트를 발생시키는 수단;
    c) 상기 인터럽트 발생수단에 연결되고, 로칼 프로세서가 상기 구성 레지스터의 정정 및 확인을 완료할 때까지 외부 버스 상에 재시도를 표명시키는 수단; 및
    d) 로칼 메모리에 배치되고, 외부 에이전트에 의해 수정된 후의 구성 레지스터를 확인하고 복원시키는 소프트웨어 수단을 포함하는 것을 특징으로 하는 지능 I/O 회로.
KR1019980704962A 1995-12-28 1996-12-27 제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치 KR100292833B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/580,130 1995-12-28
US08/580,130 US5751975A (en) 1995-12-28 1995-12-28 Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge
US8/580,130 1995-12-28
PCT/US1996/020815 WO1997024677A1 (en) 1995-12-28 1996-12-27 A method and apparatus for interfacing a device compliant to first bus protocol to an external bus

Publications (2)

Publication Number Publication Date
KR19990076835A KR19990076835A (ko) 1999-10-25
KR100292833B1 true KR100292833B1 (ko) 2001-08-07

Family

ID=24319841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980704962A KR100292833B1 (ko) 1995-12-28 1996-12-27 제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치

Country Status (8)

Country Link
US (1) US5751975A (ko)
KR (1) KR100292833B1 (ko)
AU (1) AU1431997A (ko)
DE (1) DE19681711B4 (ko)
GB (1) GB2324182B (ko)
HK (1) HK1016302A1 (ko)
TW (1) TW327684B (ko)
WO (1) WO1997024677A1 (ko)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330629B1 (en) * 1993-02-11 2001-12-11 Hitachi, Ltd. Information processing system
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
GB2308902B (en) * 1996-01-04 2000-03-29 Motorola Inc Peripheral module and microprocessor system
US5991546A (en) * 1996-09-17 1999-11-23 Cmd Technology, Inc. System and method for interfacing manually controllable input devices to a universal computer bus system
US5898859A (en) * 1996-10-01 1999-04-27 Intel Corporation Address shadow feature and methods of using the same
US6125418A (en) * 1996-11-27 2000-09-26 Compaq Computer Corporation Method and apparatus for enabling a computer user to convert a computer system to an intelligent I/O system
US5832246A (en) * 1996-12-03 1998-11-03 Toshiba America Information Systems, Inc. Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge
US6091705A (en) * 1996-12-20 2000-07-18 Sebring Systems, Inc. Method and apparatus for a fault tolerant, software transparent and high data integrity extension to a backplane bus or interconnect
EP0859326A3 (en) * 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
TW384611B (en) * 1997-02-14 2000-03-11 Canon Kk Data communication apparatus and method
DE69840972D1 (de) * 1997-02-14 2009-08-27 Canon Kk Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
US5953535A (en) * 1997-03-28 1999-09-14 International Business Machines Corporation Using intelligent bus bridges with pico-code to service interrupts and improve interrupt response
US5875313A (en) * 1997-04-08 1999-02-23 National Instruments Corporation PCI bus to IEEE 1394 bus translator employing write pipe-lining and sequential write combining
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US5937172A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Apparatus and method of layering cache and architectural specific functions to permit generic interface definition
US5951661A (en) * 1997-08-15 1999-09-14 Compaq Computer Corporation Bus protocol violation monitor systems and methods
US6275888B1 (en) 1997-11-19 2001-08-14 Micron Technology, Inc. Method for configuring peer-to-peer bus bridges in a computer system using shadow configuration registers
US6023736A (en) * 1997-12-19 2000-02-08 International Business Machines Corporation System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6243775B1 (en) 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
US6094699A (en) * 1998-02-13 2000-07-25 Mylex Corporation Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
US6081863A (en) * 1998-03-13 2000-06-27 International Business Machines Corporation Method and system for supporting multiple peripheral component interconnect PCI buses by a single PCI host bridge within a computer system
US6266770B1 (en) 1998-04-14 2001-07-24 Micron Technology, Inc. Method for autonomous configuration of peer devices
US6360289B2 (en) * 1998-04-14 2002-03-19 Micron Technology, Inc. System for autonomous configuration of peer devices
US6065087A (en) * 1998-05-21 2000-05-16 Hewlett-Packard Company Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols
US6101557A (en) * 1998-05-29 2000-08-08 International Business Machines Corporation Method and system for remote function control and delegation within multifunction bus supported devices
US6820157B1 (en) 1998-06-30 2004-11-16 International Business Machines Corporation Apparatus, program product and method of replacing failed hardware device through concurrent maintenance operation
US6243774B1 (en) 1998-06-30 2001-06-05 International Business Machines Corporation Apparatus program product and method of managing computer resources supporting concurrent maintenance operations
US6119191A (en) * 1998-09-01 2000-09-12 International Business Machines Corporation Performing PCI access cycles through PCI bridge hub routing
US6449677B1 (en) * 1998-09-03 2002-09-10 Compaq Information Technologies Group, L.P. Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US6574588B1 (en) * 1998-09-23 2003-06-03 Microsoft Corporation Solid-state memory device that emulates a known storage device
US7058563B1 (en) 1998-09-23 2006-06-06 Microsoft Corporation Device driver auto-load
US6175889B1 (en) * 1998-10-21 2001-01-16 Compaq Computer Corporation Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number
US6182182B1 (en) 1998-10-28 2001-01-30 Adaptec, Inc. Intelligent input/output target device communication and exception handling
GB2347829A (en) * 1998-12-30 2000-09-13 Gen American Royalty Inc Communication protocol translator for consumer electronic networks
US6427199B1 (en) 1999-01-19 2002-07-30 Motorola, Inc. Method and apparatus for efficiently transferring data between peripherals in a selective call radio
US6732208B1 (en) 1999-02-25 2004-05-04 Mips Technologies, Inc. Low latency system bus interface for multi-master processing environments
JP4030216B2 (ja) * 1999-03-09 2008-01-09 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロプロセッサとマイクロプロセッサを含むシステム及びマイクロプロセッサのバスサイクル制御方法
US6457091B1 (en) 1999-05-14 2002-09-24 Koninklijke Philips Electronics N.V. PCI bridge configuration having physically separate parts
US6581125B1 (en) 1999-05-14 2003-06-17 Koninklijke Philips Electronics N.V. PCI bridge having latency inducing serial bus
JP2001014269A (ja) * 1999-06-29 2001-01-19 Toshiba Corp コンピュータシステム
JP2001016278A (ja) * 1999-06-30 2001-01-19 Toshiba Corp シリアル信号伝送装置
US6574691B1 (en) 1999-07-28 2003-06-03 Koninklijke Philips Electronics N.V. Apparatus and method for interfacing a non-sequential 486 interface burst interface to a sequential ASB interface
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6490642B1 (en) 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6393500B1 (en) 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6442643B1 (en) * 1999-09-30 2002-08-27 Conexant Systems, Inc. System and method for resolving data transfer incompatibilities between PCI and Non-PCI buses
CA2284947C (en) 1999-10-04 2005-12-20 Storagequest Inc. Apparatus and method for managing data storage
US6629157B1 (en) * 2000-01-04 2003-09-30 National Semiconductor Corporation System and method for virtualizing the configuration space of PCI devices in a processing system
US6611912B1 (en) * 2000-02-04 2003-08-26 Advanced Micro Devices, Inc. Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
US6529978B1 (en) 2000-02-23 2003-03-04 International Business Machines Corporation Computer input/output (I/O) interface with dynamic I/O adaptor processor bindings
WO2001079962A2 (en) * 2000-04-13 2001-10-25 Stratus Technologies International, S.A.R.L. Fault-tolerant maintenance bus, protocol, and method for using the same
US6970957B1 (en) * 2000-04-24 2005-11-29 Microsoft Corporation Dynamically configuring resources for cycle translation in a computer system
US6687779B1 (en) 2000-07-14 2004-02-03 Texas Instruments Incorporated Method and apparatus for transmitting control information across a serialized bus interface
US6581114B1 (en) 2000-07-14 2003-06-17 Texas Instruments Incorporated Method and system for synchronizing serial data
US6954209B2 (en) * 2000-12-06 2005-10-11 Hewlett-Packard Development Company, L.P. Computer CPU and memory to accelerated graphics port bridge having a plurality of physical buses with a single logical bus number
US6901475B2 (en) * 2000-12-07 2005-05-31 Micron Technology, Inc. Link bus for a hub based computer architecture
US20020178316A1 (en) * 2001-05-23 2002-11-28 Schmisseur Mark A. System and method for defining private functions of a multi-function peripheral device
US7149838B2 (en) * 2001-05-29 2006-12-12 Sun Microsystems, Inc. Method and apparatus for configuring multiple segment wired-AND bus systems
US20040225814A1 (en) * 2001-05-29 2004-11-11 Ervin Joseph J. Method and apparatus for constructing wired-AND bus systems
US6842806B2 (en) * 2001-05-29 2005-01-11 Sun Microsystems, Inc. Method and apparatus for interconnecting wired-AND buses
US6823418B2 (en) * 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US6826628B2 (en) * 2001-10-26 2004-11-30 O2Micro International Limited PCI-PCMCIA smart card reader
US20030097503A1 (en) * 2001-11-19 2003-05-22 Huckins Jeffrey L. PCI compatible bus model for non-PCI compatible bus architectures
US6883057B2 (en) * 2002-02-15 2005-04-19 International Business Machines Corporation Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0
US20040049618A1 (en) * 2002-09-10 2004-03-11 Schmisseur Mark A. Configuration of private devices and device functions
AU2003221040A1 (en) * 2002-10-29 2004-05-25 Workbit Corporation Device controller
US7103697B2 (en) 2003-01-08 2006-09-05 Emulex Design & Manufacturing Corporation Flow-through register
WO2004088522A1 (ja) * 2003-03-31 2004-10-14 Fujitsu Limited バスブリッジ装置、バスブリッジ方法および入出力制御装置
US7062590B2 (en) * 2003-08-29 2006-06-13 Lsi Logic Corporation Methods and structure for PCI bus broadcast using device ID messaging
JP4052265B2 (ja) * 2004-03-05 2008-02-27 日本電気株式会社 情報処理装置とデバイスドライバのロード方法並びにプログラム
US7596652B2 (en) * 2004-05-14 2009-09-29 Intel Corporation Integrated circuit having processor and bridging capabilities
US20070088857A1 (en) * 2005-09-30 2007-04-19 Travis Schluessler Using sequestered memory for host software communications
JP4869714B2 (ja) * 2006-01-16 2012-02-08 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、信号伝送方法、およびブリッジ
JP2007200169A (ja) * 2006-01-30 2007-08-09 Hitachi Ltd ストレージシステム及び記憶制御方法
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
JP2011517497A (ja) * 2008-03-25 2011-06-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Pcieのsr−iov機能をレガシー機能として現出するように変換するシステム及び方法
US8549203B2 (en) 2010-10-29 2013-10-01 Qualcomm Incorporated Multi-protocol bus interface device
US8719843B2 (en) * 2011-07-27 2014-05-06 Intel Corporation Virtualizable and forward-compatible hardware-software interface
US8943257B2 (en) * 2011-09-30 2015-01-27 Intel Corporation Protocol neutral fabric
KR20140113175A (ko) 2013-03-15 2014-09-24 삼성전자주식회사 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법
KR101782852B1 (ko) * 2015-06-14 2017-10-23 아던트 시스템즈 아이엔씨 엔드포인트 에뮬레이션을 이용한 빈 엔드포인트 슬롯의 초기 열거법
US10395722B2 (en) 2017-09-29 2019-08-27 Intel Corporation Reading from a mode register having different read and write timing
CN111240908B (zh) * 2019-12-31 2023-07-25 西安翔腾微电子科技有限公司 处理器接口的验证方法、验证系统、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446868A (en) * 1992-09-11 1995-08-29 R. J. Reynolds Tobacco Company Network bridge method and apparatus

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5086426A (en) * 1987-12-23 1992-02-04 Hitachi, Ltd. Communication network system having a plurality of different protocal LAN's
US5311576A (en) * 1992-01-27 1994-05-10 At&T Bell Laboratories Adjunct processor embedded in a switching system
US5574869A (en) * 1992-03-30 1996-11-12 Intel Corporation Bus bridge circuit having configuration space enable register for controlling transition between various modes by writing the bridge identifier into CSE register
US5392407A (en) * 1992-12-24 1995-02-21 Ncr Corporation Multi-port processor with peripheral component interconnect port and rambus port
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5446869A (en) * 1993-12-30 1995-08-29 International Business Machines Corporation Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card
DE19580606C2 (de) * 1994-06-08 2003-06-18 Intel Corp Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
JPH10501359A (ja) * 1994-06-14 1998-02-03 ユニシス コーポレーション デッドロック・フリー高速ブリッジ回路
US5548730A (en) * 1994-09-20 1996-08-20 Intel Corporation Intelligent bus bridge for input/output subsystems in a computer system
US5568619A (en) * 1995-01-05 1996-10-22 International Business Machines Corporation Method and apparatus for configuring a bus-to-bus bridge

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446868A (en) * 1992-09-11 1995-08-29 R. J. Reynolds Tobacco Company Network bridge method and apparatus

Also Published As

Publication number Publication date
GB9812475D0 (en) 1998-08-05
GB2324182A (en) 1998-10-14
AU1431997A (en) 1997-07-28
KR19990076835A (ko) 1999-10-25
DE19681711B4 (de) 2004-09-02
HK1016302A1 (en) 1999-10-29
TW327684B (en) 1998-03-01
WO1997024677A1 (en) 1997-07-10
GB2324182B (en) 2000-11-08
DE19681711T1 (de) 1998-12-03
US5751975A (en) 1998-05-12

Similar Documents

Publication Publication Date Title
KR100292833B1 (ko) 제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치
US5729767A (en) System and method for accessing peripheral devices on a non-functional controller
EP1399826B1 (en) Virtual pci device apparatus and method
US7318149B2 (en) Semi-persistent relocatable ram-based virtual floppy disk method
KR100341180B1 (ko) 가상어드레싱버퍼회로,및어드레스번역방법,시스템bios의셰도잉방법,실제메모리최적화방법,실제메모리이용방법,cpu제어시스템에서의에뮬레이팅방법및cpu요청리디렉트방법
TW299424B (en) Methods and apparatus for booting a computer having a removable media disk drive
US5796981A (en) Method and apparatus for providing register compatibility between non-identical integrated circuits
US5430845A (en) Peripheral device interface for dynamically selecting boot disk device driver
US6529989B1 (en) Intelligent expansion ROM sharing bus subsystem
US4792896A (en) Storage controller emulator providing transparent resource sharing in a computer system
US6298399B1 (en) System for managing input/output accesses at a bridge/memory controller having a status register for recording cause of interrupt
US9423958B2 (en) System and method for managing expansion read-only memory and management host thereof
US6611912B1 (en) Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
JP2727976B2 (ja) インサーキットエミュレータ
CN114153779A (zh) 一种i2c通信方法、系统、设备、及存储介质
US20030135683A1 (en) Method, system, and program for testing a bus interface
US7536694B2 (en) Exception handling in a multiprocessor system
US7299345B2 (en) Reserved ROM space for storage of operating system drivers
TWI225204B (en) System and method to filter processors by health during early firmware for split recovery architecture
EP0617376A1 (en) Upgradeable data processing system
US5832246A (en) Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge
US6546483B1 (en) Method and apparatus for configuring a device assigned to a fixed address space
US7353328B2 (en) Memory testing
JP3565987B2 (ja) エミュレータ装置
US7363393B2 (en) Chipset feature detection and configuration by an I/O device

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