IIIHIIIHIIII US005333120A United States Patent (19) (11) Patent Number: 5,333,120 Gilbert 45) Date of Patent: Jul

Total Page:16

File Type:pdf, Size:1020Kb

IIIHIIIHIIII US005333120A United States Patent (19) (11) Patent Number: 5,333,120 Gilbert 45) Date of Patent: Jul IIIHIIIHIIII US005333120A United States Patent (19) (11) Patent Number: 5,333,120 Gilbert 45) Date of Patent: Jul. 26, 1994 (54) BINARY TWO'S COMPLEMENT (57) ABSTRACT ARTHMETCCRCUIT A negation circuit (28) generates a two's complement (76) Inventor: Joseph R. Gilbert, 1802 W. Cholla negation by inverting only those bits of an incoming St., Unit 210, Phoenix, Ariz. number which have a level of significance greater than 85029-3769 the significance level at which a transition bit resides. The transition bit and all bits of the incoming number (21) Appl. No.: 977,652 having a significance level less than the transition bit are (22 Filed: Nov. 17, 1992 reproduced at the output (32) of the negation circuit (28). The transition bit is the least significant bit in the 51) Int. Cl................................................. G06F 7/50 incoming number to exhibit a logic one. A negation 52 U.S. C. ................................ 364/786; 364/715.01 selector circuit (40) selectively overrides the negation 58) Field of Search............ 364/786, 787, 788, 715.01 so that a negation is generated only when a select nega 56) References Cited tion signal (34) is active. When a transition detected U.S. PATENT DOCUMENTS input signal (38) is active, all bits of the incoming num ber are inverted- A transition detected output signal 3,816,734 6/1974 Brendzel ............................. 364/786 3,975,624 8/1976 Kay ..................................... 364/786 (36) provides a signal which activates to indicate that 3,976,866 8/1976 Motegiet al. .. 364/786 the circuit (28) has detected a transition bit. The nega 4,707,800 1 1/1987 Montrone et al. ..... tion circuit (28) may be coupled to an adder (66) to form 364/788 a direct subtractor or a direct adder/subtractor (64). Primary Examiner-David H. Malzahn Attorney, Agent, or Firm-Donald J. Lisa; Steven Lin 26 Claims, 6 Drawing Sheets NEGATION SELECTR SELECTIVE NVERTOR LiftsTRANSITION BIT DETECTOR U.S. Patent July 26, 1994 Sheet 1 of 6 5,333,120 Palºº?/21,B^N;N?ILJSNv?). TOLFOOTOOLLOETLILIIOTOTOOOIIO__F?l????LOIF?OTT?TO I_.TOETOETOEDOELL?010F?LOTTO LIFTÕLLIOLIDIOTIFTIT?T?T I_FOFFOTODOLG_LOIOTOTTOE I?,31SV*XISS3·LDN30ILISNwèl1NDI18 I_0010_(D)LTOLLOF?|LIO LT-T-T-T-T-T-FTIT?TOOLLOI00UFTITLIFITOTOOIDIODO TILL0000_TTT OTOELOEDDOLL D(O)L_0_[LIIII_(O)TO?ILODOO LOLFI????????FŒTO LODILT(|)||0TTTTOT? ]I_F-T-T-T-T-T-3IDIOOFTIT?TOT _(13103130~]'####| FTõõ??D?TOLFOOTOGTOELOL FTOOTOLIITOOLFOTFOLI_ ZL)FT?õõ?IODOLFT-I-T-I-O-T, U.S. Patent July 26, 1994 Sheet 2 of 6 5,333,120 oTDI o AD 34 ND0 3OA 32A NEGATION SELECTOR SN1 A1 C O SELECTIVE INVERTOR A2 SNO2 O r 32C A3 is . U.S. Patent July 26, 1994 Sheet 3 of 6 5,333,120 SN AD SNOO O 30A 32A NEGATION SELECTOR Al 3OB le) SELECTIVEINVERTOR A2 F 3OC I.L-3) A3 . TRANSITION BIT 28 DETECTOR U.S. Patent July 26, 1994 Sheet 5 of 6 5,333,120 SN D so D D SNDO * - THD a O 30C ItHRT Dshoe O i-D =HEDt - | HD EDs; 28 IIIB7 - " FIG s LLE is U.S. Patent July 26, 1994 Sheet 6 of 6 5,333,120 3OD 32D 68D C 30C 68C ( 30B 68B ( 30A 63A ( 32A 28 36 V 7 OD O-Hi | || t 7 oc L -70B 270A 64 FIG 6 N. 5,333,120 2 efficiently generate negations for incoming numbers BINARY TWO'S COMPLEMENT ARTHMETC having any number of bits. CRCUT The above and other advantages of the present inven tion are carried out in one form by a binary two's com TECHNICAL FIELD OF THE INVENTION 5 plement arithmetic circuit for performing arithmetic The present invention relates generally to digital operations on an incoming number. The incoming num electronic circuits, such as those used in general pur ber is expressed as N bits, where N is an integer number, pose computers and microprocessors and in special where each of the N bits exhibits either a logic zero or purpose machines. More specifically, the present inven a logic one, and where a transition bit from these N bits tion relates to electronic circuits which are used in 10 is the least significant one of the N bits to exhibit a logic performing arithmetic operations on two's complement one. The circuit includes an input section that has N binary numbers. terminals. The N terminals are adapted to receive the N bits of the incoming number in a one-to-one correspon BACKGROUND OF THE INVENTION dence. A combinatorial logic circuit couples to the Conventional binary arithmetic circuits perform 15 arithmetic operations, particularly subtraction and ne input section. The combinatorial logic circuit is config gation, in an indirect and inefficient manner. Subtrac ured to invert all bits of the incoming number having tion has been performed by inverting a subtrahend num greater significance than the transition bit and to trans ber to form a one's complement of the subtrahend, add fer, without inverting, the transition bit and all bits ing the inverted subtrahend to a minuend number, and 20 having less significance than the transition bit. An out then incrementing the addition result. The incrementing put section couples to the combinatorial logic circuit. of the addition result is typically accomplished by sup The output section has at least N-1 terminals corre plying a carry pulse to an adder when a subtraction is sponding to the N-1 most significant ones of the N bits performed. A simple negation has been treated as a of the incoming number. special subtraction problem with the minuend forced to 25 BRIEF DESCRIPTION OF THE DRAWINGS equal zero. Thus, the same indirect steps are involved in obtaining a two's complement negation of an incoming A more complete understanding of the present inven number. Often, additional enabling combinatorial logic tion may be derived by referring to the detailed descrip is required to selectively invert the subtrahend and to tion and claims when considered in connection with the selectively apply the carry pulse when a subtraction or 30 Figures, wherein like reference numbers refer to similar negation operation is required and to prevent inversion items throughout the Figures, and: of the subtrahend and addition of a carry pulse when FIG. 1 presents a table of two's complement binary addition and other arithmetic operations are required. notations with respect to a four bit numbering system; In many situations, the indirect techniques for per FIG. 2 shows a schematic logic diagram of a first forming subtraction and negation operations are unde 35 embodiment of a selective negation slice circuit which sirable. These indirect techniques often require an unde selectively negates an incoming four bit number; sirably large amount of circuit area or number of com FIG. 2A shows a schematic logic diagram of an alter ponents for their implementation. Moreover, these indi native first embodiment of a selective negation circuit rect techniques often cause the propagation delay be which selectively negates an incoming number; tween the time when an incoming number is valid and FIG.3 shows a block diagram of a selective negation the time when the subtraction or negation operation circuit which includes numerous selective negation results are valid to be undesirably long. slice circuits; FIG. 4 shows a schematic logic diagram of a second suMMARY OF THE INVENTION embodiment of a transition bit detector portion of a Accordingly, it is an advantage of the present inven 45 selective negation slice circuit; tion that an improved arithmetic circuit is provided. FIG. 5 shows a schematic logic diagram of a second Another advantage of the present invention is that an embodiment of a selective negation slice circuit; and arithmetic circuit is provided which may be incorpo FIG. 6 shows a four bit direct adder/subtractor cir rated in a wide variety of applications, including arith cuit which incorporates a selective negation slice cir metic logic units (ALUs) for microprocessors or other 50 cuit. computing circuits, add/subtract circuits, subtraction In the following description of preferred embodi circuits, and negation circuits. ments, certain items are either identical to or closely Another advantage of the present invention is that an related to other items. This description distinguishes arithmetic circuit is provided which generates a two's such items from their counterparts by the use of lower complement negation of an incoming number in a small 55 case alphabetic characters ("a", "b", and so on) which amount of space and with a small amount of propaga are appended to a common reference number. When an tion delay. alphabetic character is omitted, the description refers to Another advantage of the present invention is that an any one of such items and their counterparts individu arithmetic circuit is provided which selectively gener ally or to all of them collectively. ates a negation of an incoming number. Another advantage of the present invention is that an DETAILED DESCRIPTION OF THE arithmetic circuit is provided which selectively per PREFERRED EMBODIMENTS forms addition or subtraction operations, wherein the FIG. 1 presents a table of two's complement binary subtraction operations are performed in a direct manner notations with respect to a four bit numbering system. which does not require the generation of a carry input 65 Incoming number columns 10 and 12 show decimal and pulse. binary representations, respectively, of a four bit num Another advantage of the present invention is that an ber upon which a selective negation slice circuit, dis arithmetic circuit is provided which may be adapted to cussed below, operates. Rows listed in the table of FIG. 5,333,120 3 4. 1 are dedicated to each of 16 different numbers repre of the incoming number having a significance level less sentable in a four bit numbering system.
Recommended publications
  • Data Representation
    Chapter 4 – Data Representation The focus of this chapter is the representation of data in a digital computer. We begin with a review of several number systems (decimal, binary, octal, and hexadecimal) and a discussion of methods for conversion between the systems. The two most important methods are conversion from decimal to binary and binary to decimal. The conversions between binary and each of octal and hexadecimal are quite simple. Other conversions, such as hexadecimal to decimal, are often best done via binary. After discussion of conversion between bases, we discuss the methods used to store integers in a digital computer: one’s complement and two’s complement arithmetic. This includes a characterization of the range of integers that can be stored given the number of bits allocated to store an integer. The most common integer storage formats are 16, 32, and 64 bits. The next topic for this chapter is the storage of real (floating point) numbers. This discussion will mention the standard put forward by the Institute of Electrical and Electronic Engineers, the IEEE Standard 754 for floating point numbers, but will focus on the base–16 format used by IBM Mainframes. The chapter closes with a discussion of codes for storing characters, focusing on the EBCDIC system used on IBM mainframes. Number Systems There are four number systems of possible interest to the computer programmer: decimal, binary, octal, and hexadecimal. Each system is characterized by its base or radix, always given in decimal, and the set of permissible digits. Note that the hexadecimal numbering system calls for more than ten digits, so we use the first six letters of the alphabet.
    [Show full text]
  • Bits and Bytes and Words, Oh My!
    Bits and Bytes and Words, Oh My! Let’s get down to the real ni8y gri8y • CIS 211 In principle you already know ... Computer memory is binary (base 2) Everything: instrucEons, numbers, strings, ... memory is just one big array of binary numbers If I ask you what 01101011101010 represents, the only correct answer is “it depends” 0 = False = 0 volts; 1 = True = 5 volts (maybe) • CIS 211 CPU and Memory Main Memory CPU Address ALU Reg Reg Reg Values Reg Reg Reg Reg Reg Reg Other buses • CIS 211 CPU and Memory (simplified*) Main Memory CPU Address ALU Reg Reg Reg Values Reg Reg Reg Reg Reg Reg Other buses • CIS 211 (*with several useful lies) CPU and Memory CPU places a memory address on the address bus CPU may place a value on the data base and assert a “write” line (wire) or assert a “read” line and read a value from the data bus Main Memory CPU Address ALU Reg Reg Reg Values Reg Reg Reg Reg Reg Reg Other buses • CIS 211 A few terms: • A bit is a single binary digit • A byte is 8 binary digits • Most computer memory is “byte addressed”; a byte is the smallest addressable unit • What’s half a byte? (4 bits)? • A “word” is a sequence of bytes • Usually 4 bytes (32 bits) or 8 bytes (64 bits) depending on the computer (see next slide) 1 = True = 5 volts ; 0 = False = 0 volts (or 3.3 volts) • CIS 211 Typical byte-addressed memory 15 0 1 0 1 0 0 0 1 with 32-bit words 14 0 0 1 0 0 1 0 0 13 1 1 0 0 1 1 1 0 12 0 0 0 1 1 0 0 0 11 0 1 0 0 1 1 0 0 10 0 0 0 0 0 0 0 0 9 0 0 0 1 1 0 0 0 8 0 0 0 0 0 1 1 0 7 0 0 0 0 0 0 0 0 6 0 0 1 1 1 0 0 1 5 0 1 1 0 0 1 1
    [Show full text]
  • Endian: from the Ground up a Coordinated Approach
    WHITEPAPER Endian: From the Ground Up A Coordinated Approach By Kevin Johnston Senior Staff Engineer, Verilab July 2008 © 2008 Verilab, Inc. 7320 N MOPAC Expressway | Suite 203 | Austin, TX 78731-2309 | 512.372.8367 | www.verilab.com WHITEPAPER INTRODUCTION WHat DOES ENDIAN MEAN? Data in Imagine XYZ Corp finally receives first silicon for the main Endian relates the significance order of symbols to the computers chip for its new camera phone. All initial testing proceeds position order of symbols in any representation of any flawlessly until they try an image capture. The display is kind of data, if significance is position-dependent in that regularly completely garbled. representation. undergoes Of course there are many possible causes, and the debug Let’s take a specific type of data, and a specific form of dozens if not team analyzes code traces, packet traces, memory dumps. representation that possesses position-dependent signifi- There is no problem with the code. There is no problem cance: A digit sequence representing a numeric value, like hundreds of with data transport. The problem is eventually tracked “5896”. Each digit position has significance relative to all down to the data format. other digit positions. transformations The development team ran many, many pre-silicon simula- I’m using the word “digit” in the generalized sense of an between tions of the system to check datapath integrity, bandwidth, arbitrary radix, not necessarily decimal. Decimal and a few producer and error correction. The verification effort checked that all other specific radixes happen to be particularly useful for the data submitted at the camera port eventually emerged illustration simply due to their familiarity, but all of the consumer.
    [Show full text]
  • Binary Numbers 8'S Colum 8'S Colum 2'S Colum 1'S 4'S Colum 4'S N N N N
    Codes and number systems Introduction to Computer Yung-Yu Chuang with slides by Nisan & Schocken (www.nand2tetris.org) and Harris & Harris (DDCA) Coding • Assume that you want to communicate with your friend with a flashlight in a night, what will you do? light painting? What’s the problem? Solution #1 • A: 1 blink • B: 2 blibliknks • C: 3 blinks : • Z: 26 blinks Wha t’s the problem ? • How are you? = 131 blinks Solution #2: Morse code Hello Lookup • It is easy to translate into Morse code than reverse. Why? Lookup Lookup Useful for checking the correctness/ redddundency Braille Braille What’s common in these codes? • They are both binary codes. Binary representations • Electronic Implementation – Easy to store with bitblbistable elemen ts – Reliably transmitted on noisy and inaccurate wires 0 1 0 3.3V 2.8V 0.5V 0.0V Number systems <13> 1 Chapter = = Systems 2 1's column 10 1's column 10's column 2's column 100's column 4's column 1000's column 8's column 5374 1101 Number • numbers Decimal • Binary numbers Number Systems • Decimal numbers 1000's col 10's colum 1's column 100's colu u m n mn n 3 2 1 0 537410 = 5 ? 10 + 3 ? 10 + 7 ? 10 + 4 ? 10 five three seven four thousands hundreds tens ones • Binary numbers 8's colum 2's colum 1's colum 4's colum n n n n 3 2 1 0 11012 = 1 ? 2 + 1 ? 2 + 0 ? 2 + 1 ? 2 = 1310 one one no one eight four two one Chapter 1 <14> Binary numbers • Digits are 1 and 0 (a binary dig it is calle d a bit) 1 = true 0 = false • MSB –most significant bit • LSB –least significant bit MSB LSB • Bit numbering: 1 0 1 1 0
    [Show full text]
  • TCG ACPI Specification
    TCG ACPI Specification Family “1.2” and “2.0” Version 1.3 Revision 8 August 5, 2021 PUBLISHED Contact: [email protected] TCG PUBLISHED Copyright © TCG 2021 TCG TCG ACPI Specification Disclaimers, Notices, and License Terms THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Without limitation, TCG disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in this specification and to the implementation of this specification, and TCG disclaims all liability for cost of procurement of substitute goods or services, lost profits, loss of use, loss of data or any incidental, consequential, direct, indirect, or special damages, whether under contract, tort, warranty or otherwise, arising in any way out of use or reliance upon this specification or any information herein. This document is copyrighted by Trusted Computing Group (TCG), and no license, express or implied, is granted herein other than as follows: You may not copy or reproduce the document or distribute it to others without written permission from TCG, except that you may freely do so for the purposes of (a) examining or implementing TCG specifications or (b) developing, testing, or promoting information technology standards and best practices, so long as you distribute the document with these disclaimers, notices, and license terms. Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification licensing through membership agreements. Any marks and brands contained herein are the property of their respective owners.
    [Show full text]
  • Numbering Systems
    12 Digital Principles Switching Theory R HAPTE 1 C NUMBERING SYSTEMS 1.0 INTRODUCTION Inside today’s computers, data is represented as 1’s and 0’s. These 1’s and 0’s might be stored magnetically on a disk, or as a state in a transistor, core, or vacuum tube. To perform useful operations on these 1’s and 0’s one have to organize them together into patterns that make up codes. Modern digital systems do not represent numeric values using the decimal system. Instead, they typically use a binary or two’s complement numbering system. To understand the digital system arithmetic, one must understand how digital systems represent numbers. This chapter discusses several important concepts including the binary, octal and hexadeci- mal numbering systems, binary data organization (bits, nibbles, bytes, words, and double words), signed and unsigned numbering systems. If one is already familiar with these terms he should at least skim this material. 1.1 A REVIEW OF THE DECIMAL SYSTEM People have been using the decimal (base 10) numbering system for so long that they probably take it for granted. When one see a number like “123”, he don’t think about the value 123; rather, he generate a mental image of how many items this value represents. In reality, however, the number 123 represents: 1*102 + 2*101 + 3*100 OR 100 + 20 + 3 Each digit appearing to the left of the decimal point represents a value between zero and nine times an increasing power of ten. Digits appearing to the right of the decimal point represent a value between zero and nine times an increasing negative power of ten.
    [Show full text]
  • An Empirical Analysis of the Ipv4 Number Market
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Illinois Digital Environment for Access to Learning and Scholarship Repository Buying numbers: An Empirical Analysis of the IPv4 Number Market Milton L. Mueller Brenden Kuerbis Syracuse University Syracuse University [email protected] and University of Toronto [email protected] Abstract The emergence of a trading market for previously allocated Internet number blocks is an important change in Internet governance. Almost all of the Internet’s 32-bit address space has been given out, and we have not migrated to a new internet protocol, IPv6, with a larger address space. IP addresses are therefore being commoditized, as organizations with surplus numbers sell address blocks to organizations that want more. Though controversial, we know little about this phenomenon. This paper quantifies the number of address blocks that have been traded as of July 2012 and analyzes the scant information that exists about the pricing of these resources, discovering the emergence of a billion dollar market. The paper then shows how this factual information relates to key policy debates, in particularly the role of needs assessment and property rights in IPv4 number blocks. Keywords: Internet governance, IP address markets, IPv4 scarcity, IPv6 migration, property rights Introduction One of the most important but least-studied aspects of Internet policy is the emergence of a trading market for previously allocated Internet number blocks. Without unique Internet protocol numbers for the networks and devices attached, the Internet simply doesn’t work. The original Internet Protocol standard, known as IPv4, specified a 32-bit numbering space, which provided slightly less than 4 billion unique numbers that could be used as addresses (Postel, 1981).
    [Show full text]
  • Introduction to Computer Data Representation
    Introduction to Computer Data Representation Peter Fenwick The University of Auckland (Retired) New Zealand Bentham Science Publishers Bentham Science Publishers Bentham Science Publishers Executive Suite Y - 2 P.O. Box 446 P.O. Box 294 PO Box 7917, Saif Zone Oak Park, IL 60301-0446 1400 AG Bussum Sharjah, U.A.E. USA THE NETHERLANDS [email protected] [email protected] [email protected] Please read this license agreement carefully before using this eBook. Your use of this eBook/chapter constitutes your agreement to the terms and conditions set forth in this License Agreement. This work is protected under copyright by Bentham Science Publishers to grant the user of this eBook/chapter, a non- exclusive, nontransferable license to download and use this eBook/chapter under the following terms and conditions: 1. This eBook/chapter may be downloaded and used by one user on one computer. The user may make one back-up copy of this publication to avoid losing it. The user may not give copies of this publication to others, or make it available for others to copy or download. For a multi-user license contact [email protected] 2. All rights reserved: All content in this publication is copyrighted and Bentham Science Publishers own the copyright. You may not copy, reproduce, modify, remove, delete, augment, add to, publish, transmit, sell, resell, create derivative works from, or in any way exploit any of this publication’s content, in any form by any means, in whole or in part, without the prior written permission from Bentham Science Publishers. 3. The user may print one or more copies/pages of this eBook/chapter for their personal use.
    [Show full text]
  • Data Representation
    Data Representation Data Representation Chapter Three A major stumbling block many beginners encounter when attempting to learn assembly language is the common use of the binary and hexadecimal numbering systems. Many programmers think that hexadecimal (or hex1) numbers represent absolute proof that God never intended anyone to work in assembly language. While it is true that hexadecimal numbers are a little different from what you may be used to, their advan- tages outweigh their disadvantages by a large margin. Nevertheless, understanding these numbering systems is important because their use simplifies other complex topics including boolean algebra and logic design, signed numeric representation, character codes, and packed data. 3.1 Chapter Overview This chapter discusses several important concepts including the binary and hexadecimal numbering sys- tems, binary data organization (bits, nibbles, bytes, words, and double words), signed and unsigned number- ing systems, arithmetic, logical, shift, and rotate operations on binary values, bit fields and packed data. This is basic material and the remainder of this text depends upon your understanding of these concepts. If you are already familiar with these terms from other courses or study, you should at least skim this material before proceeding to the next chapter. If you are unfamiliar with this material, or only vaguely familiar with it, you should study it carefully before proceeding. All of the material in this chapter is important! Do not skip over any material. In addition to the basic material, this chapter also introduces some new HLA state- ments and HLA Standard Library routines. 3.2 Numbering Systems Most modern computer systems do not represent numeric values using the decimal system.
    [Show full text]
  • Programming the 65816
    Programming the 65816 Including the 6502, 65C02 and 65802 Distributed and published under COPYRIGHT LICENSE AND PUBLISHING AGREEMENT with Authors David Eyes and Ron Lichty EFFECTIVE APRIL 28, 1992 Copyright © 2007 by The Western Design Center, Inc. 2166 E. Brown Rd. Mesa, AZ 85213 480-962-4545 (p) 480-835-6442 (f) www.westerndesigncenter.com The Western Design Center Table of Contents 1) Chapter One .......................................................................................................... 12 Basic Assembly Language Programming Concepts..................................................................................12 Binary Numbers.................................................................................................................................................... 12 Grouping Bits into Bytes....................................................................................................................................... 13 Hexadecimal Representation of Binary................................................................................................................ 14 The ACSII Character Set ..................................................................................................................................... 15 Boolean Logic........................................................................................................................................................ 16 Logical And.......................................................................................................................................................
    [Show full text]
  • Sun Studio 10: C User's Guide
    C User’s Guide Sun™ Studio 10 Sun Microsystems, Inc. www.sun.com Part No. 819-0494-10 January 2005, Revision A Submit comments about this document at: http://www.sun.com/hwdocs/feedback Copyright © 2005 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Use is subject to license terms. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and in other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, Java, and JavaHelp are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc. This product is covered and controlled by U.S. Export Control laws and may be subject to the export or import laws in other countries. Nuclear, missile, chemical biological weapons or nuclear maritime end uses or end users, whether direct or indirect, are strictly prohibited. Export or reexport to countries subject to U.S. embargo or to entities identified on U.S. export exclusion lists, including, but not limited to, the denied persons and specially designated nationals lists is strictly prohibited.
    [Show full text]
  • The P4 Language Specification, V 1.1.0
    The P4 Language Specification Version 1.1.0 January 27, 2016 The P4 Language Consortium © 2014-2016, The P4 Language Consortium CONTENTS CONTENTS Contents 1 Introduction5 1.1 The P4 Abstract Model...............................5 1.2 The mTag Example.................................7 1.3 Specification Conventions.............................7 2 Structure of the P4 Language8 2.1 Abstractions.....................................8 2.2 Value Specifications................................9 2.3 Types and declarations............................... 11 2.4 P4 data types..................................... 12 2.4.1 Principles.................................. 12 2.4.2 Base types.................................. 13 2.4.3 Portability.................................. 13 2.4.4 No saturated types............................. 14 2.4.5 Boolean................................... 14 2.4.6 Unsigned integers (bit-strings)...................... 14 2.4.7 Signed Integers............................... 15 2.4.8 Dynamically-sized bit-strings....................... 15 2.4.9 Infinite-precision integers......................... 16 2.4.10 Integer literal types............................. 16 2.5 Base type operations................................ 17 2.5.1 Computations on Boolean values.................... 17 2.5.2 Operations on unsigned fixed-width integers............. 18 2.5.3 Operations on signed fixed-width integers............... 18 2.5.4 A note about shifts............................. 19 2.5.5 varbit operations............................. 21 2.5.6 Operations
    [Show full text]