The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+42 votes
5.9k views
Consider the main memory system that consists of $8$ memory modules attached to the system bus, which is one word wide. When a write request is made, the bus is occupied for $100$ nanoseconds (ns) by the data, address, and control signals. During the same $100$ ns, and for $500$ ns thereafter, the addressed memory module executes one cycle accepting and storing the data. The (internal) operation of different memory modules may overlap in time, but only one request can be on the bus at any time. The maximum number of stores (of one word each) that can be initiated in $1$ millisecond is ________
asked in Operating System by Veteran (116k points)
edited by | 5.9k views
+1
haha :)

yes it is for synchronous clock
+1
@srestha,you cleared a plentiful of doubts. Tonnes Thanks again. :)
0
if there are 4 module, we need to wait for 200 ns., but for 5 module we need to wait for 100 ns
0
@Srestha,How?Can u elaborate it?
0
@Srestha,By logically going, if there are 4 module,since the no of module  is less,therefore it will take more time,but in case of 5 module the time taken will be less.Am I right?
+2

See upto 4 module means where work is completed in 400ns, but u need to wait upto 600 ns minimum as it is minimum time to complete 1stage

0
@Srestha,I understand what you are trying to convey. So for min time period of 600 ns,one cycle is completed. Isn't it?
+6

Actually it is the from MEMORY INTERLEAVING we are able to parallelize  the request to memory module after identifying the module and when they are working on storing or any operation at that time their is no need to stuck their when first one on 500 ns at that we can make another request to another memory module so no need to wait for 500ns we can make a request to module each and every 100ns that is what we gain from memory interleaving .

 

100ns = 1 request

so in 1 sec = 1/100*10^-9 request 

so in 1 ms = 1*10^-3/100*10^-9 = 10,000 request 

 

 

+4
The question tells about the memory design in which we have interleaved memory modules(in this question they are 8).

Note: if you dont know interleaved memory design, please take a look at it.

now going back to the solution:

The scenario is:   8 memory modules are parallelly  connected to BUS.

when the request of “store” operation arrives through bus for any one particular memory module (lets suppose module 1), then it requires 100 nsec to initialize the requests of “store” operation for module 1.

After that, the BUS can move to next module to initialize  the store operation, so now BUS will initialize module 2 and it will require 100 nsec..

in the same fashion this process continues.

also note: once a module is initiated it will take 500 nsec on its own to do the rest of the store operation process, which has got nothing to do with bus.

The only job that BUS is doing here is that : it is initializing modules one after another for which it requires 100 nsec for each module.

so basically we have 1milli-second of time,

so number of initialization that BUS can do in the provided time will be =

provided time/ time required to initiate one module

= 1 milliseconds/ 100 nsec

= 10,000 times the store operation can be initiated.

 

thank you.
0

We have to wait for 200ns for 1st module to get freed up

3 Answers

+56 votes
Best answer
When a write request is made, the bus is occupied for $100$ ns. So, between $2$ writes at least $100$ ns interval must be there.

Now, after a write request, for $100 + 500 = 600$ ns, the corresponding memory module is busy storing the data. But, assuming the next stores are to a different memory module (we have totally $8$ modules in question), we can have consecutive stores at intervals of $100$ ns. So, maximum number of stores in $1$ ms

$=  10^{-3} \times 1/(100 \times 10^{ -9}) = 10,000$
answered by Veteran (399k points)
edited by
+2
10000 stores can be initiated and 9994 stores will be completed in 1msec.am I right?
0
@arjun sir according to me..ans should be 99500 bcs it is also taking additional 500 ns!!!
0

@ arjun, total stores completed coming as 99500 last 500 will be completed at 10^6 +100,10^6 +200,10^6 +300

is he asking only for number of  requests sent in that time?

0
the maximum number of stores of one word would mean storing in 8 modules which would require 800ns as we will have a gap of 100ns between 2 consecutive memory modules. i am confused why you have not taken the time for one word storage @arjun sir please clear the doubt.
+28
Number of modules (8), and word length have no role in the answer. It is like pipelining. Assume consecutive modules addressed are distinct in run lengths of 5 = (500/100), so that there is no waiting at any particular module. Then, the time scenario is:

100|500

****100|500

********100|500

....

-----------------------------------------------------

For requests completed in 1 ms,

total time = 100 k  + 500 = 1000,000

k = 999,500 / 100  =  9995

-------------------------------------------------------

For requests initiated in 1 ms,

total time = 100 k = 1000,000

k = 10,000
0
Agree with @madan's solution
0
@Arjun according to your approach, it should  be $3$ writes for $300ns$ (instead of 1ms). But is it so?
0
Amazing question and amazing answer. Thats GATE
0
@Arjun Sir , What if the number of modules is 4 and we have to wait for modules for a request , then how to solve it ?
+1
The question tells about the memory design in which we have interleaved memory modules(in this question they are 8).

Note: if you dont know interleaved memory design, please take a look at it.

now going back to the solution:

The scenario is:   8 memory modules are parallelly  connected to BUS.

when the request of “store” operation arrives through bus for any one particular memory module (lets suppose module 1), then it requires 100 nsec to initialize the requests of “store” operation for module 1.

After that, the BUS can move to next module to initialize  the store operation, so now BUS will initialize module 2 and it will require 100 nsec..

in the same fashion this process continues.

also note: once a module is initiated it will take 500 nsec on its own to do the rest of the store operation process, which has got nothing to do with bus.

The only job that BUS is doing here is that : it is initializing modules one after another for which it requires 100 nsec for each module.

so basically we have 1milli-second of time,

so number of initialization that BUS can do in the provided time will be =

provided time/ time required to initiate one module

= 1 milliseconds/ 100 nsec

= 10,000 times the store operation can be initiated.

 

thank you.
0

I have a doubt here

Consider the main memory system that consists of 8 memory modules attached to the system bus, which is one word wide

I understand the interleaved memory design, but in this question do they mean that 1 word of memory system=8*1Word of each Memory Module?

0
This is a pipeline concept based question and we can apply the concept solve. Hope this is helpful for better understanding of the question.
+11 votes
We have 8 total memory modules, and by the time we've completed memory write initiation to 6th memory module, 1st memory module will have completed its (100 + 500 nsec) memory write cycle. Similarly, the 2nd memory module will be ready by the end of 7th memory write initiation. Therefore, at least one memory module will always be ready for write initiation. So it's just a matter of finding how many 100 nsec are there in 1 msec: $\frac{100 \times 10^{-9}}{10^{-3}} = 10000.$
answered by Active (2.4k points)
–3 votes

100nsec occupied by data, address and control line

500nsec occupied for accepting and storing the data

total time =600nsec

1 operation will take 600nsec so maximum store operation  perform in 1msec=1/600*10-6 =1666.6 =1666

answered by Active (4.1k points)
0
"for 500 ns thereafter, the addressed memory module executes one cycle accepting and storing the data"

So, if we store data in another memory module?
+1
when address ,data ,control line is initiated, address line will contain the address where  date have to store and it is given  that only one request can be on bus at any time, after that data will be stored  in the location specified by address line.
+7
yes. Thats for the 100ns. For the next 500ns, only that particular memory block is occupied for storage. So, we can store in another memory module. And we have up to 8 memory modules->  here comes the significance of 8.
+6
ok..suppose when  we make storage request in first 100nsec for memory module m1 after that in 500nsec when module is accepting and storing the data, in this 500nsec bus is free so we can initiate 5 more request for storage in other memory module..means in 600nsec we can initiate 6 request for storage..is that a correct way sir
+2
Yes. exactly.
+1
I think Maximum number of store has to be 10000-500 (as we need to 500 to store after executing and the last one just has executed , didnt get time to store)
Answer:

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
49,400 questions
53,575 answers
185,758 comments
70,852 users