CN104346317B - 共享资源访问方法和装置 - Google Patents

共享资源访问方法和装置 Download PDF

Info

Publication number
CN104346317B
CN104346317B CN201310311081.2A CN201310311081A CN104346317B CN 104346317 B CN104346317 B CN 104346317B CN 201310311081 A CN201310311081 A CN 201310311081A CN 104346317 B CN104346317 B CN 104346317B
Authority
CN
China
Prior art keywords
resource
shared resource
processor core
designated position
shared
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.)
Active
Application number
CN201310311081.2A
Other languages
English (en)
Other versions
CN104346317A (zh
Inventor
彭亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Nanjing ZTE New Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing ZTE New Software Co Ltd filed Critical Nanjing ZTE New Software Co Ltd
Priority to CN201310311081.2A priority Critical patent/CN104346317B/zh
Priority to PCT/CN2014/079451 priority patent/WO2014173364A1/zh
Publication of CN104346317A publication Critical patent/CN104346317A/zh
Application granted granted Critical
Publication of CN104346317B publication Critical patent/CN104346317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种共享资源访问方法和装置。涉及计算机应用领域;解决了缺乏适合的共享设备访问冲突处理方式的问题。该方法包括:资源锁接收访问共享资源的请求;所述资源锁读取该资源锁中所述共享资源对应的指定位置的值;所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用。本发明提供的技术方案适用于SOC系统中,实现了高效率高可靠性的共享资源管理。

Description

共享资源访问方法和装置
技术领域
本发明涉及计算机应用领域,尤其涉及一种多核SOC系统中的共享资源访问方法和装置。
背景技术
在SOC系统中由于系统的复杂程度越来越高,单个处理器核已经不能满足性能和控制的需求,因此在现代的SOC系统中通常会使用多个相同的处理核或者不同的处理器核进行控制和运算,其结构示意图如图1所示。同时SOC系统中还会有很多通用外设和存储设备,例如UART、I2C、GPIO、SPI和DDR等等。但是在多核系统中每一个处理器核都可以独立控制系统中的设备,如果两个或多个处理器核需要访问同一个设备时会产生冲突现象,例如第一个处理器核对该设备的配置可能会被另外的处理器核修改,如果没有有效的保护机制,可能会导致设备错误甚至出现死机的可能。
为了解决多个处理器核访问这些共享设备可能产生的冲突现象,其中一种方法是使用软件去维护一个共享设备状态表。每次访问要先通知其他和不要访问这个表,然后再去看一下这个表中本核希望访问的设备是否被占用。如果被占用则等待,如未被占用写入本核的相关信息标识占用本设备,最后通知其他核共享设备状态表释放。但软件保护方式不能保证异常访问可能导致的异常解锁或锁信息被破坏。
另外一个方法就是使用具有带独占访问指令的处理器核,并且在所有的共享设备上加入访问控制单元,其系统连接示意图如图二所示。当处理器核发出独占访问时,访问控制根据单元记录设备的访问状态确认该访问是否成功。该方法是一种基于处理器核和硬件协调的方式,当访问控制单元采用访问控制表时可实现分片独占访问控制,其结构示意图如图2所示。
这些方法虽然都可以解决多核系统中共享设备访问冲突的情况,但第一种方法由于是基于纯软件的维护,效率不高。而且设备状态表有可能被DMA等Master设备错误修改而无法知道的情况。第二种方法虽然效率有很大提高,但对处理器核有较大的依赖性,同时共享设备需要增加相关硬件资源,对于希望有分块控制的共享设备来说分块数量有限,缺乏灵活性。因此为了保证多核SOC系统中共享设备能被多个处理器核灵活控制,需要一种更高效的共享设备冲突控制的方法。
发明内容
本发明提供了一种共享资源访问方法,解决了缺乏适合的共享设备访问冲突处理方式的问题。
一种共享资源访问方法,包括:
在多核SOC系统中,其特征在于,该方法包括:
资源锁接收访问共享资源的请求;
所述资源锁读取该资源锁中所述共享资源对应的指定位置的值;
所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用。
优选的,所述资源锁接收访问共享资源的请求具体为:
所述资源锁接收处理器核或主控设备发送的访问共享资源的请求。
优选的,该方法还包括:
将存储控制器的存储空间划分为多个分段,将其中的一个或多个分段作为所述资源锁的存储空间。
优选的,读取资源锁中该共享资源对应的指定位置的值的步骤之前还包括:
在所述资源锁中,为所述SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备。
优选的,所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用的步骤之后,还包括:
所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备。
优选的,所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备的步骤之后,还包括:
所述处理器核或主控设备进入所述共享资源的等待队列。
优选的,所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备的步骤之后,还包括:
所述处理器核或主控设备等待预置时间间隔后再访问所述共享资源。
优选的,所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用的步骤之后,还包括:
在所述共享资源空闲时,所述资源锁将发起访问的处理器核或主控设备在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源;
所述资源锁向所述处理器核或主控设备回复响应,指示所述处理器核或主控设备已完成对所述共享资源的加锁。
优选的,所述资源锁向所述处理器核或主控设备回复响应,指示所述处理器核或主控设备已完成对所述共享资源的加锁的步骤之后,还包括:
所述处理器核或主控设备在完成使用所述共享资源后,向所述资源锁发送针对所述共享资源的指定位置的写命令,指示释放所述共享资源。
优选的,所述处理器核或主控设备在完成使用所述共享资源后,向所述资源锁发送针对所述共享资源的指定位置的写命令的步骤之后,还包括:
所述资源锁检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配;
所述资源锁在检查结果为匹配时,清除所述共享资源的指定位置的值,表明所述共享资源空闲。
优选的,所述资源锁检测发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配的步骤之后,还包括:
所述资源锁在检查结果为不匹配时,不修改所述指定位置的值,并向发出所述写命令的处理器核或主控设备返回写失败响应。
本发明还提供了一种共享资源访问装置,在多核SOC系统中,包括:
请求接收模块,用于接收访问共享资源的请求;
存储控制模块,用于读取资源锁中所述共享资源对应的指定位置的值;
判定模块,用于根据所述指定位置的值,判定当前所述共享资源是否被占用。
优选的,该装置还包括:
存储模块,用于在所述资源锁中,为所述SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备。
优选的,所述存储控制模块,还用于在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备,或,
在所述共享资源空闲时,所述资源锁将发起访问的处理器核或主控设备在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源。
优选的,所述存储控制模块,还用于在接收到所述处理器核或主控设备在完成使用所述共享资源后发送的针对所述共享资源的指定位置的写命令后,检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配,并在检查结果为匹配时清除所述共享资源的指定位置的值,在检查结果为不匹配时不修改所述指定位置的值并向发出所述写命令的处理器核或主控设备返回写失败响应。
本发明提供了一种共享资源访问方法和装置,在多核SOC系统中,通过资源锁对共享资源的使用情况进行管理,资源锁接收访问共享资源的请求,读取该资源锁中所述共享资源对应的指定位置的值,并根据所述指定位置的值,判定当前所述共享资源是否被占用,提供了一种可靠的共享资源管理机制,在尽可能减少额外硬件消耗的前提下,实现了高效率高可靠性的共享资源管理,解决了缺乏适合的共享设备访问冲突处理方式的问题。
附图说明
图1是现有技术下普通SOC系统的结构示意图;
图2是现有技术下使用硬件方式实现共享资源设备访问冲突的结构示意图;
图3是本发明的实施例一中使用本发明设计的设备和方法实现共享资源设备访问冲突的结构示意图;
图4是本发明的实施例一中提供的资源锁的内部结构示意图;
图5是本发明的实施例一提供的一种共享资源访问方法中资源锁加锁工作流程图;
图6是本发明的实施例一提供的一种共享资源访问方法中资源锁解锁工作流程图;
图7是本发明的实施例一提供的一种共享资源访问方法的处理流程图;
图8是本发明的实施例二提供的一种共享资源访问装置的结构示意图;
图9是本发明的实施例三提供的一种共享资源访问装置的结构示意图。
具体实施方式
基于纯软件的共享资源管理,效率不高,而且设备状态表有可能被DMA等Master设备错误修改而无法知道的情况。基于纯硬件的共享资源管理,虽然效率有很大提高,但对处理器核有较大的依赖性,同时共享设备需要增加相关硬件资源,对于希望有分块控制的共享设备来说分块数量有限,缺乏灵活性。因此为了保证多核SOC系统中共享设备能被多个处理器核灵活控制,需要一种更高效的共享设备冲突控制的方法。
为了解决上述问题,本发明的实施例提供了一种共享资源访问方法和装置。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先结合附图,对本发明的实施例一进行说明。
本发明实施例提出了一种在多核SOC系统中对共享资源访问冲突进行控制的共享资源访问方法,其系统连接示意图如图3所示。使多个处理器核在不产生冲突并高效使用各个共享设备的前提下,具有较高的灵活性。
本发明实施例中,处理器核只使用普通的处理器读写指令,通过软件实现维护一个可扩展的共享资源列表,用于记录资源锁内共享资源与指定位置的对应关系,在所述资源锁中,为所述SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备。例如:系统中有2个uart,在资源锁的位置是0、1,那么cpu或者其他master要去访问的时候就知道该去上锁那个地方了。对于通用的存储空间也是一样道理。。
使用一个特殊控制的存储控制器为资源锁提供存储空间,软硬件协同,高效的防止共享资源访问冲突出现,并可实现单一共享资源设备灵活分块锁定功能。另外,资源锁控制逻辑还可以支持动态划分锁区域,当需要锁住的资源较多的情况下可以增加资源锁的空间。其中资源锁以普通的存储控制器为基础,增加特殊控制逻辑(如将该存储控制器的存储空间划分为多个分段,根据实际需求从中取若干分段作为资源锁的存储空间,而剩余的空间则可做他用),实现使用普通的读指令实现共享资源硬件加锁,加锁后其他处理器核请求该共享设备时可知道该设备状态,并保证设备只能被加锁的处理器核进行写解锁,其内部结构如图4所示。具体工作过程如下:
当系统中某个处理器核,例如处理器核0需要访问共享资源0的时候,根据共享资源列表设备在资源锁中的位置,发出访问共享资源的请求,具体的,发出读指令到系统中的资源锁,读取资源锁中该共享资源对应的指定位置的值。资源锁将指定位置的值读出,根据所述指定位置的值,判定当前所述共享资源是否被占用。
如果读出值为0或某一特定值(可以为任意值,只要资源锁与处理器核事先约定了该值代表相应的共享资源没被占用即可),则证明该共享资源0没有被占用,是空闲的。此时,资源锁控制逻辑将发起访问的处理器核在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源。同时,资源锁向所述处理器核0回复响应,指示所述处理器核0已完成对所述共享资源的加锁,例如:将0值或者该特定值返回到处理器核0,完成加锁动作。即此时处理器核0获得该共享资源0的控制权,可以开始使用该共享资源0。资源锁加锁过程流程图如图5所示。
如果此时还有其他处理器核希望访问该共享资源,由于共享资源已被占用,资源锁会向该处理器核返回正在占用该共享资源设备的处理器核0的系统唯一位置标识值,其他处理器核就知道该共享资源目前不能被使用。此时,该处理器核可以进入所述共享资源的等待队列或者定时(如等待预置时间间隔后)再来访问该共享资源0。
当共享资源0被使用完后,获得该共享资源设备控制权的处理器核0向所述资源锁发送针对所述共享资源的指定位置的写命令,指示释放所述共享资源,资源锁接收到该写命令后检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配,即检查发送写命令的处理器核是否为当前获得共享资源0的控制权的处理器核。如果检查结果为匹配,则清除所述共享资源0的指定位置的值,表明所述共享资源空闲释放该共享资源0,并返回写入成功到处理器核0中去;如果检查结果为不匹配,则表明非具有该共享资源0控制权的处理器核发出写命令到代表该共享资源0锁的存储位置,此时该写命令不会被写到该存储位置,且资源锁会向发出所述写命令的处理器核返回写失败响应,对该共享资源0的解锁失败。从而保证加解锁的唯一性。资源锁解锁过程流程图如图6所示。
另外,由于使用软硬件共同协作,因此可以对单一设备进行多段地址独立加锁操作,并且可以自由的控制分段的数量,分段数的唯一限制仅来自于资源锁使用的存储控制器的容量。软件对资源锁使用控制流程图如图7所示。
需要说明的是,本发明实施例中以处理器核为共享资源请求方为例进行了说明,在实际应用中,发起共享资源请求的主体可以是任意的主控设备或处理器核。例如芯片作为从片时,其他主控芯片可能通过本芯片的srio进行共享资源的访问。在以主控设备(如主控芯片)作为主体发起共享资源请求至该资源锁时,其完成对共享资源使用冲突的实现原理是相同的,在此不作重复说明。
下面结合附图,对本发明的实施例二进行说明。
如图8所示,本发明实施例提供了一种共享资源访问装置,包含了以下基本单元:接口模块、指令转换模块、存储控制模块、存储模块。为了更高效的利用装置中的存储模块,本发明实施例中存储模块还可以用做为系统普通存储,提供系统性能。
其中接口模块可以根据SOC系统需要使用相匹配的协议支持;指令转换模块可根据访问类型为加解锁或普通存储访问进行访问命令的生成;存储控制模块用于接收从指令转换模块过来指令、数据发送到存储控制器中,并负责将存储控制器返回的数据送出;存储模块根据接口过来的指令要求用于存储锁信息(如指定位置的值)或普通数据。
当作为共享资源访问冲突控制用时,其具体工作过程如下:当系统中多处理器核中的某个处理器核,例如处理器核0需要访问共享资源0的时候,根据共享资源列表设备在资源锁中的位置,发出读指令到系统中的资源锁。指令转换模块首先会判读该指令是加锁、解锁或是普通存储访问,当为加锁访问时,指令转换模块首先产生一个读指令送到存储控制模块中将指定位置上存储单元的值读出,如果当读出值为0或某一特定值,则证明该设备没有被占用,此时指令转换模块将产生一条额外的写指令到存储控制模块,将访问资源锁的处理器在系统中的唯一位置标识写入到该存储单元中,同时将0值或者某一特定值返回到处理器核0,完成加锁动作。即此时处理器核0获得该共享资源的控制权,可以开始使用该共享资源0。
如果此时还有其他处理器核希望访问该共享资源,指令转换模块发出读命令后,存储模块会返回正在占用该共享资源设备的处理器核0的位置值。此时指令转换模块将不会再产生额外的写指令,而直接将从存储模块中返回的值送会该处理器核。此时,其他处理器核就知道该共享资源目前不能被使用。此时软件可以进入等待或者定时再来访问该设备。
当共享资源0被使用完后,获得该共享资源设备控制权的处理器核0发出写命令到代表该共享资源设备解锁,指令转换模块接收到该写命令后后首先将这个写指令转换为读指令确定该解锁是否合法。如果从存储模块的返回值和请求解锁的处理器唯一标识匹配,则指令转换模块产生写命令到存储控制模块,清除该存储位置上的值,即释放该共享资源设备,并返回写入成功到处理器核0中去;如果非该共享资源设备控制权的处理器核发出写命令到代表该共享资源0锁的存储位置,资源锁会检测到位置信息不匹配,此时该写命令不会被真是写到该存储位置,并返回写失败到发出写命令的处理器核或主控设备,解锁失败。从而保证加解锁的唯一性。
当作为普通存储访问时,指令转换模块通过锁存储和普通存储的分界寄存器确定为普通存储区访问时,则不会进行任何的检查和指令转换工作,而直接将读写指令发送到存储控制模块中进行存储器的读写操作。由于此过程为纯硬件操作,锁空间和普通存储空间的访问无需任何的软件配置或转换即可实现,具有很高的灵活性。
上述共享资源访问装置可集成于本发明实施例一中的资源锁内,由资源锁完成相应功能。
下面结合附图,对本发明的实施例三进行说明。
本发明实施例提供了一种共享资源访问装置,其结构如图9所示,包括:
请求接收模块,用于接收访问共享资源的请求;
存储控制模块,用于读取资源锁中所述共享资源对应的指定位置的值;
判定模块,用于根据所述指定位置的值,判定当前所述共享资源是否被占用。
优选的,该装置还包括:
存储模块,用于在所述资源锁中,为所述SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备。
优选的,所述存储控制模块,还用于在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备,或,
在所述共享资源空闲时,所述资源锁将发起访问的处理器核或主控设备在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源。
优选的,所述存储控制模块,还用于在接收到所述处理器核或主控设备在完成使用所述共享资源后发送的针对所述共享资源的指定位置的写命令后,检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配,并在检查结果为匹配时清除所述共享资源的指定位置的值,在检查结果为不匹配时向发出所述写命令的处理器核或主控设备返回写失败响应。
图9所示的共享资源访问装置,能够集成于本发明实施例一提供的资源锁中,由资源锁完成相应功能。
本发明的实施例提供了一种共享资源访问方法和装置,在多核SOC系统中,通过资源锁对共享资源的使用情况进行管理,资源锁接收访问共享资源的请求,读取该资源锁中所述共享资源对应的指定位置的值,并根据所述指定位置的值,判定当前所述共享资源是否被占用,提供了一种可靠的共享资源管理机制,在尽可能减少额外硬件消耗的前提下,实现了高效率高可靠性的共享资源管理,解决了缺乏适合的共享设备访问冲突处理方式的问题。
利用了软硬件结合的方式高效解决了多核SOC系统中共享资源设备多核同时访问产生冲突的问题,较纯软件的解决方式性能有很大提升,较纯硬件的解决方式避免了对处理器核的依赖,也能增加原设备的可重用性减少新开发,并且具有更高灵活性,因此具有很高的使用价值。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。

Claims (12)

1.一种共享资源访问方法,在多核SOC系统中,其特征在于,所述多核SOC系统包括与总线连接的一个资源锁、多个处理器核和多个共享资源,所述处理器核维护一个可扩展的共享资源列表,用于记录所述资源锁内共享资源与指定位置的对应关系,在所述资源锁中,为所述SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备;该方法包括:
资源锁接收访问共享资源的请求;
所述资源锁读取该资源锁中所述共享资源对应的指定位置的值;
所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用,在所述共享资源空闲时,所述资源锁将发起访问的处理器核或主控设备在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源;所述资源锁向所述处理器核或主控设备回复响应,指示所述处理器核或主控设备已完成对所述共享资源的加锁。
2.根据权利要求1所述的共享资源访问方法,其特征在于,所述资源锁接收访问共享资源的请求具体为:
所述资源锁接收处理器核或主控设备发送的访问共享资源的请求。
3.根据权利要求1所述的共享资源访问方法,其特征在于,该方法还包括:
将存储控制器的存储空间划分为多个分段,将其中的一个或多个分段作为所述资源锁的存储空间。
4.根据权利要求1所述的共享资源访问方法,其特征在于,所述资源锁根据所述指定位置的值,判定当前所述共享资源是否被占用的步骤之后,还包括:
所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备。
5.根据权利要求4所述的共享资源访问方法,其特征在于,所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备的步骤之后,还包括:
所述处理器核或主控设备进入所述共享资源的等待队列。
6.根据权利要求4所述的共享资源访问方法,其特征在于,所述资源锁在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备的步骤之后,还包括:
所述处理器核或主控设备等待预置时间间隔后再访问所述共享资源。
7.根据权利要求1所述的共享资源访问方法,其特征在于,所述资源锁向所述处理器核或主控设备回复响应,指示所述处理器核或主控设备已完成对所述共享资源的加锁的步骤之后,还包括:
所述处理器核或主控设备在完成使用所述共享资源后,向所述资源锁发送针对所述共享资源的指定位置的写命令,指示释放所述共享资源。
8.根据权利要求7所述的共享资源访问方法,其特征在于,所述处理器核或主控设备在完成使用所述共享资源后,向所述资源锁发送针对所述共享资源的指定位置的写命令的步骤之后,还包括:
所述资源锁检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配;
所述资源锁在检查结果为匹配时,清除所述共享资源的指定位置的值,表明所述共享资源空闲。
9.根据权利要求8所述的共享资源访问方法,其特征在于,所述资源锁检测发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配的步骤之后,还包括:
所述资源锁在检查结果为不匹配时,不修改所述指定位置的值,并向发出所述写命令的处理器核或主控设备返回写失败响应。
10.一种共享资源访问装置,在多核SOC系统中,其特征在于,所述多核SOC系统包括与总线连接的一个资源锁、多个处理器核和多个共享资源,所述处理器核维护一个可扩展的共享资源列表,用于记录所述资源锁内共享资源与指定位置的对应关系,所述共享资源访问装置集成于所述资源锁内,包括:
存储模块,用于在所述资源锁中,为所述多核SOC系统中的至少一个共享资源分配指定位置,不同共享资源的指定位置不同,所述指定位置的值指示对应的共享资源空闲或占用对应的共享资源的处理器核或主控设备;
请求接收模块,用于接收访问共享资源的请求;
存储控制模块,用于读取资源锁中所述共享资源对应的指定位置的值;还用于在所述共享资源空闲时,所述资源锁将发起访问的处理器核或主控设备在系统中的唯一位置标识写入到所述指定位置中,表明所述处理器核或主控设备占用所述共享资源;
判定模块,用于根据所述指定位置的值,判定当前所述共享资源是否被占用。
11.根据权利要求10所述的共享资源访问装置,其特征在于,
所述存储控制模块,还用于在所述共享资源被占用时,返回所述指定位置的值至所述处理器核或主控设备。
12.根据权利要求10或11所述的共享资源访问装置,其特征在于,
所述存储控制模块,还用于在接收到所述处理器核或主控设备在完成使用所述共享资源后发送的针对所述共享资源的指定位置的写命令后,检查发送所述写命令的处理器核或主控设备的唯一位置标识与所述共享资源的指定位置的值是否匹配,并在检查结果为匹配时清除所述共享资源的指定位置的值,在检查结果为不匹配时不修改所述指定位置的值并向发出所述写命令的处理器核或主控设备返回写失败响应。
CN201310311081.2A 2013-07-23 2013-07-23 共享资源访问方法和装置 Active CN104346317B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310311081.2A CN104346317B (zh) 2013-07-23 2013-07-23 共享资源访问方法和装置
PCT/CN2014/079451 WO2014173364A1 (zh) 2013-07-23 2014-06-09 共享资源访问方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310311081.2A CN104346317B (zh) 2013-07-23 2013-07-23 共享资源访问方法和装置

Publications (2)

Publication Number Publication Date
CN104346317A CN104346317A (zh) 2015-02-11
CN104346317B true CN104346317B (zh) 2019-08-27

Family

ID=51791093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310311081.2A Active CN104346317B (zh) 2013-07-23 2013-07-23 共享资源访问方法和装置

Country Status (2)

Country Link
CN (1) CN104346317B (zh)
WO (1) WO2014173364A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649189B (zh) * 2015-10-28 2021-04-09 中兴通讯股份有限公司 一种多核系统中硬件资源管理的方法及相应的多核系统
CN105404555A (zh) * 2015-12-29 2016-03-16 重庆安碧捷科技股份有限公司 医疗多线程共享资源分配处理方法及系统
CN105760216A (zh) * 2016-02-29 2016-07-13 惠州市德赛西威汽车电子股份有限公司 一种多进程同步控制方法
CN106874125B (zh) * 2017-01-13 2021-04-06 北京元心科技有限公司 多容器系统间共享系统资源的方法及装置
WO2018176397A1 (zh) 2017-03-31 2018-10-04 华为技术有限公司 一种锁分配的方法、装置和计算设备
JP6912421B2 (ja) * 2018-06-01 2021-08-04 ファナック株式会社 制御装置
CN108984323B (zh) * 2018-07-13 2022-04-01 上海联影医疗科技股份有限公司 一种共享存储空间的调度方法及系统
FR3086780B1 (fr) * 2018-09-27 2020-11-06 Thales Sa Systeme et procede d'acces a une ressource partagee
CN111026336A (zh) * 2019-12-26 2020-04-17 中国建设银行股份有限公司 一种san存储系统的自动化运维方法及运维系统
CN113190496B (zh) * 2021-04-23 2023-12-26 深圳市汇顶科技股份有限公司 内核通讯方法、装置、芯片、电子设备及存储介质
CN113269590B (zh) * 2021-05-31 2023-06-06 五八到家有限公司 一种用于资源补贴的数据处理方法、装置和系统
CN113836209A (zh) * 2021-09-02 2021-12-24 深圳市道通智能汽车有限公司 多核处理器的共享资源访问方法、处理器及多核系统
CN115033394B (zh) * 2022-05-23 2023-05-26 深圳市航顺芯片技术研发有限公司 一种多核mcu访问共享外设的控制系统及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216781A (zh) * 2007-12-28 2008-07-09 中国科学院计算技术研究所 一种多处理器系统、装置及方法
CN101566977A (zh) * 2009-06-08 2009-10-28 华为技术有限公司 处理器访问共享数据的方法、装置及系统
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN103064729A (zh) * 2012-12-19 2013-04-24 上海西本网络科技有限公司 对共享资源的加锁、控制方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1181438C (zh) * 2001-01-18 2004-12-22 深圳市中兴集成电路设计有限责任公司 异步时钟域设备对共享存储装置访问的控制方法
US7552341B2 (en) * 2004-09-01 2009-06-23 Microsoft Corporation Licensing the use of software on a particular CPU
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101634979B (zh) * 2008-07-22 2011-09-07 中国科学院计算技术研究所 一种满足SystemC语法的多核处理器
CN101403979A (zh) * 2008-10-27 2009-04-08 成都市华为赛门铁克科技有限公司 一种自旋锁的加锁方法及计算机系统
CN101841473B (zh) * 2010-04-09 2011-12-28 北京星网锐捷网络技术有限公司 Mac地址表更新方法及装置
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及系统
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216781A (zh) * 2007-12-28 2008-07-09 中国科学院计算技术研究所 一种多处理器系统、装置及方法
CN101566977A (zh) * 2009-06-08 2009-10-28 华为技术有限公司 处理器访问共享数据的方法、装置及系统
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN103064729A (zh) * 2012-12-19 2013-04-24 上海西本网络科技有限公司 对共享资源的加锁、控制方法和装置

Also Published As

Publication number Publication date
WO2014173364A1 (zh) 2014-10-30
CN104346317A (zh) 2015-02-11

Similar Documents

Publication Publication Date Title
CN104346317B (zh) 共享资源访问方法和装置
EP2851807B1 (en) Method and system for supporting resource isolation under multi-core architecture
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
US9519652B2 (en) Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system
US20080086603A1 (en) Memory management method and system
US11070979B2 (en) Constructing a scalable storage device, and scaled storage device
CN101216814A (zh) 一种多核多操作系统之间的通信方法及系统
CN103744799A (zh) 一种内存数据访问方法、装置和系统
CN105302765A (zh) 一种系统级芯片及其内存访问管理方法
US9424193B2 (en) Flexible arbitration scheme for multi endpoint atomic accesses in multicore systems
US20210334143A1 (en) System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources
US11409684B2 (en) Processing accelerator architectures
WO2020219810A1 (en) Intra-device notational data movement system
US9372796B2 (en) Optimum cache access scheme for multi endpoint atomic access in a multicore system
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
CN117170820A (zh) 集群节点的配置共享方法、系统、终端及存储介质
CN106155910A (zh) 一种实现内存访问的方法、装置和系统
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
CN116932451A (zh) 一种数据处理方法、主机及相关设备
CN103049505A (zh) 一种存储引擎和基于基础引擎的存储结构
US20220317927A1 (en) Adaptive memory consistency in disaggregated datacenters
CN106886504B (zh) 基于ahb总线的多核soc中实现原子操作系统及方法
CN111241042B (zh) 一种基于Etcd的分布锁实现方法、系统及设备
US11860783B2 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
KR20010045288A (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
TA01 Transfer of patent application right

Effective date of registration: 20190730

Address after: No. 68 Bauhinia Road, Ningnan Street, Nanjing City, Jiangsu Province, 210022

Applicant after: Nanjing Zhongxing Software Co.,Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Applicant before: ZTE Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221117

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: No. 68, Zijinghua Road, Ningnan Street, Nanjing, Jiangsu 210,022

Patentee before: Nanjing Zhongxing Software Co.,Ltd.

TR01 Transfer of patent right