James Coleman
الفرق بين hmb و bcaa ثابت ثابت9/10/2018
Host Memory Buffer (HMB) هو واجهة ذاكرة مشتركة منخفضة المستوى يمكنها تمكين التطبيقات عالية الأداء مثل حلقات التحكم في الحمولة الصغرى ومخازن الوصول العشوائي الكبيرة. الإصدار 0 ، نقوم بنشر هذه الميزة مع دعم مبدئي على cRIO-9068 ، sbRIO-9607 ، sbRIO-9627 ، sbRIO-9637 ، sbRIO-9651 (SOM). نحن نخطط لدعم المزيد من الأهداف في الإصدارات المستقبلية. الخلفية لفهم كيفية ملائمة هذه الميزة في بنية RIO ، من المهم فهم البنية الأساسية: يحتوي هدف CompactRio الذي تم إصداره مؤخرًا على مضيف يعمل بنظام Linux RT متصل بـ FPGA عبر ناقل النظام. إن FPGA هي التي تتواصل مع I / O ، إما من خلال وحدات C Series أو FAM أو على متن IO. لنقل البيانات بين FPGA والمضيف ، يوفر برنامج تشغيل RIO قناتين منخفضتي المستوى تستند إلى جميع آليات نقل البيانات الأخرى من: Controls / Indicators و DMA FIFOs. يتم تشغيل معاملات التحكم والمؤشرات من قبل المضيف وهي عبارة عن عمليات تحويل من نقطة واحدة ، بينما تستند DMA FIFOs إلى البث. هناك جزء آخر مهم من الخلفية هو بنية ذاكرة RIO: يمكن لتطبيق FPGA إنشاء كتل ذاكرة تم تنفيذها باستخدام LUTs أو BRAM أو DRAM (إذا كان الهدف يدعمها). ومع ذلك ، يتم استخدام أكبر كتلة من الذاكرة على وحدة تحكم من قبل المضيف. Host Buffer Interface (ذاكرة التخزين المؤقت للمضيف) يوفر Host Memory Storage (ذاكرة التخزين المؤقت) الوصول العشوائي إلى كتلة من الذاكرة المضيفة ، والتي تتيح الوصول إلى جميع العناصر في المخزن المؤقت في أي وقت. على الجانب FPGA ، تقوم آلية النقل بتحسين زمن الوصول بدلاً من سرعة النقل: حيث تقوم بنقل البيانات عبر ناقل النظام بأسرع وقت ممكن بدلاً من محاولة تحسين عرض نطاق الناقل.
الفرق بين hmb و bcaa ثابت ثابت كلماتعلى الجانب المضيف ، توفر الواجهة وصولاً منخفضًا للذاكرة إلى الذاكرة ، مما يتيح الوصول عالي الأداء إلى الذاكرة الفعلية. من منظور البرمجة FPGA ، يستخدم HMB نفس API كـ DRAMs على متن الطائرة. DRAM هو خيار تنفيذ لذاكرة FPGA في مشروع LabVIEW. أحد الخيارات البنكية DRAM في الأهداف التي تدعم HMB هو "Host Memory Buffer": للوصول إلى هذا الحظر ، استخدم ثلاثة أساليب ذاكرة DRAM موجودة: الكتابة ، طلب البيانات ، واسترداد البيانات. يتم استخدام أساليب DRAM في الحلقات الموقوتة ذات دورة واحدة فقط ، بحيث يتم تنفيذ واجهة تبادل الإشارات الشائعة مع واجهات برمجة التطبيقات الأخرى لـ LabVIEW FPGA. يمكن تكوين المخازن المؤقتة للذاكرة المضيفة حتى حجم إجمالي يصل إلى 4 ميغابايت ، ويتم إكراه كل كتلة ذاكرة إلى أقرب ميغابايت. للوصول إلى HMB في LabVIEW Real-Time ، فإننا نستخدم آلية منخفضة الارتفاع تسمى مرجع قيمة البيانات (DVR). هناك فئة من مسجلات الفيديو الرقمية "الخارجية". نظرًا لأن ذاكرة ذاكرة المخزن المؤقت للمضيف isn & apos؛ t التي تديرها LabVIEW ، فهي مرجع لقيمة البيانات الخارجية (EDVR). يمكنك الوصول إلى قيم البيانات الأساسية من خلال بنية عنصر في المكان. أثناء التنفيذ داخل هذا الهيكل ، يعمل التطبيق الخاص بك مباشرة على الذاكرة. هناك جديد متعدد الأشكال السادس على لوحة الواجهة FPGA تسمى Open Host Memory Buffer. محطات الإدخال الخاصة بها هي جلسة RIO ، وكتلة الذاكرة & apos؛ s name ، ومحطات الخطأ. اسم كتلة الذاكرة & apos؛ s هو الاسم من نافذة خصائص الذاكرة من مشروع LabVIEW. للحصول على أفضل النتائج ، قم بتكوين القائمة المنسدلة متعددة الأشكال لنوع البيانات نفسه الذي توجد به كتلة الذاكرة في مشروع LabVIEW.الفرق بين hmb و bcaa ثابت ثابت طلاليتم تخصيص الذاكرة التي يستخدمها HMB عند فتح جلسة FPGA Interface. عند هذه النقطة ، سيتم تمكين واجهة FPGA & apos؛ s. يمكن فتح وإغلاق EDVRs متعددة ، ولن يؤثر على واجهة FPGA. عادةً يتم تعطيل واجهة FPGA ويتم إلغاء تخصيص الذاكرة عند إغلاق الجلسة الأخيرة إلى ملف FPGA bitfile. كما هو الحال مع DRAM ، يستخدم Host Memory Buffer طلب FIFO من عمق قابل للتهيئة ، لذلك إذا لم تكن هناك جلسة FPGA Interface مفتوحة ، فسيتم وضع قائمة الانتظار في الطلبات حتى يتم تشبع FIFO. عند هذه النقطة ، ستظل المطاريف الجاهزة للإدخال في بيانات الطلب وكتابة البيانات ثابتة (خطأ) حتى يتم فتح الجلسة. قد تواجه هذا السلوك إذا قمت بتنزيل bitfile وميض ، على سبيل المثال. C API المرفقة بهذا المستند هي hmb_c_api_extension. zip ، الذي يحتوي على الملفات الإضافية اللازمة لاستخدام Host Memory Buffer بالاقتران مع واجهة برمجة تطبيقات واجهة FPGA. يحتوي مجلد ZIP هذا أيضًا على مثال صغير يوضح كيفية الوصول إلى Host Memory Buffer من RT في C. التطبيق: حلقات التحكم عالية السرعة واحدة من الدوافع لهذه الميزة هي حلقات التحكم عالية السرعة. سيحتوي تطبيق التحكم النموذجي على مدخلات في العالم الحقيقي تصل إلى FPGA وبعض الخوارزمية التي تعالج هذه المدخلات لتحديد المخرجات. تكون أعلى حلقات الأداء ضمن FPGA تمامًا ، ولكن بالنسبة للعديد من التطبيقات ، يجب أن تحدث خوارزمية التحكم في معالج RT. يتمثل أحد المقاييس الأساسية لأداء هذه التطبيقات في سرعة ذهاب الرحلة ذهابًا وإيابًا من الإدخال إلى الإخراج.الفرق بين hmb و bcaa ثابت ثابت زواجتتضمن المشكلات الشائعة لهذه الأنواع من التطبيقات ما يلي: معدل تكرار الحلقة isn & apos؛ t سريعًا بما فيه الكفاية معدل تكرار الحالة الأسوأ isn & apos؛ t سريع بما فيه الكفاية (غضب كثير) أساليب FIFO لها الكثير من زمن الاستجابة الكثير من الضوابط / المؤشرات لديها الكثير من الكمون و / أو الاستهلاك الكثير من موارد FPGA يعد تقليل الارتعاش جزءًا شائعًا من التطور في RT. غضب هو الفرق بين معدل حلقة المطلوب (أو متوسط معدل حلقة) وأسوأ معدل حلقة حالة. هناك العديد من مصادر الارتعاش على نظام RT ، وهناك العديد من الطرق لتقليل غضب التطبيق الخاص بك. تتضمن هذه الخطوات: رفع أولوية الحلقات الزمنية الحرجة في حلقات التوقيت والتسلسلات الزمنية المحددة تعيين تقارب الأساسي على الحلقات الزمنية وتسلسلات الوقت المحدد تعيين تجمع وحدة المعالجة المركزية للنظام تجنب عمليات السكون والمقاطعات ومكالمات برنامج التشغيل داخل الأجزاء الحساسة للأداء في التطبيق الخاص بك يوفر HMB واجهة برمجة تطبيقات يمكن الاستفادة منها لحلقات تحكم عالية الأداء. لا يؤدي الوصول إلى Host Memory Buffer إلى استدعاء أي مكالمات لبرنامج التشغيل ، مما يؤدي إلى تجنب الحمل الزائد. ومن عيوب هذا النهج أن تطبيق المستخدم مسؤول عن التعامل مع جميع التوقيتات والتأمين والنسخ والتخزين المؤقت. إذا كان هناك خلل في التطبيق الخاص بك ، يمكنك إدخال أخطاء فساد البيانات الصامتة التي قد يكون من الصعب العثور عليها. إعلام حلقة التحكم هناك نوعان من الإعلامات الضرورية في حلقة تحكم مثل هذا. واحد هو أن FPGA يحتاج إلى إخطار تطبيق RT أن هناك كتلة جديدة من البيانات المدخلة لمعالجة. والآخر هو أن التطبيق RT يحتاج إلى إعلام FPGA أن هناك كتلة جديدة من بيانات الإخراج لإرسال. يمكن تحقيق FPGA إلى إعلام المضيف من خلال: FPGA IRQ هذا أمر رائع لتقليل استخدام وحدة المعالجة المركزية يستغرق تبديل السياق وقت Polling an FPGA Indicator هذا سيستهلك الكثير من وحدة المعالجة المركزية وقت الاستجابة أفضل استقصاء قيمة HMB سيستهلك الكثير من وحدة المعالجة المركزية وقت الاستجابة هو الأفضل إذا كان هدفك هو تقليل وقت الاستجابة إلى أدنى حد ، فإن الحصول على ذاكرة استطلاع RT سيكون أفضل خيار. يمكن تحقيق إخطار المضيف إلى FPGA من خلال: الكتابة إلى FPGA Controls يمكن لاستدعاءات برنامج التشغيل المقترنة إدخال الكمون FPGA الاستطلاع على قيمة HMB هذا أمر حاسم للغاية ولكنه يستهلك الانتظار DMA لعرض النطاق الترددي FPGA مع قراءة HMB تنتظر FPGA لعدد علامات التجزئة الثابتة بينما يكمل RT الخوارزمية يقرأ FPGA HMB للتحقق من أن المضيف قد أتم الخوارزمية بحلول الموعد النهائي. استخدم FPGA للاستقصاء إذا كنت ترغب في التنفيذ بأسرع ما يمكن ؛ استخدم FPGA timed wait إذا كان التطبيق الخاص بك يحتاج إلى فترة تحكم أكثر ثباتًا. التطبيق: الوصول العشوائي الذاكرة المشتركة منطقة أخرى يمكنها الاستفادة من استخدام HMB هي تطبيقات ذاكرة الوصول العشوائي FPGA. هناك مشكلة يواجهها بعض عملاء RIO وهي أنها تحتاج إلى مساحة ذاكرة FPGA لتخزين البيانات للمعالجة.الفرق بين hmb و bcaa ثابت ثابت ظاهرةفي بعض الأحيان لا يكون لديهم مساحة كافية من BRAM على هدفهم أو لا يمكنهم الوصول إلى DRAM. يتمثل أحد الخيارات في تخزين بياناتهم على المضيف باستخدام DMA FIFO ، ولكن لا يمكن للعميل تحمل استخدام CPU الإضافي. منطقة واحدة أن تحدث هذه الأنواع من المشاكل في تطبيقات الرؤية. يمكن أن يكون المخزن المؤقت للإطار الذي تحتاج إليه عملية FPGA كبيرًا إلى حد كبير وأن نقله ذهابًا وإيابًا بين تطبيق RT و FPGA يمكن أن يكون مكلفًا من الناحية الحسابية. يعالج HMB هذه المشكلة عن طريق السماح للتطبيق FPGA بالوصول إلى ذاكرة المضيف لتخزين البيانات. بشكل ملائم ، فإنه يستخدم نفس الواجهة تمامًا مثل DRAM على متن الطائرة ، والتي تبسط تطبيقات النقل. تتطلب تفاعلات FPGA مع HMB صفر دورات CPU ، لذلك لا تزيد من تحميل وحدة المعالجة المركزية. يتراوح نطاق منتجات CompactRIO من سلسلة R عالية الأداء و CompactRIO وصولًا إلى RIOs و SOMs ذات اللوحة الواحدة القابلة للتشكيل جدًا. غالبًا ما يتم تطوير التطبيق في البداية باستخدام أجهزة من الجزء عالي الأداء من هذا الطيف وسيتم ترحيله إلى جانب القيمة وقابلية التهيئة للطيف لنشره. يصعب نقل التطبيقات التي تستفيد من DRAM إلى جانب القيمة وقابلية التهيئة للطيف نظرًا لأن المنتجات عالية الأداء لديها فقط DRAM. من خلال استخدام نفس واجهة الذاكرة على متن DRAM ، فإن عملية نقل التطبيقات من الجانب الأيسر لهذا المنحنى إلى الجانب الأيمن من هذه العملية هي عملية أكثر سلاسة. يمكن المقارنة مع عناصر التحكم ومؤشرات التحكم في مؤشرات / مؤشرات آليات نقل البيانات الأخرى ملء حالة استخدام مماثلة إلى HMB. الاختلاف الرئيسي في تنفيذها هو حيث يتم تخزين الذاكرة. يتم تخزين عناصر التحكم والمؤشرات في سجلات FPGA ، والتي تستهلك مساحة FPGA ولكنها تسمح بالوصول السريع إلى FPGA إليها. يتم تخزين Host Memory Buffer على الجانب الآخر من ناقل النظام الذي لا يستهلك موارد FPGA ، ولكنه سيستغرق وقتًا إضافيًا للوصول إليه. DMA FIFOs يمكن لمخزن الذاكرة المؤقتة أيضًا ملء حالة استخدام مشابهة لـ DMA FIFOs.الفرق بين hmb و bcaa ثابت ثابت ثانويهناك العديد من الاختلافات الهامة في التنفيذ. على سبيل المثال ، يسمح DMA FIFO (FPGA to Host) للمستخدم بقائمة البيانات في مخزن مؤقت يتم نقله إلى ذاكرة المضيف في وقت ما في المستقبل (أو عندما تستدعي FPGA طريقة flush). يتم إخطار المضيف من قبل بعض الآليات (من المحتمل أن تقوم على أساس المقاطعة أو الاقتراع) ، ويقوم المضيف بنسخ البيانات التسلسلية من المخزن المؤقت FIFO إلى التطبيق الخاص بهم. في المقابل ، في تطبيق HMB ، يتم تخزين طلبات القراءة والكتابة في طلب FIFO حيث سيتم نقل كل عنصر على الفور إلى الذاكرة المضيفة. لا توجد محاولة لتوحيد الطلبات ؛ فإنه سيتم إرسال كل عنصر كقرص مفرد أو الكتابة إلى ذاكرة المضيف. على جانب المضيف ، قد يقوم تطبيق RT بالوصول إلى أي عنصر يختارونه من خلال واجهة EDVR. نتيجة لهذه الاختلافات في التنفيذ ، تميل ميزة FIFOs إلى أداء أفضل من HMB فيما يتعلق بالسرعة لأن النظام واستخدام الحافلات المحلية أكثر كفاءة. من ناحية أخرى ، أداء HMB أفضل من FIFOs فيما يتعلق بوقت الاستجابة لأنه يمكن نقل البيانات بشكل أسرع. أداء حلقة التحكم هناك العديد من العوامل التي يمكن أن تؤثر على أداء حلقة التحكم الكلي لمثيلات محددة. عندما تنظر إلى آلية نقل البيانات بشكل منعزل ، يتم تحديد أفضل أداء بشكل كبير حسب حجم الحمولة. بالنسبة إلى أحجام الحمولة الصغرى ، سيكون زمن الانتقال والانتفاض في آلية النقل العامل المسيطر على معدل التكرار ، لذا ستتحقق آليات التحويل الأمثل لوقت الاستجابة من أداء آليات التحويل الأمثل في المخرجات. مع زيادة حجم الحمولة إلى منطقة 100-200 عنصر ، سوف تتفوق DMA FIFO على التنفيذ باستخدام HMB. أفضل الممارسات Pipelining طلبات الذاكرة على FPGA FPGA قادرة على إصدار طلبات إلى الذاكرة بسرعة كبيرة ، ولكن يمكن أن يستغرق بعض الوقت لهذه الطلبات لإكمال. للحصول على أقصى قدر من الإنتاجية ، استمر في إصدار طلبات الوصول إلى الذاكرة أثناء طلبك الحالي أثناء الطيران ، بدلاً من الانتظار لإصدار طلب آخر إلى أن يكتمل الطلب / استرداد الزوج الحالي. نسخ البيانات عندما تقوم بتحسين أداء برنامج LabVIEW & apos؛ s ، فمن المهم تجنب نسخ الذاكرة لتجنب الحمل الزائد لنسخ البيانات دون داع. مع EDVRs ، فإنه ليس فقط غير فعال ، ولكن قد يعرض عن غير قصد موقفًا حيث لم تعد تعمل مع البيانات الفعلية: سوف تعمل على نسخة من البيانات.الفرق بين hmb و bcaa ثابت ثابت طفللتفادي النسخ ، تجنب تجزئة سلك البيانات واستخدم سجلات التحول بدلاً من الأنفاق الحلقيّة: حواجز الذاكرة أحد الأشياء التي عادةً ما يقوم بها السائق من أجلك هو خصوصية خصائص الجهاز على النظام الخاص بك. لا يوجد في HMB مكالمات لبرنامج التشغيل داخل بنية عنصر المكان ، ونتيجة لذلك ، قد تتعرض لبعض السلوكيات المربكة.. أحد السلوكيات المربكة التي قد تواجهها هو أن المعالج في Zynq يحتوي على نموذج تناسق للذاكرة يسمح للمعالج بتطبيق عبارات الحالة بشكل تصويري وإعادة إدخال الذاكرة. في العديد من الحالات ، لن يؤثر هذا على التطبيق الخاص بك ، ولكن في بعض الأحيان يكون لخوارزمية متطلبات معينة للطلب. في المثال أعلاه ، يشير البرنامج بوضوح إلى أنه يريد قراءة العنوان 0 قبل أن يقرأ العنوان 1. ومع ذلك ، يُسمح للمعالج قانونًا بقراءتها بالترتيب العكسي. قد يؤدي ذلك إلى حدوث خطأ كبير في البيانات المتقطعة. حاجز الذاكرة هو تعليمة للمعالج الذي يجب أن يتم تنفيذ كل ذاكرة الوصول إليه قبل حاجز الذاكرة قبل أن يصل للذاكرة بعد ذلك. يمكن استخدامها لإملاء متطلبات صارمة على طلبات الوصول إلى الذاكرة الخاصة بك. vi عندما يكون لديك متطلبات طلب صارمة على ذاكرة HMB الخاصة بك: Bus Usage إن واجهة DMA هي مورد مشترك بين HMB و FIFOs و Scan Engine. لتقليل تأثير الأداء على العمليات الأخرى المستندة إلى DMA في نظامك ، تجنب الاقتراع غير الضروري عبر ناقل النظام. وهذا يعني أنه إذا قام أحد أجزاء التطبيق الخاص بك باستطلاع شيء ما ، فيجب أن يكون هذا الشيء على نفس جانب ناقل النظام من أجل تقليل الاستفادة من الحافلات على سبيل المثال ، فمن الأفضل لـ FPGA أن تقوم باستطلاعات عناصر التحكم والمؤشرات نظرًا لأنه يتم تنفيذها باستخدام سجلات. عرض البيانات تحدد جميع واجهات DRAM الموجودة على اللوحة "الحد الأقصى لعرض البيانات". يحدد هذا خطوة العنصر في الذاكرة ، والتي تحد من أنواع البيانات الصالحة للاستخدام كنوع بيانات العنصر. بغض النظر عن عرض نوع البيانات الذي تختاره لـ DRAM أو Host Memory Buffer ، فلن يؤدي ذلك إلى تغيير خطوة العنصر. الحد الأقصى لعرض بيانات ذاكرة التخزين المؤقت للمضيف هو 64 بت ، مما يعني أن الاستخدام الأكثر فاعلية للذاكرة سيكون دائمًا استخدام أنواع بيانات 64 بت لـ HMB.الفرق بين hmb و bcaa ثابت ثابت زواجخارج النطاق الوصول إلى القراءة أو الكتابة إلى عناوين خارج حجم كتلة الذاكرة الخاصة بك قد يكون سلوكًا مربكًا للغاية. ضع في اعتبارك دائمًا عدد العناصر المخصصة لكتلة الذاكرة الخاصة بك. من خلال تمكين طرفيات الخطأ على أساليب الذاكرة الخاصة بك ، يمكنك اكتشاف خارج حدود الوصول إلى الذاكرة. ردود الفعل تقدير NI R & D ديه العديد من المطالب المتنافسة. تمت إضافة مضيف الذاكرة المؤقتة كمضيف CompactRIO 17. 0 ميزة بسبب طلبات العملاء المجمعة وردود الفعل من عملاء محددين. نأمل أن تستمر في مساعدتنا في تحسين منتجاتنا من خلال تزويدنا بتعليقات قيمة حول كيفية تلبية احتياجاتك بشكل أفضل أثناء محاولتك لحل تحدياتك الهندسية. هناك دائمًا طرق لتحسين الميزة وستساعدنا تعليقاتك في تحديد أولويات هذه التحسينات. لتقديم ملاحظات ، يرجى الاتصال بالدعم @ ni.
0 Comments
Leave a Reply. |