DE10210663A1 - Vorrichtung und Verfahren für Anzeige- und/oder Präzisionsoperationen von numerischen Werten in binären Systemen - Google Patents

Vorrichtung und Verfahren für Anzeige- und/oder Präzisionsoperationen von numerischen Werten in binären Systemen

Info

Publication number
DE10210663A1
DE10210663A1 DE10210663A DE10210663A DE10210663A1 DE 10210663 A1 DE10210663 A1 DE 10210663A1 DE 10210663 A DE10210663 A DE 10210663A DE 10210663 A DE10210663 A DE 10210663A DE 10210663 A1 DE10210663 A1 DE 10210663A1
Authority
DE
Germany
Prior art keywords
integer
value
binary
codes
divisor
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.)
Withdrawn
Application number
DE10210663A
Other languages
English (en)
Inventor
Daniel Esbensen
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.)
Cufer Asset Ltd LLC
Original Assignee
TOUCH TECHNOLOGIES Inc
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 TOUCH TECHNOLOGIES Inc filed Critical TOUCH TECHNOLOGIES Inc
Publication of DE10210663A1 publication Critical patent/DE10210663A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/06Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being a positive integer different from two
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Executing Machine-Instructions (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Ein Verfahren und/oder eine Vorrichtung zum Bestimmen von Zeichencodes für einen numerischen Wert wiedergewinnt zwei oder mehrere Zeichencodes bei jeder Iteration des Verfahren und/oder zum Darstellen und Verarbeiten von numerischen Werten in binären Systemen.

Description

Querverweis zu entsprechenden Anmeldungen
Diese Anmeldung beansprucht die Priorität von den vorläu­ figen Anmeldungen 60/275,323 und 60/275,324, jeweils einge­ reicht am 12. März 2001.
Bereich der Erfindung
Die vorliegende Erfindung betrifft Systeme und Verfahren der Informationsverarbeitung.
Hintergrund der Erfindung
Die Diskussion irgendeiner Arbeit, Veröffentlichung, Ware oder Aktivität irgendwo in dieser Einreichung, in irgendwel­ chen in dieser Anmeldung vorgelegten Dokumenten und in ir­ gendwelchen hierin mittels Verweis aufgenommenen Dokumenten inbegriffen, soll nicht als Eingeständnis der Erfinder aufge­ faßt werden, daß eine solche Arbeit den Stand der Technik bildet. Die Diskussion irgendeiner Aktivität, Arbeit oder Veröffentlichung hierin ist kein Eingeständnis, daß eine sol­ che Aktivität, Arbeit oder Veröffentlichung vorhanden war oder in irgendeiner speziellen Rechtsprechung bekannt war.
Eine Aufgabe, der die frühen Entwickler von Computer­ architektur gegenüberstanden, war, wie sich numerische Daten schnell und effizient auf einem Bildschirm anzeigen lassen. In Computersystemen sind numerische Daten typisch als eine Darstellung der Zahl auf Zweierbasis gespeichert. Zum Bei­ spiel kann die zwei Byte Ganzzahl 63119d (hierin bezeichnet d eine dezimale Notation, h bezeichnet eine hexadezimale, b be­ zeichnet eine binäre Notation) in einem Binärspeicher eines Computers als die Binärzahl 1100000110001011b dargestellt sein. Viele Variationen in bezug auf die Darstellung numeri­ scher Werte in Binärsystemen sind bekannt, beispielsweise ei­ ne Zweierkomplement-Notation.
Eine Schwierigkeit tritt auf, wenn eine Binärzahl in eine Form für eine Bildschirmanzeige oder für Operationen in ein anderes Basissystem, beispielsweise in ein dezimales, konver­ tiert wird. In Darstellungsanwendungen muß eine Routine die binär gespeicherte Zahl in eine Folge von Zeichencodes kon­ vertieren. Bekannte und allgemein verwendete Zeichencodes um­ fassen ASCII und EBCDIC. Der Baudot-Code ist ein weiteres Beispiel für einen Code, der extensiv in Telegraphiesystemen verwendet wurde, wobei fünf Bits 32 Zeichen kodierten. Wäh­ rend unterschiedliche Darstellungscodes unterschiedliche Probleme beim Konvertieren zwischen binär aufwerfen, ist das Gesamtproblem das gleiche. Zur Vereinfachung konzentriert sich die vorliegende Diskussion auf die Konversion binärer kodierter Zahlen in ASCII, obgleich die vorliegende Erfindung verwendet werden kann, um zwischen anderen geeigneten Kodie­ rungsschemata zu konvertieren.
Eine solche Konversion ist in den meisten Computersyste­ men eine prozessorintensive Aufgabe. Ein Verfahren ist, durch Dividieren der ursprünglichen Zahl durch die höchste Potenz von Zehn, die kleiner als sie ist, jede Dezimalstelle separat von links zu übersetzen. Das Ganzzahlergebnis (auch als Quo­ tient bezeichnet) wird dann in einer Tabelle nachgeschlagen oder mit einem Wert kombiniert, um einen ASCII-Code zu lie­ fern. Der Vorgang wird mit den Resten wiederholt, bis Zei­ chencodes für alle Stellen bestimmt sind.
Ein alternatives Verfahren ist, jede Dezimalstelle von rechts beginnend zu übersetzen, durch Dividieren der ur­ sprünglichen Zahl durch 10 und unter Verwendung des Modulo- Operators, um in einer Tabelle nachzuschauen oder mit einem Wert zu kombinieren, um einen ASCII-Code zu bekommen, und wiederholen. Während diese Form kürzer auszudrücken ist, sind die zur Ausführung der Modulo-Operation notwendigen Computer­ operationen im allgemeinen gleich, wenn nicht länger und kom­ plizierter. Die binären arithmetischen Berechnungen, um diese Operationen auszuführen, sind sehr prozessorintensiv. Insbe­ sondere sind Divisionen von binären Zahlen, insbesondere Gleitpunktzahlen, oft sehr langsam und prozessorintensiv.
Eine Dekodierung einer mit Vorzeichen versehenen und/oder Gleitpunktzahl erfordert zusätzliche Schritte. Für mit Vor­ zeichen versehene Zahlen wird in einem Beispiel eines Verfah­ rens vom Stand der Technik das Vorzeichen von negativen Zah­ len zuerst gespeichert, dann wird die Zahl in einen positiven Wert konvertiert (was eine 2er-Komplementkonversion beinhal­ ten kann), und die vorstehend beschriebene allgemeine Proze­ dur wird durchgeführt. Für Gleitpunktzahlen können weitere Schritte notwendig sein, um die korrekte Stelle des Dezimal­ punkts zu bestimmen und um die Gleitpunktzahl in den korrek­ ten Ganzzahlwert zu konvertieren, bevor der binäre Ganzzahl­ wert in die Zeichencodes konvertiert wird. Diese Schritte va­ riieren, abhängig von dem in einem speziellen System verwen­ deten speziellen Gleitpunkt-Kodierungsschema.
Berechnungen von Dezimalzahlen in Binärsystemen
Um nichtbinäre Zahlen in Binärsystemen zu verarbeiten, müssen die Zahlen in eine mit der Zweierbasisdarstellung bi­ närer Systeme kompatible Form konvertiert oder kodiert wer­ den. Zum Beispiel kann in einem Binärspeicher eines Computers die Zweibyte-Ganzzahl 63119d als Binärzahl 1100000110001011b dargestellt sein. Viele Variationen zur Darstellung von Zah­ len in binären Systemen sind bekannt. Gleitpunktzahlen berei­ ten zusätzliche Probleme. Eine Vielzahl von binären Gleit­ punktformaten sind für Computer definiert worden; eines der gängigsten ist das von IEEE (Institute of Electrical & Elec­ tronic Engineers) definierte, bekannt als IEEE 754.
Die IEEE 754 Spezifikation definiert das 64 Bit Gleit­ punktformat mit drei Teilen:
  • 1. Ein 11 Bit binärer Exponent unter Verwendung des "ex­ cess-1023"-Formats. In diesem Format wird der Exponent als vorzeichenlose binäre Ganzzahl von 0 bis 2047 dar­ gestellt, und man subtrahiert 1023, um den mit Vorzei­ chen versehenen Wert des Exponenten zu erhalten.
  • 2. Eine 52 Bit Mantisse, ebenfalls eine vorzeichenlose binäre Zahl, die einen Bruchwert definiert, mit einer führenden implizierten "1".
  • 3. Ein Vorzeichenbit, das das Vorzeichen der Mantisse angibt.
Eine Variation dieses Schemas verwendet 32 Bits, bei­ spielsweise eine 23 Bit Mantisse mit einem Vorzeichenbit und einen 8 Bit Exponenten (im Excess-127-Format), was 7 gültige dezimale Stellen ergibt. Solche Gleitpunktzahlen werden manchmal als "Reals" oder "Floats" bezeichnet: eine 32 Bit Gleitpunktzahl wird manchmal eine "Real32" oder "Single" ge­ nannt (was "einfach genauer Gleitpunktwert" andeutet), wäh­ rend eine 64 Bit Gleitpunktzahl manchmal eine "Real64" oder "Double" genannt wird (was "doppelt genauer Gleitpunktwert" andeutet).
Mit diesen Gleitpunktzahlen können Probleme mit der Genau­ igkeit auftreten. Wie mit ganzen Zahlen gibt es nur einen endlichen Wertebereich, obwohl er ein größerer Bereich ist, der einen "overflow" (Überlauf) oder "underflow" (Unterlauf) erlaubt. Ein in einem System zulässiger maximaler reeller Wert wird manchmal als "Maschinenunendlichkeit" bezeichnet. Ein weiteres Problem ist, daß computerkodierte reelle Zahlen eine beschränkte Genauigkeit haben. Folglich kann es in vie­ len Gleitpunktrechnungen einen kleiner Fehler im Ergebnis ge­ ben, da einige niedrigere Stellen wegfallen. Dies kann in den meisten Fällen nicht merkbar sein, aber in einer mathemati­ schen Analyse, die viele Berechnungen erfordert, neigen die Fehler dazu, sich zu summieren, und können die Ergebnisse be­ einflussen. Ein anderer Fehler, der bei Gleitpunktzahlen ent­ stehen kann, ist der Tatsache zuzuschreiben, daß die Mantisse als binärer Bruch ausgedrückt wird, der möglicherweise nicht genau mit einem gewünschten Dezimalbruch übereinstimmt.
Ein in einigen Systemen verwendetes alternatives Format ist, für reelle Werte dezimale Festpunktdarstellungen (manch­ mal als skalierte Werte bezeichnet) zu erzeugen. Beispiels­ weise nimmt das Kodierungsschema FOUR für alle kodierten Zah­ len an, daß vier Dezimalstellen nach dem Dezimalpunkt vorhan­ den sind. Alle Berechnungen werden an binären Ganzzahlen aus­ geführt, ohne Wertigkeitsverlust. Jedoch bedeutet dies, daß an einem System mit 64 Bit Ganzzahlen (Daten mit 19 Dezimal­ stellen) dies in dem gegebenen Beispiel nur eine Darstellung von 15 Stellen links vom Dezimalpunkt und vier rechts vom De­ zimalpunkt erlauben würde. Ein anderes Format, das verwendet wird, um Dezimalzahlen zu verarbeiten und einige dieser Prob­ leme anzugehen, ist "Binary Coded Decimal" (BCD). In dieser Notation werden Gruppen von 4 Bit verwendet, um jede Dezimal­ ziffer von 0 bis 9 darzustellen.
In Systemen vom Stand der Technik wird eine Gleitpunkt­ verarbeitung von Gleitpunktzahlen, die durch einen bekannten Standard definiert sind, oft von einer Gleitpunkt-Einheit (Floating Point Unit, FPU), typisch ein zur Verarbeitung von Gleitpunktzahlen vorgesehener Block oder Bereich einer integ­ rierten Schaltung, durchgeführt. In Systemen ohne FPU- Hardware werden Gleitpunktoperationen allgemein von einer Software durchgeführt.
Zusammenfassung der Erfindung
Die vorliegende Erfindung in verschiedenen Ausführungsfor­ men beinhaltet ein Verfahren und/oder eine Vorrichtung und/oder eine digitale Logikschaltung zur schnelleren Bestim­ mung der Zeichencodes (beispielsweise ASCII- oder EBSIDIC- Zeichencodes) für einen binär dargestellten numerischen Wert und das in speziellen Ausführungsformen, wobei viele der Di­ visionen, die bei einer Konvertierung in Zeichencodes notwen­ dig sein können, vermieden werden.
In weiteren Ausführungsformen beinhaltet die Erfindung ein Verfahren und/oder eine Vorrichtung und/oder eine digitale Logikschaltung zur effizienteren Verarbeitung von numerischen Werten in binären Informationsverarbeitungssystemen, wie bei­ spielsweise eine Verwendung von zwei nicht zusammenhängenden (oder "separaten") Bitbereichen, um reelle Zahlen zu spei­ chern. Diese Bereiche werden als nicht zusammenhängend be­ zeichnet, da es keinen automatischen binären Übertrag in kei­ ne Richtung in bezug auf die Bitbereiche gibt und da sich in einer gegebenen Zahl jeder Teil der Zahl unabhängig vom Wert des anderen Teils bestimmen läßt. Mit anderen Worten, der ganzzahlige Anteil einer Dezimalzahl hängt nur vom ganzahli­ gen Anteil des gespeicherten binären Werts ab. Gleichermaßen hängt der Bruchanteil einer Dezimalzahl nur vom Bruchanteil des gespeicherten binären Werts ab. Was ihre Speicherung in einem Computerspeicher betrifft, so können die verschiedenen Anteile der Zahlen in nebeneinanderliegenden Speicherplätzen gespeichert sein. Gemäß speziellen Ausführungsformen der Er­ findung ist somit eine reelle Zahl, wie hierin diskutiert, als Ganzzahlanteil (IP) und Bruchanteil (FP) gespeichert.
Gemäß weiteren speziellen Ausführungsformen der Erfindung reicht die "Unabhängigkeit" des IP und FP einer Zahl bis zu den Vorzeichenbits, und sowohl der IP als auch der FP tragen ein Vorzeichenbit. In speziellen Ausführungsformen sind die Vorzeichenbits am IP und FP für beide Anteile immer iden­ tisch. Wie hierin verwendet, kann eine solche Zahl als N.IP.FP bezeichnet werden.
Der IP gemäß speziellen Ausführungsformen der Erfindung ist als eine herkömmliche binäre Ganzzahl dargestellt. In speziellen Ausführungsformen ist ein Vorzeichenbit als erstes Bit mit enthalten, wobei ein Zweierkomplement oder eine ande­ re Notation verwendet wird, um negative Zahlen darzustellen. Der FP gemäß speziellen Ausführungsformen der Erfindung ist ebenfalls als eine herkömmliche binäre Ganzzahl dargestellt. In speziellen Ausführungsformen ist ebenfalls ein Vorzeichen als erstes Bit mit enthalten, wobei ein Zweierkomplement oder eine andere Notation verwendet wird, um negative Zahlen dar­ zustellen. Jedoch ist der Bruchanteil der Dezimalzahl mit 10Skalierfaktor multipliziert, um sicherzustellen, daß alle Bits, die für die Genauigkeit von Bedeutung sind, innerhalb der Ganzzahl liegen. Zum Beispiel wird in einem System mit Skalierfaktor = 9 der Bruchanteil einer Dezimalzahl mit 109 multipliziert, bevor er im FP gespeichert wird, wie in der folgenden Tabelle gezeigt ist:
Gemäß speziellen Ausführungsformen der Erfindung ist der Skalierfaktor eine gewählte Potenz von 10 und gibt die von dem System unterstützte Anzahl der Dezimalbruchstellen an. "Skala" wird hierin manchmal verwendet, um 10Skalierfaktor an­ zugeben. In einer beispielhaften Ausführungsform werden 64 Bits für den Ganzzahlanteil und 32 Bits für den Dezimalan­ teil verwendet, somit erfordert eine einzige FP 96 Bit Spei­ cherplatz. Wie hierin verwendet, kann eine solche Zahl als r96 (für reell-96Bit) bezeichnet werden. In speziellen Aus­ führungsformen verwendet eine Zahlendarstellung gemäß der vorliegenden Erfindung 18 Dezimalstellen im ganzzahligen Teil der Zahl und 8 Stellen im Dezimalanteil, was einigen Imple­ mentationen erlaubt, eingebaute mathematische Funktionen ver­ schiedener CPUs zu verwenden.
Gemäß speziellen Ausführungsformen der vorliegenden Erfin­ dung werden Überträge zwischen dem IP- und dem FP-Anteil ei­ ner Zahl nicht automatisch durchgeführt und unterschiedliche numerische Operatoren führen Überträge zwischen dem IP und dem FP-Anteil explizit und mit geeigneten Variationen für je­ de Operation durch.
Gemäß speziellen Ausführungsformen ist der binäre Spei­ cherplatz für einen FP in der Lage, eine Zahl zu halten, die größer als der zulässige maximale FP ist. In einem System mit zum Beispiel 8 Dezimalstellen im FP-Anteil ist der größte FP, der dargestellt werden kann, .99999999d. Um diese Zahl zu speichern, sind für den binären Wert 27 Bit (101111101011110000011111111) plus ein Vorzeichenbit, insge­ samt 28 Bit, erforderlich. Jedoch ist die größte Dezimalzahl, die in 27 Bit gespeichert werden kann, 2.18103807. Somit wird für viele mathematische Operationen die FP-Anteil-Resultante (S.FP) mit dem MAX.FP (z. B. .99999999d) verglichen, und, falls darüber, eine Aktivierung eines Übertragbit bewirken und durch den MAX.FP erniedrigt werden.
Die Erfindung und verschiedene spezielle Aspekte und Aus­ führungsformen werden mit Bezug auf die folgenden Zeichnungen und detaillierte Beschreibung besser verständlich. Zum Zwecke der Klarheit bezieht sich diese Diskussion auf Vorrichtungen, Verfahren und Konzepte in Form von speziellen Beispielen. Je­ doch können sich die Erfindung und Aspekte davon auf eine Vielzahl von Vorrichtungs- und Systemtypen anwenden lassen. Es ist daher beabsichtigt, daß die Erfindung nicht beschränkt ist, außer wie in den angefügten Ansprüchen bestimmt ist. Es ist auf dem Fachgebiet gut bekannt, daß logische Systeme und Verfahren wie hierin beschrieben eine Vielzahl von unter­ schiedlichen Komponenten und unterschiedlichen Funktionen in modularer Weise umfassen können. Verschiedene Ausführungs­ formen der Erfindung können verschiedene Zusammenstellungen von Elementen und Funktionen umfassen und können verschiedene Funktionen als Teile verschiedener Elemente gruppieren.
Die funktionalen Aspekte der Erfindung, die auf einem Com­ puter implementiert sind, können, wie aus den hierin gegebe­ nen Unterrichtungen verständlich wird, unter Verwendung ir­ gendeiner geeigneten Implementationsumgebung oder Program­ miersprache, wie beispielsweise C, C++, Cobol, Pascal, Java, Java-script, Assembler oder Maschinencodeprogrammierung, kun­ denspezifischer Logikschaltungen usw., implementiert oder ausgeführt sein. Alle hierin zitierten Verweise, Veröffentli­ chungen, Patente und Patentanmeldungen sind hiermit durch Verweis in ihrer Gesamtheit für alle Zwecke mit aufgenommen.
Kurze Beschreibung der Zeichnungen
Fig. 1 veranschaulicht ein beispielhaftes Verfahren gemäß speziellen Ausführungsformen der Erfindung.
Fig. 2 veranschaulicht ein alternatives Verfahren in eini­ gen Details gemäß speziellen Ausführungsformen der Erfindung.
Fig. 3 veranschaulicht Details eines beispielhaften Sys­ tementwicklungsverfahrens gemäß speziellen Ausführungsformen der Erfindung.
Fig. 4 veranschaulicht einen Teil einer beispielhaften Implementation eines Programmcodes gemäß speziellen Ausfüh­ rungsformen der Erfindung.
Fig. 5 veranschaulicht einen Teil einer beispielhaften Implementation eines Programmcodes gemäß speziellen Ausfüh­ rungsformen der Erfindung.
Fig. 6 veranschaulicht ein beispielhaftes Verfahren gemäß speziellen Ausführungsformen der Erfindung.
Fig. 7 veranschaulicht eine beispielhafte Architektur ei­ nes beispielhaften Informationsverarbeitungssystems, die für verschiedene spezielle Ausführungsformen der Erfindung rele­ vant ist.
Fig. 8 ist ein Blockdiagramm, das ein repräsentatives Bei­ spiel einer Logikvorrichtung zeigt, in welcher verschiedene Aspekte der vorliegenden Erfindung verkörpert sein können.
Beschreibung von speziellen Ausführungsformen
In einer Ausführungsform kann die Erfindung als ein auf einem Computer implementiertes Verfahren verstanden werden, das binäre ganzzahlige Werte in Dezimalwerte konvertiert, un­ ter Verwendung eines Divisors, der kleiner als der ursprüng­ liche Wert ist, aber die Formel (10^N)^P erfüllt, wobei N ei­ ne ganze Zahl größer als 1 ist und P eine ganze Zahl größer als oder gleich 1 ist. N, wie nachstehend weiter beschrieben wird, ist gemäß speziellen Ausführungsformen der vorliegenden Erfindung eine vorab gewählte oder vorgegebene Zahl und stellt die Anzahl der Dezimalstellen dar, die während jeder Iteration der Routine bestimmt werden. P wird bestimmt, wenn ein numerischer Wert dekodiert wird, und wird als die maxima­ le Zahl gewählt, die einen Wert von (10^N)^P liefert, der kleiner als der absolute Wert der ursprünglichen Zahl ist. Während in dieser Diskussion durchwegs 10 als ein beispiel­ hafter Basiswert verwendet wird, können andere Ausführungs­ formen einen anderen Basiswert verwenden. Die vorstehende Gleichung kann als (Basis^N)^P verstanden werden.
Ein spezielles Beispiel eines allgemeinen Verfahrens, das zweistellige Zeichencodes (N = 2) nach jeder Division bestimmt, ist unter Verwendung von 63179 nachstehend gegeben:
  • 1. Bestimme den größten (10^N)^P-Wert, der kleiner als die Zahl = 10000 ist.
  • 2. 63179/10000 hat als Ganzzahlergebnis 06 (schlage diesen numerischen Wert nach) → 30h 36h.
  • 3. Multipliziere das Ganzzahlergebnis (06) und den Divisor (10000) = 6000.
  • 4. Subtrahiere diese Zahl von der ursprünglichen Zahl (63179-60000) = 3179.
  • 5. Wiederhole die Schritte 1 bis 4, bis alle Stellen deko­ diert sind, wie folgt:
  • 6. Bestimme den größten (10^N)^P-Wert, der kleiner als die Zahl (oder setzte P = P - 1) = 100 ist.
  • 7. 3179/100 hat als Ganzzahlergebnis 31 → 33h31h.
  • 8. Subtrahiere diese Zahl von der ursprünglichen Zahl (3179-3100 = 79).
  • 9. STOP, wenn das Subtraktionsergebnis kleiner als (10^N) (oder wenn P = 1) ist und schlage das Endergebnis nach: 79 → 37h39h.
  • 10. Gebe die resultierende Zeichencodes zurück (falls ge­ wünscht, lösche an einer Stelle führende Nullen): 30h36h33h31h37h39h.
Alternativ kann dieses Verfahren, mit N = 2, wie folgt aus­ geführt oder ausgedrückt werden:
  • 1. Setze n = 63179.
  • 2. nmodulo(10^N) = 79→37h39 h.
  • 3. Setze n = n/100 = 631.
  • 4. Wiederhole Schritte 2 und 3 bis n<(10^N).
  • 5. Schlage Endergebnis nach: 6→36 h.
  • 6. Verknüpfe die resultierenden Zeichencodes: 36h33h31h37h39h.
Fig. 1 veranschaulicht ein beispielhaftes Verfahren gemäß speziellen Ausführungsformen der Erfindung. Fig. 2 veran­ schaulicht ein alternatives Verfahren in einigen Details ge­ mäß speziellen Ausführungsformen der Erfindung. Wie in den Figuren gezeigt, kann die Erfindung in einem Logikverfahren verkörpert sein, das für eine Implementation durch ein ent­ sprechend konfiguriertes Informationsverarbeitungssystem, Computersysteme für allgemeine Zwecke und Informationsver­ arbeitungsbildschirme und -subsysteme inbegriffen, geeignet ist.
Dieser Aspekt der Erfindung ist in Form von allgemeinen Ausführungsformen beschrieben worden, die als eine vollstän­ dige und komplette Beschreibung betrachtet werden, die aus­ reicht, um Fachleuten die Herstellung und Verwendung der Er­ findung zu ermöglichen. Was folgt, sind Beschreibungen von beispielhaften Systemen und Verfahren, die mit verschiedenen Aspekten der vorliegenden Erfindung verbunden sind oder diese verkörpern können. Die folgende Diskussion kann auch unabhän­ gige innovative Ausführungsformen der Erfindung beinhalten.
Tabellen
Ein Verfahren oder Mechanismus zur Ausführung der vorste­ hend beschriebenen Schritte verwendet eine geeignet bemessene Tabelle (Nachschlagtabelle), die alle numerischen Werte klei­ ner als 10^N mit den entsprechenden Zeichencodes (allgemein N Codes in jedem Tabelleneintrag) verknüpft. Eine beispielhafte Tabelle kann die Form haben:
TABELLE 1
Zu beachten ist, daß die unkomprimierte Größe dieser Ta­ belle 100 Speicherplätze mal zwei Bytes oder 200 Bytes ist. Allgemeiner gesagt, die unkomprimierte Größe einer Zehnerba­ sis-Tabelle, wie vorstehend diskutiert, ist N*(10^N). Unter Verwendung eines ähnlichen Verfahrens könnten also drei von fünf Zeichencodes bei jedem Nachschlagen in der Tabelle her­ aus gesucht werden, was jeweils Tabellen von 3000 (ungefähr 3K) oder 500000 (ungefähr 0,5M) Bytes erfordert. Ein einzel­ ner repräsentativer Eintrag für eine Tabelle mit N = 3 ist:
TABELLE 2
Zu beachten ist, daß in jeder dieser beispielhaften Tabel­ len zu erkennen ist, daß die Tabellen eindimensionale Tabel­ len sind, wobei der zu dekodierende numerische Wert als Index für die Tabelleneinträge verwendet wird. Während dies eine Ausführungsform der vorliegenden Erfindung repräsentiert, kann die Erfindung, wenn gewünscht, andere Tabellenformate verwenden, einschließlich Tabellenformate, bei welchen der Index nicht einfach der zu dekodierende numerische Wert ist. Wenn größere Zahlen für eine Bildschirmanzeige dekodiert wer­ den, verringern große Tabellen drastisch die Anzahl der er­ forderlichen binären mathematischen Schritte. Aus den hierin gegebenen Unterrichtungen wird verständlich, daß solche Ta­ bellen ein großes Maß an Redundanz haben und somit in spe­ ziellen Ausführungsformen gemäß verschiedenen Kompressions­ verfahren komprimiert werden können. Jedoch wird in einer allgemeinen Ausführungsform die vorliegende Erfindung verwen­ det, um eine Konversion von numerischen Werten in Bildschirm­ codes zu beschleunigen, und verwendet somit eine unkompri­ mierte Tabelle.
Fig. 3 veranschaulicht Details eines beispielhaften Sys­ tementwicklungsverfahrens gemäß speziellen Ausführungsformen der Erfindung. Wie in der Figur gezeigt, wird in diesem Ver­ fahren eine Tabelle in einem Speicher entsprechend einer ver­ fügbaren oder gewünschten Speichergröße für die Tabelle zuge­ wiesen, und die Tabelle wird dann verwendet, um N Zeichenco­ des eines numerischen Werts zu dekodieren.
Negative und herkömmliche Gleitpunktzahlen
Gemäß speziellen Ausführungsformen kann die vorliegende Erfindung negative Zahlen entsprechend dem zugrundeliegenden Schema zum Speichern von negativen Zahlen auf verschiedene Weise verarbeiten. Ein direktes Verfahren zur Verarbeitung negativer Zahlen beinhaltet Erinnern des Vorzeichens der Zahl und Konvertieren der Zahl in einen positiven Wert vor dem Nachschlagen in einer Tabelle unter Verwendung der Zahl. Ge­ mäß weiteren speziellen Ausführungsformen der vorliegenden Erfindung werden Gleitpunktzahlen dadurch dekodiert, daß zu­ erst die Gleitpunktzahl in eine ganze Zahl konvertiert wird, bevor sie in Bildschirmcodes konvertiert wird.
Aufgeteilt gespeicherte Gleitpunktzahlen
Gemäß weiteren speziellen Ausführungsformen der vorliegen­ den Erfindung kann eine Konversion in einen Bildschirmcode vorteilhaft mit dem nachstehend beschriebenen innovativen Gleitpunktkodierungsschema verwendet werden. In einem solchen Dekodierungsschema ist eine Konversion in Bildschirmcodes vereinfacht, da jede gespeicherte Gleitpunktzahl aufgeteilt gespeichert ist, mit separaten Speicherbereichen für den Ganzzahlanteil und den Bruchanteil der Zahl. Mit diesem Sche­ ma können der Ganzzahlanteil und der Bruchanteil separat in Bildschirmcodes, wie vorstehend beschrieben, konvertiert wer­ den.
Als ein sehr spezielles Beispiel eines Verfahrens gemäß speziellen Ausführungsformen der vorliegenden Erfindung zum Konvertieren eines IP und eines FP separat in Bildschirmcodes sind in Fig. 4 und Fig. 5 beispielhafte C++-Code-Listings be­ reitgestellt.
Mathematische und logische Operationen
In einer Ausführungsform kann die Erfindung als ein compu­ terimplementiertes Verfahren zum Speichern von numerischen Werten und zur Ausführung von Operationen an numerischen Wer­ ten verstanden werden. Fig. 6 veranschaulicht ein beispiel­ haftes Verfahren gemäß speziellen Ausführungsformen der Er­ findung.
Gemäß speziellen Ausführungsformen stellt die vorliegende Erfindung spezielle Routinen für verschiedene mathematische Operatoren bereit, einschließlich optionaler Kurzverfahren gemäß speziellen Ausführungsformen. Wie hierin verwendet, ist eine Notation für die Anteile einer reellen Zahl A A.IP und A.FP. Die Ergebnisse einer Funktion F(A,B) werden als S.IP und S.FP oder S.IP.FP geschrieben.
Additionsoperationen
Eine Addition von zwei Zahlen, zum Beispiel A und B, geht im allgemeinen wie folgt vor sich. Zuerst, wenn eine Zahl ne­ gativ ist, die andere aber nicht, springe zu einer Subtrakti­ onsoperation, wie nachstehend beschrieben. Dann, wenn beide Zahlen negativ sind, speichere diese Tatsache, konvertiere die Zahlen in positive (d. h. verwende die Absolutwerte der Zahlen) und führe die Addition wie folgt aus:
Subtraktionsoperationen
Eine Subtraktion gemäß speziellen Ausführungsformen der Erfindung ist als Vereinigung zweier Zahlen, die unterschied­ liche Vorzeichen haben, definiert. Mit A als die positive Zahl und B als die negative Zahl wird anschließend der Abso­ lutwert von B für alle Vergleichsoperationen verwendet und die Prozedur arbeitet wie nachstehend angegeben. Gemäß weite­ ren speziellen Ausführungsformen der Erfindung kann eine An­ zahl von Kurzverfahren, wie angegeben, vorgesehen sein.
Multiplikations- und Divisionsoperationen
Multiplikation und Division gemäß speziellen Ausführungs­ formen der vorliegenden Erfindung werden durchgeführt, indem die Operanden in skalierte Zahlen konvertiert werden, die ge­ wünschte Funktion F() an den skalierten Zahlen unter Verwen­ dung von skalierter Arithmetik ausgeführt wird und dann das skalierte Ergebnis zurück in das N.ip.fp-Format konvertiert wird. Gemäß speziellen Ausführungsformen der vorliegenden Er­ findung kann der für die skalierte Zahl verwendete Skalier­ faktor der gleiche Skalierfaktor sein, der für den FP-Anteil der R.ip.fp-Zahl verwendet wird, was eine Anzahl von Konver­ sionsoperationen vereinfacht. (Gemäß alternativen Ausfüh­ rungsformen der Erfindung kann ein anderer Skalierfaktor ver­ wendet werden, was eine Skalierung sowohl des IP- als auch des FP-Teils erfordert, um eine Zahl Askaliert zu berechnen.)
Die Prozedur arbeitet allgemein wie folgt (wobei der Ska­ lierfaktor von Sskaliert, Askaliert und Bskaliert gleich dem Skalierfaktor gesetzt ist, der in den FP-Anteilen der r.ip.fp-Zahl verwendet wird.
  • 1. Askaliert = A.IP.10Skalierfaktor + A.FP
  • 2. Bskaliert = B.IP.10Skalierfaktor + B.FP
  • 3. Sskaliert = F(Askaliert, Bskaliert)
  • 4. S.IP = Ganzzahl(Sskaliert/10Skalierfaktor)
  • 5. S.FP = Sskaliert - S.IP.10Skalierfaktor
Gemäß speziellen Ausführungsformen der vorliegenden Erfin­ dung kann eine Anzahl von Kurzverfahren verwendet werden, um die Geschwindigkeit zu erhöhen. Diese Kurzverfahren werden in der Tat viele Anwendungen in der Praxis wesentlich beschleu­ nigen.
Runden gemäß speziellen Ausführungsformen der Erfindung ist sehr einfach. Bei der Durchführung einer Rundung setze IP = IP+1, falls der Wert von FP größer als ½ von 10Skalierfaktor ist. Ansonsten ändere IP nicht. Setze FP auf Null.
Wie vorstehend diskutiert, wird dieser Aspekt der Erfin­ dung vorteilhaft mit dem vorstehend beschriebenen Verfahren zum Konvertieren numerischer Daten in Bildschirmcodes verwen­ det, da mit separat gespeichertem IP und FP der Ganzzahlan­ teil und der Bruchanteil separat in Bildschirmcodes konver­ tiert werden können.
Andere Implementationsdetails
Aus den hierin bereitgestellten Unterrichtungen wird ver­ ständlich, daß ein Verfahren gemäß der vorliegenden Erfindung auf verschiedene Weise in Computersystemen implementiert sein kann. In einer Ausführung können computerverständliche Logik­ anweisungen, die mit der vorliegenden Erfindung in Beziehung stehen, in einem Anwendungsprogramm enthalten sein und/oder können von einem Anwendungsprogramm während des Startens oder der Ausführung aufgerufen werden. Zu beachten ist, daß gemäß weiteren speziellen Ausführungsformen der vorliegenden Erfin­ dung ein numerisches Kodierungsschema oder Bildschirmanzeige­ schema, wie hierin beschrieben, in einem Betriebssystem (OS) einer Computervorrichtung implementiert sein kann und dadurch irgendwelchen anderen Anwendungsprogrammen, die in dem Be­ triebssystem laufen, verfügbar gemacht werden kann. Somit kann gemäß speziellen Ausführungsformen der vorliegenden Er­ findung ein Betriebssystem während des OS-Startens eine Da­ tenschablone und Operatorroutinen erzeugen. Aus den hierin gegebenen Unterrichtungen wird ferner verständlich, daß Lo­ gikroutinen gemäß der vorliegenden Erfindung in einem Logik­ befehlcompiler oder Logikbefehlinterpreter enthalten sein können und/oder anderen mit einer solchen Programmierumgebung verknüpften Dateien.
Ausführungsformen in einer Informationsverarbeitungs­ architektur
Wie hierin diskutiert, kann gemäß speziellen Ausführungs­ formen die vorliegende Erfindung in verschiedenen Arten von Informationsverarbeitungssystemen verkörpert sein, die Perso­ nal Digital Assistant (PDA), Mobiltelefone, Fernseh- Settopsysteme oder Kabelsystemschnittstellen, Spielzeug, Haushaltsgeräte mit Informationsverarbeitungsfähigkeiten, wissenschaftliche und diagnostische Systeme und maschinelle oder industrielle Systeme mit Informationsverarbeitungsfähig­ keiten umfassen können. Typisch wird in solchen Systemen eine Informationsverarbeitung von binären Logikschaltungen durch­ geführt. Gemäß weiteren speziellen Ausführungsformen kann die vorliegende Erfindung sowohl in einem Informationsverarbei­ tungssystem oder in Schaltungen oder Komponenten eines Infor­ mationsverarbeitungssystems verkörpert sein, die gemäß der hierin gegebenen Beschreibung arbeiten.
Gemäß weiteren speziellen Ausführungsformen kann die Er­ findung als ein oder mehrere Sätze von Befehlen und/oder Da­ ten verkörpert sein, die verwendet werden, um den Betrieb ei­ nes Informationsverarbeitungssystems zu programmieren oder zu führen oder zu beeinflussen. Wie auf dem Fachgebiet bekannt ist, können diese Sätze von Befehlen und/oder Daten, auf ei­ nem Speichermedium wie beispielsweise Platte, Diskette, Fest­ platte, CD-ROM, Band, ROM, EPROM, ASIC, PLD usw. gespeichert oder aufgezeichnet, an Benutzer verteilt werden, und gemäß speziellen Ausführungsformen kann die Erfindung als ein sol­ ches Medium verkörpert sein, auf dem Daten und/oder Befehle gespeichert sind, die, in ein geeignet konfiguriertes Infor­ mationssystem geladen, bewirken, daß das System gemäß der hierin gegebenen Beschreibung arbeitet.
Wie ferner auf dem Fachgebiet bekannt ist, können Befehls- und/oder Datensätze über ein Kommunikationsmedium (beispiels­ weise das Internet, ein lokales Netz, ein Funknetz, eine Te­ lefonleitung, ein Kabelfernsehsystem usw.) von einer entfernt gelegenen Datenspeicherstation (beispielsweise von einem Ser­ ver) an ein Informationsverarbeitungssystem übertragen werden und, in ein geeignet konfiguriertes Informationssystem gela­ den, das System dazu veranlassen, gemäß der hierin gegebenen Beschreibung zu arbeiten.
Fig. 7 veranschaulicht eine beispielhafte Architektur ei­ nes beispielhaften Informationsverarbeitungssystems, die für verschiedene spezielle Ausführungsformen der vorliegenden Er­ findung relevant ist. Wie für Fachleute und aus den hierin gegebenen Unterrichtungen verständlich ist, ist die allgemei­ ne Organisation eines Systems 800, wie in Fig. 7 gezeigt, re­ präsentativ für verschiedene Informationssysteme, von "Compu­ ter auf einem Chip"-Schaltungen in einem Haushaltsgerät oder Spielzeug bis zu Supercomputersystemen und verteilten Syste­ men. In einigen Informationsverarbeitungssystemen können die in Fig. 7 gezeigten verschiedenen Komponenten eigene Compu­ terchips oder eigene Schaltungsbereiche auf einem Computer­ chip sein, während in anderen Informationsverarbeitungs­ systemen einige oder alle der in Fig. 7 gezeigten Funktionen von gemeinschaftlich genutzten Schaltungen ausgeführt werden oder als Software implementiert sind. Einige Systeme werden nicht alle der in Fig. 7 gezeigten Komponenten haben und an­ dere Systeme werden zusätzliche Kernkomponeten haben. Fig. 7 stellt nicht die einzige Gerätearchitektur dar, auf welcher die vorliegende Erfindung ausgeführt werden kann und selbst­ verständlich ist die vorliegende Erfindung auf eine Vielzahl von Typen von Informationsverarbeitungsgeräten anwendbar.
Ein Informationsverarbeitungssystem weist typisch einen oder mehrere Prozessoren auf, wie beispielsweise 801. Der Prozessor 801 ist allgemein dadurch gekennzeichnet, daß er in der Lage ist, unterschiedliche Logikoperationen an Daten aus­ zuführen, wobei die Logikoperationen durch einen oder mehre­ ren Befehle gewählt oder spezifiziert sind. Im Beispiel eines Personalcomputersystems oder einer Workstation kann der Pro­ zessor 801 irgendeinen aus der Reihe der bekannten Mikropro­ zessoren repräsentieren, die von Firmen wie Intel, AMD, Zilog und Motorola hergestellt werden. Der Prozessor 801 kann auch einen Schaltungsabschnitt repräsentieren, der als Prozessor in einer integrierten Schaltung, beispielsweise ASIC oder PLD, konfiguriert ist.
Ein Prozessor 801 kann zu bestimmten Zeiten mit anderen Informationsverarbeitungsschaltungen (die ebenfalls Prozesso­ ren sein können oder nicht) zusammenarbeiten, die spezielle Fähigkeiten haben können. Diese Schaltungen können sich au­ ßerhalb des Prozessors oder innerhalb des Prozessors befin­ den. Als ein Beispiel zeigt Fig. 7 eine Gleitpunkteinheit (FPU) 802 und ein 3D-Graphik-Modul 804. Um seinen Betriebsab­ lauf zu erleichtern, kann ein Prozessor 801 auch eine Reihe von Strukturen haben, beispielsweise einen Satz von internen Registern 806 und/oder eine arithmetisch-logische Einheit (ALU) 808. In einigen Prozessoren befinden sich diese Struk­ turen innerhalb der Prozessorschaltung.
In den meisten Informationsverarbeitungssystemen kommuni­ zieren verschiedene Module über einen oder mehrere Kommunika­ tionspfade oder Busse mit anderen Modulen. Fig. 7 zeigt einen repräsentativen Systembus 810 und einen separaten Hilfsbus 812. Die dargestellten Busse können Signalkanäle auf einer integrierten Schaltung, Kommunikationsverbindungen auf einer gedruckten Schaltkarte, eine Verbindung zwischen zwei oder mehreren gedruckten Schaltkarten oder eine Backplane oder ir­ gendwelche andere von den Modulen zum Austausch von Daten o­ der Steuersignalen verwendete Kanäle repräsentieren.
In verschiedenen Informationsverarbeitungssystemen können separate Module solche Dinge wie Arbeitsspeicher 820, ein o­ der mehrere Speichersysteme 830, eine oder mehrere Eingabe­ schnittstellen 840, eine oder mehrere Ausgabeschnittstellen 850 umfassen. Einige Informationsverarbeitungssysteme können auch eine Kommunikationsschnittstelle (wie eine Netzschnitt­ stelle oder ein Modem) 860 zur Kommunikation mit anderen Com­ putersystemen, beispielsweise über ein Netz, aufweisen. Diese Module sind in Fig. 7 gezeigt, die allgemein Aspekte eines Computersystems repräsentieren.
In typischen Informationsverarbeitungssystemen ist der Ar­ beitsspeicher 820 ein Typ eines Speichers mit direktem Zugriff (RAM, Random Access Memory), auf den der Prozessor 801 und möglicherweise andere Prozessoren schnell zugreifen können. In Computern für allgemeine Zwecke und in anderen Computersystemen enthält ein solcher Arbeitsspeicher während des Betriebs Daten und Befehle für einen oder mehrere Prozes­ se 822, einschließlich Betriebssystemprozesse. Jeder Prozeß stellt allgemein ein Ausführungsprogramm oder eine Programm­ datei dar. Der Arbeitsspeicher 820 kann auch eine oder mehre­ re Datenstrukturen 824 enthalten, die mit speziellen Prozes­ sen in Verbindung stehen können oder einer gemeinschaftlichen Nutzung durch andere Prozesse oder durch das ganzen System unterliegen können. Diese Datenstrukturen können Datentabel­ len oder irgendwelche anderen Datenstrukturen umfassen, die in digitalen Speichern dargestellt werden können. Daher ist auf dem Fachgebiet in vielen für allgemeine Zwecke bestimmten Informationsverarbeitungssystemen (beispielsweise Personal­ computer) unter einem Arbeitsspeicher 820 zu verstehen, daß dieser residente Teile eines Betriebssystems und/oder ver­ schiedene Anwendungssysteme und/oder Dateien und/oder andere Logikmodule oder digitale Daten enthält.
Wie Fachleuten bekannt ist, weist ein Informationsver­ arbeitungssystem, das ein Typ eines Computersystems für all­ gemeine Zwecke ist, ferner ein Betriebssystem und mindestens ein Anwendungsprogramm auf. Das Betriebssystem ist ein Satz von Logikbefehlen, die den Betrieb des Computersystems und die Zuteilung von Betriebsmitteln steuern. Das Anwendungspro­ gramm ist ein Satz von Logikbefehlen (möglicherweise auch Da­ ten umfassend), um von dem Benutzer gewünschte Aufgaben durchzuführen. Während des Betriebs können beide in einem Speichersystem, wie beispielsweise 820, resident sein.
Ein Speicher 830 ist gezeigt, um andere, normalerweise Langzeit-Datenspeicherung (auch "nicht flüchtige" genannt), zu repräsentieren. In für allgemeine Zwecke bestimmten Compu­ tern umfaßt dieser typisch ein oder mehrere Plattensysteme (wie Festplattenlaufwerke, Diskettenlaufwerke, CD-ROMs usw.) und kann auch eine Reihe von anderen Speichervorrichtungen umfassen. Der Speicher 830 kann verwendet werden, um den Ar­ beitsspeicher 820 durch eine Reihe von bekannten Pagingtech­ niken zu ergänzen. Der Speicher 830 kann auch entfernt gele­ gene, über ein Netz verfügbare Speichersysteme aufweisen.
Insbesondere in Handgeräten kann der Speicher 830 einzig und allein aus einem Nurlesespeicher (ROM) bestehen, der zur Speicherung von ausführbaren Komponenten des Systems verwen­ det wird. Abhängig von speziellen Implementationen kann 830 entweder Speichersysteme, die ein Teil des Computersystems 800 sind, oder eine Schnittstelle zu externen Speichersyste­ men repräsentieren.
Die Eingabeschnittstellen 840 können Schaltungen, Vorrich­ tungen und/oder Logikbefehle repräsentieren, die eine Video-, Audio-, Tastatur-, Pointer- oder andere Eingabe in ein Compu­ tersystem bereitstellen können. Typische Eingabevorrichtungen umfassen solche Dinge wie Tastatur oder Keypad, berührungs­ empfindlicher Bildschirm, Maus, Mikrophon, Kamera, Umgebungs­ meßwertaufnehmer (z. B. Thermostat oder Bewegungsmelder) usw. Die Eingabeschnittstellen 840 zusammen mit anderen möglichen Modulen im Computersystem führen Aufgaben durch, die mit der Übersetzung externer Daten (wie beispielsweise Tastenanschlä­ ge) in die entsprechenden kodierten Daten (typisch binäre Da­ ten) verbunden sind. Diese Übersetzungsaufgaben können mehre­ re Schritte beinhalten, die in verschiedenen Teilen eines Computersystems durchgeführt werden. Abhängig von speziellen Implementationen kann 840 Eingabevorrichtungen und dazugehö­ rige Schnittstellenlogik oder nur Schnittstellenlogik für spezielle Eingabevorrichtungen repräsentieren.
Die Ausgabeschnittstellen 850 repräsentieren Schaltungen, Vorrichtungen und/oder Befehle, die eine Video-, Audio-, Druck- oder andere Ausgabe aus einem Computersystem bereit­ stellen können, und können auch wirkliche Ausgabevorrichtun­ gen repräsentieren. Typische Ausgabevorrichtungen umfassen einen Bildschirm, einen Drucker, einen Lautsprecher usw. Eine Ausgabe kann auch in Form von Steuersignalen an eine externe Maschine, wie beispielsweise an einen Motor, Fertigungsrobo­ ter oder eine andere computergesteuerte Vorrichtung, sein. Die Ausgabeschnittstellen 850 zusammen mit möglichen anderen Modulen im Computersystem führen Aufgaben durch, die mit der Übersetzung von computerkodierten Daten (typisch binären Da­ ten) in die geeignete Form zur Ausgabe verbunden sind. Diese Übersetzungsaufgaben können mehrere Schritte beinhalten, die in verschiedenen Teilen eines Computersystems durchgeführt werden. Eine Bildschirmanzeige von numerischen Daten zum Bei­ spiel erfordert typisch eine Konversion von binär kodierten numerischen Werten in eine Folge von Zeichencodes. Diese Zei­ chencodes werden dann von Bildschirmtreiber-Schaltungen wei­ ter übersetzt, um die elektrischen Signale zu erzeugen, die erforderlich sind, um die verschiedenen Bildpunkte eines CRT- oder LCD-Bildschirms anzuregen.
Die Kommunikationsschnittstelle 860 repräsentiert Schal­ tungen, Vorrichtungen und/oder Befehle, die einem Computer­ system ermöglichen, beispielsweise über eine Telefonverbin­ dung oder über das weltweite Internet mit anderen Informati­ onsverarbeitungssystemen zu kommunizieren.
Gemäß den Praktiken von Fachleuten der Computerpro­ grammierung ist die Erfindung gemäß speziellen Ausführungs­ formen hierin mit Bezug auf symbolische Darstellungen von O­ perationen beschrieben, die von einem Informationsverarbei­ tungssystem durchgeführt werden. Solche Operationen werden manchmal als computerausgeführt oder prozessorausgeführt be­ zeichnet. Es ist ersichtlich, daß die Operationen, die symbo­ lisch dargestellt sind, die Verarbeitung von elektrischen Signalen, die Datenbits darstellen, durch eine CPU oder eine andere Logikschaltung und das Halten von Datenbits in Spei­ cherplätzen in einem Speichersystem sowie andere Verarbeitung von Signalen beinhalten. Die Speicherplätze, wo Datenbits gehalten werden, sind physische Plätze, die besondere elekt­ rische, magnetische, optische oder organische Eigenschaften entsprechend den Datenbits haben.
Somit wird aus den hierin gegebenen Unterrichtungen ver­ ständlich, daß die vorliegende Erfindung gemäß speziellen Ausführungsformen in einem Informationsverarbeitungssystem und/oder in unterschiedlichen separaten Komponenten eines In­ formationsverarbeitungssystems verkörpert sein kann.
Ausführungsformen in einem programmierten System
Fig. 8 ist ein Blockdiagramm, das ein repräsentatives Bei­ spiel für eine Logikvorrichtung zeigt, in welcher verschiede­ ne Aspekte der vorliegenden Erfindung verkörpert sein können. Die Erfindung kann in Hardware und/oder Software implemen­ tiert sein. Die Erfindung kann in einem festen Medium oder einer übertragbaren Programmkomponente verkörpert sein, die Logikbefehle und/oder Daten enthält, die, wenn in ein geeig­ net konfiguriertes Computergerät geladen, dieses Gerät veran­ lassen, gemäß der Erfindung zu arbeiten. Fig. 8 zeigt ein di­ gitales Gerät 700, das als eine Logikeinrichtung aufgefaßt werden kann, die aus dem Medium 717 und/oder dem Netzwek­ anschluß 719 Befehle lesen kann. Die Einrichtung 700 kann da­ nach diese Befehle verwenden, um einen Server oder eine Clientanwendung, wie auf dem Fachgebiet bekannt, zu führen, und umfaßt ferner die Komponenten der Erfindung. Ein Typ von Logikeinrichtung, der die Erfindung verkörpern kann, ist ein Computersystem, wie in 700 dargestellt, das eine CPU 707, op­ tionale Eingabevorrichtungen 709 und 711, Plattenlaufwerke 715 und einen optionalen Bildschirm 705 umfaßt. Das feste Me­ dium 717 kann verwendet werden, um ein solches System zu pro­ grammieren, und kann ein plattenähnliches optisches oder mag­ netisches Medium oder ein Speicher sein. Die Erfindung kann ganz oder teilweise als eine auf diesem festen Medium aufge­ zeichnete Software verkörpert sein. Der Kommunikations­ anschluß 719 kann ebenfalls verwendet werden, um ein solches System zu programmieren, und kann irgendeinen Typ von Kommu­ nikationsverbindung repräsentieren.
Die Erfindung kann ebenfalls ganz oder teilweise innerhalb der Schaltung einer kundenspezifischen integrierten Schaltung (ASIC) oder einer programmierbaren Logikvorrichtung (PLD) verkörpert sein. In einem solchen Fall kann die Erfindung in einer computerverständlichen Deskriptorsprache verkörpert sein, die verwendet werden kann, um ein ASIC oder PLD zu er­ zeugen, die so, wie hierin beschrieben, arbeiten.
Die Erfindung ist nun mit Bezug auf spezielle Ausführungs­ formen erklärt worden. Andere Ausführungsformen sind für Fachleute ersichtlich. Selbstverständlich dienen die hierin beschriebenen Beispiele und Ausführungsformen nur der Veran­ schaulichung und sind verschiedene Modifikationen oder Abän­ derungen in deren Angesicht für Fachleute naheliegend und sollen im Sinn und Anwendungsbereich dieser Anmeldung und dem Bereich der angefügten Ansprüche mit enthalten sein. Alle hierin zitierten Veröffentlichungen, Patente und Patentanmel­ dungen sind hiermit durch Verweis in ihrer Gesamtheit für al­ le Zwecke mit aufgenommen.

Claims (31)

1. Verfahren zur Bestimmung von Zeichencodes für einen binären kodierten numerischen ursprünglichen Wert unter Ver­ wendung einer Informationsverarbeitungsvorrichtung, aufwei­ send:
  • a) Dividieren des ursprünglichen Werts durch einen Divi­ sor, was ein zwei- oder mehrstelliges Ganzzahlergebnis er­ zeugt;
  • b) Verwenden des zwei- oder mehrstelligen Ergebnisses, um zwei oder mehr Bildschirmcodes zu bestimmen;
  • c) Bestimmen eines sekundären ursprünglichen Werts;
  • d) Wiederholen der Schritte a) bis c), bis dieser sekun­ däre ursprüngliche Wert weniger als eine vorgegebene Anzahl von Stellen aufweist; und
  • e) Verwenden eines letzten sekundären ursprünglichen Werts, um die letzten zwei oder mehr Bildschirmcodes zu bestimmen.
2. Verfahren nach Anspruch 1, wobei das Ganzzahlergebnis ein ganzzahliger Rest ist und die Bestimmung ein Dividieren der ursprünglichen Zahl durch eine zu einer Potenz gehobenen Basis aufweist, wobei die Potenz die Anzahl der dekodierten Stellen angibt.
3. Verfahren nach Anspruch 1, wobei das ganzzahlige Er­ gebnis ein ganzzahliger Quotient ist und die Bestimmung auf­ weist:
Subtrahieren des mit dem Divisor multiplizierten Ganz­ zahlergebnisses von dem ursprünglichen Wert, um einen sekun­ dären ursprünglichen Wert zu erhalten.
4. Verfahren nach Anspruch 1, wobei der Divisor eine mit einem ganzzahligen Exponenten gebildete Potenz von 10 größer als 10 ist.
5. Verfahren nach Anspruch 1, wobei der Divisor eine mit einem ganzzahligen Exponenten gebildete Potenz von 10 größer als 1000 ist.
6. Verfahren nach Anspruch 1, wobei die Verwendung auf­ weist: Nachschlagen in einer Tabelle unter Verwendung des zwei- oder mehrstelligen Ergebnisses als Tabellenindex.
7. Verfahren zur Bestimmung von Zeichencodes für einen binären kodierten numerischen ursprünglichen Wert unter Ver­ wendung einer Informationsverarbeitungsvorrichtung, aufwei­ send:
  • a) Dividieren des ursprünglichen Werts durch einen Divi­ sor, um ein zwei- oder mehrstelliges Restganzzahlergebnis zu erzeugen;
  • b) Verwenden des zwei- oder mehrstelligen Ergebnisses, um zwei oder mehr Bildschirmcodes zu bestimmen;
  • c) Subtrahieren des mit dem Divisor multiplizierten Ganz­ zahlergebnisses von dem ursprünglichen Wert, um einen sekun­ dären ursprünglichen Wert zu erhalten;
  • d) Wiederholen der Schritte a) bis c), bis dieser sekun­ däre ursprüngliche Wert kleiner als eine vorgegebene Anzahl von Stellen ist; und
  • e) Verwenden eines letzten sekundären ursprünglichen Werts, um zwei oder mehr letzte Bildschirmcodes zu bestimmen.
