KR100560552B1 - 데이터 기억 시스템 - Google Patents

데이터 기억 시스템 Download PDF

Info

Publication number
KR100560552B1
KR100560552B1 KR1020007009616A KR20007009616A KR100560552B1 KR 100560552 B1 KR100560552 B1 KR 100560552B1 KR 1020007009616 A KR1020007009616 A KR 1020007009616A KR 20007009616 A KR20007009616 A KR 20007009616A KR 100560552 B1 KR100560552 B1 KR 100560552B1
Authority
KR
South Korea
Prior art keywords
data
write
dual
director
pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
KR1020007009616A
Other languages
English (en)
Other versions
KR20010041461A (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 KR20010041461A publication Critical patent/KR20010041461A/ko
Application granted granted Critical
Publication of KR100560552B1 publication Critical patent/KR100560552B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Abstract

호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있는 데이터 기억 시스템. 인터페이스는 한 쌍의 시스템 기억 영역을 포함하는 시스템 기억 장치를 포함한다. 각 기억 영역은 쓰여진 데이터를 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있다. 한 쌍의 시스템 버스가 마련되어 있으며, 각 시스템 버스는 해당하는 시스템 기억 영역에 연결되어 있다. 다수의 디렉터가 시스템 버스를 통하여 시스템 기억 장치에 연결되어 있다. 디렉터는 호스트 컴퓨터와 디스크 드라이브 뱅크 사이에서 오가는 데이터가 시스템 기억 장치를 통과할 때 그 데이터의 전송을 제어한다. 디렉터는 시스템을 이중-쓰기 모드에 있도록 할 수 있으며, 이중-쓰기 모드에서 호스트 컴퓨터와 디스크 드라이브 뱅크 사이의 전송 데이터를 저장하고, 저장된 데이터를 시스템 버스로 차례로 전송하며, 시스템 버스에 연결된 시스템 기억 영역의 번지 지정가능한 동일한 위치에 시스템 버스에 차례로 전송된 데이터 묶음을 쓸 수 있도록 한다.
기억 장치, 인터페이스, 이중-쓰기 모드, 강제 하이/로 모드

Description

데이터 기억 시스템 {DATA STORAGE SYSTEM}
본 발명은 일반적으로 데이터 기억 시스템(data storage system)에 관한 것이고, 더욱 상세하게는 기억 시스템의 일부나 부품의 오동작으로 인하여 전체 시스템이 오동작을 일으키는 것을 방지하는 중복 배열(redundancy arrangement)을 갖춘 데이터 기억 시스템에 관한 것이다.
잘 알려져 있는 바와 같이 대형 메인 프레임(mainframe) 컴퓨터 시스템은 대용량의 데이터 기억 시스템(data storage system)을 필요로 한다. 이러한 대형 메인 프레임 컴퓨터 시스템은 데이터 기억 시스템을 포함하는 주변부를 통하여 컴퓨터 시스템에 입력된 데이터에 여러 가지 동작 또는 연산(operation)을 수행하는 데이터 프로세서(data processor)를 포함하는 것이 일반적이다. 이러한 연산의 결과는 기억 시스템을 포함하는 주변부로 출력된다.
데이터 기억 시스템의 한 예로는 자기 디스크 기억 시스템을 들 수 있다. 여기에서 디스크 드라이브 뱅크(bank of disk drive)와 메인 프레임 컴퓨터 시스템은 인터페이스(interface)를 통하여 서로 연결되어 있다. 인터페이스는 CPU 또는 "전위(front end)" 제어기(controller)[또는 디렉터(director)]와 "후위(back end)" 디스크 제어기(disk controller)(또는 디렉터)를 포함한다. 인터페이스는 컴퓨터에 투명한(transparent) 방식으로 이 제어기(또는 디렉터)들을 작동한다. 다시 말해서 메인 프레임 컴퓨터 시스템이 단순하게 하나의 메인 프레임 메모리를 가지고 동작하는 것처럼 디스크 드라이브 뱅크에 데이터를 저장하고 이로부터 데이터를 검색한다. 이러한 시스템 중 하나가 미국 특허 제5,206,939호 (명칭 : 디스크 매핑 및 데이터 검색 시스템 및 방법, 발명자 : Moshe Yanai, Natan Vishlitzky, Bruno Alterescu, Daniel Castel, 등록일 : 1993년 4월 27일, 양수인 : 본 발명의 양수인)에 기재되어 있다.
이 미국 특허에서 기재되어 있는 것처럼, 인터페이스는 CPU 제어기(또는 디렉터)와 디스크 제어기(또는 디렉터) 외에 번지 지정 가능한(addressable) 캐시 기억 장치(cache memory)를 더 포함할 수 있다. 캐시 기억 장치는 반도체 기억 장치이며, 메인 프레임 컴퓨터 시스템으로부터의 데이터를 디스크 드라이브에 저장하기 전에 빠르게 저장하는 한편, 디스크 드라이브로부터의 데이터를 메인 프레임 컴퓨터에 보내기 전에 저장하는 데에 사용된다. 반도체 기억 장치인 캐시 기억 장치가 디스크 드라이브 등의 자기 기억 장치(magnetic memory)와 구별되는 점은 데이터를 읽고 쓰는 속도가 디스크 드라이브보다 매우 빠르다는 것이다.
CPU 제어기, 디스크 제어기 및 캐시 기억 장치는 백플레인(backplane) 인쇄 회로 기판(printed circuit board)을 통하여 서로 연결되어 있다. 더욱 상세하게 설명하자면, 디스크 제어기는 디스크 제어기 인쇄 회로 기판 위에 장착되어 있고, CPU 제어기는 CPU 제어기 인쇄 회로 기판 위에 장착되어 있으며, 캐시 기억 장치는 캐시 기억 장치 인쇄 회로 기판 위에 장착되어 있다. 디스크 제어기, CPU 제어기 및 캐시 기억 장치 인쇄 회로 기판은 백플레인 인쇄 회로 기판에 꽂혀 있다. 제어기가 오동작을 하는 경우 데이터를 보전(integrity)하기 위하여, 백플레인 인쇄 회로 기판은 한 쌍의 버스(bus)로 이루어진 시스템 버스를 가지고 있다. 디스크 제어기 중 한 세트는 한 버스에 연결되어 있고 다른 세트는 나머지 버스에 연결되어 있다. 이와 마찬가지로 CPU 제어기 중 한 세트는 한 버스에 연결되어 있고, 다른 세트는 나머지 버스에 연결되어 있다. 캐시 기억 장치는 양 버스에 모두 연결되어 있다. 각 버스는 데이터, 번지(address) 및 제어 정보를 공급한다.
따라서 두 개의 버스를 사용하면 한 버스에 연결된 제어기나 디스크 드라이브가 오동작을 하더라도 전체 시스템이 오동작을 하는 것을 방지하는 중복 구조를 가질 수 있다. 나아가, 두 버스를 사용하면 단일한 버스만을 가지고 있는 시스템에 비하여 시스템의 데이터 전송 대역폭이 증가한다.
본 발명에 따른 데이터 기억 시스템에서는 호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있다. 인터페이스는 한 쌍의 시스템 기억 영역을 포함하는 시스템 기억 장치를 가지고 있다. 각 기억 영역은 쓰여진 데이터를 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있다. 시스템 버스가 한 쌍의 시스템 기억 영역에 연결되어 있다. 다수의 디렉터가 시스템 버스를 통하여 시스템 기억 장치와 연결되어 있으며, 디렉터는 호스트 컴퓨터와 디스크 드라이브 뱅크 사이에서 오가는 데이터가 시스템 기억 장치를 통과할 때 그 데이터의 전송을 제어한다. 디렉터는, 시스템을 이중-쓰기 모드에 있도록 할 수 있으며, 이중-쓰기 모드에서 호스트 컴퓨터와 디스크 드라이브 뱅크 사이의 전송 데이터를 저장하고, 저장된 데이터를 시스템 버스로 차례로 전송하며, 시스템 버스에 연결된 두 기억 영역의 번지 지정가능한 동일한 위치에 시스템 버스에 차례로 전송된 데이터를 쓸 수 있도록 한다.
본 발명의 다른 특징에 따르면 인터페이스는 한 쌍의 기억 영역을 포함하는 시스템 기억 장치를 포함한다. 각 기억 영역은 쓰여진 데이터를 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있다. 시스템 버스부는 한 쌍의 시스템 버스를 가지고 있으며, 한 쌍의 시스템 버스는 한 쌍의 시스템 기억 영역 중 대응하는 영역과 각각 연결되어 있다. 다수의 디렉터가 시스템 버스를 통하여 시스템 기억 장치와 연결되어 있으며, 디렉터는 호스트 컴퓨터와 디스크 드라이브 뱅크 사이에서 오가는 데이터가 시스템 기억 장치를 통과할 때 그 데이터의 전송을 제어한다. 디렉터는, 시스템을 이중-쓰기 모드에 있도록 할 수 있으며, 이중-쓰기 모드에서 호스트 컴퓨터와 디스크 드라이브 뱅크 사이의 전송 데이터 묶음을 저장하고, 저장된 데이터 묶음을 한 쌍의 시스템 버스로 차례로 전송하며, 시스템 버스와 연결되어 있는 두 기억 영역의 번지 지정가능한 동일한 위치에 시스템 버스에 차례로 전송된 데이터 묶음을 쓸 수 있도록 한다.
본 발명의 다른 특징에 따르면, 이중-쓰기 모드 동안, 디렉터는 호스트 컴퓨터와 디스크 드라이브 뱅크 사이에 전송되는 데이터 묶음을 내부에 저장한다. 디렉터에 저장된 각 데이터 묶음은 한 기억 주기 동안 그 디렉터와 연결된 한 쌍의 시스템 버스 중 하나로 전송되고, 다음 기억 주기 동안 그 디렉터와 연결된 한 쌍 의 시스템 버스 중 다른 하나로 전송된다. 그러므로 동일한 저장 데이터 묶음이 그 디렉터에 연결된 한 쌍의 시스템 버스에 차례로 전송된다. 디렉터는 한 쌍의 시스템 버스 모두에 연결된 기억 영역 모두가 그 디렉터에 연결되어 있는 한 쌍의 시스템 버스 각각에 차례로 전송된 데이터 묶음을 번지 지정가능한 동일한 위치에 쓸 수 있도록 한다. 따라서, 한 쌍의 시스템 기억 주기가 지나면, 데이터 묶음과 그 데이터 묶음의 사본이 두 기억 영역의 동일한 번지지정가능 위치에 저장되는 것이다. 결국, 데이터 묶음이 시스템 기억 장치에 중복 저장되는 것이다.
본 발명의 다른 특징에 따르면, 이중-쓰기 버스는 다수의 디렉터에 연결되어 있다. 각 디렉터는 (a) 호스트 컴퓨터 또는 디스크 드라이브 뱅크로부터 공급된 데이터 묶음을 저장하는 디렉터 기억 장치와 (b) 이중-쓰기 제어기를 포함한다. 이중-쓰기 제어기는 (i) 시스템에 공급된 이중-쓰기 모드 명령에 응답하여 이중-쓰기 버스 상에 이중-쓰기 인터럽트를 제공하고, (ii) 이중-쓰기 버스 상에 생성된 이중-쓰기 인터럽트를 수신하며, (iii) 이중-쓰기 버스 상에서 수신된 이중-쓰기 인터럽트에 응답하여, 상기 디렉터 기억 장치에 저장된 데이터를 상기 두 시스템 기억 영역의 번지 지정가능한 동일한 위치에 저장하기 위하여 상기 한 쌍의 시스템 버스 상에 차례로 올려 놓는다.
본 발명의 또다른 특징에 따르면, 각 디렉터가 시스템에 공급된 리셋 조건에 응답하여 비-이중-쓰기 모드로 리셋되면, 시스템은 비-이중-쓰기 모드로 돌아간다. 비-이중-쓰기 모드로 돌아갈 때, 각 디렉터는 디렉터 기억 장치에 저장된 데이터 묶음을 한 쌍의 시스템 버스 중 선택된 하나에 올려 놓으며, 이는 한 쌍의 시스템 버스 중 선택된 하나와 연결된 시스템 기억 영역 중 하나에 저장된 데이터를 저장하기 위한 것이다.
본 발명의 다른 특징에 따르면, 각 디렉터는 디렉터와 한 쌍의 시스템 기억 영역 각각과의 데이터 전송 오류를 감지한다. 감지된 오류에 반응하여, 각 디렉터는 후속의 데이터 전송이 그 디렉터와 다른 시스템 기억 영역과의 사이에 이루어지도록 한다.
도 1a 및 1b는 본 발명에 따라 이중-쓰기 모드 또는 비-이중-쓰기 모드로 동작하는 데이터 기억 시스템을 나타낸 것이고,
도 2는 도 1a 및 1b에 도시한 시스템에 사용되는 기억 장치의 한 예를 도시한 블록도이고,
도 3은 도 1a 및 1b에 도시한 시스템에 사용되는 본 발명에 따른 후위 디렉터를 나타낸 블록도이고,
도 4는 도 1a 및 1b에 도시한 시스템에 사용되는 본 발명에 따른 전위 디렉터를 나타낸 블록도이고,
도 5는 도 3 및 도 4에 도시한 전위 및 후위 디렉터에 사용되는 본 발명에 따른 이중-쓰기 강제 하이/로 제어기를 도시한 블록도이고,
도 6은 도 1a 및 1b에 도시한 시스템을 이중-쓰기 모드에 두기 위한 것이며 도 3 및 도 4에 도시한 디렉터에 저장된 프로그램의 흐름도이고,
도 7은 도 1a 및 1b에 도시한 시스템을 이중-쓰기 모드에서 비-이중-쓰기 모 드로 리셋하기 위한 것이며 도 3 및 도 4에 도시한 디렉터에 저장된 프로그램의 흐름도이고,
도 8은 도 1a 및 1b에 도시한 시스템을 강제 하이/로 모드로 두기 위한 것이며 도 3 및 도 4에 도시한 디렉터에 저장된 프로그램의 흐름도이다,
도 1a 및 1b에는 호스트 컴퓨터(host computer)(12)가 시스템 인터페이스(system interface)(16)를 통하여 디스크 드라이브 뱅크(bank of disk drive)(14)와 연결되어 있는 데이터 기억 시스템(data storage system)(10)이 나타나 있다. 시스템 인터페이스(16)는 시스템, 또는 캐시 기억 장치(cache memory)(18)를 포함하며 캐시 기억 장치(18)는 상위 번지 기억 영역(high address memory section)(18H)과 하위 번지 기억 영역(low address memory section)(18L)을 포함한다. 호스트 컴퓨터(12)와 디스크 드라이브 뱅크(14) 사이에서 오가는 데이터가 시스템 기억 장치(18)를 통과할 때 이 데이터의 전송을 제어하기 위한 다수의 디렉터(director)(200-2015)가 마련되어 있다. 시스템(10)은 네 개의 시스템 버스, 즉 상부 상위 번지 메모리 버스(top high address memory bus)(TH), 상부 하위 번지 메모리 버스(top low address memory bus)(TL), 하부 상위 번지 메모리 버스(bottom high address memory bus)(BH) 및 하부 하위 번지 메모리 버스(bottom low address memory bus)(BL)를 포함하는 시스템 버스(17)를 가지고 있다. 이 시스템 버스들은 이 출원과 같은 날 출원되어 동일한 양수인에게 양도된 "데이터 기 억 시스템"이라는 명칭의 출원[발명자 : 대니얼 캐슬(Daniel Castle) 외]에 더욱 상세하게 기재되어 있으며 본 출원은 이 출원을 인용함으로써 그 내용을 본 출원의 내용에 포함한다. 더 상세하게 설명하자면, 상위 번지 시스템 버스(TH, BH)는 상위 번지 기억 영역(18H)과 전기적으로 연결되어 있으며, 하위 번지 시스템 버스(TL, BL)는 하위 번지 기억 영역(18L)에 전기적으로 연결되어 있다. 각 디렉터(200-2015)는 한 쌍의 시스템 버스와 연결되어 있는데, 한 버스는 상위 번지 버스이고 다른 버스는 하위 번지 버스이다. 그러므로 각 디렉터(200-2015)는 한 쌍의 시스템 기억 영역(18H, 18L)과 연결된다.
비-이중-쓰기(non-dual-write) 모드일 때, 시스템 기억 장치(18)의 상위 번지 기억 위치는 상위 번지 기억 영역(18H) 내이고, 하위 번지 기억 위치는 하위 번지 기억 영역(18L) 내이다. 각 디렉터(200-2015)는 한 쌍의 상위 번지 시스템 버스(TH, BH) 중 하나와 한 쌍의 하위 번지 시스템 버스(TL, BL) 중 하나에 전기적으로 연결되어 있는 점을 주목한다면, 각 디렉터(200-2015)가 전체 시스템 기억 장치(18)[즉, 상위 번지 기억 영역(18H)와 하위 번지 기억 영역(18L) 양자]의 모든 위치를 어드레싱(addressing)할 수 있고, 이에 따라 전체 시스템 기억 장치(18)의 어떤 기억 위치에도 데이터를 저장하고 검색할 수 있다는 것을 알 수 있다. 시스템 버스(BH, BL, TH, TL)는 데이터, 번지 및 기억 장치 제어[즉, 쓰기 가능(write enable), 읽기 가능(read enable)]을 기억 장치(18)에 공급한다. 시스템(10)은 또한 모든 디렉터에 연결되어 있는 이중-쓰기 제어 신호 버스(dual-write control signal bus)(DW)를 포함한다.
더 상세하게 설명하자면, 디렉터의 후위부(여기에서는 디렉터 200-203 및 2012-2015)는 각각 입출력 어댑터 카드(I/O adapter card)(220-223 및 2212-2215)를 통하여 디스크 드라이브 뱅크(14)에 전기적으로 연결되어 있고, 디렉터의 전위부(여기에서는 디렉터 204-2011)는 각각 입출력 어댑터 카드(224-2211)를 통하여 전기적으로 호스트 컴퓨터(12)에 연결되어 있다. 버스(TH, TL, BH, BL)의 끝은 한 쌍의 주종(master and slave) 아비터(arbiter)(도시하지 않음)로 종료한다는 사실을 염두에 두어야 하며, 이는 앞서 인용한 출원에 상세하게 기재되어 있다.
이제부터 더욱 상세하게 설명하자면, 시스템(10)은 다수의 모드로 동작하는데, 그 중 한 모드는 비-이중-쓰기 모드이고, 다른 하나는 이중-쓰기 모드이며, 또 하나는 강제 하이/로(forced HIGH/LOW) 모드이다. 먼저, 호스트 컴퓨터(12)와 디스크 드라이브 뱅크(14) 사이에서 오가는 데이터는 일련의 데이터 묶음(burst of data)의 형태로 전송된다는 점을 알아두어야 한다. 또한, 디렉터(200-2015)가 호스트 컴퓨터(12)와 디스크 드라이브 뱅크(14) 사이에서 오가는 데이터 묶음을 저장한다는 것을 알아야 한다. 비-이중-쓰기 모드에서는, 저장된 데이터 묶음을 저장하고 있는 디렉터가 자신과 연결된 두 시스템 버스 중 하나에 이 데이터를 전송하여 시스템 기억 장치(18)에 일시적으로 저장한다. 그러나, 이중-쓰기 모드에서는 디렉터에 저장된 데이터 묶음이 그 디렉터와 연결된 두 버스 모두에 차례로(sequentially) 전송된다. 디렉터는 두 버스에 각각 연결된 두 기억 영역(18H, 18L) 내의 동일한, 번지 지정가능한 위치에 데이터 묶음을 쓴다. 따라서 동일한 데이터 묶음에 대한 두 개의 복사본이 한 쌍의 기억 영역(18H, 18L) 내에 중복하여 저장된다.
더욱이, 각 디렉터(200-2015)는 디렉터와 기억 영역(18H, 18L) 사이의 데이터 전송 오류를 감지하도록 되어 있다. 디렉터와 한 쌍의 기억 영역(18H, 18L) 중 하나 사이에 오류를 감지하면, 각 디렉터는 디렉터와 한 쌍의 기억 영역 중 다른 하나 사이에 후속의 데이터 전송이 이루어지도록 되어 있다. 따라서, 버스(BL, TH)에 연결되어 있는 디렉터(204)를 고려하면, 이 디렉터가 그 안에 저장된 데이터 묶음을 시스템 버스(TH)를 통하여 기억 영역(18H)에 전송하고 있으며, 이렇게 전송하는 동안 기억 영역(18H) 또는 디렉터(204)에 있는 오류 감지 및 수정(Error Detection and Correction, EDAC) 또는 "타임-아웃(time-out)" 회로(도시하지 않음)가 오류를 감지하면, 이 디렉터(204)는 시스템(10)을 강제 하이/로 모드로 만든다. 더욱 상세하게는, 이 예에서 오류가 고쳐질 때까지 디렉터(204)는 모든 데이터 묶음을 이에 연결된 다른 기억 영역(즉 여기에서는 시스템 버스(BL)를 통하여 기억 영역(18L)]으로 전송하도록 강제한다.
이제 시스템(10)의 일반적인 동작을 고려하자. 호스트 컴퓨터(12)가 데이터를 저장하고자 할 때, 호스트 컴퓨터(12)는 전위 디렉터(204-2011) 중 하나에게 쓰기 요구(write request)를 하여 쓰기 명령(write command)을 수행하도록 한다. 전위 디렉터(204-2011) 중 하나는 쓰기 요구에 응답하여 호스트 컴퓨터(12)에게 데이터를 달라고 한다. 그 요구가 전위 디렉터(204-2011) 중 하나에게 전달되면 요구받은 디렉터는 데이터의 크기를 결정하고 그 요구를 저장할 공간을 시스템 기억 장치(18)에 마련한다. 그 다음에 전위 디렉터는 시스템 기억 장치(18) 내에서 데이터를 저장하기로 지정된 위치에 따라 자신과 연결된 상위 번지 메모리 시스템 버스(TH, BH) 또는 하위 번지 메모리 시스템 버스(TL, BL)를 중재하고 시스템 기억 장치(18)로의 전송을 가능하게 하는 제어 신호를 생성한다. 이어 호스트 컴퓨터(12)는 데이터를 데이터 묶음의 형태로 전위 디렉터에게 전송한다. 그러면 전위 디렉터는 호스트 컴퓨터(12)에게 전송이 종료되었음을 알려준다. 전위 디렉터는 시스템 기억 장치(18)에 저장된 테이블(도시하지 않음)을 찾아서 후위 디렉터(200-203, 2012-2015) 중 어느 것이 이 요구를 처리할 것인지를 결정한다. 이 테이블은 호스트 컴퓨터(12) 번지를 디스크 드라이브 뱅크(14)의 한 번지로 매핑(mapping)한다. 이어 전위 디렉터는 이 요구를 처리할 후위 디렉터의 "우편함(mail box)"[도시하지 않았지만 시스템 기억 장치(18)에 저장되어 있음]에 데이터 크기와 그 데이터의 디스크 번지 등을 정보를 담은 통지문을 넣어둔다. 다른 후위 디렉터들이 그들의 "우편함"을 검사하지 않고 있을 때 그들은 시스템 기억 장치(18)를 폴링(polling)하고 있는 것이다. 폴링된 "우편함"이 전송이 필요하다는 것을 나타내면, 그 후위 디렉터는 그 요구를 처리하고, 뱅크 내의 디스크 드라이브에 주소를 지정하고, 시스템 기억 장치(18)로부터 데이터를 읽어 들여 그 뱅크(14) 내의 한 디스크 드라이브의 번지들에 읽어 들인 데이터를 쓴다. 디스크 드라이브 뱅크(14)로부터 호스트 컴퓨터(12)로 데이터를 읽어 들일 때에는 이와 역방향으로 시스템(10)이 동작을 수행한다.
앞에서 간략하게 언급한 것처럼, 디렉터(200-2015)는 시스템(10)이 이중-쓰기 모드 상태에 있도록 이루어져 있다. 이러한 이중-쓰기 모드에서, 디렉터(200-2015)는 호스트 컴퓨터(12)와 디스크 드라이브 뱅크(14) 사이에서 전송될 데이터 묶음들을 저장한다. 그런 후, 디렉터에 저장된 각 데이터 묶음은 한 기억 주기(memory cycle) 동안 그 디렉터에 연결되어 있는 한 쌍의 시스템 버스 중 하나로 전송되며, 그 다음 기억 주기 동안에 동일한 데이터 묶음이 그 디렉터에 연결되어 있는 다른 시스템 버스로 다시 전송된다. 그러므로 저장된 동일한 데이터 묶음이 그 디렉터에 연결되어 있는 두 시스템 버스에 차례로 전송되는 것이다. 디렉터는 한 쌍의 시스템 버스 모두에 연결된 기억 영역(18H, 18L) 모두가 그 디렉터에 연결되어 있는 한 쌍의 시스템 버스 각각에 차례로 전송된 데이터 묶음을 번지 지정가능한 동일한 위치에 쓸 수 있도록 한다. 디렉터(204)를 예로 들면, 이중-쓰기 모드에서, 호스트 컴퓨터(12)로부터의 데이터 묶음이 그 디렉터(204)로 전달되어 그 디렉터(204) 내에 저장된다. 저장된 데이터 묶음은 예를 들어 하나의 시스템 기억 주기 동안 그 데이터 묶음이 저장될 기억 영역(18L)의 번지와 함께 시스템 버스(BL)로 전송된다. 다음 시스템 기억 주기 동안에는, 동일한 데이터 묶음이 기 억 영역(18H) 내에 있는 동일한 번지 지정가능한 저장 위치와 함께 시스템 버스(TH)로 전송된다. 따라서, 제2 기억 주기 동안에는 기억 영역(18H) 내에서 데이터 묶음이 기억 영역(18L) 내에 저장된 위치와 동일한 번지 지정가능한 위치에 동일한 데이터 묶음이 저장되는 것이다. 그러므로 한 쌍의 시스템 기억 주기를 마치고 나면, 하나의 데이터 묶음과 그 복사본이 두 개의 기억 영역(18H, 18L) 내의 번지 지정가능한 동일한 위치에 저장된다. 결국, 중복된 데이터 묶음이 시스템 기억 장치(18)에 저장되는 것이다.
기억 영역(18H, 18L) 중 하나[여기에서는 영역(18H)임]의 예를 도 2에 도시하였다. 기억 영역은 버스 인터페이스와 ASIC 제어 논리를 통하여 상부 및 하부 버스와 연결되어 있는 다수의(여기에서는 네 개) DRAM 영역을 포함하고 있다.
디렉터의 후위부(200-203, 2012-2015) 각각은 구조 상 서로 동일하며, 이에 대한 예로 후위 디렉터(200)를 도 3에 도시하였다. 도면에 나타난 바와 같이, 후위 디렉터(200)는 한 쌍의 중앙 처리부(CPU X, CPU Y), 데이터 묶음을 저장하기 위한 이중 포트(dual port) RAM(random access memory)부(CPU Y와 연결되어 있는 이중 포트 RAM Y 및 CPU X와 연결되어 있는 이중 포트 RAM X를 포함한다), 공유 자원(shared resources)(다른 기능도 있지만 무엇보다도 프로그램을 저장하기 위한 플래시 메모리. 이 프로그램의 일부는 도 6, 7, 8 등에 흐름도로 나타나 있다.), 한 쌍의 백플레인 인터페이스(22H, 22L), 한 쌍의 데이터 래치(data latch)(24H, 24L), 한 쌍의 번지 래치(address latch)(26H, 26L), 한 쌍의 입출력 백플레인 인 터페이스(281, 282) 및 이중-쓰기 강제 하이/로 제어부(30)(도 5를 참고하여 뒤에서 상세히 설명한다)를 포함한다. X 및 Y CPU는 입출력 백플레인 인터페이스(281, 282) 및 입출력 어댑터 카드(도 1a 및 1b의 도면부호 220)를 통하여 디스크 드라이브 뱅크(도 1a 및 1b의 도면부호 14)와 연결되어 있다. 여기에서 디렉터는 주(출력) 포트(P)와 종(출력) 포트(S)를 가지고 있다는 점을 알아야 한다. 앞서 인용하였으며 이 출원과 동시에 출원된 출원에 상세히 기재되어 있는 것처럼, 주 포트(P)는 두 개의 입출력 백플레인 인터페이스(281, 282) 모두와 연결되어 있고, 이와 마찬가지로 종 포트(S)도 두 개의 입출력 백플레인 인터페이스(281, 282) 모두와 연결되어 있다.
디렉터(200)의 이중 포트 RAM부는, (1) 데이터 래치(24H) 및 백플레인 인터페이스(22H)를 통하여 상위 주소 메모리 버스(여기서는 BH)와, (2) 데이터 래치(24L) 및 백플레인 인터페이스(22L)를 통하여 하위 주소 메모리 버스(여기서는 TL)와 연결되어 있다. 데이터, 즉 데이터 묶음은 이중-쓰기 강제 하이/로 제어부(30)이 라인(32H, 32L)을 통하여 각각 공급된 래치 신호에 응답하여 데이터 래치(24H, 24L)에 저장된다. 앞에서 언급한 것처럼, 이중-쓰기 강제 하이/로 제어부(30)에 대하여 도 5를 참고로 하여 상세히 설명한다. 그러나, 제어부(30)는, 첫째, 시스템(10)에 공급된 이중-쓰기 모드 명령에 응답하여 이중-쓰기 버스(DW)에 전역 이중-쓰기 인터럽트(global dual-write interrupt)(GLB_DW)를 제공하고, 둘 째, 다른 디렉터(201-2015)가 이중-쓰기 버스(DW)에 생성한 전역 이중-쓰기 인터럽트(GLB_DW)를 수신하며, 셋째, 이중-쓰기 버스(DW)에서 수신한 전역 이중-쓰기 인터럽트(GLB_DW)(이 디렉터 자신이 생성한 것일 수도 있고 다른 디렉터가 생성한 것일 수도 있다)에 응답하여 이중 포트 RAM의 번지 지정가능한 동일한 위치에 저장되어 있는 데이터 묶음을 그 디렉터와 연결되어 있는 시스템 버스(BH, TL) 모두에 올려 놓는다. 여기에서, 앞에서 기재한 것처럼, 이중 포트 RAM의 번지 지정가능한 동일한 위치에 저장되어 있는 데이터 묶음을 두 시스템 버스(BH, TL) 모두에 올려 놓는다. 시스템(10)이 이중-쓰기 모드 명령을 받지 못했다면, 즉, 시스템(10)이 비-이중-쓰기 모드라면, 제어부(30)는 이중 포트 RAM의 데이터 묶음이 두 시스템 버스 중 하나(여기에서는 BH 또는 TL) 위에 서로 다른 주소로 놓여지도록 동작하다는 점을 알아야 한다. 또한, 시스템(10)이 이중-쓰기 모드이고, 각 디렉터(200-2015)가 시스템(10)에 제공된 리셋(reset) 조건에 응답하여 비-이중-쓰기 모드로 리셋되면, 제어부(30)는 비-이중-쓰기 모드로 돌아가도록 되어 있다. 나아가, 앞에서 언급한 것처럼, 각 디렉터(200-2015)가 디렉터와 기억 영역(18H, 18L) 사이의 데이터 전송 오류를 감지하도록 되어 있다. 디렉터와 기억 영역(18H, 18L) 중 하나 사이에 오류를 감지하면, 각 디렉터는 디렉터와 다른 기억 영역 사이에 후속의 데이터 전송이 이루어지도록 되어 있다. 따라서, 버스(BL, TH)에 연결되어 있는 디렉터(204)를 고려하면, 이 디렉터가 그 안에 저장된 데이터 묶음을 버스(TH)를 통하여 기억 영역(18H)에 전송하고 있으며, 이렇게 전송하는 동안 기억 영역(18H) 또는 디렉터(204)에 있는 오류 감지 및 수정(EDAC) 또는 "타임-아웃(time-out)" 회로가 오류를 감지하면, 이 디렉터(204)는 시스템(10)을 강제 하이/로 모드로 만든다. 더욱 상세하게는, 이 예에서 오류가 고쳐질 때까지 디렉터(204)는 모든 데이터 묶음을 이에 연결된 다른 기억 영역(즉 여기에서는 시스템 버스(BL)를 통하여 기억 영역(18L)]으로 전송하도록 강제한다.
더욱 상세하게 설명하자면, 이중-쓰기 모드에서 제어부(30)가 라인(32H, 32L)에 래치 가능 신호(latch enable signal)를 생성한다. 즉, 한 기억 주기 동안 예를 들어 라인(32H)에 래치 가능 신호가 생성되고, 이 예에서 다음 기억 주기 동안 라인(32L)에 래치 가능 신호가 생성된다. 이러한 래치 가능 신호에 응답하여, 이 예에서, 이중 포트 RAM에 있는 데이터 묶음이 각각 데이터 래치(24H, 24L)로 차례로 저장된다. 또한, 이중-쓰기 모드에서 라인 (32H, 32L)의 래치 신호는 버스(34X)나 버스(34Y)의 공통 번지(common address)를 번지 래치(26H, 26L)로 래치시킨다. 래치(26H, 26L)로 래치된 번지는 그 데이터 묶음이 저장될 시스템 기억 장치(18) 상의 동일한 번지 위치를 제공한다. 이 예에서, 하나의 기억 주기 동안 라인(32H) 상의 래치 가능 신호는 이중 포트 RAM으로부터의 데이터 묶음을 데이터 래치(24H)로 래치하고, 이 래치된 데이터 묶음에 대한 번지는 번지 래치(26H)로 래치되며, 이 래치된 데이터 묶음과 그 번지는 백플레인 인터페이스(32H)를 통하여 상위 번지 메모리 시스템 버스(BH)로 전달된다는 점을 유의하여야 한다. 이와 마찬가지로, 이 예에서 다음 기억 주기 동안 라인(32L) 상의 래치 가능 신호는 이중 포트 RAM으로부터의 동일한 데이터 묶음을 데이터 래치(24L)로 래치하고, 이 데이터 묶음에 대한 번지는 번지 래치(26L)로 래치되며, 이 래치된 데이터 묶음과 그 번지는 백플레인 인터페이스(32L)를 통하여 하위 번지 메모리 시스템 버스(TL)로 전달된다. 그러므로 이중 포트 RAM으로부터 전송되어 시스템 기억 장치(18)에 기억될 데이터 묶음은 한 기억 주기 동안에, 예를 들면 데이터 래치(24H) 및 백플레인 인터페이스(22H)를 통하여 먼저 버스(BH)에 놓여지고, 다음 기억 주기 동안 데이터 래치(24L) 및 백플레인 인터페이스(22L)를 통하여 버스(TL)에 놓여지게 된다.
디렉터의 전위부(204-2011) 각각은 구조 상 서로 동일하며, 도 1a 및 1b을 참고하여 설명한 후위 디렉터와 본질적으로 동일하다. 이에 대한 예로 디렉터(204)를 도 4에 상세히 도시하였으며, 도 3에 도시한 부분과 동일한 부분에 대해서는 도 3에서 사용한 도면 부호와 동일한 도면 부호를 사용하였다. 도면에 나타난 바와 같이, 예시한 전위 디렉터(204)는 한 쌍의 중앙 처리부(CPU X, CPU Y), 이중 포트 RAM부(CPU Y와 연결되어 있는 이중 포트 RAM Y 및 CPU X와 연결되어 있는 이중 포트 RAM X를 포함한다), 공유 자원(플래시 메모리 등), 한 쌍의 백플레인 인터페이스(22H, 22L), 한 쌍의 데이터 래치(data latch)(24H, 24L), 한 쌍의 번지 래치(address latch)(26H, 26L), 한 쌍의 입출력 백플레인 인터페이스(281, 282) 및 이중-쓰기 강제 하이/로 제어부(30)(도 5를 참고하여 뒤에서 상세히 설명한다)를 포함한다. X 및 Y CPU는 입출력 백플레인 인터페이스(281, 282) 및 입출력 어댑터 카드(도 1a 및 1b의 도면부호 224)를 통하여 호스트 컴퓨터(도 1a 및 1b의 도면부호 12)와 연결되어 있다.
후위 디렉터와 마찬가지로, 이중 포트 RAM부는, (1) 데이터 래치(24H) 및 백플레인 인터페이스(22H)를 통하여 상위 주소 메모리 버스(여기서는 TH)와, (2) 데이터 래치(24L) 및 백플레인 인터페이스(22L)를 통하여 하위 주소 메모리 버스(여기서는 BL)와 연결되어 있다. 데이터, 즉 데이터 묶음은 이중-쓰기 강제 하이/로 제어부(30)가 라인(32H, 32L)을 통하여 각각 공급한 래치 신호에 응답하여 데이터 래치(24H, 24L)에 저장된다. 앞에서 언급한 것처럼, 제어부(30)는, 첫째, 시스템(10)에 공급한 이중-쓰기 모드 명령에 응답하여 이중-쓰기 버스(DW)에 전역 이중-쓰기 인터럽트(global dual-write interrupt)(GLB_DW)를 제공하고, 둘째, 다른 디렉터(201-2015)가 이중-쓰기 버스(DW)에 생성한 전역 이중-쓰기 인터럽트(GLB_DW)를 수신하며, 셋째, 이중-쓰기 버스(DW)에서 수신한 전역 이중-쓰기 인터럽트(GLB_DW)(이 디렉터 자신이 생성한 것일 수도 있고 다른 디렉터가 생성한 것일 수도 있다)에 응답하여 이중 포트 RAM의 번지 지정가능한 동일한 위치에 저장되어 있는 데이터 묶음을 그 디렉터와 연결되어 있는 시스템 버스 모두에 올려 놓는다. 여기에서, 앞에서 기재한 것처럼, 이중 포트 RAM의 번지 지정가능한 동일한 위치에 저장되어 있는 데이터 묶음을 두 시스템 버스(TH, BL) 모두에 올려 놓는다. 시스템(10)이 이중-쓰기 모드이고, 각 디렉터(200-2015)가 시스템(10)에 제공된 리셋(reset) 조건에 응답하여 비-이중-쓰기 모드로 리셋되면, 제어부(30)는 비-이 중-쓰기 모드로 돌아가도록 되어 있다. 나아가, 앞에서 언급한 것처럼, 각 디렉터(200-2015)가 디렉터와 기억 영역(18H, 18L) 사이의 데이터 전송 오류를 감지하도록 되어 있다. 디렉터와 기억 영역(18H, 18L) 중 하나 사이에 오류를 감지하면, 각 디렉터는 디렉터와 다른 기억 영역 사이에 후속의 데이터 전송이 이루어지도록 되어 있다.
이제 도 5를 참고로 하여, 이중-쓰기 강제 하이/로 제어부(30)에 대하여 상세히 설명한다. 제어부(30)는 한 쌍의 이중-쓰기 인터럽트 제어기(40X, 40Y)를 가지고 있으며, 이 제어기(40X, 40Y)는 이 제어부(30)를 가지고 있는 디렉터의 X CPU부 및 Y CPU부에 각각 연결되어 있다. 각 제어기(40X, 40Y)는 구조 상 서로 동일하며, 첫째, 시스템(도 1a 및 1b의 도면부호 10)에 공급된 이중-쓰기 모드 명령에 응답하여 각각 전역 이중-쓰기 인터럽트(global dual-write interrupt)(YGLB_DW, XGLB_DW)를 제공하고, 둘째, 제어부(30)를 포함하는 디렉터 또는 다른 디렉터가 이중-쓰기 버스(DW)에 생성한 전역 이중-쓰기 인터럽트(GLB_INT)를 수신한다. 여기에서 신호(XGLB_DW, YGLB_DW)는 2 비트 신호로서 OR 게이트(gate)(42)에 공급된다. OR 게이트(42)의 출력은 GTL 드라이버로 공급되는 이 비트 신호(GLB_DW_OUT)이다. GTL 드라이버의 출력은 전역 이중-쓰기 신호(GLB_DW)이고, 이중 쓰기 버스(DW)를 통하여 다른 디렉터, 그리고 한 쌍의 이중-쓰기 인터럽트 제어기(40X, 40Y)를 위하여 신호(DW_INT)를 생성하는 GTL 수신기를 통하여 GLB_DW를 생성하는 디렉터에게 공급된다.
이중-쓰기 강제 하이/로 제어부(30)은 또한 X 및 Y 인터럽트 제어기(40X, 40Y)와 각각 연결되어 있는 한 쌍의 번지 게이트 어레이(address gate array)(46X, 46Y)를 포함한다. 한 쌍의 번지 게이트 어레이(46X, 46Y)는 이중 포트 RAM에 저장되어 있는 데이터 묶음에 대한 시스템 기억 장치(18) 주소를 제공한다. 이중-쓰기 모드에서 각 데이터 묶음에 대한 공용 번지에 대해서는 앞에서 설명한 바 있다. 번지 게이트 어레이(46X, 46Y)의 출력은 논리부(50)로 공급된다. 논리부(50)는 라인(32H, 32L) 상에 래치 신호를 생성하고, DRAM부에 대한 X 및 Y DRAM 제어 신호(보기: 읽기/쓰기/번지)를 생성한다. 제어기(40X, 40Y)는 ...... 따라서 한 쌍의 번지 게이트 어레이(46X, 46Y)가 버스(34X, 34Y)에 공급한 번지들은, 앞에서 설명한 바와 같이, 도 3 및 도 4에 나타나 있는 번지 래치(26H, 26L)로 공급된다. 버스(34X, 34Y)의 번지들은 라인(32H, 32L)의 래치 신호에 따라 선택적으로 번지 래치(26H, 26L)로 래치된다.
더욱 상세하게 설명하자면, 이중-쓰기 모드에서, 앞서 설명한 바와 같이, 이중 포트 RAM부의 데이터 묶음이 데이터 래치(24H, 24L)로 차례로 배치된다. 이중-쓰기 모드에서 데이터 묶음이 데이터 래치(24H)로 래치되면, 예를 들어, 그 데이터의 번지는 번지 래치(26H)로 래치된다. 또한, 다음 시스템 기억 주기 동안 데이터가 래치(26L)로 래치되면, 이전 기억 주기에서 번지 래치(26H)로 래치된 것과 동일 한 번지가 번지 래치(26L)로 래치된다. 비-이중-쓰기 모드 동안에는, 번지 래치(26H, 26L)로 래치된 번지가 연속하는 두 기억 주기 동안 서로 독립적이다.
도 6에는 디렉터(200-2015)에 저장된 프로그램의 흐름도가 나타나 있다. 이러한 프로그램은 시스템(도 1a 및 1b의 도면 부호 10)을 이중-쓰기 모드에 두는 데 이용된다. 그러므로, 전원 공급 상태(power-up)에서 시스템(10)을 검사하여(600) 상위 번지 기억 영역(18H)과 하위 번지 기억 영역(18L) 사이의 시스템 기억 장치(18) 용량이 균형을 이루는지(즉, 기억 영역이 기억 용량 균형을 이루는지)를 판별한다(602). 불균형을 감지하면 사용자는 시스템(10)의 전원을 차단하고(604), 용량이 부족한 기억 영역(18H, 18L)의 기억 용량에 부가적인 기억 용량을 더해준다.
시스템 기억 장치(18)가 균형을 이루고 있는 것으로 감지하면, 사용자가 원하는 경우 이중-쓰기 모드 동작을 선택한다. 이 모드는 사용자가 시스템 기억 장치(18)에 데이터를 중복해서 두기를 바랄 때, 즉 동일한 데이터 묶음을 두 기억 영역(18L, 18H)에 모두 저장하기를 바랄 때 선택한다. 그러므로 두 기억 영역(18L, 18H) 중 하나가 오동작을 하고 호스트 컴퓨터(도 1의 도면 부호 12) 또는 디스크 드라이브 뱅크(도 1의 도면 부호 14)와 그 기억 영역 사이의 데이터 전송이 원활하지 않을 경우, 동일한 전송 데이터 묶음을 다른 기억 영역(18H, 18L)에서 얻을 수 있다. 시스템이 이중-쓰기 모드에서 적절하게 동작하려면, 각 디렉터(200-2015)가 시스템(10)이 이중-쓰기 모드에 있다는 것을 알아야 한다. 여기에서, 사용자가 시 스템을 이중-쓰기 모드에 두고 있다는 것을 디렉터(200-2015) 중 어느 하나가 감지하면, 그 디렉터의 X 및 Y CPU 모두에 신호가 전송된다(606). 이 신호에 웅답하여, 첫 번째 후속 시스템 클록 펄스(system clock pulse)에서, X 및 Y 인터럽트 제어부(40X, 40Y)가 상태 머신 레지스터(state machine register)(도시하지 않음)의 두 비트 중 한 하나를 초기, 리셋, 논리 0 상태에서 논리 1의 상태로 변화시킨다. 이러한 인터럽트가 다음 시스템 클록 펄스에서도 존재하면, X 및 Y 인터럽트 제어부(40X, 40Y)의 상태 머신 레지스터는 두 번째 비트를 초기 논리 0 상태에서 논리 1 상태로 바꾼다. 따라서, 두 개의 시스템 클록 펄스 이후에 이중-쓰기 요구가 존재할 때에만 X 및 Y 인터럽트 제어부(40X, 40Y) 양자의 상태 머신 레지스터가 두 버스(XGLB_DW*, YGLB_DW*)에 각각 이진 00 논리 조건을 생성한다. [이 논리는 도 5에서 애스터리스크(*)로 나타낸 "활동(active)" 로(low) 논리라는 점을 주목해야 한다.] 이 논리 00 조건이 버스(XGLB_DW*, YGLB_DW*)에 생성될 때에만, OR 게이트(42)가 버스(GLB_DW*)에 논리 00 조건을 생성하고(608, 610, 612) 이에 따라 "활동 로" 논리 상태에 이를 것이다(606). 버스(GLB_DW*) 상의 논리 00 상태가 전역 이중-쓰기 신호(GLB_DW*)로서 GTL 드라이버를 통하여 이중-쓰기 버스(도 5의 도면 부호 DW)에 공급되고, 도 5에 도시한 바와 같이 GTL 수신기를 통하여 X 및 Y 인 터럽트 제어부(40X, 40Y)에 되먹여진다. GLB_DW* 신호는 이 디렉터 또는 다른 모든 디렉터에게 이중-쓰기 모드가 요구되었음을 알려준다. 즉 GLB_DW* 신호가 이중-쓰기 버스(DW) 위에 설정된다(asserted).(도 6의 614). 앞에서 살펴본 것처럼, 이중-쓰기의 GLB_DW*, 11 논리 신호는 디렉터(200-2015) 중 인터럽트를 생성하고 있는 것과 다른 모든 디렉터(200-2015)에 공급된다. 각 디렉터(200-2015 )는 X 및 Y 인터럽트 제어부(40X, 40Y)에 있는 상태 머신 레지스터가 논리 00 조건에 있는지를 판별한다. 인터럽트를 발하고 있는 디렉터(200-2015) 중 하나가 00 논리 조건에 있는 상태 머신 레지스터를 가지는 반면, 이를 발하고 있는 디렉터(200-2015) 중 다른 하나는 그 상태 머신이 논리 00 조건에 놓이기 위해서는 두 개의 시스템 클록 펄스를 기다려야 한다. 모든 디렉터(200-2015)가, 소프트웨어 상태(software status)(615)로 나타낸 바와 같이 이중-쓰기 모드에 있으면, 인터럽트 제어부(40X, 40Y)가 전역 이중-쓰기 모드 신호 지시를 번지 게이트 어레이 제어기(도 5의 도면 부호 46X, 46Y)에 보낸다(616).
도 7에는 디렉터(200-2015)에 저장된 프로그램의 흐름도가 나타나 있으며, 이 프로그램은 이중-쓰기 모드에 있는 시스템(도 1a 및 1b의 도면 부호 10)을 비-이중-쓰기 모드로 리셋하는 데 사용된다. 이중-쓰기 모드에서 리셋[즉 불능(disable)]하라는 사용자 명령에 응답하여, 소프트웨어는 "턴 오프(turn off)" 전역 이중-쓰기 루틴으로 들어간다(700). 인터럽트가 한 쌍의 Y 및 X 인터럽트 제어부(도 5의 도면 부호 40Y, 40X)로 공급된다(702). 두 시스템 클록 펄스가 지난 후에 인터럽트가 적절하면(704) 이중-쓰기 버스(DW)의 GLB_DW* 신호가 해제(de-assert)된다(706). 이중-쓰기 제어부(30)가 이중-쓰기 버스(DW) 위에 연결 논리합되기 때문에, 모든 디렉터(200-2015)가 리셋 상태가 되기 전에 모든 제어기(200 -2015)가 GLB_DW* 신호가 낮은, 즉 해제된(de-asserted) 논리 상태에 있는 이중-쓰기 버스(DW)로 공급되게 할 필요가 있다. 다시 말하면, 이중-쓰기 모드가 불능이 되고 시스템(10)은 708 단계에서처럼 비-이중-쓰기 모드가 된다. 이중-쓰기 버스(DW)로부터의 해제(de-assert) 신호에 응답하여[즉, 모든 디렉터(200-2015)가 이중-쓰기 버스(DW)에 이중-쓰기 해제(de-assert) 신호를 생성하면], X 및 Y 인터럽트 제어부(40X, 40Y)는 시스템(10)이 이제 비-이중-쓰기 모드에 있음으로 번지 게이트 어레이 제어기(46X, 46Y)에게 알려준다.
도 8에는 디렉터(200-2015)에 저장된 프로그램이 도시되어 있으며, 이 프로그램은 시스템(도 1a 및 1b의 도면 부호 10)을 강제 하이/로 모드로 놓는 데 사용된다. 시스템(10)이 이중-쓰기 모드에서 정상적으로 동작한다고 가정하자(800). 제어기는 보고 받은 오류의 개수, 또는 "타임-아웃" 오류를 측정한다. 주어진 개수 보다 많은 수의 오류 또는 "타임-아웃"을 보고한 디렉터(200-2015)가 없다면, 시스템은 계속하여 이중-쓰기 모드에서 동작한다(804, 806). 그러나, 디렉터(200-2015) 중 어느 하나가주어진 개수보다 많은 오류 또는 "타임-아웃"을 보고하고 있다면, 그 디렉터는 시스템(10) 동작의 강제 하이/로 모드를 시작한다(806). 도 6 (단계 806) 및 도 7 (단계 702)을 참고하여 앞에서 설명한 바와 같이, X 및 Y 인터럽트 제어부(40X, 40Y) 양자의 상태 머신 레지스터는 이진 11 논리 조건을, (a) 버스 XGLB_FOR-HI*와 XGLB_FOR-HI* 중 하나, 또는 (b) XGLB_FOR-LO*와 XGLB_FOR-LO * 중 하나 에 생성한다(810). 이는 오류가 상위 번지 메모리 버스로 전송할 때 나타나는 것인지 아니면 하위 번지 메모리 버스로 전송할 때 나타나는 것인지에 따라 달라진다(810). (여기에서 논리는 도 5에서 애스터리스크(*)로 나타낸 "활동" 로 논리라는 점을 알아두어야 한다.) 버스(XGLB_FOR-HI*, XGLB_FOR-HI*) 상의 신호는 NAND 게이트(60HI)에 공급되고, 버스(XGLB_FOR-LO*, XGLB_FOR-LO*) 위의 신호는 NAND 게이트(60LO)로 공급된다. 두 버스(XGLB_FOR-HI*, XGLB_FOR-HI*) 중 한 버스 상의 논리 신호가 강제 HI 버스 조건을 나타내면[즉, 하위 번지 기억 영역(18L)에 과다한 오류나 타임-아웃이 있으면], ("활동" 로 논리에서) 이 신호를 보내는 디렉터와 다른 디렉터(200-2015)에 대하여 XGLB_FOR-HI* 신호가 생성된다. 이와 마찬가지로 두 버스(XGLB_FOR-LO*, XGLB_FOR-LO*) 중 한 버스 상의 논리 신호가 강제 LO 버스 조건을 나타내면[즉, 상위 번지 기억 영역(18H)에 과다한 오류나 타임-아웃이 있으면], ("활동" 로 논리에서) 이 신호를 보내는 디렉터와 다른 디렉터(200-2015)에 대하여 XGLB_FOR-HI* 신호가 생성된다(812). NAND 게이트(60HI, 60LO)는 이중-TM기 버스(DW)에 대하여 연결 논리합되어 있다는 점을 주의하여야 하며, 또한 NAND 게이트(60HI, 60LO)의 출력은 사용자 활동 신호(user collector signal)(DIS_IF*)에 의하여 불능이 될 수 있으며, 이 신호(DIS_IF*)가 공급되어 컬렉터 드라이버(61HI, 61LO)를 개방한다는 점을 유의하여야 한다. 따라서 디렉터(200-2015) 중 어느 하나가 강제 하이/로 인터럽트(즉, 도 5에서 GLB_FOR-LO* 또는 XGLB_FOR-HI* 신호)를 ASSERT하면 인터럽트가 생성된다(814). 디렉터(200-2015)가 이제 강제 하이/로 모드(즉, 이중-쓰기 모드가 불능)이고 강제 하이 및/또는 강제 로 조건이 선택되었음을 X 및 Y 인터럽트 제어부(40X, 40Y)가 번지 게이트 어레이 제어기(46X, 46Y)에게 알려준다. 번지 게이트 어레이 제어기(46X, 46Y)는 그러면 Y_TB_MEM* 및 X_TB_MEM* 버스에 각각 신호를 제공하여, 논리(50)가 라인(32H, 32L)에 래치 신호를 생성하도록 한다. 이때, 전자는 강제 하이 조건[즉, 하위 번지 기억 영역(18L)에 과다한 오류 또는 타임-아웃이 있음]에서 생성되고, 후자는 강제 로 조건[즉, 상위 번지 기억 영역(18H)에 과다한 오류 또는 타임-아웃이 있음]에서 생성된다(816).
첨부한 청구범위의 취지와 범위 내에 있는 여러 가지 다른 실시예가 가능하다.

Claims (9)

  1. 호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있는 데이터 기억 시스템으로서,
    상기 인터페이스는, 한 쌍의 시스템 기억 영역을 포함하는 시스템 기억 장치, 상기 한 쌍의 시스템 기억 영역에 연결되어 있는 시스템 버스, 및 상기 시스템 버스를 통해 상기 시스템 기억 장치에 연결되어 있는 복수의 디렉터를 포함하고,
    각각의 상기 시스템 기억 영역은, 상기 시스템 기억 영역에 기록되는 데이터를 번지 지정가능한 위치에 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있으며,
    상기 디렉터는, 상기 데이터가 상기 시스템 기억 장치를 통과할 때 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간의 데이터 전송을 제어하도록 구성되고,
    또한, 상기 디렉터는, 상기 데이터 기억 시스템을 이중-쓰기 모드에 있도록 하고, 상기 이중-쓰기 모드에서 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간에 전송될 데이터를 저장하며, 상기 저장된 데이터를 상기 시스템 버스로 차례로 전송하며, 상기 시스템 버스에 연결된 상기 한 쌍의 시스템 기억 영역을 활성화하여 상기 한 쌍의 시스템 기억 영역이 상기 시스템 버스에 차례로 전송된 데이터를 상기 번지 지정가능한 동일한 위치에 기록하도록 하는 것을 특징으로 하는 데이터 기억 시스템.
  2. 호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있는 데이터 기억 시스템으로서,
    상기 인터페이스는,
    한 쌍의 시스템 기억 영역을 포함하고, 각각의 상기 시스템 기억 영역은 상기 시스템 기억 영역에 기록되는 데이터를 번지 지정가능한 위치에 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있는, 시스템 기억 장치,
    상기 한 쌍의 시스템 기억 영역 중 대응하는 시스템 기억 영역과 각각 연결되어 있는 한 쌍의 시스템 버스,
    상기 시스템 버스를 통하여 상기 시스템 기억 장치와 연결되어 있으며, 데이터가 상기 시스템 기억 장치를 통과할 때 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간의 데이터 전송을 제어하는 다수의 디렉터
    를 포함하며,
    상기 디렉터는, 상기 데이터 기억 시스템을 이중-쓰기 모드에 있도록 하고, 상기 이중-쓰기 모드에서 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간에 전송될 데이터를 저장하며, 상기 저장된 데이터를 상기 한 쌍의 시스템 버스로 차례로 전송하며, 상기 시스템 버스에 연결된 상기 한 쌍의 시스템 기억 영역을 활성화하여 상기 한 쌍의 시스템 기억 영역이 상기 한 쌍의 시스템 버스에 차례로 전송된 데이터를 상기 번지 지정가능한 동일한 위치에 기록하여 상기 한 쌍의 시스템 기억 영역에 저장하도록 하는 것을 특징으로 하는 데이터 기억 시스템.
  3. 제2항에 있어서,
    상기 다수의 디렉터와 연결되어 있는 이중-쓰기 모드 버스를 더 포함하며,
    상기 각 디렉터는,
    상기 호스트 컴퓨터로부터 공급된 데이터를 저장하는 디렉터 기억 장치, 및
    상기 데이터 기억 시스템에 공급된 이중-쓰기 모드 명령에 응답하여 상기 이중-쓰기 버스 상에 이중-쓰기 인터럽트를 제공하고, 상기 이중-쓰기 버스 상에 생성된 이중-쓰기 인터럽트를 수신하며, 상기 이중-쓰기 버스 상에서 수신된 이중-쓰기 인터럽트에 응답하여, 상기 디렉터 기억 장치에 저장된 데이터를 상기 한 쌍의 시스템 기억 영역의 번지 지정가능한 동일한 위치에 저장하기 위하여 상기 한 쌍의 시스템 버스 상에 차례로 올려놓도록 구성된 이중-쓰기 제어기
    를 포함하는 것을 특징으로 하는 데이터 기억 시스템.
  4. 제2항에 있어서,
    상기 다수의 디렉터와 연결되어 있는 이중-쓰기 모드 버스를 더 포함하며,
    상기 각 디렉터는,
    상기 호스트 컴퓨터로부터 공급된 데이터를 저장하는 디렉터 기억 장치, 및
    상기 시스템에 공급된 이중-쓰기 모드 명령에 응답하여 상기 이중-쓰기 버스 상에 이중-쓰기 인터럽트를 제공하고, 상기 이중-쓰기 버스 상에 생성된 이중-쓰기 인터럽트를 수신하고, 상기 이중-쓰기 버스 상에서 수신된 이중-쓰기 인터럽트에 응답하여, 상기 디렉터 기억 장치에 저장된 데이터를 상기 한 쌍의 시스템 기억 영역의 번지 지정가능한 동일한 위치에 저장하기 위하여 상기 한 쌍의 시스템 버스 상에 차례로 올려놓고, 상기 각 디렉터가 시스템에 제공된 리셋 조건에 응답하여 비-이중-쓰기 조건으로 리셋될 때 비-이중-쓰기 모드로 돌아가고, 상기 비-이중-쓰기 조건에서 상기 한 쌍의 시스템 버스 중 선택된 하나와 연결되어 있는 상기 시스템 기억 영역에 상기 디렉터 기억 장치에 저장된 데이터를 저장하기 위하여 상기 저장 데이터를 상기 선택된 시스템 버스에 올려놓도록 구성된 이중-쓰기 제어기
    를 포함하는 것을 특징으로 하는 데이터 기억 시스템.
  5. 제3항에 있어서,
    상기 각 디렉터는, 상기 디렉터와 상기 각 시스템 기억 영역 사이의 데이터 전송 오류를 감지하고, 상기 디렉터와 상기 한 쌍의 시스템 기억 영역 중 하나의 사이에서 감지된 오류에 응답하여, 후속 데이터 전송이 상기 디렉터와 상기 한 쌍의 시스템 기억 영역 중 다른 하나의 사이에 이루어지도록 강제하는 것을 특징으로 하는 데이터 기억 시스템.
  6. 호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있는 데이터 기억 시스템으로서,
    상기 인터페이스는,
    한 쌍의 시스템 기억 영역을 포함하고, 상기 각 시스템 기억 영역은 상기 시스템 기억 영역에 기록되는 데이터를 번지 지정가능한 위치에 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있는, 시스템 기억 장치,
    상기 한 쌍의 시스템 기억 영역 중 대응하는 시스템 기억 영역과 각각 연결되어 있는 한 쌍의 시스템 버스,
    상기 시스템 버스를 통하여 상기 시스템 기억 장치와 연결되어 있으며, 데이터가 상기 시스템 기억 장치를 통과할 때, 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간의 데이터 전송을 제어하는 다수의 디렉터
    를 포함하며,
    상기 디렉터는, 상기 시스템을 강제 시스템 기억 모드에 있도록 할 수 있으며, 상기 강제 시스템 기억 모드에서 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 사이에 전송될 데이터를 저장하고, 상기 저장된 데이터를 상기 한 쌍의 시스템 버스 중 하나로만 전송하는 것을 특징으로 하는 데이터 기억 시스템.
  7. 제6항에 있어서,
    상기 다수의 디렉터와 연결되어 있는 이중-쓰기 모드 버스를 더 포함하며,
    상기 각 디렉터는,
    상기 호스트 컴퓨터로부터 공급된 데이터를 저장하는 디렉터 기억 장치, 및
    상기 데이터 기억 시스템에 공급된 이중-쓰기 모드 명령에 응답하여 상기 이중-쓰기 버스 상에 이중-쓰기 인터럽트를 제공하고, 상기 이중-쓰기 버스 상에 생성된 이중-쓰기 인터럽트를 수신하며, 상기 이중-쓰기 버스 상에서 수신된 이중-쓰기 인터럽트에 응답하여, 상기 디렉터 기억 장치에 저장된 데이터를 상기 한 쌍의 시스템 기억 영역의 번지 지정가능한 동일한 위치에 저장하기 위하여 상기 한 쌍의 시스템 버스 상에 차례로 올려놓도록 구성된 이중-쓰기 제어기
    를 포함하는 것을 특징으로 하는 데이터 기억 시스템.
  8. 제6항에 있어서,
    상기 다수의 디렉터와 연결되어 있는 이중-쓰기 모드 버스를 더 포함하며,
    상기 각 디렉터는,
    상기 호스트 컴퓨터로부터 공급된 데이터를 저장하는 디렉터 기억 장치, 및
    상기 데이터 기억 시스템에 공급된 이중-쓰기 모드 명령에 응답하여 상기 이중-쓰기 버스 상에 이중-쓰기 인터럽트를 제공하고, 상기 이중-쓰기 버스 상에 생성된 이중-쓰기 인터럽트를 수신하며, 상기 이중-쓰기 버스 상에서 수신된 이중-쓰기 인터럽트에 응답하여, 상기 디렉터 기억 장치에 저장된 데이터를 상기 한 쌍의 시스템 기억 영역의 번지 지정가능한 동일한 위치에 저장하기 위하여 상기 한 쌍의 시스템 버스 상에 차례로 올려놓도록 구성된 이중-쓰기 제어기
    를 포함하는 것을 특징으로 하는 데이터 기억 시스템.
  9. 호스트 컴퓨터가 인터페이스를 통하여 디스크 드라이브 뱅크와 연결되어 있는 데이터 기억 시스템으로서,
    상기 인터페이스는,
    한 쌍의 시스템 기억 영역을 포함하고, 상기 각 시스템 기억 영역은 상기 시스템 기억 영역에 기록될 데이터를 번지 지정가능한 위치에 저장하기 위한 다수의 번지 지정가능한 위치를 가지고 있는, 시스템 기억 장치,
    상기 시스템 기억 영역에 연결되어 있는 시스템 버스, 및
    상기 시스템 버스를 통하여 상기 시스템 기억 장치에 연결되어 있으며, 데이터가 상기 시스템 기억 장치를 통과할 때 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 간의 데이터 전송을 제어하는 다수의 디렉터
    를 포함하며,
    상기 디렉터는, 상기 시스템을 이중-쓰기 모드에 있도록 할 수 있으며, 상기 이중-쓰기 모드에서 상기 디렉터는 상기 호스트 컴퓨터와 상기 디스크 드라이브 뱅크 사이에 전송될 데이터 묶음을 저장하며, 상기 디렉터에 저장된 상기 각 데이터 묶음은 한 기억 주기 동안 상기 디렉터와 연결되어 있는 상기 한 쌍의 시스템 버스 중 하나로 전송되고, 다음 기억 주기 동안에는 상기 동일한 데이터 묶음이 상기 디렉터와 연결되어 있는 상기 한 쌍의 시스템 버스 중 다른 하나로 전송되어, 상기 한 쌍의 시스템 기억 영역의 번지 지정가능한 동일한 위치에 상기 시스템 버스에 차례로 전송된 상기 저장된 데이터 묶음이 저장될 수 있도록 하는 것을 특징으로 하는 데이터 기억 시스템.
KR1020007009616A 1998-12-30 1999-12-29 데이터 기억 시스템 Expired - Lifetime KR100560552B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/223,417 1998-12-30
US9/223,417 1998-12-30
US09/223,417 US6493795B1 (en) 1998-12-30 1998-12-30 Data storage system

Publications (2)

Publication Number Publication Date
KR20010041461A KR20010041461A (ko) 2001-05-25
KR100560552B1 true KR100560552B1 (ko) 2006-03-15

Family

ID=22836406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007009616A Expired - Lifetime KR100560552B1 (ko) 1998-12-30 1999-12-29 데이터 기억 시스템

Country Status (6)

Country Link
US (1) US6493795B1 (ko)
EP (1) EP1058888B1 (ko)
JP (2) JP3742753B2 (ko)
KR (1) KR100560552B1 (ko)
DE (1) DE69930307T2 (ko)
WO (1) WO2000039690A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6543029B1 (en) 1999-09-29 2003-04-01 Emc Corporation Error corrector
US6519739B1 (en) 1999-09-29 2003-02-11 Emc Corporation Fault detector
US6915394B1 (en) 1999-09-29 2005-07-05 Emc Corporation Microprocessor interface
US6836818B1 (en) 1999-09-29 2004-12-28 Emc Corporation Central processing unit
US6581137B1 (en) * 1999-09-29 2003-06-17 Emc Corporation Data storage system
US6735655B1 (en) 1999-09-29 2004-05-11 Emc Corporation Interrupt request controller
US6779130B2 (en) 2001-09-13 2004-08-17 International Business Machines Corporation Method and system for root filesystem replication
US7062591B2 (en) * 2001-09-28 2006-06-13 Dot Hill Systems Corp. Controller data sharing using a modular DMA architecture
US7315911B2 (en) * 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US7143227B2 (en) * 2003-02-18 2006-11-28 Dot Hill Systems Corporation Broadcast bridge apparatus for transferring data to redundant memory subsystems in a storage controller
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US7340555B2 (en) * 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
WO2003043254A2 (en) * 2001-11-09 2003-05-22 Chaparral Network Storage, Inc. Transferring data using direct memory access
US20030217211A1 (en) 2002-05-14 2003-11-20 Rust Robert A. Controller communications over an always-on controller interconnect
US7583732B2 (en) * 2002-12-06 2009-09-01 Broadcom Corporation Managing bursts of data
US20060002482A1 (en) * 2004-06-30 2006-01-05 Clinton Walker Signal drive de-emphasis for memory bus
US7543096B2 (en) * 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
US7536508B2 (en) * 2006-06-30 2009-05-19 Dot Hill Systems Corporation System and method for sharing SATA drives in active-active RAID controller system
US7681089B2 (en) * 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability
US8365023B2 (en) 2011-04-29 2013-01-29 International Business Machines Corporation Runtime dynamic performance skew elimination

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
EP0128945B1 (en) * 1982-12-09 1991-01-30 Sequoia Systems, Inc. Memory backup system
US5457786A (en) * 1990-07-03 1995-10-10 Texas Instruments Incorporated Serial data interface with circular buffer
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
DE69506404T2 (de) * 1994-06-10 1999-05-27 Texas Micro Inc., Houston, Tex. Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem
JPH08263225A (ja) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp データストレージシステム及びストレージ管理方法
US5787265A (en) 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5682509A (en) * 1995-12-13 1997-10-28 Ast Research, Inc. Bus interface to a RAID architecture
US5991852A (en) * 1996-10-28 1999-11-23 Mti Technology Corporation Cache ram using a secondary controller and switching circuit and improved chassis arrangement
US5953745A (en) * 1996-11-27 1999-09-14 International Business Machines Corporation Redundant memory array
US5895485A (en) * 1997-02-24 1999-04-20 Eccs, Inc. Method and device using a redundant cache for preventing the loss of dirty data
US5935258A (en) * 1997-03-04 1999-08-10 Micron Electronics, Inc. Apparatus for allowing data transfers with a memory having defective storage locations

Also Published As

Publication number Publication date
JP3742753B2 (ja) 2006-02-08
WO2000039690A9 (en) 2001-09-07
KR20010041461A (ko) 2001-05-25
EP1058888A1 (en) 2000-12-13
WO2000039690A1 (en) 2000-07-06
JP2006024230A (ja) 2006-01-26
DE69930307T2 (de) 2006-11-30
DE69930307D1 (de) 2006-05-04
EP1058888B1 (en) 2006-03-08
JP2002533834A (ja) 2002-10-08
US6493795B1 (en) 2002-12-10

Similar Documents

Publication Publication Date Title
KR100560552B1 (ko) 데이터 기억 시스템
US5961660A (en) Method and apparatus for optimizing ECC memory performance
US7055054B2 (en) Fail-over of multiple memory blocks in multiple memory modules in computer system
US6061750A (en) Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure
KR100585414B1 (ko) 데이터 저장 시스템
US6543029B1 (en) Error corrector
US5289589A (en) Automated storage library having redundant SCSI bus system
US6578128B1 (en) Address management for a shared memory region on a multi-processor controller board
JPH06180623A (ja) ディスクアレイ制御装置用多重構成データパス構造
TW200414219A (en) System and method for self-testing and repair of memory modules
US6581137B1 (en) Data storage system
US5991852A (en) Cache ram using a secondary controller and switching circuit and improved chassis arrangement
US6347365B1 (en) Data storage system having a[n] memory responsive to clock pulses produced on a bus and clock pulses produced by an internal clock
US6397281B1 (en) Bus arbitration system
US6519739B1 (en) Fault detector
US4041460A (en) Multi-processor data processing system peripheral equipment access units
US6735655B1 (en) Interrupt request controller
US6836818B1 (en) Central processing unit
US6502149B2 (en) Plural bus data storage system
US6249878B1 (en) Data storage system
US6418511B1 (en) Large capacity data storage systems using redundant buses
US6643722B1 (en) Data storage system having director boards with plural processors
US6738842B1 (en) System having plural processors and a uni-cast/broadcast communication arrangement
US6915394B1 (en) Microprocessor interface
US6567903B1 (en) Data storage system having master/slave addressable memories

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20000830

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20030812

Comment text: Request for Examination of Application

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

Comment text: Notification of reason for refusal

Patent event date: 20050721

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060124

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20060307

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20060308

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090305

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20100304

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20110224

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20120227

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20130225

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20130225

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20140225

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20140225

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20150226

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20160224

Start annual number: 11

End annual number: 11

PC1801 Expiration of term

Termination date: 20200629

Termination category: Expiration of duration