Стековое запоминающее устройство
Иллюстрации
Показать всеРеферат
Изобретение относится к цифровой вычислительной технике. Цель изобретения - повышение производительности вычисления за счет сокращения числа обращений в оперативную память. Изобретение можно использовать в устройстве обработки данных . Содержит блок 1 управления, блок 2 регистров, арифметико-логическое устройство 3 реверсивные счетчики 4 и 8, первый и второй формирователи 5 и 6 адреса к мультиплексор 7. 2 ил., 1 табл.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР
1
ОПИСАНИЕ ИЗОБРЕТЕНИЯ ОМа п итанЮ S0/7
К- АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4336898/24 (22) 26.10.87 (46) 30.05.92, Бюл. N 20 (72) B.Ï. Морозов, В.Н, Б,арулин, С.Г. Наумов, В.Д. Расторгуев, Ю.В, Рычагов, А.Н, Терехов и Н,Ф. Фоминых (53) 681.325(088.8) (56) Авторское свидетельство СССР
N 752484, кл, С 11 С 19/00, 1978.
Авторское свидетельство СССР
М 1304078, кл. G 11 С 19/00, 1985. (54) С ТЕ КО В О Е ЗАПОМИНАЮЩЕЕ У СТРОЙСТВО
„„, Ц„„1737456 А1 (я)ю G 06 F 12/00, G 11 С 19/00 (57) Изобретение относится к цифровой вычислительной технике. Цель изобретения— повышение производительности вычисления за счет сокращения числа обращений в оперативную память. Изобретение можно использовать в устройстве обработки данных, Содержит блок 1 управления, блок 2 регистров, арифметика-логическое устройство 3 реверсивные счетчики 4 и 8, первый и второй формирователи 5 и 6 адреса к мультиплексор 7. 2 ил., 1 табл.
1737456
Изобретение относится к цифровой вычислительной технике и может быть использовано для создания устройств обработки данных, выполняющих операции в стековом режиме (обратной польской записи).
Цел ь изобретения — по вы ш ение и роизводительности вычислений за счет сокращения числа обращений в оперативную память.
На фиг. 1 представлен пример использования изобретения в устройстве для обработки данных; на фиг. 2 — пример обработки выражения в польсксй инверсной записи.
Устройство обработки данных содержит блок 1 управления, блок 2 регистров (стек), арифметико-логическое устройство 3, пер,вый реверсивный счетчик 4, первый 5 и второй 6 формирователи адреса, мультиплексор 7 и второй реверсивный счетчик 8.
Блок 1 состоит из коммутатора управления счетчиками 4 и 8, выполненного на элементах И 9 — 12 и элементе НЕ 13.
Устройство обработки данных работает следующим образом, Машинные команды, работающие с предлагаемым устройством, имеюттри формата, Первый формат содержит только поле кода операции (КОП ).В этом формате задаются соответствующие арифметические или логические операции над одним или двумя регистрами на вершине стека.
Второй формат содержит поле КОП и поле адреса операнда (АД) в памяти, Этот формат используется для загрузки стека данными из памяти и выгрузки из него.
Третий формат содержит поле КОП и поле адреса регистра (Н4), в котором задается номер любого регистра внутри стека относительно его вершины. Регистр на вершине стека считается О, регистр первого уровня под вершиной стека имеет относительный номер 1 и т.д, Команды этого формата позволяют осуществлять доступ к любому регистру в глубине стека.
Типовые команды, управляющие работой предлагаемого устройства, приведены в таблице. Для определенности глубина регистрового стека выбрана равной 16.
Работа устройства начинается с сброса в ноль счетчиков 4 и 3. Различают два режима обмена данными с оперативной памятью: одиночный и групповой. В одиночном режиме выполняется обмен данными между вершиной стека и оперативной памятью, Любая загрузка в стек в этом режиме увеличивает на "1" содержимое счетчика 4, а выгрузка из стека уменьшает на "1" содержимое счетчика 4. Групповой режим отличается от одиночного тем, что обмен данными с памятью выполняется от дна стека, на который указывает счетчик 8. В этом режиме загрузка или выгрузка соответственно увеличивает или уменьшает на "1" содержимое счетчика 8.
5 В качестве примера рассмотрим счет по формуле а + (с — Ь х а) х (а + d), 10 В обратной польской записи она имеет вид
acbdx — tad + х +.
15 Используя команды из таблицы, вычисление этого выражения может быть запрограммировано следующим образом:
4(а), 4(с), 4(b), 4р, х, —, 4(d), 4р, +, х, +, 20 где (а), ..Ä (d) — адреса операндов а, „., б в памяти ЦВМ, Состояние стека при выполнении этой последовательности команд на фиг. 2.
25 Таким образом, структура предлагаемого устройства позволяет хранить многократно используемые или промежуточные значения непосредственно на регистрах стека, Это экономит число обращений к one30 ративной памяти. В случае обычной адресации стека требуется два дополнительных обращения в память.
Если принять, что коды команд и адреса операндов в памяти для первого и второго
35 случаев занимают по 1 байту, то длина командного кода для обоих случаев составляет
17 байтов. Если адреса операндов в памяти занимают по 2 байта(что наиболее реально), то командный код для предлагаемого уст40 ройства короче на 2 байта. Следовательно, предлагаемое устройство позволяет сократить время счета и длину командного кода, Рассмотрим пример использования предлагаемого устройства для организации
45 циклов.
Пусты — переменная цикла, N — верхний предел. При входе в цикл на вершину стека помещают значение С, на следующий ни>кний уровень — N. При каждом повторении
50 цикла,! увеличивается на единицу и, если
i< N, тоуправление передается на начало цикла, в противном случае со стека снимают две верхние позиции, а управление передается на следующую команду. При организации
55 вложенных циклов на вершине стека располагаются i u N внутреннего цикла, а в глубине стека — параметры внешнего цикла, В чисто стековых операционных устройствах с.доступом только к вершине стека
1737456 пие адресного ) Формат нз ад .входе
Ннсмоникс Семантика коиапды команды
Действив, выполняеиые над указателем стека s конце такта
Дна не слова команды
Читать на стек значение из памяти
SP: =СР+!
В: $Р+1 КВ АД
ЧР
Читать на стек значение нз регистра SP!=SP+1
К4 Н4.
А: $Р-Н В: «ВГ+1
Писать в память значение из стека
$1 $"-1
ПР
КВ АД
Писать из стека значение в регистр $Р: $Р-1
К12 Н4
Л: ВР
".:ВРИ
Сумма
Разность
Произведение (бинарные, стскоеые операции) $: SP В! SP"! КВ
SP: SÐ-1
Инвертирование знака на яср!хи c (Группа унарних стековых операций) SP:-SP
Р В =$" К8
Регистровая сумма целых, результат s регистр Я $Р-1
Р+
К12 Н4 ч
А: SP
В! $Р-Н
П р и м е ч а н и е, К4, К8, К12 - число битов в коде операции; $Г - указатель с-.ека, Формируемый счетчиками 4 и 8; Н4 (н) - номер регис ра относительно текущей вершины стека; X - -значение безразлично; ДД - поле адресации. переменные цикла храняться в памяти и доступ к ним требует дополнительных временных затрат.
В любом операционном устройстве, имеющем регистровую память (с явным заданием номера регистра или стекового вида), возникает проблема запоминания и восстановления этих регистров при выходе процедуры. Наиболее распространенное решение — выгрузка в оперативную память всех регистров.
В то же время в случае использования статических языков высокого уровня (ЯВУ) (типа Ада, Алгол 68, Модула 2) уже на этапе трансляции известно, сколько регистров потребует процедура для своей работы, т.е, каков ее "аппетит", Зная "аппетит" процедуры и следя за заполненностью регистровой памяти, можно выгружать в оперативную память только часть регистров. Если свободных регистров больше, чем требуется процедуре, то выгрузка вообще может не производиться. Это позволяет экономить время вызова процедуры и возврата, С этой целью предлагаемое устройство содержит счетчик 8. Зная содержимое счетчиков 4 и 8, можно судить о заполненности стека. Если требуется выгрузка стека при вызове процедуры, то требуемое количество регистров выгружается от дна стека.
При выгрузке каждого регистра состояния счетчика 8 увеличивается на единицу, а при загрузке (при возврате из процедуры) уменьшается на единицу, На выход мультиплексора 7 в том случае поступает содержимое счетчика 8. Состояние счетчика 4 при этом не меняется.
Введение подвижного дна стека позволяет выгружать из него наименее часто ис5 пользуемые переменные, так как именно они лежат в глубине стека. Так в приведенном примере организации вложенных циклов на вершине стека лежат переменные внутреннего цикла, т.е, наиболее часто ис10 пользуемые объекты.
Формула изобретения
Стековое запоминающее устройство, содержащее блок регистров, информацион15 ный вход и выход которого являются информационным входом и выходом устройства, два реверсивных счетчика, мультиплексор и блок управления, соответствующие выходы которого соединены с суммирующими и вы20 читающими входами первого и второго реверсивных счетчиков и с управляющим входом мультиплексора, о т л и ч а ю щ е е с я тем, что, с целью повышения производительности вычислений за счет сокращения числа обраще25 ний в оперативную память, в него введены первый и второй формирователи адреса, выходы которых соединены с г)ервым и вторым адресными входами блока регистров, выходы первого и второго реверсивных
30 счетчиков соединены с первым и вторым информационными входами мультиплексора, выход которого соединен с первыми информационными входами первого и второго формирователей адреса, .вторые информа35 ционные входы которых соединены с входом смещения адреса устройства.
1737456
<х+(с- Ва)х(и+4) = цс3д х- "у4+ «+
4Р
17ЙВлу обр щвюй
Ф лкмялъ 4
Составитель А. Ушаков
Редактор Л, Пчолинская Техред M,Ìîðãåíòàë Корректор T. Малец
Заказ 1893 Тираж Подписное
ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР
113035, Москва, Ж-35, Раушская наб„4/5
Производственно-издательский комбинат "Патент", г. Ужгород, yn,Гагарина, 101