چکیده
رایانش تقریبی با تخفیف الزام انجام محاسبات دقیق، عملکرد مدار دیجیتالی را بهبود می بخشد. ما در این مقاله به بررسی کاربرد جمع کننده های تقریبی در مرحلۀ نهایی انباشتگر مولتی پلایر(MAC) با قابلیت ذخیرۀ رقم نقلی که برای اپلیکیشن فیلترینگ عکس طراحی شده می پردازیم. ما یک جریان طراحی مبتنی بر ابزارهای سنتزی پیشنهاد می دهیم که از توصیف HDL آغاز می گردد.پس از اولین مرحله ای که در آن از جمع کنندۀ انتشار رقم نقلی استفاده می شود، نت لیست سنتزی جهت استخراج آمار و ارقام موارد جمع شده در جمع کنندۀ انتشار رقم نقلی شبیه سازی می گردد. سپس به طراحی جمع کنندۀ تقریبی جهت مواجه با مشخصه های خطایی مورد نیاز که در آمار و ارقام ورودی داده شده می پردازیم. این نت لیست در نهایت با جایگزینی جمع کنندۀ دقیق با جمع کنندۀ تقریبی اصلاح می گردد و سنتر و بهینه سازی نهایی انجام می گیرد. نمونۀ طرح ارائه شده در 28nm CMOS نشان می دهد که به بهرۀ توان 14درصدی با کاهش محدود کیفیت عکس می توان دست یافت.
1. مقدمه
محاسبۀ تقریبی یکی از روش های نویدبخش در بهبود عملکرد مدار دیجیتال از طریق تخفیف لزوم اجرای محاسبات دقیق می باشد. این تکنیک برای اپلیکیشن هایی که می توانند برخی خطاهای موجود در نتایج محاسبه شده مثل پردازش چندرسانه ای، داده کاوی و تشخیص داده ها را تحمل کنند بسیار مثمر ثمر است.
در بین اپراتورهای دیتاپد تقریبی، جمع کننده ها به عنوان یک زیرسیستمی که کاربرد بیشتری در اپلیکیشن های تحمل پذیر خطا دارند بیشتری توجهات را به خود جلب کرده اند. در یک جمع کنندۀ n بیتی، بدترین وضعیتی که در آن رقم نقلی در سرتا سر (یا اکثر) n بیتها منتشر می شود به ندرت زمانی رخ می دهد که ورودی ها به صورت یکنواخت توزیع شده باشند. جمع کننده های تقریبی از این مشاهده استفاده می کنند و برونداد خود را فرض اینکه هر رقم نقلی از هیچ p بیتی عبور نمی کند محاسبه می کنند. p<n یک پارامتر طراحی است.با کاهش p، جمع کنندۀ تقریبی سریعتر می شود اما سرعت خطا افزایش میابد. جمع کننده های تقریبی با استفاده از زیرجمع کننده های کوچک متعدد که به موازات هم عمل می کنند به بخش های مختلف تقسیم می شوند. جمع کنندۀ فرعی iام مجموع بیت های ri را تولید می کند که در نتیجۀ نهایی نقش دارد و از بیت های pi مورد استفاده جهت پیش بینی رقم نقلی (تو جه داشته باشید که جمع کنندۀ فرعی #0 یک استثنا است که با تمام توان خروجی خود به نتیجۀ نهایی کمک می کند) بهره می گیرد. اندازۀ هر جمع کنندۀ فرعی ri+pi می باشد.
ما در این مقاله به بررسی کاربرد جمع کننده های تقریبی در مرحلۀ نهایی یک انباشتگر مولتی (MAC) ذخیرۀ رقم نقلی خواهیم پرداخت.اهمیت این اپلیکیشن از آن جهت است کهMACها از بلوک های ساتمانی رایج در ایجاد پیچیدگی هستند. پیچیدگی یک عملیات پایه در پردازش سیگنال مولتی مدیاست. به طور ویژه، ما بر MAC طراحی شده برای اپلیکیشن فیلترینگ عکس تمرکز خواهیم کرد. سایر مقالات به عملکرد جمع کننده های تقریبی اپلیکیشن فیلترینگ عکس خواهند پرداخت. اما چندین فرضیۀ ساده سازی شده که در اپلیکیشن های عملی به سختی یافت می شوند را اجرا خواهند کرد. مثلا در پژوهش (11) از جمع کننده های تقریبی برای پردازش عکس استفاده می شود اما این فرض نیز در نظر گرفته می شود که تفریق ها و ضرب ها با واحدهای تابعی دقیق اجرا می شوند. از فرضیۀ مشابهی در (9) استفاده شده است.
ما در این پژوهش یک معماری واقع گرایانه از MAC که توسط درخت Wallace ذخیرۀ رقم نقلی برای تراکم محصولات جزئی درست شده پس از یک جمع کنندۀ منتشر کنندۀ رقم نقلی نهایی (تقریبی) لحاظ خواهیم کرد. مدار با کمک ابزارهای سنتر اتوماتیک طراحی می شود که از توصیف HDL اغاز می گردد. در گام اول، یک جمع کنندۀ انتشار رقم نقلی دقیق مورد استفاده قرار می گیرد. نت لیست سنتزشده سپس برای استخراج آمار و ارقام موارد افزوده شده شبیه سازی می گردد. سپس جمع کنندۀ تقریبی را جهت یافتن مشخصه های خطایی مناسب با توجه به آمار ورودی ها طراحی خواهیم کرد. نت لیست سنتزشده در نهایت با جایگزینی جمع کنندۀ دقیق با جمع کنندۀ تقریبی اصلاح می گردد و یک سنتز نهایی و بهینه سازی انجام می شود.
علاوه بر جریان طراحی جدید، دیگر یافته های پژوهش حاضر به شرح زیر خلاصه می شود.اولا،ما نشان می دهیم که در یک اپلیکیشن پردازش نوعی عکس، ورودی های جمع کنندۀ امتشار رقم نقلی از وضعیت انتشار یکنواخت و گاوسی دور هستند. در نتیجه، فرمول های موجود برای پیش بینی خطا[5]، [11] ,[12]برای قضاوت در مورد عملکرد واقعی mAC کفایت نمی کنند. دوما، ما مشاهده می کنیم که در خصوص برخی فیلتهای شالوده ای، خطاهای ایجاد شده توسط جمع کنندۀ تقریبی منجر به نویز تصویری محسوس می گردد و ما یک رویکرد ساده برای کاهش این پدیده پیشنهاد می دهیم. سوما، ما نشان می دهیم که توزیع خاص زمان ورود ورودی های جمع کنندۀ انتشار رقم نقلی، پیشرقت های عملکردی مربوط به کاربرد جمع کنندۀ تقریبی را محدود می کند.
مقاله حاضر شامل بخش های زیر می باشد: بخش 2: ارائۀ جریان طرح پیشنهادی و mAC مورد استفاده به عنوان نمونۀ آزمایش. بخش 3: گزارش عملکرد خطای پیکربندی جمع کنندۀ تقریبی و شالوده های مختلف فیلتر.بخش 4: ارائه و تشریح نتایج پیاده سازی سخت افزار در تکنولوژی 28nm.
2. جریان طرح
ساختار انباشتگر مولتی پلایر بررسی شده در شکل 2 نشان داده شده است. ما از تشریح HDL مدار آغاز می کنیم که بعدا توسط سنتسایزر با جزئیات ساخته می شود. سنتسایزر از استخراج دیتاپد برای تغییر عملگرهای حسابی (در این مورد افزودن و ضرب کردن) به بلوک های بهینه با استفاده از حسابی ذخیرۀ عدد نقلی جهت بهبود عملکرد بهره می گیرد. جمع کنندۀ انتشار رقم نقلی برای جمع کردن خروجی های آنی مرحلۀ ذخیرۀ عدد نقلی که نتیجه نهایی را می دهد استفاده می شود. متاسفانه طراح در هنگام سنتز یک سازۀ سطح بالا مثل y<=A+B*C در VHDL، هیچ دسترسی به سیگنال های آنی ذخیرۀ عدد نقلی ندارد.از اینرو برای توصیف MAC به استفاده از اجزاء حسابی IP موجود در ابزار سنتز متوسل می شویم. به ویژه از اجزاء IP ChipWare متعلق به Cadence Encounter RTL Compiler [13] (شبیه IPهای موجود در سایر ابزارهای سنتز مثل DesignWare Building Block IP در Synopsys Design Compiler [14])استفاده کردیم.
MAC جهت استفاده از تصاویر 8بیتی بهینه سازی می شود. ما از یک مولتی پلایر علامت دار استفاده کردیم. به گونه ای که ورودی پیکسل در شکل 2 به صورت مقدار 9 بیتی (MSB آن صفر است) نشان داده شده است. ضرایب فیلتر علامت دار می شوند و از 4بیت کسری (LSB=2?4) برای ارائۀ راحت شالوده های 3x3 استفاده می شود (برخی از این شالوده ها در شکل نیز گزارش شده اند). بلوک CW_multp در شکل 2 مولتی پلایر محصول نیمه تمام است در حالی که CW_csa جمع کنندۀ ذخیرۀ رقم نقلی است که برای جمع زدن افزوده شوندۀ 18 بیتی به خروجی های مولتی پلایر ذخیرۀ رقم نقلی استفاده می شود. لطفا توجه داشته باشید که ابعاد دیتاپد برای جلوگیری از سرریز حین اجرای فیلترینگ تصویر مشخص می گردد. جمع کنندۀ انتشار عدد نقلی که با رنگ قرمز در شکل 2 مشخص شده است خروجی MAC یعنی Y را تولید می کند.
Abstract
Approximate computing improves digital circuit performance by relaxing the requirement of performing exact calculations. In this paper, we investigate the use of approximate adders in the final stage of a carry save multiplier-accumulator (MAC), designed for image filtering application. We propose a design flow based on synthesis tools, starting from HDL description. After a first step in which an exact carry-propagate adder is used, the synthesized netlist is simulated to extract the statistics of the terms summed in the carry-propagate adder. We then design the approximate adder, to meet the required error characteristics given the inputs statistics. The netlist is finally modified by substituting the exact adder with the approximate one, and a final synthesis and optimization is performed. The presented design example in 28nm CMOS shows that a 14% power gain can be obtained, with a limited image quality degradation.
I. INTRODUCTION
Approximate computing has become a promising approach to improve digital circuit performance by relaxing the requirement of performing exact calculations [1]. This technique is fruitfully applicable to applications that can tolerate some errors in the computed results, such as multimedia processing, data mining and recognition.
Among approximate datapath operators, adders have received the largest interest [2]-[12] being a commonly used subsystem in error-tolerant applications. In an n-bit adder, the worst-case condition in which the carry propagates through all (or most) of the nbits rarely occurs when inputs are uniformly distributed. Approximate adders exploit this observation and compute their output by assuming that each carry traverses no more that p bits, where p<n is a design parameter. By reducing p, the approximate adder becomes faster but the error rate increases. Approximate adders are segmented by using multiple smaller sub-adders operating in parallel [2]. The Fig.1 shows an example. Following the notation introduced in [6], the i-th sub-adder produces ri sum bits that contribute to the final result and employs pi bits used to predict the carry (please note that the sub-adder #0 is an exception, contributing with all its output bits to the final result). The size of each sub-adder is ri+pi. The adders proposed in [7]-[10],[12] belong to this general scheme.
In this paper, we investigate the use of approximate adders in the final stage of a carry save multiplier-accumulator (MAC). This is an important application since MACs are common building blocks to perform convolution, which is a basic operation in multimedia signal processing. In particular, we will focus on a MAC designed for image filtering application. Other papers investigate the performance of approximate adders for image filtering application, but perform several simplifying assumptions that are hardly found in practical applications. For example, [11] uses approximate adders for image processing, but assumes that subtractions and multiplications are performed with exact functional units. A similar assumption is used in [9].
In this paper, we consider a realistic MAC architecture composed by a carry-save Wallace tree for partial products compression, followed by a final (approximated) carrypropagated adder. The circuit is designed with the help of automatic synthesis tools, starting from HDL description. In a first step, an exact carry-propagate adder is used. The synthesized netlist is then simulated to extract the statistics of the terms added. We then design the approximate adder, to meet suitable error characteristics given the inputs statistics. The synthesized netlist is finally modified by substituting the exact adder with the approximate one, and a final synthesis and optimization is performed.
In addition to the new design flow, the other main contributions of this paper can be summarized as follows.Firstly, we show that in a typical image processing application the inputs of the carry-propagate adder are far from being uniformly or Gaussian distributed. As a consequence, formulas presented in literature for predicting error probability [5],[11], [12], are inadequate to judge the actual performance of the MAC. Secondly, we observe that for some kernel filters the errors produced by the approximate adder result in sensible image noise, and we propose a simple approach to reduce this phenomenon. Thirdly, we show that the particular distribution of the arrival times of the inputs of the carry-propagate adder limits the performance improvements related to the use of the approximate adder.
The paper is organized as follows. In Section II we present the proposed design flow and the MAC used as a test example. In Section III we report the error performance for the selected approximate adder configuration and for different filter kernels. Finally, in section IV we present and discuss hardware implementation results in 28nm technology.
II. DESIGN FLOW
The structure of the investigated multiplier accumulator is shown in Fig.2. We start from an HDL description of the circuit, which is then elaborated by the synthesizer. The synthesizer exploits datapath extraction to transform arithmetic operators (in our case addition and multiplication) into optimized blocks, using carry save arithmetic to improve performance. A carry-propagate adder is exploited to sum the intermediate outputs of the carry-save stage, giving the final result. Unfortunately, when synthesizing a high-level construct like y<=A+B*C in VHDL, the designer has no access to the intermediate carry-save signals. Therefore, to describe the MAC we resort to the use of the arithmetic IP Components available with the synthesis tool. In particular, we used ChipWare IP Components of Cadence Encounter RTL Compiler [13] (similar IPs are also available in other synthesis tools, like DesignWare Building Block IP in Synopsys Design Compiler [14]).
The MAC is optimized to handle 8bit images. We used a signed multiplier, so the pixel input in Fig. 2 is represented as a 9bit value (its MSB is zero). The filter coefficients are signed and use 4 fractional bits (LSB=24 ), to easily represent commonly used 3x3 kernels (some of the considered kernels are also reported in Fig.2). The block CW_multp in Fig.2 is the partial product multiplier, while CW_csa is the carry save adder, used to sum an 18-bit addend to the carry-save multiplier outputs. Please note that the datapath is dimensioned to avoid overflow while performing image filtering. The carrypropagate adder highlighted in red in Fig. 2 produces the MAC output Y.
چکیده
1. مقدمه
2. جریان طرح
3. نتایج پیاده سازی VLSI
4 نتیجه گیری
Abstract
I.Introduction
II.Design Flow
III.VLSI Implementation Results
IV.Conclusions