DE102020107867A1 - Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür - Google Patents

Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür Download PDF

Info

Publication number
DE102020107867A1
DE102020107867A1 DE102020107867.6A DE102020107867A DE102020107867A1 DE 102020107867 A1 DE102020107867 A1 DE 102020107867A1 DE 102020107867 A DE102020107867 A DE 102020107867A DE 102020107867 A1 DE102020107867 A1 DE 102020107867A1
Authority
DE
Germany
Prior art keywords
data
array
group
speed mode
memory
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
DE102020107867.6A
Other languages
English (en)
Inventor
Ji Hoon NAM
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of DE102020107867A1 publication Critical patent/DE102020107867A1/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Neurology (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Power Sources (AREA)

Abstract

Ein Datenverarbeitungssystem kann ein Host-Gerät einschließen, das konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells oder einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus eingestellt wird; und eine Datenspeichervorrichtung, den Beschleuniger umfassend, und konfiguriert, um eine Struktur eines Processing Element (PE) - Arrays zu ändern, durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Die vorliegende Anmeldung beansprucht die Priorität gemäß 35 U.S.C. § 119(a) der koreanischen Patentanmeldung Nr. 10-2019-0082000 , eingereicht am 8. Juli 2019 beim koreanischen Amt für geistiges Eigentum und in diese Anmeldung durch Verweis in ihrer Gesamtheit aufgenommen.
  • HINTERGRUND
  • Technisches Anwendungsgebiet
  • Verschiedene Ausführungsformen beziehen sich auf eine Datenspeichervorrichtung, ein Datenverarbeitungssystem und eine Beschleunigungsvorrichtung dafür.
  • Verwandter Stand der Technik
  • Ein Beschleuniger für künstliche Intelligenz (Kl) kann eine Anwendung sein, die in der Lage ist, die Leistung einer verwandten Operation zu maximieren und gleichzeitig die Belastung eines Hosts bei der Durchführung einer Operation und der Nutzung von Ressourcen zu reduzieren, indem Anwendungen wie Multi-Layer-Perception (MLP), Long Short Term Memory (LSTM) und ein Convolutional Neural Network (CNN), die in Software verarbeitet wurden, mit Hilfe von Hardware implementiert werden.
  • Der Kl-Beschleuniger kann einen hohen Stromverbrauch aufweisen. In diesem Fall kann die im Kl-Beschleuniger genutzte Leistung in Rechenleistung und Speicherleistung aufgeteilt werden. Im Allgemeinen kann die Speicherleistung mit zunehmender Speicherbandbreite zunehmen.
  • Bei Deep Learning können die wichtigsten Anwendungen je nach Netzwerkmodell bestimmt werden. So kann z.B. das CNN eine Anwendung sein, die relativ viele Rechner erfordert, und jede der MLP- und LSTM-Anwendungen kann eine Anwendung sein, die eine große Speicherbandbreite benötigt.
  • ZUSAMMENFASSUNG
  • Verschiedene Ausführungsformen sind auf eine Beschleunigungsvorrichtung zum flexiblen Anpassen von Speicher- und Rechenleistung in Abhängigkeit von einer Speicherbandbreite sowie ein Datenverarbeitungssystem, welches die Beschleunigungsvorrichtung einschließt, gerichtet.
  • In einer Ausführungsform enthält ein Datenverarbeitungssystem ein Host-Gerät, das konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells oder einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst wird; und eine Datenspeichervorrichtung, die den Beschleuniger umfasst, der konfiguriert ist, um eine Struktur von einem Processing Element (PE) - Array zu ändern durch Steuerung der Übertragungswege von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
  • In einer Ausführungsform enthält eine Beschleunigungsvorrichtung einen Beschleuniger, der konfiguriert ist, um eine Struktur einer Processing Element (PE) - Array zu ändern durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage eines Geschwindigkeitsmodus einer Speicherbandbreite.
  • Der Beschleuniger kann ein PE-Array mit einer ersten PE-Gruppe und einer zweiten PE-Gruppe umfassen, wobei jede der ersten und zweiten PE-Gruppen eine Mehrzahl von in ersten und zweiten Richtungen angeordneten PEs einschließt; einen adaptiven PE-Array-Block, der zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array angeordnet ist und so konfiguriert ist, um selektiv erste Eingangsdaten einer ersten Datengruppe oder erste Eingangsdaten einer zweiten Datengruppe in die zweite PE-Gruppe in der ersten Richtung innerhalb des PE-Arrays einzugeben, und um selektiv zweite Eingangsdaten einer dritten Datengruppe oder zweite Eingangsdaten einer vierten Datengruppe in die zweite PE-Gruppe in der zweiten Richtung innerhalb des PE-Arrays einzugeben.
  • In einer Ausführungsform schließt eine Datenspeichervorrichtung eine Zentraleinheit (CPU) ein, die so konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells, einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst werden; und einen Beschleuniger, der so konfiguriert ist, um eine Struktur eines Processing Element (PE) - Arrays zu ändern durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
  • Figurenliste
    • 1 illustriert eine Verbindungsbeziehung zwischen einem Datenverarbeitungssystem und einem externen Server gemäß einer Ausführungsform.
    • 2 illustriert ein Datenverarbeitungssystem gemäß einer Ausführungsform.
    • 3 illustriert ein Verfahren zum Bestimmen eines Geschwindigkeitsmodus in einem Host-Gerät gemäß einer Ausführungsform.
    • 4 illustriert ein Gesamtleistungsbudget gemäß einer Ausführungsform.
    • 5 A und 5 B illustriert das Einstellen von Speicherleistung und Rechenleistung gemäß einer Ausführungsform.
    • 6 illustriert eine Datenspeichervorrichtung gemäß einer Ausführungsform.
    • 7 illustriert einen Beschleuniger gemäß einer Ausführungsform.
    • 8 illustriert ein PE-Array gemäß einer Ausführungsform.
    • 9 illustriert ein PE- Array gemäß einer anderen Ausführungsform.
    • 10 illustriert eine PE-Array-Struktur gemäß einer Ausführungsform.
    • 11 illustriert eine Verbindungsbeziehung zwischen einem Speicher-Controller und einem Speicher-Die gemäß einer Ausführungsform.
    • 12 illustriert eine Leistungsveränderung in Abhängigkeit von einem Geschwindigkeitsmodus.
    • 13 illustriert eine Beschleunigungsvorrichtung gemäß einer Ausführungsform.
    • 14 illustriert einen Datenspeicher gemäß einer anderen Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Nachfolgend werden eine Datenspeichervorrichtung, ein Datenverarbeitungssystem und eine Beschleunigungsvorrichtung dafür unter Bezugnahme auf die beiliegenden Figuren anhand verschiedener Beispiele von Ausführungsformen beschrieben.
  • 1 veranschaulicht eine Verbindungsbeziehung zwischen einem Datenverarbeitungssystem 20 und einem externen Server 10 gemäß einer Ausführungsform. 2 veranschaulicht das in 1 dargestellte Datenverarbeitungssystem 20 gemäß einer Ausführungsform.
  • Nachfolgend werden Ausführungsformen unter Bezugnahme auf 3 beschrieben, die ein Verfahren zum Bestimmen oder Auswählen eines Geschwindigkeitsmodus in einem Host-Gerät gemäß einer Ausführungsform veranschaulicht, 4, die ein Gesamtleistungsbudget gemäß einer Ausführungsform veranschaulicht, und die 5A und 5B, die das Einstellen der Speicherleistung und Rechenleistung gemäß einer Ausführungsform veranschaulichen,.
  • Bezug nehmend auf 1 kann das Datenverarbeitungssystem 20 über ein Netzwerk 30 elektrisch mit dem externen Server 10 gekoppelt werden und kann Daten von dem externen Server 10 empfangen. In diesem Fall können die Daten eine Stapelgröße einschließen, was später beschrieben wird. Eine Deep Learning Anwendung kann Daten in einer Einheit eines Batchs (oder einer Stapel-Einheit) verarbeiten.
  • Die Größe eines Batchs (oder einer Stapelgröße) kann der Anzahl der Daten entsprechen, die das Datenverarbeitungssystem 20 gleichzeitig verarbeiten kann. Wenn es sich bei den ersten Eingangsdaten beispielsweise um Fotobilddaten handelt, kann die Anzahl der in den ersten Eingangsdaten enthaltenen Fotobilder als Stapelgröße bezeichnet werden. 10 Chargen bedeuten, dass 10 Fotobilder als die ersten Eingangsdaten verwendet werden. 10 erste Eingangsdaten führen eine Multiplikations- und Akkumulationsoperation (MAC) zusammen mit der gleichen Anzahl von zweiten Eingangsdaten durch, z. B. 10 zweite Eingangsdaten.
  • Das Datenverarbeitungssystem 20 kann ein Host-Gerät 100 und eine Datenspeichervorrichtung 200 einschließen.
  • Bezug nehmend auf 2 kann das Host-Gerät 100 eine Anwendung 110, Software-Firmware (SW F/W) 120 und eine Programmierschnittstelle (API) 130 einschließen. Die Datenspeichervorrichtung 200 kann ein PNM (Processing-Near-Memory) sein. Das PNM kann mindestens ein Speicher-Die 210 und ein Logik-Die 300 enthalten, die in einem erweiterten integrierten Schaltkreis (IC) untergebracht sind.
  • Die SW F/W 120 des Host-Gerätes 100 kann einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage mindestens eines Netzwerkmodells und einer Stapelgröße bestimmen oder auswählen, so dass die Rechenleistung und die Speicherleistung eines in der Datenspeichervorrichtung 200 enthaltenen Beschleunigers 400 angepasst werden.
  • Unter Bezugnahme auf 3 kann das Host-Gerät 100 einen Datenaufbereitungsvorgang auf der Grundlage von Informationen über das Netzwerkmodell, einschließlich Informationen über die Hardware-Architektur, wie z. B. Netzwerkinformationen 510 und PNM-Architekturinformationen 520 (530), durchführen. In diesem Fall führt das Host-Gerät 100 einen Datenaufbereitungsvorgang für ein PNM aus, um Power Sharing durchzuführen. Genauer gesagt, führt das Host-Gerät 100 zusätzlich zur bestehenden Datenaufbereitung für nur einen Beschleuniger eine Datenaufbereitung zum Anpassen der Speicher- und Rechenleistung in einem später zu beschreibenden Gesamtleistungsbudget durch.
  • Das PNM kann eine relativ höhere Geschwindigkeit haben als eine Datenpin-Struktur eines Speichers mit hoher Bandbreite (HBM), weil eine Datensignalleitung des Speicher-Die 210 elektrisch mit dem Logik-Die 300 im PNM gekoppelt ist. Das liegt daran, dass eine Geschwindigkeitsbeschränkung für eine chipexterne Verbindung im PNM durch die Integration des Speicher-Dies 210 und des Logik-Dies 300 in das Gehäuse des erweiterten IC aufgehoben wurde.
  • Das Netzwerk 30 von 1 kann ein neuronales Netzwerk sein, ist aber nicht darauf beschränkt. Das neuronale Netzwerk kann ein Convolutional Neural Network (CNN), ein Multi-Layer-Perception (MLP), ein Long Short Term Memory (LSTM) oder ähnliches umfassen. Netzwerkinformationen können im Voraus vom Host-Gerät 100 erkannt werden.
  • Die PNM-Architekturinformation 520 kann Informationen über die Beschleunigerarchitektur, die Leistung pro Rechner, die Leistung pro Speicherbandbreite (BW), Informationen über eine maximale Struktur von Rechnern und Informationen über eine maximale Struktur der Speicher-BW enthalten.
  • In diesem Fall kann die maximale Struktur von Rechnern die maximale Anzahl von Rechnern darstellen. Die maximale Struktur der Speicher-BW kann eine maximale Größe der Speicher-BW darstellen. Die maximale Struktur von Rechnern und die maximale Struktur der Speicher-BW sind vorgegeben. In Ausführungsformen der vorliegenden Offenlegung kann die Anzahl von Rechnern und die Größe der Speicher-BW innerhalb der vorgegebenen Maximalstrukturen geändert werden.
  • Wenn es beispielsweise N Rechner gibt, darf die Anzahl der zugeordneten Rechner N nicht überschreiten, und wenn die maximale Größe der Speicher-BW M ist, darf die Größe einer zugeordneten Speicher-BW M nicht überschreiten, wobei N und M positive ganze Zahlen sind. Folglich werden die maximalen Strukturen der Rechner und der Speicher-BW im Voraus bereitgestellt, um einen Geschwindigkeitsmodus der Speicher-BW auf der Grundlage der maximalen Struktur der Rechner und der maximalen Struktur der Speicher-BW zu bestimmen oder auszuwählen.
  • Das Host-Gerät 100 kann Daten ausgeben, die in einer für das PNM optimierten Form kompiliert sind, einschließlich des Geschwindigkeitsmodus der Speicher-BW (540). In diesem Fall kann der Geschwindigkeitsmodus der Speicher-BW einen Niedriggeschwindigkeitsmodus und einen Hochgeschwindigkeitsmodus umfassen.
  • Unter Bezugnahme auf 4 kann das Gesamtleistungsbudget Speicher- und Rechenleistung einschließen. In diesem Fall können sowohl die Speicher- als auch die Rechenleistung jeweils einen einstellbaren dynamischen Leistungsteil und einen statischen Leistungsteil einschließen. 4 veranschaulicht einen Fall, in dem die Speicher- und Rechenleistung maximal genutzt wird.
  • Der Geschwindigkeitsmodus der Speicher-BW kann den Hochgeschwindigkeitsmodus und den Niedriggeschwindigkeitsmodus umfassen. Im Hochgeschwindigkeitsmodus, der in 5A dargestellt ist, wird die Speicherleistung von einem Referenzwert einer Anfangseinstellung aus erhöht. In dem in 5B dargestellten Niedriggeschwindigkeitsmodus wird die Rechenleistung von einem Referenzwert der Anfangseinstellung aus erhöht.
  • Erneut auf 3 Bezug nehmend, wenn ein Netzwerkmodell das CNN ist, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als den Niedriggeschwindigkeitsmodus (550) bestimmen. Wenn das Netzwerkmodell das CNN ist, werden die Daten relativ häufig in dem Logik-Die 300 wiederverwendet, und somit bestimmt das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als den Niedriggeschwindigkeitsmodus, da die Gesamtleistung des Datenverarbeitungssystems 20 durch die Leistungsfähigkeit der Rechenleistung bestimmt wird, obwohl der Speicher BW niedrig ist.
  • Wenn es sich bei dem Netzwerkmodell hingegen um MLP oder LSTM handelt, kann das Host-Gerät 100 die Stapelgröße untersuchen und die Stapelgröße mit einem Referenzwert K (560) vergleichen. Wenn die Stapelgröße den Referenzwert K überschreitet (d.h. die Stapelgröße > K), kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Niedriggeschwindigkeitsmodus bestimmen (550). Wenn die Stapelgröße gleich oder kleiner als der Referenzwert K ist, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Hochgeschwindigkeitsmodus (570) bestimmen.
  • Obwohl es sich bei dem Netzwerkmodell um das MLP Netzwerk oder das LSTM Netzwerk handelt, kann sich der Bedarf an größerer Rechenleistung erhöhen, wenn die Stapelgröße zunimmt. Dementsprechend vergleicht das Host-Gerät 100 die Stapelgröße mit dem Referenzwert K, obwohl das Netzwerkmodell das MLP Netzwerk oder das LSTM Netzwerk ist.
  • In diesem Fall kann die Stapelgröße vom externen Server 10 empfangen und in die PNM-Architekturinformationen aufgenommen werden. In einem Netzwerkmodell wie dem MLP, LSTM oder einem Recurrent Neural Network (RNN), in dem keine Daten im Logik-Die 300 wiederverwendet werden, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Hochgeschwindigkeitsmodus bestimmen, da der Speicher-BW ein Hauptfaktor zum Bestimmen der Gesamtleistung des Datenverarbeitungssystems 20 sein kann.
  • Erneut Bezug nehmend auf 2, kann das Logik-Die 300 einen Speichercontroller (MC) 310 und den Beschleuniger 400 enthalten.
  • Unter Bezugnahme auf 11, die eine Verbindungsbeziehung zwischen dem MC 310 und dem Speicher-Die 210 gemäß einer Ausführungsform veranschaulicht, kann der MC 310 den Geschwindigkeitsmodus der Speicher-BW an das Speicher-Die 210 übertragen.
  • Das Speicher-Die 210 kann den Takt eines Speichers basierend auf dem Geschwindigkeitsmodus der vom MC 310 übertragenen Speicher-BW ändern. In diesem Fall kann die Anzahl der Speicher-Dies 210, die in der Datenspeichervorrichtung 200 enthalten sind, mindestens eins betragen.
  • In einer anderen Ausführungsform kann der MC 310 den Takt des Speichers auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW ändern.
  • 6 illustriert einen Datenspeicher gemäß einer Ausführungsform.
  • Die in 6 gezeigte Datenspeichervorrichtung wird im Folgenden unter Bezugnahme auf die 7 bis 12 beschrieben. 7 illustriert einen Beschleuniger gemäß einer Ausführungsform. Die 8 und 9 zeigen jeweils ein PE-Array gemäß einer Ausführungsform. 10 zeigt die Struktur eines PE-Arrays gemäß einer Ausführungsform. 11 veranschaulicht eine Verbindungsbeziehung zwischen einem MC und einem Speicher-Die gemäß einer Ausführungsform. 12 veranschaulicht eine Leistungsänderung gemäß einem Geschwindigkeitsmodus.
  • Die in 6 dargestellte Datenspeichervorrichtung kann der in 2 dargestellten Datenspeichervorrichtung 200 entsprechen.
  • Unter Bezugnahme auf 6 kann die Datenspeichervorrichtung 200 einen Beschleuniger 400 enthalten, der so konfiguriert ist, um die Struktur eines PE (Verarbeitungselement) - Arrays 430 durch die Steuerung eines Übertragungspfads für erste Eingangsdaten und zweite Eingangsdaten des PE-Arrays 430 in Abhängigkeit von einem Geschwindigkeitsmodus einer Speicher-BW zu ändern.
  • Der Beschleuniger 400 kann die ersten Eingangsdaten und die zweiten Eingangsdaten empfangen, die ersten Eingangsdaten und die zweiten Eingangsdaten multiplizieren und die multiplizierten Daten zu den zuvor gespeicherten Daten addieren. In diesem Fall können die zweiten Eingangsdaten Gewichtsdaten sein.
  • Unter Bezugnahme auf 6 können die ersten Eingangsdaten in einer Zeilenrichtung und die zweiten Eingangsdaten in einer Spaltenrichtung übertragen werden. Die durch Addition der multiplizierten Daten zu den zuvor gespeicherten Daten erhaltenen Daten umfassen alle die zweiten und die ersten Eingangsdaten, die für einen Knoten erforderlich sind, und werden über einen IO-Puffer 450 übertragen. Nach der Durchführung der MAC an den resultierenden Daten führt eine Aktivierungsfunktionseinheit (AFU) 480 eine Aktivierungsfunktion an den durch den IO-Puffer 450 übertragenen Daten aus, um dadurch Ausgangsdaten zu liefern.
  • Unter Bezugnahme auf die 6 und 7 kann der Beschleuniger 400 einen PE-Controller (PE CTRL) 420, das PE-Array 430, einen adaptiven PE-Array-Block 440, den IO-Puffer 450, einen Gewichtspuffer 460, einen adaptiven Datenpfad-Controller 470, die Aktivierungsfunktionseinheit (AFU) 480, eine Spezialfunktionseinheit (SFU) 490 und einen Leistungsregler auf Zeilenebene 495 enthalten.
  • Der Beschleuniger 400 kann mit dem Host-Gerät 100 über einen Host-Interface (IF)-Block 410 kommunizieren. In diesem Fall kann der Host-IF-Block 410 eine Schnittstelle zwischen dem Host-Gerät 100 und der Datenspeichervorrichtung 200 unter Verwendung eines Protokolls des Host-Gerätes 100 bereitstellen. Beispielsweise kann der Host-IF-Block 410 mit dem Host-Gerät 100 über ein Serdes-Schnittstellenprotokoll kommunizieren, aber das Protokoll ist nicht darauf beschränkt. Der Host-IF-Block 410 kann mit dem Host-Gerät 100 unter Verwendung eines beliebigen Protokolls wie PCI-Express (PCI-E), eines universellen seriellen Busses (USB), eines universellen Flash-Speichers (UFS), einer Multimediakarte (MMC), eines Parallel Advanced Technology Attachment (PATA), eines seriellen Serial Advanced Technology Attachment (SATA), einer Small Computer System Interface (SCSI), eines seriell verbundenen SCSI (SAS), einer Peripheral Component Interconnection (PCI) und ähnlichem kommunizieren.
  • Der PE-Controller 420 kann einen Geschwindigkeitsmodus einer Speicher-BW, der vom Host-Gerät 100 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen. Wie in 6 dargestellt, kann der PE-Controller 420 den vom Host-Gerät 100 übertragenen Geschwindigkeitsmodus der Speicher-BW über den Host-IF-Block 410 empfangen, der Daten an das Host-Gerät 100 sendet und von diesem empfängt.
  • Unter Bezugnahme auf 7 kann das PE-Array 430 eine Mehrzahl von ersten PE-Gruppen einschließen, wobei jede erste PE-Gruppe eine Mehrzahl von in Reihenrichtung angeordneten PEs enthält. Der adaptive PE-Array-Block 440 kann eine Mehrzahl erster Multiplexer enthalten, die zwischen den PEs im PE-Array 430 angeordnet sind, und jeder erste Multiplexer kann selektiv beliebige von ersten Eingangsdaten einer entsprechenden Datengruppe und ersten Eingangsdaten einer anderen Datengruppe in PEs in der Zeilenrichtung innerhalb des PE-Arrays 430 eingeben.
  • Darüber hinaus kann das PE-Array 430 eine Mehrzahl von zweiten PE-Gruppen einschließen, wobei jede zweite PE-Gruppe eine Mehrzahl von in der Spaltenrichtung angeordneten PEs enthält. Der adaptive PE-Array-Block 440 kann eine Mehrzahl zweiter Multiplexer enthalten, die mit PEs im PE-Array 430 gekoppelt sind, und jeder zweite Multiplexer kann selektiv beliebige von zweiten Eingangsdaten einer entsprechenden Datengruppe und zweiten Eingangsdaten einer anderen Datengruppe in PEs in Spaltenrichtung innerhalb des PE-Arrays 430 eingeben.
  • In 6 kann das PE-Array 430 eine N X M Struktur aufweisen, d.h. das PE-Array 430 kann N X M PEs enthalten. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein. Das heißt, N kann eine Größe von Zeilen darstellen, in die die ersten Eingangsdaten eingegeben werden, und M kann eine Größe von Spalten darstellen, in die die zweiten Eingangsdaten eingegeben werden. Daher kann das PE-Array 430 in dieser Ausführungsform N erste PE-Gruppen und M zweite PE-Gruppen enthalten. Jede erste PE-Gruppe kann M PEs enthalten, die in Zeilenrichtung angeordnet sind, und jede zweite PE-Gruppe kann N PEs enthalten, die in Spaltenrichtung angeordnet sind.
  • Unter Bezugnahme auf die 7 und 10 kann der adaptive PE-Array-Block 440 in einer Speicher-BW-Einheit (z.B. einer 1x-Einheit) zwischen PEs im PE-Array 430 positioniert werden, wobei der erste Array-Einstellblock vor dem zweiten Speicher-BW positioniert wird.
  • Wenn beispielsweise ein Speicher-BW ein 2x-BW ist, kann der adaptive PE-Array-Block 440 am vorderen Ende eines PE positioniert werden, das dem 2x-BW entspricht. In diesem Fall kann der adaptive PE-Array-Block 440, wie in 10 dargestellt, eine Zeilengruppe A und eine Spaltengruppe B enthalten.
  • Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 eine Mehrzahl erster Multiplexer 441 in der Zeilengruppe A zur Eingabe erster Eingangsdaten in PEs und eine Mehrzahl zweiter Multiplexer 443 in der Spaltengruppe B zur Eingabe zweiter Eingangsdaten in die PEs einschließen.
  • Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
  • 10 zeigt das PE-Array 430, das den adaptiven PE-Array-Block 440 enthält, wenn N gleich 6 und M gleich 64 ist. Bezug nehmend auf 10 ist zu sehen, dass der Multiplexer 441-1 aus der Mehrzahl der ersten Multiplexer 441 beliebige der ersten Eingangsdaten InQ_1 und InQ_7 in ein 1x33 PE unter der Steuerung des adaptiven Datenpfad-Controllers 470 in 7 eingeben kann.
  • Der Multiplexer 443-1 aus der Mehrzahl der zweiten Multiplexer 443 kann unter der Steuerung des adaptiven Datenpfad-Controllers 470 beliebige der zweiten Eingangsdaten WB_6_1 und WB_6_33 in das 1x33 PE eingeben.
  • Der IO-Puffer 450 kann innerhalb des PE-Arrays 430 in Zeilenrichtung erste Eingangsdaten an PEs übertragen.
  • Der Gewichtspuffer 460 kann zweite Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
  • Obwohl nicht in Figuren dargestellt, können der IO-Puffer 450 und der Gewichtspuffer 460 in einem Element implementiert oder durch einen Bus elektrisch miteinander gekoppelt werden.
  • Der adaptive Datenpfad-Controller 470 kann den adaptiven PE-Array-Block 440 auf der Grundlage eines Geschwindigkeitsmodus eines Speicher-BW steuern.
  • 8 zeigt das PE-Array 430, das eine N x M-Struktur als eine Anfangsstruktur aufweist, und 9 zeigt das PE-Array 430, das eine 2N x M/2-Struktur als Anfangsstruktur aufweist.
  • Wenn also das PE-Array 430 die Anfangsstruktur der N x M-Struktur aufweist, wie in 8 dargestellt, eine Speicher-BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der N x M-Struktur auf die 2N x M/2-Struktur geändert wird. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein.
  • Insbesondere kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von einer zweiten N Datengruppe von zwei oder mehr N Datengruppen zu empfangen, wenn die PEs in einer linken N x M/2-Struktur von 8 die ersten Eingangsdaten von einer ersten N Datengruppe der 2N Datengruppen empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer M/2-Datengruppe zu empfangen, wenn die PEs in der linken N x M/2-Struktur von 8 die zweiten Eingangsdaten von der M/2-Datengruppe empfangen. Dabei kann jede der ersten und zweiten Datengruppen N erste Eingangsdaten enthalten, und die M/2-Datengruppe kann M/2 zweite Eingangsdaten enthalten.
  • Wenn beispielsweise, wie in 8 dargestellt, das PE-Array 430 die Anfangsstruktur der N x M-Struktur aufweist und die Speicher-BW 2x ist, kann die Anfangsstruktur des PE-Arrays 430 eine Speicherstruktur von 6 x 64 aufweisen, wie in 10 dargestellt. In diesem Fall kann der adaptive PE-Array-Block 440 zwischen einer ersten 1x-Stufe und einer zweiten 1x-Stufe (oder einer 2x-Stufe) positioniert werden. Die erste 1 x-Stufe entspricht der linken N x M/2-Struktur und die zweite 1x-Stufe entspricht einer rechten N x M/2-Struktur.
  • Wenn der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Struktur des PE-Arrays 430 von 6 x 64 (siehe 8) auf 12 x 32 (siehe 9) ändern.
  • Unter Bezugnahme auf 10 kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 so steuern, dass die in Spaltenrichtung angeordneten 1 x 33 PE bis 6 x 33 PE jeweils erste Eingangsdaten InQ_7 bis InQ_12 erhalten.
  • Darüber hinaus kann der adaptive Datenpfad-Controller 470 die Mehrzahl der zweiten Multiplexer 443 so steuern, dass die in Reihenrichtung angeordneten 1 x 33 PE bis 1 x 64 PE jeweils zweite Eingangsdaten WB_6_1 bis WB_6_31 erhalten.
  • Das heißt, die in Spaltenrichtung angeordneten 1 x 33 PE bis 6 x 33 PE erhalten jeweils die ersten Eingangsdaten InQ_7 bis InQ_12, nicht die ersten Eingangsdaten InQ_1 bis InQ_6. Die 1 x 33 PE bis 1 x 64 PE, die in Zeilenrichtung angeordnet sind, erhalten jeweils die zweiten Eingangsdaten WB_6_1 bis WB_6_32, nicht die zweiten Eingangsdaten WB_6_33 bis WB_6_64. Dementsprechend können die PEs im PE-Array 430 eine PE-Array-Struktur von 12 x 32 realisieren, indem die Eingangspfade der ersten und zweiten Eingangsdaten angepasst werden.
  • Im Gegensatz dazu kann, wie in 9 dargestellt, der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der 2N x M/2-Struktur auf die N x M-Struktur geändert wird, wenn die Anfangsstruktur des PE-Arrays 430 die 2N x M/2-Struktur ist, die Speicher BW 2x ist und ein Geschwindigkeitsmodus der Speicher-BW ein Hochgeschwindigkeitsmodus ist.
  • In 9 kann der adaptive PE-Array-Block 440 zwischen einer ersten 1x-Stufe und einer zweiten 1x-Stufe (oder einer 2x-Stufe) positioniert werden. Die erste 1x-Stufe entspricht einer unteren N x M/2-Struktur und die zweite 1x-Stufe entspricht einer oberen N x M/2-Struktur.
  • Der adaptive Datenpfad-Controller 470 kann die Mehrzahl der ersten Multiplexer 441 so steuern, dass sie die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen empfangen, wenn PEs in der unteren N x M/2-Struktur von 9 die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 so steuern, dass sie die zweiten Eingangsdaten von einer nächsten M/2-Datengruppe empfangen, die einer ersten M/2-Datengruppe von zweiten Eingangsdaten folgt, wenn die PEs in der unteren N x M/2-Struktur von 9 die zweiten Eingangsdaten von der ersten M/2-Datengruppe empfangen.
  • Beispielsweise Bezug nehmend auf 10, wenn die obere N x M/2-Struktur von 9 die 1 x 33 PE bis 6 x 33 PE, ..., und die 1 x 64 PE bis 6 x 64 PE einschließt, können die ersten Eingangsdaten InQ_1 bis InQ_6 in die 1 x 33 PE bis 6 x 33 PE, die in Spaltenrichtung angeordnet sind, und die zweiten Eingangsdaten WB_6_33 bis WB_6_64 in die 1 x 33 PE bis 1 x 64 PE, die in Zeilenrichtung angeordnet sind, eingegeben werden.
  • Unter Bezugnahme auf 7 kann die Aktivierungsfunktionseinheit (AFU) 480 in jeder Zeile des PE-Arrays 430 vorgesehen werden und eine Aktivierungsfunktion an den vom PE-Array verarbeiteten Daten ausführen.
  • In diesem Fall kann die Aktivierungsfunktion verschiedene Algorithmen wie ReLU, tanh, sigmoid und ähnliche verwenden. Außerdem kann die Aktivierungsfunktion in Form einer Zuordnungstabelle oder in Form eines Micro-Core konfiguriert werden.
  • Die Spezialfunktionseinheits (SFUs) 490 können mit den jeweiligen Aktivierungsfunktionseinheiten 480 abgestimmt werden und neben der Aktivierungsfunktion zusätzliche Operationen durchführen. Die Sonderfunktionseinheit 490 kann beispielsweise eine Verarbeitungsoperation durchführen, wie z.B. die elementweise Multiplikation der LSTM.
  • Der Leistungsregler auf Zeilenebene 495 kann die Steuerverarbeitung der Taktsteuerung am PE-Array 430 in einer Zeileneinheit durchführen.
  • Wie oben beschrieben, kann der Leistungsregler auf Zeilenebene 495 die Steuerverarbeitung der Taktsteuerung in einer Zeileneinheit durchführen, da die Aktivierungsfunktionseinheit 480 und die Sonderfunktionseinheit 490 für jede Zeile vorgesehen sind. Folglich ist es möglich, den Stromverbrauch bei der Durchführung einer Rechenoperation zu reduzieren.
  • 12 veranschaulicht eine Leistungsveränderung in Abhängigkeit von einem Geschwindigkeitsmodus. Bezug nehmend auf 12 ist ersichtlich, dass bei gleichem Leistungsbudget die Leistung der MLP- und LSTM-Anwendungen von P1 auf P2 verbessert wird, indem ein Geschwindigkeitsmodus einer Speicher-BW in einen Niedriggeschwindigkeitsmodus oder einen Hochgeschwindigkeitsmodus geändert wird. 12 zeigt die MLP und das LSTM, auf die ein Hochgeschwindigkeitsmodus angewendet wurde, da eine Stapelgröße der Referenzwert K oder kleiner ist. Der Referenzwert K wurde vorstehend mit Bezug auf 3 beschrieben.
  • 13 zeigt eine Beschleunigungsvorrichtung 600 gemäß einer Ausführungsform.
  • Unter Bezugnahme auf 13 kann die Beschleunigungsvorrichtung 600 einen Beschleuniger 400 zum Ändern einer Struktur eines PE (Verarbeitungselement) - Arrays 430 enthalten, indem die Übertragungswege der ersten Eingangsdaten und der zweiten Eingangsdaten des PE-Arrays 430 gesteuert werden.
  • Der Beschleuniger 400 kann eine Operation durchführen, bei der die ersten Eingangsdaten und die zweiten Eingangsdaten empfangen, die ersten Eingangsdaten und die zweiten Eingangsdaten multipliziert und die multiplizierten Daten zu den zuvor gespeicherten Daten addiert werden. In diesem Fall können die zweiten Eingangsdaten Gewichtsdaten sein.
  • Rückblickend auf 6, können die ersten Eingangsdaten in Zeilenrichtung und die zweiten Eingangsdaten in Spaltenrichtung übertragen werden. Die durch Addition der multiplizierten Daten zu den zuvor gespeicherten Daten erhaltenen Daten umfassen alle zweiten Eingangsdaten und die ersten Eingangsdaten, die für einen Knoten erforderlich sind, und werden über einen IO-Puffer 450 übertragen. Nach der Durchführung der MAC an den resultierenden Daten führt eine Aktivierungsfunktionseinheit (AFU) 480 eine Aktivierungsfunktion an den durch den IO-Puffer 450 übertragenen Daten aus, um dadurch Ausgangsdaten bereitzustellen.
  • Genauer gesagt kann der Beschleuniger 400 einen PE-Controller 420, das PE-Array 430, einen adaptiven PE-Array-Block 440, den IO-Puffer 450, einen Gewichtspuffer 460, einen adaptiven Datenpfad-Controller 470, die AFU 480, eine Spezialfunktionseinheit (SFU) 490 und einen Leistungsregler auf Zeilenebene 495 umfassen.
  • Der Beschleuniger 400 kann mit dem in den 1 und 2 dargestellten Host-Gerät 100 über einen Host-IF-Block 410 kommunizieren. In diesem Fall kann der Host-IF-Block 410 eine Schnittstelle zwischen dem Host-Gerät 100 und der in den 1 und 2 dargestellten Datenspeichervorrichtung 200 bilden, in dem der Beschleuniger 400 eingeschlossen ist durch die Nutzung eines Protokolls des Host-Gerätes 100. Zum Beispiel kann der Host-IF-Block 410 mit dem Host-Gerät 100 über ein Serdes-Schnittstellenprotokoll kommunizieren, aber das Protokoll ist nicht darauf beschränkt.
  • Der PE-Controller 420 kann einen Geschwindigkeitsmodus einer Speicher-BW, die vom Host-Gerät 100 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen.
  • Der adaptive PE-Array-Block 440 kann eine Mehrzahl erster Multiplexer enthalten, die zwischen den PE-Arrays 430 angeordnet sind, und jeder erste Multiplexer kann selektiv beliebige der ersten Eingangsdaten einer entsprechenden Datengruppe und der ersten Eingangsdaten einer anderen Datengruppe in PEs in Zeilenrichtung innerhalb des PE-Arrays 430 eingeben. In einer Ausführungsform enthält das PE-Array 430 eine Mehrzahl von ersten PE-Gruppen, wobei jede erste PE-Gruppe eine Mehrzahl von in Zeilenrichtung angeordneten PEs enthält.
  • Darüber hinaus kann der adaptive PE-Array-Block 440 eine Mehrzahl zweiter Multiplexer enthalten, die zwischen den PE-Arrays 430 angeordnet sind, und jeder zweite Multiplexer kann selektiv beliebige der zweiten Eingangsdaten einer entsprechenden Datengruppe und der zweiten Eingangsdaten einer anderen Datengruppe in PEs in Spaltenrichtung innerhalb des PE-Arrays 430 eingeben. In einer Ausführungsform enthält das PE-Array 430 eine Mehrzahl von zweiten PE-Gruppen, wobei jede zweite PE-Gruppe eine Mehrzahl von in Spaltenrichtung angeordneten PEs enthält.
  • Der adaptive PE-Array-Block 440 kann in einer Speicher-BW-Einheit zwischen den PE-Arrays 430 positioniert werden.
  • Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 die Mehrzahl der ersten Multiplexer 441 zum Eingeben der ersten Eingangsdaten in die PEs und die Mehrzahl der zweiten Multiplexer 443 zum Eingeben der zweiten Eingangsdaten in die PEs enthalten.
  • Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
  • Der IO-Puffer 450 kann die ersten Eingangsdaten an PEs in Zeilenrichtung innerhalb des PE-Arrays 430 übertragen.
  • Der Gewichtspuffer 460 kann die zweiten Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
  • Der adaptive Datenpfad-Controller 470 kann die Eingangsverarbeitung des adaptiven PE-Array-Blocks 440 auf der Grundlage eines Geschwindigkeitsmodus einer Speicher-BW steuern.
  • Der Geschwindigkeitsmodus der Speicher-BW kann einen Hochgeschwindigkeitsmodus und einen Niedriggeschwindigkeitsmodus umfassen. Im Hochgeschwindigkeitsmodus wird die Speicherleistung von einem Referenzwert der Anfangseinstellung aus erhöht. Im Niedriggeschwindigkeitsmodus wird die Rechenleistung von einem Referenzwert der Anfangseinstellung aus erhöht.
  • Wenn das PE-Array 430 eine Anfangsstruktur von einer N x M-Struktur aufweist, wie in 8 dargestellt, ein Speicher BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW der Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der N x M-Struktur in eine 2N x M/2-Struktur geändert wird, wie in 9 dargestellt. N kann eine Stapelgröße sein und M kann eine Gewichtsbreite darstellen.
  • Insbesondere kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von einer zweiten N Datengruppe von zwei oder mehr N Datengruppen zu empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer M/2-Datengruppe zu empfangen.
  • Ist dagegen eine Anfangsstruktur des PE-Arrays 430 eine 2N x M/2-Struktur, wie in 9 dargestellt, ein Speicher BW 2x und der Geschwindigkeitsmodus der Speicher-BW der Hochgeschwindigkeitsmodus, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der 2N x M/2-Struktur in die in 8 dargestellte N x M-Struktur geändert wird.
  • Der adaptive Datenpfad-Controller 470 kann die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen zu empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer nächsten M/2-Datengruppe zu empfangen, die einer ersten M/2-Datengruppe folgt.
  • 14 zeigt eine Datenspeichervorrichtung 200' gemäß einer anderen Ausführungsform.
  • Die Datenspeichervorrichtung 200' kann eine Zentraleinheit (CPU) 700, einen Beschleuniger 400, einen Speichercontroller (MC) 310 und eine Mehrzahl von Speicher-Dies 210 umfassen. In diesem Fall können die MC 310, der Beschleuniger 400 und die CPU 700 in einem Logik-Die 300' enthalten sein.
  • Die CPU 700 kann einen Geschwindigkeitsmodus einer Speicher-BW auf der Grundlage mindestens eines Netzwerkmodells und einer Stapelgröße bestimmen, so dass Rechenleistung und Speicherleistung des Beschleuniger 400 in einem Gesamtleistungsbudget angepasst werden. Der Geschwindigkeitsmodus der Speicher-BW kann einen Hochgeschwindigkeitsmodus umfassen, in dem die Speicherleistung von einem Referenzwert der Anfangseinstellung aus nach oben angepasst wird, und einen Niedriggeschwindigkeitsmodus umfassen, in dem die Rechenleistung im Gesamtleistungsbudget von einem Referenzwert der Anfangseinstellung aus nach oben angepasst wird. In diesem Fall implementiert die CPU 700 die in 2 offenbarte Funktion des Host-Gerätes 100 innerhalb des Datenspeichers 200. Alle Funktionen des Host-Gerätes 100 können auf die CPU 700 angewendet werden.
  • Die CPU 700 kann über ein Kommunikationsnetzwerk elektrisch mit einem externen Server (z.B. dem externen Server 10 in 1) gekoppelt werden und Daten vom externen Server 10 empfangen. In diesem Fall können die Daten eine Stapelgröße enthalten. Die Stapelgröße kann in den PNM-Architekturinformationen enthalten sein. Obwohl nicht abgebildet, kann die CPU 700 eine verdrahtete Schnittstelle oder eine Schnittstelle zum Senden und Empfangen von Daten an den und vom externen Server 10 enthalten.
  • Der Beschleuniger 400 kann eine Struktur eines PE (Verarbeitungselements) - Arrays (z.B. das PE-Array 430 in 6) verändern, durch die Steuerung von Übertragungswegen der ersten Eingangsdaten und der zweiten Eingangsdaten des PE-Arrays 430 auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW.
  • Bezug nehmend auf die 6 und 7 kann der Beschleuniger 400 den PE-Controller (PE CTRL) 420, das PE-Array 430, den adaptiven PE-Array-Block 440, den IO-Puffer 450, den Gewichtspuffer 460, den adaptiven Datenpfad-Controller 470, die AFU 480, die SFU 490 und den Leistungsregler auf Zeilenebene 495 umfassen.
  • Der PE-Controller 420 kann den Geschwindigkeitsmodus der Speicher-BW, die von der CPU 700 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen.
  • Der adaptive PE-Array-Block 440 kann zwischen den PE-Arrays 430 positioniert werden und selektiv beliebige erster Eingangsdaten einer entsprechenden Datengruppe oder erster Eingangsdaten einer anderen Datengruppe in PEs in Zeilenrichtung innerhalb des PE-Arrays 430 eingeben.
  • Darüber hinaus kann der adaptive PE-Array-Block 440 zwischen den PE-Arrays 430 positioniert werden und selektiv beliebige zweite Eingangsdaten einer entsprechenden Datengruppe und zweite Eingangsdaten einer anderen Datengruppe in Spaltenrichtung innerhalb des PE-Arrays 430 in PEs eingeben.
  • 6 zeigt das PE-Array 430, das eine N X M-Struktur aufweist. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein. Das heißt, N kann die Anzahl der PE-Zeilen darstellen, in die die ersten Eingangsdaten eingegeben werden. M kann die Anzahl der PE-Spalten darstellen, in die die zweiten Eingangsdaten eingegeben werden.
  • Unter Bezugnahme auf die 7 und 10 kann der adaptive PE-Array-Block 440 in einer Speicher-BW-Einheit (z.B. eine 1x-Einheit) zwischen PEs in den PE-Arrays 430 positioniert werden, wobei der erste PE-Array-Einstellblock vor dem zweiten Speicher-BW liegt.
  • Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 die Mehrzahl der ersten Multiplexer 441 zur Eingabe der ersten Eingangsdaten in die PEs und die Mehrzahl der zweiten Multiplexer 443 zur Eingabe der zweiten Eingangsdaten in die PEs enthalten.
  • Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
  • Der IO-Puffer 450 kann die ersten Eingangsdaten an PEs in Zeilenrichtung innerhalb des PE-Arrays 430 übertragen.
  • Der Gewichtspuffer 460 kann die zweiten Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
  • Obwohl nicht abgebildet, können der IO-Puffer 450 und der Gewichtspuffer 460 in einem Element implementiert oder über einen Bus elektrisch miteinander gekoppelt werden.
  • Der adaptive Datenpfad-Controller 470 kann die Eingangsverarbeitung des adaptiven PE-Array-Blocks 440 auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW steuern.
  • Wenn das PE-Array 430 eine Anfangsstruktur einer N x M-Struktur hat, wie in 8 dargestellt, der Speicher BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 eine 2N x M/2-Struktur wird, wie in 9 dargestellt. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein.
  • Ist dagegen die Anfangsstruktur des PE-Arrays 430 eine 2N x M/2-Struktur, wie in 9 dargestellt, der Speicher BW 2x und der Geschwindigkeitsmodus der Speicher-BW ein Hochgeschwindigkeitsmodus, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 eine N x M-Struktur wird, wie in 8 dargestellt.
  • Die Aktivierungsfunktionseinheit (AFU) 480 kann in jeder Zeile des PE-Arrays 430 vorgesehen werden und die Aktivierungsfunktionsverarbeitung an den von dem PE-Array verarbeiteten Daten durchführen.
  • Die Spezialfunktionseinheiten (SFUs) 490 können mit den jeweiligen Aktivierungsfunktionseinheiten 480 abgeglichen werden und zusätzlich zur Aktivierungsfunktionsverarbeitung weitere Operationen durchführen. So kann die Sonderfunktionseinheit 490 beispielsweise eine Verarbeitungsoperation, wie die elementweise Multiplikation der LSTM, durchführen.
  • Der Leistungsregler auf Zeilenebene 495 kann die Steuerverarbeitung der Taktsteuerung an dem PE-Array 430 in einer Zeileneinheit durchführen.
  • Unter Bezugnahme auf 11 kann der MC 310 den Geschwindigkeitsmodus der Speicher-BW an das Speicher-Die 210 übertragen.
  • Das Speicher-Die 210 kann den Takt eines Speichers basierend auf dem Geschwindigkeitsmodus der vom MC 310 übertragenen Speicher-BW ändern. In diesem Fall kann die Anzahl der Speicher-Dies 210 mindestens eins betragen.
  • Um den Takt des Speichers auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite zu ändern, kann direkt durch das MC 310 verarbeitet werden. Die Datenspeichervorrichtung 200 kann ein Processing Near Memory (PNM) sein.
  • In den vorstehenden Ausführungsformen werden die Rechenleistung und die Speicherleistung durch die Steuerung der Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten unter Verwendung des adaptiven PE-Array-Blocks 440 einschließlich der Mehrzahl der ersten Multiplexer 441 und der Mehrzahl der zweiten Multiplexer 443 eingestellt, wenn die Speicher-BW 2x BW ist, die Ausführungsformen sind aber nicht darauf beschränkt.
  • In einer anderen Ausführungsform können, wenn die Speicher-BW 2x BW ist, M zweite Multiplexer, die in der Zeilenrichtung angeordnet sind, an einer N/2 Stelle in der Spaltenrichtung angeordnet werden, wobei das PE-Array 430 die N x M-Struktur aufweist, so dass das PE-Array 430 in eine N/2 x 2M-Struktur geändert wird. Wenn der Speicher BE 4x-BW ist, können in einer weiteren Ausführungsform M zweite Multiplexer, die in der Zeilenrichtung angeordnet sind, an jeder N/4-Stelle, d.h. an N/4-, 2N/4- und 3N/4-Stellen, in der Spaltenrichtung zwischen PEs in dem PE- Array 430, welche die N x M-Struktur aufweisen, angeordnet werden, so dass das PE- Array 430 in eine N/4 x 4M-Struktur umgewandelt wird.
  • Gemäß den vorliegenden Ausführungsformen kann eine Leistung der wichtigsten Anwendungen für jedes Netzwerkmodell verbessert werden, da die Rechen- und Speicherleistung je nach Geschwindigkeitsmodus einer Speicher-BW flexibel angepasst werden kann.
  • Obwohl verschiedene Ausführungsformen vorstehend beschrieben wurden, wird denjenigen, die im Fachgebiet erfahren sind, klar sein, dass die beschriebenen Ausführungsformen nur als Beispiel dienen. Folglich sollte das hier beschriebene System und die Vorrichtung nicht basierend auf die beschriebenen Ausführungsformen eingeschränkt werden.
  • 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 1020190082000 [0001]

Claims (27)

  1. Datenverarbeitungssystem, umfassend: ein Host-Gerät, das konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells oder einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst wird; und eine Datenspeichervorrichtung, die den Beschleuniger umfasst, der konfiguriert ist, um eine Struktur von einem Processing Element (PE) - Array zu ändern durch Steuerung der Übertragungswege von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
  2. Datenverarbeitungssystem nach Anspruch 1, wobei der Beschleuniger umfasst: das PE- Array, eine erste PE-Gruppe und eine zweite PE-Gruppe einschließend, wobei jede der ersten und zweiten PE-Gruppen eine Mehrzahl von in ersten und zweiten Richtungen angeordneten PEs einschließt; einen adaptiven PE-Array-Block, der zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array angeordnet ist und konfiguriert ist, um selektiv erste Eingangsdaten einer ersten Datengruppe oder erste Eingangsdaten einer zweiten Datengruppe in die zweite PE-Gruppe in der ersten Richtung innerhalb des PE-Arrays einzugeben, und um selektiv zweite Eingangsdaten einer dritten Datengruppe oder zweite Eingangsdaten einer vierten Datengruppe in die zweite PE-Gruppe in der zweiten Richtung innerhalb des PE-Arrays einzugeben; und einen adaptiven Datenpfad-Controller, der konfiguriert ist, um die Eingangsverarbeitung des adaptiven PE-Array-Blocks basierend auf dem Geschwindigkeitsmodus der Speicherbandbreite zu steuern, und wobei der erste Geschwindigkeitsmodus ein Hochgeschwindigkeitsmodus ist und der zweite Geschwindigkeitsmodus ein Niedriggeschwindigkeitsmodus ist.
  3. Datenverarbeitungssystem nach Anspruch 2, wobei der adaptive PE-Array-Block in einer Speicherbandbreiteneinheit zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array positioniert ist, wobei der erste PE-Array-Einstellblock vor einer zweiten Speicherbandbreite positioniert ist.
  4. Datenverarbeitungssystem nach Anspruch 3, wobei der adaptive PE-Array-Block umfasst: eine Mehrzahl erster Multiplexer, die konfiguriert sind, um die ersten Eingangsdaten in die zweite PE-Gruppe in der ersten Richtung einzugeben, und eine Mehrzahl zweiter Multiplexer, die konfiguriert sind, um die zweiten Eingangsdaten in die zweite PE-Gruppe in der zweiten Richtung einzugeben.
  5. Datenverarbeitungssystem nach Anspruch 4, wobei die erste Richtung eine Zeilenrichtung und die zweite Richtung eine Spaltenrichtung ist, und wobei: die Mehrzahl der ersten Multiplexer jeweils mit PEs abgestimmt sind, die in einer ersten Spalte der zweiten PE-Gruppe in dem PE- Array angeordnet sind, und die Mehrzahl der zweiten Multiplexer jeweils mit PEs abgestimmt sind, die in einer ersten Reihe der zweiten PE-Gruppe in dem PE- Array angeordnet sind.
  6. Datenverarbeitungssystem nach Anspruch 5, wobei: der adaptive Datenpfad-Controller einen Eingangspfad der ersten Eingangsdaten und einen Eingangspfad der zweiten Eingangsdaten so steuert, dass die Struktur des PE-Arrays in eine 2N x M/2-Struktur geändert wird, wenn eine Anfangsstruktur des PE-Arrays eine N x M-Struktur ist, die Speicherbandbreite 2x beträgt und der Geschwindigkeitsmodus der Speicherbandbreite der Niedriggeschwindigkeitsmodus ist, N die Stapelgröße ist, und M eine Gewichtsbreite ist.
  7. Datenverarbeitungssystem nach Anspruch 6, wobei der adaptive Datenpfad-Controller die Mehrzahl der ersten Multiplexer steuert, um die ersten Eingangsdaten von den 2N-Gruppen oder mehr zu empfangen, und die Mehrzahl der zweiten Multiplexer steuert, um die zweiten Eingangsdaten von der M/2-Gruppe zu empfangen.
  8. Datenverarbeitungssystem nach Anspruch 2, wobei der Beschleuniger ferner einen PE-Controller umfasst, der konfiguriert ist, um den Geschwindigkeitsmodus der Speicherbandbreite, die von dem Host-Gerät übertragen wird, an den adaptiven Datenpfad-Controller zu übertragen.
  9. Datenverarbeitungssystem nach Anspruch 2, wobei der Beschleuniger ferner einen Leistungsregler einer ersten Ebene umfasst, der konfiguriert ist, um eine Steuerverarbeitung der Taktsteuerung an dem PE-Array in einer Reiheneinheit durchzuführen.
  10. Datenverarbeitungssystem nach Anspruch 2, wobei der Beschleuniger ferner umfasst: einen IO-Puffer, der konfiguriert ist, um die ersten Eingangsdaten an PEs in der ersten Richtung innerhalb des PE-Arrays zu übertragen; und einen Gewichtspuffer, der konfiguriert ist, um die zweiten Eingangsdaten an PEs in der zweiten Richtung innerhalb des PE-Arrays zu übertragen.
  11. Datenverarbeitungssystem nach Anspruch 10, wobei die erste Richtung eine Zeilenrichtung und die zweite Richtung eine Spaltenrichtung ist, und wobei der Beschleuniger ferner umfasst: eine Aktivierungsfunktionseinheit, die in jeder Zeile des PE-Arrays vorgesehen und konfiguriert ist, um die Aktivierungsfunktionsverarbeitung an den operativ verarbeiteten Daten durch das PE-Array durchzuführen; und eine Spezialfunktionseinheit, die mit der Aktivierungsfunktionseinheit abgestimmt ist und konfiguriert ist, um zusätzlich zur Aktivierungsfunktionsverarbeitung eine weitere Operation auszuführen.
  12. Datenverarbeitungssystem nach Anspruch 1, wobei die Datenspeichervorrichtung ferner umfasst: einen Speicher-Controller, der konfiguriert ist, um den Geschwindigkeitsmodus der Speicherbandbreite an mindestens ein Speicher-Die zu übertragen; und das mindestens eine Speicher-Die konfiguriert ist, um den Takt eines Speichers auf der Grundlage des Geschwindigkeitsmodus der vom Speicher-Controller übertragenen Speicherbandbreite zu ändern.
  13. Datenverarbeitungssystem nach Anspruch 1, wobei die Datenspeichervorrichtung einen Processing Near Memory (PNM) umfasst.
  14. Datenverarbeitungssystem nach Anspruch 1, wobei das Host-Gerät den Geschwindigkeitsmodus der Speicherbandbreite als den zweiten Geschwindigkeitsmodus auswählt, wenn das Netzwerkmodell ein Convolutional Neural Network (CNN) ist.
  15. Datenverarbeitungssystem nach Anspruch 1, wobei das Host-Gerät die Stapelgröße mit einem Referenzwert vergleicht, wenn das Netzwerkmodell ein Multi-Layer-Perception (MLP) oder ein Long Short Term Memory (LSTM) ist, den Geschwindigkeitsmodus der Speicher-BW als einen Niedriggeschwindigkeitsmodus bestimmt, wenn die Stapelgröße den Referenzwert überschreitet, und den Geschwindigkeitsmodus der Speicher-BW als einen Hochgeschwindigkeitsmodus bestimmt, wenn die Stapelgröße dem Referenzwert entspricht oder kleiner als dieser ist.
  16. Beschleunigungsvorrichtung, umfassend: einen Beschleuniger, der konfiguriert ist, um eine Struktur eines Processing Element (PE) - Arrays zu ändern, durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage eines Geschwindigkeitsmodus einer Speicherbandbreite, wobei der Beschleuniger umfasst: das PE- Array, eine erste PE-Gruppe und eine zweite PE-Gruppe einschließend, wobei jede der ersten und zweiten PE-Gruppen eine Mehrzahl von in ersten und zweiten Richtungen angeordneten PEs einschließt; einen adaptiven PE-Array-Block, der zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array positioniert ist und konfiguriert ist, um selektiv erste Eingangsdaten einer ersten Datengruppe oder erste Eingangsdaten einer zweiten Datengruppe in die zweite PE-Gruppe in der ersten Richtung innerhalb des PE-Arrays einzugeben und um selektiv zweite Eingangsdaten einer dritten Datengruppe oder zweite Eingangsdaten einer vierten Datengruppe in die zweite PE-Gruppe in der zweiten Richtung innerhalb des PE-Arrays einzugeben.
  17. Beschleunigungsvorrichtung nach Anspruch 16, wobei: der Beschleuniger ferner einen adaptiven Datenpfad-Controller umfasst, der konfiguriert ist, um eine Eingangsverarbeitung des adaptiven PE-Array-Blocks auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite zu steuern, und die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein Hochgeschwindigkeitsmodus gewählt wird, und die Rechenleistung im Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein Niedriggeschwindigkeitsmodus gewählt wird.
  18. Beschleunigungsvorrichtung nach Anspruch 17, wobei der adaptive PE-Array-Block in einer Speicherbandbreiteneinheit zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array positioniert ist, wobei der erste PE-Array-Einstellblock vor einer zweiten Speicherbandbreite positioniert ist.
  19. Beschleunigungsvorrichtung nach Anspruch 18, wobei der adaptive PE-Array-Block umfasst: eine Mehrzahl erster Multiplexer, die konfiguriert sind, um die ersten Eingangsdaten in die zweite PE-Gruppe in der ersten Richtung einzugeben, und eine Mehrzahl zweiter Multiplexer, die konfiguriert sind, um die zweiten Eingangsdaten in die zweite PE-Gruppe in der zweiten Richtung einzugeben.
  20. Beschleunigungsvorrichtung nach Anspruch 19, wobei die erste Richtung eine Zeilenrichtung und die zweite Richtung eine Spaltenrichtung ist, und wobei: die Mehrzahl der ersten Multiplexer jeweils mit PEs abgestimmt sind, die in einer ersten Spalte der zweiten PE-Gruppe in dem PE- Array angeordnet sind, und die Mehrzahl der zweiten Multiplexer jeweils mit PEs abgestimmt sind, die in einer ersten Reihe der zweiten PE-Gruppe in dem PE- Array angeordnet sind.
  21. Beschleunigungsvorrichtung nach Anspruch 20, wobei: der adaptive Datenpfad-Controller einen Eingangspfad der ersten Eingangsdaten und einen Eingangspfad der zweiten Eingangsdaten so steuert, dass die Struktur des PE-Arrays in eine 2N x M/2-Struktur geändert wird, wenn eine Anfangsstruktur des PE-Arrays eine N x M-Struktur ist, die Speicherbandbreite 2x beträgt und der Geschwindigkeitsmodus der Speicherbandbreite der Niedriggeschwindigkeitsmodus ist, N eine Stapelgröße ist und M eine Gewichtsbreite ist.
  22. Beschleunigungsvorrichtung nach Anspruch 21, wobei der adaptive Datenpfad-Controller die Mehrzahl der ersten Multiplexer steuert, um die ersten Eingangsdaten von den 2N-Gruppen oder mehr zu empfangen, und die Mehrzahl der zweiten Multiplexer steuert, um die zweiten Eingangsdaten von der M/2-Gruppe zu empfangen.
  23. Datenspeichervorrichtung, umfassend: eine Zentraleinheit (CPU), die konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells, einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst werden; und einen Beschleuniger, der konfiguriert ist, um eine Struktur eines Processing Element (PE) - Arrays zu ändern durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
  24. Datenspeichervorrichtung nach Anspruch 23, wobei der Beschleuniger umfasst: das PE-Array, eine erste PE-Gruppe und eine zweite PE-Gruppe einschließend, wobei jede der ersten und zweiten PE-Gruppen eine Mehrzahl von in ersten und zweiten Richtungen angeordneter PEs einschließt; einen adaptiven PE-Array-Block, der zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array positioniert ist und konfiguriert ist, um selektiv erste Eingangsdaten einer ersten Datengruppe oder erste Eingangsdaten einer zweiten Datengruppe in die zweite PE-Gruppe in der ersten Richtung innerhalb des PE-Arrays einzugeben und um selektiv zweite Eingangsdaten einer dritten Datengruppe oder zweite Eingangsdaten einer vierten Datengruppe in die zweite PE-Gruppe in der zweiten Richtung innerhalb des PE-Arrays einzugeben; und einen adaptiven Datenpfad-Controller, der konfiguriert ist, um die Eingangsverarbeitung des adaptiven PE-Array-Blocks auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite zu steuern.
  25. Datenspeichervorrichtung nach Anspruch 24, wobei der adaptive PE-Array-Block umfasst: eine Mehrzahl erster Multiplexer, die konfiguriert sind, um die ersten Eingangsdaten in die zweite PE-Gruppe in der ersten Richtung einzugeben, und eine Mehrzahl zweiter Multiplexer, die konfiguriert sind, um die zweiten Eingangsdaten in die zweite PE-Gruppe in der zweiten Richtung einzugeben.
  26. Datenspeichervorrichtung nach Anspruch 24, wobei der Beschleuniger ferner einen PE-Controller umfasst, der konfiguriert ist, um den Geschwindigkeitsmodus der Speicherbandbreite, die von der CPU übertragen wird, an den adaptiven Datenpfad-Controller zu übertragen.
  27. Datenspeichervorrichtung nach Anspruch 23, ferner umfassend: einen Speicher-Controller, der konfiguriert ist, um den Geschwindigkeitsmodus der Speicherbandbreite an mindestens ein Speicher-Die zu übertragen; und das mindestens eine Speicher-Die, das konfiguriert ist, um einen Takt eines Speichers auf der Grundlage des Geschwindigkeitsmodus der vom Speicher-Controller übertragenen Speicherbandbreite zu ändern.
DE102020107867.6A 2019-07-08 2020-03-23 Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür Pending DE102020107867A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0082000 2019-07-08
KR1020190082000A KR20210006120A (ko) 2019-07-08 2019-07-08 데이터 저장 장치, 데이터 처리 시스템 및 이를 위한 가속 장치

Publications (1)

Publication Number Publication Date
DE102020107867A1 true DE102020107867A1 (de) 2021-01-14

Family

ID=74004653

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020107867.6A Pending DE102020107867A1 (de) 2019-07-08 2020-03-23 Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür

Country Status (5)

Country Link
US (1) US11100016B2 (de)
JP (1) JP2021012680A (de)
KR (1) KR20210006120A (de)
CN (1) CN112199036B (de)
DE (1) DE102020107867A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175355A1 (en) * 2018-11-30 2020-06-04 Electronics And Telecommunications Research Institute Neural network accelerator with systolic array structure
US11347477B2 (en) * 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations
KR20210077352A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 데이터 처리 시스템 및 이를 위한 가속 장치
US11385693B2 (en) * 2020-07-02 2022-07-12 Apple Inc. Dynamic granular memory power gating for hardware accelerators
WO2024018696A1 (ja) * 2022-07-20 2024-01-25 東京エレクトロン株式会社 リザーバ装置及びプロセス状態予測システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2537091A4 (de) * 2010-02-16 2014-08-06 Freescale Semiconductor Inc Datenverarbeitungsverfahren, datenprozessor und vorrichtung mit einem datenprozessor
US8627123B2 (en) * 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
US8826051B2 (en) 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
KR20130110459A (ko) 2012-03-29 2013-10-10 삼성전자주식회사 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법
US20150363116A1 (en) * 2014-06-12 2015-12-17 Advanced Micro Devices, Inc. Memory controller power management based on latency
KR20170124017A (ko) 2016-04-29 2017-11-09 삼성전자주식회사 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법
US10838910B2 (en) * 2017-04-27 2020-11-17 Falcon Computing Systems and methods for systolic array design from a high-level program
GB2568776B (en) * 2017-08-11 2020-10-28 Google Llc Neural network accelerator with parameters resident on chip
US10514745B2 (en) * 2017-09-29 2019-12-24 Intel Corporation Techniques to predict memory bandwidth demand for a memory device
KR102424962B1 (ko) * 2017-11-15 2022-07-25 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
US10893096B2 (en) * 2018-05-17 2021-01-12 International Business Machines Corporation Optimizing dynamical resource allocations using a data heat map in disaggregated data centers
CN109447241B (zh) * 2018-09-29 2022-02-22 西安交通大学 一种面向物联网领域的动态可重构卷积神经网络加速器架构
US11113212B2 (en) * 2018-10-23 2021-09-07 Micron Technology, Inc. Multi-level receiver with termination-off mode

Also Published As

Publication number Publication date
JP2021012680A (ja) 2021-02-04
US11100016B2 (en) 2021-08-24
US20210011860A1 (en) 2021-01-14
KR20210006120A (ko) 2021-01-18
CN112199036B (zh) 2024-02-27
CN112199036A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
DE102020107867A1 (de) Datenspeichervorrichtung, Datenverarbeitungssystem und Beschleunigungsvorrichtung dafür
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE69728559T2 (de) Verfahren und vorrichtung zur wahl von m-ansteuerungsleitungen unter n-ansteuerungsleitungen
DE69919137T2 (de) Datenspeichersystem
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE3535436C2 (de)
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE202004004227U1 (de) Vorrichtung zur gemeinsamen Nutzung von Ressourcen
DE1269394B (de) Schaltungsanordnung zur Bestimmung des Vorrangsverhaeltnisses zwischen mehreren Eingangsgroessen fuer programmgesteuerte Datenverarbeitungssysteme
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE102017128711A1 (de) Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
DE102016008985A1 (de) Servosteuersystem mit Lernsteuereinrichtung mit Funktion zur Optimierung einer Lernspeicherzuordnung
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE3618136A1 (de) Abwechselnd adressierte halbleiterspeichergruppe
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3811145C2 (de)
DE112016006015T5 (de) Maximieren der Netzwerk-Fabric-Leistung durch feingranulares Router-Link-Strommanagement
DE10036643B4 (de) Verfahren und Vorrichtung zur Auswahl von Peripherieelementen
DE112014003067T5 (de) Speicherprogrammierbare Steuerung
DE102005008778B4 (de) System und Verfahren zum Verändern einer Buskonfiguration
DE102019111564A1 (de) Verfahren und system zum konfigurieren von filterobjekten für eine controller area network-steuerung
DE60209761T2 (de) Anschluss mehrerer prozessoren auf externen speicher mit burst mode
DE102019115896A1 (de) Begrenzte zeitsteuerungsanalyse von fahrzeuginterner kommunikation