Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Журавлев, Ю. П. Системное проектирование управляющих ЦВМ

.pdf
Скачиваний:
15
Добавлен:
22.10.2023
Размер:
12.85 Mб
Скачать

тельных и базовых, когда база может быть либо посто­

янной, либо переменной.

 

 

 

 

 

 

Пусть для

определенности:

 

 

 

 

 

 

w=(m, п ),

\w\=k,

Л = 1,

б = {0, 1},

 

тогда

 

m = CiC2

. . . C k ,

 

ri = B i B 2, . .

В к-,

 

 

 

 

 

 

 

 

 

 

 

 

 

С /=

f*

C/f,

С =

*кои~'

 

 

 

 

 

 

Ciy2^\

 

 

 

 

 

/=0

 

 

/=О

 

 

 

 

 

 

 

«а—1

 

/?а—1

 

 

 

 

 

Вг =

Г

Ьц-

В =

£

 

 

 

 

 

 

 

/=0

 

 

/=0

 

 

 

 

Для этого

случая

отображения Z7 и У

можно описать

следующим образом:

 

 

 

 

 

 

 

а)

£= Л р, р, G

|—т —>j3, — простая

перекоди-

 

 

 

 

 

 

 

 

fo

 

 

 

ровка всей цепочки кодов операций;

 

 

 

 

б)

£= J

, Ti G М ) |—m -*■у, причем

 

 

 

 

 

 

 

 

 

 

То

 

 

 

 

 

 

 

? 0 ( т ) =

<Ро ( C l )

( Q - ? o

(c fe)-

 

где

?o(CV)£=Al— простая

перекодировка

каждого кода

операции, входящего в цепочку т ;

 

 

 

 

в)

JT в, 0! £ .Mg) [—m

►в,,

 

 

 

причем

 

 

 

 

 

 

Фо

 

 

 

 

 

 

 

 

 

 

 

 

 

Фо (т ) =

'f’o {Си Сс) фо (С2, С\)... ф0 (Ск, С/г_,),

ф0 (Сг-, Сг_,) =

 

 

 

 

 

= Сг- — Q .j = 7)г-;

 

 

 

 

Г)

 

j, /2 0 A^j) |—ti — /2,

 

 

 

причем

 

 

 

 

«i

 

 

 

 

 

 

 

 

 

 

 

 

Ы я ) = 8j(BuMo) gj(B2> Bi)>g}(B *>B 2)---gj(Bh, в к. г),

 

 

 

 

gj {Ви Вг - ,) = Д- — B i _ i = Ьг,

 

 

 

 

/ = Р.т.в;

г э = /; я 7= т ; Яо = Ф-

 

 

В грамматике

Gx

на выполнимость отображений в)

и г) наложены ограничения,

оговоренные в §§ 2.3, 2.5,

а

именно:

эти отображения

осуществляются,

если для

100

рассматриваемого случая выполняются дополнительные условия:

1)

если glog28 * < -§ 4

 

 

f

 

 

к

 

2)

|—п —<• у2,

если

g log, 6г- < .

~~

;

 

v

 

'

к

 

3)

|—/г —►62,

если

Щlog, 8г- <

^° + Д» — kR4 .

 

Ф

 

k

 

4)

|- m — Q1(

если

g log, тр<

Ru ,

 

Фо

 

 

 

 

где g (x)— целая часть отх , округленного с избытком до единицы младшего разряда, R„,RU— соответственно раз­

рядности относительных кодов операций и относитель­ ных адресов.

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

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

§2.8. ДЕШ ИФРИРУЮЩИЕ ГРАММАТИКИ

ИИХ СВОЙСТВА

Определение. Д е ш и ф р и р у ю щ е й

г р а м м а т и к о й

Gs называется упорядоченная четверка

 

 

Gs= (Л£г,

Ps, о),

 

где jy/г— конечный

алфавит

входных

символов; ^Ji—

конечный алфавит

выходных

символов; P s — система

правил

подстановки; о — начальный символ.

Рассмотрим класс дешифрирующих грамматик, для

которых:

 

 

 

a)

P s = { ано | а £ ^ 2)

 

 

п р и ч е м

е с л и сц— и о ь ссг— н о г , сц = а2,

т о Wi = Wz; е с л и

 

в п р а в и л е a — н о , т о a e ^ J i D - S z .

101

6) o e ^ * 2.

Лемма 2.3. ф (Д*) = # Q£a) *

Лемма 2.4. Дешифрирующая грамматика Gs является определенной.

Интересующая нас дешифрирующая грамматика является левосторонней и представляет собой объедине­ ние нескольких более частных дешифрирующих грамма­ тик. Рассмотрим эти грамматики.

Д е ш и ф р и р у ю щ а я г р а м м а т и к а Gsl есть упо­ рядоченная шестерка

Gsl = ( ^ , v , P sl, f~] , f \ у),

где Ер — алфавит входных символов; Е, — алфавит выход­

ных символов; Psi — система правил

подстановок; /~1о,

f- ■система ограничении на правила

подстановок; у-

начальный символ (входное слово),

 

 

для

которой справедливы

следующие утверждения:

1)

если P GS , —

то р =

ф ,ф 2);

р, £= М -

[32G A

если pGEjjDE,, т0 Р =

и= (Р*. v);

v £

jV;

2)

если

то f =

p= (p., v); p -G ^ l v G A ;

3)= : (р. — тtn\ р2 —- - п |-рР —- ш | Р1

гл

re>G U ф 5 |гв>[<£; да (m, /г); т G Дф /i G А Р

(к)

=(Р., №

4):М?- Го—-отображение множества М, на

множество 'ЛР,

f ' 1: N

Р

А'р — отображение множества N на множе-

ство Д' ;

 

5)

 

Таким

образом, дешифрирующая грамматика Gsi

представляет собой инструмент, с помощью которого про­ грамма, состоящая из команд основного и первого до­ полнительного списков, может быть переведена в терми­ ны языка L(Gi).

Д е ш и ф р и р у ю щ а я г р а м м а т и к а Gs2 есть упо­ рядоченная шестерка

GS2=,(V v , P S2, у - 1

102

для которой выполняются условия:

1)

если

t G

S j -

S l

т о

Т = ( у „

y s); T i G M , ; т 2е ^ т ;

если Т G 2, П

то y =

о =

(р, v);

р G ЛГ; v £ А;

2)

если

 

П

 

то и= -[ =

(^, v);

з)

-pS2 =

(T .-,« ;

T

 

 

 

 

Ч>0

 

 

W 2 .14 ! w \<k\ w = (m,

n)\ /я$=А’т ; /IGA т

j];

4 ) cp~1:

M —*Af — отображение множества

M

множество

Л/ ;

 

 

ф- ’: Л^—►Л'7— отображение

множества ЛГ

на мно­

жество jy ;

 

 

 

£5)

 

 

 

Дешифрирующая грамматика Gs2 позволяет перево­ дить программу, составленную из команд основного и второго дополнительных списков, в термины языка L(Gi).

Д е ш и ф р и р у ю щ а я

г р а м м а т и к а GsS есть упо­

рядоченная шестерка

 

G« = (2е. s „

р - 1 > г ■*, У).

где

 

1)если 0GSe- S „ то б = (01. бг); 0iGzAf6;

 

если

 

 

то 0 = 6

== (^>

v);

2)

если

 

 

то о = 0 =

Ф>

v);

3)

 

 

 

4 а Т <3>

-Ш |

 

 

Рш3 == /0 1—►m; 0,-

1

 

0£=ф

 

 

1

Фо 1

4Г1

 

 

 

 

 

 

 

 

 

 

да

1

 

w = (m, п);

 

л& Л 'Л ;

 

 

 

 

 

(

4)

<р~!:Л1в—:- Я :в— отображение множества Мв на

множество

К':'-

 

 

 

 

 

Г 1: К

•А'

■отображение

множества N. на мно­

жество Л 9;

 

 

 

 

 

 

5) У & \ .

Дешифрирующая грамматика Gs3 переводит в терми­ ны языка L(Gi) программу у, состоящую только из команд основного и третьего дополнительного списков.

1 0 3

Д е ш и ф р и р у ю щ а я

г р а м м а т и к а

Gs есть упо­

рядоченная шестерка

 

 

причем

G. = (S„,

Ps, F ~ \ Г ~ \

у),

 

 

 

1)

=

 

 

2) (S? - SOfKS, - S ,)= (2 ?- 2.) n ( 2 - £ , ) = = ( S T- S 1) n ( 2 e- S 1) = 0 ,

3)# ( Л ) = # ( 2 У),

4)

t ; 1},

5) r - l = {f - \

r 1},

6)P, = PS1U ^ U ^ .

7)i/G ^V

Таким образом, дешифрирующая грамматика Gs по­ зволяет переводить в термины языка L(G\) входную программу у, составленную в терминах языка L(G2). Можно доказать, что этот перевод осуществляется един­

ственным образом,

т. е. каждому y ^ L ( G 2) ставится

в однозначное соответствие x ^L (G i) . Это объясняется

тем, что отображения

F~l и 9Г~1 в грамматике Gs вы­

полнимы всегда, поскольку входное слово у порождает­ ся грамматикой Gx с учетом ограничений, налагаемых на выполнимость отображений F и 9^.

Отображения F ' 1 и 9Г~1

 

представляют

собой зер­

кальное отражение отображений F и 9Г.

 

а)

Если (3, —>/п (—

 

 

т&Р^),

то

— простая

перекодировка

fo1

 

 

кода

цепочки |3j операций

обобщенного

 

в последовательность

полноразрядных

кодов

элементар­

ных операций, входящих в эту цепочку.

 

б)

Если

 

 

 

 

 

 

 

 

 

Yi * t

n (YjiG ^ , i

 

 

 

 

 

w

 

 

 

 

 

 

причем

 

 

 

 

 

 

 

 

 

Yi ~

...с

\

С \г

J M

\

 

тогда

 

 

 

 

w

0

 

 

 

 

 

 

 

 

 

 

 

т; 1(Yi)=

f; 1(c.)<?-' (c2)

 

 

(cfc)= c,c?... ch;

 

 

 

C i

S

M

 

,

 

104

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

в)

Если

 

 

 

 

01 -р m Ь-

 

пг^1Л/е),

 

Фо

 

 

 

причем

 

 

 

 

то

 

Si — ''Из ••• %»

 

 

 

 

 

^ ( ъ ,

С о)<Р~' (ъ ,

(-qu,

=

С ,С 2 ... Cft =

/п;

(%■, Cj_,) — С у . ! -(- Т\г = С г,

т. е. цепочка 0i относительных кодов операций г)г пре­ образуется в цепочку полноразрядных кодов операций т с помощью переменной базы. Для случаев постоянной базы отображение имеет вид:

<J;7 I(e> )= t7 '(li.

Co) = m.

Сс) = С04-7]г= С г-.

r)

Если

 

 

 

 

 

 

 

/ 2~*п h~ (iz&Nj, п££Л j),

 

где

/= р ,

т,

0; ^ =

