KR100647168B1 - 메모리 디바이스 인터페이스를 검출하는 방법 및 장치 - Google Patents

메모리 디바이스 인터페이스를 검출하는 방법 및 장치 Download PDF

Info

Publication number
KR100647168B1
KR100647168B1 KR1020057018209A KR20057018209A KR100647168B1 KR 100647168 B1 KR100647168 B1 KR 100647168B1 KR 1020057018209 A KR1020057018209 A KR 1020057018209A KR 20057018209 A KR20057018209 A KR 20057018209A KR 100647168 B1 KR100647168 B1 KR 100647168B1
Authority
KR
South Korea
Prior art keywords
type
bus
bus interface
multiplexed
multiplexed bus
Prior art date
Application number
KR1020057018209A
Other languages
English (en)
Other versions
KR20050119663A (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 KR20050119663A publication Critical patent/KR20050119663A/ko
Application granted granted Critical
Publication of KR100647168B1 publication Critical patent/KR100647168B1/ko

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/066Means for reducing external access-lines for a semiconductor memory clip, e.g. by multiplexing at least address and data signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 하나의 결합을 지원하는 다중화 버스를 제공하기 위한 장치 및 방법으로서, 상기 다중화 버스의 적어도 일부는, 디바이스의 어느 한 유형에 결합될 수 있고, 어느 한 버스에 대한 프로토콜 및 타이밍으로 전송을 수행하는데 사용될 수 있는 복수의 공통 신호선으로 이루어진다.
버스 인터페이스, 다중화 버스, 프로토콜, 타이밍, 공통 신호선

Description

메모리 디바이스 인터페이스를 검출하는 방법 및 장치{METHOD AND APPARATUS FOR DETECTING MEMORY DEVICE INTERFACE}
컴퓨터 시스템은 계속해서 훨씬 더 소형화됨과 동시에 훨씬 더 유능해 지고 있는데, 이는 줄곧 증가하는 다양한 기능을 수행하기 위해 컴퓨터 시스템의 구성 요소들 각각에 의해 적어도 부분적으로 추진된다. 특히, 컴퓨터 시스템의 집적 회로(ICs)는 계속해서 보다 많은 특징들 및 옵션들을 통합하도록 설계되어, 이러한 IC들이 사용되는 컴퓨터 시스템의 제작자에게 제공된다.
IC들 및 IC들이 부착된 컴퓨터 시스템 회로 기판 양자의 제작자에게 되풀이되는 문제는, 줄곧 증가하는 다수의 특징들 및 옵션들을 위해 IC에 제공되어야 하는 신호 핀의 양적인 증가에 대한 지원을 제공하는 것이다. 계속되는 핀의 양적 증가로 인해 더 많은 핀을 제공할 수 있는 훨씬 더 비싼 IC 패키지가 요구된다. 게다가, 소형화 및 짧은 내부 컨덕터 길이(short internal conductor lengths)의 유지를 위해, 이러한 더 비싼 IC 패키지는, 보통 더 많은 양의 핀을 더욱 고밀도로 위치시키고, 회로 기판상에서 도전성 트레이스 및 땜납 패드의 배치(또는 그 외의 도전성 땜납 위치)가 보다 고밀도가 되도록 요구하여, 이로써, 회로 기판의 비용을 증가시킨다. IC 패키지에 더 많은 핀을 추가하여 비용과 복잡성이 부가된다면, 소정의 IC가 필요로 하는 핀의 수를 한정하는 방법을 찾는 것이 바람직하다.
핀의 수를 한정하는 일반적인 방법은, 핀의 기능(functions)과 양(quantity) 간에 트레이드 오프(tradeoff)를 실시하는 것으로, 이 결과, 소정의 IC에 의해 수행될 기능이 한정되고, 아마도 소정의 기능들을 서로 다른 IC에 배속할 것이며, 이로 인해 소정의 전자 장치 내의 IC의 양을 증가시킬 것이다. 그러나, 컴퓨터 시스템의 설계 및 제작을 위한 계속되는 목표는, IC를 포함하는, 컴퓨터 시스템에 사용되는 구성 요소들의 전체 양을 감소시킴으로써, 비용을 낮추고 신뢰도를 높이도록 추진하는 것이다.
본 발명의 목적, 특징, 및 장점들은 다음의 상세한 설명을 고려하여 당업자에게는 명백할 것이다.
도 1은 컴퓨터 시스템을 사용하는 일 실시예에 대한 블록도이다.
도 2는 다중화 버스를 제공하는 로직의 실시예에 대한 블록도이다.
도 3은 다중화 버스를 제공하는 로직의 실시예에 대한 보다 구체적인 블록도이다.
도 4는 다중화 버스를 제공하는 로직의 또 다른 실시예에 대한 보다 구체적인 블록도이다.
도 5는 실시예의 흐름도이다.
도 6은 또 다른 실시예의 흐름도이다.
다음의 기재에서, 설명을 위해, 본 발명의 전체적인 이해를 제공하기 위한 다양한 상세가 진술될 것이다. 그러나, 본 발명을 실행하기 위해 이러한 특정 상세가 요구되는 것은 아니라는 것이 당업자에게는 명백할 것이다.
본 발명의 실시예는, 완전히 개별적인 핀의 세트를 갖는 2개의 버스를 지원하기 위해 요구되는 핀을 대량으로 할당해야 하는 것을 피하기 위해, 2개의 버스 인터페이스 기능의 상당수를 IC의 동일 핀에 다중화함으로써, 2개의 서로 다른 버스 인터페이스에 대한 지원을 하나의 IC에 통합하는 것에 관한 것이다. 다음 논의는 비록 비휘발성 메모리 디바이스로의 버스 인터페이스에 관한 것이지만, 이후 청구되는 바와 같은 발명은 다수의 목적 중 임의의 것을 위해 사용되는 2개 이상의 버스의 지원으로도 실행될 수 있다는 것이 당업자에 의해 이해될 것이다. 또한, 다음 논의는 비록 컴퓨터 시스템 내에 있는 IC에 집중되지만, 이후 청구되는 바와 같은 발명은 다수의 버스에 대한 부착물(attachment)을 지원하는 전자적 구성 요소를 갖는 그 외의 전자 장치와 접속하여 실행될 수도 있다는 것이 당업자에 의해 이해될 것이다.
도 1은 컴퓨터 시스템을 사용하는 일 실시예의 블록도이다. 컴퓨터 시스템(100)은, 적어도 일부가, CPU(central processing unit; 110), FSB(front side bus; 112), 노스 브리지 로직(120), 링크 버스(122), 사우스 브리지 로직(124), 메모리 시스템(130), 그래픽 제어기(150), AGP(advanced graphics port) 버스(152), 디스플레이(154), 주변 버스 커넥터(160), 주변 버스(162), 기억 제어기(170), 기억 드라이브(172), 기억 매체(174), 다중화 버스(142), 및 비휘발성 메모리 디바이스들(140a 및 140b) 중 하나 혹은 둘 다로 이루어진다.
CPU(110), FSB(112), 노스 브리지 로직(120) 및 메모리 시스템(130)은 기계 판독가능 명령어들을 실행할 수 있는 컴퓨터 시스템(100)의 코어의 폼(form)을 구성한다. CPU(110)는 FSB(112)를 통해 노스 브리지 로직(120)에 결합되고, 노스 브리지 로직(120)이 결합되는 메모리 시스템(130)에 액세스하는, CPU(110)를 제어하고 제공하는 CPU(110)를 지원하여 다양한 기능을 수행한다. 여러 실시예에 있어서, CPU(110)는 널리 알려지고 사용된 "x86" 명령어 세트의 적어도 일부를 실행할 수 있는 CPU를 포함하는 여러 유형의 CPU 중 임의의 것일 수 있고, 그 외의 여러 실시예에서는, 하나 이상의 CPU가 존재할 수 있다. 여러 실시예에서, 메모리 시스템(130)은 FPM(fast page mode), EDO(extended data out), SDR(single data rate) 또는 DDR(double data rate) 형태의 SDRAM(synchronous dynamic RAM), RAMBUS™ 인터페이스를 사용하는 다양한 기술의 RAM 등을 포함하는 여러 유형의 RAM(random access memory) 중 임의의 것일 수 있다.
그래픽 제어기(150), AGP 버스(152) 및 디스플레이(154)는 컴퓨터 시스템(100)의 사용자를 위해 비주얼 사용자 인터페이스를 제공할 수 있는 디스프레이 시스템의 폼을 구성한다. AGP 버스(152)는 노스 브리지 로직(120)을 그래픽 제어기(150)에 결합하는 고속 병렬 버스이고, 여러 실시예에서, 노스 브리지 로직(120)은 그래픽 제어기(150)와 메모리 시스템(130) 사이에 매우 낮은 레이턴시 데이터 경로를 제공하도록 구성된다. 그래픽 제어기(150)는 또한 디스플레이(154)에 결합되고, 비주얼 이미지를 제공하기 위해 디스플레이(154)를 제어한다.
링크 버스(122)를 통해 노스 브리지 로직(120)에 결합되는 사우스 브리지 로 직(124)은 컴퓨터 시스템(100)에 기능성을 추가하기 위해 또 다른 디바이스들이 결합될 수 있는, 하나 혹은 두 개의 다중화 버스(142) 및 주변 버스(162)를 제공할 수 있다. 주변 버스(162)는 다중화 버스(142)보다 더 고속이고 더 범용인 버스이며, 주변 버스(162)에 의해 제공된 능력을 광범위하게 충분히 사용할 수 있는 보다 복잡한 디바이스들의 결합을 지원하도록 설계된다. 다중화 버스(142)는 주변 버스(162)보다 더 저속이고 간단한 버스이며, 컴퓨터 시스템(100)의 기능성을 증가시키기 위해 다양한 형태의 심플러 I/O 포트 로직, 메모리 디바이스, 타이머 등이 추가되도록 허용하는, 덜 복잡한 디바이스들의 추가를 지원하도록 설계된다.
여러 실시예에서, 또 다른 디바이스들이 주변 버스(162)에 직접 결합될 수도 있고, 여러 실시예에서, 주변 버스(162)는, 또 다른 디바이스들이 주변 버스(162)에 분리 가능하게 결합될 수 있게 하는 방식을 제공하기 위해 하나 이상의 커넥터(160)로 구현될 수도 있다. 여러 실시예에서, 주변 버스(162)는 EISA(extended industry standard architecture), MCA(Micro Channel™ architecture), PCI(peripheral component interconnect), PCI-X 등과 같은, 컴퓨터 설계의 기술에 있어서 "표준화된(standardized)" 널리 알려진 여러 형태의 버스들 중 임의의 것에 따르도록 설계될 수도 있다.
여러 실시예에서, 주변 버스(162) 및/또는 버스 커넥터(160)를 통해(뿐만 아니라 그 외의 형태의 다양한 결합 중 임의의 것을 통해) 컴퓨터 시스템(100)에 결합될 수 있는 디바이스는 기억 제어기(170)로서, 이는 기억 드라이브(172)에 결합된다. 기억 제어기(170)는 기억 매체(174)에 의해 운반된 데이터 및/또는 명령어 가 액세스될 수 있는 기억 드라이브(172)를 제어하기 위한 로직을 제공한다. 실제로, 소정의 실시예에서, 기억 매체(174)는, 후술되는 바와 같이, CPU(110)로 하여금 비휘발성 메모리 디바이스(140a 및 140b) 중 하나 혹은 둘의 존재 또는 부재를 결정하도록 하기 위해, CPU(110)에 의해 실행될 시스템-액세스가능 명령어들을 운반한다. 기억 매체(174)는 CD나 DVD ROM, 자기 혹은 광 디스켓, 광-자기 디스크, 테이프, 반도체 메모리, 종이나 그 외의 재료 상의 문자나 천공(characters or perforations) 등을 포함하는, 당업자라면 이해할, 매우 다양한 유형 및 기술들 중 임의의 것일 수 있다.
우선 컴퓨터 시스템(100)의 전원이 켜지거나 초기화(예를 들어, 컴퓨터 시스템(100)을 "리셋(resetting)"하는 등에 의해)되는 경우에, CPU(110)가 선정된 메모리 어드레스를 실행하기 위해 초기 명령어(때로는, "팜웨어", "ROM 코드", "기본 입/출력 시스템" 또는 "BIOS"와 같이 다양하게 불림)를 찾으려고 하는 것은 일반적인 실행(common practice)이다. 또한, 그러한 초기 명령어들을 비휘발성 메모리 디바이스(140a 또는 140b) 중 어느 하나와 같은 비휘발성 메모리 디바이스에 기억하는 것도 일반적인 실행이다. 도 1에 도시된 바와 같이, 비휘발성 메모리 디바이스(140a 또는 140b) 중 어느 하나는 다중화 버스(142)를 통해 사우스 브리지 로직(124)에 결합될 수도 있지만, 또한 도 1에 도시된 바와 같이, 비휘발성 메모리 디바이스(140 및 140b) 각각은 서로 다른 인터페이스를 갖는다. 보다 구체적으로, 비휘발성 메모리 디바이스(140a)는 "A형(type A)" 인터페이스를 갖는 한편, 비휘발성 메모리 디바이스(140b)는 "B형(type B)" 인터페이스를 갖는다. 여러 가능한 서 로 다른 실시예에 있어서, A형 및 B형 인터페이스 사이에는 임의의 가능한 다수의 특정 차이점들이 존재할 수 있다. 이러한 차이점들은 타이밍, 바이트들의 엔디언 배치(endian arrangement), 오픈-콜렉터 대 3-상태 시그널링(open-collector versus tri-state signaling), 커맨드 프로토콜, 병렬 대 직렬 데이터 전송 등에 있어서 존재할 수 있다. 도 1에 도시된 바와 같이, 사우스 브리지 로직(124)은 A형 또는 B형 인터페이스 중 어느 하나를 수용하도록 구성된 단일 다중화 버스(142)를 제공하고, 이로써, 비휘발성 메모리 디바이스(140a 또는 140b) 중 어느 하나가 다중화 버스(142)와 사우스 브리지 로직(124)을 통해 컴퓨터 시스템(100)과 함께 사용되도록 허용한다.
비휘발성 메모리 디바이스(140a 및 140b)의 인터페이스 A형 및 B와 같은, 서로 다른 인터페이스와 디바이스들의 부착을 허용하기 위해, 사우스 브리지 로직(124)은 다중화 버스(142)에 결합된 디바이스들에게 질문하는 인터페이스 로직을 포함하여 그 디바이스들에 의해 사용되는 인터페이스의 유형(들)을 식별함은 물론, 그 디바이스들에서 발견된 서로 다른 인터페이스와 버스 트랜잭션을 수행한다. 다중화 버스(142) 및 이 인터페이스 로직은 사우스 브리지 로직(124)의 핀들로의 서로 다른 인터페이스들을 지원하기 위해 필요한 신호들의 다중화를 통해 상당히 다른 인터페이스들을 지원하도록 설계되어, 하나 이상의 서로 다른 인터페이스에 결합되는 사우스 브리지 로직(124)의 핀들의 서브셋이 존재하게 되고, 이로써, 사우스 브리지 로직(124)으로부터 추가적인 핀을 사용하지 않더라도 다수의 서로 다른 인터페이스가 지원되도록 하여 서로 다른 인터페이스 각각에 대해 완전히 개별적인 핀 세트들을 제공한다. 보다 구체적으로, 다중화 버스(142)를 구성하는 사우스 브리지 로직(124)의 핀의 서브셋은 비휘발성 메모리 디바이스(140a 및 140b)의 인터페이스 A형 및 B형 양측에 결합되므로, 사우스 브리지 로직(124)의 추가 핀은 사용되지 않고 A형 및 B형 인터페이스에 대해 완전히 개별적인 인터페이스를 제공하게 된다.
여러 실시예에서, 다중화 버스(142)는 A형 및 B형 인터페이스를 동시에 수용하도록 구성될 수 있고, A형를 갖는 디바이스들과 B형를 갖는 디바이스들 모두 버스(142)에 동시에 결합되도록 허용한다. 대안적으로, 다중화 버스(142)는 A형 및 B형 인터페이스 중 어느 하나를 지원하도록 구성될 수 있지만, A형을 갖는 디바이스들과 B형를 갖는 디바이스들 양측의 부속물들을 동시에 지원하도록 구성되지는 않는다. 또한, 명료함을 위해 도 1에는 도시되지 않았지만, 다중화 버스(142)에 대한 일부 실시예의 경우, 명령어 기억 이외의 기능을 수행하는 디바이스들, 예컨대, 키보드, 마우스, 프린터, 모뎀, 적외선 송수신기 등을 위한 인터페이스를 갖는 컴퓨터 시스템(100)을 제공함과 함께 비휘발성 메모리 디바이스(140a 및 140b) 중 하나 혹은 둘의 결합을 지원하는 디바이스들을 지원하도록 구성될 수도 있다.
여러 IC들 간의 기능의 할당, 버스의 배치와 유형, 및 여러 구성 요소들의 양과 같은, 여러 특정한 상세로 컴퓨터 시스템(100)이 도시되고 설명되었지만, 이 컴퓨터 시스템(100)은 상당히 많은 가능한 컴퓨터 시스템의 아키텍처 및 구현 중 하나의 예일 뿐이라는 것을 당업자라면 쉽게 인지할 것이다. 이 컴퓨터 시스템(100)은 컴퓨터 시스템의 하나의 특정한 구현일 뿐이고, 컴퓨터 시스템의 그러한 상세는 이후에 청구되는 바와 같은 본원의 정신 및 범주에는 관계가 없다는 것이 당업자에게는 명백할 것이다.
도 2는 버스 인터페이스를 제공하는 로직의 실시예에 대한 블록도이다. 논리 소자(logic device; 210)는 컴퓨터 시스템과 같은 보다 큰 전자 장치의 구성 요소이다. 보다 구체적으로, 논리 소자(210)는, 컴퓨터 시스템에 대한 소정의 실시예에서, 사우스 브리지 논리 소자이거나 하나 이상의 버스가 결합되는 컴퓨터 시스템의 또 다른 구성 요소일 수 있다. 논리 소자(210)는 적어도 일부가 다중화 버스 인터페이스(214)로 이루어져 있고, 이를 통해 논리 소자(210)는 다중화 버스(232)를 경유하여 비휘발성 메모리 디바이스(240a 및 240b) 각각의 A형 인터페이스(244a)와 B형 인터페이스(244b) 중 하나 혹은 양측으로 및 그로부터 신호를 송신 및 수신한다.
다중화 버스(232)는, 다중화 버스 인터페이스(214)와 A형 인터페이스(244a)와 B형 인터페이스(244b)가 공유할 수 있는 공통 신호선(236); 다중화 버스 인터페이스(214)가 그를 통해 다중화 버스 인터페이스(214)와 A형 인터페이스(244a) 간의 버스 활동을 조정하는 조정 신호(238a); 및 다중화 버스 인터페이스(214)가 그를 통해 다중화 버스 인터페이스(214)와 B형 인터페이스(244b) 간의 버스 활동을 조정하는 조정 신호(238b)로 이루어진다. 본질적으로, 다중화 버스 인터페이스(214)는 다중화 버스, 즉, A형 인터페이스(244a)가 결합되도록 설계된 A형 버스와, B형 인터페이스(244b)가 결합되도록 설계된 B형 버스 양측으로부터 신호들 및 기능성들을 결합시키고, A형 인터페이스(244a)와 B형 인터페이스(244b) 양측에 의해 공유될 수 있는 신호선의 공통 세트에 A형 버스 및 B 양측의 신호 중 적어도 일부를 다중화하려고 하며, 조정 신호(238a, 238b)를 통해 신호선의 공통 세트에서의 다중화된 활동을 조정하는 다중화 버스(232)를 제공한다.
조정 신호(238a)로서 사용되는 A형 버스 외측의 신호(signal out of bus type A)(혹은 짝수 신호들)는 신호들의 특성 및 A형 버스의 프로토콜에 의존한다. 예를 들어, A형 버스의 프로토콜이, 소정의 칩 선택 혹은 그 외의 제어 입력이 비활성인 경우에 다중 신호들을 3-상태(tri-state)로 하기 위해 A형 버스와 작업하도록 설계된 인터페이스들이 요구되는 것이라면, 해당 제어 입력이 조정 신호(238a)로서 사용될 수 있다. 대안적으로, A형 버스의 프로토콜이, 그 외의 신호선에서 어떤 특정한 형태의 활동이 일어나지 않고 클록 입력에서 임의의 수의 클록 펄스가 발생하는 경우에 다중 신호들을 3-상태(tri-state)로 하기 위해 A형 버스와 작업하도록 설계된 인터페이스가 요구되는 것이라면, 해당 클록 입력이 조정 신호(238a)로서 사용될 수 있다. 유사한 예들이 조정 신호(238b)에 대해 적용될 수도 있다. 또한, A형 버스와 작업하도록 설계된 인터페이스는, 그 인터페이스가 버스 활동에 관여하지 않는 경우에는 보통 다수의 3-상태 신호를 사용하는 한편, B형 버스와 작업하도록 설계된 인터페이스는 오픈-콜렉터 버스에 속박되도록 설계된 다수의 신호를 사용한다면, 다중화를 가능하게 하기 위해 필요한 것으로서 적절한 풀-업 및/또는 풀-다운 레지스터가 사용되는 한, A형 버스의 다수의 3-상태 신호를 B형 버스의 다수의 오픈-콜렉터 신호와 함께 다중화하는 것이 여전히 가능하다.
당업자가 인지하고 있듯이, 도 2에 도시된 것은 어느 정도 간략화된 것으로, 개별 신호의 전기 특성 및 시간에 의존하여, A형 버스 및 B에 대해 활성 및 비활성일 것으로 예상되고, 조정 신호(238a, 238b) 이상이 다중화 버스 인터페이스(124)를 A형 인터페이스(244a)와 B형 인터페이스(244b) 중 단 하나 혹은 그 외의 것에 결합할 수도 있다. 또한, 이는, A형 버스 및 B 각각이 동일한 수의 신호선의 사용을 요구하지 않을 가능성 외에서 일어나고, 따라서, A형 인터페이스(244a) 또는 B형 인터페이스(244b) 중 어느 하나는 다른 하나에 비해 다중화 버스 인터페이스(214)에 다소 많은 양의 신호를 결합할 것이다.
도 3은 보다 특정한 신호 상세를 나타내는 버스 인터페이스를 제공하는 로직의 실시예에 대한 보다 상세한 블록도이다. 도 2의 논리 소자(210)와 마찬가지로, 논리 소자(310)는 컴퓨터 시스템과 같은 보다 큰 전자 장치의 구성 요소이고, 컴퓨터 시스템에 대한 소정의 실시예에 있어서, 사우스 브리지 논리 소자이거나, 혹은 하나 이상의 버스가 결합되는 컴퓨터 시스템의 그 외의 구성 요소일 수 있다. SPI(serial peripheral interface)와 LPC(low pin count) 버스 양측의 프로토콜과 타이밍을 지원할 수 있는 다중화 버스(322)를 제공하는 다중화 버스 인터페이스가 논리 소자(310)의 적어도 일부를 구성한다. 다중화된 인터페이스는 다중화 버스(332)를 통해, 비휘발성 메모리 디바이스(340a, 340b)의 SPI 인터페이스(344a)와 LPC 인터페이스(344b) 중 하나 혹은 양측으로 및 그로부터 신호를 송신 및 수신한다. 다음 설명으로부터 명확해 지듯이, 다중화 버스 인터페이스(314)와 다중화 버스(332)는 원한다면 동시에 LPC 소자 및 SPI 소자 양측의 다중화 버스(332)로의 결합을 수용하도록 되어있다.
다중화 버스 인터페이스(314)는 널리 알려진 SPI 또는 LPC 버스 중 어느 하나에 인터페이스하도록 설계된 디바이스들이 버스(332)에 결합되도록 허가하는 특징을 갖는 버스(332)를 제공한다. SPI는 Motorola, Inc.에 의해 소개되었고, EEPROM, DSP 및 LED 숫자 표시 드라이버를 포함하는 다양한 유형의 디바이스들의 부속물에 대한 마이크로제어기 애플리케이션에 널리 사용되고 있다. 20Mbps까지의 현재의 데이터 전송률 및 그 데이터 전송률을 25Mbps까지 증가시키는 업계에서의 현재의 토크(current talk)에 의하면, SPI는 오랫동안 잘 알려진 I2C 버스를 대신하는 것으로 보인다. LPC는 Intel Corporation에 의해 소개되었고, 사용자 인터페이스 디바이스에 인터페이스를 제공하는 플래시 ROM 및 I/O 제어기 칩을 포함하는 여러 유형의 디바이스의 부속물에 대한 개인용 컴퓨터 애플리케이션에 널리 사용되고 있다. 일반적으로 16.5MB/sec만큼 높은 데이터 전송률을 갖는다면, 비슷한 데이터 전송률을 제공하지만, 보다 많은 신호를 필요로 하므로, 개인용 컴퓨터의 일부를 구성하는 IC에 더 많은 칩을 요구하는 ISA와 같은 버스의 대안으로 LPC가 널리 사용된다.
다중화 버스(332), -CS(338a) 및 LFRAME#(338b)를 이루는 신호들은, 다중화 버스 인터페이스(314)와, SPI 인터페이스(344a) 및 LPC 인터페이스(344b) 각각 사이의 버스 활동을 조정하기 위해 다중화 버스 인터페이스(314)에 의해 사용된 조정 신호이다. SPI에 정통한 사람이라면, -CS(338a)는 SPI 버스의 "칩 선택" 신호이고, (비휘발성 메모리 디바이스(240a)와 같은) 종속 장치의 그 외의 신호들은 3-상태이고, -CS 입력이 비활성(즉, 하이)인 경우에 그러한 종속 장치의 인터페이스 (SPI 인터페이스(344a) 등)에 의해 무시된다는 것을 인지할 것이다. LPC 버스에 정통한 사람이라면, LFRAME#(338b)는 LPC 버스 상의 어드레스, 커맨드 및 데이터의 유효 전송의 시작 및 끝을 "말하는(frames)" 신호이고, 주변 장치(비휘발성 메모리 디바이스(340b) 등)의 그 외의 신호들은 3-상태이며, LFRAME# 입력이 비활성(즉, 하이)인 경우에 그러한 주변 장치의 인터페이스(LPC 인터페이스(344b) 등)에 의해 무시된다는 것을 인지할 것이다. 다중화 버스 인터페이스(314)는 -CS(338a)와 LFRAME#(338b)를 사용하여 비휘발성 메모리 디바이스(340a, 340b) 중 하나 혹은 다른 하나를 각각 선택함으로써, 버스 활동에 관여하고 비휘발성 메모리 디바이스(340a, 340b) 간의 버스 충돌을 막는다.
-CS(338a)와 LFRAME#(338b)가 조정 신호로서 역할을 한다면, 나머지 신호는 비-조정 신호(336) 세트를 이룬다. 비-조정 신호(336) 사이에 도시된 것은 SPI 인터페이스(334a)와 LPC 인터페이스(344b) 양측에 라우트되는 리셋 신호이다. LPC 인터페이스는, 특히 LPC 버스가 존재하는 컴퓨터 시스템의 그 외의 구성 요소들이 리셋될 때마다 LPC 버스에 부착된 디바이스에 리셋 신호를 전달하기 위해 리셋 신호(LRESET#이라 불림)를 준비한다. 그러나, 당업자라면, 비휘발성 메모리 디바이스(340b)와 같이, LPC 버스에 부착된 특히 단순한 디바이스는 리셋 신호를 필요로 하지 않을 수도 있다는 것을 생각할 수 있을 것이다. SPI 인터페이스는 임의의 형태의 리셋 신호를 특별히 준비하지 않지만, LPC 버스에 부착된 복잡한 디바이스(비휘발성 디바이스(240a)보다 더 복잡한 디바이스와 같은)는 리셋 신호를 필요로 할 수도 있다는 것을 생각할 수 있다. 다중화 버스 인터페이스(134)에 대한 여러 가 능한 실시예는 다중화 버스(332)에 부착된 디바이스들에 리셋 신호를 제공할 수도 있고 아닐 수도 있다. 또한, 다중화 버스 인터페이스(314) 및 다중화 버스(332)가 존재하는 컴퓨터 시스템이나 그 외의 전자 장치에 대한 여러 가능한 실시예의 경우, 리셋 신호를 제공하는 것으로서 다중화 버스 인터페이스(314) 대신 리셋 신호가 제공될 수 있는 그 외의 로직 혹은 또 다른 버스를 가질 수도 있다.
또한, 비-조정 신호(336)들 사이에는 SPI 인터페이스(344a)와 LPC 인터페이스(344b) 양측으로 라우트된 클록 신호가 도시된다. SPI 및 LPC 버스 둘 다 양측 버스를 통해 어드레스, 커맨드 및 데이터의 전송을 동기화하기 위해 클록 신호(SPI에서는 SCK 혹은 SCLK로 불리고, LPC에서는 LCKL으로 불림)를 필요로 한다. 비휘발성 메모리 디바이스(340a, 340b) 각각에 대한 데이터 전송률의 특정한 요구 사항들 및 다중화 버스 인터페이스(314)의 특정한 설계에 따라서는, 다중화 버스(332) 상에서 SPI와 LPC 유형 모두의 버스 활동들을 동기화하기 위해 동일한 클록 신호를 사용할 수도 있다. 특히, SPI는 일반적으로 20MHz까지의 클록을 지원하지만(새로운 최대 클록 속도로서 현재는 25MHz가 제안되기는 하지만), 일부 실시예에서, 비휘발성 메모리 디바이스(340a)는 그러한 클록을 사용하는 속도로 데이터를 전송할 수 없을 수도 있다. 유사하게, 일부 실시예에서, 비휘발성 메모리 디바이스(340b)는 LPC에 의해 현재 지원되는 최대 33MHz 클록을 사용하는 속도에서 데이터를 전송할 수 없을 수도 있다. 일부 실시예에서, 클록 신호의 이러한 공유로 인해, 주파수를 바꾸는 클록을 공급할 수 있도록 다중화 버스 인터페이스(314)의 로직을 설계하는 과정을 수반할 수 있고, 이에 따라 클록 신호는, 발생하는 버스 활동의 유형 에 의존하여 두 개의 서로 다른 주파수(SPI의 커런트 20MHz와 LPC의 커런트 33MHz와 같은) 사이에서 스위치할 것이다. 그 외의 실시예에서, SPI와 LPC 양측의 버스 활동 유형에 대해 공통 클록 주파수(예컨대, SPI의 가능한 미래의 최대 클록 속도 25MHz)가 선택되고 사용되는데, 이는, 이러한 두 가지 유형의 버스 활동 중 적어도 하나 혹은 다른 하나가 버스 활동의 유형에 대해 가능한 최대치보다 늦은 클록에서 동기화된다는 결과에 따른다. 반면에, 그 외의 실시예에서, 비휘발성 반도체 장치(340a, 340b) 양측에 개별 클록 신호를 제공함으로써, LPC 디바이스와 SPI 디바이스 양측에 대해 데이터 전송 속도를 최적화함과 함께, 다중화 버스 인터페이스(314)에 대한 설계의 간략화를 어느 정도 유지하는 것이 바람직하다.
비-조정 신호(336)는 또한 LAD0 ~ LAD3을 포함하는 것으로 도시되는데, 이들은 어드레스, 커맨드 및 데이터를 LPC 버스로 전송하는 병렬 양방향 니블-와이드 신호 세트(parallel bidirectional nibble-wide set of signals)를 구성한다. 도시된 바와 같이, LAD2 및 LAD3은 MISO 및 MOSI와 함께 다중화되는데, 이들은 어드레스, 커맨드 및 데이터를 SPI 버스로 전송하는 마스터-인-슬레이브-아웃 및 마스터-아웃-슬레이브-인 단방향 직렬 신호를 구성하여, 결과적으로 다중화된 LAD2/MOSI 및 LAD3/MISO 신호를 얻는다. 당업자라면 쉽게 인지할 수 있듯이, 이후에 청구되는 바와 같은 본 발명의 취지 및 범위를 벗어나지 않고 이들 LPC 및 SPI 전송 신호들에 대한 다른 조합이 만들어지는 이들 LPC 및 SPI 전송 신호를 다중화하는 다른 형태들에 의지할 수도 있다.
LPS 및/또는 SPI 디바이스들의 존재 혹은 부재의 결정은, LPC 및/또는 SPI 디바이스의 존재에 대해 질문하기 위해 다중화 버스(432) 상에 하나 이상의 동작을 운반하는 다중화 버스 인터페이스(414)에 의해 달성될 수 있다. 다양한 실시예에 있어서, 다중화 버스 인터페이스(414)는, 우선 LPC나 SPI 프로토콜 중 어느 하나를 사용하고, 응답을 얻기에 실패하면, 이어서 2개의 프로토콜 중 다른 하나를 사용하여, 하나 이상의 판독 동작을 운반하도록 시도할 수 있다. LFRAME# 신호(338b)와 별개로 -CS 신호(338a)를 준비하면 시도된 판독 동작이 운반되는 것을 허용하여, 두 개의 인터페이스 중 다른 하나를 갖는 디바이스로부터의 간섭없이 두 개의 인터페이스 중 하나를 갖는 디바이스를 찾도록 한다.
도 4는 보다 특정한 신호의 상세를 나타내는 버스 인터페이스를 제공하는 로직의 또 다른 실시예에 대한 보다 상세한 블록도이다. 도 2 및 3의 논리 소자(210, 310)와 마찬가지로, 논리 소자(410)는 컴퓨터 시스템과 같은, 보다 큰 전자 장치의 구성 요소이고, 컴퓨터 시스템에 대한 일부 실시예에서는, 사우스 브리지 논리 소자 혹은 하나 이상이 버스가 결합되는 컴퓨터 시스템의 그 외의 구성 요소일 수 있다. 논리 소자(310)와 유사하게, 논리 소자(410)의 적어도 일부는, 논리 소자(410)가 그를 통해 다중화 버스(432)를 통해 비휘발성 메모리 디바이스(340a, 340b)의 SPI 인터페이스(344a)와 LPC 인터페이스(344b) 중 단 하나 혹은 다른 하나로 및 그로부터 각각 신호를 송신 및 수신하는 다중화 버스 인터페이스(414)로 이루어져 있다. 다중화 버스(332)에 대한 LPC 디바이스 및 SPI 디바이스 양측의 결합을 동시에 수용할 수 있는 다중화 버스 인터페이스(314) 및 다중화 버스(332)와는 달리, 다중화 버스 인터페이스(414) 및 다중화 버스(432)는 어떤 시간에 다중화 버스(432)에 대한 LPC 혹은 SPI 디바이스 중 단 하나 혹은 다른 하나의 결합을 수용하도록 되어 있다.
도 3의 다중화 버스(332)와 다중화 버스(432) 사이의 주된 차이점은, SPI 버스의 -CS 신호와 동일한 신호선으로 LPC 버스의 LFRAME# 신호를 다중 송신한다는 것으로, 즉, LFRAME#/-CS 신호(438)를 만든다. 이는, 이들 두 개의 신호가 개별적인 신호선에 존재하도록 하기 위해 논리 소자(410)에 추가 핀을 제공해야 할 필요를 제거할 수 있지만, 먼저 언급한 바와 같이, 다중화 버스(432)가 LPC 디바이스 혹은 SPI 디바이스 중 어느 하나만을 수용할 뿐 양측 모두를 동시에 수용할 수 없다는 결과를 초래한다. LPC 디바이스와 SPI 디바이스가 부착되었는지 여부를 결정하여, 다중화 버스(432)가 LPC 버스 혹은 SPI 버스로서 다중화 버스 인터페이스(414)에 의해 제어되어야 하는지 여부를 결정하는 것은, LPC 및/또는 SPI 디바이스의 존재에 대해 질문하기 위해 다중화 버스(432) 상에서 하나 이상의 동작을 실행하는 다중화 버스 인터페이스(414)에 의해 달성될 수 있다.
일 실시예에서, 다중화 버스 인터페이스(414)는 비-조정 신호(436) 중에서 클록, LAD2/MOSI 및 SAD3/MISO 신호와 함께, LFRAME#/-CS 신호(438)를 사용하여, SPI 버스 프로토콜 및 타이밍을 통해 하나 이상의 판독 동작을 수행하도록 시도한다. SPI 디바이스(SPI 인터페이스(444a)를 갖는 비휘발성 메모리 디바이스(440a) 등)가 존재하면, 다중화 버스 인터페이스(414)는 LAD3/MISO 신호를 통해 SPI 디바이스로부터 소정 형태의 데이터, 커맨드 등을 1바이트 이상 수신할 것이다. LPC 버스가 풀업 저항기들을 갖는 LAD0~LAD3 신호를 필요로 하는 경우에, SPI 디바이스 가 존재하지 않으면, 다중화 버스 인터페이스(414)에 의해 LAD3/MISO로부터 모든 비트마다 모두 1을 수신하게 될 것이다. 그러나, 어떠한 SPI 디바이스도 존재하지 않는다는 것을 더욱 보증하기 위해, 일부 실시예에서는, LAD3/MISO를 위한 풀업 레지스터를 스위치가능하게 하여, LAD3/MISO가 풀 다운되도록 하고 시도된 판독 동작(들)이 반복되도록 하는 것이 바람직한 것으로 간주될 수도 있다. 어떠한 SPI 디바이스도 존재하지 않는다면, 그 결과, 다중화 버스 인터페이스(414)에 의해 LAD3/MISO로부터 매 비트당 모두 0을 수신하게 될 것이다. SPI 디바이스가 발견된다면, 다중화 버스(432)는 이어서 SPI 버스로서 작동할 것이다. 그러나, 어떠한 SPI 디바이스도 발견되지 않는다면, 여러 가능한 실시예에서, LPC 디바이스의 존재가 추정될 수 있거나, 또는 LPC 디바이스의 존재를 확인하기 위해 LPC 프로토콜을 사용하여 다중화 버스(432)에서 판독이나 그 외의 동작이 수행될 수 있을 것이다.
일 실시예에서, 다중화 버스 인터페이스(414)는, 비-조정 신호(436)의 모든 신호와 함께 LFRAME#/-CS 신호(438)를 사용하여, LPC 버스 프로토콜 및 타이밍을 통해 하나 이상의 판독 동작을 실행하도록 시도한다. 그러나, 다중화 버스 인터페이스(414)와 존재할지도 모르는 SPI 디바이스 사이를 가능한 짧게 하는 것에 대한 대비로서, 다중화 버스 인터페이스(414)는 사실상 풀업 혹은 풀다운 레지스터를 사용하여(아마도 더 간단하게, LPC 표준에 의해 LAD3 신호를 위해 이미 요청된 풀업 레지스터를 사용하여) LAD3/MISO를 구동하도록 설계될 것이다. 또한, 존재할지도 모르는 SPI 디바이스가 정확하게 응답할 수 있도록 보증하기 위해, 클록 신호는, 일부 실시예에서, LPC에 의해 준비된 최대치 33MHz에 근접하는 클록 속도 대신, 20MHz 혹은 그 이하의 클록 속도에서 구동될 수도 있다. LPC 디바이스(SPI 인터페이스(444b)를 갖는 비휘발성 메모리 디바이스(440b) 등)가 존재한다면, 다중화 버스 인터페이스(414)는 LAD0, LAD1, SAD2/MOSI 및 SAD3/MISO를 통해 LPC 디바이스로부터 유효 SYNC 바이트를 수신할 것이다. SPI 디바이스가 존재한다면, 다중화 버스 인터페이스(414)는 LAD3/MISO 신호를 통해 SPI 디바이스로부터 소정 형태의 데이터, 커맨드 등을 1 이상 바이트 수신할 것이다. 어떠한 디바이스도 존재하지 않고, LAD0 ~ LAD3 상의 LPC에 의해 요구된 표준 풀업 레지스터가 유지되고 있다면, 다중화 버스 인터페이스(414)는 LAD0, LAD1, LAD2/MOSI 및 LAD3/MISO를 통해 단지 모두 1을 수신할 것이다.
SPI 또는 LPC 디바이스의 존재에 대해 테스트하는 또 다른 실시예도 가능하다는 것을 당업자라면 쉽게 인지할 것이다. 논리 소자(410)가 설치된 컴퓨터 시스템 혹은 전자 장치의 설계 측면에서 논리 소자(410)가 결합되는 회로 기판(들)을 통해 다중화 버스 인터페이스(414)로부터 주어진 LPC 또는 SPI 디바이스들에 대해 어떤 신호들이 실제로 이용가능하게 되는지에 대한 지식을 활용하는 그러한 디바이스에 대해 테스트하는 소정의 가능한 방법들이 선택될 수 있다. 예를 들어, LPC 디바이스가 존재할 경우, 리셋 신호가 단지 LPC 디바이스에게만 라우트되고, SPI 디바이스에게는 라우트되지 않을 것으로 알려진다면, 리셋 신호는 다중화 버스 인터페이스(414)를 통해 조종되어, 존재할지도 모르는 임의의 LPC 디바이스는 SPI 디바이스의 존재에 대해 테스트가 수행될 때 어떠한 응답도 하지 않게 될 것임을 보증할 수 있고, 만약 SPI 디바이스만 리셋 신호를 수신할 것으로 알려진다면 그 반 대가 될 것이다.
도 2, 3 및 4의 다중화 버스 인터페이스(214, 314, 414)는, 각각 그 외의 다른 논리 소자들과 도시된 다중화 버스들 간의 액세스를 제공하기 위해, 그 외에 도시된 논리 소자들에 통합되거나 그렇지 않으면 "내장(built in)"된 것으로 도시되었지만, 다중화 버스 인터페이스(214, 314, 및/또는 414)는 광범위한 가능한 실시예 중 임의의 것에서는 자립형(stand-alone) 디바이스로 구현될 수도 있다는 것을 당업자라면 이해할 것이다. 보다 구체적으로, 다중화 버스 인터페이스(214, 314, 414)는, 이후에 청구되는 바와 같은 본원의 정신 또는 범위로부터 벗어나지 않는 한, 또 다른 버스 혹은 버스들을 통해 그로부터 그 외의 디바이스들에 동반하는 다중화 버스들로의 액세스를 제공할 수도 있다는 것을 당업자라면 인지할 것이다. 또한, 여러 실시예에서, 다중화 버스 인터페이스(214, 314, 414)는, 내부 마이크로 제어기, 내부 CPU, 배선에 의한 논리 회로(hardwired logic), 프로그램가능 로직 등을 경유하여, 자발적으로, 동반하는 다중화 버스 전체에 걸쳐(across), 또한, 다중화 버스 인터페이스(214, 314 및/또는 414) 외부의 또 다른 디바이스, 예를 들어, 다중화 버스 인터페이스(214, 314 및/또는 414)가 통합되어 있는 컴퓨터 시스템 또는 그 외의 전자 장치의 CPU 등의 제어 하에, 여러 유형의 인터페이스를 갖는 여러 디바이스들의 존재 및/또는 부재를 판정할 수 있다는 것을 당업자라면 손쉽게 이해할 것이다. 또한, 다중화 버스 인터페이스(214, 314 및/또는 414)가 내부 CPU, 마이크로제어기, 또는 명령어를 실행하는 유사한 처리 장치를 통해, 동반하는 다중화 버스 전체에 걸쳐 여러 유형의 인터페이스를 갖는 여러 디바이스의 존재 및 /또는 부재를 판정하는 실시예에서, 디바이스의 존재 혹은 부재의 판정을 수행하기 위해 실행되는 시스템-액세스가능 명령어들은, 예를 들어, 도 1의 기억 매체(174)와 같은 매체로부터 판독될 수 있다.
도 5는 실시예의 흐름도이다. A형 버스를 위한 인터페이스를 갖는 디바이스가 A형 버스를 위한 인터페이스를 갖는 디바이스 혹은 B형 버스를 위한 인터페이스를 갖는 디바이스 중 어느 하나를 지지할 수 있는 다중화 버스에 부착되는지를 판정하기 위한 노력은, A형 버스를 위한 조정 신호(예를 들어, 도 2의 조정 신호(238a))를 활성화함으로써 510에서 시작된다. 512에서, 판독 동작과 같은, A형 버스 프로토콜을 사용하여 소정 형태의 버스 활동을 수행하도록 시도된다. 514에서, A형 버스 인터페이스를 갖는 디바이스로부터 응답이 수신된다면, 520에서, 다중화 버스 상에 B형 버스 인터페이스를 갖는 어떠한 디바이스도 존재하지 않는다는 것을 가정할 수 있고, 또한 B형 버스 인터페이스를 갖는 디바이스에 대한 테스트가 540에서 개시할 수 있다. 한편, 514에서, A형 버스 인터페이스를 갖는 디바이스로부터 어떠한 응답도 수신되지 않으면, 530에서, B형 버스 인터페이스를 갖는 디바이스가 존재한다는 가정이 이루어질 수 있고, 또는 540에서, 다중화 버스 상에서 B형 버스 인터페이스를 갖는 디바이스의 존재에 대한 테스트가 개시될 수 있다. 다중화 버스 상에서 B형 버스 인터페이스를 갖는 디바이스에 대한 테스트가 시작되면, 540에서, 510에서는 활성화되었던 A형 버스를 위한 동일한 조정 신호가 비활성화된다. 542에서, B형 버스를 위한 조정 신호(예를 들어, 도 2의 조정 신호(238b))는 활성화된다. 544에서, B형 버스 프로토콜을 사용하여 소정 형태의 버스 활동을 실 행하도록 시도되고, 이어서, 546에서는, 그러한 디바이스가 존재한다면, 다중화 버스에 걸쳐 그로부터 B형 버스 인터페이스를 갖는 디바이스로부터 응답을 수신한다.
도 6은 또 다른 실시예의 흐름도이다. A형 버스를 위한 인터페이스를 갖는 디바이스가, A형 버스를 위한 인터페이스를 갖는 디바이스 혹은 B형 버스를 위한 인터페이스를 갖는 디바이스 중 어느 하나를 지지할 수 있는(그러나 양쪽 유형을 동시에 지원하는 것은 아님) 다중화 버스에 부착되는지를 결정하기 위한 노력은, 612에서, 판독 동작과 같은, A형 버스 프로토콜을 사용하여 소정 형태의 버스 활동을 수행하기 위한 시도가 시작된다. 다중화 버스에 걸쳐 그로부터 A형 버스 인터페이스를 갖는 디바이스로부터 응답이 수신된다면, 위치를 찾아내는 노력은 614에서 끝날 수 있다. 그러나, A형 버스 인터페이스를 갖는 디바이스로부터 응답이 수신되지 않았다면, 이러한 실시예에 대한 소정의 변형예에서는, 622에서, B형 버스를 위한 인터페이스를 갖는 디바이스가 틀림없이 존재하는 것으로 가정한다. 대안적으로, 이러한 실시예의 또 다른 변형예에서는, 632에서, B형 버스 프로토콜을 사용하여 소정 형태의 버스 활동을 수행하기 위한 시도에 의해 B형 버스 인터페이스를 갖는 디바이스를 찾기 위한 노력이 실시될 수 있고, 이어서, 634에서, 그러한 디바이스가 존재한다면, 다중화 버스를 통해 그로부터 B형 버스 인터페이스를 갖는 디바이스로부터의 응답을 수신한다.
본 발명은 바람직한 실시예와 관련하여 설명되었다. 전술한 설명으로 미루어 보아 다양한 대안, 변경, 수정 및 사용이 가능하다는 것은 당업자에게 명백할 것이다. 본 발명은 여러 가능한 버스 인터페이스를 갖는 다양한 유형의 전자 장치 의 지지로 실행될 수 있고, LPC 또는 SPI 버스 중 어느 하나를 위한 인터페이스를 갖는 비휘발성 메모리 디바이스에 한정되지 않는다는 것을 당업자라면 이해할 것이다. 본 발명은 오디오/비디오 오락용 디바이스, 차량 내의 제어기 디바이스, 전자 회로에 의해 제어된 기구(appliances) 등과 같은 컴퓨터 시스템 이외의 전자 장치의 지지로 실행될 수도 있다는 것을 당업자라면 이해할 것이다.

Claims (20)

  1. 다중화 버스 인터페이스;
    상기 다중화 버스 인터페이스에 결합되고 그에 의해 제어되는 다중화 버스 - 상기 다중화 버스는 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 어느 하나에 대한 활동을 지원하는 프로토콜 및 타이밍으로 어드레스, 커맨드 및 데이터를 전송하는 복수의 공통 신호선을 포함함 - ; 및
    상기 다중화 버스에 결합되고 제1 유형의 버스 인터페이스를 갖는 제1 디바이스
    를 포함하는 장치.
  2. 제1항에 있어서, 상기 다중화 버스에 결합되고 제2 유형의 버스 인터페이스를 갖는 제2 디바이스를 더 포함하고,
    상기 다중화 버스는 제1 유형의 버스 인터페이스를 갖는 디바이스에 대한 활동을 지원하는 프로토콜 및 타이밍으로 전송하는 동안 상기 제1 디바이스에게 시그널링하는 제1 조정 신호선(a first coordinating signal line), 및 제2 유형의 버스 인터페이스를 갖는 디바이스에 대한 활동을 지원하는 프로토콜 및 타이밍으로 전송하는 동안 상기 제2 디바이스에게 시그널링하는 제2 조정 신호선(a second coordinating signal line)을 더 포함하는 장치.
  3. 제2항에 있어서, 상기 복수의 공통 신호선 중 하나의 공통 신호선은, 제1 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 프로토콜 및 타이밍으로 상기 제1 디바이스로 향하는 전송 동안의 제1 클록 속도(a first clock rate)와, 제2 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 프로토콜 및 타이밍으로 상기 제2 디바이스로 향하는 전송 동안의 제2 클록 속도(a second clock rate) 사이에서 스위치되는 클록 속도를 갖고 상기 제1 및 제2 디바이스 양측으로 상기 다중화 버스 인터페이스에 의해 공급된 클록 출력을 전송하는 장치.
  4. 제1항에 있어서, 상기 다중화 버스는, 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 어느 하나를 지원하는 프로토콜과 타이밍으로 전송하는 동안, 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 어느 하나에게 시그널링하는 조정 신호선을 더 포함하는 장치.
  5. 제1항에 있어서, 제1 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 상기 프로토콜 및 타이밍은, 상기 공통 신호선 중 하나를 통한 직렬 데이터 전송을 지원하고, 제2 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 상기 프로토콜 및 타이밍은, 복수의 상기 공통 신호선을 통한 병렬 데이터 전송을 지원하는 장치.
  6. CPU;
    메모리 시스템;
    상기 CPU와 상기 메모리 시스템 양측에 결합된 지원 로직(support logic);
    상기 지원 로직에 결합되고 명령어를 실행하는 상기 CPU에 의해 제어가능한 다중화 버스 인터페이스;
    상기 다중화 버스 인터페이스에 결합되고 그에 의해 제어되는 다중화 버스 - 상기 다중화 버스는 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 하나에 대한 활동을 지원하는 프로토콜 및 타이밍으로 어드레스, 커맨드 및 데이터를 전송하는 복수의 공통 신호선을 포함함 - ; 및
    상기 다중화 버스에 결합된 제1 디바이스 - 상기 제1 디바이스는 제1 유형의 버스 인터페이스를 갖고 상기 CPU에 의해 실행될 복수의 명령어들을 기억하는 비휘발성 메모리 디바이스임 -
    를 포함하는 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 다중화 버스에 결합되고 제2 유형의 버스 인터페이스를 갖는 제2 디바이스를 더 포함하고,
    상기 제2 디바이스는 I/O 디바이스이고, 상기 다중화 버스는 제1 유형의 버스 인터페이스를 갖는 디바이스에 대한 활동을 지원하는 프로토콜 및 타이밍으로 전송하는 동안 상기 제1 디바이스에게 시그널링하는 제1 조정 신호선, 및 제2 유형 의 버스 인터페이스를 갖는 디바이스에 대한 활동을 지원하는 프로토콜 및 타이밍으로 전송하는 동안 상기 제2 디바이스에게 시그널링하는 제2 조정 신호선을 더 포함하는 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 복수의 공통 신호선들 중 하나의 공통 신호선은, 제1 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 프로토콜 및 타이밍으로 상기 제1 디바이스로 향하는 전송 동안의 제1 클록 속도와, 제2 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 프로토콜 및 타이밍으로 상기 제2 디바이스로 향하는 전송 동안의 제2 클록 속도 사이에서 스위치되는 클록 속도를 갖고 상기 제1 및 제2 디바이스 양측으로 상기 다중화 버스 인터페이스에 의해 공급된 클록 출력을 전송하는 컴퓨터 시스템.
  9. 제7항에 있어서, 상기 CPU는, 상기 CPU로 하여금 상기 제1 유형의 버스 인터페이스를 갖는 상기 다중화 버스 상의 디바이스들의 존재에 대해 테스트하도록 상기 다중화 버스 인터페이스를 제어하여 상기 제1 디바이스가 검출되게 하는 명령어들을 실행할 수 있고, 상기 CPU는, 상기 CPU로 하여금 상기 제2 유형의 버스 인터페이스를 갖는 상기 다중화 버스 상의 디바이스들의 존재에 대해 테스트하도록 상기 다중화 버스 인터페이스를 제어하여 상기 제2 디바이스가 검출되게 하는 명령어들을 실행할 수 있는 컴퓨터 시스템.
  10. 제7항에 있어서, 상기 다중화 버스 인터페이스는, 상기 다중화 버스 인터페이스로 하여금 상기 제1 유형의 버스 인터페이스를 갖는 상기 다중화 버스 상의 디바이스들의 존재에 대해 테스트하게 하여 상기 제1 디바이스가 검출되게 하는 명령어들을 실행할 수 있고, 상기 다중화 버스 인터페이스는, 상기 제2 유형의 버스 인터페이스를 갖는 상기 다중화 버스 상의 디바이스들의 존재에 대해 테스트하게 하여 상기 제2 디바이스가 검출되게 하고, 상기 다중화 버스 인터페이스는, 상기 제1 및 제2 디바이스가 모두 검출되었다는 지시(indication)를 상기 CPU에게 제공할 수 있는 컴퓨터 시스템.
  11. 제7항에 있어서, 제1 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 상기 프로토콜 및 타이밍은, 상기 공통 신호선 중 하나를 통한 직렬 데이터 전송을 지원하고, 제2 유형의 버스 인터페이스를 갖는 디바이스를 지원하는 상기 프로토콜 및 타이밍은, 복수의 상기 공통 신호선을 통한 병렬 데이터 전송을 지원하는 컴퓨터 시스템.
  12. 제6항에 있어서, 상기 다중화 버스는, 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 어느 하나를 지원하는 프로토콜과 타이밍으로 전송하는 동안, 제1 유형의 버스 인터페이스를 갖는 디바이스와 제2 유형의 버스 인터페이스를 갖는 디바이스 중 어느 하나에게 시그널링하는 조정 신호선을 더 포함하는 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 CPU는, 상기 CPU로 하여금 상기 제1 유형의 버스 인터페이스를 갖는 상기 다중화 버스 상의 디바이스들의 존재에 대해 테스트하도록 상기 다중화 버스 인터페이스를 제어하여 상기 제1 디바이스가 검출되게 하는 명령어들을 실행할 수 있는 컴퓨터 시스템.
  14. 다중화 버스에 결합될 수 있는 제1 유형의 버스 인터페이스를 갖는 디바이스에게 시그널링하도록 상기 다중화 버스의 제1 조정 신호선을 활성화하는 단계;
    제1 유형의 버스 인터페이스를 갖는 디바이스로 상기 다중화 버스의 복수의 공통 신호선을 통한 어드레스, 커맨드 및 데이터의 전송을 지원하기에 적합한 프로토콜 및 타이밍을 사용하여 상기 다중화 버스 상에서 제1 형태의 활동을 수행하도록 시도하는 단계;
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 상기 다중화 버스의 상기 제1 조정 신호선을 비활성화하는 단계;
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 상기 다중화 버스에 결합될 수 있는 제2 유형의 버스 인터페이스를 갖는 디바이스에게 시그널링하도록 상기 다중화 버스의 제2 조정 신호선을 활성화하는 단계; 및
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 제2 유형의 버스 인터페이스를 갖는 디바이스로 상기 다중화 버스의 상기 복수의 공통 신호선을 통한 어드레스, 커맨드 및 데이터의 전송을 지원하기에 적합한 프로토콜 및 타이밍을 사용 하여 상기 다중화 버스 상에서 제2 형태의 활동을 수행하도록 시도하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서, 상기 제1 형태의 활동을 수행하도록 시도하는 단계는, 상기 복수의 공통 신호선의 클록 신호선을 제1 클록 속도로 설정하는 단계를 더 포함하고, 상기 제2 형태의 활동을 수행하도록 시도하는 단계는, 상기 클록 신호선을 제2 클록 속도로 설정하는 단계를 더 포함하는 방법.
  16. 제14항에 있어서, 상기 다중화 버스 상에서 상기 제1 형태의 활동을 수행하도록 시도하는 단계는, 상기 복수의 공통 신호선들 중 단일 공통 신호선 상에서 데이터를 직렬로 전송하는 단계를 더 포함하고, 상기 다중화 버스 상에서 상기 제2 형태의 활동을 수행하도록 시도하는 단계는, 상기 복수의 공통 신호선들 중 적어도 2개의 공통 신호선 상에서 데이터를 병렬로 전송하는 단계를 더 포함하는 방법.
  17. 제14항에 있어서, 상기 다중화 버스 상에서 상기 제1 형태의 활동을 수행하도록 시도하는 단계는, 상기 복수의 공통 신호선들 중 적어도 2개의 공통 신호선 상에서 데이터를 병렬로 전송하는 단계를 더 포함하고, 상기 다중화 버스 상에서 상기 제2 형태의 활동을 수행하도록 시도하는 단계는, 상기 복수의 공통 신호선들 중 단일 공통 신호선 상에서 데이터를 직렬로 전송하는 단계를 더 포함하는 방법.
  18. 전자 디바이스 내의 프로세서에 의해 실행되는 경우에, 상기 전자 디바이스로 하여금,
    다중화 버스에 결합될 수 있는 제1 유형의 버스 인터페이스를 갖는 디바이스에게 시그널링하도록 상기 다중화 버스의 제1 조정 신호선을 활성화하게 하고;
    제1 유형의 버스 인터페이스를 갖는 디바이스로 상기 다중화 버스의 복수의 공통 신호선을 통한 어드레스, 커맨드 및 데이터의 전송을 지원하기에 적합한 프로토콜 및 타이밍을 사용하여 상기 다중화 버스 상에서 제1 형태의 활동의 수행을 시도하게 하고;
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 상기 다중화 버스의 상기 제1 조정 신호선을 비활성화하게 하고;
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 상기 다중화 버스에 결합될 수 있는 제2 유형의 버스 인터페이스를 갖는 디바이스에게 시그널링하도록 상기 다중화 버스의 제2 조정 신호선을 활성화하게 하고;
    상기 제1 형태의 활동에 응답하는 디바이스가 없다면, 제2 유형의 버스 인터페이스를 갖는 디바이스로 상기 다중화 버스의 상기 복수의 공통 신호선을 통한 어드레스, 커맨드 및 데이터의 전송을 지원하기에 적합한 프로토콜 및 타이밍을 사용하여 상기 다중화 버스 상에서 제2 형태의 활동의 수행을 시도하게 하는
    코드를 포함하는 시스템(machine)-액세스가능 매체.
  19. 제18항에 있어서, 상기 프로세서로 하여금,
    제1 디바이스가 상기 제1 형태의 버스 활동에 응답한다면, 제1 유형의 버스 인터페이스를 갖는 제1 디바이스로부터의 명령어들을 판독하게 하고,
    제2 디바이스가 상기 제2 형태의 버스 활동에 응답한다면, 제2 유형의 버스 인터페이스를 갖는 제2 디바이스로부터의 명령어들을 판독하게 하는 시스템-액세스가능 매체.
  20. 제18항에 있어서, 상기 프로세서로 하여금,
    상기 다중화 버스 상에서 상기 제1 형태의 활동의 수행을 시도하는 동안 상기 복수의 공통 신호선들 중 클록 신호선을 제1 클록 속도로 설정하게 하고,
    상기 제2 형태의 활동의 수행을 시도하는 동안 상기 클록 신호선을 상기 다중화 버스 상에서 제2 클록 속도로 설정하게 하는 시스템-액세스가능 매체.
KR1020057018209A 2003-03-28 2004-02-11 메모리 디바이스 인터페이스를 검출하는 방법 및 장치 KR100647168B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/402,779 2003-03-28
US10/402,779 US7000056B2 (en) 2003-03-28 2003-03-28 Method and apparatus for detecting low pin count and serial peripheral interfaces
PCT/US2004/004220 WO2004095298A2 (en) 2003-03-28 2004-02-11 Method and apparatus for detecting memory device interface

Publications (2)

Publication Number Publication Date
KR20050119663A KR20050119663A (ko) 2005-12-21
KR100647168B1 true KR100647168B1 (ko) 2006-11-23

Family

ID=33130451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057018209A KR100647168B1 (ko) 2003-03-28 2004-02-11 메모리 디바이스 인터페이스를 검출하는 방법 및 장치

Country Status (8)

Country Link
US (1) US7000056B2 (ko)
EP (1) EP1609074A2 (ko)
JP (1) JP2006514771A (ko)
KR (1) KR100647168B1 (ko)
CN (1) CN100382063C (ko)
HK (1) HK1077658A1 (ko)
TW (1) TWI258668B (ko)
WO (1) WO2004095298A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1480224A1 (en) * 2003-05-22 2004-11-24 STMicroelectronics S.r.l. A semiconductor memory with a multiprotocol serial communication interface
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
TWI226552B (en) * 2003-11-20 2005-01-11 Rdc Semiconductor Co Ltd Bus integrating system
US7069371B2 (en) * 2004-03-10 2006-06-27 Silicon Storage Technology, Inc. Motherboard having a non-volatile memory which is reprogrammable through a video display port and a non-volatile memory switchable between two communication protocols
KR100647370B1 (ko) * 2004-04-20 2006-11-23 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템
US20050268020A1 (en) * 2004-05-27 2005-12-01 James David B Data transfer system with bus
WO2007105812A1 (en) * 2006-03-14 2007-09-20 Ricoh Company, Ltd. Memory card and memory card control changeover method
US20070260790A1 (en) * 2006-04-03 2007-11-08 Jerry Chen Embedded controller and method for updating the firmware thereof
US7552028B2 (en) * 2006-12-01 2009-06-23 Advantest Corporation Recording medium, test apparatus and diagnostic method
TW200839530A (en) * 2007-03-20 2008-10-01 Via Tech Inc Dynamic switching between multiplexed interfaces LPC and SPI
KR100921003B1 (ko) 2007-12-14 2009-10-09 한국전자통신연구원 신호 전송 장치 및 신호 전송 방법
US20090319708A1 (en) * 2008-06-19 2009-12-24 Yu-Ping Ho Electronic system and related method with time-sharing bus
US8255725B2 (en) 2009-04-28 2012-08-28 Kabushiki Kaisha Toshiba Information processing apparatus and power-saving control method
JP4846862B2 (ja) * 2010-05-12 2011-12-28 株式会社東芝 情報処理装置および省電力制御方法
CN103229155B (zh) * 2010-09-24 2016-11-09 德克萨斯存储系统股份有限公司 高速内存系统
US8135881B1 (en) 2010-09-27 2012-03-13 Skyworks Solutions, Inc. Dynamically configurable serial data communication interface
CN102033828B (zh) * 2010-11-24 2015-06-03 中兴通讯股份有限公司 外接卡的访问方法和系统
TWI427481B (zh) * 2011-07-01 2014-02-21 Feature Integration Technology Inc 工業標準構造介面匯流排的橋接系統、裝置與其方法
US9373962B2 (en) 2011-08-05 2016-06-21 Liebert Corporation Intelligent arbitration of power line based coordinating signals between multiple UPS buses without any auxiliary signals
US9293876B2 (en) * 2011-11-07 2016-03-22 Apple Inc. Techniques for configuring contacts of a connector
WO2014046663A1 (en) * 2012-09-20 2014-03-27 Hewlett-Packard Development Company, L.P. Detecting key positions to determine a type of cable
US9602101B2 (en) * 2013-10-07 2017-03-21 Microchip Technology Incorporated Integrated device with auto configuration
US9411772B2 (en) * 2014-06-30 2016-08-09 Echelon Corporation Multi-protocol serial nonvolatile memory interface
CN104993815B (zh) * 2015-07-22 2017-11-24 欧科佳(上海)汽车电子设备有限公司 一种通用管脚复用电路
JP2019215662A (ja) * 2018-06-12 2019-12-19 株式会社日立製作所 不揮発性メモリデバイス、及びインターフェース設定方法
CN109947488B (zh) * 2019-03-19 2022-05-10 武汉斗鱼鱼乐网络科技有限公司 通用功能模块的对象初始化方法、装置、设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1177400B (it) * 1984-12-12 1987-08-26 Honeywell Inf Systems Sistema a microprocessore
EP0424658A3 (en) 1989-10-23 1993-11-18 Ibm Computer system
GB9424104D0 (en) 1994-11-29 1995-01-18 Accelerix Ltd Multiple bus standards
US5640541A (en) * 1995-03-24 1997-06-17 Openconnect Systems, Inc. Adapter for interfacing a SCSI bus with an IBM system/360/370 I/O interface channel and information system including same
DE69616245T2 (de) 1995-12-15 2002-07-25 Nec Corp., Tokio/Tokyo Datenprozessor mit Bussteuerung
US5832244A (en) * 1996-02-20 1998-11-03 Iomega Corporation Multiple interface input/output port for a peripheral device
US5896513A (en) * 1996-07-03 1999-04-20 Intel Corporation Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US5774683A (en) * 1996-10-21 1998-06-30 Advanced Micro Devices, Inc. Interconnect bus configured to implement multiple transfer protocols
US6408347B1 (en) * 1998-12-10 2002-06-18 Cisco Technology, Inc. Integrated multi-function adapters using standard interfaces through single a access point
US6191480B1 (en) * 1999-09-07 2001-02-20 International Business Machines Corporation Universal land grid array socket engagement mechanism
US6485320B1 (en) * 2001-12-19 2002-11-26 Hon Hai Precision Ind. Co., Ltd. Land grid array connector assembly

Also Published As

Publication number Publication date
TWI258668B (en) 2006-07-21
HK1077658A1 (zh) 2006-02-17
US7000056B2 (en) 2006-02-14
CN100382063C (zh) 2008-04-16
EP1609074A2 (en) 2005-12-28
CN1764912A (zh) 2006-04-26
WO2004095298A2 (en) 2004-11-04
US20040205274A1 (en) 2004-10-14
KR20050119663A (ko) 2005-12-21
TW200422843A (en) 2004-11-01
JP2006514771A (ja) 2006-05-11
WO2004095298A3 (en) 2005-02-10

Similar Documents

Publication Publication Date Title
KR100647168B1 (ko) 메모리 디바이스 인터페이스를 검출하는 방법 및 장치
US5678065A (en) Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
US7024510B2 (en) Supporting a host-to-input/output (I/O) bridge
US6393576B1 (en) Apparatus and method for communication between integrated circuit connected to each other by a single line
US5878234A (en) Low power serial protocol translator for use in multi-circuit board electronic systems
US6012111A (en) PC chipset with integrated clock synthesizer
EP1890294A2 (en) Buffered memory module with configurable interface width
US9563398B2 (en) Impedance-based flow control for a two-wire interface system with variable frame length
JP2002049576A (ja) チップ搭載システムのためのバス・アーキテクチャ
WO2005008464A1 (en) Switch/network adapter port incorporating selectively accessible shared memory resources
WO2008101246A2 (en) System having one or more memory devices
US20200036453A1 (en) Adapting serdes receivers to a ufs receiver protocol
CN107710179B (zh) 具有多个sdio单元的多址单sdio接口
US6067590A (en) Data bus agent including a storage medium between a data bus and the bus agent device
US5448699A (en) Apparatus with leading edge delay circuit for selectively sending a delayed substitute version of a signal transmitted between an expansion card and a system bus
CN107771328B (zh) 具有多个sdio单元的单中继sdio接口
US20050060458A1 (en) Method and apparatus for sharing a device among multiple CPU systems
EP1477903A2 (en) Memory system for a radiotelephone
US7103703B1 (en) Back to back connection of PCI host bridges on a single PCI bus
US6813675B2 (en) Chipset with LPC interface and data accessing time adapting function
US20070131767A1 (en) System and method for media card communication
US6311247B1 (en) System for bridging a system bus with multiple PCI buses
KR0148474B1 (ko) Dma 검증 동작을 하는 플로피 디스크 제어기
KR101345437B1 (ko) 칩들간의 통신을 위한 인터페이스 장치 및 방법
US20030009614A1 (en) Method for selecting an expansion device in a computer unit, a circuit board, and a computer

Legal Events

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

Payment date: 20121019

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee