Busque la edad del 8085. Se remonta a la época en que cada parte de un circuito se optimizaba a mano, y el diseño de la mano con cinta y cuchilla de afeitar era aún común (aunque probablemente Intel estaba usando sistemas CAD). Por lo tanto, se habría diseñado para minimizar agresivamente el número de puertas utilizadas. Y como dice Tom, puedes sumar y restar usando el mismo circuito con un poco de cuidado, así que creo que eso te da tu respuesta.
Del comentario de GBulmer:
¿Puede ver una manera de producir resultados múltiples (por ejemplo, agregar y
restar) simultáneamente, y seleccione la respuesta correcta con menos
¿Puertas (o transistores) que la lógica que produce solo un resultado?
Personalmente, no puedo. Si produce ambas respuestas, necesita lógica adicional en forma de multiplexores para seleccionar la que desea.
Ahora no voy a ejecutar el experimento, pero sospecho que si escribe una ALU en VHDL, que sigue este enfoque, una herramienta de síntesis moderna pasará mucho tiempo (varios segundos) y la optimizará hasta algo cercano a la versión optimizada a mano.
Para probar esta hipótesis, genere A + B, A-B y un multiplexor 2: 1 como módulos separados, sintetícelos por separado y tenga en cuenta los recursos. Luego, enróllelos en un solo diseño y vuelva a ejecutar la síntesis (es posible que deba habilitar las optimizaciones, "optimizar para el área" y "aplanar la jerarquía"). El último será más pequeño: no sé qué tan cerca está de una versión minimizada a mano: ¡el desafío está establecido si alguien quiere agregar otra respuesta!