توضیحات
کتاب و حلالمسائل سازمان و معماری سیستم های کامپیوتری جان دی. کارپینلی(Carpinelli) ویرایش اول(2001) (زبان انگلیسی)
در این مطلب کتاب سازمان و معماری سیستم های کامپیوتری جان دی. کارپینلی(Carpinelli) ویرایش اول(2001) و حلالمسائل ویرایش اول(2001) به صورت pdf و زبان انگلیسی جهت دانلود قرار داده شده است. برای ویرایش اول(2001) دو حلالمسائل قرار داده شده که یکی از حلالمسائل ها از سایت چگ(Chegg) تهیه شده است و فصل های 1 تا 12 را پوشش می دهد.
در این مطلب، کتاب « سازمان و معماری سیستم های کامپیوتری » نوشتهی جان دی. کارپینلی به همراه حلالمسائل آن در ویرایش های زیر بهصورت PDF و به زبان انگلیسی برای دانلود قرار داده شده است.
کتاب اصلی:
- ویرایش اول (2001)
حلالمسائل:
- ویرایش اول (2001):
- حلالمسائل جامع تهیهشده از Chegg: مجموعهای بسیار کامل و گسترده با حدود 552 صفحه، که پاسخهای کامل و گامبهگام مسائل فصلهای 1 تا 12 را پوشش میدهد (شامل توضیحات تشریحی، شکلها و نکات حل). این نسخه برای دانشجویان و اساتیدی که به دنبال درک عمیقتر هستند، بسیار ارزشمند است.
- حل المسائل رسمی: 123 صفحه
دانلود نمونه رایگان حلالمسائل Chegg سازمان و معماری سیستم های کامپیوتری جان دی. کارپینلی ویرایش اول
دانلود نمونه رایگان حلالمسائل سازمان و معماری سیستم های کامپیوتری جان دی. کارپینلی ویرایش اول
معرفی کتاب « سازمان و معماری سیستم های کامپیوتری » نوشتهی جان دی. کارپینلی
Computer Systems Organization and Architecture
نویسندگان:
- جان دی. کارپینلی (John D. Carpinelli)
کتاب « سازمان و معماری سیستمهای کامپیوتری » نوشتهی جان دی. کارپینلی یک منبع آموزشی جامع و ساختارمند در حوزهٔ معماری کامپیوتر است که با رویکردی تدریجی و روشن، خواننده را از اصول اولیهٔ منطق دیجیتال تا طراحی و تحلیل یک سیستم کامپیوتری کامل هدایت میکند. این کتاب با آغاز از مفاهیم پایهای مانند جبر بول، مدارهای ترکیبی و ترتیبی و ماشینهای حالت، بنیانی محکم برای درک رفتار سختافزارهای دیجیتال فراهم میسازد. سپس با عبور از سطح گیتها و مدارها، وارد مباحث سازمان داخلی کامپیوتر میشود و نقش مجموعهدستورالعملها، ساختار CPU، چرخهٔ دستورالعمل، و شیوهٔ تعامل پردازنده با حافظه و واحدهای ورودی/خروجی را بهصورت شفاف توضیح میدهد.
کارپینلی در این کتاب تلاش کرده است پیوستگی میان مفاهیم نظری و طراحی عملی را حفظ کند؛ ازاینرو علاوه بر معرفی اصول، ریزعملیاتها، ساخت مسیر داده و واحد کنترل، مثالهای واقعی مانند ریزپردازندهٔ 8085، پردازندهٔ پنتیوم و معماری ایتانیوم را نیز بررسی میکند تا خواننده تصویری واقعی از پیادهسازیهای صنعتی به دست آورد. کتاب همچنین مباحث مهمی مانند حساب کامپیوتری، سازمان حافظه و مفاهیم پیشرفتهای همچون ریزبرنامهنویسی، معماری RISC، خط لوله و پردازش موازی را پوشش میدهد و موجب میشود خواننده دیدی جامع نسبت به چگونگی کارکرد و طراحی سامانههای پردازشی مدرن پیدا کند.
بهطور کلی، این کتاب با ارائهٔ یک مسیر آموزشی منطقی، پیوسته و سهمرحلهای—از منطق دیجیتال، به معماری کامپیوتر، و سپس مباحث پیشرفته—برای دانشجویان و علاقهمندان معماری کامپیوتر یک منبع بسیار روشن، دقیق و کاربردی محسوب میشود و درک عمیقی از نحوهٔ تبدیل مفاهیم پایهای دیجیتال به یک پردازنده و سیستم کامپیوتری کامل ارائه میدهد.
در این کتاب ابتدا مفاهیم پایهای سیستمهای دیجیتال و ساختار کلی رایانه معرفی میشود و سپس اجزای اصلی سیستم مانند پردازنده، حافظه، واحدهای ورودی و خروجی و گذرگاهها بهصورت مرحلهبهمرحله بررسی میشوند. نویسنده تلاش کرده است مفاهیم پیچیدهٔ معماری رایانه را با توضیحات مفهومی، مثالهای کاربردی و شکلهای آموزشی بیان کند تا خواننده بتواند ارتباط میان اجزای مختلف سیستم را بهخوبی درک کند.
یکی از موضوعات مهمی که در این کتاب بررسی میشود ساختار و عملکرد واحد پردازش مرکزی است. در این بخش مفاهیمی مانند مجموعه دستورالعملها، قالب دستورها، روشهای آدرسدهی، چرخهٔ اجرای دستور و نحوهٔ تعامل واحد کنترل با سایر بخشها توضیح داده میشود. همچنین نقش ثباتها، واحد حساب و منطق و نحوهٔ اجرای عملیات محاسباتی و منطقی در پردازنده بررسی میگردد.
در ادامه، کتاب به مبحث حافظهٔ رایانه میپردازد. در این بخش انواع حافظه مانند حافظهٔ اصلی، حافظهٔ نهان و حافظههای جانبی معرفی میشوند و ساختار، عملکرد و نحوهٔ مدیریت آنها در سیستم مورد بررسی قرار میگیرد. همچنین سلسلهمراتب حافظه و تأثیر آن بر کارایی سیستم توضیح داده میشود.
بخش دیگری از کتاب به سیستمهای ورودی و خروجی اختصاص دارد. در این قسمت نحوهٔ ارتباط دستگاههای جانبی با پردازنده، روشهای انتقال داده، وقفهها و مدیریت ورودی و خروجی توضیح داده میشود. این مباحث برای درک نحوهٔ تعامل رایانه با محیط بیرونی بسیار اهمیت دارند.
از دیگر موضوعات مهم مطرحشده در کتاب میتوان به گذرگاههای سیستم، ساختار ارتباطی میان اجزای رایانه، روشهای افزایش کارایی پردازنده و اصول طراحی سیستمهای کامپیوتری اشاره کرد. نویسنده با استفاده از نمودارها و مثالهای آموزشی تلاش کرده است مفاهیم نظری را به شکل قابل فهم و کاربردی ارائه دهد.
کتاب « سازمان و معماری سیستمهای کامپیوتری » نوشتهی کارپینلی یکی از منابع آموزشی مهم در حوزهٔ مهندسی کامپیوتر است که به بررسی ساختار داخلی رایانه و نحوهٔ طراحی و عملکرد اجزای مختلف آن میپردازد. هدف اصلی این کتاب آشنا کردن دانشجویان با اصول پایهای طراحی سیستمهای کامپیوتری و درک ارتباط میان سختافزار و نرمافزار در سطح معماری سیستم است. این کتاب معمولاً در دورههای کارشناسی مهندسی کامپیوتر، فناوری اطلاعات و رشتههای مرتبط به عنوان منبع درسی استفاده میشود.
به طور کلی این کتاب دید جامعی از ساختار داخلی رایانه ارائه میدهد و به دانشجویان کمک میکند تا نحوهٔ کار اجزای مختلف یک سیستم کامپیوتری و ارتباط میان آنها را درک کنند. مطالعهٔ این کتاب پایهٔ مناسبی برای یادگیری مباحث پیشرفتهتر در زمینهٔ معماری رایانه، طراحی پردازنده و سیستمهای دیجیتال فراهم میکند.
سرفصل های کتاب
« سازمان و معماری سیستم های کامپیوتری » نوشتهی جان دی. کارپینلی
فصل 1: مبانی منطق دیجیتال
فصل 2: مقدمهای بر ماشینهای حالت متناهی
فصل 3: معماری مجموعهدستورالعملها
فصل 4: مقدمهای بر سازمان کامپیوتر
فصل 5: زبانهای انتقال ثبات
فصل 6: طراحی واحد پردازش مرکزی
فصل 7: طراحی واحد کنترل ریزتوالیساز
فصل 8: حساب کامپیوتری
فصل 9: سازمان حافظه
فصل 10: سازمان ورودی/خروجی
فصل 11: رایانش با مجموعهدستورالعمل کاهشیافته
فصل 12: مقدمهای بر پردازش موازی
نمای کلی محتوای کتاب
بخش ۱: منطق دیجیتال و ماشینهای حالت
فصل ۱: مبانی منطق دیجیتال
این فصل بنیان نظری و عملی منطق دیجیتال را بنا میگذارد؛ دانشی که زیربنای تمامی مدارهای دیجیتال و در نتیجه ریشهٔ عملکرد رایانههای امروزی محسوب میشود. فصل با معرفی جبر بول آغاز میشود و نشان میدهد چگونه با مجموعهای محدود از عملگرهای منطقی میتوان رفتارهای پیچیدهٔ دیجیتال را مدلسازی کرد. سپس مدارهای ترکیبی پایه معرفی میشوند، مدارهایی که خروجی آنها صرفاً تابعی از ورودیهای لحظهای است. اجزای کلیدی همچون مالتیپلکسر، دیکدر، انکدر، مقایسهکننده، جمعکننده، تفریقکننده و بلوک حافظه تحلیل میشوند تا چارچوب معماری مدارات پردازشی پایه بهطور دقیق روشن گردد. در ادامه، مدارهای ترتیبی معرفی میشوند؛ سامانههایی که علاوهبر ورودی لحظهای، از وضعیت پیشین نیز تأثیر میپذیرند. عناصر مهمی مانند فلیپفلاپها، شمارندهها و ثباتهای انتقال مورد بررسی قرار میگیرند. فصل با معرفی دستگاههای منطقی قابلبرنامهریزی تکمیل میشود که در طراحیهای مدرن امکان انعطافپذیری و توسعهپذیری گستردهای فراهم میکنند.
فصل ۲: مقدمهای بر ماشینهای حالت متناهی
این فصل به تشریح اصول مدلسازی سامانههای ترتیبی با استفاده از ماشینهای حالت متناهی میپردازد. ابتدا نمودارهای حالت و جدولهای حالت معرفی میشوند تا شیوهٔ نمایش رفتار پویا و تغییرات حالت یک سامانه تبیین گردد. سپس ماشینهای میلی و مور بهعنوان دو رویکرد اصلی در طراحی FSM توضیح داده شده و تفاوت آنها از منظر تولید خروجی تشریح میشود. بخش بعدی به طراحی عملی FSM میپردازد و مثالهایی کاربردی نظیر شمارندهٔ پیمانهای، بررسیکنندهٔ رشته و کنترلکنندهٔ عوارض جادهای ارائه میشود. سپس روش تبدیل نمودار حالت به پیادهسازی سختافزاری بررسی میشود؛ شامل تخصیص مقادیر باینری به حالتها، طراحی منطق حالت بعدی و تولید خروجی. فصل با بحث دربارهٔ ملاحظات عملی، مانند مدیریت حالتهای استفادهنشده و چالشهای طرحهای ناهمگام، پایان مییابد.
بخش ۲: سازمان و معماری کامپیوتر
فصل ۳: معماری مجموعهدستورالعملها
فصل با معرفی سطوح زبانهای برنامهنویسی آغاز میشود و اهمیت زبان اسمبلی بهعنوان پلی میان نرمافزار و سختافزار تبیین میگردد. سپس انواع دستورالعملها، قالبهای داده، شیوههای آدرسدهی و ساختار قالب دستورالعمل با جزئیات کامل توضیح داده میشوند. این مفاهیم نشان میدهند چگونه مجموعهدستورالعملها (ISA) رفتار قابلمشاهدهٔ CPU را شکل میدهند. در ادامه اصول طراحی ISA مطرح میشوند و یک ISA ساده برای درک عملی مفاهیم بررسی میشود. بخش پایانی فصل به معماری مجموعهدستورالعمل ریزپردازندهٔ ۸۰۸۵ اختصاص دارد که نمونهای کلاسیک از ISA تکاملیافته در دوران ریزپردازندههای اولیه محسوب میشود.
فصل ۴: مقدمهای بر سازمان کامپیوتر
این فصل ساختار کلی یک سیستم کامپیوتری را تبیین میکند و ارتباط میان CPU، زیرسامانهٔ حافظه و زیرسامانهٔ ورودی/خروجی را نشان میدهد. مفاهیمی همچون گذرگاه سیستم و چرخهٔ دستورالعمل تشریح میشوند و نقش آنها در هماهنگسازی جریان داده و کنترل بررسی میشود. سپس سازمان داخلی واحد پردازش مرکزی و ساختار انواع حافظهها معرفی میگردند. تفاوت معماریهای فوننویمان و هاروارد بررسی میشود و شیوهٔ مدیریت دادههای چندبایتی توضیح داده میشود. بخشهای بعدی به سازوکارهای اتصالیابی ورودی/خروجی و بررسی یک نمونهٔ واقعی از رایانه مبتنی بر ۸۰۸۵ اختصاص دارند تا تعامل میان اجزای نظری و پیادهسازی عملی مشخص شود.
فصل ۵: زبانهای انتقال ثبات
در این فصل زبان انتقال ثبات یا RTL بهعنوان ابزار اصلی برای مشخصهگذاری و مدلسازی سامانههای دیجیتال معرفی میشود. ابتدا ریزعملیاتها توضیح داده میشوند و نشان داده میشود چگونه RTL رفتار و جریان داده میان ثباتها و واحدهای عملیاتی را تعریف میکند. سپس نحوهٔ استفاده از RTL در توصیف سامانههای ساده و پیچیده بیان میشود. فصل با معرفی زبان توصیف سختافزار VHDL ادامه مییابد و سبکهای مختلف انتزاع در طراحی دیجیتال، از توصیف سطح بالا تا توصیف سطح پایین، تحلیل میشود.
فصل ۶: طراحی واحد پردازش مرکزی
این فصل با اصول و مشخصات پایهٔ لازم برای طراحی CPU شروع میشود. سپس فرایند طراحی یک CPU بسیار ساده از ابتدا تا انتها توضیح داده میشود؛ از واکشی و رمزگشایی دستورالعمل تا طراحی مسیرهای داده و واحد کنترل. در ادامه طراحی یک CPU نسبتاً پیچیدهتر ارائه میشود تا مفهوم توسعهٔ معماری روشنتر گردد. فصل همچنین محدودیتهای ذاتی CPUهای ساده، از جمله کمبود رجیسترها، نبود حافظهٔ نهان و تعداد اندک گذرگاههای داخلی، بررسی میکند. در پایان، ساختار داخلی ریزپردازندهٔ ۸۰۸۵ بهعنوان نمونهٔ واقعی تحلیل میشود.
فصل ۷: طراحی واحد کنترل ریزتوالیساز
این فصل به بررسی واحدهای کنترل مبتنی بر ریزبرنامهریزی میپردازد. فصل با ارائهٔ مفاهیم ریزدستور، ریزکد و مکانیسم توالیسازی آغاز میشود. سپس یک ریزتوالیساز بسیار ساده و یک ریزتوالیساز نسبتاً پیچیدهتر طراحی میشود تا سازوکار تولید ریزعملیات و مدیریت توالیها روشن گردد. روشهای بهینهسازی مانند زیرروالهای ریز و پرشهای ریزکد نیز تشریح میشوند. در ادامه، مقایسهای تحلیلی میان کنترل سیمسخت و کنترل ریزبرنامهای ارائه میشود. فصل با بررسی معماری ریزکدشدهٔ پردازندهٔ پنتیوم پایان مییابد که نمونهای مهم از ریزمعماریهای تجاری مدرن است.
فصل ۸: حساب کامپیوتری
این فصل شیوهٔ نمایش و پردازش دادههای عددی را در رایانه بررسی میکند. ابتدا نمایش بدون علامت و عملیات پایهای بر روی آن توضیح داده میشود؛ سپس نمایش اعداد با علامت، از جمله سیستم مکمل دو، تشریح میگردد. کد دهدهی دودویی (BCD) و روش اجرای عملیات روی آن بررسی میشوند. سختافزارهای تخصصی محاسبات مانند همپردازندهها، لولهسازی و درختهای والاس تحلیل میشوند. در ادامه، نمایش و محاسبات ممیز شناور مطالعه میشود و مفاهیمی همچون قالب عددی، خطاهای عددی و روشهای جمع و ضرب ممیز شناور تشریح میشوند. فصل با معرفی استاندارد IEEE 754 کامل میشود که چارچوب اصلی نمایش ممیز شناور در سامانههای امروزی است.
فصل ۹: سازمان حافظه
فصل با معرفی ساختار سلسلهمراتبی حافظه و نقش کلیدی آن در کارایی شروع میشود. سپس حافظهٔ نهان بهعنوان مؤثرترین راهکار کاهش فاصلهٔ سرعت میان CPU و حافظهٔ اصلی بررسی میشود. انواع طرحهای نگاشت، جایگزینی و سیاستهای نوشتن تشریح میشوند. در ادامه، حافظهٔ مجازی و سازوکارهای صفحهبندی و قطعهبندی همراه با مباحث حفاظت حافظه بررسی میشود. مباحث پیشرفتهٔ مربوط به حافظهٔ نهان و مجازی با نمونههایی واقعی مانند معماری ایتانیوم تشریح میشوند. در پایان، مدیریت حافظه در رایانههای پنتیوم/ویندوز بهعنوان نمونهٔ عملی تحلیل میگردد.
فصل ۱۰: سازمان ورودی/خروجی
این فصل راهکارهای انتقال داده بین CPU و دستگاههای ورودی/خروجی را بررسی میکند. روشهایی مانند انتقال غیرهمزمان، ورودی/خروجی برنامهریزیشده و استفاده از وقفهها تشریح میشوند. دسترسی مستقیم به حافظه (DMA) و تعامل آن با CPU بررسی میشوند. سپس پردازندههای ورودی/خروجی، مبانی ارتباط سریال و انواع استانداردهای رایج از جمله RS-232 و USB معرفی و تحلیل میشوند.
بخش ۳: مباحث پیشرفته
فصل ۱۱: رایانش با مجموعهدستورالعمل کاهشیافته
این فصل اصول و منطق معماری RISC را بررسی میکند. مفاهیمی مانند دستورالعملهای با طول ثابت، کاهش حالتهای آدرسدهی، استفاده از رجیسترهای متعدد، کنترل سیمسخت و محدودسازی دسترسی به حافظه تحلیل میشوند. سپس پیادهسازی خط لوله، بارگذاری و پرش تأخیری، اجرای پیشبینانه و نقش کلیدی کامپایلر بهینهساز تشریح میشود. تعارضهای خط لوله و راهکارهای مقابله با آنها بررسی میشود و مقایسهٔ دقیق میان معماریهای RISC و CISC ارائه میگردد. در پایان، ریزپردازندهٔ ایتانیوم بهعنوان نمونهای برجسته از ریزمعماریهای مبتنی بر اصول RISC معرفی میشود.
فصل ۱۲: مقدمهای بر پردازش موازی
این فصل با معرفی روشهای موازیسازی در سامانههای تکپردازندهای شروع میشود و سپس معماریهای چندپردازندهای، طبقهبندی فلین، توپولوژی شبکهها و معماریهای MIMD را بررسی میکند. روشهای ارتباطی میان پردازندهها شامل شبکههای ثابت، بازپیکربندیپذیر و چندمرحلهای تشریح میشوند. سازماندهی حافظه و مسئلهٔ همخوانی نهانگاه در سیستمهای چندپردازندهای تحلیل میشود. نقش سیستمعامل در مدیریت کارآمد پردازش موازی و نمونههایی از الگوریتمهای موازی مانند مرتبسازی حبابی و ضرب ماتریس ارائه میشوند. فصل با بررسی معماریهای جایگزین مانند رایانش جریانداده، آرایههای سیستولیک و شبکههای عصبی تکمیل میگردد.
مروری جامع بر مباحث کتاب
بخش ۱: منطق دیجیتال و ماشینهای حالت
فصل ۱: مبانی منطق دیجیتال
این فصل به معرفی بنیادیترین مفاهیم منطق دیجیتال میپردازد؛ مفاهیمی که زیربنای تمام مدارهای دیجیتال و در نتیجه تمام رایانههای امروزی هستند. فصل با معرفی جبر بول آغاز میشود و نشان میدهد چگونه میتوان با مجموعهای از عملگرهای ساده، رفتارهای پیچیدهٔ منطقی را بیان کرد. سپس مدارهای ترکیبی پایه معرفی میشوند؛ مدارهایی که خروجی آنها بهطور کامل به ورودیهای لحظهای وابسته است. اجزای مهمی مانند مالتیپلکسر، دیکدر، انکدر، مقایسهکننده، جمعکننده و تفریقکننده تشریح میشوند تا ساختار کلی مداراتی که عملیات پردازشی اولیه را انجام میدهند برای خواننده روشن شود. در ادامه، مدارهای ترتیبی معرفی میگردند؛ اجزایی مانند فلیپفلاپ، شمارنده و ثبات انتقال که علاوهبر ورودی لحظهای، بر اساس وضعیت قبلی خود عمل میکنند. فصل با معرفی دستگاههای منطقی قابل برنامهریزی تکمیل میشود و نقش آنها در طراحی مدارهای مدرن توضیح داده میشود.
فصل ۲: مقدمهای بر ماشینهای حالت متناهی
این فصل با معرفی نمودارهای حالت و جدولهای حالت آغاز میشود تا نشان دهد چگونه میتوان رفتار یک سامانهٔ ترتیبی را مدلسازی کرد. ماشینهای میلی و مور معرفی میشوند و تفاوت آنها از نظر تولید خروجی شرح داده میشود. فصل سپس به طراحی نمودارهای حالت با چند مثال عملی مانند شمارندهٔ پیمانهای، بررسیکنندهٔ رشته و کنترلکنندهٔ عوارض جادهای میپردازد. در ادامه، روش تبدیل نمودار حالت به پیادهسازی سختافزاری بیان میشود که شامل تخصیص مقادیر عددی به حالتها، تولید منطق حالت بعدی و طراحی منطق تولید خروجی است. فصل با بیان ملاحظات عملی مانند مدیریت حالتهای استفادهنشده و طرحهای ناهمگام پایان مییابد.
بخش ۲: سازمان و معماری کامپیوتر
فصل ۳: معماری مجموعهدستورالعملها
فصل با معرفی سطوح مختلف زبانهای برنامهنویسی آغاز میشود و نقش زبان اسمبلی بهعنوان واسط میان نرمافزار و سختافزار تشریح میگردد. انواع دستورالعملها، انواع دادهها، شیوههای آدرسدهی و قالبهای دستورالعمل بهصورت مفصل توضیح داده میشوند. این مباحث به خواننده کمک میکند بفهمد چگونه میتوان با مجموعهای از دستورالعملهای ساده، ماشین را برای انجام کارهای پیچیده هدایت کرد. سپس نحوهٔ طراحی یک ISA تشریح میشود و یک ISA نسبتاً ساده بهعنوان نمونه بررسی میشود. در بخش پایانی، معماری مجموعهدستورالعمل ریزپردازندهٔ ۸۰۸۵ تحلیل میشود تا نمونهای واقعی از یک ISA کلاسیک برای خواننده ترسیم گردد.
فصل ۴: مقدمهای بر سازمان کامپیوتر
فصل با بررسی سازمان پایهٔ یک کامپیوتر آغاز شده و نشان میدهد چگونه واحد پردازش مرکزی، زیرسامانهٔ حافظه و زیرسامانهٔ ورودیخروجی با یکدیگر همکاری میکنند. مفهوم گذرگاه سیستم و چرخهٔ دستورالعمل تشریح میشود. سپس سازمان داخلی CPU، انواع حافظه و نحوهٔ اتصالیابی آنها توضیح داده میشود. مقایسهٔ معماریهای فوننویمان و هاروارد، چگونگی سازماندهی دادههای چندبایتی و نحوهٔ اتصالیابی ورودی/خروجی به سیستم از مباحث اساسی این فصل هستند. در ادامه یک کامپیوتر ساده و نمونهٔ واقعی مبتنی بر ۸۰۸۵ بررسی میشود تا ارتباط نظریه و عمل برای خواننده روشن گردد.
فصل ۵: زبانهای انتقال ثبات
این فصل نقش زبان RTL را در مشخصهگذاری سختافزار دیجیتال توضیح میدهد. ریزعملیاتها معرفی میشوند و نشان داده میشود که چگونه میتوان با استفاده از RTL رفتار مؤلفههای دیجیتال را دقیقاً تعریف کرد. سپس روش استفاده از RTL برای توصیف سامانههای ساده و پیچیده بیان میشود. زبان توصیف سختافزار VHDL بهعنوان نمونهٔ قدرتمند و استاندارد معرفی میشود و انواع انتزاع در طراحی سختافزار با استفاده از آن بررسی میگردد.
فصل ۶: طراحی واحد پردازش مرکزی
فصل با بیان الزامات طراحی CPU آغاز میشود و سپس طراحی یک CPU بسیار ساده بهصورت کامل پوشش داده میشود. چرخهٔ واکشی، رمزگشایی و اجرای دستورالعمل، طراحی مسیرهای داده و طراحی واحد کنترل از مفاهیم کلیدی این بخش هستند. پس از تکمیل CPU بسیار ساده، یک CPU نسبتاً ساده طراحی میشود تا خواننده با ساختاری پیچیدهتر آشنا گردد. سپس محدودیتهای CPUهای ساده مانند نبود حافظهٔ نهان یا تعداد کم گذرگاهها بررسی میشود. در پایان ساختار داخلی ریزپردازندهٔ ۸۰۸۵ تحلیل میشود.
فصل ۷: طراحی واحد کنترل ریزتوالیساز
این فصل به معماری واحدهای کنترل ریزبرنامهای میپردازد. ابتدا ریزدستور، قالب ریزکد و نحوهٔ توالیسازی آن معرفی میشود. سپس دو ریزتوالیساز، یکی بسیار ساده و دیگری نسبتاً ساده، بهصورت مرحلهبهمرحله طراحی میشوند. روشهای کاهش طول ریزبرنامه مانند زیرروالهای ریز و پرشهای ریزکد نیز تشریح میگردند. در ادامه، کنترل سیمسخت با کنترل ریزبرنامهای مقایسه میشود و مزایا و معایب هر روش تحلیل میشود. در پایان، معماری ریزکدشدهٔ پردازندهٔ پنتیوم بهعنوان نمونهٔ واقعی بررسی میشود.
فصل ۸: حساب کامپیوتری
این فصل به چگونگی نمایش و پردازش اعداد در رایانه میپردازد. نمایش بدون علامت و عملیات پایهٔ آن معرفی میشود و روشهای پیادهسازی ضرب و تقسیم توضیح داده میشود. سپس نمایش اعداد با علامت و دو مکمل تشریح میشود. کد BCD و عملیات آن معرفی میشود و سختافزارهای تخصصی محاسبات مانند همپردازندهها، لولهسازی محاسباتی و درختهای والاس تحلیل میشوند. در ادامه فرمتهای ممیز شناور و ویژگیهای عددی آنها بررسی میشود. فصل با معرفی استاندارد IEEE 754 تکمیل میشود.
فصل ۹: سازمان حافظه
این فصل با معرفی سلسلهمراتب حافظه و اهمیت آن در کارایی سیستم آغاز میشود. سپس حافظهٔ نهان بهصورت دقیق تحلیل میشود و انواع نگاشت، جایگزینی، نوشتن و اندازهگیری کارایی بهتفصیل توضیح داده میشوند. حافظهٔ مجازی و مفاهیم صفحهبندی، قطعهبندی و حفاظت حافظه در ادامه شرح داده میشوند. مباحث پیشرفتهٔ حافظهٔ نهان و مجازی همراه با نمونهٔ واقعی از معماری ایتانیوم ارائه میشود. مدیریت حافظه در رایانهٔ پنتیوم/ویندوز بهعنوان نمونهٔ عملی بررسی میگردد.
فصل ۱۰: سازمان ورودی/خروجی
در این فصل روشهای انتقال داده، از انتقال غیرهمزمان تا ورودی/خروجی برنامهریزیشده بررسی میشوند. سپس وقفهها و نقش مهم آنها در مدیریت کارا و بلادرنگ سیستم تشریح میشوند. دسترسی مستقیم به حافظه و طراحی سختافزارهای مورد نیاز برای آن بیان میشود. پردازندههای ورودی/خروجی، ارتباط سریال و استانداردهای مختلف سریال مانند RS-232 و USB نیز معرفی و تحلیل میشوند.
بخش ۳: مباحث پیشرفته
فصل ۱۱: رایانش با مجموعهدستورالعمل کاهشیافته
این فصل با توضیح منطق طراحی RISC آغاز میشود و اصول مهم آن مانند طول ثابت دستورالعملها، کاهش حالتهای آدرسدهی و محدودسازی دسترسی به حافظه شرح داده میشود. مفاهیم کلیدی مانند ریزکنترل سیمسخت، رجیسترهای متعدد، پیادهسازی خط لوله، بارگیری و پرش تأخیری، اجرای پیشبینانه و نقش کامپایلر بهینهساز تحلیل میگردند. در ادامه، خط لولههای دستورالعمل و تعارضهای داده و انشعاب بررسی میشوند. تفاوتهای RISC و CISC تحلیل میگردند و در پایان ریزپردازندهٔ ایتانیوم بهعنوان نمونهٔ واقعی معرفی میشود.
فصل ۱۲: مقدمهای بر پردازش موازی
فصل با توضیح روشهای موازیسازی در سامانههای تکپردازندهای آغاز میشود. سپس معماریهای چندپردازندهای بررسی میشوند و طبقهبندی فلین، توپولوژیها و معماریهای MIMD معرفی میگردند. ارتباطات میان پردازندهها شامل شبکههای ثابت، بازپیکربندیپذیر و شبکههای چندمرحلهای تحلیل میشوند. سازماندهی حافظه در سیستمهای چندپردازندهای، مفهوم حافظهٔ اشتراکی و مسئلهٔ همخوانی نهانگاه تشریح میشوند. نقش سیستمعامل در مدیریت پردازش موازی و نمونههایی از الگوریتمهای موازی مانند مرتبسازی حبابی و ضرب ماتریس ارائه میشود. در نهایت معماریهای جایگزین مانند رایانش جریانداده، آرایههای سیستولیک و شبکههای عصبی بررسی شده و فصل با یک جمعبندی پایان مییابد.
ساختار کتاب
سازمان و معماری سیستمهای کامپیوتری – کارپینلی
بخش ۱: منطق دیجیتال و ماشینهای حالت
فصل ۱: مبانی منطق دیجیتال
- مبانی جبر بول و مدلسازی منطقی
- مدارهای ترکیبی پایه و اجزای پردازشی ساده
- عناصر ترکیبی پیچیده مانند مالتیپلکسر و دیکدر
- مقدمات مدارهای ترتیبی و عناصر حافظهدار
- کاربرد دستگاههای منطقی قابل برنامهریزی در طراحی دیجیتال
فصل ۲: مقدمهای بر ماشینهای حالت متناهی
- مدلسازی سامانههای ترتیبی با نمودار و جدول حالت
- معرفی ماشینهای میلی و مور و تفاوت ساختاری آنها
- طراحی عملی FSM با مثالهای کاربردی
- تبدیل مدل رفتاری به پیادهسازی سختافزاری
- ملاحظات عملی مانند حالتهای استفادهنشده و طرحهای ناهمگام
بخش ۲: سازمان و معماری کامپیوتر
فصل ۳: معماری مجموعهدستورالعملها
- سطوح زبانهای برنامهنویسی و نقش زبان اسمبلی
- ساختار ISA شامل انواع داده، آدرسدهی و قالب دستور
- اصول طراحی ISA و تحلیل یک ISA ساده
- بررسی معماری مجموعهدستورالعمل ریزپردازندهٔ ۸۰۸۵
فصل ۴: مقدمهای بر سازمان کامپیوتر
- ساختار کلی سیستم و ارتباط میان CPU، حافظه و I/O
- گذرگاه سیستم و چرخهٔ دستورالعمل
- سازمان داخلی CPU و انواع حافظه
- مقایسهٔ معماری فوننویمان و هاروارد
- اتصالیابی I/O و نمونهٔ واقعی مبتنی بر ۸۰۸۵
فصل ۵: زبانهای انتقال ثبات
- نقش RTL در تعریف رفتار سختافزار
- ریزعملیاتها و مشخصهگذاری مؤلفههای دیجیتال
- استفاده از RTL برای ساخت سامانههای ساده و پیچیده
- معرفی VHDL و سطوح انتزاع در طراحی دیجیتال
فصل ۶: طراحی واحد پردازش مرکزی
- اصول طراحی CPU و نیازمندیهای بنیادین
- طراحی یک CPU بسیار ساده از واکشی تا اجرا
- تکمیل مسیرهای داده و واحد کنترل
- طراحی یک CPU پیچیدهتر و تحلیل محدودیتها
- بررسی ساختار داخلی ریزپردازندهٔ ۸۰۸۵
فصل ۷: طراحی واحد کنترل ریزتوالیساز
- مفاهیم ریزدستور، ریزکد و مکانیزم توالیسازی
- طراحی ریزتوالیساز ساده و نمونهٔ پیشرفتهتر
- روشهای بهینهسازی ریزبرنامه مانند زیرروالها
- مقایسهٔ کنترل سیمسخت و کنترل ریزبرنامهای
- تحلیل نمونهٔ واقعی پردازندهٔ پنتیوم
فصل ۸: حساب کامپیوتری
- نمایش دادههای عددی بدون علامت و عملیات پایه
- نمایش اعداد با علامت و مکمل دو
- کد BCD و عملیات مربوط به آن
- سختافزار تخصصی محاسبات و لولهسازی
- مفاهیم ممیز شناور و استاندارد IEEE 754
فصل ۹: سازمان حافظه
- سلسلهمراتب حافظه و نقش عملکرد آن
- تحلیل حافظهٔ نهان و سیاستهای نگاشت
- جایگزینی، نوشتن و ارزیابی کارایی
- حافظهٔ مجازی: صفحهبندی، قطعهبندی و حفاظت
- مباحث پیشرفته و تحلیل نمونهٔ ایتانیوم
- مدیریت حافظه در پنتیوم/ویندوز
فصل ۱۰: سازمان ورودی/خروجی
- روشهای انتقال داده میان CPU و دستگاهها
- ورودی/خروجی برنامهریزیشده و نقش وقفهها
- دسترسی مستقیم به حافظه و تأثیر آن بر طراحی CPU
- پردازندههای ورودی/خروجی و ارتباط سریال
- استانداردهای سریال شامل RS-232 و USB
بخش ۳: مباحث پیشرفته
فصل ۱۱: رایانش با مجموعهدستورالعمل کاهشیافته (RISC)
- اصول طراحی RISC و فلسفهٔ سادهسازی ISA
- استفاده از دستورالعملهای با طول ثابت و آدرسدهی محدود
- پیادهسازی خط لوله و مفاهیم پیشرفته مانند اجرای پیشبینانه
- نقش کامپایلر در معماری RISC
- تعارضهای خط لوله و تفاوت RISC و CISC
- نمونهٔ واقعی: ریزپردازندهٔ ایتانیوم
فصل ۱۲: مقدمهای بر پردازش موازی
- روشهای موازیسازی در تکپردازندهها
- معماریهای چندپردازندهای و طبقهبندی فلین
- توپولوژیها و شبکههای اتصالی چندمرحلهای
- سازمان حافظهٔ موازی و مسئلهٔ همخوانی نهانگاه
- نقش سیستمعامل در محیطهای چندپردازندهای
- الگوریتمهای موازی و معماریهای جایگزین مانند جریانداده، سیستولیک و شبکههای عصبی
مباحث و موضوعات اصلی کتاب سازمان و معماری سیستمهای کامپیوتری
۱. منطق دیجیتال و مبانی سختافزار
- جبر بول و عملیات منطقی
- گیتهای منطقی و مدارهای ترکیبی
- جمعکنندهها، مالتیپلکسر، دیکدر و مدارهای پایه
- مدارهای ترتیبی، فلیپفلاپها و ثباتها
- شمارندهها و دستگاههای منطقی قابلبرنامهریزی (PLD)
۲. ماشینهای حالت و طراحی سیستمهای ترتیبی
- مدلسازی رفتار سیستم با FSM
- ماشینهای میلی و مور
- نمودار حالت، جدول حالت و کدگذاری حالتها
- پیادهسازی FSM در سطح سختافزار
- مسائل عملی مثل حالتهای غیرمجاز و طراحی ناهمگام
۳. معماری مجموعهدستورالعملها (ISA)
- ساختار ISA و سطح زبان ماشینی
- قالب دستورالعمل، انواع دستور و انواع داده
- شیوههای آدرسدهی
- اصول طراحی مجموعهدستورالعمل
- نمونهٔ واقعی: معماری 8085
۴. سازمان داخلی رایانه
- اجزای اصلی سیستم: CPU، حافظه و I/O
- گذرگاهها و چرخهٔ دستورالعمل
- معماری فون نویمان و هاروارد
- ساختار CPU و انواع حافظهها
- شیوههای ارتباط با ورودی/خروجی
۵. زبان انتقال ثبات (RTL) و توصیف سختافزار
- ریزعملیاتها و مدلسازی جریان داده
- تعریف رفتار اجزای پردازشی با RTL
- سطوح انتزاع در طراحی دیجیتال
- آشنایی با VHDL
۶. طراحی واحد پردازش مرکزی (CPU)
- مراحل طراحی CPU از سطح مفهومی
- طراحی مسیر داده (Datapath)
- طراحی واحد کنترل
- CPU ساده و CPU پیچیدهتر
- نمونهٔ کامل: ساختار داخلی 8085
۷. کنترل ریزبرنامهای و ریزتوالیسازی
- ریزدستور و ریزکد
- ریزتوالیساز ساده و پیشرفته
- بهینهسازی ریزبرنامه (زیرروال، پرش، توالیها)
- کنترل سیمسخت در برابر کنترل ریزبرنامهای
- نمونهٔ صنعتی: معماری پنتیوم
۸. حساب کامپیوتری (Arithmetic)
- نمایش اعداد بدون علامت و با علامت
- مکمل دو و فرمتهای عددی پایه
- کد BCD و عملیات مربوطه
- سختافزارهای محاسباتی سریع (والاس، لولهسازی)
- ممیز شناور و استاندارد IEEE 754
۹. سازمان حافظه و مدیریت آن
- سلسلهمراتب حافظه و تحلیل عملکرد
- حافظه نهان: نگاشت، جایگزینی، سیاست نوشتن
- حافظه مجازی: صفحهبندی، قطعهبندی، حفاظت
- نمونههای پیشرفته: ایتانیوم، پنتیوم/ویندوز
۱۰. سامانههای ورودی/خروجی
- I/O همزمان و غیرهمزمان
- ورودی/خروجی مبتنی بر وقفه
- دسترسی مستقیم به حافظه (DMA)
- پردازندههای I/O و انتقال دادهٔ سریال
- استانداردهای ارتباطی (RS-232 ، USB و …)
۱۱. معماری RISC و خط لوله
- اصول طراحی RISC
- دستورالعملهای با طول ثابت
- خط لوله، خطرات و روشهای کاهش آن
- اجرای پیشبینانه و نقش کامپایلر
- مقایسهٔ RISC و CISC
- نمونهٔ واقعی: پردازندهٔ Itanium
۱۲. مبانی پردازش موازی
- موازیسازی در تکپردازندهها
- معماریهای چندپردازندهای
- شبکههای ارتباطی و توپولوژیها
- مسئلهٔ همخوانی نهانگاه
- نقش سیستمعامل در پردازش موازی
- مدلهای غیرسنتی: جریانداده، سیستولیک، شبکههای عصبی
ویژگیهای کلیدی کتاب
«سازمان و معماری سیستمهای کامپیوتری» (کارپینلی)
۱. پیوند کامل میان منطق دیجیتال و معماری کامپیوتر
کتاب برخلاف بسیاری از منابع، با منطق ترکیبی و ترتیبی شروع میکند و بهصورت تدریجی خواننده را تا طراحی CPU و معماری سیستمهای واقعی پیش میبرد. این پیوستگی باعث میشود خواننده روند از گیت تا معماری را کاملاً درک کند.
۲. آموزش قدمبهقدم طراحی سختافزار
کتاب نهتنها مفاهیم را توضیح میدهد، بلکه
- از گیتهای پایه
- تا ماشین حالت
- سپس طراحی مسیر داده و واحد کنترل
- و در نهایت طراحی یک CPU واقعی
را مرحلهبهمرحله آموزش میدهد.
این ساختار یکی از مهمترین مزیتهای آموزشی کتاب است.
۳. تمرکز عمیق بر ISA و نقش آن در طراحی CPU
مباحث مربوط به مجموعهدستورالعملها (ISA) با دقت بالایی بررسی شده و خواننده دقیقاً میفهمد:
- دستورالعملها چگونه تعریف میشوند
- آدرسدهی چگونه روی معماری تأثیر میگذارد
- ISA چگونه شکل نهایی CPU را تعیین میکند
۴. پوشش جامع معماری کلاسیک و نمونههای واقعی
کتاب از مثالهای واقعی مانند:
- ریزپردازنده 8085
- پنتیوم
- ایتانیوم
استفاده میکند تا مفاهیم کتاب از سطح تئوری فراتر بروند و به دنیای واقعی مرتبط شوند.
۵. توضیح روشن چرخهٔ دستورالعمل و سازوکار CPU
کتاب چرخهٔ واکشی، رمزگشایی و اجرا را با جزئیات بسیار شفاف بیان میکند و نشان میدهد CPU چگونه:
- دستور را میخواند
- آن را رمزگشایی میکند
- مسیر داده را هدایت میکند
- و در نهایت نتیجه را بازمیگرداند
این بخش بهویژه برای دانشجویان معماری کامپیوتر ارزشمند است.
۶. پوشش کامل طراحی واحد کنترل
یکی از نقاط قوت مهم کتاب، توضیح عمیق:
- کنترل سیمسخت
- ریزبَرخوانی (Microprogramming)
- طراحی ریزتوالیساز (Microsequencer)
است که در بسیاری از منابع دیگر سطحی بیان میشود.
۷. پرداختن به مباحث اساسی حافظه و ورودی/خروجی
کتاب بهصورت کامل توضیح میدهد:
- سلسلهمراتب حافظه چگونه عمل میکند
- حافظهٔ نهان چگونه طراحی میشود
- حافظهٔ مجازی چگونه مدیریت میشود
- ورودی/خروجی چگونه به CPU متصل میشود
- DMA، وقفه و ارتباط سریال چگونه کار میکنند
این بخش کتاب برای درک معماری سیستمهای واقعی ضروری است.
۸. معرفی معماری RISC و تحلیل پیشرفته خط لوله
کتاب نگاهی جدی به معماری RISC دارد و مفاهیمی مانند:
- دستورالعملهای با طول ثابت
- آدرسدهی محدود
- اجرای پیشبینانه
- خطرات خط لوله
- نقش کامپایلر در RISC
را با دقتی عالی بررسی میکند.
۹. واردشدن به دنیای پردازش موازی
بخش پایانی کتاب شامل مباحث مدرنتر است:
- طبقهبندی فلین
- چندپردازندهها
- شبکههای ارتباطی
- همخوانی نهانگاه
- معماریهای غیرسنتی مانند جریانداده و سیستولیک
که خواننده را برای درک سیستمهای چندپردازندهای آماده میکند.
۱۰. سبک آموزشی شفاف، طبقهبندیشده و قابلفهم
ویژگی شاخص کتاب، وضوح توضیحات و سیر تدریجی و منطقی آموزش است که برای دانشجویان سالهای ابتدایی و حتی متوسطه نیز قابل فهم است، اما بهاندازهٔ کافی عمق علمی برای دورههای پیشرفته دارد.
هدف و رویکرد کتاب سازمان و معماری سیستمهای کامپیوتری
هدف کتاب
هدف اصلی این کتاب آموزش اصول بنیادین سازمان داخلی کامپیوتر و شیوهٔ طراحی اجزای اصلی یک سیستم پردازشی است، بهگونهای که خواننده بتواند:
- از سطح منطق دیجیتال پایه شروع کند،
- اصول مدارهای ترکیبی و ترتیبی را درک کند،
- مفهوم ماشین حالت و روش طراحی آن را یاد بگیرد،
- سپس به سطح واحد پردازش مرکزی (CPU) و مجموعهدستورالعملها (ISA) برسد،
- و در نهایت ساختار حافظه، ورودی/خروجی، ریزبرنامهنویسی، معماری RISC و پردازش موازی را بیاموزد.
بهعبارت دیگر، هدف کتاب ایجاد یک درک یکپارچه از مسیر «گیت تا معماری» است؛ یعنی نشان دهد چگونه مفاهیم سادهٔ منطقی در نهایت به طراحی یک پردازنده واقعی و سیستم کامپیوتری کامل منجر میشوند.
رویکرد کتاب
رویکرد کتاب آموزشی، مرحلهای و پایینبهبالا (Bottom-Up) است. ویژگیهای اصلی این رویکرد عبارتاند از:
۱. حرکت تدریجی از پایه به سیستم کامل
کتاب از سادهترین مفاهیم—مثل جبر بول، گیتها و مدارهای پایه—شروع میکند و بهتدریج وارد موضوعات پیچیدهتر مانند طراحی CPU، معماری RISC و پردازش موازی میشود.
۲. ترکیب نظریه و پیادهسازی
هر مبحث ابتدا از دید مفهومی معرفی میشود، سپس با مثالهای سختافزاری واقعی، نمودارها، موجزمانیها و تحلیلهای دقیق، وارد جنبههای عملی میشود.
نمونههایی مثل 8085، پنتیوم، ایتانیوم نشاندهندهٔ همین رویکرد کاربردی هستند.
۳. تأکید بر طراحی و درک سازوکار
تنها به معرفی اجزا اکتفا نمیکند بلکه تلاش میکند:
- نحوهٔ طراحی مسیر داده
- طراحی واحد کنترل (Hardwired و Microprogrammed)
- طراحی FSM
- نحوهٔ اجرای دستورالعملها در سطح ریزعملیات
- ساختار سلسلهمراتبی حافظه
را بهصورت طراحیمحور توضیح دهد.
۴. ارائهٔ دید سیستممحور
کتاب ارتباط میان همهٔ اجزا را نشان میدهد، تا خواننده متوجه شود:
- CPU چگونه با حافظه و I/O تعامل میکند،
- نقشی که مجموعهدستورالعملها در تعریف معماری دارند چیست،
- و چگونه طراحی بخشهای مختلف بر عملکرد کل سیستم تأثیر میگذارد.
۵. پوشش همزمان مفاهیم کلاسیک و مدرن
کتاب ضمن بررسی معماریهای کلاسیک مثل 8085، معماریهای پیشرفتهتر مثل RISC، Itanium و سیستمهای موازی را نیز معرفی میکند تا خواننده نگاه تطبیقی نسبت به نسلهای مختلف معماری داشته باشد.
چکیده مباحث کتاب
این کتاب با هدف استفاده در درسهای «سازمان کامپیوتر» و «معماری کامپیوتر» تألیف شده است؛ درسهایی که معمولاً در برنامهٔ آموزشی رشتههای مهندسی کامپیوتر، علوم کامپیوتر، مهندسی برق و سامانههای اطلاعاتی ارائه میشوند. این درسها عموماً در سال سوم یا چهارم دورهٔ کارشناسی، یا در سطح پیشرفتهٔ سال دوم تدریس میگردند. افزون بر این، کتاب حاضر میتواند برای درسهای تکمیلی و دورههای جبرانی ویژهٔ دانشجویان تحصیلات تکمیلیِ این رشتهها نیز مورد استفاده قرار گیرد.
برای بهرهگیری از محتوای کتاب، پیشنیاز رسمی مشخصی در نظر گرفته نشده است. گرچه بسیاری از دانشجویان پیش از مطالعهٔ این کتاب، درس مدارهای دیجیتال را گذراندهاند، اما این موضوع الزامآور نیست. به همین دلیل، نویسنده دو فصل مقدماتی دربارهٔ مدارهای دیجیتال و ماشینهای حالت متناهی را در ابتدای کتاب گنجانده است تا دانشجویانی که فاقد این پیشزمینهاند نیز بتوانند مباحث را دنبال کنند. دانشجو برای مطالعهٔ کتاب نیازی به دانستن زبان برنامهنویسی خاصی ندارد، اما باید قادر باشد الگوریتمهایی را که بهصورت شبهکد ارائه شدهاند درک کند.
رویکرد نویسنده
نویسنده طی سالها تدریس مباحث مرتبط با این کتاب با بهرهگیری از منابع گوناگون دریافته است که هیچیک از منابع موجود پاسخگوی کامل اهداف آموزشی نبودهاند. برخی کتابها سطح را از ابتدا بیش از اندازه پیچیده انتخاب میکردند و دانشجو را قبل از درک مبانی درگیر جزئیات سنگین میکردند. گروهی دیگر نیز مباحث را بدون انسجام و پیوند منطقی کافی ارائه میدادند. این کاستیها موجب سردرگمی و دشواریهای آموزشی برای دانشجویان شده بود و نویسنده را بر آن داشت تا کتابی بنویسد که این مشکلات را برطرف کند و فرایند یادگیری را بهبود بخشد.
نگارش این کتاب باعث شد نویسنده نهتنها دربارهٔ محتوای آموزشی، بلکه دربارهٔ نحوهٔ ارائهٔ مطالب و روشهای طراحی نیز بازاندیشی کند. شیوههای بهکاررفته در این کتاب، همان روشهایی هستند که در تجربهٔ تدریس نویسنده بیشترین کارایی را برای دانشجویان داشتهاند.
نویسنده همواره تلاش کرده است بخش قابلتوجهی از فعالیت طراحی را وارد محیط یادگیری کند؛ چراکه دانشجویان با طراحی فعالانه مفاهیم را عمیقتر میآموزند و درک میکنند که چرا اجزا و سازوکارها باید بهشکل خاصی عمل کنند. این رویکرد با الزامات نهادهای اعتباربخشی آموزشی، بهویژه در حوزهٔ مهندسی، نیز همسو است؛ زیرا این نهادها بر ضرورت حضور فعالیتهای طراحی در برنامهٔ درسی تأکید دارند. از همین رو، کتاب دارای یک مؤلفهٔ طراحی نیرومند است که از طرحهای ساده آغاز شده و بهتدریج به طراحیهای پیچیدهتر گسترش مییابد.
طی تجربههای آموزشی، نویسنده مشاهده کرده است که دانشجویان در نگاه نخست، ارائهٔ مطالب به روش از بالا به پایین را جذاب میدانند، اما پژوهشها نشان میدهد یادگیری زمانی عمیقتر است که آموزش به شیوهٔ از پایین به بالا انجام گیرد. برای ایجاد تعادل میان این دو، کتاب نخست تصویری کلّی از سامانه را از بالا به پایین ترسیم میکند تا دانشجو جایگاه هر جزء را در طرح نهایی درک کند. سپس مسیر اصلی طراحی بر پایهٔ رویکرد از پایین به بالا پیش میرود: ابتدا اجزای کوچکتر طراحی میشوند و در ادامه به یکدیگر پیوند میخورند تا سامانهٔ کامل شکل گیرد. این رویکرد پایهٔ محکمتری برای یادگیری ایجاد میکند و به دانشجو امکان میدهد مباحث جدید را بر اساس دانستههای پیشین بنا کند.
نویسنده ترجیح میدهد مفاهیم را با سادهترین نمونهها معرفی کند تا بتواند مباحث جدید را بدون درگیرشدن در جزئیات غیرضروری مطرح نماید. به همین دلیل، آموزش طراحی پردازنده در کتاب با یک پردازندهٔ بسیار سادهٔ چهاردستوری آغاز میشود. پس از درک این طراحی، دانشجو بهسراغ پردازندهای پیچیدهتر با شانزده دستور هدایت میشود؛ پردازندهای که بر بنیان طراحی سادهتر ساخته شده اما مفاهیم و تکنیکهای پیشرفتهتری را نیز ارائه میکند. این پردازنده در سراسر کتاب نقش یک محور پیوسته را ایفا میکند و در مثالهای گوناگون بهکار میرود.
کتاب با اتکا به همین پردازندهٔ نسبتاً ساده، فرآیند طراحی را از تعریف معماری مجموعهدستورها آغاز کرده و سپس یک رایانهٔ کامل را بر اساس آن طراحی میکند. در ادامه، خود پردازنده طراحی میشود و برای پیادهسازی واحد کنترل از هر دو روش کنترل سختسیمی و کنترل ریزبرنامهای استفاده میگردد. این پردازنده بعدها برای بررسی موضوعات دیگری همچون نحوهٔ پردازش وقفهها نیز بهکار میرود. این انسجام، حجم مباحث فرعی را کاهش میدهد و امکان تمرکز بیشتر دانشجو بر مفاهیم اصلی را فراهم میسازد.
در طراحی پردازنده، بهویژه در بخش واحد کنترل، کتاب از رویکرد ماشینهای حالت متناهی بهره میگیرد. نویسنده بر این باور است که ارائهٔ عملیات لازم برای واکشی، رمزگشایی و اجرای دستورها در قالب یک توالی روشن و مرحلهبهمرحله موجب درک بهتر فرآیند پردازش دستورها در پردازنده میشود. این روش همچنین طراحی را به دو گام مجزا تقسیم میکند: نخست مشخص کردن عملیات، و سپس پیادهسازی آنها.
در پایان، نویسنده با تأکید بیان میکند که پیوند دادن مفاهیم به نمونههای واقعی نقش مهمی در یادگیری دانشجو دارد. به همین دلیل، در هر فصل مثالهایی از دنیای واقعی ــ چه تاریخی و چه معاصر ــ آورده شده است.
فهرست مطالب کتاب سازمان و معماری سیستم های کامپیوتری جان دی. کارپینلی
بخش ۱: منطق دیجیتال و ماشینهای حالت
فصل ۱: مبانی منطق دیجیتال
۱.۱ جبر بول
۱.۱.۱ تابعهای پایه
۱.۱.۲ دستکاری تابعهای بولی
۱.۲ منطق ترکیبی پایه
۱.۳ اجزای ترکیبی پیچیدهتر
۱.۳.۱ مالتیپلکسرها
۱.۳.۲ دیکدرها
۱.۳.۳ انکدرها
۱.۳.۴ مقایسهکنندهها
۱.۳.۵ جمعکنندهها و تفریقکنندهها
۱.۳.۶ حافظه
۱.۴ طراحی مدارهای ترکیبی
۱.۴.۱ رمزگشای نمایشگر هفتبخشی
۱.۴.۲ مرتبساز داده
دیدگاه کاربردی: چرا LEDها معمولاً در سطح پایین فعال میشوند
۱.۵ اجزای ترتیبی پایه
۱.۶ اجزای ترتیبی پیچیدهتر
۱.۶.۱ شمارندهها
۱.۶.۲ ثباتهای انتقال
۱.۷ نمونهٔ کاربردی در دنیای واقعی: دستگاههای منطقی قابل برنامهریزی
دیدگاه تاریخی: پیادهسازی مدارهای دیجیتال
۱.۸ جمعبندی
مسائل
فصل ۲: مقدمهای بر ماشینهای حالت متناهی
۲.۱ نمودارهای حالت و جدولهای حالت
دیدگاه تاریخی: ماشین حالت متناهی و ریزپردازندهها
۲.۲ ماشینهای میلی و مور
۲.۳ طراحی نمودارهای حالت
۲.۳.۱ شمارندهٔ پیمانهٔ ۶
۲.۳.۲ بررسیکنندهٔ رشته
۲.۳.۳ کنترلکنندهٔ عوارض جادهای
دیدگاه کاربردی: مدلهای مختلف برای حل یک مسئلهٔ واحد
۲.۴ از نمودار حالت تا پیادهسازی
۲.۴.۱ تخصیص مقادیر حالتها
۲.۴.2 پیادهسازی ماشینهای میلی و مور
۲.۴.۳ تولید حالت بعدی
۲.۴.۴ تولید خروجیهای سامانه
۲.۴.۵ یک طرح جایگزین
۲.۴.۶ بررسیکنندهٔ رشتهٔ هشتحالته
۲.۵ نمونهٔ کاربردی در دنیای واقعی: ملاحظات عملی
۲.۵.۱ حالتهای استفادهنشده
۲.۵.۲ طرحهای ناهمگام
₂.۵.۳ تبدیل ماشین
۲.۶ جمعبندی
مسائل
بخش ۲: سازمان و معماری کامپیوتر
فصل ۳: معماری مجموعهدستورالعملها
۳.۱ سطوح زبانهای برنامهنویسی
۳.۱.۱ دستهبندی زبانها
۳.۱.۲ ترجمه و اسمبلی برنامهها
دیدگاه کاربردی: اپلتهای جاوا—روشی متفاوت برای پردازش برنامهها
۳.۲ دستورالعملهای زبان اسمبلی
۳.۲.۱ انواع دستورالعملها
۳.۲.۲ انواع داده
۳.۲.۳ شیوههای آدرسدهی
۳.۲.۴ قالبهای دستورالعمل
فصل ۳: معماری مجموعهدستورالعملها
۳.۳ طراحی معماری مجموعهدستورالعمل
۳.۴ یک معماری نسبتاً سادهٔ مجموعهدستورالعمل
۳.۵ نمونهٔ واقعی: معماری مجموعهدستورالعمل ریزپردازندهٔ ۸۰۸۵
۳.۵.۱ مجموعهثباتهای ریزپردازندهٔ ۸۰۸۵
دیدگاه تاریخی: ریزپردازندههای اولیهٔ شرکت اینتل
۳.۵.۲ مجموعهدستورالعمل ریزپردازندهٔ ۸۰۸۵
۳.۵.۳ یک برنامهٔ ساده برای ۸۰۸۵
۳.۵.۴ تحلیل معماری مجموعهدستورالعمل ۸۰۸۵
۳.۶ جمعبندی
مسائل
فصل ۴: مقدمهای بر سازمان کامپیوتر
۴.۱ سازمان پایهٔ کامپیوتر
۴.۱.۱ گذرگاههای سیستم
۴.۱.۲ چرخههای دستورالعمل
دیدگاه کاربردی: گذرگاه اتصالدهندهٔ مؤلفههای جانبی
۴.۲ سازمان واحد پردازش مرکزی
۴.۳ سازمان و اتصالیابی زیرسامانهٔ حافظه
۴.۳.۱ انواع حافظه
۴.۳.۲ سازمان داخلی تراشه
۴.۳.۳ پیکربندی زیرسامانهٔ حافظه
دیدگاه تاریخی: معماریهای فوننویمان و هاروارد
۴.۳.۴ سازماندهی دادههای چندبایتی
۴.۳.۵ مباحث فراتر از پایه
۴.۴ سازمان و اتصالیابی زیرسامانهٔ ورودی/خروجی
۴.۵ یک کامپیوتر نسبتاً ساده
۴.۶ نمونهٔ واقعی: یک کامپیوتر مبتنی بر ۸۰۸۵
دیدگاه تاریخی: مریخنورد «سوجورنر»
۴.۷ جمعبندی
مسائل
فصل ۵: زبانهای انتقال ثبات
۵.۱ ریزعملیات و زبان انتقال ثبات
۵.۲ استفاده از زبان انتقال ثبات برای مشخصسازی سامانههای دیجیتال
۵.۲.۱ مشخصهگذاری مؤلفههای دیجیتال
۵.۲.۲ مشخصهگذاری و پیادهسازی سامانههای ساده
۵.۳ سامانههای دیجیتال پیچیدهتر و زبان انتقال ثبات
۵.۳.۱ شمارندهٔ پیمانهٔ ۶
۵.۳.۲ کنترلکنندهٔ عوارض جادهای
۵.۴ نمونهٔ واقعی: زبان توصیف سختافزار VHDL و VHDL-VHSIC
توصیف سختافزار — دیدگاه کاربردی
۵.۴.۱ نحو VHDL
۵.۴.۲ طراحی مبتنی بر VHDL با سطح بالای انتزاع
۵.۴.۳ طراحی مبتنی بر VHDL با سطح پایین انتزاع
۵.۵ جمعبندی
دیدگاه کاربردی: توانمندیهای پیشرفتهٔ VHDL
مسائل
فصل ۶: طراحی واحد پردازش مرکزی (CPU)
۶.۱ تعیین ویژگیهای CPU
۶.۲ طراحی و پیادهسازی یک CPU بسیار ساده
۶.۲.۱ مشخصات مورد نیاز برای یک CPU بسیار ساده
۶.۲.۲ واکشی دستورالعملها از حافظه
دیدگاه کاربردی: دلیل افزایش شمارندهٔ برنامه توسط CPU در چرخهٔ واکشی
۶.۲.۳ رمزگشایی دستورالعملها
۶.۲.۴ اجرای دستورالعملها
۶.۲.۵ ایجاد مسیرهای دادهٔ مورد نیاز
۶.۲.۶ طراحی یک واحد حساب و منطق بسیار ساده
۶.۲.۷ طراحی واحد کنترل با استفاده از کنترل سیمسخت
۶.۲.۸ وارسی و ارزیابی طراحی
۶.۳ طراحی و پیادهسازی یک CPU نسبتاً ساده
۶.۳.۱ مشخصات یک CPU نسبتاً ساده
۶.۳.۲ واکشی و رمزگشایی دستورالعملها
۶.۳.۳ اجرای دستورالعملها
۶.۳.۴ ایجاد مسیرهای داده
۶.۳.۵ طراحی واحد حساب و منطق نسبتاً ساده
۶.۳.۶ طراحی واحد کنترل با استفاده از کنترل سیمسخت
۶.۳.۷ وارسی طراحی
۶.۴ کاستیهای CPUهای ساده
۶.۴.۱ رجیسترهای داخلی بیشتر و حافظهٔ نهان
دیدگاه تاریخی: ذخیرهسازی در ریزپردازندههای اینتل
۶.۴.۲ گذرگاههای متعدد درون CPU
۶.۴.۳ پردازش خط لولهای دستورالعملها
۶.۴.۴ مجموعهدستورالعملهای بزرگتر
۶.۴.۵ زیرروالها و وقفهها
۶.۵ نمونهٔ واقعی: ساختار داخلی ریزپردازندهٔ ۸۰۸۵
۶.۶ جمعبندی
مسائل
فصل ۷: طراحی واحد کنترل ریزتوالیساز
۷.۱ طراحی پایهٔ ریزتوالیساز
۷.۱.۱ عملیات ریزتوالیساز
۷.۱.۲ قالبهای ریزدستور
۷.۲ طراحی و پیادهسازی یک ریزتوالیساز بسیار ساده
۷.۲.۱ چیدمان پایه
۷.۲.۲ تولید توالی صحیح و طراحی منطق نگاشت
۷.۲.۳ تولید ریزعملیات با استفاده از ریزکد افقی
۷.۲.۴ تولید ریزعملیات با استفاده از ریزکد عمودی
دیدگاه کاربردی: ریزدستورها
۷.۲.۵ تولید مستقیم سیگنالهای کنترلی از ریزکد
۷.۳ طراحی و پیادهسازی یک ریزتوالیساز نسبتاً ساده
۷.۳.۱ اصلاح نمودار حالت
۷.۳.۲ طراحی سختافزار توالیسازی و ریزکد
۷.۳.۳ تکمیل طراحی با استفاده از ریزکد افقی
۷.۴ کاهش تعداد ریزدستورها
۷.۴.۱ زیرروالهای ریز
۷.۴.۲ پرشهای ریزکد
۷.۵ کنترل ریزبرنامهای در برابر کنترل سیمسخت
۷.۵.۱ پیچیدگی مجموعهدستورها
۷.۵.۲ سهولت اصلاح
۷.۵.۳ سرعت کلاک
۷.۶ نمونهٔ واقعی: یک CPU عمدتاً ریزکدشده:
پردازندهٔ پنتیوم
دیدگاه تاریخی: پنتیوم چگونه نام خود را بهدست آورد
۷.۷ جمعبندی
مسائل
فصل ۸: حساب کامپیوتری
۸.۱ نمایش بدون علامت
۸.۱.۱ جمع و تفریق
۸.۱.۲ ضرب
۸.۱.۳ تقسیم
۸.۲ نمایش با علامت
۸.۲.۱ نمایش علامت و مقدار
۸.۲.۲ نمایش مکملِ دو با علامت
۸.۳ کد دهدهی دودویی
۸.۳.۱ قالب عددی BCD
۸.۳.۲ جمع و تفریق
۸.۳.۳ ضرب و تقسیم
۸.۴ سختافزار تخصصی حساب
دیدگاه تاریخی: همپردازندهها
۸.۴.۱ لولهسازی
۸.۴.۲ جدولهای جستوجو
دیدگاه تاریخی: اشکال ممیز شناور پنتیوم
۸.۴.۳ درختهای والاس
۸.۵ اعداد ممیز شناور
۸.۵.۱ قالب عددی
۸.۵.۲ ویژگیهای عددی
۸.۵.۳ جمع و تفریق
۸.۵.۴ ضرب و تقسیم
فصل ۸: حساب کامپیوتری
۸.۶ نمونهٔ واقعی: استاندارد ممیز شناور IEEE 754
۸.۶.۱ قالبها
۸.۶.۲ مقادیر غیراستاندارد
۸.۷ جمعبندی
مسائل
فصل ۹: سازمان حافظه
۹.۱ سامانههای حافظهٔ سلسلهمراتبی
۹.۲ حافظهٔ نهان
۹.۲.۱ حافظهٔ انجمنی
۹.۲.۲ حافظهٔ نهان با نگاشت انجمنی
۹.۲.۳ حافظهٔ نهان با نگاشت مستقیم
۹.۲.۴ حافظهٔ نهان با نگاشت انجمنیِ مجموعهای
دیدگاه کاربردی: راهبردهای نگاشت در CPUهای امروزی
۹.۲.۵ جایگزینی دادهها در حافظهٔ نهان
۹.۲.۶ نوشتن داده در حافظهٔ نهان
۹.۲.۷ کارایی حافظهٔ نهان
۹.۳ حافظهٔ مجازی
۹.۳.۱ صفحهبندی
۹.۳.۲ قطعهبندی
۹.۳.۳ حفاظت حافظه
۹.۴ فراتر از مبانی حافظهٔ نهان و حافظهٔ مجازی
۹.۴.۱ فراتر از مبانی حافظهٔ نهان
دیدگاه کاربردی: سلسلهمراتب حافظهٔ نهان در ریزپردازندهٔ ایتانیوم
۹.۴.۲ فراتر از مبانی حافظهٔ مجازی
۹.۵ نمونهٔ واقعی: مدیریت حافظه در یک رایانهٔ شخصی پنتیوم/ویندوز
۹.۶ جمعبندی
مسائل
فصل ۱۰: سازمان ورودی/خروجی
۱۰.۱ انتقالهای غیرهمزمان داده
۱۰.۱.۱ انتقال داده به ابتکار مبدأ
۱۰.۱.۲ انتقال داده به ابتکار مقصد
۱۰.۱.۳ دستدهی
۱۰.۲ ورودی/خروجی برنامهریزیشده
۱۰.۲.۱ دستورالعملهای جدید
۱۰.۲.۲ سیگنالهای کنترلی جدید
۱۰.۲.۳ حالتهای جدید و کد RTL
۱۰.۲.۴ اصلاح سختافزار CPU برای دستورالعمل جدید
۱۰.۲.۵ اطمینان از اینکه سایر دستورالعملها همچنان درست کار میکنند
۱۰.۳ وقفهها
۱۰.۳.۱ انتقال داده میان CPU و دستگاههای ورودی/خروجی
۱۰.۳.۲ انواع وقفهها
۱۰.۳.۳ پردازش وقفهها
۱۰.۳.۴ سختافزار وقفه و اولویت
۱۰.۳.۵ پیادهسازی وقفهها درون CPU
۱۰.۴ دسترسی مستقیم به حافظه
۱۰.۴.۱ گنجاندن دسترسی مستقیم به حافظه در یک سامانهٔ رایانهای
۱۰.۴.۲ حالتهای انتقال DMA
۱۰.۴.۳ اصلاح CPU برای کار با DMA
۱۰.۵ پردازندههای ورودی/خروجی
دیدگاه کاربردی: پردازندهٔ ۱۹۶۰ ورودی/خروجی با DMA داخلی
۱۰.۶ ارتباط سریال
۱۰.۶.۱ مبانی ارتباط سریال
۱۰.۶.۲ گیرنده/فرستندههای ناهمگام عمومی
۱۰.۷ نمونهٔ واقعی: استانداردهای ارتباط سریال
۱۰.۷.۱ استاندارد RS-232-C
دیدگاه کاربردی: استاندارد سریال RS-422
۱۰.۷.۲ استاندارد گذرگاه سریال عمومی
۱۰.۸ جمعبندی
مسائل
بخش ۲: مباحث پیشرفته
فصل ۱۱: رایانش با مجموعهدستورالعمل کاهشیافته
۱۱.۱ منطق و ضرورت RISC
۱۱.۱.۱ دستورالعملهای با طول ثابت
۱۱.۱.۲ محدود بودن دستورالعملهای بارگذاری و ذخیرهسازی و دسترسی به حافظه
فصل ۱۱: رایانش با مجموعهدستورالعمل کاهشیافته
۱۱.۱.۳ حالتهای آدرسدهی کمتر
۱۱.۱.۴ خط لولهٔ دستورالعمل
دیدگاه کاربردی: حالتهای آدرسدهی در CPU ریسک PowerPC 750
۱۱.۱.۵ تعداد زیاد رجیسترها
۱۱.۱.۶ واحد کنترل سیمسخت
۱۱.۱.۷ بارگذاریها و پرشهای تأخیری
۱۱.۱.۸ اجرای پیشبینانهٔ دستورالعملها
۱۱.۱.۹ کامپایلر بهینهساز
۱۱.۱.۱۰ جریانهای جداگانهٔ دستور و داده
۱۱.۲ مجموعهدستورالعملهای RISC
۱۱.۳ خط لولههای دستورالعمل و پنجرههای رجیستر
۱۱.۳.۱ خط لولههای دستورالعمل
۱۱.۳.۲ پنجرهبندی و تغییرنام رجیستر
دیدگاه کاربردی: پنجرهبندی رجیستر و تغییرنام رجیستر در CPUهای واقعی
۱۱.۴ تعارضهای خط لولهٔ دستورالعمل
۱۱.۴.۱ تعارضهای داده
۱۱.۴.۲ تعارضهای انشعاب
۱۱.۵ RISC در برابر CISC
۱۱.۶ نمونهٔ واقعی: ریزپردازندهٔ ایتانیوم
۱۱.۷ جمعبندی
مسائل
فصل ۱۲: مقدمهای بر پردازش موازی
۱۲.۱ موازیسازی در سامانههای تکپردازندهای
۱۲.۲ سازمان سامانههای چندپردازندهای
۱۲.۲.۱ طبقهبندی فلین
۱۲.۲.۲ توپولوژیهای سامانه
۱۲.۲.۳ معماریهای سامانههای MIMD
دیدگاه کاربردی: بزرگترین چندرایانهٔ جهان؟
دیدگاه کاربردی: رایانهٔ بلو جین
۱۲.۳ ارتباط در سامانههای چندپردازندهای
۱۲.۳.۱ اتصالات ثابت
۱۲.۳.۲ اتصالات بازپیکربندیپذیر
۱۲.۳.۳ مسیریابی در شبکههای بیناتصالی چندمرحلهای
فصل ۱۲: مقدمهای بر پردازش موازی
۱۲.۴ سازمان حافظه در سامانههای چندپردازندهای
۱۲.۴.۱ حافظهٔ اشتراکی
۱۲.۴.۲ همخوانی نهانگاه
۱۲.۵ سامانهعاملها و نرمافزارهای چندپردازندهای
۱۲.۶ الگوریتمهای موازی
۱۲.۶.۱ مرتبسازی حبابی موازی
۱۲.۶.۲ ضرب ماتریس موازی
۱۲.۷ معماریهای جایگزینِ پردازش موازی
۱۲.۷.۱ رایانش جریانداده
۱۲.۷.۲ آرایههای سیستولیک
۱۲.۷.۳ شبکههای عصبی
۱۲.۸ جمعبندی
مسائل
نمایه
پیشگفتار کتاب
این کتاب برای استفاده در درس سازمان کامپیوتر یا معماری کامپیوتر تدوین شده است؛ دروسی که معمولاً در رشتههای مهندسی کامپیوتر، علوم کامپیوتر، مهندسی برق یا سامانههای اطلاعاتی ارائه میشوند. این درسها عموماً در سطح سال سوم یا چهارم کارشناسی، یا در سطح پیشرفتهٔ سال دوم تدریس میشوند. همچنین این کتاب برای درسهای جبرانی یا پل ارتباطیِ دانشجویان تحصیلات تکمیلی در رشتههای مهندسی کامپیوتر، علوم کامپیوتر، مهندسی برق یا سامانههای اطلاعاتی نیز مناسب است.
برای استفاده از این کتاب، پیشنیاز رسمی خاصی در نظر گرفته نشده است. بسیاری از دانشجویان پیش از مطالعهٔ این کتاب، درس مدارهای دیجیتال را گذراندهاند؛ هرچند آشنایی با آن مفید است، اما الزام قطعی ندارد. برای همین، دو فصلِ مقدماتی دربارهٔ مدارهای دیجیتال و ماشینهای حالت متناهی در کتاب گنجانده شده است تا دانشجویانی که این پیشزمینه را ندارند نیز بتوانند مطالب را دنبال کنند. همچنین دانشجو نیازی به دانستن زبان برنامهنویسی خاصی ندارد، اما باید بتواند الگوریتمی را که به صورت شبهکد نوشته شده است، درک کند و دنبال نماید.
رویکرد نویسنده
در سالهای گذشته، من موضوعات مطرحشده در این کتاب را با استفاده از کتابهای درسی گوناگون تدریس کردهام. هیچیک از آنها کامل نبودند. برخی از آنها از سطحی بیش از حد پیچیده آغاز میشدند و دانشجویان را پیش از آنکه فرصت درک مفاهیم بنیادی را پیدا کنند، در میان جزئیات و ریزهکاریها رها میکردند. برخی دیگر نیز مطالب را بدون پیوند و انسجام کافی میان مباحث ارائه میدادند. این مشکلات، و مسائل مشابه دیگر، برای دانشجویان من دشواریهایی ایجاد میکرد. من این کتاب را نوشتم تا به این مسائل پاسخ دهم و فرایند یادگیری دانشجو را بهبود بخشم. امیدوارم در حل بخشی از مشکلاتی که در دیگر کتابها وجود داشت، موفق بوده باشم.
نگارش این کتاب مرا واداشت تا فراتر از صرفِ محتوایی که قرار بود ارائه شود، به شیوهٔ ارائهٔ مطالب و روشهای طراحی نیز بیندیشم. روشهایی که در این کتاب به کار گرفتهام، در درجهٔ نخست همان شیوههایی هستند که برای دانشجویان من بیشترین کارآمدی را داشتهاند.
من در آموزش این مباحث، همواره تلاش کردهام بخش قابلتوجهی از کارِ طراحی را در کلاسها بگنجانم. دانشجویان با انجام دادن یاد میگیرند و وقتی خودشان درگیر طراحی میشوند، بهتر درک میکنند که چرا اجزا و سازوکارها به شکلی که هستند عمل میکنند. نهادهای اعتباربخشی، بهویژه در حوزهٔ مهندسی، نیز وجود فعالیتهای طراحی را در برنامهٔ درسی ضروری میدانند. به همین دلیل، این کتاب با یک مؤلفهٔ قویِ طراحی همراه شده است؛ به این صورت که از طرحهای نسبتاً ساده آغاز میکند و بهتدریج به طراحیهای پیچیدهتر میرسد.
دانشجویان ظاهراً در نگاه نخست، رویکرد از بالا به پایین را برای طراحی سیستم ترجیح میدهند؛ با این حال، پژوهشها نشان میدهد که آنان مطالب را زمانی بهتر یاد میگیرند که آموزش به شیوهٔ از پایین به بالا ارائه شود. برای ایجاد تعادل میان این دو دیدگاه، من ابتدا سیستمها را بهصورت از بالا به پایین معرفی میکنم تا دانشجو یک دید کلی از فرایند طراحی به دست آورد و بداند هر جزء در نهایت در کجای طرح نهایی قرار میگیرد. اما خودِ طراحی را به روش از پایین به بالا پیش میبرم؛ یعنی ابتدا بخشهای کوچکتر سیستم را طراحی میکنم و سپس آنها را با یکدیگر یکپارچه میسازم تا سامانهٔ مطلوب شکل بگیرد. به نظر من، رویکرد از پایین به بالا پایهٔ محکمتری برای دانشجویان فراهم میکند تا بتوانند مفاهیمی را که پیشتر آموختهاند، بر آن بنا کنند.
من همچنین ترجیح میدهم مفاهیم را با نمونههای ساده توضیح دهم. این روش باعث میشود بتوانم مفاهیم جدید را بدون آنکه ارائهٔ مطلب درگیر جزئیات بیش از حد و گیجکننده شود، وارد بحث کنم. برای نمونه، این کتاب طراحی پردازنده را با یک پردازندهٔ بسیار ساده و چهاردستورِی آغاز میکند. پس از آنکه دانشجو این طراحی را فرا میگیرد، کتاب به سراغ پردازندهای پیچیدهتر با شانزده دستور میرود؛ پردازندهای که بر روشهای طراحیِ بهکاررفته در پردازندهٔ بسیار ساده تکیه دارد و در عین حال، برخی تکنیکهای پیشرفتهتر را نیز معرفی میکند. این پردازنده در سراسر کتاب در نمونههای طراحی دیگر نیز به کار گرفته میشود.
این کتاب از پردازندهٔ نسبتاً ساده بهعنوان محور اصلی و پیوستهٔ بحث استفاده میکند. من ابتدا معماری مجموعهدستورهای آن را مشخص میکنم و سپس یک رایانهٔ ساده را بر پایهٔ همین پردازنده طراحی مینمایم. در ادامه، خودِ پردازنده طراحی میشود و برای این کار، هم از کنترل سختسیمی و هم از کنترل ریزبرنامهای استفاده میشود. در بخشهای بعدی کتاب نیز از همین پردازنده برای توضیح موضوعات دیگر، مانند چگونگی پردازش وقفهها درون پردازنده، بهره میگیرم. چنین پیوستگیای مقدار مطالب حاشیهای و غیرضروری را که دانشجو باید یاد بگیرد کاهش میدهد و به او امکان میدهد بر مفاهیم اصلیِ در حال تدریس تمرکز کند.
در موضوع طراحی پردازنده، بهویژه در بخش واحد کنترل پردازنده، از رویکرد ماشین حالت متناهی استفاده میکنم. با توصیف عملیات لازم برای واکشی، رمزگشایی و اجرای دستورها بهصورت یک توالی روشن و گامبهگام، بهنظر من دانشجو درک بهتری از چگونگی پردازش دستورها توسط پردازنده پیدا میکند. این روش همچنین این مزیت را دارد که فرایند طراحی را به دو بخش تفکیک میکند: نخست مشخصکردن عملیات، و سپس پیادهسازی آنها.
در نهایت، بر این باورم که دانشجویان زمانی بهتر یاد میگیرند که بتوانند مفاهیم را به سامانههای واقعی پیوند بزنند. به همین دلیل، در هر فصل نمونههایی از دنیای واقعی، هم تاریخی و هم معاصر، آوردهام تا این نیاز آموزشی برآورده شود.
دامنهٔ پوشش
این کتاب طیف گستردهای از موضوعات را در بر میگیرد؛ از مدارهای پایهٔ دیجیتال تا پردازش موازی. نخست بهتر است نگاهی به موضوعات هر فصل بیندازیم و سپس مسیرهای پیشنهادی برای مطالعهٔ متن را بررسی کنیم. این کتاب به سه بخش تقسیم شده است که هر بخش در ادامه توضیح داده میشود.
منطق دیجیتال و ماشینهای حالت متناهی
بخش نخست کتاب، یعنی «منطق دیجیتال و ماشینهای حالت متناهی»، شامل دو فصل ابتدایی است. فصل اول با عنوان «مبانی منطق دیجیتال» به معرفی اصول اولیهٔ جبر بول و اجزای دیجیتال میپردازد و در این مسیر از منطق ترکیبی و ترتیبی بهره میگیرد. در این فصل برخی از مؤلفههای پیچیدهتری که در طراحیهای مختلف کتاب مورد استفاده قرار میگیرند نیز معرفی میشود. همچنین بخشی با رویکرد کاربردی دربارهٔ دستگاههای منطقی برنامهپذیر در این فصل گنجانده شده است تا دانشجویان بتوانند از آن در طراحیهای خود در سراسر کتاب استفاده کنند.
فصل دوم به «مقدمهای بر ماشینهای حالت متناهی» اختصاص دارد. چنین فصلی معمولاً در کتابهای حوزهٔ سازمان و معماری کامپیوتر دیده نمیشود، اما من لازم دیدم که در این کتاب گنجانده شود. واحد کنترل یک ریزپردازنده در واقع یک ماشین حالت متناهی است؛ بنابراین آشنایی اولیه با این مفهوم، درک اینکه چرا ریزپردازندهها بهگونهای که هستند عمل میکنند را آسانتر میسازد. ماشینهای حالت متناهی در طراحی پردازندههای مورد بحث در فصلهای شش و هفت بهطور گسترده استفاده میشوند و دانستن مبانی آنها اهمیت زیادی دارد.
سازمان و معماری کامپیوتر
بخش دوم کتاب، با عنوان «سازمان و معماری کامپیوتر»، شامل هشت فصل بعدی است. فصل سوم به «معماری مجموعهدستورها» اختصاص دارد. هنگامی که قصد طراحی یک ریزپردازنده را دارید، ابتدا باید وظایفی را که پردازنده باید انجام دهد مشخص کنید و سپس دستورها، ثباتها و سایر اجزای مرتبط با مجموعهدستورها را تعیین نمایید تا پردازنده قادر به انجام این وظایف باشد. معماری مجموعهدستورها نخستین گام در فرایند طراحی ریزپردازنده است.
در فصل چهارم، کتاب به «سازمان کامپیوتر» میپردازد. در این فصل نحوهٔ ارتباط پردازنده با حافظه و دستگاههای ورودی و خروجی بررسی میشود. همچنین ساختار حافظهٔ فیزیکی و شیوهٔ سازماندهی آن تشریح میشود. این فصل پایهٔ مفهومی قدرتمندی ایجاد میکند که بخش بزرگی از کتاب بر آن استوار است. در این فصل دو نمونه از سازمان رایانه معرفی میشود: نخست یک رایانهٔ سادهٔ آموزشی که در سراسر کتاب بهعنوان مثال استفاده میشود و بر اساس پردازندهٔ سادهٔ طرحشده در متن شکل گرفته است؛ و دیگری یک نمونهٔ واقعی مبتنی بر ریزپردازندهٔ ۸۰۸۵ ساخت شرکت اینتل.
فصل پنجم به «زبانهای انتقال ثبات» میپردازد. این زبانها در سراسر کتاب برای طراحی ریزپردازندهها و سامانههای دیجیتال مورد استفاده قرار میگیرند. این فصل نحو پایهای این زبان و نمونههایی از طراحیهای معمول را معرفی میکند و دانش لازم برای طراحی سامانههایی را که در این کتاب مطرح میشود در اختیار دانشجو قرار میدهد. افزون بر این، در این فصل زبان توصیف سختافزار نیز معرفی میشود؛ زبانی که در طراحی دیجیتال کاربرد گسترده و اهمیت بالایی دارد.
پنج فصل بعدی بخشهای مختلف یک سامانهٔ کامپیوتری را با تمرکز بیشتر مورد بررسی قرار میدهد. فصل شش با موضوع «طراحی پردازنده با کنترل سختسیمی» آغاز میشود. در ابتدا طراحی یک پردازندهٔ بسیار ساده از پایه تشریح میشود تا برخی از اصول استاندارد طراحی پردازنده، بدون غرقکردن دانشجو در جزئیات زیاد، معرفی گردد. سپس طراحی پردازندهای پیچیدهتر اما همچنان نسبتاً ساده ارائه میشود. این طراحی بر بسیاری از تکنیکهایی که در پردازندهٔ بسیار ساده آموخته شدهاند تکیه دارد و همزمان برخی روشهای پیشرفتهتر را نیز در خود جای میدهد.
پردازنده میتواند از دو نوع واحد کنترل بهره بگیرد. نوع نخست، کنترل سختسیمی است که در فصل ششم معرفی شد. در فصل هفتم، کتاب طراحی واحد کنترل ریزتوالیساز را ارائه میکند؛ روشی که در بسیاری از ریزپردازندههای پیشرفتهٔ امروزی بهکار میرود. در ابتدا، طراحی یک ریزتوالیساز برای پردازندهٔ بسیار سادهٔ پیشتر ساختهشده تشریح میشود. همانند فصل قبل، مبانی ریزتوالیسازها بدون ورود به جزئیات غیرضروری آموزش داده میشود. سپس طراحی یک ریزتوالیساز برای پردازندهٔ نسبتاً ساده ارائه میگردد؛ طراحیای که بر پایهٔ مثال سادهتر قبلی بنا شده و همزمان تکنیکهای پیشرفتهتری را نیز معرفی میکند. در این فصل همچنین سازمان داخلی یک پردازندهٔ مبتنی بر ریزبرنامه، مانند ریزپردازندهٔ پنتیوم، بررسی میشود.
فصل هشتم به حساب کامپیوتری میپردازد. در این فصل قالبهای گوناگون نمایش اعداد و الگوریتمهای انجام عملیات حسابی بر روی این دادهها معرفی میشود. سختافزار موردنیاز برای اجرای این الگوریتمها نیز بهتفصیل مورد بررسی قرار میگیرد. افزون بر این، سختافزارهای تخصصیِ لازم برای انجام عملیات محاسباتی و همچنین استاندارد متداول نقطهٔ شناور، یعنی استاندارد مورد استفاده در تمامی پردازندههای مدرن، تشریح میشود.
در فصل نهم، موضوع سازمان حافظه در سامانههای رایانهای مطرح میشود. این فصل سلسلهمراتب حافظه را معرفی کرده و حافظهٔ نهان و حافظهٔ مجازی را بهصورت گسترده بررسی میکند. برای تبیین بهتر این مفاهیم، ساختار سلسلهمراتب حافظهٔ یک رایانهٔ مجهز به ریزپردازندهٔ پنتیوم که یکی از نسخههای سامانهٔ عامل را اجرا میکند، بهعنوان نمونه بررسی میشود.
سازمان ورودی و خروجی موضوع فصل دهم کتاب است. این فصل به بررسی عملکردهای پایهٔ ورودی و خروجی و همچنین برخی روشها برای افزایش کارایی انتقال داده میپردازد. هرچند در این فصل، بحث وقفهها نیز مطرح میشود، اما ارائهٔ آن در این بخش هیچ خللی به پیوستگی مطالب فصلهای قبل وارد نمیکند و بدون از دسترفتن انسجام مباحث میتوانست زودتر نیز مطرح شود.
مباحث پیشرفته
آخرین دو فصل کتاب، بخش سوم آن را تشکیل میدهند که به «مباحث پیشرفته» اختصاص دارد. فصل یازدهم به پردازش با مجموعهدستورهای کاهشیافته میپردازد. در این فصل دلیل شکلگیری این سبک پردازش و ویژگیهای اصلی آن تشریح میشود. همانطور که بحث وقفهها در فصل پیشین بدون ایجاد گسست در متن جابهجا شد، مطالب مربوط به خط لولهسازی نیز در این فصل چنان تنظیم شدهاند که بدون از دسترفتن پیوستگی، در هرجای متن قابل ارائه باشند. در این فصل همچنین ریزپردازندهٔ مبتنی بر این معماری، مانند پردازندهٔ ایتانیوم، معرفی میشود.
در نهایت، فصل دوازدهم مقدمهای بر پردازش موازی ارائه میدهد. این فصل سازمانها و آرایشهای پایهای سامانههای چندپردازندهای را بررسی کرده و نحوهٔ ارتباط میان پردازندهها و سازماندهی حافظه در این سامانهها را توضیح میدهد. همچنین الگوریتمهای موازی رایج برای انجام وظایف عمومی مورد مطالعه قرار میگیرد.
ویژگیها
این کتاب چندین ویژگی مهم دارد که بهمنظور تسهیل یادگیری و قابلفهمتر ساختن مباحث برای دانشجویان در نظر گرفته شده است. برخی از این ویژگیها عبارتاند از:
- دیدگاههای کاربردی: این دیدگاهها به دانشجویان کمک میکنند تا بفهمند چرا سامانهها به شکل فعلی طراحی شدهاند و روند تبدیل مفاهیم به ساختارهای واقعی را مشاهده کنند.
این دیدگاهها به سامانههای واقعی مربوط میشوند و نشان میدهند مفاهیم چگونه در عمل بهکار میروند. برای مثال، چراییِ طراحی نمایشگرهای مبتنی بر دیود نوری با سطح فعال پایین، و نحوهٔ سازماندهی حافظهٔ نهان در ریزپردازندهٔ ایتانیوم از جمله نمونههای این دیدگاهها هستند.
دیدگاههای تاریخی نیز مطرح میشوند. این بخشها به تشریح اجزا، سامانهها یا رویدادهایی از گذشته میپردازند و با معرفی جدولهای زمانی و رخدادهای مهم در طراحی رایانه، به درک بهتر دانشجویان کمک میکنند. برای نمونه، در این دیدگاهها زمانبندی توسعهٔ ریزپردازندههای اولیهٔ شرکت اینتل و نحوهٔ نامگذاری ریزپردازندهٔ پنتیوم توضیح داده میشود.
هر فصل با نمونهای از یک جزء واقعی یا یک سامانهٔ عملی، یا یک استاندارد رایج به پایان میرسد. این نمونهها به دانشجو کمک میکنند مفاهیم مطرحشده را بهتر بفهمند. در این بخشها سازمان داخلی چند ریزپردازنده بررسی میشود، از جمله ریزپردازندهٔ ۸۰۸۵ که اکنون ۲۵ سال از عرضهٔ آن گذشته و نیز ریزپردازندهٔ ایتانیوم. همچنین این بخشها نشان میدهند موضوعات آموزشدادهشده در هر فصل چگونه در سامانههای واقعی پیادهسازی میشوند؛ برای مثال، حافظهٔ نهان و مدیریت حافظهٔ مجازی در رایانههای مجهز به ریزپردازندهٔ پنتیوم و سامانهٔ عامل رایج آن. نهایتاً برخی استانداردهای مهم مورد استفاده در طراحی رایانه، همچون استاندارد نقطهٔ شناور و همچنین استاندارد گذرگاه سری جهانی، در این قسمت بررسی میشوند.
مسیرهای مطالعهٔ کتاب
مسیر مطالعهٔ این کتاب به پیشزمینهٔ دانشجویان بستگی دارد. اگر دانشجویان هیچ آشنایی با منطق دیجیتال نداشته باشند، باید از ابتدای کتاب شروع کنند. معمولاً در چنین شرایطی، مدرس از فصلهای ۱، ۲، ۳ و ۴ آغاز میکند. سپس یا فصل ۵ بهطور کامل مطالعه میشود، یا تنها بخشهای مربوط به زبان انتقال ثبات، یا بخشهای انتخابی از فصل ۶. امکان دارد فصلهای ۷ و ۸ نیز به دوره افزوده شوند یا بدون لطمه به پیوستگی مطالب حذف گردند. معمولاً دوره در ادامه شامل فصلهای ۹ و ۱۰ میشود و در صورت وجود زمان، فصل ۱۱ یا ۱۲ یا بخشهایی از آنها نیز ارائه میشود.
اگر دانشجویان پیشتر درس طراحی دیجیتال گذرانده باشند، میتوانند فصل ۱ و احتمالاً فصل ۲ را کنار بگذارند. برخی دورههای طراحی دیجیتال بهطور کامل به ماشینهای حالت متناهی نمیپردازند یا تنها بهصورت سطحی آن را بررسی میکنند. در چنین وضعی، فصل ۲ میتواند در کلاس تدریس شود یا بهعنوان مطالعهٔ فردی و مرجع به دانشجو سپرده شود. پس از این مرحله، مسیر عادی مطالعه از فصلهای ۳ تا ۷ تشکیل میشود. فصل ۸ بهصورت انتخابی است و انتخاب آن به نظر مدرس بستگی دارد. معمولاً دوره در ادامه شامل فصلهای ۹، ۱۰ و ۱۱ میشود و بهصورت اختیاری بخشی یا تمام فصل ۱۲ نیز میتواند ارائه شود.
در هر مسیر آموزشی، ممکن است مدرس بخواهد برخی بخشها را با مطالب دیگر جایگزین کند. برای مثال، فصل ۵ به معرفی زبان توصیف سختافزار میپردازد. اگر این کتاب پیشنیاز یا همنیاز آزمایشگاهی باشد که در آن از زبان دیگری برای توصیف سختافزار استفاده میشود، مناسبتر است که مدرس محتوای متن را با مباحث مرتبط با آن زبان جایگزین کند. همچنین لازم است مدرس توجه داشته باشد که برخی از بخشهای دنیای واقعی در این کتاب بر مباحث ارائهشده در فصلهای قبل تکیه دارند. مثلاً فصلهای ۳، ۴ و ۶ در مثالهای واقعی خود از ریزپردازندهٔ ۸۰۸۵ استفاده میکنند، و ریزپردازندهٔ پنتیوم که در فصل ۷ معرفی شده، بهعنوان نمونهٔ واقعی در فصل ۹ نیز مورد استفاده قرار میگیرد.
جمعبندی کلی کتاب سازمان و معماری سیستمهای کامپیوتری کارپینلی
کتاب سازمان و معماری سیستمهای کامپیوتری با هدف ایجاد یک درک جامع از ساختار داخلی رایانه و شیوهٔ طراحی اجزای آن نوشته شده است و با رویکردی مرحلهای، خواننده را از سادهترین مفاهیم دیجیتال تا مباحث پیشرفتهٔ معماری پردازندهها پیش میبرد. کتاب ابتدا با بنیانهای منطق دیجیتال آغاز میشود و با توضیح گیتها، مدارهای ترکیبی، مدارهای ترتیبی، فلیپفلاپها و ماشینهای حالت، پایهٔ لازم برای فهم رفتار سختافزارهای دیجیتال را فراهم میکند. سپس با ورود به حوزهٔ سازمان کامپیوتر، مجموعهدستورالعملها، شیوههای آدرسدهی، ساختار CPU، چرخهٔ دستورالعمل و نحوهٔ تعامل پردازنده با حافظه و ورودی/خروجی را توضیح میدهد و نشان میدهد که چگونه تجریدهای سطح بالای نرمافزار در نهایت به عملیات سختافزاری تبدیل میشوند.
در بخشهای بعدی، کتاب به طراحی عملی مسیر داده و واحد کنترل میپردازد و با استفاده از مدلهای RTL و توصیفگرهای سختافزار، نحوهٔ تبدیل مشخصات رفتاری به مدارهای واقعی را شرح میدهد. ارائهٔ مثالهای واقعی مانند ریزپردازندهٔ 8085 و پردازندهٔ پنتیوم باعث میشود مفاهیم آموختهشده بهصورت عینی قابل درک باشند. علاوه بر این، کتاب مباحث مهمی مانند حساب کامپیوتری، معماری حافظه، حافظهٔ نهان, حافظهٔ مجازی، و سیستمهای ورودی/خروجی را با دقت و جزئیات قابلتوجه بررسی میکند تا نقش هر بخش در عملکرد کلی سیستم مشخص شود.
در پایان، نویسنده به سراغ موضوعات پیشرفتهتری مانند معماری RISC، خط لوله، بهینهسازی اجرای دستورالعملها، نقش کامپایلر در معماری پردازنده، و پردازش موازی میرود و تصویری از شیوهٔ طراحی سیستمهای پردازشی مدرن ارائه میدهد. کتاب با جمعآوری این مفاهیم در یک مسیر آموزشی پیوسته، نشان میدهد که چگونه اصول پایهای دیجیتال در کنار مفاهیم معماری باعث شکلگیری پردازندهها و رایانههای امروزی میشوند.
بهطور کلی، این کتاب یک منبع منسجم و کامل برای درک اصول، طراحی و عملکرد سیستمهای کامپیوتری است؛ منبعی که هم برای دانشجویان مبتدی و هم برای خوانندگان پیشرفته، نقشهٔ راه روشنی از مسیر «منطق دیجیتال تا معماری پردازنده» ارائه میکند.





