هر سیستم کامپیوتر دارای سه دسته گذرگاه اساسی می باشد که وظیفه ارتباط بین بلوک های اصلی تشکیل دهنده CPU و کنترل عملکرد صحیح آنها را بر عهده دارد این گذرگاهها عبارتند از:
گذرگاه داده ( Data BUS )، گذرگاه آدرس ( Address BUS )، گذرگاه کنترل ( Control BUS ).
گذرگاه داده ( Data Bus )
گذرگاه داده به مجموعه ای از سیم ها و مدارات کنترلی گفته می شود که وظیفه انتقال داده به داخل و یا خارج از ریزپردازنده را بر عهده دارند. گذرگاه داده در واقع مسیر اطلاعات است که این اطلاعات یا از بلوک های حافظه یا I/O خوانده شده و یا در آنها نوشته می شوند، لذا در واقع گذرگاه داده یک مسیر دو طرفه محسوب می شود.
در اغلب ریزپردازنده ها عرض گذرگاه داده با طول ثباتهای داخلی ریزپردازنده یکسان است تا به راحتی بتوان در ثباتهای ریزپردازنده مقادیر مورد نظر را نوشت و یا در صورت لزوم از آنها خواند. بعنوان مثال ریزپردازنده 8086 دارای گذرگاه داده 16بیتی و ثبات های داخلی 16 بیتی است. البته استثناهائی هم وجود داشته که طول ثبات های آنها از عرض گذرگاه داده بیشتر بوده است. بعنوان مثال هرچند ریزپردازنده 16 بیتی 8088 دارای گذر گاه داده 8 بیتی است اما ثبات های آن 16 بیتی در نظر گرفته شده است. هر چه عرض گذر گاه داده بیشتر باشد داده ها سریعتر جابجا می شوند و سرعت ریزپردازنده نیز بیشتر خواهد شد. بنابر این یکی از زمینه هایی که همواره مورد توجه طراحان و سازندگان ریزپردازنده ها بوده افزایش پهنای خطوط داده می باشد. در این زمینه مقالات دیگری در تالار گفتگوی سایت میکرورایانه موجود است. بعنوان مثال شرکت اینتل پس از عرضه ریزپردازنده 8 بیتی 8085، ریزپردازنده های 16 بیتی 8086 و 80286 رابه بازار عرضه کرد و پس از آنها نیز ریزپردازنده های 32 بیتی 80386 و 80486 را روانه بازار نمود. امروزه ریزپردازنده ها دارای گذرگاه داده 64 بیتی هستند که امکان انتقال همزمان 8 بایت داده را فراهم می سازد.
اما اگر گذرگاه داده این قدر بر کارآیی پردازنده ها اثر می گذارند، چرا از گذرگاه داده 128 بیتی و یا حتی 256 بیتی استفاده نمی کنند؟
پاسخ این سؤال، به هزینه ساخت مربوط می شود. افزایش پهنای گذرگاه داده، باعث افزایش حجم مدار ریزپردازنده و خطوط ارتباطی روی مادربرد می شود. بعنوان مثال پردازنده 80386DX که از گذر گاه داده 32 بیتی استفاده می کند از 132 پین و پردازنده پنتیوم که دارای گذرگاه داده 64 بیتی می باشد از 296 پین برای اتصال به مادربرد استفاده می نماید که یکی از دلایل این افزایش چشمگیر تعداد پین ها ،افزایش پهنای گذرگاه داده است.
علاوه بر پهنای گذرگاه داده، سرعت گذرگاه داده نیز نقش مهمی در سرعت انتقال اطلاعات دارد در واقع برای اکثر ریزپردازنده های جدید، گذرگاه داده داخلی بسیار سریعتر از گذرگاه داده خارجی ریزپردازنده می باشد. هرچند مدارات داخل ریزپردازنده ها با سرعت هایی در حد گیگا هرتز می توانند کار کنند اما گذرگاههای خارجی که برروی مادر برد قرار دارد اکثراً سرعت هایی تا حد چند صد مگاهرتز می توانند داشته باشند بطوری که معمولاً سرعت انتقال داده ها در داخل پردازنده حدود 2 تا 3 برابر سرعت انتقال اطلاعات در خارج از ریزپردازنده است. برای حل این مشکل تدابیر مختلفی در نظر گرفته شده است که شاید بهترین آنها استفاده از حافظه Cache می باشد تا میزان استفاده از گذرگاه داده خارجی حتی الامکان کاهش یابد.
گذرگاه آدرس ( Address Bus )
این گذرگاه همان طور که از نامش پیداست، از مجموعه سیمها و خوطوط ارتباطی تشکیل شده که وظیفه آنها حمل بیت های آدرس است و برای مشخص نمودن محل قرار گرفتن داده در حافظه (یا تعیین دستگاه I/O مورد نظر) مورد استفاده قرار می گیرند. CPU در هر عمل خواندن از حافظه و یا نوشتن در آن آدرس محل مورد نظر را با گذاشتن صفر و یک هایی بر روی این خطوط مشخص می کند. از آنجا که CPU همواره تولید کننده آدرس است پس جهت این خطوط همواره به سمت خارج CPU است. هرچه پهنای گذرگاه آدرس بیشتر باشد ریزپردازنده می تواند به حافظه فیزیکی بزرگتری دسترسی داشته باشد. میزان حافظه قابل دسترسی برابر است با 2 به توان تعداد بیتها، مثلاً گذرگاه آدرس 32 بیتی میتواند 2 به توان 32 بایت یا 4 گیگا بایت حافظه را آدرس دهی کند.
ریزپردازنده های 8086 و 8088 دارای 20 خط آدرس هستند که تنها امکان آدرس دهی 1MB حافظه را فراهم می کنند و البته این حجم از حافظه برای بسیاری از کاربرد ها کافی نیست. اینتل در ریزپردازنده های 80386 و نسل های بعد از آن از گذرگاه های آدرس 32 بیتی استفاده کرد و همانطور که اشاره شد این گذرگاه ها امکان آدرس دهی 4GB حافظه را برای سیستم امکان پذیر می سازند. در ریزپردازنده های Pentium II و Pentium Pro از گذرگاه های آدرس 36 بیتی استفاده شد که گذرگاه های فوق نیز امکان آدرس دهی 64GB حافظه را فراهم می آورند.
گذرگاه کنترل ( Control Bus )
گذرگاه کنترل شامل مجموعه سیگنالهایی است که وظیفه کنترل و هماهنگ کردن ریزپردازنده با مدارات سخت افزاری دیگر موجود در سیستم نظیر حافظه و I/O را بر عهده دارد.
سیگنالهای کنترلی را می توان به سه گروه عمده تقسیم کرد:
1) سیگنالهای کنترلی مربوط به وقفه :
در PC برای ارتباط CPU با برخی از ادوات جانبی، به خصوص دستگاه های ورودی و خروجی از وقفه (Interrupt) استفاده می شود. در این روش، دستگاه مورد نظر از طریق یکی از پایه های ریزپردازنده که مربوط به وقفه است، از CPU می خواهد که عملیات مورد نیاز این دستگاه را انجام دهد. ریزپردازنده با توجه به برنامه فعلی خود و تقدم این وقفه، اجرای برنامه های جاری خود را قطع کرده و به سراغ برنامه ای می رود که وقفه مورد نظر به آن نیاز دارد. به این برنامه، اصطلاحاً برنامه سرویس دهنده وقفه یا ISR یا Interrupt Service Routine گفته می شود پس از اجرای برنامه ISR ریزپردازنده به حالت عادی خود باز می گردد و روال کار عادی خود را ادامه می دهد. ضمن اینکه ریزپردازنده علاوه بر پایه هایی که به درخواست وقفه اختصاص می دهد، پایه هایی را نیز به این امر مختص می کند تا به دستگاه مورد نظر بگوید که وقفه درخواستی را دریافت کرده است. وقفه ها در عمل بسیار مورد استفاده قرار می گیرند و بسیاری از ادوات جانبی، از این روش برای ارتباط با Cpu استفاده می کنند.
2) سیگنالهای کنترلی مربوط به DMA :
DMA مخفف Direct Memory Access است و قابلیتی است که در پردازنده های جدید مورد استفاده قرار گرفته است. این ویژگی، امکان ارتباط مستقیم بین حافظه و ادوات جانبی بدون دخالت CPU را فراهم می آورد .
3) سیگنالهای کنترلی مربوط به کنترل گذرگاه :
این سیگنالهای کنترلی بر ورود و خروج داده و آدرس از طریق گذرگاهای داده و همچنین آدرس و کانالهای DMA نظارت می کند.
گردآورنده و نویسنده : بهار یاوری
تدوین و آماده سازی : همکاران سایت میکرو رایانه