Структура внутренней памяти
Основные структурные единицы памяти компьютера:
бит, байт, машинное слово.
Бит. Все данные и программы, хранящиеся в памяти компьютера, имеют вид двоичного кода. Один символ из двухсимвольного алфавита несет 1 бит информации. Ячейка памяти, хранящая один двоичный знак, называется «бит». В одном бите памяти хранится один бит информации.
Битовая структура памяти определяет первое свойство памяти — дискретность.
Байт. Восемь расположенных подряд битов памяти образуют байт. В одном байте памяти хранится один байт информации. Во внутренней памяти компьютера все байты пронумерованы. Нумерация начинается от нуля. Порядковый номер байта называется его адресом. В компьютере адреса обозначаются двоичным кодом. Используется также шестнадцатеричная форма обозначения адреса.
Пример1. Компьютер имеет оперативную память 2 Кбайт. Указать адрес последнего байта оперативной памяти (десятичный, шестнадцатеричный, двоичный).
Решение.
Объем оперативной памяти составляет 2048 байт. Десятичный адрес (номер) последнего байта равен 2047, так как нумерация байтов памяти начинается с нуля. 204710 = 7FF16 = 0111 1111 11112.
Машинное слово. Наибольшую последовательность бит, которую процессор может обрабатывать как единое целое, называют машинным словом. Длина машинного слова может быть разной — 8, 16, 32 бита и т.д. Адрес машинного слова в памяти компьютера равен адресу младшего байта, входящего в это слово.
Занесение информации в память, а также извлечение ее из памяти производится по адресам. Это свойство памяти называется адресуемостью.
Пример 2. Объем оперативной памяти компьютера равен 1 Мбайту, а адрес последнего машинного слова —- 1 048 574. Чему равен размер машинного слова?
Решение. 1Мбайт = 1024 Кбайта = 1 048 576 байт. Так как нумерация байтов начинается с нуля, значит адрес последнего байта будет равен 1 048 575. Таким образом, последнее машинное слово включает в себя 2 байта с номерами 1 048 574 и 1 048 575. Ответ: 2 байта.
Внутренне представление информации в компьютере.
Для представления чисел в памяти компьютера используются два формата: формат с фиксированной точкой и формат с плавающей точкой. В формате с фиксированной точкой представляются только целые числа, в формате с плавающей точкой — вещественные числа (целые и дробные).
Целые числа
Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения. В k-разрядной ячейке может храниться 2k различных значений целых чисел.
Пример 1. Пусть для представления целых чисел в компьютере используется 16-разрядная ячейка (2 байта). Определить, каков диапазон хранимых чисел, если а) используются только положительные числа; б) используются как положительные так и отрицательные числа в равном количестве.
Решение. Всего в 16-разрядной ячейке может храниться 216 •= 65536 различных значений. Следовательно:
а) диапазон значений от 0 до 65535 (от 0 до 2k-1);
б) диапазон значений от -32768 до 32767 (от –2k-1 до 2k-1-1).
Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:
1) перевести число N в двоичную систему счисления;
2) полученный результат дополнить слева незначащими нулями до k разрядов.
Пример 2. Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.
Решение.N = 160710 = 110010001112- Внутреннее представление этого, числа в ячейке будет следующим: 0000 0110 0100 0111. Шестнадцатеричная форма внутреннего представления числа получается заменой 4-х двоичных цифр одной шестнадцатеричной цифрой: 0647.
Для записи внутреннего представления целого отрицательного числа (-N) необходимо:
1) получить внутреннее представление положительного числа М;
2) получить обратный код этого числа заменой 0 на 1 и 1 на 0 (эта операция называется инвертированием) ;
3) к полученному числу прибавить 1, получить дополнительный код..
Данная форма представления целого отрицательного числа называется дополнительным кодом. Использование этого кода позволяет упростить аппаратную реализацию вычитания, которая заменяется на операцию сложение уменьшаемого числа с дополнительным кодом вычитаемого.
Пример 3. Подучить внутреннее представление целого отрицательного числа —1607.
Решение.1) Внутреннее представление положительного числа: .
0000 0110 0100 0111
2) обратный код: 1111 1001 1011 1000
3) результат прибавления 1: 1: 1111 1001 1011 1001 (единица переноса полученного результата отбрасывается) – это внутреннее представление двоичное представление отрицательного числа -1607
4) Шестнадцатеричная форма: F9В9.
Двоичные разряды в ячейках памяти нумеруются от 0 до k справа на лево. Старший k-разряд во внутреннем представлении любого положительного числа равен нулю, отрицательного – числа единице. Поэтому этот разряд называется знаковым.
Вещественные числа
Формат с плавающей точкой использует представление вещественного числа R в экспоненциальной форме, которая представляет собой: произведения мантиссы т на основание системы счисления п в некоторой целой степени р, которую называют порядком: R=m*np. Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства: 25.324 = 2.5324 *101 = 0.0025324 * 104 = 2532,4*10-2 и т.п.
В ЭВМ используют нормализованное представление числа в форме с плавающей точкой. В нормализованном числе мантисса –эта правильная дробь, имеющая после запятой цифру отличную от нуля.
В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся). Следовательно, внутреннее представление вещественного числа сводится к представлению пары целых чисел: мантиссы и порядка.
В разных типах ЭВМ применяются различные варианты представления чисел в форме с плавающей точкой.
Для примера рассмотрим внутреннее представление вещественного числа в 4-х байтовой ячейке памяти.
В ячейке должна содержаться следующая информация о числе: знак числа, порядок и значащие цифры мантиссы.
± мат. порядок | М А | Н ТИС | •СА |
1-й байт | 2-й байт | 3-й байт | 4-й байт |
В старшем бите 1-го байта хранится знак числа: 0 обозначает плюс, 1 — минус. Оставшиеся 7 бит первого байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы (24 разряда).
В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. Значит, машинный порядок изменяется в диапазоне от 0 до 127 (в десятичной системе счисления). Всего 128 значений. Порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка: от -64 до 63. С целью упрощения аппаратной реализации арифметических операций в представлении числа знак порядка явно не сохраняется. В записи числа от порядка переходят к характеристике.
Машинный порядок (характеристика) смещен относительно математического и имеет только положительные значений. Смещение выбирается так, чтобы минимальному математическому значению порядка соответствовал нуль.
Связь между машинным порядком (Мр) и математическим (р) в рассматриваемом случае выражается формулой: .Мр=р+64.
Полученная формула записана в десятичной системе. В двоичной системе формула имеет вид:Мр2 =р2+100 00002
Для записи внутреннего представления вещественного числа необходимо:
1) перевести модуль данного числа в двоичную систему счисления 24 значащими цифрами;
2) нормализовать двоичное число;
3) найти машинный порядок в двоичной системе счисления;
4) учитывая знак числа, выписать его представление в 4-х байтовом машинном слове.
Пример 4. Записать внутреннее представление числа 250,1875 в форме с плавающей точкой. Решение:
1 Переведем его в двоичную систему счисления с 24 значащими цифрами; 250,187510 – 11111010, 00110000000000002.
2. Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000 * 1021000. Здесь мантисса, основание системы счисления (210 = 102) и порядок (810 = 10002) записаны в двоичной системе.
3. Вычислим машинный порядок в двоичной системе счисления.Мр2 = 1000+ 100 0000=н 100 1000. - ,
4. Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа:
Шестнадцатеричная форма: 48FA3000