optimal cache placement