edited by
34,648 views
93 93 votes
A certain processor deploys a single-level cache. The cache block size is $8$ words and the word size is $4$ bytes. The memory system uses a $60$-MHz clock. To service a cache miss, the memory controller first takes $1$ cycle to accept the starting address of the block, it then takes $3$ cycles to fetch all the eight words of the block, and finally transmits the words of the requested block at the rate of $1$ word per cycle. The maximum bandwidth for the memory system when the program running on the processor issues a series of read operations is  ______$\times 10^6$ bytes/sec.

12 Answers

Best answer
93 93 votes
Time to transfer a cache block $ = 1+3+8 = 12$ cycles.

i.e., $4$ bytes $\times 8 = 32$ bytes in $12$ cycles.

So, memory bandwidth $ = \frac{32}{12 \text{ cycle time}} =\frac{32}{12/(60 \times 10^6)}= 160 \times 10^6 $ bytes/s
selected by
86 86 votes
$\underline{\mathbf{Answer:}}\;\bbox[lightgreen, 5px, border: 2px solid black]{\color {black} {160 \times 10^6\; \frac{\mathrm {Bytes}}{\mathrm{sec}}}}$

$\underline{\mathbf{Explanation:}}$

$\text {Given frequency} = 60\ \text{MHz}$

This means that the processor completes $\color{green}{60\times 10^6 \;\text{cycles in}\;1 \;\text{second}}.$

$\therefore $ One cycle is completed in $\dfrac{1}{60\times 10^6 }\; \text{seconds}\;\;\text{[Using Unitary Method]}$

Now, To service a cache miss, number of cycles needed $$ \color{blue}{= 1\;\text{cycle}}\;\color{blue}{\text{(to accept starting address of the block)}} + 3\;\text{cylces}\;\color{blue}{\text{(to fetch all the $8$ words of the blocks)}}$$

$$+  \underbrace{8\times1}_\text{$\because$1 word per cycle}\;\text{cycles}\;\color{blue}{\text{(to transmit all $8$ words of the block)}}=  12  \;\text{cycles}$$

$\underline{\color{red}{\mathbf{Note:}}}$ Total data is the data which is used for trasmitting the words of the requested block at the rate of $\mathbf{1}$ word per cycle $=\mathbf{8\;words \times 4\;Byte\;(Size\; of\; each\; word)}$

$ \begin{align}\therefore \mathbf{Bandwidth} \require{cancel} &= \dfrac{\text{Total Data}}{12 \;\text{cycle time}} \\&= \dfrac{8\times4\;\text{Bytes}}{12\;\text{cycles }\times1\; \text{cycle time}} \\&= \dfrac{32}{12 \times \dfrac{1}{60\times10^6}} \\&= \require{cancel} \dfrac{32\times \cancel {60}^{5} \times 10^6}{\cancel{12}^1}\\& = 5 \times 32 \times {10}^6 \\&= \color {black}{160 \times 10^6 \; \dfrac{\text{Bytes}}{\mathrm{sec}}}\end{align}$

$\therefore  \bbox[lightgreen, 5px, border: 2px solid black]{\color {black}{160 \times 10^6 \; \dfrac{\text{Bytes}}{\mathrm{sec}}}}$ is the correct answer.
edited by
37 37 votes

Few things which are to be noted here are as follows. The memory controller is a part of the “memory system”. The memory system quite obviously also has the memory chip where the data are actually stored. Now the question asks to find the maximum bandwidth of the “memory system”. Now bandwidth of the memory system is the data transfer speed of the memory system, i.e. considering memory system as a black box, how much data can be retrieved from it per unit time.

Now as per the question it takes $1$ cycle to select the first address of the block by the memory controller.

It takes $3$ cycles to read $8$ words from the memory chip to the memory controller. [Note that the memory controller is a part of the memory system, so $8/3$ words/cycle is not the required bandwidth, we need to find data rate for data entering or leaving the memory system!!]

Lastly it takes $8$ cycles to transfer the $8$ words to the data bus.

So in a period of $1+3+8(=12)$ cycles, $8$ words or $32$ bytes of data are retrieved from the memory system. So in a system which issues a series of read request, the maximum bandwidth of the memory system shall occur when there is a miss!! [Had there been no miss, the memory system shall be idle and bandwidth shall be $0$ in that case.] So in a system issuing a series of read requests, in $12$ cycles or $12*\frac{1}{60 *10^6}$ secs we can get max of $32$ bytes of data out of the memory system.

So required bandwidth = $\frac{32}{12*\frac{1}{60 *10^6}}$ bytes/sec = $160 * 10^6$ bytes/sec

edited by
14 14 votes
$Cache\ block = 8\ words$

$Word\ size = 4\ bytes$

$Cache\ block\ size = 32\ bytes$

$frequency = 60\ MHz$

$Cycle\ time(\#\ of seconds/cycle) = \dfrac{1}{frequency} = \dfrac{1}{60×10^6} seconds$

$Cache\ miss\ time:$

$1\ cycle(Address\ of\ the\ block)$

$3\ cycles (fetch\ all\ the\ 8-words\ of\ the\ block)$

$8\ cycles (transfer\ of\ 8-words\ at\ the\ rate\ of\ 1\ cycle/word )$

$Total = 12\ cycles$

$Total\ time= \dfrac{12}{60×10^6}sec$

$Total\ bandwidth = \dfrac{total\ data}{total\ time} = \dfrac{32\ bytes}{\dfrac{12}{60×10^6}} = 160 × 10^6 bytes/second$

$Answer: 160$
edited by
4 4 votes
My approach:

Total cycles = 1+3+8 =12

This way I got it as 160 bps

Plzx confirm :0
3 3 votes
total number of cycles = 1 + 3 + 8 = 12

total data transferred = 8 words * 4 bytes per word = 32 bytes

frequency of clock = 60 MHz

so bandwidth = total data transferred/total time taken

 = 32  bytes/(12cycles/(60*10^6cycles per sec))

= 160 * 10 ^ 6 bytes/sec

It is maximum in the case when every read request is a cache miss.
Answer:
Position:
Show:

Related questions

47 47 votes
9 answers 9 answers
28.5k
28.5k views
Arjun asked Feb 7, 2019
28,481 views
A certain processor uses a fully associative cache of size $16$ kB, The cache block size is $16$ bytes. Assume that the main memory is byte addressable and uses a $32$-bi...
1 1 vote
2 2 answers
1.7k
1.7k views
sahil_malik asked Feb 4, 2019
1,739 views
Consider the cache memory size of 16kb, and cache block size is 16 bytes. The processor generates the physical address of 32 bits. Assume the cache is fully associative. ...
75 75 votes
9 answers 9 answers
39.6k
39.6k views
Kathleen asked Sep 13, 2014
39,596 views
The access times of the main memory and the Cache memory, in a computer system, are $500$ n sec and $50$ nsec, respectively. It is estimated that $80\%$ of the main memor...
47 47 votes
6 answers 6 answers
20.2k
20.2k views
Arjun asked Feb 7, 2019
20,159 views
The chip select logic for a certain DRAM chip in a memory system design is shown below. Assume that the memory system has $16$ address lines denoted by $A_{15}$ to $A_0$....