KR101362556B1 - Apparatus and methods for multiple unidirectional virtual connections among sas devices - Google Patents

Apparatus and methods for multiple unidirectional virtual connections among sas devices Download PDF

Info

Publication number
KR101362556B1
KR101362556B1 KR1020097013643A KR20097013643A KR101362556B1 KR 101362556 B1 KR101362556 B1 KR 101362556B1 KR 1020097013643 A KR1020097013643 A KR 1020097013643A KR 20097013643 A KR20097013643 A KR 20097013643A KR 101362556 B1 KR101362556 B1 KR 101362556B1
Authority
KR
South Korea
Prior art keywords
sas
sas device
virtual connection
connection
open
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020097013643A
Other languages
Korean (ko)
Other versions
KR20090092828A (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
Priority claimed from US11/682,798 external-priority patent/US7624223B2/en
Application filed by 엘에스아이 코포레이션 filed Critical 엘에스아이 코포레이션
Publication of KR20090092828A publication Critical patent/KR20090092828A/en
Application granted granted Critical
Publication of KR101362556B1 publication Critical patent/KR101362556B1/en
Assigned to 아바고 테크놀로지스 제너럴 아이피 (싱가포르) 피티이 리미티드 reassignment 아바고 테크놀로지스 제너럴 아이피 (싱가포르) 피티이 리미티드 권리의 전부이전등록 Assignors: 엘에스아이 코포레이션
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)

Abstract

본 발명은 SAS 도메인 내에서 제 1 SAS 장치와 다수의 다른 SAS 장치 사이에서 다수의, 단방향의, 가상의 접속을 가능하게 하는 장치 및 방법에 관한 것이다. 개선된 제 1 SAS 장치는 이 제 1 SAS 장치로부터 제 2 및 제 3 SAS 장치 모두로의 실질적으로 동시적인 단방향의 가상 접속을 가능하게 하기 위해 적절히 개선된 하나 이상의 SAS 신장기를 통해 두 개의 다른 SAS 장치 각각에 실질적으로 동시에 결합될 수 있다. 각각의 가상 접속은 본질적으로 반이중 접속이며 그에 따라 제 1 장치는 제 2 SAS 장치로 정보를 전송하는 것과 실질적으로 동시에 제 1 장치는 제 3 SAS 장치로부터 정보를 수신할 수 있다. 본 발명의 특징 및 측면에 따라 적절히 개선되지 못한 장치(예를 들어, 레거시 장치) 사이에서 접속에 대한 현재의 SAS 사양과 호환될 수 있도록 함으로써 개선이 제공된다.

Figure 112012035397385-pct00008

The present invention is directed to an apparatus and method for enabling multiple, unidirectional, virtual connections between a first SAS device and a plurality of other SAS devices in a SAS domain. The improved first SAS device may be configured with two other SAS devices through one or more SAS extenders as appropriate to allow substantially simultaneous unidirectional virtual connection from this first SAS device to both the second and third SAS devices. May be coupled to each substantially simultaneously. Each virtual connection is essentially a half-duplex connection so that the first device can receive information from the third SAS device at substantially the same time as the first device transmits the information to the second SAS device. Improvements are provided by making it compatible with current SAS specifications for connections between devices (eg legacy devices) that have not been adequately improved in accordance with the features and aspects of the present invention.

Figure 112012035397385-pct00008

Description

SAS 장치 간에 다수의 단방향의 가상 접속을 제공하는 방법 및 시스템, SAS 신장기 및 SAS 종단 장치{APPARATUS AND METHODS FOR MULTIPLE UNIDIRECTIONAL VIRTUAL CONNECTIONS AMONG SAS DEVICES }Method and system for providing a plurality of unidirectional virtual connections between SAS devices, SAS extenders and SAS termination devices TECHNICAL FIELD

본 특허 출원은 "Apparatus and Method for Multiple Unidirectional Virtual Connections Among SAS Device"라는 제목으로 2006년 12월 29일에 출원된 미국 가특허 출원 번호 60/882,847에 관련되며 이를 우선권으로 주장한다.This patent application is related to and claims priority in US Provisional Patent Application No. 60 / 882,847, filed December 29, 2006 entitled "Apparatus and Method for Multiple Unidirectional Virtual Connections Among SAS Device."

본 발명은 일반적으로 SAS 도메인(domain)에 관한 것으로, 특히 SAS 도메인 내의 SAS 장치 사이에서 다수의 단방향 가상 접속을 위한 장치, 시스템 및 방법에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to SAS domains, and in particular, to apparatus, systems, and methods for multiple unidirectional virtual connections between SAS devices in a SAS domain.

직렬 부착 SCSI("SAS")는 네트워크형 저장/컴퓨팅 아키텍쳐의 구성요소들을 연결하는 인기 있는 프로토콜 및 매체이다. 일반적으로 SAS 표준은 하나 이상의 SAS 타겟 장치와 제로 또는 그 보다 많은 SAS 신장기 장치(expander devices)에 접속된 하나 이상의 SAS 개시자(initiators)를 포함하는 것으로 SAS 도메인을 정의한다. 일반적으로, SAS 개시자 장치는 점대점 접속으로서 SAS 타겟 장치에 결합된 다. SAS 개시자 장치를 다른 SAS 타겟 장치에 접속하는 융통성을 개선하기 위해, SAS 도메인은 본질적으로 SAS 도메인의 임의의 SAS 타겟 장치로 임의의 SAS 개시자를 점대점 접속으로 결합하는 스위칭형 패브릭(switched fabric)을 제공하기 위한 하나 이상의 SAS 신장기를 포함할 수 있다.Serial Attached SCSI ("SAS") is a popular protocol and medium that connects the components of a networked storage / computing architecture. In general, the SAS standard defines a SAS domain as including one or more SAS target devices and one or more SAS initiators connected to zero or more SAS expander devices. In general, a SAS initiator device is coupled to a SAS target device as a point-to-point connection. To improve the flexibility of connecting SAS initiator devices to other SAS target devices, a SAS domain is essentially a switched fabric that combines any SAS initiator into a point-to-point connection to any SAS target device in the SAS domain. It may include one or more SAS extenders to provide.

보다 일반적으로, SAS 개시자 및 SAS 타겟 장치 각각은 다수의 장치가 때로는 개시자의 역할을 하기도 하고 때로는 타겟의 역할을 할 수 있다는 점에서 SAS 종단 장치(또는 엔드포인트 장치)로서 지칭될 수 있다. SAS 개시자 또는 SAS 타겟으로서의 역할과는 무관하게, 임의의 SAS 호환 장치는 다른 장치와의 접속을 확립하여 시도할 수 있다. 예를 들어, 호스트 버스 어댑터 SAS 개시자 장치가 SAS 저장 타겟 장치와의 접속을 확립하는 것은 일반적이다. 그러나, 저장 장치는 요청된 판독 데이터를 반환하기 위해 이후에 다시 요청 호스트 어댑터와의 접속을 확립할 수 있다. 따라서, "개시자" 및 "타겟"이라는 용어는 일반적으로 이 논의에서는 회피된다. 접속되어 있는 개시자 및 타겟 장치는 모두 본 명세서에서 "종단 장치" 또는 "엔드포인트 장치" 또는 보다 간단히는 "장치"로서 지칭될 수 있다. 다른 종단 장치와의 접속을 확립하여 시도하는 종단 장치는 또한 본 명세서에서 "오프너" 또는 "오프닝 장치로서 지칭될 수 있는 반면, 오픈 요청을 수용하는 장치는 "오프된 장치"로서 지칭될 수 있다.More generally, each of the SAS initiator and SAS target device may be referred to as a SAS end device (or endpoint device) in that multiple devices can sometimes act as initiators and sometimes as targets. Regardless of its role as a SAS initiator or SAS target, any SAS compatible device can attempt to establish a connection with another device. For example, it is common for a host bus adapter SAS initiator device to establish a connection with a SAS storage target device. However, the storage device may later establish a connection with the requesting host adapter again to return the requested read data. Thus, the terms "initiator" and "target" are generally avoided in this discussion. Both the connected initiator and the target device may be referred to herein as "end device" or "endpoint device" or, more simply, "device." An end device attempting to establish a connection with another end device may also be referred to herein as an "opener" or "opening device, while a device that accepts an open request may be referred to as an" off device. "

SAS 표준은 두 개의 접속된 SAS 장치 간에 양방향 접속을 제공한다. 대체로, 이러한 양방향 접속을 통해, 오프닝 장치는 정보의 프레임(예를 들어, "데이터 프레임")을 오프된 장치로 전송하는 시기와 실질적으로 동시에 오픈된 장치가 정보 를 다시 오프너로 전송할 수 있다. 이들 SAS 사양에 따르면, 이러한 양방향 접속은 두 개의 종단 장치 사이에서 거의 점대점 접속을 사용할 수 있게 한다(일부 가용 대역폭은 항상 프로토콜과 연관된 오버헤드 교환에 의해 소비된다). 이러한 및 다른 관련 SAS 사양은 당업자에게 잘 알려져 있으며 또한 예를 들어 www.t10.ogr에서 쉽게 입수가능하다.The SAS standard provides a bidirectional connection between two connected SAS devices. In general, through this bidirectional connection, the opening device can open the device to send the information back to the opener substantially at the same time as when the opening device transmits a frame of information (eg, a “data frame”) to the off device. According to these SAS specifications, this bidirectional connection allows for nearly point-to-point connection between two end devices (some available bandwidth is always consumed by the overhead exchange associated with the protocol). These and other related SAS specifications are well known to those skilled in the art and are readily available, for example, at www.t10.ogr.

실제에 있어서, 접속된 SAS 장치(예를 들어, I/O 요청 제어기에 결합된 단일 디스크 드라이브 장치) 모두가 오픈 접속의 다른 장치로 전송될 데이터를 갖는다는 것은 희박하다. (RAID 저장 제어기의 아키텍쳐에 의존하는) RAID 저장 서브시스템 SAS 장치에 SAS 호스트 어댑터 장치가 결합된 경우에서도, 호스트 및 저장 시스템이 완전한 양방향 접속의 가용 대역을 완전히 이용하는 경우는 드물 수 있다. 따라서, 진정한 전이중(true full duplex) 통신을 통해 완전한 (또는 거의 완전한) SAS 접속 사용은 실제로는 희박하다. 오히려, 두 개의 장치 사이에서 SAS 접속의 사용은 가용 통신 대역폭의 50% 미만인 경향을 나타내는 경험적인 테스트 데이터가 도시되어 있다. 이러한 불충분한 사용의 일 측면은 SAS 프로토콜과 연관된 고유 오버헤드 및 지연으로부터 유래한다. 그러나, 이러한 불충분한 사용에 가장 크게 기여하는 인자는, 호스트 시스템(예를 들어, SAS 개시자)이 저장 장치(단일 디스크 드라이브 또는 보다 복잡한 RAID 또는 다른 어레이형 저장 장치)에 의해 완료될 요청을 나타내는 하나 이상의 프레임을 전송하도록 수행되는 기본 통신이다. 저장 장치는 전형적으로 호스트 시스템으로부터 수신된 요청을 완료하기 위한 소정의 실질적인 처리 시간을 요구한다. 따라서, SAS 타겟 장치(예를 들어, 저장 장치)는 SAS 개시자는 요청의 전송을 위한 접속을 오픈한 시간과 동시에 SAS 개시자로의 전송될 데이터를 좀처럼 가지지 않는다. 따라서, 오픈 접속은 전형적으로 타겟 장치가 요청된 데이터를 다시 개시자로 전송하려 할 때에만 재접속되는 개시자로부터 타겟으로의 전송이 완료될 때 폐쇄된다.In practice, it is sparse that all connected SAS devices (eg, a single disk drive device coupled to an I / O request controller) have data to be transferred to another device in an open connection. RAID storage subsystems (depending on the architecture of the RAID storage controller) Even when the SAS host adapter device is coupled to the SAS device, the host and storage system may rarely fully utilize the available bandwidth of a full bidirectional connection. Thus, the use of a full (or nearly full) SAS connection via true full duplex communication is practically sparse. Rather, empirical test data is shown which indicates that the use of a SAS connection between two devices tends to be less than 50% of the available communication bandwidth. One aspect of this insufficient use stems from the inherent overhead and delays associated with SAS protocols. However, the factor that contributes most to this inadequate use is that the host system (eg, SAS initiator) indicates a request to be completed by the storage device (a single disk drive or more complex RAID or other array-type storage device). Basic communication performed to transmit one or more frames. Storage devices typically require some substantial processing time to complete a request received from the host system. Thus, a SAS target device (eg, a storage device) rarely has data to be sent to the SAS initiator at the same time that the SAS initiator has opened a connection for the transmission of the request. Thus, an open connection is typically closed when the transfer from the reconnected initiator to the target is complete only when the target device attempts to send the requested data back to the initiator.

전술한 설명으로부터, SAS 도메인 내에서 SAS 개시자 장치와 SAR 타겟 장치 사이에서 대역폭 사용을 개선하기 위한 필요성이 존재한다는 것이 명백하다. From the foregoing description, it is clear that there is a need to improve bandwidth usage between the SAS initiator device and the SAR target device in the SAS domain.

본 발명은 제 1 SAS 장치와 두 개의 다른 SAS 장치 사이에서 실질적으로 동시에 동작가능한 다수의, 단방향의, 가상의 접속을 위한 장치, 시스템 및 연관된 방법을 제공하여 전술한 및 다른 문제점을 해결함으로써, 종래 기술의 상태를 개선한다. 단방향의 가장 접속 각각은 본질적으로 반양방향 접속이며, 그에 따라 제 1 장치는 제 2 SAS 장치로 전송할 수 있는 한편 제 3 SAS 장치로부터 수신할 수 있다. 이와 같이 개선된 모드의 동작은 기존의 SAS 프로토콜과 여전히 호환가능한 한편 적절히 인에이블링된 SAS 신장기를 통해 다수의 다른 SAS 장치 각각으로 결합된 적절히 인에이블링된 제 1 SAS 장치와의 개선된 동작을 허용한다.The present invention solves the above and other problems by providing a plurality of, unidirectional, virtual connections, systems, and associated methods that are capable of operating substantially simultaneously between a first SAS device and two other SAS devices. Improve the state of the art. Each unidirectional impersonation connection is essentially a half duplex connection, whereby the first device can transmit to the second SAS device while receiving from the third SAS device. This improved mode of operation is still compatible with existing SAS protocols, while providing improved operation with a properly enabled first SAS device coupled to each of a number of other SAS devices through a properly enabled SAS extender. Allow.

본 발명의 일 측면은 각각이 SAS 신장기 구성요소에 결합된 제 1 SAS 장치, 제 2 SAS 장치 및 제 3 SAS 장치를 포함하는 세 개의 SAS 장치를 포함하는 시스템을 제공하는데, 상기 SAS 신장기 구성요소는 제 1 SAS를 제 2 SAS 장치와 제 3 SAS 장치 각각에 결합하도록 구성된다. 제 1 SAS 장치 및 SAS 신장기는 제 1 및 제 2 SAS 장치 간의 제 1 오픈 접속과 제 1 및 제 3 SAS 장치 간의 제 2 오픈 접속을 동시에 허용하도록 구성된다. 제 1 및 제 2 오픈 접속은 제 1 SAS 장치를 SAS 신장기를 결합하는데 단일 링크를 이용한다.One aspect of the invention provides a system comprising three SAS devices, each including a first SAS device, a second SAS device, and a third SAS device coupled to a SAS expander component, wherein the SAS extender component includes: The first SAS is coupled to each of the second SAS device and the third SAS device. The first SAS device and the SAS extender are configured to simultaneously permit a first open connection between the first and second SAS devices and a second open connection between the first and third SAS devices. The first and second open connections use a single link to join the SAS extender to the first SAS device.

본 발명의 또 다른 측면은 제 1 SAS 장치를 제 2 및 제 3 SAS 장치 각각에 결합하는 SAS 신장기를 구비한 SAS 도메인에서 동작가능한 방법을 제공한다. 이 방법은 제 1 SAS 장치와 제 2 SAS 장치 사이에서 SAS 신장기를 통해 제 1 가상 접속을 수립하는 단계를 포함한다. 제 1 가상 접속은 제 1 SAS 장치에 의해 수립되고 제 1 SAS 장치로부터 제 2 SAS 장치로 프레임을 전송하는데 사용된다. 방법은 또한 제 1 SAS 장치와 제 3 SAS 장치 사이에서 SAS 신장기를 통해 제 2 가상 접속을 수립하는 단계를 포함한다. 제 2 가상 접속은 제 3 SAS 장치에 의해 수립되고 제 3 SAS 장치로부터 제 1 SAS 장치로 프레임을 전송하는데 사용된다. 제 1 가상 접속 및 제 2 가상 접속은 중복되는 동작을 수행할 수 있다. 제 1 및 제 2 가상 접속은 제 1 SAS 장치를 SAS 신장기에게 결합하는데 동일한 링크를 사용한다.Another aspect of the invention provides a method operable in a SAS domain with a SAS extender that couples a first SAS device to each of a second and third SAS device. The method includes establishing a first virtual connection through a SAS extender between the first SAS device and the second SAS device. The first virtual connection is established by the first SAS device and used to send a frame from the first SAS device to the second SAS device. The method also includes establishing a second virtual connection through the SAS extender between the first SAS device and the third SAS device. The second virtual connection is established by the third SAS device and used to send a frame from the third SAS device to the first SAS device. The first virtual connection and the second virtual connection may perform an overlapping operation. The first and second virtual connections use the same link to couple the first SAS device to the SAS extender.

본 발명의 또 다른 측면은 적어도 제 1, 제 2 및 제 3 SAS 장치에 결합하도록 구성된 SAS 신장기를 제공한다. SAS 신장기는 제 1 SAS 장치로부터 제 2 SAS 장치로 프레임을 전송하기 위해 제 1 SAS 장치와 제 2 SAS 장치 사이에서 제 1 가상 접속을 수립 및 운영하도록 구성된 제 1 가상 접속 로직을 포함한다. 신장기는 또한 제 3 SAS 장치로부터 제 1 SAS 장치로 프레임을 전송하기 위해 제 1 SAS 장치와 제 3 SAS 장치 사이에서 제 2 가상 접속을 수립 및 운영하도록 구성된 제 2 가상 접속 로직을 포함한다. 제 1 가상 접속 로직 및 제 2 가상 접속 로직은 각각 제 1 가상 접속 및 제 2 가상 접속이 중복되는 동작을 수행하는 것을 허용하도록 구성된다.Another aspect of the invention provides a SAS extender configured to couple to at least a first, second, and third SAS device. The SAS extender includes first virtual connection logic configured to establish and operate a first virtual connection between the first SAS device and the second SAS device to transmit a frame from the first SAS device to the second SAS device. The extender also includes second virtual connection logic configured to establish and operate a second virtual connection between the first SAS device and the third SAS device to transmit a frame from the third SAS device to the first SAS device. The first virtual connection logic and the second virtual connection logic are configured to allow the first virtual connection and the second virtual connection, respectively, to perform an overlapping operation.

본 발명의 또 다른 측면은 SAS 종단 장치로부터 제 1 SAS 장치로 프레임을 전송하기 위해 SAS 종단 장치와 제 1 SAS 장치 사이에서 SAS 신장기를 통한 제 1 가상 접속을 수립 및 조종하도록 구성된 제 1 가상 접속 로직을 포함하는 SAS 종단 장치를 제공한다. 이 SAS 종단 장치는 제 2 SAS 장치로부터 SAS 종단 장치로 프레임을 전송하기 위해 SAS 종단 장치와 제 2 SAS 장치 사이에서 SAS 신장기를 통한 제 2 가상 접속을 수립 및 조종하도록 구성된 제 2 가상 접속 로직을 또한 포함한다. 제 1 가상 접속 로직 및 제 2 가상 접속 로직은 각각 제 1 가상 접속 및 제 2 가상 접속이 중복되는 동작을 수행하는 것을 허용하도록 구성된다. 종단 장치는 SAS 종단 장치를 SAS 신장기에게 결합하는 동일한 링크 상에서 제 1 및 제 2 가상 접속을 수립하도록 구성된다.Another aspect of the invention provides a first virtual connection logic configured to establish and manipulate a first virtual connection through a SAS extender between a SAS terminator and a first SAS device to transmit a frame from the SAS terminator to the first SAS device. It provides a SAS termination device comprising a. The SAS terminator also includes second virtual connection logic configured to establish and manipulate a second virtual connection through the SAS extender between the SAS terminator and the second SAS device to transfer frames from the second SAS device to the SAS terminator. Include. The first virtual connection logic and the second virtual connection logic are configured to allow the first virtual connection and the second virtual connection, respectively, to perform an overlapping operation. The terminating device is configured to establish first and second virtual connections on the same link that couple the SAS terminating device to the SAS extender.

도 1은 SAS 도메인에서 대역폭 활용을 개선하기 위한 본 발명의 측징 및 측면에 따른 예시적인 시스템의 블록도,1 is a block diagram of an exemplary system in accordance with aspects and aspects of the present invention for improving bandwidth utilization in a SAS domain;

도 2는 제 1 SAS 장치와 두 개의 다른 SAS 장치 각각 사이에서 다수의 단방향 가상 접속을 허용하는 본 발명의 특징 및 측면에 따라 개선된 예시적인 제 1 SAS 장치와 SAS 신장기에 대한 블록도,2 is a block diagram of an exemplary first SAS device and SAS extender improved in accordance with features and aspects of the present invention that allow multiple unidirectional virtual connections between each of the first SAS device and two other SAS devices;

도 3은 본 발명의 특징 및 측면에 따라 개선된 SAS 도메인 시스템에서 동작 가능한 본 발명의 특징 및 측면에 따른 예시적인 방법을 나타내는 흐름도,3 is a flow diagram illustrating an exemplary method in accordance with the features and aspects of the present invention operable in an improved SAS domain system in accordance with the features and aspects of the present invention;

도 4는 세 개의 SAS 장치 사이에서 다수의 단방향 가상 접속을 수립하는 본 발명의 특징 및 측면에 따른 예시적인 방법을 나타내는 흐름도,4 is a flow diagram illustrating an exemplary method in accordance with aspects and aspects of the present invention for establishing multiple one-way virtual connections between three SAS devices;

도 5는 본 발명의 특징 및 측면에 따라 다수의 SAS 장치와 SAS 신장기 사이의 SAS 트랜잭션의 예시적인 교환을 나타내는 도면,5 illustrates an exemplary exchange of SAS transactions between multiple SAS devices and a SAS extender in accordance with aspects and aspects of the present invention.

도 6은 본 발명의 특징 및 측면에 따라 개선된 신장기의 예시적인 실시예의 블록도.6 is a block diagram of an exemplary embodiment of an improved expander in accordance with features and aspects of the present invention.

도 1은 SAS 도메인 내에서 대역폭 활용을 개선하기 위한 본 발명의 특징 및 측면에 따른 예시적인 시스템(100)의 블록도이다. 도 1에 도시되어 있는 바와 같이, SAS 도메인(예를 들어, 시스템(100))은 세 개의 SAS 장치, 즉 제 1 SAS 장치(101), 제 2 SAS 장치(102) 및 제 3 SAS 장치(103)를 포함한다. SAS 도메인에서 잘 알려져 있는 바와 같이, 제 1 SAS 장치(101)는 다수의 다른 장치(예를 들어, 제 2 SAS 장치(102) 및 제 3 SAS 장치(103))에 접속할 수 있다. 이러한 접속을 제공함에 있어 스위칭가능 융통성을 제공하기 위해 하나 이상의 SAS 신장기(104)를 포함하는 것이 일반적이다. SAS 사양 및 프로토콜의 제한에 따라 임의의 수의 SAS 장치가 임의의 수의 연관된 SAS 신장기를 통해 상호접속될 수 있다는 것을 당업자라면 누구나 알 수 있을 것이다. 전형적인 SAS 도메인은 도 1에 도시되어 있는 것보다 실질적으로 많은 장치 및 신장기를 포함한다. 따라서, 도 1은 단지 본 설명 의 간결성을 위해 간략화된다.1 is a block diagram of an exemplary system 100 in accordance with aspects and aspects of the present invention for improving bandwidth utilization within a SAS domain. As shown in FIG. 1, a SAS domain (eg, system 100) includes three SAS devices: a first SAS device 101, a second SAS device 102, and a third SAS device 103. ). As is well known in the SAS domain, the first SAS device 101 can connect to a number of other devices (eg, the second SAS device 102 and the third SAS device 103). It is common to include one or more SAS extenders 104 to provide switchable flexibility in providing such a connection. Those skilled in the art will appreciate that any number of SAS devices may be interconnected through any number of associated SAS extenders, subject to limitations of the SAS specification and protocol. Typical SAS domains include substantially more devices and expanders than those shown in FIG. 1. Accordingly, FIG. 1 is simplified only for the sake of brevity of the present description.

시스템(100)으로 표시된 본 발명의 특징 및 측면에 따르면, 제 1 SAS 장치(101) 및 SAS 신장기(104)는 제 1 SAS 장치와 제 2 및 제 3 SAS 장치(102,103) 각각 사이에 다수의 가상 접속을 허용하도록 강화될 수 있다. 특히, 제 1 가상 접속은 본 발명의 특징 및 측면에 따라 제 1 SAS 장치(101)와 제 2 SAS 장치(102) 사이에 수립될 수 있다. 이러한 제 1 가상 접속의 수립 이전에, 이후에 또는 실질적으로 동시에, 제 2 가상 접속이 제 1 SAS 장치(101) 와 제 3 SAS 장치(103) 사이에 수립되고 활용될 수 있다. 전술한 바와 같이, 종래의 SAS 아키텍쳐 및 방법론은 임의의 두 개의 SAS 장치 사이에서 양방향 점대점 접속을 허용한다. 그러나, 종래의 SAS 아키텍쳐 및 기법은 단일 장치가 SAS 신장기에 접속된 단일 링크를 통해 SAS 도메인 내의 다른 두 개의 장치 모두와 실질적으로 동시에 통신하는 것을 허용하지 않는다.In accordance with features and aspects of the present invention, represented by system 100, first SAS device 101 and SAS extender 104 include a plurality of virtual devices between first SAS device and second and third SAS devices 102, 103, respectively. It can be enhanced to allow connections. In particular, a first virtual connection may be established between the first SAS device 101 and the second SAS device 102 in accordance with aspects and aspects of the present invention. Before, after, or substantially simultaneously, the establishment of such a first virtual connection, a second virtual connection may be established and utilized between the first SAS device 101 and the third SAS device 103. As noted above, conventional SAS architectures and methodologies allow for bidirectional point-to-point connections between any two SAS devices. However, conventional SAS architectures and techniques do not allow a single device to communicate substantially simultaneously with both other devices in a SAS domain via a single link connected to a SAS extender.

본 명세서에서 사용되는 바와 같이, 접속의 동시성은 두 개의 가상 접속의 수립 및 활용의 임의의 측면을 지칭한다. 다시 말해, 제 1 가상 접속과 제 2 가상 접속의 수립은 실질적으로 동시에 수행되도록 사실상 중첩될 수 있다. 또는, 예를 들어 앞서 수립된 제 1 가상 접속의 활용과 제 2 가상 접속의 수립은 실질적으로 동시에 수행되도록 사실상 중첩될 수 있다. 또는, 예를 들어, 앞서 수립된 가상 접속 모두는 두 개의 가상 접속을 통한 데이터 전송을 실질적으로 중첩함으로써 동시에 사용될 수 있다.As used herein, concurrency refers to any aspect of establishing and utilizing two virtual connections. In other words, the establishment of the first virtual connection and the second virtual connection can be virtually overlapped to be performed substantially simultaneously. Or, for example, the utilization of the first virtual connection established above and the establishment of the second virtual connection may be virtually overlapped to be performed substantially simultaneously. Or, for example, all of the previously established virtual connections can be used simultaneously by substantially overlapping data transmissions over the two virtual connections.

위에서 또한 설명한 바와 같이, 종래의 SAS 아키텍쳐 및 기법은 제 1 SAS 장 치와 제 2 SAS 장치 간에 양방향 접속을 허용하지만, 실제적 문제로서, 이러한 SAS 접속에서 양방향의 동시 통신은 특히 호스트 시스템과 단일 디스크 드라이브 장치 간의 접속 상황에서는 부족 사용된다. 즉, SAS 아키텍쳐의 디스크 저장 애플리케이션의 비교적 드문 상황에서만, SAS 접속이 수립된 제 1 SAS 장치와 제 2 SAS 장치 모두가 단일 점대점 전이중 접속 상에서의 양 방향에서 임의의 대량의 정보를 전송할 수 있다.As also described above, conventional SAS architectures and techniques allow bidirectional connections between a first SAS device and a second SAS device, but as a practical matter, bidirectional simultaneous communication in such a SAS connection is particularly a host system and a single disk drive. Lack of use in the connection situation between devices. That is, only in a relatively rare situation of a disk storage application of the SAS architecture, both the first SAS device and the second SAS device with which a SAS connection is established can transmit any amount of information in both directions on a single point-to-point full duplex connection.

따라서, 본 발명의 특징 및 측면에 따르면, 제 1 SAS 장치(101)와 제 2 SAS 장치(102) 간의 제 1 가상 접속은 제 1 SAS 장치로부터 제 2 SAS 장치로 데이터 프레임을 전송하기 위해 수립된다. 제 1 SAS 장치(101)와 제 3 SAS 장치(103) 간의 제 2 가상 접속은 제 3 SAS 장치(103)로부터 제 1 SAS 장치(101)로, 즉 제 1 가상 접속의 프레임 통신과는 반대 방향으로 데이터 프레임을 전송하기 위해 수립된다. 따라서, 본 발명의 특징 및 측면에 따르면, 제 1 및 제 2 가상 접속 모두는 사실상 단방향의 반이중 접속이다. 그러나, 전술한 바와 같이, 제 1 SAS 장치(101)를 두 개의 다른 SAS 장치에 결합하되, 각각의 결합은 다른 가상 접속과 반대 방향으로 정보를 단방향 교환하도록 구성함으로써, SAS 도메인(예를 들어, 시스템(100))의 프로세싱 및 통신 대역폭을 보다 잘 이용할 수 있게 된다. Thus, in accordance with features and aspects of the present invention, a first virtual connection between the first SAS device 101 and the second SAS device 102 is established for transmitting data frames from the first SAS device to the second SAS device. . The second virtual connection between the first SAS device 101 and the third SAS device 103 is from the third SAS device 103 to the first SAS device 101, ie in the opposite direction to the frame communication of the first virtual connection. Is established to transmit data frames. Thus, in accordance with features and aspects of the present invention, both the first and second virtual connections are substantially unidirectional half-duplex connections. However, as mentioned above, the first SAS device 101 is coupled to two other SAS devices, each coupling configured to unidirectionally exchange information in the opposite direction to the other virtual connections, thereby providing a SAS domain (eg, The processing and communication bandwidth of the system 100 may be better utilized.

통신 경로(151)는 제 1 SAS 장치(101)를 SAS 신장기(104)의 특정 포트에 연결하는 단일 로직 링크를 나타낸다. 유사한 방식으로, SAS 신장기(104)는 단일 로직 링크(152)를 통해 제 2 SAS 장치(102)에 결합되고 다른 로직 링크(153)를 통해 제 3 SAS 장치(103)에 결합된다. 제 1 SAS 장치(101)와 SAS 신장기(104) 간의 로직 접속(151)은 종래의 SAS 표준 전이중 링크 층 프로토콜과 비교해볼 때 보다 양호하게 이용되는데, 그 이유는 링크(151)의 각 전송 방향은 상이한 SAS 장치에 결합되기 때문이다. 오히려, 두 개의 가상 로직 접속은 제 1 SAS 장치(101)와 SAS 신장기(1040 사이에 수립된다.The communication path 151 represents a single logical link connecting the first SAS device 101 to a particular port of the SAS extender 104. In a similar manner, SAS extender 104 is coupled to second SAS device 102 via a single logic link 152 and to third SAS device 103 via another logic link 153. The logic connection 151 between the first SAS device 101 and the SAS extender 104 is better used as compared to the conventional SAS standard full-duplex link layer protocol, because each transmission direction of the link 151 is This is because it is coupled to different SAS devices. Rather, two virtual logic connections are established between the first SAS device 101 and the SAS expander 1040.

"포트", "링크" 및 PHY가 SAS 사양에 의해 잘 규정되어 있지만, 본 명세서에서 사용되는 바와 같이, 이들은 설명을 위해 동의어로서 간주될 수 있다. 일반적으로, 링크 또는 PHY는 두 개의 장치를 결합하는 단일의 물리적 링크 매체인 반면, 포트는 SAS에서의 로직 구성물이다. 예를 들어, 단일 포트는 다수의 물리적 링크 또는 PHY의 처리를 총괄하는 다방면의 포트일 수 있다. 따라서, 다수의 링크를 이용하는 포트는 본 발명의 특징 및 측면에 따라 개선된 모드에서 다수의 링크들 중 일부와, 표준의 비 개선된 모드에서의 다른 링크를 동작시킬 수 있다. 그러나, 본 특허의 보다 넓은 범위를 위해, 용어들은 본질적으로 동의어로 간주될 수 있다.Although "port", "link", and PHY are well defined by the SAS specification, as used herein, they may be considered as synonyms for description. In general, a link or PHY is a single physical link medium that combines two devices, while a port is a logical construct in SAS. For example, a single port can be a versatile port that oversees the processing of multiple physical links or PHYs. Thus, a port using multiple links may operate some of the multiple links in an improved mode and other links in a standard non-improved mode in accordance with features and aspects of the present invention. However, for a broader scope of the patent, the terms may be considered synonymous in nature.

본 발명의 특징 및 측면에 대한 하나의 예시적인 실시예에 있어서, 제 1 SAS 장치(101)는 적절히 개선된 SAS 호스트 어댑터가 장착된 호스트 시스템 또는 서버 계산 노드와 같은 개선된 SAS 종단 장치일 수 있다. 더 나아가, SAS 신장기(104)는 두 개의 단방향 가상 접속을 제 2 및 제 3 SAS 장치(102,103)에 각각 수립하는데 단일 로직 링크를 사용하기 위해 개선된 SAS 장치(101)와의 단일 로직 접속을 허용하는 본 발명의 특징 및 측면에 따라 개선된 SAS 신장기일 수 있다. 제 2 및 제 3 SAS 장치(102,103)는 예를 들어 저장 장치 또는 다른 주변 I/O 장치와 같은 표준 SAS 장치일 수 있다. 제 1 가상 접속은 개선된 SAS 장치(제 1 SAS 장치(101))를 로직 링크(151), 신장기(104) 및 로직 링크(152)를 통해 제 2 SAS 장치(102)에 결합시킨다. 이 제 1 가상 접속은 개선된 SAS 장치(101)가 제 2 SAS 장치(102)로 대표되는 저장 장치로 데이터 프레임을 전송하는데 사용된다. 제 2 가상 접속은 제 1 SAS 장치(101)와 제 3 SAS 장치(103), 예를 들어 정보를 개선된 SAS 장치(101)로 다시 전송하는데 바람직한 제 2 저장 장치 사이에 수립된다. 이러한 제 2 가상 접속은 링크(151), SAS 신장기(104) 및 링크(153)를 통해 개선된 SAS 장치(101)와 제 2 SAS 장치(103)를 결합한다. 제 3 SAS 장치(103)에서 생성된 데이터 프레임은 개선된 SAS 장치(101)로 다시 전송되는데, 예를 들어 판독 데이터는 저장 장치로부터 요청 호스트 시스템 SAS 장치로 다시 전송된다. 따라서, 개선된 SAS 장치를 개선된 SAS 신장기에 결합하는 단일 로직 링크(151)는 제 1 장치(101)로부터 제 2 SAS 장치(102)로의 실질적인 동시적 전송(예를 들어, 저장 장치로의 기록 동작)에 의해 또한 제 3 SAS 장치(103)로부터 개선된 SAS 장치로의 전송(예를 들어, 다른 호스트 요청에 응답하는 판독 데이터의 반환)에 의해 보다 완전히 사용된다.In one exemplary embodiment of the features and aspects of the present invention, the first SAS device 101 may be an improved SAS termination device, such as a host system or server compute node, equipped with a suitably improved SAS host adapter. . Further, SAS extender 104 allows a single logic connection with SAS device 101, which is enhanced to use a single logic link to establish two unidirectional virtual connections to second and third SAS devices 102,103, respectively. It may be an improved SAS stretcher in accordance with the features and aspects of the present invention. The second and third SAS devices 102 and 103 may be standard SAS devices such as, for example, storage devices or other peripheral I / O devices. The first virtual connection couples the enhanced SAS device (first SAS device 101) to the second SAS device 102 via a logic link 151, an expander 104, and a logic link 152. This first virtual connection is used by the enhanced SAS device 101 to send data frames to the storage device represented by the second SAS device 102. A second virtual connection is established between the first SAS device 101 and the third SAS device 103, for example a second storage device that is desirable for transferring information back to the enhanced SAS device 101. This second virtual connection combines the advanced SAS device 101 and the second SAS device 103 via links 151, SAS extenders 104 and links 153. The data frames generated at the third SAS device 103 are sent back to the enhanced SAS device 101, for example read data is sent back from the storage device to the requesting host system SAS device. Thus, a single logical link 151 that couples the improved SAS device to the improved SAS extender allows for substantially simultaneous transmission from the first device 101 to the second SAS device 102 (eg, writing to storage). Operation) and also more fully by transfer from the third SAS device 103 to the enhanced SAS device (eg, return of read data in response to another host request).

당업자라면, 완전한 기능의 SAS 장치 또는 SAS 신장기 내에 다수의 추가적인 특징 및 요소가 존재할 수 있음을 쉽게 알 수 있을 것이다. 이러한 잘 알려진 요소는 본 설명의 간략성을 위해 도 1에는 생략되어 있다.Those skilled in the art will readily appreciate that there may be many additional features and elements in a fully functional SAS device or SAS extender. Such well-known elements are omitted in FIG. 1 for simplicity of the present description.

도 2는 제 1 SAS 장치(101)와 두 개의 다른 SAS 장치(102,103) 사이의 다수의 단방향 가상 접속을 허용하도록 본 발명의 특징 및 측면에 따라 개선된 예시적인 SAS 신장기(104)의 블록도이다. 2 is a block diagram of an exemplary SAS extender 104 improved in accordance with features and aspects of the present invention to allow multiple unidirectional virtual connections between the first SAS device 101 and two other SAS devices 102, 103. .

본 발명의 특징 및 측면에 따라 개선된 SAS 신장기(104)는 개선된 제 1 장치(101)와의 개선된 모드 통신을 위해 별개의 아웃바운드 가상 접속 로직 요소(201)와 별개의 인바운드 가상 접속 로직 요소(202)를 포함한다. 아웃바운드 가상 접속 로직 요소(201)는 SAS 신장기(104)에 (직접적으로, 또는 SAS 도메인 내의 하나 이상의 삽입형 다른 SAS 신장기(252)를 통해) 결합된 제 2 SAS 장치(102)로 아웃바운드 데이터 프레임을 전송하는 것과 연관된 수송 및 링크 층 처리를 관리한다. 인바운드 가상 접속 로직 요소(202)는 SAS 신장기(104)에 (직접적으로, 또는 SAS 도메인 내의 하나 이상의 삽입형 다른 SAS 신장기(253)를 통해) 결합된 제 3 SAS 장치(103)로부터 인바운드 데이터 프레임을 수신하는 것과 연관된 수송 및 링크 층 처리를 관리한다. 보다 낮은 레벨의 로직 PHY 제어 로직(214)는 제 1 SAS 장치(101)가 제 2 및 제 3 SAS 장치 모드와 통신할 수 있게 해주는 개선된 SAS 신장기(104)의 대응하는 단일 링크에 개선된 SAS 신장기(104)를 물리적으로 결합한다.In accordance with the features and aspects of the present invention, the improved SAS extender 104 includes a separate outbound virtual connect logic element 201 and a separate inbound virtual connect logic element for improved mode communication with the improved first device 101. 202. The outbound virtual connect logic element 201 is an outbound data frame to the second SAS device 102 coupled to the SAS extender 104 (directly or through one or more other insert SAS expanders 252 in the SAS domain). Manage the transport and link layer processing associated with transmitting the data. Inbound virtual connect logic element 202 receives inbound data frames from third SAS device 103 coupled to SAS extender 104 (directly or through one or more other insert SAS SAS 253s within a SAS domain). Manage transport and link layer processing associated with doing The lower level logic PHY control logic 214 is enhanced SAS to a corresponding single link of the enhanced SAS extender 104 that allows the first SAS device 101 to communicate with the second and third SAS device modes. Physically couple the expander 104.

아웃바운드 가상 접속 로직(201)는 SAS 크레딧(credit) 프로토콜 및 핸드쉐이크에 따라 제 1 SAS 장치(101)로부터 제 2 SAS 장치(102)로 데이터 프레임을 전송하는 표준 SAS 프로토콜 수송 및 링크 층 상태 머신을 관리하는 역할을 하는 아웃바운드 송신 및 크레딧 로직 요소(206)를 포함한다. 유사한 방식으로, 인바운드 가상 접속 로직 요소(202)는 제 1 SAS 장치(101)에 부착된 제 3 SAS 장치(103)로부터 인바운드 데이터 프레임을 수신하는 경우 표준 SAS 상태 머신 모델에 따라 링크 및 수송 층 관리를 일반적으로 담당하는 인바운드 수신 및 크레딧 로직(212)를 포함할 수 있다.The outbound virtual connection logic 201 is a standard SAS protocol transport and link layer state machine that transmits data frames from the first SAS device 101 to the second SAS device 102 in accordance with the SAS credit protocol and handshake. Outbound transmission and credit logic elements 206 that serve to manage the < RTI ID = 0.0 > In a similar manner, the inbound virtual connect logic element 202 receives link and transport layer management according to a standard SAS state machine model when it receives an inbound data frame from a third SAS device 103 attached to the first SAS device 101. It may include inbound receiving and credit logic 212 generally responsible for the.

복식 로직 요소(duplexing logic element)(203)는 제 2 SAS 장치(102)로부터 제 1 SAS 장치(101)로 이루어지는 인바운드 데이터 프레임 전송을 방지하고 (예를 들어, 전형적으로 제 3 SAS 장치로부터의 수신 크레딧 표시를 무시 또는 버림으로써) 제 3 SAS 장치(103)로부터 제 1 SAS 장치(101)로 이루어지는 아웃바운드 데이터 프레임 전송을 회피하도록 하기 위해 본 발명의 특징 및 측면에 연관된 특화된 상태 머신 프로세싱을 수행하는 조합 및/또는 순차 로직을 나타낸다. 특히, 복식 로직 요소(203)는 제 2 SAS 장치(102)로의 전송을 위한 CREDIT BLOCKED 원형(primitive)을 생성하는 인바운드 크레딧 블록킹 로직(208)을 포함할 수 있다. 바람직하게, 제 2 SAS 장치(102)와의 제 1 가상 접속을 수립한 경우, 인바운드 크레딧 블록킹 로직 요소(208)는 즉각 CREDIT BLOCKED 원형을 전송하여, 개선된 제 1 SAS 장치(101)가 제 2 SAS 장치로부터는 어떠한 데이터 프레임 전송도 수신하지 않을 것이라는 것을 제 2 SAS(102)에게 알려준다. 마찬가지로, 복식 로직 요소(203)는 대개 개선된 제 1 SAS 장치(101)로부터 제 3 SAS 장치(103)로의 아웃바운드 전송을 회피하도록 동작가능한 아웃바운드 크레딧 폐기 로직(210)을 포함할 수 있다. 이러한 아웃바운드 전송의 회피는 단지 예를 들어 제 1 SAS 장치(101)로부터의 전송을 수신하기 위한 수신 버퍼 공간을 나타내는데 사용된 제 3 SAS 장치(103)로부터 수신된 임의의 RRDY 원형을 무시하는 프로세싱을 나타낼 수 있다. 개선된 제 1 SAS 장치(101) 내의 다른 로직은 단순히 다수의 단방향 가상 접속을 수립하기 위해 개선된 모드의 동작에 기초하여 데이터 프레임을 제 3 SAS 장치(103)로 전송하는 것을 결코 시도하지 않는다.The duplexing logic element 203 prevents inbound data frame transmission from the second SAS device 102 to the first SAS device 101 (eg, typically receives from a third SAS device). Performing specialized state machine processing associated with features and aspects of the present invention to avoid transmission of outbound data frames from the third SAS device 103 to the first SAS device 101 by ignoring or discarding the credit indication). Represents a combination and / or sequential logic. In particular, the doubled logic element 203 can include inbound credit blocking logic 208 that generates a CREDIT BLOCKED primitive for transmission to the second SAS device 102. Preferably, when establishing a first virtual connection with the second SAS device 102, the inbound credit blocking logic element 208 immediately sends a CREDIT BLOCKED prototype so that the improved first SAS device 101 can transmit the second SAS device 102. Inform the second SAS 102 that it will not receive any data frame transmission from the device. Similarly, the doubled logic element 203 can generally include outbound credit discard logic 210 operable to avoid outbound transmission from the improved first SAS device 101 to the third SAS device 103. This avoidance of outbound transmission is simply processing that ignores any RRDY prototype received from the third SAS device 103 used for example to indicate receive buffer space for receiving the transmission from the first SAS device 101. Can be represented. The other logic in the improved first SAS device 101 never attempts to transmit a data frame to the third SAS device 103 based on the improved mode of operation to simply establish multiple unidirectional virtual connections.

