I understand that data is transferred from the main memory to the CPU and vise versa using the data bus. But, I am unable to understand, how the data is being transferred from the main memory to the hard disk or from the hard disk to main memory. Does it use the same data bus for the transfer? My guess is that it also involves the use of a DMA controller. But the address bus has the address for the main memory, how does it finds the address of the hard disk? For the file reading, CPU sends the read request but what is stored in the address bus? the actual hard disk address or the memory address? but how the data will be directly accessed from the memory?
Does [data between memory and secondary storage] use the same data bus [as between main memory and CPU
? Depends. Both has been used, and I would be stunned if either isn't any-more. $\endgroup$