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.

Guia do utilizadorGERADO POR IA

Permite o descarregamento seguro de tarefas computacionalmente intensivas para aceleradores de hardware especializados.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 94872e9e2305 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite o descarregamento seguro de tarefas computacionalmente intensivas para aceleradores de hardware especializados.

O namespace ara::shwa oferece interfaces para aceleração segura de hardware e possibilita o descarregamento direcionado de tarefas computacionais paralelas para dispositivos como GPUs ou CPUs por meio do formato de destino Target ([AP_SWS_SHWA_00102]). As aplicações selecionam aceleradores por meio de seletores, criam filas de execução gerenciadas com exclusividade e controlam o acesso à memória por meio de acessores de buffer. Como requisito fundamental, aplica-se um modelo estrito de posse com recursos não copiáveis, bem como sinalização de erros isenta de exceções via ShwaErrorCode ([AP_SWS_SHWA_01301]).

Contexto

O namespace ara::shwa (Safe Hardware Acceleration) fornece, no âmbito da AUTOSAR Adaptive Platform, interfaces para descarregar tarefas computacionalmente intensivas para aceleradores de hardware especializados. O módulo possibilita a integração de diferentes tipos de aceleradores, tais como processadores gráficos (GPU), processadores digitais de sinal ou processadores centrais dedicados (CPU).

A detecção do ambiente do sistema é realizada por meio da classe Platform, que determina as plataformas de hardware disponíveis na unidade de controle e lista as instâncias correspondentes de Device. A seleção de um dispositivo apropriado pode ser controlada de forma dinâmica ou estática por meio de seletores especializados: DeviceSelector atua como um objeto de função invocável para priorizar as unidades disponíveis com base em uma classificação inteira, enquanto CpuSelector, GpuSelector e AcceleratorSelector endereçam deliberadamente unidades de execução específicas. O estado operacional atual de um acelerador é mapeado por meio da enumeração DeviceStatus ([AP_SWS_SHWA_00103]).

Para a execução paralela de operações de computação, a Queue é a responsável. As tarefas de computação são encapsuladas por meio de TaskHandler, sendo o local de execução definido via Target ([AP_SWS_SHWA_00102]) opcionalmente no acelerador (kDevice) ou na CPU do host (kHostTask). As áreas de memória para dados de entrada e saída são alocadas via Buffer utilizando a especificação de dimensões Range. O acesso a esses buffers é regulado por objetos Accessor, que restringem o modo de acesso por meio 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 seleciona 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: interação das classes principais para seleção de hardware, gerenciamento de memória e execução de tarefas. Fontes: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Ciclo de vida

O modelo de recursos e ciclo de vida em ara::shwa distingue estritamente entre objetos proprietários de recursos, identificadores descritivos e componentes dependentes de fila:

  • Classes proprietárias de recursos: Queue, Buffer e Accessor gerenciam recursos de hardware e áreas de memória com exclusividade. Elas não são copiáveis (not copyable) e devem obrigatoriamente ser gerenciadas via std::unique_ptr. O repasse ou transferência só é permitido através de semântica de movimento (move semantics).
  • Identificadores descritivos e classes auxiliares: Platform, Device, DeviceMonitor, Id, Range e PropertyList não detêm recursos de hardware com exclusividade. Elas foram projetadas para serem copiáveis. Uma instância de Device representa apenas uma interface de acesso a um dispositivo, mas não o controla de forma exclusiva. Interpretação: a inicialização de uma fila de execução (Queue) vincula-se a um Device específico, previamente selecionado, já que Queue gerencia recursos com exclusividade. Pergunta Q-c38811a811f133d0 (aberta)
  • Componentes dependentes: as classes Event (para sincronização) e TaskHandler (para processamento de tarefas) só podem ser criadas dentro de uma Queue; fora do contexto de uma fila, elas não possuem qualquer relevância funcional.

O ciclo de vida de um dispositivo reflete-se em DeviceStatus ([AP_SWS_SHWA_00103]): além do estado operacional kReady, um dispositivo pode ser classificado como inacessível (kNotAccesible), com falha (kFailure) ou desconhecido (kUnknown). Interpretação: mudanças de estado de um dispositivo entre kReady, kNotAccesible e kFailure são detectadas em tempo de execução por meio de classes auxiliares, tais como o DeviceMonitor ou a plataforma. Pergunta Q-8fc0dc95534dc8bc (aberta)

Caminho de utilização

O uso típico de ara::shwa para a execução de um cálculo acelerado é dividido em cinco etapas:

  1. Seleção de plataforma e dispositivo: a aplicação obtém, via Platform, as plataformas de hardware existentes e suas instâncias correspondentes de Device. Um seletor (como DeviceSelector, GpuSelector ou CpuSelector) determina o dispositivo mais adequado, cujo DeviceStatus ([AP_SWS_SHWA_00103]) apresenta o status kReady.
  2. Instanciar a fila: para o Device selecionado, uma Queue é criada e mantida como std::unique_ptr.
  3. Alocar e preparar a memória: para os dados de entrada e saída, um Buffer com as dimensões requeridas é criado via Range. Para preenchimento ou avaliação, a aplicação solicita um Accessor, sendo o modo de acesso declarado via AccessMode ([AP_SWS_SHWA_00101]) como kRead, kWrite ou kReadWrite.
  4. Registrar e executar a tarefa: dentro da Queue, uma TaskHandler é criada. A execução é iniciada, definindo-se via Target ([AP_SWS_SHWA_00102]) se a tarefa é executada no acelerador (kDevice) ou no host (kHostTask).
  5. Sincronização: a Queue fornece um Event com o qual a aplicação host monitora o término assíncrono dos cálculos no acelerador de hardware e sincroniza a reconciliação dos dados.
Caminho de uso para processamento de tarefas em ara::shwaAplicaçãoPlatformDeviceSelectorQueueBufferConsultar dispositivos disponíveisListe von Device-ObjektenSelecionar dispositivoDevice selecionadoInstanciar Queue para DeviceCriar Buffer com RangeSolicitar Accessor com AccessModeAccessor bereitstellenTransmitir TaskHandler com TargetCriar Event para sincronização

Diagrama de sequência: fluxo desde a consulta da plataforma e a alocação de buffer até a execução sincronizada. Fontes: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Cenários de erro

A interface de programação de ara::shwa foi projetada de forma isenta de exceções (exception-free). Os estados de erro são retornados sincronicamente por meio de ara::core::ErrorCode. A geração dos códigos de erro ocorre via função fábrica MakeErrorCode ([AP_SWS_SHWA_01312]), fazendo referência ao domínio de erro GetShwaDomain ([AP_SWS_SHWA_01311]). Se a arquitetura da aplicação previr um modelo de tratamento de erros baseado em exceções, o código de erro pode ser convertido em uma ShwaException e lançado.

A enumeração ShwaErrorCode ([AP_SWS_SHWA_01301]) especifica causas de erro padronizadas:

  • Problemas de memória e de acesso: se a alocação de memória falhar, isso resulta em kMemoryNotAllocated. Se a consistência dos dados de um buffer não puder ser mantida, kIntegrityCorrupted é reportado. Modos de acesso não permitidos ou operações com falha em objetos Accessor levam a kInvalidAccessMode ou kAccessorFailure.
  • Erros de execução e de sincronização: se o processamento de uma tarefa no dispositivo de destino falhar, kTaskExecutionFailure é sinalizado. Operações não permitidas em objetos de sincronização resultam em kEventInvalidOperation, enquanto recursos bloqueados acionam kResourceBusy. Em caso de excedência dos tempos de execução configurados, kTimedOut é retornado.
  • Parâmetros e estados de objeto inválidos: a chamada de métodos em objetos destruídos ou inválidos resulta em kInvalidObject. Índices ou parâmetros inválidos são rejeitados via kInvalidIndex ou kInvalidParameter. Recursos não suportados reportam kFeatureNotSupported, enquanto erros gerais são registrados via kRuntime.

Para o tratamento de erros que ocorrem durante cálculos assíncronos no acelerador, a classe ErrorHandler é utilizada.

Este guia baseia-se exclusivamente na especificação para ara::shwa no 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 detalhes

Selecione uma entrada no í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 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 enumeração

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 enumeração

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
Target enumeração

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 função

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

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode função

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 enumeração

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.

Enumerações

enumeração 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#28e6f437
Content hash
28e6f437
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

enumeração 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#e74b8ab4
Content hash
e74b8ab4
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

enumeração 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#bbaa40ef
Content hash
bbaa40ef
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

enumeração 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#2b2d6838
Content hash
2b2d6838
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

Documentação das funções livres

função 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#e9fb32e1
Content hash
e9fb32e1
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

função 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#28968821
Content hash
28968821
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