KR19990020349A - How to prevent duplication of interprocessor messages due to board duplication - Google Patents

How to prevent duplication of interprocessor messages due to board duplication Download PDF

Info

Publication number
KR19990020349A
KR19990020349A KR1019970043809A KR19970043809A KR19990020349A KR 19990020349 A KR19990020349 A KR 19990020349A KR 1019970043809 A KR1019970043809 A KR 1019970043809A KR 19970043809 A KR19970043809 A KR 19970043809A KR 19990020349 A KR19990020349 A KR 19990020349A
Authority
KR
South Korea
Prior art keywords
message
deldb
processing
messages
deldbdepth
Prior art date
Application number
KR1019970043809A
Other languages
Korean (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 윤종용
Priority to KR1019970043809A priority Critical patent/KR19990020349A/en
Publication of KR19990020349A publication Critical patent/KR19990020349A/en

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

듀얼 액티브 방식을 사용하는 이중화 장치의 프로세서 간 통신시 이중 처리를 방지하는 방법이, 현재 수신된 메시지의 종류 및 전송 프로세서의 식별 정보와 최근 처리된 소정 수의 메시지들의 종류 및 전송 프로세서서의 식별정보들 비교하여 메시지의 속성을 분석한 후, 동일한 메시지 속성일 시 현재 수신된 메시지를 중복 메시지로 판단하여 처리하지 않으므로서, 이중 처리 방지 기능을 수행한다.A method for preventing duplex processing during inter-processor communication of a duplexing device using a dual active method includes a type of currently received message and identification information of a transmission processor, a type of a predetermined number of recently processed messages and identification information of a transmission processor. After analyzing the attributes of the message by comparing the two attributes, the currently received message at the same message attribute is judged as a duplicate message and is not processed.

Description

보드 이중화에 따른 프로세서간 메시지의 이중 처리 방지 방법How to prevent duplication of interprocessor messages due to board duplication

본 발명은 블록 간 통신에 사용되는 메시지의 처리 방법에 관한 것으로, 특히 보드 이중화에 따른 프로세서 간 메시지의 이중 처리 방지 방법에 관한 것이다.The present invention relates to a message processing method used for inter-block communication, and more particularly, to a method for preventing double processing of inter-processor messages due to board duplication.

일반적으로 교환 시스템 등과 같이 실시간의 데이터를 처리하는 통신 시스템은 통신되는 데이터의 신뢰성을 향상시키기 위하여 제어보드 들을 이중화 장치로 구현하고 있다. 이하 상기 통신시스템을 교환시스템이라 가정하여 설명한다.In general, a communication system that processes data in real time, such as an exchange system, implements control boards as redundant devices to improve the reliability of the data being communicated. Hereinafter, the communication system is assumed to be a switching system.

종래의 교환기 시스템(V4.2, 상용기 이전 버전)에서는 도 1과 같이 PBA(Printed Board Assembly) 이중화 구성이 구현되어 있다. 그러나 상기와 같은 이중화 장치는 동작/대기(active/standby) 방식의 이중화 시스템이다. 즉, 상기 도 1과 같은 구성을 갖는 이중화 장치는 두 개의 스위치 PBA A와 PBS B 중 하나만 동작 상태로 동작하고 상대 측은 대기 상태로 있게된다. 이때 프로세서 간 통신 메시지(Inter Processor Communication messgae: 이하 IPC 메시지라 칭한다)를 실제로 처리하는 제어 PBA에서는 동작 스위치 PBA로부터 IPC 메시지만이 하드웨어적으로 선택된다. 이때 선택 방법은 ACT-A 제어신호와 ACT-B 제어신호를 이용한다. 이때 소프트웨어는 수신된 모든 IPC 메시지들을 단순히 하나씩 처리하여 주면된다. 즉, 수신된 동일한 두 개의 IPC 메시지는 하드웨어적으로 하나가 걸러지게 되며, 이로인해 소프트웨어는 이중 처리를 하지 않게된다.In a conventional exchange system (V4.2, a previous version of a commercial vehicle), a PBA (Printed Board Assembly) redundancy configuration is implemented as shown in FIG. 1. However, such a redundancy device is an active / standby redundancy system. That is, in the duplexing device having the configuration as shown in FIG. 1, only one of the two switches PBA A and PBS B operates in an operating state, and the other side is in a standby state. At this time, in the control PBA that actually processes the inter-processor communication message (hereinafter referred to as IPC message), only the IPC message is selected from the operation switch PBA in hardware. In this case, the selection method uses an ACT-A control signal and an ACT-B control signal. In this case, the software simply processes all received IPC messages one by one. In other words, the same two received IPC messages are filtered out in hardware, so that the software does not double process.

그러나 상기와 같은 동작/대기 방식의 이중화 장치는 진정한 이중화 장치가 될 수 없다. 즉, 현재의 교환기 시스템(V4.3, 사용기 버전)은 듀얼 액티브(dual active) 이중화 방식으로 하드웨어 시스템이 변경되었다. 따라서 이런 이중화 장치는 어떤 소프트웨어 루틴(software routine)에 의하여 두 스위치 PBA에 각각 수신된 동일 IPC 메시지 중 하나를 걸러내는 이중 처리 방지 알고리즘이 필요하다.However, such an operation / standby redundancy device cannot be a true redundancy device. That is, the current exchange system (V4.3, user version) has been changed hardware system to dual active (dual active) redundancy. Thus, such a redundancy device requires an anti-duplication algorithm that filters out one of the same IPC messages each received by the two switch PBAs by a software routine.

이때 상기와 같은 듀얼 액티브 이중화장치에서 상기 이중 처리 방지 알고리즘이 적용되지 않거나 확실하게 이중 처리를 방지할 수 없는 알고리즘이 채택되면, SLCA 내의 프로세서는 동일한 작업을 불필요하게 처리하거나 또는 처리되어야 할 메시지를 그냥 버리게 된다. 이때 전자의 경우 CPU의 부하기 최대 2배로 증가되는 결과를 초래하며, 이는 이후에 수신된 다른 중요 메시지 처리의 지연을 유발하게되는 문제점이 야기된다. 이는 제어부로의 응답 지연을 의미하며, 최악의 경우에는 제어계 블록 측에서의 요구 시간 종료(request timeout)에 따른 IPC 메시지의 재전송으로 인하여, 시스템 내의 IPC 메시지 트래픽이 증가하게 되는 문제점이 발생될 수 있다.At this time, if the dual anti-duplication algorithm is not applied in the dual active redundancy device or an algorithm that cannot reliably prevent the double-processing is adopted, the processor in the SLCA processes the same operation unnecessarily or simply sends a message to be processed. Discarded. In the former case, the load of the CPU is increased by a maximum of 2 times, which causes a problem that causes a delay in processing of another important message received later. This means a response delay to the control unit. In the worst case, the IPC message traffic in the system may increase due to retransmission of the IPC message due to a request timeout at the control system block side.

따라서 본 발명의 목적은 듀얼 액티브 이중화 장치에서 프로세서 간 통신시 이중 처리를 방지할 수 있는 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a method capable of preventing double processing in inter-processor communication in a dual active redundancy device.

본 발명의 다른 목적은 듀얼 액티브 이중화 장치에서 프로세서 간 통신시 메시지들의 동일성 유무를 판단하고, 동일 메시지 수신시 이중 한 메시지만 처리하여 이중 처리를 방지할 수 있는 방법을 제공함에 있다.Another object of the present invention is to provide a method of determining whether or not messages are identical in communication between processors in a dual active duplication apparatus, and preventing double processing by processing only one message when receiving the same message.

본 발명의 또 다른 목적은 듀얼 액티브 이중화 장치에서 프로세서 간 통신 과정에서 메시지 유실시 단일수신 메시지를 처리할 수 있는 방법을 제공함에 있다.It is still another object of the present invention to provide a method for processing a message-induced single-receipt message during inter-processor communication in a dual active duplication apparatus.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 듀얼 액티브 방식을 사용하는 이중화 장치의 프로세서 간 통신시 이중 처리를 방지하는 방법이, 현재 수신된 메시지의 종류 및 전송 프로세서의 식별 정보와 최근 처리된 소정 수의 메시지들의 종류 및 전송 프로세서서의 식별정보들 비교하여 메시지의 속성을 분석한 후, 동일한 메시지 속성일 시 현재 수신된 메시지를 중복 메시지로 판단하여 처리하지 않음을 특징으로 한다.In order to achieve the above object, a method for preventing dual processing during communication between processors of a duplexing device using a dual active method according to an embodiment of the present invention is performed. After analyzing the attributes of the message by comparing a predetermined number of types of messages and identification information of the transmission processor, the message currently received at the same message attribute is determined as a duplicate message and is not processed.

도 1은 일반적인 이중화 처리장치의 구성을 도시하는 도면1 is a diagram showing the configuration of a general redundancy processing apparatus;

도 2a 내지 도 2b는 본 발명의 실시예에 따른 이중화 처리장치에서 보드 이중화에 따른 프로세서 간 메시지의 이중 처리 방지를 위한 과정을 도시하는 흐름도2A to 2B are flowcharts illustrating a process for preventing duplication of messages between processors according to board duplication in a duplication processing apparatus according to an embodiment of the present invention.

도 2a 내지 도 2b는 본 발명의 실시예에 따라 듀얼 액티브 방식을 채택하는 이중화 장치에서 프로세서 간 통신시 이중 처리 방지 기능을 수행하는 과정을 도시하는 흐름도이다. 상기 도 2에서 Que_msgID는 메시지의 종류를 나타내는 ID이다. Que_SMLASideID는 현재의 메시지가 수신된 보드를 표시하는 ID이다. DelDB는 현 메시지의 처리 여부를 결정하기 위한 데이터 베이스이다. msgID side는 상기 DelDB에는 저장된 중복 메시지이다. DelDBcnt는 현재 상기 DelDB에 등록된 메시지의 개수를 나타내는 카운터이다. DelDBDepth는 DelDB에 등록될 수 있는 총 메시지의 개수를 나타낸다.2A to 2B are flowcharts illustrating a process of performing a double processing prevention function during communication between processors in a duplexing device adopting a dual active method according to an embodiment of the present invention. In FIG. 2, Que_msgID is an ID indicating a type of a message. Que_SMLASideID is an ID indicating the board on which the current message was received. DelDB is a database for determining whether to process a current message. msgID side is a duplicate message stored in the DelDB. DelDBcnt is a counter indicating the number of messages currently registered in DelDB. DelDBDepth represents the total number of messages that can be registered in DelDB.

본 발명의 실시예에 따른 듀얼 액티브 방식을 사용하는 이중화 장치의 프로세서 간 메시지의 이중 처리 방지 방법을 살펴보면, 두 개의 SMLA PBA를 통하여 수신된 모든 IPC 메시지를 제어 PBA인 SLCA 내의 큐(queue)에 일단 저장된다. 상기 큐는 피포(FIFO: First In First Out) 방식으로 동작된다. 상기 큐 내에 저장되는 각 메시지는 두 개의 속성이 소프트웨어에 의하여 첨부된다. 그 중 하나의 속성은 메시지의 종류를 나타내는 Que_msgID로서, 소프트웨어는 이 값에 따라 수행하여야 할 작업을 결정한다. 예를들면, ID가 0X9001인 메시지는 스위치 포트의 상태 정보를 요구하는 것으로, 이에 대해 소프트웨어는 모든 스위치 포트(총 64포트, 32*32 스위치의 이중화)의 현재 상태를 확인하여, 이들 정보를 실은 응답 메시지를 전송한다. 또한 나머지 하나의 속성은 Que_SMLASideID는 현 메시지가 SMLA-A로부터 수신되었는지 또는 SMLA-B로부터 수신되었는지 나타낸다. 즉, Que_SMLASideID가 0이면 이는 SMLA-A로부터 수신된 메시지이고, 1이면 이는 SMLA-B로부터 수신된 메시지이지이다.Referring to the method for preventing dual processing of messages between processors of a duplexing device using a dual active method according to an embodiment of the present invention, once all IPC messages received through two SMLA PBAs are put into a queue in a SLCA that is a control PBA. Stored. The queue is operated in a FIFO (First In First Out) manner. Each message stored in the queue has two attributes appended by the software. One attribute is Que_msgID, which indicates the type of message, and the software decides what to do based on this value. For example, a message with ID 0X9001 requires status information on the switch port. In response, the software checks the current status of all switch ports (64 ports total, 32 * 32 switch redundancy), and loads this information. Send a response message. In addition, the other attribute Que_SMLASideID indicates whether the current message is received from SMLA-A or SMLA-B. That is, if Que_SMLASideID is 0, this is a message received from SMLA-A, and if 1, it is a message received from SMLA-B.

소프트웨어는 현 메시지의 처리 여부를 결정하기 위하여 DelDB라는 데이터 베이스를 운용한다. 상기 DelDB에는 중복 메시지들의 정보(msg side 정보)가 등록되며, 큐에 저장된 메시지 중 DelDB에 등록된 정보와 같은 값(속성)을 갖는 메시지는 처리되지 않는다. 즉, 현재 메시지가 DelDB에 등록된 정보를 참조하여 중복 메시지로 판단된 경우, 즉 이미 앞 단계에서 상대 SMLA로부터 수신된 동일 메시지를 처리한 경우, 현 메시지는 처리되지 않는다. 그러나 현재의 메시지가 중복 메시지가 아닌 것으로 판단되면, 나중에 수신되었거나 또는 수신될 것으로 예상되는 동일 메시지를 지정하는 정보들을 DelDB에 등록한 후 현재의 메시지를 처리한다. 여기서 상기 DelDBcnt는 현재 DelDB에 등록된 메시지의 개수를 의미하며, DelDBDepth는 DelDB에 등록될 수 있는 총 메시지의 개수이다. 즉 DelDB에는 DelDB[0]부터 DelDB[DelDBDetph-1] 까지 메시지가 등록될 수 있다. 상기 도 2와 같은 알고리즘에서 사용되는 변수들의 초기값으로는 DelDBcnt=0, DelDB[0]~DelDB[DelDDepth-1]=0이며, 상수인 DelDBDetph의 값은 시스템의 본질적인 특성에 따라 설정할 수 있는 파라미터이다.The software runs a database called DelDB to determine whether to process the current message. Information of duplicate messages (msg side information) is registered in DelDB, and messages having the same value (attribute) as information registered in DelDB among messages stored in the queue are not processed. That is, if the current message is determined to be a duplicate message with reference to information registered in DelDB, that is, if the same message received from the counterpart SMLA has already been processed in the previous step, the current message is not processed. However, if it is determined that the current message is not a duplicate message, it processes the current message after registering information in DelDB that specifies the same message received or expected to be received later. Here, DelDBcnt means the number of messages currently registered in DelDB, and DelDBDepth is the total number of messages that can be registered in DelDB. In other words, messages can be registered in DelDB from DelDB [0] to DelDB [DelDBDetph-1]. The initial values of the variables used in the algorithm shown in FIG. 2 are DelDBcnt = 0, DelDB [0] ~ DelDB [DelDDepth-1] = 0, and the value of DelDBDetph, which is a constant, is a parameter that can be set according to the essential characteristics of the system. to be.

소프트웨어는 메시지 큐 내에 수신되어 저장된 메시지가 있는 경우 도 2와 같은 과정으로 저장된 메시지를 처리한다. 이때 상기 메시지 큐는 피포 방식의 큐이므로, 큐의 선두 메시지가 처리 대상이다. 상기 도 2를 참조하면, 212단계에서 상기 메시지 큐의 메시지 카운트 값을 검사하며, 양의 값을 가지면 214단계에서 큐의 선두 메시지 값을 읽는다. 이때 상기 메시지의 속성은 Que_msg Que_SMLASideID에 치환된다. 여기서 Que_msgID는 메시지의 종류를 나타내는 ID이고, Que_SMLASideID는 현재의 메시지가 수신된 보드를 표시하는 ID이다. 이후 DeDBcnt의 값이 0보다 큰가 검사한다. 이때 DelDBcnt=0이면, 244단계로 진행한다.If there is a message received and stored in the message queue, the software processes the stored message in the same manner as in FIG. 2. At this time, since the message queue is a packet type queue, the head message of the queue is a processing target. Referring to FIG. 2, in step 212, the message count value of the message queue is checked. If the message count value is positive, the head message value of the queue is read in step 214. At this time, the attribute of the message is replaced by Que_msg Que_SMLASideID. Where Que_msgID is an ID indicating a message type, and Que_SMLASideID is an ID indicating a board on which a current message is received. After that, check if the value of DeDBcnt is greater than zero. If DelDBcnt = 0, the flow proceeds to step 244.

이때 상기 216단계에서 현재 DelDB에 등록된 메시지가 있으면(DelDBcnt0), 218단계 및 220단계를 수행하면서 메시지 카운터 변수i를 0로 설정한 후, Que-msgID=DelDB[i].msgID이고, Que_SMLASideID=DelDB[i].side인가 검사한다. 이때 상기 220단계에서 동일하지 않으면, 222단계에서 i 값을 증가시킨 후(i=i+1), 224단계에서 jDelDBDetph인가 검사한다. 이때 jDelDBDetph이면 상기 220단계로 되돌아가며, 아니면 244단계로 진행한다. 여기서 jDelDBDetph가 아닌 경우에는 DelDB에 메시지가 없음을 의미한다.If there is a message currently registered in DelDB in step 216 (DelDBcnt0), the message counter variable i is set to 0 while performing steps 218 and 220, and then Que-msgID = DelDB [i] .msgID and Que_SMLASideID = Check if it is DelDB [i] .side In this case, if it is not the same in step 220, the value of i is increased in step 222 (i = i + 1), and in step 224, jDelDBDetph is checked. In this case, if it is jDelDBDetph, the process returns to step 220, or otherwise proceeds to step 244. If it is not jDelDBDetph, it means there is no message in DelDB.

또한 상기 Que-msgID=DelDB[i].msgID Que_SMLASideID=DelDB[i].side의 조건을 만족하면, 상기 220단계에서 이를 감지하고, 226단계로 진행한다. 이때 상기 i가 0이면 228단계 및 230단계를 수행하면서 DelDBcnt=DelDBcnt-1로 하고, Del[0]=DelDB[1], Del[1]=DelDB[2] --- DelDB[DelDBDepth-2]=DelDB[DelDBDepth-1], DelDB[DelDBDepth-1]=DelDB[DelDBDepth-0]로 DelDB를 재구성한다. 또한 상기 i가 1이면 232단계 및 234단계를 수행하면서 DelDBcnt=DelDBcnt-2로 하고, Del[0]=DelDB[2], Del[1]=DelDB[3] --- DelDB[DelDBDepth-3]=DelDB[DelDBDepth-1], DelDB[DelDBDepth-2]=0, DelDB[DelDBDepth-1]=0로 DelDB를 재구성한다. 상기와 같은 과정으로 I=2 ~ i=DelDBDepth-3 까지의 DelDB를 재구성한다. 그리고 상기 i=DelDBDepth-2이면, 236단계 - 238단계에서 DelDBcnt=DelDBcnt-(DelDBDepth-1)로 하고, DelDB[0]=DelDB[DelDBDepth-1], DelDB[1]=0, --- ,DelDB[DelDBDepth-1]=0으로 DelDB를 재구성한다. 또한 상기 i=DelDBDepth-1면, 240단계-242단계에서 DelDBcnt=DelDBcnt-DelDBDepth로 하고, DelDB[0]=0, DelDB[1]=0, --- ,DelDB[DelDBDepth-1]=0으로 DelDB를 재구성한다.In addition, if the condition of Que-msgID = DelDB [i] .msgID Que_SMLASideID = DelDB [i] .side is satisfied, it is detected in step 220 and the process proceeds to step 226. At this time, if i is 0, DelDBcnt = DelDBcnt-1 is performed while performing steps 228 and 230, Del [0] = DelDB [1], Del [1] = DelDB [2] --- DelDB [DelDBDepth-2] == DelDB [DelDBDepth-1], DelDB [DelDBDepth-1] = DelDB [DelDBDepth-0] Rebuild DelDB. If i is 1, DelDBcnt = DelDBcnt-2 is performed while performing steps 232 and 234, Del [0] = DelDB [2], Del [1] = DelDB [3] --- DelDB [DelDBDepth-3] Rebuild DelDB with = DelDB [DelDBDepth-1], DelDB [DelDBDepth-2] = 0, and DelDB [DelDBDepth-1] = 0. Reconfigure DelDB from I = 2 to i = DelDBDepth-3 as above. If i = DelDBDepth-2, DelDBcnt = DelDBcnt- (DelDBDepth-1) in steps 236 to 238, and DelDB [0] = DelDB [DelDBDepth-1], DelDB [1] = 0, ---, Rebuild DelDB with DelDB [DelDBDepth-1] = 0. In the step i = DelDBDepth-1, step 240-242, DelDBcnt = DelDBcnt-DelDBDepth, DelDB [0] = 0, DelDB [1] = 0, ---, and DelDB [DelDBDepth-1] = 0. Rebuild DelDB

상기한 바와 같이 메시지 큐에 메시지가 저장되어 있으면(DelDBcnt0), 220단계에서 DelDB를 탐색하여 메시지의 속성과 일치하는 정보가 있는가 DB에 등록되어 있는가 확인한다. 이때 이때 메시지의 속성과 일치하는 조건(Que-msgID=DelDB[i].msgID Que_SMLASideID=DelDB[i].side)의 정보가 저장되어 있으면, 이는 중복 메시지로 판단하여 처리하지 않는다. 이 경우 소프트웨어는 226단계 - 242단계를 수행하여 DelDB의 정보를 재궁하는 일을 수행한다. 상기 DelDB[0]에 등록된 내용이 가장 오래전에 처리된 메시지의 중복 메시지를 의미한다. 대부분의 정상적인 시스템 동작하에서 중복 메시지는 대부분 DelDB[0] 값과 같게된다. 상기 소프트웨어는 DelDB[1] 이하의 DelDB 정보를 한 인덱스씩 앞으로 이동시켜 다음 메시지 처리에 이용하기 위한 DelDB의 재구성을 한다.If the message is stored in the message queue as described above (DelDBcnt0), in step 220, DelDB is searched to determine whether there is information that matches the attribute of the message or is registered in the DB. At this time, if information of the condition (Que-msgID = DelDB [i] .msgID Que_SMLASideID = DelDB [i] .side) that matches the attribute of the message is stored, it is determined as a duplicate message and is not processed. In this case, the software performs steps 226 to 242 to reconstruct DelDB information. The content registered in DelDB [0] means a duplicate message of a message processed longest. Under most normal system operation, duplicate messages will most likely be equal to the DelDB [0] value. The software moves DelDB information below DelDB [1] forward by one index to reconstruct DelDB for use in subsequent message processing.

또한 244단계에서 메시지 큐에 저장된 메시지의 개수가 DelDB에 등록될 수 있는 메시지의 수와 동일(DelDBcnt=DelDBDepth)한가 검사한다. 이때 DelDBcnt=DelDBDepth이면, 246단계에서 DelDB[0]=DelDB[1], DelDB[1]=DelDB[2] --- DelDB[DelDBDepth-2]=DelDB[DelDBDepth-1]로 DelDB를 재구성하고, 248단계에서 DelDB[DelDBDepth-1].msgID=Que_msgID로 설정한다. 이후 250단계에서 Que_SMLASideID를 검사하여 수신된 메시지가 어떤 SMLA에서 발생된 것인가 검사한다. 이때 상기 Que_SMLASideID가 0이면 상기 SMLA-A에서 수신된 메시지임을 감지하고 252단계에서 DelDB[DelDBDepth-1].side=1로 한다. 또한 상기 Que_SMLASideID가 1이면 상기 SMLA-B에서 수신된 메시지임을 감지하고 254단계에서 DelDB[DelDBDepth-1].side=0로 한다. 상기 252단계 또는 254단계를 수행한 후, 256단계에서 메시지의 Que-msgID 값에 따라 해당 작업을 수행한 후 종료한다.In operation 244, the number of messages stored in the message queue is equal to the number of messages that can be registered in DelDB (DelDBcnt = DelDBDepth). If DelDBcnt = DelDBDepth, in step 246, DelDB reconstructs DelDB with DelDB [0] = DelDB [1], DelDB [1] = DelDB [2] --- DelDB [DelDBDepth-2] = DelDB [DelDBDepth-1], In step 248, DelDB [DelDBDepth-1] .msgID = Que_msgID is set. In step 250, the Que_SMLASideID is checked to determine in which SMLA the received message originated. At this time, if Que_SMLASideID is 0, it is detected that the message has been received by the SMLA-A, and in step 252, DelDB [DelDBDepth-1] .side = 1. In addition, if Que_SMLASideID is 1, it detects that the message is received by the SMLA-B, and in step 254, DelDB [DelDBDepth-1] .side = 0. After performing step 252 or step 254, the operation is terminated after performing the corresponding operation according to the Que-msgID value of the message in step 256.

그러나 DelDBcnt≠DelDBDepth이면 244단계에서 이를 감지하고, 258단계에서 DelDB[DelDBcnt].msgID=Que_msgID로 설정한다. 이후 260단계에서 Que_SMLASideID를 검사하여 수신된 메시지가 어떤 SMLA에서 발생된 것인가 검사한다. 이때 상기 Que_SMLASideID가 0이면 상기 SMLA-A에서 수신된 메시지임을 감지하고 262단계에서 DelDB[DelDBDepth-1].side=1로 한다. 또한 상기 Que_SMLASideID가 1이면 상기 SMLA-B에서 수신된 메시지임을 감지하고 264단계에서 DelDB[DelDBDepth-1].side=0로 한다. 이후 상기 262단계 또는 264단계를 수행하고, 266단계에서 DelDBcnt=DelDBcnt+1로 설정한 후, 256단계에서 메시지의 Que-msgID 값에 따라 해당 작업을 수행한 후 종료한다.However, if DelDBcnt ≠ DelDBDepth, it is detected in step 244, and in step 258, DelDB [DelDBcnt] .msgID = Que_msgID is set. In step 260, Que_SMLASideID is checked to determine in which SMLA the received message originated. At this time, if Que_SMLASideID is 0, it is detected that the message has been received by the SMLA-A. In step 262, DelDB [DelDBDepth-1] .side = 1. In addition, if Que_SMLASideID is 1, it is detected that the message has been received by the SMLA-B, and in step 264, DelDB [DelDBDepth-1] .side = 0. Thereafter, step 262 or 264 is performed, and in step 266, DelDBcnt = DelDBcnt + 1 is set. In step 256, the corresponding operation is performed according to the Que-msgID value of the message and then terminated.

상기 처리 대상 메시지가 DelDB[i](i≠0)의 내용과 같은 경우는 i 이전의 중복 메시지들은 모두 유실되어 수신되지 못한 경우에 해당한다. 이런 경우, 소프트웨어는 상기한 바와 같이 DelDB를 재구성한다. 만약 처리 대상 메시지가 DelDB 탐색 결과 DelDB에 등록되지 않았거나 DelDBcnt가 0인 경우, 중복 메시지가 아니라 선행 메시지가 되므로 이 메시지는 처리되어 진다. 상기 메시지를 처리하기 전에 소프트웨어는 이후에 처리 대상이 될 중복 메시지의 속성(msgID side)을 DelDB에 등록시킨다.When the message to be processed is the same as the content of DelDB [i] (i ≠ 0), all the duplicate messages before i are lost and are not received. In this case, the software reconfigures DelDB as described above. If the message to be processed is not registered in DelDB or DelDBcnt is 0 as a result of DelDB search, this message is processed because it is a preceding message instead of a duplicate message. Before processing the message, the software registers the attribute (msgID side) of the duplicate message to be processed later in DelDB.

상기 DelDBDepth 값은 DelDB에 등록 가능한 총 메시지의 개수로 이 값의 설정에 따라 수신 메시지가 다르게 해석된다. 상기 DelDBDepth가 n임은 시스템 특성 상 중복 메시지의 수신이 n 메시지 지연 까지 가능함을 내포한다. 예를들어 DelDBDepth가 3이고 수신된 메시지의 순서가 100A, 200A, 300B, 100B라고 하자. 그러면 상기 100A에서 100은 msgID를 의미하고 A는 수신 SMLA side를 의미한다. 이런 경우 상기 300B 까지 처리된 후의 DelDB의 내용은 DelDB[0]=100B, DelDB{1]=200B, DelDB[2]=300A가 된다. 그리고 다음 처리 대상 메시지 100B는 DelDB에 등록되어 있는 메시지로 중복 메시지로 판단되어 처리되지 않는다. 즉, 선행 메시지(100A) 수신 후 1메세지 내지 3메세지 지연 후 수신된 동일 속성의 메시지는 중복 메시지로 간주된다. 반면 상기의 예에서 DelDBDepth가 2라라면 300B 까지 처리된 후의 DelDB 내용은 DelDB[0]=200B, DelDB[1]=300A가 되며, 이후의 메시지 100B는 상기 DelDB에 저장되어 있지 않으므로 처리되게된다. 즉, 100A와 100B는 중복 메시지가 아닌 다른 메시지로 간주되어 처리된다.The DelDBDepth value is the total number of messages that can be registered in DelDB, and the received message is interpreted differently according to the setting of this value. The DelDBDepth of n implies that reception of duplicate messages is possible up to n message delays due to system characteristics. For example, suppose DelDBDepth is 3 and the order of received messages is 100A, 200A, 300B, 100B. Then, in 100A, 100 means msgID and A means receiving SMLA side. In this case, the contents of DelDB after the processing up to 300B are DelDB [0] = 100B, DelDB {1] = 200B, and DelDB [2] = 300A. The next message 100B to be processed is a message registered in DelDB, which is determined as a duplicate message and is not processed. That is, a message of the same attribute received after 1 to 3 message delays after the preceding message 100A is regarded as a duplicate message. On the other hand, if DelDBDepth is 2 in the above example, the content of DelDB after processing up to 300B becomes DelDB [0] = 200B, DelDB [1] = 300A, and subsequent message 100B is processed because it is not stored in DelDB. In other words, 100A and 100B are treated as messages other than duplicate messages.

상술한 바와 같이 본 발명은 듀얼 엑티브 방식을 사용하는 이중화 장치에서 IPC 메시지를 처리할 시 메시지의 중복성 여부를 정확하게 판별하여 메시지의 중복 처리를 방지한다. 상기와 같이 메시지의 불필요한 중복 처리를 방지하므로써 프로세서의 효율적인 동작을 가능케하며, 또한 이후에 수신된 다른 IPC 메시지들의 대기 지연을 최소화하여 신속한 처리를 보장해주는 이점이 있다.As described above, the present invention accurately determines whether a message is redundant when processing an IPC message in a duplexing device using a dual active method, thereby preventing duplicate processing of the message. By preventing unnecessary duplication of the message as described above, it is possible to efficiently operate the processor, and also has the advantage of minimizing the waiting delay of other IPC messages received later to ensure the rapid processing.

Claims (2)

듀얼 액티브 방식을 사용하는 이중화 장치의 프로세서 간 통신시 이중 처리를 방지하는 방법에 있어서,What is claimed is: 1. A method of preventing dual processing in interprocessor communication of a duplexing device using a dual active method. 현재 수신된 메시지의 종류 및 전송 프로세서의 식별 정보와 최근 처리된 소정 수의 메시지들의 종류 및 전송 프로세서서의 식별정보들 비교하여 메시지의 속성을 분석한 후, 동일한 메시지 속성일 시 현재 수신된 메시지를 중복 메시지로 판단하여 처리하지 않음을 특징으로 하는 프로세서 간 통신시 이중 처리를 방지하는 방법The message property is analyzed by comparing the type of the currently received message and the identification information of the transmission processor with the type of the recently processed predetermined number of messages and the identification information of the transmission processor. Method for preventing double processing in inter-processor communication, characterized in that it is not determined as a duplicate message and processed 듀얼 액티브 방식을 사용하는 이중화 장치의 프로세서 간 통신시 이중 처리를 방지하는 방법에 있어서,What is claimed is: 1. A method of preventing dual processing in interprocessor communication of a duplexing device using a dual active method. 메시지 큐를 분석하여 선두 메시지의 메시지 종류 및 전송측 프로세서 식별코드을 읽는 과정과,Analyzing the message queue and reading the message type of the first message and the identification code of the transmitting processor; 상기 메시지의 종류 및 전송 프로세서의 식별 정보와 최근 처리된 소정 수의 메시지들의 종류 및 전송 프로세서서의 식별정보들 비교하여 메시지의 속성을 분석한 후 중복 메시지인가 검사하는 과정과,Comparing the type of the message and the identification information of the transmission processor with a predetermined number of recently processed messages and the identification information of the transmission processor, analyzing the property of the message, and then checking whether the message is a duplicate message; 상기 검사과정에서 동일한 메시지 속성일 시 해당 메시지를 처리하지 않고 데이터 베이스를 재구성한 후 종료하는 과정과,When reconfiguring the database without processing the corresponding message when the same message attribute is in the checking process and ending; 상기 검사과정에서 상이한 메시지 속성일 시 해당 메시지를 처리하고 상기 데이터 베이스에 등록하여 재구성한 후 종료하는 과정으로 이루어짐을 특징으로 하는 프로세서 간 통신시 이중 처리를 방지하는 방법The method of preventing double processing during inter-processor communication, characterized in that the process of processing the corresponding message when the different message attributes in the checking process, registered in the database, reconfigured and terminated.
KR1019970043809A 1997-08-30 1997-08-30 How to prevent duplication of interprocessor messages due to board duplication KR19990020349A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970043809A KR19990020349A (en) 1997-08-30 1997-08-30 How to prevent duplication of interprocessor messages due to board duplication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970043809A KR19990020349A (en) 1997-08-30 1997-08-30 How to prevent duplication of interprocessor messages due to board duplication

Publications (1)

Publication Number Publication Date
KR19990020349A true KR19990020349A (en) 1999-03-25

Family

ID=66038547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970043809A KR19990020349A (en) 1997-08-30 1997-08-30 How to prevent duplication of interprocessor messages due to board duplication

Country Status (1)

Country Link
KR (1) KR19990020349A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593474B1 (en) * 1998-12-17 2006-07-03 에스케이 텔레콤주식회사 Message re-transmission method and repetition message processing method of mobile station using it on communication network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593474B1 (en) * 1998-12-17 2006-07-03 에스케이 텔레콤주식회사 Message re-transmission method and repetition message processing method of mobile station using it on communication network

Similar Documents

Publication Publication Date Title
US6886107B2 (en) Method and system for selecting a master controller in a redundant control plane having plural controllers
US6202170B1 (en) Equipment protection system
CN111367983A (en) Database access method, system, device and storage medium
JPH0668041A (en) Computer system
GB2284962A (en) Network system
US6457146B1 (en) Method and apparatus for processing errors in a computer system
KR19990020349A (en) How to prevent duplication of interprocessor messages due to board duplication
CN109189699B (en) Multi-server communication method, system, intermediate controller and readable storage medium
US7724646B2 (en) System and method for implementing service switching
JP3730545B2 (en) Service control application execution method and system
CN109254795B (en) Parallel control method and electronic equipment
JP4572138B2 (en) Server apparatus, server system, and system switching method in server system
CN112511522A (en) Method, device and equipment for reducing memory occupation in detection scanning
WO2022022446A1 (en) Log printing method, device and system
KR100229426B1 (en) Apparatus for controlling duplexing for ipc node board
CN114710403B (en) Data scheduling method, device, equipment, medium and program product
US11652683B2 (en) Failure notification system, failure notification method, failure notification device, and failure notification program
KR930010291B1 (en) Dual systems
CN115174708B (en) Message receiving and information determining method, device, exchange chip, equipment and system
KR100663432B1 (en) Method for analyzing of v5.2 protocol message in exchanging system and apparatus thereof
KR100191678B1 (en) Inspection method of network for duplicating communication network
KR100316841B1 (en) Method for restarting an agent and apparatus thereof
CN115004160A (en) Data processing method and device, processing equipment and data storage system
KR100239062B1 (en) Method for reporting state of dual board
KR100350456B1 (en) Method for recovering and checking ipc error on inter processor communication in a exchange

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid