DEENESPTFRRUARHIKOZHNL

namespace ara::shwa

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.

Guide utilisateurGÉNÉRÉ PAR IA

Permet le déport sécurisé de tâches à forte intensité de calcul vers des accélérateurs matériels spécialisés.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 94872e9e2305 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet le déport sécurisé de tâches à forte intensité de calcul vers des accélérateurs matériels spécialisés.

L'espace de noms ara::shwa fournit des interfaces pour l'accélération matérielle sécurisée et permet le déport ciblé de tâches de calcul parallèles vers des périphériques tels que des GPU ou des CPU via le format cible Target ([AP_SWS_SHWA_00102]). Les applications sélectionnent les accélérateurs par l'intermédiaire de sélecteurs, créent des files d'attente d'exécution gérées de manière exclusive et contrôlent l'accès à la mémoire via des accesseurs de tampon. Les contraintes centrales sont un modèle de possession strict avec des ressources non copiables ainsi qu'une signalisation d'erreurs exempte d'exceptions via ShwaErrorCode ([AP_SWS_SHWA_01301]).

Contexte

L'espace de noms ara::shwa (Safe Hardware Acceleration) fournit, au sein de l'AUTOSAR Adaptive Platform, des interfaces pour déporter des tâches à forte intensité de calcul vers des accélérateurs matériels spécialisés. Le module permet l'intégration de différents types d'accélérateurs tels que des processeurs graphiques (GPU), des processeurs de signal numérique ou des processeurs centraux dédiés (CPU).

La détection de l'environnement système s'effectue via la classe Platform, qui détermine les plateformes matérielles disponibles sur le calculateur et énumère les instances Device associées. La sélection d'un périphérique approprié peut être pilotée de façon dynamique ou statique via des sélecteurs spécialisés : DeviceSelector agit en tant qu'objet fonction appelable pour hiérarchiser les unités disponibles à l'aide d'un rang entier, tandis que CpuSelector, GpuSelector et AcceleratorSelector adressent de manière ciblée des unités d'exécution spécifiques. L'état de fonctionnement actuel d'un accélérateur est représenté via l'énumération DeviceStatus ([AP_SWS_SHWA_00103]).

La Queue est responsable de l'exécution parallèle des opérations de calcul. Les tâches de calcul sont encapsulées via TaskHandler, le lieu d'exécution étant défini au choix sur l'accélérateur (kDevice) ou sur le CPU hôte (kHostTask) par l'intermédiaire de Target ([AP_SWS_SHWA_00102]). Les zones de mémoire pour les données d'entrée et de sortie sont allouées via Buffer à l'aide de l'indication de dimension Range. L'accès à ces tampons est régi par des objets Accessor, qui restreignent le mode d'accès via AccessMode ([AP_SWS_SHWA_00101]).

context Application Application Platform Platform Application->Platform fragt ab DeviceSelector DeviceSelector Application->DeviceSelector utilise Queue Queue Application->Queue besitzt Buffer Buffer Application->Buffer besitzt Device Device Platform->Device listet DeviceSelector->Device sélectionne Queue->Device bindet TaskHandler TaskHandler Queue->TaskHandler erzeugt Event Event Queue->Event erzeugt Range Range Buffer->Range beschreibt Accessor Accessor Buffer->Accessor erzeugt

Diagramme de contexte : interaction des classes fondamentales pour la sélection du matériel, la gestion de la mémoire et l'exécution des tâches. Sources : [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Cycle de vie

Le modèle de ressources et de cycle de vie dans ara::shwa fait une distinction stricte entre les objets possédant des ressources, les descripteurs descriptifs et les composants dépendant d'une file d'attente :

  • Classes possédant des ressources : Queue, Buffer et Accessor gèrent exclusivement les ressources matérielles et les zones de mémoire. Elles ne sont pas copiables (not copyable) et doivent impérativement être gérées via std::unique_ptr. Toute transmission ou transmission de propriété est exclusivement autorisée par sémantique de déplacement (move).
  • Descripteurs descriptifs et classes d'aide : Platform, Device, DeviceMonitor, Id, Range et PropertyList ne possèdent aucune ressource matérielle de manière exclusive. Elles sont conçues pour être copiables. Une instance de Device ne représente qu'une interface d'accès à un périphérique, sans toutefois le contrôler exclusivement. Interprétation : l'initialisation d'une file d'attente d'exécution (Queue) se lie à un Device spécifique préalablement sélectionné, étant donné que Queue gère les ressources de façon exclusive. Question Q-c38811a811f133d0 (ouverte)
  • Composants dépendants : les classes Event (pour la synchronisation) et TaskHandler (pour le traitement des tâches) ne peuvent être créées qu'au sein d'une Queue ; hors du contexte d'une file d'attente, elles ne possèdent aucune signification fonctionnelle.

Le cycle de vie d'un périphérique est reflété dans DeviceStatus ([AP_SWS_SHWA_00103]) : outre l'état prêt à fonctionner kReady, un périphérique peut être désigné comme inaccessible (kNotAccesible), défaillant (kFailure) ou inconnu (kUnknown). Interprétation : les changements d'état d'un périphérique entre kReady, kNotAccesible et kFailure sont détectés à l'exécution via des classes d'aide telles que le DeviceMonitor ou la plateforme. Question Q-8fc0dc95534dc8bc (ouverte)

Parcours d'utilisation

L'utilisation typique de ara::shwa pour l'exécution d'un calcul accéléré s'articule en cinq étapes :

  1. Sélection de la plateforme et du périphérique : l'application récupère via Platform les plateformes matérielles présentes et leurs instances Device associées. Un sélecteur (tel que DeviceSelector, GpuSelector ou CpuSelector) détermine le périphérique le plus approprié, dont le DeviceStatus ([AP_SWS_SHWA_00103]) présente le statut kReady.
  2. Instancier la file d'attente : pour le Device sélectionné, une Queue est créée et conservée en tant que std::unique_ptr.
  3. Allouer et préparer la mémoire : pour les données d'entrée et de sortie, un Buffer avec les dimensions requises est créé via Range. Pour le remplissage ou l'évaluation, l'application demande un Accessor, le mode d'accès étant déclaré via AccessMode ([AP_SWS_SHWA_00101]) comme kRead, kWrite ou kReadWrite.
  4. Enregistrer et exécuter la tâche : au sein de la Queue, un TaskHandler est créé. L'exécution est lancée, Target ([AP_SWS_SHWA_00102]) spécifiant si la tâche s'exécute sur l'accélérateur (kDevice) ou sur l'hôte (kHostTask).
  5. Synchronisation : la Queue met à disposition un Event avec lequel l'application hôte surveille la fin asynchrone des calculs sur l'accélérateur matériel et synchronise l'alignement des données.
Chemin d’utilisation pour le traitement des tâches dans ara::shwaApplicationPlatformDeviceSelectorfile d'attenteBufferInterroger les appareils disponiblesListe von Device-ObjektenSélectionner l’appareilDevice sélectionnéInstancier la file d’attente pour le DeviceCréer un tampon avec RangeDemander Accessor avec AccessModeAccessor bereitstellenTransmettre TaskHandler avec TargetCréer un événement pour la synchronisation

Diagramme de séquence : déroulement depuis l'interrogation de la plateforme jusqu'à l'exécution synchronisée en passant par l'allocation des tampons. Sources : [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Scénarios d'erreur

L'interface de programmation de ara::shwa est conçue sans exceptions (exception-free). Les états d'erreur sont retournés de manière synchrone via ara::core::ErrorCode. La génération des codes d'erreur s'effectue via la fonction fabrique MakeErrorCode ([AP_SWS_SHWA_01312]) en référence au domaine d'erreur GetShwaDomain ([AP_SWS_SHWA_01311]). Dans la mesure où l'architecture de l'application prévoit un modèle d'erreur basé sur des exceptions, le code d'erreur peut être converti en une ShwaException et levé.

L'énumération ShwaErrorCode ([AP_SWS_SHWA_01301]) spécifie des causes d'erreur standardisées :

  • Problèmes de mémoire et d'accès : si l'allocation de mémoire vive échoue, cela se traduit par kMemoryNotAllocated. Si la cohérence des données d'un tampon ne peut être maintenue, kIntegrityCorrupted est signalé. Des modes d'accès non autorisés ou des opérations défaillantes sur des objets Accessor conduisent respectivement à kInvalidAccessMode ou kAccessorFailure.
  • Erreurs d'exécution et de synchronisation : si le traitement d'une tâche échoue sur le périphérique cible, kTaskExecutionFailure est signalé. Des opérations non autorisées sur des objets de synchronisation entraînent kEventInvalidOperation, tandis que des ressources bloquées déclenchent kResourceBusy. En cas de dépassement des temps d'exécution configurés, kTimedOut est renvoyé.
  • Paramètres et états d'objets non valides : l'appel de méthodes sur des objets détruits ou non valides mène à kInvalidObject. Les indices ou paramètres non valides sont rejetés via kInvalidIndex ou kInvalidParameter. Les fonctions non prises en charge signalent kFeatureNotSupported, tandis que les erreurs générales sont consignées via kRuntime.

La classe ErrorHandler est utilisée pour le traitement des erreurs survenant pendant les calculs asynchrones sur l'accélérateur.

Ce guide repose exclusivement sur la spécification pour ara::shwa dans AUTOSAR R25-11.

Carte des thèmes

KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.

Vue détaillée

Sélectionnez une entrée dans le plan.

Geräteauswahl

AcceleratorSelector manages accelerator selection for operations on HWA if available.

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.

GpuSelector manages GPU selection for operations on HWA if available Select a device from any supported backends for which the device type is GPU.

Geräteabstraktion

Device classe

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.

Id classe

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

Platform classe

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.

DeviceStatus énumération

Die Enumeration definiert die folgenden standardisierten Werte.

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

Speicherzugriff

Accessor classe

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 classe

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

Range classe

Defines size of Buffer for one, two or three dimensions. Designed as copyable since not owning resources.

AccessMode énumération

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
Target énumération

Die Enumeration definiert die folgenden standardisierten Werte.

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

Auftragsausführung

Event classe

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 classe

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_

Handles tasks execution on the selected Device Can be created only inside of the Queue otherwise it’s meaningless.

Fehlerbehandlung

ErrorHandler manages asynchronous error handling for operations on HWA.

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.

GetShwaDomain fonction

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

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode fonction

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;
ShwaErrorCode énumération

Die Enumeration definiert die folgenden standardisierten Werte.

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};

Herstellereigenschaften

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.

Énumérations

énumération AccessMode [AP_SWS_SHWA_00101] Upstream: RS_SHWA_00017

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

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kRead — Nur-Lesen-Modus.
  • kWrite — Nur-Schreiben-Modus.
  • kReadWrite — Lese-/Schreibmodus.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00101
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00101@rel:R25-11#6c3fd2d7
Content hash
6c3fd2d7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00101
Status: valid/unmigrated Version: rel:R25-11#08a7ea1b Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00101@rel:R25-11#08a7ea1b
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

énumération DeviceStatus [AP_SWS_SHWA_00103] Upstream: RS_SHWA_00004

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

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kReady (= 0) — Device ist für die Task-Ausführung bereit.
  • kNotAccesible (= 1) — Device ist nicht zugänglich.
  • kFailure (= 2) — Device im Fehlerzustand.
  • kUnknown (= 255) — Status kann nicht bestimmt werden.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00103
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00103@rel:R25-11#e7be84b5
Content hash
e7be84b5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00103
Status: valid/unmigrated Version: rel:R25-11#41762982 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00103@rel:R25-11#41762982
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

énumération Target [AP_SWS_SHWA_00102] Upstream: RS_SHWA_00001, RS_SHWA_00017

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

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kDevice — Task läuft auf dem Gerät beziehungsweise Beschleuniger.
  • kHostTask — Task läuft auf dem Host (CPU).

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00102
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00102@rel:R25-11#0eb468ad
Content hash
0eb468ad
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00102
Status: valid/unmigrated Version: rel:R25-11#8cd54cba Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00102@rel:R25-11#8cd54cba
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

énumération ShwaErrorCode [AP_SWS_SHWA_01301] Upstream: RS_AP_00122, RS_AP_00125, RS_AP_00127, RS_AP_00149

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kRuntime (= 1) — allgemeiner Laufzeitfehler.
  • kTaskExecutionFailure (= 2) — Fehler bei der Task-Ausführung.
  • kMemoryNotAllocated (= 3) — Speicherallokation fehlgeschlagen.
  • kIntegrityCorrupted (= 4) — Integrität eines Buffer-Speichers nicht herstellbar.
  • kResourceBusy (= 5) — Ressource ist belegt.
  • kInvalidAccessMode (= 6) — Zugriffsmodus ist unzulässig.
  • kAccessorFailure (= 7) — Accessor-Nutzung oder -Erzeugung fehlgeschlagen.
  • kEventInvalidOperation (= 8) — unzulässige Event-Operation.
  • kFeatureNotSupported (= 9) — Feature wird nicht unterstützt.
  • kInvalidIndex (= 10) — Index ist ungültig.
  • kInvalidParameter (= 11) — ungültiger API-Parameter.
  • kInvalidObject (= 12) — ungültiges oder zerstörtes Objekt verwendet.
  • kTimedOut (= 13) — Operation überschritt die Zeitgrenze.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01301
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01301@rel:R25-11#7c4d201f
Content hash
7c4d201f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01301
Status: valid/unmigrated Version: rel:R25-11#cfa33aae Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01301@rel:R25-11#cfa33aae
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Documentation des fonctions libres

fonction GetShwaDomain [AP_SWS_SHWA_01311] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;

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

Thread Safetythread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01311
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01311@rel:R25-11#6d7ba86e
Content hash
6d7ba86e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01311
Status: valid/unmigrated Version: rel:R25-11#733e648e Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01311@rel:R25-11#733e648e
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction MakeErrorCode [AP_SWS_SHWA_01312] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00121, RS_AP_00135

constexpr ara::core::ErrorCode MakeErrorCode (ShwaErrorCode code, ara::core::ErrorDomain::SupportDataType data) noexcept;

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

Thread Safetythread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01312
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01312@rel:R25-11#946c141c
Content hash
946c141c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01312
Status: valid/unmigrated Version: rel:R25-11#a5d8ab39 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01312@rel:R25-11#a5d8ab39
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill