En el núcleo de una arquitectura de CPU hay un conjunto de instrucciones que admiten la programación de “propósito general”. El conjunto de instrucciones es bastante universal, ya que se puede usar para implementar cualquier programa (mi advertencia es principalmente sobre la capacidad de una CPU para comunicarse con otras CPU).
Más allá de eso, se agregan instrucciones y características arquitectónicas donde son lo suficientemente baratas y brindan suficientes beneficios para que valgan la pena. Los costos y beneficios dependen del contexto: considere agregar un punto flotante de 64 bits a un ARM M0 en comparación con agregar una instrucción para admitir AES a un Intel Xeon.
Históricamente, la asignación de memoria de soporte se ha trasladado al hardware del procesador. Por ejemplo, la gestión de memoria basada en tablas de páginas proporcionada en procesadores de propósito general se desarrolló (entre otras cosas) para resolver el problema de la fragmentación de la memoria; proporciona una forma de tomar un conjunto de páginas con direcciones (físicas) no contiguas y presentarlas a un programa como un conjunto de páginas con direcciones contiguas (virtuales). Tenga en cuenta que hay muy poco (tal vez una instrucción de “sonda”) en el conjunto de instrucciones que lo respalde. El mecanismo de paginación originalmente dependía de las tablas de páginas en la memoria con un caché (TLB) para contener las entradas de tablas de páginas utilizadas recientemente, sin embargo, en la arquitectura MIPS, el TLB fue promovido a ser arquitectónico y administrado por software.
- ¿Qué debo tomar, CSE (informática) en IGDTUW o ICE (instrumentación y control) en NSIT?
- Si una computadora almacena una dirección de 8 bits para 1 bit de datos en la RAM, ¿dónde y cómo la computadora aborda la dirección de 8 bits?
- ¿Cuál es la explicación más simple y mejor de cómo Google realmente venció a los otros motores de búsqueda? Mejores algoritmos? ¿Mejor modelo de negocio? ¿Mejor diseño de portada?
- Voy a ingresar al segundo año de la B. Tech. en el programa CSE en MNNIT. He comenzado la programación competitiva. ¿Debo continuar con esto o poner énfasis en trabajar en proyectos y desarrollo de software?
- ¿Qué especialización de doctorado en informática tiene una gran demanda en los campos de TI?
¿Qué pasa con la recolección de basura y la administración de memoria correspondiente, más allá del soporte ofrecido por la administración de memoria basada en páginas? Se ha probado, por ejemplo, en la máquina LISP, pero a medida que la tecnología evoluciona, también cambian varios aspectos del costo-beneficio. Por ejemplo, las técnicas de recolección de basura cambian y los mecanismos estrechamente vinculados al hardware tienden a ser inmutables y obsoletos. [Para comparar, mire cómo el “hardware de Java” ha pasado de moda]. Hay casos en que las máquinas modernas admiten la recolección de basura y la administración de memoria mejor que las máquinas más antiguas. Por ejemplo, el cambio a 64 bits proporciona suficientes bits de puntero que algunos pueden ser “robados” para admitir la recolección de basura y la administración de memoria. (ARM-64 proporciona explícitamente para hacer esto). Apple ha explotado esto (ciertamente para el recuento de referencias en lugar del GC clásico) para reducir el número de referencias de memoria realizadas. Mike Ash dice: (ver viernes Q&A 2013-09-27: ARM64 y usted)
- “En resumen, las mejoras en el tiempo de ejecución de Apple hacen que la asignación de objetos en modo de 64 bits cueste solo el 40-50% de lo que hace en modo de 32 bits. Si su aplicación crea y destruye muchos objetos, eso es un gran acuerdo.”
¿Se podría hacer más? Probablemente. Sin embargo, hacerlo y explotar cualquier mecanismo requeriría trabajar en muchos niveles de abstracción: diseño del procesador, arquitectura del procesador, herramientas básicas, sistema operativo y sistemas de lenguaje. No hay muchas compañías que se integren lo suficientemente verticalmente como para cubrir estas áreas.