In der Mathematik Ausbildung liefern CORDIC Algorithmen

Document Sample
In der Mathematik Ausbildung liefern CORDIC Algorithmen Powered By Docstoc
					Global Journal on Engineering Education                                                                    2004 UICEE




          CORDIC-Algorithmen verbinden Mathematik, Computer-Architektur und
                                   Anwendungen

                                                         Thomas Risse

                                      Institut für Informatik & Automation, Hochschule Bremen
                                                           Bremen, Germany




ABSTRACT: Lehren und Lernen soll aktuell, Anwendungsbezogen, explorativ, Praxisnah und Problem-orientiert sein, – auch und
besonders in Mathematik. CORDIC-Algorithmen werten effizient die elementaren trigonometrischen und hyperbolischen Funktionen
aus. Sie stellen damit einen, im Übrigen vernachlässigten Themen-Bereich dar, der die obigen wünschenswerten Eigenschaften in
hohem Maß aufweist.
Denn CORDIC-Algorithmen erlauben, eine Vielzahl von Problemen etwa der Signalverarbeitung durch exemplarische
Implementierungen zu lösen. CORDIC-Algorithmen sind somit in beispielhafter Weise geeignet, Mathematik, Computer-Architektur
mit im weitesten Sinn Signalverarbeitung und damit eben allgemein Grundlagen, Implementierung und Anwendung zu verbinden.




1 Einführung
Taylor-Polynome werden traditionell als das erste und häufig
alleinige Mittel der Wahl dargestellt, elementare Funktionen        2 Tradition
auszuwerten. Dabei zeigen schon einfachste, ältere Taschen-         Ausgangspunkt ist die Frage, wie man effizient beispielsweise
rechner, dass Potenzreihen-Entwicklung eher nicht Methode           exp(π), sin(1/3), arctan(1/7), cosh(0.7), sqrt(e) usw. usf.
dieser Berechnungen sein kann. Eigenschaften von Intel x86          berechnet. >>> elementare Funktionen
(Co-) Prozessoren deuten in dieselbe Richtung.                      Die vermutlich typische, übliche wie gängige Antwort lautet
Grund genug, sich mit CORDIC-Algorithmen zu befassen.                    per Polynom-Approximation (Potenz-, Taylor-Reihe)
Diese erlauben, die elementaren trigonometrischen und hyper-                 >>> polynomiale Approximation
bolischen Funktionen und deren Inverse effizient auszuwerten.            per look up table mit etwa linearer Interpolation, was
Dabei werden Überlegung zu Konvergenz, Effizienz, Zulässig-                  immerhin das Prinzip "trading space for time" klas-
keit, Genauigkeit usw. notwendig.                                            sisch illustriert. >>> look up table >>> lineare
Sollen CORDIC-Algorithmen implementiert werden, sind eine                    Interpolation
Reihe von Entwurfsentscheidungen zu treffen, die diverse Kri-       Selbstverständlich gibt es weitere Verfahren wie etwa
terien wie Geschwindigkeit, Genauigkeit, Chip-Fläche, Strom-             das Newton (-Raphson) – natürlich nur für Funktionen
verbrauch oder auch Fehler-Toleranz mehr oder weniger gut                    ähnlich dem Beispiel sqrt(e) >>> Newton-Raphson
bedienen.                                                                    Verfahren
CORDIC-Algorithmen spielen in vielen Anwendungen eine                    die Fourier-Approximation (Fourier-Reihe) – natürlich
entscheidende Rolle, wie Beispiele aus etwa Signalverarbei-                  nur für periodische Funktionen >>> Fourier-
tung, generativer Computer-Graphik oder Bildverarbeitung                     Approximation
belegen.

Eine derartige ganzheitliche Betrachtung von CORDIC-
Algorithmen bietet die Chance, Mathematik – und damit
                                                                    2.1 Beispiele für diese Tradition in der
Theorie –, Implementierung – und damit Computer-Architektur         Literatur
– und etwa Signalverarbeitung – und damit Anwendungen – zu          Einige beispielhafte Zitate aus gängigen, einschlägigen Lehr-
verbinden.                                                          büchern untermauern diese traditionelle Praxis.
In der Mathematik-Ausbildung liefern CORDIC-Algorithmen
vielfältige Beispiele etwa für elementare Funktionen, Appro-               [Hartmann] [28] S.254 Der Taschenrechner macht
ximation, Konvergenz, Numerik oder Algorithmik und                          nichts anderes, als die ersten Glieder von
Komplexität.                                                                1+x+x2/2!+…+xn/n!+… auszuwerten.
Diese Bezüge zur Mathematik-Ausbildung werden im Folgen-                   [Papula]   [29] Band 1, S.449 Näherungsweise
den jeweils durch >>>Stichwort aufgezeigt.                                  Berechnung von Funktionswerten …

                                                                1
        [Stingl] [31] S.309 Per Taylor-Polynom kann man                             Seit 1980 implementiert der 8087, der mathematische
         den Wert beliebiger Funktionen näherungsweise, nur                          Coprozessor des 8086, in Hardware eine Reihe von
         mit Hilfe der Grundrechnungsarten berechnen.                                Konstanten, trigonometrischen und logarithmischen
        [Stöcker] [30] Band 2, S.211 Unter der Verwendung                           Funktionen, die zusammen mit ihrer Ausführungszeit
         von Potenzreihen kann die Berechnung von                                    (cycles) [37], [36], [38] für alle Mitglieder der x86-
         Funktionswerten auf einfache Weise erfolgen …                               Prozessor-Familie aufgelistet seien:
        [Brauch/Dreyer/Haacke] [26] S.396 Reihen von
         Zahlen werden i.A. dazu benutzt, Funktionswerte von                               Instruktio
                                                                          Funktion                         8087     80287    80387   80486   80586
                                                                                                n
         transzendenten Funktionen zu berechnen. Zur Berech-                                                                                 17–
         nung des Sinus eines Winkels mit dem Taschenrechner                                               250–      250–     314–    218–
                                                                           Arctan          FPATAN1                                           173
                                                                                                            800       800      487     303
         …
        [Burg/Haf/Wille] [27] Band I, S.417 Durch Partial-                                                30–       30–      191–    200–
                                                                                                                                             17–
                                                                             Tan            FPTAN2                                           173
         summen der Potenzreihen sind Polynome gegeben, die                                                540       540       497     273
         die Funktionen mehr oder weniger gut approximieren                                                180–      180–     122–           70
                                                                           sqrt(x)          FSQRT                                    83–87
         und     daher     zur   numerischen      Berechnung                                                186       186      129
         herangezogen werden können. Es folgt immerhin der                                                 900–      900–     120–    196–
                                                                                                                                             22–
         Verweis auf Bernstein-Polynome, Tschebyscheff-                   y*log_2(x)        FYL2X                                            111
                                                                                                           1100      1100      538     329
         Polynome und B-Spline-Approximation.                                                                                                22–
                                                                                                           700–      700–     257–    171–
                                                                      y*log_2(x+1)         FYL2XP1                                           103
                                                                                                           1100      1100      547     326
Alle Autoren behandeln selbstverständlich Potenz- und Fourier-
Reihen, jedoch behandelt keiner der genannten Autoren
CORDIC-Algorithmen. Dabei sind diese alles andere als                                FPATAN und FPTAN sind im Intel-Jargon
unwichtig:                                                                           sogenannte 'partielle' Funktionen: FPATAN berechnet
                                                                                     arctan für den Quotienten zweier Argumente und
                                                                                     FPTAN berechnet zugleich sin und cos. Das Ergebnis
2.2 Bedeutung der Fragestellung                                                      tan liefert erst eine zusätzliche Division.
                                                                                     seit 1985 sind im 80386 und seinen Nachfolgern als
Sicherlich fallen einem jeden mannigfache Situationen ein, in                        zusätzliche Funktionen sin und cos explizit implemen-
denen die Auswertung elementarer Funktionen unverzichtbar                            tiert [37], [36]; [38]:
ist.
                                                                      Funktio          Instruktio
        sin(x) und cos(x) beispielsweise für Rotationen der             n                  n
                                                                                                        8087      80287     80387    80486   80586
         generativen Computer Graphik, Roboter-Steuerung,                  cos          FCOS3
                                                                                                                            123–     257–
                                                                                                                                             18–124
         Sinus-Generatoren, Fourier-Transformation und ihre                                                                  772      354
                                                                                                                            122–     257–
         mannigfachen Abkömmlinge usw.                                     sin           FSIN
                                                                                                                             771      354
                                                                                                                                             16–126
        arctan(x) beispielsweise für Überführung Cartesischer        sin und                                               194–     292–
                                                                                       FSINCOS                                               17–137
         Koordinaten in Polar-Koordinaten usw.                          cos                                                  809      365
        sqrt(x) beispielsweise für Abstände von Punkten, für
         das Normieren von Vektoren usw.                                             Dies bestätigt die Intel-Aussage [33] zu FSINCOS:
        exp(x) beispielsweise für Wachstums- oder Abkling-                          This instruction is faster than executing the FSIN and
         Vorgänge, für Normalverteilung, Ausfallwahrschein-                          FCOS instructions in succession.
         lichkeiten nicht alternder Bauteile, usw.
                                                                      Die Indizien sind erdrückend: simple Taylor-Approximation
                                                                      allein kann diesen Implementierungen nicht zugrunde liegen!
                                                                      ([35] zeigt, wie die Entwicklung extrem leistungsfähiger
                                                                      Gleitkomma-Einheiten die Implementierungen der elementaren
2.3 Taylor-Approximation kann’s nicht
                                                                      Funktionen in aktuellen Intel-Prozessoren der x86-Familie
sein!                                                                 beeinflusst hat und wie kompliziert die Berechnung tatsächlich
Einige Indizien, besonders etwa bei Verwendung                        ist!)
leistungsschwacher Taschenrechner, lassen vermuten, dass die
Taylor-Approximation vielen Anwendungen gerade nicht
zugrunde liegen kann.

        Vermittels Taylor-Approximation dauert die Auswer-
         tung beispielsweise des Logarithmus wesentlich länger
         als die Auswertung der Exponential-Funktion. >>>
         Konvergenz-Geschwindigkeit
                                                                      1
        Die Konvergenz-Geschwindigkeit der Taylor-Appro-               FPATAN: arg=Y/X mit 8087/80287: 0 ≤ Y < X < ∞.
                                                                      2
         ximation hängt stark vom Argument ab! >>>                      FPTAN: 0 ≤ arg ≤ π/4 auf 8087/287, berechnet Y=sin(arg)
         Konvergenz-Geschwindigkeit                                   und X=cos(arg). Zusätzliche Division liefert das Ergebnis Y/X.
                                                                      80387: falls |arg|>π/4 bis zu 76 zusätzliche cycles, 80487: falls
Weitere Indizien liefern die Prozessoren der Intel x86-Familie.       |arg|> π/4 zusätzlich arg/(π/4) cycles.
                                                                      3
                                                                        FCOS, FSIN, FSINCOS: 80387: falls |arg|>π/4 bis zu 76 zu-
                                                                      sätzliche cycles, 80487: falls |arg|>π/4 zusätzlich arg/(π/4)
                                                                      cycles.

                                                                  2
