Secondary Memory Memory Hierarchy

advertisement
Secondary Memory
Memory Hierarchy:
In modern computers, there are several types of memory:
• Cache: RAM technology Capacity 256K- 1 M, 10
nanoseconds
• Main memory: RAM - ROM technology 100 M- 1G,
100 nanoseconds
• Secondary storage (Disk): 10 G-1000 G, 10-30
milliseconds
• Tertiary Storage (Tape, CD):1G -100 T, a few
seconds- a few minutes
The memory system in a computer is organized as a
hierarchy containing faster, more expensive members
and slower, less expensive members.
CPU
cache
memory
Main
Memor
y
Disk
Memory
Tape
Memory
Components towards the left side, which are nearer of
the CPU, need faster access times and thus are more
expensive. Components on the right side provide slower
access times, but cost less. Information must flow back
and forth in the hierarchy.
Magnetic Disks:
- Bits of data (0’s and 1’s) are stored on circular
magnetic platters called disks
- A disk rotates rapidly
- A disk head reads and writes bits of data as they pass
under the head
- Often several platters are organized into a disk pack
- Disks are non-volatile, stable
- They have tremendous capacity (about 100 times more
than RAM)
- They are much cheaper than RAM (40 times cheaper
per Meg)
Disk Organization:
- Disks are direct access storage devices as opposed
to serial devices (tapes)
- Disks are composed of a disk assembly and a head
assembly
- A disk assembly is a collection of one or more
platters with a common spindle (axle)
- Information is stored in the surface of the platters.
- A head assembly consists of several disk arms
ending in disk heads.
- The arm can move outwards or inwards towards the
spindle
read/write head
(1 per surface)
Surface1
Surface 2
Surface 3
Surface 4
moving arm
(starts and stops)
Surface 5
Surface 6
spindle (rotating shaft never stops)
3 platters, 6 surfaces, 6 read/write heads
Organization of data on the surface of the platter:
Track
Sector (wedge)
Block (sequence of bits)
Each platter surface is divided into tracks (concentric
circles).
Tracks above and below one another form a cylinder
Each track is divided into sectors; a sector is the smallest
addressable unit.
Each block of data is addressed by its track, sector, and
surface: track 126, sector 4, surface 3.
Given the address of a block, the disk head moves to the
given track, and waits for the block to rotate into position.
This process takes a long time, but once in position, the
block rotates under past the head very quickly.
Consequently,
it takes a long time to read the first bit in a block, but very
little time to read the remaining bits in the block.
For this reason, a disk reads/writes an entire block of data
at a time, not just a single bit or byte.
Typically, only one head can read/write at a given time.
All heads move together, they are all at the same radius.
Cylinders:
A cylinder is the set of tracks at a given radius of a disk
pack. A cylinder is the set of tracks that can be accessed
without moving the disk arm. Moving the disk arm is
relatively slow. Once the heads are positioned at a cylinder,
data in that cylinder can be accessed more quickly than data
in other cylinders.
We try to store related data (e.g. a file) on the same
cylinder.
Access Time:
- Given the address of a block, it takes time to access
(read or write) it.
- Access time has two main components:
a. Seek time: the time needed to move the read/write
heads to the correct track. It is the most expensive
time, since it is mechanical
o It takes 5 ms (milliseconds) to move from one
track to the next (track-to-track)
o 50 ms maximum (from inside track to outside
track)
o 10 to 30 ms average (from one random track to
another random track)
o Average seek time: about 1/3 of the total number
of cylinders
b. Latency (rotational delay): It is the time needed for
the desired bit to rotate into position under the disk
head, typically the value of latency is 8 ms
Note:
- Min latency =0
- Max latency = Time for disk revolution
- Average latency= Min +Max/2 OR Max/2 OR
time for ½ disk revolution
- Most disks today rotate at least at 5000-9000
rpm, which is about 6-11 milliseconds per
revolution.
c. Transfer time is calculated as follows:
(number of bytes transferred/number of bytes on
track )*rotation time.
Transfer time for a 4K block is about half a
millisecond.
Example: Given the following disk
characteristics:
20 surfaces
25 sectors/ surface
800 tracks / surface
512 bytes / block
3600 rpm (revolutions per minute)
7 ms track-to-track seek time.
28 ms avg seek time
50 ms max seek time
Latency:
3600 rpm Î 3600 rev/min
Î3600/60 =60 rev/sec
Î 1/60 sec/rev
Î .0167 sec/rev
Î 16.7 ms max latency
Î 16.7/2 = 8.35 ms avg latency
Disk Capacity
20 surfaces
25 sectors
800 tracks
512 Bytes/block
#bytes/track = #bytes/block * # blocks/track
= 512 *25
= 12,800 Bytes= 12.8 KB
#Bytes/surface = # bytes/track * # tracks/surface
= 12,800 * 800 = 10,240,00 Bytes = 10.24
MB (mega Bytes)
#Bytes/pack = #bytes/surface * #surfaces/pack
= 10.24 MB * 20 = 204.8 MB
Read Time (Cylinder by Cylinder)
How long does it take to read the entire disk, one
cylinder at a time
20 surfaces
25 sectors/ surface
-
800 tracks / surface
512 bytes / block
3600 rpm (revolutions per minute)
7 ms track-to-track seek time.
28 ms avg seek time
50 ms max seek time
Track latency = 16.7 ms (1 revolution)
surface latency = track latency x #tracks/surface
= 16.7 ms * 800 = 13360ms=
13.36s
Total read time=
surface latency * #surfaces + #track
switches * track-to-track seek time
= 13360*20 + 799*7 =
Total Read time = 800 cylinder reads + 799
cylinder switches
Total read time = 800 cylinder reads + 799 cylinder switches
144
42444
3 144424443
totat latency
total seek −time
Total read time = (800 *334 ms) + (799 * 7 ms)
= 267 sec + 5.59 sec = 272.59 sec
Observation:
read-time per byte
bytes/pack
= Total read time /#
= 273 sec/204.8 MB
= 1.33 sec/MB
= 1.33 µs/byte (micro
sec/byte)
This is comparable to main memory speed! Reading
a disk sequentially is very fast.
In contrast, seek time for a random read of 1 byte is
28 ms, i.e., 28,000 µs.
Data processing requires random access. Usually,
we do not read more than one block (512 bytes)
sequentially at any given time, i.e., Read a block,
while processing it.
Download