Low-Power Approximate Multiplier Design Based on Incremental and Decremental Approximate Adders for Efficient Implementation of Artificial Neural Networks

Document Type : Research Article

Authors

School of Electrical and Computer Engineering, University of Tehran, Tehran, Iran

Abstract

In this paper, through simplification and approximation of the truth table of exact adders with two, three, and four inputs, two methods for approximate implementation of each adder are proposed. In one structure, the average error of the adder is positive, while in the other, it is negative. These adders are respectively named incremental and decremental structures, as they tend to produce outputs that are, on average, larger or smaller than those of an exact adder. These adders are cleverly integrated into the structure of an approximate multiplier in such a way that they cancel out each other’s errors, thereby minimizing the accuracy loss in the final multiplication result. The findings show that the proposed multiplier can improve the delay and power consumption of the multiplication operation by up to 51% and 83%, respectively, compared to exact multipliers. The performance of the proposed multiplier is also examined in common applications such as image processing and artificial neural networks, and the results indicate its satisfactory effectiveness in these applications. For instance, when the proposed multiplier is used in the implementation of the trained VGG-11 model for the CIFAR-10 dataset, the energy consumption of multiplication operations can be reduced by 63%, while the network’s accuracy experiences only a slight 0.77% decrease compared to the exact case.

Keywords

Main Subjects


1- مقدمه[1]

امروزه، بسیاری از مردم از ادوات قابل حمل مانند گوشی‌های هوشمند و رایانه‌های شخصی استفاده می‌کنند که دارای باتری‌هایی با شارژ محدود هستند. به‌ منظور مدیریت شارژ محدود باتری این دستگاه‌ها، نیاز است راهکارهایی برای کاهش توان مصرفی ارائه شوند که از جملۀ این راهکارها می‌توان به تنظیم پویای سطح ولتاژ و فرکانس[1] [1]، قطع منبع ولتاژ [2] و قطع سیگنال ساعت[2] [3] اشاره کرد.

برخی از برنامه‌های پرکاربرد که بر روی دستگاه‌های قابل حمل اجرا می‌شوند، تحمل‌پذیر خطا هستند و لزومی برای انجام محاسبات دقیق در آنها وجود ندارد. از جملۀ این کاربرد‌ها می‌توان به پردازش تصاویر و شبکه‌های عصبی مصنوعی اشاره کرد که برای محاسبۀ خروجی آنها، نیاز به انجام تعداد زیادی از عملیات محاسباتی پایه مانند جمع و ضرب وجود دارد. برای مثال، اگر محاسبات انجام‌شده بر روی پیکسل‌های یک تصویر به‌ صورت دقیق انجام نشوند و مقدار خروجی هر پیکسل تفاوتی اندک با مقدار دقیق داشته باشد، چشم انسان توانایی تشخیص این اختلاف را ندارد؛ بنابراین، کیفیت تصویر تولیدی افت پیدا نمی‌کند. از این ‌رو، در کاربردهای تحمل‌پذیر خطا می‌توان از روش محاسبات تقریبی به ‌منظور کاهش انرژی مصرفی و افزایش سرعت محاسبات استفاده کرد؛ بدون آنکه تأثیر چندانی روی کیفیت خروجی داشته باشد  [4].

همان‌طور که پیش‌تر اشاره شد، عملیات ضرب و جمع جزو عملیات پرکاربرد در پردازش تصاویر و شبکه‌های عصبی مصنوعی هستند که از بین آنها، عمل ضرب انرژی مصرفی و تأخیر بیشتری دارد. به همین دلیل، تا کنون پژوهش‌هایی متنوع در حوزۀ طراحی ضرب‌کننده‌های تقریبی انجام شده‌اند که در ادامه، برخی از روش‌های متداول طراحی این حوزه بررسی خواهند شد.

به‌ طور کلی، مراحل صورت‌گرفته در عمل ضرب را می‌توان به سه بخش تقسیم کرد:

1)‌ تولید حاصل‌ضرب‌های جزئی[3]: در این مرحله، یک یا چند بیت از عملوند[4] دوم در هر یک از بیت‌های عملوند اول ضرب می‌شود که به آن، حاصل‌ضرب جزئی گفته می‌شود.

2) کاهش حاصل‌ضرب‌های جزئی[5]: در این مرحله، حاصل‌ضرب‌های جزئی تولیدشده با هم جمع می‌شوند و این عملیات آن‌قدر ادامه پیدا می‌کند تا در نهایت دو سطر از اعداد باقی بماند.

3) انباشت حاصل‌ضرب‌های جزئی[6]: در این مرحله، حاصل‌ جمع دو سطر باقی‌مانده توسط یک جمع‌کننده سریع محاسبه می‌شود تا خروجی نهایی ضرب‌کننده تولید شود.

با اعمال تقریب در هر یک از سه مرحلۀ بالا می‌توان یک ضرب‌کنندۀ تقریبی طراحی کرد. برای مثال، در [5]، یک ضرب‌کنندۀ بوث[7] تقریبی ارائه شده است که در آن، مدار تولیدکنندۀ حاصل‌ضرب‌های جزئی به ‌صورت تقریبی طراحی شده است. استفاده از جمع‌کننده‌های تقریبی در مرحلۀ دوم نیز می‌تواند تأثیری به‌سزا در کاهش تأخیر و توان مصرفی ضرب‌کننده داشته باشد. یکی از راهکارهای ارائه‌شده طراحی واحدهای جمع‌کنندۀ پایه مانند تمام‌جمع‌کننده[8] و نیم‌‌جمع‌کننده[9] با تعداد ترانزیستورهای کمتر است که می‌تواند منجر به کاهش مساحت، توان مصرفی و تأخیر آنها شود [6]؛ این در حالی است که خروجی تولید‌شده تقریبی خواهد بود. استفاده از فشرده‌سازهای[10] 4:2 تقریبی نیز یک روش متداول برای اجرای ضرب‌کننده‌های تقریبی است که در عمدۀ این پژوهش‌ها، با اعمال تقریب به جدول درستی[11] فشرده‌ساز دقیق، ساختار تقریبی با پیچیدگی کمتر استخراج می‌شود [7]، [8]، [9]، [10].

برای جلوگیری از افت دقت شدید در بیشتر این ضرب‌کننده‌ها، از واحدهای جمع‌کنندۀ تقریبی برای محاسبۀ حاصل جمع حاصل‌ضرب‌های جزئی ستون‌های کم‌ارزش‌تر استفاده می‌شود و حاصل جمع ستون‌های پرارزش‌تر با استفاده از جمع‌کننده‌های دقیق محاسبه می‌شود [11]. برای جبران افت دقت ناشی از جمع‌کننده‌های تقریبی نیز می‌توان از واحدهای جبرانگر خطا[12] استفاده کرد [12].

یکی دیگر از راهکارهای متداول برای کاهش توان مصرفی ضرب‌کننده‌ها بریدن[13] بیت‌های کم‌ارزش ورودی‌ها و انجام عملیات محاسباتی روی بیت‌های باقی‌مانده است. در این روش، هر ورودی به چندین بخش تقسیم می‌شود که عملیات محاسباتی روی برخی از این بخش‌ها انجام می‌شود. بخش‌بندی ورودی‌ها را می‌توان به‌ صورت ایستا[14] و یا پویا[15] انجام داد. در روش ایستا، ارزش مکانی هر بخش از ورودی از قبل مشخص است [13]، [14]، [15]؛ اما در روش پویا، بخش‌بندی بر اساس مکان قرارگیری بیت یک پرارزش ورودی انجام می‌شود و بسته به مقدار ورودی، می‌تواند ارزش مکانی مختلفی داشته باشد [16]، [17]. پس از انتخاب بخش مدنظر، عملیات محاسباتی مانند ضرب، جمع و انتقال[16] روی آنها انجام می‌شود تا خروجی نهایی ضرب‌کننده تعیین شود. با توجه به اینکه در ساختارهای ایستا، ارزش مکانی هر بخش از قبل مشخص است، اجرای سخت‌افزاری واحد انتقال مورد نیاز آن ساده‌تر از ساختارهای پویاست؛ اما با استفاده از ساختارهای پویا عمدتاً می‌توان به دقت بیشتری دست یافت. به‌ منظور برقراری مصالحه بین دقت قابل دست‌یابی و سادگی سخت‌افزار مورد نیاز، می‌توان از ترکیب ساختارهای ایستا و پویا استفاده کرد [18]، [19].

