KR20120052158A - 결정론적 sas 검색 및 구성을 위한 방법 - Google Patents

결정론적 sas 검색 및 구성을 위한 방법 Download PDF

Info

Publication number
KR20120052158A
KR20120052158A KR1020110114538A KR20110114538A KR20120052158A KR 20120052158 A KR20120052158 A KR 20120052158A KR 1020110114538 A KR1020110114538 A KR 1020110114538A KR 20110114538 A KR20110114538 A KR 20110114538A KR 20120052158 A KR20120052158 A KR 20120052158A
Authority
KR
South Korea
Prior art keywords
sas
search
expander
node
smp
Prior art date
Application number
KR1020110114538A
Other languages
English (en)
Other versions
KR101196547B1 (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 KR20120052158A publication Critical patent/KR20120052158A/ko
Application granted granted Critical
Publication of KR101196547B1 publication Critical patent/KR101196547B1/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/14Handling requests for interconnection or transfer
    • 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/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]

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)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 결정론적 SAS(Serial Attached Small Computer System Interface) 검색 및 구성을 위한 방법에 관한 것이다. 상기 방법은 SMP(Serial Management Protocol) 검색 요청을 SAS 도메인의 노드에서 SAS 도메인의 각 확장기로 송신하는 단계를 포함한다. 방법은 노드에서 SAS 도메인의 각 확장 SMP 검색 응답을 수신하는 단계를 더 포함한다. 방법은 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR(BROADCAST (CHANGE) RECEIVED) 카운트를 저장된 BCR 카운트와 비교하는 단계를 더 포함하며, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 상기 송신하는 단계 전에 노드에 의해 기록되어 저장되어있다. 방법은 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하는 단계를 더 포함한다. 방법은 선택적으로 제 2 SMP 검색 요청을 노드에서 SAS 도메인의 모두가 아닌 적어도 하나의 확장기로 송신하는 단계를 더 포함한다.

Description

결정론적 SAS 검색 및 구성을 위한 방법{A METHOD FOR DETERMINISTIC SAS DISCOVERY AND CONFIGURATION}
본 발명은 데이터 저장 시스템을 통한 데이터 관리 분야에 관한 것으로서, 특히 결정론적 SAS(Serial Attached Small Computer System Interface) 검색(discovery) 및 구성을 위한 방법에 관한 것이다.
SAS 도메인에서의 SAS 검색을 제공하기 위한 현재 이용 가능한 방법은 원하는 수준의 성능을 제공할 수 없다.
따라서, 현재 이용 가능한 솔루션의 상술한 결점을 해결하는 SAS 도메인에서 SAS 검색을 제공하는 방법을 제공하는 것이 바람직할 수 있다.
따라서, 본 개시의 실시예는 SAS 도메인에서의 SAS 검색을 수행하는 방법에 관한 것이며, 상기 방법은 SMP(Serial Management Protocol) 검색 요청을 SAS 도메인의 노드에서 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로 송신하는 단계와, 노드에서 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로부터 SMP 검색 응답을 수신하되, 상기 SMP 검색 응답은 상기 SMP 검색 요청에 응답하는 단계와, 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 저장된 BCR 카운트와 비교하되, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 상기 송신하는 단계 전에 노드에 의해 기록되어 저장되어있는 단계와, 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하는 단계와, 상기 비교하는 단계에 기초하여, 노드의 SAS 검색 알고리즘을 최적화하는 단계와, 상기 비교하는 단계에 기초하여, 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하는 단계와, 상기 비교하는 단계에 기초하여, 제 2 SMP 검색 요청을 노드에서 다수의 확장기 내에 포함되는 제 2 확장기로 송신하는 단계를 포함하며, 상기 노드는 개시기(initiator) 및 자기 구성 확장기 중 하나이고, 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트는 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브(a number of BROADCAST (CHANGE) primitive)를 나타내며, 각 확장기는 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시킨다.
본 개시의 다른 실시예는 SAS 도메인에서 SAS 검색을 위한 방법을 수행하기 위한 컴퓨터 실행 가능한 명령을 가진 비일시적(non-transitory) 컴퓨터 판독 가능한 매체에 관한 것이며, 상기 방법은 SAS 도메인의 노드에서 SMP 검색 요청을 다수의 확장기 내에 포함되는 각 확장기로 송신하는 단계와, 노드에서 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로부터 SMP 검색 응답을 수신하되, 상기 SMP 검색 응답은 상기 SMP 검색 요청에 응답하는 단계와, 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 저장된 BCR 카운트와 비교하되, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 상기 송신하는 단계 전에 노드에 의해 기록되어 저장돼 있는 단계와, 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하는 단계와, 상기 비교하는 단계에 기초하여 노드의 SAS 검색 알고리즘을 최적화하는 단계와, 상기 비교하는 단계에 기초하여, 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하는 단계와, 상기 비교하는 단계에 기초하여, 제 2 SMP 검색 요청을 노드에서 다수의 확장기 내에 포함되는 제 2 확장기로 송신하는 단계를 포함하며, 상기 노드는 개시기 및 자기 구성 확장기 중 하나이고, 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트는 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내며, 각 확장기는 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시킨다.
본 개시의 또 다른 실시예는 SAS 도메인의 SAS 검색 개시 노드에 관한 것이며, 상기 노드는 노드를 SAS 도메인의 다수의 확장기에 통신 가능하게 결합하도록 구성되는 인터페이스와, 다수의 BCR 카운트를 저장하도록 구성되는 메모리와, 메모리 및 인터페이스에 접속되는 마이크로 프로세서를 포함하되, 상기 마이크로 프로세서는 BROADCAST (CHANGE) 프리미티브가 SAS 도메인의 다수의 확장기 내에 포함되는 확장기로부터 노드에 의해 수신될 때 노드가 제 1 SMP 검색 요청을 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로 송신시키도록 구성되며, 상기 노드는 인터페이스를 통해 다수의 SMP 검색 응답을 수신하도록 또한 구성되며, 상기 다수의 SMP 검색 응답은 SAS 도메인의 다수의 확장기로부터 송신되고, 상기 SMP 검색 응답은 상기 제 1 SMP 검색 요청에 응답하고, 상기 노드는 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 저장된 BCR 카운트와 비교하도록 또한 구성되고, 상기 저장된 BCR 카운트는 상기 제 1 SMP 검색 요청의 상기 송신 전에 노드에 의해 기록되어 저장되어있고, 상기 노드는 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하고, 상기 노드는 이전에 기록된 BCR 카운트와 수신된 BCR 카운트의 상기 비교에 기초하여 노드의 SAS 검색 알고리즘을 최적화하도록 구성되고, 상기 비교에 기초하여, 상기 노드는 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하도록 구성되며, 상기 비교에 기초하여, 상기 노드는 제 2 SMP 검색 요청을 다수의 확장기 내에 포함되는 제 2 확장기로 송신하도록 구성되며, 상기 노드는 개시기 및 자기 구성 확장기 중 하나이고, 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트는 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내며, 각 확장기는 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시킨다.
본 개시의 다른 실시예는 SAS 확장기에 관한 것이며, 상기 SAS 확장기는 확장기를 SAS 도메인의 다수의 SAS 장치에 접속하기 위해 구성되며 다수의 SAS PHY를 포함하는 인터페이스와, SAS 확장기의 다수의 BCR 카운터를 저장하도록 구성되며, 다수의 BCR 카운터 내에 포함되는 각 BCR 카운터는 다수의 SAS PHY 내에 포함되는 SAS PHY에 대응하며, 각 BCR 카운터는 대응하는 SAS PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내도록 구성되는 메모리와, 메모리 및 인터페이스에 접속되는 마이크로프로세서를 포함하며, 상기 마이크로프로세서는 BROADCAST (CHANGE) 프리미티브가 SAS 확장기의 다수의 SAS PHY 내에 포함되는 SAS PHY에 의해 수신될 시기를 모니터링하기 위해 구성되고, 상기 마이크로프로세서는 SAS 확장기의 대응하는 SAS PHY의 각각에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 다수의 BCR 카운터 내에 기록하기 위해 또한 구성되며, 상기 마이크로프로세서는 상기 카운터가 이들의 대응하는 PHY에 의해 수신되는 각 BROADCAST (CHANGE) 프리미티브에 대해 1만큼 증가되도록 하기 위해 구성되며, 상기 마이크로프로세서는 인터페이스를 통해 SAS 도메인의 다수의 SAS 장치 내에 포함되는 SAS 검색 개시 노드로부터 SMP 검색 요청을 수신하도록 구성되며, 상기 마이크로프로세서는 SAS 확장기가 인터페이스를 통해 상기 SMP 검색 요청에 응답하여 SMP 검색 응답을 SAS 검색 개시 노드로 송신하게 하도록 또한 구성되며, 상기 SMP 검색 응답은 SAS 확장기의 BCR 카운터의 각각의 BCR 카운트를 포함한다.
상술한 일반적인 설명 및 다음의 상세한 설명의 양방은 단지 예시적이고 설명적이며, 청구된 바와 같이 본 발명을 반드시 제한적인 것은 아니라고 이해될 수 있다. 본 명세서에 포함되고, 본 명세서의 일부를 구성하는 첨부한 도면은 본 발명의 실시예를 예시하며, 일반적인 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
본 발명의 많은 이점은 첨부한 도면을 참조로 당업자에 의해 더욱 잘 이해될 수 있다.
도 1은 본 개시의 예시적인 실시예에 따라 본 개시의 SAS 검색 방법을 구현할 수 있는 SAS 도메인의 블록도를 도시한 것이다.
도 2는 도 1에 도시된 SAS 도메인의 블록도를 도시한 것이며, 제 1 SMP 검색 요청은 본 개시의 예시적인 실시예에 따라 SAS 도메인의 다수의 경로 각각을 따라 SAS 도메인의 SAS 검색 개시 노드로부터 SAS 도메인의 각 확장자로 송신되는 것으로 도시되어 있다.
도 3은 도 1에 도시된 SAS 도메인의 블록도를 도시한 것이며, 다음의(제 2) SMP 검색 요청은 다수의 경로 중 하나만을 따라 SAS 검색 개시 노드로부터 송신되는 것으로 도시되어 있으며, 상기 제 2 SMP 검색 요청은 제 1 SMP 검색 요청에 응답하여 SMP 검색 응답에 수신되는 BCR 카운트(예컨대, BCR 카운트 정보, BCR 카운트 데이터)와 저장된 BCR 카운트의 SAS 검색 개시 노드에 의한 비교에 기초하여 선택적으로 송신된다.
도 4는 본 개시의 예시적인 실시예에 따라 도 1에 도시된 SAS 도메인과 같은 SAS 도메인에서 SAS 검색을 수행하는 방법을 도시한 흐름도이다.
도 5는 본 개시의 예시적인 실시예에 따라 도 1에 도시된 SAS 도메인과 같은 SAS 도메인에서 구현을 위해 구성되는 SAS 확장기의 블록도를 도시한 것이다.
도 6은 본 개시의 예시적인 실시예에 따라 도 1에 도시된 SAS 도메인과 같은 SAS 도메인에서 구현을 위해 구성되는 SAS 검색 개시 노드의 블록도를 도시한 것이다.
이제, 본 발명의 현재 바람직한 실시예가 상세히 참조되며, 그 예들은 첨부한 도면에 도시되어 있다.
SAS(Serial Attached Small Computer System Interface) 검색은 확장기에 대한 SAS PHY 또는 SAS 링크의 상태가 변화할 때마다 확장기에 의해 송신되는 BROADCAST (CHANGE) 프리미티브에 기초한다. 이들 SAS PHY 상태 변화 및/또는 SAS 링크 상태 변화는 엔드 장치(end device) 또는 확장기가 가동되고, 엔드 장치 또는 확장기가 부가/제거되며/되거나 링크 속도가 변화할 때에 일어날 수 있다. SAS 도메인의 확장기에 대한 SAS PHY 상태 변화 또는 SAS 링크 상태 변화가 일어날 때, BROADCAST (CHANGE) 프리미티브는 그 확장기에 의해 SAS 도메인 내의 모든 개시기 및 SAS 도메인 내의 모든 다른 확장기로 송신될 수 있다. SAS 도메인의 어떤 개시기 및/또는 자기 구성 확장기가 BROADCAST (CHANGE) 프리미티브를 수신할 때, 검색 프로세스(예컨대, SAS 검색)는 상태 변화를 겪는 SAS 도메인 내에 PHY(s)를 위치시키기 위한 시도를 시작할 수 있다. 검색 프로세스의 결과에 기초하여, 개시기 및 자기 구성 확장기는 이에 따라 자신의 구성을 조정할 수 있다. 예컨대, 자기 구성 확장기는 자신의 라우팅 테이블을 갱신할 수 있지만, 개시기(들)는 이들의 운영 체제 카운터 또는 RAID 스택 호스트 대응물(stack host counterparts)에 상태 변화(들)를 알릴 수 있다.
현재, 개시기 또는 자기 구성 확장기가 BROADCAST (CHANGE) 프리미티브를 수신할 때, SAS 검색은 각 개시기 및 자기 구성 확장기가 일어날 수 있는 어떤 및 모든 변화(예컨대, 상태 변화(들), PHY 변화들, 링크 변화들)에 대한 SAS 도메인 내의 모든 확장기(또는 자기 구성 확장기의 경우에, 모든 다른 확장기)를 검사하는 것을 필요로 한다. 예컨대, 개시기(들) 및 자기 구성 확장기(들)는 SMP(Serial Management Protocol) 검색 요청을 확장기로 송신하여 SAS 도메인 내의 확장기를 검사할 수 있다. 현재 SAS 검색 방법(및 현재 SAS 검색 알고리즘(들))으로, SAS 도메인의 모든 경로는 상태 변화에 대해 검사된다. 이것은 상당히 비효율적일 수 있는데, 그 이유는 SAS 도메인이 많은 경로를 가질 수 있고, 이들 경로의 작은 서브세트만이 실제로 변화(들)에 의해 영향을 받을 수 있기 때문이다. 보다 큰 SAS 도메인에서는, 현재 SAS 검색 방법의 상술한 비효율성 및 불필요한 SAS 검색 오버헤드는 확대되고, 시스템 문제 및 파괴 지연 시간(disruptive latencies)을 유발시킬 수 있다. 본 개시의 실시예는 1)SAS 도메인의 개시기(들) 및 확장기 사이; 및/또는 2)검색 동작 동안에 SAS 도메인 내의 자기 구성 확장기 및 다른 확장기(예컨대, 타겟 확장기) 사이에서 정보(예컨대, SMP 요청 및/또는 SMP 응답)을 교환할 수 있는 SAS 검색 방법을 기술하며, 상기 검색 동작은 하나 이상의 BROADCAST (CHANGE) 프리미티브를 수신하는 SAS 도메인 내의 모든 확장기의 PHY를 특정하며, 이는 BROADCAST (CHANGE) 프리미티브(들)의 특정 경로(들) 및 기점(들)(origin(s))을 결정하여, 어떤 불필요한 경로 검색 동작을 제거하는데 이용될 수 있다(예컨대, 상태 변화에 의해 영향을 받지 않는 경로로 지향되는 검색 동작을 제거할 수 있다).
도 1을 참조하면, 본 개시의 예시적인 실시예에 따른 SAS 시스템(예컨대, SAS 도메인, SAS 토폴로지)이 도시된다. 본 개시의 예시적인 실시예에서, SAS 시스템(100)은 하나 이상의 SAS 검색 개시 노드(들)(102)를 포함할 수 있다. 예컨대, SAS 검색 개시 노드(들)(102)는 개시기(들)(102) 또는 자기 구성 확장기(들)(102)일 수 있다. 본 개시의 다른 실시예에서, SAS 시스템(100)은 다수의 확장기(104)를 포함할 수 있으며, 상기 다수의 확장기(104)는 노드(들)(102)에 접속된다(예컨대, 통신 가능하게 결합된다). 본 개시의 또 다른 실시예에서, SAS 시스템(100)은 다수의 타겟 장치(106)(예컨대, SAS 타겟 장치(106))를 포함할 수 있으며, 다수의 타겟 장치(106)는 다수의 확장기(104)에 접속되고(예컨대, 통신 가능하게 결합되고), 다수의 타겟 장치(106)는 또한 다수의 확장기(104)를 통해 노드(들)(102)(개시기(들)(102))에 접속된다(예컨대, 통신 가능하게 결합된다).
본 개시의 다른 실시예에서, 노드(들)(102), 다수의 확장기(104) 및 타겟 장치(106)는 다수의 링크(108)(예컨대, 도 1에 도시된 바와 같이 L1, L2, L3, L4, L5, L6, L7, L8, L9 및 L10)를 통해 통신 가능하게 결합될 수 있다. 예컨대, 다수의 링크(108)(예컨대, 레인)는 SAS 케이블에 의해 제공되는 점 대 점 직렬 접속부(point-to-point serial connections)일 수 있다. 본 개시의 또 다른 실시예에서, 다수의 타겟 장치(106) 내에 포함되는 각 타겟 장치(106), 다수의 확장기(104) 내에 포함되는 각 확장기(104) 및 각 노드(102)는 하나 이상의 PHY(110)(예컨대, 하나 이상의 SAS PHY(110))를 포함할 수 있다. 본 개시의 예시적인 실시예에서, 각 PHY(110)는 송신기 장치 및 수신기 장치를 포함할 수 있고, 링크(108)에 의해 접속되는 점 대 점 접속부 내의 엔드포인트(endpoint) 역할을 할 수 있다. 예컨대, 각 PHY(110)는 상기 링크(108)의 대향 단부에서 다른 PHY(110)와 통신하도록 링크(108)에 전기적으로 인터페이스하기 위해 구성될 수 있다. 본 개시의 다른 실시예에서, 각 링크(108)는 두 차동 신호 쌍, 각 방향에서 하나를 포함할 수 있다. 상술한 바와 같이, 각 타겟 장치(106), 각 확장기(104) 및 각 검색 개시 노드(102)는 하나 이상의 PHY(110)를 포함할 수 있다. 본 개시의 또 다른 실시예에서, 각 SAS 장치(예컨대, 타겟 장치(106), 확장기(104) 및/또는 검색 개시 노드(102))는 하나 이상의 포트를 포함할 수 있으며, 상기 하나 이상의 포트는 제각기 SAS 장치의 하나 이상의 PHY(110)(예컨대, SAS PHY(110))를 포함한다.
본 개시의 현재 예시적인 실시예에서, 타겟 장치(106)는 검색 개시 노드(102)로부터 명령을 수신하도록 구성되는 디스크 드라이브와 같은 저장 장치일 수 있다. 본 개시의 다른 실시예에서, 검색 개시 노드(102)는 호스트 컴퓨터 내의 SAS 호스트 버스 어댑터, 또는 RAID(Redundant Array of Inexpensive Disks) 제어기 내의 SAS 입력/출력(I/O) 제어기일 수 있다. 본 개시의 또 다른 실시예에서, 확장기(104)(예컨대, SAS 확장기(104))는 (도 1에 도시된 바와 같이) 단일 검색 개시 노드(102)에 대한 다수의 타겟 장치(106)의 접속을 용이하게 하기 위해 구성될 수 있다. 예컨대, SAS 확장기(104)는 SAS 개시기(102) 및 타겟 장치(106)가 SAS 점 대 점 접속부(예컨대, SAS 링크(108))를 통해 통신할 수 있게 하도록 라우팅과 같은 스위치형 기능을 수행하기 위해 구성될 수 있다. 본 개시의 다른 실시예에서, 하나 이상의 확장기(104)는 자기 구성 확장기(104)일 수 있다.
본 개시의 예시적인 실시예에서, 각 확장기(104)는 그 확장기(104)에 대한 SAS PHY(110) 및/또는 SAS 링크(108)로 변화(예컨대, 상태 변화)가 일어날 시기를 검출하기 위해 구성될 수 있다. 예컨대, 이들 SAS PHY 상태 변화 및/또는 SAS 링크 상태 변화는 SAS 도메인(100)의 엔드 장치(예컨대, 타겟 장치(106)) 또는 SAS 도메인(100)의 확장기(104)가 가동되고, 엔드 장치 또는 확장기(104)가 SAS 도메인에 부가되고/SAS 도메인으로부터 제거되며, 및/또는 링크 속도가 변화할 때에 일어날 수 있다. 본 개시의 예시적인 실시예에서, 다수의 확장기(104)의 제 1 확장기(104)가 SAS PHY(110) 또는 SAS 링크(108) 중 하나에 대한 그런 상태 변화(들)를 검출할 때, 제 1 확장기(104)는 BROADCAST (CHANGE) 프리미티브를 다수의 확장기(104) 내에 포함된 각각의 다른 확장기(104), 및 또한 SAS 검색 개시 노드(들)(102)로 송신하기 위해 구성될 수 있다. 개시기(102) 또는 자기 구성 확장기(102)와 같은 SAS 검색 개시 노드(102)가 BROADCAST (CHANGE) 프리미티브를 수신할 때, SAS 검색 개시 노드(102)는 상태 변화(들)를 겪는 SAS 도메인(100) 내에 SAS PHY(110) 및/또는 SAS 링크(들)(108)를 위치시키기 위해 시도할 시에 검색 프로세스(예컨대, SAS 검색 프로세스)를 개시할 수 있다. 검색 프로세스의 결과에 기초하여, SAS 검색 개시 노드(들)(102)(예컨대, 개시기(들)(102) 또는 자기 구성 확장기(들)(102))는 이에 따라 자신의 구성을 조정하도록 구성될 수 있다. 예컨대, 자기 구성 확장기(102)는 자신의 라우팅 테이블을 갱신할 수 있지만, 개시기(102)는 이들의 운영 체제 카운터 또는 RAID 스택 호스트 대응물에 상태 변화(들)를 알릴 수 있다.
도 4는 본 개시의 예시적인 실시예에 따라 도 1에 도시된 SAS 시스템(100)(예컨대, SAS 도메인(100))을 통해 SAS 검색을 수행하는 방법을 도시한 흐름도이다. 이 방법(400)은 SMP 검색 요청을 SAS 도메인의 노드에서 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로 송신하는 단계(402)를 포함한다. 상술한 바와 같이, 하나 이상의 자신의 SAS PHY(110) 또는 SAS 링크(108)에 대한 상태 변화(들)를 검출한 후, 다수의 확장기(104) 내에 포함된 제 1 확장기(104)는 BROADCAST (CHANGE) 프리미티브를 다수의 확장기(104) 내에 포함된 각각의 다른 확장기(104), 및 또한 SAS 검색 개시 노드(들)(102)로 송신하기 위해 구성될 수 있다. 예시적 설명된 실시예에서, 도 1-3에 도시된 바와 같이, (도 1-3에서 "확장기 3"로 도시된) 제 1 확장기(104)는 하나 이상의 SAS PHY(110) 및/또는 SAS 링크 내에 발생한 상태 변화를 검출할 수 있고, BROADCAST (CHANGE) 프리미티브를 다수의 확장기(104) 내에 포함된 각각의 다른 확장기(104), 및 또한 (도 1-3에서 "개시기"로 도시된) SAS 검색 개시 노드(들)(102)로 송신할 수 있다. 상술한 바와 같이, BROADCAST (CHANGE) 프리미티브를 수신한 후, SAS 검색 개시 노드(102)는 상기 상태 변화(들)를 겪는 SAS PHY(110) 및/또는 SAS 링크(들)(108)를 위치시키기 위해 시도할 시에 SAS 검색 프로세스를 개시할 수 있다. SAS 검색 개시 노드(102)는 SMP 검색 요청을 SAS 도메인(100)의 다수의 확장기(104) 내에 포함되는 각 확장기(104)로 송신함으로써 이를 행할 수 있다.
본 개시의 다른 실시예에서, 방법(400)은 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로부터 노드에서의 SMP 검색 응답을 수신하는 단계를 더 포함할 수 있으며, 상기 SMP 검색 응답은 상기 SMP 검색 요청에 응답한다(404). 예컨대, SAS 검색 개시 노드(102)로부터 SMP 검색 요청을 수신한 후, 다수의 확장기(104) 내에 포함된 각 확장기(104)는 자신의 고유 SMP 검색 응답을 SAS 검색 개시 노드(102)로 송신할 수 있으며, 상기 SAS 검색 개시 노드(102)는 상기 SMP 검색 응답을 수신하도록 구성되며, 상기 SMP 검색 응답은 상기 SMP 검색 요청에 응답한다. 상술한 바와 같이, 하나 이상의 자신의 SAS PHY(110) 또는 SAS 링크(108)에 대한 상태 변화(들)를 검출한 후, 다수의 확장기(104) 내에 포함된 제 1 확장기(104)는 BROADCAST (CHANGE) 프리미티브를 다수의 확장기(104) 내에 포함된 각각의 다른 확장기(104), 및 또한 SAS 검색 개시 노드(들)(102)로 송신하기 위해 구성될 수 있다. 상술한 바와 같이, 예시적 설명된 실시예에서, 도 1-3에 도시된 바와 같이, (도 1-3에서 "확장기 3"로 도시된) 제 1 확장기(104)는 하나 이상의 SAS PHY(110) 및/또는 SAS 링크 내에 발생한 상태 변화를 검출할 수 있고, BROADCAST (CHANGE) 프리미티브를 다수의 확장기(104) 내에 포함된 각각의 다른 확장기(104), 및 또한 (도 1-3에서 "개시기"로 도시된) SAS 검색 개시 노드(들)(102)로 송신할 수 있다. 다수의 확장기(104) 내에 포함된 각 확장기(104)는 a) SAS 도메인의 원격 장치(들)/다른 장치(들)(예컨대, 다른 확장기(들)(104))로부터 BROADCAST (CHANGE) 프리미티브(들)를 수신할 때와, b) 상기 원격 장치(들)로부터 수신된 다수의 BROADCAST (CHANGE) 프리미티브(들)와, c) 어느 PHY(110)가 상기 원격 장치로부터 BROADCAST (CHANGE) 프리미티브(들)를 수신하는지를 추적하고 기록하기 위해 구성될 수 있다. 다른 실시예에서, 각 확장기(104)는 하나 이상의 카운터(예컨대, 랩핑(wrapping) 카운터)를 구현할 수 있으며, 이 카운터는 BROADCAST (CHANGE) 프리미티브에 관해 상술한 정보를 PHY 당 기준으로(per-PHY-basis) 기록하고 추적하기 위한 BROADCAST (CHANGE) RECEIVED (BCR) 카운터라 칭할 수 있다. 예컨대, 각 확장기(104)는 BROADCAST (CHANGE) 프리미티브에 관해 상술한 정보를 추적하기 위한 각 PHY(110)에 대한 분리 카운터를 포함할 수 있다. 또 다른 실시예에서, 각 확장기(104)는 그 확장기(104)의 PHY(110) 중 하나가 SAS 도메인(100)의 원격 장치(예컨대, 다른 확장기(104))로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때에는 자신의 BCR 카운터(들)를 (예컨대, 수신된 각 BROADCAST (CHANGE) 프리미티브에 대해 1만큼) 증가시키지만, PHY(110) 중 제 1 PHY가 PHY(110) 중 제 2 PHY로부터 전송된 BROADCAST (CHANGE) 프리미티브를 수신할 때에는 BCR 카운터(들)를 증가시키지 않는다. 설명된 실시예에서, "확장기 3"가 도메인(100)의 모든 다른 확장기(104)로 송신된 BROADCAST (CHANGE) 프리미티브의 소스(예컨대, 발신자)이고, BROADCAST (CHANGE) 프리미티브를 수신하지 않으므로, "확장기 3"는 그 경우에 카운터를 증가시키지 않는다. 그러나, 도메인(100)의 각각의 다른 확장기(104)는 카운터를 증가시킨다. 본 개시의 다른 실시예에서, 카운터는 16비트 또는 32비트 카운터일 수 있다.
상술한 바와 같이, SAS 검색 개시 노드(102)로부터 SMP 검색 요청을 수신한 후, 다수의 확장기(104) 내에 포함된 각 확장기(104)는 자신의 고유 SMP 검색 응답을 SAS 검색 개시 노드(102)로 송신할 수 있으며, 상기 SMP 검색 응답은 상기 SMP 검색 요청에 응답한다. 본 개시의 예시적인 실시예에서, 각 확장기(104)는 자신의 고유 SMP 검색 응답 내에 BCR 카운터, BCR 카운터 정보 및/또는 BCR 카운트 정보(예컨대, BCR 카운트)를 포함할 수 있다. BCR 카운트 정보(예컨대, BCR 카운트)는 그 확장기(104)의 어느 PHY(110)가 BROADCAST (CHANGE) 프리미티브를 수신하였고, 및/또는 얼마나 많은 BROADCAST (CHANGE) 프리미티브가 그 확장기(104)의 각 PHY(110)에 의해 수신되었는지를 나타낼 수 있다. 더욱이, 상술한 바와 같이, 상기 SAS 검색 개시 노드(들)(102)은 상기 SMP 검색 응답을 수신하기 위해 구성되고, 도메인(100)의 각 확장기(104)에 대한 BCR 카운트를 포함한다. 본 개시의 또 다른 실시예에서, 각 SAS 검색 개시 노드(들)(102)은 SAS 도메인(100)의 모든 PHY(110)에 대한 BCR 카운트를 기록, 추적 및/또는 모니터링하기 위해 구성된다.
본 개시의 예시적인 실시예에서, 방법(400)은 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 저장된 BCR 카운트와 비교하는 단계를 더 포함할 수 있으며, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 상기 송신하는 단계 전에 노드에 의해 기록되어 저장되어 있다(406). 예컨대, SAS 검색 개시 노드(102)가 도메인(100)의 각 확장기(104)로부터 SMP 검색 응답을 수신할 때, SAS 검색 개시 노드(102)는 (SMP 검색 응답에 수신된) 확장기(104)에 대한 BCR 카운트를 확장기(104)에 대해 이전에 기록된 BCR 카운트(확장기(104)에 대해 이전에 기록된 BCR 카운트는 SAS 검색 개시 노드(102)에 의해 이전에 기록 및/또는 저장됨)와 비교할 수 있다. 이 비교에 기초하여, SAS 검색 개시 노드(102)는 어느 확장기(104)의 어느 PHY가 송신된 BROADCAST (CHANGE) 프리미티브를 수신하는지를 신속히 결정하기 위해 구성될 수 있다. 예컨대, 설명된 실시예에서, "확장기 3"가 도메인(100)의 모든 다른 확장기(104)로 송신된 BROADCAST (CHANGE) 프리미티브의 소스(예컨대, 발신자)이고, BROADCAST (CHANGE) 프리미티브를 수신하지 않으므로, SAS 검색 개시 노드(102)는 "확장기 3"에 대한 최종 BCR 카운트가 검색 개시 노드(102)에 의해 기록되었으므로 "확장기 3"에 대한 BCR 카운트가 변화하지 않는 상기 비교하는 단계를 통해 결정할 수 있다. 따라서, 검색 개시 노드(102)는 "확장기 3"가 가장 최근에 송신된 BROADCAST (CHANGE) 프리미티브를 수신하지 않았음을 결정할 수 있다. 이와 같은 정보를 이용하여, SAS 검색 개시 노드(102)는 어느 PHY(110), 확장기(들)(104) 및/또는 경로가 가장 최근의 상태 변화(들)에 의해 영향을 받았았는지를 더욱 효율적으로 결정하기 위한 도메인의 선택된 경로(예컨대, 선택된 링크(108)를 따라 선택된 확장기(104))를 통해 추가 또는 후속 SAS 검색 트래픽(후속 SMP 검색 요청)을 결정론적으로(예컨대, 선택적으로) 송신하거나 보낼 수 있다. 이것은 SAS 검색 트래픽의 감소를 허용하여, 부가적인 또는 후속 SMP 검색 요청을 각 확장기(104)로 및/또는 도메인(100)의 모든 경로(112, 114, 116)를 따라 보내기보다는, SAS 검색 개시 노드(102)가 이와 같은 트래픽을 도메인(100)의 선택된 확장기(104)로 송신하여, 현재 SAS 도메인과 관련된 잠재적 지연 시간 문제를 완화 및/또는 방지할 수 있다. 도 2에 도시되는 설명된 실시예는 (예컨대, 3개의 분리 경로를 따라) 도메인의 모든 확장기(104)로 보내지는 초기 SMP 검색 요청을 도시한다. 상술한 바와 같이, BCR 카운트에 대한 상기 비교하는 단계로부터 도출되는 정보를 이용하여, SAS 검색 개시 노드(102)(예컨대, 개시기(102), 자기 구성 확장기(102))는 상태 변화가 "확장기 3"에 영향을 미쳤는지를 결정하여, SAS 검색 개시 노드(102)가 상기 후속 SMP 검색 요청을 "확장기 3"에 제공하는 (도 3에 도시된 바와 같은) 단일(예컨대, 제 1) 경로(112)를 따라 후속 SAS 검색 트래픽(예컨대, 후속 SMP 검색 요청)에 집중하고, 줄여서/거나 선택적으로 보낼 수 있다. 예컨대, 후속 SAS 검색 트래픽은 링크 L1, L2 및 L3를 따라 "확장기 1" 및 "확장기 2"를 통해 "확장기 3"에 제공(예컨대, 경로 지정)될 수 있다.
본 개시의 다른 실시예에서, 방법(400)은 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하는 단계를 더 포함할 수 있다(408). 상술한 바와 같이, 각 SAS 검색 개시 노드(102)는 SAS 도메인(100)의 각 PHY(110)에 대한 BCR 카운트를 추적 및/또는 기록하기 위해 구성될 수 있다. SAS 도메인(100)의 PHY(110)에 대해 이전에 기록된 BCR 카운트와 새로이 수신된 BCR 카운트를 비교할 시에, SAS 검색 개시 노드(102)는 새로이 수신된 BCR 카운트와의 상기 비교에 기초하여 저장된 BCR 카운트(예컨대, 저장된 BCR 카운트 테이블)를 갱신하기 위해 구성된다.
본 개시의 예시적인 실시예에서, 방법(400)은 상기 비교하는 단계에 기초하여 노드의 SAS 검색 알고리즘을 최적화하는 단계를 더 포함할 수 있다(410). 다른 실시예에서, 방법(400)은 상기 비교하는 단계에 기초하여, 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하는 단계를 더 포함할 수 있다(412). 예시적인 실시예에서, 새로이 수신된 BCR 카운트를 이전에 저장된 BCR 카운트와 비교한 후, SAS 검색 개시 노드(102)는 도메인(100)의 하나 이상의 확장기(104)를 선택 해제하거나 바이패스하기 위해 구성될 수 있다. 상술한 바와 같이, 설명된 실시예에서, SAS 검색 개시 노드(102)는 상기 비교하는 단계에 기초하여 가장 최근의 상태 변화가 "확장기 3"에 영향을 미치고, 도메인(100)의 어떤 다른 확장기(104)에는 영향을 미치지 않으며, 후속 SMP 검색 요청(들)이 도메인의 제 2 및 3 경로(114, 116)를 따르지 않고 도메인(100)의 제 1 경로(112)만을 따라 "확장기 3"로 보내질 필요가 있음을 결정하기 위해 구성될 수 있다. 그 후, SAS 검색 개시 노드(102)는 이에 따라 SAS 검색 알고리즘을 최적화한다. 후속 SMP 검색 요청(들)이 제 2 및 3 경로(114, 116)를 따라 보내지지 않을 것을 결정함으로써, SAS 검색 개시 노드(102)는 이들 경로(114, 116)를 따라 위치되는 도메인(100)의 확장기(104)를 효율적으로 바이패스한다.
본 개시의 다른 실시예에서, 방법(400)은 상기 비교하는 단계에 기초하여 제 2 SMP 검색 요청을 노드에서 다수의 확장기 내에 포함되는 제 2 확장기로 송신하는 단계를 더 포함할 수 있다(414). 상술한 바와 같이, 상기 비교하는 단계에 기초하여, SAS 검색 개시 노드(102)는 후속(예컨대, 다음) SMP 검색 요청이 최근의 상태 변화에 관한 더욱 많은 정보를 획득하기 위해 다수의 확장기(104) 내에 포함되는 하나 이상의 선택된 확장기(104)로 송신되는지를 결정하기 위해 구성될 수 있다. 예컨대, 도 3에 도시된 바와 같이, 상기 비교하는 단계에 기초하여, 가장 최근의 상태 변화가 "확장기 3"에 영향을 미치고, 도메인(100)의 어떤 다른 확장기(104)에는 영향을 미치지 않음을 결정한 후, 후속 SMP 검색 요청(들)은 도메인(100)의 제 1 경로(112)만을 따라 "확장기 3"로 보내질 수 있다(SAS 검색 개시 노드(102)에 의해 송신될 수 있다).
도 5는 본 개시의 예시적인 실시예에 따른 SAS 확장기(104)를 도시한 것이다. SAS 확장기(104)는 인터페이스(125)를 포함할 수 있으며, 상기 인터페이스(125)는 확장기를 SAS 도메인의 다수의 SAS 장치에 접속하기 위해 구성되고, 상기 인터페이스(125)는 다수의 SAS PHY(110)를 포함한다. SAS 확장기(104)는 메모리(118)를 더 포함할 수 있으며, 상기 메모리(118)는 SAS 확장기(104)의 다수의 BCR 카운터(120)를 저장하도록 구성되며, 다수의 BCR 카운터(120) 내에 포함되는 각 BCR 카운터(120)는 다수의 SAS PHY(110) 내에 포함되는 SAS PHY(110)에 대응하며, 각 BCR 카운터(120)는 대응하는 SAS PHY(110)에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내기 위해 구성된다. SAS 확장기(104)는 마이크로프로세서(122)를 더 포함할 수 있다. 마이크로프로세서(122)는 메모리(118) 및 인터페이스(125)에 접속될 수 있으며, 상기 마이크로프로세서(122)는 BROADCAST (CHANGE) 프리미티브가 SAS 확장기(104)의 다수의 SAS PHY(110) 내에 포함되는 SAS PHY(110)에 의해 수신될 시기를 모니터링하기 위해 구성되고, 상기 마이크로프로세서(122)는 SAS 확장기(104)의 대응하는 SAS PHY(110)의 각각에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 다수의 BCR 카운터(120) 내에 기록하기 위해 또한 구성된다. 본 개시의 다른 실시예에서, 마이크로프로세서(122)는 카운터(120)가 이들의 대응하는 PHY(110)에 의해 수신되는 각 BROADCAST (CHANGE) 프리미티브에 대해 1만큼 증가되도록 할 수 있다. 또 다른 실시예에서, 마이크로프로세서(122)는 인터페이스(125)를 통해 SAS 도메인(100)의 SAS 검색 개시 노드(102)로부터 SMP 검색 요청을 수신하기 위해 구성된다. 다른 실시예에서, 마이크로프로세서(122)는 SAS 확장기(104)가 인터페이스(125)를 통해 SMP 검색 응답을 SAS 검색 개시 노드(102)로 송신시키도록 구성되며, 상기 SMP 검색 응답은 SMP 검색 요청에 응답하며, 상기 SMP 검색 응답은 SAS 확장기의 BCR 카운터의 각각의 BCR 카운트를 포함한다.
도 6은 본 개시의 예시적인 실시예에 따른 SAS 검색 개시 노드(102)(예컨대, 개시기(102), 자기 구성 확장기(102))를 도시한 것이다. SAS 검색 개시 노드(102)는 인터페이스(130)를 포함할 수 있으며, 상기 인터페이스(130)는 노드(102)를 SAS 도메인(100)의 다수의 확장기(104)에 통신 가능하게 결합하기 위해 구성된다. SAS 검색 개시 노드(102)는 메모리(132)를 더 포함할 수 있으며, 상기 메모리(132)는 SAS 도메인(100)의 각 확장기(104)의 각 PHY(110)에 대한 다수의 BCR 카운트를 저장하기 위해 구성된다. SAS 검색 개시 노드(102)는 마이크로프로세서(134)를 더 포함할 수 있으며, 상기 마이크로프로세서(134)는 메모리(132) 및 인터페이스(130)에 접속된다. 마이크로프로세서(134)는 BROADCAST (CHANGE) 프리미티브가 SAS 도메인(100)의 다수의 확장기(104) 내에 포함되는 확장기(104)로부터 노드(102)에 의해 수신될 때에 노드(102)가 제 1 SMP 검색 요청을 SAS 도메인(100)의 다수의 확장기(104) 내에 포함되는 각 확장기(104)로 송신시키도록 하기 위해 구성된다. 노드(102)는 인터페이스(130)를 통해 다수의 SMP 검색 응답을 수신하기 위해 또한 구성되며, 상기 다수의 SMP 검색 응답은 SAS 도메인(100)의 각 확장기(104)로부터 송신되고, 상기 SMP 검색 응답은 상기 제 1 SMP 검색 요청에 응답한다. 노드(102)는 각각의 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 저장된 BCR 카운트와 비교하도록 또한 구성되며, 상기 저장된 BCR 카운트는 상기 제 1 SMP 검색 요청의 상기 송신 전에 노드(102)에 의해 기록되어 저장되어있다. 더욱이, 노드(102)는 상기 수신된 BCR 카운트에 기초하여 저장된 BCR 카운트를 갱신하기 위해 구성될 수 있다. 다른 실시예에서, 노드(102)는 이전에 기록된 BCR 카운트와 수신된 BCR 카운트의 상기 비교에 기초하여 노드(102)의 SAS 검색 알고리즘을 최적화하기 위해 구성된다. 더욱이, 상기 비교에 기초하여, 상기 노드(102)는 다수의 확장기(104) 내에 포함되는 제 1 확장기(104)를 바이패스하기 위해 구성된다. 또한, 상기 비교에 기초하여, 상기 노드(102)는 선택적으로 제 2 SMP 검색 요청을 다수의 확장기(104) 내에 포함되는 제 2 확장기(104)로 송신하기 위해 구성된다.
여기에서 개시된 방법(들)은 매우 큰 도메인 규모의 SAS 도메인으로서 신뢰성 및 성능을 개선시킬 수 있는 경로 예측을 허용한다. 이것은 SAS 엔드 장치가 부가 및/또는 제거되고, 에러가 발생할 때에 시스템의 나머지의 알림에 중요하다. 더욱이, 여기에서 개시된 방법(들)은 서비스 거부 공격과 관련된 시스템의 나머지에서 불량한(예컨대, 결함이 있는) 장치의 효과를 최소화할 수 있다.
본 발명에 따라 상술한 실시예들은, 컴퓨터 분야의 당업자에게는 자명하듯이, 본 명세서의 교시에 따라 프로그램되는 통상의 범용 디지털 컴퓨터를 이용하여 편리하게 구현될 수 있음에 주목되어야 한다. 소프트웨어 분야의 당업자에게는 자명하듯이, 적절한 소프트웨어 코딩은 본 개시의 교시에 기초하여 숙련된 프로그래머에 의해 쉽게 준비될 수 있다.
본 발명은 소프트웨어 패키지의 형식으로 편리하게 구현될 수 있는 것으로 이해될 수 있다. 이와 같은 소프트웨어 패키지는 본 발명의 개시된 기능 및 프로세스를 수행하는 컴퓨터를 프로그램하는데 이용되는 저장된 컴퓨터 코드를 포함하는 컴퓨터 판독 가능한 저장 매체를 활용하는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 판독 가능한 매체/컴퓨터 판독 가능한 저장 매체는 임의의 유형의 통상의 플로피 디스크, 광 디스크, CD-ROM, 자기 디스크, 하드 디스크 드라이브, 광자기 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드, 또는 전자 명령을 저장하기 위한 어떤 다른 적절한 매체를 포함하지만, 이에 제한되지 않는다.
상기 개시된 방법에서의 단계의 특정 순서 또는 계층은 예시적인 접근법의 예들인 것으로 이해된다. 설계 선호에 기초하여, 이 방법에서의 단계의 특정 순서 또는 계층은 본 발명의 범주 내에서 재배열될 수 있는 것으로 이해된다. 수반하는 방법은 샘플 순서로 여러 단계의 제공된 요소를 청구하며, 제공된 특정 순서 또는 계층으로 제한되는 것으로 여겨지지 않는다.
본 발명 및 그의 부수적인 많은 이점은 상술한 바에 의해 이해될 것으로 믿는다. 또한, 본 발명의 범주 및 정신으로부터 벗어나지 않거나 모든 재료의 이점을 희생시키지 않고 본 발명의 구성 요소의 형식, 구성 및 배치의 여러 변경이 행해질 것이 자명할 것으로 믿어진다. 여기서 상술한 형식은 단지 설명적인 실시예이고, 다음의 청구범위는 이와 같은 변경을 아울러 포함하는 것으로 의도된다.

