If I am correct, a page in a main memory is the smallest unit unit for transfer data between the main memory and an external storage device, such as a hard disk. A cache line of a main memory is the smallest unit for transfer data between the main memory and the cpu caches.
I wonder if a page size is always or best to be a natural number of cache line size? If a cache line size is 64 byte, and a memory page size is 4KB, then each page has 4KB / 64 bytes == 64 cache lines in it.
Are a page and a cache line both fixed objects in a memory? Or are they just any contiguous block of a memory of a certain size, which can start and float anywhere within the memory?
Is it always that a cache line cannot span more than one pages, i.e. part of a cache line is in a page and the other part of the cache line is in another page?