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.

User GuideAI-GEGENEREERD

Maakt de veilige uitbesteding van rekenintensieve taken aan gespecialiseerde hardwareversnellers mogelijk.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 94872e9e2305 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Maakt de veilige uitbesteding van rekenintensieve taken aan gespecialiseerde hardwareversnellers mogelijk.

De namespace ara::shwa biedt interfaces voor veilige hardwareversnelling en maakt het doelgericht uitbesteden van parallelle rekentaken aan apparaten zoals GPU's of CPU's mogelijk via het doelformaat Target ([AP_SWS_SHWA_00102]). Applicaties selecteren versnellers via selectors, maken exclusief beheerde uitvoeringswachtrijen aan en regelen de geheugentoegang via buffer-accessors. Als centrale randvoorwaarde geldt een strikt eigendomsmodel met niet-kopieerbare resources en een uitzonderingsvrije foutsynchronisatie/-signalering via ShwaErrorCode ([AP_SWS_SHWA_01301]).

Context

De namespace ara::shwa (Safe Hardware Acceleration) stelt binnen het AUTOSAR Adaptive Platform interfaces beschikbaar om rekenintensieve taken uit te besteden aan gespecialiseerde hardwareversnellers. De module maakt de integratie van verschillende versnellerstypes zoals grafische processors (GPU), digitale signaalprocessors of dedicated centrale processors (CPU) mogelijk.

De detectie van de systeemomgeving vindt plaats via de klasse Platform, die de op de ECU beschikbare hardwareplatformen vaststelt en de bijbehorende Device-instanties opsomt. De selectie van een geschikt apparaat kan dynamisch of statisch via gespecialiseerde selectors worden gestuurd: DeviceSelector fungeert als aanroepbaar functie-object voor het prioriteren van beschikbare eenheden op basis van een integer-rang, terwijl CpuSelector, GpuSelector en AcceleratorSelector doelgericht specifieke uitvoeringseenheden adresseren. De actuele bedrijfstoestand van een versneller wordt gerepresenteerd via de enumeratie DeviceStatus ([AP_SWS_SHWA_00103]).

Voor de parallelle uitvoering van rekenbewerkingen is de Queue verantwoordelijk. Rekenopdrachten worden ingekapseld via TaskHandler, waarbij de uitvoeringslocatie via Target ([AP_SWS_SHWA_00102]) naar keuze op de versneller (kDevice) of op de host-CPU (kHostTask) wordt vastgelegd. Geheugengebieden voor invoer- en uitvoergegevens worden gealloceerd via Buffer met gebruikmaking van de dimensieopgave Range. De toegang tot deze buffers wordt geregeld door Accessor-objecten, die de toegangsmodus via AccessMode ([AP_SWS_SHWA_00101]) beperken.

context Application Application Platform Platform Application->Platform fragt ab DeviceSelector DeviceSelector Application->DeviceSelector nutzt Queue Queue Application->Queue besitzt Buffer Buffer Application->Buffer besitzt Device Device Platform->Device listet DeviceSelector->Device selecteert Queue->Device bindet TaskHandler TaskHandler Queue->TaskHandler erzeugt Event Event Queue->Event erzeugt Range Range Buffer->Range beschreibt Accessor Accessor Buffer->Accessor erzeugt

Contextdiagram: interactie tussen de kernklassen voor hardwareselectie, geheugenbeheer en taakuitvoering. Bronnen: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Levenscyclus

Het resource- en levenscyclusmodel in ara::shwa maakt een strikt onderscheid tussen resourcebezittende objecten, beschrijvende handles en wachtrij-afhankelijke componenten:

  • Resourcebezittende klassen: Queue, Buffer en Accessor beheren hardwareresources en geheugengebieden exclusief. Ze zijn niet kopieerbaar (not copyable) en moeten verplicht via std::unique_ptr worden beheerd. Doorgifte of overdracht is uitsluitend toegestaan via move-semantiek.
  • Beschrijvende handles en hulpklassen: Platform, Device, DeviceMonitor, Id, Range en PropertyList bezitten geen hardwareresources exclusief. Ze zijn ontworpen om kopieerbaar te zijn. Een instantie van Device vormt slechts een toegangsinterface tot een apparaat, maar beheert dit niet exclusief. Interpretatie: de initialisatie van een uitvoeringswachtrij (Queue) bindt zich aan een specifiek, vooraf geselecteerd Device, omdat Queue resources exclusief beheert. Vraag Q-c38811a811f133d0 (open)
  • Afhankelijke componenten: De klassen Event (voor synchronisatie) en TaskHandler (voor taakverwerking) kunnen uitsluitend binnen een Queue worden aangemaakt; buiten de context van een wachtrij hebben zij geen functionele betekenis.

De levenscyclus van een apparaat wordt weerspiegeld in DeviceStatus ([AP_SWS_SHWA_00103]): naast de bedrijfsklare toestand kReady kan een apparaat worden aangeduid als niet toegankelijk (kNotAccesible), defect (kFailure) of onbekend (kUnknown). Interpretatie: toestandswijzigingen van een apparaat tussen kReady, kNotAccesible en kFailure worden tijdens runtime gedetecteerd via hulpklassen zoals de DeviceMonitor resp. het platform. Vraag Q-8fc0dc95534dc8bc (open)

