Память персонального компьютера
Оперативная память ЭВМ
Рассмотрим представление в ОП следующих видов информации
Представление целых чисел без знака
Представление целых чисел со знаком
Дополнительный код числа
Правило
Диапазоны значений чисел со знаком в дополнительном коде
Представление вещественных чисел
Формат с плавающей точкой
Нормализованное представление двоичных чисел
Хранение чисел с плавающей точкой
Короткий формат хранения вещественных чисел
Смещенный порядок числа
Алгоритм представления десятичного вещественного числа в коротком формате.
1.Перевод числа в двоичную форму
2. Округление
3. Нормализация числа.
4. Определение смещенного порядка
Пример.
Перевод чисел из стандарта IEEE754 в десятичный формат
Пример 2
Особые случаи
Арифметические операции на вещественными числами (схема выполнения)
Умножение и деление
Ошибки
Машинный эпсилон
Диапазоны чисел с плавающей точкой
757.00K
Category: informaticsinformatics

Память персонального компьютера (лекция 4)

1.

• Представление информации
в памяти компьютера

2. Память персонального компьютера

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

3. Оперативная память ЭВМ

Логически оперативная память представлена с помощью
минимальных элементов, каждый из которых может хранить
0 или 1. Количество информации, которое может хранить
такой элемент, равно 1 биту.
Числа в памяти хранятся в двоичных разрядах. Множество
двоичных разрядов, предназначенных для хранения числа в
памяти, называется разрядной сеткой ЭВМ.
Количество двоичных разрядов, используемых для
хранения числа в памяти, называется длиной разрядной
сетки.
Говорят, что число выходит за разрядную сетку ЭВМ, если
количество двоичных разрядов, необходимых для хранения
числа, больше длины разрядной сетки ЭВМ.

4.

Из соседних по расположению в памяти минимальных
элементов (двоичных разрядов) формируются ячейки
памяти. Компьютер может записывать информацию только
в ячейки памяти и считывать информацию только из ячеек
памяти. Минимальный размер ячейки памяти равен 1 байту.
Байты в памяти пронумерованы от 0000. Номер байта
называется адресом (физическим адресом) соответствующей
ячейки памяти. Максимальный адрес для 32-разрядных
ЭВМ – 232-1 = 4 ГБ.
Адреса ячеек
памяти
0000
0001
0002
……….
232-1
Такое представление памяти называется линейной или
плоской моделью памяти

5.

Ячейка памяти может состоять также из 2 или 4, 8 и т.п.
байтов. Они называются ячейкой памяти длиной
слово (двойное слово, учетверенное слово и т.п.). Адрес
таких элементов равен адресу первого байта в слове
(двойном слове и.т.д.).
Записывать (считывать) информацию из ОП
возможно только байтами (словами, двойными
словами и т.п.)
В зависимости от длины данных, которые может
записать(считать) компьютер за одну команду
говорят о 8-,16-,32-,64-разрядных ЭВМ.
В зависимости от хранящейся в памяти информации ее
элементы могут занимать произвольное количество
последовательных байтов. Такая последовательность
байтов называется областью памяти. Адрес области
памяти – это адрес первого байта этой области памяти.

6. Рассмотрим представление в ОП следующих видов информации

Целые числа без знака
Целые числа со знаком
Числа с плавающей точкой
Символьная информация
Графическая информация
Звуковая информация
Видеоинформация

7. Представление целых чисел без знака

Целые числа в ЭВМ представлены в двоичной системе
счисления. Каждый разряд двоичного числа в памяти
ЭВМ занимает 1 бит – минимальную единицу
информации.
Целые числа без знака могут занимать 1 байт (1 слово,
двойное слово и т.п.). Все разряды числа являются
значащими.
В одном байте могут быть представлены числа от 0000
0000 (010) до 1111 1111 (25510). Биты в байте
пронумерованы от 0 до 7.
Два байта образуют слово. Биты в слове пронумерованы
справа налево от 0 до 15. Биты от 0 до 7 в слове образуют
младший байт, а биты от 8 до 15 – старший байт

8.

….
байт
7 6
Старший байт
15 14
…..
1
0
Младший байт
8 7
…..
1
0
Слово
Максимальные значения целых чисел без знака в ячейках памяти
Размер ячейки
Длина в
памяти
байтах
Длина в битах
Максимальное
хранимое число
Байт
1
8
28-1=255
Слово
2
16
216-1=65535
Двойное слово
4
32
232-1=4294967295
Учетверенное слово
8
64
264-1>16x1018

9.

Компьютеры оперируют с байтом, словом, двойным
словом и т.п. как с единым целым.
В зависимости от архитектуры компьютера, числа в
ЭВМ представляются в виде байтов, слов или двойных
слов, при этом значащие разряды числа смещены к
правому краю байта (слова, двойного слова).
Пример. Число 101 будет представлено в байте в виде
00000101, а в слове 0000000000000101.
Здесь
00000000 – старший байт числа
00000101 – младший байт числа

10. Представление целых чисел со знаком

У чисел со знаком старший бит числа
является знаковым, в образовании
значения числа не участвует, а лишь
указывает на знак. Знаковый бит
содержит «0» для положительных чисел
и «1» для отрицательных.

11. Дополнительный код числа

Отрицательные целые числа в памяти
ЭВМ представляются в дополнительном
коде.
Дополнительный код положительных
чисел совпадает с прямым кодом числа.
Дополнительный код позволяет
заменить операцию вычитания
операцией сложения числа в
дополнительном коде.

12. Правило

Чтобы
найти
представление
mразрядного
двоичного
целого
отрицательного числа в дополнительном
коде с количеством двоичных разрядов n
(n>m),
надо
взять
двоичное
представление модуля числа, дополнить
нулями слева n-m разрядов (если это
возможно), инвертировать все биты и
прибавить 1.

13.

Пример 1:
Найдем представление числа -65 в байте.
6510 = 100 0001. Дополняем до байта
6510 = 0100 0001.
Инвертируем и добавляем 1:
1011 1110
+
1
1011 1111 (-65)
Найдем сумму:
0100 0001
+ 1011 1111
(1) 0000 0000 единица выходит за разрядную
сетку и не учитывается

14.

Отрицательные целые n разрядные числа вида -2n-1 можно
записать в дополнительном коде с n разрядами.
Пример 2.
Найдем дополнительный код числа -128, записанного в байте.
Здесь -128=-28-1 и число можно записать в 8 разрядах.
Двоичное представление модуля числа равно 10000000. Его
дополнять до байта не нужно.
Инвертируя биты, получаем 01111111. Прибавляя 1, получаем
10000000.
Ответ-12810=100000002
Пример 3.
Найдем дополнительный код числа -128, записанного в слове.
Двоичное представление модуля числа в слове равно
0000000010000000. Инвертируя биты, получаем
1111111101111111. Прибавляя 1, получаем 1111111110000000.
Ответ: -12810=11111111100000002

15.

Чтобы получить десятичное представление отрицательного числа,
записанного в дополнительном коде, необходимо обратить каждый
бит этого числа, добавить 1 и к результату приписать -.
Пример: Найти десятичное представление числа со знаком 1101 0000.
1) Это отрицательное число
2) Инвертируем:
0010 1111
3) Добавим 1
+
1
4) Получили +48
0011 0000 (+4810)
и т.к. в старшем разряде –1, то это –48.
Проверка.
Найдем дополнительный код числа -48, записанного в байте
Число +4810 = 0011 00002
–4810: 1100 1111
+
1
1101 0000

16. Диапазоны значений чисел со знаком в дополнительном коде

Размер ячейки Длина в Длина Минимальное
памяти
байтах в битах хранимое число
Максимальное
хранимое
число
Байт
1
8
-27=-128
27-1=127
Слово
2
16
-215=-32768
215-1=32767
Двойное слово 4
32
-231= -2147483648 231= 12147483647
Учетверенное
слово
8
64
263-1
263-1

17. Представление вещественных чисел

Вещественные представлены в памяти компьютера в виде
чисел с плавающей точкой (запятой).
Скорость выполнения компьютером операций с числами,
представленными в форме с плавающей точкой, измеряется
во FLOPS (от англ. floating-point operations per second —
«[количество] операций с плавающей запятой в секунду»), и
является одной из основных единиц измерения
быстродействия вычислительных систем.

18. Формат с плавающей точкой

Говорят, что десятичное число представлено в формате с плавающей точкой,
если оно представлено в виде десятичной дроби, умноженной на степень 10.
Пример: 578,69=57,869*101
0,0028 = 0,028*10-1
-25,6 = -0,256*102
Число в этой форме представлено знаком числа, мантиссой и показателем
степени – порядком.
Здесь 57,869, 0,028 и 0,256 – это мантиссы, 1, -1 и 2 – это порядок.
Если значение мантиссы находится в интервале (0,1], то такое представление
называется нормальным.
Пример: 578,69=0,57869*103
0,0028 = 0,28*10-2
-25,6 = -0,00256*104
Если значение мантиссы находится в интервале [1,10), то такое представление
десятичного числа называется нормализованным.
Пример: 578,69=5,7869*102
0,0028 = 2,8*10-3
-25,6 = -2,56*101

19. Нормализованное представление двоичных чисел

В нормализованном представлении двоичного числа
мантисса принимает значения в интервале [1,2). Это
значит, что у двоичного нормализованного числа
целая часть всегда равна 1. В записи числа эту 1
не хранят.
Пример.
5,125 – десятичное число.
Двоичное представление 101,001.
Нормализованное представление 1,01001х210.
Мантисса – 1,01001, порядок 102.

20. Хранение чисел с плавающей точкой

Вещественные числа в памяти компьютера, в зависимости от
требуемой точности (количества разрядов мантиссы) и
диапазона значений (количества разрядов порядка),
занимают четыре байта (короткий формат) или восемь
байтов (формат с двойной точностью).
Короткий формат соответствует типу данных FLOAT в
языке С++ , формат с двойной точностью – типу DOUBLE.
В этих форматах в компьютере хранятся знак числа,
мантисса и порядок числа.
Для представления отрицательных вещественных чисел
дополнительный код не применяется, а используется код
знака мантиссы.
В общем случае числа представлены в нормализованной
двоичной форме .

21. Короткий формат хранения вещественных чисел

31 30 29
23 22 21
2
1
0
Четырехбайтовое вещественное число имеет 23 разряда мантиссы
– биты 0-22 (что соответствует точности числа 7—8 десятичных
знаков) и 8 разрядов порядка – биты 23-30 (обеспечивающих
диапазон значений 10±38). Первый бит двоичного представления
используется для кодирования знака мантиссы: 0-число
положительное, 1 – число отрицательное.
Формат представления вещественных чисел определяется
международным стандартом IEEE 754, IEEE (Institute of Electrical
and Electronics Engineers) (I triple E — «Ай трипл и»)

22. Смещенный порядок числа

Порядок числа может быть как положительным, так и отрицательным.
Таким образом, в поле порядка может быть записаны числа от -128 до
127. Для того, чтобы не хранить знак порядка, порядок представляется в
виде смещенного порядка. Смещенный порядок вычисляется как сумма
истинного порядка и константы (смещения).
По стандарту IEEE 754 смещение порядка принимается равным 127.
Тогда при значении истинного порядка от -127 до 128 смещенный
порядок принимает значения от 0 до 255.
Использование смещенного порядка позволяет производить операции
над порядками как над беззнаковыми числами, что упрощает операции
сравнения, сложения и вычитания порядков, а также
упрощает
операцию сравнения самих чисел.
Чем больше разрядов отводится под запись мантиссы, тем выше точность
представления числа. Чем больше разрядов занимает порядок, тем шире
диапазон от наименьшего отличного от нуля числа до наибольшего числа,
представимого в компьютере при заданном формате.
Например, в формате с двойной точностью для записи числа используют 64 бита,
из которых под мантиссу отводится 55 бит.

23. Алгоритм представления десятичного вещественного числа в коротком формате.

1. Перевести число в двоичную систему
счисления
2. Округлить число
3. Провести нормализацию числа
4. Определить смещенный порядок
5. Записать число в память

24. 1.Перевод числа в двоичную форму

Перевести десятичное число в двоичную
систему счисления(вспомнить правило).
Искомое двоичное число должно иметь
25 двоичных разрядов (23 разряда для
мантиссы, 1 разряд для возможности
округления
и
1
разряд
для
использования
при
последующей
нормализации числа).

25.

26. 2. Округление

На этом этапе к полученному на предыдущем
этапе числу прибавляется 1 в самом младшем
разряде двоичного числа. После этого самый
младший разряд двоичного числа
отбрасывается.
На этом этапе двоичное число имеет 24
разряда.

27. 3. Нормализация числа.

На этом шаге определяется истинный
порядок числа и мантисса числа. Для этого
необходимо перемещать разделительную
точку так, чтобы искомое число, полученное
в результате перемещения точки,
располагалось в полусегменте [1,2) (1<=x<2).
Первоначальный порядок принимается
равным 0.

28.

Если двоичное число >=2, то разделительная точка
перемещается влево и истинный порядок увеличивается на
величину, равную количеству разрядов, на которое
переместилась точка.
2. Если исходное число меньше 1, разделительная точка
перемещается вправо. При этом значение порядка
уменьшается на величину, равную количеству разрядов, на
которое переместилась точка. Полученный порядок
называется абсолютным или истинным порядком.
3. Очевидно, что целая часть получаемого после сдвига точки
числа всегда равна 1, поэтому ее не хранят (но всегда
подразумевают в вычислениях). Эта единица называется
скрытой. Мантисса имеет длину 23 бита.
Пример 1. Исходное число 101.001101. После сдвига имеем
1.01001101, порядок E=2 и мантисса M=01001101
Пример 2. Исходное число 0.0001011011. После сдвига имеем
1.011011, порядок E=-4 и мантисса M=011011
1.

29. 4. Определение смещенного порядка

На этом этапе к истинному порядку
прибавляется 127, полученная величина
переводится
в
двоичный
формат
и
представляется
в
виде
8-разрядного
двоичного числа без знака.
5. Запись числа в память
Число записывается в память в соответствии
со структурой представления числа в
коротком формате.

30. Пример.

Представим вещественное число 43.13 в коротком формате.
1.Переведем число в двоичный формат.
1.1. Переводим целую часть. 4310=1010112, и номер старшего
разряда числа n=5.
1.2. Переводим дробную часть. Количество разрядов в
дробной части числа m=24-5=19.
С точностью до 19 разрядов
0.1310=0.00100001010001111012
43.1310=101011.00100001010001111012
2. Округление.
1 0 1 0 1 1. 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1
0. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+_______________________________________
1 0 1 0 1 1. 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0

31.

Отбросим младший разряд суммы, равный 0. В результате
получим число
101011.0010000101000111112
3. Нормализация. Перемещаем точку на 5 разрядов влево.
Имеем
1.010110010000101000111112х2510
Отбрасывая старший разряд, получаем мантиссу (23 бита)
0101 1001 0000 1010 0011 1112
4. Смещенный порядок (8 бит)
510+12710=13210=100001002
5. Представление в памяти.
Зн
Смещенный
порядок
0
10000100 01011001000010100011111
31
30
23 22
Мантисса
0

32. Перевод чисел из стандарта IEEE754 в десятичный формат

33. Пример 2

Пусть имеется двоичное число в коротком
формате
11000011011100111010000000000000
Найдем его десятичное представление.
Для нашего числа
b=8, n=23, s=1
Тогда получаем F =(-1)1∙2(134-127)∙(1 + 7577600/
223) = -27∙(1+0,9033203125) =
-128∙1,9033203125 = -243,625

34. Особые случаи

1. Если смещенный порядок будет иметь значение
00000000 и мантисса также будет равна 0, это будет
означать ноль (со знаком).
2. Если смещенный порядок будет иметь значение
11111111, а мантисса будет равна 0, это будет означать
бесконечность (со знаком).
3. Если же смещенный порядок будет иметь значение
11111111, а мантисса будет отлична от 0, это будет
означать что в данной ячейке памяти находится не число
или NAN(No a Numbers), во всяком случае, это не число с
плавающей точкой. К ним относятся, например,
результаты недопустимых операций

35. Арифметические операции на вещественными числами (схема выполнения)

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

36. Умножение и деление

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

37. Ошибки

При выполнении операций над
вещественными числами могут возникать
ошибки.
1. Ошибки округления при записи результата
в память. Возникают из-за конечности
разрядной сетки ЭВМ.
2. Потеря точности при операции
выравнивания мантисс. Возникают из-за
выхода сдвигаемой мантиссы за
разрядную сетку

38. Машинный эпсилон

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

39. Диапазоны чисел с плавающей точкой

Single
Самое
маленькое -126
2 (Примерно
нормализо
1.175494351х10-38)
ванное
число
Самое
большое (1-2-24)х2128
нормализо (Примерно
ванное
3.4028235х1038)
число
Машинный
2-23
эпсилон
Double
2-1022
(Примерно
2.225073858507
2020х10-308)
(1-(1/2)53)х21024
(Примерно
1.797693134862
3157х10308)
2-52
English     Русский Rules