Организация арифметико-логических устройств ЭВМ [Электронный ресурс]: метод. указания к лабораторным работам по дисциплине Б3.Б.2 «ЭВМ и периферийные устройства» направления 230100.62 «Информатика и вычислительная техника» / сост. О. А. Заякин, В. П. Павлов. – Самара: Изд-во Самар. гос. аэрокос. ун-та, 2014. – 90 с.: ил. – 1 электрон. опт. диск (CD ROM).
В методических указаниях изучается структурная организация основной составляющей процессора ЭВМ – его арифметико-логического устройства.
Для изучения использованы графический редактор и эмулятор из системы автоматизированного проектирования MAX+PLUS II фирмы «Altera», разработанной ею для программирования собственных ПЛИС.
Предназначены для студентов, обучающихся дисциплине Б3.Б.2 «ЭВМ и периферийные устройства» по направлению 230100.62 «Информатика и вычислительная техника», а также по специальности «Автоматизированные системы обработки данных и управления». Могут быть полезны студентам, обучающимся по другим специальностям, связанным с информационными технологиями.
Работа выполнена на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета.
В качестве примера рассмотрим IM-автомат с последовательной комбинационной частью, функции которого заданы списками МО, ЛУ, количеством слов К и их разрядностью n в памяти ОА. Список арифметико-логических микроопераций Y1=ym, m(1, …, 8), A(1:n), B(1:n) - слова-операнды, F(1:n) - слово-результат:
1) F:=A+B+Cin - сложение, Cin – вход переноса в младший разряд сумматора;
2) F:=A-B-1+Cin - вычитание (сложение с дополнительным кодом B)
3) F:=B-A-1+Cin - вычитание;
4) F:=A v B – логическое сложение (дизъюнкция);
5) F:=A & B - логическое умножение (конъюнкция);
6) F:=¬A v B - инверсия, если B=0;
7) F:=A B - исключающее ИЛИ;
8) F:=A B - сравнение на равенство.
Список МО сдвига Y2 =yk, k(9, …, 16), (A(1:n) - операнд, B(1:n) - результат, С – бит переноса, сформированный ранее и занесенный в триггер С регистра признаков результата):
1) С.B:=C.A – нет сдвига;
2) B.C:= R1(0.A) – сдвиг вправо на 1 разряд с обнулением старшего разряда и с сохранением младшего разряда в C (логический сдвиг вправо);
3) B.C:= R1(A(1).A) – сдвиг вправо на 1 разряд с сохранением старшего разряда (знака) A(1) и младшего разряда в C (арифметический сдвиг вправо);
4) C.B:= L1(A.0) – сдвиг влево на 1 разряд с сохранением старшего раз-ряда в C и обнулением младшего разряда;
5) C.B:= L1(A.С) – циклический сдвиг влево на 1 разряд через C;
6) B.C:= R1(A.С) – циклический сдвиг вправо на 1 разряд через C;
7) C.B:= L1(A.A(1)) - циклический сдвиг влево на 1 разряд с сохранением старшего разряда A(1) в C;
8) B.C:= R1(A(0).A) – циклический сдвиг вправо на 1 разряд с сохранением младшего разряда A(n) в C;
Список (типичных) логических условий:
1) Z(zero) - признак (флаг) нулевого результата. Значение Z:=1, если ре-зультат F арифметико-логической МО равен 0, иначе (т. е. если F≠0) Z:=0;
2) S:=F(1) – значение старшего разряда результата F (при обработке чи-сел со знаками трактуется как знак (sign) результата);
3) OVR – признак переполнения. Значение OVR:=1, если результат F арифметической МО переполняет n–разрядную сетку;
4) C:=COUT – значение бита переноса из старшего разряда сумматора при выполнении операций сложения и вычитания (бит Carry).
При выполнении арифметических операций формируются все четыре ЛУ, при выполнении логических операций – только два – Z, S, сигналы С, OVR не изменяются. При выполнении операций сдвига могут измениться все четыре ЛУ.
Типичная структура IM–автомата с последовательной комбинационной частью представлена на рис. 3. Память S аналогична памяти M-автомата (на рис. 2). Комбинационная часть ОА АЛУ лабораторного макета (рис. 5) состоит из универсальной комбинационной схемы UKS и сдвигателя SH, соединенных последовательно, а также формирователя логических условий FLU.
Р и с . 5. Схема комбинационной части ОА
Схема UKS (рис. 6) обеспечивает выполнение МО из списка арифметико-логических операций под воздействием управляющих сигналов y1, …, y8, поступающих из УА АЛУ на входы {ym}.
Ри с . 6. Схема UKS
Сигнал y1 возбуждает МО сложения (первую МО в списке) y1:F:=A+B+Cin, сигнал y2 – вторую и т.д. по списку Y1= (y1, …, y8). Сигналы y1,…,y8 – это импульсы, продолжительность которых равна длительности такта ОА (остается неизменной, пока идет выборка операндов, выполнение МО, сохранение результата – см. временную диаграмму, рис. 7).
Рис. 7. Временная диаграмма работы UKS
Схемы ФКА и ФКВ (формирователи кодов на входах А и В сумматора SM) обеспечивают инвертирование операнда при выполнении операции вы-читания по сигналам y2, y3 соответственно. Выполнены они на основе двух-входовых элементов «исключающее или» в количестве n штук, на вторые входы которых подаѐтся сигнал y2 (или y3). Крестик на шинах, возле которого указан символ ym (например, y5) – означает управление шины этим сигналом.
Схема сдвигателя SH (рис. 8) обеспечивает выполнение МО сдвига из списка Y2 под воздействием сигналов y9,…,y16, поступающих из УА АЛУ на входы {yk} сдвигателя. Сигнал y9 возбуждает первую МО в этом списке (нет сдвига), сигнал y10– вторую и т.д. по списку. SLin, SRin - входы сдвигателя, используемые при левом (SLin) и правом (SRin) сдвигах. Выходы SL0, SR0 используются соответственно при левом и правом сдвигах.
Рис. 8. Схема сдвигателя SH
Нужная МО сдвига обеспечивается мультиплексорами правого (MSR), левого (MSL) сдвига и мультиплексором MSC, установленным на входе триггера TC, в котором сохраняется значение бита C. Микрооперации, вы-полняемые мультиплексором (например, y11, y14, y16 для MSR), являются несовместимыми и призваны обеспечивать коммутацию одного из входов на единственный выход. Например, сигнал y11=1 подает старший бит A(1) сдвигаемого слова A на вход SRin при выполнении MO y11:B.C:=R1(A(1).A)) – сдвиг правый арифметический. Формирователь логических условий FLU (рис. 9) обеспечивает формирование сигналов Z, C, S, OVR и сохранение их в регистре флагов RF.

Р и с . 9. Схема FLU
Формирование ЛУ осуществляется по следующим правилам. Если выполняется только АЛО микрооперация (без последующего сдвига ее результата), то формируются и заносятся в RF все четыре ЛУ. Если выполняется логическая микрооперация (без последующего сдвига ее результата), то формируются и заносятся в RF только Z, S (флаги CF, OF не изменяются). Если выполнение МО в УКС совмещается с микрооперацией сдвига, то формирование ЛУ осуществляется на основе результата МО сдвига на выходе сдвигателя. Флаг OF устанавливается в единицу, если в результате сдвига изменился знаковый (старший) разряд результата.
При выполнении арифметических МО формируется сигнал уАО=y1 V y2 V y3. Сигналы уSL=y12 V y13 V y15, уSR=y10 V y11 V y14 V y16 формируются при выполнении соответствующих МО левого и правого сдвига. Для формирования сигнала Z используется схема ИЛИ-НЕ. Сигнал S определяется значением В(1), т. е. S=В(1). Сигналы OVR и СOUT формируются в сумматоре SM.
Память S ОА (регистры S1,…,SК), см. рис. 10, выполнена в виде блока RON (регистров общего назначения - РОН). Доступ к ячейкам (регистрам) осуществляется по адресам (номерам) регистров 1, ..., К, подаваемым на адресные входы А, В. Такая организация эквивалентна схеме на рис. 2. Но в ней, для экономии элементов, регистры S1,…,SК выполнены на основе одинарных (синхронизируемых) D-триггеров, а для обеспечения устойчивости ОА (на входе IN блока РОН) поставлен буферный регистр BR, также построенный из одинарных D-триггеров.

Р и с. 10. Структура блока РОН ОА АЛУ
Запись слова со входа IN (по адресу на входе В) осуществляется по сигналу записи W демультиплексором, который возбуждается сигналами В1, …, ВK с выходов дешифратора DСВ, подключенными к входам синхронизации C регистров S1, …, SK соответственно. Сигнал записи W передаѐтся на вход C адресуемого регистра в виде импульса Bk с соответствующего выхода DCB, то есть сигнал записи W возбуждает МО записи: W:Sk:=IN (или W:[B]:=IN).
Таким образом, список МО записи результатов в регистры (S1,…, SК) c1:S1:=IN, …, cK:SК:=IN, возбуждаемых сигналами c1,…,cК в структуре ОА, представленной на рис. 2, в блоке РОН заменяется одной МО записи вида «W: [B]:=IN», возбуждаемой сигналом W. Время выполнения МО записи τзап=τDC+τТР=τ+3τ=4τ. Чтение слов из регистров (выдача их на выходы OUTA, OUTB) осуществляется с помощью мультиплексоров MSA, MSB, управляемых сигналами А1, …, АК, В1, …, ВК с выходов дешифраторов DCA, DCB, на входы которых подаются адреса А, В регистров.
Микрооперации передачи слов на шины А, В a1:A:=S1, …, aК:A:=SК, b1:B:=S1, …, bК:B:=SК, возбуждаемые сигналами a1, …,aК, b1, …,bК в структуре ОА (рис. 2), в блоке РОН заменяются двумя МО вида – OUTA:=[A], OUTB:=[B]. Изменение адресов на входах A, B изменяет значения слов на выходах OUTA, OUTB с задержкой τ1+τ2 - на выходе OUTB (относительно сигнала W), и с задержкой τ1 - по отношению к моменту изменения адреса на адресном входе (рис. 11). Это значит, что на выход OUTA (OUTB) выдается значение слова Sk, k=A, (k=B) до тех пор, пока не изменится адрес на входе А (входе В), либо пока не изменится содержимое регистра Sk в момент записи по адресу В. τ2=3τ - это задержка в дешифраторе адреса и мультиплексоре MSA (MSB), τ1=τзап=4τ – это время переключения триггеров регистра при записи, где τ – время переключения логического элемента.

Р и с. 11. Временная диаграмма работы РОН ОА АЛУ
Укрупненная схема лабораторного макета ОА АЛУ показана на рис. 12.
ОА АЛУ выполняет МО двух типов. Микрооперация первого типа эквивалентна Sn=φm(Si,Sj), возбуждаемой (рис. 2) сигналами ai, bj, уm, сn. Она возбуждается сигналами y0, yD, обеспечивающими подачу операндов A, B на входы A, B схемы UKS, сигналом ym € Y1, по которому выполняется АЛО МО, сигналом yk € Y2, обеспечивающим МО сдвига, и сигналом yW =1, по которому результат МО записывается в регистр А2. При yW =0 результат МО (второго типа) не записывается в регистр (NOP). Таким образом, запись результата в регистр осуществляется в каждом такте работы ОА, за исключением тех тактов, в которых, например, выполняются микрокоманды перехода. Регистр RF выполнен на основе двойных триггеров типа MS. Запись признаков результатов S, Z, OVR, C в регистр флагов RF осуществляется (как в РОН) по сигналу yW (за исключением пустых тактов – NOP в ОА, когда yW=0). Отметим, что запись флагов Z, OVR осуществляется только при выполнении арифметических МО. Запись флага S осуществляется при выполнении арифметических и логических МО, а запись флага С – при выполнении арифметических МО и соответствующих МО сдвига.

