CN111399773A - 机箱vpd数据存取方法、装置、设备及存储介质 - Google Patents
机箱vpd数据存取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111399773A CN111399773A CN202010152732.8A CN202010152732A CN111399773A CN 111399773 A CN111399773 A CN 111399773A CN 202010152732 A CN202010152732 A CN 202010152732A CN 111399773 A CN111399773 A CN 111399773A
- Authority
- CN
- China
- Prior art keywords
- vpd
- memory mapping
- mapping
- memory
- data
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000013507 mapping Methods 0.000 claims abstract description 262
- 230000008569 process Effects 0.000 claims abstract description 31
- 230000007246 mechanism Effects 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 21
- 101000771640 Homo sapiens WD repeat and coiled-coil-containing protein Proteins 0.000 claims description 11
- 102100029476 WD repeat and coiled-coil-containing protein Human genes 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 6
- 230000000737 periodic effect Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了提供的机箱VPD数据存取方法,该方法通过mmap内存映射机制将存储于各EEPROM中VPD数据每个字段一一映射到用户进程空间,以读写进程空间内存的方式访问EEPROM中VPD存储数据,避免了从CPU到EEPROM一系列器件传输过程带来的传输延时,大大缩短了VPD数据读取数据路径长度,可方便快捷存取VPD每个字段,有效提升数据存取效率,具有可将数据固化到EEPROM、读写方便、性能优化等优势。本申请还提供了一种机箱VPD数据存取装置、设备及一种可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种机箱VPD数据存取方法、装置、设备及一种可读存储介质。
背景技术
存储设备在实际应用时,需要读取VPD(Vital Product Data,记录了产品信息(如产品sn等)和硬件配置信息(如CPU型号,速率以及每个槽位支持哪些类型的接口卡等))信息,系统软件会根据VPD信息做出不同的操作。这些信息被系统软件读取后,稍微处理显示给客户或客服,客户由此可知道系统的一些信息,以便根据此信息来更换对应的部件等等。
VPD信息存储于各设备的EEPROM(Electrically Erasable Programmable readonly memory,带电可擦可编程只读存储器,一种掉电后不丢失数据的存储芯片)中,EEPROM相对存储系统的主存介质具有相对的独立性,可保证VPD信息的绝对正确和不易篡改。实际应用中,需要频繁存取VPD信息,这就要求系统能及时响应VPD的存取。
但是目前,从物理连接上来看,从CPU到EEPROM要经过一系列器件,其中某些器件的连接是通过低速总线(例如I2C)连接的,这种低速率通信,基本无法满足及时响应的需求,而且当这些系统总线被其它设备占用时,只能等待其它设备释放总线后才能通信,会严重影响VPD信息的传输效率,导致无法满足系统快速响应VPD信息的存取需求。
发明内容
本申请的目的是提供一种机箱VPD数据存取方法,该方法可以满足系统快速响应VPD信息的存取需求;本申请的另一目的是提供一种机箱VPD数据存取装置、设备及一种可读存储介质。
为解决上述技术问题,本申请提供一种机箱VPD数据存取方法,包括:
根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及所述首地址的相对偏移;
在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息同步至所述内存映射文件中;
调用内存映射函数mmap建立所述内存映射文件与所述映射区首地址之间的映射关系,并将所述内存映射文件映射至所述首地址;
当接收到VPD字段信息存取请求时,根据所述映射区首地址,结合各字段相对偏移,获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求。
可选地,在将所述内存映射文件映射至所述首地址之前,还包括:
判断所述内存映射文件中预设数据存储空间大小是否与所述EEPROM中VPD字段的总长度相匹配,以判断所述内存映射文件的内容校验是否正确;
若是,执行所述将所述内存映射文件映射至所述首地址;
若否,根据所述总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至所述新建内存映射文件中。
可选地,在所述调用内存映射函数mmap建立所述内存映射文件与所述内存映射首地址的映射关系之后,还包括:
当系统重启后,验证所述内存映射文件是否被篡改;
若否,执行将所述内存映射文件映射至所述首地址的步骤;
若是,将所述EEPROM中的VPD字段信息同步至所述内存映射文件中。
可选地,所述获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求,包括:
当所述VPD字段信息存取请求为VPD字段更新请求时,更新所述映射区中的VPD存储数据,并向上层模块确认所述更新请求;
向后台同步线程发送更新请求,以便调用所述后台同步线程将变更后的VPD数据更新至所述EEPROM中。
可选地,所述向后台同步线程发送更新请求,以便调用所述后台同步线程将变更后的VPD数据更新至所述EEPROM中,包括:
当定期设备更新机制触发后,将所述变更后的VPD数据同步更新至所述内存映射文件中;
当后台同步线程接收到更新请求后,将所述变更后的VPD数据更新至所述EEPROM中。
本申请公开一种机箱VPD数据存取装置,包括:
VPD内存创建单元,用于根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及所述首地址的相对偏移;
内存映射文件创建单元,用于在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息同步至所述内存映射文件中;
映射搭建单元,用于调用内存映射函数mmap建立所述内存映射文件与所述映射区首地址之间的映射关系,并将所述内存映射文件映射至所述首地址;
数据响应单元,用于当接收到VPD字段信息存取请求时,根据所述映射区首地址,结合各字段相对偏移,获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求。
可选地,所述映射搭建单元中进一步包括:校验子单元,用于在将所述内存映射文件映射至所述首地址之前,判断所述内存映射文件中预设数据存储空间大小是否与所述EEPROM中VPD字段的总长度相匹配,以判断所述内存映射文件的内容校验是否正确;若是,执行所述将所述内存映射文件映射至所述首地址;若否,根据所述总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至所述新建内存映射文件中。
可选地,所述映射搭建单元中进一步包括:篡改验证子单元,用于在所述调用内存映射函数mmap建立所述内存映射文件与所述内存映射首地址的映射关系之后,当系统重启后,验证所述内存映射文件是否被篡改;若否,执行将所述内存映射文件映射至所述首地址的步骤;若是,将所述EEPROM中的VPD字段信息同步至所述内存映射文件中。
本申请公开一种机箱VPD数据存取设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的机箱VPD数据存取方法的步骤。
本申请公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述机箱VPD数据存取方法的步骤。
本申请所提供的机箱VPD数据存取方法,通过mmap内存映射机制将存储于各EEPROM中VPD数据每个字段一一映射到用户进程空间,以读写进程空间内存的方式访问EEPROM中VPD存储数据,避免了从CPU到EEPROM一系列器件传输过程带来的传输延时,大大缩短了VPD数据读取数据路径长度,可方便快捷存取VPD每个字段,有效提升数据存取效率,具有可将数据固化到EEPROM、读写方便、性能优化等优势。
本申请还提供了一种机箱VPD数据存取装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种机箱VPD数据存取方法的流程图;
图2为本申请实施例提供的一种建立映射关系后的VPD内存数据与内存映射文件间的映射关系示意图;
图3为本申请实施例提供的一种机箱VPD数据存取实现流程示意图;
图4为本申请实施例提供的一种机箱VPD数据存取装置的结构框图;
图5为本申请实施例提供的一种机箱VPD数据存取设备的结构示意图。
具体实施方式
本申请的核心是提供一种机箱VPD数据存取方法,该方法可以满足系统快速响应VPD信息的存取需求;本申请的另一核心是提供一种机箱VPD数据存取装置、设备及一种可读存储介质。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本实施例提供的机箱VPD数据存取方法的流程图,该方法主要包括:
步骤s110、根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及首地址的相对偏移;
映射区为在进程空间中创建的用于直接响应VPD数据存取的空间,映射区首地址指向内存映射文件的VPD数据,以便通过进程空间实现对于VPD数据的直接调用,减少了数据传输路径的长度,从而提升了数据存取效率。
确定EEPROM中VPD各字段的偏移及总长度,在进程空间中定义内存映射区首地址Baseaddr,并定义从首地址Baseaddr开始VPD各字段的偏移地址Offset,定义好这些偏移可方便用户空间快速访问VPD某个字段的内容。
步骤s120、在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息数据同步至内存映射文件中;
新建内存映射文件,读取EEPROM中所有VPD字段信息,将各字段信息同步至内存映射文件中。映射区首地址指向内存映射文件的VPD数据,可以直接响应用户对于VPD数据的读取请求,直至系统重启,系统重启后进程空间中的VPD内存中的数据会丢失,内存映射文件的目的为在系统重启后,映射区首地址指向的数据内容仍为重启前的数据,以便可以持续性的响应用户请求。需要说明的是,内存映射文件中的数据需与映射区首地址指向的数据内容的数据保持同步更新。
其中,内存映射文件与EEPROM中间的映射存储关系为MMAP机制所束缚,在EEPROM中的VPD数据存储至内存映射文件后,进程空间中的映射区首地址指向的数据内容可以仅从内存映射文件获取VPD数据进行存储,直至内存映射文件中的VPD数据损坏,损坏后内存映射文件需要从EEPROM中读取VPD数据重新存储。
可选地,在将内存映射文件映射至首地址之前,为了避免新建的内存映射文件中数据错误等情况,可以进一步执行以下步骤:
(1)判断内存映射文件中预设数据存储空间大小是否与EEPROM中VPD字段的总长度相匹配,以判断内存映射文件的内容校验是否正确;
(2)若是,执行将内存映射文件映射至首地址;
(3)若否,根据总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至新建内存映射文件中。
根据步骤s110中的EEPROM中的VPD总长度,判断内存映射文件中预设数据存储空间大小是否与EEPROM中VPD字段的总长度相匹配(数据校验是否正确等),检测内存映射文件的有效性,若正确,则继续执行下个动作;若不正确,则可以根据骤s110中的EEPROM中的VPD总长度新建内存映射文件,读取EEPROM中所有VPD信息初始化内存映射文件,并继续执行下个动作。该方式可以有效保证内存映射文件的有效性,避免由于内存映射文件空间不足导致的后续数据存储错误等问题,有效提升系统响应的稳定性。当然,也可以不执行以上步骤,在此不作限定。
步骤s130、调用内存映射函数mmap建立内存映射文件与映射区首地址之间的映射关系,并将内存映射文件映射至首地址;
调用内存映射函数mmap,将内存映射文件建立映射,将映射函数mmap返回地址指针赋予内存映射区首地址Baseaddr。
建立映射关系后,在系统重启导致进程空间中的VPD内存中的VPD数据丢失时,MMAP机制会保证内存映射区首地址指向内容的有效性,将内存映射文件映射至首地址,避免系统上电导致的VPD内存数据丢失问题,保证可以持续的从进程空间响应用户的VPD数据存取请求。建立映射关系后的内存映射首地址与内存映射文件间的映射关系如图2所示,图中进程地址空间即VPD内存,Baseaddr为内存映射首地址,其中存储有各VPD信息字段,内存映射首地址指向的VPD字段信息与内存映射文件同步。
在调用内存映射函数mmap建立内存映射文件与VPD内存之间的映射关系之后,当系统重启后,MMAP机制会将内存映射文件中的数据存储至VPD内存中,而在系统下电的过程中,可能会存在对于内存映射文件中的数据非法篡改的情况,该情况会进一步导致对于EEPROM中数据的非法更新,影响VPD数据的正确性,为避免上述情况,在调用内存映射函数mmap建立内存映射文件与内存映射首地址的映射关系之后,当系统重启后,可以进一步执行以下步骤:
(1)验证内存映射文件是否被篡改;
(2)若否,执行将内存映射文件映射至首地址的步骤;
(3)若是,将EEPROM中的VPD字段信息同步至内存映射文件中。
重启后执行检测内存映射文件的合法性,验证内存映射文件是否被篡改(比如通过字节长度进行判断),若不合法则重新将EEPROM中的VPD数据同步至内存映射文件中,若合法调用内存映射函数mmap将内存映射文件中的数据映射至内存映射首地址。需要说明的是,本实施例中对于非法篡改的判定机制不作限定,可以根据实际数据存储需求进行相应设定。另外,也可以不执行以上步骤,在此不作限定。
步骤s140、当接收到VPD字段信息存取请求时,根据映射区首地址,结合各字段相对偏移,获取在映射区中的目标字段,以响应VPD字段信息存取请求。
当上层模块需要存取VPD字段信息时,可根据内存映射区首地址Baseaddr和各字段的偏移地址offset快速定位该VPD字段位置。具体地地,一种请求响应机制如下,当接收到VPD字段信息存取请求时,调用内存映射首地址所指向的VPD字段信息响应VPD字段信息存取请求的过程具体包括如下步骤:
(1)当接收到VPD字段信息存取请求时,确定目标VPD字段在VPD内存中的字段位置;
(2)读取字段位置中的VPD存储数据,并调用VPD存储数据响应VPD字段信息存取请求。
其中VPD字段信息存取请求中有写入操作时,需要向后台线程发送VPD字段更新请求,以便将内存映射文件中更改部分及时落实至EEPROM中。
可选地,当VPD字段信息存取请求为VPD字段更新请求时,步骤s140中获取在映射区中的目标字段,以响应VPD字段信息存取请求的过程具体可以包括:
(1)当VPD字段信息存取请求为VPD字段更新请求时,更新映射区中的VPD存储数据,并向上层模块确认更新请求;
(2)向后台同步线程发送更新请求,以便调用后台同步线程将变更后的VPD数据更新至EEPROM中该方式可以帮助用户根据原始数据进行数据更新,避免数据更新错误。而在变更后的VPD数据通过内存映射文件更新至EEPROM的过程中,后台线程在等待VPD字段更新请求时,当收到更新请求,此时对数据同步的实时要求并不高,只需在一段时间内成功将变更的VPD数据同步到EEPROM中就可以了。
为了避免频繁数据更新导致的效率低下的问题,可选地,可以设置定期设备更新机制,定期设备更新机制在一段时间后批量对于多处修正更新至EEPROM中。则将变更后的VPD数据通过内存映射文件更新至EEPROM中的过程具体可以包括以下步骤:
(1)当定期设备更新机制触发后,将变更后的VPD数据同步更新至内存映射文件中;
(2)当后台同步线程接收到更新请求后,将变更后的VPD数据更新至EEPROM中。
本实施例中对于后台同步线程的更新机制的设定不做限定,比如可以为在数据更新次数达到指定次数后触发,或者也可以为在距离上次数据更新至EEPROM的时间达到指定时间长度后触发等,本实施例中仅以上述两种形式为例进行介绍,其他实现方式均可参照本实施例的介绍,在此不再赘述。
基于上述介绍,本实施例提供的机箱VPD数据存取方法,通过mmap内存映射机制将存储于各EEPROM中VPD数据每个字段一一映射到用户进程空间,以读写进程空间内存的方式访问EEPROM中VPD存储数据,避免了从CPU到EEPROM一系列器件传输过程带来的传输延时,大大缩短了VPD数据读取数据路径长度,可方便快捷存取VPD每个字段,有效提升数据存取效率,具有可将数据固化到EEPROM、读写方便、性能优化等优势。
为加深对于上述实施例中提供的机箱VPD数据存取方法整体实现流程的理解,本实施例中以一种具体的实现方式为例进行介绍。图3为本实施例提供的一种实现流程示意图,具体地,包括以下步骤:
(1)确定EEPROM中VPD各字段的偏移及总长度,在进程空间中定义内存映射区首地址Baseaddr及各字段的偏移地址Offset,定义好这些偏移可方便用户空间快速访问VPD某个字段的内容。
(2)检测新建内存映射文件的有效性,若正确,则进入步骤(4),若不正确,则进入步骤(3)。
(3)根据步骤(1)的总长度,新建内存映射文件,读取EEPROM中所有VPD信息同步至内存映射文件,进入步骤(4)。
(4)调用内存映射函数mmap,将步骤(2)中内存映射文件建立映射,将内存映射函数mmap返回地址指针赋予步骤(1)的Baseaddr。建立映射关系后,在系统重启导致进程空间中的VPD内存中的VPD数据丢失时,MMAP机制会自动调取内存映射文件中存储的与原始进程空间中同步更新的VPD数据,存储至VPD内存中,避免系统上电导致的VPD内存数据丢失问题,保证可以持续的从进程空间响应用户的VPD数据存取请求。
重启后执行检测内存映射文件的合法性,验证内存映射文件是否被篡改(可以判断是否修改,比如通过字节长度进行判断),若不合法返回步骤(3),若合法调用内存映射函数mmap将内存映射文件中的数据添加中内存块进行存储。
(5)当上层模块需要存取VPD字段信息时,可根据内存映射区首地址Baseaddr和各字段的偏移地址offset快速定位该VPD字段位置,对该字段进行读写操作。其中有写入操作时,需要向后台线程发送VPD字段更新请求。
(6)后台线程等待VPD字段更新请求,当收到更新请求,一段时间内将变更的VPD数据同步到EEPROM中。
本实施例提供的实现方式,将上层模块对VPD信息从EEPROM的存取方式,利用linux的内存映射函数mmap转化为对进程空间内存的存取,达到了快速存取VPD信息的目的,又可确保VPD的写入操作可更新到EEPROM中;正常的VPD传输需要经过低速总线传到EEPROM中,响应速度慢,利用mmap转化为对进程空间内存的存取方式,VPD信息的读取以操作内存的形式进行、并可实现有更新的VPD信息写入到EEPROM中,使用内存映射函数mmap使得文件充当缓存的作用,无需等待数据落到EEPROM后才响应上层,并且其它上层模块可直接访问内存映射文件,提高了访问的响应速率,并且可保证数据的安全可靠性,也同时方便数据的快速存取操作。
请参考图4,图4为本实施例提供的机箱VPD数据存取装置的结构框图;该装置主要包括:VPD内存创建单元210、内存映射文件创建单元220、映射搭建单元230以及数据响应单元240。本实施例提供的机箱VPD数据存取装置可与上述机箱VPD数据存取方法相互对照。
其中,VPD内存创建单元210主要用于根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及首地址的相对偏移;
内存映射文件创建单元220主要用于在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息同步至内存映射文件中;
映射搭建单元230主要用于调用内存映射函数mmap建立内存映射文件与映射区首地址之间的映射关系,并将内存映射文件映射至首地址;
数据响应单元240主要用于当接收到VPD字段信息存取请求时,根据映射区首地址,结合各字段相对偏移,获取在映射区中的目标字段,以响应VPD字段信息存取请求。
可选地,映射搭建单元中可以进一步包括:校验子单元,用于在将内存映射文件映射至首地址之前,判断内存映射文件中预设数据存储空间大小是否与EEPROM中VPD字段的总长度相匹配,以判断内存映射文件的内容校验是否正确;若是,执行将内存映射文件映射至首地址;若否,根据总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至新建内存映射文件中。
可选地,映射搭建单元中可以进一步包括:篡改验证子单元,用于在调用内存映射函数mmap建立内存映射文件与内存映射首地址的映射关系之后,当系统重启后,验证内存映射文件是否被篡改;若否,执行将内存映射文件映射至首地址的步骤;若是,将EEPROM中的VPD字段信息同步至内存映射文件中。
本实施例提供一种机箱VPD数据存取设备,主要包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述实施例介绍的机箱VPD数据存取方法的步骤,具体可参照上述机箱VPD数据存取方法的介绍。
请参考图5,为本实施例提供的机箱VPD数据存取设备的结构示意图,该机箱VPD数据存取设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在机箱VPD数据存取设备301上执行存储介质330中的一系列指令操作。
机箱VPD数据存取设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的机箱VPD数据存取方法中的步骤可以由本实施例介绍的机箱VPD数据存取设备的结构实现。
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的机箱VPD数据存取方法的步骤,具体可参照上述实施例中对机箱VPD数据存取方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的机箱VPD数据存取方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种机箱VPD数据存取方法,其特征在于,包括:
根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及所述首地址的相对偏移;
在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息同步至所述内存映射文件中;
调用内存映射函数mmap建立所述内存映射文件与所述映射区首地址之间的映射关系,并将所述内存映射文件映射至所述首地址;
当接收到VPD字段信息存取请求时,根据所述映射区首地址,结合各字段相对偏移,获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求。
2.如权利要求1所述的机箱VPD数据存取方法,其特征在于,在将所述内存映射文件映射至所述首地址之前,还包括:
判断所述内存映射文件中预设数据存储空间大小是否与所述EEPROM中VPD字段的总长度相匹配,以判断所述内存映射文件的内容校验是否正确;
若是,执行所述将所述内存映射文件映射至所述首地址;
若否,根据所述总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至所述新建内存映射文件中。
3.如权利要求1所述的机箱VPD数据存取方法,其特征在于,在所述调用内存映射函数mmap建立所述内存映射文件与所述内存映射首地址的映射关系之后,还包括:
当系统重启后,验证所述内存映射文件是否被篡改;
若否,执行将所述内存映射文件映射至所述首地址的步骤;
若是,将所述EEPROM中的VPD字段信息同步至所述内存映射文件中。
4.如权利要求1所述的机箱VPD数据存取方法,其特征在于,所述获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求,包括:
当所述VPD字段信息存取请求为VPD字段更新请求时,更新所述映射区中的VPD存储数据,并向上层模块确认所述更新请求;
向后台同步线程发送更新请求,以便调用所述后台同步线程将变更后的VPD数据更新至所述EEPROM中。
5.如权利要求4所述的机箱VPD数据存取方法,其特征在于,所述向后台同步线程发送更新请求,以便调用所述后台同步线程将变更后的VPD数据更新至所述EEPROM中,包括:
当定期设备更新机制触发后,将所述变更后的VPD数据同步更新至所述内存映射文件中;
当后台同步线程接收到更新请求后,将所述变更后的VPD数据更新至所述EEPROM中。
6.一种机箱VPD数据存取装置,其特征在于,包括:
VPD内存创建单元,用于根据EEPROM中VPD字段偏移及总长度在进程空间中定义映射区首地址及所述首地址的相对偏移;
内存映射文件创建单元,用于在硬盘建立用于实现MMAP机制的内存映射文件,并将EEPROM中的VPD字段信息同步至所述内存映射文件中;
映射搭建单元,用于调用内存映射函数mmap建立所述内存映射文件与所述映射区首地址之间的映射关系,并将所述内存映射文件映射至所述首地址;
数据响应单元,用于当接收到VPD字段信息存取请求时,根据所述映射区首地址,结合各字段相对偏移,获取在所述映射区中的目标字段,以响应所述VPD字段信息存取请求。
7.如权利要求6所述的机箱VPD数据存取装置,其特征在于,所述映射搭建单元中进一步包括:校验子单元,用于在将所述内存映射文件映射至所述首地址之前,判断所述内存映射文件中预设数据存储空间大小是否与所述EEPROM中VPD字段的总长度相匹配,以判断所述内存映射文件的内容校验是否正确;若是,执行所述将所述内存映射文件映射至所述首地址;若否,根据所述总长度新建内存映射文件,并EEPROM中的VPD字段信息同步至所述新建内存映射文件中。
8.如权利要求6所述的机箱VPD数据存取装置,其特征在于,所述映射搭建单元中进一步包括:篡改验证子单元,用于在所述调用内存映射函数mmap建立所述内存映射文件与所述内存映射首地址的映射关系之后,当系统重启后,验证所述内存映射文件是否被篡改;若否,执行将所述内存映射文件映射至所述首地址的步骤;若是,将所述EEPROM中的VPD字段信息同步至所述内存映射文件中。
9.一种机箱VPD数据存取设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的机箱VPD数据存取方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述机箱VPD数据存取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010152732.8A CN111399773A (zh) | 2020-03-06 | 2020-03-06 | 机箱vpd数据存取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010152732.8A CN111399773A (zh) | 2020-03-06 | 2020-03-06 | 机箱vpd数据存取方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111399773A true CN111399773A (zh) | 2020-07-10 |
Family
ID=71436096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010152732.8A Withdrawn CN111399773A (zh) | 2020-03-06 | 2020-03-06 | 机箱vpd数据存取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399773A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153779A (zh) * | 2021-10-31 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种i2c通信方法、系统、设备、及存储介质 |
-
2020
- 2020-03-06 CN CN202010152732.8A patent/CN111399773A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153779A (zh) * | 2021-10-31 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种i2c通信方法、系统、设备、及存储介质 |
CN114153779B (zh) * | 2021-10-31 | 2023-07-14 | 郑州云海信息技术有限公司 | 一种i2c通信方法、系统、设备、及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096314B (zh) | 一种接口初始化方法、装置、设备及计算机可读存储介质 | |
CN109800022B (zh) | 一种自动化对比bios信息差异的方法、系统、终端及存储介质 | |
CN109446147B (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
CN116521429A (zh) | 资产信息的上报方法及装置、存储介质及电子设备 | |
CN115904520A (zh) | 基于pcie拓扑状态变更的配置保存方法及相关设备 | |
CN111399773A (zh) | 机箱vpd数据存取方法、装置、设备及存储介质 | |
CN112363935A (zh) | 数据联调方法、装置、电子设备及存储介质 | |
CN112506827A (zh) | 一种基于adma控制器的数据传输方法、装置及设备 | |
CN109597724B (zh) | 服务稳定性测量方法、装置、计算机设备及存储介质 | |
CN110580674A (zh) | 信息处理方法、装置及系统 | |
CN113064919B (zh) | 数据处理方法、数据存储系统、计算机设备及存储介质 | |
US11226755B1 (en) | Core dump in a storage device | |
CN114020340A (zh) | 一种服务器系统及其数据处理方法 | |
CN112328528A (zh) | 一种基于飞腾处理器的时钟芯片兼容方法、装置和设备 | |
CN109189457B (zh) | 智能惯导传感系统的固件升级系统及方法 | |
WO2023035754A1 (zh) | 权限同步方法、装置、电子设备与存储介质 | |
CN115454896A (zh) | 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质 | |
JPWO2006001051A1 (ja) | マルチプロセッサ装置及びその制御方法 | |
CN110399726A (zh) | Tpm物理芯片检测方法、装置、设备及可读存储介质 | |
US7664916B2 (en) | Global smartcard cache methods and apparatuses | |
US7412582B2 (en) | Method and device for burst reading/writing memory data | |
CN112650814B (zh) | 基于消息中间件的数据存储方法、装置、设备及存储介质 | |
CN116991542B (zh) | 一种虚拟机快照方法、系统、电子设备及计算机存储介质 | |
CN116166092A (zh) | 一种调整电子设备的时间信息的方法及装置 | |
CN112162833B (zh) | 一种事务日志的处理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200710 |
|
WW01 | Invention patent application withdrawn after publication |