KR20120078535A - Sas 확장기 접속 라우팅 기술들 - Google Patents

Sas 확장기 접속 라우팅 기술들 Download PDF

Info

Publication number
KR20120078535A
KR20120078535A KR1020110027716A KR20110027716A KR20120078535A KR 20120078535 A KR20120078535 A KR 20120078535A KR 1020110027716 A KR1020110027716 A KR 1020110027716A KR 20110027716 A KR20110027716 A KR 20110027716A KR 20120078535 A KR20120078535 A KR 20120078535A
Authority
KR
South Korea
Prior art keywords
address
routing
expander
addresses
lookup table
Prior art date
Application number
KR1020110027716A
Other languages
English (en)
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 KR20120078535A publication Critical patent/KR20120078535A/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

직렬 연결형 SCSI 확장기 네트워크의 토폴로지 크기 증가를 가능하게 하고, 시스템 토폴로지에 관한 어드레스 위치들을 저장하기 위해 사용되는 콘텐트 어드레스지정 가능 메모리의 엔트리들을 제한하기 위한 기술들이 개시되어 있다. 일 방법에 따르면, 룩업 테이블 엔트리들을 감소시키기 위해 어드레스들이 OAF 요청에 제공된다. 또 다른 실시예에 따르면, 어드레스 범위들이 룩업 테이블에 제공된다. 또한, 가상 메모리 기술들이 사용되어, 소프트웨어 룩업 처리가 사용될 수 있거나, 또는 하드웨어 처리가 사용될 수 있도록 함으로써, 가장 최근에 사용된 어드레스들만이 룩업 테이블에 저장되게 된다.

Description

