1K:1024=2^10,B:Byte,4KB:4096Bytes=2^12
4096,对应16进制=1000,对应2进制=0001 0000 0000 0000
1024,对应16进制=400,对应2进制=0100 0000 0000
所谓的4K边界是指:低12bit为0的地址,例如:32’h00001000,32’h00002000…
同理1k边界是指:低10bit为0的地址,例如:32’h00000400,32’h00000800…
假设起始地址为0,则
4kb空间 : ['h0 'hfff)
16kb空间 :['h0 'h4000)
256kb空间 : ['h0 'h40000)
判断是否落入256kb空间 : ['h0 'h40000),只需要判断addr的高14位是否为0
假设基地址位base_addr,分配不同的空间大小(4kb,16kb,32kb,等等)
若分配4kb空间,判断某地址是否落入所分配的4kb空间
分配空间大小4kb. [base_addr base_addr+'h1000) 判断addr[31:12]是否等于base_addr[31:12],若相等则落入分配的4KB空间区域,否则没有
同理
分配空间大小8kb. [base_addr base_addr+'h2000) addr[31:13]与base_addr[31:13]
分配空间大小16kb. [base_addr base_addr+'h4000) addr[31:14]与base_addr[31:14]
分配空间大小32kb. [base_addr base_addr+'h8000) addr[31:15]与base_addr[31:15]
分配空间大小64kb. [base_addr base_addr+'h10000) addr[31:16]与base_addr[31:16]
分配空间大小128kb. [base_addr base_addr+'h20000) addr[31:17]与base_addr[31:17]
分配空间大小256kb. [base_addr base_addr+'h40000) addr[31:18]与base_addr[31:18]
1K= 1024B(字节)=2^10
1M = 1024 K = 2^20
1G = 1024 M = 2^30
1kb = 1*1024;
4kb = 4*1024;
16kb = 16*1024;
32kb = 32*1024;
64kb = 64*1024
4G=4×1024 M=4×1024×1024K=4×1024×1024×1024B=2^32B
即4Gb空间地址范围:0x00000000-0xFFFFFFFF