一种PCI设备与系统内存的通讯方法和装置.pdf

上传人:r5 文档编号:968175 上传时间:2018-03-22 格式:PDF 页数:9 大小:411.35KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910189282.3

申请日:

2009.12.23

公开号:

CN102110054A

公开日:

2011.06.29

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/02申请日:20091223|||公开

IPC分类号:

G06F12/02; G06F13/16

主分类号:

G06F12/02

申请人:

TCL集团股份有限公司

发明人:

刘纹高

地址:

516001 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心

优先权:

专利代理机构:

深圳市君胜知识产权代理事务所 44268

代理人:

王永文

PDF下载: PDF下载
内容摘要

本发明属于计算机技术领域,公开了一种PCI设备与系统内存的通讯方法及装置,所述方法包括以下步骤:获取系统内存地址范围以及PCI设备的寻址范围;判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;当所述系统内存地址范围的一部分在所述PCI设备的寻址范围之外时,则进行如下步骤:将所述PCI设备与在其寻址范围内的系统内存地址建立映射关系,进行通讯;设置一内存转址区;控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。本发明解决了由于系统内存地址大于PCI的寻址范围,导致PCI设备寻址范围之外的CPU内存地址无法与PCI设备之间进行通讯的问题,给用户的使用带来极大的便利。

权利要求书

1: 一种 PCI 设备与系统内存的通讯方法, 其特征在于, 所述方法包括以下步骤 : 获取系统内存地址范围以及 PCI 设备的寻址范围 ; 判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址范围之内 ; 当所述系统内存地址范围的一部分在所述 PCI 设备的寻址范围之外时, 则进行如下步 骤: 将所述 PCI 设备与在其寻址范围内的系统内存地址建立映射关系, 进行通讯 ; 设置一内存转址区 ; 控制所述 PCI 设备寻址范围之外的系统内存地址通过所述内存转 址区进行与所述 PCI 设备的通讯。
2: 如权利要求 1 所述的 PCI 设备与系统内存的通讯方法, 其特征在于, 设置一内存转址 区的步骤具体包括 : 根据所述 PCI 设备以及所述系统内存地址一次性最大传递数据的大小确定所述内存 转址区的大小。
3: 如权利要求 1 所述的外部连接设备与系统内存的通讯方法, 其特征在于, 所述 PCI 设 备寻址范围之外的系统内存地址通过所述内存转址区实现与所述 PCI 设备的通讯的步骤 具体包括 : 所述 PCI 设备寻址范围之外的系统内存地址向 PCI 设备发送数据时, 将所发送数据复 制到内存转址区, 所述内存转址区将所述数据发送至相应的 PCI 设备 ; PCI 设备向所述 PCI 设备寻址范围之外的系统内存地址发送数据时, 将所发送数据发 送至到所述内存转址区, 所述内存转址区将所述数据复制到相应的系统内存地址。
4: 如权利要求 1 所述的外部连接设备与系统内存的通讯方法, 其特征在于, 所述内存 转址区设置与所述 PCI 设备和所述系统内存地址的共享内存空间中。
5: 如权利要求 1 所述的外部连接设备与系统内存的通讯方法, 其特征在于, 所述方法 还包括 : 判断所述系统是否停止运行 ; 若是, 则释放所述内存转址区, 否则保持所述内存转址区的运行。
6: 一种 PCI 设备与系统内存的通讯装置, 其特征在于, 所述装置包括 : 信息获取模块, 用于获取系统内存地址范围以及 PCI 设备的寻址范围 ; 信息比较模块, 用于判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址范围 之内 ; 通讯模块, 用于进行通讯 ; 以及, 内存转址区设置模块, 用于设置一内存转址区, 所述通讯模块控制所述 PCI 设备寻址 范围之外的系统内存地址通过所述内存转址区进行与所述 PCI 设备的通讯。
7: 如权利要求 6 所述的 PCI 设备与系统内存的通讯装置, 其特征在于, 所述内存转址区设置模块, 还用于判断所述 PCI 设备以及所述系统内存地址一次性最 大传递数据的大小, 并根据所述 PCI 设备以及所述系统内存地址一次性最大传递数据的大 小确定所述内存转址区的大小。
8: 如权利要求 6 所述的 PCI 设备与系统内存的通讯装置, 其特征在于, 所述通讯模块包 括: 转发模块, 用于将接收到的数据发送至相应的 PCI 设备或者 PCI 设备寻址范围之外的 2 系统内存地址。
9: 如权利要求 6 所述的 PCI 设备与系统内存的通讯装置, 其特征在于, 内存转址区设置 模块在所述 PCI 设备和所述系统内存地址的共享内存空间设置内存转址区。
10: 如权利要求 6 所述的 PCI 设备与系统内存的通讯装置, 其特征在于, 所述装置还包 括: 系统运行判断模块, 用于判断所述系统是否停止运行 ; 内存转址区控制模块, 用于释放或者保持所述内存转址区。

