Re: Regarding device cycles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sri,

On Mon, Oct 11, 2010 at 6:42 PM, Sri Ram Vemulpali
<sri.ram.gmu06@xxxxxxxxx> wrote:
> Hi all,
>
>   I have a doubt regarding devices, with respect to how they operate.
> Every device needs some cycles to operate. So, devices like NIC, Video
> controller, memory controller, ...., does they all have their own
> clock or core. Or these controllers act in respect to system clock are
> CPU clock.
> Please help me clarify this doubt.
>
> I know DMA steals some CPU cycles to transfer data, I mean does
> operation with cpu cycles in parallel. Thanks.

Generally speaking, every device is driven by a clock. Sometimes that
clock is the same as the CPU clock, and sometimes it's derived from
the CPU clock. Sometimes, a device will have several clock generators
(PLLs) and you can choose which PLL the clock comes from and divisors,
etc.

Actually, DMA doesn't steal CPU cycles, it steals memory bus cycles.

If the CPU is executing from cache, then the memory bus is generally
idle (unless it's prefetching to load the cache). Most SOCs (system on
chip) devices have something called a bus aribter which allows you to
set the relative priority of the CPU versus DMA, etc. Which gets
higher priority is determined at the system level, and it really
depends on the types of apps your doing and what your real-time
requirements are.

Most devices, like a UART, runs at the same time as the CPU, and
characters leaving the FIFO don't cause the CPU to slow down. Devices
which access memory bus (like a DMA controller, sometimes an LCD
controller) may cause the CPU to slow down (depends on how the bus
arbiter is set).

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.DaveHylands.com/

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux