KR101580214B1 - 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템 - Google Patents

포트 멀티플라이어 확장을 위한 방법과 장치와 시스템 Download PDF

Info

Publication number
KR101580214B1
KR101580214B1 KR1020107022842A KR20107022842A KR101580214B1 KR 101580214 B1 KR101580214 B1 KR 101580214B1 KR 1020107022842 A KR1020107022842 A KR 1020107022842A KR 20107022842 A KR20107022842 A KR 20107022842A KR 101580214 B1 KR101580214 B1 KR 101580214B1
Authority
KR
South Korea
Prior art keywords
port
multipliers
multiplier
port multipliers
port multiplier
Prior art date
Application number
KR1020107022842A
Other languages
English (en)
Other versions
KR20100126500A (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 KR20100126500A publication Critical patent/KR20100126500A/ko
Application granted granted Critical
Publication of KR101580214B1 publication Critical patent/KR101580214B1/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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Abstract

포트 멀티플라이어들을 확장하기 위한 방법과 장치와 시스템을 개시한다. 일 실시예에서, 포트 멀티플라이어는 네트워크 호스트를 포트 멀티플라이어들과 연결한다. 포트 멀티플라이어는 중간 포트 멀티플라이어들 및/또는 하단 포트 멀티플라이어들을 구비하고 네트워크 호스트와 통신하는 포트 멀티플라이어들 각각에 대해 통신을 설정하고 유지하는 상단 포트 멀티플라이어를 포함한다. 또한, 네트워크 디바이스들은 포트 멀티플라이어들, 포트 멀티플라이어, 네트워크 호스트와 통신한다.

Description

포트 멀티플라이어 확장을 위한 방법과 장치와 시스템{METHOD, APPARATUS AND SYSTEM FOR PORT MULTIPLIER ENHANCEMENT}
본 발명의 실시예들은 대체로 네트워크의 분야에 관한 것으로, 특히 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템에 관한 것이다.
네트워크는 다수의 개인 전자 미디어 디바이스들의 상호 연결을 포함할 수 있다. 다양한 미디어 디바이스들이 데이터를 공유하고, 편리함을 증대하고, 각각의 요소를 더욱 완전히 이용하기 위해 함께 네트워킹될 수 있다. 그러나, 종래 메커니즘은 포트 멀티플라이어와 같은 다양한 요소들 및 부품들의 발전된 특징들과 동작들을 제한하여 사용자가 이러한 포트 멀티플라이어의 잠재적인 이점을 향유하지 못하게 한다. 예를 들어, 종래 메커니즘은 표준 포트 멀티플라이어가 단지 디바이스들을 연결하는 단일 단계만을 갖도록 제한하면서 포트 멀티플라이어들의 캐스케이딩을 허용하지 않는다. 도 1은 포트 멀티플라이어(104)의 캐스케이딩을 허용하지 않는 종래 메커니즘을 도시하고, 따라서 단지 디바이스들(106, 108)의 단일 단계(116)만이 포트 멀티플라이어(104)의 두 개의 디바이스 포트(112, 114)를 통해 포트 멀티플라이어(104)에 연결되도록 허용된다. 포트 멀티플라이어(104)는 호스트 포트(110)를 통해 호스트(102)에 연결된다. 다르게 말하자면, 도시된 종래 기술은 포트 멀티플라이어(104)가 포트 멀티플라이어(104)에 연결될 수 있는 추가적인 디바이스들로 캐스케이딩하는 것을 허용하지 않는다. 1:2 포트 멀티플라이어(104)는 단지 두 개의 디바이스(106, 108)의 단일 단계(116)로 제한되고, 그 결과로서 포트 멀티플라이어(104)와 포트 멀티플라이어(104)를 사용하는 도시된 네트워크(100)의 발전된 특징들과 몇 가지 이점들을 제한한다.
도 1의 포트 멀티플라이어(104)는 SATA IO 표준을 따르는 포트 멀티플라이어인 "직렬 고급 기술 첨부(SATA 또는 직렬 ATA; Serial Advanced Technology Attachment)" 포트 멀티플라이어를 포함할 수 있다. SATA 1.0 규격과 이후의 SATA Ⅱ 포트 멀티플라이어 규격을 www.serialata.org에서 확인할 수 있다. 직렬 ATA 국제 기구: 2005년 10월 27일자의 직렬 ATA 개정 2.5(www.serialata.org에서 확인 가능)는 초기 SATA 규격의 개정이고, 예를 들어 16장에 SATA 포트 멀티플라이어에 관한 정보를 포함한다. 최종 결과는 포트 멀티플라이어의 캐스케이딩이 허용되지 않으므로 소비자가 하이-엔드 특징들과 이점들을 제공할 수 있는 사용이 용이하고 저비용인 포트 멀티플라이어를 획득할 수 없다는 것이다.
포트 멀티플라이어 확장을 용이하게 하기 위한 방법과 장치와 시스템을 제공한다.
일 실시예에서, 장치는 네트워크 호스트를 포트 멀티플라이어들과 연결하는 포트 멀티플라이어를 포함한다. 포트 멀티플라이어는 중간 포트 멀티플라이어들 및/또는 하단 포트 멀티플라이어들을 구비하고 네트워크 호스트와 통신하는 포트 멀티플라이어들 각각에 대해 통신을 설정하고 유지하는 상단 포트 멀티플라이어를 포함한다. 또한, 네트워크 디바이스들은 포트 멀티플라이어들, 포트 멀티플라이어, 네트워크 호스트와 통신한다.
일 실시예에서, 시스템은 네트워크 호스트를 다수의 네트워크 디바이스에 연결하는 포트 증배된 네트워크를 포함한다. 포트 증배된 네트워크는 네트워크 호스트를 다수의 포트 멀티플라이어와 연결하는 포트 멀티플라이어를 포함한다. 포트 멀티플라이어는 중간 포트 멀티플라이어들과 하단 포트 멀티플라이어들 중 하나 이상의 포트 멀티플라이어를 구비하고 네트워크 호스트와 통신하는 다수의 포트 멀티플라이어들 각각에 대해 통신을 설정하고 유지하는 상단 포트 멀티플라이어를 포함하고, 다수의 네트워크 디바이스는 다수의 포트 멀티플라이어와 통신하고 추가로 포트 멀티플라이어와 네트워크 호스트와 통신한다.
일 실시예에서, 방법은 포트 멀티플라이어를 통해 네트워크 호스트를 다수의 포트 멀티플라이어와 연결하는 단계를 포함한다. 포트 멀티플라이어는 중간 포트 멀티플라이어들과 하단 포트 멀티플라이어들 중 하나 이상의 포트 멀티플라이어를 구비하고 네트워크 호스트와 통신하는 다수의 포트 멀티플라이어들 각각에 대해 통신을 설정하고 유지하는 상단 포트 멀티플라이어를 포함한다. 방법은 다수의 네트워크 디바이스와, 다수의 포트 멀티플라이어, 포트 멀티플라이어, 및 네트워크 호스트 간에 통신을 설정하는 단계를 포함한다.
본 발명의 실시예들은 동일한 도면 번호가 유사한 구성 요소를 나타내는 첨부 도면에서 제한의 의도가 아닌 예로서 설명된다.
도 1은 포트 멀티플라이어를 이용한 종래 메커니즘을 도시한다.
도 2는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크의 실시예를 도시한다.
도 3은 포트 멀티플라이어 확장 메커니즘의 실시예를 도시한다.
도 4는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크의 실시예를 도시한다.
도 5A와 도 5B는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크의 실시예들을 도시한다.
도 6은 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크의 실시예를 도시한다.
도 7은 포트 멀티플라이어의 실시예를 도시한다.
도 8은 포트 멀티플라이어 확장을 수행하는 프로세스의 실시예를 도시한다.
도 9는 파워-온 이후에 루트 맵 레지스터들을 설치하는 프로세스의 실시예를 도시한다.
도 10A는 포트 멀티플라이어 확장 메커니즘과 루트 맵 레지스터들을 설치하는 메커니즘을 이용한 네트워크의 실시예를 도시한다.
도 10B는 포트 멀티플라이어를 위한 루트 맵 레지스터의 실시예를 도시한다.
도 10C는 디바이스용 디바이스 포트를 위한 루트 맵 레지스터의 실시예를 도시한다.
도 11A 내지 도 11F는 루트 맵 레지스터들을 설치하기 위한 트랜잭션 순서의 실시예를 도시한다.
본 발명의 실시예들은 대체로 포트 멀티플라이어 확장에 관한 것이다.
본 명세서에 사용된 바와 같이, "네트워크" 또는 "통신 네트워크"는 디바이스들 사이에서 (음악, 오디오/비디오, 게임, 사진 등을 포함하는) 디지털 미디어 콘텐츠를 전달하는 상호접속 네트워크(interconnection network)를 의미한다. 예를 들어, 포트 멀티플라이어 네트워크는 하나 이상의 포트 멀티플라이어를 통해 SATA, 프레임 정보 구조(FIS) 등을 전달하기 위해 주로 사용된다. 그러나, 전달되는 SATA와 FIS가 디지털 미디어의 형태를 포함할 수 있다. 엔터테인먼트 네트워크는 가정 내 네트워크와 같은 퍼스널 엔터테인먼트 네트워크, 기업 환경 내 네트워크, 또는 디바이스들 및/또는 컴포넌트들의 임의의 다른 네트워크를 포함할 수 있다. 네트워크에서, 소정의 네트워크 디바이스들은 디지털 텔레비전 튜너, 케이블 셋톱 박스, 비디오 스토리지 서버, 및 그 밖의 소스 디바이스들과 같은 미디어 콘텐츠의 소스일 수 있다. 그 밖의 디바이스들은 디지털 텔레비전, 홈 씨어터 시스템, 오디오 시스템, 게임 시스템, 및 그 밖의 디바이스들과 같이 미디어 콘텐츠를 표시하거나 이용할 수 있다. 또한, 소정의 디바이스들은 비디오 및 오디오 스토리지 서버와 같이 미디어 콘텐츠를 저장하거나 전송하기 위한 것일 수 있다. 소정의 디바이스들은 다수의 미디어 기능을 수행할 수 있다. 일부 실시예들에서, 네트워크 디바이스들은 단일 근거리 통신망에 함께 위치될 수 있다. 다른 실시예들에서, 네트워크 디바이스들은 근거리 통신망들 사이의 터널링을 통해서와 같이 다수의 네트워크 세그먼트를 포괄(span)할 수 있다. 엔터테인먼트 네트워크는 다수의 데이터 인코딩 및 암호화 프로세스를 포함할 수 있다.
후속 도면들과 본 명세서 전반에 걸쳐서, 1:15의 비율이 실제로는 2-포트 포트 멀티플라이어(예를 들어, 표준 SATA 포트 멀티플라이어 1:2)인 메인 또는 상단 포트 멀티플라이어를 통해 네트워크 호스트(예를 들어, 표준 SATA 호스트)에 연결되는 최대 단계 수(예를 들어, 네트워크 디바이스들과 포트 멀티플라이어들의 수)의 단지 일 예로서 사용되는 것을 주목해야 한다. 다르게 말하자면, 일 실시예에서, 표준 1:2 포트 멀티플라이어는 임의의 수의 디바이스들(예를 들어, 15개의 디바이스와 15개의 포트 멀티플라이어)을 수용하도록 캐스케이딩되기 위해 확장된 1:15 포트 멀티플라이어로서 작동하고, 네트워크 호스트는 표준 1:2 포트 멀티플라이어를 (물리적으로는 두 개의 포트를 갖지만) 15개의 포트를 갖는 확장된 1:15 포트 멀티플라이어로 인식하고 처리하도록 속게 된다.
이러한 기술을 이용하여, 예를 들어, 포트 멀티플라이어의 하나의 포트가 네트워크 디바이스(예를 들어, 디스크 드라이브)를 연결하는 정규 디바이스 포트로 사용되고, 제2 포트가 확장된 1:15 포트 멀티플라이어 등등으로 작동하는 다른 표준 1:2 포트 멀티플라이어를 수용하는 확장 포트로 사용된다. 포트 멀티플라이어의 양 포트들이 확장 포트로서 사용될 수 있으며, 이 경우에 두 개의 추가적인 포트 멀티플라이어들이 포트 멀티플라이어에 연결될 수 있음을 숙고한다. 반면에, 특히 캐스케이딩이 종료될 경우, 캐스케이딩 연결의 포트 멀티플라이어들 중 임의의 포트 멀티플라이어의 두 개의 포트가 두 개까지의 네트워크 디바이스를 수용하는 표준 디바이스 포트들로 사용될 수 있다. 일부 실시예들에서, 포트 멀티플라이어는 다수의 포트를 갖는 것으로 작동하도록 확장될 수 있고, 이러한 다수의 포트는 15개에 제한되지 않으며, 호스트는 포트 멀티플라이어가 상기 수의 포트를 갖는 것으로 인식하도록 속게 됨을 숙고한다. 본 명세서 전반에 걸쳐서, 상단 포트 멀티플라이어의 최대 캐스케이딩 단계 수 또는 상단 포트 멀티플라이어와 연결되도록 캐스케이딩될 수 있는 디바이스들과 추가적인 포트 멀티플라이어들의 수가 15로 도시된다. 그러나, 15개까지의 단계 또는 15개까지의 포트 멀티플라이어 또는 15개까지의 디바이스들(예를 들어, 확장된 1:15 포트 멀티플라이어)이 단지 간결성과 명료성을 위한 일 예로서 사용되고, 최대 수는 임의의 수(예를 들어, SATA 프로토콜을 위한 최대 수가 15)일 수 있고, 최소 수는 0일 수 있음을 숙고한다.
포트 멀티플라이어는 그 포트들이 멀티플라이어 디바이스들(예를 들어, 하드 드라이브)과 통신하는 것을 허용하는 실리콘-기반의 디바이스를 나타낸다. 포트들은 직렬 ATA 포트들을 포함할 수 있다. 포트 멀티플라이어는 머더보드의 인클로저의 후면에 위치할 수 있고, SATA 드라이브를 포함하는 디바이스들에 대해 투명할 수 있다. 일 실시예에서, 포트 멀티플라이어는 단일 능동 호스트가 디바이스들과 통신하는 것을 허용하는 상대적으로 단순한 메커니즘인 스토리지 시스템에 대해 비용효율적이고 확장된 드라이브 범위성(drive scalability)을 허용한다. 또한, 포트 멀티플라이어는 디바이스들을 구비한 퍼스널 컴퓨터(PC) 또는 서버의 내외부 모두에서 용이하고 비용효율적인 스토리지 범위성을 허용하고, 추가적인 제어기들이 스토리지 확장을 위해 필요하지 않다. 추가적인 제어기를 구비하지 않는 것은 범용 직렬 보드(USB) 하드 드라이브(예를 들어, USB 1.1, 2.0 등), FirewireTM 등과 같이 다른 것보다 외부 스토리지에 있어서 훨씬 탁월한 성능을 허용한다. SATA 호스트는 포트 멀티플라이어를 통해 SATA 하드 드라이브와 통신하는 컴퓨터 시스템 호스트를 포함한다.
도 2는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크(200)의 실시예를 도시한다. 일 실시예에서, 표준 1:2 포트 멀티플라이어(204)(예를 들어, 표준 SATA 포트 멀티플라이어)는 표준 통신 신호(예를 들어, 표준 SATA 통신 신호)를 이용하여 호스트(202)(예를 들어, SATA 호스트)와 통신하여 사용된다. 일 실시예에서, 신규한 포트 확장 프로토콜을 이용하여, 표준 포트 멀티플라이어(204)(상단 포트 멀티플라이어)가 확장된 1:15 포트 멀티플라이어로서 작동하도록 확장된다. 바꿔 말하면, 포트 멀티플라이어(204)가 단지 두 개의 물리적인 포트를 구비하고 물리적으로 변화가 없음에도 불구하고, 포트 멀티플라이어(204)는 15개의 포트의 확장된 포트 멀티플라이어로서 작동되고 다수의 단계(222, 224)로 캐스케이딩되도록 논리적으로 확장된다. 일 실시예에서, 포트 확장 프로토콜을 이용한 포트 멀티플라이어(204)의 확장과 함께, 호스트는 (실제로 단지 두 개의 포트를 갖고 있는) 포트 멀티플라이어(204)가 15개의 포트를 갖고 있는 것으로 인식하게 된다.
상단 포트 멀티플라이어(204)는 호스트-기반 호스트 포트(212)와 포트 멀티플라이어-기반 호스트 포트(226)를 통해 호스트(202)와 연결된다. 포트 멀티플라이어(204)의 제1 디바이스 포트(214)는 네트워크 디바이스(208)를 연결하는 디바이스 포트로 사용된다. 포트 멀티플라이어(204)의 제2 디바이스 포트는 그 호스트 포트(228)를 통해 다른 포트 멀티플라이어(206)를 연결하도록 캐스케이딩되는 확장 포트(218)로서 사용된다. 상단 포트 멀티플라이어(204)처럼, 제2 포트 멀티플라이어(206)도 또한 표준 1:2 포트 멀티플라이어를 포함하지만, 그 확장 포트(220)와 디바이스 포트(216)를 통한 추가적인 캐스케이딩을 위해 확장된 1:15 포트 멀티플라이어처럼 작동하도록 확장된다. 제2 포트 멀티플라이어(206)와 제1 디바이스(208)가 제1 캐스케이딩 단계(222)를 형성하는 동안, 제2 디바이스(210)와 제2 포트 멀티플라이어(206)에 연결된 제3 포트 멀티플라이어(미도시)는 제2 캐스케이딩 단계(224)를 형성한다. 일 실시예에서, 이러한 형태의 캐스케이딩은 도시된 단일 호스트(202)에 어떤 호스트도 추가하지 않고 세 개 이상의 물리적 포트를 갖는 어떤 포트 멀티플라이어(204, 206, 및 미도시)도 없이 15 단계까지 계속될 수 있다. 후속 도면들에서 포트 멀티플라이어 확장 네트워크(200)의 다수의 실용적인 구현예들(예를 들어, 직렬 연결(daisy chain) 구현예, 피라미드 또는 허브형 구현예 등)이 도시된다.
도 3은 포트 멀티플라이어 확장 메커니즘(300)의 실시예를 도시한다. 일 실시예에서, 포트 멀티플라이어 확장 메커니즘(300)은 두 개의 물리적 포트(308)를 갖는 표준 1:2 포트 멀티플라이어(302)를 동일하게 두 개의 물리적 포트(308)를 갖는 확장된 1:15 포트 멀티플라이어(304)로 확장하는 포트 멀티플라이어 확장 프로토콜(확장 프로토콜)을 갖는 포트 멀티플라이어 확장 모듈(확장 모듈)(306)을 이용한다. 그러나, 확장된 1:15 포트 멀티플라이어는 15개까지의 추가적인 포트 멀티플라이어들과 네트워크 디바이스들을 수용하기 위해 수 개의 단계로 캐스케이딩 될 수 있다. 네트워크 디바이스들은 ATA 패킷 인터페이스(ATAPI) 디바이스, ATA 디바이스 등을 포함한다.
일 실시예에서, 신규의 확장 모듈(306)의 신규의 확장 프로토콜은 파워-업 나열 순서, 핫-플러깅/언플러깅 지원, 제어-기반 또는 FIS-기반 전달 메커니즘 등으로부터 호스트들, 포트 멀티플라이어들, 및 네트워크 디바이스들 간에 적용될 수 있는 표준 통신과 확장된 통신 모두를 설정하는 것에 이르기까지 필요한 요소들을 포함한다. 일 실시예에서, 한 묶음의 디스크(JBOD; Just a Bunch of Disks)는, 포트 멀티플라이어(302)와 같은 포트 멀티플라이어들을 확장하기 위해 사용되도록, 확장된 모듈(306)의 신규의 확장 프로토콜을 형성하는 JBOD-enhanced(JBOD-E)로 변경된다. 제어기는 각각의 드라이브를 독립형(stand-alone) 디스크로서 처리하고, 따라서 각각의 드라이브는 독립적인 논리 드라이브가 된다. JBOD는 데이터 리던던시를 제공하지 않는다. 또한, 확장된 포트 멀티플라이어들(304)을 사용한 네트워크는 JBOD-E-기반 또는 JBOD-E-호환형 네트워크를 포함하고, 네트워크의 소정의 표준 요소들 또는 부품들은 JBOD-호환형이지만 다른 JBOD-E-호환형 요소들 및 부품들과 함께 작동할 수 있다. JBOD는 저가격 디스크 리던던트 어래이(RAID; Redundant Array of Independent(or Inexpensive) Disks)에 따라 구성되지 않은 하드 디스크들을 나타낸다. RAID는 성능과 장애 허용성을 개선하기 위한 디스크 드라이브들의 서브시스템을 나타낸다. 바꿔 말하면, RAID는 성능과 장애 허용성을 위해 다수의 드라이브를 결합하여 사용하는 디스크 드라이브의 범주를 나타낸다. RAID는 보다 나은 성능, 리던던시를 통한 신뢰성, 및/또는 집합을 통한 보다 큰 디스크 볼륨 크기를 달성할 목적으로 다양한 구성에서 두 개 이상의 하드 디스크 드라이브의 통합된 사용을 지원하는 기술을 나타낸다.
도 4는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크(400)의 실시예를 도시한다. 일 실시예에서, 네트워크(400)는 포트 멀티플라이어(404)의 직렬 연결형 캐스케이딩 확장을 도시한다. 도시된 실시예에서, 포트 멀티플라이어(404)는 추가적인 포트 멀티플라이어(406)와 디바이스(434)를 추가하면서 캐스케이딩되도록 확장된다. 마찬가지로, 포트 멀티플라이어(406)도 또한 다른 포트 멀티플라이어(408)와 다른 디바이스(436)를 추가하면서 캐스케이딩되도록 확장된다. 이러한 캐스케이딩 프로세스는 포트 멀티플라이어(432)와 디바이스(462)가 연결에 추가될 때까지 계속된다. 이에 도시된 15개의 디바이스(434~462)보다 더 많거나 더 적은 임의의 수의 디바이스들이 포트 멀티플라이어(404)로부터 캐스케이딩될 수 있음을 숙고한다.
일 실시예에서, 포트 멀티플라이어(404)는 호스트(402)에 연결된다. 호스트(402)와 상부 확장된 포트 멀티플라이어(404) 간의 통신 신호는 표준 SATA 신호(464)로 간주된다. 그러나, 상부 확장된 포트 멀티플라이어(404)에 후속하는 통신 신호들은 확장된 SATA 신호들(466, 468)로 간주된다. 다르게 말하자면, SATA 규격을 따르고 디바이스들(402, 404) 간에 표준 통신을 유지하도록 표준 SATA 신호(464)가 상부 확장된 포트 멀티플라이어(404)와 호스트(402) 사이에서 유지된다. 그러나, 호스트(402)는 상부 확장된 포트 멀티플라이어(404)가 15개의 포트를 갖는 것으로 인식하도록 속게 되고, 이는 상부 확장된 포트 멀티플라이어(404)가 확장된 SATA 신호들(466, 468)을 이용하여 추가적인 확장된 포트 멀티플라이어들(406~432)과 디바이스들(434~462)을 갖도록 캐스케이딩되는 것을 허용한다.
각각의 확장된 포트 멀티플라이어들(404~432)은 노드로 간주되고, 포트 멀티플라이어(404)는 SATA 호스트(402)와 연결되는 상단 포트 멀티플라이어로 간주되고, 마지막 디바이스(462)와 연결되는 마지막 포트 멀티플라이어(432)는 하단 노드로 간주된다. 또한, 제3자 포트 멀티플라이어(미도시)와 연결되는 포트 멀티플라이어는 마지막 JBOD- 또는 JBOD-E-기반 SATA 포트 멀티플라이어로 간주되기 때문에 또한 하단 노드로 간주된다. 그러나, 제3자 포트 멀티플라이어가 JBOD-호환형일 수 있다는 것이 숙고된다. 또한, 각각의 노드는 부모 및/또는 자식 노드로서 고려된다. 현재 노드의 호스트 포트에 부착된 노드는 부모로 간주되고, 현재 노드의 디바이스 포트에 부착된 노드는 자식으로 간주된다. 예를 들어, 포트 멀티플라이어(408)는 포트 멀티플라이어(410)에 대해 부모 노드 역할을 하고, 포트 멀티플라이어(406)에 대해 자식 노드 역할을 한다. 그러므로, 포트 멀티플라이어(408)처럼 포트 멀티플라이어들(406, 410~430)은 각각의 노드(408~430)가 부모와 자식 양쪽 역할을 하는 중간 노드들로 간주된다. 이러한 기술을 이용하여, 상단 포트 멀티플라이어(404)는 부모 노드가 없기 때문에 단지 포트 멀티플라이어(406)에 대해 부모 역할만 한다. 반대로, 하단 포트 멀티플라이어(432)는 자식 노드가 없기 때문에 단지 포트 멀티플라이어(430)에 대해 자식 역할만 한다. 일 실시예에서, 네트워크(400)는 JBOD-E 프로토콜을 이용한 JBOD-E 표준 네트워크이다. 그러나, 다른 형태의 프로토콜들이 숙고되고 사용될 수 있다.
데이터 루팅의 측면에서, 다른 임무들 가운데서 노드들(404~432) 간의 데이터 통신을 용이하게 하기 위해 루트 맵(RouteMap) 레지스터들이 각각의 노드(404~432)에 사용된다. 예를 들어, 각각의 노드(404~432)는 이러한 JBOD-E 표준 네트워크(600)에 포트들을 어드레싱하기 위해 레지스터 세트를 관리할 수 있다. 포트는 하나의 노드를 다른 노드에 연결하는 것을 용이하게 하는 연결점을 나타낸다. 이에 도시된 각각의 SATA 포트 멀티플라이어(404~432)는 예를 들어 두 개의 포트를 갖고, 제3자 포트 멀티플라이어는 상이한 수의 포트를 가질 수 있다. 각각의 포트 멀티플라이어(404~432)의 두 개의 포트는, 포트 멀티플라이어(404)가 그러하듯이, 디바이스(예를 들어, 디바이스(434))를 연결하는 디바이스 포트(예를 들어, 디바이스 포트(470))와 다른 포트 멀티플라이어(예를 들어, 포트 멀티플라이어(406))를 연결하는 호스트 포트(468)를 포함할 수 있다.
일 실시예에서, 하단 노드(432)는 아무런 의존성 없이 그 RouteMap 레지스터가 업데이트되도록 한다. 하단 노드(432)가 RouteMap 레지스터를 보고하도록 요구되면, 하단 노드(432)는 RouteMap 레지스터 콘텐츠를 그 부모 노드(예를 들어, 상부 노드)(430)에 제공한다. 부모 노드(430)는 이제 유효한 RouteMap 레지스터를 갖게 되고 따라서 그 부모 노드(428)에 응답할 수 있다. 이러한 프로세스를 반복하여, 마침내 상단 노드(404)는 그 자식 노드(406)의 RouteMap 레지스터들을 판독할 수 있다. 일단 상단 노드(404)가 그 자식 노드(406)의 RouteMap 레지스터를 판독하면, 다음으로 상단 노드(404)는 그 자식 노드(406)에 포트 멀티플라이어 포트(PMP)를 할당하고, 다음으로 PMP는 그 자식 노드(408) 등등에 보급되어, 마침내는 하단 노드(432)가 그 부모 노드(430)로부터 PMP를 수신하고 모든 노드(404~432)의 RouteMap 레지스터들이 설치될 때까지 진행된다.
이러한 JBOD-E 네트워크(400)의 토폴로지를 이해하기 위해, 호스트(402)는 각각의 RouteMap 레지스터들을 판독하기 위해 각각의 노드(404~432)에 액세스한다. 그러나, 네트워크(400) 내의 각각의 노드(404~432)는 자체 식별 번호를 갖지 않을 수 있기 때문에, 호스트(402)로부터 개별적인 노드들(404~432) 각각을 어드레싱하는 것이 용이하지 않다. 이러한 장애를 극복하기 위해, 토큰 기술의 실시예가 도입되고, 토큰이 속하는 노드(404~432)의 RouteMap 레지스터가 명령(예를 들어, Read Port Multiplier 명령)의 결과로서 되돌려질 수 있다. 토큰은 상응하는 토큰 정보 레지스터(예를 들어, Tokeninfo 레지스터)를 업데이트하여 순방향 또는 역방향으로 이동될 수 있다. 이러한 기술/프로세스의 일부 특징들은 다음을 포함한다. (1) 단일 토큰이 전체 JBOD-E 네트워크(400)에서 사용 가능하게 된다. (2) 디폴트에 의해, JBOD-E 네트워크(400)의 각각의 노드(404~432)에서 순방향(예를 들어, FWARD)과 역방향(예를 들어, BWARD)이 0으로 설정된다. (3) 노드(406)와 같은 특정 노드의 FWARD가 모두 0이면, 노드(406)는 토큰을 갖는다. (4) 상단 노드 포트 멀티플라이어(404)와 같은 상부 노드와 연결되어 있는 노드(406)와 같은 하부 노드 포트 멀티플라이어의 RouteMap 레지스터에 액세스하기 위해, 호스트(402)가 FWARD의 비트0을 1로 업데이트한다. 다음으로, 토큰은 상부 노드 포트 멀티플라이어(404)에 연결된 하부 노드 포트 멀티플라이어(406)에 속한다. 또한, 호스트(402)가 RouteMap 레지스터를 획득하기 위해 포트 멀티플라이어를 판독하기 위한 명령(예를 들어, Read Port Multiplier 명령)을 발생한 경우, 상부 노드 포트 멀티플라이어(404)와 연결된 하부 노드 포트 멀티플라이어(406)로부터 응답이 수신된다. 모든 노드들(404~432)에 도달하기 위해, 하단 노드(432)로부터 호스트(402)에 도달할 때까지 다양한 노드들(404~432) 사이에서 RouteMap 레지스터를 전진시키는 것과 같이, RouteMap 레지스터의 전진이 이러한 프로세스를 반복하여 수행된다. 토큰을 역방향으로 이동시키기 위해, 호스트(402)는 TokenInfo 레지스터의 BWARD 비트에 RouteMap을 기입한다. 간결성과 명확성을 위해, 단순화된 네트워크(400)가 도시된다. 그러나, 임의의 수의 확장된 포트 멀티플라이어들로서 작동하는 포트 멀티플라이어들, 디바이스들, 및/또는 제3자 포트 멀티플라이어들이 네트워크에서 사용될 수 있음이 숙고된다.
도 5A는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크(500)의 실시예를 도시한다. 도시된 네트워크(500)는 포트 멀티플라이어(504)의 허브형 또는 피라미드형 캐스케이딩 확장을 제공한다. 도 4의 직렬 연결 네트워킹 메커니즘(400)의 15 단계의 포트 멀티플라이어들과 디바이스들과는 달리, 도시된 실시예에는, 4 단계(572~578)의 포트 멀티플라이어들(504~532)과 단일 단계(580)의 네트워크 디바이스들(534~560)이 있다. 포트 멀티플라이어(532)의 마지막 포트(570)는 예를 들어 최대 수인 15개의 디바이스(534~562)가 달성되었기 때문에 미사용 또는 미할당으로 남겨진다. 다시, (15개의 디바이스보다 더 많거나 더 적은 경우를 포함하여) 임의의 수의 디바이스가 할당될 수 있다는 것이 숙고된다. 그러나, 본 명세서에서는, 최대 수인 15개의 디바이스가 간결성, 명확성, 일관성을 위해 일 예로서 사용된다.
일 실시예에서, 포트 멀티플라이어(504)는 호스트(502)가 15개까지의 디바이스(534~562)에 할당되도록 캐스케이딩되는 확장된 1:15 SATA 포트 멀티플라이어라고 믿고 있는 표준 1:2 SATA 포트 멀티플라이어를 포함한다. 이는 먼저 호스트 포트를 이용하고 표준 SATA 통신 신호(582)에 의해 통신하여 상단 포트 멀티플라이어(504)를 호스트(502)에 연결함으로써 수행된다. 다음으로, 한 쌍의 포트 멀티플라이어(506, 508)가 상단 포트 멀티플라이어(504)의 두 개의 포트를 이용하고 확장된 SATA 통신 신호(584)에 의해 통신하여 상단 포트 멀티플라이어(504)와 연결된다. 마찬가지로, 나머지 포트 멀티플라이어들(510~532)과 디바이스들(534~562)도 확장된 SATA 통신 신호를 이용하여 서로 연결되어 통신하게 된다.
도시된 실시예가 15개의 포트 멀티플라이어(504~532)와 15개의 네트워크 디바이스(534~562)를 사용할지라도, 15보다 더 적거나 더 클 수 있는 임의의 수의 포트 멀티플라이어들과 디바이스들이 사용될 수 있다는 것이 숙고된다. 예를 들어, 도 5B는 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 이러한 네트워크(590)의 실시예를 도시한다. 도 5B의 도시된 실시예에서, 포트 멀티플라이어(592)는 호스트(591)와 통신한다. 그러나, 도 5A의 허브형 네트워킹 메커니즘(500)과 달리, 도 5B의 도시된 실시예에서는, 단지 두 개의 포트 멀티플라이어(593, 594)가 상단 포트 멀티플라이어(592)를 확장하기 위해 추가된다. 두 개의 추가적인 포트 멀티플라이어(593, 594)는 네 개의 네트워크 디바이스(595~598)를 사용하기 위해 추가로 확장되고, 두 개의 포트 멀티플라이어(593, 594) 각각은 두 개의 포트를 사용한다.
이러한 허브형 네트워킹 메커니즘(590)에 다양한 변화가 이루어질 수 있고 이는 여전히 형성 및 실시될 수 있다는 것이 숙고된다. 예를 들어, 다른 포트 멀티플라이어(593) 대신에, 다른 네트워크 디바이스가 제2 (디바이스) 포트를 이용하여 상단 포트 멀티플라이어(592)와 통신하여 사용될 수 있고, 이때 제1 (호스트) 포트는 포트 멀티플라이어(595)에 의해 사용 중이다. 다른 도시와 같이, SATA 호스트(591)와 상단 포트 멀티플라이어(592) 간의 통신 신호는 표준 SATA 통신 신호(586)를 이용하고, 나머지 포트 멀티플라이어들(593, 594)과 디바이스들(595~598)은 확장된 SATA 통신 신호(588)를 이용하여 통신한다. 일 실시예에서, 네트워크들(500, 590)은 JBOD-E 프로토콜을 이용한 JBOD-E 표준 네트워크이다. 하지만, 다른 형태의 프로토콜들이 숙고되고 사용될 수 있다.
도 6은 포트 멀티플라이어 확장 메커니즘의 실시예를 이용한 네트워크(600)의 실시예를 도시한다. 도시된 실시예에서, 네트워크(600)는 상이한 규격에 따르고/따르거나 상이한 제조자에 의해 만들어진 제3자 포트 멀티플라이어들(608, 610)을 포함하는 허브형 캐스케이딩을 사용한다. 그러나, 확장된 포트 멀티플라이어 기술과 프로토콜을 사용하는 두 개의 포트 멀티플라이어(608, 610)가 다른 두 개의 표준 포트 멀티플라이어(604, 606)와 함께 사용된다. 예를 들어, 두 개의 제3자 포트 멀티플라이어(608, 610)는 JBOD-E 프로토콜과 호환되지 않을 수 있고 두 개의 표준 SATA 포트를 구비하지 않을 수 있다(예를 들어, 포트 멀티플라이어(608)는 세 개의 포트를 갖는 1:3 포트 멀티플라이어이고 포트 멀티플라이어(610)는 네 개의 포트를 갖는 1:4 포트 멀티플라이어이다.). 그러나, 확장된 포트 멀티플라이어 메커니즘을 이용하여, 일 실시예에 따라, 두 개의 제3자 포트 멀티플라이어(608, 610)가 두 개의 1:2 SATA 포트 멀티플라이어(604, 606)와 함께 작동하게 된다.
일 실시예에서, 상단 포트 멀티플라이어(604)가 호스트(602)의 호스트 포트와 통신하고, 추가로 JBOD-E-호환형 SATA 포트 멀티플라이어(606)와 제3자 포트 멀티플라이어(610)와 통신한다. 제3자 포트 멀티플라이어(610)는 네 개의 포트를 갖고 네 개의 네트워크 디바이스(620~626)와 연결된다. 포트 멀티플라이어(606)는 디바이스 포트를 통해 네트워크 디바이스(630)와 연결되고 추가로 포트 멀티플라이어(606)의 호스트 포트를 통해 제3자 포트 멀티플라이어(608)와 연결된다. 제3자 포트 멀티플라이어(608)는 세 개의 포트를 갖고 세 개의 네트워크 디바이스(614~616)와 연결된다. 본 명세서에 기술된 다른 캐스케이딩 네트워킹 메커니즘들과 같이, 이러한 제3자 허브 캐스케이딩 네트워크(600)는 또한 호스트(602)가 상단 포트 멀티플라이어(604)를 15개의 포트를 갖는 확장된 1:15 포트 멀티플라이어로 속아서 인식하도록 호스트(602)와 상단 포트 멀티플라이어(604) 간에 표준 SATA 통신 신호(628)를 사용한다. 그러나, 포트 멀티플라이어들(604~610)과 네트워크 디바이스들(612~626) 간의 통신 신호는 확장된 통신 SATA 신호(630)이다.
일 실시예에서, 나열(enumeration)과 번호 지정(numbering)이 파워-온 및/또는 핫-플러깅/언플러깅 이벤트 동안에 이루어진다. 그러나, 어느 경우이든, SATA 호스트(602)가 나열 프로세스를 인식하지 않을 수 있다. 상단 포트 멀티플라이어(604)는 1:15 SATA 포트 멀티플라이어인 것처럼 작동하고, 따라서 SATA 호스트(602)가 상단 포트 멀티플라이어(604)를 1:15 SATA 포트 멀티플라이어로 알거나 인식한다. 예를 들어, JBOD-E 표준은 SATA 포트 멀티플라이어 규격을 따르는 제3자 포트 멀티플라이어들(608, 610)을 지원한다. 명령이 제3자 포트 멀티플라이어들(608, 610)에 액세스하도록 배치된 경우, 제3자 포트 멀티플라이어들(608, 610)은 각각의 확장된 부모 포트 멀티플라이어들(606, 604)에 노출된다.
예를 들어, 파워-온 동안, 호스트(602)로부터 "소프트웨어 리셋" 명령을 수신한 후에, 상단 포트 멀티플라이어(604)는, 연결된 제3자 노드(610)뿐만 아니라, 다른 제3자 포트 멀티플라이어(608)에 대해 부모 노드로서 작동하고 상기 명령어를 송신하는 다음 (자식) 노드 포트 멀티플라이어(606)에도 소프트웨어 리셋 명령을 발생한다. 이는 명령이 ATA/ATAPI-기반 네트워크 디바이스들(612~616)에 도달할 때까지 계속된다. 각각의 SATA 노드(604, 606, 608, 610)가 호스트(602)로 레지스터 FIS 디바이스(612~626)를 송신하기 전에 후속하는 소프트웨어 리셋 명령들의 완료를 기다려야 하는 것은 아니다. 소프트웨어 리셋 명령의 서명이 포트 멀티플라이어(604, 606)의 서명이면, 노드(604, 606)가 JBOD-E 호환형인지 판단하기 위해, 노드(604, 606)의 모델 번호와 공급자 ID 또는 전역 상태 제어 레지스터(GSCR; Global Status Control Register)(예를 들어, GSCR[0])가 판독된다. 노드(604, 606)가 JBOD-E 호환형이면, 현재 노드는 그 노드(604, 606)의 루트 맵(RouteMap) 레지스터들을 판독한다. 또한, 각각의 노드(604, 606)는 그 루트 맵 레지스터가 유효한 정보를 포함할 때까지 응답할 필요가 없다.
도시된 실시예에서, 상단 포트 멀티플라이어(604)는 포트 멀티플라이어(606)와 제3자 포트 멀티플라이어(610)에 대해 부모 노드 역할을 한다. 상단 포트 멀티플라이어(604)는 그 위에 다른 포트 멀티플라이어 노드가 없기 때문에 상단 노드 역할을 하지만, 또한 네트워크(600)에서-제3자 포트 멀티플라이어(610)에 대해-하단 노드 역할을 한다. 마찬가지로, 포트 멀티플라이어(606)는 상단 포트 멀티플라이어(604)에 대해 자식 노드 역할을 하고, 네트워크(600)에서 제3자 포트 멀티플라이어(608)에 대해 부모 노드 역할을 한다. 포트 멀티플라이어(606)는 네트워크(600)에서-제3자 포트 멀티플라이어(608)에 대해-하단 노드 역할을 하지 않는다. 대조적으로, 포트 멀티플라이어(604)는 부모 또는 상부 노드 없이 상단 노드로 간주된다.
도 7은 포트 멀티플라이어(700)의 실시예를 도시한다. 도시된 포트 멀티플라이어(700)는, 본 명세서 전반에 걸쳐 기술된 바와 같이 포트 멀티플라이어 확장 메커니즘을 갖는 네트워크에서 사용되도록, 확장된 포트 멀티플라이어로서 작동할 수 있는 표준 SATA 포트 멀티플라이어를 포함한다. 포트 멀티플라이어(700)는 두 개의 네트워크 디바이스들을 수용하기 위해 두 개의 표준 디바이스 포트(706, 708)(예를 들어, SATA 디바이스 포트)를 포함한다. 포트 멀티플라이어 확장 메커니즘의 실시예를 사용하면, 디바이스 포트들(706, 708) 중 하나의 디바이스 포트는 포트 멀티플라이어(700)를 다른 포트 멀티플라이어에 연결하는 호스트 포트 역할을 하도록 사용되고, 나머지 디바이스 포트는 여전히 디바이스에 연결되는 디바이스 포트 역할을 하도록 사용될 수 있다. 다른 실시예에서, 디바이스 포트들(706, 708) 모두가 두 개의 다른 포트 멀티플라이어에 연결되는 호스트 포트 역할을 하도록 사용될 수 있다. 이러한 포트 멀티플라이어들(700)을 캐스케이딩하는 포트 멀티플라이어 확장 메커니즘이 본 명세서 전반에 걸쳐 기술된다.
포트 멀티플라이어(700)는 포트 멀티플라이어(700)가 네트워크에서 상단 노드 포트 멀티플라이어 역할을 하는 경우 네트워크 호스트(예를 들어, SATA 호스트)에 연결되도록 사용되거나 또는 포트 멀티플라이어(700)가 네트워크에서 중간 또는 하단 노드 포트 멀티플라이어 역할을 하는 경우 부모 노드 포트 멀티플라이어에 연결되도록 사용되는 호스트 포트(704)(예를 들어, SATA 호스트 포트)를 더 포함한다. 디바이스 포트들(706, 708)과 호스트 포트(704)가 버퍼(710~714)를 통해 포트 멀티플라이어 코어(702)에 연결된다.
포트 멀티플라이어(700)는 상태 발광 다이오드(LED) 드라이버들(716), 내장된 자기 시험 기능(BIST; Build-In-Self-Test) 및 공동 테스트 액션 그룹(JTAG; Joint Test Action Group) 메커니즘들(718), 위상 고정 루프(PLL)(724), 직렬 전기적 소거 및 프로그램 가능 판독전용 메모리(EEPROM)(722), SATA 인클로저 관리 브리지(SEMB; SATA Enclosure Management Bridge)(720)를 더 포함한다. LED는 일반 LED 회로에서와 같이 p-n 접합의 순방향에서 전기적으로 바이어스된 경우에 응집되지 않는 좁은 스펙트럼의 빛을 방출하는 반도체 다이오드를 나타낸다. 집적 회로(IC) 내의 BIST 메커니즘(718)은 IC의 내부 기능성의 전부 또는 일부를 검증하는 기능이다. 예를 들어, BIST 메커니즘(718)은 기능성을 검증하기 위해 발전된 필드버스 시스템에 구비될 수 있다. JTAG(718)는 경계 스캔에 의해 인쇄 회로 기판을 테스트하기 위해 사용된 테스트 액세스 포트들을 위한 표준 테스트 액세스 포트와 경계 스캔 구조(Standard Test Access Port and Boundary Scan Architecture)라 불리는 IEEE 1149.1 표준을 위해 자주 사용되는 이름이다.
PLL(724)은 "기준(reference)" 신호의 위상에 대해 고정된 관계를 포함하는 신호를 발생하는 전자 제어 시스템을 나타낸다. 이는 현대 위상 고정 루프에 선행한 것이다. EEPROM은 예를 들어 교정 테이블 또는 디바이스 구성과 같은 소량의 휘발성 데이터를 저장하기 위해 컴퓨터와 그 밖의 디바이스에서 사용되는 비휘발성 스토리지 칩을 나타낸다. 직렬 EEPROM(722)은 전형적으로 세 단계, OP-Code 단계, Address 단계, Data 단계로 동작한다. OP-Code는 통상 EEPROM 디바이스 (또는 대부분의 집적회로간(I2C) 디바이스들이 내재됨)의 직렬 입력 핀에 대한 최초 8비트 입력이다. 디바이스의 깊이에 따라 8비트 내지 24비트의 어드레싱이 뒤따르고, 다음으로 판독 또는 기입될 데이터가 온다. SEMB(720)는 I2C 버스를 통해 호스트 제어기와 동료 인클로저 관리 디바이스 간에 대역내 인클로저 관리 데이터를 전달한다.
도 8은 포트 멀티플라이어 확장을 수행하는 프로세스의 실시예를 도시한다. 처리 블록(802)에서 호스트(예를 들어, SATA 호스트)와 표준 2-포트 포트 멀티플라이어(예를 들어, 표준 1:2 SATA 포트 멀티플라이어)가 식별된다. 다음으로, 처리 블록(804)에서 호스트가 호스트 포트를 이용하여 포트 멀티플라이어와 연결된다. 호스트와 포트 멀티플라이어 간의 통신이 표준 통신 신호(예를 들어, 표준 SATA 통신 신호)를 포함하는 통신 신호를 통해 설정된다. 일 실시예에서는, 처리 블록(806)에서 신규의 포트 멀티플라이어 프로토콜을 갖는 신규의 포트 멀티플라이어 확장 메커니즘이 호스트와 포트 멀티플라이어에 도입된다. 처리 블록(808)에서, 이 확장 메커니즘을 이용하여, 호스트는 표준 2-포트 포트 멀티플라이어가 셋 이상의 포트(예를 들어, 15개의 포트)를 갖는 것으로 인식하도록 속게 된다.
일단 호스트가 포트 멀티플라이어를 셋 이상의 포트를 갖는 것으로 인식하기 시작하면, 처리 블록(810)에서 포트 멀티플라이어는 상단 포트 멀티플라이어 역할을 하고, 다수의 포트 멀티플라이어와 네트워크 디바이스와 연결되도록 캐스케이딩 된다. 이전의 도면들에서 기술된 바와 같이, 캐스케이딩은 최대 수(예를 들어, 15개의 디바이스와 15개의 포트 멀티플라이어)에 도달할 때까지 하나 이상의 포트 멀티플라이어와 네트워크 디바이스를 연결에 추가하여 다양한 포맷(예를 들어, 직렬 연결, 허브형, 제3자 허브형 등)으로 이행될 수 있다. 이러한 기술은 이전 도면들 및 본 명세서의 다른 부분에서 더 설명된다.
도 9는 파워-온 이후에 루트 맵 레지스터들을 설치하는 프로세스의 실시예를 도시한다. 일 실시예에서는, 처리 블록(902)에서 파워-온이 수행되고, 다음으로 처리 블록(904)에서 노드의 아이덴티티를 확인한다. 세가지 아이덴티티는 처리 블록(906)에서 단지 부모일 수 있는 상단 노드, 처리 블록(916)에서 단지 자식일 수 있는 하단 노드, 또는 처리 블록(926)에서 부모와 자식 모두일 수 있는 중간 노드를 포함한다. 노드가 상단 노드(예를 들면, 상단 포트 멀티플라이어)로 식별되면, 처리 블록(908)에서 상단 노드는 그 자식 노드(반드시 하단 노드일 필요는 없음)로부터 RouteMap 레지스터를 기다린다. 처리 블록(910)에서 PMP가 할당된다. 다음으로, 처리 블록(912)에서 업데이트된 RouteMap 레지스터가 자식 노드로 송신되고, 처리 블록(914)에서 상단 노드가 준비된다.
노드가 하단 노드이면, 처리 블록(918)에서 채널 수(CHNUM)가 작성된다. 처리 블록(920)에서 하단 노드의 부모 노드(반드시 상단 노드일 필요는 없음)는 RouteMap 레지스터를 판독하도록 요구된다. 처리 블록(922)에서 하단 노드는 부모 노드가 RouteMap 필드를 기입할 때까지 대기하고, 다음으로 처리 블록(924)에서 하단 노드가 준비된다.
다시 처리 블록(926)을 참조하면, 노드가 중간 노드(예를 들어, 상단 노드 또는 하단 노드가 아님)로 식별된 경우, 처리 블록(928)에서, 중간 노드는 그 자식 노드로부터 RouteMap 레지스터를 기다린다. 처리 블록(930)에서 CHNUM이 작성된다. 처리 블록(932)에서 중간 노드의 부모 노드는 RouteMap 레지스터를 판독하도록 요구된다. 다음으로, 처리 블록(934)에서 중간 노드는 부모 노드가 RouteMap 필드를 업데이트할 때까지 대기하고, 처리 블록(936)에서 PMP가 할당된다. 다음으로, 처리 블록(938)에서 부모 노드는 업데이트된 RouteMap 레지스터를 자식 노드로 송신한다. 다음으로, 처리 블록(940)에서 중간 노드가 준비된다.
도 10A는 포트 멀티플라이어 확장 메커니즘과 루트 맵 레지스터들을 설치하는 메커니즘을 이용한 네트워크(1000)의 실시예를 도시한다. 일 실시예에서, 루트 맵(RouteMap) 레지스터들이 파워-온 이후에 설치되고 호스트(1102)로부터 FIS 전달을 시작할 준비가 된다. 노드(1004~1008)(예를 들어, 포트 멀티플라이어(1006))를 위한 RouteMap 레지스터는 노드(1006)를 위한 루트 맵(RouteMap)에 관한 정보를 포함한다. CHNUM_NODE는 노드(1006) 아래의 또는 노드(1006)와 직접 통신하는 디바이스들(1020)의 수를 나타내고, ROUTEMAP_NODE는 노드(1006)에 속하는 PMP(예를 들어, PMP5)에 상응하는 비트를 나타낸다. 디바이스(1010~1018)(예를 들어, 제1 디바이스(Dev0)(1012))를 위한 RouteMap 레지스터는 네트워크(1000)에서 제1 디바이스(Dev0)(1012)의 디바이스 포트를 위한 루트 맵(RouteMap)에 관한 정보를 포함한다. 이 경우에, CHNUM_D0은 Dev0 포트 아래의 전체 디바이스(예를 들어, 디바이스(1012))의 수를 나타내고, ROUTEMAP_D0은 Dev0 포트에 속하는 PMP(예를 들어, PMP0)에 상응하는 각각의 비트를 나타낸다. 다른 디바이스들(Dev1~Dev4)(1014~1020)(일부 경우에선 15개에 달하는 디바이스들(Dev1~DevE))에 관한 레지스터들은 제1 디바이스(Dev0)와 동일한 정보를 갖는다.
일단 RouteMap 레지스터들이 업데이트되면, 원격 디바이스들에 대한 액세스가 다음과 같이 이루어진다. 호스트-대-디바이스 데이터 전송을 수행하기 위해, 노드(1006~1010)는 FIS 헤더로부터 PMP 번호들(예를 들어, PMP0~PMP5)을 수신하고, RouteMap 레지스터를 조사하고, 어떤 디바이스 포트가 FIS를 송신했는지 판단한다. 디바이스-대-호스트 데이터 전송을 수행하는 경우에, 따라서 하단 노드(1006~1008)(예를 들어, 디바이스(1012~1020) 또는 제3자 포트 멀티플라이어(1010)에 직접 부착된 노드)가 PMP 필드를 업데이트하고, 비-하단 노드(예를 들어, 제3자 포트 멀티플라이어(1010))가 어떤 변경도 없이 FIS를 전달한다. 또한, 호스트-대-디바이스 데이터 전송의 경우에, 목표 PMP가 존재하지 않으면, FIS는 SATA 규격에 정의된 바와 같이 SyncEscape 메커니즘을 이용하여 종료된다. 액세스가 PSCR 구간을 판독하기 위한 것이고 목표 PMP가 존재하면, PortNum이 루트 정보를 얻기 위해 사용된다. 상단 노드(1004)에 대해, 액세스가 PSCR 구간을 판독하기 위한 것이고 목표 PMP가 존재하지 않으면, 미리 결정된 디폴트 값이 호스트(1002)로 되돌려진다. 재전송에 의해 해결될 수 없는 충돌을 피하기 위해, JBOD-E의 모든 포트들이 전체 FIS를 수신하는 것이 가능하다. 호스트(1002)의 호스트 포트의 FIS가 디바이스들(1012~1020)의 목적지 디바이스 포트들에 도달할 수 있다는 것을 보장하기 위해, 잠재적인 버스 충돌(예를 들어, SATA 규격의 XRDY-XRDY 충돌)의 경우에 부모 노드가 더 높은 우선순위를 부여 받고, 따라서 잠재적인 버스 충돌을 피할 수 있으며 데이터가 자유롭게 유동할 수 있다.
일 실시예에서, JBOD-E는 네트워크(1000)의 일부인 제3자 포트 멀티플라이어들(1010)이 SATA 포트 멀티플라이어 규격을 따르는 한 이러한 제3자 포트 멀티플라이어들(1010)을 지원한다. 예를 들어, 노드(1008)는 제3자 포트 멀티플라이어(1010)에 액세스하기 위해 일련의 명령을 발생하고, 포트들을 제3자 포트 멀티플라이어(1010)로부터 그 부모 노드(1004), 이 예에서는 상단 포트 멀티플라이어(1004)로 노출한다. 노드(1008)는 PMP에 대한 명령(예를 들어, 소프트웨어 리셋 명령)을 제3자 포트 멀티플라이어(1010)로 발생한다. 노드(1008)는 디바이스들(1012~1016)의 디바이스 ID를 얻기 위해 GSCR[0]을 판독하고 제3자 포트 멀티플라이어(1010)가 JBOD-E 호환형이었는지를 판단한다. 다음으로, 노드(1008)는 제3자 포트 멀티플라이어(1010)의 디바이스 포트들의 수를 얻기 위해 GSCR[2]를 판독한다. 노드(1008)는 RouteMap 레지스터를 통해 부모 노드(1004)로 디바이스 포트들의 수를 되돌려준다. 노드(1008)는 RouteMap 정보를 제3자 포트 멀티플라이어(1010)의 실제 PMP로 변환하는 테이블을 유지한다. 또한, 테이블 포맷은 구현에 따라 특수하고 호스트(1002)에 노출될 필요가 없을 것이다.
도 10B는 포트 멀티플라이어(1004~1008)를 위한 루트 맵 레지스터(1050)의 실시예를 도시한다. 포트 멀티플라이어 노드(1004, 1006, 1008)를 위한 루트 맵(RouteMap) 레지스터(1050)의 도시된 실시예는, (노드(1006)를 위한 하나의 디바이스(1020)와 같은) 현재 노드 아래의 전체 디바이스의 수를 포함하는 CHNUM_NODE(1052) 구간과 (디바이스(1020)에 상응하는 노드(1006)의 PMP5와 같은) 현재 노드에 속하는 PMP에 상응하는 각각의 비트를 포함하는 ROUTEMAP_NODE(1056) 구간을 갖는, 노드(1004, 1006, 1008)를 위한 루트 맵에 관한 정보를 포함한다. 레지스터(1050)는 또한 다른 관련 정보를 포함하기 위해 예약 구간(1054)을 갖는다.
도 10C는 디바이스(1012~1020)용 디바이스 포트를 위한 루트 맵 레지스터(1060)의 실시예를 도시한다. 디바이스(1012~1020)용 디바이스 포트를 위한 루트 맵(RouteMap) 레지스터(1060)의 도시된 실시예는, 디바이스(1012)를 위한 D0과 같은 특정한 디바이스 포트 아래의 전체 디바이스의 수를 포함하는 CHNUM_D0(1062) 구간과 (제1 디바이스(D0)(1012)에 상응하는 디바이스 포트의 PMP0과 같은) 특정 디바이스 포트에 속하는 PMP에 상응하는 각각의 비트를 포함하는 ROUTEMAP_D0(1066) 구간을 갖는, 디바이스 포트를 위한 루트 맵에 관한 정보를 포함한다. 레지스터(1060)는 또한 다른 관련 정보를 포함하기 위해 예약 구간(1064)을 갖는다.
도 11A 내지 도 11F는 루트 맵 레지스터들을 설치하기 위한 트랜잭션 순서의 실시예를 도시한다. 도 11A는 SATA 호스트(1102)와 세 개의 JBOD-E 호환형 SATA 포트 멀티플라이어(1104~1108)를 구비한 포트 멀티플라이어 확장 네트워크(1100)를 도시하고, 디바이스들은 HDD 드라이브들(1112~1120)을 포함하고, 드라이브들(1118, 1120)은 SATA 드라이브들을 포함할 수 있다. 다른 세 개의 디바이스(1112~1116)가 제3자 포트 멀티플라이어(1110)와 연결된다. 도시된 실시예에서, 업데이트될 세 개의 RouteMap 레지스터들이 있고, 각각은 JBOD-E 호환형 포트 멀티플라이어(1104~1108)에 상응한다.
도 11B는 포트 멀티플라이어 노드들(1104, 1106, 1108)과 관련된 RouteMap 레지스터들(1122, 1124, 1126)을 도시한다. RouteMap 레지스터들(1122, 1124, 1126)은 도시된 바와 같이 0으로 소거되도록 설정된다. 도 11C는 하단 노드들(1106, 1108)과 함께 시작하는 RouteMap 레지스터들(1122, 1128, 1130)의 판독을 도시한다. 예를 들어, 디바이스 포트(1154, 1158)(예를 들어, 노드(1106)의 디바이스 포트(B)(1154)와 노드(1108)의 디바이스 포트(B)(1158))가 단일 디바이스(1120, 1118)에 연결될 때, 각각의 디바이스 포트(DB)(1154, 1158)를 위한 CHNUM(1128, 1130)은 1이다. 마찬가지로, 디바이스 포트(DA)(1152)가 어떤 디바이스와도 연결되지 않을 때, 그 디바이스 포트(DB)(1152)를 위한 CHNUM(1128)도 또한 1이다. 그러나, 도시된 바와 같이, 디바이스 포트(1156)가 포트 멀티플라이어(1110)에 연결되면, 그 디바이스 포트(DA)(1156)를 위한 CHNUM(1130)은 포트 멀티플라이어(1110)에 연결된 디바이스들(1112, 1114, 1116)의 수이고, 이 경우에는 세 개의 디바이스들(1112, 1114, 1116)에 대한 3이다. 이러한 정보는 포트 멀티플라이어(1110)의 GSCR[2]를 판독하여 얻어진다. 노드(1110)의 노드 수(1130)에 대한 RouteMap 레지스터의 CHNUM(1130)은 단지 디바이스 포트들(1156, 1158)을 위한 각각의 RouteMap 레지스터의 CHNUM을 합산하는 것이고, 이 경우에는 네 개의 디바이스(1112, 1114, 1116, 1118)로 인해 4이다.
마찬가지로, 도 11D에 도시된 바와 같이, 부모 또는 상단 포트 멀티플라이어 노드(1104)를 위한 디바이스 포트들(DA, DB)(1160, 1162)을 위한 CHNUM(1132)은 각각 하단 또는 자식 포트 멀티플라이어(1106, 1108)를 통해 연결된 전체 디바이스들(1112, 1114, 1116)(1118, 1120)의 수이다. 이 경우, 디바이스 포트(DA)(1160)를 위한 CHNUM(1132)은 자식 포트 멀티플라이어 디바이스 포트들(DA)(1152, 1156)과 디바이스 포트(DB)(1162)에 대해 4이고, 자식 포트 멀티플라이어 디바이스 포트들(DB)(1154, 1158)에 대해 2이다. 포트 멀티플라이어 노드(1104)의 노드 수(1132)는 6이고, 이는 각각 DA와 DB의 수(1132)인 4와 2의 결합이다. 다음으로, 상부 포트 멀티플라이어(1104)는 (디바이스가 없는 하나의 포트들 나타내는) 디바이스 포트(DA)(1152), (하나의 디바이스(1120)를 갖는 하나의 포트를 나타내는) 디바이스 포트(DB)(1154), (하나의 디바이스(1118)를 갖는 하나의 포트를 나타내는) 디바이스 포트(DB)(1158), (제3자 포트 멀티플라이어(1110)를 통해 세 개의 디바이스(1112, 1114, 1116)를 갖는 세 개의 포트를 나타내는) 디바이스 포트(DA)(1156) 각각에 PMP를 할당한다.
이제 도 11E를 참조하면, PMP 할당 메커니즘의 실시예가 구현된다. 일 실시예에서, PMP 할당 메커니즘은 PMP 할당 알고리즘을 포함하고 구현에 따라 특수하다. 도시된 실시예에서, PMP는 단지 낮은 수에서 높은 수로 디바이스 포트들(1152, 1154, 1156, 1158) 각각에 할당된다. 따라서, 상단 포트 멀티플라이어 노드(1104)는 디바이스 포트들(A)(1152, 1156)에 PMP0, PMP1, PMP2, PMP3을 할당하고 디바이스 포트들(B)(1154, 1156)에 PMP4, PMP5를 할당한다. 다음으로, 상단 포트 멀티플라이어(1104)는 RouteMap 레지스터들(1134, 1136, 1138)의 노드 수(NODE)를 업데이트하고, 자식 포트 멀티플라이어들(1106, 1108)은 RouteMap 레지스터들(1134, 1136, 1138)의 디바이스 포트 수(DA, DB)를 업데이트한다. 이제 도 11F를 참조하면, 상단 노드(1104)는 그 자식 노드들(1106, 1108)을 위한 RouteMap 레지스터들(NODE)(1136, 1138)을 업데이트하고, 자식 노드들(1106, 1108)은 그 디바이스들(1120, 1112~1116, 1118)을 위한 RouteMap 레지스터들(DA, DB)(1136, 1138)을 업데이트한다.
일 실시예에서, 네트워크 디바이스들은 퍼스널 엔터테인먼트 네트워크와 같은 클라이언트/서버 네트워크 시스템에서 상호 연결된다. 이전 도면들의 네트워크 메커니즘들은 다양한 네트워크의 일부에 불과하다. 네트워크는 근거리 통신망(LAN), 원거리 통신망(WAN), 도시권 통신망(MAN), 인트라넷, 인터넷 등을 포함한다. 본 명세서의 다른 부분에서 명시된 바와 같이, 임의의 수의 네트워크 디바이스들이 네트워크 내에서 네트워킹 메커니즘을 형성하는 포트 멀티플라이어와 연결되도록 캐스케이딩될 수 있다. 네트워크(1025)를 통해 연결된 임의의 수의 디바이스들이 있을 수 있음을 숙고한다. 디바이스는 본 명세서에 기술된 프로토콜들을 포함하는 다수의 표준 및 비표준 프로토콜을 통해 스트리밍 미디어 데이터와 같은 데이터 스트림을 네트워크 시스템 내의 다른 디바이스들로 전송할 수 있다.
상기 설명에서, 설명의 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부사항들이 제시된다. 그러나, 당해 기술분야의 숙련자들에게는 본 발명이 이러한 특정 세부사항들 중 일부가 없더라도 실시될 수 있다는 것이 자명할 것이다. 다른 예들에서, 주지의 구조들 및 디바이스들이 블록도 형태로 도시되어 있다. 도시된 컴포넌트들 사이에 중간 구조가 존재할 수 있다. 본 명세서에 설명되거나 도시된 컴포넌트들은 도시 또는 설명되지 않은 추가적인 입력들 또는 출력들을 가질 수 있다.
본 발명의 다양한 실시예들은 다양한 프로세스들을 포함할 수 있다. 이러한 프로세스들은 하드웨어 컴포넌트에 의해 수행될 수 있거나, 또는 컴퓨터 프로그램 또는 기계-실행 가능 명령 내에 구현될 수 있고, 상기 명령으로 프로그래밍된 로직 회로들 또는 범용 또는 특별 목적 프로세서가 이 프로세스들을 수행하게 할 수 있다. 대신으로, 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다.
포트 멀티플라이어 확장 메커니즘의 실시예에 도시되거나 또는 그와 연관된 모듈, 컴포넌트, 또는 요소와 같이, 본 명세서 전반에 걸쳐 기술된 하나 이상의 모듈, 컴포넌트, 또는 요소는 하드웨어, 소프트웨어, 및/또는 그 조합을 포함할 수 있다. 모듈이 소프트웨어를 포함하는 경우에 있어서, 소프트웨어 데이터, 명령, 및/또는 구성이 기계/전자 디바이스/하드웨어에 의한 제조물을 통해 제공될 수 있다. 제조물은 명령어, 데이터 등을 제공하기 위해 콘텐츠를 갖는 기계 접근/판독 가능 매체를 포함할 수 있다. 콘텐츠는 전자 디바이스, 예를 들어, 설명된 다양한 동작 및 실행을 수행하는 본 명세서에 기술된 바와 같은 파일러, 디스크, 또는 디스크 제어기로 이어질 수 있다.
본 발명의 다양한 실시예들의 일부는 본 발명의 실시예들에 따른 프로세스를 수행하도록 컴퓨터(또는 다른 전자 디바이스들)를 프로그래밍하는데 이용될 수 있는 컴퓨터 프로그램 명령들이 저장된 컴퓨터-판독 가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 기계-판독 가능 매체는 플로피 디스켓, 광 디스크, 콤팩트 디스크 판독전용 메모리(CD-ROM), 및 자기-광 디스크, 판독전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 소거 및 프로그램 가능 판독전용 메모리(EPROM), EEPROM, 자기 또는 광학 카드, 플래시 메모리, 또는 전자 명령들을 저장하는데 적합한 다른 유형의 미디어/기계-판독가능 매체를 포함할 수 있으나 이에 제한되지 않는다. 또한, 본 발명은 컴퓨터 프로그램 제품으로서 다운로드될 수 있고, 이 프로그램은 원격 컴퓨터로부터 요청하는 컴퓨터로 전송될 수 있다.
방법들 중 다수가 가장 기본적인 형태로 기술되었으나, 본 발명의 기본적인 범주로부터 벗어나지 않고 이러한 방법들 중 임의의 방법에 대하여 프로세스들이 추가되거나 삭제될 수 있고, 전술한 메시지들 중 임의의 메시지에 대하여 정보가 추가 또는 배제될 수 있다. 당해 기술분야의 숙련자들에게는 다수의 추가적인 변형 및 적응이 이루어질 수 있다는 것이 명백할 것이다. 특정한 실시예들이 본 발명을 제한하기 위해서가 아니라 설명하기 위해 제공된다. 본 발명의 실시예들의 범주는 앞서 제공된 특정한 예들에 의해서가 아니라 이하의 청구범위에 의해서 결정되어야 한다.
요소 "A"가 요소 "B"에 또는 요소 "B"와 결합된다고 기술된 경우에, 요소 A는 요소 B에 직접 결합되거나 예를 들어 요소 C를 통해 간접적으로 결합될 수 있다. 명세서 또는 청구범위에서 컴포넌트, 특징, 구조, 프로세스 또는 특성 A가 컴포넌트, 특징, 구조, 프로세스 또는 특성 B를 "초래한다"고 언급된 경우, "A"가 "B"의 적어도 부분적인 원인이지만 또한 "B"를 초래하는 것을 돕는 하나 이상의 다른 컴포넌트, 특징, 구조, 프로세스 또는 특성이 있을 수 있다는 것을 의미한다. 명세서에서 컴포넌트, 특징, 구조, 프로세스 또는 특성이 포함될 수 있다(may, might, could be included)고 나타낸 경우, 이러한 특정한 컴포넌트, 특징, 구조, 프로세스 또는 특성이 포함되도록 요구되는 것은 아니다. 명세서 또는 청구범위에서 "하나(a or an)"의 요소를 지칭하는 경우, 이는 기술된 요소들 중 단지 하나의 요소만 있다는 것을 의미하지는 않는다.
실시예는 본 발명의 구현예 또는 예이다. 본 명세서의 "실시예", "일 실시예", "일부 실시예들", 또는 "다른 실시예들"에 대한 참조는 실시예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 반드시 모든 실시예들에 포함되는 것이 아니라 적어도 일부 실시예들에 포함된다는 것을 의미한다. "실시예", "일 실시예", 또는 "일부 실시예들"의 다양한 언급들 모두가 반드시 동일한 실시예들을 지칭하는 것은 아니다. 본 발명의 예시적인 실시예들에 대한 전술한 설명에서는 본 개시를 간략하게 만들고 다양한 발명의 양상들의 하나 이상의 양상의 이해를 돕기 위한 목적으로, 다양한 특징들이 단일 실시예, 도면 또는 설명에서 때때로 함께 그룹화되어 있다는 것을 이해해야 한다. 그러나, 본 개시의 이러한 방법은 청구된 발명이 각각의 청구항에서 명백하게 인용된 것보다 더욱 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 후술하는 청구범위가 반영하는 바와 같이, 발명의 양상들은 앞서 개시된 단일 실시예의 모든 특징들보다 더 적은 수로 존재한다. 그러므로, 청구범위는 이에 의해 본 명세서에 명백하게 통합되고, 각각의 청구항은 그 자체로 본 발명의 별개의 실시예로서 존재한다.

Claims (18)

  1. 네트워크 호스트를 다수의 포트 멀티플라이어들 중 나머지 다른 포트 멀티플라이어들과 연결하도록 구성된 상기 다수의 포트 멀티플라이어들 중 상단 포트 멀티플라이어를 포함하되, 상기 상단 포트 멀티플라이어는 복수의 캐스케이딩 레벨(multiple cascading level)들로 상기 네트워크 호스트, 상기 나머지 다른 포트 멀티플라이어들, 및 다수의 네트워크 디바이스들 간에 통신을 가능하도록 하기 위해 상기 나머지 다른 포트 멀티플라이어들의 각각과 통신을 수립하고 유지하는 향상된 포트 멀티플라이어(enhanced port multiplier)를 포함하고, 상기 나머지 다른 포트 멀티플라이어들은 하나이상의 중간(intermediate) 포트 멀티플라이어들 및 하나이상의 하단(bottom) 포트 멀티플라이어들을 가지며, 상기 하나이상의 중간 포트 멀티플라이어들은 추가의 하나이상의 캐스케이딩 레벨들을 가능하게 하는 하나 이상의 향상된 중간 포트 멀티플라이어들을 포함하고, 상기 하나이상의 중간 포트 멀티플라이어들 및 상기 하나이상의 하단 포트 멀티플라이어들은 상기 네트워크 호스트와 하나이상의 제 3 자 네트워크 디바이스들간의 통신을 가능하게 하는 하나이상의 제 3 자 포트 멀티플라이어들을 포함하고, 상기 다수의 포트 멀티플라이어들의 각각은 상기 다수의 포트 멀티플라이어들 중 상기 나머지 다른 포트 멀티플라이어들 및 상기 하나이상의 제 3 자 포트 멀티플라이어들과 통신을 가능하게 하는 루트 맵 레지스터(route map register)를 갖는 노드로서 역할을 하고, 상기 상단 포트 멀티플라이어는 부모 노드(parent node)로서 역할을 하고, 상기 하나이상의 하단 포트 멀티플라이어들의 각각은 자식 노드(child node)로서 역할을 하고, 상기 하나이상의 중간 포트 멀티플라이어들의 각각은 자식/부모 노드로서 역할을 하고; 및
    상기 다수의 네트워크 디바이스들은 상기 하나이상의 제 3 자 네트워크 디바이스들을 포함하는, 장치.
  2. 제1항에 있어서, 상기 상단 포트 멀티플라이어는 표준 SATA(Serial Advanced Technology Attachment) 신호를 통해 상기 네트워크 호스트와 통신하도록 구성된, 장치.
  3. 제1항에 있어서, 상기 상단 포트 멀티플라이어는 확장된 SATA 신호를 통해 상기 중간 및 하단 포트 멀티플라이어들과 통신하도록 구성된, 장치.
  4. 제1항에 있어서, 상기 다수의 포트 멀티플라이어의 각각은 데이터의 루팅(routing)을 관리하는 레지스터들을 포함하고, 각각의 레지스터는 상기 데이터에 대한 루트 맵을 포함하는, 장치.
  5. 제4항에 있어서, 상기 레지스터들이 설치되면 상기 네트워크 호스트는 상기 네트워크 호스트로부터 상기 다수의 포트 멀티플라이어들로 프레임 정보 구조(FIS : Frame Information Structure)를 송신하도록 구성되는, 장치.
  6. 제1항에 있어서, 상기 다수의 포트 멀티플라이어들의 각각은 두 개의 포트들을 갖는 SATA 포트 멀티플라이어를 포함하는, 장치.
  7. 복수의 캐스케이딩 레벨들상에서 다수의 포트 멀티플라이들을 통하여 네트워크 호스트를 다수의 네트워크 디바이스들에 연결하도록 구성된 포트 멀티플라이 네트워크(port multiplied network)를 포함하되, 상기 포트 멀티플라이 네트워크는
    상기 네트워크 호스트를 상기 다수의 포트 멀티플라이어들 중 나머지 다른 포트 멀티플라이어들과 연결하도록 구성된 상기 다수의 포트 멀티플라이어들 중 상단 포트 멀티플라이어를 포함하되, 상기 상단 포트 멀티플라이어는 복수의 캐스케이딩 레벨(multiple cascading level)들로 상기 네트워크 호스트, 상기 나머지 다른 포트 멀티플라이어들, 및 다수의 네트워크 디바이스들 간에 통신을 가능하도록 하기 위해 상기 나머지 다른 포트 멀티플라이어들의 각각과 통신을 수립하고 유지하는 향상된 포트 멀티플라이어(enhanced port multiplier)를 포함하고, 상기 나머지 다른 포트 멀티플라이어들은 하나이상의 중간(intermediate) 포트 멀티플라이어들 및 하나이상의 하단(bottom) 포트 멀티플라이어들을 가지며, 상기 하나이상의 중간 포트 멀티플라이어들은 추가의 하나이상의 캐스케이딩 레벨들을 가능하게 하는 하나 이상의 향상된 중간 포트 멀티플라이어들을 포함하고, 상기 하나이상의 중간 포트 멀티플라이어들 및 상기 하나이상의 하단 포트 멀티플라이어들은 상기 네트워크 호스트와 하나이상의 제 3 자 네트워크 디바이스들간의 통신을 가능하게 하는 하나이상의 제 3 자 포트 멀티플라이어들을 포함하고, 상기 다수의 포트 멀티플라이어들의 각각은 상기 다수의 포트 멀티플라이어들 중 상기 나머지 다른 포트 멀티플라이어들 및 상기 하나이상의 제 3 자 포트 멀티플라이어들과 통신을 가능하게 하는 루트 맵 레지스터(route map register)를 갖는 노드로서 역할을 하고, 상기 상단 포트 멀티플라이어는 부모 노드(parent node)로서 역할을 하고, 상기 하나이상의 하단 포트 멀티플라이어들의 각각은 자식 노드(child node)로서 역할을 하고, 상기 하나이상의 중간 포트 멀티플라이어들의 각각은 자식/부모 노드로서 역할을 하고; 및
    상기 다수의 네트워크 디바이스들은 상기 하나이상의 제 3 자 네트워크 디바이스들을 포함하는, 시스템.
  8. 제7항에 있어서, 상기 상단 포트 멀티플라이어는 표준 SATA 신호를 통해 상기 네트워크 호스트와 통신하도록 구성된, 시스템.
  9. 제7항에 있어서, 상기 상단 포트 멀티플라이어는 확장된 SATA 신호를 통해 상기 다수의 포트 멀티플라이어들과 통신하도록 구성된, 시스템.
  10. 제7항에 있어서, 상기 다수의 포트 멀티플라이어들의 각각은 데이터의 루팅을 관리하는 레지스터들을 포함하고, 상기 각각의 레지스터는 상기 데이터에 대한 루트 맵(route map)을 포함하는, 시스템.
  11. 제7항에 있어서, 상기 네트워크 호스트는 상기 네트워크 호스트로부터 상기 다수의 포트 멀티플라이어로 프레임 정보 구조(FIS : Frame Information Structure)를 송신하도록 구성된, 시스템.
  12. 제7항에 있어서, 각각의 포트 멀티플라이어는 두 개의 포트들을 갖는 SATA 포트 멀티플라이어를 포함하는, 시스템.
  13. 복수의 캐스케이딩 레벨들상에서 다수의 포트 멀티플라이들을 통하여 네트워크 호스트를 다수의 네트워크 디바이스들에 연결하는 단계로서, 상기 다수의 포트 멀티플라이어는 상기 네트워크 호스트를 상기 다수의 포트 멀티플라이어들 중 나머지 다른 포트 멀티플라이어들과 연결하도록 구성된 상단 포트 멀티플라이어를 포함하되, 상기 상단 포트 멀티플라이어는 복수의 캐스케이딩 레벨(multiple cascading level)들로 상기 네트워크 호스트, 상기 나머지 다른 포트 멀티플라이어들, 및 다수의 네트워크 디바이스들 간에 통신을 가능하도록 하기 위해 상기 나머지 다른 포트 멀티플라이어들의 각각과 통신을 수립하고 유지하는 향상된 포트 멀티플라이어(enhanced port multiplier)를 포함하고, 상기 나머지 다른 포트 멀티플라이어들은 하나이상의 중간(intermediate) 포트 멀티플라이어들 및 하나이상의 하단(bottom) 포트 멀티플라이어들을 가지며, 상기 하나이상의 중간 포트 멀티플라이어들은 추가의 하나이상의 캐스케이딩 레벨들을 가능하게 하는 하나 이상의 향상된 중간 포트 멀티플라이어들을 포함하고, 상기 하나이상의 중간 포트 멀티플라이어들 및 상기 하나이상의 하단 포트 멀티플라이어들은 상기 네트워크 호스트와 하나이상의 제 3 자 네트워크 디바이스들간의 통신을 가능하게 하는 하나이상의 제 3 자 포트 멀티플라이어들을 포함하고, 상기 다수의 포트 멀티플라이어들의 각각은 상기 다수의 포트 멀티플라이어들 중 상기 나머지 다른 포트 멀티플라이어들 및 상기 하나이상의 제 3 자 포트 멀티플라이어들과 통신을 가능하게 하는 루트 맵 레지스터(route map register)를 갖는 노드로서 역할을 하고, 상기 상단 포트 멀티플라이어는 부모 노드(parent node)로서 역할을 하고, 상기 하나이상의 포트 멀티플라이어들의 각각은 자식 노드(child node)로서 역할을 하고, 상기 하나이상의 중간 포트 멀티플라이어들의 각각은 자식/부모 노드로서 역할을 하는, 상기 연결하는 단계; 및
    상기 다수의 네트워크 디바이스들, 상기 다수의 포트 멀티플라이어들, 상기 네트워크 호스트간의 통신을 수립하는 단계로서, 상기 다수의 네트워크 디바이스들은 상기 하나이상의 제 3 자 네트워크 디바이스들을 포함하는, 상기 수립하는 단계를 포함하는, 방법.
  14. 제13항에 있어서, 표준 SATA 신호를 통해 상단 포트 멀티플라이어와 상기 네트워크 호스트 간에 통신을 수립하는 단계를 더 포함하는, 방법.
  15. 제13항에 있어서, 확장된 SATA 신호를 통해 상기 다수의 포트 멀티플라이어들간에 통신을 수립하는 단계를 더 포함하는, 방법.
  16. 제13항에 있어서,
    상기 다수의 포트 멀티플라이어들의 각각에서 레지스터들을 통하여 데이터의 루팅을 관리하는 단계를 더 포함하고, 상기 각각의 레지스터는 상기 데이터에 대한 루트 맵(route map)을 포함하는, 방법.
  17. 제16항에 있어서,
    상기 레지스터들이 설치되면 상기 네트워크 호스트로부터 상기 다수의 포트 멀티플라이어들로 프레임 정보 구조(FIS : Frame Information Structure)를 송신하는 단계를 더 포함하는, 방법.
  18. 제13항에 있어서,
    각각의 포트 멀티플라이어는 두 개의 포트들을 갖는 SATA 포트 멀티플라이어를 포함하는, 방법.
KR1020107022842A 2008-03-14 2009-03-12 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템 KR101580214B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/075,954 2008-03-14
US12/075,954 US7979589B2 (en) 2008-03-14 2008-03-14 Method, apparatus, and system for port multiplier enhancement

Publications (2)

Publication Number Publication Date
KR20100126500A KR20100126500A (ko) 2010-12-01
KR101580214B1 true KR101580214B1 (ko) 2015-12-24

Family

ID=41064236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022842A KR101580214B1 (ko) 2008-03-14 2009-03-12 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템

Country Status (7)

Country Link
US (1) US7979589B2 (ko)
EP (1) EP2266045A2 (ko)
JP (1) JP5581469B2 (ko)
KR (1) KR101580214B1 (ko)
CN (1) CN101971156B (ko)
TW (1) TWI453591B (ko)
WO (1) WO2009154825A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122298B2 (en) * 2008-06-12 2012-02-21 Lsi Corporation Methods and systems for capturing error information in a SATA communication system
US9063655B2 (en) * 2010-05-12 2015-06-23 Silicon Image, Inc. Multi-level port expansion for port multipliers
CN102567252A (zh) * 2010-12-09 2012-07-11 北京华虹集成电路设计有限责任公司 一种硬盘和主机之间数据传输方法和系统
CN102521196B (zh) * 2011-11-30 2015-01-07 台达电子企业管理(上海)有限公司 Modbus数据采集器
US9626318B2 (en) 2012-01-26 2017-04-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for storage protocol compliance testing
US9582453B2 (en) 2013-08-15 2017-02-28 Western Digital Technologies, Inc. I/O card architecture based on a common controller
JP6661387B2 (ja) * 2016-01-25 2020-03-11 株式会社東芝 コンピュータシステム、及びソフトウェアの初期インストール方法
TWI631464B (zh) * 2016-08-03 2018-08-01 祥碩科技股份有限公司 埠倍增系統及操作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180172A1 (en) * 2005-08-25 2007-08-02 Schmidt Brian K Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296094B2 (en) * 2004-08-20 2007-11-13 Lsi Corporation Circuit and method to provide configuration of serial ATA queue depth versus number of devices
US7604265B2 (en) * 2004-11-04 2009-10-20 Imperial Usa, Ltd. Latch assembly for sliding doors
US7805543B2 (en) * 2005-06-30 2010-09-28 Intel Corporation Hardware oriented host-side native command queuing tag management
US20070022228A1 (en) 2005-07-22 2007-01-25 Hicks Allison W Method to create expandable storage using serial ATA HDD
EP1748067A1 (en) * 2005-07-29 2007-01-31 Institut Pasteur Polynucleotides encoding MHC class I-restricted hTERT epitopes, analogues thereof or polyepitopes
EP1934751B1 (en) * 2005-08-25 2017-11-08 Lattice Semiconductor Corporation Smart scalable storage switch architecture
WO2007135695A1 (en) 2006-05-18 2007-11-29 Roberto Ragazzi A control device for domotic applications
JP4897387B2 (ja) * 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180172A1 (en) * 2005-08-25 2007-08-02 Schmidt Brian K Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices

Also Published As

Publication number Publication date
EP2266045A2 (en) 2010-12-29
WO2009154825A2 (en) 2009-12-23
JP2011515748A (ja) 2011-05-19
KR20100126500A (ko) 2010-12-01
CN101971156A (zh) 2011-02-09
TWI453591B (zh) 2014-09-21
JP5581469B2 (ja) 2014-09-03
CN101971156B (zh) 2013-09-11
US20090234994A1 (en) 2009-09-17
TW200939028A (en) 2009-09-16
US7979589B2 (en) 2011-07-12
WO2009154825A3 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
KR101541113B1 (ko) 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템
KR101580214B1 (ko) 포트 멀티플라이어 확장을 위한 방법과 장치와 시스템
US7412544B2 (en) Reconfigurable USB I/O device persona
US7334075B2 (en) Managing transmissions between devices
US7953917B2 (en) Communications protocol expander
US10394573B2 (en) Host bus adapter with built-in storage for local boot-up
JP2024099640A (ja) 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間
US8756345B2 (en) Methods and structure for managing protection information with a serial attached SCSI expander
US11157200B2 (en) Communicating over portions of a communication medium
US11003607B2 (en) NVMF storage to NIC card coupling over a dedicated bus
US8140724B1 (en) SATA pass through port
US10387347B2 (en) Method to locate SAS JBOD cable routing
US8402195B2 (en) Storage system mounted with plurality of processors
US20080263248A1 (en) Multi-drop extension for a communication protocol
JP2005158074A (ja) 共有eepromを有する周辺コントローラ
US9571576B2 (en) Storage appliance, application server and method thereof
US8086795B2 (en) Onboard computer data storage, access, and caching system
RU2509349C2 (ru) Устройство массовой памяти и система хранения данных
KR20230085048A (ko) 스토리지 장치 및 전원 관리 장치
TWI474190B (zh) 伺服器系統之虛擬媒體裝置和其資料存取方法
CN116804956A (zh) 一种验证PCIe端口的方法

Legal Events

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

Payment date: 20181206

Year of fee payment: 4