queuing operations are separated into distinct logical blocks despite the need to share information . preparatory operations such as queue status fetching , correctness check and random early drop operation may be performed in one or more logical blocks and the completion of the queuing operation , either enqueuing , dequeuing or both , may be performed in another logical block . the operations processed in the first logical block may pass information to the operations processed in the second logical block to improve sharing of information .