162 views
0 votes
0 votes

๐—ช๐—ถ๐—ธ๐—ถ๐—ฝ๐—ฒ๐—ฑ๐—ถ๐—ฎ ๐˜€๐—ฎ๐˜†๐˜€ ๐˜๐—ต๐—ถ๐˜€ ๐—ฎ๐—ฏ๐—ผ๐˜‚๐˜ ๐——๐— ๐—” ๐—ฏ๐˜‚๐—ฟ๐˜€๐˜ ๐—บ๐—ผ๐—ฑ๐—ฒ (https://en.wikipedia.org/wiki/Direct_memory_access#Burst_mode)

In burst mode, an entire block of data is transferred in one contiguous sequence. Once the DMA controller is granted access to the system bus by the CPU, it transfers all bytes of data in the data block before releasing control of the system buses back to the CPU, but renders the CPU inactive for relatively long periods of time. The mode is also called "Block Transfer Mode".

๐—”๐—ฏ๐—ผ๐˜‚๐˜ % ๐—–๐—ฃ๐—จ ๐—ฐ๐—ผ๐—ป๐˜€๐˜‚๐—บ๐—ฒ๐—ฑ, ๐˜๐—ต๐—ถ๐˜€ ๐—น๐—ถ๐—ป๐—ธ (https://gateoverflow.in/116524/coa-dma-doubt?show=116876#a116876) ๐˜€๐—ฎ๐˜†๐˜€:

% CPU consumed = [ (Initial time + termination time)/ total time ] * 100

where, total time = Initial time + termination time = transfer time

OR in other words,

total time = bus grant time + bus release time + transfer time

 

๐—ง๐—ต๐—ถ๐˜€ (https://gateoverflow.in/37355/dma-operation?show=63806#a63806) ๐—ฝ๐—ฟ๐—ผ๐—ฏ๐—น๐—ฒ๐—บ ๐˜€๐—ฎ๐˜†๐˜€

% of time cpu consumed is: 2/(2+64)

that is,

% CPU consumed = cycle-time / (cycle_time + transfer_time)

 

๐——๐—ผ๐˜‚๐—ฏ๐˜๐˜€

1. Dont you think that two gateoverflow links give different formula?

2. CPU dont hold bus for full duration of (bus grant time + bus release time + transfer time). So should we consider this full duration as CPU consumed or just (bus grant time + bus release time)?

Please log in or register to answer this question.

Related questions

0 votes
0 votes
1 answer
1