KR100306344B1 - 이중-메모리 동기화 장치 - Google Patents

이중-메모리 동기화 장치 Download PDF

Info

Publication number
KR100306344B1
KR100306344B1 KR1019920013413A KR920013413A KR100306344B1 KR 100306344 B1 KR100306344 B1 KR 100306344B1 KR 1019920013413 A KR1019920013413 A KR 1019920013413A KR 920013413 A KR920013413 A KR 920013413A KR 100306344 B1 KR100306344 B1 KR 100306344B1
Authority
KR
South Korea
Prior art keywords
memory
monitoring
queue
contents
memories
Prior art date
Application number
KR1019920013413A
Other languages
English (en)
Other versions
KR930004881A (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 KR930004881A publication Critical patent/KR930004881A/ko
Application granted granted Critical
Publication of KR100306344B1 publication Critical patent/KR100306344B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Hardware Redundancy (AREA)
  • Dram (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)

Abstract

버퍼-메모리 공유 ATM 스위치 모듈은 (1) 복제쌍으로 존재하고 (2) 활성-대기 모드로 동작하여 대오류 내구성을 갖추게 된다. 모듈이 오류를 발생하여 보수되고 난뒤, 두 모듈의 버퍼 메모리 내용은 재동기화된다. 동기화를 개시하는 시기에, 보수된 대기 모듈의 메모리 내용은 클리어(clear)되고 활성 모듈의 메모리에 대한 모든 기록은 대기 모듈의 메모리에 대해 수행되고 동기화가 개시된 시기에 존재하던 활성 모듈의 메모리 내용의 복제 과정에 대한 추적이 시작된다. 이것은, 카운트가 영이되어 상응하는 버퍼-메모리 열(100)이 비어 있음을 지시하는 모든 활성 모듈 열-길이 카운터(200)에 대한 열-길이 카운터 모니터(60)의 플래그(64)를 세트하는(제4도) 함수에 의해 수행된다. 모든 모니터 플래그가, 카운터 영에 도달한 각 열-길이 카운터에 반응하여 세트되면, 이것은 활성 모듈 메모리의 원래 내용이 복제되어, 두 메모리는 다시 동일한 내용을 갖게되었음을 뜻하고, 결국, 두 메모리의 재동기화가 달성되어 시스템의 대오류 내구성이 회복되었음을 뜻한다.

Description

이중-메모리 동기화 장치
제1도는 본 발명의 실시예를 포함하는 통신 스위칭 장치를 도시하는 블록도.
제2도는 제1도의 장치의 관리 업무 프로세서의 초기화를 도시하는 흐름도.
제3도는 제1도의 장치의 관리 업무 프로세서의 스위치 모듈 오류-처리기능을 도시하는 흐름도.
제4도는 제1도의 장치의 관리 업무 프로세서의 스위치 모듈 재초기화 과정을 도시하는 흐름도.
* 도면의 주요부분에 대한 부호의 설명
21 : 디멀티플렉서/디스트리뷰터 22 : 멀티플렉서
17 : 입력 링크 19 : 출력 링크
20 : 관장 프로세서 31-34 : 제어 링크
10 : 입/출력 회로 12 : 버퍼 메모리
14 : 컨트롤러 60 : 모니터
100 : 큐 200 : 큐 길이 카운터
본 발명은 이중(duplicated), 활성-대기(active-standby) 유닛을 사용하는 오류 방지 장치에 관한 것이며, 특히 이중-메모리(duplicated-memory) 장치에 관한 것이다.
컴퓨터와 통신 시스템이 오류 방지 능력(fault-tolerance)을 갖도록 하는 일반적 방법은, 오류가 발생하기 쉬운 유닛을 이중으로 하여, 이중 유닛 중 하나를 활성화시켜서 시스템 작업을 수행하고, 다른 이중 유닛은 비활성 상태에 있거나 또는 활성 유닛과 록-스텝되어(in lock-step with active unit) 동작하고 활성 유닛에서 오류가 발생하면 시스템 작업의 실행을 인계하기 위해 대기하는 것 등이 있다. 가령, 전화용 스위칭 시스템에서, 스위칭 구조 또는 시스템 제어 컴퓨터(메모리와 그 저장 내용을 포함하는)를 이중으로 하고, 이중 유닛을 활성-대기 모드(active-standby mode)에서 동작하게 하는 것이 일반적이다.
이중, 활성-대기 메모리들의 경우, 적절한 시스템 동작을 위해서는 메모리의 각 저장 내용이 서로 동일해야 한다. 최초에는, 이것은 초기화 과정에서 이중 메모리 각각에 서로 동일한 내용을 로드(load)함으로써 실현될 수 있다. 시스템이 동작하는 동안에는, 이중 메모리의 내용 동기화는 모든 기록(write) 동작을 양쪽의 메모리에 대해 실행함으로써 유지되며, 두 메모리의 내용이 동일하게 변화된다.
시스템 동작 중, 활성화 메모리(active memory)에 오류가 발생하면 대기 메모리(standby memory)로 교체하고 이전의 활성화 메모리를 보수한 후 필요한 것은, 보수된 현재 대기중인 메모리를 현 활성화 메모리에 동기시켜 시스템이 다시 오류 방지 능력을 갖출 수 있도록 하는 일이다. 이에는 두 메모리의 내용을 다시 동일하게 일치시켜서 유지하는 과정이 필요하다. 즉 보수된 메모리에 현 활성화 메모리의 내용을 옮겨 놓아야 하는 것이다. 종래에는, 활성화 메모리의 내용을 직렬로 읽어내어 대기 메모리로 옮겨 놓는 한편, 이미 대기 메모리에 복사된 활성화 메모리 내용에서 발생한 변화를 다시 대기 메모리에 기록함으로써, 이 과정을 실현했다. 이와 같은 시스템의 실례가 미합중국 특허 제3,864,670호에 공개되어 있다.
그러나, 이중 메모리의 동기화를 이루기 위한 이같은 방법에는 여러 단점이 있다. 만일 시스템 프로세서가 활성화 메모리의 내용을 대기 메모리에 기록하는데 사용되면, 이러한 작업을 위한 처리 능력이 시스템 작업으로부터 없어지고, 시스템 성능에 나쁜 영향을 주게 된다. 또 한편, 만일 별개의 컨트롤러가 복사를 실행하거나 활성화 메모리의 시스템 프로세서 액세스 사이에 메모리가 자동으로 복사 동작을 실행하면, 메모리 동기화를 이루는데 긴 시간이 걸리 수 있는데, 특히 메모리 집중 작업(memory-intensive task)을 실행하는 시스템에서는 더욱 그러하다. 그러나 동기화가 이루어지기 전에는 오류 방지 능력을 읽게 되므로, 가능한 한 빨리 동기화를 이루는 것이 필요하다.
본 발명은 종래의 기술이 지녔던 위의 단점과 그 밖의 다른 단점을 해결하려는 목적을 갖고 있다. 본 발명에 따르면, 활성 및 대기 메모리에 대한 동기화가 시작되면 이어지는 활성화 메모리에 대한 모든 기록은 대기 메모리(실증적으로는 비어있음)와 이중으로 되며, 당시 활성화 메모리에 존재하는 내용을 덮어쓰는 것(overwriting)이 감시된다. 가령, 데이터를 큐에 버퍼링하는 메모리내에서 큐 길이 카운터는 활성화 메모리의 각각의 큐와 연계되고, 시스템은 카운트가 0이 될 때까지 카운터를 감시한다. 일단, 활성화 메모리의 원래 내용이 모두 덮어서지면-가령 각 큐 길이 카운터가 적어도 한 번 0 카운트에 이르면-그것은 두 메모리의 동기화가 달성되었고 그들 내용이 서로 동일함을 뜻한다. 이 시점에서, 대기 메모리는 활성화 메모리를 대체할 수 있어 오류 방지 능력을 실현하게 된다.
이 실시예의 변형으로서, 하나의 큐-길이 카운터가 활성화 메모리의 복수의 열에 연계되어 연계된 열의 모든 내용을 추적할 수도 있다. 동기화를 시작한 시점에서, 이 카운터는 열의 내용-예를 들면 당시 존재하는 내용만일 수도 있다-을 추적하기 시작한다. 일단 이 카운터가 카운트 0에 이르면, 동기화가 완료된 것이다.
본 발명은 종래의 기술에 비해 수많은 장점을 갖고 있다. 본 발명에 따르면, 메모리 이중화를 목적으로, 별도로 시스템 프로세서의 처리 능력을 차용할 필요가 없으며, 따라서 시스템 성능이 저하되지 않는 것이다. 또한 본 발명에 따르면 메모리 동기화용 프로세서를 별도로 갖추는데 필요한 비용도 들지 않으며 메모리를 그 고유 목적에 정상적으로 사용하는 것만으로도 활성화 메모리와 대기 메모리의 동기화를 이룰 수 있다. 본 발명에 따르면, 이중 메모리간에 메모리 내용의 인계가 빈번한 메모리 집약적 응용 분야에서도, 메모리 동기화를 신속하게 실현하여 시스템의 오류 방지 능력을 신속히 회복할 수 있다. 이 같은 응용분야에는 다음과 같은 것들이 있다: 버퍼-메모리에 기초한 스위칭 장치(광대역 ISDN(BISDN) 서비스를 제공하는 비동기 전송 모드(Asynchronous Transfer Mode) 장치에서 매우 중요하다), 이중 FIFO(활성 FIFO가 비어 있을 때 감시될 수 있다), 프로세서 스택(processor stack)(활성 프로세서의 스택이 비어 있을 때 감시될 수 있다).
본 발명이 갖는 다른 장점과 특징은 도면을 참조한 본 발명 실시예에 대한 설명으로 더욱 분명해질 것이다.
제1도는 본 발명의 실시예를 포함하는 통신용 스위칭 장치를 나타내는 블록도이다. 제1도의 장치는 비동기 전송 모드(ATM: Asynchronous Transfer Mode) 스위칭/전송 시스템의 일부이다. 이것은 ATM 스위칭/전송 시스템의 독립형 스위치 또는 복수의 부분으로 이루어진 스위치의 일부로 구성된다. 이 장치는 이중 ATM 스위치 모듈 1과 2로 형성되는데 이들은, 오류 방지 능력을 발휘하기 위하여 활성-대기 모드로 동작하도록 구성되어 있다.
모듈 1과 2는 디멀티플레서/디스트리뷰터(DEMUX/DISTR; demultiplexer/dist ributer)(21)의 출력 포트(41, 42) 각각에 병렬로 연결되어 있으며, 멀티플렉서(MUX; multiplexer)(22)의 입력 포트(51, 52)에도 각각 병렬로 연결되어 있다. 두 장치(21, 22)는 모두 종래 설계 방식대로 구성된 것이다. DEMUX/DISTR(21)는 하나 또는 그 이상의 링크(17)에 연결된 입력 포트(40)를 갖추고 있다. 이는 입력 포트(40)를 (따라서 입력 링크(17)를) 출력 포트(41, 42) 중 하나에 연결하는 디멀티플렉싱 선택(demultiplexing selection) 기능을 수행하거나, 출력 포트 모두에 연결하는 분배(distribution), 즉 방송(broadcast) 기능을 수행한다. MUX(22)는 다수의 출력 링크(19)에 연결된 출력 포트(50)를 갖고 있다. 이는 출력 포트(50)(따라서 출력 링크(19)를)를 입력 포트(51, 52) 중 하나에 연결하는 멀티플렉싱 선택(multiplexing selection) 기능을 수행한다.
DEMUX/DISTR(21)와 MUX(22)는 관장 프로세서(administrative processor)(20)에 의해 제어된다. 관련 기술 분야에는 스위치 관장 프로세서가 널리 알려져 있다.
프로세서(20)는 각각 제어 링크(31, 32)를 경유하여 DEMUX/DISTR(21)과 MUX(22)의 입력 포트-출력 포트 연결을 제어한다. 또한, 프로세서(20)는 각각 제어 링크(33, 34)를 통하여 ATM 스위치 모듈 1 및 2와 통신한다.
제1도는 또한 공유-버퍼-메모리에 기초한(shared-buffer-memory-based) ATM 스위치 모듈 1의 구조를 블록 형태로 보여준다. 모듈 2도 모듈 1과 동일한 구조를 갖는다. 이에 관한 예는 WO 91/04624에 공개되어 있다. 모듈 1은 하나 이상의 입력 포트(7)를 가지고 있어, 이를 통해 인입(incoming) ATM 셀을 수신한다. 입력 포트(7)는 입출력 회로(I/O)(10)에 연결되며, I/O(10)는 입력 포트(7)를 콘트롤러(14)와 버퍼 메모리(12) 및 출력 포트(9)에 연결하다. I/O(10)는 예를 들면, 위상 정렬 회로(phase-alignment circuitry)와 직-병렬 및 병-직렬 시프트 레지스터(shift register)와 멀티플렉서 및 디멀티플렉서로 구성된다. 입력 포트(7)로부터 수신된 인입 ATM 셀의 헤더부(header portion) I/O(10)를 통해 콘트롤러(14)에 보내지고, 셀은 I/O(10)를 통해 버퍼 메모리(12)로 보내져 저장된다.
버퍼 메모리(12)는 각 출력 포트에 대해 하나 이상의 큐(queue)를 구현하는 하나 이상의 RAM으로 구성된다. 콘트롤러(14)는, 예를 들면, 큐 프로세서와 포인터(pointer) RAM과 출력 포트-카운터 및 큐-길이 카운터(200)로 구성된다. 큐(100) 하나에 카운터(200) 하나가 지정되어 있다.
I/O(10)에 의해 수신된 인입 ATM 셀의 헤더를 기초로 하여, 콘트롤러(14)는 각 셀의 우선 순위와 목표(destination) 출력 포트를 결정하고, 셀이 버퍼 메모리(12) 내의 해당 큐(100)에 저장되도록 하며, 그 큐에 대응하는 카운터를 증분한다. 콘트로러(14)는 출력 포트-카운터의 현재 카운트로 식별되는 출력 포트(9)의 최우선 비공석 큐(highest-priority non-empty queue)(100)를 주기적으로 액세스(access)하여 그로부터 큐의 앞부분에 있는 ATM 셀을 가져오고, 그 큐에 대응하는 카운트를 감소시키며(decrement the counter) I/O(10)로 하여금 대응하는 출력 포트(9)로 가져온 셀을 전송하게 한다.
본 발명에 따르면, 관장 프로세서(20)는 큐-길이 카운터 모니터(60) 및 다수의 오류 방지 능력 관련 루틴 또는 함수(61-63)를 포함하고 있다. 모니터(60)는 예를 들면, 스위치 모듈의 각 큐-길이 카운터(200)에 대한 플래그 비트(64)를 가진 레지스터 또는 메모리 워드에 지나지 않는다. 이의 용도는 다음에 더욱 자세히 설명하겠다. 함수(61-63)는 관장 프로세서(20)가 실행하는, ROM(read only memoty)에 저장된 명령으로 실현된다. 함수(61-63)는 하드-와이어(hard-wired) 회로로 실현될 수도 있다. 함수(61-63)의 동작 특성은 제2도 내지 제4도에 흐름도의 형태로 도시되어 있다.
개별 카운터(200)가 다수의 큐(100)의 내용의 합의 카운트를 보유할 수도 있다. 예를 들면, 하나의 카운터(200)가 모든 큐(100)의 내용을 추적할 수도 있다. 이 경우 모니터(60)는 불필요해진다.
제2도에서, 제1도 장치의 초기화 직후, INIT 함수(61)가 210 단계에서 불러내어지고 실행된다. 이에 응답하여, 212 단계에서, 이 INIT 함수는 DEMUX/DISTR(21)가 입력 포트(40)를 출력 포트(41, 42)에 연결하여, 분배(distribution) 기능을 수행하고, 입력 랭크(17)에서 수신된 ATM 셀을 ATM 스위치 모듈 1과 2의 대응하는 입력 포트(7)에 보낸다. 214 단계에서 함수(61)는 MUX(22)가 출력 포트(50)를 활성 모듈로 지정된 모듈(1 또는 2)에 연결된 입력 포트(51 또는 52)에 연결토록 한다. 이렇게 하여, 활성 모듈(1 또는 2)의 출력 포트(9)에 나타난 ATM 셀은 출력 링크(19) 중 하나로 전송된다. 가령, 프로세서(20)는 모듈 1과 2 중 어느 것이 활성 모듈로 지정되었는지에 대한 정보를 관리용 단말(administrator´s terminal)(도시하지 않음)로부터 얻는다. 함수(61)는, 216 단계에서 통상의 시스템 초기화 작업을 수행한다. 통상의 시스템 초기화 작업(conventional system initialization task)이란 두 메모리(12)의 내용을 리셋하거나, 동일한 초기 내용을 두 메모리(12)에 로드하는 작업을 말한다.
제1도의 장치가 활성화되면, 두 모듈 1과 2는 동일한 동작을 수행한다. INIT 함수(61)가 수행됨으로써, 두 모듈 1과 2는 동일한 입력을 수신하여, 이 입력을 이용해 각 모듈의 버퍼 메모리(12) 내용의 동기화를 유지한다. 두 모듈 1과 2중 하나에서 오류가 발생하면, 프로세서(20)는 이 사실을 자동적으로 보고 받거나, 각 모듈에서 수행하는 주기적인 관리 활동(maintenance activities, 가령 테스트 따위)을 통해 이 사실을 발견한다.
프로세서(20)가 모듈(1 또는 2)의 오류를 검출하면, 300 단계에서 제3도의 함수(62)가 불러내어진다. 함수(62)는, 302 단계에서 오류가 발견된 모듈이 활성모듈인지 대기 모듈인지를 우선 결정한다. 활성 모듈에서 오류가 발생했다면, 함수(62)는 MUX(22)로 하여금, 출력 포트(50)를 대기 모듈에 연결된 입력 포트(51 또는 52)에 연결하도록 하여, 오류 발생 모듈을 출력 링크(19)와 단절하고 고립시킨다.
함수(62)는 또한 DEMUX/DISTR(21)로 하여금 오류 발생 모듈에 연결된 출력 포트(41 또는 42)와 입력 포트(40)를 단절하게 한다. 함수(62)는 308 단계에서 대기 모듈을 활성 모듈로 지정하고 오류 발생 모듈을 작업 불가(OOS; out of service)로 지정한다. 계속하여 314 단계에서 함수(62)는 통상의 오류-처리 활동(conventional fault-handling activity)을 수행한다.
302 단계에서, 오류 발생 모듈이 대기 모듈이라면, 함수(62)는, 310 단계에서 DEMUX/DISTR(21)로 하여금 오류 발생 모듈에 연결된 출력 포트(41 또는 42)로부터 입력 포트를 단절토록 한다. 그후 함수(62)는 312 단계에서 오류 발생 모듈을 OOS로 지정하고, 314 단계에서 통상의 오류 처리 활동을 수행한다.
오류 발생 모듈이 보수되고 나면(즉, 오류가 식별되어 제거되면), 프로세서(20)는, 가령 관리용 단말로부터 이 사실을 보고 받는다. 그 결과 제4도의 400 단계에서 함수(63)가 불러내어진다. 함수(63)는 401 단계에서 보수된 버퍼 메모리(12)의 내용을 리셋한다(모두 영으로 만든다). 그 후 함수(63)는 402 단계에서 DEMUX/DISTR(21)로 하여금 입력 포트(40)를 두 출력 포트(41, 42)에 연결토록 하여, 두 모듈(1, 2)이 다시 동일한 입력을 수신하도록 한다. 그러나 이때 보수된 모듈의 버퍼 메모리(12) 내용은 활성화 메모리의 버퍼 메모리 내용과 동일하지 않다. --보수된 모듈의 버퍼 메모리는 비어있는 것이다. 그러나 402 단계의 수행 결과, 두 버퍼 메모리(12)의 내용에 대한 동일한 변화와 결합되어 두 모듈(1, 2)에 의해 수행된 일련의 동일한 동작은 결국 두 버퍼 메모리(12)의 내용을 동기화시킨다. 동기화가 이루어졌는지 결정하기 위해, 함수(63)는 활성 모듈의 큐-길이 카운터(200)와 큐-길이 카운터 모니터(60)를 이용한다. 제 404 단계에서, 함수(63)는 모니터(60)의 내용을 모두 0으로 만들어 모니터를 초기화한다. 함수(63)는 406 단계에서 활성 모듈의 카운터(200)의 카운트가 0이 되거나 활성 모듈의 버퍼 메모리(12)로부터 셀이 삭제되도록 하는 버퍼-오버플로우(buffer-overflow) 조건이 발생할 때까지 휴지기에 들어간다.
버퍼 메모리(12) 또는 버퍼 메모리 큐(100) 각각의 오버플로우를 통제하는 방법은 여러가지이다. 이런 방법의 통제의 전형적인 예는 오보플로우로 귀결될 신착 셀(newly-arriving cell)을 버리거나 큐(100)에 이미 저장된 셀을 버려 신착 셀이 수용될 공간을 마련하는 것이다. 활성 모듈의 버퍼 메모리(12)는 보통 대기 모듈의 버퍼 메모리보다 더욱 많은 내용을 수용한 상태에서 401 단계를 거치지 때문에, 버퍼 메모리 동기화가 이루어지기에 앞서, 오버플로우 조건과 그에 따른 셀의 삭제가 활성 모듈에서만 일어난다. 따라서 셀의 삭제는, 두 모듈(1과 2)의 버퍼 메모리(12) 내용 변화가 동일하게 이루어져야 한다는 동기화 조건을 위배한다. 따라서 활성 모듈의 버퍼 메모리에 저장된 셀을 삭제한 후, 활성 모듈의 콘트롤러(14)는 이를 프로세서(20)에 통보한다. 이 결과 함수(63)가 409 단계에서 불러져 400 단계의 메모리 내용 동기화 과정을 새롭게 수행하게 된다.
제1도를 참조로 하여, 활성 모듈의 큐(100)가 비어있고, 대응하는 카운터(200)의 카운트가 0이며, 콘트롤러(14)가 프로세서(20)에 이를 통보하는 경우를 고려해보자. 제4도를 다시 참조하면, 410 단계에서 이런 상황에 의해 함수(63)이 불러내어진다. 함수(63)는 412 단계에서 활성 모듈 카운터(200) 중 어느것이 자신을 불러내었는지 판정하고, 414 단계에서 모니터(60) 내의 그 카운터의 대응하는 플래그(64)를 세트함으로써 모니터(60)를 갱신한다. 함수(63)는, 416 단계에서, 모니터(60) 내 임의의 플래그(64)가 소거(clear) 상태에 머물러 있는지 점검한다. 어느 플래그도 소거되지 않았다면, 이는 404 단계에서 모니터(60)가 초기화된 후 활성 모듈의 대응하는 카운터(200)가 카운트 0에 도달하지 않았고 결과적으로 그 카운터의 대응하는 큐(100)는 빈 상태가 되지 않았음을 뜻한다. 그 후 함수(63)는 406 단계로 돌아간다.
그러나 416 단계에서 모니터(60) 내 모든 플래그(64)가 세트된 것이 발견된다면, 이는 404 단계 후에 활성 모듈 버퍼 메모리(12)의 모든 내용이 소거되었고 따라서 버퍼 메모리(12)의 모든 내용이 동기화되었음을 뜻한다. 이는 다시 보수된 모듈이 활성 모듈에 대한 대기 역할(standby role)을 할 준비가 되어 있음을 뜻한다. 함수(63)는 그 후 418 단계에서 보수된 모듈의 상태 지정을 OOS에서 대기로 전환한다. 그 후 420 단계에서 함수(63)는 통상의 관장 활동(conventional administrative activity)을 수행한다.
여기서 예로 든 실시예는 여러 방식으로 변경하고 수정할 수 있다. 가령, 모든 ATM 셀이 동일한 우선 순위를 갖는 상황에서, 버퍼 메모리는 출력 포트당 1개의 큐만을 제공할 수도 있다. 또한 큐에 저장된 항목이 반드시 ATM 셀일 필요도 없고, 패킷형 통신일 수도 있다. 더욱이 메모리 내용 소거에 관한 정보는 큐 단위로 계속해서 얻어질 필요도 없고, 메모리 섹터나 블록 또는 워드나 바이트 단위로 얻어질 수 있다. 실제 통신(“real” communication)이 가능하지 않는 경우에 “무효”통신(idle communication, 가령 무효 코드(idle code)나 무효 패킷(idle packet))을 활용하는 시스템에서, 이런 무효 통신으로 구성되는 메모리 단위의 내용은 메모리 단위가 비어있다는 것과 동일하고, 이는 다시 메모리 단위의 실제 내용 모두가 대체되었음을 알리는 표식이 될 수도 있다. 이렇게 본 발명의 개념과 범위를 벗어나지 않으며 본 발명이 지니는 장점을 축소하지 않고도 본 발명을 여러 방식으로 변경하고 수정할 수 있다. 따라서 이같은 변경 및 수정은 청구항에 포괄하겠다.

Claims (12)

  1. 두 개의 메모리를 포함하는 이중 메모리 장치와, 상기 이중 메모리 장치에 의한 정보의 수신에 응답하여 상기 수신된 정보를 상기 두 개의 메모리에 기록하는 메모리-갱신 장치 내에서, 내용이 자주 변화하는 상기 두 개의 메모리 내용이 동기화되는 것을 결정하는 장치에 있어서, 선택적으로 활성화 가능한 감시 수단으로서, 상기 감시 수단이 활성화되면, 상기 감시 수단의 활성화가 시작될 때 활성화 메모리 내에 존재하였던 내용이 상기 수신된 정보에 의해 대체된 때를 결정하기 위해, 상기 감시 수단의 활성화가 시작될 때 상기 두 메모리 중 활성 메모리 내에 존재하는 내용이 두 메모리 모두에 기록될 상기 수신된 정보로 대체되는 것을 감시하는, 상기 선택적으로 활성화 가능한 감시 수단과, 상기 감시 수단과 협력하여, 상기 감시 수단이 활성화될 때 활성화 메모리 내에 존재하였던 내용이 수신된 정보로 모두 대체되었음을 표시하고, 이에 따라 두 메모리의 내용이 동기화되었음을 신호하는 표시 수단을 포함하는 동기화 결정 장치.
  2. 제1항에 있어서, 상기 감시 수단은 상기 감시 수단이 활성화되면, 상기 두 메모리 중 다른 하나의 내용을 소거하는 수단을 포함하는 동기화 결정 장치.
  3. 제1항에 있어서, 상기 이중 메모리 장치에 의한 정보의 수신은 의도하는 응용을 위한 활성화 메모리의 정상 사용의 결과인 동기화 결정 장치.
  4. 제1항에 있어서, 상기 감시 수단이 활성화 상태인 동안, 상기 두 메모리 중 활성화 메모리 내에서 데이터의 오버플로우로 인해 발생하는 정보의 삭제에 응답하여 상기 감시 수단을 재활성화하는 수단을 포함하는 동기화 결정 장치.
  5. 제1항에 있어서, 이중 메모리 장치에서, 각 메모리는 상기 수신된 정보를 버퍼링하기 위한 적어도 하나의 큐를 구현하고 있으며, 상기 메모리-갱신 장치는 수신된 정보를 각 메모리의 상기 개별 큐로 기록함으로서 상기 이중 메모리 장치에 의해 각 큐로 향하는 정보의 수신에 응답하고, 상기 장치는 상기 두 메모리의 개별 큐로부터 개별 큐에 기록된 정보를 제거하는 수단을 포함하며, 상기 감시 수단은, 대응하는 적어도 하나의 큐 내에 저장된 정보의 양을 나타내기 위해, 상기 활성화 메모리 내의 적어도 하나의 다른 큐에 각각 대응하는, 적어도 하나의 큐 길이 표시기, 상기 감시 수단이 활성화되면, 상기 감시 수단의 활성화 이후에 대응하는 적어도 하나의 큐가 비워졌다는 표시를 나타내기 위한 상기 큐 길이 표시기의 각각을 감시하는 선택적으로 활성화 가능한 감시 수단, 상기 감시 수단이 활성화된 때 이후에, 모든 큐-길이 표시기가 그에 대응하는 적어도 하나의 큐가 비워졌음이 표시되는 때를 표시하고, 이에 따라 상기 두 메모리의 상기 내용이 동기화되었음을 신호하는, 상기 표시 수단을 포함하는 동기화 결정 장치.
  6. 제5항에 있어서, 상기 감시 수단은 상기 대응하는 적어도 하나의 큐가 (a) 모든 정보 또는 (b) 상기 감시 수단이 활성화될 때 저장되어 있던 정보 중 하나가 비워졌음을 표시하는 큐 길이 표시기를 상기 감시 수단이 활성화된 때 이후에, 감시하는 동기화 결정 장치.
  7. 이중 메모리 장치 내에서 내용이 자주 변화하는 두 개의 메모리의 내용이 동기화되는 것을 결정하는 방법에 있어서, 상기 장치에 의한 각 정보의 수신에 응답하여 상기 두 메모리로 상기 정보를 기록하는 단계, 감시가 활성화되었을 때 상기 활성화 메모리 내에 존재하는 내용이 상기 수신된 정보에 의해 모두 대체된 때를 결정하기 위해, 상기 감시를 활성화할 때 상기 두 메모리 중 활성 메모리 내에 존재하는 내용이 상기 두 메모리 모두에 기록될 수신된 정보로 대체되는 것을 감시하는 활성화하는 단계 및 감시에 응답하여, 두 메모리가 지금 동일한 내용을 갖는 것을 신호하기 위해, 감시가 활성화되었을 때 존재하던 상기 활성화 메모리의 내용이 상기 수신된 정보로 모두 대체되었음을 표시하는 단계를 포함하는 동기화 결정 방법.
  8. 제7항에 있어서, 상기 감시 활성화 단계는 상기 메모리 중 대기 메모리의 상기 내용을 소거하는 단계를 포함하는 동기화 결정 방법.
  9. 제7항에 있어서, 상기 장치에 의한 상기 정보의 수신은 의도하는 응용을 위한 상기 활성화 메모리의 정상 사용의 결과인 동기화 결정 방법.
  10. 제7항에 있어서, 상기 활성화 메모리의 오버플로우에 응답하여 정보를 삭제하는 단계 및 상기 삭제에 응답하여 상기 대체의 감시를 재활성화하는 단계를 포함하는 동기화 결정 방법.
  11. 제7항에 있어서, 각 메모리는 상기 수신된 정보를 버퍼링하기 위한 적어도 하나의 큐를 구현하고, 상기 장치는 상기 활성화 메모리 내의 적어도 하나의 다른 큐에 각각 대응하며, 상기 대응하는 적어도 하나의 큐 내에 저장된 정보의 양을 나타내는 이중 메모리 장치를 포함하는 동기화 결정 방법으로서, 상기 기록 단계는, 상기 장치에 의한 각 큐로 향하는 정보의 개개의 수신에 응답하여, 상기 수신된 정보를 각 메모리의 상기 개별 큐로 기록하고, 상기 대응하는 큐 길이 표시기를 증분하는 단계를 포함하며, 상기 방법은, 두 메모리의 개별 큐로부터 상기 개별 큐에 기록된 정보를 제거하고, 상기 대응하는 큐 길이 표시기들을 감소시키는(decrementing) 단계를 포함하고, 상기 감시 활성화 단계는, 상기 대응하는 적어도 하나의 큐가 비워졌다고 표시하기 위해 상기 큐 길이 표시기의 각각을 감시하는 것을 시작하는 단계를 포함하며, 상기 표시 단계는, 감시에 응답하여 두 메모리의 내용이 동기화되었음을 신호하기 위해, 상기 감시가 시작된 때 이후에 모든 큐 길이 표시기가 그에 대응하는 적어도 하나의 큐가 비워졌음을 표시하는 단계를 포함하는 동기화 결정 방법.
  12. 제11항에 있어서, 상기 감시 활성화 단계는 상기 큐 길이 표시기의 증분을 중지하는 단계를 더 포함하는 동기화 결정 방법.
KR1019920013413A 1991-08-02 1992-07-27 이중-메모리 동기화 장치 KR100306344B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US739,928 1976-11-08
US07/739,928 US5278969A (en) 1991-08-02 1991-08-02 Queue-length monitoring arrangement for detecting consistency between duplicate memories

Publications (2)

Publication Number Publication Date
KR930004881A KR930004881A (ko) 1993-03-23
KR100306344B1 true KR100306344B1 (ko) 2001-11-30

Family

ID=24974358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920013413A KR100306344B1 (ko) 1991-08-02 1992-07-27 이중-메모리 동기화 장치

Country Status (10)

Country Link
US (1) US5278969A (ko)
EP (1) EP0526105B1 (ko)
JP (1) JP3004477B2 (ko)
KR (1) KR100306344B1 (ko)
AT (1) ATE159362T1 (ko)
AU (1) AU640876B2 (ko)
CA (1) CA2068936C (ko)
DE (1) DE69222709T2 (ko)
ES (1) ES2108731T3 (ko)
SG (1) SG54099A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649097A (en) * 1991-10-25 1997-07-15 International Business Machines Corporation Synchronizing a prediction RAM
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
US5742831A (en) * 1994-06-30 1998-04-21 Intel Corporation Methods and apparatus for maintaining cache coherency during copendency of load and store operations
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
US5521916A (en) * 1994-12-02 1996-05-28 At&T Corp. Implementation of selective pushout for space priorities in a shared memory asynchronous transfer mode switch
EP0742677A3 (en) * 1995-05-08 1999-09-15 Fujitsu Limited Header converting method
JP2809154B2 (ja) * 1995-09-29 1998-10-08 日本電気株式会社 出力バッファ型スイッチの位相合わせ制御回路
US5870537A (en) * 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US5867732A (en) * 1996-03-15 1999-02-02 Adaptec, Inc. Hardware method for verifying that an area of memory has only zero values
US5881250A (en) * 1996-03-15 1999-03-09 Adaptec, Inc. Host adapter system including an integrated PCI buffer controller and XOR function circuit
US5991861A (en) * 1996-03-15 1999-11-23 Adaptec, Inc. Method of enabling and disabling a data function in an integrated circuit
US5938749A (en) * 1996-06-03 1999-08-17 Whittaker Communications Inc. Queue measurement apparatus and methodology
US5872938A (en) * 1996-06-28 1999-02-16 International Business Machines Corp. Service priority queue implemented with ordered sub-queues and sub-queue pointers pointing to last entries in respective sub-queues
JP2901578B2 (ja) * 1997-06-27 1999-06-07 日本電気株式会社 Atmリンク切換方式
DE19748006A1 (de) * 1997-10-30 1999-05-06 Siemens Ag Verfahren zur redundanten Übertragung von ATM-Zellen
US6091731A (en) * 1998-03-30 2000-07-18 Lucent Technologies Inc. Duplication in asychronous transfer mode (ATM) network fabrics
EP0987630B1 (en) * 1998-09-08 2005-09-14 Fujitsu Services Limited Resilience in a multi-computer system
US6427213B1 (en) * 1998-11-16 2002-07-30 Lucent Technologies Inc. Apparatus, method and system for file synchronization for a fault tolerate network
JP2000307604A (ja) * 1999-04-23 2000-11-02 Nec Commun Syst Ltd Atmリンク切り換えシステム
US6914878B1 (en) 2000-10-16 2005-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Fault detection in multi-plane switch
US6894970B1 (en) * 2000-10-31 2005-05-17 Chiaro Networks, Ltd. Router switch fabric protection using forward error correction
US6882645B2 (en) * 2001-03-13 2005-04-19 Sun Microsystems, Inc. Apparatus and method for sequencing memory operations in an asynchronous switch fabric
US10476803B2 (en) 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411805A2 (en) * 1989-08-01 1991-02-06 Digital Equipment Corporation Bulk memory transfer during resync

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
JPS5331562A (en) * 1976-09-07 1978-03-24 Toyota Motor Co Ltd Fillet rolling machine inspecting mechanism
US4577274A (en) * 1983-07-11 1986-03-18 At&T Bell Laboratories Demand paging scheme for a multi-ATB shared memory processing system
US4736339A (en) * 1985-12-16 1988-04-05 Gte Communication Systems Corporation Circuit for simplex I/O terminal control by duplex processors
US4866661A (en) * 1986-03-26 1989-09-12 Prins Maurits L De Computer controlled rental and sale system and method for a supermarket and the like
US4916704A (en) * 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
DE3854026D1 (de) * 1987-09-04 1995-07-27 Digital Equipment Corp Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung.
JPH0792764B2 (ja) * 1988-05-25 1995-10-09 日本電気株式会社 マイクロプロセッサ
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US4930106A (en) * 1988-08-29 1990-05-29 Unisys Corporation Dual cache RAM for rapid invalidation
US5072440A (en) * 1989-03-01 1991-12-10 Fujitsu Limited Self-routing switching system having dual self-routing switch module network structure
US5136704A (en) * 1989-06-28 1992-08-04 Motorola, Inc. Redundant microprocessor control system using locks and keys
GB2236035B (en) * 1989-09-15 1993-11-17 Plessey Co Plc An asynchronous time division multiplex switching system
US5126889A (en) * 1989-11-22 1992-06-30 At&T Bell Laboratories Technique for information protection on fault-tolerant redundant information storage devices
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411805A2 (en) * 1989-08-01 1991-02-06 Digital Equipment Corporation Bulk memory transfer during resync

Also Published As

Publication number Publication date
KR930004881A (ko) 1993-03-23
SG54099A1 (en) 1998-11-16
JP3004477B2 (ja) 2000-01-31
CA2068936A1 (en) 1993-02-03
US5278969A (en) 1994-01-11
ES2108731T3 (es) 1998-01-01
EP0526105A2 (en) 1993-02-03
AU2044492A (en) 1993-02-04
ATE159362T1 (de) 1997-11-15
DE69222709T2 (de) 1998-02-12
AU640876B2 (en) 1993-09-02
DE69222709D1 (de) 1997-11-20
CA2068936C (en) 1997-02-04
EP0526105B1 (en) 1997-10-15
JPH07143126A (ja) 1995-06-02
EP0526105A3 (en) 1993-09-29

Similar Documents

Publication Publication Date Title
KR100306344B1 (ko) 이중-메모리 동기화 장치
US4371754A (en) Automatic fault recovery system for a multiple processor telecommunications switching control
US7523235B2 (en) Serial Advanced Technology Attachment (SATA) switch
US6411599B1 (en) Fault tolerant switching architecture
US7523236B1 (en) Switching serial advanced technology attachment (SATA) to a parallel interface
US6654880B1 (en) Method and apparatus for reducing system down time by restarting system using a primary memory before dumping contents of a standby memory to external storage
US6728818B2 (en) Dual storage adapters utilizing clustered adapters supporting fast write caches
US5590279A (en) Memory data copying apparatus
JP2560875B2 (ja) 情報処理系の障害通知方式
US6687852B1 (en) Ultra reliable disk memory for duplex processor platforms
JPH06284453A (ja) Atmセルスイッチ
US6496506B1 (en) Address fault monitoring device and ATM switching device
JP2713528B2 (ja) 記憶装置容量の無中断拡張方法
JP2768762B2 (ja) 交換機
JPH0324634A (ja) 二重系システム装置
JPH11261598A (ja) Atmスイッチの切替方式
KR100298843B1 (ko) 이중포트 메모리를 이용한 에이티엠 셀의 역다중화 장치
KR100218669B1 (ko) 비동기 전송 모드 스위치에서의 주소 오류 제거방법
KR100449693B1 (ko) Cpu내의쓰기버퍼데이터보존장치및그방법
JPH07202904A (ja) セル切替回路
Amstutz A new store and forward message switching system
JPH09289512A (ja) Camを使用した共有バッファ型スイッチの監視方式
JPH04252631A (ja) システム多重化データ通信システムの同期化方法及び該方法によるシステム多重化データ通信システム
JPH03271847A (ja) 半導体ディスク装置
JPH06237481A (ja) 入力バッファ形スイッチ装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20080728

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee