Lecture 04 Linear Structures Sort

Total Page:16

File Type:pdf, Size:1020Kb

Lecture 04 Linear Structures Sort 20.09.19 Big-Oh notation classes Algorithmics (6EAP) Class Informal Intuition Analogy MTAT.03.238 f(n) ∈ ο ( g(n) ) f is dominated by g Strictly below < Linear structures, sorting, f(n) ∈ O( g(n) ) Bounded from above Upper bound ≤ searching, Recurrences, f(n) ∈ Θ( g(n) ) Bounded from “equal to” = Master Theorem... above and below f(n) ∈ Ω( g(n) ) Bounded from below Lower bound ≥ Jaak Vilo f(n) ∈ ω( g(n) ) f dominates g Strictly above > 2019 Fall Jaak Vilo 1 Linear, sequential, ordered, list … Physical ordered list ~ array • Memory /address/ – Garbage collection • Files (character/byte list/lines in text file,…) • Disk – Memory, disk, tape etc – is an ordered sequentially addressed media. Disk fragmentation Linear data structures: Arrays Linear data structures: Lists • Array • Hashed array tree • Doubly linked list • • Bidirectional map Heightmap • Array list • Xor linked list • Bit array • Lookup table • Linked list • Zipper • Bit field • Matrix • Self-organizing list • Doubly connected edge • Bitboard • Parallel array list • Bitmap • Sorted array • Skip list • Circular buffer • Sparse array • Unrolled linked list • Difference list • Control table • Sparse matrix • VList • Image • Iliffe vector • Dynamic array • Variable-length array • Gap buffer 1 20.09.19 Lists: Array Lists: Array 0 1 size MAX_SIZE-1 0 1 size MAX_SIZE-1 3 6 7 5 2 3 6 7 5 2 L = int[MAX_SIZE] L = int[MAX_SIZE] L[2]=7 L[size++] = new L[2]=7 1 2 size MAX_SIZE 3 6 7 5 2 L[3]=7 L[++size] = new Multiple lists, 2-D-arrays, etc… 2D array & A[i,j] = A + i*(nr_el_in_row*el_size) + j*el_size Linear Lists Abstract Data Type (ADT) • Operations which one may want to perform • High-level definition of data types on a linear list of n elements include: • An ADT specifies – A collection of data – gain access to the kth element of the list to – A set of operations on the data or subsets of the data examine and/or change the contents • ADT does not specify how the operations should be – insert a new element before or after the kth implemented element • Examples – delete the kth element of the list – vector, list, stack, queue, deque, priority queue, table (map), associative array, set, graph, digraph Reference: Knuth, The Art of Comptuer Programming, Vol 1, Fundamental Algorithms, 3rd Ed., p.238-9 2 20.09.19 ADT Primitive & composite types • A datatype is a set of values and an associated set of Primitive types Composite types operations • Boolean (for boolean values True/False) • Array • A datatype is abstract iff it is completely described by its set • Char (for character values) • Record (also called tuple of operations regradless of its implementation • int (for integral or fixed-precision or struct) • This means that it is possible to change the implementation values) • Union of the datatype without changing its use • Float (for storing real number • Tagged union (also called a • The datatype is thus described by a set of procedures values) • Double (a larger size of type float) variant, variant record, • These operations are the only thing that a user of the discriminated union, or abstraction can assume • String (for string of chars) • Enumerated type disjoint union) • Plain old data structure Abstract Data Types (ADT) Abstract data types: • Some common ADTs, which have proved useful in a great variety of applications, are • Dictionary (key,value) Container Stack • Stack (LIFO) List Graph Set Queue • Queue (FIFO) Multiset Priority queue • Queue (double-ended) Map Double-ended queue Multimap Double-ended priority queue • Priority queue (fetch highest-priority object) • ... • Each of these ADTs may be defined in many ways and variants, not necessarily equivalent. Dictionary Some data structures for Dictionary ADT • Unordered • Container of key-element (k,e) pairs – Array • Required operations: – Sequence/list • – insert( k,e ), Ordered – Array – remove( k ), – Sequence (Skip Lists) – find( k ), – Binary Search Tree (BST) – isEmpty() – AVL trees, red-black trees • May also support (when an order is provided): – (2; 4) Trees – B-Trees – closestKeyBefore( k ), • Valued – closestElemAfter( k ) – Hash Tables • Note: No duplicate keys – Extendible Hashing 3 20.09.19 Linear data structures Trees … • Hashed array Binary trees • Treap • Soft heap • Ctrie • Interval tree • BK-tree Arrays Lists • AA tree • Weight-balanced • Pairing heap • Range tree • Bounding tree • AVL tree tree • Leftist heap Multiway trees • Bin interval hierarchy • Array • Binary search • Treap • Ternary search • Kd-tree • Doubly linked list • BSP tree • Heightmap tree B-trees • Beap tree • Implicit kd-tree • Bidirectional • Binary tree • B-tree • Skew heap • And–or tree • Min/max kd-tree• Rapidly-exploring • Linked list random tree • Lookup table • Cartesian tree • B+ tree • • (a,b)-tree • map Ternary heap Adaptive k-d tree • • Pagoda • B*-tree • D-ary heap • Link/cut tree • Kdb tree Matrix • Self-organizing list • Randomized • B sharp tree • SPQR-tree • Bit array • • Quadtree Application-specific binary search • Dancing tree • Tries • Spaghetti stack • Octree trees • Parallel array tree • Bit field • Skip list • 2-3 tree • Trie • Disjoint-set data • Linear octree • Syntax tree • Red-black tree • 2-3-4 tree • Radix tree structure • Z-order • Abstract syntax • Sorted array • Rope • Bitboard • Unrolled linked list • Queap • Suffix tree • Fusion tree • UB-tree tree • Scapegoat tree • Enfilade • Sparse array • Fusion tree • Suffix array • R-tree • Parse tree • Self-balancing • Exponential tree • Bitmap • Bx-tree • Compressed • R+ tree • Decision tree • VList binary search suffix array • Fenwick tree • Alternating • Sparse matrix tree • R* tree • Circular buffer Heaps • Van Emde Boas decision tree • Splay tree • FM-index • Hilbert R-tree • Iliffe vector • Xor linked list • Heap tree • Minimax tree • Control table • T-tree • Generalised • X-tree • Binary heap suffix tree • Expectiminimax • Tango tree • Metric tree • Variable-length • Zipper • Binomial heap • B-trie tree • Image • Threaded binary • Cover tree • Fibonacci heap • Judy array Space-partitioning • Finger tree array tree • M-tree • Doubly connected edge list • AF-heap • X-fast trie trees • Dynamic array • Top tree • Segment tree • VP-tree • 2-3 heap • Y-fast trie • Gap buffer Hashes, Graphs, Other *array (memory address) Lists: Array size • Hashes Graphs • Propositional directed MAX_SIZE 0 1 size MAX_SIZE-1 • Bloom filter • Adjacency list acyclic graph 3 6 7 5 2 • Distributed hash table • Adjacency matrix • Multigraph • Hash array mapped • Graph-structured • Hypergraph trie stack • Hash list • Scene graph Other 0 1 size • Hash table • Binary decision • Lightmap 3 6 7 8 25 2 Insert 8 after L[2] • Hash tree diagram • Winged edge • Zero suppressed • Hash trie • Quad-edge 0 1 size • Koorde decision diagram • Routing table • And-inverter graph 3 6 7 8 25 2 Delete last • Prefix hash tree • Symbol table • • Directed graph • Directed acyclic graph Lists: Array Linear Lists • Access i O(1) • Insert to end O(1) • Other operations on a linear list may include: • Delete from end O(1) • Insert O(n) – determine the number of elements • Delete O(n) • Search O(n) – search the list 0 1 size – sort a list 3 6 7 8 25 2 Insert 8 after L[2] – combine two or more linear lists – split a linear list into two or more lists 0 1 size – 3 6 7 8 25 2 Delete last make a copy of a list 4 20.09.19 Linked lists Linked lists: add head tail head tail Singly linked head tail head tail Doubly linked size Linked lists: delete • Array indexed from 0 to n – 1: k = 1 1 < k < n k = n head tail (+ garbage collection?) access/change the kth element O(1) O(1) O(1) insert before or after the kth element O(n) O(n) O(1) delete the kth element O(n) O(n) O(1) • Singly-linked list with head and tail pointers k = 1 1 < k < n k = n head tail access/change the kth element O(1) O(n) O(1) insert before or after the kth element O(1) O(n) O(1)1 O(n) O(1) delete the kth element O(1) O(n) O(n) • Doubly linked list k = 1 1 < k < n k = n access/change the kth element O(1) O(n) O(1) insert before or after the kth element O(1) O(1)1 O(1) size delete the kth element O(1) O(1)1 O(1) Introduction to linked lists Introduction to linked lists: inserting a node • Consider the following struct definition • node *p; struct node { • p = new node; string word; • p->num = 5; int num; • p->word = "Ali"; node *next; //pointer for the next node • p->next = NULL }; node *p = new node; • p 5 Ali p ? ? ? num word next num word next 5 20.09.19 Introduction to linked lists: adding a new Introduction to linked lists node node *p; • How can you add another node that is pointed by p->link? p = new node; • node *p; • p = new node; p->num = 5; • p->num = 5; p->word = "Ali"; • p->word = "Ali"; • p->next = NULL; p->next = NULL; • node *q; node *q; q q • q = new node; p 5 Ali ? num word link p 5 Ali ? ? ? ? num word link num word link Introduction to linked lists Introduction to linked lists node *p, *q; node *p, *q; p = new node; p = new node; p->num = 5; p->num = 5; p->word = "Ali"; p->word = "Ali"; p->next = NULL; p->next = NULL; q = new node; q = new node; q->num=8; q->num=8; q->word = "Veli"; p->next = q; q->word = "Veli"; q->next = NULL; q q p 5 Ali ? 8 Veli ? p 5 Ali ? 8 Veli num word next num word next num word link num word link Pointers in C/C++ Book-keeping p = new node ; delete p ; • malloc, new – remember what has been p = new node[20] ; created free(p), delete (C/C++) • When you need many small areas to be p = malloc( sizeof( node ) ) ; free p ; allocated, reserve a big chunk (array) and maintain your own set of free objects • Elements of array of objects can be pointed by p = malloc( sizeof( node ) * 20 ) ; the pointer to an object.
Recommended publications
  • Pdp11-40.Pdf
    processor handbook digital equipment corporation Copyright© 1972, by Digital Equipment Corporation DEC, PDP, UNIBUS are registered trademarks of Digital Equipment Corporation. ii TABLE OF CONTENTS CHAPTER 1 INTRODUCTION 1·1 1.1 GENERAL ............................................. 1·1 1.2 GENERAL CHARACTERISTICS . 1·2 1.2.1 The UNIBUS ..... 1·2 1.2.2 Central Processor 1·3 1.2.3 Memories ........... 1·5 1.2.4 Floating Point ... 1·5 1.2.5 Memory Management .............................. .. 1·5 1.3 PERIPHERALS/OPTIONS ......................................... 1·5 1.3.1 1/0 Devices .......... .................................. 1·6 1.3.2 Storage Devices ...................................... .. 1·6 1.3.3 Bus Options .............................................. 1·6 1.4 SOFTWARE ..... .... ........................................... ............. 1·6 1.4.1 Paper Tape Software .......................................... 1·7 1.4.2 Disk Operating System Software ........................ 1·7 1.4.3 Higher Level Languages ................................... .. 1·7 1.5 NUMBER SYSTEMS ..................................... 1-7 CHAPTER 2 SYSTEM ARCHITECTURE. 2-1 2.1 SYSTEM DEFINITION .............. 2·1 2.2 UNIBUS ......................................... 2-1 2.2.1 Bidirectional Lines ...... 2-1 2.2.2 Master-Slave Relation .. 2-2 2.2.3 Interlocked Communication 2-2 2.3 CENTRAL PROCESSOR .......... 2-2 2.3.1 General Registers ... 2-3 2.3.2 Processor Status Word ....... 2-4 2.3.3 Stack Limit Register 2-5 2.4 EXTENDED INSTRUCTION SET & FLOATING POINT .. 2-5 2.5 CORE MEMORY . .... 2-6 2.6 AUTOMATIC PRIORITY INTERRUPTS .... 2-7 2.6.1 Using the Interrupts . 2-9 2.6.2 Interrupt Procedure 2-9 2.6.3 Interrupt Servicing ............ .. 2-10 2.7 PROCESSOR TRAPS ............ 2-10 2.7.1 Power Failure ..............
    [Show full text]
  • Lecture 04 Linear Structures Sort
    Algorithmics (6EAP) MTAT.03.238 Linear structures, sorting, searching, etc Jaak Vilo 2018 Fall Jaak Vilo 1 Big-Oh notation classes Class Informal Intuition Analogy f(n) ∈ ο ( g(n) ) f is dominated by g Strictly below < f(n) ∈ O( g(n) ) Bounded from above Upper bound ≤ f(n) ∈ Θ( g(n) ) Bounded from “equal to” = above and below f(n) ∈ Ω( g(n) ) Bounded from below Lower bound ≥ f(n) ∈ ω( g(n) ) f dominates g Strictly above > Conclusions • Algorithm complexity deals with the behavior in the long-term – worst case -- typical – average case -- quite hard – best case -- bogus, cheating • In practice, long-term sometimes not necessary – E.g. for sorting 20 elements, you dont need fancy algorithms… Linear, sequential, ordered, list … Memory, disk, tape etc – is an ordered sequentially addressed media. Physical ordered list ~ array • Memory /address/ – Garbage collection • Files (character/byte list/lines in text file,…) • Disk – Disk fragmentation Linear data structures: Arrays • Array • Hashed array tree • Bidirectional map • Heightmap • Bit array • Lookup table • Bit field • Matrix • Bitboard • Parallel array • Bitmap • Sorted array • Circular buffer • Sparse array • Control table • Sparse matrix • Image • Iliffe vector • Dynamic array • Variable-length array • Gap buffer Linear data structures: Lists • Doubly linked list • Array list • Xor linked list • Linked list • Zipper • Self-organizing list • Doubly connected edge • Skip list list • Unrolled linked list • Difference list • VList Lists: Array 0 1 size MAX_SIZE-1 3 6 7 5 2 L = int[MAX_SIZE]
    [Show full text]
  • Specification of Bit Handling Routines AUTOSAR CP Release 4.3.1
    Specification of Bit Handling Routines AUTOSAR CP Release 4.3.1 Document Title Specification of Bit Handling Routines Document Owner AUTOSAR Document Responsibility AUTOSAR Document Identification No 399 Document Status Final Part of AUTOSAR Standard Classic Platform Part of Standard Release 4.3.1 Document Change History Date Release Changed by Change Description 2017-12-08 4.3.1 AUTOSAR Addition on mnemonic for boolean Release as “u8”. Management Editorial changes 2016-11-30 4.3.0 AUTOSAR Removal of the requirement Release SWS_Bfx_00204 Management Updation of MISRA violation com- ment format Updation of unspecified value range for BitPn, BitStartPn, BitLn and ShiftCnt Clarifications 1 of 42 Document ID 399: AUTOSAR_SWS_BFXLibrary - AUTOSAR confidential - Specification of Bit Handling Routines AUTOSAR CP Release 4.3.1 Document Change History Date Release Changed by Change Description 2015-07-31 4.2.2 AUTOSAR Updated SWS_Bfx_00017 for the Release return type of Bfx_GetBit function Management from 1 and 0 to TRUE and FALSE Updated chapter 8.1 for the defini- tion of bit addressing and updated the examples of Bfx_SetBit, Bfx_ClrBit, Bfx_GetBit, Bfx_SetBits, Bfx_CopyBit, Bfx_PutBits, Bfx_PutBit Updated SWS_Bfx_00017 for the return type of Bfx_GetBit function from 1 and 0 to TRUE and FALSE without changing the formula Updated SWS_Bfx_00011 and SWS_Bfx_00022 for the review comments provided for the exam- ples In Table 2, replaced Boolean with boolean In SWS_Bfx_00029, in example re- placed BFX_GetBits_u16u8u8_u16 with Bfx_GetBits_u16u8u8_u16 2014-10-31 4.2.1 AUTOSAR Correct usage of const in function Release declarations Management Editoral changes 2014-03-31 4.1.3 AUTOSAR Editoral changes Release Management 2013-10-31 4.1.2 AUTOSAR Improve description of how to map Release functions to C-files Management Improve the definition of error classi- fication Editorial changes 2013-03-15 4.1.1 AUTOSAR Change return value of Test Bit API Administration to boolean.
    [Show full text]
  • RISC-V Bitmanip Extension Document Version 0.90
    RISC-V Bitmanip Extension Document Version 0.90 Editor: Clifford Wolf Symbiotic GmbH [email protected] June 10, 2019 Contributors to all versions of the spec in alphabetical order (please contact editors to suggest corrections): Jacob Bachmeyer, Allen Baum, Alex Bradbury, Steven Braeger, Rogier Brussee, Michael Clark, Ken Dockser, Paul Donahue, Dennis Ferguson, Fabian Giesen, John Hauser, Robert Henry, Bruce Hoult, Po-wei Huang, Rex McCrary, Lee Moore, Jiˇr´ıMoravec, Samuel Neves, Markus Oberhumer, Nils Pipenbrinck, Xue Saw, Tommy Thorn, Andrew Waterman, Thomas Wicki, and Clifford Wolf. This document is released under a Creative Commons Attribution 4.0 International License. Contents 1 Introduction 1 1.1 ISA Extension Proposal Design Criteria . .1 1.2 B Extension Adoption Strategy . .2 1.3 Next steps . .2 2 RISC-V Bitmanip Extension 3 2.1 Basic bit manipulation instructions . .4 2.1.1 Count Leading/Trailing Zeros (clz, ctz)....................4 2.1.2 Count Bits Set (pcnt)...............................5 2.1.3 Logic-with-negate (andn, orn, xnor).......................5 2.1.4 Pack two XLEN/2 words in one register (pack).................6 2.1.5 Min/max instructions (min, max, minu, maxu)................7 2.1.6 Single-bit instructions (sbset, sbclr, sbinv, sbext)............8 2.1.7 Shift Ones (Left/Right) (slo, sloi, sro, sroi)...............9 2.2 Bit permutation instructions . 10 2.2.1 Rotate (Left/Right) (rol, ror, rori)..................... 10 2.2.2 Generalized Reverse (grev, grevi)....................... 11 2.2.3 Generalized Shuffleshfl ( , unshfl, shfli, unshfli).............. 14 2.3 Bit Extract/Deposit (bext, bdep)............................ 22 2.4 Carry-less multiply (clmul, clmulh, clmulr)....................
    [Show full text]
  • KTS-A Memory Management Control User's Guide Digital Equipment Corporation • Maynard, Massachusetts
    --- KTS-A memory management control user's guide E K- KTOSA-U G-001 digital equipment corporation • maynard, massachusetts 1st Edition , July 1978 Copyright © 1978 by Digital Equipment Corporation The material in this manual is for informational purposes and is subject to change without notice. Digital Equipment Corporation assumes no responsibility for any errors which may appear in this manual. Printed in U.S.A. This document was set on DIGITAL's DECset-8000 com­ puterized typesetting system. The following are trademarks of Digital Equipment Corporation, Maynard, Massachusetts: DIGITAL D ECsystem-10 MASSBUS DEC DECSYSTEM-20 OMNIBUS POP DIBOL OS/8 DECUS EDUSYSTEM RSTS UNI BUS VAX RSX VMS IAS CONTENTS Page CHAPTER 1 INTRODUCTION 1 . 1 SCOPE OF MANUAL ..................................................................................................................... 1-1 1.2 GENERAL DESCRI PTION ............................................................................................................. 1-1 1 .3 KT8-A SPECIFICATION S.............................................................................................................. 1-3 1.4 RELATED DOCUMENTS ............................................................................................................... 1-4 1 .5 SOFTWARE ..................................................................................................................................... 1-5 1.5.1 Diagnostic .............................................................................................................................
    [Show full text]
  • Reference Guide for X86-64 Cpus
    REFERENCE GUIDE FOR X86-64 CPUS Version 2019 TABLE OF CONTENTS Preface............................................................................................................. xi Audience Description.......................................................................................... xi Compatibility and Conformance to Standards............................................................ xi Organization....................................................................................................xii Hardware and Software Constraints...................................................................... xiii Conventions....................................................................................................xiii Terms............................................................................................................xiv Related Publications.......................................................................................... xv Chapter 1. Fortran, C, and C++ Data Types................................................................ 1 1.1. Fortran Data Types....................................................................................... 1 1.1.1. Fortran Scalars.......................................................................................1 1.1.2. FORTRAN real(2).....................................................................................3 1.1.3. FORTRAN 77 Aggregate Data Type Extensions.................................................. 3 1.1.4. Fortran 90 Aggregate Data Types (Derived
    [Show full text]
  • The DEC PDP-8 Vectors
    The ISP of the PDP-8 Pc is about the most trivial in the book. Chapter 5 — It has only a few data operators, namely, <—,+, (negate), -j, It on A, / 2, X 2, (optional) X, /, and normalize. operates words, The DEC PDP-8 vectors. there are microcoded integers, and boolean However, instructions, which allow compound instructions to be formed in Introduction 1 a single instruction. is the levels dis- The PDP-8 is a single-address, 12-bit-word computer of the second The computer straightforward and illustrates 1. look at it from the down." generation. It is designed for task environments with minimum cussed in Chap. We can easily "top arithmetic computing and small Mp requirements. For example, The C in PMS notation is it can be used to control laboratory devices, such as gas chromoto- 12 graphs or sampling oscilloscopes. Together with special T's, it is C('PDP-8; technology:transistors; b/w; programmed to be a laboratory instrument, such as a pulse height descendants:'PDP-8/S, 'PDP-8/I, 'PDP-8/L; antecedents: 'PDP-5; analyzer or a spectrum analyzer. These applications are typical Mp(core; #0:7; 4096 w; tc:1.5 /is/w); of the laboratory and process control requirements for which the ~ 4 it Pc(Mps(2 w); machine was designed. As another example, can serve as a instruction length:l|2 w message concentrator by controlling telephone lines to which : 1 address/instruction ; occasion- typewriters and Teletypes are attached. The computer operations on data/od:(<— , +, —\, A, —(negate), X 2, stands alone as a small-scale general-purpose computer.
    [Show full text]
  • COSC 6385 Computer Architecture Instruction Set Architectures
    COSC 6385 Computer Architecture Instruction Set Architectures Edgar Gabriel Spring 2011 Edgar Gabriel Instruction Set Architecture (ISA) • Definition on Wikipedia: “Part of the Computer Architecture related to programming” • Defines – set of operations, – instruction format, – hardware supported data types, – named storage, – addressing modes, – sequencing • Includes a specification of the set of opcodes (machine language) - native commands implemented by a particular CPU design COSC 6385 – Computer Architecture Edgar Gabriel Instruction Set Architecture (II) • ISA to be distinguished from the micro-architecture – set of processor design techniques used to implement an ISA • Example: Intel Pentium and AMD Athlon support a nearly identical ISA, but have completely different micro-architecture COSC 6385 – Computer Architecture Edgar Gabriel ISA Specification • Relevant features for distinguishing ISA’s – Internal storage – Memory addressing – Type and size of operands – Operations – Instructions for Flow Control – Encoding of the IS COSC 6385 – Computer Architecture Edgar Gabriel Internal storage • Stack architecture: operands are implicitly on the top of the stack • Accumulator architecture: one operand is implicitly the accumulator • General purpose register architectures: operands have to be made available by explicit load operations – Dominant form in today’s systems COSC 6385 – Computer Architecture Edgar Gabriel Internal storage (II) • Example: C= A+B Stack: Accumulator: Load-Store: Push A Load A Load R1,A Push B Add B Load R2,B Add
    [Show full text]
  • System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.98
    System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.98 Edited by Michael Matz1, Jan Hubickaˇ 2, Andreas Jaeger3, Mark Mitchell4 September 27, 2006 [email protected] [email protected] [email protected] [email protected] AMD64 ABI Draft 0.98 – September 27, 2006 – 9:24 Contents 1 Introduction 8 2 Software Installation 9 3 Low Level System Information 10 3.1 Machine Interface . 10 3.1.1 Processor Architecture . 10 3.1.2 Data Representation . 10 3.2 Function Calling Sequence . 13 3.2.1 Registers and the Stack Frame . 14 3.2.2 The Stack Frame . 14 3.2.3 Parameter Passing . 15 3.3 Operating System Interface . 22 3.3.1 Exception Interface . 22 3.3.2 Virtual Address Space . 22 3.3.3 Page Size . 24 3.3.4 Virtual Address Assignments . 24 3.4 Process Initialization . 25 3.4.1 Initial Stack and Register State . 25 3.4.2 Thread State . 29 3.4.3 Auxiliary Vector . 29 3.5 Coding Examples . 31 3.5.1 Architectural Constraints . 32 3.5.2 Conventions . 34 3.5.3 Position-Independent Function Prologue . 35 3.5.4 Data Objects . 36 3.5.5 Function Calls . 44 3.5.6 Branching . 46 1 AMD64 ABI Draft 0.98 – September 27, 2006 – 9:24 3.5.7 Variable Argument Lists . 49 3.6 DWARF Definition . 54 3.6.1 DWARF Release Number . 54 3.6.2 DWARF Register Number Mapping . 54 3.7 Stack Unwind Algorithm . 54 4 Object Files 58 4.1 ELF Header . 58 4.1.1 Machine Information .
    [Show full text]
  • Accessing Tms320c54x Memory-Mapped Registers in C-C54xregs.H
    TMS320 DSP DESIGNER’S NOTEBOOK Accessing TMS320C54x Memory-Mapped Registers in C– C54XREGS.H APPLICATION BRIEF: SPRA260 Leor Brenman Digital Signal Processing Products Semiconductor Group Texas Instruments May 1994 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any semiconductor product or service without notice, and advises its customers to obtain the latest version of relevant information to verify, before placing orders, that the information being relied on is current. TI warrants performance of its semiconductor products and related software to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. Certain application using semiconductor products may involve potential risks of death, personal injury, or severe property or environmental damage (“Critical Applications”). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. Inclusion of TI products in such applications is understood to be fully at the risk of the customer. Use of TI products in such applications requires the written approval of an appropriate TI officer. Questions concerning potential risk applications should be directed to TI through a local SC sales office. In order to minimize risks associated with the customer’s applications, adequate design and operating safeguards should be provided by the customer to minimize inherent or procedural hazards.
    [Show full text]
  • MINICOMPUTER CONCEPTS by BENEDICTO CACHO Bachelor Of
    MINICOMPUTER CONCEPTS By BENEDICTO CACHO II Bachelor of Science Southeastern Oklahoma State University Durant, Oklahoma 1973 Submitted to the Faculty of the Graduate College of the Oklahoma State University in partial fulfillment of the requirements for the Degre~ of MASTER OF SCIENCE July, 1976 . -<~ .i;:·~.~~·:-.~?. '; . .- ·~"' . ~ ' .. .• . ~ . .. ' . ,. , .. J:. MINICOMPUTER CONCEPTS Thesis Approved: fl. F. w. m wd/ I"'' ') 2 I"' e.: 9 tl d I a i. i PREFACE This thesis presents a study of concepts used in the design of minicomputers currently on the market. The material is drawn from research on sixteen minicomputer systems. I would like to thank my major adviser, Dr. Donald D. Fisher, for his advice, guidance, and encouragement, and other committee members, Dr. George E. Hedrick and Dr. James Van Doren, for their suggestions and assistance. Thanks are also due to my typist, Sherry Rodgers, for putting up with my illegible rough draft and the excessive number of figures, and to Dr. Bill Grimes and Dr. Doyle Bostic for prodding me on. Finally, I would like to thank members of my family for seeing me through it a 11 . iii TABLE OF CONTENTS Chapter Page I. INTRODUCTION 1 Objective ....... 1 History of Minicomputers 2 II. ELEMENTS OF MINICOMPUTER DESIGN 6 Introduction 6 The Processor . 8 Organization 8 Operations . 12 The Memory . 20 Input/Output Elements . 21 Device Controllers .. 21 I/0 Operations . 22 III. GENERAL SYSTEM DESIGNS ... 25 Considerations ..... 25 General Processor Designs . 25 Fixed Purpose Register Design 26 General Purpose Register Design 29 Multi-accumulator Design 31 Microprogramm1ng 34 Stack Structures 37 Bus Structures . 39 Typical System Options 41 IV.
    [Show full text]
  • 6.172 Performance Engineering of Software Systems, Lecture 3: Bit Hacks
    6.172 Performance !"##$* Engineering %&'&( of Software Systems "#)*+)$#)*+,*-./01* LECTURE 3 ! Bit Hacks Julian Shun 1 © 2008–2018 by the MIT 6.172 Lecturers Binary Representation Let x = ⟨xw–1xw–2…xO⟩ be a w-bit computer word. The x unsigned integer value stored in is Ob Y The prefix M designates a Z ZM Y M਷į Boolean constant. For example, the 8-bit word Ob1OO1O11O represents ం the unsigned value 15O = 2 + 4 + 16 + 128. The signed integer (two’s complement) value stored in x is sign bit Y M Y Z ZM ZY Y M਷į ਷ ਷ For example, theৃ 8-ంbit wordৄ਷ Ob1OO1O11O 1O6 2 4 16 128 represents the signed value – = + + – . 2 © 2008–2018 by the MIT 6.172 Lecturers Two’s Complement We have ObOO…O = O. What is the value of x = Ob11...1? Y M Y Z ZM ZY M਷į ਷ Y ਷ ৃం M ৄ਷Y M਷į ਷ Y Y ৃం ৄ਷ ਷ Y ਷ ਷ ਷ 3 © 2008–2018 by the MIT 6.172 Lecturers਷ Complementary Relationship Important identity Since we have x + ~x = -1, it follows that -x = ~x + 1. Example x = ObO11O11OOO ~x = Ob1OO1OO111 –x = Ob1OO1O1OOO 4 © 2008–2018 by the MIT 6.172 Lecturers Binary and Hexadecimal Decimal Hex Binary Decimal Hex Binary !! !!!! "" #!!! ## !!!# $ $ #!!# %% !!#! #! & #!#! '' !!## ## ( #!## )) !#!! #% * ##!! The prefix !1 + !#!# #' , ##!# designates a - !##! #) . ###! hex constant. / !### #+ 0 #### To translat from hex to binary, translate each hex digit to its binary equivalent, and concatenate the bits. Example: 0xDEC1DE2CODE4F00D is įįįįįįįįįįįįįįįįįįįįįįįįįįįįįįįį &'%&'%į&'(įį& 5 © 2008।।।।।।।।।।।।।।।।–2018 by the MIT 6.172 Lecturers C Bitwise Operators Operator Description & AND | OR ^ XOR (exclusive OR) ~ NOT (one’s complement) << shift left >> shift right Examples (8-bit word) A = Ob1O11OO11 B = ObO11O1OO1 A&B = ObOO1OOOO1 ~A = ObO1OO11OO A|B = Ob11111O11 A >> 3 = ObOOO1O11O A^B = Ob11O11O1O A << 2 = Ob11OO11OO 6 © 2008–2018 by the MIT 6.172 Lecturers Set the kth Bit Problem Set !th bit in a word "%to #.
    [Show full text]