در این بخش مقدمه ای را برای سازمان و کار درونی کامپیوترها فراهم می آوریم. مدل بکار رفته یک مدل عمومی است، ولی مفاهیم مورد استفاده قابل اعمال به همه کامپیوترها از جمله PS/2 , IBM و سازگار با آنهاست. قبل از آغاز این مبحث،مروری بر تعاریف برخی از اصطلاحات در کامپیوتر،مانند کیلو (k) ، مگا،گیگا، بایت، RAM, ROM و غیره مفید است.
بعضی اصطلاحات مهم
یکی از امکانات مهم یک کامپیوتر حافظه موجود در آن است. بنابراین اکنون اصطلاحات بکار رفته برای اندازه حافظه در IBM PC ها و سازگار با آنها را بیان می کنیم. از بحث قبل بیاد دارید که بیت یک رقم دودویی بود که می توانست مقدار 0 یا 1 داشته باشد. بایت یک مجموعه 8 بیتی است. نیبل نصف یک بایت، یا 4 بیت است. کلمه دو بایت یا 16 بیت می باشد. نمایش زیر به منظور نشان دادن اندازه نسبی این واحدها ارائه شده است. البته،آنها می توانند هر ترکیبی از صفرها و یک ها باشند.
بیت 0
نیبل 0000
بایت 0000 0000
کلمه 0000 0000 0000 0000
یک کیلوبایت، 10 2 بایت یا 1024 بایت است. اغلب از K برای بیان آن استفاده می شود. مثلاً برخی از فلاپی دیسک ها (یا دیسک نرم) k 356 داده را نگه می دارند. یک مگابایت، یا ساده تر مگ، 20 2 بایت است. این مقدار، کمی بیش از یک میلیون بایت است و مقدار دقیق آن 576/048/1 می باشد. با گذری سریع در ظرفیت به گیگابایت یا 30 2 بایت می رسیم (بیش از 1 بیلیون یا میلیارد)، و یک ترابایت نیز 40 2 بایت است (بیش از 1 تریلیون). برای مثالی از چگونگی کاربرد آنها،فرض کنید که کامپیوتری دارای 16 مگابایت حافظه باشد. این مقدار برابر با 220 * 16 یا 220 * 4 2 یا 224 است. بنابراین 16 مگابایت 224 بایت می باشد.
در میکروکامپیوترها معمولا از دو نوع حافظه استفاده می شود که عبارتند از RAM ، که به معنی حافظه با دستیابی تصادفی است (گاهی هم حافظه خواندن / نوشتن نامیده می شود) و ROM که به معنی حافظه فقط خواندنی می باشد. RAM بوسیله کامپیوتر برای ذخیره سازی موقت برنامه های در حال اجرا مورد استفاده قرار می گیرد. این برنامه ها یا اطلاعات بعد از خاموش شدن کامپیوتر از بین می روند. به همین دلیل، RAM را گاهی حافظه فرار هم می خوانند. ROM برای برنامه ها و اطلاعات لازم در عملکرد کامپیوتر لازم است. اطلاعات در ROM دائمی است و قابل تعویض بوسیله کاربر نمی باشد و پس از خاموش شدن کامپیوتر هم از بین نمی رود. بنابراین آن را حافظه غیرفرار گوییم.
سازمان درونی کامپیوترها
بخش عملیاتی هر کامپیوتر قابل تفکیک به سه قسمت است: CPU (واحد پردازش مرکزی)، حافظه و وسایل I/O (ورودی / خروجی) ، شکل 9-0 ملاحظه شود. نقش CPU اجرای (پردازش) اطلاعات ذخیره شده در حافظه است. عمل وسایل I/O همچون صفحه کلید، مانیتور تصویر (ویدئو) ، تهیه مفاهیم ارتباط و محاوره با CPU است. CPU از طریق رشته ای از سیم ها به نام گذرگاه به حافظه و I/O متصل است. گذرگاه داخل یک کامپیوتر، درست مثل گذرگاههای خیابانی که مردم رااز مکانی به مکانی دیگر هدایت می کنند، اطلاعات را از جایی به جای دیگر انتقال می دهند. در هر کامپیوتر سه نوع گذرگاه موجود است: گذرگاه آدرس، گذرگاه داده و گذرگاه کنترل.
به منظور شناسایی یک وسیله (حافظه یا I/O ) توسط CPU ، باید آدرسی به آن تخصیص داد. آدرس اختصاص یافته به یک وسله مورد نظر باید منحصر به فرد باشد؛ یعنی دو وسیله مختلف مجاز به داشتن یک آدرس نیستند. CPU آدرس را روی گذرگاه آدرس قرار می دهد (البته به شکل دودویی) و مدار دیکد وسیله را می یابد. آنگاه CPU از گذرگاه داده برای بدست آوردن داده از وسیله یا ارسال داده به آن استفاده می نماید. گذرگاههای کنترل برای تهیه سیگنال های خواندن و نوشتن در وسیله و مطلع ساختن آن از تصمیم CPU برای دریافت اطلاعات و یا ارسال اطلاعات به آن است. از سه گذرگاه فوق، آدرس و داده، توانمندی یک CPU را نشان می دهند.
توضیحی بیشتر درباره گذرگاه داده
چون گذرگاههای داده برای انتقال اطلاعات به و یا از CPU بکار می روند، هر چه گذرگاههای داده بیشتر باشند، CPU بهتر است. اگر گذرگاههای داده را همچون خطوط اتوبان تصور کنیم، واضح است که هر چه خطوط بیشتر باشند، مسیر بین CPU و وسایل بیرونی (مانند چاپگرها، ROM, RAM و غیره ، شکل 10-0 ملاحظه شود) بهتر خواهد بود. اما افزایش در تعداد خطوط، هزینه ساخت را افزایش می دهد. گذرگاههای حافظه بیشتر،بمعنای CPU و کامپیوتر گرانتر می باشد. اندازه متوسط گذرگاه داده در CPU ها بین 8 و 64 متغیر است، کامپیوترهای اولیه مانند Apple2 از یک گذرگاه داده 8 بیت استفاده می کردند، در حالیکه سوپرکامپیوترهایی همچون Cray گذرگاه داده 64 بیتی را به کار می برند. گذرگاههای داده دو طرفه هستند، زیرا CPU از آنها به هنگام دریافت و یا ارسال داده استفاده می کند. توان پردازش CPU به اندازه این گذرگاهها وابسته است، زیرا یک گذرگاه 8 بیتی هر بار قادر است 1 بایت داده را بفرستد،ولی گذرگاه 16 بیتی، 2 بایت را هر بار ارسال می کند که در نتیجه دو برابر سریعتر خواهد بود.
توضیحی بیشتر درباره گذرگاه آدرس
چون گذرگاه آدرس برای شناسایی وسیله و حافظه متصل به CPU بکار می رود، هر چه گذرگاههای آدرس بیشتر باشند، تعداد وسایلی که آدرس دهی می شوند بیشتر خواهند بود. به بیان دیگر تعداد گذرگاههای آدرس برای یک CPU ، تعداد مکان هایی را که با آن محاوره می کند افزایش می دهد. همواره تعداد مکان ها است که در آن x تعداد خطوط آدرس می باشد و ربطی به اندازه خطوط داده ندارد. مثلا یک CPU با 16 خط آدرس می تواند 65536 (216 ) یا k 64 حافظه را آدرس دهی کند. هر مکان حداکثر 1 بایت داده دارد. به این دلیل است که غالباً تمام ریزپردازنده های همه منظور را بایت آدرس پذیر می نامند. برای مثالی دیگر، کامپیوتر IBM PC AT از یک CPU با 24 خط آدرس و 16 خط داده استفاده می کند. در این حالت،کل حافظه قابل دسترس،16 مگابایت خواهد بود (مگابایت 16=224) در این مثال 224 مکان وجود دارد، و چون هر مکان یک بایت است،16 مگابایت حافظه موجود خواهد بود. گذرگاه آدرس یک گذرگاه یک طرفه می باشد، و به این معنی است که CPU از گذرگاه آدرس فقط برای ارسال آدرس به خارج از خود استفاده می کند. بطور خلاصه: تعداد کل حافظه های آدرسپذیر بوسیله یک CPU همیشه برابر با x2 می باشد که در آن x تعداد بیت های آدرس است و ربطی به اندازه گذرگاه داده ندارد.
CPU و ارتباط آن با RAM و ROM
در پردازش اطلاعات بوسیله CPU ، داده باید در RAM یا ROM ذخیره شود. وظیفه ROM در کامپیوترها ارائه اطلاعات ثابت و دائمی است. این اطلاعات عبارتند از :جداول برای الگوی کاراکترهای مورد نمایش روی صفحه مانیتور، یا برنامه هایی که در کامپیوتر نقش اساسی دارند، مانند برنامه هایی که کل RAM موجود در سیستم را می یابند و یا تست می کنند، و یا برنامه هایی که اطلاعات را روی مانیتور نمایش می دهند. بر عکس، RAM برای ذخیره اطلاعاتی بکار می رود که غیر دائمی و قابل تغییر با زمان می باشند، مانند انواع سیستم های عامل و بسته های کاربردی مثل بسته های پردازش کلمات و محاسبه مالیاتی. این برنامه ها را برای پردازش توسط CPU در RAM قرار داده می شوند. CPU اطلاعات مورد پردازش را از RAM یا ROM دریافت می نماید. در صورتیکه آن را در آنجا نباید شروع به جستجو در وسایل ذخیره سازی حجیم مانند دیسک می نماید، و سپس اطلاعات را به RAM منتقل می کند به این دلیل، گاهی RAM و ROM را حافظه اصلی می نامند و دیسک ها نیز حافظه ثانوی خوانده می شوند.
درون CPU ها
برنامه ذخیره شده در حافظه دستورالعمل هائی را برای CPU فراهم می سازد تا بر اساس آن عملی را انجام دهد. عمل می تواند یک جمع داده ساده همچون صورتحساب و یا کنترل یک ماشین مانند روبات باشد. برداشت این دستورات از حافظه و اجرای آنها بعهده CPU است. برای انجام اعمال برداشت و اجرا، تمام CPU ها مجهز به امکانات زیر هستند:
1- قبل از هر چیز تعدادی ثبات در اختیار CPU قرار دارد. CPU از این ثبات ها برای ذخیره موقت اطلاعات استفاده می کند. اطلاعات می تواند دو مقدار مورد پردازش و یا آدرس مقدار مورد نظری باشد که باید از حافظه برداشت شود. ثبات های درون CPU می توانند 8 بیت ، 16 بیت، 32 بیت و یا حتی 64 بیت باشند. اندازه آنها به CPU بستگی دارد. بطور کلی هر چه ثبات ها بیشتر و بزرگتر باشند، CPU مناسب تر است. عیب ثبات های بیشتر و بزرگتر، گرانی CPU می باشد.
2- CPU دارای بخشی بنام ALU (واحد حساب/ منطق) است. بخش ALU در CPU مسئول انجام اعمال حسابی مانند جمع، تفریق، ضرب و تقسیم، و اعمال منطقی مانند AND ، OR و NOT می باشد.
3- هر CPU دارای یک شمارنده برنامه است. نقش شمارنده برنامه اشارهبه آدرس دستورالعمل بعدی برای اجرا است. با اجرای هر دستورالعمل، شمارنده برنامه افزایش یافته و به آدرس دستورالعمل بعدی برای اجرا اشاره خواهد کرد. در این اشاره، محتوای شمارنده برنامه روی گذرگاه آدرس قرار گرفته و دستورالعمل مورد نظر را یافته و آن را از مبدأ برداشت می کند. در IBM PC شمارنده برنامه را IP یا اشاره گر دستورالعمل می خوانند.
4- نقش دیکدر دستورالعمل ، تفسیر دستور برداشت شده توسط CPU است. می توان دیکدر دستورالعمل را همانند یک فرهنگ لغت تصور کرد که مفهوم هر دستورالعمل را ذخیره نموده و CPU را در برداشت قدم های بعدی پس از دریافت دستورالعمل هدایت می کند. همانطور که فرهنگ لغت باتعریف هر چه بیشتر لغات نیاز به صفحات بیشتری دارد، CPU هم در درک دستورالعمل های بیشتر نیاز به ترانزیستورهای بیشتری خواهد داشت.
عملیات درونی کامپیوتر
برای نمایش برخی از مفاهیم مورد بحث فوق، تحلیل قدم به قدمی از پردازش یک CPU برای جمع سه عدد در زیر داده شده است. فرض کنید که یک CPU فرضی دارای چهارثبات با نام های D,C,B,A باشد. این پردازشگر دارای گذرگاه داده 8 بیتی و گذرگاه آدرس 16 بیتی است. بنابراین CPU می تواند به حافظه هایی از 0000 تا FFFFH دسترسی داشته باشد (جمعاً H 10000 مکان) . عملی که CPU می خواهد انجام دهد عبارتست از قراردادن مقدار 21 در ثبات A و سپس جمع ثبات A با مقادیر H42 و H12 فرض کنید که کد انتقال مقدار به ثبات A برابر (BOH) 10111000 و کد جمع یک مقدار به ثبات A نیز (04H ) 0100 0000 باشد. مراحل لازم و کد اجرای آنها برابر زیر است:
اگر برنامه اجرایی فوق در مکان هایی از حافظه قرار گیرد که از H 1400 شروع می شود. محتوای هر مکان حافظه بقرارزیراست:
عملیاتی که CPU برای اجرای برنامه فوق طی می کند بقرار زیر است:
1- شمارنده برنامه CPU می تواند مقداری بین 0000 و FFFFH داشته باشد. باید 1400 را در شمارنده برنامه نشاند تا آدرس اولین دستورالعمل برای اجرا مشخص گردد. پس از بارکردن شمارنده برنامه با آدرس اولین دستورالعمل، CPU آماده اجرا است.
2- CPU ، H 1400 را روی گذرگاه آدرس قرار داده و آن را به خارج ارسال می دارد. مدار حافظه مکان را می یابد و در این هنگام CPU نیز سیگنال READ را فعال می نماید و به این ترتیب بایت مکان H1400 را از حافظه درخواست می کند. این موجب می شود تا محتوای حافظه در مکان H 1400 ، که B0 است، روی گذرگاه قرار گیرد و به CPU انتقال یابد.