Ethernet Controller Direct Data Streaming via Descriptors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High bandwidth streaming in Ethernet systems consumes significant CPU resources due to data copying, limiting the use of smaller and cheaper CPU cores and increasing power consumption, as well as requiring higher throughput on interconnects and memory.
Innovation Solution
The implementation of an optimized driver software architecture and hardware architecture that allows the Ethernet controller to directly stream data from the source/sink, reducing the CPU's involvement in data copying by using descriptors to initiate read/write transactions, enabling the Ethernet MAC to fetch data autonomously without CPU intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is copied by the CPU during high bandwidth streaming, then data can be transferred between kernel and user space with memory protection, but CPU resources are significantly consumed and power consumption increases
Solution Approach 1:
The patent extracts the data copying function from the CPU to dedicated hardware components (DMA controller and memory management unit). The DMA controller handles payload buffer management and data transfer, while the MMU handles address translation and memory protection, allowing the CPU to focus on higher-level tasks without being burdened by high-bandwidth data copying operations
Solution Approach 2:
The patent introduces intermediary hardware components (DMA controller and MMU) that mediate between the CPU, memory, and I/O devices. These intermediaries handle the complex tasks of data copying, address translation, and memory protection, enabling efficient high-bandwidth streaming without overloading the CPU
2Adaptability or versatility
If data is copied multiple times through system RAM, then data can be accessed by different components, but throughput requirements on interconnects and memory increase
Solution Approach 1:
The patent segments the data transfer path into separate dedicated channels: payload data flows through the AXI interconnect to the streaming peripheral, while descriptor data flows through a separate path to the Ethernet controller. This segmentation eliminates the need for multiple copies of the same data to traverse the same interconnect, reducing throughput requirements while maintaining accessibility
Solution Approach 2:
The patent changes the data access model from sequential copying through system RAM to direct parallel access from source and sink buffers. The Ethernet controller can directly read payload data from the streaming peripheral's buffer without it first being copied to system RAM, adding a direct access dimension to the data flow architecture
3Ease of manufacture
If the CPU copies data to system RAM buffers, then data can be prepared for Ethernet transmission, but the system requires higher performance and more expensive CPU cores
Solution Approach 1:
The patent implements self-service architecture where the Ethernet controller and streaming peripheral autonomously manage their own data buffers and descriptors without CPU intervention. The DMA controller automatically transfers data between buffers, and the MMU automatically translates addresses, allowing the system to achieve high streaming bandwidth with a smaller, less expensive CPU core
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method of data streaming in a streaming system (200) that comprises a processor (202) and a controller (204) operably coupled to a streaming peripheral (214) via a shared interconnect (206) is described. The method comprises at the controller, receiving at least one descriptor that points to at least one header data element in memory and at least one payload buffer element in the streaming peripheral (214); reading the at least one descriptor (211) by the controller (204); fetching by the controller the at least one header data element from memory and the at least one payload element from the payload buffer (212) in the streaming peripheral (214) referred to by the descriptor (211).