CN101639810A - 一种访问pci存储空间的方法和装置 - Google Patents
一种访问pci存储空间的方法和装置 Download PDFInfo
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种访问外围器件互连(PCI)存储空间的方法和装置,其中方法包括:确定目标地址对应的基地址和偏移地址;利用确定的基地址配置要访问存储器的基地址寄存器(BAR);通过所述BAR对应的PCI窗口按照确定的偏移地址对所述存储器进行访问。本发明通过对BAR进行灵活的配置,实现PCI窗口的移动,从而实现对存储器存储空间的全域访问,解决存储空间访问范围受限的问题。
Description
技术领域
本发明涉及计算机通信技术领域,特别涉及一种访问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所示,该方法可以包括以下步骤:
由于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。
窗口判断单元505,用于判断窗口计算单元504计算的窗口值是否与窗口记录单元506记录的当前窗口值相同,如果否,触发地址确定单元501确定目标地址对应的基地址和偏移地址,并触发配置单元502执行配置的操作。
窗口记录单元506,用于在窗口判断单元505的判断结果为否时,将窗口计算单元504计算的结果记录为当前窗口值。
另外,窗口判断单元506,还可以用于在判断结果为是时,触发地址确定单元501确定目标地址对应的偏移地址,并禁止配置单元502执行配置的操作。
具体地,地址确定单元501按照BaseAddr=WinSize×WinNum确定目标地址对应的基地址,其中,BaseAddr为基地址,WinSize为PCI窗口的大小,WinNum为计算的窗口值,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窗口按照确定的该偏移地址对所述存储器进行访问,结束流程。
5、根据权利要求1至3任一权项所述的方法,其特征在于,确定目标地址对应的偏移地址为:OffsetAddr=DstAddr%WinSize,其中,offsetAddr为偏移地址,DstAddr为所述目标地址,WinSize为所述PCI窗口的大小。
6、一种访问PCI存储空间的装置,其特征在于,该装置包括:地址确定单元、配置单元和访问单元;
所述地址确定单元,用于确定目标地址对应的基地址和偏移地址;
所述配置单元,用于利用所述地址确定单元确定的基地址配置要访问的存储器的BAR;
所述访问单元,用于通过所述BAR对应的PCI窗口按照所述地址确定单元确定的偏移地址对所述存储器进行访问。
8、根据权利要求7所述的装置,其特征在于,所述窗口判断单元,还用于在判断结果为是时,触发所述地址确定单元确定目标地址对应的偏移地址,并禁止所述配置单元执行所述配置的操作。
10、根据权利要求6至8任一权项所述的装置,其特征在于,所述地址确定单元按照OffsetAddr=DstAddr%W inSize确定所述目标地址对应的偏移地址,其中,offsetAddr为偏移地址,DstAddr为所述目标地址,WinSize为所述PCI窗口的大小。
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)
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 | 沐曦集成电路(上海)有限公司 | 一种共享内存管理单元的系统及搭建方法、内存访问方法 |
-
2009
- 2009-08-26 CN CN200910091610A patent/CN101639810A/zh active Pending
Cited By (12)
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 |