8. Verfahren nach Anspruch 7, wobei der Divisor eine mit einem ganzzahligen Exponenten gebildete Potenz von 10 größer als 10 ist.
9. Verfahren nach Anspruch 7, wobei der Divisor eine mit einem ganzzahligen Exponenten gebildete Potenz von 10 größer als 1000 ist.
10. Verfahren nach Anspruch 7, wobei die Verwendung auf­ weist: Nachschlagen in einer Tabelle unter Verwendung des zwei- oder mehrstelligen Ergebnisses als Tabellenindex.
11. Vorrichtung in einem Computersystem, die eine binäre kodierte Zahl in einen Satz von Bildschirmcodes kodiert, auf­ weisend:
eine Tabelle mit mehreren Einträgen, wobei jeder Eintrag zwei oder mehrere Bildschirmcodes für zwei oder mehrere Stel­ len bereitstellt; und
einen Prozessor, der in der Lage ist, eine binäre kodier­ te Zahl durch einen Divisor zu dividieren und Ergebnisse dar­ aus zu verwenden, um zwei oder mehrere Bildschirmcodes in der statischen Tabelle nachzuschlagen.
12. Vorrichtung nach Anspruch 11, wobei ferner das Ergeb­ nis als Index für die Tabelle verwendet wird.
13. Vorrichtung nach Anspruch 11, wobei ferner das Ergeb­ nis ein Restergebnis der Division ist.
14. Vorrichtung nach Anspruch 11, wobei das Ergebnis ein ganzzahliges Quotientenergebnis der Division ist.
15. Vorrichtung nach Anspruch 11, wobei jeder indexierte Eintrag der Tabelle einen N-stelligen Bildschirmcode hat und wobei die Tabelle 10^N indexierte Einträge hat und wobei N eine ganze Zahl größer Eins ist.
16. Verfahren, das einem Informationsverarbeitungssystem ermöglicht, Programme, die eine Konversion von binären ko­ dierten Zahlen in Zeichencodes erfordern, schneller auszufüh­ ren, aufweisend:
Erstellen einer Tabelle in einem Speicher des Informati­ onsverarbeitungssystems, wobei die Tabelle mit einem Wert in­ dexiert ist und wobei Einträge in die Tabelle zwei oder mehr Bildschirmcodes, die dem Wert entsprechen, repräsentieren; und
Einrichten einer Logikroutine, die einen binären kodier­ ten numerischen Wert entgegennimmt und die Tabelle verwendet, um Bildschirmcodes für den binären kodierten numerischen Wert zu bestimmen.
17. Verfahren nach Anspruch 16, wobei das Erstellen auf­ weist:
Erstellen einer statischen Tabelle in einem Betriebssys­ tem-Speicherplatz des Informationsverarbeitungssystems.
18. Verfahren nach Anspruch 16, ferner mit:
Wählen einer ganzen Zahl größer als Eins, die die Anzahl der Stellen der Bildschirmcodes in jedem Eintrag in einer Ta­ belle angibt.
19. Verfahren zur Beschleunigung eines Betriebsablaufs eines Computersystems, aufweisend:
Einrichten einer Logikroutine für eine Bildschirmanzeige von binären kodierten Zahlen, wobei die Logikroutine durch eine Konversionsroutine bei jeder Iteration zwei oder mehr Bildschirmcodedarstellungen einer binären kodierten Zahl be­ stimmt.
20. Verfahren zum Speichern eines numerischen Werts in einer Informationsverarbeitungsvorrichtung, aufweisend:
  • a) Reservieren eines ersten Speicherbereichs und Spei­ chern eines ganzzahligen Anteils des numerischen Werts in dem ersten Speicherbereich;
  • b) Reservieren eines zweiten Speicherbereichs und Spei­ chern eines Bruchanteils des numerischen Werts in dem zweiten Speicherbereich;
  • c) wobei der erste Speicherbereich und der zweite Spei­ cherbereich nicht zusammenhängend sind, darin daß es keinen automatischen Übertrag oder Bitshift zwischen dem ersten und zweiten Speicherbereich gibt, und wobei ein ganzzahliger An­ teil eines Dezimalwerts vollständig unter Bezugnahme auf ei­ nen ganzzahligen Anteil des gespeicherten Werts bestimmt wer­ den kann und wobei ein Bruchanteil eines Dezimalwerts voll­ ständig unter Bezugnahme auf einen Bruchanteil des gespei­ cherten Werts bestimmt werden kann.
21. Verfahren nach Anspruch 20, wobei der ganzzahlige An­ teil in dem ersten Speicherbereich in einem Standardformat für binäre Ganzzahlen gespeichert wird.
22. Verfahren nach Anspruch 21, wobei der ganzzahlige An­ teil in dem ersten Speicherbereich als eine mit Vorzeichen versehene binäre ganze Zweierkomplement-Zahl gespeichert wird.
23. Verfahren nach Anspruch 20, wobei der Bruchanteil in dem zweiten Speicherbereich in einem Standardformat für binä­ re Ganzzahlen gespeichert wird.
24. Verfahren nach Anspruch 23, wobei der Bruchanteil mit einem Skalierungswert multipliziert wird und dann in dem zweiten Speicherbereich in einem Standardformat für binäre Ganzzahlen gespeichert wird.
25. Verfahren nach Anspruch 24, wobei der Skalierungswert eine Potenz von 10 mit ganzzahligem Exponenten ist.
26. Verfahren nach Anspruch 23, wobei der Bruchanteil in dem ersten Speicherbereich als eine mit Vorzeichen versehene binäre Zweierkomplement-Ganzzahl gespeichert wird.
27. Verfahren nach Anspruch 20, wobei der Ganzzahlanteil und der Bruchanteil jeweils mit einem separaten Vorzeichenbit gespeichert werden.
28. Verfahren nach Anspruch 20, ferner mit Bestimmen von Zeichencodes für einen numerischen Wert, der als ein Ganz­ zahlanteil und ein Bruchanteil gespeichert ist, mit einer Be­ stimmung der Zeichencodes separat für den Ganzzahlanteil und den Bruchanteil.
29. Vorrichtung in einem Computersystem zum Verarbeiten von Gleitpunktzahlen, wobei die Vorrichtung Logikmodule zur Ausführung des in Anspruch 20 angeführten Verfahrens auf­ weist.
30. Verfahren, um einem Informationsverarbeitungssystem die Verarbeitung eines Bereichs von Gleitpunktzahlen zu er­ möglichen, aufweisend:
Einrichten einer IP.FP-Datenschablone in einem Speicher in dem Informationsverarbeitungssystem, wobei die Datenschab­ lone nicht zusammenhängende Speicherbereiche für den Dezimal­ anteil und Bruchanteil der numerischen Werte bereitstellt;
Einrichten mehrerer Logikroutinen zum Ausführen von nume­ rischen und logischen Operationen an den im IP.FP-Format ge­ speicherten numerischen Werten.
31. Verfahren zum Beschleunigen eines Betriebsablaufs ei­ nes Computersystems, das Betreiben des Systems nach Anspruch 30 bei einer Verarbeitung von Gleitpunktzahlen beinhaltet.
DE10210663A 2001-03-12 2002-03-12 Vorrichtung und Verfahren für Anzeige- und/oder Präzisionsoperationen von numerischen Werten in binären Systemen Withdrawn DE10210663A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27532401P 2001-03-12 2001-03-12
US27532301P 2001-03-12 2001-03-12

Publications (1)

Publication Number Publication Date
DE10210663A1 true DE10210663A1 (de) 2002-10-17

Family

ID=26957366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10210663A Withdrawn DE10210663A1 (de) 2001-03-12 2002-03-12 Vorrichtung und Verfahren für Anzeige- und/oder Präzisionsoperationen von numerischen Werten in binären Systemen

Country Status (3)

Country Link
US (3) US6822586B2 (de)
DE (1) DE10210663A1 (de)
GB (1) GB2376773B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2376613B (en) * 2001-06-15 2005-01-05 Wireless Systems Int Ltd Methods and apparatus for signal distortion correction
US7193541B2 (en) * 2001-12-04 2007-03-20 Sun Microsystems, Inc. Representation of sign in encoding scheme
KR20040099462A (ko) * 2002-04-19 2004-11-26 컴퓨터 어소시에이츠 싱크, 인코포레이티드 수치 데이터 처리 방법, 수치 포맷 처리 방법 및 시스템,컴퓨터 판독가능 매체, 및 수치 데이터 처리 시스템
US7215264B2 (en) * 2005-09-30 2007-05-08 Pixtel Media Technology (P)Ltd. Methods and systems for character conversion
JP2009301452A (ja) * 2008-06-17 2009-12-24 Sanyo Electric Co Ltd 動作制限機能を有する電子機器
US8164492B2 (en) * 2009-05-04 2012-04-24 Touch Technologies, Inc. Apparatus and method for fast data encoding and decoding
US9454514B2 (en) * 2009-09-02 2016-09-27 Red Hat, Inc. Local language numeral conversion in numeric computing
TW201403405A (zh) * 2012-07-09 2014-01-16 Mstar Semiconductor Inc 符號輸入裝置、符號輸入方法及相關的電腦程式產品
US9710227B2 (en) 2012-09-15 2017-07-18 John W. Ogilvie Formatting floating point numbers
US10592264B2 (en) * 2018-05-16 2020-03-17 Oracle International Corporation Runtime optimization of arithmetic expressions with decimal numbers
CN112402983B (zh) * 2020-08-03 2024-07-26 上海幻电信息科技有限公司 游戏成绩验证方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3872442A (en) * 1972-12-14 1975-03-18 Sperry Rand Corp System for conversion between coded byte and floating point format
JPH0234037A (ja) * 1988-07-25 1990-02-05 Hitachi Ltd 数値データ変換方式
US5038309A (en) * 1989-09-15 1991-08-06 Sun Microsystems, Inc. Number conversion apparatus
US5050121A (en) * 1990-01-22 1991-09-17 Vaughan H W Communication system which uses characters that represent binary-coded decimal numbers
JP3097294B2 (ja) * 1992-04-10 2000-10-10 松下電器産業株式会社 コード変換装置
GB2271257A (en) * 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
JP3496965B2 (ja) * 1993-12-20 2004-02-16 富士通株式会社 文字コード変換装置
GB2345563B (en) * 1997-08-30 2000-12-27 Lg Electronics Inc Digital signal processor
US6396921B1 (en) * 1997-11-07 2002-05-28 Nortel Networks Limited Method and system for encoding and decoding typographic characters
US7330864B2 (en) * 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations
US6889241B2 (en) * 2001-06-04 2005-05-03 Intel Corporation Floating point adder

Also Published As

Publication number Publication date
GB2376773A (en) 2002-12-24
US7890558B2 (en) 2011-02-15
US6822586B2 (en) 2004-11-23
US20030009653A1 (en) 2003-01-09
GB2376773B (en) 2005-09-21
US20030069912A1 (en) 2003-04-10
GB0205775D0 (en) 2002-04-24
US7149765B2 (en) 2006-12-12
US20070180004A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
DE112007001989B4 (de) Ausführung von Rundungsoperationen entsprechend einer Anweisung
DE69233361T2 (de) Ein-Chip-Mikrocomputer
DE69130868T2 (de) Kommunikationssystem für binärdaten
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE69429342T2 (de) Vereinheitlicher gleitkommadatenpfad und ganzzahldatenpfad für einen risc-prozessor
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE69033471T2 (de) Natürliche Sprache verarbeitendes Gerät
DE112004001648T5 (de) Verfahren, Vorrichtung und Befehle für parallele Datenumwandlung
US7890558B2 (en) Apparatus and method for precision binary numbers and numerical operations
DE10355760A1 (de) System und Verfahren zum Codieren von Daten
DE3788782T2 (de) Verfahren zur Herstellung einer Meldungsdatei in einem Computer.
DE2264090A1 (de) Datenverdichtungssystem
DE19920214A1 (de) Verfahren und Einrichtung zum Konvertieren einer Zahl zwischen einem Gleitkommaformat und einem Ganzzahlformat
DE112015003584T5 (de) Maschinenbefehle zum Umsetzen von einem dezimalen Gleitkommaformat zu einem gepackten Dezimalformat
DE3789601T2 (de) Elektronische Datenverarbeitungsanlage zur Manipulation von algebraischen Formeln.
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE112016004324T5 (de) Heterogene Kompressionsarchitektur für optimiertes Kompressionsverhältnis
DE112015003588T5 (de) Maschinenbefehle zum Umsetzen von einem gepackten Dezimalformat zu einem dezimalen Gleitkommaformat
DE3856139T2 (de) Mikroprozessor
DE112005002100T5 (de) System und Verfahren für multilinguale Texteinabe in einer tragbaren elektronischen Vorrichtung
DE112017005823T5 (de) Codieren von symbolen variabler länge zum ermöglichen eines parallelen decodierens
DE69332817T2 (de) Verfahren und Gerät zum automatischen Entwurf logischer Schaltung und Multiplikator
DE2830334A1 (de) Multipliziereinrichtung
DE112022002300T5 (de) Verarbeitung einer speicheränderung bei der programmereignisaufzeichnung für eine anweisung eines beschleunigers in einem neuronalen netzwerk
DE69428151T2 (de) Programmübersetzer mit selektiver Datenwertverbesserung und Prozessor mit Befehlen zur Datenverlängerung

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: TC TECH ELECTRONICS, LLC, WILMINGTON, DEL., US

8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: H03M 7/02 AFI20051017BHDE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141001