در این مقاله، دو روش برای اجرای واحدهای جمع‌کنندۀ تقریبی با دو، سه، و چهار ورودی ارائه می‌شوند که این واحدها فقط یک خروجی دارند. در یکی از این روش‌ها، به ‌طور میانگین، خروجی‌های تولیدشده کوچک‌تر از مقدار دقیق و در روش دیگر، بزرگ‌تر هستند. در ادامه، این جمع‌کننده‌ها به گونه‌ای در ساختار یک ضرب‌کننده قرار می‌گیرند که خطاهای یکدیگر را تا حدی خوب جبران کنند و به یک ضرب‌کننده با دقت مناسب و مشخصات سخت‌افزاری مطلوب منجر شوند.

در بخش دوم مقاله، روش‌های پیشنهادی برای اجرای جمع‌کننده‌های تقریبی و چگونگی قرارگیری مناسب آنها در ساختار یک ضرب‌کنندۀ هشت‌بیتی توضیح داده می‌شود. در بخش سوم، تحلیلی از خطای ضرب‌کنندۀ پیشنهادی و همچنین مشخصات سخت‌افزاری آن ارائه و با برخی از ضرب‌کننده‌های تقریبی پیشین مقایسه می‌شود. در بخش چهارم، عملکرد ضرب‌کننده‌های تقریبی پیشنهادی در کاربردهای پردازش تصویر و شبکه‌های عصبی مصنوعی بررسی و با کارهای پیشین مقایسه می‌شود. در بخش پنجم، نتیجه‌گیری مقاله ارائه می‌شود.

2- ساختار پیشنهادی

در این بخش، ابتدا دو روش برای اجرای جمع‌کننده‌های تقریبی پیشنهاد می‌شوند که در آنها فقط از دروازۀ[17] OR استفاده می‌شود. سپس، احتمال بروز خطا و میانگین خطای هر یک از این جمع‌کننده‌ها برای تولید حاصل جمع حاصل‌ضرب‌های جزئی محاسبه می‌شود. در ادامه، چگونگی قرارگیری این جمع‌کننده‌ها در ساختار یک ضرب‌کنندۀ هشت‌بیتی بررسی می‌شود تا در نهایت، بتوان به یک ضرب‌کننده با دقت قابل قبول و مشخصات سخت‌افزاری مناسب دست یافت.

2-1- جمع‌کننده‌های تقریبی پیشنهادی

همان‌طور که در بخش 1 بیان شد، جمع‌کننده‌ها واحدهای اصلی استفاده‌شده برای اجرای ضرب‌کننده‌ها هستند. به همین دلیل، طراحی کم‌توان و پرسرعت این واحدها می‌تواند تأثیری به‌سزا در بهبود مشخصات سخت‌افزاری ضرب‌کننده داشته باشد. از این رو، در این بخش، دو روش برای اجرای کارای جمع‌کننده‌های تقریبی با دو، سه، و چهار ورودی ارائه می‌شود و میزان خطای هر یک از آنها برای تولید حاصل جمع حاصل‌ضرب‌های جزئی محاسبه می‌شود. در هر دو ساختار جمع‌کننده، فقط از دروازۀ OR برای تولید خروجی استفاده می‌شود. در ساختار اول، فقط بیت  (بیت کم ارزش خروجی) و در ساختار دوم، فقط بیت  (بیت پرارزش خروجی) تولید می‎شود و خروجی‌های دیگر در این ساختارها صفر در نظر گرفته می‌شوند و نیازی به تولید آ‌ها نخواهد بود.

با فرض آنکه احتمال صفر یا یک بودن هر بیت از ورودی‌های ضرب‌کننده برابر 5/0 باشد و دو ورودی نسبت به هم مستقل باشند، احتمال یک‌ شدن هر بیت از حاصل‌ضرب‌های جزئی برابر 25/0 خواهد بود؛ زیرا هر بیت از حاصل‌ضرب جزئی با انجام عمل AND روی بیت‌های متناظر در دو ورودی ضرب‌کننده تولید می‌شود و خروجی یک دروازه AND در صورتی یک است که هر دو ورودی آن یک باشند. با فرض کاملاً تصادفی و مستقل بودن ورودی‌ها، این احتمال برابر (5/0×5/0=)25/0 خواهد بود. به همین ترتیب، احتمال صفر شدن حاصل‌ضرب جزئی برابر 75/0 می‌شود. گفتنی است، این حاصل‌ضرب‌های جزئی به‌ عنوان ورودی به جمع‌کننده‌ها اعمال می‌شوند.

نیم‌جمع‌کنندۀ تقریبی: یک نیم‌جمع‌کننده دارای دو ورودی و دو خروجی تک‌بیتی است. جدول درستی و خطای نیم‌جمع‌کننده‌های تقریبی پیشنهادی اول (HA_APX1) و دوم (HA_APX2) در جدول (1) ارائه شده است. در این جدول،  و  ورودی‌ها و  و  خروجی‌های جمع‌کننده هستند و احتمال وقوع هر یک از سطرهای این جدول در ستون  نمایش داده شده است. همان‌طور که پیش‌تر اشاره شد، در ساختار اول، فقط خروجی  با OR کردن ورودی‌ها تولید می‌شود و مقدار خروجی  صفر در نظر گرفته می‌شود. در ساختار دوم، فقط خروجی  با OR کردن ورودی‌ها تولید می‌شود و مقدار خروجی  صفر در نظر گرفته می‌شود.

بر اساس جدول (1)، خروجی این جمع‌کننده‌ها در بیشتر حالات صحیح تولید می‌شود و فقط در یک حالت، خروجی با مقدار مورد انتظار تفاوت دارد. بنابراین، میانگین خطای نیم‌جمع‌کنندۀ اول برای تولید حاصل‌جمع حاصل‌ضرب‌های جزئی بر اساس رابطۀ (1) قابل محاسبه است:

از آنجا که میانگین خطای محاسبه‌شده منفی است، این جمع‌کننده را می‌توان یک جمع‌کنندۀ کاهشی در نظر گرفت. به‌ عبارت دیگر، خروجی این جمع‌کننده به‌ طور میانگین کوچک‌تر از مقدار دقیق مورد انتظار است.

میانگین خطای نیم‌جمع‌کنندۀ دوم با استفاده از رابطۀ (2) قابل محاسبه است:

از آنجا که میانگین خطای این جمع‌کننده یک مقدار مثبت است، این جمع‌کننده را می‌توان یک جمع‌کنندۀ افزایشی در نظر گرفت که به ‌طور میانگین، منجر به تولید خروجی بزرگ‌تر از مقدار واقعی خواهد شد.

 

جدول (1): جدول درستی نیم‌جمع‌کننده‌های تقریبی پیشنهادی به همراه خطای آنها

 

HA_APX2

HA_APX1

دقیق

ورودی

 

 

 

 

 

(0,0,0)

(0,0,0)

(0,0)

(0,0)

 

(1,1,0+)

(0,0,1)

(0,1)

(0,1)

 

(1,1,0+)

(0,0,1)

(0,1)

(1,0)

 

(0,1,0)

(1,0,1-)

(1,0)

(1,1)

 

تمام‌جمع‌کنندۀ تقریبی: یک تمام‌جمع‌کننده دارای سه ورودی و دو خروجی تک‌بیتی است. جدول درستی و خطای تمام‌جمع‌کننده‌های تقریبی پیشنهادی در جدول (2) ارائه شده است. در ساختار اول، فقط خروجی  و در ساختار دوم، فقط خروجی  با OR کردن ورودی‌ها تولید می‌شود. میانگین خطای هر کدام از این تمام‌جمع‌کننده‌ها در روابط (3) و (4) محاسبه شده است. این روابط نشان می‌دهند میانگین خطای جمع‌کنندۀ اول (دوم) منفی (مثبت) است و بنابراین، این جمع‌کننده را می‌توان به ‌عنوان یک جمع‌کنندۀ کاهشی (افزایشی) در نظر گرفت:

فشرده‌ساز 4:2 تقریبی: یک فشرده‌ساز 4:2 دقیق، پنج ورودی و سه خروجی تک‌بیتی دارد. هر پنج ورودی تک‌بیتی و یکی از خروجی‌های تولیدشده (که در این مقاله با  نمایش داده می‌شود) دارای ارزش وزنی یکسان هستند؛ در حالی‌ که دو خروجی دیگر (بیت‌های نقلی که در این مقاله، با  و  نمایش داده می‌شوند)، ارزش وزنی دوبرابر دارند. یکی از ورودی‌های فشرده‌ساز، بیت نقلی ( ) ستون قبل است و بیت نقلی تولیدی توسط این فشرده‌ساز نیز به ستون بعد اعمال می‌شود. به‌ عبارت دیگر، هر یک از فشرده‌سازها، یک بیت نقلی ورودی و خروجی دارند که بین فشرده‌سازهای ستون‌های مختلف منتقل می‌شود. به همین دلیل است که این واحدها به عنوان فشرده‌سازهای 4:2 نام‌گذاری شده‌اند.

 

جدول (2): جدول درستی تمام‌جمع‌کننده‌های تقریبی پیشنهادی به همراه خطای آنها

 

FA_APX2

FA_APX1

دقیق

ورودی

 

 

 

 

 

(0,0,0)

(0,0,0)

(0,0)

(0,0,0)

 

(1,1,0+)

(0,0,1)

(0,1)

(0,0,1)

 

(1,1,0+)

(0,0,1)

(0,1)

(0,1,0)

 

(0,1,0)

(1,0,1-)

(1,0)

(0,1,1)

 

(1,1,0+)

(0,0,1)

(0,1)

(1,0,0)

 

(0,1,0)

(1,0,1-)

(1,0)

(1,0,1)

 

(0,1,0)

(1,0,1-)

(1,0)

(1,1,0)

 

(1,1,0-)

(2,0,1-)

(1,1)

(1,1,1)

 

در فشرده‌سازهای 4:2 تقریبی، از تولید و انتشار بیت‌های نقلی ( ) بین فشرده‌سازها صرف‌نظر می‌شود. به همین دلیل، یک فشرده‌ساز 4:2 تقریبی دارای چهار ورودی و دو خروجی تک‌بیتی است. جدول درستی و خطای فشرده‌سازهای 4:2 تقریبی پیشنهادی در جدول (3) ارائه شده است که در ساختارهای اول و دوم، به ترتیب، فقط خروجی‌های  و  با OR کردن ورودی‌ها تولید شده‌اند. اگر از فشرده‌سازها برای تولید حاصل جمع حاصل‌ضرب‌های جزئی استفاده شود، احتمال آنکه از میان چهار ورودی فشرده‌ساز،  ورودی مقدار صفر داشته باشند و بقیۀ ورودی‌ها مقدار یک داشته باشند، برابر  است. این امر نشان می‌دهد احتمال داشتن تعداد زیادی ورودی یک در یک فشرده‌ساز 4:2 کم است و بنابراین، انتظار می‌رود تقریب‌های پیشنهادی منجر به خطایی بزرگ در خروجی فشرده‌ساز نشوند؛ این در حالی است که تقریب پیشنهادی می‌تواند مشخصات سخت‌افزاری را نسبت به حالت دقیق به طرزی چشمگیر بهبود بخشد که در بخش بعد بررسی خواهد شد.

میانگین خطای هر یک از فشرده‌سازهای یادشده در روابط (5) و (6) محاسبه شده است:

همانند سایر ساختارهای جمع‌کنندۀ پیشنهادی قبل، فشرده‌ساز ساختار اول دارای میانگین خطای منفی و ساختار دوم دارای میانگین خطای مثبت است. بنابراین، ساختار اول را می‌توان یک جمع‌کنندۀ کاهشی و ساختار دوم را یک جمع‌کنندۀ ‌افزایشی در نظر گرفت.

جدول (3): جدول درستی فشرده‌سازهای 4:2 تقریبی پیشنهادی به همراه خطای آنها

 

Com_APX2

Com_APX1

دقیق

ورودی

 

 

 

 

 

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0,0)

 

(1,1,0+)

(0,0,1)

(0,0,1)

(0,0,0,1)

 

(1,1,0+)

(0,0,1)

(0,0,1)

(0,0,1,0)

 

(0,1,0)

(1,0,1-)

(0,1,0)

(0,0,1,1)

 

(1,1,0+)

(0,0,1)

(0,0,1)

(0,1,0,0)

 

(0,1,0)

(1,0,1-)

(0,1,0)

(0,1,0,1)

 

(0,1,0)

(1,0,1-)

(1,0,0)

(0,1,1,0)

 

(1,1,0-)

(2,0,1-)

(1,0,1)

(0,1,1,1)

 

(1,1,0+)

(0,0,1)

(0,0,1)

(1,0,0,0)

 

(0,1,0)

(1,0,1-)

(0,1,0)

(1,0,0,1)

 

(0,1,0)

(1,0,1-)

(0,1,0)

(1,0,1,0)

 

(1,1,0-)

(2,0,1-)

(1,0,1)

(1,0,1,1)

 

(0,1,0)

(1,0,1-)

(1,0,0)

(1,1,0,0)

 

(1,1,0-)

(2,0,1-)

(1,0,1)

(1,1,0,1)

 

(1,1,0-)

(2,0,1-)

(1,0,1)

(1,1,1,0)

 

(2,1,0-)

(3,0,1-)

(1,1,0)

(1,1,1,1)

 

2-2- اجرای سخت‌افزاری واحدهای جمع‌کننده

به ‌منظور دست‌یابی به یک درک بهتر از میزان ساده‌سازی صورت‌گرفته در اجرای واحدهای جمع‌کننده، اجرای دقیق هر ساختار در کنار اجرا‌های تقریبی پیشنهادی در شکل‌های (1) تا (3) نمایش داده شده است. همان‌طور که در شکل (1) مشاهده می‌شود، در ساختار یک نیم‌جمع‌کنندۀ دقیق، به یک دروازۀ XOR و یک دروازۀ AND دوورودی با 12 و 6 ترانزیستور نیاز خواهد بود که در ساختار تقریبی، به یک دروازۀ OR با 6 ترانزیستور ساده‌سازی می‌شود.

شکل (1): اجرای نیم‌جمع‌کننده به ‌صورت (الف) دقیق، (ب) تقریبی نوع اول (HA_APX1)، (پ) تقریبی نوع دوم (HA_APX2)

در یک تمام‌جمع‌کنندۀ دقیق، به دو دروازۀ XOR، دو دروازۀ AND و یک دروازۀ OR دوورودی نیاز خواهد بود که در ساختار تقریبی، با یک دروازۀ OR سه‌ورودی اجرا می‌شود (به شکل (2) مراجعه شود).

شکل (2): اجرای تمام‌جمع‌کننده به ‌صورت (لف) دقیق، (ب)تقریبی نوع اول (FA_APX1)، (پ) تقریبی نوع دوم (FA_APX2)

