1.2.6. Представлення інформації в мікропроцесорах класу Pentium
Розглянемо представлення операндів у 32-розрядних мікропроцесорах класу Pentium. У них використовуються такі типи даних: цілі числа, дійсні числа, двійково-десяткові числа і рядки бітів, байтів та слів. Цілі числа представляються зі знаком і без знаку в форматах байта, слова, подвійного і учетверенного слова довжиною відповідно 8, 16, 32 і 64 біт (рис. 1.9).
Рис. 1.9. Формати цілих чисел: а, в, д, є — зі знаком; б, г, є — без знаку
Над числами у цих форматах виконують операції додавання, віднімання, множення, ділення та ін. Діапазони представлення знакових і беззнакових значень в даних форматах наведені в табл. 1.4.
Таблиця 1.4
Формат числа |
Діапазон представлення чисел |
|
без знаку |
зі знаком |
|
Байт |
0...255 |
-128...+127 |
Слово |
0...65535 |
-32768...+32767 |
Подвійне слово |
0...4∙109 |
-2∙109...+2∙109 |
Учетверенне слово |
0...5∙1019 |
-2,5∙1019...+2,5∙1019 |
Дійсні числа представляються у форматі з плаваючою комою в короткому (32 біт), довгому (64 біт) і розширеному (80 біт) форматах (рис. 1.10). Числа з плаваючою комою довжиною 32 і 64 біт, які використовуються в багатьох комп'ютерах, наприклад, в ЄС ЕОМ, CM ЕОМ, звичайно називаються числами з одинарною і подвійною точністю. Розширений формат характерний тільки для процесорів класу Pentium.
31 |
30 27 |
26 0 |
± |
Порядок |
Мантиса |
a
63 |
62 52 |
51 0 |
± |
Порядок |
Мантиса |
б
79 |
78 64 |
63 0 |
± |
Порядок |
Мантиса |
в
Рис. 1.10. Формати чисел з плаваючою комою: а — короткий; б— довгий; в — розширений
У даних форматах чисел з плаваючою комою використовуються зміщені порядки Пзм:
де П — значення істинного порядку; ΔП = 2r-1- 1 — зміщення; г — довжина порядку, яка дорівнює 8, 11 або 15 біт відповідно для короткого, довгого і розширеного формату. Значення Пзм завжди додатне, тому знаковий розряд не потрібний. Представлення порядку зі зміщенням спрощує операції порівняння чисел з плаваючою комою, що особливо важливо для алгоритмів сортування.
Значення числа з плаваючою комою і зміщеним порядком визначається за формулою
де S— знак числа; п — число, яке для різних форматів дорівнює 23, 52 чи 63.
В машині мантиса представляється в нормалізованій формі, яка складається із цілої частини F0 = 1 та дробу в такому вигляді:
М = 1, F1 F2, ..., Fi, ...,Fn.
У короткому і довгому форматах біт F() при передачі чисел і зберіганні їх у пам'яті не фігурує. Це — прихований (неявний) біт, який в нормалізованому числі завжди дорівнює одиниці.
Приклад 1.11
Представити десяткове число -247,375 в короткому форматі. Двійковий код цього числа дорівнює -11110111,011; істинний порядок буде +7 (кома зсувається вліво на сім розрядів), а зміщення досягне значення Пзм = 127 + 7 = 134. Із врахуванням прихованого біта F0 - 1 маємо:
Знак Порядок Мантиса
1 10000110,1110 1110 1100 0000 0000 0000.
Параметри форматів дійсних чисел наведені в табл. 1.5.
Числа в короткому і довгому форматах існують тільки в пам'яті. При завантаженні чисел в одному з цих форматів у мікропроцесор вони автоматично перетворюються в 80-бітний формат, який використовується тільки для внутрішніх операцій. Аналогічно дані з процесора перетворюються в короткий або довгий формати для зберігання їх у пам'яті.
Таблиця 1.5
Параметри |
Формат |
||
короткий |
ДОВГИЙ |
розширений |
|
Довжина формату, біт |
32 |
64 |
80 |
Довжина мантиси, біт |
24 |
53 |
64 |
Довжина порядку, біт |
8 |
11 |
15 |
Зміщення порядку |
+ 127 |
+ 1023 |
+16383 |
Діапазон |
10±38 |
10±308 |
10±4932 |
Точність обчислень чисел з плаваючою комою зростає зі збільшенням довжини мантиси. Діапазон представлення чисел з плаваючою комою залежить від довжини порядку і основи числення q. В машинах ЄС ЕОМ значення q = 16. В процесорах Pentium діапазон представлення чисел в короткому форматі для q = 2 знаходиться в границях 10±38. Якщо ж для цього формату взяти основу q = 16, то одержимо значення діапазону в границях 10±152.
У мікропроцесорах Pentium використовуються двійково-десяткові цифри в таких форматах:
восьмирозрядні упаковані, що містять в одному байті дві десяткові цифри в коді 8421, наприклад, 3910 = 0011 10012-10;
восьмирозрядні неупаковані, які містять одну десяткову цифру в байті (молодша тетрада) разом з ознакою (зоною) 00112 в міжнародному коді ASCII, наприклад, 3910 = 0011 0011 0011 10012-10.
Представлення десяткового числа 136492 в неупакованому і упакованому форматах показано на рис. 1.11;
7 0 |
7 0 |
7 0 |
7 0 |
7 0 |
7 0 |
0011 0001 |
0011 0011 |
0011 0110 |
0011 0100 |
0011 1001 |
0011 0010 |
a
7 0 |
7 0 |
7 0 |
0001 0011 |
0110 0100 |
1001 0010 |
6
Рис. 1.11. Представлення десяткових цифр в форматах: а — неупакованому; б — упакованому.
80-розрядні упаковані, в які записується 19 десяткових цифр, і в старшу тетраду записується знак числа.
