A computing system comprising: a shared physical interface; a processor coupled to the shared physical interface; a plurality of input/output, IO, drivers, each of the plurality of IO drivers configured to tunnel traffic through the shared physical interface in accordance with a corresponding protocol, wherein the corresponding protocol differs from protocols corresponding to other IO drivers of the plurality of IO drivers; a semiconductor apparatus comprising: one or more substrates; and logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic configured to: collect state data from the plurality of IO drivers, wherein the state data indicates, for each of the plurality of IO drivers, a level of activity and/or a bandwidth demand of the respective IO driver; determine, based on the state data, a bandwidth allocation of the shared physical interface among the plurality of IO drivers; and initiate, based on the bandwidth allocation, a state change of the processor coupled to the shared physical interface, wherein the state change comprises one or more of a clock frequency change, an operating voltage change, a power state change or a performance state change. a shared physical interface; a processor coupled to the shared physical interface; a plurality of input/output, IO, drivers, each of the plurality of IO drivers configured to tunnel traffic through the shared physical interface in accordance with a corresponding protocol, wherein the corresponding protocol differs from protocols corresponding to other IO drivers of the plurality of IO drivers; a semiconductor apparatus comprising: one or more substrates; and logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic configured to: collect state data from the plurality of IO drivers, wherein the state data indicates, for each of the plurality of IO drivers, a level of activity and/or a bandwidth demand of the respective IO driver; determine, based on the state data, a bandwidth allocation of the shared physical interface among the plurality of IO drivers; and initiate, based on the bandwidth allocation, a state change of the processor coupled to the shared physical interface, wherein the state change comprises one or more of a clock frequency change, an operating voltage change, a power state change or a performance state change. one or more substrates; and logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic configured to: collect state data from the plurality of IO drivers, wherein the state data indicates, for each of the plurality of IO drivers, a level of activity and/or a bandwidth demand of the respective IO driver; determine, based on the state data, a bandwidth allocation of the shared physical interface among the plurality of IO drivers; and initiate, based on the bandwidth allocation, a state change of the processor coupled to the shared physical interface, wherein the state change comprises one or more of a clock frequency change, an operating voltage change, a power state change or a performance state change. collect state data from the plurality of IO drivers, wherein the state data indicates, for each of the plurality of IO drivers, a level of activity and/or a bandwidth demand of the respective IO driver; determine, based on the state data, a bandwidth allocation of the shared physical interface among the plurality of IO drivers; and initiate, based on the bandwidth allocation, a state change of the processor coupled to the shared physical interface, wherein the state change comprises one or more of a clock frequency change, an operating voltage change, a power state change or a performance state change.