اکنون میدانیم اصلیترین قابلیت کنسولهای نسل بعدی، استفاده از SSD بهجای هارد دیسکهای مکانیکی است. چگونه این تغییر نهتنها تجربهی بازیهای کنسولی، بلکه حتی کل صنعت بازیهای ویدئویی را متحول خواهد کرد؟
نسل جدید کنسولهای بازی قرار است در پایان امسال به بازار عرضه شوند و چرخهی هیجانات ناشی از انتظار برای رسیدن ایکسباکس سری ایکس و پلیاستیشن 5 برای بیش از یک سال در جریان بوده است. مشخصات فنی واقعی (برخلاف شایعات صرف) با کُندی بیشتری اعلام شدهاند و دربارهی کنسولهای جدید درمقایسهبا اطلاعاتمان از پلتفرمهای پیسی و اجزای آن در زمان بعد از معرفی و قبل از موجود شدن در بازار، هنوزهم اطلاعات بسیار کمتری میدانیم. درواقع، آمارهای بهرهوری و اطلاعات عمومی معماری از مایکروسافت و سونی را در دست داریم؛ اما نه آنچه بهعنوان مشخصات کامل سیستم شناخته میشود.
نسل جدید کنسولها افزایش بزرگی در تواناییهای CPU و GPU به ارمغان خواهند آورد؛ اما ما با هر نسل جدید چنین بهبودی داریم و جای تعجب نیست وقتی تراشههای کنسولی هم همان بهروزرسانیهای ریزمعماری پردازندهها و تراشههای گرافیکی AMD را که از آنها مشتق شدهاند بهدست میآورند. آنچه مخصوص این نسل محسوب میشود، تغییرات ذخیرهساز است: کنسولها به پیروی از بازار پیسی، از هارددرایوهای مکانیکی به ذخیرهسازهای حالت جامد یا همان SSDها روی آوردهاند؛ اما یک قدم از بازار پیسی هم فراتر رفتهاند تا بیشترین بهرهی ممکن را از ذخیرهسازهای حالت جامد ببرند.
بخشهای داخلی ایکسباکس سری ایکس
درواقع، SSDها انقلابی در تجارت پیسی بودند که بهبودهای عظیمی در پاسخگویی کلی سیستم ایجاد کردند. بازیها بیشتر بهشکل نصب سریعتر و بارگذاری مراحل سریعتر از آن بهرهمند شدند؛ اما ذخیرهساز سریع به کاهش واماندگیهای سیستمی (Stall) و وقفه (Stutter) موقع نیاز بازی به بارگذاری دادهها حین اجرا هم کمک شایانی کرد. در سالهای اخیر، SSDهای NVMe سرعتهایی فراهم کردند که روی کاغذ، چندینبرابر سریعتر از SSDهای SATA بود؛ اما برای گیمرها فواید آن در بهترین حالت آنچنان محسوس نبود.
دانش متعارف برآورد میکند که دو دلیل اصلی برای این ناکارآمدی وجود دارد: ۱. تقریبا تمام بازیها و موتورهای بازی هنوزهم برای اجراییبودن از هارددرایوها طراحی میشوند؛ ۲. SSDهای SATA هنوز آنقدر سریع هستند که گلوگاه را بهجای دیگری از سیستم منتقل کنند که اغلب در فرم فشردهسازی دادهها است. قبل از اینکه بازیها بهخوبی بتوانند از مزایای بهرهوری NVMe برخوردار شوند، چیزی بهجز SSDها هست که باید ارتقای سرعت پیدا کند.
مایکروسافت و سونی این مشکلات را در کنسولهای جدیدشان آدرسدهی کردهاند. بازیسازان بهزودی آزاد خواهند بود روی هر دو پلتفرم کنسول و پیسی کاربرانشان را دارای ذخیرهساز سریع در نظر بگیرند. بهعلاوه، نسل جدید کنسولها به امکانات سختافزاری اضافهای برای رفع گلوگاهها مجهز میشوند که حتی اگر پیسیهای گیمینگ کاملا ردهمتوسطی مجهز به SSDهای پیشرفته بودند، از وجود آنها استفاده میشد.
بااینحال، هر دو شرکت به اغراقگویی یا سادهانگاری مفرط در رویکردهایشان برای نمایش قابلیتهای جدید کنسولهای بعدی خود، مخصوصا درزمینهی SSDهای جدید متهم هستند. ازآنجاکه این کنسولها هنوز پلتفرمهای بستهای هستند که حتی هنوز به بازار هم عرضه نشدهاند، برخی از جزئیات تکنیکی جالب آنها هنوز مخفی نگه داشته شده است.
منبع اصلی اطلاعات فنی رسمی دربارهی PS5 و مخصوصا SSD آن، طراح ارشد، مارک سرنی است. او ماه مارس در ویدئویی یکساعته PS5 را ازنظر تکنیکی معرفی کرد و حدودا یکسوم آن را به تمرکز روی ذخیرهساز اختصاص داد. سونی بهطورغیررسمیتر اختراعات متعددی ثبت کرده که بهنظر به PS5 مرتبط بوده و شامل موضوعی میشده است که با فناوری ذخیرهساز تأییدشدهی سونی بهخوبی همخوانی دارد. آن ثبت اختراع شامل تعدادی ایده است که سونی در توسعهی PS5 پیادهسازی و آزمایش کرده و بسیاری از آنها احتمالا در طراحی نهایی نیز پیادهسازی شده است.
مایکروسافت هم کمابیش رویکرد قطرهچکانی را برای رونمایی جزئیات فنی در پستهای وبلاگ پراکنده و برخی گفتوگوها در پیش گرفته است؛ مخصوصا گفتوگویش با دیجیتال فاندری که آنها هم بهخوبی PS5 را پوشش دادند. آنها برندهای بسیاری از فناوریهای مرتبط با ذخیرهسازشان را معرفی کردهاند (مثل معماری Xbox Velocity)؛ اما در بخشهای بسیاری، هنوز اطلاعی از قابلیت مدنظر بهجز نامش نداریم.
گذشته از منابع رسمی، برخی اطلاعات افشاشده و کامنتها و شایعات متفاوتی هم داریم که از شرکای تجاری و منابع دیگر صنعت نشئت گرفته است. اینها قطعا به افزایش میزان هیجان کمک میکنند؛ اما دربارهی جزئیات فنی و مخصوصا SSD در کنسولها کمک ناچیزی کردهاند. شکافهای ایجادشده ما را با نیاز به تجزیهوتحلیل آنچه برای کنسولهای آینده پیادهسازیشدنی و امکانپذیر خواهد بود، تنها میگذارد.
مایکروسافت و سونی هریک SSD اختصاصی از نوع NVMe را برای کنسولهایشان استفاده میکنند؛ البته با تعریف متفاوتی از اختصاصی. راهکار سونی دوبرابر بهرهوری بیشتر از راهکار مایکروسافت هدفگذاری شده است و با وجود ظرفیت کمتر، قطعا هزینهی بیشتری میبرد. SSD ساخت سونی بهرهوری مشابه با SSDهای پرچمدار NVMe با استاندارد PCIe 4.0 ارائه میکند که انتظار داریم در بازار خردهفروشی در پایان سال موجود شود. درمقابل، SSD مایکروسافت بیشتر با مدلهای ردهپایین NVMe مقایسهشدنی است. هر دو درمقایسهبا هارددرایوهای مکانیکی و حتی SSDهای SATA قدم بزرگ رو به جلویی محسوب میشوند.
مشخصات تأییدشدهی اس اس دی های کنسولی | ||
کنسول | پلیاستیشن 5 | ایکسباکس سری ایکس |
ظرفیت | ۸۲۵ گیگابایت | یک ترابایت |
سرعت (خواندن ترتیبی) | ۵/۵ گیگابایتبرثانیه | ۲/۴ گیگابایتبرثانیه |
رابط میزبان | PCIe 4.0 x4 NVMe | NVMe |
تعداد کانالهای NAND | ۱۲ | ؟ |
توان | ؟ | ۳/۸ |
مهمترین و تأثیرگذارترین معیار بهرهوری در SSDهای کنسولی، سرعت خواندن ترتیبی در آنها است. سرعت نوشتن SSDها تقریبا در بهرهوری بازیهای ویدئویی بیتأثیر است و حتی زمانیکه بازیها عملیات خواندن تصادفی را انجام میدهند، معمولا برای تکههای دادهای بزرگتر از بلاکهای چهارکیلوبایتی خواهد بود که معیار بهرهوری تصادفی SSDها است. سرعت خواندن ۲/۴ گیگابایتبرثانیه SSD مایکروسافت بین ۱۰ تا ۲۰ برابر سریعتر از هارددرایو مکانیکی است؛ اما درعینحال درمقایسهبا استاندارد کنونی SSDهای پرچمدار مصرفکننده کندتر بهنظر میرسد که میتوانند گذرگاه PCIe 3.0 x4 را اشباع کنند و حداقل به سرعت خواندن ۳/۵ گیگابایتبرثانیه برسند.
سرعت خواندن ۵/۵ گیگابایتبرثانیه سونی هم بهشکل درخورتوجهی سریعتر از SSDهای موجود PCIe 4.0 براساس کنترلر Phison E16 است؛ اما هر سازندهای که درزمینهی SSDهای پرچمدار مصرفکننده رقابت میکند، راهکار پیشرفتهتری در راه عرضه به بازار دارد. با این اوصاف، زمانیکه PS5 در پایان سال عرضه شود، بهرهوری خواندن SSD آن بیرقیب نخواهد بود و با SSDهای پرچمدار دیگر همتراز خواهد شد. سونی عنوان کرده SSD آنها از کنترلر اختصاصی دارای رابط ۱۲ کاناله متصل به حافظههای NAND-Flash استفاده میکند. بهنظر میرسد این مهمترین شیوهای است که طراحی آنها را از SSDهای مرسوم مصرفکننده متمایز میکند. SSDهای پرچمدار موجود معمولا از کنترلرهای ۸ کاناله و SSDهای ردهپایین از کنترلرهای ۴ کاناله استفاده میکنند. کانالهای تعداد بیشتر اغلب برای SSDهای سروری متداول هستند، مخصوصا آنهایی که نیاز دارند ظرفیتهای بسیاری را پشتیبانی کنند. کنترلرهای ۱۶ کاناله برای این مدلها معمول هستند و طراحیهای ۱۲ یا ۱۸ کاناله هم ناشناخته نیستند.
استفادهی سونی از تعداد کانالهای بیشتر درمقایسهبا هر SSD ردهی مصرفکنندهی اخیر به این معنی است که کنترلر SSD آنها بهشکل غیرمعمولی بزرگ و گرانقیمت خواهد بود؛ اما نیازی هم به بهرهوری آنچنان زیاد در هر کانال برای رسیدن به سرعت ۵/۵ گیگابایتبرثانیه نخواهند داشت. آنها میتوانند هر مدلی از NAND-Flash با ساختار ۶۴ لایه یا مدلهای جدیدتر TLC را استفاده کنند و بهرهوری کافی بهدست آورند؛ درحالیکه SSDهای ردهی مصرفکننده برای ارائهی این سطح از بهرهوری یا بیشتر از آن با استفاده از کنترلرهای ۸ کاناله، باید با حافظههای جدیدتر و سریعتر NAND-Fash همراه شوند.
همچنین، استفاده از کنترلر ۱۲ کاناله به مجموع ظرفیتهای نامتعارف هم منجر میشود. SSD کنسولی درمقایسهبا SSD معمولی به میزان بیشتری از Overprovisioning (قابلیتی برای افزایش طول عمر SSD) نیاز ندارد؛ بنابراین، ۵۰ درصد افزایش در تعداد کانالها باید به ۵۰ درصد ظرفیت قابلاستفادهی بیشتر تعبیر شود. پلیاستیشن 5 با ۸۲۵ گیگابایت فضای SSD عرضه خواهد شد؛ یعنی باید هریک از ۱۲ کانال را مجهز به ۶۴ گیگابایت از حافظهی NAND ببینیم که یا بهشکل تراشهی ۵۱۲ گیگابیت (۶۴ گیگابایت) بهازای هر کانال یا بهشکل دو تراشهی ۲۵۶ گیگابیتی (۳۲ گیگابایتی) در هر کانال خواهد بود. این یعنی ظرفیت خام خالص برابر با ۷۶۸ گیگابایت (با معیار هر گیگابایت برابر با ۱،۰۲۴ مگابایت) یا حدود ۸۲۴/۶ گیگابایت (با معیار هر گیگابایت برابر با ۱،۰۰۰ مگابایت) خواهد بود.
سازنده ظرفیت قابلاستفاده بعد از احتساب فضای رزروشدهی درایو را احتمالا بهعنوان درایو ۷۵۰ گیگابایتی نامگذاری خواهد کرد؛ بنابراین، ۸۲۵ گیگابایت اعلامشدهی سونی درحدود ۱۰ درصد بیشتر از حد معمولی صنعت ذخیرهسازی است. این موضوع ممکن است برخی حقوقدانان را به واکنش وادار کند. بد نیست بگوییم منطقی نیست سونی فقط به اتکای خود کنترلر SSD سریع خود را ساخته باشد، همانگونه که خودشان بهتنهایی نمیتوانند CPU یا GPU را طراحی کنند. سونی باید با سازندهی معتبر کنترلر SSD موجود شراکت کند که هنوز نمیدانیم آن شریک کدام است.
SSD مایکروسافت بهرهوری را هرگز بیشتر از پیسیهای جدید معمولی ارتقا نخواهد داد که اکنون سازندگانشان به فراتر از مدلهای SATA مهاجرت کردهاند؛ اما یک ترابایت کامل در پیسی قیمتی مشابه کنسولها دارد که هنوز برگبرندهی بزرگی برای مشتریان خواهد بود. منابع مختلف برآورند میکنند مایکروسافت از کنترلر SSD موجود در بازار از یکی از مدلهای معمول (شاید کنترلر Phison E19T) استفاده میکند و خود درایو را هم سازندهی عمدهی SSD تولید خواهد کرد. هرچند آنها هنوزهم میتوانند ادعای ابعاد اختصاصی یا احتمالا firmware اختصاصی خودشان را داشته باشند. باتوجهبه سرعتهای هدفگذاریشده، بهنظر میرسد سونی به استفاده از تراشههای TLC متعهد باشد؛ اما مایکروسافت گزینهای برای استفاده از تراشههای QLC هم دراختیار دارد.
بدون داشتن مشخصات مربوط به خواندن یا نوشتن تصادفی، نمیتوانیم دربارهی امکان استفادهی SSD هریک از دو کنسول از کنترلر بدون حافظهی DRAM قضاوت کنیم. گنجاندن حافظهی کش با اندازهی کامل برای جداول لایهی ترجمهی فلش (flash translation layer یا به اختصار FTL) در SSD قبل از همه به دو شیوه در بهبود بهرهوری کمک میکند: اولی سرعت نوشتن پایدار بهتر هنگامیکه درایو آنقدر پر شده باشد که به کار پسزمینهی زیادی برای جابهجایی دادهها نیاز داشته باشد و دومی سرعت دسترسی تصادفی بهتر وقتیکه دادهها در طول کل درایو خوانده میشوند.
البته هیچیک از این دو در الگوی کارکرد کنسولها صدق نمیکند: الگوی بهشدت سنگین خواندنیمحور که فقط به یک دیتاست بازی در هر زمان دسترسی پیدا میکند. حتی اگر اندازهی نصب بازی در محدودهی ۱۰۰ تا ۲۰۰ گیگابایت هم باشد، میزان دادهای که در هر لحظه بازی استفاده میکند، بیشتر از چنددَه گیگابایت نخواهد بود و SSDهای بدون DRAM و با ظرفیت درخورتوجهی از SRAM تعبیهشده در داخل کنترلر این میزان را بهسادگی میتوانند مهار کنند. استفادهنکردن از DRAM در SSD مایکروسافت بهنظر خیلی محتمل خواهد بود؛ اما دربارهی SSD سونی با اینکه عجیب خواهد بود، اگر کنترلر ۱۲ کانالهی بدون DRAM را ببینیم، این گزینه برای سونی هم تصورپذیر خواهد بود و هزینهی تعبیهی کانالهای تعداد بالا را تا حدودی جبران خواهد کرد.
مایکروسافت و سونی هر دو قابلیت توسعه را برای ذخیرهساز NVMe در کنسولهای در راه خود فراهم کردهاند. راهکار مایکروسافت بستهبندی مجدد SSD داخلی در ابعاد حافظهی جابهجاشدنی اختصاصی بهشکل کارتهای حافظهی قدیمی در زمانی است که ظرفیتها برحسب مگابایت بهجای گیگابایت اندازهگیری میشد. ازآنجاکه تمام اجزای آن مشابهی نمونهی داخلی است، کارت حافظهی اضافهشونده هم عملکردی مشابه با ذخیرهساز داخلی خواهد داشت. نکتهی منفی اینجا است که خود مایکروسافت عرضه و احتمالا قیمتگذاری این کارتها را کنترل خواهد کرد. فعلا شرکت Seagate تنها شریک تأییدشده برای فروش این کارتهای اضافهشونده است.
سونی رویکرد معکوسی در پیش گرفته و به کاربران اجازهی دسترسی به درگاه استاندارد M.2 و گذرگاه PCIe 4.0 را میدهد که میتواند ارتقاهای قطعات ثانویه از برندهای مختلف را بپذیرد. البته ملزومات هنوز کاملا روشن نیست: سونی آزمون سازگاری با درایوهای ثانویه را برای انتشار فهرست سازگاری انجام خواهد داد؛ اما آنها نگفتهاند درایوهایی که در فهرست تأییدشدهی آنها نباشند، درصورت اتصال به کنسول رد خواهند شد یا خیر. برای جایگرفتن در فهرست سازگاری سونی، نیاز است درایو بهصورت مکانیکی و ازنظر ابعاد، قابلیت جایگیری در درگاه را داشته باشد (از هیت سینک بزرگ استفاده نکرده باشد) و حداقل بهرهوریای بهاندازهی SSD داخلی سونی را داشته باشد. ملزومات بهرهوری به این معنی است که هنوز هیچ درایو موجود در خردهفروشی بازار تأییدکردنی نخواهد بود؛ اما شرایط در سال آینده بسیار متفاوت خواهد شد.
بزرگترین مزیت تکنیکی کنسولها دربرابر پیسی این است که کنسولها پلتفرم ثابت کاملا یکپارچهای هستند که سازنده ارائه داده است. در تئوری، سازندگان میتوانند مطمئن شوند سیستم برای کاربرد مدنظر بهدرستی متعادل شده است؛ امری که سازندگان بزرگ PC در آن بدسابقه هستند.
کنسولها عموما مشکل هدردادن بخش بزرگی از بودجه برای تکقطعهی پرچمداری را ندارند که سایر سیستم به پای آن نمیرسد و وقتی اجزای متناسب در بازار برای استفاده در آنها موجود نباشد، کنسولها بیشتر میتوانند بهراحتی سختافزار اختصاصی را در خود جای دهند. این دلیلی است که کنسولهای نسل بعدی از هستههای پردازندهی کلاس دسکتاپ استفاده نمیکنند و درعوض، بخش بزرگی از فضای سیلیکون را به واحد پردازش گرافیکی یا GPU اختصاص میدهند.
تا امروز، بازیهای پیسی کاملا اثبات کردهاند که افزایش سرعت SSD تأثیر ناچیز یا خنثی بر بهرهوری بازی میگذارد. SSDهای NVMe روی کاغذ چندینبرابر سریعتر از SSDهای SATA هستند؛ اما تقریبا برای تمام بازیهای پیسی، این بهرهوری اضافه تا حد زیادی بیاستفاده میماند. بخشی از این امر بهدلیل گلوگاهشدن در بخشهای دیگر سیستم است که تنها وقتی بروز میکند که بهرهوری ذخیرهساز آنقدر سریع باشد که دیگر محدودیت جدی محسوب نشود. کنسولهای آینده قابلیتهایی سختافزاری دارند که برای سهولت بهرهگیری از ذخیرهساز سریع در بازیها طراحی شدهاند و برای کاستن از گلوگاههایی که در پلتفرم پیسی استاندارد مشکلساز خواهند بود. اینجا جایی است که فناوری ذخیرهساز کنسول واقعا جالب بهنظر میرسد؛ چراکه SSDها بهخودیخود دیگر مهم نیستند.
مهمترین قابلیت سختافزاری کنسولها که بهعنوان مکمل بهرهوری ذخیرهساز لحاظ خواهند شد، سختافزار اختصاصی غیرفشردهسازی (Decompression) است. متعلقات بازی باید بهشکل فشرده روی دیسک ذخیره شوند تا ملزومات ذخیرهسازی را در حد معقول نگه دارند. بازیها معمولا به روشهای فشردهسازی چندگانهای متکی هستند: برخی روشهای فشردهسازی ضایعکننده (Lossy compression) اختصاصا برای نوع مشخصی از دادهها (مثل صدا و تصاویر) است و برخی هم از الگوریتمهای همهمنظورهی بدون افت کیفیت (Lossless) استفاده میکنند؛ اما تقریبا همگی حداقل یک روش فشردهسازی دارند که محاسبات نسبتا پیچیدهای دارد. معماری تراشههای گرافیکی از مدتها پیش سختافزار مخصوصی برای رمزگشایی فرمتهایی ویدئویی و پشتیبانی از روشهای ساده و سریع فشردهسازی بافتها مثل S3TC داشتند؛ اما این امر دادههای زیادی را برای غیرفشردهسازی بهعهدهی پردازندهی اصلی میگذارد.
پردازندههای دسکتاپ دستورها یا موتورهای اختصاصی برای غیرفشردهسازی ندارند؛ هرچند بسیاری از دستورالعملها شامل ملحقات SIMD قرار است به بهبود پردازش این نوع وظایف در CPU کمک کند. بااینحال غیرفشردهسازی جریانی از دادهها در حجم چندین گیگابایتبرثانیه راحت نیست و سختافزار تکمنظوره میتواند این کار را بهینهتر انجام دهد و درعینحال زمان CPU را برای وظایف دیگر آزاد کند. سختافزار مخصوص غیرفشردهسازی در کنسولهای آینده در تراشهی اصلی سیستم (SoC) تعبیه شدهاند؛ بنابراین میتوانند دادهها را پس از دریافت ازطریق گذرگاه PCIe از SSD بازگشایی کنند و در حافظهی اصلی RAM قرار دهند که برای CPU و GPU بهاشتراکگذاری شده است.
سختافزار مخصوص غیرفشردهسازی مانند این در پلتفرمهای رایج پیسی پیدا نمیشود؛ اما بهسختی ایدهی جدید محسوب میشود. کنسولهای قبلی هم سختافزار غیرفشردهسازی داشتند؛ اما نه آنگونه که بتوانند به سرعت SSDهای NVMe برسند. پلتفرمهای سروری اغلب از شتابدهندههای فشردهسازی بهره میگیرند و معمولا با شتابدهندههای رمزنگاری درکنار هم استفاده میشوند. اینتل قبلا چنین شتابدهندهای را هم بهعنوان ابزار جانبی مستقل و هم بهطور مجتمع با برخی تراشههای سروری داشته است و پردازندهی Power9 ساخت شرکت IBM و مدلهای جدیدتر آن هم واحدهای شتابدهندهی مشابهای دارند. این شتابدهندههای سروری با آنچه کنسولهای جدید نیاز دارند، بیشتر قیاسشدنی هستند.
مایکروسافت و سونی هرکدام واحدهای غیرفشردهساز خودشان را برای بهرهوری که از آن انتظار دارند، بهینهسازی کردهاند و هریک از الگوریتمهای اختصاصی متفاوتی برای این کار استفاده میکنند: سونی از الگوریتم Kraken ساخت RAD استفاده میکند که الگوریتم چندمنظوره است و در اصل برای استفاده در کنسولهای فعلی با پردازندهی نسبتا ضعیف، اما با ملزومات خروجی بسیار کمتر طراحی شده بود. مایکروسافت بهطورویژه روی فشردهسازی بافتها تمرکز کرده است؛ بههمیندلیل، بافتها بیشترین حجم از دادههای بازی را تشکیل میدهند که به خواندهشدن و فشردهسازی نیاز دارند. آنها الگوریتم فشردهسازی بافت را توسعه دادند که BCPack خوانده میشود.
سختافزار اختصاصی فشردهسازی | ||
کنسول | پلیاستیشن 5 | ایکسباکس سری ایکس |
الگوریتم | Kraken (و شاید ZLib) | BCPack |
بیشینهی نرخ خروجی | ۲۲ گیگابایتبرثانیه | ۶ گیگابایتبرثانیه |
نرخ عادی خروجی | ۸ تا ۹ گیگابایتبرثانیه | ۴/۸ گیگابایتبرثانیه |
مترادف با هستههای پردازندهی Zen 2 | ۹ هسته | ۵ هسته |
سونی اظهار میکند سختافزار غیرفشردهسازی مبتنیبر Kraken آنها میتواند ۵/۵ گیگابایتبرثانیه جریان داده از SSD را بازگشایی کرده و بهطور معمول به ۸ تا ۹ گیگابایتبرثانیه دادهی غیرفشرده شده تبدیل کند؛ اما اگر دادهها برای فشردهسازی سطح بالا بهاندازهی کافی منعطف باشند، در تئوری میتواند تا ۲۲ گیگابایتبرثانیه هم برسد. مایکروسافت هم میگوید خروجی ۴/۸ گیگابایتبرثانیه را از ورودی ۲/۴ گیگابایتبرثانیهی SSD بهدست میآورد. بهنظر میرسد سختافزار غیرفشردهسازی مایکروسافت صرفا برای دادههای بافت کار میکند.
زمان صرفهجوییشدهی CPU بهواسطهی این واحدهای غیرفشردهسازی حیرتانگیز است: مترادف با حدود ۹ هستهی پردازندهی Zen 2 برای PS5 و حدود ۵ هستهی پردازنده هم برای Xbox Series X. بهخاطر داشته باشید اینها اعداد حداکثری هستند که با فرض استفادهی کامل از پهنای باند SSD عنوان شدهاند. بازیهای واقعی نخواهند توانست این SSDها را کاملا مشغول نگه دارند؛ بنابراین، تا این حد از توان پردازنده را هم برای غیرفشردهسازی نیاز نخواهند داشت.
قابلیتهای شتابدهندهی ذخیرهساز در تراشههای کنسولی فقط به برداشتن بار پردازشهای فشردهسازی از دوش پردازنده ختم نمیشود؛ بهخصوص سونی معدود قابلیتهایی را تشریح کرده است که البته مبهم و تفسیرشدنی به معانی مختلف است.
دسترسی مستقیم به حافظه (Direct Memory Access یا DMA) به قابلیتی اشاره میکند که به دستگاه جانبی توانایی خواندن و نوشتن در حافظهی RAM را بدون درگیرکردن پردازندهی اصلی میدهد. تمام دستگاههای جانبی پرسرعت پیشرفته از DMA برای اغلب ارتباطاتشان با CPU استفاده میکنند؛ اما این تنها استفادهی DMA نیست. DMA Engine دستگاهی جانبی است که فقط برای جابهجایی دادهها استفاده شود و معمولا هیچ کاری روی خود آن دادهها انجام نمیدهد. پردازنده میتواند به موتور DMA بگوید عملیات کپی را از قسمتی از RAM به قسمت دیگر انجام دهد و موتور DMA هم کار تکراری کپی گیگابایتها داده را انجام میدهد، بدون اینکه CPU به اجرای دستورها mov بهازای هر بخش از دادهها مجبور باشد و حافظههای کش پردازنده آلودهی این کار شوند.
همچنین، موتورهای DMA اغلب میتوانند بیشتر از عملیات کپی ساده را برعهده بگیرند: آنها عموما عملیات Scatter/gather برای سازماندهی دادهها را هم حین جابهجایی آنها انجام میدهند. هماکنون هم NVMe قابلیتهایی مثل فهرستهای Scatter/gather را دارد که میتواند نیاز به موتور DMA جداگانه را برطرف کند؛ اما دستورها NVMe در این کنسولها بیشتر روی دادههای فشردهشده کار میکنند.
مجموعهی ورودیوخروجی در تراشهی اصلی PS5 پردازندهی دوهستهای را هم شامل میشود که حافظهی SRAM مخصوص به خود را دارد. سونی تقریبا هیچ چیزی دربارهی بخشهای داخلی این قسمت نگفته است. مارک سرنی یکی از هستهها را مختص به عملیات ورودی/خروجی SSD تشریح کرده که به بازیها اجازهی دورزدن عملیات سنتی I/O برای فایل را میدهد. هستهی دیگر هم بهعنوان کمککننده به عملیات نگاشت حافظه (Memory mapping) معرفی شده است. برای جزئیات بیشتر، باید به حق ثبت اختراعی سری بزنیم که سونی سالهای گذشته داده است.
کمکپردازندهای که در ثبت اختراع سونی تشریح شده، بخشی از کاری را بهعهده دارد که معمولا در درایورهای ذخیرهساز سیستمعامل انجام میشود. یکی از کارهای مهم این بخش ترجمه و تبدیل بین فضاهای آدرسدهی مختلف است. وقتی بازی محدودهی مشخصی از بایتها را از یکی از فایلهایش درخواست میکند، درواقع، بازی بهدنبال دادههای غیرفشرده است. کمکپردازندهی I/O تعیین میکند کدام بخش از دادههای فشردهشده نیاز است و سپس دستورها خواندن NVMe را به SSD ارسال میکند. زمانیکه SSD دادههای خواستهشده را ارجاع کرد، کمکپردازندهی I/O واحد غیرفشردهسازی را برای پردازش دادهها و موتور DMA را هم برای تحویل دادههای غیرفشردهشده به مکانهای خواستهشده در حافظهی بازی مهیا میکند.
ازآنجاکه دو هستهی کمکپردازندهی I/O بسیار ضعیفتر از هستهی پردازندهی Zen 2 هستند، نمیتوانند مسئول تمام فعلوانفعالات با SSD باشند. کمکپردازنده معمولترین موارد خواندن دادهها را کنترل میکند و سیستم برای انجام بقیهی کارها به سیستمعاملی مراجعه میکند که روی هستههای Zen 2 در حال اجرا است. حافظهی SRAM در کمکپردازنده هم فقط جداول نگاشت حافظهی مختلف را نگهداری میکند و کار آن با کنترلر SSD متفاوت است؛ بههمیندلیل، هنگام کار با SSDهای ثالث از برندهای دیگر هم مثمرثمر خواهد بود.
آخرین قابلیت سختافزاری وابسته به ذخیرهساز که سونی عنوان کرده، مجموعهای از موتورهای انسجام حافظهی پنهان (Cache coherency engines) است. CPU و GPU در تراشهی PS5، حافظهی اصلی ۱۶ گیگابایتی مشترکی دارند که نیاز به کپی متعلقات بازی از حافظهی اصلی به VRAM یا همان حافظهی گرافیکی را وقتی رفع میکند که از SSD خوانده و غیرفشردهسازی میشوند. باوجوداین، برای گرفتن بیشترین بهره از حافظهی مشترک، سختافزار باید از انسجام حافظهی کش، نهفقط بین هستههای مختلف پردازنده، بلکه بین حافظههای کش مختلف GPU نیز مطمئن شود. اینها همه فعالیتهای عادی APU هستند؛ اما آنچه دربارهی PS5 جدید است، این است که مجموعهی I/O هم در این انسجام مشارکت میکند. وقتی متعلقات گرافیکی جدید ازطریق مجموعهی I/O به حافظه بارگذاری میشوند و دادههای قدیمی را بازنویسی میکنند، سیگنالهای باطلشدن کش را به تمام حافظههای کش ارسال میکند تا فقط دادههای قدیمی دور انداخته شوند، بهجای اینکه کل حافظههای کش واحد گرافیکی پاکسازی شود.
اطلاعات زیادی از مجموعهی ورودیوخروجی اختصاصی پلیاستیشن 5 موجود و طبیعی است تعجب کنید اگر Xbox SX هم قابلیتهای مشابهی داشته باشد یا فقط به سختافزار غیرفشردهساز محدود باشد. مایکروسافت فناوریهای مرتبط با ذخیرهساز را با عنوان Xbox Velocity Architecture آشکار کرده است.
مایکروسافت این بخش را با چهار جزء معرفی کرده است: SSD، موتور فشردهسازی، واسط نرمافزاری (API) جدید برای دسترسی به ذخیرهساز و امکان سختافزاری با نام Sampler Feedback Streaming. آخرین گزینه بهسختی به ذخیرهساز مربوط است؛ چراکه قابلیت GPU است که بافتهای بعضا مقیم در حافظه را کاربردیتر میکند. ازآنجاکه مایکروسافت برخلاف سونی اطلاعات زیادی دربارهی بخش I/O و ذخیرهساز نداده، معقول است تصور کنیم ایکسباکس سری ایکس از آن قابلیتهای اختصاصی برخوردار نیست و بیشتر عملیات I/O را هستههای پردازنده انجام میدهند. بااینحال، اگر دریابیم سری X هم موتورهای DMA مشابه دارد، خیلی هم متعجب نخواهیم شد؛ چراکه این قابلیتها بهصورت تاریخی در معماریهای کنسولی زیادی نشان داده شدهاند.
SSDهای NVMe بهسادگی میتوانند ۵۰ برابر سریعتر از هارددرایوها در عملیات خواندن ترتیبی و هزاران برابر سریعتر در خواندن تصادفی باشند. این استدلالی است که بازیسازان باید بتوانند کارها را متفاوت انجام دهند، وقتی دیگر به هدفگذاری برای هارددرایوهای کُند نیازی ندارند و میتوانند به ذخیرهساز سریع اتکا کنند. راهکارهای مربوط به بهرهوری هارددیسکهای کُند میتوانند کنار گذاشته شوند و ایدهها و قابلیتهای جدید را میتوان آزمایش کرد که هرگز قبل از این روی هارددرایوها جوابگو نبود. مایکروسافت و سونی دربارهی این موضوع توافق نزدیکی دارند که برای نسل آیندهی کنسولها در پی خواهد داشت و بیشتر مزایای مشابه را هم برای کاربران نهایی تشریح کردهاند.
بیشترین تغییرات در طراحی بازیها که با رهایی از هارددرایوها میسر شده، تأثیر کمی بر تجربهی بازی از یک ثانیه به ثانیهی بعد خواهد گذاشت: برچیدن راهکارهای مربوط به ذخیرهسازهای کُند کمک زیادی به نرخ فریم در ثانیه نخواهد کرد؛ اما برخی از ضعفهای دیگر در تجربهی کلی کنسول را از بین خواهد برد. برای مبتدیان که درایوهای حالت جامد یا همان SSDها میتوانند تفرق یا پراکندگی بسیاری را بدون تأثیر محسوس در بهرهوری تحمل کنند، نیاز نیست فایلهای بازی بعد از بهروزرسانی تفرقزدایی (Defragment) شوند. تفرقزدایی چیزی است که بیشتر کاربران پیسی دیگر حتی به فکرکردن به آن نیازی ندارند؛ اما هنوزهم هرازگاهی بهطورخودکار لازم است.
تفرقزدایی در سیستمعامل ویندوزی هنوزهم آنطور که فکر میکنید، منسوخ نشده است؛ اما بهزودی خواهد شد.
ازآنجاکه دیگر نیاز نیست توسعهدهندگان بازی نگران حفظ موقعیت مکانی دادهها روی دیسک باشند، دیگر لزومی هم نخواهد بود که دادههایی که در بخشهای مختلف بازی بازاستفاده میشوند، روی بخشهای مختلف دیسک تکرار شوند. کافی است که صداهای بیشتر مورد استفاده، بافتها و مدلها فقط یک بار در فایلهای بازی گنجانده شوند. این امر حداقل تأثیر کوچکی در کند کردن رشد حجم نصب بازیها خواهد داشت؛ اما احتمالاً این روند را معکوس نمیکند، مگر جایی که استودیو از ویرایشگرهای مرحله (level editors) و ویژگیهای کپی و چسباندن آن شدیدا سوءاستفاده کرده باشد.
سوءاستعمال ابزار کپی در طراحی مراحل
اخطارهای خاموش نکردن کنسول درحالیکه بازی ذخیره میشود، اولینبار وقتی پدیدار شد که کنسولها از کارتریجها با ذخیرهسازهای حالت جامد به هارد دیسکها گذار کردند و این اخطارها به مشخصهی بسیاری از بازیهای کنسولی و پورتهای نیمه کارهی بازیهای پیسی تبدیل شد. سرعت نوشتن SSDها آنقدر سریع است که ذخیرهی بازی بسیار کمتر از دسترسی و زدن سوئیچ خاموش و روشن کنسول زمان میبرد، بنابراین در حالت ایدئال این اخطارها باید کاهش یابد، حتی اگر کاملا هم حذف نشود.
چگونه پورت کنسولی ناقص برای پیسی را بشناسیم
SSDهای NVMe سرعتهای نوشتنی دارند که حتی از این ملزومات هم فراتر میرود و امکان ایجاد تغییراتی را در نحوهی ذخیرهی بازیها میدهد. بهجای جمعبندی میزان پیشرفت بازیکن در یک فایل که فقط چند مگابایت است، کنسولهای جدید برای خالی کردن گیگابایتها داده روی دیسک، آزادی عمل خواهند داشت. تمام حافظهی RAM که توسط بازی استفاده شده، میتواند در عرض چند ثانیه روی SSD پر سرعت NVMe ذخیره شود. اما اکنون فایل ذخیره و متعلقات در حال استفادهی بازی از آخرین باری که در حال اجرا بوده بهسادگی میتواند خوانده شده و دوباره در RAM بارگذاری شود تا کل موقعیت بازی تنها در یک یا دو ثانیه از سرگرفته شود (Resume) و تمام صفحات شروع و عملیات بارگذاری در بازیها را دور بزند.
قابلیت quick resume در Xbox Series X
تکرارنشدن دادههای بازی در کنسولهای جدید مزیتی است که بهصورت پیشفرض به پورتهای نسخهی پیسی هم منتقل خواهد شد و نبود تفرق چیزی است که پیسی گیمرها سالها است از آن لذت میبرند. هیچیک از این تغییرات (ذخیرهی آنی و از سرگیری آنی بازی) به SSD پیشرفتهای نیاز ندارند و هر دو میتوانند حتی روی SSDهای SATA هم درست کار کنند (البته نه خیلی آنی)؛ اما پیادهسازی آن نیاز به کمی کمک توسط سیستمعامل دارد و به همین جهت شاید عادی شدن این قابلیت روی پیسی کمی زمانبر باشد. سیستمعاملهای دسکتاپی مدتها است از قابلیت Hibernate و فراخوانی تصویر کل سیستمعامل پشتیبانی میکنند؛ اما انجام این کار برای هر برنامه غیرمعمول است.
اینها همه تسهیلاتی هستند که تجربهی اصلی بازی را بهخودیخود غنیتر نمیکنند. کاهش یا پرهیز از صفحات لود بهبودی پذیرفتنی برای بسیاری از بازیهاست؛ اما بازیهای بسیار بیشتری قبلا هم بهشکلی ساخته شدهاند که تاحدممکن صفحههای بارگذاری را از بین ببرند. این کار اغلب ازطریق طراحی مراحل صورت میگیرد تا صفحات بارگذاری را پنهان کند. حرکات و میدان دید بازیکن بهطورموقتی محدود میشود و درنتیجه، متعلقات لازم بازی برای ماندن در حافظه بهطورچشمگیری کاهش پیدا میکند و امکان تعویض سایر دادههای بازی در حافظه فراهم میشود.
طراحی مرحله برای دستگاهی تنها با ۶۴ مگابایت RAM
بازیهای جهان باز هم برای کاستن از عناصر طراحی از جزئیات محیط میکاهند و حرکات بازی را محدود میکنند؛ بنابراین، مهم نیست بازیکن انتخاب کند که به کجا برود، متعلقات بازی میتوانند در پسزمینه به داخل حافظه استریم و بارگذاری شوند. با SSDهای سریع بازیسازان و بازیکنان هر دو آزادیعمل بیشتری خواند داشت؛ اما برخی از توالیهای حرکت هنوزهم برای تغییر صحنههای عمده موردنیاز خواهد بود. کنسولها نمیتوانند تمام محتویات RAM از یک فریم به فریم بعدی را دوباره بارگذاری کنند. این کار هنوز چندین ثانیه زمان خواهد برد.
سرانجام به چیزی میرسیم که شاید مهمترین نتیجهی استانداردسازی SSDها و موردنیازبودن آنها برای بازیها باشد؛ اما درعینحال اغراقآمیزترین قابلیت آن است: مایکروسافت و سونی هر دو در طی گفتههای خود اظهار داشتهاند که SSD را تقریبا میتوان مانند حافظهی اصلی استفاده کرد. اجازه دهید در اینجا با صراحت بگوییم که SSDهای کنسولی جایگزینی برای RAM نیستند. SSD استفاده شده در PS5 تنها میتواند ۵/۵ گیگابایت داده را تأمین کند. اما حافظهی RAM در ۴۴۸ گیگابایتبرثانیه کار میکند، و این یعنی ۸۱ برابر سریعتر. کنسولها ۱۶ گیگابایت حافظهی اصلی از نوع GDDR6 دارند. اگر بازی نیاز به استفادهی بیش از ۱۶ گیگابایت برای رندر یک صحنه داشته باشد، نرخ فریم به ردههای پایینی سقوط خواهد کرد؛ چراکه SSDها به اندازهی کافی سریع نیستند. SSDها در هر دو زمینهی توان عملیاتی و تأخیر ناکافی هستند.
مطمئناً برای یک مرحله در بازی امکان استفاده از بیش از ۱۶ گیگابایت متعلقات (Assets) وجود دارد ؛ اما همهی آنها به یکباره نمایش داده نمیشوند. اصطلاح فنی در اینجا Working set است: مقداری از حافظه که واقعا بهصورت فعال در یک زمان استفاده میشود. آنچه SSD تا حدی تغییر میدهد، آستانهی چیزی است که میتواند بهعنوان فعال در نظر گرفته شود.
با SSD سریع، متعلقاتی که نیاز است در حافظه نگه داشته شوند بیش از آنچه اکنون روی صفحه (on-screen) نمایش داده میشود نخواهند بود و بازی نیاز ندارد که صحنههای خیلی جلوتر را پیش بارگذاری یا واکشی (prefetch) کند. بافتهای جسمی که در همان اتاق ولی فعلا خارج از صفحه است، میتواند روی دیسک باقی بماند تا زمانیکه دوربین شروع به چرخیدن به آن سمت کند. این در حالی است که سیستم متکی به هارددرایو احتمالا نیاز خواهد داشت که متعلقات تمام اتاق و حتی اتاقهای مجاور را در حافظه نگه دارد تا از وقفه (Stutter) اجتناب شود. این تفاوت به این معنی است که کنسول مبتنیبر SSD (مخصوصا با بهرهوری NVMe) میتواند مقداری از حافظهی گرافیکی VRAM را آزاد کند و اجازه دهد تعدادی از متعلقات با رزلوشن بالاتر استفاده شوند.
البته این کار تحول بزرگی نیست: مانند این نیست که SSD حافظهی گرافیکی مؤثر را به میزان دهها گیگابایت افزایش داده باشد؛ اما بسیار محتمل است که به بازیها امکان دهد که از چند گیگابایت اضافی خالی شده از RAM، برای محتویات روی صفحه استفاده کنند، بهجای اینکه بخواهند متعلقات خارج از صفحه را پیش بارگذاری کنند. مارک سرنی آن را با این گفته برآورد کرده که اکنون بازیها فقط نیاز به پیش بارگذاری یک ثانیه جلوتر را دارند، بهجای اینکه بخواهند حدود ۳۰ ثانیه جلوتر را بارگذاری کنند.
لایهی دیگری هم در این مزیت وجود دارد: ایجاد بافتهای نیمه مقیم در پلتفرمهای دیگر هم امکانپذیر بوده است؛ اما اکنون قدرتمندتر میشوند. آنچه در ابتدا برای بافتهای زمینی چند هکتاری ایجاد شده بود، اکنون میتواند بهطور مؤثر در اشیاء بسیار کوچکتر مورد استفاده قرار گیرد. واحد بازخورد نمونه (sampler feedback) به GPU امکان میدهد که اطلاعات دقیقتر و با جزئیات بیشتری را در رابطه با اینکه کدام بخش از بافت واقعا در حال نمایش است، برای اپلیکیشن فراهم کند. بازی هم میتواند از آن اطلاعات برای ارسال درخواست خواندن به SSD فقط برای همان بخشهای فایل استفاده کند.
این کار میتواند با بلاکهای کوچک ۱۲۸ کیلوبایتی از بافت (فشرده نشده) انجام شود که آنقدر کوچک است که میتواند با بارگذاری نکردن چندضلعیهایی که استفاده نمیشود، صرفهجویی معنیداری را در RAM به ارمغان آورد و درعینحال هنوز دستورها خواندنی از SSD صادر کند که آنقدر بزرگند که برای ویژگیهای عملکردی SSD مناسب باشند.
مایکروسافت اظهار داشته که این قابلیتها ۲ تا ۳ برابر به ظرفیت RAM و پهنای باند SSD میافزایند که البته قانعکننده نیست. اما بهطور حتم، پهنای باند زیادی در SSDها میتواند در محدودههای زمانی کوتاه توسط بارگذاری تدریجی صحنهها صرفهجویی شود. اما شک داریم که این ویژگیها به سری ایکس با حدود ۱۰ گیگابایت حافظهی VRAM اجازه دهد که مناظر پر جزئیاتی را که میتوان در کارت گرافیکی PC با ۲۴ گیگابایت حافظهی گرافیک ترسیم کرد، مدیریت کند. هرچند خوشحال میشویم اگر آنها خلاف این را ثابت کنند.
سختافزار ذخیرهساز در کنسولهای جدید غیرممکنهای زیادی را ممکن میکنند؛ اما فقط به اتکای سختافزارشان نمیتوانند در گیمینگ انقلاب ایجاد کنند. پیادهسازی قابلیتهای جدید که توسط SSDهای سریع ممکن شده، هنوز نیازمند کار نرمافزاری از سوی فروشندگان کنسول و توسعهدهندگان بازیهاست. استخراج بهرهوری کامل از SSD پرچمداری NVMe نیاز به رویکردی متفاوت به مقولهی ورودی/خروجی یا همان I/O نسبت به روشهایی دارد که برای هارددرایوها و دیسکهای نوری کار میکنند.
هنوز هیچ SSD کنسولی نسل بعدی دراختیار نداریم که آزمایش کنیم؛ اما براساس مشخصات معدودی که تا به حال منتشر شده، میتوانیم پیشبینیهای خوبی درمورد ویژگیهای عملکردی آنها داشته باشیم. اولین و مهمترین مورد اینکه رسیدن به سرعتهای خواندن ترتیبی تبلیغ شده، نیاز به مشغول نگه داشتن SSDها با تعداد زیادی درخواست برای داده خواهد داشت. یکی از سریعترین SSDهایی که تاکنون تست کردهایم -PM1725a ساخت سامسونگ- را در نظر بگیرید. این مدل قادر است به سرعت بیش از ۶.۲ گیگابایت در ثانیه در عملیات خواندن ترتیبی در بلاکهای ۱۲۸ کیلوبایتی برسد.
اما درخواست این بلاکها با تعداد یکی در هر زمان (Q1T1) سرعت را به ۶۸۰ مگابایت در ثانیه تقلیل میدهد. این درایو نیاز به عمق صف (queue depth) حداقل به میزان ۱۶ دارد تا به سرعت ۵ گیگابایتبرثانیه برسد و عمق صف ۳۲ (QD32) را لازم دارد تا به سرعت ۶ گیگابایت در ثانیه برسد. SSDهای جدیدتر با حافظههای فلش سریعتر ممکن است به این عمق صفهای بالا نیاز نداشته باشند؛ اما بازیها قطعا نیاز دارند که چیزی بیش از چند درخواست در یک زمان ارسال کنند تا SSD کنسول را مشغول نگه دارند.
کنسولها توانایی این را ندارند که میزان زیادی از قدرت پردازنده را برای رد و بدل کردن اطلاعات با SSDها هدر دهند، بنابراین به راهی نیاز دارند که فقط یک یا دو رشتهی پردازشی بتوانند تمام درخواستهای I/O را مدیریت کنند و زمان باقیماندهی CPU از هستههایش را هم برای انجام کاری سودمند روی دادهها دراختیار داشته باشند. این یعنی کنسولها باید با استفاده از APIهای نامتقارن برنامهریزی شوند، جایی که یک رشته، یک درخواست خواندن به سیستمعامل یا کمکپردازندهی I/O میدهد؛ اما به کار خودش بازمیگردد تا زمانیکه درخواست پردازش شده باشد. و رشتهی پردازشی بعدا دوباره باید چک کند که درخواستش انجام شده است یا خیر. در دوران هارددرایوها، چنین رشتهای باید زمانیکه منتظر کامل شدن عملیات خواندن بود، خاموش میشد و تعدادی از وظایف غیرمرتبط با ذخیرهساز را انجام میداد. اما حالا، آن رشته میتواند آن زمان را به ارسال درخواستهای بسیار بیشتر به ذخیرهساز اختصاص دهد.
به جز بالا نگه داشتن میزان عمق صف، بهدست آوردن سرعت کامل از SSD مستلزم این است که عملیات I/O در بخشهای بزرگ انجام شود. تلاش برای رسیدن به ۵/۵ گیگابایتبرثانیه با درخواستهای ۴ کیلوبایتی نیاز به مدیریت تعدادی حدود ۱.۴ میلیون عملیات I/O در ثانیه دارد که ممکن است بسیاری از بخشهای سیستم را با سربار (overhead) درگیر کند. خوشبختانه بازیها ذاتا تمایل دارند که با بخشهای بزرگی از دادهها سر و کار داشته باشند، بنابراین این مورد مشکل خیلی بزرگی محسوب نمیشود و عمدتا به این معنی است که بسیاری از معیارهای سنتی بهرهوری SSD غیرضروری و نامرتبط هستند.
مایکروسافت بسیار کم درمورد سمت نرمافزاری پشتهی ذخیرهساز ایکسباکس سری ایکس گفته است. آنها API جدیدی را بهنام DirectStorage معرفی کردهاند. ما هیچ توضیحی درمورد شیوهی کارکرد آن و وجه تمایزش نسبت به API بکار رفته در کنسولهای فعلی و قبلی دراختیار نداریم؛ اما این API ساخته شده تا بهینهتر باشد:
DirectStorage میتواند از سربار CPU برای این عملیات I/O بکاهد و آن را از گرفتن چندین هسته، به تنها بخش کوچکی از یک تک هسته کاهش دهد.
جالبترین قسمت دربارهی DirectStorage این است که مایکروسافت قصد دارد آن را به ویندوز بیاورد، بنابراین API جدید نمیتواند به هیچ سختافزار اختصاصی در پیسی متکی باشد و باید بهگونهای باشد که در بالای سیستم فایل NTFS رایج عمل کند. براساس تجربهای که از آزمون SSDهای سریع تحت ویندوز داشتهایم، آنها قطعا میتوانند از API ذخیرهسازی با سربار کم استفاده کنند، و این گزینه قابل تسری به فراتر از بازیهای ویدئویی صرف خواهد بود.
طراحی API ذخیرهسازی سونی احتمالا با کمکپردازندههای I/O آنها در هم تنیده شده است؛ اما بعید است که بازیسازان باید بهطور خاص آگاه باشند که پردازش درخواستهای ورودی/خروجی آنها از دوش CPU برداشته شده است. مارک سرنی اظهار کرده که بازیها میتوانند عملیات عادی ورودی/ خروجی فایل را دور بزنند که بخشی از آن در گفتوگو با دیجیتال فاندری تشریح شده است:
در آنجا دسترسی سطح پایین و سطح بالا داریم و بازیسازان میتوانند هریک را که دوست دارند، انتخاب کنند. اما این API جدید است که به توسعهدهندگان اجازه میدهد به سرعتهای بینهایت بالای سختافزار جدید دسترسی پیدا کنند. ایدهی اسامی فایلها و مسیرها جایش را به سیستمی براساس شناسه (ID) داده که به سیستم میگوید دقیقا کجا دادههایی را که نیاز دارد به سریعترین شیوهی ممکن پیدا کند. کافی است که سازندگان بهسادگی فقط ID را معین کنند، موقعیت آغاز، پایان و چند میلیثانیه بعدتر خود داده هم تحویل میشود. دو فهرست دستوری به سختافزار ارسال میشوند که یکی دارای فهرست IDها بوده و دیگری با محوریت تخصیص حافظه و تغییر مکان حافظه است تا از خالی شدن حافظه برای دادههای جدید مطمئن شویم.
خلاص شدن از شر اسامی فایلها و مسیرهای ذخیرهسازی به خودی خود افزایش بهرهوری را بهدنبال ندارد، مخصوصا ازآنجاکه سیستم هنوز مجبور است به خاطر کدهای قدیمی از API سیستم فایل سلسله مراتبی هم پشتیبانی کند. پسانداز واقعی از توانایی معین کردن کل فرایندی I/O در یک تک مرحله میآید، بهجای اینکه برنامه مجبور باشد بخشهایی مانند غیرفشرده سازی و تخصیص حافظه برای دادهها را مدیریت کند. هر دوی این بخشها توسط سختافزار تک منظوره در PS5 کنترل میشوند.
درحالیکه توسعهدهندگان ملزم به تلاش برای استخراج بهرهوری کامل از SSDهای کنسولی هستند، هدف رقیب نیز وجود دارد. وادار کردن SSD به کار در حداکثر عملکرد باعث افزایش قابلتوجه تأخیر میشود، مخصوصا اگر عمق صف، بالاتر از میزانی برود که برای اشباع درایو نیاز داریم. این تأخیر اضافی درحالیکه کنسول فقط در حال نمایش یک صفحهی بارگذاری باشد اهمیتی ندارد؛ اما بازیهای نسل بعدی میخواهند که همزمان با استریم مقادیر زیادی از دادهها، بازی را در حالت اجرای تعاملی و پاسخگو حفظ کنند. سونی نقشهاش را برای تعامل با این چالش ترسیم کرده است: SSD آنها قابلیت ویژهای دارد که ۶ سطح اولویت (priority level) برای دستورها I/O را پشتیبانی میکند تا اجازه دهد حجم زیادی از دادهها بارگذاری شوند، بدون اینکه برای درخواستهای خواندن اضطراریتر مسیر مسدود باشد یا خللی ایجاد شود. سونی دلایل زیادی برای این ویژگی یا نحوهی عملکرد آن توضیح نداده است ؛ اما راحت میتوان فهمید که چرا آنها برای اولویتبندی I/O به چنین چیزی احتیاج دارند.
بارگذاری دنیای جدید در ۲.۲۵ ثانیه درحالیکه Ratchet & Clank در شکاف میان بُعدی سقوط میکند
مارک سرنی مثال فرضی را از هنگامی که سطوح اولویت چندگانه مورد نیاز است مطرح میکند: وقتی که بازیکن به موقعیت جدیدی حرکت میکند، ممکن است بسیاری بافتهای جدید در اندازهی چندین گیگابایتبرثانیه نیاز به بارگذاری داشته باشند. اما ازآنجاکه بازی توسط یک صفحهی بارگذاری متوقف نشده، اتفاقها هنوز در بازی در جریان هستند و رخدادهای بازی (مثلا تیر خوردن کاراکتر) ممکن است به بارگذاری دادههایی مانند افکتهای صوتی نیاز داشته باشند. درخواست مربوط به آن افکت صوتی بعد از درخواست چندین گیگابایت بافت صادر خواهد شد؛ اما لازم است که افکت صوتی قبل از اتمام بارگذاری بافتها بارگذاری شود؛ چراکه صدای متقاطع بسیار قابلتوجهتر و آزاردهندهتر از تأخیر جزئی در بارگذاری تدریجی دادههای بافت جدید خواهد بود.
استاندارد NVMe همین حالا هم قابلیت اولویتبندی را شامل میشود، پس چرا سونی استاندارد خودش را توسعه داده است؟ SSD سونی ۶ سطح اولویتبندی را پشتیبانی خواهد کرد، و مارک سرنی ادعا کرده که استاندارد NVMe فقط ۲ سطح اولویت واقعی را پشتیبانی میکند. نگاهی گذرا به مشخصات NVMe نشان میدهد که این اولویتبندی آنقدرها هم ساده نیست:
الگوریتم Round Robin وزندار برای اولویتبندی در درایوهای NVMe
مشخصات NVMe برای تعیین اینکه کدام صف فرمان بعدی را برای دستیابی به درایو فراهم میکند، دو الگوی داوری درمورد دستورها مختلف را تعریف میکند. اما الگوی پیشفرض، ایجاد توازن براساس الگوریتم Round-robin ساده است که با تمام صفهای I/O بهطور یکسان رفتار میکند و همهی اولویتبندیها را بر عهدهی سیستم میزبان میگذارد. درایوها همچنین میتوانند الگوی Round-robin وزندار را بهصورت اختیاری پیادهسازی کنند که ۴ سطح اولویت را ارائه میدهد (بدون احتساب دستورها مدیر یا Admin). ظاهرا جزئیاتی که سونی با آنها سروکار دارد، در سطحی بالاتر از آن چهار سطح اولویت قرار میگیرد؛ چراکه فقط به کلاس فوری نسبت به سایر سطوح اولویت اضطراری داده میشود. اولویتبندی سختگیرانه سادهترین شکل اولویتبندی برای پیادهسازی است؛ اما چنین روشهایی، انتخابی ضعیف برای سیستمهای چند منظوره هستند. در سیستم اختصاصی بسته مانند کنسول بازی، هماهنگی بین تمام نرم افزارهایی که عملیات I/O انجام میدهند به منظور جلوگیری از بن بست و بیکار ماندن بسیار سادهتر است. بخش اعظمی از عملیات I/O که توسط کنسول بازی انجام میشود، نیاز به الزامات زمانبندی مطابق با رخدادهای دنیای واقعی دارند.
سونی میگوید عدم وجود شش سطح اولویت در درایوهای NVMe موجود در بازار به این معنی است که آنها به عملکرد خام کمی بالاتر نیاز دارند تا با بهرهوری واقعی درایو سونی مطابقت داشته باشند، زیرا سونی باید ۶ سطح از اولویت را با ترکیبی از کار پردازنده و کمکپردازندهی I/O در میزبان پیادهسازی کند. براساس مشاهدات ما درمورد SSDهای سازمانی (که بیشتر با تمرکز روی QoS نسبت به SSDهای مصرفکننده طراحی شدهاند)، نگه داشتن ۱۵ تا ۲۰ درصد از عملکرد بهصورت ذخیره، بهطور معمول تأخیر را در میزان بسیار پایینی (حدود ۲ برابر تأخیر SSD در حالت بیکار)، بدون استفاده از هیچ مکانیسم اولویتبندی حفظ میکند. بنابراین برآورد میکنیم درایوهایی که قادر به رسیدن به سرعت ۶.۵ گیگابایت در ثانیه یا بیشتر باشند، نباید هیچ مشکلی در این زمینه داشته باشند.
افزایش تأخیر در SSD همزمان با رسیدن به سقف عملکرد درایو
هنوزهم کاری که سونی قصد دارد با این تعداد بالا از سطوح اولویت انجام دهد، برای ما معماگونه است. مطمئناً میتوانیم سلسله مراتبی از چندین سطح اولویتی را برای انواع مختلف دادهها تصور کنیم: شاید کد بازی بالاترین اولویت بارگیری باشد، زیرا حداقل یک رشتهی در حال اجرا در حین بررسی خطای صفحه (page fault) کاملا متوقف خواهد شد، بنابراین به این دادهها در سریعترین حالت ممکن نیاز خواهد بود (و بهشکل ایدئال باید تمام وقت در RAM نگه داشته شوند، بهجای اینکه در پسزمینه بارگذاری شوند).
احتمالاً پیش بارگذاری بافتها کمترین اولویت را دارد، بهخصوص واکشی mipmapهای با وضوح بالاتر، وقتی که نسخهی رزولوشن پایین آنها از قبل در حافظهی RAM موجود است و موقتا نیز قابل استفاده هستند (mipmap در گرافیک کامپیوتری تکنیک بافتزنی است که در آن کیفیتهای متفاوتی از بافت در رزولوشنهای مختلف استفاده میشود). ترسیم هندسی ممکن است اولویت بالاتری نسبت به بافتها داشته باشد؛ چراکه میتواند برای تشخیص تصادم (collision detection) مورد نیاز باشد و بافتها بدون استفاده از ترسیم شکل هندسی برای اعمال به آنها بی فایده خواهند ماند. جلوههای صوتی باید در حالت ایدئال، حداکثر با تأخیر چند ده میلی ثانیه بارگذاری شوند. ثبت اختراع سونی به دادن اولویت بالاتر به I/O با استفاده از API جدید اشاره کرده است، بر این اساس که چنین کدی به احتمال زیاد در ردهی عملکرد بحرانی (performance-critical) قرار خواهد گرفت.
برنامهریزی برای ۶ کلاس اولویتبندی داده برای موتور بازی کار چندان سختی نیست؛ اما به این معنا هم نیست که در هنگام تعامل با سختافزار واقعی، این روش کاملا مفید واقع خواهد شد. به یاد بیاورید که تمام هدف اولویتبندی و سایر روشهای QoS، جلوگیری از تأخیر بیش از حد است. تأخیر بیش از حد هم زمانی اتفاق میافتد که نسبت به آنچه SSD همزمان قادر به پردازش است، درخواستهای بیشتری را ارسال کنید. برخی از درخواست ها باید در صف دستورها قرار بگیرند و منتظر نوبت خود باشند.
اگر دستورها زیادی در صف منتظر باشند، دستور جدید هم که در آخر صف اضافه میشود، باید مدتی طولانی در انتظار باشد. اگر بازی در PS5 درخواستهای جدید را با نرخی بیش از مجموع ۵/۵ گیگابایت در ثانیه به SSD ارسال کند، انبار دستوری ایجاد خواهد شد و تأخیر همینطور افزایش مییابد، تا زمانیکه سرعت ارسال درخواستهای داده از سوی بازی، نسبت به سرعتی که SSD قادر به تحویل آن است کاهش یابد. هنگامی که درخواستهای بازی در سرعتی بسیار کمتر از ۵/۵ گیگابایتبرثانیه باشد، هر بار که دستور جدید خواندن به SSD ارسال میشود، تقریبا بلافاصله پردازش آن درخواست شروع خواهد شد. بنابراین مهمترین کار، محدود کردن میزان درخواستهایی است که میتوانند در صفهای SSD تجمع کنند و پس از حل شدن این مشکل، نیازی به اولویتبندی بیشتر نیست.
مهاجرت کنسولهای بازی به ذخیرهسازهای حالت جامد یا همان SSDها، افق دید طراحی و توسعهی بازیهای ویدئویی را تغییر خواهد داد. سد در حال شکستن است و سازندگان بازی بهزودی میتوانند محدودیتهای هارددرایوها را نادیده بگیرند و شروع به کَند و کاو درمورد امکانات ذخیرهساز سریع کنند. ممکن است استفادهی کامل از بهرهوری SSDهای کنسولی جدید مقداری زمان ببرد؛ اما بهبودهای قابلتوجه زیادی را در شروع عرضهی کنسولها هم شاهد خواهیم بود.
تأثیرات این مهاجرت به بازار بازیهای رایانهای نیز سرایت خواهد کرد و باعث افزایش فشار برای کمک به حذف هارد دیسک از رایانههای رده پایین گیمینگ خواهد شد و به گیمرهای دارای پیسیهای پرقدرت اجازه میدهد تا از عملکرد SSDهای سریع ولی بکارگیری نشدهی خود لذت بیشتری ببرند. و تغییرات در خود سیستمعامل ویندوز به خاطر این کنسولهای جدید همین حالا هم در راه انجام گرفتن است.
درنهایت، جالب خواهد بود که ببینیم آیا قطعات جدید در زیرسیستمهای ذخیرهسازی کنسولهای جدید، آنچنان بهعنوان مزیت واقعی محسوب خواهند شد که بتوانند بر جهتگیری توسعهی سختافزار رایانههای شخصی تأثیرگذار باشند، یا در پایان فقط تغییرات جالبی باشند که در گرد و غبار گم شوند؛ چراکه سختافزار پیسی سرانجام با بهرهوری خام برتر، از کنسولها پیشی خواهد گرفت. SSDهای NVMe از پنج سال پیش به ردههای بالای بازار مصرفکننده رسیدند. اکنون آنها در حال عبور از نقطهی اوج و به خوبی در راه تبدیل شدن به استاندارد اصلی برای ذخیرهسازی هستند.
پاسخ ها