Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Фоннеймановская архитектура ВМ



Как программы (команды), так и относящиеся к программам данные хранятся в одной и той же памяти

Структурно основная память состоит из пронумерованных ячеек;

Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой, в последовательности, определяемой программой.

Неизменяемость в процессе работы топологии, архитектуры, списка команд.

Компьютеры, построенные на этих принципах, относят к типу фоннеймановских.

Алгоритм выборки команды в ВМ с фоннеймановской архитектурой.

Когда устройство управления завершит выполнение команды, оно должно выбрать следующую команду из памяти в РгК. Адрес следующей команды содержится в специальном регистре, называемом Счетчиком Команд (СчК). Всякий раз при выборке команды устройство управления одновременно увеличивает содержимое СчК на единицу, чтобы после выполнения команды можно было произвести выборку следующей. Таким образом, устройство управления работает с командами в порядке, в котором они помещены в ОЗУ.

Последовательность выборки команды:

а) копируется адрес следующей команды из СчК в РгАП (адрес 8 в примере на рис);

б) прибавляется 1 к содержимому СчК СчК:=СчК+1 (9);

в) содержимое ячейки (команда), которая адресуется РгАП, пересылается в РгД;

г) содержимое РгД копируется в РгК.

*РгАП – регистр адреса памяти

Представление чисел в ВМ.

Машинным изображением числа называют его представление в разрядной сетке ЭВМ. В вычислительных машинах применяются две формы представления чисел:

Пример: (естественная форма) 452,34 = 452340*10-3 = 0,0045234*105 = 0,45234*103(нормальная форма)

Всякое десятичное число, прежде чем оно попадает в память компьютера, преобразуется по схеме: X10 → X2 = M1 × [102]r

После этого осуществляется ещё одна важная процедура: мантисса с её знаком заменяется кодом мантиссы с её знаком; порядок числа с его знаком заменяется кодом порядка с его знаком.

Существуют следующие коды двоичных чисел:

Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций операцией сложения.

Сумматоры.

Арифметико-логическое устройство процессора (АЛУ) обязательно содержит в своем составе такие элементы как сумматоры. Эти схемы позволяют складывать двоичные числа.

Как происходит сложение? Допустим, требуется сложить двоичные числа 1001 и 0011. Сначала складываем младшие разряды (последние цифры): 1+1=10. Т.е. в младшем разряде будет 0, а единица – это перенос в старший разряд. Далее: 0 + 1 + 1(от переноса) = 10, т.е. в данном разряде снова запишется 0, а единица уйдет в старший разряд. На третьем шаге: 0 + 0 + 1(от переноса) = 1. В итоге сумма равна 1100.

Сумматор учитывает перенос из предыдущего разряда, поэтому имеет три входа.

Чтобы учесть перенос приходится схему усложнять. По-сути она получается, состоящей из двух полусумматоров.

Рассмотрим один из случаев. Требуется сложить 0 и 1, а также 1 из переноса. Сначала определяем сумму текущего разряда. Судя по левой схеме ИСКЛЮЧАЮЩЕЕ ИЛИ, куда входят a и b, на выходе получаем единицу. В следующее ИСКЛЮЧАЮЩЕЕ ИЛИ уже входят две единицы. Следовательно, сумма будет равна 0.

Теперь смотрим, что происходит с переносом. В один вентиль И входят 0 и 1 (a и b). Получаем 0. Во второй вентиль (правее) заходят две единицы, что дает 1. Проход через вентиль ИЛИ нуля от первого И и единицы от второго И дает нам 1.

Проверим работу схемы простым сложением 0 + 1 + 1 = 10. Т.е. 0 остается в текущем разряде, и единица переходит в старший. Следовательно, логическая схема работает верно.

Работу данной схемы при всех возможных входных значениях можно описать следующей таблицей истинности.

Арифметико-логические устройства. Их классификация.

Арифме́тико-логи́ческое устро́йство (АЛУ) (англ. arithmetic and logic unit, ALU) — блок процессора, который под управлением устройства управления (УУ) служит для выполнения арифметических и логических преобразований (начиная от элементарных) над данными, представляемыми в виде машинных слов, называемыми в этом случае операндами

По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.

По способу представления чисел различают АЛУ:

· для чисел с фиксированной точкой;

· для чисел с плавающей точкой;

· для десятичных чисел.

По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные. В блочном АЛУ операции над числами с фиксированной и плавающей точкой, десятичными числами и алфавитно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции, но значительно возрастают затраты оборудования. В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы..

Структура АЛУ для сложения и вычитания чисел с фиксированной точкой.

Операция сложения в АЛУ обычно сводится к арифметическому сложению кодов чисел путём применения инверсных кодов - дополнительного или обратного для представления отрицательных чисел. Обратный код имеет два представления нуля (+0, -0), что затрудняет анализ результата операции. Поэтому чаще используется дополнительный код.

Алгоритм сложения двоичных чисел с фиксированной запятой, при использовании дополнительного кода для представления отрицательных чисел, заключается в следующем. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд, или возникает перенос в знаковый разряд при отсутствии переноса из разряда знака, то происходит переполнение разрядной сетки. Такой результат получается как при отрицательной, так и положительной суммах. Если нет переносов из знакового и в знаковый разряд суммы или есть оба эти переноса, то переполнения нет. Если получен 0 в знаковом разряде, то сумма положительна и представлена в прямом коде. Если получена 1 в знаковом разряде, то сумма отрицательна и представлена в дополнительном коде.

На рис. 4.3.2 представлена упрощённая структурная схема АЛУ для операций сложения и вычитания n-разрядных (нулевой разряд знаковый) двоичных чисел с фиксированной запятой. редполагается, что отрицательные числа хранятся в памяти в дополнительном коде.

Рисунок 4.3.2- Структура АЛУ для операций сложения и вычитания

В состав АЛУ входят n-разрядный параллельный комбинационный сумматор См, регистр сумматора РгСМ, входные регистры сумматора РгA и РгB, входной регистр АЛУ Рг1.

Операнды читаются из оперативной памяти и поступают в АЛУ по входной ШД (в дальнейшем- ШВХ). Для рассматриваемой структуры АЛУ положительные числа должны быть представлены прямым кодом, а отрицательные - дополнительным. Первый операнд размещается в РгB (первое слагаемое или уменьшаемое), а второй в РгА (второе слагаемое или вычитаемое); Рг1 связан с РгA цепями прямой и инверсной передачи кода. Прямая передача используется при операции сложения, а инверсная - при операции вычитания. Результат операции выдается из АЛУ в оперативную память по выходной ШД (в дальнейшем- ШВЫХ).

Структура АЛУ для умножения чисел с фиксированной точкой.

Так как операция умножения относится к длинным операциям, для уменьшения времени ее выполнения существуют различные методы ускорения. Все методы делят на аппаратные и логические. И те и другие методы требуют дополнительных затрат оборудования. При использовании аппаратных методов дополнительные затраты оборудования прямопропорциональны числу разрядов. Данные методы вызывают усложнение схемы, ее удорожание и снижение надежности. Логические методы не зависят от разрядов операндов. Усложняется схема управления АЛУ(Алгоритм работы).Обычно применяется комбинация данных методов.

К аппаратным методам относятся:

1)выполнение операции сложения и сдвига позволяющие за 1 такт производить сдвиг информации сразу на несколько разрядов.

2)совмещение операций сложения и сдвига.

3)построение комбинационных схем множительных устройств (реализация табличного умножения).

Среди логических методов наиболее распространены методы позволяющие за один цикл умножения обработать сразу несколько разрядов множителя.

Структурная схема АЛУ для ускоренного умножения чисел в формате с фиксируемой запятой.

АЛУ вкл.

- Входной регистр множимого Рг1, -Регистры множителя Рг2 и Рг2’, -Сумматор для образования суммы частичных произведений,- РгА -для формирования частичного произведения,-РгВ -для накопления суммы частичных произведений, -Рг См -регистр суммы, -Сч- счетчик циклов, - Т-тригер коррекции

Последовательность выполнения операции состоит из следующих частей:

1. Начальная установка.

2. Вычисление суммы частичных произведений.

3. Вывод результата.

Методы ускорения умножения.

Методы ускорения умножения делятся на аппаратурные и логические. Как те, так и другие требуют дополнительных затрат оборудования. При использовании аппаратурных методов дополнительные затраты оборудования прямо пропорциональны числу разрядов в операндах. Эти методы вызывают усложнение схемы АЛУ.

Дополнительные затраты оборудования при реализации логических методов ускорения умножения не зависят от разрядности операндов. Усложняется в основном схема АЛУ. В ЭВМ для ускорения умножения часто используется комбинации этих методов.

К аппаратурным методам ускорения умножения относятся ускорение выполнения операций сложения и сдвига, введение дополнительных цепей сдвига, позволяющих за один такт производить сдвиг информации в регистрах сразу на несколько разрядов, совмещение по времени операций сложения и сдвига, построение комбинационных схем множительных устройств, реализующих «табличное» умножение.

Среди логических методов наиболее распространены в настоящее время методы, позволяющие за один шаг умножения обработать несколько разрядов множителя.

Структура АЛУ для деления чисел с фиксированной точкой.

При делении чисел с фиксированной запятой сама операция сводится к операциям вычитания (сложения) и сдвига.

Деление реализуется двумя основными способами:

1. Деление с неподвижным делимым и сдвигаемым вправо делителем.

2. Деление с неподвижным делителем и сдвигаемым вправо делимым.

3. Деление с неподвижным делителем с восстановлением остатка.

Алгоритм деления аналогичен алгоритму деления уголком, используемом при ручном счете.

Z=X/Y

X – делимое. Обычно представляется двойным словом (содержит 2n или 2n-1 разрядов), Y – делитель,

Z – частное (содержит n или n-1 разряд).

Данная схема имеет 2 разновидности:

1.1) Берутся модули от делимого и делителя. СчЦ (счетчик цикла) устанавливается в значение разрядности регистров.

1.2) Исходное значение частичного остатка делится равным старшим разрядам делимого двойной длины. Младшая и старшая часть делимого хранится в разных регистрах одинаковой длины.

1.3) Частичный остаток удваивается путем сдвига на 1 разряд влево. При этом в освободившийся при сдвиге младший разряд частичного остатка заносится очередная цифра делимого из разрядов младшей половины делимого (регистр 2 нулевой разряд).

1.4) Из сдвинутого частичного остатка вычитается делитель и анализируется знак результата вычитания. Если результат вычитания положителен, то очередная цифра частного равна 1, если результат вычитания отрицателен, то очередная цифра равна 0.

Данные этапы выполняются последовательно для получения всех цифр модуля частного.

1.5) Происходит вычисление знака частного (XOR).

Существует другой метод деления – деление без восстановления остатка.

Данные два способа отличаются последовательностью вычисления частного и остатка. В первом методе сначала вычислялось частное, потом вычислялся остаток, во втором методе одновременно вычислялся (на каждом цикле) и частное, и остаток.

Этапы алгоритма деления без восстановления остатка:

1) Берутся модули от делимого и делителя, в СчЦ (счетчик цикла) устанавливается значение разрядности регистров.

2) Исходное значение частичного остатка делается равным старшим разрядам делимого двойной длины. Младшая и старшая часть делимого содержатся в разных регистрах одинаковой длины.

3) Частичный остаток удваивается путем сдвига на 1 разряд влево. При этом в освобождающийся при сдвиге младший разряд заносится очередная цифра делимого.

4) Если остаток больше нуля, то из сдвинутого частичного остатка вычитается делитель; если остаток меньше нуля, то к сдвинутому частичному остатку прибавляется делитель.

5) Если результат вычитания больше нуля, то очередная цифра модуля частного равна 1; если результат вычитания меньше нуля, то очередная цифра модуля частного равна 0. Данные этапы выполняются до получения всех цифр модуля частного.

6) Определяется знак частного (XOR)

1. АЛУ для выполнения различных арифметических действий структурно почти идентичны, что позволяет реализовать как блочные, так и многофункциональные АЛУ.

2. Ускорение вычислений может достигаться алгоритмически (появление новых связей, изменение алгоритма работы) либо улучшением элементной базы (внедрение 2n, 4n разрядных устройств).

Операции десятичной арифметики.

Арифметические операции над десятичными числами (сло­жение, вычитание, умножение, деление) выполняются аналогич­но операциям над целыми двоичными числами. Основой АЛУ десятичной арифметики является сумматор двоично-деся­тичных кодов. Такой сумматор, как правило, строится на осно­ве двоичного путем добавления некоторых цепей.

Рассмотрим, каким образом можно выполнить сложение двоично-десятичных кодов. Пусть необходимо сложить модули двух двоично-десятичных чисел X и Y. Первое слагаемое X преобразуем в код с избытком 6 (обозначим Х6), полу­чаемый путем прибавления к каждой цифре X двоичного числа 6. Переход от X к Х6 изменяет все тетрады X так, что в каждой тетраде Х6 находится число 6 - 15.

Складывая Х6 и Y по правилам двоичного сложения, полу­чаем результат Z'. В Z' одни тетрады совпадают, а другие не совпадают с тетрадами двоично-десятичной суммы Z.

Если результат сложения в i-м разряде X [i] + Y[i] + Р [i] >= 10, где Р [i] - десятичный перенос в i-й разряд, то i-я десятичная цифра Z [i] = X [i] + Y[i] + Р [i] – 10 и Р [i + 1] = 1, где Р [i + 1] - десятичный перенос в (i + 1)-й разряд. Для Z'[i] в этом случае получаем

Z'[i] = Х6[1] + У[i] +P[i] - 16= 6+ X[i] + Y[i] + Р[i] - 16 = Z[i].

При этом возникает перенос в (i+1)-ю тетраду.

Если 1-я десятичная цифра Z(i) должна получаться из X [i] + Y[i] + Р [i] < 10, то Z[i] = X [i] + У[i] + Р [i] и Р[i+1] = 0.

Для Z'(i) в этом случае получаем

Z’[i] =X6[i] + Y[i] + Р[i] = 6 + Х[i] + У[i] + Р[i] =Z[i] + 6.

Перенос в (i + 1)-ю тетраду здесь не возникает (Р[i+1] = 0), так как

Z' [i] < 16.

Таким образом, складывая Х6 и Y как двоичные числа, по­лучаем Z'. В Z' тетрады, из которых возникал перенос, совпа­дают с тетрадами двоично-десятичного результата Z, а те­трады, из которых не было переноса при сложении, предста­влены с избытком 6. Для получения суммы Z необходимо откорректировать Z' путем уменьшения на 6 тех тетрад Z, из которых не было переноса при сложении Х6 и Y.

Вычитание числа 6 из тетрад, требующих коррекции, можно ре­ализовать путем подсуммирования числа 10 с одновременным игно­рированием переноса, возникающего при этом из тетрад. Если Z' [i] нуждается в коррекции, то Z' [i] = Z[i]+ 6. Поэтому Z'[i] + 10 >= 16, значит, после прибавления 10 из тетрады возни­кнет перенос, т. е. в тетраде останется (Z' [i] + 10)-16 = Z[i]-6.





Дата публикования: 2015-02-03; Прочитано: 292 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...