<p>Knuth <a href="http://www-cs-faculty.stanford.edu/~knuth/news08.html" rel="nofollow noreferrer">recently objected</a> to 64-bit systems, saying that for  programs which fit in 4 gigs of memory, "they effectively throw away half of the cache" because the pointers are twice as big as on a 32-bit system.</p>

<p>My question is: can this problem be avoided by installing a 32-bit operating system on a 64-bit machine?  And are there any bandwidth-intensive benchmarks which demonstrate the advantage in this case?</p>

The answer is: yes it can to a certain extent, although the performance difference is unlikely to be great.
Any benchmark to test this will have to do a lot of pointer resolution, which will be difficult to separate out from the noise.  Designing a benchmark that will not optimise away is difficult.
This article about flawed java benchmarks
was posted by someone in response to another question, but many of the principles described in it will apply to this.