KR100224525B1 - 어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템 - Google Patents

어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템 Download PDF

Info

Publication number
KR100224525B1
KR100224525B1 KR1019960043517A KR19960043517A KR100224525B1 KR 100224525 B1 KR100224525 B1 KR 100224525B1 KR 1019960043517 A KR1019960043517 A KR 1019960043517A KR 19960043517 A KR19960043517 A KR 19960043517A KR 100224525 B1 KR100224525 B1 KR 100224525B1
Authority
KR
South Korea
Prior art keywords
data
raid
array
channel
local bus
Prior art date
Application number
KR1019960043517A
Other languages
English (en)
Other versions
KR970022778A (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 KR970022778A publication Critical patent/KR970022778A/ko
Application granted granted Critical
Publication of KR100224525B1 publication Critical patent/KR100224525B1/ko

Links

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
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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
    • 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 호스트 시스템으로부터 데이터 기억장치 어레이로의 데이터 전송을 제어하는 어레이 컨트롤러에 관한 것으로서, 이 어레이 컨트롤러는 상기 전송 중에 데이터가 스테이지되는(staged) 데이터 버퍼에 로컬버스를 통해 접속된 프로세서를 포함한다. 또한, 이 어레이 컨트롤러는 상기 데이터 버퍼의 동작을 제어하는 버퍼 컨트롤러를 갖추고 있으며, 또한, 로컬 버스 어드레스에 의해 선택가능한 다수의 데이터 채널 - 상기 채널을 통해 상기 데이터 버퍼로부터 또한 상기 데이터 버퍼로 데이터가 전송됨 - 을 제공하는 채널 하드웨어를 갖추고 있다.

Description

어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템
제1도는 RAID 컨트롤러를 경유하여 하드디스크 장치들의 어레이에 연결된 호스 트를 포함하는 데이터 처리 시스템의 블록도.
제2는 제1도에 도시한 RAID 컨트롤러의 주요 논리적 구성요소들을 나타낸 블록 도.
제3도는 제1도에 도시한 RAID 컨트롤러에서 채널 하드웨어와 DRAM 컨트롤러 하드웨어의 관계를 나타낸 블록도.
제4도는 본 발명에 따라 RAID 연산을 수행하기 위해 데이터 처리 시스템에 의 해 제공되는 서비스를 나타내는 블록도.
제5도는 RAID 컨트롤러 내의 DRAM 및 플로우-쓰루(flow-through) XOR 하드웨어의 블록도.
제6도는 로컬 버스 어드레스를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
100 : 어플리케이션 102 : 파일 시스템
104 : 장치 드라이버 106 : PCI 게이트웨이
108 : RAID-3 필터 109 : DMA
110 : 커널 112 :디스크 서비스
114 : SSA 드라이버 116 : SIC
[발명의 목적]
[발명이 속하는 기술분야 및 그 분야의 종래기술]
본 발명은 호스트 시스템과 다수의 데이터 기억장치들간의 데이터 전송을 제어하는 컨트롤러에 관한 것이며, 또한 이러한 컨트롤러를 내장한 데이터 처리 시스템에 관한 것이다.
최근 수년간에 걸쳐, 컴퓨터 시스템내에 대량의 데이터를 저장하기 위한 방법으로서 디스크 드라이브 어레이에 대한 관심이 증대되어 왔다. 디스크 어레이는 통상적으로, 디스크 드라이브로 또한 디스크 드라이브로부터의 데이터 전송을 제어하는 하나 또는 그 이상의 컨트롤러 요소를 통하여 사용 시스템에 연결가능한 다수의 디스크 드라이브로 구성된다. 디스크 어레이는 사용 시스템으로 또한 사용 시스템으로부터 고용량의 데이터 저장, 고신뢰도 및 고속 데이터 전송을 지원하도록 설계된다.
어레이 아키텍쳐를 위한 한가지 널리 채택되고 있는 방식으로서 RAID(Redundant Arrays of Independent Disks)가 알려져 있다. 이 RAID의 세부사항 은 그간 많은 책자에 게재된 바 있으며, 특히 A Case for Redundant Arrays of Independent Disks(RAID)(1988.6.1 - 6.3. 시카고에서 개최된 ACM SIGMOD 학회 발 표 논문집 p109-116)라는 제목의 논문에서 찾아 볼 수 있다. 이 논문에서는, 서로 다른 데이터 관리 레벨을 제공하기 위한 5-레벨의 어레이(RAID-1부터 RAID-5까지)가 제안되어 있다. 이 각각의 RAID 레벨은 다수의 비싸지 않은(inexpensive) 디스크 드라이브들을 함께 링크시킴으로써, 사용자가 경제적으로 데이터 저장용량을 증가시킬 수 있게 한다. RAID 시스템은 두 개의 드라이브에 두 개의 데이터 복사본을 저장함으로써(RAID-1의 경우), 또는 어레이의 2개 또는 그 이상의 드라이브에 데이터를 분산시키고, 스트라이프된(striped) 데이터에 대한 패리티를 계산하고, 그 패리티 데이터를 다른 드라이브에 저장함으로써 , 한 드라이브의 고장에 의한 데이터 손실을 방지한다. 데이터를 보유하고 있는 드라이브중의 한 드라이브에 고장이 발생하는 경우, 그 고장난 드라이브의 데이터는 패리티 데이터 및 패리티 그룹의 나머지 데이터를 사용하여 재구성될 수 있다(RAID-2, 3, 4, 5의 경우). N개의 데이터 디스크와 P개의 패리티 디스크가 있는 경우에, 어레이는 종종 'N+P'로 불린다. RAID-3을 예로 들면, 데이터는 디스크간에 비트 또는 바이트 단위로 스트라이프되며, 패리티 데이터는 단일 패리티 디스크에 저장된다. 그러므로, RAID-3의 경우에 P는 1이다. 여기서, 패리티 그룹은 N개 디스크 상의 데이터와 P개 디스크 상의 패리티 데이터로 이루어지는 하나의 데이터 그룹으로 구성된다.
데이터가 RAID-3의 디스크에 저장되는 경우에, 그 저장되는 데이터에 대해 XOR 연산을 수행함으로써 패리티가 생성되며, 이렇게 생성된 패리티는 별도의 디스크에 저장된다. 다시 말해, 논리적인 데이터 레코드(record)은 분리되어 여러 디스크에 걸쳐 인터리브(interleaved)되고, 패리티는 별도의 디스크에 저장된다. 모든 디스크들은 사용자 어플리케이션 액세스를 위해 동시에 액세스된다. 여기서, 어레이에 저장된 데이터가 갱신될 필요가 있는 경우, 그 데이터를 포함하고 있는 패리티 그룹에 대한 패리티 데이터도 역시 갱신될 필요가 있다. 패리티 생성은 소프트웨어로 구현되거나 또는 이와 달리 XOR 하드웨어의 형태로 구현될 수 있다. 일반적으로, 하드웨어 구현을 사용하면 호스트 시스템으로부터 어레이로 데이터가 기록될 때 패리티가 더욱 빠르게 생성될 수 있다. 이러한 구현의 한 예가 유럽특허 EP 508,604호에 개시된 바 있다.
[발명이 이루고자 하는 기술적 과제]
본 말명은 개선된 기억장치 어레이 컨트롤러를 제공하고 또한, 이러한 컨트롤러를 포함하는 개선된 데이터 기억장치 어레이를 제공하는 것을 목적으로 한다.
본 발명에 따르면, 호스트 시스템으로부터 데이터 기억장치 어레이로의 데이터의 전송을 제어하는 어레이 컨트롤러가 제공되는데, 상기 컨트롤러는 상기 전송 중에 데이터가 스테이지되는(staged) 데이터 버퍼에 로컬버스를 통해 접속된 프로세서를 포함한다. 또한, 이 어레이 컨트롤러는 상기 데이터 버퍼의 동작을 제어하는 버퍼 컨트롤러를 갖추고 있으며, 또한, 로컬 버스 어드레스에 의해 선택가능한 다수의 데이터 채널 - 상기 채널을 통해 상기 데이터 버퍼로부터 또한 상기 데이터 버퍼로 데이터가 전송됨 - 을 제공하는 채널 하드웨어를 갖추고 있다.
[발명의 구성 및 작용]
본 발명의 특징 및 장점과 그 바람직한 이용 모드에 대한 보다 완전한 이해를 위해, 첨부도면과 함께하는 다음의 상세한 설명을 참조하자.
제1도는 호스트 컴퓨터 시스템(10)을 포함하는 데이터 처리 시스템을 도시하고 있으며, 호스트 컴퓨터 시스템은 데이터 버스 또는 링크(12)를 통해 RAID 컨트롤러(20)로 접속되며, 이 RAID 컨트롤러(20)는 다시 데이터 링크(40,42,44,46)를 경유하여 다수의 자기디스크 드라이브(50, 52, 54, 56)의 형태로된 다수의 데이터 기억장치에 접속된다. 제1도에서, 비록 각각의 디스크 드라이브가 별도의 통신 링크를 통해 RAID 컨트롤러에 접속된 것으로 도시되었지만, 대안의 구성에서는, 디스크 어레이가 루프로 구성되어 각각의 디스크 드라이브들이 체인 형태로 연결되고 컨트롤러로의 통신을 위해 체인의 양단이 접속된 구조가 될 수도 있다는 것을 이해할 것이다. 어레이의 디스크 드라이브의 개수 역시 데이터 처리 시스템이 사용될 특정 환경에 따라 가변적일 수 있다는 것을 이해할 것이다. RAID-3의 구성에서, 한 개의 어레이는 하나의 패리티 드라이브와 함께 3개, 4개 또는 그 이상의 데이터 드라이브로 구성될 수 있다. 도면에서는 비록 RAID 컨트롤러가 호스트 시스템과 분리되어 도시되었지만, 예를 들어, 어댑터 카드 형태로 모든 RAID 컨트롤러의 기능을 호스트 시스템 내에 포함시키는 것도 가능하다. 이 호스트 시스템은 다음에 제2 호스트 시스템에 접속될 수 있으며, 물론, 이 제2 호스트 시스템은 그 고유의 RAID 컨트롤러 및 디스크 드라이브 어레이에 접속된다. 이러한 호스트-호스트 통신 경로는 RAID 컨트롤러 중 하나의 고장시 소정의 리던던시(redundancy)를 제공한다.
바람직한 실시예에서, 호스트 시스템으로 IBM AIX 운영체제를 실행하는 IBM RISC System/6000 컴퓨터가 사용되는데, 이에 대한 상세사항은 이미 공개된 문헌들 을 통해 알 수 있다. 호스트와 RAID 컨트롤러 그리고 디스크 드라이브간의 접속은 요구되는 대역폭과 활용가능성에 따라 다양한 방법으로 구현될 수 있다. 그러나, 본 실시예는 직렬 기억장치 아키텍쳐(Serial Storage Architecture;이하 SSA라 함)를 참조하여 기술하기로 한다. SSA 아키텍쳐는 미국 국가표준협회(ANSI)의 X3T10.1에 의해 개발중인 아키텍쳐로서 디스크 드라이브, 테이프 드라이브 등과 같은 외부 부가장치를 워크스테이션 서버(호스트 시스템) 및 기억장치 서브시스템에 접속시키도록 설계된 인터페이스이다. 이에 대한 자세한 정보는 ANSI로부터 입수할 수 있다.
이 SSA 아키텍쳐에 따르면, 호스트 시스템과 RAID 컨트롤러간의 링크는 직렬화된 데이터에 대한 통신 경로를 제공하는 직렬링크이며, 시스템의 다양한 구성요소 사이의 고속 데이터 전송을 가능하도록 SSA는 링크를 통한 전이중(full duplex) 통신을 제공한다. 루프 구성에 있어서, 루프 내의 각 드라이브로의 대역폭을 2배로 만들거나 또는 하나의 접속이 실패했을 때 드라이브로의 다른 루트를 제공하기 위해 각 드라이브로의 2개의 통신 경로(체인의 양 단부로부터의 통신 경로)가 이용될 수 있다. 또한, SSA는 2-신호 접속(송신과 수신)을 제공하여 전이중 통신을 제공한다. 호스트 시스템과 RAID 컨트롤러간의 직렬접속은 정보 프레임을 통신하기 위해 사용되는 4개의 라인으로 구성되며, 이들 4개의 라인은 각각 플러스/마이너스 송신 라인과 플러스/마이너스 수신 라인으로 구성된다. 게이트웨이라 불리는 포트는 하나의 송신 경로와 하나의 수신 경로로 구성되는 링크의 한 단부를 지원하기 위한 하드웨어와 펌웨어로 구성된다. SSA내의 포트는 임의의 특정 시간에 인바운드(inbound)와 아웃바운드(outbound) 각각에 초당 20 Mbyte 양방향 통신을 유지할 수 있다. 따라서, SSA 이중포트 노드는 총 80 Mbyte/sec에 대한 4개의 동시 통신을 실행할 수 있다. 또한, 한 노드의 포트는 링크를 통해 또 다른 노드의 포트로 연결된다. 게이트웨이는 SSA 네트워크 통해 전이중 통신을 제공하기 위해 두 노드 사이에 설정된다. 이때 한 노드가 다른 노드로 디스크 액세스와 같은 기능을 수행하도록 트랜잭션을 발생하게 되면, 게이트웨이는 작 방향으로 하나씩 2개의 접속으로 이루어지며, 즉, 마스터(트랜잭션을 발생한 접속)는 마스터 제어 블록을 구축하고, 게이트웨이의 슬레이브측은 트랜잭션 프레임을 수신하고, 어드레스된 서비스를 호출하는 태스크 제어 블록(task control block)을 구축한다.
SSA는 직렬 접속된 디스크 드라이브를 어드레싱하기 위해 SCSI(Small Computer System Interface) 사양(specifications)의 논리적 특징을 이용한다. 이 SCSI 사양은 SSA의 물리적 사양으로 맵핑된다. 즉, SSA는 다양한 상위 계층 프로토콜을 위한 트랜스포트 계층(transport layer), 특히, 기억장치를 위한 SCSI-2로서 사용될 수 있다. SSA 상의 SCSI-2는 개시프로그램(initiators), 타겟 및 논리 유닛이 있는 SCSI-2 표준에서 정의된 것과 유사한 어드레싱 체계를 유지한다.
제2도는 RAID 컨트롤러의 주요 구성요소들을 도시하고 있다. 이 컨트롤러는 마 이크로프로세서 버스(24)를 통해 RAM(25)(코드 및 제어 블록을 포함함)과 ROM(26)에 접속된 마이크로프로세서(22)를 포함한다. 마이크로프로세서 브릿지(bridge)(27)는 로컬 버스(28)를 통해 마이크로프로세서(22)를 DRAM 컨트롤러(29)에 접속하며, 이 컨트롤러는 다음에 DRAM(30)에 접속된다. DRAM 컨트롤러(29)는 RAID-3 어레이를 위한 플로우-쓰루(flow-through) XOR을 제공하기 위해 필요한 하드웨어를 포함한다. 호스트 브릿지(32)는 PCI 버스(45)를 통해 호스트 시스템 하드 웨어에 대한 접속을 제공한다. 또한, 디스크 기억장치 어레이로의 통신 경로를 제공하는 2개의 SSA 이중 포트 칩(34, 36)이 로컬버스(28)에 연결된다.
제3도를 참조하면, 로컬 버스(28)와 DRAM 제어 유닛(49) 사이에 제공된 채널 하드웨어(48)는 데이터가 DRAM(30)에서 순차적으로 액세스 될 때, 어스레스 변환 및/또는 데이터 조작(manipulation)을 제공한다. DRAM 컨트롤러는 DRAM 내의 데이터에 액세스하기 위해 통상적인 방식으로 동작한다. 이것은 로우/컬럼 어드레스를 멀티플렉싱하고 DRAM 제어신호를 발생한다. 또한, 버스트 전송(burst transfer) 중에 대역폭을 최대화하기 위해 페이지-모드 사이클이 이용된다. 채널 하드웨어는 일반적인 DRAM 컨트롤러처럼 로컬버스 상에서 슬레이브로 동작하며, 이러한 채널 하드웨어의 동작은 채널을 경유하여 데이터를 전송하는 마스터 측에 대해 투명성을 유지한다. 또한, 병행(concurrent) 데이터 전송을 허용하기 위해 복수 채널이 제공되는 것이 바람직하다. 이때 특정 채널의 선택은 입력 어드레스의 상위 비트들(high order bits)에 의해 이루어진다. 예를 들어, 16채널인 경우, 로컬버스 어드레스는 채널의 기능을 선택하는 비트들과 특정채널을 어드레싱하기 위한 4개의 비트를 포함한다. 본 발명의 실시예에서 사용된 로컬버스 어드레스 포맷이 제6도에 도시되어 있다. 각 채널은 기능(Function) 필드 및 관련된 파라미터를 갖고 있으며, 이것은 채널 하드웨어 내의 채널 RAM에 저장되며 데이터 전송시 채널이 이용되기 전에 펌웨어에 의해 초기화된다. 본 실시예에서, 채널 하드웨어는 로컬버스와 DRAM 간의 데이터 전송을 관리하기 위해 16개 채널을 제공한다. 각 채널은 0, 1, … 15로 번호가 부여되고, 하나의 채널은 로컬버스 어드레스의 비트 31:24에 의해 다음과 같이 선택된다.
비트 31:24 기능
0100xxxx DRAM에 대해 직접 액세스
0101cccc 채널 'cccc'를 통한 DRAM 액세스
예를 들어, 채널 7은 비트 27:24가 '0111b'일 때 선택된다.
본 실시예에서는, 후술하는 바와 같이 RAID-3 스트라이프(SRTIPE) 및 기록 (WRITE) 연산은 어떤 채널도 이용할 수 있다. 그러나, RAID-3 재구성(RECONSTRUCT) 연산은 단지 채널 15 만 이용할 수 있다. 더욱이, 채널들은 컨트롤러 하드웨어내의 데이터 및 패리티 버퍼의 이용에 대한 충돌을 가정하여, 병행 동작하도록 설계된다.
즉, 예를 들어, 모든 16개 채널은 데이터 스트라이핑 및/또는 RAID-3 기록 기능을 병행하여 수행할 수 있고, 채널 'n'이 채널 'n+8'과 동시에 이용되지 않는다면(상기 두 채널이 모두 RAID-3 기록에 이용될 때), 최대 8개의 채널이 RAID-3 기록기능을 동시에 수행할 수 있으며, 채널 15는 RAID-3 재구성 모드에 사용될 수 있는데, 이때 다른 모든 채널은 데이터 스트라이핑을 위해 사용된다. 이를 위해 다음과 같은 버퍼 RAM들이 컨트롤러에 필요하다(제5도 참조).
* 32워드 × 36비트 이중포트 RAM으로 구성된 하나의 데이터 버퍼 -- 이 데이터 버퍼는 RAID-3 재구성 및 RAID-3 기록에 사용됨.
* 4워드 × 36비트 이중포트 RAM으로 각각 구성된 2개의 패리티 버퍼 -- RAID-3 재구성에서만 사용됨.
이러한 데이터 및 패리티 버퍼는 선택된 채널내의 BufPtr 필드에 의해 어드레스 된다.
이 채널들은 규정된 어레이 기능을 수행하는데 사용된다. 이러한 기능들과 채널 하드웨어를 사용하는 것에 대해 RAID-3으로서 구성된 어레이를 참조하여 후술한다. 이러한 구성에 있어서 각 기능들은 다음과 같이 카테고리로 구분될 수 있다.
1. RAID-3 스트라이프: 이 연산은 장치로부터 DRAM으로 또한 그 DRAM으로부터 장치로 데이터를 스트라이핑하는 것을 포함하며, 각 장치에 대해 하나의 채널이 사용된다.
2. RAID-3 기록: 이 연산은 호스트로부터 DRAM으로 데이터를 전송하는 것을 포함한다. 본 실시예에서, 이 연산은 데이터가 DRAM으로 전송될 때, 패리티 데이터를 진행중(on-the-fly)에 생성하는 것을 포함한다. 이런 형태의 전송을 위해 단일 채널이 사용된다. 이러한 기능은 디스크가 손상된 경우에도 호스트로부터 DRAM으로의 모든 전송을 위해 이용되며, 이 경우에 해당 디스크에 대한 데이터는 단순히 사용되지 않게 된다.
3. RAID-3 재구성: 이 연산은 DRAM으로부터 호스트로의 데이터 전송에 적용 되며, 데이터 기억장치중 하나가 비정상으로 동작할 때 실시된다. 본 실시예에서, 손실 데이터는 DRAM으로부터 데이터가 전송될 때 진행중에 재구성된다. 이런 형태의 전송을 위해 단일 채널이 사용된다.
먼저, 호스트 메모리로부터 RAID-3 어레이로서 구성된 장치로의 데이터 기록 을 수행하는데 있어 시스템 셋업 및 동작을 설명하기로 한다.
호스트에서 실행되는 어플리케이션이 기억장치로 데이터 기록을 요구하면, 먼저 컨트롤러의 DRAM 버퍼로 데이터를 기록하기 위해 RAID-3 기록을 수행하도록 컨트롤러의 하드웨어와 펌웨어를 셋업하고, 또한, DRAM 버퍼로부터 개개의 디스크 기억장치로 데이터를 전송하기 위해 RAID-3 스트라이프를 수행하도록 컨트롤러 하드웨어 및 펌웨어를 셋업할 필요가 있다. 이하의 설명에서는 간략성을 위해, RAID-3 기록과 RAID-3 스트라이프의 두 연산이 연속적으로 수행되는 것처럼 설명된다. 그러나, 호스트 메모리와 기억장치들 사이의 효율적인 데이터 파이프라이닝을 제공하기 위해, 이들 두 연산은 일반적으로 병렬 동작하도록 구성된다는 것을 이해 할 것이다. 또한, 보다 상세하게 후술되는 바와 같이, 호스트로부터 소정량의 데이터를 수신할 때 디스크 장치로 기록할 수 있도록 컨트롤러 내에 A/B 버퍼링이 제공된다. RAID-3 기록 및 RAID-3 스트라이프 연산에 대해 제4도를 참조하여 설명한다.
[RAID-3 기록]
RAID-3 기록은 기억장치로 데이터의 기록을 요구하는 호스트상에서 실행되는 어플리케이션(100)에 의해 시작된다. 이 어플리케이션은 호스트 메모리내 어드레스를 포함하여 전송될 데이터의 세부사항을 호스트 시스템과 관련된 파일 시스템(102)으로 전달하는데, 여기서는 이 요구를 디스크 번호, 기록될 데이터의 논리적 블록 시작 어드레스 및 블록수 등 세부사항을 포함하는 물리적인 요구로 변환한다. 이러한 요구가 제공되면, 장치 드라이버(104)의 마스터 프로세스는 컨트롤러로의 트랜잭션을 발생한다. 이 마스터 프로세스는 그 트랜잭션을 위한 마스터 컨트롤 블록(MCB)에 대한 포인터를 이용하여 호스트 커널(kernel)을 호출(call)하게 된다. 여기서, MCB는 컨트롤러에서 요구되는 서비스로 어드레싱된다. 본 예에서, 요구되는 서비스는 RAID-3 이다. 호스트 커널은 MCB에 대한 포인터를 이용하여 게이트웨이를 호출한다. 게이트웨이 호스트측은 호스트 메모리에서의 기록연산을 위해 게이트웨이 트랜잭션 컨트롤 블럭(GTCB)을 생성한다. 이 GTCB는 본 발명의 설명 목적을 위한, (i) 데스티네이션 서비스 - 컨트롤러 펌웨어에 의해 제공되는 RAID-3 서비스, (ii) 호스트 메모리에 데이터를 기록하기 위한 포인터, 및 (iii) 실제 연산 파라미터의 세부사항에 대한 포인터를 포함하여, 다수의 파라미터를 명시한다.
다음에, PCI 게이트웨이는 GTCB에 대한 포인터를 메모리 내의 큐에 기록한다. 호스트 하드웨어는 호스트가 GTCB 포인터를 기록할 때 컨트롤러로 인터럽트를 발생한다. 게이트웨이(106)의 컨트롤러측은 DMA(109)에 의한 GTCB 페치(fetch)를 위해 호스트 인터페이스칩을 사용한다. 다음에, 게이트웨이는 컨트롤러 어드레스 공간에 트랜잭션 컨트롤 블럭(TCB)을 생성한다. 마지막으로, 게이트웨이는 TCB를 제출하기 위해 컨트롤러 커널(110)을 호출한다. 컨트롤러 커널은 TCB에 대한 포인터를 이용하여 RAID-3 서비스(108)를 호출한다. 다음에, RAID-3 서비스는 RAID-3 어레이를 구성하는 디스크 드라이브 각각에 대한 트랜잭션을 발생하고, 이들 트랜잭션을 커널을 이용하여 디스크 서비스(112)로 전송한다. 그러면, 디스크 서비스는 적절한 SSA-SCSI 판독 명령을 생성하여, 직렬 인터페이스칩(116)을 포함하고 있는 SSA 드라이버(114)로 이들 트랜잭션을 전달한다.
SSA 드라이버는 SSA 프로토콜 및 직렬 인터페이스칩을 이용하여 디스크 드라 이브(120)로 SCSI 명령을 발생한다. 각각의 디스크 드라이브에 대한 SCSI 명령은 기록될 논리적 블록의 시작 어드레스(LBA)와 블록수 등을 명시한다.
컨트롤러내에서, 메모리 할당 서비스는 기록 데이터를 위한 DRAM 버퍼의 공간을 할당한다. 또한, 메모리 할당 서비스는 RAID-3 기록을 위해 채널 하드웨어의 한 개 채널을 할당하여 초기화시킨다. 이러한 초기화는 다음과 같은 파라미터를 채널 RAM에 기록하는 과정을 포함한다(본 설명에서 1워드는 4바이트이다) :
(i) Addrl -- DRAM 워드 어드레스를 포함함, (ii) InP -- 패리티가 데이터와 함께 인터리브될 것인지(InP=1) 또는 패리티가 할당된 버퍼 공간내의 별도의 패리티 데이터 영역에 기록될 것인지(InP=0)에 관해 명시하기 위한 비트, (iii) Fun -- 채널 기능을 선택하기 위해 코딩된 2비트 필드(RAID-3 기록인 경우 이 필드는 10b로 셋트됨), (iv) Addr2 -- 추가적인 DRAM 워드 어드레스를 포함함(InP=0 일 때 패리티를 위한 DRAM 어드레스를 명시함), 및 (v) ArrWid -- RAID-3 어레이의 폭을 명시함. 이것은 디스크가 N개인 경우 N-1로서 정의됨(즉, 패리티 디스크는 포함되지 않음).
여기서, 스트라이프 크기(즉, 도5에 예시한 바와 같이, 각 디스크에 대해 DRAM에 저장되는 데이터 단위의 크기)는 컨트롤러 내의 온-칩 RAM의 양을 최소화하는 것과 패리티 스트라이프를 액세스할 때 DRAM 대역폭을 최대화하는 두 측면을 절충하여 선택되며, 본 설명에서는 16바이트로 설정된다.
일단 채널이 할당되면, 호스트 인터페이스칩(32) 내의 DMA 엔진(108)에는 (원래의 I/O 요구에서 부여되는) 호스트 내의 소스 어드레스, DRAM의 데스티네이션 어드레스 및 바이트 카운트가 적재된다. 다음에, DMA 엔진은 DMA를 통해 데이터가 DRAM으로 전송되는 것을 제어한다. 또한, 특정 채널에 대해, RAID-3 기록은 데이터 버퍼의 한 개의 스트라이프를 사용하여 각 스트라이프에 대한 패리티를 계산한다. 로컬버스 상의 데이터는 어드레스 Addr1에서 선형적으로 DRAM에 저장된다. 데이터가 DRAM에 저장되는 것과 병행하여, 데이터의 각 스트라이프(즉, 16바이트)에 대해 XOR 연산이 수행된다. 첫번째 디스크에 대한 데이터 스트라이프는 로컬버스 어드레스의 비트 26:24에 의해 선택된 데이터 버퍼 스트라이프로 기록된다. 나머지 디스크들에 대한 데이터 스트라이프는 XOR 연산되어 버퍼에 저장된다. 일단 생성되면, 스트라이프 버퍼의 내용(즉 패리티)은 Addr2를 이용하여 DRAM의 별도 영역에 선형적으로 저장되거나(InP=0 경우), 또는 추가적인 데이터 스트라이프로서 저장된다( InP=1인 경우).
[RAID-3 스트라이프]
앞서 언급한 것처럼, DRAM으로부터 디스크로의 RAID-3 스트라이프 연산은 일 반적으로 호스트와 DRAM간의 RAID-3 기록 연산과 병렬로 실행되게 된다. 이 RAID-3 스트라이프 연산은 다음과 같이 진행된다.
컨트롤러에 의해 직렬 링크를 통해 발생된 SCSI 명령에 응답하여, 각 디스크 드라이브는 그것이 데이터를 수신할 준비가 되어 있을 때, 데이터 요구 메시지를 회신한다. 각 드라이브로부터 데이터 요구 메시지를 수신하면, SSA 드라이버는 DMA에 의한 데이터를 로컬버스를 통해 DRAM으로 전송하기 위해 SIC를 셋업한다. 각각의 디스크 드라이브에 대해, SSA 드라이버는 동적으로 SIC DMA 채널을 할당하고, 로컬버스 어드레스(RAID-3 서비스에 의해 발생된 본래의 기록 트랜잭션에 부여됨)와, 전송될 총 바이트수 및 그 연산이 기록 연산이라는 사실 등에 관한 세부사항을 이용하여 DMA 채널을 초기화시킨다. 로컬버스 어드레스의 비트 31:24는 컨트 롤러 채널 ID(identity) 및 전송이 DRAM을 경유한다는 사실 등의 정보를 명시한다.
어레이의 각각의 디스크 드라이브에 대해 하나의 컨트롤러 채널이 할당되어 초기화된다. 컨트롤러 펌웨어는 어레이의 각 디스크에 대해 명시된 채널을 위한 채널 RAM에 파라미터 InP, ArrWid 및 Addr1 등을 적재한다(이들 파라미터의 정의에 대해서는 전술한 것을 참조하자). 스트라이핑은 데이터가 로컬버스를 통해 기록 또는 판독될 때 실행된다. 각 디스크에 대해, 채널 하드웨어는 워드 어드레스 Addr1을 이용하여 DRAM으로부터 요구된 데이터에 액세스한다. Addr1은 각 워드가 액세스된 이후에 통상 1씩 증가된다. 그러나, 각각의 디스크에 대하여 데이터의 첫 번째 스트라이프(즉, 16바이트)의 종료시에는, Addr1은 InP=0 일 경우(RAID-3 기록 연산 중 DRAM의 별도 영역에 패리티 데이터가 저장됨) 1+4*ArrWid 만큼 증가하거나, 또는 InP=1일 경우 1+4*(1+ArrWid) 만큼 증가한다. 이러한 방법으로, 데이터는 할당된 컨트롤러 채널을 이용하여 각 디스크로 전송된다.
다음으로, 채널 하드웨어를 RAID-3 재구성 연산의 일부분으로 이용하는 것에 대해 설명한다. 이러한 연산은 어레이 판독 명령 동안에 손상된 데이터 디스크로부터의 판독 데이터를 재구성하는데 이용된다. 재구성 연산의 데이터 흐름은 제5도에 도시되어 있다. 재구성(RECONSTRUCT) 연산 중에, 동작중인 디스크로부터의 데이터는 전술한 바와 같은 방식으로 활용가능한 소정의 채널을 이용하여 DRAM으로 스트라이프된다(데이터가 DRAM으로부터가 아닌 DRAM으로의 전송과정은 제외됨). 이때 인터리브되지 않은 패리티가 선택되는 경우에(InP=0), 손상된 디스크에 대한 스트라이프는 빈 공간으로 남겨둔 채 패리티 디스크로부터 판독된 데이터를 Addr2를 이용하여 DRAM의 별도의 영역에 저장한다. 그러나, 인터리브된 패리티 모드가 선택되는 경우에는(InP=1), 손상된 디스크에 대한 스트라이프를 패리티가 대체한다(Addr2는 사용되지 않음). RAID-3 재구성은 A/B 데이터와 패리티 버퍼 및 채널15를 이용한다. 펌웨어는 채널15의 채널 RAM을 다음의 파라미터, 즉, InP, ArrWid, Addr1, Addr2, 및 BufPtr을 이용하여 초기화한다. 손상된 디스크의 ID는 RAID-3 재구성 기능을 제어하는 재구성 레지스터에 저장된다.
플로우-쓰루(flow-through) XOR 연산은 각 디스크로부터의 하나의 스트라이 프를 다음과 같이 처리한다.
1. 호스트 브릿지에 의해 요구된 데이터는 통상적으로 데이터 버퍼(80)로부터 로컬버스로 전송되는데, 이것은 각 워드 이후에 버퍼 포인터(BufPtr)를 증가시키게 된다. 그러나, 버퍼 포인터가 (재구성 레지스터에서 식별된 바와 같은) 손상된 디스크에 대응하는 스트라이프를 어드레스하는 경우에, 데이터는 그 대신에 현재의 패리티 버퍼(82 또는 84)로부터 전송된다.
2. 로컬버스를 통해 각 워드가 전송될 때, 교번 데이터 및 패리티 버퍼들이 DRAM으로부터 다음 셋트의 스트라이프로 채워진다.
-- 유효 데이터 스트라이프는 채널15에서 Addr1을 이용하여 페치되며, 이때 각 워드 이후에 Addr1이 증가한다.
-- 손상된 디스크에 할당된 스트라이프에 도달하면, Addr1은 계속하여 증가하고, 패리티 스트라이프는 InP가 '0'인 경우에 어드레스 Addr2에 의해 지시된 어드레스로부터 페치되거나(이 경우 Addr2는 패리티 스트라이프의 각 워드 이후에 증가함), 또는 InP가 '1'인 경우에 손상 디스크의 스트라이프 위치로부터 페치된다(이 경우 Addr2는 그대로 유지된다).
-- 패치된 각 워드는 BufPtr에서 데이터 버퍼내에 저장된다.
-- 첫 번째 스트라이프 역시 패리티 버퍼내에 저장되고, 후속되는 스트라이프들은 XOR 연산되어 패리티 버퍼로 저장된다.
지금까지 본 발명은 바람직한 실시예를 참조하여 도시 및 설명되었지만, 다음의 특허청구범위에 정의된 바와 같은 본 발명의 사상과 범위를 벗어나지 않고, 그 형태 및 세부사항의 여러 가지 변형이 이루어질 수도 있다.

Claims (12)

  1. 호스트 시스템으로부터 데이터 기억장치 어레이로의 데이터 전송을 제어하기 위한 어레이 컨트롤러에 있어서, 상기 전송중에 데이터가 스테이지되는(staged) 데이터 버퍼에 로컬 버스를 통해 접속된 프로세서, 상기 데이터 버퍼의 동작을 제어하는 버퍼 컨트롤러, 및 로컬 버스 어드레스에 의해 선택가능한 다수의 데이터 채널 - 상기 채널을 통해 상기 데이터 버퍼로부터 로컬버스로 또한 상기 로컬버스로부터 상기 데이터 버퍼로 데이터가 동시에 전송됨 - 을 제공하는 채널 하드웨어를 포함하고, 여기서, 상기 로컬버스 어드레스는 데이터가 상기 데이터 버퍼에 의해 전송될 것이라는 것을 명시하기 위한 식별 비트와 상기 데이터 전송을 위해 선택될 데이터 채널을 식별하는 채널 식별 비트를 포함하고, 또한, 상기 로컬버스 어드레스는 선택된 채널 상에서 전송될 데이터에 대해 수행될 어레이 컨트롤러 서비스를 명시하는 어레이 컨트롤러.
  2. 제1항에 있어서, 상기 로컬버스 어드레스에 의해 선택가능한 RAID-3 어레이 컨트롤러 서비스를 제공하기 위한 수단을 더 포함하고, 그것에 의해 데이터는 RAID-3에 따른 기억 장치에 저장되는 어레이 컨트롤러.
  3. 제2항에 있어서, 상기 RAID-3 서비스중의 하나는, 데이터 기억장치들에서의 후속 저장을 위해 상기 로컬버스 어드레스에 의해 명시된 채널을 통해 상기 호스트로부터 상기 데이터버퍼로 데이터를 전송하고, 패리티 기억장치에서의 후속 저장을 위해 상기 데이터와 관련된 패리티를 생성하는, RAID-3 기록(WRITE) 연산인 어레이 컨트롤러.
  4. 제3항에 있어서, 상기 RAID-3 서비스중의 하나는, 상기 데이터 기억장치 및 패리티 기억장치와 상기 데이터 버퍼 사이에서 데이터를 전송하기 위한 RAID-3 스트라이프(STRIPE) 연산이며, 각각의 기억장치에 대해 한 개의 채널이 선택되는 어레이 컨트롤러.
  5. 제4항에 있어서, 상기 RAID-3 서비스중의 하나는 고장난 기억장치상의 데이터를 재구성하는 RAID-3 재구성(RECONSTRUCT) 연산인 어레이 컨트롤러.
  6. 제1항에 있어서, 상기 데이터 버퍼는 DRAM(Dynamic Random Access Memory)을 포함하는 어레이 컨트롤러.
  7. 어레이로서 구성할 수 있는 다수의 데이터 기억장치들과, 호스트 시스템으로 부터 데이터 기억장치들의 어레이로의 데이터 전송을 제어하기 위한 어레이 컨트롤러를 포함하는 호스트 컴퓨터 시스템과 관련된 데이터 기억장치 어레이에 있어서, 상기 어레이 컨트롤러는, 상기 전송중에 데이터가 스테이지되는 데이터 버퍼에 로컬버스를 통해 접속된 프로세서, 상기 데이터 버퍼의 동작을 제어하는 버퍼 컨트롤러, 및 로컬 버스 어드레스에 의해 선택가능한 다수의 데이터 채널 - 상기 채널을 통해 상기 데이터 버퍼로부터 또한 상기 데이터 버퍼로 데이터가 전송됨 - 을 제공하는 채널 하드웨어를 포함하고, 여기서, 상기 로컬버스 어드레스는 데이터가 상기 데이터 버퍼에 의해 전송될 것이라는 것을 명시하기 위한 식별 비트와 상기 데이터 전송을 위해 선택될 데이터 채널을 식별하는 채널 식별 비트를 포함하고, 또한, 상기 로컬버스 어드레스는 선택된 채널 상에서 전송될 데이터에 대해 수행될 어레이 컨트롤러 서비스를 명시하는 데이터 기억장치 어레이.
  8. 제7항에 있어서, 상기 로컬버스 어드레스에 의해 선택가능한 RAID-3 어레이 컨트롤러 서비스를 제공하기 위한 수단을 더 포함하고, 그것에 의해 데이터는 RAID-3에 따른 기억 장치에 저장되는 데이터 기억장치 어레이.
  9. 제8항에 있어서, 상기 RAID-3 서비스중의 하나는, 데이터 기억장치들에서의 후속 저장을 위해 상기 로컬버스 어드레스에 의해 명시된 채널을 통해 상기 호스트로부터 상기 데이터버퍼로 데이터를 전송하고, 패리티 기억장치에서의 후속 저장을 위해 상기 데이터와 관련된 패리티를 생성하는, RAIB-3 기록(WRITE) 연산인 데이터 기억장치 어레이.
  10. 제9항에 있어서, 상기 RAID-3 서비스중의 하나는, 상기 데이터 기억장치 및 패리티 기억장치와 상기 데이터 버퍼 사이에서 데이터를 전송하기 위한 RAID-3 스트라이프(STRIPE) 연산이며, 각각의 기억장치에 대해 한 개의 채널이 선택되는 데이터 기억장치 어레이.
  11. 제10항에 있어서, 상기 RAID-3 서비스중의 하나는 고장난 기억장치상의 데이터를 재구성하는 RAID-3 재구성(RECONSTRUCT) 연산인 데이터 기억장치 어레이.
  12. 제7항에 있어서, 상기 데이터 버퍼는 DRAM(Dynamic Random Access Memory)을 포함하는 데이터 기억장치 어레이.
KR1019960043517A 1995-10-02 1996-10-01 어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템 KR100224525B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/537,649 1995-10-02
US08/537,649 US5893138A (en) 1995-10-02 1995-10-02 System and method for improving channel hardware performance for an array controller
US8/537,649 1995-10-02
JP95-268912 1995-10-18
JP95-279412 1995-10-26

Publications (2)

Publication Number Publication Date
KR970022778A KR970022778A (ko) 1997-05-30
KR100224525B1 true KR100224525B1 (ko) 1999-10-15

Family

ID=24143541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960043517A KR100224525B1 (ko) 1995-10-02 1996-10-01 어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템

Country Status (5)

Country Link
US (1) US5893138A (ko)
EP (1) EP0767420B1 (ko)
KR (1) KR100224525B1 (ko)
DE (1) DE69626590T2 (ko)
TW (1) TW417061B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5883909A (en) * 1996-11-06 1999-03-16 Lsi Logic Corporation Method and apparatus for reducing data transfers across a memory bus of a disk array controller
JPH10320130A (ja) * 1997-05-02 1998-12-04 Internatl Business Mach Corp <Ibm> ディスク処理装置および記録媒体
JP2912299B2 (ja) * 1997-06-10 1999-06-28 四国日本電気ソフトウェア株式会社 ディスクアレイ制御装置
JP3817339B2 (ja) * 1997-06-26 2006-09-06 株式会社日立製作所 ファイル入出力制御方法
AU5522898A (en) * 1997-12-10 1999-06-28 Symbios Logic Inc. Computer bus data transfer reduction with parity circuit
US6115772A (en) * 1998-09-18 2000-09-05 International Business Machines, Inc. System and method for host expansion and connection adaptability for a SCSI storage array
US6341315B1 (en) 1999-02-26 2002-01-22 Crossroads Systems, Inc. Streaming method and system for fiber channel network devices
US7404021B2 (en) * 2000-11-17 2008-07-22 Aristos Logic Corporation Integrated input/output controller
US20020194428A1 (en) * 2001-03-30 2002-12-19 Intransa, Inc., A Delaware Corporation Method and apparatus for distributing raid processing over a network link
US7401260B2 (en) * 2005-01-28 2008-07-15 International Business Machines Corporation Apparatus, system, and method for performing storage device maintenance
TWI361348B (en) * 2005-09-02 2012-04-01 Infortrend Technology Inc Parity engine for use in storage virtualization controller and methods of generating data by parity engine
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
WO2008070803A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US8443134B2 (en) * 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
TWI656442B (zh) * 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206943A (en) * 1989-11-03 1993-04-27 Compaq Computer Corporation Disk array controller with parity capabilities
DE69131551T2 (de) * 1990-11-09 2000-02-17 Emc Corp Logische Aufteilung eines Speichersystems mit redundanter Matrix
GB2250897A (en) * 1990-12-04 1992-06-17 Ibm Error recovery in data communication systems.
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
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
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5526507A (en) * 1992-01-06 1996-06-11 Hill; Andrew J. W. Computer memory array control for accessing different memory banks simullaneously
GB2268374A (en) * 1992-06-23 1994-01-05 Ibm Network addressing
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 三菱電機株式会社 アレイ型記録装置
AU5442494A (en) * 1992-10-13 1994-05-09 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
US5613141A (en) * 1992-10-19 1997-03-18 International Business Machines Corporation Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
US5551053A (en) * 1994-02-28 1996-08-27 Eaton Corporation System and Method for assigning addresses to I/O devices in a control network and for verifying the assigned address of the devices
US5664221A (en) * 1995-11-14 1997-09-02 Digital Equipment Corporation System for reconfiguring addresses of SCSI devices via a device address bus independent of the SCSI bus

Also Published As

Publication number Publication date
KR970022778A (ko) 1997-05-30
US5893138A (en) 1999-04-06
EP0767420B1 (en) 2003-03-12
DE69626590T2 (de) 2003-12-11
DE69626590D1 (de) 2003-04-17
TW417061B (en) 2001-01-01
EP0767420A1 (en) 1997-04-09

Similar Documents

Publication Publication Date Title
KR100224525B1 (ko) 어레이 컨트롤러를 위한 채널 하드웨어 성능을 개선하기 위한 시스템
US6684295B2 (en) Disk array control device with two different internal connection systems
US7660911B2 (en) Block-based data striping to flash memory
US6526477B1 (en) Host-memory based raid system, device, and method
US7206899B2 (en) Method, system, and program for managing data transfer and construction
US5487160A (en) Concurrent image backup for disk storage system
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US7149846B2 (en) RAID protected external secondary memory
US5345565A (en) Multiple configuration data path architecture for a disk array controller
US6748486B2 (en) Method, system, and data structures for superimposing data records in a first data format to memory in a second data format
EP0907917B1 (en) Cache memory controller in a raid interface
EP1018686A2 (en) Disk array controller
US20040037120A1 (en) Storage system using fast storage devices for storing redundant data
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
US6425053B1 (en) System and method for zeroing data storage blocks in a raid storage implementation
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
US6851023B2 (en) Method and system for configuring RAID subsystems with block I/O commands and block I/O path
US7188303B2 (en) Method, system, and program for generating parity data
CN113687978A (zh) 用于存储阵列控制器的数据处理方法
CA2126754A1 (en) Method for performing disk array operations using a nonuniform stripe size mapping scheme
US20020144028A1 (en) Method and apparatus for increased performance of sequential I/O operations over busses of differing speeds
EP0548153A1 (en) Computer memory array control
JP3393765B2 (ja) アレイ・コントローラおよびデータ記憶アレイ
JPH08501643A (ja) コンピュータ・メモリ・アレイ・コントロール

Legal Events

Date Code Title Description
A201 Request for 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: 20100428

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee