RU98113914A - Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра - Google Patents

Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра

Info

Publication number
RU98113914A
RU98113914A RU98113914/09A RU98113914A RU98113914A RU 98113914 A RU98113914 A RU 98113914A RU 98113914/09 A RU98113914/09 A RU 98113914/09A RU 98113914 A RU98113914 A RU 98113914A RU 98113914 A RU98113914 A RU 98113914A
Authority
RU
Russia
Prior art keywords
specified
instructions
processor
execution
command
Prior art date
Application number
RU98113914/09A
Other languages
English (en)
Other versions
RU2179331C2 (ru
Inventor
Лин Деррик
Р.Ваккалагадда Рамамохан
Ф.Глю Эндрю
М.Меннемейер Лэрри
Д.Пелег Александер
Бистри Дэвид
Миттал Миллинд
Дюлонг Кэрол
Коваси Эйити
Эйтан Бенни
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/574,719 external-priority patent/US5852726A/en
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU98113914A publication Critical patent/RU98113914A/ru
Application granted granted Critical
Publication of RU2179331C2 publication Critical patent/RU2179331C2/ru

Links

Claims (51)

1. Процессор, содержащий устройство декодирования, сконфигурированное, чтобы декодировать команды из по меньшей мере, одного набора команд; множество физических регистров; и устройство отображения, подсоединенное к указанному устройству декодирования и указанному множеству физических регистров, для отображения логических регистров, определенных первым набором команд, в регистры в указанном множестве физических регистров с обращением, аналогичным обращению к стеку, и для отображения тех же самых логических регистров, определенных вторым набором команд, в регистры в указанном множестве физических регистров обращением, отличным от обращения к стеку, в котором первый набор команд определяет операции над операндами типа данных, отличными от указанного второго набора команд.
2. Процессор по п. 1, дополнительно содержащий указанное устройство отображения, включающее набор тэгов, каждый тэг в указанном наборе тэгов соответствует различному одному из указанных логических регистров, каждый тэг в указанном наборе тэгов идентифицирует, находится ли указанный соответствующий регистр в пустом состоянии или непустом состоянии.
3. Процессор по п. 2, в котором указанное устройство отображения сконфигурировано так, чтобы изменить каждый тэг в указанном наборе тэгов в указанное непустое состояние в первом интервале времени между началом выполнения команд из указанного первого набора команд и началом выполнения команд из указанного второго набора команд, если команда перехода не выполнена во втором интервале времени после выполнения команд из указанного первого набора команд и перед выполнением команд из второго набора команд.
4. Процессор по п. 2, в котором указанное устройство отображения также сконфигурировано так, чтобы изменить каждый тэг в указанном наборе тэгов в указанное пустое состояние в ответ на прием указанным процессором одной команды.
5. Процессор по п. 2, в котором указанное устройство отображения также сконфигурировано так, чтобы изменить каждый тэг в указанном наборе тэгов в указанное непустое состояние в ответ на прием указанным процессором, по меньшей мере, одной команды указанного второго набора команд.
6. Процессор по п. 1, в котором указанное множество физических регистров включает в себя первый физический файл регистров и набор буферных регистров; и указанное устройство отображения первоначально отображает логические регистры, определенные как указанным первым набором команд, так и указанным вторым набором команд, в регистры в указанном наборе буферных регистров, и схемы изымают эти регистры из указанного набора буферных регистров в указанный первый физический файл регистров.
7. Процессор по п. 6, в котором указанный набор буферных регистров является множеством мест резервирования.
8. Процессор по п. 1, в котором указанный первый набор команд заставляет указанный процессор выполнить скалярные операции с плавающей запятой.
9. Процессор по п. 1, в котором указанный первый набор команд заставляет указанный процессор выполнить упакованные операции с плавающей запятой.
10. Процессор по п. 1, в котором указанный второй набор команд заставляет указанный процессор выполнить скалярные целочисленные операции.
11. Процессор по п. 1, в котором указанный второй набор команд заставляет указанный процессор выполнить упакованные целочисленные операции.
12. Процессор по п. 1, в котором указанное устройство отображения также сконфигурировано так, чтобы отобразить различные логические регистры, определенные третьим набором команд, в регистры в указанном множестве физических регистров.
13. Процессор по п. 12, в котором указанный первый набор команд заставляет указанный процессор выполнить скалярные операции с плавающей запятой, указанный второй набор команд заставляет указанный процессор выполнить упакованные целочисленные операции, а указанный третий набор команд заставляет указанный процессор выполнить скалярные целочисленные операции.
14. Процессор по п. 13, в котором указанное множество физических регистров включает в себя набор буферных регистров; и указанное устройство отображения первоначально отображает логические регистры, определенные каждым из указанных первого, второго и третьего наборов команд, в указанный набор буферных регистров, и схемы изымают эти регистры, назначенные указанному первому и второму наборам команд, из указанного набора буферных регистров в первый физический файл регистров и изымают эти регистры, назначенные указанному третьему набору команд из указанного набора буферных регистров во второй физический файл регистров.
15. Процессор по п. 12, в котором указанное устройство отображения отображает логические регистры, определенные указанным третьим набором команд с обращением, отличным от обращения к стеку.
16. Процессор по п. 1, в котором логические регистры, определенные указанными первыми и вторыми наборами команд, являются, по меньшей мере, частично совмещенными.
17. Процессор, содержащий первое устройство отображения, подсоединенное к первой таблице отображения, первоначально отображающее первый тип операнда и второй тип операнда в набор буферных регистров; второе устройство отображения, подсоединенное ко второй таблице отображения, первоначально отображающее третий тип операнда в указанный набор буферных регистров; устройство изъятия, включающее первый и второй физический файл регистров в дополнение к указанному набору буферных регистров, указанное устройство изъятия изымает операнды указанного первого и второго типа операнда из указанного набора буферных регистров в указанный первый физический файл регистров, изымает операнды указанного третьего типа операнда из указанного набора буферных регистров в указанный второй физический файл регистров, и заставляет указанные первые и вторые устройства отображения модифицировать указанные первую и вторую таблицы отображения соответственно.
18. Процессор по п. 17, в котором каждый регистр в указанном первом физическом файле регистров соответствует различному входу в указанной первой таблице отображения, и каждый регистр в указанном втором физическом файле регистров соответствует различному входу в указанной второй таблице отображения.
19. Процессор по п. 17, в котором указанное первое устройство отображения дополнительно включает в себя регистр управления, сохраняющий указатель на верхушку стека, указанное первое устройство отображения обрабатывает указанную первую таблицу отображения как стек при отображении операндов указанного первого типа операнда.
20. Процессор по п. 19, в котором указанное первое устройство отображения обрабатывает указанную первую таблицу отображения так, что указанный первый физический файл регистров используется как фиксированный файл регистров при отображении операндов указанного второго типа операнда.
21. Процессор по п. 19, в котором указанное первое устройство отображения также подсоединено к области памяти, имеющей набор входов, каждый вход в указанном наборе входов имеет соответствующий вход в указанной первой таблице отображения, каждый вход имеет сохраненный там тэг, идентифицирующий информацию относительно данных, отображенных указанным соответствующим входом в указанной первой таблице отображения.
22. Процессор по п. 21, дополнительно содержащий устройство перехода, подсоединенное к указанному первому устройству отображения, сконфигурированное так, чтобы заставить указанное первое устройство отображения изменить указанный указатель на верхушку стека на значение инициализации и изменить каждый тэг на непустое состояние в ответ на попытку указанным процессором выполнить одну из набора команд упакованных данных, если указанный процессор выполнил одну из набора команд с плавающей запятой позже, чем одну из указанного набора команд упакованных данных.
23. Процессор по п. 22, в котором указанное первое устройство отображения сконфигурировано так, чтобы изменить каждый тэг в указанном наборе входов в пустое состояние в ответ на выполнение указанным процессором набора команд.
24. Процессор по п. 23, в котором указанный набор команд включает одиночную команду.
25. Процессор по п. 22, в котором указанное первое устройство отображения не изменяет указанный указатель на верхушку стека при выполнении любой из указанного набора команд упакованных данных.
26. Процессор по п. 17, в котором указанный первый тип операнда связан с командами с плавающей запятой, указанный второй тип операнда связан с командами упакованных данных, а указанный третий тип операнда связан со скалярными целочисленными командами.
27. Процессор по п. 26, в котором указанные команды упакованных данных заставляют указанный процессор выполнить упакованные целочисленные операции.
28. Процессор по п. 26, в котором указанные команды упакованных данных заставляют указанный процессор выполнить упакованные операции с плавающей запятой.
29. В устройстве обработки данных, способ выполнения команд, содержащий этапы: декодирование первого и второго набора команд, чье выполнение заставляет операции над операндами различных типов данных выполняться над содержимым одного и того же логического файла регистров; обработка указанного логического файла регистров как фиксированного файла регистров при выполнении указанного первого набора команд; и обработка указанного логического файла регистров как стека при выполнении указанного второго набора команд; и устранение конфликтов между регистрами в указанном логическом файле регистров, использующем переименование регистра.
30. Способ по п. 29, дополнительно содержащий этап: изменение всех тэгов в наборе тэгов в пустое состояние в какой-либо момент между началом выполнения указанного этапа указанного первого набора команд и началом выполнения указанного этапа указанного второго набора команд, и в котором каждый из указанного набора тэгов идентифицирует, является ли различный регистр в указанном логическом файле регистров пустым или непустым.
31. Способ по п. 30, в котором указанный этап выполнения указанного первого набора команд включает в себя этапы выполнения команд упакованных данных; и указанный этап выполнения указанного второго набора команд включает этапы выполнения скалярных команд.
32. Способ по п. 29, дополнительно содержащий этап: изменение всех тэгов в наборе тэгов в непустое состояние между началом выполнения указанного этапа указанного первого набора команд и завершением выполнения указанного этапа указанного второго набора команд, и в котором указанный набор тэгов соответствует указанному логическому файлу регистров и идентифицирует, являются ли регистры в указанном логическом файле регистров пустыми или непустыми.
33. Способ по п. 32, в котором каждый тэг в указанном наборе тэгов соответствует различному регистру в указанном логическом файле регистров и идентифицирует, является ли указанный соответствующий логический регистр пустым или непустым.
34. Способ по п. 29, дополнительно содержащий этап: изменение указателя на верхушку стека на значение инициализации в какой-то момент между началом выполнения указанного этапа указанного первого набора команд и завершением выполнения указанного этапа указанного второго набора команд, и в котором указанный указатель на верхушку стека указывает один регистр в указанном логическом файле регистров в качестве верхушки указанного файла регистров с обращением, аналогичным обращению к стеку.
35. Способ по п. 29, в котором указанный этап выполнения указанного второго набора команд дополнительно содержит этап: копирование содержания физического регистра, отображенного в каждый регистр в указанном логическом файле регистров.
36. Способ по п. 29, в котором указанный этап выполнения указанного первого набора команд включает в себя этапы выполнения операций упакованных данных.
37. Способ по п. 29, в котором указанный этап выполнения указанного первого набора команд включает в себя этапы выполнения упакованных целочисленных операций.
38. Способ по п. 29, в котором указанный этап выполнения указанного первого набора команд включает в себя этапы выполнения упакованных операций с плавающей запятой.
39. Способ по п. 29, в котором указанный этап выполнения указанного второго набора команд включает в себя этапы выполнения скалярных операций с плавающей запятой.
40. В устройстве обработки данных, включающем процессор, способ выполнения команд, включающий этапы: прием первой команды из первой программы; определение, является ли указанная первая команда одной из набора команд с плавающей запятой или одной из набора команд упакованных данных, в котором как указанный набор команд с плавающей запятой, так и указанный набор команд упакованных данных определяет операции, которые нужно выполнить над содержимым одного и того же логического файла регистров; рискованное выполнение указанной первой команды; если указанная первая команда является одной из указанного набора команд упакованных данных, то выполнение этапов: определение, находится ли указанный процессор в режиме упакованных данных; если указанный процессор не находится в указанном режиме упакованных данных, то выполнение этапов: перевод указанного процессора в указанный режим упакованных данных; и перезапуск выполнения указанной первой команды; кроме того, передача данных, сформированных указанным этапом рискованного выполнения указанной первой команды; кроме того, передача данных, сформированных указанным этапом рискованного выполнения указанной первой команды.
41. Способ по п. 40, в котором указанный этап перевода указанного процессора в указанный режим упакованных данных дополнительно содержит этап изменения каждого из набора тэгов на непустое состояние, где каждый тэг в указанном наборе тэгов соответствует различному регистру в указанном логическом файле регистров; указанный этап определения, является ли указанная первая команда одной из указанного набора команд с плавающей запятой, или одной из указанного набора команд упакованных данных дополнительно включает определение, является ли указанная первая команда командой перехода из указанного набора команд упакованных данных; и если определено, что указанная первая команда является командой перехода, указанный этап выполнения указанной первой команды содержит изменение каждого из указанного набора тэгов в пустое состояние.
42. Способ по п. 40, в котором указанный этап рискованного выполнения указанной первой команды дополнительно включает этапы: если указанная первая команда является одной из указанного набора команд с плавающей запятой, то выполнение указанной команды с плавающей запятой с обращением, аналогичным обращению к стеку, где указателем на верхушку стека управляют указанным процессором для идентификации одного регистра в указанном логическом файле регистров, который в настоящее время находится на верхушке указанного стека; если указанная первая команда является одной из указанного набора команд упакованных данных, то выполнение указанной команды упакованных данных с обращением, аналогичным обращением к стеку.
43. Способ по п. 42, в котором указанный этап перевода указанного процессора в указанный режим упакованных данных дополнительно содержит этапы: изменение указанного указателя на верхушку стека на значение инициализации.
44. Способ по п. 43, в котором указанный этап рискованного выполнения указанной команды упакованных данных, работающей с указанным обращением, отличным от обращения к стеку, дополнительно содержит неизменение указанного указателя на верхушку стека.
45. Способ по п. 43, в котором указанный этап перевода указанного процессора в указанный режим упакованных данных дополнительно содержит этап изменения каждого из набора тэгов на непустое состояние, где каждый тэг в указанном наборе тэгов соответствует различному регистру в указанном логическом файле регистров; указанный этап определения, является ли указанная первая команда одной из указанного набора команд с плавающей запятой или одной из указанного набора команд упакованных данных, дополнительно содержит определение, является ли указанная первая команда командой перехода из указанного набора команд упакованных данных; и если определено, что указанная первая команда является указанной командой перехода, указанный этап выполнения указанной первой команды содержит изменение каждого из указанного набора тэгов в пустое состояние.
46. Способ по п. 40, дополнительно содержащий этапы: определение, выполнялся ли частичный контекстный переключатель; если указанный частичный контекстный переключатель выполнялся, то выполнение этапов: прерывание выполнения указанной первой программы; выполнение второй программы.
47. Способ по п. 40, дополнительно содержащий этапы: определение, следует ли эмулировать выполнение указанного набора команд с плавающей запятой; если выполнение указанного набора команд с плавающей запятой должно быть эмулировано, то выполнение этапов: если указанная первая команда является одной из указанного набора команд с плавающей запятой, то выполнение этапов: прерывание выполнения указанной первой программы; выполнение второй программы; иначе, указанная первая команда является одной из указанного набора команд с плавающей запятой и выполнения этапов: прерывание выполнения указанной первой программы; выполнение третьей программы.
48. Способ по п. 47, дополнительно содержащий этапы: определение, выполнялся ли частичный контекстный переключатель; если указанный частичный контекстный переключатель выполнялся, то выполнение этапов: прерывание выполнения указанной первой программы; и выполнение указанной второй программы.
49. Способ по п. 48, дополнительно содержащий этапы: определение имеет ли указанная первая команда один из набора допустимых кодов операции; если в указанной первой команде отсутствует какой-либо из указанного набора допустимых кодов операции, то выполнение этапов: прерывание выполнения указанной первой программы; и выполнение указанной третьей программы.
50. Способ по п. 40, в котором указанный этап выполнения указанной первой команды дополнительно содержит этапы: если указанная первая команда является одной из указанного набора команд упакованных данных, и выполнение указанной команды упакованных данных заставляет указанный процессор осуществлять запись значения данных в логический регистр в указанном логическом файле регистров, то выполнение этапов: запись предопределенного значения в поле знака и порядка физического регистра, отображенного в указанный логический регистр; запись указанного значения данных в поле мантиссы указанного логического регистра.
51. Способ по п. 40, в котором: указанный этап выполнения указанной первой команды дополнительно содержит этапы: если указанная первая команда является одной из указанного набора команд с плавающей запятой, то выполнение указанной первой команды, осуществляющей некоторую численную задержку ошибок; если указанная первая команда является одной из указанного набора команд упакованных данных, то выполнение указанной первой команды без распознавания каких-либо численных ошибок; указанный способ дополнительно содержит этап: определение, имеются ли какие-либо отложенные численные ошибки от выполнения предыдущей команды указанного набора команд с плавающей запятой; если имеются какие-либо отложенные численные ошибки от выполнения предыдущей команды указанного набора команд с плавающей запятой, то выполнение этапов: прерывание выполнения указанной первой программы; выполнение второй подпрограммы.
RU98113914/09A 1995-12-19 1996-12-17 Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра RU2179331C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/574,719 1995-12-19
US08/574,719 US5852726A (en) 1995-12-19 1995-12-19 Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner

Publications (2)

Publication Number Publication Date
RU98113914A true RU98113914A (ru) 2000-06-10
RU2179331C2 RU2179331C2 (ru) 2002-02-10

Family

ID=24297335

Family Applications (1)

Application Number Title Priority Date Filing Date
RU98113914/09A RU2179331C2 (ru) 1995-12-19 1996-12-17 Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра

Country Status (8)

Country Link
US (1) US5852726A (ru)
EP (2) EP0868689A4 (ru)
JP (5) JP3678427B2 (ru)
KR (1) KR100312092B1 (ru)
AU (1) AU1345597A (ru)
BR (1) BR9612189A (ru)
RU (1) RU2179331C2 (ru)
WO (1) WO1997022921A1 (ru)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265132A3 (en) * 1994-12-02 2005-02-09 Intel Corporation Microprocessor with packing operation of composite operands
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US6792523B1 (en) * 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5701508A (en) 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US5940859A (en) 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6260137B1 (en) * 1997-09-12 2001-07-10 Siemens Aktiengesellschaft Data processing unit with digital signal processing capabilities
US6065114A (en) * 1998-04-21 2000-05-16 Idea Corporation Cover instruction and asynchronous backing store switch
US6009509A (en) * 1997-10-08 1999-12-28 International Business Machines Corporation Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6112018A (en) * 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Apparatus for exchanging two stack registers
FR2772944A1 (fr) * 1997-12-19 1999-06-25 Sgs Thomson Microelectronics Procede de gestion d'un circuit electronique et unite de gestion pour sa mise en oeuvre
US6192464B1 (en) * 1997-12-31 2001-02-20 Intel Corporation Method and apparatus for decoding one or more instructions after renaming destination registers
US5974531A (en) * 1998-02-17 1999-10-26 Industrial Technology Research Institute Methods and systems of stack renaming for superscalar stack-based data processors
US6192467B1 (en) 1998-03-31 2001-02-20 Intel Corporation Executing partial-width packed data instructions
US6230257B1 (en) 1998-03-31 2001-05-08 Intel Corporation Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US6233671B1 (en) 1998-03-31 2001-05-15 Intel Corporation Staggering execution of an instruction by dividing a full-width macro instruction into at least two partial-width micro instructions
US6122725A (en) * 1998-03-31 2000-09-19 Intel Corporation Executing partial-width packed data instructions
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
US6263426B1 (en) 1998-04-30 2001-07-17 Intel Corporation Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US6282554B1 (en) 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
US6266769B1 (en) * 1998-04-30 2001-07-24 Intel Corporation Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
US6292815B1 (en) 1998-04-30 2001-09-18 Intel Corporation Data conversion between floating point packed format and integer scalar format
US5995122A (en) * 1998-04-30 1999-11-30 Intel Corporation Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
US6247116B1 (en) * 1998-04-30 2001-06-12 Intel Corporation Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US6240507B1 (en) * 1998-10-08 2001-05-29 International Business Machines Corporation Mechanism for multiple register renaming and method therefor
US6256725B1 (en) * 1998-12-04 2001-07-03 Agere Systems Guardian Corp. Shared datapath processor utilizing stack-based and register-based storage spaces
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6292888B1 (en) * 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
US6321327B1 (en) * 1998-12-30 2001-11-20 Intel Corporation Method for setting a bit associated with each component of packed floating-pint operand that is normalized in SIMD operations
US6308252B1 (en) * 1999-02-04 2001-10-23 Kabushiki Kaisha Toshiba Processor method and apparatus for performing single operand operation and multiple parallel operand operation
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
JP2002536763A (ja) * 1999-02-12 2002-10-29 エムアイピーエス テクノロジーズ, インコーポレイテッド 命令セット構造の比較拡張を有するプロセッサ
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6631452B1 (en) * 2000-04-28 2003-10-07 Idea Corporation Register stack engine having speculative load/store modes
US7496734B1 (en) * 2000-04-28 2009-02-24 Stmicroelectronics, Inc. System and method for handling register dependency in a stack-based pipelined processor
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US6725361B1 (en) * 2000-06-16 2004-04-20 Transmeta Corporation Method and apparatus for emulating a floating point stack in a translation process
EP1311947B1 (en) 2000-07-14 2011-01-19 MIPS Technologies, Inc. Instruction fetch and dispatch in multithreaded system
US7206925B1 (en) 2000-08-18 2007-04-17 Sun Microsystems, Inc. Backing Register File for processors
US6757807B1 (en) 2000-08-18 2004-06-29 Sun Microsystems, Inc. Explicitly clustered register file and execution unit architecture
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7203820B2 (en) 2002-06-28 2007-04-10 Sun Microsystems, Inc. Extending a register file utilizing stack and queue techniques
EP1447742A1 (en) * 2003-02-11 2004-08-18 STMicroelectronics S.r.l. Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor
US7613950B2 (en) * 2004-02-27 2009-11-03 Hewlett-Packard Development Company, L.P. Detecting floating point hardware failures
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US7644258B2 (en) * 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US20070061551A1 (en) * 2005-09-13 2007-03-15 Freescale Semiconductor, Inc. Computer Processor Architecture Comprising Operand Stack and Addressable Registers
EP2013723B1 (en) * 2006-05-03 2019-06-12 Sony Interactive Entertainment Inc. Register mapping in emulation of a target system on a host system
GB2447428A (en) * 2007-03-15 2008-09-17 Linear Algebra Technologies Lt Processor having a trivial operand register
US7882325B2 (en) * 2007-12-21 2011-02-01 Intel Corporation Method and apparatus for a double width load using a single width load port
CN101216756B (zh) * 2007-12-28 2011-03-23 中国科学院计算技术研究所 一种risc处理器装置及其模拟浮点栈操作的方法
US9798543B2 (en) * 2009-09-24 2017-10-24 Nvidia Corporation Fast mapping table register file allocation algorithm for SIMT processors
US20120191952A1 (en) * 2011-01-21 2012-07-26 Advanced Micro Devices, Inc. Processor implementing scalar code optimization
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US9405542B1 (en) * 2012-04-05 2016-08-02 Marvell International Ltd. Method and apparatus for updating a speculative rename table in a microprocessor
JP6511462B2 (ja) * 2013-10-27 2019-05-15 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 浮動小数点レジスタエイリアシングのためのプロセッサ及び方法
MA44821A (fr) * 2016-02-27 2019-01-02 Kinzinger Automation Gmbh Procédé d'allocation d'une pile de registres virtuels dans une machine à pile
CN111782269B (zh) * 2020-06-04 2023-12-12 珠海格力电器股份有限公司 一种中断处理方法及中断处理设备

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711692A (en) * 1971-03-15 1973-01-16 Goodyear Aerospace Corp Determination of number of ones in a data field by addition
US3723715A (en) * 1971-08-25 1973-03-27 Ibm Fast modulo threshold operator binary adder for multi-number additions
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4229801A (en) * 1978-12-11 1980-10-21 Data General Corporation Floating point processor having concurrent exponent/mantissa operation
US4418383A (en) * 1980-06-30 1983-11-29 International Business Machines Corporation Data flow component for processor and microprocessor systems
US4393468A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4498177A (en) * 1982-08-30 1985-02-05 Sperry Corporation M Out of N code checker circuit
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
JPS6297060A (ja) * 1985-10-23 1987-05-06 Mitsubishi Electric Corp デイジタルシグナルプロセツサ
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
US4989168A (en) * 1987-11-30 1991-01-29 Fujitsu Limited Multiplying unit in a computer system, capable of population counting
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
KR920007505B1 (ko) * 1989-02-02 1992-09-04 정호선 신경회로망을 이용한 곱셈기
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
EP0510429A3 (en) * 1991-04-24 1993-12-01 Ibm Millicode register management system
US5187679A (en) * 1991-06-05 1993-02-16 International Business Machines Corporation Generalized 7/3 counters
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5522051A (en) * 1992-07-29 1996-05-28 Intel Corporation Method and apparatus for stack manipulation in a pipelined processor
US5519841A (en) * 1992-11-12 1996-05-21 Digital Equipment Corporation Multi instruction register mapper
KR0122528B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
US5535397A (en) * 1993-06-30 1996-07-09 Intel Corporation Method and apparatus for providing a context switch in response to an interrupt in a computer process
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5546554A (en) * 1994-02-02 1996-08-13 Sun Microsystems, Inc. Apparatus for dynamic register management in a floating point unit
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
US5507000A (en) * 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation
US5687336A (en) * 1996-01-11 1997-11-11 Exponential Technology, Inc. Stack push/pop tracking and pairing in a pipelined processor

Similar Documents

Publication Publication Date Title
RU98113914A (ru) Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра
US6606743B1 (en) Real time program language accelerator
EP0087978B1 (en) Information processing unit
US4330822A (en) Recursive system and method for binding compiled routines
US5125087A (en) Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
US5748951A (en) Specialized millicode instructions which reduce cycle time and number of instructions necessary to perform complex operations
JP4703718B2 (ja) 選択的サブルーチンリターン構造
US5574887A (en) Apparatus and method for emulation routine pointer prefetch
US5713035A (en) Linking program access register number with millicode operand access
CN111857839B (zh) 一种基于Linux的PXI/PXIe总线设备驱动系统
US4791560A (en) Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program
US5819078A (en) Addressing extended memory using millicode by concatenating a small millicode address and address extension data
JPS623461B2 (ru)
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
JPH0916409A (ja) マイクロコンピュータ
JPH0377137A (ja) 情報処理装置
AU1490888A (en) Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units
JPH056281A (ja) 情報処理装置
JPH0192843A (ja) データ処理装置
JP2000029690A (ja) デ―タ処理の方法および装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPS6240736B2 (ru)
JPS62120542A (ja) 情報処理装置
JP2883488B2 (ja) 命令処理装置