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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling 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 사양과 호환될 수 있도록 함으로써 개선이 제공된다.
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.
Description
본 특허 출원은 "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
시스템(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
본 명세서에서 사용되는 바와 같이, 접속의 동시성은 두 개의 가상 접속의 수립 및 활용의 임의의 측면을 지칭한다. 다시 말해, 제 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
통신 경로(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
"포트", "링크" 및 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
당업자라면, 완전한 기능의 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
본 발명의 특징 및 측면에 따라 개선된 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
아웃바운드 가상 접속 로직(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
복식 로직 요소(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
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 신장기(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
개선된 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
따라서, 개선된 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
당업자라면 완벽히 동작가능한 개선된 SAS 신장기(104) 내에서 여러 가지의 상이하고 추가적인 요소가 이용될 수 있음을 쉽게 알 수 있을 것이다. 이러한 추가적인 요소는 본 설명의 간단 명료성을 위해 도 2에서는 생략되었다.Those skilled in the art will readily appreciate that a variety of different and additional elements may be used within the
예시적인 바람직한 실시예에서, 본 발명의 개선된 특징 및 측면은 개선된 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,
당업자라면, 요소(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.
개선된 모드를 인에이블링하기 위해 제 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
요소(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 가상 접속을 수립하는 요건을 대기한다.
위에서 언급한 바와 같이, 요소(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,
당업자라면, 도 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,
더 나아가, 위에서 설명한 바와 같이, 당업자라면, 도 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 장치로 반환될 수 있다.
제 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,
본 발명의 특징 및 측면에 따르면, 제 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
제 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.
제 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.
일괄적으로 참조번호(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
참조번호(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
당업자라면, 다양한 장치 사이에서 교환될 수 있는 다양한 추가적인 또는 대안적인 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
개선된 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
개선된 모드의 동작이 사용되지 않지 않음(즉, 개선된 모드 명령 및/또는 가상 접속 요청이 이루어지 않음)을 제어 로직(640)이 검출한 경우, 제어 버스(630)에 인가되는 신호는 인터리버(610) 및 역다중화기(614)에 의한 개선된 프로세싱을 디스에이블링하며 또한 간단하게는 정상적인 동작, 즉, 두 개의 장치 사이에서의 완전한 복식의, 점대점 접속의 정상 동작용으로 크로스바 스위치(650)를 구성한다. 다시 말해, 개선된 SAS 신장기(104)는 임의의 표준 SAS 포트로서 사용되도록 개선된 포트/링크(600)를 구성할 수 있다.If the
개선된 모드 동작에서(즉, 개선된 모드 동작을 요청하는 명령 또는 지시 세트를 검출한 경우), 제어 로직(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),
제 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),
예를 들어, 제 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
데이터 지시 세트가 수신 로직(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
역다중화기(614)는 일반적으로 예를 들어 수신 로직(616)과 함께 전송 로직(622)으로 또는 (제어 로직(640)과 함께 스위치(650)의 구성을 조정하는 경우) 전송 로직(624)으로의 데이터 세트의 전송을 조정하는 상태 머신을 구현할 수 있는 조합 및/또는 순차 로직을 포함한다.
인터리버(610)는 일반적으로 전송 로직(618)으로의 애플리케이션을 위해 수신 로직(621) 또는 수신 로직(623)으로부터 수신된 지시 세트를 인터리빙할 수 있는 조합 및/또는 순차 로직을 포함한다. 인터리빙(제어 로직(640)의 모니터링 특징과 연계됨)은 수신 로직(623)으로부터 데이터 프레임의 주된 전송 중에서 이용가능한 유휴 기간을 검출할 수 있다. 이러한 유휴 기간이 검출될 때까지, 전송 로직(618)으로의 애플리케이션을 위한 수신 로직(621)으로부터 수신된 지시 프레임은 이후의 애플리케이션을 위해 버퍼링/큐잉될 수 있다. 제어 로직(640) 및 인터리버(610)가 결과적으로 유휴 기간을 식별한 경우, 버퍼링된/큐잉된 지시 세트(있다면)는 전송 로직(618)을 통해 큐로부터 제 1 장치로 전송될 수 있다.
도 6에 도시된 개선된 SAS 신장기(104)의 기능 요소는 수행되는 기능들 중 하나의 예시적인 가능한 분해요소(decomposition)를 나타낸다. 당업자라면, 개선된 SAS 신장기에서 본 발명의 특징 및 측면을 갖는 다수의 유사한 및 등가의 기능 분해요소를 인지할 수 있을 것이다. 특히, 위에서 설명한 로직 특징의 상세한 설계 및 구현은 디자인 선택의 문제로서 당업자에게는 쉽게 이해될 것이다. 또한, 당업자라면 다수의 이러한 개선된 포트(600)를 제공하고 그러한 포트 모두가 서로 결합되어 그들 사이에 다수의 가상 접속을 수립할 수 있도록 개선된 신장기(104)를 확장하는 정도의, 도 6에서 기술된 기능 요소에 대한 확장을 쉽게 이해할 수 있을 것이다. 따라서, 도 6은 본 발명의 특징 및 측면의 가능한 하나의 실시예의 일 예일 뿐이다. The functional element of the
위에서 언급한 바와 같이, 개선된 신장기의 인터리버는 제 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)
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)
| 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 |
-
2007
- 2007-09-21 KR KR1020097013643A patent/KR101362556B1/en not_active Expired - Fee Related
Patent Citations (1)
| 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 |
