WO2004086240A1 - Systeme de traitement de donnees avec une unite de commande d'acces direct en memoire pour stocker le descripteur du canal actif - Google Patents
Systeme de traitement de donnees avec une unite de commande d'acces direct en memoire pour stocker le descripteur du canal actif Download PDFInfo
- Publication number
- WO2004086240A1 WO2004086240A1 PCT/IB2004/050326 IB2004050326W WO2004086240A1 WO 2004086240 A1 WO2004086240 A1 WO 2004086240A1 IB 2004050326 W IB2004050326 W IB 2004050326W WO 2004086240 A1 WO2004086240 A1 WO 2004086240A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dma
- memory
- descriptor
- ddp
- data processing
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Definitions
- the invention relates to a data processing system.
- the invention further relates to a method for transmitting data.
- USB Universal Serial Bus
- Figure 1 schematically shows an arrangement comprising a host controller USBH, a system on chip SOC coupled via a USB cable USBC to the host device and
- the system on chip comprises a USB device function
- USBDC USB DC
- memory controller MC which are mutually coupled to an internal bus, for example a AHB bus as shown.
- Other devices may be coupled to the internal bus as well.
- the USB device function includes a DMA controller.
- the host establishes a transfer pipe to the endpoints.
- the host will send data to or receive data from endpoints implemented inside the device through the USB cable USBC.
- endpoints EP1 and EP3 will receive data from the Host. They are referred as OUT endpoint.
- EP2 and EP4 are capable of sending the data towards the host and are referred as IN endpoints.
- the data transfer is done in packets whose format is defined in the USB protocol.
- endpoint will have a buffer, which is capable of holding at least one packet of data corresponding to the endpoint.
- Each endpoint will have an assigned space in the system memory MEM, which will act as the destination or source for the data packet.
- the logical view of the data transfer from the endpoint to the memory is shown by the dotted lines. Physical data transfer happens through the AHB bus and memory controller MC.
- An OUT endpoint should transfer the packet data it received from the host USBH to the system memory. MEM before the next packet arrives. From there it may be transferred to another destination if desired. Similarly an IN endpoint should retrieve one packet of data from the system memory MEM before the request for the data from the host arrives.
- Data can be transferred from the endpoint buffer to the system memory MEM through the processor of the SOC or Direct Memory Access (DMA).
- DMA Direct Memory Access
- the Endpoints directly transfer the data to or from the memory through the DMA Controller implemented inside the USB Device core.
- Figure 2 illustrates a conventional implementation of a DMA Controller.
- DMA Controller comprises a DMA control logic DMAC, and a set of registers DMAREGS comprising information used by the DMA controller.
- the sets of registers are indicated as EP1_DMAREGS for Endpoint 1; EP2_DMAREGS for endpoint 2 and so on.
- the following information is comprised in the registers: The start address of the DMA buffer in the system memory MEM, (EP1_B,
- the length of the DMA Buffer in the system memory MEM Control information, such as the DMA-mode used and the maximum packet length, DMA count information (Number of bytes transferred) DMA status information
- a DMA transfer can be characterised by a structure describing these parameters. To support continuous transfer of data on an endpoint the DMA controller should keep the above information for the current and next buffers.
- the set of DMA registers for each endpoint will comprise:
- DMA Start Address register current (32 bit wide)
- DMA Start Address register next (32 bit wide)
- DMA length Register current (16 bit wide)
- DMA length Register next (16 bit wide)
- a major drawback of this conventional implementation is that the number of registers required inside the DMA controller increases proportionally with the number of * endpoints. This will cause a corresponding increase in gate count (silicon area). This is schematically illustrated in Figure 3. As shown therein the gate count is about 12K for a single endpoint and increases with about 0.8K for each succeeding end-point.
- a data processing system according to the invention is described by claim 1.
- a method according to the invention is described by claim 2.
- the proposed architecture uses a single physical resource to serve multiple endpoints in a time division multiplexed basis.
- the DMA controller uses the system memoiy itself to keep the information for the DMA transfers. DMA_REGS will not be implemented inside the DMA controller.
- the required number of gates is relatively low and independent of the allowable number of end -points.
- it has a set of place-holder registers for keeping the status of a running DMA operation.
- the information need to conduct a DMA transfer will be distributed inside the memory as DMA descriptors (DD).
- DD DMA descriptors
- Software create the DD and distribute it in the memory.
- the place-holder registers will be filled with the contents of DD when the DMA transfer is required.
- Figure 1 shows a conventional data processing device
- Figure 2 shows a conventional DMA controller
- Figure 3 shows the relation between the required number of gates and the number of end -points in the conventional DMA controller
- Figure 4 shows a data processing device according to the invention
- Figure 5 shows a method for transmitting data according to the invention
- Figure 6 shows the relation between the required number of gates and the number of end -points in the DMA controller of the data processing device according to the invention.
- FIG. 4 schematically shows a data processing system according to the invention.
- the data processing system comprises a USB interface USBDC for communicating with a USB host device USBH.
- the USB host is for example a PC
- the data processing system is for example a mobile consumer product, such as a portable digital assistant PDAs, mobile phone, a digital camera, or a portable storage device.
- the data processing system further comprises a DMA controller DMAC for enabling direct access to a memory MEM and a storage facility MEM for storing control information DD-EPO, DD-EP31 relating to the DMA transmission.
- the control information includes at least information indicative for the location of a buffer space dma_buffer_start_addr to be used by one or more DMA transmissions.
- the data processing system is characterized in that the control information is stored in a memory (MEM).
- the memory further comprises reference information (DDP-EPO, ..., DDP-EP31) indicating the location of the control information.
- the DMA controller has a single set of registers (TDREG) for storing a copy of the control information related to the active DMA stream.
- the control information information DD-EPO, DD-EP31 is stored in a memory area called USB Device Communication Area (UDCA) of the memory MEM, in which the DMA controller and the USB controller further store the device driver software.
- UDCA USB Device Communication Area
- Each endpoint is assigned a reserved location in this area which holds a pointer (DDP) to the location where the data descriptor DD for that endpoint is kept.
- DDP pointer
- the start address of the UDCA area is defined in the location UDCA_Head defined in the DMA Controller.
- the location for the DDP are derived from the endpoint number and the UDCA head register value. In practice the location is derived by adding the endpoint number multiplied by 4 to the UDCA head register value, when using word aligned addresses.
- a DMA descriptor DD represents one DMA transfer unit for the endpoint.
- the DD When the buffer indicated by the DD is full the DD will be moved to the retired status.
- DMA descriptors for an endpoint form a linked list, i.e. one DD points to the next DD to be serviced.
- the DMA controller is capable of fetching the next DD. Consequently the DMA transfer can go on for an indefinite period of time.
- a DMA transfer can be characterised by a structure describing the parameters controlling the DMA . This structure is called the DMA Descriptor.
- the DD is a structure consisting of 4 words (16 bytes). The fields are defined as below.
- the descriptor belongs to an isochronous endpoint. max_packet_size
- the DMA controller will stop using this descriptor when this limit is reached and will look for the next descriptor dma_buffer_start_addr
- DD_status The address from where the data has to be picked up or to be stored. This field is updated packet- wise by DMA controller. DD retired This bit is set when the DMA controller finishes the current Descriptor. This will happen when the end of the buffer is reached or a short packet is transferred (no isochronous endpoints) or an error condition is detected. DD_status
- the status of the DMA transfer is encoded in this field. packet valid
- This bit indicates that the last packet transferred to the memory is received with errors or not present dma count
- the number of bytes transferred by the DMA controller at any point of time is updated packet-wise by the DMA controller when it updates the descriptor.
- a method for transmitting data according to the invention is illustrated with reference to Figure 5.
- the DMA controller fetches a DMA descriptor pointer DD corresponding to an end-point in step a.
- the DMA descriptor is fetched from the location pointed to by the
- step c it is checked whether the DMA descriptor is in a retired state. Subsequently in step d the DMA descriptor is copied in a set of registers TDREG, provided that the DMA descriptor is not in Retired state. If DD is in a retired state DDP is updated in step e by the 'next_dd_pointer' in the currently fetched DD. Then steps b and c are repeated.
- step f a packet transfer is executed using the data copied into the set of registers TDREG,
- step g the copied DMA descriptor is updated to take into account the changes in the status of the transfer for the selected endpoint,
- step h the updated DMA descriptor is written back to the memory location from where it was read.
- the host will send the packets in a multiplexed fashion to the device.
- the first packet may belong to endpoint EP2 the second one from endpoint EP4 etc.
- the serviced endpoint changes from packet to packet.
- a case may occur, where a plurality of packets originate from the same endpoint, e.g. EP2.
- the flag is reset when the endpoint is different or DD is retired.
- Figure 6 schematically illustrates that the data processing system and the method for transferring data according to the invention allow an arbitrary number of end points using an architecture having a relatively low number of gates, the number being independent of the number of end-points.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP03100820 | 2003-03-28 | ||
| EP03100820.4 | 2003-03-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2004086240A1 true WO2004086240A1 (fr) | 2004-10-07 |
Family
ID=33041064
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2004/050326 Ceased WO2004086240A1 (fr) | 2003-03-28 | 2004-03-24 | Systeme de traitement de donnees avec une unite de commande d'acces direct en memoire pour stocker le descripteur du canal actif |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2004086240A1 (fr) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007003985A1 (fr) * | 2005-06-30 | 2007-01-11 | Freescale Semiconductor, Inc. | Dispositif et procede pour la commande d'une pluralite de taches d'acces direct en memoire |
| WO2007054763A1 (fr) * | 2005-11-09 | 2007-05-18 | Nokia Corporation | Dispositif, procede et projiciel permettant de serialiser des donnees au moyen d'un controleur a acces memoire direct |
| US8001430B2 (en) | 2005-06-30 | 2011-08-16 | Freescale Semiconductor, Inc. | Device and method for controlling an execution of a DMA task |
| US8572296B2 (en) | 2005-06-30 | 2013-10-29 | Freescale Semiconductor, Inc. | Device and method for arbitrating between direct memory access task requests |
| CN116244232A (zh) * | 2023-02-02 | 2023-06-09 | 北京奕斯伟计算技术股份有限公司 | Dma装置和数据传输方法 |
| CN120179588A (zh) * | 2025-05-22 | 2025-06-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种直接内存访问控制方法、系统、电子设备及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
| US6182165B1 (en) * | 1998-06-01 | 2001-01-30 | Advanced Micro Devices, Inc. | Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system |
| US6266715B1 (en) * | 1998-06-01 | 2001-07-24 | Advanced Micro Devices, Inc. | Universal serial bus controller with a direct memory access mode |
-
2004
- 2004-03-24 WO PCT/IB2004/050326 patent/WO2004086240A1/fr not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
| US6182165B1 (en) * | 1998-06-01 | 2001-01-30 | Advanced Micro Devices, Inc. | Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system |
| US6266715B1 (en) * | 1998-06-01 | 2001-07-24 | Advanced Micro Devices, Inc. | Universal serial bus controller with a direct memory access mode |
Non-Patent Citations (1)
| Title |
|---|
| "USB UNIVERSAL SERIAL BUS SPECIFICATION VERSION 1.0", UNIVERSAL SERIAL BUS (USB), XX, XX, 15 January 1996 (1996-01-15), pages 1 - 268, XP002917782 * |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007003985A1 (fr) * | 2005-06-30 | 2007-01-11 | Freescale Semiconductor, Inc. | Dispositif et procede pour la commande d'une pluralite de taches d'acces direct en memoire |
| US7930444B2 (en) | 2005-06-30 | 2011-04-19 | Freescale Semiconductor, Inc. | Device and method for controlling multiple DMA tasks |
| US8001430B2 (en) | 2005-06-30 | 2011-08-16 | Freescale Semiconductor, Inc. | Device and method for controlling an execution of a DMA task |
| US8572296B2 (en) | 2005-06-30 | 2013-10-29 | Freescale Semiconductor, Inc. | Device and method for arbitrating between direct memory access task requests |
| WO2007054763A1 (fr) * | 2005-11-09 | 2007-05-18 | Nokia Corporation | Dispositif, procede et projiciel permettant de serialiser des donnees au moyen d'un controleur a acces memoire direct |
| JP2009515269A (ja) * | 2005-11-09 | 2009-04-09 | ノキア コーポレイション | 直接メモリ・アクセスコントローラによるデータの直列化をもたらす装置、方法およびコンピュータ・プログラム |
| CN116244232A (zh) * | 2023-02-02 | 2023-06-09 | 北京奕斯伟计算技术股份有限公司 | Dma装置和数据传输方法 |
| CN120179588A (zh) * | 2025-05-22 | 2025-06-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种直接内存访问控制方法、系统、电子设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101539902B (zh) | 多计算机系统中节点的dma设备及通信方法 | |
| EP1896965B1 (fr) | Systeme de pointeurs de lecture et d'ecriture en antememoire des files d'attente de descripteurs dma | |
| US6871237B2 (en) | System for controlling data transfer protocol with a host bus interface | |
| US9411775B2 (en) | iWARP send with immediate data operations | |
| US7283549B2 (en) | Method for increasing the transmit and receive efficiency of an embedded ethernet controller | |
| JP2004348246A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
| CN100592273C (zh) | 执行dma数据传输的设备和方法 | |
| EP3077914B1 (fr) | Système et procédé de gestion et de soutien hôte virtuel adaptateur de bus (vhba) sur infiniband (ib) et pour soutenir efficace tampon usage avec une interface de mémoire externe unique | |
| US9213545B2 (en) | Storing data in any of a plurality of buffers in a memory controller | |
| CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
| US7552232B2 (en) | Speculative method and system for rapid data communications | |
| US20120278575A1 (en) | Method and Computer Program Product For Exchanging Message Data In A Distributed Computer System | |
| US7747808B2 (en) | USB host controller with memory for transfer descriptors | |
| CN114827151A (zh) | 一种异构服务器集群以及数据转发方法、装置和设备 | |
| US20080263171A1 (en) | Peripheral device that DMAS the same data to different locations in a computer | |
| US20040111532A1 (en) | Method, system, and program for adding operations to structures | |
| CN115550293B (zh) | 一种fsi主控制器及其端口路由装置和方法 | |
| WO2004086240A1 (fr) | Systeme de traitement de donnees avec une unite de commande d'acces direct en memoire pour stocker le descripteur du canal actif | |
| US20050005039A1 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
| US9244824B2 (en) | Memory sub-system and computing system including the same | |
| CN104636280B (zh) | 用于管道仲裁的电路和方法 | |
| US20140160954A1 (en) | Host ethernet adapter frame forwarding | |
| US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
| TWI416336B (zh) | 可共享緩衝器的網路介面卡與緩衝器共享方法 | |
| CN116132532A (zh) | 一种报文处理方法、装置及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| 122 | Ep: pct application non-entry in european phase |