<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% Content-encoding: UTF-8
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{0}


\begin{document}

\title{Logarithmische Zahlensysteme}
\author{Rafael Deliano}
\maketitle
\label{LNS}

Multiplikation und Division sind bei Festkommazahlen aufwÃ¤ndig. Vom Rechenschieber ist bekannt, dass bei logarithmischer Zahlendarstellung diese Funktionen einfach sind, sie reduzieren sich auf Addition und Subtraktion.

\begin{multicols}{2}

	FÃ¼r Potenzen und Wurzeln sind nur noch Multiplikation und Division nÃ¶tig, fÃ¼r Quadrat und Quadratwurzel genÃ¼gen Shiftbefehle (Bild 1). Andererseits sind Addition und Subtraktion logarithmierter Zahlen schwierig.
	
\begin{center}
\includegraphics[width=0.4\columnwidth]{2008-01/LNS-Bild1}\\
\label{LNS:Bild1}Bild 1: Operationen
\end{center}
	
Die primitive LÃ¶sung fÃ¼r z.B. Multiplikation war somit Ã¼ber eine log--Tabelle das Zahlensystem zu wechseln, die Addition auszufÃ¼hren und dann Ã¼ber eine invlog--Tabelle zurÃ¼ck auf Festkomma zu wandeln (Bild 2). Mit ersten Verfeinerungen wurde das bereits in den 60er Jahren propagiert [1].
	
\begin{center}
\includegraphics[width=0.4\columnwidth]{2008-01/LNS-Bild2}\\
\label{LNS:Bild2}Bild 2: Multiplikation
\end{center}
	
	Verwendet wird heute durchwegs der binÃ¤re Logarithmus (Bild 3). Man ist, wie man am Funktionsverlauf sieht, auf positive Zahlen beschrÃ¤nkt.
\begin{center}
\includegraphics[width=0.9\columnwidth]{2008-01/LNS-Bild3}\\
\label{LNS:Bild3}Bild 3: $y=ld(x)$
\end{center}
FÃ¼r bipolare Signale wird also ein zusÃ¤tzliches Vorzeichenbit nÃ¶tig. Zudem muss das Signal grÃ¶ÃŸer 1,0 sein. Dagegen hilft Umformulierung der Gleichungen, um gÃ¼nstige Koeffizienten zu erhalten (Bild 4).

\begin{center}
\includegraphics[width=0.3\columnwidth]{2008-01/LNS-Bild4}\\
\label{LNS:Bild4}Bild 4: Umwandlung fÃ¼r gÃ¼nstige Koeffizienten
\end{center}
		
\begin{center}
\includegraphics[width=0.5\columnwidth]{2008-01/LNS-Bild5}\\
\label{LNS:Bild5}Bild 5: Exponentialfunktion
\end{center}
			 
Besonders bei Exponentialfunktionen  ergeben sich oft Ã¼berraschend einfache LÃ¶sungen (Bild 5). Durch die weite Dynamik ist auch das Ãœberlaufverhalten gÃ¼nstig. Jedoch sind in den meisten Gleichungen Additionen nÃ¶tig (Bild 6), was Formatwandlung bedeutet. Abgesehen von der Rechenzeit besonders wegen der Quantisierungsfehler kritisch. Dem kann man natÃ¼rlich durch erhÃ¶hte AuflÃ¶sung begegnen. Aber wenn die Umwandlung durch Tabellen erfolgen soll, stÃ¶ÃŸt man schnell an praktische Grenzen.


\begin{center}
\includegraphics[width=0.9\columnwidth]{2008-01/LNS-Bild6}\\
\label{LNS:Bild6}Bild 6: gemischte Rechnung
\end{center}



\section{Signalverarbeitung}

	Der Speicherbedarf der ROMs war und ist einer der PferdefÃ¼ÃŸe, die den praktischen Einsatz von LNS 
(â€žLogarithmic Number Systemsâ€œ) bisher aufgehalten haben. Obwohl heute manchmal als Ersatz fÃ¼r Float propagiert, wurde das Format ursprÃ¼nglich speziell fÃ¼r Signalverarbeitung als geeignet angesehen [2]. Denn A/D-- und D/A--Wandler waren auf  
8--12 Bit beschrÃ¤nkt und damit blieb der Speicherbedarf der Tabellen ertrÃ¤glich. Anders als Festkommazahlen, die konstante Schrittweite haben, werden  nichtlinear kleine Werte mit grÃ¶ÃŸerer AuflÃ¶sung dargestellt. Damit erhÃ¤lt man bei DC--freien Signalen Ã¼ber einen weiten Dynamikbereich einen gÃ¼nstigen Signal/Rausch--Abstand, selbst wenn man nur mit kurzen WortlÃ¤ngen arbeitet. Im Telefonsystem macht man bei PCM--Codecs seit langem von dieser Eigenschaft gebrauch (Bild 7). 


\begin{center}
\includegraphics[width=0.5\columnwidth]{2008-01/LNS-Bild7}\\
\label{LNS:Bild7}Bild 7: Telefonie
\end{center}
Ein PID--Regler kann als Filter angesehen werden. AbhÃ¤ngig von der Implementierungsform wird der Filterkern im eingeregelten Zustand zumindest am Eingang 
\end{multicols}
\pagebreak
\vspace*{-1.3cm}
\begin{multicols}{2}
fast DC--frei sein, das Fehlersignal $e$ ist auf null ausgeglichen. LNS kann damit zweckmÃ¤ÃŸig sein (Bild 8). 

\begin{center}
\includegraphics[width=0.5\columnwidth]{2008-01/LNS-Bild8}\\
\label{LNS:Bild8}Bild 8: Regler
\end{center}
		
	AuÃŸer weiter Dynamik kann
vereinfachte Arithmetik durch
 gÃ¼nstige Stromaufnahme von Vorteil sein.  Mit Ausrichtung auf Anwendung in HÃ¶rgerÃ¤t wurde in [50] ein experimenteller Filterbankprozessor vorgestellt, der durch logarithmische A/D-- und D/A--Wandler ergÃ¤nzt werden sollte [51], so dass die Tabellen fÃ¼r die Formatwandlung prinzipiell entfallen. 
	Manche Sensorsignale wie Licht oder LautstÃ¤rke benÃ¶tigen viele Dekaden Dynamik und damit einen 14--16--Bit--A/D--Wandler. Wenn man solche Signale aber mit einem analogen Logarithmierer behandelt, genÃ¼gt in manchen Anwendungen ein 
	8--Bit--Wandler (Bild 9).  Die Kennlinie der Analogschaltung ersetzt hier auch die digitale Tabelle, allerdings muss das LNS--System auf sie abgestimmt werden.
\medskip

\begin{center}
\includegraphics[width=0.5\columnwidth]{2008-01/LNS-Bild9}\\
\label{LNS:Bild9}Bild 9: Analoge \glqq Tabellen\grqq
\end{center}
\vspace{-1mm}

\section{Additionstabellen}

	Die Umwandlung mit Tabellen fÃ¼hrt zu Rundungsfehlern. Man kann verhindern, dass sich diese akkumulieren, indem man nur fÃ¼r Ein-- und Ausgabe auf Festkomma wandelt. Und ansonsten im LNS--Format rechnet. Damit benÃ¶tigt man aber je eine weitere Tabelle fÃ¼r Addition und Subtraktion. Die Vorteile Ã¼berwiegen jedoch, im Verlauf der 70er Jahre hat sich das bald als die bevorzugte Variante eingebÃ¼rgert.
	
	Einen nicht zu unterschÃ¤tzenden Beitrag zur Popularisierung hat dabei die Publizierung des FOCUS--Zahlensystems [4] von Lee und Edgar 1977 bzw. 1979
