KR20060025135A - 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기 - Google Patents

재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기 Download PDF

Info

Publication number
KR20060025135A
KR20060025135A KR1020057020009A KR20057020009A KR20060025135A KR 20060025135 A KR20060025135 A KR 20060025135A KR 1020057020009 A KR1020057020009 A KR 1020057020009A KR 20057020009 A KR20057020009 A KR 20057020009A KR 20060025135 A KR20060025135 A KR 20060025135A
Authority
KR
South Korea
Prior art keywords
data
physical
ports
logical
port
Prior art date
Application number
KR1020057020009A
Other languages
English (en)
Inventor
마이클 씨. 스톨로위츠
Original Assignee
네트셀 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네트셀 코포레이션 filed Critical 네트셀 코포레이션
Publication of KR20060025135A publication Critical patent/KR20060025135A/ko

Links

Images

Classifications

    • 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
    • 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/061Improving I/O performance
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

디스크 어레이 제어기 장치(10)는 호스트(12)와 인터페이스하기 위한 적어도 두 개 논리적 포트(논리적 포트#0, 논리적 포트#3)와 하나 이상의 물리적 포트(물리적 포트#0 - 물리적 포트#4)를 구비하며, 상기 무리적 포트 각각은 적어도 하나의 디스크 드라이브를 제어기에 부착하도록 배열되며, 상기 제어기는 스위치(26)를 구비하며, 상기 스위치는 매핑 레지스터(24)의 컨텐츠에 응답하여 논리적 데이터 포트와 물리적 데이터 포트 사이에 데이트 경로를 드라마틱하게 구성한다. 상기 매핑 레지스터는 논리적 매핑 레지스터로서 조직될 수 있으며, 제어기의 각 논리적 포트에 대한 필드를 구비하며, RAID 작동을 위하여 중복 어레이를 설계하기 위한 설비를 구비한다.
레지스터, 인터페이스, 디스크 어레이, 물리적 포트, 논리적 포트.

Description

재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기{DISK ARRAY CONTROLLER WITH RECONFIGURABLE DATE PATH}
관련 출원
본원은 2003년 4월 21일자로 출원된 미국 가출원 제60/464,892호의 일부 연속 출원으로 그 우선권을 주장한다. 상기 가출원은 본원에 참조로서 원용된다.
저작권 안내
2003-2004 넷셀 코포레이션(Netcell Corporation). 본 명세서에 개시된 일부 내용은 저작권 보호를 받는 자료를 포함한다. 저작권자는 특허청 특허 파일 또는 기록물로서 표현되는 특허 문서 또는 특허 공개에 의한 복사를 반대하지 않지만, 그 이외의 어떠한 것이라도 모든 저작권을 유지한다. 37CFR§1.71(d)
기술 분야
본 발명은 디지털 데이터 저장 시스템에 관한 것으로, 보다 구체적으로 설명하면, 디지털 데이터 저장 및 검색을 위한 개선된 디스크 어레이 제어기 기술에 관한 것이다.
도면의 간단한 설명
도 1은 호스트 버스와 상호 작용하기 위한 호스트 인터페이스(host interface)와, 다수의 부착된 디스크 드라이브와 상호 작용하기 위한 드라이브 인 터페이스(drive interface)를 제공하는 디스크 어레이 제어기의 개략적인 블록도이다.
도 2A는 논리적 데이터 포트와 물리적 데이터 포트간의 직접 접속을 도시하는 개념도로서, 대응하는 매핑 레지스터 컨텐츠를 도시한다.
도 2B는 이용 가능한 5개의 물리적 데이터 포트에 대한 4개의 논리적 포트의 할당의 일례를 도시하는 개념도로서, 대응하는 매핑 레지스터 컨텐츠를 도시한다.
도 2C는 드라이브 각각이 5개의 이용가능한 물리적 데이터 포트 중 하나에 할당되어 있는 투(two)-드라이브 어레이를 도시하는 개념도로서, 매핑 레지스터 컨텐츠를 도시한다.
도 2D는 논리적 포트(#0-#3)가 데이터를 연속 주기로 물리적 포트(#3)에 전달하는 싱글(single)-드라이브 시스템을 도시하는 개념도로서, 매핑 레지스터 컨텐츠를 도시한다.
도 3A는 도 2A의 드라이브 구조에서 디스크 기록 방향의 XOR 논리를 도시하는 것으로, 대응하는 매핑 레지스터 컨텐츠를 나타낸다
도 3B는 물리적 포트#2에 부착되어 있는 드라이브가 손상되어 있지 않은 것을 제외하고, 도 2A 및 도 3A와 동일한 데이터 경로에 대한 디스크 판독 방향의 XOR 논리를 도시하는 것으로, 다시 매핑 레지스터 컨텐츠를 나타낸다.
도 4는 매핑 레지스터 구조의 일례로서, 상기 매핑 레지스터는 어레이 제어기의 일실시예에서 논리적 데이터 포트와 물리적 데이터 포트 사이에서의 데이터 경로의 구성을 제어한다.
도 5A는 데이터 경로를 판독한 논리적 포트(#1)에서의 멀티플렉서 회로의 개념도이다.
도 5B는 어레이 제어기의 일실시예에 따른 디스크 판독 XOR 논리회로를 도시한다.
도 6은 어레이 제어기의 일실시예에 따른 매핑 레지스터의 논리적 포트(#1)(PP_L1) 분야에 대한 디코더 논리회로를 도시한다.
도 7A는 어레이 제어기의 일실시예에 따른 논리적 포트 대 물리적 포트의 데이터 경로를 도시한다[물리적 포트(#2)만 도시).
도 7B는 어레이 제어기의 일실시예에 따른 디스크 기록 XOR 논리회로를 도시한다.
도 8은 현재 선택된 어레이에 대하여 글로벌 억세스 명령을 실행하기 위한 디스크 어드레스, 스트로브, 및 칩 선택 논리 회로를 도시한다.
도 9는 논리적 드라이브와 결합하기 위한 끼워들기 신호 논리를 도시한다.
도 10은 논리적 어드레싱의 하드웨어 실행를 도시한다.
바람직한 실시예의 상세한 설명
매핑 레지스터(mapping register)
소형 컴퓨터 시스템용의 일반적인 레이드(RAID) 제어기는 호스트 시스템에 대한 인터페이스와 드라이브 어레이에 대한 인터페이스를 구비한다. 도 1은 호스트 버스(12)와 상호 작용하기 위한 호스트 인터페이스(16)와, 다수의 부착된 디스크 드라이브와 상호 작용하기 위한 드라이브 인터페이스(22)를 제공하는 디스크 어 레이 제어기(10)의 개략적인 블록도이다. 제어기는 호스트 버스와 드라이브 사이에서 이동하는 데이터를 임시 저장하기 위하여 버퍼 메모리(18)와 제어 프로세스(20)를 구비하는 것이 바람직하다.
물리적 포트는 디스크 드라이브와 같은 대용량 저장 장치를 시스템에 접속시키기 위하여 필요하다. 일부 인터페이스는 다중 장치에 대한 동시 데이터 전달을 지원할 수 있는 반면에, 물리적 포트는 병목부가 되는 경향이 있다. 이러한 이유로, 고성능 레이드(RAID) 제어기가 도 2A에 도시된 바와 같이 대용량 저장 장치 당 하나의 물리적 포트를 구비할 수 있다. 도 2A는 매핑 레지스터(24)의 대응하는 컨텐츠를 또한 도시하며, 도 4를 참고하여 하기에 기술되어 있다.
레이드의 성능 이점 중 하나는 어레이 드라이브를 가로질러 데이터를 스트라이핑(striping)하는 것에서 유래한다. 예를 들면, 4개의 드라이브로부터 데이터를 한번에 판독하면, 한 개의 드라이브의 전송율에 비하여 4배의 향상을 초래한다. 도 2A에 도시된 실시예의 경우에, 4개 드라이브로부터 도달하는 16비트 데이터가 64비트 데이터로 논리적 드라이브 순서로 병합되어, 버퍼(도 1의 18)로 전송된다. 사용자 데이터는 스트라이프되었는바, 즉, 세그먼트가 예정된 시퀀스로 드라이브의 어레이를 가로질러 한번에 (16비트 워드) 분배된다. 본 발명자는 논리적 드라이브(#0)에서 출발하고 논리적 드라이브(#n-1)를 통해 진행하는 시퀀스를 확인하며, 여기서 n은 어레이에서의 드라이브 개수이다. 사용자 데이터의 k번째 세그먼트가 논리적 드라이브(K 모드 n)에 대응하도록 스트라이프 시퀀스가 반복된다. 상기 방법에서, 본 발명자는 스트라이핑 순서를 반영하기 위하여 논리적 드라이브 넘버링을 이용한다. 따라서, 본 도면에서, 4개의 "논리적 포트"의 스택(stack)은 스트라이프로 이루어진 4개 세그먼트의 정돈된 세트를 나타낸다. "논리적 포트" 각각은 스트라이프의 싱글 세그먼트에 대응하며, 전체 스택은 4개 세그먼트의 정돈된 세트에 대응한다.
드라이브 각각으로부터의 100MBPS 전송율이 버퍼까지의 400MBPS 전송율이 된다. 점선으로 표시된 박스(26)는 아래에서 상세히 기술된 데이터 경로 스위치를 개념적으로 나타난다. 상기 데이터 경로 스위치(26)는 논리적 데이터 포트와 물리적 데이터 포트 사이에 다이내믹하게 재구성 가능한 데이터 경로를 제공한다.
도 2A는 논리적 데이터 포트와 물리적 데이터 포트 간의 직접 접속을 포함하는 개념도이다. 실제 적용에서, 이용 가능한 물리적 데이터 포트의 갯수는 논리적 데이터 포트의 갯수보다 많을 수 있다. "핫 스패어(hot spare)"로서 지정된 포트가 존재할 수 있거나 또는 물리적 포트는 독립적으로 억세스되는 상이한 서브-어레이로 분류될 수 있다. 도 2B는 이용 가능한 5개의 물리적 데이터 포트[물리적 포트(#0 내지 #4)]에 대한 4개의 논리적 데이터 포트[논리적 포트(#0 내지 #3)]의 가능한 할당 중 일예를 도시한다. 예를 들면, 큰 화살표(30)는 단지 물리적 포트(#2)에 대한 논리적 포트(#1)의 할당을 나타난다. 도 2B는 또한 매핑 레지스터(24)의 대응하는 컨텐츠에 도시한다. 여기서, 레지스터 우측에 있는 제2 필드는 논리적 포트(#1)에 대응하며, 그 제2 필드는 화살표(30)로 지시된 바와 같이 물리적 포트(#2)를 나타내는 값 2를 포함한다. 데이터 경로 스위치(26)는 후술된 바와 같이 논리적 포트 대 물리적 포트 할당을 실행한다.
도 2C는 드라이브 각각은 5개의 이용 가능한 물리적 포트 중 하나[즉, 물리적 포트(#1) 및 물리적 포트(#2)]에 할당되는 투-드라이브 어레이의 예를 도시한다. 버퍼에 대하여 64비트 워드를 조립하기 위하여, 16비트 드라이브 각각은 2회 판독되어야 한다. 일회 판독시에, 논리적 포트(#0 및 #1)에 대한 데이터는 각각 물리적 포트(#2 및 #1)로부터 획득된다. 이회 판독시에, 논리적 포트(#2 및 #3)는 각각 물리적 포트(#2 및 #1)로부터 데이터를 획득한다. 이러한 동작은 프로세스(20)에 의하여 조정된다. 다시, 매핑 레지스터는 물리적 포트(#1 및 #2)에 대한 할당을 도시한다.
도 2D는 싱글 드라이브가 물리적 포트(#3)에 접속되어 있는 어레이의 예를 도시한다. 이러한 구성을 위하여, 논리적 포트(#0 내지 #3)에 대한 데이터는 동일한 물리적 포트를 4회 판독함으로써 획득된다.
미국 특허 제6,018,778호에 기술된 동기 중복 데이터 전송의 특징 중 하나는 중복 데이터가 미국 특허 제6,237,052호 기술된 바와 같이 온-더-플라이(On-The-Fly)로 처리하는 것이다. 도 3A는 물리적 포트(#4)에 부착된 드라이브 상에 저장된 중복 데이터 패턴을 계산하기 위하여 논리회로(36)가 부가된 도 2A의 포(four)-드라이브 어레이를 도시한다. 다양한 수학적 및 논리적 연산을 사용하여 중복 패턴을 생성할 수 있지만, 논리적 데이터 포트로부터 획득된 데이터의 대응하는 비트 사이의 논리적 XOR은 XOR 연산이 캐리(carry)를 전달하지 않는 점에서 수학적 연산에 비하여 장점을 갖는다. XOR의 사용으로 인하여, 제5 드라이브는 "중복" 드라이브 혹은 "패리티" 드라이브라 한다.
도면에 도시된 16비트 와이드 버스 XOR은 4개의 입력단을 각각 갖는 16개의 XOR 게이트와 균등하다. 상기 XOR 함수의 사용은 도 3B에 도시된 바와 같이 디스크 판독 및 디스크 기록 작용 사이에서 매우 대칭이다. 도 3B는 도 3B에 한정된 것과 동일한 포-드라이브 어레이를 도시하는 것으로, 데이터 경로(40 및 42) 등이 디스크 판독 방향에 대하여 도시되어 있다. 이 경우에, 물리적 포트(#2)에 부착된 드라이브는 작동하지 않았다. 따라서, 작용하지 않는 대응하는 데이터 경로(44)는 점선으로 도시되어 있다. XOR 함수는 나머지 데이터 드라이브[물리적 포트(#0, #1 및 #3)]로부터의 데이터 및 중복 드라이브[물리적 포트(#4)]로부터의 데이터를 교차하여 계산된다. 이러한 계산은 작동하지 않는 드라이브에 저장된 데이터를 재구성하며, 그 결과는 작동하지 않는 드라이브로부터 신규의 이용 불가능한 데이터 대신에 데이터 경로(46)를 경유하여 논리적 포트(#2)로 안내된다.
상기 문단은 레이드 제어기에서 논리적 포트 세트 및 물리적 소자 포트 세트 사이에 존재할 수 있는 각종 관계의 몇몇 예를 설명하고 있다. 일반적으로, 고성능 레이드 제어기는 물리적 포트에 접속된 대용량 저장 장치의 각종 서브그룹으로 구성된 다중 어레이를 처리하도록 강제된다. 본 발명의 일태양은 저장 장치 어레이의 소프트웨어 구성을 작동시켜 후술된 바와 같이 성능을 개선하는 신규의 매핑 레지스터 및 관련 논리회로를 채용한다.
본 발명의 일실시예를 따르면, 구조가 도 4에 도시되어 있는 매핑 레지스터(24)는 논리적 데이터 포트와 물리적 데이터 포트 사이에서의 데이터 경로의 구성을 제어한다.(매핑 레지스터는 또한 후술된 다른 특징 및 이점을 제공한다.) 본 실시예에서, 매핑 레지스터는 5개의 필드로 구성되며, 하나의 필드는 5개의 논리적 데이터 포트(L0 내지 L4) 각각에 대응한다. 상기 레지스터에서 각각의 논리적 데이터 포트의 대응하는 필드는 접속되는 물리적 데이터 포트의 개수로 로딩된다. 논리적 데이터 포트(0)에 대한 필드에서의 데이터는 논리적 포트(0)와 관련된 물리적 포트인 것을 나타내는 PP_L0로서 기호로 나타낸다. 다음 4개의 필드에서의 값은 각각 PP_L1, PP_L2, PP_L3, 및 PP_L4로 식별된다. 제5 논리적 데이터 포트는 유사 포트이다. 상기 값 PP_L4는 패리티 드라이브에 대하여 물리적 데이터 포트를 할당하는데 사용된다.
상기 매핑 레지스터 필드는 어떠한 크기도 가질 수 있다. 예를 들면, 8 비트 필드는 256 미만의 물리적 포트의 어레이를 지원할 수 있다. 예시적인 실시예에서, 5개의 물리적 포트의 경우에 3비트 필드가 충분하다. 5개의 필드는 예비용으로 도면에서 'r'이 첨자된 비트 대 스패어로 16 비트 레지스터로 세밀하게 패킹한다. 모든 유형의 비휘발성형 메모리를 사용하여 매핑 레지스터 정보를 저장할 수 있다.
매핑 레지스터의 사용을 설명하기 위하여, 본 발명자는 지금까지 설명한 구성 각각을 다시 간략히 기술하고자 한다. 도 2A에는 매핑 레지스터(24)가 도시되어 있는 것에 주목하여야 한다. PP_L0의 값은 논리적 데이터 포트(#0)가 논리적 포트(#0)에 접속되어 있는 것을 나타내는 "0"이다. 다음 3개의 값은 다음 3개의 논리적 데이터 포트가 다음 3개의 물리적 데이터 포트에 접속되어 있는 것을 나타내는 1, 2, 및 3이다. PP_L4의 값은 7이다. 본 실시예에서 합법적인 물리적 포트 의 개수가 아니다. 값 "7"은 본 구성에서 패리티 드라이브가 존재하지 않는 것을 나타내는데 사용된다. 선택된 특정 값은 실제 물리적 포트 개수가 아니면 중요하지 않다.
다시 도 2B를 참조하면, 매핑 레지스터에 저장된 값은 물리적 데이터 포트(1, 2 ,4, 0)가 각각 논리적 포트(0 내지 3)를 지원하는 것을 나타낸다. 다시 말해, "7"은 패리티 드라이브가 사용되지 않음을 나타낸다.
도 2C는 투-드라이브 어레이용으로 구성된 매핑 레지스터를 도시한다. 논리적 데이터 포트(#2 및 #3)는 논리적 포트(#0 및 #1)와 동일한 물리적 포트와 연관되어 있는 것에 주목하여야 한다. 2개의 제1 논리적 포트는 제1 물리적 포트 사이클로 데이터를 전송하며, 2개의 제2 논리적 포트는 제2 물리적 포트 사이클로 데이터를 전송한다.
도 2D는 싱글 드라이브 경우용으로 구성된 매핑 레지스터를 도시한다. 논리적 포트(#0 내지 #3)는 물리적 포트(#3)에 연속 사이클로 데이터를 전송한다. 도 2의 모든 변형은 중복 데이터 논리회로와 독립적으로 도시된 상이한 데이터 경로 구성이다.
도 3A는 도 2A와 동일한 데이터 드라이브 구성에 대한 디스크 기록 방향에서의 XOR 논리회로를 도시한다. 상기 XOR 논리회로는 4개의 모든 논리적 데이터 포트로부터의 데이터에 대하여 계산된다. 그 결과는 매핑 레지스터의 논리적 포트(#4) 필드에 규정된 물리적 포트에 부착된 드라이브에 저장된다. 예를 들면, PP_L4는 패리티 드라이브가 존재하는 것을 나타내며 또한 포트(#4)에 부착되어 있 는 것을 나타내는 "7" 대신에 4의 값을 갖는다.
도 3B는, 물리적 포트(#2)에 부착된 드라이브가 작동하지 않는 것을 제외하고, 도 2A 및 도 3A와 동일한 데이터 경로에 대한 디스크 판독 방향에서의 XOR 논리회로를 도시한다. 논리적 데이터 포트 2 필드의 콘텐츠(PP_L2)는 "5"로 대체되었다. 합당한 물리적 포트의 번호는 0 내지 4이다. "5"는 드라이브가 작동하지 않은 것을 나타내는데 사용되는 예약 값이다. 유사 물리적 포트 번호 5에 억세스하는 논리적 데이터 포트는 XOR의 출력으로부터 데이터를 얻을 수 있다.
데이터 경로 스위치
전술한 바에 있어서, 본 발명자는 매핑 레지스터의 필드에 로드된 4개의 값은 4개의 논리적 데이터 포트와, 중복 드라이브를 구비하거나 그렇지 않은 5개 물리적 포트에 부착된 1, 2 또는 4개의 드라이브 어레이(중복 드라이브를 갖는 어레이의 경우에, 고장 드라이브를 구비하거나 그렇지 않는다) 사이에서 가능한 모든 구성을 표현하는데 사용될 수 있는 것을 설명하였다. 아래에서 매핑 레지스터의 컨텐츠가 하드웨어 블록 및 데이터 경로를 구성하는데 이용되는 방법을 설명할 것이다. 환언하면, 아래의 설명은 데이터 경로 스위치(26)의 바람직한 실행의 세부사항과 매핑 레지스터 컨텐츠에 의하여 구성되는 방법을 나타낸다.
도 5A를 참고하면, 4개의 논리적 데이터 포트 각각은 5개의 물리적 데이터 포트중 어느 하나로부터 또는 고장 드라이브의 경우에 디스크 판독 XOR로부터 데이터를 수신할 수 있어야 한다. 6개의 가능한 데이터 소스에 의하면, 물리적 데이터 포트 각각은 16 비트 와이드의 대응하는 6 대 1 멀티플렉서(50)를 구비한다. 논리 적 포트(1)에 대한 멀티플렉서(50)가 도 5A에 도시되어 있지만, 다른 것[논리적 포트(#0, #2, 및#3)의 경우]도 동일하다. 멀티플렉서의 셀렉터 또는 "S" 입력단은 매핑 레지스터(PP_L1)의 논리적 포트(#1) 필드에 접속된다. 0 내지 5의 PP_L1 값은 각각 물리적 포트(#0 내지 #4)로부터의 데이터를 선택하는 반면, 값 5는 디스크 판독 XOR의 출력을 선택한다.
도 5B는 디스크 판독 XOR 논리회로(52)를 도시한다. 디스크 판독 XOR(52)는 바람직한 실시예(부착된 디스크 드라이브 데이터 경로에 대응)에서 16 비트 와이드인 파이브(five)-입력 XOR 회로이다.(이것은 16개의 XOR(각각 5개의 입력단을 갖는다)과 균등하다.) 5개의 입력단 각각은 대응하는 AND 게이트, 또한 16비트 와이드, 예를 들면 AND 게이트(54)에 의하여 필연적으로 한정되거나 게이트로 제어된다.(이것은 16개의 NAND 게이트(각각 2개의 입력단을 갖는다)와 균등하다.) 5개의 NAND 게이트는 대응하는 5개의 물리적 포트 선택 신호(PP0_SEL 내지 PP4_SEL)에 의하여 한정된다. 이러한 신호의 발생은 아래에서 설명된다.
물리적 포트 각각에 대한 데이터 경로는 4개의 논리적 데이터 포트 중 어느 하나로부터, 또는 디스크 기록 XOR로부터 유래한다. 그 예가 도 2A 내지 도 2D를 참조하여 도시되어 있다. 매핑 레지스터의 필드는 논리적 데이터 포트 각각에 대한 대응하는 데이터 소스를 확인하지만, 본 발명자는 물리적 포트 각각에 대한 대응하는 데이터를 제공하는 필드를 구비하고 있지 않다. 이러한 정보는 본 발명자가 구비하고 있는 필드로부터 유래될 수 있다. 상기 매핑 레지스터의 3 비트 이진수 부호화 필드 각각은 1 대 8 디코더(one of eight decoder)로 복호화된다. 도 6 은 이러한 논리적 포트(#1) 필드에 대한 디코더(66)를 도시한다. 값 PP_L1은 명칭이 소스로부터 목적지까지의 경로를 나타내는(예를 들면, 논리적 포트(#1)로부터 물리적 포트(#2)까지 경로를 나타낸다) L1_P0, L1_P1, L1_P2...L1_P7로 복호화된다.
도 7A를 참고하면, 논리적 데이터 포트로부터 물리적 데이트 포트(#0 내지 #4)까지의 데이터 경로(70)의 멀티플렉싱을 위한 샘플 회로가 도시된다. 물리적 포트(#2)용 멀티플렉서(72)가 도면에 도시되어 있지만, 다른 4개의 포트에 대한 멀티플렉서(비도시)도 동일하다. 멀티플렉서(72) 각각은 5개의 AND 게이트(74)를 가진 AND/OR 어레이, 모든 16비트 와이드, 및 대응하는 OR 게이트(76)를 구성한다. (상기 AND 게이트 각각은 16개의 AND 게이트(각각 2개의 입력단을 갖는다)와 균등하다. OR 게이트는 16개의 OR 게이트(각각 5개의 입력단을 갖는다)와 균등하다.) 물리적 포트(#2)에 대한 멀티플렉서의 경우, 논리적 데이터 포트로부터의 AND 게이트는 5개의 디코더, 즉 도시된 바와 같이 L0_P2, L1_P2, L2_P2, L3P2, 그리고 L4_P2의 대응하는 출력에 의하여 한정된다.
현 시점에서, 해결해야 할 두 가지 미해결 과제가 있다. 투-드라이브 어레이에 있어서, 소정의 물리적 포트는 두 개의 다른 논리적 포트로부터 상이한 사이클을 통하여 데이터를 수신한다. 다시 도 6을 참고하면, 상기 디코더(66) 각각은 모든 출력을 한정하는 인에이블 입력단 "EN"을 구비한다. 투-드라이브 구성의 경우, 단지 논리적 데이터 포트(#0 및 #1)에 대한 디코더는 제1 사이클로 인에이블되며, 논리적 데이터 포트(#2 및 #3)에 대한 디코더는 제2 사이클로 인에이블된다. 이러한 이유로 인하여, 도 7A에 도시된 AND 게이트 중 하나만이 동시에 한정될 수 있다. 환언하면, 매핑 레지스터에 따라 할당된 논리적 포트로부터의 데이터만이 대응하는 물리적 포트에 입력된다.
하나의 물리적 포트가 4개 논리적 포트 모두로부터 데이터를 수신하는 싱글-드라이브 어레이에 있어서(도 2D 참조), 단 하나의 AND 게이트(74)가 유일한 데이터 소스(논리적 포트)를 선택하는 시점에 인에이블될 수 있도록 단 하나의 디코더(66)가 동시에 인에이블된다. 다른 미해결 과제는 도 5B의 "PPn_SEL" 신호에 대한 소스이었다. 도 6은, 해당 물리적 포트와 논리적 포트 중 어느 하나 사이에 데이터 경로가 존재하는 경우에, 물리적 포트 "n"에 대한 PPn_SEL 신호를 나타내는 파이브-입력 OR 게이트(68)의 사용을 도시한다. 이것은 물리적 포트가 활성이고 도 5B에서 디스크 판독 XOR에 참여할 수 있는 필요한 조치를 제공한다.
글로벌 판독 및 기록
ATA/ATAPI 규격에 따르면, 드라이브에 명령어를 전달하는 것은 PIO 모드 0만을 지원하는 장치에 대한 억세스 당 600nS 만큼 느리게 그리고 모드 4를 지원하는 장치에 대한 억세스 당 120nS보다 빠르지 않을 수 있는 프로그램된 IO 또는 PIO 모드의 사용을 요구한다. 하나의 명령어는 8 또는 이상의 억세스를 필요로 한다. 모든 드라이브가 연속적으로 명령을 받게 되면, 상기 시간은 드라이브의 개수만큼 곱하여지고, 전체 과정에 대기 시간을 추가한다. 상기 명령어는 포트 당 독립적인 제어기에 의하여 동시에 전달될 수 있지만, 이는 복잡성과 비용을 상당히 증가시킨다.
데이터가 드라이브의 어레이 상에 스트라이프되는 경우, 소정 스트라이프 부분은 드라이브 각각 상의 동일한 상대 지점에 위치할 수 있다. 이는 데이터의 어드레스, 논리 버퍼 어드레스 또는 LBA를 드라이브 각각에 대하여 동일하게 만든다. 그 결과, 소정 스트라이프를 판독하는 명령어는 어레이의 모든 드라이브에 대하여 동일하다. 그리고, 소정 스트라이프를 기록하는 명령어는 마찬가지로 동일하다. 이것은 논리적 프로세서(예를 들면, 도 1에서 20)가 단일 드라이브에 명령어를 전달하는데 필요한 것보다 짧은 시간에 공통 명령어를 제공하는 것이 가능하게 한다.
앞에서 언급한 바와 같이, 드라이브 어레이는 부착된 드라이브의 서브세트로 구성될 수 있다.(본 발명의 이점 중 하나는 적정 구성 바이트를 매핑 레지스터에 저장함으로써 부착된 드라이브의 조직을 규정된 어레이로 용이하게 구성 또는 재구성할 수 있는 것이다.) 어레이가 부착 드라이브의 서브세트로 구성되는 경우에, 명령어(판독 및 기록과 같은)는 선택된 서브세트에 전달될 수 있다. 상기 드라이브는 동시에 한번 명령을 받던가, 현재 어레이에 참여하지 않는 물리적 데이터 포트를 마스크하기 위하여 몇몇 수단을 제공하여야 한다. 도 8은 상기 과제를 해결하기 위한 실행을 도시한다.
도 8을 참고하면, 상기 어드레스, 스트로브 및 칩 선택 신호(CS0, CS1, DA1, DA2, DIOW 및 DIOR)는 5개의 물리적 포트 중 2개의 제1 포트(P0 및 P1)에 대하여 도시되어 있다. 이러한 어드레스 및 스트로브 신호는 5개의 모든 포트에 공통인 것에 주목하여야 한다. 소정 드라이브의 손상이 다른 드라이브에 대한 이러한 신호의 전달을 차단할 수 없도록 개별적으로 버퍼된다[버퍼(80 및 82) 참조]. 소정 포트의 두 칩 선택 신호(CS0#, CS1#)에 대한 출력 드라이버는 상기 포트에 대한 Pn_SEL 신호에 의하여 한정된다[게이트(84 및 86) 참조]. 매핑 레지스터의 현재 컨텐츠에 의하여 선택되지 않은 포트는 나타낸 칩 선택 중 어느 하나를 구비하지 않을 수 있으며, 그러므로 판독 및 기록 스트로브를 무시할 수 있다.
글로벌 판독은 잠재적으로 상반되는 데이터 값이 공통 버스로 귀환하는 것을 의미할 때 어떠한 의미도 취하지 않는 것으로 보일 수 있다. 본 실시예에서, "글로벌 판독"은 판독 스트로브(도 8의 Pn_DIOR#)를 모든 물리적 데이터 포트에 전달한다. 칩 선택부(Pn_CS0#, Pn_CS1#)에 의하여 한정된 부착된 저장 장치는 데이터를 Pn_DOR# 스트로브의 후단에 래치된 물리적 포트로 리턴시킨다. 판독 사이클의 결과로서 데이터 값을 로컬 프로세스로 리턴시키는 시도는 없다.
그리고, 로컬 프로세서는 Pn_DIOR# 스트로브 사이클의 반복을 야기하며 또한 래치된 데이터의 어떠한 변화도 없이 상이한 어드레스를 사용하여 동시에 포트 각각을 한번에 판독한다. 이러한 사이클은 로컬 프로세서가 래치 데이터 각각에 저장된 잠재적으로 특정 값을 인출하게 한다. 600nS 미만을 필요로 하는 상기 Pn_DIOR# 사이클은 단지 일회 실행된다. 포트 각각에 래치된 값은 상기 Pn_DIOR# 사이클을 5회 반복하는 것에 비하여 충분한 시간 절약을 위해 각 15ns로 인출될 수 있다.
"글로벌 판독" 및 "글로벌 기록" 장치는 로컬 프로세서가 가능한 최소의 시간으로 명령어를 전달하게 하며 또한 선택된 어레이로부터 제어 상태를 수신하도록 한다. 매핑 레지스터에 새로운 값을 로딩하는 것에 의하여 상이한 서브 어레이가 선택될 때, 제어 인터페이스는 다른 코드 변화 없이 자동으로 업데이트한다.
상태 순서
상기 설명은 다수의 물리적 포트 출력을 생성하는 것을 다루었고, 그 출력이 매핑 레지스터에 의하여 조정되는 방법을 보여주었다. 이러한 포트 각각은 마찬가지로 다수의 입력 신호를 구비한다. 다시 말해, 논리적 드라이브와 관련된 신호는 소프트웨어 전체를 최소화할 수 있다. 예를 들면, 드라이브 각각은 제어기로부터의 서비스에 대한 필요성을 신호로 보내는데 사용되는 인터럽트 출력을 갖는다. 도 9는 논리적 데이터 포트 제로와 관련된 물리적 포트의 인터럽트를 선택하기 위하여 매핑 레지스터로부터의 PP_L0 값에 의해 제어되는 멀티플렉서(90)의 사용을 도시한다. 다른 논리적 데이터 포트 각각은 인터럽트를 정하기 위하여 대응하는 PP_Ln 값을 사용하는 동일한 멀티플렉서(비도시)를 갖는다. 도 9에 있어서, 버퍼(92)는 논리적 데이터 포트 멀티플렉서(90 등) 각각으로부터 선택된 인터럽트를 취한다. 로컬 프로세스(도 1의 20)가 버퍼를 통해 인터럽트 상태를 판독하면, 인터럽트는 비트 제로 위치에서 논리적 데이터 포트 제로로 개시하는 논리적 데이터 포트 순서로 나타난다. 동일한 기술은 사용하여 드라이브 케이블 ID 신호와 내부 FIFO 상태 신호를 포함하는 물리적 데이터 포트로부터 내부 및 외부 신호 모두를 분류할 수 있다. 이러한 특징에 의하면, 로컬 펌웨어가 다수의 상이한 물리적 포트를 다중 어레이에 대한 공통의 코드 시퀀스를 사용할 수 있다. 인터럽트 버퍼(92)가 로드되면, 필요한 상태 비트는 선택된 어레이에 대한 정렬된 레지스터의 적어도 상당량 비트이다. 비트 개수는 실제 포트의 개수로 마스크 다운될 수 있다.
인터럽트_임의 및 전체
논리적 데이터 포트로부터 선택된 인터럽트는 "인터럽트_전체" 및 "인터럽트_임의" 신호를 제공하기 위하여, 도 9에 도시된 바와 같이 논리적으로 AND 연산(94)되거나 OR 연산(96)될 수 있다. 로컬 프로세스가 명령어를 발생시키면, 또한 어떠한 데이터도 전송되기 전에, 하나 이상의 드라이브가 그 명령어를 거절할 수 있거나 또는 일부 다른 에러를 가지기 때문에, 어떠한 드라이브로부터 인터럽트에 대하여 확인하고자 할 것이다. 드라이브가 데이터를 전송하기 시작하였으면, 로컬 프로세스는 명령어의 완료를 나타내므로 전체 드라이브가 인터럽트 신호를 나타낸 때를 알기를 원할 수 있다. 이러한 유형의 실행은 소프트웨어를 드라이브의 개수와 무관하게 만드는 것에 주목하여야 한다. (투-드라이브 어레이 경우에, 각 소자로부터의 인터럽트 신호는 2회 나타나지만, 싱글-드라이브 어레이에서, 동일한 드라이브는 4회 나타난다. 상기 일부 및 전체 신호는 여전히 정확하게 기능한다.)
논리적 어드레스 매핑
런-타임 소프트웨어의 벌크가 전술한 글로벌 명령어 및 상태의 장점을 갖는 반면에, 특정 소자 내에서 초기화 및 에러 처리를 위한 개별 소자에 억세스하기 위한 요건이 여전히 존재한다. 이러한 목적을 위하여, 물리적 데이터 포트 각각은 로컬 프로세스 어드레스 공간 내의 특정 위치에 나타난다. 이러한 위치 중 어느 한 곳에 대한 억세스가 복호화될 때, 복호화 출력은 매핑 레지스터의 컨텐츠에 따라서 재매핑된다. 초기화 동안, 매핑 레지스터는 동일한 패턴 즉, 논리 소자(0) 포인트 대 물리적 포트(0), 논리적 소자(1) 대 물리적 포트(1), 등으로 로드된다. 이는 물리적 포트가 프로세스의 어드레스 공간 내에서 제1 물리적 포트 위치에서 개시하는 순서로 나타난다. 정상 작동 시에, 매핑 레지스터는 논리적 대 물리적 드라이브 맵으로 로드된다. 인터럽트가 논리적 포트(2)로부터 수신되면, 로컬 프로세서는 동일 맵이 로드될 때 물리적 포트(2)에 억세스되는 특정 어드레스 공간을 통하여 인터럽트 드라이브에 억세스할 수 있다. 이는 논리적 드라이브가 부착되는 물리적 데이터 포트와 독립적으로 논리적 드라이브를 서비스하게 한다.
논리적 어드레싱 특징의 하드웨어 실행은 도 10에 도시되어 있다. 상기 프로세스가 소자 포트 공간에 대한 어드레스 영역에 억세스할 때, 1 대 8 디코더(100)는 소자 각각에 대한 32비트 공간을 한정하는 프로세스 어드레스 라인(5 내지 7)을 복호화한다. 각 공간의 복호화는 대응하는 포트(N) 복호화 신호(Pn_DEC)를 나타낸다. 가상 포트 번호 7의 복호화는 글로벌 억세스를 위한 신호이다. 최종 포트 선택 신호 Pn_SEL(n=0-4)가 그 포트의 특정 억세스에 대하여 그리고 글로벌 억세스에 대하여 나타나도록, P7_DEC 신호가 발생되거나 다른 복호화 신호(102) 각각으로 OR 연산된다.
포트 선택 신호 각각은 매핑 레지스터로부터 PP_Ln 값에 의하여 조정된다. 상기 1 대 8 디코더(104)는 P2_SEL 신호를 취하며, 물리적 포트 제로로부터 논리적 포트 2까지의 칩 선택을 나타내는 L2_P0_CS 형태의 신호 세트를 발생시키는 매핑 레지스터로부터 PP_L2 값에 따라서 상기 신호를 루팅한다. 다른 4개의 논리적 포트에 대한 1 대 8 디코더(비도시)는 동일하다.
각 물리적 포트는 파이브-입력 OR 게이트(예를 들면, 106)를 구비한다. 물 리적 포트(#2)에 대한 OR 게이트(106)가 도시되어 있다. 물리적 포트(#2)에 대한 칩 선택을 위한 5개의 상이한 소스를 함께 OR 연산처리한다. 싱글-드라이브 서브 어레이의 경우, 칩 선택은 4개의 모든 논리적 소자에 의하여 나타나게 되며, 듀얼 드라이브 서브 어레이의 경우, 칩 선택은 두 개의 논리적 소자에 의하여 나타나게 된다.
전술한 설명에서 그리고 도면에서, 본 발명자는 한가지 유형의 매핑 레지스터의 여러가지 예를 예시하였으며, 논리 매핑 레지스터라 부를 수 있다. 설명된 바와 같이, 한정된 어레이에 각 논리적 드라이브에 대한 필드를 제공하며, 상기 필드에서, 값은 대응하는 물리적 포트 번호를 나타낸다. 변형예에서, 물리적 매핑이라 불리는 레지스터가 물리적 포트 또는 부착된 드라이브 각각에 대한 필드를 제공하며, 각 필드에서, 값은 대응하는 논리적 포트 번호를 나타낸다. 상기 매핑 레지스터는 하기의 예에 도시되어 있다.
네 개 드라이브 상에 스트라이프된 데이터를 위하여 어레이가 한정되는 것으로 가정한다. 스트라이프 폭의 블록은 특정 시퀀스로 이용 가능한 드라이브 각각에 저장된다. 이러한 과정을 반복한다. 예를 들면, 데이터의 제1 블록(마찬가지로 제5, 제9, 등)은 물리적 포트(#1)에 접속된 드라이브에 저장된다. 제2 블록(마찬가지로 제6, 제10, 등)은 물리적 포트(#2)에 접속된 드라이브에 저장된다. 제3 데이터의 블록(마찬가지로 제7, 제11, 등)은 물리적 포트(#4)에 접속된 드라이브에 저장된다. 제1 데이터 블록은 논리적 드라이브(0), 제2 논리적 드라이브(1), 제3 논리적 드라이브(2) 그리고 제4 논리적 드라이브(3)로 진행한다. 이러한 경우를 위한 두가지 상이한 유형의 매핑 레지스터는 다음과 같다.
논리적 매핑:
논리적 포트# 3 2 1 0
값(논리적 포트) 0 4 2 1
물리적 매핑:
물리적 포트# 4 3 2 1 0
값(물리적 포트) 2 - 1 0 3
본 발명의 범위를 벗어나지 않고 전술한 실시예의 세부사항에서 다양한 변경이 가능함이 당업자에게 자명하다. 그러므로, 본 발명의 범위는 하기 청구범위에 의하여 결정된다.

Claims (15)

  1. 호스트 시스템에 대한 접속을 위한 호스트 인터페이스;
    판독 및 기록 데이터를 저장하기 위한 버퍼와;
    디스크 드라이브를 부착하기 위한 다수의 물리적 포트를 구비하는 디스크 인터페이스와;
    매핑 데이터를 저장하기 위한 매핑 레지스터를 포함하며,
    상기 디스크 인터페이스는 물리적 포트와 버퍼 사이에 선택 가능한 데이터 경로를 이행하는 스위치를 구비하며,
    상기 스위치는 매핑 데이터에 의하여 한정된 물리적 포트의 어레이에 억세스하기 위하여 레지스터 매핑에 저장된 매핑 데이터에 응답하여 재구성 가능한 것을 특징으로 하는 디스크 어레이 제어기.
  2. 제1항에 있어서,
    상기 매핑 데이터는 물리적 포트 중에서 스트라이핑 순서(striping order)를 반영하며, 상기 스위치는 물리적 포트에서 논리적 포트로 데이터 세그먼트를 분류하는 것을 특징으로 하는 디스크 어레이 제어기.
  3. 제2항에 있어서,
    상기 매핑 데이터는 물리적 포트의 특정 시퀀스 관점에서 스트라이핑 순서를 한정하는 것을 특징으로 하는 디스크 어레이 제어기.
  4. 제4항에 있어서,
    상기 디스크 인터페이스는 일련의 물리적 포트를 구비하며, 상기 논리적 포트는 디스크 인터페이스와 버퍼 사이에 대응하는 데이터 세그먼트를 전달하고;
    상기 매핑 데이터는 물리적 포트 중 하나에 대한 논리적 포트 각각의 할당을 특정화하여 소정 디스크 어레이 및 스트라이핑 방법을 한정하는 다수의 필드를 구비하는 것을 특징으로 하는 디스크 어레이 제어기.
  5. 제3항에 있어서,
    상기 매핑 데이터는 제어기의 메모리에 저장되는 것을 특징으로 하는 디스크 어레이 제어기.
  6. 제4항에 있어서,
    상기 매핑 데이터는 논리적 매핑 레지스터로서 조직되며, 논리적 포트 각각에 대한 필드와, 대응하는 물리적 포트를 나타내는 상기 필드에 저장된 값을 구비하는 것을 특징으로 하는 디스크 어레이 제어기.
  7. 제4항에 있어서,
    상기 매핑 데이터는 물리적 매핑 레지스터로서 조직되며, 상기 제어기의 물리적 포트 각각에 대한 필드와, 대응하는 논리적 포트에 나타내는 필드에 저장된 값을 구비하는 것을 특징으로 하는 디스크 어레이 제어기.
  8. 제4항에 있어서,
    상기 소정 디스크 어레이는 이용 가능한 물리적 포트의 서브세트에 대한 논리적 포트의 조합에 의하여 한정되는 것을 특징으로 하는 디스크 어레이 제어기.
  9. 제4항에 있어서,
    상기 매핑 레지스터는 중복 드라이브가 중복 데이터를 저장하기 위하여 어레이에 사용되는 여부를 나타내는 필드를 구비하는 특징으로 하는 디스크 어레이 제어기.
  10. 제4항에 있어서,
    상기 매핑 데이터는 디스크 인터페이스와 버퍼 사이의 데이터 전송에 사용되는 논리적 포트의 개수의 1/2과 동일한 개수의 물리적 포트를 구비하는 디스크 어레이를 한정하며,
    상기 스위치는 제1 디스크 억세스를 위해 지정된 물리적 포트와 논리적 포트의 제1 절반부 사이에 제1 데이터 경로를 제공하고, 버퍼 전송을 완료하기 위하여 제2 디스크 억세스를 위해 지정된 물리적 포트와 논리적 포트의 다른 절반부 사이에 제2 데이터 경로를 제공하기 위하여 다이내믹하게 재구성 가능한 것을 특징으로 하는 디스크 어레이 제어기.
  11. 제10항에 있어서,
    상기 매핑 데이터는 2개의 물리적 포트의 디스크 어레이에 대한 4개의 논리적 포트의 조합을 한정하는 것을 특징으로 하는 디스크 어레이 제어기.
  12. 제4항에 있어서,
    상기 매핑 데이터는 디스크 인터페이스와 버퍼 사이의 데이터 전송에 사용되는 논리적 포트의 개수 보다 작은 개수의 물리적 포트를 구비하는 디스크 어레이를 한정하며,
    상기 스위치는 지정된 물리적 포트와 논리적 포트의 제1 서브세트 사이에 제1 데이터 경로를 제공하고, 지정된 물리적 포트와 논리적 포트의 다른 서브세트 사이에 제2 데이터 경로를 제공하기 위하여 다이내믹하게 재구성 가능한 것을 특징으로 하는 디스크 어레이 제어기.
  13. 제4항에 있어서,
    상기 스위치는 매핑 데이터에 규정된 바와 같이 한정된 어레이를 가로질러 데이터를 스트라이프하기 위하여 버퍼에서 물리적 포트까지 디스크 기록 데이터 세그먼트를 안내하는 것을 특징으로 하는 디스크 어레이 제어기.
  14. 디스크 드라이브의 어레이에 명령어를 전달하는 방법에 있어서,
    다수의 물리적 포트를 확인하여 디스크 어레이를 한정하는 매핑 레지스터에 표시를 저장하는 단계와;
    확인된 물리적 포트 각각의 데이터 버스 상의 명령어 바이트를 확인하는 단계와;
    확인된 모든 물리적 포트에 대한 글로벌 기록 스트로브를 확인하는 단계와;
    매핑 레지스터 컨텐츠에 응답하여, 한정된 어레이에 포함된 물리적 포트만을 선택하여, 상기 선택된 포트가 명령어의 확인된 바이트를 수신하여 글로벌 기록 스트로브에 응답하는 단계를 포함하는 것을 특징으로 하는 명령어 전달방법.
  15. 디스크 어레이로부터 제어 상태를 포괄적으로 판독하는 방법에 있어서,
    다수의 물리적 포트를 확인하여 디스크 어레이를 한정하는 매핑 레지스터에 표시를 저장하는 단계와;
    확인된 모든 물리적 포트에 단일 글로벌 판독 스트로브를 전달하는 단계와;
    매핑 레지스터 컨텐츠에 응답하여, 한정된 어레이에 포함된 물리적 포트만을 선택하여, 상기 선택된 포트가 요청된 제어 상태를 회복시켜 글로벌 판독 스트로브에 대하여 응답하는 단계와;
    상기 물리적 포트에 회복된 제어 상태를 래칭하는 단계와;
    물리적 호트 각각에 개별적으로 억세스하여 각각의 제어 상태를 획득하는 단계를 포함하는 것을 특징으로 하는 판독방법.
KR1020057020009A 2003-04-21 2004-04-21 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기 KR20060025135A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46489203P 2003-04-21 2003-04-21
US60/464,892 2003-04-21

Publications (1)

Publication Number Publication Date
KR20060025135A true KR20060025135A (ko) 2006-03-20

Family

ID=33310975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057020009A KR20060025135A (ko) 2003-04-21 2004-04-21 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기

Country Status (7)

Country Link
US (1) US8281067B2 (ko)
EP (1) EP1625489A2 (ko)
JP (1) JP2006524401A (ko)
KR (1) KR20060025135A (ko)
CN (1) CN100371874C (ko)
CA (1) CA2522915A1 (ko)
WO (1) WO2004095255A2 (ko)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111101B1 (en) * 2003-05-07 2006-09-19 Ayago Technologies General Ip (Singapore) Ptd. Ltd. Method and system for port numbering in an interconnect device
US7694038B2 (en) * 2004-11-17 2010-04-06 International Business Machines Corporation Maintaining and using nexus information on a host, port and device connection
JP2008527496A (ja) 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
US20060194386A1 (en) * 2005-02-25 2006-08-31 Dell Products L.P. Method and apparatus for supporting port aggregation of serial attached SCSI wide ports via virtual ports
WO2007095255A2 (en) 2006-02-10 2007-08-23 Dupont Tate & Lyle Bio Products Company, Llc Biodegradable compositions comprising renewably-based, biodegradable 1.3-propanediol
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US7472211B2 (en) 2006-07-28 2008-12-30 International Business Machines Corporation Blade server switch module using out-of-band signaling to detect the physical location of an active drive enclosure device
US7584378B2 (en) * 2006-09-07 2009-09-01 International Business Machines Corporation Reconfigurable FC-AL storage loops in a data storage system
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US8880468B2 (en) 2010-07-06 2014-11-04 Nicira, Inc. Secondary storage architecture for a network control system that utilizes a primary network information base
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
JP5298079B2 (ja) * 2010-07-08 2013-09-25 京セラドキュメントソリューションズ株式会社 ストレージ管理装置
WO2012051577A1 (en) * 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
JP5889535B2 (ja) * 2011-02-24 2016-03-22 ヤマハ株式会社 端末装置及び通信システム
US8626994B2 (en) 2011-11-30 2014-01-07 Apple Inc. Systems and methods for improved communications in a nonvolatile memory system
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US9197529B2 (en) 2013-07-12 2015-11-24 Nicira, Inc. Tracing network packets through logical and physical networks
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
CN103927126B (zh) * 2013-07-18 2016-10-12 詹明德 一种磁盘阵列设备的配置方法及组装及磁盘插入处理方法
US9336174B1 (en) * 2013-07-29 2016-05-10 Cisco Technology, Inc. Dynamic interface model
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US9503371B2 (en) 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US10063458B2 (en) 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9298549B2 (en) 2013-12-11 2016-03-29 International Business Machines Corporation Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9313129B2 (en) 2014-03-14 2016-04-12 Nicira, Inc. Logical router processing by network controller
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
US9225597B2 (en) 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9503321B2 (en) 2014-03-21 2016-11-22 Nicira, Inc. Dynamic routing for logical routers
US9647883B2 (en) 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9985896B2 (en) 2014-03-31 2018-05-29 Nicira, Inc. Caching of service decisions
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
CN104090986B (zh) * 2014-07-28 2018-06-01 福建三元达网络技术有限公司 一种无线控制器槽位控制方法、接入设备和无线控制器
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
JP5910767B2 (ja) * 2015-02-10 2016-04-27 ヤマハ株式会社 端末装置及び通信システム
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10361952B2 (en) 2015-06-30 2019-07-23 Nicira, Inc. Intermediate logical interfaces in a virtual distributed router environment
US10230629B2 (en) 2015-08-11 2019-03-12 Nicira, Inc. Static route configuration for logical router
US10075363B2 (en) 2015-08-31 2018-09-11 Nicira, Inc. Authorization for advertised routes among logical routers
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
CN105760116B (zh) * 2016-03-10 2018-11-23 天津科技大学 一种多网盘下的增量纠删码存储方法及系统
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10841273B2 (en) 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks
US10484515B2 (en) 2016-04-29 2019-11-19 Nicira, Inc. Implementing logical metadata proxy servers in logical networks
US10091161B2 (en) 2016-04-30 2018-10-02 Nicira, Inc. Assignment of router ID for logical routers
US10153973B2 (en) 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
US10560320B2 (en) 2016-06-29 2020-02-11 Nicira, Inc. Ranking of gateways in cluster
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
CN108462660B (zh) * 2016-12-12 2020-12-29 中国航空工业集团公司西安航空计算技术研究所 用于网络交换芯片的端口重映射电路及方法
US10212071B2 (en) 2016-12-21 2019-02-19 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10742746B2 (en) 2016-12-21 2020-08-11 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10237123B2 (en) 2016-12-21 2019-03-19 Nicira, Inc. Dynamic recovery from a split-brain failure in edge nodes
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
US10805239B2 (en) 2017-03-07 2020-10-13 Nicira, Inc. Visualization of path between logical network endpoints
US10681000B2 (en) 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10637800B2 (en) 2017-06-30 2020-04-28 Nicira, Inc Replacement of logical network addresses with physical network addresses
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
CN109606380B (zh) * 2018-12-07 2020-08-07 英业达科技有限公司 网络控制装置、方法及车辆电控单元
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
US11095480B2 (en) 2019-08-30 2021-08-17 Vmware, Inc. Traffic optimization using distributed edge services
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11616755B2 (en) 2020-07-16 2023-03-28 Vmware, Inc. Facilitating distributed SNAT service
US11606294B2 (en) 2020-07-16 2023-03-14 Vmware, Inc. Host computer configured to facilitate distributed SNAT service
US11611613B2 (en) 2020-07-24 2023-03-21 Vmware, Inc. Policy-based forwarding to a load balancer of a load balancing cluster
US11451413B2 (en) 2020-07-28 2022-09-20 Vmware, Inc. Method for advertising availability of distributed gateway service and machines at host computer
US11902050B2 (en) 2020-07-28 2024-02-13 VMware LLC Method for providing distributed gateway service at host computer
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
CN112416355A (zh) * 2020-11-12 2021-02-26 珠海格力电器股份有限公司 Plc组态软件的端口转换方法及系统
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514823A (en) * 1982-01-15 1985-04-30 International Business Machines Corporation Apparatus and method for extending a parallel channel to a serial I/O device
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US5003558A (en) * 1989-10-30 1991-03-26 International Business Machines Corporation Data synchronizing buffers for data processing channels
US5185862A (en) * 1989-10-30 1993-02-09 International Business Machines Corp. Apparatus for constructing data frames for transmission over a data link
US5072378A (en) * 1989-12-18 1991-12-10 Storage Technology Corporation Direct access storage device with independently stored parity
EP0433520B1 (en) * 1989-12-22 1996-02-14 International Business Machines Corporation Elastic configurable buffer for buffering asynchronous data
US5151977A (en) * 1990-08-31 1992-09-29 International Business Machines Corp. Managing a serial link in an input/output system which indicates link status by continuous sequences of characters between data frames
US5268592A (en) * 1991-02-26 1993-12-07 International Business Machines Corporation Sequential connector
US5257391A (en) * 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
US5392425A (en) * 1991-08-30 1995-02-21 International Business Machines Corporation Channel-initiated retry and unit check for peripheral devices
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5471640A (en) * 1992-07-06 1995-11-28 Hewlett-Packard Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
GB2273584B (en) * 1992-12-16 1997-04-16 Quantel Ltd A data storage apparatus
US5428649A (en) * 1993-12-16 1995-06-27 International Business Machines Corporation Elastic buffer with bidirectional phase detector
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5581715A (en) * 1994-06-22 1996-12-03 Oak Technologies, Inc. IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface
JP3432063B2 (ja) * 1994-12-28 2003-07-28 キヤノン株式会社 ネットワークシステム及びノード装置及び伝送制御方法
US5845319A (en) * 1995-08-23 1998-12-01 Fujitsu Limited Disk array device which separates local and physical disks using striping and operation mode selection
US6098128A (en) * 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US5771372A (en) * 1995-10-03 1998-06-23 International Business Machines Corp. Apparatus for delaying the output of data onto a system bus
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5890014A (en) * 1996-08-05 1999-03-30 Micronet Technology, Inc. System for transparently identifying and matching an input/output profile to optimal input/output device parameters
US5964866A (en) * 1996-10-24 1999-10-12 International Business Machines Corporation Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US5864653A (en) * 1996-12-31 1999-01-26 Compaq Computer Corporation PCI hot spare capability for failed components
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US6282207B1 (en) * 1999-03-30 2001-08-28 Diva Systems Corporation Method and apparatus for storing and accessing multiple constant bit rate data
US6772108B1 (en) * 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
US6996742B2 (en) * 2000-11-28 2006-02-07 Sedna Patent Services, Llc Method for regenerating and streaming content from a video server using RAID 5 data striping
US6665773B1 (en) * 2000-12-26 2003-12-16 Lsi Logic Corporation Simple and scalable RAID XOR assist logic with overlapped operations
US7418620B1 (en) * 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
US6513098B2 (en) * 2001-05-25 2003-01-28 Adaptec, Inc. Method and apparatus for scalable error correction code generation performance
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
JP3590381B2 (ja) * 2001-12-18 2004-11-17 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ更新方法
US6971042B2 (en) * 2002-04-18 2005-11-29 Huge Systems, Inc. Media server with single chip storage controller
TW200500857A (en) * 2003-04-09 2005-01-01 Netcell Corp Method and apparatus for synchronizing data from asynchronous disk drive data transfers
US7913148B2 (en) * 2004-03-12 2011-03-22 Nvidia Corporation Disk controller methods and apparatus with improved striping, redundancy operations and interfaces

Also Published As

Publication number Publication date
WO2004095255A3 (en) 2005-07-14
CN1777861A (zh) 2006-05-24
JP2006524401A (ja) 2006-10-26
CN100371874C (zh) 2008-02-27
US20040264309A1 (en) 2004-12-30
WO2004095255A2 (en) 2004-11-04
CA2522915A1 (en) 2004-11-04
EP1625489A2 (en) 2006-02-15
US8281067B2 (en) 2012-10-02

Similar Documents

Publication Publication Date Title
KR20060025135A (ko) 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기
US7913148B2 (en) Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US5889795A (en) Disk array system and method for storing data
US7770076B2 (en) Multi-platter disk drive controller and methods for synchronous redundant data operations
US5956743A (en) Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
EP0485110B1 (en) Logical partitioning of a redundant array storage system
USRE39421E1 (en) On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively
US6904498B2 (en) Raid controller disk write mask
US8468301B2 (en) Writing of data on an array of storage devices with controlled granularity
CN1965298B (zh) 用于管理奇偶raid数据重建的方法、系统和设备
US5418925A (en) Fast write I/O handling in a disk array using spare drive for buffering
US5650969A (en) Disk array system and method for storing data
US5471640A (en) Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n
KR20120107126A (ko) 카피-백 동작을 수행하기 위한 방법 및 제어기
JP2011508349A (ja) プロセッサを内部メモリに接続するクロスバー・スイッチを含むフラッシュメモリ用ストレージコントローラ
US10678470B2 (en) Computer system,control method for physical storage device,and recording medium
JP3247075B2 (ja) パリティブロックの生成装置
JP2912299B2 (ja) ディスクアレイ制御装置
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
WO2005089339A2 (en) Disk controller methods and apparatus with improved striping redundancy operations and interfaces
US20060294303A1 (en) Disk array access dynamic control device and method
US6898666B1 (en) Multiple memory system support through segment assignment

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application