CN116048824A - 一种多核处理器信号量系统 - Google Patents

一种多核处理器信号量系统 Download PDF

Info

Publication number
CN116048824A
CN116048824A CN202310324655.3A CN202310324655A CN116048824A CN 116048824 A CN116048824 A CN 116048824A CN 202310324655 A CN202310324655 A CN 202310324655A CN 116048824 A CN116048824 A CN 116048824A
Authority
CN
China
Prior art keywords
semaphore
interrupt
register
processing
flag
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
Application number
CN202310324655.3A
Other languages
English (en)
Other versions
CN116048824B (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.)
Jingxin Microelectronics Technology Tianjin Co Ltd
Original Assignee
Jingxin Microelectronics Technology Tianjin 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 Jingxin Microelectronics Technology Tianjin Co Ltd filed Critical Jingxin Microelectronics Technology Tianjin Co Ltd
Priority to CN202310324655.3A priority Critical patent/CN116048824B/zh
Publication of CN116048824A publication Critical patent/CN116048824A/zh
Application granted granted Critical
Publication of CN116048824B publication Critical patent/CN116048824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种多核处理器信号量系统,多核处理器信号量系统包括n个处理内核,n个信号量模块、总线和中断控制器,处理单元通过总线与各信号量模块电连接,每个信号量模块分别与中断控制器电连接;每个处理内核电连接n个信号量模块,n个处理内核按照从1到n的顺序编号,n个信号量模块按照从1到n的顺序编号,与信号量模块编号相同的处理内核为该信号量模块的主处理内核,与信号量模块编号相同的处理内核之外的其它处理内核为该信号量模块的从处理内核。本发明的优点在于:以硬件辅助实现对信号量的进程/线程件同步和互锁,执行效率高且降低了软件编程难度;不依赖于特定软件和操作系统,兼容性好,灵活度高。

Description

一种多核处理器信号量系统
技术领域
本发明涉及芯片技术领域,具体而言,涉及一种多核处理器信号量系统。
背景技术
生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一种常见的计算机多线程同步问题。该问题描述了两个共享固定大小数据区(或缓冲区)的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到数据区中,然后重复此过程。与此同时,消费者也在数据区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区已经装满时加入数据,消费者也不会在缓冲区为空时消耗数据。
信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种工具,可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。信号量可以用来解决生产者消费者问题。
在当前主流的嵌入式操作系统中一般都提供信号量软件接口,用于进程/线程间同步。在多核处理器中,当各个核共享同一系统资源时,各个核上运行的进程/线程可以通过申请信号量资源很方便的实现进程/线程的同步功能,同时在对共享资源使用上,信号量可以充当互斥锁的作用,为共享资源的使用提供安全保障。
但是,现有的信号量软件接口在面对某些对实时性要求较高的多核处理器系统时,信号量软件接口难以满足系统的对于效率需求。此外,对于系统资源不能共享或只能部分共享的多核处理器系统,信号量软件接口甚至可能无法实现各个核间的通信功能。
本领域需要提供一种多核处理器信号量系统,其能够克服现有技术的缺陷。
发明内容
本发明提供了一种多核处理器信号量系统,其能够解决现有技术存在的问题。本发明的目的通过以下技术方案得以实现。
第一方面,本发明的一个实施方式提供了一种多核处理器信号量系统,其包括n个处理内核,n个信号量模块、总线和中断控制器,其中,n为大于1的正整数,处理单元通过总线与各信号量模块电连接,每个信号量模块分别与中断控制器电连接;每个处理内核电连接n个信号量模块,n个处理内核按照从1到n的顺序编号,n个信号量模块按照从1到n的顺序编号,与信号量模块编号相同的处理内核为该信号量模块的主处理内核,与信号量模块编号相同的处理内核之外的其它处理内核为该信号量模块的从处理内核;信号量模块能够向中断控制器发送授予中断信号和错误中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中信号量模块包括多个信号量单元,状态寄存器、请求单元、中断标记单元和错误标记单元,每个信号量单元分别与状态寄存器、请求单元、中断标记单元和错误标记单元电连接。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中请求单元接收来自处理内核的信号量请求并根据信号量名称判断信号量单元中是否已存在该信号量,信号量单元存储信号量相关信息并对信号量进行处理,状态寄存器标记各个信号量单元的状态,中断标记单元标记各个信号量单元的中断状态并向中断控制器发送授予中断信号,错误标记单元标记各个信号量单元是否发生错误并向中断控制器发送错误中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中信号量单元的状态包括占用和空闲两种状态。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中信号量单元包括名称寄存器和请求寄存器,名称寄存器用于记录信号量名称和信号量ID,请求寄存器用于记录信号量的状态和中断处理内核ID。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中状态寄存器的位宽和信号量单元的数量相同,状态寄存器的每一比特位分别对应一个信号量单元并用于表示信号量单元的状态。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中中断标记单元包括授予中断标记寄存器、授予中断标记清除寄存器,标记设定寄存器的位宽和信号量单元的数量相同,每一比特分别对应一个信号量单元,授予中断标记寄存器用于表示授予中断信号是否发出,授予中断标记清除寄存器用于清除授予中断标记寄存器。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中中断标记单元还包括标记设定寄存器,标记设定寄存器用于设置授予中断标记寄存器并根据对应信号量单元记录的中断处理内核ID向处理内核发出授予中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中错误标记单元包括错误标记寄存器和错误标记清除寄存器,错误标记寄存器用于表示错误中断信号是否发出,错误标记清除寄存器用于清除错误标记寄存器。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中多个处理内核根据执行的任务划分为生产者内核和消费者内核,在生产者内核执行任务时,处理内核通过信号量模块获取信号量后调取用户自定义的生产者程序,以生成供消费者内核使用的数据;在消费者内核执行任务时,通过信号量模块获取信号量后调取用户自定义的消费者程序以读取生产者内核生成的数据。
根据本发明实施方式的多核处理器信号量系统的优点在于:以硬件辅助实现对信号量的进程/线程件同步和互锁,执行效率高,能够有效实现生产者-消费者模型下的多线程控制的同时降低了软件编程的难度,提高了信号量控制的工作效率;不依赖于特定软件和操作系统,兼容性好,灵活度高。
附图说明
通过参照以下附图对本发明非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1示出了根据本发明的一个实施例的多核处理器信号量系统的系统架构图;
图2示出了根据本发明一个实施方式的信号量模块的示意图;
图3示出了根据本发明一个实施方式的多核处理器信号量系统的工作方法的生产者工作方法的流程图;
图4示出了根据本发明一个实施方式的多核处理器信号量系统的工作方法的消费者工作方法的流程图。
具体实施方式
下面结合附图和实施例说明本发明的具体实施方式,通过本说明书记载的内容,本领域技术人员可以清楚完整地了解本发明的技术方案、解决的技术问题以及所产生的技术效果。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外,为了便于描述,附图中仅示出了与本发明相关的部分。
需要说明的是,说明书附图中所绘示的结构、比例、大小等,仅用于配合说明书所记载的内容,以供本领域技术人员了解与阅读,并非用以限定本发明可实施的条件,故不具有技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应落在本发明所揭示的技术内容涵盖的范围内。
所引用的如“第一”、“第二”、 “该”等类似词语并不表示数量限制,可表示单数或复数。本发明所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排它的包含;例如包含了一系列步骤或模块的过程、方法、系统、产品或设备并不是限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备所固有的其它步骤或单元。本发明所涉及的“连接”、“相连”、“耦接”等类似的词语并非仅限定于物理的或者机械的连接,而是还可以包括直接或间接的电气连接。
图1示出了根据本发明的一个实施例的多核处理器信号量系统的系统架构图。如图1所示,多核处理器信号量系统包括n个处理内核1(CORE),n个信号量模块2(SEMM)、总线3和中断控制器4(INTR),其中,n为大于1的正整数,处理单元通过总线3与信号量模块2电连接,每个处理内核1电连接n个信号量模块2;每个处理内核1均能够访问全部信号量模块2,n个处理内核1按照从1到n的顺序编号,n个信号量模块2按照从1到n的顺序编号,与信号量模块2编号相同的处理内核1为该信号量模块2的主处理内核,与信号量模块2编号相同的处理内核1之外的其它处理内核1为该信号量模块2的从处理内核;信号量模块2能够向中断控制器4发送授予中断信号和错误中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中中断控制器4能够接收多个外部中断源的中断请求,进行优先级判断,并负责对外部中断请求的管理,中断控制器4的结构和工作原理在不是不发明要保护的对象,在本发明书中不做详解。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中多个处理内核1根据执行的任务划分为生产者内核和消费者内核,作为生产者的处理内核1通过信号量模块2获取信号量后调用用户自定义的生产者程序,以生成供消费者内核使用的数据;作为消费者的处理内核1通过信号量模块2获取信号量后调用用户自定义的消费者程序以读取生产者内核生成的数据。
图2示出了根据本发明一个实施方式的信号量模块2的示意图。如图2所示,信号量模块2包括多个信号量单元21(SEM),状态寄存器22(SEMSTATUS)、请求单元23(REQNAME)、中断标记单元24(SEMFLAG)和错误标记单元25(SEMERR),每个信号量单元21分别与状态寄存器22、请求单元23、中断标记单元24和错误标记单元25电连接。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中请求单元23接收来自处理内核1的信号量请求并根据信号量名称判断信号量单元中是否已存在该信号量;信号量单元21存储信号量相关信息并对信号量进行处理,其中,对信号量进行处理是指信号量单元21根据来自请求单元23的信号量请求改变信号量单元21的状态(即信号量状态),信号量单元21的状态包括“空闲”和“占用”两种状态;状态寄存器22标记各个信号量单元21的状态,中断标记单元24标记各个信号量单元的中断状态并向中断控制器4发送授予中断信号,错误标记单元25标记各个信号量单元21是否发生错误并向中断控制器发送错误中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中信号量单元21包括名称寄存器211(SEM_NAME)和请求寄存器212(SEM_REQ),名称寄存器211用于记录信号量名称和信号量ID,请求寄存器212用于记录信号量状态和中断处理内核ID。中断处理内核ID为与生产者核心对应的消费者核心的ID,其中,消费者核心调用的用户自定义的消费者程序需要使用生产者核心调用的用户自定义的生产者程序所生成的数据或任务,此时,生产者核心与消费者核心向信号量单元21分别发出的信号量请求具有相同的信号量名称。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中状态寄存器22的位宽和信号量单元21的数量相同,状态寄存器22的每一比特位分别对应一个信号量单元21并用于表示信号量单元21的状态,状态寄存器22的比特位为0时代表该比特位对应的信号量单元21为“空闲”状态,状态寄存器22的比特位为1时代表该比特位对应的信号量单元21为“占用”状态。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中中断标记单元24包括授予中断标记寄存器241、授予中断标记清除寄存器242和标记设定寄存器243,标记设定寄存器243的位宽和信号量单元21的数量相同,每一比特分别对应一个信号量单元21,授予中断标记寄存器241用于表示授予中断信号是否发出,授予中断标记清除寄存器242用于清除授予中断标记寄存器241,标记设定寄存器243用于设置授予中断标记寄存器241并根据对应信号量单元21记录的中断处理内核ID向处理内核1发出授予中断信号。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中错误标记单元25包括错误标记寄存器251和错误标记清除寄存器252,错误标记寄存器251用于表示错误中断信号是否发出,错误标记清除寄存器252用于清除错误标记寄存器251。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,名称寄存器SEM_NAME由两部分组成:SEM_NAME[0:x]和SEM_NAME[x+1:x+8];
SEM_NAME[0:x]用于表示信号量名称;
SEM_NAME[x+1:x+8]用于表示信号量ID;
根据本发明的上述一个实施方式提供的多核处理器信号量系统,请求寄存器SEM_REQ由两部分组成:SEM_REQ[0]和SEM_REQ[1:x],其中SEM_REQ[0]用于记录信号量状态;
SEM_REQ[0] = 0时,表示该信号量处于“空闲”状态;
SEM_REQ[0] = 1时,表示该信号量处于“占用”状态;
SEM_REQ[1:x]=COREID:用来指示中断的处理内核ID。
主处理内核对SEM_REQ进行读操作可以直接获得该信号量权限:如果当前状态为“空闲”,信号量单元21将被分配,信号量单元21会自动使SEM_REQ[0]进行加“1”操作变为“占用”状态,并返回“0x1”,同时SEMSTATUS对应状态位变为“占用”状态;如果当前状态为“占用”则返回当前占用该信号量单元21的处理内核ID;
从处理内核将信号量状态清零的操作(例如:对SEM_REQ[0]进行写“0”操作)不会立刻获得该信号量单元21的权限,而是要等待中断触发后获得权限。当从处理内核获得信号量单元21权限时,将SEM_REQ[0]进行减“1”操作变为“空闲”状态,同时将状态寄存器22的对应状态位设为“空闲”;
直接向SEM_REQ[0]写入“1”的操作将会释放该信号量单元21,将SEMSTATUS对应该信号量单元21的状态位变为“空闲”。
根据本发明的上述一个实施方式提供的多核处理器信号量系统,其中方括号[ ]中的数字表示寄存器的位,例如:[0]表示第0位,[1:x]表示从第1位到第x位,其中x为正整数,包括但不限于8、16、32。
对于有界缓冲区的生产者—消费者问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,将信息放入缓冲区;另一个是消费者,从缓冲区中取出信息(也可以把这个问题一般化为m个生产者和n个消费者问题,但是我们只讨论一个生产者和一个消费者的情况,这样可以简化解决方案)。
图3示出了根据本发明一个实施方式的多核处理器信号量系统的工作方法的生产者工作方法的流程图。如图3所示,多核处理器信号量系统的工作方法根据处理内核1执行的任务划分为生产者工作方法和消费者工作方法,生产者工作方法包括多个步骤:
步骤301:接收生产者内核发出的信号量请求,获取生产者内核的编号m;其中,信号量请求中包含信号量名称、信号量ID,生产者内核的编号和生产者内核的ID等信息;
步骤302:请求单元依次检索信号量模块Sm的全部信号量单元SEM,判断是否存存储了信号量请求的信号量名称的信号量单元SEM_q,若“是”,执行步骤303;若“否”,执行步骤308;其中,q代表信号量单元的编号,生产者内核的编号与信号量模块Sm的编号相同,生产者内核为信号量模块Sm的主处理内核;
步骤303:判断信号量单元SEM_q的信号量状态是否为“空闲”,若“是”,执行步骤304;若“否”,再次执行步骤302;
步骤304:将信号量单元SEM_q的信号量状态设为“占用”,将状态寄存器与信号量单元SEM_q对应的比特设置为“占用”;其中,将请求寄存器中记录的信号量状态设为“占用”的方法可以为对信号量单元SEM_q的请求寄存器SEM_REQ中用于记录信号量状态的SEM_REQ[0]进行加“1”操作;
步骤305:调用用户自定义的生产者程序;生产者程序能够生对应成消费者程序所需的产品、数据、任务或资源;
步骤306:触发中断,将中断标记单元中与信号量单元SEM_q对应的标记位设置为“中断”,根据请求寄存器中记录的中断处理内核ID向处理内核发出授予中断信号;其中,中断标记单元中与信号量单元SEM_q对应的标记位可以为中断标记单元24的授予中断标记寄存器241中与信号量单元SEM_q对应的比特位;
步骤307:释放信号量单元SEM_q,然后处理结束;其中,释放信号量单元SEM_q的方法可以为对信号量单元SEM_q的请求寄存器SEM_REQ中用于记录信号量状态的SEM_REQ[0]进行写“1”操作;
步骤308:查询状态寄存器,查找到状态为“空闲”的信号量单元SEM_q;其中,q代表信号量单元的编号,查询状态寄存器时可以按照从低位至高位依次查询查询状态寄存器的各比特位;
步骤309:判断信号量单元SEM_q的信号量状态是否为“空闲”,若“是”,执行步骤310;若“否”,执行步骤302;
步骤310:将请求寄存器中记录的信号量状态设为“占用”,将状态寄存器与信号量单元SEM_q对应的标记位设置为“占用”,将信号量名称写入信号量单元SEM_q,然后执行步骤305。
图4示出了根据本发明一个实施方式的多核处理器信号量系统的工作方法的消费者工作方法的流程图。如图4所示,消费者工作方法包括多个步骤:
步骤401:接收消费者内核发出的信号量请求,获取与消费者内核对应的生产者内核的编号m;其中,消费者内核的编号与生产者内核的编号不同,消费者内核为信号量模块Sm的从处理内核,信号量请求中包含信号量名称、信号量ID,生产者内核的编号和生产者内核的ID等信息;
步骤402:请求单元依次检索信号量模块Sm的全部信号量单元SEM,判断是否存存储了信号量请求的信号量名称的信号量单元SEM_q,若“是”,执行步骤403;若“否”,执行步骤410;
步骤403:将信号量单元SEM_q的请求寄存器中记录的信号量状态清零,将消费者内核的ID作为中断处理内核ID写入信号量单元SEM_q;其中,将信号量单元SEM_q的请求寄存器中记录的信号量状态清零的方法可以为对信号量单元SEM_q的请求寄存器SEM_REQ中用于记录信号量状态的SEM_REQ[0]进行写“0”操作;
步骤404:等待触发中断;
步骤405:将信号量单元SEM_q的信号量状态设为“空闲”,将状态寄存器与信号量单元SEM_q对应的标记位设置为“空闲”;其中,将标号为q的信号量单元SEM_q的请求寄存器中记录的信号量状态设定为“空闲”的方法可以为对信号量单元SEM_q的请求寄存器SEM_REQ中用于记录信号量状态的SEM_REQ[0]进行减“1”操作;
步骤406:判断中断标记单元的标记设定寄存器中与信号量单元SEM_q对应的标记位是否为“中断”,若“是”,执行步骤407;若“否”,再次执行步骤404;
步骤407:调用用户自定义的消费者程序;消费者程序使用对应生产者程序生成的产品、数据、任务或资源;
步骤408:清除中断标记单元的标记设定寄存器中与信号量单元SEM_q对应的标记位的“中断”标记;
步骤409:释放信号量单元SEM_q,然后处理结束;
步骤410:查询状态寄存器,查找到状态为“空闲”的信号量单元SEM_q;其中,q代表信号量单元的编号,查询状态寄存器时可以按照从低位至高位依次查询查询状态寄存器的各比特位;
步骤411:将信号量单元SEM_q的请求寄存器中记录的信号量状态清零,将信号量名称写入信号量单元SEM_q,将消费者内核的ID作为中断处理内核ID写入信号量单元SEM_q,然后执行步骤404。
根据本发明实施方式的多核处理器信号量系统的优点在于:以硬件辅助实现对信号量的进程/线程件同步和互锁,执行效率高,能够有效实现生产者-消费者模型下的多线程控制的同时降低了软件编程的难度,提高了信号量控制的工作效率;不依赖于特定软件和操作系统,兼容性好,灵活度高。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管已参考本发明的特定实施例描述并说明了本发明,但这些描述和说明并不是用于限制本发明。所属领域的技术人员可清楚地理解,可进行各种改变,且可在实施例内替代等效元件而不脱离如由权利要求限定的本发明的保护范围。归因于制造过程中的变量等等,本发明中的技术再现与实际设备之间可能存在区别。可存在未特定说明的本发明的其它实施例。应将说明书和图示视为说明性的,而非限制性的,可根据本发明的目的和精神做出修改,所有这些修改都在权利要求的保护范围内。虽然已参考按特定次序执行的特定操作描述本文中所公开的方法,但应理解,在不脱离本发明的启示的情况下,可重新组合、细分或排列这些操作以形成等效方法。因此,除非本文中特别指示,否则操作的次序和分组并不限制本发明。

Claims (10)

1.一种多核处理器信号量系统,其特征在于,其包括n个处理内核,n个信号量模块、总线和中断控制器,其中,n为大于1的正整数,处理单元通过总线与各所述信号量模块电连接,每个信号量模块分别与所述中断控制器电连接;每个所述处理内核电连接所述n个信号量模块,n个处理内核按照从1到n的顺序编号,n个信号量模块按照从1到n的顺序编号,与信号量模块编号相同的处理内核为该信号量模块的主处理内核,与信号量模块编号相同的处理内核之外的其它处理内核为该信号量模块的从处理内核;信号量模块能够向中断控制器发送授予中断信号和错误中断信号。
2.根据权利要求1所述的多核处理器信号量系统,其特征在于,信号量模块包括多个信号量单元,状态寄存器、请求单元、中断标记单元和错误标记单元,每个信号量单元分别与状态寄存器、请求单元、中断标记单元和错误标记单元电连接。
3.根据权利要求2所述的多核处理器信号量系统,其特征在于,请求单元接收来自处理内核的信号量请求并根据信号量名称判断信号量单元中是否已存在该信号量,信号量单元存储信号量相关信息并对信号量进行处理,状态寄存器标记各个信号量单元的状态,中断标记单元标记各个信号量单元的中断状态并向中断控制器发送授予中断信号,错误标记单元标记各个信号量单元是否发生错误并向中断控制器发送错误中断信号。
4.根据权利要求3所述的多核处理器信号量系统,其特征在于,信号量单元的状态包括占用和空闲两种状态。
5.根据权利要求4所述的多核处理器信号量系统,其特征在于,信号量单元包括名称寄存器和请求寄存器,名称寄存器用于记录信号量名称和信号量ID,请求寄存器用于记录信号量的状态和中断处理内核ID。
6.根据权利要求4所述的多核处理器信号量系统,其特征在于,状态寄存器的位宽和信号量单元的数量相同,状态寄存器的每一比特位分别对应一个信号量单元并用于表示信号量单元的状态。
7.根据权利要求4所述的多核处理器信号量系统,其特征在于,中断标记单元包括授予中断标记寄存器、授予中断标记清除寄存器,标记设定寄存器的位宽和信号量单元的数量相同,每一比特分别对应一个信号量单元,授予中断标记寄存器用于表示授予中断信号是否发出,授予中断标记清除寄存器用于清除授予中断标记寄存器。
8.根据权利要求7所述的多核处理器信号量系统,其特征在于,中断标记单元还包括标记设定寄存器,标记设定寄存器用于设置授予中断标记寄存器并根据对应信号量单元记录的中断处理内核ID向处理内核发出授予中断信号。
9.根据权利要求4所述的多核处理器信号量系统,其特征在于,错误标记单元包括错误标记寄存器和错误标记清除寄存器,错误标记寄存器用于表示错误中断信号是否发出,错误标记清除寄存器用于清除错误标记寄存器。
10.根据权利要求1-9中任意一项所述的多核处理器信号量系统,其特征在于,多个处理内核根据执行的任务划分为生产者内核和消费者内核,在生产者内核执行任务时,处理内核通过信号量模块获取信号量后调取用户自定义的生产者程序,以生成供消费者内核使用的数据;在消费者内核执行任务时,通过信号量模块获取信号量后调取用户自定义的消费者程序以读取生产者内核生成的数据。
CN202310324655.3A 2023-03-30 2023-03-30 一种多核处理器信号量系统 Active CN116048824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310324655.3A CN116048824B (zh) 2023-03-30 2023-03-30 一种多核处理器信号量系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310324655.3A CN116048824B (zh) 2023-03-30 2023-03-30 一种多核处理器信号量系统

Publications (2)

Publication Number Publication Date
CN116048824A true CN116048824A (zh) 2023-05-02
CN116048824B CN116048824B (zh) 2023-08-18

Family

ID=86125872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310324655.3A Active CN116048824B (zh) 2023-03-30 2023-03-30 一种多核处理器信号量系统

Country Status (1)

Country Link
CN (1) CN116048824B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331720A (zh) * 2023-11-08 2024-01-02 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635006A (zh) * 2008-07-22 2010-01-27 中国科学院计算技术研究所 一种满足SystemC语法的多核处理器的互斥和信号量单元组
US20170315942A1 (en) * 2016-04-28 2017-11-02 Nxp Usa, Inc. Semaphore for multi-core processor
CN109032818A (zh) * 2018-07-27 2018-12-18 北京计算机技术及应用研究所 一种同构系统核间同步与通信的方法
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核系统的设计和核间任务通信的实现方法
CN114281558A (zh) * 2020-09-27 2022-04-05 安徽寒武纪信息科技有限公司 多核处理器、用于多核处理器的方法及相应产品
CN115509986A (zh) * 2022-09-28 2022-12-23 美的集团(上海)有限公司 核间通信方法、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635006A (zh) * 2008-07-22 2010-01-27 中国科学院计算技术研究所 一种满足SystemC语法的多核处理器的互斥和信号量单元组
US20170315942A1 (en) * 2016-04-28 2017-11-02 Nxp Usa, Inc. Semaphore for multi-core processor
CN109032818A (zh) * 2018-07-27 2018-12-18 北京计算机技术及应用研究所 一种同构系统核间同步与通信的方法
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核系统的设计和核间任务通信的实现方法
CN114281558A (zh) * 2020-09-27 2022-04-05 安徽寒武纪信息科技有限公司 多核处理器、用于多核处理器的方法及相应产品
CN115509986A (zh) * 2022-09-28 2022-12-23 美的集团(上海)有限公司 核间通信方法、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘德保等: "硬件信号量在多核处理器核间通信中的应用", 《单片机与嵌入式系统应用》, no. 2015, pages 9 - 11 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331720A (zh) * 2023-11-08 2024-01-02 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备
CN117331720B (zh) * 2023-11-08 2024-02-23 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备

Also Published As

Publication number Publication date
CN116048824B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
US8689237B2 (en) Multi-lane concurrent bag for facilitating inter-thread communication
US7650602B2 (en) Parallel processing computer
US4272819A (en) Inter-subsystem direct transfer system
US20130081060A1 (en) System and Method for Efficient Concurrent Queue Implementation
US20080266302A1 (en) Mechanism for granting controlled access to a shared resource
US20060136640A1 (en) Apparatus and method for hardware semaphore
US20060200609A1 (en) Hardware semaphore intended for a multi-processor system
CN111857993B (zh) 一种内核态调用用户态函数的方法
CN116048824B (zh) 一种多核处理器信号量系统
GB2529074A (en) Graphics processor with non-blocking concurrent architecture
US20070061810A1 (en) Method and system for providing access to a shared resource utilizing selective locking
EP1700213B1 (en) Processing architecture having passive threads and active semaphores
CN112486702B (zh) 基于多核多处理器并行系统的全局消息队列实现方法
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
CN113826081A (zh) 在计算系统中传输报文的方法和计算系统
US10713188B2 (en) Inter-process signaling system and method
US8707306B1 (en) Implementing user-selectable concurrent access protection mechanism in a multi-tasking modeling environment
US5951662A (en) Single latch semaphore register device for multi-processor systems
CN113961364A (zh) 一种大规模锁系统实现方法、装置、存储介质和服务器
US20080263545A1 (en) Signal delivery to a process in a process group
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
WO2001013229A2 (en) System and method for data exchange
US11836547B2 (en) Data transmission device including shared memory having exclusive bank memories for writing and reading
US6892258B1 (en) Hardware semaphores for a multi-processor system within a shared memory architecture

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant