Унітарний код

В цифрових схемах та машинному навчанні уніта́рний код, або прями́й уніта́рний код (англ. one-hot) — це група бітів, серед яких дозволеними комбінаціями значень є лише ті, в яких встановлено (1) лише один біт, а всі інші вимкнено (0).[1] Подібне втілення, в якому всі біти є «1», крім одного «0», іноді називають зворотним (інверсним) унітарним кодом (англ. one-cold).[2] У статистиці подібну методику для представлення категорійних даних представляють фіктивні змінні.

БінарнийКод ҐреяУнітарний
00000000000001
00100100000010
01001100000100
01101000001000
10011000010000
10111100100000
11010101000000
11110010000000

Застосування

Унітарний код часто використовують для вказування стану скінченного автомату. При використанні двійкового коду або коду Ґрея для визначення стану потрібен дешифратор. Проте скінченний автомат з унітарним кодом не потребує дешифратора, оскільки він перебуває в n-тому стані тоді й лише тоді, коли встановлено n-тий біт.

Прикладом скінченного автомату є кільцевий лічильник з 15 послідовно впорядкованими станами. «Унітарне» втілення матиме 15 з'єднаних ланцюжком тригерів, де вихід Q кожного з тригерів з'єднано з входом D кожного наступного, а вхід D першого тригера з'єднано з виходом Q 15-го. Перший тригер в цьому ланцюжкові представляє перший стан, другий представляє другий стан, і так далі, до 15-го тригера, що представляє крайній стан. При скиданні цього скінченного автомату всі тригери встановлюються в «0», крім першого в ланцюжку, який встановлюється в «1». Прибуття на ці тригери фронту наступного синхроімпульсу просуває цей єдиний встановлений біт до другого тригера. Встановлений біт просувається таким чином до 15-го стану, після чого скінченний автомат повертається до першого стану.

Дешифратор адреси здійснює перетворення з двійкового коду або коду Ґрея на унітарне представлення. Пріоритетний шифратор перетворює унітарне представлення на двійковий код або код Ґрея.

В обробці природних мов вектор унітарного коду є матрицею 1 × N (вектором), який використовують, щоби відрізняти кожне слово зі словника від кожного іншого слова з цього словника. Цей вектор складається з 0-ів у всіх комірках, за виключенням у вигляді єдиної 1-ці в комірці, що використовуються виключно щоби ідентифікувати це слово.

Відмінності від інших методів кодування

Переваги

  • Визначення стану має низькі та сталі витрати на доступ до одного тригера
  • Зміна стану має низькі витрати на доступ до двох тригерів
  • Простора проєктування та модифікації
  • Простота виявляння недозволених станів
  • Використання переваги численності тригерів ПКВМ

Використання унітарного втілення зазвичай дозволяє скінченному автоматові працювати на вищій частоті, ніж будь-якому іншому кодуванню цього скінченного автомату.[3]

Недоліки

  • Вимагає більше тригерів, ніж інші кодування, роблячи його непрактичним для пристроїв ПМЛ
  • Багато станів є недозволеними[4]

Див. також

Примітки

  1. Harris, David and Harris, Sarah (7 серпня 2012). Digital design and computer architecture (вид. 2nd). San Francisco, Calif.: Morgan Kaufmann. с. 129. ISBN 978-0-12-394424-5. (англ.)
  2. One-Hot Encoding. www.sciencedirect.com. Процитовано 20 січня 2020. (англ.)
  3. Xilinx. "HDL Synthesis for FPGAs Design Guide". section 3.13: "Encoding State Machines". Appendix A: "Accelerate FPGA Macros with One-Hot Approach". 1995. (англ.)
  4. Cohen, Ben (2002). Real Chip Design and Verification Using Verilog and VHDL. Palos Verdes Peninsula, CA, US: VhdlCohen Publishing. с. 48. ISBN 0-9705394-2-8. (англ.)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.