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.
Gère des zones mémoire multidimensionnelles pour l'accélération matérielle avec création et allocation contrôlées.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9fe6efb67359ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Gère des zones mémoire multidimensionnelles pour l'accélération matérielle avec création et allocation contrôlées.
Le modèle de classe sert à la gestion de tampons mémoire multidimensionnels pour la Safe Hardware Acceleration dans l'Adaptive Platform SWS_SafeHardwareAcceleration §7.1 « High Level Design of Safe Hardware Acceleration in an Adaptive Platform ». Toutes les opérations par défaut, de copie et de déplacement étant supprimées, la création s'effectue exclusivement via des méthodes fabriques statiques telles que [AP_SWS_SHWA_00209] sous la forme d'un pointeur détenu de manière exclusive. La mémoire peut être ajustée via des propriétés configurables et des allocateurs, tandis que les accès en lecture aux propriétés ne sont pas conçus comme thread-safe. Les réservations de mémoire ayant échoué sont signalées à l'appelant via des codes d'erreur définis.
Contexte
La classe template ara::shwa::Buffer constitue, dans le module Safe Hardware Acceleration (SHWA) de l'Adaptive Platform, une abstraction centrale pour l'encapsulation et la gestion de zones de mémoire multidimensionnelles. Comme exposé dans l'architecture système, les Adaptive Applications ainsi que les clusters fonctionnels interagissent typiquement avec une combinaison de plusieurs files d'attente (Queues), périphériques accélérateurs (Devices) et tampons (SWS_SafeHardwareAcceleration §7.1 « High Level Design of Safe Hardware Acceleration in an Adaptive Platform »). Les tampons mettent ici à disposition la mémoire requise pour les opérations d'accélération au niveau de l'hôte ou du périphérique, et peuvent optionnellement être configurés par des allocateurs spécifiques à l'application ([AP_SWS_SHWA_00210]) ou des pointeurs de données hôte.
Le cycle de vie d'une instance de tampon est soumis à de strictes restrictions sémantiques. Afin de garantir des relations de propriété sans ambiguïté, le constructeur par défaut ([AP_SWS_SHWA_00202]) ainsi que le constructeur de copie ([AP_SWS_SHWA_00203]) et l'opérateur d'assignation par copie ([AP_SWS_SHWA_00204]) sont supprimés. De même, le constructeur de déplacement ([AP_SWS_SHWA_00205]) et l'opérateur d'assignation par déplacement ([AP_SWS_SHWA_00206]) sont explicitement supprimés. Interprétation : cela devrait empêcher que des ressources de tampon ou des relations matérielles ne soient dupliquées ou déplacées de manière incontrôlée en mémoire. Question Q-dcabd66fa9f3ec2a (ouverte)
La création s'effectue donc exclusivement via des méthodes fabriques statiques de la famille de surcharges Create, qui renvoient en cas de succès un std::unique_ptr<Buffer> encapsulé dans un ara::core::Result. Différents chemins de construction sont ici disponibles :
Création avec plage de tampon et liste de propriétés optionnelle : thread-safe ([AP_SWS_SHWA_00209]).
Création avec plage de tampon, allocateur dédié et liste de propriétés : thread-safe ([AP_SWS_SHWA_00210]).
Création sur la base de pointeurs de données hôte existants avec plage de tampon : thread-safe aussi bien pour les pointeurs modifiables ([AP_SWS_SHWA_00211]) que pour les pointeurs de données constants ([AP_SWS_SHWA_00213]).
Création avec pointeur de données hôte constant, plage de tampon et allocateur : thread-safe ([AP_SWS_SHWA_00214]).
Création directe uniquement via un allocateur : non thread-safe ([AP_SWS_SHWA_00212]).
Après une création réussie, la propriété reste dans le contexte appelant via std::unique_ptr. La destruction de l'objet à l'expiration du pointeur intelligent (smart pointer) devrait libérer automatiquement la zone mémoire sous-jacente via l'allocateur respectif. Question Q-aa2b5642b8527803 (ouverte)
Parcours d'utilisation
Un chemin d'utilisation typique commence par l'allocation et l'initialisation du tampon via l'une des méthodes fabriques thread-safe telles que [AP_SWS_SHWA_00209]. Après une instanciation réussie, l'application peut vérifier si des propriétés spécifiques sont enregistrées pour ce tampon en appelant HasProperty<PropertyT>() ([AP_SWS_SHWA_00215]). Si la propriété souhaitée est présente, sa valeur concrète peut être lue de manière synchrone via GetProperty<PropertyT>() ([AP_SWS_SHWA_00216]). Il convient de noter que HasProperty ainsi que GetProperty sont déclarées comme non thread-safe ; les requêtes concurrentes sur le même objet tampon doivent donc être synchronisées côté application.
Toutes les méthodes fabriques et d'inspection sont déclarées avec noexcept et offrent une sécurité vis-à-vis des exceptions (exception safe) sans restriction. Les erreurs sont signalées via ara::core::Result :
Si une propriété non prise en charge par le tampon ou la plateforme est interrogée via GetProperty<PropertyT>(), le résultat fournit le code d'erreur ShwaErrorCode::kFeatureNotSupported ([AP_SWS_SHWA_00216]). Pour éviter cette erreur, il est recommandé d'effectuer une vérification préalable au moyen de HasProperty<PropertyT>() ([AP_SWS_SHWA_00215]).
Ce guide a été généré par une intelligence artificielle sur la base de la spécification AUTOSAR R25-11.
Cycle de vie
Ablauf abgeleitet aus Buffer-/Accessor-Factorys und RAII. Quellen: SWS SHWA §7.3, SWS SHWA §7.5. Teilweise Interpretation: Die Zustandsfolge macht den dokumentierten Objektzusammenhang sichtbar.
gemini-3.8-flash-low· 2026-10-13 · Original allemand