آشنايي با باس PCI

پورت هاي موجود بر روي مادربوردها ازقبيل: پارالل (LPT)، سريال، PS2 و ...، همگي اين وظيفه را دارند كه اطلاعات را به صورت سيگنال هاي الكتريكي وارد كامپيوتر نمايند و معمولا براي مصارف ورود يا خروج اطلاعات با سرعت هاي پايين كفايت مي كنند. حداكثر سرعت قابل دسترسي در هنگام كار با اين پورت ها حدود يك مگابايت در ثانيه مي باشد. واضح است كه اين سرعت جوابگوي بسياري از نيازهاي ما نيست، باسها و Slot هاي تعبيه شده روي مادربردها به كاربران امكان استفاده از وسايل ورودي و خروجي با سرعت هاي بيشتر را مي دهند.

تا كنون باس هاي متفاوتي با خصوصيات متفاوت و گوناگون ارائه شده اند كه مختصرا آنها را بررسي خواهيم نمود:

باس ISA
اين باس نسبتا قديمي است و امروزه كمتر روي مادربردهاي جديد استفاده مي شود، تبادل اطلاعات روي اين باس با پاس ساعتي با سرعت 33/8 مگاهرتز انجام مي شود. چون براي انتقال هر اطلاعات حداقل به گذشت دو پالس ساعت نياز است، پس در هر ثانيه 165/4 ميليون انتقال اطلاعات مي تواند صورت پذيرد. ضمنا چون اين باس مي تواند در هر انتقال حداكثر 16 بيت را منتقل كند. پس حداكثر ظرفيت انتقال روي اين باس 33/8 مگابايت در ثانيه است.
از ديگر خصوصيات اين باس مي توان به نكات زير اشاره نمود:

-خطوط آدرس و ديتا روي اين باس از هم جدا هستند.
-دكودينگ (Decoding) آدرس در كارت هايي كه روي باس ISA قرار مي گيرند به صورت استاتيك انجام مي گيرد. به بيان ديگر باس ISA فاقد مكانيزم هوشمندي براي اختصاص به كارت ها با توجه به آدرس هاي اشغال شده روي باس است. از اين جهت امكان تداخل بين آدرس ها وجود دارد. معمولا براي اينكه اين اتفاق نيفتد، از جامپرهاي روي كارتهاي ISA براي امكان اختصاص آدرس هاي متفاوت به يك كارت استفاده مي شود اشكال مهم اين جامپرها اولا اين است كه آنها شكل آدرس دهي را به كلي حل نمي كنند زيرا محدوده مشخصي را براي كارت قابل دسترسي مي نمايند و ثانيا استفاده از آنها براي كاربران غير حرفه اي دشوار است.
از نظر ظاهري معمولا Slot هاي ISA سياه رنگ و نسبت به باس هاي ديگر روي مادربرد طويل تر هستند.

باس PCI
PCI مخفف Peripheral Component Interface است و توسط شركت Intel در سال 1992 ارائه گرديد. در واقع ايده PCI به اين دليل از طرف شركت Intel عرضه شد، كه از معرفي باس هاي متفاوتي كه بنا به نيازهاي گوناگوني لازم مي شوند، جلوگيري گردد. PCI داراي ويژگي هاي مخصوص به خود است و هيچگونه وابستگي خاصي به پردازنده سيستم ندارد، حتي از اين استاندارد در جاهايي غير از كامپيوترهاي شخصي مي توان استفاده نمود، كما اينكه نگارشي از آن با عنوان Compact PCI در محيط هاي صنعتي و در مصارف ارتباطي استفاده مي شود. در ذيل نگاه كوتاهي به باس PCI و خصوصيات آن خواهيم انداخت.

باس PCI يك باس مشترك است. اين مطلب بدين معنا است كه باس اطلاعات (Data Bus) و باس آدرس روي آن مشترك هستند و باس هاي جداگانه اي به اين منظور نداريم. در نگاه اول ممكن است اين موضوع نقطه ضعفي براي اين باس يه حساب آيد ولي ويژگي ديگر اين باس كه انتقال اطلاعات به صورت burst است آن را جبران مي كند. در توضيح انتقال اطلاعات روي اين باس اين مساله را به صورت دقيق تر خواهيم ديد.
باس PCI از طريق يك Bridge از باس به پردازنده مركزي و حافظه متصل شده است در حقيقت به دليل عدم يكسان بودن ويژگي هاي PCI و پردازنده ها در حالت هاي مختلف، وجود يك جزء كه در اينجا همان Bridge است براي ايجاد ارتباط بين پردازنده مركزي در كامپيوتر و اجزاي موجود بر روي باس PCI الزامي است. در مادربردهاي امروزي اين Bridge همان Chipset موجود بر روي مادربردها است، به هر كدام از اجزايي كه بر روي باس PCI هستند يك Agent گفته مي شود.

براي انجام تبادل اطلاعات يكي از Agent هاي روي باس بايد اين تبادل اطلاعات را با يكي ديگر از اجزاي روي باس آغاز كند، به Agent اي كه انتقال اطلاعات را آغاز مي كند Master Initiator گفته مي شود و به Agent اي كه به درخواست يك Master پاسخ مي دهد Slave Target مي گويند. هر جزيي روي باس PCI به دلايلي كه ذكر آن فراتر از حوصله اين اوراق است بايد Target باشد. بعضي از اجزا ممكن است بتوانند Master شوند، به عبارت ديگر Master بودن اجزا در باس PCI اختياري است. البته توجه به اين نكته خالي از لطف نيست كه اگر يك باس PCI هيچ جزء Master نداشته باشد، هيچ انتقال اطلاعاتي روي آن صورت نخواهد گرفت. به هنگام آغاز يك تبادل اطلاعات Transaction يك Master باس را در اختيار مي گيرد، تبادل اطلاعات بين Master و Target مورد نظرش انجام مي شود و در آخر Master باس را براي استفاده هاي بعدي آزاد مي كند.

براي ساخت يك كارت PCI چندين روش وجود دارد. يكي استفاده از آي سي هاي ASIC كه قيمت بسيار بالايي دارند و انعطاف پذيري لازم جهت ساخت هر نوع كارتي را ندارند و ضمنا حصول نتيجه با آنها به موارد كاربردي محدودي منجر مي شود. و دوم خريد PCI CORE مي باشد. اين Core ها معمولا به صورت IP وجود دارند و به صورت بسته در اختيار قرار مي گيرند. خريد سورس PCI Core نيز قيمت بسيار گراني در حدود 20.000 دلار دارد و عموما نياز به يك دوره آموزشي براي فراگيري نحوه بكارگيري آن است اما اين حسن را دارد كه علاوه بر انعطاف پذيري هاي لازم كه در اختيار استفاده كننده قرار مي دهد مي تواند با استفاده از IC هاي ارزان قيمت نظير Spartanll Xilinx پياده سازي شود. ضمنا بايد توجه داشت كه نوشتن driver و كاركردن تحت سيستم عامل هاي Windows XP-2000 تكميل كننده كار براي ساخت يك كارت اسلات PCI و بكارگيري نرم افزارهاي پشتيبان مي باشد.