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.
160 API-Records in Kapitel 8: 18 Klassen, 120 Funktionen, 4 Enumerationen und 3 Typ-Aliasse.
دليل المستخدممولَّد بالذكاء الاصطناعي
يتيح النقل الآمن للمهام الحسابية الكثيفة إلى مسرعات عتادية متخصصة.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 94872e9e2305المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يتيح النقل الآمن للمهام الحسابية الكثيفة إلى مسرعات عتادية متخصصة.
يوفر نطاق الأسماء ara::shwa واجهات لـ Safe Hardware Acceleration ويتيح التفريغ الموجّه لمهام الحوسبة المتوازية إلى أجهزة مثل وحدات معالجة الرسومات (GPUs) أو وحدات المعالجة المركزية (CPUs) عبر التنسيق المستهدف Target ([AP_SWS_SHWA_00102]). تختار التطبيقات المسرعات عبر محددات، وتنشئ قوائم انتظار تنفيذ مدارة حصرياً، وتتحكم في الوصول إلى الذاكرة عبر موفرات الوصول إلى المخزن المؤقت. ويتمثل القيد المحوري في نموذج ملكية صارم مع موارد غير قابلة للنسخ، بالإضافة إلى إشارات أخطاء خالية من الاستثناءات عبر ShwaErrorCode ([AP_SWS_SHWA_01301]).
السياق
يوفر نطاق الأسماء ara::shwa (Safe Hardware Acceleration) واجهات داخل AUTOSAR Adaptive Platform لنقل المهام الحسابية الكثيفة إلى مسرعات عتادية متخصصة. تتيح الوحدة دمج أنواع مختلفة من المسرعات مثل وحدات معالجة الرسومات (GPU) أو معالجات الإشارات الرقمية أو وحدات المعالجة المركزية (CPU) المخصصة.
يتم التعرف على بيئة النظام عبر الفئة Platform، والتي تحدد منصات العتاد المتاحة على وحدة التحكم الإلكترونية وتسرد حالات Device المرتبطة بها. يمكن التحكم في اختيار جهاز مناسب ديناميكيًا أو استاتيكيًا عبر محددات متخصصة: يعمل DeviceSelector ككائن دالة قابل للاستدعاء لتحديد أولويات الوحدات المتاحة استنادًا إلى رتبة عددية صحيحة، بينما يخاطب CpuSelector وGpuSelector وAcceleratorSelector وحدات تنفيذ محددة بشكل موجه. يتم تمثيل حالة التشغيل الحالية للمسرع عبر التعداد DeviceStatus ([AP_SWS_SHWA_00103]).
تُعد Queue مسؤولة عن التنفيذ المتوازي لعمليات الحوسبة. يتم تغليف مهام الحساب عبر TaskHandler، حيث يُحدد موقع التنفيذ عبر Target ([AP_SWS_SHWA_00102]) اختياريًا على المسرع (kDevice) أو على Host-CPU kHostTask. يتم تخصيص نطاقات الذاكرة لبيانات الإدخال والإخراج عبر Buffer باستخدام مواصفة الأبعاد Range. ويتم تنظيم الوصول إلى هذه المخازن المؤقتة بواسطة كائنات Accessor، والتي تقيد وضع الوصول عبر AccessMode ([AP_SWS_SHWA_00101]).
يميز نموذج الموارد ودورة الحياة في ara::shwa بشكل صارم بين الكائنات المالكة للموارد، ومقابض الوصف، والمكونات المعتمدة على قوائم الانتظار:
الفئات المالكة للموارد: تدير Queue وBuffer وAccessor موارد العتاد ونطاقات الذاكرة حصريًا. وهي غير قابلة للنسخ (not copyable) ويجب إدارتها إلزاميًا عبر std::unique_ptr. ولا يُسمح بتمريرها أو تسليمها إلا عبر دلالات النقل (Move semantics) فقط.
مقابض الوصف والفئات المساعدة: لا تمتلك Platform وDevice وDeviceMonitor وId وRange وPropertyList موارد عتادية حصريًا، وقد صُممت لتكون قابلة للنسخ. تمثل حالة Device مجرد واجهة وصول إلى جهاز، لكنها لا تتحكم فيه حصريًا. تفسير: يرتبط تهيئة قائمة انتظار التنفيذ (Queue) بـ Device محدد تم اختياره مسبقًا، نظرًا لأن Queue تدير الموارد حصريًا. سؤال Q-c38811a811f133d0 (مفتوح)
المكونات المعتمدة: لا يمكن إنشاء الفئتين Event (للمزامنة) وTaskHandler (لمعالجة المهام) إلا داخل Queue؛ وخارج سياق قائمة الانتظار، لا تمتلكان أي دلالة وظيفية.
تنعكس دورة حياة الجهاز في DeviceStatus ([AP_SWS_SHWA_00103]): إلى جانب الحالة الجاهزة للتشغيل kReady، يمكن تصنيف الجهاز على أنه غير قابل للوصول (kNotAccesible)، أو معيب (kFailure)، أو غير معروف (kUnknown). تفسير: يتم التعرف على تغيرات حالة الجهاز بين kReady وkNotAccesible وkFailure أثناء وقت التشغيل عبر فئات مساعدة مثل DeviceMonitor أو المنصة. سؤال Q-8fc0dc95534dc8bc (مفتوح)
مسار الاستخدام
ينقسم الاستخدام النموذجي لـ ara::shwa لتنفيذ عملية حسابية مُسرَّعة إلى خمس خطوات:
اختيار المنصة والجهاز: يسترجع التطبيق منصات العتاد المتوفرة وحالات Device المرتبطة بها عبر Platform. يحدد أحد المحددات (مثل DeviceSelector أو GpuSelector أو CpuSelector) الجهاز الأكثر ملاءمة، والذي تُظهر DeviceStatus ([AP_SWS_SHWA_00103]) الخاصة به الحالة kReady.
إنشاء قائمة الانتظار: يتم إنشاء Queue لـ Device المحدد والاحتفاظ بها كـ std::unique_ptr.
تخصيص الذاكرة وإعدادها: بالنسبة لبيانات الإدخال والإخراج، يتم إنشاء Buffer بالأبعاد المطلوبة عبر Range. للتعبئة أو التقييم، يطلب التطبيق Accessor، حيث يتم التصريح عن وضع الوصول عبر AccessMode ([AP_SWS_SHWA_00101]) كـ kRead أو kWrite أو kReadWrite.
تسجيل المهمة وتنفيذها: يتم إنشاء TaskHandler داخل Queue. يبدأ التنفيذ، مع تحديد ما إذا كانت المهمة تعمل على المسرع (kDevice) أو على المضيف (kHostTask) عبر Target ([AP_SWS_SHWA_00102]).
المزامنة: توفر Queue كائن Event، والذي يراقب به تطبيق المضيف الانتهاء غير المتزامن للحسابات على مسرع العتاد ويزامن مطابقة البيانات.
تم تصميم واجهة برمجة التطبيقات لـ ara::shwa لتكون خالية من الاستثناءات (exception-free). يتم إرجاع حالات الخطأ بشكل متزامن عبر ara::core::ErrorCode. يتم إنشاء رموز الخطأ عبر دالة المصنع MakeErrorCode ([AP_SWS_SHWA_01312]) مع الإشارة إلى نطاق الخطأ GetShwaDomain ([AP_SWS_SHWA_01311]). وإذا كانت بنية التطبيق تنص على نموذج أخطاء قائم على الاستثناءات، فيمكن تحويل رمز الخطأ إلى ShwaException وإطلاقه.
مشكلات الذاكرة والوصول: إذا فشل تخصيص ذاكرة العمل، ينتج عن ذلك kMemoryNotAllocated. وإذا تعذر الحفاظ على اتساق بيانات المخزن المؤقت، يتم الإبلاغ عن kIntegrityCorrupted. تؤدي أوضاع الوصول غير المسموح بها أو العمليات الفاشلة على كائنات Accessor إلى kInvalidAccessMode أو kAccessorFailure.
أخطاء التنفيذ والمزامنة: إذا فشلت معالجة مهمة على الجهاز المستهدف، تتم الإشارة إلى kTaskExecutionFailure. تؤدي العمليات غير المسموح بها على كائنات المزامنة إلى kEventInvalidOperation، بينما تطلق الموارد المحظورة kResourceBusy. عند تجاوز أوقات التنفيذ المهيأة، يتم إرجاع kTimedOut.
المعلمات وحالات الكائنات غير الصالحة: يؤدي استدعاء الطرق على كائنات مدمرة أو غير صالحة إلى kInvalidObject. يتم رفض الفهارس أو المعلمات غير الصالحة عبر kInvalidIndex أو kInvalidParameter. تُبلغ الوظائف غير المدعومة عن kFeatureNotSupported، بينما يتم التقاط الأخطاء العامة عبر kRuntime.
لمعالجة الأخطاء التي تحدث أثناء الحسابات غير المتزامنة على المسرع، تُستخدم الفئة ErrorHandler.
يستند هذا الدليل حصرياً إلى مواصفة ara::shwa في AUTOSAR R25-11.
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.
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.
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.
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
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.
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_
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.
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.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني