
книги из ГПНТБ / Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие
.pdf010 I
0101 I
О І О І І 1
О К Н О |
I |
,0101100 І
[сдв.О |
1 ІД Ш ІІ0 І |
0 |
01000000 |
ООН |
||
ЗТ і |
+У |
00.00000101 |
I |
|
|
|
1 |
00,00000010 I |
|
|
|
||
[ с д в.2 |
00,00001010 I |
00000000 |
0100 |
|||
•11 |
- У |
П . І Ш С І О І |
I |
|
|
|
L |
00,00000000 0 |
|
|
|
||
5T ' |
с д в .2 |
00,00000000 0 |
00000000 |
0101 |
||
- У |
П Д І І О І С О І |
I |
|
|
||
L |
|
Л . І І І О І О О І |
I |
|
|
|
г с д в .2 |
11,10100110 0 |
О О С О О О О О |
О |
Н О |
||
‘'T < |
+У |
і С . О О І О І І О І |
I |
|
|
|
; |
с :д в .2 |
І І Д0І С 01І |
I |
OOOCOUtt |
О |
Ш |
? т | |
11,01001110 0 |
|||||
+У |
CO.GIOIIOOI |
I |
|
|
|
|
|
|
И Д 0 І С 0 І І 1 |
I |
|
|
|
PucS.2-2
5.2 . ГЕНЕГАТОГи СЛУЧАЙНЫХ ЧДСЕЛ_________[1±
В настоящее время нашли широкое распространение методы решения задан по способу статистических испытаний. Для реализации этих методов необходим источник случайных чисел с заданным законом распределения. Случайные числа с задан ным законом распределения вероятностей обычно получают из случайной величины с равномерным распределением. Для фор мирования указанной случайной величины во многих ЦВМ имеется специальный блок,получивший название генератора случайных чисел /ГСЧ/. Основным узлом,на базе которого строятся ГСЧ,является одноразрядный датчик ату чайных чисел. Датчик случайного чиапа состоит обычно из компаратора и датчика случайного напряжения, в качестве которого может быть использована шумящая электронная лампа с линейным усилителем. В дигкретпые моменты времени напряжение на вы ходе датчика случайного напряжения с помощью компаратора сравнивается с некоторым пороговым напряжением. Если поро говое напряжение выше напряжения на віасоде датчика случай ного напряжения,то формируется І ,а в противном случае -0 . Для генерирования случайной величины с равномерным распре делением необходимы датчики,выдающие 0 и I с равной вероят ностью, Уравнивание вероятностей 0 и I осуществляется с
- 90 -
помощью регулировки порогового. Однако под влиянием дестабилизирующих факторов как пороговое напряжение,так и параметры датчика случайного напряжения и компаратора могут изменяться. Для компенсации указанного изменения применяют ся специальные логические способы уравнивания вероятностей генерирования 0 и I . Один из них состоит в многократном генерировании случайных цифр /р и с .5 .2 -1 /. Пусть ѴѴявляется вероятностью появления 0 на выходе компоратора. Узлы в схе ме соединены таким образом,что в первом вспомогательномтакте /ІТ2=0/ триггер ТІ устанавливается в какое-либо сос
тояние, а во втором такте /ІТ 2= І/ |
происходит выдача случай |
||
ной цифры. Причем выдача происходит только в том случае, |
|||
если в первом и втором тактах на выходных |
шинах компаратора |
||
появились разные цифры. При этом |
выдача О |
/ I / |
осуществляет |
ся, если в первом такте на выходе |
компаратора |
была I /О /. |
Отсюда еле,дует,что пара цифр,появившихся в первом и втором тактах,и соответствующие ши верояфности образуют ряд
|
|
00 |
- |
|
|
|
01 |
- |
VJ(1~ W) , |
|
|
10 |
- |
( 1 - w ) w . |
|
|
n |
- |
( 1 - w f . |
Следовательно,вероятность выдачи 0 равна вероятности |
||||
выдачи I |
и |
эти вероятности рагны VJ / I - IV / , а вероятность |
||
невыдачи |
цифры равна |
|
|
|
|
|
Wz +(f~ W)z ~ i - 2 W + 2 WZ, |
||
что при |
W =j- равно -L |
|
,т .е . для генерирования одной слу |
|
чайной цифры требуется примерно 4 такта. |
||||
На базе одноразрядных датчиков случайных цифр /ОДСЦ/ |
||||
строятся |
п |
-разрядные |
ДСЧ. При этом возможно два противо |
положных варианта формирования случайных чисел /СП/: после довательный /р и с .5 .2 -2/ и параллельный /р и с .5 .2 -3 /. Преимущество первогоэкономичность,а второговысокое быстродействие.
Задача. Разработать ДСЦ для десятичной системы счисления.
- 9 1 -
5 .3 . |
БЛОКИ ПРЕОБРАЗОВАНИЯ |
ЧИСЕЛ |
ИЗ ОДНОЙ СИСТЕМЫ СЧИСЛЕ |
|
НИЯ в |
д р у г у ю _________л . |
3 5 . |
а с / |
|
|
|
|
к |
|
Как известно,оолее |
50;» всех |
ЦШ райотаіот в двоичной |
системе счисления. Исходные же и конечные данные задачи должны быть представлены в .форме,удобной для их анализа,
т .е . как |
правило,в десятичной системе счисления. Поэтому |
в случае |
использования ЦВМ, работающей только в двоичной |
системе счисления,возникает задача в преобразовании чисел из десятичной системы в двоичную и обратно. Как и многие другие операции операция преобразования кодов чисел может выполняться как схемно.так й программно. В свою очередь, схемная реализация операции перевода выполняется.в двух разновидностях. П первом случае блок преобразования кодов чисел /ЕЛК/ является частью АУ и используёт~ѳгсГосновноѳ оборудование /регистры и сумматор/. Во втором случае ВПК выполняется обособленно и не использует никакого оборудо вания АУ. В этом случае ВПК включается в работу во врем обмена информацией между ЦВМ и внешними устройствами. При этом АУ ЦВМ высвобождается и появляется возможность совме щать решение одной задачи с подготовкой данншс'для’ вводавывода другой задачи.
Наибольшее распространение в ЦВМ нашел метод преобра зования путем сдвига и коррекции. В основе этого метода лежат операции умножения и деления на 2. В двоичной сис теме эти операции сводятся к обычному сдвигу на один раз ряд влево или вправо. В десятичной системе кроме сдвига необходима коррекция результата. Рассмотрим сначала деле
- 9 2 -
ние.Предположим,что десятичное число представлено двоич но-десятичным кодом с весами /8 ,4 ,2 ,1 /,т .е . десятичные цифры представляются обычным двоичным кодом. Поэтому
сдвиг двоичных цифр,представляющих |
данную десятичную |
циф |
ру, на один разряд вправо уменьшает |
данную десятичную |
шиф |
ру в два раза. Так обстоит дело,если в данную тетраду нет |
||
переноса из соседнего старшего десятичного разряда.Бели |
же в старшей тетраде до сдвига было нечетное |
число,то |
при |
|
сдвиге вправо /т.е.делении на 2 / |
единицы |
старшего |
раз |
ряда |
переносится в младший разряд и должна быть воспринята |
||||
в |
нем как |
5. Однако |
указанная 1 переноса, вес |
которого равен |
|
8, |
а |
не 5, |
попадает |
в старший разряд тетрады. |
Поэтому |
для получения правильного результата необходимо уменьніЯть содержимое этой тетрады па 8-5=3 единицы. Например
296=0010 ІОСІ ОНО, сдвиг 0001 0100 Ю Н,
коррекция*»- о t - o ' L s
0001 0100 1000=148= --296.
2
Таким образом,для деления десятичного числа на 2 необ ходимо сдвинуть двоично-десятичный код данного числа на один разряд вправо и вычесть 3 из тех тетрад,в старших р а з рядах которых после сдвига оказались I .
Рассмотрим теперь удвоение десятичного числа,представ ленного кодом с избытком 3. Использование такого кода поз воляет значительно упростить цепи коррекции. При сдвиге на один двоичный разряд каждая десятичная цифра увеличивается в два раза. Следовательно, код уже будет с избытком 6 и для получения кода с избытком 3 надо во всех тетрадах вычесть тройки. Так как цифры больше 5 в коде с избытком 3 будут представляться двоичным кодом > 8 , то добавление I в старшую тетраду при удвоении происходит путем сдвига /переноса/ I из старшего разряда данной тетрады в младший разряд сле дующей тетрады. При этом содержимое данной тетрады надо уменьшить на ІѲ / т .е . на I старшей тетрады/,но из-за того, что I старшего разряда данной тетрады перешла в младший
- 9 3 -
разряд следующей тетрада,вес которого в двоичном коде ра вен 16,фактически произошло уменьшение кода данной тетра ды на 16 единиц. Следовательно,для коррекции результата в данную тетраду надо добавить 16-10=6 единиц. Две описан
ные коррекции при удвоении можно объединить в одну, а имен но: если переноса из данной уетрады в старшую тетраду не было,то содержимое данной тетрада уменьшается на 3 едини
цы,если же перенос бнл-то увеличивается на -3*6=3 единицы,
Л
Например
296 = 0010 1001 ОНО, код с избытком 3 0101 1100 1001 , сдвиг (0)1011 1001 0010,
коррекция
|
+3 |
+3. |
результат в коде |
с |
|
избытком 3 |
1000 1100 0101, |
|
код ,с весом |
|
|
8, 1,2,1 |
0101 1001 |
0010 = 592 = 2 296. |
Таким образом умножение и деление на 2 сводится к лево му itли правому сдвигу на один разряд и коррекции результа та путем добавления или вычитания троек.
Рассмотрим теперь алгоритмы преобразования чисел путем сдвига и коррекции. Дробные и целые части чисел преобра зуются fio разному.
Преобразовать десятичную дробь в двоичную можно путем
умнож нл$| на два и анализа I |
переполнения. Например |
|
|||
11/16=0,6875=,ОНО 1000 ОІИ 0101 |
|
|
|
||
код с избытком 3 ,1001 ЮН |
1010 1000 |
|
|
|
|
PZ- N/ |
|
PX |
|
|
|
o .o o o i.................................................. |
д о о і |
i o n |
io io |
ieoo |
но |
0,0011.................................... |
ООП ОІИ 0101 0000 Сдв. |
||||
|
+11 |
+11 |
+ІІ |
+ІІ |
Кор. |
|
,0110 |
1010 ІОСО ООП |
|
||
0,0110................................... |
ДЮ І |
0101 0000 ОНО Сдв. |
|||
' |
- I I |
+П |
+11 |
- I I |
Кор. |
- 9 4 -
|
,1010 1000 |
ООП ООН |
0,1101................................. |
,0101 0000 ОНО ОНО Сдв. |
|
|
П І +11 |
- II - II Кор. |
|
,1000 ООП ООП ООП |
|
П О П ................................... |
0000 ОНО ОНО ОНО Сдв. |
1 _ _ ___________________________________ _ ко
,1уін реализации данного алгоритма необходимо иметь два сдвиговых регистра /дноичный и десятичный/ и цепи коррек ции, которые по аппаратурным затратам примерно равноценны сумматору,однако, значительно превосходят его по быстродеиот вию из-за отсутствия .цепей сквозного переноса. При этом регистры соединены так,что ци^ры со старшей тетрады,выд вигаемые с десятичного регистра при сдвиге, вдвигаются в младший разряд двоичного регистра.
Преобразовать десятичное целое число можно путем деления его на 2 и анализа остатка. Например
75=0111 0101
|
РХ |
|
НО |
О Ш |
0101 |
Сдв. СОИ |
ТОЮ |
|
Кор. |
-СС |
II |
|
ООП |
О Ш |
Сдв. |
0001 |
ю н |
Кор. |
-00 |
- II |
|
0001 |
1000 |
Сдв. 0GC0 |
н е о |
|
Кор. |
-00 |
- II |
|
0000 |
1001 |
Сдв. |
0000 |
CI00 |
Кор. |
-00 |
-00 |
|
0000 |
0100 |
Сдв. |
0000 |
сою |
Кор. |
-00 |
-00 |
Сдв. |
0000 |
OOCI |
Кор. |
-00 |
-со |
|
0000 |
0001 |
Сдв. С000 |
0000 |
|
КО—------- |
|
MI РІ 1000000,0 1100000,0
IIIOOCO.O
0111000,0
1011100,0
ОІОПІО.О
ÜOIOIII.O
ІООІОІІД
_________________У
- У5 -
Оборудование,необходимое для реализации данного ил го ритма,такое же как и в первом случае. Отличие состоит в соединениях:при сдвиге цифра младшего разряда РХ попади ет в старший разряд P Z .
Перевод чисел из двоичной системы в десятичную также осуществляется путем сдвига и коррекции,которыѳ являются обрач ними операциями по отношению к ранее рассмотренным,' Напри мер,заменив левый сдвиг правым,а умножение на 2 - делеші ем получим алгоритм и ревода двоичной дроби в десятичную
P Z |
|
|
|
|
РХ |
|
|
1,101] |
|
|
,0000 |
0000 |
0000 |
0000 |
|
0,1101 |
сдв. |
,1000 |
000» |
0000 |
0000 |
||
|
|
кор. |
|
- II |
-00 |
-00 |
-00 |
0,0110 |
сдв. |
,0101 |
0000 |
0000 |
0000 |
||
,1010 |
1000 |
0000 |
0000 |
||||
|
|
кор. |
|
- I I |
- I I |
-00 |
-00 |
|
|
|
,0111 |
0101 |
0000 |
0000 |
|
0,0011 |
|
сдв. |
,0011 |
I0IG |
1000 |
сооо |
|
|
|
кор. |
|
-00 |
- I I |
- I I |
-00 |
|
|
|
|
ООН |
О Ш |
0101 |
сооо |
0,0001 |
|
сдв. |
|
1001 |
м и |
1010 |
1000 |
|
|
кор. |
|
- I I |
- II |
- I I |
- II |
|
|
КО |
|
о н о |
1000 |
О Ш |
0101 |
Аналогично получаем алгоритм |
перевода .целого числа из |
||||||
двоичной |
системы в десятичную |
|
|
||||
но |
0 |
ООП |
РХ |
|
|
P Z |
|
ООП |
|
МОІОІІ.І |
|||||
сдв. |
о н о |
о т |
|
|
|
||
кор. |
|
- и |
• - II |
|
0010111,0 |
||
|
0 |
ООП |
0100 |
|
|
|
|
сдв. |
|
с |
1000 |
|
|
|
|
кор. |
о-пI I |
- I I |
|
ОІОІТМ.О |
|||
С ДБ . |
|
ООП |
ОІОІ |
|
|
|
|
0 |
о н о |
МІО |
|
1011100,0 |
|||
|
|
- I I |
- и |
|
|
|
|
кор. |
|
|
|
|
|
|
|
|
|
ООП |
ОШ |
|
|
|
|
сдв. |
0 |
о н о |
п н |
|
0111000,0 |
||
кор. |
|
|
- и |
- I I |
|
|
|
- 96 -
|
|
ООН |
н о с |
|
1д в . |
о |
О Ш |
1000 |
1110000,0 |
кор. |
0 |
- I I |
+ І І |
|
|
|
0100 |
ю н |
|
1д в . |
0 |
1001 |
О Ш |
1100000,0 |
кор. |
|
- I I |
+ І І |
|
|
|
о н о |
1010 |
|
сдв. |
0 |
ІІО І |
0101 |
1000000,0 |
кор. |
|
- I I |
+ І І |
|
ко ^ |
|
• 1010 |
1000 |
|
|
О Ш |
0101 |
|
|
код /6421/ |
|
|
|
Примерный состав оборудования,необходимый для реализа ции преобразования чисел из одной системы в другую,пока
зан |
на |
рис.5,4 |
-1. |
Регистры РХ и PZ включены таким образом, |
||
что |
выходы I |
я |
4 |
PZ |
соединены со входами I и 4 РХ,а вы |
|
ходы 2 |
и 3 РХ |
|
со |
входами 2 и 3 ТЕ , Блок местного управ |
||
ления /ЕМУ/ выдает сигналы левого /ЛС/ и правого /ПС/ |
||||||
сдвигов |
на РХ |
|
и PZ |
и сигналы коррекции /+ 3 / и /- 0 , -3 / |
на цепи коррекции /ЦК/, Кроме сигнала НО на ЕМУ поступа ет так .те сигнал кода операции.
Задача. Построить функциональную схему одного разряда цепей коррекции.
- 97 -
5 Г----- РХ — |
т -і- |
Kopts |
|
|
НО |
|
|
||
|
г» |
1 |
|
Кор-0-5 БМУ |
д |
К од |
|
|
|
|
|
-J |
|
|
|||||
|
I___ М _ |
лс |
|
оп ер |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
I------РГ~ |
|
ПС |
|
|
|
|
|
|
|
1---------- |
|
|
|
|
|
|
|
|
|
|
|
Д/С. З.УЧ |
|
|
|
|
|
|
|
іВЗУ |
|
Л °?з |
a # |
|
изЗі/ |
|
||
|
ЗнѴ, |
|
Р% |
|
(П) |
РЧе |
|||
|
803 |
|
|
/7С |
|
||||
|
|
|
|
|
|
(т I |
|||
|
5 ü i t |
|
W f BKfBOK,W- |
|
Множимое |
||||
|
Ъи2Сң |
|
|
|
|
Депитепь |
|||
|
|
Ztto |
|
|
|
ЗУ |
|
||
|
|
|
|
|
|
|
|
||
|
|
Z w БМУ |
См |
|
(П)і! ъ ? |
||||
|
|
ВК.Ш.ЛЧ' |
|
||||||
|
|
|
|
CO,Wt,Zo |
|
|
|
|
(т) |
|
Код |
|
|
|
Результат |
||||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
опер |
|
|
|
|
с36. |
|
|
|
|
НО |
|
|
OP4tj Мнозк. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
КО |
|
АС, ПЧ, СО, |
РЧ, |
(п+і) |
|
|
||
|
|
4 |
|
вк,вок |
|
Множит. |
f |
||
|
|
|
|
|
ыа |
|
|
“ |
|
|
|
RJC. 6.І-1 |
Ъѵпное3 'н2Сц |
||||||
|
|
|
f |
|
|
|
|||
|
|
|
|
|
|
\и,ЗУ |
|
|
|
ВЗУ |
РПЧ, |
г — |
|
■*" JPV, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
j |
|
БМУ |
|
1 |
I “ 9 |
|
||
I |
Он. |
|
|
*__^jcw./y |
|
||||
|
РПЧй |
{~----- |
|
^РЧъ |
— n |
|
|||
|
изЗУ |
U,WП *8УУ |
|
\ из ЗУ |
|
|
|||
|
|
|
Рис. 6 ./ -2 . |
|
|
|
|
|
- 98 -