+ Post New Thread
Results 1 to 3 of 3
  1. #1
    Advanced Member level 5
    Points: 13,006, Level: 27
    Achievements:
    7 years registered

    Join Date
    Aug 2011
    Posts
    2,597
    Helped
    302 / 302
    Points
    13,006
    Level
    27

    How is data transferred from memory to PCIe cards?

    My question is about data transfer between a PCIe peripherial and system memory. Example: Suppose we need to send a big chunk of data ( stored in system memory ) over an Ethernet network.

    How will it usually be done ? Will the Ethernet card's controller have to request the data via "Bus Mastering" ( after being programmed by the CPU to do so ) ? Or will a centralized DMA controller near the CPU just write the card's buffers ( after being programmed by the CPU to do so ) ?

    In other words: Does the card have to ask for the data ? Or can it simply be written to it via the CPU's DMA ?

    •   AltAdvertisement

        
       

  2. #2
    Member level 2
    Points: 2,010, Level: 10
    Achievements:
    7 years registered

    Join Date
    Dec 2009
    Location
    USA
    Posts
    45
    Helped
    15 / 15
    Points
    2,010
    Level
    10

    Re: How is data transferred from memory to PCIe cards?

    Exactly how any one specific NIC operates, is Driver dependent.

    Dolphin Driver uses both PIO & RDMA ...
    https://www.dolphinics.com/products/...rk_driver.html

    Some Drivers may turn Interrupts ON and OFF, as needed, to optimize throughput.

    In a server, a NIC has a dedicated PCIe direct connection to the Motherboard Chipset, a NIC in a desktop does not.

    Typically, the NIC DRIVER programs the PCIe NIC hardware to become a DMA Master.
    The NIC Driver allocates the RAM space and also manages the Message Buffer pointers.



    •   AltAdvertisement

        
       

  3. #3
    Advanced Member level 5
    Points: 13,006, Level: 27
    Achievements:
    7 years registered

    Join Date
    Aug 2011
    Posts
    2,597
    Helped
    302 / 302
    Points
    13,006
    Level
    27

    Re: How is data transferred from memory to PCIe cards?

    Typically, the NIC DRIVER programs the PCIe NIC hardware to become a DMA Master.
    The NIC Driver allocates the RAM space and also manages the Message Buffer pointers.
    So if we examine the TLP layer messages running over the PCIe link - we'll usually see the NIC's hardware asking for data from the South Bridge and the South Bridge responding to it ?
    As opposed to having the South Bridge sending TLP write requests to the NIC...



--[[ ]]--