في أنظمة الكمبيوتر، تتم مزامنة العمليات الداخلية في وحدة فردية من نظام رقمي باستخدام نبضة الساعة، وهذا يعني أنّ نبضة الساعة تُعطى لجميع السجلات داخل الوحدة، وجميع عمليات نقل البيانات بين السجلات الداخلية تحدث في وقت واحد أثناء حدوث نبض الساعة، الآن، افترض أنّ أي وحدتين من النظام الرقمي تمّ تصميمهما بشكل مستقل، مثل وحدة المعالجة المركزية وواجهة الإدخال / الإخراج.
تعريف نقل البيانات غير المتزامن
إذا كانت السجلات الموجودة في واجهة الإدخال / الإخراج تشترك في ساعة مشتركة مع سجلات وحدة المعالجة المركزية، فيُقال إنّ النقل بين الوحدتين “متزامن” (synchronous)،لكن في معظم الحالات، يكون التوقيت الداخلي في كل وحدة مستقلاً عن بعضه البعض، لذلك تستخدم كل وحدة ساعتها الخاصة لسجلاتها الداخلية، في هذه الحالة، يُقال إنّ الوحدتين غير متزامنتين مع بعضهما البعض، وإذا حدث نقل البيانات بينهما، فإنّ نقل البيانات هذا يسمّى “نقل البيانات غير المتزامن” (Asynchronous Data Transfer).
شرح نقل البيانات غير المتزامن
ولكن، نقل البيانات غير المتزامن بين وحدتين مستقلتين يتطلب إرسال إشارات التحكم بين الوحدات المتصلة بحيث تحدد هذه الإشارات الوقت الذي ترسل فيه البيانات، يمكن أن تحقق هاتان الطريقتان هذه الطريقة غير المتزامنة لنقل البيانات:
التحكم في النبض (Strobe control): يتم توفير نبضة قوية بواسطة وحدة واحدة للإشارة إلى الوحدة الأخرى عندما يجب أن يحدث النقل.
المصافحة (Handshaking): تُستخدم هذه الطريقة بشكل شائع لمرافقة كل عنصر بيانات يتم نقله بإشارة تحكم تشير إلى البيانات الموجودة في الناقل، تستجيب الوحدة التي تستقبل عنصر البيانات بإشارة أخرى للإقرار باستلام البيانات.
لا تقتصر طريقة النبض القوي والمصافحة لنقل البيانات غير المتزامن على نقل الإدخال / الإخراج، يتم استخدامها على نطاق واسع في مناسبات عديدة تتطلب نقل البيانات بين وحدتين مستقلتين، لذلك، نعتبر هنا وحدة الإرسال كوحدة مصدر ووحدة الاستقبال كوجهة.
على سبيل المثال، وحدة المعالجة المركزية هي المصدر أثناء نقل الإخراج أو الكتابة والوحدة الوجهة أثناء نقل الإدخال أو القراءة، لذلك، يعتمد تسلسل التحكم أثناء النقل غير المتزامن على ما إذا كان النقل قد بدأ بواسطة المصدر أو من خلال الوجهة، لذلك، أثناء مناقشة كل طريقة لنقل البيانات بشكل غير متزامن، يمكنك رؤية تسلسل التحكم في كلا المصطلحين عند بدئها حسب المصدر أو حسب الوجهة، بهذه الطريقة، يمكن تقسيم كل طريقة لنقل البيانات إلى أجزاء، بدء المصدر والوجهة.
طرق نقل البيانات غير المتزامن
يتطلب نقل البيانات غير المتزامن بين وحدتين مستقلتين إرسال إشارات التحكم بين الوحدات المتصلة للإشارة إلى وقت إرسال البيانات، وبالتالي، يمكن للطريقتين تحقيق الطريقة غير المتزامنة لنقل البيانات، وهما:
طريقة التحكم في النبضة Strobe Control Method
تستخدم طريقة التحكم في النبضة لنقل البيانات غير المتزامنة خط تحكم واحدًا لتوقيت كل عملية نقل، يُعرف خط التحكم هذا أيضًا باسم (strobe)، ويمكن تحقيقه إمّا عن طريق المصدر أو الوجهة، اعتمادًا على أي بدء النقل:
- “الستروب” الذي بدأه المصدر (Source initiated strobe): في الرسم التخطيطي للكتل، يمكنك أن ترى أنّ النبضة تبدأ حسب المصدر، وفي مخطط التوقيت، تضع الوحدة المصدر البيانات أولاً على ناقل البيانات، بعد مهلة قصيرة للتأكد من أنّ البيانات تتحلل إلى قيمة ثابتة، يقوم المصدر بتنشيط نبضة قوية، تظل المعلومات الموجودة على ناقل البيانات وإشارة التحكم القوية في الحالة النشطة لفترة كافية للسماح لوحدة الوجهة باستقبال البيانات.
- تستخدم الوحدة الوجهة الحافة الهابطة (falling edge) للتحكم القوي لنقل محتويات ناقل البيانات إلى أحد سجلاتها الداخلية، يقوم المصدر بإزالة البيانات من ناقل البيانات بعد أن يقوم بتعطيل نبضه القوي، وبالتالي، لن تتوفر البيانات الصالحة الجديدة إلّا بعد تمكين النبضة مرة أخرى، في هذه الحالة، قد تكون النبضة إشارة تحكم في كتابة الذاكرة من وحدة المعالجة المركزية إلى وحدة الذاكرة، تضع وحدة المعالجة المركزية الكلمة على ناقل البيانات وتُعلم وحدة الذاكرة، وهي الوجهة.
- “الستروب” الذي بدأته الوجهة (Destination initiated strobe): في الرسم التخطيطي للكتل، نرى أنّ النبضة بدأت حسب الوجهة، وفي مخطط التوقيت، تقوم وحدة الوجهة أولاً بتنشيط نبضة “ستروب”، وإبلاغ المصدر بتوفير البيانات، تستجيب وحدة المصدر عن طريق وضع المعلومات الثنائية المطلوبة على ناقل البيانات، يجب أن تكون البيانات صالحة وأن تظل على الناقل لفترة كافية حتى تقبلها الوحدة الوجهة.
- يمكن استخدام الحافة الهابطة (falling edge) للنبضة القوية مرة أخرى لتشغيل سجل الوجهة (destination register)، ثمّ تقوم وحدة الوجهة بتعطيل “الستروب”، أخيرًا، يقوم المصدر بإزالة البيانات من ناقل البيانات بعد فترة زمنية محددة، في هذه الحالة، قد يكون “الستروب” عبارة عن وحدة تحكم في قراءة الذاكرة من وحدة المعالجة المركزية إلى وحدة الذاكرة، تبدأ وحدة المعالجة المركزية عملية القراءة بإبلاغ الذاكرة، وهي وحدة مصدر، لوضع الكلمة المحددة في ناقل البيانات.
طريقة المصافحة Handshaking Method
طريقة ستروب (strobe method)، لها عيب يتمثل في أنّ الوحدة المصدر التي تبدأ النقل ليس لديها طريقة لمعرفة ما إذا كانت الوجهة قد استقبلت البيانات التي تمّ وضعها في الناقل أم لا، وبالمثل، فإنّ وحدة الوجهة التي تبدأ النقل ليس لديها طريقة لمعرفة ما إذا كانت الوحدة المصدر قد وضعت البيانات على الناقل أم لا، لذلك يتم حل هذه المشكلة بطريقة المصافحة، تقدم طريقة المصافحة خط إشارة تحكم ثانٍ يعيد تشغيل الوحدة التي تبدأ النقل.
في هذه الطريقة، يكون أحد خطوط التحكم في نفس اتجاه تدفق البيانات في الناقل من المصدر إلى الوجهة، تستخدمه وحدة المصدر لإبلاغ الوحدة الوجهة ما إذا كانت هناك بيانات صحيحة في الناقل، يقع خط التحكم الآخر في الاتجاه الآخر من الوجهة إلى المصدر، وذلك لأنّ وحدة الوجهة تستخدمها لإبلاغ المصدر بما إذا كان يمكنه قبول البيانات أم لا، وفيه أيضًا، يعتمد تسلسل التحكم على الوحدة التي تبدأ النقل، لذلك يعني أنّ تسلسل التحكم يعتمد على ما إذا كان النقل قد بدأ حسب المصدر والوجهة.
- المصافحة التي بدأها المصدر (Source initiated handshaking): في الرسم التخطيطي للكتل، يمكنك أن ترى أنّ سطري المصافحة هما “بيانات صحيحة” (data valid)، يتم إنشاؤها بواسطة وحدة المصدر، و “البيانات المقبولة” (data accepted)، التي تمّ إنشاؤها بواسطة وحدة الوجهة، في مخطط التوقيت الذي يوضح العلاقة الزمنية لتبادل الإشارات بين الوحدتين، يبدأ المصدر النقل عن طريق وضع البيانات على الناقل وتمكين إشارة البيانات الصحيحة، ثمّ تقوم وحدة الوجهة بتنشيط إشارة البيانات المقبولة بعد أن تقبل البيانات من الناقل.
- تقوم وحدة المصدر بعد ذلك بتعطيل إشارة البيانات الصالحة “الصحيحة” الخاصة بها، ممّا يؤدي إلى إبطال البيانات الموجودة على الناقل، بعد ذلك، تقوم وحدة الوجهة بتعطيل إشارة البيانات المقبولة، ويدخل النظام في حالته الأولية، لا ترسل وحدة المصدر عنصر البيانات التالي إلا بعد أن تظهر الوحدة الوجهة استعدادها لقبول البيانات الجديدة عن طريق تعطيل إشارة البيانات المقبولة.
- المصافحة التي بدأت في الوجهة (Destination initiated handshaking): في الرسم التخطيطي للكتل، نرى أنّ سطري المصافحة “صالحان للبيانات” (data valid)، تمّ إنشاؤهما بواسطة الوحدة المصدر، و “جاهزان لاستقبال البيانات” (ready for data) التي تمّ إنشاؤها بواسطة وحدة الوجهة، لاحظ أنّه تمّ تغيير اسم بيانات الإشارة المقبولة التي تمّ إنشاؤها بواسطة وحدة الوجهة لتصبح جاهزة للبيانات لتعكس معناها الجديد.
يتم بدء نقل الوجهة، لذلك لا تضع الوحدة المصدر البيانات على ناقل البيانات حتى تستقبل إشارة بيانات جاهزة من وحدة الوجهة، بعد ذلك، تكون عملية المصافحة هي نفسها التي بدأها المصدر.