Сравнение вычислительной мощности эвм

Покупая компьютер, вы, должно быть, заметили, что для сравнения машин часто используется тактовая частота. В машине находится схема, которая называется тактовым генератором (clock oscillator). Это устройство генерирует импульсы, которые используются для координирования действий машины; чем чаще генератор вырабатывает импульсы, тем быстрее машина выполняет машинный цикл. Тактовая частота измеряется в герцах (Гц), причем 1 Гц равен одному циклу (или импульсу) в секунду. Тактовая частота настольных компьютеров варьирует от нескольких сот МГц (более старые модели) до нескольких ГГц (МГц сокращенно от мегагерц, что равно миллиону герц; ГГц сокращенно от гигагерц, что равно 1000 МГц).

К сожалению, различные модели процессоров могут выполнять разную работу за один цикл, поэтому одной тактовой частоты недостаточно для сравнения машин с разными процессорами. Сравнивая машины на базе процессоров PowerPC и Pentium, более разумно использовать специальные задачи для определения эффективности (performance). При этом эффективность двух машин сравнивается в процессе выполнения ими одной и той же программы, которая называется контрольной задачей (benchmark). Выбирая для сравнения тестовые задачи, соответствующие различным прикладным проблемам, можно получить результаты, которые являются важными для разных сегментов рынка. Машина, которая идеально подходит для решения одной прикладной задачи, не обязательно идеальна для решения другой.

В машинном языке, описанном в приложении В, коды операций 7, 8 и 9 используются для обозначения логических операций OR, AND и XOR соответственно. Каждый код подразумевает, что соответствующая логическая операция выполняется над содержимым двух указанных регистров и что результат операции помещается в другой определенный регистр. Например, команда 7АВС предписывает поместить результат выполнения операции OR над содержимым регистров В и С в регистр А.

Операции сдвига

Операции сдвига (shift) и циклического сдвига (rotation) служат для перемещения значений битов относительно регистра, их содержащего, и часто применяются для решения проблем с выравниванием, таких как подготовка байта для последующего использования его в маскировании или манипулирование мантиссой в представлении с плавающей точкой. Операции сдвига классифицируют на основании направления движения (вправо или влево) и цикличности. Такие принципы классификации приводят к множеству терминов, некоторые из них мы рассмотрим более подробно.

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

При другом методе лишний бит отбрасывается, а пустые позиции заполняются нулями. Такую операцию часто называют логическим сдвигом (logical shift). Подобный сдвиг влево можно использовать для умножения или деления дополнительных кодов на два. Сдвиг двоичной цифры влево соответствует умножению на два, точно так же как подобный сдвиг десятичной цифры соответствует умножению на десять. Деление на два можно выполнить, сдвинув двоичную цепочку вправо. В обоих случаях следует быть внимательным, чтобы не изменить знаковый разряд в определенных системах представления. Для этого пустая позиция, которая появляется на месте знакового бита, заполняется исходным значением. Операция сдвига, при которой не меняется знаковый разряд, называется арифметическим сдвигом (arithmetic shift).

Несмотря на наличие большого количества операций сдвига, машинный язык, описанный в приложении В, включает в себя только команду циклического сдвига вправо, которому соответствует код операции А. В этом случае первая шест-надцатеричная цифра операнда команды определяет регистр, в котором выполняется сдвиг, а остальная часть операнда указывает, на сколько битов нужно сдвинуть цепочку. Следовательно, команда А501 обозначает «выполнить циклический сдвиг вправо содержимого регистра 5 на один бит». Если регистр 5 первоначально содержал код A3, то после выполнения команды в нем будет находиться код D1 (рис. 2.9). При желании можно поэкспериментировать с тем, как выразить другие операции сдвига, комбинируя команды машинного языка, описанного в приложении В. Например, поскольку длина регистра равна восьми битам, циклический сдвиг на три бита вправо и циклический сдвиг на пять битов влево будет иметь один и тот же результат.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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