2.4 Taylor-Approximation vs CORDIC                                           3.1 CORDIC-Rotationen
Die Unterschiede von Taylor-Approximation und CORDIC-
Algorithmen seien am Beispiel der Berechnung von cos(1.45)
illustriert. (Fehler aufgrund Rundung des Argumentes werden
hier nicht betrachtet.)

         [Taylor] Approximiere cos(x) durch 1-x2/2!+x4/4!-
          +…+ (-1) n x2n/((2n)!).
          Die Reihe wird eben durch das Taylor-Polynom für
          festes Argument approximiert.
          Fehler entstehen aufgrund des Abbrechens der Taylor-               Wählt man nun |φi|=arctan(2-i), dann besteht eine CORDIC-
          Reihe       und der Arithmetik bei der Auswertung des              Rotation
          Taylor-Polynoms.
         [CORDIC] Volder [1] entdeckte 1959 (!) den
          COordinate Rotation DIgital Computer, CORDIC, der                  aus zwei SHIFTs und zwei ADDs. CORDIC-Rotationen sind
          trigonometrische Funktionen auswertet und den                      also mit minimalem (hardware-) Aufwand durchzuführen.
          Walther [2] 1971 zur Auswertung beliebiger elemen-                 CORDIC-Rotationen beinhalten allerdings eine implizite
          tarer Funktionen verallgemeinerte.                                 Skalierung, die durch Multiplikation mit geeigneten Faktoren
          Approximation        des     Funktionswertes     durch             ausgeglichen werden muss, nämlich bei Prä- oder Post-
          Approximation des Argumentes.                                      Skalierung per Multiplikation mit
          Unterstellt, dass die transzendente Funktion cos(x) für
          bestimmte Argumente korrekt berechnet werden kann,
          entstehen so Fehler aufgrund dieser Approximation
          des Argumentes und der Arithmetik bei der                          >>>Norm-erhaltende Transformation
          Auswertung von cos(x).

Die folgende Figur zeigt den Unterschied der Berechnung von                  3.2 CORDIC-Algorithmus (rotation,
cos(1.45), auf der einen Seite per Taylor-Approximation und                  forward)
auf der anderen Seite per CORDIC-Algorithmus.
                                                                             CORDIC-Algorithmen operieren auf Tripeln (xi,yi,zi)




                                                                             Wie beispielsweise sin 30° bzw. cos 30° approximiert wird,
                                                                             zeigt die folgende Graphik.




3 CORDIC
CORDIC-Algorithmen berechnen etwa die trigonometrischen
Funktionen sin(x) oder cos(x) gemeinsam4.
In komplexer Schreibweise gilt
cos φ+j sin φ = exp(j φ) = exp(j φn-1) exp(j φn-2)…exp(j φ1) exp(j φo)
falls φ = φn-1+φn-2+…+φ1+φo.
oder eben vektoriell geschrieben – wobei hier φo=0 gesetzt sei
                                                                             Numerische Experimente mit CORDIC-Algorithmen erlaubt im
                                                                             Übrigen auch das interaktive Dokument [25]. Hier operiert der
                                                                             CORDIC im sogenannten circulären Modus und zwar in der
                                                                             Richtung rotation oder forward, vgl. [4].
Noch ist nichts gewonnen, außer dass die Auswertung von
cos(φ) und sin(φ) auf eine Rotation oder mehrere Rotationen
zurückgeführt wurde:                                                         3.3 CORDIC-Konvergenz & -Konvergenz-
                                                                             Bereich
                                                                             Konvergenz der CORDIC-Algorithmen garantiert der folgende
4
  Wie fangen Mathematiker einen Löwen? Sie fangen zwei und
lassen einen wieder laufen!                                                  Satz

                                                                         3
Gegeben αo ≥ α1 ≥ … ≥ αn > 0 mit αk ≥ αn+αk+1 +αk+2+…+ αn
für alle 0≤ k ≤ n. Gegeben ein reelles r mit |r| ≤ α1 +α2+…+ αn.
Definiere induktiv zi+1 = zi + αi sgn(r-zi) mit zo=0. Dann gilt:

                                                                         Der 'hyperbolic CORDIC' berechnet also


Beweis durch Fallunterscheidung s. z.B. [25]

Folgerung
Gesicherte Konvergenz für alle r mit
                                                                         3.8 linear CORDIC
                                                                         Der CORDIC-Algorithmus im sogenannten linearen Modus
                                                                         multipliziert (rotating) oder dividiert (vectoring)!
                                                                         Wenn auch diese Implementierung den Standard-Implementie-
                                                                         rungen [32] für Multiplizierer oder Dividierer nicht ebenbürtig
                                                                         ist, bietet sie doch den Vorteil, dass ein vorhandener CORDIC
3.4 CORDIC-scaling                                                       fast ohne zusätzlichen hardware-Aufwand eben zugleich auch
Falls der Skalierungsfaktor K in sign-digit-representation K=κ0          Multiplikationen und Divisionen ausführen kann – eine
20 + κ1 2-1 +…+ κn 2-n mit κi = ±1 gegeben ist, so lässt sich auch       attraktive Variante dann, wenn man durch Einsparen
die Skalierung nur mit SHIFTs und ADDs durchführen.                      zusätzlicher funktionaler Einheiten etwa die Verlustleitung
Darüber hinaus gibt es alternative Herangehensweisen, vgl. z.B.          reduzieren kann.
[21].

                                                                         3.9 CORDIC Funktionalität
3.5 CORDIC-vectoring (vectoring,                                         Die Funktionalität von CORDIC-Implementierungen sei hier
backward)                                                                zusammengestellt:
Der CORDIC-Algorithmus operiert im sogenannten circulären
Modus auch in der entgegen gesetzten Richtung vectoring oder
backward, vgl. [4].

Um φ = arcsin(arg) oder arccos(arg) = π/2-arcsin(arg) zu
berechnen, wird der Einheitsvektor ex rotiert, bis die y-Koordi-
nate des gedrehten Vektors mit arg übereinstimmt: yi → arg




                                                                         Die CORDIC-Algorithmen in den drei Modi stehen in Form
                                                                         von interaktiven Dokumenten [25] zum Ausprobieren zur
                                                                         Verfügung.


                                                                         4 Implementierungen
                                                                         Eine Implementierung ist immer im Licht bestimmter
                                                                         Anwendungen und bestimmter Entwurfsziele wie

3.6 Koordinaten-Transformationen                                                Geschwindigkeit
Offensichtlich lassen sich mit CORDIC-Algorithmen im                            effiziente Speicher-Nutzung
circulären Modus Polar- in Cartesische Koordinaten und                          Genauigkeit [5]
umgekehrt umrechnen.                                                            geringe Verlustleistung [8], [11], [14], [22]
                                                                                Fehler-Toleranz [KwakPS00]

                                                                         zu bewerten. Beispiele für verschiedene                 CORDIC-
                                                                         Architekturen mögen dies illustrieren.

3.7 hyperbolic CORDIC                                                           building blocks
Die enge Beziehung zwischen den trigonometrischen und den                             o [SHIFT] switches, barrel shifters
hyperbolischen Funktionen legt den hyperbolischen Modus des                           o [ADD/SUB] ripple-carry-, carry-save-, carry-
CORDIC nahe. >>>hyperbolische Additionstheoreme                                           look-ahead-, conditional sum-, limited-size
                                                                                          carry-look-ahead-, … adders
                                                                                      o [scaling] pre-, post-scaling


                                                                     4
            o     [Architecture] fix → float, sign digit,                       pipelined CORDIC, DCT, Wavelets, [7], [12], [18],
                  pipeline, processor array, systolic array                     [21]
       basic circuit                                                          Raster-Bilder in real time drehen (parallele Rotation
                                                                                von 8x8 pixel-Blöcken) [6]
                                                                               preprocessing, d.h. Normalisieren per Rotation,
                                                                                Skalierung für Handschriften-Erkennung etwa auf
                                                                                PDAs [13]
                                                                               Motion Estimation statt per block matching per
                                                                                matching in DCT domain [10]
                                                                               Motion Estimation per Hough Transformation
       pipeline                                                                (Strecken der polygonalen Kontour in Hesse'scher
                                                                                Normalform) [9], für Video-Coding wie MPEG,
                                                                                H.261, H.263 [19]




                                                                       6 Empfehlungen für die Technische
                                                                       Informatik
                                                                       Das Gesagte legt nahe, CORDIC-Algorithmen – ihrer
                                                                       Bedeutung entsprechend – in

                                                                               Mathematik (Additionstheoreme, Geometrie, Konver-
                                                                                genz, Algorithmik, Komplexität, Fehler-Analyse)
                                                                               Rechner-Strukturen/Computer-Architektur        (Fest-
                                                                                komma- vs Gleitkomma-Arithmetik, sign-digit-
       tree (DFT)
                                                                                representation,    Speicher-Effizienz,    pipelining,
                                                                                Parallelisierung)
                                                                               generative Computer Graphik, imaging, Signal-
                                                                                verarbeitung etc.

                                                                       zu berücksichtigen, um so Anwendungsbezogenes, Fächer-
                                                                       übergreifendes Lehren und Lernen zu stärken.
Weiterentwicklungen weisen in verschiedene Richtungen:                 Naturgemäß sind die angestellten Überlegungen in erster Linie
                                                                       einschlägig nur für die Technische Informatik. Andere
       verbessertes pipelining durch 'schnelleres Vorzeichen'         ingenieurwissenschaftliche Studiengänge haben sicher ihre
        (sign-digit & adder)                                           eigenen Algorithmen, die in exemplarischer Weise die Pole
       weniger Iterationen, d.h. schnellere Konvergenz durch          Theorie und Praxis, Grundlagen und Anwendung verbinden.
        adaptives Inkrementieren
       verringerter Chip-Fläche z.B. durch hierarchische              Tendenziell schwächere Vorkenntnisse der Studienanfänger
        barrel shifter                                                 gerade in Mathematik, tendenziell verkürzte Studienzeiten und
       Verallgemeinerung durch Integration der drei Modi:             tendenziell    weiter   modularisierte     Studiengänge,      die
        circular, linear, hyperbolisch                                 integrierendes,    Fächer-übergreifendes,      interdisziplinäres
       Flexibilität durch Programmierbarkeit/ISA, [23]                Lehren und Lernen erschweren, stehen solchen Wünschen,
       weitere Erhöhung der Geschwindigkeit durch                     diese Pole zu verbinden, allerdings grundsätzlich entgegen.
        Parallelisierung, z.B. MMX [16] oder SSE [34]


5 Anwendungsbeispiele                                                  7 einige Referenzen
Unter den unzähligen Anwendungen von CORDIC-Algorith-                  Im Folgenden sind einige ausgewählte Referenzen zu
men seien einige exemplarische aufgelistet.                            CORDIC-Algorithmen aus [24] chronologisch aufgelistet, u.a.

       Roboter-Steuerung: (inverse) Kinematik und Dynamik                     die beiden seminal papers [1], [2]
        [3]                                                                    Überblicksartikel, z.B. [4]
       Transformationen in der generative Computer-                           Genauigkeit von CORDIC-Algorithmen, z.B. [5]
        Graphik, z.B. 2D, 3D Rotation, Normalisierung, 3D-                     Implementierungen, z.B. pipeline, processor array,
        Graphik und Animationen [17]                                            systolic arrays
       spherical vector interpolation für Phong shading bei                   viele Anwendungen
        Berücksichtigung des level of detail/HVS, gesteuert                    Reduktion der Verlustleistung, z.B. [8], [11], [14],
        durch die Anzahl der CORDIC-Interationen [20]                           [22]
       {Xn: 0≤ n< N} → {Yk=Xoe–j2π 0 k/N + X1e–j2π 1 k/N + X2e–               Einsatz in Gewährleistungsarchitekturen, etwa für
        j2π2k/N
                + … + Xne–j2π n k/N: 0≤ k< N }, DFT per                         Fehler-Toleranz, z.B. [15]

                                                                   5
                                                                            CORDIC Processor; Int. Symposium on Defect and
gefolgt von Lehrbüchern der Mathematik und einigen wenigen                  Fault Tolerance in VLSI Systems, DFT 2000, October
Referenzen auf papers zu Aspekten der Computer-Architektur.                 2000, Yamanashi, Japan, IEEE 2000, 164–172
                                                                      16.   J. Villalba, J. Hormigo, M. A. González, E. L. Zapata:
    1.    Jack E. Volder: The CORDIC Trigonometric                          MMX-like Architecture Extension to Support the
          Computing Technique; IRE Trans. Electronic                        Rotation Operation; IEEE Int. Conf. on Multimedia
          Computers, Vol EC-8, September 1959, pp 330–334                   and Expo, ICME 2000, New York, July 30 – August
    2.    J. S. Walther: A Unified Algorithm for Elementary                 2, IEEE 2000, Vol III, 1383–1386
          Functions; Spring Joint Computer Conference 1971 pp         17.   Tomás Lang, Elisardo Antelo: High-Throughput 3D
          379–385                                                           Rotations and Normalizations; 35th Asilomar Conf. on
    3.    C. S. G. Lee, P. R. Chang: A Maximum Pipelined                    Signals, Systems and Computers, November 2001,
          CORDIC Architecture for Inverse Kinematic Position                IEEE 2001, 846–851
          Computation; IEEE J. of Robotics and Automation,            18.   Wu Zhilu, Ren Guanghui, Zhao Yaqin: A Study on
          Vol 3, No 5, October 1987, 445–458                                Implementing Wavelet Transform and FFT with
    4.    Yu Hen Hu: CORDIC Based VLSI-Architectures for                    FPGA; IEEE 2001, 486–489
          Digital Signal Processing; IEEE Signal Processing           19.   Jie Chen, K. J. Ray Liu: Efficient Architecture and
          Magazine, July 1992, 16–35                                        Design of an Embedded Video Coding Engine; IEEE
    5.    Yu Hen Hu: The Quantization Effects of the CORDIC                 Trans. on Multimedia, Vol 3, No 3, September 2001,
          Algorithm; IEEE Trans. Signal Processing, Vol 40,                 285–297
          No 4, April 1992, 834–844                                   20.   Jeongseon Euh, Jeevan Chittamuru, Wayne Burleson:
    6.    Indradeep Gosh, Bandana Majumdar: Design of an                    CORDIC Vector Interpolator for Power Aware 3D
          Application Specific VLSI Chip for Image Rotation;                Computer Graphics; IEEE Workshop on Signal
          7th Int. Conf. on VLSI Design, January 1994, IEEE                 Processing Systems, SIPS2002, IEEE 2002, 240–245
          275–278                                                     21.   Sungwook Yu, Earl E. Swartzlander Jr.: A Scaled
    7.    Sven Simon, Peter Rieder, Christian V.Schimpfle,                  DCT Architecture with the CORDIC Algorithm; IEEE
          Josef A. Nossek: CORDIC Based Architectures for the               Transactions on Signal Processing, January 2002, Vol
          Efficient Implementation of Discrete Wavelet                      50,              No             1            160–167
          Transforms; IEEE Int. Symposium on Circuits and                   http://www.ece.utexas.edu/\~sungwook/zPDF/sc.pdf
          Systems, ISCAS 1996, Vol 4, 77–80                           22.   Milos Krstic, Alfonso Troya, Koushik Maharatna,
    8.    Christian V. Schimpfle, Sven Simon, Josef A. Nossek:              Eckhard Grass: Optimized Low Power Synchronizer
          Low Power CORDIC Implementation Using                             Design for the IEEE 802.11a Standard; Int. Conf. on
          Redundant Number Representation; IEEE Int. Conf.                  Acoustics, Speech, and Signal Processing, ICASSP
          Application-Specific Systems, Architectures and                   2003, April 2003, Hong Kong, IEEE 2003, II-333–II-
          Processors (ASAP 1997), July 1997, 154–161                        336
    9.    Hsiang-Ling Li, Chaitali Chakrabarti: Hardware              23.   Sven Simon, M. Müller, H. Gryska, A. Wortmann, S.
          Design of a 2-D Motion Estimation System Based on                 Buch: An Instruction Set for the Efficient Imple-
          the Hough-Transform; IEEE Trans. on Circuits and                  mentation of the CORDIC Algorithm; IEEE Int.
          Systems – II: Analog and Digital Signal Processing,               Symposium on Circuits and Systems, ISCAS 2004
          Vol 45, No 1, January 1998, 80–95                           24.   Thomas Risse: CORDIC references, Hochschule
    10.   Jie Chen, K. J. Ray Liu: A Complete Pipelined                     Bremen,                       http://www.weblearn.hs-
          Parallel CORDIC Architecture for Motion Estimation;               bremen.de/risse/papers/CORDIC.doc/CORDICreferen
          IEEE Trans. on Circuits and Systems – II: Analog and              ces.pdf
          Digital Signal Processing, Vol 45, No 6, June 1998,         25.   Thomas Risse: Numerik – CORDIC-Algorithmen,
          653–660                                                           Hochschule        Bremen      http://www.weblearn.hs-
    11.   Tso Bing Juang, Shen Fu Hsiao: A Low Power and                    bremen.de/risse/MAI/docs/numerik.pdf             bzw.
          Fast CORDIC Processor for Vector Rotation; IEEE                   http://www.weblearn.hs-
          42th Midwest Symposium on Circuits and Systems,                   bremen.de/risse/MAI/docs/numerics.pdf
          MWSCAS 1999, August 1999, Las Cruces, 81–83                 26.   Wolfgang Brauch, Hans-Joachim Dreyer, Wolfhart
    12.   Peter Rieder, Sven Simon, Christian V. Schimpfle:                 Haacke: Mathematik für Ingenieure; Teubner 2003
          Application Specific Efficient VLSI Architectures for       27.   Klemens Burg, Herbert Haf, Friedrich Wille: Höhere
          Orthogonal Single- and Multiwavelet Transform; J.                 Mathematik für Ingenieure; mehrbändig, Teubner
          VLSI Signal Processing – Systems for Signal, Image,               1993–2002
          and Video Technology, Vol 21, No 2, 77–90 (1999)            28.   Peter Hartmann: Mathematik für Informatiker; Vieweg
    13.   Stephen McInerney, Richard B. Reilly: Hybrid                      2004
          Multiplier CORDIC Unit for Online Handwriting               29.   Lothar Papula: Mathematik für Ingenieure;
          Recognition; Int. Conf. on Acoustics, Speech, and                 mehrbändig, Vieweg 2001
          Signal Processing, ICASSP 1999, IEEE 1999, Vol 4,           30.   Horst Stöcker: Mathematik – Der Grundkurs;
          1909–1912                                                         mehrbändig, Harri Deutsch 1995–1999
    14.   Joe Costello, Damin-Al Khalili: Behavioural Synthesis       31.   Peter Stingl: Mathematik für Fachhochschulen –
          of Low Power Floating Point CORDIC Processors;                    Technik und Informatik; Hanser 2003
          Int. Conf. on Electronics, Circuit and Systems, ICECS       32.   David A. Patterson, John L. Hennessy: Computer
          2000, December 2000, Lebanon, IEEE 2000, 506–509                  Organisation and Design; 2nd edition, Morgan
    15.   Jae-Hyuck Kwak, Vincenzo Piuri, Earl E.                           Kaufmann, San Francisco, 1998
          Schwartzlander, Jr.: Fault-Tolerant High-Performance


                                                                  6
