¿Qué significa cuando los discos duros tienen un procesador en el disco duro? ¿Cómo funciona y qué beneficio tiene?
No entiendo: la CPU de la computadora es el procesador y el disco duro transfiere su contenido a la RAM de la computadora host. ¿Los procesadores adicionales preprocesan los datos de alguna manera?
Aquí hay unos ejemplos:
- Western Digital WD Black WD1002FAEX 1TB "Velocidad de procesador dual"
- NETGEAR ReadyNAS 312 Almacenamiento conectado a la red sin disco de 2 bahías "Procesador Intel de doble núcleo a 2,1 GHz y memoria integrada de 2 GB"
Además, los enrutadores ahora también tienen procesadores. ¿Por qué es eso necesario? Supongo que tiene sentido: es necesario que suceda algo de lógica para que los paquetes se lean para saber en qué puertos enviarlos, pero ¿por qué los enrutadores antiguos no los necesitaban?
Ejemplo de enrutador inalámbrico con procesador : " procesador de doble núcleo"
Me sorprende, porque el modelo de máquina von Neumann no incluye procesadores en almacenamiento .
fuente
Respuestas:
Bueno, HDD siempre tenía procesadores, principalmente para almacenar en caché los datos y hacer otras cosas de HDD como marcar bloques defectuosos, etc.
El producto Netgear que vinculó es un NAS, que le permite transmitir contenido multimedia a través de la red, por lo que no es realmente un HDD. Es más como un HDD conectado a la red con un software sofisticado que le permite transmitir información a través de la red.
Los enrutadores antiguos también tenían procesadores, aunque solían ser lentos y no se anunciaban en absoluto. El WRT54G, que salió en 2002, tenía un Broadcom BCM4702 funcionando a 125Mhz. No muy rápido de hecho. Sin embargo, en estos días exigimos más de los enrutadores, y características como VPN requieren procesadores más rápidos.
fuente
La CPU es un procesador; hay otros. Un procesador es el que ejecuta el código del programa, por lo que cualquier dispositivo que tenga firmware (que es código) tiene un procesador de algún tipo.
Un disco duro tiene su propio procesador (pequeño) que ejecuta firmware que implementa un protocolo de interfaz (por ejemplo, SATA o SCSI) y controla los motores del disco. Piense en su disco duro como una computadora especializada dentro de una computadora; el cable SATA es como un cable de red que le permite comunicarse con la computadora "principal". La CPU crea mensajes (como paquetes de comandos SATA) para indicarle a la unidad qué datos desea y los envía a la unidad a través del cable; el procesador de la unidad mira los mensajes de la CPU y controla los motores y las cabezas magnéticas de la unidad para leer o escribir los datos.
Un NAS es una computadora que ejecuta software de servidor de archivos. En principio, no es diferente de configurar carpetas compartidas en su PC; NAS está ejecutando un sistema operativo más liviano en un procesador más lento, pero está haciendo esencialmente el mismo trabajo. Lo mismo ocurre con un enrutador.
fuente
Si pudieras ver en detalle el funcionamiento de una PC de escritorio típica, encontrarás procesadores por todas partes. Si tiene un teclado y un mouse conectados a los puertos USB, hay un procesador dentro del teclado y uno dentro del mouse que habla el protocolo USB.
En el caso de un disco duro, hay un montón de cosas que debe hacer ese procesador. Por un lado, el procesador tiene que colocar la cabeza, esperar el momento adecuado y luego enviar los datos a los platos. Cuando la CPU pide leer un montón de datos, el procesador encuentra el orden óptimo para recuperar esos datos del disco, y tal vez incluso recupera algunos datos adicionales que pasaron debajo de la cabeza para guardarlos en la memoria caché en caso de que la CPU los solicite próximo.
Los discos duros modernos también pueden hacer comprobaciones de estado SMART en segundo plano. La CPU no tiene que preocuparse por estas cosas, aparte de posiblemente pedir los resultados periódicamente.
Los "enrutadores" modernos de SoHo no son solo enrutadores. También son puntos de acceso, conmutadores, servidores DHCP, servidores web, e implementan NAT, firewall, a veces incluso funciones NAS, y muchas otras cosas. Sus procesadores tienen mucho trabajo por hacer.
Básicamente, un procesador es tan barato de implementar en estos días que se usan en casi cualquier caso en el que tengan sentido. La excepción serían los casos en que la tarea es muy simple o donde se requiere un alto rendimiento. Diablos, probablemente haya incluso uno en su fuente de alimentación para administrar las velocidades de los ventiladores y optimizar el consumo de energía.
fuente
Muchos dispositivos "inteligentes" actuales son, de hecho, computadoras completas, que a menudo ejecutan algún clon de Linux. Si el dispositivo es lo suficientemente permisivo, o ha sido rooteado / liberado, es posible que pueda jugar con él, instalar nuevos paquetes o incluso cambiar el sistema operativo. Por supuesto, usan CPU.
Los ejemplos incluyen teléfonos, televisores, reproductores de DVD, lectores de libros electrónicos, cajas NAS, enrutadores domésticos, módems y administración fuera de banda en servidores, que en realidad son computadoras completas con su propio sistema operativo.
Pero incluso los dispositivos tontos tienen procesadores, a menudo llamados microcontroladores, responsables de, por ejemplo, leer y escribir datos. La tarjeta Micro SD en su teléfono contiene un procesador y una tarjeta SIM tiene otro, capaz de ejecutar aplicaciones Java.
Incluso los juguetes simples para niños, como un semáforo, tienen un microntrolador, ya que es más fácil y económico implementar la lógica de la luz en el software del microcontrolador que en componentes discretos.
fuente
Para responder a su pregunta específica sobre unidades de disco duro que nadie parece haber abordado.
SATA (y todas las demás interfaces de conexión de disco que se me ocurren) funciona con bloques. Los comandos se definen para (entre muchas otras cosas) leer y escribir bloques de almacenamiento físico específicos, y los datos se proporcionan a través del cableado de la interfaz de archivos adjuntos. Ese comando debe procesarse en algún lugar, lo que se puede hacer ya sea en un software que se ejecuta en un procesador incorporado o utilizando algún tipo de configuración de hardware puro que probablemente tendría que hacer lo mismo.
¿Adivina qué es más barato, físicamente más pequeño, lejos de ser improbable, más fácil de trabajar y, por lo general, mucho más versátil? Así es, un procesador, una pequeña cantidad de memoria de programa (flash, EPROM, ROM o cualquier otra cosa que se adapte a sus necesidades) y una pequeña cantidad de RAM, los dos últimos de los cuales, si sus necesidades son lo suficientemente modestas, incluso podrían incluirse dentro del procesador en sí (ver, por ejemplo, la familia de microcontroladores PIC ).
Además, recuerde que los discos de disco en realidad no almacenan bits. Almacenan codificaciones de bits de flujo magnético. Algo debe procesar las lecturas de flujo que provienen del cabezal de lectura, o procesar los datos en transiciones de flujo que se entregarán al cabezal de escritura. Si una lectura es imperfecta, entonces los datos de corrección de errores (almacenados junto con los datos) se utilizan idealmente (desafortunadamente no siempre es el caso ) para corregir el error y devolver buenos datos en lugar de basura, o devolver un error si el problema es demasiado severo para ser corregible. Nuevamente, eso es más fácil de implementar en un software que debe ejecutarse en algo, y un procesador con algo de memoria nuevamente se ajusta bastante bien.
Tener una gran capacidad de procesamiento incorporada significa que puede utilizar esquemas de codificación y recuperación de errores más avanzados, lo que en el caso de los discos duros significa que puede agrupar más datos en la misma superficie física. El resultado final es una mayor capacidad de almacenamiento para usted de lo que de otro modo sería posible. Sin embargo, la potencia de procesamiento del microcontrolador del disco duro no es de importancia crítica para el usuario de la unidad.
fuente
Perdóname si he leído demasiado este punto pero aún no lo he leído en las respuestas (aunque todas las demás respuestas son geniales).
La implementación de procesadores en equipos de hardware también reduce la carga de trabajo de su procesador central, que es su CPU en la placa base.
Piense en una computadora con una sola CPU que tiene que hacer todo el trabajo que debe hacerse. Controle la memoria, controle el bus, gestione cálculos específicos del disco duro (gire el disco, acceda, magnitud para escribir, leer, etc.)
Si todo lo que necesita hacer lo hace su CPU, entonces no quedaría mucho tiempo para sus tareas reales.
fuente
Comencemos con lo obvio: esos "procesadores" siempre han estado allí en algún nivel. Con las unidades más antiguas, éstas se encontraban en tarjetas controladoras, y con cualquier cosa que se acercara a las modernas, los discos duros tenían controladores de disco : la designación "IDE" para las unidades pata se refiere al hecho de que la electrónica estaba a bordo en lugar de tener una tarjeta separada.
Si bien tradicionalmente han sido microcontroladores, mi SSD: un Samsung 840 tiene un procesador basado en tres brazos. Estos chips hacen cosas como nivelar el desgaste, manejar varias traducciones internas (como convertir comandos ATA o SCSI a algo que el sistema electrónico de la unidad de disco), y dos factores: que el hardware es mucho más complicado de lo que solía ser, y los procesadores son más baratos y rápidos de lo que solían ser significa que tiene sentido tirar un núcleo de propósito general reducido a una unidad. Sin embargo, sí, estos procesadores siempre han estado allí.
Con los enrutadores, siempre han tenido mips o núcleos de brazo: básicamente necesitan la potencia para ejecutar un servidor web, y enrutamiento, etc. Muchas unidades conectadas a la red usan núcleos similares o mejores para que puedan manejar cosas como smb o la página de administración.
De hecho, durante muchos años, los teclados tenían los mismos procesadores M68K que encontraría en muchas computadoras antiguas, y hay ratones con núcleos de brazo para manejar cosas como iluminación elegante y respuestas cada vez más rápidas.
fuente
Los enrutadores siempre han tenido un procesador. Los dos enrutadores originales eran software que se ejecutaba en PDP-11 (sí, el sucesor de la máquina en la que se escribió originalmente Unix). Uno fue desarrollado en Stanford y el otro en el MIT. El enrutador Stanford fue licenciado posteriormente a una pequeña empresa entonces llamada Cisco Systems. Cisco volvió a empaquetar las computadoras PDP en gabinetes personalizados, colocó una etiqueta de "Cisco" y las vendió como enrutadores.
Así que eso es lo que usaban los viejos enrutadores: procesadores.
Recuerdo haber leído una entrevista de uno de los fundadores de Cisco que dijo algo como: "esa es la ventaja de vender software como cajas de metal: no es necesario convencer a la gente de que no pase copias de él a sus amigos". Mi google-fu falla hoy, así que no puedo encontrar la cotización real. Esos fueron los días antes de que cierto fundador de una pequeña empresa llamada Microsoft convenciera a las personas de que debían pagar por el software (en aquel entonces era una versión inicial de Basic).
fuente
Todo el equipo semiautónomo desde el nacimiento de la revolución informática ha tenido algún tipo de "Procesador", es hasta ahora que nunca se marcó como tal.
Lo que está viendo aquí es la continua corrupción y las verdades a medias que se extienden a través de nuestra sociedad a través de las celosas agencias de marketing, donde los vendedores se animan cada vez más y se les hace creer que son las estrellas del espectáculo, simplemente porque son los que están haciendo. las ganancias
Sin embargo, el hecho es que todo lo que tenga que realizar un conjunto de tareas donde la próxima iteración de un proceso puede ser diferente a la iteración anterior, debe tener algún tipo de intérprete que pueda dar sentido a las instrucciones que se le dan al dispositivo. , y luego reaccionar a esas instrucciones de alguna manera.
De vuelta en las brumas del tiempo, la terminología como "Controladores" era la norma, pero todavía se reducía a lo mismo.
Tomemos, por ejemplo, un "disco duro IDE, con su controlador IDE integrado", aunque no es una CPU en el mismo sentido que piensas en una CPU en la placa principal de tu PC, nunca es una forma de CPU.
La PC host envía "Códigos OP" (abreviatura de códigos de operación) a través del bus (PCI, ISA, MCI, PCIe o lo que sea) al controlador de unidades, el controlador luego lee este código y cualquier dato que se le proporcione y los convierte en operaciones físicas que luego hacen que la unidad mueva las cabezas al lugar correcto y lea los datos solicitados.
Los enrutadores tienen una historia aún más larga, Cisco ha construido equipos de red durante la mayor parte de los últimos 50 años o más, y cada uno de estos dispositivos ha tenido un controlador / CPU personalizado en todo ese tiempo. Esta CPU fue diseñada por Cisco, para Cisco expresamente con el propósito de programar y controlar su rango completo o enrutadores y conmutadores.
Las tarjetas gráficas son otra cosa, oyes a la gente usar el término "GPU" como si fuera algo místico que solo hace gráficos. No lo es, es un procesador de algoritmo matemático masivamente paralelo, Iv'e acaba de terminar la edición técnica de un libro sobre Nvidia CUDA, y lo que aprendí sobre las GPU de Nvidia fue bastante sorprendente, estas cosas son procesadores por derecho propio, procesadores que son diseñados para hacer un conjunto de trabajos especializados, pero aún son semi inteligentes y capaces de muchos tipos diferentes de operación.
Como ya se ha señalado, Netgear Readynas es en realidad más como una PC completa por derecho propio. Está especialmente diseñado para funcionar solo como un dispositivo de almacenamiento remoto.
Si quisiera, no habría nada que le impida reprogramar el dispositivo Netgear con un nuevo software y hacerlo funcionar perfectamente como un servidor web, un servidor de base de datos o incluso un pequeño servidor de desarrollo de Linux. (Una búsqueda rápida le mostrará más que un puñado de proyectos destinados a hacer tal cosa con estas unidades NAS)
En términos de procesador, puede sorprenderle saber que no son solo los discos duros los que tienen "procesadores" en estos días, pruebe este pequeño experimento.
Ponte de pie en tu cocina y mira cuántas CPU puedes contar.
Estoy dispuesto a apostar a que su refrigerador / congelador, lavadora, lavavajillas, horno y microondas (como mínimo) tienen algún tipo de procesador, puede que no sea un Intel Core i7, pero sigue siendo un procesador, y está diseñado para sentarse en silencio, interpretando las instrucciones que le envían otros circuitos eléctricos / digitales que luego se convierten en las operaciones físicas que ve.
Entonces, ¿cuál es la definición de un procesador?
Bueno, es un poco difícil de precisar en estos días, pero en general, la definición de "Procesador" es algo similar a "Cualquier unidad autónoma, que sea capaz de actuar sobre entradas externas de una manera semi inteligente y producir un conjunto conocido de salidas derivadas de esas entradas "
Por lo tanto, cualquier unidad autónoma, circuito, chip o máquina autónoma que pueda efectuar una manifestación física de algún proceso conocido basado en un conjunto de entradas predefinidas puede considerarse, en su sentido más básico y genérico, un procesador de alguna descripción.
fuente
Si bien los discos duros y las tarjetas de memoria flash no siempre han incluido procesadores, su diseño está sujeto a un principio bastante simple: algo con un procesador debe saber qué es necesario para almacenar y recuperar datos. Si un dispositivo de almacenamiento no contiene un procesador pero está conectado a algo que sí lo tiene, entonces el hardware debe permitir que la información se almacene y recupere utilizando la secuencia exacta de pasos que el dispositivo conectado espera. Incluso si el almacenamiento y la recuperación de información de alguna otra manera pudiera ser más eficiente, es posible que el sistema conectado no pueda saberlo.
Como ejemplo, la mayoría de los discos duros funcionan magnetizando cada pieza del disco en una de dos direcciones. Si una "L" representa la magnetización en una dirección por una cierta cantidad de tiempo y una "R" representa la magnetización en la otra por la misma cantidad de tiempo, tratando de almacenar datos directamente usando "L" para representar un "1" y " R "para representar un" 0 "sería muy poco confiable debido a dos factores:
Una cadena larga de unos o ceros representaría una cadena larga de Ls o Rs, que a su vez puede interpretarse erróneamente como una cadena un poco más larga o un poco más corta. Por ejemplo, si el motor de accionamiento funciona un 5% más lento cuando se leen los datos que cuando se escribieron, lo que se escribió como una cadena de 20 Ls podría malinterpretarse como una cadena de 21 Ls.
Dos cadenas de L separadas por un pequeño número de R pueden extenderse en esa pequeña cadena de R y "engullirla". Del mismo modo, dos cadenas de Rs separadas por un pequeño número de Ls.
Debido a estos factores, las unidades generalmente necesitan codificar información en series de Ls y Rs cuya longitud se encuentra entre un máximo y un mínimo; Los valores óptimos para la longitud máxima y mínima pueden variar según la calidad de la electrónica, el motor, el cabezal y los medios. Además, debido a que las pistas externas de un disco son más largas que las internas, podrían almacenar series más cortas de Ls y Rs que las externas.
Para que la información se almacene en una unidad, debe estar conectada a algo que sepa cómo convertir datos en cadenas de Ls y Rs que los medios podrán contener. Si el acto de convertir Ls y Rs fuera responsabilidad de un controlador que estaba separado del propio disco, entonces un disco solo necesitaría usar formatos que serían entendidos por cualquier controlador al que pudiera estar conectado. Mover el controlador al ensamblaje de la unidad alivia este problema: si cada fabricante envía una unidad con un controlador que puede entender cómo almacena los datos, no tendrá que preocuparse por si otros controladores comprenderán esos datos, ya que la información solo será almacenado y recuperado por el controlador contenido en el conjunto de la unidad.
fuente
Como la gente ya explicó, muchos periféricos / dispositivos siempre han tenido procesadores para proporcionar su funcionalidad principal e incluso los enrutadores relativamente básicos son en efecto servidores pequeños (el aspecto más visible para el usuario final serían los asistentes de configuración basados en la web, necesita un IP stack, un servidor web, etc. y un procesador para ejecutarlos).
Pero también debe darse cuenta de que un NAS de consumidor moderno es aún más que eso, generalmente puede iniciar sesión a través de un navegador web y tendrá acceso a una GUI con muchas aplicaciones, un sistema de administración de paquetes de software, múltiples servicios para transmitir archivos multimedia, ejecute actualizaciones automáticas, lea otros dispositivos de almacenamiento conectados a un puerto USB, etc., por lo que casi un entorno de escritorio completo (aunque obviamente parte del trabajo para la GUI se comparte con la máquina cliente).
fuente
Todos los discos duros siempre han tenido procesadores. Todos los enrutadores siempre han tenido procesadores.
Su tarjeta gráfica tiene un procesador. Siempre ha. Su tarjeta de interfaz de red tiene un procesador. Siempre ha. Su impresora tiene un procesador, su teclado, su mouse, y sigue y sigue y sigue. Sería difícil pensar en un dispositivo que esté conectado a su computadora que NO tenga un procesador de algún tipo.
Ahora se anuncian más porque su rendimiento es más crítico, porque estamos pidiendo a estos dispositivos que hagan más y más.
fuente
Prácticamente no hay ningún dispositivo en la electrónica de la computadora que sea tan tonto que pueda desempeñar su función sin un procesador, al menos prácticamente todo tiene que codificar una señal de entrada o salida en algún momento. Si esa señal varía, debe haber reglas sobre cómo varía y un procesador hace cumplir esas reglas.
Alejándome un poco más de la pregunta, pero reforzando todo lo que tiene el tema de los procesadores , en los años 80 fui un administrador de sistemas a cargo de algunos mainframes VAX / VMS.
Teníamos una impresora de banda muy rápida (ruidosa) que ejecutaba un banco de martillos golpeando una banda de alta velocidad y alta resistencia. Creo que era una impresora de 600 líneas por minuto. Eso es completamente 132 líneas de caracteres, no una línea de puntos.
Para controlar el momento en que los martillos golpean la banda, tenía algunos circuitos electrónicos simples. Esto necesitaba un programa diferente dependiendo de la banda: podría tener bandas aún más rápidas que solo tenían letras mayúsculas (varios conjuntos de ASCII en una banda).
El programa para ese procesador se almacenó en un trozo de cinta de papel que también se leía en un bucle continuo, cada vez que se encendía la impresora (sí, se dejaba funcionando la mayor parte del tiempo).
Solo me enteré cuando mi operador se entusiasmó al limpiar la impresora y encontró la cinta de papel. Afortunadamente, se dio cuenta de que no era solo un trozo de papel perdido y no intentó quitarlo.
fuente
Significa que el disco tiene una pequeña CPU. En general, cualquier dispositivo que tenga una CPU tendrá firmware.
Los periféricos de la computadora son complejos. Por ejemplo, el acto de leer y escribir datos en una unidad de disquete es bastante complicado. Debe manipular el hardware que mueve el cabezal de la unidad, luego buscar encabezados de sector, descubrir si los datos que ingresan en una línea de lectura tienen sentido según un protocolo, etc.
Tomemos un ejemplo simplificado de lectura de una unidad de disquete: probablemente la forma más rudimentaria que una CPU puede comunicarse con el mundo exterior es a través de puertos de E / S. Estos puertos están conectados a líneas en la placa base o enchufes: si la electricidad pasa por una línea, un 1 es visible para la CPU en el puerto cuando se lee, si no, entonces un 0 es visible para la CPU. De manera similar para la escritura, la CPU puede escribir un 1 en un puerto para que la electricidad atraviese la línea, o establecerlo en 0 para detener eso.
Entonces, para una unidad de disquete, digamos que de alguna manera tiene una línea conectada al cabezal de lectura / escritura del disquete. Para leer los datos, debe esperar una "inversión de flujo", básicamente un cambio en la energía magnética que podría hacer que la línea pase de 0 a 1 o de 1 a 0. Luego necesitaría realizar un seguimiento de cuánto tiempo hasta detecta una segunda inversión de flujo, y continúa haciéndolo hasta que tenga todos los bits en su sector, y combina esas duraciones medidas para recrear los datos. Esto ni siquiera entra en cosas como mover el cabezal del variador o esperar a que el motor del variador alcance una velocidad normal para que sus duraciones no se estropeen, y tener en cuenta el hecho de que probablemente no haya dos motores exactamente iguales, por lo que necesita para ser flexible en sus medidas de alguna manera.
Con suerte, eso sonó complicado, porque lo es.
Entonces, seguro, puede programar una CPU de computadora normal para hacer eso, pero debido a que es muy sensible al tiempo, la CPU de su computadora realmente no puede hacer mucho más mientras esto sucede. Las computadoras viejas que realmente hicieron algo así en todas las CPU / todo el software para ahorrar dinero, como la antigua Apple IIe, no podían hacer nada más mientras leían / escribían en el disco por este motivo.
Al colocar una pequeña CPU en la unidad y tener un controlador en la placa base, que en realidad es solo un bus de comunicaciones, su CPU puede ejecutar otros programas, obtener / enviar datos a la unidad utilizando el bus y descargar la mayor parte de la carga física. nivele el trabajo al propio disco. Además, a medida que la tecnología mejora, la programación de bajo nivel para manejarla puede permanecer en el disco, y no hay necesidad de cambiar los programas en su computadora para trabajar con diferentes formatos de disco interno.
Con respecto a los enrutadores, la función real de enrutamiento de bajo nivel no es difícil de hacer en hardware, y muchos enrutadores de nivel empresarial hacen exactamente eso, pero son cosas como firewall, reenvío de puertos, control de acceso y la interfaz web o consola que son lo suficientemente complejas como para necesitar una CPU para hacerlo.
No hay nada en el modelo von Neumann que diga que ningún periférico pueda ser una máquina von Neumann. Lo que convierte a un periférico en periférico es el hecho de que la CPU puede enviarle comandos a través de algún tipo de bus u otro mecanismo de E / S y obtener resultados.
fuente
---- Todas las respuestas en esta página fueron demasiado largas (o eso me pareció) - - - Así que me gustaría agregar una ...
Los discos tienen procesadores porque la actividad física de pasar de "Spot" a "Spot" en el disco, en un buen orden, es una tarea semi-difícil
Si lee / escribe datos en un orden "incorrecto" o "lento", en función de las distancias y de cada uno de ellos, puede ralentizar severamente la transferencia de datos.
La mejor manera de describir eso es si trabaja en una tienda y le dicen que obtenga artículos de los rincones más distantes, antes de poner todo en camino.
Un comando inteligente es recoger todo en ruta = = Así es como AHCI funciona con NCQ.
NCQ necesita un procesamiento más inteligente porque planifica mejor sus búsquedas.
Antes de que esto se hiciera, algo llamado PIO o "Procesador controlado ... umm ... E / S. Lo cual era lento porque 1. la distancia entre la CPU y el HDD es enorme en términos de computadora: Latencia. Latencia para decidir comandos = transferencia lenta 2. La CPU hace (necesita hacer) otras cosas 3. Eso es ... realmente lo más importante.
La computadora solicita archivos aquí y aquí El disco es responsable de "CÓMO" llevarlo a la computadora.
... estoy listo
fuente