The mainstream dynamic bandwidth allocation (DBA) architectures for Ethernet Passive Optical Networks (EPONs) have employed two independent scheduling mechanisms in order to support quality of service: inter-ONU scheduling (timeslot assignment) and intra-ONU scheduling (priority queuing). These architectures tend to implement the inter-ONU scheduling function at the OLT, whereas the intra-ONU scheduling function at the individual ONUs. Since these scheduling functions have been separated, these architectures cannot generally yield a globally optimized bandwidth allocation. In this paper, a centralized bandwidth allocation model is proposed that implements both the scheduling functions at the OLT. A credit pooling technique is employed that enables the OLT to partition the upstream bandwidth among different class of service queues, and to prevent ONUs from monopolizing the bandwidth. High network utilization is achieved by embedding ONU scheduling decisions in time and by eliminating the channel idle-time overhead, associated with many earlier DBA schemes.