Value of "__initial_sp"

Hello , 

I am new to ARM cortex M processors and while doing some coding on my board using KEIL  i found that

at location 0x0000_0000 my debugger shows the value "0x2000_0660" . Thats the value of the MSP loaded. 

but i really dont understand how linker arrived at that value using __initial_sp 

i checked in the startup file and found this 

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size EQU 0x00000400

AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp

How this turns out to be __initial_sp = 0x2000_0660 ???

Please help to understand this .