Файл: Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.07.2024

Просмотров: 96

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

010 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 -