DE60210494T2 - Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung - Google Patents

Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung Download PDF

Info

Publication number
DE60210494T2
DE60210494T2 DE60210494T DE60210494T DE60210494T2 DE 60210494 T2 DE60210494 T2 DE 60210494T2 DE 60210494 T DE60210494 T DE 60210494T DE 60210494 T DE60210494 T DE 60210494T DE 60210494 T2 DE60210494 T2 DE 60210494T2
Authority
DE
Germany
Prior art keywords
bit
bits
significant bits
adder
significant
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.)
Expired - Fee Related
Application number
DE60210494T
Other languages
English (en)
Other versions
DE60210494D1 (de
Inventor
Santanu Dutta
Deepak Singh
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.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE60210494D1 publication Critical patent/DE60210494D1/de
Application granted granted Critical
Publication of DE60210494T2 publication Critical patent/DE60210494T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Description

  • Die vorliegende Erfindung betrifft die digitale Datenverarbeitung und im Besonderen die Reduzierung der Verarbeitungszeit für komplexe arithmetische Datenpfadberechnungen in zeitempfindlichen digitalen Verarbeitungsanwendungen.
  • Arithmetik- und Logikschaltungen für die Datenverarbeitung wurden für eine Vielzahl von Anwendungen konzipiert und werden in fast allen Industriezweigen eingesetzt. Unter vielen anderen umfassen diese Anwendungen jene, bei denen programmierte Computeranordnungen, diskrete Logikschaltungen und halbprogrammierbare logische Bauteile eingesetzt werden. Aus vielerlei Gründen werden viele dieser Anwendungen für die Verarbeitung von Videodaten ausgelegt und erfordern die Durchführung spezieller Verarbeitungsoperationen in minimaler Zeit. Einige Anwendungen erfordern ferner eine Hochgeschwindigkeits-Berechnungsmaschine, die komplexe arithmetische Berechnungen in dem gleichen minimalen Zeitrahmen ausführen kann, wie er typischerweise relativ einfachen arithmetischen Berechnungen zugewiesen wird.
  • Die Verarbeitung von Videodaten ist ein Beispiel von vielen Anwendungen, die relativ komplexe Berechnungen erfordern. Viele dieser Anwendungen für die Verarbeitung von Videodaten erfordern eine Signalverarbeitungsschaltung, die in der Lage ist, immer komplexere mathematische Funktionen mit immer höheren Geschwindigkeiten durchzuführen. Unglücklicherweise werden mit der Erzielung hoher Datenverarbeitungsgeschwindigkeiten und der Handhabung digitaler Daten in komplexeren mathematischen Operationen, die zeitaufwändige arithmetische Datenpfadberechnungen erfordern, entgegengesetzte Ziele verfolgt.
  • Verschiedene Videodatenfilter werden in speziellen Videosignalverarbeitungsverfahren wie der Komprimierung und Dekomprimierung von Videodaten in Echtzeit verwendet. In einigen Anwendungen ist eine Art eines speziellen Videodatenfilters, bekannt als Polyphasenfilter, von Nutzen. Bei der Videoverarbeitung wird ein Polyphasenfilter manchmal eingesetzt, um die Größe von Pixeln zu ändern, indem gespeicherte Daten, die die horizontalen und vertikalen Zeilen zur Auffrischung der Anzeige darstellen, manipuliert werden. Bei diesen Anwendungen ist das Verhältnis der Anzahl der Ausgangspixel zur Anzahl der Eingangspixel als Zoomfaktor definiert, während bei der Universalfilterung die Anzahl der Ausgangspixel der Anzahl der Eingangspixel entspricht. Der Vorgang der Größenänderung ist auch als Expansion oder Upsampling bekannt, wenn der Zoomfaktor größer als Eins ist; sonst ist der Vorgang der Größenänderung typischerweise als Kompression oder Downsampling bekannt. Normalerweise wird der Polyphasenfilter zur Änderung der Größe eines Bildes (nach oben oder nach unten) zur Schaffung eines feststehenden Zooms so ausgelegt, dass seine Koeffizienten als Funktion der Position oder Phase des gerade verarbeiteten Pixels definiert werden.
  • Zur Veränderung der Größe in Hochpräzisions-Videoanwendungen wird die Polyphasenfilterung mit einer eindeutigeren Architektur ausgeführt, um die mathematischen Operationen unterzubringen, die zur Erzielung der Präzision erforderlich sind; typischerweise wird die Polyphasenfilterung in einer Form ausgeführt, die als „transponierte Polyphasenfilterung" bezeichnet wird. Für die typischeren Videoanwendungen wird die Polyphasenfilterung als ein direkter Polyphasenfilter ausgeführt, der einen Rechenarchitektur einsetzt, die üblicher für die Universalfilterung wie die FIR-Filterung (engl. finite impulse response, FIR) ist. Der Einsatz von anwenderspezifischen Logikschaltungen zur Verarbeitung von arithmetischen Datenpfadberechungen mit der erforderlichen Geschwindigkeit ist jedoch zeit- und kostenaufwändig in Bezug auf die Ausführung und die Prüfung. Es entstehen erhebliche Kosten im Zusammenhang mit der Auslegung, der Herstellung und der Instandhaltung der zum Schaffen derartiger Funktionen eingesetzten integrierten Schaltungen. Beim Einsatz von herkömmlichen oder Bibliotheken entnommenen Logikschaltungen ist die Ausführung und Prüfung einfacher und somit nicht so kostenaufwändig, es wird jedoch nicht die erforderliche Arbeitsgeschwindigkeit erzielt, wenn sie in einem direkten Standardbetrieb eingesetzt werden.
  • Die erforderlichen mathematischen Operationen in Datenverarbeitungsfiltern werden typischerweise durch eine Folge von grundlegenden arithmetischen Operationen ausgeführt. Die Folge von Berechnungen wird für jedes Pixel einer Videoanzeige wiederholt. Die Länge einer Pipelinestufe in einem Rechendatenpfadentwurf wird gewöhnlich durch die maximale Anzahl von arithmetischen Operationen bestimmt, die innerhalb eines Zieltaktzyklus erreicht werden kann, wobei der Zieltaktzyklus aus der Anzahl von Pixeln ermittelt wird, die pro Echtzeiteinheit verarbeitet werden müssen, um die Videoanzeige zu unterstützen. Die Effizienzen in den zugrunde liegenden sich wiederholenden elementaren arithmetischen Berechnungen, die die mathematischen Operationen höherer Ordnung imp lementieren, verbinden sich durch Wiederholung und ergeben eine erhebliche Verbesserung der Gesamtverarbeitung.
  • Dementsprechend besteht ein erkannter Bedarf an der Entwicklung von Filterarchitekturen zur Videoverarbeitung, bei denen herkömmliche oder Bibliotheken entnommene Funktionsblöcke eingesetzt werden, die so angeordnet sind, dass der Datenverarbeitungsdurchsatz erhöht wird und komplette Datenpfadberechnungen innerhalb eines Zieltaktzyklus ausgeführt werden.
  • Die vorliegende Erfindung betrifft eine digitale Filterschaltungsanordnung, die die oben genannten Probleme löst und die sonst für die Ausführung arithmetischer Berechnungen, die ein Bestandteil von Filteroperationen sind, erforderliche Zeit reduziert. Die vorliegende Erfindung wird beispielhaft anhand einer Anzahl von Ausführungsformen und Anwendungen dargelegt, von denen einige nachfolgend geschildert werden.
  • Gemäß einem Aspekt betrifft die vorliegende Erfindung eine digitale Filterschaltungsanordnung nach Anspruch 1.
  • Die vorliegende Erfindung soll in den verschiedensten Arten von Filteranwendungen eingesetzt werden können, und es hat sich herausgestellt, dass sie besonders nützlich für Videofilteranwendungen und andere Anwendungen ist, die von einer digitalen Filterschaltungsanordnung profitieren, die relativ große binäre Zahlen in einer relativ kurzen Zeit addieren und subtrahieren kann. Bei spezielleren Ausführungsbeispielen kann die vorliegende Erfindung als Teil eines digitalen Pixeldatenfilters ausgeführt werden, der für verschiedene Filteroperationen, wie die Skalierung und die Polyphasenfilterung, eingesetzt wird.
  • Es ist anzumerken, dass in der US-amerikanischen Patentschrift 5.504.698 eine Doppelfunktions-Addierschaltung beschrieben wird. Die Doppelfunktions-Addierschaltung erzeugt eine Verzweigungsadresse auf der Grundlage eines aktuellen Programmzählers und eines Versatzwortes von m Bits während der Adressenverzweigungsbefehlsoperation. Zusätzlich erzeugt die Doppelfunktions-Addierschaltung einen nächsten Programmzähler als nächste Ausführungsadresse durch die Erhöhung des aktuellen Programmzählers um Eins. Die Doppelfunktions-Addierschaltung umfasst einen m-Bit-Volladdierer, einen (n-m)-Bit-Inkrementierer, einen (n-m)-Bit-Dekrementierer und eine logische Addiererauswahlschaltung. Die logische Addiererauswahlschaltung empfängt ein Addierer-Übertragbit von dem m-Bit-Volladdierer und ein Bit <15> von dem m-Bit-Versatzwort und steuert eine Operation der Addiererauswahllogik so, dass entweder eine Inkrementieroperation, eine Dekrementieroperation oder eine Umgehungsoperation erzeugt wird.
  • Weitere Aspekte und Vorteile betreffen spezielle Ausführungsbeispiele der vorliegenden Erfindung.
  • Die obige Zusammenfassung der vorliegenden Erfindung ist nicht dazu gedacht, jedes dargestellte Ausführungsbeispiel oder jede Ausführungsform der vorliegenden Erfindung zu beschreiben. Die folgenden Figuren und die ausführliche Beschreibung legen diese Ausführungsbeispiele genauer dar.
  • Unter Berücksichtigung der folgenden ausführlichen Beschreibung der verschiedenen Ausführungsformen der Erfindung in Verbindung mit den begleitenden Zeichnungen wird die Erfindung möglicherweise vollständiger verstanden; dabei zeigen:
  • 1 ein allgemeines Blockschaltbild eines erfindungsgemäßen Beispiels für eine Datenverarbeitungsschaltung,
  • 2 ein allgemeines Blockschaltbild einer erfindungsgemäßen funktionellen Datenpfadeinheit für einen rekonfigurierbaren digitalen Filter,
  • 3 ein beispielhaftes Ablaufdiagramm für die Datenhandhabung durch einen Datenpfad für eine Zoomberechnung eines erfindungsgemäßen direkten Polyphasenfilters, der im Panoramabetrieb arbeitet,
  • 4 ein Blockschaltbild einer erfindungsgemäßen Auswahllogik zur Beschleunigung einer 24-Bit-Additionsberechnung in einem digitalen Filter,
  • 5A ein Blockschaltbild einer erfindungsgemäßen Auswahllogik zur Beschleunigung einer 25-Bit-Additionsberechnung in einem digitalen Filter,
  • 5B ein Blockschaltbild einer erfindungsgemäßen Auswahllogik zur Ermittlung eines Zwischenübertrags in einer 25-Bit-Additionsberechnung eines digitalen Filters,
  • 5C ein Blockschaltbild einer erfindungsgemäßen Auswahllogik zur Beschleunigung einer 4-Bit-Additionsberechnung in einem digitalen Filter.
  • Die Erfindung kann zwar verschiedenen Abwandlungen unterzogen werden und alternative Formen aufweisen, von denen Einzelheiten beispielhaft in den Zeichnungen dargestellt und genauer beschrieben werden. Es versteht sich jedoch, dass die Erfindung nicht auf die speziellen beschriebenen Ausführungsbeispiele beschränkt ist. Die Erfindung soll im Gegenteil alle Änderungen, Entsprechungen und Alternativen abdecken, die in den Rahmen der Erfindung fallen, wie er in den anhängenden Ansprüchen definiert ist.
  • Die vorliegende Erfindung soll in den verschiedensten Arten von Filteranwendungen eingesetzt werden können, und es hat sich herausgestellt, dass sie besonders nützlich für Videofilteranwendungen und andere Anwendungen ist, die von einer digitalen Filterschaltungsanordnung profitieren, die relativ große binäre Zahlen in einer relativ kurzen Zeit addieren und subtrahieren kann. Verschiedene Aspekte der Erfindung sind durch eine Beschreibung von Beispielen erkennbar, die diese Anwendungen einsetzen.
  • Arithmetische Berechnungen mit längeren binären Zahlen können zum Erzeugen eines Ergebnisses mehrere Taktzyklen in Anspruch nehmen. Gemäß einer beispielhaften allgemeinen Schaltungsanordnung der vorliegenden Erfindung ist die Binärzahlarithmetik als eine Kombination von arithmetischen Operationen an einem Teil jeder Binärzahl und logischen Operationen ausgeführt, die weitere Teile der eingegebenen Binärzahlen betreffen. Durch die Reduzierung der für die Durchführung derartiger arithmetischer Berechnungen erforderlichen Zeit, beispielsweise von einer Vielzahl von Taktzyklen auf einen einzigen Taktzyklus, wird der Datendurchsatz erheblich verbessert. Als Alternative werden die Berechnungsmengen pro Taktzykluseinheit erhöht ohne den Durchsatz zu verringern.
  • Gemäß einem ersten allgemeinen Ausführungsbeispiel der vorliegenden Erfindung ist eine Schaltungsanordnung so ausgelegt, dass sie einen ersten binären Operanden von N Bits und einen zweiten binären Operanden von M Bits addiert, wobei N größer oder gleich M ist. Die Schaltungsanordnung umfasst einen Addierer, der mit einer Multiplexerschaltung verbunden ist. Ein repräsentativer Satz von Bits mit geringster Wertigkeit des ersten und des zweiten binären Operanden werden addiert und erzeugen eine Teilsumme von Bits mit geringster Wertigkeit und einen Übertrag. Eine logische Schaltung, beispielsweise eine 4-1-Demultiplexerschaltung oder eine andere in gleicher Weise funktionierende Datenweiterleitungsschaltung, ist so ausgelegt, dass sie als Ausgabe eine Teilsumme der Bits mit höchster Wertigkeit erzeugt, indem sie entweder einen repräsentativen Satz der Bits mit höchster Wertigkeit des ersten binären Operanden oder einen Versatz des repräsentativen Satzes der Bits mit höchster Wertigkeit des ersten binären Operanden weiterleitet. Die Datenweiterleitungsschaltung reagiert auf Auswahldaten, wobei die Auswahldaten eine Funktion des Bits mit höchster Wertigkeit des repräsentativen Satzes von Bits mit geringster Wertigkeit des ersten binären Operanden sind. Die Schaltungsanordnung kann einen M- Bit-Addierer umfassen, und die Multiplexerschaltung kann so ausgeführt werden, dass sie eine Teilsumme von N minus M (N-M) Bits mit höchster Wertigkeit auswählt, die auf den Übertrag des M-Bit-Addierers und das M-te Bit des ersten Operanden reagiert.
  • Andere Aspekte der vorliegenden Erfindung beinhalten Variationen des obigen Lösungsansatzes. Gemäß einem derartigen Aspekt enthält jeder Operand ein Vorzeichenbit als entsprechendes Bit mit höchster Wertigkeit, und die Multiplexerschaltung ist so ausgelegt, dass sie entweder die N-M Bits mit höchster Wertigkeit des ersten Operanden, die N-M Bits mit höchster Wertigkeit des ersten Operanden erhöht um Eins oder die N-M Bits mit höchster Wertigkeit des ersten Operanden verringert um Eins auswählt. Gemäß einem weiteren Aspekt haben die Operanden keine Vorzeichen, N-M = 1, und die Multiplexerschaltung ist unter Verwendung einer Logikschaltung, beispielsweise eines EX-KLUSIV-ODER-Gatters, implementiert.
  • Ein weiterer wichtiger Aspekt und eine weitere Anwendung der vorliegenden Erfindung ist in 1 durch eine digitale Filterschaltung 100 dargestellt. Die Datenpfadeinheit 102 ist eine als Pipeline ausgeführte Kaskade der kombinatorischen Logikschaltungen 110a, 110b und umfasst arithmetische Operationen wie Additionen, Subtraktionen, Multiplikationen bzw. logische Operationen wie UND, ODER, NICHT, MULTIPLEX, SCHIEBEN. Nach jeder kombinatorischen Logikschaltung wird ein als Pipeline ausgeführtes Register 112a, 112b usw. dazu eingesetzt, das Ergebnis der vorher ausführenden kombinatorischen Logikschaltung der nächsten kombinatorischen Logikschaltung zuzuführen. Der Datenpfad 102 wird von dem Steuer-/Modusprozessor 120 mit Daten gesteuert, die durch den Speicher 130 zur Verarbeitung durch die als Pipeline ausgeführte Datenpfadeinheit 102 zugeführt und versendet werden. Die Geschwindigkeit der Operationen hängt unter anderem beispielsweise von der Taktzeit ab, und die Taktzeit selbst hängt von dem Umfang der Logik zwischen jeweils zwei Pipeline-Stufen ab. Je geringer der Umfang der Logik zwischen den Pipeline-Registern, umso schneller kann der Takt sein und somit der Durchsatz verbessert werden. Wird die Logik jedoch zu dünn verteilt, ergibt sich eine große Anzahl von Pipeline-Stufen, bei denen die Anfangslatenzzeit ziemlich lang ist.
  • 2 zeigt eine spezielle beispielhafte Anwendung der vorliegenden Erfindung, bei der ein horizontaler Filter 200 für einen Medienprozessorchip eingesetzt wird, um komplexe mathematische Skalierungsberechnungen durch die Ausführung einer Panoramabild-Zoomfunktion durchzuführen. Ein Zoomfaktor bestimmt, wie ein Videobild skaliert wird. Ein Zoomwert kleiner Eins weist auf eine Bildkomprimierung und ein Zoomwert größer Eins auf eine Bilddekomprimierung hin. Zur erneuten Skalierung eines Videobildes wird ein Algorithmus eingesetzt, der zu genauen Zeitpunkten ermittelt, ob ein Ausgangspixel des Videobildes erzeugt werden soll, wobei das Ausgangspixel bestimmte Eigenschaften aufweist.
  • Der im direkten Polyphasenfilterbetrieb funktionierende Videofilter 200 wird entweder für die Komprimierung oder die Dekomprimierung von Videobildern eingesetzt. Im Komprimierungsbetrieb verbraucht (beispielsweise schiebt ein, multipliziert mit geeigneten Filtergleichungskoeffizienten und akkumuliert) der Filter kontinuierlich jedes einer Folge von Eingangspixeln von einem Pixeleingangspfad 210 entsprechend einem sich wiederholenden Taktzyklus. Die Erzeugung eines Ausgangspixels wird entsprechend der Auswertung einer speziellen „Bedingung" bestimmt, wobei die Bedingung durch eine Folge von Berechnungen in einem Funktionseinheit-Datenpfad 220 ausgewertet wird. Die Auswertung der „Bedingung" hängt von der Filterbetriebsart und davon ab, ob die Komprimierung oder Dekomprimierung des Videobildes erforderlich ist. Nach der Auswertung der „Bedingung" werden periodisch Ausgangspixel in einem Pixelausgangspfad 240 erzeugt. Die Auswertung der „Bedingung" erfolgt in jedem Taktzyklus, wobei vom Filter über den Taktpfad 230 ein Taktsignal empfangen wird. Die Skalierungsoperationen werden durch Skalierungsparameter bestimmt, wobei die Skalierungsparameter anfängliche, vom Speicher 120 über die Eingabedatenschnittstelle 122 in das Filter eingegebene Einstellungen der Skalierungsvariablen definieren.
  • Ein Eingangspixel-Positionszeiger „pos(n)" wird einmal für jedes Eingangspixel aktualisiert, um die aktuelle Position der Videobildverarbeitung in Bezug auf das Eingangsbild zu verfolgen. Gemäß einem Ausführungsbeispiel lauten die Ausdrücke, die pos(n) während der Komprimierungsoperationen definieren, folgendermaßen:
    • • pos(0) = 0; und
    • • pos(n + 1) = pos(n) + z(n + 1) = z(1) + z(2) + ... + z(n + 1),
    wobei z(n) der Zoomfaktor beim Pixel x(n) ist. Die aktuelle Pixelposition ist die letzte Pixelposition, die durch den aktuellen Zoomfaktor verändert wurde. Die Variable pos(n) stellt die Pixelposition von x(n) in Bezug auf die Ausgangspixel dar. Das Pixel x(n) befindet sich zwischen y(floor(pos(n))) und y(ceil(pos(n))).
  • Im Dekomprimierungsbetrieb erzeugt der Filter mehr Ausgangspixel als er verbraucht, die Erzeugung eines Ausgangspixels wird jedoch in gleicher Weise entsprechend der Auswertung einer speziellen „Bedingung" bestimmt. Im Dekomprimierungs betrieb verfolgt der Pixelpositionszeiger „pos(n)" die aktuelle Position der Videobildverarbeitung in Bezug auf die Ausgangspixelerzeugung. Die pos(n) definierenden Ausdrücke verwenden im Fall eines direkten Polyphasenfilters einen umgekehrten Zoomwert zur Bestimmung des Verhältnisses zwischen verbrauchten Eingangspixeln und erzeugten Ausgangspixeln. Die Zeigervariable pos(n) wird einmal für jedes Ausgangspixel folgendermaßen aktualisiert:
    • • pos(0) = 0; und
    • • pos(n + 1) = pos(n) + iz(n + 1) = iz(1) + iz(2) + ... + iz(n + 1),
    wobei iz(n) der Umkehrwert des Zoomfaktors beim Pixel y(n) ist. Die aktuelle Pixelposition ist die letzte Pixelposition, die von dem aktuellen umgekehrten Zoomfaktor verändert wurde. Die Variable pos(n) stellt die Pixelposition von y(n) in Bezug auf die Eingangspixel dar. Das Pixel y(n) befindet sich zwischen x(floor(pos(n))) und x(ceil(pos(n))).
  • Zur Implementierung einer einheitlichen Zoomfunktion ist der Zoomwert konstant. Eine einheitliche Komprimierung wird beispielsweise durch einen konstanten z(n) implementiert, und eine einheitliche Dekomprimierung wird durch einen konstanten iz(n) erzielt. Die Zoomwerte z(n) und iz(n) sind nicht konstant, wenn der Zoom variabel ist. Die Panoramazoomfunktion, die nur im direkten Polyphasenfilterbetrieb eingesetzt wird, wird durch einen sich kontinuierlich ändernden iz(n) ausgeführt. Der umgekehrte Zoomwert wird in einem Ausführungsbeispiel gemäß einem Polynom zweiter Ordnung variabel gemacht, wobei die Polynomkoeffizienten in den Steuerregistern programmiert werden.
  • Die „Bedingung", die zur Bestimmung der Ausgangspixelerzeugung ausgewertet wird, wird von der Funktion pos(n) abgeleitet. Die Funktion pos(n) umfasst in einem Ausführungsbeispiel einen ganzzahligen Teil und einen bruchzahligen Teil. Die „Bedingung" wird zu Änderungen in Beziehung gesetzt, die an dem ganzzahligen Teil von pos(n) durchgeführt werden.
  • Die Auswertung der oben erwähnten „Bedingung", die von dem Zoomwert abhängt, ist typischerweise ein Hindernis bei der Verarbeitungsgeschwindigkeit für die Skalierfilterfunktionen, da bei der Auswertung von pos(n) und schließlich der „Bedingung" genaue arithmetische Berechnungen über große Bitlängen durchgeführt werden. Die Verarbeitungsauslastung ist sogar noch größer und kostenintensiver was die Zeit angeht, wenn der Zoomwert variieren soll, wie beispielsweise im Fall des Panoramazoombetriebs, da sich die Zoomvariable kontinuierlich mit jedem Taktzyklus ändert.
  • Vom Standpunkt der Effizienz aus ist es wünschenswert, die „Bedingung" bei jedem Taktzyklus auszuwerten. Eine Erweiterung einer besonders komplexen Berechnung der „Bedingung" oder eine lange Folge von Berechnungen, die die Auswertung einer „Bedingung" umfassen, über mehrere Taktzyklen bewirkt keinen Fehler in der Berechnung der „Bedingung" selbst. Andere Filterhardware wird dadurch jedoch routinemäßig im Leerlauf gehalten, d. h. dass sie keine bedeutenden Operationen durchführt, während sie darauf wartet, dass die erweiterten Berechnungen zur Auswertung der „Bedingung" beendet sind. Diese Verzögerungen bei jedem Pixel schränken die Pixelverarbeitungsgeschwindigkeiten und indirekt die Fähigkeit, eine höhere Pixeldichte in Echtzeit zu unterstützen, erheblich ein.
  • Die Eingangsparameter des direkten Polyphasenfilters im Panoramabetrieb werden folgendermaßen definiert:
    • (a) HSRC_ZOOM ist der Umkehrwert des Zoomwertes oder iz. HSRC_ZOOM ist eine 16-Bit-Eingangsmenge ohne Vorzeichen, bei der die 4 Bits mit höchster Wertigkeit einen ganzzahligen Teil und die 12 Bits mit geringster Wertigkeit einen bruchzahligen Teil darstellen. HSRC_ZOOM wird spezifiziert um zu bestimmen, wie das Eingangsbild skaliert wird. Die 6 Bits mit höchster Wertigkeit von den 12 Bits, die den bruchzahligen Teil darstellen, bestimmen die Phase und daher den Satz der Filterkoeffizienten.
    • (b) HSRC_DZOOM ist ein 16-Bit-Eingangswert mit Vorzeichen und ein Teil des Polynoms zweiter Ordnung, das beschreibt, wie sich der Zoom im Panoramabetrieb kontinuierlich ändert.
    • (c) HSRC_DDZOOM ist ein 8-Bit-Eingangswert ohne Vorzeichen und ein weiterer Teil des Polynoms zweiter Ordnung, das beschreibt, wie sich der Zoom im Panoramabetrieb kontinuierlich ändert.
  • Die „Bedingung" wird in jedem Taktzyklus ausgewertet, wobei die „Bedingung" von einer Kaskade von Berechnungen von Zwischenzoomvariablen abgeleitet wird. Die Zwischenzoomvariablen werden am Anfang der Skalierungsoperationen mit Hilfe der oben erwähnten Eingangsparameter folgendermaßen initialisiert:
    • • zoom[23:0] < – {8{0}, HSRC_ZOOM[15:0]};
    • • dzoom[15:0] < – HSRC_DZOOM[15:0];
    • • ddzoom[7:0] < – HSRC_DDZOOM[7:0]; und
    • • pos[24:0] < – 0.
  • Die hier verwendete Bezeichnung ist der Binär-Variablenname gefolgt von dem Platz des Bits mit höchster Wertigkeit und dem Platz des Bits mit geringster Wertigkeit in eckigen Klammern, getrennt durch einen Doppelpunkt. Der Binär-Variablenname gefolgt von einer einzigen Zahl in eckigen Klammern, N, bezeichnet das N-te Bit der genannten Binärvariablen, beispielsweise bezeichnet dzoom[15] das 15te Bit der Binärvariablen dzoom. Die Bezeichnung „{x, y}" kennzeichnet eine Verkettungsoperation des ersten binären Wertes x in Klammern mit dem zweiten Wert y in Klammern. Die Bezeichnung „8 {x}" kennzeichnet eine Verkettung von acht x, beispielsweise bezeichnet 8 {0} die binäre Zahl 00000000. Die Variable pos[x:y] ist der Pixelpositionszähler, der aus einem ganzzahligen und einem bruchzahligen Teil besteht, wobei die Bits [24:20] den ganzzahligen Teil und die Bits [19:0] den bruchzahligen Teil darstellen.
  • In jedem Taktzyklus wird nach der Initialisierung eine Berechnung durchgeführt, um die oben erwähnten Variablen zusammen mit der Variablen „Bedingung" sval[x:y] zu aktualisieren. Die Variablen werden dadurch als Funktionen der Zeit folgendermaßen ausgedrückt:
    • • dzoom[15:0](t) = dzoom[15:0](t-1) – {8{0}, ddzoom[7:0]};
    • • zoom[23:0](t) = zoom[23:0](t-1) + {8{dzoom[15]}, dzoom[15:0]}(t);
    • • pos[24:0](t) = pos[24:0](t-1) + {{0}, zoom[23:0]}(t) ; und
    • • sval[4:0](t) = pos[24:20](t) – pos[24:20](t-1).
  • Die Variable pos[x:y] verfolgt die Phase der aktuellen Position des Pixels. Es sei daran erinnert, dass pos[x:y] von höchster Wertigkeit zu geringster Wertigkeit ein Vorzeichenbit, vier Ganzzahlen repräsentierende Bits und den Saldo der Bits, die einen bruchzahligen Teil kennzeichnen, umfasst. Da pos[x:y] jeden Taktzyklus ausgewertet wird, bestimmt die Variable sval[4:0] die „Bedingung" entsprechend dem Wert von sval[4:0], wobei die „Bedingung" Veränderungen am ganzzahligen Teil von pos[x:y] angibt. Die „Bedingung" (der Wert von sval[4:0]) bestimmt nachfolgend den ??, wenn Ausgangpixel erzeugt werden in Bezug auf die verbrauchten Eingangspixel.
  • Die oben genannten vier Variablenberechnungen sind Bestandteil der Filteroperationen, die jeden Taktzyklus durchzuführen sind. Zusammengenommen erfordern die Gleichungen eine erhebliche Anzahl von arithmetischen Berechnungen, die in einem einzigen Taktzyklus durchzuführen sind, wenn der Taktzyklus nicht lang ist. In einem Ausführungsbeispiel der vorliegenden Erfindung ist eine Schaltungsanordnung so konfiguriert, dass die Zeit zur Lösung des oben genannten Satzes von Filterberechnungen reduziert wird, damit die Gesamtrechenzeit minimiert wird.
  • Die oben genannten zeitabhängigen Variablenfunktionen können für die Zeit „t" folgendermaßen ausgedrückt werden:
    • • Eqn A: dzoomn[15:0] = dzoom[15:0] – {8{0}, ddzoom[7:0]};
    • • Eqn B: zoomn[23:0] = zoom[23:0] + {8{dzoomn[15]}, dzoomn[15:0]};
    • • Eqn C: posn[24:0] = pos[24:0] + {{0}, zoomn[23:0]}; und
    • • Eqn D: sval[4:0] = posn[24:20] – pos[24:20].
  • Der an einen Variablennamen angehängte Bezeichner „n" bedeutet „neu" oder den Variablenwert des aktuellen Taktzyklus (d. h. den Variablenwert zum Zeitpunkt „t"), und eine Variable ohne das angehängte „n" gibt an, dass der Variablenwert im vorhergehenden oder letzten Taktzyklus bestimmt wurde.
  • Die von den obigen Gleichungen A–D dargestellten Bitmanipulationen sind in 3 dargestellt. Für die Gleichung A entspricht der neue binäre Wert von dzoom 310 zum Zeitpunkt „t" (d. h. dzoomn) dem letzten Wert von dzoom (d. h. dem Wert des vorhergehenden oder „letzten" (engl. last) Taktzyklus) 312 minus dem aktuellen Wert der Variablen ddzoom 314 verkettet mit acht Nullbits 316 mit höherer Wertigkeit. Für die Gleichung B entspricht der neue binäre Wert von zoom 330 zum Zeitpunkt „t" (d. h. zoomn) dem letzten Wert von zoom (d. h. dem Wert des vorhergehenden oder „letzten" Taktzyklus) 332 plus dem aktuellen Wert der Variablen dzoom 310 verkettet mit acht Bits 334 mit höherer Wertigkeit, die jeweils einen Wert haben, der dem Bit mit höchster Wertigkeit der neuen Variablen dzoom (d. h. Bit Nummer 15 von dzoomn oder dzoomn [15]) entspricht. Daher wird dzoomn entweder mit acht vorhergehenden Einsen oder acht vorhergehenden Nullen verkettet. Für die Gleichung C entspricht der neue binäre Wert des Positionszählers pos(ition) 350 zum Zeitpunkt „t" (d. h. Position) dem letzten Wert der Position (d. h. dem Wert im vorhergehenden oder letzten Taktzyklus) 352 minus dem aktuellen Wert der Variablen zoom 330 verkettet mit einem Nullbit 354 mit höchster Wertigkeit. Und schließlich entspricht für die Gleichung D der neue binäre Wert der „Bedingung" sval 370 zum Zeitpunkt „t" dem ganzzahligen Teil des aktuellen Wertes der Positionsvariablen 372 (d. h. dem Wert im vorhergehenden oder letzten Taktzyklus), Bits 20–24, minus dem letzten Wert des ganzzahligen Teils der Positionsvariablen (d. h. Position, Bits 20–24) 374.
  • Es ist ersichtlich, dass die Auswertung der Variablen „Bedingung" sval[4:0] die letzte einer kaskadenförmigen Folge von binären arithmetischen Berechnungen ist. Die direkte Berechnung jeder Gleichung mittels herkömmlicher binärer Funktionsoperatoren, beispielsweise mit Hilfe eines 24-Bit-Addierers zum Berechnen der Gleichung B, gefolgt von einem nicht standardmäßigen 25-Bit-Addierer zum Berechnen der Gleichung C und nachfolgend einem 4-Bit-Addierer zum Berechnen des Wertes „Bedingung", ist im Hinblick auf die Zeit nicht effizient. Es wäre entweder eine Berechnung in mehreren Taktzyklen oder in einem einzigen Taktzyklus mit ausreichender Dauer erforderlich.
  • Gemäß einem Aspekt der vorliegenden Erfindung werden lange binäre Variablen in Teile unterteilt, wobei die Teile verarbeitet werden, um die Rechengeschwindigkeit zu erhöhen. Die Gleichung A wird mit Hilfe eines 16-Bit-Binäraddierers ausgewertet und der neue Wert von dzoom (d. h. dzoomn) berechnet. Die Berechnung der Gleichung B wird beim 15ten Bit untergeteilt und getrennt in zwei Teilen ausgewertet, die nachfolgend verkettet werden. Das Ergebnis der Gleichung B, zoom[23:0], wird alternativ in Gleichung B1 als die Verkettung von Bits ausgedrückt, die sich aus den oben genannten getrennten Operationen ergeben: Eqn B1: zoomn[23:0] = {zoomn[23:16], zoomn[15:0]}
  • Jeder Teil der obigen Verkettung wird getrennt ausgewertet; bei der Auswertung von zoomn[23:16] muss jedoch der Übertrag C15 berücksichtigt werden, der sich aus der Auswertung von zoomn[15:0] ergibt. Der Übertrag C15 ist in 3 bei 366 angegeben und resultiert aus der Bestimmung des Wertes von zoomn[15] oder vollständiger aus der Bestimmung von zoomn[15:0]. In einem Ausführungsbeispiel wird der Übertrag C15 von einem (nicht dargestellten) 16-Bit-Addierer mit den Eingangssignalen von zoom[15:0] und dzoom[15:0] abgeleitet. Die Verwendung des Addiererübertrags erhöht die Geschwindigkeit der vorliegenden Erfindung, da der Addiererübertrag für die weitere Verwendung (in einer weiter unten beschriebenen Logikschaltung) mehrere Gatterverzögerungen vor der Summe des Addierers, die stabilisiert wird und verfügbar ist, zur Verfügung steht. Daher wird die Gleichung B eingesetzt: {C15, zoomn[15:0]} = zoom[15:0] + dzoomn[15:0]und zoomn[15:0] ersetzt, indem die Gleichung A eingesetzt wird, und vereinfacht: {C15, zoomn[15:0]} = zoom[15:0] + (dzoom[15:0] – {8{0}, ddzoom[7:0]})
  • Die Variable ddzoom wird nicht jeden Taktzyklus aktualisiert und bleibt daher konstant und entspricht ihrem Initialisierungswert. Die obige Gleichung kann folgendermaßen ausgedrückt werden (Gleichung B2): {C15, zoomn[15:0]} = zoom[15:0] + dzoom[15:0] – {8{0}, HSRC_DDZOOM}
  • Beim Einsatz der Gleichung B kann der erste Teil der Verkettung der Gleichung B1 folgendermaßen ausgedrückt werden (Gleichung B3): zoomn[23:16] = zoom[23:16] + 8{dzoomn[15]} + C15wobei der binäre Term „{8{dzoomn[15]}" eine Verkettung entweder von acht Einsen oder acht Nullen ist, abhängig von dem Wert von dzoomn[15]. Diese Eigenschaft kann alternativ folgendermaßen ausgedrückt werden (Gleichung D1): 8{dzoomn[15]} = dzoomn[15]?11111111 : 00000000 = dzoomn[15] ? 8'hff : 8'b0wobei „8'hff" eine achtstellige binäre Zahl für „ff" hexadezimal, und „8'b0" eine achtstellige binäre Null ist. Es ist zu erkennen, dass für jegliche N-Bit Zahl A (Gleichung D2): A + 11111111 = A + 8'hff = A – 1und (Gleichung D3): A + 00000000 = A + 8'b0 = Aund daher durch Ersetzen mit Hilfe der Gleichungen D1–D3 die Gleichung B3 folgendermaßen ausgedrückt werden kann (Gleichung B4): zoomn[23:16] = zoom[23:16] + (dzoomn[15] ? 8'hff : 8'b0) + C15 = (dzoomn[15] ? zoom[23:16] : zoom[23:16] – 1) + C15 = dzoomn[15] ? (C15 ? zoom[23:16] : zoom[23:16] – 1) (C 15 ? zoom[23:16] + 1 : zoom[23:16])
  • 4 zeigt ein Beispiel für eine Schaltungsanordnung 400, bei der die oben erwähnte Gleichung B4 ausgeführt wird. Die oberen acht Bits der neuen Variablen „zoom" werden so ausgewählt, dass sie entweder zoom[23:16], zoom[23:16] + 1 oder zoom[23:16] – 1 sind, in Abhängigkeit von den entsprechenden Werten für C 15 und dzoomn[15]. Jede der Auswahlmöglichkeiten wird vom vorhergehenden Wert der Variablen „zoom" abgeleitet. Der vorherige „zoom" aus 3 ist in 4 bei 332 angegeben. Die oberen acht Bits der vorherigen Variablen „zoom" (d. h. zoom[23:16]) 410 wird als ein auswählbares Eingangssignal 412 in einen 4 × 1-Multiplexer („Mux") 420 geleitet (es ist anzumerken, dass eine One-Hot-Codierung überhaupt nicht erforderlich ist und daher auch nicht angesprochen wird). Zoom[23:16] wird weiter durch den Dekrementierer 430 und den Inkrementierer 440 geleitet, damit zoom[23:16] – 1 bzw. zoom[23:16] + 1 einfach und schnell ausgeführt werden kann. Das Ausgangssignal des Inkrementierers 440 ist zoom[23:16] + 1 und wird dem Mux 420 als weiteres auswählbares Eingangssignal 414 zugeführt. Das Ausgangssignal des Dekrementierers 430 ist zoom[23:16] – 1 und wird dem Mux 420 wie abgebildet als drittes auswählbares Eingangssignal 416 zugeführt. Die Inkre mentier- und Dekrernentierfunktionen werden wie gezeigt zeiteffizient parallel durchgeführt. Ein viertes Eingangssignal 418 zum Mux 420 wird bei der vorliegenden Ausführungsform nicht verwendet. Das sechzehnte Bit des bereits verfügbaren aktuellen dzoom (d. h. dzoomn[15]) wird als erste Mux-Auswahl 422 und der Übertrag C15 wird als zweite Mux-Auswahl 424 verwendet. Das Ausgangssignal 426 des Mux 420 ist der aktuelle Wert der oberen acht Bits von „zoom" (d. h. zoomn[23:16]). Die folgende Tabelle zeigt die Auswahllogik für die Schaltungsanordnung 400: zoomn[23:16]
    Figure 00140001
  • Gemäß dem oben beschriebenen Ausführungsbeispiel der vorliegenden Erfindung erfolgt eine binäre 24-Bit-Addition (Gleichung B) durch:
    • (a) Aufteilen der Operanden;
    • (b) Addieren des Teils mit Bits mit geringerer Wertigkeit jedes Summanden mit Hilfe eines 16-Bit-Addierers;
    • (c) anschließendes Verwenden eines Übertrags (verfügbar, bevor sich die Summe stabilisiert) vom 16-Bit-Addierer zusammen mit dem Bit mit der höchsten Wertigkeit eines der Addiereroperanden als Auswahllogik einer auf einem Multiplexer basierenden Auswahl zum Auswählen entweder des Teils mit den Bits mit höherer Wertigkeit des längeren ursprünglichen Operanden oder eines Versatzes hiervon (beispielsweise eine 8-Bit-Addition/Subtraktion davon, wobei einer der Operanden 1 ist).
  • Das oben beschriebene Verfahren und die oben beschriebene Schaltungsanordnung sind allgemein auf die Addition eines binären N-Bit-Operanden und eines binären M-Bit-Operanden anwendbar, wobei N größer oder gleich M ist. Das Bit mit der höchsten Wertigkeit jedes Operanden ist ein Vorzeichenbit. Die Länge des binären M-Bit-Operanden wird „erweitert", indem das Bit mit der höchsten Wertigkeit (das Vorzeichenbit) repliziert wird, bis der „erweiterte" Operand eine Länge von N hat. Die Operanden werden in zwei Teile aufgeteilt, die M Bits mit geringerer Wertigkeit und die N-M Bits mit höherer Wertigkeit. Ein M-Bit-Addierer wird zur Addition der Teile mit geringerer Wertigkeit eingesetzt. Der Übertrag von der M-Bit-Addition wird zusammen mit dem M-ten Bit des ursprünglichen N-Bit-Operanden verwendet, um mit Hilfe einer Logikschaltung (beispielsweise eines 4 × 1-Multiplexers) die N-M Bits mit höchster Wertigkeit so auszuwählen, dass sie eines der Folgenden sind:
    • • Die N-M Bits mit höchster Wertigkeit des ursprünglichen N-Bit-Operanden; oder
    • • die N-M Bits mit der höchsten Wertigkeit des ursprünglichen N-Bit-Operanden plus 1 oder
    • • die N-M Bits mit der höchsten Wertigkeit des ursprünglichen N-Bit-Operanden minus 1.
  • Die inkrementierten und dekrementierten Auswahlwerte werden über einen N-M-Bit-Addierer/Subtrahierer abgeleitet, wobei ein Operand die N-M Bits mit der höchsten Wertigkeit des ursprünglichen N-Bit-Operanden und der andere Operand 1 ist. Die von der Logikschaltung abgeleiteten Ergebnisse werden als die Bits mit der höchsten Wertigkeit mit den Ergebnissen der M-Bit-Addition verkettet.
  • Gemäß einem weiteren spezielleren Ausführungsbeispiel der vorliegenden Erfindung haben die Operanden die gleiche Länge (N); mindestens einer der Operanden umfasst jedoch als seine Bits mit der höchsten Wertigkeit eine Vielzahl von Erweiterungsbits mit identischem Vorzeichen. Die Operanden werden jeweils an der gleichen Bitposition in Teile mit geringster und höchster Wertigkeit „aufgeteilt", so dass ein Teil mit M-Bits mit geringster Wertigkeit eines der Operanden ein Vorzeichenbit umfasst und der Teil mit den (N-M) Bits mit höchster Wertigkeit desselben Operanden nur die Vorzeichenerweiterungsbits umfasst. Danach werden die Teile mit der geringsten und mit der höchsten Wertigkeit wie oben beschrieben verarbeitet. Das Verfahren des vorliegenden erfindungsgemäßen speziellen Ausführungsbeispiels ist allgemein anwendbar, wenn ein Operand so aufgeteilt werden kann, dass alle Bits seines Teils mit den Bits höchster Wertigkeit identisch sind.
  • Gemäß einem weiteren Ausführungsbeispiel einer Schaltungsanordnung der vorliegenden Erfindung müssen ein binärer N-Bit-Operand und ein binärer M-Bit-Operand addiert werden. Die Operanden sind binäre Zahlen ohne Vorzeichen. Die Summanden werden an der gleichen Bitposition in Teile mit Bits geringster und höchster Wertigkeit aufgeteilt. Die Teile mit Bits mit geringster Wertigkeit werden mit Hilfe eines Addierers addiert, um eine Teilsumme der Bits mit geringster Wertigkeit zu ermitteln. Die Teile mit dem Bits mit höchster Wertigkeit werden mit Hilfe einer Logikschaltung verarbeitet, um eine Teilsumme der Bits mit höchster Wertigkeit auszuwählen, was in geringerer Zeit erfolgt, als beim Einsatz eines Addierers erforderlich wäre, um die Teile mit den Bits mit höchster Wertigkeit jedes Summanden zu addieren. Bei einem Ausführungsbeispiel der vorliegenden Erfindung wählt eine Logikschaltung (beispielsweise ein Multiplexer, ein EXKLUSIV-ODER-Gatter oder eine Multiplex-Schaltung mit einer EXKLUSIV-ODER-Logik) die Teilsumme der Bits mit höchster Wertigkeit als Reaktion auf Auswahldaten aus. Die Logikschaltung wählt eine aus einer Vielzahl von vorher festgelegten Teilsummen aus, wobei jeder der möglichen Auswahlwerte durch bekannte Merkmale von mindestens einem der Summanden vorher festgelegt wurde, beispielsweise kann, wenn mindestens einer der Teile mit den Bits mit höchster Wertigkeit der Summanden nur aus Einsen oder Nullen besteht, eine Folge von Auswahlmöglichkeiten als eine Funktion des Teils mit den Bits mit höchster Wertigkeit des anderen Summanden vorher festgelegt werden.
  • Bei einem weiteren Ausführungsbeispiel einer Schaltungsanordnung der vorliegenden Erfindung müssen ein binärer N-Bit-Operand und ein binärer M-Bit-Operand addiert werden, wobei N-M gleich Eins ist. Die Operanden sind binäre Zahlen ohne Vorzeichen. Die Länge des binären M-Bit-Operanden wird „erweitert", indem ein Bit mit höchster Wertigkeit mit dem Wert Null(beispielsweise „0") vorangestellt wird. Die Operanden werden in zwei Teile unterteilt, die M Bits mit geringerer Wertigkeit und die N-M Bits mit höherer Wertigkeit. Ein M-Bit-Addierer wird für die Addition der Teile mit den Bits mit geringerer Wertigkeit eingesetzt. Ein Übertrag von der M-Bit-Addition wird zusammen mit dem M-ten Bit des ursprünglichen N-Bit-Operanden verwendet, um mit Hilfe einer Logikschaltung (beispielsweise einem EXKLUSIV-ODER-Gatter oder einem Multiplexer mit einer EXKLUSIV-ODER-Funktion) das Bit mit höchster Wertigkeit so auszuwählen, dass es eines der N-Bit-Addition ist.
  • Gemäß einem weiteren Ausführungsbeispiel einer Schaltungsanordnung der vorliegenden Erfindung müssen ein binärer N-Bit-Operand und ein binärer M-Bit-Operand addiert werden, wobei N-M gleich Eins ist. Die Operanden sind binäre Zahlen ohne Vorzeichen. Die Länge des binären M-Bit-Operanden wird „erweitert", indem ein Bit mit höchster Wertigkeit mit einem Wert ungleich Null(beispielsweise „1") vorangestellt wird. Die Operanden werden in zwei Teile unterteilt, die M Bits mit geringerer Wertigkeit und die N-M Bits mit höherer Wertigkeit. Ein M-Bit-Addierer wird für die Addition der Teile mit den Bits mit geringerer Wertigkeit eingesetzt. Ein umgekehrter Übertrag von der M-Bit-Addition wird zusammen mit dem M-ten Bit des ursprünglichen N-Bit-Operanden verwendet, um mit Hilfe einer Logikschaltung (beispielsweise einem EXLUSIV-ODER-Gatter oder einem Multiplexer mit einer EXKLUSIV-ODER-Funktion) das Bit mit höchster Wertigkeit so auszuwählen, dass es eines der N-Bit-Addition ist.
  • Gemäß einem Ausführungsbeispiel wird eine 25-Bit-Addition der Operanden ohne Vorzeichen gemäß der (oben genannten) Gleichung C teilweise durch die Schaltungsanordnung 500 aus 5A ausgeführt. Die Gleichung C lautet folgendermaßen: posn[24:0] = pos[24:0] + {{0}, zoomn[23:0]}
  • Der Einsatz eines 25-Bit-Addierers zur wiederholten Berechnung der 25-Bit-Positionsvariablen ist kostspielig, da die 25-Bit-Addition typischerweise keine standardmäßige Funktion ist. Die Operanden werden wiederum in zwei Teile aufgeteilt, wobei jeder Teil getrennt ausgewertet wird. Ein Teil mit den Bits mit geringster Wertigkeit jedes Operanden wird addiert, um eine Teilsumme der Bits mit geringster Wertigkeit mit Hilfe eines Addierers zu erzeugen, dessen Übertragspfad schneller als der Summenpfad ist. Eine Logikschaltung 505 wird eingesetzt, um eine Teilsumme der Bits mit höchster Wertigkeit auszuwählen, wobei der Auswahlwert entweder ein Teil mit Bits mit höchster Wertigkeit eines der Operanden oder ein Versatzwert hiervon als eine Funktion eines Übertrags vom Addierer ist. Zur Ausführung der Gleichung C wird eine EXKLUSIV-ODER-Logikschaltung eingesetzt.
  • Addierer mit einer Breite, die ein Vielfaches von Acht ist, sind leicht verfügbare Bibliotheken entnommene Funktionen, beispielsweise ein 24-Bit-Addierer. Die Gleichung C lautet folgendermaßen, wenn sie zur Auswertung beim 24. Bit unterteilt wird: posn[24:0] = posn[24] + posn[23:0]wobei die Berechnung von posn[23:0] über einen Addierer auch einen Übertrag C23 erzeugt. Daher ergibt sich aus der Gleichung C (Gleichung C1): {C23, posn[23:0]} = pos[23:0] + zoomn[23:0]und (Gleichung C2): posn[24] = pos[24] ^ C23wobei der Operator ^ eine logische EXKLUXIV-ODER-Operation angibt, bei der das bereits verfügbare 25. Bit der letzten Berechnung der Positionsvariablen 510 und der Übertrag C23, 520, einer 24-Bit-Addition verwendet wird, um eine 24-Bit-Teilsumme der Bits geringster Wertigkeit zu ermitteln. 3 zeigt die entsprechende Quelle für die Auswahlda tenteile. Der Übertrag C23 steht vom 24-Bit-Addierer über einen optimierten Übertragspfad ungefähr 2 Gatterverzögerungen bevor sich die Summenmenge ausreichend für die weitere Verwendung stabilisiert hat, zur Verfügung.
  • Die abschließende Gleichung, Gleichung D, für das Anwendungsbeispiel der digitalen Filterung lautet: sval[4:0] = posn[24:20] – pos[24:20]
  • Aus der Gleichung C kann posn[24:20] folgendermaßen ausgedrückt werden (Gleichung E1): posn[24:20] = pos[24:20] + {0, zoomn[23:20]} + C19wobei C19 (das nicht von einem einer Bibliothek entnommenen Standardaddierer verfügbar ist) aus der Addition der einzelnen Bits zoomn[19] und posn[19] erzeugt wird.
  • Durch Einsetzen der Gleichung E1 in die Gleichung D ergibt sich: sval[4:0] = (pos[24:20] + {0, zoomn[23:20]} + C19 – pos[24:20] = zoomn[23:20] + C19 = C19 ? zoomn[23:20] + 1 : zoomn[23:20]
  • Die Variable „Bedingung" sval[4:0] ist entweder zoomn[23:20] + 1 oder zoomn[23:20] in Abhängigkeit von dem Wert von C19. Da zoomn[23:20] bereits verfügbar ist und die 4 Bits mit höchster Wertigkeit des Ergebnisses der Gleichung B darstellt, richtet sich die Auswahl von zoomn[23:20] oder einem Inkrement davon (vorher mit Hilfe von zoomn[23:20] durch einen Inkrementierer oder einen 4-Bit-Addierer berechnet, bei dem der andere Operand 1 ist) auf den Wert des Zwischenübertrags C19.
  • Der Zwischenübertrag C19 ist eventuell nicht leicht von einem typischen 24-Bit-Addierer verfügbar, der keine Zwischenüberträge extern ausgibt. Für jegliche binäre Addition mit zwei Operanden entspricht das M-te Bit der Summe der Summe des M-ten Bits des ersten Operanden plus dem M-ten Bit des zweiten Operanden plus jeglichen Übertrag, der bei der Berechnung der Bits mit geringerer Wertigkeit der Summe erzeugt wird. So ergibt sich beispielsweise aus der Gleichung C (Gleichung E2): posn[20] = pos[20] + zoomn[20] + C19
  • Der Übertrag C19 kann daher aus der folgenden Tabelle „analysiert" werden, die zur Bestimmung des Wertes von posn[20] für spezielle Werte der drei anderen Variablen gemäß der Gleichung E2 eingesetzt wird:
    Figure 00190001
  • Aus der obigen Tabelle ist ersichtlich, dass (Gleichung E3): C19 = pos[20] ^ zoomn[20] ^ posn[20]
  • 5B zeigt eine beispielhafte Schaltungsanordnung 550, die die Gleichung E3 ausführt. Ein 8 × 1-Multiplexer 560 umfasst drei Auswahlanschlüsse. Der erste Auswahlanschluss 562 empfängt pos[20], der zweite Auswahlanschluss 564 empfängt zoomn[20] und der dritte Auswahlanschluss 566 empfängt posn[20]. Wie dargestellt sind die Mux-Eingänge 2, 4 und 7 mit einer logischen „1" und die Mux-Eingänge 0, 3, 5 und 6 mit einer logischen „0" verknüpft. Der Ausgangsanschluss 568 des Mux erzeugt C19 gemäß der obigen Tabelle.
  • 5C zeigt eine beispielhafte Schaltungsanordnung 570, die die auf C19 reagierende Auswahllogik ausführt. Die Schaltungsanordnung 570 umfasst einen 2 × 1-Multiplexer 580 mit einem einzigen Auswahleingangsanschluss 582 zum Empfangen von C19 vom Mux 560 aus 5B. Der Mux 580 wählt entweder das einem ersten Anschluss 584 zugeführte zoomn[23:20] oder den einem zweiten Eingangsanschluss 586 zugeführten Versatzwert davon (beispielsweise zoomn[23:20] + 1) aus. Der Versatzwert wird von einem Inkrementierer 590 abgeleitet, der zoomn[23:20] verarbeitet. Bei einer alternativen beispielhaften Schaltungsanordnung werden die Schaltungsanordnungen 550 und 570 in einer einzigen Multiplexerschaltung kombiniert, die so ausgelegt ist, dass sie ein erstes Eingangssignal, nämlich zoomn[23:20], und ein zweites Eingangssignal empfängt, das ein Versatz von zoomn[23:20] ist, beispielsweise zoomn[23:20] + 1. Eins der Eingangssignale wird mit Hilfe der Auswahllogik der Schaltungsanordnung 550 ausgewählt.
  • Daher ist die 4-Bit-Addition zur Berechnung der Gleichung D lösbar vor der Fertigstellung einer Lösung von Gleichung C. Der Wert von zoomn[23:20] steht nach der Lösung von Gleichung B zur Verfügung, und der Wert von pos[20] ist einen Zwischenwert, der bei der Berechnung der Gleichung C durch das oben beschriebene Verfahren abgeleitet wird. Das als letztes an der Multiplexer-Auswahllogik ankommende Signal posn[20] wird zwar von einer vorherigen Gleichung abgeleitet, das Signal posn[20] steht jedoch früher zur Verfügung als das vollständige Ergebnis der vorherigen Gleichung.
  • Dementsprechend können verschiedene Ausführungsformen der vorliegenden Erfindung ausgeführt werden, um eine schnellere Addition für eine Folge von binären arithmetischen Berechnungen mit und ohne Vorzeichen zu schaffen, die beispielsweise unter anderem in der Videosignalverarbeitung, der Kryptografie und anderen im Computer ausgeführten Steuerungsanwendungen ausgeführt werden. Im Allgemeinen sind die Schaltungsanordnungen und Verfahren der vorliegenden Erfindung überall dort anwendbar, wo ein Rechenwerk eingesetzt werden könnte. Die oben beschriebenen verschiedenen Ausführungsformen sind lediglich beispielhaft und schränken die Erfindung nicht ein. Auf der Grundlage der obigen Darlegung und Zeichnungen kann der Fachkundige leicht erkennen, dass verschiedene Abwandlungen und Änderungen an der vorliegenden Erfindung vorgenommen werden können, ohne dass den hier dargestellten und beschriebenen Ausführungsbeispielen und Anwendungen strikt gefolgt wird. Derartige Abwandlungen und Änderungen weichen nicht vom eigentlichen Wesen und Rahmen der vorliegenden Erfindung ab, die in den folgenden Ansprüchen festgelegt sind.
  • Allgemein gesehen umfasst die Schaltungsanordnung zum Addieren eines ersten binären Operanden mit N Bits und eines zweiten binären Operanden mit M Bits, wobei N größer oder gleich M ist, Folgendes:
    Mittel zum Addieren repräsentativer Sätze von Bits mit geringster Wertigkeit des ersten und des zweiten binären Operanden, um ein Teilsumme der Bits mit der geringsten Wertigkeit und einen Übertrag zu erzeugen; und
    Mittel zum Ausgeben einer Teilsumme der Bits mit höchster Wertigkeit durch das Weiterleiten eines repräsentativen Satzes von Bits mit höchster Wertigkeit des ersten binären Operanden oder einen Versatz des repräsentativen Satzes von Bits mit höchster Wertigkeit des ersten binären Operanden als Reaktion auf Auswahldaten, wobei die Auswahldaten eine Funktion des Bits mit höchster Wertigkeit des repräsentativen Satzes von Bits mit geringster Wertigkeit des ersten binären Operanden sind.
  • Bei einem speziellen Ausführungsbeispiel der Schaltungsanordnung entspricht N M, ist das Bit mit höchster Wertigkeit des zweiten binären Operanden Null und die Multiplexerschaltung ferner so ausgelegt, dass sie als ein EXKLUSIV-ODER-Gatter funktioniert, wobei die Auswahldaten das Bit mit höchster Wertigkeit des ersten binären Operanden und ein Übertrag vom Addierer sind.
  • Der Übertrag steht vom Addierer vor der Teilsumme der Bits mit geringster Wertigkeit zur Verfügung.
  • Bei einem speziellen Ausführungsbeispiel der Schaltungsanordnung sind die Operanden binäre Zahlen ohne Vorzeichen, und die Multiplexerschaltung ist ferner so ausgelegt, dass sie als EXKLUSIV-ODER-Gatter funktioniert, wobei die Auswahldaten das Bit mit höchster Wertigkeit des ersten binären Operanden und ein Übertrag vom Addierer sind.
  • Bei einem weiteren speziellen Ausführungsbeispiel der Schaltungsanordnung sind die Operanden binäre Zahlen ohne Vorzeichen. Text in den Figuren Figur 1
    Memory Speicher
    Input data interface Eingangsdatenschnittstelle
    Control/mode processor Steuer-/Modusprozessor
    Pipelined datapath logic Pipeline-Datenpfadlogik
    Combinational logic (e.g. add/substract Multiply) Kombinatorische Logik (z.B. Addieren/Subtrahieren, Multiplizieren)
    Pipelined register Pipeline-Register
    Processed data Verarbeitete Daten
    Figur 2
    Filter Filter
    Functional unit data path Funktionseinheit-Datenpfad
    Panoramic mode Panoramabetrieb
    Compression Komprimierung
    Expansion Dekomprimierung
    Polyphase direct mode Direkter Polyphasenbetrieb
    Polyphase transposed mode Transponierter Polyphasenbetrieb
    Pixel (in) Pixel (Eingang)
    Initializing input variables Initialisierung der Eingangsvariablen
    Pixel (out) Pixel (Ausgang)
    Figur 3
    EQN.A (Gleichung A)
    To XOR Zum EXKLUSIV-ODER-Gatter
    Integer portion of positionn Ganzzahliger Teil von positionn
    Integer portion of positionlast Ganzzahliger Teil von positionletzte
    Figur 4
    Inputs Eingangssignale
    Decrement Dekrementieren
    Increment Inkrementieren
    Mux Multiplexer (Mux)
    Output Ausgangssignal
    Not used Nicht verwendet
    Figur 5A
    Positionlast Pozitionletzte
    Positionpresent Positionderzeitige
    Figur 5B
    Output Ausgang
    See below Siehe unten
    Positionlast Positionletzte
    Zoompresent Zoomderzeitig
    Positionpresent Positionderzeitige
    Figur 5C
    Incrementor Inkrementierer
    From mux above Vom oben gezeigten Mux
    Zoompresent Zoomderzeitig

Claims (8)

  1. Digitale Filterschaltungsanordnung (100) zum Ausführen einer kaskadenförmigen Folge von binären arithmetischen Berechnungen (EQN.A, ..., EQN.D), die Bestandteil von Filteroperationen sind, wobei eine erste binäre arithmetische Berechnung (EQN.A) ein M-Bit-Zwischenergebnis (310) liefert, und eine zweite arithmetische Berechnung (EQN.B) das M-Bit-Zwischenergebnis (310) mit N-M Bits mit höherer Wertigkeit (334) verkettet, die einen Wert aufweisen, der dem Bit mit der höchsten Wertigkeit (318) des M-Bit-Zwischenergebnisses (310) entspricht, so dass ein um ein Vorzeichen erweitertes N-Bit-Zwischenergebnis (310, 334) erzielt wird, und das um ein Vorzeichen erweiterte N-Bit-Zwischenergebnis (310, 334) und eine N-Bit-Variable (332) addiert, dadurch gekennzeichnet, dass die digitale Filterschaltungsanordnung eine Berechnungsschaltung (400) umfasst zum Ausführen der zweiten binären arithmetischen Berechnung (EQN.B), wobei die Berechnungsschaltung (400) Folgendes umfasst: einen Addierer, der so ausgelegt ist, dass er repräsentative Sätze der Bits mit geringster Wertigkeit (0, ..., 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) und die N-Bit-Variable (332) addiert, um eine Teilsumme der Bits mit geringster Wertigkeit und einen Übertrag (C15) zu erzeugen; und eine Multiplexerschaltung (420), die mit dem Addierer verbunden und so ausgelegt ist, dass sie eine Teilsumme der Bits mit höchster Wertigkeit (zoomn [23:16]) ausgibt, indem sie Folgendes weiterleitet: einen repräsentativen Satz der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) oder einen Versatz (–1, +1) des repräsentativen Satzes der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) in Reaktion auf Auswahldaten (C15, dzoomn[15]), wobei die Auswahldaten eine Funktion des Bits mit der höchsten Wertigkeit (15) des repräsentativen Satzes der Bits mit geringster Wertigkeit (0, ..., 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) sind.
  2. Digitale Filterschaltungsanordnung nach Anspruch 1, wobei der Addierer ein M-Bit-Addierer ist, die repräsentativen Sätze der Bits mit geringster Wertigkeit (0, ... 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) und die N-Bit-Variable (332) jeweils eine Länge von M Bits aufweisen und die Auswahldaten (C15, dzoomn[15]) einen Übertrag (C15) vom M-Bit-Addierer und das M-te Bit (15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) umfassen.
  3. Digitale Filterschaltungsanordnung nach Anspruch 2, wobei die Teilsumme der Bits mit höchster Wertigkeit die N-M Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) oder die N-M Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) erhöht um Eins oder die N-M Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) verringert um Eins sind.
  4. Digitale Filterschaltungsanordnung nach Anspruch 1, wobei der Versatz des repräsentativen Satzes der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) einen ersten um Eins erhöhten Versatz ([23:16] + 1) und einen zweiten um Eins verringerten Versatz ([23:16] – 1) umfasst.
  5. Digitale Filterschaltungsanordnung nach Anspruch 4, wobei der erste um Eins erhöhte Versatz ([23:16] + 1) der repräsentative Satz der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) erhöht um Eins ist und der zweite um Eins verringerte Versatz ([23:16] – 1) der repräsentative Satz der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) verringert um Eins ist.
  6. Digitale Filterschaltungsanordnung nach Anspruch 1, wobei die Auswahldaten (C15, dzoomn[15]) das Bit mit höchster Wertigkeit (15) des repräsentativen Satzes der Bits mit geringster Wertigkeit (0, ..., 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) und ein Übertrag (C15) vom Addierer sind.
  7. Digitale Filterschaltungsanordnung nach Anspruch 6, wobei der Übertrag (C15) vom Addierer vor der Teilsumme der Bits mit geringster Wertigkeit zur Verfügung steht.
  8. Verfahren der digitalen Filterung in einer digitalen Filteranordnung, das eine kaskadenförmigen Folge von binären arithmetischen Berechnungsschritten (EQN.A, ..., EQN.D) umfasst, die Bestandteil von Filteroperationen sind, wobei ein erster binärer arithmetischer Berechnungsschritt (EQN.A) ein M-Bit-Zwischenergebnis (310) liefert, und ein zweiter binärer arithmetischer Berechnungsschritt (EQN.B) das M-Bit-Zwischenergebnis (310) mit N-M Bits mit höherer Wertigkeit (334) verkettet, deren Wert dem Bit mit höchster Wertigkeit (318) des M-Bit-Zwischenergebnisses (310) entspricht, um ein um ein Vorzeichen erweitertes N-Bit-Zwischenergebnis (310, 334) zu erzielen, und das um ein Vorzeichen erweiterte N-Bit-Zwischenergebnis (310, 334) und eine N-Bit-Variable (332) addiert, dadurch gekennzeichnet, dass der zweite binäre arithmetische Berechnungsschritt (EQN.B) Folgendes umfasst: einen von einem Addierer durchgeführten Addierteilschritt, bei dem repräsentative Sätze der Bits mit geringster Wertigkeit (0, ..., 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) und die N-Bit-Variable (332) addiert werden, um eine Teilsumme der Bits mit geringster Wertigkeit und einen Übertrag (C15) zu erzeugen; und einen von einem Multiplexer durchgeführten Ausgabeteilschritt, bei dem eine Teilsumme der Bits mit höchster Wertigkeit (zoomn[23:16]) ausgegeben wird, indem Folgendes weitergeleitet wird: ein repräsentativer Satz der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) oder ein Versatz (–1, +1) des repräsentativen Satzes der Bits mit höchster Wertigkeit (16, ..., 23) der N-Bit-Variablen (332) in Reaktion auf Auswahldaten (C15, dzoomn[15]), wobei die Auswahldaten eine Funktion des Bits mit der höchsten Wertigkeit (15) des repräsentativen Satzes der Bits mit geringster Wertigkeit (0, ..., 15) des um ein Vorzeichen erweiterten N-Bit-Zwischenergebnisses (310, 334) sind.
DE60210494T 2001-11-08 2002-10-30 Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung Expired - Fee Related DE60210494T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5551 2001-11-08
US10/005,551 US20030088602A1 (en) 2001-11-08 2001-11-08 High-speed computation in arithmetic logic circuit
PCT/IB2002/004568 WO2003040859A2 (en) 2001-11-08 2002-10-30 High-speed computation in arithmetic logic circuit

Publications (2)

Publication Number Publication Date
DE60210494D1 DE60210494D1 (de) 2006-05-18
DE60210494T2 true DE60210494T2 (de) 2006-11-30

Family

ID=21716430

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60210494T Expired - Fee Related DE60210494T2 (de) 2001-11-08 2002-10-30 Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung

Country Status (8)

Country Link
US (1) US20030088602A1 (de)
EP (1) EP1446713B1 (de)
JP (1) JP2005508541A (de)
KR (1) KR20040063143A (de)
AT (1) ATE322715T1 (de)
AU (1) AU2002343144A1 (de)
DE (1) DE60210494T2 (de)
WO (1) WO2003040859A2 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103166A1 (en) * 2001-11-21 2003-06-05 Macinnis Alexander G. Method and apparatus for vertical compression and de-compression of progressive video data
US7475104B2 (en) * 2005-02-09 2009-01-06 International Business Machines Corporation System and method for providing a double adder for decimal floating point operations
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9158882B2 (en) * 2013-12-19 2015-10-13 Netspeed Systems Automatic pipelining of NoC channels to meet timing and/or performance
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9444702B1 (en) 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9568970B1 (en) 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US9928204B2 (en) 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US10050843B2 (en) 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4203157A (en) * 1978-09-05 1980-05-13 Motorola, Inc. Carry anticipator circuit and method
BR8602717A (pt) * 1985-09-11 1987-04-14 Sperry Corp Aparelho para efetuar adicao de binarios
US5418736A (en) * 1994-03-11 1995-05-23 Nexgen, Inc. Optimized binary adders and comparators for inputs having different widths
US5504698A (en) * 1994-05-17 1996-04-02 Silicon Graphics, Inc. Compact dual function adder
US6260055B1 (en) * 1997-10-15 2001-07-10 Kabushiki Kaisha Toshiba Data split parallel shifter and parallel adder/subtractor
US6065034A (en) * 1998-04-08 2000-05-16 Advanced Micro Devices, Inc. Circuit and method employing an adder for sign extending operands
DE69817153D1 (de) * 1998-05-08 2003-09-18 St Microelectronics Srl Digitaler Hochgeschwindigkeits-Akkumulator mit grossem Dynamikbereich

Also Published As

Publication number Publication date
EP1446713B1 (de) 2006-04-05
WO2003040859A2 (en) 2003-05-15
EP1446713A2 (de) 2004-08-18
AU2002343144A1 (en) 2003-05-19
JP2005508541A (ja) 2005-03-31
US20030088602A1 (en) 2003-05-08
ATE322715T1 (de) 2006-04-15
DE60210494D1 (de) 2006-05-18
KR20040063143A (ko) 2004-07-12
WO2003040859A3 (en) 2003-11-27

Similar Documents

Publication Publication Date Title
DE60210494T2 (de) Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung
DE60318494T2 (de) Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE4302898C2 (de) Arithmetische Recheneinheit mit Akkumulierfunktion
DE60222163T2 (de) Akkumulations-(mac-)einheit für einzelanweisungs-/ mehrfachdaten-(simd-) anweisungen
DE602004006516T2 (de) Parallel-verarbeitungs-array
DE4414172A1 (de) Gleit-Komma-Arithmetikeinheit zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE10107376A1 (de) Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
DE10260655B3 (de) Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
EP0344347B1 (de) Einrichtung zur digitalen Signalverarbeitung
EP1499954B1 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
WO2004059515A2 (de) Modulare multiplikation mit paralleler berechnung der vorausschau-parameter
DE60316342T2 (de) Multiplizierer mit nachschlagetabellen
DE19543544C2 (de) Einrichtung zur zweidimensionalen diskreten Echtzeit-Cosinustransformation
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE10219161A1 (de) Vorrichtung und Verfahren zum Umrechnen eines Terms
DE19730727C2 (de) Verfahren und Schaltung zum Abschneiden von Ganzzahlen unter Verwendung einer Maske
EP0829803B1 (de) Digitaler Signalprozessor und Verfahren zur Durchführung einer Multiplikation mit einem digitalen Signalprozessor
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
DE69722131T2 (de) Verfahren und Schaltungsanordnung zur Multiplikation mit einer Abrund-Funktion
DE4001232C2 (de) Gleitkommaeinheit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

8339 Ceased/non-payment of the annual fee