Стековая эвм с префиксными командами

Изобретение относится к технике обработки цифровых данных и предназначено для использования в вычислительных машинах, к которым относятся стековые ЭВМ. Технический результат заключается в сокращении числа команд и времени обработки данных в памяти. Технический результат достигается за счет стековой ЭВМ, которая содержит АЛУ, память, дешифратор команд, регистровый файл с данными стека и прямым доступом к элементам стека, регистр верхнего элемента стека, регистр операнда, мультиплексоры на входах и выходе АЛУ. Дешифратор команд декодирует и исполняет команды ЭВМ, а также байтовые префиксные команды операнда и константы. Команда префикса операнда задает элемент стека или ячейку памяти, которые дешифратор команд использует как источник и приемник следующей команды обработки. Команду префикса константы дешифратор команд использует в качестве константы следующей команды обработки данных или для расширения разрядов ее информационного поля. 2 табл., 3 ил.

 

Изобретение относится к технике обработки данных с помощью ЭВМ, в частности к стековым ЭВМ с префиксными командами, и может быть использовано в вычислительных машинах с архитектурами CISC (Complex Instruction Set Computer) и RISC (Reduced Instruction Set Computer).

Известна стековая ЭВМ HP3000 [1] компании Hewlett-Packard, архитектура которой ориентирована на обработку данных, хранящихся в стеке. Доступ к операндам в стеке ограничивается верхними элементами стека, а результат операции всегда помещается на вершину стека. Для доступа к памяти используются команды загрузки и выгрузки верхнего элемента стека из памяти и обратно.

Недостатками аналога являются большое количество команд обращений к памяти, а также сложность доступа к данным процедуры из-за использования стека для хранения как данных процедуры, так и адреса возврата.

Известен компьютер со стековой системой команд [2], который поддерживает язык FORTH [3]. Компьютер содержит шину данных, АЛУ, два стека - стек данных и стек возврата, память программ, память данных и регистры - счетчик команд, указатели стека данных и возврата. Здесь решена проблема доступа к параметрам процедуры за счет использования дополнительного стека для хранения адреса возврата в вызывающую программу.

Недостатком аналога является большое количество вспомогательных команд загрузки и выгрузки данных из памяти в стек и обратно, что увеличивает объем кода программы и число тактов при обработке данных.

Известен способ объединения команд стековой ЭВМ в одну трехадресную инструкцию [4] для стековой виртуальной машины языка Java [5]. Виртуальная машина языка Java обеспечивает доступ к локальным данным, хранящимся в стеке, и их обработку одной байтовой командой. Объединение байтовых команд в одну инструкцию позволяет выполнять несколько команд виртуальной машины языка Java за один такт.

Недостатком аналога является сложная аппаратная реализация объединения стековых команд в одну инструкцию, а также необходимость использования вспомогательных команд загрузки и выгрузки данных на стек и обратно при обработке данных в памяти, что увеличивает число команд программы и объем кода.

Наиболее близким к заявленному техническому решению является стековая ЭВМ, содержащая стек и адресуемые регистры [6], выбранная в качестве прототипа, в которой ЭВМ содержит АЛУ, память, дешифратор команд, регистровый файл с данными стека, регистром указателем стека, регистрами общего назначения и двумя шинами доступа к данным стека и регистрам. ЭВМ также содержит регистр верхнего элемента стека, мультиплексоры на входах и выходе АЛУ, дешифратор команд, который декодирует и исполняет команды ЭВМ. Кроме этого дешифратор команд декодирует и исполняет префиксные команды, задающие операнды источники и операнд приемник для последующей команды обработки данных из регистров общего назначения или стека в различном их сочетании.

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

Задачей, на решение которой направлено заявляемое изобретение, является достижение технического результата, заключающегося в сокращении числа команд и времени обработки данных в памяти, сокращении форматов и длины команд, а также снятии ограничений на разрядность информационного поля команд стековой ЭВМ.

Поставленная задача решается благодаря тому, что в стековой ЭВМ с префиксными командами, содержащей АЛУ, память, дешифратор команд, регистровый файл с данными стека, регистром указателем стека и шиной доступа к данным стека, содержащей регистр верхнего элемента стека, мультиплексоры на входах и выходе АЛУ, дешифратор команд, который декодирует и исполняет команды ЭВМ, в т.ч. префиксные команды, в которой мультиплексор на первом входе АЛУ соединен с дешифратором команд и регистровым файлом, мультиплексор на втором входе АЛУ соединен с регистром верхнего элемента стека и дешифратором команд, выход АЛУ соединен с выходным мультиплексором и памятью, выходной мультиплексор соединен с регистровым файлом и регистром верхнего элемента стека, предусмотрены следующие отличия: ЭВМ содержит регистр операнда, соединенный с мультиплексором на первом входе АЛУ и мультиплексором на выходе АЛУ, дешифратор команд дополнительно декодирует и исполняет две байтовые префиксные команды - операнда и константы, команда префикса операнда задает элемент стека или ячейку памяти, которые дешифратор использует как источник и приемник для следующей команды обработки, команду префикса константы дешифратор команд использует в качестве константы следующей команды обработки данных или для расширения разрядов ее информационного поля.

Между совокупностью существенных признаков заявляемой стековой ЭВМ с префиксными командами и достигаемым техническим результатом существует причинно-следственная связь, а именно команда префикса операнда позволяет выполнять обработку данных без использования вспомогательной команды выгрузки результата операции из стека в память, доступ к элементам стека позволяет обрабатывать данные без обращения к памяти, а префикс константы позволяет задавать константу для следующей команды обработки данных или расширять разряды ее информационного поля без введения дополнительных форматов команд.

Техническое решение позволяет сократить число команд и время обработки данных, снять ограничения на разрядность информационного поля команд стековой ЭВМ.

Изобретение поясняется чертежами. На фиг. 1 приведен пример тракта обработки данных стековой ЭВМ. На фиг. 2 приведен пример форматов команд стековой ЭВМ. На фиг. 3 приведена блок-схема примера программы вычисления выражения.

Тракт обработки данных стековой ЭВМ, изображенный на фиг. 1, содержит АЛУ 1, память 2, дешифратор команд 3, регистровый файл 4, регистр верхнего элемента стека 5, регистр операнда 6, мультиплексоры на входах 7, 8 и выходе 9 АЛУ 1, мультиплексор 8 на первом входе АЛУ 1 соединен с регистровым файлом 4, дешифратором команд 3 и регистром операнда 6, мультиплексор 7 на втором входе АЛУ 1 соединен с регистром верхнего элемента стека 5 и дешифратором команд 3, выход АЛУ 1 соединен с мультиплексором 9 и памятью 2, мультиплексор 9 по входу также соединен с памятью 2, а его выход соединен с регистровым файлом 4, регистром верхнего элемента стека 5 и регистром операнда 6.

Регистровый файл 4 содержит массив слов с данными стека, регистр указатель стека и имеет шину доступа к любому элементу стека.

Мультиплексор 8 имеет три входа, через которые он подает на первый вход АЛУ 1 данные из регистрового файла 4, регистра операнда 6 или константу от дешифратора команды 3.

Мультиплексор 7 имеет два входа, через которые он подает на второй вход АЛУ 1 данные из регистра верхнего элемента стека 5 или константу от дешифратора команды 3.

АЛУ 1 выполняет операции обработки данных, поданных на его входы. Выходной результат операции АЛУ записывается в память 2 или подается на вход мультиплексора 9.

Мультиплексор 9 имеет два входа, через которые он выбирает данные либо с выхода АЛУ 1, либо из памяти 2. Выбранные данные с выхода мультиплексора 9 дешифратор команд 3 записывает либо в регистровый файл 4, либо в регистр верхнего элемента стека 5, либо в регистр операнда 6.

Дешифратор команд 3 обеспечивает выполнение команд стековой ЭВМ и дополнительно выполняет две байтовые префиксные команды - операнда и константы. Для команды префикса операнда дешифратор команд 3 выполняет загрузку операнда в регистр операнда 6 из регистрового файла 4 или ячейки памяти 2 и затем записывает результат выполнения следующей команды обратно в регистровый файл 4 или ячейку памяти 2. Префикс константы дешифратор команд 3 использует в качестве константы для следующей команды обработки данных или для расширения разрядов ее информационного поля.

На фиг. 2 приведен пример форматов команд 16-разрядной стековой ЭВМ.

Коды ОР1 задают байтовые команды управления и команды обработки данных.

Коды ОР2 задают байтовые команды с 5-разрядным полем. Поле команды задает операнд или 5-разрядную константу. Операнд, заданный в команде - это элемент стека, адресуемый относительно указателя стека, либо ячейка памяти. Префикс константы используется для расширения разрядности полей следующей команды или как 5-разрядная константа для следующей команды обработки данных.

Коды ОР3 задают 2-байтовые команды условной и безусловной передачи управления с 8-разрядным смещением, а также команду загрузки 8-разрядной константы в стек.

Код ОР4 задает 2-байтовую команду вызова процедуры по 11-разрядному адресу. Байтовый префикс константы расширяет этот адрес до 16 разрядов.

Коды ОР5 задают 3-байтовую команду загрузки 16-разрядной константы в стек и команду доступа к памяти по 16-разрядному адресу.

На фиг. 3 приведена блок-схема программы вычисления выражения, приведенного в описании прототипа:

В блоке 1 осуществляется чтение переменной А на верхушку стека.

В блоке 2 верхушка стека дублируется в стеке.

В блоке 3 осуществляется чтение переменной С на верхушку стека.

В блоке 4 осуществляется умножение верхушки стека на префиксную константу 7.

В блоке 5 осуществляется сложение переменной А, сохраненной в стеке, и результата умножения.

В блоке 6 вычисляется разность значения копии переменной А и результата промежуточного вычисления выражения.

В блоке 7 осуществляется чтение переменной В на верхушку стека.

В блоке 8 осуществляется сложение элементов стека с сохранением результата на верхушке стека.

В блоке 9 содержимое верхушки стека записывается в переменную X.

Ниже в таблице приведены коды программы вычисления выражения 1 при обработке переменных в памяти и в стеке для форматов команд 16-разрядной стековой ЭВМ (фиг. 2).

Программа занимает 10 байт, если переменные находятся в стеке, и 18 байт, если переменные находятся в памяти.

Для прототипа программа вычисления данного выражения занимает 23 байта.

Ниже в таблице приведены сравнительные оценки объема кода и числа команд при реализации унарной операции инкремента (добавления единицы) переменной и бинарной операции сложения переменной с константой и с переменной в стековой ЭВМ, используемой как прототип, и в предлагаемой ЭВМ для переменной в памяти и в стеке.

Из таблицы следует, что предлагаемая стековая ЭВМ за счет префиксных команд обеспечивает сокращение объема кода, а также времени выполнения программ при обработке данных по сравнению с прототипом, кроме этого за счет префиксной команды константы предлагаемая стековая ЭВМ позволяет расширить разрядность информационных полей команд на 5 дополнительных разрядов, таким образом, например, относительный переход в командах ветвления уже не ограничен 8-разрядным смещением, а может составлять 13 разрядов, а двухбайтовые команды вызова процедур по 11-разрядному адресу при наличии 5-разрядного префикса константы позволяют адресовать 16-разрядную память.

Кроме этого в предлагаемом решении по сравнению с прототипом используется меньше форматов команд, а прямая адресация элементов стека позволяет выполнять обработку данных, размещенных в стеке, без использования основной памяти ЭВМ.

Источники информации

1. Hewlett-Packard: НР3000 Computer Systems: General Information Manual; August 1983; 5953-7553.

2. Патент США 4,980,821.

3. ANSI FORTH. Описание стандарта. АЕСН.431295.001Д4

ANSI Х3.215-1994.

4. Патент США 2007/0277021.

5. The JavaTM Virtual Mashine Specification. Second Edition.

Tim Lindholm, Frank Yellin. Sun Microsystems, Inc. 1999.

6. Патент США 2007/0061551 - прототип.

Стековая ЭВМ с префиксными командами, содержащая АЛУ, память, дешифратор команд, регистровый файл с данными стека, регистром указателем стека и шиной доступа к элементам стека, содержащая регистр верхнего элемента стека, мультиплексоры на входах и выходе АЛУ, дешифратор команд, который декодирует и исполняет команды ЭВМ, в том числе префиксные команды, в которой мультиплексор на первом входе АЛУ соединен с дешифратором команд и регистровым файлом, мультиплексор на втором входе АЛУ соединен с регистром верхнего элемента стека и дешифратором команд, выход АЛУ соединен с выходным мультиплексором и памятью, выходной мультиплексор соединен с регистровым файлом и регистром верхнего элемента стека, отличающаяся тем, что ЭВМ содержит регистр операнда, соединенный с мультиплексором на первом входе АЛУ и мультиплексором на выходе АЛУ, дешифратор команд дополнительно декодирует и исполняет две байтовые префиксные команды - операнда и константы, команда префикса операнда задает элемент стека или ячейку памяти, которые дешифратор команд использует как источник и приемник следующей команды обработки, команду префикса константы дешифратор команд использует в качестве константы следующей команды обработки данных или для расширения разрядов ее информационного поля.



 

Похожие патенты:

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

Изобретение относится к вычислительной технике и к многоагентным системам (MAC) и может быть использовано для автоматического прерывания задач, находящихся в цикличности.

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

Изобретение относится к области цифровых вычислительных машин. .

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

Изобретение относится к компьютерной технике, а именно к вычислительным устройствам, выполненным на оптоэлектронной элементной базе. .

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

Изобретение относится к технологиям аутентификации при использовании электронных устройств. Техническим результатом является обеспечение аутентификации посредством установлении собственных элементов ввода, в качестве элементов ввода для аутентификации, для отдельных прикладных программ. Технический результат достигается за счет электронного устройства, которое содержит секцию приема, секцию хранения данных, секцию управления отображением и секцию указания. Секция приема осуществляет прием от установленной программы информации атрибутов для не являющихся идентификатором (ID) и паролем элементов ввода, собственных для установленной программы, в качестве элементов ввода для аутентификации. Секция хранения данных предназначена для сохранения информации атрибутов. Секция управления отображением предназначена для отображения экрана ввода на секции отображения для ввода, не являющихся ID и паролем, элементов ввода, собственных для установленной программы. 4 н. и 8 з.п. ф-лы, 10 ил.

Изобретение относится к защите информации от несанкционированного доступа. Технический результат – повышение пропускной способности сетевой системы защиты информации. Способ управления рабочим множеством виртуальных вычислителей в виртуальной сетевой системе защиты информации включает обработку передаваемых по сети данных на уровне потоков путем кодирования и агрегации сетевых пакетов, а также балансировку трафика путем назначения виртуальных машин сетевым пакетам, при этом перед кодированием для сетевой системы защиты определяют максимально допустимые верхний и нижний пороги загруженности виртуального вычислителя, определяют загруженность каждого виртуального вычислителя, определяют максимально и минимально загруженные виртуальные вычислители в системе, включают новый виртуальный вычислитель тогда, когда для максимально загруженного виртуального вычислителя его загруженность превышает верхний порог загруженности виртуального вычислителя в системе, выключают минимально загруженный виртуальный вычислитель тогда, когда его загруженность не превышает нижнего порога загруженности виртуального вычислителя в системе, через равные промежутки времени повторно выполняют указанные действия над виртуальными вычислителями. 1 ил.

Изобретение относится к многоядерным процессорам с многопоточными конвейерами выполнения команд. Технический результат заключается в обеспечении выполнения операций с памятью в режиме транзакций с определением условий прерывания транзакции. Указанный результат достигается за счет применения процессора, содержащего: схему обнаружения конфликтов доступа к памяти для идентификации конфликта, относящегося к выполняемой, в потоке, транзакции; схему регистрации для формирования и вывода в качестве отчета пакета данных, при идентификации, упомянутой схемой обнаружения конфликтов доступа к памяти, конфликта, вызывающего прерывание упомянутой транзакции, при этом пакет данных содержит содержимое, описывающее причину указанного прерывания транзакции, а структура пакета данных содержит поле для указания одного из начала транзакции, конца транзакции и указанного прерывания, причем указанное содержимое выводится в качестве отчета на указанную схему регистрации в ответ на прерывание. 2 н. и 13 з.п. ф-лы, 8 ил.

Изобретение относится к области электроники и микропроцессорной техники и может найти обширное применение при отладке, ремонте и эксплуатации широкого спектра микропроцессорных систем и устройств, как уже существующих, так и вновь разрабатываемых, а также при изучении и исследовании принципов работы подобных систем и устройств в практических разделах дисциплин учебных заведений, имеющих соответствующую направленность подготовки специалистов. Технический результат – повышение производительности и снижение трудоемкости процесса отладки цифровых микропроцессорных систем и устройств. В конструкцию отладочного устройства, использующего часть памяти внешнего инструментального компьютера для хранения программы целевой отлаживаемой микропроцессорной системы и имеющего в своем составе интерфейс LPT–порта принтера для передачи программ и данных в отлаживаемую микропроцессорную систему через тристабильный восьмиразрядный буферный шинный формирователь, а также устройство синхронизации, представляющее собой бистабильный RS-триггер с подключенными к его входам формирователями коротких импульсов, согласно изобретению, в зависимости от разрядности N микропроцессора отлаживаемой системы, введены дополнительно N/8 восьмиразрядных регистров-защелок с тристабильным выходом, входы которых объединяются поразрядно и подключаются через тристабильный восьмиразрядный буферный шинный формирователь соответственно к линиям данных интерфейса принтера, а выходы посредством многоштырьковых вилок соединяются через панельки ПЗУ отлаживаемого устройства с его шиной данных, а также двоичный счетчик и дешифратор, образующие демультиплексор–распределитель сигнала стробирования, направляющий каждый следующий сигнал подтверждения истинности выданных инструментальным компьютером данных на вход записи соответствующего регистра-защелки. Дополнительно введенные узлы формирования сигналов занятости и подтверждения приёма байта дают возможность устройству осуществлять взаимодействие с инструментальным компьютером через порт принтера по стандарту интерфейса ‘Centronics’. 2 ил.
Наверх