level 11
x86 如何关机:1.利用acpi 2.利用apm 3.利用efi 4.i8042,0x64端口发送0xfe
5.PCI io 0xcf9端口
2015年08月13日 16点08分
4
level 11
mtrr
mtrr(memory type range registers)是一组msr。mtrr可以控制物理内存的缓存类型,mtrr分为固定范围和非固定范围的,详细操作请自行搜索。缓存类型分为UC,UC-,WB,WT,WC(不可缓存,弱不可缓存,Write-Back, Write-Through, Write Combining) 。UC不解释,UC-指不可缓存的属性可被其它缓存属性覆盖,这两种属性经常被用于mmio区域(memory mapped io,如xapic寄存器映射到的0xfee00000),不会污染缓存。Write-Back 读写都经过缓存,性能最高,ram使用,通常固件会设置为这个类型。Write-Through透写,读的时候从缓存读,写的时候直接写内存而不动缓存。WC, 这时的内存写操作会被存在一个WC buffer里,里面内容差不多了快满了一次性全部写进内存,带宽高,但是不保证写的时机,适合framebuffer使用。
2015年08月15日 02点08分
6
level 11
x86的io端口0xcf9 可以控制full reset和cpu reset。测试可重启。利用i8042向0x64发送0xfe尚未成功。
2015年09月06日 09点09分
7
关于端口cf9可以在ICH datasheet中找到有关信息。
2015年09月06日 09点09分
level 11
有时gcc产生的x86代码里有rep ret这种东西,这是针对AMD进行的分支预测的优化。有两种情况建议使用。不过现在建议用ret 0代替。详见AMD什么的优化手册。
2015年09月06日 09点09分
8
level 11
经测试glibc的memcpy strcpy strcmp的sse4.2和ssse3版本版本被sse2版本完爆。猜测像sse4.2的pcmpistri虽然单指令功能强大但是会被翻译成更多的uops。avx代码未经测试。
2015年09月06日 09点09分
9
level 11
来点关于ARM的。特权和非特权模式。usr sys fiq irq svc abt und。gprs: r0 -r15 r13:sp r14:lr r15:pc还有cpsr和其它。话说是不是该看看armv8...
2015年09月06日 09点09分
10