Становление и эволюция цифровой вычислительной техники 6 страница

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

 

Логические данные

 

Элементом логических данных является логическая (булева) переменная, которая может принимать лишь два значения: «истина» или «ложь». Кодирование логического значения принято осуществлять битом информации: единицей кодируют истинное значение, нулем — ложное. Как правило, в ВМ оперируют наборами ло­гических переменных длиной в машинное слово. Обрабатываются такие слова с помощью команд логических операций (И, ИЛИ, НЕ и т. д.), при этом все биты обрабатываются одинаково, но независимо друг от друга, то есть никаких переносов между разрядами не возникает.

 

Строки

 

Строки — это непрерывная последовательность битов, байтов, слов или двойных слов. Битовая строка может начинаться в любой позиции байта и содержать до 232 бит. Байтовая строка может состоять из байтов, слов или двойных слов. Длина такой строки варьируется от нуля до 232 - 1 байт (4 Гбайт). Приведенные цифры характерны для превалирующих в настоящее время 32-разрядных ВМ.

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

 

Прочие виды информации

 

Представляемая в ВМ информация может быть статической или динамической [33]. Так, числовая, символьная и логическая информация является статической — ее значение не связано со временем. Напротив, аудиоинформация имеет динамический характер — существует только в режиме реального времени и не может быть остановлена для более подробного изучения. Если изменить масштаб времени, аудиоинформация искажается, что используется, например, для создания звуковых эффектов.

 

Видеоинформация

 

Видеоинформация бывает как статической, так и динамической. Статическая видеоинформация включает в себя текст, рисунки, графики, чертежи, таблицы и др. Рисунки делятся также на плоские — двумерные и объемные — трехмерные.

Динамическая видеоинформация — это видео-, мульт- и слайд-фильмы. В их основе лежит последовательное экспонирование на экране в реальном масштабе времени отдельных кадров в соответствии со сценарием. Динамическая информация используется либо для передачи движущихся изображений (анимация), либо для последовательной демонстрации отдельных кадров (слайд-фильмы).

Для демонстрации анимационных и слайд-фильмов опираются на различные принципы. Анимационные фильмы демонстрируются так, чтобы зрительный аппарат человека не мог зафиксировать отдельных кадров (для получения качественной анимации кадры должны сменяться порядка 70 раз/с). При демонстрации слайд-фильмов каждый кадр экспонируется на экране столько времени, сколько необходимо для восприятия его человеком (обычно от 30 с до 1 мин). Слайд-фильмы можно отнести к статической видеоинформации.

В вычислительной технике существует два способа представления графических изображений: матричный (растровый) и векторный. Матричные (bitmap) форматы хорошо подходят для изображений со сложными гаммами цветов, оттенков и форм, таких как фотографии, рисунки, отсканированные данные. Векторные форматы более приспособлены для чертежей и изображений с простыми формами, тенями и окраской.

В матричных форматах изображение представляется прямоугольной матрицей точек — пикселов (picture element), положение которых в матрице соответствует координатам точек на экране. Помимо координат каждый пиксел характеризуется своим цветом, цветом фона или градацией яркости. Количество битов, выделяемых для указания цвета пиксела, изменяется в зависимости от формата. В высококачественных изображениях цвет пиксела описывают 24 битами, что дает около 16 млн цветов. Основной недостаток матричной (растровой) графики заключается в большой емкости памяти, требуемой для хранения изображения, из-за чего для описания изображений прибегают к различным методам сжатия данных. В настоящее время существует множество форматов графических файлов, различающихся алгоритмами сжатия и способами представления матричных изображений, а также сферой применения. Некоторые из распространенных форматов матричных графических файлов перечислены в табл. 2.11.

 

Таблица 2.11. Матричные графические форматы

 

 

Обозначение Полное название
BMP Windows и OS\2 Bitmap
GIF Graphics Interchange Format
PCX PC Paintbrush File Format
JPEG Joint Photographic Experts Group
TIFF Tagged Image File Format
PNG Portable Network Graphics .

 

Векторное представление, в отличие от матричной графики, определяет описание изображения не пикселами, а кривыми — сплайнами. Сплайн — это гладкая кривая, которая проходит через две или более опорные точки, управляющие формой сплайна. В векторной графике наиболее распространены сплайны на основе кривых Безье. Суть сплайна: любую элементарную кривую можно построить, зная четыре коэффициента Р(), Р„ Р2 и Р3, соответствующие четырем точкам на плоскости. Перемещение этих точек влечет за собой изменение формы кривой (рис. 2.31).

 

Рис. 2.31. Варианты сплайнов

 

Хотя это может показаться более сложным, но для многих видов изображений использование математических описаний является более простым способом. В векторной графике для описания объектов используются математические формулы. Это позволяет при рисовании объектов вычислять, куда необходимо помещать реальные точки изображения. Имеется ряд простейших объектов, или примитивов, например эллипс, прямоугольник, линия. Эти примитивы и их комбинации служат основой для создания более сложных изображений. В простейшем случае изображение может быть составлено из отрезков линий, для которых задаются начальные координаты, угол наклона, длина, толщина линии, цвет линии и цвет фона.

Основное достоинство векторной графики — описание объекта, является простым и занимает мало памяти. Кроме того, векторная графика в сравнении с матричной имеет следующие преимущества:

· простота масштабирования изображения без ухудшения его качества;

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

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

 

Таблица 2.12. Векторные графические форматы

 

 

Обозначение Полное название
dxf drawing interchange format
cdr corel drawing
hpgl hewlett-packard graphics language
ps postscript
svg scalable vector graphics
vsd microsoft visio format

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

 

Таблица 2.13. Форматы метафайлов

 

Обозначение Полное название
eps encapsulated postscript
wmf windows metafile
cgm computer graphics metafile

 

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

 

Аудиоинформация

 

Понятие аудио связано со звуками, которые способно воспринимать человеческое ухо. Частоты аудиосигналов лежат в диапазоне от 15 Гц до 20 КГц, а сигналы по своей природе являются непрерывными (аналоговыми). Прежде чем быть представленной в ВМ, аудиоинформация должна быть преобразована в цифровую форму (оцифрована). Для этого значения звуковых сигналов (выборки, samples), взятые через малые промежутки времени, с помощью аналого-цифровых преобразователей (АЦП) переводятся в двоичный код. Обратное действие выполняется цифро-аналоговыми преобразователями (ЦАП). Чем чаще производятся выборки, тем выше может быть точность последующего воспроизведения исходного сигнала, но тем большая емкость памяти требуется для хранения оцифрованного звука.

Цифровой эквивалент аудиосигналов обычно хранится в виде файлов, причем широко используются различные методы сжатия такой информации. Как правило, к методам сжатия аудиоинформации предъявляется требование возможности восстановления непрерывного сигнала без заметного ухудшения его качества. В настоящее время распространен целый ряд форматов хранения аудиоинформации. Некоторые из них перечислены в табл. 2.14.

 

Таблица 2.14. Форматы аудиофайлов

 

 

Обозначение Полное название
A VI Audio Video Interleave
WAV WAVcform Extension
MIDI Musical Instrument Digital Interface
AIF Audio Interchange Format
MPEG Motion Picture Expert Group Audio
RA Real Audio

 

Типы команд

 

Несмотря на различие в системах команд разных ВМ, некоторые основные типы операций могут быть найдены в любой из них. Для описания этих типов примем следующую классификацию:

· команды пересылки данных;

· команды арифметической и логической обработки;

· команды работы со строками;

· команды SIMD;

· команды преобразования;

· команды ввода/вывода;

· команды управления потоком команд.

 

Команды пересылки данных

 

Это наиболее распространенный тип машинных команд. В таких командах должна содержаться следующая информация:

· адреса источника и получателя операндов — адреса ячеек памяти, номера регистров процессора или информация о том, что операнды расположены в стеке;

· длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно;

· способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда.

Рассматриваемая группа команд обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти — к типу «память-память».

 

Команды арифметической и логической обработки

 

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

Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: Z (Zero) — нулевой результат; N (Negative) — отрицательный результат; V (oVerflow) — переполнение разрядной сетки; С (Carry) — наличие переноса.

 

Операции с целыми числами

 

К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести:

· двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление;

· одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда;

· операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами (=, <>, >, <, <=, >=).

Часто этот перечень дополняют такими операциями, как вычисление остатка от целочисленного деления, сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент), уменьшение значения операнда на единицу (декремент).

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

 

Операции с числами в форме с плавающей запятой

 

Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:

· основные арифметические операции: сложение, вычитание, умножение и деление;

· операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков: =, <>, >, <, <=, >=;

· операции преобразования: формы представления (между фиксированной и плавающей запятой), формата представления (с одинарной и двойной точностью).

 

Логические операции

 

Стандартная система команд ВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций — это «НЕ», «И», «ИЛИ» и сложение по модулю 2.

 

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

 

В дополнение к побитовым логическим операциям, практически во всех АСК предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов (рис. 2.32).

 

Рис. 2.32. Варианты операций сдвига

 

При логическом сдвиге влево или вправо (см. рис. 2.32, а), сдвигаются все разряды слова. Биты, вышедшие за пределы разрядной сетки, теряются, а освободившиеся позиции заполняются нулями.

При арифметическом сдвиге (см. рис. 2.32, б) данные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево — нулями. Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2.

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

 

Операции с десятичными числами

 

Десятичные числа представляются в ВМ в двоично-кодированной форме. В вычислительных машинах первых поколений для обработки таких чисел предусматривались специальные команды, обеспечивавшие выполнение основных арифметических операций (сложение, вычитание, умножение и деление). В АСК современных машин подобных команд обычно нет, а соответствующие вычисления имитируются с помощью команд целочисленной арифметики.

 

SIMD-команды

 

Название данного типа команд представляет собой аббревиатуру от Single Instruction Multiple Data — буквально «одна инструкция — много данных». В отличие от обычных команд, оперирующих двумя числами, SIMD-команды обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами). Операнды таких команд обычно представлены в одном из упакованных форматов.

Идея SIMD-обработки была выдвинута в Институте точной механики и вычислительной техники им. С. А. Лебедева в 1978 году в рамках проекта «Эльбрус-1». С 1992 года команды типа SIMD становятся неотъемлемым элементом АСК микропроцессоров фирм Intel и AMD. Поводом послужило широкое распространение мультимедийных приложений. Видео, трехмерная графика и звук в ВМ представляются большими массивами данных, элементы которых чаще всего обрабатываются идентично. Так, при сжатии видео и преобразовании его в формат MPEG один и тот же алгоритм применяется к тысячам битов данных. В трехмерной графике часто встречаются операции, которые можно выполнить за один такт: интерполирование и нормировка векторов, вычисление скалярного произведения векторов, интерполяция компонентов цвета и т. д. Включение SIMD-команд в АСК позволяет существенно ускорить подобные вычисления.

Первой на мультимедийный бум отреагировала фирма Intel, добавив в систему команд своего микропроцессора Pentium ММХ 57 SIMD-команд. Название ММХ (MultiMedia eXtention — мультимедийное расширение) разработчики обосновывали тем, что при выборе состава новых команд были проанализированы алгоритмы, применяемые в различных мультимедийных приложениях. Команды ММХ обеспечивали параллельную обработку упакованных целых чисел. При выполнении арифметических операций каждое из чисел, входящих в группу, рассматривается как самостоятельное, без связи с соседними числами. Учитывая специфику разрабатываемой информации, команды ММХ реализуют так называемую арифметику с насыщением: если в результате сложения образуется число, выходящее пределы отведенных под него позиций, оно заменяется наибольшим двоичным числом, которое в эти позиции вмещается. На рис. 2.33 показано сложение двух групп четырехразрядных целых чисел, упакованных в 32-разрядные слова.

 

Рис. 2.33. Сложение с насыщением упакованных целых чисел

 

Следующим шагом стало создание новых наборов SIMD-команд, работающих также с операндами, представленными в виде упакованных чисел с плавающей запятой. Такие команды в соответствующих приложениях повышают производительность процессора примерно вдвое. Первой подобную технологию в середине 1998 года предложила фирма AMD в микропроцессоре Кб-2. Это мультимедийное расширение включало в себя 21 SIMD-команду и получило название 3DNow!. Расширение 3DNow! в дополнение к SIMD-обработке целочисленной информа­ции типа ММХ позволяло оперировать парой упакованных чисел в формате с плавающей запятой.

Полугодом позже фирма Intel ввела в свои микропроцессоры так называемые потоковые SIMD-команды, обозначив их аббревиатурой SSE — Streaming SIMD Extension (потоковая обработка по принципу «одна команда — много данных»). Сначала это были 70 команд в микропроцессоре Pentium III. Команды дополняли групповые целочисленные операции ММХ и расширяли их за счет групповых операций с 32-разрядными вещественными числами.

В зависимости от типа чисел (целые или вещественные) команды SSE делятся на три категории:

· работа с упакованными группами целых чисел, которые могут иметь размер байта, слова, двойного слова или квадрослова (количество чисел в группе зависит от их разрядности и от разрядности всей группы — 64 или 128);

· оперирование одной парой 32-разрядных или 64-разрядных чисел с плавающей запятой (обычная или двойная точность);

· обработка четырех пар вещественных чисел обычной точности или двух пар вещественных чисел двойной точности.

Дальнейшее развитие технологии SSE вылилось в SSE2 и получило реализацию в Pentium 4. Этот вариант включает в себя 271 команду и позволяет выполнять групповые арифметические и логические операции, сдвиги, сравнения чисел, перегруппировку и извлечение отдельных чисел, различные варианты пересылок. За один такт обрабатываются четыре 32-разрядных числа с плавающей запятой, упакованных в 128-разрядное слово.

Новый импульс получила и технология 3DNow!, более совершенный вариант которой получил название Enhanced 3DNow!. Этот набор команд близок к SSE2.

Таблица 2.15 дает представление о том, какие из рассмотренных мультимедийных расширений поддерживаются наиболее популярными микропроцессорами класса Pentium.

 

Таблица 2.15. Поддержка мультимедийных расширений в различных микропроцессорах

 

 

  MMX 3DNow! SSE SSE2
VIA СЗ Да Да Нет Нет
Celeron-2, Pentium III Да Нет Да Нет
Pentium 4 Да Нет Да Да
Duron Да Да Да Нет
Athlon XP Да Да Да Нет

 

Еще один вариант архитектуры системы команд с SIMD-командами воплощен фирмой IBM в процессорах серии PowerPC. Эта реализация носит название AltiVec и во многих отношениях превосходит вышеупомянутые расширения АСК. В частности, имеются трехоперандные команды, допускаются нестандартные целочисленные форматы, например «упаковка» из 1 + 5 + 5 + 5 битов.

 

Команды для работы со строками

 

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

 

Команды преобразования

 

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

 

Команды ввода/вывода

 

Команды этой группы могут быть подразделены на команды управления периферийным устройством (ПУ), проверки его состояния, ввода и вывода.

Команды управления периферийным устройством служат для запуска ПУ и указания ему требуемого действия. Например, накопителю на магнитной ленте может быть предписано на необходимость перемотки ленты или ее продвижения вперёд на одну запись. Трактовка подобных инструкций зависит от типа ПУ. Команды проверки состояния ввода/вывода применяются для тестирования различных признаков, характеризующих состояние модуля В/ВЫВ и подключенных к нему ПУ. Благодаря этим командам центральный процессор может выяснить, включено ли питание ПУ, завершена ли предыдущая операция ввода/вывода, возникли ли в процессе ввода/вывода какие-либо ошибки и т. п. Собственно обмен информацией с ПУ обеспечивают команды ввода и вывода. Команды ввода предписывают модулю В/ВЫВ получить элемент данных (байт или слово) от ПУ и поместить его на шину данных, а команды вывода — заставляют модуль В/ВЫВ принять элемент данных с шины данных и переслать его на ПУ.

 

Команды управления системой

 

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

 

Команды управления потоком команд

 

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

В системе команд ВМ можно выделить три типа команд, способных изменить последовательность вычислений:

· безусловные переходы;

· условные переходы (ветвления);

· вызовы процедур и возвраты из процедур.

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

Согласно приведенным данным, среди команд рассматриваемой группы доминируют условные переходы.

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

 

Рис. 2.34. Частота использования команд управления потоком команд

 

команды обязательно входят в АСК любой ВМ. Для их обозначения в языке ассемблера обычно используется английское слово jump (прыжок). Команда безусловного перехода обеспечивает переход по заданному адресу без проверки каких-либо условий.

Условный переход происходит только при соблюдении определенного условия, в противном случае выполняется следующая по порядку команда программы. Большинство производителей ВМ в своих ассемблерах обозначают подобные команды словом branch (ветвление). Статистика случаев, когда переход имеет место, приведена на рис. 2.35.

 

Рис. 2.35. Частота выполнения условия перехода

 

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

В системе команд ВМ для каждого признака результата предусматривается своя команда ветвления (иногда — две: переход при наличии признака и переход при его отсутствии). Большая часть условных переходов связана с проверкой взаимного соотношения двух величин или с равенством (неравенством) некоторой величины нулю. Последний вид проверок используется в программах наиболее интенсивно, о чем свидетельствуют статистические данные, приведенные на рис. 2.36. На верхней диаграмме показаны частоты употребления разных видов условий для программ GCC, Spice и ТеХ, выполнявшихся на ВМ MIPS 2000. Нижняя диаграмма дает представление о результатах, полученных для двух тестовых смесей

 

Рис. 2.36. Средняя частота использования различных условий перехода в командах ветвления

 

программ, где в одной из смесей превалировали целочисленные вычисления, а в другой — вычисления с плавающей запятой.

Помимо приведенных на рис. 2.36 данных необходимо отметить, что по результатам тех же исследований доля команд, где проверяются простые условия (= или <>), составляет в среднем 50%. Кроме того, в качестве одного из операндов в командах, вычисляющих результат сравнения, как правило, выступает константа. Доля таких команд для уже упоминавшихся программ составляет: GCC — 84%, Spice - 92%, ТеХ - 83%.

Одной из форм команд условного перехода являются команды пропуска. В них адрес перехода отсутствует, а при выполнении условия происходит пропуск следующей команды, то есть предполагается, что отсутствующий в команде адрес следующей команды эквивалентен адресу текущей команды, увеличенному на длину пропускаемой команды. Такой прием позволяет сократить длину команд передачи управления.








Дата добавления: 2019-04-03; просмотров: 219;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.057 сек.