CN116991767A - 排他访问存储器的方法、装置、计算机设备及存储介质 - Google Patents
排他访问存储器的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116991767A CN116991767A CN202310800530.3A CN202310800530A CN116991767A CN 116991767 A CN116991767 A CN 116991767A CN 202310800530 A CN202310800530 A CN 202310800530A CN 116991767 A CN116991767 A CN 116991767A
- Authority
- CN
- China
- Prior art keywords
- exclusive
- request
- target address
- access
- access request
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 280
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000006243 chemical reaction Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 abstract 1
- 230000004044 response Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000000306 component Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 239000008358 core component Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及排他访问技术领域,公开了排他访问存储器的方法、装置、计算机设备及存储介质,所述方法应用于存储控制器,其包括:监测接收的访问请求是否为排他访问请求;当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态;目标地址为排他访问请求映射到存储控制器对应存储器中的地址;判断目标地址的独占状态与排他访问请求的访问类型是否适配;当目标地址的独占状态与排他访问请求的访问类型适配时,根据目标地址对存储器进行排他访问。避免增加额外的控制单元,降低了基于AXI的排他访问的硬件结构的复杂性。还可以应用具有存储控制器但不便于安装额外控制单元的其他芯片中,还扩展了基于AXI的排他访问的应用场景。
Description
技术领域
本申请涉及排他访问技术领域,具体涉及排他访问存储器的方法、装置、计算机设备及存储介质。
背景技术
高级可扩展接口(Advanced eXtensible Interface,AXI)协议,作为一种面向高性能、高带宽、低延迟的片上互连协议,提供了一种排他访问机制,可以实现存储器件中某个地址对应存储单元进行排他访问。因此,业内常常使用AXI协议来访问存储器,例如,动态随机存取存储器(Dynamic Random Access Memory,DRAM)。
目前由于芯片中的存储控制器仅提供读写访问的支持,不提供排他访问的支持。为了实现基于AXI的排他访问通常会在存储控制器外部增加控制单元,并配合片上存储器记录访问请求的相关控制信息(例如,访问请求的标识(Identity document,ID)号)来实现排他请求对存储器件中某个地址对应存储单元进行排他访问,但在外部增加控制单元的方法会使芯片的硬件结构变复杂。
因此,如何降低基于AXI的排他访问的硬件结构复杂性,已成为目前亟需解决的问题。
发明内容
有鉴于此,本申请提供了一种排他访问存储器的方法、装置、计算机设备及存储介质,以解决如何降低基于AXI的排他访问的硬件结构复杂性的问题。
第一方面,本申请提供了一种排他访问存储器的方法,应用于存储控制器,所述方法包括:
监测接收的访问请求是否为排他访问请求;
当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态;目标地址为排他访问请求映射到存储控制器对应存储器中的地址;
判断目标地址的独占状态与排他访问请求的访问类型是否适配;
当目标地址的独占状态与排他访问请求的访问类型适配时,根据目标地址对存储器进行排他访问。
上述技术方案中,基于存储控制器当监测到接收的访问请求为排他访问请求时;获取排他访问请求映射到存储控制器对应存储器中目标地址上的独占标记,以确定目标地址的独占状态。进而判断目标地址的独占状态与排他访问请求的访问类型是否适配,当目标地址的独占状态与访问请求的访问类型适配时,对目标地址进行排他访问。通过在存储器的地址中存储独占标记,实现利用存储控制器就能对存储器进行排他访问,避免增加额外的控制单元,降低了基于AXI的排他访问的硬件结构的复杂性。此外,上述技术方案提供的方法还可以应用具有存储控制器但不便于安装额外控制单元的其他芯片中,还扩展了基于AXI的排他访问的应用场景。
在一种可选的实施例中,当排他访问请求的访问类型为排他读请求时,判断目标地址的独占状态与排他访问请求的访问类型是否适配,包括:
判断目标地址的独占状态是否为被独占;
当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他读请求适配。
在一种可选的实施例中,当排他访问请求的访问类型为排他写请求时,判断目标地址的独占状态与排他访问请求的访问类型是否适配,包括:
判断目标地址的独占状态是否为被独占;
当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他写请求不适配;
当目标地址的独占状态为被独占时,执行以下步骤:
分别获取排他写请求的第一请求标识号,以及目标地址中的第二请求标识号;
比对第一请求标识号与目标地址中的第二请求标识号是否一致;
当第一请求标识号与第二请求标识号一致时,确定目标地址的独占状态与排他写请求适配;
当第一请求标识号与第二请求标识号不一致时,确定目标地址的独占状态与排他写请求不适配。
上述技术方案中,通过独占标记判断目标地址的独占状态,进而在目标地址的独占状态为被独占时,分别获取排他写请求的第一请求标识号,以及目标地址中的第二请求标识号,通过比对第一请求标识号与目标地址中的第二请求标识号是否一致,来判断目标址是否已经被与排他写请求相同请求标识号的排他读请求进行了排他读访问。进而判断排他写请求是否与目标地址的状态是否适配。从而实现仅通过存储控制器就能判断,要访问目标地址的排他写请求是否满足基于AXI协议的排他写访问请求对存储器中地址进行排他写访问所规定的要求,不必使用额外控制单元和片上存储器来判断基于AXI协议的排他写访问请求是否满足对存储器中地址进行排他写访问时的要求,降低了硬件的复杂性。
在一种可选的实施例中,判断目标地址的独占状态是否为被独占包括:
通过判断目标地址的独占标记是否为预设独占值,确定目标地址的独占状态是否为被独占;
其中,所述方法还包括:
当目标地址的独占状态为未被独占时,获取排他读请求的第三请求标识号;
将第三请求标识号写入目标地址;
将独占标记更新为预设独占值。
上述技术方案中,当排他访问请求的访问类型为排他读请求时,会将排他读请求的第三请求标识号写入目标地址,并将独占标记更新为预设独占值。实现了在目标地址中记录排他读请求的请求标识号以及,目标地址的独占状态,进而避免使用片上存储器来记录存储器中目标地址的状态和排他读请求的请求标识号,甚至不需要设置片上存储器,降低硬件成本。
在一种可选的实施例中,排他访问请求包括读命令;目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据;
当访问请求为排他访问请求时,读取目标地址中的独占标记,以确定目标地址的独占状态,包括:
当访问请求为排他访问请求时,将读命令发送至目标地址所在的存储器,以使存储器返回目标地址中存储的数据;
根据数据中预设标记位的取值,确定目标地址中的信息段;
从信息段中获取独占标记,以确定目标地址的独占状态。
上述技术方案中,将目标地址分为信息段与数据段,使得存储器的各个地址中有一部分空间被用来存储排他访问请求中的请求标识号以及排他标记,不需要专门用于记录控制信息的片上存储器,硬件代价低。而且当访问请求为排他访问请求时,可以直接通过将排他访问请求中的读命令发送至目标地址所在的存储器,以使存储器返回所述目标地址中存储的数据。从而根据数据中预设标记位的取值,确定目标地址中的信息段,进而确定目标地址的独占状态。不需要增加额外控制单元并配合片上存储器来判断目标地址的独占状态,降低了硬件复杂性的同时还能判断存储器中地址的独占状态。
在一种可选的实施例中,目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据;排他读请求包括写命令;
将第三请求标识号写入目标地址,包括:
将写命令发送至目标地址所在的存储器,以使存储器将第三请求标识号存储至目标地址中的信息段。
上述技术方案中,在排他读请求中设置写命令,将目标地址设置为信息段与数据段,从而将写命令发送至目标地址所在的存储器,以将第三请求标识号存储至目标地址中的信息段。不需要设计复杂的硬件结构就可以实现对排他读请求中请求标识号的记录,降低硬件成本。
在一种可选的实施例中,监测接收的访问请求是否为排他访问请求,包括:
接收访问请求,确定访问请求中地址的越界状态;
当越界状态为未越界时,根据预设地址转换规则,将访问请求的地址转换为存储器中的地址,得到地址转换后访问请求;
解析地址转换后访问请求的访问类型;
根据地址转换后访问请求的访问类型是否为排他读请求或排他写请求,确定访问请求是否为排他访问请求。
上述技术方案中,在接收到访问请求时,优先确定访问请求中地址的越界状态,以筛选出地址未越界的访问请求,进而将访问请求中的地址依据预设地址转换规则转换为存储器中的地址,得到地址转换后访问请求。避免了对每一个接收到的访问请求都进行地址转换的同时,判断访问请求中地址是否越界的操作,从而加快了对访问请求中的地址进行地址转换的效率。从而解析地址转换后访问请求的访问类型以确定访问请求是否为排他访问请求,进而可以对存储器进行加快排他访问的效率。
第二方面,本申请提供了一种排他访问装置,应用于存储控制器,所述装置包括:
监测模块,用于监测接收的访问请求是否为排他访问请求;
获取模块,用于当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态;目标地址为排他访问请求映射到存储控制器对应的存储器中的地址;
判断模块,用于判断目标地址的独占状态与排他访问请求的访问类型是否适配;
访问模块,用于当目标地址的独占状态与访问请求的访问类型适配时,对目标地址进行排他访问。
第三方面,本申请提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述排他访问存储器的方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述排他访问存储器的方法。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例示出的一种排他访问的结构示意图;
图2是一种应用场景中存储控制器通过请求解析状态机工作的具体流程示意图;
图3是根据本申请实施例的一种排他访问的方法的流程示意图;
图4是根据本申请实施例的又一种排他访问的方法的流程示意图;
图5是根据本申请实施例的又一种排他访问的方法的流程示意图;
图6是根据本申请实施例的排他访问装置的结构框图;
图7是本申请实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。
在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
本申请实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。
图1是根据本申请实施例示出的一种排他访问的结构示意图。该排他访问系统中包含存储控制器110以及存储器120。其中,存储控制器110中可以包括地址检查模块111、地址转换模块112、请求解析状态机113、数据读出通道114以及数据写入通道115。图中的箭头表示数据流向。
存储控制器110为基于AXI协议的存储控制器,用于控制对存储器120的访问,存储器120可以是访问请求能够访问且受存储控制器110控制的任意一个存储器,本申请实施例以DRAM为存储器120为例。
地址检查模块111用于检查接收到的访问请求中的地址是否越界,并在访问请求中的地址越界时,返回访问失败响应。当访问请求中的地址未越界时,地址检查模块111就将访问请求发送至地址转换模块112。
地址转换模块112用于接收到的访问请求中的地址转换为存储器120中的地址,得到地址转换后访问请求并将该地址转换后访问请求发送至请求解析状态机113。可以理解的是,也可以先通过地址转换模块112将访问请求中的地址转换为存储器120中的地址之后,再通过地址检查模块111对地址转换后的访问请求中的地址是否越界进行检查。
请求解析状态机113是存储控制器110中的核心部件,用于将地址转换后访问请求拆分成存储器120的访问命令,以实现对存储器120中各个地址的访问。当存储器120为DRAM时,访问命令可以包括激活(Activation,ACT)命令、读(Read,RD)命令、写(Wire,WE)命令以及预充电(Precharge,PRE)命令等命令。
可选的,存储控制器110还可以通过请求解析状态机113判断地址转换后访问请求的访问类型。请求解析状态机113可以翻转至不同的状态,以在不同状态下向存储器120发送不同的访问命令,以完成对存储器120的访问。
数据读出通道114用于接收从存储器120在读出的数据,数据写入通道115用于发送写入存储器120的数据。
在一种应用场景中,如图2所示,存储控制器通过地址检查模块111检查接收到的访问请求中的地址是否越界。当访问请求中的地址未越界时,存储控制器通过地址检查模块111将访问请求发送至地址转换模块112。地存储控制器通过地址转换模块112将接收的该访问请求中的地址转换为DRAM中的地址,得到地址转换后访问请求,并地址转换模块112将该地址转换后访问请求发送至请求解析状态机113。
请求解析状态机113一开始处于初始状态(状态0),存储控制器会通过请求解析状态机113监测是否有地址转换后访问请求被发送过来;当监测到有地址转换后访问请求从地址转换模块112发送过来时,存储控制器会通过请求解析状态机113将该地址转换后访问请求拆分成ACT命令、RD命令以及PRE命令等DRAM的访问命令,进而向DRAM发送ACT命令,以激活DRAM。
存储控制器110通过请求解析状态机113根据地址转换后访问请求中的请求标识号以及排他标记来判断该址转换后访问请求的访问类型。并依据不同的访问类型控制请求解析状态机113的状态翻转,同时通过请求解析状态机113向DRAM按序发送不同的访问命令,以完成为DRAM的访问。
下面对本申请的排他访问存储器的方法进行介绍,如图3所示的本申请实施例的一种排他访问存储器的方法流程图,该方法应用与存储控制器,该存储控制器可以是如图1中所示的存储控制器110,该方法包括如下步骤:
步骤310,监测接收的访问请求是否为排他访问请求。
访问请求中包括访问请求的请求标识号(请求标识号用于指示访问请求的事务)以及排他标记(排他标记用于指示访问请求是否为排他访问),存储控制器可以是基于AXI协议的存储控制器。访问请求也可以是基于AXI协议的访问请求。存储控制器可以通过内部的请求状态解析机监测是否接收到访问请求,并在接收到访问请求时,通过请求解析状态机将排他访问请求拆分为ACT命令等存储器的访问命令。进而通过请求解析状态机将ACT命令发送给存储器,以激活存储器,进而通过请求解析状态机基于接收的访问请求中的请求标识号以及排他标记,判断访问请求的访问类型(访问类型可以是读请求、写请求、排他读请求或排他写请求),进而就可以判断出接收的访问请求是否为排他访问请求。
步骤320,当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态。
其中,目标地址为排他访问请求映射到存储控制器对应的存储器中的地址;存储器可以是访问请求能够访问且受存储控制器控制的任意一个存储器,本申请实施例以DRAM为存储器为例。当访问请求为排他访问请求时,存储控制器就会通过内部地址转换模块将排他访问请求中的地址映射为对应存储器中的地址,进而得到排他访问请求在存储器中对应的目标地址;进而通过请求解析状态机从该目标地址中读取用于指示该目标地址能否被独占的独占标记,以确定该目标地址的独占状态从而确定该目标地址能否被独占。
可以理解的是,独占状态包括两种,一种是被独占此时表明目标地址不能被独占;一种是未被独占此时表明目标地址可以被独占。
步骤330,判断目标地址的独占状态与排他访问请求的访问类型是否适配。
存储控制器通过请求解析状态机监测接收的访问请求是否为排他访问请求时,就可以确定排他访问请求的访问类型是排他读请求还是排他写请求。可以预先将判断排他访问请求的访问类型与独占状态是否适配的判断条件进行存储,存储控制器就可以依据预先存储的判断条件来判断排他访问的访问类型是否与目标地址的独占状态适配。判断排他访问请求的访问类型与独占状态是否适配的判断条件可以是,存储器中地址的独占状态不论是被独占还是未被独占,都与排他读请求适配;存储器中地址的独占状态为被独占时,才能与排他写请求适配。
步骤340,当目标地址的独占状态与排他访问请求的访问类型适配时,根据目标地址对存储器进行排他访问。
当目标地址的独占状态与排他访问请求的访问类型适配时,当排他访问请求的访问类型为排他读请求时,存储控制器通过请求解析状态机读取目标地址对应存储单元中存储的数据,数据读出通道就接收到该数据,并将其作为读响应数据返回给发送排他访问请求的设备,完成对存储器排他读访问;当排他访问请求的访问类型为排他读请求时,存储控制器通过请求解析状态机从数据写入通道处接收的数据写入到目标地址对应存储单元中,已完成对存储器的排他写访问,同时将目标地址的独占状态修改为未被独占。
在本申请实施例中,基于存储控制器当监测到接收的访问请求为排他访问请求时;获取排他访问请求映射到存储控制器对应存储器中目标地址上的独占标记,以确定目标地址的独占状态。进而判断目标地址的独占状态与排他访问请求的访问类型是否适配,当目标地址的独占状态与访问请求的访问类型适配时,对目标地址进行排他访问。通过在存储器的地址中存储独占标记,实现利用存储控制器就能对存储器进行排他访问,避免增加额外的控制单元,降低了基于AXI的排他访问的硬件结构的复杂性。此外,上述技术方案提供的方法还可以应用具有存储控制器但不便于安装额外控制单元的其他芯片中,还扩展了基于AXI的排他访问的应用场景。
图4本申请实施例的又一种排他访问存储器的方法流程图,该方法应用与存储控制器,该存储控制器可以是如图1中所示的存储控制器110,该方法包括如下步骤:
步骤410,监测接收的访问请求是否为排他访问请求。
详细参见图3所示实例步骤310,在此不再赘述。
可选的,步骤410,监测接收的访问请求是否为排他访问请求,可以包括步骤411至步骤414:
步骤411,接收访问请求,确定访问请求中地址的越界状态。
存储控制器通过内部地址检查模块在接收到访问请求时,会计算该访问请求中地址的第一地址跨度,并将该第一地址跨度与存储器中地址的第二地址跨度进行比较。当该第一地址跨度大于第二地址跨度时,则确定访问请求中地址的越界状态为越界;当该第一地址跨度小于或等于第二地址跨度时,则确定访问请求中地址的越界状态为未越界。一般而言存储器中各个地址的地址跨度一致。例如,访问请求中的地址为[255:0](表示访问请求中的地址的最低位的编号为0,最高位的编号为255),则该访问请求中地址的第一地址跨度为256;DRAM中各个地址的第二地址跨度均为128,则访问请求中地址的越界状态为越界。
步骤412,当越界状态为未越界时,根据预设地址转换规则,将访问请求的地址转换为存储器中的地址,得到地址转换后访问请求。
当访问请求中地址的越界状态为未越界时,存储控制器会按照预设地址转换规则将访问请求中包括请求标识号以及排他标记等控制信息的地址,依据预设地址转换规则中的第一规则进行逐位转换;将访问请求中除控制信息所在地址以外的其他地址,依据预设地址转换规则中的第二规则进行逐位转换。需要说明的是,控制信息除了包括请求标识号以及排他标记外,还可以包括自行设计的其他信息。
预设地址转换规则如下所示:
第一规则:
DRAM Addr[N:13]=req_addr[N-1:12];
DRAM Addr[12:4]=req_addr[11:3];
DRAM Addr[3]=1;
DRAM Addr[2:0]=0;
第二规则:
DRAM Addr[N:13]=req_addr[N-1:12];
DRAM Addr[12:4]=req_addr[11:3];
DRAM Addr[3]=0;
DRAM Addr[2:0]=0。其中,N为正整数,DRAM Addr表示存储器的地址,req_addr表示访问请求的地址。
步骤413,解析地址转换后访问请求的访问类型。
存储控制器通过请求解析状态机根据地址转换后访问请求中的请求标识号以及排他标记,判断访问请求的访问类型。
步骤414,根据地址转换后访问请求的访问类型是否为排他读请求或排他写请求,确定访问请求是否为排他访问请求。
存储控制器通过请求解析状态机将地址转换后访问请求的访问类型为排他读请求或排他写请求,确定为排他访问请求。
当地址转换后访问请求的访问类型为读请求或写请求时,则确定访问请求为非排他访问请求,进而转入非排他访问请求对存储器的访问流程。
在接收到访问请求时,优先确定访问请求中地址的越界状态,以筛选出地址未越界的访问请求,进而将访问请求中的地址依据预设地址转换规则转换为存储器中的地址,得到地址转换后访问请求。避免了对每一个接收到的访问请求都进行地址转换的同时,判断访问请求中地址是否越界的操作,从而加快了对访问请求中的地址进行地址转换的效率。从而解析地址转换后访问请求的访问类型以确定访问请求是否为排他访问请求,进而可以对存储器进行加快排他访问的效率。
可选的,为了兼顾非排他访问请求对存储器的访问,非排他访问请求对存储器的访问流程具体为:当存储控制器在通过请求状态解析机判断出地址转换后访问请求的访问类型为读请求时,会通过请求状态解析机将该读请求拆分成包括ACT命令、RD命令以及PRE命令等存储器的访问命令。进而存储控制器会通过请求状态解析机将ACT命令发送给存储器,以激活存储。继而存储控制器通过请求状态解析机将RD命令发送给存储器,以使存储器将目标地址中存储的数据反馈给数据读出通道,以将该数据作为读响应数据返回给用户,进而将PRE命令发送给存储器,使得请求状态解析机的状态翻转到初始状态(也即图2中所示的状态0)以指示当前读请求完成。
当存储控制器在通过请求状态解析机判断出地址转换后访问请求为写请求时,会通过请求状态解析机将该读请求拆分成ACT命令、WE命令以及PRE命令等存储器的访问命令。进而存储控制器会通过请求状态解析机将ACT命令发送给存储器,以激活存储。继而存储控制器通过请求状态解析机将WE命令发送给存储器,并把通过数据写入通道将需要写入的数据发送至存储器中。进而将PRE命令发送给存储器,以使存储器将通过数据写入通道接收的该数据写入到目标地址内,并使得请求状态解析机的状态翻转到初始状态(也即图2中所示的状态0)以指示当前写请求完成。
步骤420,当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态。
详细参见图3所示实施例中步骤320,在此不做赘述。
可选的,为了实现在降低硬件复杂性的同时还能判断存储器中地址的独占状态,步骤420,当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态,可以包括如下步骤421至步骤423:
步骤421,当访问请求为排他访问请求时,将读命令发送至目标地址所在的存储器,以使存储器返回目标地址中存储的数据;
其中,排他访问请求包括读命令;目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据。依据上述预设地址转换规则,信息段可以是目标地址中DRAM Addr[3]=1的部分;数据段可以是目标地址中DRAM Addr[3]=0的部分。
当访问请求为排他访问请求时,存储控制器通过请求解析状态机将排他访问请求中的读命令发送至目标地址所在的存储器,以使存储器向请求解析状态机返回一个数据串,该数据串中同时包含目标地址中信息段所存储的数据,以及目标地址中数据段所存储的数据。
上述步骤421中,将目标地址分为信息段与数据段,使得存储器的各个地址中有一部分空间被用来存储排他访问请求中的请求标识号以及排他标记,不需要专门用于记录控制信息的片上存储器,硬件代价低。而且,目前在存储控制器外部增加控制单元,并配合片上存储器记录排他访问请求的控制信息,来实现排他请求对存储器件中某个地址排他访问的方法,还会使控制单元能够支持的排他访问请求的数量受限于片上内存的存储容量。那么,当存储器中分配给信息段(也即存储排他访问请求中的请求标识号以及排他标记的地址)所占的存储容量大于片上存储器的存储容量时可以增大能够支持的排他访问请求的数量。
步骤422,根据数据中预设标记位的取值,确定目标地址中的信息段。
预设标记位为DRAM Addr[3],存储控制器通过请求解析状态机判断存储器返回的数据串中各个地址段中DRAM Addr[3]的取值,将DRAM Addr[3]=1的地址段确定为目标地址中的信息段。例如,当存储器返回的数据串中有两个地址段,每个地址段可以存储64bit的数据,其中一个地址段中的DRAM Addr[3]=1,则将该地址段确定为目标地址的信息段。另一个地址段中的DRAM Addr[3]=0,则将该地址段确定为目标地址的数据段。
可以理解的是,除了将DRAM Addr[3]作为预设标记位,并以DRAM Addr[3]的取值来区分存储器中各个地址中信息段以及数据段外,还可以设置其它位置(该例如,DRAMAddr[4]或DRAM Addr[5]等)来区分存储器各个地址中的信息段与数据段。数据段中除了可以存储排他访问请求访问的数据外,还可以存储非排他访问请求(读请求以及写请求)访问的数据,还可以存储其他不同于请求标识号以及排他标记的数据。
步骤423,从信息段中获取独占标记,以确定目标地址的独占状态。
独占标记可以存储在排他访问请求的请求标识号中,存储控制器通过请求解析状态机可以从信息段中读取出排他访问请求的请求标识号,并在该请求标识号中,读取独占标记,从而根据独占标记的取值是否为预设独占值来确定目标地址的独占状态。本申请实施例中以预设独占值等于1为例,当据独占标记的取值为1时,确定目标地址的独占状态为被独占;当据独占标记的取值为0时,确定目标地址的独占状态为未被独占。
将目标地址分为信息段与数据段,使得存储器的各个地址中有一部分空间被用来存储排他访问请求中的请求标识号以及排他标记,不需要专门用于记录控制信息的片上存储器,硬件代价低。而且当访问请求为排他访问请求时,可以直接通过将排他访问请求中的读命令发送至目标地址所在的存储器,以使存储器返回所述目标地址中存储的数据。从而根据数据中预设标记位的取值,确定目标地址中的信息段,进而确定目标地址的独占状态。不需要增加额外控制单元并配合片上存储器来判断目标地址的独占状态,降低了硬件复杂性的同时还能判断存储器中地址的独占状态。
步骤430,判断目标地址的独占状态与排他访问请求的访问类型是否适配。
详细参见图3所示实施例中步骤330,在此不做赘述。
步骤440,当目标地址的独占状态与访问请求的访问类型适配时,根据目标地址对存储器进行排他访问。
详细参见图3所示实施例中步骤340,在此不做赘述。
本申请实施例中,在接收到访问请求时,优先确定访问请求中地址的越界状态,以筛选出地址未越界的访问请求,进而将访问请求中的地址依据预设地址转换规则转换为存储器中的地址,得到地址转换后访问请求。避免了对每一个接收到的访问请求都进行地址转换的同时,判断访问请求中地址是否越界的操作,从而加快了对访问请求中的地址进行地址转换的效率。并将目标地址分为信息段与数据段,使得存储器的各个地址中有一部分空间被用来存储排他访问请求中的请求标识号以及排他标记,不需要专门用于记录控制信息的片上存储器;也不需要增加额外控制单元并配合片上存储器来判断目标地址的独占状态,降低了硬件复杂性的同时还能判断存储器中地址的独占状态。进而判断目标地址的独占状态与排他访问请求的访问类型是否适配,当目标地址的独占状态与访问请求的访问类型适配时,对存储器进行排他访问。避免增加额外的控制单元,降低了基于AXI的排他访问的硬件结构的复杂性。
图5本申请实施例的又一种排他访问存储器的方法流程图,该方法应用与存储控制器,该存储控制器可以是如图1中所示的存储控制器110,该方法包括如下步骤:
步骤510,监测接收的访问请求是否为排他访问请求。
详细参见图4所示实施例中步骤410,在此不做赘述。
步骤520,当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态。
详细参见图4所示实施例中步骤420,在此不做赘述。
步骤530,判断目标地址的独占状态与排他访问请求的访问类型是否适配。
详细参见图4所示实施例中步骤430,在此不做赘述。
当排他访问请求的访问类型为排他写请求时,步骤530,判断目标地址的独占状态与排他访问请求的访问类型是否适配,可以包括如下步骤A1至步骤A3:
步骤A1,判断目标地址的独占状态是否为被独占。
存储控制器通过请求解析状态机可以依据独占标记的取值是否为预设独占值,来判断目标地址的独占状态是未被独占还是被独占。
步骤A2,当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他写请求不适配。
考虑到基于AXI协议的排他写请求,在对存储器中的某地址进行独占访问时,要求该地址在该排他写请求之前,已被与该排他写请求相同请求标识号的排他读请求进行了排他读访问。因此目标地址的独占状态必须为被独占,才能保证排他写请求的顺序进行。当存储控制器通过请求解析状态机确定目标地址的独占状态为未被独占时,则确定目标地址的独占状态与排他写请求不适配。
步骤A3,当目标地址的独占状态为被独占时,执行以下步骤:
分别获取排他写请求的第一请求标识号,以及目标地址中的第二请求标识号;
比对第一请求标识号与目标地址中的第二请求标识号是否一致;
当第一请求标识号与第二请求标识号一致时,确定目标地址的独占状态与排他写请求适配;
当第一请求标识号与第二请求标识号不一致时,确定目标地址的独占状态与排他写请求不适配。
排他写请求中包括读命令,存储控制器通过请求解析状态机读取排他写请求的第一请求标识号。并通过请求解析状态机将排他写请求中的读命令发送至目标地址所在的存储器,以使存储器向请求解析状态机返回包括第二请求标识号在内的目标地址所存储的数据串。进而通过请求解析状态机从该数据串中读取第二请求标识号(具体方法与图4所示实施例中获取目标地址中的独占标记相类似,在此不做赘述)。进而比对第一请求标识号与目标地址中的第二请求标识号是否一致,也即判断目标址是否已经被与排他写请求相同请求标识号的排他读请求进行了排他读访问。当第一请求标识号与第二请求标识号一致时,就确定目标地址的独占状态与排他写请求适配,进而进行排他写访问,否则确定目标地址的独占状态与排他写请求不适配,返回写失败响应。
通过独占标记判断目标地址的独占状态,进而在目标地址的独占状态为被独占时,分别获取排他写请求的第一请求标识号,以及目标地址中的第二请求标识号,通过比对第一请求标识号与目标地址中的第二请求标识号是否一致,来判断目标址是否已经被与排他写请求相同请求标识号的排他读请求进行了排他读访问。进而判断排他写请求是否与目标地址的状态是否适配。从而实现仅通过存储控制器就能判断,要访问目标地址的排他写请求是否满足基于AXI协议的排他写访问请求对存储器中地址进行排他写访问所规定的要求,不必使用额外控制单元和片上存储器来判断基于AXI协议的排他写访问请求是否满足对存储器中地址进行排他写访问时的要求,降低了硬件的复杂性。
当所述排他访问请求的访问类型为排他读请求时,步骤530,判断目标地址的独占状态与排他访问请求的访问类型是否适配,可以包括如下步骤B1至步骤B2:
步骤B1,判断目标地址的独占状态是否为被独占。
存储控制器通过请求解析状态机可以依据独占标记的具体取值,来判断目标地址的独占状态是未被独占还是被独占。
考虑到基于AXI协议的排他写请求,在对存储器中的某地址进行独占访问时,要求该地址在该排他写请求之前,已被与该排他写请求相同请求标识号的排他读请求进行了读访问。因此,为了后续对存储器中目标地址的排他写访问的顺利进行,步骤B1,判断目标地址的独占状态是否为被独占,可以包括如下步骤B11至步骤B14:
步骤B11,通过判断目标地址的独占标记是否为预设独占值,确定目标地址的独占状态是否为被独占。
存储控制器通过请求解析状态机判断独占标记的具体取值是否为预设独占值,当独占标记的具体取值为预设独占值,则判断目标地址的独占状态为被独占;当占标记的具体取值不为预设独占值,则判断目标地址的独占状态为未被独占。独占标记的具体取值可以是0或1,预设独占值也可以是0或1,本申请实施例以预设独占值为1为例。
步骤B12,当目标地址的独占状态为未被独占时,获取排他读请求的第三请求标识号;
当目标地址的独占状态为未被独占时,存储控制器通过请求解析状态机从排他读请求中读取出该排他读请求的请求ID号(也即第三请求标识号)。需要说明的是,此时的排他读请求为经过存储控制器中地址转换模块进行地址转换后的请求,该排他读请求的地址越界状态为未越界。
步骤B13,将第三请求标识号写入目标地址。
存储控制器通过请求解析状态机将第三请求标识号写入到目标地址进行保存。如果目标地址中已经存在了请求标识号(不论这个请求标识号是不是第三请求标识号)存储控制器都会通过请求解析状态机,用第三请求标识号,覆盖掉目标地址中原来存在的请求标识号。
具体的,步骤B13,将第三请求标识号写入目标地址,可以包括:
将写命令发送至目标地址所在的存储器,以使存储器将第三请求标识号存储至目标地址中的信息段。
目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据;排他读请求包括写命令。存储控制器通过请求解析状态机将排他读请求拆分为包括ACT命令、RD命令、WE命令以及PRE命令等的访问命令,当存储控制器通过请求解析状态机判断出目标地址的独占状态为未被独占时,存储控制器会通过请求解析状态机将WE命令,以及排他读请求的第三请求标识号发送至存储器,以指示存储器将第三请求标识号写入目标地址。进而将PRE命令发送至存储器,使存储器将第三请求标识号写入目标地址。
通过在排他读请求中设置写命令,将写命令发送至目标地址所在的存储器,以使存储器将第三请求标识号存储至目标地址中的信息段,实现排他读请求中请求标识号被记录至存储器中目标地址的功能,使存储器可以代替片上存储器,甚至不需要设置片上存储器,降低硬件成本。
可选的,当目标地址的独占状态为被独占时,分别获取排他读请求的第三请求标识号,以及目标地址中的第四请求标识号;比对第四请求标识号与第三请求标识号是否一致;当第四请求标识号与第三请求标识号一致时,将第三请求标识号写入目标地址。在目标地址的独占状态为被独占,虽然排他读请求与该独占状态适配,但依旧可以比对第四请求标识号与第三请求标识号是否一致,以将第三请求标识号再次写入目标地址中,覆盖目标地址原来的请求标识号。
步骤B14,将独占标记更新为预设独占值。
排他读请求的第三请求标识号中包括排他标记,该排他标记取预设独占值时,意味着访问请求为排他访问请求。当存储控制器通过请求解析状态机,将PRE命令发送至存储器,使存储器将第三请求标识号写入目标地址时,存储器会将独占标记的取值更新为排他标记所取的预设独占值。
当排他访问请求的访问类型为排他读请求时,会将排他读请求的第三请求标识号写入目标地址,并将独占标记更新为预设独占值。实现了在目标地址中记录排他读请求的请求标识号以及,目标地址的独占状态,进而避免使用片上存储器来记录存储器中目标地址的状态和排他读请求的请求标识号,甚至不需要设置片上存储器,降低硬件成本。
步骤B2,当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他读请求适配。
当存储控制器通过请求解析状态机依据独占标记的具体取值,来判断目标地址的独占状态为未被独占时,就确定目标地址的独占状态与排他读请求适配。此时,排他读请求可以对目标地址对应存储单元进行读访问。
另外,需要说明的是,本申请实施例中的排他读请求并不会阻止其他请求标识号的排他读请求对目标地址对应存储单元的读访问,因此,当目标地址的独占状态为被独占时,其他请求标识号的排他读请求依旧可以对目标地址对应存储单元进行读访问。需要说明的是,本申请实施例中的排他读请求主要是用于与排他写请求对应,以实现在排他写请求访问存储器中某地址之前,将该地址的独占标记更新为预设独占值,表明该地址已被与该排他写请求相同请求标识号的排他读请求进行了读访问。便于后续基于AXI协议的排他写请求对目标地址的排他写访问的顺利进行。
需要说明的是,在目前使用控制单元并配合片上存储器记录排他访问请求的控制信息,来实现排他请求对存储器件中某个地址排他访问的方法中,排他访问请求中并不会同时包括读命令以及写命令,本申请的技术方案中,在排他访问请求中同时设置读命令以及写命令,是为了配合存储控制器,来在排他访问请求可以访问的存储器中记录独占标记以及请求标识号,进而实现在不增加额外控制单元甚至是片上存储器的基础上实现对存储器的排他访问。
步骤540,当目标地址的独占状态与排他访问请求的访问类型适配时,根据目标地址对存储器进行排他访问。
当目标地址的独占状态与排他读请求的访问类型适配时,存储控制器通过请求状态解析机将之前向存储器发送读命令后,接收的存储器返回的目标地址中的数据作为读响应数据返回给用户,进而将PRE命令发送给存储器,使得请求状态解析机的状态翻转到初始状态(也即图2中所示的状态0)以指示当前读请求完成。
当目标地址的独占状态与排他写请求的访问类型适配时,存储控制器通过请求状态解析机将WE命令发送给存储器,并通过数据写入通道将需要写入的数据发送至存储器中。进而将PRE命令发送给存储器,以使存储器将通过数据写入通道接收的该数据写入到目标地址内,并使得请求状态解析机的状态翻转到初始状态(也即图2中所示的状态0)以指示当前写请求完成。
可选的,访问请求的访问类型不是读请求、写请求、排他读请求以及排他写请求时,则存储控制器通过请求解析状态机发送报错信息。
在一种应用场景中,结合图2,存储器为DRAM,也即图2中所示的DRAM器件,访问请求应用AXI协议,且存储控制器为基于AXI协议的存储控制器,请求解析状态机一开始处于初始状态(状态0),存储控制器会通过请求解析状态机监测是否有地址转换后访问请求被发送过来;当监测到有地址转换后访问请求从地址转换模块发送过来时,存储控制器会通过请求解析状态机将该地址转换后访问请求拆分成ACT命令、RD命令、WE命令以及PRE命令等DRAM的访问命令,进而向DRAM发送ACT命令,以激活DRAM。并通过请求解析状态机根据地址转换后访问请求的请求标识号以及排他标记判断地址转换后访问请求的访问类型。
当判断出访问类型为读请求时,控制请求解析状态机从状态0跳转到状态1,通过请求解析状态机向DRAM发送RD命令,以使DRAM将RD命令中想要读取的数据发送至数据读出通道,作为读响应数据返回给用户。而后控制请求解析状态机从状态1翻转至状态2,在请求解析状态机翻转至状态2后,存储控制器通过请求解析状态机向DRAM发送PRE命令,以使请求解析状态机恢复到状态0,从而完成对DRAM的读访问。
当地址转换后访问请求为写请求时,控制请求解析状态机从状态0跳转到状态3,通过请求解析状态机向DRAM发送WE命令,并通过数据写入通道将需要写入DRAM中某地址的数据发送至DRAM中,指示DRAM准备写入数据。进而控制请求解析状态机从状态3翻转至状态2,进而通过请求解析状态机将PRE命令发送给DRAM,以使DRAM将通过数据写入通道接收的数据写入到对应的地址内,并控制请求状态解析机的状态翻转到初始状态。
当判断出访问类型为排他读请求时,控制请求解析状态机从状态0跳转到状态4,通过请求解析状态机向DRAM发送RD命令,以使DRAM返回某地址存储的数据,并控制请求解析状态机从状态4跳转到状态5。进而通过请求解析状态机从DRAM返回的数据中的信息段中读取请求ID号,从该请求ID号中读取独占标记,以判断该数据对应地址的独占状态是否为被独占(也即图中所示的判断从DRAM中读出的ID号是否以及被标记有效)。
当该数据对应地址的独占状态为被独占时,存储控制器会通过请求解析状态机获取排他读请求的请求ID号,进而判断排他读请求的请求ID号是否与DRAM中读出的ID号(存储器接收到排他读请求中的读命令后返回的数据中包括该ID号)相同;如果不相同,则将DRAM返回的数据发送至数据读出通道,作为读响应数据返回给用户,并向读响应通道发送EXOKAY信号。并控制请求解析状态机从状态5翻转到状态6,进而通过请求解析状态机向DRAM发送PRE命令,以使请求解析状态机恢复到状态0,从而完成对DRAM的排他读访问。
如果相同,则通过请求解析状态机向DRAM中发送排他读请求中的WE命令,以及排他读请求的请求ID号(包括排他标记);指示DRAM将该请求ID号准备写入到相应地址中,并将DRAM返回的数据发送至数据读出通道,作为读响应数据返回给用户,并向读响应通道发送EXOKAY信号。进而控制请求解析状态机从状态5翻转到状态6,向DRAM发送PRE命令,已将该请求ID号写入到相应地址中,覆盖掉该地址原来的存储的ID号。并控制请求解析状态机恢复到状态0,从而完成对DRAM的排他读访问。
当该数据对应地址的独占状态为未被独占时,存储控制器通过请求解析状态机向DRAM中发送排他读请求中的WE命令,以及排他读请求的请求ID号(包括排他标记);指示DRAM将该请求ID号准备写入到相应地址中,并将DRAM返回的数据发送至数据读出通道,作为读响应数据返回给用户,并向读响应通道发送EXOKAY信号。进而控制请求解析状态机从状态5翻转到状态6,向DRAM发送PRE命令,以将该请求ID号写入到相应地址中(同时将地址的独占标记更新为预设独占值),覆盖掉该地址原来的存储的ID号。并控制请求解析状态机恢复到状态0,从而完成对DRAM的排他读访问。也即对于排他读访问,不论存储器中地址的独占状态是未被独占还是被独占,都可以从存储器读出数据。但排他读请求的请求标识号的写入对存储器中地址的独占状态,以及存储器中地址存储的ID号有关。
当判断出访问类型为排他写请求时,控制请求解析状态机从状态0跳转到状态7,通过请求解析状态机向DRAM发送RD命令,以使DRAM返回某地址存储的数据,并控制请求解析状态机从状态7跳转到状态8。进而通过请求解析状态机从DRAM返回的数据中的信息段中读取请求ID号,从该请求ID号中读取独占标记,以判断该数据对应地址的独占状态是否为被独占(也即图中所示的判断从DRAM中读出的ID号是否以及被标记有效)。
当该数据对应地址的独占状态为被独占时,存储控制器会通过请求解析状态机获取排他读请求的请求ID号,进而判断排他读请求的请求ID号是否与DRAM中读出的ID号(存储器接收到排他读请求中的读命令后返回的数据中包括该ID号)相同,如果不相同,则向写响应通道发送OKAY信号;如果相同,存储控制器通过请求解析状态机向DRAM中发送排他读请求中的WE命令,并通过数据写入通道将要写入DRAM中的数据发送至DRAM,指示DRAM准备写入数据。进而控制请求解析状态机从状态8跳转到状态6,向DRAM发送PRE命令,以使DRAM将数据写入通道发送的数据写入到相关地址中,存储控制器还通过请求状态解析机向写响应通道发送EXOKAY信号。并控制请求解析状态机恢复到状态0,从而完成对DRAM的排他写访问。
当访问请求的访问类型不是读请求、写请求、排他读请求以及排他写请求时,则存储控制器通过请求解析状态机发送报错信息,并控制请求状态解析机恢复到状态0。
本申请实施例中,实现排他访问请求中请求标识号被记录至存储器中目标地址的功能,使存储器可以代替片上存储器,甚至不需要设置片上存储器,降低硬件成本。当排他访问请求为排他写请求时,还可以通过比对第一请求标识号与目标地址中的第二请求标识号是否一致,来判断目标址是否已经被与排他写请求相同请求标识号的排他读请求进行了排他读访问。进而判断排他写请求是否与目标地址的状态是否适配。实现了仅通过存储控制器就能判断,要访问目标地址的排他写请求是否满足基于AXI协议的排他写访问请求对存储器中地址进行排他写访问所规定的要求,不必使用额外控制单元和片上存储器来判断基于AXI协议的排他写访问请求是否满足对存储器中地址进行排他写访问时的要求,降低了硬件的复杂性。进而对存储器进行排他访问。通过在存储器的地址中存储独占标记,实现利用存储控制器就能对存储器进行排他访问,避免增加额外的控制单元,降低了基于AXI的排他访问的硬件结构的复杂性。此外,上述技术方案提供的方法还可以应用具有存储控制器但不便于安装额外控制单元的其他芯片中,还扩展了基于AXI的排他访问的应用场景。
在本实施例中还提供了一种排他访问装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图6所示,该排他访问装置应用与存储控制器,该装置包括:
监测模块610,用于监测接收的访问请求是否为排他访问请求;
获取模块620,用于当访问请求为排他访问请求时,获取目标地址中的独占标记,以确定目标地址的独占状态;目标地址为排他访问请求映射到存储控制器对应的存储器中的地址;
判断模块630,用于判断目标地址的独占状态与排他访问请求的访问类型是否适配;
访问模块640,用于当目标地址的独占状态与访问请求的访问类型适配时,对目标地址进行排他访问。
在一种可选的实施例中,判断模块可以包括:
判断单元,用于判断目标地址的独占状态是否为被独占;
第一确定单元,用于当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他读请求适配。
在一种可选的实施例中,判断单元,还用于判断目标地址的独占状态是否为被独占;
第一确定单元,还用于当目标地址的独占状态为未被独占时,确定目标地址的独占状态与排他写请求不适配;
当目标地址的独占状态为被独占时,执行以下步骤:
分别获取排他写请求的第一请求标识号,以及目标地址中的第二请求标识号;
比对第一请求标识号与目标地址中的第二请求标识号是否一致;
当第一请求标识号与第二请求标识号一致时,确定目标地址的独占状态与排他写请求适配;
当第一请求标识号与第二请求标识号不一致时,确定目标地址的独占状态与排他写请求不适配。
在一种可选的实施例中,判断单元,还用于通过判断目标地址的独占标记是否为预设独占值,确定目标地址的独占状态是否为被独占;
其中,判断模块,还用于:
当目标地址的独占状态为未被独占时,获取排他读请求的第三请求标识号;
将第三请求标识号写入目标地址;
将独占标记更新为预设独占值。
在一种可选的实施例中,排他访问请求包括读命令;目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据;确定模块可以包括:
发送单元,用于当访问请求为排他访问请求时,将读命令发送至目标地址所在的存储器,以使存储器返回目标地址中存储的数据;
第二确定单元,用于根据数据中预设标记位的取值,确定目标地址中的信息段;
第三确定单元,用于从信息段中获取独占标记,以确定目标地址的独占状态。
在一种可选的实施例中,目标地址包括信息段以及数据段,信息段用于存储独占标记以及排他访问请求的请求标识号,数据段用于存储排他访问请求访问的数据;排他读请求包括写命令;
判断模块,还用于将写命令发送至目标地址所在的存储器,以使存储器将第三请求标识号存储至目标地址中的信息段。
在一种可选的实施例中,监测模块,可以包括:
接收单元,用于接收访问请求,确定访问请求中地址的越界状态;
转换单元,用于当越界状态为未越界时,根据预设地址转换规则,将访问请求的地址转换为存储器中的地址,得到地址转换后访问请求;
解析单元,用于解析地址转换后访问请求的访问类型;
第四确定单元,用于根据地址转换后访问请求的访问类型是否为排他读请求或排他写请求,确定访问请求是否为排他访问请求。
本实施例中的排他访问装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本申请实施例还提供一种计算机设备,具有上述图6所示的排他访问装置。
请参阅图7,图7是本申请可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本申请实施例还提供了一种计算机可读存储介质,上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本申请的实施例,但是本领域技术人员可以在不脱离本申请的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种排他访问存储器的方法,其特征在于,应用于存储控制器,所述方法包括:
监测接收的访问请求是否为排他访问请求;
当所述访问请求为排他访问请求时,获取目标地址中的独占标记,以确定所述目标地址的独占状态;所述目标地址为所述排他访问请求映射到所述存储控制器对应存储器中的地址;
判断所述目标地址的独占状态与所述排他访问请求的访问类型是否适配;
当所述目标地址的独占状态与所述排他访问请求的访问类型适配时,根据所述目标地址对所述存储器进行排他访问。
2.根据权利要求1所述的方法,其特征在于,当所述排他访问请求的访问类型为排他读请求时,所述判断所述目标地址的独占状态与所述排他访问请求的访问类型是否适配,包括:
判断所述目标地址的独占状态是否为被独占;
当所述目标地址的独占状态为未被独占时,确定所述目标地址的独占状态与所述排他读请求适配。
3.根据权利要求1所述的方法,其特征在于,当所述排他访问请求的访问类型为排他写请求时,所述判断所述目标地址的独占状态与所述排他访问请求的访问类型是否适配,包括:
判断所述目标地址的独占状态是否为被独占;
当所述目标地址的独占状态为未被独占时,确定所述目标地址的独占状态与所述排他写请求不适配;
当所述目标地址的独占状态为被独占时,执行以下步骤:
分别获取所述排他写请求的第一请求标识号,以及所述目标地址中的第二请求标识号;
比对所述第一请求标识号与所述目标地址中的第二请求标识号是否一致;
当所述第一请求标识号与所述第二请求标识号一致时,确定所述目标地址的独占状态与所述排他写请求适配;
当所述第一请求标识号与所述第二请求标识号不一致时,确定所述目标地址的独占状态与所述排他写请求不适配。
4.根据权利要求2所述的方法,其特征在于,所述判断所述目标地址的独占状态是否为被独占包括:
通过判断所述目标地址的独占标记是否为预设独占值,确定所述目标地址的独占状态是否为被独占;
其中,所述方法还包括:
当所述目标地址的独占状态为未被独占时,获取所述排他读请求的第三请求标识号;
将所述第三请求标识号写入所述目标地址;
将所述独占标记更新为所述预设独占值。
5.根据权利要求1所述的方法,其特征在于,排他访问请求包括读命令;所述目标地址包括信息段以及数据段,所述信息段用于存储所述独占标记以及所述排他访问请求的请求标识号,所述数据段用于存储所述排他访问请求访问的数据;
所述当所述访问请求为排他访问请求时,读取目标地址中的独占标记,以确定所述目标地址的独占状态,包括:
当访问请求为排他访问请求时,将所述读命令发送至所述目标地址所在的存储器,以使所述存储器返回所述目标地址中存储的数据;
根据所述数据中预设标记位的取值,确定所述目标地址中的信息段;
从所述信息段中获取所述独占标记,以确定所述目标地址的独占状态。
6.根据权利要求4所述的方法,其特征在于,所述目标地址包括信息段以及数据段,所述信息段用于存储所述独占标记以及所述排他访问请求的请求标识号,所述数据段用于存储所述排他访问请求访问的数据;所述排他读请求包括写命令;
所述将所述第三请求标识号写入所述目标地址,包括:
将所述写命令发送至所述目标地址所在的存储器,以使所述存储器将所述第三请求标识号存储至所述目标地址中的信息段。
7.根据权利要求1所述的方法,其特征在于,所述监测接收的访问请求是否为排他访问请求,包括:
接收访问请求,确定所述访问请求中地址的越界状态;
当所述越界状态为未越界时,根据预设地址转换规则,将所述访问请求的地址转换为存储器中的地址,得到地址转换后访问请求;
解析所述地址转换后访问请求的访问类型;
根据所述地址转换后访问请求的访问类型是否为排他读请求或排他写请求,确定所述访问请求是否为排他访问请求。
8.一种排他访问装置,其特征在于,应用于存储控制器,所述装置包括:
监测模块,用于监测接收的访问请求是否为排他访问请求;
获取模块,用于当所述访问请求为排他访问请求时,获取目标地址中的独占标记,以确定所述目标地址的独占状态;所述目标地址为所述排他访问请求映射到所述存储控制器对应的存储器中的地址;
判断模块,用于判断所述目标地址的独占状态与所述排他访问请求的访问类型是否适配;
访问模块,用于当所述目标地址的独占状态与所述访问请求的访问类型适配时,根据所述目标地址对所述存储器进行排他访问。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的排他访问存储器的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的排他访问存储器的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310800530.3A CN116991767A (zh) | 2023-06-30 | 2023-06-30 | 排他访问存储器的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310800530.3A CN116991767A (zh) | 2023-06-30 | 2023-06-30 | 排他访问存储器的方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116991767A true CN116991767A (zh) | 2023-11-03 |
Family
ID=88525693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310800530.3A Pending CN116991767A (zh) | 2023-06-30 | 2023-06-30 | 排他访问存储器的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991767A (zh) |
-
2023
- 2023-06-30 CN CN202310800530.3A patent/CN116991767A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106571954B (zh) | 一种ap设备的异常重启原因检测方法及装置 | |
US20210011629A1 (en) | Memory device | |
KR20080075110A (ko) | 내장형 제어기를 통한 플래시 스토리지의 초기화 | |
US8301858B2 (en) | Control device | |
US10055377B2 (en) | Using a proprietary framework on a standards-based embedded device | |
US11507718B1 (en) | Chip verification system and verification method therefor | |
US8914602B2 (en) | Display controller having an embedded non-volatile memory divided into a program code block and a data block and method for updating parameters of the same | |
CN114997101A (zh) | 基于芯片验证系统的信号控制方法、系统、介质及设备 | |
US20170103797A1 (en) | Calibration method and device for dynamic random access memory | |
CN114327258B (zh) | 一种固态硬盘处理方法、系统、设备及计算机存储介质 | |
US11237954B2 (en) | Controller and data storage system having the same | |
CN116991767A (zh) | 排他访问存储器的方法、装置、计算机设备及存储介质 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN114168073B (zh) | 固态硬盘调试空间的访问方法及装置 | |
CN115243047A (zh) | 一种视频压缩方法、装置、设备及介质 | |
US11269703B2 (en) | Information processing system and storage device control method to determine whether data has been correctly written into a storage device | |
US7162568B2 (en) | Apparatus and method for flash ROM management | |
US10838621B2 (en) | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection | |
US20080147966A1 (en) | Flash memory device, update method and program search method thereof | |
CN116069387B (zh) | 存储设备的适配方法、适配装置、存储设备和可读存储介质 | |
CN111159123A (zh) | 一种嵌入式可靠参数储存文件系统及方法 | |
CN116610631B (zh) | 支持多片SPI Flash访问的FPGA启动配置方法 | |
CN112878911B (zh) | 一种随钻测井上传参数自适应调整方法、装置、设备和存储介质 | |
JP2001243121A (ja) | メモリを搭載したボードにおける回路の不良発見方法 | |
EP3462322B1 (en) | Semiconductor device and memory access method |
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 |