¿Son las "unidades funcionales" lo mismo que "ranuras de problemas"?

0

Estudio hardware de computadora y un sistema de problemas múltiples. Me dicen que hay "cuatro unidades funcionales" pero no entiendo lo que eso significa.

    

2 respuestas

2

Ambos términos son genéricos: no tienen, por separado, un significado bien definido. Una 'unidad funcional' puede ser cualquier cosa, desde un módulo de detección / activación de bordes hasta una CPU completa.

Las unidades funcionales son solo una agrupación de lógica con un propósito fácilmente definido. El nivel de abstracción depende de la persona que usa el término.

Una 'ranura de problemas' implica cierto grado de paralelismo en el diseño, aunque es ambiguo lo que se está emitiendo. Lo más probable es que sea una microoperación, o (menos probable) una transferencia de bus, pero esto no se debe asumir. Tampoco se define cómo se controlan las ranuras de problemas. Pueden dividirse por función, manejarse desde un búfer / cola, etc.

La pregunta implica una brecha más fundamental en la descripción que intenta interpretar. Es posible que la estructura presentada sea más importante que la forma en que se describió.

    
respondido por el Sean Houlihane
0

No, no son lo mismo.

Las unidades funcionales son solo unidades que realizan funciones lógicas o aritméticas. Una ALU es una unidad funcional que realiza sumas, restas, operaciones lógicas, etc., de acuerdo con la instrucción que se le suministre. Puede haber varias ALU, además de otras unidades funcionales dedicadas a operaciones más complejas como la multiplicación, la división, etc.

Puede encontrar que las operaciones de ALU toman un ciclo de reloj, pero la multiplicación toma dos y la división toma cuatro ciclos, para ahorrar espacio y puertas en estas unidades funcionales de uso menos frecuente. (O en un DSP donde las matemáticas rápidas son esenciales, puedes tener varios multiplicadores y cada uno toma un ciclo de reloj.

Ahora, especialmente cuando diferentes unidades toman diferentes períodos de tiempo, programar las instrucciones de modo que (a) el máximo posible se lleve a cabo en cada ciclo de reloj y (b) todos los resultados lleguen en el orden correcto, se convierten en un proceso bastante complejo.

Cada instrucción se alimenta a una ranura de emisión, para esperar a que su unidad funcional Y todas sus dependencias (valores de entrada) estén listas. Por ejemplo, al sumar dos números, es posible que tenga que esperar a que uno venga de la memoria y el otro provenga de la unidad de división (lenta). Esta instrucción espera en esta ranura de emisión hasta que ambas entradas estén listas Y ninguna instrucción anterior está utilizando el sumador (unidad funcional ALU).

Por lo tanto, en una arquitectura, puede haber varias instrucciones que esperan un recurso, cada una en su propia ranura de problemas. Pero cada arquitectura es diferente, de acuerdo con las decisiones que tomaron los arquitectos sobre cómo maximizar el rendimiento o minimizar el tamaño y la potencia.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas