11 / 20 · Konzept
Auf N×N skalieren und Abschlussflanken zählen
Parametrisieren Sie die räumliche Größe N getrennt von der Reduktionslänge K.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Räumliche Größe und Reduktionslänge trennen
Ein N×N-PE-Gitter erzeugt eine N×N-Ausgabekachel. K ist die Reduktionsdimension und muss nicht gleich N sein. Bei N=3 und K=5 ist A 3×5, B 5×3 und C 3×3. Neun PEs verarbeiten jeweils fünf Terme und führen fünfundvierzig MACs aus. N bestimmt Verdrahtung und Versatz; K bestimmt Akkumulationsbreite, Termzählung und Einspeisedauer.
Verwenden Sie die etablierte Konvention: Löschen endet vor E0, Eingaben sind vor E_t stabil, MAC und registrierte Weitergabe erfolgen an dieser Flanke und es gibt keine zusätzliche Multipliziererpipeline. A(i,k) wird an k+i eingespeist und durchläuft j Stationen. B(k,j) wird an k+j eingespeist und durchläuft i Stationen. Beide erreichen PE(i,j) an k+i+j.
Das letzte PE ist nach E_(K+2N−3) fertig. Bei inklusiver Zählung ab E0 ergeben sich K+2N−2 advance-Flanken. Für N=K=2 ist die letzte Flankennummer drei und die Anzahl vier. Für N=3, K=5 ist die letzte Nummer acht und die Anzahl neun.
Verbindungen und Zähler parametrisieren
In Spalte Null kommt der A-Eingang eines PE vom Rand; sonst vom registrierten A-Ausgang seines linken Nachbarn. Für B gilt die entsprechende Regel mit oberem Rand und Nachbar darüber. Verbinden Sie valid und job/k-Tags über dieselben Verbindungen und teilen Sie clear und advance im gesamten Gitter.
Fordern Sie N≥1, K≥1 und AW≥2W. Ein Zähler, der Null bis K speichert, benötigt max(1,ceil(log2(K+1))) Bits. Ein k-Tag, der Null bis K−1 speichert, benötigt max(1,ceil(log2 K)) Bits. Diese Breiten unterscheiden sich, wenn K eine Zweierpotenz ist; vermeiden Sie Deklarationen mit Null Bits bei K=1.
Die letzte Randeinspeisung erfolgt an E_(K+N−2), gefolgt von N−1 Auslaufflanken. Die Anzahl der Rechenflanken schließt Initialisierung, Speicherladen und Ausgabeübertragung aus. Bei P Pausenflanken beträgt die vergangene Anzahl physischer Flanken K+2N−2+P. Zusätzliche Pipelinestufen erfordern eine neue zeitliche Analyse.
Selbst ausprobieren
Bestimmen Sie für N=4, K=3 die erste/letzte MAC-Flanke von PE(2,1), die letzte Flanke des Gitters, die Anzahl der Rechenflanken und die Anzahl physischer Flanken bei zwei Pausen.
Erklärung lesen
PE(2,1) verarbeitet k0 an E3 und k2 an E5. Das Gitter endet nach E8 und benötigt neun advance-Flanken E0..E8. Zwei Pausen ergeben elf physische Flanken, ohne Initialisierung und Ausgabeübertragung.