SAS 신장기(104) 내에서 구현되는 바와 같이, 아웃바운드 가상 접속 로직(201) 및 인바운드 가상 접속 로직(202)은 세 개의 PHY 제어 로직 요소와 연관된다. PHY 제어 로직 요소(214)는 SAS 신장기(104)를 단일 링크를 통해 개선된 제 1 SAS 장치(101)로 결합하는 PHY 제어를 구현한다. PHY 제어 로직 요소(221)는 아웃바운드 가상 접속 로직(201)을 단일 링크를 통해 제 2 SAS 장치(예를 들어, 저장 장치 또는 다른 주변 장치)에 결합한다. PHY 제어 로직 요소(222)는 인바운드 가상 접속 로직(202)을 제 3 SAS 장치(103)(예를 들어, 데이터 프레임을 전송하기 위해 제 1 SAS 장치로의 접속을 요구하는 또 다른 저장 장치)에 결합한다.As implemented within SAS extender 104, outbound virtual connection logic 201 and inbound virtual connection logic 202 are associated with three PHY control logic elements. PHY control logic element 214 implements PHY control that couples SAS extender 104 into an improved first SAS device 101 over a single link. PHY control logic element 221 couples outbound virtual connection logic 201 to a second SAS device (eg, a storage device or other peripheral device) via a single link. The PHY control logic element 222 transfers the inbound virtual connection logic 202 to the third SAS device 103 (e.g., another storage device that requires a connection to the first SAS device to send a data frame). To combine.

따라서, 개선된 SAS 신장기(104)는 개선된 제 1 SAS 장치(101)를 제 2 SAS 장치(102)에 결합하는 제 1 가상 접속을 수립하도록 구성된다. 이 제 1 가상 접속은 제 1 SAS 장치(101)로부터 제 2 SAS 장치(102)로 데이터 프레임을, 예를 들어, SAS 호스트 장치부터 기록 요청의 프로세싱에서와 같이, 호스트 시스템 SAS 어댑터 장치로부터 SAS 저장 장치로 전송된 데이터 프레임을 전송하도록 구성된다. 제 1 가상 접속의 동작에 있어서, 개선된 SAS 신장기(104)는 제어 로직(214)을 통해 데이터 프레임을 수신한다. 개선된 SAS 장치로부터 수신된 데이터 프레임은 아웃바운드 가상 제어 로직(201)을 통해, 또한 개선된 SAS 신장기(104) 내의 표준 라우팅 로직과 연계하여 PHY 제어 로직(221) 상으로 전송되어 이 로직 링크를 통해 제 2 SAS 장치(102)로 전송된다.Thus, the improved SAS extender 104 is configured to establish a first virtual connection that couples the improved first SAS device 101 to the second SAS device 102. This first virtual connection stores a data frame from the first SAS device 101 to the second SAS device 102, for example, storing the SAS from the host system SAS adapter device, as in the processing of a write request from the SAS host device. And transmit the data frame sent to the device. In operation of the first virtual connection, the improved SAS extender 104 receives a data frame via the control logic 214. Data frames received from the enhanced SAS device are transmitted over the PHY control logic 221 via outbound virtual control logic 201 and in conjunction with standard routing logic in the enhanced SAS extender 104 to transfer this logic link. Is sent to the second SAS device 102.

개선된 SAS 신장기(104)는 또한 제 1 SAS 장치(101)를 제 3 SAS 장치(103)로 결합하는 제 2 가상 접속을 수립하도록 구성된다. 이 제 2 가상 접속은 제 1 SAS 장치 내에서의 프로세싱을 위해 제 3 SAS 장치로부터 데이터 프레임을, 예를 들어 판독 요청의 프로세싱에서와 같이 SAS 저장 장치로부터 다시 호스트 시스템 SAS 장치로 전송된 데이터 프레임을 수신하도록 구성된다. 이 제 2 가상 접속의 동작에 있어서, 개선된 SAS 신장기(104)는 제 3 SAS 장치(103)로부터 PHY 제어 로직(222)을 통헤 데이터 프레임을 수신한다. 이들 수신 데이터 프레임은 인바운드 가상 접속 로직 요소(202)를 통해 PHY 제어 로직 요소(214)로 전송되어 개선된 제 1 SAS 장치(101)로 전송된다.The improved SAS extender 104 is also configured to establish a second virtual connection that couples the first SAS device 101 to the third SAS device 103. This second virtual connection may be used to retrieve a data frame from a third SAS device for processing within the first SAS device, for example, a data frame sent from the SAS storage device back to the host system SAS device as in the processing of a read request. Is configured to receive. In operation of this second virtual connection, the improved SAS extender 104 receives a data frame from the third SAS device 103 via the PHY control logic 222. These received data frames are sent to the PHY control logic element 214 via the inbound virtual connection logic element 202 and to the improved first SAS device 101.

따라서, 개선된 SAS 신장기(104)는 두 개의 단방향 가상 접속, 즉, 제 1 SAS 장치(101)와 제 2 SAS 장치(102) 사이의 제 1 가상 접속과, 제 1 SAS 장치(101)와 제 3 SAS 장치(103) 사이의 제 2 가상 접속을 수립하도록 구성된다. 제 1 가상 접속은 데이터 프레임을 제 1 SAS 장치로부터 제 2 SAS 장치로 전송하는데 사용되는 한편, 제 2 가상 접속은 데이터 프레임을 제 3 SAS 장치로부터 제 1 SAS 장치로 전송하는데 사용된다.Thus, the improved SAS extender 104 provides two unidirectional virtual connections, a first virtual connection between the first SAS device 101 and the second SAS device 102, and a first SAS device 101 and a first virtual connection. And configured to establish a second virtual connection between the three SAS devices 103. The first virtual connection is used to transfer the data frame from the first SAS device to the second SAS device, while the second virtual connection is used to transfer the data frame from the third SAS device to the first SAS device.

당업자라면 완벽히 동작가능한 개선된 SAS 신장기(104) 내에서 여러 가지의 상이하고 추가적인 요소가 이용될 수 있음을 쉽게 알 수 있을 것이다. 이러한 추가적인 요소는 본 설명의 간단 명료성을 위해 도 2에서는 생략되었다.Those skilled in the art will readily appreciate that a variety of different and additional elements may be used within the improved SAS stretcher 104 that is fully operational. These additional elements have been omitted in FIG. 2 for the sake of simplicity and clarity of the present description.

예시적인 바람직한 실시예에서, 본 발명의 개선된 특징 및 측면은 개선된 SAS 신장기와 개선된 SAS 장치 모두에 추가된 조합 및/또는 순차 로직에 분배될 수 있다. 개선된 SAS 장치는 SAS 신장기에 대한 자신의 접속이 개선된 동작 모드에 대해 인에이블링되어야 함을 요청하도록 적절하게 구성될 수 있다. 본 발명의 특징 및 측면에 따른 개선된 SAS 신장기는 개선된 모드 동작을 허가함으로써 개선된 SAS 장치의 요청에 응답한다. 본 발명의 개선된 특징 및 측면을 가지고 있지 않은 레거시 SAS 신장기는 개선된 SAS 장치로부터의 새로운 요청을 거절할 수 있고 또한 간단히 표준 SAS 동작 모드에서 계속 동작한다. 따라서, 개선된 SAS 장치는 적절한 개선된 SAS 신장기에 접속되어 있지 않은 경우에는 SAS 신장기에 따라 계속 동작하기 위해 과거 SAS 신장기와 호환가능해야 한다.In an exemplary preferred embodiment, the improved features and aspects of the present invention may be distributed to combination and / or sequential logic added to both the improved SAS expander and the improved SAS device. The advanced SAS device may be properly configured to request that its connection to the SAS extender should be enabled for the improved mode of operation. An improved SAS extender in accordance with features and aspects of the present invention responds to the request of the improved SAS device by permitting improved mode operation. Legacy SAS extenders that do not have the improved features and aspects of the present invention can reject new requests from improved SAS devices and simply continue to operate in the standard SAS mode of operation. Thus, an improved SAS device must be compatible with past SAS extenders to continue to operate according to the SAS extender when not connected to a suitable improved SAS extender.

도 3은 본 발명의 특징 및 측면에 따라 개선된 SAS 도메인 시스템에서 동작가능한 본 발명의 특징 및 측면에 따른 예시적인 방법을 개략적으로 나타내는 흐름도이다. 위에서 설명한 바와 같이, 본 발명의 특징 및 측면은 제 1 SAS 장치와 제 2 및 제 3 SAS 장치 사이에 이중, 단방향 가상 접속을 수립하는 SAS 도메인을 허용한다. 따라서, 도 3의 요소(300)는 우선 제 1 SAS 장치와 제 2 SAS 장치 사이에 제 1 가상 접속을 수립하도록 동작가능하다. 예를 들어, 제 1 SAS 장치는 적절한 호스트 버스 어댑터를 구비한 호스트 시스템 또는 서버일 수 있고, 제 2 SAS 장치는 디스크 드라이브 또는 다른 유사한 저장 장치와 같은 저장 장치일 수 있다. 이 제 1 가상 접속은 SAS 데이터 프레임을 제 1 SAS 장치로부터 제 2 SAS 장치로 전송하는데 사용된다. 이러한 데이터 전송은 예를 들어 저장 장치에 정보를 전송하려는 호스트 시스템 또는 서버 기록 요청의 프로세싱에 응답하는 것일 수 있다. 이 제 1 가상 접속은 바람직하게는 데이터 프레임이 역방향으로, 즉 제 2 SAS 장치로부터 제 1 SAS 장치로 전송되는 것을 방지하는 방식으로 수립된다. 따라서, 현재 데이터 프레임을 제 1 SAS 장치로 전송하는 것을 준비 및 대기하는 다른 저장 장치에 이용가능한 추가적인 대역폭은 남겨질 것이다. 요소(302)는 제 1 SAS 장치와 제 3 SAS 장치 사이의 제 2 가상 접속을 수립하도록 동작가능하다. 이 제 2 가상 접속은 일반적으로 데이터 프레임을 제 3 SAS 장치로부터 다시 제 1 SAS 장치로 전송하는데 사용된다. 이러한 전송은 예를 들어, 제 3 장치(예를 들어, 저장 장치)가 궁극적으로 요청된 데이터를 제 1 SAS 장치(예를 들어, 적절한 SAS 호스트 버스 어댑터를 갖는 호스트 시스템 또는 서버 노드)로 반환하도록 마련된 경우 호스트 판독 요청의 프로세싱에 응답한 것일 수 있다. 제 1 SAS 장치와의 이러한 제 2 가상 접속은 제 1 SAS 장치로 데이터를 반환하는데 사용되기 때문에, 이 제 2 가상 접속을 통한 제 1 장치로부터 제 3 장치로의 데이터 프레임의 전송은 바람직하게 배제된다. 수립된 단방향 가상 접속 모두를 사용하는 경우, 요소(304)는 제 1 및 제 2 가상 접속 모두에서 전송이 실질적으로 중첩되도록 양 가상 접속을 운영할 수 있다. 다시 말해, 제 1 가상 접속은 제 1 SAS 장치로부터 제 2 SAS 장치로 정보를 전송하는데 보다 완전히 사용될 수 있는 한편, 제 2 가상 접속은 임의의 제 3 SAS 장치가 정보를 다시 제 1 SAS 장치로 전송하려 하고 또한 전송할 수 있도록 이용가능한 채로 유지된다. 3 is a flow diagram schematically illustrating an exemplary method in accordance with the features and aspects of the present invention operable in an improved SAS domain system in accordance with the features and aspects of the present invention. As described above, features and aspects of the present invention allow a SAS domain to establish a dual, unidirectional virtual connection between the first SAS device and the second and third SAS devices. Thus, element 300 of FIG. 3 is first operable to establish a first virtual connection between a first SAS device and a second SAS device. For example, the first SAS device may be a host system or server with a suitable host bus adapter, and the second SAS device may be a storage device such as a disk drive or other similar storage device. This first virtual connection is used to transfer a SAS data frame from the first SAS device to the second SAS device. Such data transfer may be, for example, in response to processing of a host system or server write request to send information to a storage device. This first virtual connection is preferably established in a manner that prevents data frames from being transmitted in the reverse direction, ie from the second SAS device to the first SAS device. Thus, additional bandwidth will be available to other storage devices that are currently preparing and waiting to send data frames to the first SAS device. Element 302 is operable to establish a second virtual connection between the first SAS device and the third SAS device. This second virtual connection is generally used to transfer data frames from the third SAS device back to the first SAS device. Such a transfer may, for example, cause a third device (e.g., a storage device) to ultimately return the requested data to the first SAS device (e.g., a host system or server node with an appropriate SAS host bus adapter). If so, it may be in response to processing of a host read request. Since this second virtual connection with the first SAS device is used to return data to the first SAS device, the transmission of data frames from the first device to the third device over this second virtual connection is preferably excluded. . When using both established one-way virtual connections, element 304 may operate both virtual connections such that transmissions substantially overlap in both the first and second virtual connections. In other words, the first virtual connection can be used more fully to transfer information from the first SAS device to the second SAS device, while the second virtual connection allows any third SAS device to send information back to the first SAS device. And remain available for transmission.

당업자라면, 요소(300 내지 304)의 상세한 구현 내의 다양한 단계 모두는 양 가상 접속의 수립 이후에 데이터가 전송될 뿐만 아니라 중첩될 수 있다. 다시 말해, 제 1 가상 접속이 수립될 수 있고 제 2 가상 접속을 수립해야 한다(예를 들어, 제 3 SAS 장치가 제 1 SAS 장치로 정보를 다시 전송하려 하고 또한 전송할 수 있는 경우)는 필요성이 발생하기 전에 전송을 시작한다. 따라서, 제 2 SAS 가상 접속의 수립은 이미 수립된 제 1 가상 접속의 데이터 프레임 전송을 중첩할 수 있고/있거나 제 1 가상 접속을 수립하기 위한 보다 낮은 레벨의 동작을 중첩할 수 있다. 유사한 방식으로, 제 1 가상 접속은 아직 수립되지 않을 수도 있고 또는 완성될 수 있으며 폐쇄될 수 있는 한편, 제 2 가상 접속은 동작 상태를 유지한다. 따라서, 제 1 가상 접속은 이전에 수립된 제 2 가상 접속의 진행중인 동작과 실질적으로 중첩되면서 수립될 수 있다. 다시 말해, 제 1 접속 및 제 2 접속의 수립에 있어서 특정 순서 또는 시퀀스가 필요한 것은 아니다. 이들 접속은 적용가능한 SAS 도메인에서 데이터 전송의 특정 필요에 따라 본질적으로 임의의 유용한 시퀀스로 수립 및 이용될 수 있다.Those skilled in the art, all of the various steps in the detailed implementation of elements 300-304 may overlap as well as the data being transmitted after the establishment of both virtual connections. In other words, there is a need for a first virtual connection to be established and a second virtual connection to be established (e.g., when a third SAS device attempts to send information back to the first SAS device and can also transmit). Start transmission before it occurs. Thus, establishment of the second SAS virtual connection may overlap the data frame transmission of the already established first virtual connection and / or overlap the lower level of operation for establishing the first virtual connection. In a similar manner, the first virtual connection may not be established yet or may be completed and closed, while the second virtual connection remains operational. Thus, the first virtual connection can be established while substantially overlapping the ongoing operation of the previously established second virtual connection. In other words, no particular order or sequence is necessary to establish the first connection and the second connection. These connections may be established and used in essence in any useful sequence, depending on the specific needs of data transmission in the applicable SAS domain.

당업자라면, 본 발명의 특징 및 측면에 따른 완전히 기능가능한 방법에 포함될 수 있는 다수의 등가 및 추가적인 방법 단계를 인지할 수 있을 것이다. 이러한 부가적인 세부 단계들은 본 설명의 간단 명료성을 위해 도 3에는 생략되어 있다. 더 나아가, 당업자라면, 도 3의 방법은 본 발명의 특징 및 측면에 따라 시스템을 동작시키는 넓은 범위의 측면을 나타냄을 알 수 있을 것이다. 도 3의 측면에 대한 소정의 상세한 프로세싱은 개선된 SAS 장치에서 배타적으로, 개선된 SAS 신장기 내에서 배타적으로 사용될 수도 있고, 또는 SAS 도메인의 개선된 신장기와 개선된 SAS 장치 모두를 통해 분배될 수 있다.Those skilled in the art will recognize many equivalent and additional method steps that may be included in a fully functional method in accordance with the features and aspects of the present invention. These additional details are omitted in FIG. 3 for simplicity and clarity of the present description. Furthermore, those skilled in the art will recognize that the method of FIG. 3 represents a wide range of aspects of operating the system in accordance with the features and aspects of the present invention. Certain detailed processing for aspects of FIG. 3 may be used exclusively in the improved SAS device, exclusively in the improved SAS device, or distributed through both the improved device and the improved device of the SAS domain. .

더 나아가, 당업자라면, SAS 장치, SAS 신장기, 전체로서의 SAS 도메인, 또는 개선된 모드의 동작에서 결합된 하나 이상의 장치에 의한 요청된 소정의 프로토 콜 교환의 소정의 조건은 장치들 사이에서 조정된 완료 요청 또는 표시 전에 개선된 접속의 종료를 요구할 수 있다. 예를 들어, 이러한 개선된 접속에 현재 포함된 장치가 STP SAS 프로토콜 교환의 오프닝을 요구하는 경우, 이 개선된 접속은 그 동작에 간섭할 수 있다. 따라서, 개선된 접속은 이 개선된 접속에 포함된 임의의 장치 또는 신장기 내에서 상기와 같은 조건이 검출되면 폐쇄 또는 종료될 수 있다.Furthermore, those skilled in the art will appreciate that certain conditions of the requested predetermined protocol exchange by one or more devices combined in a SAS device, SAS extender, SAS domain as a whole, or in an enhanced mode of operation may be adjusted to be completed between the devices. It may require termination of the improved connection before the request or indication. For example, if a device currently included in such an improved connection requires an opening of an STP SAS protocol exchange, this improved connection may interfere with its operation. Thus, the improved connection may be closed or terminated if such conditions are detected in any device or expander included in the improved connection.

따라서, 도 3은 이러한 프로세싱이 수행되는 것과 무관하게 본 발명의 특징 및 측면에 따른 예시적인 광범위한 방법을 표현하려 한다. 위에서 언급한 바와 같이, 예시적인 실시예에서 도 3의 방법의 프로세싱은 바람직하게는 자신의 링크 상에서 개선된 모드의 동작을 개선된 SAS 신장기의 포트에 요청하는 개선된 SAS 장치 사이에서 분배된다. 개선된 SAS 신장기와 개선된 SAS 장치는 협동하여 도 3의 방법을 수행함으로써 수립된 접속의 가용 대역폭을 보다 잘 이용할 수 있다.Thus, FIG. 3 attempts to represent an exemplary wide variety of methods in accordance with aspects and aspects of the present invention regardless of whether such processing is performed. As mentioned above, in the exemplary embodiment the processing of the method of FIG. 3 is preferably distributed between the enhanced SAS devices requesting the ports of the improved SAS extender for improved mode operation on their links. The improved SAS extender and the improved SAS device can work together to better utilize the available bandwidth of the established connection by performing the method of FIG. 3.

도 4는 세 개의 SAS 장치 사이에서 다수의 단방향 가상 접속을 수립하는 본 발명의 특징 및 측면에 따른 예시적인 방법을 나타내는 흐름도이다. 요소(400)는 먼저 제 1 SAS 장치와 SAS 신장기 사이에 개선된 모드의 동작을 수립하도록 동작가능하다. 위에서 언급한 바와 같이, 본 발명의 특징 및 측면에 대한 예시적인 실시예에서, 도 4의 방법의 프로세싱에 포함된 단계들은 개선된 제 1 SAS 장치와 이 제 1 장치가 결합되는 개선된 SAS 신장기 사이에서 협조적으로 분배될 수 있다. 본 발명의 개선된 특징 및 측면은 기존의 표준 SAS 장치(예를 들어, "레거시" 장치)와 호환성을 유지한 채로 구현되는 것이 바람직하다. 따라서, 본 발명의 개선된 특징 및 측면은 바람직하게는 개선된 SAS 장치가 결합되는 개선된 SAS 신장기가 이 개선 된 SAS 장치와 관련하여 개선된 동작 모드를 입력하도록 상기 개선된 SAS 장치가 요청함으로써 인에이블링될 수 있다. 4 is a flow diagram illustrating an exemplary method in accordance with aspects and aspects of the present invention for establishing multiple one-way virtual connections between three SAS devices. Element 400 is first operable to establish an improved mode of operation between the first SAS device and the SAS extender. As mentioned above, in an exemplary embodiment of the features and aspects of the present invention, the steps involved in the processing of the method of FIG. 4 are performed between the improved first SAS device and the improved SAS extender to which the first device is coupled. Can be distributed cooperatively. The improved features and aspects of the invention are preferably implemented while maintaining compatibility with existing standard SAS devices (eg, "legacy" devices). Thus, the improved features and aspects of the present invention are advantageously provided by the enhanced SAS device requesting that the improved SAS extender, to which the improved SAS device is coupled, enters an improved mode of operation in connection with this improved SAS device. May be enabled.

개선된 모드를 인에이블링하기 위해 제 1 장치와 신장기 사이에서는 새로운 트랜잭션 메시지 및 응답이 교환될 수 있다. 신장기가 긍정적으로 응답하는 경우, 아래의 개선된 모드 프로세싱이 개시될 수 있다. 신장기가 개선된 모드 프로세싱을 처리하지 못하는 경우(예를 들어, 레거시 신장기인 경우), 이 신장기는 새로운 명령 또는 메시지를 거절할 것이고 도 3 및 도 4의 개선된 방법보다는 표준의 호환가능한 SAS 프로토콜이 사용될 것이다. 이와 달리, 개선된 모드는 현존하는 SAS 트랜잭션에 대한 특별한 벤더 고유 파라미터에 의해 요청될 수 있다. 유사한 방식으로, 신장기가 이러한 개선된 모드를 처리할 수 있는 경우, 이 신장기는 소정의 방식으로 요청에 대해 긍정적으로 응답하여 개선된 모드 동작을 개시할 것이다. SAS 장치와 SAS 신장기 사이에서 이러한 새로운 메시지 또는 트랜잭션의 상세한 구조 및 필드는 당업자에게는 분명 디자인 선택의 문제일 것이다.New transaction messages and responses may be exchanged between the first device and the extender to enable the enhanced mode. If the expander responds positively, the following improved mode processing can be initiated. If the expander fails to handle the enhanced mode processing (e.g., a legacy expander), the expander will reject the new command or message and a standard compatible SAS protocol rather than the improved method of FIGS. Will be used. Alternatively, the enhanced mode can be requested by special vendor specific parameters for existing SAS transactions. In a similar manner, if the expander can handle this improved mode, the expander will initiate the improved mode operation in a positive manner in response to the request. The detailed structure and fields of these new messages or transactions between the SAS device and the SAS extender will certainly be a matter of design choice for those skilled in the art.

이와 같이 인에이블링된 개선된 모드에 있어서, 요소(402 내지 404)의 프로세싱은 요소(420 내지 434)의 반복적인 프로세싱과 실질적으로 중첩되면서 반복될 수 있다. 일반적으로, 요소(402 내지 410)는 개선된 제 1 SAS 장치와 제 2 SAS 장치 사이에 제 1 가상 접속을 수립하여 이용하도록 동작할 수 있다. 제 1 SAS 장치는 바람직하게는 요소(400)의 동작에 의해 인에이블링되는 개선된 동작을 위해 인에이블링된 SAS 신장기의 포트에 결합된다. 제 2 SAS 장치는 SAS 신장기의 임의의 다른 포트에 결합될 수 있고 또는 제 1 장치가 결합되는 SAS 신장기를 통해 도달가 능한 SAS 도메인 내의 임의의 곳에 결합될 수 있다.In this enabled enhanced mode, the processing of elements 402-404 can be repeated while substantially overlapping with the iterative processing of elements 420-434. In general, elements 402-410 may be operable to establish and use a first virtual connection between an improved first SAS device and a second SAS device. The first SAS device is preferably coupled to a port of the enabled SAS extender for improved operation that is enabled by the operation of element 400. The second SAS device may be coupled to any other port of the SAS extender or may be coupled anywhere within the SAS domain reachable through the SAS extender to which the first device is coupled.

요소(402)는 제 1 가상 접속을 수립하기 위한 요건을 애기한다. 이러한 요건은 본 발명의 특징 및 측면에 따라 개선된 제 1 SAS 장치가 제 2 SAS 장치로 정보를 전송할 필요가 있는 경우에 발생한다. 특히, 제 1 SAS 장치가 데이터 프레임을 제 2 SAS 장치로 전송할 필요가 있지만, 제 2 장치는 정보를 제 1 SAS 장치로 다시 전송하지 않을 수도 있다. 이러한 필요성이 발생하는 경우, 요소(404)는 제 1 SAS 장치와 제 2 SAS 장치 사이에 제 1 가상 접속을 수립하여 데이터 프레임이 제 1 장치로부터 제 2 장치로 전송될 수 있도록 한다. 위에서 언급한 바와 같이, 이러한 전송의 예는 SAS 호스트 버스 어댑터 장치를 포함하는 호스트 시스템 또는 서버 노드 상에서의 I/O 기록 요청의 프로세싱에 응답한 것일 수도 있고, 또는 예를 들어 I/O 판독 요청에 대한 응답으로서 요청된 데이터를 SAS 저장 장치로부터 요청한 호스트 시스템으로 반환하는 것에 응답한 것일 수 있다. 이러한 접속의 수립은 예를 들어 오픈 프레임 어드레스 원형 및 그에 대한 응답으로서의 연관된 오픈 수용 및/또는 오픈 거절 원형을 포함하는 잘 알려져 있는 SAS 원형을 이용한다. 그러나, 위에서 언급한 바와 같이, 이러한 단방향의 제 1 가상 접속은 제 1 장치로부터 제 2 장치로의 데이터 전송에만 국한된다. 따라서, 요소(406)는 다음으로 CREDIT BLOCKED 원형을 제 2 SAS 장치로 즉각 전송하여 제 1 SAS 장치가 제 2 SAS 장치로부터 반환된 임의의 데이터 프레임 전송을 수용하지 않을 것이라는 것을 나타낸다. 이러한 CREDIT BLOCKED 원형 및 그와 연관된 프로토콜의 사용은 SAS 사양에 기술되어 있는 바와 같이 당업자에게는 잘 알려져 있다. 다음으로, 요소(408) 는 수립된 제 1 가상 접속을 이용하여 제 1 SAS 장치로부터 제 2 SAS 장치로의 제 1 가상 접속 상에서 데이터 프레임을 전송하도록 동작가능하다. 이러한 데이터 전송은 제 2 SAS 장치에 의해 제공되는 수신 크레딧 핸드쉐이크 정보를 이용하는 표준 SAS 사용 및 프로토콜에 따라 수행된다. 요소(408)가 제 2 장치로 전송될 모든 데이터 프레임의 전송을 완료한 경우, 표준 SAS 프로토콜에 따라 요소(410)의 동작에 의해 제 1 가상 접속은 폐쇄될 것이다. 프로세싱은 다음으로 요소(402)로 되돌아가 동일한 제 1 SAS 장치로부터의 또 다른 제 1 가상 접속을 수립하는 요건을 대기한다.Element 402 describes the requirements for establishing a first virtual connection. This requirement arises when an improved first SAS device in accordance with features and aspects of the present invention needs to transmit information to a second SAS device. In particular, although the first SAS device needs to send a data frame to the second SAS device, the second device may not send information back to the first SAS device. If this need arises, element 404 establishes a first virtual connection between the first SAS device and the second SAS device so that data frames can be transmitted from the first device to the second device. As mentioned above, an example of such a transmission may be in response to the processing of an I / O write request on a host system or server node comprising a SAS host bus adapter device, or, for example, in response to an I / O read request. In response to returning the requested data from the SAS storage device to the requesting host system. The establishment of such a connection uses well known SAS prototypes, including, for example, open frame address prototypes and associated open accept and / or open reject prototypes in response thereto. However, as mentioned above, this unidirectional first virtual connection is limited to data transmission from the first device to the second device. Thus, element 406 next immediately sends a CREDIT BLOCKED prototype to the second SAS device to indicate that the first SAS device will not accept any data frame transfer returned from the second SAS device. The use of such CREDIT BLOCKED prototypes and their associated protocols is well known to those skilled in the art as described in the SAS specification. Next, element 408 is operable to transmit a data frame on the first virtual connection from the first SAS device to the second SAS device using the established first virtual connection. This data transmission is performed in accordance with standard SAS usage and protocol using the received credit handshake information provided by the second SAS device. When element 408 has completed the transmission of all data frames to be transmitted to the second device, the first virtual connection will be closed by operation of element 410 according to standard SAS protocol. Processing then returns to element 402 to wait for the requirement to establish another first virtual connection from the same first SAS device.

위에서 언급한 바와 같이, 요소(420 내지 434)는 요소(402 내지 410)와 실질적으로 동시에 동작가능하다. 요소(420 내지 434)는 일반적으로 제 3 SAS 장치로부터 제 1 가상 접속의 동일한 제 1 SAS 장치로 정보를 전송하는데 사용되는 제 2의 단방향 가상 접속을 수립 및 활용하도록 동작가능하다. 이러한 동작은 예를 들어 호스트 판독 요청에 응답하여 수행될 수 있으며 어드레싱된 저장 장치(예를 들어, 제 3 SAS 장치)는 요청된 데이터를 반환하도록 준비하는 중에 지연된다. 이러한 지연은 예를 들어 회전하는 디스크 드라이브 저장 장치에서 일반적이다. 따라서, 요소(420)는 먼저 이러한 제 2 가상 접속을 수립할 필요성을 대기하도록 동작가능하다. 이러한 제 2 가상 접속은 소정의 제 3 SAS 장치가 (예를 들어, 요청된 판독 데이터를 반환하기 위해) 제 1 SAS 장치와의 접속의 수립을 요청하는 경우에 요구되는 것으로 간주된다. 이러한 요구가 검출되는 경우, 요소(422)는 다음으로 제 1 장치와 제 3 SAS 장치 사이에 제 2 가상 접속을 수립하도록 동작하능하여 데 이터 프레임이 제 3 장치로부터 다시 제 1 SAS 장치로 전송되도록 한다. 요소(404)와 관련하여 위에서 언급한 바와 같이, 이러한 단방향 제 2 가상 접속은 데이터 프레임이 제 3 장치로부터 제 1 장치로만 전송되도록 한다. 따라서, 제 1 장치는 제 3 SAS 장치로부터 수신된 수신 크레딧 정보를 무시하고/하거나 간단히 (이 제 2 가상 접속의 단방향의 반대 방향으로) 제 1 장치로부터 제 3 장치로 전송하는 것을 시도하지 않을 것이다. 요소(424 내지 432)는 제 3 장치로부터 다시 제 1 장치로 전송될 모든 프레임을 수신하도록 반복적으로 동작가능하다. 구체적으로, 요소(424)는 제 2 가상 접속을 통해 제 3 SAS 장치로부터 다시 제 1 SAS 장치로 전송된 하나 이상의 프레임을 수신한다. 요소(426)는 수신 크레딧 및 대응하는 PRDY 원형을 통한 전송 흐름을 관리하는 표준 SAS 사양 및 프로토콜 프로세싱을 나타낸다. 요소(428)는 제 3 SAS 장치 상의 프레임의 수신과 연관된 임의의 수신 크레딧 정보를 무시하는 제 1 SAS 장치 내에서 이루어지는 전술한 프로세싱을 나타낸다. 이러한 제 3 SAS 장치 상에서의 수신은 제 1 SAS 장치로부터 제 3 SAS 장치로의 단방향 동작을 위한 이 제 2 가상 접속과는 무관한다. 다른 SAS 장치는 (예를 들어, 요청하는 제 1 SAS 장치로 데이터를 반환할 준비가 되어 있는 경우) 제 1 SAS 장치에 대한 그들 자신의 접속을 비동기식으로 시도할 수 있다. 이러한 추가적인 접속 요청은 이 제 2 가상 접속이 폐쇄될 때까지 거절될 수 있다. 따라서, 요소(430)는 현재 제 1 SAS 장치와 통신이 필요한 경우 다른 SAS 장치로부터의 후속하는 임의의 접속 요청을 무시 또는 거절하는 프로세싱을 나타낸다. 요소(432)는 제 3 SAS 장치로부터 추가적인 수신 프레임이 예상되는지 여부를 결정한다. 그러한 경우, 프 로세싱은 요소(424)로 다시 되돌아가 계속된다. 그렇지 않으면, 요소(434)는 다음으로 제 2 가상 접속을 폐쇄하고 요소(422)로 되돌아가 동일한 또는 다른 SAS 장치 및 제 1 SAS 장치와의 접속을 다시 수립할 필요성을 대기한다. 특히, 요소(430)의 동작에 의해 오픈 요청을 거절 또는 무시당한 장치는 이러한 접속을 수립하는 것을 다시 시도할 수 있고 다시 한번 요소(420 내지 434)의 프로세싱을 재개하여 새로운 제 2 가상 접속을 수립한다.As mentioned above, elements 420-434 are operable substantially simultaneously with elements 402-410. Elements 420-434 are generally operable to establish and utilize a second one-way virtual connection used to transfer information from a third SAS device to the same first SAS device of the first virtual connection. This operation may be performed in response to, for example, a host read request and the addressed storage device (eg, a third SAS device) is delayed in preparing to return the requested data. This delay is common in rotating disk drive storage, for example. Thus, element 420 is operable to wait for the need to establish this second virtual connection first. This second virtual connection is considered to be required when a given third SAS device requests establishment of a connection with the first SAS device (eg, to return the requested read data). If such a request is detected, element 422 is then operable to establish a second virtual connection between the first device and the third SAS device such that the data frame is transmitted from the third device back to the first SAS device. do. As mentioned above with respect to element 404, this unidirectional second virtual connection allows the data frame to be sent only from the third device to the first device. Thus, the first device will ignore the received credit information received from the third SAS device and / or simply will not attempt to transmit from the first device to the third device (in the opposite direction of this second virtual connection). . Elements 424-432 are repetitively operable to receive all frames to be sent from the third device back to the first device. Specifically, element 424 receives one or more frames sent from the third SAS device back to the first SAS device over the second virtual connection. Element 426 represents standard SAS specification and protocol processing to manage the transmission credits through the received credits and corresponding PRDY prototypes. Element 428 represents the processing described above within the first SAS device that ignores any received credit information associated with the receipt of a frame on the third SAS device. Reception on this third SAS device is independent of this second virtual connection for unidirectional operation from the first SAS device to the third SAS device. Other SAS devices may asynchronously attempt their own connection to the first SAS device (eg, when it is ready to return data to the requesting first SAS device). This additional connection request may be rejected until this second virtual connection is closed. Thus, element 430 represents processing to ignore or reject any subsequent connection request from another SAS device when communication with the first SAS device is currently needed. Element 432 determines whether additional receive frames from the third SAS device are expected. In such case, processing continues back to element 424. Otherwise, element 434 next closes the second virtual connection and returns to element 422 waiting for the need to reestablish a connection with the same or another SAS device and the first SAS device. In particular, a device rejected or ignored by the operation of element 430 may retry to establish this connection and once again resume processing of elements 420-434 to establish a new second virtual connection. do.

