¿Qué significa la frase "El software puede reemplazar al hardware"?

90

Al estudiar el curso para principiantes sobre interfaz de hardware / software y sistemas operativos, a menudo surge el tema de si sería mejor reemplazar algunas partes de hardware con software y viceversa. No puedo hacer la conexión.

Gabriele Scarlatti
fuente
77
Las CPU de propósito general tienen conjuntos de instrucciones que les permiten ejecutar operaciones lógicas arbitrarias. El software se compila en una secuencia de comandos ejecutados por el conjunto de instrucciones de la CPU. Este es un ejemplo de hacer cosas "en software". Por el contrario, un algoritmo de software puede ejecutarse directamente "en hardware" mediante arreglos especializados creados de puertas lógicas en silicio.
Quimera
12
La "conexión" es que tanto el software como el hardware ejecutan, por diferentes medios, declaraciones lógicas.
Quimera
14
Significa exactamente lo que dice. El software y el hardware hacen cosas. A veces puedes hacer cosas con software o hardware, así que eliges uno. Entonces te preguntas si sería mejor hacerlo con el otro.
user253751
44
Obviamente, no puede reemplazar todo el hardware con software: no tiene sentido tratar de hacer un monitor, mouse o teclado de software. (A menos que sean virtuales)
user253751
2
Tenga en cuenta que usamos sistemas operativos (software) porque: 1) Escribir un sistema operativo directamente en hardware requeriría un chip increíblemente complejo, que costaría mucho 2) El hardware no se puede actualizar fácilmente, por lo tanto, un sistema operativo de hardware no recibiría actualizaciones. Si se encuentra un problema de seguridad, no se puede
reparar,

Respuestas:

176

Creo que la conexión fundamental que faltan otras respuestas es esta:

Dada una computadora de propósito general (por ejemplo, una CPU), uno puede programarla para realizar casi cualquier cálculo que hayamos definido. Sin embargo, el hardware especializado puede funcionar mejor o no proporcionar ningún valor.

(esta respuesta se centra en el procesamiento de escritorio y utiliza ejemplos de ese dominio)

Reemplazar software por hardware

Si tienes la edad suficiente para recordar los juegos de PC a mediados y finales de la década de 1990, probablemente recuerdes los juegos FPS como Quake . Comenzó siendo "software renderizado", lo que significa que la CPU realizó los cálculos necesarios para representar los gráficos. Mientras tanto, la CPU también tenía que realizar procesamiento de entrada, procesamiento de audio, procesamiento de IA, etc. Era muy exigente con los recursos de la CPU. Además, el procesamiento de gráficos no es adecuado para una CPU convencional (entonces o ahora). Tiende a ser una tarea muy paralela, que requiere muchos más núcleos que incluso una CPU moderna de alta gama (8).

Movimos el procesamiento de gráficos del software al hardware: ingrese el 3dfx Voodoo y Nvidia TNT (ahora GeForce ). Estas eran tarjetas gráficas especializadas que descargaban el procesamiento de la CPU a la GPU. Esto no solo extendió la carga de trabajo, proporcionando más recursos informáticos para hacer la misma cantidad de trabajo, sino que las tarjetas gráficas eran hardware especializado que podía renderizar gráficos 3D mucho más rápido y con más funciones que la CPU.

Avance rápido a la era moderna, y se requieren gráficos sin CPU en el escritorio. Incluso el sistema operativo no puede funcionar sin una GPU. Es tan importante que las CPU realmente integren GPU ahora. 1

Sustitución de hardware por software

Cuando el DVD era completamente nuevo, podía instalar una unidad de DVD en su computadora de escritorio. Sin embargo, las CPU del día no eran lo suficientemente potentes como para decodificar las transmisiones de audio y video DVD sin tartamudear. Al principio, se requería una placa PCI especializada para realizar la decodificación. Este fue un hardware especializado que fue construido específicamente para decodificar el formato DVD y nada más. Al igual que con los gráficos 3D, no solo proporcionó más recursos informáticos, sino que se diseñó a medida para la tarea, lo que facilitó la reproducción de DVD.

A medida que las CPU se volvieron mucho más potentes, se hizo posible decodificar los DVD "en software", que significa "en una computadora de uso general". Incluso con un procesador menos eficiente, tenía suficiente velocidad bruta y optimizaciones de canalización para que la reproducción de DVD funcionara según las expectativas de los usuarios.

Ahora tenemos CPU cientos o incluso miles de veces más potentes 2 que teníamos cuando se introdujeron los DVD. Cuando apareció Blu-ray, nunca necesitábamos hardware especializado, porque el hardware de uso general era más que lo suficientemente potente como para manejar la tarea.

Haciendo ambos

Las CPU Intel modernas tienen instrucciones especializadas para la codificación y decodificación H.264 . Esto es parte de una tendencia en la que las CPU de uso general están adquiriendo funciones especializadas, todas en el mismo chip. No necesitamos una placa PCI Express separada para decodificar H.264 de manera eficiente como con los DVD desde el principio, porque las CPU contienen circuitos similares.


1 GPU se refiere a un procesador diseñado específicamente para realizar cálculos gráficos. Las tarjetas gráficas 2D más antiguas no eran GPU: eran simplemente framebuffers con DAC para hablar con el monitor. La diferencia es que las GPU contienen procesadores especializados que se destacan en ciertos tipos de cálculos y, a medida que pasó el tiempo, ahora son realmente programables (sombreadores). El hardware de gráficos siempre ha contenido los circuitos especializados necesarios para convertir los datos en un framebuffer a un formato que pueda emitirse a través de un cable (VGA, DVI, HDMI, DisplayPort) y que un monitor pueda entender. Eso es irrelevante para la discusión sobre la descarga de los cálculos a hardware especializado.

2 DVD-Video se lanzó en 1997, en un momento en que el Pentium 2 también se lanzó recientemente. Este era un momento en que las CPU aumentaban rápidamente de potencia: se podía considerar una nueva computadora P2 con un decodificador de DVD, o instalar una en una P1 un poco más antigua. Compare eso con una generación moderna 6 Core i7 usando la lista de MIPS de Wikipedia , y una CPU moderna es entre 590 y 1,690 veces más rápida. Esto se debe en parte a la velocidad del reloj, pero también al cambio a múltiples núcleos como estándar, así como a las CPU modernas que hacen mucho más trabajo por núcleo por tic de reloj. También es relevante que a medida que avanza la tecnología, Intel (que domina el mercado de las computadoras de escritorio y los servidores x86) agrega instrucciones especializadas para ayudar a acelerar las operaciones que los usuarios de computadoras de escritorio desean realizar (por ejemplo, decodificación de video).


fuente
Las tarjetas gráficas 2D más antiguas no eran GPU en el sentido que se entiende hoy en día, pero el hardware especializado para funciones gráficas estuvo muy presente. Un blitter puede copiar rápidamente grandes cantidades de memoria de una ubicación a otra, posiblemente utilizando alguna operación lógica simple para combinarlo con los datos en la ubicación de destino. Esto estaba presente en las tarjetas 2d típicas de la era VGA / SVGA. Otras computadoras tenían otro hardware 2d especializado, como sprites de hardware en computadoras domésticas y consolas de juegos de los años 80 y 90.
Sebastian Redl
127

Me sorprende que nadie haya mencionado todavía uno de los ejemplos más evidentes: la radio definida por software.

Si llevara un teléfono inteligente actual en el tiempo unos 50 años y se lo mostrara a un ingeniero competente desde mediados de la década de 1960, él podría comprender la mayor parte. ¿Que una supercomputadora se puede reducir a algo que cabe en su bolsillo? Cheque. ¿Que puede tener el equivalente de un televisor en color de calidad ultra alta en el paquete? Cheque. ¿Que es mucho más rápido, tiene mucho más almacenamiento, etc., que las computadoras de la época? Cheque. ¿Qué software se ha escrito que puede realizar funciones tan complejas? Cheque.

Pero dígale a ese ingeniero competente que, por cierto, este paquete contiene un conjunto de transmisores y receptores sensibles extremadamente eficientes: un transceptor digital de amplio espectro que puede transmitir y recibir simultáneamente en múltiples canales, comunicándose con una torre de infraestructura que puede estar a millas de distancia ; otro transceptor digital que comunica datos de alta velocidad con una estación base en algún lugar del edificio; otro transceptor digital que se comunica con dispositivos portátiles de baja potencia; y otro receptor que capta una señal débil de un satélite en órbita intermedia ... te llamaría mentiroso.

Te llamaría mentiroso porque sabe que los receptores de tan alta sensibilidad no pueden construirse sin una multitud de circuitos sintonizados, que filtran las estaciones vecinas y seleccionan la señal de interés. Y que tales circuitos requieren partes con tamaños que se definen más por la física que por la tecnología, como condensadores e inductores.

Entonces tendría que explicar que en una radio moderna, la mayor parte de eso se hace en software. Que después de que la señal entrante de la antena se convierta a una frecuencia intermedia y se amplifique un poco, luego se muestrea mediante un convertidor analógico a digital; y el procesamiento posterior tiene lugar en un procesador de señal digital. Toda esa sintonía, ese filtrado, que solía requerir toneladas de hardware en una radio de alta gama de la vieja escuela, puede describirse en forma de ecuaciones matemáticas; y si eso se puede hacer, el DSP puede ejecutar esas ecuaciones en tiempo real.

Este, creo, es uno de los ejemplos más evidentes de software que reemplaza hardware. Como resultado, llevamos teléfonos inteligentes en nuestros bolsillos que, incluso para un ingeniero competente de la década de 1960, sería similar a un truco de magia.

En comparación con esto, la idea de que la lógica simple de un abridor de puerta de garaje, una báscula de baño electrónica o un control remoto de TV hoy en día se implementa utilizando un microcontrolador de uso general y un software en lugar de hardware personalizado casi parece trivial (y ciertamente sería mucho más comprensible para nuestro hipotético ingeniero de la década de 1960 que la radio definida por software).

Viktor Toth
fuente
16
La respuesta subestimada está subestimada. Aunque tengo poca experiencia en electrónica, y habiendo construido algunos dispositivos de radio yo mismo, nunca supe que la sintonización de señal se realizaba por software en estos días. Mi mente se está volviendo loca tratando de imaginar exactamente cómo se hace esto.
Machado
55
@Machado Si alguna vez haces un diseño electrónico serio, rápidamente te darás cuenta de que se trata básicamente de ecuaciones matemáticas. La electrónica física puede sumar, restar, dividir, multiplicar, diferenciar, integrar, etc. Es solo que en lugar de un condensador físico para filtrar todo el ruido de baja frecuencia, se realiza en código. La señal física se "carga" en el software a través de un trozo de hardware especializado llamado convertidor analógico a digital.
CHendrix
66
@Machado dspguide.com/pdfbook.htm Este libro de texto tiene muchos ejemplos de pseudocódigo. Es una joya.
brian_o
44
@Machado ¡No olvides elegir una radio definida por software (por alrededor de $ 20) y comenzar a jugar con ella !
Michael Hampton
55
Simplemente no le digas al tipo de la década de 1960 que para lo que usas principalmente toda esa potencia de computadora y características; es publicar fotos de tu comida, transmitir videos de gatos y cazar Pokémon ...
Baard Kopperud
42

Considere este circuito:

ingrese la descripción de la imagen aquí

Es un Flip Flop, también conocido como Multivibrador Biestable. Se puede reemplazar con este código:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;
Robert Harvey
fuente
1
¡Muchas gracias por tu respuesta y por corregir la publicación! ¿Tiene algún libro que sugiera para aprender un poco más al respecto? Gabriele
Gabriele Scarlatti
11
código de verificación : El lenguaje oculto del hardware y software de la computadora . Cubre muy bien la transición del hardware al software
Igor Milla
44
@igormilla Puedo responder por su sugerencia. Actualmente estoy leyendo el libro y es, con mucho, el mejor libro sobre arquitectura de computadoras que he leído. Hace un excelente trabajo al explicar de manera clara y concisa cada concepto, sin meter demasiada jerga técnica en la garganta. Se lo recomendaría a cualquiera que desee una comprensión más profunda de la relación entre hardware y software.
Christian Dean
1
@igormilla, buen hallazgo! Afortunadamente para mí, está disponible como parte de Safari Books Online , por lo que puedo comenzar a leer ahora mismo. :) (Leyendo mi comentario nuevamente antes de publicar: suena como un anuncio, pero soy un cliente feliz. No he encontrado ningún libro técnico recomendado en el último año que no pude navegar de inmediato o incluso leerlo completo en línea.)
Comodín el
29

Significa exactamente cómo suena.

Un ejemplo particularmente famoso es la unidad de disco II diseñada por Steve Wozniak para Apple II:

La principal innovación fue hacer que el controlador sea compacto mediante el uso de software, mientras que los competidores dependían del hardware. Como lo recuerda Bill Fernández, entonces técnico electrónico de Apple, "la ventaja clave del diseño [de Wozniak] [era] que usaba solo seis chips en lugar de los habituales 60 a 70

Otro ejemplo con el que probablemente estés más familiarizado: los emuladores. Reemplazan conjuntos completos de hardware (y software) completamente en software. CPU, varios chips de control, incluso dispositivos de almacenamiento.

Ahora no puede eliminar todo el hardware, eventualmente necesita algo para ejecutar el software. Pero, en general, cualquier tarea lógica que pueda implementar en hardware también puede implementarse en software (el rendimiento puede no ser idéntico, puede ser más lento, más rápido o en diferentes situaciones, dependiendo del hardware subyacente y la implementación).

8bittree
fuente
Entonces, ¿lo único que siempre necesita es al menos un procesador?
Gabriele Scarlatti
3
@GabrieleScarlatti Necesitará un poco más, específicamente, los dispositivos de E / S deben ser hardware (¡pero los controladores pueden ser software!) Y la memoria debe ser hardware. Las conexiones entre ellos deben ser hardware, pero la lógica necesaria es limitada. Cables simples si tiene suficientes pines, registros de desplazamiento ligeramente menos simples o dispositivos similares si no tiene suficientes pines.
8bittree
Jajaja sí, yo era un poco demasiado aproximada, ¿puedes sugerirme algún buen libro para aprender más al respecto? ¡Muchas gracias por las respuestas!
Gabriele Scarlatti
1
La mejor respuesta hasta ahora en este tema son los "emuladores".
Machado
1
¡No puedo hablar sobre este tema sin mencionar el Woz!
James R.
11

Otro campo en el que esto es cierto son los sintetizadores.

Los primeros sintetizadores eran hardware 100% analógico que generaba formas de onda directamente y luego las modificaba a través de circuitos (filtros, amplificadores, etc.). Era posible sintetizar digitalmente el sonido, pero requería recursos informáticos que la persona promedio no podía pagar (un mainframe real y un convertidor personalizado de digital a analógico).

A medida que mejoró la fabricación de chips, los sintetizadores cambiaron de chips analógicos puros a chips sintetizadores controlados por señales digitales pero que seguían generando señales analógicas, y luego a síntesis digital pura (reproducción de muestras, síntesis FM , síntesis aditiva verdadera, etc.).

Hoy en día, los procesadores son lo suficientemente baratos y rápidos como para permitir a los programadores crear versiones informáticas de sintetizadores analógicos clásicos que duplican exactamente el comportamiento de los circuitos originales al simular su comportamiento en tiempo real; de hecho, los teléfonos y tabletas ahora son capaces de funcionar lo suficientemente rápido como para ejecuta estas recreaciones; El Korg iMS-20 es un ejemplo.

Tanto los sintetizadores clásicos como los nuevos están disponibles como complementos VST o AU para programas de audio digital como Ableton Live, Logic o Cubase, y estos proporcionan el acceso a los sintetizadores a personas que de otra manera no tendrían espacio o dinero para poder usar ellos.

Editar: en este punto también debería mencionar VCVRack , que simula la síntesis modular analógica en tiempo real. Un gran paso adelante de los tiempos de renderización de varias horas por unos segundos de música.

Joe McMahon
fuente
1
Un Atari 2600 de 1977 tiene suficiente potencia de CPU para generar música de cuatro voces con un rango de cinco octavas, incluso dejando más del 39% del tiempo de CPU disponible para la generación de pantallas. Las tablas de búsqueda necesarias ocuparían más de la mitad de un cartucho 4K (aproximadamente 2300 bytes), pero, por supuesto, era posible que los cartuchos fueran más grandes que 4K. Uno probablemente no podría tener un juego terriblemente complicado mientras se reproduce música, pero una pantalla de título bastante colorida con un texto de desplazamiento sería una posibilidad definitiva >:*3.
supercat
Sí, dejé alrededor de 10? 20? años de desarrollo para que mi respuesta no se convierta en una novela. Muy buenos puntos! Solía ​​tener algo llamado (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] en mi Mac 512K que podía manejar 4 voces, apenas.
Joe McMahon
El 68000 tarda más ciclos para ejecutar cada instrucción que un 6502, pero con una codificación adecuada, una síntesis de tabla de ondas de cuatro voces debería ser bastante eficiente. Yo estimaría unos 240 ciclos / muestra con escala de amplitud usando una tabla de 256 bytes para cada ajuste de volumen; eliminar la escala de amplitud reduciría ese tiempo en 56 ciclos / muestra.
supercat
7

En otros tiempos, el corte era bastante claro. La mayoría de las cosas que necesitaban una ejecución rápida tenían que implementarse en hardware. Tomemos, por ejemplo, un multivibrador que genera una frecuencia. No hace mucho tiempo, necesitabas un par de transistores, condensadores y, finalmente, un cuarzo para generar una frecuencia (fija). Ahora hay microcontroladores baratos que cuestan solo unos pocos centavos más o menos. Como son tan rápidos, puede usarlos fácilmente para crear un multivibrador. Y además, puede controlar fácilmente a través del software qué frecuencia generar y dónde solía necesitar soldar hardware diferente. Sin embargo, al pasar por una cierta frecuencia (pero ahora bastante alta) aún necesitaría hardware puro. Como puede ver, hay una línea entre ambos, pero la parte que puede resolver con el software está creciendo (exponencialmente).

Editar en realidad "El software puede reemplazar el hardware" no es realmente correcto. Es solo el hecho de que el hardware se volvió tan poderoso que puedes usarlo para ejecutar software que emula hardware. Entonces, en lugar de algunos transistores simples pero estáticamente soldados, usa millones de transistores que entienden el software. Por lo tanto, el término debería ser "El hardware ahora puede entender el software".

qwerty_so
fuente
Sin embargo, para ser justos, casi todos los microcontroladores tienen (al menos un) módulo PWM de propósito general, implementado en hardware. Por lo tanto, rara vez se hace para bitbang una salida de frecuencia, utilizando software que se ejecuta en la CPU adecuada.
Lyndon White, el
@LyndonWhite Un PWM no es un multivibrador general. Moduló el ancho de pulso, que es un subconjunto de un generador de frecuencia.
qwerty_so
1
De hecho, esto es cierto. Mi punto era más bien que PWM, sin embargo, es, con mucho, el tipo de señal más común que uno quiere generar (dentro de un rango de ciclos de trabajo), razón por la cual los microprocesadores tienen hardware especial para ello. Probablemente pondría PWM vs bitbanging como un ejemplo de lo contrario "el hardware puede reemplazar el software".
Lyndon White,
@LyndonWhite Hice una edición a mi respuesta.
qwerty_so
5

Una comparación entre el juego arcade Tank (circa 1976) y el juego de consola doméstica Combat (1977) ofrece un buen ejemplo de cómo el software podría reemplazar el hardware incluso hace 40 años.

El juego arcade Tank (circa 1976) permitió a dos jugadores conducir alrededor de tanques y dispararse el uno al otro. No incluía ningún tipo de procesador, sino que contaba con contadores de hardware para realizar un seguimiento de las posiciones horizontal y vertical del haz de electrones, tanques y disparos, así como las puntuaciones del jugador, los ángulos de rotación, el tiempo transcurrido. Tenía una lógica cableada para generar los datos de mapa de bits asociados con las puntuaciones, las formas del tanque de los jugadores y el fondo.

El sistema de computadora de video Atari 2600 (una consola de juegos para el hogar alrededor de 1977) incluía hardware para rastrear las posiciones horizontales (¡pero no verticales!) De dos objetos de mapa de bits y cuatro generadores de pulso de ancho variable, mantener y registrar un nivel bajo de 20 bits de ancho -Resolución del patrón gráfico del campo de juego, así como dos patrones de 8 bits de alta resolución, colores de cierre para los jugadores, fondo y campo de juego, y detectar colisiones entre los diversos objetos. También incluía un temporizador programable de uso general, pero el hardware tenía poco más que lo anterior. No obstante, a pesar de que el hardware es mucho más simple que el del juego Tank, el cartucho de cartucho ROM 2K Combat permite que el 2600 juegue el mismo juego básico pero con muchas otras características (una variedad de vehículos y fondos, tiros de rebote, etc.) porque puede reemplazar la mayor parte de la máquina arcade ' s hardware con software. Curiosamente, a pesar de que el Atari 2600 es probablemente la segunda plataforma de hardware más simple de cualquier sistema de videojuego para el hogar basado en microprocesadores vendido comercialmente, está tan bien diseñado para facilitar la sustitución del hardware por software que, cuando se programa correctamente, puede circular alrededor de muchos de sus competidores

Super gato
fuente
Pasé muchas horas y cuartos jugando Tank. Un amigo mío restaura esas viejas consolas de juegos y me sorprendió mucho saber que todo es hardware. Alguien pasó mucho tiempo haciendo mapas de Karnaugh para hacerlo manejable. Replicarlo en software es mucho más fácil y requiere menos mantenimiento. Lo mismo con los asteroides. Pero ninguno termina con la misma sensación a menos que lo repliques exactamente, incluidos los controles de la consola. Además, los gráficos vectoriales simplemente no se ven iguales en las pantallas ráster, en mi opinión.
SDsolar
@SDsolar: Recuerdo haber leído una hoja, publicada creo que por Atari, con algunas modificaciones que un propietario podría hacer para modificar varios aspectos de la jugabilidad, creo que dos modificaciones involucradas con la habilitación permitieron el bloqueo del ángulo de disparo del jugador (agregando un "misil guiado ") y quizás agregar algo como una característica de tanque invisible. Cambiar el firmware habría requerido un equipo más complicado, y algunos tipos de modificaciones que serían fáciles en hardware serían imposibles en el firmware (por ejemplo, si la posición del jugador usa un contador binario, hacer que un jugador aparezca dos veces por línea de exploración es trivial).
supercat
1

