CN116431353A - 公共资源访问方法、装置、cpu、交换机及存储介质 - Google Patents
公共资源访问方法、装置、cpu、交换机及存储介质 Download PDFInfo
- Publication number
- CN116431353A CN116431353A CN202310431988.6A CN202310431988A CN116431353A CN 116431353 A CN116431353 A CN 116431353A CN 202310431988 A CN202310431988 A CN 202310431988A CN 116431353 A CN116431353 A CN 116431353A
- Authority
- CN
- China
- Prior art keywords
- register
- value
- cpu
- preset
- preset bit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006854 communication Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 3
- 230000004044 response Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供的一种公共资源访问方法、装置、CPU、交换机及存储介质,涉及数据通信领域。所述公共资源访问方法:目标CPU对寄存器组中的目标寄存器的预设位进行写操作;在内部存储器未处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行成功,对内部存储器进行访问;在内部存储器处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行失败,不对内部存储器进行访问,从而使不同指令集架构的CPU在访问公共资源时实现原子操作。
Description
技术领域
本发明涉及数据通信领域,具体而言,涉及一种公共资源访问方法、装置、CPU、交换机及存储介质。
背景技术
“原子”是不可分割的意思,即执行期间不会被任何事件打断。比如CPU执行单条指令,一旦某条指令开始执行,到该指令结束之前,CPU都不会执行其他操作,相应地,原子操作也泛指一系列不会被打断的操作。
通过CPU的原子指令来实现原子操作依赖于CPU本身的指令集架构,目前大多数指令集架构都实现了Load-Reserved和Store-Conditional(以下简称LR/SC)的一对特殊指令来支持原子修改、原子交换、原子与和原子或等。
但不同指令集架构的CPU之间无法通过原子指令来实现原子操作的,例如,在以太网交换机中存在交换芯片内嵌CPU与芯片外部CPU同时访问公共资源的场景,由于芯片内嵌CPU一般是RISC-V架构,芯片外部CPU可能是ARM架构,此时,芯片内嵌CPU和芯片外部CPU无法在访问公共资源时实现原子操作。
发明内容
本发明提供了一种公共资源访问方法、装置、CPU、交换机和存储介质,其能够使不同指令集架构的CPU在访问公共资源时实现原子操作。
本发明的技术方案可以这样实现:
第一方面,本发明提供一种公共资源访问方法,应用于交换机中的目标CPU,所述交换机还包括参考CPU和交换芯片,所述交换芯片包括内部存储器和寄存器组,所述目标CPU和所述参考CPU均通过寄存器读写接口访问所述寄存器组,所述方法包括:
对所述寄存器组中的目标寄存器的预设位进行写操作;
在所述内部存储器未处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行成功,对所述内部存储器进行访问;
在所述内部存储器处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行失败,不对所述内部存储器进行访问。
可选地,在所述对所述寄存器组中的目标寄存器的预设位进行写操作之后,所述方法还包括:
对所述目标寄存器的预设位进行读操作;
根据读操作结果,判断针对所述目标寄存器的预设位的写操作是否执行成功;
若所述读操作结果表征所述内部存储器未处于被所述参考CPU访问的状态,则判定针对所述目标寄存器的预设位的写操作执行成功;
若所述读操作结果表征所述内部存储器处于被所述参考CPU访问的状态,则判定针对所述目标寄存器的预设位的写操作执行失败。
可选地,所述读操作结果是所述目标寄存器的预设位的值为预设写入值,则表征所述内部存储器未处于被所述参考CPU访问的状态;
所述读操作结果是所述目标寄存器的预设位的值为预设默认值,则表征所述内部存储器处于被所述参考CPU访问的状态。
可选地,所述目标CPU为通过总线与所述交换芯片连接的芯片外部CPU,所述参考CPU为安装在所述交换芯片上的芯片内嵌CPU,所述寄存器组包括第一寄存器和第二寄存器,所述第一寄存器为目标寄存器,所述对所述寄存器组中的目标寄存器的预设位进行写操作的步骤包括:
基于所述第二寄存器的预设位的值,对所述第一寄存器的预设位进行写操作,所述第二寄存器的预设位的值表征所述内部存储器是否处于被所述芯片内嵌CPU访问的状态。
可选地,所述基于所述第二寄存器的预设位的值,对所述第一寄存器的预设位进行写操作的步骤包括:
在所述第二寄存器的预设位的值为预设默认值的情况下,将所述第一寄存器的预设位的值修改为预设写入值,所述第二寄存器的预设位的值为预设默认值表征所述内部存储器未处于被所述芯片内嵌CPU访问的状态;
在所述第二寄存器的预设位的值为预设写入值的情况下,将所述第一寄存器的预设位的值保持为预设默认值,所述第二寄存器的预设位的值为预设写入值表征所述内部存储器处于被所述芯片内嵌CPU访问的状态。
可选地,所述目标CPU为安装在所述交换芯片上的芯片内嵌CPU,所述参考CPU为通过总线与所述交换芯片连接的芯片外部CPU,所述寄存器组包括第一寄存器和第二寄存器,所述第二寄存器为目标寄存器,所述预设位包括第一预设位和第二预设位,所述对所述寄存器组中的目标寄存器的预设位进行写操作的步骤包括:
基于所述第一寄存器的第一预设位的值和第二预设位的值,对所述第二寄存器进行写操作,其中,所述第一寄存器的第一预设位的值表征所述内部存储器是否处于被芯片外部CPU访问的状态,所述第一寄存器的第二预设位的值表征所述内部存储器是否处于被芯片外部CPU抢占的状态。
可选地,所述基于所述第一寄存器的第一预设位的值和第二预设位的值,对所述第二寄存器进行写操作的步骤包括:
对所述第一寄存器的第二预设位进行读操作,获取所述第一寄存器的第二预设位的值;
若所述第一寄存器的第二预设位的值为预设默认值,则基于所述第一寄存器的第一预设位的值,对所述第二寄存器的第一预设位进行写操作,其中,所述第一寄存器的第二预设位的值为预设默认值表征所述内部存储器未处于被芯片外部CPU抢占的状态;
若所述第一寄存器的第二预设位的值为预设写入值,则不对所述第二寄存器的第一预设位进行写操作,其中,所述第一寄存器的第二预设位的值为预设写入值表征所述内部存储器处于被芯片外部CPU抢占的状态。
可选地,所述基于所述第一寄存器的第一预设位的值,对所述第二寄存器的第一预设位进行写操作的步骤包括:
在所述第一寄存器的第一预设位的值为预设默认值的情况下,将所述第二寄存器的第一预设位的值修改为预设写入值,所述第一寄存器的第一预设位的值为预设默认值表征所述内部存储器未处于被芯片外部CPU访问的状态;
在所述第一寄存器的第一预设位的值为预设写入值的情况下,将所述第二寄存器的第一预设位的值保持为预设默认值,所述第一寄存器的第一预设位的值为预设写入值表征所述内部存储器处于被芯片外部CPU访问的状态。
可选地,所述方法还包括:
在结束对所述内部存储器的访问后,将所述目标寄存器的预设位的值从预设写入值修改为预设默认值,以使所述参考CPU能够访问所述内部存储器。
第二方面,本发明提供一种公共资源访问装置,应用于交换机中的目标CPU,所述交换机还包括参考CPU和交换芯片,所述交换芯片包括内部存储器和寄存器组,所述目标CPU和所述参考CPU均通过寄存器读写接口访问所述寄存器组,所述装置包括:
处理模块,用于对所述寄存器组中的目标寄存器的预设位进行写操作;
访问模块,用于:
在所述内部存储器未处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行成功,对所述内部存储器进行访问;
在所述内部存储器处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行失败,不对所述内部存储器进行访问。
第三方面,本发明提供一种CPU,其烧录有计算机程序,所述计算机程序被执行时实现如前述第一方面所述的公共资源访问方法。
第四方面,本发明提供一种交换机,其包括交换芯片以及如前述第三方面所述的CPU。
第五方面,本发明提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时实现如前述第一方面所述的公共资源访问方法。
相较于现有技术,本发明提供的一种公共资源访问方法,目标CPU通过对寄存器组中的目标寄存器的预设位进行写操作;在内部存储器未处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行成功,对内部存储器进行访问;在内部存储器处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行失败,不对内部存储器进行访问,从而使不同指令集架构的CPU在访问公共资源时实现原子操作。
为了使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种访问公共资源的示例图一;
图2为本发明实施例提供的一种访问公共资源的示例图二;
图3为本发明实施例提供的一种访问公共资源的示例图三;
图4为本发明实施例提供的一种访问公共资源的示例图四;
图5为本发明实施例提供的一种访问公共资源的示例图五;
图6为本发明实施例提供的一种交换机的电路架构框图;
图7为本发明实施例提供的一种公共资源访问方法的流程示意图一;
图8为本发明实施例提供的一种公共资源访问方法的流程示意图二;
图9为本发明实施例提供的一种公共资源访问装置的功能单元框图。
图标:100-公共资源访问装置,101-处理模块;102-访问模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
“原子”是不可分割的意思,即执行期间不会被任何事件打断。比如CPU执行单条指令,一旦某条指令开始执行,到该指令结束之前,CPU都不会执行其他操作。“原子操作”也泛指一系列不会被打断的操作,例如通过某种手段让CPU原子性地执行多条指令,却呈现出只执行了一条指令的效果。
由于非原子操作的结果是不可预知的,会导致程序输出非预期结果,因此,“原子操作”通常用于保证多线程或多个CPU同时访问公共资源的安全性。例如两个线程同时对全局变量A进行加1操作,两个线程各加了10000次,预期结果是20000,然而最终输出的结果却未必是20000,原因在于加1操作对于CPU而言可能需要多条指令来完成。
假设每次“加1操作”均需以下三条指令来完成:
指令1:取操作数,即CPU先把全局变量A的值从内存取出来,暂存在寄存器中;
指令2:执行加1操作,即CPU把寄存器中的值送到加法器执行加1操作;
指令3:写回操作结果,即CPU把加1之后的结果写回内存。
于是CPU在调度两个线程执行对全局变量A的加1操作时,可能产生下述两种结果。
结果1:如图1所示,CPU调度到线程1,依次执行取全局变量A,全局变量A加1和写回加1后的全局变量A,此时全局变量A值为1(A初始为0),接着,CPU调度到线程2,依次执行取全局变量A,全局变量A加1和写回加1后的全局变量A,此时全局变量A为2。按此规律循环10000次之后,最后全局变量A为20000,即得到理想结果。
结果2:如图2所示,CPU调度线程1执行了取全局变量A的操作,暂存到寄存器1,然后CPU马上又调度到线程2执行取全局变量A的操作,暂存到寄存器2,此时取到的值都是0,然后又分别调度到线程1和线程2,各自执行加操作,得到的结果都是1,最后把1写回到全局变量A所在的内存,看似线程1和线程2都各自对全局变量A执行了加1操作,得到的结果却是1。按此规律循环10000次之后,最后得到的A小于20000。
产生上述结果的本质原因是CPU在执行加1操作时用了三条指令来完成,且执行的过程不是原子的。由此可见,非原子操作的结果是无法预知的,意味着,多个线程访问同一资源时需要保证访问过程的原子性。
目前主要有两种方式来实现多个线程访问同一资源时访问过程的原子性:一是从CPU执行的指令本身考虑,可以通过原子指令来完成多条指令的任务,例如上述例子中的“加1操作”可以通过一条自增指令来完成;二是对公共资源加锁,线程在访问公共资源前先对其进行锁定,等完成访问后再进行解锁,锁定期间其他线程无法访问到公共资源,由此实现对公共资源的原子操作。
对于方式一,目前大多数指令集架构都实现了Load-Reserved和Store-Conditional(以下简称LR/SC)的一对特殊指令,用于支持原子修改、原子交换、原子与和原子或等。例如ARM架构的LDREX/STREX,MIPS架构的LL/SC,RISC-V架构的LR/SC,PowerPc架构的LWARX/STWCX等。
以ARM架构为例,LR操作对应指令LDREX,负责读取目标内存并置上标记,SC操作对应指令STREX,负责在LDREX指令执行之后读取目标内存,修改值,并写入内存,当且仅当目标内存的标记未被清除时,STREX指令的写入操作才会成功,否则写入失败,写入成功后再将内存标记清除。
当有多个线程同时执行LDREX/STREX指令时,只会有一个线程能够成功执行STREX指令的写入操作,可能出现以下两种场景。
场景一:如图3所示,线程1先执行LDREX指令,对目标内存进行标记,然后线程2也执行LDREX指令,此时发现目标内存已被标记过了,接着,线程2先执行STREX指令,发现目标内存被标记,成功执行写入操作并清除标记,最后线程1执行STREX指令,发现标记被清除,写入失败,最后产生的结果是只有一个线程完成了写入操作。
场景二:如图4所示,线程1执行完LDREX指令和STREX指令后,线程2执行LDREX指令和STREX指令,最后产生的结果是两个线程都各自完成了一次写入操作,但每一次操作对于该线程而言都是原子的。
综合以上两种场景,目前可以通过LR/SC一对指令来完成对内存原子修改,而对于场景一,写入操作失败的线程可以重新进行LR/SC操作来尝试再次写入。
但方式一依赖于CPU本身的指令集架构,不同指令集架构的CPU之间无法通过此手段来实现原子操作。例如,在以太网交换机中存在交换芯片内嵌CPU与外部CPU同时访问公共资源的场景,内嵌CPU一般是RISC-V架构的,外部CPU可能是ARM架构的,此时是无法通过此技术来实现原子操作。
对于方式二,通过提供一个中间设备,用于仲裁多个CPU对公共资源的访问请求,同一时间保证只有一个CPU能访问到公共资源,即通过“加锁”来确保CPU访问公共资源的原子性。
如图5所示,作为中间设备的从设备,负责接收各个主设备发出的独占请求并进行响应,过程如下:
(1)各个主设备通过调度器以消息的形式向从设备发送独占请求,这些请求会进入从设备的请求队列,这里的请求队列是一种“先来先服务”的模型,即最先到达的请求会最先得到从设备的响应;
(2)从设备的响应逻辑单元根据目前存储器的访问状态来决定如何响应,如果当前存储器处于空闲态,那么向请求队列中最先到达的请求消息对应的主设备发送成功响应,存储器进入独占态;
(3)对应主设备收到成功的响应后,可以独占共享资源;
(4)请求队列中如果还有来自其他主设备的请求,则从设备会向对应主设备发送失败响应;
(5)在(3)中的主设备完成共享资源的访问后,向从设备发送释放请求,从设备接收到释放请求后,存储器再次进入空闲态,并且向得到失败响应的主设备发送唤醒响应,收到唤醒响应的主设备可以重新发起独占请求以得到访问共享资源的机会。
方式二虽然没有CPU指令集架构的限制,但是仍然存在以下缺陷:主从设备之间是基于消息的通信机制,消息格式没有规范,需要厂商自定义;通信的过程存在多次握手,从设备需要维护存储器的状态,增加了实现的复杂度,也提高了设计和实现ASIC的成本;请求/响应是一个队列模型,即先来先服务,各个主设备何时得到成功响应取决于发送的请求到达从设备的时间顺序,没有优先级的机制,不支持抢占。
鉴于现有技术的缺陷,本发明提供了一种公共资源访问方法、装置、CPU、交换机及存储介质,下面将进行详细介绍。
如图6所示,本发明提供了一种交换机的电路架构框图中,芯片外部CPU通过总线与交换芯片连接,交换芯片内部集成一块RISC-V架构的芯片内嵌CPU,外部CPU和内嵌CPU都可以通过寄存器读写接口访问寄存器Ext和寄存器Int,交换芯片的内部存储器作为公共资源。
为了使图6中的芯片外部CPU和芯片内嵌CPU在访问公共资源时均能够实现原子操作,本发明提供了一种应用于交换机中目标CPU的公共资源访问方法,可以理解地,在图6中当目标CPU为芯片外部CPU时,参考CPU为芯片内嵌CPU,当目标CPU为芯片内嵌CPU时,参考CPU为芯片外部CPU。
下面基于图6对该公共资源访问方法进行详细介绍。
请参照图7,该公共资源访问方法包括步骤S101~S103。
S101,对寄存器组中的目标寄存器的预设位进行写操作。
其中,寄存器组包括第一寄存器和第二寄存器,第一寄存器可以为图6中的寄存器Ext,第二寄存器可以为图6中的寄存器Int。
在本发明实施例中,可以利用寄存器Ext和寄存器Int这两个ASIC寄存器来实现芯片外部CPU和芯片内嵌CPU访问公共资源的原子操作。两个寄存器均设计多个bit,两个寄存器对于不同的CPU有不同的访问权限,如下表所示。
由上表可知,芯片外部CPU可以对寄存器Ext进行写操作,芯片内嵌CPU可以对寄存器Int进行写操作。
当图6中的芯片外部CPU为目标CPU,芯片内嵌CPU为参考CPU时,本发明实施例提供了如下一种关于步骤S101可能的实现方式:
S101-10,基于第二寄存器的预设位的值,对第一寄存器的预设位进行写操作。
其中,第一寄存器为目标寄存器,即寄存器Ext为目标寄存器,预设位可以为一个或多个设计的bit,第二寄存器,即寄存器Int的预设位的值表征内部存储器是否处于被芯片内嵌CPU访问的状态。
在本发明实施例中,图6所示的寄存器Ext和寄存器Int均设计了32个bit,分别为bit0、bit1、……、bit31。
假设预设位包括bit0,可以理解地,由于当且仅当寄存器Int对应bit为0时,寄存器Ext对于芯片外部CPU来说才是可写的,也就意味着,当寄存器Int的bit0的值为0时,内部存储器是处于没有被芯片内嵌CPU访问的状态,那么当寄存器Int的bit0的值不为0时,内部存储器是正在被芯片内嵌CPU访问。
可选地,步骤S101-10的实现过程可以如下:
S101-10a,在第二寄存器的预设位的值为预设默认值的情况下,将第一寄存器的预设位的值修改为预设写入值。
其中,第二寄存器的预设位的值为预设默认值表征内部存储器未处于被芯片内嵌CPU访问的状态。
示例性地,假设预设位包括bit0,预设默认值为0,预设写入值为1,当图6中的寄存器Int的bit0的值为0时,内部存储器是处于没有被芯片内嵌CPU访问的状态,此时,寄存器Ext对于芯片外部CPU是可写的,即芯片外部CPU可以写寄存器Ext的bit0为1。
S101-10b,在第二寄存器的预设位的值为预设写入值的情况下,将第一寄存器的预设位的值保持为预设默认值。
其中,第二寄存器的预设位的值为预设写入值表征内部存储器处于被芯片内嵌CPU访问的状态。
示例性地,假设预设位包括bit0,预设默认值为0,预设写入值为1,当图6中的寄存器Int的bit0的值为1时,内部存储器是处于被芯片内嵌CPU访问的状态,此时,寄存器Ext对于芯片外部CPU是仅可读、不可写的,即芯片外部CPU不可以写寄存器Ext的bit0为1,寄存器Ext的bit0将保持为0。
当图6中的芯片内嵌CPU为目标CPU,芯片外部CPU为参考CPU时,本发明实施例提供了如下两种关于步骤S101可能的实现方式。
方式一:
S101-20,基于第一寄存器的预设位的值,对第二寄存器的预设位进行写操作。
其中,第二寄存器目标寄存器,即寄存器Int为目标寄存器,预设位可以为任意一个或多个设计的bit,第一寄存器的预设位的值表征内部存储器是否处于被芯片外部CPU访问的状态。
示例性地,假设预设位包括bit0,可以理解地,由于当且仅当图6中寄存器Ext对应bit为0时,寄存器Int对于芯片内嵌CPU来说才是可写的,也就意味着,当寄存器Ext的bit0的值为0时,内部存储器是处于没有被芯片外部CPU访问的状态,那么当寄存器Ext的bit0的值不为0时,内部存储器是正在被芯片外部CPU访问。
可选地,步骤S101-20的实现过程可以如下:
S101-20a,在第一寄存器的预设位的值为预设默认值的情况下,将第二寄存器的预设位的值修改为预设写入值。
其中,第一寄存器的预设位的值为预设默认值表征内部存储器未处于被芯片外部CPU访问的状态。
示例性地,假设预设位包括bit0,预设默认值为0,预设写入值为1,当图6中寄存器Ext的bit0的值为0时,内部存储器是处于没有被芯片外部CPU访问的状态,此时,寄存器Int对于芯片内嵌CPU来说是可写的,即芯片内嵌CPU可以写寄存器Int的bit0为1。
S101-20b,在第一寄存器的预设位的值为预设写入值的情况下,将第一寄存器的预设位的值保持为预设默认值。
其中,第一寄存器的预设位的值为预设写入值表征内部存储器处于被芯片外部CPU访问的状态。
示例性地,假设预设位包括bit0,预设默认值为0,预设写入值为1,当图6中寄存器Ext的bit0的值为1时,内部存储器是处于被芯片外部CPU访问的状态,此时,寄存器Int对于芯片内嵌CPU来说是仅可读、不可写的,即芯片内嵌CPU不可以写寄存器Int的bit0为1,寄存器Int的bit0保持为0。
方式二:
S101-30,基于第一寄存器的第一预设位的值和第二预设位的值,对第二寄存器进行写操作。
其中,预设位包括第一预设位和第二预设位。
第一寄存器的第一预设位的值表征内部存储器是否处于被芯片外部CPU访问的状态。
第一寄存器的第二预设位的值表征内部存储器是否处于被芯片外部CPU抢占的状态。
需要注意地是,当芯片外部CPU和芯片内嵌CPU同时竞争时,为了使芯片外部CPU总是能够优先抢占到访问内部存储器的机会,芯片外部CPU需对第一寄存器的第一预设位和第二预设位均进行写入操作,而芯片内嵌CPU只需对第二寄存器的第一预设位进行写入操作。
示例性地,假设bit0为第一预设位,bit1为第二预设位,图6中的芯片外部CPU是需对寄存器Ext的bit0和bit1进行写入操作,而芯片内嵌CPU是只对寄存器Int的bit0进行写入操作。
可选地,步骤S101-30的实现过程可以如下:
S101-30a,对第一寄存器的第二预设位进行读操作,获取第一寄存器的第二预设位的值。
S101-30b,若第一寄存器的第二预设位的值为预设默认值,则基于第一寄存器的第一预设位的值,对第二寄存器的第一预设位进行写操作。
其中,第一寄存器的第二预设位的值为预设默认值表征内部存储器未处于被芯片外部CPU抢占的状态。
由于芯片内嵌CPU想要访问内部存储器时需先成功对第二寄存器的预设位进行写操作,若此时内部存储器已经处于被芯片外部存储器抢占状态,芯片内嵌CPU则无需尝试对第二寄存器的第一预设位进行写操作。
可以理解地,芯片内嵌CPU可以通过对第一寄存器的第二预设位进行读取操作,根据读取到的第一寄存器的第二预设位的值,确定内部存储器是否已经处于被芯片外部CPU抢占状态。
示例性地,假设bit0为第一预设位,bit1为第二预设位,预设默认值为0、预设写入值为1,在图6中,芯片内嵌CPU读取寄存器Ext的bit1的值,若寄存器Ext的bit1的值为1,则内部存储器已经被芯片外部CPU抢占,芯片内嵌CPU无需尝试将寄存器Int的bit0写为1,来获取访问内部存储器的机会。
若寄存器Ext的bit1的值为0,则内部存储器未被芯片外部CPU抢占,芯片内嵌CPU可以尝试将寄存器Int的bit0写为1,来获取访问内部存储器的机会。
在本发明实施例中,“基于第一寄存器的第一预设位的值,对第二寄存器的第一预设位进行写操作”的实现过程如下:
在第一寄存器的第一预设位的值为预设默认值的情况下,将第二寄存器的第一预设位的值修改为预设写入值。
其中,第一寄存器的第一预设位的值为预设默认值表征内部存储器未处于被芯片外部CPU访问的状态。
示例性地,假设第一预设位为bit0,预设默认值为0,预设写入值为1,当图6中的寄存器Ext的bit0的值为0时,内部存储器是处于没有被芯片外部CPU访问的状态,此时,寄存器Int对于芯片内嵌CPU来说是可写的,即芯片内嵌CPU可以写寄存器Int的bit0为1。
在第一寄存器的第一预设位的值为预设写入值的情况下,将第二寄存器的第一预设位的值保持为预设默认值。
其中,第一寄存器的第一预设位的值为预设写入值表征内部存储器处于被芯片外部CPU访问的状态。
示例性地,假设第一预设位为bit0,预设默认值为0,预设写入值为1,当图6中的寄存器Ext的bit0的值为1时,内部存储器是处于被芯片外部CPU访问的状态,此时,寄存器Int对于芯片内嵌CPU来说是仅可读、不可写的,即芯片内嵌CPU不可以写寄存器Int的bit0为1,寄存器Int的bit0保持为0。
S101-30c,若第一寄存器的第二预设位的值为预设写入值,则不对第二寄存器的第一预设位进行写操作。
其中,第一寄存器的第二预设位的值为预设写入值表征内部存储器处于被芯片外部CPU抢占的状态。
可以理解地,芯片内嵌CPU通过读取第一寄存器的第二预设位的值确定内部存储器已经被芯片外部CPU抢占,其无需尝试对第二寄存器的第一预设位进行写入操作,以获取访问内部存储器的机会。
S102,在内部存储器未处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行成功,对内部存储器进行访问。
在本发明实施例中,假设bit0为第一预设位,bit1为第二预设位,预设默认值为0、预设写入值为1,图6所示的芯片外部CPU只有将寄存器Ext的bit0成功写为1才能对内部存储器进行访问,而当且仅当寄存器Int的bit0的值为0时,芯片外部CPU才能将寄存器Ext的bit0成功写为1,也就是说,寄存器Int的bit0的值限制芯片外部CPU对寄存器Ext的bit0的写操作。
同样地,芯片内嵌CPU只有将寄存器Int的bit0成功写为1才能对内部存储器进行访问,而当且仅当寄存器Ext的bit0的值为0时,芯片内嵌CPU才能将寄存器Int的bit0成功写为1,也就是说,寄存器Ext的bit0的值限制芯片内嵌CPU对寄存器Int的bit0的写操作。
可以理解地,当寄存器Int的bit0的值为1时,意味着芯片内嵌CPU正在对内部存储器进行访问,当寄存器Ext的bit0的值为1时,意味着芯片外部CPU正在在对内部存储器进行访问,而寄存器Int的bit0的值与寄存器Ext的bit0的值不会同时为1。
S103,在内部存储器处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行失败,不对内部存储器进行访问。
在本发明实施例中,假设bit0为第一预设位,bit1为第二预设位,预设默认值为0、预设写入值为1,由于图6所示的寄存器Int的bit0的值变化取决于芯片内嵌CPU的写操作是否成功,寄存器Ext的bit0的值变化取决于芯片外部CPU的写操作是否成功,可以理解地,当芯片内嵌CPU对寄存器Int的bit0成功写为1后,开始访问内部存储器,此时,芯片外部CPU若尝试对寄存器Ext的bit0进行写操作,但内部存储器已经处于被芯片内嵌CPU访问的状态,寄存器Int的bit0的值为1,对于芯片外部CPU来说,寄存器Ext的bit0是仅可读、不可写的,因此,芯片外部CPU不能对内部存储器进行访问。
同样地,当芯片外部CPU对寄存器Ext的bit0成功写为1后,开始访问内部存储器,此时,芯片内嵌CPU若尝试对寄存器Int的bit0进行写入操作,由于内部存储器已经处于被芯片外部CPU访问的状态,寄存器Ext的bit0的值为1,对于芯片内嵌CPU来说,寄存器Int的bit0是仅可读、不可写的,因此,芯片外部CPU不能对内部存储器进行访问。
请参照图8,在步骤S101之后,该公共资源访问方法还包括步骤S104~S108。
S104,对目标寄存器的预设位进行读操作。
在本发明实施例中,假设预设位包括bit0,预设默认值为0,预设写入值为1,图6所示的芯片外部CPU尝试将寄存器Ext的bit0写为1后,需要通过读取寄存器Ext的bit0的值来获知是否写成功。
同样地,芯片内嵌CPU尝试将寄存器Int的bit0写为1后,需要通过读取寄存器Int的bit0的值来获知是否写成功。
S105,根据读操作结果,判断针对目标寄存器的预设位的写操作是否执行成功。
S106,若读操作结果表征内部存储器未处于被参考CPU访问的状态,则判定针对目标寄存器的预设位的写操作执行成功。
其中,读操作结果是目标寄存器的预设位的值为预设写入值,则表征内部存储器未处于被参考CPU访问的状态。
S107,若读操作结果表征内部存储器处于被参考CPU访问的状态,则判定针对目标寄存器的预设位的写操作执行失败。
其中,读操作结果是目标寄存器的预设位的值为预设默认值,则表征内部存储器处于被参考CPU访问的状态。
假设预设位包括bit0,预设默认值为0,预设写入值为1,在图6中,由于当且仅当寄存器Int的bit0的值为0时,芯片外部CPU才可以将寄存器Ext的bit0写为1,因此,芯片外部CPU尝试将寄存器Ext的bit0写为1后,再读取到的寄存器Ext的bit0的值为0时,意味着此时寄存器Int的bit0的值为1,而寄存器Int的bit0的值为1则表示内部存储器正在被芯片内嵌CPU访问。
同样地,由于当且仅当寄存器Ext的bit0的值为0时,芯片内嵌CPU才可以将寄存器Int的bit0写为1,因此,芯片外部CPU尝试将寄存器Ext的bit0写为1后,再读取到的寄存器Ext的bit0的值为0时,意味着此时寄存器Int的bit0的值为1,而寄存器Int的bit0的值为1则表示内部存储器正在被芯片内嵌CPU访问。
S108,在结束对内部存储器的访问后,将目标寄存器的预设位的值从预设写入值修改为预设默认值,以使参考CPU能够访问内部存储器。
可以理解地,假设预设位包括bit0,预设默认值为0,预设写入值为1,由于图6中寄存器Int的bit0的值限制芯片外部CPU对寄存器Ext的bit0的写操作,而芯片外部CPU只有将寄存器Ext的bit0成功写为1才能对内部存储器进行访问,因此,在芯片内嵌CPU访问内部存储器结束后,需再次对寄存器Int的bit0进行写操作,将寄存器Int的bit0的值从1修改为0,从而不影响芯片外部CPU对内部存储器进行访问。
同样地,由于寄存器Ext的bit0的值限制芯片内嵌CPU对寄存器Int的bit0的写操作,芯片内嵌CPU只有将寄存器Int的bit0成功写为1才能对内部存储器进行访问,因此,在芯片外部CPU访问内部存储器结束后,需再次对寄存器Ext的bit0进行写操作,将寄存器Ext的bit0的值从1修改为0,从而不影响芯片内嵌CPU对内部存储器进行访问。
相较于现有技术,本发明实施例的有益效果在于:
(1)芯片外部CPU通过对第一寄存器的预设位成功进行写操作访问内部存储器,芯片内嵌CPU通过对第二寄存器的预设位成功进行写操作访问内部存储器,芯片外部CPU对第一寄存器的预设位的写操作只有在第二寄存器的预设位的值表征内部存储器不处于被芯片内嵌CPU访问状态,才能执行成功,芯片内嵌CPU对第二寄存器的预设位的写操作只有在第一寄存器的预设位的值表征内部存储器不处于被芯片外部CPU访问状态,才能执行成功,从而保证芯片外部CPU和芯片内嵌CPU在访问公共资源时均能够实现原子操作。
(2)芯片外部CPU需对第一寄存器的第一预设位和第二预设位均进行写入操作,而芯片内嵌CPU只需对第二寄存器的第一预设位进行写入操作,从而使芯片外部CPU和芯片内嵌CPU同时竞争时,芯片外部CPU总是能够优先抢占到访问内部存储器的机会。
为了执行上述方法实施例及各个可能的实施方式中的相应步骤,下面给出一种应用于目标CPU的公共资源访问装置100。
请参照图9,该公共资源访问装置100包括处理模块101和访问模块102。
处理模块101,用于对寄存器组中的目标寄存器的预设位进行写操作。
访问模块102,用于在内部存储器未处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行成功,对内部存储器进行访问;在内部存储器处于被参考CPU访问的状态的情况下,针对目标寄存器的预设位的写操作执行失败,不对内部存储器进行访问。
可选地,处理模块101还用于对目标寄存器的预设位进行读操作;根据读操作结果,判断针对目标寄存器的预设位的写操作是否执行成功;若读操作结果表征内部存储器未处于被参考CPU访问的状态,则判定针对目标寄存器的预设位的写操作执行成功;若读操作结果表征内部存储器处于被参考CPU访问的状态,则判定针对目标寄存器的预设位的写操作执行失败;读操作结果是目标寄存器的预设位的值为预设写入值,则表征内部存储器未处于被参考CPU访问的状态;读操作结果是目标寄存器的预设位的值为预设默认值,则表征内部存储器处于被参考CPU访问的状态。
可选地,目标CPU为通过总线与交换芯片连接的芯片外部CPU,参考CPU为安装在交换芯片上的芯片内嵌CPU,寄存器组包括第一寄存器和第二寄存器,第一寄存器为目标寄存器,处理模块101具体用于基于第二寄存器的预设位的值,对第一寄存器的预设位进行写操作,第二寄存器的预设位的值表征内部存储器是否处于被芯片内嵌CPU访问的状态。
可选地,处理模块101在用于基于第二寄存器的预设位的值,对第一寄存器的预设位进行写操作时,具体用于在第二寄存器的预设位的值为预设默认值的情况下,将第一寄存器的预设位的值修改为预设写入值,第二寄存器的预设位的值为预设默认值表征内部存储器未处于被芯片内嵌CPU访问的状态;在第二寄存器的预设位的值为预设写入值的情况下,将第一寄存器的预设位的值保持为预设默认值,第二寄存器的预设位的值为预设写入值表征内部存储器处于被芯片内嵌CPU访问的状态。
可选地,目标CPU为安装在交换芯片上的芯片内嵌CPU,参考CPU为通过总线与交换芯片连接的芯片外部CPU,寄存器组包括第一寄存器和第二寄存器,第二寄存器为目标寄存器,预设位包括第一预设位和第二预设位,处理模块101具体用于基于第一寄存器的第一预设位的值和第二预设位的值,对第二寄存器进行写操作,其中,第一寄存器的第一预设位的值表征内部存储器是否处于被芯片外部CPU访问的状态,第一寄存器的第二预设位的值表征内部存储器是否处于被芯片外部CPU抢占的状态。
可选地,处理模块101用于基于第一寄存器的第一预设位的值和第二预设位的值,对第二寄存器进行写操作时,具体用于对第一寄存器的第二预设位进行读操作,获取第一寄存器的第二预设位的值;若第一寄存器的第二预设位的值为预设默认值,则基于第一寄存器的第一预设位的值,对第二寄存器的第一预设位进行写操作,其中,第一寄存器的第二预设位的值为预设默认值表征内部存储器未处于被芯片外部CPU抢占的状态;若第一寄存器的第二预设位的值为预设写入值,则不对第二寄存器的第一预设位进行写操作,其中,第一寄存器的第二预设位的值为预设写入值表征内部存储器处于被芯片外部CPU抢占的状态。
可选地,处理模块101用于基于第一寄存器的第一预设位的值,对第二寄存器的第一预设位进行写操作时,具体用于在第一寄存器的第一预设位的值为预设默认值的情况下,将第二寄存器的第一预设位的值修改为预设写入值,第一寄存器的第一预设位的值为预设默认值表征内部存储器未处于被芯片外部CPU访问的状态;在第一寄存器的第一预设位的值为预设写入值的情况下,将第二寄存器的第一预设位的值保持为预设默认值,第一寄存器的第一预设位的值为预设写入值表征内部存储器处于被芯片外部CPU访问的状态。
可选地,处理模块101还用于在结束对内部存储器的访问后,将目标寄存器的预设位的值从预设写入值修改为预设默认值,以使参考CPU能够访问内部存储器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的公共资源访问装置100的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种烧录有计算机程序的CPU,计算机程序在被执行时可以用于执行上述的方法实施例提供的公共资源访问方法中从相关操作。
本发明实施例还提供一种包含计算机程序的计算机可读存储介质,计算机程序在被执行时可以用于执行上述的方法实施例提供的公共资源访问方法中的相关操作。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种公共资源访问方法,其特征在于,应用于交换机中的目标CPU,所述交换机还包括参考CPU和交换芯片,所述交换芯片包括内部存储器和寄存器组,所述目标CPU和所述参考CPU均通过寄存器读写接口访问所述寄存器组,所述方法包括:
对所述寄存器组中的目标寄存器的预设位进行写操作;
在所述内部存储器未处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行成功,对所述内部存储器进行访问;
在所述内部存储器处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行失败,不对所述内部存储器进行访问。
2.如权利要求1所述的方法,其特征在于,在所述对所述寄存器组中的目标寄存器的预设位进行写操作之后,所述方法还包括:
对所述目标寄存器的预设位进行读操作;
根据读操作结果,判断针对所述目标寄存器的预设位的写操作是否执行成功;
若所述读操作结果表征所述内部存储器未处于被所述参考CPU访问的状态,则判定针对所述目标寄存器的预设位的写操作执行成功;
若所述读操作结果表征所述内部存储器处于被所述参考CPU访问的状态,则判定针对所述目标寄存器的预设位的写操作执行失败。
3.如权利要求2所述的方法,其特征在于,所述读操作结果是所述目标寄存器的预设位的值为预设写入值,则表征所述内部存储器未处于被所述参考CPU访问的状态;
所述读操作结果是所述目标寄存器的预设位的值为预设默认值,则表征所述内部存储器处于被所述参考CPU访问的状态。
4.如权利要求1所述的方法,其特征在于,所述目标CPU为通过总线与所述交换芯片连接的芯片外部CPU,所述参考CPU为安装在所述交换芯片上的芯片内嵌CPU,所述寄存器组包括第一寄存器和第二寄存器,所述第一寄存器为目标寄存器,所述对所述寄存器组中的目标寄存器的预设位进行写操作的步骤包括:
基于所述第二寄存器的预设位的值,对所述第一寄存器的预设位进行写操作,所述第二寄存器的预设位的值表征所述内部存储器是否处于被所述芯片内嵌CPU访问的状态。
5.如权利要求4所述的方法,其特征在于,所述基于所述第二寄存器的预设位的值,对所述第一寄存器的预设位进行写操作的步骤包括:
在所述第二寄存器的预设位的值为预设默认值的情况下,将所述第一寄存器的预设位的值修改为预设写入值,所述第二寄存器的预设位的值为预设默认值表征所述内部存储器未处于被所述芯片内嵌CPU访问的状态;
在所述第二寄存器的预设位的值为预设写入值的情况下,将所述第一寄存器的预设位的值保持为预设默认值,所述第二寄存器的预设位的值为预设写入值表征所述内部存储器处于被所述芯片内嵌CPU访问的状态。
6.如权利要求1所述的方法,其特征在于,所述目标CPU为安装在所述交换芯片上的芯片内嵌CPU,所述参考CPU为通过总线与所述交换芯片连接的芯片外部CPU,所述寄存器组包括第一寄存器和第二寄存器,所述第二寄存器为目标寄存器,所述预设位包括第一预设位和第二预设位,所述对所述寄存器组中的目标寄存器的预设位进行写操作的步骤包括:
基于所述第一寄存器的第一预设位的值和第二预设位的值,对所述第二寄存器进行写操作,其中,所述第一寄存器的第一预设位的值表征所述内部存储器是否处于被芯片外部CPU访问的状态,所述第一寄存器的第二预设位的值表征所述内部存储器是否处于被芯片外部CPU抢占的状态。
7.如权利要求6所述的方法,其特征在于,所述基于所述第一寄存器的第一预设位的值和第二预设位的值,对所述第二寄存器进行写操作的步骤包括:
对所述第一寄存器的第二预设位进行读操作,获取所述第一寄存器的第二预设位的值;
若所述第一寄存器的第二预设位的值为预设默认值,则基于所述第一寄存器的第一预设位的值,对所述第二寄存器的第一预设位进行写操作,其中,所述第一寄存器的第二预设位的值为预设默认值表征所述内部存储器未处于被芯片外部CPU抢占的状态;
若所述第一寄存器的第二预设位的值为预设写入值,则不对所述第二寄存器的第一预设位进行写操作,其中,所述第一寄存器的第二预设位的值为预设写入值表征所述内部存储器处于被芯片外部CPU抢占的状态。
8.如权利要求7所述的方法,其特征在于,所述基于所述第一寄存器的第一预设位的值,对所述第二寄存器的第一预设位进行写操作的步骤包括:
在所述第一寄存器的第一预设位的值为预设默认值的情况下,将所述第二寄存器的第一预设位的值修改为预设写入值,所述第一寄存器的第一预设位的值为预设默认值表征所述内部存储器未处于被芯片外部CPU访问的状态;
在所述第一寄存器的第一预设位的值为预设写入值的情况下,将所述第二寄存器的第一预设位的值保持为预设默认值,所述第一寄存器的第一预设位的值为预设写入值表征所述内部存储器处于被芯片外部CPU访问的状态。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
在结束对所述内部存储器的访问后,将所述目标寄存器的预设位的值从预设写入值修改为预设默认值,以使所述参考CPU能够访问所述内部存储器。
10.一种公共资源访问装置,其特征在于,应用于交换机中的目标CPU,所述交换机还包括参考CPU和交换芯片,所述交换芯片包括内部存储器和寄存器组,所述目标CPU和所述参考CPU均通过寄存器读写接口访问所述寄存器组,所述装置包括:
处理模块,用于对所述寄存器组中的目标寄存器的预设位进行写操作;
访问模块,用于:
在所述内部存储器未处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行成功,对所述内部存储器进行访问;
在所述内部存储器处于被所述参考CPU访问的状态的情况下,针对所述目标寄存器的预设位的写操作执行失败,不对所述内部存储器进行访问。
11.一种CPU,其特征在于,其烧录有计算机程序,所述计算机程序被执行时实现如权利要求1~9任一项所述的公共资源访问方法。
12.一种交换机,其特征在于,其包括交换芯片以及如权利要求11所述的CPU。
13.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时实现如权利要求1~9任一项所述的公共资源访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310431988.6A CN116431353A (zh) | 2023-04-21 | 2023-04-21 | 公共资源访问方法、装置、cpu、交换机及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310431988.6A CN116431353A (zh) | 2023-04-21 | 2023-04-21 | 公共资源访问方法、装置、cpu、交换机及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431353A true CN116431353A (zh) | 2023-07-14 |
Family
ID=87092474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310431988.6A Pending CN116431353A (zh) | 2023-04-21 | 2023-04-21 | 公共资源访问方法、装置、cpu、交换机及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431353A (zh) |
-
2023
- 2023-04-21 CN CN202310431988.6A patent/CN116431353A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5889983A (en) | Compare and exchange operation in a processing system | |
US20070294702A1 (en) | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors | |
US9424103B2 (en) | Adaptive lock for a computing system having multiple runtime environments and multiple processing units | |
CN108572876B (zh) | 一种读写锁的实现方法及装置 | |
JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
US10782896B2 (en) | Local instruction ordering based on memory domains | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
KR20140069245A (ko) | 트랜잭셔널 메모리 동작들을 수행하도록 구성된 프로세서 | |
JP2006185348A (ja) | マルチプロセッサシステム及びロックフラグ操作方法 | |
US5615374A (en) | Lock control method for resource | |
US8910179B2 (en) | Systems and methods for providing semaphore-based protection of system resources | |
US8803900B2 (en) | Synchronization with semaphores in a multi-engine GPU | |
CN116431353A (zh) | 公共资源访问方法、装置、cpu、交换机及存储介质 | |
US7103528B2 (en) | Emulated atomic instruction sequences in a multiprocessor system | |
US20070050567A1 (en) | Multiple Processor System and Method Establishing Exclusive Control | |
JP2004503864A (ja) | ダイナミックマルチストリーミングプロセッサでメモリ操作の原子性を実現するための方法と装置 | |
US9135058B2 (en) | Method for managing tasks in a microprocessor or in a microprocessor assembly | |
JP2004362425A (ja) | 資源競合制御システム及び制御方法並びにプログラム | |
US11170109B2 (en) | Boot ROM gating circuit | |
US20070174813A1 (en) | External configuration of processing content for script | |
JP2007048019A (ja) | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム | |
JP4333749B2 (ja) | 演算システム,演算装置およびプログラム | |
KR101014524B1 (ko) | 데이터 일관성을 유지하는 임베디드 시스템의 데이터 리드 방법 | |
US7305508B2 (en) | Semaphoring system between system firmware and hardware manipulation subsystem | |
CN112905235B (zh) | 一种mcu程序执行方法和芯片 |
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 |