DE112022002790T5 - Verbesserungen in Bezug auf die Kodierung und Verarbeitung von Datenverteilungen - Google Patents

Verbesserungen in Bezug auf die Kodierung und Verarbeitung von Datenverteilungen Download PDF

Info

Publication number
DE112022002790T5
DE112022002790T5 DE112022002790.8T DE112022002790T DE112022002790T5 DE 112022002790 T5 DE112022002790 T5 DE 112022002790T5 DE 112022002790 T DE112022002790 T DE 112022002790T DE 112022002790 T5 DE112022002790 T5 DE 112022002790T5
Authority
DE
Germany
Prior art keywords
data
distribution
tuple
probability
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112022002790.8T
Other languages
English (en)
Inventor
Phillip Stanley-Marbell
Vasileios Tsoutsouras
Bilgesu Bilgin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambridge Enterprise Ltd
Original Assignee
Cambridge Enterprise Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB2107606.2A external-priority patent/GB202107606D0/en
Priority claimed from GBGB2107604.7A external-priority patent/GB202107604D0/en
Application filed by Cambridge Enterprise Ltd filed Critical Cambridge Enterprise Ltd
Publication of DE112022002790T5 publication Critical patent/DE112022002790T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Operations Research (AREA)
  • Evolutionary Biology (AREA)
  • Algebra (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

Verfahren zur Verarbeitung von Datenverteilungen, das Verfahren umfassend die Bereitstellung einer Mikroarchitektur mit: einem ersten Register, das Datenelemente enthält; einem zweiten Register, das Verteilungsdaten enthält, wobei die Verteilungsdaten Verteilungen repräsentieren, die Unsicherheitsdarstellungen sind, die mit jeweiligen der Datenelemente assoziiert sind; einer ersten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem ersten Register ausgewählten Datenelementen; einer zweiten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem zweiten Register ausgewählten Verteilungsdaten; das Verfahren umfasst die folgenden Schritte, die von der Mikroarchitektur ausgeführt werden: Ausführen, durch die erste arithmetische Logikeinheit, einer arithmetischen Operation an aus dem ersten Register ausgewählten Datenelementen, und Ausgeben des Ergebnisses; Ausführen, durch die zweite arithmetische Logikeinheit, einer arithmetischen Operation an aus dem zweiten Register ausgewählten Verteilungsdaten, die Verteilungen repräsentieren und mit den aus dem ersten Register ausgewählten Datenelementen assoziiert sind, und Ausgeben des Ergebnisses;wobei die arithmetische Operation, die an den aus dem zweiten Register ausgewählten Verteilungsdaten ausgeführt wird, die gleiche ist wie die arithmetische Operation, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird, um dadurch weitere Verteilungsdaten zu erzeugen, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation assoziiert ist, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird.

Description

  • Diese Anmeldung beansprucht die Priorität von GB2107604 .7, eingereicht am 27. Mai 2021, und von GB2107606.2 , eingereicht am 27. Mai 2021, deren Inhalt und Elemente hierin für alle Zwecke durch Bezugnahme aufgenommen sind.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Kodierung, Verarbeitung, Speicherung und Kommunikation von Datenverteilungen. Bei den Daten kann es sich um Verteilungen von Datenproben handeln. Die Datenverteilungen können die Messunsicherheit in Messgeräten (z.B. Sensoren) angeben und insbesondere, wenn auch nicht ausschließlich, Wahrscheinlichkeitsverteilungen darstellen.
  • Hintergrund
  • Messgeräte (z.B. Sensoren) kommen in fast allen Aspekte des modernen Lebens vor, von der Überwachung des Betriebs von Fahrzeugen (z.B. Motoren und Leistung) über Produktionsanlagen und -vorgänge bis hin zu Stromverteilungsnetzen, Verkehrssteuerung und Telekommunikationsnetzen. Die technischen Daten, die bei dieser Überwachung anfallen, sind von entscheidender Bedeutung, um diese komplexen Maschinen, Strukturen und Anlagen so zu verwalten, dass sie effizienter und sicherer werden. Das Aufkommen der „Big Data“-Analytik ist mit dem exponentiellen Wachstum dieser technischen Daten Hand in Hand gegangen.
  • Die Fähigkeit, aus der Analyse solcher technischen Datensätze Nutzen zu ziehen, hängt jedoch von der Genauigkeit und Zuverlässigkeit der Daten selbst ab. Wenn die analysierten Daten von schlechter Qualität sind, dann sind es auch die Entscheidungen, die auf der Grundlage der Ergebnisse dieser Analyse getroffen werden. Um ein altes Sprichwort zu zitieren: „Garbage in; Garbage out“.
  • Bei allen Messgeräten, egal wie ausgeklügelt sie sind, wird die „Messung“ niemals mit der „Messgröße“ identisch sein. In Anlehnung an die Standardterminologie der Metrologie wird der wahre Wert des Eingangssignals, das von einem Messgerät gemessen wird, als „Messgröße“ bezeichnet. In ähnlicher Weise wird die Schätzung der Messgröße, die als Ergebnis eines Messvorgangs durch ein Messgerät erhalten wird, als „Messung“ bezeichnet.
  • Diese Differenz zwischen dem Wert der „Messgröße“ und dem Wert der „Messung“ ist entweder auf Störungen im Messgerät/Sensor (z.B. Schaltungsrauschen wie Johnson-Nyquist-Rauschen oder zufälliges Telegrafenrauschen oder Wandlerdrift) oder auf Eigenschaften der Umgebung zurückzuführen, in der die Messung oder Erfassung erfolgt (z.B. bei LIDAR der so genannte „Multipfad“, der zu anomalen Messwerten führt).
  • Das Rauschen des Messgeräts/Sensors und die Messfehler, die auf die Umgebung oder andere, nicht vom Messgerät abhängige Faktoren zurückzuführen sind, können zusammen als „Messunsicherheit“ bezeichnet werden.
  • Die Kenntnis der Messunsicherheit, die mit einem technischen Datensatz assoziiert ist, ermöglicht es dem Benutzer, sich über die Unsicherheit und somit die Zuverlässigkeit der Analyseergebnisse und der auf der Grundlage dieser Daten getroffenen Entscheidungen zu informieren. Die Unkenntnis dieser Messunsicherheit kann zu Fehlentscheidungen führen. Dies kann sicherheitskritisch sein und ist von größter Bedeutung, wenn die fragliche Entscheidung von einer Maschine getroffen wird (z.B. autonomes Fahrzeug, ein automatisches Flugzeugsteuerungssystem, ein automatisches Ampelsystem usw.), die nicht in der Lage ist, akzeptable Risikobewertungen vorzunehmen.
  • Die vorliegende Erfindung wurde in Anbetracht der obigen Überlegungen entwickelt.
  • Zusammenfassung der Erfindung
  • Unsichere Daten sind allgegenwärtig. Ein gängiges Beispiel sind Sensormessungen, bei denen die Natur physikalischer Messungen bedeutet, dass immer ein gewisser Grad an Unsicherheit zwischen dem aufgezeichneten Wert (der Messung) und der gemessenen Größe (der Messgröße) besteht. Diese Form der Messunsicherheit wird oft durch wiederholte Messungen mit nominell festgelegter Messgröße und Beobachtung der Schwankungen zwischen den Messungen mit Hilfe statistischer Analysen quantifiziert. Eine solche Unsicherheit in Werten, die aus unvollständigen Informationen über die Werte resultiert, die sie annehmen sollten, ist in modernen Computersystemen von zunehmender Bedeutung. Moderne Computerarchitekturen verfügen weder über eine Unterstützung für die effiziente Darstellung von Unsicherheiten, geschweige denn für die Arithmetik und den Kontrollfluss solcher Werte. Heutige Computerarchitekturen stellen unsichere Werte mit Einzelpunktwerten oder „Partikel“-Werten dar (d.h. Daten ohne zugehörige Unsicherheitsverteilung), wobei üblicherweise der Mittelwert als Repräsentation für die Verwendung in der Berechnung genommen wird. Der Kürze halber bezeichnen wir im Folgenden Einzelpunktwerte (d.h. Daten ohne zugehörige Verteilung) als „Partikel“-Werte.
  • Die Erfindung stellt ein Kodierungsverfahren zum Kodieren von Informationen innerhalb einer Datenstruktur für Daten, die sich auf Unsicherheitsdaten aus der realen Welt beziehen (z.B. funktionale Daten, die mit Messwerten von einem Sensor assoziiert sind, oder Werte, die mit dem Zustand eines physikalischen Systems assoziiert sind), zur Verfügung, um die Informationen effizient zu speichern (z.B. physisch in einer Registerdatei, in einem Pufferspeicher oder einem anderen Speicher) und/oder die gespeicherten Informationen durch nachfolgende Berechnungen effizient zu propagieren.
  • Die vorliegende Erfindung kann Verteilungsinformationen/-daten (z.B. Wahrscheinlichkeitsverteilungen, Häufigkeitsverteilungen usw.) kodieren, darstellen und verbreiten, die die Unsicherheit in Messdaten angeben, die von einem Messgerät (z.B. einem Sensor) aufgenommen wurden, oder in Werten, die mit dem Zustand eines physikalischen Systems assoziiert sind.
  • Die technischen Überlegungen, die der Kodierungsmethode und der von ihr erzeugten Datenstruktur zugrunde liegen, beziehen sich auf die beabsichtigte Verwendung der kodierten Daten: nämlich in Berechnungen, die an Verteilungen durchgeführt werden, die die Unsicherheit von Datenwerten darstellen. Diese Überlegungen ermöglichen es einer Rechnerarchitektur, effizient mit Parametern innerhalb der Datenstruktur zu arbeiten, die eine Wahrscheinlichkeitsverteilung kodieren, welche die Unsicherheit in realen Daten beschreibt. Das Ergebnis ist eine effiziente Methode zur Erzeugung neuer Parameter, die konsistent sind mit einem gemeinsamen Datenstrukturformat und gemeinsamen Anforderungen entsprechen und die eine Wahrscheinlichkeitsverteilung kodieren, die das Ergebnis der Anwendung einer arithmetischen Operation auf zwei (oder mehr) andere Wahrscheinlichkeitsverteilungen darstellt. Auf diese Weise können weitere derartige Berechnungen auf die neuen Parameter in konsistenter Weise angewendet werden, wenn die Unsicherheit in den durch Anwendung weiterer arithmetischer Operationen berechneten Größen berechnet wird. Folglich können Berechnungen, die an zwei oder mehr „Partikel“-Werten durchgeführt werden, um einen neuen „Partikel“-Wert zu erhalten, auch gleichzeitig an den entsprechenden Unsicherheitsverteilungen der zwei oder mehr „Partikel“-Werte durchgeführt werden, um eine neue Unsicherheitsverteilung zu erhalten, die mit dem neuen „Partikel“-Wert effizient und auf konsistente Weise assoziiert ist.
  • In einem ersten Aspekt kann die Erfindung ein computerimplementiertes Verfahren zur Kodierung und Verarbeitung von Datenverteilungen bereitstellen, wobei das Verfahren umfasst:
    • Erhalten eines ersten Satzes von Datenelementen;
    • Erhalten eines zweiten Satzes von Datenelementen;
    • Erzeugen eines ersten Tupels mit Parametern, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert;
    • Erzeugen eines zweiten Tupels mit Parametern, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert, wobei die zur Kodierung der Verteilung der Datenelemente des zweiten Satzes verwendeten Parameter die gleichen sind wie die zur Kodierung der Verteilung der Datenelemente des ersten Satzes verwendeten Parameter;
    • Erzeugen eines dritten Tupels unter Verwendung von Parametern, die in dem ersten Tupel enthalten sind, und unter Verwendung von Parametern, die in dem zweiten Tupel enthalten sind, wobei das dritte Tupel Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die das Ergebnis der Anwendung einer arithmetischen Operation auf die erste Wahrscheinlichkeitsverteilung und die zweite Wahrscheinlichkeitsverteilung darstellt;
    • Ausgeben des dritten Tupels.
  • Auf diese Weise bietet jedes Tupel eine Datenstruktur, in der Verteilungsinformationen kodiert sind, die eine Wahrscheinlichkeitsverteilung darstellen (z.B. die Unsicherheit in einem zugehörigen „Partikel“-Wert). Ein Verweis auf ein „Tupel“ kann als Verweis auf eine Datenstruktur betrachtet werden, die aus mehreren Teilen besteht, die eine geordnete Datenmenge definieren, die einen Datensatz darstellt, wie es in der Fachwelt allgemein üblich ist. In der Mathematik ist ein Tupel eine endliche geordnete Liste (Sequenz) von Elementen, z.B. eine Sequenz (oder geordnete Liste) von n Elementen, wobei n eine nicht negative ganze Zahl ist. Die Parameter, die in den ersten, zweiten und dritten Tupeln gemäß bevorzugten Beispielen der Erfindung enthalten sind, sind daher gemäß einer gemeinsamen Parameterordnung oder - sequenz geordnet, die ein Computersystem, das das Verfahren implementiert, steuert/anweist, wie neue Verteilungsdaten (d.h. ein neues Tupel, konsistent kodiert) zu berechnen sind, die einem neuen „Partikel“-Datenelement zugeordnet werden sollen, das erzeugt wird, indem arithmetische Operationen an zwei oder mehr anderen „Partikel“-Datenelementen durchgeführt werden, die jeweils ihre eigenen zugehörigen Verteilungsdaten (d.h. ein entsprechendes Tupel, konsistent kodiert) haben. Diese kodierten Datenstrukturen (Tupel) sind von den Daten (Verteilungen) selbst zu unterscheiden. Die Datenstruktur kann von dem Computersystem, das das Verfahren durchführt, automatisch erkannt werden, so dass es entsprechend arbeiten kann. Auf diese Weise besteht ein kausaler Zusammenhang zwischen der der Datenstruktur zugrundeliegenden Kodierung, der Interpretation der Datenstruktur durch ein Computersystem zur Durchführung von Berechnungen unter Verwendung der Daten innerhalb der Datenstruktur und der vom Computersystem gewonnenen technischen/operativen Effizienz bei der Berechnung neuer Verteilungsinformationen für ein berechnetes neues „Partikel“-Datenelement.
  • Eine „Variable“ kann als ein Symbol betrachtet werden, das als Platzhalter für den Ausdruck von Größen dient, die variieren oder sich ändern können. So kann eine „Variable“ zum Beispiel das Argument einer Funktion oder ein beliebiges Element einer Menge darstellen. In der Mathematik kann ein Parameter als eine Variable betrachtet werden, für die der Bereich möglicher Werte eine Sammlung verschiedener Fälle in einem Problem identifiziert. So ist beispielsweise jede Gleichung, die durch Parameter ausgedrückt wird, eine parametrische Gleichung. Zum Beispiel ist die allgemeine Gleichung einer Geraden in Form von Steigung und Achsenabschnitt, y = mx + c, in der m und c Parameter sind, ein Beispiel für eine parametrische Gleichung. Bei verschiedenen Instanzen dieser Gleichung kann man sagen, dass sie „dieselben“ Parameter verwenden (d.h. einen Steigungsparameter m und einen Achsenabschnitt c), unabhängig davon, ob die tatsächlichen Werte dieser Parameter gleich sind oder nicht: erste Instanz, y = m1x + c1 und zweite Instanz, y = m2x + c2 verwenden dieselben Parameter (Steigung/Abschnitt), unabhängig davon, ob die tatsächlichen Werte von m1 und m2 gleich sind (d.h. m1 = m2) und ob die tatsächlichen Werte von c1 und c2 gleich sind (d.h. c1 = c2). In diesem Sinne kann man sagen, dass zwei Tupel, die Parameter enthalten, die eine entsprechende Wahrscheinlichkeitsverteilung kodieren, „dieselben“ Parameter verwenden (z.B. dieselbe Verwendung von Parametern haben). Als nicht einschränkendes Beispiel, auf das weiter unten näher eingegangen wird, können die zur Kodierung einer Verteilung von Datenelementen verwendeten Parameter die Parameter der „Position“, xi, der Dirac-δ Funktionen und „Wahrscheinlichkeit“ pi sein. Verschiedene Verteilungen für verschiedene Datensätze können diese beiden Parameter verwenden und somit „dieselben“ Parameter wie jede andere verwenden. Natürlich sind die tatsächlichen Werte, die diesen Parametern (Position, Wahrscheinlichkeit) für die Daten in jedem Satz zugewiesen werden, wie sie in dieser gemeinsamen parametrischen Form definiert sind, im Allgemeinen nicht die gleichen. Die Verwendung derselben Parameter ermöglicht es der Methode, dasselbe Darstellungsformat zu erreichen, indem die Tupel zur Kodierung der Verteilung der Datenelemente verwendet werden, und auf der Grundlage dieses Formats kann dasselbe Darstellungsformat für die Verteilungen selbst reproduziert werden.
  • Vorzugsweise umfasst das Ausgeben des dritten Tupels eines oder mehrere der folgenden Aspekte: Speichern des dritten Tupels in einem Speicher (z.B. in einer Registerdatei, in einem Pufferspeicher oder einem anderen Speicher); Übertragen eines Signals, das das dritte Tupel übermittelt (z.B. über ein elektrisches Signal oder über ein elektromagnetisches Signal/Trägerwelle). Dementsprechend verbessert das Kodierverfahren die Effizienz der Speicherung und/oder Übertragung der Wahrscheinlichkeitsverteilungsinformationen, die durch die Datenstruktur des dritten Tupels kodiert werden.
  • Gemäß dem Verfahren kann die arithmetische Operation eine oder mehrere der folgenden Operationen umfassen: Addition, Subtraktion, Multiplikation, Division oder komplexere arithmetische Operationen, z.B. verschmolzene Multiplikation und Addition oder Quadratwurzel, oder eine beliebige bivariate Operation, z.B. Potenzierung, indem sie in Form der vorgenannten arithmetischen Operationen ausgedrückt werden, wie es für den Fachmann ohne weiteres erkennbar ist. So wie ein neues „Partikel“-Datenelement durch die Durchführung solcher arithmetischer Operationen an zwei oder mehr anderen „Partikel“-Datenelementen erzeugt werden kann, die jeweils ihre eigenen zugehörigen Verteilungsdaten haben, so kann auch eine neue Verteilungsinformation (z.B. das dritte Tupel) für das neue „Partikel“-Datenelement berechnet werden, indem dieselben arithmetischen Operationen an den Verteilungsdaten durchgeführt werden, die den zwei oder mehr anderen „Partikel“-Datenelementen (z.B. dem ersten und zweiten Tupel) zugeordnet sind.
  • Das dritte Tupel kann Parameter enthalten, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert, wobei die zur Kodierung der Verteilung der Datenelemente des dritten Satzes verwendeten Parameter die gleichen sind wie die zur Kodierung der Verteilung der Datenelemente des ersten Satzes verwendeten Parameter. Dementsprechend kann das dritte Tupel eine Datenstruktur sein, die Parameter enthält, die nach einer Parameterordnung oder -sequenz geordnet sind, die mit der im ersten Tupel verwendeten Parameterordnung oder -sequenz übereinstimmt. Dies hat den Vorteil, dass eine gemeinsame Datenstruktur im ersten, zweiten und dritten Tupel bereitgestellt wird, wenn eines oder mehrere dieser Tupel anschließend zur Steuerung/Anweisung eines Computersystems verwendet werden, um weitere neue Verteilungsdaten (d.h. ein neues Tupel, konsistent kodiert) zu berechnen, die einem weiteren neuen „Partikel“-Datenelement zugeordnet werden sollen, das erzeugt wird, indem arithmetische Operationen an zwei oder mehr „Partikel“-Datenelementen durchgeführt werden, die jeweils ihre eigenen zugehörigen Verteilungsdaten (d.h. ein entsprechendes Tupel, konsistent kodiert) haben.
  • Vorzugsweise umfasst der erste Datensatz Samples einer ersten Zufallsvariablen und der zweite Datensatz Samples einer zweiten Zufallsvariablen.
  • Vorzugsweise umfasst das Verfahren ein Ausgeben des ersten Tupels durch einen oder mehrere der folgenden Aspekte: Speichern des ersten Tupels in einem Speicher (z.B. in einer Registerdatei, in einem Pufferspeicher oder einem anderen Speicher); Übertragen eines Signals, das das erste Tupel übermittelt (z.B. über ein elektrisches Signal oder über ein elektromagnetisches Signal/Trägerwelle). Vorzugsweise umfasst das Verfahren ein Ausgeben des zweiten Tupels durch einen oder mehrere der folgenden Aspekte: Speichern des zweiten Tupels in einem Speicher (z.B. in einer Registerdatei, in einem Pufferspeicher oder einem anderen Speicher); Übertragen eines Signals, das das zweite Tupel übermittelt (z.B. über ein elektrisches Signal oder über ein elektromagnetisches Signal/Trägerwelle).
  • Das Verfahren kann ein Erhalten des ausgegebenen ersten Tupels durch einen oder mehrere der folgenden Aspekte umfassen: Abrufen des ersten Tupels aus einem Speicher; Empfangen eines Signals, das das erste Tupel übermittelt. Das Verfahren kann ein Erhalten des ausgegebenen zweiten Tupels durch einen oder mehrere der folgenden Aspekte umfassen: Abrufen des zweiten Tupels aus einem Speicher; Empfangen eines Signals, das das zweite Tupel übermittelt. Das Verfahren kann ein Erzeugen des dritten Tupels unter Verwendung von Parametern umfassen, die in dem erhaltenen ersten Tupel und in dem erhaltenen zweiten Tupel enthalten sind.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position der Datenelemente innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Bei den Positionen der Datenelemente kann es sich zum Beispiel um Positionen von Dirac-Delta-Funktionen handeln. Vorzugsweise enthält das zweite Tupel Parameter, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Bei den Positionen der Datenelemente kann es sich zum Beispiel um Positionen von Dirac-Delta-Funktionen handeln. Vorzugsweise enthält das dritte Tupel Parameter, die die Position von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert. Bei den Positionen der Datenelemente kann es sich beispielsweise um Positionen von Dirac-Delta-Funktionen handeln.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Beispielsweise kann die im ersten Tupel kodierte Wahrscheinlichkeit eines Datenelements eine Amplitude oder eine Gewichtung einer Dirac-Delta-Funktion sein, die entsprechend einem oder mehreren Parametern, die die Position des Datenelements kodieren, positioniert werden kann. Vorzugsweise enthält das zweite Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Beispielsweise kann die im zweiten Tupel kodierte Wahrscheinlichkeit eines Datenelements eine Amplitude oder eine Gewichtung einer Dirac-Delta-Funktion sein, die entsprechend einem oder mehreren Parametern, die die Position des Datenelements kodieren, positioniert werden kann. Vorzugsweise enthält das dritte Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert. Beispielsweise kann die im dritten Tupel kodierte Wahrscheinlichkeit eines Datenelements eine Amplitude oder eine Gewichtung einer Dirac-Delta-Funktion sein, die entsprechend einem oder mehreren Parametern, die die Position des Datenelements kodieren, positioniert werden kann.
  • Vorzugsweise enthält das erste Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisieren. Vorzugsweise enthält das zweite Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisieren. Vorzugsweise enthält das dritte Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des ersten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des dritten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen.
  • Vorzugsweise ist das erste Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das zweite Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das dritte Tupel ein M-Tupel, für das N2/2 < M < 2N2 ist, wobei N > 1 eine ganze Zahl ist. Wenn zum Beispiel N der Speicherverbrauch einer bestimmten Darstellungsmethode mit Ndd Dirac-Deltas ist, für die weiter unten näher beschriebenen SoDD-basierten Darstellungen (d.h. alle außer CMR), kodiert das anfängliche M-Tupel, das als arithmetische Propagierung der N-Tupel der Eingabe berechnet wird, N d d 2
    Figure DE112022002790T5_0001
    Dirac-Deltas mit 2 N d d 2
    Figure DE112022002790T5_0002
    Zahlen (außer bei PQHR, für die N d d 2
    Figure DE112022002790T5_0003
    Zahlen ausreichen). Mit anderen Worten: M = 2 N d d 2
    Figure DE112022002790T5_0004
    (außer für PQHR). Die folgende Tabelle 1 zeigt die Beziehung zwischen N und Ndd für eine bestimmte Methode. Für TTR und MQHR ist N = 2Ndd, was M = N d d 2 / 2
    Figure DE112022002790T5_0005
    impliziert.
  • Das Verfahren kann die Reduzierung der Größe des dritten Tupels (M-Tupel-Darstellung) auf die gleiche Größe (N-Tupel) wie das erste Tupel und das zweite Tupel umfassen, um ein reduziertes drittes Tupel zu erhalten, das ein N-Tupel ist. Dies hat den Vorteil, dass die Tupel, mit denen man rechnet, eine feste Größe haben (d.h. alle sind N-Tupel), um weitere Berechnungen mit den abgeleiteten Tupeln (d.h. den Ergebnissen der Arithmetik auf Verteilungen) zu ermöglichen. Dies kann dadurch erreicht werden, dass die durch das dritte Tupel dargestellten Daten als ein neuer „erhaltener“ Datensatz betrachtet werden (d.h. ein erhaltener dritter Satz von Datenelementen, der als Ergebnis der arithmetischen Operation erhalten wurde) und daraus ein „kompaktes“ drittes Tupel erzeugt wird, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des dritten Satzes charakterisiert. Die Parameter, die in dem kompaktes dritten Tupel verwendet werden, um die Verteilung der Datenelemente des dritten Satzes zu kodieren, können nicht nur dieselben sein wie die Parameter, die verwendet werden, um die Verteilung der Datenelemente des ersten Satzes zu kodieren, sondern das kompakte dritte Tupel kann auch so konstruiert werden, dass es dieselbe Größe hat (d.h. ein N-Tupel; die Größe wird von M auf N reduziert) wie sowohl das erste als auch das zweite Tupel. Auf diese Weise kann jedes der hierin offenbarten Verfahren und Geräte zur Erzeugung eines Tupels aus einem erhaltenen Satz von Datenelementen auch auf das Ergebnis der Anwendung der arithmetischen Operation auf Verteilungen angewandt werden, damit dieses Ergebnis als Tupel derselben Größe dargestellt werden kann wie die Tupel, die den Datensatz repräsentieren, auf den die Arithmetik angewendet wurde. Die Bezugnahme auf das dritte Tupel kann gegebenenfalls als Bezugnahme auf ein „kompaktes“ drittes Tupel betrachtet werden.
  • In einem anderen Aspekt kann die Erfindung ein Computerprogrammprodukt bereitstellen, das ein Computerprogramm umfasst, das, wenn es auf einem Computer ausgeführt wird, das Verfahren gemäß der oben beschriebenen Erfindung in seinem ersten Aspekt implementiert.
  • In einem zweiten Aspekt kann die Erfindung eine Vorrichtung zur Implementierung einer Kodierung und Verarbeitung von Datenverteilungen bereitstellen, wobei die Vorrichtung umfasst:
    • einen Speicher zum Speichern eines ersten Satzes von Datenelementen und eines zweiten Satzes von Datenelementen;
    • einen Prozessor, der so konfiguriert ist, dass er die folgenden Verarbeitungsschritte durchführt:
      • Erzeugen eines ersten Tupels, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert;
      • Erzeugen eines zweiten Tupels, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert, wobei die zur Kodierung der Verteilung der Datenelemente des zweiten Satzes verwendeten Parameter dieselben sind wie die zur Kodierung der Verteilung der Datenelemente des ersten Satzes verwendeten Parameter;
      • Erzeugen eines dritten Tupels unter Verwendung von Parametern, die in dem ersten Tupel enthalten sind, und unter Verwendung von Parametern, die in dem zweiten Tupel enthalten sind, wobei das dritte Tupel Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die das Ergebnis der Anwendung einer arithmetischen Operation auf die erste Wahrscheinlichkeitsverteilung und die zweite Wahrscheinlichkeitsverteilung darstellt; und
      • Ausgeben des dritten Tupels.
  • Vorzugsweise kann der Prozessor als Mikroprozessor oder als dedizierte digitale Logikschaltung oder als analoge Schaltung implementiert werden, der/die zur Durchführung der Verarbeitungsschritte konfiguriert ist. Vorzugsweise ist die Vorrichtung so konfiguriert, dass sie das dritte Tupel durch einen oder mehrere der folgenden Aspekte ausgibt: Speichern des dritten Tupels in einem Speicher; Senden eines Signals, das das dritte Tupel übermittelt.
  • Vorzugsweise ist die Vorrichtung so konfiguriert, dass sie das erste Tupel durch einen oder mehrere der folgenden Aspekte ausgibt: Speichern des ersten Tupels in einem Speicher; Übertragen eines Signals, das das erste Tupel übermittelt. Vorzugsweise ist die Vorrichtung so konfiguriert, dass sie das zweite Tupel durch einen oder mehrere der folgenden Aspekte ausgibt: Speichern des zweiten Tupels in einem Speicher; Übertragen eines Signals, das das zweite Tupel übermittelt.
  • Die Vorrichtung ist so konfiguriert, dass sie das erste Tupel durch einen oder mehrere der folgenden Aspekte erhält: Abrufen des ersten Tupels aus einem Speicher; Empfangen eines Signals, das das erste Tupel übermittelt. Die Vorrichtung ist so konfiguriert, dass sie das zweite Tupel durch einen oder mehrere der folgenden Aspekte erhält: Abrufen des zweiten Tupels aus einem Speicher; Empfangen eines Signals, das das zweite Tupel übermittelt. Die Vorrichtung ist so konfiguriert, dass sie das dritte Tupel unter Verwendung von Parametern erzeugt, die in dem erhaltenen ersten Tupel und in dem erhaltenen zweiten Tupel enthalten sind.
  • Die Vorrichtung kann so konfiguriert sein, dass sie die Ausgabe des ersten Tupels durch einen oder mehrere der folgenden Aspekte ausführt: Speichern des ersten Tupels in einem Speicher; Übertragen eines Signals, das das erste Tupel übermittelt. Die Vorrichtung kann so konfiguriert sein, dass sie die Ausgabe des zweiten Tupels durch einen oder mehrere der folgenden Aspekte ausführt: Speichern des zweiten Tupels in einem Speicher; Übertragen eines Signals, das das zweite Tupel übermittelt. Die Vorrichtung kann so konfiguriert sein, dass sie die Ausgabe des dritten Tupels durch einen oder mehrere der folgenden Aspekte ausführt: Speichern des dritten Tupels in einem Speicher; Übertragen eines Signals, das das dritte Tupel übermittelt.
  • Die Vorrichtung kann so konfiguriert sein, dass sie das Erhalten des ersten Tupels durch einen oder mehrere der folgenden Aspekte durchführt: Abrufen des ersten Tupels aus einem Speicher; Empfangen eines Signals, das das erste Tupel übermittelt. Die Vorrichtung kann so konfiguriert sein, dass sie das Erhaltens des zweiten Tupels durch einen oder mehrere der folgenden Aspekte durchführt: Abrufen des zweiten Tupels aus einem Speicher; Empfangen eines Signals, das das zweite Tupel übermittelt.
  • Die Vorrichtung kann so konfiguriert sein, dass sie eine oder mehrere der folgenden arithmetischen Operationen durchführt: Addition, Subtraktion, Multiplikation, Division.
  • Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert, wobei die zur Kodierung der Verteilung der Datenelemente des dritten Satzes verwendeten Parameter dieselben sind wie die zur Kodierung der Verteilung der Datenelemente des ersten Satzes verwendeten Parameter.
  • Die Vorrichtung kann so konfiguriert sein, dass das erste Tupel Parameter enthält, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das zweite Tupel Parameter enthält, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel Parameter enthält, die die Position von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Die Vorrichtung kann so konfiguriert sein, dass das erste Tupel Parameter enthält, die die Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das zweite Tupel Parameter enthält, die die Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel Parameter enthält, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Die Vorrichtung kann so konfiguriert sein, dass das erste Tupel Parameter enthält, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das zweite Tupel Parameter enthält, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert. Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel Parameter enthält, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Die Vorrichtung kann so konfiguriert sein, dass das erste Tupel Parameter enthält, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des ersten Satzes charakterisieren. Die Vorrichtung kann so konfiguriert sein, dass das zweite Tupel Parameter enthält, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des zweiten Satzes charakterisieren. Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel Parameter enthält, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente eines dritten Satzes von Datenelementen charakterisiert.
  • Die Vorrichtung kann so konfiguriert sein, dass die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des ersten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst. Die Vorrichtung kann so konfiguriert sein, dass die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des zweiten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst. Die Vorrichtung kann so konfiguriert sein, dass die Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des dritten Satzes charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst.
  • Die Vorrichtung kann so konfiguriert sein, dass das erste Tupel ein N-Tupel ist, bei dem N > 1 eine ganze Zahl ist. Die Vorrichtung kann so konfiguriert sein, dass das zweite Tupel ein N-Tupel ist, bei dem N > 1 eine ganze Zahl ist. Die Vorrichtung kann so konfiguriert sein, dass das dritte Tupel ein M-Tupel ist, für das N2/2 < M < 2N2 ist, wobei N > 1 eine ganze Zahl ist.
  • In einem anderen Aspekt kann die Erfindung einen Computer bereitstellen, der mit einem Computerprogramm programmiert ist, das, wenn es auf dem Computer ausgeführt wird, das oben beschriebene Verfahren gemäß dem zweiten Aspekt der Erfindung implementiert.
  • Die Erfindung umfasst die Kombination der beschriebenen Aspekte und bevorzugten Merkmale, sofern eine solche Kombination nicht eindeutig unzulässig ist oder ausdrücklich vermieden wird. Dies bedeutet, dass beispielsweise die Erfindung in ihrem ersten Aspekt (Verfahren) gemäß der Erfindung in ihrem dritten Aspekt (siehe unten) implementiert werden kann, indem eine Mikroarchitektur zur Implementierung des Verfahrens bereitgestellt wird. In ähnlicher Weise kann die Erfindung in ihrem zweiten Aspekt (Vorrichtung) gemäß der Erfindung in ihrem vierten Aspekt (unten) als Mikroarchitektur implementiert werden.
  • Computer rechnen mit punktwertigen Zahlen. Die Daten, die in den heutigen Computersystemen vorherrschen, stammen jedoch aus Messverfahren wie z.B. von Sensoren. Alle Messungen sind von Natur aus unsicher, und diese Unsicherheit wird oft statistisch charakterisiert und bildet die aleatorische Unsicherheit. Darüber hinaus umfassen viele andere moderne Anwendungen von Wahrscheinlichkeitsverteilungen, wie z.B. das maschinelle Lernen, Modelle, die ebenfalls eine inhärente epistemische Unsicherheit aufweisen (z.B. bei den Gewichten eines neuronalen Netzes). Hard- und Software können diese Messunsicherheit ausnutzen, um die Leistung zu verbessern, aber auch, um Leistung gegen Stromverbrauch oder Qualität der Ergebnisse einzutauschen. All diese potenziellen Anwendungen können jedoch von effektiveren Methoden zur Darstellung beliebiger Wahrscheinlichkeitsverteilungen in der realen Welt und zur Propagierung dieser Verteilungen durch die Arithmetik profitieren.
  • Die Erfinder haben erkannt, dass jede reelle Zahl im Bereich einer Verteilung durch ein Dirac-Delta mit einer Wahrscheinlichkeitsmasse beschrieben werden kann, die am Wert der reellen Zahl liegt. Diese Darstellung einer Verteilung in Form von Dirac-Deltas innerhalb ihrer Domäne unterscheidet sich von der einer Wahrscheinlichkeitsmassenfunktion (PMF), bei der die Domäne der Verteilung per Definition diskret-wertig ist und Integrale durch Summen ersetzt werden können. Da es sich bei der Dirac-Delta-Verteilung nicht um eine Funktion, sondern um eine Verteilung handelt, unterscheidet sich die Darstellung von Verteilungen als eine Sammlung von Dirac-Deltas auch von dem Konzept einer Wahrscheinlichkeitsdichtefunktion (PDF). Die Erfinder bezeichnen daher die Darstellung, die eine Summe von Dirac-Deltas umfasst, als Wahrscheinlichkeitsdichteverteilung (PDD).
  • Wahrscheinlichkeitsdichteverteilungen (PDDs) und endlich-dimensionale Darstellungen
  • Im Allgemeinen wird eine reellwertige Zufallsvariable durch ihre für die reellen Zahlen definierte PDD charakterisiert. Da wir uns mit Computerdarstellungen befassen, wird die Information über eine solche Wahrscheinlichkeitsverteilung durch endlich viele reelle Zahlendarstellungen dargestellt. Da reelle Zahlendarstellungen endlicher Größe (z.B. die 32-Bit-Floating Point-Darstellung) eine diskrete und endliche Darstellung der reellen Linie bieten, ist es üblich, mit Wahrscheinlichkeitsmassenfunktionen (PMFs) anstelle von PDDs zu arbeiten. In der vorliegenden Offenbarung ignorieren wir jedoch den Fehler in der Darstellung der reellen Zahlen und gehen davon aus, dass jede reelle Zahl exakt dargestellt werden kann. Damit entfällt der diskrete Charakter aller zulässigen Werte, die eine Zufallsvariable annimmt, und folglich verwenden wir einen Formalismus, der PDDs anstelle von PMFs verwendet. Auf diese Weise kann man die endlichen Fähigkeiten eines Computers bei der Darstellung eines gegebenen abstrakten PDDs kapseln, indem man es mit endlich vielen, sagen wir N, (exakt dargestellten) reellen Zahlen darstellt, die wir als eine endlich-dimensionale Darstellung der Größe N bezeichnen werden.
  • Die Berechnung auf PDDs erfordert erstens einen Algorithmus zur Berechnung der endlich-dimensionalen Darstellung aus einer gegebenen Beschreibung der PDD einer Zufallsvariablen und zweitens einen Algorithmus zur Propagierung solcher Darstellungen unter gegebenen arithmetischen Operationen. In der vorliegenden Offenbarung werden diese beiden Arten von Algorithmen als Methoden der endlich-dimensionalen Darstellung bzw. als Methoden der arithmetischen Propagierung bezeichnet. In der vorliegenden Offenbarung werden Beispiele für solche Methoden zur Berechnung mit Zufallsvariablen vorgestellt.
  • Die Beschreibung der PDD kann ein analytischer Ausdruck sein oder in Form von Samples aus einer Verteilung erfolgen, die ihrerseits zu einer diskreten PDD führt. Die vorliegende Offenbarung stellt Methoden vor, die allgemein für die Berechnung von Darstellungen aus jeder PDD, ob kontinuierlich oder diskret, geeignet sind. Die vorliegende Offenbarung ist relevant in ihrer Anwendung auf Berechnungen bei aleatorischer Unsicherheit in physikalischen Messungen (z.B. verrauschte Sensoren in autonomen Fahrzeugen) und epistemischer Unsicherheit (z.B. Gewichte in einem neuronalen Netz). Die vorliegende Offenbarung ist relevant für die Anwendung auf Darstellungen, die aus Samples einer diskreten Verteilung berechnet werden. Die vorliegende Offenbarung betrachtet die arithmetische Propagierung im Fall von voneinander unabhängigen Zufallsvariablen.
  • Reellwertige Zufallsvariablen als Verallgemeinerungen der reellen Zahlen.
  • Im verallgemeinerten Kontext der reellwertigen Zufallsvariablen kann eine gegebene reelle Zahl x0 ∈ ℝ als eine Zufallsvariable betrachtet werden, deren PDD in einem einzigen Punkt konzentriert ist, nämlich bei x = x0. Die PDD einer solchen punktwertigen Variablen ist durch die Dirac-Delta-Verteilung gegeben. Sei C ( )
    Figure DE112022002790T5_0006
    der Raum der stetigen Funktionen auf IEB. Wir bezeichnen die beschränkte lineare Funktion δ : C ( )
    Figure DE112022002790T5_0007
    definiert durch δ ( ƒ ) = ƒ ( x ) δ ( x ) d x : ƒ ( 0 ) , ƒ C ( )
    Figure DE112022002790T5_0008
    als die Dirac-Delta-Verteilung. Es ist zu beachten, dass δ keine Funktion ist, wie die herkömmliche Integralschreibweise irreführenderweise vermuten lässt. Dennoch werden wir die Notation x0 :=: 6 (x - x0) austauschbar für eine Dirac-Delta-Verteilung mit Auswertung bei x = x0 verwenden, da diese Notation mit der Anwendung einer Variablenänderung in der Integralschreibweise übereinstimmt. Von nun an betrachten wir alle reellen Zahlen x0 ∈ ℝ als punktwertige Zufallsvariablen mit der zugehörigen PDD, die durch δx0 gegeben ist.
  • Hierin bezeichnen wir eine PDD fX als eine „Summe von Dirac-Deltas“ (SoDD)-Darstellung, wenn sie die folgende Form hat: f X ( x ) = n = 1 N p n δ ( x x n )
    Figure DE112022002790T5_0009
    wobei pn ∈ [0,1] ist mit: n = 1 N p n = 1
    Figure DE112022002790T5_0010
  • Endlich-dimensionale Darstellungen
  • Um einige Beispiele zum besseren Verständnis der Erfindung zu geben, werden in der vorliegenden Offenbarung fünf endlich-dimensionale Darstellungsmethoden vorgestellt. Es werden Algorithmen vorgestellt, um die Darstellung für eine bestimmte Methode aus einer bestimmten PDD zu berechnen, sowie Algorithmen zur Ableitung einer approximativen PDD aus einer bestimmten endlich-dimensionalen Darstellung zusammen mit Regeln für ihre Propagierung bei arithmetischen Operationen der Addition und Multiplikation.
  • Endlich-dimensionale Darstellungsmethoden
  • Für eine gegebene endlich-dimensionale Darstellungsmethode
    Figure DE112022002790T5_0011
    ist eine Darstellung R M N
    Figure DE112022002790T5_0012
    eine Abbildung von Zufallsvariablen (oder ihren PDDs) auf ℝN, wobei wir N die Dimension der Darstellung nennen. Diese Offenbarung beschreibt für jede Methode
    Figure DE112022002790T5_0013
    die entsprechende Darstellung R M N .
    Figure DE112022002790T5_0014
    Die Informationen über fX können durch Datensamples geliefert werden.
  • Für eine gegebene SoDD-basierte Darstellung bezeichnen wir mit Ndd die Anzahl der Dirac-Deltas in der entsprechenden SoDD-Verteilung. Ndd ist nicht dasselbe wie die Dimension N, die gleich der minimalen Anzahl von reellen Zahlen ist, die erforderlich sind, um die approximative SoDD-Verteilung im Kontext der gegebenen Darstellungsmethode zu spezifizieren. Im Allgemeinen haben wir Ndd < N. Tabelle 1 fasst die Beziehungen von Ndd zu N für die einzelnen Beispiele von SoDD-basierten Darstellungsmethoden, die hier offengelegt und im Folgenden näher erläutert werden, zusammen. Tabelle 1
    Representation Ndd Nk Ndd for N = 16
    RQHR N - 2 N d d k + 2 k
    Figure DE112022002790T5_0015
    14
    PQHR N N d d k
    Figure DE112022002790T5_0016
    16
    MQHR N/2 2 N d d k
    Figure DE112022002790T5_0017
    8
    TTR N/2 2 N d d k
    Figure DE112022002790T5_0018
    8
  • Beispiel 1: Regelmäßig-quantisierte Histogramm-Darstellung (Regularly-Quantized Histogram Representation, RQHR)
  • Diese Darstellungsmethode geht davon aus, dass der Wertebereich R(X) einer gegebenen Variablen X bekannt und endlich ist, d.h., |R(X)| < 1. Dies ist immer dann der Fall, wenn die PDD von X aus endlich vielen Samples konstruiert wird. Die zugrunde liegende Idee besteht darin, eine approximative SoDD-Verteilung zu erstellen, indem man R(X) in Ndd gleich große (regelmäßige) Intervalle unterteilt und die gegebene PDD durch ein gewichtetes Dirac-Delta in der Mitte jedes Intervalls darzustellen, wobei das Gewicht gleich der Wahrscheinlichkeitsmasse der PDD über das entsprechende Intervall ist. Wenn wir x0 := inf R(X) und lx := |R(X)|/ N definieren, dann haben die oben erwähnten regelmäßigen Intervalle die Form: I n = ( x 0 + ( n 1 ) l X ,   x 0 + n l X ) ,   1 n N d d
    Figure DE112022002790T5_0019
  • Die Wahrscheinlichkeiten pn über diese Intervalle sind gegeben durch: p n = I n f X d x , 1 n N d d
    Figure DE112022002790T5_0020
  • Dann ist die N-dimensionale regelmäßig-quantisierte Histogramm-Darstellung (RQHR) von X als das geordnete N-Tupel definiert: R RQHR N ( X ) : = ( x 0 ,   l X ,   p 1 ,   ,   p N d d )
    Figure DE112022002790T5_0021
  • Hier ist Ndd = N - 2. Die entsprechende approximative SoDD-Verteilung für die RQHR hat die Form: f ˜ X RQHR ( x ) : = n = 1 N d d p n δ ( x ( x 0 + ( 1 1 2 ) l X ) )
    Figure DE112022002790T5_0022
  • Beispiel 2: Wahrscheinlichkeitsquantisierte Histogramm-Darstellung (Probability-Quantized Histogram Representation, PQHR)
  • Wie bei der RQHR-Methode, bei der der Wertebereich von X regelmäßig quantisiert wurde, wird auch bei dieser Methode der Wertebereich in Intervalle quantisiert, wobei die Intervalle jedoch die gleiche Wahrscheinlichkeitsmasse haben.
  • Definieren wir zunächst das Intervall: I n = F X 1 ( [ n 1 N d d ,   n N d d ) ) ,   1 n N d d
    Figure DE112022002790T5_0023
  • Die Funktion F X 1
    Figure DE112022002790T5_0024
    ist die Inverse von FX, wobei FX die kumulative Verteilungsfunktion der Zufallsvariablen X ist.
  • Der erwartete Wert µXn von Xn innerhalb eines gegebenen Intervalls, dessen Wahrscheinlichkeitsmasse allen Intervallen gemeinsam ist, ist: μ X n = ( I n f X ( x ) d x ) 1 I n x f X ( x ) d x = N d d I n x f X ( x ) d x
    Figure DE112022002790T5_0025
  • Dann ist die N-dimensionale wahrscheinlichkeitsquantisierte Histogramm-Darstellung (PQHR) von X als das geordnete N-Tupel definiert: R PQHR N ( X ) : = ( μ X 1 ,   ,   μ L X N d d )
    Figure DE112022002790T5_0026
  • Hier ist Ndd = N. Die entsprechende approximative SoDD-Verteilung für die PQHR hat die Form: f ˜ X PQHR ( x ) : = 1 N d d n = 1 N d d δ μ X n
    Figure DE112022002790T5_0027
  • Beispiel 3: Momentquantisierte Histogramm-Darstellung (Moment-Quantized Histogram Representation, MQHR)
  • Bei einer Zufallsvariablen X mit PDD fX und Erwartungswerten µX sei CMFx die kumulative Momentfunktion von X, definiert durch: C M F X ( x ) = x | ξ μ X | f X ( ξ ) d ξ
    Figure DE112022002790T5_0028
  • Man beachte, dass CMFx monoton ansteigend ist und wir somit bekommen: lim x + CMF X ( x ) = TM X
    Figure DE112022002790T5_0029
  • Dabei ist TMx das Gesamtmoment von X um µX (d.h. x0 = µX) und gegeben durch: TM X ( x 0 ) : = | x x 0 | f X ( x ) d x .
    Figure DE112022002790T5_0030
  • Hier gehen wir davon aus, dass TMx endlich ist, was für die praktischen Fälle von endlich vielen aus Samples erzeugten PDDs zutrifft. Wir partitionieren den Wertebereich von X, z.B. die reelle Linie, durch Quantisierung des kumulativen Moments TMx. So definieren wir die Intervalle: I n : = CMF X 1 ( ( ( n 1 ) TM X N d d ,   n TM X N d d ) ) ,   1 n N d d
    Figure DE112022002790T5_0031
  • Wie zuvor betrachten wir den Erwartungswert von X mit X ∈ In: x n : E [ X | X I n ] = ( I n f X ( x ) d x ) 1 I n x f X ( x ) d x = 1 p n I n x f X ( x ) d x .
    Figure DE112022002790T5_0032
  • Hier ist: p n : I n f X ( x ) d x , 1 n N d d
    Figure DE112022002790T5_0033
  • Dann ist die N-dimensionale momentquantisierte Histogramm-Darstellung (MQHR) von X als das geordnete N-Tupel definiert: R MQHR N ( X ) : = ( x 1 , , x N d d , p 1 , , p N d d )
    Figure DE112022002790T5_0034
  • Hier ist Ndd = N/2. Die entsprechende approximative SoDD-Verteilung für die MQHR hat die Form: f ˜ X MQHR ( x ) : = n = 1 N d d p n δ ( x x n )
    Figure DE112022002790T5_0035
  • Beispiel 4: Teleskopmoment-Darstellung (Telescoping Torque Representation, TTR)
  • Für eine Zufallsvariable X mit PDD fX und Erwartungswert µX definieren wir: Ω : = { x : x < μ X } ,   Ω + : = { x : x μ X }
    Figure DE112022002790T5_0036
    und X : = X | X Ω , X + : = X | X Ω +
    Figure DE112022002790T5_0037
  • Der folgende Algorithmus liegt der TTR-Methode zugrunde.
  • Sei X eine Zufallsvariable mit PDD fX und Erwartungswert µX. Es gibt eine eindeutige approximative PDD f̃X in Form einer SoDD-Verteilung der Größe 2, d.h.: f ˜ X ( x ) = p δ ( x x ) + p + δ ( x x + ) , w i t h   p + p + = 1
    Figure DE112022002790T5_0038
    derart, dass: x f ˜ X ( x ) d x = μ X ,
    Figure DE112022002790T5_0039
    | x μ X | f ˜ X ( x ) d x = | x μ X | f X ( x ) , d x ,
    Figure DE112022002790T5_0040
    Ω + f ˜ X ( x ) d x = Pr X ( Ω + ) .
    Figure DE112022002790T5_0041
  • Außerdem erfüllen die oben genannten Parameter p± und x± dieser einzigartigen SoDD-Verteilung der Größe 2: p = Pr X ( Ω ) , p + = Pr X ( Ω + ) , x = E [ X ] , x + = E [ X + ]
    Figure DE112022002790T5_0042
  • Dies beruht auf der Intuition, dass der Erwartungswert der Massenschwerpunkt der PDD fX ist, wie bei einem Stab mit einer durch fX beschriebenen Massendichte, der im Gleichgewicht bleiben würde, wenn er bei x = µX gestützt wird, und man hat die volle Kenntnis der ausgleichenden Drehmomente (die 2 Dirac-Deltas in der SoDD-Verteilung), d.h. der Kräfte (Gewichte oder Wahrscheinlichkeitsmassen) und Abstände (Positionen), vorausgesetzt, man kennt die Größe des von beiden Seiten aufgebrachten Gesamtmoments (Eigenschaft (2), oben) und das Verhältnis der Gewichte auf beiden Seiten (Eigenschaft (3), oben). Man kann die Idee dieser eindeutigen 2-SoDD-Verteilung, die die Drehmomentinformationen um den Erwartungswert herum enthält, teleskopartig wiederholen, was den Namen TTR-Methode hervorruft, um zu einer eindeutigen 2n -SoDD-Verteilung zu gelangen, die alle Drehmomentinformationen um Erwartungswerte von X enthält, beschränkt auf spezielle induktiv definierte Intervalle der Form Ω- und Ω+ wie oben gegeben ist.
  • Die TTR von X wird induktiv wie folgt formuliert. Wir definieren die TTR der 0-ten Ordnung von X als ihren Erwartungswert, aufgezeichnet als das N = 2 × 20 = 2-Tupel: R TT 2 ( X ) = ( x 1 . p 1 ) = ( μ X .1 )
    Figure DE112022002790T5_0043
  • Dieses Tupel repräsentiert eine reelle Zahl, die den Wert µX mit der Wahrscheinlichkeit 1 annimmt, wobei die entsprechende approximative SoDD-Verteilung der Größe 1 ist: f ˜ X TTR ( x ) = δ ( x μ X )
    Figure DE112022002790T5_0044
  • Die TTR der 1-ten Ordnung von X ist gegeben durch das N = 2 × 21 = 4-Tupel: R TT 4 ( X ) = ( x 1 ,   x 2 ,   p 1 .   p 2 ) = ( x ,   x + ,   p ,   p + )
    Figure DE112022002790T5_0045
  • Dies entspricht der einzigartigen SoDD-Verteilung der Größe 2, die durch die obigen Gleichungen gegeben ist. Im Allgemeinen ist die TTR der n-ten Ordnung von X dann ein N = 2 × 2n-Tupel: R TT 2 n + 1 ( X ) = ( x 1 ,   ,   x 2 n ,   p 1 ,   ,  p 2 n )
    Figure DE112022002790T5_0046
  • Dieses hat eine entsprechende SoDD-Verteilung der Größe Ndd = 2n. Für TTRs höherer Ordnung werden wir induktive Erweiterungen der oben gegebenen Definitionen einführen. Dazu führen wir die folgende Indexierungsnotation ein. Sei α eine verkettete Folge von „-“- und „+“-Zeichen, z.B., α = - + - oder α = +, sei |α| die Länge der Folge α und sei α = + und α = - die Folgen der Länge |α| + 1 die man erhält, wenn man ein „-“-Zeichen oder ein „+“-Zeichen an das rechte Ende von α anfügt. Wir definieren dann induktiv: Ω α : = { x Ω α : x < E [ X α ] } , Ω α + : = { x Ω α + : x E [ X α ] }
    Figure DE112022002790T5_0047
    und X α : = X | X Ω α ; X α + : = X | X Ω α +
    Figure DE112022002790T5_0048
  • Es ist zu beachten, dass, für ein gegebenes n ≥ 1, 2n verschiedene Sequenzen der Länge n und entsprechende 2n Bereiche Ωa vorhanden sind, die in der Tat Intervalle sind. Diese 2n Intervalle unterteilen ℝ und sind gemäß der Aufzählung φn geordnet, wobei, für 1 ≤ i ≤ 2n, φn (i) die Folge ist, die man erhält, wenn man die 0 und die 1 in der binären Darstellung der Länge n von i - 1 durch „-“- und „+“-Zeichen ersetzt. Zum Beispiel, φ3(1) = - - - und φ4(5) = - + - -. Dann ist die n-te Ordnung TTR von X als das geordnete N-Tupel (N = 2n+1) definiert: R TTR N ( X ) : = ( μ X φ n ( 1 ) ,   ,   μ X φ n ( N d d ) ,   p φ n ( 1 ) ,   ,   p φ n ( N d d ) )
    Figure DE112022002790T5_0049
  • Hier ist: p φ n ( i ) : = Pr X ( Ω φ n ( 1 ) )
    Figure DE112022002790T5_0050
    und N d d = N 2 = 2 n
    Figure DE112022002790T5_0051
  • Die entsprechende approximative SoDD-Verteilung für die TTR hat die Form: f ˜ X TTR ( x ) : = i = 1 N d d p φ n ( i ) δ ( x μ φ n ( n ) )
    Figure DE112022002790T5_0052
  • Beispiel 5: Zentralisierte Momente-Darstellung (Centralized Moments Representation, CMR)
  • Das n-te zentralisierte Moment von X, µn(X), mit n ≥ 0, ist definiert als: μ 0 ( X ) : = 1,
    Figure DE112022002790T5_0053
    μ X : = μ 1 ( X ) : = x f X ( x ) d x ,
    Figure DE112022002790T5_0054
    μ n ( X ) : = ( x μ X ) n f X ( x ) d x , n 2.
    Figure DE112022002790T5_0055
  • Dann ist die N-dimensionale zentralisierte Momentdarstellung (CMR) von X definiert als das geordnete N-Tupel R CMR N ( X ) : = ( μ 1 ( X ) ,   ,   μ N ( X ) )
    Figure DE112022002790T5_0056
  • Diese Definition der zentralisierten Momente weicht von der in der Literatur üblichen Definition ab: Das erste zentralisierte Moment, µ1(X), wird üblicherweise mittig des Erwartungswertes berechnet und ist somit 0. Im Gegensatz dazu definieren wir in der vorliegenden Offenbarung µ1(X) als gleich dem Erwartungswert von X. Diese Formulierung ermöglicht es uns, alle zentralisierten Momente rekursiv in Form von zentralisierten Momenten niedrigerer Ordnung zu definieren, wobei das zentralisierte Moment der nullten Ordnung µ0(X) := 1 den Basisfall der Rekursion darstellt.
  • Da es sich bei der PDD um eine Sammlung von Dirac-Delta-Verteilungen handelt, gibt es mehrere Methoden zur Approximation der PDD aus der Kenntnis zentraler Momente. Zu den möglichen Methoden gehören Gram-Charlier-Reihen [Ref. 1] und Edgeworth-Expansionen [Ref. 2]. Darüber hinaus kann man die formale Edgeworth-Reihe verwenden, wie sie von Bhattacharya et al. [Ref. 3] beschrieben wurde, um approximative PDDs aus CMRs zu konstruieren.
  • Arithmetische Operationen
  • In diesem Teil werden die Regeln für arithmetische Operationen (Propagationen) von endlich-dimensionalen Darstellungen, die wir gerade eingeführt haben, umrissen. Für zwei gegebene Zufallsvariablen X und Y beschreibt die folgende Offenbarung, wie man Repräsentationen von X und Y eines gegebenen Typs propagiert, um denselben Typ von Darstellung für die Zufallsvariable Z := (X; Y) zu finden. Die Propagierungsregeln für alle SoDD-basierten Darstellungsmethoden, d.h. alle außer CMR, sind gleich, da sie sich auf die zugrunde liegende SoDD-Verteilung und nicht auf die Darstellungsmethode beziehen. Daher werden im Folgenden zwei Sätze arithmetischer Propagierungsregeln beschrieben, einer für CMR und einer für SoDD-basierte Darstellungen. Der Einfachheit halber beschränken wir uns bei der arithmetischen Propagationen von CMR auf die arithmetischen Operationen der Addition und Multiplikation. Es ist jedoch zu verstehen, dass eine Addition oder Multiplikation eines Wertes zu einer Variablen in einer SoDD-basierten Darstellung zu einer Verschiebung oder Skalierung der Position der Dirac-Deltas der Darstellung führt, und daher kann die Subtraktion zweier unbestimmter Variablen durch Negierung der SoDD-basierten Darstellung des Subtrahenden (d.h. der SoDD-basierten Darstellung der Größe oder Zahl, die von einer anderen subtrahiert werden soll) durch Multiplikation mit -1 erreicht werden. Die Division von Variablen in einer SoDD-basierten Darstellung definieren wir als Multiplikation mit dem Kehrwert der Divisorvariablen. Der Kehrwert einer Variablen in einer SoDD-basierten Darstellung kann durch Berechnung der Kehrwerte der Dirac-Delta-Positionen ermittelt werden. So kann beispielsweise die Division zweier Zufallsvariablen einer SoDD-Dirac-Mischungs-Darstellung als Multiplikation des Dividenden mit dem Kehrwert des Divisors durchgeführt werden. Letzterer kann durch Berechnung der Kehrwerte der Positionen seiner Dirac-Mischungs-Darstellung konstruiert werden.
  • Beispiel 5: Propagierung von SoDD-basierten Darstellungen
  • Angenommen, wir erhalten eine N-dimensionale SoDD-basierte Darstellung eines festen Typs, d.h. RQHR, PQHR, MQHR oder TTR, und nennen sie FDR. Für zwei voneinander unabhängige Zufallsvariablen X und Y mit approximativen SoDD-Verteilungen der Größe Ndd gegeben als: f ˜ X FDR ( x ) = n = 1 N d d p n δ ( x x n )  and  f ˜ Y FDR ( y ) = n = 1 N d d q n δ ( y y n ) .
    Figure DE112022002790T5_0057
  • Die Propagierung dieser beiden PDDs in Form von SoDD-Verteilungen der Größe Ndd wird durchgeführt, um f̃Φ(X; Y) zu erhalten, eine PDD in Form einer SoDD-Verteilung der Größe N d d 2 ,
    Figure DE112022002790T5_0058
    gegeben durch: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0059
  • Dann kann ein „kompaktes“ drittes Tupel R F D R N ( z ˜ )
    Figure DE112022002790T5_0060
    aus dieser PDD f̃Φ(X; Y) erzeugt werden, so dass: R FDR N ( Φ ( X ,   Y ) )
    Figure DE112022002790T5_0061
  • Dies ist die arithmetisch propagierte N-dimensionale Darstellung für die Zufallsvariable: Z = Φ ( X ,   Y )
    Figure DE112022002790T5_0062
  • Dies ist die N-dimensionale Darstellung der Zufallsvariablen Z̃, beschrieben durch die PDD f̃Φ(X; Y), d.h.: R FDR N ( Φ ( X ,   Y ) ) : = R FDR N ( Z ˜ ) .
    Figure DE112022002790T5_0063
  • Bei dieser Gleichung wird die größere M-Tupel-Darstellung wieder auf ein N-Tupel reduziert. Dies kann vorzugsweise getan werden, um eine feste Größe für die Tupel zu ermöglichen, mit denen man rechnet. Um also weitere Berechnungen mit den abgeleiteten Tupeln (den obigen M-Tupeln) zu ermöglichen, kann man diese M-Tupel wieder auf N-Tupel reduzieren. Dies kann erreicht werden, indem man die Daten, die durch f̃Φ(X; Y) dargestellten sind, als einen neu „erhaltenen“ Datensatz (d.h. einen erhaltenen dritten Satz von Datenelementen, der als Ergebnis der arithmetischen Operation erhalten wurde) betrachtet und daraus ein „kompaktes“ drittes Tupel R F D R N ( z ˜ )
    Figure DE112022002790T5_0064
    erzeugt, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des dritten Satzes charakterisiert, der durch f̃Φ(X; Y) definiert ist.
  • Arithmetische Operationen
  • Im Beispiel einer Arithmetik auf zwei RQHR-Repräsentationen, die jeweils als ein geordnetes N-Tupel definiert sind: R RQHR N ( X ) : = ( x 0 ,   l X ,   p 1 ,   ,   p N d d )
    Figure DE112022002790T5_0065
    hat die entsprechende approximative SoDD-Verteilung für die RQHR die Form: f ˜ X RQHR ( x ) : = n = 1 N d d p n δ ( x ( x 0 + ( n 1 2 ) l X ) )
    Figure DE112022002790T5_0066
    Natürlich können wir für die Verteilung in der Variablen Y die obige Gleichung einfach mit den Substitutionen umschreiben: X → Y und x → y und x0 → y0 und lX → lY. Somit sind die xn, ym innerhalb Φ(xn, ym) des Propagierungsergebnisses f̃Φ(X; Y)(z) gegeben durch: x n = x 0 + ( n 1 2 ) l X
    Figure DE112022002790T5_0067
    y m = y 0 + ( m 1 2 ) l Y
    Figure DE112022002790T5_0068
  • Im Falle der Addition von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0069
    wobei Φ ( x n ,   y m ) = Φ + ( x n ,   y m ) = x n + y m
    Figure DE112022002790T5_0070
  • Im Falle der Multiplikation von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0071
    wobei Φ ( x n ,   y m ) = Φ × ( x n ,   y m ) = x n × y m
    Figure DE112022002790T5_0072
  • Im Beispiel einer Arithmetik auf zwei PQHR-Repräsentationen, die jeweils als ein geordnetes N-Tupel definiert sind: R PQHR N ( X ) : = ( μ X 1 ,   μ X N d d )
    Figure DE112022002790T5_0073
    hat die entsprechende approximative SoDD-Verteilung für die PQHR die Form: f ˜ X PQHR ( x ) : = 1 N d d n = 1 N d d δ μ X n
    Figure DE112022002790T5_0074
  • Natürlich können wir für die Verteilung in der Variablen Y die obige Gleichung einfach mit den Substitutionen umschreiben: X → Y und x → y und µXn → µYm. Somit sind die xn, ym innerhalb Φ(xn, ym) des Propagierungsergebnisses f̃Φ(X; Y)(z) gegeben durch x n = μ X n
    Figure DE112022002790T5_0075
    y m = μ Y m
    Figure DE112022002790T5_0076
  • Im Falle der Addition von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0077
    wobei Φ ( x n ,   y m ) = Φ + ( x n ,   y m ) = x n + y m
    Figure DE112022002790T5_0078
  • Im Falle der Multiplikation von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0079
    wobei Φ ( x n ,   y m ) = Φ × ( x n ,   y m ) = x n × y m
    Figure DE112022002790T5_0080
  • Im Beispiel einer Arithmetik auf zwei MQHR-Repräsentationen, die jeweils als ein geordnetes N-Tupel definiert sind: R MQHR N ( X ) : = ( x 1 ,   ,   x N d d ,   p 1 ,   ,   p N d d )
    Figure DE112022002790T5_0081
    hat die entsprechende approximative SoDD-Verteilung für die MQHR die Form: f ˜ X MQHR ( x ) : = n = 1 N d d p n δ ( x x n )
    Figure DE112022002790T5_0082
  • Natürlich können wir für die Verteilung in der Variablen Y die obige Gleichung einfach mit den Substitutionen umschreiben: X → Y und x → y und xn → ym. Somit sind die xn, ym innerhalb Φ (xn, ym) des Propagierungsergebnisses f̃Φ(X; Y)(z) durch xn und yn der jeweiligen SoDD-Verteilungen direkt gegeben. Im Falle der Addition von Verteilungen ist das Propagierungsergebnis: f ˜ Φ ( X , Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n , y m ) ) .
    Figure DE112022002790T5_0083
    wobei Φ ( x n , y m ) = Φ + ( x n , y m ) = x n + y m
    Figure DE112022002790T5_0084
  • Im Falle der Multiplikation von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X , Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n , y m ) ) .
    Figure DE112022002790T5_0085
    wobei Φ ( x n , y m ) = Φ × ( x n , y m ) = x n × y m
    Figure DE112022002790T5_0086
  • Im Beispiel einer Arithmetik auf zwei TTR-Repräsentationen, die jeweils als ein geordnetes N-Tupel definiert sind: R TTR N ( X ) : = ( μ X φ n ( 1 ) , , μ X φ n ( N d d ) , p φ n ( 1 ) , , p φ n ( N d d ) )
    Figure DE112022002790T5_0087
    hat die entsprechende approximative SoDD-Verteilung für die TTR die Form: f ˜ X TTR ( x ) : = i = 1 N d d p φ n ( i ) δ ( x μ X φ n ( n ) )
    Figure DE112022002790T5_0088
  • Natürlich können wir für die Verteilung in der Variablen Y die obige Gleichung einfach mit den Substitutionen umschreiben: X → Y und x → y und µn(n) → µm(m). Somit sind die xn, ym innerhalb Φ(xn, ym) des Propagierungsergebnisses f̃Φ(X; Y)(z) gegeben durch x n = μ X φ n ( n )
    Figure DE112022002790T5_0089
    y m = μ Y φ m ( m )
    Figure DE112022002790T5_0090
  • Im Falle der Addition von Verteilungen lautet das Fortpflanzungsergebnis: f ˜ Φ ( X , Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n , y m ) ) .
    Figure DE112022002790T5_0091
    wobei Φ ( x n , y m ) = Φ + ( x n , y m ) = x n + y m
    Figure DE112022002790T5_0092
  • Im Falle der Multiplikation von Verteilungen lautet das Propagierungsergebnis: f ˜ Φ ( X , Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n , y m ) ) .
    Figure DE112022002790T5_0093
    wobei Φ ( x n , y m ) = Φ × ( x n , y m ) = x n × y m
    Figure DE112022002790T5_0094
  • Propagierung von CMRs
  • Für zwei gegebene Zufallsvariablen X und Y beschreibt die folgende Offenbarung, wie man Darstellungen von X und Y eines gegebenen Typs propagiert, um den gleichen Typ der Darstellung für die Zufallsvariable Z := (X; Y) zu finden. Die Verwendung der multivariaten Taylor-Entwicklung von Φ(X; Y) um die Erwartungswerte von X und Y, d.h., um (µX; µY), ergibt: Φ ( x , y ) = i = 0 j = 0 i + j i x j y Φ ( μ X , μ Y ) ( x μ X ) i ( y μ Y ) j i ! j ! .
    Figure DE112022002790T5_0095
  • Für den Fall von: Z + = Φ + ( X , Y ) = X + Y
    Figure DE112022002790T5_0096
    und Z × = Φ × ( X , Y ) = X × Y
    Figure DE112022002790T5_0097
    reduziert sich die obige Taylor-Erweiterung auf: Φ + ( x , y ) = μ X + μ Y + ( x μ X ) + ( y μ Y )
    Figure DE112022002790T5_0098
    und Φ × ( x ,   y ) = μ X μ Y + μ Y ( x μ X ) + μ X ( y μ Y ) + ( x μ X ) ( y μ Y )
    Figure DE112022002790T5_0099
    im Fall von voneinander unabhängigen Zufallsvariablen, d.h., fX; Y = fXfY. Dieses Ergebnis wird verwendet, um den Wert von Φ(xn, ym) (z.B., Φ(X; Y) = Φ+(x, y) oder Φ(X; Y) = Φ× (x, y), je nach Fall) zu erzeugen, der in der oben definierten Funktion f̃Φ(X; Y)(z) erscheint.
  • Für das n-te zentralisierte Moment der Zufallsvariablen Z = (X; Y) haben wir: μ Z : = μ 1 ( Z ) : = 2 Φ ( x ,   y ) f X ,   Y ( x ,   y ) d x d y .
    Figure DE112022002790T5_0100
    μ n ( Z ) : = 2 ( Φ ( x ,   y ) μ Z ) n f X ,   Y ( x ,   y ) d x d y , n 2.
    Figure DE112022002790T5_0101
  • Eine Approximation dieses Integrals hinsichtlich der zentralisierten Momente von X und Y verwendet die oben definierte multivariate Taylor-Entwicklung um die Erwartungswerte von X und Y, d.h. um (µX; µY). Dies ergibt Näherungen für die ersten N zentralisierten Momente von Z+ und Z× in Form der ersten N zentralisierten Momente von X und Y als: μ Z + = μ 1 ( Z + ) = 2 Φ + ( x ,   y ) f X , Y ( x , y ) d x d y = 2 [ μ X + μ Y + ( x μ X ) + ( y μ Y ) ] f X ( x ) f Y ( y ) d x d y = μ X + μ Y ,
    Figure DE112022002790T5_0102
    μ n ( Z + ) = 2 ( Φ + ( x ,   y ) μ Z + ) n f X ,   Y ( x ,   y ) d x d y = 2 [ ( x μ X ) + ( y μ Y ) ] n f X ( x ) f Y ( y ) d x d y = i + j = n n ! i ! j ! ( ( x μ X ) i f X ( x ) d x ) ( ( y μ Y ) j f Y ( y ) d y ) = i + j = n i , j 1 n ! i ! j ! μ i ( X ) μ i ( Y ) , 2 n N ,
    Figure DE112022002790T5_0103
  • Und μ Z × = μ 1 ( Z × ) = 2 Φ × ( x ,   y ) f X , Y ( x ,   y ) d x d y = 2 [ μ X μ Y + μ Y ( x μ X ) + μ X ( y μ Y ) + ( x μ X ) ( y μ Y ) ] f X ( x ) f Y ( y ) d x d y = μ X μ Y ,
    Figure DE112022002790T5_0104
    μ n ( Z × ) = 2 ( Φ × ( x ,   y ) μ Z × ) n f X , Y ( x ,   y ) d x d y = 2 [ μ Y ( x μ X ) + μ X ( y μ Y ) + ( x μ X ) ( y μ Y ) ] n f X ( x ) f Y ( y ) d x d y = i + j + k = n n ! i ! j ! k ! μ Y i μ X j ( ( x μ X ) i + k f X ( x ) d x ) ( ( y μ Y ) j + k f Y ( y ) d y ) = i + j + k = n i + k , j + k 1 n ! i ! j ! k ! μ Y i μ X j μ i + k ( X ) μ j + k ( Y ) , 2 n N .
    Figure DE112022002790T5_0105
  • Zum Beispiel seien X und Y zwei voneinander unabhängige Zufallsvariablen mit N-dimensionalen CMRs: R CMR N ( X ) = ( μ 1 ( X ) ,   ,   μ N ( X ) )   a n d   R CMR N ( Y ) = ( μ 1 ( Y ) ,   ,   μ N ( Y ) )
    Figure DE112022002790T5_0106
  • Dann kann man die N-dimensionalen CMRs: R CMR N ( Z + ) = ( μ 1 ( Z + ) ,   ,   μ N ( Z + ) )   a n d   R CMR N ( Z × ) = ( μ 1 ( Z × ) ,   ,   μ N ( Z × ) )
    Figure DE112022002790T5_0107
    der Zufallsvariablen Z+ = X + Y und Z× = X × Y berechnen, jeweils genau über die oben angegebenen Beziehungen.
  • Die vorliegende Erfindung kann Verteilungsinformationen/-daten (z.B. Wahrscheinlichkeitsverteilungen, Häufigkeitsverteilungen usw.), die die Unsicherheit in Messdaten darstellen, die von einem Messgerät (z.B. einem Sensor) erzeugt wurden, kodieren, darstellen und propagieren und/oder kann Verteilungsinformationen/-daten propagieren, die Verteilungsgewichte eines künstlichen neuronalen Netzes definieren.
  • Im Allgemeinen kann eine arithmetische Operation durchgeführt werden, indem die Parameter (z.B. Dirac-Delta-Position, Höhe/Wahrscheinlichkeit) des ersten Tupels (d.h., das eine erste Verteilung darstellt) verwendet werden, und indem die Parameter (z.B. Dirac-Delta-Position, Höhe/Wahrscheinlichkeit) des zweiten Tupels (d.h., das eine zweite Verteilung darstellt) verwendet werden, um ein drittes Tupel zu erzeugen, das Parameter (z.B. Dirac-Delta-Position, Höhe/Wahrscheinlichkeit) mit Werten enthält, die die Verteilung definieren, die sich aus der auf die erste Verteilung und die zweite Verteilung angewandten arithmetischen Operation ergibt. Dieses dritte Tupel kann dann vorzugsweise verwendet werden, um ein „kompaktes“ drittes Tupel, wie hier beschrieben, zu erzeugen, das die gleiche Größe (z.B. ein N-Tupel) wie das erste und zweite Tupel hat. Das erste und das zweite Tupel haben vorzugsweise die gleiche Größe (z.B. beide ein N-Tupel).
  • Die Positionen von Dirac-Delta-Funktionen, die Daten der dritten Verteilung darstellen, können durch die Positionswerte definiert werden, die (z.B. wie hierin offenbart) unter Verwendung der Positionen von Dirac-Delta-Funktionen berechnet werden, die Daten der ersten und zweiten Datenverteilung darstellen. Diese Positionswerte der ersten und zweiten Datenverteilungen können in den ersten und zweiten Tupeln enthalten sein. Die Höhen/Wahrscheinlichkeiten der Dirac-Delta-Funktionen, die Daten der dritten Verteilung darstellen, können durch Berechnung des Produkts der Höhen/Wahrscheinlichkeiten der Dirac-Delta-Funktionen, die Daten der ersten und zweiten Datenverteilung darstellen, erzeugt werden. Diese Höhen/Wahrscheinlichkeitswerte der ersten und zweiten Datenverteilungen können in den ersten und zweiten Tupeln enthalten sein.
  • Das dritte Tupel kann Wahrscheinlichkeitswerte (z.B. Dirac-Delta-Höhe/Wahrscheinlichkeit) enthalten, die jeweils gemäß einem entsprechenden Wahrscheinlichkeitswert im ersten Tupel und einem entsprechenden Wahrscheinlichkeitswert im zweiten Tupel erzeugt werden (z.B. ein Produkt aus einem entsprechenden Wahrscheinlichkeitswert im ersten Tupel und einem entsprechenden Wahrscheinlichkeitswert im zweiten Tupel, wenn die arithmetische Operation eine Multiplikations- oder Additionsoperation usw. ist). Die Wahrscheinlichkeitswerte können eine Amplitude, Höhe oder Gewichtung einer Dirac-Delta-Funktion innerhalb einer durch das dritte Tupel dargestellten Verteilung darstellen.
  • Das dritte Tupel kann Positionswerte enthalten, die jeweils gemäß einem entsprechenden Positionswert im ersten Tupel und einem entsprechenden Positionswert im zweiten Tupel erzeugt werden (z.B. ein Produkt (oder eine Addition) eines entsprechenden Positionswertes im ersten Tupel und eines entsprechenden Positionswertes im zweiten Tupel, wenn die arithmetische Operation eine Multiplikationsoperation (oder eine Additionsoperation) ist usw.). Die Positionswerte können eine Position einer Dirac-Delta-Funktion innerhalb einer durch das dritte Tupel repräsentierten Verteilung darstellen.
  • Die Erfindung ist nicht auf Dirac-Delta-Funktions-basierte Darstellungen (wie MQHR) beschränkt, und die ersten, zweiten und dritten Tupel können im Allgemeinen Parameter gemäß anderen Darstellungen enthalten, z.B. zur Kodierung der Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente der ersten, zweiten und dritten Verteilung charakterisiert. Beispielsweise können die ersten, zweiten und dritten Tupel Parameter enthalten, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente charakterisiert.
  • Der arithmetische Prozess ermöglicht es, jeden Parameter des dritten Tupels unter Verwendung der Parameter des ersten Tupels und des zweiten Tupels zu erzeugen. Sobald die Parameter des dritten Tupels berechnet sind, ist die Verteilungsinformation der dritten Verteilung vollständig kodiert, so dass diese dritte Verteilung bei Bedarf reproduziert werden kann und das dritte Tupel in einem Speichermedium gespeichert und/oder als Signal in sehr effizienter Form übertragen werden kann.
  • In anderen Aspekten, entweder separat oder in Verbindung mit jedem anderen Aspekt hierin, kann die Erfindung die folgenden Aspekte betreffen. Mit anderen Worten, jeder oder mehrere der nachstehend beschriebenen Aspekte kann separat von oder in Kombination mit jedem der oben beschriebenen Aspekte als anwendbar angesehen werden. Zum Beispiel kann die oben beschriebene Vorrichtung die unten beschriebene Mikroarchitektur umfassen, und in ähnlicher Weise gilt dies für die oben und die unten beschriebenen Verfahren.
  • In einem dritten Aspekt kann die Erfindung ein Verfahren zur Verarbeitung von Datenverteilungen bereitstellen, das Verfahren umfassend die Bereitstellung einer Mikroarchitektur mit:
    • einem ersten Register, das Datenelemente enthält;
    • einem zweiten Register, das Verteilungsdaten enthält, wobei die Verteilungsdaten Verteilungen repräsentieren, die Unsicherheitsdarstellungen sind, die mit jeweiligen der Datenelemente assoziiert sind;
    • einer ersten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem ersten Register ausgewählten Datenelementen;
    • einer zweiten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem zweiten Register ausgewählten Verteilungsdaten; das Verfahren umfasst die folgenden Schritte, die von der Mikroarchitektur ausgeführt werden:
    • Ausführen, durch die erste arithmetische Logikeinheit, einer arithmetischen Operation an aus dem ersten Register ausgewählten Datenelementen, und Ausgeben des Ergebnisses;
    • Ausführen, durch die zweite arithmetische Logikeinheit, einer arithmetischen Operation an aus dem zweiten Register ausgewählten Verteilungsdaten, die Verteilungen repräsentieren und mit den aus dem ersten Register ausgewählten Datenelementen assoziiert sind, und Ausgeben des Ergebnisses;
    • wobei die arithmetische Operation, die an den aus dem zweiten Register ausgewählten Verteilungsdaten ausgeführt wird, die gleiche ist wie die arithmetische Operation, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird, um dadurch weitere Verteilungsdaten zu erzeugen, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation assoziiert ist, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird.
  • Auf diese Weise kann ein erstes Register (z.B. Element „f0“ in 6A) Daten enthalten, die ein einzelnes Element sein können. Das zweite Register (z.B. Element „df0“ in 6A) kann Verteilungsdaten von Unsicherheitsdarstellungen des im ersten Register enthaltenen einzelnen Elements enthalten. Verweise auf ein erstes Register mit Datenelementen können als Verweis auf einen ersten Satz von Registern mit Datenelementen betrachtet werden. Ebenso können Verweise auf ein zweites Register mit Verteilungsdaten, die Verteilungen darstellen, als Verweis auf einen zweiten Satz von Registern mit Verteilungsdaten, die Verteilungen darstellen, betrachtet werden. Ein Satz von Registern kann als eine Registerdatei betrachtet werden.
  • Vorzugsweise kann das erste Register einen ersten Satz von Registern und/oder eine Registerdatei umfassen. Vorzugsweise kann das zweite Register einen ersten Satz von Registern und/oder eine Registerdatei umfassen.
  • In dem Verfahren kann die Mikroarchitektur beispielsweise eine Floating Point-Registerdatei umfassen, die so konfiguriert ist, dass sie Floating Point-Daten enthält. Die Floating Point-Registerdatei kann eine erste Registerdatei enthalten, die für die Aufnahme von Partikeldatenelementen konfiguriert ist, und eine zweite Registerdatei, die für die Aufnahme von Verteilungsdaten konfiguriert ist. Die Mikroarchitektur kann beispielsweise eine Ganzzahl-Registerdatei umfassen, die für die Aufnahme von Ganzzahldaten konfiguriert ist. Die Ganzzahl-Registerdatei kann eine erste Registerdatei enthalten, die für die Aufnahme von Partikeldatenelementen konfiguriert ist, und eine zweite Registerdatei, die für die Aufnahme von Verteilungsdaten konfiguriert ist. Die Verteilungsdaten können Verteilungen (z.B. SoDD-basierte Darstellungen) darstellen, die Unsicherheitsdarstellungen sind, die mit entsprechenden „Partikel“-Datenelementen in der ersten Registerdatei assoziiert sind. Bei dem Verfahren kann die Floating Point-Registerdatei ein gegebenes „Partikel“-Datenelement in der ersten Registerdatei mit seinen zugehörigen Verteilungsdaten in der zweiten Registerdatei verknüpfen, indem sie einen gemeinsamen Registerdateieintrags-Identifikator sowohl einem gegebenen „Partikel“-Datenwert in der ersten Registerdatei als auch dem Verteilungsdateneintrag in der zweiten Registerdatei zuweist, der mit den betreffenden „Partikel“-Daten verknüpft werden soll. Auf diese Weise können die Floating Point- und/oder Ganzzahlregisterdateien in der Mikroarchitektur alle Floating Point- und/oder Ganzzahlregister mit Verteilungsinformationen verknüpfen.
  • Die Mikroarchitektur und die Erfindung im Allgemeinen können komplexere arithmetische Operationen berechnen, z.B. verschmolzene Multiplikation und Addition oder Quadratwurzel, indem sie in Form der oben genannten arithmetischen Operationen ausgedrückt werden, wie der Fachmann leicht ersichtlich.
  • Vorzugsweise wird das Ausführen der arithmetischen Operation durch die zweite arithmetische Logikeinheit durch einen Befehl getriggert, der das Ausführen der arithmetischen Operation durch die erste arithmetische Logikeinheit triggert. Die arithmetische Operation umfasst vorzugsweise eine oder mehrere der folgenden Operationen: Addition, Subtraktion, Multiplikation, Division. Die Erfindung kann im Allgemeinen komplexere arithmetische Operationen berechnen, z.B. verschmolzene Multiplikation und Addition oder Quadratwurzel, indem sie in Form der vorgenannten arithmetischen Operationen ausgedrückt werden, wie für den Fachmann leicht ersichtlich.
  • Das Verfahren kann die Bereitstellung der Mikroarchitektur mit einer Speichereinheit umfassen, die so konfiguriert ist, dass sie die Datenelemente an adressierten Speicherplätzen speichert, wobei das Verfahren die folgenden Schritte umfasst, die von der Mikroarchitektur ausgeführt werden: Erhalten der ursprünglichen Speicherplatzadressen von Datenelementen, die zur arithmetischen Operation, die von der ersten arithmetischen Logikeinheit ausgeführt wird, beitragen, während die erste arithmetische Logikeinheit die arithmetische Operation ausführt, und Speichern der erhaltenen ursprünglichen Speicherplatzadressen an einem Speicherplatz innerhalb der Speichereinheit und Verknüpfen des Speicherplatzes mit den weiteren Verteilungsdaten. Die erhaltenen ursprünglichen Speicherplatzadressen können in einer kombinierten Form gespeichert werden, so dass mehrere ursprüngliche Speicherplatzadressen zusammen gespeichert werden können, z.B. in einer Tabelle, wobei mehrere ursprüngliche Speicherplatzadressen in demselben Tabelleneintrag/-platz gespeichert werden.
  • Die Ergebnisse der arithmetischen Operationen können an Direktzugriffsspeicher ausgegeben werden. Diese Ausgabeergebnisse können sowohl „Partikel“-Datenwerte als auch Verteilungsdaten umfassen. Jeder „Partikel“-Datenwert kann in einer Speichereinheit gespeichert werden, die einen physikalischen Adressraum bereitstellt, und kann einer Verteilungsdarstellung zugeordnet werden, die in einer Verteilungsspeichereinheit gespeichert ist. Eine Speicherzugriffseinheit und eine Registerrückschreibeinheit können vorgesehen sein, um eine Schnittstelle zwischen den Registerdateien und den arithmetischen Logikeinheiten der Mikroarchitektur zu definieren. Die Befehlsabrufeinheit kann in Verbindung mit der „Partikel“-Speichereinheit vorgesehen sein, um auf die Speichereinheit zuzugreifen und Befehle aus ihr abzurufen. Es kann eine Lade-/Speichereinheit vorgesehen sein, die direkt mit der Verteilungsspeichereinheit kommuniziert, und es kann eine Befehlsabrufeinheit vorgesehen werden, die jedoch nicht so angeschlossen ist. Dies bedeutet, dass die Ausführung arithmetischer Operationen an Verteilungsdaten automatisch erfolgen kann, ohne dass der Betrieb der Befehlsabrufeinheit erforderlich ist oder gestört wird. Auf diese Weise kann die Berechnung von Verteilungsdaten, die sich aus arithmetischen Operationen an „Partikel“-Daten und ihren zugehörigen Verteilungsdaten ergeben, auf der Ebene der Mikroarchitektur erfolgen. Dementsprechend kann die Mikroarchitektur so konfiguriert sein, dass nur Lade-/Speicherbefehle auf den Direktzugriffsspeicher zugreifen können. Folglich kann auf diese Weise ein erweiterter Speicher bereitgestellt werden, in den die Mikroarchitektur sowohl die „Partikel“- als auch die Verteilungsinformationen der Mikroarchitekturregister laden und speichern kann.
  • In dem Verfahren kann die Mikroarchitektur so konfiguriert sein, dass sie verfolgt, welche Speicheradressen einer Speichereinheit zur Berechnung des Wertes eines beliebigen Floating Point- oder Ganzzahlregisters zu einem beliebigen Zeitpunkt beigetragen haben. Wenn ein „Partikel“-Wert, der sich aus einer arithmetischen Operation ergibt, von einem Register der Mikroarchitektur ausgegeben wird, können die Ausgabedaten eines Partikelwerts, der sich aus einer arithmetischen Operation ergibt, im Speicher gespeichert werden. Die Informationen über die ursprünglichen Adressen oder Ursprungsadressen der Partikeldatenelemente, die zu dem Ausgabeergebnis beigetragen haben (hier als „Ursprungsadressen“ oder „Herkunftsadressen“ bezeichnet: diese beiden Begriffe beziehen sich auf dasselbe), können ebenfalls in einer Speichereinheit gespeichert werden. Der Prozessor kann so konfiguriert sein, dass er die Ursprungsadressen später abruft, wenn der Inhalt des Registers (z.B. der gespeicherte „Partikel“-Wert) zur weiteren Verwendung aus dem Speicher geladen wird. Dies wird im Folgenden näher erläutert, und wir bezeichnen diese Korrelationsverfolgung als „Herkunftsadressenverfolgung“. In der vorliegenden Erfindung stammt in bevorzugten Ausführungsformen der Wert jedes Floating Point-/Ganzzahlregisters von einer oder mehreren Adressen der Speichereinheit. Durch Beibehaltung und Propagierung dieser Adressen ist die Erfindung in der Lage, dynamisch Korrelationen zwischen zwei beliebigen Floating Point-/Ganzzahlregistern zu erkennen. Diese Informationen können z.B. in einer dynamisch verknüpften Liste von „Ursprungsadressen“ gespeichert werden.
  • Bei dem Verfahren enthält das erste Register vorzugsweise ein erstes Datenelement und ein zweites Datenelement. Beispielsweise kann das erste Register einen ersten Satz von Registern umfassen, die Datenelemente enthalten, zu denen das erste Datenelement und das zweite Datenelement gehören. Vorzugsweise umfasst das erste Datenelement einen Wert einer ersten Zufallsvariablen und das zweite Datenelement einen Wert einer zweiten Zufallsvariablen. In ähnlicher Weise kann das zweite Register einen zweiten Satz von Registern umfassen, die Verteilungsdaten enthalten, die Verteilungen darstellen. Das erste und das zweite Register können zum Beispiel jeweils eine Registerdatei sein. Vorzugsweise enthält das zweite Register erste Verteilungsdaten, die ein erstes Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Register zweite Verteilungsdaten, die ein zweites Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, welche die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert, wobei die zur Kodierung der zweiten Verteilungsdaten verwendeten Parameter die gleichen sind wie die zur Kodierung der ersten Verteilungsdaten verwendeten Parameter.
  • Vorzugsweise umfasst das Ausführen einer arithmetischen Operation an Verteilungsdaten durch die zweite arithmetische Logikeinheit das Auswählen des ersten Tupels und des zweiten Tupels und damit das Erzeugen eines dritten Tupels unter Verwendung von Parametern, die in dem ersten Tupel enthalten sind, und unter Verwendung von Parametern, die in dem zweiten Tupel enthalten sind, wobei das dritte Tupel Parameter enthält, die die weiteren Verteilungsdaten kodieren. Das Verfahren kann die Ausgabe des dritten Tupels umfassen. Die Ausgabe des Tupels kann die Ausgabe an einen Speicher zur Speicherung oder die Ausgabe an einen Sender zur Übertragung umfassen.
  • Vorzugsweise enthält das dritte Tupel Parameter, die die weiteren Verteilungsdaten kodieren, die die gleichen sind wie die Parameter, die zur Kodierung der Wahrscheinlichkeitsverteilung verwendet werden, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Wenn das zweite Tupel Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die dieselben sind wie die Parameter, die im ersten Tupel verwendet werden, um die ersten Verteilungsdaten zu kodieren, dann sind diese Parameter natürlich auch dieselben Parameter (d.h. „dieselbe“ Art, aber im Allgemeinen nicht „derselbe“ Wert), die im dritten Tupel verwendet werden.
  • Vorzugsweise umfassen die Verteilungsdaten Wahrscheinlichkeitsverteilungen der jeweiligen Datenelemente.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Position von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisieren. Vorzugsweise enthält das zweite Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisieren. Vorzugsweise enthält das dritte Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die weiteren Verteilungsdaten charakterisiert, eine Verteilung von Dirac-Delta-Funktionen.
  • Vorzugsweise ist das erste Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das zweite Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das dritte Tupel ein M-Tupel, für das N2/2 < M < 2N2 ist, wobei N > 1 eine ganze Zahl ist. Die Ausgabe der Ergebnisse der ersten und/oder zweiten arithmetischen Logikeinheit kann einen oder mehrere der folgenden Schritte umfassen: Speichern der Ausgabe in einem Speicher; Übertragen eines Signals, das die Ausgabe übermittelt.
  • In einem anderen Aspekt kann die Erfindung ein Computerprogrammprodukt mit einem Computerprogramm bereitstellen, das, wenn es auf einem Computer ausgeführt wird, das oben beschriebene Verfahren des dritten Aspekts der Erfindung implementiert. In einem anderen Aspekt kann die Erfindung einen Computer bereitstellen, der mit einem Computerprogramm programmiert ist, das, wenn es auf dem Computer ausgeführt wird, das oben beschriebene Verfahren des dritten Aspekts der Erfindung implementiert.
  • In einem vierten Aspekt kann die Erfindung eine Mikroarchitektur zur Verarbeitung von Datenverteilungen bereitstellen, umfassend:
    • ein erstes Register, das konfiguriert ist, um Datenelemente zu enthalten;
    • ein zweites Register, das konfiguriert ist, um Verteilungsdaten zu enthalten, wobei die Verteilungsdaten Verteilungen repräsentieren, die Unsicherheitsdarstellungen sind, die mit jeweiligen der Datenelemente assoziiert sind;
    • eine erste arithmetische Logikeinheit zum Ausführen von Arithmetik an aus dem ersten Register ausgewählten Datenelementen;
    • eine zweite arithmetische Logikeinheit zum Ausführen von Arithmetik an aus dem zweiten Register ausgewählten Verteilungsdaten; wobei die Mikroarchitektur so konfiguriert ist, dass sie die folgenden Schritte ausführt:
    • Ausführen, durch die erste arithmetische Logikeinheit, einer arithmetischen Operation an aus dem ersten Register ausgewählten Datenelementen, und Ausgeben des Ergebnisses;
    • Ausführen, durch die zweite arithmetische Logikeinheit, einer arithmetischen Operation an aus dem zweiten Register ausgewählten Verteilungsdaten, die Verteilungen repräsentieren und mit den aus dem ersten Register ausgewählten Datenelementen assoziiert sind, und Ausgeben des Ergebnisses;
    • wobei die arithmetische Operation, die an den aus dem zweiten Register ausgewählten Verteilungsdaten ausgeführt wird, die gleiche ist wie die arithmetische Operation, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird, um dadurch weitere Verteilungsdaten zu erzeugen, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation assoziiert ist, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird
  • Vorzugsweise kann das erste Register einen ersten Satz von Registern und/oder eine Registerdatei umfassen. Vorzugsweise kann das zweite Register einen ersten Satz von Registern und/oder eine Registerdatei umfassen.
  • Verweise auf ein erstes Register mit Datenelementen können als Verweis auf einen ersten Satz von Registern mit Datenelementen betrachtet werden. Ebenso können Verweise auf ein zweites Register mit Verteilungsdaten, die Verteilungen darstellen, als Verweis auf einen zweiten Satz von Registern mit Verteilungsdaten, die Verteilungen darstellen, betrachtet werden. Ein Satz von Registern kann als eine Registerdatei betrachtet werden.
  • Die Mikroarchitektur kann beispielsweise eine Floating Point-Registerdatei umfassen, die so konfiguriert ist, dass sie Floating Point-Daten enthält. Die Floating Point-Registerdatei kann eine erste Registerdatei enthalten, die für die Aufnahme von Partikeldatenelementen konfiguriert ist, und eine zweite Registerdatei, die für die Aufnahme von Verteilungsdaten konfiguriert ist. Die Mikroarchitektur kann beispielsweise eine Ganzzahl-Registerdatei umfassen, die für die Aufnahme von Ganzzahldaten konfiguriert ist. Die Ganzzahl-Registerdatei kann eine erste Registerdatei enthalten, die für die Aufnahme von Partikeldatenelementen konfiguriert ist, und eine zweite Registerdatei, die für die Aufnahme von Verteilungsdaten konfiguriert ist. Die Verteilungsdaten können Verteilungen (z.B. SoDD-basierte Darstellungen) darstellen, die Unsicherheitsdarstellungen sind, die mit entsprechenden „Partikel“-Datenelementen in der ersten Registerdatei assoziiert sind.
  • Die Floating Point-Registerdatei kann ein gegebenes „Partikel“-Datenelement in der ersten Registerdatei mit seinen zugehörigen Verteilungsdaten in der zweiten Registerdatei verknüpfen, indem ein gemeinsamer Registerdateieintrags-Identifikator sowohl einem gegebenen „Partikel“-Datenwert in der ersten Registerdatei als auch dem Verteilungsdateneintrag in der zweiten Registerdatei zugewiesen wird, der mit den betreffenden „Partikel“-Daten verknüpft werden soll. Auf diese Weise können die Floating Point- und/oder Ganzzahlregisterdateien in der Mikroarchitektur alle Floating Point- und/oder Ganzzahlregister mit Verteilungsinformationen verknüpfen.
  • Die Mikroarchitektur kann so konfiguriert sein, dass sie eine arithmetische Operation ausführt, die eine oder mehrere der folgenden Operationen umfasst: Addition, Subtraktion, Multiplikation, Division oder komplexere arithmetische Operationen, z.B. verschmolzene Multiplikation und Addition oder Quadratwurzel, oder eine beliebige bivariate Operation, z.B. Potenzierung, indem sie in Form der oben genannten arithmetischen Operationen ausgedrückt wird, wie es für den Fachmann ohne weiteres ersichtlich wäre.
  • Die Mikroarchitektur kann so konfiguriert sein, dass sie die Ergebnisse der arithmetischen Operationen an einen Direktzugriffsspeicher ausgibt. Diese Ausgabeergebnisse können sowohl „Partikel“-Datenwerte als auch Verteilungsdaten umfassen. Die Mikroarchitektur kann so konfiguriert sein, dass sie jeden „Partikel“-Datenwert in einer Speichereinheit speichert, die einen physikalischen Adressraum bereitstellt, und kann einer Verteilungsdarstellung zugeordnet werden, die in einer Verteilungsspeichereinheit gespeichert ist. Die Mikroarchitektur kann eine Speicherzugriffseinheit und eine Registerrückschreibeinheit umfassen, um eine Schnittstelle zwischen den Registerdateien und den arithmetischen Logikeinheiten der Mikroarchitektur zu definieren. Die Mikroarchitektur kann eine Befehlsabrufeinheit in Kommunikationsverbindung mit der „Partikel“-Speichereinheit umfassen, um auf die Speichereinheit zuzugreifen und Befehle aus ihr abzurufen. Die Mikroarchitektur kann eine Lade-/Speichereinheit umfassen, die direkt mit der Verteilungsspeichereinheit kommuniziert, und kann eine Befehlsabrufeinheit umfassen, die jedoch nicht so angeschlossen ist. Dies bedeutet, dass die Ausführung arithmetischer Operationen an Verteilungsdaten automatisch erfolgen kann, ohne dass der Betrieb der Befehlsabrufeinheit erforderlich ist oder gestört wird. Auf diese Weise kann die Berechnung von Verteilungsdaten, die sich aus arithmetischen Operationen an „Partikel“-Daten und ihren zugehörigen Verteilungsdaten ergeben, auf der Ebene der Mikroarchitektur erfolgen. Dementsprechend kann die Mikroarchitektur so konfiguriert sein, dass nur Lade-/Speicherbefehle auf den Direktzugriffsspeicher zugreifen können. Folglich kann auf diese Weise ein erweiterter Speicher bereitgestellt werden, in den die Mikroarchitektur sowohl die „Partikel“- als auch die Verteilungsinformationen der Mikroarchitekturregister laden und speichern kann.
  • Die Mikroarchitektur kann so konfiguriert sein, dass sie verfolgt, welche Speicheradressen einer Speichereinheit zur Berechnung des Wertes eines beliebigen Floating Point- oder Ganzzahlregisters zu einem beliebigen Zeitpunkt beigetragen haben. Wenn ein „Partikel“-Wert, der sich aus einer arithmetischen Operation ergibt, von einem Register der Mikroarchitektur ausgegeben wird, können die Ausgabedaten eines Partikelwerts, der sich aus einer arithmetischen Operation ergibt, im Speicher gespeichert werden. Die Informationen über die ursprünglichen Adressen oder Ursprungsadressen der Partikeldatenelemente, die zu dem Ausgabeergebnis beigetragen haben (hier als „Ursprungsadressen“ oder „Herkunftsadressen“ bezeichnet: diese beiden Begriffe beziehen sich auf dasselbe), können ebenfalls in einer Speichereinheit gespeichert werden. Der Prozessor kann so konfiguriert sein, dass er die Ursprungsadressen später abruft, wenn der Inhalt des Registers (z.B. der gespeicherte „Partikel“-Wert) zur weiteren Verwendung aus dem Speicher geladen wird. Dies wird im Folgenden näher erläutert, und wir bezeichnen diese Korrelationsverfolgung als „Herkunftsadressenverfolgung“. In der vorliegenden Erfindung stammt in bevorzugten Ausführungsformen der Wert jedes Floating Point-/Ganzzahlregisters von einer oder mehreren Adressen der Speichereinheit. Durch Beibehaltung und Propagierung dieser Adressen ist die Erfindung in der Lage, dynamisch Korrelationen zwischen zwei beliebigen Floating Point-/Ganzzahlregistern zu erkennen. Diese Informationen können z.B. in einer dynamisch verknüpften Liste von „Ursprungsadressen“ gespeichert werden.
  • Die Mikroarchitektur kann so konfiguriert sein, dass sie die arithmetische Operation durch die zweite arithmetische Logikeinheit ausführt, wenn sie durch einen Befehl getriggert wird, der die Ausführung der arithmetischen Operation durch die erste arithmetische Logikeinheit triggert. Die Ausgabe durch die Mikroarchitektur kann einen oder mehrere der folgenden Schritte umfassen: Speichern der Ausgabe in einem Speicher; Übertragen eines Signals, das die Ausgabe übermittelt.
  • Die Mikroarchitektur kann eine Speichereinheit umfassen, die so konfiguriert ist, dass sie die Datenelemente an adressierten Speicherplätzen speichert. Die Mikroarchitektur ist vorzugsweise konfiguriert zum Erhalten der ursprünglichen Speicherplatzadressen von Datenelementen, die zur arithmetischen Operation, die von der ersten arithmetischen Logikeinheit ausgeführt wird, beitragen, während die erste arithmetische Logikeinheit die arithmetische Operation ausführt. Die Mikroarchitektur ist vorzugsweise konfiguriert zum Speichern der erhaltenen ursprünglichen Speicherplatzadressen an einem Speicherplatz innerhalb der Speichereinheit und Verknüpfen des Speicherplatzes mit den weiteren Verteilungsdaten. Die erhaltenen ursprünglichen Speicherplatzadressen können in einer kombinierten Form gespeichert werden, so dass mehrere ursprüngliche Speicherplatzadressen zusammen gespeichert werden können, z.B. in einer Tabelle, wobei mehrere ursprüngliche Speicherplatzadressen in demselben Tabelleneintrag/- platz gespeichert werden.
  • Das erste Register ist vorzugsweise so konfiguriert, dass es ein erstes Datenelement und ein zweites Datenelement enthält. Beispielsweise kann das erste Register einen ersten Satz von Registern umfassen, die Datenelemente enthalten, zu denen das erste Datenelement und das zweite Datenelement gehören. Vorzugsweise umfasst das erste Datenelement einen Wert einer ersten Zufallsvariablen und das zweite Datenelement einen Wert einer zweiten Zufallsvariablen. In ähnlicher Weise kann das zweite Register einen zweiten Satz von Registern umfassen, die Verteilungsdaten enthalten, die Verteilungen darstellen. Das erste und das zweite Register können zum Beispiel jeweils eine Registerdatei sein. Vorzugsweise enthält das zweite Register erste Verteilungsdaten, die ein erstes Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Register zweite Verteilungsdaten, die ein zweites Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, welche die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert, wobei die zur Kodierung der zweiten Verteilungsdaten verwendeten Parameter die gleichen sind wie die zur Kodierung der ersten Verteilungsdaten verwendeten Parameter.
  • Die Mikroarchitektur kann so konfiguriert sein, dass sie durch die zweite arithmetische Logikeinheit eine arithmetische Operation an Verteilungsdaten ausführt, umfassend ein Auswählen des ersten Tupels und des zweiten Tupels und damit das Erzeugen eines dritten Tupels unter Verwendung von im ersten Tupel enthaltenen Parametern und unter Verwendung von im zweiten Tupel enthaltenen Parametern, wobei das dritte Tupel Parameter enthält, die die weiteren Verteilungsdaten kodieren. Die Mikroarchitektur kann so konfiguriert sein, dass sie das dritte Tupel ausgibt.
  • Vorzugsweise enthält das dritte Tupel Parameter, die die weiteren Verteilungsdaten kodieren, die die gleichen sind wie die Parameter, die zur Kodierung der Wahrscheinlichkeitsverteilung verwendet werden, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert.
  • Vorzugsweise umfassen die Verteilungsdaten Wahrscheinlichkeitsverteilungen der jeweiligen Datenelemente.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Position von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, welche die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das zweite Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert. Vorzugsweise enthält das dritte Tupel Parameter, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise enthält das erste Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisieren. Vorzugsweise enthält das zweite Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisieren. Vorzugsweise enthält das dritte Tupel Parameter, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  • Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen. Vorzugsweise umfasst die Wahrscheinlichkeitsverteilung, die die weiteren Verteilungsdaten charakterisiert, eine Verteilung von Dirac-Delta-Funktionen.
  • Vorzugsweise ist das erste Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das zweite Tupel ein N-Tupel, bei dem N > 1 eine ganze Zahl ist. Vorzugsweise ist das dritte Tupel ein M-Tupel, für das N2/2 < M < 2N2 ist, wobei N > 1 eine ganze Zahl ist.
  • In anderen Aspekten, entweder separat oder in Verbindung mit jedem anderen Aspekt hierin, kann die Erfindung die folgenden Aspekte betreffen. Mit anderen Worten, jeder oder mehrere der nachstehend beschriebenen Aspekte kann als getrennt von oder in Kombination mit jedem der oben beschriebenen Aspekte anwendbar angesehen werden. Zum Beispiel kann die oben beschriebene Vorrichtung die unten beschriebene Vorrichtung umfassen, und in ähnlicher Weise gilt dies für die oben und die unten beschriebenen Verfahren.
  • In einem anderen Aspekt, entweder separat oder in Verbindung mit einem anderen Aspekt hierin, kann die Erfindung ein Verfahren betreffen, das in Software oder in der Hardware eines Mikroprozessors, FPGA oder einer anderen digitalen Rechenvorrichtung implementiert werden kann, um Wahrscheinlichkeitsverteilungen von Elementen darzustellen, die sowohl numerische Werte (z.B. Ganzzahlen und Floating Point-Zahlen) als auch kategoriale Werte (z.B. Mengen von Elementen, die keine numerische Interpretation haben) enthalten. Die Erfindung kann sowohl Verteilungen im traditionellen statistischen Sinne als auch mengentheoretische Sammlungen darstellen, bei denen die Elemente der Menge unterschiedliche Zugehörigkeitswahrscheinlichkeiten haben. In dem speziellen Fall, in dem die Werte in den Mengen ganze Zahlen oder Floating Point-Zahlen sind, kann die Erfindung als Datendarstellung für ein Computersystem verwendet werden, das Berechnungen auf Wahrscheinlichkeitsverteilungen von Zahlen in der gleichen Weise durchführt, wie ein herkömmlicher Mikroprozessor Operationen auf ganzen Zahlen und Floating Point-Werten durchführt, und die hierin offenbarten Verfahren und Vorrichtungen zur Ausführung von Arithmetik auf Verteilungen können verwendet werden.
  • In anderen Aspekten, entweder separat oder in Verbindung mit jedem anderen Aspekt hierin, kann die Erfindung die folgenden Aspekte betreffen. Mit anderen Worten, jeder oder mehrere der nachstehend beschriebenen Aspekte kann als getrennt von oder in Kombination mit jedem der oben beschriebenen Aspekte anwendbar angesehen werden. Zum Beispiel kann die oben beschriebene Vorrichtung die unten beschriebene Vorrichtung umfassen, und in ähnlicher Weise gilt dies für die oben und die unten beschriebenen Verfahren.
  • In einem fünften Aspekt kann die Erfindung ein computerimplementiertes Verfahren zur Kodierung von Datenverteilungen bereitstellen, wobei das Verfahren umfasst:
    • Erhalten eines Satzes von Datenelementen;
    • Bestimmen einer Wahrscheinlichkeitsverteilung (oder Häufigkeitsverteilung) für die erhaltenen Datenelemente;
    • Auswählen einer Teilmenge der Datenelemente innerhalb des erhaltenen Datensatzes mit einer Wahrscheinlichkeit, z.B. einer Gesamtwahrscheinlichkeit des Auftretens innerhalb des erhaltenen Datensatzes, die den Wert einer vorgegebenen Schwellenwahrscheinlichkeit überschreitet oder die eine vorgegebene Anzahl von Datenelementen mit der höchsten Wahrscheinlichkeit des Auftretens in dem erhaltenen Datensatz umfasst;
    • Erzeugen eines Tupels für jedes der Datenelemente innerhalb der Teilmenge, wobei ein jeweiliges Tupel einen ersten Wert und einen zweiten Wert umfasst, wobei der erste Wert ein Wert des jeweiligen Datenelements ist und der zweite Wert ein Wert für die Wahrscheinlichkeit des Auftretens des jeweiligen Datenelements innerhalb der erhaltenen Datensatz ist;
    • Normalisieren der Wahrscheinlichkeit des Auftretens jedes einzelnen ausgewählten Datenelements, so dass die Summe der Wahrscheinlichkeiten des Auftretens aller ausgewählten Datenelemente gleich 1,0 ist;
    • Bereitstellen eines Speichers und Speichern des ersten Wertes eines jeden Tupels in einem entsprechenden Speicherplatz;
    • Bereitstellen einer Tabelle (in Software oder Hardware) und Speichern des zweiten Wertes für jedes Tupel in dieser Tabelle in Verbindung mit einem Zeiger, der so konfiguriert ist, dass er den jeweiligen Speicherplatz des ersten Wertes identifiziert.
  • Es versteht sich, dass der Schritt zum Erzeugen eines Tupels für jedes der Datenelemente der Teilmenge entweder nach oder vor dem Schritt der Auswahl einer Teilmenge von Datenelementen durchgeführt werden kann. Wird der Schritt nach dem Schritt der Auswahl einer Teilmenge durchgeführt, dann umfasst der nachfolgende Schritt der Erzeugung der Tupel die Erzeugung von Tupeln nur für die Datenelemente innerhalb der Teilmenge. Wenn er vorher durchgeführt wird, dann umfasst der vorhergehende Schritt der Erzeugung der Tupel die Erzeugung von Tupeln für alle Datenelemente des erhaltenen Datensatzes, und der nachfolgende Schritt der Auswahl der Teilmenge von Datenelementen erfolgt durch einfache Auswahl derjenigen Tupel, die einen Wahrscheinlichkeitswert besitzen, der den Wert einer vorbestimmt Schwellenwahrscheinlichkeit überschreitet, oder die eine vorbestimmte Anzahl von Tupeln mit den höchsten Wahrscheinlichkeitswerten unter allen für den Datensatz erzeugten Tupeln definieren. Auf diese Weise kann die Teilmenge der Datenelemente über die sie repräsentierenden Tupel stellvertretend ausgewählt werden.
  • Der Satz von Datenelementen kann einen Satz numerischer Werte oder einen Satz kategorialer Werte umfassen oder Wertbereiche darstellen (z.B. Wert-„Bins“ in einer Verteilung oder einem Histogramm). Der Satz von Datenelementen kann von einem Messgerät (z.B. einem Sensor) oder von der Ausgabe eines maschinellen Lernmodells (z.B. Gewichte eines künstlichen neuronalen Netzes usw.) oder von der Ausgabe eines Quantencomputers zur Verwendung in einem klassischen Computer erhalten werden, wenn die Messung des Zustands von Qubits des Quantencomputers von ihren überlagerten Zuständen auf die Messwerte „1“ oder „0“ mit zugehörigen Wahrscheinlichkeiten (z.B. ein Vektor einer Bernoulli-Zufallsvariablen) kollabiert. Der Satz von Datenelementen kann aus einer Datenbank oder einem Speicher mit (numerischen oder kategorialen) Datenelementen entnommen werden.
  • Der Schritt der Bestimmung einer Wahrscheinlichkeitsverteilung kann die Bestimmung eines statistischen Datensatzes (oder einer Population) umfassen, der eine Auflistung oder Funktion enthält, die alle möglichen Werte (oder Intervalle, Bereiche/Bins usw.) der Daten und deren Häufigkeit zeigt. Die Verteilung kann eine (empirische oder analytische) Funktion sein, die Werte für Datenelemente innerhalb des Datensatzes und deren Häufigkeit anzeigt. Eine Wahrscheinlichkeitsverteilung kann eine (empirische oder analytische) Funktion sein, die die Wahrscheinlichkeiten des Auftretens verschiedener möglicher/beobachteter Werte von Datenelementen des Datensatzes angibt.
  • Das Verfahren kann die Bestimmung einer Wahrscheinlichkeit des Auftretens von Datenelementen innerhalb des erhaltenen Datensatzes beinhalten, die den Wert der vorgegebenen Schwellenwahrscheinlichkeit (oder Schwellenhäufigkeit) nicht überschreiten oder die nicht zu der vorgegebenen Anzahl gehören. Mit anderen Worten, das Verfahren kann die Bestimmung der weiteren Wahrscheinlichkeit des Auftretens von Datenelementen innerhalb des erhaltenen Datensatzes beinhalten, die nicht zu der Teilmenge gehören. Der Schritt des Normalisierens der Wahrscheinlichkeit des Auftretens jedes einzelnen ausgewählten Datenelements innerhalb der Teilmenge kann so erfolgen, dass die Summe der weiteren Wahrscheinlichkeit und der genannten Wahrscheinlichkeiten des Auftretens aller ausgewählten Datenelemente gleich 1,0 ist. Auf diese Weise kann die weitere Wahrscheinlichkeit die Wahrscheinlichkeit berücksichtigen, dass ein Datenelement des erhaltenen Datensatzes außerhalb der Teilmenge liegt, und dadurch eine „Überlauf”-Wahrscheinlichkeit liefern.
  • Das Verfahren kann das Erzeugen eines kollektiven Tupels für Datenelemente des erhaltenen Datensatzes, die sich nicht in der Teilmenge befinden, umfassen, umfassend einen ersten Wert und einen zweiten Wert, wobei der erste Wert ein Wert ist, der kollektiv für die Datenelemente des erhaltenen Datensatzes, die sich nicht in der Teilmenge befinden, repräsentativ ist, und der zweite Wert ein Wert der normalisierten weiteren Wahrscheinlichkeit des Auftretens der Datenelemente innerhalb des erhaltenen Datensatzes, aber nicht innerhalb der Teilmenge, ist.
  • Das Verfahren kann das Speichern des ersten Wertes des kollektiven Tupels in dem Speicher an einem entsprechenden Speicherplatz und das Speichern des zweiten Wertes des kollektiven Tupels in der Tabelle in Verbindung mit einem Zeiger umfassen, der so konfiguriert ist, dass er den entsprechenden Speicherplatz des ersten Wertes des kollektiven Tupels identifiziert.
  • Das Verfahren kann das Erzeugen einer Darstellung der Verteilungswahrscheinlichkeitsverteilung für die Teilmenge von Datenelementen unter Verwendung des ersten Wertes und des zweiten Wertes einer Vielzahl der vorgenannten Tupel der Teilmenge (z.B. unter Verwendung aller von ihnen) umfassen. Das Verfahren kann das Erzeugen einer Darstellung der Verteilungswahrscheinlichkeitsverteilung für die erhaltenen Datenelemente unter Verwendung des ersten Wertes und des zweiten Wertes einer Vielzahl der vorgenannten Tupel der Teilmenge und unter Verwendung des ersten Wertes und des zweiten Wertes des kollektiven Tupels umfassen.
  • Eine Darstellung der Verteilungswahrscheinlichkeitsverteilung kann gemäß jeder hierin offenbarten Darstellung erfolgen (z.B. eine SoDD-basierte Darstellung). Das Verfahren kann die Durchführung einer arithmetischen Operation an zwei Verteilungen umfassen, wobei eine oder beide Verteilungen wie oben beschrieben erzeugt werden.
  • Bei der genannten Tabelle kann es sich um einen strukturierten Speicher in einer Schaltungsstruktur und nicht um ein Array in einem Computerspeicher handeln. Das Verfahren kann das Bereitstellen einer Logikeinheit umfassen, die so konfiguriert ist, dass sie die Tupel (z.B. der Teilmenge und optional auch das kollektive Tupel) empfängt und deren zweite Werte in Verbindung mit entsprechenden Zeigern an Stellen innerhalb einer Untertabelle der Tabelle speichert, wenn die ersten Werte der Tupel den von der Logikeinheit festgelegten Kriterien entsprechen. Auf diese Weise kann das Verfahren die Tabelle so strukturieren, dass sie Untertabellen umfasst, von denen jede Daten von Tupeln enthält, die einen bestimmten Satz von Kriterien erfüllen. Die Kriterien, die eine der Untertabellen definieren, können sich natürlich von den Kriterien unterscheiden, die eine der anderen Untertabellen definieren.
  • Das Verfahren kann die Bereitstellung einer Copula-Struktur zur Kombination der einzelnen Verteilungen umfassen, die unter Verwendung der Tupel separater Tabellen (die jeweils wie oben beschrieben gebildet werden) oder separater Untertabellen dargestellt werden, um gemeinsame Verteilungen zu erhalten. Die Copula-Struktur kann so konfiguriert sein, dass sie eine multivariate kumulative Verteilungsfunktion erzeugt, für die die marginale Wahrscheinlichkeitsverteilung jeder Variablen gleichmäßig auf dem Intervall [0, 1] ist. Copulas werden verwendet, um die Abhängigkeit zwischen Zufallsvariablen zu beschreiben. Mit Hilfe von Copulas kann man die Verteilung von Zufallsvariablen modellieren und schätzen, indem man Randwerte und Copula getrennt schätzt. Dem Fachmann stehen zu diesem Zweck viele parametrische Copula-Familien zur Verfügung.
  • Die Logikeinheit kann so konfiguriert sein, dass sie ein probabilistisches (z.B. nicht boolesches) Prädikat für die Tabelle implementiert, das so konfiguriert ist, dass es eine Wahrscheinlichkeit (p) (d.h. anstelle eines booleschen „wahr/falsch“-Wertes) für jedes Element der Tabelle zurückgibt, das einem ersten Wert (d.h. einem Wert eines entsprechenden Datenelements) entspricht. Die Kriterien, die verschiedene Untertabellen definieren, können auf diese Weise implementiert werden. Da das Prädikat in Form eines Prädikatsbaums betrachtet werden kann, ist es möglich, das Prädikat in einen String umzuwandeln, indem pre-order traversal oder post-order traversal aller Knoten des Baums verwendet wird, und diesen umgewandelten Baum als Verteilungsdarstellung zu verwenden. Dadurch kann die Größe der Darstellung erheblich reduziert werden, so dass sie nicht mehr exponentiell, sondern linear mit der Größe der Darstellung skaliert. Techniken für das pre-order traversal oder post-order traversal können dem Fachmann ohne weiteres zur Verfügung stehen.
  • Ein Tupel kann die Form einer Datenstruktur annehmen, die aus mehreren Teilen besteht; eine geordnete Menge von Daten, die z.B. einen Datensatz darstellt. Verweise hier auf ein „Tupel“ können als Verweis auf eine endliche geordnete Liste von Elementen betrachtet werden. Verweise auf ein „n-Tupel“ können als Verweis auf eine Folge von n Elementen betrachtet werden, wobei n eine nichtnegative ganze Zahl ist.
  • In einem sechsten Aspekt kann die Erfindung eine Vorrichtung zur Kodierung von Datenverteilungen bereitstellen, wobei die Vorrichtung so konfiguriert ist, dass sie die folgenden Schritte durchführt, umfassend:
    • Erhalten eines Satzes von Datenelementen;
    • Bestimmen einer Wahrscheinlichkeitsverteilung (oder Häufigkeitsverteilung) für die erhaltenen Datenelemente;
    • Auswählen einer Teilmenge der Datenelemente innerhalb des erhaltenen Datensatzes mit einer Wahrscheinlichkeit, z.B. einer Gesamtwahrscheinlichkeit des Auftretens innerhalb des erhaltenen Datensatzes, die den Wert einer vorgegebenen Schwellenwahrscheinlichkeit überschreitet oder die eine vorgegebene Anzahl von Datenelementen mit der höchsten Wahrscheinlichkeit des Auftretens in dem erhaltenen Datensatz umfasst;
    • Erzeugen eines Tupels für jedes der Datenelemente innerhalb der Teilmenge, wobei ein jeweiliges Tupel einen ersten Wert und einen zweiten Wert umfasst, wobei der erste Wert ein Wert des jeweiligen Datenelements ist und der zweite Wert ein Wert für die Wahrscheinlichkeit des Auftretens des jeweiligen Datenelements innerhalb der erhaltenen Datensatz ist;
    • Normalisieren der Wahrscheinlichkeit des Auftretens jedes einzelnen ausgewählten Datenelements, so dass die Summe der Wahrscheinlichkeiten des Auftretens aller ausgewählten Datenelemente gleich 1,0 ist;
    • Bereitstellen eines Speichers und Speichern des ersten Wertes eines jeden Tupels in einem entsprechenden Speicherplatz;
    • Bereitstellen einer Tabelle (in Software oder Hardware) und Speichern des zweiten Wertes für jedes Tupel in dieser Tabelle in Verbindung mit einem Zeiger, der so konfiguriert ist, dass er den jeweiligen Speicherplatz des ersten Wertes identifiziert.
  • Die Vorrichtung kann so konfiguriert sein, dass sie den Schritt der Bestimmung einer Wahrscheinlichkeitsverteilung durch Bestimmung eines statistischen Datensatzes (oder einer Population), der eine Auflistung oder Funktion umfasst, die alle möglichen Werte (oder Intervalle, Bereiche/Bins usw.) der Daten und deren Häufigkeit zeigt, durchführt. Vorzugsweise kann die Vorrichtung als Mikroprozessor, als spezielle digitale Logikschaltung oder als analoge Schaltung zur Durchführung der Verarbeitungsschritte ausgeführt werden.
  • Die Vorrichtung kann so konfiguriert sein, dass sie eine Wahrscheinlichkeit des Auftretens der Datenelemente innerhalb des erhaltenen Datensatzes bestimmt, die den Wert der vorbestimmten Schwellenwahrscheinlichkeit nicht überschreitet oder nicht unter der vorbestimmten Anzahl sind. Die Vorrichtung kann so konfiguriert sein, dass sie den Schritt des Normalisierens der Wahrscheinlichkeit des Auftretens jedes jeweiligen ausgewählten Datenelements innerhalb der Teilmenge so durchführt, dass die Summe der weiteren Wahrscheinlichkeit und der Wahrscheinlichkeiten des Auftretens aller ausgewählten Datenelemente gleich 1,0 ist.
  • Die Vorrichtung kann so konfiguriert sein, dass sie ein kollektives Tupel für Datenelemente des erhaltenen Datensatzes, die sich nicht in der Teilmenge befinden, erzeugt, das einen ersten Wert und einen zweiten Wert umfasst, wobei der erste Wert ein Wert ist, der kollektiv für die Datenelemente des erhaltenen Datensatzes, die sich nicht in der Teilmenge befinden, repräsentativ ist, und der zweite Wert ein Wert der normalisierten weiteren Wahrscheinlichkeit des Auftretens der Datenelemente innerhalb des erhaltenen Datensatzes, aber nicht innerhalb der Teilmenge, ist.
  • Die Vorrichtung kann so konfiguriert sein, dass sie den ersten Wert des kollektiven Tupels in dem Speicher an einem entsprechenden Speicherplatz speichert und in der Tabelle den zweiten Wert des kollektiven Tupels in Verbindung mit einem Zeiger speichert, der so konfiguriert ist, dass er den entsprechenden Speicherplatz des ersten Wertes des kollektiven Tupels identifiziert.
  • Die Vorrichtung kann so konfiguriert sein, dass sie eine Darstellung der Verteilungswahrscheinlichkeitsverteilung für die Teilmenge von Datenelementen unter Verwendung des ersten Wertes und des zweiten Wertes einer Vielzahl der vorgenannten Tupel der Teilmenge (z.B. unter Verwendung aller von ihnen) erzeugt. Die Vorrichtung kann so konfiguriert sein, dass sie eine Darstellung der Verteilungswahrscheinlichkeitsverteilung für die erhaltenen Datenelemente unter Verwendung des ersten Wertes und des zweiten Wertes einer Vielzahl der vorgenannten Tupel der Teilmenge und unter Verwendung des ersten Wertes und des zweiten Wertes des kollektiven Tupels erzeugt.
  • Die Vorrichtung kann mit einem strukturierten Speicher in einer Schaltungsstruktur anstelle eines Arrays in einem Computerspeicher konfiguriert sein. Die Vorrichtung kann eine Logikeinheit bereitstellen, die so konfiguriert ist, dass sie die Tupel (z.B. die Teilmenge und optional auch das kollektive Tupel) empfängt und deren zweite Werte in Verbindung mit entsprechenden Zeigern an Stellen innerhalb einer Untertabelle der Tabelle speichert, wenn die ersten Werte der Tupel die von der Logikeinheit festgelegten Kriterien erfüllen.
  • Die Vorrichtung kann eine Copula-Struktur zum Kombinieren der einzelnen Verteilungen bereitstellen, die unter Verwendung der Tupel separater Tabellen (jede wie oben beschrieben gebildet) oder separater Untertabellen dargestellt werden, um gemeinsame Verteilungen zu erhalten. Die Logikeinheit kann so konfiguriert sein, dass sie ein probabilistisches (z.B. nichtboolesches) Prädikat für die Tabelle implementiert, das so konfiguriert ist, dass es eine Wahrscheinlichkeit (p) (d.h. anstelle eines booleschen „wahr/falsch“-Werts) für jedes Element, das einem ersten Wert (d.h. einem Wert eines jeweiligen Datenelements) entspricht, zurückgibt. Die Kriterien, die verschiedene Untertabellen definieren, können auf diese Weise implementiert werden.
  • In einem anderen Aspekt kann die Erfindung ein Computerprogrammprodukt bereitstellen, das ein Computerprogramm umfasst, das, wenn es auf einem Computer ausgeführt wird, das oben beschriebene erfindungsgemäße Verfahren implementiert. In einem anderen Aspekt kann die Erfindung einen Computer bereitstellen, der mit einem Computerprogramm programmiert ist, das, wenn es auf dem Computer ausgeführt wird, das oben beschriebene Verfahren durchführt.
  • Der Begriff „Schwellenwert“ bezieht sich auf einen Wert, eine Größe oder Menge, die erreicht oder überschritten werden muss, damit eine bestimmte Reaktion, ein bestimmtes Phänomen, ein bestimmtes Ergebnis oder ein bestimmter Zustand eintritt oder sich manifestiert.
  • Wenn hier von „Verteilung“ im Zusammenhang mit einem statistischen Datensatz (oder einer Grundgesamtheit) die Rede ist, kann dies als Verweis auf eine Auflistung oder Funktion verstanden werden, die alle möglichen Werte (oder Intervalle) der Daten und deren Häufigkeit aufzeigt. Eine Verteilung in der Statistik kann als eine (empirische oder analytische) Funktion betrachtet werden, die die möglichen Werte für eine Variable und deren Häufigkeit aufzeigt. In der Wahrscheinlichkeitstheorie und in der Statistik kann man sich eine Wahrscheinlichkeitsverteilung als eine (empirische oder analytische) Funktion vorstellen, die die Eintrittswahrscheinlichkeiten verschiedener möglicher Ergebnisse für die Messung einer Variablen angibt.
  • Die Erfindung umfasst die Kombination der beschriebenen Aspekte und bevorzugten Merkmale, sofern eine solche Kombination nicht eindeutig unzulässig ist oder ausdrücklich vermieden wird.
  • In anderen Aspekten, entweder separat oder in Verbindung mit jedem anderen Aspekt hierin, kann die Erfindung die folgenden Aspekte betreffen. Mit anderen Worten, jeder oder mehrere der nachstehend beschriebenen Aspekte kann als getrennt von oder in Kombination mit jedem der oben beschriebenen Aspekte anwendbar angesehen werden. Zum Beispiel kann die oben beschriebene Vorrichtung die unten beschriebene Vorrichtung umfassen, und in ähnlicher Weise gilt dies für die oben und die unten beschriebenen Verfahren.
  • In anderen Aspekten, entweder separat oder in Verbindung mit jedem anderen Aspekt hierin, kann die Erfindung die folgenden Aspekte betreffen. Mit anderen Worten, jeder oder mehrere der nachstehend beschriebenen Aspekte kann als getrennt von oder in Kombination mit jedem der oben beschriebenen Aspekte anwendbar angesehen werden. Zum Beispiel kann die oben beschriebene Vorrichtung die unten beschriebene Vorrichtung umfassen, und in ähnlicher Weise gilt dies für die oben und die unten beschriebenen Verfahren.
  • In einem anderen Aspekt, entweder separat oder in Verbindung mit einem anderen Aspekt hierin, kann die Erfindung die Neuanordnung von Befehlssequenzen betreffen, um numerische Fehler bei der Propagierung von Unsicherheit über den Berechnungszustand (z.B. Register) zu reduzieren, auf dem die Befehlssequenzen arbeiten.
  • In einem siebten Aspekt kann die Erfindung ein computerimplementiertes Verfahren zur Berechnung eines numerischen Wertes für die Unsicherheit des Ergebnisses einer mehrstufigen numerischen Berechnung bereitstellen, das eine Folge von separaten Berechnungsanweisungen umfasst, die innerhalb eines gemeinsamen „Basisblocks“ definiert sind, wobei das Verfahren umfasst:
    1. (a) Identifizieren einer „live-out“-Variablen des „Basisblocks“;
    2. (b) Identifizieren von Berechnungsanweisungen, von deren Ausgabe der Wert der „live-out“-Variablen abhängt;
    3. (c) Bereitstellen eines mathematischen Ausdrucks, der die in Schritt (b) ermittelten Berechnungsanweisungen kombiniert;
    4. (d) Verwenden des in Schritt (c) bereitgestellten mathematischen Ausdrucks zur Berechnung eines numerischen Werts für die Unsicherheit der „live-out“-Variablen;

    wobei der in Schritt (d) berechnete Unsicherheitswert die Unsicherheit des Ergebnisses der mehrstufigen numerischen Berechnung ist. Es hat sich gezeigt, dass dieses Verfahren nicht nur das Endergebnis der Berechnung genauer macht, sondern auch den Berechnungsprozess effizienter gestaltet.
  • Vorzugsweise kann in dem Verfahren für die „live-out“-Variablen eines Basisblocks statt der Berechnung der aktualisierten Unsicherheit für jede Anweisung, von deren Ergebnissen sie abhängen, die Folge von Anweisungen, deren Ergebnis den Wert der „live-out“-Variablen bestimmt, in einem einzigen Ausdruck zusammengefasst werden, um die aktualisierte Unsicherheit der „live-out“-Variablen zu berechnen.
  • Ein Verweis auf eine Variable als „live-out“ kann als Verweis auf eine Variable angesehen werden, die an einem Knoten (z.B. einer Befehlssequenz) „live-out“ ist, wenn sie an einer der Out-Edges von diesem Knoten live ist. Ein Verweis auf eine Variable als „live-out“ kann als Verweis auf eine Variable betrachtet werden, die ein live-Registereintrag ist (z.B. ein Register, dessen Wert erneut gelesen wird, bevor er überschrieben wird).
  • Ein Verweis auf einen „Basisblock“ kann als Verweis auf eine Befehlssequenz ohne dazwischen liegende Kontrollflussbefehle angesehen werden. Die „live-in“-Variablen für einen Basisblock können als die Programmvariablen oder Maschinenregister betrachtet werden, deren Werte gelesen werden, bevor sie innerhalb des Basisblocks überschrieben werden. Die „live-out“-Variablen eines Basisblocks können als die Programmvariablen oder Maschinenregister betrachtet werden, deren Werte nach dem Verlassen des Basisblocks verwendet werden. Für die „live-out“-Variablen eines Basisblocks kann die Sequenz von Befehlen, deren Ergebnis den Wert der „live-out“-Variablen bestimmt, zur Berechnung der aktualisierten Unsicherheit der „live-out“-Variablen zu einem einzigen Ausdruck zusammengefasst werden, anstatt die aktualisierte Unsicherheit für jeden Befehl zu berechnen, von dessen Ergebnis sie abhängen.
  • In einem anderen Aspekt kann die Erfindung ein Computerprogrammprodukt bereitstellen, das ein Computerprogramm umfasst, das, wenn es auf einem Computer ausgeführt wird, das Verfahren gemäß der oben beschriebenen Erfindung in seinem siebten Aspekt implementiert.
  • In einem anderen Aspekt kann die Erfindung einen Computer bereitstellen, der mit einem Computerprogramm programmiert ist, das, wenn es auf dem Computer ausgeführt wird, das oben beschriebene Verfahren gemäß dem siebten Aspekt der Erfindung implementiert.
  • In einem achten Aspekt kann die Erfindung eine Vorrichtung zur Berechnung eines numerischen Wertes für die Unsicherheit des Ergebnisses einer mehrstufigen numerischen Berechnung bereitstellen, die eine Folge von separaten Berechnungsanweisungen umfasst, die innerhalb eines gemeinsamen „Basisblocks“ definiert sind, wobei die Vorrichtung so konfiguriert ist, dass sie die folgenden Schritte ausführt
    1. (a) Identifizieren einer „live-out“-Variablen des „Basisblocks“;
    2. (b) Identifizieren von Berechnungsanweisungen, von deren Ausgabe der Wert der „live-out“-Variablen abhängt;
    3. (c) Bereitstellen eines mathematischen Ausdrucks, der die in Schritt (b) ermittelten Berechnungsanweisungen kombiniert;
    4. (d) Verwenden des in Schritt (c) bereitgestellten mathematischen Ausdrucks zur Berechnung eines numerischen Werts für die Unsicherheit der „live-out“-Variablen;

    wobei der in Schritt (d) berechnete Unsicherheitswert die Unsicherheit des Ergebnisses der mehrstufigen numerischen Berechnung ist.
  • Die Erfindung umfasst die Kombination der beschriebenen Aspekte und bevorzugten Merkmale, sofern eine solche Kombination nicht eindeutig unzulässig ist oder ausdrücklich vermieden wird.
  • Zusammenfassung der Figuren
  • Ausführungsformen und Experimente, die die Prinzipien der Erfindung veranschaulichen, werden nun unter Bezugnahme auf die beigefügten Figuren erörtert:
    • 1 zeigt schematisch eine Vorrichtung gemäß Ausführungsformen der Erfindung;
    • 2 zeigt eine schematische Darstellung der näherungsweisen Verteilungen für zwei Messdatensätze;
    • 3 zeigt eine schematische Darstellung der Berechnung einer arithmetischen Operation auf den beiden Verteilungen für die zwei Messdatensätze der 2;
    • 4 zeigt eine schematische Darstellung der Berechnung einer arithmetischen Operation auf den beiden Verteilungen für die zwei Messdatensätze der 2;
    • 5 zeigt eine schematische Darstellung eines Prozessors gemäß einer Ausführungsform der Erfindung;
    • 6A zeigt eine schematische Darstellung eines Prozessors gemäß einer Ausführungsform der Erfindung;
    • 6B zeigt eine schematische Darstellung einer Bit-Level-Darstellung von Verteilungsdaten gemäß einer Ausführungsform der Erfindung, die eine TTR- (oder RQHR-) Darstellung verwendet;
    • 6C zeigt eine schematische Darstellung eines Moduls zur Konvertierung einer speicherinternen Anordnung von Partikelsamples (z.B. Daten/Messsamples) einschließlich Verteilungsinformationen/Daten gemäß einer Ausführungsform der Erfindung unter Verwendung der TTR- (oder RQHR-) Darstellung;
    • 6D zeigt die Ausgabeplots einer Verteilung (a) von Eingabedaten und das Ergebnis (b) der Unsicherheitsverfolgung der Eingabedaten mit ein- oder ausgeschalteter Autokorrelationsverfolgung sowie die Ergebnisse der Grundwahrheit (ground truth), die durch die vollständige Auswertung von x*x für alle Samples von x erhalten wurden;
    • 6E zeigt eine schematische Darstellung einer Verteilungs-co-ALU, die als Eingabe zwei Verteilungs-Quellregister und deren Ursprungsadressen verwendet, gemäß einer Ausführungsform der Erfindung mit TTR- (oder RQHR-) Darstellung;
    • 7 zeigt Schritte eines Verfahrens zur Erzeugung einer SoDD-Darstellung der Unsicherheit, die Verteilungsinformationen/Daten gemäß einem Beispiel der Erfindung veranschaulicht;
    • 8 zeigt eine Tabelle der Ursprungsadressen von Datenelementen, die in einem Register gemäß einem Beispiel der Erfindung verwendet werden;
    • 9 zeigt eine Reihe von RISC-V ISA-Befehlen, die mit der Tabelle in 8 assoziiert sind;
    • 10 zeigt zwei Verteilungen, von denen jede eine Darstellung der Unsicherheit ist, und eine weitere Verteilung, die das Ergebnis der Ausführung der arithmetischen Operation der Addition auf ihnen gemäß einem Beispiel der Erfindung ist;
    • 11(a) - (e) zeigen Verteilungen, von denen jede eine Darstellung der Unsicherheit ist, und weitere Verteilungen, die das Ergebnis der Ausführung der arithmetischen Operation (b) Addition, (c) Subtraktion, (d) Multiplikation, (e) Division an ihnen gemäß einem Beispiel der Erfindung sind;
    • 12(a) - (e) zeigen Verteilungen, von denen jede eine Darstellung der Unsicherheit ist, und weitere Verteilungen, die das Ergebnis der Ausführung der arithmetischen Operation (c) Addition, (d) Subtraktion, (e) Multiplikation, (f) Division an ihnen gemäß einem Beispiel der Erfindung sind;
    • 13A zeigt Verteilungen, die die Unsicherheit bei der Berechnung eines Wärmeausdehnungskoeffizienten darstellen, der durch eine Anwendung von arithmetischen Operationen auf Verteilungen, die die Unsicherheit in Sensormessdaten darstellen, gemäß einem Beispiel der Erfindung berechnet wird;
    • 13B und 13C zeigen Verteilungen in den Messungen eines Temperatursensors ( 13A) und die daraus resultierenden Messunsicherheitsverteilungen (13B), die die Unsicherheit in den Sensormessdaten darstellen, gemäß einem Beispiel der Erfindung;
    • 13D, 13E und 13F zeigen Verteilungen der Unsicherheit bei Messungen, die von einer Quantenphasenschätzungsschaltung (QPE) einer Variationsquanten-Eigensolver-Vorrichtung durchgeführt werden, die einen Variationsquanten-Eigensolver-Algorithmus implementiert, wobei die Unsicherheitsverteilungen die Unsicherheit in den Messdaten gemäß einem Beispiel der Erfindung darstellen;
    • 14 zeigt Beispiele [Graphen: (a), (b), (c) und (d)] für die Wahrscheinlichkeiten von Sätzen {n} von n Werten in jedem von vier verschiedenen erhaltenen Datensätzen und zeigt eine Untermenge von Werten aus einem erhaltenen Datensatz zusammen mit Wahrscheinlichkeitswerten für das Auftreten jedes Wertes innerhalb der Untermenge. Aus Datenwerten und zugehörigen Wahrscheinlichkeitswerten gebildete Tupel werden gezeigt. Es wird eine annähernde Wahrscheinlichkeitsverteilung gezeigt, die eine Reihe von Dirac-Delta-Funktionen (SoDD) umfasst, die unter Verwendung der Tupel erzeugt wurden;
    • 15 zeigt ein Hardware-Blockdiagramm einer Ausführungsform der Erfindung;
    • 16 zeigt ein Beispiel für einen probabilistischen Prädikatsbaum;
    • 17 zeigt ein Flussdiagramm eines erfindungsgemäßen Verfahrens;
    • 18(a) und 18(b) zeigen einen Programmcode (18(a)) und eine Assembler-Befehlssequenz (18(b)), die von einem Compiler aus diesem Programmcode erzeugt wurde;
    • 19 zeigt den Programmcode (18(a)) und einen TAD-Basisblock dafür, zusammen mit Berechnungsschritten zur Berechnung der Unsicherheit an Stufen des Basisblocks;
    • 20 zeigt den TAD-Basisblock von 19 zusammen mit Berechnungsschritten zur Berechnung der Unsicherheit an Stufen des Basisblocks;
    • 21 zeigt den TAD-Basisblock von 19 zusammen mit Berechnungsschritten zur Berechnung der Unsicherheit an Stufen des Basisblocks;
    • 22 zeigt den in mehrere Basisblöcke unterteilten TAD-Code.
  • Detaillierte Beschreibung der Erfindung
  • Aspekte und Ausführungsformen der vorliegenden Erfindung werden nun unter Bezugnahme auf die beigefügten Figuren erörtert. Weitere Aspekte und Ausführungsformen werden für den Fachmann offensichtlich sein. Alle Dokumente, die in diesem Text erwähnt werden, sind hier durch Bezugnahme aufgenommen.
  • Beispiel
  • 1 zeigt eine Vorrichtung 1 gemäß einer Ausführungsform der Erfindung. Die Vorrichtung umfasst eine Rechenvorrichtung 3, die mit einer Messvorrichtung 2 in Form einer Sensoreinheit (z.B. einem Beschleunigungsmesser, einem Magnetometer usw.) kommuniziert, die so konfiguriert ist, dass sie Messungen einer messbaren Größe erzeugt: einer Messgröße (z.B. Beschleunigung, magnetische Flussdichte usw.). Die Rechenvorrichtung 3 umfasst eine Prozessoreinheit 4, die mit einer lokalen Pufferspeichereinheit 5 und einer lokalen Hauptspeichereinheit 6 kommuniziert. Die Rechenvorrichtung ist so konfiguriert, dass sie als Eingabe Daten von der Sensoreinheit empfängt, die Messungen der Messgröße (z.B. Beschleunigung, magnetische Flussdichte usw.) darstellen, und dass sie die empfangenen Messungen in der lokalen Hauptspeichereinheit 6 speichert. Die Prozessoreinheit 4 ist in Verbindung mit der Pufferspeichereinheit 5 so konfiguriert, dass sie auf die gespeicherten Messungen einen Datenverarbeitungsalgorithmus anwendet, der so konfiguriert ist, dass er die im Hauptspeicher gespeicherten Sensormessungen abtastet, um einen Samplesatz von Messungen zu erzeugen, der die Unsicherheit in den von der Sensoreinheit 2 durchgeführten Messungen repräsentiert, während er gleichzeitig die Messgröße so genau darstellt, wie es die Sensoreinheit erlauben kann.
  • Diese Darstellung der Unsicherheit wird dadurch erreicht, dass der Samplesatz so erzeugt wird, dass die Verteilung der Messwerte innerhalb des Samplesatzes die Wahrscheinlichkeitsverteilung der Messungen durch die Sensoreinheit 2 darstellt. Die Rechenvorrichtung ist so konfiguriert, dass sie den einmal erzeugten Samplesatz in ihrem Hauptspeicher 6 speichert und/oder den Samplesatz (z.B. über eine serielle E/A-Schnittstelle) an einen externen Speicher 7 überträgt, der mit der Rechenvorrichtung in Verbindung steht, und/oder über eine Sendeeinheit 8 ein oder mehrere Signale 9 überträgt, die den Samplesatz an einen entfernten Empfänger (nicht dargestellt) übermitteln. Das Signal kann (z.B. über eine serielle E/A-Schnittstelle) drahtlos, faseroptisch oder über andere Übertragungswege übertragen werden, die dem Fachmann ohne weiteres einleuchten.
  • Auf diese Weise ist die Rechenvorrichtung so konfiguriert, dass sie eine beliebige Anzahl (Mehrzahl) von Samplesätzen über einen bestimmten Zeitraum erzeugt und speichert, wobei die Verteilung der Messwerte in jedem Samplesatz die Wahrscheinlichkeitsverteilung der Messungen durch die Sensoreinheit 2 darstellt. In ähnlicher Weise ist die Rechenvorrichtung so konfiguriert, dass sie eine beliebige Anzahl (Mehrzahl) von Samplesätzen erzeugt und speichert, die durch verschiedene Betriebsarten der Sensoreinheit 2 oder durch verschiedene Sensoreinheiten 2 erzeugt werden. Mit anderen Worten, ein erster von der Rechenvorrichtung gespeicherter Samplesatz kann einer ersten Sensoreinheit zugeordnet sein und ein zweiter von der Rechenvorrichtung gespeicherter Samplesatz kann einer zweiten Sensoreinheit zugeordnet sein, die nicht mit der ersten Sensoreinheit identisch ist. Bei der ersten Sensoreinheit kann es sich beispielsweise um einen Spannungssensor (elektrische Spannung) und bei der zweiten Sensoreinheit um einen Stromsensor (elektrischer Strom) handeln. In beiden Fällen kann die Rechenvorrichtung Verteilungen von Messwerten speichern, die von jedem Sensor gemacht werden und die jeweils die Wahrscheinlichkeitsverteilung von Messungen durch diese Sensoreinheit 2 darstellen.
  • Die Rechenvorrichtung 3 ist so konfiguriert, dass sie ein Verfahren zur Kodierung und Verarbeitung von in der Hauptspeichereinheit gespeicherten Datenverteilungen wie folgt durchführt.
  • In einem ersten Schritt erhält die Rechenvorrichtung 3 einen ersten Satz von Messdatenelementen von der Sensoreinheit 2 und einen zweiten Satz von Messdatenelementen von der Sensoreinheit 2 (bei der es sich um denselben Sensor oder einen anderen Sensor handeln kann). Diese Datensätze werden aus der Hauptspeichereinheit entnommen und für die Dauer der Verarbeitung in der Pufferspeichereinheit 5 gespeichert. Die Prozessoreinheit 4 wendet dann auf den ersten und zweiten Satz von Messdatenelementen ein Verfahren an, mit dem eine ungefähre Verteilung des jeweiligen Satzes von Messdatenelementen erzeugt wird. Bei diesem Verfahren kann es sich um eines der oben beschriebenen Verfahren zur Erzeugung einer N-dimensionalen SoDD-basierten Darstellung eines festen Typs handeln, die oben als FDR, d.h. RQHR, PQHR, MQHR oder TTR bezeichnet ist, oder um eine N-dimensionale CMR-Darstellung. Die Prozessoreinheit wendet den gleichen Prozess auf jeden der ersten und zweiten Messdatensätze separat an, um ein erstes N-Tupel zu erzeugen, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Messdatenelemente des ersten Satzes charakterisiert, und ein zweites N-Tupel, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Messdatenelemente des zweiten Satzes charakterisiert.
  • Es ist zu beachten, dass das gleiche Verfahren von der Prozessoreinheit angewandt wird, und die Parameter für die Kodierung der Verteilung der Datenelemente des zweiten Satzes (d.h. die Positionen, xi, der Dirac-δ Funktionen, die die Daten des zweiten Satzes repräsentieren, und ihre Höhen/Wahrscheinlichkeiten, pi) sind die gleichen wie die Parameter, die zur Kodierung der Verteilung der Datenelemente des ersten Satzes verwendet werden (d.h. die Positionen, xi, der Dirac-δ Funktionen, die die Daten des ersten Satzes repräsentieren, und ihre Höhen/Wahrscheinlichkeiten, pi). Natürlich sind die Parameter (Position, Wahrscheinlichkeit) dieselben, aber nicht ihre Werte.
  • 2 zeigt ein schematisches Beispiel dieses Prozesses für den Fall, dass die N-dimensionale SoDD-basierte Darstellung die MQHR-Darstellung ist. Das Ergebnis der Anwendung der MQHR-Verarbeitung auf den ersten Messdatensatz ist die Erzeugung einer ersten N-dimensionalen SoDD-basierten Darstellung 11 des ersten Messdatensatzes, die vollständig durch die Parameter eines ersten N-Tupels 10 definiert ist: R MQHR N ( X ) : = ( x 1 ,   ,   x N d d ,   p 1 , ,   p N d d )
    Figure DE112022002790T5_0108
  • In ähnlicher Weise ist das Ergebnis der Anwendung der MQHR-Verarbeitung auf den zweiten Messdatensatz die Erzeugung einer zweiten N-dimensionalen SoDD-basierten Darstellung 13 des zweiten Messdatensatzes, die vollständig durch die Parameter eines zweiten N-Tupels 12 definiert ist: R M Q H R N ( Y ) : = ( y 1 ,   y N d d ,   p , ,   p N d d )
    Figure DE112022002790T5_0109
  • Es ist zu beachten, dass die Werte der Parameter im ersten N-Tupel 10 im Allgemeinen nicht dieselben Werte sind wie die Werte der Parameter des zweiten N-Tupels 11. Dies liegt natürlich einfach daran, dass die Verteilungen der Messwerte im ersten und zweiten Messdatensatz im Allgemeinen nicht übereinstimmen werden.
  • Die Prozessoreinheit 4 kann so konfiguriert sein, dass sie die ersten und zweiten N-Tupel (10, 11) in der Hauptspeichereinheit 6 speichert, um später eine arithmetische Operation (Propagation) auf sie anzuwenden. Die Prozessoreinheit kann dann einfach die ersten und zweiten N-Tupel (10, 11) aus der Hauptspeichereinheit 6 abrufen und sie beispielsweise in der Pufferspeichereinheit 5 ablegen, um bei Bedarf eine arithmetische Operation (Propagierung) auf sie anzuwenden. In alternativen Ausführungsformen kann der Prozessor so konfiguriert sein, dass er das erste Tupel und das zweite Tupel als Ausgabe von einer entfernten Speichereinheit 7 erhält oder indem er sie als Ausgabe von einem Empfänger 8 empfängt, der ein Signal 9 empfängt, das die ersten und zweiten Tupel von einem entfernten Sender/einer entfernten Quelle (nicht dargestellt) übermittelt.
  • Als nächstes erzeugt die Prozessoreinheit 4 ein drittes Tupel, indem sie eine arithmetische Operation auf die erste und zweite N-dimensionale SoDD-basierte Darstellung (11, 13) des ersten und zweiten Messdatensatzes anwendet, von denen jede vollständig durch die Parameter ihres jeweiligen N-Tupels (10, 12) definiert ist: R MQHR N ( X ) : = ( x 1 ,   x N d d ,   p 1 , ,   p N d d )
    Figure DE112022002790T5_0110
  • Für diese arithmetische Operation verwendet der Prozessor Parameter (d.h. die Positionen, xi, der Dirac-δ Funktionen, die Daten darstellen, und ihre Höhen/Wahrscheinlichkeiten, pi, die im ersten Tupel enthalten sind, und die Parameter (d.h. die Positionen, xi, der Dirac-δ Funktionen, die Daten repräsentieren, und deren Höhen/Wahrscheinlichkeiten, pi), die imm zweiten Tupel enthalten sind. Das Ergebnis ist ein drittes Tupel mit Parametern, die eine Wahrscheinlichkeitsverteilung kodieren, die das Ergebnis der Anwendung der arithmetischen Operation auf die erste Wahrscheinlichkeitsverteilung und die zweite Wahrscheinlichkeitsverteilung darstellt. Der Prozessor gibt dann das dritte Tupel entweder an die lokale Speichereinheit 6 zur Speicherung und/oder an die Sendeeinheit 8 zur Übertragung 9 aus.
  • Die Prozessoreinheit ist so konfiguriert, dass sie eine oder mehrere der folgenden arithmetischen Operationen ausführt: Addition, Subtraktion, Multiplikation, Division oder eine beliebige bivariate Operation, z.B. eine Potenzierung und viele andere. Als Beispiel für eine arithmetische Operation zeigt 3 schematisch die Additions- und Multiplikationsoperationen an Verteilungen, die durch die ersten und zweiten N-dimensionalen SoDD-basierten Darstellungen (11, 13) der ersten und zweiten Messdatensätze approximiert werden: f ˜ X FDR ( x ) = n = 1 N d d p n δ ( x x n )  and  f ˜ Y FDR ( y ) = n = 1 N d d q n δ ( y y n ) .
    Figure DE112022002790T5_0111
  • Diese beiden Verteilungen (mit „FDR“ = MQHR in diesem Beispiel) werden addiert oder miteinander multipliziert, um eine dritte N-dimensionale SoDD-basierte Darstellung 15 zu erzeugen: f ˜ Φ ( X ,   Y ) ( z ) = n = 1 N d d m = 1 N d d p n q m δ ( z Φ ( x n ,   y m ) ) .
    Figure DE112022002790T5_0112
  • Die dritte SoDD-basierte Darstellung 15 stellt das Ergebnis der Addition dar, wenn die Größe Φ(xn, ym) innerhalb dieser Darstellung berechnet wird als Φ(xn, ym) = Φ+(xn, ym) = xn + ym, wie oben beschrieben.
  • Die dritte N-dimensionale SoDD-basierte Darstellung 15 stellt das Ergebnis der Multiplikation dar, wenn die Größe Φ(xn, ym) innerhalb dieser Darstellung berechnet wird als Φ(xn, ym) = Φ×(xn, ym) = xn × ym, wie oben beschrieben.
  • Die Prozessoreinheit muss jedoch keine der ersten, zweiten oder dritten SoDD-basierten Darstellungen (11, 13, 15) reproduzieren, um das dritte Tupel 15 zu erzeugen. Denn der arithmetische Prozess ermöglicht es, jeden Parameter des dritten Tupels aus den Parametern des ersten Tupels und des zweiten Tupels zu erzeugen. Sobald die Parameter des dritten Tupels berechnet sind, ist die dritte SoDD-basierte Darstellung 15 vollständig kodiert, so dass diese dritte Verteilung bei Bedarf reproduziert werden kann und das dritte Tupel in sehr effizienter Form gespeichert (in der lokalen Speichereinheit 5 oder im entfernten Speicher 7) und/oder als Signal 9 von der Sendeeinheit 8 übertragen werden kann.
  • Für diese Speicherung/Übertragung sind lediglich die Parameter (d.h. die Positionen, zi, der Dirac-δ Funktionen, die die Daten des dritten Satzes repräsentieren, und ihre Höhen/Wahrscheinlichkeiten, pi) erforderlich, die eine Wahrscheinlichkeitsverteilung kodieren, die die Verteilung der Datenelemente des dritten Satzes 15 von Datenelementen charakterisiert, die das Ergebnis der arithmetischen Operation sind. Die Parameter, die zur Kodierung der Verteilung der Datenelemente des dritten Satzes verwendet werden, sind die gleichen wie die Parameter, die zur Kodierung der Verteilung der Datenelemente des ersten Satzes und des zweiten Satzes verwendet werden, da der dritte Satz unter Verwendung der gleichen SoDD-basierten Darstellung (d.h. MQHR in diesem Beispiel) wie der erste Satz und der zweite Satz kodiert wird. Um das gleiche Darstellungsformat (oder die gleichen Parameter) für die propagierte Variable z zu erreichen, wird das dritte Tupel (18 in 4) vorzugsweise auf ein „kompaktes“ drittes Tupel (18B in 4) reduziert, das ein N-Tupel ist. Dies ermöglicht weitere Berechnungen, die z involvieren, ohne dass die Darstellungsgrößen ins Unendliche wachsen. Diese Verkleinerung auf eine Standardgröße (d.h. N-Tupel) hilft auch bei der hier diskutierten mikroarchitektonischen Implementierung. 4 zeigt schematisch den Prozess der Multiplikation, der auf zwei Verteilungen (11, 13) in der MQHR-Darstellung angewendet wird und zu einer dritten Verteilung 15 ebenfalls in der MQHR-Darstellung führt. 4 zeigt auch die Durchführung dieses Vorgangs in Form der Verwendung der Parameter (Position, Wahrscheinlichkeit) des N-Tupels für die erste Verteilung 11 der beiden Verteilungen, und die Verwendung der Parameter (Position, Wahrscheinlichkeit) des N-Tupels für die zweite Verteilung 12 der beiden Verteilungen, um ein drittes Tupel 18 zu erzeugen, das Parameter (Position, Wahrscheinlichkeit) mit Werten enthält, die die aus der Multiplikation resultierende Verteilung definieren. Dieses dritte Tupel wird dann vorzugsweise verwendet, um ein „kompaktes“ drittes Tupel 18B, wie oben beschrieben, zu erzeugen, das die gleiche Größe (ein N-Tupel) wie das erste und zweite Tupel (10, 12) hat.
  • Insbesondere die Positionen, zk, der Dirac-δ-Funktionen, die Daten des dritten Satzes 15 darstellen, sind durch die Werte von Φ(xn, ym) gegeben. Die Höhen/Wahrscheinlichkeiten, pk, der Dirac-δ-Funktionen, die Daten des dritten Satzes darstellen, sind durch das Produkt, pk = pn × pm, der Höhen/Wahrscheinlichkeiten der Dirac-δ-Funktionen gegeben, die die Daten des ersten (pn) und des zweiten (pm) Datensatzes darstellen. Dies lässt sich im Falle einer Multiplikation der ersten und zweiten Verteilung schematisch wie folgt zusammenfassen: ( x 1 ,   ,   x N d d ,   p 1 ,   ,   p N d d ) × ( y 1 ,     γ N d d ,   p 1 ,   ,   p N d d ) = ( z 1 ,   ,   z ( Ndd ) 2 ,   p 1 ,   . p ( Ndd ) 2 )
    Figure DE112022002790T5_0113
  • Die Erfindung ist nicht auf SoDD-basierte Darstellungen (wie z.B. MQHR) beschränkt, und die ersten, zweiten und dritten Tupel können im Allgemeinen Parameter gemäß anderen Darstellungen enthalten, die die Position und/oder Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des ersten, zweiten und dritten Satzes charakterisiert, kodieren, wie in einem der oben beschriebenen Beispiele. Die ersten, zweiten und dritten Tupel können Parameter gemäß anderen Darstellungen enthalten, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des ersten Satzes charakterisiert, kodieren. Beispielsweise können die ersten, zweiten und dritten Tupel, wie oben erörtert, Parameter enthalten, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung, die die Verteilung der Datenelemente des ersten Satzes charakterisiert, kodieren.
  • Das erste und das zweite Tupel sind jeweils ein N-Tupel, wobei N > 1 eine ganze Zahl ist, und das dritte Tupel ist ein M-Tupel, für das N2/2 < M < 2N2 gilt, wobei N > 1 eine ganze Zahl ist. Das kompakte dritte Tupel ist, falls es erzeugt wird, vorzugsweise ein N-Tupel. Die Effizienz der Datenspeicherung und -übertragung wird durch die Erfindung erheblich gesteigert, indem das erste und das zweite Tupel zur Darstellung von Datenverteilungen verwendet werden, aber auch durch die Verwendung des dritten Tupels zur Darstellung der dritten Verteilung von Daten. Es werden viel weniger Daten benötigt, um die Datenverteilungen zu repräsentieren, was die Belastung des Speicherplatzes für die Speicherung der erfindungsgemäßen Datenverteilungen stark verringert. Darüber hinaus wird ein effizientes Mittel zur Durchführung arithmetischer Operationen auf den Datensätzen bereitgestellt, das die Rechenlast auf einem Computersystem erheblich reduziert.
  • Zur besseren Veranschaulichung einer Anwendung der Erfindung in diesem Zusammenhang können der erste und der zweite Datensatz typischerweise Samples einer ersten und einer zweiten zufälligen Messvariablen umfassen, die die Unsicherheit der Messungen darstellen. Beispielsweise kann der erste Datensatz Messungen von einem Spannungssensor umfassen, z.B. einer Spannung (V) über einer Schaltungskomponente, und der zweite Datensatz kann Messungen von einem Stromsensor umfassen, z.B. eines Stroms (I) durch die Schaltungskomponente. Folglich kann der dritte Datensatz, der durch Anwendung der arithmetischen Operation der Multiplikation auf die Verteilungen des ersten und zweiten Datensatzes erzeugt wird, die Unsicherheit in der in der Schaltungskomponente dissipierten elektrischen Leistung (P = I × V) angeben. Auf diese Weise wird die Überwachung der Verlustleistung der Schaltungskomponente und die Darstellung der Unsicherheit der gemessenen Leistung nicht nur möglich, sondern auch sehr viel effizienter in Bezug auf den Speicherbedarf des Überwachungscomputers und in Bezug auf die Verarbeitungs-/Rechenlast auf diesem Computer.
  • Beispiel
  • Mikroarchitektur
  • Die obige Offenbarung bietet effiziente binäre Zahlendarstellungen der Unsicherheit für Daten, deren Werte unsicher sind. Im Folgenden wird eine Beispiel-Hardwarearchitektur zur effizienten Durchführung von Berechnungen mit diesen Darstellungen beschrieben. Die Beispiel-Hardwarearchitektur kann ein Beispiel für die oben unter Bezugnahme auf 1 beschriebene Prozessoreinheit 4 sein. Die Prozessoreinheit 4 kann in Form einer Mikroarchitektur bereitgestellt sein, die im Folgenden im Detail unter Bezugnahme auf die 5, 6A, 6B und 6C beschrieben ist.
  • Die oben genannten binären Zahlendarstellungen (Tupel) für Daten stellen einen Kompromiss zwischen der Anzahl der in den Darstellungen verwendeten Bits und der Genauigkeit einer Darstellung empirischer Wahrscheinlichkeitsverteilungen dar. Mit anderen Worten, weniger Bits bedeuten eine größere Effizienz der Unsicherheitsdarstellung, allerdings um den Preis eines akzeptablen Verlustes an Genauigkeit in dieser Darstellung. Die oben vorgestellten Beispiele für Unsicherheitsdarstellungen ermöglichen es Computersystemen im Allgemeinen, unsichere Größen effizient darzustellen, selbst wenn diese Größen selten vorkommende große Ausreißer aufweisen.
  • Die oben vorgestellten Unsicherheitsdarstellungen und Algorithmen zur Durchführung von Arithmetik auf ihnen können in einer Mikroarchitektur für die Verarbeitung von Daten im Zusammenhang mit Verteilungen (Verteilungsinformationen/-daten) implementiert werden. Mit der Mikroarchitektur kann eine Befehlssatzarchitektur (ISA) verwendet werden, die eine Erweiterung der RISC-V 32-Bit ISA ist. Die Mikroarchitektur kann bestehende RISC-V-Programme unverändert ausführen, und ihre ISA kann erweitert werden, um neue Möglichkeiten zum Setzen und Lesen von Verteilungsinformationen/-daten ohne Änderung der Programmsemantik zu eröffnen. Die Mikroarchitektur kann verteilungsrelevante Informationen/Daten darstellen und propagieren und auf der Softwareebene ein Bewusstsein für Unsicherheiten schaffen.
  • Unsichere Daten sind in Datenverarbeitungssystemen allgegenwärtig. Ein gängiges Beispiel sind Sensormessungen, bei denen die Natur physikalischer Messungen bedeutet, dass immer ein gewisser Grad an Unsicherheit zwischen dem aufgezeichneten Wert (der Messung) und der gemessenen Größe (der Messgröße) besteht. Diese Form der Messunsicherheit wird oft quantifiziert, indem wiederholte Messungen mit nominell festgelegter Messgröße durchgeführt werden und die Abweichung zwischen den Messungen mit Hilfe einer statistischen Analyse beobachtet oder die Anzahl der signifikanten Stellen notiert wird. Eine solche numerisch quantifizierte Unsicherheit wird in der Literatur als aleatorische Unsicherheit bezeichnet. Unsicherheit kann auch dann bestehen, wenn nur unzureichende Informationen über eine interessierende Größe vorhanden sind. Der Trainingsprozess für neuronale Netze bestimmt beispielsweise die Werte der Gewichte pro Neuron, die beim Training durch Backpropagation über Trainingsepochen hinweg aktualisiert werden. Aufgrund des großen Raums möglicher Werte für die Parameter, die den Trainingsprozess steuern, wie z.B. der Impuls für Gradientenaktualisierungen und die Schrittgröße (so genannte Hyperparameter), sind die Gewichte in einem neuronalen Netzmodell anfangs unsicher, konvergieren aber schließlich zu einer engeren Verteilung der Gewichtswerte als Ergebnis des Trainingsprozesses. Im Falle eines Messgeräts werden die zufälligen Fehler, die bei der Messung auftreten können, als aleatorische Unsicherheit betrachtet. Die epistemische Unsicherheit bezieht sich auf unsere unvollkommene Kenntnis oder Unkenntnis der Parameter des untersuchten Phänomens. Die vorliegende Erfindung, wie sie durch die Mikroarchitektur oder auf andere Weise umgesetzt wird, kann Verteilungsinformationen/-daten (z.B. Wahrscheinlichkeitsverteilungen, Häufigkeitsverteilungen usw.) kodieren, darstellen und propagieren, die die Unsicherheit in den von einem Messgerät (z.B. Sensor) erfassten Messdaten darstellen, und/oder kann Verteilungsinformationen/-daten propagieren, die Verteilungsgewichte eines künstlichen neuronalen Netzes definieren.
  • Eine solche Unsicherheit in Werten, die aus unvollständigen Informationen über die Werte resultiert, die sie annehmen sollten, wird in der Forschungsliteratur häufig als epistemische Unsicherheit bezeichnet. Trotz der zunehmenden Bedeutung dieser beiden Arten von unsicheren Daten in modernen Computersystemen verfügen moderne Computerarchitekturen weder über eine Unterstützung für die effiziente Darstellung von epistemischer Unsicherheit noch für die Darstellung von aleatorischer Unsicherheit, geschweige denn für Arithmetik und Kontrollfluss auf solchen Werten. Heutige Computerarchitekturen stellen beide Arten von unsicheren Werten mit Einzelpunktwerten oder „Partikel“-Werten dar (d.h. Daten ohne zugehörige Verteilung), wobei üblicherweise der Mittelwert als Repräsentation für die Verwendung in der Berechnung genommen wird. Der Kürze halber werden im Folgenden Einzelpunktwerte (d.h. Daten ohne zugehörige Verteilung) als „Partikel“-Werte bezeichnet. Die hier offenbarte 0Mikroarchitektur bietet eine nicht-intrusive architektonische Erweiterung der RISC-V ISA für Berechnungen sowohl mit epistemischer als auch mit aleatorischer Unsicherheit.
  • Die Mikroarchitektur kann es Programmen ermöglichen, Verteilungsinformationen mit allen Floating-Point-Registern und/oder Integer-Registern und damit mit allen ausgewählten Speicherwörtern zu verknüpfen, die zum Laden und Speichern von Registerwerten verwendet werden. Arithmetische Befehle können die Verteilungsinformationen/-Daten, die mit den Registern assoziiert sind, die die Quelloperanden sind, an das Zielregister und bei einer Speicheroperation zurück an den Speicher geben.
  • Beispiele für Darstellungen (z.B. SoDD-basierte Darstellungen, CMR-Darstellungen) zur effizienten Erfassung der Unsicherheit jedes Speicherelements innerhalb der Mikroarchitektur mittels diskreter Wahrscheinlichkeitsverteilungen wurden bereits genannt. Auf diese Weise können Computerdarstellungen für Variablen mit Verteilungsinformationen als analog zu Computerdarstellungen für reellwertige Zahlen wie Fixed-Point Floating-Point Darstellungen betrachtet werden. Insbesondere Fixed-Point Darstellungen verwenden eine feste Anzahl von Bits für ganze und gebrochene Teile einer reellen Größe und stellen ungefähre reelle Werte als feste Abstände über ihren dynamischen Bereich dar, während Floating-Point Darstellungen reelle Größen mit einem Exponentialausdruck darstellen, der die Darstellung eines größeren dynamischen Bereichs ermöglicht, aber zu ungleichmäßigen Abständen der Werte auf der reellen Zahlenlinie führt. Genauso wie Fixed-Point Floating-Point Darstellungen die Anzahl der Bits in ihren Darstellungen reeller Größen gegen die Genauigkeit in Bezug auf die dargestellte reelle Zahl tauschen, tauschen die hier offenbarten Verteilungsdarstellungen/-Daten die Bits in den Darstellungen gegen die Genauigkeit der Darstellung empirischer Wahrscheinlichkeitsverteilungen.
  • Die Mikroarchitektur kann die Unsicherheit über eine Berechnung transparent für die Standardsemantik der Standard-RISC-V ISA darstellen und verfolgen. Die Mikroarchitektur kann es einem Benutzer ermöglichen, an jedem Punkt der Berechnung probabilistische und statistische Abfragen zur Unsicherheit zu machen.
  • Da die hier offenbarten Darstellungsbeispiele (z.B. SoDD-basierte Darstellungen, CMR-Darstellungen) von endlicher Länge sind, stellen sie eine Annäherung an die Wahrscheinlichkeitsdichtefunktion der ursprünglichen diskreten Zufallsvariablen dar. Zur Erinnerung: Sei δ(x) die Dirac-Verteilung, deren Zentrum bei x ist. Bei einem „Partikel“-Wert x0 ∈ ℝ definiert man den Partikelwert als die Verteilung δ(x - x0). Mit dieser Definition stellt man ein Array von M Partikelwerten dar als eine Summe gewichteter Dirac-Deltas in der Form ƒ X ( x ) = n = 1 M p n δ ( x x n )
    Figure DE112022002790T5_0114
    wo pn ∈ [0,1] mit: n = 1 M p n = 1
    Figure DE112022002790T5_0115
  • Im Falle von M Partikelwerten setzt man pn gleich der Wahrscheinlichkeit des Auftretens jedes der M Werte, also 1/M. Somit hat die aktualisierte Dirac-Deltaverteilung der M Partikelwerte die folgende Form: f X ( x ) = 1 M n = 1 M δ ( x x n )
    Figure DE112022002790T5_0116
  • Diese Verteilung ist eine genaue Darstellung, die wir als Dirac-Mischungsdarstellung bezeichnen werden. Die Dirac-Mischungsdarstellung kann als Referenzverteilungsdarstellung von Partikeldaten verwendet werden, um die folgenden drei kompakten Verteilungsdarstellungen zu definieren, die weiter oben näher erläutert werden. Wir definieren eine Verteilungsfunktion einer Zufallsvariablen X, durch die Funktion: F ( x ) = ( X x ) .
    Figure DE112022002790T5_0117
  • Für diskrete Zufallsvariablen, d.h. Variablen, die nur in einer abzählbaren Teilmenge der reellen Zahlen ℝ Werte annehmen, definieren wir die Wahrscheinlichkeitsmassenfunktion einer diskreten Zufallsvariablen X als: ƒ ( x ) = ( X = x ) .
    Figure DE112022002790T5_0118
  • Dabei ist ℙ(X = x) die Wahrscheinlichkeit, dass die Zufallsvariable X den beobachteten Wert x aufweist. Wir definieren den Mittelwert bzw. den Erwartungswert einer Zufallsvariablen X mit der Wahrscheinlichkeitsmassenfunktion ƒ(x) als: E ( X ) = x : ƒ ( x ) > 0 x ƒ ( x ) .
    Figure DE112022002790T5_0119
  • Centralized Moments Representation (CMR):
  • Diese Darstellung verwendet den Erwartungswert und die ersten N zentralisierten Momente der Dirac-Mischungsdarstellung eines Arrays von Partikeldaten. Wir schließen das erste zentralisierte Moment aus, das immer gleich Null ist. Wir definieren die N-te Ordnung CMR einer diskreten Zufallsvariablen X als das oben definierte geordnete N-Tupel. Der Vollständigkeit halber definieren wir das k-te Moment, mk, (k = positive ganze Zahl) der Zufallsvariablen X als den Erwartungswert: m k = E ( X k ) .
    Figure DE112022002790T5_0120
  • Wir definieren das k-te zentralisierte Moment, σk, der Zufallsvariablen X als den Erwartungswert: σ k = E ( ( X m l ) k ) .
    Figure DE112022002790T5_0121
  • Zum Beispiel ist σ2 die Varianz der Zufallsvariablen. Das geordnete N-Tupel ist dann: R CMR N ( X ) : = ( E ( X ) , σ 2 ( X ) , , σ N ( X ) ) .
    Figure DE112022002790T5_0122
  • Regularly-Quantized Histogram Representation (RQHR):
  • In dieser Darstellung können wir den Bereich der eingegebenen Partikelwerte unterteilen in N Bins gleicher Bereichsgröße L. Wir definieren die Höhe der einzelnen Bins 1 ≤ i ≤ N als pi und setzen sie gleich der relativen Häufigkeit der Eingabepartikeldaten, die in das Intervall der i-ten Bin fallen. Dies führt zu einem Satz von regelmäßig angeordneten Histogrammen, die als Dirac-Mischung modelliert werden können, wobei jedes Dirac-Delta in der Mitte des Intervalls jedes Histogramms mit einer Wahrscheinlichkeitsmasse gleich pi liegt. Da die Bereichsgröße L konstant ist, kann durch Kenntnis der Position x0 des ersten Dirac-Deltas die Position der übrigen Dirac-Deltas berechnet werden. Folglich können wir die RQHR von X bestehend aus N Dirac-Deltas als geordnetes (N+2)-Tupel definieren: R RQHR N ( X ) : = ( x 0 , L , p 1 , , p N ) .
    Figure DE112022002790T5_0123
  • Telescoping Torques Representation (TTR):
  • Die TTR konstruiert rekursiv einen neuen Satz von N Dirac-Deltas aus einer Dirac-Mischung mit einer beliebigen Anzahl von Elementen in log2 N Schritten. Bei jedem Schritt teilt die Konstruktion die gegebene Dirac-Mischung in zwei Teile: diejenigen, die unter dem Mittelwert der Mischung liegen, und diejenigen, die über dem Mittelwert der Mischung liegen, um die doppelte Anzahl von Dirac-Mischungen zu erhalten. 7 zeigt ein Beispiel für N = 4 und ausgehend von einer Dirac-Mischung aus 8 Partikeln. Der Mittelwert der anfänglichen Dirac-Mischung ist gleich µ0 = 22.5. Im Schritt 0 der TTR-Konstruktion definieren wir die 0-te Ordnung TTR der gegebenen Mischung als ein Dirac-Delta mit einer Wahrscheinlichkeitsmasse, die gleich der Summe der Wahrscheinlichkeitsmassen aller Dirac-Deltas in der Mischung ist (die 1,0 beträgt) und die auf dem Mittelwert µ0 sitzt. In Schritt 1 betrachten wir die beiden Mischungen, die unter bzw. über µ0 liegen (jede Mischung besteht in diesem Beispiel aus vier Dirac-Deltas) und wiederholen den Vorgang für jede Mischung. Auf diese Weise definiert man die 1-te Ordnung TTR der ursprünglichen Mischung als die Vereinigung der 0-ten Ordnung TTRs jeder Sub-Mischung. Im Fall des gegebenen Beispiels entspricht dies zwei Dirac-Deltas, die auf den Mittelwerten der Sub-Mischungen sitzen und beide eine Wahrscheinlichkeitsmasse von 0,5 haben. In Schritt 2 wird der Prozess wiederholt, wobei die Sub-Mischungen aus Schritt 1 weiter in zwei unterteilt werden und ihre 0-te Ordnung TTRs ermittelt werden. Dies ergibt eine TTR der Ordnung n = 2 für die ursprüngliche Mischung mit N = 2n = 4 Dirac-Deltas. Wenn x1, ... , xN die Positionen der Dirac-Deltas in der n-ten Stufe der Konstruktion sind, wobei n = log2 N, und wenn p1, ..., pN ihre Wahrscheinlichkeitsmassen sind, dann ist die n-te Ordnung TTR von X das geordnete 2N-Tupel: R TTR N ( X ) : = ( x 1 , x N , p 1 , , p N ) .
    Figure DE112022002790T5_0124
  • Sowohl die TTR- als auch die RQHR-Darstellungen haben eine feste Größe und werden bei fortschreitender Berechnung nicht größer.
  • Arithmetische Operationen auf Darstellungen
  • Mit zwei diskreten Zufallsvariablen X und Y mit Wahrscheinlichkeitsmassenfunktionen, die unter Verwendung einer der hier offenbarten Darstellungen dargestellt sind, können die hier offenbarten Algorithmen implementiert werden, um die Darstellung der Wahrscheinlichkeitsmassenfunktion der diskreten Zufallsvariablen Z = Φ(X; Y) zu berechnen, für Φ(X; Y) als eine von Addition, Multiplikation, Subtraktion und Division. Die Mikroarchitektur 4 unterstützt diese arithmetischen Operationen für alle hier offenbarten Verteilungsdarstellungen. Die Mikroarchitektur und die Erfindung im Allgemeinen können komplexere arithmetische Operationen berechnen, z.B. verschmolzene Multiplikation und Addition oder Quadratwurzel, indem sie in Form der vorgenannten grundlegenden arithmetischen Operationen ausgedrückt werden, wie es für den Fachmann leicht erkennbar ist.
  • Die RQHR- und TTR-Darstellungen (und andere SoDD-basierte Darstellungen) sind beispielsweise beide in Form einer Reihe von Dirac-Deltas (d.h. „SoDD“), die bei Bedarf als Vektor mit einer bestimmten Position und Wahrscheinlichkeitsmasse dargestellt werden können. Unter der Annahme von zwei Zufallsvariablen X und Vergibt sich ihre Addition und Multiplikation aus der zirkulären Faltung der Dirac-Delta-Positionen und der Vektoren der Wahrscheinlichkeitsmasse. In den folgenden Teilen dieser Offenbarung konzentrieren wir uns auf TTR, aber die gleichen Prinzipien gelten auch für RQHR (und andere SoDD-basierte Darstellungen).
  • Der in Tabelle 2 dargestellte Algorithmus 1 ist ein Beispiel für einen von der Mikroarchitektur der vorliegenden Erfindung implementierten Algorithmus zur Addition von zwei diskreten Zufallsvariablen, die durch TTR der Größe NTTR dargestellt werden. Die Ergebnisse der Operationen an den Dirac-Delta-Positionen und Massen der beiden Eingangsvariablen werden vorübergehend in der Variablen „destVar“ gespeichert, die vom Dirac-Mischungsdarstellungstyp mit der Größe NTTR × NTTR ist. Nach Abschluss der Berechnungen wandelt die Mikroarchitektur die Variable „destVarDM“ in „destVarTTR“ um, wobei der in Tabelle 2 dargestellte Algorithmus verwendet wird.
    Figure DE112022002790T5_0125
    Figure DE112022002790T5_0126
  • Ein ähnliches Verfahren ist für die Multiplikation von zwei Variablen in TTR erforderlich, wie in Tabelle 3 dargestellt.
    Figure DE112022002790T5_0127
  • Der Unterschied zwischen diesen beiden Algorithmen besteht darin, dass die Positionen der eingegebenen Dirac-Deltas im Fall von Algorithmus 2 multipliziert werden, anstatt wie im Fall von Algorithmus 1 addiert zu werden.
  • Die Algorithmen 1 und 2 zeigen die Vorzüge der Dirac-Delta-Darstellungen auf. Die für die arithmetische Propagation erforderlichen Operationen erfordern elementweise Operationen, die hochgradig parallel sind und deren Berechnung optimiert werden kann. Außerdem liegt das Ergebnis einer arithmetischen Operation auf zwei Variablen ebenfalls in einer Dirac-Delta-Mischform vor, die mit Hilfe von Verfahren, die für Partikeldaten gelten, und ohne zusätzliche Hardware- oder Software-Logik, in die vorgesehenen Darstellungen umgewandelt werden kann.
  • Eine Addition oder Multiplikation eines Partikelwerts zu einer Variablen in TTR-Form führt zu einer Verschiebung oder Skalierung der Position des Dirac-Deltas der Darstellung. In diesem Sinne wird die Subtraktion zweier unsicherer Variablen in TTR erreicht, indem die TTR des Subtrahenden durch Multiplikation mit -1 negiert wird. Für den Fall der Division von TTR-Variablen definieren wir sie als Multiplikation mit dem Kehrwert der Divisorvariablen. Der Kehrwert einer TTR-Variablen lässt sich durch Berechnung der Kehrwerte der Dirac-Delta-Eingangspositionen ermitteln.
  • Bayes-Laplace-Regel
  • Sei Θ eine Zufallsvariable, die Instanzwerte θ annimmt und die eine Wahrscheinlichkeitsmassenfunktion ƒΘ(θ) aufweist. Sei ƒX(x|θ) die Wahrscheinlichkeitsmassenfunktion der Verteilung der Zufallsvariablen X mit einem Parameter Θ, d.h., Pr{X = x|θ}. Der Parameter Θ ist in der Regel eine Variable im Maschinenzustand, z.B. ein Wort im Speicher, das einer Gewichtung in einem neuronalen Netzmodell entspricht, das über die Mikroarchitektur ausgeführt wird. In Bayes'schen neuronalen Netzen besteht eine epistemische Unsicherheit über solche Gewichte, und es ist das Ziel des Trainingsverfahrens, ihre (posteriore) Verteilung auf der Grundlage einer Kombination von Vorwissen und während des Trainings beobachteten Werten zu schätzen. Die Bayes-Laplace-Regel liefert uns den Ausdruck für die Wahrscheinlichkeitsmassenfunktion der Zufallsvariablen Θ bei einer oder mehreren „Evidenz“-Samples x der Zufallsvariablen X. Dann wird bei einem Vektor von N Samples der Zufallsvariablen X, d.h., bei x= {x1, x2, ... xN}, fΘ(θ|x) zu: ƒ Θ ( θ | x ) = ƒ X ( x | θ ) ƒ Θ ( θ ) θ D ( Θ ) ƒ X ( x | θ ) ƒ Θ ( θ ) .
    Figure DE112022002790T5_0128
  • Die linke Seite dieser Gleichung wird häufig als „Posteriori-Verteilung“ des Parameters Θ bezeichnet. Die Wahrscheinlichkeitsmassenfunktion fΘ(θ) wird als „Priori-Verteilung“ für den Parameter Θ bezeichnet und die „Wahrscheinlichkeit“ wird wie folgt berechnet: ƒ X ( x | θ ) = { x 1 , x 2 , , x N } ƒ X ( x | θ ) .
    Figure DE112022002790T5_0129
    Die Wahrscheinlichkeitsverteilung wird oft als Sampleverteilung bezeichnet. Die Bayes-Laplace-Regel zur Berechnung der Posteriori-Verteilung ist eine unschätzbare Operation zur Aktualisierung der epistemischen Unsicherheit des Programmzustands. In modernen Systemen wird diese Aktualisierung weithin als rechnerisch anspruchsvoll angesehen, da das Integral oder eine entsprechende Summierung im Nenner der obigen Gleichung durchgeführt werden muss für fΘ(θ|x). Die vorliegende Erfindung ermöglicht die Berechnung der Posteriori-Verteilung unter Verwendung der Darstellungen der Unsicherheit (z.B. SoDD-Darstellungen) der Priori-Verteilung, der Sampleverteilung und der Menge der „Evidenz“-Samples.
  • Beispiele für eine Mikroarchitektur für die Prozessoreinheit 4 zur Berechnung von Datenverteilungen sind in den 5, 6A, 6B und 6C gezeigt. In jedem Beispiel umfasst die Mikroarchitektur eine Mikroarchitektureinheit 20 mit einer Floating Point-Registerdatei 28, die zur Aufnahme von Floating Point-Daten konfiguriert ist. Die Floating Point-Registerdatei umfasst eine erste Registerdatei 28A, die zur Aufnahme von Partikeldatenelementen konfiguriert ist, und eine zweite Registerdatei 28B, die zur Aufnahme von Verteilungsdaten konfiguriert ist. Die Verteilungsdaten repräsentieren Verteilungen (z.B. SoDD-basierte Darstellungen), die Unsicherheitsdarstellungen sind, die mit entsprechenden Partikeldatenelementen in der ersten Registerdatei 28A assoziiert sind. Die Floating Point-Registerdatei 28 ordnet ein gegebenes Partikeldatenelement in der ersten Registerdatei 28A den zugehörigen Verteilungsdaten in der zweiten Registerdatei 28B zu, indem sie einen gemeinsamen Registerdatei-Eintragsidentifikator (ƒi) sowohl einem gegebenen Partikeldatenwert in der ersten Registerdatei 28A als auch dem Verteilungsdateneintrag in der zweiten Registerdatei 28B, der mit den betreffenden Partikeldaten assoziiert werden soll, zuordnet. Zum Beispiel wird der erste Registereintrag sowohl in der ersten Registerdatei 28A als auch in der zweiten Registerdatei 28B durch denselben Registerdatei-Eintragsidentifikator „ƒ0“ identifiziert. In ähnlicher Weise wird der letzte Registereintrag sowohl in der ersten Registerdatei 28A als auch in der zweiten Registerdatei 28B durch denselben Registerdatei-Eintragsidentifikator „ƒ31“ identifiziert. Dasselbe gilt natürlich auch für die dazwischenliegenden Registerdatei-Eintragsidentifikatoren, so dass der i-te Registereintrag sowohl in der ersten Registerdatei 28A als auch in der zweiten Registerdatei 28B durch denselben Registerdatei-Eintragsidentifikator „ƒi“ gekennzeichnet ist.
  • Eine erste arithmetische Logikeinheit 25 ist so konfiguriert, dass sie Arithmetik an Partikeldatenelementen ausführt, die aus der ersten Registerdatei 28A ausgewählt werden, und eine zweite arithmetische Logikeinheit 26 ist so konfiguriert, dass sie Arithmetik an Verteilungsdaten aus der zweiten Registerdatei 28B ausführt. Die Mikroarchitektur 20 des Prozessors 4 ist so konfiguriert, dass die folgenden Schritte implementiert werden. Die erste arithmetische Logikeinheit 28A führt eine arithmetische Operation (z.B. Addition, Subtraktion, Multiplikation oder Division) an zwei aus der ersten Registerdatei 28A ausgewählten Floating Point-Partikeldatenelementen aus und gibt das Ergebnis aus. Gleichzeitig führt die zweite arithmetische Logikeinheit 28B dieselbe arithmetische Operation an zwei Verteilungsdatenelementen aus, die Verteilungen darstellen, die aus der zweiten Registerdatei 28B ausgewählt werden und mit den Datenelementen assoziiert sind, die aus der ersten Registerdatei 28A ausgewählt werden, und gibt das Ergebnis aus. Insbesondere ist die arithmetische Operation, die an den aus der zweiten Registerdatei 28B ausgewählten Verteilungsdaten ausgeführt wird, dieselbe wie die arithmetische Operation, die an den aus der ersten Registerdatei 28A ausgewählten Datenelementen ausgeführt wird. Folglich sind die Ausgaben der zweiten arithmetischen Logikeinheit 26 weitere Verteilungsdaten, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation (z.B. Addition, Subtraktion, Multiplikation oder Division) assoziiert ist, die an den aus der ersten Registerdatei 28A ausgewählten Datenelementen ausgeführt wird.
  • Betrachten wir als Beispiel einen Fall, in dem die erste arithmetische Logikeinheit 25 Partikeldatenelemente aus der ersten Registerdatei 28A an den Registerdateistellen/Einträgen ƒ1 und ƒ2 auswählt, um sie zu addieren und das Ergebnis an die Registerdateistelle/den Eintrag ƒ0 in der ersten Registerdatei 28A auszugeben (z.B. für die anschließende Ausgabe durch den Prozessor oder zur Verwendung in weiteren arithmetischen Operationen). Die Auswahl von Partikeldatenelementen aus der ersten Registerdatei 28A an den Registerdateistellen/Einträgen ƒ1 und f2 löst die gleichzeitige Auswahl von Verteilungsdatenelementen aus der zweiten Registerdatei 28B an den Registerdateistellen/Einträgen ƒ1 und ƒ2 durch die zweite arithmetische Logikeinheit 26 aus, um sie zu addieren und das Ergebnis an die Registerdateistelle/den Eintrag ƒ0 in der zweiten Registerdatei 28A auszugeben (z.B. für eine nachfolgende Ausgabe durch den Prozessor oder zur Verwendung in weiteren arithmetischen Operationen). Dies lässt sich wie folgt zusammenfassen, wobei die Namenskonvention für die Floating Point-Register der RISC-V-Architektur verwendet wird, und wobei ƒ0 ein Floating Point-Register der Mikroarchitektur ist: A r i t h m e t i c   o p e r a t i o n : ƒ 0 : p a r t i c l e = ƒ 1 : p a r t i c l e + ƒ 2 : p a r t i c l e
    Figure DE112022002790T5_0130
    A r i t h m e t i c   o p e r a t i o n : ƒ 0 : d i s t r i b u t i o n = ƒ 1 : d i s t r i b u t i o n + ƒ 2 : d i s t r i b u t i o n
    Figure DE112022002790T5_0131
  • Die Ausgabe der Ergebnisse dieser arithmetischen Operation durch die Mikroarchitektureinheit 20 kann einen oder mehrere der folgenden Schritte umfassen: Speichern der Ausgabe in einem Speicher; Übertragen eines Signals, das die Ausgabe übermittelt (z.B. elektronisch an eine andere Schaltungskomponente oder an einen Speicher oder drahtlos an einen entfernten Empfänger). Die erste Registerdatei 28A und die zweite Registerdatei 28B sind so konfiguriert, dass sie mindestens ein erstes Partikeldatenelement und zugehörige Verteilungsdaten (z.B. bei ƒ1) und ein zweites Partikeldatenelement und zugehörige Verteilungsdaten (z.B. bei ƒ2) enthalten, können jedoch viel mehr Datenelemente enthalten (z.B. bis zu 32 in diesem Beispiel: ƒ0 bis ƒ31).
  • Das zweite Register enthält die Verteilungsdaten (z.B. ƒ1:distribution, ƒ2:distribution), die mit einem bestimmten Partikeldatenelement in Form eines Tupels assoziiert sind, z.B. eines beliebigen hierin offenbarten Typs, das Parameter enthält, die eine Wahrscheinlichkeitsverteilung kodieren, die die mit dem betreffenden Partikeldatenelement assoziierte Unsicherheitsdarstellung charakterisiert. Die Parameter, die zur Kodierung der Verteilungsdaten aller Verteilungsdatenelemente der zweiten Registerdatei 28B verwendet werden, sind zumindest während einer bestimmten arithmetischen Operation identisch. Folglich ist das Ergebnis der arithmetischen Operation, die auf die beiden ausgewählten Tupel von Verteilungsdaten angewandt wird, ein drittes Tupel (ƒ0:distribution), das unter Verwendung von Parametern definiert wird, die im ersten Tupel, ƒ1:distribution, enthalten sind, und unter Verwendung von Parametern, die im zweiten Tupel, ƒ2:distribution, enthalten sind. Das dritte Tupel, ƒ0:distribution, enthält Parameter, die neue weitere Verteilungsdaten kodieren, die an der Position ƒ0 in der zweiten Registerdatei 28A gespeichert sind.
  • Der Prozessor 4 umfasst auch eine Mikroarchitektureinheit (21, 5; 21B, 6), die eine arithmetische Logikeinheit 27 für ganze Zahlen umfasst, die so konfiguriert ist, dass sie arithmetische Operationen an ganzzahligen Partikelwerten implementiert, die in einer Ganzzahl-Registerdatei (29, 5; 29A & 29B, 6) enthalten sind. Im Beispiel von 5 sind nur ganzzahlige Partikelwerte in der Ganzzahl-Registerdatei 29 enthalten, und die arithmetische Logikeinheit 27 ist so konfiguriert, dass sie arithmetische Operationen nur an ganzzahligen Partikelwerten ausführt, die in einer Ganzzahl-Registerdatei 29 enthalten sind. Im Beispiel von 6A sind jedoch in der Mikroarchitektur 21B ganzzahlige Partikelwerte in einer ersten Registerdatei 29A enthalten, und zugehörige Verteilungswerte sind in einer zweiten Verteilungsregisterdatei 29B enthalten. Darüber hinaus umfasst die Mikroarchitektur 21B eine Ausführungseinheit 24, die nicht nur eine erste arithmetische Logikeinheit 27 (für ganzzahlige Operationen), wie im Beispiel von 5 gezeigt, enthält, sondern auch eine zweite arithmetische Logikeinheit 31, die so konfiguriert ist, dass sie arithmetische Operationen an Verteilungsinformationen durchführt, die mit ganzzahligen Partikeldaten assoziiert sind. Auf diese Weise ist die Mikroarchitektur 21B so eingerichtet, dass sie arithmetische Operationen nur an ganzzahligen Partikelwerten und ihren zugehörigen Verteilungsdaten ausführt, die in der zweiten Registerdatei 29B enthalten sind. Der Betrieb und die Funktionsweise der ersten und zweiten arithmetischen Logikeinheiten (27, 31) interagieren mit den ersten und zweiten Registerdateien (29A, 29B), so dass arithmetische Operationen, die an ganzzahligen Partikelwerten durchgeführt werden, auch gleichzeitig an zugehörigen Verteilungswerten in der gleichen Weise durchgeführt werden, wie oben unter Bezugnahme auf die Floating Point-Register und arithmetischen Einheit beschrieben. Zusammengefasst gilt die obige Beziehung A r i t h m e t i c   o p e r a t i o n : ƒ 0 : p a r t i c l e = ƒ 1 : p a r t i c l e + ƒ 2 : p a r t i c l e
    Figure DE112022002790T5_0132
    A r i t h m e t i c   o p e r a t i o n : ƒ 0 : d i s t r i b u t i o n = ƒ 1 : d i s t r i b u t i o n + ƒ 2 : d i s t r i b u t i o n
    Figure DE112022002790T5_0133
    auch für arithmetische Operationen mit ganzzahligen Daten.
  • Auf diese Weise können die Floating Point- und/oder Ganzzahl-Registerdateien (28A, 28B, 29A, 29B) in der Mikroarchitektur alle Floating Point- und/oder Ganzzahl-Register mit Verteilungsinformationen verknüpfen. Wenn eine Anweisung aus einem Floating Point- und/oder Ganzzahl-Register liest, das keine Verteilungsinformationen enthält, bleibt das Verhalten gegenüber einer herkömmlichen Architektur unverändert. Die Semantik bei Vorhandensein von Verteilungsinformationen besteht darin, den Mittelwert zurückzugeben. Die Anzahl der Floating Point-Register und ihr konventioneller Partikelanteil bleiben unverändert.
  • Zusammenfassend zeigt 5 ein Beispiel für eine Mikroarchitektur, bei der Ganzzahl-Register nicht mit Unsicherheit assoziiert sind und die Ganzzahl-Registerdatei daher konventionell aufgebaut ist, während 6 ein Beispiel für eine Mikroarchitektur zeigt, bei der Ganzzahl-Register mit Unsicherheit assoziiert sind und die Ganzzahl-Registerdatei daher erfindungsgemäß ist. Beide Figuren zeigen ein Beispiel für einen Prozessor 4 gemäß einer Ausführungsform der Erfindung (z.B. die Prozessoreinheit von 1). Die Prozessoreinheit ist in diesen Beispielen zur Implementierung einer RISC-V ISA konfiguriert. Dementsprechend umfasst die Prozessoreinheit eine RISC-V-Befehlsabrufeinheit 22, die in Kommunikation mit einer RISC-V-Dekodiereinheit 23 der Prozessoreinheit steht. Die RISC-V-Befehlsabrufeinheit 22 ist so konfiguriert, dass sie Befehle vom Computer 3 (1) abruft und jeden Befehl speichert, während er von der Prozessoreinheit 4 ausgeführt wird. Die Abrufeinheit gibt Befehle an die Dekodiereinheit 23 aus, die ihrerseits auf einen empfangenen Abrufbefehl reagiert, um den empfangenen Befehl zu dekodieren und einen Folgebefehl an eine RISC-V-Ausführungseinheit 24 der Prozessoreinheit auszugeben, um den dekodierten Befehl auszuführen. Nach Erhalt eines Befehls gibt die RISC-V-Ausführungseinheit 24 Befehle an die arithmetischen Logikeinheiten (ALU) der Prozessoreinheit aus, um eine arithmetische Operation an Floating Point-Partikeldaten 28A und ihren zugehörigen Verteilungsinformationen/Daten 28B gemäß der Erfindung auszuführen, und optional auch, um eine arithmetische Operation an Ganzzahl-Partikeldaten 29A auszuführen.
  • Somit umfasst der Prozessor vorzugsweise erweiterte Registerdateien (28A, 28B; 29A, 29B) gemäß der Erfindung, die eine erste Registerdatei (28A, 29A), die Floating Point-Daten oder Ganzzahldaten speichern kann, und eine zweite Registerdatei (28B, 29B), die Verteilungsinformationen/Daten speichern kann, umfassen. Diese erweiterte Floating Point-Registerdatei verknüpft alle Floating Point- (oder Ganzzahl-) Register in der ersten Registerdatei (28A, 29A) mit Verteilungsinformationen in der zweiten Registerdatei (28B, 29B). Die Ausführungseinheit 24 folgt den hierin offenbarten Algorithmen, um eine erweiterte Funktionseinheit (20, 21B), die eine Floating Point- (oder Ganzzahl-) Verteilungs-Arithmetikeinheit (26, 31) enthält, zu veranlassen, arithmetische Operationen an Verteilungsdaten (zweite Registerdatei 28B, 29B) auszuführen, die mit Floating Point- (oder Ganzzahl-) Partikeldaten (erste Registerdatei 28A, 29A) innerhalb einer Floating Point- (oder Ganzzahl-) Registerdatei 28A oder 29A assoziiert sind.
  • Einzelheiten der in den 6A, 6B und 6C dargestellten Mikroarchitektur:
  • 6B zeigt die Darstellung auf Bit-Ebene einer RQHR oder TTR der Größe N. Nomenklatur und Symbolik in 6B sind wie folgt:
  • N:
    Größe der Verteilungsdarstellung. Sie enthält N Stützpositionen und N Wahrscheinlichkeitsmassen, jeweils 64 Bit lang
    nsamples:
    Die 64 Bit lange Zahl von Partikelsamples, die Laplace zur Erzeugung der Verteilungsdarstellung verwendet
    U:
    Beginn des N-ten Stützposition-Bitfeldes. Beginnt nach (7V-1) Positionen von 64 Bit plus 64 Bit für nsamples. U = 64N
    V:
    Ende des N-ten Stützposition-Bitfeldes. V = U + 63 = 64(N+1) - 1 Bits
    W:
    Beginn des 1. Wahrscheinlichkeitsmasse-Bitfeldes. W = V + 1= 64(N+1) Bits
    X:
    Ende des 1. Wahrscheinlichkeitsmasse-Bitfeldes. X = W + 63= 64(N+2) - 1 Bits
    Y:
    Beginn des N-ten Wahrscheinlichkeitsmasse-Bitfeldes. Beginnt nach N Positionen und (N-1) Massen plus nsamples. Y = 2N*64 Bits
    Z:
    Ende des N-ten Wahrscheinlichkeitsmasse-Bitfeldes. Z = Y + 63= 64(2N+1) - 1 Bits
  • Die 64 Bits niedrigerer Ordnung speichern die Anzahl der Partikelsamples, die zur Ableitung der Verteilungsdarstellung verwendet werden. Die nächsten N 64-Bit-Werte speichern die Stützpositionen der Darstellung. Ihnen folgen die N 64-Bit-Werte der Wahrscheinlichkeitsmassen. Sei ƒ0 ein herkömmliches Floating Point-Register der Mikroarchitektur (z.B. RISC-V RV32IMFD) und sei dƒ0 das entsprechende verteilungsbezogene Floating Point-Register auf Mikroarchitekturebene. Die Mikroarchitektur gemäß bevorzugten Ausführungsformen führt alle arithmetischen und logischen Befehle sowohl auf den konventionellen als auch auf den distributiven Registern parallel aus. Zum Beispiel löst die Addition der Quellregister ƒ1 und ƒ2 in das Zielregister ƒ0 auch die Addition der Verteilungsinformationen der Register dƒ1 und dƒ2 in das Verteilungsregister dƒ0 aus. Die Semantik der nicht verteilungsbezogenen Registerwerte und der Operationen mit ihnen bleibt unverändert. Die Verfolgung der Verteilungsinformationen erfolgt parallel zum nicht verteilungsbezogenen Architekturzustand (und hat keinen Einfluss auf dessen Verhalten). Die Mikroarchitektur gemäß bevorzugten Ausführungsformen erweitert sowohl die Ganzzahl- als auch die Floating Point-Arithmetik- und Logikeinheiten (ALUs) um zwei verteilungsbezogene Co-ALUs. Die konventionelle, unveränderte ALU arbeitet mit den Partikelwerten der Quellregister. Die verteilungsbezogene Co-ALU führt dieselbe Operation an den Verteilungsdarstellungen der Quellregister unter Verwendung der Algorithmen aus Tabelle 2 und Tabelle 3 (siehe oben) durch. Die verteilungsbezogene Co-ALU kann so konfiguriert sein, dass sie Statistiken über die Verteilungsdarstellung eines Quellregisters berechnet. Zu den Beispielen gehören die hier (z.B. oben) beschriebenen statistischen Maße, wie z.B., aber nicht ausschließlich, die folgenden.
  • Das N-te zentralisierte Moment:
  • Für jede ganze Zahl N ≥ 0 ist das N-te Moment der Zufallsvariablen X gegeben durch σN = E((X - E(X))N), wobei E ( X ) = i = 0 K d pos [ i ] d mass [ i ]
    Figure DE112022002790T5_0134
  • Dabei sind dpos [i] und dmass [i] die Dirac-Delta-Position und die Wahrscheinlichkeitsmasse für Partikel i.
  • Der N-te Modus/Antimodus:
  • Der N-te Modus von X ist der Teilchenwert x, bei dem die Wahrscheinlichkeitsmassenfunktion ƒx ihren N-ten höchsten Wert annimmt, und wird berechnet als dpos [iN], wobei iN der Index ist, bei dem dmass den N-ten höchsten Wert annimmt. Der N-te Antimodus wird auf ähnliche Weise berechnet, wobei iN der Index ist, bei dem dmass den N-ten niedrigsten Wert annimmt. Ist N größer als die Größe der Verteilungsdarstellung, wird die Statistik als NaN („not a number“) ausgewertet.
  • Der Minimal- oder Maximalwert für die Verteilungsstützen:
  • Diese Berechnung liefert den minimalen oder maximalen Wert der Dirac-Delta-Positionen der Verteilungsdarstellung von X (d.h. das Minimum oder Maximum von dpos).
  • Endwahrscheinlichkeit:
  • Angesichts eines Grenzwerts x0 ∈ ℝ lautet die Berechnung der Endwahrscheinlichkeit von X Pr ( X > x 0 ) = i [ 0, K ] s . t .   d pos [ i ] > x 0 d mass [ i ]
    Figure DE112022002790T5_0135
  • Die Endwahrscheinlichkeit Pr (X ≤ x0) wird berechnet als: Pr (X ≤ x0) = 1,0 - Pr (X > x0).
  • Laden/Speichern von Unsicherheitsinformationen
  • Ein Ladebefehl in der Mikroarchitektur lädt die Verteilungsdarstellung, die einer Adresse des Hauptspeichers der Mikroarchitektur entspricht, in den Verteilungsteil des Zielregisters. Ein Speicherbefehl speichert die Verteilungsinformationen des Quellregisters im Hauptspeicher der Mikroarchitektur. 6A zeigt, wie ein Teil des physischen Speichers des Prozessors, der die Mikroarchitektur implementiert, die Verteilungsdarstellung speichert. Die Lade-/Speichereinheit der Mikroarchitektur ordnet eine Adresse, auf die eine Anwendung zugreift, der Adresse zu, die ihre Verteilungsdarstellung speichert.
  • Im Folgenden wird ein zusätzlicher Ladebefehl näher erläutert, der die Verteilungsinformationen eines Zielregisters initialisiert, indem eine Verteilungsdarstellung aus einer speicherinternen Anordnung von Quellpartikelsamples erstellt wird.
  • 6C zeigt eine Implementierung des Hardwaremoduls, das Quellsamples (z.B. Sensormessungen) in die TTR-Darstellung umwandelt. Nomenklatur und Symbolik in 6C sind wie folgt:
  • dmPos[i]:
    Stützposition des i-ten Elements der Eingangs-Dirac-Mischung
    dmMass[i]:
    Wahrscheinlichkeitsmasse des i-ten Elements der Eingangs-Dirac-Mischung
    dPos[i]:
    Stützposition des i-ten Dirac-Deltas der Ausgangs-TTR
    dMass[i]:
    Wahrscheinlichkeitsmasse des i-ten Dirac-Deltas der Ausgangs-TTR
    startInd:
    untere Grenze von Indizes der zu bearbeitenden Eingangs-Dirac-Mischung
    endlnd:
    obere Grenze von Indizes der zu bearbeitenden Eingangs-Dirac-Mischung
    N:
    Größe der Ausgangs TTR-Darstellung. N ist in diesem Beispiel 4
    Übertragung der Dirac-Mischungsdaten aus dem Hauptspeicher
  • Das Modul umfasst mehrere Ebenen von Konvertierungseinheiten (d.h., „Konvertierungseinheit [0,0]“; „Konvertierungseinheit [1,0]“; „Konvertierungseinheit [1,1]“; „Konvertierungseinheit [2,0]“; „Konvertierungseinheit [2,1]“; „Konvertierungseinheit [2,2]“; „Konvertierungseinheit [2,3]“), eine Ebene für jeden Schritt, der an der Konvertierung eines Arrays von Samples in Form einer SoDD (hier auch als „Dirac-Mischung“ bezeichnet) in eine TTR-Darstellung (siehe oben) beteiligt ist. Ein Paar ganzer Zahlen identifiziert jede Konvertierungseinheit. Die erste ganze Zahl entspricht dem Konvertierungsschritt und die zweite ist ein aufsteigender Index, z.B. „Konvertierungseinheit [1,1]“ in 6C ist die zweite Konvertierungseinheit von Konvertierungsschritt 1 (Abschnitt 2.2). Da 6C ein Beispiel für die Umwandlung von Eingabesamples in TTR der Größe vier zeigt, besteht die Ausgabestufe aus vier Konvertierungseinheiten, die die vier Stützpositionen („dmPos“) und Wahrscheinlichkeitsmassen („dmMass“) der TTR der Größe vier erzeugen. Jede Konvertierungseinheit hat drei Eingänge und drei Ausgänge. Der erste Eingang ist die Speicheradresse des Arrays von Samples, die die Konvertierungseinheit verarbeiten wird. Die Mikroarchitektur speichert die Samples im Hauptspeicher als SoDD-Dirac-Mischung, sortiert nach aufsteigender Stützposition (Wert „dmPos“). Der zweite und dritte Eingang sind zwei ganze Zahlen, die dem Startindex („startInd“) und dem Endindex („endInd“) des kontinuierlichen Arrays von Samples entsprechen, die die Konvertierungseinheit verarbeiten wird. Jede Konvertierungseinheit gibt einen Wert für die Stützposition („dPos“) und einen Wert für die Wahrscheinlichkeitsmasse („dMass“) aus. Die Konvertierungseinheit berechnet die ausgegebene Wahrscheinlichkeitsmasse wie folgt: d M a s s = s t a r t I n d e n d I n d dmMass [ i ]
    Figure DE112022002790T5_0137
  • Die Konvertierungseinheit berechnet den Mittelwert der Quell-SoDD-Dirac-Mischung als: μ = s t a r t I n d e n d I n d dmPos [ i ] dmMass [ i ]
    Figure DE112022002790T5_0138
  • Die Konvertierungseinheit berechnet die Ausgabe-Stützposition wie folgt: d P o s = μ d M a s s
    Figure DE112022002790T5_0139
  • Die dritte Ausgabe der Konvertierungseinheit ist eine ganze Zahl „kPartition“, die dem Index entspricht, unter dem alle sortierten Stützpositionen der eingegebenen SoDD-Dirac-Mischung kleiner sind als die berechnete „dPos“. In den dazwischen liegenden Konvertierungsebenen propagieren die Konvertierungseinheiten ihre Ausgabe „kPartition“ an die nächste Konvertierungsebene. Je nach der Teilmenge der Arrays, die sie verarbeiten müssen, dient „kPartition“ als „startInd“- oder „endInd“-Wert für die Konvertierungseinheiten der nächsten Ebene. In der letzten Konvertierungsstufe schreibt das TTR-Konvertierungsmodul die ausgegebenen Verteilungsinformationen in das Verteilungszielregister und den Mittelwert der Quellsamples in das konventionelle Zielregister.
  • Bei einer arithmetischen Anweisung mit einem „Rd“-Zielregister berechnet die erweiterte Funktionseinheit (20, 21B) sowohl ihren Partikelwert (gemäß der ursprünglichen RISC-V ISA) als auch ihre Verteilung gemäß den mit den Quellregistern assoziierten Verteilungen. Jede arithmetische Operation, die auf die erweiterten Registerdateien (28A, 28B; 29A, 29B) angewendet wird, wird gleichermaßen auf die Partikel- (28A, 29A) und Verteilungsinformationen (28B, 29B) der Quellregister angewendet. Dies wirkt sich auf den Wert sowohl der Partikel- als auch der Verteilungsinformationen des Zielregisters aus. Ein Beispiel: Man addiert die Register ƒ1 und ƒ2 und speichert den resultierenden Additionswert im Register ƒ0: A r i t h m e t i c   o p e r a t i o n : ƒ 0 : p a r t i c l e = ƒ 1 : p a r t i c l e + ƒ 2 : p a r t i c l e
    Figure DE112022002790T5_0140
    A r i t h m e t i c   o p e r a t i o n : ƒ 0 : d i s t r i b u t i o n = ƒ 1 : d i s t r i b u t i o n + ƒ 2 : d i s t r i b u t i o n
    Figure DE112022002790T5_0141
  • Die Ergebnisse der arithmetischen Operationen können an einen Direktzugriffsspeicher 5 der Prozessoreinheit 4 ausgegeben werden (6A). Diese Ausgabeergebnisse umfassen sowohl Partikeldatenwerte (ƒ0:particle) als auch Verteilungsdaten (ƒ0:distribution). Jeder Partikeldatenwert (ƒ0:particle) wird in einer Speichereinheit 36 gespeichert, die einen physikalischen Adressraum bzw. Adressbereich bereitstellt, und ist mit einer Verteilungsdarstellung (ƒ0:distribution) assoziiert, die in einer Verteilungsspeichereinheit 37 gespeichert ist. Eine Speicherzugriffseinheit 34 und eine Registerrückschreibeinheit 35 bilden eine Schnittstelle zwischen den erweiterten Registerdateien (28A, 28B; 29A, 29B) und den arithmetischen Logikeinheiten des Prozessors 4. Die Befehlsabrufeinheit 22 steht mit der Partikelspeichereinheit 36 in Verbindung, um auf die Speichereinheit 36 zuzugreifen und Befehle von dort abzurufen. In diesem Beispiel steht die Lade-/Speichereinheit 32 in direkter Verbindung mit der Verteilungsspeichereinheit 37, aber die Befehlsabrufeinheit 22 ist nicht so verbunden. Dies bedeutet, dass die Ausführung arithmetischer Operationen an Verteilungsdaten automatisch erfolgen kann, ohne dass der Betrieb der Befehlsabrufeinheit 22 erforderlich ist oder gestört wird. Auf diese Weise kann die Berechnung von Verteilungsdaten, die sich aus arithmetischen Operationen an Partikeldaten und ihren zugehörigen Verteilungsdaten ergeben, „unter der Haube“ auf der Ebene der Mikroarchitektur stattfinden. Dementsprechend kann die Mikroarchitektur so konfiguriert sein, dass nur Lade-/Speicherbefehle auf den Direktzugriffsspeicher 5 zugreifen können. In diesem Sinne bietet die Speichereinheit 5 einen erweiterten Speicher, in den die Mikroarchitektur sowohl die Partikel- als auch die Verteilungsinformationen der Mikroarchitekturregister (28A, 28B; 29A, 29B) laden und speichern kann.
  • Verfolgung von Korrelationen zwischen Registern
  • Um die Propagierung der Verteilungsinformationen der Register der Mikroarchitektur zu verbessern, ist es nützlich, Korrelationen zwischen den Registern verfolgen zu können. Diese Korrelationen ändern sich dynamisch, wenn die Mikroarchitektur die Verteilungsinformationen der Register durch arithmetische Operationen propagiert. Um die Korrelation zwischen den Registern zu verfolgen und zu identifizieren, ist der Prozessor 4 so konfiguriert, dass er verfolgt, welche Speicheradressen der Speichereinheit 36 zur Berechnung des Wertes eines bestimmten Floating Point- oder Ganzzahlregisters zu einem beliebigen Zeitpunkt beigetragen haben. Wenn ein Partikelwert (f0), der sich aus einer arithmetischen Operation ergibt, von einem Register der Mikroarchitektur ausgegeben wird, speichert die Prozessoreinheit die Ausgabedaten eines Partikelwertes (f0), der sich aus einer arithmetischen Operation ergibt, im Speicher, wenn sie einen Speicherbefehl ausführt. Die Prozessoreinheit 4 speichert auch die Informationen über die ursprünglichen Adressen oder Ursprungsadressen innerhalb der Hauptspeichereinheit 5 der Partikeldatenelemente, die zu dem Ausgabeergebnis beigetragen haben (hier als „Ursprungsadressen“ oder „Herkunftsadressen“ bezeichnet: diese beiden Begriffe beziehen sich auf dasselbe). Der Prozessor kann anschließend die Ursprungsadressen abrufen, wenn der Inhalt des Registers (z.B. der gespeicherte Partikelwert (ƒ0)) zur weiteren Verwendung aus dem Hauptspeicher geladen wird. Wir bezeichnen diese Korrelationsverfolgung als „Ursprungsadressenverfolgung“.
  • Die Speichereinheit 5 des Prozessors ist so konfiguriert, dass sie Datenelemente an adressierten Speicherplätzen speichert. Die Mikroarchitektur 4 ist so konfiguriert, dass sie die Ursprungs-Speicherplatzadressen (d.h. „Ursprungsadressen“) von Datenelementen erhält, die zu der arithmetischen Operation (z.B. Arithmetic operation: ƒ0:particle = ƒ1:particle + ƒ2:particle), die entweder von der Floating Point- oder der Ganzzahl-Arithmetik-Logikeinheit (Floating Point-ALU, 25; Ganzzahl-ALU, 27) ausgeführt wird, beitragen, wenn die betreffende Floating Point- oder Ganzzahl-Arithmetik-Logikeinheit eine arithmetische Operation ausführt. Die Mikroarchitektur ist so konfiguriert, dass sie die erhaltenen Ursprungs-Speicherplatzadressen an einem Speicherplatz innerhalb der Speichereinheit 5 speichert und diesen Speicherplatz mit den weiteren Verteilungsdaten (z.B. ƒ0:distribution) verknüpft, die von den zweiten arithmetischen Logikeinheiten (Verteilungs-ALU, 25; Ganzzahl-ALU, 27) erzeugt werden.
  • Zur Veranschaulichung ist in 9 ein Beispiel für einen C-Code 40 zur Berechnung der Taylorreihenentwicklung der Kosinusfunktion dargestellt. Zeile 12 des Codes zeigt, dass ein wichtiger Teil der Reihenentwicklung die Berechnung des Quadrats der C-Variablen x ist. Unter der Annahme, dass x eine Variable mit Verteilungsinformationen ist, besteht das Ziel des Mechanismus zur Verfolgung der Ursprungsadressen darin, auf mikroarchitektonischer Ebene zu erkennen, dass die Variable x mit sich selbst multipliziert wird.
  • Herausforderungen bei der Verfolgung von Korrelationen: Mechanismus zur Verfolgung von Herkunfts-/Ursprungsadressen
  • 9 zeigt auch die RV32IFMD ISA-Befehle 41, die den Zeilen 10-12 des C-Code-Schnipsels in 9 entsprechen. Man kann feststellen, dass der Compiler sogar im Fall der Operation „x*x“ zwei verschiedene Register (fa4 und fa5) verwenden muss, um das Produkt „x*x“ zu berechnen (siehe 42 und 43). Folglich reicht es nicht aus, nur die IDs der an einer Anweisung beteiligten Quellregister zu verfolgen, um Korrelationen von Variablen mit Verteilungsinformationen zu erfassen. Trotz der Zuweisung von zwei verschiedenen Registern weist der Compiler im Beispiel von 9 das Laden ihrer Werte von derselben Adresse an. Dies ist eine zentrale Erkenntnis des vorliegenden Mechanismus zur Korrelationsverfolgung.
  • Bei der vorliegenden Erfindung stammt in bevorzugten Ausführungsformen der Wert jedes Floating Point-/Ganzzahlregisters von einer oder mehreren Adressen der Speichereinheit 5 des Prozessors. Durch das Halten und die Propagieren dieser Adressen ist die Erfindung in der Lage, dynamisch Korrelationen zwischen zwei beliebigen Floating Point-/Ganzzahlregistern des Prozessors 4 zu erkennen. Diese Informationen können z.B. in einer dynamisch verknüpften Liste vorgehalten werden, die hier als „Liste der Ursprungsadressen“ bezeichnet wird. Eine Ursprungsadresse kann nur eindeutig in dieser Liste erscheinen.
  • Wie bereits erwähnt, zeigt 9 den C-Quellcode und die RV32IFMD ISA-Disassemblierung der Berechnung der geraden Potenzen einer Variablen x, z.B. aus einer Funktion, die eine Taylorreihenerweiterung zur Berechnung des Kosinus von x verwendet. Der Compiler verwendet zwei verschiedene Register (fa4 und fa5) zur Berechnung von x*x. Es reicht nicht aus, nur die Identitäten der Quellregister von Anweisungen zu verfolgen, um Korrelationen zwischen Registern und damit auch Variablen mit Verteilungsinformationen zu erfassen. Der Prozessor lädt die Werte beider Register von der gleichen Speicheradresse, die der gleichen Variable der Quellanwendung entspricht. Dies ist die zentrale Erkenntnis hinter unserem Mechanismus zur Autokorrelationsverfolgung.
  • Der Wert eines jeden Floating Point-Registers stammt von einer oder mehreren Adressen des Hauptspeichers. Durch die Verfolgung dieser Herkunftsadressen können wir dynamisch Korrelationen zwischen zwei beliebigen Registern der Mikroarchitektur erkennen. Jedes Mal, wenn die Mikroarchitektur einen Ladebefehl ausführt, fügt sie die Quelladresse zum Satz der Herkunftsadressen des Zielregisters rd hinzu. Ein On-Chip-Speicher der Mikroarchitektur ist so konfiguriert, dass er eine feste Anzahl (AAMax) von Herkunftsadressen für jedes der Architekturregister speichert. Die Mikroarchitektur verdrängt Adressen aus diesem Speicher nach einer LRU-Richtlinie (Least-Recently Used). Wenn die Mikroarchitektur ein Register im Speicher ablegt, wird sein Satz von Herkunftsadressen in den Hauptspeicher verschoben. Wenn die Quellregister mindestens eine gemeinsame Herkunft haben, führt die Mikroarchitektur bei jeder arithmetischen Operation die arithmetische Operation nach dem Prinzip der Autokorrelationsverfolgung aus. Die Mikroarchitektur aktualisiert auch die Herkunftsadressen des Zielregisters mit der Vereinigung der Herkunftsadressen der Quellregister.
  • Korrelation zwischen Registerwerten
  • x sei eine Variable mit Verteilungsinformationen. In den obigen Ausführungen wurden arithmetische Operationen für unkorrelierte Zufallsvariablen eingeführt. Die korrekte Berechnung von Ausdrücken wie x*x ist eine Teilmenge des umfassenderen Problems der Handhabung korrelierter (d.h. nicht unabhängiger) Verteilungen. Die korrekte Ausführung solcher autokorrelierter arithmetischer Operationen erfordert punktweise Operationen auf der Stütze der Quelloperanden. 6D zeigt die Berechnung von x*x mit und ohne die korrekte Behandlung der Autokorrelation. 6D (a) zeigt die Verteilung von x, die in der Mikroarchitektur unter Verwendung von Samples aus einer Gauß-Verteilung mit Mittelwert Null erstellt wurde. 6D (b) zeigt das kombinierte Ergebnis der Unsicherheitsverfolgung mit eingeschalteter oder ausgeschalteter Autokorrelationsverfolgung und der Grundwahrheit bzw. Ground Truth der vollständigen Auswertung von x*x für alle Samples von x. Die Auswertung von x*x bei eingeschalteter Autokorrelationsverfolgung ist fast identisch mit der Grundwahrheit.
  • Ohne eine solche Behandlung der Arithmetik bei autokorrelierten Zufallsvariablen gibt es negative Werte in der Stütze der Ergebnisverteilung, was für den Ausdruck x*x falsch ist.
  • Verteilungs-Co-ALU: Beispiel
  • 6E zeigt das Innere der Verteilungs-Co-ALU. Nomenklatur und Symbolik in 6E sind wie folgt:
  • dPos[i]:
    Stützposition des i-ten Dirac-Deltas der TTR des Eingangsregisters
    dMass[i]:
    Wahrscheinlichkeitsmasse des i-ten Dirac-Deltas der TTR des Eingangsregisters
    dmPos[i]:
    Stützposition des i-ten Elements der Ausgangs-Dirac-Mischung
    dmMass[i]:
    Wahrscheinlichkeitsmasse des i-ten Elements der Ausgangs-Dirac-Mischung
    N:
    Größe der Ausgangs-TTR-Darstellung (in diesem Beispiel ist N gleich 2)
    Single-Bit-Signal für die Gleichheit von zwei Herkunftsadressen
    Single-Bit-Signal für die Steuerung der Ausführung der autokorrelierten Operationen
    Zugriff auf die Verteilungsregisterdatei (entweder Ganzzahl oder Floating Point)
  • Anhand der im On-Chip-Speicher gespeicherten Informationen über aktive Vorfahren pro Register (6A) bestimmt die Co-ALU, ob die Quellregister in der Autokorrelationserkennungseinheit gemeinsame Herkunftsadressen haben. Die Einheit setzt den Ausgang „signalsrcOperandsAutocorrelationSignal“, wenn sie eine Autokorrelation feststellt. Ist der Ausgang nicht gesetzt, führt die Co-ALU den Algorithmus 1 oder den Algorithmus 2 (oder eine Variante je nach Anweisung) aus, die in Tabelle 2 bzw. Tabelle 3 aufgeführt sind. Die kleineren ALU-Komponenten führen die vorgesehene arithmetische Operation an den Stützpositionen der Verteilungsquellregister aus. Bei allen arithmetischen Operationen multipliziert die Co-ALU die Massen der Verteilungsquellregister. Ein „assertedsrcOperandsAutocorrelationSignal“-Signal deaktiviert nicht-punktweise Einheiten, und die Co-ALU führt eine Punkt-zu-Punkt-Operation an den Quellpositionen und -massen durch. Die gepufferte Ausgabe sowohl der autokorrelationsverfolgten Berechnungen als auch der unkorrelierten Operanden-Berechnungen ist eine SoDD-Dirac-Mischung. Eine Konvertierungseinheit wie die in 6C konvertiert die SoDD-Dirac-Mischung in TTR und leitet sie an die Verteilungsregisterdatei weiter. Für die korrekte Verfolgung der Unsicherheit in Anwendungen propagiert die Mikroarchitektur vorzugsweise die Verteilungsinformation durch alle Floating Point-Operationen. Allerdings haben nicht alle Operationen den gleichen verteilungsbedingten Ausführungs-Overhead. Wenn eines oder beide der Verteilungsquellregister keine Verteilungsdaten enthalten (d.h. Partikelwerte sind), führt die Co-ALU eine Skalierung der Stützposition bzw. keine Operation durch. Die Größen „src1“ und „src2“ können z.B. den Größen „srcVar1“ und „srcVar2“ entsprechen, die in Algorithmus 1 und Algorithmus 2 in den obigen Tabellen 2 und 3 angegeben sind.
  • Beispiel für die Verfolgung von Korrelationen
  • 8 ist ein Beispiel für die Verfolgung von Ursprungsadressen und die Erkennung von Autokorrelation für den RV32IMFD-Assemblercodeausschnitt von 9. Das Beispiel konzentriert sich auf die Ausführung von: xPower* = x*x ( Zeile 12 in Figur 3 )
    Figure DE112022002790T5_0145
    Jede Zeile der in 8 dargestellten Tabelle entspricht der Ausführung eines Assembler-Befehls des C-Code-Schnipsels aus 9. In jeder Zeile konzentrieren wir uns auf das Zielregister eines jeden Befehls und zeigen seine „Liste der Ursprungsadressen“ vor und nach der Ausführung des Befehls. In den Zeilen 0 und 1 der Tabelle in 8 ist zu sehen, dass die „Liste der Ursprungsadressen“ der Register fa4 und fa5 so erstellt wird, dass sie „-72(s0)“ enthält, wobei „s0“ ein gespeichertes Ganzzahlregister ist, das eine Adresse relativ zum Stapelzeiger enthält. Da fa4 und fa5 identische Ursprungsadressen haben, führt der Prozessor eine autokorrelierte Multiplikation in Zeile 2 der in 8 dargestellten Tabelle durch, die der Operation „x*x“ entspricht.
  • In Zeile 3 der in 8 gezeigten Tabelle wird eine neue Adresse in fa4 geladen, und somit wird die Ursprungsadresse überschrieben. In Zeile 4 der Tabelle in 8, die der zweiten Multiplikation des C-Code-Schnipsels aus 9 entspricht, wird die Liste der Ursprungsadressen des Zielregisters fa5 als Kombination der Quellregister fa4 und fa5 festgelegt, d.h. einschließlich der beiden Adressen „-72(s0)“ und „-48(s0)“. In Zeile 5 der in 8 dargestellten Tabelle wird diese Ursprungsadresse an der Adressstelle „-48(s0)“ gespeichert, um bei der nächsten Iteration der for-Schleife von Zeile 10 des C-Codes von 9 geladen zu werden. In dieser zweiten Iteration haben die ersten Anweisungen der Zeilen 6-8 der in 8 dargestellten Tabelle die gleiche Wirkung wie in der ersten Iteration. In der Ladeanweisung der Zeile 9 der Tabelle in 8 wird die Ursprungsadresse von fa4 entsprechend der in „-48(s0)“ gespeicherten Liste aktualisiert. Auf diese Weise haben die Register fa4 und fa5 bei der Multiplikation in Zeile 10 der in 8 dargestellten Tabelle einen gemeinsamen Ursprung („-72(s0)“) in ihren Ursprungsadressenlisten, wodurch der Prozessor erkennen kann, dass er eine autokorrelierte Multiplikation durchführen muss. Diese Multiplikation entspricht der Operation „xPower * (x*x)“. Bei arithmetischen Operationen mit Autokorrelation ist es nicht erforderlich, Informationen über die Verteilung der Korrelation der Quelloperanden zu speichern.
  • Anwendungsbeispiele
  • 10 zeigt das Ergebnis der Anwendung der arithmetischen Operation:
    Figure DE112022002790T5_0146
  • Dabei werden die Partikelwerte 1,0 und 5,0 addiert. Jedem dieser Partikel ist eine Verteilungsinformation zugeordnet, die die Unsicherheit des Wertes des Partikels darstellt. Für beide Partikel ist die Verteilungsinformation eine Gaußsche Verteilung (50, 51) mit Varianz σ 1 2
    Figure DE112022002790T5_0147
    und mit Mittelwerten von 1,0 für den einen Partikel und 5,0 für den anderen Partikel. Das Ergebnis ist ein drittes Partikel (das Produkt) mit einem Wert von 6,0 und einer Verteilungsinformation, die die Unsicherheit des Wertes des dritten Partikels als Gaußverteilung 52 mit Varianz σ 2 2
    Figure DE112022002790T5_0148
    und mit einem Mittelwert von 6,0 darstellt. Im Allgemeinen wird sich der Wert der Varianz σ 2 2
    Figure DE112022002790T5_0149
    der resultierenden Verteilung 52 von den Werten der Varianzen σ 1 2
    Figure DE112022002790T5_0150
    der zur Summe beitragenden Verteilungen (50, 51) unterscheiden, wie aus der visuellen Betrachtung von 10 ersichtlich ist.
  • Im Folgenden stellen wir Beispiele für die Fähigkeit der vorliegenden Erfindung vor, Verteilungen aus Partikelsamples korrekt darzustellen und die Verteilungsinformationen durch arithmetische Operationen weiterzugeben. Wir vergleichen mit (i) der Monte-Carlo-Methode zur Propagierung von Unsicherheit und (ii) der NIST-Unsicherheitsmaschine [4].
  • Beispiel 1: Verwendung von Samples aus parametrischen Verteilungen
  • Wir bewerten die Fähigkeit einer Ausführungsform der vorliegenden Erfindung, Samples aus bekannten parametrischen Verteilungen darzustellen und zu bearbeiten. Wir ziehen Samples aus Gauß'schen Verteilungen, um die unabhängigen Variablen mit den Verteilungsinformationen „A“ und „B“ zu erstellen und führen alle grundlegenden arithmetischen Operationen (Addition, Subtraktion, Multiplikation und Division) mit ihnen durch. Wir überprüfen die Korrektheit der mathematischen Operation, indem wir jede mathematische Operation erschöpfend für alle Kombinationen von Samples der Eingangsverteilungen durchführen (Monte Carlo). Für diese Beispiele haben wir die oben beschriebene TTR-Darstellung mit 8 Dirac-Deltas verwendet, um Variablen mit Verteilungsinformationen darzustellen.
  • 11 und 12 zeigen die Histogramme 61 (in den Legenden der Figuren als „X“ bezeichnet) der Ergebnisse. In den Fällen, in denen die unabhängigen Eingangssamples aus der gleichen parametrischen Verteilung stammen, werden die Histogramme von „A“ und „B“ in derselben Unterfigur dargestellt (z.B. 11 (a)). Wir indizieren die Ergebnisse 62 der Monte-Carlo-Simulation mit einer gestrichelten Linie (MC). Wir zeigen den Mittelwert 60 jeder Verteilung in der Legende jeder Unterfigur. Wir verwenden auch eine vertikale Linie, um den Mittelwert eines erfindungsgemäßen Verteilungshistogramms 61 zu kennzeichnen. Die x-Achse aller Unterfiguren entspricht dem Bereich der Verteilungen der jeweiligen Unterfigur. Die 11 bis 12 entsprechen Modellierungen und arithmetischen Operationen auf Gauß-Verteilungen, N(µ;σ2).
  • 11 zeigt die Darstellungen und arithmetischen Operationen für zwei unabhängige Gaußsche Zufallsvariablen (N(1;1) und N(1;1)). Die x-Achse aller Unterfiguren ist der Bereich der Verteilung. Die gestrichelte Linie zeigt die Verteilung jeder arithmetischen Operation, die mit Hilfe von Monte-Carlo-Verfahren auf den Samples der Eingangsverteilung berechnet wurde. 12 zeigt die Darstellungen und arithmetischen Operationen für zwei unabhängige Gaußsche Zufallsvariablen (N(1;1) und N(2;1)).
  • Beispiel 2: Wärmeausdehnungskoeffizient
  • 13 zeigt die Ergebnisse für die Verteilung des Wärmeausdehnungskoeffizienten K eines zylindrischen Kupferstabs, der aus künstlich erzeugten Messungen seiner Ausgangslänge La, Endlänge Lb und der Temperaturdifferenz ΔT berechnet wurde. Wir nehmen an, dass La gleichmäßig auf dem Intervall [9,10] verteilt ist, Lb gleichmäßig auf dem Intervall [11;12] verteilt ist und ΔT eine Gaußsche Verteilung mit N(2;1) aufweist. Die Gleichung zur Berechnung des thermischen Ausdehnungskoeffizienten lautet: K = L b L a L a Δ T
    Figure DE112022002790T5_0151
  • Die Ergebnisse 80 (in den Legenden der Figur mit „X“ bezeichnet) der Berechnung der Verteilungsinformation für den Wärmeausdehnungskoeffizienten K werden mit den Ergebnissen (81, 82) aus der NIST-Unsicherheitsmaschine [4] verglichen. Die NIST-Unsicherheitsmaschine (NISTUM) ist eine webbasierte Softwareanwendung, die es Benutzern ermöglicht, Zufallsvariablen zu spezifizieren und mathematische Operationen mit ihnen durchzuführen, einschließlich komplexer Funktionen. Die Benutzer geben den Typ und die Parameter der parametrischen Verteilungen an, denen die Zufallsvariablen bei der Eingabe in die NISTUM folgen. Die NISTUM bietet zwei Methoden für die Propagierung von Unsicherheiten während arithmetischer Operationen. Eine Methode basiert auf der Propagierung der zentralisierten Momente der Verteilung, die wir als NIST-Unsicherheitsfortpflanzungsausdruck (NIST UPE - siehe Kurve 82) bezeichnen. Eine andere Methode basiert auf der Monte-Carlo-Simulation der arithmetischen Operationen auf Verteilungen, die wir als NIST Monte Carlo (NIST MC - siehe Kurve 81) bezeichnen. Wir haben drei Anwendungen untersucht, die aus den Beispielen des NISTUM-Benutzerhandbuchs [4] stammen. Wir verwendeten Zufallszahlengeneratoren, um Samples der parametrischen Verteilungen abzuleiten, denen die Eingabevariablen der Beispiele folgen. Wir benutzten die webbasierte Schnittstelle von NISTUM, um die Beispielanwendungen auszuführen und die von NISTUM erzeugten Daten für die beiden Methoden der Unsicherheitsfortpflanzung zu erhalten. Für diese Beispiele haben wir die oben beschriebene TTR-Darstellung mit 8 Dirac-Deltas verwendet, um Variablen mit Verteilungsinformationen darzustellen.
  • Dieses Anwendungsbeispiel entspricht der Messung des linearen Wärmeausdehnungskoeffizienten eines zylindrischen Kupferstabs mit der Anfangslänge La = 1.4999m, gemessen mit dem Stab bei der Temperatur T0 = 288.15 K. Die Endlänge Lb wurde bei der Temperatur T1 = 373.10 K gemessen und ergab Lb = 1.5021 m. Die gemessenen Variablen wurden als studentsche t-Zufallsvariablen mit 3 Freiheitsgraden modelliert, wobei die Mittelwerte gleich den gemessenen Werten und die Standardabweichungen gleich 0,0001 m für La, 0,0002 m für Lb, 0,02 K für T0 und 0,05 K für T1 entspricht. 13 zeigt den Vergleich der erfindungsgemäßen Ergebnisse mit denen von NISTUM für den Wärmeausdehnungskoeffizienten.
  • Beispiel 3: Schätzung der Geschwindigkeit anhand von GPS-Daten:
  • Bei der Verfolgung menschlicher Aktivitäten ist es üblich, GPS-Koordinaten zu verwenden, um die Bewegungsgeschwindigkeit einer Person zu schätzen. Für dieses Beispiel verwenden wir einen öffentlichen Datensatz menschlicher Aktivitäten mit zeitgestempelten GPS-Koordinaten und GPS-Genauigkeitswerten. Wir übernehmen die Methode von Bornholt et al. [Ref. 7], um eine Verteilung der GPS-Koordinaten um ein Paar von GPS-Längen- und Breitengraden des Datensatzes menschlicher Aktivitäten abzuleiten. Wir verwenden die Verteilungen der GPS-Koordinaten, um die Verteilung der geschätzten Geschwindigkeit zwischen zwei GPS-Punkten (gps-speed) zu berechnen. Im Vergleich zur herkömmlichen Mikroarchitektur beträgt die durchschnittliche Verbesserung der TTR in Bezug auf die Wasserstein-Distanz aus der Monte-Carlo-Auswertung das 1,9-fache.
  • Beispiel 4: Bosch BME680 Sensor-Konvertierungsroutinen:
  • Der BME680 von Bosch ist ein Temperatur-, Druck- und Feuchtigkeitssensor. Bosch bietet Routinen für die Umwandlung von ADC-Rohwerten in aussagekräftige Messungen unter Verwendung von 20 sensorspezifischen Kalibrierungskonstanten. In diesem Beispiel werden die Auswirkungen des Rauschens in den ADC-Messungen und der Unsicherheit in den Kalibrierungskonstanten auf die kalibrierten Temperatur-, Druck- und Feuchtigkeitsausgänge des offiziellen kommerziellen Kalibrierungs-Firmwarecodes von Bosch [Ref. 8] bewertet. 13B zeigt die verrauschten Temperatur-ADC-Messungen und 13C zeigt deren Auswirkung auf die umgewandelte Temperatur. In dieser Anwendung führt die aleatorische Unsicherheit zu einer bimodalen Verteilung des Ausgangsergebnisses. Die Ausgabe der konventionellen Architektur fällt in einen Wahrscheinlichkeitsbereich von Null, was bedeutet, dass die Durchschnittsfilterung des verrauschten ADC zu einem falschen Ergebnis führt. Im Vergleich zu den konventionellen Methoden erreicht die vorliegende Mikroarchitektur einen durchschnittlich 5,7-fachen (bis zu 10-fachen mit TTR-64) kleineren Wasserstein-Abstand vom Monte-Carlo-Ausgang.
  • Beispiel 5: Brown-Ham-Versetzungsmodell:
  • In diesem Beispiel wird die Schneidspannung einer Legierungsausscheidung unter Verwendung des Brown-Ham-Versetzungsmodells [Ref. 10] berechnet. Anderson et al. [Ref. 9] geben empirische Wertebereiche für die Eingaben des Versetzungsmodells an. Wir nehmen an, dass die Eingaben des Versetzungsmodells einer gleichmäßigen Verteilung über diese Bereiche folgen. Im Vergleich zu den konventionellen Methoden erreicht die vorliegende Mikroarchitektur im Durchschnitt eine 3,83-fache (bis zu 9,3-fache) höhere Genauigkeit in Bezug auf die Monte-Carlo-Simulation.
  • Beispiel 6: Eindimensionales Finite-Elemente-Modell:
  • Ein technisches Problem, bei dem Unsicherheiten in den Parametern des Problems wichtige Auswirkungen auf die Sicherheit haben, betrifft die Messung der Eigenschaften von Bauteilen. Betrachten wir einen Träger (z.B. Beton oder Stahl) mit der Querschnittsfläche A und der Länge L aus einem Material mit dem Elastizitätsmodul E, der mit einer Axiallast q0 pro Längeneinheit belastet wird. Die Ausdehnung u(x) des Trägers an der Position x des Trägers ist: u ( x ) = q 0 2 A E ( 2 x L x 2 )
    Figure DE112022002790T5_0152
  • Aufgrund von Materialschwankungen oder Schwankungen der atmosphärischen Bedingungen kann das Elastizitätsmodul unsicher sein, und diese Unsicherheit kann mit einer Wahrscheinlichkeitsverteilung für das Elastizitätsmodul quantifiziert werden, anstatt eine einzelne Zahl zu verwenden. Genauso wie Ingenieure oft eine Floating Point-Implementierung der Gleichung für die Ausdehnung u(x) auswerten wollen, anstatt eine, bei der die Parameter auf ganzzahlige Werte beschränkt sind, ist es nützlich, die Gleichung für die Ausdehnung u(x) mit Parametern wie dem Elastizitätsmodul als Verteilungen zu bewerten, die die Unsicherheit darstellen. Die Implementierungen analytischer Modelle wie die Gleichung für die Ausdehnung u(x) oder ihre Finite-Elemente-Gegenstücke können sich in älteren Bibliotheken oder in Bibliotheken von Drittanbietern befinden, was es attraktiv macht, über Methoden zur Verfolgung der Unsicherheit zu verfügen, die mit bestehenden Programm-Binären funktionieren. Ein eindimensionales Finite-Elemente-Modell wurde verwendet, um die Ausdehnung eines Trägers zu berechnen, wenn die Modellparameter eine epistemische Unsicherheit aufweisen. Wir gingen von einer gleichmäßigen Verteilung des E-Modul-Eingangsparameters des Benchmarks und von festen Partikelwerten für die übrigen Eingangsparameter aus. Mit der vorliegenden Mikroarchitektur wurde eine durchschnittliche Verbesserung der Genauigkeit um den Faktor 2 im Vergleich zu den herkömmlichen Methoden erreicht.
  • Beispiel 7: Beschleunigter Quanten-Variations-Eigensolver:
  • Dieser Quantenalgorithmus berechnet Grundzustände eines Quantensystem-Hamiltonian, H [Ref. 11 und 12]. Die vorliegende Mikroarchitektur wurde angewandt, um den Quantenzustand ψ(k) zu finden, der den Eigenwert 〈(ψ(k)|H|ψ(k)〉 minimiert. Typischerweise wird dabei ein Rejection Sampling verwendet, um P(ϕ|E) aus Messungen von P(E|ϕ|) durch eine Quantenphasenschätzung (QPE) zu berechnen [Ref. 13]. Mit der vorliegenden Mikroarchitektur können wir explizit das Posterior aus P(E|ϕ) berechnen und P(ϕ) berechnen. Über mehrere Iterationen auf der vorliegenden Mikroarchitektur kann der Algorithmus bessere Schätzungen von P(ϕ|E) berechnen. 13D zeigt die Eingabe, die wir mit Hilfe von Samples aus einer Gleichverteilung erzeugen. Die 13E und 13F zeigen die Abnahme der posterioren Varianz P(ϕ) nach zwei bzw. fünf Iterationen auf der vorliegenden Mikroarchitektur. Die vorliegende Mikroarchitektur erreicht eine Verbesserung der Genauigkeit um das 6,23-fache im Vergleich zu den herkömmlichen Verfahren (bis zu 41,3-fach mit TTR-256).
  • Beispiel
  • Unter nochmaliger Bezugnahme auf 1 ist gemäß einem alternativen Aspekt der Erfindung oder zusätzlich zu den hierin offenbarten Aspekten eine Vorrichtung 1 gemäß einer Ausführungsform der Erfindung gezeigt. Die Vorrichtung umfasst eine Rechenvorrichtung 3, die mit einer Messvorrichtung 2 in Form einer Sensoreinheit (z.B. eines Beschleunigungsmessers, eines Magnetometers usw.) in Verbindung steht, die so konfiguriert ist, dass sie Messungen einer vorbestimmten messbaren Größe, nämlich einer Messgröße (z.B. Beschleunigung, magnetische Flussdichte usw.), erzeugt. Die Rechenvorrichtung 3 umfasst eine Prozessoreinheit 4, die mit einer lokalen Pufferspeichereinheit 5 und einer lokalen Hauptspeichereinheit 6 kommuniziert. Die Rechenvorrichtung ist so konfiguriert, dass sie als Eingabe Daten von der Sensoreinheit empfängt, die Messungen der Messgröße (z.B. Beschleunigung, magnetische Flussdichte usw.) darstellen, und dass sie die empfangenen Messungen in der lokalen Hauptspeichereinheit 6 speichert. Die Prozessoreinheit 4 ist in Verbindung mit der Pufferspeichereinheit 5 so konfiguriert, dass sie auf die gespeicherten Messungen einen Datenverarbeitungsalgorithmus anwendet, der so konfiguriert ist, dass er die im Hauptspeicher gespeicherten Sensormessungen abtastet, um einen Samplesatz von Messungen zu erzeugen, der die Unsicherheit in den von der Sensoreinheit 2 durchgeführten Messungen repräsentiert und gleichzeitig die Messgröße so genau darstellt, wie es die Sensoreinheit erlauben kann. Die Prozessoreinheit 4 kann so konfiguriert sein, dass sie den Samplesatz verwendet, um eine Wahrscheinlichkeitsverteilung und Verteilungsinformationen zu erzeugen, die die Wahrscheinlichkeitsverteilung kodieren, die als Darstellung der Unsicherheit bei den Messungen durch die Sensoreinheit verwendet werden kann. Diese Darstellung kann nach einem der hierin offenbarten Verfahren erfolgen (z.B. eine SoDD-basierte Darstellung; eine CMR-Darstellung), die an anderer Stelle in der vorliegenden Offenbarung ausführlich erörtert werden.
  • Die Rechenvorrichtung ist so konfiguriert, dass sie die Verteilungsdaten, die die Unsicherheit der Messungen darstellen, sobald sie erzeugt wurden, in seinem Hauptspeicher 6 speichert und/oder den Samplesatz (z.B. über eine serielle E/A-Schnittstelle) an einen externen Speicher 7 überträgt, der mit der Rechenvorrichtung in Verbindung steht, und/oder über eine Sendeeinheit 8 ein oder mehrere Signale 9 überträgt, die den Samplesatz an einen entfernten Empfänger (nicht dargestellt) weiterleiten. Das Signal kann (z.B. über eine serielle E/A-Schnittstelle) drahtlos, faseroptisch oder über andere Übertragungswege übertragen werden, die dem Fachmann ohne weiteres einleuchten.
  • Auf diese Weise ist die Rechenvorrichtung so konfiguriert, dass sie über einen bestimmten Zeitraum eine beliebige Anzahl (Mehrzahl) von Samplesätzen erzeugt und speichert, bei denen die Verteilung der Messwerte innerhalb jedes Samplesatzes die Wahrscheinlichkeitsverteilung der Messungen durch die Sensoreinheit 2 darstellt, und damit assoziierte annähernde Wahrscheinlichkeitsverteilungen und kodierte Verteilungsinformationen. In ähnlicher Weise ist die Rechenvorrichtung so konfiguriert, dass sie eine beliebige Anzahl (Mehrzahl) von Samplesätzen, annähernde Wahrscheinlichkeitsverteilungen und kodierten Verteilungsinformationen erzeugt und speichert, wie sie von/in verschiedenen Betriebsarten der Sensoreinheit 2 oder von einer anderen Sensoreinheit 2 bereitgestellt werden. Mit anderen Worten, ein erster von der Rechenvorrichtung gespeicherter Samplesatz kann einer ersten Sensoreinheit zugeordnet sein und ein zweiter von der Rechenvorrichtung gespeicherter Samplesatz kann einer zweiten Sensoreinheit zugeordnet sein, die nicht mit der ersten Sensoreinheit identisch ist. Bei der ersten Sensoreinheit kann es sich beispielsweise um einen Spannungssensor (elektrische Spannung) und bei der zweiten Sensoreinheit um einen Stromsensor (elektrischer Strom) handeln. In beiden Fällen kann die Rechenvorrichtung Verteilungen von Messwerten speichern, die von jedem Sensor gemacht wurden und die jeweils die Wahrscheinlichkeitsverteilung von Messungen durch diese Sensoreinheit 2 darstellen.
  • Die Rechenvorrichtung 3 ist so konfiguriert, dass sie ein Verfahren zur Verarbeitung der in der Hauptspeichereinheit gespeicherten Datenverteilungen, wie z.B. Samplesätze, annähernde Wahrscheinlichkeitsverteilungen und kodierte Verteilungsinformationen, wie folgt implementiert.
  • 14 zeigt Beispiele [Diagramme: (a), (b), (c) und (d)] für die kumulativen Wahrscheinlichkeitsverteilungen von Mengen {n} von n Werten innerhalb jeder der vier verschiedenen erhaltenen Datensätze. 14 zeigt auch eine Teilmenge 90 von Werten (Vi) aus einem erhaltenen Datensatz zusammen mit Wahrscheinlichkeitswerten (pi) 91, die jeweils eine Wahrscheinlichkeit für das Auftreten jedes Wertes innerhalb der betreffenden Teilmenge definieren. Aus den Datenwerten 90 und den zugehörigen Wahrscheinlichkeitswerten 91 gebildete Tupel 92 sind dargestellt. Es ist eine annähernde Wahrscheinlichkeitsverteilung 93 gezeigt, die eine Reihe von Dirac-Delta-Funktionen (SoDD-Darstellung, wie hier offenbart) umfasst, die unter Verwendung dieser Tupel 92 erzeugt wurden. Jeder Wert (Vi) innerhalb der (auf n Werte begrenzten) Teilmenge ist ein Wert, den die Daten annehmen können und der innerhalb der erhaltenen Datenmenge die höchste Wahrscheinlichkeit aufweist.
  • Mit der höchsten Wahrscheinlichkeit kann gemeint sein, dass die fraglichen Datenelemente eine vorgegebene Anzahl (n, eine ganze Zahl > 1) von Datenelementen mit der höchsten Wahrscheinlichkeit des Auftretens innerhalb des erhaltenen Datensatzes umfassen. Mit anderen Worten, die „obersten“ n Datenelemente, die die größte Wahrscheinlichkeit oder Häufigkeit des Auftretens innerhalb des erhaltenen Datensatzes aufweisen, was auch immer diese Wahrscheinlichkeit (Häufigkeit) sein mag. Bei diesem Ansatz wird die Größe der Teilmenge auf den Wert von n festgelegt. Der Wert von n kann je nach den Merkmalen des erhaltenen Datensatzes beliebig gewählt werden. Zum Beispiel kann der Wert im Bereich von: 5 < n < 100, wie z.B. n = 50, oder n = 20 usw. sein. Selbstverständlich können auch andere Werte für n verwendet werden. Die Größe des Wertes n kann in jedem Fall der erfindungsgemäßen Implementierung gewählt werden, so dass Implementierungen, die die Hardware- oder Softwarekosten der Implementierung gegen die Darstellungsgenauigkeit eintauschen, ermöglicht werden. Die approximative Wahrscheinlichkeitsverteilung 93, die Dirac-Deltas umfasst, ist eine Beispieldarstellung, bei der die n Werte die Positionen von n Dirac-Deltas darstellen und die mit den Werten assoziierten Wahrscheinlichkeiten die mit den Dirac-Deltas assoziierten Wahrscheinlichkeiten darstellen.
  • Alternativ kann mit der höchsten Wahrscheinlichkeit gemeint sein, dass die fraglichen Datenelemente nur solche Datenelemente umfassen, deren Wahrscheinlichkeiten pi (oder Häufigkeiten) einen vorgegebenen Wahrscheinlichkeitsschwellenwert (z.B. pthreshold = 0,2) überschreiten. Dies bedeutet, dass alle Wahrscheinlichkeitswerte (pi) 11 die Bedingung erfüllen: pi > pthreshold. Der Wert von pthreshold kann je nach den Merkmalen des erhaltenen Datensatzes beliebig gewählt werden. Beispielsweise kann der Wert von pthreshold ein Wert im Bereich 0,1< pthreshold < 0,9, oder im Bereich 0,1< pthreshold< 0,5, oder im Bereich 0,2< pthreshold< 0,5, wie z.B. pthreshold = 0,25 sein. Natürlich können auch andere Werte/Bereiche von pthreshold verwendet werden, wenn dies gewünscht ist. In diesem Fall ist die Anzahl (n) der Werte (Vi, i = 1,...,n) in der Teilmenge 90 im Allgemeinen nicht fest, sondern variiert typischerweise in Abhängigkeit vom Wert von pthreshold. Eine weitere Alternative: Mit der höchsten Wahrscheinlichkeit kann gemeint sein, dass die ausgewählten Datenelemente die größte Anzahl von Datenelementen umfassen, deren jeweilige Wahrscheinlichkeiten höher sind als die Wahrscheinlichkeiten der nicht ausgewählten Datenelemente (außerhalb der Menge der ausgewählten Datenelemente) und dass die Wahrscheinlichkeiten der ausgewählten Datenelemente eine Gesamtwahrscheinlichkeit ergeben, die den Wahrscheinlichkeitsschwellenwert nicht überschreitet.
  • 14 zeigt Beispiele aus der Praxis für Wertesammlungen von Datenelementen, die die Verteilung der Werte darstellen, die alle Programmvariablen der Typen unsigned int und unsigned char für die Programme aus der MiBench-Suite repräsentativer eingebettete-Systeme-Anwendungen und aus der SPEC CPU 2000-Suite repräsentativer Desktop-Computeranwendungen annehmen. Die in den Diagrammen (a), (b), (c) und (d) dargestellten Wahrscheinlichkeiten (Pr({n})) entsprechen den Wahrscheinlichkeiten von Mengen {n} von n Werten und dem Anteil an der Wahrscheinlichkeitsmasse der Gesamtverteilung, den sie repräsentieren, für zwei reale Programmsätze (MiBench [siehe Ref. [5]], obere Reihe der Diagramme (a) und (b); und SPEC CPU 2000 [siehe Ref. [6]], untere Reihe der Diagramme (c) und (d)). Die Untermenge 90 von Werten (Vi) zeigt die Menge der tatsächlichen Elemente für n = 16 für den MiBench-Fall unsigned int.
  • In 15 ist ein Hardware-Blockdiagramm einer Ausführungsform der Erfindung dargestellt. Die Computervorrichtung 3 kann entsprechend konfiguriert sein. Das Vorrichtung ist so konfiguriert, dass sie Eingangsdaten wie folgt erhält.
  • Die Vorrichtung empfängt als Eingabe 100a einen Datensatz numerischer Werte (z.B. einen Satz wie {1, 14, 2,3, 99, -8, 6}) oder kategoriale Werte (z.B. einen Satz von Zeichenketten wie {„string1“, „string 2“...}) und berechnet daraus 101 relative Häufigkeiten des Auftretens von Elementen innerhalb des Eingabedatensatzes, um einen Satz von Tupeln (Vi, pi) von Werten und zugehörigen Wahrscheinlichkeiten für jedes Element innerhalb des Satzes zu erhalten. Alternativ kann die Vorrichtung als Eingabe 100b einen Satz von Tupeln (Vi, pi) von Werten und zugehörigen Wahrscheinlichkeiten erhalten, die zuvor von der Vorrichtung bestimmt wurden. Darüber hinaus kann die Vorrichtung als weitere Eingabe optional einen Wert der Zahl „n“ erhalten, der die Anzahl der Datenelemente darstellt, die in einer Untermenge {n} von Datenelementen enthalten sein sollen, die aus der Eingabe 100a ausgewählt werden, oder eine Untermenge {n} von Tupeln aus der Eingabe 100b aus einer Menge von Tupeln (Vi, pi), durch Auswahl 102 der Tupel mit den n höchsten Wahrscheinlichkeitswerten (pi) innerhalb des erhaltenen Datensatzes (n, z.B. n=16 wie in 14). In einigen Implementierungen kann der Eingangsparameterwert 100c der Zahl „n“ in den Fällen weggelassen werden, in denen, wie oben erörtert, die Datenelemente auf der Grundlage des Wahrscheinlichkeitsschwellenwerts jedes einzelnen Elements ausgewählt werden, oder in denen die Datenelemente so ausgewählt werden, dass ihre Gesamtwahrscheinlichkeit einen bestimmten Schwellenwert erreicht. In einer alternativen Implementierung kann die Vorrichtung in diesem Stadium eine Teilmenge der Datenelemente innerhalb des erhaltenen Datensatzes auswählen, die eine Auftrittswahrscheinlichkeit innerhalb des erhaltenen Datensatzes haben, die den Wert einer vorbestimmten Schwellenwahrscheinlichkeit (wie oben erörtert) überschreitet.
  • Als Nächstes normalisiert die Vorrichtung die Wahrscheinlichkeitswerte (pi) der jeweiligen Tupel (Vi, pi), die mit ausgewählten Datenelementen assoziiert sind, so dass die Summe dieser Wahrscheinlichkeiten aller ausgewählten Datenelemente gleich 1,0 ist. Durch diese Normalisierung werden die Wahrscheinlichkeitswerte so umskaliert, dass es sich um relative Auftrittswahrscheinlichkeiten der jeweiligen Tupel (Vi, pi) für Mitglieder der Teilmenge von Datenelementen handelt. Jedes Tupel (Vi, pi) für jedes der Datenelemente innerhalb der Teilmenge umfasst einen ersten Wert (Vi) und einen zweiten Wert (pi), wobei der erste Wert ein Wert des jeweiligen Datenelements ist und der zweite Wert ein Wert der normalisierten Auftrittswahrscheinlichkeit des jeweiligen Datenelements innerhalb des erhaltenen Datensatzes ist.
  • Der Inhalt jedes der „n“ Tupel (Vi, pi) wird dann getrennt in einer Speichertabelle 110 und in einem Verteilungsspeicher 108 gespeichert. Insbesondere wird für jedes Tupel (Vi, pi) dessen erster Wert (Vi) an einem entsprechenden Speicherplatz (Li) des Verteilungsspeichers 108 gespeichert. Der zweite Wert (pi) desselben Tupels wird jedoch in einer Untertabelle (103: in Software oder Hardware) der Speichertabelle 110 in Verbindung mit einem Zeiger 115 gespeichert, der so konfiguriert ist, dass er den jeweiligen Speicherplatz (Li) des ersten Wertes (Vi) des Tupels (Vi, pi) identifiziert. Dies bedeutet, dass die Untertabelle 103 nur den Wahrscheinlichkeitswert 106 jedes Tupels und einen Zeiger 115 auf den Speicherplatz 107 enthält, der dem Datenwert (numerisch oder kategorial) des Tupels in einem separaten Speicher 108 zugeordnet ist. Bei der Speichertabelle 110 kann es sich um einen strukturierten Speicher in einer Schaltungsstruktur und nicht um ein Array in einem Computerspeicher handeln. Die Vorrichtung umfasst eine Logikeinheit (104, 105), die so konfiguriert ist, dass sie die ausgewählten „n“ Tupel 102 empfängt und die Wahrscheinlichkeitswerte (pi) in Verbindung mit entsprechenden Zeigern 107 an Stellen innerhalb einer Untertabelle der Tabelle speichert, wenn die Datenwerte (Vi) der Tupel den von der Logikeinheit festgelegten Kriterien entsprechen. Auf diese Weise kann die Vorrichtung die Speichertabelle 110 so strukturieren, dass sie Untertabellen 103 umfasst, von denen jede Daten von Tupeln enthält, die einen bestimmten Satz von Kriterien erfüllen. Die Kriterien, die eine der Untertabellen definieren, können sich natürlich von den Kriterien unterscheiden, die eine der anderen Untertabellen definieren.
  • Die Berechnung der arithmetischen Operationen kann auf diesen Verteilungen in jeder hier beschriebenen Weise durch einen Mikroprozessor, einen digitalen Signalprozessor (DSP) oder ein Field Programmable Gate Array (FPGA) der Vorrichtung 31 ausgeführt werden.
  • Die Vorrichtung ist so konfiguriert, dass sie eine Copula-Struktur 109 zur Kombination der einzelnen Verteilungen 93 implementiert, die unter Verwendung der Tupel separater Tabellen (die jeweils wie oben beschrieben gebildet werden, z.B. SoDD) oder separater Untertabellen dargestellt werden, um gemeinsame Verteilungen zu erhalten. Die Copula-Struktur kann so konfiguriert sein, dass sie eine multivariate kumulative Verteilungsfunktion erzeugt, für die die marginale Wahrscheinlichkeitsverteilung jeder Variablen gleichmäßig auf dem Intervall [0, 1] ist. Dies ist nur ein Beispiel, und es versteht sich von selbst, dass die Verwendung der Copula zur Erzeugung einer multivariaten CDF aus gleichmäßigen Marginalverteilungen optional ist. Dem Fachmann stehen zu diesem Zweck viele parametrische Copula-Familien zur Verfügung.
  • Die Logikeinheit kann so konfiguriert sein, dass sie ein probabilistisches (z.B. nicht boolesches) Prädikat 105 für die Tabelle implementiert, das so konfiguriert ist, dass es eine Wahrscheinlichkeit (Bernoulli(p)) (d.h. anstelle eines booleschen „wahr/falsch“-Wertes) für jeden der gegebenen Datenwerte (Vi), auf die es angewendet wird, zurückgibt. Ein schematisches Beispiel ist in 16 dargestellt. Die Kriterien, die verschiedene Untertabellen definieren, können auf diese Weise implementiert werden. Da das Prädikat in Form eines Prädikatsbaums betrachtet werden kann, ist es möglich, das Prädikat in einen String umzuwandeln, indem pre-order traversal oder post-order traversal aller Knoten des Baums verwendet wird, und diesen umgewandelten Baum als Verteilungsdarstellung zu verwenden. Dadurch kann die Größe der Darstellung erheblich reduziert werden, so dass sie nicht mehr exponentiell, sondern linear mit der Größe der Darstellung skaliert. Techniken für das pre-order traversal oder post-order traversal können dem Fachmann ohne weiteres zur Verfügung stehen.
  • Die Vorrichtung kann ferner so konfiguriert sein, dass sie eine Wahrscheinlichkeit (oder Häufigkeit) des Auftretens der Datenelemente innerhalb des erhaltenen Datensatzes bestimmt, die den Wert der vorbestimmten Schwellenwahrscheinlichkeit (oder Schwellenhäufigkeit) nicht überschreiten oder nicht zu der vorbestimmten Anzahl {n} gehören. Mit anderen Worten, das Verfahren kann die Bestimmung einer weiteren Wahrscheinlichkeit (poverflow) des Auftretens von Datenelementen innerhalb des erhaltenen Datensatzes beinhalten, die nicht zu der Teilmenge {n} von Datenelementen oder von ausgewählten Tupeln mit den n höchsten Wahrscheinlichkeitswerten gehören. In diesem Fall normalisiert die Vorrichtung die Wahrscheinlichkeitswerte (pi) jedes der {n} ausgewählten Datenelemente so, dass die Summe ist: p overflow + i = 1 n p i = 1.0.
    Figure DE112022002790T5_0153
    Auf diese Weise kann die weitere Wahrscheinlichkeit die Wahrscheinlichkeit berücksichtigen, dass ein Datenelement des erhaltenen Datensatzes außerhalb der Teilmenge liegt, und somit eine „Überlauf”-Wahrscheinlichkeit liefern.
  • In diesem Fall erzeugt die Vorrichtung ein kollektives Tupel (Voverflow, poverflow), das kollektiv die Datenelemente des erhaltenen Datensatzes repräsentiert, die nicht in der Teilmenge enthalten sind. Der Wert Voverflow repräsentiert kollektiv die Datenelemente des erhaltenen Datensatzes, die nicht in der Teilmenge enthalten sind. Der Wert poverflow ist ein Wert für die normalisierte weitere Wahrscheinlichkeit des Auftretens (z.B. kumulative oder aggregierte Wahrscheinlichkeit) der Datenelemente, die nicht in der ausgewählten Teilmenge {n} enthalten sind. Das kollektive Tupel kann in der Speichertabelle 110, aufgeteilt auf die Untertabelle 103 und den Verteilungsspeicher 108, in der oben beschriebenen Weise gespeichert werden. In einer bevorzugten Ausführungsform kann voverflow ein „spezieller“ Wert sein, analog zu NaN („not a number“) und Inf (infinity), der einen unbekannten Wert bezeichnet. Solche Werte werden manchmal auch als Löschwerte bezeichnet.
  • Eine Erkenntnis der vorliegenden Erfindung besteht darin, die Elemente einer Teilmenge {n} mit einer Hardware-Tabellenstruktur 110 darzustellen, die Tabelleneinträge für jedes der folgenden Elemente umfasst: (1) Zeiger auf Speicherplätze für die Basiswerte der Verteilungen, seien es Zahlen, Strings usw., einschließlich eines möglichen Überlaufelements, um alle anderen möglichen Basiswerte darzustellen, die nicht explizit aufgeführt sind; (2) Tabelleneinträge für die Wahrscheinlichkeiten für jeden Basiswert, einschließlich eines Eintrags für die Wahrscheinlichkeit des oben erwähnten Überlaufelements; (3) Aktualisierung der Tabellenspalten, um sicherzustellen, dass die Wahrscheinlichkeiten sich zu eins summieren. Da jede im Computersystem verwendete Verteilung im Prinzip einer anderen Tabelle zugeordnet sein könnte (z.B. Verteilungen, die verschiedenen Zeitpunkten eines heteroskedastischen Prozesses entsprechen, oder Verteilungen, die verschiedenen Variablen in einem Programm entsprechen), werden diese Tabellen im Kontext des gesamten Computersystems als Untertabellen bezeichnet. In einer typischen Implementierung kann ein System eine Sammlung solcher Untertabellen enthalten, eine Untertabelle für jede Verteilung, die das System darstellen muss.
  • Jede Verteilungsinstanz (d.h. jede Untertabelle) kann mit einer eindeutigen Kennung versehen werden, so dass ein Computersystem auf die verschiedenen Verteilungen (d.h. die Marginalen) verweisen kann.
  • Da die hier offengelegte Struktur Zeiger auf Elemente als Wertdarstellung und nicht die Werte selbst verwendet, kann eine Implementierung Verteilungen darstellen, bei denen die Basiswerte entweder bestimmte Ganzzahlen, bestimmte reelle Werte oder ganzzahlige oder reelle Wertebereiche darstellen können. Sie können auch Strings oder andere kategoriale Bezeichnungen darstellen. In dem besonderen Fall, dass die darzustellenden Werte direkt in die Tabelle passen, können die Zeiger direkt durch die darzustellenden Werte ersetzt werden. Die Fähigkeit der Erfindung, Einträge in der Tabelle zur Darstellung von Wertebereichen zu verwenden, bedeutet, dass die Darstellung von Zahlenhistogrammen verwendet werden kann. Die Erfindung bietet auch die Flexibilität, z.B. einzelne Textstrings oder lexikographisch geordnete Bereiche von Textstrings in einer Sprachorthographie und ihre zugehörigen Wahrscheinlichkeiten usw. darzustellen.
  • Zusätzlich zu den Operationen auf der Verteilungsdarstellung in einem Mikroprozessor, der die Arithmetik auf Verteilungen auf Zahlen erlaubt, könnten die Operationen auf der Untertabelle auch mengentheoretische Operationen wie Schnittmenge, Vereinigung, Komplement usw. sein. Wenn beispielsweise zwei Verteilungen gegeben sind, die Mengen von Wörtern und ihre entsprechenden Wahrscheinlichkeiten repräsentieren, ergibt die Vereinigungsoperation eine neue Verteilung, deren Basiswerte die n Elemente (für eine Darstellungstabelle der Größe n) mit den höchsten Wahrscheinlichkeiten aus den konstituierenden Mengen der Vereinigungsoperation sind, wobei die Wahrscheinlichkeiten in geeigneter Weise normalisiert sind, so dass die neue Verteilung Elemente hat, deren Wahrscheinlichkeiten sich zu eins (1,0) summieren.
  • Die Komponenten der Hardwarestruktur umfassen möglicherweise Untertabellen für jede Verteilung, einen Speicher für die Basiswerte der Verteilungen, eine Copula-Struktur für die Kombination der einzelnen Verteilungen, um eine gemeinsame Verteilung zu erhalten, und eine Logik für die Aufnahme von Wertesätzen und ihre Platzierung in den Untertabellen in Form von Verteilungen.
  • Beispiel
  • In der Informatik ist der Drei-Adressen-Code (oft abgekürzt als TAD, TAC oder 3AC) ein Zwischencode, der von optimierenden Compilern verwendet wird, um die Implementierung von Code-verbessernden Transformationen zu unterstützen. Jeder TAC-Befehl hat höchstens drei Operanden und ist in der Regel eine Kombination aus Zuweisung und einem binären Operator. Zum Beispiel: t1 := t2 + t3. Der Name leitet sich von der Verwendung von drei Operanden in diesen Anweisungen ab, auch wenn Anweisungen mit weniger Operanden vorkommen können. Im Drei-Adressen-Code kann ein Programm in mehrere separate Anweisungen aufgeteilt werden. Diese Anweisungen lassen sich leichter in Assembler übersetzen.
  • Ein Basisblock in einem Drei-Adressen-Code (TAD) kann als eine Folge von zusammenhängenden Anweisungen betrachtet werden, die keine Sprünge zu anderen Teilen des Codes enthält. Die Unterteilung eines Codes in Basisblöcke erleichtert die Analyse des Kontrollflusses erheblich. In der Compiler-Konstruktion kann ein Basisblock als eine geradlinige Codesequenz betrachtet werden, die keine Verzweigungen nach innen enthält, außer beim Eintritt in den Code, und keine Verzweigungen nach außen, außer beim Verlassen des Codes. Dies macht einen Basisblock für die Analyse sehr geeignet. Compiler zerlegen Programme in der Regel in ihre Basisblöcke als ersten Schritt im Analyseprozess. Basisblöcke können auch als Eckpunkte oder Knoten in einem Kontrollflussgraphen betrachtet werden.
  • 22 zeigt ein Beispiel des TAD des folgenden Programms zur Erzeugung einer 10x10-Diagonalmatrix mit diagonalen Matrixelementen Xi.
  • BEISPIEL: Code zum Setzen einer 10x10 Diagonalmatrix mit Diagonalelementen Xi:
    Figure DE112022002790T5_0154
  • Der TAC wird in die Basisblöcke B1 bis B6 nach den unten definierten Partitionierungsregeln aufgeteilt. Hier taucht Xi im Basisblock B6 auf, und der Wert von Xi kann durch einen anderen Basisblock des Codes (Block B7: siehe 19, 20 und 21) generiert werden, der folgendes berechnet: X i = f ( i , x 1, x 2, x 3 ) = ( [ x 1 + x 2 ] [ x 3 ] 2 [ x 1 x 2 ] )
    Figure DE112022002790T5_0155
  • Die Schritte (3)-(6) des TAD werden verwendet, um ein Matrixelement „0“ zu erzeugen, und Schritt (15) des TAD wird verwendet, um ein Matrixelement Xi zu erzeugen.
  • Unterteilung des Drei-Adressen-Codes in Basisblöcke
  • Das Verfahren zur Partitionierung eines TAD-Codes umfasst eine Eingabephase, in der ein TAD-Code empfangen wird, gefolgt von einer Verarbeitungsphase, in der der eingegebene TAD-Code verarbeitet wird, um ihn wie folgt zu partitionieren.
  • Eingabe:
  • Eine Folge von drei Adressbefehlen (TAD). Prozess:
    • Die „Leader“-Befehle innerhalb eines Codes werden wie folgt bestimmt:
      • (1) Die erste „Drei-Adressen“-Anweisung des Codes ist ein Leader.
      • (2) Anweisungen, die Targets bzw. Ziele von unbedingten oder bedingten goto-/Sprunganweisungen sind, sind Leader.
      • (3) Anweisungen, die unmittelbar auf unbedingte oder bedingte goto-/Sprunganweisungen folgen, sind Leader.
      Für jeden Leader enthält sein Basisblock sich selbst und alle Anweisungen bis zum nächsten Leader, aber ohne diesen. Ein Basisblock enthält nur Anweisungen, die nacheinander ausgeführt werden. Ein Variablenname in einem Basisblock ist an einem bestimmten Punkt „live“ bzw. aktiv, wenn sein Wert nach diesem Punkt im Programm verwendet wird.
  • Die Anwendung dieses Verfahrens auf den TAD-Code von 22 führt zu einem ersten Basisblock B1, der einen ersten Leader („Leader 1“) in Form der ersten Anweisungszeile 1) des TAD umfasst. Der zweite Basisblock B2 entsteht in der zweiten Anweisungszeile 2) des TAD, die einen zweiten Leader („Leader 2“) definiert. Er entsteht, weil diese Anweisungszeile das Target einer „goto“-Anweisung in TAD-Zeile 11) ist. Der dritte Basisblock B3 entsteht in der dritten Anweisungszeile 3) des TAD, die einen dritten Leader („Leader 3“) definiert. Er entsteht, weil diese Anweisungszeile das Target einer „goto“-Anweisung in TAD-Zeile 9) ist. Der vierte Basisblock B4 entsteht in der zehnten Anweisungszeile 10) des TAD, die einen vierten Leader („Leader 4“) definiert. Er entsteht, weil diese Anweisungszeile unmittelbar auf eine bedingte „goto“-Anweisung in TAD-Zeile 9) folgt. Der fünfte Basisblock B5 entsteht in der zwölften Anweisungszeile 12) des TAD, die einen fünften Leader („Leader 5“) definiert. Dieser entsteht, weil diese Anweisungszeile unmittelbar auf eine bedingte „goto“-Anweisung in TAD-Zeile 11) folgt. Der letzte Basisblock B6 des TAD-Codes entsteht in der dreizehnten Anweisungszeile 13) des TAD, die einen sechsten Leader („Leader 6“) definiert. Dieser entsteht, weil diese Anweisungszeile das Target einer „goto“-Anweisung in TAD-Zeile 17) ist. Auf diese Weise kann ein TAD-Code in Basisblöcke unterteilt werden.
  • Die folgende Offenbarung beschreibt ein Beispiel für eine Computervorrichtung, die so konfiguriert ist, dass sie einen TAD-Code in Bezug auf Programmcodes erzeugt, die von dem Computer ausgeführt werden, und die so konfiguriert ist, dass sie die TAD-Codes in Basisblöcke unterteilt. Die Computervorrichtung ist so konfiguriert, dass sie TAD-Befehlssequenzen neu anordnet, um numerische Fehler bei der Propagierung von Unsicherheit über den Berechnungszustand (z.B. Register), auf dem die Befehlssequenzen arbeiten, zu reduzieren. Dies ist besonders nützlich bei der Ausführung von Arithmetik auf Verteilungen, die die Unsicherheit in den vom Computer verarbeiteten Daten repräsentieren, wie an anderer Stelle hierin ausführlicher erörtert. Bei den vom Computer verarbeiteten Daten kann es sich beispielsweise um Messdaten von einem Messgerät (z.B. einem Sensor) handeln, und die Verteilungen, die die Unsicherheit in den Daten darstellen, können die Unsicherheit im Wert der von dem Messgerät durchgeführten Messungen repräsentieren.
  • Unter nochmaliger Bezugnahme auf 1 ist in einem alternativen Aspekt der Erfindung oder zusätzlich zu den hierin offenbarten Aspekten eine Vorrichtung 1 gemäß einer Ausführungsform der Erfindung dargestellt. Die Vorrichtung umfasst eine Rechenvorrichtung 3, die mit einer Messvorrichtung 2 in Form einer Sensoreinheit (z.B. eines Beschleunigungsmessers, eines Magnetometers etc.) in Verbindung steht, die so konfiguriert ist, dass sie Messungen einer vorbestimmten messbaren Größe, nämlich einer Messgröße (z.B. Beschleunigung, magnetische Flussdichte etc.), erzeugt. Die Rechenvorrichtung 3 umfasst eine Prozessoreinheit 4, die mit einer lokalen Pufferspeichereinheit 5 und einer lokalen Hauptspeichereinheit 6 kommuniziert. Die Rechenvorrichtung ist so konfiguriert, dass sie als Eingabe Daten von der Sensoreinheit empfängt, die Messungen der Messgröße (z.B. Beschleunigung, magnetische Flussdichte usw.) darstellen, und dass sie die empfangenen Messungen in der lokalen Hauptspeichereinheit 6 speichert. Die Prozessoreinheit 4 ist in Verbindung mit der Pufferspeichereinheit 5 so konfiguriert, dass sie auf die gespeicherten Messungen einen Datenverarbeitungsalgorithmus anwendet, der so konfiguriert ist, dass er die im Hauptspeicher gespeicherten Sensormessungen abtastet, um einen Samplesatz von Messungen zu erzeugen, der die Unsicherheit in den von der Sensoreinheit 2 durchgeführten Messungen repräsentiert und gleichzeitig die Messgröße so genau darstellt, wie es die Sensoreinheit erlauben kann. Die Prozessoreinheit 4 ist so konfiguriert, dass sie den Samplesatz verwendet, um eine annähernde Wahrscheinlichkeitsverteilung und Verteilungsinformationen zu erzeugen, die die annähernde Wahrscheinlichkeitsverteilung als die Darstellung der Unsicherheit in den Messungen durch die Sensoreinheit gemäß einem der hierin offenbarten Verfahren (z.B. eine SoDD-basierte Darstellung; eine CMR-Darstellung, wie in anderen Aspekten hierin offenbart) kodiert und an anderer Stelle in der vorliegenden Offenbarung im Detail erörtert wird.
  • Die Rechenvorrichtung ist so konfiguriert, dass sie die Verteilungsdaten, die die Unsicherheit der Messungen repräsentieren, sobald sie erzeugt wurden, in seinem Hauptspeicher 6 speichert und/oder den Samplesatz (z.B. über eine serielle E/A-Schnittstelle) an einen externen Speicher 7 überträgt, der mit der Rechenvorrichtung in Verbindung steht, und/oder über eine Sendeeinheit 8 ein oder mehrere Signale 9 überträgt, die den Samplesatz an einen entfernten Empfänger (nicht dargestellt) weiterleiten. Das Signal kann (z.B. über eine serielle E/A-Schnittstelle) drahtlos, faseroptisch oder über andere Übertragungswege übertragen werden, die dem Fachmann ohne weiteres einleuchten.
  • Auf diese Weise ist die Rechenvorrichtung so konfiguriert, dass sie über einen bestimmten Zeitraum eine beliebige Anzahl (Mehrzahl) von Samplesätzen erzeugt und speichert, bei denen die Verteilung der Messwerte innerhalb jedes Samplesatzes die Wahrscheinlichkeitsverteilung der Messungen durch die Sensoreinheit 2 darstellt, und damit assoziierte annähernde Wahrscheinlichkeitsverteilungen und kodierte Verteilungsinformationen. In ähnlicher Weise ist die Rechenvorrichtung so konfiguriert, dass sie eine beliebige Anzahl (Mehrzahl) von Samplesätzen, annähernde Wahrscheinlichkeitsverteilungen und kodierten Verteilungsinformationen erzeugt und speichert, wie sie von/in verschiedenen Betriebsarten der Sensoreinheit 2 oder von einer anderen Sensoreinheit 2 bereitgestellt werden. Mit anderen Worten, ein erster von der Rechenvorrichtung gespeicherter Samplesatz kann einer ersten Sensoreinheit zugeordnet sein und ein zweiter von der Rechenvorrichtung gespeicherter Samplesatz kann einer zweiten Sensoreinheit zugeordnet sein, die nicht mit der ersten Sensoreinheit identisch ist. Bei der ersten Sensoreinheit kann es sich beispielsweise um einen Spannungssensor (elektrische Spannung) und bei der zweiten Sensoreinheit um einen Stromsensor (elektrischer Strom) handeln. In beiden Fällen kann die Rechenvorrichtung Verteilungen von Messwerten speichern, die von jedem Sensor gemacht wurden und die jeweils die Wahrscheinlichkeitsverteilung von Messungen durch diese Sensoreinheit 2 darstellen.
  • Die Rechenvorrichtung 3 ist so konfiguriert, dass sie ein Verfahren zur Verarbeitung der in der Hauptspeichereinheit gespeicherten Datenverteilungen, wie z.B. Samplesätze, approximative Wahrscheinlichkeitsverteilungen und kodierte Verteilungsinformationen, wie folgt implementiert.
  • In 17 ist ein Flussdiagramm dargestellt, das die Prozessschritte in dem von der Computervorrichtung 3 implementierten Verfahren illustriert. Die Prozessschritte sind so konfiguriert, dass sie einen numerischen Wert für die Unsicherheit des Ergebnisses einer mehrstufigen numerischen Berechnung berechnen, die eine Folge von separaten Berechnungsanweisungen umfasst, die in einem gemeinsamen „Basisblock“ definiert sind.
  • Das Verfahren wird auf die Verteilung von Daten angewandt, die in der Pufferspeichereinheit 5 der Computervorrichtung 3 enthalten sind und zu diesem Zweck von der Prozessoreinheit 4 aus der Hauptspeichereinheit 6 in den Pufferspeicher überführt wurden.
  • Initialisierung: Der Anfangszustand des Systems besteht aus Unsicherheitsdarstellungen für alle aktiven Register (Register, deren Werte wieder gelesen werden, bevor sie überschrieben werden).
  • Schritt 1: Empfang der Befehlssequenz seq und Ablage in der Pufferspeichereinheit 5.
  • Schritt 2: Aufteilung von seq in Basisblöcke, d.h. in Sequenzen von Anweisungen ohne dazwischen liegende Kontrollflussanweisungen.
    • Schritt 2B: Bilden, für jeden Basisblock, eines Ausdrucks für die Unsicherheit jeder Variablen, die vor dem Verlassen des Basisblocks beschrieben, aber nicht überschrieben wird.
    • Schritt 2C: Vereinfachen jedes im vorherigen Schritt erhaltenen Ausdrucks auf die kleinstmögliche Anzahl von Termen und Übertragen der Unsicherheit durch diesen vereinfachten Ausdruck.
  • Schritt 3: Neuordnen der Befehle in jedem Basisblock auf der Grundlage ihrer Abhängigkeiten, falls erforderlich, und am Ende jedes Basisblocks der Aktualisieren der Unsicherheit jedes Registers, das vor dem Verlassen des Basisblocks beschrieben, aber nicht überschrieben wurde.
  • Schritt 4: Ausgabe der neu geordneten Sequenz seqreordered und der aktualisierten Unsicherheiten (Datenverteilungen) für die Sequenz.
  • Bei dieser Methode (d.h. Schritt 1 bis Schritt 4) identifiziert die Computervorrichtung 3 die „live-out“-Variable(n) des „Basisblocks“ (Schritt 1). Dann identifiziert sie die Berechnungsanweisungen, von deren Ausgabe der Wert der „live-out“-Variablen abhängt (Schritt 2). In den Schritten 2A und 2B wird dann ein mathematischer Ausdruck erstellt, der die in Schritt 2 identifizierten Berechnungsanweisungen kombiniert. Unter Verwendung des in Schritt 2C bereitgestellten mathematischen Ausdrucks berechnet die Computervorrichtung in Schritt 3 einen numerischen Wert für die Unsicherheit der „live-out“-Variablen. Insbesondere ist der in Schritt 3 berechnete Unsicherheitswert die Unsicherheit des Ergebnisses der mehrstufigen numerischen Berechnung. Dieses Verfahren macht nicht nur das Endergebnis der Berechnung genauer, sondern auch den Berechnungsprozess effizienter.
  • Auf diese Weise kann für die „live-out“-Variablen des Basisblocks statt der Berechnung der aktualisierten Unsicherheit für jede TAD-Anweisung die Folge von Anweisungen, deren Ergebnis den Wert der „live-out“-Variablen bestimmt, in Schritt 2C zu einem einzigen Ausdruck kombiniert werden, um die aktualisierte Unsicherheit der „live-out“-Variablen zu berechnen.
  • Das Verfahren kann in einem programmierbaren Prozessor implementiert werden. Es bietet ein Mittel zum Umordnen von Befehlen, die Operationen auf Unsicherheitsdarstellungen durchführen, so dass die umgeordneten Befehle immer noch echten Datenabhängigkeiten gehorchen. Die neu angeordneten Befehlssequenzen weisen eine bessere numerische Stabilität auf, wenn der Prozessor, der die Befehle verarbeitet, Unsicherheitsdarstellungen mit den Werten verknüpft, auf denen die Befehle operieren.
  • Wenn die Unsicherheitsdarstellung auf den Momenten einer Wahrscheinlichkeitsverteilung basiert (z.B. die hier offengelegte CMR-Unsicherheitsdarstellung) und das Verfahren zur Berechnung der Unsicherheit auf der Taylorreihenentwicklung der Befehlsoperation um den Mittelwert des bearbeiteten Wertes herum basiert, dann verbessert die Neuanordnung der Befehle die numerische Stabilität der Auswertung der Taylorreihenentwicklung der Funktion entsprechend der Gesamtmenge der Befehle.
  • Die Umordnung kann auf jede Methode zur Propagierung von Unsicherheit durch eine Folge von arithmetischen Operationen angewandt werden und ist nicht auf diesen speziellen Beispielfall der Verwendung von Taylorreihenerweiterungen der Funktionen, durch die Unsicherheit propagiert wird, beschränkt. Die Methode der Befehlsumordnung ist für jede programmierbare Prozessorarchitektur wertvoll, die Arithmetik auf Wahrscheinlichkeitsverteilungen implementiert und wo diese Arithmetik unterschiedliche numerische Stabilitätseigenschaften haben könnte, wenn die Befehle in abhängigkeitshonorierenden, funktional äquivalenten Reihenfolgen umgeordnet werden.
  • Kombinierte Varianzschätzungen für Live-Out- Variablen
  • 18(a) zeigt ein einfaches Programm, das eine Folge von arithmetischen Operationen ausführt, und 18(b) zeigt die Assembler-Befehlsfolge, die von einem Compiler aus diesem Programm erzeugt wird. Während verschiedene Compiler und verschiedene Kompilierungsoptionen zu leicht unterschiedlichen Befehlssequenzen führen, wird die Folge von Programmanweisungen in 18(a) immer in eine Sequenz von Assemblerbefehlen übersetzt, die bei ihrer Ausführung zu den vom Programm geforderten arithmetischen Operationen führen. 18(a) zeigt insbesondere ein Programm, das mit drei Floating Point-Variablen rechnet. Bei der Ausführung auf einer Prozessorarchitektur, die jeder Variablen eine bestimmte Unsicherheitsdarstellung zuordnet, erfordert die Arithmetik in jeder Programmanweisung, dass die im Prozessor implementierte Hardware neue Verteilungen für die Unsicherheiten der Zwischen- und Endergebnisse berechnet. 18(b) zeigt, wie das Programm in 18(a) zu einer Folge von Assembleranweisungen für einen Prozessor kompiliert wird. Anstatt die Unsicherheit für das Zielregister jedes Befehls in 18(b) separat zu aktualisieren ist es möglich, eine Instanz einer Gleichung zu erzeugen, die die Unsicherheit ( σ y 2 )
    Figure DE112022002790T5_0156
    in einer berechnete Größe, y = f(x1, ..., xn), definiert, die den kombinierten Ausdruck implementiert: f = ( x1 + x2 ) / ( x3 x3 ( x1 x2 ) ) .
    Figure DE112022002790T5_0157
  • Insbesondere sei zum Beispiel f eine Funktion, die durch eine Folge von Anweisungen in einer high-level Sprache wie C oder durch eine beliebige Folge von Anweisungen, die in einem programmierbaren Prozessor ausgeführt werden, implementiert wird. Die Funktion f kann auch eine Sammlung von Logikgattern in einer integrierten digitalen Schaltung mit fester Funktion wie einem ASIC oder in einer feldprogrammierbaren digitalen Schaltung wie einem FPGA sein. Seien x1, x2, ..., xn die Parameter der Funktion f.
  • Die Methode zur Bestimmung der Unsicherheit der Funktion f auf der Grundlage der Taylorreihenentwicklung von f legt fest, dass die Unsicherheit in f durch ihre Standardabweichung wie folgt dargestellt wird. Dieses Beispiel ist besonders relevant für die Propagierung der Unsicherheit ist die CMR-Methode. Die vorliegende Erfindung kann in dem hier beschriebenen Aspekt auch auf andere Verteilungsdarstellungen und Propagationsmethoden als die CMR/Taylorreihenentwicklung angewendet werden. Zur Veranschaulichung und zum besseren Verständnis der Erfindung bezieht sich das folgende Beispiel jedoch auf die CMR/ Taylorreihenentwicklung.
  • Sei y = f(x1, ..., xn), dann: σ y 2 ( ƒ ( x 1 ¯ , , x n ¯ ) x 1 ) 2 σ x 1 2 + ( ƒ ( x 1 ¯ , , x n ¯ ) x 2 ) 2 σ x 2 2 + + 2 σ x 1 x 2 2 ( ƒ ( x 1 ¯ , , x n ¯ ) x 1 ) ( ƒ ( x 1 ¯ , , x n ¯ ) x 2 ) +
    Figure DE112022002790T5_0158
  • Die Varianzen auf der rechten Seite des obigen Ausdrucks sind in der Regel klein, und die Berechnung der Quadrate und höheren Potenzen dieser Varianzen führt in der Praxis zu numerischen Fehlern. Die Erkenntnisse der Methode in dieser Offenbarung sind:
    • (1) die Standardabweichungen innerhalb der internen Darstellung der Berechnungshardware für die digitale Logikschaltung, die die obige Gleichung ( σ y 2 )
      Figure DE112022002790T5_0159
      implementiert, mit einer (unsigned) Fixed Point-Darstellung darzustellen, anstatt sie mit einer Floating Point-Darstellung zu repräsentieren, da die Varianzen immer positiv sein werden; und,
    • (2) Sequenzen von arithmetischen Operationen zu kombinieren, die keine Kontrollflussanweisung (d.h. einen Basisblock) enthalten, wenn die zu kombinierenden Operationen andernfalls getrennt behandelt würden, um die Varianz der Variablen zu berechnen, die wieder verwendet werden, bevor sie überschrieben werden (d.h. die aktiven Variablen).
  • Die zweite der oben genannten Erkenntnisse reduziert die Anzahl der Näherungen der obigen Gleichung ( σ y 2 ) ,
    Figure DE112022002790T5_0160
    die angewendet werden müssen, um den Fehler in der berechneten Unsicherheit zu verringern. Beide Erkenntnisse können in Hardware implementiert werden oder auch als Kompilierzeittransformation eines Quellprogramms oder als Kombination von Kompilierzeittransformationen (z.B. zur Bestimmung der kombinierten Funktion für jeden Basisblock und ihrer partiellen Ableitungen, z.B. unter Verwendung automatischer Differenzierung) in Verbindung mit der Auswertung der Instanz der obigen Gleichung ( σ y 2 ) ,
    Figure DE112022002790T5_0161
    die in diesem Prozess erzeugt wird, in Hardware, wenn die Werte der Varianzen verfügbar sind. Andere Methoden zur Darstellung und Propagierung von Unsicherheit in einer digitalen Berechnungshardwarestruktur könnten andere Methoden als die obige Gleichung ( σ y 2 )
    Figure DE112022002790T5_0162
    verwenden, aber die hier vorgestellten Methoden machen die Unsicherheitsverfolgung numerisch stabiler und sind weiterhin anwendbar.
  • 19 zeigt schematisch die Auswirkungen der Erfindung auf die Implementierung des Programmcodes von 18(a) zur Berechnung der Größe: f = ( x1 + x2 ) / ( x3 x3 ( x1 x2 ) )
    Figure DE112022002790T5_0163
    über einen TAD-Code in einem Basisblock B7 sowohl vor („VORHER“ in 19) als auch nach („NACHHER“ in 19) der Anwendung der Erfindung. Im Falle der Anwendung vor der Erfindung ist zu erkennen, dass die Menge σ y 2
    Figure DE112022002790T5_0164
    achtmal berechnet werden muss, und zwar einmal für jede der acht Codezeilen des TAD-Codes im Basisblock B7. Die letzte Ausgabezeile des TAD-Codes erzeugt die Variable „t8“, die den Wert von f aufweist. Die letzte Ausgabezeile des TAD-Codes liefert den letzten Wert der Größe σ y 2
    Figure DE112022002790T5_0165
    zur Quantifizierung der Unsicherheit in f. Alle vorhergehenden Werte von σ y 2
    Figure DE112022002790T5_0166
    quantifizieren die Unsicherheit in den sieben vorangehenden TAD-Variablen (t1 bis t7) innerhalb des Basisblocks B7. 20 zeigt dies explizit, wobei jeder Ausdruck σ y 2
    Figure DE112022002790T5_0167
    für jede der TAD-Codezeilen t1 bis t8 (siehe „VORHER“ in 19) explizit definiert und berechnet wird. Im Gegensatz dazu wurde in 21 die Erfindung angewandt und nur der Ausdruck σ y 2
    Figure DE112022002790T5_0168
    für die letzte TAD-Codezeile t8 (siehe „NACH“ in 19) ist explizit definiert und dieser Ausdruck wird vom Prozessor 4 verwendet/berechnet, um die Unsicherheit der Funktion f zu quantifizieren. Diese Befehlsfolge hat eine bessere numerische Stabilität für die Berechnung der Unsicherheitsdarstellung σ y 2 .
    Figure DE112022002790T5_0169
  • Mit anderen Worten: 21 implementiert den obigen Schritt 2B, wobei für den Basisblock B7 ein Ausdruck für die Unsicherheit σ y 2
    Figure DE112022002790T5_0170
    der Variablen „t8“ gebildet wird, die vor dem Verlassen dieses Basissatzes beschrieben, aber nicht überschrieben wird. Schritt 2C wird dadurch realisiert, dass der Ausdruck σ y 2
    Figure DE112022002790T5_0171
    ein vereinfachter Ausdruck ist, der in Schritt 2B erhalten wurde und die kleinstmögliche Anzahl von Termen aufweist. Dieser wird dann verwendet, um die Unsicherheit zu propagieren.
  • Verweise hier auf ein „Tupel“ können als Verweis auf eine endliche geordnete Liste von Elementen betrachtet werden. Verweise auf ein „n-Tupel“ können als Verweis auf eine Folge von n Elementen betrachtet werden, wobei n eine nichtnegative ganze Zahl ist.
  • Verweise hier auf einen „Parameter“ können als Verweise auf einen numerischen oder sonstigen messbarer Faktor betrachtet werden, der zu einer Menge (von einem oder mehreren) gehört, die ein System definiert oder seine Eigenschaften festlegt, oder eine Größe (wie Mittelwert oder Varianz), die eine statistische Grundgesamtheit beschreibt, oder ein Merkmal, das bei der Definition oder Klassifizierung eines bestimmten Systems helfen kann, oder ein Element eines Systems, das das System identifiziert.
  • Verweise hier auf einen „Schwellenwert“ können als Verweise auf einen Wert, eine Größe oder Menge betrachtet werden, die erreicht oder überschritten werden muss, damit eine bestimmte Reaktion, ein bestimmtes Phänomen, ein bestimmtes Ergebnis oder ein bestimmter Zustand eintritt oder sich manifestiert.
  • Verweise hier auf eine „Verteilung“ im Zusammenhang mit einem statistischen Datensatz (oder einer Grundgesamtheit) können als Verweise auf eine Auflistung oder Funktion verstanden werden, die alle möglichen Werte (oder Intervalle) der Daten und deren Häufigkeit aufzeigt. Eine Verteilung in der Statistik kann als eine (empirische oder analytische) Funktion betrachtet werden, die die möglichen Werte für eine Variable und deren Häufigkeit aufzeigt. In der Wahrscheinlichkeitstheorie und in der Statistik kann man sich eine Wahrscheinlichkeitsverteilung als eine (empirische oder analytische) Funktion vorstellen, die die Eintrittswahrscheinlichkeiten verschiedener möglicher Ergebnisse für die Messung einer Variablen angibt.
  • Die in der vorstehenden Beschreibung oder in den folgenden Ansprüchen oder in den beigefügten Zeichnungen offenbarten Merkmale, die in ihren spezifischen Formen oder als Mittel zur Ausführung der offenbarten Funktion oder als Verfahren oder Prozess zur Erzielung der offenbarten Ergebnisse ausgedrückt sind, können einzeln oder in beliebiger Kombination solcher Merkmale zur Verwirklichung der Erfindung in verschiedenen Ausführungsformen verwendet werden.
  • Während die Erfindung in Verbindung mit den oben beschriebenen beispielhaften Ausführungsformen beschrieben wurde, werden viele gleichwertige Modifikationen und Variationen für den Fachmann offensichtlich sein, wenn er diese Offenbarung betrachtet. Dementsprechend sind die oben dargestellten beispielhaften Ausführungsformen der Erfindung als illustrativ und nicht einschränkend zu betrachten. Verschiedene Änderungen an den beschriebenen Ausführungsformen können vorgenommen werden, ohne von Geist und Umfang der Erfindung abzuweichen.
  • Um jeden Zweifel auszuschließen, werden alle theoretischen Erklärungen, die hier gegeben werden, zum besseren Verständnis des Lesers bereitgestellt. Die Erfinder möchten durch keine dieser theoretischen Erklärungen gebunden sein.
  • Die hier verwendeten Abschnittsüberschriften dienen lediglich der Gliederung und sind nicht als Einschränkung des beschriebenen Gegenstands zu verstehen.
  • In der gesamten Beschreibung, einschließlich der folgenden Ansprüche, sind, sofern der Kontext nichts anderes erfordert, die Worte „umfassen“ und „enthalten“ sowie Variationen wie „einschließen“ so zu verstehen, dass sie die Einbeziehung einer angegebenen ganzen Zahl oder eines Schritts oder einer Gruppe von ganzen Zahlen oder Schritten bedeuten, nicht aber den Ausschluss einer anderen ganzen Zahl oder eines Schritts oder einer Gruppe von ganzen Zahlen oder Schritten.
  • Es ist zu beachten, dass die in der Beschreibung und den beigefügten Ansprüchen verwendeten Singularformen „ein“, „eine“ Pluralreferenzen einschließen, sofern der Kontext nicht eindeutig etwas anderes vorschreibt. Bereiche können hier als von „etwa“ einem bestimmten Wert und/oder bis „etwa“ einem anderen bestimmten Wert ausgedrückt werden. Wenn ein solcher Bereich ausgedrückt wird, schließt eine andere Ausführungsform von dem einen bestimmten Wert und/oder bis zu dem anderen bestimmten Wert ein. Wenn Werte als Näherungswerte ausgedrückt werden, wird durch die Verwendung der Vorsilbe „etwas“ deutlich, dass der bestimmte Wert eine andere Ausführungsform darstellt. Der Begriff „etwa“ in Bezug auf einen numerischen Wert ist fakultativ und bedeutet beispielsweise +/- 10%.
  • REFERENZEN
    • [1] Anders Hald, The early history of the cumulants and the Gram-Charlier series, International Statistical Review 68 (2000), Nr. 2, 137-153.
    • [2] Peter Hall, The bootstrap and Edgeworth expansion, Springer Science & Business Media, 2013.
    • [3] Rabi N. Bhattacharya, Jayanta K. Ghosh, et al., On the validity of the formal Edgeworth expansion, Ann. Statist. 6 (1978), Nr. 2, 434-451.
    • [4] T. Lafarge und A. Possolo, NIST uncertainty machine-user's manual, National Institute of Standards and Technology, Gaithersburg, 2015. (https://uncertainty.nist.gov/ und https://www.nist.gov/publications/uncertainty-machine-users-manual)
    • [5] MiBench: „A free, commercially representative embedded benchmark suite" von Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, Richard B. Brown, IEEE 4th Annual Workshop on Workload Characterization, Austin, TX, Dezember 2001. (http://vhosts.eecs.umich.edu/mibench//)
    • [6] Die am weitesten verbreiteten Benchmarks sind die CPU-Benchmarks der Standard Performance Evaluation Corporation (SPEC): „SPEC2000 Retires SPEC92“, von B. Case, The Microprocessor Report, Vol. 9, 1995
    • [7] James Bornholt, Todd Mytkowicz und Kathryn S. McKinley. 2015. Uncertain<t>: Abstractions for uncertain hardware and software. IEEE Micro 35, 3 (2015), 132-143.
    • [8] Bosch Sensortec. [n. d.]. BME680 Sensor API. [Online]. Verfügbar: https: //github.com/BoschSensortec/BME680_driver, Accessed: 07/09/2021.
    • [9] M.J. Anderson, F. Schulz, Y. Lu, H.S. Kitaguchi, P. Bowen, C. Argyrakis, und H.C. Basoalto. 2020. On the modelling of precipitation kinetics in a turbine disc nickel-based superalloy. Acta Materialia 191 (2020), 81-100. https://doi.org/10.1016/j.actamat.2020.03.058.
    • [10] LM Brown und RK Ham. 1971. Dislocation-particle interactions. Strengthening methods in crystals (1971), 9-135.
    • [11] James R. Cruise, Neil I. Gillespie und Brendan Reid. 2020. Practical Quantum Computing: The value of local computation. arXiv preprint arXiv:2009.08513 (2020).
    • [12] Daochen Wang, Oscar Higgott, und Stephen Brierley. 2019. Accelerated Variational Quantum Eigensolver. Phys. Rev. Lett. 122 (Apr 2019), 140504. Issue 14. https://doi.org/10.1103/PhysRevLett. 122.140504.
    • [13] Nathan Wiebe und Chris Granade. 2016. Efficient Bayesian Phase Estimation. Phys. Rev. Lett. 117 (Jun 2016), 010503. Issue 1. https://doi.org/10.1103/PhysRevLett.117.010503.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • GB 2107604 [0001]
    • GB 2107606 [0001]
  • Zitierte Nicht-Patentliteratur
    • Anders Hald, The early history of the cumulants and the Gram-Charlier series, International Statistical Review 68 (2000), Nr. 2, 137-153 [0378]
    • Peter Hall, The bootstrap and Edgeworth expansion, Springer Science & Business Media, 2013 [0378]
    • Rabi N. Bhattacharya, Jayanta K. Ghosh, et al., On the validity of the formal Edgeworth expansion, Ann. Statist. 6 (1978), Nr. 2, 434-451 [0378]
    • T. Lafarge und A. Possolo, NIST uncertainty machine-user's manual, National Institute of Standards and Technology, Gaithersburg, 2015. (https://uncertainty.nist.gov/ und https://www.nist.gov/publications/uncertainty-machine-users-manual) [0378]
    • MiBench: „A free, commercially representative embedded benchmark suite“ von Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, Richard B. Brown, IEEE 4th Annual Workshop on Workload Characterization, Austin, TX, Dezember 2001. (http://vhosts.eecs.umich.edu/mibench//) [0378]
    • James Bornholt, Todd Mytkowicz und Kathryn S. McKinley. 2015. Uncertain<t>: Abstractions for uncertain hardware and software. IEEE Micro 35, 3 (2015), 132-143 [0378]
    • Bosch Sensortec. [n. d.]. BME680 Sensor API. [Online]. Verfügbar: https: //github.com/BoschSensortec/BME680_driver, Accessed: 07/09/2021 [0378]
    • M.J. Anderson, F. Schulz, Y. Lu, H.S. Kitaguchi, P. Bowen, C. Argyrakis, und H.C. Basoalto. 2020. On the modelling of precipitation kinetics in a turbine disc nickel-based superalloy. Acta Materialia 191 (2020), 81-100. https://doi.org/10.1016/j.actamat.2020.03.058 [0378]
    • LM Brown und RK Ham. 1971. Dislocation-particle interactions. Strengthening methods in crystals (1971), 9-135 [0378]
    • James R. Cruise, Neil I. Gillespie und Brendan Reid. 2020. Practical Quantum Computing: The value of local computation. arXiv preprint arXiv:2009.08513 (2020) [0378]
    • Daochen Wang, Oscar Higgott, und Stephen Brierley. 2019. Accelerated Variational Quantum Eigensolver. Phys. Rev. Lett. 122 (Apr 2019), 140504. Issue 14. https://doi.org/10.1103/PhysRevLett. 122.140504 [0378]
    • Nathan Wiebe und Chris Granade. 2016. Efficient Bayesian Phase Estimation. Phys. Rev. Lett. 117 (Jun 2016), 010503. Issue 1. https://doi.org/10.1103/PhysRevLett.117.010503 [0378]

Claims (32)

  1. Verfahren zur Verarbeitung von Datenverteilungen, das Verfahren umfassend die Bereitstellung einer Mikroarchitektur mit: einem ersten Register, das Datenelemente enthält; einem zweiten Register, das Verteilungsdaten enthält, wobei die Verteilungsdaten Verteilungen repräsentieren, die Unsicherheitsdarstellungen sind, die mit jeweiligen der Datenelemente assoziiert sind; einer ersten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem ersten Register ausgewählten Datenelementen; einer zweiten arithmetischen Logikeinheit zum Ausführen von Arithmetik an aus dem zweiten Register ausgewählten Verteilungsdaten; das Verfahren umfasst die folgenden Schritte, die von der Mikroarchitektur ausgeführt werden: Ausführen, durch die erste arithmetische Logikeinheit, einer arithmetischen Operation an aus dem ersten Register ausgewählten Datenelementen, und Ausgeben des Ergebnisses; Ausführen, durch die zweite arithmetische Logikeinheit, einer arithmetischen Operation an aus dem zweiten Register ausgewählten Verteilungsdaten, die Verteilungen repräsentieren und mit den aus dem ersten Register ausgewählten Datenelementen assoziiert sind, und Ausgeben des Ergebnisses; wobei die arithmetische Operation, die an den aus dem zweiten Register ausgewählten Verteilungsdaten ausgeführt wird, die gleiche ist wie die arithmetische Operation, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird, um dadurch weitere Verteilungsdaten zu erzeugen, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation assoziiert ist, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird.
  2. Verfahren nach einem der vorhergehenden Ansprüche, wobei das erste Register einen ersten Satz von Registern und/oder eine Registerdatei umfasst, und/oder das zweite Register einen ersten Satz von Registern und/oder eine Registerdatei umfasst.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Ausführen der arithmetischen Operation durch die zweite arithmetische Logikeinheit durch einen Befehl getriggert wird, der das Ausführen der arithmetischen Operation durch die erste arithmetische Logikeinheit triggert.
  4. Verfahren nach einem der vorhergehenden Ansprüche, umfassend die Bereitstellung der Mikroarchitektur mit einer Speichereinheit umfasst, die so konfiguriert ist, dass sie die Datenelemente an adressierten Speicherplätzen speichert, wobei das Verfahren die folgenden Schritte umfasst, die von der Mikroarchitektur ausgeführt werden: Erhalten der ursprünglichen Speicherplatzadressen von Datenelementen, die zur arithmetischen Operation, die von der ersten arithmetischen Logikeinheit ausgeführt wird, beitragen, während die erste arithmetische Logikeinheit die arithmetische Operation ausführt; Speichern der erhaltenen ursprünglichen Speicherplatzadressen an einem Speicherplatz innerhalb der Speichereinheit und Verknüpfen des Speicherplatzes mit den weiteren Verteilungsdaten.
  5. Verfahren nach einem der vorangehenden Ansprüche, wobei: das erste Register ein erstes Datenelement und ein zweites Datenelement enthält; das zweite Register erste Verteilungsdaten enthält, die ein erstes Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; das zweite Register zweite Verteilungsdaten enthält, die ein zweites Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert, wobei die zur Kodierung der zweiten Verteilungsdaten verwendeten Parameter die gleichen sind wie die zur Kodierung der ersten Verteilungsdaten verwendeten Parameter; und, das Ausführen der arithmetischen Operation an den Verteilungsdaten durch die zweite arithmetische Logikeinheit umfasst: Auswählen des ersten Tupels und des zweiten Tupels und Erzeugen eines dritten Tupels unter Verwendung von im ersten Tupel enthaltenen Parametern und unter Verwendung von im zweiten Tupel enthaltenen Parametern, wobei das dritte Tupel Parameter umfasst, die die weiteren Verteilungsdaten kodieren; und Ausgeben des dritten Tupels.
  6. Verfahren nach Anspruch 5, wobei das dritte Tupel Parameter umfasst, die die weiteren Verteilungsdaten kodieren, und die die gleichen sind wie die Parameter, die zur Kodierung der Wahrscheinlichkeitsverteilung verwendet werden, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert.
  7. Verfahren nach einem der Ansprüche 5 bis 6, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Position von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  9. Verfahren nach einem der Ansprüche 5 bis 8, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  10. Verfahren nach einem der Ansprüche 5 bis 9, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisieren; und, das zweite Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisieren; und, das dritte Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  11. Verfahren nach einem der Ansprüche 5 bis 10, wobei: die Wahrscheinlichkeitsverteilung, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst; und, die Wahrscheinlichkeitsverteilung, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst; und, die Wahrscheinlichkeitsverteilung, die die weiteren Verteilungsdaten charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst.
  12. Verfahren nach einem der Ansprüche 5 bis 11, wobei das erste Tupel ein N-Tupel und das zweite Tupel ein N-Tupel ist, wobei das dritte Tupel ein M-Tupel ist, für das N2/2 < M < 2N2 gilt, wobei N > 1 eine ganze Zahl ist.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei der erste Datenwert einen Wert einer ersten Zufallsvariablen umfasst und der zweite Datenwert einen Wert einer zweiten Zufallsvariablen umfasst.
  14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Ausgeben einen oder mehrere der folgenden Schritte umfasst: Speichern der Ausgabe in einem Speicher; Übertragen eines Signals, das die Ausgabe übermittelt.
  15. Verfahren nach einem der vorhergehenden Ansprüche, wobei die arithmetische Operation eine oder mehrere der folgenden Operationen umfasst: Addition, Subtraktion, Multiplikation, Division.
  16. Computerprogrammprodukt mit einem Computerprogramm, das, wenn es auf einem Computer ausgeführt wird, das Verfahren nach einem der vorhergehenden Ansprüche implementiert.
  17. Computer, der mit einem Computerprogramm programmiert ist, das, wenn es auf dem Computer ausgeführt wird, das Verfahren nach einem der Ansprüche 1 bis 15 implementiert.
  18. Mikroarchitektur zur Verarbeitung von Datenverteilungen, umfassend: ein erstes Register, das konfiguriert ist, um Datenelemente zu enthalten; ein zweites Register, das konfiguriert ist, um Verteilungsdaten zu enthalten, wobei die Verteilungsdaten Verteilungen repräsentieren, die Unsicherheitsdarstellungen sind, die mit jeweiligen der Datenelemente assoziiert sind; eine erste arithmetische Logikeinheit zum Ausführen von Arithmetik an aus dem ersten Register ausgewählten Datenelementen; eine zweite arithmetische Logikeinheit zum Ausführen von Arithmetik an aus dem zweiten Register ausgewählten Verteilungsdaten; wobei die Mikroarchitektur so konfiguriert ist, dass sie die folgenden Schritte ausführt: Ausführen, durch die erste arithmetische Logikeinheit, einer arithmetischen Operation an aus dem ersten Register ausgewählten Datenelementen, und Ausgeben des Ergebnisses; Ausführen, durch die zweite arithmetische Logikeinheit, einer arithmetischen Operation an aus dem zweiten Register ausgewählten Verteilungsdaten, die Verteilungen repräsentieren und mit den aus dem ersten Register ausgewählten Datenelementen assoziiert sind, und Ausgeben des Ergebnisses; wobei die arithmetische Operation, die an den aus dem zweiten Register ausgewählten Verteilungsdaten ausgeführt wird, die gleiche ist wie die arithmetische Operation, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird, um dadurch weitere Verteilungsdaten zu erzeugen, die eine Unsicherheit darstellen, die mit dem Ergebnis der arithmetischen Operation assoziiert ist, die an den aus dem ersten Register ausgewählten Datenelementen ausgeführt wird.
  19. Mikroarchitektur nach Anspruch 18, wobei das erste Register einen ersten Satz von Registern und/oder eine Registerdatei umfasst, und/oder das zweite Register einen ersten Satz von Registern und/oder eine Registerdatei umfasst.
  20. Mikroarchitektur nach Anspruch 18 oder 19, die so konfiguriert ist, dass sie die arithmetische Operation durch die zweite arithmetische Logikeinheit ausführt, wenn sie durch einen Befehl getriggert wird, der die Ausführung der arithmetischen Operation durch die erste arithmetische Logikeinheit triggert.
  21. Mikroarchitektur nach einem der Ansprüche 18 bis 20, umfassend eine Speichereinheit, die so konfiguriert ist, dass sie die Datenelemente an adressierten Speicherplätzen speichert, wobei die Mikroarchitektur so konfiguriert ist, dass sie die folgenden Schritte ausführt: Erhalten der ursprünglichen Speicherplatzadressen von Datenelementen, die zur arithmetischen Operation, die von der ersten arithmetischen Logikeinheit ausgeführt wird, beitragen, während die erste arithmetische Logikeinheit die arithmetische Operation ausführt; Speichern der erhaltenen ursprünglichen Speicherplatzadressen an einem Speicherplatz innerhalb der Speichereinheit und Verknüpfen des Speicherplatzes mit den weiteren Verteilungsdaten.
  22. Mikroarchitektur nach einem der Ansprüche 18 bis 21, wobei: das erste Register konfiguriert ist, um ein erstes Datenelement und ein zweites Datenelement zu enthalten; das zweite Register konfiguriert ist, um erste Verteilungsdaten zu enthalten, die ein erstes Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; das zweite Register konfiguriert ist, um zweite Verteilungsdaten zu enthalten, die ein zweites Tupel mit Parametern umfassen, die eine Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert, wobei die zur Kodierung der zweiten Verteilungsdaten verwendeten Parameter die gleichen sind wie die zur Kodierung der ersten Verteilungsdaten verwendeten Parameter; und, die Mikroarchitektur konfiguriert ist, um die arithmetische Operation an den Verteilungsdaten durch die zweite arithmetische Logikeinheit auszuführen, umfassend ein Auswählen des ersten Tupels und des zweiten Tupels und ein Erzeugen eines dritten Tupels unter Verwendung von im ersten Tupel enthaltenen Parametern und unter Verwendung von im zweiten Tupel enthaltenen Parametern, wobei das dritte Tupel Parameter umfasst, die die weiteren Verteilungsdaten kodieren; und ein Ausgeben des dritten Tupels.
  23. Mikroarchitektur nach Anspruch 22, wobei das dritte Tupel Parameter umfasst, die die weiteren Verteilungsdaten kodieren, und die die gleichen sind wie die Parameter, die zur Kodierung der Wahrscheinlichkeitsverteilung verwendet werden, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert.
  24. Mikroarchitektur nach einem der Ansprüche 22 bis 23, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen der jeweiligen Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Position von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Position der Datenelemente innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  25. Mikroarchitektur nach einem der Ansprüche 22 bis 24, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Position und/oder die Breite von Datenintervallen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement assoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Position und/oder Breite von Datenintervallen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  26. Mikroarchitektur nach einem der Ansprüche 22 bis 25, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert; und, das zweite Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert; und, das dritte Tupel Parameter umfasst, die die Wahrscheinlichkeit von Datenelementen innerhalb einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  27. Mikroarchitektur nach einem der Ansprüche 22 bis 26, wobei: die Verteilungsdaten Wahrscheinlichkeitsverteilungen jeweiliger Datenelemente umfassen; das erste Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisieren; und, das zweite Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente der Wahrscheinlichkeitsverteilung kodieren, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisieren; und, das dritte Tupel Parameter umfasst, die den Wert eines oder mehrerer statistischer Momente einer Wahrscheinlichkeitsverteilung kodieren, die die weiteren Verteilungsdaten charakterisiert.
  28. Mikroarchitektur nach einem der Ansprüche 22 bis 27, wobei: die Wahrscheinlichkeitsverteilung, die die mit dem ersten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst; und, die Wahrscheinlichkeitsverteilung, die die mit dem zweiten Datenelement aassoziierte Unsicherheitsdarstellung charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst; und, die Wahrscheinlichkeitsverteilung, die die weiteren Verteilungsdaten charakterisiert, eine Verteilung von Dirac-Delta-Funktionen umfasst.
  29. Mikroarchitektur nach einem der Ansprüche 22 bis 28, wobei das erste Tupel ein N-Tupel und das zweite Tupel ein N-Tupel ist, wobei das dritte Tupel ein M-Tupel ist, für das N2/2 < M < 2N2 gilt, wobei N > 1 eine ganze Zahl ist.
  30. Mikroarchitektur nach einem der Ansprüche 18 bis 29, wobei der erste Datenwert einen Wert einer ersten Zufallsvariablen umfasst und der zweite Datenwert einen Wert einer zweiten Zufallsvariablen umfasst.
  31. Mikroarchitektur nach einem der Ansprüche 18 bis 30, wobei das Ausgeben einen oder mehrere der folgenden Schritte umfasst: Speichern der Ausgabe in einem Speicher; Übertragen eines Signals, das die Ausgabe übermittelt.
  32. Mikroarchitektur nach einem der Ansprüche 18 bis 31, wobei die arithmetische Operation eine oder mehrere der folgenden Operationen umfasst: Addition, Subtraktion, Multiplikation, Division.
DE112022002790.8T 2021-05-27 2022-05-27 Verbesserungen in Bezug auf die Kodierung und Verarbeitung von Datenverteilungen Pending DE112022002790T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB2107606.2 2021-05-27
GBGB2107606.2A GB202107606D0 (en) 2021-05-27 2021-05-27 Improvements in and relating to encoding and computation on distributions of data
GBGB2107604.7A GB202107604D0 (en) 2021-05-27 2021-05-27 Improvements in and relating to encoding and computation on distributions of data
GB2107604.7 2021-05-27
PCT/EP2022/064492 WO2022248719A1 (en) 2021-05-27 2022-05-27 Improvements in and relating to encoding and computation on distributions of data

Publications (1)

Publication Number Publication Date
DE112022002790T5 true DE112022002790T5 (de) 2024-05-16

Family

ID=82218362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022002790.8T Pending DE112022002790T5 (de) 2021-05-27 2022-05-27 Verbesserungen in Bezug auf die Kodierung und Verarbeitung von Datenverteilungen

Country Status (5)

Country Link
US (1) US20240201996A1 (de)
EP (2) EP4348413A1 (de)
JP (1) JP2024520473A (de)
DE (1) DE112022002790T5 (de)
WO (2) WO2022248714A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116431081B (zh) * 2023-06-13 2023-11-07 广州图灵科技有限公司 分布式数据存储方法、系统、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2107606A (en) 1981-09-22 1983-05-05 Ciba Geigy Ag Process for the preparation of fluorescent brightener formulations which are stable on storage
GB2107604A (en) 1981-08-26 1983-05-05 Albany Int Corp Tensioning device for filter bags

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9335996B2 (en) * 2012-11-14 2016-05-10 Intel Corporation Recycling error bits in floating point units
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2107604A (en) 1981-08-26 1983-05-05 Albany Int Corp Tensioning device for filter bags
GB2107606A (en) 1981-09-22 1983-05-05 Ciba Geigy Ag Process for the preparation of fluorescent brightener formulations which are stable on storage

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
Anders Hald, The early history of the cumulants and the Gram-Charlier series, International Statistical Review 68 (2000), Nr. 2, 137-153
Bosch Sensortec. [n. d.]. BME680 Sensor API. [Online]. Verfügbar: https: //github.com/BoschSensortec/BME680_driver, Accessed: 07/09/2021
Daochen Wang, Oscar Higgott, und Stephen Brierley. 2019. Accelerated Variational Quantum Eigensolver. Phys. Rev. Lett. 122 (Apr 2019), 140504. Issue 14. https://doi.org/10.1103/PhysRevLett. 122.140504
James Bornholt, Todd Mytkowicz und Kathryn S. McKinley. 2015. Uncertain<t>: Abstractions for uncertain hardware and software. IEEE Micro 35, 3 (2015), 132-143
James R. Cruise, Neil I. Gillespie und Brendan Reid. 2020. Practical Quantum Computing: The value of local computation. arXiv preprint arXiv:2009.08513 (2020)
LM Brown und RK Ham. 1971. Dislocation-particle interactions. Strengthening methods in crystals (1971), 9-135
M.J. Anderson, F. Schulz, Y. Lu, H.S. Kitaguchi, P. Bowen, C. Argyrakis, und H.C. Basoalto. 2020. On the modelling of precipitation kinetics in a turbine disc nickel-based superalloy. Acta Materialia 191 (2020), 81-100. https://doi.org/10.1016/j.actamat.2020.03.058
MiBench: „A free, commercially representative embedded benchmark suite" von Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, Richard B. Brown, IEEE 4th Annual Workshop on Workload Characterization, Austin, TX, Dezember 2001. (http://vhosts.eecs.umich.edu/mibench//)
Nathan Wiebe und Chris Granade. 2016. Efficient Bayesian Phase Estimation. Phys. Rev. Lett. 117 (Jun 2016), 010503. Issue 1. https://doi.org/10.1103/PhysRevLett.117.010503
Peter Hall, The bootstrap and Edgeworth expansion, Springer Science & Business Media, 2013
Rabi N. Bhattacharya, Jayanta K. Ghosh, et al., On the validity of the formal Edgeworth expansion, Ann. Statist. 6 (1978), Nr. 2, 434-451
T. Lafarge und A. Possolo, NIST uncertainty machine-user's manual, National Institute of Standards and Technology, Gaithersburg, 2015. (https://uncertainty.nist.gov/ und https://www.nist.gov/publications/uncertainty-machine-users-manual)

Also Published As

Publication number Publication date
EP4348413A1 (de) 2024-04-10
US20240201996A1 (en) 2024-06-20
EP4348420A1 (de) 2024-04-10
WO2022248714A9 (en) 2023-01-05
WO2022248714A1 (en) 2022-12-01
JP2024520473A (ja) 2024-05-24
WO2022248719A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
DE112021004908T5 (de) Computerbasierte systeme, rechenkomponenten und rechenobjekte, die eingerichtet sind, dynamische ausreisser-verzerrungs-verringerung bei maschinenlernmodellen zu implementieren
Massanet et al. A new linguistic computational model based on discrete fuzzy numbers for computing with words
Ševčíková et al. bayesPop: probabilistic population projections
US6961685B2 (en) Probability model selection using information-theoretic optimization criterion
Burer et al. Representing quadratically constrained quadratic programs as generalized copositive programs
DE202017007517U1 (de) Aggregatmerkmale für maschinelles Lernen
Hofert A stochastic representation and sampling algorithm for nested Archimedean copulas
Grabchak et al. The generalized Simpson’s entropy is a measure of biodiversity
DE102020119090A1 (de) Verfahren und vorrichtungen zum selbsterzeugen einer mehrausgaben-ensemblemodell-verteidigung gegen gegnerische angriffe
DE202020101664U1 (de) Rechnergestützte Graphenoptimierung
DE102019109631A1 (de) Tiefes komprimiertes netzwerk
DE102021200012A1 (de) Optimierte quantisierung für neuronale netze mit verringerter auflösung
Yoshioka et al. Analysis and computation of an optimality equation arising in an impulse control problem with discrete and costly observations
DE112022002790T5 (de) Verbesserungen in Bezug auf die Kodierung und Verarbeitung von Datenverteilungen
Rivin et al. Quantum Chaos on Random Cayley Graphs of SL 2 [Z/p Z]
US6996552B2 (en) Apparatus and method for handling logical and numerical uncertainty utilizing novel underlying precepts
DE102022129219A1 (de) Verfahren und Vorrichtung für durch maschinelles Lernen gesteuerte Kompiliereroptimierungen für registerbasierte Hardwarearchitekturen
Sun et al. A penalized simulated maximum likelihood approach in parameter estimation for stochastic differential equations
Parker et al. Computational efficiency and precision for replicated-count and batch-marked hidden population models
Spencer Size change, shape change, and the growth space of a community
Xiang et al. Compressing Bayesian networks: Swarm-based descent, efficiency, and posterior accuracy
Gelling et al. R package rjmcmc: reversible jump MCMC using post‐processing
Laitinen et al. Probabilistic multivariate early warning signals
DE102008058016A1 (de) System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
Lucet et al. The sspm R package for spatially-explicit surplus production population models

Legal Events

Date Code Title Description
R012 Request for examination validly filed