[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