Смекни!
smekni.com

Динамічна пам'ять, принципи її організації і роботи (стр. 5 из 6)

Тобто число 4235,25 може бути записане в одному з видів:

4235,25 = 423,525 – 101 = 42,3525 – 102 = 4,23525 – 103 = 0,423525 – 104.

Очевидно, таке подання не однозначно. Якщо мантиса 1 / q < |m| < q (0,1 < |m| < 1 для десяткової системи числення), то подання числа стає однозначним, а така форма називається нормалізованої. Якщо "плаваюча" крапка розташована в мантисі перед першою значущою цифрою, то при фіксованій кількості розрядів, відведених під мантису, забезпечується запис максимальної кількості значущих цифр числа, тобто максимальна точність.

Дійсні числа в комп'ютерах різних типів записуються по-різному, проте існує кілька міжнародних стандартних форматів, що розрізняються по точності, але мають однакову структуру. Розглянемо на прикладі числа, що займає 4 байти (мал. 9).


Малюнок 9. Формат числа, що займає 4 байти

Перший біт двійкового подання використається для кодування знака мантиси. Наступна група біт кодує порядок числа, а біти, що залишилися, кодують абсолютну величину мантиси. Довжини порядку й мантиси фіксуються.

Порядок числа може бути як позитивним, так і негативним. Щоб відбити це у двійковій формі, величина порядку представляється у вигляді суми щирого порядку й константи, рівній абсолютній величині максимального по модулі негативного порядку, називаної зсувом. Наприклад, якщо порядок може приймати значення від -128 до 127 (8 біт), тоді, вибравши як змішання 128, можна представити діапазон значень порядку від 0 (-128+128, порядок + зсув) до 255 (127+128),

Тому що мантиса нормалізованого числа завжди починається з нуля, деякі схеми подання його лише мають на увазі, використовуючи зайвий розряд для підвищення точності подання мантиси.

Використання зміщеної форми дозволяє робити операції над порядками як над беззнаковими числами, що спрощує операції порівняння, додавання й вирахування порядків, а також спрощує операцію порівняння самих нормалізованих чисел.

Чим більше розрядів приділяється під запис мантиси, тим вище точність подання числа. Чим більше розрядів займає порядок, тим ширше діапазон від найменшого відмінного від нуля числа до найбільшого числа, представимого в комп'ютері при заданому форматі.

Речовинні числа в пам'яті комп'ютера, залежно від необхідної точності (кількості розрядів мантиси) і діапазону значень (кількості розрядів порядку), займають від чотирьох до десяти байтів. Наприклад, чотирьобайтове речовинне число має 23 розряду мантиси (що відповідає точності числа 7-8 десяткових знаків) і 8 розрядів порядку (забезпечуючи діапазон значень 10±38). Якщо речовинне число займає десять байтів, то мантисі приділяється 65 розрядів, а порядку - 14 розрядів. Це забезпечує точність 19-20 десяткових знаків мантиси й діапазон значень 10±4931.

Поняття типу даних. Як уже говорилося, мінімально адресуемою одиницею пам'яті є байт, але подання числа вимагає більшого обсягу. Очевидно, такі числа займуть групу байт, а адресою числа буде адреса першого байта групи. Отже, довільно взятий з пам'яті байт нічого нам не скаже про те, частиною якого інформаційного об'єкта він є - цілого числа, числа із плаваючої коми або команди. Резюмуючи вищесказане, можна зробити висновок, що крім завдання подання даних у двійковому коді, паралельно вирішується зворотне завдання - завдання інтерпретації кодів, тобто як з кодів відновити первісні дані.


2 ПРАКТИЧНА ЧАСТИНА

2.1 Переклад символів імені у послідовність цифр 16-річної системи числення

Використовуючи таблицю ASCII кодів перекладіть своє прізвище або ім’я (але менш чим 5 літер) у послідовність цифр 16-річної системи числення, а потім у послідовність двійкових біт (табл. 4).

Таблиця 4. Переклад літер у 16- та 2-річну СЧ

Ім’я v a l e r a
16-річна система числення 0x076 0x061 0x06C 0x065 0x072 0x061
Послідовність двійкових біт 1110110 1100001 1101100 1100101 1110010 1100001

2.2 Доповнення послідовності двійковими бітами коду Хемінга

Користуючись викладеним теоретичним матеріалом доповніть послідовність двійкових біт бітами коду Хемінга.

Користуючись інформацією, яка викладена у методичних вказівках що до виконання курсової роботи з дисципліни "АРХІТЕКТУРА КОМП’ЮТЕРІВ" доповнюємо послідовність двійковими бітами коду Хемінга табл. 5.

Таблиця 5. Двійкова послідовність символів імені

Позиція біта 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
Значення біта 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0
Позиція біта 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Значення біта 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0
Позиція біта 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Значення біта 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1

Доповнюємо кодову послідовність бітами коду Хемінга. Результат у табл. 6.

Таблиця 6. Двійкова послідовність символів імені з позиціями контрольних бітів.

Позиція біта 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39
Значення біта 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1
Позиція біта 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
Значення біта 0 1 1 0 1 1 * 0 0 0 1 1 0 0 1
Позиція біта 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
Значення біта 0 1 0 1 1 1 0 * 0 1 0 0 1 1 0
Позиція біта 8 7 6 5 4 3 2 1
Значення біта * 0 0 0 * 1 * *

* - позиції, де розміщуються контрольні біти

Контрольні біти резервуються цілою ступінню двійки. Оскільки номера контрольних біт становлять ступінь двійки, то з ростом розрядності кодового слова вони розташовуються все рідше і рідше. Контрольна сума формується шляхом використання операції XoR над кодами позицій ненульових бітів. Позиції ненульових бітів приведено в таблиці 7.

Таблиця 7. Позиції ненульових бітів

Позиція Код
3 000011
10 001010
11 001011
14 001110
18 010010
19 010011
20 010100
22 010110
24 011000
27 011011
28 011100
33 100001
34 100010
36 100100
37 100101
39 100111
Позиція Код
44 101100
45 101101
48 110000
49 110001
51 110011
52 110100
53 110101

Контрольна сума приведена в таблиці 8.

Таблиця 8. Контрольна сума.

Позиція біта 6 5 4 3 2 1
онтр. Сума 0 0 0 1 1 1

Таким чином приймач буде мати з розрахованими контрольними бітами (табл. 9).

Таблиця 9. Кодова послідовність на стороні приймача.

Позиція біта 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39
Значення біта 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1
Позиція біта 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
Значення біта 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1
Позиція біта 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
Значення біта 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0

Таблиця 9. Продовження

Позиція біта 8 7 6 5 4 3 2 1
Значення біта 0 0 0 0 1 1 1 1

Просумуємо кодову послідовність за допомогою операції XoR ще раз (табл. 10) і будемо мати нуль.

Таблиця 10. Контрольна сума кодової послідовності.

Позиція біта 6 5 4 3 2 1
Контр. Сума 0 0 0 0 0 0

2.3 Заміна на протилежне значення біту і можливість його виправлення

Змініть значення N-ного біту отриманої послідовності на протилежне та покажіть можливість його відновлення (де N – це ваш номер за журналом академічної групи). У доповнення до N-того біту також змініть на протилежне значення (35 – N) біту. Чи є можливість тепер відновити інформацію? Наведіть пояснення.

Змінемо у кодовій послідовності біт (0→1) під номером (35 – N), де N = 3. Маємо змінений біт під номером 32 (табл. 11).

Таблиця 11. Кодова послідовність з помилкою.

Позиція біта 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39
Значення біта 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1
Позиція біта 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
Значення біта 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1
Позиція біта 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
Значення біта 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0
Позиція біта 8 7 6 5 4 3 2 1
Значення біта 0 0 0 0 1 1 1 1

Просумуємо коди позицій ненульових бітів за допомогою операції XoR ще раз (табл. 12):