При разработке высокопроизводительных микропроцессоров и микроконтроллеров заимствуются характерные черты RISC-архитектуры. Сложные операции, к которым относятся вызовы подпрограмм и обслуживание прерываний, затруднительно реализовать аппаратно за одинаковый со всеми остальными командами интервал времени. Такие операции при выполнении предполагают запись значения адреса перехода в регистр программного счетчика процессора с одновременным сохранением адреса возврата из подпрограммы. В работе предложена специфическая конструкция аппаратного стека процессора, позволяющая выполнять сложные машинные операции за один такт. Установлено, что требуемый технический результат может быть достигнут введением в конструкцию процессора N идентичных программных счетчиков, фактически являющихся аналогами регистров стека. Показано, что указатель стека с логикой выбора регистра, подключенной к блоку программных счетчиков, активирует следующий программный счетчик при вызове подпрограммы или обслуживании прерывания, в то время как предыдущий счетчик сохраняет адрес возврата из подпрограммы. В результате процедуры сохранения адреса возврата из программного счетчика в регистры стека или ячейки оперативной памяти и восстановления его состояния из стека исключены. Это позволяет выполнить вызов подпрограммы или переход по вектору прерывания и осуществить возврат в точку вызова за один такт задающего генератора. Вследствие этого становится возможным увеличить быстродействие процессора при выполнении подобных операций на 30-50 %, а также повысить производительность в целом без увеличения тактовой частоты.
Семёнов Андрей Андреевич
Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского, г. Саратов, Россия
Усанов Дмитрий Александрович
Саратовский национальный исследовательский государственный уни-верситет им. Н.Г. Чернышевского, г. Саратов, Россия
Дронкин Алексей Станиславович
Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского, г. Саратов, Россия
1. Айзек Р. Будущее технологии КМОП // Открытые системы. СУБД. – 2000. – №10. – С. 8–18.
2. Цветов В. Развитие классической микроэлектроники. Ожидаемые физико-технические пределы // Электроника: наука, технология, бизнес. – 2010. – №3. – С. 2–6.
3. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: учебник для вузов. – 2-е изд. – СПб.: Питер, 2011. – 688 с.
4. Stallings W. Computer organization and architecture: designing for performance. – 10th Ed. – Pearson Education, Inc., 2016. – 864 p.
5. Microchip PIC18(L)F1XK22 Data Sheet, 20-Pin Flash Microcontrollers with nanoWatt XLP Technology. © 2009–2011 Microchip Technology Incorporated. DS41365E. – URL: http://ww1.microchip.com/downloads/en/DeviceDoc/40001365F.pdf (дата обращения: 03.01.2019).
6. Семенов А.А., Усанов Д.А. Активный аппаратный стек процессора // Патент России № 2530285. 2014. Бюл. № 28.
7. ALTERA. MAX 3000A Programmable Logic Device Family Data Sheet. – URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ds/m3000a.pdf (дата обращения: 10.11.2018).
8. MAX+PLUS II Software. – URL: https://www.intel.com/content/www/us/en/programmable/ support/support-resources/download/legacy/maxplus2/mp2-index.html (дата обращения: 10.11.2018).
9. Analysis of x86 Instruction Set Usage for DOS/Windows Applications and Its Implication on Superscalar Design. – URL: https://www33.online-convert.com/dl/web1/download-file/64c3379f-38e2-41f7-a54b-c057a3f8ec0d/ab7db4fd488e47630671efa39f818d106a06.pdf (дата обращения: 03.01.2019).
10. x86 Machine Code Statistics. – URL: https://www.strchr.com/x86_machine_code_statistics (дата обращения: 03.01.2019).