Diferencia entre las rutas de datos MIPS y ARM [cerrado]

-2

Acabo de aprender arquitectura MIPS simplificada de cinco etapas en la clase. Estoy leyendo otras Arquitecturas de conjuntos de instrucciones ( ARM actualmente) y encontré algunas diferencias entre ARM y MIPS. Ambos tienen diferentes formatos de instrucción, conjunto de registros, etc.

¿Hay alguna diferencia en la ruta de datos de ARM desde MIPS, considerando solo instrucciones básicas como ADD, LDR, SDR e instrucciones de bifurcación? porque la ruta de datos implica la obtención, decodificación y ejecución de la instrucción y debe ser la misma para todas las Arquitecturas de conjuntos de instrucciones.

No pude encontrar la información sobre la ruta de datos ARM desde donde estoy leyendo esto.

    
pregunta azhar baloch

2 respuestas

3

Está teniendo dificultades para encontrar información en la "ruta de datos ARM" porque ha habido muchas microarquitecturas ARM diferentes con rutas de datos diferentes. No hay una sola microarquitectura. (Este no es el caso de MIPS, ¡con lo que está familiarizado es con una versión simplificada!)

Los procesadores ARM más pequeños, como los microcontroladores Cortex-M, usan una tubería simple de tres etapas . Esto es no lo mismo que el canal MIPS, pero es más o menos comparable. Los procesadores ARM más grandes, como la serie Cortex-A, utilizan una variedad de microarquitecturas superescalares; Para más detalles, consulte el Manual de referencia de arquitectura ARM correspondiente. (Esto no está disponible gratuitamente en línea, pero se puede descargar desde ARM Si tienes una cuenta.)

    
respondido por el duskwuff
2
  

porque la ruta de datos implica la obtención, decodificación y ejecución de la instrucción y debe ser la misma para todas las arquitecturas de conjuntos de instrucciones.

De hecho, es un poco cierto y un poco falso:

Por lo general, puede dividir lógicamente su procesador en estos pasos, pero esa es una manera de mirar .

Especialmente para núcleos de CPU complejos, y más aún si se utiliza la canalización y la operación especulativa, las líneas entre, por ejemplo. la decodificación y la ejecución pueden volverse un poco borrosas.

Más aún: muchas arquitecturas (especialmente las que no son RISC) operan con una instrucción interna diferente a la de su ISA "pública".

Si el ISA tiene un modo de dirección de registro indirecto, y la etapa de decodificación lo convierte en una instrucción de registro fijo en el microcódigo, marcando ese registro como en operación (para que las cosas que ingresen en la tubería sepan que deben esperar hasta la modificación del registro está terminada en caso de que necesiten leerlo), ¿eso ya es parte de la ejecución o aún se está decodificando?

Si tiene un canal inteligente que ve una rama y obtiene solo la siguiente instrucción "más probable", ¿no es eso también una ejecución "prematura"?

Entonces, estás mapeando conceptos a implementaciones reales. Eso te da la libertad de interpretar cosas, pero también una falta de claridad.

Entonces, ARM no es un núcleo: hay una gama relativamente amplia de núcleos ARM, que pueden exhibir la misma ISA (o más bien, una de las cuatro ISA ARM), pero funcionan de manera muy diferente internamente, y sus tuberías difieren sustancialmente: desde los núcleos cortex-M con más espacio sobre el cortex-R de latencia definida hasta los procesadores de aplicaciones con extensiones SIMD y tuberías de gran longitud.

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas