Стандарты шины ввода / вывода и контроллеры устройств

677
spartacus

Я действительно запутался в таких стандартах шины, как ide, ata, sata, pci и т. Д.

Я только что прочитал эту статью: когда происходит чтение или запись на диск, куда идут данные? Так что, если мы говорим о жестком диске; Жесткая логическая плата содержит микроконтроллер, буферную память, драйвер двигателя и т. д. Этот микроконтроллер связывается с драйвером двигателя для чтения и записи секторов на жесткие диски. Как я знаю, микроконтроллер представляет собой комбинацию процессора, регистров, портов ввода-вывода, оперативной памяти и т. д. Также внутри микроконтроллера должна быть прошивка.

Мой первый вопрос: как определяется тактовая частота жесткого диска микроконтроллера?

И в соответствии с вышеупомянутой статьей, почему существует такое слово, как «диск sata»? Я имею в виду, если «ata» или «sata» и т. Д. Являются просто шинными интерфейсами между процессором и контроллерами устройств, почему слова «ata», «sata» или «pci» становятся префиксом для периферийных устройств?

Я действительно хочу глубоко понять связь с периферийными устройствами. Выше статьи я понял, что когда мы хотим прочитать секторы с жесткого диска, возникают две отдельные связи: первая - между «процессор - контроллер устройства», а вторая - «контроллер устройства - жесткий диск». как эти отдельные коммуникации работают друг с другом?

Наконец, если «ata» или «sata» являются интерфейсами, которые просто обозначают шлюз связи «cpu & memory (dma) -device controller», то почему этот интерфейс медленнее, чем передняя сторона шины (fsb)? Я имею в виду, если я говорю о передаче dma, после того, как контроллер диска читает один сектор с жесткого диска, он должен перевести этот сектор в память, верно? Так почему эти медленные интерфейсы шины используются для связи между памятью и контроллерами устройств?

1
A microcontroller isn't going to have a CPU, if it had a CPU, it would be a `microprocessor`. ATA and SATA don't stand for what you think they stand for. ATA stands for `AT Attachment` there also is PATA and SATA. **Pretty much all your conclusions are wrong.** ATA was actually called `IDE` and PATA was called `Enahnced IDE` `Parallel ATA` and `Serial ATA` are the current standards with PATA being the previous standard which has been phased out from all (most) motherboards. Ramhound 10 лет назад 0
-"ATA and SATA don't stand for what you think they stand for. ATA stands for AT Attachment".. so what does it mean? -"Pretty much all your conclusions are wrong"..I would be glad if u help me to understand. spartacus 10 лет назад 0
Я сказал вам, что стоит `ATA`, но он более известен как` IDE`. Я перечислил несколько ваших выводов, которые неверны. SATA не медленный, у него есть прямая шина данных к процессорам x86. Единственное, что может быть быстрее, это PCI-Express, исключая фактический кэш, который имеет процессор, конечно. Я ошибался, что ATA действительно имеет регистры из-за контроллера DMA, но у него нет самого ЦП, поскольку, как я объясняю, он будет называться микропроцессором, а не микроконтроллером. Ramhound 10 лет назад 0
@Ramhound - * «Микроконтроллер не будет иметь процессора» * - взгляните на таблицы данных современных микроконтроллеров (таких как [линия Atmel] (http://www.atmel.com/products/microcontrollers/default) .aspx? src = parent #)), и вы обнаружите, что у них действительно есть процессорное ядро ​​(также называемое CPU). sawdust 10 лет назад 0

1 ответ на вопрос

0
sawdust

I'm really confused about bus standards like ide,ata,sata,pci etc.

You should separate PCI from ATA, SATA and IDE.
ATA, SATA and IDE are not a bus like PCI.

My first question is how hdd microcontroller clock frequency is determined?

That's a decision based on what is cost effective versus what level of performance is required.

And according to above article why there is a word like "sata drive"? I mean if "ata" or "sata" etc. are just bus interfaces between the cpu and device controllers why "ata","sata" or "pci" words become a prefix for peripheral devices?

SATA and ATA are interfaces, not "bus interfaces".

It is used as an adjective to designate the type of interface that the peripheral has and what is required on the host computer side.
If you have a "SATA drive" and have no free SATA ports on your PC's motherboard, then you cannot connect it. If there are other unused interfaces (such as a PCI slot or IDE port or USB port), then you could use the appropriate adapter (with added cost and maybe a performance penalty).

i understood that two seperate communications occur when we want to read sectors from hdd, first is between "cpu - device controller" and second is "device controller - hdd".So how these seperate communications work each other?

The device controller is in the middle of both of these operations.
The modern disk controller that is embedded in a SATA disk drive has its own CPU (aka microcontroller), RAM and flash, and executes its own firmware to perform its functions.

BTW you have the data flow 100% backwards. For a read sector from the disk, the first transfer is 'hdd -> device controller', and then the second transfer is 'device controller -> host'.
Also "data transfer" is a more accurate description of the operation than "communications".

Finally if "ata" or "sata" are interfaces that just stand for "cpu&memory(dma)-device controller" communication gateway, why this interface is slower than the front side bus(fsb)?

A peripheral interface is generally slower than a processor bus simply because of length and construction. The Front Side Bus is only a few centimeters in length, and fully contained on the motherboard. The circuit designer has excellent control of the anticipated electrical noise the bus will have to reject. A peripheral interface is almost always for an off-board device using a flexible cable. There are numerous cost versus performance tradeoffs that factor into the design of such interfaces.

BTW that is not a good definition for an interface.
A "communication gateway" is altogether another animal.

i mean if i speak for dma transfer, after disk controller reads one sector from hdd it must transfer this sector to memory right?

A peripheral interface as fast as a FSB over a 0.25 meter flexible cable could be 1000 times more expensive. The cost versus benefit ratio is poor because only one phase of a multi-phase data transfer is being improved.

So why these slow bus interfaces are used for communication between the memory and device controllers?

Cost.
To confuse you even more, these peripheral interfaces do not connect directly to "memory" (as you have written several times). Usually the host side of such an interface would connect to a local system bus, so that either the CPU (using PIO) or the DMA controller can access the interface's data register.
Maybe this is too much detail for you, but then perhaps it is this lack of detail and oversimplification that contributes to confusion.

это потрясающий ответ, спасибо, что так много видел! spartacus 10 лет назад 0

Похожие вопросы