Problem Set 06: Internal and External Memory Csci 540: Computer Architecture Fall 2021
Problem Set 06: Internal and External Memory Csci 540: Computer Architecture Fall 2021
Answer
Memory cycle time = access time + recharge time = 60 + 40 = 100 ns.
b. What is the maximum data rate this DRAM can sustain, assuming a 1-bit output?
Answer
The maximum data rate is 1 bit every 100 ns, which is 10 Mb/s.
c. Constructing a 32-bit wide memory system using these chips yields what data transfer
rate?
Answer
32×10 Mbps = 320 Mbps = 320 Mbps / 8 = 40 MB/s.
Answer
The stored word is 001101001111, as shown in Figure 6.10. Now suppose that the only error is in
C8, so that the fetched word is 001111001111. Then the received block results in the following
table:
Poistio 12 11 10 9 8 7 6 5 4 3 2 1
n
Bits D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1
Block 0 0 1 1 1 1 0 0 1 1 1 1
Codes 1010 1001 0111 0011
3. Suppose an 8-bit data word stored in memory is 11000010. Using the Hamming algorithm,
determine what check bits would be stored in memory with the data word. Show how you got
your answer.
Answer
Data bits with value 1 are in bit positions 12, 11, 5, 4, 2, and 1:
Poistion 12 11 10 9 8 7 6 5 4 3 2 1
Bits D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1
Block 1 1 0 0 0 0 1 0
Codes 1100 1011 0101
The check bits are in bit numbers 8, 4, 2, and 1.
Check bit 8 calculated by values in bit numbers: 12, 11, 10 and 9
Check bit 4 calculated by values in bit numbers: 12, 7, 6, and 5
Check bit 2 calculated by values in bit numbers: 11, 10, 7, 6 and 3
Check bit 1 calculated by values in bit numbers: 11, 9, 7, 5 and 3
Thus, the check bits are: 0 0 1 0
4. For the 8-bit word 00111001, the check bits stored with it would be 0111. Suppose when the word
is read from memory, the check bits are calculated to be 1101. What is the data word that was read
from memory?
Answer
The Hamming Word initially calculated was: 12 11 10 9 8 7 6 5 4 3 2 1
bit number: 0 0 1 1 0 1 0 0 1 1 1 1
Doing an exclusive-OR of 0111 and 1101 yields 1010 indicating an error in bit 10 of the Hamming
Word. Thus, the data word read from memory was 00011001.
5. Consider a disk with N tracks numbered from 0 to ( N − 1) and assume that requested sectors are
distributed randomly and evenly over the disk. We want to calculate the average number of tracks
traversed by a seek.
a. First, calculate the probability of a seek of length j when the head is currently positioned over
track t . Hint: This is a matter of determining the total number of combinations, recognizing
that all track positions for the destination of the seek are equally likely.
Answer
Total number of possible seeks
N−1
∑ N=N 2
t =0
Probability to seek t
2
N
b. Next, calculate the probability of a seek of length K . Hint: This involves the summing over all
possible combinations of movements of K tracks.
Answer
Total number of possible seeks
N−1
∑ N=N 2
t =0
Probability to seek length K
N −1
2
c. Calculate the average number of tracks traversed by a seek, using the formula for expected
value
Answer
N −1
∑ ¿ of seek ways 2( N −K )
E ( x )= k=0 =
N−1 N −1
N
∑ ∑ ¿ of ways
t =0 i=0
6. Consider a magnetic disk drive with 8 surfaces, 512 tracks per surface, and 64 sectors per track.
Sector size is 1 kB. The average seek time is 8 ms, the track-to-track access time is 1.5 ms, and the
drive rotates at 3600 rpm. Successive tracks in a cylinder can be read without head movement.
Answer
1024bytes / sector.
64 sectors per track,
512 tracks per surface,
8 surfaces.
65536 bytes / track.
512 * 65536 = 33554432 bytes per surface (32 mB per surface).
33554432 bytes * 8 = 268435456 bytes / 1024 / 1024 = 256 mB.
The disk can hold 256 megabytes
b. What is the average access time? Assume this file is stored in successive sectors and tracks of
successive cylinders, starting at sector 0, track 0, of cylinder i.
Answer
Seek time + rotational delay + track to track.
8ms + 8.3 + 1.5ms = 17.8ms
Answer
5MB = 5242880 bytes. 5242880 / 65536 = 80 tracks.
80 * 64 = 5120 sectors.
So 80 tracks, 5120 sectors, 10 cylinders (80 tracks / 8 surfaces).
Answer
Bytes/track / time for one rotation. 66536/8.3 ms = 8016.4 bytes / ms
7. Consider a single-platter disk with the following parameters: rotation speed: 7200 rpm; number of
tracks on one side of platter: 30,000; number of sectors per track: 600; seek time: one ms for every
hundred tracks traversed. Let the disk receive a request to access a random sector on a random
track and assume the disk head starts at track 0.
Answer
100 tracks = 1ms seek time
(Total tracks – 1) / 100 * 1ms= (30,000 – 1) / 100 * 1ms = 29,999 / 100 * 1ms = 299.99 ms
The average number of tracks to traverse on random * seek time = 299.99 / 2 * 1ms
= 149.995 ms
Answer
7200 rpm = 120 rotation per sec
Rotational Latency = 1 / (2r) = 4.16 ms
Answer
No. of sectors per track = 600
Time for one disk rotation = 0.833 ms
So transfer time for a sector is: one disk revolution time / number of sectors
8.333 / 600 = 0.01388 ms = 13.88 μs
Answer
Total average time to satisfy a request is calculated as :
Average seek time + Average rotational latency + Transfer time for a sector
= 149.99 ms + 4.165 ms + 0.01388 ms
= 154.168 ms