[go: up one dir, main page]

KR101302569B1 - Apparatus and Method for Host Interface - Google Patents

Apparatus and Method for Host Interface Download PDF

Info

Publication number
KR101302569B1
KR101302569B1 KR1020120012889A KR20120012889A KR101302569B1 KR 101302569 B1 KR101302569 B1 KR 101302569B1 KR 1020120012889 A KR1020120012889 A KR 1020120012889A KR 20120012889 A KR20120012889 A KR 20120012889A KR 101302569 B1 KR101302569 B1 KR 101302569B1
Authority
KR
South Korea
Prior art keywords
modem
reception
memory block
received
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020120012889A
Other languages
Korean (ko)
Other versions
KR20130091525A (en
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 KR1020120012889A priority Critical patent/KR101302569B1/en
Publication of KR20130091525A publication Critical patent/KR20130091525A/en
Application granted granted Critical
Publication of KR101302569B1 publication Critical patent/KR101302569B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 호스트 인터페이스 장치 및 방법에 대하여 개시한다. 본 발명의 일면에 따른 호스트 인터페이스 장치는, 메모리 풀 내 적어도 하나의 메모리 블록을 송신 공유영역으로 설정하고, 상기 메모리 풀 내 상기 송신 공유영역으로 설정되지 않은 적어도 하나의 메모리 블록을 수신 공유영역으로 설정하는 모뎀; 및 상기 모뎀에 질의하여 상기 송신 공유영역 및 상기 수신 공유영역에 대한 공유정보를 확인하고, 상기 공유정보를 참조하여 송신 패킷을 상기 송신 공유영역에 저장하여 상기 모뎀으로 송신하고, 상기 모뎀에 수신된 수신 패킷을 상기 수신 공유영역으로부터 읽어와 상기 모뎀으로부터 상기 수신 패킷을 수신하는 호스트를 포함하며, 상기 모뎀은, 상기 수신된 패킷을 모두 읽어오지 않더라도, 상기 호스트에 의해 수신된 수신 패킷이 저장된 상기 적어도 하나의 메모리 블록을 상기 메모리 풀로 반환하고, 상기 수신 패킷의 더 수신되면 상기 메모리 풀에서 다른 상기 적어도 하나의 메모리 블록을 상기 수신 공유영역으로 재설정하는 하는 것을 특징으로 한다.The present invention discloses a host interface device and method. According to an aspect of the present disclosure, a host interface device may set at least one memory block in a memory pool as a transmission sharing area, and set at least one memory block not set as the transmission sharing area in the memory pool as a reception sharing area. A modem; Query the modem to confirm sharing information on the transmission sharing area and the reception sharing area, store transmission packets in the transmission sharing area with reference to the sharing information, and transmit them to the modem; A host that reads a received packet from the receive sharing area and receives the received packet from the modem, wherein the modem is configured to store at least the received packet received by the host even if all received packets are not read. And returning one memory block to the memory pool, and resetting the other at least one memory block in the memory pool to the reception sharing area when the received packet is further received.

Figure R1020120012889
Figure R1020120012889

Description

호스트 인터페이스 장치 및 방법{Apparatus and Method for Host Interface}Apparatus and Method for Host Interface

본 발명은 호스트와 모뎀 간의 인터페이스에 관한 것으로서, 더 구체적으로는 송수신 과정의 메모리 블록 부족 현상을 개선할 수 있는 호스트 인터페이스 장치 및 방법에 관한 것이다.The present invention relates to an interface between a host and a modem. More particularly, the present invention relates to a host interface device and a method for improving a memory block shortage during a transmission and reception process.

일반적으로, 호스트의 데이터 송수신에는 유.무선 모뎀이 사용되고 있다. 호스트는 모뎀으로 데이터를 쓰거나, 읽는 일련의 동작들을 통해 유.무선 모뎀에 데이터를 전달할 수 있다.In general, wired and wireless modems are used for data transmission and reception of a host. The host can pass data to the wired or wireless modem through a series of operations that either write or read data to the modem.

도 1과 같이, 종래의 호스트는 모뎀과 병렬 버스(Parallel Bus)로 연결되어, 모뎀에 데이터를 쓰거나(Write) 읽어(Read) 통신하며, 인터럽트(TX_REQ, TX_DONE)에 의해 데이터 송수신을 확인하고 있다. 호스트는 마이크로 프로세서를 이용하여 모뎀을 제어하며, 모뎀과는 호스트 인터페이스로 연결된다. 이때, 호스트 인터페이스는 PCMCIA(Personal Computer Memory Card International Association), 병렬 버스(Parellel Bus), 로컬 버스(Local Bus) 등일 수 있으며, 데이터 송수신 인터페이스 및 인터럽트 인터페이스를 포함한다. 또한, 호스트는 PC, 노트북뿐만 아니라, 다른 임베디드(Embeded) 시스템일 수 있다.As shown in FIG. 1, a conventional host is connected to a modem via a parallel bus, writes data to a modem, reads a communication, and confirms data transmission and reception by interrupts TX_REQ and TX_DONE. . The host uses a microprocessor to control the modem, which is connected to the host via a host interface. In this case, the host interface may be a personal computer memory card international association (PCMCIA), a parallel bus, a local bus, and the like, and include a data transmission / reception interface and an interrupt interface. The host can also be a PC, a notebook, as well as other embedded systems.

종래의 모뎀은 호스트로부터 호스트 인터페이스 공유영역으로 전달받은 패킷을 외부로 송신하거나, 외부로부터 신호를 수신하면 호스트 인터페이스 공유영역을 통해 호스트에 전달한다. 이때, 모뎀은 전력선, LAN 등의 기설정된 다양한 통신만을 통해 외부로부터 신호를 수신하거나, 외부로 신호를 송신할 수 있다.The conventional modem transmits a packet received from the host to the host interface sharing area to the outside, or receives a signal from the outside and transmits the packet to the host through the host interface sharing area. In this case, the modem may receive a signal from the outside or transmit a signal to the outside through only various preset communication such as a power line or a LAN.

종래의 호스트는 송신 절차에서, 송신할 패킷을 모뎀의 송신 공유영역(TX shared Region)의 디스크립터(Descriptor)에 연결된 메모리 블록에 쓰고, 모뎀으로 TX_REQ(송신요청) 인터럽트를 송신한 후, 모뎀이 외부로 패킷을 송신하기 위해 송신 버퍼에 입력하는 처리를 끝내고 TX_DONE 인터럽트를 송신할 때까지 기다리다가, TX_DONE 인터럽트를 수신하면, 처음으로 돌아가 이후의 송신절차를 계속 진행한다.In a transmission process, a conventional host writes a packet to be transmitted to a memory block connected to a descriptor of a TX shared region of a modem, sends a TX_REQ interrupt to the modem, and then the modem Wait for the TX_DONE interrupt to be sent after sending the packet to the send buffer to send the packet. Then, when the TX_DONE interrupt is received, the process returns to the beginning and continues the transmission process.

종래의 모뎀은 수신 절차에서, 외부로부터 수신한 패킷을 수신 공유영역(RX shared Region)의 디스크립터에 연결된 메모리 블록에 쌓아두다가 어느 정도 패킷이 쌓이면 호스트에 RX_REQ 인터럽트를 송신한다. 종래의 호스트는 RX_REQ 인터럽트를 수신하면, 수신 공유영역의 디스크립터에 연결된 메모리 블록으로부터 모든 수신 패킷을 읽어온 다음, RX_DONE 인터럽트를 모뎀으로 송신한다. 그러면, 모뎀은 디스크립터에 연결된 메모리 블록들을 메모리 풀(Pool)로 돌려줘, 메모리 블록들이 재활용될 수 있도록 한다.In a conventional modem, a packet received from an external device is stacked in a memory block connected to a descriptor of an RX shared region, and when some packets are accumulated, the modem transmits an RX_REQ interrupt to the host. When a conventional host receives an RX_REQ interrupt, it reads all received packets from a memory block connected to a descriptor of a receiving shared area, and then transmits an RX_DONE interrupt to a modem. The modem then returns the memory blocks associated with the descriptor to the memory pool so that the memory blocks can be recycled.

종래의 모뎀은 한꺼번에 많은 패킷을 송신하기 위해서 송신 공유영역의 디스크립터의 개수를 디폴트 5개 정도를 미리 확보하고, 호스트가 항상 한번에 복수의 패킷을 송신할 수 있도록 구성되었다. Conventional modems are configured such that the number of descriptors in the transmission sharing area is secured in advance by about five defaults in order to transmit many packets at once, and the host can always transmit a plurality of packets at one time.

그런데, 모뎀은 송수신 처리에 메모리 풀을 공유해서 사용하므로, 송신 절차를 수행하면 수신 절차를 위한 메모리 블록이 부족한 문제가 발생했다.However, since a modem shares a memory pool for transmission and reception processing, a problem arises that the memory block for the reception procedure is insufficient when the transmission procedure is performed.

뿐만 아니라, 종래의 모뎀은 수신 공유영역의 복수의 디스크립터 전부를 다 읽고 나서, RX_DONE 인터럽트를 송신하여 모뎀의 메모리 블록을 해제하므로, 메모리 풀 내에서도 메모리 블록이 부족한 현상이 발생했다.In addition, the conventional modem reads all the plurality of descriptors in the reception sharing area and then transmits an RX_DONE interrupt to release the memory block of the modem. Thus, the memory block is insufficient in the memory pool.

이러한 현상은 모뎀 속도보다 호스트와 모뎀 간의 인터페이스 속도가 늦어지는 문제를 야기하고, 따라서 모뎀 통신속도가 저하되는 문제가 발생했다. 예컨대, 모뎀의 통신속도가 50Mbps일 때 호스트와 모뎀 간의 인터페이스 속도가 50Mbps미만이면, 통신속도가 저하되었다.This phenomenon causes a problem that the interface speed between the host and the modem is slower than the modem speed, and thus, the modem communication speed is lowered. For example, when the communication speed of the modem is 50 Mbps, if the interface speed between the host and the modem is less than 50 Mbps, the communication speed is lowered.

더욱이, 모뎀의 통신속도는 점점 고속화되고 있어, 호스트와 모뎀 간의 인터페이스의 속도 저하는 더 이슈화될 수 있다.Moreover, the communication speed of the modem is getting faster, and the slowing down of the interface between the host and the modem may become more issue.

본 발명은 전술한 바와 같은 기술적 배경에서 안출된 것으로서, 하나의 디스크립터에 연결된 메모리 블록에 저장된 패킷에 대한 수신이 완료되면, 해당 메모리 블록을 메모리 풀로 빠르게 반환할 수 있는 호스트 인터페이스 장치 및 방법을 제공하는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-described technical background, and provides a host interface device and method for rapidly returning a memory block to a memory pool when reception of a packet stored in a memory block connected to one descriptor is completed. For that purpose.

본 발명의 일면에 따른 호스트 인터페이스 장치는, 메모리 풀 내 적어도 하나의 메모리 블록을 송신 공유영역으로 설정하고, 상기 메모리 풀 내 상기 송신 공유영역으로 설정되지 않은 적어도 하나의 메모리 블록을 수신 공유영역으로 설정하는 모뎀; 및 상기 모뎀에 질의하여 상기 송신 공유영역 및 상기 수신 공유영역에 대한 공유정보를 확인하고, 상기 공유정보를 참조하여 송신 패킷을 상기 송신 공유영역에 저장하여 상기 모뎀으로 송신하고, 상기 모뎀에 수신된 수신 패킷을 상기 수신 공유영역으로부터 읽어와 상기 모뎀으로부터 상기 수신 패킷을 수신하는 호스트를 포함하며, 상기 모뎀은, 상기 수신된 패킷을 모두 읽어오지 않더라도, 상기 호스트에 의해 수신된 수신 패킷이 저장된 상기 적어도 하나의 메모리 블록을 상기 메모리 풀로 반환하고, 상기 수신 패킷의 더 수신되면 상기 메모리 풀에서 다른 상기 적어도 하나의 메모리 블록을 상기 수신 공유영역으로 재설정하는 하는 것을 특징으로 한다.According to an aspect of the present disclosure, a host interface device may set at least one memory block in a memory pool as a transmission sharing area, and set at least one memory block not set as the transmission sharing area in the memory pool as a reception sharing area. A modem; Query the modem to confirm sharing information on the transmission sharing area and the reception sharing area, store transmission packets in the transmission sharing area with reference to the sharing information, and transmit them to the modem; A host that reads a received packet from the receive sharing area and receives the received packet from the modem, wherein the modem is configured to store at least the received packet received by the host even if all received packets are not read. And returning one memory block to the memory pool, and resetting the other at least one memory block in the memory pool to the reception sharing area when the received packet is further received.

본 발명의 다른 면에 따른 호스트 인터페이스 장치는, 공유정보를 참조하여 공유영역의 제어 버퍼에 제어명령을 저장한 후 제어요청 인터럽트를 송신하며, 제어완료 인터럽트를 수신하면 상기 공유정보를 참조하여 보고 버퍼로부터 상기 제어명령에 대응하는 제어결과를 읽어오는 호스트; 및 상기 호스트의 요청에 따라 상기 공유정보를 제공하며, 상기 제어요청 인터럽트를 수신하면 상기 제어명령에 따른 이벤트를 수행하며, 상기 이벤트의 수행을 완료하면 상기 제어결과를 상기 보고 버퍼에 저장한 후 상기 제어완료 인터럽트를 송신하는 모뎀을 포함하되, 상기 호스트에 의한 상기 제어명령의 송신 및 상기 모뎀에 의한 상기 제어결과의 보고는, 비동기 방식으로 수행되는 것을 특징으로 한다.According to another aspect of the present invention, a host interface device stores a control command in a control buffer of a shared area with reference to shared information, and then transmits a control request interrupt. A host for reading a control result corresponding to the control command from the host; And providing the shared information according to a request of the host, performing an event according to the control command upon receiving the control request interrupt, and storing the control result in the report buffer after completing the event. And a modem for transmitting a control completion interrupt, wherein the transmission of the control command by the host and the reporting of the control result by the modem are performed in an asynchronous manner.

본 발명의 또 다른 면에 따른 호스트의 패킷 수신 방법은, 모뎀으로부터 수신된 패킷이 있음을 의미하는 수신요청 인터럽트를 수신하면, 공유정보를 참조하여 수신 공유영역의 디스크립터 및 상기 디스크립터에 연결된 적어도 하나의 메모리 블록으로부터 패킷을 하나씩 읽어오는 단계; 및 상기 수신된 패킷을 모두 읽어오지 않더라도, 읽어온 상기 패킷을 저장한 디스크립터 및 상기 메모리 블록이 존재하면, 상기 읽어온 패킷을 저장한 디스크립터 및 상기 메모리 블록을 메모리 풀로 반환할 것을 상기 모뎀에 지시하는 단계를 포함하는 것을 그 특징으로 한다.According to another aspect of the present invention, a method of receiving a packet by a host may include receiving a request interrupt indicating that there is a packet received from a modem, and referring to shared information, at least one descriptor of a reception sharing area and at least one connected to the descriptor. Reading packets one by one from a memory block; And instructing the modem to return the descriptor storing the read packet and the memory block to the memory pool if the descriptor storing the read packet and the memory block exist, even if all the received packets are not read. It is characterized by including the step.

본 발명에 따르면, 송신 과정 및 수신 과정에서 사용되는 메모리 블록의 해제를 빠르게 수행하여 메모리 풀의 가용성을 높일 수 있으며, 메모리 블록 부족 현상을 개선할 수 있다. 따라서, 본 발명은 종래의 호스트와 모뎀 간의 데이터 교환 속도로 인한 통신속도 저하 문제를 방지할 수 있다.According to the present invention, the availability of the memory pool can be improved by quickly releasing the memory blocks used in the transmission process and the reception process, and the memory block shortage can be improved. Therefore, the present invention can prevent the problem of communication speed degradation due to the data exchange rate between the conventional host and the modem.

또한, 본 발명은 호스트가 모뎀으로 제어명령을 송신하고, 모뎀으로부터 제어명령에 대응하는 결과를 보고받을 수 있어, 사용자에 의한 모뎀 제어의 용이성 및 다양화를 지원할 수 있다.In addition, according to the present invention, the host may transmit a control command to the modem and receive a report corresponding to the control command from the modem, thereby supporting ease and diversification of modem control by the user.

도 1은 종래의 호스트와 모뎀 간의 인터페이스를 도시한 도면.
도 2a는 본 발명의 모뎀의 세부 구성을 도시한 구성도.
도 2b은 본 발명의 공유정보와 공유영역의 관계를 도시한 도면.
도 3은 본 발명의 공유정보 획득 방법을 도시한 흐름도.
도 4는 본 발명의 호스트의 패킷 송신 절차를 도시한 도면.
도 5는 본 발명의 호스트의 패킷 수신 절차를 도시한 도면.
도 6은 본 발명의 호스트의 제어명령 송신 절차를 도시한 도면.
도 7은 본 발명의 호스트의 제어결과 수신 절차를 도시한 도면.
1 illustrates an interface between a conventional host and a modem.
Figure 2a is a block diagram showing the detailed configuration of the modem of the present invention.
2B is a diagram illustrating a relationship between shared information and a shared area of the present invention.
3 is a flowchart illustrating a method of obtaining shared information of the present invention.
4 is a diagram illustrating a packet transmission procedure of a host of the present invention.
5 is a diagram illustrating a packet reception procedure of a host of the present invention.
6 is a diagram illustrating a control command transmission procedure of a host of the present invention.
7 is a diagram illustrating a procedure for receiving a control result of a host of the present invention.

이제 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하기로 한다. 도 2a는 본 발명의 실시예에 따른 호스트 인터페이스 장치를 도시한 구성도이며, 도 2b는 본 발명의 실시예에 따른 공유정보를 도시한 도면이다.Embodiments of the present invention will now be described in detail with reference to the accompanying drawings. 2A is a block diagram illustrating a host interface device according to an exemplary embodiment of the present invention, and FIG. 2B is diagram illustrating shared information according to an exemplary embodiment of the present invention.

도 2a에 도시된 바와 같이, 본 발명의 실시예에 따른 호스트 인터페이스 장치(10)는 호스트(100) 및 모뎀(200)을 포함한다. As shown in FIG. 2A, a host interface device 10 according to an embodiment of the present invention includes a host 100 and a modem 200.

모뎀(200)은 메모리 풀(250), 제어부(210), 공유정보 저장부(220), 송신 공유영역(230) 및 수신 공유영역(240)을 포함한다. 도 2a에서는 메모리 풀(250)이 모뎀(200)에 포함되는 경우를 예로 들어 설명하였지만, 메모리 풀(250)은 모뎀(200) 외부에 존재할 수도 있음은 물론이다. 또한, 도 2a에서는 설명의 편의를 위하여 송신 공유영역(230) 및 수신 공유영역(240)이 메모리 풀(250)과 별개로 존재하는 것처럼 도시하였지만, 사실 송신 공유영역(230) 및 수신 공유영역(240)의 메모리 풀(250)의 디스크립터 및 메모리 블록 중에서 호스트(100)에 공유되는 영역을 별도로 도시한 것이다.The modem 200 includes a memory pool 250, a control unit 210, a shared information storage unit 220, a transmission sharing area 230, and a reception sharing area 240. In FIG. 2A, a case where the memory pool 250 is included in the modem 200 has been described as an example. However, the memory pool 250 may exist outside the modem 200. In addition, although FIG. 2A illustrates that the transmission sharing area 230 and the reception sharing area 240 exist separately from the memory pool 250 for convenience of description, in fact, the transmission sharing area 230 and the reception sharing area ( The region shared by the host 100 among the descriptors and the memory blocks of the memory pool 250 of FIG. 240 is illustrated separately.

메모리 풀(250)은 복수의 디스크립터 및 각 디스크립터에 연결(링크)된 복수의 메모리 블록을 포함한다. 이때, 디스크립터는 패킷의 크기 등과 같은 패킷 파라미터를 저장하며, 메모리 블록은 송수신 되는 패킷의 실제 데이터를 저장한다.The memory pool 250 includes a plurality of descriptors and a plurality of memory blocks connected (linked) to each descriptor. In this case, the descriptor stores a packet parameter such as a packet size, and the memory block stores actual data of a packet to be transmitted and received.

제어부(210)는 호스트(100)로부터 질의(QUERY) 인터럽트를 전달받으면, 송수신에 사용될 디스크립터를 결정하고, 송수신에 사용될 디스크립터의 주소를 포함하는 공유영역의 정보를 설정하여 공유정보 저장부(220)에 저장하고, 호스트(100)로 질의완료 인터럽트를 송신한다.When the control unit 210 receives a QUERY interrupt from the host 100, the controller 210 determines a descriptor to be used for transmission and reception, sets information on a shared area including an address of a descriptor to be used for transmission and reception, and then shares the information storage unit 220. The query completion interrupt is transmitted to the host 100.

또한, 제어부(210)는 메모리 풀(250)에서 송신 공유영역(230) 및 수신 공유영역(240)의 디스크립터(및 메모리 블록)를 설정하고, 송신 공유영역(230) 및 수신 공유영역(240)의 디스크립터(및 메모리 블록)를 이용하여 외부로부터 수신된 패킷을 호스트(100)로 송수신하고, 공유정보를 참조하여 사용완료된 디스크립터(및 메모리 블록)을 메모리 풀(250)에 반환한다.In addition, the controller 210 sets a descriptor (and a memory block) of the transmission sharing area 230 and the reception sharing area 240 in the memory pool 250, and transmit transmission area 230 and the reception sharing area 240. A packet received from the outside is transmitted and received to the host 100 using a descriptor (and a memory block), and the used descriptor (and memory block) is returned to the memory pool 250 by referring to the shared information.

공유정보 저장부(220)는 도 2b와 같은 송신 공유영역의 정보 및 수신 공유영역의 정보 등을 저장하며, 제어부(210) 또는 호스트(100)에 의해 설정될 수 있다. 이하, 각 공유정보에 대하여 설명한다.The sharing information storage unit 220 stores the information of the transmission sharing area and the information of the reception sharing area as shown in FIG. 2B, and may be set by the controller 210 or the host 100. Hereinafter, each shared information will be described.

BlockCountPerDesc는 하나의 디스크립터(Descriptor)에 연결된 메모리 블록의 개수이며, 제어부(210)에 의해 가변적으로 설정되나, 통상, 하나의 디스크립터에 의해 메모리 블록의 개수는 메모리 블록들의 총 용량이 하나의 패킷의 크기 이상이 되도록 설정된다. 이하의 명세서에서는 BlockCountPerDesc가 "2"로 설정된 경우를 예로 들어 설명한다. BlockCountPerDesc is the number of memory blocks connected to one descriptor and is variably set by the controller 210. In general, the number of memory blocks is determined by one descriptor so that the total capacity of the memory blocks is one packet size. It is set to be abnormal. In the following specification, BlockCountPerDesc is The case where it is set to "2" is demonstrated as an example.

BlockSize는 메모리 블록의 크기는 각 메모리 블록의 저장공간의 크기이며, 예컨대, Byte 단위일 수 있다. BlockSize is a size of a memory block is the size of the storage space of each memory block, for example, may be a byte unit.

* TXDesc는 송신 공유영역의 디스크립터 시작주소이며, 제어부(210)에 의해 가변적으로 설정될 수 있다. * TXDesc may be variably set by the descriptor is the start address, the control unit 210 of the transmission share.

* RxDesc는 수신 공유영역의 디스크립터 시작주소이며, 제어부(210)에 의해 가변적으로 설정될 수 있다. * RxDesc is a descriptor start address of the reception sharing area, and can be variably set by the controller 210.

RxDescCount는 외부로부터 수신된 수신 디스크립터의 개수(즉, 수신된 패킷의 개수)이며, 제어부(210)에 의해 설정되며, RX_END 인터럽트를 수신하면 0으로 초기화되고, 초기화 이후의 수신 패킷의 개수를 카운트한다. RxDescCount is the number of received descriptors received from the outside (that is, the number of received packets) and is set by the controller 210. The RxDescCount is initialized to 0 when receiving the RX_END interrupt and counts the number of received packets after initialization. .

RxDoneCount는 수신 공유영역(240)으로부터 호스트(100)로 수신 완료된 수신 디스크립터의 개수이며, 호스트(100)에 의해 설정된다. RxDoneCount is the number of reception descriptors received from the reception sharing area 240 to the host 100 and is set by the host 100.

RxEndCount는 수신완료 인터럽트를 송신한 이후에 호스트(100)에 의해 마지막으로 수신 완료된(반환할) 디스크립터의 개수이며, 호스트(100)에 의해 설정된다. RxEndCount is the number of descriptors that have been received (returned) last by the host 100 after transmitting a reception interrupt, and is set by the host 100.

RxDoneFlag는 수신완료(RX_DONE) 인터럽트의 처리 상태로서, RxEndCount에 기록된 개수의 수신 디스크립터에 연결된 메모리 블록을 메모리 풀(250)로 반환중인지 여부를 나타내며, 제어부(210)에 의해 설정된다. RxDoneFlag indicates whether return a processing state of the reception completion (RX_DONE) interrupt, a memory block is connected to the reception descriptor of the number recorded in the R x EndCount to the memory pool 250, and is set by the control unit 210.

RxDoneFlag는 호스트(100)에 의해 1로 설정되고, 모뎀(200)은 RxDoneFlag가 1로 설정됨을 확인하면, RxEndCount 및 RxEndCount의 설정된 디스크립터의 개수에 대응하는 메모리 블록을 메모리 풀에 반환하고, RxDoneFlag를 0으로 설정한다. 본 명세서에서는 RxDoneFlag가 1일 때 모뎀(200)이 메모리 블록을 반환중인 경우를 예로 들어 설명하였지만, 그에 한정되지 않는다.When the RxDoneFlag is set to 1 by the host 100 and the modem 200 confirms that the RxDoneFlag is set to 1, the RxDoneFlag returns memory blocks corresponding to the number of set descriptors of RxEndCount and RxEndCount to the memory pool, and RxDoneFlag is 0. Set to. In the present specification, the case where the modem 200 is returning a memory block when RxDoneFlag is 1 has been described as an example, but is not limited thereto.

* H2FCntl: 호스트(100)에서 모뎀(200)으로 송신되는 제어명령을 입력하는 제어명령 송신 버퍼의 주소로서, 고정 주소이며, 호스트(100)가 모뎀(200)으로 제어명령을 송신할 때 설정된다. * H2FCntl: the host 100 as the address of the control command transmission buffer for inputting a control command to be transmitted to the modem 200, and a fixed address, the host 100 is set to transmit a control command to the modem 200 .

*F2HCntl: 모뎀(200)에서 호스트(100)로 송신되는 제어명령을 입력하는 제어결과 보고 버퍼의 주소로서, 고정 주소이며, 모뎀(200)이 호스트(100)로 제어명령에 대응하는 처리를 수행한 후 그에 대한 보고를 할 때 설정된다. * F2HCntl : Address of a control result report buffer for inputting a control command transmitted from the modem 200 to the host 100, which is a fixed address, and the modem 200 performs a process corresponding to the control command to the host 100. It is set when reporting on it.

이하, 도 3 내지 5를 참조하여 본 발명의 실시예에 따른 호스트 및 모뎀의 데이터 송수신 과정에 대하여 설명한다.Hereinafter, a process of transmitting and receiving data between a host and a modem according to an embodiment of the present invention will be described with reference to FIGS. 3 to 5.

도 3은 본 발명의 실시예에 따른 호스트의 공유정보 획득 방법을 도시한 흐름도이다.3 is a flowchart illustrating a method of obtaining sharing information of a host according to an embodiment of the present invention.

도 3을 참조하면, 호스트(100)는 모뎀(200)으로 공유정보에 대한 질의(QUERY) 인터럽트를 송신한다(S310).Referring to FIG. 3, the host 100 transmits a QUERY interrupt for shared information to the modem 200 (S310).

모뎀(200)은 질의 인터럽트를 수신하면, 공유정보 저장부(220)에서 설정되지 않은 공유정보를 설정한 후 질의완료(QUERY_DONE) 인터럽트를 송신하며, 호스트(100)는 질의완료 인터럽트를 수신한다(S320).When the modem 200 receives the query interrupt, the modem 200 sets the shared information that is not set in the shared information storage unit 220, and then transmits a query completion (QUERY_DONE) interrupt, and the host 100 receives the query completion interrupt ( S320).

이때, 모뎀(200)은 디스크립터에 연결된 메모리 블록의 개수(BlockCountPerDesc), 메모리 블록의 크기(BlockSize), 송수신 제어명령 버퍼 주소(*H2FCntl 및 *F2HCntl) 및 송수신 공유영역의 디스크립터 시작주소(*TXDesc 및 *RxDesc)를 설정하고, 수신 과정에서 사용되는 송신 디스크립터 설정(RxDescCount, RxDoneCount, RxEndCount 및 RxDoneFlag)을 초기화한다. 이때, 송수신 제어명령 버퍼의 주소는 고정되며, 디스크립터에 연결된 메모리 블록의 개수, 메모리 블록의 크기는 모뎀(200)의 초기화시에 설정되며, 송수신 공유영역의 디스크립터 시작주소는 송수신 과정에서 메모리 풀(250)의 어떤 디스크립터를 사용할지 여부에 따라 가변 설정될 수 있다.At this time, the modem 200 includes the number of memory blocks (BlockCountPerDesc) connected to the descriptor, the size of the memory blocks (BlockSize), the transmit / receive control command buffer address (* H2FCntl and * F2HCntl), and the descriptor start address (* TXDesc and * RxDesc), and initialize the transmission descriptor settings (RxDescCount, RxDoneCount, RxEndCount, and RxDoneFlag) used in the reception process. At this time, the address of the transmission / reception control command buffer is fixed, the number of memory blocks connected to the descriptor, the size of the memory blocks are set at the time of initialization of the modem 200, and the start address of the descriptor of the transmission / reception sharing area is the memory pool ( It may be variable depending on which descriptor of 250) is used.

호스트(100)는 질의완료 인터럽트를 수신하면, 호스트 인터페이스의 이미 알고 있는 공유정보 저장부(220)의 주소로부터 공유정보를 읽어온다(Read)(S330).When the host 100 receives the query completion interrupt, the host 100 reads the shared information from the address of the shared information storage unit 220 already known (Read) of the host interface (S330).

이하, 도 4를 참조하여 호스트의 패킷 송신 절차에 대하여 설명한다. 도 4는 본 발명의 실시예에 따른 호스트의 공유정보를 획득한 후, 패킷 송신 절차를 도시한 도면(구성도 및 흐름도)이다.Hereinafter, a packet transmission procedure of the host will be described with reference to FIG. 4. 4 is a diagram illustrating a packet transmission procedure after acquiring shared information of a host according to an embodiment of the present invention (configuration and flowchart).

도 4는 모뎀(200)을 통한 호스트의 패킷 송수신에서, 송신 속도는 크게 문제되지 않으나 수신 속도가 주로 문제되는 특성을 고려하여 하나의 송신 과정(송신요청 인터럽트의 송신 후부터 송신완료 인터럽트의 수신 전)에서 하나의 패킷을 송신하도록 송신 디스크립터가 하나만 구비된 경우를 예로 들어 설명하였다. 따라서, 도 4에서 호스트(100) 및 모뎀(200)은 하나의 송신 과정에서 하나의 패킷씩 송신한다.4 illustrates a single transmission process (after transmission of a transmission request interrupt and before reception of a transmission completion interrupt) in consideration of a characteristic in which transmission speed is not a big problem but reception speed is mainly a problem in packet transmission and reception of a host through the modem 200. In the example, only one transmission descriptor is provided to transmit a single packet. Therefore, in FIG. 4, the host 100 and the modem 200 transmit one packet in one transmission process.

도 4를 참조하면, 호스트(100)는 송신 디스크립터 시작주소를 참조하여 송신 디스크립터에 연결된 메모리 블록에 모뎀(200)을 통해 송신할 패킷을 저장한다(S410).Referring to FIG. 4, the host 100 stores a packet to be transmitted through the modem 200 in a memory block connected to the transmission descriptor with reference to the transmission descriptor start address (S410).

구체적으로, 호스트(100)는 송신 디스크립터 시작주소를 참조하여 송신 디스크립터의 길이(Length) 필드에 송신하고자 하는 패킷의 크기를 저장하고, 송신 디스크립터에 연결(링크)된 메모리 블록의 맥 헤더(MAC Header)의 목적지 ID(dstID) 필드에 패킷의 목적지 ID를 쓰며, 메모리 블록의 맥 헤더 이후부터 길이 필드에 기록된 크기에 대응하는 패킷을 순차적으로 쓴다. 이때, 하나의 송신 디스크립터에 복수의 메모리 블록이 연결된 경우, 두 번째 메모리 블록은 맥 헤더의 목적지 ID 필드를 구비하지 않을 수 있다.Specifically, the host 100 stores a size of a packet to be transmitted in a length field of a transmission descriptor with reference to a transmission descriptor start address, and MAC header of a memory block connected (linked) to the transmission descriptor. The destination ID of the packet is written in the destination ID (dstID) field, and the packets corresponding to the size recorded in the length field are sequentially written after the MAC header of the memory block. In this case, when a plurality of memory blocks are connected to one transmission descriptor, the second memory block may not include the destination ID field of the MAC header.

호스트(100)는 송신 디스크립터에 연결된 메모리 블록에 송신할 패킷을 저장한 후 모뎀(200)이 패킷을 외부로 송신하도록, 모뎀(200)에 송신요청(TX_REQ) 인터럽트를 송신한다(S420).The host 100 transmits a transmission request (TX_REQ) interrupt to the modem 200 so that the modem 200 transmits the packet to the outside after storing the packet to be transmitted in the memory block connected to the transmission descriptor (S420).

그리고, 호스트(100)는 모뎀(200)으로부터 송신완료(TX_DONE) 인터럽트가 수신될 때까지 다음 패킷을 송신하지 않고 대기한다(S430). 이때, 모뎀(200)은 메모리 블록의 패킷을 외부로 송신하기 위한 송신 버퍼 처리를 수행하고, 송신완료 인터럽트를 송신한다.The host 100 waits without transmitting the next packet until the transmission completion (TX_DONE) interrupt is received from the modem 200 (S430). At this time, the modem 200 performs a transmission buffer process for transmitting the packet of the memory block to the outside, and transmits a transmission completion interrupt.

호스트(100)는 송신완료 인터럽트를 수신하면, (S410) 내지 (S430)단계를 통해 이후의 송신할 패킷을 송신한다(S440). 이때, 호스트(100)는 송신할 패킷이 더 이상 없으면, 송신 절차를 종료함은 물론이다.When the host 100 receives the transmission completion interrupt, the host 100 transmits a subsequent packet to be transmitted through steps S410 through S430 (S440). In this case, if the host 100 no longer has a packet to transmit, the host 100 ends the transmission procedure.

이하, 도 5를 참조하여 본 발명의 실시예에 따른 호스트의 패킷 수신 절차에 대하여 설명한다. 도 5는 본 발명의 실시예에 따른 호스트의 공유정보를 획득한 후, 패킷 수신 절차를 도시한 도면(구성도 및 흐름도)이다. Hereinafter, a packet receiving procedure of a host according to an embodiment of the present invention will be described with reference to FIG. 5. 5 is a diagram illustrating a packet receiving procedure after acquiring shared information of a host according to an exemplary embodiment of the present invention (configuration and flow chart).

도 5를 참조하면, 호스트(100)는 모뎀(200)과의 인터페이스 작업을 수행하지않고, 수신요청 인터럽트를 대기한다(S500).Referring to FIG. 5, the host 100 waits for a reception request interrupt without performing an interface operation with the modem 200 (S500).

호스트(100)는, 모뎀(200)이 수신된 패킷이 수신할 것을 요청하기 위해 송신한, 수신요청(RX_REQ) 인터럽트를 수신한다(S510).The host 100 receives a reception request (RX_REQ) interrupt transmitted by the modem 200 to request that the received packet is received (S510).

호스트(100)는 자체 변수인 RxCount(수신요청 인터럽트 이후 수신완료 인터럽트 이전에 읽어온 디스크립터 개수를 설정) 및 ReadCount(수신요청 인터럽트 이후 수신종료 인터럽트 이전에 읽어온 디스크립터 개수를 설정)를 0으로 초기화한다(S520).The host 100 initializes its own variables RxCount (set the number of descriptors read after the receive request interrupt before the receive interrupt) and ReadCount (set the number of descriptors read after the receive request interrupt before the receive interrupt). (S520).

호스트(100)는 수신 디스크립터 시작주소를 참조하여 수신 디스크립터에 연결된 메모리 블록으로부터 하나의 수신 패킷을 읽은 후, 수신 패킷의 개수에 대응하여 RxCount 및 ReadCount를 1씩 증가시킨다(S530).The host 100 reads one received packet from a memory block connected to the received descriptor with reference to the received descriptor start address, and then increments RxCount and ReadCount by 1 corresponding to the number of received packets (S530).

구체적으로, 호스트(100)는 수신 디스크립터 시작주소에 대응하는 수신 디스크립터의 길이 필드로부터 수신 패킷의 크기를 파악한다. 이때, 호스트(100)는 필요에 따라 수신 디스크립터의 RSSI 필드, SNR 필드에서 송수신 채널 정보(RSSI, SNR)를 읽어올 수도 있다. 이어서, 호스트(100)는 수신 디스크립터에 연결된 첫 번째 메모리 블록의 맥 헤더로부터 수신된 패킷을 송신한 송신지 ID를 획득하고, 메모리 블록의 맥 헤더 이후로부터 수신 패킷의 크기에 대응하는 수신 패킷의 페이로드를 읽어온다. 이때, 메모리 블록들은 서로 링크되었으므로, 호스트(100)는 메모리 블록 간의 링크를 따라가면서 수신 패킷을 읽을 수 있다.Specifically, the host 100 grasps the size of a received packet from the length field of the reception descriptor corresponding to the reception descriptor start address. In this case, the host 100 may read transmission / reception channel information (RSSI, SNR) from the RSSI field and the SNR field of the reception descriptor as necessary. Subsequently, the host 100 obtains a source ID for transmitting the received packet from the MAC header of the first memory block connected to the reception descriptor, and pays for the received packet corresponding to the size of the received packet from after the MAC header of the memory block. Read the load. In this case, since the memory blocks are linked to each other, the host 100 may read the received packet while following the link between the memory blocks.

호스트(100)는 RxCount 및 ReadCount를 1씩 증가시킨 후, 공유정보 저장부(220)의 RxDoneFlag가 0인지를 확인한다(S540).After increasing the RxCount and ReadCount by 1, the host 100 checks whether the RxDoneFlag of the shared information storage unit 220 is 0 (S540).

호스트(100)는 RxDoneFlag가 0이면, 공유정보 저장부(220)의 RxDoneFlag를 1로 설정하고, 공유정보 저장부(220)의 RxDoneCount에 읽은 디스크립터의 개수(RxCount)를 변경 설정하고, RxCount를 0으로 초기화한 다음, 수신완료(RX_DONE) 인터럽트를 송신한다(S550). 그리고, 모뎀(200)은 수신완료 인터럽트를 수신하면, RxDoneCount에 대응하는 메모리 블록을 메모리 풀에 반환하고, RxDoneCount를 0으로 초기화하고, RxDoneFlag를 0으로 설정한다.When the RxDoneFlag is 0, the host 100 sets the RxDoneFlag of the shared information storage unit 220 to 1, sets the number of descriptors read in RxDoneCount of the shared information storage unit 220 (RxCount), and sets RxCount to 0. After the initialization, the reception completion (RX_DONE) interrupt is transmitted (S550). Upon receiving the reception interrupt, the modem 200 returns a memory block corresponding to RxDoneCount to the memory pool, initializes RxDoneCount to 0, and sets RxDoneFlag to 0.

호스트(100)는 읽어온 디스크립터의 개수(ReadCount)가 공유정보 저장부(220)의 RxDescCount 미만인지를 확인하여 모뎀(200)으로부터 읽어올 디스크립터가 더 있는지를 확인한다(S560).The host 100 checks whether the number of read descriptors (ReadCount) is less than RxDescCount of the shared information storage unit 220 and checks whether there are more descriptors to be read from the modem 200 (S560).

호스트(100)는 (S560)단계의 확인결과, 모뎀(200)으로부터 읽어올 디스크립터가 더 이상 없으면(모뎀(200)에 수신된 패킷을 모두 읽었으면), 공유정보 저장부(220)의 RxEndCount에 마지막 수신완료 인터럽트의 발생 이후에서 읽어온 디스크립터의 개수인 RxCount를 변경 설정하고, 모뎀(200)으로 수신종료(RX_END) 인터럽트를 송신한 후, 패킷 수신 절차를 종료한다(S570). 여기서, 모뎀(200)은 수신종료 인터럽트를 수신하면, RxEndCount에 설정된 수에 대응하는 메모리 블록을 메모리 풀에 반환한다.If the host 100 no longer has a descriptor to be read from the modem 200 (when all packets received by the modem 200 have been read), the host 100 reads the RxEndCount of the shared information storage unit 220. After changing the RxCount, which is the number of descriptors read since the occurrence of the last reception interrupt, the RxCount is transmitted to the modem 200, and the packet reception procedure is terminated (S570). When the modem 200 receives the reception termination interrupt, the modem 200 returns a memory block corresponding to the number set in RxEndCount to the memory pool.

한편, 호스트(100)는 수신 패킷을 읽은 후 RxDoneFlag가 0이 아님을 확인하면, 읽어온 디스크립터의 개수(ReadCount)가 공유정보 저장부(220)의 RxDescCount 미만인지를 확인하고(S560), 미만이면 지속적으로 다음 디스크립터에 연결된 메모리 블록으로부터 패킷을 읽는다.On the other hand, when the host 100 checks that the RxDoneFlag is not 0 after reading the received packet, the host 100 checks whether the number of read descriptors (ReadCount) is less than RxDescCount of the shared information storage unit 220 (S560). It constantly reads packets from the memory block attached to the next descriptor.

또한, 호스트(100)는 (S560)단계의 확인결과, 읽어올 디스크립터가 더 있으면, 다음 디스크립터에 대해 (S520) 내지 (S560) 단계를 수행한다.In addition, if the host 100 has more descriptors to be read as a result of checking in step S560, the host 100 performs steps S520 to S560 for the next descriptor.

전술한 수신 절차에서 모뎀(200)은 디스크립터에 연결된 메모리 블록을 메모리 풀로 반환하면, 수신 디스크립터의 시작주소를 재설정하며, 호스트(100)는 수신 절차 수행중에 변경된 수신 디스크립터의 시작주소를 확인하면서 수신 패킷을 읽어온다.In the above-described reception procedure, when the modem 200 returns the memory block connected to the descriptor to the memory pool, the modem 200 resets the start address of the reception descriptor, and the host 100 checks the start address of the changed reception descriptor while performing the reception procedure. Read

모뎀(200)은 수신 절차를 종료한 이후에 추가로 패킷이 수신되면, 전술한 (S510) 내지 (S570) 과정을 통해 추가로 패킷을 수신한다.When the modem 200 additionally receives a packet after finishing the reception procedure, the modem 200 additionally receives the packet through the above-described steps (S510) to (S570).

한편, 본 발명의 호스트(100)는 제어명령 송신 버퍼 및 제어결과 보고 버퍼를 통해서 모뎀(200)을 제어하고, 모뎀(200)으로부터 제어명령에 대응하는 이벤트의 수행결과를 보고받을 수 있는데, 이에 대해서 도 6 및 7을 참조하여 본 발명의 실시예에 따른 호스트의 제어명령 송수신 절차에 대하여 설명한다.Meanwhile, the host 100 of the present invention may control the modem 200 through a control command transmission buffer and a control result report buffer, and receive a result of performing an event corresponding to the control command from the modem 200. 6 and 7, a control command transmission and reception procedure of a host according to an embodiment of the present invention will be described.

도 6은 본 발명의 실시예에 따른 호스트의 제어명령 송신 절차를 도시한 도면이다.6 is a diagram illustrating a control command transmission procedure of a host according to an embodiment of the present invention.

도 6을 참조하면, 호스트(100)는 모뎀(200)으로 지시할 제어명령이 있으면(S610), 공유정보로부터 확인된 제어명령 송신 버퍼(H2FCNTL)에 제어명령을 쓴다(S620). 이때, 제어명령은 초기화, 특정 채널에 대한 스캔 요청, 피코넷 제어, 동기화 요청, 자원할당 및 특정 정보 요청 등과 같이 모뎀(200)에 의해 수행되는 다양한 이벤트에 대한 지시일 수 있다.Referring to FIG. 6, if there is a control command to instruct the modem 200 (S610), the host 100 writes a control command to the control command transmission buffer H2FCNTL identified from the shared information (S620). In this case, the control command may be an indication of various events performed by the modem 200 such as initialization, scan request for a specific channel, piconet control, synchronization request, resource allocation, and specific information request.

호스트(100)는 제어명령 송신 버퍼에 제어명령을 저장한 후, 모뎀(200)으로 제어요청(CNTL_REQ) 인터럽트를 송신한다(S630).After storing the control command in the control command transmission buffer, the host 100 transmits the control request (CNTL_REQ) interrupt to the modem 200 (S630).

호스트(100)는 추가로 모뎀(200)으로 송신할 제어명령이 있어도, 송신하지 않고 제어완료 인터럽트(CNTL_DONE)를 수신할 때까지 대기한다(S640). 이때, 모뎀(200)은 제어명령 송신 버퍼에 다른 제어명령을 수신할 수 있는 상태이면, 예컨대, 제어명령을 확인하고 제어명령에 따른 이벤트를 시작하면, 제어완료 인터럽트를 송신할 수 있다.Even if there is a control command to be transmitted to the modem 200, the host 100 waits until it receives the control completion interrupt CNTL_DONE without transmitting (S640). In this case, when the modem 200 is capable of receiving another control command in the control command transmission buffer, for example, when the control command is confirmed and an event according to the control command is started, the modem 200 may transmit a control completion interrupt.

호스트(100)는 제어완료 인터럽트를 수신하면, 추가로 지시할 제어명령이 있는지를 확인한다(S650).When the host 100 receives the control completion interrupt, the host 100 checks whether there is a control command to additionally instruct (S650).

도 7은 본 발명의 실시예에 따른 호스트의 제어결과 수신 절차를 도시한 도면이다.7 is a diagram illustrating a procedure for receiving a control result of a host according to an exemplary embodiment of the present invention.

도 7을 참조하면, 호스트(100)는 모뎀(200)과의 인터페이스 작업을 수행하지않고, 보고(NOTIFY) 인터럽트를 대기한다(S700).Referring to FIG. 7, the host 100 does not perform an interface operation with the modem 200 and waits for a NOTIFY interrupt (S700).

모뎀(200)은 제어명령에 따른 이벤트를 수행하고, 이벤트의 수행결과 보고할 내용을 제어결과 보고 버퍼(F2HCNTL)에 기록하고 보고(NOTIFY) 인터럽트를 송신하며, 호스트(100)는 보고 인터럽트를 수신한다(S710).The modem 200 performs an event according to a control command, writes a content to be reported as a result of the execution of the event in the control result report buffer F2HCNTL, transmits a NOTIFY interrupt, and the host 100 receives a report interrupt. (S710).

호스트(100)는 보고 인터럽트를 수신하면 제어결과 보고 버퍼(F2HCNTL)로부터 제어명령에 대응하는 결과를 확인한다(S720).When the host 100 receives the report interrupt, the host 100 checks the result corresponding to the control command from the control result report buffer F2HCNTL (S720).

호스트(100)는 제어명령에 대응하는 결과를 확인한 후, 보고완료(NOTIFY_DONE) 인터럽트를 송신한다(S730).After checking the result corresponding to the control command, the host 100 transmits a report completion (NOTIFY_DONE) interrupt (S730).

한편, 호스트(100)는 도 6의 제어명령 송신 과정과 도 7의 제어결과 수신 과정을 비동기 방식으로 처리할 수 있음은 물론이다.Meanwhile, the host 100 may process the control command transmission process of FIG. 6 and the control result reception process of FIG. 7 in an asynchronous manner.

한편, 전술한 예에서는 호스트 및 모뎀 간의 패킷의 송수신 과정에서 송신 공유영역 및 수신 공유영역에 디스크립터를 설정하여 이용하는 경우를 예로 들어 설명하였지만, 송수신에 디스크립터가 불필요한 경우, 송수신 공유영역으로 메모리 블록만을 이용할 수도 있음은 물론이다.In the above-described example, a descriptor is set in the transmission sharing area and the reception sharing area during the transmission and reception of a packet between the host and the modem. For example, when a descriptor is not required for transmission and reception, only a memory block is used as the transmission and reception sharing area. Of course you can.

이와 같이, 본 발명은 수신 절차에서 메모리 블록을 빠르게 해제할 수 있어, 메모리 블록의 가용성을 높일 수 있고, 메모리 블록의 부족 현상을 개선할 수 있다.As described above, the present invention can quickly release the memory block in the reception procedure, thereby increasing the availability of the memory block and improving the shortage of the memory block.

또한, 본 발명에서 호스트는 모뎀으로 제어명령을 송신하고, 모뎀으로부터 제어명령에 대응하는 결과를 보고받을 수 있어, 사용자에 의한 모뎀 제어의 다양성 및 용이성을 제공할 수 있다.In addition, in the present invention, the host may transmit a control command to the modem and receive a result corresponding to the control command from the modem, thereby providing diversity and ease of modem control by the user.

이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.While the present invention has been described in detail with reference to the accompanying drawings, it is to be understood that the invention is not limited to the above-described embodiments. Those skilled in the art will appreciate that various modifications, Of course, this is possible. Accordingly, the scope of protection of the present invention should not be limited to the above-described embodiments, but should be determined by the description of the following claims.

Claims (11)

메모리 풀 내 적어도 하나의 메모리 블록을 송신 공유영역으로 설정하고, 상기 메모리 풀 내 상기 송신 공유영역으로 설정되지 않은 적어도 하나의 메모리 블록을 수신 공유영역으로 설정하는 모뎀; 및
상기 모뎀에 질의하여 상기 송신 공유영역 및 상기 수신 공유영역에 대한 공유정보를 확인하고, 상기 공유정보를 참조하여 송신 패킷을 상기 송신 공유영역에 저장하여 상기 모뎀으로 송신하고, 상기 모뎀에 수신된 수신 패킷을 상기 수신 공유영역으로부터 읽어와 상기 모뎀으로부터 상기 수신 패킷을 수신하는 호스트를 포함하며,
상기 모뎀은, 상기 수신된 패킷을 모두 읽어오지 않더라도, 상기 호스트에 의해 수신된 수신 패킷이 저장된 상기 적어도 하나의 메모리 블록을 상기 메모리 풀로 반환하고, 상기 수신 패킷의 더 수신되면 상기 메모리 풀에서 다른 상기 적어도 하나의 메모리 블록을 상기 수신 공유영역으로 재설정하는 것인 호스트 인터페이스 장치.
A modem configured to set at least one memory block in a memory pool as a transmission sharing area, and set at least one memory block not set as the transmission sharing area in the memory pool as a reception sharing area; And
Query the modem to confirm sharing information for the transmission sharing area and the reception sharing area, store transmission packets in the transmission sharing area with reference to the sharing information, and transmit them to the modem; A host reading a packet from the receiving sharing area and receiving the received packet from the modem,
The modem may return the at least one memory block in which a received packet received by the host is stored to the memory pool even if the received packet is not read in all, and if the received packet is further received, another modem from the memory pool. And resetting at least one memory block to the receive sharing area.
제1항에 있어서,
상기 공유정보는, 상기 송신 공유영역으로 설정된 메모리 블록의 정보를 포함하며,
상기 호스트는, 상기 메모리 블록의 정보를 참조하여 상기 송신 공유영역의 상기 적어도 하나의 메모리 블록에 상기 송신 패킷을 저장하고, 송신요청 인터럽트를 출력한 후 대기하다가, 송신완료 인터럽트를 수신하면, 이후의 상기 송신 패킷을 상기 송신 공유영역의 적어도 하나의 메모리 블록에 저장하며,
상기 모뎀은, 상기 송신요청 인터럽트를 확인하면 상기 송신 공유영역의 상기 적어도 하나의 메모리 블록 내 상기 송신 패킷을 외부로 송신하기 위해 송신 버퍼 처리한 후, 상기 송신완료 인터럽트를 송신하는 것인 호스트 인터페이스 장치.
The method of claim 1,
The sharing information includes information of a memory block set as the transmission sharing area,
The host stores the transmission packet in the at least one memory block of the transmission sharing area with reference to the information of the memory block, waits after outputting a transmission request interrupt, and then receives a transmission completion interrupt. Store the transmission packet in at least one memory block of the transmission sharing area,
The modem may transmit the transmission completion interrupt after processing the transmission buffer to transmit the transmission packet in the at least one memory block of the transmission sharing area to the outside when the transmission request interrupt is confirmed. .
제1항에 있어서,
상기 공유정보는, 상기 수신 공유영역으로 설정된, 메모리 블록의 정보, 외부로부터 상기 모뎀에 수신된 패킷의 개수, 상기 수신 공유영역으로부터 상기 호스트에 전달된 패킷의 개수 및 수신완료 인터럽트의 처리상태를 포함하며,
상기 호스트는, 상기 모뎀으로부터 수신요청 인터럽트를 수신하면, 상기 메모리 블록의 정보를 참조하여 상기 수신 공유영역의 첫 번째 메모리 블록으로부터 순차적으로 상기 수신 패킷을 읽어온 후, 읽어온 수신 패킷의 개수를 카운트하고, 상기 전달된 패킷의 개수를 변경 설정한 다음, 수신완료 인터럽트를 출력하여 읽어온 상기 수신 패킷이 저장된 메모리 블록을 상기 메모리 풀로 반환할 것을 상기 모뎀에 지시하며, 상기 공유정보로부터 상기 모뎀에 수신된 패킷을 모두 읽어왔음을 확인하면, 마지막으로 상기 전달된 패킷의 개수를 설정하고, 수신종료 인터럽트를 출력하고 수신 과정을 종료하며,
상기 모뎀은, 상기 수신완료 인터럽트를 확인하면, 상기 전달된 패킷의 개수에 대응하는 메모리 블록을 상기 메모리 풀로 반환하고, 상기 수신종료 인터럽트를 확인하면, 상기 마지막으로 전달된 패킷의 개수에 대응하는 메모리 블록을 상기 메모리 풀로 반환하며, 상기 메모리 풀로 반환된 메모리 블록이 있거나, 상기 재설정한 메모리 블록이 있으면, 상기 메모리 블록의 정보를 재설정하는 것인 호스트 인터페이스 장치.
The method of claim 1,
The sharing information includes information of a memory block set as the reception sharing area, the number of packets received by the modem from the outside, the number of packets transmitted from the reception sharing area to the host, and the processing status of the reception completion interrupt. ,
When the host receives a reception request interrupt from the modem, the host sequentially reads the reception packet from the first memory block of the reception sharing area by referring to the information of the memory block, and then counts the number of the received reception packets. Change and set the number of delivered packets, and output a reception interrupt to instruct the modem to return a memory block storing the received packet to the memory pool, and receive from the shared information to the modem. Confirming that all the received packets have been read, finally set the number of forwarded packets, output a reception interrupt, terminate the reception process,
The modem may return a memory block corresponding to the number of delivered packets to the memory pool when the received interrupt is confirmed, and when the reception interrupt is confirmed, the memory corresponding to the number of the last delivered packets. Returning a block to the memory pool, and resetting information of the memory block if there is a memory block returned to the memory pool or if the reset memory block is present.
제3항에 있어서, 상기 호스트는,
상기 수신완료 인터럽트의 처리상태로부터 상기 모뎀이 상기 전달된 패킷에 대응하는 메모리 블록을 반환중인지를 확인하고, 상기 메모리 블록을 반환중에 있지 않으면, 상기 전달된 패킷의 개수를 변경 설정한 후, 상기 수신완료 인터럽트를 출력하며,
상기 메모리 블록을 반환중이면, 상기 전달된 수신 패킷의 개수를 증가시키고 상기 수신완료 인터럽트를 출력하지 않으며, 상기 읽어온 수신 패킷의 이후 상기 수신 패킷이 저장된 메모리 블록으로부터 상기 이후 수신 패킷을 읽어오는 것인 호스트 인터페이스 장치.
The method of claim 3, wherein the host,
Check whether the modem is returning a memory block corresponding to the forwarded packet from the processing state of the reception completion interrupt; if the memory block is not returning, change the number of forwarded packets and set the received number; Outputs a completion interrupt,
If the memory block is being returned, increasing the number of received packets received and not outputting the received interrupt, and reading the subsequent received packets from the memory block in which the received packets are stored after the read received packets. Host interface device.
공유정보를 참조하여 공유영역의 제어 버퍼에 제어명령을 저장한 후 제어요청 인터럽트를 송신하며, 제어완료 인터럽트를 수신하면 상기 공유정보를 참조하여 보고 버퍼로부터 상기 제어명령에 대응하는 제어결과를 읽어오는 호스트; 및
상기 호스트의 요청에 따라 상기 공유정보를 제공하며, 상기 제어요청 인터럽트를 수신하면 상기 제어명령에 따른 이벤트를 수행하며, 상기 이벤트의 수행을 완료하면 상기 제어결과를 상기 보고 버퍼에 저장한 후 상기 제어완료 인터럽트를 송신하는 모뎀을 포함하되,
상기 호스트에 의한 상기 제어명령의 송신 및 상기 모뎀에 의한 상기 제어결과의 보고는, 비동기 방식으로 수행되는 것인 호스트 인터페이스 장치.
After the control command is stored in the control buffer of the shared area with reference to the shared information, the control request interrupt is transmitted. When the control completion interrupt is received, the control result corresponding to the control command is read from the report buffer by referring to the shared information. Host; And
The shared information is provided according to a request of the host, and upon receiving the control request interrupt, an event according to the control command is performed, and when the execution of the event is completed, the control result is stored in the report buffer and the control is performed. Includes a modem that sends a completion interrupt,
And sending the control command by the host and reporting the control result by the modem are performed in an asynchronous manner.
제5항에 있어서, 상기 제어명령은,
초기화, 특정 채널 스캔, 피코넷의 제어, 자원할당 및 특정 정보 요청과 같은 상기 모뎀에 의한 이벤트 수행을 지시하는 명령을 포함하는 호스트 인터페이스 장치.
The method of claim 5, wherein the control command,
Host interface device including instructions for performing an event by the modem, such as initialization, specific channel scan, control of the piconet, resource allocation, and specific information request.
호스트의 패킷 수신 방법으로서,
모뎀으로부터 수신된 패킷이 있음을 의미하는 수신요청 인터럽트를 수신하면, 공유정보를 참조하여 수신 공유영역의 디스크립터 및 상기 디스크립터에 연결된 적어도 하나의 메모리 블록으로부터 패킷을 하나씩 읽어오는 단계;
상기 수신된 패킷을 모두 읽어오지 않더라도, 읽어온 상기 패킷을 저장한 디스크립터 및 상기 메모리 블록이 존재하면, 상기 읽어온 패킷을 저장한 디스크립터 및 상기 메모리 블록을 메모리 풀로 반환할 것을 상기 모뎀에 지시하는 단계
를 포함하는 패킷 수신 방법.
As a packet reception method of the host,
Reading a packet from a descriptor of a reception sharing area and at least one memory block connected to the descriptor by referring to sharing information when receiving a reception request interrupt indicating that there is a packet received from a modem;
Instructing the modem to return the descriptor storing the read packet and the memory block to the memory pool if the descriptor storing the read packet and the memory block exist, even if all the received packets are not read.
Packet receiving method comprising a.
제7항에 있어서,
상기 모뎀에 질의하여 상기 메모리 풀 내 복수의 메모리 블록 중에서, 수신 공유영역으로 설정된 적어도 하나의 메모리 블록의 정보, 상기 모뎀에 수신된 패킷의 개수, 반환할 메모리 블록의 개수 및 수신완료 인터럽트의 처리상태를 포함하는 상기 공유정보를 확인하는 단계
를 더 포함하는 패킷 수신 방법.
The method of claim 7, wherein
Querying the modem for information on at least one memory block set as a reception sharing area among the plurality of memory blocks in the memory pool, the number of packets received by the modem, the number of memory blocks to return, and the processing status of a reception interrupt; Checking the sharing information including a
Packet receiving method further comprising.
제8항에 있어서,
상기 읽어오는 단계는, 상기 모뎀으로부터 상기 수신요청 인터럽트를 수신하면, 상기 공유정보를 참조하여 상기 수신 공유영역의 상기 적어도 하나의 메모리 블록으로부터 패킷을 하나씩 읽어온 다음, 상기 수신 공유영역으로부터 읽어온 패킷의 개수를 카운트하고, 상기 반환할 메모리 블록의 개수를 증가시키고, 상기 수신완료 인터럽트의 처리상태를 확인하여 상기 모뎀이 상기 반환할 메모리 블록을 반환중인지를 확인하는 단계를 포함할 때,
상기 지시하는 단계는, 상기 모뎀이 상기 메모리 블록을 반환중에 있지 않으면, 상기 수신완료 인터럽트를 출력하여 상기 반환할 메모리 블록을 상기 메모리 풀로 반환할 것을 상기 모뎀에 지시하는 제2 단계를 포함하며, 상기 반환할 메모리 블록의 개수는, 상기 수신요청 인터럽트의 수신 이후부터 상기 수신완료 인터럽트의 송신 이전까지 상기 호스트가 상기 수신 공유영역으로부터 읽어간 패킷의 개수로 설정되고,
상기 반환중인지를 확인하는 단계 및 상기 지시하는 제2 단계를 적어도 한번 수행한 후, 상기 지시하는 단계는, 상기 공유정보로부터 상기 수신된 패킷의 개수와 상기 읽어온 패킷의 개수가 동일한지를 확인하고, 동일함을 확인하면, 이전의 상기 수신완료 인터럽트를 송신한 후에 읽어온 패킷의 개수를 상기 반환할 메모리 블록의 개수로 설정하고, 수신종료 인터럽트를 출력하여 상기 수신 공유영역으로부터 패킷을 수신하는 과정을 종료하는 단계
를 포함하는 것인 패킷 수신 방법.
9. The method of claim 8,
In the reading step, when the reception request interrupt is received from the modem, the packet is read one by one from the at least one memory block of the reception sharing area with reference to the sharing information, and then the packet is read from the reception sharing area. Counting the number of memory units, increasing the number of memory blocks to be returned, and checking whether the modem is returning the memory blocks to be returned by checking the processing status of the reception interrupt.
And the indicating step includes a second step of instructing the modem to output the received interrupt to return the memory block to be returned to the memory pool if the modem is not returning the memory block. The number of memory blocks to be returned is set to the number of packets read from the reception sharing area by the host from the reception of the reception request interrupt until the transmission of the reception interrupt.
After confirming whether the returning step and the indicating second step are performed at least once, the indicating step includes: checking whether the number of received packets and the number of read packets are the same from the shared information; If it is confirmed that the same, the process of receiving the packet from the receiving sharing area by setting the number of packets read after transmitting the previously received reception interrupt to the number of the memory block to be returned, and outputting the reception interrupt Step to end
Packet receiving method comprising a.
제9항에 있어서, 상기 반환중인지를 확인하는 단계는,
상기 모뎀이 상기 반환할 메모리 블록을 반환중임을 확인하면, 상기 수신완료 인터럽트를 출력하지 않고, 상기 반환할 메모리 블록의 개수만 증가시키는 단계; 및
상기 수신 공유영역의 적어도 하나의 메모리 블록으로부터 이후의 수신된 패킷을 읽어온 다음, 상기 수신완료 인터럽트의 처리상태를 확인하는 단계
를 포함하는 것인 패킷 수신 방법.
10. The method of claim 9, wherein checking whether the return is being performed,
If the modem determines that the memory block to be returned is being returned, increasing the number of memory blocks to be returned without outputting the reception interrupt; And
Reading a subsequent received packet from at least one memory block of the receiving sharing area, and then checking a processing status of the received interrupt;
Packet receiving method comprising a.
제9항에 있어서,
상기 모뎀은, 상기 반환할 메모리 블록을 상기 메모리 풀로 반환하면, 상기 반환할 메모리 블록의 개수를 초기화하는 단계
를 더 포함하는 것인 패킷 수신 방법.
10. The method of claim 9,
When the modem returns the block of memory to be returned to the memory pool, initializing the number of memory blocks to be returned.
Packet receiving method further comprising.
KR1020120012889A 2012-02-08 2012-02-08 Apparatus and Method for Host Interface Active KR101302569B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120012889A KR101302569B1 (en) 2012-02-08 2012-02-08 Apparatus and Method for Host Interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120012889A KR101302569B1 (en) 2012-02-08 2012-02-08 Apparatus and Method for Host Interface

Publications (2)

Publication Number Publication Date
KR20130091525A KR20130091525A (en) 2013-08-19
KR101302569B1 true KR101302569B1 (en) 2013-09-02

Family

ID=49216685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120012889A Active KR101302569B1 (en) 2012-02-08 2012-02-08 Apparatus and Method for Host Interface

Country Status (1)

Country Link
KR (1) KR101302569B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461890B1 (en) 2016-12-07 2022-11-02 주식회사 알티미디어 Method and apparatus for providing interactive screen

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871729B1 (en) 2006-01-17 2008-12-05 (주)케이티에프테크놀로지스 Multimode terminal and data packet forwarding method
KR20090130215A (en) * 2001-08-31 2009-12-21 톰슨 라이센싱 Multi-function modems with external memory adapters, devices with such modems, and methods of using such modems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090130215A (en) * 2001-08-31 2009-12-21 톰슨 라이센싱 Multi-function modems with external memory adapters, devices with such modems, and methods of using such modems
KR100871729B1 (en) 2006-01-17 2008-12-05 (주)케이티에프테크놀로지스 Multimode terminal and data packet forwarding method

Also Published As

Publication number Publication date
KR20130091525A (en) 2013-08-19

Similar Documents

Publication Publication Date Title
US11442853B2 (en) Controlling method of a memory card
US20230396694A1 (en) Memory system allowing host to easily transmit and receive data
US12135641B2 (en) Controlling method of a memory card
TWI517635B (en) Memory device and its wireless communication control method
JP2008257419A (en) Communication adapter and data transfer method for communication adapter
US20090323723A1 (en) Wireless communication apparatus and packet transfer method thereof
US9832279B2 (en) Station, target apparatus, initiator apparatus, communication system, and communication method
CN108141902B (en) Wireless data acknowledgment communication using frame aggregation
KR101302569B1 (en) Apparatus and Method for Host Interface
KR102818734B1 (en) A method of transmitting and receiving wireless communication signal and an apparatus for transmitting and receiving wireless communication signal
US20120002587A1 (en) Communication processor and communication processing method
CN104412559B (en) Wireless usb protocol
US9052841B2 (en) Electronic device and data transfer method
KR101245082B1 (en) Signaling method and apparatus for channel swiching in wlan
KR100986988B1 (en) Interface device and method
WO2024140532A1 (en) Control message communication method and apparatus, device, and storage medium
JP5600740B2 (en) Response device, integrated circuit thereof, response method, and response system
KR100602891B1 (en) Network interface card and its DMMA data transmission / reception control method
JP6039350B2 (en) COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL PROGRAM
JP7079446B2 (en) Communication system and control method
JP6785009B2 (en) Communication device and control method of communication device
CN119729201A (en) Remote control and transmission device for multiple high-frame-rate cameras
JP2003233581A (en) Data communication control device having DMA control device
JP2003037596A (en) Communication device and method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20120208

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20130321

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20130805

PG1501 Laying open of application
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20130827

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20130827

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20160822

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20160822

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20180627

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20200720

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20210802

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20220705

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20230621

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20240624

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20250624

Start annual number: 13

End annual number: 13