KR100684130B1 - 고유 버스 프로토콜을 사용하여 동기 버스를 임의의길이만큼 확장하는 방법 및 시스템 - Google Patents

고유 버스 프로토콜을 사용하여 동기 버스를 임의의길이만큼 확장하는 방법 및 시스템 Download PDF

Info

Publication number
KR100684130B1
KR100684130B1 KR1020027000585A KR20027000585A KR100684130B1 KR 100684130 B1 KR100684130 B1 KR 100684130B1 KR 1020027000585 A KR1020027000585 A KR 1020027000585A KR 20027000585 A KR20027000585 A KR 20027000585A KR 100684130 B1 KR100684130 B1 KR 100684130B1
Authority
KR
South Korea
Prior art keywords
bus
remote device
expander
uut
remote
Prior art date
Application number
KR1020027000585A
Other languages
English (en)
Other versions
KR20020015375A (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 KR20020015375A publication Critical patent/KR20020015375A/ko
Application granted granted Critical
Publication of KR100684130B1 publication Critical patent/KR100684130B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31722Addressing or selecting of test units, e.g. transmission protocols for selecting test 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

제한된 길이의 동기 버스를 확장하는 버스 확장기는 ATE 시스템에서 버스 카드로의 편리한 액세스를 제공한다. 버스 확장기는 동기 버스, 예컨대 PCI 버스에 플러그인되며, 케이블은 버스 신호를 리모트 카드가 맞물려있는 리모트 위치까지 전한다. 버스 확장기는 리모트 카드의 이니시에이터(마스터) 모드뿐만 아니라 타겟(슬레이브) 모드도 지원하며, 버스의 고유 프로토콜로서 리모트 카드와 통신한다. 버스 확장기는 버스로부터의 별개의 제어를 요구하지 않고도 작동한다. 예컨대, 버스 확장기는 그 자체의 디바이스 드라이버를 요하지 않는다. 버스 확장기는 버스 트랜잭션을 리모트 카드로 모니터하고 구성 데이터를 기억하는 버스 스누퍼 회로를 포함한다. 버스 스누퍼 회로는 리모트 카드를 위한 고속 응답을 요하는 버스 요청에 국부적으로 응답한다. 버스 확장기는 버스의 리셋을 요하지 않고도 리모트 카드를 리셋하기 위하여 그 기억된 구성 데이터를 리모트 카드로 복사하는 상태 머신을 더 포함한다. 홀드-오프 회로는 또한 버스 확장기내에 포함될 수 있으며, 이는 리모트 카드로부터의 리턴 신호가 세틀링되는데 요구되는 홀드-오프 간격을 결정한다. 홀드-오프 회로는 리턴 신호를 수신하고, 그 수신된 신호를 홀드-오프 간격이 경과한후에 버스에 인가한다.
Figure 112002001158450-pct00001
버스 확장기, 동기 버스, 버스 카드, 홀드-오프, 리모트 카드, 고속 응답

Description

고유 버스 프로토콜을 사용하여 동기 버스를 임의의 길이만큼 확장하는 방법 및 시스템{EXTENDING SYNCHRONOUS BUSSES BY ARBITRARY LENGTHS USING NATIVE BUS PROTOCOL}
본 발명은 일반적으로 자동 테스트 장비에 관한 것이며, 보다 상세하게는 동기 버스 디바이스를 테스트하는 자동 테스트 시스템에서 동기 버스를 확장하는 방법 및 시스템에 관한 것이다.
최근 컴퓨터 시스템은 데이터 통신용 고속 동기 버스를 채택한다. 동기 버스는 통상의 클록을 모든 버스 디바이스에 제공함으로써 버스상의 작동을 조정한다. 비동기 버스는 액티비티를 조정하기 위하여 통상의 클록을 사용하지 않는다. 동기 버스의 예로는 PCI, AGP 및 카드버스(Cardbus)가 있다.
전자 회로 보드의 제조자는 제품이 성능 및 기능에 대한 요구를 충족한다는 것을 보증하기 위하여 자동 테스트 장비("ATE" 또는 "테스터")를 채택한다. 하나의 테스트 구성에서, 피시험 유니트("UUT")는 하나 또는 그 이상의 인터페이스 커넥터를 경유하여 테스터에 부착되고, 그 테스터는 UUT의 고유 환경을 복원함으로써 UUT를 시험한다. UUT 그 자체가 동기 버스 카드인 경우에 있어서, 테스터는 UUT가 접속하는 완전 동기 버스를 포함함으로써 버스 환경을 복원할 것이다.
동기 버스의 어떠한 특징은 문제가 되는 동기 버스 카드의 ATE 테스트를 하는 것이다. 동기 버스의 주된 제한은 고속으로 작동하기 위하여 일반적으로 짧게 유지되어야만 한다는 것이다. 33MHz 이상에서 작동하는 동기 버스는 1 피트이상의 길이인 경우가 거의 없다. 동기 버스를 짧게 유지할 필요는 수반하는 모든 하드웨어를 구비한 전체 버스가 테스터 인터페이스 근처에 위치되는 것을 요한다. 그러나, 테스터 인터페이스 주위의 영역은 이미 가득차 있는 경향이 있다. 테스터 인터페이스는 대부분의 테스터 리소스의 초점이 되는 이외에, 그것은 또한 전형적으로 테스트 어댑터, 보조 장치, 및 UUT를 로드 내지 언로드하기 위한 핸들러를 포함한다. 따라서, 동기 버스를 짧게 유지할 필요는 테스터 인터페이스 근처의 이용가능 공간의 부족과 상충한다.
동기 버스는 또한 열악한 고장 격리로부터 곤란함을 겪는 경향이 있다. 하나의 카드상의 결함은 다른 카드에서의 고장으로 보일 수 있으며, 전체 버스가 오작동하도록 야기할 수 있다. 성공적인 ATE 벤치마크는 고장을 격리하는 능력이다. 대부분의 동기 버스에 일반적인 고장 격리의 결핍은 ATE에서의 우수한 고장 격리에 대한 필요와 직접적으로 상충한다.
어떠한 동기 버스는 전원이 인가된 상태에서 버스 카드를 교체하는 것을 지원하며, 명확한 리셋을 요구하지 않으면서("핫-스와핑"으로 알려진 특징) 새로운 카드를 "라이브"로 식별할 수 있다. 그러나, 많은 버스는 카드가 재빨리 교체되는 것을 허용하도록 제조되어 있지 않다. 이러한 버스는 카드가 삽입 또는 제거될 수 있기전에 파워 다운되어야만 하며, 시간-소모적인 리셋이 정상 작동이 재개될 수 있기전에 수행되어야만 한다. ATE 시스템은 일반적으로 다량의 카드를 어셈블리-라인 방식으로 테스트한다. 핫-스와핑을 지원하지 않는 버스에 대하여, 카드를 스와핑하기 위한 시간-소모적인 프로시져는 높은 시스템 효율에 대한 ATE 요구와 상충한다.
도 1 은 최근 컴퓨터 시스템에서 일반적으로 사용되는 타입의 동기 버스를 도시하며, 동기 버스가 짧게 유지되어야 할 필요성을 도시한다. 클록 드라이버(112)는 마스터 클록 신호(114)를 버퍼링하며, 버스(110)에 플러그인된 각 디바이스(122, 124 및 126)상의 각각의 클록 수신기(120)에 개개의 마스터 클록 버젼을 제공한다. 클록 드라이버(112)는 마스터 클록 신호(114)를 거의 제로 타이밍 스큐, 즉 버스의 다른 슬롯상의 클록 신호사이에 거의 제로 위상차를 나타내도록 버스상의 모든 슬롯에 제공한다.
도 1 에 도시된 바와 같이, 버스(110)상의 각 디바이스(122, 124, 및 126)는 데이터 전송기(116), 데이터 수신기(118) 및 클록 수신기(120)를 포함한다. 버스(110)는 어떠한 디바이스가 버스상의 다른 어떠한 디바이스로부터 데이터를 전송 또는 수신할 수 있도록 다중-드롭, 다중-마스터 구성으로 배열되어 있다. 예컨대, 디바이스(122)는 전송기(116)를 사용하여 데이터 신호를 디바이스(126)로 전송할 수 있으며, 그런 다음 디바이스(126)는 수신기(120)을 사용하여 그 데이터 신호를 수신할 수 있다.
도 1 은 "Tprop"를 데이터 신호가 버스로 이동하여 세틀링(settling)되는데 필요한 시간으로 식별한다. Tprop는 버스의 물리 길이, 버스의 임피던스, 버스상의 디바이스의 임피던스, 유도 및 용량 로딩, 및 버스 종단을 포함하는 다수의 팩터와 관련된 유한 지연이다. 마스터 클록(114)의 주기가 Tprop보다 훨씬 더 길다면, 디바이스(122)로부터의 데이터 신호는 다음 클록 에지이전에 버스로 이동하여 디바이스(126)에서 세틀되는데 충분한 시간을 가진다. 그러나, Tprop이 클록 주기에 근접하거나 초과하면, 디바이스(126)는 데이터 신호가 세틀되기전에 클록 에지를 수신하여, 무효한 클로킹이 일어날 수 있다. 적절한 작동을 위하여, Tprop는 항상 클록 주기보다 적어야만 한다. Tprop이 클록 주기보다 적어야만 한다는 요건의 실제적인 결과는 고속 동기 버스가 매우 짧은 경향이 있다는 것이다.
부분적인 성공과 함께, 동기 버스의 길이를 확장하기 위한 다양한 기술이 사용되어 왔다. 이러한 기술은 버스 로딩 변경, 버스 늦춤, 브리징, 및 리모트 버스 제어를 포함한다.
버스 로딩 변경
지연 시간(Tprop)은 버스의 물리 길이에 의존할 뿐만 아니라 버스의 전기적 로딩에도 의존한다. 버스 로딩을 감소시킴으로써, 버스를 물리적으로 확장하여 Tprop을 클록 주기보다 더 짧게 유지할 수 있다.
실제적인 문제로서, 버스 로딩을 감소하는 것은 약간의 이득을 가질 뿐이다. 대부분의 버스 장치는 버스 로딩을 공격적으로 제어하고, 개선을 위한 마진을 거의 남겨두고 있지 않다. 최상의 조건하에서, 버스 로딩을 감소시키는 것은 동기 버스가 단지 몇 인치 확장되는 것을 허용할 뿐이다. ATE환경에서, 이러한 개선은 너무 미미하여 유용하지 않다.
버스를 늦춤
버스의 클록 주기가 버스의 최대 길이를 제한하기 때문에, 이론적으로 클록 주기를 늦춤으로써 버스를 연장할 수 있다. 클록 주기가 길어지면 길어질수록, 데이터는 오류 클로킹이 일어나기전에 보다 더 멀리 이동할 수 있다.
클록 주기를 늦추는 것은 버스를 확장하는데 있어서 단순하고도 흥미를 끄는 방법인 것으로 보이지만, 이러한 기술은 여러 결점을 가진다. 첫째, 모든 버스가 클록 주기가 변경되는 것을 허용하는 것은 아니다. 둘째, 감소된 속도로 버스를 운영하는 것은 버스상에서의 작동을 늦추며, 전체 시스템의 시스템 효율을 감소시킬 수 있다. 세째, 버스를 확장하는 것은 버스에 로딩을 추가하게 되어, 클록 신호에서 링잉을 야기할 수 있으며, 이러한 링잉 그 자체는 오류 클로킹을 야기할 수 있다. 클록 주기를 감소시키는 것은 링잉을 줄이지 않는다. 그러나, 어떠한 환경에서 클록의 에지를 늦추는 것은 링잉을 줄인다. 그러나, 클록 에지를 늦추는 것은 실제로는 달성하기 어렵다. 마지막으로, 감소된 속도로 UUT를 테스트하는 것은 어떤 타입의 결함도 나타내지 않을 수 있다. 많은 고장은 UUT가 규정된 속도로 작동할 때에만 분명히 나타난다. 클록을 늦추는 것은 고장 감지를 희생하므로, ATE의 주된 목적과 상충하게 된다.
브리징
도 2 는 동기 버스를 확장하기 위하여 상업적으로 이용가능한 기술인 버스 브리징을 도시한다. 버스 브리징의 한 형태를 제공하기 위한 하나의 제품은 SBS Technologies, Inc., St. Paul, MN으로부터 얻을 수 있는 모델 2130 이다. 도 2 에 도시된 바와 같이, 브리지 디바이스(218)는 원래의 동기 버스(210)와 확장된 동기 버스(212)에 걸쳐 있다. 브리지 디바이스(218)는 버스(210 및 212)사이에서 신호를 복사하며, 리모트 디바이스(216)가 로컬 디바이스(214)와 전후로 통신하는 것을 허용한다. 브리징은 버스를 서로 전기적으로 격리시키지만, 효과적으로 버스를 직렬로 접속한다. 다중 브리지 디바이스는 심지어 버스를 확장하기 위하여 캐스케이드될 수 있다.
브리지 구성 부분을 형성하는 각 버스 세그먼트는 최대 길이를 위한 버스의 사양에 일치해야만 한다. 따라서, 브리징은 버스가 캐스케이드되는 것을 허용하지만, 개개의 버스 세그먼트의 길이를 확장하지 않는다. 따라서, 브리징은 UUT 주위의 영역을 비도록 유지할 필요성을 제기하지 않는다.
리모트 버스 제어
리모트 버스 제어는 동기 버스를 원거리로 확장하기 위해 사용되어 왔다. 리모트 버스 제어의 한 형태를 제공하는 하나의 제품은 Catalyst Enterprises, Inc., San Jose, CA로부터 얻은 모델 TA300 이다. 리모트 버스 제어는 버스 신호를 다른 버스 프로토콜로 변환하고, 그 변환된 신호를 리모트 위치로 전송하고, 리모트 위치에서의 버스 신호를 복원하기 위하여 그 신호를 원래의 형태로 다시 변환함으로써 작동한다.
도 3 은 리모트 버스 제어의 예를 도시한다. 로컬 동기 버스(310)상에서의 제어 디바이스(314)는 리모트 동기 버스(312)상에서의 리모트 디바이스(320)와 통신한다. 버스는 로컬 동기 버스(310)로 플러그인된 로컬 변환 디바이스(316), 리모트 버스(312)로 플러그인된 리모트 변환 디바이스(318), 및 두개의 변환 디바이스사이의 인터커넥트(322)를 사용하여 통신한다. 어떠한 장치에 있어서, 리모트 버스(312)는 생략되며, 리모트 디바이스(320)는 변환 디바이스(318)에 직접 플러그인된다.
리모트 버스 제어는 거의 무한정으로 확장가능하지만, 특히 ATE에서 많은 불이익을 겪게 된다. 첫째, 리모트 버스 제어는 제어를 이루기 위하여 상당량의 하드웨어와 소프트웨어를 요구하기 때문에 고가인 경향이 있다. 둘째, 리모트 버스 제어는 리모트 카드의 고유 환경을 사용하는 리모트 카드와 통신하지 않는다. 리모트 버스 제어는 다른 프로토콜, 예컨대 원거리 전송에 적합한 직렬 버스 프로토콜로의 변환을 요구한다. 리모트 버스 제어는 리모트 카드의 고유 "디바이스 드라이버"를 사용하지 않는다. "디바이스 드라이버"는 호스트 컴퓨터의 오페레이팅 시스템과 디바이스사이의 통신을 관리하는 프로그램이다. 리모트 버스 제어는 오페레이팅 시스템과 디바이스사이에서 상이한 버스 프로토콜을 삽입하고, 리모트 카드를 시험하기 위하여 고유 디바이스 드라이버를 사용하지 않는다. 셋째, 리모트 버스 제어는 UUT 근처에서 하드웨어의 사용을 요한다. 리모트 버스(312)가 제거될지라도, 변환 디바이스(318)는 여전히 UUT근처에 위치하게 된다.
전술한 기술 배경과 더불어, 본 발명의 목적은 버스의 고유 프로토콜을 사용하여 동기 버스를 임의의 원거리로 확장하는 것이다.
본 발명의 다른 목적은 버스가 정상적으로 핫 스와핑을 지원하는지 여부에 상관없이, 리모트 버스 카드의 핫 스와핑을 허용하는 것이다.
본 발명의 또 다른 목적은 리모트 버스 카드상에서의 고장이 시스템의 다른 위치에서 고장을 야기시키는 것을 방지하여, 고장 격리를 촉진하는 것이다.
전술한 목적 및 다른 목적과 이점을 달성하기 위하여, 동기 버스를 확장하는 방법은 동기 버스와 물리적으로 맞물리는 확장기 디바이스를 사용한다. 상기 방법은 동기 버스로부터 복수의 버스 신호를 수신하는 단계, 인터커넥트를 경유하여 리모트 디바이스에 복수의 버스 신호를 전송하는 단계, 및 리모트 디바이스로부터 상호 접속을 통하여 리턴 신호를 수신하는 단계를 포함한다. 상기 방법은 적어도 리턴 신호의 세틀링 시간만큼 긴 홀드-오프 간격을 설정하는 단계 및 홀드-오프 간격이 경과한 후에 그 리턴 신호를 동기 버스에 인가하는 단계를 더 포함한다.
본 발명의 또 다른 면에 있어서, 동기 버스와 물리적으로 맞물리는 확장기 디바이스를 사용하여 동기 버스를 확장하는 방법은 리모트 디바이스와의 트랜잭션을 검출하기 위하여 동기 버스를 모니터링하는 단계를 포함한다. 트랜잭션은 리모트 디바이스의 구성을 인코딩하는 콘텐츠를 포함한다. 상기 방법은 리모트 디바이스 구성의 로컬 카피를 유지하기 위하여, 리모트 디바이스와의 트랜잭션의 콘텐츠를 기억하는 단계를 더 포함한다.
본 발명의 또 다른 면에 있어서, UUT를 테스트하는 방법은 제1 UUT를 위한 구성 데이터의 레코드를 생성하는 단계를 포함한다. 또한 상기 방법은 제2 UUT가 설치된후의 시간까지 동기 버스와 제1 UUT사이의 전원 흐름을 차단하는 단계를 포함한다. 상기 방법은 제1 UUT용 구성 데이터의 레코드를 제2 UUT 테스트 시작전에 제2 UUT로 복사하는 단계를 포함한다. 그것에 의해, 상기 방법은 동기 버스가 작동하는 것으로 유지되는 동안 UUT가 안전하게 교환되는 것을 허용한다.
본 발명의 또 다른 면에 있어서, 동기 버스를 확장하기 위한 버스 확장기는 동기 버스 카드의 테스트를 용이하게 한다. 버스 확장기는 동기 버스에 연결된 확장기 디바이스, 및 확장기 디바이스에 연결되고 UUT를 맞물리게 하기 위하여 배열된 커넥터까지 길이가 확장하는 인터커넥트를 포함한다. 확장기 디바이스는 인터커넥트 및 동기 버스에 연결된 홀드-오프 회로를 포함한다. 홀드-오프 회로는 인터커넥트의 길이에 근거하여, 홀드-오프 간격을 기억하기 위한 지연 레지스터 및 지연 회로를 포함한다. 지연 회로는 UUT로부터 도달한 리턴 신호가 홀드-오프 간격이 경과할 때까지 동기 버스상으로 나타나는 것을 방지한다. 본 발명의 추가적인 목적, 이익 및 새로운 특징은 이어지는 상세한 설명 및 도면으로부터 명백해질 것이다.
도 1 은 본 발명이 작동할 수 있는 종래의 동기 버스 구성의 단순 개략도;
도 2 는 종래의 브리징 기술을 도시하는 블럭도;
도 3 은 종래의 리모트 버스 제어를 도시하는 블럭도;
도 4 는 본 발명에 따른 버스 확장기의 블럭도;
도 5 은 도 4 의 버스 스누퍼 회로를 상세하게 도시한 블럭도;
도 6 은 도 4 의 홀드-오프 회로를 상세하게 도시한 블럭도;
도 7 은 도 6 의 지연 결정 회로를 상세하게 도시한 블럭도;
도 8a 및 도 8b 는 리모트 디바이스가 버스 타겟 모드에서 작동할 때, 도 4 의 버스 확장기를 사용하여 리모트 디바이스의 읽기 및 쓰기 작동의 실시예를 각각 도시하는 순서도;
도 8c 및 도 8d 는 리모트 디바이스가 버스 이니시에이터 모드에서 작동할 때, 도 4 의 버스 확장기를 사용하여 리모트 디바이스의 읽기 및 쓰기 작동의 실시예를 각각 도시하는 순서도;
도 9 는 리모트 UUT를 테스트하기 위하여 본 발명에 따른 버스 확장기를 포함하는 테스트 시스템을 도시하는 블럭도;
도 10a-c 는 본 발명에 따라 하나 또는 그 이상의 리모트 UUT를 테스트하는 방법을 도시하는 순서도.
본 발명에 따라, 버스 확장기는 동기 버스의 고유 프로토콜을 유지하면서, 물리적으로 제한되어 있는 동기 버스를 임의의 원거리로 확장한다. 버스 확장기는 리모트 디바이스의 "이니시에이터"(마스터) 및 "타겟"(슬레이브) 작동을 지원한다. 본 발명에 따른 버스 확장기는 리모트 디바이스가 버스에 직접 플러그인된 것과 같이 작동하도록 한다.
도 4 는 본 발명에 따른 버스 확장기(400)을 나타내는 블럭도를 도시한다. 버스 확장기는 버스 커넥터(422)를 경유하여 버스(110)(도 1), 예컨대 PCI 버스와 맞물린다. 인터커넥트(418)는 버스 확장기에 접속하고, 리모트 버스 카드가 맞물린 리모트 백플레인 커넥터(424)까지 버스 신호를 임의의 원거리로 확장한다. 버스 터미네이터(420)는 리모트 백플레인 커넥터(424) 근처에서 버스 신호를 종단한다.
바람직하게는, 버스 확장기(400)는 표준 버스 카드의 형태를 취한다. 바람직한 실시예에서, 버스 확장기(400)는 표준 PCI 크기 및 모양을 구비하는 단일-슬롯 PCI 카드이며, PCI 버스의 어떠한 이용가능한 슬롯에 플러그인될 수 있다. 버스 커넥터(422)는 바람직하게는 표준 PCI 카드 커넥터이며, 리모트 백플레인 커넥터(424)는 바람직하게는 표준 PCI 백플레인 커넥터이다. 비록 프린트 회로 보드, 플렉스 카드 또는 다른 다중-신호 전도 매체가 동일하게 작동할지라도, 인터커넥트(418)는 케이블인 것이 전형적이다. 바람직하게는, 인터커넥트(418)는 동등-길이 신호 경로를 포함하며, 버스 신호사이에 상대적으로 적은 타이밍 스큐를 부가한다.
도 4 에 도시된 바와 같이, 버스 확장기(400)는 버스 "스누퍼" 회로(414), 리모트 버스 인터페이스(412), 및 홀드-오프 회로(416)를 포함한다. 버스 스누퍼 회로(414)는 버스 트랜잭션을 디코딩하며, 적절한 액티비티를 수행한다. 리모트 버스 인터페이스(412)는 버스(110)로부터는 버스 신호를, 리모트 디바이스로부터는 리턴 신호를 수신 및 전송한다. 홀드-오프 회로(416)는 소정의 홀드-오프 간격을 대기하며, 그 시간후에 리턴 신호를 버스로 돌려준다. 홀드-오프 간격은 가변적인 것이 바람직하며, 그 리턴 신호가 버스 확장기에 도달하여 세틀링할만큼 충분히 긴 간격으로 설정된다.
바람직한 실시예에 있어서, 리모트 버스 인터페이스(412), 버스 스누퍼 회로(414) 및 홀드-오프 회로(416)는 3.3V CMOS 로직을 사용하는 단일 필드-프로그램가능 게이트 어레이("FPGA")상에 함께 제조된다. FPGA는 편의를 위해 사용되며, 본 발명에 필수적인 것은 아니다. 응용주문형 집적 회로(ASIC)뿐만 아니라 분리된 구성요소 또는 다른 고-밀도 디바이스가 또한 사용될 수 있다. FPGA 장치는 33MHz, 32-비트 성능을 지원하며, PCI 버젼 2.2 표준과 호환한다. 그러나, 상기 장치는 다른 버스상의 66MHz, 64-비트 PCI 성능을 지원하기 위하여 확장가능하다.
선택적으로는, 제어부(410)가 제어 라인(426)을 경유하여 ATE 제어기와 통신하기 위하여 FPGA내에 구비된다. 제어 라인(426)을 사용하여, 제어부(410)는 고장을 ATE 제어기에 통보하고, ATE 제어기로부터 오퍼레이팅 명령을 수신한다. 대안적으로는, 제어부는 고장을 통보하고 오퍼레이팅 명령을 수신하기 위하여 버스(110)과 직접 통신한다. 그러나, 바람직하게는 제어부(410)는 생략되며, 버스 확장기(400)는 버스 확장기 외부로부터 명확한 제어를 요하지 않으면서 자기-내장형(self-contained)으로 작동한다. 바람직하게는, 버스 확장기(400)는 개별적인 소프트웨어를 요구 또는 사용하지도 않는다. 예컨대, 버스 확장기는 그 자체의 디바이스 드라이버를 요하지 않는다.
리모트 버스 인터페이스(412)는 리모트 디바이스로 전송된 신호의 소스 및 리모트 디바이스로부터 반송된 리턴 신호의 수신기를 나타낸다. 버스 신호를 원거리에 걸쳐 리모트 디바이스로 전송하고, 버스 터미네이터(420)의 로드 임피던스를 드라이브하기 위하여, 리모트 버스 인터페이스(412)는 저 임피던스 드라이버를 포함하는 것이 바람직하다. 각각의 저-임피던스 드라이버는 병렬로 접속된 FPGA의 몇몇 CMOS 게이트로 구성되는 것이 바람직하다. 최소 타이밍 스큐를 달성하기 위하여 저 임피던스 드라이버는 동일한 회로 토폴로지를 가지는 것이 바람직하다. CMOS게이트는 리모트 디바이스로부터 리턴 신호를 수신하여 버퍼링하기 위하여 FPGA내에 구비되는 것이 바람직하다. 인터커넥트(418)의 일정한 특성 임피던스를 유지하고, 리모트 디바이스 근처의 버스 터미네이터(420)로 버스를 종단함으로써, 버스 확장기(400)는 실질적인 링잉 또는 왜곡 없이도 신호를 수신 및 전송할 수 있다.
버스 확장기(400)는 또한 리모트 버스 인터페이스(412)에 연결된 전원 스위칭 회로(428)를 포함한다. 전원 스위칭 회로는 도 4 에 도시된 핫-스왑 단자(430)에 제공되는 디지털 "핫-스왑" 신호에 응답하여, 확장기(400)와 리모트 디바이스사이에서 전원을 선택적으로 차단 및 통전시킨다. 핫-스왑 신호는 두개의 분리된 상태, 즉 개방 및 폐쇄를 가진다. 개방 상태 동안에는, 전원 스위칭 회로는 리모트 디바이스로의 전원을 차단한다. 폐쇄 상태 동안에는, 전원 스위칭 회로는 버스 확장기(400)와 리모트 디바이스사이에서 전원을 자유로이 통전한다. 핫-스왑 단자(430)는 어떠한 적절한 디지털 소스, 예컨대 테스터 인터페이스에서의 디지털 비트 또는 수동 스위치로부터 구동될 수 있다. 리모트 버스 인터페이스(412)의 저-임피던스 드라이버는 또한 핫-스왑 신호의 작동에 응답하여 고-임피던스 상태를 취하는 것이 바람직하다. 전원 스위칭 회로와 저-임피던스 드라이버가 고 임피던스 상태를 취하는 능력은 버스(110)가 계속 작동하는 동안에 리모트 디바이스로 하여금 전원 다운되거나 안전하게 스와핑되도록 한다.
전원 스위칭 회로(428) 장치는 고-전류 스위칭 디바이스, 바람직하게는 FPGA 외부에 있는 고-전류 MOSFET를 포함한다. 저-임피던스 드라이버를 고-임피던스 상태로 구동하는 회로는 FPGA내에 상주하는 것이 바람직하다. 선택적으로는, 전원 스위칭 회로는 소정의 타이밍 시퀀스에 따라 리모트 디바이스로부터의 전원을 인가 및 제거하기 위하여 전원 시퀀스 회로를 구비할 수 있다.
도 5 는 블럭도 형식으로 버스 스누퍼 회로(414)를 도시한다. 버스 스누퍼 회로는 버스 트랜잭션을 디코딩하며, 적절한 액티비티를 수행한다. 버스 디코더(510)는 버스(110) 및 리모트 버스 인터페이스(412)에 접속되며, 버스와 리모트 디바이스사이에서 버스 트랜잭션을 조사한다. 트랜잭션이 리모트 디바이스로의 구성 쓰기 명령이면, 버스 디코더는 쓰기 명령의 콘텐츠를 리모트 상태 메모리(512)에 기억한다. 트랜잭션이 리모트 디바이스에 대한 구성 읽기 명령이면, 버스 디코더는 마스크 제너레이터(516)에 알려, 리모트 디바이스로부터 역으로 읽기된 데이터를 필요하다면 수정하기 위한 데이터 마스크를 생성하게 한다. 트랜잭션이 고속 응답을 요하는 것이면, 버스 디코더는 로컬 응답 제너레이터(514)에 알려, 적당한 고속 응답을 발생시키게 한다.
버스 스누퍼 회로(414)는 리모트 디바이스로 보내어진 구성 쓰기 명령의 콘텐츠를 리모트 상태 메모리(512)에 기억한다. 바람직한 실시예에서, 버스 스누퍼 회로(414)는 모든 쓰기 명령의 콘텐츠를 리모트 상태 메모리(512)에 기억하지 않는다. 오히려, 버스 스누퍼 회로는 단지 리모트 디바이스의 64 특정 "구성" 레지스터로 보내어진 타겟 쓰기 명령의 콘텐츠만을 기억한다. PCI 사양은 PCI 카드의 64 구성 레지스터를 한정한다. 이러한 레지스터의 다수는 PCI 버스가 작동하도록 하기 위하여 쓰기되어야만 한다. 알려진 바와 같이, PCI 버스 BIOS 는 PCI 버스 리셋이 일어날 때마다, 버스에 플러그인된 각 디바이스를 위한 64 구성 레지스터의 필요값을 쓰기한다.
시간이 경과함에 따라, 명백하게는 각 PCI 버스가 리셋되자마자, 리모트 상태 메모리(512)는 리모트 디바이스에 대한 모든 64 구성 레지스터의 로컬 레코드를 축적한다. 일단 획득되면, 구성 레지스터의 레코드는 리모트 디바이스에 복원될 수 있거나 또는 공지의 안정된 상태를 이루기 위하여 상이한 리모트 디바이스에 기억될 수 있다. PCI 버스의 어떠한 추가적인 리셋도 요구되지 않는다.
64 구성 레지스터와 다른 PCI 카드상의 레지스터(즉, 비-구성 레지스터)는 버스 작동을 분명히 하기 위해 필수적이지 않다. 유저에 의해 요구되는 바와 같이, 비-구성 레지스터의 콘텐츠는 64 구성 레지스터가 복원된 후, 종래의 타겟 쓰기 명령을 사용하여 리모트 디바이스에 복사될 수 있다. 대안적으로, 메모리는 리모트 디바이스에 쓰기된 모든 데이터를 기억하기 위하여 리모트 상태 메모리(512)에 추가될 수 있지만, 메모리는 추가적인 비용으로 제공될 것이다.
PCI 사양은 단일 PCI 카드상에 다중 논리 디바이스를 지원한다. 바람직한 실시예에 따라, 버스 스누퍼 회로(414)는 상이한 논리 디바이스를 구별하며, 다수 의 논리 디바이스를 지원하기에 충분한 메모리를 제공한다.
바람직한 실시예에서, 버스 확장기(400)는 리모트 상태 메모리(512)의 콘텐츠를 리모트 디바이스에 복사하기 위하여 상태 머신(도시되지 않음)을 채택한다. 상태 머신은 바람직하게는 핫-스왑 신호에 응답하여 작동하고 버스(110)와 관계없이 작동한다. 상태 머신은 또한 전원 스위칭 회로(428)를 제어하는 것이 바람직하다. 핫-스왑 신호가 개방일 때, 상태 머신은 리모트 디바이스로의 전원을 차단하기 위하여 전원 스위칭 회로(428)를 작동시킨다. 핫-스왑 신호가 개방 상태로부터 폐쇄 상태로 변하면, 상태 머신은 전원을 리모트 디바이스에 인가하고, 리모트 상태 메모리(512)의 콘텐츠를 리모트 디바이스의 구성 레지스터내로 방출한다.
상태 머신과 관련하여 전원 스위칭 회로(428)의 작동은 리모트 디바이스의 핫-스와핑을 가능하게 한다. 리모트 디바이스의 핫-스와핑이 버스(110)와 별개로 작동함에 따라, 본 발명은 핫-스와핑을 직접적으로 지원하지 않는 버스로 핫-스와핑 기능을 효과적으로 제공한다.
도 5 에 도시된 바와 같이, 버스 스누퍼 회로(414)는 또한 마스크 제너레이터 회로(516)를 포함한다. 마스크 제너레이터 회로(516)는 데이터 마스크를 발생시킴으로써 미리 정해진 일련의 타겟 읽기 명령에 응답하여 작동한다. 마스크 제너레이터(516)는 데이터 마스크를 홀드-오프 회로(416)로 통하게 하며, 홀드-오프 회로(416)는 리턴 신호를 요구된 바와 같이 수정하기 위하여 리모트 디바이스로부터 역으로 읽기된 리턴 신호에 마스크를 가한다.
"비-구성" 레지스터의 타겟 읽기 명령에 있어서, 데이터 마스크는 투명한데, 즉 변하지 않는 상태로 모든 데이터를 통과하도록 되어 있다. 데이터 마스크는 단지 어떠한 구성 레지스터의 타겟 읽기 명령에 대해서만, 작동가능, 즉, 투명하지 않다. 어떠한 구성 레지스터는 리모트 디바이스가 확장된 구성에서 사용될 때, 유효하지 않은 리모트 디바이스의 특성을 식별하는 데이터를 기억한다. 예컨대, PCI 디바이스는 구성 데이터를 기억하는데, 이는 PCI 디바이스가 특정한 트랜잭션에 응답하기 위하여 요구하는 다수의 클록 사이클을 지시한다. 버스 확장기(400)는 확장기 잠재력을 설명하기 위하여 클록 사이클의 상이한 수에서 응답할 수 있기 때문에, 클록 사이클의 그러한 수가 확장된 구성에서 유효하지 않을 수 있다. 이러한 상황하에서, 마스크 제너레이터(516)는 리모트 디바이스로부터 역으로 읽기된 데이터 비트 또는 무효 비트를 수정하기 위하여 사용되는 데이터 마스크를 생성한다. 또 다른 예로서, 구성 레지스터는 PCI 카드가 66MHz 통신을 지원하는지 여부를 지시한다. 버스 확장기(400)의 초기의 FPGA 장치는 66MHz 통신을 지원하지 않는다. 본 발명의 FPGA 실시예에서, 마스크 제너레이터(516)는 66MHz 작동이 시도되지 않았다는 것을 보증하기 위하여, 음의 응답을 강제하는 데이터 마스크를 생성한다.
도 5 에 도시된 버스 스누퍼 회로(414)는 또한 로컬 응답 제너레이터(514)를 포함한다. 버스 디코더(510)는 고속 응답을 요하는 트랜잭션을 식별하고, 로컬 응답 제너레이터(514)는 적당한 고속 응답을 생성한다. 로컬 응답 제너레이터는 확장된 구성이 버스 사양에서 설명되지 않은 잠재력을 추가하기 때문에 사용된다. 예컨대, PCI 버스 사양에 따라, PCI 이니시에이터가 어드레스를 PCI 타겟에 전송할 때, 버스 이니시에이터는 버스 타겟이 미리 정해진 시간 한계내에서 응답할 것을 기대한다. 버스 이니시에이터는 응답 고장을 PCI 디바이스가 어드레스 슬롯내에 설치되지 않은 것을 의미하는 것으로 해석한다.
확장된 구성에서, 리모트 버스 타겟은 일반적으로 허용가능 시간내에 응답할 수 없다. 본 발명에 따라, 리모트 디바이스가 버스 타겟으로 작동할 때, 로컬 응답 제너레이터(514)가 허용가능 시간내에 리모트 디바이스을 위한 버스 이니시에이터에 대한 응답을 발생한다. 로컬 응답 제너레이터의 응답은 하나 또는 그 이상의 대기 상태를 버스(110)상에 어서트(assert)하는 것을 포함할 수 있다. 유사하게, 리모트 디바이스가 버스 이니시에이터로 작동할 때, 로컬 응답 제너레이터의 응답은 PCI 사양에 의한 응답을 위해 허용된 시간내에 로컬 버스 타겟을 위한 하나 또는 그 이상의 대기 상태를 리모트 디바이스에 전송하는 것을 포함할 수 있다.
리모트 디바이스가 버스 이니시에이터로서 작동할 때, 로컬 응답 제너레이터(514)는 리모트 디바이스로부터 이니시에이터 읽기 또는 쓰기 명령을 기대하고 있는 리모트 디바이스에 연속적으로 대기 상태를 가한다. 버스 확장기(400)는 리모트 디바이스에 대기 상태를 어서트하는 것을 개시하기 전에, 리모트 디바이스로부터 이니시에이터 읽기 또는 쓰기 명령을 수신할 때까지 대기할 수 없는데, 이는 리모트 디바이스가 PCI 사양에 의해 허용된 응답시간내에 대기 상태를 수신할 수 없기 때문이다. 따라서, 리모트 디바이스가 버스 이니시에이터로서 작동할 때, 로컬 응답 제너레이터(514)는 디폴트로서 대기 상태를 리모트 디바이스에 어서트하고, 이니시에이터 트랜잭션이 완료되자마자 대기 상태를 어서트하는 것을 멈추게하는 것이 바람직하다.
버스 행업을 피하기 위하여, 로컬 응답 제너레이터(514)는 워치도그 타이머(도시되지 않음)를 포함하는 것이 바람직하다. 리모트 디바이스가 플러그인되지 않았거나 비-기능적이면, 워치도그 타이머는 대기 상태의 발생을 종료하고, 정상 버스 작동이 재개되도록 허용한다. 워치도그 타이머의 타임-아웃은 모든 기대되고 정상적인 지연을 수용하기 위하여 큰 값으로 설정하는 것이 바람직하다. 버스 확장기가 버스 타겟으로부터 대기 상태를 수신하면, 버스 확장기는 버스 확장기가 대기 상태를 수신하는 것을 멈추게 할 때까지 워치도그 타이머를 디스에이블하며, 그 시간 후에 워치도그 타이머는 카운트를 시작한다.
버스 확장기(400)는 또한 홀드-오프 회로(416)를 포함한다. 홀드-오프 회로는 리모트 버스 인터페이스(412)로부터 리턴 신호를 수신하고, 그 리턴 신호를 버스(110)에 릴리스하기전에 소정의 시간 간격을 대기한다.
도 6 및 7 은 블럭도 형태로 홀드-오프 회로(416)를 도시한다. 도 6 에 도시된 바와 같이, 홀드-오프 회로는 마스크 회로(616), 지연 회로(610), 및 지연 결정 회로(612)를 포함한다. 마스크 회로(616)는 리모트 버스 인터페이스(412)로부터 리턴 신호를 수신하고, 그 리턴 신호를 요청된 바와 같이 수정하기 위하여 마스크 제너레이터(516)에 의해 생성된 데이터 마스크를 가한다. 지연 회로(610)는 마스크 회로(616)로부터 리턴 신호를 수신하고, 지연 회로(610)가 스트로브 신호(614)를 수신할 때까지 버스(110)로의 통과를 차단한다.
도 7 에 도시된 바와 같이, 지연 결정 회로(612)는 신호 샘플러(710), 지연 레지스터(712), 및 스트로브 회로(714)를 포함한다. 신호 샘플러는 버스 확장기(400)와 리모트 디바이스사이에서 라운드-트립(round-trip) 지연과 관련된 홀드-오프 간격을 결정한다. 홀드-오프 간격은 버스 확장기(400)로부터 리모트 디바이스까지의 버스 신호의 지연 시간, 리모트 디바이스의 응답 시간, 및 리모트 디바이스로부터 리턴하는 리턴 신호의 세틀링 시간을 포함하는 것이 바람직하다. 지연 레지스터(712)는 홀드-오프 간격의 값을 기억한다. 버스 확장기(400)는 명령을 리모트 디바이스로 전송할 때, 스트로브 회로(714)는 그 명령이 전송된 경과 시간과 홀드-오프 간격을 비교한다. 두개의 값이 일치할 때, 스트로브 회로(714)는 스트로브 신호(614)를 활성화하고, 지연 회로(610)는 버스 사이클에서 그 다음의 적당한 점에서 그 리턴 신호를 버스로 릴리스한다.
신호 샘플러(710)는 바람직하게는 타겟 읽기 명령을 리모트 디바이스에 시뮬레이션함으로써 홀드-오프 간격을 결정한다. 신호 샘플러는 타겟 읽기 명령의 발생과 리턴 신호가 세틀되는 시간사이의 시간 간격을 측정한다. PCI 사양은 제조자의 ID를 기억하기 위하여 PCI 카드상에 특정 어드레스 및 이 어드레스의 타겟 읽기에 대한 응답 시간을 지정한다. 바람직하게는, 신호 샘플러는 제조자의 ID의 타겟 읽기를 시뮬레이션한다.
신호 샘플러(710)는 리턴 신호를 모니터한다. 리턴 신호는 도달하여 세틀링되기전에 전부 "1"을 나타낸다. 응답이 전부 "1"이 아닌 다른 어떤 것을 나타내고, 연속적인 측정을 위해 동일한 읽기를 제공할 때, 그 리턴 신호는 세틀링된 것이다. 신호 샘플러는 경과 시간에 대응하는 값을 지연 레지스터(712)에 기억한다. 리모트 디바이스의 응답 시간이 공지되어 있는 바와 같이(ID 레지스터의 타겟 읽기를 위해 정의된 바와 같이), 라운드-트립 지연은 리모트 디바이스의 응답 시간에 관계없이 결정될 수 있다.
또 다른 대안에 따라, 신호 샘플러(710)는 실제(시뮬레이션된 것이 아닌) 타겟 읽기 명령에 응답하여 작동하고, 각각의 명령에 대한 새로운 홀드-오프 간격을 생성한다.
신호 샘플러(710)는 상태 머신(도시되어 있지 않음)의 관리하에서, 버스 확장기(400)의 제1 사용에서 최적의 홀드-오프 간격을 자동으로 결정하는 것이 바람직하다. 대안적으로, 신호 샘플러(710)는 외부 명령의 발생에 의해 작동한다. 동일한 홀드-오프 간격이 그 신호 샘플러가 다시 작동 명령을 수신할 때까지 후속하는 통신을 위해 반복하여 사용된다.
또 다른 대안에 따라, 본 발명은 신호 샘플러를 제공하지 않으며, 지연 레지스터(712)의 값은 시스템의 초기의 셋업동안에 설정된다. 지연 레지스터(712)의 값은 수동 측정 또는 버스 확장기(400)와 리모트 디바이스사이의 라운드-트립 지연의 추정에 근거한다. 지연 레지스터의 값은 영속적으로 설정되거나 또는 시간의 경과에 따라 변할 수 있다. 실험은 두개의 33MHz 버스 사이클(60 나노초)의 고정 지연이 10 피트의 길이를 가지는 인터커넥트를 수용하기에 충분하다는 것을 보여준다.
바람직하게는, 신호 샘플러(710)는 버스 주파수의 배수, 예컨대 두배의 버스 주파수에서 리턴 신호를 샘플링함으로써 홀드-오프 간격을 측정한다. 신호 샘플러의 샘플링 레이트가 더 증가하면 증가할수록, 홀드-오프 간격의 정확도는 더 증가 하며 홀드-오프 간격이 과장될 가능성은 줄어든다. 대안적으로, 신호 샘플러(710)는 버스 주파수와 동등하거나 더 느린 샘플링 레이트에서 작동한다.
리턴 신호가 안정화되는 시기를 결정하는 다른 방법이 홀드-오프 회로에 의해 성공적인 결과로 사용될 수 있다는 것이 인지되고 있다. 예컨대, 홀드-오프 회로는 버스 확장기(400)와 인터커넥트(418)를 포함하는 루프에서 오실레이션을 제공하기 위하여 링 오실레이터를 채용할 수 있다. 오실레이션의 주파수는 라운드-트립 지연에 비례한다. 또 다른 예로서, 버스 확장기(400)는 버스 확장기(400)와 인터커넥트(418)의 먼 말단사이에서의 신호 전송 시간을 측정하기 위한 타임-도메인 리플렉토미터(time-domain reflectometer)(TDR) 회로를 구비할 수 있다.
도 8a 및 8b 는 리모트 디바이스가 버스 타겟(슬레이브)으로 작동할 때, 상기 기술된 버스 확장기(400)에 의해 수행되는 액티비티를 기술하는 순서도이다. 도 8a 는 타겟 읽기 명령에 응답하는 버스 확장기 액티비티를 도시한다. 도 8b 는 타겟 쓰기 명령에 응답하는 버스 확장기 액티비티를 도시한다.
도 8a 에서, 버스 확장기(400)는 버스 이니시에이터로부터 버스(110)상으로 타겟 읽기 명령을 수신하고, 버스 스누퍼 회로(414)는 타겟 읽기 명령을 디코딩한다. 단계(810)에서, 로컬 응답 제너레이터(514)는 리모트 버스 타겟을 위하여 버스 이니시에이터에 의해 지정된 타겟 어드레스가 유효하다는 확인을 생성한다. 로컬 응답 제너레이터(514)는 또한 버스(110)에 대기 상태를 어서트한다.
단계(812)에서, 마스크 제너레이터(516)는 데이터 마스크를 생성한다. 데이터 마스크의 값은 지정된 타겟 어드레스에 특이한 것이다. 데이터 마스크는 리모 트 디바이스로부터 역으로 읽기된 구성 데이터 비트를 수정하기 위하여 선택적으로 배열되며, 그러한 비트는 확장된 구성에서 적합하지 않는 통신 특성을 인코딩한다. 데이터 마스크는 확장된 구성에 적합하지 않는 구성 레지스터이외의 모든 타겟 읽기 어드레스의 콘텐츠에 대하여 투명하다. 바람직하게는, 마스크 제너레이터(516)는 마스크를 요하는 타겟 어드레스를 위하여 마스크 값을 기억하는 로컬 메모리(도시되지 않음)를 포함한다.
단계(814)에서, 버스 확장기(400)는 버스 신호를 리모트 디바이스에 전송하며, 단계(816)에서, 버스 확장기(400)는 홀드-오프 간격을 카운트 다운하기 시작한다. 단계(818)에서, 리턴 신호가 리모트 디바이스로부터 버스 확장기(400)에 도달하고, 버스 확장기는 단계(812)에서 생성된 읽기 마스크를 인가한다. 단계(820)에서, 홀드-오프 간격이 경과하고, 버스 확장기(400)는 버스 사이클의 적당한 위상에서 리턴 신호를 버스(120)에 릴리스한다. 로컬 응답 제너레이터(514)는 홀드-오프 간격이 경과할 때, 추가적인 대기 상태가 요청되지 않으면, 버스(110)로부터의 대기 상태를 디-어서트(de-assert)한다. 리모트 디바이스가 홀드-오프 간격의 만료를 경과하여 추가적인 대기 상태를 요청하면, 로컬 응답 제너레이터(514)는 추가적인 대기 상태를 버스(110)에 부가한다.
연속적으로 일어나는 단계(810 내지 816)가 도 8a 에 도시되어 있다. 그러나, 이러한 단계의 순서는 바뀔 수 있음을 인지할 수 있다. 예컨대, 단계(812)에서 생성된 데이터 마스크는 리턴 신호가 버스 확장기(400)에 도달할 때까지 준비완료될 필요없다. 단계(810 내지 816)는 동시에 일어나는 것이 바람직하다.
도 8b 는 타겟 쓰기 명령에 응답하는 버스 확장기 액티비티를 도시한다. 버스 확장기(400)는 버스 이니시에이터로부터 버스(110)상으로 타겟 쓰기 명령을 수신하고, 버스 스누퍼 회로(414)는 타겟 쓰기 명령을 디코딩한다. 단계(830)에서, 로컬 응답 제너레이터(514)는 응답을 위한 허용가능 시간 한계내에서, 버스(110)상에 대기 상태를 어서트한다.
단계(832)에서, 버스 확장기(400)는 홀드-오프 간격을 카운트 다운 시작한다. 타겟 쓰기 명령이 구성 쓰기, 즉 64 "구성" 레지스터중의 하나로의 쓰기이면, 버스 확장기(400)는 단계(834)에서 구성 데이터의 로컬 카피를 기억한다. 리모트 디바이스가 다중 논리 디바이스를 포함하면, 기억 단계(834)는 특별하게 어드레스 지정된 논리 디바이스를 위한 구성 데이터를 기억하는 단계를 포함한다.
단계(836)에서, 버스 확장기(400)는 버스 신호를 리모트 디바이스로 전송한다. "구성" 쓰기 명령 뿐만 아니라 "비-구성" 쓰기 명령도 전송된다. 홀드-오프 간격이 경과할 때, 추가적인 대기 상태가 요청되지 않으면, 로컬 응답 제너레이터(514)는 버스(110)로부터의 대기 상태를 디-어서트한다. 리모트 디바이스가 홀드-오프 간격의 만료이후에 추가적인 대기 상태를 요청하면, 로컬 응답 제너레이터(514)는 그 요청된 대기 상태를 버스(110)에 부가한다.
도 8b 는 차례로 단계(830, 832, 834, 및 836)를 도시한다. 그러나, 이러한 단계는 어떠한 특정한 순서로 일어날 필요가 없다. 단계(830 및 832)는 버스(110)를 "스누핑"하는 부분이며, 어떠한 순서로도 일어날 수 있으며, 또는 동시에 일어날 수도 있다. 유사하게, 스누핑 단계(832 및 834) 및 신호를 리모트 디바이스(836)에 전송하는 단계는 어떠한 순서로도 또는 동시에 일어날 수 있다.
도 8c 및 8d 는 리모트 디바이스가 버스 이니시에이터(마스터)로서 작동할 때, 상술한 버스 확장기(400)에 의해 수행되는 액티비티를 기술하는 순서도이다. 도 8c 는 리모트 디바이스에 의해 생성된 이니시에이터 읽기 명령에 응답하는 액티비티를 도시한다. 도 8d 는 리모트 디바이스에 의해 생성된 이니시에이터 쓰기 명령에 응답하는 액티비티를 도시한다.
도 8c 에 도시된 바와 같이, 버스 확장기(400)는 단계(850)에서 리모트 디바이스에 대기 상태를 미리 어서트한다. 도 8a 의 타겟 읽기 경우와 다르게, 버스 확장기(400)는 버스 이니시에이터에 대해 국부적이며(즉, 버스 확장기와 버스 이니시에이터는 동일한 버스(110)에 플러그인 된다), 버스 이니시에이터에 "국부적"인 어떠한 디바이스도 없다. 버스 이니시에이터는 리모트 디바이스이며, 일반적으로 그것은 PCI 사양에 의해 설정된 허용가능 응답시간내에 버스 타겟으로부터 응답을 수신할 수 없다. 따라서, 버스 확장기가 리모트 카드가 버스 이니시에이터로서 작동하고 있다는 것을 검출할 때마다, 로컬 응답 제너레이터(514)가 디폴트에 의해 연속적으로 리모트 디바이스에 대기 상태를 어서트하는 것이 바람직하다. 버스 확장기는 버스 타겟으로부터 실제 응답을 수신하면 이니시에이터 읽기에 응답하여 대기 상태를 단지 디-어서트한다.
버스 확장기(400)는 리모트 디바이스로부터 이니시에이터 액티비티를 검출하기 위하여 리턴 신호를 계속 모니터한다. 단계(852)에서, 버스 확장기는 리턴 신호에서의 변화를 검출한다. 에러를 피하기 위하여, 버스 확장기는 리턴 신호를 버스(110)에 릴리스하기전에, 리턴 신호가 세틀링되는데 충분한 소정의 시간 간격을 대기한다. 일 실시예에서, 이러한 시간 간격은 상술한 홀드-오프 간격이며, 버스 확장기는 단계(854)에서 홀드-오프 간격을 카운트하기 시작한다. 그러나, 홀드-오프 간격은 모든 라운드-트립 지연을 포함하여, 필요한 것보다 더 길다. 대안적으로, 버스 확장기는 홀드-오프 간격보다 더 짧지만 그 리턴 신호가 세틀링되는데에 충분히 긴 시간 주기를 대기한다. 소정의 시간 간격이 경과한 후에, 버스 확장기(400)는 버스 사이클의 다음의 적당한 점에서, 그 리턴 신호를 버스(110)에 릴리스한다(단계 856).
단계(856)에서 릴리스된 리턴 신호는 리모트 디바이스로부터 이니시에이터 읽기 명령을 인코딩한다. 일단 어서트되면, 버스 확장기(400)는 버스 타겟으로부터의 응답을 기다린다. 버스 확장기가 버스 타겟으로부터 데이터(값)을 수신하면, 버스 확장기는 대기 상태를 디-어서트하고(단계 858) 그 읽기 명령의 결과를 리모트 디바이스에 전송한다.(단계 860) 버스 확장기(400)가 버스 타겟으로부터 하나 또는 그 이상의 대기 상태를 수신하면, 버스 확장기는 버스 타겟으로부터 대기 상태를 수신하는 것을 멈출때까지 리모트 디바이스에 대기 상태를 계속하여 어서트한다. 버스 확장기(400)는 데이터가 도달할 때 그 데이터를 리모트 디바이스에 전송한다.
도 8d 는 리모트 디바이스로부터의 이니시에이터 쓰기 명령에 응답하는 버스 확장기 액티비티를 도시한다. 상술한 바와 같이, 버스 확장기는 리모트 디바이스가 버스 이니시에이터로서 작동하고 있다는 것을 검출할 때마다, 리모트 디바이스 에 대기 상태를 연속적으로 어서트한다.(단계 870) 버스 확장기(400)는 리모트 디바이스로부터의 이니시에이터 읽기 또는 쓰기 명령을 검출하기 위하여 리턴 신호를 연속적으로 모니터한다. 단계(872)에서, 버스 확장기는 리턴 신호에서의 변화를 검출한다. 버스 확장기는 리턴 신호를 버스(110)에 릴리스하기전에, 리턴 신호가 세틀링되기 위한 소정의 시간 간격을 대기한다. 일 실시예에서, 이러한 시간 간격은 상술한 홀드-오프 간격이며, 버스 확장기는 단계(874)에서 홀드-오프 간격을 카운트하기 시작한다. 대안적으로, 버스 확장기는 홀드-오프 간격보다 짧지만 그 리턴 신호가 세틀링되는데 충분히 긴 시간 주기를 대기한다. 소정의 시간 간격이 경과한 후에, 버스 확장기(400)는 버스 사이클에서 그 다음의 적당한 점에서 그 리턴 신호를 버스(110)에 릴리스한다.(단계 876)
리턴 신호는 리모트 디바이스로부터의 이니시에이터 쓰기 명령을 인코딩한다. 버스 타겟이 쓰기 명령에 응답하여 대기 상태를 생성하지 않으면, 로컬 응답 제너레이터(514)는 단계(878)에서 리모트 디바이스에 대한 대기 상태를 디-어서트한다. 버스 타겟이 대기 상태를 어서트하면, 로컬 응답 제너레이터(514)는 리모트 디바이스에 대한 대기 상태를 디-어서트하기전에 타겟이 대기 상태를 디-어서트하는 것을 대기한다.
도 9 는 본 발명에 따라 버스 확장기(400)를 채택한 리모트 UUT를 테스트하기 위한 테스트 시스템(900)을 도시한다. 도 10 은 도 9 의 테스트 시스템을 사용하여 리모트 UUT를 테스트하는 프로세스를 도시한다. 버스 확장기(400)는 UUT에서 일어나는 고장이 버스(120)에 전파되는 것을 방지하여, 테스트 시스템(900)의 고장 격리를 촉진시킨다.
도 9 에 도시된 바와 같이, 버스 확장기(400)는 버스(110)에 플러그인된다. 인터커넥트(418)는 버스 확장기(400)에 접속되며, 리모트 UUT(918)까지 연장된다. 추가적인 버스 디바이스(912)가 또한 버스(110)에 플러그인될 수 있다. 선택적으로, 테스트 시스템은 선택적인 제어 라인(426)을 경유하여 버스 확장기(400)에 접속되는 ATE 제어기(920)을 포함한다.
테스트 시스템(900)은 도 10a 의 단계(1010)에 도시된 바와 같이 제1 UUT를 작동시킨다. 제1 UUT가 작동함에 따라, 버스 확장기(400)는 제1 UUT에 쓰기된 데이터를 "스누핑"하며, 그 스누핑된 구성 데이터를 로컬 메모리에 기억한다( 단계1012). 테스트 시스템이 제1 UUT를 작동시킬 때, 고장이 발생할 수 있다. 버스 확장기(400)는 고장을 추적하고, 고장이 버스(110)로 전파되는 것을 허용하지 않는다. 하나의 선택적인 실시예에 따라, 버스 확장기(400)는 제어 라인(426)을 경유하여 ATE 제어기(920)에 고장을 통보한다. 또 다른 선택적인 실시예에 따라, 버스 확장기(400)는 버스(110)를 경유하여 직접적으로 버스(110)가 설치된 호스트 컴퓨터에 고장을 통보한다. 단계(1018)에서, 전원 스위칭 회로(428)를 작동시킴으로써 전원이 제1 UUT로부터 제거된다. 상술한 바와 같이, 전원 스위칭 회로는 유저 또는 테스트 프로그램이 핫-스왑 단자(430)에 개방 레벨을 인가할 때 작동하는 것이 바람직하다. 핫-스왑 단자(430)에서의 핫-스왑 신호의 작동은 또한 버스 확장기(400)내의 저-임피던스 드라이버를 고-임피던스 상태로 만든다. 단계(1018)는 소정의 타이밍 순서에 따라 제1 UUT로의 전원을 선택적으로 차단할 수 있다.
단계(1020)(도 10b)에서, 제1 UUT(918)는 제1 UUT와 같은 타입의 제2 UUT로 대체된다. 유저가 UUT를 수동으로 교환할 수 있으며, 또는 테스터 인터페이스 근처의 특별 조작 장치가 UUT를 자동으로 교환할 수 있다. 단계(1022)에서, 버스 확장기는 제2 UUT에 전원을 인가하고, 바람직하게는 핫-스왑 신호의 동작에 응답하여 인가한다. 선택적으로, 단계(1022)는 소정의 타이밍 순서에 따라 제2 UUT에 전원을 인가한다. 일단 전원이 제2 UUT에 인가되면, 버스 확장기는 단계(1024)에서 로컬 메모리의 콘텐츠를 제2 UUT로 복사한다. 제1 및 제2 UUT가 동일한 타입이기때문에, 제1 UUT를 위해 로컬 메모리에 기억된 구성 데이터는 제2 UUT를 위해 유효하다. 단계(1026)에서, 테스트 시스템은 버스 확장기(400)를 통하여 제2 UUT를 작동시킨다. 따라서, 버스 확장기(400)는 버스(110)를 파워 사이클(power cycle) 또는 리셋하지 않고도, 제1 및 제2 UUT가 파워 사이클 및 교환되도록 허용한다.
도 10c 는 테스트 시스템(900)이 제1 UUT에서의 고장을 어떻게 복구하는지를 도시한다. 단계(1032)에서, 버스 확장기는 단계(1034)에서 로컬 메모리에 기억된 구성 데이터를 제1 UUT에 복사함으로써, 제1 UUT의 구성 레지스터를 복원하게 된다. 테스트 시스템(900)은 단계(1036)에서 테스트 작동을 재개한다. 버스(110)의 어떠한 파워 사이클 또는 리셋도 요구되지 않는다.
일 실시예를 기술한 후, 수많은 대안적인 실시예 또는 변경이 가해졌다. 예컨대, 버스 확장기(400)는 직접 버스내에 내장될 수 있으며, 버스 카드로서 구현될 필요없다. 바람직한 실시예는 PCI 버스에 관한 것이지만, 본 발명에 따른 버스 확장기는 어떠한 동기 버스, 예컨대 Cardbus 또는 AGP상에 구현될 수 있다.
매우 많은 버스 확장기가 무수한 버스 카드를 리모트 위치까지 동시에 확장하기 위하여 단일 버스상에 구비될 수 있다. 버스 확장기(400)는 다양한 애플리케이션에서 사용될 수 있다. 엔지니어 및 기술자는 실제적인 사용에서 버스 카드를 자주 관찰할 필요가 있다. 버스 길이에 대한 엄격한 제한은 "확장기 카드", 즉 버스 카드의 전면 및 후면으로의 액세스를 제공하기 위하여 버스 신호를 버스의 플레인으로부터 통하게 하는 카드를 금한다. 버스 확장기(400)는 버스 타이밍 조건을 어기지 않으면서, 버스 카드를 종래의 디버깅 위치까지 확장하기 위하여 이러한 상황에서 사용될 수 있다. 본 발명은 또한 컴퓨터 매장에서 유용할 수 있는데, 거기에서 본 발명은 상이한 버스 카드의 작동을 증명하기 위하여 사용될 수 있다. 본 발명은 일단 새로운 카드가 정위치게 있다면 매장 직원이 컴퓨터의 덮개를 제거하고, 컴퓨터를 파워다운하고, 컴퓨터를 재부팅할 필요 없이도, 버스 카드가 소비자 비교를 위하여 쉽게 스와핑되는 것을 허용한다.
따라서, 첨부된 청구항의 기술적 사상 및 범위를 벗어나지 않으면서, 여기에서 기술된 바람직한 실시예에 추가, 삭제, 변경이 가해질 수 있다는 것을 당해 기술분야의 당업자라면 이해할 것이다.

Claims (22)

  1. 동기 버스와 물리적으로 맞물리는 확장기 디바이스를 사용하여 동기 버스를 확장하는 방법에 있어서, 상기 확장기 디바이스가,
    상기 동기 버스로부터 복수의 버스 신호를 수신하고, 임의의 긴 길이를 가지는 인터커넥트를 경유하여 상기 복수의 버스 신호를 리모트 디바이스로 전송하는 단계;
    상기 리모트 디바이스로부터 상기 인터커넥트를 통하여 상기 인터커넥트의 길이에 관련하여 변하는 세틀링 시간을 가지는 리턴 신호를 수신하는 단계;
    홀드-오프 간격을 적어도 상기 리턴 신호의 세틀링 시간만큼 길게 설정하는 단계; 및
    상기 인터커넥트의 길이에 무관하게, 수신된 상기 리턴 신호가 상기 동기 버스에 인가되기전에 세틀링된다는 것을 보증하도록, 상기 홀드-오프 간격이 경과한 후, 수신된 상기 리턴 신호를 상기 동기 버스로 인가하는 단계;를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 홀드-오프 간격을 설정하는 단계는, 상기 확장기 디바이스가,
    리턴 신호를 발생하기 위하여 상기 리모트 디바이스를 기동시키는 단계; 및
    상기 리턴 신호가 세틀링될 때까지 샘플 클록의 수를 카운트하는 단계;를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 리턴 신호를 발생하기 위하여 상기 리모트 디바이스를 기동시키는 단계는 읽기 명령을 상기 리모트 디바이스에 발생시키는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 홀드-오프 간격을 설정하는 단계는 상기 홀드-오프 간격을 인터커넥트 길이의 범위를 수용하기에 충분히 긴 표준 간격으로 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 방법은 상기 확장기 디바이스가,
    상기 리모트 디바이스와의 트랜잭션을 검출하기 위하여 상기 동기 버스를 모니터하는 단계; 및
    상기 리모트 디바이스와의 상기 트랜잭션을 기억하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서, 상기 모니터하는 단계에서 검출된 상기 트랜잭션은 상기 리모트 디바이스로의 쓰기 명령이며, 상기 트랜잭션을 기억하는 단계는 상기 리모트 디바이스의 구성을 나타내는 레코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 리모트 디바이스는 제1 리모트 디바이스이며, 상기 리모트 디바이스의 구성을 나타내는 상기 레코드를, 제1 리모트 디바이스 및 제2 리모트 디바이스중의 하나를 작동을 위하여 미리 조정하기 위해, 상기 제1 리모트 디바이스 및 제2 리모트 디바이스중의 하나에 복원하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 5 항에 있어서, 상기 동기 버스를 모니터하는 단계는 고속 응답이 요구되는 동기 버스의 조건을 검출하는 단계, 및 상기 리모트 디바이스를 위한 상기 조건을 충족하기 위하여 고속 응답을 인가하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서, 상기 리모트 디바이스에 전원을 제어가능하게 인가 및 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 동기 버스와 물리적으로 맞물리는 확장기 디바이스를 사용하여 상기 동기 버스를 확장하는 방법에 있어서, 상기 방법은 상기 확장기 디바이스가,
    리모트 디바이스의 구성을 인코딩하는 콘텐츠를 포함하는, 상기 리모트 디바이스와의 트랜잭션을 검출하기 위하여 상기 동기 버스를 모니터하는 단계; 및
    상기 리모트 디바이스의 구성의 로컬 카피를 유지하기 위하여, 상기 리모트 디바이스와의 상기 트랜잭션의 콘텐츠를 기억하는 단계;를 포함하는 것을 특징으로 하는 방법.
  11. 제 10 항에 있어서, 상기 동기 버스를 모니터하는 단계는
    고속 응답이 요구되는 상기 동기 버스의 조건을 검출하는 단계; 및
    상기 리모트 디바이스를 위한 상기 조건을 충족하기 위하여 응답을 인가하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  12. 제 10 항에 있어서, 상기 리모트 디바이스는 제1 리모트 디바이스이며, 상기 리모트 디바이스의 구성의 로컬 카피를 제1 리모트 디바이스 및 제2 리모트 디바이스중의 하나에 복원하여, 상기 제1 리모트 디바이스 및 제2 리모트 디바이스중의 하나를 작동을 위하여 미리 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 동기 버스 카드인 UUT를 테스트하는 방법에 있어서, 상기 방법은
    제1 UUT에 대한 구성 데이터의 레코드를 생성하는 단계;
    제2 UUT가 설치된 후에 일정한 시간까지 상기 동기 버스와 상기 제1 UUT사이의 전원의 흐름을 차단하는 단계; 및
    UUT가 상기 동기 버스가 작동하는 동안에 안전하게 교환되는 것을 허용하도록, 상기 제2 UUT를 테스트하는 것을 진행하기전에 상기 제1 UUT에 대한 구성 데이터의 레코드를 상기 제2 UUT에 복사하는 단계;를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서, UUT상의 고장을 검출하는 단계 및, 상기 고장이 발생했다는 것을 ATE 제어기에 통보하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서, 상기 통보하는 단계는 상기 동기 버스를 경유하여 상기 고장을 상기 ATE 제어기에 전하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제 14 항에 있어서, 상기 통보하는 단계는 상기 동기 버스와 물리적으로 별개인 채널을 경유하여 상기 고장을 상기 ATE 제어기에 전하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 동기 버스 카드의 테스트를 용이하게 하기 위하여 동기 버스를 확장하는 버스 확장기에 있어서, 상기 버스 확장기는
    상기 동기 버스에 연결된 확장기 디바이스; 및
    상기 확장기 디바이스에 연결되고, UUT와 맞물리기 위하여 배열된 커넥터까지 길게 연장되는 인터커넥트;를 포함하고,
    상기 확장기 디바이스는 상기 인터커넥트 및 상기 동기 버스에 연결된 홀드-오프 회로를 포함하고,
    상기 홀드-오프 회로는
    상기 인터커넥트의 길이에 근거하여 홀드-오프 간격을 기억하는 지연 레지스터; 및
    상기 홀드-오프 간격이 경과할때까지 상기 UUT로부터 도달한 리턴 신호가 상기 동기 버스상에 어서트되는 것을 방지하는 지연 회로;를 포함하는 것을 특징으로 하는 버스 확장기.
  18. 제 17 항에 있어서, 상기 홀드-오프 회로는 지연 결정 회로를 포함하고,
    상기 지연 결정 회로는
    상기 인터커넥트에 연결되고, 상기 리턴 신호가 세틀링하는데 요구되는 샘플 클록의 수를 결정하기 위해 상기 리턴 신호를 샘플링하고, 상기 결과를 상기 지연 레지스터에 기억하는 신호 샘플러; 및
    상기 지연 레지스터 및 상기 지연 회로에 연결되고, 상기 지연 레지스터에 기억된 샘플 클록의 수가 경과할 때까지 대기하고 상기 리턴 신호를 상기 동기 버스에 릴리스하기 위하여 상기 지연 회로를 기동시키는 스트로브 회로;를 포함하는 것을 특징으로 하는 버스 확장기.
  19. 제 17 항에 있어서, 상기 확장기 디바이스는 버스 스누퍼 회로를 더 포함하고,
    상기 버스 스누퍼 회로는
    상기 동기 버스에 연결되고, 상기 UUT와의 트랜잭션을 검출하는 버스 디코더; 및
    상기 버스 디코더 및 리모트 버스 인터페이스에 연결되고, 상기 UUT와의 상기 트랜잭션을 기억하는 리모트 상태 메모리;를 포함하는 것을 특징으로 하는 버스 확장기.
  20. 제 17 항에 있어서, 상기 버스 디코더에 의해 검출된 상기 트랜잭션은 상기 UUT로의 쓰기 명령이며, 상기 리모트 상태 메모리는 상기 UUT의 상태를 나타내는 레코드를 기억하는 것을 특징으로 하는 버스 확장기.
  21. 제 20 항에 있어서, 상기 UUT는 제1 UUT이며, 상기 확장기 디바이스는 작동을 위해 제2 UUT를 미리 조정하기 위하여, 상기 제1 UUT에 대한 레코드를 제2 UUT에 복사하도록 구성 및 배열된 것을 특징으로 하는 버스 확장기.
  22. 제 19 항에 있어서, 상기 동기 버스에 연결되고, 고속 응답이 요구되는 상기 동기 버스의 조건을 검출하고 상기 조건을 충족하기 위하여 고속 응답을 인가하는 로컬 응답 제너레이터를 더 포함하는 것을 특징으로 하는 버스 확장기.
KR1020027000585A 1999-07-15 2000-07-10 고유 버스 프로토콜을 사용하여 동기 버스를 임의의길이만큼 확장하는 방법 및 시스템 KR100684130B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/354,137 US6507920B1 (en) 1999-07-15 1999-07-15 Extending synchronous busses by arbitrary lengths using native bus protocol
US09/354,137 1999-07-15

Publications (2)

Publication Number Publication Date
KR20020015375A KR20020015375A (ko) 2002-02-27
KR100684130B1 true KR100684130B1 (ko) 2007-02-16

Family

ID=23392018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000585A KR100684130B1 (ko) 1999-07-15 2000-07-10 고유 버스 프로토콜을 사용하여 동기 버스를 임의의길이만큼 확장하는 방법 및 시스템

Country Status (10)

Country Link
US (1) US6507920B1 (ko)
EP (1) EP1200895B1 (ko)
JP (1) JP4272833B2 (ko)
KR (1) KR100684130B1 (ko)
AU (1) AU775255B2 (ko)
CA (1) CA2379694C (ko)
DE (1) DE60005528T2 (ko)
HK (1) HK1044386A1 (ko)
IL (1) IL147616A0 (ko)
WO (1) WO2001006369A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769035B1 (en) * 2000-04-07 2004-07-27 Infineon Technologies North America Corp. Same single board computer system operable as a system master and a bus target
JP2006330945A (ja) * 2005-05-25 2006-12-07 Matsushita Electric Ind Co Ltd デバイスの遠隔監視・修復システム
US8745337B2 (en) * 2007-12-31 2014-06-03 Teradyne, Inc. Apparatus and method for controlling memory overrun
KR101520055B1 (ko) * 2013-07-31 2015-05-19 에스케이하이닉스 주식회사 프로그래머블 로직을 이용한 메모리 테스트 왕복 시간 계산 장치
TWI525451B (zh) * 2014-07-21 2016-03-11 緯創資通股份有限公司 儲存系統及其資料傳輸方法
KR102392844B1 (ko) 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
US11169203B1 (en) 2018-09-26 2021-11-09 Teradyne, Inc. Determining a configuration of a test system
US11461222B2 (en) 2020-04-16 2022-10-04 Teradyne, Inc. Determining the complexity of a test program
KR102563047B1 (ko) * 2021-09-14 2023-08-04 테크위드유 주식회사 효율적 채널 제어를 지원하는 프로브카드 용 pmic와 신호용 스위치 ic

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0772134A1 (en) * 1995-11-02 1997-05-07 International Business Machines Corporation Adapter card slot isolation for hot plugging

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US772134A (en) 1899-12-27 1904-10-11 Everett D Chadwick Dry-pipe valve.
US2187315A (en) 1938-11-23 1940-01-16 Gerald G Greulich Bearing pile construction
US4718064A (en) * 1986-02-28 1988-01-05 Western Digital Corporation Automatic test system
JPH0624846A (ja) 1992-07-08 1994-02-01 Sumitomo Electric Ind Ltd 炭素繊維強化炭素複合材料の製造方法
JP3608804B2 (ja) * 1993-05-14 2005-01-12 株式会社ソニー・コンピュータエンタテインメント バス制御装置
US5507029A (en) * 1995-01-11 1996-04-09 International Business Machines Corporation Method for minimizing the time skew of electrical signals in very large scale integrated circuits
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US5793987A (en) * 1996-04-18 1998-08-11 Cisco Systems, Inc. Hot plug port adapter with separate PCI local bus and auxiliary bus
US5857083A (en) 1996-06-07 1999-01-05 Yamaha Corporation Bus interfacing device for interfacing a secondary peripheral bus with a system having a host CPU and a primary peripheral bus
US5991844A (en) * 1998-04-17 1999-11-23 Adaptec, Inc. Redundant bus bridge systems and methods using selectively synchronized clock signals
US6070214A (en) 1998-08-06 2000-05-30 Mobility Electronics, Inc. Serially linked bus bridge for expanding access over a first bus to a second bus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0772134A1 (en) * 1995-11-02 1997-05-07 International Business Machines Corporation Adapter card slot isolation for hot plugging

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
04959833
05822571
05822767
0772134

Also Published As

Publication number Publication date
EP1200895A1 (en) 2002-05-02
DE60005528D1 (de) 2003-10-30
KR20020015375A (ko) 2002-02-27
US6507920B1 (en) 2003-01-14
IL147616A0 (en) 2002-08-14
AU775255B2 (en) 2004-07-22
DE60005528T2 (de) 2004-07-08
JP2003505761A (ja) 2003-02-12
EP1200895B1 (en) 2003-09-24
CA2379694C (en) 2007-02-13
AU5924300A (en) 2001-02-05
WO2001006369A1 (en) 2001-01-25
JP4272833B2 (ja) 2009-06-03
CA2379694A1 (en) 2001-01-25
HK1044386A1 (zh) 2002-10-18

Similar Documents

Publication Publication Date Title
JP3327559B2 (ja) フィーチャ・カードのコンピュータへの非破壊的活状態挿入およびコンピュータからの非破壊的活状態取外しを可能にする方法およびシステム
JP4145146B2 (ja) オンチップ・バックグラウンド・デバッグシステムを有するデータ処理システム及びその方法
CN106708168B (zh) 多处理器系统及时钟同步方法
US6098132A (en) Installation and removal of components of a computer
US6868468B2 (en) Switchable hot-docking interface for a portable computer for hot-docking the portable computer to a docking station
US20050268010A1 (en) Electronic device with serial ATA interface and power-saving control method used in the device
KR100684130B1 (ko) 고유 버스 프로토콜을 사용하여 동기 버스를 임의의길이만큼 확장하는 방법 및 시스템
CN111881076B (zh) 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置
WO2021080866A1 (en) Performing scan data transfer inside multi-die package with serdes functionality
GB2421326A (en) Scalable reference clock unit for external cards
KR100963706B1 (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
US6718488B1 (en) Method and system for responding to a failed bus operation in an information processing system
US11880289B2 (en) Auto-detection of interconnect hangs in integrated circuits
WO2023016379A1 (zh) 计算机系统、基于PCIe设备的控制方法及相关设备
CN116539992A (zh) 存储设备在位稳定状态检测装置、方法、逻辑模块及介质
CN111208892B (zh) 一种用串行i2c信号对芯片系统实现复位的方法
US7340656B2 (en) Method and apparatus for probing a computer bus
US7289925B2 (en) Systems and methods for assessing timing of PCI signals
US20240021228A1 (en) Clock multiplexer device, controller, and storage device
CN114253561B (zh) 一种固件自动烧录的系统和方法
KR100593787B1 (ko) 통신 버스에서의 차동 스트로빙 방법 및 장치
CN117891773A (zh) 一种集成电路总线的通信控制装置和方法
CN117539324A (zh) 时钟多路选择器设备、控制器以及存储设备
CN112925730A (zh) 一种PCIe设备链路训练控制方法及系统
KR20050001295A (ko) 프로세서에 내장된 메모리를 관리하는 방법 및 그 장치

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: 20100205

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee