CN112395095A - 一种基于cpoc的进程同步方法 - Google Patents
一种基于cpoc的进程同步方法 Download PDFInfo
- Publication number
- CN112395095A CN112395095A CN202011241557.6A CN202011241557A CN112395095A CN 112395095 A CN112395095 A CN 112395095A CN 202011241557 A CN202011241557 A CN 202011241557A CN 112395095 A CN112395095 A CN 112395095A
- Authority
- CN
- China
- Prior art keywords
- kernel
- cpoc
- server
- type
- instruction
- 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 270
- 230000008569 process Effects 0.000 title claims abstract description 252
- DNORZUSMZSZZKU-UHFFFAOYSA-N ethyl 2-[5-(4-chlorophenyl)pentyl]oxirane-2-carboxylate Chemical compound C=1C=C(Cl)C=CC=1CCCCCC1(C(=O)OCC)CO1 DNORZUSMZSZZKU-UHFFFAOYSA-N 0.000 title description 85
- 238000001514 detection method Methods 0.000 claims 5
- 238000004886 process control Methods 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明基于“一种可实现的处理器基础结构”实现一种方法,该方法实现进程通过对某一变量的值或某硬件部件的状态来完成与其它进程之间形成某种基于判断条件下的同步操作,以及实现进程对于实时编程的实时控制。与此同时,本发明在实现同步操作及实时控制的过程中,不需要进程进入内核的流水线,即不需要将进程实际调度进入内核内部具体执行程序指令,也不需要操作系统或其它进程的干预,即不对操作系统及其它进程增加运行负荷。
Description
技术领域
本发明涉及集成电路及计算机技术领域,尤其指一种基于CPOC的进程同步方法。
背景技术
信息技术改变了科技历史,处理器芯片的发展也在不断地改变着信息技术。但是,在现有背景技术条件下,处理器芯片的发展却并没有带来软件基础技术的革命性发展。
在现有技术背景下,软件所实现的对于一切信息技术处理或对于人文活动的处理都基于“顺序处理”,虽然软件发展至今已超过50年的历史,但是处理器芯片所能提供给软件的技术空间,事实上却如同“亘古不变”这个词所形容的一样。
事实上,在绝大多数的信息技术领域,在现实世界模拟的应用场景中,需要处理器或者说需要软件所完成的是并发处理或者说并行运行,以及具有实时效应的应用处理。在现有的背景技术中(基于现有处理器硬件技术条件下),软件针对现实并发以及实时应用场景只有两个技术发展空间:一是用“顺序处理”的方式模拟并行同步处理以及实时应用场景,另一是在中央控制处理器外,构建专用硬件处理器,这样的专用硬件处理器往往需要多个类型的专用硬件处理器。采用这种多种类专用硬件处理器的硬件结构即为现有背景技术条件下的所谓“异构方案”,“异构方案”能够在一定范围内解决某些专用领域内的并发执行的问题,但并不能解决现有背景技术条件下所存在的进程间同步控制及实时控制的问题。此外,“异构方案”所带来的许多关于硬件资源使用效率,以及对于内存管理的问题十分突出,将大范围地增加系统总线带宽的压力,而对于非专用应用场景,“异构方案”的大部分硬件资源往往处于空闲状态,即基于“异构方案”的背景技术,其硬件利用率并不高,这将带来巨大的成本增加和无效功耗的增加。基于“顺序处理”的方式模拟并行同步处理,以及模拟实时应用场景的现有背景技术,是现有软件技术的理论基础,这一基础告示了现有软件技术的“一切皆逻辑可能”,同时也告示了“一切皆不确定现实可能”。“一切皆逻辑可能”对于任何计算机系统而言,都是必要条件。而“一切皆不确定现实可能”是指“确定现实可能”和“确定现实不可能”都将存在具体的应用中。原因如下:对于进程间同步控制或实时控制而言,每增加一个软件层面所定义的同步控制函数的调用,比如sleep或其它延时函数,都会增加操作系统或其它进程的负荷。因此,在同步控制数量较少的应用场景中,“一切皆不确定现实可能”可以被现有背景技术实现为“确定现实可能”,然而当同步控制数量增加到一定数量时,系统负荷将被直接拖垮,“一切皆不确定现实可能”将在现有背景技术中变为“确定现实不可能”。
在实际软件应用中,实时编程和进程间同步(包括进程间通信)往往是软件技术中的重要部分,而进程间同步相较于实时编程表现为需要处理更多关于某种条件的判断。在现有背景技术条件下,进程间同步对于同步条件的判断只能依赖于“顺序处理”的理论基础,为了获得更高效的的同步效果,在进程同步编程中往往会采用实时编程技术中类似sleep函数及其它延时函数。但是,基于“顺序处理”基础的进程间同步对于同步条件的判断依然需要依赖于进程在内核中的执行来完成。换句话说,在使用类似sleep及延时函数的情况下,为了完成进程间的同步,进程必须不断地进出内核运行对于同步条件的判断。这将意味着进程在完成进程同步的过程中,不断地因进出内核而进行进程在内核中的上下文切换,也需要不断地在内核中执行相关同步条件判断的程序。这意味着进程在进程同步完成之前,进程可能在较长时间段内,在内核中空转。这种空转不仅会因为在内核中频繁执行进程上下文切换而消耗内核硬件资源、消耗系统总线带宽,还会令整个处理器的无效功耗大幅增加,降低处理器的能耗比。除此之外,处理器的这种空转对于处理器功率模式控制模块而言,是属于正常运行状态,亦即处理器功率模式控制模块并不能识别内核所执行的代码是否属于“空转”情况,因此处理器内核及相关硬件依然会处于“高性能”的工作模式下,即内核及相关硬件资源的主频会被设置为所能允许范围内的最高值,这也将大幅增加处理器的无效功耗。
因此,对于计算机技术而言,尤其对于软件技术而言,需要一种可以改变软件编程基础理论的处理器硬件技术,来改变现有背景技术的诸多弊端。
发明内容
本发明基于“一种可实现的处理器内核基础结构”实现一种方法,该方法实现进程通过对某一变量的值或某硬件部件的状态来完成与其它进程之间形成某种基于判断条件下的同步操作,以及实现进程对于实时编程的实时控制。与此同时,本发明在实现同步操作及实时控制的过程中,不需要进程进入内核的流水线,即不需要将进程实际调度进入内核内部具体执行程序指令,也不需要操作系统或其它进程的干预,即不对操作系统及其它进程增加运行负荷。进程在完成与其它进程之间进行同步操作的过程中并不需要完成进程进出内核流水线所必需的进程上下文切换,即不需要因为进程为了完成很简短的仅仅用于判断某一条件是否被满足的功能,而迫使内核硬件需要完成对于进程寄存器状态的恢复,缓存状态的恢复,等一系列占用内核时间的过程,以及占用在这一过程中所需要的内核硬件资源。
本发明的主要技术特点是进程可以根据需要将对于某一或多个条件的判断设置为CPOC,然后进程主动请求从内核中调度出去,重新进入内核外部的“系统公共进程调度队列”,即该进程在不占用内核及内核任何硬件资源的状态下等待同步条件的达成。此后,内核硬件在此试图将该进程调度进入内核执行之前会首先判断所被定义的CPOC是否满足同步条件,即判断进程是否需要再次进入内核执行相关程序以完成满足同步条件后的任务,如果内核硬件判断所定义的CPOC暂时仍然不满足同步条件,那么该进程会被内核硬件再次安排进入内核外部的“系统公共进程调度队列”。对于实时编程而言,同样实现的是关于CPOC的定义和判断来达到进程实时控制的需求,只不过所定义的“同步条件”并不是某一变量,而是处理器内部的硬件部件RTC(Real Time Clock)的计时状态。
本发明技术方案如下:
本方案所涉及的必要硬件功能,必须在内核硬件中实现可命名为但不限制命名为“内核进程伺服器”,实现以下必要功能:
1、实现从内核外部获取需要被调度进入内核的进程相关信息(如图1所示,从“处理器内部总线控制器”所控制的“内核私有进程调度队列”获取需要被调度进入内核的进程相关信息);
2、实现执行当前正在运行的进程所有对于CPOC设置的相关内核指令,并为该进程记录所有与CPOC设置的相关信息;
3、实现将进程调度进入内核流水线运行,包括恢复该进程的所有相关寄存器状态和缓存状态;
4、实现将进程在未进入内核流水线的情况下直接调度出内核(如图1所示,从内核进入“处理器总线控制器”所控制的“系统公共进程调度队列”);
5、实现将从内核流水线调度出的进程调度出内核(如图1所示,从内核进入“处理器总线控制器”所控制的“系统公共进程调度队列”)。
运行状态中的进程,如果需要以处理器内部某个RTC信号为计时时钟而设置超时时间作为CPOC判断条件,该进程使用相应内核指令设置一个“RTC类型CPOC”;
运行状态中的进程,如果需要以处理器内部某硬件模块的状态而设置当该状态满足某一固定常态作为CPOC,该进程使用相应内核指令设置一个“状态类型CPOC”;
运行状态中的进程,如果需要以当前进程所管辖的某一变量中的部分或全部比特的“缩位与”的结果,或者以其它进程所管辖的某一变量中的部分或全部比特的“缩位与”的结果作为CPOC判断条件,该进程使用相应内核指令设置一个“与条件类型CPOC”;
运行状态中的进程,如果需要以当前进程所管辖的某一变量中的部分或全部比特的“缩位或”的结果,或者以其它进程所管辖的某一变量中的部分或全部比特的“缩位或”的结果作为CPOC判断条件,该进程使用相应内核指令设置一个“或条件类型CPOC”。
上述“RTC类型CPOC”、“状态类型CPOC”、“与条件类型CPOC”、“或条件类型CPOC”在“内核进程伺服器”中对于判断从内核外部调度进入内核后是否能够进入流水线运行,皆有一票否决的权利,即只要上述几种类型的CPOC当中某一个不满足进入流水线运行的条件,那么进程将暂时不能进入流水线运行,而被“内核进程伺服器”直接调度出内核(如图1所示,从内核进入“处理器总线控制器”所控制的“系统公共进程调度队列”)。
上述所有类型的CPOC只有在使用了相应内核指令对进程的CPOC功能使能以后才能实现相应CPOC功能,即“内核进程伺服器”为每个进程设置一个相对应的“使能寄存器”,用于控制进程是否执行CPOC功能。默认情况下,“使能寄存器”处于未使能状态。在“使能寄存器”被设置之后(即“使能寄存器”处于使能状态后),上述类型的CPOC如果被相应内核指令设置,就意味着“内核进程伺服器”执行该类型的CPOC的功能。而当“内核进程伺服器”执行某类型CPOC功能时,如果该类型CPOC条件满足进程进入“内核流水线”,那么该类型CPOC会自动变为“未被设置状态”,直到下一次再次被相应内核指令设置(即如果此后该类型CPOC未被再次设置,下一次“内核进程伺服器”不会执行该类型CPOC功能)。默认情况下所有类型的CPOC都处于“未被设置状态”。事实上,等效于每个类型的CPOC拥有一个独立的使能寄存器,默认情况下该独立的使能寄存器处于非使能状态,当该类型CPOC被相应内核指令设置时,意味着同时使能了该寄存器,而当该类型的CPOC在被“内核进程伺服器”检测到满足CPOC条件时,该寄存器自动被去使能,只不过这一等效过程并不需要体现在具体的内核指令中。
运行状态中的进程,在完成对于上述其中之一或全部类型CPOC的设置,以及完成对进程CPOC“使能寄存器”使能之后,进程可以主动请求调度出内核,或者被内核硬件暂时强制调度出内核(因内核时间片或其它原因暂时被强制调度出内核)。当该进程经历过新的一轮进程调度,再次进入内核时,“内核进程伺服器”根据上述对于CPOC的设置进行CPOC条件的判断,以决定进程是进入内核流水线运行,还是再次直接调度出内核,进入如图1所示的“系统公共进程调度队列”。
附图说明
下面将以明确易懂的方式,结合附图说明优先实施方式,对本方案的上述特点、技术特点、优点及其实现方式予以进一步说明。
图1所示,为本发明方案所涉及的“一种可实现的处理器基础结构”的典型概念图,所代表的是一种可以满足本发明需求的硬件结构,但并不代表本方案需要限制为该种硬件结构;
图1所示,举例实现了多个内核的处理器硬件结构;
图1所示,带箭头实线表示进程在处理器内部被调度或执行的路线示意;
图1所示,“处理器内部总线控制”是处理器集成处理器内部所有内核及其它硬件部件在内的硬件控制器;
图1所示,“系统公共进程调度队列”为挂载在“处理器内部总线控制器”上,对于系统内部进程进行调度的,依据优先级或其它规则进行排序的队列。“系统公共进程调度队列”可以是全部以硬件方式实现调度功能,或者以硬件和软件共同实现调度功能的硬件部件,“系统公共进程调度队列”收集来自所有从内核中调度出的进程或由进程所新建的子进程;
图1所示,“内核负荷均衡器”为挂载在“处理器内部总线控制器”上,对于系统内部各个内核的负荷进行均衡的硬件控制器,即将“系统公共进程调度队列”中的进程依据各内核负荷情况,分配给最适合的内核。“内核负荷均衡器”可以是全部以硬件方式实现均衡功能,或者以硬件和软件共同实现均衡功能的硬件部件;
图1所示,“内核私有进程调度队列”表示针对某一具体内核而设置的,依据进程优先级或其它条件进行进程调度的私有队列,即该队列中的进程只会被调度进入如图1所示的特定内核中。“内核私有进程调度队列”可以是全部以硬件方式实现调度功能,或者以硬件和软件共同实现调度功能的硬件部件;
图1所示,“内核进程伺服器”为内核内部模块,其主要完成进程从“内核私有进程调度队列”调度任务进入内核,并完成从“内核流水线”中调度出来的进程重新回到“系统公共进程调度队列”。除此之外,“内核进程伺服器”还主要完成本发明技术所涉及的CPOC的定义,以及其硬件功能的具体实现,即判断处于CPOC同步控制状态下的进程是否需要进入“内核流水线”;
图1所示,“内核流水线”为具体执行程序指令的内核硬件模块,进程只有进入“内核流水线”才会真正执行软件程序的指令。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,并获得其它的实时方式。
为了使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件中,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
实施例1
本发明的一个实施例,如图1所示,本发明提供一种实现在程序不需要进入内核流水线执行程序代码而对基于某种条件判断的程序同步方法,包括步骤:
步骤1、构建硬件控制模块如图1所示“内核进程伺服器”,实现从内核外部获取可以或者需要进入内核运行的进程信息;
步骤2、如图1所示“内核进程伺服器”将“内核流水线”在物理和程序逻辑上隔开,“内核进程伺服器”实现来自“内核流水线”关于CPOC设置的内核指令;
步骤3、“内核进程伺服器”根据内核指令所设置的关于CPOC的设置,实现进入内核但仍未进入“内核流水线”的进程进行CPOC判断,如果判断结果符合所设置的CPOC条件则将该进程调度进入“内核流水线”运行,如果判断结果不符合所设置的CPOC条件则将该进程调度进入如图1所示的“系统公共进程调度队列”;
步骤4、“内核进程伺服器”实现更新被其调度的进程的CPOC状态,并准备从内核外部获取下一个进程的信息,重复步骤1。
实施例2
本发明的一个实施例,在实施例1的基础上,实现对“RTC类型CPOC”进行设置,包括步骤:
步骤1、处于运行状态的进程使用内核指令对当前进程的“RTC类型CPOC”进行设置,该指令以字符“CPOCRTC”但不限定仅以“CPOCRTC”作为指令符。CPOCRTC包含一个或者多个用于描述RTC计数的“RTC计数值”,每个“RTC计数值”表示当前进程针对处理器内部RTC时钟脉冲信号的递减计数器的初始值。每当处理器内部某一RTC时钟脉冲信号有效时,相对应的“RTC计数值”会自动减一,直到“RTC计数值”为0将不再继续递减。对于“RTC类型CPOC”而言,当相应“RTC计数值”为0时表示该“RTC类型CPOC”满足进程进入内核流水线运行不受该“RTC类型CPOC”限制的条件。默认情况下,进程所有“RTC类型CPOC”所对应的“RTC计数值”均为0;
步骤2、“内核进程伺服器”执行“内核流水线”所发出的CPOCRTC指令,并以“内核进程伺服器”所管辖的为进程所设置的寄存器,记录CPOCRTC所设置所有“RTC计数值”。“内核进程伺服器”所管辖的用于记录“RTC计数值”的寄存器即为“内核进程伺服器”作为判断“RTC类型CPOC”条件是否满足的唯一参考对象,正如步骤1所述,这些用于记录“RTC计数值”的寄存器均为递减计数器(该递减计数器在系统复位后的值为0),每次收到一个处理器内部对应的有效的RTC时钟脉冲信号,该寄存器会自动减一,直到该寄存器的值等于0停止递减,并且在没有新的CPOCRTC指令被执行之前一直维持该寄存器的值为0。
实施例3
本发明的一个实施例,在实施例1的基础上,实现对“状态类型CPOC”进行设置,包括步骤:
步骤1、处于运行状态的进程使用内核指令对当前进程的“状态类型CPOC”进行设置,该指令以字符“CPOCSTA”但不限定仅以“CPOCSTA”作为指令符。CPOCSTA包含以下必要参数:“目标位置信息”、“目标状态”。“目标位置信息”是指“处理器内部总线控制器”所连接的可以是但不限定仅仅是的以下信息:硬件设备的位置信息(比如端口号或者设备地址信息)、处理器内部缓存中特定文件的位置信息(比如在缓存中被封装成为FIFO或LIFO的文件的位置信息,即文件所在端口号及文件号)。“目标状态”是指可以被定义为一定比特位宽编码的“目标”可能处于的某一状态集合中的其中一种;
步骤2、“内核进程伺服器”执行“内核流水线”所发出的CPOCSTA指令,并以“内核进程伺服器”所管辖的为进程所设置的寄存器,记录CPOCSTA所设置“目标位置信息”和“目标状态”。“内核进程伺服器”所管辖的用于记录“目标状态”的寄存器即为“内核进程伺服器”作为判断“状态类型CPOC”条件是否满足的唯一参考对象。当“内核进程伺服器”对进程进行“状态类型CPOC”检测时,如果“目标”当前实时状态等于CPOCSTA所设定的“目标状态”,表示该“状态类型CPOC”满足进程进入内核流水线运行不受该“状态类型CPOC”限制的条件。“目标状态”必须可以是一个“默认状态”,在该默认状态下,“内核进程伺服器”不对“目标”进行“状态类型CPOC”的检测。一旦“状态类型CPOC”被检测到“目标”当前实时状态等于CPOCSTA所设置的“目标状态”,该进程的“目标状态”需被硬件自动置为“默认状态”。
实施例4
本发明的一个实施例,在实施例1的基础上,实现对“与条件类型CPOC”进行设置,包括步骤:
步骤1、处于运行状态的进程使用内核指令对当前进程的“与条件类型CPOC”进行设置,该指令以字符“CPOCMAND”但不限定仅以“CPOCMAND”作为指令符。CPOCMAND包含以下必要参数:“变量位置信息”、“变量位掩码”。“变量位置信息”是指处理器内部系统主存或缓存中某变量的位置信息(即变量地址或者其它形式可以对该变量进行寻址的位置信息)。“变量位掩码”是指用于指明“变量”中的哪一部分比特位是用来作为判断条件的参考量,在本实施例中,被用于作为判断条件的参考量,即经过“变量位掩码”过滤后的所有比特位,需要进行“缩位与”的逻辑运算,该运算结果为“与条件类型CPOC”的唯一判断条件;
步骤2、“内核进程伺服器”执行“内核流水线”所发出的CPOCMAND指令,并以“内核进程伺服器”所管辖的为进程所设置的寄存器,记录CPOCMAND所设置“变量位置信息”和“变量位掩码”。“变量位置信息”所指向的变量的值与寄存器所记录的“变量位掩码”进行“位或”运算的结果,即为“内核进程伺服器”作为判断“与条件类型CPOC”条件是否满足的唯一参考对象。当“内核进程伺服器”对进程进行“状态类型CPOC”检测时,如果“变量”当前值与寄存器所记录的“变量位掩码”进行“位或”运算后的结果再进行“缩位与”运算,如果该“缩位与”运算后的结果等于1,表示该“与条件类型CPOC”满足进程进入内核流水线运行不受该“与条件类型CPOC”限制的条件。一旦“内核进程伺服器”检测到进程是否进入流水线运行不受当前“与条件类型CPOC”限制时,用于记录“变量位掩码”的寄存器需被硬件自动置成为每个比特位都等于1,当该寄存器的每个比特位都等于1时,“内核进程伺服器”不会对“与条件类型CPOC”进行检测。
实施例5
本发明的一个实施例,在实施例1的基础上,实现对“或条件类型CPOC”进行设置,包括步骤:
步骤1、处于运行状态的进程使用内核指令对当前进程的“或条件类型CPOC”进行设置,该指令以字符“CPOCMOR”但不限定仅以“CPOCMOR”作为指令符。CPOCMOR包含以下必要参数:“变量位置信息”、“变量位掩码”。“变量位置信息”是指处理器内部系统主存或缓存中某变量的位置信息(即变量地址或者其它形式可以对该变量进行寻址的位置信息)。“变量位掩码”是指用于指明“变量”中的哪一部分比特位是用来作为判断条件的参考量,在本实施例中,被用于作为判断条件的参考量,即经过“变量位掩码”过滤后的所有比特位,需要进行“缩位或”的逻辑运算,该运算结果为“或条件类型CPOC”的唯一判断条件;
步骤2、“内核进程伺服器”执行“内核流水线”所发出的CPOCMOR指令,并以“内核进程伺服器”所管辖的为进程所设置的寄存器,记录CPOCMOR所设置“变量位置信息”和“变量位掩码”。“变量位置信息”所指向的变量的值与寄存器所记录的“变量位掩码”进行“位与”运算的结果,即为“内核进程伺服器”作为判断“或条件类型CPOC”条件是否满足的唯一参考对象。当“内核进程伺服器”对进程进行“状态类型CPOC”检测时,如果“变量”当前值与寄存器所记录的“变量位掩码”进行“位与”运算后的结果再进行“缩位或”运算,如果该“缩位或”运算后的结果等于1,表示该“或条件类型CPOC”满足进程进入内核流水线运行不受该“或条件类型CPOC”限制的条件。一旦“内核进程伺服器”检测到进程是否进入流水线运行不受当前“或条件类型CPOC”限制时,用于记录“变量位掩码”的寄存器需被硬件自动置成为每个比特位都等于0,当该寄存器的每个比特位都等于0时,“内核进程伺服器”不会对“或条件类型CPOC”进行检测。
实施例6
本发明的一个实施例,在实施例1的基础上,实施,在实施例2~5其中0个或者1个或者多个的基础上,对所有被设置的CPOC进行使能,包括步骤:
步骤1、处于运行状态的进程使用内核指令对当前进程的CPOC功能进行使能设置,该指令以字符“CPOCEN”但不限定仅以“CPOCEN”作为指令符。只有当该指令被执行后所有类型的CPOC才被使能,进程进入内核之后,“内核进程伺服器”才会对已被设置过的CPOC进行检测;
步骤2、“内核进程伺服器”执行“内核流水线”所发出的CPOCEN指令,并以“内核进程伺服器”所管辖的为进程所设置的寄存器,记录CPOCEN所设置的使能信息。
应该说明的是,上述实施例均可根据需要自由组合。以上所述仅适本发明的优选实施方式,应该指出,对于本技术领域的普通技术人员来说,在不脱离发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种基于CPOC的进程同步方法,其特征在于,包括步骤:
在内核内部的“内核流水线”与内核外部之间构建硬件模块,可命名为但不限制命名为“内核进程伺服器”;
通过“内核进程伺服器”完成进程从内核外部进入内核的调度;
通过“内核进程伺服器”执行处于运行状态的进程关于CPOC设置指令,并完成相关寄存器的设置;
通过“内核进程伺服器”完成根据已有的与进程相关的CPOC设置,控制相关进程或者进入内核流水线运行,或者进入内核外部的“系统公共进程调度队列”。
2.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,完成处于运行状态的进程对于“RTC类型CPOC”的设置,具体包括:
运行状态中的进程使用CPOCRTC指令对当前进程的“RTC类型CPOC”进行设置;
“内核进程伺服器”执行“内核流水线”所发出的CPOCRTC指令,并以“内核进程伺服器”所管辖的相关于当前进程的寄存器,记录指令所设置的所有必要信息。
3.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,完成处于运行状态的进程对于“状态类型CPOC”的设置,具体包括:
运行状态中的进程使用CPOCSTA指令对当前进程的“状态类型CPOC”进行设置;
“内核进程伺服器”执行“内核流水线”所发出的CPOCSTA指令,并以“内核进程伺服器”所管辖的相关于当前进程的寄存器,记录指令所设置的所有必要信息。
4.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,完成处于运行状态的进程对于“与条件类型CPOC”的设置,具体包括:
运行状态中的进程使用CPOCMAND指令对当前进程的“与条件类型CPOC”进行设置;
“内核进程伺服器”执行“内核流水线”所发出的CPOCMAND指令,并以“内核进程伺服器”所管辖的相关于当前进程的寄存器,记录指令所设置的所有必要信息。
5.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,完成处于运行状态的进程对于“或条件类型CPOC”的设置,具体包括:
运行状态中的进程使用CPOCMOR指令对当前进程的“与条件类型CPOC”进行设置;
“内核进程伺服器”执行“内核流水线”所发出的CPOCMOR指令,并以“内核进程伺服器”所管辖的相关于当前进程的寄存器,记录指令所设置的所有必要信息。
6.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,根据权利要求2~5其中的0个或者1个或者多个,完成对CPOC功能的使能,具体包括:
“内核流水线”中运行状态的进程使用CPOCEN指令对上述权利要求2~5中的0个或者1个或者多个,进行使能设置;
“内核进程伺服器”执行“内核流水线”所发出的CPOCEN指令,并以“内核进程伺服器”所管辖的相关于当前进程的寄存器,记录CPOC功能已被使能的信息。
7.根据权利要求1所述的一种基于CPOC的进程同步方法,其特征在于,根据权利要求6,和根据权利要求1~5其中的0个或者1个或者多个,依据与进程所相关的CPOC设置,完成相关的进程同步控制,具体包括:
“内核进程伺服器”从内核外部调度进程进入内核;
“内核进程伺服器”检测进程的CPOC功能是否被使能,如果未被使能,将该进程直接调度进入“内核流水线”运行;
如果进程的CPOC功能被使能,“内核进程伺服器”不分先后次序地分别进行针对于“RTC类型CPOC”的检测、“状态类型CPOC”的检测、“与条件类型CPOC”的检测、“或条件类型CPOC”的检测;
检测“RTC类型CPOC”所有的“RTC计数值”是否为0,如果存在某一个“RTC计数值”不为0,则“内核进程伺服器”不再进行其它类型的CPOC检测,而将进程直接调度进入内核外部的“系统公共进程调度队列”;
检测“状态类型CPOC”,查看相关寄存器所记录的“目标状态”是否与相关目标的当前状态不同,如果不同,则“内核进程伺服器”不再进行其它类型的CPOC检测,而将进程直接调度进入内核外部的“系统公共进程调度队列”;
检测“与条件类型CPOC”,查看被设置的“与条件类型CPOC”的变量的值在经过相关运算后的结果是否等于某一固定值,如果该结果不等于该固定值,则“内核进程伺服器”不再进行其它类型的CPOC检测,而将进程直接调度进入内核外部的“系统公共进程调度队列”;
检测“或条件类型CPOC”,查看被设置的“或条件类型CPOC”的变量的值在经过相关运算后的结果是否等于某一固定值,如果该结果不等于该固定值,则“内核进程伺服器”不再进行其它类型的CPOC检测,而将进程直接调度进入内核外部的“系统公共进程调度队列”;
“内核进程伺服器”完成所有类型的CPOC检测后,如果进程不需要被调度进入内核外部的“系统公共进程调度队列”,则“内核进程伺服器”将CPOC功能去使能(即将相关寄存器复位),然后将进程调度进入“内核流水线”运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241557.6A CN112395095A (zh) | 2020-11-09 | 2020-11-09 | 一种基于cpoc的进程同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241557.6A CN112395095A (zh) | 2020-11-09 | 2020-11-09 | 一种基于cpoc的进程同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112395095A true CN112395095A (zh) | 2021-02-23 |
Family
ID=74599172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011241557.6A Pending CN112395095A (zh) | 2020-11-09 | 2020-11-09 | 一种基于cpoc的进程同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395095A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1486900A (en) * | 1973-11-30 | 1977-09-28 | Cii Honeywell Bull | Data processing system |
US4084228A (en) * | 1973-11-30 | 1978-04-11 | Compagnie Honeywell Bull | Process management structures and hardware/firmware control |
US5448732A (en) * | 1989-10-26 | 1995-09-05 | International Business Machines Corporation | Multiprocessor system and process synchronization method therefor |
US20020065116A1 (en) * | 2000-07-24 | 2002-05-30 | Song Chen | Distributed micro instruction set processor architecture for high-efficiency signal processing |
US20060117316A1 (en) * | 2004-11-24 | 2006-06-01 | Cismas Sorin C | Hardware multithreading systems and methods |
CN1842769A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 用于在多线程微处理器中对并行指令流进行初始化的指令 |
US20070157199A1 (en) * | 2005-12-29 | 2007-07-05 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
KR20090119032A (ko) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | 멀티 프로세서 시스템 |
CN101876918A (zh) * | 2009-11-27 | 2010-11-03 | 北京航空航天大学 | 虚拟机客户操作系统同步任务感知方法 |
CN101950282A (zh) * | 2010-08-30 | 2011-01-19 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
CN103593325A (zh) * | 2012-08-17 | 2014-02-19 | 任治全 | 一种硬件多线程处理器设计 |
US20140082630A1 (en) * | 2011-12-30 | 2014-03-20 | Boris Ginzburg | Providing an asymmetric multicore processor system transparently to an operating system |
US20180276046A1 (en) * | 2017-03-21 | 2018-09-27 | Arm Limited | Hardware thread scheduling |
CN109933441A (zh) * | 2019-02-28 | 2019-06-25 | 上海交通大学 | 微内核进程间通讯方法和系统 |
US10437637B1 (en) * | 2015-05-26 | 2019-10-08 | Thin CI, Inc. | Configurable scheduler for graph processing on multi-processor computing systems |
-
2020
- 2020-11-09 CN CN202011241557.6A patent/CN112395095A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1486900A (en) * | 1973-11-30 | 1977-09-28 | Cii Honeywell Bull | Data processing system |
US4084228A (en) * | 1973-11-30 | 1978-04-11 | Compagnie Honeywell Bull | Process management structures and hardware/firmware control |
US5448732A (en) * | 1989-10-26 | 1995-09-05 | International Business Machines Corporation | Multiprocessor system and process synchronization method therefor |
US20020065116A1 (en) * | 2000-07-24 | 2002-05-30 | Song Chen | Distributed micro instruction set processor architecture for high-efficiency signal processing |
CN1842769A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 用于在多线程微处理器中对并行指令流进行初始化的指令 |
US20060117316A1 (en) * | 2004-11-24 | 2006-06-01 | Cismas Sorin C | Hardware multithreading systems and methods |
US20070157199A1 (en) * | 2005-12-29 | 2007-07-05 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
KR20090119032A (ko) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | 멀티 프로세서 시스템 |
CN101876918A (zh) * | 2009-11-27 | 2010-11-03 | 北京航空航天大学 | 虚拟机客户操作系统同步任务感知方法 |
CN101950282A (zh) * | 2010-08-30 | 2011-01-19 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
US20140082630A1 (en) * | 2011-12-30 | 2014-03-20 | Boris Ginzburg | Providing an asymmetric multicore processor system transparently to an operating system |
CN103593325A (zh) * | 2012-08-17 | 2014-02-19 | 任治全 | 一种硬件多线程处理器设计 |
US10437637B1 (en) * | 2015-05-26 | 2019-10-08 | Thin CI, Inc. | Configurable scheduler for graph processing on multi-processor computing systems |
US20180276046A1 (en) * | 2017-03-21 | 2018-09-27 | Arm Limited | Hardware thread scheduling |
CN109933441A (zh) * | 2019-02-28 | 2019-06-25 | 上海交通大学 | 微内核进程间通讯方法和系统 |
Non-Patent Citations (5)
Title |
---|
VASILE GHEORGHITA GAITAN 等: "CPU Architecture Based on a Hardware Scheduler and Independent Pipeline Registers", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》, vol. 23, no. 9, pages 1661 - 1674, XP011667152, DOI: 10.1109/TVLSI.2014.2346542 * |
YI TANG 等: "A Hardware Scheduler Based on Task Queues for FPGA-Based Embedded Real-Time Systems", 《IEEE TRANSACTIONS ON COMPUTERS》, vol. 64, no. 5, pages 1254 - 1267, XP011577363, DOI: 10.1109/TC.2014.2315637 * |
尹震宇 等: "一种嵌入式硬件多线程处理器的研究", 《东北大学学报(自然科学版)》, vol. 27, no. 9, pages 968 - 971 * |
杨朋霖 等: "物联网环境下嵌入式操作系统的安全性设计", 《微电子学与计算机》, vol. 35, no. 11, pages 115 - 119 * |
陈书明 等: "一种面向多核DSP的小容量紧耦合快速共享数据池", 《计算机学报》, vol. 31, no. 10, pages 1737 - 1744 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11675598B2 (en) | Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue | |
US11675734B2 (en) | Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11573796B2 (en) | Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11567766B2 (en) | Control registers to store thread identifiers for threaded loop execution in a self-scheduling reconfigurable computing fabric | |
US11531543B2 (en) | Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11635959B2 (en) | Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric | |
US7376952B2 (en) | Optimizing critical section microblocks by controlling thread execution | |
US5991790A (en) | Generation and delivery of signals in a two-level, multithreaded system | |
US11586571B2 (en) | Multi-threaded, self-scheduling reconfigurable computing fabric | |
JP2003523561A (ja) | 組込み型プロセッサにおいてゼロタイムコンテクストスイッチを用いて命令レベルをマルチスレッド化するシステムおよび方法 | |
US8065681B2 (en) | Generic shared memory barrier | |
JP2009025939A (ja) | タスク制御方法及び半導体集積回路 | |
US20110173629A1 (en) | Thread Synchronization | |
WO2024001137A1 (zh) | 一种多核处理系统及其任务调度方法、芯片、存储介质 | |
US20060015876A1 (en) | Light weight context switching technique | |
WO2005099334A2 (en) | Event handling mechanism | |
CN118295778A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN112395095A (zh) | 一种基于cpoc的进程同步方法 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN113127162B (zh) | 自动化任务执行方法、装置、电子设备及计算机存储介质 | |
US20110231637A1 (en) | Central processing unit and method for workload dependent optimization thereof | |
US20080282072A1 (en) | Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table | |
JPH11306038A (ja) | 並列演算処理装置およびその方法 | |
CN114579483B (zh) | 一种基于软件实现外设的sdp芯片及方法 | |
WO2022104989A1 (zh) | 触发方法 |
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 |