DE102020129051A1 - Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung - Google Patents

Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung Download PDF

Info

Publication number
DE102020129051A1
DE102020129051A1 DE102020129051.9A DE102020129051A DE102020129051A1 DE 102020129051 A1 DE102020129051 A1 DE 102020129051A1 DE 102020129051 A DE102020129051 A DE 102020129051A DE 102020129051 A1 DE102020129051 A1 DE 102020129051A1
Authority
DE
Germany
Prior art keywords
transaction
conflict
transactions
data bus
row
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
DE102020129051.9A
Other languages
English (en)
Inventor
Keongho Lee
Youngseh Kim
Seungbeom Lee
Wonjin KIM
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102020129051A1 publication Critical patent/DE102020129051A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

Ein Datenbus enthält: 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.

Description

  • 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
    • KR 1020200028654 [0001]

Claims (20)

  1. Datenbus, umfassend: 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 umfasst 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.
  2. Datenbus nach Anspruch 1, wobei die Transaktionsauswahlschaltung eine Konflikttabelle erzeugt, die Informationen darüber enthält, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, und die ausgewählte mindestens eine Transaktion auf der Grundlage der Konflikttabelle auswählt.
  3. Datenbus nach Anspruch 2, wobei die Transaktionsauswahlschaltung nach Ausgabe mindestens einer ersten Transaktion die Konflikttabelle auf der Grundlage von Informationen über die mindestens eine erste Transaktion aktualisiert und durch Auswahl mindestens einer zweiten Transaktion auf der Grundlage der Konflikttabelle die ausgewählte mindestens eine zweite Transaktion ausgibt.
  4. Datenbus nach Anspruch 1, wobei die Transaktionsauswahlschaltung umfasst: eine Konflikttabellen-Verwaltungsschaltung, die eingerichtet ist, um eine Konflikttabelle zu erzeugen, die Informationen darüber enthält, ob es einen Verkehrskonflikt unter der Vielzahl von Transaktionen gibt, die Konflikttabelle zu aktualisieren und auf der Grundlage der Konflikttabelle ausgewählte Informationen auszugeben, die Informationen über die ausgewählte mindestens eine Transaktion enthalten; und eine Transaktionsausgabeschaltung, die eingerichtet ist, um die ausgewählte mindestens eine Transaktion aus der Vielzahl von Transaktionen auf der Grundlage der ausgewählten Informationen auszugeben, die von der Konflikttabellen-Verwaltungsschaltung zugeführt werden.
  5. Datenbus nach Anspruch 1, wobei die Transaktionsauswahlschaltung die ausgewählte mindestens eine Transaktion auf der Grundlage einer Konflikttabelle ausgibt, wobei die Konflikttabelle eine quadratische Matrix enthält, in der eine Zeilenlänge und eine Spaltenlänge davon einer Anzahl von Transaktionen entsprechen und ein Elementwert, der einer i-ten Zeile und einer j-ten Spalte entspricht, einen Wert enthält, der anzeigt, ob es einen Verkehrskonflikt zwischen der i-ten Transaktion und der j-ten Transaktion gibt, und wobei i und j natürliche Zahlen >= 1 und <= die Anzahl der Transaktionen sind.
  6. Datenbus nach Anspruch 1, wobei die Vielzahl der Transaktionen eine erste Transaktion bis zu einer N-ten Transaktion enthält, und wobei die Transaktionsauswahlschaltung die ausgewählte mindestens eine Transaktion auf der Grundlage einer Konflikttabelle ausgibt, wobei die Konflikttabelle eine erste Zeile bis zu einer N-ten Zeile enthält, alle Elementwerte der ersten Zeile mit ersten logischen Werten aufgefüllt sind, eine (i+1)-te Zeile Werte enthält, die anzeigen, ob es einen Verkehrskonflikt zwischen einer i-ten Transaktion und einer (i+1)-ten Transaktion bis zu der N-ten Transaktion gibt, und die N-te Zeile einen Wert enthält, der anzeigt, ob es einen Verkehrskonflikt zwischen der (N-1)-ten Transaktion und der N-ten Transaktion gibt, wobei N eine natürliche Zahl ist, wobei i eine natürliche Zahl >=1 und (N-2) oder weniger ist.
  7. Datenbus nach Anspruch 6, wobei ein Wert, der angibt, ob ein Verkehrskonflikt zwischen einer n-ten Transaktion und einer m-ten Transaktion, die in der Konflikttabelle enthalten sind, besteht, einen zweiten logischen Wert aufweist, wenn eine Unterbank, die die n-te Transaktion speichert, identisch mit einer Unterbank ist, die die m-te Transaktion speichert, und ein Strobe, der die n-te Transaktion speichert, identisch mit einem Strobe ist, der die m-te Transaktion speichert, oder wenn die Unterbank, die die n-te Transaktion speichert, identisch mit der Unterbank ist, die die m-te Transaktion speichert, und der Strobe, der die n-te Transaktion speichert, sich von dem Strobe unterscheidet, der die m-te Transaktion speichert, eine Bank, die die n-te Transaktion speichert, identisch mit einer Bank ist, die die m-te Transaktion speichert, und eine Zeile, die die n-te Transaktion speichert, sich von einer Zeile unterscheidet, die die m-te Transaktion speichert, wobei n und m natürliche Zahlen sind.
  8. Datenbus nach Anspruch 6, wobei die Transaktionsauswahlschaltung mindestens eine Transaktion, die einer Spalte entspricht, in der Elementwerte aller Zeilen in der Konflikttabelle den ersten logischen Wert angeben, und eine Transaktion, die einer aktuellen Zeile entspricht, als die ausgewählte mindestens eine Transaktion auswählt, und die ausgewählte mindestens eine Transaktion ausgibt.
  9. Datenbus nach Anspruch 8, wobei die Transaktionsauswahlschaltung eine logische ODER-Operation an mindestens einer Spalte in der Konflikttabelle durchführt, indem sie alle Elementwerte verwendet, die in der entsprechenden Spalte enthalten sind, und mindestens eine Transaktion, die einer Spalte entspricht, in der ein Ergebniswert der Durchführung der logischen ODER-Operation den ersten logischen Wert angibt, als Teil der ausgewählten mindestens einen Transaktion auswählt.
  10. Datenbus nach Anspruch 8, wobei die Transaktionsauswahlschaltung alle Elementwerte einer Zeile, die der ausgewählten mindestens einen Transaktion in der Konflikttabelle entspricht, auf den ersten logischen Wert aktualisiert und als Reaktion auf diesen mindestens einen Elementwert in der aktualisierten Konflikttabelle mit dem zweiten logischen Wert die aktuelle Zeile in eine Zeile ändert, die einer Transaktion unter der Vielzahl von Transaktionen entspricht, die nicht ausgewählt ist.
  11. Datenbus nach Anspruch 1, wobei der Speicherdatenpfad eine Vielzahl von Stufen enthält, wobei die Stufen eine Vielzahl von Registern umfassen, die miteinander in einer Baumstruktur verbunden sind, und der Speicherdatenpfad die ausgewählte mindestens eine Transaktion über die Register entsprechend einer letzten Stufe unter der Vielzahl von Stufen und über eine Vielzahl von Ausgangsanschlüssen ausgibt.
  12. Datenverarbeitungsverfahren eines Datenbusses, wobei das Verfahren umfasst: Empfangen von Vektordaten, die eine Vielzahl von Transaktionen enthalten, über den Datenbus; Erhalten über den Datenbus einer Konflikttabelle, die Informationen 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 aus den Transaktionen, bei denen unter der Vielzahl von Transaktionen kein Verkehrskonflikt auftritt; und Ausgeben der ausgewählten mindestens einen Transaktion über den Datenbus.
  13. Verfahren nach Anspruch 12, ferner umfassend: Aktualisieren der Konflikttabelle auf der Grundlage von Informationen über die ausgewählte mindestens eine Transaktion; und Ausgeben mindestens einer Transaktion unter der Vielzahl der Transaktionen, die auf der Grundlage der aktualisierten Konflikttabelle nicht ausgewählt ist.
  14. Verfahren nach Anspruch 12, wobei die Vielzahl der Transaktionen eine erste Transaktion bis zu einer N-ten Transaktion umfasst, wobei die Konflikttabelle eine erste Zeile bis zu einer N-ten Zeile enthält, alle Elementwerte der ersten Zeile mit ersten logischen Werten aufgefüllt sind, eine (i+1)-te Zeile Werte enthält, die anzeigen, ob es einen Verkehrskonflikt zwischen einer i-ten Transaktion und einer (i+1)-ten Transaktion bis zu der N-ten Transaktion gibt, und die N-te Zeile einen Wert umfasst, der anzeigt, ob es einen Verkehrskonflikt zwischen der (N-1)-ten Transaktion und der N-ten Transaktion gibt, wobei N eine natürliche Zahl ist, wobei i eine natürliche Zahl ist mit 1 ≤ i ≤ (N-2).
  15. Verfahren nach Anspruch 14, wobei das Erhalten der Konflikttabelle die Bestimmung einschließt, ob es einen Verkehrskonflikt zwischen einer n-ten Transaktion und einer m-ten Transaktion gibt, wobei die Bestimmung, ob ein Verkehrskonflikt vorliegt, enthält: Bestimmen, dass es einen Verkehrskonflikt zwischen der n-ten Transaktion und der m-ten Transaktion gibt, als Reaktion auf die Bestimmung, dass eine Unterbank, die die n-te Transaktion speichert, identisch mit einer Unterbank ist, die die m-te Transaktion speichert, und Bestimmen, dass ein Strobe, der die n-te Transaktion speichert, identisch mit einem Strobe ist, der die m-te Transaktion speichert; und Bestimmen, dass es einen Verkehrskonflikt zwischen der n-ten Transaktion und der m-ten Transaktion gibt, als Reaktion auf die Bestimmung, dass eine Unterbank, die die n-te Transaktion speichert, identisch mit einer Unterbank ist, die die m-te Transaktion speichert, Bestimmen, dass ein Strobe, der die n-te Transaktion speichert, nicht identisch mit einem Strobe ist, der die m-te Transaktion speichert, Bestimmen, dass eine Bank, die die n-te Transaktion speichert, identisch mit einer Bank ist, die die m-te Transaktion speichert, und Bestimmen, dass eine Zeile, die die n-te Transaktion speichert, identisch mit einer Zeile ist, die die m-te Transaktion speichert, wobei n und m natürliche Zahlen sind.
  16. Verfahren nach Anspruch 14, wobei das Auswählen der mindestens einen Transaktion das Auswählen mindestens einer Transaktion, die einer Spalte entspricht, in der Elementwerte aller Zeilen in der Konflikttabelle den ersten logischen Wert anzeigen, und einer Transaktion, die einer aktuellen Zeile entspricht, als die ausgewählte mindestens eine Transaktion umfasst.
  17. Verfahren nach Anspruch 16, wobei die Auswahl der mindestens einen Transaktion enthält: Durchführen einer logischen ODER-Operation an mindestens einer Zeile in der Konflikttabelle unter Verwendung aller Elementwerte, die in einer entsprechenden Zeile enthalten sind; und Auswählen mindestens einer Transaktion, bei der ein Ergebniswert der Durchführung der logischen ODER-Operation einer Zeile entspricht, die den ersten logischen Wert angibt, als Teil der ausgewählten mindestens einen Transaktion.
  18. Verfahren nach Anspruch 16, ferner umfassend: Aktualisieren aller Elementwerte in einer Zeile, die der ausgewählten mindestens einen Transaktion in der Konflikttabelle entspricht, auf den ersten logischen Wert; und als Reaktion auf die Bestimmung, dass mindestens ein Elementwert in der aktualisierten Konflikttabelle einen zweiten logischen Wert aufweist, Ändern einer aktuellen Zeile in eine Zeile, die einer Transaktion unter einer Vielzahl von Transaktionen entspricht, die nicht ausgewählt ist.
  19. Datenverarbeitungsvorrichtung, umfassend: einen Prozessor, der eingerichtet ist, um Vektordaten, die eine Vielzahl von Transaktionen enthalten, auszugeben; 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 auf tritt, und die ausgewählte mindestens eine Transaktion der Vielzahl von Speicherbänken über einen Speicherdatenpfad mit einer Baumstruktur zuzuführen.
  20. Datenbus nach Anspruch 19, wobei der Datenbus eine Konflikttabelle erhält, die Informationen darüber enthält, ob es unter der Vielzahl von Transaktionen einen Verkehrskonflikt gibt, auf der Grundlage der Konflikttabelle mindestens eine erste Transaktion ausgibt, bei der unter der Vielzahl von Transaktionen kein Verkehrskonflikt auftritt, und nach Aktualisierung der Konflikttabelle auf der Grundlage von Informationen über die mindestens eine erste Transaktion mindestens eine zweite Transaktion ausgibt, bei der auf der Grundlage der aktualisierten Konflikttabelle unter der Vielzahl von Transaktionen kein Verkehrskonflikt auftritt.
DE102020129051.9A 2020-03-06 2020-11-04 Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung Pending DE102020129051A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0028654 2020-03-06
KR1020200028654A KR20210112949A (ko) 2020-03-06 2020-03-06 데이터 버스, 그것의 데이터 처리 방법 및 데이터 처리 장치

Publications (1)

Publication Number Publication Date
DE102020129051A1 true DE102020129051A1 (de) 2021-09-09

Family

ID=77388759

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020129051.9A Pending DE102020129051A1 (de) 2020-03-06 2020-11-04 Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung

Country Status (4)

Country Link
US (1) US11809339B2 (de)
KR (1) KR20210112949A (de)
CN (1) CN113360253A (de)
DE (1) DE102020129051A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200028654A (ko) 2018-09-07 2020-03-17 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282583A (en) * 1977-06-10 1981-08-04 Dataproducts Corporation Microprogrammable processor control printer system
US4471169A (en) * 1977-12-27 1984-09-11 Stromberg-Carlson Corporation Arrangement of interactive telephone switching processors and associated port data storage means
US4443663A (en) * 1977-12-27 1984-04-17 Stromberg-Carlson Corporation Filtering of port data in a switching system employing interactive processors
US4555595A (en) * 1977-12-27 1985-11-26 Stromberg-Carlson Corp. Sampled port data switching system employing interactive processors
US6185629B1 (en) * 1994-03-08 2001-02-06 Texas Instruments Incorporated Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US7043673B1 (en) * 2001-08-03 2006-05-09 Netlogic Microsystems, Inc. Content addressable memory with priority-biased error detection sequencing
US20130212353A1 (en) 2002-02-04 2013-08-15 Tibet MIMAR System for implementing vector look-up table operations in a SIMD processor
US7146366B2 (en) * 2002-09-13 2006-12-05 Netezza Corporation Distributed concurrency control using serialization ordering
US7146133B2 (en) * 2003-06-19 2006-12-05 Microsoft Corporation Wireless transmission interference avoidance on a device capable of carrying out wireless network communications
US7610057B2 (en) * 2004-04-23 2009-10-27 Microsoft Corporation Selecting a wireless networking technology on a device capable of carrying out wireless network communications via multiple wireless technologies
US8688957B2 (en) 2010-12-21 2014-04-01 Intel Corporation Mechanism for conflict detection using SIMD
US20130185540A1 (en) 2011-07-14 2013-07-18 Texas Instruments Incorporated Processor with multi-level looping vector coprocessor
US8868517B2 (en) 2012-03-29 2014-10-21 Lsi Corporation Scatter gather list for data integrity
US9626333B2 (en) 2012-06-02 2017-04-18 Intel Corporation Scatter using index array and finite state machine
US20150236959A1 (en) * 2012-07-23 2015-08-20 F5 Networks, Inc. Autonomously adaptive flow acceleration based on load feedback
US9203771B1 (en) * 2012-07-23 2015-12-01 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
US20210001810A1 (en) * 2019-07-02 2021-01-07 Duelight Llc System, method, and computer program for enabling operation based on user authorization
WO2014144391A1 (en) * 2013-03-15 2014-09-18 Rambus Inc. Threshold-monitoring, conditional-reset image sensor
EP3005125A4 (de) 2013-05-31 2017-02-15 Intel Corporation Kohärenter cache-speicher für ein streu-/sammelsystem
US9552205B2 (en) 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
US9817762B2 (en) 2014-05-20 2017-11-14 Oracle International Corporation Facilitating efficient prefetching for scatter/gather operations
KR102357863B1 (ko) 2014-12-15 2022-02-04 삼성전자주식회사 메모리 접근 방법 및 장치
JP6467935B2 (ja) 2015-01-20 2019-02-13 富士通株式会社 Dma制御装置、マイクロコントローラおよびdma制御方法
US20160350010A1 (en) 2015-05-31 2016-12-01 Vmware, Inc. Providing block size compatibility with a storage filter
US9965187B2 (en) 2016-02-18 2018-05-08 Lawrence Livermore National Security, Llc Near-memory data reorganization engine
US20170371657A1 (en) 2016-06-24 2017-12-28 Qualcomm Incorporated Scatter to gather operation
US10268580B2 (en) 2016-09-30 2019-04-23 Intel Corporation Processors and methods for managing cache tiering with gather-scatter vector semantics
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
US11494787B2 (en) * 2020-06-30 2022-11-08 Optum, Inc. Graph convolutional anomaly detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200028654A (ko) 2018-09-07 2020-03-17 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Also Published As

Publication number Publication date
US11809339B2 (en) 2023-11-07
KR20210112949A (ko) 2021-09-15
US20210279190A1 (en) 2021-09-09
CN113360253A (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
DE3750492T2 (de) Datenbanksystem für Parallelprozessor.
DE3804938C2 (de) Bildverarbeitungseinrichtung
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE3688640T2 (de) Suchgerät.
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE69218941T2 (de) Neuronale netzwerk architektur
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE2221442A1 (de) Assoziativspeicher
DE202014011350U1 (de) FFT- Beschleuniger
DE19528760A1 (de) Bildverarbeitende Schaltung eines hohen Integrationsgrads
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE69025782T2 (de) Registerbankschaltung
DE112015006089T5 (de) A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung
DE2121490A1 (de) Orthogonaler Datenspeicher
DE102020106357A1 (de) Speichereinrichtung und verfahren mit anweisungsringspeicherwarteschlange
DE112018004972T5 (de) Operationsschaltung und operationsverfahren
DE102020129051A1 (de) Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung
EP0009625A2 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
DE10105627A1 (de) Mehrfachanschlussspeichereinrichtung
DE1960278A1 (de) Pufferung von Steuerwort- und Datenwort-Systemspeicheruebertragungen in einem UEbertragungssystem-Steuerspeicher
DE69022315T2 (de) Video-Speicher mit Schreibmaskierung eines vektoriellen oder direkten Eingangs.
DE1549454A1 (de) Einrichtung zur abgerundeten Anzeige einer gespeicherten Zahl
DE1424746A1 (de) Datenverarbeitungsanlage
DE3587612T2 (de) Suchverfahren für Assoziationsmatrix.

Legal Events

Date Code Title Description
R012 Request for examination validly filed