Claims (22)

  1. SAS(Serial Attached Small Computer System Interface) 도메인에서 SAS 검색(SAS discovery)을 수행하는 방법에 있어서,
    SMP 검색 요청(Serial Management Protocol DISCOVER request)을 상기 SAS 도메인의 노드에서 상기 SAS 도메인의 다수의 확장기(expander) 내에 포함되는 각 확장기로 송신하는 단계와,
    상기 노드에서 상기 SAS 도메인의 다수의 확장기 내에 포함된 각 확장기로부터 상기 SMP 검색 요청에 응답하는 SMP 검색 응답(SMP DISCOVER response)을 수신하는 단계와,
    각각의 상기 수신된 SMP 검색 응답 내에 제공되는 BCR(BROADCAST (CHANGE) RECEIVED) 카운트를 저장된 BCR 카운트와 비교하되, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 송신 단계 전에 상기 노드에 의해 기록되어 저장되어 있는, 상기 비교 단계와,
    상기 수신된 BCR 카운트에 기초하여 상기 저장된 BCR 카운트를 갱신하는 단계를 포함하는
    SAS 검색을 수행하는 방법.
  2. 제1항에 있어서,
    상기 비교하는 단계에 기초하여 상기 노드의 SAS 검색 알고리즘을 최적화하는 단계를 더 포함하는
    SAS 검색을 수행하는 방법.
  3. 제1항에 있어서,
    상기 비교하는 단계에 기초하여, 상기 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하는 단계를 더 포함하는
    SAS 검색을 수행하는 방법.
  4. 제3항에 있어서,
    상기 비교하는 단계에 기초하여, 제 2 SMP 검색 요청을 상기 노드로부터 상기 다수의 확장기 내에 포함되는 제 2 확장기로 송신하는 단계를 더 포함하는
    SAS 검색을 수행하는 방법.
  5. 제1항에 있어서,
    상기 노드는 개시기(initiator) 및 자기 구성(self-configuring) 확장기 중 하나인
    SAS 검색을 수행하는 방법.
  6. 제1항에 있어서,
    상기 수신된 SMP 검색 응답 내에 제공되는 상기 BCR 카운트는 상기 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내는
    SAS 검색을 수행하는 방법.
  7. 제1항에 있어서,
    각 확장기는 상기 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시키는
    SAS 검색을 수행하는 방법.
  8. SAS(Serial Attached Small Computer System Interface) 도메인에서 SAS 검색을 위한 방법을 수행하기 위한 컴퓨터 실행 가능한 명령어를 가진 비일시적(non-transitory) 컴퓨터 판독 가능한 매체에 있어서,
    상기 방법은,
    상기 SAS 도메인의 노드로부터 SMP 검색 요청을 상기 SAS 도메인의 다수의 확장기 내에 포함되는 각 확장기로 송신하는 단계와,
    상기 노드에서 상기 SAS 도메인의 상기 다수의 확장기 내에 포함되는 각 확장기로부터 상기 SMP 검색 요청에 응답하는 SMP 검색 응답을 수신하는 단계와,
    각각의 상기 수신된 SMP 검색 응답 내에 제공되는 BCR(BROADCAST (CHANGE) RECEIVED) 카운트를 저장된 BCR 카운트와 비교하되, 상기 저장된 BCR 카운트는 상기 SMP 검색 요청의 송신 단계 전에 상기 노드에 의해 기록되어 저장되어 있는, 상기 비교 단계와,
    상기 수신된 BCR 카운트에 기초하여 상기 저장된 BCR 카운트를 갱신하는 단계를 포함하는
    컴퓨터 판독 가능한 매체.
  9. 제8항에 있어서,
    상기 방법은, 상기 비교하는 단계에 기초하여 상기 노드의 SAS 검색 알고리즘을 최적화하는 단계를 더 포함하는
    컴퓨터 판독 가능한 매체.
  10. 제9항에 있어서,
    상기 방법은, 상기 비교하는 단계에 기초하여 상기 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하는 단계를 더 포함하는
    컴퓨터 판독 가능한 매체.
  11. 제10항에 있어서,
    상기 방법은, 상기 비교하는 단계에 기초하여, 제 2 SMP 검색 요청을 상기 노드로부터 상기 다수의 확장기 내에 포함되는 제 2 확장기로 송신하는 단계를 더 포함하는
    컴퓨터 판독 가능한 매체.
  12. 제8항에 있어서,
    상기 노드는 개시기 및 자기 구성 확장기 중 하나인
    컴퓨터 판독 가능한 매체.
  13. 제8항에 있어서,
    상기 수신된 SMP 검색 응답 내에 제공되는 상기 BCR 카운트는 상기 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내는
    컴퓨터 판독 가능한 매체.
  14. 제8항에 있어서, 각 확장기는 상기 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시키는
    컴퓨터 판독 가능한 매체.
  15. SAS(Serial Attached Small Computer System Interface) 도메인의 SAS 검색 개시 노드에 있어서,
    상기 노드를 상기 SAS 도메인의 다수의 확장기에 통신 가능하게 결합하도록 구성된 인터페이스와,
    다수의 BCR(BROADCAST (CHANGE) RECEIVED) 카운트를 저장하도록 구성되는 메모리와,
    상기 메모리 및 상기 인터페이스에 접속되고, BROADCAST (CHANGE) 프리미티브가 상기 SAS 도메인의 다수의 확장기 내에 포함되는 확장기로부터 상기 노드에 의해 수신될 때에 상기 노드로 하여금 제 1 SMP 검색 요청을 상기 SAS 도메인의 상기 다수의 확장기 내에 포함되는 각 확장기로 송신하게 하도록 구성되는 마이크로 프로세서를 포함하되,
    상기 노드는 상기 인터페이스를 통해, 다수의 SMP 검색 응답을 수신하도록 또한 구성되며, 상기 다수의 SMP 검색 응답은 상기 SAS 도메인의 상기 다수의 확장기로부터 송신되고, 상기 SMP 검색 응답은 상기 제 1 SMP 검색 요청에 응답하며, 상기 노드는 각각의 상기 수신된 SMP 검색 응답 내에 제공되는 BCR 카운트를 상기 저장된 BCR 카운트와 비교하도록 또한 구성되고, 상기 저장된 BCR 카운트는 상기 제 1 SMP 검색 요청의 송신 전에 상기 노드에 의해 기록되어 저장돼 있으며,
    상기 노드는 상기 수신된 BCR 카운트에 기초하여 상기 저장된 BCR 카운트를 갱신하는
    SAS 도메인의 SAS 검색 개시 노드.
  16. 제15항에 있어서,
    상기 노드는 상기 이전에 기록된 BCR 카운트와 상기 수신된 BCR 카운트의 상기 비교에 기초하여 상기 노드의 SAS 검색 알고리즘을 최적화하도록 구성되는
    SAS 도메인의 SAS 검색 개시 노드.
  17. 제16항에 있어서,
    상기 비교에 기초하여, 상기 노드는 상기 다수의 확장기 내에 포함되는 제 1 확장기를 바이패스하도록 구성되는
    SAS 도메인의 SAS 검색 개시 노드.

  18. 제17항에 있어서,
    상기 비교에 기초하여, 상기 노드는 제 2 SMP 검색 요청을 상기 다수의 확장기 내에 포함되는 제 2 확장기로 송신하도록 구성되는
    SAS 도메인의 SAS 검색 개시 노드.
  19. 제15항에 있어서,
    상기 노드는 개시기 및 자기 구성 확장기 중 하나인
    SAS 도메인의 SAS 검색 개시 노드.
  20. 제15항에 있어서,
    상기 수신된 SMP 검색 응답 내에 제공되는 상기 BCR 카운트는 상기 확장기의 각 PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내는
    SAS 도메인의 SAS 검색 개시 노드.
  21. 제15항에 있어서,
    각 확장기는 상기 SAS 도메인의 원격 장치로부터 BROADCAST (CHANGE) 프리미티브를 수신할 때 BCR 카운트를 증가시키는
    SAS 도메인의 SAS 검색 개시 노드.
  22. SAS(Serial Attached Small Computer System Interface) 확장기에 있어서,
    상기 확장기를 SAS 도메인의 다수의 SAS 장치에 접속하기 위해 구성되며 다수의 SAS PHY를 포함하는 인터페이스와,
    상기 SAS 확장기의 다수의 BCR(BROADCAST (CHANGE) RECEIVED) 카운터를 저장하도록 구성되는 메모리를 포함하되, 상기 다수의 BCR 카운터 내에 포함되는 각 BCR 카운터는 상기 다수의 SAS PHY 내에 포함되는 SAS PHY에 대응하며, 각 BCR 카운터는 대응하는 SAS PHY에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 나타내도록 구성되고,
    상기 메모리 및 상기 인터페이스에 접속되되, BROADCAST (CHANGE) 프리미티브가 상기 SAS 확장기의 상기 다수의 SAS PHY 내에 포함되는 SAS PHY에 의해 수신되는 시기를 모니터링하기 위해 구성되고, 상기 SAS 확장기의 상기 대응하는 SAS PHY의 각각에 의해 수신되는 다수의 BROADCAST (CHANGE) 프리미티브를 상기 다수의 BCR 카운터 내에 기록하기 위해 또한 구성되며, 상기 카운터가 이들의 대응하는 PHY에 의해 수신되는 각 BROADCAST (CHANGE) 프리미티브에 대해 1만큼 증가되도록 하고, 상기 인터페이스를 통해 상기 SAS 도메인의 상기 다수의 SAS 장치 내에 포함되는 SAS 검색 개시 노드에 의해 송신되는 SMP 검색 요청을 수신하기 위해 구성되며, 상기 SAS 확장기로 하여금 상기 SMP 검색 요청에 응답하여 상기 인터페이스를 통해 SMP 검색 응답을 상기 SAS 검색 개시 노드로 송신하게 하도록 또한 구성되는 마이크로 프로세서를 포함하며,
    상기 SMP 검색 응답을 상기 SAS 확장기의 상기 BCR 카운터의 각각의 BCR 카운트를 포함하는
    SAS 확장기.
