BittWare Partner IP

NVMe-Brückenplattform

NVMe Intercept AXI-Stream Sandbox IP

IA-840F with NVMe IP block
Intelliprop logo

Computergestützte Speichergeräte (CSD) ermöglichen es Speicherendpunkten, computergestützte Speicherfunktionen (CSF) bereitzustellen, um die Host-Verarbeitung zu entlasten und Datenbewegungen zu reduzieren. Funktionen wie eBPF-Verarbeitung, Verschlüsselung, Komprimierung, Dateisystemverwaltung und RAID eignen sich ideal für IntelliProp's NVMe Bridge Platform (NBP) IP Core.

Die IntelliProp IPC-NV171B-BR NVMe Bridge Platform (NBP) nutzt den IntelliProp NVMe Host Accelerator Core und den IntelliProp NVMe Target Core, um eine NVMe-Protokollbrücke zu erstellen. Die Brücke ist so konzipiert, dass Befehlsübermittlungen, Abschlussbenachrichtigungen und Datenübertragungen entweder ohne Unterbrechung durchlaufen oder zur Analyse oder Änderung abgefangen werden können. Die Architektur hat eine Schnittstelle zu einem "Sandbox"-Bereich mit einem AXI-Stream-Protokoll, so dass IntelliProp-Kunden ihre eigene benutzerdefinierte RTL und/oder Firmware in der Brücke implementieren können.

Wesentliche Merkmale

Anpassbare Sandbox mit AXI-Stream-Schnittstelle

Bis zu 6200 MB/s PCIe Gen4x4

PCIe-Switch Unterstützung für mehrere SSDs

Video

Sehen Sie sich unser Interview mit CEO Hiren Patel an

 

Marcus Weddle, BittWare

Willkommen zu unserem Video, das sich mit FPGAs zur Beschleunigung der Speicherung befasst. Im Mittelpunkt steht dabei ein Framework von IntelliProp, die NVMe-Bridge-Plattform.

Heute ist Hiren Patel, der CEO von IntelliProp, bei mir. Danke, dass Sie bei mir sind!

IntelliProp CEO Hiren Patel

Danke, Marcus - ich bin froh, hier zu sein.

Marcus

Beginnen wir mit den einfachen Bausteinen. Wir haben also einen SSD-Speicher - also einen sehr schnellen Speicher -, aber anstatt diesen beispielsweise an einen Host-PCIe-Bus anzuschließen, werden wir einen FPGA in der Mitte des Busses platzieren. Die erste Frage lautet also: Warum sollte man das tun?

Hiren

Dafür gibt es wahrscheinlich mehrere Gründe, aber ein FPGA vor einer SSD ermöglicht den Aufbau von Datenerfassungssystemen, die Daten direkt auf der SSD speichern und später über PCIe von einem Host zurücklesen können.
Aber auch hier kann man die Datenerfassung vorladen. Mit der Bridge kann man auch diesen neuen Markt angreifen, der heutzutage erforscht wird - er wächst -, nämlich die rechnergestützte Speicherung.
Wir haben die Möglichkeit, bestimmte Beschleunigungsfunktionen direkt in das FPGA zu verlagern, so dass dieses FPGA dann die Daten von der SSD abrufen, verarbeiten, zurückschieben oder an einen Host zurückschieben kann. Das sind also wahrscheinlich die beiden wichtigsten Gründe im Moment.

Marcus

Was ist das Besondere an der Verwendung eines FPGAs für die Datenerfassung? Denn... es gibt auch andere Methoden der Datenerfassung... was ist also das Besondere an der Verwendung eines FPGAs und der Verwendung dieses Brücken-Frameworks?

Hiren

Ja, wieder eine gute Frage. In einem FPGA - betrachten Sie ein FPGA wie eine leere Leinwand, richtig? Mit einem FPGA haben wir also eine Menge Verbindungen. Wir haben eine Menge Verbindungspunkte, an denen man andere Arten der Datenerfassung, Temperatursensoren usw. anschließen kann, und man kann diese Daten auf die SSD übertragen. Das ist eines der Hauptkriterien.

Das andere Kriterium ist, dass im FPGA eine leistungsstarke Verarbeitung integriert ist, Sie haben ARM-Kerne, und heutzutage können Sie mehrere Prozessoren einsetzen. Sie können alle möglichen Verarbeitungen an den Daten vornehmen, bevor sie auf der SSD landen.

Eine Brücke im Besonderen - warum die Brücke verwenden? Die Brücke ermöglicht in erster Linie den Durchgang von Daten, also den Durchgang von Schreib- und Lesezugriffen. Aber sie kann auch bestimmte Befehle abfangen. So kann der Host einen Befehl direkt an das FPGA geben und das FPGA kann dann entweder weitere Daten von der SSD abrufen, Suchvorgänge durchführen oder irgendeine Art von Beschleunigungsfunktion ausführen und diese Daten dann zurückschicken. Es gibt also eine Menge Verwendungsmöglichkeiten für das FPGA.

Die andere Sache, die ich sagen möchte, ist, dass man mit einem FPGA, weil es so anpassbar ist, tatsächlich ein einzelnes FPGA nehmen und es in mehrere Produkte einbauen kann. Man kann ein FPGA vor eine SSD als leeres Produkt setzen und dann verschiedene Algorithmen oder eine andere Beschleunigung einsetzen.

Ein Algorithmus könnte die Komprimierung sein, der andere könnte die Dekomprimierung oder die Verschlüsselung sein. Sie könnten auch Dinge wie Suchen durchführen. Dies sind alles Beschleunigungsfunktionen, die auf den jeweiligen Bedarf ausgerichtet sind und nicht nur eine Größe für alle haben.

Marcus

Hiren, Sie haben dieses Konzept jetzt mit der Bridge-Komponente des Frameworks eingeführt, bei dem die Host-CPU in der Lage ist, die SSDs zu sehen - auch wenn sie direkt mit FPGAs verbunden sind - und nicht den Host-PCIe-Bus. Das hat zwar Vorteile, aber müssen die Nutzer dafür spezielle APIs verwenden oder ihre Software ändern, damit das alles funktioniert?

Hiren

Nein, nicht direkt nach dem Auspacken. Mit der Bridge-Plattform im Gehäuse können Sie uns einfach zwischen einen Host-PC und eine SSD einstecken. Nein, es muss nichts geändert werden. Der Host wird die SSD aufzählen, als ob sie direkt angeschlossen wäre.
Wenn Sie sich mit den Beschleunigungsfunktionen oder der Datenerfassung befassen, benötigen Sie möglicherweise zusätzliche Treiber oder Sie können alles über herstellerspezifische Funktionen erledigen. Es gibt CLIs, mit denen Sie herstellerspezifische Befehle direkt an die Bridge senden können - die Bridge kann diese abfangen und die Daten dann nach Bedarf verarbeiten.

Marcus

Lassen Sie uns nun über die spezifische BittWare-Hardware und die Leistung sprechen. Ich denke, es ist wichtig zu erwähnen, dass es nicht viele FPGA-Karten auf dem Markt gibt, die SSDs direkt an das FPGA anschließen können, so wie wir es mit der BittWare IA-840f können, die Sie hier sehen können. Außerdem haben wir mit dem Agilex FPGA auf dieser Karte den Vorteil des neuesten Siliziums von Intel. Was sind also einige der Vorteile und Messgrößen, die diese Dinge mit sich bringen können?

Hiren

Ja, natürlich. Offensichtlich drängen diese neueren FPGAs zu den immer schnelleren Gen-Raten bei PCIe. Heute glaube ich, dass diese Agilex-Boards Gen 4 erreichen könnten, und Gen 5 steht kurz bevor. Und ich denke, dass diese Boards an sich schon eine enorme Leistung darstellen.

Und dann, wieder mit der Brücke, erhalten Sie die Gen 4 x16, die zum PC geht, und dann auf der Rückseite - Sie haben die Möglichkeit, mehrere SSDs zu aggregieren. Allein die Verwendung von vier SSDs mit Gen4 x4 kann helfen, einen Teil davon zu sättigen.

Wir können auch acht Laufwerke mit Gen 3 x4 Lanes einbauen, um die Sättigung zu erhöhen.
Wir können also vier Laufwerke dort hinten haben, acht Laufwerke dort hinten - wir können eine Menge davon haben. Aber im Grunde genommen läuft der gesamte Datenverkehr über dieses FPGA, so dass wir darauf entweder Berechnungen speichern oder Daten erfassen können.

Marcus

Was sind einige dieser Bandbreitenzahlen? Nehmen wir an, Sie haben vier Laufwerke an das FPGA angeschlossen oder das FPGA ist sogar mit einem PCIe-Switch mit acht Laufwerken verbunden - welche Leistungswerte können Sie dann auf Gen4-PCIe-Ebene erwarten?

Hiren

Bei Gen 4 würde ich vermuten, dass wir - nur bei einem einzigen Laufwerk - wahrscheinlich näher an die 6.000 Megabyte pro Sekunde herankommen. Bei der Gen 3-Rate können wir bereits zeigen, dass unsere Bridge mit über 3.000 bis fast 3.500 Megabyte pro Sekunde läuft. Bei Gen 4 erwarte ich eine Verdopplung dieser Leistung.

Marcus

Eine weitere Frage, die sich bei der Implementierung von FPGAs häufig stellt, ist die, wie viel eigene IP sie zusammen mit der Bridge-IP in das FPGA einbauen können. Mit anderen Worten, wie viel Platz lässt man für andere? Könnten Sie also kurz etwas dazu sagen?

Hiren

Ja, klingt gut. Auf dieser speziellen Platine gibt es, glaube ich, ein AGF027-Teil. Dieses Teil hat, würde ich sagen, wahrscheinlich etwa 900.000 ALEs/ALMs. Wir verwenden etwa 100.000 für unsere Brücke. Das ist für eine einzelne Laufwerksverbindung. Wenn Sie mehrere Laufwerksanschlüsse haben, müssten Sie etwa 4.000 ALMs hinzufügen, um das zu erweitern.

Also ja, gar nicht so schlecht. Trotzdem sind es nur etwa 10 %. Die Kunden haben also immer noch eine gute Menge an Logik zur Verfügung, um ihre Beschleunigungsfunktion hinzuzufügen.

Marcus

Hiren, Sie haben erwähnt, dass Sie ein Laufwerk oder mehrere Laufwerke direkt an die Karte anschließen können. Wenn Sie nun mehr Laufwerke anschließen möchten und die Karte physisch z. B. acht Laufwerke anschließen kann - wie genau wird das gemacht?

Hiren

Ich denke, dass man sogar mit einer einzigen Karte mehrere Laufwerke anschließen kann und dann kann man diese auch in eine Backplane erweitern, die vielleicht einen PCIe-Switch hat, mit dem man dann zusätzliche Laufwerke erreichen kann. So könnten acht Laufwerke an einen PCIe-Switch angeschlossen werden, der dann mit der BittWare-Karte verbunden wird. Ich denke, das ist eine mögliche Lösung oder Topologie, die hier möglich ist.

Marcus

Kommen wir noch einmal auf die zweite Gruppe von Anwendungsfällen zurück, über die wir gesprochen hatten - hier dient der FPGA als Inline-Beschleuniger. Dies ist Teil des größeren Bildes der rechnerischen Speicherbeschleunigung und wird für die CPU-Entlastung immer beliebter. Können Sie mir einige dieser Anwendungsfälle für den Inline-Beschleuniger für die rechnergestützte Speicherung erläutern?

Hiren

Ja, natürlich. Wir haben viele Kunden, die heute eine Data-at-Rest-Verschlüsselung durchführen. Unser FPGA sitzt also vor einer SSD oder mehreren SSDs und die Kunden nutzen die Sandbox-Bereiche, wie wir sie nennen, oder die Kundenbeschleunigungsbereiche als Data-at-Rest-Verschlüsselung. Aber Kunden können auch Suchmaschinen, Such-Offloads, Komprimierungen durchführen. eBPF ist ein weiterer wachsender Bereich.

Das sind also einige der Dinge, die Kunden tun können. Nehmen wir als Beispiel die Komprimierung oder Dekomprimierung: Mit unseren Bridges können Sie den Server oder den Host dazu bringen, komprimierte Daten unverändert über die Bridge auf die SSD zu senden.

Aber wenn die Daten abgerufen werden, könnte man eine Dekomprimierungs-Hardware-Engine in den FPGA einbauen. Diese Dekompressions-Engine kann dann die Daten dekomprimieren, bevor sie an den Server-Host zurückgeschickt werden, und ich denke, das ist ein Anwendungsfall, den wir auch sehen.

Andere Anwendungsfälle sind, wie ich schon sagte, eBPF und dann und ich weiß, dass Intelliprop an einigen Referenzdesigns dafür arbeitet und wenn es also einen weiteren Anwendungsfall gibt, den wir auch wachsen sehen: eBPF virtuelle Maschinen.

Marcus

Der eine Anwendungsfall, den Sie vorhin angesprochen haben, über den ich aber mehr erfahren wollte, ist, dass der Host einen Suchbefehl ausgibt, die Suche selbst aber auf den FPGA und die direkt angeschlossenen SSDs verlagert. Wie funktioniert das also, wie verlagert man die Suche, denn das ist etwas komplizierter als die Verlagerung der Kompression?

Hiren

Ja, das ist eine gute Frage. Eines der Dinge, die wir auf der SuperCompute '21 im November in Saint Louis gezeigt haben, ist unsere Inline-Bridge, die Suchmaschinen auslagert. Wir haben also die CPU dazu gebracht, die SSD mit einer Reihe von Daten vorzuladen. Der Server sendete einen herstellerspezifischen Befehl in die Mitte der Bridge, wo unser RTL-Code den herstellerspezifischen Befehl sah und einen Bereich von LBAs oder Adressraum erhielt, um eine bestimmte Mustersuche durchzuführen - und wir erhielten auch das Muster vom Server. Sobald wir das Muster und den zu durchsuchenden LBA-Bereich erhalten hatten, gingen wir los, lasen den gesamten Laufwerksbereich, den wir lesen sollten, suchten nach diesem bestimmten 32-Bit-Muster, fanden alle Instanzen davon - auf welchen LBAs sie auftraten -, verpackten das und schickten eine Fertigstellung zurück an den Server-Host.
Normalerweise hätte der Server ohne unseren Beschleuniger all diese Daten in seinen Systemspeicher gelesen, die Suche durchgeführt und dann die Daten weggeworfen. Ohne all diese Datenbewegungen musste er uns nur einen Befehl erteilen, und wir schickten einfach eine Antwort zurück, die besagte: "Hier sind alle Orte, an denen wir sie gefunden haben." Der FPGA war wirklich in der Lage, das zu tun, und zwar viel, viel schneller, und wir hatten auch eine Grafik, die das zeigte.

Ja, jetzt sehen wir uns also einen Teil dieser Demo an. Die obere Zeile zeigt, dass die CPU-Last bei etwa 90 % liegt, während die direkte Suche durchgeführt wird, aber dazwischen ist die FPGA-Offload-Version natürlich um ein Vielfaches schneller und entlastet die CPU... und welchen FPGA verwenden wir hier?
Also, ja, die Demo im Video wird auf einem Intel Stratix 10 DX durchgeführt.

Wie kann man erkennen, wann man diese spezielle Rahmen-IP mit der Bridge verwenden muss? Wie kann man erkennen, wann man genau diese Bridge-Komponente braucht?
Ja, das ist eine gute Frage. Nochmals, es ist eine Pass-Through-Bridge. Wir haben die gesamte NVMe-Komplexität eliminiert, indem wir eine AXI-Stream-Schnittstelle geschaffen haben, in die Kunden ihre Logik einbauen können. Die Kunden sind also gut darin, die Beschleunigungsfunktion auszuführen - darin sind sie Experten - sie sind vielleicht keine Experten für NVMe, und genau hier kommt das Framework zum Tragen. Wir stellen die Daten und die Befehle und all das als Steuer- und Dateninformationen über AXI-Stream direkt in der Mitte bereit und lassen die Kunden dann entscheiden, was sie mit dieser Logik tun wollen.
Und auf der anderen Seite haben wir ebenfalls eine Steuer- und Datenebene - wieder ein AXI-Stream -, die die Daten weiter auf die SSD überträgt.
Es funktioniert in beide Richtungen, so dass wir bei der Benutzerfreundlichkeit wirklich glänzen. Die Kunden, deren Fachwissen sich auf die Beschleunigungsfunktion bezieht, können diese dann in die Sandbox einbringen und loslegen.
Die Markteinführungszeit ist viel kürzer. Und mit der Hilfe von BittWare im BittWare-Board können wir diese Zeit sogar noch weiter verkürzen. Denn jetzt haben sie ein Silizium, in das sie die Sandbox-Bridge einbauen können - die NVMe-Bridge-Plattform - und dann haben sie eine Plattform, auf der sie ihre Beschleunigungsfunktion weiter ausbauen können.

Marcus

Okay, darauf aufbauend - und das ist meine letzte Frage - für die Zuschauer da draußen, die darüber nachdenken, diese NVMe-Bridge-IP selbst zu entwickeln, anstatt IntelliProp zu verwenden ... wie lange hat IntelliProp eigentlich gebraucht, um dies zu entwickeln, und wie einfach ist es jetzt, da Sie es haben, Anwendungen damit zu entwickeln?

Hiren

Ja, das klingt gut. Dies ist also wieder ein Rahmen, den wir irgendwie, ich würde sagen, wir haben die Tatsache, dass man mit NVMe interagieren muss, irgendwie extrapoliert oder versteckt. Man muss nichts über NVMe wissen. Man muss nur wissen, welche Adressen und Steuerinformationen man bekommt.

Die Brücke selbst hat uns, IntelliProp, wahrscheinlich anderthalb Jahre gekostet, um sie zu entwickeln und die gewünschte Leistung zu erreichen. Letztendlich sparen wir Zeit für unsere Kunden.

Ein Beispiel dafür ist die SuperCompute '21-Demo, die wir in etwa einem Monat durchgeführt haben. Ohne die Bridge hätten wir viel länger gebraucht. Allein mit der Bridge, mit dem Wissen um die Kontrollinformationen - die Dateninformationen, die wir bekamen - brauchten wir einen Monat, um die Beschleunigungssuchfunktion und die Fähigkeit, Daten zurückzusenden, zu realisieren.

Wie gesagt, es ist ein Gerüst, es ist alles vorgefertigt, es ist durchgespült. Sie müssen sich nur auf Ihre Beschleunigung konzentrieren.

Marcus

In Ordnung, ausgezeichnet. Danke, dass Sie heute mit mir über all das gesprochen haben, Hiren - ich weiß das zu schätzen.

Hiren

Ich danke Ihnen.

Marcus

Das ist also die NVMe-Brückenplattform, ein Framework von IntelliProp, das auf BittWare FPGA-Karten verfügbar ist. Speziell schauen wir uns heute die IA-840F mit direkt angeschlossenen SSDs an. Um mehr zu erfahren, besuchen Sie die BittWare-Website und vielen Dank fürs Zuschauen.

Eigenschaften

  • Vollständige Konformität mit der NVM Express 1.4c-Industriespezifikation
  • Automatisierte Initialisierung mit PCIe Hard Block
  • PCIe-Switch-Unterstützung für mehrere SSDs
  • Automatisierte Befehlsübermittlung und -ausführung
  • Skalierbare E/A-Warteschlangentiefe
  • Entkoppelte Front- und Back-End-Schnittstellen ermöglichen flexible Benutzerlogik und Anwendungen
  • Flexibler Datenpuffertyp und -größe
  • AXI Stream gesteuerte Befehls- und Datenpfade
  • Datenstrom enthält Befehlsparameter inline
  • Unterstützung für Blockgrößen von 512 Byte bis 4kB
  • Die Schnittstelle zur Anwendungsschicht ermöglicht es dem Prozessor, die Kontrolle zu übernehmen oder Admin-Befehle zu ändern
  • Verilog- und VHDL-Wrapper

E/A-Durchsatz der NVMe-Brückenplattform

NVMe Bridge Platform Random I/O Example Throughput

Fakten zur NVMe-Brückenplattform IP Core

Bereitgestellt mit Kern

  • Dokumentation: umfassende Benutzerdokumentation
  • Formate für Entwurfsdateien: Verschlüsseltes Verilog
  • Constraints-Dateien: Werden pro FPGA bereitgestellt
  • Verifizierung: ModelSim-Verifikationsmodell
  • Instanziierungsvorlagen: Verilog (VHDL-Wrapper verfügbar)
  • Referenzdesigns und Anwendungshinweise: Synthese- und Place-and-Route-Skripte
  • Zusätzliche Elemente: Referenzentwurf 

Verwendetes Simulationswerkzeug:
QuestaSim (kontaktieren Sie IntelliProp für die neuesten unterstützten Versionen)

Support:
Telefon- und E-Mail-Support wird für voll lizenzierte Kerne für einen Zeitraum von 6 Monaten ab dem Lieferdatum bereitgestellt.

Anmerkungen:
Andere Simulatoren sind verfügbar. Bitte kontaktieren Sie IntelliProp für weitere Informationen.

Blockdiagramm, Datenblatt und Produktdetails

Anwendungen

Die NBP IP kann in Computational Storage Devices (CSD) oder Computational Storage Arrays (CSA) mit PCIe Gen4 to Host und mehreren PCIe Gen4 SSDs über einen Switch oder separate PCIe-Verbindungen eingesetzt werden.

Funktionelle Beschreibung

Der IntelliProp NBP, IPC-NV171B-BR, implementiert eine Protokollbrücke, indem er Befehle über den IntelliProp NVMe Target Core empfängt und analysiert und sie an den IntelliProp NVMe Host Accelerator Core zur Übermittlung an den NVMe SSD Endpoint weiterleitet. Eine anpassbare Überbrückungslogik zwischen diesen beiden Kernen erleichtert die Befehlsverwaltung, einschließlich der Weiterleitung und Verfolgung ausstehender Befehle und der entsprechenden Weiterleitung von Datenzugriffen, während die Verwendung des "Sandbox"-Bereichs Sichtbarkeit und Flexibilität in Bezug auf die gepufferten Daten bei der Übertragung zwischen dem Host und dem Target bietet.

Register in der Überbrückungslogik bieten der Firmware einen Mechanismus zur Steuerung der Datenbewegung, zur manuellen Ausgabe einzelner Befehle und zur Steuerung von Status und Verhalten der Überbrückungsfunktion. Von einem Prozessor oder einem anderen Verwaltungsagenten wird erwartet, dass er administrative Befehle vom NVMe-Zielkern empfängt und ordnungsgemäß ausführt, während E/A-Befehle von der Überbrückungslogik autonom ausgeführt werden. Folglich bietet der NBP Transparenz zwischen dem Host und dem Endpunkt-SSD, während er dem Entwickler Flexibilität bei der Befehls- und Datenmanipulation bietet.

Leere Überschrift

Leerer Kopfi

Block-Beschreibungen

NVMe-Ziel-Kern

Der NVMe Target Core ist der IntelliProp-Kern der Standardversion (IPC-NV163A-DT) und definiert Hardware, die in Verbindung mit dem PCIe-Kern eine konforme NVMe-Geräteschnittstelle implementiert. Der NVMe Target Core ruft einen Befehlsübermittlungseintrag vom Systemhost über die PCIe-Schnittstelle ab und legt den Eintrag in einem der vielen Befehls-FIFOs ab. Es gibt zwei Daten-Axi-Streams (Vollduplex), einen Command Context Stream und einen Completion Context Stream. Beim Empfang eines Befehlsabschlusses füllt der NVMe Target Core automatisch interne Felder aus und sendet den Abschluss an das Host-System.

NVMe-Befehlsbeschleuniger

Automatisierte interne Zustandsautomaten interagieren mit dem NVMe Target Core, um Submission Queue-Einträge abzuholen und Completion Queue-Einträge zu veröffentlichen. Daten und Befehle werden der Benutzerlogik über 4 AXI-Stream-Schnittstellen präsentiert. Nach Erhalt eines IO-Befehls vom NVMe Target Core leitet der NVMe Command Accelerator den Befehl über einen AXI Stream weiter und interagiert dann mit dem PCIe Endpoint Core, um Daten zwischen dem Anwendersystem und dem NVMe Host zu übertragen. Integrierte Register ermöglichen dem Benutzer die Kontrolle der Systemkonfiguration und des Kernstatus.

NVMe-Befehlsübersetzer

Verhandelt NVMe-Befehle, -Daten und -Abschlüsse mit dem NVMe Command Accelerator über 4 AXI-Stream-Schnittstellen. Es gibt zwei AXI-Datenströme (Vollduplex), einen Befehlskontextstrom und einen Abschlusskontextstrom. Beim Empfang eines Befehls weist dieser Block Pufferspeicherplatz zu, um die Datenübertragung vom NVMe-SSD unterzubringen, und leitet dann den Befehl an den NVMe Host Accelerator zur Ausgabe an das SSD weiter. Wenn sowohl die Daten als auch der NVMe-Abschluss vom SSD zurückkommen, gibt dieser Block einen Abschluss an den NVMe-Befehlsbeschleuniger zurück und gibt den Pufferspeicher frei. Integrierte Register ermöglichen die Benutzersteuerung der Systemkonfiguration und des Kernstatus.

Sandkasten

Der Benutzerlogikbereich im NBP bietet Benutzern die Flexibilität, benutzerdefinierte Logik zwischen dem NVMe-Befehlsbeschleuniger und dem Befehlsübersetzer einzufügen. Diese Logik muss die standardisierten AXI-Stream-Schnittstellen zur Übertragung von Befehlen, Abschlüssen und Daten einhalten. Befehle und Vervollständigungen können entweder direkt durchgereicht oder zur Laufzeit geändert (und intern verfolgt) werden. Die Daten enthalten Befehlsparameter inline und können daher vom entsprechenden Befehlskontext getrennt werden. Ohne Einschränkungen hinsichtlich der Reihenfolge der Daten oder der Latenzzeit kann die Benutzerlogik je nach Anwendung eine Vielzahl von Formen annehmen.

NVMe-Host-Beschleunigerkern

Der NVMe Host Accelerator Core ist der IntelliProp Core der Standardversion (IPC-NV164A-HI) und implementiert Hardware zum Aufbau von Befehlen in einer Befehlswarteschlange und zur Benachrichtigung des NVMe-SSD über die verfügbaren Befehle über die PCIe Root Complex Core-Schnittstelle. Der NVMe Host Accelerator Core verfügt über eine fest verdrahtete Schnittstelle zum Einrichten von Befehlen und zum Abrufen von Fertigstellungen. Die AXI-Slave- und NVMe Host Accelerator Core-Register stehen auch zur Verfügung, damit ein Mikroprozessor Befehlsübermittlungen einrichten und Erledigungen abrufen kann.

Leere Überschrift

Leere Überschrift

Detaillierte Funktionsliste

Insgesamt

  • Komplettlösung von der Stange; sofort einsatzbereit
  • Unterstützt mehrere NVMe-SSDs (oder HDDs) direkt oder über einen mitgelieferten PCIe-Switch
  • PCIe Gen4 zum Host und mehrere PCIe Gen4 SSDs über einen Switch oder separate PCIe-Verbindungen
  • Sandbox mit AXI-Stream-Schnittstelle für Steuerung und Daten
  • Mit dem System verbundener Prozessor für zusätzliche Flexibilität bei den Berechnungsfunktionen

Sandkasten spezifisch

  • Vier AXI-Stream-Schnittstellen liefern Befehle, Abschlüsse und Daten (Vollduplex einschließlich Seitenband-Metadaten)
  • Prozessoranschlüsse für zusätzliche Flexibilität
  • Implementierungsoptionen umfassen RTL oder FW für die Beschleunigung

FPGA/Hardware spezifisch

  • PCIe Gen4-Hardblocks bereits angeschlossen
  • 6200 MB/s maximaler Durchsatz (Gen4x4-Schnittstelle)
  • Integriert in Intel Quartus 21.3 Pro Tools
    Synthese-Skripte und Timing-Beschränkungen

Leere Überschrift

Leere Rubrik8

Unterstützte FPGA-Bausteine

GerätGeschwindigkeitALUTsFFsM20k
Intel Agilex F-Serie-23167422136190
Intel Stratix 10 DX-13158920038190

Liefergegenstände

Der Kern umfasst alles, was für eine erfolgreiche Umsetzung erforderlich ist:

  • Verschlüsselter, synthetisierbarer RTL-Code für die Definition von IP-Kernen
  • Verschlüsseltes ModelSim/QuestaSim-Simulationsmodell
  • Umfassende Benutzerdokumentation
  • Referenzdesign
    • Beispiel für ein einfaches Referenzprojekt einschließlich:
      • NVMe Host Accelerator IP-Kern-Instanz
      • NVMe Target IP-Kerninstanz
      • NVMe-Befehlsbeschleuniger
      • NVMe-Befehlsübersetzer
      • Beispiel Sandbox-Block
      • Prozessor
      • Erinnerungen
    • Skripte für Synthese und Place & Route
    • Referenz-Kernsteuerungs-Firmware

Bedingungen und Konditionen

Modifikationen: Kernmodifikationen an den IP-Kernen von IntelliProp sind generell nicht erlaubt. Jegliche Modifikationen, die gewünscht werden, müssen IntelliProp vorgelegt werden, um die Plausibilität der Integration solcher Änderungen zu bestimmen.

Unterstützung: Telefon- und E-Mail-Support wird für voll lizenzierte Kerne für einen Zeitraum von 6 Monaten ab dem Lieferdatum bereitgestellt.

Interessieren Sie sich für Preise oder weitere Informationen?

Unser technisches Vertriebsteam steht bereit, um Ihnen Informationen zur Verfügbarkeit und Konfiguration zu geben oder Ihre technischen Fragen zu beantworten.