<7г = (г 1;

/* =

= S1S2... 8ft,

то

ЯзИ2) — <7j (0ц

° ^ с ) (^2 » ^i) •• • Яз (0ft,

^ft-i)>

 

 

 

Яз (Si, Д -i) =

fit-1 “f" 0г—

 

для случаев формирования исполнительных адресов из относительных с переменной базой и

Яз(/а)= Яз (01, ^о) Яд(^2 > ) ...<7j(0ft> *^о)

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

Конечный преобразователь, однозначным образом пе­ реводящий входное слово г/ в алфавите S v в выходное слово х в алфавите ЛД на основе системы правил де­ шифрирующей грамматики Gs, существенно проще ко­ нечного преобразователя, описанного в предыдущем па­ раграфе. Таким конечным преобразователем является устройство управления некоторой ЦВМ, на вход которого поступают команды основного, первого, второго и третье-

105

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

Пример такого конечного преобразователя подробно рассмотрен в третьей главе.

§ 2.9. АЛГОРИТМ СЖАТИЯ ПРОГРАММ

Как уже указывалось в § 2.7, существует конечный преобразователь, позволяющий каждому выражению

языка L(Gl)

ставить

в однозначное соответствие

фразу

в терминах языка L(G2) с учетом ограничений, оговорен­

ных в §§ 2.3,

2.5, 2.7.

Такой преобразователь

можно

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

работу конечного преобразователя

модель

называется

а л г о р и т м о м с ж а т и я п р о г р а м м .

 

Пусть конечный преобразователь

 

 

D — (K,

h, U,

Ц)

задан.

Задание входного

алфавита

однозначно опре­

деляет:

 

 

 

 

основной список операций,

адресность команд основного списка,

разрядности кодов операций, кодов адресов и ко­

дов команд основного списка, т. е.

основной формат

команд.

однознач­

Задание части выходного алфавита

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

Задание части выходного алфавита 2 — JS, однозначно

определяет набор М0 операций основного списка с усе1С6

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

Задание части выходного алфавита 2„—2i однознач­

но определяет множество допустимых форматов команд третьего дополнительного списка и распределение раз­ рядностей относительных кодов операций и относитель­ ных адресов но всем видам фрагментов.

Как уже указывалось в § 2.7,

s v = r pUSTU 4 -

Таким образом, задание алфавита 2,, определяет все допустимые на входе преобразователи цепочки в алфави­ те 2i.

Пусть каждой допустимой длине цепочки ставится в соответствие некоторое внутреннее состояние преобра­ зователя. Тогда функция переходов допускает на вход преобразователя цепочку вполне определенной длины в зависимости от текущего внутреннего состояния и пе­ реводит преобразователь в новое состояние. Функция выводов сопоставляет входной цепочке символ из алфа­ вита 2,/ только в том случае, если соответствующая под­ становка wу-a в грамматике Gx выполнима с учетом ограничений на разрядности относительных адресов и относительных кодов операций, где это нужно.

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

щей две ленты— входную и

в ы х о д н у ю ,

движущиеся

справа налево, и читающую

головку. На

первой ленте

в алфавите 2 f записано входное слово х.

На выходную

ленту заносятся символы выходного слова у в алфавите 2,;. С каждым занесением очередного символа выходная лента сдвигается влево на один шаг. Читающая головка снабжена просмотровым объективом с переменным по­ лем зрения и способна читать часть входного слова. Угол поля зрения читающей головки зависит от ее внут­ реннего состояния.

Работа такой машины Тьюринга происходит следую­ щим образом. Вначале поле зрения читающей головки

107

настраивается на чтение цепочки максимальной допусти­ мой длины и под читающую головку вводится начальная цепочка да входного слова. Если в грамматике Gx пере­ кодировка да— их выполнима, то на выходную ленту за­ носится символ а. Выходная лента сдвигается влево на один шаг, а входная — на k —\w\ шагов. Читающая го­ ловка вновь настраивается на чтение цепочки максималь­ ной допустимой длины. Если перекодировка да— не­ выполнима, то обе ленты остаются неподвижными, маши­ на переходит в новое состояние, причем угол поля зрения читающей головки уменьшается таким образом, что в поле зрения просмотрового объектива попадает левая подцепочка да, цепочки да со следующей в порядке

убывания допустимой

длиной. Если

перекодировка

да,— их, выполнима, то

на выходную

ленту заносится

символ оо, обе ленты сдвигаются, причем входная лента сдвигается на величину r = |да,| шагов, и читающая го­ ловка вновь настраивается на чтение цепочки макси­ мальной допустимой длины. Если же перекодировка да,— >-rxi невыполнима, то машина переходит в новое со­ стояние и читает левую подцепочку w% цепочки да, оче­ редной допустимой длины и т. д. Если в результате не­ скольких последовательных переходов из одного состоя­ ния в другое под читающей головкой окажется цепочка да,,, состоящая из одного символа, то осуществляется перекодировка да„-—нх„, на выходную ленту заносится символ an = w n , обе ленты сдвигаются на один шаг влево н машина переходит в начальное состояние. Чи­ тающая головка настраивается на чтение цепочки мак­ симальной допустимой длины. Конечное состояние маши­ ны совпадает с начальным, но в поле зрения читающей головки при этом находится пустая цепочка. Левое на­ правление движения обеих лент объясняется тем, что грамматика Gv— левосторонняя. Очередность перекоди­ ровок в грамматике Gx определяется, во-первых, длиной цепочки в порядке уменьшения ранга правила перекоди­ ровки и, во-вторых, для правил одинакового ранга — по­ рядком нумерации дополнительных списков команд.

Алгоритм сжатия программ был построен н испытан автором совместно с Александровым В. Д. в вычисли­ тельном центре Военной инженерной радиотехнической академии имени Л. А. Говорова в 1967 г. в предположе­ нии, что основной список команд совпадает с системой команд ЦВМ М-20. Одновременно на основе статйстиче-

108

ского исследования широкого класса задач общего на­ значения (приложение 1) были выбраны первый допол­ нительный список команд (табл. 7.5) и система форматов команд дополнительных списков (рис. 7.1). Цель по­ строения этого алгоритма заключалась в определении среднего процента сжимаемости задач широкого назна­ чения. Все исследуемые задачи обнаружили хорошую тенденцию к сжимаемости (табл. 6 приложения 1).

Повторно алгоритм сжатия программ был создан сов­ местно с Ломаревым С. И. для проверки предлагаемой в § 2.10 методики выбора внутреннего языка в интересах создания управляющей ЦВМ для некоторой конкретной АСУ. Результаты оказались положительными. Доказано, что программы управления объектами системы в услови­ ях использования принципов относительной адресации могут быть сжаты более чем на 50% при относительно небольшом усложнении устройства управления.

Если обозначить: М* — количество команд i-ro допол­ нительного формата в программе после ее «сжатия», /,•— длина цепочки последовательных операций команды <-го дополнительного формата, k — количество дополнитель­ ных форматов, М — количество команд основного форма­ та до сжатия исследуемой программы, то экономия па­ мяти после сжатия программы (в %) при фиксирован­ ных форматах дополнительного списка команд опреде­ ляется соотношением

£ м,-(/,-1)/м[®/„1. 1=1

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

Представляет интерес определить максимальную верхнюю границу экономии памяти при «плавающей» разрядности относительных адресов для фиксированных цепочек операций команд различных дополнительных форматов. Дополнительные исследования показывают, что использование «плавающей» разрядности относитель­ ных адресов позволяет увеличить экономию памяти по сравнению с фиксированной разрядностью последних на 20--30%, однако технически реализовать принцип трудно.

109

Соседние файлы в папке книги из ГПНТБ