Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura de computadoras
Docente: Ing. Jesús Talavera
Alumnos:
- Gutierrez Escapa Xiomara 20162904
- Gómez Torres Jhordam Maxwell 20122377
- Rojas Cardeña Ivan 20123060
- Dolmos Uriel 20143091
2019 – B
2.3.3 Implementación de las instrucciones de acceso a memoria
Las operaciones de carga y almacenamiento de datos en memoria son frecuentes sobre todo
en códigos RISC, donde se encuentra entre un 25% y 35% de cargas y 10% de almacenamiento.
Par realizar un carga (load) hay que determinar la dirección de memoria (effective address, EA),
en procesadores RISC se hace en dos pasos.
¿Qué sucede cuando tras una instrucción de acceso a memoria hay una instrucción que necesita
el dato para realizar una operación?
Dependencia tipo RAW entre las instrucciones i e i+d (d>0) se introduce entre ellos un retardo
de uso de carga(LOAD-USE-DELAY). Por lo tanto, entre la instrucción i e i+d debe haber dos
instrucciones, con lo que d>2 y el retardo de uso de carga es de 2 ciclos.
Se puede distinguir una serie de aspectos o dimensiones de diseño, que definen el espacio de
diseño de los procesadores segmentados.
Cuanto mayor sea el número de etapas de un procesador segmentado mayor será la ganancia
de velocidad que podría proporcionar.
Las dependencias ocasionan una desviación con respecto al funcionamiento ideal, haciendo que
la complejidad de la gestión del cauce aumente a medida que tiene más etapas(es más
profundo).
Ventajas :
Desventajas:
La distribución de las fases del procesamiento de una instrucción entre las distintas etapas del
cauce es un aspecto esencial en el diseño del cauce.
ARQUITECTURA RISC
Otros procesadores con arquitectura RICS , tienen cinco etapas. La etapa añadida es la
encargada de acceder a la memoria para captar o almacenar un dato, esta se encuentra tras de
la etapa de ejecución(EXE).A pesar de que las instrucciones con resultado y operandos en
registros no necesitan esta etapa, las 5 etapas del cauce simplifican el diseño del cauce.
ARQUITECTURA CISC
En la arquitectura CISC ,procesan instrucciones en las que el resultado y los operandos pueden
estar tanto en los registros como en memoria.
La etapa C y la etapa EXE se juntan (EXE/C), así pues al ejecutar una instrucción, se usa la etapa
(EXE/C), dos veces , una para acceder a la memoria y la segunda para realizar la operación.Para
la instrucción de carga de memoria , se es necesario el correspondiente camino de bypass entre
el registro donde se tiene el dato tras haberlo leído de la memoria al final del EXE/C y las entradas
de las unidades funcionales que puede realizar la operación.Pero existe un mínimo de un ciclo
de retardo de uso de carga .
Ejemplo de retardo de uso de carga igual a un ciclo son :MIPS X, R2000, R3000,Power 1y 2, Power
PC 601,etc.
Retardo más de un ciclo : MC88100 (2), R4000 (2), Alpha 21064 (3).
Se habla de cauce único o cauce multifuncional, dado que todas las instrucciones pasan por el
mismo cause físico.
a) Cauce doble
El cauce doble en el que se alarga el tiempo correspondiente a la unidad funcional más rápida,
introduciendo retardos o burbujas, para que los caminos posibles del cauce, tengan la misma
duración.
b) Cauces múltiples
Un cauce síncrono
La temporización síncrona se puede realizar utilizando un reloj de una o dos fases no solapadas,
evitando condiciones de carrera en los cauces.
Ya que el movimiento de los datos se realiza atreves de los cerrojos(latches), que están
alternativamente abiertos durante la fase 1 o la fase 2.
Temporización asíncrona
Es un procedimiento más adecuado cuando no se conoce la duración de las etapas o esta puede
cambiar según la instrucción que se procese.
EJERCICIOS PROPUESTO
Ejercicio N° 2
Supongamos que las etapas de una unidad funcional segmentada S1, S2, S3, S4 y S5 se utilizan
en el orden S1 , S3, S5, S1, S3, S4, S1, S3, S2, S5 ,S4, S2. ¿Cuál es la tabla de reservas?¿Cuál es el
tiempo ( en numero de ciclos ) de latencia de inicio del cauce?¿Cual es el vector de colisión
inicial? ¿Si se supone el cauce vacío inicialmente y se introduce una operación, es posible
introducir otra pasados 5 ciclos?¿Cuál es el numero mínimo de ciclos que hay que esperar?
Orden: S1, S3, S5, S1, S3, S4, S1, S3, S2, S5, S4, S2
TLI= 12 Ciclos
𝐂 = [𝟏𝟏𝟏0𝟏00]
Latencias prohibidas: F=(3 ,6 ,5 ,7) No es posible introducir una instrucción a los 5 ciclos
ya que es una latencia prohibida.
Tenemos ( 1,2,4 ) que son latencias NO prohibidas entonces el numero mínimo para
esperar un instrucción seria de 1 ciclo.
Ofrece:
• También limita las opciones de optimización, ya que no hay un paso fuera de línea donde
se pueda observar y modificar el gráfico completo de la red neuronal para un mejor
rendimiento.
Es posible implementar un subconjunto del marco completo importando solo el gráfico que
representa la red. El gráfico de salida y los pesos entrenados del marco de aprendizaje
automático se convierten de un archivo estático para que Arm NN los procese en tiempo de
ejecución como parte de la ejecución normal de la aplicación. Arm NN está diseñado para
realizar un conjunto cuidadosamente seleccionado de operaciones de inferencia, por lo que es
naturalmente más pequeño y más fácil de optimizar para ejecutar en un conjunto limitado de
recursos de memoria. Arm NN también admite el uso de una etapa de optimización fuera de
línea para mejorar aún más el rendimiento y desacopla el marco de capacitación del despliegue
de producción para una mayor eficiencia en la orientación a diferentes clases de plataforma.
• Implementación perfecta desde la nube hasta el borde: la capacitación será más fácil, con
herramientas más sofisticadas para refinar el rendimiento, ajustar la complejidad del modelo y
la precisión del ajuste.
Reutilizar una CPU, GPU o DSP para implementar un motor de inferencia puede ser una manera
fácil de agregar capacidades de ML a un dispositivo de borde. Muchos dispositivos integrados,
por ejemplo, no necesitarán nada más que una pequeña unidad de microcontrolador (MCU) de
baja potencia, y la gran mayoría de los teléfonos inteligentes en el mercado actual ejecutan ML
precisos y de alto rendimiento en una CPU. Pero cuando la capacidad de respuesta o la eficiencia
energética son críticas, las CPU pueden tener dificultades para cumplir con los exigentes
requisitos de rendimiento, y una unidad de procesamiento neuronal (NPU) dedicada, como el
procesador Arm ML, puede ser la solución más adecuada.
El procesador Arm ML El diseño optimizado del procesador ML proporciona una mejora masiva
en la eficiencia en comparación con las CPU, GPU y DSP a través de la convolución eficiente, la
dispersión y la compresión.