Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
113 views17 pages

02 MemoryAndData PDF

Memory is implemented as an array of electronic switches that can be in one of two states representing 0 and 1. By grouping bits together, larger units of data like bytes and words can be stored. Computer memory is addressed in units of bytes, halfwords or words. Different numeral systems like binary, decimal and hexadecimal are used to represent numeric values and alphanumeric characters in memory. Memory is typically divided into random access memory (RAM) that can be read and written during operation and read-only memory (ROM) that can only be read.

Uploaded by

Afiq Asyraf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
113 views17 pages

02 MemoryAndData PDF

Memory is implemented as an array of electronic switches that can be in one of two states representing 0 and 1. By grouping bits together, larger units of data like bytes and words can be stored. Computer memory is addressed in units of bytes, halfwords or words. Different numeral systems like binary, decimal and hexadecimal are used to represent numeric values and alphanumeric characters in memory. Memory is typically divided into random access memory (RAM) that can be read and written during operation and read-only memory (ROM) that can only be read.

Uploaded by

Afiq Asyraf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Memory Structure

3D1 / Microprocessor Systems I


Memory and Data

Memory is implemented as an array of electronic


switches
Each switch can be in one of two states
0 or 1, on or off, true or false, purple or gold,
sitting or standing
BInary digiTs (bits) are the fundamental unit of data storage
in a computer
Accessing each bit individually isnt very useful
We want to store data that can take a wider range of values
o the value 214
o the letter b
o

Memory Structure

3D1 / Microprocessor Systems I


Memory and Data

By grouping bits together we can


store more values
8 bits = 1 byte
16 bits = 2 bytes = 1 halfword
32 bits = 4 bytes = 1 word

When we refer to memory


locations by address (using the
ARM7), we can only do so in units
of bytes, halfwords or words
the byte at address 21000
the halfword at address 21000
the word at address 21000

8 bits
1 byte
20998
20999
21000
21001
21002
21003
21004
21005
21006
21007
21008
21009
21010
21011
21012
21013
21014

97
23
49
252
0
4
85
240
49
252
0
8
85
251
78
64
44

Memory
2

Larger Units of Information Storage

3D1 / Microprocessor Systems I


Memory and Data

Larger units of information storage


1 kilobyte (kB) = 210 bytes = 1,024 bytes
1 megabyte (MB) = 1,024 KB = 220 bytes = 1,048,576 bytes
1 gigabyte (GB) = 1,024 MB = 230 bytes = ...

The following units of groups of bits are also used,


usually when expressing data rates:
1 kilobit (kb) = 1,000 bits
1 megabit (Mb) = 1,000 kilobits = 1,000,000 bits

IEC prefixes, KiB, MiB, GiB, ...


3

Numeral Systems

3D1 / Microprocessor Systems I


Memory and Data

We use the decimal (base-10) numeral system most


frequently
We have symbols (digits) that can represent ten integer
values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
We represent integer values larger than 9 with combinations
of two or more digits, e.g.: 10, 11, 12, ..., 112, ..., 247
e.g.: 247
o = (7 x 100) + (4 x 101) + (2 x 102)
o 2 is the Most Significant Digit
o 7 is the Least Significant Digit

Given n decimal digits, how many different integer values can


we represent?
o [0 ... (10n - 1)]
o e.g., n = 3 allows us to represent values in the range [0 ... 999]
4

Binary Numeral System (Base-2)

3D1 / Microprocessor Systems I


Memory and Data

Computer systems store information electronically


using bits (binary digits)
Each bit can be in one of two states, which we can take to
represent the binary (base-2) digits 0 and 1
The binary number system is a natural number system for
computing (rather than the decimal system)
Using a single bit, we can represent integer values 0 and 1
Using two bits, we can represent 0, 1, 10, 11
o i.e. four different values

How many unique values can we represent with, for example,


eight bits?
o [0 ... 11111111] in binary notation
o [0 ... (28 - 1)] = [0 ... 255] in decimal notation
o 256 unique values

Base Subscript Notation

3D1 / Microprocessor Systems I


Memory and Data

There are 102 types of people in the world: those


who understand binary and those who dont ...

The same sequence of symbols can have a different


meaning depending on the base being used
We can use the subscript notation to make it clear which base
we are using
1210 = 11002
110 = 12

Using binary all the time would become quite tedious


The 3D1 exam is worth 10100002% of the final mark

3D1 / Microprocessor Systems I


Memory and Data

Binary to Decimal Conversion

Convert %100101 to its decimal equivalent

100101 =

(1 x 20) +
(0 x 21) +
(1 x 22) +
(0 x 23) +
(0 x 24) +
(1 x 25) +
= 37

3D1 / Microprocessor Systems I


Memory and Data

Decimal to Binary Conversion

Convert 37 to its binary equivalent?

Quotient

Remainder

Binary digit

37 / 2 =

18

18 / 2 =

9/2=

4/2=

2/2=

1/2=

Hexadecimal Numeral System (Base 16)

3D1 / Microprocessor Systems I


Memory and Data

Base-16 (hexadecimal) is a more convenient number


system for computer scientists:

With binary, we needed 2 symbols (0 and 1)


With decimal, we needed 10 symbols (0, 1, ..., 9)
With hexadecimal, we need 16 symbols
Use the same ten symbols as the decimal system for the first
ten hexadecimal digits
Borrow the first six symbols from the alphabet for the last
six symbols
,
0, 1,
3, ,
4, 5,,6,,
7, ,
8, 9,,A,,
B, ,
C, D,,E,,
F , , ,
,2,,

Why is hexadecimal useful?


16 is a power of 2 (24), so exactly one hex digit can
represent the same sixteen possible values as four bits
9

3D1 / Microprocessor Systems I


Memory and Data

Decimal, Binary and Hexadecimal


base-10

base-2

base-16

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111

10

3D1 / Microprocessor Systems I


Memory and Data

Converting Between Binary and Hex

One hexadecimal digit represents the same number of


values as four binary digits
conversion between hex and binary is trivial
the hexadecimal notation a convenient one for us
0 0 1 0

0 1 0 1

or 0x25

1 0 1 0

0 1 1 1

or 0xA7

Hexadecimal is used by convention when referring to


memory addresses: e.g. address 0x1000, address
0x4002
0x denotes a
hexadecimal value
11

Alternative Base Notation

3D1 / Microprocessor Systems I


Memory and Data

Without a fancy word processor, we wont be able to


use the subscript notation to represent different bases
How would we tell a computer whether we mean 10 or 10?

Instead we can prefix values with symbols that provide


additional information about the base
In ARM assembly language (which we will be using) we
use the following notation:

1000
0x1000
&1000
2_1000
n_1000

No prefix usually means decimal


Hexadecimal, used frequently
Alternative hexadecimal notation
Binary
Base n
12

Representing Text

3D1 / Microprocessor Systems I


Memory and Data

So far, we have only considered how computers store


integer values using binary digits
What about representing other information, for
example text composed of alphanumeric symbols?
T, h, e, , q, u, i, c, k, , b, r, o, w, n, , f, o, x, ...

Were still restricted to storing binary digits (bits) in


memory
To store alphanumeric symbols or characters, we can
assign each character a value which can be stored in
binary form in memory
13

3D1 / Microprocessor Systems I


Memory and Data

ASCII

American Standard Code for Information Interchange


ASCII is a standard used to encode alphanumeric and
other characters associated with text
e.g. representing the word hello using ASCII
H

$48

$45

$4C

$4C

$4F

Each character is stored in a single byte value (8 bits)

1 byte = 8 bits means we can have a possible 256 characters


In fact, ASCII only uses 7 bits, giving 128 possible characters
Only 96 of the ASCII characters are printable
Remaining values are control codes examples??

14

3D1 / Microprocessor Systems I


Memory and Data

ASCII
0

NUL

DLE

SPACE

SOH

DC1

STX

DC2

ETX

DC3

EOT

DC4

ENQ

NAK

ACK

SYN

&

BEL

ETB

BS

CAN

HT

EM

LF

SUB

VT

ESC

FF

FS

<

CR

GS

SO

RS

>

SI

US

DEL

15

ASCII

3D1 / Microprocessor Systems I


Memory and Data

Some things to note about ASCII


The value 0 is not the name as the character 0
Similarly, the value 1 is not the same as the character 1, ...
The characters 0, 1, ... are used in text to display values in
human readable form
Upper and lower case characters have different codes
The first printable character is the space symbol, and it
has code 3210
ASCII is a base-128 number system and each value has a
different symbol
It is more efficient to store a value in its value form than its
text form (i.e. Store the value 1010 instead of the ASCII
symbols 1 followed by 0.)
16

Types of Memory

3D1 / Microprocessor Systems I


Memory and Data

Random Access Memory (RAM)


The CPU can both read and modify the contents of memory
Volatile (information lost when power is turned off)
Non-volatile (information retained when power is turned off)

Read Only Memory (ROM)


CPU can only read the contents of memory
Non-volatile
Further classified by ability to change contents
o Programmable ROM (PROM): Can only write contents once
o Erasable Programmable ROM (EPROM): Can erase contents using
ultra-violet light and re-write
o Electronically Erasable Programmable ROM (EEPROM): Can erase
contents electronically (including Flash Memory)
17

You might also like