این نوع کدینگ در کنار روشهای 4b/5b و 5b/6b به روشهای کدهای بلوکی معروف هستند که بسیار که برای ارسالهای با سرعتهای بالا مورد استفاده قرار میگیرند و در واقع نگاشت بی قانون از دیتاها به دیتای متناظر برای هدفی خاص هستند.به عبارتی یک کد 8 بیتی به یک کد 10 بیتی در روش 8b/10b با هدف مساوی قرار دادن تعداد یکها وصفرها نگاشت میشود کدهای جدید میتواند برای میل به این هدف کاملا قراردادی باشد. در سال 1983 شرکت IBM یک مقاله [1] با نام A DC-Balanced, Partitioned-Block, 8b/10b Transmission Code توسط A. X. Widmer and P. A. Franaszek ارائه شد که در ابتدا برای انتقال دیتا با سرعت بالا در فیبرهای نوری مورد استفاده بود و به صورت یک اختراع به ثبت رسید.این روش کدینگ به دلیل سرعت بالا برای استفاده در ارتباط هایی که سرعت بالایی لازم دارند بسیار مفید است و در واقع برای استفاده در FPGA ها به دلیل سرعت بالای کلاک بسیار مناسب است.این روش کدینگ بر اساس ایجاد اختلاف محدود و بالانس DC است به این معنی که در هر آرایه از 20 بیت اختلاف بین تعداد یک ها و صفرها از 2 بیشتر نیست و همچنین در هر 6 بیت بیشتر از 5 صفر یا یک وجود ندارد.این دو خاصیت مزیت مهم این اختراع را مشخص میسازد چرا که اولین کاری که این روش کدینگ میکند پخش کردن یکها و صفرها در کل آرایه است تا میانگین زمان لازم برای یک ماندن و صفر ماندن بیشتر شود و با این کار زمان لازم برای شارژ و دشارژ خازنهای خط انتقال را بیشتر میکند و در نتیجه سرعت انتقال را افزایش خواهد داد و به عبارتی پهنای باند لازم برای انتقال را کاهش میدهد.این روش کدینگ در ابتدا در زمینه ی ذخیره سازی سیگنال صدا ی دیجیتال در نوارهای مغناطیسی کاربرد گسترده ای پیدا کرد.
ساختار پروژه ی اینکدر و دیکدر 8 بیت به 10 بیت
هم اکنون که از تاریخ اختراع Franaszek و Widmer بیش از ربع قرن میگذرد و تاریخ محرمانه بودن اختراع به سر رسیده ما میتوانیم بر اساس همان اختراع یک سیستم بهینه ارائه کنیم که همگان بتوانند از ابداعات موجود در این اختراع بهره مند شوند.هدف ما طراحی یک سیستم کدینگ 8 به 10 بیت و دیکدر بر اساس همان ساختار است البته در سیستمهای تجاری ممکن است سیستم چک کننده ی خطا و آپشنهای دیگری هم در نظر گرفته شود ولی در این پروژه فقط یک سورس ساده راه اندازی شده است. همچنین اینکدر و دیکدر 8 بیت به 10 بیت میتواند بر اساس ساختارهای مختلفی پیاده سازی شود که این ساختارها میتوانند بر روی ملزومات سخت افزاری یا بالانس DC و ... متمرکز باشد. یکی از روشهایی که وجود دارد طراحی بر اساس K است که اولین بار توسط IBM ارائه شد. این روش کدینگ هم اکنون برای ارسال دیتا با سرعت یک گیگابایت در کارت های شبکه شرکت معروف گیگابایت استفاده میشود.در این روش برای به دست اوردن سرعت 1Gbps باید یک خط انتقال با پهنای باند 10/8 x 1 = 1.25Gbps در اختیار داشته باشیم.
چرا خاصیت بالانس DC لازم است
در واقع خط انتقال دیتا در هر مدلی که باشد شبیه به یک خازن خواهد بود و یا چند عنصر خازنی و مقاومتی و سلفی و در صورتی که یک دیتای DC به خط انتقال داده شود خط انتقال که شبیه به یک فیلتر عمل میکند عملاً دیتا را دچار اعوجاج خواهد نمود.در واقع به بیان ساده تر ما باید سعی کنیم تعداد صفرها و یک ها برابر باشند و یا این که حداکثر دو اختلاف داشته باشند تا خازن خط انتقال پر نشود. البته در بیان کاملتر باید بگوییم که بهترین حالت بالانس هنگامی است که پهنای باند دیتا را در مرکز پهنای باند خط انتقال قرار دهیم و تغییرات را نسبت به فرکانس خط انتقال بهینه نماییم.ولی در هر حالت ایجاد حداکثر تغییرات مورد نظر است.
خاصیت عدم توازن روان
این خاصیت در واقع مولفه ی اصلی در اجرای توازن DC است تا خط انتقال در برابر نویز DC مقاوم باشد.ما در هر 10 بیت ارسال اختلاف تعداد یک ها و صفرها را محدود کرده ایم ولی مشکل اصلی در ارسال کد بعدی است که ممکن است توازن را بهم بریزد و در همینجاست که مفهوم عدم توازن روان(RD) مطرح میگردد و در اصلاح باید توازن تعداد بیتها را برای ارسال کارکتر بعدی نسبت به کارکتر ارسالی کنونی حفظ نماییم.مقدار RD فقط در دو حالت -1 و1 خواهد بود که این دو حالت بر اساس حالت قبلی بر اساس جدول زیر انتخاب مینماییم.در واقع عدم توازن روان تضمین میکند که کل یکها و صفرها نه فقط در یک بایت بلکه در مجموع بایتهای ارسالی تفاوت چندانی ندارد و این باعت میشود که در صورت ذخیره دیتا در یک نوار مغناطیسی قطبش نداشته باشیم و این نوع کدینگ برای ذخیره دیتا در نوار مغناطیسی بسیار مناسب است.