We have described our general framework as a designtime mechanism to build self-optimizing memory schedulers. In this section, we briefl‚y outline how one can in fact implement a self-optimizing scheduler that can accommodate multiple objective functions, and target each as desired on the field (post-silicon), either at boot time or even dynamically by the operating system.