Размещение числовых данных в памяти
В современных ВМ разрядность одной ячейки памяти, как правило, равна одному байту. Длина кодов чисел, в зависимости от используемых типов данных, составляет 2, 4, 8 или 16 байт. В памяти ВМ числа хранятся в нескольких ячейках с последовательными адресами, для доступа к числу указывается наименьший из адресов. При разработке архитектуры системы команд определяется порядок размещения байтов в памяти, то есть какому из байтов (старшему или младшему) будет соответствовать наименьший адрес. На рис. 2.9 приведены оба варианта размещения 32-разрядного числа в четырех последовательных ячейках памяти, начиная с адреса z.
31 Старший байт | Младший байт 0 | ||||||||||||||||||||||||||||||
![]() | ![]() | ![]() | ![]() | ||||||||||||||||||||||||||||
| |||||||||
|
|
| |||||||
31 Младший байт | Cтарший байт 0 | ||||||||||||||||||||||||||||||
![]() | ![]() | ![]() | ![]() | ||||||||||||||||||||||||||||
![]() |
Оба способа записи в вычислительном плане равноценны. Такие фирмы DEC и Intel отдают предпочтение размещения младшего байта по меньшему адресу, фирмы Motorola и IBM используют противоположный вариант. В настоящее время в большинстве ВМ предусматривается использование обоих вариантов (выбор может быть произведен программным путем соответствующей установкой регистра конфигурации).
Представление нечисловой информации в ВМ
Символьная информация
Спектр применения вычислительной техники постоянно расширяется, разрабатывается большое количество прикладных программ, которые используются не для проведения вычислений. Все большая доля использования ВМ приходится на обработку символьной информации, содержащей буквы, цифры, знаки препинания, математические и другие символы. Каждому символу ставится в соответствие определенная двоичная комбинация. В настоящее время применяется несколько различных способов кодирования символов. Совокупность символов и поставленные им в соответствие коды образуют таблицы кодировок. Веса кодов цифр увеличиваются по мере увеличения цифры, веса символов увеличиваются в алфавитном порядке.
До недавнего времени наиболее распространенными были кодовые таблицы, использовавшие кодирование 256 различных символов с помощью восьмиразрядных двоичных комбинаций. Наибольшее распространение получили:
§ расширенный двоично – кодированный код EBCDIC (Extended Binary Coded Decimal Interchange Code). Код используется в качестве внутреннего кода в универсальных ВМ фирмы IBM. В нашей стране он известен под названием ДКОИ (двоичный код для обработки информации);
§ американский стандартный код для обмена информацией ASCII (American Standard Code for Information Interchange).
Стандартный код ASCII обеспечивал представление 128 символов, включая все латинские буквы, цифры, знаки основные математические и знаки пунктуации. Для кодирования символа отводилось 7 разрядов, восьмой разряд использовался для контроля четности. В последствии появилась европейская модификация ASCII, в которой за счет использования восьмого разряда для кодирования символов, дополнительные комбинации (коды 128 -255) отведены для представления специфических букв алфавитов западно – европейских языков, символов псевдографики, некоторых букв греческого алфавита, ряда математических и финансовых символов. Эта кодовая таблица считается мировым стандартом, применяется с различными модификациями во всех странах. В зависимости от использования кодов 128 – 255 для национальных алфавитов различают 16 вариантов стандарта ISO 8859.
Код ASCII оказался недостаточным для воспроизведения всего множества необходимых символов. В 1993 году компании Apple Computer, Microsoft, Hewlet - Packard, DEC и IBM разработали 16-битовый стандарт ISO 10646, определяющий универсальный набор символов (UCS, universal Character Code). В новом коде, известном под названием Unicode, разрешено задавать до 65 536 символов. Для букв русского языка выделены коды 1040 – 1093.
Видеоинформация
Видеоинформация подразделяется на статическую и динамическую. Статическая видеоинформация включает в себя текст, рисунки, графики, чертежи, таблицы и др. Рисунки делятся на плоские (двумерные) и объемные (трехмерные).
Динамическая видеоинформация – это видео-, мульт- и слайд- фильмы. На экране в реальном масштабе времени последовательно экспонируются отдельные кадры либо для передачи движущихся изображений (70 кадров в секунду), либо для последовательной демонстрации отдельных кадров (обычно 1 кадр экспонируется от 30секунд до 1 минуты).
Графические изображения представляются в матричном или векторном формате.
В матричных форматах изображение разбивается на множество точек (матрица пикселей), положение точек определяется её координатами на экране. Пиксель помимо координат характеризуется своим цветом, цветом фона или градацией яркости. Количество бит, необходимое для кодирования цвета точки называется глубиной цвета. Наиболее распространенными значениями глубины цвета являются 4, 8, 16 и 24 бита на точку. Количество цветов можно вычислить по формуле N=2I, где I- глубина цвета. Матричный формат требует для хранения изображения большой объем памяти, поэтому для описания изображения используются различные методы сжатия данных. Существует множество форматов графических файлов, отличающихся способами представления матричных изображений, алгоритмами сжатия, сферой применения.
Векторные форматы используются для чертежей и изображений с простыми формами, в тех случаях, когда требуется возможное изменение масштаба без ухудшения качества изображения. В векторной графике для описания изображения используются кривые – сплайны. Сплайн – это гладкая кривая, проходящая через две или более опорные точки, управляющие формой сплайна. В векторной графике для описания объектов используются математические формулы. Ряд простейших объектов (примитивов) и их комбинации служат основой создания более сложных изображений. Это приводит к некоторой искусственности изображения, так как изображение разбивается на конечное множество составляющих его примитивов (эллипсов, линий, прямоугольников, дуг). Описание объекта является простым и занимает мало памяти.
Векторные рисунки могут включать в себя матричные изображения. Векторные и матричные изображения могут быть преобразованы друг в друга. Графические форматы, позволяющие сочетать векторные и матричные описания изображения, называются метафайлами. Метафайлы сохраняют высокое качество изображения при достаточной компактности файлов.
2.8.2.3. Аудиоинформация
Звук представляет собой звуковую волну с непрерывно меняющейся амплитудой и частотой. Понятие аудио связано со звуками, воспринимаемых человеческим ухом и имеющих частоту от 15 Гц до 20 КГц. Вычислительная машина способна обрабатывать информацию, представленную в двоичном виде, поэтому аудиоинформация оцифровывается (преобразуется в цифровую форму). Оцифровку звука выполняет специальное устройство на звуковой плате. Называется аналого-цифровой преобразователь (АЦП). Обратный процесс – воспроизведение закодированного звука производится с помощью цифро-аналогового преобразователя (ЦАП).
В процессе кодирования непрерывного звукового сигнала производится его дискретизация по времени. Звуковая волна разбивается на отдельные маленькие временные участки и для каждого участка устанавливается определенная величина амплитуды. Данный метод называется импульсно - амплитудной модуляцией. Таким образом, гладкая кривая заменяется на последовательность «ступенек» (рис. 2.10).Чем мельче «ступеньки», тем выше может быть точность последующего воспроизведения исходного сигнала, но тем большая емкость памяти требуется для хранения оцифрованного звука. Как правило, к файлам аудиоинформации применяются различные методы сжатия, к которым предъявляется требование возможности восстановления непрерывного сигнала без заметного ухудшения его качества.
![]() ![]() | |||||||||||
Время t |
|
Система кодирования чисел.
Для представления чисел с учётом их знаков в вычислительных машинах используются специальные коды.
Прямой код.
Прямой код соответствует обычной записи числа со свои знаком. Для записи знака в регистре отводится специальный знаковый разряд. 16.10
Арифметические операции в прямом коде выполняются по обычным правилам двоичной арифметики. Перед выполнением операций над числами слагаемые должны иметь одинаковое количество цифровых разрядов, поэтому до перевода слагаемых в другие коды производится выравнивание количества разрядов числа в его прямом коде. Выравнивание производится приписыванием нулей к прямому коду слагаемых.
Обозначение: [А]пр
Пример: А = + 10101.01→ [А]пр = 0[4] 10101.01;
В = - 11001.1 → [В]пр = 111001.1 .
Прямой код применяется в ВМ при вводе и выводе информации, а также при хранении чисел в запоминающих устройствах. В прямом коде операции умножения и деления выполняются проще, чем в других кодах, однако он неудобен для выполнения алгебраического сложения, т.к. машина должна иметь устройство сложения и вычитания. Поэтому в ВМ, кроме прямого кода, применяются обратный и дополнительный коды.
Обратный код.
Положительные числа в прямом и обратном кодах имеют одинаковую форму записи.
Для получения обратного кода отрицательного числа следует каждую 1 поменять на 0, а 0 на 1 (инвертировать число), в знаковый разряд записать 1.
Пример: А = + 10101.01→ [А]пр = 0 10101.01→[А]обр = 0 10101.01;
В = - 11001.1 → [В]пр = 1 11001.1 →[В]обр = 1 00110.0
А = - 11001 → [А]пр = 1 11001 → [А]обр = 1 00110;
В= -011 → [В]пр = 1 100 → [В]обр = 1 011.
Перевод чисел из прямого кода в обратный код осуществляется более просто, чем в дополнительный код. Обратный код образуется автоматически на выходах триггеров регистра, в котором хранится отрицательное число
1.9.3. Дополнительный код.
Положительные числа в прямом и дополнительном кодах имеют одинаковую форму записи.
Для записи отрицательного числа в дополнительном коде достаточно образовать обратный код числа и прибавить к нему единицу младшего разряда.
Пример: [А]пр =1 11001 → [А]обр =1 00110→ [А]д =1 00111;
[В]пр =1 100 → [В]обр =1 011 → [В]д =1 100.
В вычислительных машинах операция вычитание над числами заменена сложением чисел, причём вычитаемое представляется как отрицательное число в дополнительно коде.
Пример: выполнение операции вычитания А-В ( А=510, В=310) осуществляется как операция сложения А+(-В). Переводим числа в дополнительный код и осуществляем операцию сложения.
[А]пр=0 001012→ [А]обр =0 0001012→ [А]д =0 0001012;
[В]пр =1 00112→ [В]обр =1 1111002 → [В]д =1 1111012.
Знак Слагаемые | |||
результат | ![]() | 0 0 0 1 0 12 1 1 1 1 0 12 0 0 0 0 1 0 2 | 510 -310 210 |
В дополнительном коде проще выполняется операция алгебраического сложения, так как в дополнительном коде нуль имеет единственное представление, а в обратном различают плюс и минус нуль.
[0]д = 0 0…0;
+0 = [0]о=0 000…00;
-0 = [0]о=1 111…11.
1.9.4. Модифицированные коды.
Количество разрядов, используемых для представления чисел, ограничено. Поэтому при сложении двух чисел с одинаковыми знаками их сумма может оказаться большей по модулю, чем максимальное число, которое может быть записано при заданном количестве разрядов. Такое явление называется переполнением разрядной сетки.
Чтобы избежать переполнения вводятся модифицированные коды. Модификация кодов заключается во введении дополнительного разряда, который располагается перед знаковым разрядом. Этот разряд часто называют разрядом переполнения (РП). Перед выполнением сложения положительные числа имеют в знаковом разряде и РП два нуля, а отрицательные – две единицы (рис. 2.11, а). Признаком переполнения разрядной сетки является наличие в знаковом разряде результата и в разряде переполнения различных цифр (рис. 2.11, б).
![]() |
![]() |
Код с исправлением ошибок
Память компьютера время от времени может делать ошибки из-за всплесков на линии электропередачи и по другим причинам. Для борьбы с такими ошибками используются коды с обнаружением и исправлением ошибок. При этом к каждому слову в памяти по особым правилам добавляются дополнительные биты. При считывании слова из памяти эти биты обеспечивают возможность контроля наличия ошибок и возможность их исправления.
В зависимости от назначения и возможностей помехозащищенных кодов различают коды самоконтролирующиеся, позволяющие автоматически обнаруживать наиболее вероятные ошибки, и самокорректирующиеся, позволяющие автоматически исправлять ошибки.