Узлы ЭВМ, использующие схемы с памятью
К числу узлов ЭВМ, обладающих памятью, относятся регистры и счетчики.
Регистр представляет собой функциональный узел, предназначенный для приема, временного хранения и выдачи многоразрядных кодов машинных слов. Он состоит из отдельных триггеров, число которых соответствует разрядности машинного слова.
Если триггеры дополнить необходимыми комбинационными схемами, то соответствующие регистры могут выполнять некоторые операции преобразования данных, например, сдвиг кода вправо или влево на требуемое число разрядов, преобразование параллельного кода в последовательный, и наоборот, и др.
Прием кода и передача его в другой регистр реализуются схемой, показанной на рис. 6.13. Она содержит Рг1 для приема n - разрядного кода x1, х2, ..., хn, который затем передается в регистр Рг2. Информация поступает в Рг1, передается в Рг2 парафазным кодом, при котором на одном из входов (R или S) любого триггера всегда присутствует сигнал "1", устанавливающий его в требуемое состояние независимо от того, в каком состоянии триггер находится. При парафазной передаче информации либо хi = 1, а хi = 0, либо хi = 0, а хi = 1. Под действием сигнала Пр Рг1 n - разрядный код принимается в регистр Рг1, а сигналом Пр Рг2 передается в Рг2.
В регистре можно также реализовать операцию сдвига кода путем перемещения его разрядов влево или вправо. Сдвиг кодов требуется при выполнении операций умножения и деления. На рис. 6.14 приведена схема сдвигающего регистра, выполненная на двухтактных D - триггерах. С приходом каждого тактового сигнала Т хранящийся в регистре код перемещается вправо разряд за разрядом. При этом разряды, вышедшие за пределы разрядной сетки, теряются, а в освобождающиеся в процессе сдвига левые разряды записываются нули.
134
Рис. 6.13. Функциональная схема на регистрах для приемаи передачи двоичного кода
135
Рис. 6.14. Функциональная схема сдвигающего регистрана двухтактных D - триггерах
Дополнив данную схему соответствующей логикой, можно на ее основе реализовать сдвиг кода не только вправо, но и влево, а также осуществлять преобразование последовательного кода в параллельный и наоборот.
Счетчик - функциональный узел ЭВМ. предназначенный для подсчета поступающих на его вход сигналов и фиксации результата соответствующими триггерами в виде многоразрядного двоичного кода.
Число разрядов счетчика определяет количество его различных устойчивых состояний, которое называется коэффициентом пересчета Ксч.
В зависимости от значения Ксч счетчики бывают двоичные и с произвольным коэффициентом пересчета. В n - разрядном двоичном счетчике коэффициент пересчета равен 2", а в счетчиках с произвольным коэффициентом пересчета значение Ксч может быть любым целым числом, не равным 2".
По назначению счетчики делятся на суммирующие, вычитающие и реверсивные.
Суммирующий счетчик производит суммирование сигналов, поступающих на его вход. В основу построения счетчика положено свойство Т - триггера изменять свое состояние при поступлении очередного сигнала на счетный вход.
На рис. 6.15 приведена функциональная схема и временная диаграмма работы трехразрядного суммирующего счетчика, построенного на Т - триггерах. Логика его работы представлена в табл. 6.3.
136
Рис. 6.15. Функциональная схема (а) и временная диаграмма (б) работытрехразрядного суммирующего счетчика
Таблица 6.3
Логика работы трехразрядного счетчика
Номера счетных им пульсов | Состояния триггеров | ||
Q1 | Q2 | Q3 | |
0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 1 | 1 | 0 |
4 | 0 | 0 | 1 |
5 | 1 | 0 | 1 |
6 | 0 | 1 | 1 |
7 | 1 | 1 | 1 |
8 | 0 | 0 | 0 |
В начальный момент времени все триггеры устанавливаются сигналом Уст 0 в состояние "0". После прихода первого счетного импульса триггер Тр1 перейдет в состояние "1", а в счетчике зафиксируется код 001. Второй импульс, пришедший на вход, переведет Тр1 снова в состояние "0". При этом возникает импульс переноса, который устанавливает Тр2 в состояние "1", и в счетчике зафиксируется код 010. После третьего входного сигнала Тр1 вновь перейдет в состояние "1", а остальные триггеры останутся в прежнем состоянии, Так будет продолжаться до тех пор, пока счетчик не просуммирует максимальное для трех разрядов число 710 = 1112.
Восьмой импульс переведет Тр1 в состояние "0", возникший перенос поступит на Тр2 и также переведет его в состояние "0". В свою очередь, импульс переноса от второго разряда счетчика переведет в нулевое состояние и Тр3, в результате чего счетчик установится в исходное состояние (000).
В вычитающем счетчике перенос от разряда к разряду берется не с единичных, а с нулевых выходов триггеров. Можно убедиться в том, что при такой коммутации перенос образуется при переходе соответствующего триггера в состояние "1", а не в "0", как это было в суммирующем счетчике. В вычитающем счетчике каждый поступающий на вход сигнал не увеличивает, а уменьшает содержимое счетчика на единицу.
Реверсивный счетчик содержит дополнительные логические схемы, управляющие переключением его либо на суммирование, либо на вычитание.
В рассмотренном счетчике (рис, 6.15) единица переноса передается последовательно из разряда в разряд. Например, при комбинации 110 единица в старшем разряде зафиксируется только после того, как установятся в "0" триггер сначала первого, а затем второго разряда. Если при этом количество разрядов в счетчике относительно велико (не три, как в данном примере), то задержка поступления переноса в старшие разряды существенно возрастет. Для устранения этого недостатка применяется так называемый сквозной перенос. Его идея состоит в том, что импульс, подаваемый на счетный вход триггера, одновременно поступает на логический элемент И, управляемый от единичного выхода данного триггера (рис. 6.16).
Рис. 6.16. Схема организации сквозного переноса
138
В такой схеме импульс переноса формируется лишь в том случае, если данный триггер находится в состоянии "1". Пройдя через элемент И, этот импульс переключает триггер в состояние "0". Следующий счетный импульс на выход уже не пройдет, а только переключит триггер в состояние "1". Таким образом, импульс переноса проходит по сквозной цепочке переноса до того разряда, который находится в состоянии "0" и который он переключает в состояние "1".
Проходя при этом разряды, находящиеся в состоянии "1", импульс переноса одновременно воздействует на счетные входы триггеров, переводя их в состояние "0". Скорость работы счетчика со сквозным переносом значительно выше, чем с последовательным.
Как отмечалось ранее, в двоичных счетчиках коэффициент пересчета, т.е. число различных устойчивых состояний, равен 2n. В зависимости от числа разрядов n такой счетчик может отсчитать 2, 4, 8, 16, ... сигналов и сформировать на выходе перенос. Однако в ряде случаев требуется, чтобы коэффициент пересчета счетчика был отличным от 2n. Широкое распространение получили, например, десятичные счетчики, для которых Ксч = 10. Такой счетчик после каждого десятого импульса возвращается в исходное состояние, формируя при этом на выходе импульс переноса. Разрядность n счетчика с произвольным коэффициентом пересчета определяется из условия 2n - 1 < Ксч < 2n. Очевидно, что Ксч = 10 требуемое число разрядов n = 4. Обычный двоичный четырехразрядный счетчик имеет 24 = 16 различных устойчивых состояний. Следовательно, для Ксч = 10, имеется N = 16 - 10 = 6 избыточных состояний, которые необходимо исключить. Обычно это достигается путем введения обратных связей с выхода счетчика на единичные входы триггеров тех разрядов, которые в двоичном представлении числа N содержат единицы. Так, для N = 610 = 01102 сигнал обратной связи следует подать на единичные входы триггеров второго и третьего разрядов.
На рис. 6.17 представлена функциональная схема десятичного счетчика, а в табл. 6.4 - логика его работы.
Рис. 6.17. Функциональная схема десятичного счетчика
139
Таблица 6.4
Логика работы десятичного счетчика
Номер импульса | Состояние триггеров | Номер импульса | Состояние триггеров | ||||||
Q1 | Q2 | Q3 | Q4 | Q1 | Q2 | Q3 | Q4 | ||
1 | 1 | 1 | 1 | 0 | 6 | 0 | 0 | 1 | 1 |
2 | 0 | 0 | 0 | 1 | 7 | 1 | 0 | 1 | 1 |
3 | 1 | 0 | 0 | 1 | 8 | 0 | 1 | 1 | 1 |
4 | 0 | 1 | 0 | 1 | 9 | 1 | 1 | 1 | 1 |
5 | 1 | 1 | 0 | 1 | 10 | 0 | 1 | 1 | 0 |
140
134 :: 135 :: 136 :: 137 :: 138 :: 139 :: 140 :: Содержание