DEENESPTFRRUARHIKOZHNL

وحدة 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.

دليل الوحدةمولَّد بالذكاء الاصطناعي

يُتيح الاستخدام الآمن والقياسي لمسرّعات الأجهزة غير المتجانسة للحسابات المتوازية للبيانات.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: cc6d229c7f27 المصدر أسئلة مفتوحة (1)
المرساة السببية: R25-11 صالح اعتبارًا من R25-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيمُولَّد بالذكاء الاصطناعيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُتيح الاستخدام الآمن والقياسي لمسرّعات الأجهزة غير المتجانسة للحسابات المتوازية للبيانات.

توفّر المجموعة التكيفية 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]).

تخصيص المخزن المؤقت وتقديم النواة والمزامنةApplicationBufferQueueTaskHandlerEventUse Case: إعداد المخزن المؤقت وقائمة الانتظارCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: تعريف المهمة وتقديمهاParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

مخطط تسلسلي: مسار شامل (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).

SafeHardwareAccelerationArchitecture cluster_app_process POSIX Process (Adaptive Application / Functional Cluster) cluster_shwa_lib ara::shwa (In-Process Library) cluster_hardware Hardware Targets app Application Logic platform Platform & Device Management (Platform, Device, DeviceSelector) app->platform memory Data Management (Buffer, Accessor, Range, Id) app->memory execution Task Execution & Scheduling (Queue, TaskHandler, Event) app->execution safety Safety & Health Monitoring (DeviceMonitor, ErrorHandler) app->safety platform->execution memory->execution gpu GPU execution->gpu npu NPU / VPU execution->npu dsp DSP / FPGA execution->dsp cpu Host CPU execution->cpu safety->gpu safety->npu

مخطط السياق: تضمين 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]).

الاستعلام عن الهيكلية وإنشاء جهاز حوسبةApplicationPlatformDeviceSelectorDeviceGetPlatforms()Result<Vector<Platform>>GetDevices()Result<Vector<Device>>Use Case: التحديد وإنشاء النسخةSelectDevice()Result<Device>Create(deviceSelector)Result<Device>

مخطط تسلسلي: تحديد الطوبولوجيا، واختيار هدف الحوسبة، وإنشاء كائن 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).

تخصيص المخزن المؤقت وتقديم النواة والمزامنةApplicationBufferQueueTaskHandlerEventUse Case: إعداد المخزن المؤقت وقائمة الانتظارCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: تعريف المهمة وتقديمهاParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

مخطط تسلسلي: مسار شامل (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).

DeviceStatusLifecycle Init kReady kReady (0) Init->kReady kNotAccesible kNotAccesible (1) kReady->kNotAccesible Hardware getrennt / belegt kFailure kFailure (2) kReady->kFailure Hardwarefehler / Timeout kUnknown kUnknown (255) kReady->kUnknown Status unbestimmbar kNotAccesible->kReady Wiederhergestellt kNotAccesible->kFailure Schwerer Defekt kFailure->kUnknown Status unbestimmbar kUnknown->kReady Status revalidiert

مخطط الحالة: دورة الحياة وانتقالات حالة 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 المفاهيم الأساسية ومراجعها المعتمدة.

المجال الموضوعيعناصر المواصفة المهمةالمراجع الموثقة
المعمارية وتوفير الخدماتمكتبة داخل العملية، وتصنيف وظيفي ضمن فئة SafetyAUTOSAR_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.

Spezifikation: AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf (R25-11) · 160 API-Records

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 فئة

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 فئة

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 فئة

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 فئة

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 فئة

Id API class. Designed as copyable since not owning resources.

Platform فئة

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 فئة

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_

Range فئة

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.

GetShwaDomain دالة

Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode دالة

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;
AccessMode تعداد

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
DeviceStatus تعداد

Die Enumeration definiert die folgenden standardisierten Werte.

enum class DeviceStatus : std::uint32_t {...};
ShwaErrorCode تعداد

Die Enumeration definiert die folgenden standardisierten Werte.

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};
Target تعداد

Die Enumeration definiert die folgenden standardisierten Werte.

enum class Target : std::uint32_t {...};

نطاقات الأسماء

التعاون المعماري

G Zusammenspiel bei einer Task-Einreichung app Adaptive Application buf Buffer app->buf 1: Create(range) acc Accessor app->acc 3: Create(buffer, handler) queue Queue app->queue 2: Create(device, error handler) app->queue 4: Submit(lambda) queue->app 7: Result<Event> handler TaskHandler queue->handler 5: invoke task device Device handler->device 6: ParallelFor / SingleTask error ErrorHandler device->error 6a: async error (if any)

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)