SU437074A1 - Устройство управлени цифровой вычислительной машины - Google Patents

Устройство управлени цифровой вычислительной машины

Info

Publication number
SU437074A1
SU437074A1 SU1657941A SU1657941A SU437074A1 SU 437074 A1 SU437074 A1 SU 437074A1 SU 1657941 A SU1657941 A SU 1657941A SU 1657941 A SU1657941 A SU 1657941A SU 437074 A1 SU437074 A1 SU 437074A1
Authority
SU
USSR - Soviet Union
Prior art keywords
program
block
register
automatic
cycle
Prior art date
Application number
SU1657941A
Other languages
English (en)
Other versions
SU437074A2 (ru
Inventor
Лев Яковлевич Карпман
Зиновий Львович Рабинович
Original Assignee
Институт Кибернетики Ан Усср
Filing date
Publication date
Application filed by Институт Кибернетики Ан Усср filed Critical Институт Кибернетики Ан Усср
Priority to SU1657941A priority Critical patent/SU437074A2/ru
Priority claimed from SU1657941A external-priority patent/SU437074A2/ru
Application granted granted Critical
Publication of SU437074A1 publication Critical patent/SU437074A1/ru
Publication of SU437074A2 publication Critical patent/SU437074A2/ru

Links

Description

1
Изобретение относитс  к вычислительной технике и может быть применено в устройствах управлени  цифровых вычислительных машин, способных интерпретировать алгоритмические  зыки.
Известное устройство управлени  по авт. св. № 209040 позвол ет интерпретировать алгоритмические  зыки типа АЛГОЛ-60, т. е. преобразовывать программы, записанные на этих  зыках в рабочие программы, представленные в символах машинного  зыка.
Однако интерпретаци  исходных программ проводитс  без учета критериев оптимальности , поэтому рабочие программы могут быть не оптимальны. Это снижает производителькость вычислительной системы, в которую входит данное устройство.
Цель изобретени  - создание устройства, способного выполн ть не только интерпретацию исходных программ, но и оптимизацию рабочих программ.
С этой целью в устройство управлени  по авт. св. № 209040 введен блок автоматической оптимизации программ, что повышает производительность вычислительной системы.
На фиг. 1 изображена блок-схема устройства управлени  цифровой вычислительной машины совместно с блоками оперативного запоминающего устройства; на фиг. 2-структурна  схема блока автоматической оптимиаации программ.
.
Блоки оперативного запоминаюш,его устройства 1 и долговременного запоминающего устройства 2 образуют оперативную и долговременную пам ть цифровой вычислительной машины.
Устройство управлени  состоит из блока 3 автоматного управлени , осуществл ющего реализацию алгоритмов интерпретации операторов внутреннего  зыка, регистра 4 текущего командного элемента программы, хран щего текущий анализируемый элемент программы , схемы 5 приоритета выполнени  элементов программы, осуществл ющей динамический анализ выполнимости элементов программы , регистра режима 6, в котором содержитс  признак режима, командного блока 7, осуществл ющего микропрограммную реализацию алгоритмов интерпретации операторов внутреннего  зыка, адресного регистра 8, предназначенного дл  задани  адреса запоминаемых микропрограмм, блока 9 чтени  программы , служащего дл  чтени  и выделени  элементов рабочей программы, регистров 10- 12 стековой пам ти, совместно образующих верхнюю оперативную ступень стековой пам ти , блока 13 динамического хранени  содержимого оперативных  чеек устройства, предназначенного дл  динамического хранени  содержимого запоминаемых регистров, блока 14, в который входит группа индекс-регистров , счетчиков и сумматор устройства
управлени  цифровой вычислительной машины .
Предусмотрены также логический блок 15 вычислени  булевских функций, регистр 16 следующего элемента программы, предназначенный дл  хранени  следующего, по отношению к текущему, элемента программы, блок 17 динамической адресации, осуществл ющий обращение к оперативной пам ти по математическому адресу, и блок 18 автоматической оптимизации программ, предназначенный дл  автоматической оптимизации рабочих программ .
Блок 3 автоматного управлени  соединен с регистром 4 текущего командного элемента программы, схемой 5 приоритета выполнени  элементов программы, регистром режима б, командным блоком 7 и адресным регистром 8.
Командный блок 7 соединен с общей кодовой шиной числа и с адресным регистром 8. С общей кодовой щиной числа соединены также регистр 4 текущего командного элемента программы, регистр режима 6, блок чтени  программы 9, оперативные регистры стековой пам ти 10-12, блок 13 динамического хранени  содержимого оперативных  чеек устройства , блок 14, логический блок 15 вычислени  булевских функций и регистр 16 следующего элемента программы.
Командный блок 7, блок чтени  программы 9, блок 17 динамического хранени  содержимого оперативных  чеек устройства, а также адресные регистры оперативного запоминающего устройства. 1 и долговременного запоминающего устройства 2 соединены с общей кодовой шиной адреса.
Кроме того, между некоторыми регистрами имеетс  непосредственна  св зь. В частности, регистр 16 следующего элемента программы соединен с регистром 4 текущего командного элемента программы, схемой ириоретата выполиени  элементов программы 5 и блоком 9 чтени  Программы; регистр 4 текущего командного элемента программы - С адресным -регистром 8 и оперативным регистром 12 стековой пам ти; регистр режима 6 - С схемой 5 приоритета выполнени  элементов программы; адресный регистр 8 - с командным блоком 7.
Кроме того, устройство соде,ржит блок 18 автоматической оптимизации программ, который состоит из регистра 19 номера пол , осуществл ющего задание номера пол  размещени  программного элемента в  чейке пам ти , регистра 20 формировани , шредназначениого дл  по чеечного формировани  программы , триггера режима 21, задающего режим работы блока автоматической оптимизации программ, И автономного автомата управлени  22, управл ющего работой блока автоматической оптимизации программ.
Регистр 19 номера пол , регистр формировани  20, триггер режима 21 соединены с общей кодовой шиной числа через выход 23, автономный автомат 22 управлени  соединен
с блоком 3 автоматного управлени  по ВХОду 24 и выходу 25 и с блоко м 14 - по выходу 26 блоков автоматической оптимизации программ .
Устройство управлени  работает следующим образом. Чтение и выделение элементов рабочей программы выполн етс  блоком 9 чтени  программы. Очередной командный элемент прогр:аммы, состо щий в случае  зыка АЛГОЛ-60 из кода ограничител  и признака операнда, принимаетс  из блока чтени  программы на регистр 16 следующего элемента программы.
Выполнение (интерпретаци ) командных элементов программы осуществл етс  IB соответствии с приоритетом их выполнимости, провер емым схемой приоритета выполнени  элементов программы. Выполн емый командный элемент программы помещаетс  на регистр 4 текущего командного элемента програ.ммы.
Если командный элемент программы не может быть выполнен, то его операнд переписываетс  на регистры стековой пам ти 10-12, образующие верхнюю оперативную ступень стековой пам ти.
В зависимости от интенсивности использовани  алгоритмы интерпретации реализуютс  либо в автомате управлени  3, либо в командном блоке 7 в виде запоминаемых микропрограмм . Дл  выполнени  микропролрамма вызываетс  по адресу в адресном регистре 8, адрес в который либо пересылаетс  из регистра 4 текущего командного элемента программы , либо устанавливаетс  блоком 3 автоматного управлени .
Командным блоком 7 реализуетс  система команд, котора  имеет адресную структуру и обеспечивает запуск и управление операци ми над содержимым регистров устройства управлени  цифровой вычислительной машины и  чеек оперативной пам ти, выполн емых средствами устройства управлени  цифровой вычислительной машины.
Способ интерпретации командного элемента программы зависит от вида синтаксического пон ти   зыка, которому этот элемент принадлежит . Признак текущего интерпретируемого пон ти   зыка фиксируетс  в регистре режимов 6.
Устройство управлени  цифровой вычислительной машины располагает своим сумматором , используемым дл  модификации адресов, и ограниченной группой счетчиков и регистров , содержащихс  в блоке 14.
Широкое Использование стандартных  чеек оперативной пам ти в качестве регистров хранени  обеспечиваетс  применением в предлагаемом устройстве блока 13 динамического храиени  содержимого оперативных  чеек устройства. Адрес требуемой  чейки, прин тый с кодовой шины адреса в блок 13 динамического хранени  содержимого оперативных  чеек устройства, сравниваетс  с адресами  чеек, содержимое которых хранитс  в этом 5 же блоке. При совпадении адресов требуемый
код .выдаетс  из выбранного регистра этого блока «а .кодовую ишну числа. Если среди адресов iB этом блоке нет адреса и.скомой  чейки , содержимое одного из регистров этого блока 1пербнисы ваетс  в соответствующую  чейку пам ти, а иа его .место вызываетс  содержимое требуе-мой  чейки. В результате указанной динамической замены в регистрах блока 13 сохраи. етс  содержимое  чеек, которые используютс  наиболее активно.
Дл  вычислени  переключательных функций , в том числе и от леремениых .выходных сигналов схем устройства управлени , в его состав «веден логический блок 15 вычислени  булевс1ких функций.
Обращение к блоку 1 онеративной пам ти может выполн тьс  как непосредственно по физическому адресу, так и через блок 17 динамической адресации .по математическому адресу. В последнем случае требуемый сегмент информации, если о.н отсутствует в оперативной пам ти, вызываетс  IB нее из внешней па:м ти.
О.птимиза.ци  рабочей программы непосредственно в процессе счета задачи осуществл етс  в Предлагаемом устройстве блоком 18 автоматической оптимизации программы.
Активизаци  работы данного блока блоком 3 автоматного управлени  происходит вс кий раз при входе в .процессе интерпретации (режим интерпретации) в цикл, она:бженный цризнако.м неоптимального цикла. В режиме отладки программы, ,неза;висимо от признака цикла, передача управлени  блоку 18 автоматической оптимизации программ лроисходить не будет.
Формальным признаком оптимального или неоптимального цикла ъ рабочей программе задачи могут служить сами операторы цикла for - дл  неоптимального (исходного) цикла и simple for - дл  оптимального (оптимизированного ) цикла.
В результате работы блока автоматической оптимизации программ 18 последовательно будут выполнены следующими действи ми:
формирова.ние оптимизированной программы цикла, в которой все операторы «for заменены на «simple
занесение сформированной оптимизированной программы цикла на место исходной программы цикла в общей программе задачи;
возможна  выдача пропраммисту информации о выполненных в программе преобразовани х .
По завершении работы блока 18 автоматической оптимизации программ будет возобновлена интерпретаци  вновь сформированной программы цикла. Повторна  активиза.ци  работы данного блока уже не последует вследствие наличи  признака оптимальности цикла - оператор «simple for.
Очередна  встреча неоптимального цикла в программе вновь вызовет прерывание режима интерпретации и вход в режим оптимизации и т. д.
Формируема  блоком автоматической оптимизации программ оптимизированна  програм ма цикла отличаетс  от своего прообраза- исходной программы цикла следующим:
а.инвариантные арифметические подвыражени  (выражени ) вычисл ютс  и полностью исключаютс  из записи всей рабочей программы задачи. В последней в виде констант сохран ютс  лишь результаты вычислени  удал емых подвыражений (выражений);
б.инвариантные булевские подвыражени  вычисл ютс  и полностью исключаютс  из записи всей рабочей программы за.дачи. При этом из рабочей программы может быть полностью исключен булевский терм (выражение ), если вход щее в него инвариантное подвыражение равно 0/1/;
б. програм.мные записи индексных выражений (помимо выполнени  в них действий в соответствии с п. а) вынос тс  в рабочей программе задачи за пределы циклов, по отнощению к которым эти выражени  инварианттны . Внутри циклов эти выражени  представл ютс  фиктивными переменными;
г.условные операторы, содержащие инвариантное булевское выражение, в зависимое ги от значени  выражени  и типа оператора, либо полностью исключаютс  из рабочей программы задачи, либо замен ютс  соответствующими безусловными операторами;
д.естественна  (скобочна ) запись арифметических и булевских выражений в исходной програ.мме цикла преобразуетс  в оптимизированной программе цикла в запись также формульного вида, расположение элементов которой в больщинстве случаев соответствует последовательности их (элементов) выполнени , что позвол ет ускорить процесс решени . Исключение составл ют лишь случаи скобочной записи теремов, соседних .в записи исходного выражени .
Информаци , выдаваема  программисту блоком автоматической оптимизации программ , содержит исходную програм.му циклов; оптимизированную программу цикла; программные записи исключенных из цикла ариф.метических и булевских .выражений (подвыражений ), условных операторов, а также вынесенных из цикла индексных выражений.
Блок 18 автоматической оптимизации программ работает следующим образом (см. фиг. 2). Управление работой рассматриваемого блока осуществл етс  с помощью автономного автомата управлени  22, сигнал запуска которого по входу 24 поступает из блока 3 автоматного упра.влени .
Триггер режима 21 хранит признак текущего режима работы (счет или отладка) и, в случае режима отладки, блокирует передачу управлени  блоку 18 автоматической оптимизации программ блоком 3 автоматного управлени .
В свою очередь, автономный автомат управлени  22 1ПО выходу 25 пер&дает управление блоку 3 автоматного управлени  либо
временно с последующим возвратом - в процеосе оптимизации, либо посто нно - по окончании ее.
Временна  передача управлени  блоку автоматного управлени  3 происходит в случае необходимости выполнени  в процессе оптимизации функций, св занных с интерпретацией програм.мы. Сюда входит чтение и выделение элементов рабочей программы, а также выполнение командных элементов, которые содержатс  в исключаемых из цикла арифметических и булевских подвыражени х (выражени х ) .
В лроцесе обработки нрограм1мы цикла с помощью регистра формировани  20 в блоке 1 оперативной пам ти осуществл етс  форМИрование двух массивов программных за-писсй- оптимизированной программы цикла п фрагментов исходной программы цикла, исключенных из нее нли вынесенных в программе за пределы цикла в результате оптимизации.
Регистр 20 формировани  разбит на отдельные пол , каждое длиной в байт, с возможностью независимого обращени  к ним. Формируемые в регистре 20 фор1мировани  программные записи поступают в него по входу 23 через кодовую шину числа из регистра 4 текущего командного элемента и блока 9 чтени  прорра.ммы (см. фиг. I).
Задание текущего номера пол  формируемой в регистре 20 формировани  записи массива осуществл етс  с помощью регистра 19 номера пол .
Регистр 19 номера нол  и регистр 20 формировани   вл ютс  оперативными регистрами . Их содержимое хранитс  в оперативной пам ти вместе с соответствующими массивами и вызываетс  в эти регистры по мере необходимости .
Текущие границы массивов фиксируютс  по выходу 26 с помощью двух счетчиков из группы счетчиков и регистров блока 14.
Фрагменты арифметических (булевских) выражений, исключаемых из исходной программы цикла, содержат в себе .величины, инвариантные по отношению к охватывающему их циклу.
Дл  вы влени  таких величин нроверке на инвариантность должны быть подвергнуты все компоненты арифметических (булевских) выражений , содержащихс  в исходной программе цикла.
Применительно к булевским выражени м така  проверка может быть нрервана при обнаружении в булевском терме (выражении) инвариантного подвыражени , равного О /1/. В этом случае исключению из цикла подлежит весь булевский терм (выражение).
Анализируем.а  переменна  будет причислена к категории зависимых от цикла величиьг, если в теле цикла ей приоваиваетс  какоелибо выражение, содержащее в своем составе параметр цикла, ту же самую неременную (пр мо или косвенно) или другую зависимую
от цикла -величину. В противном случае нередменна  инвариантна (по отношению к охватывающему ее циклу.
С помощью регистра 20 формировани  в блоке 1 оперативной пам ти формируетс  служебный массив, содержащий описок величин , которьш в теле цикла присваиваютс  какие-либо выражени , и адресов начала записи этих выражений IB исходной (рабочей) програММе .
Каждый элемент массива разбит на три информационных пол , формируемый слул ебный массив запоминаетс  в блоке 1 оперативной пам ти. Текуща  граница массива фиксируетс  по выходу 26 с помощью счетчика и регистров блока 14.
Проверка на инвариан-гаость состоит в сравнении адреса каждой компоненты выражени  с содержимым пол  величин присваивани  элементов служебного иматевва (первое инфармационное поле).
Адрес текущей компоненты заноситс  IB адресный регистр 8 из регистра текущего командного элемента программы 4, а элементы служебного массива последовательно выбираютс  из блока 1 оперативной пам ти в регистр 20 формировани  через кодовую шину числа.
Сравнение осуществл етс  с помощью сумматора устройства управлени  цифровой вычислительной машины, содержащегос  в блоке 14. При обнаружении данной компоненты на поле величин присваивани  какого-либо элемента служебного массива выражение,присваиваемое ей (адрес начала записи его в программе содержитс  на втором информационном поле этого же элемента матеива), провер етс  на выполнение в нем одного из упом нутых условий зависимости переменной от цикла.
Этот процесс может пoвтQpитьc  многократно , если величине, вход щей в присваиваемое Еырал ение, в свою очередь, также присваиваетс  KaiKoe-либо другое выражение.
Дл  ускорени  цикла обращени  к служебному массиву, в случае повторного обращени  к нему по одной и той же переменной, в структуре элементов массива предусматриваетс  наличие отдельных разр довнпризнаков, хран щих результат предыдущей проверки (третье информационное поле).
Использование блоком 18 автоматической оптимизации программ некоторых оперативных регистров, счетчиков и сумматора устpoficTBa управлени  цифровой вычислительной машины представл етс  возможным благодар  тому, что в режиме оптимизации они оказываютс  свободными от выполнени  своих основных функций, обусловленных режимом интерпретации.
В свою очередь, регистры |блока автоматической оптимизации программ также могут быть оперативно использованы в режиме интерпретации .
Предмет изобретени 

Claims (2)

1. Устройство управлени  цифровой вычислительной машины по авт. св. № 209040, о тличающеес  тем, что, с целью увеличени  производительности, -в него введен блок автоматической оптимизации иропрамм, первый выход которого соединен с блоком perHCTpOiB, второй выход соединен с входом блока автоматного у1пра1влени , третий выход - с кодовой шиной устройства, а вход 1блока автоматической оптимизации программ соединен с выходом блока автоматного управлени .
2. Устройство управлени  по п. 1, отличающеес  тем, что блок автоматической оптимизации программ содержит регистр номера пол , (регистр формировани , триггер режима и автономный а1втомат управлени , причем выходы автономного автомата управлени  соединены с первым и вторым выходом, регистр номера пол , регистр формировани  и триггер режима соединены с третьим выходом блока, а вход автономного автомата управлени  соединен с входом блока.
SU1657941A 1971-05-12 1971-05-12 Устройство управления цифровой вычислительной машины SU437074A2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU1657941A SU437074A2 (ru) 1971-05-12 1971-05-12 Устройство управления цифровой вычислительной машины

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU1657941A SU437074A2 (ru) 1971-05-12 1971-05-12 Устройство управления цифровой вычислительной машины

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
SU209040 Addition

Publications (2)

Publication Number Publication Date
SU437074A1 true SU437074A1 (ru) 1974-07-25
SU437074A2 SU437074A2 (ru) 1974-07-25

Family

ID=20475623

Family Applications (1)

Application Number Title Priority Date Filing Date
SU1657941A SU437074A2 (ru) 1971-05-12 1971-05-12 Устройство управления цифровой вычислительной машины

Country Status (1)

Country Link
SU (1) SU437074A2 (ru)

Similar Documents

Publication Publication Date Title
US5881288A (en) Debugging information generation system
KR910001447B1 (ko) 가상계산기능 시스템용 주기억장치 억세스 제어시스템
US3200379A (en) Digital computer
US3510847A (en) Address manipulation circuitry for a digital computer
US3302183A (en) Micro-program digital computer
US3470540A (en) Multiprocessing computer system with special instruction sequencing
GB1104975A (en) Compiling system
US3496550A (en) Digital processor with variable field length operands using a first and second memory stack
US4047245A (en) Indirect memory addressing
EP0062658A4 (en) STACK STORAGE FOR A DATA PROCESSING SYSTEM.
US3344404A (en) Multiple mode data processing system controlled by information bits or special characters
GB1003921A (en) Computer cycling and control system
SU437074A1 (ru) Устройство управлени цифровой вычислительной машины
EP0817049B1 (en) A program development system
JPS5987566A (ja) メモリアクセス検出方式
RU2066067C1 (ru) Центральный процессор для многопроцессорной вычислительной системы
US3143644A (en) Control apparatus for digital computers
SU742942A1 (ru) Устройство дл обработки информации
CN118509159B (zh) 一种基于即时编译的智能合约加速执行方法和装置
SU987624A1 (ru) Устройство дл модификации адресов при отладке программ
RU2818498C1 (ru) Способ распределения данных по многофункциональным блокам процессора со сверхдлинной командной строкой
SU741269A1 (ru) Микропрограммный процессор
Chaflekar et al. Compiler Architecture and Design Issues
Hansen et al. The Cobol compiler for the Siemens 3003
SU607222A1 (ru) Процессор