Document Type : Research Article
Authors
1 Dept. of Computer Engineering, Shahid Rajaee Teacher Training University, Tehran, Iran
2 Dept. of Computer Engineering, Riverside University, California, USA
Abstract
Keywords
1- مقدمه[1]
در سالهای اخیر، در ساخت تراشههای چند هستهای پیشرفته از فناوریهای زیرمیکرون عمیق برای ساخت بهره گرفته شده است [2,1]؛ بنابراین، این تراشهها حساسیت زیادی به اشکالهای محیطی دارند؛ ازاینرو، قابلیت اطمینان در کارکرد صحیح شبکههای برتراشه، یکی از چالشهای جدی طراحی است. طراحان چنین سیستمهایی همواره قابلیت اطمینان را در روند طراحی خود لحاظ میکنند و با استفاده از روشهای اجتناب، مقابله و ترمیم اشکال، سعی در افزایش این پارامتر دارند [3-2].
اشکالهای گذرا مهمترین منابع اشکالیاند که کارکرد صحیح شبکههای برتراشه را به مخاطره میاندازد. قدرت و شدت این اشکال در فناوریهای زیر میکرون عمیق، بیشتر از فناوری زیر میکرون است [4-9]. یکی از این نوع اشکالها خطاهای نرم[1] است؛ این خطاها ناشی از برخورد ذرات پرانرژیاند [10-13] که به تغییرات ناخواستۀ تکبیتی یا تکرخداد و چندبیتی یا چندرخداد واژگونی در داده منجر میشوند [22] [21] [5-9]. در سطوح بالاتر، این اشکالها باعث میشوند بستههای اطلاعاتی به سمت مقصد، درست منتقل نشوند. یکی دیگر از اشکالات نرم، اشکال همشنوایی در سیمهای مجاور است که به علت تزویج خازنی و سلفی میان سیمها رخ میدهند [12] [13] [17].
با توجه به اینکه مساحت زیادی از راهگزینها را میانگیرها تشکیل میدهند و نیز احتمال وقوع خطای نرم در فناوریهای زیرمیکرون عمیق، بالا است، احتمال تغییریافتن مقادیر میانگیرهای حاوی فلیتها در اثر خطای نرم، بالا است [13]. با گذر از فناوری ساخت زیرمیکرون به فناوری زیرمیکرون عمیق، خطاهای نرم تکبیتی جای خود را به خطاهای چندبیتی میدهند.
روشهای بهکاررفته برای مقابله با خطاهای نرم در شبکههای برتراشه، ازنظر ساختاری، به روشهای مبتنی بر افزونگی اطلاعاتی [21-24]، روشهای مبتنی بر افزونگی غیراطلاعاتی و نیز ترکیبی از روشهای فوق تقسیم میشوند[14] [20] [23] [36] [37] . در روشهای مبتنی بر افزونگی اطلاعات از کدگذارهای مختلفی برای محافظت داده و تشخیص و تصحیح خطا در این داده استفاده میکنند.[25-35] در روشهای مبتنی بر افزونگی غیراطلاعاتی نظیر تغییر معماری، با تغییر معماری اجزا نظیر مسیریاب و ... یا با افزونگیهای سختافزاری به مقاومکردن اجزای شبکههای برتراشه بهمنظور مقابله با انواع خطاها اقدام میکنند [8]. در روشهای ترکیبی نیز با استفاده از ترکیب روشهای افزونگی اطلاعاتی و غیراطلاعاتی و با در نظر گرفتن خصوصیات شبکههای برتراشه به ارائۀ روشی بهمنظور افزایش قابلیت اطمینان سیستم اقدام میکنند. با وجود این، کاستی عمدۀ این روشها در نظر نگرفتن اولویت بخشهای مختلف یک بسته است[16,15] ؛ یعنی شیوههای یکسانی برای فلیت سرآیند و داده در نظر گرفته میشوند.
در این مقاله، با توجه به اهمیت خطای چندرخداد واژگونی که ناشی از برخورد ذرات پرانرژیاند و بیشتر این خطاها نیز در عناصر حافظه و بهطور مشخص بر میانگیرهای موجود در هر گره از شبکههای برتراشه اتفاق میافتند [10,11]، تمرکزمان بر خطاهای نرم است.
ایدۀ اصلی این مقاله مبتنی بر ساختار موجود در سلسله مراتب پیامهای شبکه روی تراشه است. در ساختار شبکه روی تراشه، داده در واحدهایی با عنوان فلیت بین هستههای پردازشی جابهجا میشود [15]. با توجه به میزان اهمیت متفاوت فلیتها، رویکردهایی که برای مقابله با اشکالات در فلیتهای سرآیند و دیگر فلیتها نظیر فلیتهای داده در نظر گرفته شدند نیز متفاوت خواهند بود. روش ارائهشده در این مقاله به همین علت فلیت الویتدار نام دارد. راهی که برای مقابله با خطای فلیت سرآیند در نظر گرفته شد، مبتنی بر برگبرگ گذاری است. برای تشخیص خطای فلیتهای داده، نیز از ترکیب روشهای کدینگ و کدگذاری اجتناب از همشنوایی استفاده شده است.
میزان تأثیر روش فلیت اولویتدار با استفاده از شبیهسازیهای متنوع انجامشده، بررسی شده است. برای بررسی سربار مربوط به کارایی روشهای ذکرشده در سطح شبکۀ برتراشه، از شبیهسازBookSim استفاده شده که یک شبیهساز مبتنی بر شبکههای برتراشه است [18] . شبیهسازی روش ذکرشده در شبیهساز BookSim این امکان را میدهد تا میزان سربار تأخیری برآورد شود که یک روش افزونه در کل یک شبکۀ برتراشه است؛ در این شبیهساز، یک شبکۀ مش 8×8 در نظر گرفته شده است. همچنین بهمنظور بررسی آثار عملی روش فوق، سرباز سختافزاری این روش هم از پیادهسازی با زبان Verilog و سنتز با Design Compiler در فناوری 45 نانومتر بهره گرفته شده است. نتایج و مقایسه با روشهای موجود در ادبیات موضوعی نشان میدهند روشهای پیشنهادی به تحمل خطاهای چندبیتی در شبکههای برتراشه با سربار کارایی، توان مصرفی، مساحت و سربار پذیرفتنی نسبت به سایر روشها قادر شدهاند.
در این مقاله، در بخش 2، ابتدا مروری بر معماری شبکههای بر تراشه، انواع شبکههای برتراشه و مفاهیم پایه در این نوع شبکهها شده است. همچنین در بخش 2، چالشهای قابلیت اطمینان در شبکههای برتراشه نظیر خطاهای نرم تکبیتی و چندبیتی بررسی شدهاند. همچنین در همین بخش، نگاهی به اهمیت خطاهای چندبیتی بهویژه در فناوریهای زیر میکرون عمیق و نیز مدلهای خطاهای چندبیتی در میانگیرهای از جنس SRAM شده است. در بخش 3، روشهای مرتبط برای مقابله با خطای نرم بررسی شدهاند که در دو بخش روشهای سطح پایین و روشهای سطح بالا دستهبندی شدهاند. در بخش 4، روش پیشنهادی برای مقابله با خطای نرم بررسی شده است. در بخش 5 نیز شبیهسازی کارایی و سختافزاری ایده بررسی شده است. درنهایت، در بخش 6، نتیجهگیری و کارهای آتی مقاله بیان شدهاند.
با افزایش تعداد هستهها در یک تراشه، برای تأمین بهرهوری بالا برای یک هسته، به پهنای باند زیادی نیاز است؛ بنابراین نیاز به یک شبکۀ ارتباطی مقیاسپذیر[2] احساس میشود که بهعنوان شبکههای برتراشه ارائه شد [1] [5]. در یک شبکۀ روی تراشه، هستهها به کمک واحدهای مسیریاب به شبکه متصل و داده در قالب بستههایی در شبکه، مسیریابی میشوند. واحدهای مسیریاب نیز با استفاده از کانالهای ارتباطی و براساس یک ساختار از پیش تعیین شده به نام همبندی به یکدیگر متصل میشوند.
شکل (1)، یک گرۀ نوعی شبکه را روی تراشه نشان میدهد که برای شبکهای مبتنی بر همبندی توری مناسب است. با توجه به شکل (1)، هر گره حاوی پردازشگر یا هستۀ پردازشی و واحد مسیریاب است[15] . قسمت پردازشگر، بستههای تولیدشدۀ خود را با یک کانال ارتباطی
به نام کانال تزریق به شبکه وارد میکند و بستههایی که سایر گرهها برای او صادر کردهاند، ازطریق کانال دیگری به نام کانال دریافت میگیرد. در ساختار شبکه روی تراشه، حجم زیادی حدود 40 تا 90 درصد از مساحت راهگزین را میانگیرها تشکیل میدهند [7] [1].
در سطح دادۀ شبکههای برتراشه هر پیام به بستههایی با اندازۀ مساوی تقسیم میشود و بستهها نیز ممکن است به واحدهای کوچکتری به نام فلیت تقسیم شوند[15] . فلیت واحدی از داده است که با توجه به پهنای بیتی کانال ارتباطی، طی یک یا چند سیکل ساعت از روی کانال، عبور داده میشود. فیت، میزان دادهای است که در یک سیکل ساعت از روی کانال عبور داده میشود (معمولاً اندازۀ فیت و فلیت برابر در نظر گرفته میشوند). شکل (2)، این تقسیمات دادهای را نمایش میدهد.
در سطح کاربرد، شبکههای روی تراشه بسیار کاربردیاند. به دو دسته از کاربردهایی توجه شده است که طیف وسیعی از کاربردهای کنونی و آیندۀ سیستمهای روی تراشه را نمایندگی میکند [1]. دستۀ اول کاربردهاییاند که قبلاً (و درحال حاضر) روی سیستمهای چندپردازندهای و سرورهای پرقدرت اجرا میشدند و با ظهور و معمولشدن چندپردازندههای روی تراشۀ مبتنی بر شبکۀ روی تراشه، در آیندۀ نزدیک، بهعنوان کاربردهای مهم این معماریها بررسی خواهند شد. کاربردهای شاخص این دسته عبارتاند از:
یک فیت کاربردهای تشخیص/دادهکاوی/ترکیب[5] که به نام کلی RMS شناخته شده است و شامل طیف وسیعی از کاربردهای با کارآیی بالا هستند.
تشخیص دربردارندۀ تشخیص اجسام و مسائل مربوط به بینایی ماشین است.
اما دستۀ دوم، کاربردهاییاند که برای سیستمهای نهفتۀ چندهستهای طراحی میشوند. این سیستمهای نهفته بیشتر بهصورت دستگاههای حملشدنی مانند PDAها، وسایل مراقبت پزشکی و ... بودهاند و درنتیجه، استفاده از منبعِ محدود انرژی مهمترین مشخصۀ آنهاست.
شکل (1): معماری یک گرهی شبکهی بر تراشه[4].
ساختار شبکه روی تراشه شامل واسطها و سیمهای ارتباطیاند که داده را مابین هستههای پردازشی جابهجا میکنند. مهمترین چالشهای گذرا در واسط، اشکالات نرم و در سیمهای کانال ارتباطی اشکال همشنوایی است. در این بخش به این دو چالش با جزئیات بیشتری پرداخته شده است.
مدل خطای نرم
طی پژوهش انجامشده در [6]، نرخ خطای نرم از فناوری 130 به 30 نانومتر در حدود 6 تا 7 برابر افزایش پیدا کرده است. جدول (1) میزان خطاهای چندبیتی نسبت به خطاهای تکبیتی در فناوریهای مختلف را نشان میدهد و جدول (2) برآوردی است که [7]IRTS [19] برای سالهای آتی دربارۀ احتمال رخداد خطاهای چندبیتی داشته است؛ بنابراین، میتوان به این نکته پی برد که 100 درصد خطاهای نرمی در تراشههای ساخت سال 2021 به بعد، تبدیل به خطاهای چندبیتی خواهند شد. این امر، حکایت از اهمیت فراوان خطای چندبیتی دارد که باید در روشهای افزایش قابلیت اطمینان در نظر گرفته شوند.
پیشتر برخورد ذرات آلفا و نوترون به سطح تراشهها یکی از عوامل از دست رفتن محتویات ذخیرهشده در عناصر حافظۀ ایستا، در خارج از جو زمین بود؛ اما با پیشرفت فناوری VLSI و کوچکتر شدن ابعاد ترانزیستورها، حساسیت عناصر حافظه افزایش یافته است [8]. همچنین قدرت و نرخ ذرات پرانرژی نظیر آلفا و نوترون که (از مواد بهکاررفته در بستهبندی مدار مجتمع و همچنین فضا) برتراشه میبارند، ثابت مانده است. برخورد ذرات شتابدار به سطح تراشه، یکی از معضلات و مشکلات فناوریهای جاری است و روندی رو به وخامت دارد. مدل خطای نرم بیانکنندۀ تغییر ناخواسته در محتویات ذخیرهشده در یک بیت از حافظۀ سیستم است؛ این تغییر به دلیل برخورد ذرات پرانرژی رخ داده است [8] که با پیشرفت فناوری، خطاهای تکبیتی موجود در فناوریهای رایج، تبدیل به خطاهای چندبیتی میشوند [9].
با توجه به اینکه حجم زیاد حدود 40 تا 90 درصد از مساحت راهگزین را میانگیرها تشکیل میدهند [1]، به احتمال زیاد ممکن است یک خطای چندبیتی در این قسمت رخ بدهد. الگوهای خطای متفاوتی، در صورت به وجود آمدن خطای نرم چندبیتی ممکن است پدیدار شوند؛ این الگوها به سه دستۀ کلی تقسیم میشوند که در شکل (3) آورده شدهاند. در مطالعات انجامشده در [10,11]، احتمال رخداد الگوهای بههمپیوسته، بسیار بیشتر از احتمال رخداد دیگر الگوها برآورد شده است؛ این مورد در روش پیشنهادی باید بهمنظور افزایش قابلیت اطمینان در نظر گرفته شود [11].
شکل (2): ساختار پیامها و بستهها [5].
جدول (1): نسبت خطاهای چندبیتی به خطاهای تکبیتی در فناوریهای مختلف [7] .
اندازه فناوری |
تعداد کل |
حداکثر بیت |
||||
mm |
2 |
3 |
8-4 |
8< |
حداکثر بیت |
|
180 |
0.5 |
0.5 |
0.0 |
0.0 |
0.1 |
2 |
130 |
1.2 |
0.8 |
0.2 |
0.2 |
0.1 |
7 |
90 |
1.9 |
1.5 |
0.2 |
0.2 |
0.1 |
7 |
65 |
2.4 |
2.1 |
0.1 |
0.0 |
0.1 |
10 |
45 |
2.3 |
1.9 |
0.2 |
0.1 |
0.1 |
6 |
32 |
3.1 |
2.6 |
0.2 |
0.3 |
0.1 |
16 |
22 |
3.9 |
3.0 |
0.2 |
0.3 |
0.1 |
18 |
جدول (2): برآورد IRTS از احتمال خطاهای چندبیتی [19].
پیشبینی یا سال |
2013 |
2016 |
2019 |
2022 |
اندازۀ فناوری (نانومتر) |
35 |
25 |
18 |
13 |
طول گیت (نانو متر) |
15 |
9 |
6 |
45 |
تعداد رخداد واژگونی (به درصد) |
64% |
100% |
100% |
100% |
اشکال همشنوایی نیز که در سیمهای طولانی و موازی رخ میدهد، باعث تغییرات ناخواستۀ داده روی کانالهای شبکه روی تراشه میشود و درنهایت، بستهها بهدرستی تحویل نمیشوند [13]. اثرات اشکال همشنوایی در سیمهای اصابتشده که به آنها سیمهای قربانی[8] گفته میشود، به یکی از سه صورت زیر مشاهده میشود: 1)ولتاژ گذرای[9] ناخواسته در سیمهای قربانی؛ 2) تسریع در رخداد لبههای بالا/پایین رونده در سیمهای قربانی و 3) تأخیر در رخداد لبههای بالا/پایین رونده در سیمهای قربانی کانال؛ البته علاوه بر سه نمونۀ ذکرشده که باعث دریافت غیرصحیح اطلاعات و کاهش صحت اطلاعات میشوند، رخداد اشکال همشنوایی باعث افزایش توان مصرفی در کانالهای شبکه روی تراشه نیز میشود [14]. به عبارت دیگر، یک کانال ایدئال که همشنوایی در آن رخ نمیدهد، به انرژی کمتری برای ارسال حجم مشخصی از داده در قیاس با یک کانال واقعی نیاز دارد. در صورت رخداد یک ولتاژ گذرای ناخواسته در سیم قربانی، ممکن است سمت گیرندۀ کانال، بیت نادرستی را دریافت کند؛ اگر ولتاژ گذرا دارای عرض کافی باشد. همچنین اگر تسریع/تأخیر ایجادشده از یک حداقل بیشتر باشد، اتفاق مشابهی خواهد افتاد [20].
شکل (3): الگوهای خطاهای چندبیتی
روشهای مختلفی در ادبیات موضوعی برای مقابله با اشکالات گذرا ارائه شدهاند. این روشها به دو بخش تقسیم میشوند؛ روشهای مقابله با خطای نرم [21][22][24] و روشهای مقابله با اشکال همشنوایی. روشهای بهکاررفته برای مقابله با خطاهای نرم در بافرهای شبکههای برتراشه به روشهای سطح پایین [23] [21]که از افزونگیهای داده برای تشخیص و تصحیح خطای نرم استفاده میکنند و روشهای سطح بالا [4] در سطح مسیریابی تقسیم میشوند. روشهای سطح بالا به علت افزودن افزونگی، برهای ترافیکی و بسته کارایی شبکههای روی تراشه تأثیر میگذارد و بنابراین، قابلیت اطمینان در سطح روشهای سطح پایین با سربار کمتری افزایش مییابد.
در روشهای سطح پایین بسته به میزان تشخیص و تصحیح مورد نیاز از کدگذاریهای مختلف مبتنی بر افزونگی داده، استفاده میکنند. استفاده از کدهای تشخیص خطا یکی از مرسومترین راههای افزایش قابلیت اطمینان شبکههای برتراشه در مقابل خطای نرم است. هزینۀ طراحی پایین و این قابلیت که به طراح اجازه میدهد پس از تشخیص خطا، فرایند ترمیم خطا بهصورت نرمافزاری یا سختافزاری انجام شود، از دلایل مقبولیت این دسته از روشها است. در صورت تشخیص خطا یکی از روشهای ارسال مجدد، تصحیح خطای رو به جلو و روش ترکیبی بهکاررفته است. در [20] روشی ارائه شده است که بتواند انرژی مصرفی سیستم را بهصورت هدفمند بهمنظور افزایش قابلیت اطمینان سیستم مصرف کند. انتقال داده در این روش به این صورت انجام میپذیرد که هر بیت، داده را بهصورت بیت میفرستد؛ یعنی دادهها را بهصورت سطری و ستونی میفرستند. در این روش، از کدهای همینگ سطری و ستونی برای تشخیص و تصحیح خطا استفاده میشود.
در [14] یک کد همینگ اصلاحشده برای شناسایی و اصلاح اشکالاتهای نرم ارائه شده است. در این روش، ورودی دادۀ کدگذاریشده در گروهها دستهبندی و هر همینگ اصلاحشده بهطور موازی روی هر گروه، اعمال و در صورت وجود اشکال، از ارسال مجدد استفاده میشود. نتایج شبیهسازی ثابت میکنند همینگ اصلاحشده در مقایسه با کد همینگ معمولی، زمان تأخیر و سرعت را کاهش میدهد. در [25] از یک ساختار حافظۀ ترکیبی شامل SRAM و STTRAM برای افزایش قابلیت اطمینان بافرها استفاده شده است. این روش یک خطا را تصحیح و دو خطا را تشخیص می دهد. در [26] بافرهای شبکه روی تراشه با سه نوع ECC شامل همینگ توسعهیافته، همینگ نوع دوم و تصحیح خطای مجاور سهگانه محافظت و با کنترل خطای نابرابر انعطافپذیر ارزیابی شدهاند. تفاوت این روشها بهبود قابلیت تصحیح و تشخیص خطا انفجاری با استفاده از تغییر در ماتریس تولید کد همینگ است؛ ولی این روش همینگها بسیاری از الگوهای خطاهای چندبیتی را تشخیص و تصحیح نمیکند و مساحت زیادی به تراشه تحمیل میکند.
دستهای دیگر از روشهای مقابله با اشکالات، تنها برای مقابله با اشکالات همشنوایی در سیمها ارائه شدهاند که کدینگ اجتناب از همشنوایی کمهزینهترین آنها است [40]-[52]. این کدینگها الگوهای خاصی را در کلمات کد حذف میکنند.
این کدگذاریها به اجتناب از همشنوایی مشهورند و میتوانند با حذف الگوهای گذارِ ممنوعه از محتوای فلیتها/بستهها، باعث کاهش/حذف اِشکال همشنوایی در خطوط ارتباطی بین هستههای پردازشی شوند [27]. حذف این الگوهای ممنوعه، با ارائۀ نگاشتی مناسب برای تبدیل کلمه داده به کلمه کد، صورت میگیرد که دارای چهار کلاس تأخیر است. کدگذاریهای اجتناب از همشنوایی به دو دستۀ مبتنی بر حافظه و بدون حافظه تقسیم میشوند. در کدگذاریهای مبتنی بر حافظه، کلمه کد [10] براساس کلمه کد قبلی و کلمه دادهای [11] تولید میشود که باید در سیکل جاری ارسال شود؛ اما روشهای بدون حافظه، کتابچه کد [12] ثابتی دارند و برای تولید کلمه کدها فقط به دادههایی توجه میکنند که هماکنون باید ارسال شوند، ولی حافظۀ زیادی دارد.
کدهای الگوی ممنوعه [28-31] کدهای همپوشانی ممنوعه [32]، کدهای انتقال ممنوعه [33] و کدهای یک لامبدا [34] انواع CAC براساس طبقهبندی طبقات مختلف الگوی گذارند.
در [21] روشی به نام تشخیص خطای بالا با طرح کدینگ مشترک تصحیح خطا پیشنهاد شده است که برای برطرفکردن چالشهای اشکال همشنوایی بین اتصالات مجاور و تأثیر افزایش منابع نویز استفاده شد. در [22] یک روش جدید کدگذاری باس آگاه از نویز با استفاده از تکرارکنندههای زمینی با توان پایین ارائه شده است که برای به حداقل رساندن نویز در بین اتصالات مجاور با کمترین توان از زمین بهعنوان محافظ استفاده شده است. در [23] روشی به نام طرح مشترک کدهای اجتناب از تداخل و کدهای تصحیح خطا پیشنهاد کردند که نرخ انتقال باس بالاتری را فراهم میکند. در [24] کد تصحیح خطای افزونگی پایین با تصحیح خطای بیشتر را برای مسئلۀ قابلیت اطمینان پیوند اتصال داخلی روی تراشه پیشنهاد کردند.
مهمترین منابع اشکالی که کارکرد صحیح شبکههای روی تراشه را به مخاطره میاندازند، اشکال چندرخداد واژگونی و اشکال همشنوایی هستند. برخورد ذرات پرانرژی به عناصر حافظه که به اشکال چندرخداد واژگونی مرسوم است، باعث رخداد تغییرات ناخواسته در میانگیرهای شبکههای روی تراشه میشود که به آن خطای نرم گفته میشود. اشکال همشنوایی نیز که در سیمهای طولانی و موازی رخ میدهد، باعث رخداد تغییرات ناخواسته در بستهها در حین عبور از کانالهای شبکههای روی تراشه میشود. در این مقاله، به خطای نرم و اشکال همشنوایی که از مهمترین چالشهای قابلیت اطمینان در شبکههای روی تراشهاند توجه شده است. این رویکردها در ادامه بحث شدهاند. روش راهگزینی که قرار است در شبکههای برتراشه به کار رود، روش راهگزینی خزشی یا VCT است. در کارکرد عادی این روشها، یعنی در حالتی که خطای قفلشدگی از سر صف[13] وجود ندارد، در هر گره اطلاعات یک فلیت از فلیتهای داده قرار دارد.
با توجه به میزان اهمیت متفاوت فلیتهای سرآیند و فلیتهای داده، رویکردهای بهکاررفته برای افزایش قابلیت اطمینان اطلاعات در هر کدام از این نوع فلیتها متفاوت خواهد بود. در روش پیشنهادی دو رویکرد کلی در نظر گرفته شدهاند؛ رویکرد مقابله با خطای نرم در فلیت سرآیند و رویکرد مقابله با خطای نرم در فلیتهای داده.
در روش پیشنهادی، روش تشخیص خطا در فلیت سرآیند با فرض وجود روش مسیریابی قطعی قابل پیادهسازی است. اگر مسیریابی در شبکهای بهصورت قطعی انجام شود، باید برای رسیدن به مقصد خاصی از گرههای مشخصی عبور کند. به عبارت دیگر، گرههایی که بسته باید برای رسیدن از یک مبدأ به یک مقصد طی کند، گرههایی یکتا هستند. آدرس گره مبدأ و گره مقصد در فلیت سرآیند وجود دارد. جزئیات روش پیشنهادی برای تشخیص خطا در فلیت سرآیند در ادامه آورده شدهاند.
با توجه به شکل (4)، فلیت سرآیند زمانی که وارد گره بعدی میشود، باید هم در میانگیر اصلی وارد شود و هم در میانگیر ذخیرهای فراهمشده برای این منظور ذخیره شود. برای فلیت سرایند از روش برگبرگ سازی استفاده میشود.
روشهای برگبرگ سازی ازجمله روشهاییاند که برای مقابله با خطاهای قطاری[14] یا پیوسته استفاده میشوند. این روشها بهطور معمول، به این منظور در کانالهای ارتباطی استفاده میشوند که ساختار خطاهای پیچیده را به الگوهای خطاهای سادهتری تبدیل کنند؛ زیرا نحوۀ مقابله با الگوهای خطای سادهتر، آسانتر خواهد بود. اگر تعداد خطاهای قطاری رخداده از یک حدی بیشتر باشد، روشهای مرسوم تصحیح خطا دیگر توانایی تحمل این خطاها را نخواهند داشت. اساس روشهای برگبرگ سازی، مرتبسازی دادهها به گونهای است که تعداد خطاهای کمتری پس از عمل معکوس برگبرگ سازی[15] در کنار یکدیگر قرار گیرند. این مرتبسازی، این قابلیت را به طراح میدهد که بتواند این خطاها را با کدگذارهای سادهتر تحمل کند.
در این روش، مرتبسازی بیتها بهصورت تصادفی صورت میپذیرد؛ یعنی ترتیب خواندن بیتها بهصورت تصادفی است و به دنبال آن، ترتیب نوشتن آنها نیز باید به گونهای باشد که درنهایت ترتیب اولیه را در خروجی شاهد باشیم. به عبارت دیگر، عملیات معکوس برگبرگ سازی باید متناسب با عملیات برگبرگ سازی باشد؛ بهطوریکه در انتهای کار ترتیب داده همان ترتیب داده در ابتدای کار باشد. در شکل (5) نمونهای از برگبرگ سازی تصادفی نشان داده شده است.
عملیات مسیریابی برای فلیت سرآیند در هر گره، با توجه به آدرس مبدأ و مقصد درجشده در فلیت سرآیند، دوباره تکرار میشوند. فلسفۀ وجودی فلیت سرآیند، هدایت فلیتهای داده به سمت مقصد درست است. اگر خطایی در یکی از قسمتهای فلیت سرآیند اتفاق افتاده که باعث انحراف از مسیر صحیح شده است، میتوان به وجود خطا پی برد و فلیت سالم قرارگیرنده در گره قبلی را درخواست کرد؛ برای نمونه، فرض میشود پس از مسیریابی در گره، روی فلیت سرآیند، خطایی اتفاق افتاده باشد که به گرۀ بعدی منتقل میشود.
تشخیص و تصحیح خطا در فلیتهای داده در این روش پیشنهادی برای مقابله با خطای چندرخداد واژگونی است. این روش بهصورت ترکیب کد همینگ و برگبرگ شدن انجام میگیرد. این کار در حافظۀ بافرها انجام میشود؛ یعنی قبل از ارسال داده در سیمهای کانال ارتباطی انجام میگیرد. برگبرگ سازی توانایی تشخیص و تصحیح کد همینگ را افزایش میدهد. هنگام ارسال اطلاعات به کانال ارتباطی، از اطلاعات ارسالی دو بار نمونهبرداری میشود. در صورتی که دو نمونه با هم برابر باشند، سیگنال اعتبار
شکل (5): نمونهای از برگبرگ سازی تصادفی و معکوس آن.
اطلاعات فعال میشود. بدین ترتیب خطاهایی کشف میشوند که ممکن است در پیامهای ارسالی به وجود آیند.
برای تشخیص و تصحیح خطا در فلیتهای داده برای مقابله با اشکال همشنوایی، این کار بعد از بافرها و اعمال رویکرد اول و قبل از ورود اطلاعات به کانال ارتباطی صورت میگیرد. در کانالهای ارتباطی با عرض کم، طراحان قادرند واحدهای کدگذار/کدگشا را از لحاظ پیچیدگی بهینه کنند تا کارایی، توان مصرفی و مساحت این واحدها را بهبود بخشند؛ اما این کار برای کانالهایی با عرض بالا پرهزینه و ناکارآمد است؛ ازاینرو محققان بهتازگی به استفاده از سیستمهای عددی مناسب برای کدگذاری عاری از الگوی ممنوعه توجه داشتهاند. یک سیستم عددی باید دو شرط زیر را تأمین کند تا از آن در کدگذاری عاری از الگوی ممنوعه استفاده شود:
سیستم عددی باید کامل باشد. کاملبودن بدین معناست که بهازای هر عدد صحیح ، ، باید حداقل یک نمایش از آن در سیستم عددی وجود داشته باشد که در آن ارزش رقم ام در سیستم عددی است. کاملبودن یک سیستم عددی هنگامی تأیید میشود که برای تمامی ها، و رابطه (1) برقرار باشد.
(1) |
سیستم عددی باید قادر باشد هر عدد صحیح ، را بهصورت یک کلمه کد عاری از الگوی ممنوعه نمایش دهد. سیستم عددی بهکاررفته در روش کدگذاری پیشنهادی BB-CAC نامیده شده و در رابطه (2) و (3) آورده شده است.
(2) |
|
(3) |
|
برای مثال، در یک فضای 4 بیتی سیستم عددی BB-CAC از آرایه 2241 بهعنوان آرایۀ مبناها استفاده میشود و در آن الگوی بیتی ‘0011’ معادل عدد 5 است. جدول (3) نشان میدهد چگونه اعداد 0 تا 9 در یک فضای 4 بیتی بهوسیلۀ سیستم عددی BB-CAC نمایش داده میشوند. جدول کد با سیستم عددی پیشنهادی تولید میشود.
یک الگوریتم نگاشت تکرارشونده به سبب کدکردن داده ورودی به بردار دودویی عاری از الگوی ممنوعه ارائه شده است که پس از تکرار باره کدگذاری آن پایان مییابد. به بیان دیگر، الگوریتم کدگذاری ارائهشده، بردار عاری از الگوی ممنوعه را به گونهای تولید میکند که
باشد. دو خروجی و در تکرار ام الگوریتم محاسبه میشوند که بهترتیب مقدار رقم ام در بردار دودویی عاری از الگوی ممنوعه و باقیماندۀ ورودی هستند که باید به مرحلۀ بعد ارسال شود.
الگوریتم (1) ارائهشده برای نگاشت کلمههای کد عاری از الگوی ممنوعه، واحد کدگذار روش BB-CAC است.
الگوریتم (1): کدکنندۀ روش BB-CAC
1: Algorithm Num-CAC (int u, int K)
2: if mod(u,2) = = 0
3: d(1)=0;
4: else
5: d(1)=1;
6: end; //if
7: r(1) =u-s(1)*d(1);
8: for i=2 to K-1 step +1
9: if r(i-1) >= s(i) + s(i+1)
10: d(i)=1;
11: elseif r(i-1) < s(i)
12: d(i)=0;
13: else
14: d(i)=d(i-1);
15: end; //if
16: r(i) = r(i-1) - d(i)* s(i);
17: end; //for
18: if r(K-1) > 0
19: d(K)=1;
20: else
21: d(K)=0;
22: end; //if
23: return d;
24:end; //final
برای ارزیابی میزان اثر روش فلیت الویتدار، از ابزارهایی در سطح شبکۀ برتراشه و در سطح مدار استفاده شد. برای ارزیابی میزان تأخیر شبکه این روش در یک شبکۀ برتراشه از شبیهساز BookSim2استفاده شده که یک شبیهساز مبتنی بر شبکۀ برتراشه است. نتایج بهازای ترافیک یکنواخت و با نرخهای تزریق مختلف در یک شبکۀ مش 8 8 به دست آمد. همچنین برای محاسبۀ سربارهای تأخیر، مساحت و توان مصرفی، از ابزار Design Compiler بهره برده شد. این روش با روشهای ارائهشده در مراجع [14] و [20] مقایسه شد. با توجه به احتمال رخداد الگوهای خطای بهدستآمده، احتمال وقوع خطاهای دوبیتی بالاتر از سایر الگوها است. اگر فقط یک بیت توازن استفاده شود، این بیت توازن در شناسایی این الگوها که اغلب خطاها نیز از همین نوعاند، ناکارآمد خواهد بود. با توجه به اینکه بیشتر خطاهای چندبیتی بهصورت پیوستهاند، در صورتی که از دو بیت توازن استفاده شود، طوری که یک بیت توازن برای بیتهای زوج و یک بیت دیگر برای بیتهای فرد به کار رود، ادعا میشود تا حدود زیادی میتوان به تشخیص خطای رخداده پی برد.
در شبکههای برتراشه، بهطور معمول، مدت زمان مسیریابی کمتر از یک واحد زمانی در نظر گرفته میشود. به عبارتی، واحد مسیریاب، عملیات مسیریابی را در کمتر از یک واحد زمانی به اتمام میرساند. حالت ادغامشده نشان میدهد مدت زمان لازم برای تشخیص خطا بهوسیلۀ روش تشخیص خطا در فلیت سرآیند و فلیتهای داده و افزونگیهای اطلاعاتی که قسمتی از تشخیص خطا بهصورت همروند با عملیات مسیریابی اصلی انجام میشود، کمتر از یک واحد زمانی طول میکشد. به عبارت دیگر، در مسیریابی اصلی، بررسی بیتهای توازن و دو روش تشخیص خطا در فلیت سرآیند و داده در یک واحد زمانی با همدیگر ادغام میشوند. در این صورت، از لحاظ کارایی سرباری به سیستم تحمیل نمیشود. تأخیر میانگین ارسالی بستهها به مقصد برای این حالت در ازای بارهای متفاوت کاری با استفاده از شبیهساز بوکسیم اندازهگیری شده است؛ نتایج مربوطه در شکل (6) نشان داده شدهاند. نتایج مربوط به نمودار شکل (6) بهازای یک مش 8×8 و در ازای تزریق ترافیک یکنواخت حاصل شدهاند. میزان تأخیر در مسیریابی، میزان تأخیر اختصاص داده شده به کانال ارتباطی مجازی و راهگزین در شبیهساز BookSim2، هرکدام برابر با یک واحد زمانی در نظر گرفته شدهاند. همچنین تعداد فلیتهای هر بسته نیز برابر با پنج فلیت در نظر گرفته شده و اندازۀ هر کانال مجازی نیز برابر با 128 بیت و هماندازۀ پهنای کانال ارتباطی در نظر گرفته شده است. در شکل (7)، روش پیشنهادی در تعداد الگوریتمهای مختلف نشان داده شده و با روشهای کدینگ قبلی مقایسه شده است. روش ما با افزایش تعداد خرابی بیتها بهتر عمل میکند.
روش مقابله با خطای فلیتهای داده با استفاده از زبان سختافزاری Verilog، پیادهسازی و با استفاده ازDesign Compiler میزان بهبود تأخیر، سربار مساحت و سربار توان سختافرازی در عرض سیمهای مختلف محاسبه شده است و نتایج در شکلهای (8) و (9) و 10 نشان داده شدهاند. این نتایج حاکی از کاهش سربار نسبت به کارهای پیشین است.
این سنتز در فناوری 45 نانومتر انجام گرفته است. دلیل این کاهش سرباز، سختافزار سادهتر روش پیشنهادی نسبت به روشهای موجود است.
جدول (3): جدول کد برای سیستم عددی BB-CAC
کلمه داده |
FPFکلمه کد |
کلمه داده |
FPFکلمه کد |
||
2241 |
22441 |
2241 |
22441 |
||
0 |
0000 |
00000 |
7 |
0111 |
10011 |
1 |
0001 |
00001 |
8 |
1110 |
00110 |
2 |
1000 |
10000 |
9 |
1111 |
00111 |
3 |
1001 |
10001 |
10 |
-- |
01110 |
4 |
1100 |
11000 |
11 |
-- |
01111 |
5 |
0011 |
00011 |
12 |
-- |
11110 |
6 |
0110 |
01100 |
13 |
-- |
11111 |
شکل (6): کاراییروش پیشنهادی در مقایسه با کارهای پیشین
شکل (7): میزان تشخیص خطا در روش پیشنهادی
شکل (8): درصد بهبود تأخیر سختافزار روش پیشنهادی نسبت به کارهای پیشین
شکل (9): درصد بهبود مساحت سختافزار روش پیشنهادی نسبت به کارهای پیشین
شکل (10): درصد بهبود توان مصرفی سختافزار روش پیشنهادی نسبت به کارهای پیشین
در این مقاله، روشی با عنوان فلیت الویتدار بهمنظور افزایش قابلیت اطمینان در شبکههای برتراشه ارائه شده است. تمرکز این روش، مقابله با خطاهای نرم در بافرها و اشکال همشنوایی است؛ به این ترتیب که در فلیتهای سرآیند از برگبرگ سازی و کد همینگ و در سیم از روش جدید به نام FPF-BB استفاده میشود. ارزیابیها نشان از بهبود روش نسبت به سایر روشها ازنظر کارایی و سختافزار میدهد. واضح است این روش با وجود بهبود نسبت به سایر روشها، مانند سایر روشهای موجود افزایش قابلیت اطمینان در ادیبات موضوعی، سربار قابل صرفنظر کردن را به حالت پایۀ اولیه شبکه روی تراشه تحمیل میکند؛ اما بررسیهای شبیهسازی نشان از بهترین سربار روش ارائهشده در این مقاله در مقایسه با کارهای مشابه دارد. برای کارهای آتی، با توجه به نرخ خطا در محیطهای مختلف و کاربردهای متفاوت، میتوان با استفاده از روشهای قابل پیکربندی با توجه به شرایط، در نرخ خطاهای پایین از روشهای ساده و در نرخ خطاهای بالا از روشهای کدینگ پیچیده استفاده کرد و بین آن روشها بنا به شرایطی باز پیکربندی انجام داد.
(این پژوهش با حمایت مالی دانشگاه تربیت دبیر شهید رجایی انجام شده است).
[1] تاریخ ارسال مقاله: 25/01/1399
تاریخ پذیرش مقاله: 05/08/1399
نام نویسندۀ مسئول: زهرا شیرمحمدی
نشانی نویسندۀ مسئول: ایران – تهران – دانشگاه شهید رجایی – دانشکده کامپیوتر
[1] Soft Errors
[2] Scalable
[3] Data center
[4] Scientific computing
[5] Recognition/mining/synthesis
[6] Desktop applications
[7] The International Technology Roadmap for Semiconductors
[8] Victim
[9] Glitch
[10] Codeword
[11] Dataword
[12] Codebook
[13] Head of Line Blocking
[14] Burst
[15] Deinterleaving