A CPU doesn’t really read from a storage device and isn’t aware of storage. A CPU does data transfers to and from the data bus, which is connected to random access memory (RAM) and hardware ports.
A device driver (which is basically an application running on the CPU) thinks about where to send data to trigger the right activity on a storage device. So the device driver program makes the storage device read or write data, and put it into a memory buffer.
So the CPU runs programs and shuffles data in and out of the memory space. It’s not directly aware it is reading from a storage device.
Short answer: it doesn’t.
Longer answer: A CPU issues an instruction to a storage device (which likely has its microprocessor to convert that instruction to a series of lower-level commands) telling it to copy a block of data into a certain location in memory. There are a few ways it could issue this instruction, but one is that a certain memory address is reserved as the storage device’s command input, and the CPU writes specific data to it that tell it what the instruction is.
How does it know that it needs to do this? The CPU receives it’s own instructions, which were ultimately written by a programmer. Each instruction is just a long number. The first thing it does for each instruction is to decode it, which means figure out what it is supposed to do. It might use a system like “if the first digit is a 0, do arithmetic; if the first digit is 1, write to memory; if the first digit is 2, read from memory; …”. Then the other digits provide more information, like what specific arithmetic operator to use and what numbers to use it on.
I’m not sure what you mean by storage device, but when the cpu starts up there is logic in it that says it should set its instruction pointer to a particular address, and then there is logic that essentially puts the processor in a loop where it requests the data at the instruction pointer’s address from memory, executes the instruction, moves the instruction pointer forward (either by the size of the current instruction, or to some other address if the instruction was a call or jump, …) and then it repeats the loop.
A device, within the CPU, called the program counter keeps track of which instruction the CPU should execute next. One at a time, the CPU is given the next instruction. That instruction tells the CPU to do certain very basic things such as read from a location (given by a numerical address), write to a location, multiply two numbers in two different locations etc.
A read operation copies the value from a given address (contained within the instruction) to a local register within the CPU called an accumulator.
A write operation is the reverse. It copies the value in the local accumulator to the address that was given within the instruction.
Latest Answers