1. A method for processing a data request in a memory control system, comprising: receiving a data request; selecting an operational mode from a set of operational modes based on the data request and a predefined selection algorithm, the selected operational comprising a programmable mode; receiving at least one parameter for the programmable mode; modifying caching logic of the programmable mode based on the received at least one parameter; processing the data request based on the modified caching logic; returning a response to the sender; monitoring the selecting activity; analyzing the selecting activity; and dynamically updating the selection algorithm based on the analysis.