Научная статья на тему 'Проектирование цифровых вычислительных устройств с применением нестандартного набора блоков'

Проектирование цифровых вычислительных устройств с применением нестандартного набора блоков Текст научной статьи по специальности «Математика»

CC BY
57
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Проектирование цифровых вычислительных устройств с применением нестандартного набора блоков»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА им. С. М. КИРОВА

Том 269

1976

ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ С ПРИМЕНЕНИЕМ НЕСТАНДАРТНОГО НАБОРА БЛОКОВ

Е. Ф. ЖИГАЛОВА, Т. Г. МАКСИМЕНКО

(Представлена научно-техническим семинаром кафедры автоматизированных систем

управления и лаборатории управления)

В настоящее время при решении задачи компоновки конструктивных элементов (модулей) вычислительного устройства в блоки наибольшее распространение получил способ «разрезания» схемы на блоки по критерию максимума внутриблочных соединений. Совокупность модулей, вошедших в один блок, в дальнейшем будем называть структурами, а набор блоков, полученный таким способом, нестандартным (ННБ). Очевидно, что модули структур связаны между собой функционально, но в общем случае структуры могут состоять из несвязных подструктур. Разрезание на блоки по названному критерию имеет свою положительную сторону в том, что получаемые блоки имеют достаточно высокий коэффициент заполнения Кг-

N — максимально возможное количество модулей в блоке, п — фактическое количество модулей в блоке. В то же время этот способ имеет недостаток, заключающийся в том, что совершенно не учитывается топология структур и каждая схема представляется своим набором структур. В результате такого подхода проектируемое устройство в некотором смысле становится «уникальным». Если при этом учесть тот факт, что повторное производство узлов вычислительных устройств обходится в несколько раз дешевле изготовления нового узла, то будет понятно желание, если не все, то часть блоков из набора, полученного от предыдущих разрезаний, использовать при кон- 1

струировании новых устройств.

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

Здравый смысл подсказывает, что вероятность использования всей структуры блока меньше вероятности использования ее части- Назовем коэффициентом использования блока величину Ки> равную

(1)

где

п — определена выше. Применение блоков с низким коэффициентом Ки приводит к увеличению числа блоков в структуре, что может существенно снизить экономический эф- Ли фект от применения данного набора блоков, а также привести к неоправданному увеличению габаритов устройства. На рис. 1 показана зависимость числа блоков Р в устройстве от величины коэффициента К . Крутизна этой характеристики для различных классов вычислительных устройств различна, поэто- Рис. 1 му нижняя, рациональная граница коэффициента Ки должна определяться в каждом конкретном случае. Таким образом, применяемость нестандартных . блоков лежит в диапазоне

Ки ^Ки

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

к;<кй<1, (о

у¡^Х\Р(х19 и, у,-}, (2)

где Ь= (х, и, р) —граф структуры блока;

V — часть графа Ь или граф подструктуры блока.

Условия (2), (3) соответственно означают, что используемая подструктура вместе со своими вершинами должна содержать и инцидентные им дуги; подструктура должна содержать вершины, соответствующие контактам входа и выхода разъема. Целесообразно данную задачу решать в два этапа. На первом, подготовительном, априорно формировать подструктуры, удовлетворяющие условиям (2), (3) и (1). На втором — решать задачу покрытия полученным набором структур (подструктур) схемы вычислительного устройства.

Алгоритм разбиения структур блоков на подструктуры

Разбиение на подструктуры можно производить путем последовательного исключения элементов из структуры с одновременной проверкой на выполнимость условий (2) и (3). Количество операций существенно сокращается, если структуру, представленную ориентированным графом, разбивать на подмножества конечных последовательностей элементов хи х2 ... для которых истинно ' высказывание: Р и, Х\) Р(хь иъ х2) ... Р (хк-\, ик, хк), где х0 и хк— вершины, соответствующие контактам входа и выхода разъема блока. Тогда задача разбиения на подструктуры сводится к отысканию всех маршрутов в графе с фиксированными началом и концом. Так как нас интересуют не вообще все маршруты, а лишь начинающиеся и заканчивающиеся в вершинах, соответствующих контактам разъема, и идущие в направлении ори-

ентации графа, то это позволяет упростить алгоритм, представленный в [1], следующим образом. «Усовершенствованная» матрица смежности Яи строится на основе матрицы смежности R данного графа Ь={х, и, р) с булевыми переменными и матрицы инциденций Я этого же графа над свободным полукольцом К с наложенными определяющими соотношениями:

л£ = 0; |в = |т=1.

Перемножая полученную матрицу Яи саму на себя I раз, где /шах равно диаметру графа, получим все маршруты длины I Здесь также можно сократить число операций, если считать нулевыми строки, соответствующие вершинам х^хь для которых истинно иначе говоря, это вершины, не соответствующие входным контактам разъема. Проиллюстрируем процесс разбиения на примере графа, не содержащего циклы, изображенного на рис. 2, а.

«Усовершенствованная» матрица смежности Яа данного графа имеет вид:

1 2 3 4 5 6 7 8

О м о 0 0 0 о

0 0 и20иь0 О о ООО и3 0000

00000 Ц4 оо 0 о о и6 О 0 0 и8 00000000 00 и, 00000 00000000

Пусть вершины [хи х7] соответствуют входным контактам разъ-выходным. Тогда в соответствии с из-

mkf

i)

Рис. 2

ема блока, а вершины [х6, х$] ложенным запишем матрицу Ru:

1 2 3 4 5 6 7 8

1 *:=

0 и, 000000 00 и7 00000

В результате перемножения матрицы Ra на Ru получаем матрицу Ru\ Матрица Rl2 = R*uiX#u и /?й/=Ли/_1ХЛй. Процесс перемножения закончится тогда, когда матрица Rh станет нулевой. Так, в данном примере имеем

1 2 3 4 5 6 7 8 0 0 0 u, и2 "з 0 0 0 ил иь и6

-г- их иь uQ щ u3 ик 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 О 0 0 0 0 щ и2 иг и4 О О

-f щ аь и& 00000000

Rua

1

R

lía-

te

Очевидно, что матрица R*Ué будет нулевой. Наличие слагаемых в элементах матрицы Rut говорит о наличии параллельных маршрутов. Итак, мы получили следующие маршруты, начинающиеся и заканчивающиеся соответственно в вершинах:

1 их 2 щ 3 «з 4 и4 6, (1)

1 «i 2 иь 5 щ 8, (2)

1 щ 2 ü5 5 wít 4 w4 6, (3)

7 щ 3 w3 4 w4 6. (4)

Легко убедиться, что эти маршруты удовлетворяют условиям (2) и (3). Анализ полученных маршрутов показывает, что маршруты (1) и (3) начинаются и заканчиваются в одних и тех же вершинах [х\, х?]. Это означает, что они не могут использоваться каждый в отдельности и являются составными частями одного «сложного» маршрута, проходящего по вершинам [1, 2, 3, 5, 4]. Отсюда следует, что подструктуры, соответствующие маршрутам, начинающимся и заканчивающимся в одних и тех вершинах, должны объединиться в одну. В соответствии с этим структура, изображенная данным графом, разбивается на три подструктуры, включающие следующие элементы:

1, 2, 3, 4, 5, 6, (1) 1, 2, 5, 8, (2)

7. 3, 4, 6. (3)

На практике известно, что схема вычислительного устройства, представленная в реальном базисе, содержит «специфические» соединения, связывающие некоторые совокупности элементов в неделимую группу. Примером таких связей могут служить модули, реализующие на входе конъюнкцию входных сигналов. Очевидно, что через вершину графа, соответствующую этому модулю, пройдет столько маршрутов, сколько переменных он объединяет. Однако подструктуры, соответствующие этим маршрутам, не могут работать автономно, так как это привело бы к существенному изменению алгоритма функционирования устройства. Можно сразу оговориться, что в некоторых случаях с целью расширения функциональных возможностей модулей можно разбивать также структуры по входам при условии, что электрическая схема соединений не будет нарушаться. Так, РТМ элементов ИС серии 155 допускает не использовать до двух входов, оставляя их свободными. В этом случае элемент типа ЛБ 551 может выполнять функцию элементов ЛБ 553 и ЛБ 554, а элемент ЛБ 554 — функцию элемента ЛБ 553. Поэтому при разбиении достаточно произвести перекодировку типов модулей. В остальных случаях для разбиения структур в сам алгоритм разбиения необходимо внести некоторые изменения. Так, зафиксировав вершины, соответствующие модулям, являющимся носителями специфических соединений, произвести разбиение в соответствии с описанным алгоритмом. Затем произвести «склеивание» маршрутов, содержащих фиксирование вершины. Рассмотрев алгоритм разбиения структур, графы которых не содержат циклы, перейдем к рассмотрению более сложного случая, когда граф содержит циклы. В качестве примера возмем граф, изображенный на рис. 2, б.

Пусть вершины [хи х7] соответствуют входным контактам разъема блока, а вершина [хъ] — выходному контакту. Вершины [х2, xñ, х4, х6]

входят в цикл Q. В соответствии с описанным алгоритмом разобьем дан-

ный граф на маршруты, приравнивая к нулю те слагаемые элементов матрицы Rut, в которых какой-либо сомножитель встречается более одного раза, исключая тем самым повторное прохождение по одному и тому же маршруту. Тогда получим следующие маршруты, начинающиеся в вершинах [xXi х7]:

1 й\ 2 «з 3 «4 4 и$ 5, (1)

1 их 2 иг 3 щ 4 и5 6 и2 2, (2)

7 и7 6 и2 2 и3 3 и4 4 и5 6, (3)

7 и7 6 и2 2 Uz 3 w4 4 Uq 6, (4)

где маршруты (2) и (4) не удовлетворяют условию (3) и маршруты (1) и (3) не удовлетворяют условию (2). Полученное множество маршрутов будет удовлетворять условиям (2 и (3), если каждый маршрут дополнить Соответственно дугами («6, «2), («5), (^е), («5), в результате чего получаем, что маршруты (1) и (2), (3) и (4) попарно совпадают, т. е. данный граф разбивается лишь на два маршрута, удовлетворяющих условиям (2), (3):

1 Ui 2 и3 3 и4 4 Ü5 5 и6 6, (1а)

7 щ 6 и2 2 щ 3 «4 4 «6 6 и5 5, (2а)

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

Рис. 3.

Вначале определить подмножество вершин и дуг, входящих в цикл С}, затем «стянуть» цикл <2, отождествив при этом все его вершины. В результате граф, содержащий цикл <2, превратится в граф без цикла. Проиллюстрируем эту процедуру на примере графа, изображенного на рис. 3, а, где вершины [хг, х4, х5, х6] и дуги [«3, «4, «6] составляют цикл С?. На рис. 3, б, представлен тот же граф после стягивания цикла. В соответствии с алгоритмом граф, изображенный на рис. 3, б, разбивается на маршруты:

2 и2 3' и7 7, (1)

1 иг 3' и7 7, (2)

удовлетворяющие условиям (2), (3). Теперь достаточно каждому маршруту вместо вершины 3х приписать сам цикл <3, тогда маршруты (1) и (2) будут иметь вид:

( 2 и2 (3 «з 5 «4 б а5 4 «6 3) щ 7, ( 1 щ (3 и3 5 щ 6 щ 4 и$ 3) щ 7.

(О (2)

Таким образом, задачи разбиения на подструктуры делятся на следующие основные этапы:

1) выделение контуров в графе;

2) разбиение на элементарные маршруты;

3) построение подструктур, удовлетворяющих условиям (2) и (3). В [4] описан алгоритм выделения контуров в ориентированном графе. Для реализации этого алгоритма в ЭВМ класса М 220 принята форма представления исходной информации в виде списка функциональных связей между элементами в блоке. Далее эта исходная информация программным путем, представляется двумерным массивом А

1:4] видаЛ (М1 ф^/ЛГу), где

Л1/, М^ —номера информационно связанных элементов, Ри — функция связи,

Ч? — фиктивный столбец для отметки контактов, N — число строк в массиве.

Рис. 4

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

а,' б изображены графы различной топологии. В соответствии с данным алгоритмом разбиения получаем, что граф (4, а) разбивается на маршруты: I— (1 их 3 и2 4 щ 8); II— (1 щ 3 и2 4 щ 7) III— (2 щ 5 щ 4 и4 8); IV— (2 «5 5 и6 4 7), где вершины [хи соответствуют контактам входа, а вершины [х7, х8] —выхода. Все маршруты графа (4, а) проходят через вершину л;4, т. е. все маршруты пересекаются. Граф, изображенный на рис. 4, б, разбивается на маршруты: 1 — (1 и\ 6 и2

7 щ 4 щ 5), II— (1 щ 6 и9 8 м4 9), III— (2 щ 3 и7 4 щ 5), IV— (10,

8 иь 9). Здесь маршруты III и IV не содержат ни одной общей вершины и являются непересекающимися. Рассмотрим один способ проверки на пересечение маршрутов, легко реализующийся на ЭВМ. Если все множество полученных маршрутов разбить на такие подмножества маршрутов, которые начинаются (заканчиваются) в какой-либо одной вершине, то становится очевидным следующее. Если граф Ь—(х, и, р) раз-

бивается на пересекающиеся маршруты, начинающиеся соответственно в вершинах xt и Xj, в которых, по крайней мере, два маршрута |л;с:Ги V-jCiTj заканчиваются в одной и той же вершин'е xk, т. е. л^ещ и xk^\i Например, граф, изображенный на рис. 4, а, содержит два подмножества Гь объединяющее маршруты I и II, и Г2, объединяющее маршруты III и IV. Здесь имеем, что вершина х7^Тх и х7^Т2, то есть подмножества Т\ и Т2 пересекаются. Граф, изображенный на рис. 4, б, содержит подмножество Т\ объединяющее маршруты I и II, и подмножества То, и Т2, состоящие соответственно из маршрутов III и IV. Здесь подмножества Т2 и Г3 не содержат ни одной общей вершины, то есть не являются пересекающимися. Информация о пересечениях маршрутов в дальнейшем будет использоваться при решении задачи покрытия схем нестандартным набором блоков, которая будет рассмотрена ниже. Полученные в результате разбиения подструктуры являются минимальными подструктурами, удовлетворяющими условиям (2) и (3), для которых в общем случае условие (1) слева не выполняется. Для получения подструктур, удовлетворяющих всем трем условиям, достаточно произвести объединение минимальных подструктур таким образом, чтобы выполнялось условие

Обобщая изложенное, перечислим основные задачи подготовительного этапа:

1. Выделение циклов в графе.

2. Разбиение графов на маршруты, удовлетворяющие условиям (2) и (3).

3. Формирование непересекающихся подмножеств маршрутов.

4. Формирование подструктур, удовлетворяющих условиям (1), (2), (3).

Алгоритм разбиения блоков на подструктуры реализован на языке АЛЬФА. Основная задача второго этапа заключается в реализации наилучшим образом схем вычислительных устройств полученным набором структур. Рассмотрим методику решения этой задачи.

Покрытие схем вычислительных устройств нестандартным набором блоков (ННБ)

*

Прежде чем дать формальное описание постановки данной задачи покрытия, рассмотрим некоторые ее физические особенности и сформулируем основные требования к покрытию. При покрытии схем заданным набором нестандартных блоков в каждой принятой к реализации структуре должны быть использованы все модули, а также функциональные связи между ними, иначе говоря, коэффициент использования Ка каждой структуры должен быть равен единице. Это требование вытекает из самого способа формирования структур, описанного выше. Очевиден также и тот факт, что каждый элемент схемы должен быть отнесен лишь к одной какой-либо структуре. Практически при покрытии схемы набором структур некоторые элементы, а также совокупности элементов, могут быть отнесены к нескольким структурам. Это является следствием того, что, с одной стороны, в реальной схеме некоторые совокупности элементов, топологии функциональных связей которых тождественны каким-либо структурам из заданного набора, пересекаются, как это показано на рис. 5, где Р —схема вычислител.*?-

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

фы двух структур I и II, содержащие изоморфные части, отмеченные пунктиром, а на рис. 6, в представлена часть графа, интерпретирующего принципиальную схему, где пунктиром отмечены подграфы, изоморфные графам I (рис. 6, а) и II (рис. 6, б). Очевидно, что данная схема не может быть реализована обеими структурами так, чтобы не нарушались сформулированные выше требования. Отсюда следует, что к реализации может быть принята лишь одна структура из приведенного набора, наилучшим образом реализующая схему. Распространяя сделанный вывод на множество структур из нестандартного набора блоков, приходим к тому, что задача покрытия принципиальной схемы заданным набором структур является комбинаторной, заключающаяся в оптимальном выборе набора структур.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рассмотрим формальную постановку данной задачи покрытия. Пусть имеется конечный граф Ь— (х, и, р), относящийся к классу графов Бер-жа, и некоторое конечное семейство графов = (у, V). Известно также, что х^$>у1\ /=1, 2, ..., N. Требуется найти такое покрытие графа I, т. е. набор подмножеств Б], изоморфных соответствующим подграфам графа Ь, при котором любая вершина х^Х может принадлежать только одному из подмножеств а также этот набор должен быть таким, чтобы в него вошло как можно больше вершин графа Ь. Введем матрицу пересеченйй ||а{) ||, в столбцах которой расположены вершины графа Ь, а в строках — номера графов из 5у, где ац =1, если /-я вершина принадлежит у-му подмножеству. Тогда данная задача покрытия в терминах дискретного программирования является взвешенной задачей покрытия, максимизирующей линейную форму:

//

ш

Рис. 6

т

(1)

при условиях

т.

2 1, /=1, п,

(2)

1, если ¿-я структура входит в покрытие,

О, в противном случае,

где

Ь} — мощность /-й структуры,

_( 1, если /-я вершина отнесена к /-му подмножеству,

и | 0, в противном случае.

Специфика данной задачи такова, что к /-му подмножеству могут быть отнесены лишь те вершины, топология функциональных связей которых тождественна графу /-го подмножества. Очевидно, что к некоторому /-му подмножеству может быть отнесено более одной таких совокупностей, причем среди них могут быть такие, которые пересекаются с совокупностями элементов, отнесенных к другим подмножест- * вам семейства , а также и непересекающиеся. В связи с этим матрица пересечений \\ац || должна быть такой, чтобы в каждой строке сумма значений а и равнялась мощности соответствующего /-го подмножества и при этом аи- = 1 в вершинах, входящих в одну совокупность. Матрица ограничений \\а1 у || может быть получена следующим путем. На базе структурного анализа схемы, заключающегося в том, что производится независимое покрытие схемы каждой структурой из семейства с фиксацией покрытых элементов, строится матрица ||||, столбцы которой соответствуют номерам элементов схемы, а строки — номерам структур где

г _ | 1» если 1*'я вершина покрылась /-й структурой;

и 1 0, в противном случае.

Сумма элементов ¿-й строки может быть подсчитана по выражению: 2 хь} Ь], где Ь] —мощность /-й структуры, Хц —количество /-х-сово-)

купностей элементов схемы, покрытых /-й структурой. Причем после по- »

крытия схемы /-й структурой первая восстанавливается полностью. Алгоритм структурного анализа разработан в [3].

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

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

ЛИТЕРАТУРА

1. А. А. Ксрбут, Ю. Ю. Финкельштейн. Дискретное программирование. Л1., «Наука», 1969.

2. А. А. 3 ь: к о в. Теория конечных графов. Новосибирск, «Наука», 1969.

3. В. К. П о г р е б н о й. Разработка и исследование алгоритмов автоматизации технического этапа проектирования вычислительных устройств. Диссертация на соискание ученой степени кандидата технических наук. Томск, 1970.

4. Л. Я- Л е и ф м а н, Л. Г. Петрова. Некоторые алгоритмы для анализа ориентированных графов. Сб.: «Выч. системы». СО АН СССР, вып. II, 1964.

5. В. А. Т р у б и н. О решении задачи выбора. Сб. «Математические методы в экономике», вып. 3., Киев, 1968.

i Надоели баннеры? Вы всегда можете отключить рекламу.