Архитектура ЭВМ. Курс лекций Томск 2013 2 Оглавление
Скачать 1.9 Mb.
|
Операции над числами с плавающей запятой. Пусть имеется два нормализованных числа: X = m 1 P n и Y=m 2 P k Тогда, полагая, что Х>Y, X+Y=P n (m 1 +m 2 ·P (n-k) ) Аналогично, X–Y=P n (m 1 –m 2 ·P (n-k) ) Пусть сначала оба числа не отрицательны. Тогда, в соответствии с приведенными формулами, в машине выполняются следующие действия: 1. Происходит выравнивание порядков чисел, причем порядок меньшего числа приводится к порядку большего числа, то есть порядок меньшего числа принимается равным порядку большего числа. 2. Для того, чтобы исходное число не изменило своего значения, мантисса меньшего числа сдвигается на соответствующее число разрядов вправо (уменьшается в соответствующее число раз). 3. Происходит сложение или вычитание мантисс, в результате чего получается мантисса результата. Порядок результата в соответствии с произведенным выравниванием порядков принимается равным порядку большего числа. 4. Полученный результат округляется и, если нужно, нормализуется. Округление результата может быть реализовано несколькими способами. Например, один из них заключается в том, что предварительный результат вычисляется с количеством разрядов, большим, чем разрядная сетка чисел, над которыми производится операция. Если используется двоичный код, то достаточно одного лишнего разряда. В этом случае округление заключается в прибавлении к этому дополнительному младшему разряду предварительного результата единицы. Если в дополнительном разряде был получен нуль, это не вызовет переноса единицы в основные разряды. Если же в дополнительном разряде записана единица, то предварительный результат будет увеличен на единицу младшего разряда. После проведения этих действий дополнительный разряд отбрасывается. Таким образом, при выполнении операций сложения и вычитания возникает проблема выравнивания порядков чисел, то есть, прежде всего, должен быть проведен анализ знаков и величин порядков. Для упрощения операций над порядками в ЭВМ порядок всех чисел увеличивается на одно и то же число так, чтобы порядок наименьшего числа, представимого в машине, был бы неотрицательным, то есть машинный порядок всех чисел n m удовлетворяет условию n m = n+K, где K=|max n| +1 Например, если для хранения порядка выделено 6 разрядов, то |max n | = 11111 2 = 63 10 , так что n m = n+ 64, то есть 0≤n m ≤127. Таким образом, порядки всех чисел в машине становятся положительными, и анализ знака порядка теряет смысл. Отметим, что при представлении чисел с плавающей запятой отдельно кодируются мантисса и порядок. При этом возможно представление мантисс и порядков чисел в одном и том же или разном кодах. Например, порядок числа может быть представлен в прямом, а мантисса - в дополнительном кодах и т.п. Таким образом, в общем случае сложение и вычитание чисел с плавающей запятой состоит из следующих этапов: • сравнивание порядков чисел; • выравнивание порядков чисел; 11110010 11010111 11001001 + 17 • перевод мантисс слагаемых в обратный или дополнительный модифицированные коды; • сложение мантисс в прямом, обратном или дополнительном кодах; • исправление нормализации вправо или влево; • перевод мантиссы результата в прямой код; • выдача результата с учетом порядка. 3. БАЗОВЫЕ ФУНКЦИОНАЛЬНЫЕ ЭЛЕМЕНТЫ ЭВМ 3.1. Вентили, последовательностные логические схемы В вычислительной технике существует понятие логически активных элементов. способных выполнять простейшие действия по преобразованию информации, представленной либо в виде электрических сигналов, либо в виде характеристик намагниченности, света, состояния молекул и т.п. Вне зависимости от физического представления логически активный элемент реализует какую-либо функцию булевой алгебры. Такие элементы называются вентилями. Основу вентилей составляют крошечные полупроводниковые приборы - транзисторы. Способ объединения транзисторов определяет внутреннюю структуру соответствующего вентиля. Каждый вентиль в соответствии со своей внутренней структурой по-своему изменяет комбинацию импульсов, поступающих на его входы. Три типа логических элементов являются основными (базовыми) - И, ИЛИ, НЕ. 1) Вентиль И. Реализует логическую операцию конъюнкции. Условное обозначение Таблица истинности операции X 1 Х 2 X 1 ^ Х 2 0 0 1 1 0 1 0 1 0 0 0 1 2) Вентиль ИЛИ. Реализует логическую операцию дизъюнкции. Условное обозначение Таблица истинности операции X 1 Х 2 X 1 ∨ Х 2 0 0 1 1 0 1 0 1 0 1 1 1 3) Вентиль НЕ. Реализует логическую операцию отрицания. Условное обозначение Таблица истинности операции X X ഥ 0 1 1 0 Последовательностные логические схемы. Последовательностные логические схемы, или схемы с памятью, представляют собой функциональные элементы, имеющие n входов и m выходов. Значения выходов таких схем в какой-то момент времени являются функциями от значений на входах в этот же момент времени и в некоторое конечное число предыдущих моментов времени. Очевидно, что значения в предыдущие моменты времени должны храниться внутри схемы, то есть некоторым образом запомниться (например, в виде внутренних переменных). Отсюда название - "схемы с памятью". И ИЛИ НЕ 18 В общем случае состояние схемы меняется каждый раз с появлением новых входных данных. Будем рассматривать схемы, у которых значения выходных переменных в момент времени t зависит от значений входных переменных, поступивших в этот момент, и от внутреннего состояния схемы, сложившегося к этому моменту. Таким образом, предполагается, что схемы срабатывают в дискретные моменты времени по определенным временным тактам. Очень часто в качестве внутренних переменных, характеризующих состояние системы в момент t i+1 используются значения выходных переменных, полученные в момент t i . Такие схемы называются схемами с обратными связями. Ниже рассматриваются примеры основных схем с памятью, важных для понимания принципов работы аппаратных блоков ЭВМ. Триггеры. Простейшие последовательностные схемы с обратными связями. Цифровая обратная связь позволяет как бы "удержать" сигнал на выходе после окончания воздействия входного сигнала, то есть придает схеме способность сохранять состояние 0 или 1. Схема, способная хранить ("запоминать") 0 или 1, называется триггером. Триггер-защелка. Работающий по вышеприведенным законам простейший триггер называется базовым или триггером-защелкой (рис. 1.). S - сигнал установки в единичное состояние, R - сигнал сброса (установки в нулевое состояние, Q, - выходные сигналы (основной и инверсный). Рис. 1. Триггер-защелка Если S и R держать в состоянии 1, то триггер не будет менять своего состояния. Для того, чтобы на выходе Q установить 1, на вход S следует подать 0. Для того, чтобы сделать равным 1, на R следует подать 0. Проанализируем результаты подачи на S и R всех возможных комбинаций значений. S=0, R=0. На выходе Q = = 1. S=0, R = 1. На выходе Q = 1, = 0. S= 1, R= 0. На выходе Q =0, = 1. S=1, R =1. Новые значения Q и совпадают с теми, которые имелись до этого момента. На основе триггера-защелки строятся триггеры, работающие по другим законам. Генератор тактовых сигналов (импульсов). Очевидно, что для срабатывания элементарного логического элемента (вентиля или триггера) необходимо некоторое время. Сигналы 0 или 1 устанавливаются на выходах логических схем через некоторое время I. Пока это время не пройдет, подавать новые сигналы на вход схемы нельзя. Устройство, вырабатывающее синхронизирующие импульсы (синхроимпульсы) в ЭВМ, называется генератором тактовых сигналов. Функционально синхроимпульс - это единичное значение некоторой входной переменной, причем любая логическая схема может выполнять свою работу только в том случае, если значение этой переменной равно 1. Значение 1 на синхронизирующем входе, логических схем держится в течение отрезка времени, равного длине синхроимпульса (длине такта). К началу следующего синхроимпульса все переходные процессы в электронных схемах должны быть завершены. Вход S Вход R Выход Q Выход И НЕ И НЕ Q Q Q Q Q Q Q 19 Величина такта I выбирается из следующего условия: она должна быть не меньше времени срабатывания самого медленного элемента в цепях логических схем. Реально же в ЭВМ существуют несколько серий синхроимпульсов различной длительности, соизмеримых между собой, которые направляются на разные устройства в соответствие со скоростями их срабатывания. Синхронизируемые триггеры. Различают два типа входов синхронизируемых триггеров - информационные и синхронизирующие. Сигналы на информационных входах и исходные состояния определяют, каким будет новое состояние триггера. Сигналы на синхронизирующих входах определяют время переключения (синхронизации). Простейший синхронизируемый триггер называется RS-триггером (set, reset - установить, переустановить, рис.2 ). Рис. 2. RS-триггер Вход S называется входом установки 1, вход R - входом сброса или установки в 0. Вход С является входом синхронизации. Изменить свое состояние синхронный RS-триггер может только в том случае, когда на вход С подан сигнал 1. Если на С-вход подается логический 0, на выходах 1-й и 2-й схем И-НЕ устанавливаются логические 1, и собственно триггер находится в режиме хранения информации. Если же на вход С на короткое время подать логическую 1 (С-импульс), то собственно триггер установится в состояние, зависящее от сигналов на входах S и R. Этим он отличается от триггера-защелки, который может изменить свое состояние в любой момент при подаче сигналов.S и R. В следующей таблице отражены все возможные варианты переходов (состояний) RS-триггера. Таблица состояний RS-триггера C S R Q t+1 Q ഥ t+1 Пояснения 1 0 0 Q t Q ഥ t Режим хранения информации S=R=0 или S=R=1 1 0 1 0 1 Режим установки 0 (Q t =0 или Q t =1) 1 1 0 1 0 Режим установки 1 (Q t =0 или Q t =1) 1 1 1 неопр. неопр. Запрещенная комбинация 0 x x Q t Q ഥ t Здесь Q t - состояние триггера в текущий временной такт, Q t+1 - состояние триггера в последующий временной такт. Как правило, рассматриваются синхронные (или тактируемые) схемы, которые меняют свое состояние только в том случае, когда переменная синхронизации равна 1. Такие моменты времени называются тактами. Состояние триггера при наличии логической 1 на обоих входах не определено, потому что бессмысленно требовать установки и сброса триггера одновременно. Состояние реального триггера при таких входных сигналах зависит от его устройства. Триггер задержки. Триггер задержки или D-триггер (delay - задержка) имеет только один информационный вход (рис. 3.). И НЕ И НЕ S R Q И НЕ И НЕ (а) - структура Q S C T R Q (б) - обозначение Q C 20 Рис. 3. D-триггер Легко убедиться, что после С-импульса триггер повторяет сигнал на входе D. D-триггер выполняет только функции хранения поданного на его входы значения. И это значение может быть считано (скопировано) сколько угодно раз, пока его не сменит новое значение. Таким образом, триггерная схема имеет два устойчивых состояния и является, во-первых, запоминающим устройством на один разряд, и, во-вторых, логическим устройством, меняющим свое состояние в зависимости от приходящих на вход сигналов. Т-триггер. Простой Т-триггер с одним (счетным) входом функционирует следующим образом: с приходом каждого нового сигнала, равного 1, триггер меняет свое внутреннее состояние на противоположное (рис.4.). Рис.4. Т-триггер Регистры и счетчики. Триггеры - это элементы, на основе которых строятся регистры различного назначения. Перечислим некоторые из этих устройств. 1) Сдвиговый регистр. Регистр с последовательной записью и последовательным считыванием информации. При каждом импульсе управления весь код (содержимое) регистра смещается по отношению к цепочке триггеров на одну позицию влево или вправо. На рис. 5. изображена структура и схема функционирования сдвигового регистра влево. Рис. 5. Сдвиговый регистр Сдвиговый регистр функционирует по следующему алгоритму. В такт t+1 из каждого разряда 1 регистра в соседний слева (старший) разряд поступает соответствующее значение, то есть вся информация, расположенная в разрядах регистра, сдвигается на один разряд. При этом младший разряд устанавливается в состояние, соответствующее сигналу, появившемуся на единственном входе регистра. Очевидно, что регистр с последовательной записью и последовательным считыванием может быть реализован на основе d-триггеров. Заметим, что сдвиг влево содержимого регистра, трактуемого как число, эквивалентен умножению исходного числа на 2, а сдвиг вправо - делению этого числа на 2. считывание запись очистка тактовый сигнал С разряды … регистр И НЕ S C T R D T 1 Q (а) - структура Q D TT T Q (б) - обозначение Q (в) – таблица состояний T Q t Q t+1 0 0 0 0 1 1 1 1 0 1 0 1 И НЕ S C T R D C 1 Q (а) - структура Q D T C D C Q (б) - обозначение Q (в) – таблица состояний D Q t+1 Q ഥ t+1 0 0 1 1 1 0 21 2) Регистр с параллельной записью и параллельным считыванием. Такой регистр может быть реализован на RS- и D-триггерах; схема регистра изображена на рис. 6. Рис. 6. Схема регистра с параллельной записью и параллельным считыванием 3) Регистр-счетчик. На каждом такте при подаче на вход регистра-счетчика (или суммирующего счетчика) 1 величина хранимого в нем числа увеличивается на 1. Схема регистра изображена на рис. 7. Рис. 7. Схема регистра-счетчика Функционирует регистр-счетчик следующим образом. На Т-вход младшего разряда регистра в каждый такт поступает сигнал 0 или 1. Сигналы 1 пересчитываются с использованием Т-триггеров, которые с приходом 1 меняют значение (внутреннее состояние) на противоположное. Схемы И управляют переносами из разряда в разряд. Заметим, что каждый Т-триггер соединяется со схемой И выходом со старым значением своего внутреннего состояния. 4) Инвертируемый регистр. Если разряды регистра реализованы с использованием Т-триггеров, то, направляя параллельно на все Т-входы разрядов единичный сигнал, можно значения разрядов инвертировать. Схемы регистров, используемых в современных ЭВМ, часто многофункциональны. Так, например, для выполнения операций часто значения операндов предварительно должны быть преобразованы в требуемую форму. Для операция вычитания требуется, чтобы один из операндов был инвертирован. Для реализации арифметических действий над числами с плавающей запятой необходимо выравнивание порядков, то есть выполнение операции сдвига на определенное количество разрядов, для чего необходимо иметь счетчик сдвигов, и так далее. Вид функции, которую должна выполнять схема такого многофункционального регистра, выбирается на основе комбинации значений сигналов управления. Эти сигналы вырабатываются устройством управления в процессе расшифровки команд программы. 3.2. Комбинационные схемы, понятие об интегральной схеме Кроме регистров в состав ЭВМ входят схемы для выполнения множества разнообразных функций. Так например, в состав арифметико-логического устройства, входящего в состав центрального процессора , должны быть включены схемы реализации операций сложения, вычитания двоичных чисел, в состав устройства управления - схемы И Т-вход И Q T C Q И Q T C Q И Q T C Q Q T Q … C X n-1 … X 1 X 0 … Y n-1 … Y 1 Y 0 сброс С 22 дешифровки кода операции, заданной в команде, и т.д. Все эти схемы относятся к, так называемым, комбинационным схемам. В отличие от схем с памятью, значения переменных на выходе комбинационной логической схемы однозначно зависят только от значения входных переменных. Далее обсуждается несколько комбинационных схем, занимающих важное место в функционировании ЭВМ. Полусумматор. На рис. 8. представлена схема сложения одноразрядных двоичных чисел, которую в своей работе может использовать арифметико-логическое устройство. Обозначения: X и Y - входные переменные схемы, S - выходная переменная соответствующая сумме, С - выходная переменная, определяющая возможный перенос (переполнение). Рис. 8. Схема сложения одноразрядных двоичных чисел в полусумматоре Полный одноразрядный сумматор. Полусумматор, дополненный третьим входом - значением разряда переноса из соседнего младшего разряда (рис. 9.). 0 X Y 0+0 0 0 0 0 И НЕ ИЛИ 1 0 0 C И 0 S 0 X Y 1+0 1 0 1 0 И НЕ ИЛИ 1 1 0 C И 1 S 0 X Y 0+1 0 1 0 1 И НЕ 1 1 0 C И 1 S ИЛИ 1 X Y 1+1 1 1 1 И НЕ 0 1 1 C И 0 S ИЛИ 1 23 Рис. 9. Схема полного одноразрядного сумматора Сумматор. Многоразрядный сумматор получается последовательным соединением одноразрядных сумматоров (рис. 10.). Рис. 10. Схема многоразрядного сумматора Появление 1 на линии переполнения указывает на возникновение переноса из старшего разряда при сложении двух целых чисел (ситуация переполнения). При соединении линии переполнения с линией циклического переноса сумматор может складывать числа, представленные в обратном коде. При сложении чисел в прямом коде по линии циклического переноса в полный сумматор младшего разряда должен быть подан 0. |