X86汇编 - 访问芯片

5
假设我的GPU包括一个名为ADT7473的芯片。我有兴趣从这个芯片中获取关于我的显卡温度的信息。我的问题是,如何访问这个芯片?是否使用IN/OUT指令来完成?
编辑:
我可能会添加在芯片文档中找到的这些行:

表格18. 温度读取寄存器 (上电默认值 = 0x01) (注1和2)

0x25 : 只读 : 远程1温度读数 (读数的8个最高有效位)。 (注3和4)

0x26 : 只读 : 本地温度读数 (读数的8个最高有效位)。

0x27 : 只读 : 远程2温度读数 (读数的8个最高有效位)。 (注3和4)

有人告诉我卡上应该有一个可访问的接口芯片。我怎么知道应该使用哪个端口?或者这个芯片的名称是什么?


对于NVIDIA或ATI GPU,请查看此链接:https://dev59.com/O3E85IYBdhLWcg3wUBoZ - karlphillip
这是最好的方法,无需使用汇编语言,供应商已经为他们的温度传感器提供了接口。 - Dr. Snoopy
1个回答

3
根据规格说明,该芯片使用SMBus协议。因此,该芯片使用SMBus协议从图形卡上的某个接口芯片进行访问,并可能作为I2C / SMBus设备导出到操作系统。要访问它,您需要使用IN / OUT访问接口芯片。
例如,我的USB电视捕获卡有几个芯片: -一个USB接口芯片,该芯片具有用于控制卡上其他芯片(I2C总线,GPIO引脚等)的某些引脚。 -调谐器和解调器芯片,需要通过接口芯片间接访问。

1
偶尔你会遇到也被映射到内存中的I/O设备(出于速度的考虑,历史上,在x86芯片上运行in和out指令非常缓慢)。 - Brian Knoblauch
谢谢您的回答。不过,我该如何知道要访问哪个芯片或使用哪个输入/输出端口呢? - Barak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接