geleistet, da dieses die konkrete Implementierung auf einem \columnbreak 8080--Mikroprozessor beschrieb und dafÃ¼r auch die Listings verÃ¶ffentlicht wurden.
	
	Obwohl die praktischen Anwendungen bisher spÃ¤rlich geblieben sind, hat die Zeit seither fÃ¼r LNS gearbeitet. Einerseits weil immer mehr Speicher billig verfÃ¼gbar wurde. Andererseits hat eine Handvoll Wissenschaftler dafÃ¼r gesorgt, dass Ã¼ber Interpolation und Eliminierung vorhandener Redundanzen die Tabellen verkleinert wurden, ohne dass Zugriffszeit und Genauigkeit zu sehr litten.
	
	In den 90er Jahren wurde versucht, LNS in Form von Softwaresystemen kommerziell und patentiert auf den Markt zu bringen. MarktfÃ¼hrer dÃ¼rfte die 1993 von Les Pickett gegrÃ¼ndete Firma gewesen sein [10]--[12]. Anwendung z.B. die Luftdrucksteuerung im Passagierraum der Boeing 767 und Ã¤hnlicher Flugzeuge seit 1977. Wobei der Hersteller das System nicht als LNS, sondern als EFP (â€žExponential Floating Pointâ€œ) bezeichnete. Etwa anno 2000 ist die Firma Ã¼ber Turbulenzen an der BÃ¶rse gestolpert.
	
	Nicht viel besser ging es dem Unternehmen von Mark Winkel [20], der basierend auf von Mark Arnold entwickelter Technik [21] das gleiche GeschÃ¤ftsmodell verfolgte, aber auch noch Picketts Patent umgehen musste. Diese Gruppe scheint aber mit Zielrichtung auf FPGA--Cores und ICs weiterhin aktiv zu sein.
	
	Auch groÃŸe Halbleiterhersteller wie Motorola und VLSI Technology waren aktiv und haben zumindest Patente angemeldet. Motorola stellte 1999 einen experimentellen 32--Bit--Coprozessor vor [30] [31], der 64  Arithmetikeinheiten enthÃ¤lt und damit 10 (US) Billionen Flops pro Sekunde erreicht. Anwendung war Video.
	
	Der Esprit--finanzierte â€žEuropean Logarithmic Microprocessorâ€œ hat es bisher zu Patent, einer FPGA--Implementierung [40] und einem teilweisen ASIC--Prototypen [41] gebracht. Die Ziele sind mit 32 Bit Wortbreite und damit AnnÃ¤herung an IEEE--Float hoch gesteckt [42]. Finanziell unterstÃ¼tzt von der englischen Regierung entstand dann unter Coleman 2005 die Firma Northern Digital als spin--off der Newcastle University. Samples in 0,18--micron CMOS mit 125 MHz Takt sind wohl verfÃ¼gbar. Da die Firma aber auf Vermarktung von IP ausgelegt ist, kann man das IC einstweilen noch nicht kaufen. Angepeilte Anwendung auch hier Video. 
\end{multicols}
\vspace*{-2mm}
% \section{Literatur}
\newlength{\refskip}\setlength{\refskip}{-0.3mm}
\begin{small}
{[1]} Mitchell â€žComputer Multiplication and Division using Binary Logarithmsâ€œ 
IEEE Trans. Comput. August 1962\\[\refskip]
{[2]} Kingsbury, Rayner â€žDigital filtering using logarithmic arithmeticâ€œ Electronic Letters vol. 7 1971\\[\refskip]
{[4]} Lee, Edgar â€žThe FOCUS number systemâ€œ IEEE Trans. Comp. Nov 1977\\[\refskip]
{[10]} \url{www.logpoint.com}\\[\refskip]
{[11]} L. Pickett â€žMethod and Apparatus for Exponential/Logarithmic Computationâ€œ
U.S. Patent 5.197.024.23 March 1993\\[\refskip]
{[12]} â€žSoftware Math Coprozessor Rivals Hardware Speedsâ€œ Electronic Design August 1997\\[\refskip]
{[20]} \url{www.xlnresearch.com}\\[\refskip]
{[21]} Arnold â€žMethod and Apparatus for Fast Logarithmic Addition and Subtractionâ€œ U.S. Patent 5.337.266.9 August 1994\\[\refskip]
{[22]} â€žFast Math: Software Faster Then a Coprozessorâ€œ C User's Journal Juli 1991\\[\refskip]
{[30]} Pan â€žA 32b 64--matrix parallel CMOS processorâ€œ 1999 IEEE Intl. 	       Solid--State Circuits Conf.\\[\refskip]
{[31]} â€ž10bn Flops using logsâ€œ Electronics Weekly Feb. 1999\\[\refskip]
{[40]} Kadlec et Al. â€ž32--bit Logarithmic ALU for Handel C2.1 and Celoxica DK1â€œ\\[\refskip]
{[41]} Chester, Coleman â€žDevelopment of a High--Speed 32b Real Arithmetic Core for DSP and Graphics Applications using Logarithmic Number System Techniquesâ€œ\\[\refskip]
{[42]} Coleman, Chester â€žA 32--Bit Logarithmic Arithmetic Unit and Its Performance Compared to Floating Pointâ€œ\\[\refskip]
{[50]} Morley, Sullivan, Engel â€žA VLSI FIR Digital Signal Prozessor Using Logarithmic Arithmeticâ€œ in: Broderson â€žVLSI Signal Processing IIIâ€œ IEEE 1988\\[\refskip]
{[51]} Engel, Morley, Kwa, Fretz â€žIntegrated Circuit Logartihmic Digital Quantizers with Applications to low--power data interfaces for speech processingâ€œ in: Moscovitz â€žVLSI Signal Processing IVâ€œ IEEE 1991
\end{small}
\end{document}
</pre></body></html>