CN103885824A - 接口控制电路、设备和标识切换方法 - Google Patents
接口控制电路、设备和标识切换方法 Download PDFInfo
- Publication number
- CN103885824A CN103885824A CN201210560672.9A CN201210560672A CN103885824A CN 103885824 A CN103885824 A CN 103885824A CN 201210560672 A CN201210560672 A CN 201210560672A CN 103885824 A CN103885824 A CN 103885824A
- Authority
- CN
- China
- Prior art keywords
- mark
- processor
- free
- busy
- code section
- 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
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种接口控制电路、设备和标识切换方法,属于计算机技术领域。方法包括:接收处理器发送的包括预定地址的读请求;根据读请求中的预定地址查询存储器中存储的标识;当查询到的标识是空闲标识时,将标识由空闲标识切换成忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致软件系统结构复杂、开发测试以及维护成本大的问题。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种接口控制电路、设备和标识切换方法。
背景技术
在单处理器设备中,一个进程可以包括两个或者多个线程,并且这些线程都可以访问进程中的共享资源,但是在共享资源中存在一些资源并不能被两个或者多个线程同时访问。类似的,在多处理器设备如AMP(asymmetricMulti-Processing,非对称多处理)设备中,存在一些共享资源可以被各处理器访问,但是这些共享资源中的一些资源又不能被两个或者多个处理器同时访问。所以这就引入了关键代码段的概念,关键代码段是用于对资源进行保护的一段代码。而为了指示关键代码段是否已经被其他线程或者其他处理器占用,现有方案通常对关键代码段设置一个标识,该标识通常是通过信号量或者自旋锁的形式来实现。
当一个线程或者一个处理器需要访问一个关键代码段保护的资源时该线程或者该处理器将中断当前正在执行的操作而开始申请关键代码段的标识,当读取到RAM(random access memory,随机存储器)存储器中存储的标识是空闲标识时,说明标识申请成功,该线程或者该处理器开始访问关键代码段;当读取到的标识是忙碌标识时,说明此时该关键代码段正在被其他线程或者其他处理器访问,所以该线程或该处理器将进入等待状态,直到访问该关键代码段的其他线程或者其他处理器访问结束从而使得关键代码段处于空闲状态时再开始访问该关键代码段。其中,当该线程或者该处理器读取到RAM存储器中存储的标识是空闲标识,从而开始访问关键代码段之后,为了保证该关键代码段不再被其他线程或者其他处理器同时访问,该线程或者该处理器将修改关键代码段的标识为忙碌标识,并且将修改后的标识写入到RAM存储器中,这也就是人们常说的‘读、改、写’操作。
然而,在该线程或者该处理器执行读操作之后,写操作之前,由于RAM存储器中的标识还未从空闲标识修改为忙碌标识,其他线程或者其他处理器在这段时间内可能也在执行‘读、改、写’的操作,所以这就可能导致不同线程或者不同处理器连续两次申请关键代码段的标识成功,两次对标识进行改操作或者写操作。比如,在AMP设备中,第一处理器访问关键代码段时,第一处理器读取到的标识是空闲标识,则第一处理器申请标识成功,所以第一处理器将把关键代码段的标识修改为忙碌标识,并将修改后的标识写入到RAM存储器中;而在第一处理器将修改后的标识写入到RAM存储器之前,第二处理器通过中断开始申请关键代码段的标识,此时由于RAM存储器中存储的标识还是第一处理器访问关键代码段时第一处理器读取到的标识,所以此时第二处理器读取到的标识仍然是空闲标识,也即第二处理器在第一处理器申请关键代码段的标识成功的同时也申请标识成功。所以为了避免这种情况,现有方案提出在线程或者处理器执行‘读、改、写’操作时,在单核设备中启动关中断,从而保证在一个线程将修改后的标识写入到RAM存储器之前,其他线程都不能中断该线程的操作,也即其他线程都处于等待状态;类似的,在多核如AMP设备中启动锁总线,从而保证在一个处理器将修改后的标识写入到RAM存储器之前,其他处理器都处于等待状态。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
(1)由于在线程或者处理器执行‘读、改、写’操作时,同时启动了关中断或者锁总线,所以这就导致其他线程或者AMP设备中的其他处理器都处于等待状态,降低了系统的性能;特别的,在AMP设备中,当处理器需要多次申请关键代码段的标识时,其他处理器将长时间处于等待状态,从而导致系统性能很低;
(2)在AMP设备中,由于各处理器是运行独立的软件系统,所以各处理器对应的数据存储区以及代码存储区都是独立的,所以为了能让所有处理器都能读取到关键代码段的标识,系统需要开辟一个各处理器都能访问的存储空间。而实际系统中需要关键代码段的标识的都是底层驱动软件,而不同软件系统中的不同底层驱动软件却不能约定共享空间,必须由上层软件来约定,所以这就导致软件系统的结构复杂,开发测试以及维护成本大。
发明内容
为了解决现有技术中线程或者处理器在申请行关键代码段的标识时可能会引起的系统性能低下、以及在AMP设备中软件系统结构复杂、开发测试以及维护成本大的问题,本发明实施例提供了一种接口控制电路、设备和标识切换方法。所述技术方案如下:
第一方面,提供了一种设备,所述设备包括:
总线、与所述总线相连的接口控制电路、与所述接口控制电路相连的存储器以及与所述总线相连的至少一个处理器;
所述存储器,用于存储至少一个标识,每个标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
所述接口控制电路,用于根据所述处理器发送的包括预定地址的读请求查询所述存储器中存储的标识;
所述接口控制电路,还用于当查询到的所述标识是所述空闲标识之后,将所述标识由所述空闲标识切换成所述忙碌标识。
在第一方面的第一种可能的实现方式中,
所述接口控制电路,还用于当查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
所述接口控制电路,还用于当查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述接口控制电路,还用于将所述标识由所述空闲标识切换成所述忙碌标识之后,接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求,并在接收到所述写请求之后,将所述标识由所述忙碌标识切换回所述空闲标识。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述接口控制电路,还用于将所述标识由所述忙碌标识切换回所述空闲标识之后,将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
第二方面,提供了一种标识切换方法,所述方法包括:
接收处理器发送的包括预定地址的读请求;
根据所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
当查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
在第二方面的第一种可能的实现方式中,所述根据所述读请求中的所述预定地址查询存储器中存储的标识之后,还包括:
当查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
当查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述标识由所述空闲标识切换成所述忙碌标识之后,还包括:
接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求;
根据所述写请求将所述标识由所述忙碌标识切换回所述空闲标识。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述写请求将所述标识由所述忙碌标识切换回所述空闲标识之后,还包括:
将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
第三方面,提供了一种接口控制电路,所述接口控制电路包括:
第一接收模块,用于接收处理器发送的包括预定地址的读请求;
标识查询模块,用于根据所述第一接收模块接收到的所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
第一切换模块,用于当所述标识查询模块查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
在第三方面的第一种可能的实现方式中,所述接口控制电路,还包括:
第一反馈模块,用于当所述标识查询模块查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
第二反馈模块,用于当所述标识查询模块查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接口控制电路,还包括:
第二接收模块,用于接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求;
第二切换模块,用于根据所述第二接收模块接收到的所述写请求将所述标识由所述忙碌标识切换回所述空闲标识。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接口控制电路,还包括:
第三反馈模块,用于当所述第二切换模块将所述标识由所述忙碌标识切换回所述空闲标识之后,将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
本发明实施例提供的技术方案的有益效果是:
通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的设备的结构示意图;
图2是本发明实施例二提供的设备的结构示意图;
图3是本发明实施例三提供的标识切换方法的方法流程图;
图4是本发明实施例四提供的标识切换方法的方法流程图;
图5是本发明实施例五提供的接口控制电路的结构方框图;
图6是本发明实施例六提供的接口控制电路的结构方框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参考图1,其示出了本发明实施例一提供的设备的结构示意图,该设备包括总线110、与总线110相连的接口控制电路120、与接口控制电路120相连的存储器130以及与总线120相连的至少一个处理器140。
存储器130用于存储至少一个标识。其中,每个标识对应于一个预定地址和至少一个关键代码段,标识是空闲标识或者忙碌标识,空闲标识代表对应的关键代码段能够被处理器140访问,忙碌标识代表对应的关键代码段不能被处理器140访问。在具体实现时,存储器130可以实现为一块芯片,该芯片可以通过硬件接口与接口控制电路120相连;可选的,存储器130还可以实现为一个逻辑电路,该逻辑电路通过硬件接口与接口控制电路120相连。并且存储器130的存储空间的大小,可以根据实际的系统需求进行合理设计,一般是16个到128个地址空间,本实施例对此不作限定。
接口控制电路120用于根据处理器140发送的包括预定地址的读请求查询存储器130中存储的标识。具体的讲,在设备的一个线程需要访问关键代码段时,该线程所对应的处理器140可以用于向接口控制电路发送包括预定地址的读请求,相应的,接口控制电路可以用于接收处理器140发送的读请求,并且在接收到读请求之后,根据读请求中携带的预定地址查询存储器130中与该预定地址匹配的标识。
接口控制电路120还用于当查询到的标识是空闲标识时,将标识由空闲标识切换成忙碌标识;具体的讲,在接口控制电路120根据处理器140发送的读请求查询存储器130中与预定地址匹配的标识,当查询到的标识是空闲标识时,接口控制电路120可以用于将标识从空闲标识切换成忙碌标识。
综上所述,本实施例提供的设备,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
实施例二
请参考图1,其示出了本发明实施例二提供的设备的结构示意图,该设备包括总线110、与总线110相连的接口控制电路120、与接口控制电路120相连的存储器130以及与总线120相连的至少一个处理器140。
存储器130用于存储至少一个标识。其中,每个标识对应于一个预定地址和至少一个关键代码段,标识是空闲标识或者忙碌标识,空闲标识代表对应的关键代码段能够被处理器140访问,忙碌标识代表对应的关键代码段不能被处理器140访问。在具体实现时,存储器130可以实现为一块芯片,该芯片可以通过硬件接口与接口控制电路120相连;可选的,存储器130还可以实现为一个逻辑电路,该逻辑电路通过硬件接口与接口控制电路120相连。并且存储器130的存储空间的大小,可以根据实际的系统需求进行合理设计,一般是16个到128个地址空间,本实施例对此不作限定;
另外,当设备中的关键代码段是相互独立,也即在一个处理器或一个线程访问一个关键代码段时,其他处理器或其他线程可以同时访问除该关键代码段之外的其他关键代码段,那么此时每个标识可以对应于一个预定地址和一个关键代码段;而当设备的关键代码段中存在相互关联的关键代码段,也即在一个处理器或一个线程访问一个关键代码段时,其他处理器或其他线程在不能访问该关键代码段的同时也不能访问与该关键代码段关联的其他关键代码段,则此时标识可以对应于一个预定地址和至少一个关键代码段,从而保证当其中的一个关键代码段被访问时,与他关联的其他关键代码段不能被访问,本实施例对此并不做限定。并且存储器中存储的标识可以通过两个预定数值如‘0’和‘1’的形式来表示,其中‘0’是空闲标识、‘1’是忙碌标识,本实施例对标识的具体实现形式并不做限定。
接口控制电路120用于根据处理器140发送的包括预定地址的读请求查询存储器130中存储的标识。具体的讲,在设备的一个线程或者一个处理器需要访问关键代码段时,处理器140可以用于向接口控制电路发送包括预定地址的读请求,相应的,接口控制电路可以用于接收处理器140发送的读请求,并且在接收到读请求之后,根据读请求中携带的预定地址查询存储器130中与该预定地址匹配的标识。
接口控制电路120还用于当查询到的标识是空闲标识之后,将标识由空闲标识切换成忙碌标识;具体的讲,接口控制电路120在接收到处理器140发送的读请求之后,可以根据读请求中携带的预定地址查询存储器130中与预定地址匹配的标识,并且当查询到的标识是空闲标识时,接口控制电路120可以用于将标识从空闲标识切换成忙碌标识。
接口控制电路120还用于当查询到的标识是空间标识之后,将空闲标识反馈给处理器140,以便处理器140在接收到空闲标识之后开始访问关键代码段。
接口控制电路120还用于当查询到的标识是忙碌标识之后,将忙碌标识反馈至处理器140,以便处理器140在接收到忙碌标识之后进入等待状态,而并不执行关键代码段。
接口控制电路120还用于将标识由空闲标识切换成忙碌标识之后,接收处理器140在访问完关键代码段之后发送的包括预定地址的写请求,并在接收到写请求之后,将标识由忙碌标识切换回空闲标识。具体的讲,在接口控制电路120将查询到的空闲标识反馈至处理器140之后,处理器140可以用于访问关键代码段,并且在处理器140访问完关键代码段之后,处理器140可以用于向接口控制电路120发送一个包括预定地址的写请求,相应的,接口控制电路120可以用于接收处理器140发送的包括预定地址的写请求,并且在接收到写请求之后,将标识由忙碌标识切换回空闲标识。
接口控制电路120还用于将标识由忙碌标识切换回空闲标识之后,将空闲标识反馈给至少一个处理器中的全部或者部分处理器,以便进入等待状态的处理器140在接收到空闲标识之后开始访问关键代码段。具体的讲,在接口控制电路120将标识由忙碌标识切换回空闲标识之后,其他线程或者处理器可以开始访问关键代码段,所以此时,接口控制电路120可以用于将空闲标识反馈至进入等待状态的处理器140,以便处理器140在接收到空闲标识之后开始访问关键代码段。可选的,接口控制电路120还可以用于将空闲标识反馈至所有处理器140,只是其中只有进入等待状态的处理器140在接收到空闲标识后开始访问关键代码段,而其它处理器则抛弃空闲标识,本实施例对此并不做限定。
可选的,请参考图2,设备还可以包括处理器140在发送读请求和写请求时调用软件代码使用的RAM接口控制器150以及用于存储软件代码和软件数据的RAM存储器160,在此本实施例不再赘述。
其中,处理器140可以是一个也可以是多个。比如,在单处理器设备中,处理器140只有一个,而在多处理器如AMP设备中,处理器140可以有P0-Pn-1共n个,具体实现时根据不同的设备而不同,在此不再赘述。
综上所述,本实施例提供的设备,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
实施例三
请参考图3,其示出了本发明实施例三提供的标识切换方法的方法流程图。该方法用于如实施例一和实施例二所述的设备中,该方法包括:
步骤301,接收处理器发送的包括预定地址的读请求;
在一个处理器需要访问关键代码段保护的资源时,处理器会发送一个包括预定地址的读请求至接口控制电路,相应的,接口控制电路可以接收处理器发送的包括预定地址的读请求。
步骤302,根据读请求中的预定地址查询存储器中存储的标识;
在接口控制电路接收到包括预定地址的读请求之后,接口控制电路可以根据接收到的读请求在存储器中查询与预定地址匹配的标识。
其中,存储器中存储的标识至少有一个,并且每个标识对应于一个预定地址和至少一关键代码段,并且标识可以是空闲标识或者忙碌标识,空闲标识代表对应的关键代码段能够被处理器访问,而忙碌标识代表对应的关键代码段不能被处理器访问。
步骤303,当查询到的标识是空闲标识时,将标识由空闲标识切换成忙碌标识。
当接口控制电路查询到的标识是空闲标识时,说明此时该标识对应的关键代码段可以被处理器访问,并且在被处理器访问的同时不能再被其他处理器访问,所以接口控制电路将把标识由空闲标识切换成忙碌标识。
综上所述,本实施例提供的标识切换方法,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
实施例四
请参考图4,其示出了本发明实施例四提供的标识切换方法的方法流程图,该方法用于如实施例一和实施例二所述的设备中,该方法包括:
步骤401,接收处理器发送的包括预定地址的读请求;
本实施例以具有多处理器的AMP设备为例,在AMP设备中,当一个处理器需要访问关键代码段保护的资源也即访问一个关键代码段时,处理器可以通过RAM接口控制器从RAM存储器中读取软件代码,从而通过运行软件代码的方式来发送一个包括预定地址的读请求到总线上。在接口控制电路检测到读请求中的预定地址与跟接口控制电路相连的存储器中存储的某一标识的地址匹配时,接口控制电路可以接收处理器发送的包括预定地址的读请求。
其中,RAM存储器可以存储设备运行时需要的软件代码以及软件数据,所以对共享资源进行保护的关键代码段可以存储在RAM存储器中。
步骤402,根据读请求中的预定地址查询存储器中存储的标识;
在接口控制电路接收到处理器发送的包括预定地址的读请求之后,接口控制电路可以根据接收到的读请求中的预定地址查询存储器中存储的标识。
比如,处理器发送的读请求中的预定地址是Addr1,则在接口控制电路接收到读请求中的预定地址Addr1之后,接口控制电路可以在AMP设备的存储器中查询与Addr1对应的标识。
其中,存储器中存储的标识至少有一个,每个标识对应于一个预定地址和至少一个关键代码段,并且标识可以是空闲标识或者忙碌标识,空闲标识代表对应的关键代码段可以被处理器访问,忙碌标识代表对应的关键代码段不能被处理器访问。
需要说明的是,本实施例对存储器中标识的存储形式并不做限定,并且以存储器中存储的标识是通过‘0’和‘1’的形式来实现,其中‘0’是空闲标识,‘1’是忙碌标识来举例。
步骤403,当查询到的标识是空闲标识时,将标识由空闲标识切换成忙碌标识;
当接口控制电路查询到的标识是空闲标识时,说明此时标识对应的关键代码段处于空闲状态,并没有被其他处理器访问,所以此时该关键代码段可以被该理器访问,并且为了保证在该处理器访问关键代码段的同时其他处理器不能访问该关键代码段,当接口控制电路查询到标识是空闲标识时,接口控制电路可以把标识由空闲标识切换成忙碌标识。比如,接口控制电路查询到存储器中存储的与Addr1对应的标识是‘0’,是空闲标识,则此时接口控制电路可以将标识从‘0’切换到‘1’。
步骤404,当查询到的标识是空闲标识之后,将空闲标识反馈给处理器,以便处理器在接收到空闲标识后开始访问关键代码段;
当接口控制电路查询到的标识是空闲标识之后,为了让处理器知道此时可以访问访问关键代码,接口控制电路可以将空闲标识反馈给处理器,以便在处理器接收到空闲标识之后开始访问关键代码段。
比如,接口控制电路查询到存储器中存储的与Addr1对应的标识是‘0’,是空闲标识之后,接口控制电路可以将代表关键代码段空闲的空闲标识‘0’反馈给处理器,从而处理器在接收到空闲标识之后开始访问关键代码段。可选的,接口控制电路在查询到标识是空闲标识‘0’之后,还可以将用于表征关键代码段处于空闲从而处理器可以访问关键代码段的任意形式的数值作为空闲标识反馈给处理器,从而使得处理器在接收到空闲标识之后,开始执行关键代码段。
需要补充说明的是,当接口控制电路查询到存储器中存储的与预定地址对应的标识是忙碌标识时,为了告知处理器此时不能访问关键代码段而是进入等待状态,接口控制电路将把忙碌标识反馈给处理器,以便处理器在接收到该忙碌标识之后,进入等待状态而不是访问关键代码段。
另外,步骤403与步骤404可以同时执行,也可以先执行步骤403再执行步骤404,本实施例对此并不做限定。
步骤405,接收处理器发送的包括预定地址的写请求;
当处理器开始访问关键代码段,并且在访问完成后,处理器将不再需要继续占用该关键代码段,所以为了让其他需要访问关键代码段的处理器能够开始访问该关键代码段,处理器可以发送一个包括预定地址的写请求来使得接口控制电路将标识由忙碌标识切换回空闲标识,相应的,当接口控制电路检测到写请求中的预定地址与跟自己相连的存储器中存储的某一标识的地址相匹配时,接口控制电路将接收处理器发送的包括预定地址的写请求。
在具体实现时,写请求中还可以直接携带与预定地址对应的空闲标识,从而使得接口控制电路在接收到写请求之后,将标识由忙碌标识切换回空闲标识。可选的,写请求还可以包括一个四则运算的计算方法,从而使得接口控制电路在接收到写请求之后,将预定地址对应的标识由忙碌标识通过一定运算后切换回空闲标识,本实施例对写请求中的具体内容并不做限定。
步骤406,根据写请求将标识由忙碌标识切换成空闲标识;
在接口控制电路接收到处理器发送的写请求之后,接口控制电路可以根据写请求中的预定标识,将存储器中存储的与预定地址对应的标识由忙碌标识切换回空闲标识。
步骤407,将空闲标识反馈给至少一个处理器中的全部或者部分处理器,以便进入等待状态的处理器在接收到空闲标识后开始访问关键代码段。
在接口控制电路将存储器中存储的与预定地址对应的标识由忙碌标识切换回空闲标识之后,该标识对应的关键代码段处于空闲状态可以被其他处理器访问,所以为了使得此时等待访问关键代码段的处理器开始访问该关键代码段,接口控制电路可以将空闲标识反馈给进入等待状态的处理器。可选的,接口控制电路还可以将空闲标识反馈给AMP设备的所有处理器,从而使得进入等待状态的处理器在接收到空闲标识之后开始访问关键代码段,而其他没有等待访问关键代码段的处理器在接收到空闲标识之后抛弃该空闲标识,本实施例对此并不做限定。
需要补充说明的是,当进入等待状态的处理器有多个时,可以对各处理器设定一个优先级,从而使得优先级较高的处理器在接收到空闲标识后开始访问关键代码段,而优先级较低的处理器继续保持等待状态,本实施例对此不做限定。
综上所述,本实施例提供的标识切换方法,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
实施例五
请参考图5,其示出了本发明实施例五提供的接口控制电路的结构方框图,所述接口控制电路包括第一接收模块510、标识查询模块520和第一切换模块530。
第一接收模块510,用于接收处理器发送的包括预定地址的读请求;
标识查询模块520,用于根据所述第一接收模块510接收到的所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
第一切换模块530,用于当所述标识查询模块520查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
综上所述,本实施例提供的接口控制电路,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
实施例六
请参考图6,其示出了本发明实施例六提供的接口控制电路的结构方框图,所述接口控制电路包括第一接收模块510、标识查询模块520、第一切换模块530、第一反馈模块540、第二反馈模块550、第二接收模块560、第二切换模块570以及第三反馈模块580。
第一接收模块510,用于接收处理器发送的包括预定地址的读请求;
标识查询模块520,用于根据所述第一接收模块510接收到的所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
第一切换模块530,用于当所述标识查询模块520查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
第一反馈模块540,用于当所述标识查询模块520查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
第二反馈模块550,用于当所述标识查询模块520查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
第二接收模块560,用于接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求;
第二切换模块570,用于根据所述第二接收模块560接收到的所述写请求将所述标识由所述忙碌标识切换回所述空闲标识。
第三反馈模块580,用于当所述第二切换模块570将所述标识由所述忙碌标识切换回所述空闲标识之后,将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
综上所述,本实施例提供的接口控制电路,通过使用接口控制电路来接收处理器发送的包括预定地址的读请求,并且在接收到读请求之后,根据读请求中的预定地址查询存储器中存储的标识,从而当查询到的标识是空闲标识时,接口控制电路将标识由空闲标识切换至忙碌标识。解决了现有技术中,当设备运行一个线程或者一个处理器申请关键代码段的标识时,设备需要采用关中断或者锁总线,从而导致系统性能低下,并且在如AMP等多核设备中,为了让所有处理器都能读取到关键代码段的标识,需要通过上层软件来约定共享空间,从而导致的软件系统结构复杂、开发测试以及维护成本大的问题。达到了提供系统性能,并且降低软件系统的复杂度以及开发测试和维护成本的效果。
需要说明的是:上述实施例提供的接口控制电路在进行标识切换时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的接口控制电路与标识切换方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种设备,其特征在于,所述设备包括:
总线、与所述总线相连的接口控制电路、与所述接口控制电路相连的存储器以及与所述总线相连的至少一个处理器;
所述存储器,用于存储至少一个标识,每个标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
所述接口控制电路,用于根据所述处理器发送的包括预定地址的读请求查询所述存储器中存储的标识;
所述接口控制电路,还用于当查询到的所述标识是所述空闲标识之后,将所述标识由所述空闲标识切换成所述忙碌标识。
2.根据权利要求1所述的设备,其特征在于,
所述接口控制电路,还用于当查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
所述接口控制电路,还用于当查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
3.根据权利要求2所述的设备,其特征在于,
所述接口控制电路,还用于将所述标识由所述空闲标识切换成所述忙碌标识之后,接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求,并在接收到所述写请求之后,将所述标识由所述忙碌标识切换回所述空闲标识。
4.根据权利要求3所述的设备,其特征在于,
所述接口控制电路,还用于将所述标识由所述忙碌标识切换回所述空闲标识之后,将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
5.一种标识切换方法,其特征在于,所述方法包括:
接收处理器发送的包括预定地址的读请求;
根据所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
当查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
6.根据权利要求5所述的标识切换方法,其特征在于,所述根据所述读请求中的所述预定地址查询存储器中存储的标识之后,还包括:
当查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
当查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
7.根据权利要求6所述的标识切换方法,其特征在于,所述将所述标识由所述空闲标识切换成所述忙碌标识之后,还包括:
接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求;
根据所述写请求将所述标识由所述忙碌标识切换回所述空闲标识。
8.根据权利要求7所述的标识切换方法,其特征在于,所述根据所述写请求将所述标识由所述忙碌标识切换回所述空闲标识之后,还包括:
将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
9.一种接口控制电路,其特征在于,所述接口控制电路包括:
第一接收模块,用于接收处理器发送的包括预定地址的读请求;
标识查询模块,用于根据所述第一接收模块接收到的所述读请求中的所述预定地址查询存储器中存储的标识,所述标识对应于一个预定地址和至少一个关键代码段,所述标识是空闲标识或者忙碌标识,所述空闲标识代表对应的关键代码段能够被所述处理器访问,所述忙碌标识代表对应的关键代码段不能被所述处理器访问;
第一切换模块,用于当所述标识查询模块查询到的所述标识是所述空闲标识时,将所述标识由所述空闲标识切换成所述忙碌标识。
10.根据权利要求9所述的接口控制电路,其特征在于,所述接口控制电路,还包括:
第一反馈模块,用于当所述标识查询模块查询到的所述标识是所述空闲标识之后,将所述空闲标识反馈给所述处理器,以便所述处理器在接收到所述空闲标识后开始访问所述关键代码段;
第二反馈模块,用于当所述标识查询模块查询到的所述标识是所述忙碌标识之后,将所述忙碌标识反馈给所述处理器,以便所述处理器在接收到所述忙碌标识后进入等待状态,而并不执行所述关键代码段。
11.根据权利要求10所述的接口控制电路,其特征在于,所述接口控制电路,还包括:
第二接收模块,用于接收所述处理器在访问完所述关键代码段之后发送的包括所述预定地址的写请求;
第二切换模块,用于根据所述第二接收模块接收到的所述写请求将所述标识由所述忙碌标识切换回所述空闲标识。
12.根据权利要求11所述的接口控制电路,其特征在于,所述接口控制电路,还包括:
第三反馈模块,用于当所述第二切换模块将所述标识由所述忙碌标识切换回所述空闲标识之后,将所述空闲标识反馈给所述至少一个处理器中的全部或者部分处理器,以便进入等待状态的所述处理器在接收到所述空闲标识后开始访问所述关键代码段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560672.9A CN103885824B (zh) | 2012-12-21 | 2012-12-21 | 接口控制电路、设备和标识切换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560672.9A CN103885824B (zh) | 2012-12-21 | 2012-12-21 | 接口控制电路、设备和标识切换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885824A true CN103885824A (zh) | 2014-06-25 |
CN103885824B CN103885824B (zh) | 2017-06-20 |
Family
ID=50954733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210560672.9A Active CN103885824B (zh) | 2012-12-21 | 2012-12-21 | 接口控制电路、设备和标识切换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885824B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109709902A (zh) * | 2017-10-25 | 2019-05-03 | 富泰华精密电子(郑州)有限公司 | 数据交互方法、系统和存储器 |
CN110377548A (zh) * | 2019-06-28 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种地址空间复用方法、装置及多路复用器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
US20070113024A1 (en) * | 2003-12-22 | 2007-05-17 | Kabushiki Kaisha Kawai Gakki | Device for processing access concurrence to shared memory |
CN1973266A (zh) * | 2004-04-02 | 2007-05-30 | 西姆毕恩软件有限公司 | 对或涉及用于计算装置的操作系统的改进 |
-
2012
- 2012-12-21 CN CN201210560672.9A patent/CN103885824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113024A1 (en) * | 2003-12-22 | 2007-05-17 | Kabushiki Kaisha Kawai Gakki | Device for processing access concurrence to shared memory |
CN1973266A (zh) * | 2004-04-02 | 2007-05-30 | 西姆毕恩软件有限公司 | 对或涉及用于计算装置的操作系统的改进 |
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109709902A (zh) * | 2017-10-25 | 2019-05-03 | 富泰华精密电子(郑州)有限公司 | 数据交互方法、系统和存储器 |
CN110377548A (zh) * | 2019-06-28 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种地址空间复用方法、装置及多路复用器 |
Also Published As
Publication number | Publication date |
---|---|
CN103885824B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4837682A (en) | Bus arbitration system and method | |
US9052957B2 (en) | Method and system for conducting intensive multitask and multiflow calculation in real-time | |
US7469321B2 (en) | Software process migration between coherency regions without cache purges | |
CN100570563C (zh) | 在具有动态逻辑分区的计算环境中管理计算机存储器 | |
US20040268044A1 (en) | Multiprocessor system with dynamic cache coherency regions | |
US20140095769A1 (en) | Flash memory dual in-line memory module management | |
JP6368434B2 (ja) | Pld管理方法及びpld管理システム | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
CN107729267B (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
CN101876911B (zh) | 基于PCI/PCIe总线多CPU系统启动方法及模块 | |
CN101216781B (zh) | 一种多处理器系统、装置及方法 | |
US20180239652A1 (en) | Lightweight thread synchronization using shared memory state | |
KR20120072211A (ko) | 메모리 매핑장치 및 이를 구비한 멀티프로세서 시스템온칩 플랫폼 | |
US3710349A (en) | Data transferring circuit arrangement for transferring data between memories of a computer system | |
CN103885824A (zh) | 接口控制电路、设备和标识切换方法 | |
CN105095149A (zh) | 一种片上系统参数的批处理方法和装置 | |
CN113918311B (zh) | 多核系统的软中断路由方法及响应软中断的方法和芯片 | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
US11656905B2 (en) | Delegation control based on program privilege level and page privilege level | |
CN103634344A (zh) | 一种单机运行多MySQL数据库实例的方法和设备 | |
US9052840B2 (en) | Accessing additional memory space with multiple processors | |
JP2007122337A (ja) | 演算装置 | |
CN116069451B (zh) | 一种虚拟化方法、装置、设备、介质、加速器及系统 | |
EP4414843A1 (en) | Systems and methods for creating isolated partitions in a multi-core processing system | |
KR20080089621A (ko) | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |