A method and apparatus for arbitrating access to a computation engine
includes processing that begins by determining, for a given clock cycle of
the computation engine, whether at least one operation code is pending.
When at least one operation code is pending, the processing continues by
providing the operation code to the computation engine. When multiple
operation codes are pending for the given clock cycle, the processing
determines a priority operation code from the multiple pending operation
codes based on an application specific prioritization scheme. The
application specific prioritization scheme is dependent on the application
and may include a two level prioritization scheme. At the first level the
prioritization scheme prioritizes certain threads over other threads such
that the throughput through the computation module is maximized. At the
second level, the prioritization scheme prioritizes operation codes within
a set of threads of equal priority based on the length of time the data
for the operation codes has been in the processing pipeline. The
processing then continues by shifting the remaining operation codes of the
multiple operation codes to a subsequent clock cycle of the computation
engine.
Un método y un aparato para el acceso de arbitraje a un motor del cómputo incluye el proceso de eso comienza determinándose, para un ciclo de reloj dado del motor del cómputo, si por lo menos un código de operación es pendiente. Cuando por lo menos un código de operación es pendiente, el proceso continúa proporcionando el código de operación al motor del cómputo. Cuando los códigos de operación múltiples son pendientes para el ciclo de reloj dado, el proceso determina un código de operación de la prioridad del múltiple hasta que finalicen los códigos de operación basados en un esquema específico del prioritization del uso. El esquema específico del prioritization del uso es dependiente en el uso y puede incluir un esquema del prioritization de dos niveles. En el primer nivel el esquema del prioritization da la prioridad a ciertos hilos de rosca sobre otros hilos de rosca tales que el rendimiento de procesamiento a través del módulo del cómputo está maximizado. En el segundo nivel, el esquema del prioritization da la prioridad a códigos de operación dentro de un sistema de hilos de rosca de la prioridad igual basados en la longitud del tiempo que los datos para los códigos de operación han estado en la tubería de proceso. El proceso entonces continúa cambiando de puesto los códigos de operación restantes de los códigos de operación múltiples a un ciclo de reloj subsecuente del motor del cómputo.