CN101639810A - 一种访问pci存储空间的方法和装置 - Google Patents

一种访问pci存储空间的方法和装置 Download PDF

Info

Publication number
CN101639810A
CN101639810A CN200910091610A CN200910091610A CN101639810A CN 101639810 A CN101639810 A CN 101639810A CN 200910091610 A CN200910091610 A CN 200910091610A CN 200910091610 A CN200910091610 A CN 200910091610A CN 101639810 A CN101639810 A CN 101639810A
Authority
CN
China
Prior art keywords
address
window
pci
destination address
correspondence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910091610A
Other languages
English (en)
Inventor
张海飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN200910091610A priority Critical patent/CN101639810A/zh
Publication of CN101639810A publication Critical patent/CN101639810A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种访问外围器件互连(PCI)存储空间的方法和装置,其中方法包括:确定目标地址对应的基地址和偏移地址;利用确定的基地址配置要访问存储器的基地址寄存器(BAR);通过所述BAR对应的PCI窗口按照确定的偏移地址对所述存储器进行访问。本发明通过对BAR进行灵活的配置,实现PCI窗口的移动,从而实现对存储器存储空间的全域访问,解决存储空间访问范围受限的问题。

Description

一种访问PCI存储空间的方法和装置
技术领域
本发明涉及计算机通信技术领域,特别涉及一种访问PCI存储空间的方法和装置。
背景技术
随着电子信息和半导体产业的飞速发展,存储器共享技术逐渐被广泛应用。在中央处理器(CPU)系统中,外围器件互连(PCI)是普遍采用的总线结构,CPU通过PCI总线实现对存储器中各存储空间的访问。
现有技术中PCI存储空间访问系统可以如图1所示,CPU采用多个PCI窗口对该PCI窗口对应的存储空间进行访问,其中,每个PCI窗口对应不同的基地址寄存器(BAR),每个BAR对应固定地址范围的存储空间,也就是说,PCI窗口和存储空间一对一进行映射。一旦PCI窗口和存储空间的映射关系确定,BAR中的基地址内容也就相应的确定,BAR中的基地址就是对应PCI窗口所映射的存储空间的基地址,是预先配置好的,在访问过程中不会发生变化。当CPU确定访问存储器中某个目标地址时,确定该目标地址对应的基地址,通过配置了该基地址的BAR对应的PCI窗口访问对应的存储空间。
然而,现有技术中CPU仅能实现固定数量的PCI窗口对应的存储空间访问,例如图1中仅能够实现6个PCI窗口对应的存储空间的访问,如果每个PCI窗口的访问范围是8M,那么最多仅能够实现48M存储空间的访问,且访问地址范围也受限,当在某些情况下需要扩大存储空间时,则不能够满足需求。如果通过扩大PCI窗口大小的方式来扩大存储空间访问范围,由于CPU的地址空间有限,可能会造成PCI窗口无法扩大到存储需求的状况。
发明内容
有鉴于此,本发明提供了一种访问PCI存储空间的方法和装置,以便于解决存储空间访问范围受限的问题。
一种访问PCI存储空间的方法,该方法包括:
A、确定目标地址对应的基地址和偏移地址;
B、利用确定的基地址配置要访问存储器的基地址寄存器BAR;
C、通过所述BAR对应的PCI窗口按照确定的偏移地址对所述存储器进行访问。
一种访问PCI存储空间的装置,该装置包括:地址确定单元、配置单元和访问单元;
所述地址确定单元,用于确定目标地址对应的基地址和偏移地址;
所述配置单元,用于利用所述地址确定单元确定的基地址配置要访问的存储器的BAR;
所述访问单元,用于通过所述BAR对应的PCI窗口按照所述地址确定单元确定的偏移地址对所述存储器进行访问。
由以上技术方案可以看出,本发明提供的方法和装置,在访问时确定目标地址对应的基地址后,利用该基地址对存储器的BAR进行配置,从而实现PCI窗口的移动。也就是说,本发明能够根据实际的存储器访问需求对BAR进行灵活设置,打破了PCI窗口与存储空间的固定一一映射关系,利用PCI窗口的移动来实现对存储器存储空间的全域访问,解决了存储空间访问范围受限的问题。另外,通过本发明在CPU中使用一个PCI窗口即可实现对存储器整个存储空间的访问,因此,相比较现有技术占用CPU的地址较少,不会受到CPU地址空间的限制。
附图说明
图1为现有技术中的PCI存储空间访问示意图;
图2为本发明实施例提供的PCI存储空间访问示意图;
图3为本发明实施例提供的详细方法流程图;
图4为本发明实施例提供的访问多个存储器的实例图;
图5为本发明实施例提供的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法主要包括:确定目标地址对应的基地址和偏移地址;CPU利用确定的基地址配置要访问存储器的BAR,通过该BAR对应的PCI窗口按照确定的偏移地址对该存储器进行访问。
下面列举具体实施例对上述方法进行详细描述。在本发明中PCI窗口对应的BAR并不是预先配置好,而是根据实际访问需求灵活配置,使得PCI窗口不再与固定的存储空间一一映射,而是可以通过改变BAR的配置映射到任意存储空间。采用这种方式时,CPU仅需要一个PCI窗口就可以实现对存储器所有存储空间的访问,同时在存储器也仅需要设置一个BAR。如图2所示。
下面以图2所示的情况为例说明本发明的具体实现,假设PCI窗口大小配置为8M,BAR的初始默认值为0x00000000,则初始状态时,CPU能够对目标地址为0x00000000至0x007fffff范围内的8M存储空间进行访问;如果此时要访问的目标地址为0x01300000,则具体实现方法流程如图3所示,该方法可以包括以下步骤:
步骤301:计算窗口值WinNum,该
Figure G2009100916106D00031
其中,DstAddr为要访问的目标地址,WinSize为PCI窗口大小。
由于PCI总线的规范要求,在进行PCI存储空间访问时,BAR的基址必须以PCI窗口大小为单位进行变化,也就是说,PCI窗口必须以自身窗口大小为单位进行移动,在此计算窗口值WinNum是为了确定当前窗口位置是否需要变化,以及后续确定需要配置的基地址。
在本实施例中,确定WinNum=0x01300000/8M=2。
步骤302:判断确定的窗口值是否与当前窗口值相同,如果否,执行步骤303;如果是,执行步骤305。
步骤303:确定该目标地址对应的基地址BaseAddr和偏移地址OffsetAddr,该BaseAddr=WinSize×WinNum,OffsetAddr=DstAddr%WinSize。
由于当前PCI窗口在起始位置,默认起始位置的窗口值为0,则本发明实施例中确定的窗口值与当前窗口值是不相同的,因此执行该步骤303。
本发明中,BaseAddr=8M×2=0x01000000。OffsetAddr=0x01300000%8M=0x00300000。
步骤304:利用确定的基地址BaseAddr配置BAR,并将确定的窗口值记录为当前窗口值,CPU通过PCI窗口按照确定的偏移地址对存储空间进行访问,结束流程。
在本实施例中,将计算出的基地址0x01000000配置在BAR中,则BAR自动指向基地址0x01000000,当CPU通过PCI窗口按照确定的偏移地址对存储空间进行访问时,在地址为0x01000000的存储空间基础上偏移0x00300000,在该偏移对应的存储空间进行访问。
步骤305:确定目标地址对应的偏移地址,CPU直接通过PCI窗口按照确定的偏移地址对存储空间进行访问,结束流程。
本步骤中,确定偏移地址的方式可以与步骤303中相同,采用OffsetAddr=DstAddr%WinSize的方式。当然,需要说明的是,本发明中提供的计算基地址和偏移地址的方式仅是其中的一个例子,也可以采用其它计算方式,例如OffsetAddr=DstAddr-BaseAddr的方式,在此不再一一赘述。
如果确定的窗口值与当前窗口值相同,说明PCI窗口不需要移动,即不需要重新设置BAR中的基地址,直接进行偏移地址的计算后,按照偏移地址在当前PCI窗口的位置进行访问即可。
另外,也可以在CPU中设置多个PCI窗口用于访问多个存储器,每个PCI窗口与一个存储器的BAR对应,且每个PCI窗口可以通过灵活设置BAR对各存储器中所有的存储空间进行访问。如图4所示,假设PCI窗口1用于访问存储器1,PCI窗口2用于访问存储器2。CPU可以通过灵活设置BAR1实现对存储器1中所有存储空间的访问,也可以通过灵活设置BAR2实现对存储器2中所有存储空间的访问。
以上是对本发明所提供的方法进行的详细描述,下面对本发明所提够的装置进行描述。图5为本发明实施例提供的装置结构图,如图5所示,该装置可以包括:地址确定单元501、配置单元502和访问单元503。
地址确定单元501,用于确定目标地址对应的基地址和偏移地址。
配置单元502,用于利用地址确定单元501确定的基地址配置要访问的存储器的BAR。
访问单元503,用于通过BAR对应的PCI窗口按照地址确定单元501确定的偏移地址对存储器进行访问。
更进一步地,该装置还可以包括:窗口计算单元504、窗口判断单元505和窗口记录单元506。
窗口计算单元504,用于计算窗口值WinNum,其中,
Figure G2009100916106D00052
DstAddr为目标地址,WinSize为PCI窗口的大小。
窗口判断单元505,用于判断窗口计算单元504计算的窗口值是否与窗口记录单元506记录的当前窗口值相同,如果否,触发地址确定单元501确定目标地址对应的基地址和偏移地址,并触发配置单元502执行配置的操作。
窗口记录单元506,用于在窗口判断单元505的判断结果为否时,将窗口计算单元504计算的结果记录为当前窗口值。
另外,窗口判断单元506,还可以用于在判断结果为是时,触发地址确定单元501确定目标地址对应的偏移地址,并禁止配置单元502执行配置的操作。
具体地,地址确定单元501按照BaseAddr=WinSize×WinNum确定目标地址对应的基地址,其中,BaseAddr为基地址,WinSize为PCI窗口的大小,WinNum为计算的窗口值,
Figure G2009100916106D00061
DstAddr为目标地址。
地址确定单元501按照OffsetAddr=DstAddr%WinSize确定目标地址对应的偏移地址,其中,offsetAddr为偏移地址,DstAddr为目标地址,WinSize为PCI窗口的大小。
本发明对CPU的类型以及存储器的类型并不进行限制,所有支持PCI的主控制器和存储器都能够应用,另外,对于改进型的PCI(PCIE)总线也同样适用。
由以上描述可以看出,本发明提供的方法和装置,在访问时确定目标地址对应的基地址后,利用该基地址对存储器的BAR进行配置,从而实现PCI窗口的移动。也就是说,本发明能够根据实际的存储器访问需求对BAR进行灵活设置,打破了PCI窗口与存储空间的固定一一映射关系,利用PCI窗口的移动来实现对存储器存储空间的全域访问,解决了存储空间访问范围受限的问题。
另外,通过本发明在CPU中适用一个PCI窗口即可实现对存储器整个存储空间的访问,因此,相比较现有技术占用CPU的地址较少,不会受到CPU地址空间的限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1、一种访问PCI存储空间的方法,其特征在于,该方法包括:
A、确定目标地址对应的基地址和偏移地址;
B、利用确定的基地址配置要访问存储器的基地址寄存器BAR;
C、通过所述BAR对应的PCI窗口按照确定的偏移地址对所述存储器进行访问。
2、根据权利要求1所述的方法,其特征在于,在所述步骤A之前还包括:
D1、计算窗口值WinNum,其中,DstAddr为所述目标地址,WinSize为所述PCI窗口的大小;
D2、判断计算的窗口值是否与记录的当前窗口值相同,如果否,执行所述步骤A,并将计算的窗口值记录为当前窗口值。
3、根据权利要求2所述的方法,其特征在于,如果所述步骤D2中的判断结果为是,则执行以下步骤:
D3、确定目标地址对应的偏移地址,CPU直接通过所述PCI窗口按照确定的该偏移地址对所述存储器进行访问,结束流程。
4、根据权利要求1至3任一权项所述的方法,其特征在于,确定目标地址对应的基地址为:BaseAddr=WinSize×WinNum,其中,BaseAddr为基地址,WinSize为所述PCI窗口的大小,WinNum为计算的窗口值,
Figure A2009100916100002C2
Figure A2009100916100002C3
DstAddr为所述目标地址。
5、根据权利要求1至3任一权项所述的方法,其特征在于,确定目标地址对应的偏移地址为:OffsetAddr=DstAddr%WinSize,其中,offsetAddr为偏移地址,DstAddr为所述目标地址,WinSize为所述PCI窗口的大小。
6、一种访问PCI存储空间的装置,其特征在于,该装置包括:地址确定单元、配置单元和访问单元;
所述地址确定单元,用于确定目标地址对应的基地址和偏移地址;
所述配置单元,用于利用所述地址确定单元确定的基地址配置要访问的存储器的BAR;
所述访问单元,用于通过所述BAR对应的PCI窗口按照所述地址确定单元确定的偏移地址对所述存储器进行访问。
7、根据权利要求6所述的装置,其特征在于,该装置还包括:窗口计算单元、窗口判断单元和窗口记录单元;
所述窗口计算单元,用于计算窗口值WinNum,其中,
Figure A2009100916100003C1
Figure A2009100916100003C2
DstAddr为所述目标地址,WinSize为所述PCI窗口的大小;
所述窗口判断单元,用于判断所述窗口计算单元计算的窗口值是否与所述窗口记录单元记录的当前窗口值相同,如果否,触发所述地址确定单元确定目标地址对应的基地址和偏移地址,并触发所述配置单元执行所述配置的操作;
所述窗口记录单元,用于在所述窗口判断单元的判断结果为否时,将所述窗口计算单元计算的结果记录为当前窗口值。
8、根据权利要求7所述的装置,其特征在于,所述窗口判断单元,还用于在判断结果为是时,触发所述地址确定单元确定目标地址对应的偏移地址,并禁止所述配置单元执行所述配置的操作。
9、根据权利要求6至8任一权项所述的装置,其特征在于,所述地址确定单元按照BaseAddr=WinSize×WinNum确定所述目标地址对应的基地址,其中,BaseAddr为基地址,WinSize为所述PCI窗口的大小,WinNum为计算的窗口值,
Figure A2009100916100003C3
DstAddr为所述目标地址。
10、根据权利要求6至8任一权项所述的装置,其特征在于,所述地址确定单元按照OffsetAddr=DstAddr%W inSize确定所述目标地址对应的偏移地址,其中,offsetAddr为偏移地址,DstAddr为所述目标地址,WinSize为所述PCI窗口的大小。
CN200910091610A 2009-08-26 2009-08-26 一种访问pci存储空间的方法和装置 Pending CN101639810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910091610A CN101639810A (zh) 2009-08-26 2009-08-26 一种访问pci存储空间的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910091610A CN101639810A (zh) 2009-08-26 2009-08-26 一种访问pci存储空间的方法和装置

Publications (1)

Publication Number Publication Date
CN101639810A true CN101639810A (zh) 2010-02-03

Family

ID=41614797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910091610A Pending CN101639810A (zh) 2009-08-26 2009-08-26 一种访问pci存储空间的方法和装置

Country Status (1)

Country Link
CN (1) CN101639810A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810111A (zh) * 2012-11-08 2014-05-21 国际商业机器公司 有源存储器件中的地址生成的方法及其处理元件
CN106547702A (zh) * 2016-09-27 2017-03-29 中国电子科技集团公司第三十八研究所 一种双模8访存地址计算方法
CN106844245A (zh) * 2017-02-17 2017-06-13 北京腾凌科技有限公司 数据传输方法及装置
CN112363959A (zh) * 2021-01-14 2021-02-12 北京欣博电子科技有限公司 一种数据寻址方法、存储装置、芯片和数据存储系统
CN112445729A (zh) * 2020-11-30 2021-03-05 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112948291A (zh) * 2019-12-11 2021-06-11 中科寒武纪科技股份有限公司 数据传输方法、电子设备和可读存储介质
CN113806251A (zh) * 2021-11-19 2021-12-17 沐曦集成电路(上海)有限公司 一种共享内存管理单元的系统及搭建方法、内存访问方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810111A (zh) * 2012-11-08 2014-05-21 国际商业机器公司 有源存储器件中的地址生成的方法及其处理元件
CN103810111B (zh) * 2012-11-08 2017-09-12 国际商业机器公司 有源存储器件中的地址生成的方法及其处理元件
CN106547702A (zh) * 2016-09-27 2017-03-29 中国电子科技集团公司第三十八研究所 一种双模8访存地址计算方法
CN106547702B (zh) * 2016-09-27 2019-09-10 中国电子科技集团公司第三十八研究所 一种双模8访存地址计算方法
CN106844245A (zh) * 2017-02-17 2017-06-13 北京腾凌科技有限公司 数据传输方法及装置
CN106844245B (zh) * 2017-02-17 2019-11-12 北京腾凌科技有限公司 数据传输方法及装置
CN112948291A (zh) * 2019-12-11 2021-06-11 中科寒武纪科技股份有限公司 数据传输方法、电子设备和可读存储介质
CN112445729A (zh) * 2020-11-30 2021-03-05 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112445729B (zh) * 2020-11-30 2024-04-16 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112363959A (zh) * 2021-01-14 2021-02-12 北京欣博电子科技有限公司 一种数据寻址方法、存储装置、芯片和数据存储系统
CN113806251A (zh) * 2021-11-19 2021-12-17 沐曦集成电路(上海)有限公司 一种共享内存管理单元的系统及搭建方法、内存访问方法
CN113806251B (zh) * 2021-11-19 2022-02-22 沐曦集成电路(上海)有限公司 一种共享内存管理单元的系统及搭建方法、内存访问方法

Similar Documents

Publication Publication Date Title
US9026888B2 (en) Method, system and apparatus for providing access to error correction information
CN101639810A (zh) 一种访问pci存储空间的方法和装置
US9678666B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9535782B2 (en) Method, apparatus and system for handling data error events with a memory controller
US10338846B2 (en) Method for reducing read buffer size requirements in NVMe based solid state drives
EP2416248B1 (en) Data processing system and method with peripheral configuration information error detection
US10866737B2 (en) Apparatus, method and system to store information for a solid state drive
CN103999055A (zh) 访问命令/地址寄存器装置中存储的数据
JP6408514B2 (ja) 複数のメモリ領域にわたる強順序付けされたデバイス、および排他的トランザクションの自動順序付け
US8595427B1 (en) Non-volatile block storage module using magnetic random access memory (MRAM)
CN111475438B (zh) 提供服务质量的io请求处理方法及其装置
US20150032936A1 (en) Techniques for Identifying Read/Write Access Collisions for a Storage Medium
US10372338B2 (en) Memory controller and data processing circuit with improved system efficiency
US20170255565A1 (en) Method and apparatus for providing a contiguously addressable memory region by remapping an address space
CN115934389A (zh) 用于错误报告和处理的系统和方法
CN111694508B (zh) 在基于NVMe的SSD中管理LBA重叠检查的方法和系统
EP3462321B1 (en) Techniques to perform memory indirection for memory architectures
US11269715B2 (en) Systems and methods for adaptive proactive failure analysis for memories
US9454369B2 (en) Device and method for processing message
CN109710187A (zh) NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
US20160147458A1 (en) Computing system with heterogeneous storage and method of operation thereof
US10884941B2 (en) Techniques to store data for critical chunk operations
EP3504627B1 (en) Read operation redirect
US10042753B2 (en) Data storage device for storing data storage information of data and method for operating the same
CN102360369A (zh) 在用户空间文件系统上实现聚合写文件脏页的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100203