بنا به دلایلی پنتیوم یک طراحی اصلی حیاتی بود اما احتمالاً وسیله ارتباط غیرعادی آن ویژگی اعتصابی و جالب و بحث برانگیز آن بود. پس از طی حدود 20 مرحله، ارتباط و خط لوله ی پنتیوم 4 تقریباً دو برابر عمیق تر و پیچیده تر از دیگر رقبای خود بود. اخیراً پرس کات (Prescott) با یک جانشین 90 نانومتری به پنتیوم 4 راه ارتباطی را به سطح بعدی با افزوده شدن یک 10 مرحله ای دیگر به پنتیوم 4، که هم اکنون نیز کانال ارتباطی طولانی تری است را دارد. استراتژی Intel برای پیچیده سازی کانال ارتباطی پنتیوم 4 که به نام بیش ارتباط یا hyperpipelining در عملکرد خود موفق بوده است اما بدون نقص و کاستی نیز نمی باشد. در مقاله قبلی در مورد پنتیوم 4 و پرسکات من به معایب کانال های ارتباطی پیچیده اشاره کاستی نیز نمی باشد. در مقاله قبلی در مورد پنتیوم 4 و پرسکات، من به معایب کانال های ارتباطی پیچیده اشاره کردم و تلاش نموده ام تا در مقالات بزرگتر فنی در Netburst این معایب را و دیگر مطالب را توضیح دهم. در مجموعه مقالات حاضر، قصد من استفاده از تاکید بیشتر برای توضیح کانال ارتباطی تاثیرات آن بر عملکرد ریزپردازنده و بخش های زیرین بالقوه آن، می باشد. من شما را از طریق مقدمه اساسی به تصور کانال ارتباطی خواهم برد و سپس توضیح خواهم داد که برای ارتباط موفقیت آمیز چه چیزهایی نیاز است و چه مخاطراتی در آن اختلال ایجاد می کند. در انتهای مقاله، شما کاملاً متوجه خواهید شد که چگونه عمق و پیچیدگی کانال ارتباطی به راههای مختلفی از کدها دقیقاً روی عملکرد ریز پردازنده تاثیر می گذارد، چنانچه مقاله قبلی من را با نام شناخت کانال ارتباطی و اجرای سوپر اسکالر (understanding pipelinigl supascalar eyecution) خوانده باشید، بخش اول این مقاله برای شما قابل فهم تر خواهد بود. در واقع این مقاله، همان قبلی است اما بسیار واضح تر، دقیق تر و امروزی تر.
چرخه زندگی یک دستورالعمل
فعالیت اصلی هر ریزپردازنده در حال عبور از دستورات را می توان در مجموعه 4 گام ساده کاهش داد. که هر دستور به شکل کد به ترتیب می رود تا اجرا می شود :
1 دستور بعدی را از آدرس ذخیره شده در شمارشگر برنامه را بیاروید (fetch)
2 این دستور را در ریجستر دستور ذخیره کنید و آن را رمز گشایی کنید و نشانی را در شمارشگر برنامه افزایش دهید.
3 دستور ریجستر را اجرا کنید (Execute) چنانچه دستور شاخه ای نیست به ALU (واحد محاسبه و منطق) مناسب بفرستید.
a) محتوای ورودی ریجسترها را بخوانید (Read)
b) محتوای ریجسترهای ورودی را اضافه کنید (ADD)
4 نتایج دستور را از ALU به ریجستر مقصد بنویسید (Wrie)
در یک پردازنده مدرن و جدید، چهار گام بالا بقدری تکرار می شوند تا اجرای برنامه تمام شود. اینها در حقیقت 4 مرحله در کانال ارتباطی (pipeline) RISC می باشد. اکنون در اینجا 4 مرحله را بطور خلاصه می آوریم :
1 Fetch (آوردن)
2 Decode (رمزگشایی کردن)
3 Execate (اجرا کردن)
4 Write یا «Write - bock» (نوشتن)
هر کدام از این مراحل را می توان یک فاز در چرخه زندگی دستور، به شمار آورد. یک دستور با فاز آوردن شروع می شود به فاز رمز گشایی رفته و بعد به فاز اجرا و نهایتاً به فاز نوشتن می رود. هر فاز زمان ثابتی و نه مساوی را صرف می کند. در اغلب پردازنده های مثال که در این مقاله به آنها خواهیم پرداخت. تمام 4 مرحله زمان یکسانی را صرف می کنند اما این موضوع برای پردازنده های واقعی اینگونه نیست. در هر مورد، اگر یک پردازنده ساده آزمایشگاهی دقیقاً 1 نانوثانیه برای تکمیل هر فاز صرف کند، این پردازنده برای تمام کردن یک دستور 4 نانو ثانیه وقت صرف می کند.
اساس کار خط لوله ای (pipelining) مقایسه
در بخش حاضر برای توضیح ارتباط از مقایسه کارخانه استفاده می شود. دیگر افراد از مقایسه های ساده تری مثل شستن رخت ها برای توضیح این تکنیک استفاده می کنند اما دلایل اندکی در انتخاب من برای این مقایسه وجود دارد. ابتدا، تجسم کارخانجات با خطوط اسمبلی برای خواننده راحت تر است و فضاهای زیادی برای جذب نقاط و نکات مختلف توسط خواننده وجود دارد. دوم، و احتمالاً مهمترین دلیل، مشکلات منابع مدیریتی و زمان بندی صف داده ها که طراحان کارخانه در ساخت کامپیوتر با آن مواجه هستند، می باشند. در بسیاری از موارد مشکلات و راه حل ها دقیقاً مشابهند، و به سادگی به قلمرو (domain) مختلفی ترجمه می شود. (توجه داشته باشید که مشکلات / راه حل های مربوط به صف داده ها که مشابهند نیز در سرویس کارخانه بوجود می آید. و این دلیلی است که چرا قیاس با رستورانهای فست فود و سوپر مارکت ها مورد علاقه من است.)
بهتر است بگوییم من و دوستانم تصمیم گرفتیم وارد تجارت ساخت خودروهای موتوری شویم و محصول اولیه ما یک وسیله نقلیه اسپورت (Suv) باشد. پس از تحقیقات و بررسی ما به این نتیجه می رسیم که در پروسه ساخت SUV 5 مرحله وجود دارد :
مرحله 1) ساخت شاسی اتومبیل
مرحله 2) قراردادان موتور شاسی
مرحله 3) قراردادن درها، کاپوت و لفاف ها
مرحله 4) قراردادن چرخها
مرحله 5) رنگ زدن SUV
انجام هر کدام از مراحل فوق، نیاز به استفاده از کارگران ماهر به همراه مجموعه وسایل پیشرفته دارد و اینکه کارگران مسئول ساخت شاسی چندان از موتور، بدنه، چرخها یا رنگ آمیزی اطلاعی ندارد و این در مورد بقیه قسمتها نیز این چنین است. پس زمانیکه ما تصمیم گرفتیم که یک کارخانه SUV را راه بیاندازیم، 5 گروه متخصص هر کدام در هر یک مرحله از ساخت را به خدمت گرفتیم. یک گروه برای ساخت شاسی، یکی برای موتور، یک گروه دیگر برای چرخها و یک گروه هم برای رنگ آمیزی. نهایتاً بعلت اینکه گروه ها حرفه ای متخصص بودند هر مرحله پروسه ساخت SUV دقیقاً یک ساعت طول می کشید تا کامل شود.
اکنون، از آنجایی که من و دوستانم در زمینه موتورهای صنعتی سر رشته نداریم، بایستی در مورد منابعی که کارخانه را سودآور می کند بسیار یاد بگیریم. ما اساس اولین ساخت را روی نقشه زیر قرار دادیم : در زمینه کارخانه هر 5 گروه را در یک خط قرار دهیم، و ابتدا گروه 1 مرحله 1 را انجام دهد. پس از اتمام مرحله 1، گروه کارگران 1، SUV نیمه تمام را به مرحله 2 می دهند و اتاق شاسی بعدی تا گروه دوم موتور را ساخته و درون آن بگذارد. به محض اتمام کار گروه SUV به مرحله 3 برسد و در آنجا کار مرحله 1 و2 را تکمیل می کند. SUV در امتداد خط پائین می رود و هر 5 مرحله روی آن انجام می شود بدین شکل که فقط یک گروه در حال کار بر روی SUV است و بقیه کارگران بیکار هستند. با این سرعت دقیقاً ساعت طول می کشد تا یک SUV آماده شود و در واقع کارخانه ماهر ساعت یکبار یک SUV تولید می کند.
موفقیت در طی سال ماشین SUV ما به خوبی فروش داده و ما با ارتش آمریکا قرارداد بسته ایم. ارتش سفارش چند ماشین در زمان را می دهد. یک سفارش ممکن است شامل SUV10 باشد و دیگری ممکن است شامل 500 ماشین SUV شد. هر چقدر میزان سفارشات ما در سال مالی بیشتر باشد پول بیشتری عاید ما خواهد شد. البته این بدین معنی است که باید به دنبال راهی برای افزایش SUV در ساعت باشیم. با تکمیل SUV های بیشتری در هر ساعت، می توانیم سفارشات ارتش را سریعتر آماده کرده و به پول خود سریعتر برسیم. یک راه تلاش برای کاهش زمان تولید SUV است. چنانچه بتوانیم کارگران را وادار کنیم با دو برابر سرعت کار کنند. می توانیم در زمان مشابه دو برابر تولید داشته باشیم. کارگران با سرعت هر چه تمامتر کار می کنند، و فقط برای افزایش بازدهی استراحت کوتاهی می کنند، باز هم از جدول حذف شده است.
از آنجایی که بیشتر از این نمی توانیم سرعت کارگران را بالا ببریم. می توانیم یک خط اسمبلی دیگر نیز به راه بیاندازیم. اگر 5 گروه دیگر را به خدمت گرفته و آموزش دهیم، قادر هستیم در 5 ساعت دو تا SUV تولید کنیم. این موضوع نه تنها سبب دو برابر شدن تولید می شود بلکه تعداد کارگران در حال کار یا در حال استراحت را نیز دو برابر می کند. در نتیجه باید دنبال یک راه بهتر باشیم.
با کمبود اختیارات و امکانات، ما یک تیم مشاوره را به خدمت گرفتیم تا یک راه مناسب بودن و دو برابر شدن تعداد کارگران و افزایش میزان بهره وری، پیش پای ما بگذارد. یکسال و هزاران ساعت وقت صرف شد تا تیم مشاوره بتواند راه حل مناسبی بیابد. چرا بگذاریم کارگران 5/4 وقت خو د را در اتاق استراحت بگذرانند؟ و پس از این مدت آیا می توانند مفید باشند و بازدهی مناسبی داشته باشند؟ با برنامه ریزی مناسب بر 5 گروه کارکنان کارخانه ما قادر بود هر SUV در یک ساعت کامل کند و به نحو حیرت آوری کارآیی و خروجی خط اسمبلی را بهبود بخشد. جریان کاری بازبینی شده به شرح زیر است : کارگران مرحله 1 شاسی را می سازند، به محض اتمام شاسی آن را به کارگران مرحله 2 می فرستند. کارگران مرحله 2 مشغول قرار گرفتن موتور درون شاسی می شوند و در همین حین کارگران مرحله 1 شروع به ساخت یک شاسی جدید دیگر می کنند. زمانی که کار هر دو گروه 1 و 2 تمام شد آن را به مرحله 3 می فرستند و کارگران گروه 1 دوباره ساخت یک شاسی جدید را شروع می کنند.
بنابراین زمانی که خط اسمبلی شروع به تولید SUV در مراحل مختلف می کند، بیشترین کارگران همزمان در حال کار هستند در حالیکه همه کارگران روی وسیله نقلیه متفاوتی در مراحل مختلف تولید کار می کنند. اگر بتوانیم خط اسمبلی را پر نگهداریم و همزمان همه کارگران مشغول بکار باشند می توانیم طی یک ساعت یک SUV تولید کنیم. در واقع سرعت تولید را 5/1 رسانده ایم. این، بطور خلاصه، یعنی را ه ارتباطی (pipelining)
در حالیکه زمان کل تولید هر یک sav از 5 ساعت تغییر نیافته است. اما سرعت تولید و تکمیل افزایش یافته و بنابراین سرعت اجرای معامله و قرارداد با ارتش افزایش یافته است. راه ارتباطی با استفاده مجهز از تمام منابع موجود ،جادو م یکند . ما نیازی به افزایش سرعت انفرادی هر مرحله تولید نداریم همچنین نیازی به افزایش منابع خود که ما را دچار مشکل کرده بودند نیز نداریم . تنها چیزی که لازمست گرفتن کار بیشتر از منابع موجود است.