1.
Caches are faster than main memory,they can decrease many time on fetching data into CPU.
But if data at main memory has updated,caches haven't updated yet,CPU would fetch the old data.
If caches made as large as a disk,it must be very expensive.It's not fitting economic of scale.
2.
Interrupts can make CPU executing some process immediately,trap is a kind of software interrupts.
Traps trigger by program.When an arithmetics error happened or program needed OS to provide some service,
a trap will be triggered.
3.
device controller can transfer information that receive from I/O device to Instruction and then communicates
with device driver.Device driver will send a signal to CPU and generate an interrupt.
The same between CPU and device controller is that both of them have registers.
4.
I/O device or program send a signal to CPU,then CPU will stop what it be executing.After CPU finish the process
that I/O device or program need CPU to execute,CPU will go back to execute its original process that breaking off
by the I/O device signal.