Cuando dice “velocidad”, ¿se refiere a la velocidad del reloj, el rendimiento (IPC), la latencia o qué?
Si te refieres a la velocidad del reloj, eso tiene que ver con el consumo de energía y la litografía. Cuanto más pequeños son los transistores dentro de una CPU (el tamaño del nodo litográfico), más rápido pueden encenderse y apagarse porque disminuye la distancia que tienen que moverse los electrones. Cuanto mayor sea la Potencia de diseño térmico (TDP), mejor podrá aplicar el overclock (siempre que tenga una refrigeración adecuada).
El rendimiento se incrementa utilizando varios métodos. La canalización y la arquitectura superescalar son 2 de los principales aspectos de diseño utilizados en las CPU modernas que ayudan a aumentar las instrucciones por reloj (IPC).
- Si necesitara $ 3000 para pagar su hipoteca y solo tuviera 5 días, ¿qué haría en línea para ganar ese dinero?
- ¿Cómo pueden las personas que roban teléfonos celulares restablecerlos y venderlos? ¿Hay alguna manera de evitar que esto suceda si el teléfono no se conecta a Internet nuevamente después de ser robado?
- ¿Cuál es la mejor tecnología emergente en middleware?
- ¿La tecnología humana ha avanzado exponencialmente en la última década o ha avanzado aproximadamente al mismo ritmo en toda la historia?
- Si pudieras poner 3 artículos en una cápsula de tiempo para abrir en 200 años, ¿cuáles serían?
Explicaré Pipelining con una analogía. Imagine que tiene que lavar 10 cargas de ropa y tiene 1 lavadora y una secadora. Una forma de hacerlo es 1) poner la primera carga en la lavadora, 2) esperar a que la máquina termine de lavar, 3) luego poner la carga en la secadora y esperar a que termine de secarse, vuelva al paso 1. Esto resulta 20 ciclos para terminar 10 cargas. La siguiente imagen explica esto.
La otra forma de hacerlo es 1) poner la primera carga en la lavadora, 2) esperar a que la máquina termine de lavar, 3) luego poner la carga en la secadora y poner una nueva carga en la lavadora mientras la otra está secado, luego vaya al paso 2. Esto da como resultado 10 ciclos para 10 cargas. La siguiente imagen explica esto.
Ahora imagine en lugar de cargas de ropa, estamos enviando las instrucciones de la CPU, y la CPU se divide en varias etapas. Búsqueda de instrucciones, decodificación de instrucciones, ejecución de instrucciones y reescritura de datos. En lugar de enviar una instrucción hasta el final, esperando una reescritura antes de enviar la siguiente instrucción, podemos cargar todas las etapas de la tubería con una instrucción. Sin embargo, hay casos en los que intenta acceder a un recurso que aún no se ha actualizado correctamente porque la etapa de reescritura no ha terminado (por ejemplo, una rama), esto se denomina burbuja, y la tubería debe detenerse y luego Una vez que los datos que necesita están en el lugar correcto, la tubería puede reanudarse. Cuanto más grande sea la tubería, más tiempo pasará esperando (las CPU modernas tienen una arquitectura de tubería profunda de 10-25 etapas).
La solución a este problema es usar un predictor de rama, que puede ser un circuito extremadamente complicado. Las CPU modernas, como la nueva arquitectura Ryzen de AMD, utilizan una ANN (red neuronal artificial) para predecir las ramas con una tasa de precisión de hasta el 95%, en comparación con una tasa de precisión del 70% al 85% de los predictores estándar.
Otra forma de aumentar el rendimiento es obtener los bloques de datos e instrucciones más útiles en una memoria caché, de modo que cuando la CPU necesite esos recursos no tenga que esperar al Ram. Cuanto más exactamente pueda reemplazar los bloques de caché, más rápido se ejecutará la CPU porque Ram tarda aproximadamente 100ns cuando Cache tarda aproximadamente 10ns en acceder. Una vez más, se puede usar un ANN aquí para llenar con mayor precisión el caché con los datos y las instrucciones que probablemente necesitará a continuación.
A continuación tenemos lo que se llama una arquitectura SuperScalar. Imagínese si puede cargar 10 instrucciones en una CPU en lugar de solo una. Algunas instrucciones requieren una unidad de coma flotante, otras solo para la unidad de enteros y otras solo están accediendo a IO. Lo que puede hacer es decodificar varias instrucciones de antemano y dividir los recursos de la CPU en varias instrucciones a la vez.
Es importante tener en cuenta que muchas CPU utilizan ALU de tamaño de byte encadenadas para formar una ALU de 64 bits, esto significa que se pueden realizar 8 operaciones de ALU individuales de 8 bits en un ciclo, 4 operaciones individuales de 16 bits en un ciclo, 2 individuales 32 operaciones de bit en un ciclo o una única operación de 64 bits en un ciclo.
Entonces, lo que realmente limita la forma en que funciona una arquitectura superescalar es el diseño del mecanismo de búsqueda y decodificación de instrucciones. Cuanto más avanzada sea la lógica, mejor será dividir los recursos de la CPU. Sin mencionar que las CPU modernas tienen múltiples núcleos, lo que requiere una lógica adicional para mantenerlos alimentados correctamente.
También la arquitectura Superscalar es una forma de lo que puede haber escuchado llamado Hyperthreading. Sin embargo, cada fabricante de CPU tiene sus propias formas de implementar esto realmente.
La latencia podría considerarse como ping o tiempo de respuesta. Cuando le doy instrucciones a la CPU, ¿cuánto tiempo lleva recuperar un resultado? Este tipo de problemas se pueden resolver con diferentes técnicas de programación. Hay FCFS (primero en llegar), RR (round robin), SJF (primero el trabajo más corto), que son solo algunas técnicas de programación no preventivas y, por supuesto, puede tener un programador preventivo como SRJTN (tiempo de trabajo restante más corto) siguiente).
Al elegir el algoritmo de programación correcto, debe tener en cuenta el tipo de condiciones que puede encontrar. Si no lo hace, puede terminar con un proceso muerto de hambre o en un bloqueo muerto / vivo. Esos son malos
¡Hay tanto para escribir y poco tiempo para hacerlo, si tiene alguna otra pregunta, comentario o edición, por favor dígame!
Lea esto para obtener más información, es donde obtuve las imágenes de la lavadora de tuberías: tuberías