RU2340933C2 - Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме - Google Patents

Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме Download PDF

Info

Publication number
RU2340933C2
RU2340933C2 RU2006137012/09A RU2006137012A RU2340933C2 RU 2340933 C2 RU2340933 C2 RU 2340933C2 RU 2006137012/09 A RU2006137012/09 A RU 2006137012/09A RU 2006137012 A RU2006137012 A RU 2006137012A RU 2340933 C2 RU2340933 C2 RU 2340933C2
Authority
RU
Russia
Prior art keywords
register
registers
context
data
processor
Prior art date
Application number
RU2006137012/09A
Other languages
English (en)
Other versions
RU2006137012A (ru
Inventor
Сергей Александрович Шишарин (RU)
Сергей Александрович Шишарин
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
Application filed by Общество с ограниченной ответственностью "Юникор микросистемы" filed Critical Общество с ограниченной ответственностью "Юникор микросистемы"
Priority to RU2006137012/09A priority Critical patent/RU2340933C2/ru
Publication of RU2006137012A publication Critical patent/RU2006137012A/ru
Application granted granted Critical
Publication of RU2340933C2 publication Critical patent/RU2340933C2/ru

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

Изобретение относится к области вычислительной техники, а именно к микропроцессорам и микроконтроллерам. Техническим результатом является увеличение скорости переключения контекста задач и процедур при меньшем количестве использованных аппаратных ресурсов. Сохранение и восстановление контекста вычислительного процесса в процессоре осуществляется в два этапа. На первом этапе в стеке контекста процессора автоматически сохраняются значение счетчика команд и значение регистра состояния процессора. На втором этапе программно сохраняют требуемое число групп адресуемых регистров контекста. Процессор работает с сегментами памяти данных посредством собственных регистров виртуальных файлов. Причем сохранение базовых адресов всех файлов виртуальных регистров производится подачей лишь одной команды. 3 н. и 15 з.п. ф-лы, 8 ил.

Description

Изобретение относится к области вычислительной технике, а именно к микропроцессорам и микроконтроллерам для встраиваемых приложений.
В микропроцессорах или микроконтроллерах для встраиваемых приложений при прерывании программы или переходе к подпрограмме требуется полное или частичное сохранение и последующее восстановление контекста вычислительного процесса, характеризующегося ресурсами ядра процессора.
Контекст вычислительного процесса включает такие ресурсы как значения счетчика команд, регистра состояния процессора, регистров общего назначения и ряда других регистров.
Известен процессор КР1878ВЕ1 «ТЕСЕЙ» (КР1878ВЕ1. 8-разрядный RISC-микроконтроллер. Техническое описание. Система программирования и отладки. ОАО «Ангстрем») с поддержкой возможности переключения контекста вычислительного процесса.
Процессор «ТЕСЕЙ» содержит арифметико-логическое устройство, счетчик команд, память команд, память данных, регистр состояния процессора, контроллер прерываний и исключительных ситуаций, блок выборки, дешифрации и исполнения команд, файлы виртуальных регистров.
Данный процессор использует четыре сегмента адресации памяти данных, позволяющие, в частности, реализовать относительно простое сохранение переменных прерванной или вызывающей программы. При этом процессор обрабатывает данные из ряда собственных файлов виртуальных регистров, отображающих соответствующий ряд сегментов памяти данных. Адресуемыми регистрами контекста являются, в частности, регистры адресов указанных сегментов памяти данных.
Переключение контекста вычислительного процесса обеспечивается использованием отдельного аппаратного стека для хранения адресов возврата из подпрограмм и прерываний. Для сохранения значений служебных регистров адресации операндов и регистра состояния процессора используется отдельный аппаратный стек данных.
Способ переключения контекста вычислительного процесса в процессоре «ТЕСЕЙ» при прерывании программы или переходе к подпрограмме характеризуется тем, что при прерывании или поступлении команды перехода к подпрограмме сохраняют текущее значение счетчика команд процессора, текущее значение регистра состояния процессора и значения адресуемых регистров контекста, а восстановление контекста вычислительного процесса осуществляют в обратной последовательности.
Однако для сохранения адресов всех сегментов памяти данных активного процесса необходимо подать процессору ряд команд для сохранения каждого сегмента в отдельности. Так как каждая команда требует выборки, дешифрации и исполнения, то ресурсы процессора при переключении контекста вычислительного процесса используются с излишними затратами.
Задачей заявленного изобретения является оптимизация использования ресурсов процессора при переключении контекста вычислительного процесса.
Технический результат при этом заключается в увеличении скорости переключения контекста задач и процедур при меньшем количестве использованных аппаратных ресурсов.
Данный технический результат обеспечивается способом переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме реализующим данный способ процессором с переключением вычислительного процесса и способом сохранения и восстановления регистров процессора при переключении контекста вычислительного процесса.
Технический результат достигается за счет того, что согласно способу переключения контекста вычислительного процесса в процессоре при прерывании программы или переходе к подпрограмме процессор выполнен с возможностью обработки данных из ряда собственных файлов виртуальных регистров, отражающих соответствующий ряд сегментов памяти данных. Причем при прерывании или поступлении команды перехода к подпрограмме сохраняют текущее значение счетчика команд процессора, текущее значение регистра состояния процессора и значения адресуемых регистров контекста. Восстановление контекста вычислительного процесса осуществляют в обратной последовательности. Адресуемые регистры контекста сохраняют или восстанавливают группами, причем регистры базовых адресов всех файлов виртуальных регистров входят в одну группу.
Процессор с переключением контекста вычислительного процесса содержит арифметико-логическое устройство (АЛУ), счетчик команд, память команд, память данных, регистр состояния процессора, контроллер прерываний и исключительных ситуаций, блок выборки, дешифрации и исполнения команд, файлы виртуальных регистров. Причем данный процессор также содержит стек контекста, выполненный с возможностью хранения полного контекста вычислительного процесса. Стек контекста связан своими входами-выходами со счетчиком команд, регистром состояния процессора, входом-выходом файлов виртуальных регистров. Каждый регистр стека контекста выполнен с возможностью хранения значений регистров любой из групп регистров, характеризующих контекст или значения счетчика команд процессора и значения регистра состояния процессора. Процессор выполнен с возможностью дешифрации и исполнения команды с кодом 00001010000000NN как команды для сохранения регистров, характеризующих контекст, и с возможностью дешифрации и исполнения команды с кодом 0000101001MMMMNN как команды для восстановления ранее сохраненных регистров, характеризующих контекст, где каждое N и М имеет значение логического 0 или 1.
В части способа сохранения и восстановления регистров процессора при переключении контекста вычислительного процесса процессор выполнен с возможностью дешифрации и исполнения команды с кодом 00001010000000NN как команды для сохранения разрядов регистров процессора, содержащих элементы контекста вычислительного процесса, и с возможностью дешифрации и исполнения команды с кодом 0000101001MMMMNN как команды для восстановления разрядов ряда ранее сохраненных регистров процессора, содержащих элементы контекста вычислительного процесса, где каждое N и М имеет значение логического 0 или 1. Для сохранения или восстановления ряда регистров процессора, характеризующих контекст вычислительного процесса, процессору подают команды с кодом 00001010000000NN или 0000101001MMMMNN соответственно.
В частных случаях своей реализации заявленное изобретение дополнительно характеризуется тем, что в способе переключения контекста вычислительного процесса в процессоре при прерывании программы или при переходе к подпрограмме адресуемыми регистрами контекста являются, в частности, регистры указания адресов файлов виртуальных регистров, регистры режимов работы и регистры данных.
При этом регистрами указания адресов файлов виртуальных регистров являются, в частности, регистр базового адреса первого файла виртуальных регистров (WA), регистр базового адреса второго файла виртуальных регистров (WB), регистр базового адреса третьего файла виртуальных регистров (WC), регистр младшего байта адреса регистра косвенной адресации памяти данных (DP1L), регистр старшего байта адреса регистра косвенной адресации памяти данных (DP1H), регистр номера страницы памяти регистра косвенной адресации памяти данных (DP1P), регистр младшего байта адреса регистра косвенной адресации памяти данных/памяти команд (DP2L), регистр старшего байта адреса регистра косвенной адресации памяти данных/памяти команд (DP2H), регистр номера страницы памяти регистра косвенной адресации памяти данных/памяти команд (DP2P), регистр младшего байта указателя стека данных (SPL), регистр старшего байта указателя стека данных (SPH), регистр младшего байта индекса стека данных (IDXL) и регистр старшего байта индекса стека данных (IDXH). Регистрами режимов работы являются, в частности, регистр режима работы третьего файла виртуальных регистров (WCMODE) и регистр режимов косвенной адресации (DPMODE). Регистрами данных являются, в частности, регистр счетчика циклов (LC) и регистр старшего байта результата умножения (MRH).
В еще одном частном случае данного способа адресуемые регистры контекста образуют четыре группы.
Причем регистры нулевой группы в частном случае характеризуют адреса файлов виртуальных регистров и режимы косвенной адресации, регистры первой группы характеризуют адреса внутри страницы памяти регистров косвенной адресации, регистры второй группы характеризуют указатель и индекс программного стека данных. Регистры третьей группы характеризуют номера страниц памяти регистров косвенной адресации или являются регистрами данных.
При этом регистры WA, WB, WC, DPMODE и WCMODE образуют нулевую по счету группу. Регистры DP1L, DP1H, DP2L и DP2H образуют первую по счету группу. Регистры SPL, SPH, IDXL и IDXH вторую по счету группу. Регистры DP1P, DP2P, LC и MRH образуют третью по счету группу.
Способ в частном случае характеризуется также тем, что сохранение/восстановление контекста вычислительного процесса осуществляют в/из стека контекста.
При этом стек контекста выполнен как аппаратный регистровый стек.
Каждый регистр стека контекста выполнен с возможностью хранения значений адресуемых регистров контекста любой одной группы или значения счетчика команд процессора и значения регистра состояния процессора.
Способ также характеризуется тем, что команда сохранения адресуемых регистров контекста имеет код 00001010000000NN, где NN - номер группы регистров в двоичном виде. Команда восстановления адресуемых регистров контекста имеет код 0000101001MMMMNN. Причем NN - номер группы регистров в двоичном виде, а ММММ - маска восстановления регистров в двоичном виде.
В частном случае процессор с переключением контекста вычислительного процесса характеризуется тем, что стек контекста выполнен с возможностью хранения полного контекста вычислительного процесса в своих пяти регистрах.
В частном случае способа сохранения и восстановления регистров процессора при переключении контекста вычислительного процесса процессор выполнен с возможностью единовременного сохранения ряда регистров процессора, характеризующих контекст вычислительного процесса, образующих одну группу, причем NN - номер группы регистров в двоичном виде.
При этом регистры процессора, характеризующие контекст вычислительного процесса, образуют четыре группы.
В состав нулевой группы входят регистры WA, WB, WC, DPMODE и WCMODE. В состав первой группы входят регистры DP1L, DP1H, DP2L и DP2H. В состав второй группы входят регистры SPL, SPH, IDXL и IDXH. В состав третьей группы входят регистры DP1P, DP2P, LC и MRH.
В еще одном частном случае способ характеризуется тем, что для восстановления части сохраненных регистров процессора, характеризующих вычислительный процесс, задают маску восстановления регистров в команде восстановления, где ММММ - маска восстановления в двоичном виде.
Приведенные совокупности признаков обеспечивают получение указанного технического результата во всех случаях, на которые распространяется испрашиваемый объем правовой охраны.
Сущность изобретения поясняют следующие схемы:
фиг.1: упрощенная структурная схема ядра процессора UNC80XX;
фиг.2: схема организации файлов виртуальных регистров и их связи с физическими устройствами памяти;
фиг.3: схема организации регистров косвенной адресации и их связи с памятью данных и памятью команд;
фиг.4: схема организации регистра индексной адресации стека данных и его связи с памятью данных;
фиг.5: таблица групп адресуемых регистров контекста;
фиг.6: пример заполнения стека контекста;
фиг.7: общая схема алгоритма сохранения контекста;
фиг.8: схема алгоритма программного сохранения значений адресуемых регистров контекста.
Осуществление изобретения поясняется на примере процессора с ядром UNC80XX.
UNC80XX относится к RISC процессорам с гарвардской архитектурой.
Упрощенная структурная схема UNC80XX представлена на фиг.1. Процессор содержит АЛУ (1), счетчик команд (2), память команд (3), память данных (4), регистр состояния процессора (5), контроллер прерываний и исключительных ситуаций (6), блок выборки, дешифрации и исполнения команд (7), файлы виртуальных регистров (8) и стек контекста (9).
Стек контекста связан своими входами-выходами со счетчиком команд (3), регистром состояния процессора (5) и первым входом-выходом файлов виртуальных регистров (8). Файлы виртуальный регистров (8) своим вторым входом/выходом связаны с общей шиной данных/адреса/управления (10), а выходом с памятью данных (4). Память данных (4) связана с общей шиной (10) через входы/выходы. Выход памяти команд (3) связан с входом общей шины (10), а вход памяти команд (3) связан с общей шиной (10) через счетчик команд (2). Регистр состояния (5) связан с общей шиной (10) через выход АЛУ (1) и вход контроллера прерываний и исключительных ситуаций (6). АЛУ (1), контроллер прерываний и исключительных ситуаций (6) и блок выборки, дешифрации и исполнения команд (7) связаны с общей шиной (10) своими входами/выходами.
В UNC80XX не используются аппаратные регистры общего назначения. Процессор обрабатывает данные из сегментов памяти данных (4). Для адресации указанных сегментов используется ряд служебных регистров. Сегментная адресация памяти данных (4) поясняется фиг.2-4.
Файлы виртуальных регистров (11) образованы первым файлом виртуальных регистров (VRFA), вторым файлом виртуальных регистров (VRFB) и третьим файлом виртуальных регистров (VRFC). Указанные файлы содержат по 8 регистров каждый - А0...А7, В0...В7 и С0...С7, отражающих 8 последовательно расположенных в памяти байтов. Для указания начала каждого файла виртуальных регистров в памяти данных использованы регистры указания базового адреса WA, WB и WC. Для каждого выполняющегося процесса выделяют уникальные файлы виртуальных регистров. Благодаря тому что виртуальные регистры разбиты на несколько групп, возможно осуществлять межпроцессное взаимодействие сохраняя только часть указанных файлов.
Файл VRFC выполнен с возможностью отображения нескольких областей памяти, включая регистры периферийных устройств (12) и некоторые другие регистры микроконтроллера (13). Для выбора режима работы VRFC используется регистр WCMODE.
Архитектура UNC80XX включает в себя регистр косвенной адресации памяти данных (DP1) и регистр косвенной адресации памяти данных/памяти команд (DP2). Данные регистры обеспечивают расширенную (24-разрядную) адресацию памяти данных/памяти команд. Виртуальные регистровые файлы адресуют первые 2 кбайта нулевой страницы памяти данных, стека данных - всю нулевую страницу памяти данных, остальная память данных может адресоваться только регистрами косвенной адресации. Адреса отображаемых регистрами байтов памяти определяются содержимым указателей адреса DP1, состоящего из регистров DP1P, DP1H, DP1L и DP2, состоящего из DP2P, DP2H, DP2L. В регистрах DP1P и DP1P содержатся адреса страниц памяти, в регистрах DP1H и DP2H - старшие байты адресов внутри страницы памяти, а в регистрах DP1L и DP2L - младшие байты адресов внутри страницы памяти. Режимы работы регистров косвенной адресации определяются содержимым регистра DPMODE. В зависимости от содержимого регистра режимов косвенной адресации DPMODE после выборки данных из этих регистров может осуществляться автоинремент/автодекремент адреса отображаемого регистром байта памяти. Автоинремент/автодекремент адреса действует в пределах страницы памяти. Регистр DPMODE также позволяет дополнительно определить будет ли DP2 адресовать память команд или память данных. Регистры косвенной адресации, кроме того, могут быть использованы в качестве аргументов команд.
Все адресуемые регистры разделены на четыре группы для удобства сохранения и восстановления контекста. Таблица группировки показана на фиг.5
Архитектура UNC80XX включает в себя также стек данных общего назначения, размещаемый в памяти данных. Стек данных управляется четырьмя регистрами: регистрами старшего и младшего байтов указателя вершины стека SP (SPH и SPL соответственно), а также регистрами IDXH и IDXL. Доступ к стеку данных осуществляется командами записи в стек данных и чтения из стека данных, а также через регистр индексной адресации стека I (SP).
В UNC80XX регистр состояния процессора содержит признаки результата выполненной операции и режимы работы процессора.
Стек контекста предназначен для сохранения и последующего восстановления контекста программы при обработке прерываний и вызове подпрограмм. Каждая запись стека контекста содержит либо значение счетчика команд и значение регистра состояния процессора, либо значения содержимого группы адресуемых регистров сохранения контекста программы. Если при возврате из прерывания в вершине стека контекста находится запись с содержимым группы регистров или при восстановлении содержимого группы регистров из стека контекста в его вершине находится запись с содержимым счетчика команд и слова состояния, то формируется прерывание при возникновении системных ошибок. Для этого каждая запись стека контекста содержит специальное поле с флагом «Р» или «R», характеризующими вид записи.
Пример заполнения стека контекста показан на фиг.6, где «STORE» является командой сохранения адресуемых регистров контекста группы указанного номера.
Переключение контекста осуществляют следующим образом (фиг.7).
При возникновении прерывания или вызове подпрограммы (14) командами вызова подпрограмм, косвенного вызова подпрограммы, косвенного вызова пользовательской подпрограммы и программного прерывания процессором в стек контекста сохраняется (15) текущее значение счетчика команд и регистра состояния процессора. Восстановление регистра состояния из стека контекста производятся командами возврата из прерывания, возврата из подпрограммы и возврата из подпрограммы с установкой признака переноса. Группы адресуемых регистров контекста программы, если требуется (16), могут быть сохранены (17) программно командой «STORE». Для полного сохранения контекста необходимо подать четыре команды «STORE». После этого сохранение контекста вычислительного процесса завершено (18).
В команде «STORE» необходимо указать номер группы сохраняемых регистров.
Алгоритм программного сохранения значений адресуемых регистров показан на фиг.8. При этом, если требуется (19) сохранение адреса регистровых файлов или режимов косвенной адресации, выполняют (20) команду «STORE 0», обрабатываемую процессором как сохранение в стеке контекста регистров WA, WB, WC, DCMODE и WCMODE. Затем, если требуется (21) сохранение адреса внутри страницы памяти регистров косвенной адресации, выполняют (22) команду «STORE 1», обрабатываемую процессором как сохранение в стеке контекста регистров DP1L, DP1H, DP2L и DP2H. Затем, если требуется (23) сохранить указатель и индекс стека данных, выполняют (24) команду «STORE 2», обрабатываемую процессором как сохранение в стеке контекста регистров SPL, SPH, IDXL и IDXH. Затем, если требуется (25) сохранить номера страниц памяти регистров косвенной адресации или контекст регистров данных, выполняют (26) команду «STORE 3», обрабатываемую процессором как сохранение в стеке контекста регистров DP1P, DP2P, LC и MRH.
Команды восстановления регистров из стека контекста должны следовать в порядке, обратном порядку предшествующих команд сохранения регистров в стеке контекста.
Причем, для команды восстановления следует указать маску восстановления регистров. Регистры, чей разряд в маске установлен в 1, будут восстановлены, а регистры, чей разряд сброшен в 0, останутся без изменений.
Процессор UNC80XX характеризуется также тем, что команда сохранения адресуемых регистров контекста имеет машинный код 00001010000000NN, а команда восстановления адресуемых регистров контекста имеет код 0000101001MMMMNN, где NN - номер группы регистров в двоичном виде, а ММММ - маска восстановления регистров в двоичном виде.

Claims (18)

1. Способ переключения контекста вычислительного процесса в процессоре при прерывании программы или переходе к подпрограмме, характеризующийся тем, что процессор выполнен с возможностью обработки данных из ряда собственных файлов виртуальных регистров, отображающих соответствующий ряд сегментов памяти данных, причем при прерывании или поступлении команды перехода к подпрограмме сохраняют текущее значение счетчика команд процессора, текущее значение регистра состояния процессора и значения адресуемых регистров контекста, а восстановление контекста вычислительного процесса осуществляют в обратной последовательности, отличающийся тем, что значения адресуемых регистров контекста сохраняют или восстанавливают группами командой сохранения адресуемых регистров контекста с кодом 00001010000000NN и командой восстановления адресуемых регистров контекста с кодом 0000101001MMMMNN, где NN - номер группы регистров в двоичном виде, а ММММ - маска восстановления регистров в двоичном виде, причем регистры базовых адресов всех файлов виртуальных регистров входят в одну группу.
2. Способ по п.1, отличающийся тем, что адресуемыми регистрами контекста являются, в частности, регистры указания адресов файлов виртуальных регистров, регистры режимов работы и регистры данных.
3. Способ по п.2, отличающийся тем, что регистрами указания адресов файлов виртуальных регистров являются, в частности, регистр базового адреса первого файла виртуальных регистров, регистр базового адреса второго файла виртуальных регистров, регистр базового адреса третьего файла виртуальных регистров, регистр младшего байта адреса регистра косвенной адресации памяти данных, регистр старшего байта адреса регистра косвенной адресации памяти данных, регистр номера страницы памяти регистра косвенной адресации памяти данных, регистр младшего байта адреса регистра косвенной адресации памяти данных/памяти команд, регистр старшего байта адреса регистра косвенной адресации памяти данных/памяти команд, регистр номера страницы памяти регистра косвенной адресации памяти данных/памяти команд, регистр младшего байта указателя стека данных, регистр старшего байта указателя стека данных, регистр младшего байта индекса стека данных и регистр старшего байта индекса стека данных, регистрами режимов работы являются, в частности, регистр режима работы третьего файла виртуальных регистров и регистр режимов косвенной адресации, а регистрами данных являются, в частности, регистр счетчика циклов и регистр старшего байта результата умножения.
4. Способ по п.1, отличающийся тем, что адресуемые регистры контекста образуют четыре группы.
5. Способ по п.4, отличающийся тем, что регистры нулевой группы характеризуют адреса файлов виртуальных регистров и режимы косвенной адресации, регистры первой группы характеризуют адреса внутри страницы памяти регистров косвенной адресации, регистры второй группы характеризуют указатель и индекс программного стека данных, а регистры третьей группы характеризуют номера страниц памяти регистров косвенной адресации или являются регистрами данных.
6. Способ по п.5, отличающийся тем, что регистры базового адреса файлов виртуальных регистров, режимов косвенной адресации и режима работы третьего файла виртуальных регистров образуют нулевую по счету группу, регистры младшего байта адреса регистра косвенной адресации памяти данных, старшего байта адреса регистра косвенной адресации памяти данных, младшего байта адреса регистра косвенной адресации памяти данных/памяти команд, старшего байта адреса регистра косвенной адресации памяти данных/памяти команд образуют первую по счету группу, регистры младшего байта указателя стека данных, старшего байта указателя стека данных, младшего байта индекса стека данных и старшего байта индекса стека данных образуют вторую по счету группу, а регистры номера страницы памяти регистра косвенной адресации памяти данных, номера страницы памяти регистра косвенной адресации памяти данных/памяти команд, счетчика циклов и старшего байта результата умножения образуют третью по счету группу.
7. Способ по п.1, отличающийся тем, что сохранение/восстановление контекста вычислительного процесса осуществляют в/из стека контекста.
8. Способ по п.7, отличающийся тем, что стек контекста выполнен как аппаратный регистровый стек.
9. Способ по п.8, отличающийся тем, что каждый регистр стека контекста выполнен с возможностью хранения значений адресуемых регистров контекста любой одной группы или значения счетчика команд процессора и значения регистра состояния процессора.
10. Способ по п.1, отличающийся тем, что команда сохранения адресуемых регистров контекста имеет код 00001010000000NN, где NN - номер группы регистров в двоичном виде.
11. Способ по п.1, отличающийся тем, что команда восстановления адресуемых регистров контекста имеет код 0000101001MMMMNN, где NN - номер группы регистров в двоичном виде, а ММММ - маска восстановления регистров в двоичном виде.
12. Процессор с переключением контекста вычислительного процесса, содержащий арифметико-логическое устройство, счетчик команд, память команд, память данных, регистр состояния процессора, контроллер прерываний и исключительных ситуаций, блок выборки, дешифрации и исполнения команд, файлы виртуальных регистров, отличающийся тем, что содержит стек контекста, выполненный с возможностью хранения полного контекста вычислительного процесса и связанный своими входами-выходами со счетчиком команд, регистром состояния процессора, входом-выходом файлов виртуальных регистров, каждый регистр стека контекста выполнен с возможностью хранения значений регистров любой из групп регистров, характеризующих контекст или значения счетчика команд процессора и значения регистра состояния процессора, причем процессор выполнен с возможностью дешифрации и исполнения команды с кодом 00001010000000NN как команды для сохранения регистров, характеризующих контекст, и с возможностью дешифрации и исполнения команды с кодом 0000101001MMMMNN как команды для восстановления ранее сохраненных регистров, характеризующих контекст, где каждое N и М имеет значение логического 0 или 1.
13. Процессор по п.12, отличающийся тем, что стек контекста выполнен с возможностью хранения полного контекста вычислительного процесса в своих пяти регистрах.
14. Способ сохранения и восстановления регистров процессора при переключении контекста вычислительного процесса, отличающийся тем, что процессор выполнен с возможностью дешифрации и исполнения команды с кодом 00001010000000NN как команды для сохранения разрядов регистров процессора, содержащих элементы контекста вычислительного процесса, и с возможностью дешифрации и исполнения команды с кодом 0000101001MMMMNN как команды для восстановления ряда ранее сохраненных регистров процессора содержащих элементы контекста вычислительного процесса, где каждое N и М имеет значение логического 0 или 1, а для сохранения или восстановления ряда регистров процессора, характеризующих контекст вычислительного процесса, процессору подают команды с кодом 00001010000000NN или 0000101001MMMMNN соответственно.
15. Способ по п.14, отличающийся тем, что процессор выполнен с возможностью единовременного сохранения ряда регистров процессора, характеризующих контекст вычислительного процесса, образующих одну группу, причем NN - номер группы регистров в двоичном виде.
16. Способ по п.15, отличающийся тем, что регистры процессора, характеризующие контекст вычислительного процесса, образуют четыре группы.
17. Способ по п.16, отличающийся тем, что в состав нулевой группы входят регистр базового адреса первого файла виртуальных регистров, регистр базового адреса второго файла виртуальных регистров, регистр базового адреса третьего файла виртуальных регистров, а также регистры режимов косвенной адресации и режима работы третьего файла виртуальных регистров, в состав первой группы входят регистр младшего байта адреса регистра косвенной адресации памяти данных, регистр старшего байта адреса регистра косвенной адресации памяти данных, регистр младшего байта адреса регистра косвенной адресации памяти данных и памяти команд, регистр старшего байта адреса регистра косвенной адресации памяти данных и памяти команд, в состав второй группы входят регистр младшего байта указателя стека данных, регистр старшего байта указателя стека данных, регистр младшего байта индекса стека данных и регистр старшего байта индекса стека данных, в состав третьей группы входят регистр номера страницы памяти регистра косвенной адресации памяти данных, регистр номера страницы памяти регистра косвенной адресации памяти данных и памяти команд, регистр счетчика циклов и регистр старшего байта результата умножения.
18. Способ по п.14, отличающийся тем, что для восстановления части сохраненных регистров процессора, характеризующих вычислительный процесс, задают маску восстановления регистров в команде восстановления, причем ММММ - маска восстановления в двоичном виде.
RU2006137012/09A 2006-10-19 2006-10-19 Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме RU2340933C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2006137012/09A RU2340933C2 (ru) 2006-10-19 2006-10-19 Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2006137012/09A RU2340933C2 (ru) 2006-10-19 2006-10-19 Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме

Publications (2)

Publication Number Publication Date
RU2006137012A RU2006137012A (ru) 2008-04-27
RU2340933C2 true RU2340933C2 (ru) 2008-12-10

Family

ID=39452688

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006137012/09A RU2340933C2 (ru) 2006-10-19 2006-10-19 Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме

Country Status (1)

Country Link
RU (1) RU2340933C2 (ru)

Also Published As

Publication number Publication date
RU2006137012A (ru) 2008-04-27

Similar Documents

Publication Publication Date Title
US6564179B1 (en) DSP emulating a microcontroller
JP3649470B2 (ja) データ処理装置
KR101764187B1 (ko) 가속기들의 낮은-레이턴시 인보크를 위한 장치 및 방법
KR100989215B1 (ko) 다중 레지스터 컨텍스트를 갖는 데이터 프로세싱 시스템및 이를 위한 방법
US5095526A (en) Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
WO2018174932A1 (en) Systems, methods, and apparatuses for tile store
KR101531372B1 (ko) 개선된 마이크로프로세서 또는 마이크로컨트롤러
JP7465887B2 (ja) データ構造処理
TWI713629B (zh) 切換影堆疊指標的硬體設備以及方法
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
EP0138352B1 (en) Method of operating a data processing system via depictor-linked microcode and logic circuitry
KR101564693B1 (ko) 개선된 마이크로프로세서 또는 마이크로컨트롤러
CN114675888A (zh) 用于加载矩阵操作加速器瓦片的指令的装置、方法和系统
RU2340933C2 (ru) Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме
US11023382B2 (en) Systems, methods, and apparatuses utilizing CPU storage with a memory reference
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
JPH03141434A (ja) マイクロコンピュータ
WO2000005646A9 (en) A processor having a datapath and control logic constituted with basis execution blocks
US6502181B1 (en) Method and apparatus for an enhanced processor
US11461098B2 (en) Apparatuses, methods, and systems for instructions for operating system transparent instruction state management of new instructions for application threads
CN114116003A (zh) 支持多指令集体系结构的程序运行方法、计算机设备及系统
JPH09505428A (ja) ページアドレスモードを有するマイクロコントローラ
CN112463327B (zh) 逻辑线程快速切换的方法、装置、cpu芯片及服务器
JP2003505758A (ja) プロセッサ・アーキテクチャ
Nelson Computer Architecture

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20111020