Answer:
1. Caches are relatively fast than main memory, so getting data from the cache is faster than getting it from the main or secondary memory
2. Caches are also useful when two components need to exchange data, transfers are faster when using cache and the transfer can aslo be done without having to access the main memory
Step-by-step explanation:
As stated above, caches speed up transfer time between components. This means that the component recieving data froma nother component does not have to wait as long as it would have waited if the data was coming from the main memory.
The problems caused include incosistency and cache misses
Making caches as large as disks would be ineffective because caches are volatile, they hold temporary data while we want data on disks to be persistent. Also, cache is a faster memory and they tend to be more expensive