33. Intel Architecture Software Developer’s Manual –
    Volume 2: Instruction Set Reference; 1997 z.B.
    http://www.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/x
    86/iapx-v2.pdf
34. Lars Nyland, Mark Snyder: Fast Trigonometric
    Functions Using Intel's SSE2 Instructions; University
    of North Carolina at Chapel Hill, Technical Report
    TR03-041,                                          2003
    ftp://ftp.cs.unc.edu/pub/publications/techreports/03-
    041.pdf
35. Shane Story et al: Highly Optimized Mathematical
    Functions for the Itanium Processor; Intel Developer
    Forum                     Spring                  2001,
    http://cnscenter.future.co.kr/resource/rsc-
    center/presentation/intel/spring2001/soss049.pdf
    http://developer.intel.com/software/opensource/numeri
    cs (not found)
36. Microsoft Corp.: Notes on Intel(R) Pentium(TM)
    Processor;                                         1993
    http://www.singlix.org/trdos/pentium.txt
37. Kevin M. Lillis: MASM and Intel Documentation –
    Reference Guide, Chapter~5: Coprocessors; St.
    Ambrose                  University                2000
    http://web.sau.edu/LillisKevinM/csci240/masmdocs/
    bzw.
    http://web.sau.edu/LillisKevinM/csci240/masmdocs/re
    ference/09LMARFC05.pdf
38. Karel Dudacek: 80x87 Instruction Set (x87 –
    Pentium); University of West Bohemia 2002,
    http://home.zcu.cz/~dudacek/SOJ/manualy/80x87set.p
    df




                                                              7

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:77
posted:2/11/2012
language:English
pages:7