SAS 확장기 접속 라우팅 기술들{SAS EXPANDER CONNECTION ROUTING TECHNIQUES}
본 발명은 SAS 확장기 접속 라우팅 기술들에 관한 것이다.
직렬 연결형 SCSI(SAS, serial attached SCSI)는 하드 드라이브들 및 테이프 드라이브들과 같은 컴퓨터 저장 장치들로/로부터 데이터를 이동시키기 위해 사용되는 컴퓨터 버스이다. SAS는 점-대-점 직렬 프로토콜에 의존한다. 일반적인 직렬 연결형 SCSI 시스템들은, 타겟 장치에 의해 처리하기 위한 서비스 및 요청들을 시작하고 이들 요청들에 대한 응답들을 타겟 장치들로부터 수신하는 장치인 개시자(initiator)를 포함한다. 개시자는 제어기 또는 호스트 장치를 포함할 수도 있다. 타겟들은, 장치 서비스 및 처리를 위한 작업 관리 요청들을 수신하고 동일한 요청들에 대한 응답들을 개시자 장치들로 전송하는 타겟 포트들 및 논리 유닛들을 포함하는 장치들이다. 타겟 장치들은 하드 디스크 또는 디스크 어레이를 포함할 수도 있다. 확장기들은, SAS 장치들 간의 통신을 용이하게 하고 다수의 SAS 종단 장치들의 접속을 용이하게 하는 장치들이다.
본 발명의 목적은 직렬 연결형 SCSI 확장기 네트워크의 토폴로지 크기 증가를 가능하게 하고, 시스템 토폴로지에 관한 어드레스 위치들을 저장하기 위해 사용되는 콘텐트 어드레스지정 가능 메모리의 엔트리들을 제한하기 위한 기술들을 제공하는 것이다.
따라서, 본 발명의 실시예는, 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기(expander)의 룩업 테이블의 엔트리들의 수를 감소시키는 방법을 포함할 수도 있고, 이 방법은, 소스 확장기 식별, 소스 물리 어드레스 정보, 목적지 확장기 식별, 및 목적지 물리 어드레스 정보를 포함하는 개방 어드레스 요청에 라우팅 정보를 제공하는 단계; 및 개시자 및 타겟 간에 데이터를 라우팅하기 위해 룩업 테이블의 라우팅 정보를 사용하는 단계를 포함한다.
본 발명의 실시예는, 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법을 더 포함할 수도 있고, 이 방법은, 소스 확장기 어드레스 정보 및 목적지 확장기 어드레스 정보를 포함하는 개방 어드레스 프레임 요청에 라우팅 정보를 제공하는 단계; 및 개시자 및 타겟 간에 데이터를 라우팅하기 위해 룩업 테이블의 라우팅 정보를 사용하는 단계를 포함한다.
본 발명의 실시예는, 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 소정의 토폴로지를 갖는 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 처리를 추가로 포함할 수도 있고, 이 처리는, 저장 시스템의 토폴로지에 존재하는 장치들의 물리 어드레스들에 대한 SAS 어드레스 범위들을 발생시키는 단계; 룩업 테이블에 SAS 어드레스 범위들을 저장하는 단계; 개방 어드레스 프레임 요청의 어드레스들의 어드레스 범위 정보를 결정하기 위해 개방 어드레스 프레임 요청의 목적지 SAS 어드레스들을 검사하는 단계; 및 장치들로 라우팅하기 위한 물리층 인덱스를 검색하기 위해 개방 어드레스 프레임 요청의 어드레스들의 어드레스 범위 정보를 사용하는 단계를 포함한다.
본 발명의 실시예는, 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 소정의 토폴로지를 갖는 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법을 추가로 포함할 수도 있고, 이 방법은, 저장 시스템의 토폴로지에 대한 라우팅 어드레스들을 얻기 위해 발견 루틴(discovery routine)을 작동시키는 단계; 부가 RAM에 라우팅 어드레스들을 저장하는 단계; 가장 최근에 사용된 라우팅 어드레스들로 룩업 테이블을 채우는 단계; 개방 어드레스 프레임 요청을 판독하는 단계; 개방 어드레스 프레임 요청에 포함된 어드레스 정보를 룩업 테이블에 저장된 라우팅 어드레스들과 비교하는 단계; 룩업 테이블에 저장된 라우팅 어드레스들이 개방 어드레스 프레임 요청에 포함된 어드레스 정보와 매칭할 때, 개방 어드레스 프레임 요청을 라우팅하기 위한 라우팅 어드레스들을 제공하는 단계; 룩업 테이블에 저장된 라우팅 어드레스들이 개방 어드레스 프레임 요청에 포함된 어드레스 정보와 매칭하지 않을 때, 부가 RAM을 액세스하는 단계; 개방 어드레스 프레임 요청에 포함된 어드레스 정보를 부가 RAM에 저장된 라우팅 어드레스들과 비교하는 단계; 및 부가 RAM에 저장된 라우팅 어드레스들이 개방 어드레스 프레임 요청에 포함된 어드레스 정보와 매칭할 때, 개방 어드레스 프레임 요청을 라우팅하기 위한 라우팅 어드레스들을 제공하는 단계를 포함한다.
본 발명에 따르면, 직렬 연결형 SCSI 확장기 네트워크의 토폴로지 크기 증가를 가능하게 하고, 시스템 토폴로지에 관한 어드레스 위치들을 저장하기 위해 사용되는 콘텐트 어드레스지정 가능 메모리의 엔트리들을 제한할 수 있다.
도 1은 저장 시스템의 토폴로지의 일 실시예를 도시하는 개략적인 블록도.
도 2는 접속 요청에 대한 일 실시예의 작업 흐름도.
도 3은 접속 요청에 대한 응답의 일 실시예의 작업 흐름도.
도 4는 테이블 엔트리들의 일 실시예의 예시도.
도 5는 룩업 테이블 어드레스 범위들을 사용하기 위한 처리의 일 실시예의 흐름도.
도 6은 어드레스 범위들을 제공하기 위한 룩업 테이블의 블록도.
도 7은 가상 룩업 처리를 수행하기 위한 흐름도.
도 1은 저장 시스템의 예시적인 토폴로지(100)의 일 실시예를 도시하는 개략적인 블록도이다. 도 1에 도시된 바와 같이, 개시자(102)는 개방 어드레스 프레임 또는 OAF라고 언급되는 요청 명령을 사용하여 타겟들(108, 110, 114, 116, 120, 124)로부터의 데이터에 대한 요청들을 개시할 수도 있다. OAF는 소스 어드레스, 즉, 개시자(102)의 어드레스 및 타겟의 어드레스인 목적지 SAS 어드레스를 포함한다. 확장기(104)는 OAF 요청을 수신하고, 테이블(126)과 같이, 일반적으로 콘텐트 어드레스지정 가능 메모리(CAM; content addressable memory)인 룩업 테이블을 조회한다. 테이블(126)은 타겟으로부터의 데이터를 액세스하기 위한 라우팅 어드레스들을 제공한다. 확장기(104)는 먼저 타겟이 확장기(104)에 직접 접속되는지를 알아보기 위해 체크한다. 타겟이 확장기(104)에 직접 연결되지 않는다면, 확장기(104)는 타겟에 대한 라우팅 데이터를 얻기 위해 테이블(126)을 조회한다. 종래 기술의 장치들에 있어서, 테이블(126)은 각 목적지 SAS 어드레스에 대해 하나의 라우팅 엔트리를 포함한다. 확장기(104)는 256개까지의 상이한 포트들을 가질 수도 있고, 확장기들(106, 112, 118, 122) 각각은 256개까지의 포트들을 각각 가질 수도 있기 때문에, 룩업 테이블(126)은 다수의 엔트리들을 가질 수도 있다. 테이블(126)에 정보를 저장하는 비용 및 액세스 시간은 종래의 기술들의 약점들을 포함한다. 확장기들의 부가층이, 각각 256개까지의 포트들을 가질 수 있는, 확장기들(106, 112, 118, 122)에 접속되면, 이것은 테이블 엔트리들이 지수적으로 증가하도록 한다. 테이블(126)의 엔트리들의 수를 감소시키는 것은 유리하게는 확장기(104)의 처리 칩에 위치될 필요가 있는 CAM 메모리의 양과 관련된 비용 및 처리 시간을 감소시킬 수 있다.
접속이 요청되고 있는 SAS 포트의 포트 식별자를 명시하는 목적지 SAS 어드레스 및 개시자(102)와 같이, 개방 어드레스 프레임dl 시작되는 SAS 포트의 포트 식별자를 명시하는 소스 SAS 어드레스 필드를 포함하는 엔트리를 갖기보다는, OAF의 "목적지 SAS 어드레스" 필드들이 수정될 수 있다. 예를 들어, 개시자(102)로부터의 OAF 요청은, 소스 확장기 ID, 소스 물리 어드레스 ID, 목적지 확장기 ID 및 목적지 포트 ID와 같은 라우팅 정보를 포함할 수 있다. 예를 들어, OAF 요청은 다음과 같이 기술될 수도 있다:
Figure pat00001
이 경우에, SrcExpID의 필드는 소스 포트가 직접 연결되는 확장기에 할당된 인덱스의 값을 포함한다. 이 경우에, 소스는 개시자(102)이고, 확장기는 확장기(104)이다. SrcPhyID의 필드는 소스 포트, 즉, 포트들(128) 중 하나가 직접 연결되는 물리 어드레스의 값을 갖는다. 필드 DestExpID는 목적지 포트가 직접 연결되는 확장기에 할당된 인덱스의 값을 포함한다. 예를 들어, 목적지가 타겟(114)(타겟32)이면, 확장기는 확장기(112)이다. 필드 DestPhyID는 목적지가 연결되는 포트, 즉, 포트(142)의 값을 갖는다.
기존 OAF에서 목적지 어드레스 지정을 위해 64 비트들이 할당되기 때문에, 8 바이트들은 어드레스 지정을 위해 OAF에서 사용하기 위한 8 비트들을 갖는다. 이들 바이트들은 위에 나타낸 바와 같이 바이트 11 내지 바이트 4로 표시되어 있다.
도 2는 개시자(102)로부터의 데이터 요청에 대한 작업 흐름도(200)를 도시한다. 도 2에 도시된 바와 같이, 도 1의 개시자(102)를 포함할 수도 있는 제어기(202)가 OAF 요청(204)을 개시한다. OAF는 바이트들의 블록(210)이고, 이 블록은 바이트들의 프리뷰 세트인 SOAF(211), 및 블록(210)의 섹션(212)을 형성하는 소스 제어기 어드레스(216), 및 블록(210)의 섹션(214)을 형성하는 목적지 어드레스들(218)을 포함한다. OAF 요청(204)은 포트(206)를 통해 확장기(208)로 전송된다. 예를 들어, 확장기(208)는 도 1에 도시된 확장기(104)를 포함할 수도 있다. 확장기(208)는, 224에 나타낸 바와 같이, OAF(204)를 포트(222)를 통해 최종 확장기(226)로 전송하기 위해 목적지 확장기 ID를 사용한다. 최종 확장기(226)는, 포트(230)가 드라이브(242)에 접속된다는 것을 나타내는, 섹터들(214)로부터의 목적지 물리 어드레스를 이용한다. 최종 확장기(226)는, 블록(232)에 나타낸 바와 같이, OAF(204)가 포트(230)를 통해 드라이브(242)로 전송되기 전에 OAF(204)를 수정한다. 이어서, 드라이브(242)는 OAF 요청(204)을 저장하여, 드라이브(242)가 제어기(202)로 데이터를 복귀시키기 위한 적절한 어드레스들을 갖도록 한다.
도 3은 타겟에 의한 응답의 작업 흐름도(300)이다. 도 3에 도시된 바와 같이, 드라이브(242)는 OAF(302)를 발생시킨다. OAF(302)는 블록(304)을 포함한다. 타겟 목적지(312)는 소스 확장기 ID, 소스 물리 ID, 목적지 확장기 ID 및 목적지 물리 ID를 제공한다. 타겟 소스 데이터(314)는 타겟 드라이브 SAS 어드레스를 포함한다. 이 정보는 응답이 드라이브(242)로부터 온다는 것을 제어기(202)가 알고 있음을 보장하기 위해 제어기(202)에 의해 사용된다. OAF(302)는 포트(230)를 통해 최종 확장기(226)로 전송된다. 최종 확장기(226)는 블록(306)에 나타낸 바와 같이 OAF(302)를 수정한 다음, OAF(302)를 포트(320)를 통해 확장기(208)로 전송한다. OAF는 블록(306)을 포함하고, 이 블록은 목적지 확장기 ID, 목적지 물리 ID, 소스 확장기 ID 및 소스 물리 ID 어드레스를 포함하는 타겟 목적지 섹터(316)를 포함한다. 섹터(318)는 타겟 소스 드라이브 SAS 어드레스를 포함한다. 확장기(208)는 OAF(302)를 포트(322)를 통해 제어기(202)로 라우팅하기 위해 소스 확장기 ID를 이용한다. 도 2 및 도 3에 도시되는 방법들을 사용하면, 테이블(126)의 엔트리들의 수는, 1,000개 이상의 어드레스들일 수도 있는 종단 장치 SAS 어드레스들의 수에서, 임의의 소정의 토폴로지에서 일반적으로 대략 50개 이하인 확장기 인덱스 어드레스들의 수로 감소된다. 이것은 데이터가 액세스될 수 있는 속도를 증가시킬 뿐만 아니라, 확장기 처리기 칩들에 포함되는 CAM의 비용을 감소시킨다.
테이블(126)에 있는 테이블 엔트리들을 감소시키는 대안적인 방법이 도 4에 도시되어 있다. 이 실시예에 따르면, 2개의 새로운 필드들이 기존 OAF 포맷에 부가되어 있다. 2개의 새로운 필드들은 소스 확장기 SAS 어드레스 및 목적지 확장기 SAS 어드레스이다. 소스 확장기 SAS 어드레스는 소스 포트가 직접 접속되는 확장기를 명시한다. 도 1의 실시예에서, 소스 확장기 SAS 어드레스는 확장기(104)의 어드레스이다. 목적지 확장기 SAS 어드레스는 목적지 포트가 직접 접속되는 확장기를 명시한다. 예를 들어, 목적지가 타겟(114)이면, 목적지 확장기 SAS 어드레스는 확장기(112)의 어드레스이다. 물론, 개시자(102)가 목적지 타겟에 직접 접속되는 포트(128)를 가지면, 이들 어드레스들에 대한 필드는 0이다. 확장기(104)는 먼저 OAF의 목적지 SAS 어드레스가 임의의 직접 연결된 타겟의 SAS 어드레스와 매칭하는지를 체크한다. 어드레스들이 매칭하면, 접속은 명시된 연결된 타겟 포트로 라우팅될 것이다. 어드레스들이 매칭하지 않으면, 확장기(104)는 CAM으로부터 룩업을 수행하기 위해 OAF에 명시된 목적지 확장기 SAS 어드레스를 사용할 것이다.
따라서, 테이블 엔트리들에 있는 어드레스들의 목록은 타겟들이라기 보다는 확장기들의 어드레스들이다. 예를 들어, 타겟 SAS 어드레스를 갖기보다, 테이블은 목적지 확장기 SAS 어드레스로서, 타겟이 직접 접속되는 최종 확장기의 물리 어드레스, 및 개시자가 접속되는 확장기의 어드레스를 포함할 것이다. 예를 들어, 도 1에 도시된 바와 같이, 타겟이 타겟(114)이고 개시자가 개시자(102)이면, 확장기(112)의 어드레스는 목적지 확장기 SAS 어드레스로서 사용되고, 확장기(104)의 어드레스는 소스 확장기 SAS 어드레스로서 사용된다. 이 방법을 사용하면, 타겟들의 총 수보다는, 어드레스들이 간단히 최종 확장기들의 수로 감소되기 때문에, 테이블(126)의 엔트리들의 수가 크게 감소된다.
테이블(126)의 엔트리들을 감소시키기 위한 또 다른 대안적인 방법은 OAF에 어드레스 정보를 포함시키기 위해, 바이트 24 내지 바이트 27을 포함하는, "MORECOMPATIBLEFEATURE(추가-호환성-특징)"인 OAF의 데이터 필드들을 사용하는 것이다. OAF를 수신하는 물리층은 "MORECOMPATIBLEFEATURE" 필드("FEATURE 필드")를 무시한다. 추가 호환성 특징 필드는 이전의 표준 버전들과 호환하지 않는 부가적인 특징들을 명시한다. 대부분의 토폴로지들에는, 매우 적은 수의 개시자들 및 확장기들이 있고, 장치들 대부분은 타겟 드라이브들이기 때문에, 이러한 사실의 이점을 얻기 위해서, OAF의 FEATURE 필드는 부가 정보를 제공하기 위해 사용될 수 있다. FEATURE 필드가 0으로 설정될 때, SAS-2 명세에 정의되어 있는 바와 같이, OAF는 정상적이다. FEATURE 필드가 1로 설정될 때, MORECOMPATIBLEFEATURE[7:0] 필드 값은 Phy 번호, 또는 접속이 라우팅되어야 하는 목적지 확장기의 포트 번호를 나타낸다. FEATURE 필드가 1로 설정되고, OAF에 있는 목적지 SAS 어드레스가 확장기(112)와 같은 확장기의 SAS 어드레스와 매칭하면, 확장기(112)는 MORECOMPATIBLEFEATURE[7:0] 필드에 표시된 Phy 번호로 직접 접속을 라우팅하는 것을 알고 있으며, 이는 확장기(112)에 대한 타겟의 직접 접속이다. 중간 확장기들이 존재하면, 테이블(126)의 엔트리들은 최종 확장기의 SAS 어드레스인 명시된 목적지 어드레스의 접속으로 라우팅될 것이다.
이 방법에 따르면, 라우팅 테이블(126)의 엔트리들은 개시자 SAS 어드레스들 및 전체 토폴로지에 대한 확장기 SAS 어드레스들을 포함할 것이다. 이 방법을 사용하면, 개시자들의 수 및 확장기들의 수는 대부분의 토폴로지들에 있는 타겟들 또는 종단 장치들의 수보다 적어도 한 자릿수만큼 훨씬 적기 때문에, 라우팅 테이블(126)의 엔트리들의 수는 크게 감소될 것이다.
제 2 및 제 3 개시된 방법에 따르면, 목적지 타겟 SAS 어드레스들을 사용하는 대신 소정의 토폴로지를 통해 접속들을 라우팅하기 위해 확장기 SAS 어드레스들 및 목적지 Phy 번호, 또는 포트 번호가 사용될 수 있다. 그 결과를 달성하기 위한 한 가지 방법이 제시되었지만, OAF 요청에서 목적지 포트 번호 또는 목적지 SAS 어드레스와 함께, 확장기 SAS 어드레스를 제공하는 임의의 처리는 명백히 본 발명의 범위 내에 있다.
제 1 방법에 따르면, 목적지 타겟 SAS 어드레스를 사용하는 대신 임의의 소정의 토폴로지에서 접속을 라우팅하기 위해 목적지 포트 번호와 함께 확장기 식별자가 사용될 수 있다. 두 가지 방법들이 제시되었지만, 목적지 포트 번호와 함께 확장기 식별자를 제공하기 위한 임의의 방법은 본 발명의 범위 내에 있다.
상술된 바와 같이, SAS 확장기들에 대한 기존의 테이블 기반 라우팅 메카니즘들은 각 SAS 어드레스마다 하나의 라우팅 엔트리를 갖는다. 확장기(104)의 포트들(128) 중 하나의 포트와 같이, 명시된 어드레스를 갖는 인입 포트에서 개방 어드레스 프레임(OAF) 요청이 수신될 때마다, OAF가 라우팅되어야 하는 인출 물리 어드레스를 찾기 위해, 테이블(126)에서 콘텐트 어드레스지정 가능 메모리 룩업 또는 몇몇 유사한 처리를 수행한다. 테이블들은 SAS 어드레스당 하나의 엔트리를 갖기 때문에, 저장 액세스 시스템의 토폴로지를 커버하기 위해 필요한 테이블(126)에 있는 테이블 엔트리들의 수는 토폴로지의 크기에 따라 선형으로 증가한다.
콘텐트 어드레스지정 가능 메모리 테이블(126)의 엔트리들의 수를 감소시키는 또 다른 방법은 특정 Phy로 라우팅되는 SAS 어드레스들의 범위를 명시하는 것이다. 예를 들어, Phy 0이 다음과 같은 SAS 어드레스 범위에 달하도록 구성되면,
Figure pat00002
상술된 바와 같이, SAS 어드레스 범위 내에 있는 목적지를 타겟으로 하는 모든 인입 OAF들은 Phy 0으로 라우팅될 것이며, 이는 상당수의 라우팅 엔트리들을 제거할 것이다. 테이블(126)에 있는 정적 룩업 시간, 또는 유사한 장치는 테이블 엔트리들의 크기에 비례하기 때문에, 어드레스 범위들은 범위의 크기만큼 엔트리들의 수를 감소시킨다.
도 5는 룩업 테이블 어드레스 범위들을 사용하기 위한 처리(500)를 예시하는 개략적인 블록도이다. 단계 502에서, 어드레스 범위들이 발생된다. 확장기 내의 처리기(125)가 이들 어드레스 범위들을 발생시킬 수도 있다. 단계 504에서, 어드레스 범위들은 도 1의 룩업 테이블(126)과 같은 룩업 테이블에 저장된다. 단계 506에서, 인입 OAF의 어드레스들은 OAF의 어드레스들이 어느 범위에 있는지를 결정하기 위해 처리기(125)에 의해 검사된다. 단계 508에서, 룩업 테이블(126)은 그 특정 어드레스 범위에 대한 물리 어드레스를 검색하기 위해 액세스된다.
범위 탐색들의 구현은 여러 상이한 방식들로 달성될 수 있다. 어드레스들의 범위들에 대한 탐색들을 수행하는 한 가지 방식은, SAS 어드레스에서 감소된 수의 비트들에 기초하여 룩업을 수행하기 위한 메카니즘을 제공하는 3진 콘텐트 어드레스지정 가능 메모리(602)를 사용하는 것이다. 감소된 수의 비트들은 자동적으로 어드레스들의 범위를 제공한다.
도 6은 어드레스 범위 룩업 테이블 장치(600)를 도시하는 개략적인 블록도이다. 도 6에 도시된 바와 같이, 3진 콘텐트 어드레스지정 가능 메모리(602)는 어드레스 범위들의 룩업을 제공하기 위해 사용된다. OAF(606)는 어드레스 범위를 결정하기 위해 OAF를 처리하는 처리기(604)에 의해 수신된다. 어드레스 범위(608)가 발생되어, 3진 콘텐트 어드레스지정 가능 메모리(602)에 인가된다. 3진 콘텐트 어드레스지정 가능 메모리(602)는 처리기(604)에 제공되는 물리 어드레스(610)를 발생시킨다.
또 다른 방식은 SAS 어드레스 룩업을 수행하는 확장기 하드웨어 논리 및 표준 콘텐트 어드레스지정 가능 메모리를 사용하는 것이다. 달리 말하면, 논리가 처리기 칩에 부가될 수 있거나, 또는 콘텐트 어드레스지정 가능 메모리에서 어드레스 범위 룩업들을 수행하기 위해 상태 머신이 사용될 수 있다. 또한, SAS 장치들의 제조업자들은 저장 액세스 시스템의 토폴로지에서 라우팅 메카니즘들에 기초하여 SAS 어드레스 범위들의 효율적 사용을 가능하게 하는 드라이브들 및 다른 장치들에 대한 편의성을 제공할 수 있다. 예를 들어, 대용량 구매시, 몇몇 제조업자들로부터의 SAS 장치들은 연속하는 SAS 어드레스들을 따른다. 이 처리는 SAS 확장기들, 및 다중 물리 어드레스들을 갖는 SAS 개시자들에 동등하게 적용할 수 있다.
상기 설명된 바와 같이, SAS 확장기들은 일반적으로 SAS 토폴로지에서 종단 장치들의 SAS 어드레스들을 저장하기 위해 콘텐트 어드레스지정 가능 메모리들을 이용한다. 콘텐트 어드레스지정 가능 메모리는 인입 개방 어드레스 프레임(OAF) 및 OAF가 라우팅되어야 하는 물리 어드레스에서 목적지의 SAS 어드레스를 룩업하기 위해 확장기 하드웨어에 의해 사용된다. 콘텐트 어드레스지정 가능 메모리(도 1의 테이블(126))는 일반적으로 SAS 발견 루틴을 작동시킴으로써 소프트웨어 제어하에서 채워진다. 따라서, SAS 토폴로지에서 접속될 수 있는 종단 장치들의 수는 확장기의 CAM 크기에 의해 제한된다. CAM 크기(테이블(126))는 확장기가 지원할 수 있는 토폴로지의 크기에 대한 제한 인자를 더 이상 유지하지 않기 때문에, 소프트웨어 보조 룩업 테이블의 사용은 종단 장치들의 수를 제한하지 않을 것이다.
본 발명의 일 실시예에 따르면, 또한 하드웨어로 자동화될 수 있는 소프트웨어 보조 SAS 어드레스 룩업 특징들이 구현된다. 이와 같이, 콘텐트 어드레스지정 가능 메모리에 있는 빈번하게 액세스되는 SAS 어드레스 엔트리들을 유지하는 것이 가능하다. SAS 어드레스에 대한 콘텐트 어드레스지정 가능 메모리 룩업이 실패할 때, 소프트웨어는 이어서 부가적인 룩업 데이터를 제공하기 위해 사용될 수 있다. 이 방식에서, 확장기는 빈번하게 사용되는 어드레스들을 제공할 수 있고, 소프트웨어 룩업 루틴을 사용함으로써 콘텐트 어드레스지정 가능 메모리에 의해 지원될 수 있는 것보다 많은 수의 SAS 어드레스들을 제공할 수 있다. 따라서, 저장 시스템의 토폴로지에서 접속될 수 있는 종단 장치들의 수는 콘텐트 어드레스지정 가능 메모리 크기에 의해 제한되지 않는다. 또한, 이 기술을 사용하는 소프트웨어에서의 더 높은 레벨의 토폴로지 검증 및 회복 알고리즘들을 구현하는 것이 가능하다. 이들 기술들의 적어도 일부는 룩업 처리의 속도를 높이기 위해 하드웨어로 자동화될 수 있다. 또한, 이 특징을 사용하는 확장기를 통해 이동하는 입력/출력 기능들의 개요를 작성하는 것이 가능하다. 또한, 본 발명의 다양한 실시예들을 사용하여 가상 타겟들 및 프록시 타겟들이 수립될 수 있다.
일 실시예에 따르면, 확장기 소프트웨어는, 발견 처리의 일부로서, 확장기(104)의 라우팅 테이블 또는 콘텐트 어드레스지정 가능 메모리(126)를 채운다. 일 실시예에 따르면, 라우팅 테이블(126)은 종단 장치들에 대한 모든 어드레스들을 보유할 수 없기 때문에, 확장기 소프트웨어의 발견 루틴은 RAM(127)에 전체 토폴로지 발견 정보를 유지한다. 그 경우에, 어드레스들의 일부는 라우팅 테이블(CAM)(126)에 저장된다. 확장기 하드웨어가 개방 어드레스 프레임(OAF)의 목적지 SAS 어드레스와 일치하는 어드레스가 없다는 것을 검출할 때, 확장기 하드웨어는 중단 또는 소프트웨어에 대한 조건을 나타내는 다른 제어 기능을 발생시킬 수도 있다. 소프트웨어에 제공되는 상태 정보는 콘텐트 어드레스지정 가능 메모리 룩업에서 실패된 목적지 SAS 어드레스를 포함할 수도 있다. 대안적으로, 개방 어드레스 프레임의 전체 콘텐트들은 소프트웨어에 의한 진보된 분석을 위해 제공될 수 있다.
어드레스 매칭 실패를 나타내는 중단 또는 다른 제어 신호를 수신할 때, 소프트웨어는 확장기(104)에 있는 처리 칩(125)으로부터 RAM(127)에 원격으로 저장되는 발견 정보에서 어드레스들의 룩업 또는 비교를 수행함으로써 어드레스 매칭 실패를 해결하려고 시도한다. 소프트웨어 룩업 기술들을 사용하여 매칭이 발견되면, 확장기 하드웨어에 매칭 정보를 제공하기 위해 두 가지 상이한 방식들 중 하나가 사용될 수 있다. 첫 번째 방식에서, 소프트웨어는 OAF가 라우팅되어야 하는 타겟을 나타내는 물리 어드레스 정보를 제공할 수 있다. 중단에 대해 긍정 응답하면, 하드웨어는 이어서 OAF를 라우팅하기 위해 소프트웨어에 의해 제공되는 물리 어드레스 루트를 이용할 수 있다. 제 2 방식에 따르면, 소프트웨어는 테이블(126)에 있는 기존 콘텐트 어드레스지정 가능 메모리 엔트리들을 소프트웨어에 의해 제공되는 새로운 어드레스들로 대체하기 위해 적어도 최근에 사용된 처리를 사용할 수 있다. 이어서, 하드웨어는 콘텐트 어드레스지정 가능 메모리(126)에서 적어도 최근에 사용된 태그를 갱신한다. 중단에 대해 긍정 응답하면, 하드웨어는 콘텐트 어드레스지정 가능 메모리 룩업을 재-개시할 수 있고, 소프트웨어에 의해 콘텐트 어드레스지정 가능 메모리에 새로 부가된 어드레스 정보의 결과로서 매칭이 발견될 것이다. 하드웨어는 이어서 OAF를 표시된 외부로의 물리 어드레스로 라우팅할 수 있다.
도 7은 부가 RAM(127)에서의 어드레스들의 가상 룩업을 위한 처리(700)의 개략적인 블록도이다. 단계 702에서, 발견 루틴은 도 1에 도시된 저장 시스템과 같은 저장 시스템의 전체 토폴로지에 대한 어드레스 정보를 얻기 위해 확장기에 의해 작동된다. 단계 704에서, 발견 루틴으로부터 얻어지는 어드레스지정 정보는 도 1의 확장기(104)에 있는 부가 RAM(127)에 저장된다. 단계 706에서, CAM(126)은 가장 많이 사용된 어드레스들로 채워진다. 달리 말하면, 확장기(104)에 의해 가장 최근에 사용된 어드레스들이 도 1의 테이블(126)에 저장된다. 단계 708에서, 확장기(104)는 OAF 요청을 판독한다. 단계 710에서, OAF 어드레스들은 CAM 테이블(126)에 저장되는 어드레스들과 비교된다. 매칭하면, 단계 712에서, CAM(126)은 라우팅 어드레스들을 확장기(104)에 제공한다. 매칭하지 않으면, 단계 714에서, 확장기(104)에 의해 중단이 발생된다. 단계 716에서, 부가 RAM(127)은 확장기(104)에 있는 처리기에 의해 액세스된다. 단계 718에서, 라우팅 정보가 RAM(127)에 저장되는지를 결정하기 위해 비교가 수행된다. 그때, 두 가지 상이한 대안적인 처리들 중 하나가 사용될 수 있다. 일 실시예에 따르면, 단계 720에서, 적절한 목적지로 OAF를 라우팅하기 위해 라우팅 어드레스들이 제공된다. 또 다른 실시예에 따르면, 단계 722에서, 라우팅 테이블(126)에서 적어도 최근에 사용된 엔트리들이 결정된다. 단계 724에서, 라우팅 테이블(126)에서 적어도 최근에 사용된 엔트리들이 라우팅 테이블에서 제거된다. 단계 726에서, RAM(127)으로부터 검색된 새로운 어드레스 정보가 라우팅 테이블(126)에 저장된다. 확장기(104)의 처리기(125)는 이어서 어드레스 정보를 얻기 위해 룩업 테이블(126)을 액세스하는 것을 계속한다.
또한, 상술된 두 가지의 상이한 방식들의 조합을 구현하는 것도 가능하다. 이러한 조합에서, 소프트웨어는 동일한 목적지 종단 장치에 대한 후속하는 OAF들의 라우팅의 성능을 증가시키기 위해 기존 콘텐트 어드레스지정 가능 메모리 엔트리를 언제 대체할지를 결정하기 위한 논리(logic)를 포함할 수 있다.
대형 토폴로지에서 대다수의 입력/출력 요청들은 임의의 소정의 시점에서 특정 개시자들 및 타겟들 주위로 집중하는 경향이 있기 때문에, 소프트웨어 저장된 어드레스 데이터에서의 소프트웨어 룩업(콘텐트 어드레스지정 가능 메모리 미스-히트)은 콘텐트 어드레스지정 가능 메모리에 캐시되는 새로운 SAS 어드레스의 결과를 가져올 것이다. 결과적으로, 소프트웨어 룩업을 수행하기 위한 성능 패널티는 따라서 사실상 반복적이지 않을 것이라는 것이다. 상술된 처리를 더욱 최적화하기 위해서, 소프트웨어 어드레스 룩업이 발생할 때, 소프트웨어는 또한 소스 SAS 어드레스를 제공할 수도 있다. 소스 SAS 어드레스가 직렬 동기 포트(SSP, serial synchronous port) 개시자에 속하고 SAS 어드레스가 콘텐트 어드레스지정 가능 메모리에 저장되지 않으면, 타겟이 개시자에 대한 접속을 개방하려고 시도할 때, 부가적인 소프트웨어 룩업을 피하기 위해, 목적지 SAS 어드레스가 이미 콘텐트 어드레스지정 가능 메모리에 존재한다는 것을 보장하기 위해, 소스 및 목적지 SAS 어드레스가 모두 콘텐트 어드레스지정 가능 메모리(126)에 저장될 수 있다. 물론, 이들 처리들은 또한 캐시 제어기와 유사한 방식으로 하드웨어적으로 구현될 수 있다.
하드웨어 구현으로 발견 루틴에 의해 제공되는 콘텐트 어드레스지정 가능 메모리 정보의 캐싱은, 상술된 바와 같이, 소프트웨어 룩업 루틴을 통해 시스템의 성능을 향상시킬 것이다. 이 대안적인 실시예에 따르면, 소프트웨어 발견 루틴은 토폴로지 발견 분석을 수행하고 RAM에 저장되는 완전한 라우팅 테이블을 생성한다. 물론, 하드웨어 구현에서의 제한적인 인자는 모든 라우팅 테이블 정보를 저장하는데 필요한 RAM의 크기이며, 이는 대략 확장기의 처리 칩에 있는 콘텐트 어드레스지정 가능 메모리보다 큰 규모일 수도 있다. 하드웨어 구현에서, 상술된 처리들은 소프트웨어 룩업과 동일한 방식으로 수행될 수 있다. 부가적으로, 소프트웨어 룩업에 의해, OAF를 확장기의 내부 SSP 타겟 가상 물리 어드레스로 라우팅함으로써 확장기에서 종단 장치를 프록시(proxy)하는 것이 가능하다. 소프트웨어는 이어서 특정 서비스 품질을 보장하기 위해 특정 개시자들 및 타겟들에 대한 대역폭을 제공할 수 있다.
본 발명의 상기 설명은 예시 및 설명의 목적들을 위해 제시되었다. 개시된 정확한 형태로 본 발명을 제한하거나 완전한 것으로서 의도된 것은 아니며, 다른 수정들 및 변형들이 상기 교시들의 관점에서 가능할 수도 있다. 실시예는 본 발명의 원리들 및 그 실시 애플리케이션을 가장 잘 설명하기 위해 선택되어 기술됨으로써, 당업자들로 하여금 고려된 특정 사용에 적합할 때 다양한 실시예들 및 다양한 수정들에서 본 발명을 가장 잘 이용할 수 있도록 한다. 첨부된 청구항들은 종래기술에 의해 제한되는 경우는 제외하고 본 발명의 다른 대안적인 실시예들을 포함하는 것으로 해석되게 될 것이다.
102 : 개시자 104, 106, 118, 122 : 확장기
108, 110, 114, 116, 120, 124 : 타겟
125 : 처리기 126 : 테이블
127 : RAM 202 : 처리기
204, 302: OAF 208 : 확장기
226 : 최종 확장기 242 : 드라이브

Claims (16)

  1. 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법에 있어서:
    상기 개방 어드레스 프레임 요청에 라우팅 정보를 제공하는 단계로서,
    소스 확장기 식별(source expander identification);
    소스 물리 어드레스 정보;
    목적지 확장기 식별; 및
    목적지 물리 어드레스 정보를 포함하는, 상기 라우팅 정보 제공 단계; 및
    개시자 및 타겟 간에 데이터를 라우팅하기 위해 상기 룩업 테이블의 상기 라우팅 정보를 사용하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  2. 제 1 항에 있어서,
    상기 소스 확장기 식별은 소스 확장기 물리 어드레스를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  3. 제 2 항에 있어서,
    상기 목적지 확장기 식별은 목적지 확장기 물리 어드레스를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  4. 제 3 항에 있어서,
    상기 개시자 및 상기 타겟 간에 데이터를 라우팅하기 위해 상기 룩업 테이블의 상기 라우팅 정보를 사용하는 단계는:
    상기 개시자 및 상기 타겟 간에 데이터를 라우팅하기 위해 콘텐트 어드레스지정 가능 메모리 룩업 테이블의 라우팅 정보를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  5. 제 1 항에 있어서,
    상기 개방 어드레스 프레임 요청에 라우팅 정보를 제공하는 단계는:
    상기 개방 어드레스 프레임 요청의 추가 호환성 특징 필드(more compatible feature field)에 라우팅 정보를 제공하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  6. 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법에 있어서:
    상기 개방 어드레스 프레임 요청에 라우팅 정보를 제공하는 단계로서,
    소스 확장기 어드레스 정보; 및
    목적지 확장기 어드레스 정보를 포함하는, 상기 라우팅 정보 제공 단계; 및
    개시자 및 타겟 간에 데이터를 라우팅하기 위해 상기 룩업 테이블의 상기 라우팅 정보를 사용하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  7. 제 6 항에 있어서,
    상기 소스 확장기 어드레스 정보는 소스 확장기 물리 어드레스를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  8. 제 7 항에 있어서,
    상기 목적지 확장기 정보는 목적지 확장기 물리 어드레스를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  9. 제 8 항에 있어서,
    상기 개시자 및 상기 타겟 간에 데이터를 라우팅하기 위해 상기 룩업 테이블의 상기 라우팅 정보를 사용하는 단계는:
    상기 개시자 및 상기 타겟 간에 데이터를 라우팅하기 위해 콘텐트 어드레스지정 가능 메모리 룩업 테이블의 라우팅 정보를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  10. 제 6 항에 있어서,
    상기 개방 어드레스 프레임 요청에서 라우팅 정보를 제공하는 단계는:
    상기 개방 어드레스 프레임 요청의 추가 호환성 특징 필드에 라우팅 정보를 제공하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  11. 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 소정의 토폴로지를 갖는 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 처리에 있어서:
    상기 저장 시스템의 상기 토폴로지에 존재하는 장치들의 물리 어드레스들에 대한 어드레스 범위들을 발생시키는 단계;
    상기 어드레스 범위들을 룩업 테이블에 저장하는 단계;
    상기 개방 어드레스 프레임 요청의 상기 어드레스들의 어드레스 범위 정보를 결정하기 위해 상기 개방 어드레스 프레임 요청의 어드레스들을 검사하는 단계; 및
    상기 장치들로 라우팅하기 위한 물리층 인덱스를 검색하기 위해 상기 개방 어드레스 프레임 요청의 상기 어드레스들의 상기 어드레스 범위 정보를 사용하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 처리.
  12. 제 11 항에 있어서,
    상기 어드레스 범위들을 룩업 테이블에 저장하는 단계는:
    상기 어드레스 범위들을 3진 콘텐트 어드레스지정 가능 메모리에 저장하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 처리.
  13. 제 12 항에 있어서,
    상기 어드레스 범위들을 발생시키기 위해 상기 확장기에서의 처리를 사용하는 단계를 추가로 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 처리.
  14. 데이터에 대한 개방 어드레스 프레임 요청에 응답하여 라우팅 어드레스들을 제공하기 위해 소정의 토폴로지를 갖는 직렬 연결형 SCSI 저장 시스템에서 사용되는 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법에 있어서:
    상기 저장 시스템의 상기 토폴로지에 대한 상기 라우팅 어드레스들을 얻기 위해 발견 루틴을 작동시키는 단계;
    상기 라우팅 어드레스들을 부가 RAM에 저장하는 단계;
    가장 최근에 사용된 상기 라우팅 어드레스들로 룩업 테이블을 채우는 단계;
    상기 개방 어드레스 프레임 요청을 판독하는 단계;
    상기 개방 어드레스 프레임 요청에 포함된 어드레스 정보를 상기 룩업 테이블에 저장된 상기 라우팅 어드레스들과 비교하는 단계;
    상기 룩업 테이블에 저장된 상기 라우팅 어드레스들이 상기 개방 어드레스 프레임 요청에 포함된 상기 어드레스 정보와 매칭할 때, 상기 개방 어드레스 프레임 요청을 라우팅하기 위한 상기 라우팅 어드레스들을 제공하는 단계;
    상기 룩업 테이블에 저장된 상기 라우팅 어드레스들이 상기 개방 어드레스 프레임 요청에 포함된 상기 어드레스 정보와 매칭하지 않을 때, 상기 부가 RAM을 액세스하는 단계;
    상기 개방 어드레스 프레임 요청에 포함된 상기 어드레스 정보를 상기 부가 RAM에 저장된 상기 라우팅 어드레스들과 비교하는 단계; 및
    상기 부가 RAM에 저장된 상기 라우팅 어드레스들이 상기 개방 어드레스 프레임 요청에 포함된 상기 어드레스 정보와 매칭할 때, 상기 개방 어드레스 프레임 요청을 라우팅하기 위한 상기 라우팅 어드레스들을 제공하는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  15. 제 14 항에 있어서,
    상기 부가 RAM에 저장된 상기 라우팅 어드레스들이 상기 개방 어드레스 프레임 요청에 포함된 상기 어드레스 정보와 매칭할 때, 상기 라우팅 어드레스들을 제공하는 단계는:
    상기 룩업 테이블에서 적어도 최근에 사용된 엔트리를 결정하는 단계;
    상기 룩업 테이블에서 상기 적어도 최근에 사용된 엔트리를 제거하는 단계;
    상기 라우팅 어드레스들을 상기 룩업 테이블에 저장하는 단계; 및
    상기 라우팅 어드레스들을 상기 룩업 테이블에 저장한 후에, 상기 개방 어드레스 프레임 요청에 포함된 어드레스 정보를 상기 룩업 테이블에 저장된 상기 라우팅 어드레스들과 비교하는 단계를 추가로 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
  16. 제 14 항에 있어서,
    가장 최근에 사용된 상기 라우팅 어드레스들로 룩업 테이블을 채우는 단계는:
    가장 최근에 사용된 상기 라우팅 어드레스들로 콘텐트 어드레스지정 가능 메모리를 채우는 단계를 포함하는, 확장기의 룩업 테이블의 엔트리들의 수를 감소시키는 방법.
KR1020110027716A 2010-12-31 2011-03-28 Sas 확장기 접속 라우팅 기술들 KR20120078535A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/983,080 US20120173840A1 (en) 2010-12-31 2010-12-31 Sas expander connection routing techniques
US12/983,080 2010-12-31

Publications (1)

Publication Number Publication Date
KR20120078535A true KR20120078535A (ko) 2012-07-10

Family

ID=45062957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110027716A KR20120078535A (ko) 2010-12-31 2011-03-28 Sas 확장기 접속 라우팅 기술들

Country Status (6)

Country Link
US (1) US20120173840A1 (ko)
EP (1) EP2472411A1 (ko)
JP (1) JP2012141943A (ko)
KR (1) KR20120078535A (ko)
CN (1) CN102567211A (ko)
TW (1) TW201228303A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5736870B2 (ja) * 2011-03-16 2015-06-17 富士通株式会社 ストレージ装置、コントローラおよびアドレス管理方法
US20120331181A1 (en) * 2011-06-21 2012-12-27 Lsi Corporation Methods and structure for firmware upgrade of devices in a storage network
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
US9143432B2 (en) * 2012-04-10 2015-09-22 Hewlett-Packard Development Company, L.P. Expander-targeted zoned broadcast
US9026727B2 (en) 2012-09-04 2015-05-05 Avago Technologies General Ip (Singapore) Pte Ltd Enhanced memory savings in routing memory structures of serial attached SCSI expanders
US9336171B2 (en) * 2012-11-06 2016-05-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Connection rate management in wide ports
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
US9026706B2 (en) 2012-12-14 2015-05-05 Lsi Corporation Method and system for detecting multiple expanders in an SAS topology having the same address
US8990448B2 (en) 2013-03-08 2015-03-24 Lsi Corporation Smart discovery model in a serial attached small computer system topology
US9411764B2 (en) 2013-07-23 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Optimized redundant high availability SAS topology
US20160203089A1 (en) * 2013-08-27 2016-07-14 Hewlett Packard Enterprise Development Lp Expander data routing
US9767311B2 (en) * 2013-10-25 2017-09-19 Netapp, Inc. Stack isolation by a storage network switch
CN104834500A (zh) * 2014-02-07 2015-08-12 鸿富锦精密工业(深圳)有限公司 指令处理系统及方法
CN105141532B (zh) * 2015-07-27 2018-05-15 浪潮(北京)电子信息产业有限公司 一种路由方法及路由器
US10152244B2 (en) * 2015-08-31 2018-12-11 Advanced Micro Devices, Inc. Programmable memory command sequencer
US10725930B2 (en) * 2018-08-27 2020-07-28 Micron Technology, Inc. Logical to physical memory address mapping tree
US10963413B2 (en) 2018-11-02 2021-03-30 Wipro Limited Method and system for transmitting data using small computer system interface (SCSI)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5453979A (en) * 1994-01-27 1995-09-26 Dsc Communications Corporation Method and apparatus for generating route information for asynchronous transfer mode cell processing
US6816915B1 (en) * 2001-03-02 2004-11-09 Adaptec, Inc. I/O subsystem topology discovery method
US20020176363A1 (en) * 2001-05-08 2002-11-28 Sanja Durinovic-Johri Method for load balancing in routers of a network using overflow paths
JP2004158973A (ja) * 2002-11-05 2004-06-03 Fujitsu Ltd パケット中継装置
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US7644168B2 (en) * 2004-11-05 2010-01-05 Hewlett-Packard Development Company, L.P. SAS expander
US7437462B2 (en) * 2006-01-06 2008-10-14 Dell Products L.P. Method for zoning data storage network using SAS addressing
CN101039252B (zh) * 2006-03-15 2012-05-23 中兴通讯股份有限公司 一种三重内容可寻址存储器路由表管理方法
US7624223B2 (en) * 2006-12-29 2009-11-24 Lsi Corporation Apparatus and methods for multiple unidirectional virtual connections among SAS devices
US7876713B2 (en) * 2007-06-29 2011-01-25 Emulex Design & Manufacturing Corporation Label switched routing in SAS expanders
US8074105B2 (en) * 2007-10-08 2011-12-06 Dot Hill Systems Corporation High data availability SAS-based RAID system
US7882281B2 (en) * 2007-12-10 2011-02-01 Emulex Design & Manufacturing Corporation SAS reference Phys for virtualization and traffic isolation
US8321596B2 (en) * 2008-09-05 2012-11-27 Lsi Corporation SAS paired subtractive routing

Also Published As

Publication number Publication date
TW201228303A (en) 2012-07-01
JP2012141943A (ja) 2012-07-26
EP2472411A1 (en) 2012-07-04
CN102567211A (zh) 2012-07-11
US20120173840A1 (en) 2012-07-05

Similar Documents

Publication Publication Date Title
KR20120078535A (ko) Sas 확장기 접속 라우팅 기술들
JP4278445B2 (ja) ネットワークシステム及びスイッチ
KR102231792B1 (ko) 하이브리드 메모리 모듈 및 그것의 동작 방법
EP2314027B1 (en) Switching table in an ethernet bridge
US20070156763A1 (en) Storage management system and method thereof
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
US7043622B2 (en) Method and apparatus for handling storage requests
CN103052945A (zh) 管理计算机存储器的方法、程序产品及数据存储设备
US6606715B1 (en) Device control apparatus and control method
US8539135B2 (en) Route lookup method for reducing overall connection latencies in SAS expanders
JPH09198308A (ja) データ記憶システム
US6952761B2 (en) Bus interface selection by page table attributes
EP3958523B1 (en) Information processing apparatus and packet control method
US7720930B2 (en) Systems and methods using NIC-based prefetching for host TCP context lookup
US10255213B1 (en) Adapter device for large address spaces
US8176218B2 (en) Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller
US6947971B1 (en) Ethernet packet header cache
JP7010922B2 (ja) フォワーディングエントリアクセス
KR100429909B1 (ko) 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법
US20100269124A1 (en) Optimal paths with SCSI I/O referrals
JP4514222B2 (ja) データ記憶システム
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP2019159858A (ja) ネットワークインタフェース装置、それを有するノードを複数有する情報処理装置及び情報処理装置のノード間送信データ送信方法
CN106407242B (zh) 分组处理器转发数据库缓存
US7673100B1 (en) Methods and systems for distributed cache tag management

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid