1. A method for scheduling commands in a memory controller, the method comprising: providing, by the memory controller, a plurality of data structures, each data structure comprising: a host command area; a command area; and a notes area; receiving, by the memory controller, a host command from a host in communication with the memory controller; copying, by the memory controller, the received host command into the host command area of a first data structure; generating, by the memory controller, a first command group in response to the received host command, wherein the first command group comprises at least one command for execution by an execution unit of the memory controller; copying, by the memory controller, the first command group into the command area of the first data structure; and executing, by the execution unit of the memory controller, the at least one command of the first command group.