당업자라면, 도 4의 방법에 따라 동작하는 완전한 기능의 시스템에 사용될 수 있는 다양한 등가의 및 추가의 방법 단계를 인식할 수 있을 것이다. 특히, 요소(400)는 본 발명의 특징 및 측면에 따라 개선된 제 1 SAS 장치와 개선된 SAS 신장기 사이에 개선된 접속 모드를 수립하는 프로세싱을 나타내는 것으로 위에서 설명되었다. 개선된 동작 모드는 또한 개선된 제 1 장치가 개선된 동작 모드를 중단하라는 적절한 명령을 전송하는 경우 어느 때라도 중단될 수 있다. 이러한 개선된 동작 모드를 수립하고 중단하는 것과 연관된 특정 명령 또는 원형은 당업자에게는 분명 디자인 선택의 문제일 것이다.Those skilled in the art will recognize various equivalent and additional method steps that may be used in a fully functional system operating in accordance with the method of FIG. In particular, element 400 has been described above as representing processing to establish an improved connection mode between an improved first SAS device and an improved SAS extender in accordance with features and aspects of the present invention. The improved mode of operation may also be interrupted at any time if the improved first device sends an appropriate command to abort the enhanced mode of operation. The specific commands or prototypes associated with establishing and interrupting this improved mode of operation will obviously be a matter of design choice for those skilled in the art.

더 나아가, 위에서 설명한 바와 같이, 당업자라면, 도 4의 방법이 개선된 SAS 장치 내에서만 수행되거나, 개선된 SAS 신장기 내에서만 수행되거나, 또는 보다 바람직하게는 개선된 SAS 장치와 이 장치가 결하되는 개선된 SAS 신장기 사이에서 협조적으로 수행될 수 있음을 알 수 있을 것이다. 더 나아가, 도 4의 방법을 구현하기 위한 특정한, 조합적인 및/또는 순차적인 로직 및 상태 머신 변경은 본 명세서에서 정의된 SAS 사양 및 상태 머신에 친숙한 당업자에게는 쉽게 이해될 것이다.Furthermore, as described above, those skilled in the art will appreciate that the method of FIG. 4 is performed only in an improved SAS device, only in an improved SAS extender, or more preferably in an improved SAS device and in which the device lacks. It will be appreciated that this can be done cooperatively between SAS stretchers. Furthermore, certain, combinatorial and / or sequential logic and state machine changes to implement the method of FIG. 4 will be readily understood by those skilled in the art familiar with the SAS specification and state machine defined herein.

도 5는 본 발명의 특징 및 측면에 따른 다수의 SAS 장치와 하나의 SAS 신장기 사이에서 이루어지는 SAS 트랜잭션의 예시적인 교환을 나타낸다. 도 5에서, 시간은 도면에서 아래쪽으로 진행한다. 일련의 방향성 수평 화살표 각각은 제 1 SAS 구성요소로부터 수신 SAS 구성요소로 전달되는 SAS 메시지/원형 교환을 나타낸다. 화살표의 시작은 대응하는 메시지를 전송하는 SAS 구성요소를 나타내는 수직 라인과 연관되고, 방향성 화살표의 화살 끝부분은 전달되는 메시지의 수신 구성요소에 대응하는 수직 라인에서 종료된다. 도 5에 예시되어 있는 메시지 교환은 도면의 좌측으로부터 제 1 수직 라인에 의해 표현되는 제 1 SAS 장치(예를 들어, SAS 개시자 또는 타겟 장치)와, 좌측으로부터 제 2 수직 라인에 의해 표현되는 SAS 신장기와, 동일한 SAS 신장기의 대응하는 포트에 모두 결합되고 각각이 예를 들어 SAS 장치(예를 들어, 저장 서브시스템 내의 저장 장치와 같은 타겟 장치 또는 다른 개시자/호스트 장치)를 타나내는 제 2, 제 3 및 제 4 SAS 장치를 구비한 SAS 도메인 내의에서 교환을 나타낸다. 5 illustrates an exemplary exchange of SAS transactions between multiple SAS devices and one SAS extender in accordance with aspects and aspects of the present invention. In FIG. 5, time proceeds downward in the figure. Each series of directional horizontal arrows represents a SAS message / circular exchange from the first SAS component to the receiving SAS component. The start of the arrow is associated with the vertical line representing the SAS component sending the corresponding message, and the arrow end of the directional arrow ends at the vertical line corresponding to the receiving component of the message being delivered. The message exchange illustrated in FIG. 5 includes a first SAS device (eg, a SAS initiator or target device) represented by a first vertical line from the left side of the figure, and a SAS represented by a second vertical line from the left side. A second, both coupled to the expander and corresponding ports of the same SAS expander, each representing a SAS device (e.g., a target device such as a storage device within a storage subsystem or another initiator / host device); Represents an exchange within a SAS domain with third and fourth SAS devices.

화살표(501)는 제 1 SAS 장치(DEV1)로부터 SAS 신장기(EXP)로의 전송을 나타내는데, 이 전송은 제 1 SAS 장치와 SAS 신장기가 본 발명의 특징 및 측면에 따라 개선된 동작을 허용하도록 협조할 것을 요청한다. 특정 SAS 트랜잭션(즉, 제 1 SAS 장치로부터 SAS 신장기로 전달될 메시지)은 디자인 선택의 문제로서 임의의 유용한 메시지일 수 있다. 화살표(501)에 대응하는 메시지에 응답하여, 화살표(502)는 개선된 동작 모드 요청의 수락을 나타내는 SAS 신장기로부터 제 1 SAS 장치로의 응답을 나타낼 수 있다. SAS 신장기가 개선된 동작 모드를 지원하지 않는 레거시 장치인 경우, 이러한 개선된 동작은 이 특정 SAS 도메인에서는 (이 특정 SAS 신장기를 통해서는) 허용되지 않음을 제 1 SAS 장치에게 알리는 적절한 거절 메시지가 제 1 SAS 장치로 반환될 수 있다.Arrow 501 represents the transfer from the first SAS device DEV1 to the SAS expander EXP, which transmission may cooperate to allow improved operation in accordance with the features and aspects of the present invention. To ask. The particular SAS transaction (ie, the message to be delivered from the first SAS device to the SAS expander) can be any useful message as a matter of design choice. In response to the message corresponding to arrow 501, arrow 502 may indicate a response from the SAS expander to the first SAS device indicating acceptance of the enhanced mode of operation request. If the SAS expander is a legacy device that does not support the enhanced mode of operation, then this enhanced behavior is accompanied by an appropriate rejection message informing the first SAS device that this particular SAS domain is not allowed (through this particular SAS expander). 1 Can be returned to the SAS device.

제 1 SAS 장치와 SAS 신장기 사이에 강화된 동작 모드가 수립된 경우, 화살표(503)는 제 1 SAS 장치로부터 제 2 SAS 장치(DEV2)로 (중간 SAS 신장기를 거쳐) 전달되는 표준 오픈 접속 요청을 나타낸다. 이 오픈 접속 요청은 특정 접속에 대해 오픈 어드레스 프레임 요청을 이용하는 표준 SAS 요청이고 그 접속에 대한 소정의 파라미터를 설정한다. 제 1 단방향 가상 접속의 수락에 응답하여, 제 2 SAS 장치는 표준 RRDY 원형을 제 1 SAS 장치에 반환하여 제 1 장치로부터 전송될 데이터 프레임의 수신에 대해 이용가능한 크레딧을 나타낸다. 실제로, 다수의 이러한 RRDY 원형은 제 2 SAS 장치로부터 제 1 SAS 장치로 전송되어 수신 프레임을 저장하는데 이용가능한 버퍼의 개수를 나타낸다. 제 1 및 제 2 SAS 장치 사이에서의 메시지 흐름을 제어하는데 사용된 크레딧 프로토콜은 당업자에게는 잘 알려져 있다.If an enhanced mode of operation is established between the first SAS device and the SAS extender, arrow 503 indicates a standard open connection request that is passed (via the middle SAS extender) from the first SAS device to the second SAS device DEV2. Indicates. This open connection request is a standard SAS request that uses an open address frame request for a particular connection and sets certain parameters for that connection. In response to accepting the first unidirectional virtual connection, the second SAS device returns a standard RRDY prototype to the first SAS device to indicate the credit available for receipt of the data frame to be sent from the first device. In practice, many such RRDY prototypes represent the number of buffers transmitted from the second SAS device to the first SAS device and available for storing received frames. Credit protocols used to control the flow of messages between first and second SAS devices are well known to those skilled in the art.

본 발명의 특징 및 측면에 따르면, 제 1 SAS 장치와 제 2 SAS 장치 사이에서 수립된 접속은 이 개선된 모드에서는 단지 프레임을 제 1 SAS 장치로부터 제 2 SAS 장치로, 즉 제 1 단방향의 가상 접속을 통해 전송하는데 사용된다. 제 2 SAS 장치가 데이터 프레임 전송을 통해 정보를 제 1 SAS 장치로 반환하는 것을 시도하지 않도록 하기 위해, 제 1 SAS 장치는 바람직하게는 화살표(505)로 도시되어 있는 바와 같이 제 2 SAS 장치로 CREDIT BLOCKED 원형을 전송할 수 있다. CREDIT BLOCKED 원 형은 제 1 장치가 제 2 SAS 장치로부터 데이터 프레임을 수신하거나 또는 수신할 것으로 예상되지 않음을 나타내는데 사용되는 표준 SAS 원형이다.According to the features and aspects of the present invention, the connection established between the first SAS device and the second SAS device is in this improved mode only a frame from the first SAS device to the second SAS device, i.e. the first unidirectional virtual connection. Used to transmit via In order to prevent the second SAS device from attempting to return information to the first SAS device via a data frame transfer, the first SAS device is preferably CREDIT to the second SAS device as shown by arrow 505. You can send a BLOCKED prototype. The CREDIT BLOCKED circle is a standard SAS circle used to indicate that the first device receives or is not expected to receive a data frame from a second SAS device.

제 3 SAS 장치(DEV3)는 제 1 SAS 장치로 정보를 반환하도록 비동기식으로 구성될 수 있고 따라서 그에 대한 오픈 접속을 요청할 수 있다. 화살표(506)는 중간 SAS 신장기를 통해 제 3 SAS 장치로부터 제 1 SAS 장치로 전달되는 표준 SAS 오픈 접속 요청을 나타낸다. 개선된 동작 모드에 따르면, SAS 신장기는 오픈 요청이 제 1 SAS 장치 상으로 전달되도록 하여 반대 방향으로의, 즉 제 3 SAS 장치로부터 제 1 SAS 장치로의 데이터 전송을 위한 제 2의 단방향의 가상 접속의 수립을 허용할 것이다. 화살표(507)는 중간 SAS 신장기를 통해 제 1 SAS 장치로부터 제 3 SAS 장치로 반환된 표준 오픈 수락 원형을 나타낸다. 따라서, 제 1 SAS 장치와 제 3 SAS 장치 사이에 제 2 단방향 접속이 수립된다. 제 2 단방향 가상 접속은 데이터 프레임을 제 1 SAS 장치로 전송하는데 사용되는 한편, 위에서 수립된 제 1 가상 접속은 제 1 SAS 장치로부터 제 2 SAS 장치로 데이터 프레임을 전송하는데 사용된다.The third SAS device DEV3 may be configured asynchronously to return information to the first SAS device and thus request an open connection to it. Arrow 506 represents a standard SAS open connection request that is passed from the third SAS device to the first SAS device through an intermediate SAS extender. According to the improved mode of operation, the SAS expander allows open requests to be delivered on the first SAS device so that a second one-way virtual connection for data transfer in the opposite direction, i.e. from the third SAS device to the first SAS device. Will allow establishment of Arrow 507 represents the standard open accept circle returned from the first SAS device to the third SAS device via the intermediate SAS extender. Thus, a second unidirectional connection is established between the first SAS device and the third SAS device. The second unidirectional virtual connection is used to transmit the data frame to the first SAS device, while the first virtual connection established above is used to transmit the data frame from the first SAS device to the second SAS device.

제 1 장치와의 이중의 단방향 가상 접속을 수립함으로써, 제 1 SAS 장치를 SAS 신장기에 결합하는 SAS 포트/링크의 활용은 종래 기술에 비해 개선될 수 있다. 종래 기술은 두 개의 장치 사이에서 단일 로직 링크를 통한 완전한 복식 통신을 가능하게 하지만, 단일 디스크 드라이브 저장 장치, 또는 오픈 접속에서 결합된 개시자 및 타겟이 데이터 프레임을 양방향 모두로 동시에 전송해야 할 필요성을 있는 소정의 RAID 저장 시스템에 대한 SAS 접속에서는 상기 복식 통신은 드문 경우이다. 본 발명의 특징 및 측면에 따르면, 화살표(501 내지 507)로 표현되는 메시지에 의해 수립된 두 개의 단방향 가상 접속을 통해 제 1 장치는 제 2 SAS 장치로 프레임을 전송하면서 그와 동시에 제 3 장치로부터 데이터를 수신할 수 있다.By establishing a dual unidirectional virtual connection with the first device, the utilization of SAS ports / links that couple the first SAS device to the SAS extender can be improved over prior art. The prior art allows full duplex communication over a single logic link between two devices, but the need for a single disk drive storage device, or a combined initiator and target in an open connection, to simultaneously transmit data frames in both directions. In a SAS connection to a given RAID storage system, the double communication is rare. According to features and aspects of the present invention, through two unidirectional virtual connections established by the messages represented by arrows 501-507, the first device transmits frames to the second SAS device while at the same time from the third device. Data can be received.

제 2 단방향의 가상 접속의 수립에 응답하여, 제 1 SAS 장치는 제 3 장치로부터 전송되는 데이터 프레임의 수신에 이용가능한 크레딧을 나타내는 표준 RRDY 원형을 제 3 SAS 장치로 반환환다. 실제로, 다수의 이러한 RRDY 원형은 제 1 SAS 장치로부터 제 3 SAS 장치로 전송되어 수신된 프레임을 저장하는데 이용가능한 버퍼의 개수를 나타낸다. 제 1 및 제 3 SAS 장치 사이에서의 메시지 흐름을 제어하는데 사용된 크레딧 프로토콜은 당업자에게는 잘 알려져 있다. 본 발명의 개선된 특징 및 측면은 두 개의 단방향 가상 접속 각각에 대해 크레딧 관리 로직을 구별하지만, 그와 달리 당업자에게 잘 알려져 있는 SAS 사양에 기술되어 있는 바와 같이 크레딧 관리 프로토콜에 대해 본질적으로 동일한 상태 머신을 이용한다.In response to establishing the second unidirectional virtual connection, the first SAS device returns to the third SAS device a standard RRDY prototype that represents the credit available for receipt of the data frame transmitted from the third device. Indeed, many such RRDY prototypes represent the number of buffers available for storing frames received from the first SAS device to the third SAS device. Credit protocols used to control the flow of messages between first and third SAS devices are well known to those skilled in the art. The improved features and aspects of the present invention distinguish credit management logic for each of the two unidirectional virtual connections, but otherwise essentially the same state machine for the credit management protocol as described in the SAS specification, which is well known to those skilled in the art. Use

제 2 단방향의 가상 접속이 수립되는 동안의 임의의 시간에서, 또 다른 장치는 데이터를 다시 제 1 SAS 장치로 전송할 준비를 할 수 있다. 화살표(509)는 제 4 SAS 장치(DEV4)로부터 제 1 SAS 장치로 다시 전송되는 이러한 오픈 접속 요청을 나타낸다. SAS 신장기의 개선된 특징은 오픈 요청을 중간에 가로채고 제 2 가상 접속이 현재 수립되어 있음을 알려주는 오픈 거절 SAS 원형을 반환한다. 표준 SAS 프로토콜 프로세싱에 따르면, 제 4 SAS 장치는 요청이 수락되는 시간 또는 타임아웃 또는 재시도 총 횟수가 초과될 때까지 오픈 요청을 반복할 수 있다. 따라서, 화살표(511,512)는 제 4 SAS 장치와 제 1 SAS 장치 사이의 오픈 접속을 수립하기 위한 시도의 반복과, 현재 수립되어 있는 제 2 가상 접속에 기초한 제 2 거절을 나 타낸다. 당업자라면, 이러한 새로운 접속을 수립하기 위해 제 4 SAS 장치에 의해 시도되는 재시도의 구체적인 횟수와 그 시도와 연관된 타임아웃 값의 지속기간은 특정 SAS 도메인 및 애플케이션에 대한 디자인 선택의 문제임을 쉽게 알 수 있을 것이다. 또 다른 실시예에서, 오픈 접속 요청을 거절하기 보다는, 개선된 SAS 신장기는 현재의 가상 접속이 종료될 때까지 사실상 오픈 요청을 "중지( stall)"시키기 위해 AIP 원형을 제 4 장치로 반환할 수 있다. 이러한 AIP 원형은 SAS 프로토콜 내에 알려져 있으며 요청된 접속이 현재 사용중임을 나타낸다. 따라서, 공지된 SAS 프로토콜에 따르면, 제 4 장치는 현재의 가상 접속이 종료될 때까지 중지될 수 있다. 제 4 장치의 "중지된" 오픈 요청은 제 1 SAS 장치로 전송되어 또 다른 제 2 가상 접속을 수립할 수 있다.At any time while the second one-way virtual connection is being established, another device may be ready to send data back to the first SAS device. Arrow 509 represents this open connection request sent back from the fourth SAS device DEV4 to the first SAS device. An improved feature of the SAS extender intercepts open requests and returns an open reject SAS prototype indicating that a second virtual connection is currently established. According to standard SAS protocol processing, the fourth SAS device may repeat the open request until the time the request is accepted or the total number of timeouts or retries is exceeded. Accordingly, arrows 511 and 512 indicate repetition of attempts to establish an open connection between the fourth SAS device and the first SAS device, and a second rejection based on the currently established second virtual connection. Those skilled in the art will readily appreciate that the specific number of retries attempted by the fourth SAS device to establish this new connection and the duration of the timeout value associated with that attempt is a matter of design choice for a particular SAS domain and application. Could be. In another embodiment, rather than rejecting the open connection request, the enhanced SAS expander may return the AIP prototype to the fourth device to actually "stall" the open request until the current virtual connection is terminated. have. This AIP prototype is known within the SAS protocol and indicates that the requested connection is currently in use. Thus, according to the known SAS protocol, the fourth device can be suspended until the current virtual connection is terminated. The "stopped" open request of the fourth device may be sent to the first SAS device to establish another second virtual connection.

일괄적으로 참조번호(514)로 식별되는 관련있는 화살표의 그룹(514.1 내지 514.6)은 제 1 가상 접속 및 제 2 가상 접속을 통해 교환에 대해 실질적인 중첩을 나타낼 수 있다. 위에서 언급한 바와 같이, 제 1 가상 접속은 제 1 SAS 장치로부터 제 2 SAS 장치로 데이터 프레임을 전송하는데 사용되는 반면, 제 2 가상 접속은 제 3 SAS 장치로부터 동일한 제 1 SAS 장치로 데이터 프레임을 전송하는데 사용된다. 화살표(514.1)는 제 1 가상 접속을 사용하는 제 1 SAS 장치로부터 제 2 SAS 장치로의 하나 이상의 데이터 프레임 전송을 나타낸다. 그에 응답하여, 화살표(514.2)는 제 1 가상 접속을 사용하여 제 2 SAS 장치로부터 제 1 SAS 장치로 반환된 하나 이상의 RRDY 원형을 나타내는데 전송된 프레임은 제 2 SAS 장치 내에 버퍼링되고 궁극적으로는 소비된다. 화살표(514.3)는 제 2 가상 접속을 사용하는 제 3 SAS 장치로부터 제 1 SAS 장치로의 하나 이상의 데이터 프레임의 전송을 나타낸다. 화살표(514.4)는 제 1 가상 접속을 사용하는 제 2 장치로부터 제 1 SAS 장치로의 ACK 원형의 결과적인 반환을 나타낸다. 화살표(514.1 및514.6)는 제 2 가상 접속을 이용한 제 1 SAS 장치로부터 제 3 SAS 장치로의 RRDY 및 ACK 원형의 결과적인 반환을 나타낸다. 따라서, 도 5는 두 개의 오픈 가상 접속을 동시에 사용함으로써 세 개의 SAS 장치(SAS 장치 1, SAS 장치 2 및 SAS 장치 3) 사이에서 교환되는 메시지의 실질적으로 중첩을 나타낸다.Groups of related arrows 514.1 through 514.6, collectively identified by reference number 514, may indicate substantial overlap for the exchange via the first virtual connection and the second virtual connection. As mentioned above, the first virtual connection is used to transfer data frames from the first SAS device to the second SAS device, while the second virtual connection transfers data frames from the third SAS device to the same first SAS device. It is used to Arrow 514.1 indicates one or more data frame transfers from the first SAS device to the second SAS device using the first virtual connection. In response, arrow 514.2 represents one or more RRDY primitives returned from the second SAS device to the first SAS device using the first virtual connection, with the transmitted frame buffered and ultimately consumed in the second SAS device. . Arrow 514.3 represents the transmission of one or more data frames from the third SAS device to the first SAS device using the second virtual connection. Arrow 514.4 indicates the resulting return of the ACK prototype from the second device using the first virtual connection to the first SAS device. Arrows 514.1 and 514.6 indicate the resulting return of the RRDY and ACK prototypes from the first SAS device to the third SAS device using the second virtual connection. Thus, Figure 5 shows the substantial overlap of messages exchanged between three SAS devices (SAS device 1, SAS device 2 and SAS device 3) by using two open virtual connections simultaneously.

참조번호(514)로 표현되는 메시지의 그룹은 양방향으로의 데이터 프레임의 전송(예를 들어, 514.1 및 514.3)과, 전송된 프레임의 수신에 응답한 RRDY 및 ACK 원형의 전송(예를 들어, 514.2, 514.4, 514.5 및 514.6) 등의 실질적인 중첩을 나타낸다. 당업자라면, 두 개의 가상 접속을 통해 교환되는 다양한 메시지는 완전히 아니라면 사실상 중첩될 수 있음을 쉽게 알 수 있을 것이다. 가상 접속들 중 임의의 단일 접속을 통해 교환되는 메시지는 SAS 프로토콜에 따른 적절한 순서 및 시퀀스로 교환될 수 있다. 다시 말해, 제 1 가상 접속(514.1)을 통한 프레임의 전송은 제 1 가상 접속을 사용하여 제 2 SAS 장치로부터 제 1 SAS 장치로 반환된 대응하는 RRDY 및 ACK 원형(514.2 및 514.4)에 반드시 선행할 필요가 있다. 유사한 방식으로, 제 2 가상 접속 상에서 제 3 SAS 장치로부터 제 1 SAS 장치로의 제 2 가상 접속 상에 전송된 데이터 프레임(514.3)은 제 2 가상 접속을 사용하여 제 1 SAS 장치로부터 제 3 SAS 장치로 반환된 대응 RRDY 및 ACK 원형(514.5 및 514.6)에 반드시 선행할 필요가 있다. 그러나, 제 1 가상 접속 상에서의 다양한 트랜잭션(514.1, 514.2 및 514.4)은 제 2 가상 접속 상의 트랜잭션(514.3, 514.5 및 514.6)과 실질적으로 중첩할 수 있다. The group of messages represented by reference number 514 includes the transmission of data frames in both directions (e.g., 514.1 and 514.3) and the transmission of RRDY and ACK prototypes (e.g., 514.2) in response to receiving the transmitted frames. , 514.4, 514.5, and 514.6). Those skilled in the art will readily appreciate that the various messages exchanged over the two virtual connections may actually overlap if not completely. Messages exchanged over any single connection of the virtual connections may be exchanged in the proper order and sequence according to the SAS protocol. In other words, transmission of the frame over the first virtual connection 514.1 must precede the corresponding RRDY and ACK primitives 514.2 and 514.4 returned from the second SAS device to the first SAS device using the first virtual connection. There is a need. In a similar manner, a data frame 514.3 sent on a second virtual connection from a third SAS device to a first SAS device on a second virtual connection is generated from the first SAS device to the third SAS device using the second virtual connection. Must necessarily precede the corresponding RRDY and ACK prototypes 514.5 and 514.6 returned by. However, the various transactions 514.1, 514.2 and 514.4 on the first virtual connection may substantially overlap with the transactions 514.3, 514.5 and 514.6 on the second virtual connection.

당업자라면, 다양한 장치 사이에서 교환될 수 있는 다양한 추가적인 또는 대안적인 SAS 메시지 및 트랜잭션을 쉽게 인지할 수 있을 것이다. 이러한 추가적인 메시지는 본 설명의 간단 명료성을 위해 도 5에는 생략되었다. 따라서, 도 5는 본 발명의 특징 및 측면에 따라 다양한 SAS 장치 사이에서 중첩될 수 있는 소정의 간단한 메시지 교환의 예시로서 여겨진다. 특히, 오픈, 수립된 가상 접속은 수립된 접속과 연관된 장치의 동작에 의해 폐쇄될 수 있다. 예를 들어, 제 2 가상 접속이 제 1 SAS 장치 또는 제 3 SAS 장치의 동작에 의해 폐쇄되는 경우, 또 다른 SAS 장치(예를 들어, 제 4 SAS 장치)는 제 4 장치로부터 제 1 장치로 데이터 프레임을 전송하기 위해 제 4 SAS 장치를 제 1 SAS 장치에 결합하는 제 2 가상 접속을 재수립할 수 있다. 더 나아가, 개선된 동작 모드를 종료하기 위해 제 1 SAS 장치와 SAS 신장기 사이에 추가적인 개선된 메시지가 교환될 수 있다. 개선된 동작 모드는 본 발명의 특징 및 측면에 따라 각각 개선된 제 1 SAS 장치 및/또는 SAS 신장기에 의해 결정된 임의의 수의 이유로 인해 종료될 수 있다. 그와 같이 개선된 동작 모드가 종료되는 경우, 도 5에서 제시된 모든 장치 간의 트랜잭션은 기존의 표준 SAS 프로토콜 및 사양에 따라 동작할 것이다.Those skilled in the art will readily recognize various additional or alternative SAS messages and transactions that may be exchanged between the various devices. Such additional messages have been omitted in FIG. 5 for the sake of simplicity of the present description. Thus, FIG. 5 is considered to be an illustration of some simple message exchanges that may overlap between various SAS devices in accordance with aspects and aspects of the present invention. In particular, an open, established virtual connection may be closed by the operation of the device associated with the established connection. For example, if the second virtual connection is closed by the operation of either the first SAS device or the third SAS device, another SAS device (eg, the fourth SAS device) may have data from the fourth device to the first device. A second virtual connection may be reestablished that couples the fourth SAS device to the first SAS device to transmit the frame. Furthermore, further improved messages may be exchanged between the first SAS device and the SAS expander to terminate the improved mode of operation. The improved mode of operation may be terminated for any number of reasons determined by the first SAS device and / or SAS expander, respectively, in accordance with features and aspects of the present invention. If such an improved mode of operation ends, the transaction between all the devices presented in FIG. 5 will operate according to existing standard SAS protocols and specifications.

더 나아가, 당업자라면, 제 1 및 제 2 가상 접속을 수립함에 있어서 특정한 순서는 필요하지 않음을 쉽게 알 수 있을 것이다. 다시 말해, 제 1 가상 접속은 데이터 프레임을 제 1 SAS 장치로 반환하기를 희망하는 제 3 SAS 장치에 의해 수립 될 수 있다. 이러한 접속의 수립에 후속하여, 제 1 SAS 장치로부터 제 2 SAS 장치로 데이터 프레임을 전송하기 위해 제 1 및 제 2 SAS 장치 간에 제 2 가상 접속이 수립될 수 있다. Furthermore, those skilled in the art will readily appreciate that no specific order is required in establishing the first and second virtual connections. In other words, the first virtual connection may be established by a third SAS device wishing to return the data frame to the first SAS device. Subsequent to establishing this connection, a second virtual connection may be established between the first and second SAS devices to transmit data frames from the first SAS device to the second SAS device.

도 6은 제 1 장치와 다른 SAS 장치 각각 사이에 실질적으로 중첩되는 통신을 허용하기 위해 개선된 제 1 SAS 장치와 두 개의 다른 SAS 장치 사이에 접속을 제공하도록 본 발명의 특징 및 측면에 따라 개선된 SAS 신장기에 대한 예시적인 실시예를 나타낸다.6 is improved in accordance with features and aspects of the present invention to provide a connection between a first SAS device and two other SAS devices that are improved to allow substantially overlapping communication between each of the first device and the other SAS device. An exemplary embodiment for a SAS expander is shown.

도 6은 두 개의 표준 PHY 층(602,604)을 갖는 간략화된, 예시적인 개선된 SAS 신장기(104)에 대한 기능적인 요소를 나타낸다. 각각의 표준 PHY 층(602,604)은 각각 대응하는 부착된 SAS 장치와 SAS 정보를 수신 및 송신하는 수신 로직(621,623) 및 송신 로직(622,624)을 포함한다.6 illustrates the functional elements for a simplified, exemplary improved SAS expander 104 having two standard PHY layers 602, 604. Each standard PHY layer 602, 604 includes a corresponding attached SAS device and receive logic 621, 623 and transmit logic 622, 624 for receiving and transmitting SAS information, respectively.

개선된 SAS 신장기(104)는 개선된 SAS 장치(즉, 제 1 장치(미도시))에 결합하되는 개선된 포트/링크(600)를 포함한다. 개선된 포트/링크(600)는 부착된 개선된 제 1 SAS 장치에 대해 SAS 정보를 수신 및 송신하는 제각기의 수신 로직(616) 및 송신 로직(618)을 구비한 표준 PHY 층(612)을 포함한다. 개선된 포트/링크(600)는 또한 개선된 포트/링크(600)에 결합된 제 1 장치와 표준 PHY 층(602)에 결합된 제 2 SAS 장치 사이와, 표준 PHY 층(604)에 결합된 제 3 SAS 장치와 제 1 SAS 장치 사이의 동시적인 접속을 조정하는 인터리버(610) 및 역다중화기(614)를 포함한다. 개선된 SAS 신장기는 동시적인 가상 접속의 조정을 위한 RX 모니터 및 접속 제어 로직(640)과 크로바 스위치(650)를 포함한다.The improved SAS extender 104 includes an improved port / link 600 that is coupled to an improved SAS device (ie, a first device (not shown)). The enhanced port / link 600 includes a standard PHY layer 612 with respective receive logic 616 and transmit logic 618 that receive and transmit SAS information for the attached enhanced first SAS device. do. The enhanced port / link 600 is also coupled between the first device coupled to the enhanced port / link 600 and the second SAS device coupled to the standard PHY layer 602 and coupled to the standard PHY layer 604. An interleaver 610 and a demultiplexer 614 to coordinate simultaneous connections between the third SAS device and the first SAS device. The improved SAS extender includes an RX monitor and connection control logic 640 and a clover switch 650 for coordinating concurrent virtual connections.

개선된 모드의 동작이 사용되지 않지 않음(즉, 개선된 모드 명령 및/또는 가상 접속 요청이 이루어지 않음)을 제어 로직(640)이 검출한 경우, 제어 버스(630)에 인가되는 신호는 인터리버(610) 및 역다중화기(614)에 의한 개선된 프로세싱을 디스에이블링하며 또한 간단하게는 정상적인 동작, 즉, 두 개의 장치 사이에서의 완전한 복식의, 점대점 접속의 정상 동작용으로 크로스바 스위치(650)를 구성한다. 다시 말해, 개선된 SAS 신장기(104)는 임의의 표준 SAS 포트로서 사용되도록 개선된 포트/링크(600)를 구성할 수 있다.If the control logic 640 detects that the enhanced mode operation is not used (ie, no enhanced mode command and / or virtual connection request is made), then the signal applied to the control bus 630 is interleaved. 610 and the improved processing by the demultiplexer 614 and also simply disable the crossbar switch 650 for normal operation, that is, for normal operation of a complete double point-to-point connection between the two devices. ). In other words, the improved SAS extender 104 can configure the enhanced port / link 600 to be used as any standard SAS port.

개선된 모드 동작에서(즉, 개선된 모드 동작을 요청하는 명령 또는 지시 세트를 검출한 경우), 제어 로직(640)은 모든 세 개의 포트(616,621,623)의 수신 로직 상에서 교환된 SAS 지시 세트를 모니터링하고 제어 버스(630) 상에 제어 신호("A")를 인가하여 인터리버(610), 역다중화기(614) 및 크로스바 스위치(650)를 제어한다. 제어 로직(640)은 세 개의 포트들 중 임의의 포트로부터 수신된 지시 세트를 모니터링하여제 동시적인 1 및 제 2 가상 접속, 예를 들어 제 1 장치외 제 2 장치 사이의 제 1 가상 접속과 제 1 장치와 제 3 장치 사이의 제 2 가상 접속을 수립 및 종료하도록 크로스바 스위치(650)를 구성한다. 어떠한 장치도 다른 장치와의 가상 접속을 폐쇄 또는 종료할 수 있다. In enhanced mode operation (i.e., detecting a set of instructions or instructions requesting an enhanced mode operation), control logic 640 monitors the set of SAS instructions exchanged on the receive logic of all three ports 616, 621 and 623. A control signal "A" is applied to the control bus 630 to control the interleaver 610, the demultiplexer 614, and the crossbar switch 650. The control logic 640 monitors a set of instructions received from any of the three ports to monitor the first and second virtual connections, for example, between the first and second devices and the first and second virtual connections. The crossbar switch 650 is configured to establish and terminate a second virtual connection between the first device and the third device. Any device can close or terminate the virtual connection with another device.

제 1 및 제 2 가상 접속의 동작 동안(즉, 적어도 하나의 수립된 가상 접속을 갖는 개선된 모드에서), 제어 로직(640)은 하나의 장치로부터 대응하는 가상 접속의 적절한 다른 장치로 지시 세트를 전송함으로써 양 가상 접속의 동시 사용을 조정하는 개선된 포트(600)의 역다중화기(614) 및 인터리버(610)의 동작을 제어한다. 이러한 조정은 지시 세트가 가상 접속에서 손실되지 않도록 하고 중요한 지시 세트가 적절한 장치로 또한 필요에 따라 적절한 순서로 전달되도록 지시 세트의 버퍼링 및/또는 큐잉을 수반한다. During operation of the first and second virtual connections (ie in an improved mode with at least one established virtual connection), control logic 640 transfers the set of instructions from one device to the appropriate other device of the corresponding virtual connection. The transmission controls the operation of the demultiplexer 614 and the interleaver 610 of the enhanced port 600 to coordinate the simultaneous use of both virtual connections. This coordination involves the buffering and / or queuing of the instruction set such that the instruction set is not lost in the virtual connection and the important instruction set is delivered to the appropriate device and in the proper order as needed.

예를 들어, 제 1 가상 접속은 제 1 장치(개선된 포트(600)에 결합됨)와 제 2 장치(표준 PHY 로직(602)으로 결합됨) 사이에 수립되어 제 1 장치로부터 제 2 장치로의 데이터 전송을 수행하는 것으로 가정한다. 더 나아가, 예를 들어, 제 3 장치로부터 제 1 장치로의 데이터 전송을 위해 제 1 장치와 제 3 장치(표준 PHY 로직(604)에 결합됨) 사이의 제 2 가상 접속을 가정한다.For example, a first virtual connection is established between a first device (coupled to an improved port 600) and a second device (coupled to standard PHY logic 602) to connect from the first device to the second device. It is assumed that the data transmission of. Furthermore, assume a second virtual connection between the first device and the third device (coupled to standard PHY logic 604), for example, for data transfer from the third device to the first device.

이러한 예시적인 제 1 가상 접속에 있어서, 데이터 지시 세트 전송은 일반적으로 (개선된 포트(600) 상의) 제 1 장치로부터 (표준 PHY(602) 상의) 제 2장치로의 교환을 지배할 것이다. 이러한 데이터 지시 세트는 일반적으로 역다중화기(614) 및 스위치(650)와 경로(668,662)를 통해 개선된 포트(600)의 수신 로직(616)으로부터 표준 PHY(602)의 전송 로직(622)으로 전달될 것이다. 유사한 방식으로, 데이터 지시 세트 전송은 일반적으로 (표준 PHY(604) 상의) 제 3 장치로부터 (개선된 포트(600) 상의) 제 1 장치로의 교환을 지배할 것이다. 이러한 데이터 지시 세트는 일반적으로 스위치(650) 및 인터리버(610)를 거쳐 경로(666,664)를 통해 표준 PHY 층(604)의 수신 로직(623)으로부터 개선된 포트(600)의 전송 로직(618)으로 전달될 것이다. For this exemplary first virtual connection, the data indication set transmission will generally govern the exchange from the first device (on the improved port 600) to the second device (on the standard PHY 602). This set of data indications is generally passed from the receive logic 616 of the enhanced port 600 to the transmit logic 622 of the standard PHY 602 via the demultiplexer 614 and the switch 650 and the paths 668,662. Will be. In a similar manner, data indication set transmission will generally govern the exchange from a third device (on standard PHY 604) to a first device (on improved port 600). This set of data indications is generally via a switch 650 and an interleaver 610 via paths 666 and 664 from the receive logic 623 of the standard PHY layer 604 to the transmit logic 618 of the enhanced port 600. Will be delivered.

데이터 지시 세트가 수신 로직(623)으로부터 전송 로직(618)으로의 애플리케이션을 위해 인터리버(610)로 진입하는 전송을 지배할 수 있지만, 예를 들어 프로토콜 핸드쉐이크, 접속의 오픈 및 폐쇄, 흐름 제어 등을 위해 수신 로직(621)으로부터의 지시 세트도 또한 수신될 수도 있다. 유사한 방식으로, 수신 로직(616)으로부터 전송 로직(622)으로의 데이터 지시 세트가 역다중화기(614)를 통해 전송을 지배하지만, 프로토콜 핸드쉐이크, 접속의 오픈 및 폐쇄, 흐름 제어 등을 위해 때때로 수신 로직(616)으로부터의 지시 세트가 역다중화기(614)를 통해 전송 로직(624)으로 전송될 것이다. 따라서, 역다중화기(614)는 개선된 포트(600)의 수신 로직(616)으로부터 지시 세트를 수신하고 수신된 지시 세트를 스위치(650)를 통해 경로(666)를 거쳐 표준 PHY 층(602)으로 또는 경로(668)를 통해 표준 PHY 층(604)으로 적용하도록 구성된다. 제어 로직(640)은 경로의 선택을 조정하고 스위치(650)를 적절히 구성한다. 더 나아가, 인터리버(610)는 경로(662)를 통해 수신 로직(621)으로부터 지시 세트를 수신하고나 경로(664,668)를 통해 로직(623)을 수신하고 수신된 지시 세트를 로직(618)으로 적용하도록 구성된다. 인터리버(610)는 스위치(650)를 구성하기 위해 제어 로직(640)에 의해 생성된 제어 신호(630)와 연계하여 이 통신을 조정한다.A set of data indications may govern the transmission entering the interleaver 610 for application from the reception logic 623 to the transmission logic 618, but for example protocol handshake, opening and closing of connections, flow control, and the like. An indication set from receive logic 621 may also be received for this purpose. In a similar manner, a set of data indications from receive logic 616 to transmit logic 622 dominate transmission via demultiplexer 614, but are sometimes received for protocol handshakes, open and close connections, flow control, and the like. The set of instructions from logic 616 will be sent to transmit logic 624 via demultiplexer 614. Accordingly, demultiplexer 614 receives a set of instructions from the receive logic 616 of the enhanced port 600 and passes the received set of instructions through the switch 650 via the path 666 to the standard PHY layer 602. Or via path 668 to the standard PHY layer 604. Control logic 640 adjusts the selection of the path and configures switch 650 appropriately. Further, interleaver 610 receives the instruction set from receive logic 621 via path 662 or receives logic 623 via paths 664 and 668 and applies the received instruction set to logic 618. It is configured to. Interleaver 610 coordinates this communication in conjunction with control signal 630 generated by control logic 640 to configure switch 650.

역다중화기(614)는 일반적으로 예를 들어 수신 로직(616)과 함께 전송 로직(622)으로 또는 (제어 로직(640)과 함께 스위치(650)의 구성을 조정하는 경우) 전송 로직(624)으로의 데이터 세트의 전송을 조정하는 상태 머신을 구현할 수 있는 조합 및/또는 순차 로직을 포함한다. Demultiplexer 614 is generally used as transmit logic 622, for example with receive logic 616, or as transmit logic 624 (when adjusting the configuration of switch 650 with control logic 640). Combination and / or sequential logic that may implement a state machine to coordinate the transmission of the data set of the < RTI ID = 0.0 >

인터리버(610)는 일반적으로 전송 로직(618)으로의 애플리케이션을 위해 수신 로직(621) 또는 수신 로직(623)으로부터 수신된 지시 세트를 인터리빙할 수 있는 조합 및/또는 순차 로직을 포함한다. 인터리빙(제어 로직(640)의 모니터링 특징과 연계됨)은 수신 로직(623)으로부터 데이터 프레임의 주된 전송 중에서 이용가능한 유휴 기간을 검출할 수 있다. 이러한 유휴 기간이 검출될 때까지, 전송 로직(618)으로의 애플리케이션을 위한 수신 로직(621)으로부터 수신된 지시 프레임은 이후의 애플리케이션을 위해 버퍼링/큐잉될 수 있다. 제어 로직(640) 및 인터리버(610)가 결과적으로 유휴 기간을 식별한 경우, 버퍼링된/큐잉된 지시 세트(있다면)는 전송 로직(618)을 통해 큐로부터 제 1 장치로 전송될 수 있다.Interleaver 610 generally includes combination and / or sequential logic that can interleave a set of instructions received from receive logic 621 or receive logic 623 for application to transmit logic 618. Interleaving (associated with the monitoring feature of control logic 640) may detect available idle periods among the main transmissions of data frames from receive logic 623. Until such an idle period is detected, the indication frame received from receive logic 621 for application to transmit logic 618 may be buffered / queued for subsequent applications. If the control logic 640 and the interleaver 610 consequently identify an idle period, the buffered / queued set of instructions (if any) may be sent from the queue to the first device via the transmit logic 618.

도 6에 도시된 개선된 SAS 신장기(104)의 기능 요소는 수행되는 기능들 중 하나의 예시적인 가능한 분해요소(decomposition)를 나타낸다. 당업자라면, 개선된 SAS 신장기에서 본 발명의 특징 및 측면을 갖는 다수의 유사한 및 등가의 기능 분해요소를 인지할 수 있을 것이다. 특히, 위에서 설명한 로직 특징의 상세한 설계 및 구현은 디자인 선택의 문제로서 당업자에게는 쉽게 이해될 것이다. 또한, 당업자라면 다수의 이러한 개선된 포트(600)를 제공하고 그러한 포트 모두가 서로 결합되어 그들 사이에 다수의 가상 접속을 수립할 수 있도록 개선된 신장기(104)를 확장하는 정도의, 도 6에서 기술된 기능 요소에 대한 확장을 쉽게 이해할 수 있을 것이다. 따라서, 도 6은 본 발명의 특징 및 측면의 가능한 하나의 실시예의 일 예일 뿐이다. The functional element of the improved SAS extender 104 shown in FIG. 6 represents an exemplary possible decomposition of one of the functions performed. Those skilled in the art will recognize many similar and equivalent functional breakdown elements having the features and aspects of the present invention in an improved SAS stretcher. In particular, the detailed design and implementation of the logic features described above will be readily appreciated by those skilled in the art as a matter of design choice. Also, those skilled in the art will provide a number of such improved ports 600 and extend the enhanced expander 104 such that all of these ports can be combined with each other to establish multiple virtual connections between them. It will be easy to understand the extensions to the described functional elements. Thus, FIG. 6 is only one example of one possible embodiment of the features and aspects of the present invention.

위에서 언급한 바와 같이, 개선된 신장기의 인터리버는 제 3 장치로부터 제 1 장치로의 다른 지시 세트 전송과 인터리빙될 수 있을 때까지 제 2 장치로부터 제 1 장치로 전송된 하나 이상의 수신된 지시 세트를 일시적으로 저장하는 버퍼링 및/또는 큐잉을 포함할 수 있다. 개선된 SAS 신장기 내에서 이 기능을 위해 임의의 잘 알려진 버퍼링/큐잉 구조가 채용될 수 있다.As mentioned above, the improved interleaver's interleaver temporarily stores one or more received instruction sets sent from the second device to the first device until they can be interleaved with other instruction set transmissions from the third device to the first device. May include buffering and / or queuing. Any well known buffering / queuing structure can be employed for this function in the improved SAS expander.

이하에서는 제 2 또는 제 3 장치 중 다른 하나는 현재 지시 프레임을 제 1 장치로 전송하는 동안 개선된 포트를 통한 제 1 장치로의 애플리케이션을 위해 제 2 또는 제 3 장치로부터 수신된 지시 프레임의 인터리빙을 조정하는 인터리버의 예시적인 프로세싱에 대한 간단한 설명 및 예시적인, 일반적인 SAS 프로토콜의 지시 세트에 대한 설명이 제공된다. 당업자라면, 특정 지시 세트에 대한 필요한 프로세싱을 설명하기 위해 특정 예시적인 프로세싱만이 필요한 것이 아님을 쉽게 알 수 있을 것이다. 오히려, 예시적인 프로세싱은 단지 두 개의 가상 접속 각각에 대한 통신을 유지하기 위해 개선된 장치로의 애플리케이션에 대해 두 개의 다른 장치로부터 수신된 지시 세트를 인터리빙하는데 유용할 수도 있고 그렇지 않을 수도 있는 전형적인 프로세싱으로서 간주된다. 당업자라면, 본 발명의 특징 및 측면의 특정 애플리케이션에 유용한 특정 프로세싱을 쉽게 이해할 수 있을 것이다. 예를 들어, 소정의 지시 세트는 인터리버에 의한 큐잉을 필요로 하고 다른 지시 세트는 가상 접속 또는 이 가상 접속을 통해 전달된 데이터의 무결성 손실 없이 간단히 폐기될 수 있다. 더 나아가, 소정의 큐잉된 지시 세트는 이 지시 세트가 대응 가상 접속 상에서 수신되었던 순서를 유지한 채 개선된 장치로 전송될 수 있다. 이러한 설계 세부사항은 디자인 선택의 문제로서 당업자에게는 자명할 것이다.In the following, the other of the second or third device may interleave the indication frame received from the second or third device for application to the first device through the enhanced port while transmitting the current indication frame to the first device. A brief description of example processing of the interleaver to calibrate and a description of an instruction set of an exemplary, generic SAS protocol are provided. Those skilled in the art will readily appreciate that not only specific example processing is required to describe the required processing for a particular set of instructions. Rather, the example processing is a typical processing that may or may not be useful for interleaving a set of instructions received from two different devices for an application to an improved device to maintain communication for each of the two virtual connections. Is considered. Those skilled in the art will readily appreciate the specific processing useful for the particular application of the features and aspects of the present invention. For example, certain instruction sets require queuing by the interleaver and other instruction sets can simply be discarded without loss of integrity of the virtual connection or of the data transferred over the virtual connection. Furthermore, a given queued instruction set may be sent to the improved device while maintaining the order in which the instruction set was received on the corresponding virtual connection. These design details will be apparent to those skilled in the art as a matter of design choice.

ACK, NAK, CREDIT_BLOCKED 및 RRDY 지시 세트는 표준 SAS 핸드쉐이크 프로토콜의 표준의 일부로서 제 1 가상 접속에서 제 1 장치로부터 제 2 장치로의 전송에 대한 응답으로서 예상되고 다른(제2) 가상 접속이 유휴할 때 제 1 장치로 전송되어 야 한다. (CREDIT_BLOCKED 이외의) 다수의 이러한 지시 세트는 제 2 가상 접속의 유휴 기간 사이에서 비교적 빠른 연속으로 수신될 수 있기 때문에, 제 2 가상 접속의 유효 기간으로 인터리빙된 제 1 장치로 동일한 수가 큐잉 및 전송되어야 한다. 큐잉된 CREDIT_BLOCKED은 임의의 큐잉된 CLOSE 전에 전송될 수 있지만, 큐잉된 ACK, NAK 또는 RRDY 지시 세트는 (가능하다면) 다른 큐잉된 지시 세트에 대해 임의의 순서로 전송될 수 있다. 임의의 큐잉된 ACK, NAK, RRDY 또는 CREDIT_BLOCKED은 접속이 임의의 메카니즘에 의해 폐쇄되는 경우 큐로부터 제거될 수 있다.The ACK, NAK, CREDIT_BLOCKED and RRDY indication sets are part of the standard of the standard SAS handshake protocol and are expected as a response to the transmission from the first device to the second device in the first virtual connection and the other (second) virtual connections are idle. Should be sent to the first device. Since many such sets of instructions (other than CREDIT_BLOCKED) can be received in a relatively quick succession between idle periods of the second virtual connection, the same number must be queued and transmitted to the first device interleaved with the validity period of the second virtual connection. do. A queued CREDIT_BLOCKED may be sent before any queued CLOSE, but a queued ACK, NAK or RRDY indication set may be sent in any order for another queued indication set (if possible). Any queued ACK, NAK, RRDY or CREDIT_BLOCKED can be removed from the queue if the connection is closed by any mechanism.

원격 포트로부터의 데이터 프레임 전송, 어드레스 프레임 전송 및 리셋 요청을 나타내는 DATA, SOF, EOF, SOAF, EOAF 및 HARD_RESET 지시 세트가 수신될 수 있다. 이들 지시 세트는 그 자체가 큐잉될 필요는 없지만 강화된 우선순위로 제 1 장치로 다시 전송되도록 하기 위해 인터리빙된다.A set of DATA, SOF, EOF, SOAF, EOAF and HARD_RESET instructions may be received indicating data frame transfer, address frame transfer and reset requests from the remote port. These sets of instructions need not be queued themselves but are interleaved to be sent back to the first device at enhanced priority.

AIP, ERROR 및 SATA 관련 지시 세트는 제 1 장치로 전송하기 위해 제 2 또는 제 3 장치로부터 인터리버에 의해 수신될 것으로 예상되지 않는다. 따라서, 이러한 지시 세트의 버퍼링 또는 큐잉은 인터리버에 의해 요구되지 않는다. 이 지시 세트는 제 1 장치로 전송하는 다른 가상 접속이 현재 유휴한 경우 제 1 장치로 전송될 수 있거나 또는 간단히 폐기될 수 있다. ERROR 지시 세트는 선택에 따라 큐잉되어 이전의 전송에서의 에러와 관련된 보다 자세한 정보를 제 1 장치로 다시 제공할 수 있다. SATA 관련 지시 세트는 예상되지 않고 사실 SATA 접속은 개선된 모드의 동작이 인에이블링되어 있는 동안에는 배제될 수 있다.AIP, ERROR and SATA related instruction sets are not expected to be received by the interleaver from the second or third device for transmission to the first device. Thus, no buffering or queuing of this instruction set is required by the interleaver. This set of instructions can be sent to the first device or simply discarded if another virtual connection sending to the first device is currently idle. The ERROR instruction set may optionally be queued to provide more detailed information related to the error in the previous transmission back to the first device. SATA related instruction sets are not expected and in fact SATA connections can be excluded while enhanced mode of operation is enabled.

OPEN_ACCEPT, OPEN_REJECT, DONE, CLOSE 및 BREAK 지시 세트가 일반적으로 사용되어 오픈된 접속을 수립/거절 및 제어하고 제 2 가상 접속이 유휴하게 되는 경우 큐잉되고 제 2 장치로 전송되어야 한다. 일반적으로, 이들 지시 세트 중 하나만이 한번에 수신되고 따라서 전형적으로 전송을 위해 이러한 지시 세트 중 하나보다 많은 것을 큐잉할 필요가 없다. 큐잉된 BREAK는 일반적으로 큐잉된 DONE 또는 CLOSE 지시 세트 전에 전송되어야 한다. 큐잉된 CLOSE는 일반적으로 임의의 큐잉된 DONE 또는 BREAK 지시 세트 이후에 전송되어야 한다. 큐잉된 OEPN_ACCEPT는 임의의 연관된 큐잉된 RRDY 지시 세트 이전에 전송되어야 하지만, 큐잉된 OPEN_REJECT는 (있다면) 다른 큐잉된 지시 세트에 대해 임의의 특정 순서로 전송될 필요는 없다. 큐잉된 DONE은 임의의 큐잉된 CLOSE 지시 세트 이전에 전송되어야 하지만, 임의의 큐잉된 BREAK 지시 세트 이후에 전송되어야 한다. 임의의 큐잉된 BREAK, OPEN_ACCEPT, OPEN_REJECT 또는 CLOSE는 접속이 임의의 메카니즘에 의해 폐쇄되는 경우 큐로부터 제거될 수 있다.The OPEN_ACCEPT, OPEN_REJECT, DONE, CLOSE, and BREAK instruction sets are commonly used to establish / reject and control open connections and to be queued and sent to a second device if the second virtual connection becomes idle. In general, only one of these instruction sets is received at a time and therefore typically there is no need to queue more than one of these instruction sets for transmission. Queued BREAKs should normally be sent before a set of queued DONE or CLOSE directives. A queued CLOSE should generally be sent after any queued DONE or BREAK instruction set. The queued OEPN_ACCEPT must be sent before any associated queued RRDY indication set, but the queued OPEN_REJECT need not be sent in any particular order for the other queued indication set (if any). A queued DONE must be sent before any queued CLOSE instruction set, but after any queued BREAK instruction set. Any queued BREAK, OPEN_ACCEPT, OPEN_REJECT or CLOSE may be removed from the queue if the connection is closed by any mechanism.

ALIGN 지시 세트가 수신될 수 있으나 큐잉 또는 버퍼링될 필요는 없다. 전술한 AIP에서와 마찬가지로, ALIGN 지시 세트는 제 1 장치로 전송하는 다른 가상 접속이 현재 유휴한 경우 제 1 장치로 전송될 수 있다.An ALIGN instruction set may be received but need not be queued or buffered. As in the aforementioned AIP, the ALIGN instruction set may be sent to the first device if another virtual connection transmitting to the first device is currently idle.

BROADCAST 지시 세트는 가상 접속을 통해 아무 때나 수신될 수 있지만 제 1 장치로 전송되어야 하고 따라서 다른 가상 접속이 유휴해지는 경우 이후의 전송을 위해 큐잉되어야 한다. SAS 신장기 내에서의 일반적인 프로세싱은 이미 그러한 BROADCAST 지시 세트의 큐잉을 제공하며 따라서 유사한 큐잉이 사용되어 BROADCAST를 큐잉하고 이후에 큐잉된 지시 세트를 제 1 장치로 전송한다. 큐잉된 BROADCAST 는 전형적으로 임의의 다른 큐잉된 지시 세트에 대해 임의의 특정 순서로 전송될 필요는 없다.The BROADCAST indication set can be received at any time over the virtual connection but must be sent to the first device and therefore queued for later transmission if another virtual connection becomes idle. General processing within the SAS extender already provides queuing of such BROADCAST instruction sets, so similar queuing is used to queue the BROADCAST and then send the queued instruction set to the first device. A queued BROADCAST typically does not need to be sent in any particular order for any other queued indication set.

NOTIFY 지시 세트는 추가적인 프로세싱을 위한 준비성(readiness)(예를 들어, 디스크 드라이브의 스핀업(spin up) 등)을 나타내기 위해 장치에 의해 종종 전송된다. SAS 프로토콜에 따르면, 그들은 네 개의 그룹으로 주기적으로 전송될 수 있고 또한 ALIGN 지시 세트로 대체될 수 있다. 접속이 폐쇄되려 할 때 이 지시 세트가 큐잉되어 있다면, 큐잉된 NOTIFY(또는 ALIGN)는 접속이 폐쇄되기 전에 전송되어야 한다. 임의의 큐잉된 NOTIFY는 접속이 임의의 메카니즘에 의해 폐쇄되는 경우 큐로부터 제거될 수 있다.The NOTIFY instruction set is often sent by the device to indicate readiness for further processing (eg, spin up of a disk drive, etc.). According to the SAS protocol, they can be sent periodically in four groups and can also be replaced by the ALIGN instruction set. If this set of instructions is queued when the connection is about to be closed, then the queued NOTIFY (or ALIGN) must be sent before the connection is closed. Any queued NOTIFY can be removed from the queue if the connection is closed by any mechanism.

당업자라면, 이러한 큐 구조에 사용될 임의의 다양한 큐잉 구조 및 방법을 이해할 수 있을 것이다. 예를 들어, 대응하는 비트가 셋 또는 리셋되는 경우 큐내에 존재하는 또는 존재하지 않을 수 있는 일 유형의 지시 세트를 각 비트가 나타내는 간단한 비트 어레이가 제공될 수 있다. 이와 달리, 푸시다운 리스트 형태의 엔트리 리스트 또는 링크형 리스트 구조를 갖는 보다 전형적인 큐 구조에는 전송될 하나의 지시 세트에 대응하는 각 엔트리가 제공될 수 있다. 이러한 디자인 선택은 당업자에게는 자명할 것이다.Those skilled in the art will appreciate any of the various queuing structures and methods to be used for such queue structures. For example, a simple bit array may be provided in which each bit represents one type of instruction set that may or may not exist in the queue when the corresponding bit is set or reset. Alternatively, a more typical queue structure having an entry list or linked list structure in the form of a pushdown list may be provided with each entry corresponding to one set of instructions to be transmitted. Such design choices will be apparent to those skilled in the art.