说明书


一种 PCI 设备与系统内存的通讯方法和装置

    【技术领域】
     本发明属于计算机技术领域, 具体涉及一种 PCI 设备与系统内存的通讯方法和装置。 背景技术
     PCI 插 槽 是 基 于 PCI 局 部 总 线 的 扩 展 插 槽, 位于主板上加速图形接口 (Accelerate Graphical Port, AGP) 插槽的下方, 工业标准结构总线 (IndustrialStandard Architecture, ISA) 插槽的上方。其位宽为 32 位或 64 位, 工作频率一般为 33MHz, 一般最 大数据传输率为 133MB/sec(32 位 ) 和 266MB/sec(64 位 )。PCI 插槽可插接显卡、 声卡、 网 卡、 内置 Modem、 内置 ADSL Modem、 USB2.0 卡、 IEEE1394 卡、 IDE 接口卡、 RAID 卡、 电视卡、 视 频采集卡以及其它种类繁多的扩展卡。 PCI 插槽是主板的主要扩展插槽, 通过插接不同的扩 展卡可以获得目前电脑能实现的几乎所有功能, 是名副其实的 “万用” 扩展插槽。 在具体实施过程中, 计算机的 CPU 和 PCI 设备之间设置有两者共享的内存空间, 设 备驱动通过在两者共享的内存空间控制 PCI 设备, 同时在 CPU 与 PCI 设备之间传递数据。
     譬如, 以共享内存空间为控制与状态寄存器为例, 设备的控制与状态寄存器用来 控制设备并读取设备的信息 : 例如 PCI SCSI 设备驱动可以通过读取其控制器与状态寄存 器, 获取一 SCSI 设备, 该 SCSI 设备已准备好将一块数据写入 SCSI 磁盘。同时, 还可以在设 备加电后, 通过对控制器与状态寄存器写入信息来启动设备。
     其中, 在 CPU 和 PCI 设备的共享内存空间, 是靠内存地址的映射关系来实现数据的 通讯, 如果 CPU 的内存地址处于 PCI 的寻址范围以内, 则可以建立映射关系, 进行 CPU 与 PCI 设备之间的数据通讯, 但是如果内存地址大于 PCI 的寻址范围, 且 CPU 使用的内存范围超出 PCI 寻址范围, 则会导致 CPU 与 PCI 设备之间无法建立正常的数据通讯。
     如何解决由于系统内存地址范围大于 PCI 的寻址范围, 导致 CPU 与 PCI 设备之间 无法进行通讯的问题, 是计算机技术领域研究的方向之一。
     发明内容 本发明的目的在于提供一种 PCI 设备与系统内存的通讯方法, 旨在解决由于系统 内存地址范围大于 PCI 的寻址范围, 导致 CPU 与 PCI 设备之间无法进行通讯的问题。
     本发明实施例是这样实现的, 一种 PCI 设备与系统内存的通讯方法, 所述方法包 括以下步骤 :
     获取系统内存地址范围以及 PCI 设备的寻址范围 ;
     判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址范围之内 ;
     当所述系统内存地址范围的一部分在所述 PCI 设备的寻址范围之外时, 则进行如 下步骤 :
     将所述 PCI 设备与在其寻址范围内的系统内存地址建立映射关系, 进行通讯 ;
     设置一内存转址区 ; 控制所述 PCI 设备寻址范围之外的系统内存地址通过所述内
     存转址区进行与所述 PCI 设备的通讯。
     本发明实施例的还一目的在于提供一种 PCI 设备与系统内存的通讯装置, 所述装 置包括 :
     信息获取模块, 用于获取系统内存地址范围以及 PCI 设备的寻址范围 ;
     信息比较模块, 用于判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址 范围之内 ;
     通讯模块, 用于进行通讯 ; 以及,
     内存转址区设置模块, 用于设置一内存转址区, 所述通讯模块控制所述 PCI 设备 寻址范围之外的系统内存地址通过所述内存转址区进行与所述 PCI 设备的通讯。
     本发明实施例通过在 PCI 设备和系统内存的共享空间设置一内存转址区, 超出 PCI 设备寻址范围的系统内存地址, 能够通过该内存转址区实现与 PCI 设备的通讯, 解决了 由于系统内存地址范围大于 PCI 的寻址范围, 导致 CPU 与 PCI 设备之间无法进行通讯的问 题, 给用户的使用带来极大的便利。 附图说明
     图 1 示出了本发明实施例提供的 PCI 设备与系统内存的通讯方法的流程图 ; 图 2 示出了本发明实施例提供的 PCI 设备与系统内存的通讯装置的结构图。具体实施方式
     为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用以解释本发明, 并不 用于限定本发明。
     本发明实施例通过在 PCI 设备和系统内存的共享空间设置一内存转址区, 超出 PCI 设备寻址范围的系统内存地址能够通过该内存转址区实现与 PCI 设备的通讯。
     图 1 示出了本发明实施例提供的 PCI 设备与系统内存的通讯方法的流程。
     在步骤 S101 中, 在有 PCI 设备连接计算机系统时, 获取系统内存地址范围以及 PCI 设备的寻址范围 ;
     在步骤 S102 中, 判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址范围 之内 ; 若是, 则进行步骤 S103, 否则进行步骤 S105 ;
     在 步 骤 S103 中, 建 立 所 述 PCI 设 备 与 所 述 系 统 内 存 地 址 的 直 接 存 储 器 存 取 (Direct Memory Access, DMA) 映射关系, 根据建立的 DMA 映射关系进行数据的通讯 ;
     当然, DMA 映射关系是在两者共享的内存空间内建立的。
     在步骤 S104 中, 将所述 PCI 设备与在其寻址范围内的系统内存地址建立 DMA 映射 关系 ;
     在步骤 S105 中, 设置一内存转址区 ; 其中, 该内存转址区设置在 PCI 设备和系统内 存 DMA 映射的内存空间内。
     在具体实施过程中, 根据所述 PCI 设备以及所述系统内存地址一次性最大传递数 据的大小确定所述内存转址区的大小。
     在步骤 S106 中, 判断需进行数据通讯的系统内存地址是否为 PCI 设备的寻址范围之内的地址, 若是, 则按照步骤 S104 建立的 DMA 映射关系进行通讯, 否则进行步骤 S107 ;
     在步骤 S107 中, 所述 PCI 设备寻址范围之外的系统内存地址通过所述内存转址区 进行与所述 PCI 设备的通讯。
     该步骤 S107 具体包括 :
     (1)、 所述 PCI 设备寻址范围之外的系统内存地址向 PCI 设备发送数据时, 将所发 送数据复制到内存转址区, 所述内存转址区将所述数据发送至相应的 PCI 设备 ;
     (2)、 PCI 设备向所述 PCI 设备寻址范围之外的系统内存地址发送数据时, 将所发 送数据发送至到所述内存转址区, 所述内存转址区将所述数据复制到相应的系统内存地 址。
     在步骤 S108 中, 判断所述系统是否停止运行, 若是, 则进行步骤 S109, 否则继续进 行 S106 ;
     在步骤 S109 中, 释放所述内存转址区的内存。
     图 2 示出了本发明实施例提供的 PCI 设备与系统内存的通讯装置的结构。所述装 置包括信息获取模块 21、 信息比较模块 22、 内存转址区设置模块 23、 通讯模块 24、 系统运行 判断模块 25 以及内存转址区控制模块 26。 其中, 信息获取模块 21 获取系统内存地址范围以及 PCI 设备的寻址范围 ;
     信息比较模块 22 判断所述系统内存地址范围是否全部在所述 PCI 设备的寻址范 围之内 :
     当所述信息比较模块 22 判断所述系统内存地址范围全部在所述 PCI 设备的寻址 范围之内时, 通讯模块 24 将所述 PCI 设备与系统内存地址建立映射关系后进行通讯 ;
     当所述信息比较模块 22 判断所述系统内存地址范围没有全部在所述 PCI 设备的 寻址范围之内时, 内存转址区设置模块 23 设置一内存转址区 ;
     在具体实施过程中, 所述内存转址区设置模块 23 判断所述 PCI 设备以及所述系统 内存地址一次性最大传递数据的大小, 并根据所述 PCI 设备以及所述系统内存地址一次性 最大传递数据的大小确定所述内存转址区的大小。
     在具体实施过程中, 内存转址区设置模块 23 在所述 PCI 设备和所述系统内存的 DMA 映射内设置内存转址区。
     通讯模块 24 将所述 PCI 设备与在其寻址范围内的系统内存地址建立映射关系进 行通讯 ; 同时通讯模块 24 控制所述 PCI 设备寻址范围之外的系统内存地址通过所述内存转 址区进行与所述 PCI 设备的通讯。
     在具体实施过程中, 所述通讯模块 24 包括转发模块 241 :
     其中, 系统内存将所述 PCI 设备寻址范围之外的系统内存地址数据复制到内存转 址区 ; 或者, PCI 设备发送数据发送至所述内存转址区 ;
     转发模块 241 将接收到的数据发送至相应的 PCI 设备或者 PCI 设备寻址范围之外 的系统内存地址。
     系统运行判断模块 25 判断所述系统是否停止运行 ; 若系统运行判断模块 25 判断 所述系统没有停止运行, 则内存转址区控制模块 26 占有所述内存转址区, 若系统运行判断 模块 25 判断所述系统停止运行, 内存转址区控制模块 26 释放所述内存转址区。
     本发明实施例通过设置一内存转址区, 超出 PCI 设备寻址范围的系统内存地址能
     够通过该内存转址区实现与 PCI 设备的通讯, 解决了由于系统内存地址大于 PCI 的寻址范 围, 导致 CPU 与 PCI 设备之间无法进行通讯的问题, 给用户的使用带来极大的便利。
     应当理解的是, 对本领域普通技术人员来说, 可以根据上述说明加以改进或变换, 而这些改进和变换都应属于本发明所附权利要求的保护范围。

一种PCI设备与系统内存的通讯方法和装置.pdf_第1页
第1页 / 共9页
一种PCI设备与系统内存的通讯方法和装置.pdf_第2页
第2页 / 共9页
一种PCI设备与系统内存的通讯方法和装置.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种PCI设备与系统内存的通讯方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种PCI设备与系统内存的通讯方法和装置.pdf(9页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102110054A43申请公布日20110629CN102110054ACN102110054A21申请号200910189282322申请日20091223G06F12/02200601G06F13/1620060171申请人TCL集团股份有限公司地址516001广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心72发明人刘纹高74专利代理机构深圳市君胜知识产权代理事务所44268代理人王永文54发明名称一种PCI设备与系统内存的通讯方法和装置57摘要本发明属于计算机技术领域,公开了一种PCI设备与系统内存的通讯方法及装置,所述方法包括以下步骤获取系统内存地址范围以及PC。

2、I设备的寻址范围;判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;当所述系统内存地址范围的一部分在所述PCI设备的寻址范围之外时,则进行如下步骤将所述PCI设备与在其寻址范围内的系统内存地址建立映射关系,进行通讯;设置一内存转址区;控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。本发明解决了由于系统内存地址大于PCI的寻址范围,导致PCI设备寻址范围之外的CPU内存地址无法与PCI设备之间进行通讯的问题,给用户的使用带来极大的便利。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书4页附图2页CN1021。

3、10057A1/2页21一种PCI设备与系统内存的通讯方法,其特征在于,所述方法包括以下步骤获取系统内存地址范围以及PCI设备的寻址范围;判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;当所述系统内存地址范围的一部分在所述PCI设备的寻址范围之外时,则进行如下步骤将所述PCI设备与在其寻址范围内的系统内存地址建立映射关系,进行通讯;设置一内存转址区;控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。2如权利要求1所述的PCI设备与系统内存的通讯方法,其特征在于,设置一内存转址区的步骤具体包括根据所述PCI设备以及所述系统内存地址一次性最大。

4、传递数据的大小确定所述内存转址区的大小。3如权利要求1所述的外部连接设备与系统内存的通讯方法,其特征在于,所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区实现与所述PCI设备的通讯的步骤具体包括所述PCI设备寻址范围之外的系统内存地址向PCI设备发送数据时,将所发送数据复制到内存转址区,所述内存转址区将所述数据发送至相应的PCI设备;PCI设备向所述PCI设备寻址范围之外的系统内存地址发送数据时,将所发送数据发送至到所述内存转址区,所述内存转址区将所述数据复制到相应的系统内存地址。4如权利要求1所述的外部连接设备与系统内存的通讯方法,其特征在于,所述内存转址区设置与所述PCI设备和所。

5、述系统内存地址的共享内存空间中。5如权利要求1所述的外部连接设备与系统内存的通讯方法,其特征在于,所述方法还包括判断所述系统是否停止运行;若是,则释放所述内存转址区,否则保持所述内存转址区的运行。6一种PCI设备与系统内存的通讯装置,其特征在于,所述装置包括信息获取模块,用于获取系统内存地址范围以及PCI设备的寻址范围;信息比较模块,用于判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;通讯模块,用于进行通讯;以及,内存转址区设置模块,用于设置一内存转址区,所述通讯模块控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。7如权利要求6所述的P。

6、CI设备与系统内存的通讯装置,其特征在于,所述内存转址区设置模块,还用于判断所述PCI设备以及所述系统内存地址一次性最大传递数据的大小,并根据所述PCI设备以及所述系统内存地址一次性最大传递数据的大小确定所述内存转址区的大小。8如权利要求6所述的PCI设备与系统内存的通讯装置,其特征在于,所述通讯模块包括转发模块,用于将接收到的数据发送至相应的PCI设备或者PCI设备寻址范围之外的权利要求书CN102110054ACN102110057A2/2页3系统内存地址。9如权利要求6所述的PCI设备与系统内存的通讯装置,其特征在于,内存转址区设置模块在所述PCI设备和所述系统内存地址的共享内存空间设置。

7、内存转址区。10如权利要求6所述的PCI设备与系统内存的通讯装置,其特征在于,所述装置还包括系统运行判断模块,用于判断所述系统是否停止运行;内存转址区控制模块,用于释放或者保持所述内存转址区。权利要求书CN102110054ACN102110057A1/4页4一种PCI设备与系统内存的通讯方法和装置技术领域0001本发明属于计算机技术领域,具体涉及一种PCI设备与系统内存的通讯方法和装置。背景技术0002PCI插槽是基于PCI局部总线的扩展插槽,位于主板上加速图形接口ACCELERATEGRAPHICALPORT,AGP插槽的下方,工业标准结构总线INDUSTRIALSTANDARDARCHI。

8、TECTURE,ISA插槽的上方。其位宽为32位或64位,工作频率一般为33MHZ,一般最大数据传输率为133MB/SEC32位和266MB/SEC64位。PCI插槽可插接显卡、声卡、网卡、内置MODEM、内置ADSLMODEM、USB20卡、IEEE1394卡、IDE接口卡、RAID卡、电视卡、视频采集卡以及其它种类繁多的扩展卡。PCI插槽是主板的主要扩展插槽,通过插接不同的扩展卡可以获得目前电脑能实现的几乎所有功能,是名副其实的“万用”扩展插槽。0003在具体实施过程中,计算机的CPU和PCI设备之间设置有两者共享的内存空间,设备驱动通过在两者共享的内存空间控制PCI设备,同时在CPU与P。

9、CI设备之间传递数据。0004譬如,以共享内存空间为控制与状态寄存器为例,设备的控制与状态寄存器用来控制设备并读取设备的信息例如PCISCSI设备驱动可以通过读取其控制器与状态寄存器,获取一SCSI设备,该SCSI设备已准备好将一块数据写入SCSI磁盘。同时,还可以在设备加电后,通过对控制器与状态寄存器写入信息来启动设备。0005其中,在CPU和PCI设备的共享内存空间,是靠内存地址的映射关系来实现数据的通讯,如果CPU的内存地址处于PCI的寻址范围以内,则可以建立映射关系,进行CPU与PCI设备之间的数据通讯,但是如果内存地址大于PCI的寻址范围,且CPU使用的内存范围超出PCI寻址范围,则。

10、会导致CPU与PCI设备之间无法建立正常的数据通讯。0006如何解决由于系统内存地址范围大于PCI的寻址范围,导致CPU与PCI设备之间无法进行通讯的问题,是计算机技术领域研究的方向之一。发明内容0007本发明的目的在于提供一种PCI设备与系统内存的通讯方法,旨在解决由于系统内存地址范围大于PCI的寻址范围,导致CPU与PCI设备之间无法进行通讯的问题。0008本发明实施例是这样实现的,一种PCI设备与系统内存的通讯方法,所述方法包括以下步骤0009获取系统内存地址范围以及PCI设备的寻址范围;0010判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;0011当所述系统内存地址范。

11、围的一部分在所述PCI设备的寻址范围之外时,则进行如下步骤0012将所述PCI设备与在其寻址范围内的系统内存地址建立映射关系,进行通讯;0013设置一内存转址区;控制所述PCI设备寻址范围之外的系统内存地址通过所述内说明书CN102110054ACN102110057A2/4页5存转址区进行与所述PCI设备的通讯。0014本发明实施例的还一目的在于提供一种PCI设备与系统内存的通讯装置,所述装置包括0015信息获取模块,用于获取系统内存地址范围以及PCI设备的寻址范围;0016信息比较模块,用于判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内;0017通讯模块,用于进行通讯;以及。

12、,0018内存转址区设置模块,用于设置一内存转址区,所述通讯模块控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。0019本发明实施例通过在PCI设备和系统内存的共享空间设置一内存转址区,超出PCI设备寻址范围的系统内存地址,能够通过该内存转址区实现与PCI设备的通讯,解决了由于系统内存地址范围大于PCI的寻址范围,导致CPU与PCI设备之间无法进行通讯的问题,给用户的使用带来极大的便利。附图说明0020图1示出了本发明实施例提供的PCI设备与系统内存的通讯方法的流程图;0021图2示出了本发明实施例提供的PCI设备与系统内存的通讯装置的结构图。具体实施。

13、方式0022为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。0023本发明实施例通过在PCI设备和系统内存的共享空间设置一内存转址区,超出PCI设备寻址范围的系统内存地址能够通过该内存转址区实现与PCI设备的通讯。0024图1示出了本发明实施例提供的PCI设备与系统内存的通讯方法的流程。0025在步骤S101中,在有PCI设备连接计算机系统时,获取系统内存地址范围以及PCI设备的寻址范围;0026在步骤S102中,判断所述系统内存地址范围是否全部在所述PCI设备的寻址范围之内。

14、;若是,则进行步骤S103,否则进行步骤S105;0027在步骤S103中,建立所述PCI设备与所述系统内存地址的直接存储器存取DIRECTMEMORYACCESS,DMA映射关系,根据建立的DMA映射关系进行数据的通讯;0028当然,DMA映射关系是在两者共享的内存空间内建立的。0029在步骤S104中,将所述PCI设备与在其寻址范围内的系统内存地址建立DMA映射关系;0030在步骤S105中,设置一内存转址区;其中,该内存转址区设置在PCI设备和系统内存DMA映射的内存空间内。0031在具体实施过程中,根据所述PCI设备以及所述系统内存地址一次性最大传递数据的大小确定所述内存转址区的大小。。

15、0032在步骤S106中,判断需进行数据通讯的系统内存地址是否为PCI设备的寻址范围说明书CN102110054ACN102110057A3/4页6之内的地址,若是,则按照步骤S104建立的DMA映射关系进行通讯,否则进行步骤S107;0033在步骤S107中,所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。0034该步骤S107具体包括00351、所述PCI设备寻址范围之外的系统内存地址向PCI设备发送数据时,将所发送数据复制到内存转址区,所述内存转址区将所述数据发送至相应的PCI设备;00362、PCI设备向所述PCI设备寻址范围之外的系统内存地址发送。

16、数据时,将所发送数据发送至到所述内存转址区,所述内存转址区将所述数据复制到相应的系统内存地址。0037在步骤S108中,判断所述系统是否停止运行,若是,则进行步骤S109,否则继续进行S106;0038在步骤S109中,释放所述内存转址区的内存。0039图2示出了本发明实施例提供的PCI设备与系统内存的通讯装置的结构。所述装置包括信息获取模块21、信息比较模块22、内存转址区设置模块23、通讯模块24、系统运行判断模块25以及内存转址区控制模块26。0040其中,信息获取模块21获取系统内存地址范围以及PCI设备的寻址范围;0041信息比较模块22判断所述系统内存地址范围是否全部在所述PCI设。

17、备的寻址范围之内0042当所述信息比较模块22判断所述系统内存地址范围全部在所述PCI设备的寻址范围之内时,通讯模块24将所述PCI设备与系统内存地址建立映射关系后进行通讯;0043当所述信息比较模块22判断所述系统内存地址范围没有全部在所述PCI设备的寻址范围之内时,内存转址区设置模块23设置一内存转址区;0044在具体实施过程中,所述内存转址区设置模块23判断所述PCI设备以及所述系统内存地址一次性最大传递数据的大小,并根据所述PCI设备以及所述系统内存地址一次性最大传递数据的大小确定所述内存转址区的大小。0045在具体实施过程中,内存转址区设置模块23在所述PCI设备和所述系统内存的DM。

18、A映射内设置内存转址区。0046通讯模块24将所述PCI设备与在其寻址范围内的系统内存地址建立映射关系进行通讯;同时通讯模块24控制所述PCI设备寻址范围之外的系统内存地址通过所述内存转址区进行与所述PCI设备的通讯。0047在具体实施过程中,所述通讯模块24包括转发模块2410048其中,系统内存将所述PCI设备寻址范围之外的系统内存地址数据复制到内存转址区;或者,PCI设备发送数据发送至所述内存转址区;0049转发模块241将接收到的数据发送至相应的PCI设备或者PCI设备寻址范围之外的系统内存地址。0050系统运行判断模块25判断所述系统是否停止运行;若系统运行判断模块25判断所述系统没。

19、有停止运行,则内存转址区控制模块26占有所述内存转址区,若系统运行判断模块25判断所述系统停止运行,内存转址区控制模块26释放所述内存转址区。0051本发明实施例通过设置一内存转址区,超出PCI设备寻址范围的系统内存地址能说明书CN102110054ACN102110057A4/4页7够通过该内存转址区实现与PCI设备的通讯,解决了由于系统内存地址大于PCI的寻址范围,导致CPU与PCI设备之间无法进行通讯的问题,给用户的使用带来极大的便利。0052应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而这些改进和变换都应属于本发明所附权利要求的保护范围。说明书CN102110054ACN102110057A1/2页8图1说明书附图CN102110054ACN102110057A2/2页9图2说明书附图CN102110054A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1