ПРОЦЕССОР С ПЕРЕКЛЮЧЕНИЕМ КОНТЕКСТА ЗАДАЧ

Техническое решение относится к вычислительной технике, а именно к электрическим устройствам для обработки цифровых данных работающим в многозадачном режиме. Техническое решение может быть применено, в частности, в специализированных компьютерных системах управления (встраиваемых системах).
Известен разработанный компанией MIPS Computer Systems микропроцессор R4000 (Heinrich J. «MIPS R4000 Microprocessor. User's Manual». Second Edition. MIPS Technologies, Inc., 1994. 754 p.; «MIPS32 4K Processor Core Family Software User's Manual». MIPS Technologies, Inc., 2002. 222 p.), поддерживающий переключение контекста задач (контекста процессора, относящегося к задачам).
Переключение контекста задач используют при работе процессора в многозадачном режиме. При вынужденном приостановлении выполнения процессором текущей задачи необходимо сохранить все ресурсы - данные и служебную информацию (контекст задачи), благодаря которым в дальнейшем возможно продолжение вычислительного процесса с момента останова.
Известный микропроцессор R4000 содержит, помимо других конструктивных и функциональных элементов, арифметико-логическое устройство (АЛУ), устройство управления (УУ), регистр слова состояния процессора (РССП), регистры общего назначения (РОНы) и регистр счетчика команд (РСК). УУ известного микропроцессора выполнено с возможностью аппаратурного (автоматического) сохранения и восстановления значения РСК. Для хранения значений указанного регистра использован специально для этого предназначенный регистр. При этом остальную часть контекста задачи (значения задействованных текущим вычислительным процессом РОНов) необходимо сохранять и восстанавливать программными средствами. Для начала работы программному обработчику прерывания в качестве свободных регистров выделяют регистры из числа РОНов, но условно договариваются, что эти регистры могут быть использованы только обработчиком прерывания и никакой другой задачей, что является правилом для программиста.
К недостаткам известного аналога могут быть отнесены: необходимость использования для переключения контекста излишнего программного кода; низкая эффективность использования кодов адреса регистров в коде команды из-за редкого использования адресов этих специальных регистров, что обусловлено отображением выделяемых регистров для обработчика прерывания в общее адресное пространство РОНов.
Задачей, на решение которой направлено настоящее техническое решение, является улучшение эксплуатационных характеристик процессора, связанных с упрощением его программирования при увеличении скорости переключения контекста процессора при обработке, в том числе, и вложенных прерываний.
Техническими результатами, обеспечиваемыми настоящим техническим решением, являются:
1) повышение автоматизации процесса переключения контекста задач, обусловленное увеличением числа аппаратно выполняемых операций, связанных с контролем процесса переключения задач и с собственно процедурой сохранения и восстановления контекста задач, что приводит к упрощению программного кода программ обработчиков прерывания и к сокращению их времени исполнения.
2) исключение использования РОНов для хранения частичных контекстов процессора, что упрощает программирование, уменьшает вероятность ошибок, сокращает количество программных операций по сохранению и восстановлению значения РОНов; повышение эффективности использования всех кодов адресов РОНов в командах благодаря равноценности кодов адресов.
Указанные технические результаты достигаются благодаря тому, что процессор содержит взаимно связанные АЛУ, РСК, РССП, РОНы и УУ. В функции УУ входит обработка исключительных ситуаций в вычислительном процессе. УУ выполнено с возможностью переключения частичного контекста процессора, включая сохранение частичного контекста процессора для текущей задачи, а именно значения РСК, в запоминающем устройстве (ЗУ) и восстановление данного частичного контекста процессора при возврате из последующей задачи. Причем УУ выполнено с возможностью сохранения в ЗУ и последующего восстановления частичного контекста процессора включающего также значения полей РССП и двух РОНов, а ЗУ выполнено с возможностью одновременного хранения частичных контекстов процессора вне РОНов.
В частном случае выполнения процессора ЗУ содержит группы элементов хранения, каждая из которых специально предназначена для хранения одного частичного контекста процессора.
В другом частном случае УУ выполнено с возможностью выбора группы элементов хранения ЗУ для чтения/записи частичного контекста процессора в зависимости от типа исключительной ситуации. Это реализовано благодаря принятому условному соответствию между типом исключительной ситуации (возможно, каждым типом) и номером группы элементов хранения ЗУ. Исходя из типа текущей исключительной ситуации УУ обращается к конкретной группе элементов хранения ЗУ, при этом дополнительная информация о месте хранения частичного контекста не требуется.
Также в частном случае элементы хранения ЗУ представляют собой регистры процессора.
В еще одном частном случае ЗУ содержит одинаковые группы элементов хранения.
Полезная модель поясняется следующими фигурами.
Фиг.1 - структурная схема процессора.
Фиг.2 - диаграмма полей РССП.
Осуществление полезной модели показано на примере 32-разрядного RISC процессора с условным названием «KVARC».
Процессор содержит АЛУ 1, основные регистры процессора (ОРП) 2, включая РСК, РССП и РОНы РО-Р15 регистрового файла, а также УУ 3 и ЗУ 4 с тремя группами системных регистров для хранения трех частичных контекстов процессора. Первая группа содержит регистр хранения счетчика команд (РХСК-1), регистр хранения слова состояния процессора (РХССП-1), регистр хранения первого РОНа (РХРО-1) и регистр хранения второго РОНа (РХР1-1) для хранения значений полей РСК, РСПП, РО и Р1 соответственно. Вторая группа регистров (РХСК-2, РХССП-2, РХРО-2 и РХР1-2) предназначенная для хранения второго частичного контекста процессора и третья группа регистров (РХСК-3, РХССП-3, РХРО-3 и РХР1-3) предназначенная для хранения третьего частичного контекста процессора выполнены аналогично первой группе.
АЛУ 1, ОРП 2, УУ 3 и ЗУ 4 информационно связаны между собой своими входами-выходами через УУ 3. АЛУ 1 и ОРП 2 кроме того соединены друг с другом напрямую. Процессор содержит помимо указанных все необходимые конструктивные и функциональные элементы, необходимые для его функционирования, включая каналы ввода-вывода данных и цепи питания.
Отличием в работе механизма переключения контекста процессора «KVARC» от известного аналога является следующее.
После прихода исключения (исключительная ситуация) определяют тип исключения по источнику исключения. Затем читают данные контекста процессора и в зависимости от типа исключения сохраняют частичный контекст в регистрах группы ЗУ 4, соответствующей данному типу исключения. Если исключение представляет собой аппаратное или программное прерывание, то УУ 3 записывает частичный контекст в первую группу регистров (РХСК-1, РХССП-1, РХРО-1 и РХР1-1), если исключение переводит работу процессора в режим отладки, то УУ 3 записывает частичный контекст во вторую группу регистров (РХСК-2, РХССП-2, РХРО-2 и РХР1-2), а если исключение является следствием ошибки в вычислительном процессе, то УУ 3 записывает частичный контекст в третью группу регистров (РХСК-3, РХССП-3, РХРО-3 и РХР1-3). Число аппаратно сохраняемых РОНов и групп регистров в ЗУ 4 выбрано как наиболее оптимальное исходя из компромисса между тем, что для решения поставленной задачи желательно сохранение как можно большего числа рабочих регистров процессора, причем для каждой исключительной ситуации желательно использовать свою группу регистров в ЗУ 4, и тем, что аппаратные затраты желательно максимально ограничить по экономическим причинам.
Дальнейшее переключение контекста соответствует работе известного аналога: считывают новое значение счетчика команд из таблицы векторов прерываний и заносят его в РСК; считывают новое значение слова состояния процессора из таблицы векторов прерываний и заносят его в РССП, подпрограмма обработки исключения выполняет свою функцию, после получения команды возврата из задачи читают РССП и определяют режим работы процессора.
Формат РССП показан на фиг.2, где: NZVC - поле флагов АЛУ; PRIOR - приоритет задачи; PID - идентификатор задачи; ExMODE - поле, указывающее на режим работы процессора в исключительных ситуациях, которое изменяется автоматически в зависимости от типа исключения и не изменяется значением поля ExMODE из таблицы векторов прерываний процессора; D - бит включения отладки.
Однако в отличие от известного аналога, при восстановлении частичного контекста процессора «KVARC», при выполнении команды возврата из задачи обработки программного прерывания УУ 3 считывает данные из системных регистров ЗУ 4 в зависимости от типа режима работы процессора, аналогично тому, как была осуществлена запись частичного контекста.
Запись в системные регистры процессора «KVARC» возможна путем подачи команды, содержащей код 0хЕЕ в своих старших разрядах с 25 по 32; для чтения системных регистров возможно использование команды, содержащей код 0xEF в своих старших разрядах с 25 по 32; вызов задачи возможен по приходу аппаратных маскируемых и немаскируемых прерываний, а также путем подачи команды, которая содержит код ОхЕ5 в своих старших разрядах с 8 по 15; выход из задачи возможен по команде, содержащей код 0хЕ7 в своих старших разрядах с 8 по 15.