textures how do they work

i have read through the programming guide on this topic and wasnt satisfied.

basically: how do textures work, in relation to a binding to global memory?

say you have a vector/array of global memory, then you bind it to a texture, and now when you access the texture, it is all of a sudden ALOT faster

does binding a texture to global memory do some sort of copy into texture memory? if so, it must do it super fast.

If not, what is the point of having texture memory on the card?

if it is just some weird way of referencing the global memory, how does it make it so much faster like it is?

If a binding is copying data from global to texture memory, how is it so fast in doing so?

Can someone please explain this concept to me?

I am quite sure that the programming guide mentions the fact that texture memory is cached.
If you read randomly from global memory, it is really slow. If you issue some random reads from texture memory, there is a bigger chance that the requested memory is already in texture cache.
This is only true if you read in randomly in a small area, so people often call it locally random.

For GT200, the coalescing rules have relaxed a bit, so the speedup of using texture memory is a bit slower on that one probably.