Search

DE-102025140363-A1 - Techniken zum Rekonfigurieren von Nachschlagetabellen unter Verwendung von Speicher während des Benutzermodus

DE102025140363A1DE 102025140363 A1DE102025140363 A1DE 102025140363A1DE-102025140363-A1

Abstract

Ein System beinhaltet ein hartes Netzwerk-on-Chip (NOC); und Nachschlagetabellen-Direktzugriffsspeicher(LUTRAM)-Schaltungen, die als Logikgatter in einem Benutzerdesign für eine integrierte Schaltung verwendbar und in einem Benutzermodus der integrierten Schaltung durch das harte NOC umprogrammierbar sind. Die LUTRAM-Schaltungen sind während des Benutzermodus der integrierten Schaltung rekonfigurierbar, indem ein Bit durch das harte NOC zur Speicherung in der einen der LUTRAM-Schaltungen bereitgestellt wird.

Inventors

  • Gaik Ming Chan
  • Sergey Gribok
  • Bee Yee Ng
  • Scott Weber

Assignees

  • ALTERA CORPORATION

Dates

Publication Date
20260507
Application Date
20251002
Priority Date
20241104

Claims (20)

  1. System, umfassend: ein hartes Netzwerk-on-Chip (NOC); und Nachschlagetabellen-Direktzugriffsspeicher(LUTRAM)-Schaltungen, die als Logikgatter in einem Benutzerdesign für eine integrierte Schaltung verwendbar und in einem Benutzermodus der integrierten Schaltung durch das harte NOC umprogrammierbar sind.
  2. System nach Anspruch 1 , wobei die LUTRAM-Schaltungen während des Benutzermodus der integrierten Schaltung rekonfigurierbar sind, indem ein Bit durch das harte NOC zur Speicherung in einer der LUTRAM-Schaltungen bereitgestellt wird.
  3. Systems nach einem der Ansprüche 1 - 2 , wobei jede der LUTRAM-Schaltungen eine Multiplexerschaltung umfasst, die einen ersten Dateneingang, der mit dem harten NOC gekoppelt ist, und einen zweiten Dateneingang, der mit einem rekonfigurierbaren Routing-Kanal in der integrierten Schaltung gekoppelt ist, umfasst, und wobei ein Bit an einem Ausgang jeder der Multiplexerschaltungen zur Speicherung in einer der LUTRAM-Schaltungen bereitgestellt wird.
  4. System nach einem der Ansprüche 1 - 3 , ferner umfassend: ein programmierbares Interconnect, wobei jede der LUTRAM-Schaltungen dazu konfigurierbar ist, entweder ein Bit, das von dem harten NOC empfangen wird, oder ein Bit, das von dem programmierbaren Interconnect empfangen wird, zu speichern.
  5. System nach einem der Ansprüche 1 - 4 , wobei jede der LUTRAM-Schaltungen Logikgatter, die ein Steuersignal empfangen, eine Impulsgeneratorschaltung, die mit den Logikgattern gekoppelt ist, und eine Decodiererschaltung umfasst, und wobei die Impulsgeneratorschaltung einen Impuls in einem Signal erzeugt, um zu bewirken, dass die Decodiererschaltung eine Speicherschaltung zum Speichern eines Bits als Reaktion auf das Steuersignal auswählt.
  6. System nach einem der Ansprüche 1 - 5 , wobei jede der LUTRAM-Schaltungen eine Multiplexer umfasst, der zum Empfangen von Auswahlsignalen und Daten, die in Speicherschaltungen gespeichert sind, gekoppelt ist.
  7. System nach einem der Ansprüche 1 - 6 , wobei die integrierte Schaltung eine konfigurierbare integrierte Schaltung ist, und wobei jede der LUTRAM-Schaltungen konfigurierbar ist, um ein Bit in einer Speicherschaltung während des Benutzermodus zu speichern, ohne irgendeinen anderen Teil der konfigurierbaren integrierten Schaltung zu rekonfigurieren.
  8. System nach einem der Ansprüche 1 - 7 , wobei ein Bit in einer Speicherschaltung in einer der LUTRAM-Schaltungen in einem Hybridmodus der einen der LUTRAM-Schaltungen durch eine Benutzerdatenleitung gespeichert wird, die mit der Speicherschaltung gekoppelt ist, und wobei die eine der LUTRAM-Schaltungen ferner Logikgatter umfasst, die den Zugriff auf die Benutzerdatenleitung in einem Nachschlagetabellenmodus der einen der LUTRAM-Schaltungen während des Benutzermodus blockieren.
  9. System nach einem der Ansprüche 1 - 8 , wobei Konfigurationsbits an Speicherschaltungen in einer der LUTRAM-Schaltungen über Konfigurationsdatenleitungen während eines Konfigurationsmodus der integrierten Schaltung bereitgestellt und gespeichert werden.
  10. Verfahren zur On-the-fly-Neuprogrammierung von Logikgattern in einem feldprogrammierbaren Gate-Array(FPGA)-Design ohne Verwenden konfigurierbarer Routing-Ressourcen, wobei das Verfahren Folgendes umfasst: Implementieren der Logikgatter unter Verwendung von Nachschlagetabellen-Direktzugriffsspeichern (LUTRAMs); und Neuprogrammieren der LUTRAMs unter Verwendung eines harten Netzwerk-on-Chip (NOC).
  11. Verfahren nach Anspruch 10 , wobei das Neuprogrammieren der LUTRAMs unter Verwendung des harten (NOC) ferner Bereitstellen eines Bits durch den harten NOC und eine Multiplexerschaltung an eine Speicherzelle in einem der LUTRAMs umfasst.
  12. Verfahren nach einem der Ansprüche 10 - 11 , wobei das Neuprogrammieren der LUTRAMs unter Verwendung des harten (NOC) ferner Bereitstellen eines Bits durch ein konfigurierbares Routing-Interconnect und eine Multiplexerschaltung an eine Speicherzelle in einem der LUTRAMs umfasst.
  13. Verfahren nach einem der Ansprüche 10 - 12 , wobei das Neuprogrammieren der LUTRAMs unter Verwendung des harten (NOC) ferner Rekonfigurieren der LUTRAMs unter Verwendung von Bits umfasst, um Konstanten oder Koeffizienten eines Multiplizierers zu ändern.
  14. Verfahren nach einem der Ansprüche 10 - 13 , wobei das Neuprogrammieren der LUTRAMs unter Verwendung des harten (NOC) ferner Anpassen von Gewichten für ein neuronales Netzwerk in einer Maschinenlernanwendung durch Rekonfigurieren der LUTRAMs umfasst.
  15. Verfahren nach einem der Ansprüche 10 - 14 , wobei das Neuprogrammieren der LUTRAMs unter Verwendung des harten (NOC) ferner Ändern fester Koeffizienten, Gewichte oder Kernels in einer Anwendung On-the-fly ohne Rekonfigurieren und Neukompilieren des FPGA-Designs, das die Anwendung implementiert, umfasst.
  16. Logikblock, umfassend: eine Nachschlagetabellenschaltung; und Speicherzellen, die gekoppelt sind, um erste in den Speicherzellen gespeicherte Bits an die Nachschlagetabellenschaltung bereitzustellen, wobei die Nachschlagetabellenschaltung konfigurierbar ist, um Logikgatter in einem Schaltungsdesign für eine integrierte Schaltung, die den Logikblock umfasst, basierend auf den ersten Bits zu implementieren, die von den Speicherzellen empfangen werden, wobei eine der Speicherzellen zum Empfangen und Speichern eines zweiten Bits während eines Benutzermodus der integrierten Schaltung gekoppelt ist, und wobei die Nachschlagetabellenschaltung während des Benutzermodus der integrierten Schaltung basierend auf dem zweiten Bit rekonfigurierbar ist, das von der einen der Speicherzellen empfangen wird.
  17. Logikblock nach Anspruch 16 , wobei die eine der Speicherzellen gekoppelt ist, um das zweite Bit während des Benutzermodus der integrierten Schaltung durch ein hartes Netzwerk-on-Chip zur Speicherung in der einen der Speicherzellen zu empfangen, um die Nachschlagetabellenschaltung zu rekonfigurieren.
  18. Logikblock nach einem der Ansprüche 16 - 17 , ferner umfassend: eine Multiplexerschaltung, die gekoppelt ist, um das zweite Bit an einem ersten Dateneingang, der mit einem harten Netzwerk-on-Chip gekoppelt ist, oder an einem zweiten Dateneingang, der mit einem rekonfigurierbaren Routing-Interconnect gekoppelt ist, zu empfangen, wobei ein Wert an einem Ausgang der Multiplexerschaltung zur Speicherung in der einen der Speicherzellen bereitgestellt ist.
  19. Logikblock nach einem der Ansprüche 16 - 18 , ferner umfassend: eine Impulsgeneratorschaltung; und eine Decodiererschaltung, wobei die Impulsgeneratorschaltung einen Impuls in einem ersten Signal erzeugt, um zu bewirken, dass die Decodiererschaltung die eine der Speicherzellen zum Speichern des zweiten Bits als Reaktion auf ein Steuersignal während des Benutzermodus auswählt.
  20. Logikblock nach einem der Ansprüche 16 - 19 , wobei die Nachschlagetabellenschaltung einen Multiplexer umfasst, der Auswahlsignale an Auswahleingängen und in den Speicherzellen gespeicherte Inhalte an Dateneingängen empfängt.

Description

HINTERGRUND Konfigurierbare integrierte Schaltungen (ICs) können durch Benutzer so konfiguriert werden, dass sie gewünschte benutzerangepasste Logikfunktionen implementieren. In einem typischen Szenario verwendet ein Logikentwickler computergestützte Designwerkzeuge (CAD-Werkzeuge), um ein benutzerdefiniertes Schaltungsdesign zu entwerfen. Wenn der Designprozess abgeschlossen ist, erzeugen die computergestützten Designwerkzeuge ein Bild, das Konfigurationsdatenbits enthält. Die Konfigurationsdatenbits werden dann in Konfigurationsspeicherelemente geladen, die konfigurierbare Logikschaltungen in der integrierten Schaltung so konfigurieren, dass sie die Funktionen des benutzerdefinierten Schaltungsdesigns ausführen. KURZBESCHREIBUNG DER ZEICHNUNGEN 1 ist ein Diagramm, das ein Beispiel für eine Nachschlagetabellen-Direktzugriffsspeicher(LUTRAM)-Schaltung, die Speicherschaltungen und eine Nachschlagetabellen(LUT)-Schaltung aufweist und in einem Hybridmodus betreibbar ist, veranschaulicht.2 ist ein Diagramm, das ein Beispiel für einen Satz von 24 LUTRAMs veranschaulicht, die in einer konfigurierbaren integrierten Schaltung (IC) implementiert werden können, gemäß den hierin offenbarten Techniken.3 ist ein Diagramm, das ein Beispiel für eine Technik zum Ändern der LUTMASK-Einstellung, die in einem LUTRAM in einer integrierten Schaltung (IC) gespeichert ist, während eines Hybridmodus unter Verwendung der hier mit Bezug auf 1-2 offenbarten Techniken veranschaulicht.4A ist ein Diagramm, das ein Beispiel für eine Benutzeranwendung für eine konfigurierbare integrierte Schaltung (IC) veranschaulicht, die LUTRAMs verwendet.4B ist ein Diagramm, das die Benutzeranwendung der konfigurierbaren integrierten Schaltung (IC) von 4A veranschaulicht, in der die Hybridmodi der LUTRAMs verwendet werden, um die Multipliziererkonstanten zu ändern, die durch die Schichten unter Verwendung der hier mit Bezug auf 1-3 offenbarten Techniken implementiert werden.5 ist ein Diagramm, das ein Beispiel für eine konfigurierbare integrierte Logikschaltung (IC) veranschaulicht.6A ist ein Blockdiagramm eines Systems, das verwendet werden kann, ein Schaltungsdesign zu implementieren, das durch Verwenden von Designsoftware zu einer programmierbaren Logikvorrichtung programmiert werden soll.6B ist ein Diagramm, das ein Beispiel für eine programmierbare Logikvorrichtung darstellt, die drei Fabric-Dies und zwei Basis-Dies aufweist, die über Mikrokontakthöcker miteinander verbunden sind.7 ist ein Blockdiagramm, das ein Rechensystem veranschaulicht, das so konfiguriert ist, dass es einen oder mehrere Aspekte der hierin offenbarten Ausführungsformen implementiert.8 ist ein Diagramm eines adaptiven Logikmoduls, das einen oder mehrere Aspekte der hier offenbarten Ausführungsformen implementieren kann. AUSFÜHRLICHE BESCHREIBUNG Kunden konfigurierbarer integrierter Schaltungen (ICs), wie etwa feldprogrammierbarer Gate-Arrays (FPGAs), müssen häufig On-the-fly-Rekonfigurierbarkeit in ihren logikbasierten Schaltungsdesigns für die konfigurierbaren ICs unterstützen. Die On-the-fly-Logikrekonfigurierbarkeit ist ein wichtiges Merkmal in mehreren Bereichen, wie etwa rekonfigurierbaren Switchboxes oder nachladbaren Gewichten in neuronalen Netzwerken für Maschinenlernanwendungen. Kunden konfigurierbarer ICs möchten häufig keine zusätzlichen konfigurierbaren Logik- und Routing-Ressourcen in konfigurierbaren ICs verwenden, um eine On-the-fly-Rekonfigurierbarkeit zu ermöglichen, da große Schaltungsdesigns für konfigurierbare ICs häufig überlastet sind und die Verwendung konfigurierbarer Routing-Ressourcen zur Logikrekonfigurierbarkeit häufig zu teuer ist. Da FPGAs größer werden, wird es schwieriger, FPGAs teilweise zu rekonfigurieren, mit mehrtägigen Kompilierungszeiten für große Schaltungsdesigns. Einige Anwendungen, wie etwa maschinelles Lernen, verwenden ähnliche Schaltungsdesigns für FPGAs wieder. Zum Beispiel verwendet ein typisches Maschinenlerninferenzdesign viele Skalarprodukte des gleichen oder ähnlichen Schaltungsdesigns, ändert aber nur die Gewichte zwischen Iterationen des Schaltungsdesigns. Für Maschinenlerntraining ist die Struktur des neuronalen Netzwerks identisch, aber die Gewichte ändern sich schneller und mit größerer Präzision. Das Implementieren großer Arrays von Multiplizierern mit hoher Präzision in einem FPGA (z. B. für ein neuronales Netzwerk) ist hinsichtlich Logik- und Routing-Ressourcen sehr teuer. Die Verwendung fester Koeffizienten ist viel effizienter, erfordert aber potenziell mehrtägige Neukompilierungszeiten für ein FPGA. Gemäß einigen hierin offenbarten Beispielen beinhaltet eine integrierte Schaltung (IC), wie etwa ein FPGA oder ein anderer Typ von konfigurierbarer IC, ein hartes Netzwerk-on-Chip (NOC) und einen Logikblock, wie etwa einen Nachschlagetabellen-Direktzugriffsspeicher (LUTRAM), der eine Speicherschaltung (z. B. Direktzugriffsspeicher oder RAM) und rekonfigurierbare Logikgatterschaltungen (z. B. Nachschlagetabellen (LUTs) od