Computer Organization and Design ARM Edition: The Hardware Software Interface
برای تدریس کتاب درسی معماری کامپیوتر، انتخاب معماری مجموعه دستورالعمل کاملاً مهم است. ما مجموعه دستورالعملی را نمیخواهیم که نیاز به توضیح دادن ویژگیهای غیر ضروری و نامتناسبی داشته باشد، به خصوص برای کسی که این اولین مجموعه دستورالعملی است که میخواهد یاد میگیرد و مهم نیست که آن مجموعه دستورالعمل چقدر محبوب است. در حالت ایده آل، اولین مجموعه دستورالعملی که یاد میگیرید باید دقیقاً مثل اولین عشق شما یک الگو باشد؛ و با کمال تعجب، هر دو را نیز از روی علاقه به یاد میآورید.
از آنجا که در آن زمان انتخابهای زیادی وجود داشت، برای ویرایش اول کتاب «معماری کامپیوتر: یک رویکرد کمی»، ما مجموعه دستورالعمل RISC-style خودمان را اختراع کردیم. با توجه به محبوبیت روزافزون و ظرافت ساده مجموعه دستورالعمل MIPS، برای ویرایش اول این کتاب و ویرایشهای بعدی کتاب دیگر، به MIPS سوئیچ کردیم. MIPS به خوبی به ما و خوانندگان ما خدمت کرده است.
محبوبیت باورنکردنی مجموعه دستورالعمل ARM، باعث شد که برخی از مدرسان نسخه ای از کتاب مبتنی بر ARM را از ما درخواست کنند. ما حتی یک نسخه از آن را برای زیر مجموعه ای از فصلها برای نسخه آسیایی این کتاب امتحان کردیم. افسوس، همانطور که میترسیدیم، آرایش عجیب و غریب مجموعه دستورالعمل ARMv7 (آدرس 32 بیتی) برای تحمل ما بیش از حد بود، بنابراین ما تغییرات را دائمی نکردیم. در کمال تعجب، وقتی ARM یک مجموعه دستورالعمل آدرس 64 بیتی را ارائه داد، آنقدر تغییرات قابل توجهی ایجاد کرده بود که به نظر ما شباهت بیشتری به MIPS نسبت به ARMv7 در آن ایجاد کرده بود. اگرچه ARMv8 بسیار بزرگتر از MIPS است - کتابچه راهنمای مرجع معماری ARMv8 دارای 5400 صفحه است - ما زیر مجموعه ای از دستورالعملهای ARMv8 را پیدا کردیم که از نظر اندازه و طبیعت، مشابه با هسته MIPS است که در نسخههای قبلی استفاده شده است و ما برای جلوگیری از سردرگمی آنها را LEGv8 مینامیم. از این رو، ما این نسخه ARMv8 را نوشتیم.
با توجه به اینکه ARMv8 هر دو دستورالعملهای آدرس 32 بیتی و دستورالعملهای آدرس 64 بیتی را در همان مجموعه دستورالعمل ارائه میدهد، میتوانستیم مجموعههای دستورالعمل را تغییر دهیم اما اندازه آدرس را در 32 بیت نگه داشته باشیم. ناشر ما از اساتیدی که از کتاب استفاده میکردند نظرسنجی کرد و دریافت که 75٪ یا آدرسهای بزرگتر را ترجیح میدهند یا اهمیتی برایشان ندارد، بنابراین ما فضای آدرس را به 64 بیت افزایش دادیم که شاید امروزه منطقیتر از 32 بیتی باشد.
نسخه ARM جدید کتاب Computer Organization and Design، زیر مجموعه ای از معماری ARMv8-A را به تصویر میکشد که برای ارائه اصول فناوریهای سخت افزاری، زبان اسمبلی، حساب کامپیوتری، خط لوله، سلسله مراتب حافظه و I/O استفاده میشود.