Gebruikspad

Het typische gebruik van ara::shwa voor het uitvoeren van een versnelde berekening is onderverdeeld in vijf stappen:

  1. Platform- en apparaatselectie: De applicatie vraagt via Platform de aanwezige hardwareplatformen en de daaraan gekoppelde Device-instanties op. Een selector (zoals DeviceSelector, GpuSelector of CpuSelector) bepaalt het meest geschikte apparaat waarvan de DeviceStatus ([AP_SWS_SHWA_00103]) de status kReady vertoont.
  2. Wachtrij instantiëren: Voor het geselecteerde Device wordt een Queue aangemaakt en als std::unique_ptr bewaard.
  3. Geheugen alloceren en voorbereiden: Voor invoer- en uitvoergegevens wordt een Buffer met de vereiste dimensies aangemaakt via Range. Voor het vullen of evalueren vraagt de applicatie een Accessor aan, waarbij de toegangsmodus via AccessMode ([AP_SWS_SHWA_00101]) wordt gedeclareerd als kRead, kWrite of kReadWrite.
  4. Taak registreren en uitvoeren: Binnen de Queue wordt een TaskHandler aangemaakt. De uitvoering wordt gestart, waarbij via Target ([AP_SWS_SHWA_00102]) is vastgelegd of de taak op de versneller (kDevice) of op de host (kHostTask) draait.
  5. Synchronisatie: De Queue stelt een Event beschikbaar waarmee de host-applicatie de asynchrone voltooiing van de berekeningen op de hardwareversneller bewaakt en de gegevenssynchronisatie afstemt.
Gebruikspad voor taakverwerking in ara::shwaAnwendungPlatformDeviceSelectorQueueBufferBeschikbare apparaten opvragenListe von Device-ObjektenApparaat selecterenGeselecteerd deviceQueue voor device instantiërenBuffer met range aanmakenAccessor met AccessMode aanvragenAccessor bereitstellenTaskHandler met target doorgevenEvent voor synchronisatie aanmaken

Sequentiediagram: verloop van platformopvraag via bufferallocatie tot gesynchroniseerde uitvoering. Bronnen: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Foutscenario's

De programmeerinterface van ara::shwa is ontworpen als uitzonderingsvrij (exception-free). Fouttoestanden worden synchroon geretourneerd via ara::core::ErrorCode. Het genereren van foutcodes gebeurt via de factory-functie MakeErrorCode ([AP_SWS_SHWA_01312]) onder verwijzing naar het foutdomein GetShwaDomain ([AP_SWS_SHWA_01311]). Indien de applicatie-architectuur voorziet in een op uitzonderingen gebaseerd foutmodel, kan de foutcode worden geconverteerd naar een ShwaException en worden opgegooid.

De enumeratie ShwaErrorCode ([AP_SWS_SHWA_01301]) specificeert gestandaardiseerde foutoorzaken:

  • Geheugen- en toegangsproblemen: Mislukt de allocatie van werkgeheugen, dan resulteert dit in kMemoryNotAllocated. Kan de dataconsistentie van een buffer niet worden gehandhaafd, dan wordt kIntegrityCorrupted gemeld. Niet-toegestane toegangsmodi of mislukkende bewerkingen op Accessor-objecten leiden tot respectievelijk kInvalidAccessMode en kAccessorFailure.
  • Uitvoerings- en synchronisatiefouten: Mislukt de verwerking van een taak op het doelapparaat, dan wordt kTaskExecutionFailure gesignaleerd. Niet-toegestane bewerkingen op synchronisatie-objecten leiden tot kEventInvalidOperation, terwijl geblokkeerde resources kResourceBusy veroorzaken. Bij overschrijding van geconfigureerde uitvoeringstijden wordt kTimedOut geretourneerd.
  • Ongeldige parameters en objecttoestanden: Het aanroepen van methoden op vernietigde of ongeldige objecten leidt tot kInvalidObject. Ongeldige indices of parameters worden afgewezen via respectievelijk kInvalidIndex en kInvalidParameter. Niet-ondersteunde functies melden kFeatureNotSupported, terwijl algemene fouten worden geregistreerd via kRuntime.

Voor de afhandeling van fouten die optreden tijdens asynchrone berekeningen op de versneller wordt de klasse ErrorHandler ingezet.

Deze handleiding is uitsluitend gebaseerd op de specificatie voor ara::shwa in AUTOSAR R25-11.

Themakaart

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

Detailweergave

Kies een item in de inhoudsopgave.

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 klasse

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 klasse

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

Platform klasse

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 enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

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

Speicherzugriff

Accessor klasse

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 klasse

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 klasse

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

AccessMode enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

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

Die Enumeration definiert die folgenden standardisierten Werte.

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

Auftragsausführung

Event klasse

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 klasse

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.

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;
ShwaErrorCode enumeratie

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.

Enumeraties

enumeratie 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#585b9f16
Content hash
585b9f16
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

enumeratie 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#f99b4a3a
Content hash
f99b4a3a
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

enumeratie 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#1fcb95bd
Content hash
1fcb95bd
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

enumeratie 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#78da64df
Content hash
78da64df
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

Documentatie van de vrije functies

functie 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#0f247a7a
Content hash
0f247a7a
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

functie 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#af47eaa5
Content hash
af47eaa5
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