¿El software determina la especificación de hardware?

Con frecuencia, los requisitos mínimos se establecen al observar los tipos de sistemas que los clientes del mercado objetivo realmente usarían para el producto en cuestión y elegir un límite razonable que no aleje al cliente objetivo y es algo que el departamento de control de calidad puede probar con un mínimo molestia adicional.

Si espera que la mayoría de sus clientes instalen su producto en computadoras de escritorio relativamente recientes, por ejemplo, probablemente mire a su alrededor y vea que casi cualquier computadora de escritorio de gama baja para el hogar se enviará con 2 GB de RAM . Por lo tanto, es muy probable que una computadora reciente tenga al menos 1 GB de RAM, incluso si tiene un par de años. Si muy pocos de sus clientes van a querer usar una máquina que solo tiene 512 MB de RAM, es probable que los ingresos de estas ventas se vean más que compensados ​​por las solicitudes de soporte (es probable que las máquinas más antiguas tengan muchos otros problemas y incompatibilidades que causarán problemas y generarán más llamadas a la mesa de ayuda que otros clientes). Por lo tanto, puede ser más rentable evitar hacer ventas a esos clientes.

Este es más o menos el mismo cálculo que entra en averiguar qué navegadores web y resoluciones de pantalla desea admitir. Incluso si el sitio puede funcionar bien en IE 6 en 640 × 800, si el 99% de sus usuarios utilizan navegadores web más recientes y tienen resoluciones de pantalla más grandes, probablemente sea mejor especificar que es compatible con IE 7 y superior y no intentarlo para mantener un antiguo IE 6 box / VM para las pruebas de regresión de las que está atendiendo al 1% de su mercado objetivo que utiliza versiones de navegador realmente antiguas.

Es un poco de ambos …

Por ejemplo, configurar el entorno de una función a menudo significa, guardar un montón de registros y asignar un marco de pila. Por el contrario, salir de una función significa restaurar los registros y destruir el marco de la pila. Entonces, las instrucciones de la máquina fueron creadas para soportar eso.

O algunos bucles usan lectura o escritura con un puntero de disminución de publicación. Los diseñadores de hardware convirtieron eso en una sola instrucción.

Por otro lado, la programación de instrucciones RISC se puede optimizar con la ejecución de instrucciones fuera de orden. Esto significa que el generador de código de un compilador debe hacer todo tipo de cosas inteligentes para generar el mejor código de máquina.

En la mayoría de los casos, el software debe diseñarse en torno al hardware.