A method comprising: receiving a command stream including a first command including at least one first read address for data read by the first command and a first write address for data that is written by the first command, wherein the command stream is received from a front end buffer that decoded the first command from a compressed bitstream; comparing the at least one first read address and the first write address to at least one second read address and a second write address of a second command stored in a buffer; storing the first command in the buffer in response to the at least one first read address not matching the at least one second read address or the first write address not matching the second write address removing the first command from the buffer in response to the at least one first read address matching the at least one read second address; combining the first and second commands to form a first aggregate command in response to the at least one first read address matching the at least one second read address and the first write address matching the second write address, the first aggregate command comprising: a read address corresponding to the at least one first read address and the at least one second read address; and a write address corresponding to the first write address and the second write address; storing the first aggregate command in the buffer in response to the at least one first read address matching the at least one second read address; and providing the first aggregate command, including both the read address and the write address, to a back end for execution. receiving a command stream including a first command including at least one first read address for data read by the first command and a first write address for data that is written by the first command, wherein the command stream is received from a front end buffer that decoded the first command from a compressed bitstream; comparing the at least one first read address and the first write address to at least one second read address and a second write address of a second command stored in a buffer; storing the first command in the buffer in response to the at least one first read address not matching the at least one second read address or the first write address not matching the second write address removing the first command from the buffer in response to the at least one first read address matching the at least one read second address; combining the first and second commands to form a first aggregate command in response to the at least one first read address matching the at least one second read address and the first write address matching the second write address, the first aggregate command comprising: a read address corresponding to the at least one first read address and the at least one second read address; and a write address corresponding to the first write address and the second write address; a read address corresponding to the at least one first read address and the at least one second read address; and a write address corresponding to the first write address and the second write address; storing the first aggregate command in the buffer in response to the at least one first read address matching the at least one second read address; and providing the first aggregate command, including both the read address and the write address, to a back end for execution.