KR20010090636A - Real time network communication method and system - Google Patents
Real time network communication method and system Download PDFInfo
- Publication number
- KR20010090636A KR20010090636A KR1020000018557A KR20000018557A KR20010090636A KR 20010090636 A KR20010090636 A KR 20010090636A KR 1020000018557 A KR1020000018557 A KR 1020000018557A KR 20000018557 A KR20000018557 A KR 20000018557A KR 20010090636 A KR20010090636 A KR 20010090636A
- Authority
- KR
- South Korea
- Prior art keywords
- area
- memory
- data
- network communication
- reflective
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 238000004891 communication Methods 0.000 title claims abstract description 76
- 230000015654 memory Effects 0.000 claims abstract description 161
- 230000008569 process Effects 0.000 claims abstract description 73
- 230000005540 biological transmission Effects 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 45
- 230000003287 optical effect Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 16
- 230000006855 networking Effects 0.000 description 5
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D53/00—Separation of gases or vapours; Recovering vapours of volatile solvents from gases; Chemical or biological purification of waste gases, e.g. engine exhaust gases, smoke, fumes, flue gases, aerosols
- B01D53/34—Chemical or biological purification of waste gases
- B01D53/74—General processes for purification of waste gases; Apparatus or devices specially adapted therefor
- B01D53/86—Catalytic processes
- B01D53/88—Handling or mounting catalysts
- B01D53/885—Devices in general for catalytic purification of waste gases
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61L—METHODS OR APPARATUS FOR STERILISING MATERIALS OR OBJECTS IN GENERAL; DISINFECTION, STERILISATION OR DEODORISATION OF AIR; CHEMICAL ASPECTS OF BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES; MATERIALS FOR BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES
- A61L9/00—Disinfection, sterilisation or deodorisation of air
- A61L9/16—Disinfection, sterilisation or deodorisation of air using physical phenomena
- A61L9/18—Radiation
- A61L9/20—Ultraviolet radiation
- A61L9/205—Ultraviolet radiation using a photocatalyst or photosensitiser
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D2255/00—Catalysts
- B01D2255/20—Metals or compounds thereof
- B01D2255/207—Transition metals
- B01D2255/20707—Titanium
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D2255/00—Catalysts
- B01D2255/80—Type of catalytic reaction
- B01D2255/802—Photocatalytic
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D2259/00—Type of treatment
- B01D2259/80—Employing electric, magnetic, electromagnetic or wave energy, or particle radiation
- B01D2259/804—UV light
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01J—CHEMICAL OR PHYSICAL PROCESSES, e.g. CATALYSIS OR COLLOID CHEMISTRY; THEIR RELEVANT APPARATUS
- B01J21/00—Catalysts comprising the elements, oxides, or hydroxides of magnesium, boron, aluminium, carbon, silicon, titanium, zirconium, or hafnium
- B01J21/06—Silicon, titanium, zirconium or hafnium; Oxides or hydroxides thereof
- B01J21/063—Titanium; Oxides or hydroxides thereof
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01J—CHEMICAL OR PHYSICAL PROCESSES, e.g. CATALYSIS OR COLLOID CHEMISTRY; THEIR RELEVANT APPARATUS
- B01J35/00—Catalysts, in general, characterised by their form or physical properties
- B01J35/30—Catalysts, in general, characterised by their form or physical properties characterised by their physical properties
- B01J35/39—Photocatalytic properties
Landscapes
- Chemical & Material Sciences (AREA)
- Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Environmental & Geological Engineering (AREA)
- Veterinary Medicine (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Animal Behavior & Ethology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Epidemiology (AREA)
- Biomedical Technology (AREA)
- Analytical Chemistry (AREA)
- General Chemical & Material Sciences (AREA)
- Oil, Petroleum & Natural Gas (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 네트워크 통신 방법 및 시스템에 관한 것으로, 특히, 네트워크에 연결된 호스트들이 실시간으로 동일한 데이터를 공유하여 호스트를 액세스할 수 있는 통신 방법 및 네트워크 시스템을 제공한다.The present invention relates to a network communication method and system, and more particularly, to a communication method and a network system in which hosts connected to a network share the same data in real time to access a host.
최근 들어 네트워크 기술이 발전함에 따라서, 화상 회의, 원격 학습, 네트워크 게임 등, 실시간으로 사용자들이 네트워크에 연결되어 상호 간에 음성 및 화상 데이터를 전송하고 공유하는 멀티미디어 네트워킹 (multimedia networking) 기술이 소개되어 점차 확산되어 가고 있다.In recent years, as network technology has evolved, multimedia networking technology has been introduced, which allows users to connect to a network in real time, such as video conferencing, distance learning, and network games, to transmit and share voice and video data with each other. Is going.
그런데, 멀티미디어 네트워킹 응용분야는 화상 및 음성, 정보 처리에서 발생하는 방대한 데이터를 고속으로 전송할 것을 요구하고 있으며, 과중한 네트워크 트래픽에도 불구하고 요구 수준 이상의 일정 전송 속도를 요구하고 있다. 또한, 네트워크에 연결되어 있는 다수의 호스트들이 동시에 실시간으로 데이터를 신속히 공유하는 것이 요구되고 있다.However, multimedia networking applications are demanding high-speed transmission of a large amount of data generated from video, audio, and information processing, and require a certain transmission speed higher than a required level despite heavy network traffic. In addition, multiple hosts connected to the network are required to quickly share data in real time at the same time.
현재 이용되고 있는 근거리 네트워크(local area network; LAN) 방식은 이더넷(ethernet), 토큰링(token ring), FDDI(fiber distributed data interface) 등의 초기 네트워킹 방식과, 90년대 중반부터 초기 네트워킹 방식을 응용 발전시킨 고속이더넷(fast Ethernet), 기가 비트 이더넷(gigabit ethernet)등이 사용되고 있다.Currently used local area network (LAN) method is applied to the initial networking method such as Ethernet, token ring, FDDI (fiber distributed data interface), and early networking method from the mid 90s Advanced Fast Ethernet and Gigabit Ethernet are being used.
IEEE 802.3x 표준을 구현하는 이더넷 네트워크는 버스(bus) 타입의 네트워크를 사용하며, 데이터 전송을 위해 CSMA/CD(carrier sense multiple access with collision detection) 방식을 사용한다.The Ethernet network implementing the IEEE 802.3x standard uses a bus type network and uses carrier sense multiple access with collision detection (CSMA / CD) for data transmission.
종래 기술에 따른 CSMA/CD 방식은 데이터를 전송하고자 하는 호스트가 데이터를 전송하기 위하여 다른 호스트가 데이터를 보내고 있는지 여부를 캐리어 패킷(carrier packet)을 발생시켜 확인하고, 데이터의 충돌이나, 다른 캐리어 패킷이 발견되면 정해진 시간 동안 전송을 중단하고, 정해진 시간 후에 다시 캐리어를 감지하여 전송을 재시도하는 방식이다.The CSMA / CD scheme according to the prior art generates a carrier packet to check whether a host to which data is to be transmitted is sending another data to transmit data, and a collision of data or another carrier packet is generated. If this is found, the transmission is stopped for a predetermined time, and after a predetermined time, the carrier is detected again to retry the transmission.
종래 기술에 따른 CSMA/CD 방식은 부하가 적은 경우, 또는 네트워크에 연결된 호스트의 수가 적은 경우에는 비교적 양호한 성능을 발휘하지만, 네트워크 부하가 일정 수준 이상으로 증가되면 급격히 그 성능이 떨어지는 단점이 있다.The CSMA / CD system according to the related art exhibits relatively good performance when the load is light or when the number of hosts connected to the network is low. However, when the network load is increased to a certain level or more, the CSMA / CD method has a shortcoming.
한편, 종래 기술에 따른 IEEE 802.5 표준 토큰링은 링(Ring) 타입의 네트워크로 구성되며, 데이터 전송 방식은 링을 따라 순환하는 프리 토큰(free token)에 호스트간에 전송할 데이터를 실어 비지 토큰(busy token)으로 변환하여 전송한다. 이어서, 전술한 비지 토큰이 목적 호스트에 도착하면 목적 호스트에 데이터를 복사하고, 다시 프리 토큰으로 변환하여 링 위를 순환하는 방식을 채용하고 있다.Meanwhile, the IEEE 802.5 standard token ring according to the prior art is composed of a ring-type network, and the data transmission method is a busy token by loading data to be transmitted between hosts in a free token circulating along the ring. ) And send it. Subsequently, when the above-mentioned busy token arrives at the destination host, a method of copying data to the destination host, converting it back into a free token, and circulating the ring is adopted.
따라서, 종래 기술에 따른 IEEE 802.5 표준 토큰링 방식은 부하 증가에 따른 네트워크 전송 속도의 영향을 완화시킬 수 있는 장점이 있다. 그러나, 종래 기술에 따른 토큰링 방식은 적은 부하에서도 전송 속도에 기본적 제한이 상존하는 단점이 있다.Therefore, the IEEE 802.5 standard token ring scheme according to the related art has an advantage of mitigating the effect of network transmission speed due to an increase in load. However, the token ring method according to the related art has a disadvantage in that a basic limit exists in transmission speed even under a small load.
전술한 종래 기술의 문제점을 보완하기 위해 기존의 이더넷 방식을 응용발전 시킨 고속 이더넷 및 기가 비트 이더넷 네트워크 방식이 소개되고 있으나, 근본적으로 이더넷 방식을 이용하기 때문에 이더넷이 갖는 네트워크 트래픽(network traffic) 폭주에 따른 전송 속도 저하의 문제를 해결하지는 못하고 있다.In order to supplement the above-mentioned problems of the prior art, high-speed Ethernet and Gigabit Ethernet network methods are introduced. It does not solve the problem of lowering the transmission rate.
이와 같은 종래 기술이 지니는 네트워크 트래픽 문제를 해결하기 위하여, 대한민국 특허 제10-1999-044866호에서는 데이터 통신 네트워크에서 폭주 제어를 제공하기 위한 방법 및 시스템에 대한 기술을 개시하고 있다. 그러나, 대한민국 특허 제10-1999-044866호에 개시된 기술은 이더넷에서 임의의 시간에 충돌에 의하여 전송을 중단한 호스트의 개수를 최소화하는 방법을 채용하고 있으므로, 여전히 네트워크 충돌에 의한 네트워크 지연 문제는 해결되지 못한 단점이 있다.In order to solve the network traffic problem of the prior art, Korean Patent No. 10-1999-044866 discloses a method and system for providing congestion control in a data communication network. However, the technique disclosed in Korean Patent No. 10-1999-044866 adopts a method of minimizing the number of hosts that stop transmission due to a collision at any time in Ethernet, and thus still solves the network delay problem caused by network collision. There is a drawback to this.
따라서, 종래 기술이 겪고 있는 트래픽 증가에 따른 네트워크 데이터 전송 속도의 저하 문제를 해결하고, 트래픽에 무관한 일정 전송 속도를 유지할 수 있는 새로운 네트워크 통신 방법 및 시스템의 출현이 요구되고 있다.Therefore, there is a need for the emergence of a new network communication method and system capable of solving the problem of lowering the network data transmission rate due to the increase in traffic experienced by the prior art and maintaining a constant transmission rate irrelevant to the traffic.
따라서, 본 발명의 제1 목적은 네트워크 통신에 있어서 네트워크 트래픽 부하에 관계없이 일정 전송 속도를 유지할 수 있는 네트워크 통신 방법 및 시스템을 제공하는데 있다.Accordingly, it is a first object of the present invention to provide a network communication method and system capable of maintaining a constant transmission rate regardless of network traffic load.
본 발명의 제2 목적은 상기 제1 목적에 부가하여, 멀티미디어 네트워킹에 있어서 신속하고 일정한 전송 속도를 갖는 네트워크 통신 방법 및 시스템을 제공하는데 있다.A second object of the present invention is to provide a network communication method and system having a fast and constant transmission speed in multimedia networking in addition to the first object.
본 발명의 제3 목적은 상기 제1 목적에 부가하여, 네트워크에 접속되어 있는 다수의 호스트에 거의 실시간으로 데이터를 공유할 수 있는 네트워크 통신 방법 및 시스템을 제공하는데 있다.It is a third object of the present invention to provide a network communication method and system capable of sharing data in real time to a plurality of hosts connected to a network in addition to the first object.
도1은 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터의 구성도.1 is a block diagram of a host computer constituting a network communication system according to the present invention.
도2a는 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터가 구비하고 있는 리플렉티브 메모리의 메모리 영역을 나타내는 도면.Fig. 2A is a diagram showing a memory area of the reflective memory included in the host computer constituting the network communication system according to the present invention.
도2b는 본 발명에 따른 리플렉티브 메모리의 메모리 영역을 할당하는 일 실시예를 나타낸 도면.Figure 2B illustrates one embodiment of allocating a memory region of a reflective memory in accordance with the present invention.
도3a는 본 발명의 제1 실시예에 따른 네트워크 통신 시스템의 시스템 구성도.3A is a system configuration diagram of a network communication system according to a first embodiment of the present invention.
도3b는 본 발명의 제1 실시예에 따른 네트워크 통신을 위한 초기 동작을 나타낸 도면.Fig. 3B is a diagram showing an initial operation for network communication according to the first embodiment of the present invention.
도3c는 본 발명에 따른 리플렉티브 메모리 라이브러리 내의 리플렉티브 메모리 장치를 초기화하는 함수의 작업 흐름을 나타낸 흐름도.Figure 3C is a flow diagram illustrating the workflow of a function to initialize a reflective memory device in a reflective memory library in accordance with the present invention.
도3d는 본 발명에 따른 리플렉티브 메모리 라이브러리를 이용하여 리플렉티브 메모리에 로컬 데이터 영역을 할당하는 흐름을 나타낸 흐름도.FIG. 3D is a flow diagram illustrating a flow of allocating a local data area to a reflective memory using a reflective memory library in accordance with the present invention. FIG.
도3e는 본 발명에 따른 리플렉티브 메모리 라이브러리를 이용하여 리플렉티브 메모리에 할당된 로컬 데이터 영역에 데이터를 저장 또는 독출하는 작업 흐름을 나타낸 흐름도.3E is a flow diagram illustrating a workflow for storing or reading data in a local data area allocated to the reflective memory using the reflective memory library in accordance with the present invention.
도3f는 본 발명의 제1 실시예에 따른 네트워크 통신 방법을 나타낸 흐름도.Fig. 3F is a flowchart showing a network communication method according to the first embodiment of the present invention.
도4a는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템의 시스템 구성도.4A is a system configuration diagram of a network communication system according to a second embodiment of the present invention.
도4b는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에서 사용될 수 있는 리플렉티브 메모리의 메모리 영역 할당의 양호한 실시 방법을 나타낸 도면.Figure 4B illustrates a preferred implementation method of memory area allocation of a reflective memory that can be used in a network communication system according to a second embodiment of the present invention.
도4c는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에서 사용될 수 있는 리플렉티브 메모리의 메모리 영역 할당의 또 다른 실시 방법을 나타낸 도면.Fig. 4C illustrates another embodiment of the memory area allocation of the reflective memory that can be used in the network communication system according to the second embodiment of the present invention.
<도면의 주요 부분에 대한 부호 설명><Description of the symbols for the main parts of the drawings>
100, 200 : 네트워크 통신 시스템을 구성하는 호스트 컴퓨터100, 200: host computer configuring a network communication system
110, 210 : 마이크로 프로세서110, 210: Microprocessor
120, 220 : 메인 메모리120, 220: main memory
130, 230 : 로컬 기억 수단(하드디스크)130, 230: Local storage means (hard disk)
140, 240 : 리플렉티브 메모리(reflective memory; RFM)140 and 240: reflective memory (RFM)
300 : 리플렉티브 메모리 데이터 송수신 수단(광 케이블)300: reflective memory data transmission and reception means (optical cable)
400 : 리플렉티브 메모리의 메모리 영역400: memory area of reflective memory
410 : 리플렉티브 메모리 장치 드라이버 사용 영역410: Reflective memory device driver usage area
420 : 베이스 레지스터(base register) 영역420: base register area
430 : 메타 데이터베이스(meta database) 영역430 meta database area
440 : 사용자 데이터 영역440: user data area
480 : 리플렉티브 메모리의 메모리 주소480: memory address of reflective memory
상기 목적을 달성하기 위하여, 본 발명은 복수 개의 호스트(host) 컴퓨터로 구성된 네트워크 통신 시스템에 있어서, 상기 복수 개의 호스트 컴퓨터는 네트워크 통신 (network communication)을 위해 필요한 프로세스(process)를 생성하는 마이크로프로세서(microprocessor), 프로세스가 생성하는 데이터를 저장 또는 독출할 수 있는 메인 메모리(main memory), 네트워크 통신을 통해 전송 받은 데이터 또는 전송해야 할 데이터를 저장 또는 독출할 수 있는 로컬 기억 수단(local memory unit), 데이터 송수신 포트(port)를 구비하고, 하드웨어적으로 데이터를 저장 또는 독출하는 기능을 구비한 리플렉티브 메모리(reflective memory; RFM), 상기 복수 개의 호스트 각각에 구비된 리플렉티브 메모리(RFM)의 데이터 송수신 포트에 연결되어 복수 리플렉티브 메모리에 저장된 내용을 실시간으로 동일하게 동기화시키는 리플렉티브 메모리 데이터 전송 수단을 포함한 네트워크 통신 시스템을 제공한다.In order to achieve the above object, the present invention is a network communication system consisting of a plurality of host (computer), the plurality of host computer is a microprocessor for creating a process (process) necessary for network communication (network communication) ( a microprocessor, main memory capable of storing or reading data generated by a process, local memory unit capable of storing or reading data received or transmitted through network communication, A reflective memory (RFM) having a data transmission / reception port and having a function of storing or reading data in hardware, and a reflective memory (RFM) provided in each of the plurality of hosts. Connected to the data transmission / reception port of the system to store the contents of multiple reflective memories in real time. Provide a network communication system, including the reflective memory means for transmitting data to be synchronized.
본 발명의 또 다른 목적을 달성하기 위하여, 복수 개의 호스트로 구성된 네트워크 통신 시스템에서 네트워크 통신을 하기 위한 방법에 있어서, 상기 복수 개의 호스트에 서버 프로세스(server process) 또는 클라이언트 프로세스 (client process)를 생성하는 단계, 상기 복수 개의 호스트에 장착된 리플렉티브 메모리의메모리 영역에 리플렉티브 메모리(reflective memory) 라이브러리(library)를 이용하여 로컬 데이터 영역(local data region)을 할당하는 단계, 상기 클라이언트 프로세스는 할당된 로컬 데이터 영역에 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계, 상기 서버 프로세스는 할당된 로컬 데이터 영역에서 상기 클라이언트 프로세스의 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하고 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계, 상기 클라이언트 프로세스는 할당된 로컬 데이터 영역에서 상기 서버 프로세스의 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하는 단계를 포함하는 네트워크 통신 방법을 제공한다.In order to achieve another object of the present invention, a method for network communication in a network communication system composed of a plurality of hosts, the method comprising: creating a server process (client process) or a client process (client process) on the plurality of hosts Allocating a local data region to a memory region of a reflective memory mounted in the plurality of hosts by using a reflective memory library, wherein the client process allocates a local data region. Writing a message to a local data area using a reflective memory library, wherein the server process reads a message of the client process using a reflective memory library from an allocated local data area and reflects a response message. Memory live The step of writing by using the Li, the client process provides the communication network comprises a reading out step by using a reflective memory library, the response message of the server process in the local data area allocated.
이하, 첨부 도면 도1 내지 도4를 참조하여 본 발명에 따른 실시간 네트워크 통신 방법 및 시스템의 양호한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of a real-time network communication method and system according to the present invention will be described in detail with reference to the accompanying drawings.
도1은 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터의 구성도이다. 도1을 참조하면, 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터(100)는 네트워크 통신을 위해 필요한 프로세스를 생성하는 마이크로 프로세서(110)와 프로세스가 생성하는 데이터를 저장할 수 있는 메인 메모리(120), 네트워크 통신을 통해 전송 받은 데이터 또는 전송해야 할 데이터를 저장하고 있는 로컬 기억 수단으로서 하드디스크(130)를 구비하고 있다.1 is a block diagram of a host computer constituting a network communication system according to the present invention. Referring to FIG. 1, the host computer 100 constituting the network communication system according to the present invention includes a microprocessor 110 for generating a process required for network communication and a main memory 120 for storing data generated by the process. ), A hard disk 130 is provided as a local storage means for storing the data received through network communication or the data to be transmitted.
또한, 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터(100)는 마이크로 프로세서(110), 메인 메모리(120), 하드디스크(130) 이외에 리플렉티브 메모리(reflective memory; RFM; 140)를 구비하는 것을 특징으로 한다.In addition, the host computer 100 constituting the network communication system according to the present invention includes a reflective memory (RFM) 140 in addition to the microprocessor 110, the main memory 120, and the hard disk 130. Characterized in that.
본 발명의 바람직한 실시예로 사용되는 RFM(140)은 호스트 컴퓨터(100)의 PCI 슬롯에 장착되어 사용될 수 있으며, 데이터를 송수신할 수 있는 송수신 포트를 구비하여 데이터 송수신 수단(300)과 연결될 수 있다. 또한, 송수신 포트에 연결된 데이터 송수신 수단(300)을 이용하여, 하드웨어적으로 RFM(140)에 연결된 다른 RFM과 동일한 메모리 구조를 가질 수 있다.The RFM 140 used as a preferred embodiment of the present invention may be mounted and used in a PCI slot of the host computer 100, and may be connected to the data transmission / reception means 300 having a transmission / reception port for transmitting and receiving data. . In addition, the data transmission / reception unit 300 connected to the transmission / reception port may have the same memory structure as other RFMs connected to the RFM 140 in hardware.
도2a는 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터에 장착된 RFM의 메모리 영역을 나타낸 도면이다. 도2a를 참조하면, RFM(140)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다.2A is a diagram showing a memory area of an RFM mounted in a host computer constituting a network communication system according to the present invention. Referring to FIG. 2A, a memory area 400 and a memory address 480 of the RFM 140 are shown.
RFM(140)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터(base register) 영역(420), 메타 데이터베이스(metadatabase) 영역(430), 사용자 데이터 영역(440)으로 구성될 수 있다.The memory area 400 of the RFM 140 may include an RFM device driver use area 410, a base register area 420, a metadatabase area 430, and a user data area 440. Can be.
본 발명의 바람직한 실시예로서, RFM 장치 드라이버 사용 영역(410)은 RFM(140)의 메모리 영역(400) 0x0000번지부터 0x0040번지까지의 64 바이트(byte) 영역이 될 수 있으며, RFM 장치 드라이버가 RFM(140)의 구동을 위해 사용하는 데이터를 저장할 수 있다.In a preferred embodiment of the present invention, the RFM device driver usage area 410 may be a 64 byte area from 0x0000 to 0x0040 of the memory area 400 of the RFM 140, and the RFM device driver may be an RFM. Data used for driving the 140 may be stored.
본 발명에 따른 RFM(140)의 베이스 레지스터 영역(420)은 RFM 장치 드라이버 영역(410) 이후 0x0044 번지까지의 영역으로, RFM(140)의 메모리 영역 중 사용자가 사용 가능한 영역의 시작 주소를 저장할 수 있다.The base register area 420 of the RFM 140 according to the present invention is an area from the RFM device driver area 410 to the address 0x0044, and may store a start address of a user available area of the memory area of the RFM 140. have.
또한, 메타데이터베이스 영역(430)은 베이스 레지스터 영역(420) 이후 0x04B4 바이트만큼의 크기를 점유하는 영역으로, 사용자 데이터 영역(440) 내에 저장될 데이터에 할당되는 로컬 데이터 영역의 정보를 저장할 수 있다. 본 발명의 바람직한 실시예로서, 로컬 데이터 영역 정보는 해당 데이터를 RFM(140)에 저장하기 위하여 할당되는 로컬 데이터 영역의 시작 주소(reflective memory address identifier; RfmID)와 할당된 로컬 데이터 영역의 사이즈(reflective memory size; RfmSize), 해당 데이터를 구분할 수 있도록 해주는 구분자(reflective memory key; RfmKey) 등을 포함 할 수 있다.In addition, the metadata area 430 is an area occupying a size of 0x04B4 bytes after the base register area 420 and may store information of a local data area allocated to data to be stored in the user data area 440. In a preferred embodiment of the present invention, the local data area information includes a reflective memory address identifier (RfmID) of the local data area allocated for storing the corresponding data in the RFM 140 and the size of the allocated local data area. memory size; RfmSize), and a delimiter to distinguish the data.
본 발명에 따른 RfmKey의 바람직한 실시예로서, 마이크로 프로세서(110)에서 생성된 프로세스가 데이터를 RFM(140)저장할 경우에 결정할 수 있으며, '0'부터 RFM(140)의 메모리 영역(400)에 할당할 수 있는 로컬 데이터 영역의 최대 개수를 나타내는 정수 사이에서 결정될 수 있다.As a preferred embodiment of the RfmKey according to the present invention, a process generated in the microprocessor 110 may determine when the data is stored in the RFM 140, and is allocated from '0' to the memory area 400 of the RFM 140. Can be determined between integers representing the maximum number of local data areas that can be.
도2b는 본 발명에 따른 RFM의 메모리 영역을 할당하는 일 실시예를 나타낸 도면이다. 도2b를 참조하면, 사용자 데이터 영역(440) 중 0x04f8 번지부터 0x09AC번지는 이미 데이터 저장을 위한 할당된 로컬 데이터 영역(441)이며, 0x09AD 번지 이후는 미할당 영역(442)이다. 따라서, 베이스 레지스터 영역(420)에는 RFM(140) 메모리 영역(400) 중 사용 가능한 메모리 영역의 시작 주소(425)인 0x09AD 값이 저장되어 있다.2B illustrates an embodiment of allocating a memory area of an RFM according to the present invention. Referring to FIG. 2B, addresses 0x04f8 to 0x09AC in the user data area 440 are already allocated local data areas 441 for data storage, and after address 0x09AD, they are unallocated areas 442. Accordingly, the base register region 420 stores a value of 0x09AD, which is a start address 425 of an available memory region of the RFM 140 memory region 400.
또한, 메타 데이터베이스 영역(430)에는 데이터를 위해 이미 할당된 로컬 데이터 영역(441)의 로컬 데이터 영역 정보(450)인 RfmKey(451), RfmID(452), RfmSize(453)가 저장되어 있다. 즉, RfmID(452)값으로는 데이터 저장을 위해 할당된 로컬 데이터 영역(441)의 시작 주소인 0x04F8 값이 저장되어 있으며, 또한RfmSize(452)값으로는 로컬 데이터 영역(441)의 크기인 0x04B4 값이 저장되어 있다.In addition, the meta database area 430 stores RfmKey 451, RfmID 452, and RfmSize 453, which are local data area information 450 of the local data area 441, which is already allocated for data. That is, the RfmID 452 value stores 0x04F8, which is the start address of the local data area 441 allocated for data storage, and the RfmSize 452 value, 0x04B4, which is the size of the local data area 441. The value is stored.
따라서, 마이크로 프로세서(110)가 생성한 프로세스에 의해 정해진 RfmKey(451) 값만 알면, RfmKey(451) 값을 가지고 메타데이터베이스 영역(430)을 검색하여 해당 RfmID(452)와 RfmSize(453)를 얻어 RFM(140)의 로컬 데이터 영역(441)에 데이터를 저장 또는 독출할 수 있다.Accordingly, if only the RfmKey 451 value determined by the process generated by the microprocessor 110 is known, the metadata area 430 is searched with the RfmKey 451 value to obtain the corresponding RfmID 452 and RfmSize 453 to obtain the RFM. Data may be stored or read in the local data area 441 of 140.
도3a는 본 발명의 제1 실시예에 따른 네트워크 통신 시스템의 시스템 구성도이다. 도3a를 참조하면, 본 발명의 제1 실시예에 따른 네트워크 통신 시스템을 구성하는 제1 호스트(100)와 제2 호스트(200)는 각각 PCI 슬롯에 RFM(140,240)을 장착하고 있으며, RFM(140, 240)의 송수신 포트에 데이터 송수신 수단(300)을 연결하므로 서로 접속하고 있다.3A is a system configuration diagram of a network communication system according to a first embodiment of the present invention. Referring to FIG. 3A, the first host 100 and the second host 200 constituting the network communication system according to the first embodiment of the present invention are equipped with RFMs 140 and 240 in PCI slots, respectively. Since the data transmission and reception means 300 are connected to the transmission and reception ports of the 140 and 240, the connection is performed.
본 발명의 바람직한 실시예로서, 데이터 송수신 수단(300)은 광 케이블(300)이 사용될 수 있으며, 사용된 광 케이블(300)은 나노초(nano-second) 이하의 빠른 전송 속도로 데이터를 전송할 수 있다. 따라서, 제1 호스트(100)에 장착된 RFM(140)에 기입되는 데이터는 기입됨과 동시에 자동으로 광 케이블(300)을 통하여 제2 호스트(200)에 장착된 RFM(240)에 전송되어 기입되므로, 거의 실시간(real time)으로 RFM(140,240)의 데이터가 동기화(synchronize)될 수 있다.As a preferred embodiment of the present invention, the data transmission and reception means 300 may be an optical cable 300, the optical cable 300 used can transmit data at a high transmission rate of less than nanoseconds (nano-second) . Therefore, data written to the RFM 140 mounted on the first host 100 is written and automatically transmitted to the RFM 240 mounted on the second host 200 through the optical cable 300. The data of the RFMs 140 and 240 can be synchronized in near real time.
도3b는 본 발명의 제1 실시예에 따른 네트워크 통신을 위한 초기 동작을 나타낸 도면이다. 도3b를 참조하면, 제1 호스트(100)와 제2 호스트(200)가 도시되어 있으며, 각 호스트(100, 200)에 장착된 RFM(140, 240)은 광 케이블(300)을 통해 접속되어 있다. 본 발명에 따른 바람직한 실시예로서, 제1 호스트(100)는 서버가 될 수 있으며, 제2 호스트(200)는 클라이언트가 될 수 있다.3B is a diagram showing an initial operation for network communication according to the first embodiment of the present invention. Referring to FIG. 3B, a first host 100 and a second host 200 are illustrated, and RFMs 140 and 240 mounted on each host 100 and 200 are connected through an optical cable 300. have. In a preferred embodiment according to the present invention, the first host 100 may be a server and the second host 200 may be a client.
본 발명에 따른 바람직한 실시예를 따르면, 각 호스트(100, 200)의 마이크로 프로세서(110, 210)는 각각 서버 프로세스(115)와 클라이언트 프로세스(215)를 생성하고, RFM 라이브러리를 이용하여 RFM(140, 240)에 RfmKey 값을 가지고, RFM(140, 240)의 메모리 영역(400) 해당 RfmKey에 대한 로컬 데이터 영역을 할당한다.According to a preferred embodiment of the present invention, the microprocessors 110 and 210 of each host 100 and 200 generate a server process 115 and a client process 215, respectively, and use an RFM library using the RFM library. , 240 has an RfmKey value, and the memory area 400 of the RFMs 140 and 240 allocates a local data area for the corresponding RfmKey.
본 발명에 따른 바람직한 실시예로서, RFM 라이브러리는 RFM(140, 240) 장치를 오픈하는(RfmOpen) 함수, RFM(140, 240) 장치를 클로즈하는(RfmClose) 함수, RFM(140, 240) 장치를 초기화하는(RfmInit) 함수, 프로세스가 설정한 RfmKey 값을 가지고 RFM(140, 240)의 메모리 영역의 RfmID 값을 얻어내는(RfmGet) 함수, RfmID 값을 가지고 RfmID 값을 시작 주소로 하는 RFM(140, 240)의 메모리 영역을 가리키는 메인 메모리(120) 상의 포인터를 얻어내는(RfmAttach) 함수, 특정 RfmKey 값의 세마퍼(semaphore) 잠금 상태를 설정하는(RfmSemLock) 함수, 특정 RfmKey 값의 세마퍼 잠금 상태를 해제하는(RfmSemUnlock) 함수, RFM(140, 240)에 저장된 데이터의 내용을 강제적으로 동기화시키는(RfmSync) 함수를 포함할 수 있다.In a preferred embodiment of the present invention, the RFM library includes a function of opening the RFM 140, 240 device (RfmOpen), a function of closing the RFM 140, 240 device (RfmClose), an RFM 140, 240 device. Function to initialize (RfmInit), get RfmID value of memory area of RFM (140, 240) with RfmKey value set by process (RfmGet), RFM (140, with RfmID value as starting address) A function that obtains a pointer on main memory 120 pointing to a memory area of 240 (RfmAttach), sets a semaphore lock state for a specific RfmKey value, and sets the semaphore lock state for a specific RfmKey value. The RfmSemUnlock function may include a function of forcibly synchronizing the contents of data stored in the RFMs 140 and 240 (RfmSync).
본 발명의 양호한 실시예로서, RfmSync 함수는 서버(100)에 장착된 RFM(140)의 메모리 영역(400)에 저장된 데이터를 다시 한번 RFM(140)에 기입하므로, 각각의 RFM(140, 240)의 메모리 영역(400)에 저장된 데이터를 강제적으로 동기화 시킬 수 있다.In a preferred embodiment of the present invention, the RfmSync function writes data stored in the memory area 400 of the RFM 140 mounted on the server 100 to the RFM 140 once again, so that the respective RFMs 140, 240 The data stored in the memory area 400 may be forcibly synchronized.
본 발명의 양호한 실시예로서, RfmSemLock 함수와 RfmSemUnlock 함수는 세마퍼의 상태를 변화시키는 함수로, 각 호스트(100, 200)의 마이크로프로세서(110, 210)가 동시에 RFM(140,240)의 동일한 메모리 영역을 액세스하는 것을 방지하고, 데이터를 저장 또는 독출할 경우 이벤트 신호를 발생시키기 위하여 사용될 수 있다.In a preferred embodiment of the present invention, the RfmSemLock function and the RfmSemUnlock function are functions for changing the state of the semaphore, so that the microprocessors 110 and 210 of each host 100 and 200 simultaneously share the same memory area of the RFM 140 and 240. It can be used to prevent access and to generate event signals when storing or reading data.
즉, 제1 호스트(100)에서 RFM(140, 240)에 데이터를 저장 또는 독출하기 전에 RfmSemLock 함수를 실행하여 해당 데이터의 RfmKey에 대한 세마퍼(semaphore)를 잠금 상태로 설정한 후 데이터를 저장 또는 독출하여, 제2 호스트(200)가 해당 RfmKey 값을 가지고 RFM(140, 240)의 동일한 메모리 영역에 액세스하는 것을 방지하여 데이터의 오류가 발생하지 않도록 한다.That is, before the first host 100 stores or reads data in the RFMs 140 and 240, the RfmSemLock function is executed to set a semaphore for the RfmKey of the corresponding data and then store the data. The second host 200 is prevented from accessing the same memory area of the RFMs 140 and 240 with the corresponding RfmKey value so that no data error occurs.
또한, 제1 호스트(100)가 데이터의 저장 또는 독출이 끝나면 RfmSemUnlock 함수를 실행하여 세마퍼(semaphore) 잠금 상태를 해제하며, 제2 호스트(200)가 RFM(140, 240)의 해당 영역을 액세스할 수 있게 한다. 또한, 제2 호스트(200)는 특정 RfmKey에 대한 세마퍼(semaphore)의 잠금 상태가 변화하는 것을 감지하여, 제1 호스트가 RFM(140, 240)을 액세스 한 것을 인식할 수 있다.In addition, when the first host 100 finishes storing or reading data, the RfmSemUnlock function is executed to release the semaphore lock state, and the second host 200 accesses a corresponding area of the RFMs 140 and 240. Make it possible. In addition, the second host 200 may detect that the lock state of the semaphore for the specific RfmKey changes, and recognize that the first host has accessed the RFMs 140 and 240.
도3c는 본 발명에 따른 RFM 라이브러리 내의 RFM 장치를 초기화는 함수의 작업 흐름을 나타낸 흐름도이다. 도3c를 참조하면, RFM(140, 240) 장치를 초기화하는 RfmInit 함수는 RFM(140, 240)의 메모리 영역(400)을 각 호스트(100, 200)의 메인 메모리(120, 220)의 메모리 영역에 매핑시키고(단계 S501), RFM(140, 240)에 베이스 레지스터 영역(420)을 할당한다(단계 S502).3C is a flow diagram illustrating the workflow of a function of initializing an RFM device in an RFM library in accordance with the present invention. Referring to FIG. 3C, the RfmInit function for initializing the RFM 140, 240 device may include a memory area 400 of the RFM 140, 240 and a memory area of the main memory 120, 220 of each host 100, 200. (Step S501), the base register area 420 is allocated to the RFMs 140 and 240 (step S502).
이어서, RFM(140, 240)메모리 영역에 대한 세마퍼를 생성하고, 초기 값을 설정한다(단계 S503). 세마퍼의 생성 및 초기값 설정이 끝나면 이어서, 메타 데이터베이스 영역(430)을 할당하고(단계 S504), 메타 데이터베이스 영역(430)이후 사용자가 사용 가능한 사용자 데이터 영역(440)의 시작 주소를 베이스 레지스터(420) 값으로 업데이트한다(단계 S505).Subsequently, a semaphore is generated for the RFM 140, 240 memory area, and an initial value is set (step S503). After the generation of the semaphore and the initial value setting are completed, the meta database area 430 is allocated (step S504), and the start address of the user data area 440 available to the user after the meta database area 430 is assigned to the base register ( 420) update to a value (step S505).
도3d는 본 발명에 따른 RfmKey 값과 RFM 라이브러리를 이용하여 RFM에 로컬 데이터 영역을 할당하는 흐름을 나타낸 흐름도이다. 도3d를 참조하면 각 호스트(100, 200)의 서버 프로세스(115) 및 클라이언트 프로세스(215)는 RfmOpen 함수를 실행하여 RFM(140, 240)장치를 오픈한다(단계 S601).3d is a flowchart illustrating a flow of allocating a local data area to an RFM using an RfmKey value and an RFM library according to the present invention. Referring to FIG. 3D, the server process 115 and the client process 215 of each host 100, 200 execute the RfmOpen function to open the RFM 140, 240 device (step S601).
또한, RfmInit 함수를 실행하여, 베이스 레지스터(420), 메타 데이터베이스 영역(430)을 할당한다(단계 S602). 이어서, 서버 프로세스(115) 또는 클라이언트 프로세스(215)는 RfmKey 값을 결정하고, 베이스 레지스터(420)로부터 사용자 데이터 영역(440) 중 사용 가능한 영역의 시작 주소를 RFM 라이브러리를 이용하여 독출하고, RfmSize 값만큼 사용자 데이터 영역(440) 상에 RfmKey 값에 대한 로컬 데이터 영역을 확보한다(단계 S603).Further, the RfmInit function is executed to allocate the base register 420 and the meta database area 430 (step S602). The server process 115 or client process 215 then determines the RfmKey value, reads from the base register 420 the start address of the available area of the user data area 440 using the RFM library, and reads the RfmSize value. As much as the local data area for the RfmKey value is reserved on the user data area 440 (step S603).
이어서, 베이스 레지스터로(420)부터 독출된 사용 가능한 영역의 시작 주소를 RfmID로 하여, RfmKey, RfmID, RfmSize 등의 로컬 데이터 영역 정보를 메타 데이터베이스 영역(430)에 RFM 라이브러리를 이용하여 저장한다(단계 S604).Subsequently, local data area information such as RfmKey, RfmID, and RfmSize is stored in the meta database area 430 using the RFM library, with the start address of the usable area read out from the base register 420 as RfmID (step Sfm). S604).
도3e는 본 발명에 따른 RFM 라이브러리를 이용한 데이터 저장 또는 독출 방법을 나타낸 흐름도이다. 도3e를 참조하면, RfmKey 값을 가지고 RfmGet 함수를 실행하여 RfmID를 독출하고(단계 S701), 독출된 RfmID를 가지고, RfmAttach함수를 실행하여 RfmID를 시작 주소로 하는 영역을 가리키는 메인 메모리 상의 포인터를 얻어낸다(단계 S702).3E is a flowchart illustrating a data storage or reading method using an RFM library according to the present invention. Referring to FIG. 3E, the RfmGet function is executed to read the RfmID by using the RfmKey value (step S701), and the RfmID is executed to execute the RfmAttach function to obtain a pointer in the main memory indicating the region having the RfmID as the starting address. (Step S702).
이어서, RfmKey 값에 대한 세마퍼를 RfmSemLock 함수를 실행하여 세마퍼 잠금 상태를 설정하고(단계 S703), RfmAttach 함수로 얻은 포인터가 가리키는 영역에 데이터를 저장 또는 독출하고(단계 S704), 다시 RfmKey 값을 가지고 RfmSemUnlock 함수를 실행하여 해당 세마퍼 잠금 상태를 해제한다(단계 S705).Subsequently, the semaphore for the RfmKey value is executed by executing the RfmSemLock function to set the semaphore lock state (step S703), and the data is stored or read in the area pointed to by the pointer obtained by the RfmAttach function (step S704), and the RfmKey value is again obtained. The RfmSemUnlock function is executed to release the semaphore lock state (step S705).
본 발명에 따르면, RFM 라이브러리에 포함되어 있는 RfmGet 함수와 RfmAttach 함수를 사용하여, 각 호스트(100, 200)의 마이크로 프로세서(110, 210)는 마치 메인 메모리에 데이터를 저장 또는 독출하는 것과 같이 RFM의 메모리 영역에 데이터를 저장 또는 독출할 수 있다.According to the present invention, by using the RfmGet function and the RfmAttach function included in the RFM library, the microprocessors 110 and 210 of each host 100 and 200 store the RFM as if the data is stored or read in main memory. Data can be stored or read in the memory area of the memory.
본 발명의 바람직한 실시예로서, 특정한 데이터 값을 저장 또는 독출하기 위해 선정된 RfmKey 값을 사용할 수 있다. 즉, 베이스 레지스터 영역(420)에 데이터를 저장 또는 독출하기 위한 RfmKey 값은 '0'을 사용할 수 있으며, 또한, 메타 데이터베이스 영역(430)에 데이터를 저장 및 독출하기 위한 RfmKey 값은 '1'을 사용할 수 있다.As a preferred embodiment of the present invention, a predetermined RfmKey value may be used for storing or reading specific data values. That is, the RfmKey value for storing or reading data in the base register area 420 may use '0', and the RfmKey value for storing and reading data in the meta database area 430 may read '1'. Can be used.
도3f는 본 발명의 제1 실시예에 따른 네트워크 통신 방법을 나타낸 흐름도이다. 도3f를 참조하면, 서버 프로세스(115) 및 클라이언트 프로세스(215)가 RFM(140, 240)을 오픈하고, 초기화하면(단계 S801), 서버 프로세스(115)는 RfmKey값을 결정하고, 데이터 저장 영역을 할당하여, 메타 데이터베이스 영역(430)에 데이터 영역 정보를 저장한다(단계 S802).3F is a flowchart showing a network communication method according to the first embodiment of the present invention. Referring to FIG. 3F, when the server process 115 and the client process 215 open and initialize the RFMs 140 and 240 (step S801), the server process 115 determines the RfmKey value and the data storage area. To store the data area information in the meta database area 430 (step S802).
이어서, 클라이언트 프로세스(215)는 서버 프로세스(115)로부터 RfmKey 값을 통지 받고, 통지 받은 RfmKey 값을 가지고 메타 데이터베이스 영역(430)을 검색하여 RfmID를 얻는다. 또한, 얻은 RfmID를 가지고, 할당된 데이터 영역을 가리키는 메인 메모리(120, 220) 상의 포인터를 얻는다(단계 S803). RfmID로 얻은 포인터를 이용하여 RFM(140, 240) 영역에 데이터 요청 메시지를 기입한다(단계 S804).Subsequently, the client process 215 is notified of the RfmKey value from the server process 115, searches the meta database area 430 with the notified RfmKey value, and obtains an RfmID. Further, with the obtained RfmID, a pointer on main memory 120, 220 indicating the allocated data area is obtained (step S803). The data request message is written to the RFMs 140 and 240 using the pointer obtained as the RfmID (step S804).
서버 프로세스(115)는 데이터 요청 메시지 기입에 따른 세마퍼 잠금 상태의 변화를 인식하여, 클라이언트 프로세스(215)의 데이터 요청 메시지를 RFM(140)으로 부터 독출하고(단계 S805), 데이터 요청 메시지에 상응하는 데이터를 제1 호스트(100)의 하드디스크(130)로부터 독출하여 제1 호스트(100)의 RFM(140)에 기입한다(단계 S806).The server process 115 recognizes the change in the semaphore lock state according to the writing of the data request message, reads the data request message of the client process 215 from the RFM 140 (step S805), and corresponds to the data request message. The data to be read is read from the hard disk 130 of the first host 100 and written to the RFM 140 of the first host 100 (step S806).
또한, 클라이언트 프로세스(215)는 서버 프로세스(115)가 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 제1 호스트(100)의 RFM(140)에 기입하므로 발생하는 세마퍼 잠금 상태의 변화를 인식하여, 실시간으로 업데이트된 제2 호스트(200)의 RFM(240)으로부터 요청한 데이터를 독출하여 하드디스크(230)로 저장한다.In addition, the client process 215 is a semaphore lock that occurs because the server process 115 reads data from the hard disk 130 of the first host 100 and writes the data to the RFM 140 of the first host 100. Recognizing a change in state, the requested data is read from the RFM 240 of the second host 200 updated in real time and stored in the hard disk 230.
한편, 클라이언트 프로세스(215)가 서버 프로세스(115)로부터 RfmKey 값을 통지 받는 단계는 서버 프로세스(115)가 선정된 RfmKey 값을 이용하여 클라이언트 프로세스(215)에 부여할 RfmKey 값을 RFM(140, 240)에 저장하고, 클라이언트 프로세스(215)는 상기 선정된 RfmKey 값을 가지고 RfmGet 함수와 RfmAttach 함수를 실행하여 제2 호스트(200)의 클라이언트 프로세스(215)에 할당된 RfmKey 값을 독출하는 단계로 할 수 있다.Meanwhile, in the step in which the client process 215 is notified of the RfmKey value from the server process 115, the RFM 140, 240 may assign the RfmKey value to the client process 215 using the selected RfmKey value. ), And the client process 215 executes the RfmGet function and the RfmAttach function with the selected RfmKey value to read the RfmKey value assigned to the client process 215 of the second host 200. Can be.
또한, 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 RFM (140, 240)에 기입하는 단계(단계 S806)는 제1 호스트(100)가 제2 호스트(200)의 요청 메시지에 대한 답신 메시지를 RFM(140)에 기입하는 것으로 대신할 수 있다. 제2 호스트(200)가 RFM(240)에 기입된 데이터를 독출하여 하드디스크(230)에 저장하는 것(단계 S807)은 제2 호스트(200)가 제1 호스트(100)의 답신 메시지를 RFM(140, 240)으로부터 독출하는 것으로 대신할 수 있다.In addition, the step of reading data from the hard disk 130 of the first host 100 and writing the data to the RFMs 140 and 240 (step S806) is performed by the first host 100 requesting a message from the second host 200. This can be done by writing a reply message to RFM 140. When the second host 200 reads the data written in the RFM 240 and stores the data in the hard disk 230 (step S807), the second host 200 transmits the reply message of the first host 100 to the RFM. It can be substituted by reading from 140 and 240.
또한, 본 발명의 바람직한 실시예로서, 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 RFM(140)에 기입하는 단계(단계 S806)와 제2 호스트(200)의 RFM(240)으로부터 데이터를 독출하여 하드디스크(230)로 저장하는 단계(단계 S807)는 데이터의 크기에 따라 한번 또는 그 이상 반복될 수 있다.In addition, as a preferred embodiment of the present invention, the step of reading data from the hard disk 130 of the first host 100 to write to the RFM 140 (step S806) and the RFM 240 of the second host 200 In step S807, the data is read out and stored in the hard disk 230 (step S807), and may be repeated once or more depending on the size of the data.
본 발명은 실시간으로 업데이트되는 RFM(140, 240)을 통하여 회선에 의한 지연 없이 곧바로 원거리 호스트에 있는 데이터를 빠른 시간 내에 자신이 장착하고 있는 RFM으로부터 독출할 수 있다. 또한, 본 발명에 따른 RFM 라이브러리를 사용하면 사용자는 메인 메모리 상에 데이터 저장 또는 독출하는 것과 같은 효과를 얻을 수 있다.According to the present invention, the RFMs 140 and 240 that are updated in real time can immediately read data in the remote host from the RFM that they are equipped with in a short time without delay by the circuit. In addition, by using the RFM library according to the present invention, the user can obtain an effect such as storing or reading data on the main memory.
도4a는 본 발명에 따른 제2 실시예에 따른 네트워크 통신 시스템의 구성도이다. 도4a를 참조하면, 제1 호스트(100)와 링 타입으로 광 케이블(300)에 연결되어 있는 각 호스트(200)가 도시되어 있다. 본 발명의 바람직한 실시예로서, 제1 호스트(100)는 서버(100)일 수 있으며, 각 호스트(200)는 클라이언트 호스트(200)가 될 수 있다.4A is a block diagram of a network communication system according to a second embodiment of the present invention. Referring to FIG. 4A, each host 200 connected to the optical cable 300 in a ring type with the first host 100 is illustrated. In a preferred embodiment of the present invention, the first host 100 may be a server 100, and each host 200 may be a client host 200.
본 발명에 따른 서버(100) 및 클라이언트 호스트(200)는 RFM 라이브러리를 이용하여 RFM(140, 240)을 오픈하고 초기화한다. 또한, 클라이언트 호스트(200)는 서버(100)에서 부여하는 RfmKey 값을 이용하여 네트워크 통신을 위한 RFM(140, 240)의 메모리 영역(400)을 할당받는다. 즉, RFM(140, 240)의 메모리 영역(400)에 로컬 데이터 영역 할당받아 각 호스트(100, 200)는 메시지 또는 데이터를 주고받을 수 있다.The server 100 and the client host 200 according to the present invention open and initialize the RFMs 140 and 240 using the RFM library. In addition, the client host 200 is allocated a memory area 400 of the RFMs 140 and 240 for network communication using the RfmKey value assigned by the server 100. That is, each host 100 or 200 may receive a local data area in the memory area 400 of the RFMs 140 and 240 so as to exchange a message or data.
본 발명의 제2 실시예는 실시간으로 업데이트되는 RFM(140, 240)을 통하여 각 클라이언트 호스트(200)는 빠른 시간 내에 서버(100)로부터 데이터를 얻을 수 있도록 항상 일정한 네트워크 전송 속도를 보장할 수 있다.According to the second embodiment of the present invention, each client host 200 may guarantee a constant network transmission speed so that each client host 200 may obtain data from the server 100 in a short time through the RFMs 140 and 240 updated in real time. .
도4b는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에 적용될 수 있는 RFM 메모리 영역 할당 방법의 일 실시예를 나타낸 도면이다. 도4b를 참조하면, RFM(140, 240)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다. RFM(140, 240)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터 영역(420), 메타 데이터 베이스 영역(430), 사용자 데이터 영역(440) 등으로 구분될 수 있다.4B is a diagram illustrating an RFM memory area allocation method that can be applied to a network communication system according to a second embodiment of the present invention. Referring to FIG. 4B, the memory area 400 and the memory address 480 of the RFMs 140 and 240 are shown. The memory area 400 of the RFMs 140 and 240 may be divided into an RFM device driver use area 410, a base register area 420, a meta database area 430, a user data area 440, and the like.
본 발명에 따라 서버(100)에 접속한 다수의 클라이언트 호스트(200)는 서버(100)로부터 서로 다른 RfmKey 값(901, 902, 903)을 부여받아 서로 다른 로컬 데이터 영역(911, 912, 913)을 할당받을 수 있다. 따라서, 각 클라이언트호스트(200)는 서로 독립적으로 서버(100)와 네트워크 통신을 수행할 수 있다.According to the present invention, a plurality of client hosts 200 accessing the server 100 receive different RfmKey values 901, 902, and 903 from the server 100, and thus, different local data areas 911, 912, and 913. Can be assigned. Accordingly, each client host 200 may perform network communication with the server 100 independently of each other.
도4c는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에서 사용될 수 있는 RFM 메모리 영역 할당 방법의 또 다른 실시예를 나타낸 도면이다. 도4c를 참조하면, RFM(140, 240)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다. RFM(140, 240)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터 영역(420), 메타 데이터 베이스 영역(430), 사용자 데이터 영역(440) 등으로 구분될 수 있다.4C is a diagram illustrating another embodiment of an RFM memory area allocation method that may be used in a network communication system according to a second embodiment of the present invention. Referring to FIG. 4C, the memory area 400 and the memory address 480 of the RFMs 140 and 240 are shown. The memory area 400 of the RFMs 140 and 240 may be divided into an RFM device driver use area 410, a base register area 420, a meta database area 430, a user data area 440, and the like.
본 발명의 바람직한 실시예로서, 서버(100)에 접속한 다수의 클라이언트 호스트(200)는 서버(100)로부터 동일한 RfmKey(904) 값을 부여받아 동일한 로컬 데이터 영역(914)을 할당받을 수 있다. 따라서, 각 클라이언트 호스트(200)는 각 호스트(200)에 장착된 RFM(140, 240)의 메모리 영역(400) 중 동일한 로컬 데이터 영역(914)을 참조하여 서로 데이터를 동시에 공유할 수 있다. 즉, 서버(100)에 의하여 로컬 데이터 영역(914)의 데이터가 변경되는 경우, 모든 클라이언트 호스트(200)는 동일한 데이터를 자신이 장착하고 있는 RFM(200)에서 곧바로 참조하게 된다.As a preferred embodiment of the present invention, a plurality of client hosts 200 accessing the server 100 may be assigned the same RfmKey 904 value from the server 100 and may be assigned the same local data area 914. Accordingly, each client host 200 may simultaneously share data with each other by referring to the same local data area 914 among the memory areas 400 of the RFMs 140 and 240 mounted in each host 200. That is, when the data of the local data area 914 is changed by the server 100, all the client hosts 200 directly refer to the same data in the RFM 200 to which they are mounted.
전술한 내용은 후술할 발명의 특허 청구 범위를 보다 잘 이해할 수 있도록 본 발명의 특징과 기술적 장점을 다소 폭넓게 개설하였다. 본 발명의 특허 청구 범위를 구성하는 부가적인 특징과 장점들이 이하에서 상술될 것이다. 개시된 본 발명의 개념과 특정 실시예는 본 발명과 유사 목적을 수행하기 위한 다른 구조의 설계나 수정의 기본으로서 즉시 사용될 수 있음이 당해 기술 분야의 숙련된 사람들에 의해 인식되어야 한다.The foregoing has outlined rather broadly the features and technical advantages of the present invention to better understand the claims of the invention which will be described later. Additional features and advantages that make up the claims of the present invention will be described below. It should be appreciated by those skilled in the art that the conception and specific embodiments of the invention disclosed may be readily used as a basis for designing or modifying other structures for carrying out similar purposes to the invention.
또한, 본 발명에서 개시된 발명 개념과 실시예가 본 발명의 동일 목적을 수행하기 위하여 다른 구조로 수정하거나 설계하기 위한 기초로서 당해 기술 분야의 숙련된 사람들에 의해 사용되어질 수 있을 것이다. 또한, 당해 기술 분야의 숙련된 사람에 의한 그와 같은 수정 또는 변경된 등가 구조는 특허 청구 범위에서 기술한 발명의 사상이나 범위를 벗어나지 않는 한도 내에서 다양한 변화, 치환 및 변경이 가능하다.In addition, the inventive concepts and embodiments disclosed herein may be used by those skilled in the art as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. In addition, such modifications or altered equivalent structures by those skilled in the art may be variously changed, substituted, and changed without departing from the spirit or scope of the invention described in the claims.
이상과 같이, 본 발명은 네트워크 통신 시스템을 구성하고 있는 복수 개의 호스트 컴퓨터가 실시간으로 업데이트되는 리플렉티브 메모리를 구비하고, 리플렉티브 메모리 상에 호스트 컴퓨터 사이에 참조할 수 있는 고유한 메모리 영역을 할당하고, 할당된 메모리 영역에 메시지 또는 데이터를 기입함으로써, 기존 네트워크 방식의 회선 지연에 의한 전송 지연 없이 빠른 시간 안에 메시지 또는 데이터를 주고받을 수 있으며, 네트워크 트래픽에 관계없이 데이터 및 메시지를 주고받는데 항상 일정한 속도를 유지할 수 있다.As described above, the present invention provides a unique memory area having a reflective memory in which a plurality of host computers constituting a network communication system are updated in real time, and which can be referred to between host computers on the reflective memory. By allocating and writing a message or data in the allocated memory area, it is possible to send and receive a message or data in a short time without transmission delay caused by a conventional network delay, and to send and receive data and messages regardless of network traffic. Can maintain a constant speed.
또한, 메시지 또는 데이터를 주고받는데 있어서, RFM 라이브러리를 사용함으로써, 각 호스트들은 마치 자신의 메인 메모리에 데이터를 기입하고, 독출하는 것과 같은 효과를 얻을 수 있다.In addition, by using the RFM library to send and receive messages or data, each host can achieve the same effect as writing and reading data into its main memory.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000018557A KR100361076B1 (en) | 2000-04-10 | 2000-04-10 | Method of mimory sharing and duplicate server system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000018557A KR100361076B1 (en) | 2000-04-10 | 2000-04-10 | Method of mimory sharing and duplicate server system thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010090636A true KR20010090636A (en) | 2001-10-19 |
KR100361076B1 KR100361076B1 (en) | 2002-11-18 |
Family
ID=19662959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000018557A KR100361076B1 (en) | 2000-04-10 | 2000-04-10 | Method of mimory sharing and duplicate server system thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100361076B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180068004A (en) * | 2016-12-13 | 2018-06-21 | 중원대학교 산학협력단 | A storage device having internal and external interfaces for data sharing between computers and a computer system using the same |
CN111880433A (en) * | 2020-07-02 | 2020-11-03 | 上海机电工程研究所 | System and method for automatically realizing remote heterogeneous semi-physical simulation test task |
-
2000
- 2000-04-10 KR KR1020000018557A patent/KR100361076B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180068004A (en) * | 2016-12-13 | 2018-06-21 | 중원대학교 산학협력단 | A storage device having internal and external interfaces for data sharing between computers and a computer system using the same |
CN111880433A (en) * | 2020-07-02 | 2020-11-03 | 上海机电工程研究所 | System and method for automatically realizing remote heterogeneous semi-physical simulation test task |
Also Published As
Publication number | Publication date |
---|---|
KR100361076B1 (en) | 2002-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500689B2 (en) | Communication method and apparatus | |
US10705974B2 (en) | Data processing method and NVME storage device | |
US5884313A (en) | System and method for efficient remote disk I/O | |
KR101670342B1 (en) | Data processing system and data processing method | |
US9672143B2 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
KR100995466B1 (en) | Methods and apparatus for implementing virtualization of storage within a storage area network | |
KR100290942B1 (en) | An apparatus and method for transmitting and receiving data into and out of a universal serial bus device | |
US7308523B1 (en) | Flow-splitting and buffering PCI express switch to reduce head-of-line blocking | |
US5961606A (en) | System and method for remote buffer allocation in exported memory segments and message passing between network nodes | |
US7206867B2 (en) | Method and apparatus for robust addressing on a dynamically configurable bus | |
EP3470971B1 (en) | Method, apparatus, and system for accessing memory device | |
JP6757808B2 (en) | Systems and methods for managing and supporting Virtual Host Bus Adapters (vHBAs) on Infiniband (IB), and systems and methods for supporting efficient use of buffers using a single external memory interface. | |
CN112783667B (en) | Memory sharing system and method based on virtual environment | |
JP2002149592A (en) | Pci bridge on network | |
CN105681222A (en) | Method and apparatus for data receiving and caching, and communication system | |
US20040064461A1 (en) | Method and arrangement for dynamic detection of SCSI devices on linux host | |
CN116955219B (en) | Data mirroring method, device, host and storage medium | |
KR20010090636A (en) | Real time network communication method and system | |
US5983279A (en) | Buffer management mechanism for distributed multimedia applications | |
US20220269411A1 (en) | Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks | |
CN116627587A (en) | Method for dynamically expanding memory of virtual machine | |
JP2000253024A (en) | Communication system and communication device | |
CN116932451A (en) | Data processing method, host and related equipment | |
US10126948B1 (en) | Interconnection of peripheral devices on different electronic devices | |
KR20200143922A (en) | Memory card and method for processing data using the card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111031 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |