1.5. Кодування знакозмінної інформації. Коротка характеристика груп кодів, родинних прямому, зворотному, додатковому. Особливості застосування в комп'ютерах
Знакозмінна інформація на числовій осі займає дві ділянки. Ділянка, розташованa праворуч від нуля, використовується для представлення додатніх чисел, ліворуч - для від’ємних.
При кодуванні такої інформації в обчислювальних системах використовуються також дві ділянки числової осі, розташовані праворуч від нуля. Ці ділянки будемо називати відповідно областю зображення додатніх чисел і областю зображення від'ємних чисел. Знак інформації кодується за допомогою додаткового розряду, що є покажчиком відповідної області зображення. Цей розряд, званий знаком, розташовується лівіше старшого значущого розряду (ЗЗР). Якщо молодший значущий розряд (МЗР) має вагу , а СЗР - вага , то знакової розряду присвоюється природна вага .
Існують два принципи кодування знакозмінних величин:
- Принцип зсуву, при якому будь-яка величина з обраного для обчислювального пристрою діапазону подання чисел кодується як
(1.1)
де - код величини Х, С - постійна величина, яка називається зсувом;
- Принцип доповнення, коли
(1.2)
де - Постійна величина, яка називається доповненням.
Пропонуємо такі способи кодування цифрової знакозмінної інформації, що використовують ці принципи.
1. Коди зі зміщенням ( С-Коди):
а) коди зі зміщенням обох областей ( СС-Коди)
(1.3)
б) коди зі зміщенням тільки у від’ємній області ( ZC-Коди)
(1.4)
2. Коди з доповненням ( D-Коди):
а) коди, в яких обидва доповнення відмінні від нуля (DD-Коди),
(1.5)
б) коди, в яких негативні числа доповнюються до нуля ( DZ-Коди),
(1.6)
3. Коди зі зміщенням і доповненням - комбіновані коди ( K-Коди):
а) CD-Код
(1.7)
б) ZD-Код
(1.8)
в) CZ-Код
(1.9)
г) DC-Код
(1.10)
Відзначимо, що значення величин зміщень і доповнень повинні вибиратися з урахуванням таких обмежень:
1) області зображень додатніх і від’ємних чисел не повинні перетинатися;
2) коди для зображень додатніх і від’ємних чисел повинні мати різну інформацію в знаковому розряді.
Виняток допускається тільки при зображенні нуля. Нуль може бути представлений або одним, або двома різними кодами.
З урахуванням викладених обмежень для двійкової системи числення з природним порядком проходження ваг були знайдені всі можливі величини зміщень і доповнень і побудовані відповідно до цього С-, D- і K-коди (таблиця 1.1).
Таблиця 1. 1. Знакозмінні двійкові коди
Тип коду | Позначе-ння коду | Величина зсуву та доповнення | Найменування коду |
С | СС 1 |
| Додатковий з інверсним знаком (зміщений) |
| CC 2 |
| Інверсний додатковому мінус числа з інверсним знаком |
| CC 3 |
| Зворотній з інверсним знаком |
| CC 4 |
| Інверсний додатковому (інверсія коду з доповненням до 2) |
| ZC 1 |
| Зворотній (з доповненням до одиниць) |
| ZC 2 |
| Додатковий (з доповненням до 2) |
D | DD 1 |
| Додатковий мінус числа з інверсним знаком |
| DD 2 |
| Інверсний додаткового, крім знака (інверсія двійкового коду зі зміщенням) |
| DD 3 |
| Інверсний зворотному, крім знака |
| DD 4 |
| Інверсний додатковому мінус числа |
| DZ 1 |
| Додатковий мінус числа (з доповненням до 2 позитивній області) |
| DZ 2 |
| Інверсний зворотному (інверсія коду з додатком до одиниць) |
K | DC 1 |
| Інверсний прямому (інверсія коду знак + модуль числа) |
| DC 2 |
| Інверсний прямому, крім знака |
| ZD |
| Прямий (знак + модуль числа) |
| CZ |
| Прямий з інверсним знаком |
На рисунках 1.2 - 1.4 наведена геометрична інтерпретація знайдених двійкових кодів і показано зв'язок чисел з їх зображенням (кодами). Крім того, в таблицях 1.2 - 1.4 наведені приклади кодування додатніх та від'ємних граничних значень, ЗЗР, МЗР і нуля.
Рис. 1.2 - Геометрична інтерпретація кодів зі зміщенням
Рис. 1.3 - Геометрична інтерпретація кодів з доповненням
Рис. 1.4 - Геометрична інтерпретація кодів зі зміщенням і доповненням
Таблиця 1. 2. Коди зі зміщенням
Число | СС 1 | CC 2 | CC 3 | CC 4 | ZC 1 | ZC 2 |
-0,11...11 | 0.00...01 | 0,00...00 | 0,00...00 | 0,11 ... 10 | 1,00 ... 00 | 1,00 ... 01 |
-0,10...00 | 0,10...01 | 0,01...11 | 0,01...11 | 0,01 ... 11 | 1.01 ... 11 | 1,10 ... 00 |
-0,01...11 | 0,10...01 | 0,10...00 | 0,10...00 | 0,01 ... 10 | 1.10 ... 00 | 1,10 ... 01 |
-0,00...01 | 0,11...11 | 0,11...10 | 0,11...10 | 0,00 ... 00 | 1,11 ... 10 | 1,11 ... 11 |
-0,00...00 | 1,00...00 | 0,11...11 | 0,11...11 | 1,11 ... 11 | 1,11 ... 11 | 0,00 ... 00 |
+0,00…00 | 1,00...00 | 0,11...11 | 1,00...00 | 1,11 ... 11 | 0,00 ... 00 | 0,00 ... 00 |
+0,00... 01 | 1,00...01 | 1.00...00 | 1,00...01 | 1,11 ... 10 | 0,00 ... 01 | 0,00 ... 01 |
+0,01... 11 | 1,01...11 | 1,01...10 | 1,01...11 | 1,10 ... 00 | 0,01 ... 11 | 0,01 ... 11 |
+0,10...00 | 110...00 | 1,01...11 | 1.10...00 | 1,01 ... 11 | 0,10 ... 00 | 0,10 ... 00 |
+0,11...11 | 1,11...11 | 1,11...10 | 1,11...11 | 1,00 ... 00 | 0,11 ... 11 | 0,11 ... 11 |
Таблиця 1. 3. Коди з доповненням
Число | DD 1 | DD 2 | DD 3 | DD 4 | DZ 2 | DZ 1 |
-0,11... 11 | 1,11 ... 11 | 1,11 ... 10 | 1,11 ... 11 | 1,00 ... 00 | 0,11 ... 11 | 0,11 ... 11 |
-0,10... 00 | 1.10 ... 00 | 1,01 ... 11 | 1,10 ... 00 | 1,01 ... 11 | 0,10 ... 00 | 0,10 ... 00 |
-0,01... 11 | 1,01 ... 11 | 1,01 ... 10 | 1.01 ... 11 | 1,10 ... 00 | 0,01 ... 11 | 0,01 ... 11 |
-0,00... 01 | 1,00 ... 01 | 1,00 ... 00 | 1,00 ... 01 | 1,11 ... 10 | 0.00 ... 01 | 0.00 ... 01 |
-0,00... 00 | 1,00 ... 00 | 0,11 ... 11 | 1,00 ... 00 | 1,11 ... 11 | 0,00 ... 00 | 0,00 ... 00 |
+0,00... 00 | 1,00 ... 00 | 0,11 ... 11 | 0,11 ... 11 | 1,11 ... 11 | 1,11 ... 11 | 0,00 ... 00 |
+0,00... 01 | 0,11 ... 11 | 0,11 ... 10 | 0,11 ... 10 | 0,00 ... 00 | 1,11 ... 10 | 1,11 ... 11 |
+0,01... 11 | 0,10 ... 01 | 0,10 ... 00 | 0,10 ... 00 | 0,01 ... 10 | 1,10 ... 00 | 1.10 ... 01 |
+0,10... 00 | 0,10 ... 01 | 0,01 ... 11 | 0,01 ... 11 | 0,01 ... 11 | 1,01 ... 11 | 1,10 ... 00 |
+0,11... 11 | 0.00 ... 01 | 0,00 ... 00 | 0,00 ... 00 | 0,11 ... 10 | 1,00 ... 00 | 1,00 ... 01 |
Таблиця 1. 4. Комбіновані коди
Число | ZD | CZ | DC 1 | DC 2 |
- 0,11 ... 11 | 1,11 ... 11 | 0,11 ... 11 | 0,00 ... 00 | 1,00 ... 00 |
- 0,10 ... 00 | 1,10 ... 00 | 0,10 ... 00 | 0,11 ... 11 | 1,01 ... 11 |
- 0,01 ... 11 | 1,01 ... 11 | 0,01 ... 11 | 0,10 ... 00 | 1,10 ... 00 |
- 0,00 ... 01 | 1,00 ... 01 | 0,00 ... 01 | 0,11 ... 10 | 1,11 ... 10 |
- 0,00 ... 00 | 1,00 ... 00 | 0,00 ... 00 | 0,11 ... 11 | 1,11 ... 11 |
+0,00 ... 00 | 0,00 ... 00 | 1,00 ... 00 | 1,11 ... 11 | 0,11 ... 11 |
+0,00 ... 01 | 0.00 ... 01 | 1,00 ... 01 | 1,11 ... 10 | 0,11 ... 10 |
+0,01 ... 11 | 0,01 ... 11 | 1,01 ... 11 | 1,10 ... 00 | 1,10 ... 00 |
+0,10 ... 00 | 0,10 ... 00 | 1,10 ... 00 | 1,10 ... 11 | 0,01 ... 11 |
+0,11 ... 11 | 0,11 ... 11 | 1,11 ... 11 | 1,00 ... 00 | 0,00 ... 00 |
У табл. 1.1 дано найменування відомих кодів у вітчизняній і зарубіжній термінології. Зазначимо, що з шістнадцяти можливих знакозмінних двійкових кодів до теперішнього часу згадувалися лише 10.
Традиційними кодами є прямий ( ZD), зворотний () і додатковий . Зворотний код відрізняється від додаткового вибором іншого значення зсуву у від’ємній області. Коди ,і мають інверсний знак. Слід зазначити, що код , який часто називають зсунутим, використовується в ЄС ЕОМ для представлення порядку чисел і в інтегральних цифро-аналогових перетворювачах при організації біполярного режиму роботи.
Отримані коди розділимо на три групи.
1. Коди, родинні прямому ( , , , ). Ця група характеризується тим, що коди додатніх і від’ємних чисел відрізняються тільки значенням знакового розряду. В цих кодах легко виконуються операції зміни знаку числа (інвертування знакового розряду), кодування і декодування чисел, множення і ділення. Недолік таких кодів: неможливість заміни операції віднімання додаванням.
2. Коди, родинні зворотному (, , , ). У цій групі коди додатніх і від’ємних чисел взаємно інверсні, причому цифрові розряди в одній з областей збігаються з оригіналом. В цих кодах зручно виконувати операції зміни знаку числа, кодування і декодування, алгебраїчного додавання. До недоліків відноситься необхідність реалізації циклічного переносу, складність корекції при множенні.
3. Коди, родинні додатковому (, , , , , , , ). Такі коди відрізняються від зворотних кодів одиницею МЗР в одній з областей і характеризуються простотою виконання операції алгебраїчного додавання, але разом з тим утруднені операції зміни знаку, кодування, декодування і множення.
Існування головного переходу поблизу нуля, тобто одночасне зміна цифр у всіх двійкових розрядах при переході через нуль, - загальний недолік кодів, родинних зворотного і додаткового, який обумовлює небажані викиди на виході біполярного ЦАП.
Іншим недоліком, одночасно властивим кодами, родинним прямому і зворотному, є неоднозначність представлення нуля, однак для кодів першої групи відміну є тільки в знаковому розряді. Тому використання в ЦАП і АЦП кодів, родинних прямим, дозволяє одержати більш високу точність перетворення при малих рівнях аналогового сигналу (поблизу нуля).
Як відомо, для додаткового коду розроблені алгоритми множення і ділення, які не потребують введення корекції. Очевидно, що аналогічні алгоритми можна використовувати при виконанні цих операцій в коді , Який представляє собою додатковий код з інверсним знаком (таблиця 1.2).
В ненадлишкових системах числення величини зміщення і доповнення можуть бути рівними - , 0, ,,,. У надлишкових системах числення вибір значень зміщення і доповнення більш широкий. Так, наприклад, в двійково-десятковій системі числення 8421 існує безліч кодів, в яких величина зміщення негативній області С 2 може приймати наступні значення (таблиця 1.5):
,
,
(Інверсний код),
(Додатковий код),
(Код з потетрадного доповненням до 16).
Таблиця 1. 5. Деякі знакозмінні двійково-десяткові коди системи числення 8421
Тип коду | Позначення коду | Величина зсуву та доповнення | Найменування коду |
С | СС 5 | Зміщений інверсний | |
СС 8 | Самодоповнювальний інверсний (з надлишком 3) | ||
ZC 3 | Інверсний | ||
ZC 5 | З потетрадним доповненням до 16 | ||
D | DD 5 | , Крім знака | |
DD 8 | , Крім знака | ||
DZ 3 | |||
DZ 5 | З потетрадним доповненням до 16 коду |
У таблиці 1.5 не внесені коди, аналогічні відповідними кодами ненадлишкових систем числення таблиця 1.1, наприклад коди , та ін. Операція зміни знака в цих кодах вимагає не двійкової інверсії, а потетрадного доповнення до 9. З кодів, зазначених *, можна отримати коди, родинні додатковим, збільшенням на
З перерахованих ZC кодів найчастіше застосовуються перші два, так як вони пов'язані з традиційними правилами отримання зворотних і додаткових кодів в десяткових системах числення. Як відомо, в ЄС ЕОМ при виконанні операції додавання двійково-десяткових чисел з різними знаками застосовується код
Розглянемо деякі CC-коди двійково-десяткових систем числення. Так, наприклад, у системі числення 8421 вибір зміщення в додатній області можливий в межах від до , а у від'ємній області - від до .
Для спрощення операції зміни знаку числа зручно користуватися так званими інверсними кодами, в яких коди від'ємних чисел виходять з кодів додатніх чисел заміною нулів одиницями і одиниць нулями у всіх розрядах, включаючи знаковий.
Необхідна умова існування інверсного коду системи числення 8421 має вигляд
.
В будь-який іншій двійково-десятковій системі числення, що має вагу розрядів -й тетради ,,,інверсний код отримаємо, якщо при виборі величин зміщень и задовольняється співвідношення
. |
(1.11) |
Реалізація алгоритмів десяткової арифметики спрощується при використанні так званих самодоповнювальних кодів, тобто таких кодів, в яких заміна в числових розрядах нулів одиницями і одиниць нулями перетворює число X в число .
Природно, що самодоповнювальні (з доповненням до 9 в кожній тетраді) коди двійково-десяткових систем, в яких , виходять при виборі величини зміщення додатній області , наприклад відомі самодоповнювальні коди систем числення 2421, 3321, і т.п.
В будь-якій іншій системі числення, коли , самодоповнювальний код виходить при певному виборі зміщення позитивній області . Якщо сума ваг такої системи числення непарна, величину зміщення позитивній області вибирають за формулою
. |
(1.12) |
Так, наприклад, у системі числення 8421, що має , Самодоповнювальний код отриманий при виборі величини зміщення позитивній області .
Цей код називають кодом 8421 + 3, або з надлишком 3. Інверсний код з надлишком 3 виходить при виборі величини зміщення .
Як відомо, код з надлишком 3, що представляє собою зміщений код системи числення 8421, до теперішнього часу відносили до класу «невиважених» кодів систем числення, в яких ваги окремих розрядів мають «змінна» значення.
Система числення 6421 має суму ваг . Якщо в цій системі числення вибрати і, Отримаємо самодоповнювальний інверсний код 6421 + 2 (з надлишком 2). Аналогічно, в системі числення 4421 є самодоповнювальний інверсний код 4421 + 1 (з надлишком 1).
Якщо сума ваг парна, можна в такій системі побудувати самодоповнювальний код з доповненням до 9 в кожній тетраді, в якому заміна в числових розрядах нулів одиницями і одиниць нулями перетворює число X в число , якщо величину зміщення позитивній області вибрати рівною
. | (1.13) |
Аналогічно серед групи D-кодів двійково-десяткових систем числення можуть бути знайдені самодоповнювальні. Якщо сума ваг системи числення дорівнює 9, самодоповнювальний код в такій системі числення отримуємо при виборі величини зміщення
.
Якщо непарна, самодоповнювавльнийя код виходить при виборі величини зміщення
. | (1.14) |
Наприклад, у системі числення 8421 самодоповнювальний код виходить, якщо вибрати величину зміщення , а в системі числення 6421 - при .
У розвиток викладеного відзначимо, що система числення 2421 може бути інтерпретована як один з кодів системи числення 8421, в якому додатня область розбивається на дві частини, для кожної з яких вибирається своя величина зсуву: ,. При такому підході умова отримання інверсних кодів зберігається, якщо замість і у вираз (1.11) підставляти ідля Систему числення 6421 можна розглядати як один з кодів системи числення 8421, у якого ,.
Сформульовані правила отримання самодоповнювальних й інверсних кодів значно розширюють наші уявлення про принципи кодування знакозмінної двійково-десяткового інформації, дозволяють встановити взаємозв'язок між різними кодами двійково-десяткових систем числення, спрощують знаходження формул декодування, якими зручно користуватися при синтезі біполярних цифро-аналогових перетворювачів. Так, наприклад, код з надлишком 3 являє собою -код системи числення 8421, завдяки чому були знайдені математичні вирази, що описують операцію декодування, з використанням яких були побудовані декодуючі сітки й перетворювачі коду 8421 + 3 в пропорційне напругу.
Розглянемо систему залишкового класу, в якому основи - 7,5,3.
Q = p 3 p 2 p 1 = 105
Додавання виконується без переносів
Переклад з СЧ залишкових класів в класичну позиційну СЧ.
1. метод ортогональних базисів
Для представлення негативних чисел можна використовувати також і двійкову систему числення, в якій спеціальний знаковий розряд відсутній. У такій системі числення підставу p = -2, у зв'язку з чим така система називається мінус двійковій СЧ. За допомогою чотирьох двійкових розрядів у звичайній системі можна представити числа від 0 до 15, в мінус двійковій системі - числа від -10 до +5.
У цій системі числення позитивне число буде мати в старшому парному розряді одиницю. Від’ємнне число буде мати одиницю в старшому непарному розряді. Так як вага переносу зі i-го розряду в сусідній, старший розряд має зворотний знак, то він реалізується таким чином: якщо в старшому розряді в результаті складання виходить 1, то вона цим перенесенням гаситься (змінюється на нуль), якщо ж у старшому розряді виявився 0, то таке перенесення роздвоюється: додається одиниця в старший і наступний за ним розряди.
- Комп’ютерна схемотехніка. Архітектура комп’ютерів 2 зміст
- 2.1. Класифікація, призначення та основні характеристики пам'яті
- 2.2. Оперативна пам’ять (оп)
- 2.2.2. Статична пам'ять на біполярних транзисторах
- 2.3. Постійна пам'ять (пп)
- 2.9. Зовнішня оптична пам'ять
- 1. Представлення та обробка інформації
- Класифікація засобів обчислювальної техніки
- 1.2. Класифікація комп’ютерів
- 1.3. Структурна схема компю’терів, що використовують спільну шину
- 1.4. Системи числення
- 1.4.1. Базові параметри та класифікація систем числення
- 1.4.2.Загальні принципи побудови систем з послідовним обчисленням символів
- 1.4.3. Загальні принципи побудови систем числення з паралельним обчисленням символів
- 1.5. Кодування знакозмінної інформації. Коротка характеристика груп кодів, родинних прямому, зворотному, додатковому. Особливості застосування в комп'ютерах
- 1.6. Формати даних і команд сучасних комп’ютерів
- 1.7. Процесори
- 1.7.1. Склад і призначення пристроїв
- 1.7.2. Блок додавання чисел у формі з фіксованою крапкою
- 1.7.3. Особливості виконання складання чисел у формі з плаваючою крапкою
- 1.7.4. Реалізація процесора двійкового множення. Загальні положення
- 1.7.5. Реалізація множення в прямому коді
- I варіант.
- II варіант.
- III варіант.
- IV варіант
- 1.7.6. Реалізація в процесорі операції множення в додатковому коді
- 1.7.7. Реалізація методів прискореного множення в процесорах
- 1.7.8. Схемні методи прискореного множення
- 1.7.9. Особливості виконання множення чисел з плаваючою крапкою
- 1.8. Реалізація двійкового ділення в процесорі
- 1.8.1. Реалізація ділення чисел з фіксованою крапкою в прямому коді
- 1.8.2. Особливості ділення чисел у формі з плаваючою крапкою
- 1.9. Добування квадратного кореня
- Частина 2. Пам'ять комп'ютерів
- 2.1. Класифікація, призначення та основні характеристики пам'яті
- 2.2 Оперативна пам’ять (оп)
- 2.2.1 Внутрішня організація оп
- 2.2.2.Статична пам'ять на біполярних транзисторах
- 2.2.3. Статична пам'ять на езл-інтегральних схемах (іс)
- 2.2.4. Статична пам'ять на уніполярних транзисторах (на мон іс)
- 2.2.5. Динамічна пам’ять (дп) на моп транзисторах
- 2.2.6. Побудова пам’яті необхідної розмірності
- 2.3. Постійна пам'ять (пп)
- 2.3.1. Типи пп
- 2.3.2. Масочні пп (мпп)
- 2.3.3. Однократнопрограмована пам'ять
- 2.3.4. Репрограмована пам'ять
- 2.3.5. Flash-пам'ять
- 2.4. Зп с послідовним доступом(зппд)
- 2.4.1. Зппд на регістрах зсуву
- 2.4.2. Елемент зп з послідовним доступом на мон-транзисторах
- 2.4.3. Буферний зп типу "черга" (бп)
- 2.4.4. Пам'ять типу "список"/"стек"
- 2.5. Асоціативна пам'ять
- 2.6. Зовнішня пам'ять (зп)
- 2.6.1. Типи зп
- 2.6.2. Зовнішня магнітна пам'ять (змп)
- 2.6.3. Способи цифрового магнітного запису
- 2.7. Зовнішня пам'ять з прямим доступом(зпПрД)
- 2.7.1. Накопичувачі на гнучких магнітних дисках(нгмд)
- 2.7.2. Накопичувачі на жорстких магнітних дисках(нжмд)
- 2.7.3. Raid – дискові масиви
- 2.8. Зовнішні зп з послідовним доступом. Накопичувачі на магнітних стрічках(нмс). Стримери
- 2.9. Зовнішня оптична пам'ять
- 2.9.1. Оптичні диски типу cd
- 2.9.2. Оптичні диски типу dvd
- 2.10. Контроль роботи пристроїв пам’яті
- 3.1. Пристрій управління
- 3.1.1 Склад пристрою управління
- 3.1.2. Пу з жорсткою логікою
- 3.1.3. Мікропрограмний пристрій управління (пристрій управління з гнучкою логікою)
- 3.1.4. Мікропрограмний пристрій управління зі змінною тривалістю реалізації мікрокоманд.
- 3.2. Системи переривань
- 3.2.1. Типи і основні характеристики системи переривань
- 3.3. Система управління вводом/виводом
- 3.4. Організація мультипрограмного режиму роботи в сучасних комп’ютерах
- 3.4.1. Форми обслуговування користувачів і види мультипрограмування (мпр)
- 3.4.2. Динамічний розподіл пам'яті
- 3.4.3. Система захисту пам’яті (сзп)
- 0 1 2 3 4 5 6 7
- 3.5. Системи автоматичного контролю
- 3.5.1. Види помилок і способи контролю
- 3.5.2. Контроль передачі кодів
- 3.5.3. Контроль роботи комбінаційних схем
- 3.5.4. Контроль виконання операцій в процесорах
- 3.5.5. Контроль роботи процесорів по модулю 3