Memory and Its Data

Total Page:16

File Type:pdf, Size:1020Kb

Memory and Its Data University of Washington Computer Systems CSE 410 Autumn 2013 4 – Memory and its Data Memory 1 University of Washington Memory, Data, and Addressing Preliminaries Representing information as bits and bytes Organizing and addressing data in memory Manipulating data in memory using C Memory 2 University of Washington Hardware: Logical View CPU Memory Bus Disks Net USB Etc. Memory 3 University of Washington Memory We know that information is represented using bit strings ▪ Terminology ▪ Byte: 8 bits ▪ Word: the “natural size” for the processor – Usually 32 or 64 bits Data represenations ▪ An integer might require 4 bytes to represent ▪ A long integer 8 ▪ A character might take one or two bytes ▪ An image might take millions of bytes Places we store values are called memory Memory 4 University of Washington Computer System Memory The Central Processing Unit (CPU) manipulates information ▪ It can add, subtract, and, or, etc. ▪ It can compare and branch Basic system architecture: Example: 16GB Main DDR4-2400 CPU Memory (2400x8=19,200 MB/sec) Example: Core i5-8400 2.8GHz, 6 cores, 6 threads Memory 5 University of Washington Memory is slow Registers Main CPU Memory There are a very limited number of registers (often 16) The “programmer” (compiler) is aware of the registers Instructions load memory into a register and store a register into memory Memory 6 University of Washington Caches (later in the course) Cache Main CPU Memory Caches are managed by the hardware ▪ They’re transparent to the program Both registers and caches address latency: the delay from when a request is made and the first bit becomes available Memory 7 University of Washington Basic CPU Operation “Machine instructions” are bit strings ▪ We’ll look in more detail in a bit The feel of machine instructions ▪ load an integer from memory into register 2 ▪ load another integer from memory into register 3 ▪ set reg 3 = reg 2 + reg 3 The “Program Counter” (PC) contains the address of the next instruction to execute Basic CPU operation loop: ▪ Fetch the instruction pointed at by the PC ▪ Increment the PC to point to the next instruction ▪ Execute the instruction just fetched Memory 8 University of Washington Byte-Oriented Memory Organization • • • Programs refer to addresses ▪ Conceptually, a very large array of bytes, each with an address (index) ▪ System provides an address space private to each “process” ▪ Process = program being executed + its data + its “state” ▪ Program can clobber its own data, but not that of others ▪ Clobbering code or “state” often leads to crashes (or security holes) Compiler + run-time system control memory allocation ▪ Where different program objects should be stored ▪ All allocation within a single address space Memory 9 University of Washington Machine Words Machine has a “word size” ▪ Nominal size of integer-valued data ▪ Including addresses ▪ Until recently, most machines used 32 bits (4 bytes) words ▪ Limits addresses to 4GB ▪ Became too small for memory-intensive applications ▪ More recent and high-end systems use 64 bits (8 bytes) words ▪ Potential address space 1.8 X 1019 bytes (18 EB – exabytes) ▪ x86-64 supports 48-bit physical addresses: 256 TB (terabytes) ▪ For backward-compatibility, many CPUs support different word sizes ▪ Always a power-of-2 in the number of bytes: 1, 2, 4, 8, … Memory 10 University of Washington Word-Oriented Memory Organization 64-bit 32-bit Bytes Addr. Addresses specify Words Words locations of bytes in memory 0000 Addr ▪ Address of first byte in word = 0001 ?? 0002 ▪ Addresses of successive words Addr differ by 4 (32-bit) or 8 (64-bit) = 0003 ?? 0004 ▪ Address of word 0, 1, .. 10? Addr = 0005 ?? 0006 0007 0008 Addr = 0009 ?? Addr 0010 = 0011 ?? 0012 Addr = 0013 ?? 0014 0015 Memory 11 University of Washington Word-Oriented Memory Organization 64-bit 32-bit Bytes Addr. Addresses specify Words Words locations of bytes in memory 0000 Addr ▪ Address of first byte in word = 0001 0000?? 0002 ▪ Addresses of successive words Addr differ by 4 (32-bit) or 8 (64-bit) = 0003 0000?? 0004 ▪ Address of word 0, 1, .. 10? Addr = 0005 0004?? 0006 0007 0008 Addr = 0009 0008?? Addr 0010 = 0011 0008?? 0012 Addr = 0013 0012?? 0014 0015 Memory 12 University of Washington Memory, Data, and Addressing Preliminaries Representing information as bits and bytes Organizing and addressing data in memory Manipulating data in memory using C Memory 13 University of Washington Addresses and Pointers Address is a location in memory Pointer is a data object that contains an address Here address 0004 0000 stores the value 351 (or 15F16) 00 00 01 5F 0004 0008 000C 0010 0014 0018 001C 0020 0024 Memory 14 University of Washington Addresses and Pointers Address is a location in memory Pointer is a data object that contains an address Address 0004 0000 stores the value 351 (or 15F16) 00 00 01 5F 0004 Pointer to address 0004 0008 stored at address 001C 000C 0010 0014 0018 00 00 00 04 001C 0020 0024 Memory 15 University of Washington Addresses and Pointers Address is a location in memory Pointer is a data object that contains an address Address 0004 0000 stores the value 351 (or 15F16) 00 00 01 5F 0004 Pointer to address 0004 0008 stored at address 001C 000C 0010 Pointer to a pointer 0014 in 0024 0018 00 00 00 04 001C 0020 00 00 00 1C 0024 Memory 16 University of Washington Addresses and Pointers Address is a location in memory Pointer is a data object that contains an address Address 0004 0000 stores the value 351 (or 15F16) 00 00 01 5F 0004 Pointer to address 0004 0008 stored at address 001C 000C 0010 Pointer to a pointer 00 00 00 0C 0014 in 0024 0018 Address 0014 00 00 00 04 001C stores the value 12 0020 00 00 00 1C 0024 ▪ Is it a pointer? Memory 17 University of Washington Pointers Q: What makes some bit string a pointer? A: That we use it as one Q: What makes some bit string an integer? A: That we use it as one. Memory 18 University of Washington Byte Ordering How should bytes within multi-byte word be ordered in memory? Say you want to store 0xaabbccdd ▪ What order will the four bytes 0xaa, 0xbb, 0xcc, and 0xdd be stored? Memory 19 University of Washington Byte Ordering How should bytes within multi-byte word be ordered in memory? Say you want to store 0xaabbccdd ▪ What order will the bytes be stored? Endianness: big endian vs. little endian ▪ Two different conventions, used by different architectures ▪ Origin: Gulliver’s Travels (see CS:APP2 textbook, section 2.1) Memory 20 University of Washington Byte Ordering Example Big-Endian (Internet) ▪ Least significant byte has highest address Little-Endian (x86) ▪ Least significant byte has lowest address Example ▪ Variable has 4-byte representation 0x01234567 ▪ Address of variable is 0x100 0x100 0x101 0x102 0x103 Big Endian 01 23 45 67 0x100 0x101 0x102 0x103 Little Endian 67 45 23 01 Memory 21 University of Washington Memory, Data, and Addressing Preliminaries Representing information as bits and bytes Organizing and addressing data in memory Manipulating data in memory using C Memory 22 University of Washington & = ‘address of value’ Addresses and Pointers in C * = ‘value at address’ or ‘dereference’ Variable declarations ▪ int x, y; ▪ Finds two locations in memory in which to store 2 integers (1 word each) Pointer declarations use * ▪ int *ptr; ▪ Declares a variable ptr that is a pointer to a data item that is an integer Assignment to a pointer ▪ ptr = &x; ▪ Assigns ptr to point to the address where x is stored ▪ (stores the address of x in ptr) Memory 23 University of Washington & = ‘address of value’ Addresses and Pointers in C * = ‘value at address’ or ‘dereference’ To use the value pointed to by a pointer we use dereference (*) ▪ Given a pointer, we can get the value it points to by using the * operator ▪ *ptr is the value at the memory address given by the value of ptr Examples ▪ If ptr = &x then y = *ptr + 1 is the same as y = x + 1 ▪ If ptr = &y then y = *ptr + 1 is the same as y = y + 1 ▪ What is *(&x) equivalent to? Memory 24 University of Washington & = ‘address of value’ Addresses and Pointers in C * = ‘value at address’ or ‘dereference’ C allows us to do arithmetic on pointers ▪ ptr = ptr + 1; // really adds 4: type of ptr is int*, and an int uses 4 bytes! ▪ Changes the value of the pointer so that it now points to the next data item in memory (that may be y, or it may not – this is dangerous!) Memory 25 University of Washington Assignment in C Left-hand-side = right-hand-side ▪ LHS must evaluate to a memory LOCATION ▪ RHS must evaluate to a VALUE (could be an address) E.g., x at location 0x04, y at 0x18 ▪ x originally 0x0, y originally 0x3CD02700 0000 00 00 00 00 0004 0008 000C 0010 0014 00 27 D0 3C 0018 001C 0020 0024 Memory 26 University of Washington Assignment in C Left-hand-side = right-hand-side ▪ LHS must evaluate to a memory LOCATION ▪ RHS must evaluate to a VALUE (could be an address) E.g., x at location 0x04, y at 0x18 ▪ x originally 0x0, y originally 0x3CD02700 0000 00 00 00 00 0004 ▪ int x, y; 0008 x = y + 3; //get value at y, add 3, put it in x 000C 0010 0014 00 27 D0 3C 0018 001C 0020 0024 Memory 27 University of Washington Assignment in C Left-hand-side = right-hand-side ▪ LHS must evaluate to a memory LOCATION ▪ RHS must evaluate to a VALUE (could be an address) E.g., x at location 0x04, y at 0x18 ▪ x originally 0x0, y originally 0x3CD02700 0000 03 27 D0 3C 0004 ▪ int x, y; 0008 x = y + 3; //get value at y, add 3, put it in x 000C 0010 0014 00 27 D0 3C 0018 001C 0020 0024 Memory 28 University
Recommended publications
  • 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]
  • Real-Time Embedded Systems
    Real-Time Embedded Systems Ch3: Microprocessor Objectives Microprocessor Characteristics Von Neumann and Harvard architectures I/O Addressing Endianness Memory organization of some classic microprocessors ◦ PIC18F8720 ◦ Intel 8086 ◦ Intel Pentium ◦ Arm X. Fan: Real-Time Embedded Systems 2 Some microprocessors used in embedded systems 3 Microprocessor Architectures Von Neumann Architecture ◦ Data and instructions (executable code) are stored in the same address space. ◦ The processor interfaces to memory through a single set of address/data buses. Harvard Architecture ◦ Data and instructions (executable code) are stored in separate address spaces. ◦ There are two sets of address/data buses between processor and memory. Complex Instruction Set Computer (CISC) ◦ runs “complex instructions“ where a single instruction may execute several low-level operations Reduced Instruction Set Computer (RISC) ◦ runs compact, uniform instructions where the amount of work any single instruction accomplishes is reduced. 4 Other Stuff Processing Width ◦ Width ◦ Word I/O Addressing ◦ Special instruction vs memory mapped Reset Vector ◦ Intell – high end of address space ◦ PIC/ and Motorolla (Frescale, NXT….) low ◦ Arm definable ◦ Why put it on end or the other? X. Fan: Real-Time Embedded Systems 5 Endianness VS 6 Endianness Whether integers are presented from left to right or right to left ◦ Little-endian: the least significant byte stored at the lowest memory address ◦ Big-endian: the most significant byte stored at the lowest memory address 7 System Convention Be internally consistent ◦ Endianness ◦ Data formats ◦ Protocols ◦ Units Do conversion ASAP and ALAP ◦ On and off the wire X. Fan: Real-Time Embedded Systems 8 PIC18F8720 9 PIC18F8720: Memory organization 10 PIC18F8720: EMI Operating mode: Word Write Mode This mode allows instruction fetches and table reads from, and table writes to, all forms of 16-bit (word-wide) external memories.
    [Show full text]
  • Lecture #2 "Computer Systems Big Picture"
    18-600 Foundations of Computer Systems Lecture 2: “Computer Systems: The Big Picture” John P. Shen & Gregory Kesden 18-600 August 30, 2017 CS: AAP CS: APP ➢ Recommended Reference: ❖ Chapters 1 and 2 of Shen and Lipasti (SnL). ➢ Other Relevant References: ❖ “A Detailed Analysis of Contemporary ARM and x86 Architectures” by Emily Blem, Jaikrishnan Menon, and Karthikeyan Sankaralingam . (2013) ❖ “Amdahl’s and Gustafson’s Laws Revisited” by Andrzej Karbowski. (2008) 8/30/2017 (©J.P. Shen) 18-600 Lecture #2 1 18-600 Foundations of Computer Systems Lecture 2: “Computer Systems: The Big Picture” 1. Instruction Set Architecture (ISA) a. Hardware / Software Interface (HSI) b. Dynamic / Static Interface (DSI) c. Instruction Set Architecture Design & Examples 2. Historical Perspective on Computing a. Major Epochs of Modern Computers b. Computer Performance Iron Law (#1) 3. “Economics” of Computer Systems a. Amdahl’s Law and Gustafson’s Law b. Moore’s Law and Bell’s Law 8/30/2017 (©J.P. Shen) 18-600 Lecture #2 2 Anatomy of Engineering Design SPECIFICATION: Behavioral description of “What does it do?” Synthesis: Search for possible solutions; pick best one. Creative process IMPLEMENTATION: Structural description of “How is it constructed?” Analysis: Validate if the design meets the specification. “Does it do the right thing?” + “How well does it perform?” 8/30/2017 (©J.P. Shen) 18-600 Lecture #2 3 [Gerrit Blaauw & Fred Brooks, 1981] Instruction Set Processor Design ARCHITECTURE: (ISA) programmer/compiler view = SPECIFICATION • Functional programming model to application/system programmers • Opcodes, addressing modes, architected registers, IEEE floating point IMPLEMENTATION: (μarchitecture) processor designer view • Logical structure or organization that performs the ISA specification • Pipelining, functional units, caches, physical registers, buses, branch predictors REALIZATION: (Chip) chip/system designer view • Physical structure that embodies the implementation • Gates, cells, transistors, wires, dies, packaging 8/30/2017 (©J.P.
    [Show full text]
  • KVM on POWER7
    Developments in KVM on Power Paul Mackerras, IBM LTC OzLabs [email protected] Outline . Introduction . Little-endian support . OpenStack . Nested virtualization . Guest hotplug . Hardware error detection and recovery 2 21 October 2013 © 2013 IBM Introduction • We will be releasing POWER® machines with KVM – Announcement by Arvind Krishna, IBM executive • POWER8® processor disclosed at Hot Chips conference – 12 cores per chip, 8 threads per core – 96kB L1 cache, 512kB L2 cache, 8MB L3 cache per core on chip u u Guest Guest m host OS process m e e OS OS q host OS process q host OS process KVM Host Linux Kernel SAPPHIRE FSP POWER hardware 3 21 October 2013 © 2013 IBM Introduction • “Sapphire” firmware being developed for these machines – Team led by Ben Herrenschmidt – Successor to OPAL • Provides initialization and boot services for host OS – Load first-stage Linux kernel from flash – Probe the machine and set up device tree – Petitboot bootloader to load and run the host kernel (via kexec) • Provides low-level run-time services to host kernel – Communication with the service processor (FSP) • Console • Power and reboot control • Non-volatile memory • Time of day clock • Error logging facilities – Some low-level error detection and recovery services 4 21 October 2013 © 2013 IBM Little-endian Support • Modern POWER CPUs have a little-endian mode – Instructions and multi-byte data operands interpreted in little-endian byte order • Lowest-numbered byte is least significant, rather than most significant – “True” little endian, not address swizzling
    [Show full text]
  • EECS 373 Design of Microprocessor-Based Systems
    EECS 373 Design of Microprocessor-Based Systems Website: https://www.eecs.umich.edu/courses/eecs373/ Robert Dick University of Michigan Lecture 1: Introduction, ARM ISA September 6 2017 Many slides from Mark Brehob Teacher Robert Dick http://robertdick.org/ [email protected] EECS Professor Co-founder, CEO of profitable direct- to-consumer athletic wearable electronics company (Stryd) Visiting Professor at Tsinghua Univeristy Graduate studies at Princeton Visiting Researcher at NEC Labs, America, where technology went into their smartphones ~100 research papers on embedded system design Lab instructor Matthew Smith [email protected] Head lab instructor 15 years of 373 experience He has seen it before … but he’ll make you figure it out yourself TAs Took EECS 373 Jon Toto <[email protected]> Brennan Garrett <[email protected]> Thomas Deeds <[email protected]> Melinda Kothbauer <[email protected]> Course goals Embedded system design Debugging complex systems Communication and marketing A head start on a new product or research idea What is an embedded system? An (application-specific) computer within something else that is not generally regarded as a computer. Embedded, everywhere Embedded systems market Dominates general-purpose computing market in volume. Similar in monetary size to general-purpose computing market. Growing at 15% per year, 10% for general- purpose computing. Car example: half of value in embedded electronics, from zero a few decades ago. Common requirements Timely (hard real-time) Wireless Reliable
    [Show full text]
  • EECS 373 Design of Microprocessor-Based Systems
    EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 2: Architecture, Assembly, and ABI January 13, 2015 Slides developed in part by Mark Brehob 1 Announcements • Website up – http://www.eecs.umich.edu/~prabal/teaching/eecs373/ • Homework 2 posted (mostly a 370 review) • Lab and office hours posted on-line. – My office hours: Thursday 3:00-4:00 pm in 4773 BBB • Projects – Start thinking about them now! 2 Today… Finish ARM assembly example from last time Walk though of the ARM ISA Software Development Tool Flow Application Binary Interface (ABI) 3 Major elements of an Instruction Set Architecture (registers, memory, word size, endianess, conditions, instructions, addressing modes) 32-bits 32-bits ! !mov!r0,!#4! ! !ldr!r1,![r0,#8]! ! !!!!!!r1=mem((r0)+8)! ! !bne!loop! ! !subs!r2,!#1! Endianess Endianess 4 The endianess religious war: 288 years and counting! • Modern version • Little-Endian – Danny Cohen – LSB is at lower address !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Memory!!!!!Value! – IEEE Computer, v14, #10 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Offset!!(LSB)!(MSB)! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!======!!===========! uint8_t!a!!=!1;!!!!!!!!!!!!!!!0x0000!!01!02!FF!00! – Published in 1981 uint8_t!b!!=!2;! uint16_t!c!=!255;!//!0x00FF! – Satire on CS religious war uint32_t!d!=!0x12345678;!!!!!!0x0004!!78!56!34!12! • Historical Inspiration • Big-Endian – Jonathan Swift – MSB is at lower address !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Memory!!!!!Value! – Gulliver's Travels !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Offset!!(LSB)!(MSB)! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!======!!===========!
    [Show full text]
  • Lecture 01.1: Organization & Introduction
    Organization Organization 2 Organization Course Goals Learn to write good C++ • Basic syntax • Common idioms and best practices Learn to implement large systems with C++ • C++ standard library and Linux ecosystem • Tools and techniques (building, debugging, etc.) Learn to write high-performance code with C++ • Multithreading and synchronization • Performance pitfalls 3 Organization Formal Prerequisites Knowledge equivalent to the lectures • Introduction to Informatics 1 (IN0001) • Fundamentals of Programming (IN0002) • Fundamentals of Algorithms and Data Structures (IN0007) Additional formal prerequisites (B.Sc. Informatics) • Introduction to Computer Architecture (IN0004) • Basic Principles: Operating Systems and System Software (IN0009) Additional formal prerequisites (B.Sc. Games Engineering) • Operating Systems and Hardware oriented Programming for Games (IN0034) 4 Organization Practical Prerequisites Practical prerequisites • No previous experience with C or C++ required • Familiarity with another general-purpose programming language Operating System • Working Linux operating system (e.g. Ubuntu) • Basic experience with Linux (in particular with shell) • You are free to use your favorite OS, we only support Linux 5 Organization Lecture & Tutorial • Lecture: Tuesday, 14:00 – 16:00, MI 02.11.018 • Tutorial: Friday, 10:00 – 12:00, MI 02.11.018 • Discuss assignments and any questions • First two tutorials are additional lectures • Attendance is mandatory • Announcements on the website and Mattermost 6 Organization Assignments • Brief
    [Show full text]
  • Guidelines for Integrating Device Drivers in the ASSERT Virtual Machine
    Reference: VMLAB-UPM-TR1 Date: 15/09/2009 Issue: 1.5 Page: 1 of 85 ESTEC/Contract No. 21392/08/NL/JK Guidelines for integrating device drivers in the ASSERT Virtual Machine Output of WP 300 Written by: Organization Date Juan Zamorano, Jorge Lopez,´ Juan A. de la Puente UPM 15/09/2009 Revised by: Organization Date Juan A. de la Puente UPM 15/09/2009 Tullio Vardanega UPD 15/09/2009 Accepted by: Organization Date Maxime Perrotin ESTEC 22/09/2009 Reference: VMLAB-UPM-TR1 Date: 15/09/2009 Issue: 1.5 Document Change Record Issue/Revision Date Change Author 1.0 22/12/2008 First version for review J. Zamorano, J, Lopez´ 1.1 15/01/2009 Revised as per review comments J. Zamorano, J, Lopez´ 1.2 06/05/2009 Minor changes in section 2 J. Zamorano, J, Lopez´ 1.3 24/07/2009 Draft version for final review J.A. de la Puente, J. Zamorano 1.4 29/07/2009 Revised version for final review J.A. de la Puente, J. Zamorano 1.5 15/09/2009 Final version for acceptance review J.A. de la Puente, J. Zamorano VMlab-UPM-TR1 Last Modified on: September 23, 2009 page 2 of 85 Reference: VMLAB-UPM-TR1 Date: 15/09/2009 Issue: 1.5 Abstract This document contains a set of guidelines for extending the ASSERT Virtual Machine kernel with device drivers. The real-time kernel is a version of ORK+, the Open Ravenscar real-time Kernel, which supports the Ada Raven- scar profile as defined in the current Ada 2005 standard.
    [Show full text]
  • User Guide Ecos User Guide Copyright © 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc
    eCos User Guide eCos User Guide Copyright © 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc. Documentation licensing terms This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder. Trademarks Altera® and Excalibur™ are trademarks of Altera Corporation. AMD® is a registered trademark of Advanced Micro Devices, Inc. ARM®, StrongARM®, Thumb®, ARM7™, ARM9™ is a registered trademark of Advanced RISC Machines, Ltd. Cirrus Logic® and Maverick™ are registered trademarks of Cirrus Logic, Inc. Cogent™ is a trademark of Cogent Computer Systems, Inc. Compaq® is a registered trademark of the Compaq Computer Corporation. Fujitsu® is a registered trademark of Fujitsu Limited. IBM®, and PowerPC™ are trademarks of International Business Machines Corporation. IDT® is a registered trademark of Integrated Device Technology Inc. Intel®, i386™, Pentium®, StrataFlash® and XScale™ are trademarks of Intel Corporation. Intrinsyc® and Cerf™ are trademarks of Intrinsyc Software, Inc. Linux® is a registered trademark of Linus Torvalds. Matsushita™ and Panasonic® are trademarks of the Matsushita Electric Industrial Corporation. Microsoft®, Windows®, Windows NT® and Windows XP® are registered trademarks of Microsoft Corporation, Inc. MIPS®, MIPS32™ MIPS64™, 4K™, 5K™ Atlas™ and Malta™ are trademarks of MIPS Technologies, Inc. Motorola®, ColdFire® is a trademark of Motorola, Inc. NEC® V800™, V850™, V850/SA1™, V850/SB1™, VR4300™, and VRC4375™ are trademarks of NEC Corporation.
    [Show full text]
  • PIC32 Family Reference Manual
    Section 2. CPU for Devices with M4K® Core HIGHLIGHTS This section of the manual contains the following topics: 2 CPU for Devices 2.1 Introduction................................................................................................................2-2 with M4K 2.2 Architecture Overview ............................................................................................... 2-3 2.3 PIC32 CPU Details .................................................................................................... 2-6 2.4 Special Considerations When Writing to CP0 Registers ......................................... 2-11 2.5 Architecture Release 2 Details ................................................................................ 2-12 ® Core 2.6 Split CPU bus .......................................................................................................... 2-12 2.7 Internal System Busses........................................................................................... 2-13 2.8 Set/Clear/Invert........................................................................................................ 2-13 2.9 ALU Status Bits........................................................................................................ 2-14 2.10 Interrupt and Exception Mechanism ........................................................................ 2-14 2.11 Programming Model ................................................................................................ 2-14 2.12 Coprocessor 0 (CP0) Registers..............................................................................
    [Show full text]
  • Computer Systems and Networks ECPE 170 – University of the Pacific
    Computer Systems and Networks ECPE 170 – University of the Pacific Endianness 2 Lab Schedule Activities Assignments Due This Week Tuesday Nov 5th Lab 9 – Endianness Lab 8 due by 11:59pm Next Week… and Beyond! Tuesday Nov 12th Assembly Programming Lab 9 due by 11:59pm (Labs 10 & 11) Computer Systems and Networks Fall 2013 3 Endianness In typical computer memory, each address (location) stores one byte If we have a one-byte integer, how is that stored in memory? If we have a two-byte integer, how is that stored in memory? If we have a four-byte integer, how is that stored in memory? Endianness = Byte Ordering Computer Systems and Networks Fall 2013 4 Endianness Example Address “Option A” “Option B” 32 -bit hexadecimal number 0x12345678 0 0x12 0x78 Composed of 4 bytes: 0x12 0x34 0x56 0x78 (MSB) (LSB) 1 0x34 0x56 Two possible arrangements: 2 0x56 0x34 3 0x78 0x12 Computer Systems and Networks Fall 2013 5 Endianness Example Address Big Little 32 -bit hexadecimal number Endian Endian 0x12345678 0 0x12 0x78 Composed of 4 bytes: (MSB) (LSB) 0x12 0x34 0x56 0x78 (MSB) (LSB) 1 0x34 0x56 Two possible arrangements: 2 Big Endian 0x56 0x34 Little Endian 3 0x78 0x12 Computer Systems and Networks Fall 2013 6 Endianness How is DEADBEEF16 stored in little and big endian formats at address 21C16? Little endian 21C16=EF16 21D16=BE16 21E16 =AD16 21F16=DE16 Big endian 21C16=DE16 21D16=AD16 21E16 =BE16 21F16=EF16 Computer Systems and Networks Fall 2013 7 Big Endian –vs– Little Endian Big-Endian CPU Little-Endian CPU Most significant
    [Show full text]
  • Parallel Architecture Hardware and General Purpose Operating System
    Parallel Architecture Hardware and General Purpose Operating System Co-design Oskar Schirmer G¨ottingen, 2018-07-10 Abstract Because most optimisations to achieve higher computational performance eventually are limited, parallelism that scales is required. Parallelised hard- ware alone is not sufficient, but software that matches the architecture is required to gain best performance. For decades now, hardware design has been guided by the basic design of existing software, to avoid the higher cost to redesign the latter. In doing so, however, quite a variety of supe- rior concepts is excluded a priori. Consequently, co-design of both hardware and software is crucial where highest performance is the goal. For special purpose application, this co-design is common practice. For general purpose application, however, a precondition for usability of a computer system is an arXiv:1807.03546v1 [cs.DC] 10 Jul 2018 operating system which is both comprehensive and dynamic. As no such op- erating system has ever been designed, a sketch for a comprehensive dynamic operating system is presented, based on a straightforward hardware architec- ture to demonstrate how design decisions regarding software and hardware do coexist and harmonise. 1 Contents 1 Origin 4 1.1 Performance............................ 4 1.2 Limits ............................... 5 1.3 TransparentStructuralOptimisation . 8 1.4 VectorProcessing......................... 9 1.5 Asymmetric Multiprocessing . 10 1.6 SymmetricMulticore ....................... 11 1.7 MultinodeComputer ....................... 12 2 Review 14 2.1 SharedMemory.......................... 14 2.2 Cache ............................... 15 2.3 Synchronisation .......................... 15 2.4 Time-Shared Multitasking . 15 2.5 Interrupts ............................. 16 2.6 Exceptions............................. 16 2.7 PrivilegedMode.......................... 17 2.8 PeripheralI/O .........................
    [Show full text]