مروری بر پردازندههای Tilera و معماری TILE
دنیای پردازش دیجیتال سالهاست که در انحصار غولهای جهان مثل اینتل و آرم قرار گرفته است. این دو شرکت با طراحی معماریهای اختصاصی خود در بسیاری از محصولات وابسته به پردازش دیجیتال مثل رایانههای شخصی، محصولات قابل حمل، سرورها و شبکهها نفوذ کردهاند. اما در کنار این معماریهای عظیم، معماریهای دیگری همانند تایل عرضه شد که علاوه بر قابلیت برنامهپذیری بالا، توان مصرفی بهینه و قدرت پردازشی بالایی را ارائه کرده و حرارت تولیدی تراشههای مبتنی بر آن نیز بسیار کم است. برای آشنایی بیشتر با این معماری نوآور و بهینه تا انتهای مقاله همراه شوید.
در سال 1997 میلادی در دانشگاه MIT ایالت ماساچوست آمریکا، پروژهای با سرمایهگذاری دارپا کلید خورد که قصد داشت با ایجاد شبکهای پیشرفته، هستههای پردازشی که در آن زمان مورد استفاده قرار میگرفتند را به هم مرتبط سازد. دهها میلیون دلار هزینه شد تا اولین چندهستهای با معماری جدید TILE تولید شده و برای آن کامپایلر و رابط ویژهای توسعه داده شود.
چند سال بعد، سرپرست این تیم پژوهشی، آنانت آگاروال به همراه اعضای تیم، کمپانی تایلرا را تأسیس نمودند. آگاروال در کنار راب چاندرا، دِوِش گَرگ، نریمان یوسفی و... در سال 2007 یک پردازنده 64 هستهای تجاری به نام TILE64 را روانه بازار نمود. این کمپانی با عرضه همین محصول، نظر بسیاری را به سمت خود معطوف کرد. کمپانیهای بزرگی درخواست راهکارهایی مبتنی بر معماری تایل را ارائه کردند و تایلرا در پاسخ به آنها محصولاتی مبتنی بر نیازشان را توسعه داد. هماکنون مهمترین و معروفترین محصولات این کمپانی همان پردازندههای مبتنی بر معماری تایل است که روز به روز توسعه یافته و ویژگیهای جدیدی به آنها اضافه میشود. در ادامه به معرفی برخی ویژگیها، کاربردها و روند توسعه این پردازندهها میپردازیم؛ اما پیش از آن قصد داریم نگاهی اجمالی بر معماری تایل داشته باشیم.
معماری TILE
تایل یک طراحی چندهستهای است که در آن هستههای پردازشی از طریق یک معماری شبکه نوین به نام iMesh با یکدیگر مرتبط میشوند. هدف این نیست که بوردی با استفادههای ویژه تولید شود؛ بلکه قرار است معماری تایل در کاربردهای عمومی و همهمنظوره مورد استفاده قرار گیرد.
پردازندههای تایل از معماری اختصاصی تایلرا بهره میبرند که از یک آرایه دوبعدی از المانهای پردازشی به نام Tile استفاده میکند. تایلها از طریق یک شبکه مش دوبعدی خاصی به هم متصلند که باعث میشود مقیاسپذیری پردازنده بالا رفته و تأخیرهای ارتباطی در شبکه به شدت کاهش یابد. این پردازنده چندهستهای قابل برنامهریزی و به شکل یکپارچه با حافظه خارجی و ورودی و خروجیهای روی تراشه کار میکند.
هر تایل یک سیستم کامپیوتری کامل و مستقل است که میتواند یک سیستمعامل مثل لینوکس را اجرا کند. در هر تایل یک موتور پردازشی 32 بیتی صحیح وجود دارد که از معماری دستورات Very Long Instruction Word یا VLIW سه جهته با ثبات شمارنده برنامه (PC)، کش و زیرسیستمهای DMA ویژه خود بهرهمند است. هر تایل میتواند در هر سیکل کلاک، سه عملیات را انجام دهد.
هر معماری چندهستهای باید بتواند یک تعادل نسبی بین پیچیدگی (و نتیجتاً ابعاد) هستهها و تعداد آنها ایجاد کند. پردازنده چندهستهای که از هستههای کوچک استفاده کند، بسیاری از ویژگیهای کاربردی را نداشته و در نتیجه برنامهپذیری آن دشوارتر و از طریق زبانهای سطح پایینتری صورت میپذیرد. از طرفی اگر پیچیدگی هستهها زیاد شود نیز ابعاد پردازنده، مصرف توان و حرارت تولیدی هستهها نیز بیشتر میگردد. تایلرا توانسته پردازندههایی تولید کند که علاوه بر قابلیت برنامهپذیری بالا (میتوان با زبان C یا ++C برای این پردازنده برنامهنویسی کرد) توان مصرفی بهینه و قدرت پردازشی بالایی را ارائه کرده و حرارت تولیدی آن نیز بسیار کم است.
شاید مهمترین ویژگی پردازندههای تایل در سیستم ارتباط داخلی بین هستههای که با نام تجاری iMesh شناخته میشود، باشد. تایلرا به جای استفاده از روشهای سنتی یا حتی مدرنتر چون NoC، از شبکهای متفاوت و منحصر به فرد استفاده کرده که از طریق آن هستههای پردازشی یا همان تایلها را از این طریق به یکدیگر متصل نموده است.
از آنجا که تایلها همگی همگن بوده و شبکه ارتباطی iMesh مبتنی بر ارتباطات نقطه به نقطه با مسیر کوتاه است، مصرف توان در این پردازندهها به شکل قابل توجهی نسبت به بسیاری از معماریهای مرسوم پایینتر است.
هر تایل دارای یک موتور پردازشی، یک موتور کش و یک موتور سوئیچ است که عناصر را به شکلی ترکیب میکنند تا در نهایت یک موتور محاسباتی قدرتمند با ویژگیهای مناسب ایجاد شود.
موتور کش شامل بافرهای ارتباطی یک تایل، کشها و جداکنندههای کشها است. در معماری TILEPro هر تایل دارای یک کش سطح یک 16 کیلوبایتی برای دستورات، یک کش سطح یک 8 کیلوبایتی برای دادهها و یک کش سطح دو 64 کیلوبایتی عمومی است. بنابراین در پردازنده TILEPro64 با 64 تایل، در مجموع 5.5 مگابایت کش روی تراشه وجود دارد. حجم کش در تراشههای TILEPro36 با 36 تایل نیز به 3.2 مگابایت میرسد.
موتور سوئیچ از شش شبکه مستقل تشکیل شده است. دادههای عددی از طریق شبکه استاتیک (STN) در بین تایلهای مختلف با تأخیر بسیار کمی جابجا میشوند. پنج شبکه دینامیک، یعنی UDN، TDN، MDN، CDN و IDN با مسیریابی بستههای داده در بین تایلها، کشهای تایلها، حافظه خارجی و کنترلرهای ورودی/خروجی به موتور سوئیچ کمک میکنند. از بین این پنج شبکه دینامیک، تنها UDN یا شبکه دینامیک کاربر در دسترس کاربر قرار میگیرد و بقیه این شبکه های دینامیکی برای خطاهای کش از حافظه خارجی و سایر تایلها و البته توابع مختلف سیستمی مورد استفاده قرار میگیرند.
برای آن که توان مصرفی پردازنده تایل بهینه باشد، در این معماری از یک نوع کلاک گیتینگ گسترده و انعطافپذیر استفاده شده است. در معماری تایل، هستهها یا تایلهایی که از آنها استفاده نمیشود وارد حالت بیکار (IDLE) میگردند تا انرژی به بهینهترین شکل ممکن مصرف شود و تا زمانی که بسته دادهای به آنها وارد نشود، در این حالت میمانند.
تا به امروز هیچیک از پردازندههای تایل از اعداد ممیز شناور در معماری خود پشتیبانی نکردهاند؛ اما بر طبق وعدههای این کمپانی، به زودی این ویژگی نیز به محصولات آتی آن اضافه خواهد شد. البته این بدان معنا نیست که این پردازنده امکان پردازش این نوع اعداد را ندارد؛ ولی لازم است بدانید که برای محاسبات ممیز شناور، از روشهای نرمافزاری بهره میبرند.
در عمل معمولاً در کاربردهای مختلف در سطح سیستمعامل یا اپلیکیشن، از یک تایل استفاده نمیشود و بلوکهایی از تایلها به یک اپلیکیشن و سیستمعامل اختصاص داده میشود. ذات این پردازنده ManyCore، مبتنی بر پردازش موازی است و در صورتی که توسعهدهنده در هنگام کار با آن از اصول برنامه نویسی موازی پیروی نکند، نمیتواند از توان پردازشی بسیار بالا و توان مصرفی کم آن بیشترین بهره را ببرد.در جدول زیر نیز میتوانید ابعاد پکیج پردازندهها را مقایسه کنید.
در ذیل نیز میتوانید جدول مربوط به مقایسه توان مصرفی متوسط چندین مدل پردازنده تایلرا و پردازنده Core i7 اینتل را با هم مقایسه کنید.
همانطور که گفته شد، در این پردازندهها میتوان با استفاده از زبان سطح بالای ++C/C برنامهنویسی کرد. اما رعایت اصول پردازش موازی بسیار مهم است. همچون GPGPUها، در این پردازندهها میزان بازده به طور مستقیم به شیوه برنامهنویسی موازی توسعهدهنده مرتبط است.
نمودار زیر نشان میدهد که معماریهای اینتل و AMD چگونه اسیر نوعی محدودیت در مقیاسپذیری و افزایش هزینههای پردازشی شدهاند؛ ولی تایلرا با اتکا به پردازش موازی توانسته بدون هزینههای گزاف قدرت پردازشی بیشتری را ارائه دهد.
بازارهای هدف و مشتریان تایلرا
پردازندههای تایلرا به دلیل این که به راحتی قابل برنامهریزی بوده و قدرت پردازشی فوقالعاده و مصرف توان کمی را ارائه میکنند، در بازار پردازندههای همهمنظوره، طرفداران خود را دارند؛ چرا که بسیاری از مدلهای تایل میتوانند چندین سیستمعامل و اپلیکیشن را به صورت همزمان اجرا کنند.
با این حال میتوان کاربردهای ویژه مهمی که دستاویز این پردازنده بسیار قدرتمند میشوند را به چند بخش تقسیم نمود. یکی از طرفداران تایلرا کمپانی های فعال در زمینه ماشینهای شبکه هستند که برای مانیتورینگ، فایروالها و شبکههای خصوصی مجازی از آن استفاده میکنند. از دیگر کاربردهای مهم می توان به تولید محتوای مالتیمدیا (همچون استریمینگ ویدئو یا کنفرانس ویدئویی)، محاسبات ابری (به خصوص در سرورها) و شبکهها و ارتباطات بیسیم اشاره کرد. مثلا یکی از مشتریان اصلی کمپانی تایلرا، ناسا است که برای ارتباطات بیسیم خود از این پردازندهها استفاده میکند.
یکی دیگر از کاربردهای پررونق تایل در بازار سرورها است. با استفاده از این پردازندهها میتوانید نزدیک به 10,000 هسته پردازشی را در یک رک 8 کیلوواتی قرار دهید که بسیار به صرفه است. به عنوان مثال سرور Quanta S2Q از هشت تراشه TILEPro64 (یعنی 512 هسته) تنها با توان مصرفی کل 400 وات استفاده نموده است.
جمعبندی و آینده تایلرا
پردازش موازی شاخه ای از علم کامپیوتر است که هر روز توجه بیشتری را به خود جلب میکند. چالشهایی که در افزایش قدرت پردازشی معماریهای قدیمیتر چون x86 شاهدشان هستیم میتوانند از طریق اصول پردازش موازی حل شوند. پردازندههای گرافیکی واحدهای محاسباتی هستند که میتوانند در اپلیکیشنهایی که قابلیت موازیسازی بالایی دارند مورد استفاده قرار گیرند تا شاهد بهبود چشمگیر عملکرد آنها باشیم. اما پردازندههای گرافیکی در نهایت به صورت اختصاصی برای کاربردهای گرافیکی طراحی شدهاند و حتی در کاربردهای محاسباتی نیز در بسیاری از مواقع به پردازندهها نیاز پیدا میکنند.
تایلرا میتواند پاسخی به این نیاز باشد؛ چرا که علاوه بر قدرت پردازشی بالا و توان مصرفی کم، مقیاسپذیری یا Scalablity زیادی داشته و از زبان برنامهنویسی سطح بالای استاندارد ++C/C بهره میگیرد.
مقامات این کمپانی اعلام کردهاند که قصد رقابت با اینتل و AMD و کمپانیهای بزرگ سازنده پردازنده را ندارند و به همین دلیل محصولات خود را به صورت بوردها و ماژولهایی ارائه میدهند که میتوانند بر روی کامپیوترهای عادی نصب شده و مورد استفاده قرار گیرند. معلوم نیست که آینده این پردازنده به چه سمتی خواهد رفت؛ اما فعلاً به همین کاربردهای کم ولی مهم بسنده کرده است.
ادامه مطلب http://www.zoomit.ir/articles/hardware/cpu/10870-tilera-processor-tile-architecture