CN106933512A - 一种数据读写的方法及其设备 - Google Patents
一种数据读写的方法及其设备 Download PDFInfo
- Publication number
- CN106933512A CN106933512A CN201710110671.7A CN201710110671A CN106933512A CN 106933512 A CN106933512 A CN 106933512A CN 201710110671 A CN201710110671 A CN 201710110671A CN 106933512 A CN106933512 A CN 106933512A
- Authority
- CN
- China
- Prior art keywords
- data
- command information
- call number
- reading
- write
- 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.)
- Granted
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明适用于数据处理技术领域,提供了一种数据读写的方法及其设备,方法包括:获取读数据指令信息;获取写数据指令信息;根据预设的操作冲突判断规则、第一数据地址索引号以及第二数据地址索引号,判断同时响应读数据指令信息以及写数据指令信息是否会产生冲突;若同时响应读数据指令信息以及写数据指令信息会产生冲突,则执行冲突回避操作,通过获取两个进程中读写数据指令信息中的数据地址索引号,判断同时响应两个指令是否会造成冲突,解决了现有计算设备数据处理技术,不同进程对共享存储单元的同一数据区域进行读写操作时,由于缺少冲突回避规则,将发生操作互斥的情况,浪费较多的时间重新响应相关的读写操作,降低了数据处理的效率的问题。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种数据读写的方法及其设备。
背景技术
随着对数据处理速率要求的不断提高,为了实现对数据的高速运算,现有的计算设备以及装置常常通过全双工的模式进行数据处理,即读操作指令以及写操作指令同时对共享存储单元进行操作。然而现有计算设备数据处理技术,不同的进程对共享存储单元的同一数据区域进行读写操作时,由于缺少冲突回避规则,将发生操作互斥的情况,浪费较多的时间重新响应相关的读写操作,降低了数据处理的效率。
发明内容
本发明实施例的目的在于提供一种数据读写的方法及其设备,旨在解决现有的计算设备中,不同的进程对共享存储单元的同一数据区域进行读写操作时,由于缺少冲突回避规则,将发生操作互斥的情况,浪费较多的时间重新响应相关的读写操作,降低了数据处理的效率的问题。
第一方面,本发明实施例提供一种数据读写的方法,所述数据读写的方法包括:
获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;
若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作。
第二方面,本发明实施例提供一种数据读写的设备,所述数据读写的设备包括:
读数据指令获取单元,用于获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
写数据指令获取单元,用于获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
冲突判断单元,用于根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;
冲突回避单元,用于若同时响应所述读数据指令信息以及所述写数据指令是会产生冲突,则执行冲突回避操作。
实施本发明实施例提供的一种数据读写的方法及其设备具有以下有益效果:
本发明实施例通过获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作,由于数据地址索引号对于各个进程都是唯一的,而产生操作冲突的原因就在于,不同进程之间同时对同一地址的数据进行操作,使得计算装置产生逻辑混乱。而本发明实施例将获取两个进程中读写数据指令信息中的数据地址索引号,判断同时响应两个指令是否会造成冲突,继而判断是否执行相应的冲突回避规则,避免不同的进程对共享存储单元的同一数据区域进行读写操作时产生冲突情况的发生,提高了数据处理的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据读写的方法的流程图;
图2a是本发明实施例提供的一种数据读写的方法的读/写数据链路表;
图2b是分发明实施例提供的一种数据读写的方法的读/写数据地址索引列表;
图3是本发明另一实施例提供的一种数据读写的方法的流程图;
图4是本发明实施例提供的一种数据读写的设备的结构框图;
图5是本发明另一实施例提供的一种数据读写的设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例将获取两个进程中读写数据指令信息中的数据地址索引号,判断同时响应两个指令是否会造成冲突,继而判断是否执行相应的冲突回避规则,解决了现有的双核计算设备,不同的进程对共享存储单元的同一数据区域进行读写操作时,由于缺少冲突回避规则,将发生操作互斥的情况,浪费较多的时间重新响应相关的读写操作,降低了数据处理的效率的问题。
在本发明实施例中,流程的执行主体为数据读写的设备。该数据读写的设备以全双工的模式进行运作。需要说明的是,当该数据读写的设备包含一个处理器时,则第一进程以及第二进程由该处理器发起,并同时对该处理器的内存进行读写操作;当该数据读写的设备包含两个处理器时,两个进程可以为由不同处理器发起的进程,两个处理器之间以全双工模式工作,即各处理器可以对共享存储空间中的数据同时执行读取以及写入操作;当该数据读写的设备包含多个处理器时,可按照上述的双核的方式,将多个处理器进行两两组合,得到多对双核处理器模型,并且每对双核处理器均采用本发明实施例提供的双核处理器时的数据读写的方法,从而实现多个处理器时对应的数据读写的方法。可见,本实施例适用于单核处理器的数据读写的设备、双核处理器的数据读写的设备以及多核处理器的数据读写的设备。在本实施例中,以数据读写的设备包含两个处理器且不同的进程由不同处理器发起为例进行阐述。图1示出了本发明实施例提供的数据读写的方法的实现流程图,详述如下:
在S101中,获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号。
在本实施例中,数据读写的设备将两个处理器中包含的内容区域进行整合划分,分为第一处理器的独享存储区域、第二处理器的独享存储区域以及可供设备内所有处理器同时使用的共享存储区域。第一进程可对第一处理的独享存储区域以及共享存储区域进行读写操作;同理,第二进程可对第二处理器的独享存储区域以及共享存储区域进行读写操作。其中,两个处理器通过对共享存储区域进行数据读写操作,实现处理器间的数据通信。
在本实施例中,共享存储区域将其内部的存储空间划分为多个子区域。每个子区域对应一个数据地址索引号,用于作为该子区域的标识。当数据读写的设备需要调用某一数据时,可根据该数据对应的数据地址索引号,在共享存储区域中找到对应的子区域,继而进行数据的调用。
在本实施例中,每个处理器将与共享存储区域建立两条虚拟通信链路,即读通信链路以及写通信链路,以供第一处理器对应的第一进程以及第二处理器对应的第二进程对共享内存区域进行数据读取以及写入数据的操作。以下的论述中,第一处理器对应的第一进程简称为“第一处理器”;第二处理器对应的第二进程简称为“第二处理器”。
可选地,在本实施例中,每个共享存储区域的子区域具有对应的数据地址索引号以及数据长度信息;其中,数据长度信息用于表示该子区域可存储的数据的容量。
可选地,在本实施例中,共享存储区域中包含的子区域可以是动态变化的,也可以是静态的,即子区域的数量及容量可以在数据读写的设备运行过程中按照预设的规则改变,也可以是保持不变的。对于子区域动态分配的共享存储区域,其包含的数据地址索引号的总数以及数据长度信息将会根据实际情况进行改变,其对应的子区域也可能发生响应的变化;而对于子区域为静态分配的共享存储区域,其数据地址索引号的总数以及每个子区域对应的数据长度信息将为一个定值。
在本实施例中,当第一处理器在运行相关应用时,需要读取共享存储区域的数据时,将生成一条读数据指令信息,以便于请求数据读写的设备执行预设的操作。
在本实施例中,读数据指令信息包含第一数据地址索引号,用于指示该读数据指令读取共享存储区域中某一特定的子区域的数据。当数据读写的设备在获取到读数据指令信息时,又检测到第二处理器生成了写数据指令信息,用于请求从共享存储区域写入数据,则执行S102的相关操作;若没有检测到第二处理器生成上述写数据指令信息,或该写数据指令信息指向的数据区域并非指向共享存储区域,则响应该读数据指令信息。
可选地,在本实施例中,每个处理器将建立读数据链路表以及写数据链路表,每个处理器根据该读/写数据链路表的顺序,依次对共享存储区域内的每个对应的子区域进行相应的操作。参见图2a所示,该读/写数据链路表中每个元素均包含数据指针信息、数据长度信息以及保留域。其中,数据指针信息用于指示该次读取/写入操作对应起始数据地址信息,即上述的数据地址索引号,数据长度信息用于指示该次读取/写入操作对应的数据长度。需要说明的是,由于对第一处理器来说,其读数据链路用于指示进行数据读取的操作,而该读取操作的数据是由第二处理器写入的,因此,第一处理器的读数据链路表,即第二处理器的写数据链路表,同理,第一处理器的写数据链路表,即第二处理器的读数据链路表。因此,在本发明实施例中,不同的处理器将不会对同一共享内容子区域同时发起读数据指令信息或写数据指令信息,因为读数据链路表以及写数据链路表为两个不同的链路表,用于对共享存储区域不同的子区域进行操作。
可选地,在本实施例中,为了便于数据读写的设备对共享存储区域的存储空间进行管理以及查询,可建立读数据地址索引列表以及写数据地址索引列表。参见图2b所示,该读/写数据地址索引表中的每个元素包括数据地址索引号、数据地址总数、状态标识以及保留域。其中,状态标识可用于表示该共享存储子区域的使用状态,如空闲、占用或等待操作等使用状态信息,也可用于表示数据类型,如只读、禁用、保留等类型信息。可见,每个处理器将包含两条数据链路表以及两个数据地址索引表。
在S102中,获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发。
在本实施例中,当第二处理器在运行相关应用时,需要对共享存储区域的数据时,将生成一条写数据指令信息,以便于请求数据读写的设备执行预设的操作。
在本实施例中,写数据指令信息包含第二数据地址索引号,用于指示该写数据指令将数据写入共享存储区域中某一特定子区域。当数据读写的设备在获取到该写数据指令信息时,又检测到第一处理器生成了写数据指令信息,用于请求从共享存储区域读取数据,则执行S101的相关操作;若没有检测到第一处理器生成上述读数据指令信息,或该读数据指令信息指向的数据区域并非指向共享存储区域,则响应该写数据指令信息。
需要说明的是,在本实施例中,S101、S102不分先后顺序执行。第一处理器以及第二处理器用于区分该数据读写的设备中两个不同处理器,并非表示第一处理器只可生成读数据指令信息或第二处理器只可承受写数据指令信息。举例性地,当第一处理器需要对共享存储区域进行数据读取的操作时,则执行S101的相关步骤操作,再执行S102的相关步骤操作;当第一处理器需要对共享存储区域进行数据写入的操作时,则执行S102的相关步骤操作,再执行S101的相关步骤操作。
在S103中,根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突。
在本实施例中,根据获取得到的读数据指令信息,提取其包含的第一数据地址索引号;根据获取得到的写数据指令信息,提取其包含的第二数据地址索引号。
在本实施例中,将第一数据地址索引号以及第二数据地址索引号经过预设的操作冲突判断规则,确定同时响应读数据指令信息以及写数据指令信息是否会产生冲突。由于数据地址索引号为不同共享存储区域的子区域的标识,当判断两个处理器将可能对同一共享存储区域的子区域进行数据的读取以及写入操作,则将导致冲突。因此,可以通过数据指令信息中包含的数据地址索引号,来判断不同的处理器是否将对同一共享存储区域的子区域进行操作。
在本实施例中,若判断同时响应读数据指令信息以及写数据指令信息会产生冲突,则执行S104的相关操作;若判断同时响应读数据指令信息以及写数据指令信息不会产生冲突,则同时执行读数据指令信息以及写数据指令信息对应的预设操作。
在S104中,若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作
在本实施例中,当数据读写的设备判断同时响应读数据指令信息以及写数据指令信息会发送操作冲突时,将根据预设的冲突回避规则,执行对应的冲突回避操作,对两个数据指令信息分别进行响应操作。
以上可以看出,本发明实施例提供的一种数据读写的方法通过获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;获取写数据指令信息;其中,所述写数据指令信息用于请求从共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作,由于数据地址索引号对于各个进程都是唯一的,而产生操作冲突的原因就在于,不同进程之间常常会同时对同一地址的数据进行操作,使得计算装置产生逻辑混乱。而本发明实施例将获取两个进程中读写数据指令信息中的数据地址索引号,判断同时响应两个指令是否会造成冲突,继而判断是否执行相应的冲突回避规则,避免不同的进程对共享存储单元的同一数据区域进行读写操作时常常产生冲突情况的发生,提高了数据处理的效率。
图3示出了本发明另一实施例提供的一种数据读写的方法的流程图。参见图3所述,相对于上一实施例,本实施例提供的一种数据读写的方法对多个步骤进行了进一步的限定,详述如下:
在S301中,获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号。
由于S301与上一实施例中的步骤S101相同,具体请参阅上一实施例中步骤S101的相关描述,此处不再赘述。
在S302中,获取写数据指令信息;其中,所述写数据指令信息用于请求从共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发。
由于S302与上一实施例中的步骤S102相同,具体请参阅上一实施例中步骤S102的相关描述,此处不再赘述。
进一步地,作为本发明的另一实施例,所述根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突具体为:
在S3031中,判断所述第一数据地址索引号与所述第二数据地址索引号是否相同。
在本实施例中,若判断第一数据地址索引号与第二数据地址索引号相同,则执行S3032的相关操作;若判断第一数据地址索引号与第二数据地址索引号不相同,则表示同时响应读数据指令以及写操作指令并不会产生冲突,同时执行读数据指令信息以及写数据指令信息对应的预设操作。
在S3032中,若所述第一数据地址索引号与所述第二数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突。
在本实施例中,读数据指令信息对应的第一数据地址索引号与写数据指令信息对应的第二数据地址索引号相同,则表示两个数据指令信息的目的地址均指向共享存储区域内的同一子区域,同时执行将发生冲突,因此,将不会马上响应上述两个数据指令信息,而是根据S3041的相关操作,进行冲突回避。
进一步地,所述同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作具体为:
在S3041中,响应所述写数据指令信息,执行所述写数据指令信息对应的预设操作。
在S3042中,若检测到执行完所述写数据指令信息对应的预设操作,则响应所述读数据指令信息。
在本实施例中,当判断读数据指令信息与写数据指令信息其对应的数据地址索引号相同,则挂起读数据指令信息,先响应写数据指令信息,执行所述写数据指令的预设操作;等待预设的写数据指令的预设操作完成后,再响应所述读数据指令信息。
举例性地,在本实施例中,当数据读写的设备刚启动时,第一处理器的读数据指令信息将指向数据地址索引号为1的共享存储子区域,而第二处理器的写数据指令信息也指向了数据地址索引号为1的共享存储子区域。若同时响应上述两条数据指令信息,将会产生冲突,因而,数据读写的设备将执行写数据指令信息对应的预设操作,挂起读数据指令信息;当该写数据指令信息对应的预设操作执行完毕后,将再次响应读数据指令信息所发起的操作请求,从而避免了同时对于同一共享存储子区域进行操作而产生冲突。
在本发明实施例中,通过判断读数据指令信息以及写数据指令信息对应的数据地址索引号是否一致,从而判断两个操作是否指向同一共享存储子区域,继而确定同时响应两个操作是否会发生冲突,若是,则执行对应的冲突回避操作,实现了操作冲突回避的目的,提高了数据读写的设备的数据处理效率。
进一步地,作为本发明的另一实施例,所述根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突具体为:
在S3051中,根据所述第二数据地址索引号以及预设的数据地址索引号推移规则,确定第三数据地址索引号;其中,所述第三数据地址索引号为所述第二数据地址索引号对应的下一数据地址索引号。
在本实施例中,上述预设的数据地址索引号推移规则具体用于确定若当前读/写数据指令信息对应的操作完成后,下一个时刻生成的读/写数据指令信息所对应的数据地址索引号。
举例性地,当数据读写的设备对于共享存储区域的各个子区域是顺次读取时,如第二数据地址索引号为152,则上述预设的数据地址索引号推移规则即为在第二数据地址索引号的数值上加1,得到第三数据地址索引号,即第三数据地址索引号为153。
举例性地,当数据读写的设备包含读/写数据链路表,且所述读/写数据指令根据该读/写数据链路表的顺序依次对共享存储子区域进行操作,则上述预设的数据地址索引号推移规则即根据读/写数据链路表,查询当前读/写数据指令信息对应的链表元素的下一链表元素,确定该下一链表元素对应的数据地址索引号。如某一写数据链路如表1所示,而当前时刻对应的写数据指令信息对应的第二数据地址索引号为:151,则根据表1可得知,第三数据地址索引号为58。
数据指针信息 | 数据长度 | 保留域 |
100 | 512 | 0 |
151 | 512 | 0 |
58 | 512 | 0 |
表1
在S3052中,判断所述第一数据地址索引号与所述第三数据地址索引号是否相同。
在本实施例中,若判断第一数据地址索引号与第三数据地址索引号相同,则执行S3053的相关操作;若判断第一数据地址索引号与第三数据地址索引号不相同,则表示同时响应读数据指令以及写操作指令并不会产生冲突,同时执行读数据指令信息以及写数据指令信息对应的预设操作。
在S3053中,若所述第一数据地址索引号与所述第三数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突。
在本实施例中,若数据读写的设备执行写数据指令信息对应的操作后,读数据指令信息仍在响应中,下一个时刻生成的写数据指令信息其对应的第三数据地址索引号将会与第一数据地址索引号相同,指向同一个共享存储子区域,继而造成冲突,为了避免该情况的发生,当第三数据地址索引号与第一数据地址索引号相同时,将确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突。
进一步地,所述若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作具体为:
在S3061中,响应所述读数据指令信息,执行所述读数据指令信息对应的预设操作
在S3062中,若检测到执行完所述读数据指令信息对应的预设操作,响应所述写数据指令信息。
在本实施例中,当判断读数据指令信息的数据地址索引号,与将要生成的下一写数据指令信息其对应的数据地址索引号相同,则挂起写数据指令信息,先响应读数据指令信息,执行所述读数据指令的预设操作;等待预设的读数据指令的预设操作完成后,再响应所述读写数据指令信息。
在本发明实施例中,通过判断判断读数据指令信息的数据地址索引号,与将要生成的下一写数据指令信息其对应的数据地址索引号是否一致,从而确定同时响应两个操作是否会发生冲突,若是,则执行对应的冲突回避操作,实现了操作冲突回避的目的,提高了数据读写的设备的数据处理效率。
进一步地,作为本发明的另一实施例,所述读数据指令信息和/或所述写数据指令信息包含冲突指示标识,所述数据读写的方法还包括:
在S307中,根据所述冲突指示标识,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突。
在本实施例中,读/写数据指令信息还可以包括冲突指示标识,用于表示该指令是否会发生冲突。举例性地,若冲突指示标识为1,则表示响应该读数据指令信息以及写数据指令信息将产生冲突;若冲突指示标识为0,则表示该数据指令信息不会产生冲突。
可选地,在本实施例中,可将数据指令信息的保留域作为冲突指示标识区域。当数据读写的设备获取到读/写数据指令信息后,将获取该保留域中的内容,判断响应该读/写数据指令信息是否会造成冲突。
在本发明实施例中,通过在读/写数据指令信息中添加冲突指示标识,进一步提高了数据读取的设备对于冲突判定的效率。
进一步地,作为本发明的另一实施例,所述数据读写的方法还包括:
在S308中,若数据地址索引号大于数据地址总数,则将所述数据地址索引号置零。
在本实施例中,共享存储区域为环状共享存储区域。若读/写数据指令信息执行完毕后,该对应的数据地址索引号等于数据地址总数,则表示该读/写数据指令信息已指向数据链路表的尾节点,因而下一时刻生成的读/写数据指令信息对应的数据地址索引号应指向数据链路表的首节点,因此,将数据地址索引号进行置零操作。
在本发明实施例中,通过将数据地址索引号大于数据地址总数时,进行置零操作,使得本方法适用于共享存储区域为环状的数据读取的设备,提高了数据读取的方法的适用性。
图4示出了本发明实施例提供的数据读写的设备的结构框图,该数据读写的设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图4,该数据读写的设备包括:
读数据指令获取单元41,用于获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
写数据指令获取单元42,用于获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
冲突判断单元43,用于根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;
冲突回避单元44,用于若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作。
可选地,参见图5所示,在另一实施例中,该实施例中的数据读写的设备包括的各单元用于运行图3对应的实施例中的各步骤,详述如下:
读数据指令获取单元51,用于获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
写数据指令获取单元52,用于获取写数据指令信息;其中,所述写数据指令信息用于请求从共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
可选地,所述冲突判断单元具体包括:
第一索引号比较单元531,用于判断所述第一数据地址索引号与所述第二数据地址索引号是否相同;
第一冲突确定单元532,用于若所述第一数据地址索引号与所述第二数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述冲突回避单元具体包括:
写操作执行单元541,用于响应所述写数据指令信息,执行所述写数据指令信息对应的预设操作;
读操作等待单元542,用于若检测到执行完所述写数据指令信息对应的预设操作,响应所述读数据指令信息对应的操作。
可选地,所述冲突判断单元具体包括:
第三数据地址索引号确定单元551,用于根据所述第二数据地址索引号以及预设的数据地址索引号推移规则,确定第三数据地址索引号;其中,所述第三数据地址索引号为所述第二数据地址索引号对应的下一数据地址索引号;
第二索引号比较单元552,用于判断所述第一数据地址索引号与所述第三数据地址索引号是否相同;
第二冲突确定单元553,用于若所述第一数据地址索引号与所述第三数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述冲突回避单元具体包括:
读操作执行单元561,用于响应所述读数据指令信息,执行所述读数据指令信息对应的预设操作;
写操作等待单元562,用于若检测到执行完所述读数据指令信息对应的预设操作,响应所述写数据指令信息。
可选地,所述读数据指令信息和/或所述写数据指令信息包含冲突指示标识;所述数据读写的设备还包括:
冲突指示标识判定单元57,用于根据所述冲突指示标识,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突。
可选地,所述数据读写的设备还包括:
索引号置零单元58,用于若数据地址索引号大于数据地址总数,则将所述数据地址索引号置零。
因此,本发明实施例提供的数据读写的设备同样可以将获取两个进程中读写数据指令信息中的数据地址索引号,判断同时响应两个指令是否会造成冲突,继而判断是否执行相应的冲突回避规则,由于数据地址索引号对于各个进程都是唯一的,而产生操作冲突的原因就在于,不同进程之间常常会同时对同一地址的数据进行操作,使得计算装置产生逻辑混乱。而本发明实施例提供的设备则可避免不同的进程对共享存储单元的同一数据区域进行读写操作时常常产生冲突情况的发生,提高了数据处理的效率。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据读写的方法,其特征在于,所述数据读写的方法包括:
获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;
若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作。
2.根据权利要求1所述的数据读写的方法,其特征在于,所述根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突具体为:
判断所述第一数据地址索引号与所述第二数据地址索引号是否相同;
若所述第一数据地址索引号与所述第二数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作具体为:
响应所述写数据指令信息,执行所述写数据指令信息对应的预设操作;
若检测到执行完所述写数据指令信息对应的预设操作,则响应所述读数据指令信息。
3.根据权利要求1所述的数据读写的方法,其特征在于,所述根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突具体为:
根据所述第二数据地址索引号以及预设的数据地址索引号推移规则,确定第三数据地址索引号;其中,所述第三数据地址索引号为所述第二数据地址索引号对应的下一数据地址索引号;
判断所述第一数据地址索引号与所述第三数据地址索引号是否相同;
若所述第一数据地址索引号与所述第三数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作具体为:
响应所述读数据指令信息,执行所述读数据指令信息对应的预设操作;
若检测到执行完所述读数据指令信息对应的预设操作,响应所述写数据指令信息。
4.根据权利要求1-3任一项所述的数据读写的方法,其特征在于,所述读数据指令信息和/或所述写数据指令信息包含冲突指示标识,所述数据读写的方法还包括:
根据所述冲突指示标识,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突。
5.根据权利要求4所述的数据读写的方法,其特征在于,所述数据读写的方法还包括:
若数据地址索引号大于数据地址总数,则将所述数据地址索引号置零。
6.一种数据读写的设备,其特征在于,所述数据读写的设备包括:
读数据指令获取单元,用于获取读数据指令信息;其中,所述读数据指令信息用于请求从共享存储区域读取数据,所述读数据指令信息包括第一数据地址索引号;
写数据指令获取单元,用于获取写数据指令信息;其中,所述写数据指令信息用于请求对共享存储区域写入数据,所述写数据指令信息包括第二数据地址索引号;所述读数据指令信息以及所述写数据指令信息由不同的进程触发;
冲突判断单元,用于根据预设的操作冲突判断规则、所述第一数据地址索引号以及所述第二数据地址索引号,判断同时响应所述读数据指令信息以及所述写数据指令信息是否会产生冲突;
冲突回避单元,用于若同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突,则执行冲突回避操作。
7.根据权利要求6所述的数据读写的设备,其特征在于,所述冲突判断单元具体包括:
第一索引号比较单元,用于判断所述第一数据地址索引号与所述第二数据地址索引号是否相同;
第一冲突确定单元,用于若所述第一数据地址索引号与所述第二数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述冲突回避单元具体包括:
写操作执行单元,用于响应所述写数据指令信息,执行所述写数据指令信息对应的预设操作;
读操作等待单元,用于若检测到执行完所述写数据指令信息对应的预设操作,响应所述读数据指令信息对应的操作。
8.根据权利要求6所述的数据读写的设备,其特征在于,所述冲突判断单元具体包括:
第三数据地址索引号确定单元,用于根据所述第二数据地址索引号以及预设的数据地址索引号推移规则,确定第三数据地址索引号;其中,所述第三数据地址索引号所述第二数据地址索引号对应的下一数据地址索引号;
第二索引号比较单元,用于判断所述第一数据地址索引号与所述第三数据地址索引号是否相同;
第二冲突确定单元,用于若所述第一数据地址索引号与所述第三数据地址索引号相同,则确定同时响应所述读数据指令信息以及所述写数据指令信息会产生冲突;
所述冲突回避单元具体包括:
读操作执行单元,用于响应所述读数据指令信息,执行所述读数据指令信息对应的预设操作;
写操作等待单元,用于若检测到执行完所述读数据指令信息对应的预设操作,响应所述写数据指令信息。
9.根据权利要求6-8任一项所述的数据读写的设备,其特征在于,所述读数据指令信息和/或所述写数据指令信息包含冲突指示标识;所述数据读写的设备还包括:
冲突指示标识判定单元,用于根据所述冲突指示标识,判断同时响应所述读数据指令信息以及所述写数据指令是否会产生冲突。
10.根据权利要求9所述的数据读写的设备,其特征在于,所述数据读写的设备还包括:
索引号置零单元,用于若数据地址索引号大于数据地址总数,则将所述数据地址索引号置零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710110671.7A CN106933512B (zh) | 2017-02-27 | 2017-02-27 | 一种数据读写的方法及其设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710110671.7A CN106933512B (zh) | 2017-02-27 | 2017-02-27 | 一种数据读写的方法及其设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933512A true CN106933512A (zh) | 2017-07-07 |
CN106933512B CN106933512B (zh) | 2020-03-27 |
Family
ID=59423212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710110671.7A Active CN106933512B (zh) | 2017-02-27 | 2017-02-27 | 一种数据读写的方法及其设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933512B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347329A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | I/o数据读写并发冲突的处理方法、系统及相关装置 |
CN111190543A (zh) * | 2019-12-26 | 2020-05-22 | 曙光信息产业股份有限公司 | 一种线程间共享nvdimm存储资源的存储方法及系统 |
CN111261206A (zh) * | 2020-01-17 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种读写方法、装置和电子设备及可读存储介质 |
CN115829189A (zh) * | 2023-02-08 | 2023-03-21 | 安徽深迪科技有限公司 | 一种智能工厂大数据的可视化调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204682A1 (en) * | 2002-04-26 | 2003-10-30 | Tomoyuki Ueno | Multiprocessor apparatus |
CN102012872A (zh) * | 2010-11-24 | 2011-04-13 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
-
2017
- 2017-02-27 CN CN201710110671.7A patent/CN106933512B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204682A1 (en) * | 2002-04-26 | 2003-10-30 | Tomoyuki Ueno | Multiprocessor apparatus |
CN102012872A (zh) * | 2010-11-24 | 2011-04-13 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347329A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | I/o数据读写并发冲突的处理方法、系统及相关装置 |
CN111190543A (zh) * | 2019-12-26 | 2020-05-22 | 曙光信息产业股份有限公司 | 一种线程间共享nvdimm存储资源的存储方法及系统 |
CN111190543B (zh) * | 2019-12-26 | 2023-07-18 | 曙光信息产业股份有限公司 | 一种线程间共享nvdimm存储资源的存储方法及系统 |
CN111261206A (zh) * | 2020-01-17 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种读写方法、装置和电子设备及可读存储介质 |
CN111261206B (zh) * | 2020-01-17 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种读写方法、装置和电子设备及可读存储介质 |
US11868620B2 (en) | 2020-01-17 | 2024-01-09 | Inspur Suzhou Intelligent Technology Co., Ltd. | Read-write method and apparatus, electronic device, and readable memory medium |
CN115829189A (zh) * | 2023-02-08 | 2023-03-21 | 安徽深迪科技有限公司 | 一种智能工厂大数据的可视化调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106933512B (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933512A (zh) | 一种数据读写的方法及其设备 | |
CN102362464B (zh) | 内存访问监测方法和装置 | |
CN105786405B (zh) | 一种在线升级方法、装置及系统 | |
CN104598459B (zh) | 数据库处理、数据访问方法及系统 | |
CN107968810B (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
US20140033220A1 (en) | Process grouping for improved cache and memory affinity | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN103970604A (zh) | 基于MapReduce架构实现图处理的方法和装置 | |
CN103078941A (zh) | 一种分布式计算系统的任务调度方法及系统 | |
CN108804383B (zh) | 基于度量空间的支撑点并行枚举方法及装置 | |
CN109727070B (zh) | 一种潜在活跃用户的确定方法及装置 | |
CN106708968A (zh) | 分布式数据库系统和分布式数据库系统中的数据处理方法 | |
US20140059319A1 (en) | Resource allocation apparatus and method, and storage medium | |
CN103324533A (zh) | 分布式数据处理方法、装置及系统 | |
CN110750530B (zh) | 一种业务系统及其数据核对方法 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN107943542A (zh) | 一种配置信息管理方法、装置、可读介质及存储控制器 | |
CN114385089B (zh) | 一种基于交叉编址的动态bank存储方法、装置及电子设备 | |
CN113821332A (zh) | 自动机器学习系统效能调优方法、装置、设备及介质 | |
CN107168796A (zh) | 一种数据合并方法、装置、存储器及存储控制器 | |
CN104281587B (zh) | 一种建立连接的方法及装置 | |
CN106293890A (zh) | 一种基于复杂度的业务处理方法和装置 | |
CN109947531B (zh) | 超融合一体机的存储容量扩展方法、装置及存储介质 | |
CN108132909A (zh) | 一种dsp数据存储的处理方法及装置 | |
CN108762822A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |