6 Replies Latest reply on Jun 21, 2012 4:32 AM by ali.ulucan

    WinUSB Low Bandwidth

    ali.ulucan

      Hello,

         

       

         

      We are using sync. slave fifo (2 bit addr, 32bit width, dma buffer size 16kB, dma buffer count 4, endpoint burst length 1) design with FX3 (ES chip).

         

       

         

      Cypress driver's bandwidth is approximately 300MB/s (IN endpoint), 250MB/s (OUT endpoint). But WinUSB driver's bandwidth is only ~120MB/s in either direction.

         

       

         

      How can be increased the WinUSB bandwidth?

         


      Regards,
      Ali

        • 1. Re: WinUSB Low Bandwidth
          anand.srinivasan.asokan

           We've not played with WinUSB that much. Was browsing through WinUSB collaterals, have you looked at http://msdn.microsoft.com/en-us/library/windows/hardware/ff728833(v=vs.85).aspx. Seems RAW_IO policy should help a bit. Have you given that a try?

             

          Regards,

             

          Anand

          • 2. Re: WinUSB Low Bandwidth
            christian.richter

            You have to increase the packages per burst setting in the SuperSpeed endpoint. With only one packet per burst you cannot reach this speed. I dont believe that you could reach 300MB/s with this settings even in CyUSB driver.

               

            I tested our DVK with WinUSB and the board delivered the same speed as CyUSB with the burst settings of 8 or 16.

            • 3. Re: WinUSB Low Bandwidth
              ali.ulucan

              Hello,

                 


              Anand,
              The RAW_IO policy has some restrictions, for this reason we didn't try that. But thanks for your advice.

                 


              Chris,
              I'm sorry, my mistake; we reached 300MB/s with Cypress driver and 16 burst length. We were not sure about burst length effect, it is understood that we need to change burst length's value, different from one to reach high bandwidth. Thanks for your help.

                 


              When we increase the burst length, WinUSB driver's bandwidth decrease in Windows 7 64bit, Intel USB3.0 host (Ivy bridge) system. We are working about that problem, I will inform you when we get useful information.

                 


              Regards,
              Ali

              • 4. Re: WinUSB Low Bandwidth
                andrew.beveridge

                It seems fine here. I'm using WinUSB on Win7 x64 SP1.

                   

                Bandwidth seems to vary a bit depending on host controller. I'm running 8x burst.

                   

                Fastest bulk xfers I have seen is 347MB/s read (from FX3 to Host), 288MB/s write (from Host to FX3).

                   

                That is with a uPD720201 host controller. The 720200 is a bit slower (301 MB/s & 190 MB/s).

                   

                I've measured throughput with various controllers and hubs. Haven't tried an IvyBridge yet though.

                • 5. Re: WinUSB Low Bandwidth
                  jake.janovetz

                  Also using Win7/64.  Seeing 315+MB/s in each direction (not simultaneously) on WinUSB.  This is with an IvyBridge that has two VIA VL800 hubs hanging off the port.

                  • 6. Re: WinUSB Low Bandwidth
                    ali.ulucan

                    Hello,

                    The firmware that we used with Cypress driver has auto dma channels. But other firmware's (used with WinUSB) dma channels was manual. We changed dma channels to auto and we achieved reasonable bandwidth with 8 or 16 burstlen:

                       

                     

                       

                    Out endpoint bandwidth ~347MB/s,

                       

                    In endpoint bandwidth ~357MB/s.

                       


                    Regards,
                    Ali