Configurable Shared Memory Size / SM

I am reading that Shared Memory Size / SM for V100 and A100 is configurable.

Do we have more space for shared memory totally or just we can have different size for each thread blocks?
What does it mean from physical view? How it has been implemented.

Should I configure shared memory for legacy code for A100 and V100?

both

The SM has more shared memory, and the size for each threadblock may be larger.

Even if you don’t configure more memory per threadblock, the additional amount available on the SM may lead to a higher occupancy scenario.

I can’t answer a general question about legacy codes.