KR101278787B1 - Sas 제어기 장치, phy 구성 방법 및 phy 재구성 방법 - Google Patents

Sas 제어기 장치, phy 구성 방법 및 phy 재구성 방법 Download PDF

Info

Publication number
KR101278787B1
KR101278787B1 KR1020120009174A KR20120009174A KR101278787B1 KR 101278787 B1 KR101278787 B1 KR 101278787B1 KR 1020120009174 A KR1020120009174 A KR 1020120009174A KR 20120009174 A KR20120009174 A KR 20120009174A KR 101278787 B1 KR101278787 B1 KR 101278787B1
Authority
KR
South Korea
Prior art keywords
phy
port
phys
sas
controller
Prior art date
Application number
KR1020120009174A
Other languages
English (en)
Other versions
KR20120090805A (ko
Inventor
오웬 패리
브래드 디 베스머
민-젠 왕
Original Assignee
엘에스아이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘에스아이 코포레이션 filed Critical 엘에스아이 코포레이션
Publication of KR20120090805A publication Critical patent/KR20120090805A/ko
Application granted granted Critical
Publication of KR101278787B1 publication Critical patent/KR101278787B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

접속된 SAS 장치가 재부팅되거나 리셋되거나 달리 일시적으로 접속해제되는 때에 SAS 제어기 내 PHY 구성 정보와 포트를 일관되게 유지하기 위한 장치 및 방법이 개시된다. 구성 정보는 비휘발성 메모리에 저장되고 포트 충돌을 방지하는 방법에 의해 복원된다.

Description

SAS 제어기 장치, PHY 구성 방법 및 PHY 재구성 방법{SAS CONTROLLER WITH PERSISTENT PORT CONFIGURATION}
본 개시는 전기 컴퓨터 및 디지털 프로세싱 시스템에서의 멀티-컴퓨터 데이터 전송에 관한 것으로서, 더 구체적으로는 네트워크에서의 SAS 제어기에 관한 것이다.
SCSI(Small Computer System Interface)는 컴퓨터와 주변 장치 사이에서의 물리적 접속 및 데이터 전달을 위한 표준 및 프로토콜의 세트이다. SCSI는 하드 드라이브 또는 테이프 드라이브와 같은 메모리 장치에 컴퓨터를 접속하는데 가장 흔히 사용된다. SAS(Serial Attached SCSI)는 SCSI 표준 및 프로토콜을 이용하는 컴퓨터 메모리 저장 장치로 및 장치로부터 데이터를 이동하는데 사용되는 컴퓨터 버스이다.
SAS 제어기는 다수의 양방향(bi-directional) SAS 접속 포인트(PHY)를 갖는 장치이다. PHY는 물리적 링크와 전기적으로 인터페이스하고, 데이터를 인코딩하고 리셋 시퀀스를 관리하는 프로토콜의 부분을 구현하는 송수신기(transceiver)이다. SAS 제어기 내 각각의 PHY는 SAS 장치에 접속될 수 있다; PHY는 접속된 SAS 장치로 및 그로부터의 통신을 구현하기 위한 하드웨어를 포함한다. PHY는, 특정 PHY에 접속된 SAS 장치로의 접속 프로세스를 용이하게 하고 단순화하기 위해 포트로 조직된다; 예를 들어, 하나의 SAS 장치는 수개의 PHY에 의해 SAS 제어기에 접속될 수 있고, 이들 PHY는 단일 포트(와이드 포트)와 연관될 수 있는데 SAS 장치로의 액세스가 공통 포트로의 참조에 의한 것이어서, 포트의 대역폭을 증가시키며, SAS 제어기는 모든 PHY에 걸쳐 효율적인 로드 밸런싱(load balancing)을 담당한다.
SAS 제어기는 각각의 PHY가 수동으로 구성될 것을 요구할 수 있어, 초기 설정이 시간을 소비하고 번거로운 작업이 되도록 한다. 또한, 시스템의 토폴로지(topology)에 대한 여하한 변경은 동일하게 시간을 소비하고 번거로우며, 인적 오류를 겪기 쉽다. 일부 SAS 제어기는 자동으로 포트와 PHY를 구성하는 기능을 포함하며, 그에 의해 인적 인자를 제거하고 시스템이 쉽게 토폴로지 변화를 포함할 수 있게 한다.
SAS 장치는 가끔 전력을 상실하거나, 재부팅하거나, 리셋하거나 기타 SAS 제어기로의 접속을 잃는다. 더 이상 SAS 장치에 접속되지 않은 PHY와 연관된 포트로부터의 정보를 보내거나 불러오려고 하는 장치는 현저한 에러 상태를 만나게 된다. 자동적으로 포트와 PHY를 구성하는 기능을 포함하는 SAS 제어기는 실패한 접속을 시스템의 토폴로지 변화로 간주하고 더 이상 SAS 장치와 접속되지 않은 PHY와 연관된 포트를 비활성화한다. 이 행동은 다른 장치가 접속되지않은 SAS 장치에 액세스하려고 하는 것을 방지하지만, SAS 장치가 SAS 제어기에 다시 접속할 때에 SAS 장치로 접속하고자 하는 다른 장치에게 알려져 있을 수 있는 포트로부터 SAS 장치를 연관해제(disassociates)하기도 한다.
본 발명은, 부착된 SAS 장치 리부트, 파워 사이클 및 칩 리셋에 걸쳐 일관적인 SAS 포트 구성을 유지하기 위한 방법 및 장치를 제공한다. 장치는 복수의 PHY, 프로세싱 유닛 및 비휘발성 메모리를 갖는 SAS 제어기이다. SAS 장치가 PHY로부터 접속해제 되는 때에도 SAS 장치가 잠재적으로 동일한 PHY에 다시 접속되는 것을 기대하며 SAS 제어기는, 비휘발성 메모리 내에 PHY 구성 데이터 구조에서 PHY에 대한 구성 정보를 포함한다.
일관적인 SAS 포트 구성을 유지하는 방법은, PHY 구성 데이터 구조와 연관된 PHY로부터 SAS 장치가 접속해제되는 때에 PHY 구성 데이터 구조로부터 SAS 장치의 SAS 주소를 삭제하는 단계와, 다른 장치가 PHY를 통해 SAS 장치와 통신하려고 하는 것을 방지하기 위해 PHY와 연관된 링크 앨리어스(alias)를 무효의 값으로 설정하지만 포트 구성 데이터 구조에서 SAS 장치의 SAS 주소를 유지하는 단계를 포함한다.
SAS 장치가 동일한 PHY에 재접속되면, 예를 들어 SAS 장치가 파워 사이클을 완료하고, SAS 제어기는 PHY 구성 데이터 구조와 포트 구성 데이터 구조에 저장된 정보를 이용하여 PHY를 자동으로 재구성한다. SAS 제어기는 그 후 PHY를 모든 다른 자동으로 구성된 PHY와 비교하여 어떤 PHY도 충돌하는 구성 정보를 갖지 않음을 보장한다.
도 1은 본 발명의 일 실시형태를 도시하는 흐름도를 도시한다.
도 2는 본 발명의 다른 실시형태를 도시하는 흐름도를 도시한다.
도 3은 도 1과 도 2에 도시된 방법에 따라 구성된 SAS 제어기의 조직 구조를 도시하는 차트를 도시한다.
도 4는 도 1과 도 2에 도시된 방법을 구현하도록 구성된 SAS 제어기의 블록도를 도시한다.
첨부된 도면에 도시된, 개시되는 주제에 대한 상세한 언급이 이루어질 것이다. 본 발명의 범위는 청구범위에 의해서만 제한된다; 많은 대안, 변경 및 균등물이 포괄된다. 명확성을 위해, 실시형태에 연관된 기술 분야에서 알려진 기술적 내용은 불필요하게 설명을 흐리지 않기 위해 상세히 설명되지 않았다.
도 1을 참조하면, SAS 제어기에 대한 초기 구성을 수립하기 위한 방법에 대한 예시적인 동작이 도시된다. 방법은 SAS 제어기 내 처리 유닛에 의해 수행될 수 있다. SAS 제어기는 하나 이상의 포트로 조직된 하나 이상의 PHY를 포함할 수 있다. 각각의 포트는 포트 구성 데이터 구조에 의해 나타내어질 수 있고 각각의 PHY는 PHY 구성 데이터 구조에 의해 나타내어질 수 있다. 동작 100에서, SAS제어기는 먼저 SAS제어기와 연관된 포트가 이미 초기화되었는지 여부를 판단할 수 있다; 포트가 초기화되었으면, 그러한 포트에 대해 초기 구성을 수립하기 위해 방법을 실행하는 것은 바람직하지 않고 방법은 종료될 수 있다. 포트가 초기화되지 않았으면, SAS 제어기는 각각의 포트 구성 데이터 구조 내의 요소에 사정결정된 값을 할당함으로써 모든 포트(102)를 초기화할 수 있다. 사전결정된 값은 SAS 제어기 내의 메모리에 저장된 구성 데이터로부터 도출될 수 있다. SAS 제어기는 하나 이상의 포트 제어기(104)를 초기화할 수 있다; 포트 제어기는 SAS 장치와 연관된 SAS 주소를 나타낸다. 각각의 포트 제어기는 포트 제어기 구성 데이터 구조에 의해 나타내어질 수 있다. 그러면 SAS 제어기는 구성할 PHY가 있는지 여부를 판단할 수 있다. 구성할 PHY가 없는 경우, SAS 제어기는 초기 포트 구성이 종료되었음을 나타내는 내부적 플래그를 설정할 수 있고(108), 방법은 종료될 수 있다. 구성할 PHY가 있는 경우, SAS 제어기는 각 PHY를 순차적으로(sequentially) 처리하여 그 PHY를 적절한 포트에 추가할 수 있다. 포트는 SAS 제어기에 저장된 구성 데이터에 기초하여 초기에 PHY와 연관될 수 있다. 동작 110에서, SAS 제어기는 각각의 순차 반복(sequential iteration) 동안 각각의 PHY와 연관된 포트가 이미 여하한 기존 멤버 PHY와 연관되어 있는지 여부를 판정한다. 포트가 여하한 기존 멤버 PHY와도 연관되지 않은 경우, SAS 제어기는 포트에 대해 포트 제어기를 할당할 수 있다(112). 그 후 SAS 제어기는 SAS 제어기에 저장된 구성 데이터에 기초하여 PHY가 자동으로 또는 수동으로 구성될지 여부를 결정할 수 있다. PHY가 자동적으로 구성되어야 하는 경우, SAS 제어기는, 그 PHY와 연관된 PHY 구성 데이터 구조에서 PHY가 자동으로 구성되어야 함을 나타내는 플래그를 설정할 수 있다(116); SAS 제어기는 그 후 SAS 제어기에 저장된 구성 데이터에 기초하여 PHY 구성 데이터 구조에 동적 포트 그룹을 나타내는 값을 저장할 수 있다(118); SAS 제어기는 그 후 동적 포트 그룹을 나타내는 글로벌 데이터 구조 내 데이터 요소를 설정하여(120) PHY가 그 동적 포트 그룹에 속한다는 것을 나타낼 수 있다. 반면, PHY가 수동으로 구성될 것인 경우, SAS 제어기는 그 PHY와 연관된 PHY 구성 데이터 구조 내에 PHY가 수동으로 구성되어야 함을 나타내는 플래그를 설정할 수 있다(122). 수동 및 자동으로 구성되는 PHY 양자 모두에 대해, SAS 제어기는, PHY와 연관된 PHY 구성 데이터 구조 내 데이터 요소에 포트 번호를 기록하고, 포트 구성 데이터 구조에 PHY가 그 포트의 멤버임을 나타내는 데이터를 기록함으로써 PHY를 연관 포트의 멤버로서 추가할 수 있다(124); 구체적으로, SAS 제어기는 포트 구성 데이터 구조의 비트 마스크 멤버에 PHY를 나타내는 비트를 설정할 수 있다. SAS 제어기는 그 후 포트 제어기와 연관된 포트 제어기 구성 데이터 구조에 포트 번호를 저장함으로써 포트 제어기와 포트를 연관시킨다(126). SAS 제어기는 그 후, 특히 PHY와 연관된 SAS 제어기 하드웨어 내 데이터 요소를 포트를 고유하게 식별하는 값으로 설정함으로써 포트와 PHY를 연관시킬 수 있다(128). 최종적으로, SAS 제어기는 PHY와 연관된 동적 포트 그룹 및 포트와 같은 PHY에 대한 PHY 구성 정보를 저장할 수 있다(130). 동일한 프로세스가 SAS 내 각 PHY에 대해 수행될 수 있다.
이 방법에 의해, SAS 제어기는 SAS 제어기에 저장된 구성 데이터에 기초하여 초기 상태로 구성될 수 있다. SAS 제어기는 수동으로 구성되는 PHY와 자동으로 구성되는 PHY를 지원할 수 있다; 그러나, 수동으로 구성되는 PHY는 자동으로 구성되는 PHY와 동일한 포트에 연관되어서는 안되는데, 이는 시스템 토폴로지의 변경은 자동으로 구성되는 PHY에 대한 변경을 초래할 수 있는데, 이는 수동으로 구성되는 PHY에 대한 대응하는 변경에 반영되지 않고, 잠재적으로 호환불가능한 포트 할당을 야기할 수 있기 때문이다.
도 2를 참조하면, SAS 제어기가 SAS 제어기 내의 메모리에 저장된 구성 데이터에 기초하여 초기에 구성된 후에 상태 변화 이벤트가 발생할 때마다 SAS 제어기를 자동으로 재구성하는 방법을 위한 예시적인 동작이 도시된다. 상태 변화 이벤트는, SAS 장치가 PHY로부터 접속되거나 접속해제 되는 것, PHY에 접속된 SAS 장치가 재부팅되는 것, 또는 PHY에 접속된 SAS 장치가 꺼지는 것(power down)과 같은 SAS 제어기의 PHY의 상태 변화이다. 상태 변화가 발생할 때마다, SAS 제어기는 SAS 제어기가 재구성을 요구함을 나타내는 내부적인 플래그를 설정할 수 있다. 플래그는 상태 변화 이벤트에 대한 PHY 모니터링 프로세스 및 상태 변화가 발생할 때마다 PHY를 재구성하는 프로세스의 분기를 가능하게 한다. SAS 제어기는 그 후 본 방법을 실행할 수 있다.
SAS 제어기는 먼저 SAS 제어기가 재구성을 요구함을 표시하는 내부적인 플래그를 리셋할 수 있다(200). SAS 제어기는 그 후, 각 반복 전에 처리할 PHY가 있는지 여부를 판정함으로써 (202) SAS 제어기 상의 각 PHY를 반복적으로 처리할 수 있다. 처리되는 각각의 PHY에 대해, SAS 제어기는 PHY 링크가 현재 활성인지 여부를 판정할 수 있다(204); PHY 링크가 데이터를 전송하고 받을 수 있는 SAS 장치에 접속되는 때에 PHY 링크는 활성이다. PHY 링크가 활성이면, SAS 제어기는 다음 PHY로 이동할 수 있고, 활성이 아니면 SAS제어기는 PHY와 연관된 PHY 구성 데이터 구조에 SAS 주소를 저장하는 데이터 요소를 삭제할 수 있다(206). SAS 주소는 PHY에 부착된 SAS 장치의 주소일 수 있다. 단일 SAS 장치가 SAS 제어기 상에서 다수의 PHY에 부착된 경우, 각 PHY와 연관된 각각의 PHY 구성 데이터 구조에 저장된 SAS 주소는 동일할 수 있다. SAS 주소를 저장하는 데이터 요소가 삭제되면, SAS 제어기는 PHY가 자동으로 구성되는지 수동으로 구성되는지를 판정할 수 있다(208); PHY가 수동으로 구성되면, SAS 제어기는 다음 PHY로 이동할 수 있고, PHY가 자동으로 구성되면 SAS 제어기는 특히 PHY와 연관된 SAS 제어기 하드웨어 내 데이터 요소를 무효 값으로 설정할 수 있지만(210), PHY 구성 데이터 구조를 그 현재 상태로 유지할 수 있다. PHY 구성 데이터 구조를 유지함으로써, 이전에 PHY에 부착된 SAS 장치가 재접속되는 경우에 PHY는 이후에 동일한 포트 및/또는 동적 포트 그룹 설정으로 재구성될 수 있다. SAS 제어기는 그러면 각각의 PHY가 처리될 때까지 다음 PHY로 이동할 수 있다.
SAS 제어기 상의 모든 PHY가 처리되면, SAS 제어기는 각각의 PHY를 리셋할 수 있어서 SAS 제어기에 부착된 다른 SAS 장치가 PHY 구성에 대한 변화를 볼 것이다. SAS 제어기는 리셋될 각각의 PHY를 반복적으로(iteratively) 처리할 수 있다(212). 각각의 PHY에 대해, SAS 제어기는 PHY가 자동으로 구성되는지 수동으로 구성되는지 여부를 판정할 수 있다(214); PHY가 수동으로 구성되면, SAS 제어기는 다음 PHY로 이동할 수 있고, PHY가 자동으로 구성되면, SAS 제어기는 PHY가 활성인지 여부를 판정할 수 있다(216). PHY가 비활성이면, SAS 제어기는 다음 PHY로 이동할 수 있고, PHY가 활성이면, SAS 제어기는 다른 자동으로 구성되는 PHY가 존재하는지 여부를 판정할 수 있으며(218), 그러면 현재의 PHY(제1 PHY)를 모든 다른 자동으로 구성되는 PHY와 반복적으로 비교할 수 있는데, 여기서 SAS 제어기는 제1 PHY를, 제1 PHY가 목록 내의 모든 다른 자동으로 구성되는 PHY에 비교될 때까지, 모든 자동으로 구성되는 PHY의 목록으로부터 하나의 다른 자동으로 구성되는 PHY(제2 PHY)에 비교할 수 있다.
SAS 제어기는 먼저 제2 PHY가 활성인지 여부 및 제2 PHY에 관해 상태 변화 이벤트가 발생하였는지 여부를 판정할 수 있다(220). 제2 PHY가 활성이 아닌 경우, 또는 제2 PHY에 관해 상태 변화 이벤트가 발생하지 않은 경우, SAS 제어기는 제1 PHY에 대한 PHY 구성 정보를 저장하고(244) 계속하여 제1 PHY를 다음의 자동으로 구성되는 PHY와 비교할 수 있다. 그렇지 않으면, SAS 제어기는 각각의 PHY 구성 데이터 구조 내 각 PHY에 대한 SAS 주소를 저장하는 데이터 요소를 비교함으로써, 또는 각 PHY에 부착된 SAS 장치로부터 직접 그러한 정보를 질의함으로써 제1 PHY와 제2 PHY가 동일한 SAS 주소를 공유하는지 여부를 판정할 수 있다(222); 제1 PHY와 제2 PHY의 SAS 주소가 상이하면, SAS 제어기는 이들이 동일한 포트에 할당되는지를 판정할 수 있고(224), 동일한 포트에 할당되지 않으면 SAS 제어기는 제1 PHY에 대한 PHY구성 정보를 저장하고(244) 계속하여 제1 PHY와 다음의 자동으로 구성되는 PHY를 비교할 수 있다; 제1 PHY와 제2 PHY가 동일한 포트를 공유하는 경우, SAS 제어기는 새로운 포트를 생성하고(226) 제1 PHY를 새로운 포트와 연관시킬 수 있으며, 그 후 제1 PHY에 대한 PHY 구성 정보를 저장하고(244) 계속하여 제1 PHY를 다음의 자동으로 구성되는 PHY에 비교할 수 있다. 제1 PHY와 제2 PHY가 동일한 주소를 공유하면, SAS 제어기는 제1 PHY와 제2 PHY가 상이한 포트와 연관되지만 동일한 동적 포트 그룹에 있는지 여부를 판정할 수 있다(228). 보통 SAS 장치가 SAS 제어기에 다수의 PHY에 의해 접속되는 때에, 각각의 PHY는 동일한 포트와 연관되어 와이드 포트를 형성한다. 동적 포트 그룹은 동일한 SAS 장치에 접속하는 PHY와 SAS 제어기가 상이한 포트와 연관될 수 있게 하는 인위적인 구조(artificial construct)이다. 재1 PHY와 제2 PHY가 동일한 SAS 주소를 공유하는 경우, 그들은 반드시 동일한 SAS 장치에 접속되어야 한다; 그러므로, 그들이 동일한 동적 포트 그룹에 속한다면, 그들은 또한 동일한 포트와 연관되어야 한다. 만약 그렇다면, SAS 제어기는 제1 PHY에 대한 PHY 구성 정보를 저장하고(244) 계속하여 제1 PHY를 다음의 자동으로 구성되는 PHY와 비교할 수 있다; 만약 그렇지 않다면, 제1 PHY와 제2 PHY 중 하나가 추가적인 재구성을 요할 수 있다. SAS 제어기는 제1 PHY와 연관된 PHY 구성 데이터 구조 내 데이터 요소에 기초하여 마지막 재구성 이래로 제1 PHY의 구성에 여하한 변화가 발생하였는지 여부를 판정할 수 있다(230); 변화가 발생하지 않았다면, SAS 제어기는 제2 PHY와 제1 PHY에 연관된 포트를 연관시키고(232), 제1 PHY에 대한 PHY 구성 정보를 저장하며(244) 계속하여 제1 PHY를 다음의 자동으로 구성되는 PHY와 비교할 수 있다. 제1 PHY에 변화가 이루어졌으면, SAS 제어기는 어떤 PHY가 더 낮은 포트 번호와 연관되는지를 판정할 수 있다(234); 제1 PHY가 더 낮은 포트 번호와 연관되면, SAS 제어기는 제1 PHY와 연관된 포트를 제2 PHY에 할당하고(240) 제2 PHY가 리셋되어야 함을 나타내는 플래그를 설정할 수 있다(242); 제2 PHY가 더 낮은 포트 번호와 연관되면, SAS 제어기는 제2 PHY와 연관된 포트를 제1 PHY에 할당하고(236) 제1 PHY가 다시 리셋되어야 함을 나타내는 플래그를 설정할 수 있다(238). 둘 중 하나의 경우에, SAS 제어기는 그 후 제1 PHY에 대한 PHY 구성 정보를 저장하고(244) 계속하여 제1 PHY를 다음의 자동으로 구성되는 PHY에 비교할 수 있다. 상기 방법은 더 낮은 포트 번호에 대한 선호를 나타낸다; 더 낮은 포트 번호에 대한 선호는 포트 번호 간의 충돌을 해결하기 위한 임의의 조건이고, 이러한 충돌을 해결하기 위한 여하한 결정 메커니즘도 받아들일 수 있다. SAS 제어기가 반복적으로 모든 PHY를 재구성하였고 적절한 포트 번호 변경을 하면, 모든 PHY 구성 데이터 구조는 지속적인 비휘발성 메모리 요소에 저장된다. 이 방법에 의해, SAS 제어기 내 PHY와 연관된 포트와 동적 포트 그룹 정보는 보유되고 SAS 장치가 접속해제되고 후속하여 동일한 PHY에 재접속되는 때에 복구된다. 이 방법은 SAS 제어기에 접속된 SAS 장치의 토폴로지 변화에도 강인하여 SAS 장치가 SAS 제어기 상에서 PHY로부터 접속해제 되고 다른 SAS 장치가 그 PHY에 후속하여 접속되는 때에는 포트 번호와 동적 포트 그룹 설정이 유지되지 않는다.
도 3 및 도 4를 참조하면, 본 발명에 따른 SAS 제어기(400)는 복수의 PHY(304, 306, 308, 310, 312, 및 314), 프로세싱 유닛(410), 및 프로세싱 유닛(410)에 기능적으로 접속된 메모리(412)를 가질 수 있다. 메모리(412)는 플래시 메모리와 같은 소정 유형의 비휘발성 메모리일 수 있다. PHY는 제1 타겟(300)과 제2 타겟(302)와 같은 다른 SAS 장치를 접속하기 위한 SAS 제어기에서의 물리적 접속 포인트이다. SAS 장치는 하나 이상의 PHY에 의해 SAS 제어기에 접속될 수 있다; 예를 들어, 제1 타겟(300)은 제1 PHY(304) 및 제2 PHY(306)에 접속될 수 있는 한편, 제2 타겟은 제3 PHY(308), 제4 PHY(310), 제5 PHY(312) 및 제6 PHY(314)에 접속될 수 있다. SAS 제어기는 통상 PHY를 포트와 연관시킨다. 포트는, SAS 장치가 특정 PHY가 아니라 포트로 및 포트로부터 데이터 패킷을 보내고 받을 수 있게 함으로써 SAS 제어기(400)에서 통신을 용이하게 하도록 설계된 인위적인 구조이다. 포트는 PHY보다 더 높은 수준의 통신 메커니즘이다. 단일 SAS 장치가 하나 이상의 PHY를 통해 SAS 제어기(400)에 접속되는 경우, SAS 제어기(400)는 SAS 장치를 SAS 제어기(400)에 연결하는 각각의 PHY에 동일한 포트를 할당할 수 있다; 예를 들어, 제1 PHY(304)와 제2 PHY(306)는 모두 제1 포트(316)과 연관될 수 있다. 그러나, SAS 장치와 SAS 제어기(400) 사이의 멀티 PHY 접속을 하나 이상의 포트로 분리하는 것도 유리할 수 있다. SAS 제어기(400)는 제1 동적 포트 그룹(334) 및 제2 동적 포트 그룹(336)을 이용하여 제2 타겟(302)과 같은 SAS 장치를 SAS 제어기(400)에 접속하는 다수의 PHY를 나눌 수 있다. 제1 동적 포트 그룹(334)에서 제3 PHY(308)는 제2 포트(318)와 연관될 수 있는 한편, 제2 동적 포트 그룹(336)에서 제4 PHY(310), 제5 PHY(312) 및 제6 PHY(314)는 제3 포트(320)와 연관될 수 있다. 각각의 포트는 고유한 포트 제어기와 연관될 수 있다; 예를 들어, 제1 포트(316)는 제1 포트 제어기(322)와 연관될 수 있고, 제2 포트(318)는 제2 포트 제어기(234)와 연관될 수 있으며, 제3 포트(320)는 제4 포트 제어기(328)와 연관될 수 있다. SAS 제어기(400)는 여하한 포트와도 연관되지 않은 포트 제어기를 유지할 수 있다; 예를 들어, 제1 동적 포트 그룹(334) 내의 제3 포트 제어기(326) 및 제2 동적 포트 그룹(336) 내의 제4 포트 제어기(330) 및 제6 포트 제어기(332)가 SAS 제어기(400)에 의해 유지될 수 있다; 연관되지 않은 포트는 부착된 SAS 장치 토폴로지가 변경되는 때에 사용될 수 있다. 포트 제어기는 포트 제어기에 연관된 포트와 연관된 PHY에 부착된 SAS 장치의 SAS주소를 포함하는 데이터 요소이다. 포트 제어기에 포함된 정보는 업링크에서 전송되는 정보를 식별하는 때 사용된다.
SAS 제어기(400)는 메모리(412)에 저장된 소정의 초기 구성 데이터에 기초하여 모든 PHY를 초기화하고 각각의 PHY를 포트와 연관시킬 수 있다. 초기 구성 데이터는 각각의 수동으로 구성되는 PHY와 연관된 포트와 각각의 자동으로 구성되는 PHY와 연관되는 동적 포트 그룹을 포함할 수 있다. SAS 제어기(400)는 초기에 동일한 동적 포트 그룹 내 모든 자동으로 구성되는 PHY를 동일한 포트에 연관시켜 그 동적 포트 그룹에서 하나의 초기 와이드 포트를 생성할 수 있다. SAS 제어기는 그 후 상태 변화 이벤트에 대해 각각의 PHY를 모니터링하고, 후속하여 새로운 포트를 생성하고 여기 설명된 방법 및 기준에 따라 필요에 따라 그들 포트를 PHY와 연관시킬 수 있다.
제1 타겟(300)과 같은 부착된 SAS 장치가 전력을 잃거나, 재부팅되거나 기타 SAS 제어기(400)로부터 접속해제되는 경우에, SAS 제어기(400)는 제1 PHY(304) 및 제2 PHY(306)에서 상태 변화 이벤트를 등록할 수 있다. SAS 제어기(400)는 제1 PHY(304) 및 제2 PHY(306)와 연관되는 PHY 구성 데이터 구조에서 그들 PHY가 재구성을 요함을 나타내는 플래그를 설정할 수 있다; SAS 제어기(400)는 PHY가 재구성을 요함을 나태나는 글로벌 플래그를 설정할 수도 있다. 그 PHY에 대한 PHY 구성 데이터 구조에서 자동으로 구성되는 것으로 지정된 PHY만이 완전한 재구성을 겪게 된다; 수동으로 구성되는 PHY와 연관되는 포트는 상태 변화 이벤트가 발생한 경우에도 정적으로(statically) 구성되도록 유지될 수 있다.
SAS 제어기(400)는 상태 변화 이벤트를 겪은 것으로 플래그된 모든 PHY를 재구성할 수 있다. 본 예에서, SAS 제어기(400)는 먼저 제1 PHY(304)가 활성인지 여부를 판정할 수 있다. 제1 PHY(304)가 활성이 아니면, SAS 제어기(400)는 제1 PHY(304)와 연관된 PHY 구성 데이터 구조에 저장된 제1 타겟(300)의 SAS 주소를 삭제할 수 있다. 그리고 제1 PHY(304)가 자동으로 구성된다면, SAS 제어기(400)는 제1 PHY(304)와 연관되는 하드웨어 링크 앨리어스를 무효인 값으로 설정하여 어떤 SAS 장치도 제1 PHY(304)를 통해 제1 타겟(300)과 통신을 시도할 수 없도록 보장할 수 있다. SAS 제어기(400)는 그 후 제2 PHY(306)에 대해 동일한 과정을 수행할 수 있다. 그 후, 더 이상의 PHY가 상태 변화 이벤트를 겪지 않은 경우, SAS 제어기(400)는 제1 PHY(304) 및 제2 PHY(306)를 리셋할 수 있고, 각각의 PHY에 대한 PHY 구성 데이터 구조에서 적절한 플래그를 리셋하여 PHY가 리셋되었음을 나타낼 수 있다. 이 경우에, SAS 제어기(400)는 제1 PHY(304)가 자동으로 구성되고 제1 PHY(304)가 비활성임을 판정할 수 있다. 제1 PHY(304)가 비활성이면, 더 이상의 구성은 요구되지 않을 수 있다. SAS 제어기는 제2 PHY(306)에 대해 동일한 과정을 수행할 수 있다. SAS 제어기는 그들 각각의 PHY 구성 데이터 구조에 저장되는 제1 PHY(304) 및 제2 PHY(306)에 관한 포트 및 동적 포트 그룹 정보 모두를 메모리(412) 내에 유지할 수 있다. 상태 변화 이벤트 후에 PHY와 연관된 포트 및 동적 포트 그룹 정보를 보존함으로써, SAS 제어기는 동일한 PHY 또는 PHY들에 부착된 동일한 SAS 장치가 재활성화되는 이후의 상태 변화 이벤트 후에 PHY를 그의 원래의 구성으로 복원할 수 있다.
제1 타겟(300)과 같은 부착된 SAS 장치가 전력을 잃거나, 재부팅되거나 기타 SAS 제어기(400)로부터 접속해제된 후에 SAS 제어기(400)에 재접속되는 때에, SAS 제어기(400)는 제1 PHY(304) 및 제2 PHY(306)에 상태 변화 이벤트를 등록하여 그들 PHY가 재구성을 요함을 나타낼 수 있다; SAS 제어기(400)는 PHY가 재구성을 요함을 나타내는 글로벌 플래그를 설정할 수도 있다. 제1 PHY(304)와 제2 PHY(306)가 이전에 활성화된 경우, 그들 PHY와 연관된 포트 및 동적 포트 그룹 정보는 메모리(412) 내 PHY 구성 데이터 구조에 저장되게 된다. SAS 제어기(400)는 먼저 제1 PHY(304)가 활성인지 여부를 판정할 수 있다. 제1 PHY(304)가 활성인 경우, SAS 제어기(400)는 제1 PHY(304)와 연관되는 PHY 구성 데이터 구조에 제1 타겟(300)의 SAS 주소를 저장하고 제1 PHY(304)와 연관되는 하드웨어 링크 앨리어스를 PHY와 포트 사이의 연관을 나타내는 적당한 값으로 설정할 수 있다. 그 후 SAS 제어기(400)는 제2 PHY(306)에 대해 동일한 과정을 수행할 수 있다. 그 후 SAS 제어기(400)는 제1 PHY(304)와 제2 PHY(306)를 리셋할 수 있고, 각각의 PHY에 대한 PHY 구성 데이터 구조 내 적절한 플래그를 리셋하여 PHY가 리셋되었음을 나타낼 수 있다. 이 경우에, SAS 제어기(400)는 제1 PHY(304)가 자동으로 구성되고 제1 PHY(304)가 활성임을 판정할 수 있다. SAS 제어기(400)는 그 후 제 1 PHY(304)를 모든 다른 자동으로 구성되는 PHY와 비교하여 여하한 자동으로 구성되는 PHY의 구성에서의 충돌을 식별 및 정정할 수 있다. 제1 PHY(304)와 제2 PHY(306)를 비교하여, SAS 제어기(400)는 제2 PHY(306)가 활성이고 상태 변화 이벤트를 겪었다고 판정할 수 있다. SAS 제어기(400)는 그 후 SAS 장치의 SAS 주소에 기초하여 제1 PHY(304)와 제2 PHY(306)가 동일한 SAS 장치에 부착되는지 여부를 판정할 수 있다. 제1 PHY(304)와 제2 PHY(306)가 동일한 SAS 장치에 부착된 경우, SAS 제어기(400)는 각 PHY와 연관되는 PHY 구성 데이터 구조에 저장되는 PHY 구성 데이터에 기초하여 제1 PHY(304)와 제2 PHY(306)가 동일한 동적 포트 그룹 내 상이한 포트에 연관되는지 여부를 판정할 수 있다. 본 예에서, 제1 PHY(304)와 제2 PHY(306)는 동일한 동적 포트 그룹 내의 상이한 포트와 연관되지 않고, 그러므로 제1 PHY(304)와 제2 PHY(306)의 구성 설정 사이에 충돌이 없으며, SAS 제어기(400)는 진행하여 제1 PHY(304)를 제3 PHY(308) 등의 다른 자동으로 구성되는 PHY와 비교할 수 있다. 제3 PHY(308)가 상태 변화 이벤트를 겪지 않았으면, 추가의 구성이 필요하지 않다. 제4 PHY(310), 제5 PHY(312) 및 제6 PHY(314)에 대해서도 동일하다. 그에 의해 SAS 제어기는, 비활성화된 후에 재활성화된 PHY를 그의 원래 포트 및 동적 포트 그룹 구성으로 복원하기 위해, 다수의 상태 변화 이벤트 후에 PHY를 자동으로 재구성하였다.
본 개시는 특정 실시형태의 관점에서 설명되었지만, 당업자는 본 개시의 범위 내에 있는 다양한 변경이 이루어질 수 있음을 인식할 것이다. 그러므로, 본 개시의 범위는 이상의 설명으로 제한되어서는 안된다. 오히려, 본 개시의 범위는 여기에 기재된 청구범위에 기초하여, 그의 균등물의 전범위를 포함하는 것으로 결정되어야 한다.

Claims (20)

  1. 프로세서와,
    상기 프로세서에 동작 가능하게(operably) 접속되고, 포트 및 PHY 구성 정보를 저장하도록 구성되는 비휘발성 메모리와,
    상기 프로세서에 동작 가능하게 접속되고, 각각이 SAS 장치에 접속되도록 구성되는 복수의 PHY와,
    상기 프로세서 상에서 실행되는 상기 복수의 PHY중 적어도 하나를 자동으로 구성하고,
    상기 메모리에 PHY 구성 정보를 저장하고,
    상기 PHY 구성 정보를 저장한 후에 발생하는 상태 변화 이벤트에 응답하여 상기 저장된 PHY 구성 정보에 기초하여 상기 하나 이상의 PHY를 재구성하도록 구성된
    컴퓨터 실행가능 프로그램 코드를 포함하는
    SAS 제어기 장치.
  2. 제 1 항에 있어서,
    상기 하나 이상의 PHY에 접속된 SAS 장치가 상기 하나 이상의 PHY로의 접속을 상실하고 개재하는(intervening) SAS 장치가 상기 하나 이상의 PHY에 접속되지 않은 때에 후속하여 상기 하나 이상의 PHY로의 접속을 재획득하는
    SAS 제어기 장치.
  3. 제 1 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는,
    상기 복수의 PHY 중 하나가 자동으로 구성됨을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관된 데이터 구조 내 데이터 요소를 설정하고,
    상기 복수의 PHY 중 상기 하나가 동적 포트 그룹의 멤버임을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관된 데이터 구조에 동적 포트 그룹 정보를 저장하고,
    상기 복수의 PHY 중 상기 하나가 적어도 하나의 포트의 멤버임을 나타내는, 상기 적어도 하나의 포트와 연관되는 데이터 구조 내 데이터 요소를 설정하고,
    적어도 하나의 포트가 포트 제어기와 연관됨을 나타내는, 상기 포트 제어기와 연관된 데이터 구조 내 데이터 요소를 설정하고,
    상기 복수의 PHY 중 상기 하나가 상기 적어도 하나의 포트와 연관됨-상기 적어도 하나의 포트는 멤버 PHY를 가짐-을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관된 하드웨어 링크 앨리어스(alias)와 연관된 데이터 구조 내 데이터 요소를 설정하도록
    더 구성된
    SAS 제어기 장치.
  4. 제 1 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    적어도 하나의 포트에 대해 포트 제어기를 할당-상기 적어도 하나의 포트는 멤버 PHY를 갖지 않음-하고,
    상기 복수의 PHY 중 하나가 자동으로 구성됨을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관된 데이터 구조 내 데이터 요소를 설정하고,
    상기 복수의 PHY 중 상기 하나가 소정 동적 포트 그룹의 멤버임을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관된 데이터 구조 내에 동적 포트 그룹 정보를 저장하고,
    상기 복수의 PHY 중 상기 하나가 소정의 동적 포트 그룹의 멤버임을 나타내는 데이터 구조 내 데이터 요소를 설정하고,
    상기 복수의 PHY 중 상기 하나가 상기 적어도 하나의 포트의 멤버임을 나타내는, 상기 적어도 하나의 포트와 연관되는 데이터 구조 내 데이터 요소를 설정하고,
    적어도 하나의 포트가 포트 제어기와 연관됨을 나타내는, 상기 포트 제어기와 연관되는 데이터 구조 내 데이터 요소를 설정하고,
    상기 복수의 PHY 중 상기 하나가 상기 적어도 하나의 포트와 연관됨-상기 적어도 하나의 포트는 멤버 PHY를 가짐-을 나타내는, 상기 복수의 PHY 중 상기 하나와 연관되는 하드웨어 링크 앨리어스와 연관된 데이터 구조 내 데이터 요소를 설정하도록
    더 구성되는
    SAS 제어기 장치.
  5. 제 1 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    상기 복수의 PHY 중 하나 이상이 상태 변화 이벤트를 겪었는지 여부를 판정하고,
    상기 복수의 PHY 중 하나가 활성인지 여부를 판정하고,
    상기 복수의 PHY 중 상기 하나가 자동으로 구성되는지 여부를 판정하도록
    더 구성되는
    SAS 제어기 장치.
  6. 제 5 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    SAS 주소를 저장하도록 구성된 데이터 요소로부터 SAS 주소를 삭제하고,
    상기 복수의 PHY 중 상기 하나를 지칭하도록 구성된 하드웨어 링크 앨리어스를 소정의 무효인 값으로 설정-상기 복수의 PHY 중 상기 하나는 비활성이고 자동으로 구성됨-하도록
    더 구성되는
    SAS 제어기 장치.
  7. 제 5 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    상기 복수의 PHY 중 상기 하나를 상기 복수의 PHY 중 제2 PHY에 비교-상기 복수의 PHY 중 상기 제2 PHY는 자동으로 구성되고, 상기 복수의 PHY 중 상기 제2 PHY는 상태 변화 이벤트를 겪었음-하고,
    상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 단일 SAS 장치에 부착되는지 여부를 판정-상기 복수의 PHY 중 상기 하나는 활성이고 자동으로 구성됨-하도록
    더 구성되는
    SAS 제어기 장치.
  8. 제 7 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    신규 포트를 생성하고,
    상기 복수의 PHY 중 상기 하나를 상기 신규 포트와 연관-상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY는 동일한 SAS 장치에 부착되지 않으며 상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY는 동일한 포트와 연관됨-시키도록
    더 구성되는
    SAS 제어기 장치.
  9. 제 7 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 포트와 연관되도록 상기 복수의 PHY 중 상기 하나에 대한 구성 정보를 수정-상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 동적 포트 그룹 내 상이한 포트와 연관되고, 상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 SAS 장치에 부착됨-하고,
    상기 복수의 PHY 중 상기 하나와 연관된 데이터 구조 내 데이터 요소를 설정-상기 데이터 요소는 상기 복수의 PHY 중 상기 하나가 추가의 리셋 동작을 요구함을 나타내도록 구성됨-하도록
    더 구성되는
    SAS 제어기 장치.
  10. 제 7 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는
    상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 포트와 연관되도록 상기 복수의 PHY 중 상기 제2 PHY에 대한 구성 정보를 수정-상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 동적 포트 그룹 내 상이한 포트와 연관되고, 상기 복수의 PHY 중 상기 하나와 상기 복수의 PHY 중 상기 제2 PHY가 동일한 SAS 장치에 부착됨-하고,
    상기 복수의 PHY 중 상기 제2 PHY와 연관된 데이터 구조 내 데이터 요소를 설정-상기 데이터 요소는 상기 복수의 PHY 중 상기 제2 PHY가 추가의 리셋 동작을 요구함을 나타내도록 구성됨-하도록
    더 구성되는
    SAS 제어기 장치.
  11. SAS 제어기에서 PHY를 구성하는 방법으로서,
    상기 SAS 제어기에서 적어도 하나의 포트를 초기화하는 단계와,
    상기 SAS 제어기에서 적어도 하나의 포트 제어기를 초기화하는 단계와,
    상기 적어도 하나의 포트가 멤버 PHY를 갖는지 여부를 판정하는 단계와,
    상기 적어도 하나의 포트를 상기 PHY와 연관시키는 단계와,
    상기 적어도 하나의 포트 제어기를 상기 적어도 하나의 포트와 연관시키는 단계와,
    상기 PHY와 연관된 구성 정보를 저장하는 단계와,
    상기 PHY와 연관된 구성 정보를 저장한 후에 발생하는 상태 변화 이벤트에 응답하여 상기 PHY와 연관된 저장된 구성 정보에 기초하여 상기 PHY를 구성 상태로 복원하는 단계를 포함하는
    PHY 구성 방법.
  12. 제 11 항에 있어서,
    상기 PHY가 자동으로 구성됨을 나타내는, 상기 PHY와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 소정 동적 포트 그룹의 멤버임을 나타내는, 상기 PHY와 연관된 데이터 구조에 동적 포트 그룹 정보를 저장하는 단계와,
    상기 PHY가 소정 동적 포트 그룹의 멤버임을 나타내는, 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 상기 적어도 하나의 포트의 멤버임을 나타내는, 상기 적어도 하나의 포트와 연관되는 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 적어도 하나의 포트가 포트 제어기와 연관됨을 나타내는, 상기 포트 제어기와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 상기 적어도 하나의 포트와 연관됨을 나타내는, 상기 PHY와 연관된 하드웨어 링크 앨리어스(alias)와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계를 더 포함하고,
    상기 적어도 하나의 포트는 멤버 PHY를 갖는,
    PHY 구성 방법.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 포트에 대한 포트 제어기를 할당하는 단계를 더 포함하고,
    상기 적어도 하나의 포트는 멤버 PHY를 갖지 않는
    PHY 구성 방법.
  14. 제 12 항에 있어서,
    상기 PHY가 자동으로 구성됨을 나타내는, 상기 PHY와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 소정 동적 포트 그룹의 멤버임을 나타내는, 상기 PHY와 연관된 데이터 구조에 동적 포트 그룹 정보를 저장하는 단계와,
    상기 PHY가 소정 동적 포트 그룹의 멤버임을 나타내는, 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 상기 적어도 하나의 포트의 멤버임을 나타내는, 상기 적어도 하나의 포트와 연관되는 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 적어도 하나의 포트가 상기 포트 제어기와 연관됨을 나타내는, 상기 포트 제어기와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계와,
    상기 PHY가 상기 적어도 하나의 포트와 연관됨을 나타내는, 상기 PHY와 연관된 하드웨어 링크 앨리어스와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계를 더 포함하는
    PHY 구성 방법.
  15. SAS 제어기에 의하여 상기 SAS 제어기 내의 PHY를 재구성하는 방법으로서,
    상기 SAS 제어기에 의하여, 상기 PHY가 활성인지 여부를 판정하는 단계와,
    상기 SAS 제어기에 의하여, 상기 PHY가 자동으로 구성되는지 여부를 판정하는 단계와,
    상기 SAS 제어기에 의하여, 상기 PHY와 연관된 구성 정보를 저장하는 단계와,
    상기 SAS 제어기에 의하여, 상기 PHY와 연관된 저장된 구성 정보에 기초하여 구성 상태로 상기 PHY를 복원하는 단계를 포함하고,
    상기 PHY와 연관된 구성 정보를 저장한 후에 상기 PHY는 상태 변화 이벤트를 겪은,
    PHY 재구성 방법.
  16. 제 15 항에 있어서,
    SAS 주소를 저장하도록 구성된 데이터 요소로부터 SAS 주소를 삭제하는 단계와,
    상기 PHY를 지칭하도록 구성된 하드웨어 링크 앨리어스를 소정의 무효인 값으로 설정하는 단계를 더 포함하고,
    상기 PHY는 비활성이고, 상기 PHY는 자동으로 구성되는
    PHY 재구성 방법.
  17. 제 15 항에 있어서,
    상기 PHY를 제2 PHY와 비교하는 단계-상기 제2 PHY는 자동으로 구성되고, 상기 제2 PHY는 상태 변화 이벤트를 겪음-와,
    상기 PHY와 상기 제2 PHY가 단일 SAS 장치에 부착되는지 여부를 판정하는 단계를 더 포함하고,
    상기 PHY는 활성이고 상기 PHY는 자동으로 구성되는
    PHY 재구성 방법.
  18. 제 17 항에 있어서,
    신규 포트를 생성하는 단계와,
    상기 PHY를 상기 신규 포트와 연관시키는 단계를 더 포함하고,
    상기 PHY와 상기 제2 PHY는 동일한 SAS 장치에 부착되지 않으며 상기 PHY와 상기 제2 PHY는 동일한 포트와 연관되는
    PHY 재구성 방법.
  19. 제 17 항에 있어서,
    상기 PHY와 상기 제2 PHY가 동일한 포트와 연관되도록 상기 PHY에 대한 구성 정보를 수정하는 단계-상기 PHY와 상기 제2 PHY가 동일한 동적 포트 그룹 내 상이한 포트와 연관되고, 상기 PHY와 상기 제2 PHY가 동일한 SAS 장치에 부착됨-와,
    상기 PHY와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계-상기 데이터 요소는 상기 PHY가 추가의 리셋 동작을 요구함을 나타내도록 구성됨-를 더 포함하는
    PHY 재구성 방법.
  20. 제 17 항에 있어서,
    상기 PHY와 상기 제2 PHY가 동일한 포트와 연관되도록 상기 제2 PHY에 대한 구성 정보를 수정하는 단계-상기 PHY와 상기 제2 PHY가 동일한 동적 포트 그룹 내 상이한 포트와 연관되고, 상기 PHY와 상기 제2 PHY가 동일한 SAS 장치에 부착됨-와,
    상기 제2 PHY와 연관된 데이터 구조 내 데이터 요소를 설정하는 단계-상기 데이터 요소는 상기 제2 PHY가 추가의 리셋 동작을 요구함을 나타내도록 구성됨-를 더 포함하는
    PHY 재구성 방법.
KR1020120009174A 2011-02-07 2012-01-30 Sas 제어기 장치, phy 구성 방법 및 phy 재구성 방법 KR101278787B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/021,890 US8219719B1 (en) 2011-02-07 2011-02-07 SAS controller with persistent port configuration
US13/021,890 2011-02-07

Publications (2)

Publication Number Publication Date
KR20120090805A KR20120090805A (ko) 2012-08-17
KR101278787B1 true KR101278787B1 (ko) 2013-06-25

Family

ID=45557994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120009174A KR101278787B1 (ko) 2011-02-07 2012-01-30 Sas 제어기 장치, phy 구성 방법 및 phy 재구성 방법

Country Status (6)

Country Link
US (1) US8219719B1 (ko)
EP (1) EP2485154A1 (ko)
JP (1) JP5128708B2 (ko)
KR (1) KR101278787B1 (ko)
CN (1) CN102693201B (ko)
TW (1) TWI393012B (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8769070B2 (en) 2010-03-19 2014-07-01 Netapp, Inc. SAS domain management and SSP data handling over ethernet
JP5736870B2 (ja) * 2011-03-16 2015-06-17 富士通株式会社 ストレージ装置、コントローラおよびアドレス管理方法
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US8856392B2 (en) * 2012-07-16 2014-10-07 Hewlett-Packard Development Company, L.P. Dividing a port into smaller ports
TW201416852A (zh) * 2012-10-23 2014-05-01 Hon Hai Prec Ind Co Ltd 磁碟陣列卡自動修護方法及系統
US9344383B2 (en) * 2012-11-07 2016-05-17 Dell Products L.P. Event driven network system
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9425912B2 (en) * 2013-05-15 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Lane-based multiplexing for physical links in serial attached small computer system interface architectures
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10565041B2 (en) * 2017-05-19 2020-02-18 Western Digital Technologies, Inc. Managing phys of a data storage target device
US10359948B2 (en) 2017-08-28 2019-07-23 International Business Machines Corporation I/O performance in heterogeneous storage environments
CN108900365B (zh) * 2018-09-11 2021-04-27 北京腾凌科技有限公司 数据传输方法及装置
CN111984568B (zh) * 2020-08-27 2023-01-10 苏州浪潮智能科技有限公司 一种sas控制器phy端口极性自适应的方法、系统

Citations (2)

* 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
US20060230125A1 (en) * 2005-03-22 2006-10-12 Johnson Stephen B System and method for SAS PHY dynamic configuration

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539096B2 (en) * 2003-09-26 2013-09-17 Lsi Corporation Systems and methods for configuring ports of an SAS domain
US7502865B2 (en) 2003-12-18 2009-03-10 Intel Corporation Addresses assignment for adaptor interfaces
US7676613B2 (en) * 2004-08-03 2010-03-09 Lsi Corporation Methods and structure for assuring correct data order in SATA transmissions over a SAS wide port
US7644168B2 (en) * 2004-11-05 2010-01-05 Hewlett-Packard Development Company, L.P. SAS expander
US8301810B2 (en) * 2004-12-21 2012-10-30 Infortrend Technology, Inc. SAS storage virtualization controller, subsystem and system using the same, and method therefor
US8332560B2 (en) * 2005-07-11 2012-12-11 Dell Products L.P. System and method for identifying inoperable connection points in a storage enclosure
US7412631B2 (en) * 2005-09-13 2008-08-12 Lsi Corporation Methods and structure for verifying domain functionality
US20070094472A1 (en) * 2005-10-20 2007-04-26 Dell Products L.P. Method for persistent mapping of disk drive identifiers to server connection slots
US20070093124A1 (en) * 2005-10-20 2007-04-26 Lsi Logic Corporation Methods and structure for SAS expander optimization of SAS wide ports
JP4775846B2 (ja) * 2006-03-20 2011-09-21 株式会社日立製作所 物理リンクの割当てを制御するコンピュータシステム及び方法
US8082368B2 (en) * 2006-04-21 2011-12-20 Infortrend Technology, Inc. Display device for indicating connection statuses of a communication channel provided between two systems and method thereof
US7673185B2 (en) * 2006-06-08 2010-03-02 Dot Hill Systems Corporation Adaptive SAS PHY configuration
US7536584B2 (en) * 2006-06-08 2009-05-19 Dot Hill Systems Corporation Fault-isolating SAS expander
US7761540B2 (en) * 2006-10-17 2010-07-20 Dell Products L.P. System and method for automated remote booting in a serial attached SCSI environment
JP5175483B2 (ja) * 2007-03-30 2013-04-03 株式会社日立製作所 ストレージ装置及びその制御方法
US7719287B2 (en) * 2007-04-05 2010-05-18 Dell Products L.P. Systems and method for monitoring information handling system interfaces through cables having plural links
US7882509B2 (en) 2007-06-29 2011-02-01 Emulex Design & Manufacturing Corporation Expander-based solution to the dynamic STP address problem
JP4945363B2 (ja) * 2007-07-30 2012-06-06 株式会社日立製作所 バックエンドで接続されるストレージシステム
US20090037565A1 (en) 2007-08-02 2009-02-05 International Business Machines Corporation Address mapping scheme for sas zoning
US8417858B2 (en) * 2008-05-07 2013-04-09 Emulex Design & Manufacturing Corporation System and method for enabling multiple processors to share multiple SAS wide ports
US20100049919A1 (en) * 2008-08-21 2010-02-25 Xsignnet Ltd. Serial attached scsi (sas) grid storage system and method of operating thereof
US20110022736A1 (en) * 2009-07-21 2011-01-27 Lsi Corporation Methods and apparatus dynamic management of multiplexed phys in a serial attached scsi domain
JP5327036B2 (ja) * 2009-12-21 2013-10-30 富士通株式会社 記憶装置接続装置,ストレージ装置,情報管理方法及び情報管理プログラム

Patent Citations (2)

* 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
US20060230125A1 (en) * 2005-03-22 2006-10-12 Johnson Stephen B System and method for SAS PHY dynamic configuration

Also Published As

Publication number Publication date
JP5128708B2 (ja) 2013-01-23
TW201237634A (en) 2012-09-16
US8219719B1 (en) 2012-07-10
JP2012164304A (ja) 2012-08-30
CN102693201A (zh) 2012-09-26
CN102693201B (zh) 2015-11-25
TWI393012B (zh) 2013-04-11
EP2485154A1 (en) 2012-08-08
KR20120090805A (ko) 2012-08-17

Similar Documents

Publication Publication Date Title
KR101278787B1 (ko) Sas 제어기 장치, phy 구성 방법 및 phy 재구성 방법
US10986174B1 (en) Automatic discovery and configuration of server nodes
JP7028590B2 (ja) セルフ構成するbmc及びその動作方法
US10921994B2 (en) Managing storage array configuration
US9015519B2 (en) Method and system for cluster wide adaptive I/O scheduling by a multipathing driver
CN112130748B (zh) 一种数据访问方法、网卡及服务器
US20180032471A1 (en) Self-configuring ssd multi-protocol support in host-less environment
CN114868117B (zh) 通过控制总线进行的对等存储设备消息传送
CN111475104A (zh) 一种存储设备数据在线迁移方法、系统、终端及存储介质
CN114008545A (zh) 连接到微处理器的可配置存储器设备
TW201629757A (zh) 端點伺服器的控制模組及其韌體更新方法
US11029882B2 (en) Secure multiple server access to a non-volatile storage device
US9256566B1 (en) Managed reliability of data storage
US11983138B2 (en) Self-configuring SSD multi-protocol support in host-less environment
US20210334010A1 (en) Input-output path selection using switch topology information
US20150363346A1 (en) Sata initiator addressing and storage device slicing
US11144496B2 (en) Self-configuring SSD multi-protocol support in host-less environment
US9785520B2 (en) Computer system, storage apparatus and control method
CN110928820B (zh) 串行小型计算机系统接口区域自动配置的系统和方法
CN116208495B (zh) 一种网络性能的调优方法、bmc及服务器
US11675580B2 (en) Image-based operating system upgrade process
US20230325343A1 (en) Self-configuring ssd multi-protocol support in host-less environment
CN114063878A (zh) 一种配置修改方法、装置及相关设备
CN114978660A (zh) 带外网络的构建方法和基于带外网络的带外处理方法
CN116225342A (zh) 一种Openstack块存储部署方法、系统、设备以及存储介质

Legal Events

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

Payment date: 20180601

Year of fee payment: 6