Биты и манипулирование ими. Техническая реализация триггера дорогостоящая, поэтому биты с помощью триггеров хранят в небольшой по объему памяти, но с большим быстродействием. Эта статическая память – SRAM, используется в персональных компьютерах для регистров и кэшей. Оперативная память основа на технологии динамической памяти – DRAM, использующей конденсаторы для хранения бит. Элемент DRAM: И его схематическое изображение: Декодер столбцов Декодер строкДекодер строк Выходной буфер Линии адресаЛинии адреса Линии данных
Организация памяти. В ОЗУ персональных компьютеров принята линейная побайтовая адресация памяти. Каждая ячейка памяти – байт, имеет свой адрес от нуля до N (емкость памяти). Адресация памяти предоставляет возможность доступа к произвольной ячейке – память с произвольным доступом (RAM) (см. Лекцию 3). Основные характеристики памяти - емкость (размер) и пропускная способность. Частоте в 1МГц соответствует время 1000 нс. Пропускная способность определяется тактовой частотой памяти; шириной шины памяти; количеством бит на линию за такт (технология DDR – 2 бита за такт) Например (DDR SDRAM): частота памяти 200 МГц, значит эффективная частота – 400 МГц, разрядность шины 64 бит. Пропускная способность = 400*64=25600Мбит/с=3.2Гб/с
«В начале было слово, но это не было фиксированное число битов» - Р.С. Бартон Архитектура компьютера. Организация памяти. БайтБайт СловоСлово ДвойноеДвойное словослово
Двоичный код. Представление информации в виде двоичного кода. Представление целых числовых значений. Двоичная система счисления. Программа Ввод a i:=0 Выполнять b i :=остаток(a, 2) a=частное(a,2) i:=i+1 До a=0 Вывод {b i } Конец b=b 0 +b 1 *2 1 +b 2 *2 2 +…+b n-1 *2 n-1 Программа Ввод {b i }, n a:=b 0 d:=2 i:=1 Цикл-пока i
Двоичный дополнительный код. Процессоры семейства 80x86 трактуют отрицательные числа, как двоичные дополнения (которые содержат единичный бит в старшем разряде ). Чтобы получить отрицательное число надо инвертировать все биты и добавить единицу. Например (пусть единица хранения – 1 байт): пять инвертируем биты +1 добавляем единицу минус пять | Проверяем: Вопрос: как перевести отрицательное число в двоичном дополнительном коде в прямую десятичную запись? (в прямом двоичном коде минус пять записывается ) Вопрос: какое это число? Представление со смещением (с избытком) Пример: 3-х битовое представление (со смещением 4) Вопрос: каково смещение в 1-байтовом представлении с избытком?
Представление с плавающей точкой Знак Порядок Мантисса Пример: расшифруем число , записанное в формате с плавающей точкой (единица хранения – 1 байт, старший бит – знаковый, младшие 4 бита – мантисса, остальные три бита – порядок (записан в формате со смещением)). Нормализованная запись числа: мантисса всегда меньше единицы и её первый разряд содержит отличную от нуля цифру (в двоичной системе счисления - единицу). В общем случае запись числа A имеет вид: где M – мантисса, Q – основание системы счисления, P – порядок числа – мантисса. В 3-х битовом представлении со смещением 110 – это два. Переносим точку вправо на два разряда: Целая часть числа – 10 равна двум. Дробная часть числа – 11 равна 1/2 +1/4=3/4. Итак, – это запись числа Стандарт IEEE записи чисел с плавающей точкой одинарной точности: старший бит – знак, 8 младших бит – порядок, остальные 23 бита – мантисса. Кроме того, не записывается первый бит мантиссы («скрытый»). Вопрос: каков диапазон значений в такой записи?
Представление текста. ASCII код Примечание (16-ричное представление): В полубайте можно кодировать числа со значениями от 0 до 15. Для записи содержимого байта удобно использовать систему счисления с основанием A B C D E F
Кодовые страницы. Windows Примечание (Unicode): под символами записаны кодировки Unicode.
KOI8 - R
Фрагмент таблицы UNICODE (область ASCII) !"#$%&'()*+,-./ :;? `abcdefghijklmnopqrstuvwxyz{|}~ A0A 0B0B 0C0C 0D0D 0E0E 0F0F A1A 1B1B 1C1C 1D1D 1E1E 1F1F
Фрагмент таблицы UNICODE (область кириллицы) A0A 0B0B 0C0C 0D0D 0E0E 0F0F A1A 1B1B 1C1C 1D1D 1E1E 1F1F ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОП РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп рстуфхцчшщъыьэюяёђѓєѕіїјљњћќўџ
A0A 0B0B 0C0C 0D0D 0E0E 0F0F A1A 1B1B 1C1C 1D1D 1E1E 1F1F FC00FC00 FC20FC20 FC40FC40 Фрагмент таблицы UNICODE (окончание) Представления UNICODE: UTF-8, UTF-16, UTF-32 (от 2-х до 6 байт)