A data
bus is split into partitions and encoding is independently applied to data transmitted over each
bus partition to improve power and / or
throughput efficiency. The encoding can be
data bus inversion or any other suitable type of encoding. An encoding indicator symbol transmitted in conjunction with the data indicates which
bus partition is encoded, if any. In some implementations, encoding is selectively applied to each bus partition during each data transfer cycle of a parallel data bus. In some implementation, the encoding indicator symbol is a multi-level
signal where each level of the multi-level
signal represents at least two bits of information indicative of, for a corresponding bus partition, whether encoding is applied to the data to be transmitted over the bus partition. Advantageously, the encoding indicator symbol can be transmitted over a single, dedicated bus line.