Р и с. 12. Схема лабораторного макета ОА АЛУ
Регистр RF выполнен на основе двойных триггеров типа MS. Запись признаков результатов S, Z, OVR, C в регистр флагов RF выполняется (как в РОН) по сигналу yW (за исключением пустых тактов). Следует отметить, что запись флагов Z, OVR осуществляется только при выполнении арифметических МО. Запись флага S осуществляется при выполнении арифметических и логических МО, а запись флага С – при выполнении арифметических МО и соответствующих МО сдвига.
По завершении операции fg € F в АЛУ ее результат выдается на выходную шину R под управлением сигнала yOUT: R:=B (B - выход схемы SH). Итак, для настройки ОА (рис. 12) на нужные действия на его управляющие входы необходимо подавать сигналы из УА АЛУ. Полный набор сигналов (формат микрокоманды для ОА) представлен на рис. 13.
|
Cin |
y0 |
yD |
1 ALO 3 |
1 SH 3 |
yW |
yOUT |
1 A1 k |
1 A 2 k |
| Рис. 13. Формат микрокоманды ОА АЛУ | ||||||||
Поля (биты) y0 , yD обеспечивают подачу операндов на входы A, B UKS в четырех комбинациях (табл. 1).
Таблица 1 - Источники операндов
| y0 | yD | A | B |
| 0 | 0 | OUT А | 0 |
| 0 | 1 | D | 0 |
| 1 | 0 | OUT А | OUT B |
| 1 | 1 | D | OUT B |
Поле ALO задает АЛО МО ymY1, список которых приведен в табл. 2. Поле SH задает МО сдвига ykY2, список которых приведен в табл. 3. В поле Cin размещается значение бита переноса (на входе Cin сумматора), которое используется при выполнении операций сложения и вычитания.
Таблица 2 - АЛО микрооперации
|
Код ALO |
Микрооперация |
|
000 |
F=A+B+Cin |
|
001 |
F=A-B-1+Cin |
|
010 |
F=B-A-1+Cin |
|
011 |
F=AÚB |
|
100 |
F=A&B |
|
101 |
F=¬A+B |
|
110 |
F=AÅB |
|
111 |
F=A+¬B |
Таблица 3 - МО сдвига
|
Код SH |
Микрооперация |
|
000 |
С.B=C.A (NOP) |
|
001 |
B.C=R1(0.A) |
|
010 |
B.C=R1(A(1).A) |
|
011 |
C.B=L1(A.0) |
|
100 |
C.B=L1(A.C) |
|
101 |
B.C=R1(A.C) |
|
110 |
C.B=L1(A.A(1)) |
В поле yW помещается 1, если результат нужно записать в РОН по адресу А2, указанному в поле А2. Поля A1, А2 используются для указания местоположения операндов, извлекаемых из памяти ОА. Поле А2, кроме того, используется и для записи результата (формат МК – двухадресный). Разрядность k полей A1, А2 зависит от количества K регистров в памяти ОА, остальные поля (слева от A, B) имеют фиксированную длину.
Поля (биты) yW ,yOUT обеспечивают выдачу результатов (с выхода схемы SH) на выход R в четырех комбинациях (табл. 4).
Таблица 4 - Приёмники результатов
|
yW |
yOUT |
Микрооперация |
|
0 |
0 |
NOP |
|
0 |
1 |
R=B |
|
1 |
0 |
[A2]=B |
|
1 |
1 |
[A2]=B, R=B |
Максимальная производительность ОА – две МО (АЛО и сдвига) за 1 такт, продолжительность такта ОА: TОА=τВО+τUKS+τSH+τРОН, (4) где τВО= τОUT+τMS – время выборки (чтения) операндов из РОН и подачи их на входы UKS; τUKS – максимальная задержка в схеме UKS; τSH – максимальная задержка в схеме SH; τРОН – время записи результата в РОН.