-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Diese Patentanmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr.
10-2020-0028654 , die am 06. März 2020 beim koreanischen Amt für geistiges Eigentum eingereicht wurde und deren Offenlegung durch Verweis in ihrer Gesamtheit hierin enthalten ist.
-
Technischer Bereich
-
Das erfinderische Konzept bezieht sich auf einen Datenbus, ein Datenverarbeitungsverfahren des Datenbusses und eine Datenverarbeitungsvorrichtung, insbesondere auf einen Datenbus zur Übertragung von Vektordaten, ein Datenverarbeitungsverfahren des Datenbusses und eine Datenverarbeitungsvorrichtung.
-
Diskussion des Standes der Technik
-
Ein Vektorprozessor ist eine zentrale Verarbeitungseinheit, die einen Befehlssatz, der Befehle enthält, implementiert, die Vektordaten verarbeiten. Beispielsweise können Multimediadaten unter Verwendung eines Vektorprozessors effizienter verarbeitet werden. Ein Computersystem enthält einen Datenbus zum Austausch der Vektordaten zwischen dem Vektorprozessor und einem Vektorspeicher. Der Vektorprozessor sammelt unter Verwendung des Datenbusses eine Vielzahl von Daten aus dem Vektorspeicher und führt eine Streuungsoperation an der Vielzahl von Daten durch. Eine Arbeitseinheit zur Durchführung einer logischen Funktion im Vektorprozessor wird als Transaktion bezeichnet. Die Vektordaten enthalten eine Vielzahl von Transaktionen. Die Übertragung einer Transaktion in den Vektorspeicher kann die Verwendung eines oder mehrerer Register enthalten. Die Anzahl dieser Register kann sich erhöhen, wenn die Anzahl der Bankspeicher im Vektorspeicher zunimmt oder wenn die Betriebsfrequenz des Vektorprozessors zunimmt. Dementsprechend ist eine Technik erforderlich, um die Vielzahl von Transaktionen unter Verwendung weniger Hardware-Ressourcen effizient durchzuführen.
-
ZUSAMMENFASSUNG
-
Mindestens eine Ausführungsform des erfinderischen Konzepts sieht einen Datenbus, ein Datenverarbeitungsverfahren des Datenbusses und eine Datenverarbeitungsvorrichtung vor, und insbesondere ein Verfahren und eine Vorrichtung zum Speichern einer Vielzahl von Transaktionen in einem Speicher, der eine Vielzahl von Speicherbänken mit reduziertem Verkehrskonflikt enthält.
-
Nach einer beispielhaften Ausführungsform des erfinderischen Konzepts wird ein Datenbus vorgesehen, enthaltend: eine Transaktionsauswahlschaltung, die eingerichtet ist, um Vektordaten, die eine Vielzahl von Transaktionen enthalten, von außerhalb des Datenbusses zu empfangen, mindestens eine Transaktion aus der Vielzahl von Transaktionen, bei denen kein Verkehrskonflikt auftritt, auf der Grundlage auszuwählen, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, und die ausgewählte mindestens eine Transaktion auszugeben, und einen Speicherdatenpfad, der mindestens ein Register enthält und eingerichtet ist, um die ausgewählte mindestens eine Transaktion, die von der Transaktionsauswahlschaltung zugeführt wird, über das mindestens eine Register nach außerhalb des Datenbusses auszugeben.
-
Nach einer beispielhaften Ausführungsform des erfinderischen Konzepts wird ein Datenverarbeitungsverfahren eines Datenbusses vorgesehen, enthaltend: Empfangen durch den Datenbus von Vektordaten, die eine Vielzahl von Transaktionen enthalten; Erhalten durch den Datenbus einer Konflikttabelle, die (eine) Information(en) darüber enthält, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt; Auswählen durch den Datenbus auf der Grundlage der Konflikttabelle mindestens einer Transaktion von Transaktionen, bei denen kein Verkehrskonflikt unter der Vielzahl von Transaktionen auftritt; und Ausgeben durch den Datenbus der ausgewählten mindestens einen Transaktion.
-
Nach einem Beispiel des erfinderischen Konzepts ist eine Datenverarbeitungsvorrichtung vorgesehen, enthaltend: einen Prozessor, der eingerichtet ist, um Vektordaten auszugeben, die eine Vielzahl von Transaktionen enthalten; einen Speicher, der eine Vielzahl von Speicherbänken enthält und eingerichtet ist, um die Vielzahl von Transaktionen zu speichern; und einen Datenbus, der eingerichtet ist, um basierend darauf, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, mindestens eine Transaktion auszuwählen, bei der kein Verkehrskonflikt unter der Vielzahl von Transaktionen auftritt, und die ausgewählte mindestens eine Transaktion der Vielzahl von Speicherbänken über einen Speicherdatenpfad mit einer Baumstruktur zuzuführen.
-
Nach einer beispielhaften Ausführungsform des erfinderischen Konzepts ist ein Datenverarbeitungsverfahren eines Datenbusses zur Zuführung von Daten einer Vielzahl von Speicherbänken vorgesehen, enthaltend: Empfangen von Vektordaten, die eine Vielzahl von Transaktionen enthalten, durch den Datenbus; basierend auf einer Konflikttabelle, die Information(en) darüber enthält, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, Ausgeben über den Datenbus mindestens einer ersten Transaktion, bei der kein Verkehrskonflikt unter der Vielzahl von Transaktionen auftritt; Aktualisieren durch den Datenbus der Konflikttabelle basierend auf (einer) Information(en) über die mindestens eine erste Transaktion; und basierend auf der aktualisierten Konflikttabelle Ausgeben durch den Datenbus mindestens einer zweiten Transaktion, bei der kein Verkehrskonflikt unter den Transaktionen mit Ausnahme der mindestens einen ersten Transaktion unter der Vielzahl von Transaktionen auftritt.
-
Nach einer beispielhaften Ausführungsform des erfinderischen Konzepts ist eine Datenverarbeitungsvorrichtung vorgesehen, enthaltend: einen Prozessor, der eingerichtet ist, um Vektordaten auszugeben, die eine Vielzahl von Transaktionen enthalten; einen Speicher, der eine Vielzahl von Speicherbänken enthält und eingerichtet ist, um die Vielzahl von Transaktionen zu speichern; und einen Datenbus, der eingerichtet ist, um die Vielzahl von Transaktionen vom Prozessor zu empfangen und die Vielzahl von Transaktionen der Vielzahl von Speicherbänken zuzuführen. Der Datenbus enthält: eine Transaktionsauswahlschaltung, die eingerichtet ist, um eine Konflikttabelle zu erzeugen, die (eine) Information(en) darüber enthält, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, mindestens eine Transaktion, in der kein Verkehrskonflikt unter der Vielzahl von Transaktionen auftritt, auf der Grundlage der Konflikttabelle auszuwählen und die ausgewählte mindestens eine Transaktion auszugeben; und einen Datenspeicherpfad, der eine Vielzahl von Stufen enthält. Die Stufen enthalten ein Register der ersten Stufe, das eingerichtet ist, um die ausgewählte mindestens eine Transaktion zu empfangen, die von der Transaktionsschaltung zugeführt wird, und mindestens ein Zustandsregister, das in einer Baumstruktur mit dem Register der ersten Stufe verbunden ist. Der Datenspeicherpfad ist eingerichtet, um Daten von jedem der Register der letzten Stufe der Stufe jeder der mehreren Speicherbänken zuzuführen.
-
Figurenliste
-
Beispielhafte Ausführungsformen des erfinderischen Konzepts werden in der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen besser verstanden:
- 1 veranschaulicht ein Datenverarbeitungssystem nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 2 veranschaulicht einen Speicher nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 3 ist ein Ablaufdiagramm eines Datenverarbeitungsverfahrens eines Datenbusses, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 4 veranschaulicht einen Datenbus nach einer beispielhaften Ausführungsform des Erfindungskonzepts;
- 5A und 5B veranschaulichen Konflikttabellen nach beispielhaften Ausführungsformen des erfinderischen Konzepts;
- 6 ist ein Ablaufdiagramm eines Konflikttabellen-erzeugenden Verfahrens eines Datenbusses, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 7 ist ein Ablaufdiagramm eines Datenverarbeitungsverfahrens eines Datenbusses nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 8A bis 8E sind Diagramme, die Prozesse eines Datenverarbeitungsverfahrens eines Datenbusses nach beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulichen;
- 9 veranschaulicht einen Datenbus und einen Speicher nach einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 10 veranschaulicht einen Datenbus und einen Speicher nach einem Vergleichsbeispiel;
- 11 veranschaulicht einen Datenbus und einen Speicher nach einer beispielhaften Ausführungsform des erfinderischen Konzepts; und
- 12 veranschaulicht einen Datenbus und einen Speicher nach einer beispielhaften Ausführungsform des erfinderischen Konzepts.
-
DETAILLIERTE BESCHREIBUNG DER BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
-
Im Folgenden werden beispielhafte Ausführungsformen des erfinderischen Konzepts unter Bezugnahme auf die beigefügten Zeichnungen ausführlich beschrieben.
-
1 veranschaulicht eine Datenverarbeitungsvorrichtung 10 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Die Datenverarbeitungsvorrichtung 10 enthält einen Prozessor 100, einen Datenbus 200 und einen Speicher 300 (z.B. einen Vektorspeicher). Die Datenverarbeitungsvorrichtung 10 kann in verschiedenen datenverarbeitenden Vorrichtungen implementiert werden. Zum Beispiel kann die Datenverarbeitungsvorrichtung 10 in einer von verschiedenen Vorrichtungen, wie z. B. einem mobilen Personalcomputer (PC) (UMPC), einer Arbeitsstation, einem Netbook, einem persönlichen digitalen Assistenten (PDA), einem tragbaren Computer, einem Web-Tablett, einem drahtlosen Telefon, einem Mobiltelefon, einem Smartphone, einem E-Book, einem tragbaren Multimedia-Player (PMP), einer tragbaren Spielmaschine, einer Navigationsvorrichtung, einer Blackbox und einer Digitalkamera enthalten sein. Darüber hinaus kann die Datenverarbeitungsvorrichtung 10 in einer neuronalen Netz-Vorrichtung zur Beschleunigung eines neuronalen Netzes (z.B. eines künstlichen neuronalen Netzes) implementiert werden.
-
Der Prozessor 100 kann alle Operationen der Datenverarbeitungsvorrichtung 10 steuern. Zum Beispiel kann der Prozessor 100 eine zentrale Verarbeitungseinheit (CPU) enthalten. Der Prozessor 100 kann einen einzelnen Kern oder mehrere Kerne enthalten. Der Prozessor 100 kann Programme und/oder Daten, die im Speicher 300 gespeichert sind, ausführen oder verarbeiten. Beispielsweise kann der Prozessor 100 verschiedene Funktionen der Datenverarbeitungsvorrichtung 10 steuern, indem er im Speicher 300 gespeicherte Programme ausführt. Der Prozessor 100 kann Vektordaten VEC verarbeiten. Die Vektordaten VEC können im Speicher 300 gespeichert oder vom Speicher 300 empfangen werden. In diesem Fall kann der Prozessor 100 die Vektordaten VEC über den Datenbus 200 im Speicher 300 speichern.
-
Der Datenbus 200 kann einen Kanal zwischen verschiedenen Komponenten in der Datenverarbeitungsvorrichtung 10 vorsehen. Der Datenbus 200 kann auf der Grundlage eines von verschiedenen Busprotokollen arbeiten. Die verschiedenen Busprotokolle können mindestens eines von verschiedenen Schnittstellenprotokollen, wie z.B. einem USB-Protokoll (Universal Serial Bus), einem MMC-Protokoll (Multi Media Card), einem PCI-Protokoll (Peripheral Component Interconnection), einem PCI-Express-Protokoll (PCI-E), einem ATA-Protokoll (Advanced Technology Attachment), einem Serial-ATA-Protokoll, einem Parallel-ATA-Protokoll, einem SCSI-Protokoll (Small Computer Small Interface), einem ESDI-Protokoll (Enhanced Small Disk Interface) und einem UFS-Protokoll (Universal Flash Storage) enthalten.
-
Der Speicher 300 kann (eine) Steuerinformation(en), wie z. B. verschiedene Daten, Programme und Anweisungen, speichern, die in der Datenverarbeitungsvorrichtung 10 verwendet werden. In einer Ausführungsform kann der Speicher 300 mit einem flüchtigen Speicher implementiert sein, und der flüchtige Speicher kann mindestens eines von einem dynamischen Speicher mit wahlfreiem Zugriff (RAM) (DRAM), einem synchronem DRAM (SDRAM), einem SDRAM mit doppelter Datenrate (DDR) (DDR SDRAM), einem DDR SDRAM mit niedrigem Stromverbrauch (LPDDR SDRAM), einem Grafik-DDR (GDDR SDRAM), einem Rambus-DRAM (RDRAM) und einem statischem Speicher (SRAM) enthalten. Der Speicher 300 kann die Vektordaten VEC, die eine Vielzahl von Transaktionen enthalten, speichern. In einer beispielhaften Ausführungsform ist mindestens eine der Transaktionen eine logische Operation (z. B. eine Addition, eine Unteraktion, eine Multiplikation, eine Division usw.), die vom Prozessor an Daten ausgeführt wird, die an einer bestimmten Stelle (z. B. Bank, Unterbank, Strobe usw.) des Speichers 300 gespeichert sind. In einer Ausführungsform enthält der Speicher 300 eine Vielzahl von Speicherbänken zur Speicherung der Vielzahl von Transaktionen. In einer Ausführungsform enthält jede der Speicherbänke eine Vielzahl von Unterspeicherbänken, und jede der Vielzahl von Unterspeicherbänken enthält eine Vielzahl von Strobes (z.B. Streifen). Eine Ausführungsform einer Implementierung des Speichers 300 wird unter Bezugnahme auf 2 ausführlicher beschrieben.
-
In einer Ausführungsform empfängt der Datenbus 200 die Vektordaten VEC, die die Vielzahl der Transaktionen enthalten, vom Prozessor 100 über einen Eingabeanschluss 210. Der Datenbus 200 kann basierend darauf, ob unter der Vielzahl von Transaktionen ein Verkehrskonflikt besteht, mindestens eine Transaktion auswählen, in der der Verkehrskonflikt nicht auftritt, und die ausgewählte mindestens eine Transaktion ausgeben. Beispielsweise kann der Datenbus 200 die ausgewählte mindestens eine Transaktion dem Speicher 300 zuführen. In einer beispielhaften Ausführungsform tritt ein Verkehrskonflikt zwischen zwei Transaktionen auf, wenn diese beiden Transaktionen so geplant sind, dass sie zur gleichen Zeit mit Daten arbeiten, die in demselben Strobe, derselben Unterbank oder derselben Speicherbank gespeichert sind.
-
In einer beispielhaften Ausführungsform enthält der Datenbus 200 eine Transaktionsauswahlschaltung 220 und einen Speicherdatenpfad 240.
-
In einer beispielhaften Ausführungsform wählt die Transaktionsauswahlschaltung 220 mindestens eine Transaktion aus, bei der unter der Vielzahl der in den Vektordaten VEC enthaltenen Transaktionen kein Verkehrskonflikt auftritt, und gibt die ausgewählte Transaktion TRS_SEL aus. In einer beispielhaften Ausführungsform erzeugt (oder erhält) die Transaktionsauswahlschaltung 220 eine Konflikttabelle, die (eine) Information(en) darüber enthält, ob ein Verkehrskonflikt unter der Vielzahl von Transaktionen aufgetreten ist, und gibt die ausgewählte Transaktion TRS-SEL aus, indem sie mindestens eine Transaktion, in der der Verkehrskonflikt nicht auftritt, auf der Grundlage der Konflikttabelle auswählt.
-
In einer beispielhaften Ausführungsform gibt die Transaktionsauswahlschaltung 220 auf der Grundlage der Konflikttabelle mindestens eine erste Transaktion, in der kein Verkehrskonflikt auftritt, als die ausgewählte Transaktion TRS_SEL aus und kann die Konflikttabelle auf der Grundlage einer/von Information(en) über die mindestens eine erste Transaktion aktualisieren. In einer Ausführungsform wird die Konflikttabelle auf der Grundlage einer Liste aktualisiert, die mit der mindestens einen ersten Transaktion verknüpft ist. Beispielsweise können alle Elementwerte, die in einer Zeile enthalten sind, die der mindestens einen ersten Transaktion in der Konflikttabelle entspricht, auf einen ersten logischen Wert aktualisiert werden. Nachdem der Verkehrskonflikt aktualisiert wurde, gibt die Transaktionsauswahlschaltung 220 auf der Grundlage der aktualisierten Konflikttabelle mindestens eine zweite Transaktion, in der der Verkehrskonflikt nicht unter den Transaktionen mit Ausnahme der mindestens einen ersten Transaktion unter der Vielzahl von Transaktionen auftritt, als die ausgewählte Transaktion TRS_SEL aus. Mit anderen Worten, die Transaktionsauswahlschaltung 220 kann die Vielzahl von Transaktionen dem Speicherdatenpfad 240 zuführen, indem sie mindestens eine von einer Reihe von Operationen einschließlich einer Transaktionsauswahl, einer Ausgabe und einer Aktualisierung der Konflikttabelle durchführt.
-
Der Speicherdatenpfad 240 kann mindestens ein Register enthalten und kann die ausgewählte Transaktion TRS_SEL, die von der Transaktionsauswahlschaltung 220 zugeführt wird, in den Speicher 300 übertragen. In einer beispielhaften Ausführungsform des erfinderischen Konzepts enthält der Speicherdatenpfad 240 Register, die in einer Baumstruktur verbunden sind. Beispielsweise kann der Speicherdatenpfad 240 ein Register der ersten Stufe enthalten, das die ausgewählte Transaktion TRS_SEL empfängt, und kann ferner mindestens ein Stufenregister enthalten, das mit dem Register der ersten Stufe in der Baumstruktur verbunden ist. Jedes der Register einer letzten Stufe im Speicherdatenpfad 240 kann Daten jeder der Vielzahl von Speicherbänken im Speicher 300 zuführen. Mit anderen Worten, die Register der letzten Stufe im Speicherdatenpfad 240 können jeweils der Vielzahl von Speicherbänken entsprechen.
-
In der Datenverarbeitungsvorrichtung 10 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts wird eine ausgewählte Transaktion TRS_SEL, bei der der Verkehrskonflikt nicht unter der Vielzahl von Transaktionen auftritt, die durch eine Datenauswahloperation der Transaktionsauswahlschaltung 220 im Datenbus 200 ausgewählt wird, über den Speicherdatenpfad 240 dem Speicher 300 zugeführt. Da in dem in 10 gezeigten Vergleichsbeispiel Transaktionen mit Verkehrskonflikten gleichzeitig auf den Speicherdatenpfad 240 übertragen werden, sind viele Register erforderlich, da jeder Pfad, der jeder der mehreren Speicherbänke entspricht, mehrere Register erfordert. Da jedoch in der Datenverarbeitungsvorrichtung 10 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts nur die ausgewählte Transaktion TRS_SEL, bei der kein Verkehrskonflikt auftritt, von der Transaktionsauswahlschaltung 220 dem Speicherdatenpfad 240 zugeführt wird, kann der Speicherdatenpfad 240 unter Verwendung von weniger Registern als im Vergleichsbeispiel entworfen werden. Mit anderen Worten, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts können die Vektordaten VEC, die die Vielzahl von Transaktionen enthalten, vom Prozessor 100 in den Speicher 300 übertragen werden, indem nur eine geringe Menge an Hardware-Ressourcen verwendet wird. Darüber hinaus kann die Leistungsaufnahme des Datenbusses 200 durch die effiziente Übertragung der Vielzahl von Transaktionen in den Speicher 300 reduziert werden.
-
2 veranschaulicht den Speicher 300 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Der Speicher 300 kann dem Speicher 300 in 1 entsprechen, und doppelte Beschreibungen des Speichers 300 in 1 werden weggelassen.
-
Der Speicher 300 enthält eine Vielzahl von Speicherbänken. 2 veranschaulicht eine Ausführungsform, bei der der Speicher 300 vier Speicherbänke enthält, die Anzahl der Speicherbänke ist jedoch nicht darauf beschränkt und der Speicher 300 kann eine beliebige andere Anzahl von Speicherbänken enthalten. Beispielsweise kann der Speicher 300 nur eine Speicherbank enthalten.
-
Der Speicher 300 enthält eine erste Speicherbank 310, eine zweite Speicherbank 320, eine dritte Speicherbank 330 und eine vierte Speicherbank 340. In einer beispielhaften Ausführung weist eine einzelne Speicherbank eine Größe auf, die Vektordaten VEC speichern kann. Wenn zum Beispiel die Größe von Vektordaten VEC etwa 512 Bit betragen, kann die Speicherbank 512 Bit speichern. Jede der Vielzahl von Speicherbänken kann eine Vielzahl von Unterbänken enthalten. Als repräsentatives Beispiel wird nachstehend die erste Speicherbank 310 beschrieben.
-
Die erste Speicherbank 310 enthält eine erste Unterbank 311 und eine zweite Unterbank 312. Die Größen der ersten Unterbank 311 und der zweiten Unterbank 312 können unterschiedlich eingestellt werden. Mit anderen Worten, die erste Speicherbank 310 kann eine unterschiedliche Anzahl von Unterbanken enthalten.
-
Die erste Unterbank 311 enthält einen ersten Strob 311_1, einen zweiten Strob 311_2, einen dritten Strob 311_3 und einen vierten Strob 311_4. Die zweite Unterbank 312 enthält einen ersten Strob 312_1, einen zweiten Strob 312_2, einen dritten Strob 312 3 und einen vierten Strob 312_4. Die Größen der Strobe können unterschiedlich eingestellt werden. Mit anderen Worten, jede von der ersten Unterbank 311 und der zweiten Unterbank 312 können eine unterschiedliche Anzahl von Strobes enthalten. In einer beispielhaften Ausführungsform bedeutet ein Strobe einen Speicher mit einer Größe, die in der Lage ist, eine Transaktion zu speichern.
-
3 ist ein Ablaufdiagramm eines Datenverarbeitungsverfahrens des Datenbusses 200, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. 3 wird unter Bezugnahme auf 1 beschrieben.
-
Der Datenbus 200 empfängt die Vektordaten VEC, die die Vielzahl der Transaktionen enthalten (S120). Zum Beispiel kann der Datenbus 200 die Vektordaten VEC einschließlich der Vielzahl von Transaktionen vom Prozessor 100 empfangen.
-
Der Datenbus 200 erhält eine Konflikttabelle, die (eine) Information(en) darüber enthält, ob ein Verkehrskonflikt unter der Vielzahl der Transaktionen auftritt (S140). Beispielsweise kann die Transaktionsauswahlschaltung 220 die Konflikttabelle erhalten. In einer Ausführungsform ist die Konflikttabelle eine quadratische Matrix, in der die Gesamtzahl der Zeilen und Spalten der Anzahl der Transaktionen entspricht, und ein Elementwert, der einer i-ten Zeile und einer j-ten Spalte entspricht (i und j ist jeweils eine natürliche Zahl von 1 oder mehr und bis zu weniger als die Anzahl der Transaktionen), ist ein Wert, der angibt, ob ein Verkehrskonflikt zwischen der i-ten Transaktion und der j-ten Transaktion besteht. Beispielsweise kann der Elementwert der Matrix einen ersten logischen Wert (z.B. ‚0‘) aufweisen, wenn kein Verkehrskonflikt auftritt, und einen zweiten logischen Wert (z.B. ‚1‘), wenn der Verkehrskonflikt auftritt. Eine Ausführungsform der Konflikttabelle nach diesem Beispiel wird unter Bezugnahme auf 5A näher beschrieben. Wenn die Vielzahl der Transaktionen in einer beispielhaften Ausführungsform eine erste bis N-te Transaktion enthält (wobei N eine natürliche Zahl ist), enthält die Konflikttabelle eine erste bis N-te Zeile. Zum Beispiel können in der ersten Zeile der Konflikttabelle alle Elementwerte mit dem ersten logischen Wert (z.B. ‚0‘) aufgefüllt werden, eine (i+1)-te Zeile der Konflikttabelle kann Werte enthalten, die angeben, ob der Verkehrskonflikt zwischen einer i-ten Transaktion (i ist eine natürliche Zahl von 1 oder mehr bis zu N-2 oder weniger) und der (i+1)-ten Transaktion bis zur N-ten Transaktionen auftritt, und die N-te Zeile der Konflikttabelle kann einen Wert enthalten, der angibt, ob der Verkehrskonflikt zwischen einer (N-1)-ten Transaktion und der N-ten Transaktion auftritt. Eine Ausführungsform der Konflikttabelle nach diesem Beispiel wird unter Bezugnahme auf 5B ausführlicher beschrieben. Darüber hinaus wird eine Ausführungsform eines Erzeugungsverfahrens der Konflikttabelle unter Bezugnahme auf 6 näher beschrieben.
-
Auf der Grundlage der erhaltenen Konflikttabelle wählt der Datenbus 200 aus der Vielzahl der Transaktionen diejenigen Transaktionen aus, bei denen der Verkehrskonflikt nicht auftritt (S160). Beispielsweise kann die Transaktionsauswahlschaltung 220 auf der Grundlage der Konflikttabelle die ausgewählte Transaktion TRS_SEL dem Speicherdatenpfad 240 zuführen, indem sie Transaktionen auswählt, bei denen kein Verkehrskonflikt unter der Vielzahl von Transaktionen auftritt. Wenn die Transaktionen beispielsweise die erste bis vierte Transaktion enthalten und nur zwischen der zweiten und dritten Transaktion ein Konflikt besteht, dann wird entweder die erste Transaktion oder die vierte Transaktion oder sowohl die erste als auch die vierte Transaktion ausgewählt. Eine Ausführungsform der Auswahl der ausgewählten Transaktion TRS_SEL auf der Grundlage der Konflikttabelle wird unter Bezugnahme auf 7 und 8A bis 8E ausführlicher beschrieben.
-
Der Datenbus 200 gibt die ausgewählte Transaktion TRS SEL (S180) aus. Beispielsweise kann der Datenbus 200 die ausgewählte Transaktion TRS SEL über den Speicherdatenpfad 240, der die in einer Baumstruktur verbundenen Register enthält, nach außen ausgeben. Der Datenbus 200 kann die ausgewählte Transaktion TRS_SEL an den Speicher 300 ausgeben.
-
Bei dem Datenverarbeitungsverfahren des Datenbusses 200 wird nach einer beispielhaften Ausführungsform des erfinderischen Konzepts eine ausgewählte Transaktion TRS_SEL, bei der der Verkehrskonflikt unter der Vielzahl der Transaktionen nicht auftritt, die durch eine Datenauswahloperation der Transaktionsauswahlschaltung 220 im Datenbus 200 ausgewählt wird, über den Speicherdatenpfad 240 dem Speicher 300 zugeführt. Da in dem in 10 gezeigten Vergleichsbeispiel Transaktionen mit Verkehrskonflikten gleichzeitig auf den Speicherdatenpfad 240 übertragen werden, können viele Register erforderlich sein, da jeder Pfad, der jeder der mehreren Speicherbänke entspricht, mehrere Register erfordert. Da in der Datenverarbeitungsvorrichtung 10 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts jedoch nur die ausgewählte Transaktion TRS_SEL, bei der kein Verkehrskonflikt auftritt, von der Transaktionsauswahlschaltung 220 dem Speicherdatenpfad 240 zugeführt wird, kann der Speicherdatenpfad 240 unter Verwendung von weniger Registern als im Vergleichsbeispiel entworfen werden. Mit anderen Worten, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts können die Vektordaten VEC, die die Vielzahl von Transaktionen enthalten, vom Prozessor 100 in den Speicher 300 übertragen werden, indem nur eine geringe Menge an Hardware-Ressourcen verwendet wird. Darüber hinaus kann die Leistungsaufnahme des Datenbusses 200 durch die effiziente Übertragung der Vielzahl von Transaktionen in den Speicher 300 reduziert werden.
-
4 veranschaulicht die Transaktionsauswahlschaltung 220 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Die Transaktionsauswahlschaltung 220 von 4 kann der unter Bezugnahme auf 1 und 3 beschriebenen Transaktionsauswahlschaltung 220 entsprechen. Doppelte Beschreibungen der Transaktionsauswahlschaltung 220 unter Bezugnahme auf frühere Diagramme werden weggelassen. 4 wird unter Bezugnahme auf 1 beschrieben.
-
Die Transaktionsauswahlschaltung 220 enthält eine Konflikttabellen-Verwaltungsschaltung 222 und eine Transaktionsausgabeschaltung 224. Die Transaktionsauswahlschaltung 220 des Datenbusses 200 kann die Vektordaten VEC, die die Vielzahl der Transaktionen enthalten, vom Prozessor 100 empfangen. Zum Beispiel können die Vektordaten VEC eine erste Transaktion TRS_1, eine zweite Transaktion TRS_2, ..., eine N-te Transaktion TRS_N (wobei N eine natürliche Zahl von 1 oder mehr ist) enthalten.
-
Die Konflikttabellen-Verwaltungsschaltung 222 kann eine Konflikttabelle erhalten, die (eine) Information(en) darüber erhält, ob ein Verkehrskonflikt unter einer Vielzahl von Transaktionen besteht, und kann die Konflikttabelle aktualisieren. In einer beispielhaften Ausführungsform des erfinderischen Konzepts gibt die Konflikttabellen-Verwaltungsschaltung 222 die Auswahlinformation(en) SEL_Infb (z.B. ein Signal) für die Auswahl der ausgewählten Transaktion TRS_SEL aus, in der der Verkehrskonflikt unter der Vielzahl von Transaktionen, die auf der Konflikttabelle basieren, nicht auftritt. Die Auswahlinformation(en) SEL_Info kann/können z.B. eine Liste von Transaktionen enthalten, die in der ausgewählten Transaktion TRS_SEL enthalten sind. Die Konflikttabellen-Verwaltungsschaltung 222 führt die Auswahlinformation(en) SEL_Info der Transaktionsausgabeschaltung 224 zu.
-
Die Transaktionsausgabeschaltung 224 kann die ausgewählte Transaktion TRS_SEL unter der ersten bis N-ten Transaktion TRS_1 bis TRS_N auf der Grundlage der von der Konflikttabellen-Verwaltungsschaltung 222 zugeführten Auswahlinformation(en) SEL_Info auswählen. Die Auswahlinformation(en) SEL_Info kann/können z.B. eine eindeutige Kennung (ID) enthalten, die jede der Transaktionen identifiziert, so dass die Transaktionsausgabeschaltung 224 eine Teilmenge der auszugebenden Vektordaten VEC bestimmen kann. Die ausgewählte Transaktion TRS_SEL kann eine oder mehrere Transaktionen enthalten.
-
Eine beispielhafte Ausführungsform, in der die Konflikttabellen-Verwaltungsschaltung 222 die Konflikttabelle erzeugt und aktualisiert, und eine bestimmte Ausführungsform, in der die Transaktionsausgabeschaltung 224 die ausgewählte Transaktion TRS_SEL ausgibt, werden anhand der folgenden Zeichnungen näher beschrieben.
-
5A und 5B veranschaulichen Konflikttabellen nach beispielhaften Ausführungsformen des erfinderischen Konzepts. 5A und 5B veranschaulichen Konflikttabellen, die Ausführungsformen entsprechen, in denen die Vektordaten VEC 8 Transaktionen enthalten, aber die Anzahl der Transaktionen, die in Vektordaten VEC enthalten sind, ist nicht darauf beschränkt. 5A und 5B veranschaulichen als nicht einschränkende Beispiele Ausführungsformen, in denen die Vektordaten VEC eine erste bis achte Transaktion T1 bis T8 enthalten. 5A und 5B werden zusammen bezugnehmend auf 1 und 4 beschrieben.
-
Unter Bezugnahme auf 5A enthält die Konflikttabelle eine quadratische Matrix, und die Größe der Zeilen und Spalten der quadratischen Matrix entspricht der Anzahl der Transaktionen. In diesem Fall ist der Elementwert, der einer i-ten Zeile und einer j-ten Spalte der Quadratmatrix entspricht (wobei i und j natürliche Zahlen von 1 oder mehr bis zu der Anzahl der Transaktionen oder weniger sind), ein Wert, der anzeigt, ob es einen Verkehrskonflikt zwischen der i-ten Transaktion und der j-ten Transaktion gibt. Jeder der Elementwerte weist den ersten logischen Wert (z.B. ‚0‘) als Reaktion darauf auf, dass kein Verkehrskonflikt zwischen Transaktionen auftritt, und den zweiten logischen Wert (z.B. ‚1‘) als Reaktion auf das Auftreten des Verkehrskonflikts. Dementsprechend können in einer Ausführungsform alle Elementwerte, die einer Diagonalen der in der Konflikttabelle enthaltenen Quadratmatrix entsprechen, die ersten logischen Werte aufweisen, und die Quadratmatrix kann eine symmetrische Matrix sein. Die Elementwerte entlang der Diagonale können ignoriert werden, da sie sich nur auf eine einzige Transaktion beziehen.
-
Unter Bezugnahme auf 5A tritt ein Verkehrskonflikt zwischen der ersten Transaktion T1 und der vierten Transaktion T4, zwischen der ersten Transaktion T1 und der achten Transaktion T8, zwischen der zweiten Transaktion T2 und der vierten Transaktion T4, zwischen der zweiten Transaktion T2 und der achten Transaktion T8, zwischen der dritten Transaktion T3 und der fünften Transaktion T5 und zwischen der vierten Transaktion T4 und der achten Transaktion T8 auf. Dementsprechend weisen die Elementwerte, die den Koordinatenwerten von (1,4), (1,8), (2,4), (2,8), (3,5) und (4,8) in der in der Konflikttabelle enthaltenen Quadratmatrix entsprechen, die zweiten logischen Werte von ‚1‘ auf, und die Elementwerte, die den zu den Koordinatenwerten symmetrischen Koordinatenwerten entsprechen, weisen ebenfalls die zweiten logischen Werte von ‚1‘ auf. Zu den symmetrischen Koordinatenwerten gehören beispielsweise (4,1), (8,1), (4,2), (8,2), (5,3) und (8,4).
-
Wenn unter Bezugnahme auf 5B die Vektordaten VEC die erste bis N-te Transaktion TRS_1 bis TRS_N enthalten, kann die Konflikttabelle N Zeilen enthalten. Beispielsweise kann die Konflikttabelle die erste bis N-te Zeile enthalten, und alle Elementwerte der ersten Zeile der Konflikttabelle werden mit dem ersten logischen Wert ‚0‘ aufgefüllt. In der zweiten bis (N-1)-ten Zeile der Konflikttabelle enthält die (i+1)-te Zeile Werte, die angeben, ob es einen Verkehrskonflikt zwischen der i-ten Transaktion (i ist eine natürliche Zahl von 1 oder mehr bis zu N-2 oder weniger) und der (i+1)-ten bis N-ten Transaktion gibt. Die N-te Zeile der Konflikttabelle kann einen Wert enthalten, der angibt, ob es einen Verkehrskonflikt zwischen der (N-1)-ten Transaktion und der N-ten Transaktion gibt.
-
Es wird angenommen, dass der Verkehrskonflikt zwischen der ersten Transaktion T1 und der vierten Transaktion T4, zwischen der ersten Transaktion T1 und der achten Transaktion T8, zwischen der zweiten Transaktion T2 und der vierten Transaktion T4, zwischen der zweiten Transaktion T2 und der achten Transaktion T8, zwischen der dritten Transaktion T3 und der fünften Transaktion T5 und zwischen der vierten Transaktion T4 und der achten Transaktion T8 auftritt. Die erste Zeile der Konflikttabelle wird mit dem ersten logischen Wert ‚0‘ aufgefüllt. Die zweite Zeile der Konflikttabelle enthält einen Wert, der angibt, ob es einen Konflikt zwischen der ersten Transaktion T1 und jeder der zweiten bis achten Transaktion T2 bis T8 gibt. In ähnlicher Weise enthält die zweite Zeile der Konflikttabelle einen Wert, der angibt, ob ein Konflikt zwischen der zweiten Transaktion T2 und jeder der dritten bis achten Transaktionen T3 bis T8 besteht. Die vierte Zeile der Konflikttabelle enthält einen Wert, der angibt, ob ein Konflikt zwischen der dritten Transaktion T3 und jeder der vierten bis achten Transaktionen T4 bis T8 besteht. Die fünfte Zeile der Konflikttabelle enthält einen Wert, der angibt, ob ein Konflikt zwischen der vierten Transaktion T4 und jeder der fünften bis achten Transaktionen T5 bis T8 besteht. Die sechste Zeile der Konflikttabelle enthält einen Wert, der angibt, ob es einen Konflikt zwischen der fünften Transaktion T5 und jeder der sechsten bis achten Transaktionen T6 bis T8 gibt. Die siebte Zeile der Konflikttabelle enthält einen Wert, der angibt, ob es einen Konflikt zwischen der sechsten Transaktion T6 und jeder der siebten bis achten Transaktionen T7 bis T8 gibt. Die achte Zeile der Konflikttabelle enthält einen Wert, der angibt, ob ein Konflikt zwischen der siebten Transaktion und der achten Transaktion besteht. In einer beispielhaften Ausfuhrungsform wird die Konflikttabelle von 5B unter Verwendung von sechs linearen Arrays für die zweite bis siebente Zeile und einer einzigen Variablen für die achte Zeile implementiert. In dieser Ausführungsform weist jeder nächste der linearen Arrays ein Element weniger auf.
-
6 ist ein Ablaufdiagramm eines Konflikttabellen-erzeugenden Verfahrens eines Datenbusses nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Insbesondere kann 6 ein Ablaufdiagramm eines Verfahrens sein, mit dem festgestellt werden kann, ob im Prozess der Erstellung der Konflikttabelle ein Verkehrskonflikt zwischen der i-ten Transaktion und der j-ten Transaktion besteht. 6 wird zusammen mit dem Verweis auf 1, 2 und 4 beschrieben.
-
Der Datenbus 200 oder die Transaktionsauswahlschaltung 220 bestimmt, ob eine Unterbank, in der die i-te Transaktion gespeichert wird, identisch mit einer Unterbank ist, in der die j-te Transaktion gespeichert wird (S210). Zum Beispiel kann die Konflikttabellen-Verwaltungsschaltung 222 bestimmen, ob die Unterbank, in der die i-te Transaktion gespeichert ist, identisch mit der Unterbank ist, in der die j-te Transaktion gespeichert ist. Dass Unterbanken untereinander identisch sind, kann nicht nur den Fall einschließen, dass die Unterbanken in einer identischen Bank identisch sind, sondern auch den Fall, dass die Unterbanken in verschiedenen Banken einander entsprechen. Wenn z.B. eine erste Transaktion in der ersten Unterbank 311 der ersten Speicherbank 310 und eine zweite Transaktion in einer ersten Unterbank der zweiten Speicherbank 320 gespeichert wird, könnten diese Transaktionen in bestimmten Ausführungsformen als zu einer identischen Bank gehörend interpretiert werden. Wenn die Unterbank, in der die i-te Transaktion gespeichert ist, mit der Unterbank, in der die j-te Transaktion gespeichert ist, identisch ist, wird die Operation S220 durchgeführt; andernfalls wird die Operation S250 durchgeführt.
-
Wenn die Unterbank, in der die i-te Transaktion gespeichert ist, identisch mit der Unterbank ist, in der die j-te Transaktion gespeichert ist, bestimmt der Datenbus 200 oder die Transaktionsauswahlschaltung 220, ob ein Strobe, in dem die i-te Transaktion gespeichert ist, identisch mit einem Strobe ist, in dem die j-te Transaktion gespeichert ist (S220). Beispielsweise kann die Konflikttabellen-Verwaltungsschaltung 222 bestimmen, ob der Strobe, in dem die i-te Transaktion gespeichert ist, identisch mit einem Strobe ist, in dem die j-te Transaktion gespeichert ist. Eine Tatsache, dass Strobes miteinander identisch sind, kann nicht nur den Fall einschließen, dass die Strobes in einer identischen Unterbank identisch sind, sondern auch den Fall, dass die Strobes in verschiedenen Unterbanken einander entsprechen. Wenn z.B. eine erste Transaktion im ersten Strobe 311_1 der ersten Unterbank 311 und eine zweite Transaktion in einem ersten Strobe 312_1 der zweiten Unterbank 312 gespeichert ist, könnten diese Transaktionen in bestimmten Ausführungsformen als zu einem identischen Strobe gehörend interpretiert werden. Wenn der Strobe, in dem die i-te Transaktion gespeichert ist, identisch mit dem Strobe ist, in dem die j-te Transaktion gespeichert ist, wird die Operation S240 durchgeführt; andernfalls wird die Operation S230 durchgeführt.
-
Wenn die Unterbank, in der die i-te Transaktion gespeichert ist, identisch mit der Unterbank ist, in der die j-te Transaktion gespeichert ist, aber der Strobe, in dem die i-te Transaktion gespeichert ist, sich von dem Strobe unterscheidet, in dem die j-te Transaktion gespeichert ist, bestimmt der Datenbus 200 oder die Transaktionsauswahlschaltung 220, ob die Bank, in der die i-te Transaktion gespeichert ist, identisch mit der Bank ist, in der die j-te Transaktion gespeichert ist, und die Zeile, in der die i-te Transaktion gespeichert ist, identisch mit der Zeile ist, in der die j-te Transaktion gespeichert ist (S230). Wenn die Bank, in der die i-te Transaktion gespeichert ist, mit der Bank, in der die j-te Transaktion gespeichert ist, identisch ist und die Zeile, in der die i-te Transaktion gespeichert ist, sich von der Zeile, in der die j-te Transaktion gespeichert ist, unterscheidet, wird die Operation S240 durchgeführt; andernfalls wird die Operation 250 durchgeführt.
-
Wenn die Unterbank, in der die i-te Transaktion gespeichert ist, identisch mit der Unterbank ist, in der die j-te Transaktion gespeichert ist, und der Strobe, in dem die i-te Transaktion gespeichert ist, identisch mit dem Strobe ist, in dem die j-te Transaktion gespeichert ist, oder wenn die Unterbank, in der die i-te Transaktion gespeichert ist, identisch mit der Unterbank ist, in der die j-te Transaktion gespeichert ist, der Strobe, in dem die i-te Transaktion gespeichert ist, sich von dem Strobe unterscheidet, in dem die j-te Transaktion gespeichert ist, die Bank, in der die i-te Transaktion gespeichert ist, identisch mit der Bank ist, in der die j-te Transaktion gespeichert ist, und die Zeile, in der die i-te Transaktion gespeichert ist, sich von der Zeile unterscheidet, in der die j-te Transaktion gespeichert ist, kann der Wert in der i-ten Zeile und der j-ten Zeile der Konflikttabelle den zweiten logischen Wert ‘1’ aufweisen (S240). Alternativ kann in einer Ausführungsform, wie in 5B dargestellt, der Elementwert, der den Wert enthält, der angibt, ob ein Verkehrskonflikt mit der j-ten Transaktion in der (i+1)-ten Zeile besteht, den zweiten logischen Wert ‘1’ aufweisen.
-
Wenn sich die Unterbank, in der die i-te Transaktion gespeichert ist, von der Unterbank unterscheidet, in der die j-te Transaktion gespeichert ist, oder wenn die Unterbank, in der die i-te Transaktion gespeichert ist, mit der Unterbank identisch ist, in der die j-te Transaktion gespeichert ist, sich der Strobe, in dem die i-te Transaktion gespeichert ist, von dem Strobe unterscheidet, in dem die j-te Transaktion gespeichert ist, sich die Bank, in der die i-te Transaktion gespeichert ist, von der Bank unterscheidet, in der die j-te Transaktion gespeichert ist, und die Zeile, in der die i-te Transaktion gespeichert ist, identisch mit der Zeile ist, in der die j-te Transaktion gespeichert ist, kann der Wert in der i-ten Zeile und in der j-ten Zeile der Konflikttabelle den ersten logischen Wert ‚0‘ aufweisen (S250). Alternativ kann in einer Ausführungsform, wie in 5B dargestellt, der Elementwert, der den Wert enthält, der angibt, ob ein Verkehrskonflikt mit der j-ten Transaktion in der (i+1)-ten Zeile besteht, den ersten logischen Wert ‚0‘ aufweisen.
-
7 ist ein Ablaufdiagramm eines Datenverarbeitungsverfahrens des Datenbusses 200, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Insbesondere veranschaulicht 7 ein Ablaufdiagramm des Datenverarbeitungsverfahrens unter Verwendung der Konflikttabelle, wie in 5B dargestellt. 7 wird zusammen mit dem Verweis auf 1 und 4 beschrieben.
-
Der Datenbus 200 oder die Transaktionsauswahlschaltung 220 wählt eine Transaktion aus, die der aktuellen Zeile entspricht, und Transaktionen, die einer Spalte entsprechen, in der die Elementwerte aller Zeilen die ersten logischen Werte sind (S310). Eine erste aktuelle Zeile kann eine Zeile sein, die der ersten Transaktion entspricht, und die aktuelle Zeile kann durch die Operation S350 aktualisiert werden. In einer Ausführungsform führt die Transaktionsauswahlschaltung 220 eine ODER-Operation an jedem aller Elemente in der aktuellen Zeile auf der Grundlage der Konflikttabelle durch, indem sie alle Elementwerte in einer Spalte, die die Elemente enthält, verwendet. Die Transaktionsauswahlschaltung 220 kann eine Transaktion auswählen, die einer Spalte entspricht, in der ein Ergebniswert der ODER-Operation der erste logische Wert ist.
-
Der Datenbus 200 oder die Transaktionsauswahlschaltung 220 gibt Transaktionen oder eine entsprechend der Operation S310 (S320) ausgewählte Transaktion aus. Beispielsweise kann die Transaktionsauswahlschaltung 220 die ausgewählte Transaktion TRS_SEL dem Speicherdatenpfad 240 zuführen, und der Speicherdatenpfad 240 kann die ausgewählte Transaktion TRS_SEL den mehreren Speicherbänken im Speicher 300 zuführen.
-
Der Datenbus 200 oder die Transaktionsauswahlschaltung 220 aktualisiert alle Elementwerte der Zeile, die den ausgewählten Transaktionen entspricht, auf den ersten logischen Wert ‚0‘ (S330). Beispielsweise kann die Konflikttabellen-Verwaltungsschaltung 222 in der Transaktionsauswahlschaltung 220 die Konflikttabelle aktualisieren, indem sie alle Elementwerte in den Zeilen, die jeder der ausgewählten Transaktionen in der Konflikttabelle entsprechen, auf den ersten logischen Wert ‚0‘ aktualisiert.
-
Der Datenbus 200 oder die Transaktionsauswahlschaltung 220 bestimmt, ob alle Elementwerte in der Konflikttabelle die ersten logischen Werte sind (S340). Wenn der Wert von mindestens einem Element in der Konflikttabelle nicht der erste logische Wert ist, wird die Operation S350 durchgeführt.
-
Wenn in einer Ausführungsform alle Elementwerte in der Konflikttabelle die ersten logischen Werte sind und die letzte Transaktion nicht dem Speicherdatenpfad 240 zugeführt wurde, kann die Transaktionsauswahlschaltung 220 die letzte Transaktion dem Speicherdatenpfad 240 zuführen. Wenn alle Elementwerte in der Konflikttabelle die ersten logischen Werte sind und die letzte Transaktion dem Speicherdatenpfad 240 zugeführt wurde, ist eine Übertragungsoperation der Vektordaten VEC durch den Datenbus 200 abgeschlossen.
-
Wenn mindestens ein Elementwert in der Konflikttabelle nicht der erste logische Wert ist, ändert der Datenbus 200 eine Zeile, die einer Transaktion unter nicht ausgewählten Transaktionen aus der Vielzahl der Transaktionen entspricht, in die aktuelle Zeile (S350). Beispielsweise kann die Transaktionsauswahlschaltung 220 nach der Operation S310 erneut eine Operation durchführen, indem sie die Zeile, die einer der nicht ausgewählten Transaktionen entspricht, in die aktuelle Zeile ändert.
-
Durch wiederholtes Durchführen der Operationen S310 bis S350 durch mindestens eine Schleife, bevor von der Operation S340 zur letzten Operation übergegangen wird, kann der Datenbus 200 die Vektordaten VEC im Speicher 300 speichern.
-
8A bis 8E sind Diagramme, die Prozesse eines Datenverarbeitungsverfahrens des Datenbusses 200 nach beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulichen. 8A bis 8E sind Diagramme zur beispielhaften Erläuterung einer Ausführungsform der Verarbeitung der Vektordaten VEC unter Verwendung einer Konflikttabelle nach beispielhaften Ausführungsformen, die unter Bezugnahme auf 5B beschrieben sind. Mit anderen Worten, obwohl eine Ausführungsform, in der die Vektordaten VEC acht Transaktionen enthalten, dargestellt wird, ist die Anzahl der in den Vektordaten VEC enthaltenen Transaktionen und die Frage, ob der Verkehrskonflikt zwischen Transaktionen auftritt, nicht darauf beschränkt. 8A bis 8E werden unter Bezugnahme auf 1 und 4 zusammen beschrieben.
-
Insbesondere ist 8A ein Diagramm zur Erläuterung des Datenverarbeitungsverfahrens, das den Operationen S310 und S320 in 7 entspricht. Unter Bezugnahme auf 8A kann die aktuelle Zeile eine Zeile sein, die der ersten Transaktion T1 entspricht. Mit anderen Worten, die aktuelle Zeile kann die zweite Zeile sein. Die Transaktionsauswahlschaltung 220 bestimmt für alle Elemente in der aktuellen Zeile, ob alle Elementwerte in der Spalte, die die entsprechenden Elemente enthält, die ersten logischen Werte von ‚0‘ aufweisen. Um diese Bestimmung vorzunehmen, kann die Transaktionsauswahlschaltung 220 eine logische ODER-Operation an der zweiten bis achten Spalte durchführen, indem sie alle Elementwerte in der entsprechenden Spalte verwendet. Die Transaktionsauswahlschaltung 220 kann als auszugebende Transaktion Transaktionen auswählen, die der Spalte entsprechen, in der der Ergebniswert der logischen ODER-Operation der erste logische Wert ‚0‘ ist, und die erste Transaktion T1, die die der aktuellen Zeile entsprechende Transaktion ist. Mit anderen Worten, die Transaktionsauswahlschaltung 220 kann die erste Transaktion T1, die zweite Transaktion T2, die dritte Transaktion T3, die sechste Transaktion T6 und die siebte Transaktion T7 als die ausgewählte Transaktion TRS_SEL auswählen und kann die ausgewählte Transaktion TRS_SEL ausgeben. Da z.B. in 8A die erste, zweite, dritte, sechste und siebte Spalte nur den ersten logischen Wert enthalten, werden ihre entsprechenden Transaktionen ausgegeben.
-
8B ist ein Diagramm zur Erläuterung des Datenverarbeitungsverfahrens, das insbesondere den Operationen S330 bis S350 in 7 entspricht. Unter Bezugnahme auf 8B aktualisiert die Transaktionsauswahlschaltung 220 alle Elementwerte der Zeile, die der ausgewählten Transaktion TRS_SEL entspricht, auf den ersten logischen Wert. Mit anderen Worten, die Transaktionsauswahlschaltung 220 kann den Wert des Elements, das den zweiten logischen Wert in der Zeile aufweist, die der ersten Transaktion T1 entspricht, auf den ersten logischen Wert aktualisieren, den Wert des Elements, das den zweiten logischen Wert in der Zeile aufweist, die der zweiten Transaktion T2 entspricht, auf den ersten logischen Wert aktualisieren und den Wert des Elements, das den zweiten logischen Wert in der Zeile aufweist, die der dritten Transaktion T3 entspricht, auf den ersten logischen Wert aktualisieren. Da es kein Element gibt, das den zweiten logischen Wert in der Zeile aufweist, die der sechsten Transaktion T6 und der siebten Transaktion T7 entspricht, ist eine Aktualisierung nicht erforderlich. Danach bestimmt die Transaktionsauswahlschaltung 220, ob alle Elementwerte in der aktualisierten Konflikttabelle die ersten logischen Werte aufweisen. Da jedoch ein Element mit dem zweiten logischen Wert in der vierten Transaktion T4 existiert, wird die Operation S350 zur Aktualisierung der aktuellen Zeile ausgeführt. Die Transaktionsauswahlschaltung 220 ändert die aktuelle Zeile in eine Zeile, die der vierten Transaktion T4 entspricht, bei der es sich um eine der nicht ausgewählten Transaktionen handelt.
-
8C ist ein Diagramm zur Erläuterung des Datenverarbeitungsverfahrens entsprechend den Operationen S310 und S320 in 7, die nach der Aktualisierung der Konflikttabelle durchgeführt werden. Unter Bezugnahme auf 8C kann die Transaktionsauswahlschaltung 220 für alle Elemente in der aktuellen Zeile bestimmen, ob alle Elementwerte in der Spalte, die die entsprechenden Elemente enthält, die ersten logischen Werte von ‚0‘ aufweisen. Um diese Bestimmung vorzunehmen, kann die Transaktionsauswahlschaltung 220 eine logische ODER-Operation an der fünften bis achten Spalte durchführen, indem sie alle Elementwerte in der entsprechenden Spalte verwendet. Die Transaktionsauswahlschaltung 220 kann als auszugebende Transaktionen diejenigen Transaktionen, die der Spalte entsprechen, in der der Ergebniswert der logischen ODER-Operation der erste logische Wert ‚0‘ unter den nicht ausgewählten Transaktionen ist und die vierte Transaktion T4, d. h. die Transaktion, die der aktuellen Zeile entspricht, auswählen. Mit anderen Worten, die Transaktionsauswahlschaltung 220 kann die vierte Transaktion T4 und die fünfte Transaktion T5 als die ausgewählten Transaktionen TRS_SEL auswählen und die ausgewählte Transaktion TRS_SEL ausgeben. Da die sechste Transaktion T6 und die siebte Transaktion T7 bereits, wie unter 8A beschrieben, ausgegeben wurden, werden sie nicht ausgewählt, auch wenn die Ergebniswerte der logischen ODER-Verknüpfung der Zeile, die der sechsten Transaktion T6 und der siebten Transaktion T7 entspricht, den ersten logischen Wert aufweisen.
-
8D ist ein Diagramm zur Erläuterung des Datenverarbeitungsverfahrens, das den Operationen S330 bis S350 in 7 entspricht, die nach Abschluss der Aktualisierung der Konflikttabelle durchgeführt werden. Unter Bezugnahme auf 8D kann die Transaktionsauswahlschaltung 220 alle Elementwerte der Zeile, die der ausgewählten Transaktion TRS_SEL entspricht, auf die ersten logischen Werte aktualisieren. Mit anderen Worten, die Transaktionsauswahlschaltung 220 kann den Wert des Elements, das den zweiten logischen Wert in der Zeile aufweist, die der vierten Transaktion T4 entspricht, auf den ersten logischen Wert aktualisieren. Da es kein Element gibt, das den zweiten logischen Wert in der Zeile aufweist, die der fünften Transaktion T5 entspricht, ist eine Aktualisierung nicht erforderlich. Danach kann die Transaktionsauswahlschaltung 220 bestimmen, ob alle Elementwerte in der aktualisierten Konflikttabelle die ersten logischen Werte aufweisen. Die Transaktionsauswahlschaltung 220 kann bestimmen, dass alle Elementwerte in der Konflikttabelle die ersten logischen Werte aufweisen.
-
8E ist ein Diagramm zur Erläuterung des Datenverarbeitungsverfahrens, das einer Operation nach der Operation S340 in 7 entspricht. Schließlich bestimmt die Transaktionsauswahlschaltung 220, ob die letzte Transaktion oder die achte Transaktion T8 ausgegeben worden ist. Wenn die achte Transaktion T8 über den Speicherdatenpfad 240 in den Speicher 300 ausgegeben worden ist, gibt die Transaktionsauswahlschaltung 220 nicht zusätzlich eine Transaktion aus. Wenn jedoch die achte Transaktion T8 nicht über den Speicherdatenpfad 240 in den Speicher 300 ausgegeben worden ist, kann die Transaktionsauswahlschaltung 220 die achte Transaktion T8 als die ausgewählte Transaktion TRS_SEL ausgeben.
-
9 veranschaulicht den Datenbus 200 und den Speicher 300 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Der Datenbus 200 und der Speicher 300 können dem Datenbus 200 bzw. dem Speicher 300 in 1 entsprechen, wobei doppelte Beschreibungen davon weggelassen werden.
-
Der Speicher 300 enthält eine Vielzahl von Speicherbänken, zum Beispiel die erste Speicherbank 310, die zweite Speicherbank 320, die dritte Speicherbank 330 und die vierte Speicherbank 340.
-
Der Speicherdatenpfad 240 enthält eine Vielzahl von Registern, und die Vielzahl von Registern ist in einer Baumstruktur miteinander verbunden. Der Speicherdatenpfad 240 enthält eine Vielzahl von Stufenregistern. Zum Beispiel empfängt ein erstes Register 241 als erstes Stufenregister die ausgewählte Transaktion TRS_SEL von der Transaktionsauswahlschaltung 220. Das erste Register 241 führt die ausgewählten Transaktion TRS_SEL Registern der zweiten Stufe entsprechend einer Speicherbank zu, in der mindestens eine in der ausgewählten Transaktion TRS_SEL enthaltene Transaktion gespeichert werden soll.
-
Die Register der zweiten Stufe enthalten ein erstes Register 242_1 der zweiten Stufe und ein zweites Register 242_2 der zweiten Stufe. Das erste Register 242_1 der zweiten Stufe und das zweite Register 242_2 der zweiten Stufe erhalten eine Transaktion vom ersten Register 241.
-
Die Register der dritten Stufe enthalten ein erstes Register 243_1 der dritten Stufe, ein zweites Register 243_2 der dritten Stufe und ein drittes Register 243_3 der dritten Stufe sowie ein viertes Register 243_4 der dritten Stufe. Das erste Register 243_1 der dritten Stufe und das zweite Register 243_2 der dritten Stufe erhalten eine Transaktion von dem ersten Register 242_1 der zweiten Stufe, und das dritte Register 243_3 der dritten Stufe und das vierte Register 243_4 der dritten Stufe erhalten eine Transaktion von dem zweiten Register 242_2 der zweiten Stufe.
-
Jedes der Register, die in den Registern der letzten Stufe oder den Registern der dritten Stufe enthalten sind, kann jeder der Speicherbänke entsprechen und Daten (oder eine Transaktion) über eine entsprechende Ausgabeendvorrichtung der entsprechenden Speicherbank zuführen. Zum Beispiel entspricht erstes Register 243_1 der dritten Stufe der ersten Speicherbank 310 und führt eine Transaktion der ersten Speicherbank 310 zu, das zweite Register 243_2 der dritten Stufe entspricht der zweiten Speicherbank 320 und führt eine Transaktion der zweiten Speicherbank 320 zu, das dritte Register 243_3 der dritten Stufe entspricht der dritten Speicherbank 330 und führt eine Transaktion der dritten Speicherbank 330 zu, und das vierte Register 243_4 der dritten Stufe entspricht der vierten Speicherbank 340 und führt eine Transaktion der vierten Speicherbank 340 zu.
-
10 veranschaulicht den Datenbus 200 und den Speicher 300 anhand eines Vergleichsbeispiels. Der Datenbus 200 entsprechend dem Vergleichsbeispiel enthält einen Multiplexer, der die Vektordaten VEC empfängt, die eine Vielzahl von Transaktionen enthalten, und Register auf einem Speicherpfad, die jeder der Speicherbänke entsprechen. Zum Beispiel ist es notwendig, drei Register (ein Register 11, ein Register 21 und ein Register 31) zu durchlaufen, um die erste Speicherbank 310 vom Multiplexer aus zu erreichen.
-
Jeder der Pfade, die den Speicherbänken entsprechen, erfordert eine Vielzahl von Registern, da die Möglichkeit besteht, dass ein Verkehrskonflikt zwischen einer Vielzahl von Transaktionen auftritt, die in den Vektordaten VEC enthalten sind. Wenn Transaktionen, bei denen der Verkehrskonflikt gleichzeitig auftritt, in einen Pfad eintreten, der einer Speicherbank entspricht, weil die entsprechenden Transaktionen der Speicherbank sequentiell zugeführt werden müssen, sind viele Register erforderlich.
-
Erneut bezugnehmend auf 9, kann im Datenbus 200 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts, weil die Transaktionsauswahlschaltung 220 eine Transaktion auswählt, bei der der Verkehrskonflikt unter der Vielzahl der Transaktionen auf der Grundlage der Konflikttabelle nicht auftritt, und die ausgewählte Transaktion TRS_SEL dem Speicherdatenpfad 240 zuführt, der Speicherdatenpfad 240 nach dem Vergleichsbeispiel unter Bezugnahme auf 10 mit einer geringeren Anzahl von Registern ausgelegt werden als der Datenbus 200. Mit anderen Worten, nach einer beispielhaften Ausführungsform des erfinderischen Konzepts können die Vektordaten VEC, die die Vielzahl von Transaktionen enthalten, unter Verwendung nur einer geringen Menge an Hardware-Ressourcen in den Speicher 300 übertragen werden. Darüber hinaus kann die Leistungsaufnahme des Datenbusses 200 durch die effiziente Übertragung der Vielzahl von Transaktionen in den Speicher 300 reduziert werden.
-
11 veranschaulicht den Datenbus 200 und den Speicher 300 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. Der Datenbus 200 und der Speicher 300 können dem Datenbus 200 bzw. dem Speicher 300 in 1 entsprechen, wobei doppelte Beschreibungen davon weggelassen werden.
-
Der Speicher 300 enthält eine Vielzahl von Speicherbänken, z.B. die erste Speicherbank 310, die zweite Speicherbank 320, die dritte Speicherbank 330, die vierte Speicherbank 340, eine fünfte Speicherbank 350, eine sechste Speicherbank 360, eine siebte Speicherbank 370 und eine achte Speicherbank 380.
-
Der Speicherdatenpfad 240 enthält eine Vielzahl von Registern, und die Vielzahl von Registern ist in einer Baumstruktur miteinander verbunden. Der Speicherdatenpfad 240 enthält eine Vielzahl von Stufenregistern. Zum Beispiel empfängt das erste Register 241 als ein Register einer ersten Stufe die ausgewählte Transaktion TRS_SEL von der Transaktionsauswahlschaltung 220. Das erste Register 241 führt die ausgewählte Transaktion TRS_SEL Registern der zweiten Stufe entsprechend einer Speicherbank zu, in der mindestens eine in der ausgewählten Transaktion TRS_SEL enthaltene Transaktion gespeichert werden soll.
-
Die Register der zweiten Stufe enthalten ein erstes Register 242_1 der zweiten Stufe und ein zweites Register 242_2 der zweiten Stufe. Das erste Register 242_1 der zweiten Stufe und das zweite Register 242_2 der zweiten Stufe erhalten eine Transaktion von dem ersten Register 241.
-
Die Register der dritten Stufe enthalten ein erstes Register 243_1 der dritten Stufe, ein zweites Register 243_2 der dritten Stufe, ein drittes Register 243_3 der dritten Stufe und ein viertes Register 243_4 der dritten Stufe. Das erste Register 243_1 der dritten Stufe und das zweite Register 243_2 der dritten Stufe erhalten eine Transaktion von dem ersten Register 242_1 der zweiten Stufe, und das dritte Register 243_3 der dritten Stufe und das vierte Register 243_4 der dritten Stufe erhalten eine Transaktion von dem zweiten Register 242_2 der zweiten Stufe.
-
Die Register der vierten Stufe enthalten ein erstes Register 244_1 der vierten Stufe, ein zweites Register 244_2 der vierten Stufe, ein drittes Register 244_3 der vierten Stufe, ein viertes Register 244_4 der vierten Stufe, ein fünftes Register 244_5 der vierten Stufe, ein sechstes Register 244_6 der vierten Stufe, ein siebtes Register 244_7 der vierten Stufe und ein achtes Register 244_8 der vierten Stufe. Das erste Register 244_1 der vierten Stufe und das zweite Register 244_2 der vierten Stufe erhalten eine Transaktion vom erstes Register 243_1 der dritten Stufe, das dritte Register 244_3 der vierten Stufe und das vierte Register 244_4 der vierten Stufe erhalten eine Transaktion vom zweiten Register 243_2 der dritten Stufe, das fünfte Register 244_5 der vierten Stufe und das sechste Register 244_6 der vierten Stufe erhalten eine Transaktion vom dritten Register 243_3 der dritten Stufe, und das siebte Register 244_7 der vierten Stufe und das achte Register 244_8 der vierten Stufe erhalten eine Transaktion vom vierten Register 243_4 der dritten Stufe.
-
Jedes der Register, die in den Registern der letzten Stufe oder den Registern der vierten Stufe enthalten sind, kann jeder der Speicherbänke entsprechen und Daten (oder eine Transaktion) der entsprechenden Speicherbank zuführen. Beispielsweise kann das erste Register 244_1 der vierten Stufe der ersten Speicherbank 310 entsprechen und eine Transaktion der ersten Speicherbank 310 zuführen, das zweite Register 244_2 der vierten Stufe der zweiten Speicherbank 320 entsprechen und eine Transaktion der zweiten Speicherbank 320 zuführen, das dritte Register 244_3 der vierten Stufe der dritten Speicherbank 330 entsprechen und eine Transaktion der dritten Speicherbank 330 zuführen, das vierte Register 244_4 der vierten Stufe kann der vierten Speicherbank 340 entsprechen und eine Transaktion der vierten Speicherbank 340 zuführen, das fünfte Register 244_5 der vierten Stufe kann der fünften Speicherbank 350 entsprechen und eine Transaktion der fünften Speicherbank 350 zuführen, das sechste Register 244_6 der vierten Stufe kann der sechsten Speicherbank 360 entsprechen und eine Transaktion der sechsten Speicherbank 360 zuführen, das siebte Register 244_7 der vierten Stufe kann der siebten Speicherbank 370 entsprechen und eine Transaktion der siebten Speicherbank 370 zuführen, und das achte Register 244_8 der vierten Stufe kann der achten Speicherbank 380 entsprechen und die Transaktion der achten Speicherbank 380 zuführen.
-
12 veranschaulicht den Datenbus 200 und den Speicher 300 nach einer beispielhaften Ausführungsform des erfinderischen Konzepts. 12 veranschaulicht eine Ausführungsform des Datenbusses 200, der erste Vektordaten VEC1 über einen ersten Eingabeanschluss 211 und zweite Vektordaten VEC2 über einen zweiten Eingabeanschluss 212 empfängt.
-
Der Datenbus 200 enthält die Transaktionsauswahlschaltung 220, einen ersten Multiplexer 231, einen zweiten Multiplexer 232 und den Speicherdatenpfad 240.
-
Der Datenbus 200 empfängt die ersten Vektordaten VEC1, die eine Vielzahl von ersten Transaktionen enthalten, über den ersten Eingabeanschluss 211 und empfängt die zweiten Vektordaten VEC2, die eine Vielzahl von zweiten Transaktionen enthalten, über den zweiten Eingabeanschluss 212.
-
Die Transaktionsauswahlschaltung 220 gibt eine erste Auswahltransaktion TRS_SEL_1 aus, in der der Verkehrskonflikt unter einer Vielzahl von ersten Transaktionen nicht auftritt, die in den ersten Vektordaten VEC1 enthalten sind, und gibt eine zweite Auswahltransaktion TRS_SEL_2 aus, in der der Verkehrskonflikt unter einer Vielzahl von zweiten Transaktionen nicht auftritt, die in den zweiten Vektordaten VEC2 enthalten sind. Die Auswahl und Ausgabe der ersten Auswahltransaktion TRS_SEL_1 und die Auswahl und Ausgabe der zweiten Auswahltransaktion TRS_SEL_2 der Transaktionsauswahlschaltung 220 kann im Wesentlichen auf die gleiche Weise wie in den mit Bezug auf 1 bis 11 beschriebenen Ausführungsformen durchgeführt werden. Die Transaktionsauswahlschaltung 220 führt die erste Auswahltransaktion TRS_SEL_1 dem ersten Multiplexer 231 und die zweite Auswahltransaktion TRS_SEL_2 dem zweiten Multiplexer 232 zu.
-
Der Speicher 300 enthält die erste Speicherbank 310, die zweite Speicherbank 320, die dritte Speicherbank 330 und die vierte Speicherbank 340. Der Speicherdatenpfad 240 enthält die ersten Register 241_1 der ersten Stufe, die zweiten Register 241_2 der ersten Stufe, das erste Register 242_1 der zweiten Stufe, das zweite Register 242_2 der zweiten Stufe, das erste Register 243_1 der dritten Stufe, das zweite Register 243_2 der dritten Stufe, das dritte Register 243_3 der dritten Stufe und das vierte Register 243_4 der dritten Stufe.
-
Der erste Multiplexer 231 führt die erste Auswahltransaktion TRS_SEL_1, die von der Transaktionsauswahlschaltung 220 zugeführt wird, dem ersten Register 241_1 der ersten Stufe oder dem zweiten Register 241_2 der ersten Stufe zu. Dem ersten Multiplexer 231 kann ein erstes Steuersignal zugeführt werden, das dem ersten Multiplexer 231 mitteilt, welches von dem ersten Register 241_1 der ersten Stufe und dem zweiten Register 241_2 der ersten Stufe die erste Auswahltransaktion TRS_SEL_1 ausgeben soll.
-
Der zweite Multiplexer 232 führt die zweite Auswahltransaktion TRS_SEL_2 zu, die von der Transaktionsauswahlschaltung 220 dem ersten Register 241_1 der ersten Stufe oder dem zweiten Register 241_2 der ersten Stufe zuführt wird. Dem ersten Multiplexer 231 kann ein zweites Steuersignal zugeführt werden, das dem zweiten Multiplexer 232 mitteilt, welches von dem erste Register 241_1 der ersten Stufe oder dem zweiten Register 241_2 der ersten Stufe die zweite Auswahltransaktion TRS_SEL_2 ausgeben soll.
-
Das erste Register 241_1 der ersten Stufe kann eine vom ersten Multiplexer 231 zugeführte Transaktion und/oder eine vom zweiten Multiplexer 232 zugeführte Transaktion vorübergehend speichern und die Transaktion dem ersten Register 242_1 der zweiten Stufe zuführen.
-
Das zweite Register 241_2 der ersten Stufe kann eine vom ersten Multiplexer 231 zugeführte Transaktion und/oder eine vom zweiten Multiplexer 232 zugeführte Transaktion vorübergehend speichern und die Transaktion dem zweiten Register 242_2 der zweiten Stufe zuführen.
-
Das erste Register 243_1 der dritten Stufe und das zweite Register 243_2 der dritten Stufe erhalten eine Transaktion vom ersten Register 242_1 der zweiten Stufe.
-
Das dritte Register 243 3 der dritten Stufe und das vierte Register 243_4 der dritten Stufe erhalten eine Transaktion vom zweiten Register 242_2 der zweiten Stufe.
-
Jedes der Register, die in den Registern der letzten Stufe oder den Registern der dritten Stufe enthalten sind, kann jeder der Speicherbänke entsprechen und Daten (oder eine Transaktion) der entsprechenden Speicherbank zufuhren. Zum Beispiel kann das erste Register 243_1 der dritten Stufe der ersten Speicherbank 310 entsprechen und eine Transaktion der ersten Speicherbank 310 zuführen, das zweite Register 243_2 der dritten Stufe kann der zweiten Speicherbank 320 entsprechen und eine Transaktion der zweiten Speicherbank 320 zuführen, das dritte Register 243_3 der dritten Stufe kann der dritten Speicherbank 330 entsprechen und eine Transaktion der dritten Speicherbank 330 zuführen, und das vierte Register der dritten Stufe 243 4 kann der vierten Speicherbank 340 entsprechen und eine Transaktion der vierten Speicherbank 340 zuführen.
-
Während das erfinderische Konzept insbesondere unter Bezugnahme auf Ausführungsformen davon gezeigt und beschrieben wurde, wird davon ausgegangen, dass darin verschiedene Änderungen in Form und Einzelheiten vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen.
-
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
-