Активный аппаратный стек процессора

При разработке высокопроизводительных микропроцессоров и микроконтроллеров заимствуются характерные черты RISC-архитектуры. Сложные операции, к которым относятся вызовы подпрограмм и обслуживание прерываний, затруднительно реализовать аппаратно за одинаковый со всеми остальными командами интервал времени. Такие операции при выполнении предполагают запись значения адреса перехода в регистр программного счетчика процессора с одновременным сохранением адреса возврата из подпрограммы. В работе предложена специфическая конструкция аппаратного стека процессора, позволяющая выполнять сложные машинные операции за один такт. Установлено, что требуемый технический результат может быть достигнут введением в конструкцию процессора N идентичных программных счетчиков, фактически являющихся аналогами регистров стека. Показано, что указатель стека с логикой выбора регистра, подключенной к блоку программных счетчиков, активирует следующий программный счетчик при вызове подпрограммы или обслуживании прерывания, в то время как предыдущий счетчик сохраняет адрес возврата из подпрограммы. В результате процедуры сохранения адреса возврата из программного счетчика в регистры стека или ячейки оперативной памяти и восстановления его состояния из стека исключены. Это позволяет выполнить вызов подпрограммы или переход по вектору прерывания и осуществить возврат в точку вызова за один такт задающего генератора. Вследствие этого становится возможным увеличить быстродействие процессора при выполнении подобных операций на 30-50 %, а также повысить производительность в целом без увеличения тактовой частоты.
Андрей Андреевич Семёнов
Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского, г. Саратов, Россия
Дмитрий Александрович Усанов
Саратовский национальный исследовательский государственный уни-верситет им. Н.Г. Чернышевского, г. Саратов, Россия
Алексей Станиславович Дронкин
Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского, г. Саратов, Россия
Поделиться