KR100292833B1 - 제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치 - Google Patents
제1버스프로토콜에합치하는장치를외부버스에인터페이싱하는방법및장치 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling 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은 다수의 다른 장치들을 가지는 종래의 컴퓨터 시스템을 도시한 도면이다. 이러한 컴퓨터 시스템에서, 제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의 불리안 함수를 적용함으로써 새로운 레지스터 값을 결정한다.
예를 들어, 호스트가 상기 레지스터에 1FF001FEh를 기록하면(현재값은 32800307), 새로운 레지스터 값은 수학식 2와 같이 계산된다.
+ 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 버스 프로토콜과 합치하는 장치를 제2 버스 프로토콜에 인터페이싱시키며, 구성정보를 저장하는 복수의 구성 레지스터들을 가지는 지능 I/O 회로로서, 상기 지능 I/O 회로는a) 제1 버스 프로토콜 및 제2 버스 프로토콜 사이에서 버스사이클들을 번역하며, 소스 신호를 더 제공하는 어드레스 번역 유니트;b) 로칼 프로세서 버스에 연결되고 프로그램 명령들을 실행하는 로칼 프로세서;c) 제2 버스 프로토콜에 의해 정의된 바와 같은 소정의 하드웨어 맵을 체크하고, 상기 하드웨어 맵에 기초하여 타겟 구성 레지스터가 외부 에이전트에 의해 억세스 가능한지의 여부를 판단하는 제1 프로그램 수단;구성 레지스터들의 현재상태를 저장하는 제2 프로그램 수단;구성 레지스터들이 소정의 하드웨어 맵에 기초하여 외부 에이전트에 의해 억세스 가능한지를 판단하는 제3 프로그램 수단 및소정의 하드웨어 맵을 위반하여 외부 에이전트에 의해 기록되는 구성 레지스터에 이전값을 저장하는 제4 프로그램 수단을 포함하는 로칼 메모리;d) 로칼 프로세서 버스에 연결되고 로칼 메모리로의 억세스를 제어하는 메모리 제어기를 포함하는 것을 특징으로 하는 지능 I/O 회로.
- 제 1 항에 있어서, 상기 하드웨어 맵은 PCI 버스 프로토콜에 의해 정의되는 것을 특징으로 하는 지능 I/O 회로.
- 제 1 항에 있어서, 제2 버스를 제3 버스에 인터페이싱하는 브리지 회로를 더 구비하는 것을 특징으로 하는 지능 I/O 회로.
- 제 1 항에 있어서, 상기 제2 버스 프로토콜은 PCI 버스 프로토콜인 것을 특징으로 하는 지능 I/O 회로.
- 제 1 항에 있어서, 상기 로칼 프로세서는 인텔 80960 JF 프로세서 칩인 것을 특징으로 하는 지능 I/O 회로.
- 제 1 항에 있어서, 상기 메모리 제어기는판독/기록 신호, 바이트 가능 신호, 복수의 어드레스 신호 및 제1 신호에 응답하고, 메모리로의 억세스를 선택적으로 제어하는 수단;상기 메모리를 선택적으로 제어하는 수단에 연결되고, 로칼 프로세서에 인터럽트를 발생시키는 수단; 및타겟 구성 레지스터가 외부 에이전트에 의해 억세스 가능한지의 여부를 판단하는 프로그램 수단을 더 포함하는 것을 특징으로 하는 지능 I/O 회로.
- 제2 버스 프로토콜을 가지는 외부 버스에 제1 버스 프로토콜과 함께 작동하는 장치를 인터페이싱하고, 구성 정보를 저장하기 위하여 복수의 구성 레지스터들을 가지는 지능 I/O 회로로서, 상기 지능 I/O 회로는,a) 제1 버스 프로토콜을 가지는 로칼 프로세서 버스;b) 로칼 프로세서 버스에 연결되고 로칼 메모리로의 억세스를 제어하는 메모리 제어기로서, 상기 로칼 메모리는제2 버스 프로토콜 구성 사이클을 장치가 인식가능한 제1 버스 프로토콜 구성 사이클로 번역하는 제1 프로그램 수단;외부 버스에 적절한 핸드쉐이크 신호들을 제공하는 제2 프로그램 수단;복수의 구성 레지스터들이 제2 버스 프로토콜에 의해 정의되는 소정의 하드웨어 맵에 따라 외부 에이전트에 의해 수정되었는지를 확인하고, 상기 지능 I/O 회로 내에서 기록 불가능한 비트들을 특정하는 상기 하드웨어 맵을 위반하여 수정된 레지스터들을 복원시키는 제3 프로그램 수단을 구비하는, 상기 메모리 제어기;c) 로칼 프로세서 버스에 연결되고 프로그램 명령들을 실행하는 로칼 프로세서 및d) 외부 버스를 로칼 프로세서 버스에 연결시키고, 외부 버스와 로칼 프로세서 버스 사이의 인터페이싱을 제공하는 어드레스 번역 유니트를 포함하는 것을 특징으로 하는 지능 I/O 회로.
- 제 7 항에 있어서, 상기 어드레스 번역 유니트, 상기 메모리 제어기, 상기 로칼 프로세서, 상기 로칼 프로세서 버스 및 상기 브리지 회로는 인텔 80960 RP 칩에 집적되는 것을 특징으로 하는 지능 I/O 회로.
- 제 7 항에 있어서, 상기 어드레스 번역 유니트는외부 버스에 연결되고, 외부 버스 에이전트에 의해 발생되는 상기 외부 버스상의 구성 사이클이 상기 지능 브리지로 향하는지를 검출하는 수단;상기 검출수단에 연결되고, 구성이 완료된 후 로칼 프로세서에 인터럽트를 발생시키는 수단 및상기 인터럽트 발생수단에 연결되고, 로칼 프로세서가 로칼 프로세서 내에서 실행되는 정정 및 확인 프로그램의 실행을 완료할 때까지 외부 버스 상에 재시도를 표명하는 수단을 더 포함하는 것을 특징으로 하는 지능 I/O 회로.
- 기능들을 모방하고 비합치 장치에 버스능력을 제공하며, 메모리 제어기를 구비하는 지능 I/O 회로로서, 상기 메모리 제어기는a) 소스 신호에 응답하고 구성 명령의 소스를 지시하는 제1 신호를 발생시키는 수단;b) 판독/기록 신호, 복수의 바이트 인에이블 신호들, 복수의 어드레스 신호들 및 제1 신호에 응답하여, 메모리로의 억세스를 선택적으로 제어하는 수단;c) 메모리를 선택적으로 제어하는 수단에 연결되고 로칼 프로세서에 인터럽트를 발생시키는 수단;d) 복수의 구성 레지스터들의 현재 상태를 검출하는 수단;e) 구성 레지스터들의 현재상태를 저장하는 수단;f) 구성 레지스터들이 호스트 프로세서에 의해 억세스 가능한지의 여부를 판단하는 수단; 및g) 소정의 하드웨어 맵을 위반하여 호스트 프로세서에 의해 기록되는 구성 레지스터에 이전값을 복원시키는 수단을 포함하는 것을 특징으로 하는 지능 I/O 회로.
- 기능들을 모방하고 비합치 장치에 버스능력을 제공하며, 어드레스 번역 유니트를 구비하는 지능 I/O 회로로서, 상기 어드레스 번역 유니트는a) 외부 버스 상의 구성 사이클이 상기 지능 I/O 회로로 향하는지를 검출하는 수단;b) 상기 검출수단에 연결되고, 구성 레지스터가 외부 에이전트에 의해 수정될 수 있도록 로칼 프로세서에 인터럽트를 발생시키는 수단;c) 상기 인터럽트 발생수단에 연결되고, 로칼 프로세서가 상기 구성 레지스터의 정정 및 확인을 완료할 때까지 외부 버스 상에 재시도를 표명시키는 수단; 및d) 로칼 메모리에 배치되고, 외부 에이전트에 의해 수정된 후의 구성 레지스터를 확인하고 복원시키는 소프트웨어 수단을 포함하는 것을 특징으로 하는 지능 I/O 회로.
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)
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)
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)
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 |
-
1995
- 1995-12-28 US US08/580,130 patent/US5751975A/en not_active Expired - Lifetime
-
1996
- 1996-12-27 GB GB9812475A patent/GB2324182B/en not_active Expired - Fee Related
- 1996-12-27 KR KR1019980704962A patent/KR100292833B1/ko not_active IP Right Cessation
- 1996-12-27 AU AU14319/97A patent/AU1431997A/en not_active Abandoned
- 1996-12-27 DE DE19681711T patent/DE19681711B4/de not_active Expired - Lifetime
- 1996-12-27 WO PCT/US1996/020815 patent/WO1997024677A1/en active IP Right Grant
-
1997
- 1997-02-03 TW TW086101237A patent/TW327684B/zh not_active IP Right Cessation
-
1999
- 1999-04-07 HK HK99101370A patent/HK1016302A1/xx not_active IP Right Cessation
Patent Citations (1)
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 |