1. A method of caching comprising: storing at least one cache addressing function in a rewriteable data storage area; executing a program with a processor; selecting a stored cache addressing function for use with said program; and assigning cache addresses during execution of said program based on said selected cache addressing function.