In memory-mapped control, the device's registers are made to look as though they live in the regular memory space. That is, the CPU can issue regular memory operations (load/store) to read or write the registers of the device.
In this case, during all read and write operations, devices watch the CPU-MEMORY bus looking for memory transactions specifiying their "special" addresses. These addresses are within an address range assigned to the device, and addresses within that range refer to the individual registers of that device. This address range must be unique to that device (no more than one device can have its registers are the same address) and normally occurs beyond the end of real memory. As an O/S programmer you need to know where these registers live and the function of each register in order to program the device.
Note that no special CPU support is required in this case.