throbber
Facebook's Exhibit No. 1018
`001
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 001
`
`

`

`~~~
`
`~~ ~~~~
`
`~
`
`!,
`
`~.
`
`ti
`
`►mtrO
`ae
`
`€,~
`
`'~ j
`
`~ ~~.
`
`Facebook's Exhibit No. 1018
`002
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 002
`
`

`

`Facebook's Exhibit No. 1018
`003
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 003
`
`

`

`1 .
`
`~~
`
`Sri
`
`Facebook's Exhibit No. 1018
`004
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 004
`
`

`

`~ ~~
`
`t.
`
`Facebook's Exhibit No. 1018
`005
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 005
`
`

`

`ERROR CODING FOR
`n r-~i~-unn~Tin onn~rc~c•nr~c~
`
`Facebook's Exhibit No. 1018
`006
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 006
`
`

`

`ELECTRICAL SCIENCE
`A Series of Monographs and Texts
`
`Editors: Henry G. Booker and Nicholas DeClaris
`A complete list of titles in this series appears at the end of this volume
`
`CtP 4 Sip ~9?4
`
`Facebook's Exhibit No. 1018
`007
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 007
`
`

`

`ERROR CODING
`FO R
`AR ITH M ETI C
`0 0
`PR CESS RS
`
`~ '
`
`T.~ R. N. Rao
`
`'a 1
`
`Department of Electrical Engineering
`University of Maryland, College Park
`
`New York and London • 1974
`ACADEMIC PRESS
`A Subsidiary of Harcourt Brace Jovanovich, Publishers
`
`Facebook's Exhibit No. 1018
`008
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 008
`
`

`

`A ~~~
`.~ ~ ~
`1~~~-
`
`COPYRIGHT D LI~4, BY ACADEMIC PRESS, INC.
`ALL RIGHTS RESERVED.
`NO PART OF THIS PUBLICATION MAY BE REPRODUCED OR
`TRANS
`I'1TED IN ANY FORM OR BY ANY MEANS, ELECTRONIC
`OR MECHANICAL, INCLUDING PHOTOCOPY, RECORDING, OR ANY
`INFORMATION STORAGE AND RETRIEVAL SYSTEM, WITHOUT
`PERMISSION IN WRITING FROM THE PUBLISHER.
`
`ACADEMIC PRESS, INC.
`111 Fifth Avenue, New York, New York 10003
`
`United Kingdom Edition published by
`ACADEMIC PRESS, INC. (LONDON) LTD.
`24/28 Oval Road, London NWl
`
`Library of Congress Cataloging in Publication Data
`
`Rao, Thammavarapu R
`N
`Date
`Error coding for arithmetic processors.
`
`(Electrical science)
`Includes bibliographical references.
`I. Error-correcting codes (Information theory)
`2. Computer arithmetic and logic units.
`I. Title.
`QA268.R36 1974
`519.4
`73-22381
`ISBN 0-12-580750-3
`
`PRINTED IN THE UNITED STATES OF AMERICA
`
`Facebook's Exhibit No. 1018
`009
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 009
`
`

`

`To
`
`Rajyalaxmi
`Ramakrishna, Chandrika, and Radhika
`
`S'~
`
`t7"
`
`d
`
`~►'-.
`c-
`
`,-,.~
`
`:~
`
`Facebook's Exhibit No. 1018
`010
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 010
`
`

`

`«~~~ ~~ ~~~ ~~ao~ ~~ao~
`
`~~a ZS ~e~~°~
`
`What I have heard or seen
`from many a scholar,
`a pious hope it has been
`to render it crystal clear.
`
`Translated from Bammera Pothanna's "Bhagavatham."
`
`Facebook's Exhibit No. 1018
`011
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 011
`
`

`

`Contents
`
`Foreword
`Preface
`
`Chapter 1 Introduction and Background
`
`1.1 Algebraic Structures
`1.2 Theory of Divisibility and Congruences
`1.3 Registers and Number Representation Systems
`Problems
`References
`
`Chapter 2 Arithmetic Processars and Error
`Control Preliminaries
`
`2.1 Arithmetic Processors and Digital Computers
`2.2 Nature and Origin of Errors in AP's
`2.3 Error Control Techniques
`Problems
`References
`
`vii
`
`X~
`
`xiii
`
`1
`11
`25
`36
`37
`
`39
`44
`55
`62
`62
`
`Facebook's Exhibit No. 1018
`012
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 012
`
`

`

`VIII
`
`CONTENTS
`
`Chapter 3 Arithmetic Codes, Their Classes
`and Fundamentals
`
`3.1 Code Classes
`3.2 AN Codes and Single-Error Detection
`3.3 Checking an Adder by Separate Codes
`3.4 Checking Other Elementary Operations
`3.5 Residue Generators
`Problems
`References
`
`Chapter 4 Single-Error Correction
`
`4.1 AN Codes and Preliminaries
`4.2 Higher Radix AN Codes
`4.3 Cyclic AN Codes
`4.4 More on M(A, 3)
`Problems
`References
`
`Chapter 5 Error Correction Using Separate Codes
`
`5.1 Biresidue Code
`5.2 Error Correction Using Biresidue Codes
`5.3 Construction of Separate Codes from
`Nonseparate Codes
`Problems
`References
`
`Chapter 6 Large-Distance Codes
`
`6.1 Algorithms
`6.2 Barrows-Mandelbaum (BM) Codes
`6.3 Chien-Hong-Preparata (CHP) Codes
`6.4 AN Codes for Composite A = II(2'"' — 1)
`References
`
`65
`68
`71
`78
`81
`85
`86
`
`87
`104
`113
`115
`118
`119
`
`123
`130
`
`136
`143
`144
`
`145
`153
`159
`164
`171
`
`Facebook's Exhibit No. 1018
`013
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 013
`
`

`

`ix
`
`173
`184
`l87
`190
`
`193
`196
`197
`204
`207
`210
`
`2l2
`
`ENTS
`
`CONTENTS
`
`Chapter 7 Other Arithmetic Codes of Interest
`
`7.1 Systematic Nonseparate Codes
`i 7.2 Burst-Error-Correcting Codes
`Iterative Errors
`7.3
`References
`
`I
`
`Chapter 8 Recent Results on Arithmetic Codes
`and Their Applications
`
`j
`
`8.1 Polynomial Cyclic Codes and Cyclic AN Codes
`8.2 BCH Codes and BCH Bound
`8.3 On Bounds for dm,a of Cyclic AN Codes
`8.4 Majority Decodable Arithmetic Codes
`8.5 Self-Checking Processors
`References
`
`Index
`
`65
`(g
`~ ~
`78
`81
`85
`86
`
`87
`104
`113
`115
`118
`119
`
`123
`130
`
`136
`143
`144
`
`145
`153
`159
`164
`171
`
`Facebook's Exhibit No. 1018
`014
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 014
`
`

`

`Foreword
`
`Computation without error remains an illusive goal of considerable
`importance in certain critical applications which require sophisticated
`and extensive computation with a high degree of system reliability.
`Recent advances in solid state technology have provided individual
`devices with exceptional reliability. In some systems, this improvement
`in device reliability has obtained suf~'icient systems reliability. However,
`i in others, the large number of devices required has negated the improve-
`ment in reliability at the systems level. Such problems can be solved by
`the unlikely development of a perfect device which never fails. In the
`absence of such a device, one can expect greater use of the techniques
`f: ', of fault-tolerant computing to obtain improved systems reliability.
`Such improvement is not obtained without cost in performance or
`~~
`equipment, but in some applications, the cost is justifiable.
`'~,
`t The technology of fault-tolerant computing is, at the present time, in
`its infancy and much development is still needed. In particular, more
`~;
`~ research and development directed toward realizable implementations
`is needed. There exists a substantial amount of literature on the subject,
`'~
`but the number of successful applications remains limited. However,
`the need for fault-tolerant computing will probably increase rather than
`decrease in the future.
`Professor Rao, in this book, considers arithmetically invariant
`
`xi
`
`Facebook's Exhibit No. 1018
`015
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 015
`
`

`

`xli
`
`FOREWORD
`
`codes, which is an important technique of fault-tolerant computing. He
`has surveyed the extensive literature on the subject and organized it
`in a form which should be extremely useful to researchers in this area.
`
`HARVEY L. GARNER
`Moore School of Electrical Engineering
`University of Pennsylvania
`Philadelphia, Pennsylvania
`
`Facebook's Exhibit No. 1018
`016
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 016
`
`

`

`Pre ace
`
`JORD
`
`. He
`;d it
`irea.
`
`:NER
`>ring
`ania
`ania
`
`Since the early work of Diamond (1955), there has been continuous
`progress in arithmetic coding theory. This field derives its strength
`and vitality from the classical works of Brown (1960), Peterson (1961),
`Chien (1964-1972), Massey (1964), Garner (1966), and others.
`The purpose of this book is to combine the available knowledge
`on arithmetic codes and bring it under one cover for the benefit of
`students and researchers in this field of specialization. The presentation
`here includes the necessary mathematical background and error control
`preliminaries in order for this book to serve as a viable text in an
`advanced undergraduate or a graduate level course. The preliminary
`drafts of this book have been used for a graduate course in arithmetic
`coding and are presently being used in a new (modified version of the
`above) course entitled "Arithmetic Codes and Fault-Tolerant Com-
`puting " at the University of Maryland.
`The first two chapters provide the student with a minimal mathe-
`matical background in algebra, number theory, and error control
`techniques. Simple mathematical models for registers, arithmetic
`processors, and elementary arithmetic operations are introduced.
`Chapter 3 introduces arithmetic codes, definitions, and code classifi-
`cations. Single-error detection using AN codes and separate codes is
`also presented. Chapters 4 and 5 cover single-error-correcting codes using
`
`xiii
`
`Facebook's Exhibit No. 1018
`017
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 017
`
`

`

`xlv
`
`PREFACE
`
`AN codes and separate codes, respectively. A section on byte-error
`correction using higher radix codes is included in Chapter 4. In Chapter
`6 we introduce code conversion algorithms leading to a presentation
`of the large distance codes, namely, Barrows—Mandelbaum codes and
`Chien—Hong—Preparata codes. Chapter 7 begins with the systematic
`nonseparate category of codes and covers codes for burst errors and
`iterative errors. We conclude the book with a presentation of codes
`and their applications in Chapter 8.
`I truly believe that I was very fortunate in having the opportunity
`to study under Professor Harvey L. Garner at the University of Michigan.
`I have benefited from and been profoundly influenced by his works,
`thoughts, and teachings. Many fundamental definitions and notations
`and much terminology used in this book reflect this background and
`ini~uence.
`This book contains a number of sections which report on the results
`of our research on "Residue Codes and Application to Arithmetic
`Processors " during the years 1967-1972. This research was made
`possible by grants from the National Science Foundation and the
`National Aeronautics and Space Administration. I acknowledge
`very gratefully the initial guidance and valuable suggestions on the
`subject matter of this book given by Professor Robert T. Chien of the
`University of Illinois. The comments and suggestions from Professor
`Oscar N. Garcia of South Florida University and Dr. Se June Hong
`of the IBM Corporation on portions of this book have been most
`helpful.
`Finally I wish to thank my wife, Rajyalaxmi, for her understanding
`nature and constant encouragement without which this book would
`not have been possible.
`
`T. R. N. Rao
`
`Hf
`
`~~;
`
`'
`
`'
`
`Facebook's Exhibit No. 1018
`018
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 018
`
`

`

`2
`
`ARITHMETIC PROCESSORS
`AND ERROR CONTROL
`PRELIMINARIES
`
`DUND
`
`ding,
`
`4.
`mput.
`
`TDR-
`1963.
`ins to
`
`amber
`
`This chapter introduces the subject of arithmetic processors and
`error control techniques. In the first section, we define arithmetic
`processors (AP), arithmetic operations, and a model to describe their
`functional behavior. In the second section, logic faults, which are the
`cause of errors (both numerical and logical), are discussed. The origin
`and nature of logic faults are discussed. Then arithmetic weight of
`errors (or error numbers) is introduced. In Section 2.3, some error
`control techniques, namely, triple modular redundancy (TMR) as well
`as duplication and switching, are introduced.
`
`2.1 ARITHMETIC PROCESSORS AND DIGITAL COMPUTERS
`
`A digital computer is divided, for convenience, into a number of
`functional units (or subsystems), such as arithmetic processor (AP),
`control unit (CU), memory unit (MU), input/output unit (I/O unit),
`program unit (PU), etc. (see Figure 2.1). These divisions are useful
`from the point of view of computer organization and design. The
`various units are connected together appropriately to enable processing
`of the information required of it. Stated briefly, the function of the
`
`39
`
`Facebook's Exhibit No. 1018
`019
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 019
`
`

`

`4O
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`memory units) is to store data, instructions, and intermediary results
`and to enable transfer of these to the arithmetic unit or I/O unit as
`required. The control unit handles the supervisory functions such as
`providing reference signals (or clock pulses) to initiate or terminate
`the various functions of these units. The I/O units provide the ability
`t.o communicate with the outside world. It may consist of tape readers
`or card readers and punch tape or punch card equipment. The arith-
`metic processor receives data (or operands) and operation commands
`(or instructions) from the memory and control units and performs the
`needed processing. The results of these operations are stored in the
`
`Arithmetic I~ Memory ~ I/O
`processor
`unit
`~
`~~
`unit
`
`Control
`unit
`
`Figurc 2.1 An organization of the functional units of a computer.
`
`specified memory locations or retained in tl~e arithmetic registers which
`are included as part of an AP. The nature and complexity of these
`various functional units depend on the class of problems they are to
`solve, and the instruction re~sertoire. Besides, the speed-=cost trade-offs
`play a significant part in the makeup of each functional_ unit. No less
`important are factors such as the tyke of number system used, the
`arithmetic procedures (or algorithms) built in, the maintenance circuits
`(if any provided), and the required "reliability " or "dependability "
`of operation of the entire system. Therefore, any general characteriz~.-
`tion of any unit such as an AP will not be meaningful for any special-
`purpose computer operation but applies only in a rather general way.
`Since our interest here lies in (the error control coding for) arithmetic
`processors, we discuss their organization next.
`
`Facebook's Exhibit No. 1018
`020
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 020
`
`

`

`ARIES
`
`'SUItS
`ilt aS
`:h as
`inate
`bility
`►ders
`~rith-
`ands
`s the
`i the
`
`rhich
`these
`re to
`-OAS
`IeSS
`the
`~cuits
`lity "
`:riza-
`;cial-
`way.
`netic
`
`2.1 ARITHMETIC PROCESSORS AND DIGITAL COMPUTERS
`
`41
`
`~I
`
`Organization of an arithmetic processor
`
`An arithmetic processor is the part of a computer that provides the
`logic circuits required to perform arithmetic operations such as ADD,
`SUBTRACT, MULTIPLY, DIVIDE, SQUARE-ROOT, etc. There are a number of
`other operations such as complement, shift, rotate, and scale which are
`classified at times as arithmetic operations and are performed by
`arithmetic units of large- and medium-sized computers. In order to
`perform these operations, an AP usually consists of a number of registers
`to store operands, intermediate results (partial sums or partial products),
`and logic blocks such as adders, division logic, over$ow detection logic,
`shift—rotate logic, and in addition, several gating and decoding and
`control logic blocks.
`A sample organization of a small arithmetic processor is shown in
`Figure 2.2. This setup shows four arithmetic registers, called accumulator,
`addend, augend (or multiplicand), and multiplier—quotient registers.
`Parallel adder, complement, and shift—rotate logic blocks are shown.
`
`/ ,~~
`~ ~
`~ ~
`Addend
`i
`f
`
`Input ~
`bus
`~
`~
`
`Padded
`
`From control unit
`
`- -
`
`~ ______-
`___
`!~`
`
`Algorithm
`control
`
`Augend
`
`~.
`
`.'~ ~~~ ~
`'~.,
`~ Comp.
`~~'~, ~~ , i%, i
`~Le ~~~,. ~~
`i ~
`i
`~~.
`i~
`i
`i~
`~
`i
`
`put
`Ob~
`
``~
`
`Accumulator
`
`~" ~ ~
`Shift-rotate
`~ ia9~~
`
`''Multi-Quo ~i~ ~
`..
`~ i,.
`'' d
`~~,
`~
`
`,,
`------
`~~
`
`~ ~
`
`Figure 2.2 Sample organization of arithmetic processors.
`
`Facebook's Exhibit No. 1018
`021
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 021
`
`

`

`42
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`Also indicated are an algorithm controller which receives the operation
`command from the control unit, and control signals to the logic blocks.
`These organizations come in a great variety and differ enormously in
`complexity. For the purpose of understanding the operation of an AP,
`we resort in the next section to a simple model which characterizes, in
`a rather general way, its operation from the point of view of error
`control coding logic. In this discussion one has to keep in mind the
`objective of this study, which is error control coding and not the design
`aspects of an AP. We discuss an organization only to enable a good
`understanding of the error control techniques presented later.
`
`A simple model for arithmetic processors
`
`An AP can be described by the inputs (operands and the operation
`command) .and outputs (the sum or product, etc.). We can assume,
`without loss of generality, that one or more of the operands have
`already been supplied to the AP, and are stored in the appropriate
`registers; and the input required in such cases may be simply an opera-
`tion command. "Shift right five times the contents of an accumulator"
`is an example of that type of instruction. For instructions such as ADn,
`generally one operand such as an augend is already available in the
`accumulator (or augend register), and another will be an input to the
`AP. Similarly, the outputs may simply be posted in one or more
`~ registers of the AP and can be retrieved from it on a separate operation
`command. Therefore, a block diagram of the type shown in Figure 2.3
`can serve as a model for an AP.
`Without any loss of generality, the input operand B, the internal
`operand A (available initially in the register A), and the results R
`are each assumed to be of n binary digits (bits). The opcode for ~ may
`be k bits long, where k must be sufficiently large to accommodate all
`the possible operations of an AP. (Note that the number of different
`operation commands must be less than or equal to 2k). Further, we
`could denote the results R by R = ~(A, B). R is the result of the specified
`operation ~ (when the input operand is B and the internal operand is A).
`
`Facebook's Exhibit No. 1018
`022
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 022
`
`

`

`4RIES
`
`2.1 ARITHMETIC PROCESSORS AND DIGITAL COMPUTERS
`
`43
`
`ltlOri
`)GIGS.
`ly in
`APB
`
`;S~ 121
`error
`l the
`:Sign
`;000I
`
`~tion
`ume,
`have
`~riate
`pera-
`.tor "
`ADD,
`1 the
`~ the
`more
`ation
`e 2.3
`
`ernal
`lts R
`~aY
`to all
`Brent
`r, we
`cified
`is A).
`
`-
`
`~;.
``~
`
`~
`
`(
`Operation command: ¢ j~
`~
`
`Operand:8
`
`~
`
`_
`
`Register A
`
`Operand A
`
`R: Results
``~' ('4~ B)
`
`Figure 2.3 A model for an arithmetic processor.
`
`The outputs R are numerical and/or logical results. The interpretation
`of the outputs as to the nature of their values is left to the control
`function. If ~ is the ADv instruction, then R may represent the sum,
`A + B modulo m, denoted as ~ A + B~,,, , where m = 2" for 2's comple-
`ment binary logic, or m = 2" — 1 for 1's complement binary logic.'
`If ~ denotes "cyclic shift left register A by one place," then R may
`represent the contents of register A after the execution of the instruc-
`tion. If the register A represents the integer A (where 0 < A < 2") before
`the cyclic shift, the integer value of A after the shift equals ~ 2A ~ Zn _ 1 ~
`which may also represent the numerical value of R. If ~ represents an
`operation, say "clear and add " (cLAD), then the register A will be
`replaced by the operand B. If ~ represents MULTIPLY, then R may
`represent the n most significant binary digits of the product of A and B.
`The least significant bits may be stored in one of the specified arithmetic
`registers.
`The discussion above is intended as an overall view of the operations
`of the arithmetic units. A sample of operations has been given in Table
`2.1. The seven operations listed first may be termed "elementary," and
`the rest "compound."
`A compound operation can be performed by repeated use of one
`or more of the elementary operations; for example, MULTirLY can be
`realized by repeated nDD, SHIFT operations. Therefore a number of
`medium-sized computers may not have any "built-in " compound
`
`t For formulas which characterize these elementary operations and for examples
`the reader is advised to see Section 1.3 and in particular Table 1.4.
`
`Facebook's Exhibit No. 1018
`023
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 023
`
`

`

`44
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`Table 2.1 Arithmetic operation commands
`
`Elementary operations
`
`ADD
`susTRncT (Complement and Add)
`SHIFT RT°
`SHIFT LT
`CYCLE LT
`CLEAR and ADD
`STORE ACC
`
`~ ann
`~su~
`~SHR
`~SHL
`~CYL
`~cian
`
`~STA
`
`Compound operations
`MULTIPLY
`FLOATING PT. ADD
`DIVIDE
`SCALE
`SQUARE-ROOT
`COMPARE
`
`° We discussed previously in Chapter 1 two
`types of sxiFT xT operations. One is "Logical
`Shift Rt" and the other "Arith Shift Rt."
`
`,~
`~~
`
`operations, but only a good set of elementary operations. Further, an
`elementary operation may be assumed to use a logic block or logic
`circuit just once. There are exceptions to this; for example, in the serial
`ADD operation, a single full adder stage is repeatedly used. This aspect
`of single-use or multiple-use of a logic block is an important concern
`for error control coding and is therefore discussed in detail in Chapter 7
`in the section on iterative errors.
`Further, if an effective error-correcting scheme is available for all
`elementary operations, then one could say that all arithmetic operations
`can be error controlled, Then the elementary operations that are more
`amenable to error control coding become an important part of our
`study.
`
`2.2 NATURE AND ORIGIN OF ERRORS IN AP's
`
`The words errors, logic faults, component failures, malfunctions, and
`troubles have been defined and used previously by different authors.
`Unfortunately there is no uniformity in their definitions. Before we
`
`Facebook's Exhibit No. 1018
`024
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 024
`
`

`

`RTES
`
`2.2 NATURE AND ORIGIN OF ERRORS IN aP•S
`
`45
`
`attempt some definitions of our own here, it may be appropriate to
`make a clear distinction between the words component, logic element,
`logic network, functional unit, etc. (See Figure 2.4.)
`
`/ Digital \
`computer
`Ex: IBM 7090
`
`Functional unit
`Ex: AP, MU, CU, etc.
`
`Logic block (network)
`Ex: adder, shift register, counter, etc.
`
`Logic element
`Ex: NAND, OR, AND, flip-flop, etc.
`Component
`Ex: resistor, transistor, lead terminal, etc.
`
`an
`~gic
`rial
`sect
`ern
`~r 7
`
`all
`ons
`ore
`our
`
`end
`ors.
`we
`
`Figure 2.4 Subdivisions of a digital computer.
`
`A component is the smallest building block of a digital computer, for
`example, a resistor, transistor, diode, or lead terminal. A logic element
`refers to a logic gate such as rrArrn, ox, AND, NOT, or a flip-flop. A logic
`network (or logic block) refers to a combinational network such as an
`adder, a com~lementer, an overflow detector, or a sequential network
`such as a shift register or a binary counter. Logic networks may vary
`in size considerably from one to another. A functional unit consists of
`a number of logic networks interconnected to perform any operation
`from a comprehensive set of operations. Functional units refer to large
`units such as an arithmetic processor, a control unit, or a memory unit.
`
`Logic faults and their classifications
`
`A ~logic fault or simply a fault is a deviation of logic variables from
`their specified values at one or more points of a logic network. Logic
`faults in an AP may be grouped broadly into two categories:
`
`Facebook's Exhibit No. 1018
`025
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 025
`
`

`

`46
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`1. Control logic faults, which are due to failures' or malfunctions
`in the control logic. As an example, a logic fault in the operation
`command decoder lets a wrong algorithm (~' instead of ~) be
`executed.
`2. Arithmetic logic faults, which include logic faults in an adder,
`or division logic block, etc.
`
`_
`
`~~
`j;
`
`Both categories of faults relate to logic faults within the processor. If
`{ wrong inputs have been applied, that would constitute faults outside
`the premise of AP but are logic faults of the control processor or memory
`~'
`'
`unit. Our concern is directed mainly toward obtaining error-free arith-
`metic processing through detection, location, and correction of errors
`originating in an AP. The techniques and codes studied for this purpose
`can also be used for error control of other functional units in an
`appropriate manner.
`A logic fault was defined previously to be a deviation of logic vari-
`ables from their specified values at one or more points of a logic net-
`work. Afault may invert a binary variable from 1 to a 0, from 0 to a 1,
`or force it to assume a constant logic value (such as stuck-at-1 or stuck-
`at-0). These faults are naturally caused by component failures) or
`malfunctions in a logic network. The origins of logic faults are related
`to component failures or malfunctions, electrical noise, overheating,
`etc., while the ef~'ects of logic faults are the errors in the outputs (or
`numerical results) of the AP.
`The faults may be classified as temporary or permanent, single fault
`or multiple fault, single-use or multiple-use. This classification is based
`on the origin, nature, or use of the faulty network. A temporary fault
`is usually caused by a component malfunction or electromagnetic noise
`interference; its ei~'ects (the errors) .cannot be reproduced under the
`program control. A permanent fault is often caused by a component
`,failure, and its effects are reproducible. A single fault refers to one error-
`
`I, '#
`
`i
`
`;,.
`(s
`i; 1
`,;
`
`fi.
`
`j' A component failure is the permanent destruction of a component such as a
`shorted or an open diode, or a grounded lead. A component malfunction is a
`temporary misbehavior due to outside noise interference, or overheating, or a
`marginal component.
`
`Facebook's Exhibit No. 1018
`026
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 026
`
`

`

`RIES
`
`ons
`:ion
`be
`
`der,
`
`~. If
`side
`gory
`ith-
`rors
`>ose
`an
`
`ari-
`net-
`a 1,
`ick-
`~r
`ited
`~ng~
`(or
`
`ault
`used
`ault
`oise
`the
`gent
`ror-
`
`as a
`is a
`or a
`
`~
`
`~
`
`2.2 NATURE AND ORIGIN OF ERRORS IN AP's
`
`47
`
`inducing event, a multiple fault (double or triple, etc.) refers to several
`single faults occurring simultaneously. The effects of a multiple fault
`may be described as the cumulative effect of the individual single faults.
`A fault (either single or multiple) can be classified as simple (local) or
`complex (distributed) depending on its effect on the errors. A simple
`fault causes minimal damage on the outputs, or in other words, may
`produce an error of the type ±2'; a complex fault causes extensive
`damage. Thus, a fault in a logic element, depending on the intricacy
`of the location of that logic element, is either simple or complex. By
`this definition, control faults are often classified as complex. This
`classification is based 'on the damage wrought on the results of an
`elementary operation or by the error value E, and more precisely, by
`its arithmetic weight W(E), to be defined later.
`The types of errors produced by a fault also differ from one opera-
`tion to another. If an operation does not require the use of a faulty
`network, then the fault is virtually inactive for the duration of that
`operation. Another operation may use that faulty network just once,
`and still another operation may require repeated use. of the same faulty
`network. Thus a logic fault will have different levels of damage on the
`output results of elementary operations and complex operations. This
`fact should be borne in mind by the error control coding designer. As
`an example, a simple fault may be dt~e to a component failure in the
`carry generation logic of the ith stage of a parallel adder, so that the
`error generated (in the addition operation) has a value E _ ±2'. (The
`error word may have several successive nonzero positions, but we call
`the error a single error. A later section has precise definitions of arith-
`metic weights and single and double errors.) A complex fault in the
`same stage of an adder could be a cause for both the carry and sum to
`be in error. Tn the latter case, the error value E - ± 2' ± 2'-1 (E here
`may be a single error or double error, depending on its error magnitude
`~ E ~ ). An important aspect to be noted here is that a fault becomes
`simple or complex' depending on the role of the logic element that
`contains the fault or the failed component. Another point of interest
`is the need for preventing complex faults by suitable logic design. This
`objective can often conflict with the natural, time-old objective of the
`
`Facebook's Exhibit No. 1018
`027
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 027
`
`

`

`i'
`
`''
`
`48
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`logic design, which is to realize logic circuits at minimal cost. An error
`control objective is to limit logic faults to simple and single-use cate-
`gories, as far as possible, by design and by use of algorithms. This
`constraint is likely to limit the size of fanout of a logic element and
`increase the cost of hardware of the processor. This price, however,
`may be reasonable in view of the overall costs of alternative approaches
`such as the triple modular redundancy (TMR) or duplication and
`switching methods, which are described in Section 2.3.
`
`Errors and arithmetic weight
`
`Component failures or malfunctions produce logic faults. The logic
`faults generate erroneous results, or errol-s. Errors are thus the deviations
`in the outputs (numerical or logical) of the arithmetic processor. An
`error is said to occur in an operation ~ of AP whenever the actual output
`R' _ (r„ _ 1, r„ _ 2 , ... , ro) differs from the expected value It = (rn-1,
`ri_ 2, ..., ro) specified by the designer. Therefore, the error word E
`(also called damage pattern or error pattern [1]) is
`_ fie„-i~e,~-z, . . .,eo)=R —R
`(2.1)
`where e~ = r~ — r~ for i = 0, 1, 2, ... , n — 1. If we consider only binary
`outputs, r~ and ri can only be 0 or 1, and consequently e; can be 0, 1,
`or —1.
`
`EXAMPLE
`Actual output
`
`specified output
`
`error word
`
`R' _ (110001), R' = bl(~t')
`
`It = (101101),
`
`R = SI(R)
`
`E _ (011100)
`where 1 denotes —1 in the error word.
`
`_
`
``~a
`
`Facebook's Exhibit No. 1018
`028
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 028
`
`

`

`IARIES
`
`error
`cate-
`This
`and
`ever,
`aches
`and
`
`logic
`~tions
`r. An
`utput
`~rn-1~
`>rd E
`
`(2.1)
`Binary
`0, 1,
`
`2.2 NATURE AND ORIGIN OF ERRORS IN AP's
`
`49
`
`For each error word E, we define an error value E (or hereafter
`error) given by
`
`n-1
`
`and
`
`=o
`
`For the example above, the error E = SI(E) = SI(011100) = 16 — 8 —
`4 = 4. This mapping 8j of error words into errors is a conversion of the
`n-tuples into integer. values, and is not cone-to-one correspondence.
`As examples, the error words (01 t 100), (001100), and (000100) all
`correspond to the same error E = 4. The one most significant property
`of an error is its arithmetic weight, which is defined as follows.
`The arithmetic weight fi of an integer N, denoted W(N) (in radix r),
`is defined as the minimum number of terms in an expression of the form
`
`where a~ ~ 0, ~ a; ~ < r (see Peterson [2, Chapter 15j).
`Since binary arithmetic processors and binary codes are of special
`interest, we may restate the definition above for binary systems. The
`binary arithmetic weight of N is the minimum number of terms in an
`expression of the form
`
`where a~ = 1 or —1. For instance, the decimal number 31 has a binary
`representation 11111, but that is certainly not in a minimal form. Its
`minimal form is 100001 (1 denotes —1). Hence W(31) = 2, the number
`of terms in a minimal form. There may be more than one minimal form
`for a number N. For instance, 25 = 01 1001 and 25 = 101001. While the
`binary arithmetic weight of 31 is 2, its ternary arithmetic weight is 3,
`since 31 = 33 + 3 + 1 is a minimal form. Thus the arithmetic weight
`of a number depends very much on the radix notation used. In order
`to simplify our notation, we observe the following. Unless spec~cally
`stated otherwise, we will assume an arithmetic weight to refer to the
`binary arithmetic weight.
`
`'~ The arithmetic weight is also referred to as Peterson weight in some instances.
`
`Facebook's Exhibit No. 1018
`029
`
`MOBILEIRON, INC. - EXHIBIT 1022
`Page 029
`
`

`

`50
`
`2 ARITHMETIC PROCESSORS AND ERROR CONTROL PRELIMINARIES
`
`An important property of the arithmetic weight is that
`(2.6)
`W(N) = W(— N)
`This can be very trivially observed from the expression (2.4) where each
`k k
`a; can be negative or positive. If N = ~ air", then —N = ~ (—a~)r~'
`~=i
`=i
`and both Nand —N have exactly the same number of terms in their
`minimal forms. Another important property of the arithmetic weight
`is the triangular inequality given as
`(2.7)
`W(Nl + N2) < W(Nt) + W(NZ)
`This is clear if we consider addition of the numbers Nl and N2 which
`are initially in their minimal forms. Cancellation of nonzero terms or
`carries may occur, but the number of nonzero terms of the sum cannot
`possibly exceed the sum of the number of nonzero terms of Nl and NZ .
`As said before, the minimal form (or minimal weight form) for N is not
`unique. As another example, a decimal number 19 = 24 + 22 — 1 =
`24 + 2 + 1. Reitwiesner [3] has shown that if an integer is given in
`such a form that the coefficients ai a~+l = 0 for i = 0, 1, ... , n — 2 in
`the expression
`
`aL = 0, 1, or —1
`
`n-1
`N = ~ ai r`,
`=o
`then it is called the nonadjacent form (NAF) and it is also a minimal
`weight form. In Section 6.1 the interested reader can find further dis-
`cussion on NAF and algorithms for conversion to these forms. An
`algorithm to determine by inspection the arithmetic weight of an integer
`expressed in binary form is availa

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket