KR20020001262A - Memory management of endpoints in USB device - Google Patents

Memory management of endpoints in USB device Download PDF

Info

Publication number
KR20020001262A
KR20020001262A KR1020000035706A KR20000035706A KR20020001262A KR 20020001262 A KR20020001262 A KR 20020001262A KR 1020000035706 A KR1020000035706 A KR 1020000035706A KR 20000035706 A KR20000035706 A KR 20000035706A KR 20020001262 A KR20020001262 A KR 20020001262A
Authority
KR
South Korea
Prior art keywords
data
host
endpoints
endpoint
memory area
Prior art date
Application number
KR1020000035706A
Other languages
Korean (ko)
Other versions
KR100688477B1 (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 KR1020000035706A priority Critical patent/KR100688477B1/en
Publication of KR20020001262A publication Critical patent/KR20020001262A/en
Application granted granted Critical
Publication of KR100688477B1 publication Critical patent/KR100688477B1/en

Links

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

PURPOSE: A method for managing memories of end points within a USB device is provided to improve data transmission efficiency of the USB device. CONSTITUTION: A USB(Universal Serial Bus) includes a device communicating with a host. A memory area is embedded in the device for storing data during communication with the host. End points receive assignment of the whole memory area and are connected with the host for receiving data from the host or transmitting data to the host. Each end point shares the memory area and reports the size of memory of each end point as the size of the memory area to the host. In case of receiving data from the host, the rest end points except end points being used in data receiving generate NAK signals to out token signals of sending data from the host, so that data receiving is delayed. In case of transmitting data to the host, flag bit is generated from the memory area connected to end points being used in data transmission. The end points are divided into receiving-only end points receiving data from the host and transmitting-only end points transmitting data to the host.

Description

USB 디바이스 내 엔드포인트들의 메모리 관리 방법{Memory management of endpoints in USB device}Memory management of endpoints in USB devices

본 발명은 디바이스 제어 방법에 관한 것으로서, 특히 USB 디바이스 내 엔드포인트들의 메모리 관리 방법에 관한 것이다.The present invention relates to a device control method, and more particularly, to a memory management method of endpoints in a USB device.

USB(Universial Serial Bus)는 개인용 컴퓨터의 시스템 버스에 주변장치들을 연결시키기 위하여 산업계에서 정의된 하나의 인터페이스 방식이다. USB는 마우스, 키보드, 모니터, 프린터, 대용량 저장 드라이버(mass storage driver), 모뎀, 펙스 등을 포함하는 다양한 주변장치들과의 1:1 인터페이스(single interface)를 특징으로 한다. 이것은 제조단가를 줄이고 개인용 컴퓨터 사용자들로 하여금 그들의 시스템을 구성하는 데에 쉽도록 한다.Universal Serial Bus (USB) is an industry-defined interface for connecting peripherals to the system bus of personal computers. USB features a 1: 1 interface with various peripherals, including mice, keyboards, monitors, printers, mass storage drivers, modems, faxes, and more. This reduces manufacturing costs and makes it easier for personal computer users to configure their systems.

USB는 토큰 방식을 사용하는(token-based) 버스 아키텍쳐(bus architecture)이다. USB 호스트(host)는 버스 상에 토큰들을 뿌리고(broadcast), 토큰에 포함된 어드레스와 매칭되는 USB 디바이스는 호스트로 데이터를 전달하거나 호스트로부터 데이터를 받아들이거나 한다.USB is a token-based bus architecture. The USB host broadcasts the tokens on the bus, and the USB device matching the address contained in the token transfers data to or accepts data from the host.

USB 디바이스는 호스트와의 커뮤니케이션에 사용되는 다수개의 채널(channel)들을 제공할 수 있으며, USB 명세서 상의 일반적인 용어로서 이러한 채널들은 "파이프들"(pipes)로 언급된다. 각각의 파이프는 다비이스 내의 엔드포인트들(endpoints)과 호스트를 연결하여, 디바이스는 호스트로부터의 데이터를 엔드포인트들에 수신하고 엔드포인트들에 데이터를 기입하여 그 데이터를 호스트로 송신한다. 즉, 각각의 파이프들은 양방향으로(bidirectional) 데이터 전송 가능하다. 그리고, 호스트와 디바이스 사이의 데이터 커뮤니케이션시에는 초기화때 호스트는 각 디바이스 내의 엔드포인트 수와 크기를 보고받은 후에, 보고된 엔드포인트의 크기보다 큰 데이터를 전송해야하는 경우에는 큰 데이터를 엔드포인트의 크기로 잘라서 여러개의 패킷(packet)으로 전송한다.A USB device can provide a number of channels used for communication with a host, and as a general term in the USB specification, these channels are referred to as "pipes." Each pipe connects a host with endpoints in the device, so that the device receives data from the host at the endpoints, writes data to the endpoints, and sends the data to the host. In other words, each pipe can transmit data bidirectionally. In case of data communication between the host and the device, when the host receives the number and size of endpoints in each device during initialization, if the data needs to be transmitted larger than the size of the reported endpoint, the large data is converted into the size of the endpoint. Cut and send in multiple packets.

기존의 USB 디바이스들 내의 엔드포인트들은 USB 스펙(spec.)에 따라 각각의 메모리 영역을 가진다. 각 엔드포인트에 적용되는 메모리로 플립플롭(F/F)으로 구성된 피포(FIFO)를 사용하는 경우와 레지스터들로 구성되는 메모리 셀을 사용하는 경우가 있다. FIFO를 사용하는 경우는 플립플롭(F/F)을 제어하기 위한 로직이 줄어드는 잇점과 메모리의 크기가 고정되는 문제점을 지니는 반면에, 메모리 셀을 사용하는 경우는 레지스터들을 선택적으로 설정함에 따라 메모리의 크기를 바꿀 수 있다. 도 1A 및 도 1B는 이러한 엔드포인트들의 메모리 관리를 나타내는 도면이다.Endpoints in existing USB devices have their respective memory areas in accordance with the USB specification. There are cases where a memory applied to each endpoint uses a FIFO composed of flip-flops (F / F) and a memory cell composed of registers. The use of FIFOs has the advantage that the logic for controlling flip-flops (F / F) is reduced and the size of the memory is fixed, whereas in the case of using memory cells, the memory of the memory can be set by selectively setting registers. You can change the size. 1A and 1B illustrate memory management of these endpoints.

즉, 도 1A에서 보여주듯이, 엔드포인트들, EP0,EP1,…,EPn,은 x 바이트, y 바이트,…, z 바이트로 각각 설정되어 있는 데, 이는 플립플롭(F/F)으로 구성된 엔드포인트들은 한정된 메모리 크기를 갖는다는 것을 나타낸다. 도 1B에서는 각각의 엔드포인트들, EP0,EP1,…,EPn,은 시작 어드레스와 메모리 크기를 지정하는 부분을 포함하여, 레지스터들로 구성되는 메모리 셀들, n 바이트,은 시작 어드레스와 메모리 크기 별로 분할되어 분할된 메모리 셀 영역들이 해당 엔드포인트들에 각각 대응되도록 설정된다. 이는 엔드포인트들에 지정되는 메모리 크기에 따라 해당 엔드포인트의 메모리 크기가 설정되는 것으로서, 엔드포인트의 메모리 크기가 가변 가능함을 나타낸다.That is, as shown in FIG. 1A, the endpoints EP0, EP1,... , EPn, x bytes, y bytes,… , z bytes, respectively, indicating that endpoints configured as flip-flops (F / F) have a finite memory size. In Fig. 1B, the respective endpoints EP0, EP1,... Where EPn includes a portion specifying a start address and a memory size, n bytes, and n are divided by the start address and the memory size to correspond to the corresponding endpoints, respectively. Is set to be. This means that the memory size of the endpoint is set according to the memory size assigned to the endpoint, indicating that the memory size of the endpoint is variable.

그러나, 이 두가지 경우 모두는 호스트와 디바이스 사이의 데이터 전송 초기화 때 호스트에게 각 디바이스 내의 엔드포인트 수와 크기를 보고하게 된다. 그래서 데이터 전송 전에 설정된 엔드포인트의 크기는 가변 가능한 레지스터로 구성되는 엔드포인트임에도 불구하고 그 보고된 엔드포인트의 크기로만 전송되어질 데이터의 양이 결정된다. 즉, 엔드포인트의 크기 이상의 데이터가 전송되는 경우에는 어쩔 수 없이 데이터를 나누어 전송해야 한다. 이에 따라 데이터 전송 효율이 떨어지는 현상이 발생한다.However, both cases report the number and size of endpoints in each device to the host when initiating data transfer between the host and the device. Thus, although the size of the endpoint set before the data transfer is an endpoint consisting of a variable register, the amount of data to be transferred is determined only by the size of the reported endpoint. In other words, when data larger than the size of an endpoint is transmitted, data must be divided and transmitted. As a result, a phenomenon in which data transmission efficiency is lowered occurs.

그러므로, USB 디바이스로의 데이터 전송시 한번에 많은 양의 데이터를 전송할 수 있는 방법이 필요하다. 물론, 엔드포인트의 크기를 크게 함으로써 많은 데이터를 전송하는 것이 가능하지만 이는 하드웨어 구성상 비효율적인 문제점을 내포한다.Therefore, there is a need for a method that can transfer a large amount of data at once when transferring data to a USB device. Of course, it is possible to transmit a lot of data by increasing the size of the endpoint, but this implies an inefficient problem in hardware configuration.

본 발명의 목적은 USB 디바이스의 데이터 전송 효율을 향상시킬 수 있는 엔드포인트의 메모리 구성방법을 제공하는 것이다.It is an object of the present invention to provide a memory configuration method of an endpoint that can improve the data transfer efficiency of a USB device.

본 발명의 상세한 설명에서 사용되는 도면을 보다 충분히 이해하기 위하여, 각 도면의 간단한 설명이 제공된다.In order to more fully understand the drawings used in the detailed description of the invention, a brief description of each drawing is provided.

도 1A 내지 1B는 종래의 USB 디바이스 내 엔드포인트들의 메모리 관리를 나타내는 도면이다.1A-1B illustrate memory management of endpoints in a conventional USB device.

도 2는 본 발명의 일실시예에 따른 USB 디바이스 내 엔드포인트들의 메모리 관리를 나타내는 도면이다.2 is a diagram illustrating memory management of endpoints in a USB device according to an embodiment of the present invention.

상기 목적을 달성하기 위하여 본 발명의 USB 엔드 포인트의 메모리 관리 방법은 호스트와 커뮤니케이션하는 디바이스를 포함하는 USB에 있어서, 상기 디바이스에 내장되어 상기 커뮤니케이션시 데이터가 저장되는 메모리 영역; 및 상기 메모리 영역 전체가 할당되고 상기 호스트와 연결되어 상기 호스트로부터 또는 상기 호스트로 상기 데이터를 전송하는 엔드포인트들을 구비하여, 상기 엔드포인트들 각각은 상기 메모리 영역을 공유하고 상기 호스트로 자신의 메모리 크기를 상기 메모리 영역의 크기로 보고하는 것을 특징으로 한다.In order to achieve the above object, a memory management method of a USB endpoint of the present invention comprises a USB including a device for communicating with a host, the memory area being embedded in the device and storing data during the communication; And endpoints, wherein the entire memory area is allocated and connected with the host to transfer the data to or from the host, each of the endpoints sharing the memory area and having its memory size to the host. Is reported as the size of the memory area.

바람직하기로, 상기 호스트로부터 데이터를 수신하는 경우에 상기 데이터 수신에 사용되는 상기 엔드포인트 이외의 나머지 상기 엔드포인트들은 상기 호스트로부터의 데이터를 내보내겠다는 아웃 토큰 신호에 대하여 NAK 신호를 발생하여 데이터 수신을 지연시키고, 상기 호스트로 데이터를 송신하는 경우에는 상기 데이터 송신에 사용되는 엔드포인트와 연결되는 상기 메모리 영역에서 플래그 비트를 발생하여 다른 데이터의 기입이 방지되도록 하는 것을 특징으로 한다.Preferably, when receiving data from the host, the other endpoints other than the endpoint used to receive the data generate a NAK signal for an out token signal to send out data from the host to receive data. In the case of delaying and transmitting data to the host, flag bits are generated in the memory area connected to the endpoint used for the data transmission to prevent writing of other data.

또한, 상기 엔드포인트들은 상기 호스트로부터 전송되는 데이터를 수신하는 수신 전담 엔드포인트들과 상기 호스트로 데이터를 전송하는 송신 전담 엔드포인트들로 나뉘어지는 것을 특징으로 한다.In addition, the endpoints are divided into dedicated reception endpoints receiving data transmitted from the host and transmission dedicated endpoints transmitting data to the host.

이와 같은 본 발명의 USB 엔드포인트 메모리 관리 방법은 데이터 전송효율을 향상시킨다.The USB endpoint memory management method of the present invention improves data transfer efficiency.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 대하여, 동일한 참조부호는 동일한 부재임을 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. For each figure, like reference numerals denote like elements.

도 2는 본 발명의 일실시예에 따른 엔드포인트의 메모리 구성 방법을 나타내는 도면이다. 도 2에서 엔드포인트들, EP0,EP1,…,EPn-1,EPn,은 2개의 그룹으로 나뉘어져, 각각의 그룹은 송신 또는 수신을 전담한다.2 is a diagram illustrating a memory configuration method of an endpoint according to an embodiment of the present invention. In Fig. 2, the endpoints EP0, EP1,... , EPn -1 , EPn, are divided into two groups, each group dedicated to transmission or reception.

송신과 수신을 각각 전담하도록 엔드포인트들을 구분하는 이유는 송신과 수신을 구분하지 않고 엔드포인트들로 데이터를 송수신하게 되면, 송신의 경우 호스트로부터 데이터를 받아들이겠다는 토큰, 즉 인 토큰(IN token)이 발생되기 전 까지 송신될 데이터들이 엔드포인트들, EP0,EP1,…,EPn-1,EPn,에 저장되어 있어야 하기 때문에 송신 대기중인 동안 수신을 할 수 없으므로, 데이터 전송 효율이 떨어지게 된다. 그래서, 송신 전담 엔드포인트들, EP0,EP1,…,을 통하여 호스트로 데이터를 전송하는 동안 수신 전담 엔드포인트들, …, EPn-1,EPn,을 통해서는 데이터를 수신하게 되어 데이터 전송 효율이 향상된다.The reason for distinguishing the endpoints to be dedicated to sending and receiving separately is that when data is sent to and received from the endpoint without distinguishing between sending and receiving, a token to receive data from the host in the case of transmission is called an IN token. The data to be transmitted until it is generated is known as endpoints, EP0, EP1,... Since it should be stored at, EPn -1 , EPn, it can not be received while waiting for transmission, which reduces the data transmission efficiency. So, the dedicated transmit endpoints, EP0, EP1,... Dedicated receive endpoints while transferring data to the host via,. The data transmission efficiency is improved by receiving data through EPn- 1 , EPn.

이러한 엔드포인트들, EP0,EP1,…,EPn-1,EPn, 각각에 할당되는 메모리는 USB 디바이스에 내장되는 메모리 영역 전체가 되도록 설정된다. 도 2에서 보여주듯이, 송신 전담 엔드포인트들, EP0,EP1,…, 및 수신 전담 엔드포인트들,…, EPn-1,EPn, 각각은 n 바이트의 레지스터로 구성된다. n 바이트의 메모리 크기를 갖는 엔드포인트들은 호스트로부터의 프로토콜 리셋(protocol reset) 명령 이후에 해당 디바이스 어드레스가 할당되면 자신의 메모리 크기 즉, 최대 크기를 호스트로 보고하게 된다.These endpoints, EP0, EP1,... The memory allocated to, EPn- 1 , EPn, respectively, is set to be the entire memory area embedded in the USB device. As shown in Fig. 2, the dedicated transmit endpoints, EP0, EP1,... , And receive dedicated endpoints,... , EPn -1 , EPn, each consisting of n bytes of registers. Endpoints with a memory size of n bytes will report their memory size, or maximum size, to the host if the device address is allocated after a protocol reset command from the host.

통상적으로, 메모리 크기가 작은 엔드포인트로 데이터를 전송할 때에 데이터를 여러개의 패킷으로 나누어 전달하고 각 패킷을 전달할 때 마다 실제적인 데이터와는 상관없는 제어 신호들 예컨대, 디바이스 어드레스, 프레임 시작 신호(SOP), 에러 정정 신호(CRC), 패킷 번호(PID), 프레임 끝 신호(EOP) 등도 매번 전달된다. 따라서 본 발명에 의하면, 만약 엔드포인트로 전송되는 데이터가 엔드포인트의 최대 크기 보다 작으면 한번에 데이터 전송이 완료되고, 엔드포인트의 크기 보다 큰 용량의 데이터가 전송되는 경우에는 비록 패킷으로 나누어 전송해야 하지만 종래의 크기가 작은 엔드포인트에 비하면 그 패킷의 수는 작다. 즉, 패킷으로 전송되어질 횟수가 상대적으로 작다는 것을 의미한다. 그리고, 패킷을 전달할 때 마다 실제적인 데이터와는 상관없는 제어 신호들에 연관되는 마이크로 콘트롤러(MCU)의 인터럽트 동작 또한 줄어들게 된다.In general, when transmitting data to an endpoint with a small memory size, data is divided into several packets, and each packet is transmitted with control signals irrelevant to actual data, such as a device address and a frame start signal (SOP). The error correction signal CRC, the packet number PID, the end frame signal EOP, and the like are also transmitted each time. Therefore, according to the present invention, if the data transmitted to the endpoint is smaller than the maximum size of the endpoint, the data transmission is completed at one time. The number of packets is small compared to conventional small endpoints. That is, the number of times to be transmitted in the packet is relatively small. Each time a packet is delivered, the interrupt operation of the microcontroller (MCU) associated with control signals irrelevant to the actual data is also reduced.

그런데, 각 엔드포인트들, EP0,EP1,…,EPn-1,EPn,이 동일한 메모리 영역, n바이트를 사용하고 있으므로 송수신되는 데이터들 간 충돌이 발생할 수 있다. 이를 방지하기 위하여 본 발명은 다음과 같은 방법을 사용한다.However, each endpoint, EP0, EP1,... Since EPn -1 and EPn use the same memory area and n bytes, conflicts between data transmitted and received may occur. In order to prevent this, the present invention uses the following method.

먼저, 디바이스가 데이터 수신할 때 하나의 엔드포인트 예컨대, EPn이 n 바이트의 메모리를 사용하여 데이터를 수신하고 있다고 가정하자. 그러면, 나머지 엔드포인트들은 호스트로부터 데이터를 내보내겠다는 토큰, 즉 아웃 토큰(OUT token)에 대하여 현재 데이터를 수신할 수 없다는 내크(NAK) 신호를 송신함으로써, 마이크로 콘트롤러(MCU)가 엔드포인트 EPn에 의하여 사용된 n 바이트의 데이터들을 모두 읽어갈 때 까지 데이터의 수신이 지연된다.First, suppose that one endpoint, for example EPn, is receiving data using n bytes of memory when the device receives data. The remaining endpoints then send a NAK signal to the token to export data from the host, i.e., the OUT token, which indicates that the microcontroller (MCU) is sent by the endpoint EPn. The reception of data is delayed until all the n bytes of used data have been read.

다음에, 디바이스가 데이터를 송신할 때 예컨대, 엔드포인트 EP0를 통하여 전송되는 경우에 전송할 데이터가 n 바이트의 메모리에 있으면 플래그 비트(flag bit)가 발생되어 다른 데이터의 기입이 방지되도록 한다.Next, when the device transmits data, for example when it is transmitted via endpoint EP0, a flag bit is generated if the data to be transmitted is in n bytes of memory to prevent writing of other data.

따라서, 엔드포인트들이 메모리를 공유하더라도 데이터 충돌없이 데이터의 송수신이 가능하다.Thus, even if endpoints share memory, data can be transmitted and received without data collision.

이상의 방법을 적용한 하나의 예를 들어, 본 발명에 의하여 데이터 전송효율이 향상되는 것을 설명하고자 한다. 1000 바이트의 데이터를 전송하는 데 있어서, 디바이스의 엔드포인트는 256 바이트의 메모리를 갖고 콘트롤(CONTROL), 인터럽트(INTERRUPT), 및 입출력(IN/OUT) 엔드포인트 3개로 구성된다고 하자.As an example of applying the above method, it will be described that the data transmission efficiency is improved by the present invention. In transmitting 1000 bytes of data, a device's endpoint has 256 bytes of memory and consists of three CONTROL, INTERRUPT, and IN / OUT endpoints.

이 경우, 종래의 방법으로는 입출력 엔드포인트의 크기는 나머지 콘트롤, 인터럽트 엔드포인트들에 작은 크기를 할당한다 해도 64 바이트 정도가 된다. 1000 바이트의 데이터를 처리하려면, USB 상에서 16번의 상호작용(transaction)과 MCU가데이터를 읽어가는 데 소요되는 16번의 인터럽트 및 데이터를 읽어가는 데 소요되는 시간 및 호스트가 다음 데이터를 보내고자 하는 아웃 토큰(OUT token)에 대해 데이터를 받을 수 없다는 내크(NAK) 신호의 응답 등이 진행되어야 한다.In this case, in the conventional method, the size of the input / output endpoint is about 64 bytes even if a small size is allocated to the remaining control and interrupt endpoints. To handle 1000 bytes of data, 16 interactions on the USB, 16 interrupts for the MCU to read the data, time for reading the data, and an out token for the host to send the next data A response to the NAK signal indicating that data cannot be received for the (OUT token) should be processed.

그러나, 본 발명에 따라, 256 바이트를 엔드포인트들에 할당하는 경우에는 4번의 상호작용과 MCU가 데이터를 읽어가는 데 소요되는 4번의 인터럽트 및 데이터를 읽어가는 동안의 NAK 응답 등이 진행되면 된다.However, according to the present invention, when allocating 256 bytes to the endpoints, four interactions and four interrupts required to read data and NAK response while reading data are required.

이런 결과는 데이터 전송을 처리하는 시간 중 많은 시간을 차지하는 아웃 토큰(OUT token)을 할당받고, 핸드 쉐이크(handshake)하는 과정과 MCU에서 인터럽트를 처리하는 시간인 것을 고려한다면 데이터 전송 효율은 30% 정도 향상된다.This result is about 30% of data transfer efficiency considering that it is allocated out token which takes much of the time to process the data transmission, handshake time and interrupt processing in the MCU. Is improved.

본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 본 발명의 USB 엔드포인트 메모리 관리 방법은 데이터 전송효율을 향상시킨다.The USB endpoint memory management method of the present invention described above improves data transfer efficiency.

Claims (3)

호스트와 커뮤니케이션하는 디바이스를 포함하는 USB에 있어서,In a USB including a device to communicate with the host, 상기 디바이스에 내장되어 상기 커뮤니케이션시 데이터가 저장되는 메모리 영역; 및A memory area embedded in the device to store data during the communication; And 상기 메모리 영역 전체가 할당되고 상기 호스트와 연결되어 상기 호스트로부터 또는 상기 호스트로 상기 데이터를 전송하는 엔드포인트들을 구비하여,An endpoint having the entire memory area allocated and connected with the host to transmit the data to or from the host, 상기 엔드포인트들 각각은 상기 메모리 영역을 공유하고 상기 호스트로 자신의 메모리 크기를 상기 메모리 영역의 크기로 보고하는 것을 특징으로 하는 USB 엔드포인트의 메모리 관리 방법.Each of the endpoints sharing the memory area and reporting its memory size to the host as the size of the memory area. 제1항에 있어서,The method of claim 1, 상기 호스트로부터 데이터를 수신하는 경우, 상기 데이터 수신에 사용되는 상기 엔드포인트 이외의 나머지 상기 엔드포인트들은 상기 호스트로부터의 데이터를 내보내겠다는 아웃 토큰 신호에 대하여 NAK 신호를 발생하여 데이터 수신을 지연시키고,When receiving data from the host, the other endpoints other than the endpoint used to receive the data generate a NAK signal for the out token signal to send out data from the host to delay data reception. 상기 호스트로 데이터를 송신하는 경우, 상기 데이터 송신에 사용되는 엔드포인트와 연결되는 상기 메모리 영역에서 플래그 비트를 발생하여 다른 데이터의 기입이 방지되도록 하는 것을 특징으로 하는 USB 엔드포인트의 메모리 관리방법.When transmitting data to the host, the memory management method of the USB endpoint to generate a flag bit in the memory area connected to the endpoint used for the data transmission to prevent the writing of other data. 제1 항에 있어서, 상기 엔드포인트들은The method of claim 1, wherein the endpoints are 상기 호스트로부터 전송되는 데이터를 수신하는 수신 전담 엔드포인트들과 상기 호스트로 데이터를 전송하는 송신 전담 엔드포인트들로 나뉘어지는 것을 특징으로 하는 USB 엔드포인트의 메모리 관리방법.And a dedicated dedicated endpoint for receiving data transmitted from the host and a dedicated dedicated endpoint for transmitting data to the host.
KR1020000035706A 2000-06-27 2000-06-27 Memory management of endpoints in USB device KR100688477B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000035706A KR100688477B1 (en) 2000-06-27 2000-06-27 Memory management of endpoints in USB device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000035706A KR100688477B1 (en) 2000-06-27 2000-06-27 Memory management of endpoints in USB device

Publications (2)

Publication Number Publication Date
KR20020001262A true KR20020001262A (en) 2002-01-09
KR100688477B1 KR100688477B1 (en) 2007-03-08

Family

ID=19674225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000035706A KR100688477B1 (en) 2000-06-27 2000-06-27 Memory management of endpoints in USB device

Country Status (1)

Country Link
KR (1) KR100688477B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100557215B1 (en) * 2003-08-19 2006-03-10 삼성전자주식회사 Endpoint Controller of USB device and Method of the same
KR101012208B1 (en) * 2008-06-17 2011-02-08 주식회사 동부하이텍 Method For Increasing Efficiency of End Point Memory in USB Devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100290729B1 (en) * 1998-01-07 2001-05-15 클라크 3세 존 엠. Apparatus and method of transmitting and receiving usb isochronous data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100557215B1 (en) * 2003-08-19 2006-03-10 삼성전자주식회사 Endpoint Controller of USB device and Method of the same
KR101012208B1 (en) * 2008-06-17 2011-02-08 주식회사 동부하이텍 Method For Increasing Efficiency of End Point Memory in USB Devices

Also Published As

Publication number Publication date
KR100688477B1 (en) 2007-03-08

Similar Documents

Publication Publication Date Title
US6122676A (en) Apparatus and method for transmitting and receiving data into and out of a universal serial bus device
KR101077900B1 (en) Method for communication of interface device of SoC-based system network and interface device communicating by the same
US6219736B1 (en) Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
EP1428131B1 (en) Multiple channel interface for communications between devices
KR100290944B1 (en) An apparatus and method for providing an interface to a compound universal serial bus controller
US7640385B2 (en) Dual-mode bus station and system for communications
US7058748B1 (en) ATA device control via a packet-based interface
US20020009075A1 (en) System for reducing bus overhead for communication with a network interface
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
EP0772831B1 (en) Bidirectional parallel signal interface
US5896549A (en) System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register
US6529521B1 (en) Data storage system
US20070011386A1 (en) Usb host controller with memory for transfer descriptors
EP1121633A1 (en) Method of and apparatus for dispatching a processing element to a program location
KR20040041623A (en) Bus system and bus interface for connection to a bus
US7610415B2 (en) System and method for processing data streams
EP1759297B1 (en) Interrupt scheme for bus controller
KR100688477B1 (en) Memory management of endpoints in USB device
KR101197294B1 (en) Method for communication of interface device in SoC-based system network for QoS and improvement of transfer efficiency
US20040078502A1 (en) Virtual I/O device coupled to memory controller
KR20040043198A (en) Bus system and bus interface
KR100602204B1 (en) Controll system have main controller and peripheral controller, metnod for bus connection
US6421745B1 (en) Asynchronous connections with scattering page tables for transmitting data from a producer device to a consumer device over an IEEE 1394 serial data bus
US20030093603A1 (en) Apparatus and method for responding to a interruption of a packet flow to a high level data link controller in a signal processing system
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller

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: 20130131

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee