Jump to content


 


Register a free account to unlock additional features at BleepingComputer.com
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.


Click here to Register a free account now! or read our Welcome Guide to learn how to use this site.

Photo

help needed about CPU speed vs SATA and USB 3.0 speed


  • Please log in to reply
3 replies to this topic

#1 foxclab01

foxclab01

  • Members
  • 2 posts
  • OFFLINE
  •  
  • Local time:12:12 PM

Posted 11 August 2011 - 09:54 AM

Hello to everybody in the forum.

Here is a question I have and I cannot answer it. It is a theoritical and not a practical question, but it still bothers me :

Why is it possible for ( any ) SATA and for USB 3.0 to function? I think that these protocols …should just not be able to work!

Let me explain myself :

Let’s take a really fast CPU, one that is clocked in 3,6GHz. The CPU needs from 1 up to 4 clock cycles to form a command in machine language, right? So, in the worst case scenario, this CPU can execute 3,6 / 4 = 0,85 billion commands per second or, if you prefer, 850 millions commands per second.

So far, so good. But let’s see now the USB 3.0 protocol. This new protocol can transfer 5Gbits per second. Since one CPU command is needed for every bit transfer, we need 5 billion commands per second to be handled by the CPU, in order to make USB 3.0 to work. This is just not possible. In fact, nothing that needs more than 850 million commands per second should work.

I understand that PCI express protocol is another story, because there the bus is handled by hundreds of small processors inside the graphics card and these processors work in parallel, handling the PCI express lines all together.

But what about SATA and USB 3.0? Why on earth are they able to work?? …..I must have a mistake in my calculations, but I do not know where…. 

Can anybody help?

BC AdBot (Login to Remove)

 


#2 Dngrsone

Dngrsone

  • Members
  • 73 posts
  • OFFLINE
  •  
  • Location:Centrally located far from everywhere
  • Local time:03:12 AM

Posted 11 August 2011 - 11:29 AM

See my answer in the other forum. :P
Posted Image

#3 foxclab01

foxclab01
  • Topic Starter

  • Members
  • 2 posts
  • OFFLINE
  •  
  • Local time:12:12 PM

Posted 12 August 2011 - 07:42 AM

Thanks!

#4 Platypus

Platypus

  • Global Moderator
  • 15,158 posts
  • OFFLINE
  •  
  • Gender:Male
  • Location:Australia
  • Local time:09:12 PM

Posted 12 August 2011 - 08:41 AM

Hello foxclab01, welcome to Bleeping Computer.

In case anyone reading this topic wonders what the answer to your question is, I'd like to briefly mention what you've had explained in different words elsewhere.

The CPU isn't required to issue an individual instruction for every bit (or it would actually be byte) transfer. This way of operating is called Programmed I/O (PIO) and has been long superseded by Direct Memory Access (DMA). This allows peripheral devices to move data across buses and interfaces themselves, without requiring intervention by the CPU. The CPU is only required to issue instructions defining the addresses where the data is located and the amount of data to be transferred. Assuming this is "burst data" (data occupying consecutive memory locations), this transfer can occur at whatever speed the combination of transmitting device, interface/bus and receiving device can achieve. The attention of the CPU is only required when the device controlling the transfer (the busmaster) flags the CPU to say a transaction is completed.

A device operating in PIO mode (e.g. a very old hard drive or a UDMA drive that the OS puts into PIO mode due to errors) will cause high CPU utilization and slow operation as you originally postulate.

As far as the PCI Express bus goes, the processors in a video card aren't involved in the operation of the bus itself, they process the data that is being transferred by the bus, and in modern GPUs with massive parallel processing there can indeed be hundreds of processing units.

Edited by Platypus, 12 August 2011 - 08:50 AM.

Top 5 things that never get done:

1.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users