از آنجا که یک فشرده‌ساز 4:2 دقیق دارای پنج ورودی تک‌بیتی است، برای تولید خروجی‌های آن به دو تمام‌جمع‌کننده نیاز است که همانند بخش (الف) شکل (3) به یکدیگر متصل شده باشند. در این ساختار،  و  نشان‌دهندۀ بیت‌های نقلی ورودی و خروجی هستند که بین فشرده‌سازهای ستون‌های مختلف منتشر می‌شوند. یک فشرده‌ساز 4:2 دقیق متشکل از چهار دروازۀ XOR، چهار دروازۀ AND و دو دروازۀ OR دوورودی است. در ساختار تقریبی پیشنهادی، از بیت‌های نقلی ورودی و خروجی صرف‌نظر و خروجی فشرده‌ساز با اعمال تابع OR به چهار ورودی تولید می‌شود. برای انجام عملیات OR روی چهار ورودی، می‌توان از سه دروازۀ OR دوورودی استفاده کرد (همانند بخش‌های (ب) و (پ) شکل (3). به منظور کاهش بیشتر تعداد ترانزیستورهای به‌کاررفته در ساختار تقریبی، می‌توان از دو دروازۀ NOR و یک دروازۀ NAND دوورودی استفاده کرد که عملکردی مشابه یک دروازۀ OR چهارورودی خواهند داشت. مقایسۀ ساختار پیشنهادی نسبت به اجرای یک فشرده‌ساز 4:2 دقیق، نشان‌دهندۀ میزان چشمگیر ساده‌سازی صورت‌گرفته در اجرای سخت‌افزاری آن است که تعداد ترانزیستورهای به‌کاررفته را از 84 به 12 کاهش می‌دهد.

شکل (3): اجرای فشرده‌ساز 4:2 به ‌صورت (لف) دقیق، (ب)تقریبی نوع اول (Com_APX1)، (پ) تقریبی نوع دوم (Com_APX2)

2-3- اجرای ضرب‌کنندۀ تقریبی

در این بخش، چگونگی اجرای یک ضرب‌کنندۀ هشت‌بیتی تقریبی با استفاده از جمع‌کننده‌های تقریبی پیشنهادشده در بخش قبل ارائه می‌شود. در اجرای یک ضرب‌کننده می‌توان فقط از یک نوع جمع‌کنندۀ تقریبی یا ترکیبی از آنها استفاده کرد. همچنین، تعداد ستون‌هایی از حاصل‌ضرب‌های جزئی که به ‌صورت تقریبی جمع می‌شوند، می‌تواند تأثیری به‌سزا روی دقت ضرب‌کننده داشته باشد. بدیهی است، با افزایش تعداد ستون‌های تقریبی، انتظار می‌رود دقت ضرب‌کننده کاهش یابد، اما مشخصات سخت‌افزاری آن بهبود یابد. بنابراین، برای طراحی ضرب‌کنندۀ تقریبی نیاز است یک مصالحه بین دقت ضرب‌کننده و مشخصات سخت‌افزاری آن در نظر گرفته شود و بر اساس کاربرد مدنظر، ساختار ضرب‌کننده با دقت مطلوب و مشخصات سخت‌افزاری بهتر انتخاب شود.

نمودار نقطه‌ای[18] یک ضرب‌کنندۀ هشت‌بیتی پیشنهادی با هشت ستون تقریبی در شکل (4) نمایش داده شده است. در این شکل، مستطیل‌های آبی‌رنگ نشان‌دهندۀ جمع‌کننده‌های دقیق و مستطیل‌های خط‌چین بنفش و قرمز رنگ نشان‌دهندۀ جمع‌کننده‌های تقریبی نوع اول و دوم هستند. دایره‌های مشکی‌رنگ نشان‌دهندۀ حاصل‌ضرب‌های جزئی، ‌دایره‌های آبی نشان‌دهندۀ خروجی‌های جمع‌کننده‌های دقیق و دایره‌های بنفش و قرمز رنگ نشان‌دهندۀ خروجی‌های جمع‌کننده‌های تقریبی نوع اول و دوم هستند. گفتنی است، جمع‌کننده‌های بنفش‌رنگ فقط خروجی  را تولید می‌کنند که با یک دایرۀ بنفش‌رنگ در همان ستون نمایش داده شده است و جمع‌کننده‌های قرمزرنگ فقط خروجی  را تولید می‌کنند که با دایرۀ قرمزرنگ در ستون بعدی نمایش داده شده است. گفتنی است، خروجی‌های هر مرحله در مرحلۀ بعد توسط جمع‌کننده‌های تقریبی یا دقیق جمع ‌می‌شوند.

در این ساختار، حاصل جمع حاصل‌ضرب‌های جزئی هشت ستون کم‌ارزش با استفاده از جمع‌کننده‌های تقریبی و سایر ستون‌ها، با استفاده از جمع‌کننده‌های دقیق محاسبه شده‌ است. در مرحلۀ اول کاهش حاصل‌ضرب‌های جزئی، فقط از جمع‌کننده‌های افزایشی نوع دوم استفاده شده است که بر اساس روابط (2)، (4)، و (6)، دارای میانگین خطای مثبت هستند و به ‌طور میانگین، خروجی‌های بزرگ‌تر از مقدار دقیق تولید می‌کنند. به ‌منظور کاهش خطای ضرب‌کننده، در مرحلۀ دوم، از جمع‌کننده‌های کاهشی نوع اول استفاده شده است که میانگین خطای منفی ایجاد می‌کنند و تا حدی می‌توانند خطای ناشی از جمع‌کننده‌های افزایشی نوع دوم را جبران کنند. همین ایده را می‌توان برای اجرای یک ضرب‌کننده با تعداد ستون‌های تقریبی متفاوت نیز استفاده کرد. برای مثال، در مرحلۀ اول یک ضرب‌کنندۀ هشت‌بیتی با 11 ستون تقریبی (ضرب‌کنندۀ M1_11) نیز فقط از جمع‌کننده‌های تقریبی نوع دوم و در مرحلۀ دوم، از جمع‌کننده‌های تقریبی نوع اول استفاده می‌شود. حاصل جمع سایر ستون‌ها با استفاده از جمع‌کننده‌های دقیق محاسبه می‌شود.

شکل (4): نمودار نقطه‌ای ضرب‌کنندۀ هشت‌بیتی تقریبی نوع اول با هشت ستون تقریبی (M1_8)

از آنجا که در ساختار ضرب‌کنندۀ نوع اول، عمدتاً از جمع‌کننده‌های افزایشی استفاده شده است، انتظار می‌رود خروجی تولیدشده توسط این ضرب‌کننده از مقدار دقیق بزرگ‌تر باشد. به‌ منظور کاهش میزان خطا، ساختار دوم را پیشنهاد می‌کنیم که در مرحلۀ اول آن، یکی از جمع‌کننده‌های هر ستون به ‌صورت افزایشی و دیگری به‌ صورت کاهشی اجرا شده باشد. همچنین، با توجه به آنکه اندازۀ میانگین خطای جمع‌کننده‌های افزایشی بزرگ‌تر‌ از جمع‌کننده‌های کاهشی است، در مرحلۀ دوم نیز از جمع‌کننده‌های کاهشی استفاده می‌شود که بتوانند خطای بزرگ‌تر ناشی از جمع‌کننده‌های افزایشی را بهتر جبران کنند. برای مثال، نمودار نقطه‌ای ضرب‌کنندۀ هشت‌بیتی تقریبی نوع دوم با هشت ستون تقریبی (ضرب‌کنندۀ M2_8) در شکل (5) رسم شده است.

شکل (5): نمودار نقطه‌ای ضرب‌کنندۀ هشت‌بیتی تقریبی نوع دوم با هشت ستون تقریبی (M2_8)

3- نتایج شبیه‌سازی و بحث

در این بخش، نتایج شبیه‌سازی دو ساختار ضرب‌کنندۀ تقریبی پیشنهادی از نظر دقت و مشخصات سخت‌افزاری ارائه و با برخی از ضرب‌کننده‌های تقریبی پیشین مقایسه می‌شود.

3-1- تحلیل دقت

به ‌منظور بررسی دقت ضرب‌کنندۀ تقریبی پیشنهادی، در ابتدا برخی از پارامترهای متداول خطا و نحوۀ محاسبۀ آنها توضیح داده می‌شوند. در تمامی روابط،  و  نشان‌دهندۀ خروجی‌های دقیق و تقریبی ضرب‌کننده هستند و  نشان‌دهندۀ تعداد کلیۀ حالات اعمال ورودی‌ها به ضرب‌کنندۀ -بیتی است.

  • خطا[19]: نشان‌دهندۀ اختلاف خروجی دقیق و تقریبی است که از طریق رابطۀ (7) محاسبه می‌شود:

اندازۀ (فاصلۀ) خطا[20]: نشان‌دهندۀ قدرمطلق اختلاف خروجی دقیق و تقریبی است که از طریق رابطۀ (8) محاسبه می‌شود:

میانگین خطا[21]: نشان‌دهندۀ میانگین خطای تولید شده به‌ازای اعمال کلیۀ حالات ورودی است که از طریق رابطۀ (9) محاسبه می‌شود:

میانگین اندازۀ خطا[22]: نشان‌دهندۀ میانگین اندازۀ خطای تولیدشده به‌ازای اعمال کلیۀ حالات ورودی است که از طریق رابطۀ (10) محاسبه می‌شود:

میانگین اندازۀ خطای نرمالیزه‌شده[23]: نشان‌دهندۀ نسبت میانگین اندازۀ خطای ضرب‌کننده به بزرگ‌ترین خروجی ممکن تولیدشده توسط ضرب‌کننده است که از طریق رابطۀ (11) محاسبه می‌شود:

اندازۀ خطای نسبی[24]: نشان‌دهندۀ اندازۀ خطای تولیدشده نسبت به خروجی دقیق است که از طریق رابطۀ (12) محاسبه می‌شود:

میانگین اندازۀ خطای نسبی[25]: نشان‌دهندۀ میانگین اندازۀ خطای نسبی تولیدشده به‌ازای اعمال کلیۀ حالات ورودی است که از طریق رابطۀ (13) محاسبه می‌شود:

میانگین مربعات خطا[26]: نشان‌دهندۀ میانگین مجذور خطای تولیدشده به‌ازای اعمال کلیۀ حالات ورودی است که از طریق رابطۀ (14) محاسبه می‌شود:

تعداد بیت مؤثر[27]: تخمینی از تعداد بیت پرارزش خروجی می‌دهد که به‌ صورت دقیق توسط ضرب‌کننده تولید شده‌اند و از طریق رابطۀ (15) محاسبه می‌شود:

برای محاسبۀ پارامترهای خطای هر ضرب‌کننده، ابتدا کد وریلاگ[28] مربوط به توصیف عملکرد آن نوشته شد. سپس، تمامی حالات ممکن ورودی‌های هشت‌بیتی به ضرب‌کننده اعمال و خروجی‌ها توسط نرم‌افزار ModelSim استخراج و به صورت یک جدول 256×256 ذخیره شدند که در ادامۀ شبیه‌سازی‌های مقاله نیز از این جدول استفاده شده است. با تعریف پارامترهای خطا در نرم‌افزار MATLAB و مقایسۀ خروجی‌های ضرب‌کنندۀ پیشنهادی با مقادیر دقیق، مقادیر خطا اندازه‌گیری شدند که نتایج آن در جدول (4) ارائه شده است. همان‌طور که از نتایج استنباط می‌شود، میانگین خطای ( ) ضرب‌کننده‌های تقریبی نوع اول مقداری مثبت و با اندازه‌ای نسبتاً بزرگ است که نشان می‌دهد خروجی‌های این ضرب‌کننده‌ها عموماً بزرگ‌تر از مقادیر دقیق هستند که علت آن، استفاده از جمع‌کننده‌های افزایشی در مرحلۀ اول ساختار ضرب‌کننده است. اما در ساختار دوم که از جمع‌کننده‌های کاهشی به همراه جمع‌کننده‌های افزایشی در مرحلۀ اول استفاده شده است، میانگین خطا به‌شدت کاهش یافته و منجر به میانگین خطای نسبی کوچک‌تر ( ) نیز شده است که مطلوب است. نتایج نشان می‌دهد با در نظر گرفتن یک مقدار مشخص برای تعداد ستون‌های تقریبی، با استفاده از ساختار تقریبی نوع دوم می‌توان به دقت بیشتر (خطای کوچک‌تر) نسبت به ساختار تقریبی نوع اول دست یافت. به همین دلیل، در ادامۀ این مقاله، از ساختار دوم برای مقایسه با کارهای پیشین و همچنین بررسی عملکرد ساختار پیشنهادی در کاربردهای تحمل‌پذیر خطا استفاده خواهد شد.

جدول (4): پارامترهای خطای ضرب‌کننده‌های تقریبی پیشنهادی

ساختار

 

 

 

 

 

 

 

M1_8

2/165

3/185

29

8/5

23/8

M2_8

2/62-

7/140

22

7/3

39/8

M1_9

6/185

4/295

45

9/8

52/7

M2_9

4/113-

9/273

42

0/6

42/7

M1_10

3/399

0/565

87

1/14

59/6

M2_10

3/203-

2/514

79

4/9

52/6

M1_11

0/857

0/1080

166

5/21

66/5

M2_11

3/110-

0/854

131

9/13

80/5

3-2- استخراج مشخصات سخت‌افزاری

برای استخراج پارامترهای سخت‌افزاری، تمامی ضرب‌کننده‌ها به زبان وریلاگ توصیف شدند و سپس، با استفاده از نرم‌افزار Synopsys Design Compiler، مشخصات سخت‌افزاری هر ساختار شامل تأخیر، توان مصرفی و مساحت اشغالی به ‌دست آمدند. فرایند سنتز ساختارها با استفاده از فناوری ۴۵ نانومتر Nangate و در شرایط گوشۀ‌ معمولی[29]، دمای ۲۵ درجۀ سانتی‌گراد و ولتاژ تغذیۀ 1/1 ولت انجام شد. توان مصرفی هر ضرب‌کننده در بیشترین فرکانس کاری قابل دست‌یابی برای آن ساختار اندازه‌گیری شده است. نتایج به‌دست‌آمده برای ضرب‌کنندۀ دقیق و همچنین ضرب‌کننده‌های تقریبی پیشنهادی نوع دوم در جدول (5) ارائه شده است.

برای نمایش بهتر عملکرد ضرب‌کنندۀ پیشنهادی در مقایسه با ضرب‌کنندۀ دقیق، میزان بهبود مشخصات سخت‌افزاری آن، مانند تأخیر، توان مصرفی، مساحت اشغالی، انرژی مصرفی، حاصل‌ضرب انرژی در تأخیر (EDP)[30] و حاصل‌ضرب توان در تأخیر در مساحت (PDA)[31] در شکل (6) ارائه شده است. همان‌طور که مشاهده می‌شود، با استفاده از ساختار پیشنهادی می‌توان انرژی مصرفی را تا 92 درصد و تأخیر را تا 51 درصد کاهش داد.

جدول (5): مشخصات سخت‌افزاری ضرب‌کننده‌های تقریبی پیشنهادی به همراه ضرب‌کنندۀ دقیق

ساختار

تأخیر

( )

توان

( )

مساحت

( )

انرژی

( )

 

 

دقیق

85/0

360

417

306

0

M2_8

69/0

163

217

113

7/3

M2_9

60/0

103

153

62

0/6

M2_10

47/0

75

129

35

4/9

M2_11

41/0

60

104

24

9/13

برای بررسی عملکرد ضرب‌کننده‌های پیشنهادی در مقایسه با ضرب‌کننده‌های تقریبی پیشین، میزان بهبود انرژی، EDP و PDA آنها نسبت به ضرب‌کنندۀ دقیق در شکل (7) نمایش داده شده است. در این شکل، ساختارهای مختلف بر اساس میزان MRED مرتب شده‌اند؛ به بیان دیگر، ساختار 2- [9] کمترین و ساختار CDM8_a9 بیشترین MRED را دارد. نتایج نشان می‌دهد ساختار پیشنهادی نسبت به ساختارهای پیشین با مقادیر MRED مشابه، عملکردی بهتر از نظر مشخصات سخت‌افزاری از خود نشان می‌دهد. برای مثال، ساختار M2_8 با MRED=3.7% منجر به کاهش 63، 70 و 81 درصد در انرژی، EDP و PDA نسبت به ضرب‌کنندۀ دقیق می‌شود؛ در حالی‌ که، ساختار ارائه‌شده در [8] با MRED=3.8% منجر به بهبود 24، 27 و 35 درصد در پارامترهای یادشده می‌شود و میزان بهبود برای [11] CDM8_95 با MRED=5.1% برابر 52، 58 و 72 درصد است که نشان‌دهندۀ عملکرد بهتر ساختار پیشنهادی نسبت به کارهای پیشین است.

برای نمایش بهتر عملکرد ضرب‌کنندۀ پیشنهادی در مقایسه با ساختارهای پیشین با در نظر گرفتن مشخصات سخت‌افزاری و دقت ضرب‌کننده‌ها، نمودار EDP برحسب MRED آنها در شکل (8) رسم شده است. همان‌طور که خط‌چین سبزرنگ رسم‌شده در این شکل نشان می‌هد، ساختار پیشنهادی عملکردی بهتر نسبت به ساختارهای پیشین از خود نشان می‌دهد و می‌تواند به‌ازای میزان خطای قابل قبول، کمترین EDP را داشته باشد.

شکل (6): میزان بهبود مشخصات سخت‌افزاری ضرب‌کنندۀ تقریبی پیشنهادی در مقایسه با ضرب‌کنندۀ دقیق

شکل (7): میزان بهبود مشخصات سخت‌افزاری ضرب‌کنندۀ تقریبی پیشنهادی و ضرب‌کننده‌های پیشین در مقایسه با ضرب‌کنندۀ دقیق

شکل (8): مقایسۀ عملکرد ضرب‌کننده‌های تقریبی با در نظرگرفتن EDP و MRED آنها

شکل (9): مقایسۀ PSNR تصاویر تولیدشده با ضرب‌کننده‌های تقریبی پیشنهادی و پیشین نسبت به تصاویر دقیق

شکل (10): مقایسۀ SSIM تصاویر تولیدشده با ضرب‌کننده‌های تقریبی پیشنهادی و پیشین نسبت به تصاویر دقیق

4- کاربردها

در این بخش، عملکرد ضرب‌کننده‌های پیشنهادی در کاربردهای پردازش تصویر (شامل ضرب تصاویر و یافتن لبۀ تصاویر با الگوریتم سوبل[32]) و همچنین طبقه‌بندی تصاویر با استفاده از شبکه‌های عصبی مصنوعی ارزیابی می‌شود.

4-1- پردازش تصاویر

برای بررسی کارایی ضرب‌کننده‌های پیشنهادی در کاربرد پردازش تصویر، عملکرد آنها در کاربردهای ضرب تصاویر و یافتن لبه‌های تصاویر با الگوریتم سوبل ارزیابی شد. برای این منظور، الگوریتم‌های سوبل و ضرب تصاویر در نرم‌افزار MATLAB اجرا شدند. سپس، با استفاده از یک جدول 256×256 که خروجی ضرب‌کننده را برای تمامی حالات ورودی هشت‌بیتی مشخص می‌کرد، تصاویر خروجی تولید شدند. سپس، پارامترهای PSNR و SSIM تصاویر تقریبی در مقایسه با تصاویر دقیق، توسط نرم‌افزارMATLAB  محاسبه شدند و نتایج آن در شکل (9) و شکل (10) ارائه شده است که نشان‌دهندۀ عملکرد بهتر ساختار پیشنهادی (در بیشتر حالات) نسبت به سایر ساختارها با MRED مشابه است. اگرچه در برخی از حالات، PSNR یا SSIM تصاویر تولیدشده با ضرب‌کننده‌های پیشنهادی کمتر از برخی از ضرب‌کننده‌های پیشین است، اما کیفیت تصاویر تا حدی زیاد است که چشم انسان توانایی تشخیص این تفاوت‌ها را نسبت به تصاویر دقیق ندارد. برای مثال، چند نمونه از تصاویر تولیدشده توسط ضرب‌کننده‌های پیشنهادی در مقایسه با ضرب‌کننده‌های دقیق در شکل (11) نمایش داده شده‌اند.

شکل (11): تصاویر تولیدشده توسط ضرب‌کننده‌های پیشنهادی در مقایسه با ضرب‌کنندۀ دقیق در کاربردهای (الف) ضرب تصاویر و (ب) یافتن لبۀ تصاویر با الگوریتم سوبل

4-2- شبکه‌های عصبی مصنوعی

در این بخش، کارایی ضرب‌کننده‌های پیشنهادی در کاربرد طبقه‌بندی تصاویر با استفاده از شبکه‌های عصبی مصنوعی بررسی می‌شود. برای شبیه‌سازی‌ها، از چارچوب AdaPT [21] (مبتنی بر زبان پایتون) استفاده شد. به ‌منظور ارزیابی عملکرد ضرب‌کنندۀ پیشنهادی و سایر ضرب‌کننده‌های تقریبی در کاربرد شبکه‌های عصبی مصنوعی، برای هر ضرب‌کننده یک جدول 256×256 تولید شد که خروجی آن را برای تمامی حالات ورودی هشت‌بیتی نشان می‌دهد. این جدول‌ها به‌ عنوان مدل عملکرد ضرب‌کننده‌ها در شبیه‌ساز Adapt استفاده شدند. در این شبیه‌ساز، ضرب‌کننده‌های موجود در تمام لایه‌های شبکه عصبی با جدول توصیف‌کنندۀ ضرب‌کنندۀ تقریبی تعویض می‌شوند و صحت[33] شبکه اندازه‌گیری می‌شود. استفاده از جدول به‌‌جای مدل ریاضی ضرب‌کننده‌ها با هدف افزایش سرعت شبیه‌ساز انجام شده است. نتایج به‌دست‌آمده در جدول (6) ارائه شده است.

مدل FC-3 یادشده در جدول (6) یک مدل کوچک و دارای سه لایۀ تماماً متصل[34] با تعداد 512، 256، و 10 نورون در سه لایۀ متوالی است. سایر مدل‌ها نیز مدل‌های شبکه‌ عصبی پیچشی[35] شناخته‌شده هستند که برای کاربردهای طبقه‌بندی تصاویر استفاده می‌شوند. نتایج نشان می‌دهد ضرب‌کنندۀ پیشنهادی به‌ازای تمامی زوج حالت‌های مدل مجموعه داده، عملکردی قابل قبول را از خود نشان داده است. برای مثال، بیشترین افت صحت مدل‌های ساخته‌شده با ضرب‌کنندۀ M2_8 نسبت به ضرب‌کنندۀ دقیق برابر 56/2 درصد است که در طبقه‌بندی تصاویر مجموعه دادۀ CIFAR-10 با استفاده از مدل DenseNet-121 اتفاق می‌افتد.

 همچنین، صحت ضرب‌کنندۀ M2_9 به‌ازای تمامی زوج‌های مدل مجموعه داده، اختلاف بسیار کمی با صحت ضرب‌کنندۀ M2_8 دارد و در بدترین حالت، صحت آن نسبت به M2_8 به میزان 83/0 درصد افت می‌کند؛ در حالی که همان‌گونه که در بخش 3 بیان شد، مشخصات سخت‌افزاری هر دو ضرب‌کننده بهبودی جالب توجه را نسبت به ضرب‌کنندۀ دقیق از خود نشان می‌دهند. مشاهدۀ دیگر این است که تفاوت صحت ضرب‌کننده‌های تقریبی متفاوت در مدل‌های کوچک‌تر منجر به تفاوت‌هایی کمتر در صحت طبقه‌بندی شبکۀ عصبی می‌شود، در حالی که در مدل‌های بزرگ‌تر (که برای طبقه‌بندی مجموعه‌ دادۀ CIFAR-10 استفاده شده‌اند) خطای زیاد ضرب‌کننده‌ها موجب افت شدید صحت طبقه‌بندی شبکه شده است؛ به طوری که دو ضرب‌کنندۀ پیشنهادی M2_10 و M2_11 و سایر ضرب‌کننده‌های تقریبی که دارای خطای قابل مقایسه با این دو ساختار هستند، در مدل‌های بزرگ‌تر صحتی‌ غیرقابل ‌قبول را از خود نشان می‌دهند.

جدول (6): دقت مدل‌های مختلف شبکۀ عصبی برای طبقه‌بندی مجموعه داده‌های مختلف با استفاده از ضرب‌کننده‌های دقیق و تقریبی مختلف

مجموعه داده

MNIST

CIFAR-10

مدل شبکۀ عصبی

FC-3

LeNet-5

VGG-11

ResNet-18

DenseNet-121

ضرب‌کننده‌ی دقیق

82/97

63/97

34/92

92/92

99/93

[9]-2

75/97

52/97

51/91

47/91

20/92

[8]

77/97

48/97

48/91

52/91

73/91

AMCAL3 [18]

65/97

37/97

58/90

82/90

11/91

[11] CDM8_95

66/97

93/96

90/90

75/90

16/91

DRUM4 [16]

58/97

44/96

37/90

84/90

07/91

[9]-1

55/97

68/95

31/90

60/90

11/91

[12]

50/97

47/95

27/90

51/90

46/90

T8_2 [14]

49/97

37/95

21/90

45/90

11/90

SSM_M4k2 [15]

55/97

64/95

17/88

16/90

82/89

CDM8_a6 [11]

56/97

19/95

31/87

81/89

62/88

TOSAM (0,3) [17]

16/97

21/95

47/86

02/90

47/88

AMCAL2 [18]

75/96

57/95

33/86

25/88

15/44

TOSAM (0,2) [17]

51/96

07/95

59/85

16/88

25/37

CDM8_a7 [11]

70/96

66/94

49/85

99/67

43/33

CDM8_a8  [11]

44/96

33/90

33/45

69/21

61/9

[10]

28/96

01/90

68/44

63/19

93/13

CDM8_a9 [11]

17/96

95/89

25/43

72/18

94/7

M2_8

56/97

36/97

57/91

25/91

43/91

M2_9

24/97

53/96

87/90

04/91

13/91

M2_10

89/96

71/95

41/86

38/88

41/40

M2_11

65/96

24/90

59/49

83/25

56/10

به منظور ارائۀ یک ارزیابی بهتر از عملکرد ضرب‌کنندۀ‌ ارائه‌شده در این کاربرد، نتایج پارامترهای امتیاز F1[36]، دقت[37]، بازیابی[38] و ماتریس درهم‌ریختگی[39] برای حالت طبقه‌بندی مجموعه دادۀ CIFAR-10 با استفاده از مدل VGG-11 با استفاده از چهار حالت ضرب‌کنندۀ‌ ارائه‌شده به تفکیک کلاس خروجی در جدول (7) نمایش داده شده‌ است. نتایج نشان می‌دهد امتیاز F1 و دقت برای ضرب‌کننده‌‌های M2_8 و M2_9 همواره بیش از 80 درصد هستند. همچنین، میانگین پارامترهای امتیاز F1 و بازیابی میان 10 کلاس خروجی، تقریباً با صحت ارائه‌شده برای هر ضرب‌کننده در جدول (6) برابر است. مجموعۀ مشاهدات بالا نشان می‌دهد ضرب‌کنندۀ پیشنهادی در کاربرد شبکه‌های عصبی مصنوعی نیز می‌تواند با افت دقت جزئی نسبت به شبکه‌های عصبی دقیق،‌ عملکردی بسیار خوب را از خود نشان ‌دهد.

5- نتیجه‌گیری

در این مقاله، دو روش برای اجرای تقریبی واحدهای جمع‌کننده ارائه شدند که در یک روش، به ‌طور میانگین، خطای تولید خروجی‌ها مثبت و در روش دیگر، منفی بود. با استفاده از این جمع‌کننده‌ها در ساختار یک ضرب‌کنندۀ هشت‌بیتی، میزان انرژی مصرفی و مساحت اشغالی تا 92 و 75 درصد نسبت به ضرب‌کنندۀ دقیق کاهش  یافت؛ در حالی که میانگین خطای نسبی ضرب‌کننده کمتر از 14 درصد بود. علت خطای اندک ضرب‌کننده قرارگیری هوشمندانۀ جمع‌کننده‌های پیشنهادی در ساختار آن بود؛ به ‌نحوی که خطای یکدیگر را به‌خوبی خنثی کنند. با استفاده از ضرب‌کننده‌های پیشنهادی در کاربردهای تحمل‌پذیر خطا، مانند پردازش تصاویر و شبکه‌های عصبی مصنوعی، کارایی آنها در این کاربردها نیز بررسی شد. نتایج نشان داد تصاویر تقریبی تولیدشده با ضرب‌کننده‌های پیشنهادی کیفیت زیادی دارند و چشم انسان قادر به تشخیص این تفاوت‌های ناچیز نیست. همچنین، با استفاده از ضرب‌کننده‌های پیشنهادی در ساختار پنج مدل شبکۀ عصبی مصنوعی‌، مشاهده شد دقت مدل‌های ساخته‌شده با ضرب‌کنندۀ پیشنهادی بسیار به دقت مدل دقیق معادل خود نزدیک است؛ به طوری که دقت مدل‌های ساخته‌شده با ضرب‌کنندۀ تقریبی M2_8، به‌ازای کاهش توان مصرفی به میزان 55 درصد، در بدترین حالت به اندازۀ 56/2 درصد نسبت به دقت مدل دقیق افت کرد.

جدول (7): سایر پارامترهای شبکۀ عصبی برای طبقه‌بندی مجموعه دادۀ CIFAR-10 با استفاده از مدل VGG-11 و حالات مختلف ضرب‌کنندۀ پیشنهادی

ماتریس درهم‌ریختگی

بازیابی

دقت

F1 Score

کلاس خروجی

ضرب‌کننده

8

12

2

1

0

1

3

4

5

964

6

3

0

0

0

0

0

0

990

1

9

8

8

51

28

27

32

785

0

52

22

21

25

36

71

25

778

12

3

7

0

2

45

25

6

889

18

7

0

8

9

18

31

19

817

17

73

0

9

7

1

0

0

989

0

2

7

1

0

0

2

0

982

0

5

2

6

0

0

3

2

983

1

0

0

0

0

0

5

9

980

2

0

0

0

0

0

0

14

4

4/96

37/91

82/93

0

M2_8

99

49/96

73/97

1

5/78

03/97

79/86

2

8/77

84/84

17/81

3

9/88

32/92

58/90

4

7/81

13/88

80/84

5

9/98

22/88

26/93

6

2/98

76/89

79/93

7

3/98

71/93

95/95

8

98

32/94

13/96

9

16

29

2

0

0

0

4

5

7

937

27

7

0

0

0

0

0

0

961

5

12

11

11

45

31

30

26

776

0

58

16

23

22

39

64

25

795

9

2

5

5

7

51

34

13

832

27

14

3

14

1

10

28

11

861

13

76

0

0

0

1

0

0

986

0

2

7

3

0

1

1

0

990

0

2

0

3

0

0

4

5

965

0

1

0

1

1

1

9

17

984

1

1

0

0

0

0

0

11

3

7/93

75/89

68/91

0

M2_9

1/96

78/96

44/96

1

6/77

04/96

84/85

2

5/79

66/84

00/82

3

2/83

14/92

44/87

4

1/86

67/88

37/87

5

6/98

35/88

19/93

6

99

59/89

06/94

7

5/96

64/91

01/94

8

4/98

13/92

16/95

9

11

4

0

0

0

0

0

0

43

942

20

16

0

5

0

0

2

0

951

6

52

0

40

28

0

7

0

743

51

79

97

0

0

3

92

2

679

0

113

14

11

0

114

0

12

802

0

8

44

9

27

0

91

0

802

0

18

0

62

0

15

0

10

935

0

0

0

0

36

4

12

0

960

0

3

0

0

0

24

1

9

901

0

0

0

0

0

0

54

36

926

0

3

0

0

0

2

0

57

12

2/94

40/85

59/89

0

M2_10

1/95

27/66

11/78

1

3/74

93/98

87/84

2

9/67

86/96

84/79

3

2/80

89/98

57/88

4

2/80

22/88

02/84

5

5/93

29/96

88/94

6

0/96

82/78

56/86

7

1/90

83/97

81/93

8

6/92

47/78

95/84

9

32

5

14

0

2

0

4

6

226

711

6

0

1

0

0

0

0

0

992

1

62

4

124

26

32

9

27

287

335

94

86

8

111

18

96

9

224

9

405

34

67

8

222

38

49

195

28

21

342

30

56

11

148

12

379

5

46

5

319

19

80

2

57

412

12

5

23

12

376

21

48

1

742

0

23

0

10

0

168

8

56

322

6

0

0

0

1

0

518

97

695

0

2

0

0

0

0

0

300

3

1/71

84/69

47/70

0

M2_11

2/99

92/24

83/39

1

7/28

41/84

84/42

2

4/22

71/61

87/32

3

5/19

44/87

89/31

4

9/37

91/63

58/47

5

2/41

42/81

71/54

6

2/74

00/52

15/61

7

2/32

20/89

32/47

8

5/69

50/58

53/63

9

 

[1] تاریخ ارسال مقاله: 06/03/1404

تاریخ پذیرش مقاله: 06/08/1404

نام نویسندۀ مسئول: شقایق وحدت

نشانی نویسندۀ مسئول: ایران، تهران، دانشگاه تهران، دانشکده مهندسی برق و کامپیوتر، گروه الکترونیک

 

[1] Dynamic Voltage Frequency Scaling

[2] Clock

[3] Partial product generation

[4] Operand

[5] Partial product reduction

[6] Partial product accumulation

[7] Booth Multiplier

[8] Full adder

[9] Half adder

[10] Compressors

[11] Truth table

[12] Error compensation modules

[13] Truncation

[14] Static

[15] Dynamic

[16] Shift

[17] Gate

[18] Dot diagram

[19] Error

[20] Error Distance

[21] Mean Error

[22] Mean Error Distance

[23] Normalized Mean Error Distance

[24] Relative Error Distance

[25] Mean Relative Error Distance

[26] Mean Squared Error

[27] Number of Effective Bits

[28] Verilog

[29] Typical corner

[30] Energy-Delay Product

[31] Power-Delay-Area product

[32] Sobel edge detection algorithm

[33] Accuracy

[34] Fully-Connected

[35] Convolutional

[36] F1 Score

[37] Precision

[38] Recall

[39] Confusion Matrix

[1]  W. Xiong, J. Cao, Y. Liu, J. Wang, J. Lai, M. Huang, "A Reliable and Efficient Online Solution for Adaptive Voltage and Frequency Scaling on FPGAs", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 32, No. 6, pp. 1058-1071, June 2024. https://doi.org/10.1109/TVLSI.2024.3361459 
[2] C. S. Joice, C. Jenisha, S. H. Shanitini, R. Desika, D. Kirthana, "A Comprehensive Review of Various SRAM Using Power Gating Technique”, 5th International Conference on Data Intelligence and Cognitive Informatics (ICDICI), Tirunelveli, India, pp. 356-361, 2024. https://doi.org/10.1109/ICDICI62993.2024.10810787 
[3] S. Sathish,  N. Prajwal, R. Akshaya, Kaustubha, S. Kumar, "Impact of Clock-Gating on ALU Optimized RISC-V Microarchitectures for Low Power Applications", IEEE 4th International Conference on VLSI Systems, Architecture, Technology and Applications (VLSI SATA), Bangalore, India,  pp. 1-6, 2024.  https://doi.org/10.1109/VLSISATA61709
[4] J. Vafaei, O. Akbari, "HPR-Mul: An Area and Energy-Efficient High-Precision Redundancy Multiplier by Approximate Computing", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 32, No. 11, pp. 2012-2022, Nov. 2024.  https://doi.org/10.1109/TVLSI.2024.3445108
[5] M. H. Haider, H. Zhang, S. -B. Ko, "Decoder Reduction Approximation Scheme for Booth Multipliers", in IEEE Transactions on Computers, Vol. 73, No. 3, pp. 735-746, March 2024.  https://doi.org/10.1109/TC.2023.3343093
[6] M. Reshadinezhad, S. E. Fatemieh, Z. Davari Shalamzari, “Design and optimization of an Approximate Full-adder Based on CNTFETs and its application in image processing,” Computational Intelligence in Electrical Engineering (ISEE), Vol. 11, No. 3, pp. 25-36, 2020. https://doi.org/10.22108/isee.2020.120390.1313   [In Persian]
[7] L. Sayadi, S. Timarchi, A. Sheikh-Akbari, "Two Efficient Approximate Unsigned Multipliers by Developing New Configuration for Approximate 4:2 Compressors", in IEEE Transactions on Circuits and Systems I: Regular Papers, Vol. 70, No. 4, pp. 1649-1659, April 2023.  https://doi.org/10.1109/TCSI.2023.3242558
[8] Y. Zhang, X. Chen, P. Guo, G. Xie, “Design and Analysis of Approximate Multiplier of Majority-Based Imprecise 4–2 Compressor for Image Processing”,  IEEE 23rd International Conference on Nanotechnology (NANO), Jeju City, Korea, pp. 1-5, 2023.  https://doi.org/10.1109/NANO58406.2023.10231167
[9] L. H. Krishna, A. Sk, J. B. Rao, S. Veeramachaneni, N. M. Sk, “Energy-efficient approximate multiplier design with lesser error rate using the probability-based approximate 4:2 compressor”, in IEEE Embedded Systems Letters, Vol. 16, No. 2, pp. 134-137, June 2024. ‌ https://doi.org/10.1109/LES.2023.3280199
[10] S. Shirkavand Saleh Abad, M. Moaiyeri, “Hardware-accuracy trade-offs for error-resilient applications using an ultra-efficient hybrid approximate multiplier”, The Journal of Supercomputing, Vol. 79, pp. 3357-3372, Sep. 2022.  https://doi.org/10.1007/s11227-022-04789-6
[11] N. Amirafshar, A. S. Baroughi, H. S. Shahhoseini, N. TaheriNejad, “Carry Disregard Approximate Multipliers”, IEEE Transactions on Circuits and Systems I: Regular Papers, Vol. 70, No. 12, pp. 4840-4853, Dec. 2023.  https://doi.org/10.1109/TCSI.2023.3306071
[12] L. Sayadi, A. Amirany, M. H. Moaiyeri, S. Timarchi, “Balancing Precision and Efficiency: an Approximate Multiplier with Built-in Error Compensation for Error-Resilient Applications”, Early Access, The Journal of Supercomputing, Vol. 81, Article Number 109, 2025.  https://doi.org//10.1007/s11227-024-06563-2
[13] D. Pandey, S. Singh, V. Mishra, S. Satapathy, D. S. Banerjee, “SAM: A Segmentation Based Approximate Multiplier for Error Tolerant Applications”, IEEE International Symposium on Circuits and Systems (ISCAS), Daegu, Korea, pp. 1-5, 2021.  https://doi.org/10.1109/ISCAS51556.2021.9401266
[14] I. Nunziata, E. Zacharelos, G. Saggese, A. M. G. Strollo, E. Napoli, “Approximate Recursive Multipliers Using Carry Truncation and Error Compensation”, 17th Conference on Ph.D Research in Microelectronics and Electronics (PRIME), Villasimius, SU, Italy, pp. 137-140, 2022.  https://doi.org/10.1109/PRIME55000.2022.9816787
[15] A. G. M. Strollo, E. Napoli, D. De Caro, N. Petra, G. Saggese, G. Di Meo, “Approximate multipliers using static segmentation: error analysis and improvements”, IEEE Transactions on Circuits and Systems I: Regular Papers, Vol. 69, No. 6, pp. 2449-2462, June 2022.  https://doi.org/10.1109/TCSI.2022.3152921
[16] S. Hashemi, R. I. Bahar, S. Reda, “DRUM: a dynamic range unbiased multiplier for approximate applications”, in Proceedings of IEEE/ACM International Conference on Computer-Aided Design (ICCAD), pp. 418-425, 2015.  https://doi.org/10.1109/ICCAD.2015.7372600
[17] S. Vahdat, M. Kamal, A. Afzali-Kusha, M. Pedram, “TOSAM: An energy-efficient truncation- and rounding-based scalable approximate multiplier”,  IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 27, No. 5, pp. 1161-1173, May 2019.  https://doi.org/10.1109/TVLSI.2018.2890712
[18] R. Zendegani, S. Safari, “AMCAL: Approximate Multiplier With the Configurable Accuracy Levels for Image Processing and Convolutional Neural Network”, IEEE Access, Vol. 12, pp. 94135-94151, 2024.  https://doi.org/10.1109/ACCESS.2023.3273449
[19] L. Li, I. Hammad, K. El‐Sankary, "Dual segmentation approximate multiplier", Electronics Letters, Vol. 57, No. 19, pp. 718-720, 2021.  https://doi.org/10.1049/ell2.12243
[20] M. Taheri, N. Cherezova, S. Nazari, A. Rafiq, A. Azarpeyvand, T. Ghasempouri, M. Daneshtalab, J. Raik, M. Jenihhin, “AdAM: Adaptive fault-tolerant approximate multiplier for edge DNN accelerators”, 2024 IEEE European Test Symposium (ETS), The Hague, Netherlands, pp. 1-4, 2024.  https://doi.org/10.1109/ETS61313.2024.10567161
[21] D. Danopoulos, G. Zervakis, K. Siozios, D. Soudris, J. Henkel, “AdaPT: Fast Emulation of Approximate DNN Accelerators in PyTorch”, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Vol. 42, No. 6, pp. 2074-2078, June 2023.  https://doi.org/10.1109/TCAD.2022.3212645