Las computadoras están hechas de tres bloques primarios. Una CPU, una memoria y un sistema de E/S. El rendimiento de un sistema informático depende en gran medida de la velocidad con la que la CPU puede obtener instrucciones de la memoria y escribir en la misma memoria. Las computadoras están utilizando la memoria caché para cerrar la brecha entre la capacidad del procesador para ejecutar instrucciones y el tiempo que lleva recuperar las operaciones de la memoria principal.
El tiempo que tarda un programa en ejecutarse con un caché depende de
- El número de instrucciones necesarias para realizar la tarea.
- El número promedio de ciclos de CPU necesarios para realizar la tarea deseada.
- El tiempo de ciclo de la CPU.
Si bien la ingeniería de cualquier producto o característica, la estructura genérica del dispositivo sigue siendo la misma, lo que cambia la parte específica del dispositivo que debe optimizarse debido a los requisitos del cliente. ¿Cómo hace un ingeniero para mejorar el diseño? Sencillo, comenzamos haciendo un modelo matemático conectando las entradas con las salidas.
Execution Time = Instruction Count x Cycles per Instruction x Cycle Time =Instruction Count x (CPU Cycles per Instr. + Memory Cycles per Instr.) x Cycle Time =Instruction Count x [CPU Cycles per Instr. +(References per Instr. x Cycles per References)] x Cycle Time
Estos cuatro cuadros representan cuatro puntos débiles importantes que se pueden abordar para tener un cambio de rendimiento significativo, ya sea positivo o negativo en la máquina. El primer elemento de la ecuación, el número de instrucciones necesarias para realizar una función, depende de la arquitectura del conjunto de instrucciones y es el mismo en todas las implementaciones. También depende del diseño del compilador para producir un código eficiente. Se desea optimizar los compiladores para ejecutar funciones con menos instrucciones ejecutadas.
Los ciclos de CPU por instrucciones también dependen de las optimizaciones del compilador, ya que se puede hacer que el compilador elija instrucciones que consumen menos CPU y tienen una ruta de acceso más corta. La canalización eficiente de las instrucciones también mejora este parámetro, lo que hace que las instrucciones maximicen la optimización de los recursos de hardware.
La cantidad promedio de referencias a memoria por instrucción y la cantidad promedio de ciclos por referencia a memoria se combinan para formar la cantidad promedio de ciclos por instrucción. El primero es una función de la arquitectura y los algoritmos de selección de instrucciones del compilador. Esto es constante en todas las implementaciones de la arquitectura.
Set de instrucciones arquitectura :
- Computadora con conjunto de instrucciones reducido (RISC):
la computadora con conjunto de instrucciones reducido (RISC) es uno de los conjuntos de instrucciones más populares. Esto es utilizado por los procesadores ARM y esos son uno de los chips más utilizados para productos.
- Computadora con conjunto de instrucciones complejas (CISC):
la computadora con conjunto de instrucciones complejas (CISC) es una arquitectura de conjunto de instrucciones para la operación muy especializada que se ha investigado y estudiado tan minuciosamente que incluso la microarquitectura del procesador está construida solo para ese propósito específico.
- Computadoras con conjunto mínimo de instrucciones (MISC):
las computadoras con conjunto mínimo de instrucciones (MISC) el 8085 pueden considerarse en esta categoría en comparación con los procesadores modernos.
- Computación de instrucciones explícitamente paralelas (EPIC):
la computación de instrucciones explícitamente paralelas (EPIC) es un conjunto de instrucciones que se usa ampliamente en las supercomputadoras.
- Una computadora con conjunto de instrucciones (OISC):
una computadora con conjunto de instrucciones (OISC) usa solo ensamblaje.
- Computadora con conjunto de instrucciones cero (ZISC):
esta es una red neuronal en una computadora.
Tecnología del compilador:
- Compilador de paso único:
este código fuente se convierte directamente en código de máquina.
- Compilador de dos pasos:
el código fuente se convierte en una representación intermedia que se convierte en código de máquina.
- Compilador multipaso:
en este código fuente se convierte en código intermedio desde el extremo frontal, luego se convierte en código intermedio después del extremo medio y luego pasa al extremo posterior que se convierte en código de máquina.
Implementación de la CPU:
La microarquitectura depende de la filosofía y metodología de diseño de los ingenieros involucrados en el proceso. Tome un ejemplo simple de hacer un circuito para tomar la entrada de un conector común que lo pasa a través de un amplificador y luego almacena los datos en un búfer.
Se pueden tomar dos enfoques para resolver el problema, ya sea colocando un búfer al principio y colocando dos amplificadores y desviando la corriente, lo que tendría sentido si se supone que se amplifican dos tipos diferentes de señales o si hay una ligera diferencia. en la región de saturación de los amplificadores. O podríamos hacer una ruta actual común e introducir una dependencia temporal del búfer en el que se almacenan los datos, eliminando así la necesidad de búferes por completo.
Las diferencias mínimas como estas en la microarquitectura VLSI del procesador crean diferencias de tiempo masivas en las mismas implementaciones del conjunto de instrucciones por parte de dos compañías diferentes.
Jerarquía de caché y memoria:
Esto nuevamente depende del caso de uso para el cual se construyó el sistema. El uso de una computadora de propósito general, también llamada computadora personal, que puede realizar una amplia variedad de cálculos matemáticos y producir resultados amplios pero razonablemente precisos para sistemas que no son en tiempo real en un sistema duro en tiempo real, será muy imprudente.
Una diferencia muy grande será el tiempo necesario para acceder a los datos en el caché.
Se puede ejecutar un experimento simple en su computadora mediante el cual puede encontrar el tamaño de caché de su modelo particular de procesador e intentar acceder a los elementos de una array alrededor de esa array. Se observará una disminución masiva de la velocidad al intentar acceder a una array mayor que la memoria caché. Talla.
Publicación traducida automáticamente
Artículo escrito por shridharnator y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA