كيف تعمل وحدة المعالجة المركزية (CPU) - الجزء الأول
الهدف الأساسي من إختراع أي شيء هو خدمة البشر و كان الهدف من إختراع الحاسب هو تصميم آلة تستطيع أن تنفذ العمليات الحسابية عوضا عن البشر و بدقة اكبر "الغرض الأصلي كان عسكري من اجل المساعدة في حسابات إطلاق الصواريخ",فكان هدف العلماء في البداية هو إيجاد طريقة لإدخال القيم على الآلة بحيث تفهمها و تقوم بإجراء العملية الحسابية عليها ثم تخرج النتيجة.
نظم العد:كلمة نظام العد تحدد طريقة استخدامنا للرموز للعد فنحن نعبر عن القطعة بالرمز 1 و نعبر عن التفاحتين بالرمز 2 وهكذا.
النظام العشري:في نظام العد الذي نعتمد عليه نحن البشر هناك عشر رموز هي 0-1-2-3-4-5-6-7-8-9 بغض النظر عن اللغة التي نعتمد عليها. ومن خلال هذه الرموز العشر "والتي سمي النظام بسببها نظام عشري" نستطيع أن نشكل أي عدد نريد و ذلك حسب ما توضح هذه الصورة كيف تشكل العدد 23
نلاحظ انها كلما اتجهنا يسارا في العدد كلما ازداد الأس للرقم 10 أو ما يسمى أساس النظام و هو يعبر عن عدد الرموز في هذا النظام، و كلما انتقلنا يمينا نقص حتى عندما نتخطى الفاصلة العشرية نحصل على الأساس 10 مرفوع إلى أس سالب كما توضح هذه الصورة.
النظام الثنائي:و هو نظام يعتمد على رمزين فقط هما 0 و 1 لوصف جميع الأعداد و هو المستخدم في الحاسب. هذا الجدول يشرح طريقة العد من 0 إلى 15 باستخدام هذه الأرقام: ,0 0,1 1,10 2,11 3,100 4,101 5,110 6,111 7,1000 8,1001 9,1010 10,1011 11,1100 12,1101 13,1110 14.1111 15,وهكذا,وللعلم، يتم تطبيق جميع العمليات الحسابية على أي نظام عد كالجمع و الطرح و الضرب و القسمة.
السؤال هنا: لماذا تم استخدام هذا النظام تحديداً ؟ لماذا لم يعمل الحاسب بالنظام العشري أو النظام الستيني مثلا "النظام الستيني هو النظام المستخدم في الساعة" ؟الجواب بكل بساطة هو الحاجة,فقد إحتاج مصمموا الحاسب إلى طريقة لوصف الأعداد فيزيائياً اي اعتماداً على التيار الكهربي بحيث يسهل التحكم بها,سأفسر الأمر بشكل بسيط:
لنفترض أننا نريد أن نصف حالة مصباح الغرفة بالأرقام,المصباح مطفئ فنعطيه الرقم 0,المصباح يعمل فنعطيه الرقم 1,فمثلا إذا سجلنا حالة هذا المصباح خلال فترة معينة على أن تاخذ القراءة كل 5 دقائق "ولنفترض انه الموجود داخل الثلاجة" فستكون النتيجة فرضاً 11000011010110101
الأن إن قمنا بإدخال هذه القيم على حاسب مهمته حساب فترة فتح باب الثلاجة فسيعطينا النتيجة بعد بعض العمليات الحسابية على الرقم الناتج وفق خوارزمية معينة للحساب.
أما عن كيفية تعرف الحاسب على الاحرف والرموز,ففي الحقيقة الحاسب لا يعرف أي شيء سوى الأرقام,و ما حدث هو ترميز هذه الأحرف بأرقام و هذا الترميز موحد و يدعى بجدول الASCII (حاليا يتم الإعتماد على ما يسمى بالUnicode ولكنها متوافقة مع جدول الASCII القديم)
نلاحظ من الجدول أن لكل حرف رقم خاص به و حتى الأرقام لها رقم خاص بها فمثلا الرقم 1 يأخذ القيمة 49 و الحرف A يأخذ القيمة 65 وهكذا,من يتعامل مع لغات البرمجة يعرف أن عليه استخدام تعليمة للتحويل بين المتحولات النصية و الرقمية و العكس وحتى العمليات التي تحدث على الأحرف كالتحويل بين الأحرف الكبيرة و الصغيرة ما هي إلا عملية جمع أو طرح فمثلا للتحويل بين ال"A" أو أي حرف كبير أخر إلىa""الحرف الصغير المقابل للحرف الكبير" نقوم بجمع الرقم 32 "ثابت" إلى 65 "رقم ASCII للحرف الكبير " فنحصل على 97 "رقم الASCII للحرف الصغير" وهكذا و عملية التحويل العكسية تكون عن طريق عملية الطرح,وطبعا من يقوم بتحويل الأرقام إلى رموز لتظهر على الشاشة هي بطاقة الإظهار و ليس المعالج.
البت و البايت و مضاعفاتهما
طبعا كلمة البت و البايت معروفة جدا لكني سأتحدث عن معناهما لشمولية الموضوع ,كل خانة من العدد الثنائي تسمى bit لذلك هو يحتمل على إحدى القيمتين "0 أو 1" وكل 8 بتات تعطينا بايت,لذلك البايت الواحد يستطيع ان يحتوي أي قيمة من 00000000 (0) إلى 11111111 (255) و لأخذ العلم اقل حجم يمكن التخزين فيه هو 1 بايت
الأن إن إحتجنا إلى تخزين رقم أكبر نستعين ببايت أخر و تصل السعة الكلية من 0 إلى 65535 و تسمى عند إذن كلمة Word في حال الحاجة إلى زيادة القيمة التخزينية للرقم نضيف 2 بايت ليصبح الحجم الكلي 4 بايت و يسمى عندئذ ب Dual Word يحتوي على 32 بت و يتسع أرقام من 0 إلى 4294967295 وهكذا في كل مرة نضاعف عدد الخانات المستخدمة و لا يجوز الزيادة بايت بايت بل يجب أن تتضاعف,وحاليا يمكن أن تخزن القيم بمتحولات بطول 128 بت و سوف تزيد إلى 256 بت في الجيل القادم من المعالجات
بقلم: خير الدين كجان
?xml>