Procesador programable y método con operaciones amplias.
Un procesador, que comprende:
un primer camino de datos (137,
714 y 715) que tiene una primera anchura de bits;
un segundo camino de datos (entre 136 y 149; 714 y 720n) que tiene una segunda anchura de bits mayor que la primera anchura de bits;
una serie de terceros caminos de datos (155 a 158; 720A y 740) que tienen una anchura de bits combinada menor que la segunda anchura de bits;
un primer almacenamiento de operando amplio (136, 714) acoplado al primer camino de datos y al segundo camino de datos para almacenar un primer operando amplio recibido sobre el primer camino de datos, teniendo el primer operando amplio un tamaño con un número de bits mayor que la primera anchura de bits;
un segundo almacenamiento de operando amplio (134, 714) acoplado al primer camino de datos y al segundo camino de datos para almacenar un segundo operando amplio recibido sobre el primer camino de datos, teniendo el segundo operando amplio un tamaño con un número de bits mayor que la primera anchura de bits;
un archivo de registros (720A a 720n) que incluye registros que tienen la primera anchura de bits, estando conectado el archivo de registros al primer camino de datos y a los terceros caminos de datos, e incluyendo almacenamiento (710) para un primer especificador de operando amplio que especifica una dirección de primer operando amplio y un segundo especificador de operando amplio que especifica una dirección del segundo operando amplio;
una unidad funcional (149, 740) que puede iniciar instrucciones, la unidad funcional estando acoplada mediante el segundo camino de datos al primer almacenamiento de operando amplio y estando acoplada mediante los terceros caminos de datos al archivo de registros; y
en el que la unidad funcional está dispuesta para ejecutar una instrucción de rebanada de transformada de Fourier amplia que contiene campos de instrucción que especifican (i) un primer registro de operando amplio (710) para provocar la recuperación del primer operando amplio para su almacenamiento en el primer almacenamiento de operando amplio, (ii) un segundo registro de operando amplio (710) para provocar la recuperación del segundo operando amplio para su almacenamiento en el segundo almacenamiento de operando amplio, (iii) por lo menos un registro de operando de control en forma de un registro general en el archivo de registros que almacena un operando de control y especifica parámetros de control de precisión y de extracción, y (iv) un registro de resultados (745) en el archivo de registros, y
en el que la instrucción de rebanada de transformada de Fourier amplia está configurada para provocar que la unidad funcional (i) tome el primer operando amplio del primer almacenamiento de operando amplio, (ii) tome el segundo operando amplio del segundo almacenamiento de operando amplio, (iii) lleve a cabo multiplicaciones complejas paralelas de subconjuntos de elementos de datos del primer operando amplio, por subconjuntos de elementos de datos del segundo operando amplio para producir primeros resultados, (iv) lleve a cabo operaciones de mariposa paralelas y operaciones de extracción paralelas sobre subconjuntos de los primeros resultados para proporcionar de ese modo segundos resultados;
en el que el resultado escalar de la instrucción de rebanada de transformada de Fourier amplia contiene información a partir de la cual se puede determinar la posición del bit más significativo de los segundos resultados;
en el que la posición del bit más significativo del segundo resultado es:
calculada mediante una serie de operaciones booleanas sobre subconjuntos paralelos de los segundos resultados, produciendo resultados booleanos vectoriales, y reduciendo además los resultados booleanos vectoriales a un valor booleano escalar, seguido por una determinación de la posición del bit más significativo del valor booleano escalar; y
colocado en el registro general para proporcionar un parámetro de escala para su utilización en la fase subsiguiente de la instrucción de rebanada de transformada de Fourier amplia.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E10191073.
Solicitante: MicroUnity Systems Engineering, Inc.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: 4 Main Street, Suite 100 Los Altos, CA 94022 ESTADOS UNIDOS DE AMERICA.
Inventor/es: HANSEN,CRAIG, MOUSSOURIS,JOHN, MASSALIN,ALEXIA.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F11/00 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › Detección de errores; Corrección de errores; Monitorización (detección, corrección o monitorización de errores en el almacenamiento de información basado en el movimiento relativo entre el soporte de registro y el transductor G11B 20/18; monitorización, es decir, supervisión del progreso del registro o reproducción G11B 27/36; en memorias estáticas G11C 29/00).
- G06F12/00 G06F […] › Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (entrada digital a partir de, o salida digital hacia soportes de registro, p. ej. hacia unidades de almacenamiento de disco G06F 3/06).
- G06F17/50
- G06F9/30 G06F […] › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Disposiciones para ejecutar instrucciones de máquinas, p. ej. decodificación de instrucciones (para ejecutar microinstrucciones G06F 9/22).
PDF original: ES-2527937_T3.pdf
Fragmento de la descripción:
Procesador programable y método con operaciones amplias
Campo de la invención 5
La presente invención se refiere a arquitecturas de procesador de propósito general, y en particular se refiere a arquitecturas de operandos amplios.
ANTECEDENTES DE LA INVENCIÓN 10
Los productos de comunicaciones requieren un mayor rendimiento computacional para procesar señales digitales en software en tiempo real. Los incrementos del rendimiento han pasado por mejoras en la tecnología de procesos y por mejoras en el diseño de los microprocesadores. Un mayor paralelismo, mayores frecuencias de reloj, mayores densidades, acoplados con herramientas de diseño mejoradas y compiladores los han hecho más 15 prácticos. Sin embargo, muchas de estas mejoras suponen una sobrecarga adicional en memoria y latencia, debido a la ausencia del ancho de banda necesario que está estrechamente acoplado con las unidades computacionales.
El nivel de rendimiento de un procesador, y en particular de un procesador de propósito general, se puede estimar a partir de varios de una serie de factores independientes: frecuencia de reloj, puertas por reloj, número de 20 operandos, anchura del camino de operandos y de datos, y división del camino de operandos y de datos. La frecuencia de reloj está influida en gran parte por la elección de la tecnología lógica y de circuitos, pero está influida asimismo por el número de puertas por reloj. Las puertas por reloj consisten en cuántas puertas en una segmentación pueden cambiar de estado en un solo ciclo de reloj. Esto se puede reducir al introducir cerrojos en el camino de datos: cuando se reduce el número de puertas entre cerrojos, es posible un reloj más rápido. Sin 25 embargo, los cerrojos adicionales producen una mayor longitud de segmentación, y por lo tanto tienen el coste de una mayor latencia de instrucciones. El número de operandos es sencillo; por ejemplo, sumando con técnicas de ahorro de acarreo, se pueden sumar juntos tres valores con poco más retardo del necesario para sumar dos valores. La anchura del camino de operandos y de datos define cuántos datos se pueden procesar a la vez; caminos de datos más amplios pueden realizar funciones más complejas, pero en general esto supone un mayor coste de 30 implementación. La división de los caminos de operandos y de datos se refiere a la utilización eficiente del camino de datos cuando se aumenta la anchura, con el objetivo de mantener sustancialmente el uso máximo.
La última división del camino de factores, operandos y datos se trata extensivamente en las patentes U.S.A. asignadas en común con la presente, de números 5 742 840, 5 794 060, 5 794 061, 5 809 321 y 5 822 603, que 35 describen sistemas y métodos para mejorar la utilización de un procesador de propósito general añadiendo clases de instrucciones. Estas clases de instrucciones utilizan los contenidos de registros de propósito general como fuentes de caminos de datos, dividen los operandos en símbolos de un tamaño especificado, realizan operaciones en paralelo, concatenan los resultados y colocan los resultados concatenados en un registro de propósito general. Éstas patentes, la totalidad de las cuales están asignadas al mismo cesionario de la presente invención, muestran 40 un microprocesador de propósito general que se ha optimizado para procesar y transmitir flujos de datos multimedia mediante un paralelismo significativo.
Si bien las patentes anteriores han ofrecido mejoras significativas en la utilización y el rendimiento de un microprocesador de propósito general, en particular para manejar comunicaciones de banda ancha tales como flujos 45 de datos multimedia, son posibles otras mejoras.
Muchos procesadores de propósito general tienen registros generales para almacenar operandos para instrucciones, haciéndose coincidir la anchura del registro con el tamaño del camino de datos. Los diseños de los procesadores limitan, en general, el número de registros accesibles por instrucción, debido a que el hardware para 50 acceder a estos registros es relativamente costoso en términos de energía y superficie. Mientras que el número de registros accesibles varía entre los diseños de procesadores, a menudo está limitado a dos, tres o cuatro registros por instrucción cuando dichas instrucciones están diseñadas para funcionar en un solo ciclo de reloj del procesador o en un solo flujo de segmentación. Algunos procesadores, tales como el Motorola 68000, tienen instrucciones para guardar y reestablecer un número ilimitado de registros, pero requieren múltiples ciclos para realizar dicha 55 instrucción.
El Motorola 68000 intenta asimismo superar un camino de datos estrecho combinado con un archivo de registros estrecho tomando múltiples ciclos o flujos de segmentación para realizar una instrucción, y emulando de ese modo un camino de datos más amplio. Sin embargo, dichas técnicas de precisión múltiple ofrecen solamente 60 una mejora marginal, en vista de los ciclos de reloj adicionales requeridos. Por lo tanto, la anchura y el número accesible de los registros de propósito general limita fundamentalmente la cantidad de procesamiento que puede ser realizado mediante una única instrucción en una máquina basada en registros.
Los procesadores existentes pueden proporcionar instrucciones que aceptan operandos, para las que se 65 leen uno o varios operandos desde un sistema de memoria de un procesador de propósito general. Sin embargo,
dado que estos operandos de memoria están especificados generalmente mediante operandos de registro, y el camino de datos del sistema de memoria no es más amplio que el camino de datos del procesador, no se mejora la anchura y el número accesible de operandos de propósito general por ciclo de instrucción o flujo de segmentación.
El número de operandos de registro de propósito general accesibles por instrucción está limitado 5 generalmente por la complejidad lógica y el tamaño de las instrucciones. Por ejemplo, se podrían implementar ciertas funciones deseables pero complejas, especificando un número mayor de registros de propósito general, pero habría que haber añadido una cantidad sustancial de lógica adicional a un diseño convencional, para permitir la lectura y omisión simultáneas de los valores de registro. Si bien en algunos diseños de la técnica anterior se han utilizado registros dedicados para aumentar el número o el tamaño de resultados u operandos fuente, instrucciones 10 explícitas cargan o almacenan valores en estos registros dedicados, y se requieren instrucciones adicionales para guardar y reestablecer estos registros tras un cambio de contexto del procesador.
El tamaño de un resultado de la unidad de ejecución puede estar limitado al de un registro general, de manera que no se requiere un almacenamiento dedicado u otro especial para el resultado. Especificar un gran 15 número de registros de propósito general como un resultado, requeriría análogamente añadir una cantidad sustancial de lógica adicional a un diseño convencional, para permitir la escritura y omisión simultáneas de los valores de registro.
Cuando el tamaño de un resultado de la unidad de ejecución está limitado, éste puede limitar la cantidad de 20 computación que puede ser gestionada razonablemente por una sola instrucción. Como consecuencia, es necesario implementar los algoritmos como una serie de etapas de una sola instrucción, en las que todos los resultados intermedios se pueden representar dentro de los límites. Eliminando este límite, se pueden desarrollar conjuntos de instrucciones en los que un componente mayor de un algoritmo se implementa como una sola instrucción, y la representación de los resultados intermedios deja de estar limitada en tamaño. Además, no es necesario que 25 algunos de estos resultados intermedios se retengan tras la finalización del componente mayor de un algoritmo, de manera que un procesador liberado de estas limitaciones puede mejorar el rendimiento y reducir la potencia de funcionamiento al no almacenar y recuperar estos resultados desde el archivo de registros generales. Cuando los resultados intermedios no se retienen en el archivo de registros generales, los conjuntos de instrucciones del procesador y los algoritmos implementados tampoco están limitados por el tamaño del archivo de registros 30 generales.
Por lo tanto, ha existido la necesidad de un sistema de procesador que pueda manejar eficientemente operandos y resultados de mayor anchura que el sistema de memoria o cualquier registro de propósito general accesible. Existe asimismo la necesidad de un sistema de procesador que pueda manejar eficientemente operandos 35 y resultados de mayor tamaño global que todo el archivo de registros generales.... [Seguir leyendo]
Reivindicaciones:
1. Un procesador, que comprende:
un primer camino de datos (137, 714 y 715) que tiene una primera anchura de bits; 5
un segundo camino de datos (entre 136 y 149; 714 y 720n) que tiene una segunda anchura de bits mayor que la primera anchura de bits;
una serie de terceros caminos de datos (155 a 158; 720A y 740) que tienen una anchura de bits combinada menor 10 que la segunda anchura de bits;
un primer almacenamiento de operando amplio (136, 714) acoplado al primer camino de datos y al segundo camino de datos para almacenar un primer operando amplio recibido sobre el primer camino de datos, teniendo el primer operando amplio un tamaño con un número de bits mayor que la primera anchura de bits; 15
un segundo almacenamiento de operando amplio (134, 714) acoplado al primer camino de datos y al segundo camino de datos para almacenar un segundo operando amplio recibido sobre el primer camino de datos, teniendo el segundo operando amplio un tamaño con un número de bits mayor que la primera anchura de bits;
un archivo de registros (720A a 720n) que incluye registros que tienen la primera anchura de bits, estando conectado el archivo de registros al primer camino de datos y a los terceros caminos de datos, e incluyendo almacenamiento (710) para un primer especificador de operando amplio que especifica una dirección de primer operando amplio y un segundo especificador de operando amplio que especifica una dirección del segundo operando amplio; 25
una unidad funcional (149, 740) que puede iniciar instrucciones, la unidad funcional estando acoplada mediante el segundo camino de datos al primer almacenamiento de operando amplio y estando acoplada mediante los terceros caminos de datos al archivo de registros; y 30
en el que la unidad funcional está dispuesta para ejecutar una instrucción de rebanada de transformada de Fourier amplia que contiene campos de instrucción que especifican (i) un primer registro de operando amplio (710) para provocar la recuperación del primer operando amplio para su almacenamiento en el primer almacenamiento de operando amplio, (ii) un segundo registro de operando amplio (710) para provocar la recuperación del segundo operando amplio para su almacenamiento en el segundo almacenamiento de operando amplio, (iii) por lo menos un 35 registro de operando de control en forma de un registro general en el archivo de registros que almacena un operando de control y especifica parámetros de control de precisión y de extracción, y (iv) un registro de resultados (745) en el archivo de registros, y
en el que la instrucción de rebanada de transformada de Fourier amplia está configurada para provocar que la 40 unidad funcional (i) tome el primer operando amplio del primer almacenamiento de operando amplio, (ii) tome el segundo operando amplio del segundo almacenamiento de operando amplio, (iii) lleve a cabo multiplicaciones complejas paralelas de subconjuntos de elementos de datos del primer operando amplio, por subconjuntos de elementos de datos del segundo operando amplio para producir primeros resultados, (iv) lleve a cabo operaciones de mariposa paralelas y operaciones de extracción paralelas sobre subconjuntos de los primeros resultados para 45 proporcionar de ese modo segundos resultados;
en el que el resultado escalar de la instrucción de rebanada de transformada de Fourier amplia contiene información a partir de la cual se puede determinar la posición del bit más significativo de los segundos resultados;
en el que la posición del bit más significativo del segundo resultado es:
calculada mediante una serie de operaciones booleanas sobre subconjuntos paralelos de los segundos resultados, produciendo resultados booleanos vectoriales, y reduciendo además los resultados booleanos vectoriales a un valor booleano escalar, seguido por una determinación de la posición del bit más significativo del valor booleano escalar; y 55
colocado en el registro general para proporcionar un parámetro de escala para su utilización en la fase subsiguiente de la instrucción de rebanada de transformada de Fourier amplia.
2. Un procesador acorde con la reivindicación 1, en el que cuando se lleva a cabo una operación 60 posterior de especificación de un operando amplio, el procesador determina si el operando amplio está ya almacenado en el almacenamiento de operando amplio y, en caso afirmativo, el procesador reutiliza el operando amplio de almacenamiento de operando amplio en la operación posterior.
3. Un procesador acorde con cualquiera de las reivindicaciones anteriores, en el que cuando se ejecuta 65 una única instrucción que contiene campos de instrucción que especifican un registro de operando amplio, el
procesador hace referencia a un único registro que especifica tanto la dirección como el tamaño del operando amplio.
4. Un procesador acorde con cualquiera de las reivindicaciones anteriores, en el que la unidad funcional es operativa asimismo para ejecutar una única instrucción booleana amplia que contiene campos de instrucción que 5 especifican (i) un registro de operando amplio (710) para provocar la recuperación del operando amplio para su almacenamiento en el almacenamiento de operando amplio, (ii) por lo menos un registro de operando fuente en el archivo de registros que almacena un operando fuente, y (iii) un registro de resultados (745) en el archivo de registros, provocando la única instrucción que la unidad funcional lleve a cabo operaciones que involucran un conjunto de tablas de consulta interconectadas con multiplexores y cerrojos, en el que los contenidos de las tablas 10 de consulta y el control de los multiplexores y de los cerrojos se especifican mediante información en el almacenamiento de operando amplio, provocando de ese modo que una placa de una matriz de puertas programables in situ realice operaciones sobre dicho por lo menos un operando fuente, produciendo resultados a colocar en el registro de resultados.
5. Un procesador acorde con la reivindicación 4, en el que la unidad funcional lleva a cabo operaciones iterativas sobre múltiples ciclos que actualizan cerrojos internos representados por información en el almacenamiento de operando amplio.
6. Un procesador acorde con cualquiera de las reivindicaciones anteriores, en el que la unidad funcional 20 es operativa asimismo para ejecutar una única instrucción de Galois de resolución amplia que especifica un registro de operando amplio para provocar la recuperación del operando amplio para su almacenamiento en el almacenamiento de operando amplio, realizando la unidad funcional operaciones iterativas de multiplicación-suma sobre elementos concatenados del operando amplio contenido en el almacenamiento de operando amplio a efectos de resolver un sistema de ecuaciones, produciendo un resultado que tiene una anchura de bits mayor que la primera 25 anchura de bits, para su almacenamiento en el almacenamiento de operando amplio.
7. Un procesador acorde con la reivindicación 6, en el que los elementos concatenados comprenden valores de campos de Galois y las operaciones de multiplicación-suma son operaciones de multiplicación-suma de campos de Galois. 30
8. Un procesador acorde con la reivindicación 6 ó 7, en el que los elementos concatenados comprenden operandos enteros y las operaciones de multiplicación-suma son operaciones de multiplicación-suma de enteros.
9. Un procesador acorde con la reivindicación 6, 7 ó 8, en el que los elementos concatenados 35 comprenden valores con coma flotante y las operaciones de multiplicación-suma son operaciones de multiplicación-suma con coma flotante.
10. Un procesador acorde con cualquiera de las reivindicaciones 6 a 9, en el que los elementos concatenados comprenden una matriz definida positiva. 40
11. Un operador acorde con cualquiera de las reivindicaciones 6 a 10, en el que los elementos concatenados comprenden una matriz simétrica.
12. Un procesador acorde con cualquiera de las reivindicaciones 6 a 11, en el que los elementos 45 concatenados comprenden una matriz triangular superior o una matriz triangular inferior.
13. Un procesador acorde con cualquiera de las reivindicaciones 1 a 5, en el que la unidad funcional puede asimismo iniciar una instrucción de Galois de resolución amplia y en el que el operando amplio contiene métricas de estado de corrección de errores que se actualizan iterativamente y se recorren a continuación para resolver un 50 camino más probable, y el camino más probable es un resultado de la instrucción.
14. Un procesador acorde con la reivindicación 13, en el que el camino más probable es un resultado devuelto a un registro en el archivo de registros.
15. Un procesador acorde con la reivindicación 13 ó 14, en el que la instrucción produce métricas de estado actualizadas.
16. Un procesador acorde con cualquiera de las reivindicaciones anteriores, en el que la unidad funcional puede asimismo ejecutar una instrucción de descodificación amplia para llevar a cabo corrección de errores por 60 medio de descodificación Viterbi o turbo especificando (i) un registro del archivo de registros que proporciona una serie de métricas de ramificación de corrección de errores; (ii) un registro que contiene un especificador de operando amplio que especifica un operando amplio que contiene métricas de estado de corrección de errores, en el que las métricas de estado se actualizan iterativamente utilizando la serie de métricas de ramificación, y las métricas de estado se recorren a continuación para resolver un camino más probable, como resultado de la instrucción. 65
17. Un procesador acorde con la reivindicación 16, en el que el camino más probable es un resultado devuelto a un registro en el archivo de registros.
18. Un procesador acorde con la reivindicación 16 ó 17, en el que la instrucción produce métricas de estado actualizadas del operando amplio para su almacenamiento en el almacenamiento de operando amplio. 5
19. Un procesador acorde con la reivindicación 1, en el que la parte extraída de los segundos resultados se coloca en el registro de resultados.
20. Un procesador acorde con la reivindicación 1, en el que la parte extraída de los segundos resultados 10 se coloca en un registro de operando amplio.
21. Un procesador acorde con la reivindicación 1, en el que los segundos resultados se almacenan en el primer almacenamiento de operando amplio o en un tercer almacenamiento de operando amplio.
22. Un procesador acorde con la reivindicación 1, en el que el resultado escalar se coloca en un registro o en uno de dicho por lo menos un registro de operando de control en el archivo de registros.
23. Un sistema de procesamiento de datos que comprende:
un procesador acorde con cualquiera de las reivindicaciones anteriores, siendo el procesador un solo circuito integrado;
la memoria principal (120) externa a dicho único circuito integrado; y 25
un bus acoplado a la memoria principal, incluyendo el procesador una interfaz de bus que acopla el procesador al bus.
24. Un método de funcionamiento de un aparato que incluye un primer camino de datos que tiene una primera anchura de bits, un segundo camino de datos que tiene una segunda anchura de bits mayor que la primera 30 anchura de bits, una serie de terceros caminos de datos que tienen una anchura de bits combinada menor que la segunda anchura de bits, un primer almacenamiento de operando amplio acoplado al primer camino de datos y al segundo camino de datos para almacenar un primer operando amplio recibido sobre el primer camino de datos, teniendo el primer operando amplio un tamaño con un número de bits mayor que la primera anchura de bits, un segundo almacenamiento de operando amplio acoplado al primer camino de datos y al segundo camino de datos 35 para almacenar un segundo operando amplio recibido sobre el primer camino de datos, teniendo el segundo operando amplio un tamaño con un número de bits mayor que la primera anchura de bits, un archivo de registros incluyendo registros que tienen la primera anchura de bits, estando conectado el archivo de registros al primer camino de datos y a los terceros caminos de datos, e incluyendo un primer almacenamiento para un primer especificador de operando amplio que especifica la dirección del primer operando amplio, e incluyendo un segundo 40 almacenamiento para un segundo especificador de operando amplio que especifica una dirección del segundo operando amplio, y una unidad funcional que puede iniciar instrucciones, estando la unidad funcional acoplada mediante el segundo camino de datos al primer almacenamiento de operando amplio y acoplada mediante los terceros caminos de datos al archivo de registros, comprendiendo el método:
ejecutar una sola instrucción de rebanada de transformada de Fourier amplia que contiene campos de instrucción que especifican (i) un primer registro de operando amplio (710) para provocar la recuperación del primer operando amplio para su almacenamiento en el primer almacenamiento de operando amplio, (ii) un segundo registro de operando amplio (710) para provocar la recuperación del segundo operando amplio para su almacenamiento en el segundo almacenamiento de operando amplio, (iii) por lo menos un registro de operando de control en la forma de 50 un registro general en el archivo de registros que almacena un operando de control y especifica parámetros de control de precisión y de extracción, y (iv) un registro de resultados (745) en el archivo de registros, y
en el que la instrucción de rebanada de transformada de Fourier amplia provoca que la unidad funcional (i) tome el primer operando amplio del primer almacenamiento de operando amplio, (ii) tome el segundo operando amplio del 55 segundo almacenamiento de operando amplio, (iii) lleve a cabo multiplicaciones complejas paralelas de subconjuntos de elementos de datos del primer operando amplio por subconjuntos de elementos de datos del segundo operando amplio para producir primeros resultados, (iv) lleve a cabo operaciones de mariposa paralelas y operaciones de extracción paralelas sobre subconjuntos de los primeros resultados para proporcionar de ese modo segundos resultados; 60
en el que el resultado escalar de la instrucción de rebanada de transformada de Fourier amplia contiene información a partir de la cual se puede determinar la posición del bit más significativo de los segundos resultados;
en el que la posición del bit más significativo del segundo resultado es: 65
calculada mediante una serie de operaciones booleanas sobre subconjuntos paralelos de los segundos resultados, produciendo resultados booleanos vectoriales, y reduciendo además los resultados booleanos vectoriales a un valor booleano escalar, seguido por una determinación de la posición del bit más significativo del valor booleano escalar; y
colocado en el registro general para proporcionar un parámetro de escala para su utilización en la subsiguiente 5 instrucción de rebanada de transformada de Fourier amplia.
25. Un método acorde con la reivindicación 24, en el que cuando se lleva a cabo una operación posterior de especificación de un operando amplio, el método comprende además:
determinar si el operando amplio está ya almacenado en el almacenamiento de operando amplio; y
si el operando amplio está ya almacenado dentro del almacenamiento de operando amplio, reutilizar entonces el operando amplio del almacenamiento de operando amplio en la operación posterior.
26. Un método acorde con la reivindicación 24 ó 25, en el que la etapa de ejecutar una única instrucción que contiene campos de instrucción que especifican un registro de operando amplio comprende además hacer referencia a un único registro que especifica tanto la dirección como el tamaño del operando amplio.
27. Un método acorde con la reivindicación 24, que comprende además almacenar los segundos 20 resultados en el primer almacenamiento de operando amplio o en un tercer almacenamiento de operando amplio.
28. Un método acorde con la reivindicación 24, en el que se puede determinar el resultado escalar para la determinación del bit más significativo del mayor de los terceros resultados.
29. Un procesador acorde con la reivindicación 24, en el que el resultado escalar se coloca en un registro o en uno de dicho por lo menos un registro de operando de control en el archivo de registros.
30. Un medio legible por ordenador que tiene código legible por ordenador en el mismo, para provocar que un procesador lleve a cabo el método acorde con cualquiera de las reivindicaciones 1 a 23. 30
Patentes similares o relacionadas:
MÉTODO PARA LA OBTENCIÓN DE UN MODELO FÍSICO DE UN OBJETO TRIDIMENSIONAL A PARTIR DE SUPERFICIES DESARROLLABLES Y MODELO FÍSICO ASÍ OBTENIDO, del 2 de Abril de 2020, de UNIVERSIDAD NACIONAL DE COLOMBIA: La presente invención se relaciona con un método para obtener un modelo físico de un objeto tridimensional a partir de un modelo digital de […]
Reconstrucción ósea e implantes ortopédicos, del 12 de Junio de 2019, de Mahfouz, Mohamed Rashwan: Procedimiento de diseño de un implante ortopédico específico para el paciente, en el que el procedimiento comprende: comparar un modelo […]
Diseño de sobrante sin secciones, del 31 de Mayo de 2019, de Hexagon Manufacturing Intelligence Canada Limited: Un método para el diseño de un sobrante , en donde todo o parte del sobrante se diseña con un enfoque sin secciones, que comprende las etapas de: introducir […]
MÉTODO IMPLEMENTADO POR ORDENADOR PARA GENERAR UN MODELO NUMÉRICO DE REPRESENTACIÓN DE UN NÚCLEO MAGNÉTICO PARA UN ELEMENTO DE INDUCCIÓN MAGNÉTICA, del 23 de Mayo de 2019, de SP CONTROL TECHNOLOGIES, S.L: La presente invención es una invención implementada en ordenador que comprende un método para generar un modelo numérico de representación de un […]
Procedimiento de simulación del funcionamiento de un circuito electrónico y programa, del 22 de Mayo de 2019, de Sorbonne Université: Procedimiento de simulación del funcionamiento de un circuito electrónico implementado por ordenador, comprendiendo el circuito electrónico […]
Método, dispositivo, programa y soporte de registro del análisis de la causa de la retracción, del 8 de Mayo de 2019, de NIPPON STEEL & SUMITOMO METAL CORPORATION: Un método implementado por ordenador para analizar una causa de la retracción en un producto formado que es formado a presión a partir de una placa […]
Método de predicción de fractura, dispositivo de procesamiento de cálculo, programa y soporte de registro, del 8 de Mayo de 2019, de NIPPON STEEL & SUMITOMO METAL CORPORATION: Un método implementado por ordenador para predecir una fractura en una parte de objetivo de análisis en un proceso de formación, que comprende: un […]
Métodos de análisis de campos electromagnéticos para materiales conductores anisotrópicos, del 26 de Abril de 2019, de Subaru Corporation: Un método de análisis del campo electromagnético para un material conductor anisotrópico, en el que el método de análisis del campo electromagnético utiliza […]