Browse Prior Art Database

Selektives Clock-Gating fuer Pipeline-Datenpfad

IP.com Disclosure Number: IPCOM000016486D
Original Publication Date: 2003-Jul-25
Included in the Prior Art Database: 2003-Jul-25
Document File: 3 page(s) / 683K

Publishing Venue

Siemens

Related People

Juergen Carstens: CONTACT

Abstract

In vielen digitalen Schaltungen werden Pipeline-Datenpfade (Datenpfade mit nur einer Datenstromrichtung) verwendet, da einerseits eine bestimmte Verzoegerungszeit fuer die verarbeiteten Daten erwuenscht ist, andererseits die Performance (Leistungsverhalten) fuer arithmetische Operationen in Pipelines erhoeht werden kann. Der Leistungsverbrauch des Taktes (Clock-Power) kann dabei 30 - 70% der Gesamtleistung ausmachen. Dieser Leistungsverbrauch kann reduziert werden durch die Methode des „Selektiven Clock-Gating“. Dabei wird das Taktsignal ueber ein logisches Gatter mit einem anderen Signal selektiv verknuepft. Eine Bedingung dafuer ist, dass die Datenaenderungsrate in den zu optimierenden Schaltungen niedriger ist als die Taktrate. Dies trifft insbesondere auf Signalverarbeitungsschaltungen (Video-, Audio-Verarbeitung) zu. Bisher konnte auf die Datenaenderung nicht eingegangen werden, da dies ein stark dynamischer Vorgang ist. Da von seiten der Schaltung entsprechend schnell reagiert werden muss, koennen statische Verfahren zur Adaptierung hier im allgemeinen nicht helfen. Eine hingegen moeglicherweise geeignete asynchrone Logik wird industrieweit nur sehr spaerlich eingesetzt und hat derzeit praktisch kaum Relevanz.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

Selektives Clock-Gating fuer Pipeline-Datenpfad

Idea: Paul Fugger, AT-Villach

In vielen digitalen Schaltungen werden Pipeline-Datenpfade (Datenpfade mit nur einer Datenstromrichtung) verwendet, da einerseits eine bestimmte Verzoegerungszeit fuer die verarbeiteten Daten erwuenscht ist, andererseits die Performance (Leistungsverhalten) fuer arithmetische Operationen in Pipelines erhoeht werden kann. Der Leistungsverbrauch des Taktes (Clock-Power) kann dabei 30 - 70% der Gesamtleistung ausmachen. Dieser Leistungsverbrauch kann reduziert werden durch die Methode des "Selektiven Clock-Gating". Dabei wird das Taktsignal ueber ein logisches Gatter mit einem anderen Signal selektiv verknuepft. Eine Bedingung dafuer ist, dass die Datenaenderungsrate in den zu optimierenden Schaltungen niedriger ist als die Taktrate. Dies trifft insbesondere auf Signalverarbeitungsschaltungen (Video-, Audio-Verarbeitung) zu.

Bisher konnte auf die Datenaenderung nicht eingegangen werden, da dies ein stark dynamischer Vorgang ist. Da von seiten der Schaltung entsprechend schnell reagiert werden muss, koennen statische Verfahren zur Adaptierung hier im allgemeinen nicht helfen. Eine hingegen moeglicherweise geeignete asynchrone Logik wird industrieweit nur sehr spaerlich eingesetzt und hat derzeit praktisch kaum Relevanz.

Der Kern der im folgenden vorgestellten Loesung liegt in der Verbindung eines bekannten Konzepts fuer Low-Power (Clock-Gating) mit einer Architektur, die bisher nicht mit Clock-Gating kombiniert worden ist (Pipeline-Datenpfad). Dabei ermoeglicht ein digitaler Komparator (eine Vergleichseinrichtung) bestehend aus logischen XORs und ANDs als kleiner kombinatorischer Logikblock das dynamische Erkennen von Eingangsdatenaenderungen. Eine zusaetzliche Pipeline- Kette schaltet durch Clock-Gating "selektiv" (d.h. nach Auswahl) nicht benoetigte Pipeline-Stufen aus. Die Clock-Power wird damit drastisch reduziert und kann im Falle von sehr spaerlicher Datenaenderung auf wenige Prozent des urspruenglichen Wertes reduziert werden.

Eine Pipeline-Struktur kann typischerweise durch den folgenden Datenfluss dargestellt werden (siehe auch Bild 1):

x [g224] r1(x) [g224] Komb.1 [g224] r2(x) [g224] Komb.2 [g224] r3(x) [g224] ... [g224] rN(x) [g224] y

Dabei stellt x die Eingangsdaten, ri(x) (i = 1 .. N) die Registerbank (typischerweise 8 Bit oder mehr) der Pipeline-Stufe i, Komb.j (j = 1 .. M, M < N) den Kombinatorikblock j und y die Ausgangsdaten dar. Die Daten werden mit jedem Takt um eine Pipeline-Position weitergeschoben, d.h. der Wert von r2(x) zum Zeitpunkt t+1 ist gleich dem Wert von r1(x) zum Zeitpunkt t, usw.. Mit jedem Takt werden in herkoemmlichen Schaltungen saemtliche Pipeline-Stufen veranlasst, ihre Daten weiterzuschieben, auch wenn sich die Daten nicht aendern. Das heisst jedoch auch, dass jede Pipelinestufe Clock- Power konsumiert, obwohl diese eigentlich nich...