[OSy] msim Machine check exception
Jan Smrčina
lj at fooboo.org
Sun Jan 5 18:17:30 CET 2014
Zdravím všechny,
zdá se mi, že msim nesimuluje vyjímku Machine check exception. Je to jen
můj dojem a špatné chápání manuálu, nebo tato vlastnost doopravdy v msimu
není implementována?
Vycházím z informací v sekci 4.6.6 manuálu k MIPSu staženého ze stránek
předměnu (strana 56 resp. 68. strana pdf) a dále sekce 5.2.11 téhož manuálu
(strana 84 resp. 96).
Následuje výpis ladicích informací z msimu bezprostředně po zápisu do TLB (na
konci obslužné rutiny wrapped_tlbrefill() - absence nastaveného bitu EXL
je předmětem ladění, netřeba jí věnovat pozornost).
[msim] cpu0 tlbd
[ general ][ subp 0 ][ subp 1 ]
no vpn mask g asid v d pfn c v d pfn c
00 00000000 FFFFE000:4k 0 00 0 0 00000000 0 0 0 00000000 0
01 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
02 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
03 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
04 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
05 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
06 C0000000 FFFFE000:4k 0 01 1 1 0008F000 0 0 0 00000000 0
07 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
08 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
09 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0a 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0b 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0c 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0d 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0e 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
0f 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
10 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
11 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
12 C0000000 FFFFE000:4k 0 01 1 1 0008F000 0 1 1 00091000 0
13 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
14 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
15 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
16 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
17 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
18 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
19 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1a 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1b 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1c 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1d 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1e 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
1f C0000000 FFFFE000:4k 0 01 1 1 0008F000 0 1 1 00091000 0
20 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
21 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
22 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
23 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
24 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
25 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
26 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
27 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
28 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
29 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2a 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2b 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2c 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2d 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2e 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
2f 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0
[msim] cpu0 cp0d
no name hex dump readable dump
00 Index 00000000 index: 00 res: 0 p: 0
01 Random 00000017 random: 17, res: 0000000
02 EntryLo0 000023C6 g: 0 v: 1 d: 1 c: 0 pfn: 00008F res: 0
03 EntryLo1 00002446 g: 0 v: 1 d: 1 c: 0 pfn: 000091 res: 0
04 Context 00600000 res: 0 badvpn2: 60000 ptebase: 000
05 PageMask 00000000 res1: 0000 mask: 000 (4k) res2: 00
06 Wired 00000000 wired: 0 res: 0000000
08 BadVAddr C0001000
09 Count 0001198A
0a EntryHi 00000001 asid: 01 res: 0 vpn2: 00000
0b Compare 000120DF
0c Status 1000FF00 ie: 0 exl: 0 erl: 0 ksu: 0 ux: 0 sx: 0 kx: 0
im: FF de: 0 ce: 0 ch: 0 res1: 0 sr: 0 ts: 0
bev: 0 res2: 0 re: 0 fr: 0 rp: 0 cu: 1
0d Cause 0000000C res1: 0 exccode: 03 res2: 0 ip: 00 res3: 00
ce: 0 res4: 0 bd: 0
0e EPC 80014244
0f PRId 00000400 rev: 00 imp: 04 res: 0000
10 Config 00000000 k0: 0 cu: 0 db: 0 b: 0 dc: 0 ic: 0 res: 0 eb: 0
em: 0 be: 0 sm: 0 sc: 0 ew: 0 sw: 0 ss: 0 sb: 0
ep: 0 ec: 0 cm: 0
11 LLAddr 00000000
12 WatchLo 00000000 w: 0 r: 0 res: 0 paddr0: 00000000
13 WatchHi 00000000 res: 00000000 paddr1: 0
14 XContext
1e ErrorEPC 00000000 errorepc: 00000000
[msim]
Jak je vidno, v TLB jsou nejméně dva záznamy, které jistě "matchují"
neboť jsou zcela shodné. Chápu-li text v sekci 4.6.6 dobře, tato situace
v procesoru podle manuálu nastatnemůže.
Dokonce i TS bit status registeru zůstal 0, ačkoliv k zápisu do status
registeru od instrukce tlbwr nedošlo. (Rozpor se 4.6.6 i 5.2.11).
S pozdravem,
Jan Smrčina
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 479 bytes
Desc: not available
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20140105/eb8ad9bb/attachment.sig>
More information about the NSWI004
mailing list