Byte Ordering of Multibyte Data Items



Similar documents
Computer Systems Structure Main Memory Organization

Computer Architecture

Memory Systems. Static Random Access Memory (SRAM) Cell

Configuring Memory on the HP Business Desktop dx5150

1. Memory technology & Hierarchy

Internet Addressing. Name: identifies what the object is Address: identifies where it is Route: identifies how to get there

Features. DDR SODIMM Product Datasheet. Rev. 1.0 Oct. 2011

Table 1: Address Table

OpenSPARC T1 Processor

Memory ICS 233. Computer Architecture and Assembly Language Prof. Muhamed Mudawar

2011, The McGraw-Hill Companies, Inc. Chapter 3

DDR4 Memory Technology on HP Z Workstations

Connecting AMD Flash Memory to a System Address Bus

Memory Basics. SRAM/DRAM Basics

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

A N. O N Output/Input-output connection

CPEN Digital Logic Design Binary Systems

Memory unit. 2 k words. n bits per word

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

RAM. Overview DRAM. What RAM means? DRAM

Goals. Unary Numbers. Decimal Numbers. 3,148 is s 100 s 10 s 1 s. Number Bases 1/12/2009. COMP370 Intro to Computer Architecture 1

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

Homework # 2. Solutions. 4.1 What are the differences among sequential access, direct access, and random access?

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

EE 261 Introduction to Logic Circuits. Module #2 Number Systems

User s Manual HOW TO USE DDR SDRAM

Random Access Memory (RAM) Types of RAM. RAM Random Access Memory Jamie Tees SDRAM. Micro-DIMM SO-DIMM

Outline. Lecture 3. Basics. Logical vs. physical memory physical memory. x86 byte ordering

Intel X38 Express Chipset Memory Technology and Configuration Guide

Solid State Drive Architecture

Computer Architecture. Secure communication and encryption.

Fairchild Solutions for 133MHz Buffered Memory Modules

Intel 965 Express Chipset Family Memory Technology and Configuration Guide

361 Computer Architecture Lecture 14: Cache Memory

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

Configuring and using DDR3 memory with HP ProLiant Gen8 Servers

MACHINE ARCHITECTURE & LANGUAGE

Basic Computer Organization

Technical Product Specifications Dell Dimension 2400 Created by: Scott Puckett

GR2DR4B-EXXX/YYY/LP 1GB & 2GB DDR2 REGISTERED DIMMs (LOW PROFILE)

Chapter 5 :: Memory and Logic Arrays

Intel Q35/Q33, G35/G33/G31, P35/P31 Express Chipset Memory Technology and Configuration Guide

ADQYF1A08. DDR2-1066G(CL6) 240-Pin O.C. U-DIMM 1GB (128M x 64-bits)

SDRAM and DRAM Memory Systems Overview

Features. DDR3 SODIMM Product Specification. Rev. 1.7 Feb. 2016

Binary Representation. Number Systems. Base 10, Base 2, Base 16. Positional Notation. Conversion of Any Base to Decimal.

Chapter 7 Memory and Programmable Logic

Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide

ThinkServer PC DDR3 1333MHz UDIMM and RDIMM PC DDR3 1066MHz RDIMM options for the next generation of ThinkServer systems TS200 and RS210

Intel Desktop Board DQ45CB

Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8

MBP_MSTR: Modbus Plus Master 12

CHAPTER IX REGISTER BLOCKS COUNTERS, SHIFT, AND ROTATE REGISTERS

The Leader in Memory Technology

CHAPTER 2: HARDWARE BASICS: INSIDE THE BOX

Lecture 9: Memory and Storage Technologies

RAM & ROM Based Digital Design. ECE 152A Winter 2012

HOMEWORK # 2 SOLUTIO

Read this before starting!

Intel Desktop Board DG45FC

Semiconductor Device Technology for Implementing System Solutions: Memory Modules

Chapter 2 - Computer Organization

Chapter 4 System Unit Components. Discovering Computers Your Interactive Guide to the Digital World

DDR SDRAM SODIMM. MT9VDDT1672H 128MB 1 MT9VDDT3272H 256MB MT9VDDT6472H 512MB For component data sheets, refer to Micron s Web site:

Storing Data: Disks and Files. Disks and Files. Why Not Store Everything in Main Memory? Chapter 7

CONFIGURING DDR2 MEMORY ON DELL PLATFORMS BASED ON THE INTEL E7520 AND E7525 CHIP SETS

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

Syscall 5. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Base Conversion written by Cathy Saxton

MACHINE INSTRUCTIONS AND PROGRAMS

Understanding Memory TYPES OF MEMORY

Microprocessor or Microcontroller?

Candidates should be able to: (i) describe the purpose of RAM in a computer system

Memory. The memory types currently in common usage are:

Samsung DDR4 SDRAM DDR4 SDRAM

Using Speccy to Report on Your Computer Components

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012

Binary, Hexadecimal, Octal, and BCD Numbers

FPGA Design From Scratch It all started more than 40 years ago

are un-buffered 200-Pin Double Data Rate (DDR) Synchronous DRAM Small Outline Dual In-Line Memory Module (SO-DIMM). All devices

DDR SDRAM UDIMM MT16VDDT6464A 512MB MT16VDDT12864A 1GB MT16VDDT25664A 2GB

Microprocessor & Assembly Language

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging

DDR2 SDRAM SODIMM MT16HTF12864H 1GB MT16HTF25664H 2GB

The Central Processing Unit:

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Communicating with devices

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

Slide Set 8. for ENCM 369 Winter 2015 Lecture Section 01. Steve Norman, PhD, PEng

Data storage and high-speed streaming

Technical Note DDR2 Offers New Features and Functionality

CS/COE1541: Introduction to Computer Architecture. Memory hierarchy. Sangyeun Cho. Computer Science Department University of Pittsburgh

CPU Organisation and Operation

Streaming Lossless Data Compression Algorithm (SLDC)

IP Video Rendering Basics

EXERCISES OF FUNDAMENTALS OF COMPUTER TECHNOLOGY UNIT 5. MEMORY SYSTEM

Chapter 5 Instructor's Manual

Measuring Cache and Memory Latency and CPU to Memory Bandwidth

ENTTEC Pixie Driver API Specification

Transcription:

Byte Ordering of Multibyte Data Items Most Significant Byte (MSB) Least Significant Byte (LSB) Big Endian Byte Addresses +0 +1 +2 +3 +4 +5 +6 +7 VALUE (8-byte) Least Significant Byte (LSB) Most Significant Byte (MSB) Little Endian Byte Addresses +0 +1 +2 +3 +4 +5 +6 +7 VALUE (8-byte) wl 2016 4.1

Example 1: 16-bit integer (View 1) 16-bit (2's Complement) integer 5 stored at memory address 24. Big Endian 0000 0000 0000 0101 Byte Addresses 24 25 Little Endian 0000 0101 0000 0000 Byte Addresses 24 25 wl 2016 4.2

Example 1: 16-bit integer (View 2) 16-bit (2's Complement) integer 5 stored at memory address 24. Big Endian 0000 0000 0000 0101 Word address 24 Byte Addresses 24 25 Little Endian 0000 0000 0000 0101 Word address 24 Byte Addresses 25 24 wl 2016 4.3

Example 2: 32-bit value (View 1) 32-bit hex value 54 BC FE 30 stored at memory address 24. Big Endian 54 BC FE 30 0101 0100 1011 1100 1111 1110 0011 0000 Byte Addresses 24 25 26 27 Little Endian 30 FE BC 54 0011 0000 1111 1110 1011 1100 0101 0100 Byte Addresses 24 25 26 27 wl 2016 4.4

Example 2: 32-bit value (View 2) 32-bit hex value 54 BC FE 30 stored at memory address 24. Big Endian 54 BC FE 30 0101 0100 1011 1100 1111 1110 0011 0000 Byte Addresses 24 25 26 27 Little Endian 54 BC 0101 0100 1011 1100 Byte Addresses 27 26 FE 30 1111 1110 0011 0000 25 24 wl 2016 4.5

Example 3: ASCII string (View 1) String JIM BLOGGS stored at memory address 24 Treat a string as an array of (ASCII) bytes. Each byte is considered individually. Big Endian J I M B L O G G S Byte Addresses 24 25 26 27 28 29 30 31 32 33 Little Endian J I M B L O G G S Byte Addresses 24 25 26 27 28 29 30 31 32 33 wl 2016 4.6

Example 3: ASCII string (View 2) String JIM BLOGGS stored at memory address 24 Treat a string as an array of (ASCII) bytes. Each byte is considered individually. Big Endian J I M B L O G G S Byte Addresses 24 25 26 27 28 29 30 31 32 33 Little Endian S G G O L B M I J Byte Addresses 33 32 31 30 29 28 27 26 25 24 wl 2016 4.7

Data Transfer How do we transfer a multi-byte value (e.g. a 32-bit two s complement integer) from a Big-Endian memory to a Little- Endian memory? How do we transfer an ASCII string value (e.g. JIM BLOGGS ) from a Big-Endian memory to a Little-Endian memory? How do we transfer an object which holds both types of values above? wl 2016 4.8

(Un) Aligned Memory Accesses 0 2 4 6 8 10 12 14 Main Memory (Big Endian) 0110 1101 1010 1101 1010 1001 1010 0001 0000 0000 0000 0000 1111 1111 1111 0000 0010 0001 0000 0000 1001 1010 1010 0010 0000 0000 0000 0000 1111 1111 1111 1110 The 16-bit hex value (A9A1) at address 2 is memory word aligned. The 16-bit hex value (F021) at address 7 is unaligned. Some architectures prohibit unaligned accesses. Why? How many memory accesses are required to read a 32-bit value from memory address 11? How many memory accesses are required to write a 32-bit value to memory address 11? wl 2016 4.9

Memory Modules and Chips Clock and control signals Address lines multiplexed row/column address ~7 ~12 DRAM chip Data bus (4-32 bits) DIMM: Dual Inline Memory Module - multiple chips - clock/control/address signals in parallel - may need buffers: drive signals to all chips data pins: work together to return wide word DDR3 SDRAM: read/write 8 consecutive words Source: UC Berkeley SO = Sm a ll Ou tlin e wl 2016 4.10

DRAM Generations Year Capacity $/GB 1980 64Kbit $1500000 1983 256Kbit $500000 1985 1Mbit $200000 1989 4Mbit $50000 1992 16Mbit $15000 1996 64Mbit $10000 1998 128Mbit $4000 2000 256Mbit $1000 300 250 200 150 100 50 Trac Tcac 2004 512Mbit $250 2007 1Gbit $50 0 '80 '83 '85 '89 '92 '96 '98 '00 '04 '07 Trac: Total access time to a new row/column Tcac: Column access time to existing row Source: MKP wl 2016 4.11

1GB (256Mx32bit) Memory Two 512MB memory modules. Each module has two 128M x 16-bit RAM Chips 16 16 128M Module 0 512MB 128M Module 1 512MB wl 2016 4.12

1GB (256Mx32bit) Memory Two 512MB memory modules. Each module has four 128M x 8-bit RAM Chips 8 8 8 8 128M Module 0 512MB 128M Module 1 512MB wl 2016 4.13

1GB (256Mx32bit) Memory Four 256MB memory modules. Each module has two 64M x 16-bit RAM Chips 16 16 64M Module 0 256MB 64M 64M Module 1 256MB Module 2 256MB 64M Module 3 256MB wl 2016 4.14

1GB (256Mx32bit) Memory Four 256MB memory modules. Each module has four 64M x 8-bit RAM Chips 64M 8 8 8 8 Module 0 256MB 64M 64M Module 1 256MB Module 2 256MB 64M Module 3 256MB wl 2016 4.15

Memory Interleaving Example. Memory=4M words. Word Addressed. Each word = 32-bits. Built with 4 x 1Mx32-bit memory modules. For 4M words we need 22 bits for an address. 22 bits = 2 bits (to select Modules) + 20 bits (to select row within Module) 2 20 Module Row within Module High-Order Interleave 20 Row within Module 2 Module Low-Order Interleave wl 2016 4.16

High-Order Interleave Address Decimal Address Binary 0 00 0000 0000 0000 0000 0000 Module=0 Row=0 1 00 0000 0000 0000 0000 0001 Module=0 Row=1 2 00 0000 0000 0000 0000 0010 Module=0 Row=2 3 00 0000 0000 0000 0000 0011 Module=0 Row=3 4 00 0000 0000 0000 0000 0100 Module=0 Row=4 5 00 0000 0000 0000 0000 0101 Module=0 Row=5... 2^20-1 00 1111 1111 1111 1111 1111 Module=0 Row=2^20-1 2^20 01 0000 0000 0000 0000 0000 Module=1 Row=0 2^20+1 01 0000 0000 0000 0000 0001 Module=1 Row=1 wl 2016 4.17

Low-Order Interleave Address Decimal Address Binary 0 00 0000 0000 0000 0000 0000 Module=0 Row=0 1 00 0000 0000 0000 0000 0001 Module=1 Row=0 2 00 0000 0000 0000 0000 0010 Module=2 Row=0 3 00 0000 0000 0000 0000 0011 Module=3 Row=0 4 00 0000 0000 0000 0000 0100 Module=0 Row=1 5 00 0000 0000 0000 0000 0101 Module=1 Row=1... 2^20-1 00 1111 1111 1111 1111 1111 Module=3 Row=2^18-1 2^20 01 0000 0000 0000 0000 0000 Module=0 Row=2^18 2^20+1 01 0000 0000 0000 0000 0001 Module=1 Row=2^18+1... wl 2016 4.18

Low-Order Interleave good if CPU can request multiple adjacent memory locations CPU Module0 Module1 Module2 Module3 adjacent memory locations in different modules: so opportunity for parallel access; useful for situations like i) elements in an array, e.g. Array[N], Array[N+1], Array[N+2],... ii) instructions in a program, Instruction N, Instruction N+1,... CPU can pre-fetch adjacent memory locations in parallel => higher performance wl 2016 4.19

High-Order Interleave good if modules can be accessed independently by different units e.g. by the CPU and a Hard Disk (or a second CPU) and the units use different modules parallel operation => higher performance CPU1 CPU2 Hard Disk Module0 Module1 Module2 Module3 wl 2016 4.20