더 나아가, 당업자라면, 다른 가상 접속이 유휴해진 시기를 감지하도록 구현될 수 있는 로직을 쉽게 이해할 수 있을 것이다. SAS 사양은 특정 접속이 유휴한 것으로 알려져 있는 샘플 상태 머신 모델에서 다양한 상태를 제공한다. 이러한 유휴 기간은 큐잉된 지시 세트를 다시 제 1 장치로 전송하기 위해 (개선된 포트의 인터리버를 통해) 다른 가상 저속에 의해 사용될 수 있다. 따라서, 제어 로직, 인터리버, 및/또는 개선된 포트의 역다중화기로서 본 명세서에서 기술된 특징 및 측면을 구현하는 조합 및/또는 순차 로직의 설계의 특정 세부사항은 디자인 선택의 문제로서 당업자라면 쉽게 알 수 있을 것이다.Furthermore, those skilled in the art will readily appreciate the logic that may be implemented to detect when other virtual connections have become idle. The SAS specification provides various states in the sample state machine model, in which a particular connection is known to be idle. This idle period may be used by another virtual low speed (via the interleaver of the improved port) to send the queued indication set back to the first device. Accordingly, certain details of the design of combination and / or sequential logic that implement the features and aspects described herein as demultiplexers of control logic, interleaver, and / or improved ports are readily apparent to those skilled in the art as a matter of design choice. Could be.

본 발명은 도면 및 전술한 설명에서 예시되고 기술되었지만, 이러한 예시 및 설명은 단지 예시일 뿐이며 제한적 의미가 아님을 이해해야 한다. 본 발명의 다른 실시예 및 이들의 사소한 변형이 도시되고 설명되었다. 본 발명의 사상 내에 속하는 모든 변경 및 변형에 대한 보호가 요구된다. 당업자라면, 본 발명의 범주 내에 속하는 전술한 실시예의 변형들을 쉽게 인지할 수 있을 것이다. 특히, 당업자라면 본 발명의 특징 및 측면이 전자 회로 내에서 등가적으로 또는 범용 혹은 전용 프로세서의 적절히 프로그래밍된 인스트럭션으로서 구현될 수 있음을 쉽게 이해할 수 있을 것이다. 이러한 회로의 등가 및 프로그래밍 설계는 당업자에게는 디자인 선택의 문제로서 잘 알려져 있다. 그 결과, 본 발명은 전술한 특정 예 및 예시에 국한되지 않고, 오히려 후속하는 청구항 및 그들의 등가물에 의해서만 한정된다.While the present invention has been illustrated and described in the drawings and the foregoing description, it should be understood that these examples and description are exemplary only, and not in a limiting sense. Other embodiments of the invention and minor variations thereof have been shown and described. Protection against all changes and modifications falling within the spirit of the invention is required. Those skilled in the art will readily recognize variations of the foregoing embodiments that fall within the scope of the invention. In particular, those skilled in the art will readily appreciate that features and aspects of the present invention may be implemented equivalently within electronic circuitry or as appropriately programmed instructions of a general purpose or dedicated processor. The equivalent and programming design of such circuits is well known to those skilled in the art as a matter of design choice. As a result, the invention is not limited to the specific examples and examples described above, but rather is limited only by the following claims and their equivalents.

Claims (20)

제 1 SAS 장치, 제 2 SAS 장치 및 제 3 SAS 장치를 포함하는 3개의 SAS 장치와,Three SAS devices including a first SAS device, a second SAS device, and a third SAS device; 상기 제 1 SAS 장치를 상기 제 2 SAS 장치 및 상기 제 3 SAS 장치 각각에 결합시키도록 구성된 SAS 신장기(expander)를 포함하되,A SAS expander configured to couple the first SAS device to each of the second SAS device and the third SAS device; 상기 제 1 SAS 장치 및 상기 SAS 신장기는 상기 제 1 SAS 장치와 상기 제 2 SAS 장치 사이의 제 1 오픈 접속과 상기 제 1 SAS 장치와 상기 제 3 SAS 장치 사이의 제 2 오픈 접속을 동시에 허용하고 운영하도록 구성되고,The first SAS device and the SAS extender simultaneously allow and operate a first open connection between the first SAS device and the second SAS device and a second open connection between the first SAS device and the third SAS device. Configured to 상기 제 1 오픈 접속 및 상기 제 2 오픈 접속은 상기 제 1 SAS 장치를 상기 SAS 신장기에 결합시키는 단일 물리적 링크(PHY: single physical link)를 사용하는 The first open connection and the second open connection use a single physical link (PHY) to couple the first SAS device to the SAS extender. 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 제 1 오픈 접속은 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 프레임을 전송하는데 사용되고,The first open connection is used to transmit a frame from the first SAS device to the second SAS device, 상기 제 2 오픈 접속은 상기 제 3 SAS 장치로부터 상기 제 1 SAS 장치로 프레임을 전송하는데 사용되는The second open connection is used to send a frame from the third SAS device to the first SAS device. 시스템.system. 제 2 항에 있어서,The method of claim 2, 상기 시스템은 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 CREDIT BLOCKED 원형(primitive)을 전송함으로써 상기 제 1 오픈 접속에서 상기 제 1 SAS 장치와 연관된 수신 크레딧(receive credit)을 차단하도록 구성된The system is configured to block a receive credit associated with the first SAS device at the first open connection by sending a CREDIT BLOCKED primitive from the first SAS device to the second SAS device. 시스템.system. 제 2 항에 있어서,The method of claim 2, 상기 시스템은 상기 제 2 오픈 접속에서 상기 제 3 SAS 장치로부터 상기 제 1 SAS 장치로 정상적으로 전송된 RRDY 원형을 폐기하도록 구성된The system is configured to discard RRDY prototypes normally sent from the third SAS device to the first SAS device in the second open connection. 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 SAS 신장기는 상기 제 2 오픈 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 어드레스 프레임을 거절하도록 구성된The SAS extender is configured to reject open address frames from a fourth SAS device directed to the first SAS device while the second open connection remains open. 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 SAS 신장기는 상기 제 2 오픈 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 어드레스 프레임을 지연시키도록 구성된The SAS extender is configured to delay an open address frame from a fourth SAS device directed to the first SAS device while the second open connection remains open. 시스템.system. 제 1 SAS 장치를 제 2 SAS 장치 및 제 3 SAS 장치 각각에 결합시키는 SAS 신장기를 구비한 SAS 도메인에서 동작가능한 방법으로서,A method operable in a SAS domain with a SAS extender that couples a first SAS device to each of a second SAS device and a third SAS device, the method comprising: 상기 SAS 신장기를 통해 상기 제 1 SAS 장치와 상기 제 2 SAS 장치 사이에서 제 1 가상 접속을 수립하는 단계- 상기 제 1 가상 접속은 상기 제 1 SAS 장치에 의해 수립되고 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 프레임을 전송하는데 사용됨 -와,Establishing a first virtual connection between the first SAS device and the second SAS device via the SAS extender, wherein the first virtual connection is established by the first SAS device and from the first SAS device; 2 used to send frames to SAS devices-and, 상기 SAS 신장기를 통해 상기 제 1 SAS 장치와 상기 제 3 SAS 장치 사이에서 제 2 가상 접속을 수립하는 단계- 상기 제 2 가상 접속은 상기 제 3 SAS 장치에 의해 수립되고 상기 제 3 SAS 장치로부터 상기 제 1 SAS 장치로 프레임을 전송하는데 사용됨 -를 포함하되,Establishing a second virtual connection between the first SAS device and the third SAS device via the SAS extender, wherein the second virtual connection is established by the third SAS device and from the third SAS device; 1 used to send frames to SAS devices, including 상기 제 1 가상 접속 및 상기 제 2 가상 접속은 동작을 중첩할 수 있고,The first virtual connection and the second virtual connection may overlap operations, 상기 제 1 가상 접속 및 상기 제 2 가상 접속은 상기 제 1 SAS 장치를 상기 SAS 신장기에 결합시키는 동일한 물리적 링크(PHY)를 사용하는The first virtual connection and the second virtual connection use the same physical link (PHY) to couple the first SAS device to the SAS extender. 방법.Way. 제 7 항에 있어서, The method of claim 7, wherein 상기 제 2 오픈 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 어드레스 프레임을 거절하는 단계를 더 포함하는 Rejecting an open address frame from a fourth SAS device directed to the first SAS device while the second open connection remains open; 방법.Way. 제 7 항에 있어서,The method of claim 7, wherein 상기 제 3 SAS 장치에 의해 상기 제 1 SAS 장치로 전송된 RRDY 원형을 폐기하는 단계를 더 포함하는 Discarding the RRDY prototype sent by the third SAS device to the first SAS device. 방법.Way. 제 7 항에 있어서,The method of claim 7, wherein CREDIT BLOCKED 원형을 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 전송하는 단계를 더 포함하는 Transmitting a CREDIT BLOCKED prototype from the first SAS device to the second SAS device. 방법.Way. 제 1 SAS 장치, 제 2 SAS 장치 및 제 3 SAS 장치를 결합시키도록 구성된 SAS 신장기로서,A SAS extender configured to join a first SAS device, a second SAS device, and a third SAS device, wherein: 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 프레임을 전송하기 위해 상기 제 1 SAS 장치와 상기 제 2 SAS 장치 사이에 제 1 가상 접속을 수립하고 운영하도록 구성된 제 1 가상 접속 로직과,First virtual connection logic configured to establish and operate a first virtual connection between the first SAS device and the second SAS device to transmit a frame from the first SAS device to the second SAS device; 상기 제 3 SAS 장치로부터 상기 제 1 SAS 장치로 프레임을 전송하기 위해 상기 제 1 SAS 장치와 상기 제 3 SAS 장치 사이에 제 2 가상 접속을 수립하고 운영하도록 구성된 제 2 가상 접속 로직을 포함하되,A second virtual connection logic configured to establish and operate a second virtual connection between the first SAS device and the third SAS device to transmit a frame from the third SAS device to the first SAS device; 상기 제 1 가상 접속 로직 및 상기 제 2 가상 접속 로직은, 상기 SAS 신장기를 상기 제 1 SAS 장치에 접속시키는 단일 물리적 링크(PHY)를 이용하여 각각 상기 제 1 가상 접속과 상기 제 2 가상 접속이 동작을 중첩하는 것을 허용하도록 구성되는The first virtual connection logic and the second virtual connection logic operate the first virtual connection and the second virtual connection respectively using a single physical link (PHY) that connects the SAS extender to the first SAS device. Configured to allow nesting SAS 신장기.SAS extenders. 제 11 항에 있어서,The method of claim 11, 상기 제 2 가상 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 프레임 요청을 거절하도록 구성된 오픈 접속 거절 로직을 더 포함하는Further includes open connection rejection logic configured to reject open frame requests from a fourth SAS device directed to the first SAS device while the second virtual connection remains open. SAS 신장기.SAS extenders. 제 11 항에 있어서,The method of claim 11, 상기 제 2 가상 접속 로직은 또한 상기 제 3 SAS 장치로부터 상기 제 1 SAS 장치로 향하는 RRDY 원형을 폐기하도록 구성된 복식 로직(duplex logic)을 더 포함하는The second virtual connection logic further includes duplex logic configured to discard the RRDY prototype from the third SAS device to the first SAS device. SAS 신장기.SAS extenders. 제 11 항에 있어서,The method of claim 11, 상기 제 1 가상 접속 로직은 또한 상기 제 1 SAS 장치로부터 상기 제 2 SAS 장치로 CREDIT BLOCKED 원형을 전송함으로써 제 1 오픈 접속에서 상기 제 1 SAS 장치와 연관된 수신 크레딧을 차단하도록 구성된 복식 로직을 더 포함하는The first virtual connection logic further includes doubled logic configured to block incoming credit associated with the first SAS device in a first open connection by sending a CREDIT BLOCKED prototype from the first SAS device to the second SAS device. SAS 신장기.SAS extenders. 제 11 항에 있어서,The method of claim 11, 상기 제 2 가상 접속 로직은 제 2 오픈 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 어드레스 프레임을 거절하도록 구성된The second virtual connection logic is configured to reject open address frames from a fourth SAS device directed to the first SAS device while a second open connection remains open. SAS 신장기.SAS extenders. 제 11 항에 있어서,The method of claim 11, 상기 제 2 가상 접속 로직은 제 2 오픈 접속이 오픈을 유지하는 동안 상기 제 1 SAS 장치로 향하는 제 4 SAS 장치로부터의 오픈 어드레스 프레임을 지연시키도록 구성된The second virtual connection logic is configured to delay an open address frame from a fourth SAS device directed to the first SAS device while the second open connection remains open. SAS 신장기.SAS extenders. SAS 종단 장치로서,As a SAS termination device, 상기 SAS 종단 장치로부터 제 1 SAS 장치로 프레임을 전송하기 위해 상기 SAS 종단 장치와 상기 제 1 SAS 장치 사이에서 SAS 신장기를 통해 제 1 가상 접속을 수립하고 운영하도록 구성된 제 1 가상 접속 로직과,First virtual connection logic configured to establish and operate a first virtual connection through a SAS extender between the SAS termination device and the first SAS device to transmit a frame from the SAS termination device to a first SAS device; 제 2 SAS 장치로부터 상기 SAS 종단 장치로 프레임을 전송하기 위해 상기 SAS 종단 장치와 상기 제 2 SAS 장치 사이에서 SAS 신장기를 통해 제 2 가상 접속을 수립하고 운영하도록 구성된 제 2 가상 접속 로직을 포함하되, A second virtual connection logic configured to establish and operate a second virtual connection through a SAS extender between the SAS terminator and the second SAS device to transmit a frame from a second SAS device to the SAS terminator; 상기 제 1 가상 접속 로직 및 상기 제 2 가상 접속 로직은 각각 상기 제 1 가상 접속과 상기 제 2 가상 접속이 동작을 중첩하는 것을 허용하도록 구성되고,The first virtual connection logic and the second virtual connection logic are respectively configured to allow the first virtual connection and the second virtual connection to overlap operations; 상기 SAS 종단 장치는 상기 SAS 종단 장치를 상기 SAS 신장기에 결합하는 동일한 물리적 링크(PHY) 상에서 상기 제 1 가상 접속 및 제 2 가상 접속을 수립하도록 구성된The SAS terminator is configured to establish the first virtual connection and the second virtual connection on the same physical link (PHY) that couples the SAS terminator to the SAS extender. SAS 종단 장치.SAS terminator. 제 17 항에 있어서,18. The method of claim 17, 상기 제 2 가상 접속 로직은 또한 상기 제 2 SAS 장치로부터 상기 SAS 종단 장치로 향하는 RRDY 원형을 폐기하도록 구성된 복식 로직을 더 포함하는The second virtual connection logic further includes doubled logic configured to discard an RRDY circle from the second SAS device to the SAS end device. SAS 종단 장치.SAS terminator. 제 17 항에 있어서,18. The method of claim 17, 상기 제 1 가상 접속 로직은 또한 상기 SAS 종단 장치로부터 상기 제 1 SAS 장치로 CREDIT BLOCKED 원형을 전송함으로써 제 1 오픈 접속에서 상기 제 1 SAS 장치와 연관된 수신 크레딧을 차단하도록 구성된 복식 로직을 더 포함하는The first virtual connection logic further includes double logic configured to block received credits associated with the first SAS device in a first open connection by sending a CREDIT BLOCKED prototype from the SAS end device to the first SAS device. SAS 종단 장치.SAS terminator. 제 17 항에 있어서,18. The method of claim 17, 상기 제 2 가상 접속와 연관된 수신 크레딧과는 무관하게 상기 제 1 가상 접속과 연관된 전송 크레딧을 관리하도록 구성된 복식 로직을 더 포함하는Further comprising double logic configured to manage transmit credits associated with the first virtual connection independent of receive credits associated with the second virtual connection. SAS 종단 장치.SAS terminator.
KR1020097013643A 2006-12-29 2007-09-21 Apparatus and methods for multiple unidirectional virtual connections among sas devices Expired - Fee Related KR101362556B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US88284706P 2006-12-29 2006-12-29
US60/882,847 2006-12-29
US11/682,798 2007-03-06
US11/682,798 US7624223B2 (en) 2006-12-29 2007-03-06 Apparatus and methods for multiple unidirectional virtual connections among SAS devices
PCT/US2007/079201 WO2008082732A1 (en) 2006-12-29 2007-09-21 Apparatus and methods for multiple unidirectional virtual connections among sas devices

Publications (2)

Publication Number Publication Date
KR20090092828A KR20090092828A (en) 2009-09-01
KR101362556B1 true KR101362556B1 (en) 2014-02-13

Family

ID=41301371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097013643A Expired - Fee Related KR101362556B1 (en) 2006-12-29 2007-09-21 Apparatus and methods for multiple unidirectional virtual connections among sas devices

Country Status (1)

Country Link
KR (1) KR101362556B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228924A1 (en) * 2004-03-31 2005-10-13 Marushak Nathan E Expander device capable of persistent reservations and persistent affiliations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228924A1 (en) * 2004-03-31 2005-10-13 Marushak Nathan E Expander device capable of persistent reservations and persistent affiliations

Also Published As

Publication number Publication date
KR20090092828A (en) 2009-09-01

Similar Documents

Publication Publication Date Title
JP5005041B2 (en) Apparatus and method for multiple unidirectional virtual connections between SAS devices
US7457902B2 (en) Lock and release mechanism for out-of-order frame prevention and support of native command queueing in FC-SATA
US7127534B2 (en) Read/write command buffer pool resource management using read-path prediction of future resources
KR100607392B1 (en) Communication system and method for preserving dynamic half-duplex loop fairness
US6765922B1 (en) Speculative transmit for system area network latency reduction
US6570853B1 (en) Method and apparatus for transmitting data to a node in a distributed data processing system
US8127059B1 (en) Apparatus for interconnecting hosts with storage devices
US9424224B2 (en) PCIe tunneling through SAS
WO2006110845A2 (en) Method and apparatus for sata tunneling over fibre channel
TWI471729B (en) Methods and structure for communicating between a sata host and a sata target device through a sas domain
KR101287353B1 (en) Methods and apparatus for improved serial advanced technology attachment performance
TW202248869A (en) Peripheral component interconnect express interface device and operating method thereof
US8924610B1 (en) SAS/SATA store-and-forward buffering for serial-attached-SCSI (SAS) storage network
WO2018116314A1 (en) A method and a mirrored serial interface (msi) for transferring data
KR101266572B1 (en) Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication
US8868806B2 (en) Methods and structure for hardware management of serial advanced technology attachment (SATA) DMA Non-Zero Offsets in a serial attached SCSI (SAS) expander
US9436412B2 (en) Preemptive connection switching for serial attached small computer system interface systems
US6760781B1 (en) Intelligent packet transmission engine
US20070226757A1 (en) Apparatus and methods for a simplified, multi-client SAS port for management of other devices in an enhanced SAS device
WO2021177997A1 (en) System and method for ensuring command order in a storage controller
US20070198761A1 (en) Connection management mechanism
KR101362556B1 (en) Apparatus and methods for multiple unidirectional virtual connections among sas devices
WO2006019770A2 (en) System and method for transmitting data in storage controllers
CN101044727B (en) Method and system for using in-line credit extender and host bus adapter
CA3047934C (en) A method and a mirrored serial interface (msi) for transferring data

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

A201 Request for examination
P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20170207

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20170207