مسجل (حوسبة)
المحتويات

قبل الخوض في التفاصيل، المسجل هو مجموعة من خلايا الذاكرة التي تختزن مجموعة من البتات وتُخرج البيانات المخزنة باستمرار. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
وعلى صعيد آخر، تُعد المسجلات بمثابة اللبنة الأساسية في الأنظمة الرقمية، كما أنها تُستعمل لأغراض متنوعة في نطاق واسع من التطبيقات، مثل وحدات المعالجة المركزية، والعدادات الرقمية وآلات الحالة الأخرى، واتصالات البيانات التسلسلية والمتوازية، وفي واجهات الأجهزة لوظائف مثل التحكم والتكوين، والإبلاغ عن الحالة، والتخزين المؤقت للبيانات.
وفي السياق ذاته، يتكون المسجل عادةً من مجموعة متزامنة من القلابات، حيث يخزن كل قلاب بتًا واحدة من المجموعة ويُخرجها. ويكون عدد البتات التي يمكن للمسجل تخزينها، وهو ما يُعرف باسم حجم الكلمة، مساويًا لعدد القلابات التي يحتويها المسجل. يُعد المسجل شكلًا من أشكال الذاكرة المتطايرة، أي أن الدائرة الإلكترونية تفقد بياناتها المخزنة عند انقطاع التيار الكهربائي.
begin
process(CLK, RESET)
الإشارات
وفي هذا السياق، يحتوي المسجل على مجموعة متنوعة من شبكات الإدخال والإخراج، وهي الموصلات الكهربائية المستعملة لنقل الإشارات الرقمية بين المسجل والدوائر الخارجية. كما يحتوي المسجل كذلك على مداخل تستقبل البيانات المراد تخزينها، ومخارج تُصدر البيانات المخزنة. تشترك قلابات المسجل في مدخل ساعة مشترك، والذي يقوم عند حواف الإشارة المناسبة بأخذ عينات من بيانات الإدخال ثُم يقوم بتخزينها. عادةً ما تشترك القلابات كذلك في مدخل إعادة ضبط مشترك، يُستعمل لتهيئة البيانات المخزنة.
LD : in std_logic; -- load enable
- D : in std_logic_vector(31 downto 0); -- data inputs
- Q : out std_logic_vector(31 downto 0) -- stored data
- );
- end reg32;
- architecture behavioral of reg32 is
begin
- if RESET = '1' then. -- if RESET asserted
- Q <= (others => '0'); -- zero stored data
- elsif rising_edge(CLK) then -- else if CLK active edge
- if LD = '1' then -- and loading is allowed
- Q <= D; -- store input data
- end if;
- end if; -- else retain stored data
الإشارات غير المستخدمة
وفي هذا الصدد، عادةً ما تُوصل المدخلات غير المستعملة بمستويات منطقية ثابتة لمنعها من أن تصبح عائمة، مما قد يتسبب في سلوك غير متوقع أو تلف دائرة المسجل، لذلك يُفضل أن تُترك المخرجات غير المستعملة غير موصولة.
وضوح الإشارة
ومن ناحية أخرى، يُمكن أن تكون جميع مداخل ومخارج البيانات في المسجل إما عامة (متاحة للدوائر الخارجية)، أو قد تكون بعض مداخل أو مخارج البيانات (أو كلاهما) مخصصة للاستخدام الداخلي فقط، ويتوقف ذلك عادةً على تصميم المسجل والغرض منه. ومن الأمثلة على ذلك مسجل الإزاحة التسلسلي، الذي يُوفر مدخل بيانات واحد ومخرج بيانات واحد فقط للدوائر الخارجية.
بنية البيانات
وفي السياق ذاته، يُمكن للبيانات المخزنة في المسجل أن تمثل أي بيانات ثنائية عشوائية تتناسب مع سعة تخزين المسجل. في الحالات التي تمثل فيها البيانات عددًا صحيحًا ثنائيًا، ترتبط بتات البيانات من الأقل أهمية إلى الأكثر أهمية عادةً بمدخلات المسجلات ( من إلى) ومخرجاتها (من إلى) على التوالي، مع العلم أن هذا ليس شرطًا.
التطبيقات
وفي هذا الصدد، تُستعمل الدوائر المنطقية التوافقية في الكثير من التطبيقات للتحكم في وقت وكيفية تخزين البيانات الجديدة في المسجلات. فمثلًا، تُزود المسجلات عادةً بوظيفة تمكين التحميل، والتي تستعمل البوابات المنطقية، بالتزامن مع إشارة التحميل، للسماح بتخزين البيانات الجديدة أو منع تخزينها. في مسجل الإزاحة ذي المدخلات المتوازية، تُستعمل البوابات المنطقية لنقل كل بت مُخزن إلى قلاب مجاور، مما يؤدي إلى إزاحة الكلمة الثنائية المُخزنة بمقدار بت واحد في دورة ساعة واحدة. بينما في العداد الثنائي المتزامن، تتسبب البوابات المنطقية في تقدم القيمة المُخزنة عبر تسلسل العد الثنائي.
كذلك، وفي الأنظمة المنظمة بواسطة ناقل البيانات، تُستعمل مُضاعفات الإرسال أو مخازن الحالة الثلاثية (أو كلاهما) لتوجيه مخرجات المسجلات إلى نواقل البيانات المشتركة. وتشمل الأمثلة الشائعة على ذلك ملفات المسجلات، وواجهات الأجهزة الطرفية، ونواقل عناوين/بيانات مُضاعفة الإرسال. ولتسهيل ذلك، تُستعمل مُفككات العناوين غالبًا لاختيار أحد المسجلات من بين مجموعة من المسجلات لإدخال البيانات منه، أو لإرسال البيانات المُخزنة إليه، عبر ناقل البيانات المشترك. في أجهزة الحواسيب مثلًا غالبًا ما يتم الوصول إلى مسجلات واجهة الأجهزة الطرفية بطريقة مشابهة لذاكرة الوصول العشوائي، وذلك باستخدام عنوان الذاكرة أو المنفذ لتحديد مسجل معين.
إشارات الخرج
كذلك، بيانات الخرج: وهي البيانات المخزنة في الوقت الحالي، والتي تصدر باستمرار كبت واحدة من كل قلاب، وتكون ثابتة إلا عند الانتقال إلى قيم مخزنة جديدة. بالنسبة للمسجل الذي يحتوي على عدد من القلابات، تحمل بيانات الخرج عادةً أسماءً من إلى . توفر بعض المسجلات بيانات خرج حقيقية ومكملة. تحتوي الدائرة المتكاملة 74175 مثلًا على أربعة قلابات يكون كل منها مزودًا بمخرجاته الحقيقية والمكملة الموصولة بأطراف الغلاف.
end process;
كذلك، end behavioral;يُنفذ المسجل في الدوائر المتكاملة المستقلة على هيئة جذاذة من أشباه الموصلات تُربط وتُغلف بحزمة من أشباه الموصلات.
التنفيذ
- port (
- CLK : in std_logic; -- clock
- RESET : in std_logic; -- async reset
في هذا الإطار، تعتمد المسجلات على طرق تنفيذ متنوعة، حيث يُمكن تنفيذها كدوائر متكاملة مستقلة، أو كمسجلات مدمجة ضمن دوائر متكاملة خاصة بالتطبيقات ومعالجات قابلة للبرمجة، أو كأنوية مرخصة في مصفوفات البوابات المنطقية القابلة للبرمجة. وعادةً ما ينشأ المُسجل في الحالة الأخيرة عن طريق توليفه من وصف مكتوب باستخدام لغة توصيف العتاد للدارات المتكاملة ذات السرعات المرتفعة جداً أو لغة فيريلوج أو أي لغة أخرى لتوصيف الأجهزة. ويصف النص البرمجي التالي المكتوب بلغة توصيف العتاد للدارات المتكاملة ذات السرعات المرتفعة جداً مثلًا مسجل 32 بت تم تمكين التحميل له وإعادة ضبط غير متزامنة:entity reg32 is -- 32 bit register with load enable
إشارات المدخلات
كذلك، البيانات المدخلة: وهي البيانات المراد تخزينها عند الحافة النشطة لإشارة الساعة حيث يتم تخزين بت واحدة لكل قلاب. بالنسبة لمسجل يحتوي على عدد من القلابات، تحمل مداخل البيانات عادةً أسماءً من إلى .
علاوةً على ذلك، إشارة الساعة: تقوم بتخزين البيانات المعروضة على مداخل البيانات في قلابات المسجل عند حافة الإشارة الصاعدة أو الهابطة (الحافة النشطة). في المسجلات التي تحتوي على مدخل إعادة ضبط متزامن، حيث يتم تفعيل إعادة الضبط، فإن الحافة النشطة لإشارة الساعة سوف تستدعي إشارة الساعة إعادة ضبط المسجل بدلاً من تخزين بيانات الإدخال.
وفي هذا الصدد، إشارة إعادة الضبط: تقوم هذه الإشارة بتهيئة جميع القلابات وضبطها إلى حالات معروفة، عادةً '0'. اعتمادًا على تصميم المسجل، وقد تكون هذه العملية متزامنة أو غير متزامنة. تُستعمل هذه العملية عادةً لتصفير القلابات قبل بدء التشغيل المُوقّت.
التصنيف
وفي السياق ذاته، يُمكن تصنيف المسجلات في الدوائر الإلكترونية بطرق مختلفة، فمثلًا يُمكن أن تُصنف استنادًا إلى سعة تخزين البتات (مثل مسجل 32 بت)، أو استنادًا إلى قطبية الإشارة، أو تُصنف بحسب مستوى المنطق، أو تُصنف بحسب جهد مصدر الطاقة، أو تُصنف بحسب معلمات التوقيت.
تمكين التحميل
وفي هذا الصدد، يُشترط في الكثير من التطبيقات تخزين بيانات جديدة في المسجل (تحميل المسجل) خلال دورات ساعة محددة فقط، والاحتفاظ بالبيانات الحالية المخزنة في المسجل خلال دورات ساعة أخرى. وقد سهّل ذلك إضافة وظيفة تمكين التحميل إلى المسجل، والتي تتكون من بوابات منطقية مع مدخل تحكم مرتبط بها، والذي يسمح أو يمنع التحميل بناءً على حالته فيما يُعرف عادةً باسم تمكين الساعة أو تمكين التحميل أو ببساطة التحميل. وتتمثل إحدى الطرق البسيطة لتنفيذ ذلك في ربط مدخل ساعة المسجل بإشارة التحكم، غير أن هذا يؤثر على توقيت النظام لأنه يُدخل تأخيرًا في مسار إشارة الساعة. ولتجنب مشكلة انحراف إشارة الساعة، فعادةًا ما تُستعمل إشارة التحكم بدلًا من ذلك لإدارة توجيه الإشارة إلى مداخل بيانات المسجل من خلال عناصر أساسية كما يتضح لنا في الأشكال التالية:
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