Patent ID: 8060700

Claim:
A method for cleaning dirty data resident in an intermediate cache that is coupled to one or more clients and to an external memory, the method comprising: examining one or more entries in a notification sorter that are affirmatively associated with one or more bank pages of the external memory, wherein each affirmatively associated entry includes a first count indicating a first number of dirty data notifications having corresponding dirty data that should be written from the intermediate cache to the bank page affirmatively associated with the entry, and a second count indicating a second number of dirty data notifications having corresponding dirty data that should be written from the intermediate cache to the bank page affirmatively associated with the entry and belonging to an evict-first data class; determining a set of affirmatively associated entries having first counts that are greater than a threshold value; selecting a first entry from the set of affirmatively associated entries having the greatest second count; retrieving one or more memory addresses from a dirty data notification store that are associated with the first entry, wherein each memory address in the dirty data notification store relates to a different dirty data notification and indicates the bank page of the external memory where the dirty data corresponding to the related dirty data notification should be stored; and causing dirty data resident in the intermediate cache associated with the one or more memory addresses to be stored in the external memory.