jump to navigation

کارت هاي گرافيک در سال ۲۰۰۶ می 10, 2008

Posted by Behzad in مقالات.
add a comment

آيا مي‌دانيد كارت‌‌هاي گرافيكي در سال 2006 دستخوش چه تغييراتي شده‌اند ؟ آيا مي‌دانيد در اين سال چه فن‌آوري‌هايي به كارت‌گرافيك‌هاي و بازي‌هاي مدرن اضافه شده است ؟ در اين مقاله كارت‌گرافيك‌هاي سال 2006 بررسي شده و فن‌آوري‌هاي مهم آنها و تاثير هريك بر بازي‌هاي كامپيوتري را تشريح كرده‌ايم .

مقدمه

زمانيكه كارتهاي گرافيكي مبتني بر DirectX 8.0 معرفي شدند اثرات سايه زنها بخصوص در سطوح آب بسيار متحير كننده بود . كارتهاي گرافيكي مبتني بر هسته هاي GeForce FX و Radeon 9X00 كه قابليت پشتيباني از DirectX 9.0 را نيز داشتند از ويژگيهاي سايه زنها در بازيها استفاده كرده و تصاوير زيبايي را ايجاد ميكردند . در اين كارتها براي اولين بار بازتاب موج آب ديده ميشد . يعني دويدن و يا شنا كردن در ميان آب تغييراني را ايجاد ميكرد كه باعث بوجود آمدن موجهاي در سطح آب ميشد .بعد از معرفي DirectX 8.0 نسخه هاي گوناگوني از سايه زنها معرفي شدند . بنابراين در آن زمان شركت NVIDIA در محصولات خود از سايه زنهاي نسخه 2 استفاده كرد در حاليكه شركت ATI هسته هاي گرافيكي خود را ارتقاء داد و از سايه زن پيكسل نسخه 2.1 پشتيباني كرد . با معرفي GeForce 6 و پشتيباني از DirectX 9.0c كارتهاي گرافيكي مبتني بر اين سري از سايه زنهاي پيكسل نسخه 3.0 پشتيباني كردند . اين قابليت جديد در بازيهاي نظير Splinter Cell 3.0 – Chaos Theory كاملا به چشم ميايد . در اين بازي براحتي اختلاف تصاوير نمايش داده شده بين يك كارت گرافيكي مبتني بر سايه زن پيكسل نسخه 2.0 و نسخه 3.0 را مشاهده خواهيد كرد .

http://www.guru3d.com/admin/imageview.php?image=2898

نمایی از بازی FarCry

جديدترين چيپهاي گرافيكي دو شركت ATI و NVIDIA اكنون كارايي سه بعدي مناسبي را فراهم ميكنند و اجازه ميدهند تا كاربران از كيفيت تصاوير فوق العاده ايجاد شده توسط آنها لذت ببرند . سري Radeon X1×00 و GeForce 7 اكنون از سايه زنهاي پيكسل نسخه 3 كه اساس نسل جديد كارتهاي گرافيكي ميباشد پشتيباني ميكنند . در حال حاضر ويژگيهاي نظير HDR و Parallax Mapping در بازي هاي سه بعدي تصاوير حقيقي تري را ايجاد ميكنند . پيشرفتهاي آشكار در سايه زنهاي جديد سبب ايجاد نور ، سايه ، بازتاب نور و منعكس كردن آن به شكل واقعي تري شده است.

در ادامه به معرفی و مقايسه ای تکنولوژی به کار رفته در نسل جدید کارت های گرافیک با نسل قبلی آنها می پردازیم.

تفاوت بين سايه زنهاي پيكسل نسخه 2.0 و نسخه 3.0

امروزه اختلاف بين سايه زنها را ميتوان بوسيله شماره نسخه آنها از يكديگر تشخيص داد . همه نسخه هاي سايه زنهاي پيكسل پايين تر از سايه زن پيكسل نسخه 3.0 قادر به نمايش اثرات گرافيكي نظير HDR ، Parallax Mapping و شفافيت سطوح آب نميباشند . چيپهاي گرافيكي كه از سايه زنهاي نسخه 3.0 پشتيباني ميكنند سري Radeon X1000 از شركت ATI و سري GeForce 6 و GeForce 7 از شركت NVIDIA ميباشد . آشكارترين تفاوت بين DirectX 8.0 و DirectX 9.0 كه روي كيفيت تصاوير گرافيكي تاثير بسزايي ميگذارد افزايش روشنايي منابع نوري و بهبود اثرات سه بعدي در سنگها و آجركاريها ميباشد.

سايه زنهاي پيكسل نسخه 3.0 سطوح آب را حقيقي تر ترسيم ميكنند . امواج جزئيات بيشتري دارند و بازتاب سايه ها طبيعي تر است . بعنوان مثال با اين نسخه از سايه زن زمانيكه بازي Age Of Empires 3 در تنظيمات Very High اجرا ميشود آبها كاملا شفاف نمايش داده ميشوند . در تنظيم High (استفاده از سايه زنهاي پيكسل نسخه 2.0 يا 2.1) اين اثرات كمتر آشكارند . البته بازي نظير Black and White 2 كه براي كارتهاي گرافيكي مبتني بر هسته ATI بهينه سازي شده است توسط سايه زن پيكسل نسخه 2.1 نيز سطوح آب را شفاف نمايش ميدهد .

با سايه زن پيكسل نسخه 2.0 دريا فاقد شفافيت ، موجها و بازتابهاي طبيعي ميباشد .

با سايه زن پيكسل نسخه 2.0 دريا فاقد شفافيت ، موجها و بازتابهاي طبيعي ميباشد .

با سايه زن پيكسل نسخه 3.0 كف ها و �بابهاي ناشي از كوبيده شدن موجها به كنار دريا نمايش داده شده و همچنين دريا شفاف تر است . بازي Black & White براي كارتهاي گرافيكي مبتني بر هسته ATI بهينه شده بطوريكه افكتها با سايه زن پيكسل نسخه 2.1 نيز قابل مشاهده است .

با سايه زن پيكسل نسخه 3.0 كف ها و حبابهاي ناشي از كوبيده شدن موجها به كنار دريا نمايش داده شده و همچنين دريا شفاف تر است . بازي Black & White براي كارتهاي گرافيكي مبتني بر هسته ATI بهينه شده بطوريكه افكتها با سايه زن پيكسل نسخه 2.1 نيز قابل مشاهده است.

HDR Rendering

HDR یا High Dynamic Range تكنولوژي جديدي كه در حال حاضر تعداد اندكي از بازيهاي از آن استفاده كرده اند. براي آشنايي با اين تكنولوژي ابتدا لازم است شما با مفهوم Daynamic Range آشنا شويد.Dynamic Range نسبت بين بخش روشن و تاريك يك عكس است . وقتي در شب به ماه نگاه ميكنيد بنظر درخشان ميآيد زيرا هيچ چيز ديگري در اطرافش نيست كه بدرخشد . علاوه بر ماه اطرافش هم كمي درخشان است كه به اين بخش از اطراف درخشان ماه Dynamic Range ميگويند . HDR به كارت گرافيك كمك ميكند تا تصاويري با Dynamic Range بالاتر ايجاد كند كه چشم شما قادر به مشاهده اش باشد . اين استاندارد در حال حاضر در بازيهاي FarCry ، Chaos Theory - Splinter Cell و Seriuos Sam 2 استفاده شده است و پيش بيني ميشود در آينده بازيهاي بيشتر از اين تكنولوژي استفاده كنند. بنابراين ميتوان نتيجه گرفت كه HDR بهترين نورپردازي را در بازيها ايجاد ميكند .

اگر سيستم شما داراي كارت گرافيكي مبتني بر سري GeForce 6 ، GeForce 7 و يا Radeon X1000 باشد در بازي Splinter Cell در منوي گرافيكي بخشي براي تنظيمات سايه زن پيكسل نسخه 3.0 باز خواهد شد كه شما در آن ميتوانيد اثراتي نظير HDR Rendering و Parallax Mapping را فعال كنيد .

اگر سيستم شما داراي كارت گرافيكي مبتني بر سري GeForce 6 ، GeForce 7 و يا Radeon X1000 باشد در بازي Splinter Cell در منوي گرافيكي بخشي براي تنظيمات سايه زن پيكسل نسخه 3.0 باز خواهد شد كه شما در آن ميتوانيد اثراتي نظير HDR Rendering و Parallax Mapping را فعال كنيد.

HDR Rendering منابع نوري روشن تر و بازتابهاي قدرتمندتري از ديوارها را نمايش ميدهد .

HDR Rendering منابع نوري روشن تر و بازتابهاي قدرتمندتري از ديوارها را نمايش ميدهد.

بدون HDR Rendering م�يط بازي Serius Sam 2 روشن و درخشان است ، ابرها مبهم هستند و بدرستي ديده نميشوند ، ماه تقريبا مات و غير شفاف است (شايد اصلا بعنوان ماه قابل تشخيص نباشد).

بدون HDR Rendering محيط بازي Serius Sam 2 روشن و درخشان است ، ابرها مبهم هستند و بدرستي ديده نميشوند ، ماه تقريبا مات و غير شفاف است.

با سايه زن پيكسل نسخه 3.0 HDR Rendering ميتواند فعال شود . نور ا�اطه كننده م�يط تا �دي كنترل شده ، ابرها و ماه كاملا واض� است و برا�تي قابل شناسايي ميباشند .

با سايه زن پيكسل نسخه 3.0 HDR Rendering ميتواند فعال شود . نور احاطه كننده محيط تا حدي كنترل شده ، ابرها و ماه كاملا واضح است و براحتي قابل شناسايي ميباشند .

Parallax Mapping

در حقيقت ميتوان گفت Parallax Mapping جايگزين Bump Mapping شده است كه وظيفه شكل پذيري شكاف ها ، ترك ها و شيارهاي روي ديوارهاي سنگي را بر عهده دارد . تاثير اين ابتكار جديدتر در ساختن بافتها فوق العاده متفاوت تر از تاثير Bump Mapping در ساختن بافتها ميباشد . در اين روش جديد شيارهاي روي ديوارها و آجركاري ها فوق العاده طبيعي تر بنظر ميرسد . از Parallax Mapping در بازي هاي نظير F.A.E.R و Splinter Cell 3.0 – Chaos Theory استفاده شده است.

در GeForce 2 كيفيت تصاوير گرافيكي پايين است و اين بدان معني است كه تصاوير جزئيات اطراف يك ص�نه از كيفيت مناسبي برخوردار نميشوند . اثرات سايه زنها اصلا آشكار نيست و بافتها بصورت Bilinear فيلترگذاري ميشوند .

در GeForce 2 كيفيت تصاوير گرافيكي پايين است و اين بدان معني است كه تصاوير جزئيات اطراف يك صحنه از كيفيت مناسبي برخوردار نميشوند . اثرات سايه زنها اصلا آشكار نيست و بافتها بصورت Bilinear فيلترگذاري ميشوند .

بنا بر این Paralaax Mapping ویژگی است که با استفاده از آن اثراتی که بازکن بر محیط اطراف خصوصا دیوار ها و سطوح موجود در بازی ایجاد میکند را به بهترین نحو نمایان می سازد تا تجربه یک بازی را به واقعیت نزدیک تر کند. در تصویر زیر نمونه کاملی از اثر این ویژگی بر بافت یک نمون دیوار آجری را مشاهده می کنید:

پارالاکس مپینگ یا بافت گذاری بر روی سطو�

اثر Paralaax Mapping بر واقع گرایی نمایش شیار های یک دیوار آجری.

بهترين تجربه گرافيكي با Radeon X1×00 و GeForce 7

بازي F.A.E.R يك مثال خوب براي عملكردهاي جديدي است كه در بازيهاي سه بعدي بكار گرفته شده است . چيپهاي گرافيكي جديدتر كيفيت تصاوير بهتري را در اينگونه بازيها از خود به نمايش ميگذارند . اگر بازي هاي نظير F.A.E.R و Splinter Cell 3.0 را اجرا ميكنيد و كيفيت تصاوير گرافيكي مناسبي نداريد و تصاوير فاقد جزئيات لازم ميباشد دليل آن ضعيف بودن كارت گرافيكي شماست كه فاقد خصوصيات سه بعدي ارائه شده در بالا است . از قابليتهاي نظير HDR و Parallax Mapping كارتهاي گرافيكي پشتيباني ميكنند كه حداكثر از سايه زنهاي پيكسل نسخه 3.0 استفاده كنند.

در اینجا به مقایسه تفاوت های نسل های مختل از تراشه های گرافیکی به صورت عملی در بازی F.E.A.R خواهیم پرداخت :

در GeForce 2 كيفيت تصاوير گرافيكي پايين است و اين بدان معني است كه تصاوير جزئيات اطراف يك ص�نه از كيفيت مناسبي برخوردار نميشوند . اثرات سايه زنها اصلا آشكار نيست و بافتها بصورت Bilinear فيلترگذاري ميشوند .

در GeForce 2 كيفيت تصاوير گرافيكي پايين است و اين بدان معني است كه تصاوير جزئيات اطراف يك صحنه از كيفيت مناسبي برخوردار نميشوند . اثرات سايه زنها اصلا آشكار نيست و بافتها بصورت Bilinear فيلترگذاري ميشوند .

باز هم بافتها بصورت Bilinear فيلترگذاري ميشوند و رويهم رفته تصاوير كيفيت مناسبي ندارند . شيارهاي بين آجرهاي ديوارها عمق �قيقي تري دارند . بهر�ال سايه ها هنوز ناپيدا هستند .

GeForce 3 ، GeForce 4 و Radeon 9800 : باز هم بافتها بصورت Bilinear فيلترگذاري ميشوند و رويهم رفته تصاوير كيفيت مناسبي ندارند . شيارهاي بين آجرهاي ديوارها عمق حقيقي تري دارند . بهرحال سايه ها هنوز ناپيدا هستند .

سايه ها و روشنايي ها نمايش داده ميشوند . در اين تصوير همانطور كه مشاهده ميكنيد اثرات روشنايي همانند نور آتش ديوارها را قرمز كرده است . �داكثر در اين نقطه سايه زن پيكسل نسخه 2 براي اثرات گرافيكي نمايش داده شده كافي هستند . اگر نرخ فريم ها خيلي پايين است سايه ها را غير فعال كنيد .

GeForce 5 و Radeon X800 : سايه ها و روشنايي ها نمايش داده ميشوند . در اين تصوير همانطور كه مشاهده ميكنيد اثرات روشنايي همانند نور آتش ديوارها را قرمز كرده است . حداكثر در اين نقطه سايه زن پيكسل نسخه 2 براي اثرات گرافيكي نمايش داده شده كافي هستند . اگر نرخ فريم ها خيلي پايين است سايه ها را غير فعال كنيد .

سايه ها و روشنايي ها نمايش داده ميشوند . در اين تصوير همانطور كه مشاهده ميكنيد اثرات روشنايي همانند نور آتش ديوارها را قرمز كرده است . �داكثر در اين نقطه سايه زن پيكسل نسخه 2 براي اثرات گرافيكي نمايش داده شده كافي هستند . اگر نرخ فريم ها خيلي پايين است سايه ها را غير فعال كنيد .

GeForce 6 ، GeForce 7 و Radeon X1×00 : آجركاري و سنگهاي روي ديوارها بنظر حقيقي ميرسند . Parallax Mapping بكار گرفته شده در سايه زن پيكسل نسخه 3 شيارها و گودال هاي با عمق خيلي بزرگتر از Bump Mapping متعارف (بكار گرفته شده در سايه زن پيكسل نسخه 2) نمايش ميدهد . در مجموع نور توليد شده توسط آتش روي ديوارها طبيعي تر از قبل بنظر ميرسد .

DirectX 10 و اهمیت آن در صنعت کامپیوتر های شخصی می 9, 2008

Posted by Behzad in مقالات.
add a comment
chris Donahueتوضیح : در این مصاحبه پرسش ها توسط BD (کوتاه شده عبارت Boot Daily) و پاسخ ها با نام Chris (مدیر بخش گسترش و بازاریابی مایکروسافت) مشخص شده اند. همچنین منظور از DX10 در این مصاحبه DirectX 10 می باشد.BD : لطفا اهمیت DX10 برای دوست داران بازی ها را در یک جمله توضیح دهید.

Chris : ما در مایکروسافت DirectX 10 را به عنوان بلند ترین جهش در کیفیت و کارایی گرافیک در صنعت کامپیوتر های شخصی از زمان پیدایش DirectX که به زمان ویندوز 95، و تحولی در زمینه بازی های کامپیوتری و تکنولوژی مربوط به آن می دانیم.

BD : و اهمیت آن برای کاربران عادی؟

Chris : بله، DirectX 10 بالاترین کیفیت و کارایی گرافیکی را در پلاتفرم ویندوز را به همراه خواهد داشت که نتیجه آن تجربه ای باورنکردنی و دور از ذهن برای کاربران عادی خواهد بود.

BD : این یک حقیقت است که تعداد زیادی از بازی های معروف و پرطرفدار درحال حاظر بر پایه موتور گرافیکی Doom3 که از OpenGL بهره می گیرد ساخته می شوند. به نظر شما DX10 چه مزیت هایی نسبت به OpenGL برای تولید کنندگان بازی های کامپیوتری به ارمغان می آورد؟

Chris : همانطور که می دانید، ما DirectX 10 را برای ویندوز ویستا و با هدف ارایه دادن یک تجربه باورنکردنی از جزئیات گرافیکی به کاربران و بازیکنان ، تماما از پایه و از صفر ساخته ایم. این نسخه از DirectX نسب به نسخه های قبلی دارای بازده به مراتب بیشتر و در عین حال با ضریب اطمینان و پایداری بیشتر خواهد بود. DirectX 10 به لطف Shader Model 4.0 به طور فوق العاده ای کیفیت و جزئیات باورنکردنی را در اختیار توسعه دهندگان و نهایتا کاربران خواهد گذاشت که از آن جمله توانایی بکارگیری محیط های پیچیده گرافیکی و ترسیم چهره ها به صورت بسیار طبیعی و توانایی نمایش تعداد دلخواه از آیتم ها در صحنه می باشد.

اشاره کردید که بازی های معروف و پرطرفدار بر اساس موتور گرافیکی Doom3 و OpenGL ساخته می شوند، اما به عقیده من تعداد بازی هایی که از DirectX استفاده می کنند به مراتب بیشتر و حتی زیبا تر هستند. بازی هایی زیادی هستند که بر اساس موتور های گرافیکی Unreal و Source و با استفاده از DirectX ساخته می شوند. حتی ID (منظور شرکت ID Software سازنده سری بازی های Doom و Quake است-م) نیز برای منطبق ساختن بازی های خود با کنسول های Xbox و Xbox360 آنها را به DirectX تبدیل می کند.BD : چرا این نسخه از DX10 تنها قابل استفاده در ویندوز ویستا است؟ آیا این نوعی اجبار کاربران برای خرید و ارتقا به ویندوز ویستا نیست؟

DirectX 10 : Chris نیاز به امکانات مشخصی جهت بهره گیری کامل از سخت افزار گرافیکی سیستم دارد که این امکانات و خصیصه ها تنها در سیستم عامل ویندوز ویستا موجود است. ما یک هدف بزرگ را برای دراختیار گذاشتن تجربه گرافیکی جدید به کاربران در نظر گرفته ایم و همانطور که قبلا گفتم، DirectX 10 کاملا از پایه و بدون استفاده از نسخه های قبلی این واسط گرافیکی ساخته شده است و بنابر این هیچگونه سازگاری با نسخه های قبلی از سیستم عامل ویندوز ندارد.

http://digitalbattle.com/wp-content/uploads/2006/06/crysis3.jpg

نمای از بازی Crysis بر پایه DirectX 10

DirectX 10 برپایه مدل جدید درایور تصویر ویندوز ویستا (Windows Vista Display Driver Model یا WDDM) که معرف عصر جدیدی در قابلیت های گرافیکی و افزایش پایداری و ضریب اطمینان درنظر گرفته شده، طراحی شده است. در عین حال ما با انجام تغییراتی در معماری مدل درایور ها سعی در آسان سازی و افزایش پایداری و همچنین سازگاری بیشتر تراشه های گرافیکی با مجموعه دستورات هوش مصنوعی و محاسبات فیزیکی (جدا از تراشه های محاسب فیزیکی) انجام داده ایم که مجموعه این دلایل برای ارایه نشدن این نسخه از DirectX جهت سیستم عامل های قبلی مایکروسافت از جمله ویندوز XP متقاعد کننده به نظر می رسد.

BD : به غیر از رشته های کوتاه تر (Shorter Program Strings)، مزیت اصلی Shader Model 4.0 نسبت به نسخه 3.0 آن برای توسعه دهندگان بازی های کامپیوتری چست؟

Shader Model 4.0 : Chris به توسعه دهندکان اینگونه نرم افزار ها اجازه انجام محاسبات پیچیده بیشتری را در تراشه های گرافیکی (GPU) می دهد. این عمل ضمن کاهش بار پردازش از پردازنده سیستم را که باعث عدم بهره گیری از قدرت کامل تراشه گرافیکی می شود،  اجازه انجام محاسبات سنگین مربوط به هوش مصنوعی و نیز افزایش تعداد آیتم ها را در صحنه در اختیار توسعه دهندگان قرار خواهد داد.

در عین حال DirectX 10 به همراه Shader Model 4.0 به لطف پشتیبانی از سایه زن های متحد (Unifyed Shaders) انعطاف پذیری و خلاقیت بسیار بیشتری را در اینگونه توسعه دهندگان قرار خواهد داد.

BD : شرکت های ATI و nVIDIA هردو درحال طراحی و ساخت تراشه های گرافیکی سازگار با DX10 هستند. به نظر شما این تراشه های گرافیکی در مقایسه با کنسول های بازی Xbox 360 و PS3 چگونه عمل خواهد کرد؟

Chris : این موضوع و تلااش این دو شرکت در مورد DirectX 10 بسیار هیجان انگیز است. اما بهتر است این سوال را از خود آنها بپرسید!

BD : به غیر از برتری های DX10 در مورد بازی های کامپیوتری، این نسخه چه نقشی را در برنامه های کاربردی آینده بازی خواهد نمود؟

Chriss : کلا DirectX  فراتر از صرفا یک واسط و مجموعه دستورها برای بازی های کامپیوتری است. در گذشته نیز بسیاری از برنامه های کاربردی از CAD/CAM و 3DStudio گرفته تا برنامه های پزشکی و تصویر برداری نیز از مزایای DirectX بهره گرفته اند. با این حال  DirectX 10 باز هم نسبت به نسخه های قبلی قطعا امکانات بسیار مناسب تری را در اختیار اینگونه برنامه ها خواهد گذاشت. به یک نکته دقت کنید! ویندوز ویستا از DirectX 10 به عنوان یک مولفه گرافیکی استفاده می کند - پس ویندوز ویستا هم خود یک برنامه کاربردی استفاده کننده از DirectX 10 محسوب می شود!

BD : نحوه تعامل DX10 با کاربرانی که از سخت افزار DX10 استفاده نمی کنند چگونه خواهد بود؟

DirectX 10 : Chriss و ویندوز ویستا کاملا با تمامی برنامه ها و بازی های منطبق با نسخه های قدیمی تر DirectX سازگار هستند. کسانی که در زمان انتشار ویندوز ویستا، سخت افزار منطبق بر DirectX 10 را در اختیار ندارند و یا تهیه نکرده اند، هنوز هم قابلیت اجرای بازی ها و برنامه های برپایه DirectX 10 را خواهند داشت. DirecrX 9 هم در ویندوز ویستا برای این گروه از کاربران در نظر گرفته شده است. با این حال جالب است بدانید کاربرانی که با استفاده از سخت افزار منطبق بر DirectX 10 بازی های DirectX 9 را اجرا کنند شاهد افزایش کیفیت و بازده آن خواهند بود!

درعین حال توسعه دهندگان نیز می توانند با خیالی آسوده به تولید بازی ها و نرم افزار های بر اساس DirectX 9 برای ویندوز ویستا بپردازند.

با این حال، تمامی برنامه هایی که از واسط گرافیکی OpenGL استفاده می کنند قابلیت اجرا در ویندوز ویستا را به شرط پشتیبانی درایور گرافیک و استفاده از وصله (Patch) مناسب، خواهند داشت. به همین خاطر سازندگان و فروشندگان قطعات سخت افزاری ملزم به ارایه ICD یا Installable Client Drivers که امکان استفاده از شتابدهنده گرافیکی را برای پردازش دستورات OpenGL را خواهد داد، هستند.

BD : آیا به نظر شما DX10 نهایت گرافیک در کامپیوتر خواهد بود؟ یعنی با فرض در اختیار داشتن سخت افزار مناسب آیا شاهد تصاویر منطبق بر واقعیت با سرعت نمایش مناسب خواهیم بود؟

Chris : ما به DirectX 10 به عنوان گام بلندی در زمینه گرافیک کامپیوتری می نگریم. مطمنا این نسخه از DirectX تجربه جدید را در اختیار کاربران خواهد گذاشت و با اجازه دادن به توسعه دهندگان برای آشنایی با قابلیت های DirectX 10 این تجارب بهتر و بهتر نیز خواهند شد. اما ما همچنین عقیده داریم که هنوز هم موارد زیادی در این مورد قابل دستیابی هستند و بدست آوردن آنها نیز به زمان بیشتری نیاز دارد. گرافیک در ویندوز و DirectX 10 هنوز هم در راه توسعه و تکامل هستند.

BD : آیا شما در این لحظه در مورد تراشه های DirectX 10 شرکت های ATI و nVIDIA نظری دارید؟ کدام یک را برای خود انتخاب می کنید؟

Chris : نه! ما بدون همکاران خود در جای فعلی قرار نداشتیم! مایکروسافت با تمامی شرکت های فعال در زمینه گرافیک کامپیوتری همکاری نزدیک و دوستانه ای داشته و دارد. هردوی آنها همکاری های بسیاری در توسعه پلاتفرم ویندوز تا کنون با ما داشته اند. دیدن محصولات آنها برای ویندوز ویستا در فروشگاه های سخت افزاری برای ما جالب  خواهد بود.

BD : در مورد پیشرفت های صدا در DX10 نیز توضیح دهید. آیا ما میتوانیم با این نسخه صداها را “ببینیم” !؟

Chris : این نسخه از DirectX کماکان روال گذشته را در مورد چگونگی و نحوه تولید صدا ها ( بر پایه XACT cross-platform audio creation tool) را ادامه می دهد. بنابر این برتری عمده ای نسبت به نسخه های قبلی در این نسخه قابل ذکر نیست اما پیشرفت هایی انجام شده است.

BD : ویندوز ویستا چگونه برای اجرای یک بازی یا برنامه با استفاده از DX10 و یا DX9 را با توجه به نوع GPU تصمیم گیری می کند؟

Chris : وقتی روند اجرای یک بازی آغاز می شود، ویندوز ویستا با تشخیص نسخه DirectX به کار رفته در بازی و سخت افزار سیستم، گزینه مناسب را انتخاب خواهد کرد.

BD : گفته می شود که DirectX10 از Geometry Shaders (سایه زن هندسی) استفاده می کند. این قابلیت تا چه حد به روند انجام و تشکیل اشکال هندسی کمک خواهد کرد؟

Geometry Shader : Chris دقیقا در بین سایه زن های پیکسل و راس (Vertex and Pixel) در خط لوله پردازش قرار دارد. می تواند از رئوس و مثلث های ایجاد شده در ترسیم اشکال بعدی، بدون نیاز به پردازش مجدد، استفاده کند. سایه زن هندسی کارهای دیگری نیز انجام میدهد : تقویت تعداد مثلث ها با انتخاب یک یا چند مثلث از قبل پردازش شده و تکرار آنها بدون نیاز به پردازش مجدد، و یا تشکیل مثلث های جدید با ترکیب مثلث های دردسترس، تولید نقطه ها و خط های جدید و یا با استفاده از مثلث های ازقبل پردازش شده، و یا تولید پیکسل های پخش شده (جدا جدا).

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

بهترین نقطه در DirectX ترکیب تمامی انواع Shader Model ها در Shader Model 4.0 است که به توسعه دهندگان اجازه خواهد داد انواع Vertex، Pixel و Geometry Shaders ها را در یک مدل بیافرینند.

BD : در مورد محاسبات فیزیک (کنش ها و واکنش های محیط در مقابل تعییرات) چطور؟

Chris : ویندوز ویستا از تمامی انواع محاسبات فیزیکی چه به وسیله پردازنده، تراشه گرافیکی یا پردازنده فیزیک جداگانه پشتیبانی خواهد نمود. با اتکا بر DirectX 10 ویندوز ویستا پلاتفرم قدرتمندی برای انجام محاسبات فیزیکی توسط GPU خواهد بود. پشتیبانی از ویژگی چند تراشه گرافیکی SLI و یا CrossFire و توانایی تقسیم وظایف پردازش تصویر و یا محاسبات فیزیکی بین تراشه های گرافیکی موجود در سیستم از جمله امتیازات سیستم عامل ویستا و DirectX 10 می باشد.

BD : با این وجود پشتیبانی از کارت پردازش فیزیک Ageia به عهده ویندوز ویستا خواهد بود؟ و یا ATI و nVIDIA؟
Chris : واضح است که ساده ترین روش پردازش فیزیک، بهره گیری از پردازنده اصلی سیستم است. در ویندوز ویستا تامین درایور های لازم و پشتیبانی تراشه های پردازش فیزیک (مانند Agiea) بر عهده خود سازندگان آنها خواهد بود.
BD : آیا تیم توسعه و بازار یابی شما اقدامی در جهت موجود بودن محتوای مناسبی مانند بازی های کامیوتری، نرم افزار های سازگار و مختص به ویندوز VISTA در هنگام انتشار آن انجام داده است؟
Chris : بله! در زمان انتشار ما پشتیبانی کاملی از تمام نسخه های موجود بازی ها و نرم افزار ها را در ویندوز ویستا شاهد خواهیم بود. در عین حال علاوه بر 10 عنوانی که قبلا برای انتشار همزمان با ویندوز ویستا اعلام شده بود، عناوین مهم و جذاب دیگری نیز برای انتشار همزمان با ویندوز ویستا پیش بینی کرده ایم. مطمنا این عنواین در همان روزهای اول پیشرفت فوق العاده در نسل بعدی بازی های کامپبوتری و امکانات باورنکردنی ویندوز ویستا و DirectX 10 را به نمایش خواهند گذاشت. ضمنا تعداد تعداد زیادی از عنواین فعلی نیز برای ویندوز ویستا و پشتیبانی آن از پردازنده های چند هسته ای بهینه سازی شده اند.

نمایی از بازی کریسیس برپایه دایرکس 10
نمایی از بازی Crysis

از عناوینی که در هنگام انتشار ویستا برای خرید موجود خواهد بود :

“Alan Wake (Microsoft Game Studios)
“Age of Conan: Hyborian Adventures” (Eidos)
“Company of Heroes” (THQ)
“Crysis” (EA-Partners)
“Flight Simulator X” (Microsoft Game Studios)
“Halo 2 for Windows Vista” (Microsoft Game Studios)
“Hellgate: London” (Namco)
“LEGO Star Wars II: The Original Trilogy” (LucasArts)
“Shadowrun” (Microsoft Game Studios)
“Zoo Tycoon 2: Marine Mania” (Microsoft Game Studios)

BD : از اینکه به سوالات ما و تعداد زیادی از کاربران و دوستداران بازی های کامپیوتری پاسخ دادید متشکرم. به امید موفقیت هرچه بیشتر شما. ما مشتاقانه منتظر عرضه ویندوز ویستا و بازی های جذاب DirectX 10 و سخت افزار های ارایه شده توسط nVIDIA و ATI خواهیم بود.
اگر این گفتگو را مناسب و آموزنده می دانید، لطفا سایر دوستانتان را نیز برای خواندن این گفتگو دعوت کنید.

ناگفته هاي ‏DirectX10‎‏ از ديدگاه سخت افزاري می 9, 2008

Posted by Behzad in مقالات.
add a comment

DirectX10‎ وWindows Graphic Foundation 2.0 ‎ اسامي هستند كه ميتوانند انقلاب جديدي را در گرافيك هاي سه بعدي و بازي هاي ‏پيشرفته كامپيوتري نويد دهند. هنگام عرضه Windows Vista‏ در ابتداي سال جاري ميلادي ما شاهد حضور ‏API‏ جديد شركت ‏Microsoft‏ يعني DirectX 10‎‏ بوديم كه استانداردهاي موجود براي پردازش سه بعدي و تجربه چند رسانه اي كاربران را به سطح جديدي ارتقأ ‏داده است.هرچند زمان زيادي از معرفي ‏DirectX 10‎‏ مي گذرد، اما ناگفته هاي زيادي در رابطه با اين ‏API‏ بنيادي وجود دارد كه ‏در اين مقاله به بررسي آنها پرداخته شده است.

حافظه مجازي در ‏DirectX 10‎

API‏ يا واسط نرم افزاري ‏DirectX‏ از مجموعه اي از اينترفيس ها تشكيل شده است كه مشخص ميكنند توسعه دهندگان ‏بازي ها و نرم افزارهاي مختلف چگونه بايد با سخت افزار به صحبت بپردازند. نوشتن يك برنامه براي يك ‏API‏ استاندارد بسيار ‏ساده تر از نوشتن و بهينه سازي همان برنامه براي اجرا بر روي سخت افزارهاي خاص است. به منظور هرچه يكپارچه تر كردن ‏سخت افزار و نرم افزار، مايكروسافت يك بازنگري كلي را بر روي ‏DirectX‏ اعمال كرده است. از آنجايي كه اين ‏API‏ در طول ‏زمان حياط ‏Windows Vista‏ به عنوان پايه و اساس توسعه و اجراي هر نرم افزار و يا سخت افزار جديدي مورد استفاده قرار ‏خواهد گرفت، ‏Microsoft‏ سعي كرده است با ارايه برخي از مشخصات پيشرو و كاملا جديد و علاوه بر آن ساده سازي اين ‏API‏ به برنامه نويسان امكان دهد تا با سرعت و سهولت بتوانند با دريافت حداكثر كارايي از سخت افزارهاي ‏PC‏ ،نرم افزارها و ‏بازي هايي با كيفيت و كارايي بالا را طراحي كنند.‏

Direct3D‏ قسمتي از ‏DirectX‏ است كه مستقيما بر اجرا و عملكردهاي نرم افزارهاي سه بعدي نظارت دارد. در حقيقت ‏مهمترين بخش ‏DirectX‏ ، ‏Direct3D‏ است. بزرگترين تحولات صورت گرفته در ‏DirectX10‎‏ نيز مستقيما به ‏Direct3D‏ مربوط مي ‏شود. ‏Direct3D10‎‏ با يكپارچه كردن دستورالعمل ها و استاندارد نمودن مشخصات سايه زن هاي قابل برنامه نويسي، برنامه ‏نويسان را از شر سايه زن هايي كه هر سازنده به صورت اختصاصي طراحي و روانه بازار ميكرد رها ميسازد. بعلاوه مايكروسافت ‏در مدل درايورهاي مربوط به كارت هاي گرافيك و نمايشگرها نيز تجديد نظر كرده است.

به اين خاطر كه در Windows Vista‏ تمام دسك تاپ به صورت سه بعدي به نمايش در مي آيد، كارت گرافيك ديگر تنها براي بازي كردن مورد ‏استفاده قرار نمي گيرد. هنگامي كه شما يك صفحه نمايش سه بعدي داريد و هر برنامه را در صفحه سه بعدي مربوط به ‏خودش اجرا مي كنيد، درايورها كارت گرافيك بايد به اندازه كافي با ثبات و انعطاف پذير باشد تا بتواند نقش پردازنده گرافيكي را ‏افزايش دهد. به همين منظور مايكروسافت تصميم گرفته است تا درايورها را به دو بخش مجزا تقسيم نمايد. يك بخش براي ‏اجراي دسك تاپ و بخش ديگر براي اجراي نرم افزارها و بازي هاي سه بعدي. اين تقسيم بندي براي افزايش ثبات زير ‏سيستم گرافيكي طراحي شده است و به سيستم عامل امكان ميدهد حتي در صورتي كه يك برنامه كاربردي و يا بازي سه ‏بعدي به علت خطاهاي نرم افزاري و يا سخت افزاري متوقف ميشود، همچنان و با وجود يك دسك تاپ كاملا سه بعدي قابل ‏استفاده و با ثبات باقي بماند. وجود چنين نوآوري هايي همچنين به اين معني است كه مايكروسافت ‏DirectX10‎‏ را براي ‏Windows XP‏ ارايه نخواهد كرد، به خاطر اينكه بسياري از پيشرفت هاي صورت گرفته در ‏Direct3D10‎‏ مستقيما به مشخصات ‏مدل جديد درايور كارت گرافيك ‏Windows Vista‏ نياز خواهد داشت.‏

استفاده وسيع تر از توانايي هاي كارت گرافيكي براي اجراي كاربردهاي مختلف، نياز به اختصاص منابع سيستمي بيشتر از ‏سوي سيستم عامل به آن را دارد. سيستم عامل بايد به كاربردها امكان دهد تا بتوانند سخت افزار را به نحو موثرتري به ‏اشتراك بگذارند. بزرگترين تغيير در اين زمينه در ‏Windows Vista‏ تكنولوژيي است كه با نام ‏Virtualized Memory‏ و يا حافظه ‏مجازي شناخته مي شود. از اين پس كارت گرافيك فضاي حافظه اختصاصي خود را در حافظه سيستم خواهد داشت. اين ‏حافظه اختصاصي ميتواند براي ذخيره داده هايي كه داراي اندازه بزرگتر از حافظه محلي كارت گرافيك هستند مورد استفاده ‏قرار گيرد. هم اكنون كارت هاي گرافيكي گران قيمت و سطح بالا معمولا با حافظه هايي به ميزان 256 يا 512 مگابايت عرضه ‏ميشوند. اما بازي ها ميتوانند به سادگي تمامي حافظه موجود را براي ذخيره قطعات بسيار بزرگ داده، مانند بافت هاي با ‏وضوح بسيار بالا، مورد استفاده قرار دهند. ‏

تصویری ساخته شده توسط Unreal Engine 3 برپایه DirectX 10

مدير عامل شركت ‏Epic Games‏ كه به تازگي موتور بسيار قدرتمند ‏Unreal Engine 3.0 ‎‏ را معرفي كرده و در حال توسعه ‏عناوين معروفي چون ‏UT2007‎‏ و ‏Gears Of War‏ ميباشد، در اين باره ميگويد: ‏

‏«تكنولوژي هايي مانند بافت گذاري مجازي ‏‎(Virtual Texturing)‎‏ ميتواند گلوگاه هاي مرتبط با اندازه بافت ها را در حافظه هاي ‏گرافيكي بر طرف نمايد. اندازه بافت هايي را كه ما در ‏DirectX9.0‎‏ ميتوانستيم با حفظ كارايي كامل استفاده كنيم به وسيله ‏حجم حافظه محلي كارت گرافيكي محدود شده بود، اما در ‏DirectX10‎‏ حجم آنها تنها توسط اندازه حافظه سيستم محدود ‏خواهد شد. او توضيح ميدهد كه با در اختيار داشتن چنين امكاناتي، سطح استفاده از بافت ها در بازي ها و نرم افزارهاي سه ‏بعدي بين 2 تا 4 برابر افزايش خواهد يافت كه اين براي كساني كه از موتور ‏Unreal Engine 3.0‎‏ براي توسعه بازي هاي خود ‏استفاده ميكنند بسيار عالي است. هرجا كه طراح بخواهد ميتواند از بافت هايي با كيفيت و وضوح بالا، براي مثال در وضوح ‏‎2048×2048‎‏ پيكسل، استفاده كند و سپس آنها را براي اجرا بر روي سيستم هاي با قدرت پايين تر به اندازه هاي كوچكتري ‏مقياس دهي كند.»‏

كارت هاي گرافيكي براي تطابق با استدانداردهاي ‏DirectX 10‎‏ و افزايش كارايي نياز به رعايت نكات دقيقي دارند. كارت هاي ‏گرافيك بايد داراي مجموعه كاملي از مشخصات باشند تا بتوانند تاييديه هاي ‏DirectX 10‎‏ را بدست آورند. البته اين استاندارها ‏به طور كامل با آنچه كه در نسل فعلي كارت هاي گرافيكي شاهد ان هستيم متفاوت نخواهند بود. براي مثال كارت هايي كه از ‏DirectX 9.0c‏ و يا سايه زن هاي نسخه 2 پشتيباني كنند ميتوانند از بسياري از توابع موجود در ‏DirectX 10‎‏ نيز پشتيباني كنند. ‏اما ‏Microsoft‏ مشخصه هاي كاملا دقيقي را اعلام كرده است تا سازندگان مختلف پردازنده هاي گرافيكي مجبور به ساخت ‏سخت افزارهاي سازگار با يكديگر شوند. براي مثال تفاوت هاي موجود در واحد هاي مميز شناور پردازنده هاي گرافيكي ‏مختلف شركت هاي ‏ATI‏ و ‏nVIDIA‏ توسعه دهندگان بازي را براي سازگار كردن موتور بازي با هر دو نوع پردازنده گرافيكي تحت ‏فشار قرار ميداد، اما مشخصه هاي تعريف شده در ‏DirectX 10‎‏ كمك بزرگي به حذف اينگونه ناسازگاري ها در سخت افزارهاي ‏مختلف و در نتيجه كاهش هزينه و زمان توسعه نرم افزار براي كار با آنها خواهد كرد.

ديگر ويژگي هاي ‏DirectX10‎

مايكروسافت مشخصه هاي لازم براي طراحي پردازنده هاي سازگار با ‏Direct3D 10‎‏ را سريع اعلام كرد و تا سازندگان پردازنده ‏هاي گرافيك بتوانند هرچه زودتر كارت هاي گرافيكي مطابق با آن را ارائه دهند. با توجه به نكات گفته شده توسعه دهندگان نرم ‏افزار ديگر مجبور نخواهند بود تا هنگام عرضه هر پردازنده گرافيكي جديدي، محصولات خود را با آن منطبق كنند. طبق گفته ‏هاي مايكروسافت تنها هنگام ارايه ‏DirectX 11‎‏ آنها نياز به ايجاد تغييرات در نرم افزارهاي خود را خواهند داشت و تا پيش از آن ‏هر نرم افزاري كه براي كار با ‏DirectX 10‎‏ طراحي شده باشد ميتواند بدون اعمال هيچگونه تغييري از تمامي مشخصه هاي آن ‏پشتيباني نمايد. البته شايد هرگز نتوان جلوي نوشتن كدهاي بهينه شده براي يك پردازنده گرافيكي خاص را گرفت و ممكن ‏است همچنان شاهد مشخصه هاي اضافي عرضه شده از طرف شركتهاي مخلف سازنده سخت افزار باشيم كه توسعه ‏دهندگان مختلف ممكن است تمايل به پشتيباني از آنها را داشته باشند. اما بي شك نسل آينده نرم افزارها و سخت ‏افزارهاي سه بعدي بيش از پيش يكپارچه خواهند شد و رقابت آنها در ارائه ويژگي ها و قابليت هاي فراتر از ملزومات ‏DirectX10‎‏ خواهد بود. ‏طبق اظهارات ‏Microsoft، ‏DirectX10‎‏ ميتواند با مديريت هوشمندتر منابع، افزايش بازده ‏API‏ و انتقال بيشتر بار كاري از ‏CPU‏ ‏به پردازنده گرافيك، كارايي را در بازي هاي مختلف از 6 تا 8 برابر افزايش دهد. البته اين امر اندكي اغراق آميز به نظر ميرسد ‏اما مسلما شاهد افزايش زيادي در كارايي خواهيم بود.‏‎ ‎براي اين منظورDirectX 10‎‏ و معماري خط لوله هاي پردازشي در داخل ‏پردازنده گرافيك براي به حداقل رساندن بار كاري بر روي ‏CPU‏ و زير سيستم حافظه، مجددا از ابتدا طراحي شده اند. مهمترين ‏موضوعي كه در اين زمينه مد نظر طراحان قرار داشته است، افزيش كارهايي بوده كه پردازنده گرافيكي قادر است بدون نياز به ‏گفتگو با ‏CPU‏ انجام دهد. به همين دليل هنگامي كه نياز به استفاده از ‏CPU‏ داشته باشيم، خواهيم توانست به شكلي بسيار ‏سريع و موثر از آن استفاده كنيم. ‏

در ادامه مواردي را كه سبب افزايش كارايي هنگام استفاده از ‏DirectX 10‎‏ ميشود را ذكر ميكنيم:‏

• با استفاده از بافرهاي جديد براي مقادير، بازده عملياتي سايه زن ها هنگام ارسال و دريافت داده هاي مورد نياز ‏مانند مكان نورها، مشخصات مواد و غيره، افزايش خواهد يافت. علاوه بر اين با حذف داده هاي زايد، حجم عظيمي ‏از نقل انتقال هاي موجود بين ‏API‏ و درايور حذف خواهد گرديد. اين امر به ميزان قابل توجهي باعث كاهش فراخوان ‏داده ها توسط ‏API‏ و از بين بردن بار اضافي بر روي پهناي باند حافظه شده و اجازه خواهد داد تا اعمالي كه قبلا نياز ‏به گفتگو ميان ‏API‏ و درايور داشتند، در سطح درايور انجام شوند.‏

• با استفاده از آرايه هاي جديد بافت گذاري، پردازنده گرافيك خواهد توانست تا به طور شناور موارد استفاده از بافت را ‏تغيير داده و بدون نياز به فراخواني و يا ذخيره، آن را مجددا مورد استفاده قرار دهد.‏

• با بررسي داده هاي مربوط به هر فريم، داده هاي نالازم بدون هيچ فعل و انفعالي با پردازنده حذف خواهد شد. ‏تكنيك فوق از تكنيك هاي بررسي مختصات عمق به صورت سلسله مراتبي براي تشخيص و حذف اشيايي كه ‏توسط اشيا ديگر پوشانده شده و قابل ديد نيستند استفاده مينمايد. اين تكنيك قبلا نيز در پردازنده هاي گرافيكي ‏مختلف مورد استفاده قرار گرفته بود اما مهمترين تفاوت تكنيك فوق با تكنيك هاي قبلي، بررسي اطلاعات فريم ‏قبلي براي يافت و حذف اين اشيا است كه نياز به محاسبات جداگانه براي هر فريم را از بين برده و سربار عمليات را ‏تا حد زيادي كاهش ميدهد.‏

• Direct3D 10‎‏ داراي مشخصات منحصر به فردي است كه به كاربردها اجازه ميدهد آن را با توجه به نياز خود تنظيم و ‏بهينه كرده و در نتيجه كارايي را در تمام شرايط در سطح بالايي نگه دارند.‏

• با پشتيباني از سايه زن هاي نسخه 4 ‏‎(Shader Model 4.0)‎، پردازنده گرافيكي قادرخواهد بود تا تعداد بسيار ‏بيشتري از دستورالعمل ها را در هر سيكل كلاك انجام دهد. علاوه بر اين با استفاده از تعداد زيادي دستور العمل ‏جديد ميتوان كار بسيار بيشتري را از ‏CPU‏ به پردازنده گرافيكي منتقل كرد. در جدول زير ميتوانيد تفاوت هاي موجود ‏ميان نسخه هاي قبلي سايه زن ها را با سايه زن هاي جديد نسخه 4 مشاهده كنيد:‏

مقایسه Shader Model

جدول مقایسه Shader Model های نسخه 1 الی 4

سايه زن هندسي در ‏DirectX 10‎

Direct3D 10‎‏ يك مرحله سايه زن جديد را به خط لوله هاي گرافيكي اضافه كرده است. سايه زن هندسي (‏Geometric ‎Shader‏) واحد جديدي است كه ميان سايه زن راس ‏‎(Vertex Shader)‎‏ و سايه زن پيكسل ‏‎(Pixel Shader)‎‏ واقع شده است. يك ‏سايه زن راس سنتي تنها قادر به دريافت يك ورودي است و در نتيجه ميتواند تنها يك خروجي را ايجاد كند. توليد و يا حذف ‏مثلث ها براي سايه زن راس غير ممكن است زيرا اين سايه زن هميشه مجبور به توليد خروجي در ازاي هر ورودي دريافت ‏شده ميباشد. سايه زن هندسي به نرم افزار اجازه ميدهد تا به تمامي مختصات هندسي قبلي، خطوط، مثلث ها و نقاط در ‏واحد هاي مجاور هم دسترسي داشته باشد. اين سايه زن قادر است تا تغييراتي را در قطعات پيشين اعمال كرده و مثلث ها و ‏نقاط جديدي را قبل از ارسال اشياي مختلف صحنه به سايه زن پيكسل به آنها اضافه يا حذف نمايد.علاوه بر اين سايه زن ‏هندسي قادر است تا نتايج محاسباتي را مستقيما به حافظه ارسال نموده و به آنها اجازه دهد تا در صورت نياز بدون دخالت ‏CPU‏ به جريان پردازش بازگردند. اين تغييرات اجازه خواهد داد تا جلوه هايي مانند ذرات، دود و يا انفجارها كه هميشه توسط ‏CPU‏ شبيه سازي ميشدند توسط پردازنده گرافيكي پردازش شوند. همچنين بازي ها ميتوانند از سايه زن هندسي در تركيب با ‏آرايه بافت ها براي شتاب دهي افكت هايي مانند ‏Cube Mapping‏ استفاده كنند. بازي ها از ‏Cube Mapping‏ براي ايجاد ‏انعكاس محيط اطراف بر روي يك شي استفاده ميكنند. مثلا انعكاس تصوير محيط آشپزخانه بر روي يك قوري شفاف را در نظر ‏بگيريد، شما ميتوانيد با توجه به اجزا محيطي كه قوري داخل ان قرار دارد، تصوير انعكاسي مناسب را محاسبه كرده و سپس ‏آن را بر روي قوري پياده سازي كنيد. انجام اين عمليات با استفاده از امكانات موجود حداقل به 6 عبور ‏‎(Pass)‎‏ نياز خواهد ‏داشت، اما سايه زن هندسي ميتواند با پردازش نمودار گرافيكي، يك ‏Cube Map‏ را تنها در يك عبور پردازش نمايد.‏

در تصوير زير ميتوانيد شماتيكي از خط لوله گرافيكي ‏DirextX 10‎‏ موسوم به ‏Windows Graphics Foundation 2.0‎را ‏مشاهده كنيد كه كليه پردازنده هاي گرافيكي سازگار با آن بايد از اين ساختار تبعيت كنند. ‏

شماتیک Windows Graphic Fundation 2.0

تكنولوژي NISC، انقلاب بدون دستورالعمل. می 9, 2008

Posted by Behzad in مقالات.
add a comment

مقدمه

در روش‌هاي طراحي مدرن اجزا تشكيل دهنده سيستم همانند جعبه‌هاي سياهي درنظر گرفته مي‌شوند، طوري كه توصيف رفتار سيستم با اجزاي كمتري صورت گيرد و پيچيدگي سيستم در دل جعبه‌هاي سياه نهفته گردد. با اين وجود هنوز مشخص نيست كه چه تعداد و چه نوعي از اين جعبه‌هاي سياه در هر طراحي نياز است و كدام شيوه تركيب آنها جهت توصيف عملكرد سيستم، بهينه است.

مسلما، پردازنده و حافظه در زمره مهمترين بخش‌هاي اصلي تشكيل دهنده هر سيستم كامپيوتري به شمار مي‌روند كه به كمك آنها ميتوان عملكرد سيستم را توصيف كرده و تا پايان فاز طراحي به عنوان جعبه‌هاي سياه طراحي به آنها نگريست. به واسطه حافظه مي‌توان الگوريتم هر نوع برنامه‌اي را ذخيره كرده و به كمك پردازنده آنرا اجرا نمود. با اين وجود اين سوال همچنان مطرح است كه آيا اين دو بخش‌ اصلي كافي بوده و مي‌توانند تمامي نيازهاي ما را چه از نقطه نظر كارايي و چه از نقطه نظر محدوديت‌هاي طراحي پاسخگو باشند؟

در اين مقاله قصد داريم به اين سوال پاسخ داده و معماري كامپيوتر بدون دستور العمل را به عنوان جديدترين راه كار غلبه بر مشكلات ناشي از پيچيدگي بالاي فرايند طراحي سيستم‌هاي ديجيتال، معرفي نماييم.

تكنولوژي كامپيوتر بدون دستورالعمل يا NISC بي شك نقش كليدي در تحول فرآيند طراحي و سنتز مدارهاي ديجيتال خواهد داشت، اين تكنولوژي كه توسط محققين دانشگاه كاليفرنيا - ايرواين؛ در حال توسعه مي‌باشد با ايده حذف مجموعه دستورالعمل‌ها از معماري پردازنده‌، توانسته است تكنيك طراحي سيستماتيكي را به ارمغان آورد كه چه از نظر كارايي و چه از نظر مصرف توان و مساحت از تكنيك‌هاي طراحي متداول برتري دارد. پيش از اين طراحان به واسطه پيچيدگي بسيار زياد طراحي سيستم‌هاي ديجيتال ملزم به انتخاب روش‌هايي بودند كه يا فقط بهره‌وري بالايي داشتند و كيفيت خوبي را ارائه نمي‌كردند، يا فقط كيفيت خوبي داشتند و توانايي غلبه بر پيچيدگي روزافزون سيستم‌هاي ديجيتال را نداشتند. به طور كلي تكنولوژي NISC پاسخي است به اين مشكل كه در شكل 1 مقياس كاربرد آن ترسيم شده است.

شكل 1 مقياس پذيري تكنولوژي NISC

منظور از بهره‌وري بالاي يك سبك طراحي، قابليت‌هاي آن در افزايش سطح ساده‌سازي (Abstraction Level) و كاهش زمان طراحي مي‌باشد، مانند راه‌كارهاي پياده‌سازي نرم‌افزاري يك سيستم ديجيتال بر روي يك پردازنده عمومي، يا بر روي يك پردازنده خاص منظوره ASIP (Application Specific Instruction-set Processors). متاسفانه اين راه‌كارها به دليل ذات همه منظوره پردازنده‌هايي كه از آنها بهره گرفته‌ مي‌شود، كيفيت طراحي مناسبي از نقطه نظر كارايي، مصرف توان و مساحت ندارند. در مقابل اين راه‌كارها، راه‌كارهاي سخت‌افزاري قرار دارند كه با سنتز كدهاي توصيف كننده طرح HLS (High Level Synthesis) از سطوح ساده‌سازي رفتاري يا سيستمي، ضمن درگير كردن طراح با پيچيدگي‌هاي طراحي، كيفيت خوبي را در نتيجه ارائه مي‌كنند، اما نمي‌توانند طراح را از پيچيدگي‌هاي طراحي سيستمي دور كنند. با وجود روند رو به رشد پيچيدگي سيستم‌هاي ديجيتال، ميزان بهره‌وري راه‌كارهاي طراحي كاملا سخت‌افزاري را به شدت كاهش داده است طوري كه به سختي ميتوان از آن در طراحي يك سيستم ديجيتال بزرگ استفاده كرد.

طي چند سال گذشته محققين مركز سيستم‌هاي كامپيوتري تعبيه شده (Embedded) دانشگاه كاليفرنيا - ايرواين؛ جهت مقابله با اين مشكلات راه‌كار جديدي ارائه كرده‌اند، به ايده‌هاي خلاقانه خود جامه عمل پوشانده و آنرا پياده سازي كرده‌اند تا به عنوان يكي از راه‌كارهاي انقلابي در طراحي و سنتز سيستم‌هاي ديجيتال از آن ياد شود.

اين تكنولوژي جديد كه اخيرا توسط محققين ايراني اين مركز، در كنفرانس اتوماسيون طراحي سال 2007 موسوم به DAC 2007 در شهر San Diego ، معرفي شد و حدود 100 نفر از خبرگان صنعتي و دانشگاهي مستقيما آن را مورد ستايش قرار دادند، شركت‌هاي توليدكننده ادوات نيمه‌هادي و سيستم هاي ديجيتال مانند Qualcomm از تصميمي خود مبني بر استفاده از اين راه‌كار جديد در طراحي محصولات آينده خود خبر دادند و شركت‌هاي توسعه‌دهنده EDAهاي طراحي همانند Synopsys از علاقه‌مندي خود در توسعه هرچه بيشتر آن گفتند.

آقاي دكتر رشادي و خانم دكتر گرجي‌آرا دو عضو ارشد اين گروه زير نظر پروفسور Gajski، بي شك دو توسعه‌دهنده اصلي تكنولوژي NISC به شمار مي‌روند كه اين برگردان از نگاشته‌هاي ايشان به زبان فارسي، هرچند اندك، به سختي گوياي عظمت زحمات آنها مي‌باشد.

تكنيك‌هاي متداول طراحي سيستم‌هاي ديجيتال بر روي تراشه

در فرآيند طراحي(System On Chip) ؛ SoCها اغلب سيستم كلي، به بخش‌هاي كوچك‌تري شكسته مي‌شود كه هر يك، برنامه يا عملكرد خاصي دارند، اين اجزا اغلب به صورت IP هاي سخت يا نرم توصيف كننده آن عملكرد خاص مي‌باشند كه يا توسط اشخاص ديگر توسعه داده شده‌اند و در غالب قراردادهاي تجاري يا جنبش سخت‌افزار آزاد، در طراحي از آنها بهره گرفته مي‌شوند يا IP هايي هستند كه قبلا طراحي شده و هم اكنون در سيستم جديد، مجددا مورد استفاده قرار مي‌گيرند. در فاز پياده سازي، هريك اين اجزا مي‌توانند كاملا به صورت نرم‌افزاري پياده‌سازي شده و بر روي يك پردازنده اجرا شوند يا كاملا به صورت سخت‌افزاري توسط گيت‌هاي منطقي طراحي شوند يا تركيبي از نرم‌افزار و سخت‌افزار اختصاصي، سيستم را تشكيل دهد.

الف) پياده سازي نرم‌افزاري:

پياده‌سازي نرم‌افزاري اجزاي سيستم و اجراي آن بر روي يك پردازنده عمومي، فرايند بسيار ساده‌اي است كه مي‌تواند يك سيستم سخت‌افزاري را توليد نمايد، با اين حال به دليل عمومي بودن پردازنده‌اي كه عملكرد سيستم را اجرا مي‌كند، اين پردازنده‌ها از نقطه نظر كارايي، مصرف توان و مساحت، بهينه نيستند. جهت ارتباط و برنامه ريزي اين پردازنده‌ها از يك مجموعه دستورالعمل ( ISA (Instruction Set Architecture بهره گرفته مي‌شود كه توسط كامپيايلر زبان برنامه‌نويسي كه اجزاي سيستم در آن نوشته شده‌اند،دستورالعمل‌هاي مطلوب توليد شده تا پردازنده عمومي، برنامه مطلوب را اجرا كند.كامپايلرهاي موجود زماني مي‌توانند عملكرد مطلوبي در توليد دستورالعمل‌ها به همراه داشته باشند كه مانند كامپيوترهاي RISC مجموعه دستورالعمل‌هاي ثابت، خيلي عمومي و بسيار ساده‌اي برايش تعريف شده باشد. به بيان ديگر افزايش پيچيدگي دستورالعمل‌ها و اختصاصي شدن عملكرد آنها، موجب افت كارايي كامپايلر خواهد شد طوري كه راندمان سيستم‌هاي مبتني بر راه‌كارهاي نرم‌افزاري خالص را به شدت محدود و وابسته به مجموعه دستورالعمل‌ها خواهد كرد.

ب) پياده سازي سخت‌افزاري:

پياده‌سازي سخت‌افزاري اجزاي سيستم تنها با به كارگيري سلول‌هاي استاندارد كتابخانه‌اي مي‌تواند از نقطه نظر كارايي و توان مصرفي كارآمد باشد، با اين وجود انعطاف‌پذيري اندكي در به كارگيري سلول‌هاي استاندارد و تركيب آنها در يك طراحي كاملا سخت‌افزاري وجود دارد، همچنين اندازه برنامه‌اي كه آنها مي‌توانند پياده سازي كنند، محدود به مساحت چيپ خواهد شد، در حالي كه در پياده‌سازي نرم‌افزاري اجزاي سيستم، اين اندازه به ميزان حافظه برنامه محدود بود. به خاطر پيچيدگي بالايي كه در پياده‌سازي سخت‌افزاري هر يك از اين سلول‌هاي‌ استاندارد به كار گرفته شده است، ابزارهاي سنتز سطح بالا (HLS) اغلب توانايي سنتز سيستمي با اجزاي پيچيده سخت‌افزاري را ندارند. پيچيدگي بالا و هزينه‌ پياده‌سازي هر يك از اجزاي سيستم عموما كاربري SoCهايي كه به اين شيوه طراحي مي‌شوند را محدود مي‌كند.

پ) پياده سازي تركيبي:

راه‌كار بهتر براي پياده‌سازي اجزاي سيستم يا يك IP، داشتن يك سخت‌افزار اختصاصي براي هر بخش و اجراي نرم‌افزار توصيف كننده عملكرد بخش مذكور روي آن مي‌باشد. پردازنده‌هاي خاص منظوره (ASIP) بر اساس اين ايده توسعه يافته‌اند كه براي يك برنامه‌ خاص، سخت‌افزار اختصاصي فراهم گردد كه بتواند نرم‌افزار را به صورت كارآمدتري نسبت به پردازنده‌ عمومي پردازش نمايد. جهت پياده سازي يك ASIP براي هر يك از اجزاي سيستم عموما مراحل زير پيموده مي‌شود.

  1. يافتن توابع كليدي برنامه كه شايستگي‌هاي لازم جهت افزايش كارايي آنها وجود دارد.
  2. طراحي Datapath كارآمد يا ارتقا نسخه موجود براي اجراي هرچه بهتر تابع مذكور.
  3. طراحي يك دستورالعمل جديد مختص به تابع و به طبع آن اعمال تغييرات لازم در كدگشاي دستور‌العمل پردازنده.
  4. ارتقا كامپايلر جهت توليد دستورالعمل پيچيده جديد هنگام كامپايل كردن برنامه.
  5. كامپايل كردن برنامه جهت اجراي آن روي Datapath‌ جديد.
  6. به اين ترتيب سخت‌افزار به گونه‌اي اختصاصي مي‌گردد كه اجراي يك يا چند دستورالعمل پركاربرد و كليدي بر روي آن كارآمد تر گردد. با وجود اينكه اين راه‌كار در افزايش عملكرد برنامه‌ها موثر مي‌باشد با دو محدوديت عمده مواجه است :
  7. نوعا در پردازنده‌هاي ASIP، يك پردازنده عمومي كه از پيش مستندات طراحي آن موجود مي‌باشد به گونه ارتقا ‌يافته و اختصاصي مي‌گردد كه بتواند برنامه خاصي را سريع‌تر اجرا كند، لذا محدوديت‌هاي زمان‌بندي و مساحتي كه اين پردازنده بر روي كدگشاي دستورالعمل خود دارد موجب مي‌شود تا پيچيدگي دستورالعمل‌هايي كه در مرحله سوم طراحي ASIP در نظر گرفته مي‌شوند به شدت به كدگشا وابسته گردند همچنين محدوديت‌هاي زماني و مساحتي كدگشا به عنوان يكي از مراحل خط‌لوله پردازنده مانع از به كار گيري دستورالعمل‌هاي پيچيده گردد، چرا كه افزايش پيچيدگي دستورالعمل‌ موجب افزايش سطح مدار منطقي كدگشا شده و همچنين عمليات كدگشايي را زمان‌بر تر مي‌كند، اين موضوع مانع بهينه‌سازي هرچه بيشتر خط لوله مي‌شود. به اين خاطر همواره براي تابعي كه قصد اختصاصي كردن سخت‌افزار براي آن داريم، محدوديت پيچيدگي وجود دارد.
  8. طراحي كردن كامپايلري كه بتواند دستورالعمل‌هاي پيچيده اضافه‌ شده به ISA را به صورت كارآمدي توليد كند، بسيار دشوار و در برخي مواقع غير ممكن است.

ت) پياده سازي NISC

محققين دانشگاه كاليفرنيا - ايرواين، بر اين باورند كه مجموعه دستورالعمل‌ها، يك لايه اضافي ميان كامپايلر و رفتار پردازنده مي‌باشد و باعث به وجود آمدن سربار پياده‌سازي و طراحي هم براي پردازنده و هم براي كامپايلر مي‌گردد. در هر پردازنده‌اي پيچيده ترين واحد از نقطه نظر پياده سازي سخت‌افزاري و بحراني‌ترين مسير از نقطه نظر زماني، واحد كدگشايي دستورالعمل آن به شمار مي‌رود. در كامپايلرها نيز انتخاب دستورالعمل پيچيده يك فرايند بسيار كند و زمان‌بر است، اين موضوع يكي از اصلي‌ترين عوامل جايگزيني كامپيوترهاي با دستورالعمل‌هاي پيچيده (CISC) با كامپيوترهاي كم دستورالعمل (RISC) بود.

معماري كامپيوتر بدون دستورالعمل (NISC) كه توسط محققين اين دانشگاه ابداع شده است با حذف مجموعه دستورالعمل و به طبع‌ آن واحد‌كدگشايي دستورالعمل، اين مشكلات را مرتفع كرده است. به بيان ديگر در اين معماري مرحله 3 و 4 طراحي ASIP حذف شده است در عوض كامپايلر به صورت مستقيما برنامه را بر روي Datapath كه براي برنامه مذكور بهينه شده است، اجرا مي‌كند. به كمك مفاهيم مطرح شده در معماري NISC هر نوع Datapath با هر ميزان پيچيدگي و بهينه‌سازي قابل پياده‌سازي خواهد بود چرا كه هريك از ويژگي‌هاي يك برنامه مي‌تواند در توليد Datapath بهينه براي اجراي آن، نقش داشته باشد.

يكي از پيچيده‌ترين بخش‌هاي يك پردازنده كه هم طراحي آن دشوار است و هم بخش عمده‌اي از مساحت و مصرف توان پردازنده را به خود اختصاص مي‌دهد واحد كنترل است كه شامل اجزايي مانند كدگشاي دستورالعمل مي‌گردد تا سيگنال‌هاي كنترلي Datapath را در زمان‌هاي مشخص توليد نمايد. اين واحد اغلب داراي بيشترين مسيرهاي بحراني بوده و نيازمند مراحل Verification متعددي چه از نظر تابعي و چه از نظر زماني مي‌باشد. در معماري NISC با حذف مجموعه دستورالعمل‌ها و به طبع آن واحد كدگشايي دستورالعمل، كنترلر پردازنده به طور قابل توجهي ساده خواهد شد لذا پردازنده NISC از اين نقطه نظر مي‌تواند بسيار سريع‌تر از ASIPهاي هم‌رده خود عمل‌كرده و نيازمند تلاش كمتري در توسعه و Verification مي‌باشد.

معماري مجموعه دستورالعمل‌ پردازنده‌ها، از CISC تا NISC

فرايند تحول معماري‌پردازنده‌ها از نقطه نظر معماري مجموعه دستورالعمل‌هايشان (ISA) را مي‌توان در سه دسته زير قرار داد:

1. كامپيوتر‌هاي با دستورلعمل‌هاي پيچيده (CISC) كه در دهه 1970 محبوبيت پيدا كردند، از آنجا كه حافظه برنامه Program Memory)‌ PM) نسبت به Datapath بسيار كند مي‌باشد، طراحان اين معماري سعي داشتند با ساختن دستورالعمل‌هاي پيچيده، ميزان بهره‌وري هر دستورالعمل را در داخل Datapath افزايش دهند، طوري كه هر دستورالعمل پيچيده اين پردازنده‌ها براي اجرا به چندين سيكل كلاك زمان نياز داشت. در اين معماري هر دستورالعمل منجر به توليد يك سري كلمات كنترلي Datapath مي‌شد كه، داخل يك حافظه سريع‌تر به نام micro program memory يا mPM ذخيره مي‌شدند. معماري ريزبرنامه‌نويسي شده اين امكان را مي‌داد تا هر نوع دستورالعملي قابل پياده سازي گرديده و اجراي سريع‌تري از روي حافظه mPM داشته باشد. متاسفانه معماري ريزبرنامه‌نويسي شده امكان بهره گيري خط‌لوله كارآمد در داخل Datapath را نميداد.
2. كامپيوترهاي كم دستورالعمل (RISC) كه در اواخر دهه 1980 با حذف دستورالعمل‌هاي پيچيده و حافظه mPM محبوبيت يافت. تمامي دستورالعمل‌ها در اين معماري از نوع دستورالعمل‌هاي ساده‌اي بودند كه به كمك خط‌لوله در يك سيكل كلاك اجرا مي‌شدند، اين امر امكان پياده‌سازي خط‌لوله كارآمد در Datapath را با 4 تا 8 مرحله مي‌داد. حافظه mPM نيز با يك مرحله از خط‌لوله به نام مرحله كدگشايي پس از مرحله واكشي جهت توليد سيگنال‌هاي كنترلي مورد نياز جايگزين شد.


شكل 2 : نسل‌هاي مختلف معماري مجموعه دستورالعمل‌ها

3. كامپيوترهاي بدون دستورالعمل (NISC) كه با حذف كامل دستورالعمل‌ها و مرحله كدگشايي كه در حال حاضر توسط محققين دانشگاه كاليفرنيا- ايرواين ، در حال توسعه مي‌باشند. در اين معماري با حذف مرحله كدگشايي، كلمات كنترلي مستقيما داخل حافظه برنامه ذخيره مي‌شود، از انجا كه اين كلمات دو تا سه برابر بزرگتر از دستورالعمل‌هاي ساده RISC مي‌باشند، حافظه برنامه NISC دو تا سه برابر بزرگتر از حافظه برنامه RISC مي‌باشد. با اين وجود هر كلمه كنترلي NISC مي‌تواند دو تا سه دستورالعمل RISC را شبيه سازي كند از اين رو مي‌توان در يك برنامه خاص اندازه حافظه برنامه NISC را برابر با اندازه حافظه RISC دانست، هچنين معماري مبتني بر NISC كاملا پارامترايز و قابل تغيير مي‌باشد طوري كه ميتوان به كمك آن هر برنامه‌اي را جهت دسترسي به پارامتر‌هاي كليدي طراحي، همانند كارايي بالاتر، مصرف توان و مساحت كمتر بهينه سازي كرد.
معماري NISC

در شكل 3 نمايي از معماري NISC جهت پياده‌سازي يك برنامه بر روي سخت‌افزار اختصاصي ترسيم شده است. اين معماري جهت غلبه بر پيچيدگي طراحي اجزاي سيستم، از توصيف سطح‌ بالاي عملكرد به زبان C بهره مي‌برد، به كمك اين زبان برنامه‌نويسي سطح بالا مي‌توان هر الگوريتمي را با نازل‌ترين سطح پيچيدگي توصيف كرد. در معماري پردازنده NISC، كنترلر به صورت خودكار از روي‌ كامپايل برنامه C براي Datapath توليد مي‌شود، به بيان ديگر کامپايلر NISC با داشتن كد C برنامه و توصيفي از Datapath، كلمات كنترلي مورد نياز جهت توليد سيگنال‌هاي كنترلي Datapath را ايجاد مي‌كند.

در اين معماري روش‌هاي متعددي براي توليد يا اختصاص دادن Datapah بهينه وجود دارد، به عنوان مثال Datapath مي‌تواند يك IP باشد كه از آن استفاده مجددا مي‌شود، يا يك IP باشد كه توسط ابزارهاي سنتز رفتاري توليد شده است يا حتي Datapath ميتواند توسط طراح مشخص گردد. براي توصيف Datapath و نمايش Netlist سيستم‌، محققين دانشگاه كاليفرنيا – ايرواين، شيوه نمايش جديدي موسوم به GNR سرنام Generic Netlist Representation ابداع كرده‌اند.

با وجود اينكه بهره‌وري زبان‌هاي توصيف معماری (ADL (Architecture Description Language در طراحي ASIP ها به اثبات رسيده‌ است و در توصيف معماري و Datapath متداولا از اين زبان‌ها بهره گرفته مي‌شود، در معماري NISC قابليت به خدمت گرفتن آنها وجود ندارد چرا كه سيستم‌هاي طراحي شده مبتني بر زبان‌هاي توصيف معماري، همواره فرض مي‌كنند كه پردازنده داراي يك مجموعه دستورالعمل از پيش تعريف شده مي‌باشد.

شكل 3: نمايي از معماري NISC

پس از توصيف Datapath با GNR، و بهينه سازي اوليه برنامه C، اين دو به كامپايلر NISC داده شده تا كامپايلر بر اساس ويژگي‌هاي Datapath و برنامه C بخش كنترلي مورد نظر پردازنده را توليد نمايد، سپس كد RTL پردازنده به زبان توصيف سخت‌افزاري Verilog‌ توليد شده و در مرحله آخر براي شبيه‌سازي يا سنتز بهينه سازي مي‌شود تا بتوان آن‌را بر روي FPGA يا ASIC پياده سازي كرده در مدار به كار برد.

طراحان معماري NISC قابليت بهينه‌سازي و پالايش Datapath و كد برنامه را نيز براي معماري خود در نظر گرفته‌اند از اين رو پس از به اتمام رسيدن فرايند طراحي و توليد RTL مربوطه، امكان اجراي مجدد عمليات طراحي با اعمال تغييرات در كد برنامه و همچنين Datapath وجود دارد، لذا با اعمال بهينه‌سازي‌هاي بعد از طراحي اوليه، ميتوان پردازنده را به گونه‌اي سازماندهي كرد كه كارايي غيرقابل رقابتي نسبت به راه‌كارهاي ديگر پياده سازي اجزاي سيستم ارائه كند.

مزاياي تكنولوژي NISC
  • · معماري كامپيوتر بدون دستورالعمل، بهره‌وري بالايي در توليد توصيف RTL‌ سيستم به ارمغان مي‌آورد و طراح به واسطه يك زبان سطح بالا مي‌تواند سيستم را طراحي كرده و به كمك اين معماري سخت‌افزار توليد شده براي آنرا شبيه سازي يا سنتز كند.
  • · اين معماري مي‌تواند كيفيت‌ طراحي سيستم‌ها را ضمن حفظ بهره‌وري بالا افزايش دهد، چرا كه با حذف محدوديت‌هاي موجود در طراحي‌هاي متداول و حذف پيچيدگي‌هاي طراحي كنترلر و مجموعه دستورالعمل، مي‌توان بهينه‌سازي‌هاي قابل قبولي را به كمك اين معماري از نظر كارايي، مصرف توان و مساحت انجام داد.
  • · با پياده‌سازي اجزاي سيستم به كمك اين تكنولوژي، تفاوت‌ در پياده سازي سخت‌افزاري يا نرم‌افزاري ناپديد مي‌شود، جهت پياده سازي نرم‌افزاري كلمات كنترلي در حافظه سيستم قرار مي‌گيرند و در پياده سازي سخت‌افزاري سيگنال‌هاي كنترلي به كمك ROM يا مدارمنطقي توليد مي‌شوند.
  • · از آنجا كه Datapath مي‌تواند شامل خط‌لوله با هر تعداد مرحله باشد و هر ميزان موازي‌سازي در آن امكان پذير است، از نقطه نظر كارايي، غلبه بر طرحي‌هاي بهينه مبتني بر اين معماري دشوار مي‌باشد.
  • · از آنجا كه اين معماري فاقد دستورالعمل مي‌باشد، كدهاي C بدون هيچ واسطه‌اي به صورت مستقيم بر روي سخت‌افزار اختصاصي اجرا مي‌شوند.
  • · با توجه به اينكه معماري NISC قابليت پياده‌سازي هر تابع و محاسباتي را دارد، تنها به يك كامپايلر جهت توليد كلمات كنترلي مطلوب، نياز دارد از اين رو كامپايل برنامه فقط يك بار آن هم در فاز طراحي صورت گرفته و برخلاف راه‌كارهاي پياده سازي نرم‌افزاري، در زمان اجرا نيازي به كامپايل كردن برنامه نيست.

كاربردهاي تكنولوژي NISC

معماري كامپيوتر بدون دستورالعمل كاربردهاي بسيار گسترده‌اي دارد كه مهم‌ترين آن‌ها عبارتند از:

C-to-RTL synthesis:سنتز كدهاي سطح بالاي C به توصيف سخت‌افزاري RTL زبان Verilog يكي از مهمترين كاربردهاي اين تكنولوژي مي‌باشد. اين تكنولوژي قابليت توليد خودكار توصيف GNR از Datapath مورد نياز براي برنامه C را دارد. از اين رو مي‌توان از آن به عنوان يك راه‌كار نوين در توليد Datapath و كنترلر يك برنامه C كه مي‌تواند بيانگر عملگر يك IP يا يكي از اجزاي سيستم باشد ياد كرد.

طراحي پردازنده‌هاي Embedded: به كمك اين معماري مي‌توان پردازنده‌هاي خاص منظوره‌اي را براي هر برنامه‌اي طراحي نمود كه محدوديت پردازنده‌هاي ASIP را نداشته و بهره‌وري بسيار بهتري نسبت به پياده‌سازي كاملا سخت‌افزاري برنامه مدنظر دارد. در عين حال مي‌توان بهينه‌سازي‌هاي متعددي در Datapath‌ و خط‌لوله اين نوع پردازنده‌ها اعمال كرد طوري كه كارايي و مصرف توان آن غيرقابل رقابت با سبك‌هاي ديگر پياده سازي گردد.

شناسايي فضاي طراحي: به كمك اين تكنولوژي مي‌توان هر نوع سناريوي What-If را پس از طراحي جهت ارزيابي كارايي آن به كار برد. مي‌توان در كد C يا ساختار معماري بهينه‌سازي‌هاي محتمل را انجام داده و نتايج را پس از آن ارزيابي كرد، تاثير اضافه‌كردن يا حذف كردن يكي از اجزاي سيستم را مشاهده كرده و در بهينه سازي هرچه بيشتر پارامترهاي كليدي طراحي اقدام نمود.

ايده‌هاي مطرح شده در معماري NISC هرچند بسيار ارزشمند هستند، اما تا زماني كه كامپايلر و ابزارهاي مطلوب جهت پياده‌سازي آن‌ها فراهم نگردد، اين تكنولوژي كاربرد چنداني پيدا نخواهد كرد، به لطف زحمات و تلاش‌هاي دكتر رشادي و خانم دكتر گرجي‌آرا در دانشگاه كاليفرنيا - ايرواين؛ هم اكنون هم كامپايلر مربوطه در دسترس عموم مي‌باشد و هم كليه ابزارهاي مورد نياز براي سنتز و توليد يك پردازنده اختصاصي.

براي اجراي برنامه روي Datapath داده شده، كامپايلر بايد هر دستورالعمل برنامه C را با ملاحظه وابستگي عمليات، به مجموعه‌اي از كلمات كنترلي تبديل كند تا جهت كنترل Datapath در هر سيكل كلاك استفاده شود. در شكل 4 نمايي از مراحل كاري اين كامپايلر نشان داده شده است.

شكل 4 نمايي از مراحل كامپايلر NISC

كامپايلر در ابتدا برنامه C را به همراه توصيف GNR معماري Datapath گرفته و در نهايت كلمات كنترلي مطلوب را توليد مي‌كند، اين كلمات بسته به تصميم طراح مي‌توانند داخل حافظه كنترلي ذخيره شوند و سيگنال‌هاي كنترلي با خوانده شدن كلمات كنترلي از داخل حافظه مذكور توليد شوند يا اينكه به كمك حافظه ROM و مدارهاي منطقي، كنترلر مربوطه به صورت سخت‌افزاري طراحي و پياده سازي شود.

همچنين Toolset ‌توانايي توليد خودكار Datapath را نيز دارا مي‌باشد، به طوري كه تنها با دادن برنامه C به آن مي‌تواند اجزا مورد نياز براي اجراي آن را پيش‌بيني كرده و Datapath مطلوب را به بيان GNR توليد كند.

يكي ديگر از ويژگي‌هاي مطرح اين Toolset‌ قابليت توليد خودكار كدهاي RTL توصيف كننده طراحي به زبان Verilog قابل سنتز مي‌باشد، RTL قابل سنتز توليد شده در دو فرم عمومي و فرم ويژه Xilinx توليد مي‌شود. همچنين براي شبيه سازي طراحي نيز با توجه به اينكه شبيه سازي كدهاي قابل سنتز اندكي زمان‌بر مي‌باشد، Toolset طراحي شده قابليت توليد كدهاي RTL ويژه شبيه‌سازي را نيز دارا مي‌باشد.

اين Toolset كه بر روي پلتفورم Windows قابل اجرا مي‌باشد در وب‌سايت تكنولوژي NISC در دسترس همگان قرار گرفته است، همچنين نسخه تحت وب اين Toolset نيز توسط دكتر رشادي و خانم دكتر گرجي‌آرا توسعه داده شده و در وب‌سايت مذكور قرار گرفته شده است، به طوري كه هم اكنون مي‌توان بدون نياز به نصب هيچ برنامه‌اي به صورت مستقل از سيستم‌عامل ، از آن استفاده كرد.

منابع

1. NISC Technology home page, www.ics.uci.edu/~nisc

2. Daniel D. Gajski, “NISC: The Ultimate Reconfigurable Component”, CECS Technical Report TR 03-28

3.