Изучение регистров. Теоретические сведения

На основе триггеров строятся более сложные устройства ЭВМ, в частности регистры.

Схема простейшего параллельного регистра показана на рисунке

Dn-1
Di-1
D1
D0
R
C
Q0
Q1
Qi-1
Qn-1
 
 
n-1
n-1
 
 
RG

 

 


Рис.2.14. Параллельный регистр

Схема состоит из n D-триггеров, в которые по сигналу синхронизации С (обычно С подается в отрицательной логике, что и отражено в рисунке) записывается n– разрядный двоичный код, который хранится в регистре (сигналы Q0 - Qn-1). С приходом следующего сигнала синхронизации код может обновиться и регистр хранит новый код до прихода следующего синхросигнала и т.д. Обычно в регистрах предусмотрено принудительное асинхронное (т.е. независящее от синхросигналов) обнуление, сигнал которого Rчаще всего подается в отрицательной логике, что и отражено на схеме.

Кроме параллельных регистров бывают сдвигающие регистры, которые могут сдвигать код влево(вверх) или вправо(вниз). Существуют и универсальные регистры, сочетающие параллельный и сдвигающий регистр.

Пример такого регистра показан на рисунке:

Dn-1
Di-1
D1
D0
R
C
Q0
Q1
Qi-1
Qn-1
 
 
n-1
n-1
 
 
RG
q1
q0
 

 

 


Рис.2.15. Универсальный регистр

 

Кроме сигналов, присутствующих в параллельном регистре, имеются дополнительные управляющие сигналы q1,q0. Они определяют режим работы, например сочетание q0=0, q1=0 определяет режим параллельной записи, сочетание q1=1, q0=0 определяет режим сдвига влево, сочетание q1=0, q0=1 определяет режим сдвига вправо, сочетание q1=1, q0=1 определяет режим хранения.

Полная схема такого регистра достаточно громоздка, поэтому мы поясним принцип сдвига в регистре по упрощенной схеме. Рассмотрим вначале сдвиг влево (вверх):

 

 
Di-1
C
T
Qi-1
 
C
T
Qi
Di
 
 
C
T
Qi+1
Di+1
Qi-2
Di+2
сигн. сдвига

 


Рис.2.16. Сдвиг влево, «вверх»

При сигнале сдвига состояние i-1 триггера переписывается в iтриггер, а состояние iтриггера в i+1 триггер и т.д.

Точно по таком же принципу построена схема сдвига вправо, только там при сигнале сдвига состояние i+1 триггера переписывается в iтриггер, а состояние iтриггера в i-1 триггер и т.д.

 

 

Отметим исключительно важный момент:

При сдвиге вверх(влево) на n разрядов код умножается в 2n раз

         
         
         
         

 

Исх.число 2 (нули слева от 1 не приводим)
После сдвига на 1 разряд влево – 4 (22)
После сдвига исх.числа на 2 разряда влево -8 (23)
После сдвига исх.числа на 3 разряда влево -16 (24)

 

 


При сдвиге вправо на nразрядов код делится в 2n раз

Это можно проследить на вышеприведенной таблице, если считать исходный код 16 и последовательно сдвигать его вправо.

 




double arrow
Сейчас читают про: