[ TOP | Recently ]

1999-06-22 memory map


メモリマップ整理。
MIPS 的なメモリは、sys/arch/mips/include/cpureg.h にもあるけど、

/*
 * Address space.
 * 32-bit mips CPUS partition their 32-bit address space into four segments:
 *
 * kuseg   0x00000000 - 0x7fffffff  User virtual mem,  mapped
 * kseg0   0x80000000 - 0x9fffffff  Physical memory, cached, unmapped
 * kseg1   0xa0000000 - 0xbfffffff  Physical memory, uncached, unmapped
 * kseg2   0xc0000000 - 0xffffffff  kernel-virtual,  mapped
 *
 * mips1 physical memory is limited to 512Mbytes, which is
 * doubly mapped in kseg0 (cached) and kseg1 (uncached.)
 * Caching of mapped addresses is controlled by bits in the TLB entry.
 */

である。つまり、64Mメモリが実装されてたとすれば、

0x80000000 〜 0x83FFFFFF
0xA0000000 〜 0xA3FFFFFF

は、cache enable/disable が違うだけで、同じものを指す。
(ただし片方に書いてからもう片方の同じ場所を読むには cache flush しなきゃいけない)



0x00000000 〜 0x03FFFFFF
0xC0000000 〜 0xC3FFFFFF

この二つは TLB に map された的な値なアドレス???
つまり大概 TLB miss が発生する?
(ほんと?)

で、NEWS5000 は、

0xB8000000 〜 0xBFFFFFFF	APBUS。I/O なので no-cache 領域
0xFFF00000 〜 0xFFFFFFFF	ROM の work ? (1Mbyte)

となっている。
で、特に ROM のワークである

0xFFF00000 〜 0xFFFFFFFF	は、
0x03F00000 〜 0x03FFFFFF	と同一のものらしい。

つまり、0xFFF00000 〜 に限っては PA = VA ではないと。

ROM用ワークはメモリのおしり 1M を TLB で 0xFFF00000 に map しているようだ。

って、ひみつの ROM モニタコマンド 'mp' (TLBを見るコマンド)で見ると、
やっぱりそうみたいだ。

適当な個所をメモリダンプして、mp して TLB を見ることを
繰り返すと、メモリダンプした領域用の TLB がガシガシ作られているのがわかる。

ってことは ROM が上がってる時点で既に TLB 使ってるんやなぁ...

> mp  
 0|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 1|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 2|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 3|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 4|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 5|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 6|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 7|80000...:ASID=00|000000...:???:---|000000...:???:---|PGSIZE=4K
 8|fff00...:ASID=00|103f00...:NC :DVG|103f01...:NC :DVG|PGSIZE=4K
 9|03ffc...:ASID=00|003ffc...:UC :DVG|003ffd...:UC :DVG|PGSIZE=4K
10|00010...:ASID=00|000010...:UC :DVG|000011...:UC :DVG|PGSIZE=4K
11|0000c...:ASID=00|00000c...:UC :DVG|00000d...:UC :DVG|PGSIZE=4K
12|00110...:ASID=00|000110...:UC :DVG|000111...:UC :DVG|PGSIZE=4K
13|03ff6...:ASID=00|003ff6...:UC :DVG|003ff7...:UC :DVG|PGSIZE=4K
14|03fe4...:ASID=00|003fe4...:UC :DVG|003fe5...:UC :DVG|PGSIZE=4K
15|fff0e...:ASID=00|103f0e...:NC :DVG|103f0f...:NC :DVG|PGSIZE=4K
16|fff10...:ASID=00|103f10...:NC :DVG|103f11...:NC :DVG|PGSIZE=4K
17|03fe8...:ASID=00|003fe8...:UC :DVG|003fe9...:UC :DVG|PGSIZE=4K
18|03ffa...:ASID=00|003ffa...:UC :DVG|003ffb...:UC :DVG|PGSIZE=4K
19|ffff4...:ASID=00|103ff4...:NC :DVG|103ff5...:NC :DVG|PGSIZE=4K
20|00006...:ASID=00|000006...:UC :DVG|000007...:UC :DVG|PGSIZE=4K
21|0000a...:ASID=00|00000a...:UC :DVG|00000b...:UC :DVG|PGSIZE=4K
22|fff1c...:ASID=00|103f1c...:NC :DVG|103f1d...:NC :DVG|PGSIZE=4K
23|03ff4...:ASID=00|003ff4...:UC :DVG|003ff5...:UC :DVG|PGSIZE=4K
24|00012...:ASID=00|000012...:UC :DVG|000013...:UC :DVG|PGSIZE=4K
25|03ffe...:ASID=00|003ffe...:UC :DVG|003fff...:UC :DVG|PGSIZE=4K
26|fff24...:ASID=00|103f24...:NC :DVG|103f25...:NC :DVG|PGSIZE=4K
27|03fee...:ASID=00|003fee...:UC :DVG|003fef...:UC :DVG|PGSIZE=4K
28|fff28...:ASID=00|103f28...:NC :DVG|103f29...:NC :DVG|PGSIZE=4K
29|ffff2...:ASID=00|103ff2...:NC :DVG|103ff3...:NC :DVG|PGSIZE=4K
30|ffff6...:ASID=00|103ff6...:NC :DVG|103ff7...:NC :DVG|PGSIZE=4K
31|00008...:ASID=00|000008...:UC :DVG|000009...:UC :DVG|PGSIZE=4K
32|fff30...:ASID=00|103f30...:NC :DVG|103f31...:NC :DVG|PGSIZE=4K
33|03ff2...:ASID=00|003ff2...:UC :DVG|003ff3...:UC :DVG|PGSIZE=4K
34|03fe0...:ASID=00|003fe0...:UC :DVG|003fe1...:UC :DVG|PGSIZE=4K
35|00002...:ASID=00|000002...:UC :DVG|000003...:UC :DVG|PGSIZE=4K
36|c0010...:ASID=00|100010...:NC :DVG|100011...:NC :DVG|PGSIZE=4K
37|03fec...:ASID=00|003fec...:UC :DVG|003fed...:UC :DVG|PGSIZE=4K
38|00000...:ASID=00|000000...:UC :DVG|000001...:UC :DVG|PGSIZE=4K
39|ffff8...:ASID=00|103ff8...:NC :DVG|103ff9...:NC :DVG|PGSIZE=4K
40|fff40...:ASID=00|103f40...:NC :DVG|103f41...:NC :DVG|PGSIZE=4K
41|03ff8...:ASID=00|003ff8...:UC :DVG|003ff9...:UC :DVG|PGSIZE=4K
42|ffffa...:ASID=00|103ffa...:NC :DVG|103ffb...:NC :DVG|PGSIZE=4K
43|fff46...:ASID=00|103f46...:NC :DVG|103f47...:NC :DVG|PGSIZE=4K
44|03fe6...:ASID=00|003fe6...:UC :DVG|003fe7...:UC :DVG|PGSIZE=4K
45|fff4a...:ASID=00|103f4a...:NC :DVG|103f4b...:NC :DVG|PGSIZE=4K
46|fff4c...:ASID=00|103f4c...:NC :DVG|103f4d...:NC :DVG|PGSIZE=4K
47|03fea...:ASID=00|003fea...:UC :DVG|003feb...:UC :DVG|PGSIZE=4K

つまり TLB miss の時は VA = PA ってやるような処理が走っているのかな。
きっとそうに違いない。


EOF