عصري جديد با SSD پلي استيشن ۵ و ايكس باكس سري ايكس
نسل جديد كنسولهاي بازي قرار است در پايان امسال به بازار عرضه شوند و چرخهي هيجانات ناشي از انتظار براي رسيدن ايكس باكس سري ايكس و پلي استيشن 5 براي بيش از يك سال در جريان بوده است. مشخصات متخصص واقعي (برخلاف شايعات صرف) با كُندي بيشتري اعلام شدهاند و دربارهي كنسولهاي جديد درمقايسهبا اطلاعاتمان از پلتفرمهاي پيسي و اجزاي آن در زمان بعد از معرفي و قبل از موجود شدن در بازار، هنوزهم اطلاعات بسيار كمتري ميدانيم. درواقع، آمارهاي بهرهوري و اطلاعات عمومي معماري از مايكروسافت و سوني را در دست داريم؛ اما نه آنچه بهعنوان مشخصات كامل سيستم شناخته ميشود.
نسل جديد كنسولها افزايش بزرگي در تواناييهاي CPU و GPU به ارمغان خواهند آورد؛ اما ما با هر نسل جديد چنين بهبودي داريم و جاي تعجب نيست وقتي تراشههاي كنسولي هم همان بهروزرسانيهاي ريزمعماري پردازندهها و تراشههاي گرافيكي AMD را كه از آنها مشتق شدهاند بهدست ميآورند. آنچه مخصوص اين نسل محسوب ميشود، تغييرات ذخيرهساز است: كنسولها به پيروي از بازار پيسي، از هارد درايو مكانيكي به ذخيرهسازهاي حالت جامد يا همان SSDها روي آوردهاند؛ اما يك قدم از بازار پيسي هم فراتر رفتهاند تا بيشترين بهرهي ممكن را از ذخيرهسازهاي حالت جامد ببرند.
بخشهاي داخلي ايكسباكس سري ايكس
درواقع، SSDها انقلابي در تجارت پيسي بودند كه بهبودهاي عظيمي در پاسخگويي كلي سيستم ايجاد كردند. بازيها بيشتر بهشكل نصب سريعتر و بارگذاري مراحل سريعتر از آن بهرهمند شدند؛ اما حافظه ذخيرهسازي سريع به كاهش واماندگيهاي سيستمي (Stall) و وقفه (Stutter) موقع نياز بازي به بارگذاري دادهها حين اجرا هم كمك شاياني كرد. در سالهاي اخير، SSDهاي NVMe سرعتهايي فراهم كردند كه روي كاغذ، چندينبرابر سريعتر از SSDهاي SATA بود؛ اما براي گيمرها فوايد آن در بهترين حالت آنچنان محسوس نبود.
دانش متعارف برآورد ميكند كه دو دليل اصلي براي اين ناكارآمدي وجود دارد: ۱. تقريبا تمام بازيها و موتورهاي بازي هنوزهم براي اجراييبودن از هارددرايوها طراحي ميشوند؛ ۲. SSDهاي SATA هنوز آنقدر سريع هستند كه گلوگاه را بهجاي ديگري از سيستم منتقل كنند كه اغلب در فرم فشردهسازي دادهها است. قبل از اينكه بازيها بهخوبي بتوانند از مزاياي بهرهوري NVMe برخوردار شوند، چيزي بهجز SSDها هست كه بايد ارتقاي سرعت پيدا كند.
قبل از اينكه بازيها بهخوبي بتوانند از مزاياي بهرهوري NVMe برخوردار شوند، چيزي بهجز SSDها هست كه بايد ارتقاي سرعت پيدا كند
مايكروسافت و سوني اين اشكالات را در كنسولهاي جديدشان آدرسدهي كردهاند. بازيسازان بهزودي آزاد خواهند بود روي هر دو پلتفرم كنسول و پيسي متخصصانشان را داراي ذخيرهساز سريع در انديشه متخصصين بگيرند. بهعلاوه، نسل جديد كنسولها به امكانات سختافزاري اضافهاي براي رفع گلوگاهها مجهز ميشوند كه حتي اگر پيسيهاي گيمينگ كاملا ردهمتوسطي مجهز به SSDهاي پيشرفته بودند، از وجود آنها استفاده ميشد.
بااينحال، هر دو شركت به اغراقگويي يا سادهانگاري مفرط در رويكردهايشان براي نمايش قابليتهاي جديد كنسولهاي بعدي خود، مخصوصا درزمينهي SSD جديد متهم هستند. ازآنجاكه اين كنسولها هنوز پلتفرمهاي بستهاي هستند كه حتي هنوز به بازار هم عرضه نشدهاند، برخي از جزئيات تكنيكي جالب آنها هنوز مخفي نگه داشته شده است.
منبع اصلي اطلاعات متخصص رسمي دربارهي پلي استيشن ۵ و مخصوصا SSD آن، طراح ارشد، مارك سرني است. او ماه مارس در ويدئويي يكساعته PS5 را ازانديشه متخصصين تكنيكي معرفي كرد و حدودا يكسوم آن را به تمركز روي ذخيرهساز اختصاص داد. سوني بهطورغيررسميتر اختراعات متعددي ثبت كرده كه بهانديشه متخصصين به PS5 مرتبط بوده و شامل موضوعي ميشده است كه با فناوري ذخيرهساز تأييدشدهي سوني بهخوبي همخواني دارد. آن ثبت اختراع شامل تعدادي ايده است كه سوني در توسعهي PS5 پيادهسازي و آزمايش كرده و بسياري از آنها احتمالا در طراحي نهايي نيز پيادهسازي شده است.
مايكروسافت هم كمابيش رويكرد قطرهچكاني را براي رونمايي جزئيات متخصص در پستهاي وبلاگ پراكنده و برخي گفتوگوها در پيش گرفته است؛ مخصوصا گفتوگويش با ديجيتال فاندري كه آنها هم بهخوبي PS5 را پوشش دادند. آنها برندهاي بسياري از فناوريهاي مرتبط با ذخيرهسازشان را معرفي كردهاند (مثل معماري Xbox Velocity)؛ اما در بخشهاي بسياري، هنوز اطلاعي از قابليت مدانديشه متخصصين بهجز نامش نداريم.
گذشته از منابع رسمي، برخي اطلاعات افشاشده و كامنتها و شايعات متفاوتي هم داريم كه از شركاي تجاري و منابع ديگر صنعت نشئت گرفته است. اينها قطعا به افزايش ميزان هيجان كمك ميكنند؛ اما دربارهي جزئيات متخصص و مخصوصا SSD در كنسولها كمك ناچيزي كردهاند. شكافهاي ايجادشده ما را با نياز به تجزيهوتحليل آنچه براي كنسولهاي آينده پيادهسازيشدني و امكانپذير خواهد بود، تنها ميگذارد.
از SSD كنسولها چه ميدانيم؟
مايكروسافت و سوني هريك SSD اختصاصي از نوع NVMe را براي كنسولهايشان استفاده ميكنند؛ البته با تعريف متفاوتي از اختصاصي. راهكار سوني دوبرابر بهرهوري بيشتر از راهكار مايكروسافت هدفگذاري شده است و با وجود ظرفيت كمتر، قطعا هزينهي بيشتري ميبرد. SSD ساخت سوني بهرهوري مشابه با SSDهاي پرچمدار NVMe با استاندارد PCIe 4.0 ارائه ميكند كه انتظار داريم در بازار خردهفروشي در پايان سال موجود شود. درمقابل، SSD مايكروسافت بيشتر با مدلهاي ردهپايين NVMe مقايسهشدني است. هر دو درمقايسهبا هارددرايوهاي مكانيكي و حتي SSDهاي SATA قدم بزرگ رو به جلويي محسوب ميشوند.
سرعت خواندن ۵/۵ گيگابايتبرثانيه سوني هم بهشكل درخورتوجهي سريعتر از 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 هم دراختيار دارد.
كنترلر بدون حافظهي DRAM، آيا كافي است؟
بدون داشتن مشخصات مربوط به خواندن يا نوشتن تصادفي، نميتوانيم دربارهي امكان استفادهي 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ها بهخوديخود ديگر مهم نيستند.
فشردهسازي: تقويت بهرهوري SSD
مهمترين قابليت سختافزاري كنسولها كه بهعنوان مكمل بهرهوري ذخيرهساز لحاظ خواهند شد، سختافزار اختصاصي غيرفشردهسازي (Decompression) است. متعلقات بازي بايد بهشكل فشرده روي ديسك ذخيره شوند تا ملاخبار تخصصيات ذخيرهسازي را در حد معقول نگه دارند. بازيها معمولا به روشهاي فشردهسازي چندگانهاي متكي هستند: برخي روشهاي فشردهسازي ضايعكننده (Lossy compression) اختصاصا براي نوع مشخصي از دادهها (مثل صدا و تصاوير) است و برخي هم از الگوريتمهاي همهمنظورهي بدون افت كيفيت (Lossless) استفاده ميكنند؛ اما تقريبا همگي حداقل يك روش فشردهسازي دارند كه محاسبات نسبتا پيچيدهاي دارد. معماري تراشههاي گرافيكي از مدتها پيش سختافزار مخصوصي براي رمزگشايي فرمتهايي ويدئويي و همراهي از روشهاي ساده و سريع فشردهسازي بافتها مثل S3TC داشتند؛ اما اين امر دادههاي زيادي را براي غيرفشردهسازي بهعهدهي پردازندهي اصلي ميگذارد.
پردازندههاي دسكتاپ دستورها يا موتورهاي اختصاصي براي غيرفشردهسازي ندارند؛ هرچند بسياري از دستورالعملها شامل ملحقات SIMD قرار است به بهبود پردازش اين نوع وظايف در CPU كمك كند. بااينحال غيرفشردهسازي جرياني از دادهها در حجم چندين گيگابايتبرثانيه راحت نيست و سختافزار تكمنظوره ميتواند اين كار را بهينهتر انجام دهد و درعينحال زمان CPU را براي وظايف ديگر آزاد كند. سختافزار مخصوص غيرفشردهسازي در كنسولهاي آينده در تراشهي اصلي سيستم (SoC) تعبيه شدهاند؛ بنابراين ميتوانند دادهها را پس از دريافت ازطريق گذرگاه PCIe از SSD بازگشايي كنند و در حافظهي اصلي RAM قرار دهند كه براي CPU و GPU بهاشتراكگذاري شده است.
سختافزار مخصوص غيرفشردهسازي مانند اين در پلتفرمهاي رايج پيسي پيدا نميشود؛ اما بهسختي ايدهي جديد محسوب ميشود. كنسولهاي قبلي هم سختافزار غيرفشردهسازي داشتند؛ اما نه آنگونه كه بتوانند به سرعت SSDهاي NVMe برسند. پلتفرمهاي سروري اغلب از شتابدهندههاي فشردهسازي بهره ميگيرند و معمولا با شتابدهندههاي رمزنگاري دركنار هم استفاده ميشوند. اينتل قبلا چنين شتابدهندهاي را هم بهعنوان ابزار جانبي مستقل و هم بهطور مجتمع با برخي تراشههاي سروري داشته است و پردازندهي Power9 ساخت شركت IBM و مدلهاي جديدتر آن هم واحدهاي شتابدهندهي مشابهاي دارند. اين شتابدهندههاي سروري با آنچه كنسولهاي جديد نياز دارند، بيشتر قياسشدني هستند.
مايكروسافت و سوني هركدام واحدهاي غيرفشردهساز خودشان را براي بهرهوري كه از آن انتظار دارند، بهينهسازي كردهاند و هريك از الگوريتمهاي اختصاصي متفاوتي براي اين كار استفاده ميكنند: سوني از الگوريتم Kraken ساخت RAD استفاده ميكند كه الگوريتم چندمنظوره است و در اصل براي استفاده در كنسولهاي فعلي با پردازندهي نسبتا ضعيف، اما با ملاخبار تخصصيات خروجي بسيار كمتر طراحي شده بود. مايكروسافت بهطورويژه روي فشردهسازي بافتها تمركز كرده است؛ بههميندليل، بافتها بيشترين حجم از دادههاي بازي را تشكيل ميدهند كه به خواندهشدن و فشردهسازي نياز دارند. آنها الگوريتم فشردهسازي بافت را توسعه دادند كه BCPack خوانده ميشود.
زمان صرفهجوييشدهي CPU بهواسطهي اين واحدهاي غيرفشردهسازي حيرتانگيز است: مترادف با حدود ۹ هستهي پردازندهي Zen 2 براي PS5 و حدود ۵ هستهي پردازنده هم براي Xbox Series X. بهخاطر داشته باشيد اينها اعداد حداكثري هستند كه با فرض استفادهي كامل از پهناي باند SSD عنوان شدهاند. بازيهاي واقعي نخواهند توانست اين SSDها را كاملا مشغول نگه دارند؛ بنابراين، تا اين حد از توان پردازنده را هم براي غيرفشردهسازي نياز نخواهند داشت.
قابليتهاي شتابدهندهي ذخيرهساز در تراشههاي كنسولي فقط به برداشتن بار پردازشهاي فشردهسازي از دوش پردازنده ختم نميشود؛ بهخصوص سوني معدود قابليتهايي را تشريح كرده است كه البته مبهم و تفسيرشدني به معاني مختلف است.
موتورهاي DMA
دسترسي مستقيم به حافظه (Direct Memory Access يا DMA) به قابليتي اشاره ميكند كه به دستگاه جانبي توانايي خواندن و نوشتن در حافظهي RAM را بدون درگيركردن پردازندهي اصلي ميدهد. تمام دستگاههاي جانبي پرسرعت پيشرفته از DMA براي اغلب ارتباطاتشان با CPU استفاده ميكنند؛ اما اين تنها استفادهي DMA نيست. DMA Engine دستگاهي جانبي است كه فقط براي جابهجايي دادهها استفاده شود و معمولا هيچ كاري روي خود آن دادهها انجام نميدهد. پردازنده ميتواند به موتور DMA بگويد عمليات كپي را از قسمتي از RAM به قسمت ديگر انجام دهد و موتور DMA هم كار تكراري كپي گيگابايتها داده را انجام ميدهد، بدون اينكه CPU به اجراي دستورها mov بهازاي هر بخش از دادهها مجبور باشد و حافظههاي كش پردازنده آلودهي اين كار شوند.
همچنين، موتورهاي DMA اغلب ميتوانند بيشتر از عمليات كپي ساده را برعهده بگيرند: آنها عموما عمليات Scatter/gather براي سازماندهي دادهها را هم حين جابهجايي آنها انجام ميدهند. هماكنون هم NVMe قابليتهايي مثل فهرستهاي Scatter/gather را دارد كه ميتواند نياز به موتور DMA جداگانه را برطرف كند؛ اما دستورها NVMe در اين كنسولها بيشتر روي دادههاي فشردهشده كار ميكنند.
كمكپردازندهي I/O
مجموعهي وروديوخروجي در تراشهي اصلي 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 بهعنوان 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هاي سريع ممكن شده، هنوز نيازمند كار نرمافزاري از سوي فروشندگان كنسول و توسعهدهندگان بازيهاست. استخراج بهرهوري كامل از SSD پرچمداري NVMe نياز به رويكردي متفاوت به مقولهي ورودي/خروجي يا همان I/O نسبت به روشهايي دارد كه براي هارددرايوها و ديسكهاي نوري كار ميكنند.
هنوز هيچ SSD كنسولي نسل بعدي دراختيار نداريم كه آزمايش كنيم؛ اما براساس مشخصات معدودي كه تا به حال منتشر شده، ميتوانيم پيشبينيهاي خوبي درمورد ويژگيهاي عملكردي آنها داشته باشيم. اولين و مهمترين مورد اينكه رسيدن به سرعتهاي خواندن ترتيبي تبليغ شده، نياز به مشغول نگه داشتن SSDها با تعداد زيادي درخواست براي داده خواهد داشت. يكي از سريعترين SSDهايي كه تاكنون تست كردهايم -PM1725a ساخت سامسونگ- را در انديشه متخصصين بگيريد. اين مدل قادر است به سرعت بيش از ۶.۲ گيگابايت در ثانيه در عمليات خواندن ترتيبي در بلاكهاي ۱۲۸ كيلوبايتي برسد.
اما درخواست اين بلاكها با تعداد يكي در هر زمان (Q1T1) سرعت را به ۶۸۰ مگابايت در ثانيه تقليل ميدهد. اين درايو نياز به عمق صف (queue depth) حداقل به ميزان ۱۶ دارد تا به سرعت ۵ گيگابايتبرثانيه برسد و عمق صف ۳۲ (QD32) را لازم دارد تا به سرعت ۶ گيگابايت در ثانيه برسد. SSDهاي جديدتر با حافظههاي فلش سريعتر ممكن است به اين عمق صفهاي بالا نياز نداشته باشند؛ اما بازيها قطعا نياز دارند كه چيزي بيش از چند درخواست در يك زمان ارسال كنند تا SSD كنسول را مشغول نگه دارند.
كنسولها توانايي اين را ندارند كه ميزان زيادي از قدرت پردازنده را براي رد و بدل كردن اطلاعات با SSDها هدر دهند، بنابراين به راهي نياز دارند كه فقط يك يا دو رشتهي پردازشي بتوانند تمام درخواستهاي I/O را مديريت كنند و زمان باقيماندهي CPU از هستههايش را هم براي انجام كاري سودمند روي دادهها دراختيار داشته باشند. اين يعني كنسولها بايد با استفاده از APIهاي نامتقارن برنامهريزي شوند، جايي كه يك رشته، يك درخواست خواندن به سيستمعامل يا كمكپردازندهي I/O ميدهد؛ اما به كار خودش بازميگردد تا زمانيكه درخواست پردازش شده باشد. و رشتهي پردازشي بعدا دوباره بايد چك كند كه درخواستش انجام شده است يا خير. در دوران هارددرايوها، چنين رشتهاي بايد زمانيكه منتظر كامل شدن عمليات خواندن بود، خاموش ميشد و تعدادي از وظايف غيرمرتبط با ذخيرهساز را انجام ميداد. اما حالا، آن رشته ميتواند آن زمان را به ارسال درخواستهاي بسيار بيشتر به ذخيرهساز اختصاص دهد.
پيادهسازي قابليتهاي جديد كه توسط SSDهاي سريع ممكن شده، هنوز نيازمند كار نرمافزاري از سوي فروشندگان كنسول و توسعهدهندگان بازيها است
به جز بالا نگه داشتن ميزان عمق صف، بهدست آوردن سرعت كامل از 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 از پنج سال پيش به ردههاي بالاي بازار مصرفكننده رسيدند. اكنون آنها در حال عبور از نقطهي اوج و به خوبي در راه تبديل شدن به استاندارد اصلي براي ذخيرهسازي هستند. ارزش PS5 و ارزش ايكس باكس سري ايكس در ايالات متحده ۴۹۹ دلار اعلام شد.
هم انديشي ها