Pregunta I / O Bus Standards y Device Controllers


Estoy realmente confundido acerca de los estándares de bus como ide, ata, sata, pci, etc.

Acabo de leer este artículo:Cuando se lee un disco o se escribe un disco, ¿a dónde van los datos? Entonces, si hablamos de disco duro; La placa lógica hdd contiene un microcontrolador, un buffer-ram, un controlador de motor, etc. Este microcontrolador se comunica con el controlador del motor para leer y escribir sectores en hdd platers. Como sé, un microcontrolador es una combinación de cpu, registros, puertos, ram, etc. debe haber firmware dentro del microcontrolador.

Mi primera pregunta es ¿cómo se determina la frecuencia de reloj del microcontrolador hdd?

Y de acuerdo con el artículo anterior, ¿por qué hay una palabra como "unidad de sata"? Quiero decir si "ata" o "sata" etc. son solo interfaces de bus entre la CPU y los controladores del dispositivo por qué las palabras "ata", "sata" o "pci" se convierten en un prefijo para dispositivos periféricos.

Realmente quiero entender profundamente acerca de la comunicación con dispositivos periféricos. En el artículo, entendí que se producen dos comunicaciones separadas cuando queremos leer sectores de HDD, primero está entre "CPU - controlador de dispositivo" y el segundo es "controlador de dispositivo - HDD". Así que ¿Cómo se trabajan estas comunicaciones separadas?

Finalmente, si "ata" o "sata" son interfaces que solo representan la puerta de enlace de "CPU y memoria (dma) -dispositivo de dispositivo", ¿por qué esta interfaz es más lenta que el bus frontal (fsb)? Quiero decir si hablo de transferencia dma, Después de que el controlador de disco lea un sector desde el disco duro, debe transferir este sector a la memoria ¿Entonces por qué estas interfaces de bus lento se utilizan para la comunicación entre la memoria y los controladores del dispositivo?


1


origen


Un microcontrolador no va a tener una CPU, si tuviera una CPU, sería una microprocessor. ATA y SATA no representan lo que piensas que representan. ATA significa AT Attachment también hay PATA y SATA. Casi todas tus conclusiones son incorrectas.  ATA fue llamado IDE y se llamó PATA Enahnced IDE  Parallel ATA y Serial ATA son los estándares actuales con PATA el estándar anterior que se ha eliminado de todas (la mayoría) de las placas base. - Ramhound
- "ATA y SATA no representan lo que piensas que significan. ATA significa AT Attachment" ... ¿qué significa? - "Casi todas tus conclusiones son incorrectas" ... Me alegraría si me ayudas a entender. - spartacus
Te dije lo que ATA se encuentra pero es mejor conocido como IDE. Enumeré varias de sus conclusiones que son incorrectas. SATA no es lento, tiene un bus de datos directo para las CPU x86. Lo único que puede ser más rápido es PCI-Express, excluyendo el caché real que tiene la CPU, por supuesto. Estaba equivocado. ATA sí tiene registros debido al controlador DMA, pero no tiene una CPU en sí, ya que, como explico, entonces se llamaría microprocesador en lugar de microcontrolador. - Ramhound
@Ramhound - "Un microcontrolador no va a tener una CPU" - Eche un vistazo a las hojas de datos de los microcontroladores modernos (como Línea de Atmel), y descubriría que tienen un núcleo de procesador (también conocido como CPU). - sawdust


Respuestas:


Estoy realmente confundido acerca de los estándares de bus como ide, ata, sata, pci, etc.

Debe separar PCI de ATA, SATA e IDE.
ATA, SATA e IDE no son un bus como PCI.

Mi primera pregunta es ¿cómo se determina la frecuencia de reloj del microcontrolador hdd?

Esa es una decisión basada en lo que es rentable versus qué nivel de rendimiento se requiere.

Y de acuerdo con el artículo anterior, ¿por qué hay una palabra como "unidad de sata"? Quiero decir si "ata" o "sata" etc. son solo interfaces de bus entre la CPU y los controladores del dispositivo por qué las palabras "ata", "sata" o "pci" se convierten en un prefijo para dispositivos periféricos.

SATA y ATA son interfaces, no "interfaces de bus".

Se usa como un adjetivo para designar el tipo de interfaz que tiene el periférico y lo que se requiere en el lado del equipo host.
Si tiene una "unidad SATA" y no tiene puertos SATA gratuitos en la placa madre de su PC, entonces no podrá conectarla. Si hay otras interfaces no utilizadas (como una ranura PCI o puerto IDE o puerto USB), entonces podría usar el adaptador adecuado (con un costo adicional y tal vez una penalización de rendimiento).

Entiendo que se producen dos comunicaciones separadas cuando queremos leer sectores de HDD, primero está entre "CPU - controlador de dispositivo" y el segundo es "controlador de dispositivo - HDD". Entonces, ¿cómo funcionan estas comunicaciones separadas?

El controlador del dispositivo está en el medio de ambas operaciones.
El controlador de disco moderno que está incrustado en una unidad de disco SATA tiene su propia CPU (también conocido como microcontrolador), RAM y flash, y ejecuta su propio firmware para realizar sus funciones.

Por cierto, tiene el flujo de datos al 100% al revés. Para un sector de lectura del disco, la primera transferencia es 'hdd -> controlador de dispositivo', y luego la segunda transferencia es 'controlador de dispositivo -> host'.
Además, la "transferencia de datos" es una descripción más precisa de la operación que "comunicaciones".

Finalmente, si "ata" o "sata" son interfaces que solo representan la puerta de enlace de "CPU y memoria (dma) -dispositivo de comunicaciones", ¿por qué esta interfaz es más lenta que el bus frontal (fsb)?

Una interfaz periférica generalmente es más lenta que un bus de procesador simplemente por su longitud y construcción. El Front Side Bus tiene solo unos centímetros de longitud y está totalmente contenido en la placa base. El diseñador del circuito tiene un excelente control del ruido eléctrico anticipado que el autobús tendrá que rechazar. Una interfaz periférica es casi siempre para un dispositivo externo que utiliza un cable flexible. Existen numerosas compensaciones de costo versus rendimiento que tienen en cuenta el diseño de tales interfaces.

Por cierto, esa no es una buena definición para una interfaz.
UN "puerta de enlace de comunicación" es en conjunto otro animal.

Quiero decir, si hablo de transferencia dma, después de que el controlador de disco lea un sector desde el disco duro, debe transferir este sector a la memoria ¿verdad?

Una interfaz periférica tan rápida como un FSB sobre un cable flexible de 0.25 metros podría ser 1000 veces más costosa. La relación costo-beneficio es pobre porque solo se está mejorando una fase de una transferencia de datos en varias fases.

Entonces, ¿por qué estas interfaces de bus lento se utilizan para la comunicación entre la memoria y los controladores del dispositivo?

Costo.
Para confundirte aún más, estas interfaces periféricas no se conectan directamente a "memoria" (como ha escrito varias veces). Por lo general, el lado del host de dicha interfaz se conectaría a un bus del sistema local, de modo que la CPU (con PIO) o el controlador DMA puedan acceder al registro de datos de la interfaz.
Tal vez esto sea demasiado detalle para usted, pero tal vez sea esta falta de detalles y una simplificación excesiva lo que contribuya a la confusión.


0



esta es una respuesta increíble, ¡muchas gracias! - spartacus