وحدة ara::shwa — Safe Hardware Acceleration
Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
دليل الوحدةمولَّد بالذكاء الاصطناعي
يُتيح الاستخدام الآمن والقياسي لمسرّعات الأجهزة غير المتجانسة للحسابات المتوازية للبيانات.
يُتيح الاستخدام الآمن والقياسي لمسرّعات الأجهزة غير المتجانسة للحسابات المتوازية للبيانات.
توفّر المجموعة التكيفية shwa مكتبة محلية للعملية (process-local) للتحكم الآمن وظيفيًا في مسرّعات الحوسبة غير المتجانسة مثل GPUs وNPUs (AUTOSAR_AP_EXP_SWArchitecture ص. 127). وهي تُتيح الاختيار غير المرتبط بالأجهزة لوحدات التنفيذ، وإدارة مخازن الذاكرة المؤقتة نونية الأبعاد، بالإضافة إلى الإدراج غير المتزامن لمهام الحوسبة المتوازية في قوائم الانتظار عبر طوابير التنفيذ ([AP_SWS_SHWA_00309]، [AP_SWS_SHWA_00912]). في حال حدوث أخطاء في تنفيذ المهام، لا توجد دلالات تراجع (rollback semantics)، ولهذا تُعد بيانات المخزن المؤقت المتأثرة معدلة بشكل غير محدد ([AP_SWS_SHWA_00604]).
توفّر المجموعة الوظيفية Safe Hardware Acceleration (shwa) لمنصة AUTOSAR Adaptive Platform نموذج تنفيذ قياسيًا وآمنًا وظيفيًا لوحدات الحوسبة غير المتجانسة مثل GPUs وNPUs وDSPs وFPGAs (AUTOSAR_AP_EXP_SWArchitecture ص. 132). وبوصفها مكتبة مُنفذة داخل العملية (in-process library)، تتيح shwa لتطبيقات Adaptive Applications والمجموعات الوظيفية الأخرى التحكم المباشر والخالي من زمن الانتقال في موارد الحوسبة عالية الأداء (AUTOSAR_AP_EXP_SWArchitecture ص. 127، SWS_SafeHardwareAcceleration ص. 23).
يجري تجريد منصات الأجهزة والأجهزة المستهدفة عبر Platform وDevice ([AP_SWS_SHWA_01107]، [AP_SWS_SHWA_00308]). وبواسطة فئات الاستراتيجية مثل GpuSelector أو AcceleratorSelector، يمكن للتطبيقات اختيار أهداف الحوسبة المناسبة بمرونة ([AP_SWS_SHWA_00407]، [AP_SWS_SHWA_00413]). وتُخصص مخازن البيانات المؤقتة عبر Buffer في فضاءات فهرسة نونية الأبعاد (Range)، بينما تتم عمليات القراءة والكتابة المهيكلة بطريقة آمنة من حيث النوع عبر Accessor وId ([AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00707]).
مخطط تسلسلي: مسار شامل (End-to-End) لتخصيص المخزن المؤقت، وتقديم النواة (Submit)، والمزامنة غير المتزامنة. المصادر: AP_SWS_SHWA_00209، AP_SWS_SHWA_00909، AP_SWS_SHWA_00912، AP_SWS_SHWA_00604.
تُعرَّف مهام الحوسبة عبر TaskHandler كمهمة فردية أو حلقة متوازية، وتُنقل عبر طوابير الانتظار (Queue) إلى الجهاز ([AP_SWS_SHWA_01203]، [AP_SWS_SHWA_00912]). ويُرجع الاستدعاء كائن Event من أجل المزامنات الحاجبة أو محددة المدة زمنيًا ([AP_SWS_SHWA_00604]، [AP_SWS_SHWA_00606]). وتُستخدم DeviceMonitor لمراقبة وقت التشغيل، والتي تعكس حالة الجهاز الحالية (kReady، kNotAccesible، kFailure، kUnknown) ([AP_SWS_SHWA_01407]، [AP_SWS_SHWA_00103]).
يتم الإبلاغ عن الأخطاء بشكل حتمي عبر ara::core::Result وShwaErrorCode ([AP_SWS_SHWA_01301]). وإذا فشل تنفيذ مهمة ما، فلا تمتلك العمليات دلالات تراجع، بحيث يجب تصنيف المخازن المؤقتة المرتبطة بها على أنها عُدّلت بشكل غير محدد ([AP_SWS_SHWA_00604]، [AP_SWS_SHWA_00914]).
الدور المعماري وحدود النظام لـ Safe Hardware Acceleration
توفّر المجموعة الوظيفية Safe Hardware Acceleration (shwa) ضمن AUTOSAR Adaptive Platform نموذج تنفيذ وتجريد قياسيًا وآمنًا وظيفيًا لوحدات الحوسبة غير المتجانسة مثل GPUs وDSPs وNPUs وFPGAs (AUTOSAR_AP_EXP_SWArchitecture ص. 132). وعلى عكس مجموعات المنصة المعتمدة على برامج خفية (daemons) مثل Platform Health Management، صُممت shwa كمكتبة محلية للعملية غير معتمدة على برنامج خفي (مكتبة داخل العملية) (AUTOSAR_AP_EXP_SWArchitecture ص. 127). ونتيجة لذلك، تعمل بيئة التشغيل مباشرة في فضاء عناوين POSIX لعملية المستخدم المستهلكة، وتفصل مهام الحوسبة دون أزمنة انتقال IPC عن برامج تشغيل المسرّعات الأساسية (AUTOSAR_AP_SWS_SafeHardwareAcceleration ص. 23).
يسترشد تصميم الواجهة المعمارية بالمعايير الحديثة للحوسبة غير المتجانسة مثل SYCL وOpenCL، ولكنه يكيّف هذه النماذج بصرامة مع المتطلبات الحتمية والموجهة نحو السلامة لمنصة AUTOSAR Adaptive Platform (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI ص. 15). وقد صُرِّح بمنشئات جميع فئات الواجهة الأساسية بأنها خاصة (private)؛ ولا يمكن إنشاء الحالات إلا عبر دوال مصنع (factory methods) إحصائية مسمّاة من النوع Create() (EXP_SafeHardwareAccelerationAPI ص. 15). وتشير جميع العمليات تقريبًا إلى نجاحها أو إلى حالات الخطأ الخاصة بالنظام عبر نوع الإرجاع ara::core::Result ([AP_SWS_SHWA_00308]، EXP_SafeHardwareAccelerationAPI ص. 15). وإلى جانب تطبيقات Adaptive Applications العادية، يمكن أيضًا للمجموعات الوظيفية الأخرى (مثل مجموعات معالجة الصور أو الإدراك) تضمين واجهات C++ الخاصة بـ shwa مباشرة لأحمال عمل HPC عالية التوازي (SWS_SafeHardwareAcceleration ص. 23).
مخطط السياق: تضمين ara::shwa كمكتبة داخل العملية في فضاء عملية POSIX للتحكم في المسرّعات غير المتجانسة. المصادر: AUTOSAR_AP_EXP_SWArchitecture ص. 127، SWS_SafeHardwareAcceleration ص. 22.
طوبولوجيا الأجهزة، واستكشاف المنصة، واختيار الجهاز
يجري تجريد طوبولوجيا مسرّعات الحوسبة المدمجة في النظام الإجمالي عبر الواجهة Platform ([AP_SWS_SHWA_01107]). وعبر العملية الإحصائية Platform::GetPlatforms()، يحدد التطبيق أولاً جميع منصات التنفيذ المسجلة، ثم يستعلم عن وحدات الحوسبة المخصصة لكل منها باستخدام Platform::GetDevices() ([AP_SWS_SHWA_01108]، AUTOSAR_AP_EXP_SWArchitecture ص. 132). ويُمثَّل كل هدف تنفيذ مادي أو منطقي في النظام بواسطة كائن Device ([AP_SWS_SHWA_00302]). وتوفر Device دوال فحص لتصنيف نوع الأجهزة، بما في ذلك IsCpu() ([AP_SWS_SHWA_00310])، وIsGpu() ([AP_SWS_SHWA_00311])، وIsAccelerator() ([AP_SWS_SHWA_00312])، بالإضافة إلى استعلامات تفصيلية عامة عبر قالب الدالة GetInfo() ([AP_SWS_SHWA_00313]).
للاختيار الهادف لوحدات الحوسبة المناسبة، توفر shwa نمط الاختيار متعدد الأشكال DeviceSelector ([AP_SWS_SHWA_00402]، [AP_SWS_SHWA_00403]). ومن خلال التنفيذات القياسية GpuSelector ([AP_SWS_SHWA_00406]، [AP_SWS_SHWA_00407])، وCpuSelector ([AP_SWS_SHWA_00409]، [AP_SWS_SHWA_00410])، وAcceleratorSelector ([AP_SWS_SHWA_00412]، [AP_SWS_SHWA_00413])، يمكن للأنظمة تصفية أهداف الحوسبة وفقًا لأولويات محددة مسبقًا أو تقييمات ملاءمة استكشافية. وتربط دالة المصنع Device::Create(deviceSelector) آلية الاختيار هذه مباشرة بإنشاء حالات الأجهزة ([AP_SWS_SHWA_00309]).
مخطط تسلسلي: تحديد الطوبولوجيا، واختيار هدف الحوسبة، وإنشاء كائن Device منطقي. المصادر: AP_SWS_SHWA_01107، AP_SWS_SHWA_01108، AP_SWS_SHWA_00407، AP_SWS_SHWA_00309.
إدارة الذاكرة والوصول متعدد الأبعاد إلى البيانات باستخدام Buffer وAccessor
بالنسبة لعمليات الحوسبة المتوازية على البنى غير المتجانسة، تفصل shwa تخزين البيانات المادي بصرامة عن الوصول المنطقي (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI ص. 15). وتُغلَّف مساحات الذاكرة عبر القالب Buffer<DataT, Dimensions, AllocatorT> ([AP_SWS_SHWA_00202]). ويُحدد امتداد الذاكرة في الفضاء أحادي أو ثنائي أو ثلاثي الأبعاد من خلال البنية Range<Dimensions> ([AP_SWS_SHWA_01007]، [AP_SWS_SHWA_01008]، [AP_SWS_SHWA_01009])، والتي يمكن الاستعلام عن أبعادها عبر GetDimension0() وGetDimension1() وGetDimension2() ([AP_SWS_SHWA_01010]، [AP_SWS_SHWA_01011]، [AP_SWS_SHWA_01012]). ويمكن إما إنشاء مخزن مؤقت جديد بذاكرة أو بمُخصِّص خاص ([AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00210])، أو تضمين مؤشرات ذاكرة المضيف الحالية (hostData) كبيانات إدخال أو إخراج ([AP_SWS_SHWA_00211]، [AP_SWS_SHWA_00213]، [AP_SWS_SHWA_00214]). وتُرجع Buffer::Create() المخازن المؤقتة المالكة عادةً كـ std::unique_ptr (EXP_SafeHardwareAccelerationAPI ص. 15).
لا يتم الوصول الفعلي بالقراءة والكتابة إلى بيانات المخزن المؤقت مباشرة عبر المؤشرات، بل عبر كائنات Accessor المحددة النوع ([AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00008]). ويُحدد وضع الوصول عبر التعداد AccessMode، الذي يشتمل على الحالات kRead وkWrite وkReadWrite ([AP_SWS_SHWA_00101]). وتتم عنونة نقاط الفهرس المنفصلة في الفضاء نوني الأبعاد بواسطة النوع Id<Dimensions> ([AP_SWS_SHWA_00707]، [AP_SWS_SHWA_00708]، [AP_SWS_SHWA_00709]) مع دوال جلب وضبط الإحداثيات المقابلة ([AP_SWS_SHWA_00710]، [AP_SWS_SHWA_00711]). وتوفر Accessor معامِل الفهرسة operator[] ([AP_SWS_SHWA_00009]، [AP_SWS_SHWA_00010]) بالإضافة إلى الدوال المتزامنة Get() ([AP_SWS_SHWA_00012]) وSet() ([AP_SWS_SHWA_00011]) لمعالجة عناصر المصفوفة الفردية. ومن خلال تمرير حالات PropertyList، يمكن إرفاق خصائص ذاكرة وسمات وصول محددة بشكل تعريفي (declarative) ([AP_SWS_SHWA_00802]، [AP_SWS_SHWA_00015]، [AP_SWS_SHWA_00215]).
تعريف المهام وجدولة الأوامر والتنفيذ عبر Queues
يجري تنسيق تنفيذ الحسابات على أجهزة المسرّعات عبر طوابير أوامر من النوع Queue ([AP_SWS_SHWA_00902]). وتُربط Queue عبر دالة المصنع الخاصة بها Create() بـ Device محدد أو بـ DeviceSelector، وتُهيأ اختياريًا باستخدام ErrorHandler بالإضافة إلى PropertyList ([AP_SWS_SHWA_00908]، [AP_SWS_SHWA_00909]). وتُرجع الدالة GetDevice() جهاز الحوسبة المقترن بطابور الانتظار ([AP_SWS_SHWA_00910]). ويمكن التحقق من سلوك التنفيذ لطابور الانتظار عبر IsInOrder() ([AP_SWS_SHWA_00911]): ففي حالة طابور الانتظار المرتب (In-Order Queue)، تُعالج مهام الحوسبة المدرجة بتسلسل صارم (AUTOSAR_AP_EXP_SWArchitecture ص. 133).
يتم تعريف أحمال العمل المحددة باستخدام TaskHandler ([AP_SWS_SHWA_01202]). ويميز معالج المهام بين المهام الفردية غير القابلة للتجزئة (SingleTask()، [AP_SWS_SHWA_01203]) وشبكات الحوسبة المتوازية للبيانات (ParallelFor()، [AP_SWS_SHWA_01204]). ويمكن تحديد هدف التنفيذ عبر التعداد Target إما كمسرّع (kDevice) أو كمهمة مضيف CPU (kHostTask) ([AP_SWS_SHWA_00102]). ويتم التقديم إلى طابور الانتظار عبر الدالة Queue::Submit() ([AP_SWS_SHWA_00912]). وفي خطوط المعالجة الأكثر تعقيدًا، تدعم Submit() أيضًا تحديد طابور انتظار ثانوي لتمثيل التبعيات بين خطوط أنابيب الأجهزة المختلفة ([AP_SWS_SHWA_00913]، AUTOSAR_AP_SWS_SafeHardwareAcceleration ص. 23).
مخطط تسلسلي: مسار شامل (End-to-End) لتخصيص المخزن المؤقت، وتقديم النواة (Submit)، والمزامنة غير المتزامنة. المصادر: AP_SWS_SHWA_00209، AP_SWS_SHWA_00909، AP_SWS_SHWA_00912، AP_SWS_SHWA_00604.
المزامنة المعتمدة على الأحداث ومراقبة حالة الأجهزة
يُرجع كل تقديم عبر Queue::Submit() كائن Event، والذي يعمل كنقطة ارتكاز للمزامنة غير المتزامنة ([AP_SWS_SHWA_00912]، [AP_SWS_SHWA_00602]). ويمكن للمُستدعي إما انتظار اكتمال حسابات الأجهزة بأسلوب حاجب باستخدام Event::Wait() ([AP_SWS_SHWA_00604])، أو إجراء مزامنة محدودة بوقت عبر WaitFor(ms) ([AP_SWS_SHWA_00606]). ويمكن مراقبة أحداث متعددة بصورة مجمعة عبر Event::Wait(const Vector<Event>&) ([AP_SWS_SHWA_00605]). وبدلاً من ذلك، يوفر طابور الانتظار نفسه دوال مزامنة جماعية: تحجب Queue::Wait() حتى تكتمل معالجة جميع المهام المدرجة سابقًا ([AP_SWS_SHWA_00914])، بينما تحدد Queue::WaitFor(ms) الانتظار بمهلة زمنية محددة مسبقًا ([AP_SWS_SHWA_00917]).
لضمان موثوقية مسرّعات الأجهزة وسلامتها الوظيفية أثناء وقت التشغيل، تحدد shwa مكوّن المراقبة DeviceMonitor ([AP_SWS_SHWA_01402]). ويتم إنشاء الحالات عبر دوال Create() الإحصائية استنادًا إلى Device أو DeviceSelector ([AP_SWS_SHWA_01407]، [AP_SWS_SHWA_01408]). وعبر الدالة DeviceMonitor::Status()، يُستعلم عن حالة الأجهزة الحالية ([AP_SWS_SHWA_01409]). ويشمل التعداد DeviceStatus أربع حالات قياسية: kReady (0، جاهز للتشغيل)، وkNotAccesible (1، يتعذر الوصول إليه)، وkFailure (2، حالة خطأ)، وkUnknown (255، يتعذر تحديد الحالة) ([AP_SWS_SHWA_00103]). وتشكّل آلية المراقبة هذه الأساس لتحليلات السلامة ومراقبة الحالة الصحية (Health-Monitoring) وفقًا للمعيار ISO 26262 (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI ص. 15).
مخطط الحالة: دورة الحياة وانتقالات حالة DeviceStatus وفقًا لـ ara::shwa::DeviceMonitor. المصادر: AP_SWS_SHWA_00103، AP_SWS_SHWA_01409.
السلوك في حالة الخطأ والتشخيص
يعتمد مفهوم معالجة الأخطاء في shwa على نطاق الخطأ ShwaErrorDomain الخاص بـ AUTOSAR ([AP_SWS_SHWA_01307])، والذي يمكن الحصول عليه عبر GetShwaDomain() ([AP_SWS_SHWA_01311]). وتُمثَّل رموز الأخطاء المحددة عبر التعداد القياسي ShwaErrorCode ([AP_SWS_SHWA_01301]). ويشمل ذلك أخطاء وقت التشغيل الأساسية مثل kRuntime، وإلغاءات الحسابات على المسرّع مثل kTaskExecutionFailure، وأخطاء تخصيص الذاكرة مثل kMemoryNotAllocated، وانتهاكات سلامة الذاكرة مثل kIntegrityCorrupted، وتعارضات الموارد المؤقتة مثل kResourceBusy، بالإضافة إلى أوضاع الوصول غير الصالحة مثل kInvalidAccessMode ([AP_SWS_SHWA_01301]). وتُنشأ رموز الأخطاء بطريقة آمنة من حيث النوع باستخدام MakeErrorCode() ([AP_SWS_SHWA_01312])، وتوفر أوصافًا نصية عبر Name() وMessage() ([AP_SWS_SHWA_01308]، [AP_SWS_SHWA_01309]).
تترتب على الأخطاء أثناء التنفيذ غير المتزامن أو أثناء انتظار الأحداث (Event::Wait() أو Queue::Wait()) تأثيرات خطيرة على اتساق البيانات: فإذا حدث kTaskExecutionFailure أو kRuntime أثناء الحساب، فإن العمليات المتأثرة لا تمتلك دلالات تراجع وتُعتبر البيانات في المخازن المؤقتة المرتبطة بها معدلة بشكل غير محدد ([AP_SWS_SHWA_00604]، [AP_SWS_SHWA_00914]). وبالنسبة للإشعارات غير المتزامنة، تُستخدم الفئة ErrorHandler، التي يُطلق رد النداء (callback) الخاص بها بواسطة HandleError() ([AP_SWS_SHWA_00507]، [AP_SWS_SHWA_00508]). وإذا كان التطبيق يتطلب معالجة الاستثناءات، فيمكن تحويل الأخطاء عبر ThrowAsException() إلى ShwaException ([AP_SWS_SHWA_01303]، [AP_SWS_SHWA_01310]).
أدلة تفصيلية ومراجع مواصفات إضافية
إن معمارية ومتطلبات المجموعة shwa مدعومة بالكامل بمتطلبات معيارية ومستندات توضيحية مصاحبة. ويلخص الجدول 1 المفاهيم الأساسية ومراجعها المعتمدة.
| المجال الموضوعي | عناصر المواصفة المهمة | المراجع الموثقة |
|---|---|---|
| المعمارية وتوفير الخدمات | مكتبة داخل العملية، وتصنيف وظيفي ضمن فئة Safety | AUTOSAR_AP_EXP_SWArchitecture S. 127, AUTOSAR_AP_EXP_SWArchitecture S. 132 |
| الطوبولوجيا والاختيار | Platform, Device, DeviceSelector, GpuSelector, CpuSelector | [AP_SWS_SHWA_01107], [AP_SWS_SHWA_00308], [AP_SWS_SHWA_00403] |
| الذاكرة والوصول إلى البيانات | Buffer, Accessor, Range, Id, AccessMode | [AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_01007], [AP_SWS_SHWA_00101] |
| جدولة الأوامر والمزامنة | Queue, TaskHandler, Event | [AP_SWS_SHWA_00908], [AP_SWS_SHWA_01202], [AP_SWS_SHWA_00604] |
| مراقبة الأجهزة والأخطاء | DeviceMonitor, DeviceStatus, ShwaErrorCode, ErrorHandler | [AP_SWS_SHWA_01407], [AP_SWS_SHWA_00103], [AP_SWS_SHWA_01301], [AP_SWS_SHWA_00507] |
تُوضَّح التهيئة النموذجية لخط المعالجة وفصل طوابير انتظار متعددة داخل تطبيق ما بالتفصيل في المواصفة (SWS_SafeHardwareAcceleration ص. 22، AUTOSAR_AP_SWS_SafeHardwareAcceleration ص. 23). ويضمن الفصل الصارم بين موارد الذاكرة وموارد الحوسبة سلوكًا حتميًا في مجالات التطبيقات الميدانية الآمنة في المركبات (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI ص. 15).
أُنشئ هذا الدليل بواسطة مساعد إشراف ذكي اصطناعي استنادًا إلى مواصفة AUTOSAR Adaptive R25-11.
توفير بيئة برمجية آمنة وحتمية لتشغيل المهام الحسابية المتوازية وإدارة الذاكرة على مسرعات العتاد غير المتجانسة.
يوفر العنقود الوظيفي shwa في منصة AUTOSAR التكيفية واجهة C++ أصلية آمنة وموحدة لاستكشاف وبرمجة وحدات التسريع العتادي غير المتجانسة كمعالجات الرسوميات ومسرعات الذكاء الاصطناعي SWArchitecture ص 132. ويتولى العنقود جدولة المهام الحسابية عبر طوابير الأوامر وتنظيم توازي البيانات مع حماية الذاكرة عبر منافذ الوصول المقيدة، فضلاً عن المراقبة المستمرة لجاهزية الأجهزة وإدارة الأخطاء بحتمية زمنية عالية [AP_SWS_SHWA_00912]، [AP_SWS_SHWA_01409]. وتعد معالجة البيانات تالفة وغير صالحة للاستخدام عقب فشل أي مهمة حسابية قاعدة تشغيل ملزمة للحفاظ على السلامة الوظيفية [AP_SWS_SHWA_00604].
يوفر العنقود الوظيفي لتسريع العتاد الآمن (shwa) في منصة AUTOSAR التكيفية (الإصدار R25-11) بيئة تشغيل برمجية متقدمة وموجهة للسلامة تتيح للتطبيقات التكيفية الوصول المباشر والحتمي إلى وحدات المعالجة غير المتجانسة كالـ GPUs وDSPs ومسرعات الذكاء الاصطناعي SWArchitecture ص 127. ويتميز العنقود بكونه مكتبة مدمجة داخل فضاء عملية التطبيق (In-Process Library) تنفذ أنماط البرمجة المتوازية الحديثة مع ضمان خلو مسارات التنفيذ من الاستثناءات عبر تغليف المخرجات بنوع ara::core::Result وحظر النسخ المباشر للكائنات الأساسية SafeHardwareAccelerationAPI ص 15.
تتم إدارة الموارد الحسابية عبر استكشاف المنصات والأجهزة المتاحة بواسطة Platform واختيار المعالج المناسب عبر DeviceSelector، ليتم ربطه بطابور أوامر تنفيذي Queue يدعم التنفيذ المرتب والصارم للمهام [AP_SWS_SHWA_01107]، [AP_SWS_SHWA_00911]. تُرسل العمليات الحسابية المتوازية إلى الطابور عبر دالة Submit() بالاعتماد على كائن TaskHandler لتوزيع التكرارات الحسابية (ParallelFor) على العتاد، مع توليد أحداث Event تتيح المزامنة اللامتزامنة أو المحددة بمهلة زمنية عبر WaitFor() [AP_SWS_SHWA_00912]، [AP_SWS_SHWA_01204]، [AP_SWS_SHWA_00606].
ترتكز بنية إدارة البيانات على تجريد مساحات الفهرسة متعددة الأبعاد بواسطة Range وحجز الذاكرة الخطية عبر Buffer، مع حظر الوصول المباشر وفرض استخدام المنافذ المحمية Accessor بنمط وصول محدد (قراءة/كتابة) لتلافي سباقات الذاكرة [AP_SWS_SHWA_01007]، [AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00007]. ويواكب ذلك مراقبة مستمرة للجاهزية التشغيلية للأجهزة عبر DeviceMonitor ومعالجة متخصصة للأخطاء عبر ErrorHandler ونطاق ShwaErrorDomain، مع إلزامية اعتبار بيانات المخازن المؤقتة تالفة عند إخفاق المهام الحسابية لضمان سلامة منظومة القيادة الذاتية [AP_SWS_SHWA_01409]، [AP_SWS_SHWA_00604].
مخطط تسلسلي: تدفق جدولة وإرسال المهام الحسابية المتوازية وآليات التزامن اللامتزامن عبر الطوابير والأحداث. المصادر: [AP_SWS_SHWA_00908]، [AP_SWS_SHWA_00912]، [AP_SWS_SHWA_01204]، [AP_SWS_SHWA_00604].
الدور وحدود النظام العنقودي لتسريع العتاد الآمن (shwa)
يمثل العنقود الوظيفي لتسريع العتاد الآمن (Safe Hardware Acceleration - shwa) ركيزة معمارية أساسية في فئة السلامة (Safety) ضمن منصة AUTOSAR التكيفية (Adaptive Platform) في الإصدار R25-11، حيث يهدف إلى توفير واجهة برمجية معيارية وموحدة وموجهة للسلامة تتيح للتطبيقات التكيفية وعناقيد المنصة الأخرى استغلال وحدات الحساب غير المتجانسة بكفاءة وحتمية SWArchitecture ص 127. وخلافاً للعناقيد القائمة على عفريت مستقل (daemon-based) مثل عنقود إدارة صحة المنصة (PHM)، يتم نشر shwa بصورة مكتبة مدمجة داخل مساحة عنوان العملية (In-Process Library) في فضاء المستخدم، مما يلغي أعباء تبادل الرسائل بين العمليات (IPC) ويضمن أعلى درجات الأداء وزمن الوصول المنخفض لمهام الحوسبة عالية الأداء SWArchitecture ص 132. يرتكز النموذج البرمجي لـ shwa على مواءمة مفاهيم الحوسبة المتوازية الحديثة (مثل SYCL وOpenCL) مع متطلبات السلامة الصارمة لمعيار ISO 26262، محققاً الفصل التام بين إدارة المنصات والأجهزة، وجدولة طوابير الأوامر، وتجريد مساحات البيانات متناهية الأبعاد، وآليات التزامن اللامتزامن المبنية على الأحداث [AP_SWS_SHWA_01107].
تتحدد حدود النظام بتوفير واجهات C++ أصلية (Native Interfaces) في فضاء الأسماء ara::shwa تستهلكها مباشرة التطبيقات التكيفية (Adaptive Applications) أو عناقيد وظيفية شقيقة مثل معالجة الصور والرؤية الحاسوبية دون الحاجة إلى وسطاء إضافيين SafeHardwareAcceleration ص 22. تستند كافة الأصناف البرمجية في العنقود إلى مبدأ منع الإنشاء المباشر وحظر النسخ السطحي عبر حذف المُنشئات الافتراضية ومشغلات الإسناد، والاعتماد الحصري على دوال التصنيع الثابتة Create() التي تُرجع النتائج مغلفة ضمن نوع الأمان الحسابي ara::core::Result لضمان عدم إطلاق استثناءات غير مسيطر عليها وتحقيق مبدأ الخلو من التداخل (Freedom from Interference) SafeHardwareAccelerationAPI ص 15.
مخطط سياقي: موضع العنقود الوظيفي shwa داخل فضاء عملية التطبيق التكيفي وعلاقته بالعتاد غير المتجانس. المصادر: SWArchitecture ص 127، ص 132، SafeHardwareAcceleration ص 22.
استكشاف المنصات والأجهزة واختيار وحدات المعالجة
تبدأ دورة العمل باستكشاف بيئة العتاد المتاحة عبر الصنف ara::shwa::Platform، حيث تتيح الدالة الثابتة Platform::GetPlatforms() استرجاع قائمة بجميع المنصات التشغيلية المثبتة ومحركات التسريع المدعومة على النظام المضيف [AP_SWS_SHWA_01107]. ومن خلال كائن المنصة، يمكن للتطبيق استدعاء Platform::GetDevices() لجلب متجهات تمثل الأجهزة الحسابية المتاحة المرتبطة بتلك المنصة [AP_SWS_SHWA_01108]. ويُعد الصنف ara::shwa::Device الممثل المنطقي لوحدة معالجة فيزيائية، حيث يوفر دوال فحص متخصصة للاستعلام عن طبيعة الجهاز، مثل IsCpu() للتحقق مما إذا كان المعالج مضيفاً، وIsGpu() لوحدات معالجة الرسوميات، وIsAccelerator() لمسرعات الذكاء الاصطناعي ومركبات FPGA أو DSP [AP_SWS_SHWA_00310]، [AP_SWS_SHWA_00311]، [AP_SWS_SHWA_00312].
لتسهيل عملية انتقاء الأجهزة وفق استراتيجيات مرنة وموجهة، يحدد العنقود واجهة التحديد المجردة ara::shwa::DeviceSelector التي تعتمد نمط الإستراتيجية (Strategy Pattern)، مع توفير محددات قياسية مسبقة الصنع تشمل CpuSelector وGpuSelector وAcceleratorSelector [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00407]، [AP_SWS_SHWA_00413]. تطبق هذه المحددات مُشغّل الاستدعاء operator() لتقييم ملاءمة كل جهاز برمجياً ومنح درجة مطابقة عددية، أو استدعاء الدالة الافتراضية SelectDevice() لاختيار الجهاز الأنسب بصورة قطعية تلبي متطلبات المهمة الحسابية [AP_SWS_SHWA_00404]، [AP_SWS_SHWA_00406]، [AP_SWS_SHWA_00412]. كما يتيح الصنف Device إنشاء مثيله مباشرة عبر تمرير محدد أجهزة إلى دالة التصنيع Device::Create(deviceSelector)، مع إمكانية استخراج الخصائص التفصيلية والقدرات الحسابية بواسطة قالب الدالة GetInfo<InfoType>() [AP_SWS_SHWA_00309]، [AP_SWS_SHWA_00313].
مخطط تسلسلي: تدفق استكشاف المنصات وتقييم الأجهزة الحسابية واختيار المعالج المناسب. المصادر: [AP_SWS_SHWA_01107]، [AP_SWS_SHWA_01108]، [AP_SWS_SHWA_00407]، [AP_SWS_SHWA_00309].
تجريد الذاكرة وإدارة البيانات متعددة الأبعاد
تعتمد معالجة البيانات المتوازية عبر shwa على فصل منطقي دقيق بين حجز الذاكرة الفعلية وتحديد نطاقات الفهرسة الحسابية وتوفير ممرات الوصول الآمن. يُعرف الصنف القالبي ara::shwa::Range<Dimensions> مساحات الفهرسة متعددة الأبعاد (من بعد واحد إلى ثلاثة أبعاد) عبر دوال التصنيع الثابتة Create(dim0) وCreate(dim0, dim1) وCreate(dim0, dim1, dim2)، مما يحدد الحجم الإجمالي لعناصر الذاكرة ونطاق التكرار المتوازي [AP_SWS_SHWA_01007]، [AP_SWS_SHWA_01008]، [AP_SWS_SHWA_01009]. ويقابله الصنف القالبي ara::shwa::Id<Dimensions> الذي يمثل إحداثياً أو نقطة فهرسة متمايزة ضمن ذلك النطاق، ويتم إنشاؤه عبر دوال Create() المقابلة وتعديله وقراءته عبر Set() وGet() [AP_SWS_SHWA_00707]، [AP_SWS_SHWA_00710]، [AP_SWS_SHWA_00711].
يتحكم الصنف القالبي ara::shwa::Buffer<DataT, Dimensions, AllocatorT> في تخصيص وإدارة كتل الذاكرة الخطية وتوزيعها بين المضيف والمسرعات العتادية، حيث يتم إنشاؤه إما بحجز ذاكرة جديدة استناداً إلى Range ومُخصص اختياري AllocatorT، أو بالالتفاف حول بيانات موجودة مسبقاً على المضيف عبر مؤشر hostData مع قائمة خصائص PropertyList [AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00210]، [AP_SWS_SHWA_00211]، [AP_SWS_SHWA_00802]. ونظراً لأن كائنات Buffer تمتلك الذاكرة وتتحكم في تماسكها، فإن الوصول المباشر إلى محتوياتها محظور؛ وبدلاً من ذلك، يوفر العنقود صنف المنفذ ara::shwa::Accessor كوسيط حصري ومقيد بنمط وصول محدد عبر التعداد AccessMode (قراءة فقط kRead، كتابة فقط kWrite، أو قراءة وكتابة kReadWrite) [AP_SWS_SHWA_00101]، [AP_SWS_SHWA_00014]. يتم إنشاء المنفذ عبر Accessor::Create() ليرتبط بالمنظم TaskHandler أو بالمخزن المؤقت مباشرة، مانحاً التطبيق القدرة على قراءة العناصر وتعديلها عبر Get() وSet() ومُشغّل الفهرسة operator[] مع حماية تامة من التعارض أثناء المعالجة المتزامنة [AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00008]، [AP_SWS_SHWA_00009]، [AP_SWS_SHWA_00011]، [AP_SWS_SHWA_00012].
مخطط كينونات: العلاقات التركيبية بين Range وBuffer وAccessor وId لإدارة الذاكرة والوصول إليها. المصادر: [AP_SWS_SHWA_01007]، [AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00101].
إدارة طوابير الأوامر وجدولة المهام الحسابية المتوازية
تمثل طوابير الأوامر ara::shwa::Queue القناة التنفيذية المركزية لتوجيه العمليات الحسابية نحو العتاد المستهدف، حيث يتم إنشاء الطابور وربطه بجهاز فيزيائي محدد عبر Queue::Create() باستخدام إما كائن Device محدد سلفاً أو محدد أجهزة DeviceSelector، مع إرفاق معالج أخطاء ErrorHandler وقائمة خصائص اختيارية [AP_SWS_SHWA_00908]، [AP_SWS_SHWA_00909]. يتيح الطابور الاستعلام عن الجهاز المقترن به عبر GetDevice()، والتحقق مما إذا كان تنفيذ المهام بداخله يتم بالترتيب الصارم (In-Order) عبر الدالة IsInOrder()، وهو ما يضمن الحتمية الزمنية المطلوبة في أنظمة القيادة الذاتية [AP_SWS_SHWA_00910]، [AP_SWS_SHWA_00911]. يمكن للتطبيق إرسال المهام الحسابية إلى الطابور عبر الدالة القالبية Queue::Submit() التي تقبل دالة المهمة وتُرجع حدثاً متزامناً Event يمثل تتبع اكتمال العملية [AP_SWS_SHWA_00912]، كما تدعم الإرسال المترابط عبر تمرير طابور ثانوي secondaryQueue لتنسيق المهام التابعة [AP_SWS_SHWA_00913].
داخل نطاق الإرسال، يُستخدم الصنف ara::shwa::TaskHandler كأداة لتوصيف طبيعة العمل الحسابي الموجه إلى العتاد، حيث يتم إنشاؤه عبر TaskHandler::Create() ويوفر نمطين رئيسيين للتنفيذ: نمط المهمة الفردية SingleTask(cfg) للعمليات التسلسلية غير القابلة للتجزيء، ونمط التكرار المتوازي ParallelFor(bufferSize, cfg) لتوزيع تكرارات الحساب على أنوية المعالجة المتعددة وفق نموذج البيانات المتوازية (SPMD) [AP_SWS_SHWA_01202]، [AP_SWS_SHWA_01203]، [AP_SWS_SHWA_01204]. ويحدد التعداد Target ما إذا كانت المهمة مجدولة للتنفيذ على معالج التسريع العتادي kDevice أم ستُنفذ كمعالجة محلية على المعالج المضيف kHostTask لتأمين مرونة الإخفاق الآمن والتشغيل البديل [AP_SWS_SHWA_00102].
مخطط تسلسلي: دورة إرسال المهام الحسابية المتوازية عبر الطابور والتزامن اللامتزامن باستخدام الأحداث. المصادر: [AP_SWS_SHWA_00908]، [AP_SWS_SHWA_00912]، [AP_SWS_SHWA_01204]، [AP_SWS_SHWA_00604].
آليات التزامن الحتمي والمراقبة المستمرة للأجهزة
يوفر الصنف ara::shwa::Event وسيلة التزامن الأساسية غير المعيقة للتحكم في تدفق الاعتماديات بين المهام المتوازية، حيث يتم إنشاؤه عبر Event::Create() أو استلامه كنتيجة لعملية إرسال Submit() [AP_SWS_SHWA_00602]، [AP_SWS_SHWA_00912]. يتيح الحدث فحص قائمة انتظار المهام المرتبطة به عبر GetWaitList()، وإجراء المزامنة الحاجزية بحظر مسار التنفيذ حتى انتهاء المهمة عبر الدالة Wait()، أو مزامنة قائمة متجهة من الأحداث دفعة واحدة عبر الدالة الثابتة Event::Wait(eventList) [AP_SWS_SHWA_00603]، [AP_SWS_SHWA_00604]، [AP_SWS_SHWA_00605]. ولتلافي حالات الجمود اللانهائي (Deadlocks) وضمان الاستجابة في الأنظمة ذات المهلة الزمنية الصارمة، يوفر كل من Event وQueue دالة الانتظار المحددة بزمن WaitFor(ms) التي تُنهي الحظر عند انقضاء المهلة المحددة بالمللي ثانية وتُرجع نتيجة تشير إلى نجاح العملية أو تعذرها [AP_SWS_SHWA_00606]، [AP_SWS_SHWA_00917]، [AP_SWS_SHWA_00914].
بالتوازي مع التنفيذ الحسابي، يتولى الصنف ara::shwa::DeviceMonitor مراقبة الحالة الصحية والتشغيلية للأجهزة وفقاً لمتطلبات ISO 26262، حيث يتم إنشاؤه عبر دوال التصنيع DeviceMonitor::Create(device) أو DeviceMonitor::Create(deviceSelector) ليرتبط بجهاز معالجة معين [AP_SWS_SHWA_01407]، [AP_SWS_SHWA_01408]. يتيح المراقب فحص الجاهزية اللحظية عبر الدالة Status() التي تُرجع قيماً معيارية من التعداد DeviceStatus تشمل: الجاهزية التامة لاستقبال المهام kReady، عدم إمكانية الوصول للجهاز kNotAccesible، الدخول في حالة عطل حرج kFailure، أو تعذر تحديد الحالة التشغيلية kUnknown [AP_SWS_SHWA_01409]، [AP_SWS_SHWA_00103]. يُمكّن هذا الرصد المستمر التطبيقَ من اتخاذ تدابير استباقية وتفادي توجيه أحمال حسابية نحو وحدات تالفة أو غير مستقرة.
مخطط حالات: دورة حياة الجهاز الحسابي والتحولات بين حالات الجاهزية والعطل وفقاً لـ DeviceStatus. المصادر: [AP_SWS_SHWA_00103]، [AP_SWS_SHWA_01409].
سلوك النظام عند حدوث الأخطاء وآليات التعافي
يعتمد العنقود منظومة متكاملة ومحكمة لإدارة الأخطاء تستند إلى البنية التحتية القياسية للمنصة التكيفية المتمثلة في نطاق الخطأ ara::shwa::ShwaErrorDomain والتعداد المعياري لرموز الأخطاء ara::shwa::ShwaErrorCode المشتق من ara::core::ErrorDomain::CodeType [AP_SWS_SHWA_01301]، [AP_SWS_SHWA_01307]. يوفر النطاق دوال التشخيص القياسية مثل Name() لاسترجاع اسم النطاق وMessage() لوصف الخطأ نصياً، ودالة التحويل الاستثنائي ThrowAsException() التي تطلق الاستثناء ShwaException في البيئات التي تسمح بالمعالجة الاستثنائية، بالإضافة إلى دوال المساعدة GetShwaDomain() وMakeErrorCode() [AP_SWS_SHWA_01308]، [AP_SWS_SHWA_01309]، [AP_SWS_SHWA_01310]، [AP_SWS_SHWA_01311]، [AP_SWS_SHWA_01312]، [AP_SWS_SHWA_01303].
تغطي رموز الأخطاء كافة مراحل دورة الحوسبة المتوازية وإدارة الموارد، وتشمل: الخطأ العام أثناء التشغيل kRuntime، وفشل تنفيذ المهمة الحسابية على الجهاز kTaskExecutionFailure، وتعذر حجز الذاكرة المطلوبة kMemoryNotAllocated، وتلف سلامة وتماسك بيانات المخزن المؤقت kIntegrityCorrupted، وانشغال المورد الحسابي kResourceBusy، واستخدام نمط وصول غير مسموح به إلى الذاكرة kInvalidAccessMode، بالإضافة إلى أخطاء طلب ميزات غير مدعومة kFeatureNotSupported أو تعذر إنشاء المنافذ [AP_SWS_SHWA_01301]، [AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00209]، [AP_SWS_SHWA_00313]. وتؤكد المواصفة على قاعدة أمان جوهرية عند فشل المهام الحسابية، وهي أن البيانات المستخدمة ضمن المهمة الفاشلة يجب اعتبارها متغيرة بطريقة غير مقصودة وتالفة حتماً (تفسير: لا يجوز إعادة استخدام المخزن المؤقت ذاته دون إعادة تهيئة كاملة تجنباً لانتشار البيانات الملوثة) [AP_SWS_SHWA_00604]، [AP_SWS_SHWA_00912].
وللتعامل غير المتزامن مع الأخطاء التي تقع أثناء تنفيذ الأنوية الحسابية على العتاد، يوفر العنقود صنف معالج الأخطاء ara::shwa::ErrorHandler الذي يتم إنشاؤه عبر ErrorHandler::Create(handler) بتسجيل دالة رد نداء تقبل كائن ara::core::ErrorCode، ويتم ربطه بالطابور أثناء الإنشاء أو عند إرسال المهمة [AP_SWS_SHWA_00507]، [AP_SWS_SHWA_00908]، [AP_SWS_SHWA_00912]. عند رصد عطل أثناء المعالجة، يتم استدعاء HandleError(errorCode) فوراً لمعالجة الخلل وتحويل مسار التطبيق نحو استراتيجيات الأمان المتدهور (Degraded Safety States) دون انهيار العملية الحاضنة [AP_SWS_SHWA_00508].
مخطط نشاط: مسار معالجة الخطأ الحسابي وتحديد استراتيجية التعافي والتعامل مع تلف البيانات. المصادر: [AP_SWS_SHWA_00508]، [AP_SWS_SHWA_00604]، [AP_SWS_SHWA_01301].
أدلة تفصيلية تكميلية
تستند أسس العنقود الوظيفي shwa إلى متطلبات معمارية وتفصيلية تحدد مسؤوليات كل عنصر بدقة ضمن وثائق AUTOSAR الرسمية للإصدار R25-11. تركز متطلبات تهيئة طوابير الأوامر وتنفيذ المهام التفرعية على ضمان الفصل بين سياق الاستدعاء ومحرك الحوسبة الفيزيائي [AP_SWS_SHWA_00908]، [AP_SWS_SHWA_01204]، في حين تؤكد متطلبات الذاكرة على الحفاظ على سلامة الحواجز المتزامنة ومنع سباقات البيانات عبر فرض استخدام المنافذ المحمية [AP_SWS_SHWA_00007]، [AP_SWS_SHWA_00209]. وتوضح الرسوم التوضيحية البنيوية نمط الاستهلاك المشترك للواجهات من قبل التطبيقات التكيفية المتعددة دون إخلال باستقلالية مساحات العمليات SafeHardwareAcceleration ص 23، في حين يربط متطلب مراقبة العتاد [AP_SWS_SHWA_01409] بين الأجهزة الفيزيائية ونظام المراقبة الشامل لضمان موثوقية وظائف القيادة الذاتية.
تم توليد هذا الدليل الإرشادي آلياً استناداً إلى مواصفات AUTOSAR Adaptive Platform الرسمية للإصدار R25-11، ويخضع للتحقق الدوري لضمان مطابقة متطلبات السلامة الوظيفية.
class: 18 function: 120 enumeration: 4 type alias: 3 header file: 15
خريطة المواضيع
لا توجد بيانات عناصر لهذا الإصدار
ara::shwa
AcceleratorSelector manages accelerator selection for operations on HWA if available.
Accessor manages read and write access to allocated memory by Buffer. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr
Buffer manages memory allocation for operations on the host or/and HWA. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr
CpuSelector manages CPU selection for operations on HWA if available Allows to get a device from any supported backends for which the device type is CPU.
Device class represents HWA device. Provides access to the device but not controlling it. Designed as copyable since not owning resources.
DeviceMonitor API class. Designed as copyable since not owning resources.
Class allowing to choose the most appropriate device of the available ones. This is a callable object taking a device reference and returning an integer rank. One of the device with the highest non-negative value is selected.
ErrorHandler manages asynchronous error handling for operations on HWA.
Event class helps to manage task execution synchronization between HWA and Host application. Can be created only inside of the Queue otherwise it’s meaningless.
GpuSelector manages GPU selection for operations on HWA if available Select a device from any supported backends for which the device type is GPU.
Id API class. Designed as copyable since not owning resources.
Platform class is responsible for extracting different HWA platforms available for current application and listing Devices bind to each platform. Designed as copyable since not owning resources.
Property List class is designed to enable vendor specific SHWA functionality extension and adjustment. Properties are not standardized and can be defined by Vendor. Class using Property list is obliged to have HasProperty() and GetProperty() methods defined.
Queue API provides the functionality for parallel processing on selected Device. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ ptr, which may be moved. ≙ std::unique_
Defines size of Buffer for one, two or three dimensions. Designed as copyable since not owning resources.
Defines the error domain for Safe Hardware Acceleration.
Exception type could be thrown by application or other FC using Safe Hardware Acceleration. Safe Hardware Acceleration API is exception free and can only return an ErrorCode, but user code can transform this error to exception and throw if it’s alligned with system error handling architecture.
Handles tasks execution on the selected Device Can be created only inside of the Queue otherwise it’s meaningless.
Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.
constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.
constexpr ara::core::ErrorCode MakeErrorCode (ShwaErrorCode code, ara::core::ErrorDomain::SupportDataType data) noexcept;Die Enumeration definiert die folgenden standardisierten Werte.
enum class AccessMode : std::uint32_t {...};Die Enumeration definiert die folgenden standardisierten Werte.
enum class DeviceStatus : std::uint32_t {...};Die Enumeration definiert die folgenden standardisierten Werte.
enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};Die Enumeration definiert die folgenden standardisierten Werte.
enum class Target : std::uint32_t {...};نطاقات الأسماء
- ara::shwa 18 Klassen, 2 freie Funktionen, 4 Enumerationen
التعاون المعماري
Klickbare Knoten führen zu den Klassenseiten. Quellen: SWS SHWA §7.1, SWS SHWA §7.3, SWS SHWA §7.6. Teilweise Interpretation: Die Kollaboration verdichtet die in den Quellen separat beschriebenen Rollen.
ملفات الترويسة (الفصل 8)
ara/shwa/accessor.h[AP_SWS_SHWA_00000] لم يُستورد النص بعدara/shwa/buffer.h[AP_SWS_SHWA_00200] لم يُستورد النص بعدara/shwa/device.h[AP_SWS_SHWA_00300] لم يُستورد النص بعدara/shwa/device_monitor.h[AP_SWS_SHWA_01400] لم يُستورد النص بعدara/shwa/device_selector.h[AP_SWS_SHWA_00400] لم يُستورد النص بعدara/shwa/error_handler.h[AP_SWS_SHWA_00500] لم يُستورد النص بعدara/shwa/event.h[AP_SWS_SHWA_00600] لم يُستورد النص بعدara/shwa/id.h[AP_SWS_SHWA_00700] لم يُستورد النص بعدara/shwa/platform.h[AP_SWS_SHWA_01100] لم يُستورد النص بعدara/shwa/property_list.h[AP_SWS_SHWA_00800] لم يُستورد النص بعدara/shwa/queue.h[AP_SWS_SHWA_00900] لم يُستورد النص بعدara/shwa/range.h[AP_SWS_SHWA_01000] لم يُستورد النص بعدara/shwa/shwa_enums.h[AP_SWS_SHWA_00100] لم يُستورد النص بعدara/shwa/shwa_error_domain.h[AP_SWS_SHWA_01300] لم يُستورد النص بعدara/shwa/task_handler.h[AP_SWS_SHWA_01200] لم يُستورد النص بعد
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني