ARM Cortex A53 - Intel Core I7.en - Es
ARM Cortex A53 - Intel Core I7.en - Es
El ARM Cortex-A53
El A53 es un superescalar programado estáticamente de doble problema con detección dinámica de problemas,
que permite que el procesador emita dos instrucciones por reloj. Figura
4.74 muestra la estructura básica de la tubería de la tubería. Para nonbranch, integer
Tubería ALU 0
Entero
AGU Registrarse
+ expediente Tubería ALU 1
TLB Híbrido
vaticinador
Instrucción
Tubería MAC
cache Respóndeme
Indirecto
vaticinador
Dividir la tubería
Asunto
Tubo de carga
Tienda de tubería
D1 D2 D3 F1 F2 F3 F4 F5
FIGURA 4.74 La estructura básica de la canalización de enteros A53 es de ocho etapas: F1 y F2 obtienen la instrucción, D1 y D2 realizan la
decodificación básica y D3 decodifica algunas instrucciones más complejas y se superpone con la primera.
etapa del pipeline de ejecución (ISS). Después de ISS, las etapas Ex1, EX2 y WB completan la canalización de enteros. Las sucursales utilizan cuatro
predictores diferentes, según el tipo. La canalización de ejecución de punto flotante tiene cinco ciclos de profundidad, además de los cinco ciclos necesarios
para buscar y decodificar, lo que arroja un total de 10 etapas. AGU significa Unidad de generación de direcciones y TLB para Transaction Lookaside Buffer
(consulte el Capítulo 5). La unidad NEON ejecuta las instrucciones ARM SIMD del mismo nombre. (De Hennessy JL, Patterson DA: Arquitectura informática: un
enfoque cuantitativo, ed 6, Cambridge MA, 2018, Morgan Kaufmann.)
instrucciones, hay ocho etapas: F1, F2, D1, D2, D3 / ISS, EX1, EX2 y WB, como se describe en el
título. La canalización está en orden, por lo que una instrucción puede iniciar la ejecución solo
cuando sus resultados están disponibles y cuando se han iniciado las instrucciones de
procedimiento. Por lo tanto, si las siguientes dos instrucciones son dependientes, ambas
pueden pasar a la canalización de ejecución adecuada, pero se serializarán cuando lleguen al
comienzo de esa canalización. Cuando la lógica de emisión de la canalización indica que el
resultado de la primera instrucción está disponible, la segunda instrucción puede emitirse.
Los cuatro ciclos de búsqueda de instrucciones incluyen una unidad de generación de
direcciones que produce la siguiente PC incrementando la última PC o desde uno de los cuatro
predictores:
1. Una caché de destino de rama de entrada única que contiene dos recuperaciones de caché de
instrucciones (las siguientes dos instrucciones siguen a la rama, asumiendo que la predicción
es correcta). Esta caché de destino se comprueba durante el primer ciclo de recuperación, si
tiene éxito; luego, las siguientes dos instrucciones se suministran desde la caché de destino.
En caso de acierto y predicción correcta, la rama se ejecuta sin ciclos de retardo.
2. Un predictor híbrido de 3072 entradas, que se utiliza para todas las instrucciones que no llegan a la
caché de destino de la rama y que funciona durante F3. Las ramas manejadas por este predictor
incurren en un retraso de dos ciclos.
3. Un predictor indirecto de rama de 256 entradas que opera durante F4; Las ramas predichas por
este predictor incurren en un retraso de tres ciclos cuando se predicen correctamente.
4. Una pila de retorno de 8 profundidades, que opera durante F4 e incurre en un retraso de tres
ciclos.
Las decisiones de rama se toman en la tubería ALU 0, lo que resulta en una predicción errónea de la
pena de ocho ciclos. La Figura 4.75 muestra la tasa de predicción errónea para SPECint2006.
rama.La cantidad de trabajo que se desperdicia depende tanto de la tasa de predicción errónea como de la
22% 21,0%
20%
18%
Brnach mispredic en tasa
dieciséis%
13,4%
14%
12% 11,1%
10%
8%
5,9%
6% 4,2% 3,7% 3,9% 3,9%
4% 2,9% 2,6% 2,9%
1,3%
2%
0%
FIGURA 4.75 Tasa de predicción errónea del predictor de rama A53 para SPECint2006. ( Adaptado de
Hennessy JL, DA de Patterson: Arquitectura informática: un enfoque cuantitativo, ed 6, Cambridge MA, 2018,
Morgan Kaufmann.)
22%
19,6%
20%
Porcentaje de desperdicio de trabajo
18% 16,7%
dieciséis% 14,7%
14%
12%
10% 8.5% 8.5% 8,2%
8% 7,2% 7,2% 6,5%
6% 4,6%
4% 2,3%
2% 0,3%
0%
FIGURA 4.76 Trabajo desperdiciado debido a predicciones erróneas de rama en la A53. Debido a que el A53 es una máquina en
orden, la cantidad de trabajo desperdiciado depende de una variedad de factores, incluidas las dependencias de datos.
y fallas de caché, los cuales causarán un bloqueo. ( Adaptado de Hennessy JL, Patterson DA: Arquitectura informática: un
enfoque cuantitativo, ed 6, Cambridge MA, 2018, Morgan Kaufmann.)
tasa de emisión sostenida durante el tiempo en que se siguió la rama mal pronosticada. Como muestra la
Figura 4.76, el trabajo desperdiciado generalmente sigue la tasa de predicción errónea, aunque puede ser
mayor u ocasionalmente menor.
1. Los peligros funcionales, que ocurren porque dos instrucciones adyacentes seleccionadas para
su emisión simultáneamente, usan la misma tubería funcional. Debido a que el A53 está
programado estáticamente, el compilador debe intentar evitar tales conflictos. Cuando tales
instrucciones aparezcan secuencialmente, serán serializadas al comienzo de la línea de
ejecución, cuando solo la primera instrucción comenzará a ejecutarse.
3. Controle los peligros, que surgen solo cuando se predice mal las ramas.
Tanto las fallas de TLB (Capítulo 5) como las fallas de caché también causan bloqueos. La
Figura 4.77 muestra el IPC y las contribuciones estimadas de diversas fuentes.
El A53 utiliza una tubería poco profunda y un predictor de rama razonablemente agresivo, lo que
genera pérdidas modestas en la tubería, al tiempo que permite que el procesador alcance altos
10
9 Puestos de tubería
8.56
CPI ideal
4
3.37
2.14
1,75 1,76
2
1,33 1,39
1,17 1,22
0,97 1.04 1.07
1
0
hmmer h264ref libquantum perlbench sjeng bzip2 gobmk xalancbmk gcc una estrella omnetpp mcf
FIGURA 4.77 La composición estimada del IPC en el ARM A53 muestra que las paradas de oleoductos son significativas pero son
superadas por pérdidas de caché en los programas de peor desempeño (Capítulo 5). Estos se restan de
el IPC medido por un simulador detallado para obtener las paradas del oleoducto. Las paradas de las tuberías incluyen los tres peligros. (De
Hennessy JL, Patterson DA: Arquitectura informática: un enfoque cuantitativo, ed 6, Cambridge MA, 2018, Morgan Kaufmann.)
velocidades de reloj con un consumo de energía modesto. En comparación con el i7, el A53 consume
aproximadamente 1/200 de la energía de un procesador de cuatro núcleos.
Tenga en cuenta que los núcleos IP son diferentes a los núcleos en las computadoras multinúcleo Intel
i7. Un núcleo IP (que en sí mismo puede ser un núcleo múltiple) está diseñado para incorporarse con otra
lógica (por lo tanto, es el "núcleo" de un chip), incluidos los procesadores específicos de la aplicación (como
un codificador o descodificador de video), I / O interfaces e interfaces de memoria, y luego fabricadas para
producir un procesador optimizado para una aplicación en particular. Aunque el núcleo del procesador es
casi idéntico, los chips resultantes tienen muchas diferencias. Un parámetro es el tamaño de la caché L2,
que puede variar en un factor de 16.
Instrucción
Cola de instrucciones
ha podido recuperar
hardware
1536-Entrada unificada TLB de datos de 64 entradas Datos de doble puerto de 32 KB Caché l2 unificado
L2 TLB (12 vías) (Asociativo de 4 vías) caché (asociativo de 8 vías) de 256 KB (4 vías)
FIGURA 4.78 La estructura de canalización de Intel Core i7 que se muestra con los componentes del sistema de memoria. La
profundidad total de la tubería es de 14 etapas, con predicciones erróneas de rama que suelen costar 17 ciclos, y los pocos ciclos
adicionales probablemente se deben al tiempo necesario para restablecer el predictor de rama. Este diseño puede
amortigua 72 cargas y 56 tiendas. Cada una de las seis unidades funcionales independientes puede comenzar la ejecución de una
microoperación lista en el mismo ciclo. Se pueden procesar hasta cuatro microoperaciones en la tabla de cambio de nombre de
registros. El primer procesador i7 se introdujo en 2008; el i7 6700 es la sexta generación. La estructura básica del i7 es similar, pero
las generaciones sucesivas han mejorado el rendimiento al cambiar las estrategias de caché (Capítulo 5), aumentar el ancho de
banda de la memoria, expandir el número de instrucciones en vuelo, mejorar la predicción de bifurcaciones y mejorar el soporte de
gráficos. (De Hennessy JL, Patterson DA: Arquitectura informática: un enfoque cuantitativo, ed 6, Cambridge MA,
2018, Morgan Kaufmann.)
4. Las preformas de tampón de microoperación detección de flujo de bucle —Si hay una
pequeña secuencia de instrucciones (menos de 64 instrucciones) que comprenden un bucle,
el detector de flujo de bucles encontrará el bucle y emitirá directamente las
microoperaciones desde el búfer, eliminando la necesidad de las etapas de búsqueda de
instrucciones y decodificación de instrucciones para ser activado.
5. Realice el problema de la instrucción básica: busque la ubicación del registro en las tablas de
registro, cambie el nombre de los registros, asigne una entrada de búfer de reorden y
obtenga los resultados de los registros o búfer de reorden antes de enviar las
microoperaciones a las estaciones de reserva. Se pueden procesar hasta cuatro
microoperaciones en cada ciclo de reloj; se les asignan las siguientes entradas de búfer de
reordenación disponibles.
6. El i7 utiliza una estación de reserva centralizada compartida por seis unidades funcionales.
Se pueden enviar hasta seis microoperaciones a las unidades funcionales en cada ciclo de
reloj.
1,5
1,44
1,37
Ciclos por instrucción
0,81
0,71 0,76
0,68
0,60
0,5 0,54
0,47
0,42 0,41 0,38
0
una estrella bzip2 gcc gobmk h264ref hmmer libquantum mcf omnetpp perlbench sjeng xalancbmk
FIGURA 4.79 El IPC de los puntos de referencia SPECCPUint2006 en el i7 6700. Los datos de esta sección fueron recopilados por el profesor Lu Peng
y el estudiante de doctorado Qun Liu, ambos de la Universidad Estatal de Louisiana.
(Adaptado de Hennessy JL, Patterson DA: Arquitectura informática: un enfoque cuantitativo, ed 6, Cambridge MA, 2018,
Morgan Kaufmann.)
Rendimiento del i7
Debido a la presencia de especulaciones agresivas, es difícil atribuir con precisión la
brecha entre el desempeño idealizado y el desempeño real. Las extensas colas y
búferes en el 6700 reducen la probabilidad de paradas debido a la falta de
estaciones de reserva, cambios de nombre de registros o reordenar búferes de
manera significativa.
Por lo tanto, la mayoría de las pérdidas provienen de predicciones erróneas de sucursales o errores de
caché. El costo de una predicción errónea de rama es de 17 ciclos, mientras que el costo de una falla L1 es
de aproximadamente 10 ciclos (Capítulo 5). Una falla L2 es un poco más de tres veces más costosa que una
falla L1, y una falla L3 cuesta aproximadamente 13 veces lo que cuesta una falla L1 (130-135 ciclos). Aunque
el procesador intentará encontrar instrucciones alternativas para ejecutar durante los fallos de L2 y L3, es
probable que algunos de los búferes se llenen antes de que se complete un fallo, lo que provocará que el
procesador deje de emitir instrucciones.
La Figura 4.79 muestra el IPC general para los 19 puntos de referencia SPECCPUint2006. El
IPC medio del i7 6700 es 0,71. La Figura 4.80 muestra la tasa de predicción errónea de los
predictores de rama del Intel i7 6700. Las tasas de predicción errónea son aproximadamente la
mitad de las del A53 en la Figura 4.76 (la mediana es 2.3% versus 3.9% para SPEC2006) y el IPC
es menos de la mitad: la mediana es 0,64 frente a 1,36 para la arquitectura mucho más
agresiva. La frecuencia de reloj es de 3,4 GHz en el i7 frente a 1,3 GHz en el A53, por lo que el
tiempo medio de instrucción es de 0,64 × 1 / 3,4 GHz = 0,18 ns frente a
1,36 × 1 / 1.3 GHz = 1.05 ns, o más de cinco veces más rápido. Por otro lado, el i7
usa 200 × tanto poder!
10%
8,2%
8%
5,7%
6%
4,8%
4,2%
4% 3,0%
2,3%
1,9%
2% 1,5%
0,8% 0,9% 0,7%
0,3%
0%
FIGURA 4.80 La tasa de predicción errónea para las pruebas comparativas de números enteros SPECCPU2006 en el Intel Core i7
6700. La tasa de predicción errónea se calcula como la proporción de ramas completadas que están mal pronosticadas frente a todas las
ramas completadas. (Adaptado de Hennessy JL, Patterson DA: Arquitectura informática: un enfoque cuantitativo, ed 6, Cambridge MA,
2018, Morgan Kaufmann.)
El Intel Core i7 combina una canalización de 14 etapas y un problema múltiple agresivo para lograr
un alto rendimiento. Al mantener bajas las latencias para las operaciones consecutivas, se reduce el
impacto de las dependencias de datos. ¿Cuáles son los cuellos de botella potenciales más graves
para el rendimiento de los programas que se ejecutan en este procesador? La siguiente lista incluye
algunos problemas potenciales de rendimiento, los últimos tres de los cuales pueden aplicarse de
alguna forma a cualquier procesador canalizado de alto rendimiento.
■ Ramas que son difíciles de predecir, causando que la predicción errónea se detenga y se reinicie
cuando la especulación falla.
■ Retrasos en el rendimiento que surgen al acceder a la memoria (consulte el Capítulo 5) que hacen que el
procesador se detenga