KR1020110114538A 2010-11-15 2011-11-04 결정론적 sas 검색 및 구성을 위한 방법 KR101196547B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/946,231 US8200872B2 (en) 2010-11-15 2010-11-15 Method for deterministic SAS discovery and configuration
US12/946,231 2010-11-15

Publications (2)

Publication Number Publication Date
KR20120052158A true KR20120052158A (ko) 2012-05-23
KR101196547B1 KR101196547B1 (ko) 2012-11-01

Family

ID=44992809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110114538A KR101196547B1 (ko) 2010-11-15 2011-11-04 결정론적 sas 검색 및 구성을 위한 방법

Country Status (6)

Country Link
US (1) US8200872B2 (ko)
EP (1) EP2453364B1 (ko)
JP (1) JP5144799B2 (ko)
KR (1) KR101196547B1 (ko)
CN (1) CN102591838B (ko)
TW (1) TWI375153B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012108794A (ja) * 2010-11-18 2012-06-07 Fujitsu Ltd 中継装置、中継方法およびデバイス管理装置
US8626981B1 (en) * 2011-03-24 2014-01-07 Maxim Integrated Products, Inc. SAS expander with non-blocking virtual PHY architecture
TW201303333A (zh) * 2011-07-06 2013-01-16 Hon Hai Prec Ind Co Ltd Sas信號完整性分析系統及方法
TW201324163A (zh) * 2011-12-02 2013-06-16 Hon Hai Prec Ind Co Ltd 籍由記憶體介面擴展器連接設備的電子裝置及其連接方法
US8626974B2 (en) * 2012-01-19 2014-01-07 Lsi Corporation Methods and systems for reduced signal path count for interconnect signals within a storage system expander
US9081818B2 (en) * 2012-03-13 2015-07-14 Hewlett-Packard Development Company, L.P. SAS fabric discovery
US11474704B2 (en) 2012-05-18 2022-10-18 Atto Technology, Inc. Target path selection for storage controllers
US8972618B2 (en) 2012-07-31 2015-03-03 Hewlett-Packard Develpment Company, L.P. Staged discovery in a data storage fabric
US9135198B2 (en) * 2012-10-31 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Methods and structure for serial attached SCSI expanders that self-configure by setting routing attributes of their ports based on SMP requests
US8793406B2 (en) * 2012-11-16 2014-07-29 Hewlett-Packard Development Company, L.P. SAS switch that supports bulk discovery wherein the bulk discovery is either on a push basis or pull basis
US9026713B2 (en) * 2012-12-13 2015-05-05 Avago Technologies General Ip (Singapore) Pte Ltd Expander for loop architectures
US8990448B2 (en) * 2013-03-08 2015-03-24 Lsi Corporation Smart discovery model in a serial attached small computer system topology
CN103729321B (zh) * 2013-12-27 2017-01-18 华为技术有限公司 一种管理设备和多扩展器芯片管理方法
CN107273055B (zh) * 2017-06-29 2020-10-23 苏州浪潮智能科技有限公司 一种jbod级联系统及方法
CN109508200A (zh) * 2018-11-02 2019-03-22 郑州云海信息技术有限公司 一种服务器Expander卡固件升级方法及系统
CN110515540B (zh) * 2019-07-26 2022-07-22 苏州浪潮智能科技有限公司 一种拓扑硬盘的方法及装置
CN111159080B (zh) * 2019-12-31 2021-11-12 加弘科技咨询(上海)有限公司 机箱管理系统及管理方法
CN114415957B (zh) * 2022-01-20 2022-11-29 无锡众星微系统技术有限公司 一种级联expander自动配置方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138221A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Handling redundant paths among devices
US7738397B2 (en) * 2004-02-19 2010-06-15 Intel Corporation Generating topology information identifying devices in a network topology
US8089902B1 (en) * 2005-01-07 2012-01-03 Pmc-Sierra Us, Inc. Serial attached SCSI broadcast primitive processor filtering for loop architectures
US7401171B2 (en) * 2005-10-31 2008-07-15 Lsi Corporation Methods and structure for SAS expander initiating communication to a SAS initiator to identify changes in the SAS domain
US7673185B2 (en) 2006-06-08 2010-03-02 Dot Hill Systems Corporation Adaptive SAS PHY configuration
WO2007146515A2 (en) * 2006-06-08 2007-12-21 Dot Hill Systems Corporation Fault-isolating sas expander
US8051436B2 (en) * 2007-06-29 2011-11-01 Emulex Design & Manufacturing Corporation SAS expander-side optimization for the re-discovery process
US7787452B2 (en) * 2007-06-29 2010-08-31 Emulex Design & Manufacturing Corporation Isolation of unverified devices in a SAS expander
US7917665B1 (en) * 2008-04-25 2011-03-29 Netapp, Inc. Method and system for minimizing unnecessary topology discovery operations by managing physical layer state change notifcations in storage systems
CN101515871B (zh) * 2009-03-27 2011-04-20 杭州华三通信技术有限公司 一种sas链路状态变化抑制方法和监控实体
CN101534304A (zh) * 2009-04-23 2009-09-16 杭州华三通信技术有限公司 Sas域变化非全遍历发现过程的方法和系统
US8402196B2 (en) * 2010-03-04 2013-03-19 Xyratex Technology Limited Storage assembly, a physical expander and a method

Also Published As

Publication number Publication date
KR101196547B1 (ko) 2012-11-01
TW201220065A (en) 2012-05-16
CN102591838B (zh) 2015-04-08
TWI375153B (en) 2012-10-21
US8200872B2 (en) 2012-06-12
EP2453364A1 (en) 2012-05-16
US20120124256A1 (en) 2012-05-17
JP5144799B2 (ja) 2013-02-13
JP2012108905A (ja) 2012-06-07
EP2453364B1 (en) 2016-05-25
CN102591838A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
KR101196547B1 (ko) 결정론적 sas 검색 및 구성을 위한 방법
CN105573839B (zh) 用于端口选择的基于成本的负载平衡的方法和装置
CN102469025B (zh) 多存储系统上的多路径交换
US7334075B2 (en) Managing transmissions between devices
US8074105B2 (en) High data availability SAS-based RAID system
US8312312B2 (en) Data storage system using multiple communication protocols
US7574540B2 (en) Managing management controller communications
JP5535322B2 (ja) バックエンドでの通信の規格がsasであるストレージシステム
EP3668056B1 (en) Method and device for transmitting data processing request
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US9910800B1 (en) Utilizing remote direct memory access (‘RDMA’) for communication between controllers in a storage array
US20120233399A1 (en) Storage apparatus and method of controlling the same
CN104423889A (zh) 一种多路径管理方法和系统
US8078809B2 (en) System for accessing an offline storage unit through an online storage unit
US20080195766A1 (en) Disk-drive automatic recognition/setting apparatus and disk-drive automatic recognition/setting method
JP2007128437A (ja) ディスクアレイ装置及びその経路障害検出方法
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
US8918571B2 (en) Exposing expanders in a data storage fabric
US10063425B1 (en) Event-based in-band host registration
US20050138221A1 (en) Handling redundant paths among devices
US10318196B1 (en) Stateless storage system controller in a direct flash storage system
US6748557B1 (en) System, method, and program for determining the availability of interfaces to a control unit
US7549088B2 (en) Communication apparatus and program provided with failure determining method and function
US20130144977A1 (en) Shared-bandwidth multiple target remote copy
JP2004164072A (ja) ディスク制御装置およびディスク制御装置の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee