Difference between 2-way and 4-way caches?
No, having separate caches does not turn a von Neumann machine into a Harvard machine; both caches still represent the same external memory. But separating the caches for instructions and data improves performance by preventing the two streams from interfering with each other.

The set-associativity, or "way"-ness of a cache is simply an indicator of performance (hit rate). It refers to the number of aliases for a particular cache slot that can be held in the cache before one of them needs to be replaced. In general, a cache with higher associativity will have better performance on most typical kinds of code, at the expense of requiring more complex control logic.