25771: طراحی سیستم‌های میکروپروسسوری
نام درس: طراحی سیستم‌های میکروپروسسوری (Microprocessor Systems Design)
شماره درس: 25771
پیش‌نیاز(ها): 25754 (ساختار کامپیوتر و میکروپروسسور و آز)
هم‌نیاز(ها): -
تعداد واحد: 3
مقطع: کارشناسی
آخرین ویرایش: اردیبهشت 1398

توضیحات:
در این درس طراحی سیستم‌های میکروپروسسوری بررسی می‌شود. این بررسی شامل مطالعه سخت‌افزار، نرم‌افزار و ارتباط سخت‌افزارهای جانبی می گردد. میکروکنترلرهای AVR و PIC و ریزپردازنده‌های ARM و ریزپردازنده‌های خانواده  X86مورد مطالعه قرار می‌گیرند. نخست ساختار سخت‌افزاری پردازنده درون میکروکنترلر ATMEGA32 و دستورالعمل‌های مربوطه به زبان اسمبلی و سپس سخت‌افزارهای جانبی درونی که در اطراف پردازنده قرار دارند با جزییات دقیق مطالعه و بررسی می‌شوند. میکروکنترلر PIC18F458 نیز به عنوان یک نمونه دیگر از میکروکنترلرهای پرکاربرد بررسی شده و تفاوت‌های عمده ساختار آن با AVR نشان داده می‌شود. امروزه ریزپردازنده‌های  ARM به عنوان یکی از مهم‌ترین ریزپردازنده‌ها در میکروکنترلرهای پیشرفته مورد استفاده هستند. از این‌رو ساختار این ریزپردازنده‌ها و حالات کاری آن به همراه دستورالعمل‌های مربوطه به زبان اسمبلی در بخش بعد بررسی می‌گردد. ریزپردازنده‌های خانواده X86 شرکت Intel مهم‌ترین پردازنده مورد استفاده در کامپیوترهای امروزی است. در بخش پایانی درس این ریزپردازنده‌ها و چگونگی تحول در جزییات ساختار و کارکرد آن‌ها بررسی می‌شود.
 
سرفصل‌ها:
  • کامپیوترها
    • ساختار داخلی کامپیوتر و اجزای آن
    • انواع حافظه نیمه‌هادی و اتصال حافظه به پردازش‌گر مرکزی
    • اجزای پردازش‌گر مرکزی و چگونگی کارکرد آن
    • تفاوت ساختارهای هاروارد و وان نیومن و تناسب آن‌ها برای میکروکنترلرها و میکروپروسسورها
    • تفاوت میکروکنترلرها با میکروپروسسورها
  • میکروکنترلرهای AVR
    • آشنایی با میکروکنترلرهای AVR و خانواده‌های آن
    • ساختار میکروکنترلرهای AVR و برنامه‌نویسی اسمبلی آن‌ها
    • رجیسترهای عمومی و رجیسترهای مربوط به I/O، سیکل‌های ماشین و زمان اجرای دستورات
    • دستورهای محاسباتی و دستورهای کنترل جریان برنامه
    • دستورهای مربوط به پورت‌های I/O و انواع آدرس‌دهی برای دسترسی به داده‌ها
    • اتصال پایه‌های میکروکنترلر ATMEGA32، فیوزبیت‌ها و روش‌های برنامه‌ریزی میکروکنترلرها
    • بخش‌های جانبی میکروکنترلر ATMEGA32، چگونگی کارکرد، کاربرد و برنامه‌نویسی مربوط به آن‌ها:
      • زمان‌سنج‌ها (Timers) و شمارنده‌ها (Counters)
      • وقفه‌ها (Interrupts) و مزیت آن‌ها
      • ارتباط سریال RS232
      • چگونگی اتصال صفحه کلید (Keyboard) و نمایشگر LCD خارجی به میکروکنترلر و روش استفاده آن‌ها
      • مبدل آنالوگ به دیجیتال درونی میکروکنترلر و استفاده از آن برای اتصال ورودی میکروکنترلر به حسگرها
      • ابزار خارجی برای اتصال خروجی میکروکنترلر به دستگاه‌های صنعتی تحت کنترل
      • ایجاد پالس‌های با پهنای متغیر (PWM) برای کنترل دستگاه‌های صنعتی
      • سخت‌افزار درونی و پروتکل ارتباطی SPI و اتصال به MAX7221 برای کنترل صفحه نمایش
      • سخت‌افزار درونی و پروتکل ارتباطی I2C و اتصال به زمان‌سنج DS1307
  • میکروکنترلرهای PIC
    • آشنایی با میکروکنترلرهای PIC و خانواده‌های آن
    • ساختار درونی میکروکنترلرهای PIC و زبان اسمبلی
    • میکروکنترلر PIC18F458 و ساختار درونی آن
      • نقش رجیستر WREG و مقصد داده‌های پردازش‌شده در مقایسه با میکروکنترلرهای AVR
      • حافظه STACK و تفاوت آن با میکروکنترلر AVR
      • استفاده از فضای آدرس داده (Data Address Space) کوچک‌تر برای کاهش بیت‌های دستورالعمل
      • استفاده از سوییچ بانک حافظه (Register Bank Switching) و نقش رجیستر BSR
      • آدرس‌دهی غیر مستقیم برای دسترسی به داده‌ها (Indirect Data Addressing)
  • میکروپروسسورهای ARM
    • آشنایی با میکروپروسسورهای ARM و تاریخچه آن
    • سه وضعیت پردازش‌گر (ARM, Thumb, Jazelle States) و تفاوت دستورالعمل‌ها و اندازه آن‌ها
    • بررسی کارکرد پردازش‌گر (و مقایسه با کارکرد پردازش‌گر موجود در میکروکنترلر AVR)
      • رجیسترهای پردازش‌گر
      • هفت حالت (7 Modes) کاری پردازش‌گر، امتیاز (Privilege) و رجیسترهای قابل دسترس در هر حالت
      • بررسی پرچم‌ها (Flags) و رجیسترهای CPSR و SPSR
      • کارکرد پردازش‌گر هنگام بروز استثنا (Exception Handling) شامل وقفه‌ها (Interrupts)
      • امکان کنترل اجرای شرطی (Conditional Execution) همه دستورات توسط برنامه‌نویس
      • امکان کنترل به‌روزرسانی پرچم‌ها (Flags Update) در هنگام اجرای دستورات توسط برنامه‌نویس
      • دستور انشعاب با بازگشت و بی بازگشت (Branch & Call)
      • دستورالعمل‌های پردازش داده‌ها و نقش Barrel Shifter در Operand دوم و مقدار Immediate
      • آدرس‌دهی و دسترسی به داده‌ها در حافظه (Data Memory Access)
      • وقفه‌های نرم‌افزاری (Software Interrupts)
      • بررسی انشعابات با بازگشت تو در تو (Nested Subroutine Calls)
      • آشنایی با مجموعه دستورالعمل‌های Thumb
  • میکروپروسسورهای خانواده X86 کمپانی Intel
    • آشنایی با میکروپروسسورهای X86 و تاریخچه آن
    • اندازه حافظه قابل دسترس برای پردازنده‌های مختلف خانواده، از 8086 تا Pentium و حالت Real Mode
    • کاربرد بخش‌های مختلف حافظه برای یک کامپیوتر بر پایه پردازش‌گر 8086 و سیستم عامل DOS
    • بررسی ساختار و کارکرد پردازش‌گرهای از 8086 تا 80486 (و مقایسه با کارکرد پردازش‌گر موجود در میکروکنترلر AVR)
      • رجیسترهای کاربرد عمومی پردازش‌گر و پاره‌های از کاربردهای ویژه آن‌ها
      • رجیسترهای با کاربرد ویژه شامل Flags، SP، IP
      • بررسی پرچم‌ها در رجیستر Flags
      • سگمنت‌رجیسترها (Segment Registers) و نحوه آدرس‌دهی حافظه در حالت Real Mode
      • بررسی حالت Protected Mode پردازش‌گر و نحوه آدرس حافظه با استفاده از جدول تعریف سگمنت‌ها
      • معرفی رجیسترهای Program Invisible برای افزایش سرعت دسترسی به حافظه در حالت Protected
      • تقسیم حافظه به صفحات (صفحه‌بندی حافظه Memory Paging) برای آدرس‌دهی قابل‌انعطاف‌تر
      • روش‌های آدرس‌دهی حافظه داده و استفاده از دستور MOVE به عنوان مثال (رجیستر، مستقیم، ...)
      • آدرس‌دهی حافظه کد با دستورات انشعابی (JMP, CALL)
      • دسترسی به حافظه Stack با دستورات PUSH و POP
      • بررسی چگونگی تبدیل دستورات به زبان ماشین برای دستور MOVE به عنوان مثال
      • بررسی دستورات گوناگون مانند … , MOVZX, POP, LEAبرای جابه‌جایی ساده داده‌ها
      • دستورات جابه‌جایی رشته‌ای داده‌ها (String Data Transfer Instructions)، پرچم D و پوینترها
      • بررسی بیشتر زبان اسمبلی برای پردازش‌گرهای X86
      • بررسی دستورات ضرب و تقسیم در پردازش‌گرهای X86 و اشاره به دستورات ساده حسابی منطقی
      • بررسی دستورات Bit Scan و مقایسه رشته‌ای (String Comparisons)
      • بررسی کنترل جریان برنامه (Program Flow)، دستورات Call، Jump و وقفه‌ها (interrupts)
      • بررسی کارکرد پردازش‌گر (و مقایسه با کارکرد پردازش‌گر موجود در میکروکنترلر AVR)
    • بررسی ساختار و کارکرد پردازش‌گرهای Pentium و Pentium Pro
      • ساختار حافظه و I/O
      • پیش‌بینی انشعاب (Branch Prediction)
      • ساختار حافظه Cache
      • ساختار معماری Superscalar
      • رجیسترهای ویژه
      • ویژگی‌های پردازش‌گر Pentium Pro
    • بررسی ساختار و کارکرد پردازش‌گرهای Pentium II, III, 4 و Core2
      • ساختار حافظه و I/O
      • مجموعه رجیسترها
      • تکنولوژی Hyper Threading
      • تکنولوژی چندهسته‌ای (Multi Core Technology)
      • شناسه پردازشگر (CPUID)
      • رجیسترهای ویژه مدل (Model-Specific Registers)
      • رجیسترهای مونیتورینگ کارایی (Performance-Monitoring Registers)
      • تکنولوژی 64 بیت

مراجع:
  • M. Mazidi, S. Naimi, S. Naimi, AVR Microcontroller and Embedded Systems, Prentice Hall, 2010
  • M. Mazidi, R. McKinlay, D. Causey, PIC Microcontroller and Embedded Systems, Pearson Education, 2008
  • A. Sloss, D. Symes, C. Wright, ARM System Developer's Guide, Morgan Kaufmann, 2004
  • B. B. Brey, The Intel Microprocessors, 8th Edition, Prentice Hall, 2008


 
آخرین به‌روزرسانی: 20 / 3 / 1403