A memory card that adapts its operation according to the application to
which it applied or the conditions under which it is operated. This
allows the card to dynamical self optimize. In a first set of
embodiments, the card uses host profiling where it will learn about the
host during host-card interactions and the card's controller will
optimize its algorithms accordingly. In another set of embodiments, the
host and card will report to one another their capabilities for a quality
of service negotiation. A further set of embodiments allows the storage
device to memorize access sequences issued by the host under various
predefined conditions, such as host reset or a power on boot sequence.
The storage device can use this information to optimize operation for the
expected commands. On deviation from an expected sequence, the device
would memorize the new command sequence and save it, thus operating in a
self-adaptive manner.