Section 01 Part 02 – Memory Storage

 

If it draws blood, it's hardware.”  ~Author Unknown

 

 

 

Introduction

 

By now, you should have a basic understanding of memory and different sizes, in this part, we look at “where” this memory is located and “how” it’s stored.

 

 

 

Accessing Data Using the “Offset”

 

Computers have a very specific way of accessing/storing memory, and it is done through “addressing”:

 

Offset

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

00000000

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000010

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000020

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000030

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

etc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This table above is an example of how memory is stored, the white “bytes” you see in the table, is the “data” (i.e. your memory).  The purple digits at the top and left side are the “Offset”.

 

A computer will use the offset as an “address”, to locate a byte in memory that it wants to read, or even change.  For example, in the table below, you’ll notice that all bytes in memory are “00”, except for one:

 

Offset

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

00000000

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000010

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000020

00

00

00

00

00

00

00

00

00

00

00

F2

00

00

00

00

00000030

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

etc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

You’ll notice on column B row 00000020, the byte there is F2, if a computer wanted to access that byte, it would go to offset 0000002B, it couldn’t be simpler.

 

I’ll show you a few examples by highlighting the bytes when a computer accesses them.  Below is another example of accessing a “byte”, but this time at offset 00000013:

 

Offset

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

00000000

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000010

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000020

00

00

00

00

00

00

00

00

00

00

00

F2

00

00

00

00

00000030

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

etc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

As you can see, the byte on column 3 row 00000010 is highlighted.

 

Now we’ll write the “word” 20 4F at offset 0000000A:

 

Offset

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

00000000

00

00

00

00

00

00

00

00

00

00

20

4F

00

00

00

00

00000010

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00000020

00

00

00

00

00

00

00

00

00

00

00

F2

00

00

00

00

00000030

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

etc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

As you can see, the word 20 4F has been split up, 20 has been put at 0000000A, and 4F has been put at 0000000B.

 

Now let’s read the “long-word” from offset 00000034:

 

Offset

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

00000000

00

AC

5E

00

00

00

00

00

00

00

00

00

00

00

00

00

00000010

00

00

00

00

07

77

00

00

00

00

00

00

00

00

00

00

00000020

00

00

00

00

00

00

00

00

00

00

47

00

00

00

00

00

00000030

00

00

11

20

F3

44

F5

39

C2

00

00

00

00

00

00

00

etc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

As you see above, the bytes F3, 44, F5 and 39, are highlighted, the long-word is F3 44 F5 39.  So not only has it read the byte at 00000034, it has also read the bytes at 00000035, 00000036 and 00000037, and put them all together to make a long-word.

 

We’ll be coming back to memory more in depth later on, but hopefully this gives you the basic idea.

 

 

 

Previous Part

Main Page

Next Part