Changes between Version 6 and Version 7 of Component/Vci Master Nic
- Timestamp:
- Apr 1, 2020, 7:43:25 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Component/Vci Master Nic
v6 v7 11 11 is larger or equal to the GMII clock frequency (ie 125 MHz). 12 12 13 To improve the throughput, this component supports up to 8 channels ,14 indexed by the (remote) source IP addressfor the received (RX) packets,15 and indexed by the (remote) destination IP addressfor the sent (TX) packets.13 To improve the throughput, this component supports up to 8 channels. 14 These channels are indexed by an index derived from the (source) remote IP address and port for the received (RX) packets, 15 and from the (destination) remote IP address and port for the sent (TX) packets. 16 16 The actual number of channels is an hardware parameter. 17 17 … … 22 22 * '''NIC_MODE_TAP''': The TX and RX packet streams are send and received to and from the physical network controller of the workstation running the simulation. 23 23 24 The packet length can have any value, from 60 to 1514bytes.24 The packet length can have any value, in the range [54 to 1514] bytes. 25 25 26 26 The minimal data transfer unit between software and the NIC is a 4K bytes '''container''', … … 49 49 50 50 For the DMA engines, a container has only two states (full or empty), defined 51 by a single bit, called the container "status".51 by one single bit, called the container "status" (1 for full / 0 for empty). 52 52 To access both the container status, and the data contained in the container, the DMA 53 53 engines use two physical addresses, that are packed in a 64 bits ''container descriptor'': 54 * desc[25:0] contain bits[31:6] of the " full" statusphysical address.54 * desc[25:0] contain bits[31:6] of the "status" physical address. 55 55 * desc[51:26] contain bits[31:6] of the "buffer" physical address. 56 * desc[63:52] contain the common 12 physical address extension bits.56 * desc[63:52] contain bits[43:32] of the physical address, common for "status" and "buffer". 57 57 58 58 Inside the NIC controller, each channel implements a 2 slots chained buffer (two … … 60 60 For each channel, the build-in RX_DMA engine moves the RX containers from 61 61 the internal 2 slots chained buffer to the external chained buffer implementing 62 the RX queue in memory. 63 Another build-in TX-DMA engine moves the TX containers from the external 64 chained buffer implementing the TX queue in memory, to the internal TX 2 slots 65 chained buffer. 62 the RX queue in memory. Another build-in TX-DMA engine moves the TX containers from the external 63 chained buffer implementing the TX queue in memory, to the internal TX 2 slots chained buffer. 66 64 67 65 To improve the throughput for one specific channel, the DMA engines use ''pipelined bursts'': The burst length cannot be larger than 64 bytes, but each channel send 4 pipelined VCI transactions to mask the round-trip latency. Therefore, thi NIC controller can control up to 32 parallel VCI transactions (4 channels * 4 bursts * 2 directions).