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.

Guía del usuarioGENERADO POR IA

Permite la descarga segura de tareas de cómputo intensivo en aceleradores de hardware especializados.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 94872e9e2305 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Permite la descarga segura de tareas de cómputo intensivo en aceleradores de hardware especializados.

El namespace ara::shwa ofrece interfaces para Safe Hardware Acceleration y permite la descarga selectiva de tareas de cálculo paralelas en dispositivos como GPU o CPU mediante el formato de destino Target ([AP_SWS_SHWA_00102]). Las aplicaciones seleccionan aceleradores a través de selectores, crean colas de ejecución gestionadas en exclusiva y controlan el acceso a la memoria mediante accesores de búfer. Como condición de contorno fundamental rige un modelo estricto de propiedad con recursos no copiables, así como una señalización de errores sin excepciones a través de ShwaErrorCode ([AP_SWS_SHWA_01301]).

Contexto

El namespace ara::shwa (Safe Hardware Acceleration) proporciona interfaces dentro de la AUTOSAR Adaptive Platform para descargar tareas de cómputo intensivo en aceleradores de hardware especializados. El módulo permite la integración de diferentes tipos de aceleradores, como procesadores gráficos (GPU), procesadores de señales digitales o procesadores principales dedicados (CPU).

El reconocimiento del entorno del sistema se lleva a cabo a través de la clase Platform, que determina las plataformas de hardware disponibles en la unidad de control y lista las instancias de Device correspondientes. La selección de un dispositivo adecuado puede gestionarse de forma dinámica o estática mediante selectores especializados: DeviceSelector actúa como objeto de función invocable para priorizar las unidades disponibles en función de un rango entero, mientras que CpuSelector, GpuSelector y AcceleratorSelector direccionan de forma selectiva unidades de ejecución específicas. El estado operativo actual de un acelerador se representa mediante la enumeración DeviceStatus ([AP_SWS_SHWA_00103]).

Queue es responsable de la ejecución paralela de operaciones de cálculo. Las tareas de cálculo se encapsulan mediante TaskHandler, fijándose el lugar de ejecución a través de Target ([AP_SWS_SHWA_00102]) a elegir en el acelerador (kDevice) o en la CPU host (kHostTask). Las áreas de memoria para los datos de entrada y salida se asignan a través de Buffer utilizando la indicación de dimensiones Range. El acceso a estos búferes está regulado por objetos Accessor, que restringen el modo de acceso a través de AccessMode ([AP_SWS_SHWA_00101]).

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

Diagrama de contexto: interacción de las clases principales para la selección de hardware, gestión de memoria y ejecución de tareas. Fuentes: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Ciclo de vida

El modelo de recursos y ciclo de vida en ara::shwa distingue estrictamente entre objetos propietarios de recursos, handles descriptivos y componentes dependientes de la cola:

  • Clases propietarias de recursos: Queue, Buffer y Accessor gestionan recursos de hardware y áreas de memoria de forma exclusiva. No son copiables (not copyable) y deben gestionarse obligatoriamente a través de std::unique_ptr. Su transferencia o entrega solo está permitida mediante semántica de movimiento (move).
  • Handles descriptivos y clases auxiliares: Platform, Device, DeviceMonitor, Id, Range y PropertyList no poseen recursos de hardware en exclusiva. Están diseñadas para ser copiables. Una instancia de Device representa únicamente una interfaz de acceso a un dispositivo, pero no lo controla de forma exclusiva. Interpretación: la inicialización de una cola de ejecución (Queue) se vincula a un Device específico seleccionado previamente, ya que Queue gestiona recursos en exclusiva. Pregunta Q-c38811a811f133d0 (abierta)
  • Componentes dependientes: las clases Event (para sincronización) y TaskHandler (para el procesamiento de tareas) solo pueden crearse dentro de una Queue; fuera del contexto de una cola no tienen ningún significado funcional.

El ciclo de vida de un dispositivo se refleja en DeviceStatus ([AP_SWS_SHWA_00103]): además del estado operativo kReady, un dispositivo puede identificarse como no accesible (kNotAccesible), defectuoso (kFailure) o desconocido (kUnknown). Interpretación: los cambios de estado de un dispositivo entre kReady, kNotAccesible y kFailure se detectan en tiempo de ejecución a través de clases auxiliares como DeviceMonitor o la plataforma. Pregunta Q-8fc0dc95534dc8bc (abierta)

Ruta de uso

El uso típico de ara::shwa para la ejecución de un cálculo acelerado se divide en cinco pasos:

  1. Selección de plataforma y dispositivo: la aplicación consulta mediante Platform las plataformas de hardware disponibles y sus instancias de Device asociadas. Un selector (como DeviceSelector, GpuSelector o CpuSelector) determina el dispositivo más adecuado cuyo DeviceStatus ([AP_SWS_SHWA_00103]) presenta el estado kReady.
  2. Instanciar cola: para el Device seleccionado, se crea una Queue y se mantiene como std::unique_ptr.
  3. Asignar y preparar memoria: para los datos de entrada y salida, se crea un Buffer con las dimensiones requeridas mediante Range. Para el llenado o la evaluación, la aplicación solicita un Accessor, declarándose el modo de acceso a través de AccessMode ([AP_SWS_SHWA_00101]) como kRead, kWrite o kReadWrite.
  4. Registrar y ejecutar tarea: dentro de la Queue se crea un TaskHandler. Se inicia la ejecución, determinándose mediante Target ([AP_SWS_SHWA_00102]) si la tarea se ejecuta en el acelerador (kDevice) o en el host (kHostTask).
  5. Sincronización: la Queue proporciona un Event con el cual la aplicación host supervisa la finalización asíncrona de los cálculos en el acelerador de hardware y sincroniza la alineación de datos.
Ruta de uso para el procesamiento de tareas en ara::shwaAplicaciónPlatformDeviceSelectorcolaBufferConsultar dispositivos disponiblesListe von Device-ObjektenSeleccionar dispositivoDevice seleccionadoInstanciar cola para DeviceCrear Buffer con RangeSolicitar Accessor con AccessModeAccessor bereitstellenTransferir TaskHandler con TargetCrear evento para sincronización

Diagrama de secuencia: flujo desde la consulta de plataforma pasando por la asignación de búferes hasta la ejecución sincronizada. Fuentes: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Escenarios de error

La interfaz de programación de ara::shwa está diseñada libre de excepciones (exception-free). Los estados de error se devuelven de forma síncrona mediante ara::core::ErrorCode. La generación de los códigos de error se realiza a través de la función de fábrica MakeErrorCode ([AP_SWS_SHWA_01312]) con referencia al dominio de error GetShwaDomain ([AP_SWS_SHWA_01311]). Siempre que la arquitectura de la aplicación prevea un modelo de errores basado en excepciones, el código de error se puede convertir en una ShwaException y lanzarse.

La enumeración ShwaErrorCode ([AP_SWS_SHWA_01301]) especifica causas de error estandarizadas:

  • Problemas de memoria y acceso: si falla la asignación de memoria de trabajo, esto da como resultado kMemoryNotAllocated. Si no se puede mantener la consistencia de datos de un búfer, se notifica kIntegrityCorrupted. Los modos de acceso no válidos o las operaciones fallidas en objetos Accessor dan lugar a kInvalidAccessMode o kAccessorFailure, respectivamente.
  • Errores de ejecución y sincronización: si falla el procesamiento de una tarea en el dispositivo de destino, se señala kTaskExecutionFailure. Las operaciones no permitidas en objetos de sincronización dan lugar a kEventInvalidOperation, mientras que los recursos bloqueados desencadenan kResourceBusy. Si se superan los tiempos de ejecución configurados, se devuelve kTimedOut.
  • Parámetros y estados de objeto no válidos: la invocación de métodos en objetos destruidos o no válidos provoca kInvalidObject. Los índices o parámetros no válidos se rechazan mediante kInvalidIndex o kInvalidParameter, respectivamente. Las funciones no compatibles notifican kFeatureNotSupported, mientras que los errores generales se registran a través de kRuntime.

Para el tratamiento de errores que se producen durante cálculos asíncronos en el acelerador, se utiliza la clase ErrorHandler.

Esta guía se basa exclusivamente en la especificación para ara::shwa en AUTOSAR R25-11.

Mapa de temas

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

Vista de detalle

Selecciona una entrada en el índice.

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 clase

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 clase

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

Platform clase

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 enumeración

Die Enumeration definiert die folgenden standardisierten Werte.

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

Speicherzugriff

Accessor clase

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 clase

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 clase

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

AccessMode enumeración

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
Target enumeración

Die Enumeration definiert die folgenden standardisierten Werte.

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

Auftragsausführung

Event clase

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 clase

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 función

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

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode función

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 enumeración

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.

Enumeraciones

enumeración 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#897d780c
Content hash
897d780c
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

enumeración 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#a8f4a492
Content hash
a8f4a492
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

enumeración 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#7fcc38d2
Content hash
7fcc38d2
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

enumeración 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#dd05ab20
Content hash
dd05ab20
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

Documentación de las funciones libres

función 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#deb39c35
Content hash
deb39c35
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

función 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#f112bd7a
Content hash
f112bd7a
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