[内核文档]MTRR (Memory Type Range Register) 控制

本文介绍了MTRR(Memory Type Range Register)在Intel P6系列处理器上的作用,它用于控制内存区域访问,尤其对基于PCI或AGP总线的视频卡性能提升显著。通过写捆绑技术,可以提升图像写操作性能。文章还讨论了不同处理器如Cyrix、AMD和Centaur等对MTRR的支持,并展示了如何通过/proc/mtrr文件在Linux系统中进行MTRR的读取和设置操作,包括Shell命令和C程序示例。
摘要由CSDN通过智能技术生成

MTRR (Memory Type Range Register) control

 

         Intel P6系列的处理器上(Pentium Pro, Pentium II and later),内存类型范围寄存器(MTRRs)可以控制处理器对内存区域的访问。 如果系统中存在基于PCIAGP总线的视频卡(VGA),MTRR将具有非常显著的作用。通过使能写捆绑(Write-combining),可以在总线传输开始前,将若干个总线写传输捆绑成一次较大的写传输操作。这可以将图像写操作的性能提高2.5倍或者更多。

         Cyrix 6x86, 6x86MX 以及 M II处理器具有地址范围寄存器(ARRsAddress Range Registers),ARRs可以提供与MTRR类似的功能,能够用来模拟MTRRs

         AMD K6-2stepping 8及以上)与K6-3处理器拥有2MTRRAMD Athlon系列的处理器拥有8个与Intel类似的MTRRs

         Centaur C6WinChip)拥有8MCRs,运行写捆绑(WC)。

         VIA Cyrix III 以及 VIA C3 CPU能够提供8个类似于Intel的处理器。

         选中配置选项CONFIG_MTRR后,内核将创建文件/proc/mtrr,通过此文件,能够对MTRR进行操作。X server通常就是这样做的。当然了,今后会有更加通用的接口,因而其它处理器上类似的控制寄存器也能够被轻易的支持。

         文件/proc/mtrr具有2个接口:一个是ASCII接口,此接口可读可写。ASCII接口适用于管理。另一个是ioctl()接口,该接口适用于C程序(如,X Server)。下面我们将通过一些命令与C代码,详细地介绍这些接口。

Shell中读取MTRRs

 

% cat /proc/mtrr

reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1

reg01: base=0x08000000 ( 128MB), size=  64MB: write-back, count=1

利用C-shell创建MTRRs

# echo "base=0xf8000000 size=0x400000 type=write-combining" >! /proc/mtrr

或者使用bash

# echo "base=0xf8000000 size=0x400000 type=write-combining" >| /proc/mtrr

结果将变为:

% cat /proc/mtrr

reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1

reg01: base=0x08000000 ( 128MB), size=  64MB: write-back, count=1

reg02: base=0xf8000000 (3968MB), size=   4MB: write-combining, count=1

新增加的区域就是Video RAM,基地址为0xf8000000,大小为4MB。在X Server的输出信息中,可以找到基地址,即线性缓存地址(linear framebuffer address)。包含基地址的输出信息可能如下:

(--) S3: PCI: 968 rev 0, Linear FB @ 0xf8000000

注意:X Server可能会修改framebuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值