La frase "el software puede reemplazar el hardware" es una advertencia para no intentar resolver problemas con el hardware a menos que haya ventajas muy claras. El software es 10x-50x más barato de desarrollar y casi infinitamente más barato de producir por unidad que el hardware. Hacer X en hardware no será una solución ganadora a menos que X realmente no se pueda hacer de manera eficiente en software.

Daniel deprimido
fuente
No voté en contra, pero estoy bastante seguro de que esto es incorrecto.
J. Allan
@ JefréN. Se trata solo de comprar hardware en lugar de desarrollarlo.
DepressedDaniel
Tienes razón; Entendí mal la intención de la pregunta. ¿Tiene una cita o un enlace para respaldar su afirmación de que "el software es 10x-50x más barato de desarrollar ... que el hardware"? Me interesaría saber si es una cifra aproximada o si es una declaración [comúnmente aceptada / verificada]. (Lamento que estés triste, por cierto; D)
J. Allan
No voté en contra, pero no puedo votar porque no siempre es cierto que el software sea más barato. A menudo puede ser mucho más caro. Además, considere el concepto de ASIC y FPGA, donde el software se utiliza para crear un equivalente de hardware que luego puede ejecutarse más rápido. Como la última diferencia entre ejecutables y programas interpretados, pero más aún.
SDsolar
1
@SDsolar No he oído hablar de un caso en el que la misma característica se implemente de manera más económica en hardware que en software. Si es factible hacerlo en software, será casi universalmente más barato hacerlo en software. Por supuesto, por ejemplo, un procesador de software se encontrará con problemas de rendimiento antes en comparación con una tarjeta gráfica. Pero eso va más a la viabilidad de una implementación de software para lograr una determinada base de rendimiento.
DepressedDaniel
1

El matiz se ha abordado bien, pero creo que es posible el obstáculo para OP, es que es muy imposible reemplazar el hardware con el software. El "hardware" siempre implica una cantidad significativamente menor de "hardware" que la solución de "software".

La diferencia es que la lógica de un proceso / algoritmo / cálculo se puede mover entre hardware y software. Se han dado muchos ejemplos, por lo que no daré más detalles.

Alguien
fuente
-1

En las primeras computadoras con memoria virtual, tenía que hacer que una tarea cambiara por una falta de TLB para cargar una nueva entrada de página. Una pieza de software del sistema operativo encontraría el proceso correcto y recorrería las tablas de páginas, encontraría la entrada correcta y la escribiría en el TLB. Antes de volver al proceso original para continuar.

Ahora, la mayoría de las CPU usan hardware para hacer el proceso, leer la tabla de páginas, recorrer las tablas de páginas y actualizar el TLB.

Ambos métodos deben usar el software para manejar las fallas de la página, pero como TLB omite fácilmente las fallas de la página, el hardware sigue superando al software.

En generel, si tiene un procedimiento simple que necesita manejar repetidamente, encontrará un reemplazo de hardware. Si tiene una solución de hardware compleja con un flujo de control complicado, puede simplificar el hardware mediante el uso de software.

Surt
fuente
-2

Hay muchos casos en los que el software puede reemplazar el hardware y viceversa.

Un ejemplo clásico de esto es una tabla de búsqueda matemática. En lugar de calcular los resultados a expresiones comunes cada vez, se almacenan internamente en su coprocesador matemático y simplemente se mencionan cuando es necesario.

La mayoría probablemente ya esté familiarizada con los filtros de audio y el software que puede imitar instrumentos y dispositivos reales como pedales o amplificadores.

Se usará cualquier hardware que pueda crearse virtualmente, si es más rápido y / o más barato que el equivalente físico.

Christopher Oldfield
fuente
-2

En contabilidad, ahora se puede enviar una copia impresa de una factura (por ejemplo) electrónicamente, y el software está comenzando a manejar la recepción de este tipo de papeleo y su procesamiento cada vez más. Es un excelente ejemplo de hardware reemplazado por software.

Andrew Day
fuente