Current Version, Ch01-03

Total Page:16

File Type:pdf, Size:1020Kb

Current Version, Ch01-03 Digital Logic and Computer Organization Neal Nelson c May 2013 Contents 1 Numbers and Gates 5 1.1 Numbers and Primitive Data Types . .5 1.2 Representing Numbers . .6 1.2.1 Decimal and Binary Systems . .6 1.2.2 Binary Counting . .7 1.2.3 Binary Conversions . .9 1.2.4 Hexadecimal . 11 1.3 Representing Negative Numbers . 13 1.3.1 Ten's Complement . 14 1.3.2 Two's Complement Binary Representation . 18 1.3.3 Negation in Two's Complement . 20 1.3.4 Two's Complement to Decimal Conversion . 21 1.3.5 Decimal to Two's Complement Conversion . 22 1.4 Gates and Circuits . 22 1.4.1 Logic Expressions . 23 1.4.2 Circuit Expressions . 24 1.5 Exercises . 26 2 Logic Functions 29 2.1 Functions . 29 2.2 Logic Functions . 30 2.2.1 Primitive Gate Functions . 31 2.2.2 Evaluating Logic Expressions and Circuits . 31 2.2.3 Logic Tables for Expressions and Circuits . 32 2.2.4 Expressions as Functions . 34 2.3 Equivalence of Boolean Expressions . 36 2.4 Logic Functional Completeness . 36 2.5 Boolean Algebra . 37 2.6 Tables, Expressions, and Circuits . 37 1 2.6.1 Disjunctive Normal Form . 38 2.6.2 Logic Expressions from Tables . 39 2.7 Exercises . 41 3 Dataflow Logic 43 3.1 Data Types . 44 3.1.1 Unsigned Int . 45 3.1.2 Signed Int . 45 3.1.3 Char and String . 45 3.2 Data Buses . 46 3.3 Bitwise Functions . 48 3.4 Integer Functions . 51 3.5 Decoders . 57 3.6 Multiplexers . 58 3.7 Control Logic . 60 3.8 Data Path Circuits . 61 3.9 Exercises . 63 4 Integer Arithmetic and Adders 65 4.1 Unsigned Addition . 65 4.2 Signed Addition and Subtraction . 66 4.3 Adder-Subtracter Circuit . 66 4.4 Multiplication and Division . 73 4.5 Floating Point Numbers . 73 4.6 Exercises . 73 5 Registers and Sequential Logic 76 5.1 Clocked Logic . 76 5.2 Memory Bits . 78 5.3 Registers . 81 5.4 Counter and Shifter Registers . 82 5.5 Register Transfers . 83 5.6 Register Transfer Sequences . 86 5.7 Adder Datapaths . 88 5.8 Sample RT Sequences for Adder Datapaths . 91 5.9 Exercises . 93 6 Memory and Stored Programs 90 6.1 Stored Programs . 92 6.2 Memory Components . 93 2 6.3 Instruction Memory . 95 6.4 Instruction Fetch Datapath . 96 6.5 Instruction Execution Datapath . 98 6.6 Combined Fetch-Execute Datapath . 100 6.7 Exercises . 102 7 Instruction Set Architecture 104 7.1 SAM - Simple Accumulator Machine . 104 7.2 SAM Word Size, Data Types, and Registers . 105 7.3 SAM Address Space and Physical Memory . 105 7.4 SAM Assembly Language and Machine Code . 106 7.5 SAM Instruction Set . 109 7.6 SAM Instruction Execution Traces . 111 7.7 Exercises . 113 8 Register Transfer Architecture 115 8.1 Stored Program Architecture . 115 8.2 Fetch-Execute Cycle . 116 8.3 RT Machine Organization . 116 8.4 The SAM Datapath . 118 8.5 Instruction Decoder . 119 8.6 Control Sequencer . 120 8.7 Instruction Fetch Control Sequence . 121 8.8 Instruction Execution Control Sequences . 122 8.9 Control Sequence Logic . 123 8.10 The SAM . 125 8.11 Exercises . 125 9 Assembly Language Programming 111 9.1 Assembly Code . 111 9.2 Machine Code . 111 9.3 Code Sequences . 111 9.4 Decisions . 111 9.5 Loops . 111 9.6 Overflow and Carry . 111 9.7 Exercises . 111 3 Preface This book is a reference for Logic and Computer Organization at The Ev- ergreen State College. We presume a stored-program processor architecture built using silicon technology in a non-quantum setting. The heart of a computer is the processor. We will learn the inner work- ings of a processor by studying the construction of a processor from primitive digital logic gates realizable in hardware. The presentation is intellectually honest, but greatly simplified relative to current technology. Nevertheless, the essential ideas are the same and the resulting processor that we explore can do everything any other processor can do { given enough time and space. The next significant revolution in computer organization will come only with a quantum processor. I want readers to hear my thanks to the Computer Science Foundations students of 2013-14 and 2014-15 for beta testing this text in their study of Digital Logic and Computer Organization. I especially thank Mary Kallam for her careful editing of the original version. 4 Chapter 1 Numbers and Gates This chapter introduces the two most fundamental ideas upon which we will build our processor. First, processors operate on symbolic and numerical data so we will need to represent symbols and numbers in our machines. Second, we will need primitive logic components that can be constructed in hardware and used both in combinations and sequences to compute. The magic of how a single primitive logic gate can be combined with feed- back and a hardware clock to run complex programs will unfold throughout the remaining chapters. 1.1 Numbers and Primitive Data Types In the first part of this chapter we examine the binary representation of inte- gers. Integers are one of several kinds of numbers in mathematics. Numbers in general (and integers in particular) are abstract mathematical entities whose existence is only accessible through our minds and thoughts. Num- bers have proved very useful in understanding our material world quantita- tively, but we must have a standard way to denote specific numbers - a way to write them down and communicate them to each other in text and formu- las. A system of representing numbers in written form is called a numeral system. Our commonly accepted practice for denoting numbers in written form is the called the Hindu-Arabic decimal numeral system. We also need a standard way of representing numbers in computing systems. This chapter is concerned with the denotation and representation of numbers for computing systems. In programming languages numbers show up as one of a small set of primitive data types that are closely related to the set of primitive values 5 built into all processors. In this chapter we will specifically focus on the representation of integers, leaving real numbers and other primitive types for later study. By the end of this chapter we will know how integers in mathematics are denoted by decimal numerals in writing, and commonly coded as the primitive data type Int in programming languages, and subsequently stored in computing systems in binary using a two's complement representation in a fixed size computer word. 1.2 Representing Numbers The earliest counting systems began with the Natural Numbers which we think of now as the collection or set of positive integers: f1; 2; 3;:::g The number zero was historically much later in achieving the status of a number, but zero is such a handy and natural number when you get used to it that it is now commonly included as a natural number. So although there is not complete agreement on the matter of zero, we will assume that the natural numbers are the set of non-negative integers: N = f0; 1; 2; 3;:::g 1.2.1 Decimal and Binary Systems It is a convenient fact that our Hindu-Arabic decimal system of numerals has a base of ten and we have ten digits on our hands. It is an equally convenient fact that both logic and numbers can be represented in a base two binary system and hardware can efficiently store and manipulate binary information. So our understanding of logic and numbers translates directly into hardware, but the somewhat inconvenient fact is that we must translate between base two and base ten representations of numbers. A decimal system of numerals is a base 10 system with 10 distinct digits. A binary system of numerals is a base 2 system with only two distinct digits, which we denote with the usual symbols 0 and 1. It is a common convention in mathematical logic to use the symbol F for false, and T for true. Because both systems are binary, we can choose either convention and both conventions are commonly used. We will initially use both conventions. When we are speaking about logic in the beginning of the text we'll use F and T as is common in logic. When we are speaking about circuits and numbers, we will migrate toward using 0 and 1 as is common in digital logic and Boolean algebra, where 0 is interpreted as equivalent to F , that is, false 6 and 1 is interpreted as equivalent to T , true. Eventually we'll converge on the usual digital logic convention of using 0 and 1 for both binary digits and the logic constants. The actual circuit hardware, of course, does not care a hoot about the symbols. The hardware will simply insist that two distinct voltage levels represent the two binary constants. 1.2.2 Binary Counting The Hindu-Arabic decimal numeral system is a positional system with each digit position tracking some power of 10 that contributes to the value of the number. A fairly natural understanding of this system comes from following a counting sequence in three decimal digits: 000 001 002 ::: 009 010 011 012 ::: 019 . 090 091 092 ::: 099 100 101 102 ::: 109 . 990 991 992 ::: 999 Each time we reach 9 in an given position we start over at 0 and also add one to the digit immediately to the left. Of course when get to a sequence of 9's this so-called rollover has a ripple effect as we can see from the rollover from 99 to 100 above.
Recommended publications
  • An Introduction to Operad Theory
    AN INTRODUCTION TO OPERAD THEORY SAIMA SAMCHUCK-SCHNARCH Abstract. We give an introduction to category theory and operad theory aimed at the undergraduate level. We first explore operads in the category of sets, and then generalize to other familiar categories. Finally, we develop tools to construct operads via generators and relations, and provide several examples of operads in various categories. Throughout, we highlight the ways in which operads can be seen to encode the properties of algebraic structures across different categories. Contents 1. Introduction1 2. Preliminary Definitions2 2.1. Algebraic Structures2 2.2. Category Theory4 3. Operads in the Category of Sets 12 3.1. Basic Definitions 13 3.2. Tree Diagram Visualizations 14 3.3. Morphisms and Algebras over Operads of Sets 17 4. General Operads 22 4.1. Basic Definitions 22 4.2. Morphisms and Algebras over General Operads 27 5. Operads via Generators and Relations 33 5.1. Quotient Operads and Free Operads 33 5.2. More Examples of Operads 38 5.3. Coloured Operads 43 References 44 1. Introduction Sets equipped with operations are ubiquitous in mathematics, and many familiar operati- ons share key properties. For instance, the addition of real numbers, composition of functions, and concatenation of strings are all associative operations with an identity element. In other words, all three are examples of monoids. Rather than working with particular examples of sets and operations directly, it is often more convenient to abstract out their common pro- perties and work with algebraic structures instead. For instance, one can prove that in any monoid, arbitrarily long products x1x2 ··· xn have an unambiguous value, and thus brackets 2010 Mathematics Subject Classification.
    [Show full text]
  • Binary Integer Programming and Its Use for Envelope Determination
    Binary Integer Programming and its Use for Envelope Determination By Vladimir Y. Lunin1,2, Alexandre Urzhumtsev3,† & Alexander Bockmayr2 1 Institute of Mathematical Problems of Biology, Russian Academy of Sciences, Pushchino, Moscow Region, 140292 Russia 2 LORIA, UMR 7503, Faculté des Sciences, Université Henri Poincaré, Nancy I, 54506 Vandoeuvre-les-Nancy, France; [email protected] 3 LCM3B, UMR 7036 CNRS, Faculté des Sciences, Université Henri Poincaré, Nancy I, 54506 Vandoeuvre-les-Nancy, France; [email protected] † to whom correspondence must be sent Abstract The density values are linked to the observed magnitudes and unknown phases by a system of non-linear equations. When the object of search is a binary envelope rather than a continuous function of the electron density distribution, these equations can be replaced by a system of linear inequalities with respect to binary unknowns and powerful tools of integer linear programming may be applied to solve the phase problem. This novel approach was tested with calculated and experimental data for a known protein structure. 1. Introduction Binary Integer Programming (BIP in what follows) is an approach to solve a system of linear inequalities in binary unknowns (0 or 1 in what follows). Integer programming has been studied in mathematics, computer science, and operations research for more than 40 years (see for example Johnson et al., 2000 and Bockmayr & Kasper, 1998, for a review). It has been successfully applied to solve a huge number of large-scale combinatorial problems. The general form of an integer linear programming problem is max { cTx | Ax ≤ b, x ∈ Zn } (1.1) with a real matrix A of a dimension m by n, and vectors c ∈ Rn, b ∈ Rm, cTx being the scalar product of the vectors c and x.
    [Show full text]
  • Making a Faster Curry with Extensional Types
    Making a Faster Curry with Extensional Types Paul Downen Simon Peyton Jones Zachary Sullivan Microsoft Research Zena M. Ariola Cambridge, UK University of Oregon [email protected] Eugene, Oregon, USA [email protected] [email protected] [email protected] Abstract 1 Introduction Curried functions apparently take one argument at a time, Consider these two function definitions: which is slow. So optimizing compilers for higher-order lan- guages invariably have some mechanism for working around f1 = λx: let z = h x x in λy:e y z currying by passing several arguments at once, as many as f = λx:λy: let z = h x x in e y z the function can handle, which is known as its arity. But 2 such mechanisms are often ad-hoc, and do not work at all in higher-order functions. We show how extensional, call- It is highly desirable for an optimizing compiler to η ex- by-name functions have the correct behavior for directly pand f1 into f2. The function f1 takes only a single argu- expressing the arity of curried functions. And these exten- ment before returning a heap-allocated function closure; sional functions can stand side-by-side with functions native then that closure must subsequently be called by passing the to practical programming languages, which do not use call- second argument. In contrast, f2 can take both arguments by-name evaluation. Integrating call-by-name with other at once, without constructing an intermediate closure, and evaluation strategies in the same intermediate language ex- this can make a huge difference to run-time performance in presses the arity of a function in its type and gives a princi- practice [Marlow and Peyton Jones 2004].
    [Show full text]
  • Self-Similarity in the Foundations
    Self-similarity in the Foundations Paul K. Gorbow Thesis submitted for the degree of Ph.D. in Logic, defended on June 14, 2018. Supervisors: Ali Enayat (primary) Peter LeFanu Lumsdaine (secondary) Zachiri McKenzie (secondary) University of Gothenburg Department of Philosophy, Linguistics, and Theory of Science Box 200, 405 30 GOTEBORG,¨ Sweden arXiv:1806.11310v1 [math.LO] 29 Jun 2018 2 Contents 1 Introduction 5 1.1 Introductiontoageneralaudience . ..... 5 1.2 Introduction for logicians . .. 7 2 Tour of the theories considered 11 2.1 PowerKripke-Plateksettheory . .... 11 2.2 Stratifiedsettheory ................................ .. 13 2.3 Categorical semantics and algebraic set theory . ....... 17 3 Motivation 19 3.1 Motivation behind research on embeddings between models of set theory. 19 3.2 Motivation behind stratified algebraic set theory . ...... 20 4 Logic, set theory and non-standard models 23 4.1 Basiclogicandmodeltheory ............................ 23 4.2 Ordertheoryandcategorytheory. ...... 26 4.3 PowerKripke-Plateksettheory . .... 28 4.4 First-order logic and partial satisfaction relations internal to KPP ........ 32 4.5 Zermelo-Fraenkel set theory and G¨odel-Bernays class theory............ 36 4.6 Non-standardmodelsofsettheory . ..... 38 5 Embeddings between models of set theory 47 5.1 Iterated ultrapowers with special self-embeddings . ......... 47 5.2 Embeddingsbetweenmodelsofsettheory . ..... 57 5.3 Characterizations.................................. .. 66 6 Stratified set theory and categorical semantics 73 6.1 Stratifiedsettheoryandclasstheory . ...... 73 6.2 Categoricalsemantics ............................... .. 77 7 Stratified algebraic set theory 85 7.1 Stratifiedcategoriesofclasses . ..... 85 7.2 Interpretation of the Set-theories in the Cat-theories ................ 90 7.3 ThesubtoposofstronglyCantorianobjects . ....... 99 8 Where to go from here? 103 8.1 Category theoretic approach to embeddings between models of settheory .
    [Show full text]
  • Solving Multiclass Learning Problems Via Error-Correcting Output Codes
    Journal of Articial Intelligence Research Submitted published Solving Multiclass Learning Problems via ErrorCorrecting Output Co des Thomas G Dietterich tgdcsorstedu Department of Computer Science Dearborn Hal l Oregon State University Corval lis OR USA Ghulum Bakiri ebisaccuobbh Department of Computer Science University of Bahrain Isa Town Bahrain Abstract Multiclass learning problems involve nding a denition for an unknown function f x whose range is a discrete set containing k values ie k classes The denition is acquired by studying collections of training examples of the form hx f x i Existing ap i i proaches to multiclass learning problems include direct application of multiclass algorithms such as the decisiontree algorithms C and CART application of binary concept learning algorithms to learn individual binary functions for each of the k classes and application of binary concept learning algorithms with distributed output representations This pap er compares these three approaches to a new technique in which errorcorrecting co des are employed as a distributed output representation We show that these output representa tions improve the generalization p erformance of b oth C and backpropagation on a wide range of multiclass learning tasks We also demonstrate that this approach is robust with resp ect to changes in the size of the training sample the assignment of distributed represen tations to particular classes and the application of overtting avoidance techniques such as decisiontree pruning Finally we show thatlike
    [Show full text]
  • Universal Functions Paul B
    Universal Functions Paul B. Larson1 Arnold W. Miller Juris Stepr¯ans William A.R. Weiss Contents 1. Introduction 2 1.1. Cardinal characteristics 4 2. Borel universal functions 5 3. Universal functions and Martin's Axiom 9 4. Universal functions of special kinds 12 5. Abstract universal functions 18 5.1. Property R 28 6. Higher dimensional universal functions 30 7. Model-theoretic universality 43 8. Appendix 50 References 52 Abstract2 A function of two variables F (x; y) is universal if for every function G(x; y) there exists functions h(x) and k(y) such that G(x; y) = F (h(x); k(y)) for all x; y. Sierpi´nskishowed that assuming the Continuum Hypothesis there exists a Borel function F (x; y) which is universal. Assuming Mar- tin's Axiom there is a universal function of Baire class 2. A universal function cannot be of Baire class 1. Here we show that it is consistent that for each α with 2 ≤ α < !1 there is a universal function of class α but none of class β < α. We show that it is consistent with ZFC that there is no universal function (Borel or not) on the reals, and we show that it is consistent that there is a universal function but no Borel universal function. We also prove some results concerning higher-arity 1Research supported in part by NSF Grants DMS-0801009 and DMS-1201494. Much of the writing of the paper was done while all four authors attended the thematic program on Forcing and its Applications at the Fields Institute in Fall 2012.
    [Show full text]
  • Multiclass Classification Using Support Vector Machines
    Georgia Southern University Digital Commons@Georgia Southern Electronic Theses and Dissertations Graduate Studies, Jack N. Averitt College of Fall 2018 Multiclass Classification Using Support ectorV Machines Duleep Prasanna W. Rathgamage Don Follow this and additional works at: https://digitalcommons.georgiasouthern.edu/etd Part of the Artificial Intelligence and Robotics Commons, Other Applied Mathematics Commons, and the Other Statistics and Probability Commons Recommended Citation Rathgamage Don, Duleep Prasanna W., "Multiclass Classification Using Support ectorV Machines" (2018). Electronic Theses and Dissertations. 1845. https://digitalcommons.georgiasouthern.edu/etd/1845 This thesis (open access) is brought to you for free and open access by the Graduate Studies, Jack N. Averitt College of at Digital Commons@Georgia Southern. It has been accepted for inclusion in Electronic Theses and Dissertations by an authorized administrator of Digital Commons@Georgia Southern. For more information, please contact [email protected]. MULTICLASS CLASSIFICATION USING SUPPORT VECTOR MACHINES by DULEEP RATHGAMAGE DON (Under the Direction of Ionut Iacob) ABSTRACT In this thesis we discuss different SVM methods for multiclass classification and introduce the Divide and Conquer Support Vector Machine (DCSVM) algorithm which relies on data sparsity in high dimensional space and performs a smart partitioning of the whole train- ing data set into disjoint subsets that are easily separable. A single prediction performed between two partitions eliminates one or more classes in a single partition, leaving only a reduced number of candidate classes for subsequent steps. The algorithm continues recur- sively, reducing the number of classes at each step, until a final binary decision is made between the last two classes left in the process.
    [Show full text]
  • A Dynamical Approach Towards Collatz Conjecture
    A DYNAMICAL APPROACH TOWARDS COLLATZ CONJECTURE PABLO CASTAÑEDA Abstract. The present work focuses on the study of the renowned Collatz conjecture, also known as the 3x + 1 problem. The distinguished analysis approach lies on the dynamics of an iterative map in binary form. A new estimation of the enlargement of iterated numbers is given. Within the associated iterative map, characteristic periods for periodic orbits are identified. 1. Introduction The Collatz conjecture is a long standing open conjecture in number theory. Among many other names it is often known as the conjecture for the 3x + 1 problem, which concerns to an arithmetic procedure over integers. This conjecture is based on the Collatz function given by ( 3x + 1; if x ≡ 1 (mod 2) (1) C(x) = : x=2; if x ≡ 0 (mod 2) Notice that the Collatz problem concerns to the dynamical behavior of the above map for any positive integer x. Conjecture 1 (Collatz conjecture). Starting from any positive integer x, iterations of the function C(x) will eventually reach the number 1. Thus, iterations enter in a cycle, taking successive values f1; 4; 2g. The problem has been addressed from several viewpoints along nearly a Century (see e.g. [9] for an overview), which come from approaches of number theory, dynamical systems, ergodic theory, mathematical logic, and theory of computation as well as stochastic strategies. This paper consists of a numerical and dynamical hybrid analysis. The 3x + 1 problem have been considered as a discrete map C : Z ! Z. The map here proposed maps an interval in the real numbers into itself, yet the given map is discontinuous almost everywhere.
    [Show full text]
  • Functions, Relations, Partial Order Relations Definition: the Cartesian Product of Two Sets a and B (Also Called the Product
    Functions, Relations, Partial Order Relations Definition: The Cartesian product of two sets A and B (also called the product set, set direct product, or cross product) is defined to be the set of all pairs (a,b) where a ∈ A and b ∈ B . It is denoted A X B. Example : A ={1, 2), B= { a, b} A X B = { (1, a), (1, b), (2, a), (2, b)} Solve the following: X = {a, c} and Y = {a, b, e, f}. Write down the elements of: (a) X × Y (b) Y × X (c) X 2 (= X × X) (d) What could you say about two sets A and B if A × B = B × A? Definition: A function is a subset of the Cartesian product.A relation is any subset of a Cartesian product. For instance, a subset of , called a "binary relation from to ," is a collection of ordered pairs with first components from and second components from , and, in particular, a subset of is called a "relation on ." For a binary relation , one often writes to mean that is in . If (a, b) ∈ R × R , we write x R y and say that x is in relation with y. Exercise 2: A chess board’s 8 rows are labeled 1 to 8, and its 8 columns a to h. Each square of the board is described by the ordered pair (column letter, row number). (a) A knight is positioned at (d, 3). Write down its possible positions after a single move of the knight. Answer: (b) If R = {1, 2, ..., 8}, C = {a, b, ..., h}, and P = {coordinates of all squares on the chess board}, use set notation to express P in terms of R and C.
    [Show full text]
  • Fast Linear Discriminant Analysis Using Binary Bases
    UC Santa Cruz UC Santa Cruz Previously Published Works Title Fast linear discriminant analysis using binary bases Permalink https://escholarship.org/uc/item/2tc2c68g Journal Pattern Recognition Letters, 28(16) ISSN 0167-8655 Authors Tang, Feng Tao, Hai Publication Date 2007-12-01 Peer reviewed eScholarship.org Powered by the California Digital Library University of California Fast Linear Discriminant Analysis using Binary Bases Feng Tang and Hai Tao Department of Computer Engineering University of California Santa Cruz, CA, USA [email protected] Abstract Linear Discriminant Analysis (LDA) is a widely used technique for pattern classi- ¯cation. It seeks the linear projection of the data to a low dimensional subspace where the data features can be modelled with maximal discriminative power. The main computation in LDA is the dot product between LDA base vector and the data point which involves costly element-wise floating point multiplication. In this paper, we present a fast linear discriminant analysis method called binary LDA (B-LDA), which possesses the desirable property that the subspace projection operation can be computed very e±ciently. We investigate the LDA guided non-orthogonal binary subspace method to ¯nd the binary LDA bases, each of which is a linear combina- tion of a small number of Haar-like box functions. We also show that B-LDA base vectors are nearly orthogonal to each other. As a result, in the non-orthogonal vec- tor decomposition process, the computationally intensive pseudo-inverse projection operator can be approximated by the direct dot product without causing signi¯cant distance distortion. This direct dot product projection can be computed as a linear combination of the dot products with a small number of Haar-like box functions which can be e±ciently evaluated using the integral image.
    [Show full text]
  • International Journal of Pure and Applied Mathematics ————————————————————————– Volume 21 No
    International Journal of Pure and Applied Mathematics ————————————————————————– Volume 21 No. 1 2005, 127-134 FUNCTION LANGUAGE IN DIGITAL LOGICS Kenneth K. Nwabueze Department of Mathematics University of Brunei Gadong, BE 1410, BRUNEI e-mail: [email protected] Abstract: The concept of function is an example of a topic which has con- nections in almost all areas of computer science, especially in digital logics. In designing digital logics, there may be situations in which the designer may need the system to be able to “undo” certain processes. If that is a requirement, what the designer does, in simple mathematical terms, is to restrict the domain of operation in order to allow the process to be a function which is one-to-one. The purpose of this short note is to discuss some simple logical operations and terms associated with computer science in the context of functions. This will provide beginning students of computer science a thorough understanding and some examples of the concept of functions. AMS Subject Classification: 03D05, 03E20 Key Words: functions, digital logics, logical operation, cryptography, number conversions 1. Introduction Like any other machine, a computer hardware is normally switched on in order for electrons to flow through and activate it. This is just all that a computer hardware requires in order to start functioning. A computer is like a little child that needs to be told specifically what to do, and computer programs are the tools that tell the computer precisely what to do after being switched on. Computers understand only one language, namely the machine code.
    [Show full text]
  • Quantum Algorithms Via Linear Algebra: a Primer / Richard J
    QUANTUM ALGORITHMS VIA LINEAR ALGEBRA A Primer Richard J. Lipton Kenneth W. Regan The MIT Press Cambridge, Massachusetts London, England c 2014 Massachusetts Institute of Technology All rights reserved. No part of this book may be reproduced in any form or by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. MIT Press books may be purchased at special quantity discounts for business or sales promotional use. For information, please email special [email protected]. This book was set in Times Roman and Mathtime Pro 2 by the authors, and was printed and bound in the United States of America. Library of Congress Cataloging-in-Publication Data Lipton, Richard J., 1946– Quantum algorithms via linear algebra: a primer / Richard J. Lipton and Kenneth W. Regan. p. cm. Includes bibliographical references and index. ISBN 978-0-262-02839-4 (hardcover : alk. paper) 1. Quantum computers. 2. Computer algorithms. 3. Algebra, Linear. I. Regan, Kenneth W., 1959– II. Title QA76.889.L57 2014 005.1–dc23 2014016946 10987654321 We dedicate this book to all those who helped create and nourish the beautiful area of quantum algorithms, and to our families who helped create and nourish us. RJL and KWR Contents Preface xi Acknowledgements xiii 1 Introduction 1 1.1 The Model 2 1.2 The Space and the States 3 1.3 The Operations 5 1.4 Where Is the Input? 6 1.5 What Exactly Is the Output? 7 1.6 Summary and Notes 8 2 Numbers and Strings 9 2.1 Asymptotic Notation
    [Show full text]