To use your terminology, there are 5 types of memory(storage possibility) on the g80 these are - registers, shared memory, texture cache, constant cache and device memory.
You are mixing the logical model of memory with the hardware model. If you look at the hardware model of the device in the programming guide it shows you what really exists. The mapping of logical to hardware memory model is as follows(to my understanding, please correct if wrong):
registers live in register memory
shared memory lives in shared memory
constant memory lives in device memory though is ‘read through’ the constant cache
texture memory lives in device memory though is read through the texture cache
local memory lives in device memory though is logically scoped to an individual thread.
global memory lives in device memory though is scoped across all context threads.
local memory is noted as being used for register overspill by the programming guide for example. It should be avoided if possible as its very slow compared to registers.