السجلات "Registers" :- هي مصطلح يطلق على مكان تخزين البيانات التي سوف تجَرى عليها العمليات "منطقيه او حسابيه" داخل الحاسب الآلي, تنقسم السجلات الى انواع عديده لكل منها حجم ووظيفه ومكان وغرض معين تؤديه وسوف نتعرض لها بالحديث بإذن الله تعالى.
الجدير بالذكر هنا ان الحاسب الآلي يحتوي على عدد ضخم من السجلات وفي لحظه واحده معينه يتم عليهم او على احدهم عمليات منطقيه اوحسابيه ونقل احد المحتويات او كلها من مكان الى آخر وهكذا.. لكن الا ترى ان ذلك يشكل زحام كبير وعمليه من الحيره والتداخل ؟
في الواقع الاجابه نعم هي كذلك... ولكن ما الحل ؟
يكمن الحل في كل بساطه في إيجاد طريق مشترك "Bus " لنقل من والى السجلات وبالتالي نوفر الوقت وننظم العمل ونمنع التداخل وسوف اقوم بشرح بسيط لفكره وتنفيذ الطريق او الباص المشترك.
الباص المشترك"Common Bus" :- هو طريق مشترك تسري منه واليه البيانات الخارجه والداخله الى السجلات وهو مكون من عدد من الخطوط المشتركه حيث لكل بت من السجل خط, هناك اشاره تحكم تنظم وتحدد اي سجل سوف يتم اختياره لكي يتم النقل منه او اليه.
لكن السؤال المتبادر الى الذهن الان هو كيف ننشيء الباص المشترك؟
في الواقع هناك طريقتان لذلك:-
الطريقة الاولى باستخدام متعددات الارسال "Multiplexers" كالاتي :-
كما موضح في الصورة فكل سجل يحوي 4 بت مرقمه من صفر الى 3, والباص مكون من 4 متعددات ارسال لكل منها 4 دخل و خرج واحد يشكل خط من خطوط الباص الاربعه, وايضا هناك دخلين يخصان الاختيار وهما S0 and S1 وهما لاختيار الاربع بتات لسجل واحد ونقلهم الى الباص المتشترك فمثلا عندما يكون S0 and S1 بقيمه صفر فإن الدخل رقم صفر في كل متعددات الارسال يتم اختياره ويخرج من الخرج وبالتالي تشكيل الباص, في هذه الحاله تم نقل محتويات السجل Aالى الباص , وهكذا حين يصبح S0 S1 =01 فسوف يتم نقل محتوى السجل B وهكذا....
الطريقة الثانيه:- عن طريق استخدام Three state Buffer :-
في البدايه اعرفكم على ال Three state buffer وهي بوابه الكترونيه لها دخلين وخرج واحد احد الدخلين هو اشاره تحكم والاخر دخل عادي ففي حال كان موجه التحكم صفر فبغض النظر عن ماهيه الدخل فالخرج صفر, وفي حال كان موجه التحكم واحد فان الخرج هو نفسه الدخل,والان مع الصوره لتوضيح كيفيه انشاء الباص المشترك.
كما نلاحظ الصوره صممت فيها باص مشترك للبت رقم 0 وفي حال نريد نصمم الباقي نتبع نفس الطريقه, جدير بالذكر ان الديكودر هنا يحوي في الدخل على ثلاثه امور وهي S0 and S1 and Enable وهي لاختيار اي خرج من الديكودر سوف يخرج وبالتالي اي موجه تحكم نشطه سوف تفعل احد البفر.
الان سوف نتعرض الى كيفيه اجراء عمليات الحساب:-
كما في الصوره نرى دائره حسابيه ذات الاربعه بت وهي تقوم بعمليات حسابيه عديده سوف نشرحها بالتفصيل.
والان شرح الدائره :-
الحاله الاولى :- عندما يكون S0 S1 =00
أ- عندما يكون ال C in =0 ففي هذه الحاله الخرج D= A+B
ب- عندما يكون ال C in =1 يكون الناتج في الخرج هو D=A+B+1
الحاله الثانيه:- عندما يكون S0 S1= 01
أ- عندما يكون الC in = 0 الناتج سيكون D=A+B'
ب- عندما يكون C in =1 يكون الناتج D=A+B'+1
الحاله الثالثه :- عندما يكون S0 S1 = 10
أ-عندما يكون C in = 0 والناتج يصبح D=A
ب- عندما يكون C in =1 والناتج يكون D=A+1
الحاله الرابعه :- عندما يكون S0 S1 =11
أ-عندما يكون C in = 0 والناتج يصبح D= A-1
ب- عندما يكون C in =1 والناتج يكون D=A
الان يبقى توضيح عمليات المنطق على السجلات:-
وهي تشمل الازاحه والنقل و الاند والناند والنور والاكس كلوسيف اور ...الخ
اوضح لكم بعض من اهم هذه العمليات بالصور
ان شاء الله رح احاول باقرب وقت زياده معلومات عن هذا السياق والموضوع برعايه رابطه اصدقاء عرب هاردوير ويمنع منعا باتا النشر او النسخ لاي مكان اخر.
تم بحمد الله.
اخوكم نادر.
المفضلات