Differences between compute_10 and sm_10

what differences are between compute_10 and sm_10 when used by -arch and -code switch by nvcc ?

compute_10 is generic, and will generate ptx code, sm_10 is hardware specific and will generate cubin code…

so in final they do the same thing - by compute_10 is there driver compile stage where sm_10 is bin image “copied” to GPU directly , if i understand it correctly …

and diffs between _10 and _11 version is in hw version (1.0 1.1) where it would run ?