A hardware system comprising: a plurality of hardware blocks each hardware block comprising one or more hardware components; a hardware power controller configured to control a plurality of power domains of the hardware system, the plurality of power domains comprising power domains of the plurality of hardware blocks; and a hardware interface communicatively coupled with each of the plurality of hardware blocks and configured to: receive at least one message for a hardware block of the plurality of hardware blocks; store the at least one message; characterized in that: in response to receiving the at least one message for the hardware block, activate a power request from the hardware interface to the hardware power controller by asserting a corresponding logical signal to thereby request that the power domain of the hardware block for which a message has been received be powered up; wherein in response to the power domain of the hardware block having powered up, the hardware block is configured to: activate a power request from the hardware block to the hardware power controller to thereby request that the hardware power controller maintains power to the hardware block until the power request from the hardware block is deactivated; and activate a message accept indicator to the hardware interface, the message accept indicator indicating that the hardware block is ready to accept messages from the hardware interface; and wherein the hardware interface is further configured to: provide the at least one message to the hardware block in response to the activated message accept indicator from the hardware block. a plurality of hardware blocks each hardware block comprising one or more hardware components; a hardware power controller configured to control a plurality of power domains of the hardware system, the plurality of power domains comprising power domains of the plurality of hardware blocks; and a hardware interface communicatively coupled with each of the plurality of hardware blocks and configured to: receive at least one message for a hardware block of the plurality of hardware blocks; store the at least one message; characterized in that: in response to receiving the at least one message for the hardware block, activate a power request from the hardware interface to the hardware power controller by asserting a corresponding logical signal to thereby request that the power domain of the hardware block for which a message has been received be powered up; wherein in response to the power domain of the hardware block having powered up, the hardware block is configured to: activate a power request from the hardware block to the hardware power controller to thereby request that the hardware power controller maintains power to the hardware block until the power request from the hardware block is deactivated; and activate a message accept indicator to the hardware interface, the message accept indicator indicating that the hardware block is ready to accept messages from the hardware interface; receive at least one message for a hardware block of the plurality of hardware blocks; store the at least one message; characterized in that: in response to receiving the at least one message for the hardware block, activate a power request from the hardware interface to the hardware power controller by asserting a corresponding logical signal to thereby request that the power domain of the hardware block for which a message has been received be powered up; activate a power request from the hardware block to the hardware power controller to thereby request that the hardware power controller maintains power to the hardware block until the power request from the hardware block is deactivated; and activate a message accept indicator to the hardware interface, the message accept indicator indicating that the hardware block is ready to accept messages from the hardware interface;