CPU caches are generally managed entirely by hardware , other caches are managed by a different kinds of software . While CPU caches are generally managed entirely by hardware , a variety of software manages other caches .