CN112395066A - 一种流水线时分复用和空分复用的方法 - Google Patents
一种流水线时分复用和空分复用的方法 Download PDFInfo
- Publication number
- CN112395066A CN112395066A CN202011409313.4A CN202011409313A CN112395066A CN 112395066 A CN112395066 A CN 112395066A CN 202011409313 A CN202011409313 A CN 202011409313A CN 112395066 A CN112395066 A CN 112395066A
- Authority
- CN
- China
- Prior art keywords
- thread
- instruction
- prc
- division multiplexing
- kernel
- 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 68
- 230000008569 process Effects 0.000 claims abstract description 57
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 14
- 239000000243 solution Substances 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 208000034177 Self-improving collodion baby Diseases 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 208000003665 self-healing collodion baby Diseases 0.000 description 2
- 101710187339 Neuronal growth regulator 1 Proteins 0.000 description 1
- 239000002585 base Substances 0.000 description 1
- 239000003637 basic solution Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004904 shortening 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
一种流水线时分复用和空分复用的方法。对于软件而言,在逻辑上,线程是两段或者更多段并行运行的程序。从用户的角度看,用户希望软件的这一功能被最为朴实地实现,或最为直接、高效地实现。然而,事实上,在现有的处理器技术中,软件关于“线程”的并行特性并非被直接高效地实现,而是依赖于操作系统的调度。本发明技术实现在内核中以多于2条,甚至更多条流水线的方案,在脱离操作系统的情况下,进程独立完成线程的调度,以及对多条流水线在时间以及空间(流水线硬件资源)上的调度使用,从而达到更直接、更高效的并行效果。
Description
技术领域
本发明涉及集成电路及计算机领域,尤其指一种处理器内核流水线资源时分复用和空分复用的实现方法。
背景技术
对于处理器而言,硬件所做的一切努力最终都将被集中到内核中体现,而内核的功能又最终体现在内核流水线的执行功能上。所以,无论硬件实现流水线是以简易的电路结构实现,或者是以超长的电路结构实现,对于流水线资源的控制,事实上在较大程度上决定了内核性能的优劣,甚至是整个处理器系统性能的优劣。
在排除流水线具体实现的电路结构(即简易流水线电路结构或者超长流水线结构)的因素之外,对于流水线资源的控制,主要体现在,线程在内核中如何使用流水线硬件资源,或者说内核指令集架构将以什么样的方法令线程在流水线资源上运行。
需要首先叙述详尽的是,对于软件而言,存在的关于程序的三个概念:“进程”、“线程”、和“函数”。任何软件功能对于“需求”的实现都是基于逻辑上的实现,而非真实的物理上的实现,这就是“函数”。“函数”是软件的基本形态(即“函数”组成了“进程”或“线程”),是软件功能实现“需求”的过程。因此“函数”所能达到的,且仅需达到的要求是逻辑正确,而非物理正确,故而“函数”并不要求其所辖指令具有并行执行的特性。但是,对于“进程”和“线程”的需求,是对于软件功能的,在真实的物理上的需求,即需要达到的是同时具备逻辑正确和物理正确。所谓物理正确,则是指在时序上,“进程”之间或者“线程”之间,其所辖指令被要求具有并行执行的特性。在任何处理器技术条件下,“进程”和“线程”的物理正确性都只能是相对的,即达到用户需求的物理正确性,而非绝对的客观物理正确性(否则,软件功能的所有需求都只能被FPGA或者ASIC所实现)。所以,在所有处理器技术中,软件功能的物理正确性,事实上是表征该型处理器技术性能的一项关键数据,即“进程”和“线程”在被该型处理器技术实现的过程中,其所实现的相对物理正确性离绝对物理正确性的距离(如果不以FPGA或ASIC去实现用户“需求”的功能,所有处理器技术所能做的是,尽可能缩短这一距离,而非消除这一距离)。“进程”与“线程”的区别体现在两个方面:“继承/隶属”和“代码/数据区域”。在“继承/隶属”方面,“线程”隶属于“进程”,“进程”可以、并且需要存在“父进程”与“子进程”的继承关系,而“线程”不需要存在“父线程”与“子线程”的继承关系(因为“父进程”与“子进程”的隶属关系在理论上已经覆盖了“父”与“子”的继承关系)。在“代码/数据区域”方面,“进程”与“进程”(包括“父进程”与“子进程”)之间所能访问的代码/数据区域彼此维持独立,“线程”与“线程”之间所能访问的代码/数据区域彼此维持独立,但是“线程”所能访问的代码/数据隶属于“进程”所辖的代码/数据范围。
在现有背景技术条件下,在多核处理器系统中,一个内核在某一时刻可以运行一个进程中一个或多个线程,但进程或者线程进入内核都需要通过操作系统的调度。然而,对于一个进程而言,线程的数量往往大于内核硬件所拥有的流水线硬件资源数量(即可独立执行程序的流水线的数量),此时,为了达到软件的逻辑正确,操作系统需要完成对于进程所辖线程之间的复杂的调度,从而导致操作系统的较大负荷,以及由于频繁上下文切换所导致的对于整个硬件系统的较大负荷。所以,在现有技术背景条件下,很难看到在一个内核中拥有多于2条流水线硬件资源的内核电路结构。这并不是限于流水线硬件实现技术,而是限于计算机架构的理论基础,以及对于流水线硬件资源控制问题所导致的,即便在内核中实现更多数量的流水线硬件资源也无法提高多线程并行的效率。
本发明技术方案实现进程在脱离操作系统的情况下,独立完成对线程的调度,以及对流水线硬件资源的控制,从而在内核中可以以实现更多数量的流水线硬件资源,来达到获得同比例的关于线程并行运行的效率提升。
发明内容
在本发明技术方案中,在处理器内部的单个内核中,可以实现数量远远大于2的流水线硬件资源,但并不需要确定固定数量的流水线硬件资源,即对于使用本发明技术方案的软件环境在编程的时候,并不需要获知单个内核所拥有的流水线硬件资源的数量。
在内核中,每条流水线硬件资源均可以单独执行程序代码,并对内核中的耦合缓存独立进行访问。后文将每条单独的流水线资源称之为“流水线”,简称为PL,即Pipeline的缩写。每条PL都具有唯一的“流水线索引号”,后文将“流水线索引号”简称为PLI,即Pipeline Index的缩写。PLI为0的PL,简写为PL0,PLI为1的PL,简写为PL1,以此例推。对于任何一条PL,其都具有两个状态,即“空闲状态”和“运行状态”,后文将处于“空闲状态”的流水线简写为PLoff,处于“运行状态”的流水线简写为PLon。
在内核硬件结构中,除所有PL之外,还实现另外一个硬件模块,该模块功能实现对所有PL的管理,后文称之为“流水线资源中心”,简写为PRC,即Pipeline Resource Center的缩写。PRC负责管理所有PL,在进程运行的过程中,当需要使用PL时,由PRC提供可供使用的PL的PLI。
在本发明技术方案中,线程的建立并不是在程序设计阶段通过定义来确定某一段程序为线程,并最终由操作系统来完成线程的建立以及调度,本发明技术方案中直接通过执行内核指令在内核硬件中创建线程。因此,在本发明技术方案中,进程独立完成线程的创建及管理。
单一内核中的PL中,某一固定PLI的PL为默认PLon,即默认执行进程入口程序的PL,本文将该固定PLI的PL设置为PL0,但并不限制该固定PLI的PL必须设置为PL0,也可以被设置为其它PLI的PL。
所以,对于进程而言,进程的主程序事实上只会在PL0上运行。如果进程下辖有其它线程,那么事实上可以认为在PL0上运行的主程序为进程的默认的主要线程,后文将线程简称为TD,即Thread的缩写,而将该“主要线程”简称为TD0,其它线程依据被创建的顺序依次简称为TD1、TD2,以此例推。
综上所述,对于进程而言,从其主线程TD0开始,直至其所创建的最后一个线程TDn,这些线程在内核中的运行过程即为对内核内部所有PL的使用过程。当内核中的所有PL足够容纳所有的TD,那么每个TD将会被分配一条PL与之对应,本文将这种为TD分配对应PL的应用,称之为PL的“空分复用”。而当内核中的所有PL不足以容纳所有的TD,那么就意味着必须存在多个TD共用一条PL,本文将这种让多个TD共用一条PL的应用,称之为PL的“时分复用”。
在内核中,PL被“空分复用”或是被“时分复用”,对于软件而言,均为完全透明的使用选项,即软件并不需要关心PL被使用的具体方式,而只需要关心线程的逻辑正确性。在进程的运行过程中,只有TD0具有使用内核相关指令创建线程的权限。当TD0执行创建新线程的相关内核指令时,只有被PRC所提供的PLI所选中的PL才会响应由TD0所发出的相关指令,即按照指令要求开始新的线程的执行。而当PRC中并没有可用PL时(即所有PL都处于PLon状态),PRC会记录由TD0所发出的新建新线程的指令需求,与此同时PRC会择取尚未进入“时分复用”模式的PL,向其发送“时分复用”的信号,并将所记录的由TD0所发出的“新建线程的指令信息”和“时分复用相关时长信息”传递至所择取的PL,随即该被择取的PL进入“时分复用”模式。后文将上述的“新建线程的指令信息”简称为ITCI,即Information of ThreadCreating Instruction,将上述的“时分复用相关时长信息”简写为TTDM,即Timeout ofTime Division Multiplexing的缩写。
刚收到PRC所发送的“时分复用”信号,进入“时分复用”模式的PL并不会立即将当前TD切换到由PRC所传递的ITCI所指的TD,而是从收到“时分复用”信号这一时刻开始进行“倒计时”。该“倒计时”的时长即为PRC所传递的TTDM,当该“倒计时”结束时,PLon会自动将当前TD轮换为ITCI所指的TD,与此同时PL结束“时分复用”模式而回到“空分复用”模式,与此同时将“当前线程状态信息”交由PRC记录,后文将“当前线程状态信息”简称为SICT,即Status Information of Current Thread的缩写(PRC会将所记录的SICT传递给其它PL,令该PL进入“时分复用”模式,并在TTDM“倒计时”结束的时候轮换至SICT所指的TD)。
TTDM是由PRC所生成的,并向PLon提供。但是,TTDM并不是固定值,而是根据TD0通过内核相关指令设定的“分时复用周期”而生成的,后文将“分时复用周期”简称为PTDM,即Period of Time Division Multiplexing的缩写,TD0所设置的PTDM会被PRC所记录。令内核PL的数量为N,当前内核中TD的总数为M,PRC将以以下公式决定TTDM的值:
综上所述,本发明技术方案在实现进程下辖多线程的过程中,对于PL的使用优先采用“空分复用”,在PL数量不足的情况下,本发明技术方案将实现自适应地将对PL的使用模式转换为“时分复用”的模式,并对每个TD所应获得的PL资源占比做均衡规划。且在PRC完成“时分复用”的管理及控制当中,如果有TD及时完成任务后,PRC可以自适应地对“时分复用”的规划做动态调整,当PL的数量恢复到足以容纳所有TD时,PRC会自动令部分或整个内核的流水线资源恢复到“空分复用”的模式。因此,本发明技术方案在完全脱离操作系统的干预下,实现了硬件电路资源拓展与性能提升的同比例增长。具体的,本发明方案通过以下内核指令完成上述本发明技术方案的关于软件及硬件的具体实现,包括指令如下:
1、“新建线程”指令,该指令以字符“THREAD”作为指令符,但不限制仅以“THREAD”作为指令符号。THREAD指令只能由进程中的TD0执行,用于新建隶属于当前进程的新线程。内核硬件在执行THREAD指令时,在PRC提供了PLoff的PLI的前提下,PLI所指定的PLoff会获取THREAD的指令信息,并依据指令信息开始执行新的线程。与此同时,PRC并不会记录THREAD指令以及该指令的相关信息,但PRC会更新自身所维护的对于PL资源使用状态的信息,以提供下一个THREAD指令被TD0执行时的相关参考信息。THREAD指令包含以下必要参数:
参数1、“线程号”,所有由TD0所新建的线程会被分配一个唯一的“线程号”,以作为该线程在当前进程中的唯一识别符号;
参数2、“线程代码/数据地址信息”,即所新建线程的代码/数据所在的位置信息。
2、“终止线程”指令,该指令以字符“KILL”作为指令符,但不限制仅以“KILL”作为指令符。KILL指令只能由进程中的TD0执行,用于强制关闭隶属于当前进程的线程(但是,TD0不能强制关闭自己)。当内核硬件执行KILL指令时,如果KILL指令参数所指的线程正在某PL中运行,该PL会即刻转入PLoff状态,即该PL资源被释放,与此同时PRC会更新其自身所维护的对于PL资源使用状态的信息,以提供下一个THREAD指令被TD0执行时的相关参考信息。当内核硬件执行KILL指令时,如果KILL指令参数所指的线程并不在PL中执行(在本指令的描述中,以下将KILL指令参数所指的线程简称为“目标线程”),即此时PRC在执行“时分复用”模式的PL资源管理,“目标线程”的相关信息由PRC保存或管理。此时PRC会执行KILL指令的需求,直接将其所保存或管理的“目标线程”的相关信息删除。KILL 指令包好以下必要参数:
参数1、“线程号”,即由TD0在新建“目标线程”时所分配的唯一“线程号”。
3、“线程退出”指令,该指令以字符“QUIT”作为指令符,但不限制仅以“QUIT”作为指令符。QUIT指令由包括TD0在内的任意线程执行,表示线程完成任务,退出线程在PL中的运行,并从此释放对PL资源的占用。如果当前线程为TD0,那么意味着整个进程退出运行(释放进程所占所有硬件资源)。如果当前线程为非TD0,那么仅表示当前线程退出运行(仅释放与当前线程相关的PL,及其它硬件资源)。内核硬件在执行QUIT指令时,当前线程所在PL会即刻转入PLoff状态,即该PL资源被释放,与此同时PRC会更新自身所维护的对于PL资源使用状态的信息,以提供下一个THREAD指令被TD0执行时的相关参考信息。
4、“线程模式设置”指令,该指令以字符“PMT”作为指令符,但不限制仅以“PMT”作为指令符。PMT指令只能由TD0执行,该指令将令内核的所有PL进入“线程模式”,即每条PL运行一个或多个TD,但是任意两条PL不同属于一个TD,或者说一个TD不能同时占用一条或者多条PL。PMT指令同时还将设置PRC用于缓存其所维护的相关数据的内存/缓存位置信息。PMT指令包括以下必要参数:
参数1、“PRC缓存信息”,即PRC用于缓存其所维护的相关数据的内存/缓存的基地址信息,PRC所需缓存的信息包括上述的ITCI、SICI、TTDM、PTDM、以及其它与PRC工作状态以及PL工作状态的信息。
5、“时分周期设置”执行,该指令以字符“PMD”作为指令符,当不限制仅以“PMD”作为你指令符。PMD指令使能由TD0执行,该指令设置PTDM。当内核硬件执行PMD指令时,PRC会记录指令参数所提供的信息,保存到PTDM所在的内存/缓存中。PTDM指令包含以下必要参数:
参数1、“时分周期”,即PTDM的具体值。
附图说明
图1所示,为本发明技术方案的一种可能的硬件示意框图,图示为基础方案示意图,并不表示本发明技术方案需要固定为图示结构。图中示例了具有4条PL的内核硬件的简易结构,用于说明本发明技术方案所涉及的硬件之间的物理关联关系,在内核硬件的实际实现中,还应存在其它图中未绘示的模块。图中所示PRC为前文所述PRC模块,PL0至PL3均为为前文所述的流水线硬件资源;
图1所示,“代码耦合缓存”及“数据耦合缓存”分别为与PL存在物理连接的用于缓存代码和数据的缓存模块;
图1所示,线A所示意的是前文所述仅有TD0具有执行权限的相关指令的传输方向和路径。由于TD所在PL的位置由PRC决定,所以理论上,TD0所在的PL位置并非需要固定为PL0,但是在实际硬件实现中,TD0固定只在某一个PL中运行,并不影响本发明技术方案所能达到的硬件的性能,但却可以大大减少硬件实现的代价。如图1所示,将TD0固定在PL0中运行,则线A,只需要以1对多的方式构成物理上的互连,而并不需要构建多对多的物理上的互连。因此,本文所示例的实施例中,TD0发出的相关内核指令,即为PL0所发出的指令,如图1中的线A所示;
图1所示,线B所示意的是PRC所提供的对于所有PL进行控制或管理的信号,包括上文所述的PLoff的PLI、ITCI、TTDM、SICI、以及其它与硬件电路实现相关的信息的传输方向和路径;
图1所示,线C所示意的是PL提供给PRC的关于PL所处工作状态的信息;
图1所示,线D和线E所示意的分别是PL对于代码和数据的访问路径,以及代码和数据的被传输方向。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,并获得其它的实时方式。
为了使图面简洁,各图中只示意性地表示了与本发明相关的部分,它们不代表其作为产品的实际结构或流程。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
实施例1
本发明的一个实施例,进程初始化状态下,被载入内核,实现进入“线程模式”,包括步骤:
1、初始状态进程载入内核,PRC复位,所有PL复位。初始状态下进程默认为非“线程模式”,即复位后的PRC工作在非“线程模式”状态,进程载入内核默认进入PL0,进程开始运行初始化程序;
2、进程执行PMT指令,进入“线程模式”。PRC执行PMT指令,PRC进入“线程模式”工作状态。此时PL0默认为“空分复用模式”,PL1至PL3为PLoff,如图1所示,线B体现信息为选中PL1为执行下一THREAD指令的PL;
3、TD0执行PMD指令,设置PTDM。PRC执行PMD指令。
实施例2
本发明的一个实施例,在实施例1的基础上,TD0创建一个线程,包括步骤:
1、TD0执行THREAD指令;
2、PL1执行THREAD指令,开始运行THREAD指令信息所指定的线程TD1,PL1状态为PLon,且工作模式为“空分复用模式”;
3、PRC响应THREAD指令,如图1所示,线B体现信息为选中PL2为执行下一THREAD指令的PL。与此同时,PRC更改对于线程数量的统计值,以及各PL的状态及工作模式。
实施例3
本发明的一个实施例,在实施例2的基础上,TD0创建一个线程,包括步骤:
1、TD0执行THREAD指令;
2、PL2执行THREAD指令,开始运行THREAD指令信息所指定的线程TD2,PL2状态为PLon,且工作模式为“空分复用模式”;
3、PRC响应THREAD指令,如图1所示,线B体现信息为选中PL3为执行下一THREAD指令的PL。与此同时,PRC更改对于线程数量的统计值,以及各PL的状态及工作模式。
实施例4
本发明的一个实施例,在实施例3的基础上,TD0创建一个线程,包括步骤:
1、TD0执行THREAD指令;
2、PL3执行THREAD指令,开始运行THREAD指令信息所指定的线程TD3,PL3状态为PLon,且工作模式为“空分复用模式”;
3、PRC响应THREAD指令,如图1所示,线B体现信息为没有可用PLoff,并体现PL0准备进入“时分复用模式”,准备接收下一个THREAD指令信息,并体现针对下一个THREAD指令的TTDM的值。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
实施例5
本发明的一个实施例,在实施例4的基础上,TD0创建一个线程,包括步骤:
1、TD0执行THREAD指令;
2、PL0接收THREAD指令信息,但并不立刻执行该指令。与此同时PL0进入“时分复用模式”,记录由PRC通过如图1所示线B体现的TTDM的值,并开始“倒计时”;
3、PL0“倒计时”结束,PL0进行“线程轮换”,即将当前TD0轮换至THREAD指令信息所指定的TD4。PL0将当前TD0的状态信息转入“时分复用”等待线程,而将TD4转为当前运行线程,即PL0开始运行TD4,PL0重新开始“倒计时”;
4、PRC响应THREAD指令,如图1所示,线B体现信息为没有可用PLoff,并体现PL1准备进入“时分复用模式”,准备接收下一个THREAD指令信息,并体现针对下一个THREAD指令的TTDM的值。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
实施例6
本发明的一个实施例,在实施例5的基础上,TD0重新轮换成为运行线程,并创建一个线程,包括步骤:
1、PL0“倒计时”结束,PL0进行“线程轮换”,即将当前TD4轮换至TD0。PL0将当前TD4的状态信息转入“时分复用”等待线程,而将TD0转为当前运行进程,即PL0开始运行TD0,PL0重新开始“倒计时”;
2、TD0执行THREAD指令;
3、PL1接收THREAD指令信息,即创建TD5的指令信息,但并不立刻执行该指令。与此同时,PL1进入“时分复用模式”,记录由PRC通过图1所示线B体现的TTDM值,并开始“倒计时”;
4、PRC响应THREAD指令,如图1所示,线B体现信息为没有可用PLoff,并体现PL2准备进入“时分复用模式”,准备接收下一个THREAD指令信息,并体现针对下一个THREAD指令的TTDM的值。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
实施例7
本发明的一个实施例,在实施例6的基础上,TD0创建一个线程,包括步骤:
1、TD0执行THREAD指令;
2、PL2接收THREAD指令信息,但并不立刻执行该指令。与此同时PL2进入“时分复用模式”,记录由PRC通过如图1所示线B体现的TTDM的值,并开始“倒计时”;
3、PL2“倒计时”结束,PL2通知PRC进行“线程轮换”,即将当前TD2轮换至THREAD指令信息所指定的TD6。PRC保存PL2中当前TD2的状态信息,PL2开始运行THREAD指令信息所指定的TD6。与此同时,PL2工作模式更改为“空分复用模式”;
4、PRC响应PL2的通知,PRC通知PL3接收TD2的状态信息;
5、PL3响应PRC的通知,接收TD2的状态信息,但是并不立刻开始运行TD2。与此同时,PL3进入“时分复用模式”,记录由PRC通过如图1所示线B体现的TTDM的值,并开始“倒计时”;
6、PRC响应THREAD指令,如图1所示,线B体现信息为没有可用PLoff,并体现PL2准备进入“时分复用模式”,准备接收下一个THREAD指令信息,并体现针对下一个THREAD指令的TTDM的值。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
实施例8
本发明的一个实施例,在实施例7的基础上,TD6主动退出,包括步骤:
1、TD6执行QUIT指令;
2、PL2转为PLoff状态;
3、PRC响应QUIT指令,如图1所示,线B体现信息为可用PL为PL2。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
实施例9
本发明的一个实施例,在实施例8的基础上,TD5转换为当前运行进程,包括步骤:
1、PL1“倒计时”结束,PL1通知PRC进行“线程轮换”,即将当前TD1轮换至THREAD指令信息所指定的TD5。PRC保存PL1中当前TD1的状态信息,PL1开始运行THREAD指令信息所指定的TD5。与此同时,PL1工作模式更改为“空分复用模式”;
2、PRC响应PL1的通知,PRC通知PL2接收TD1的状态信息;
3、PL2响应PRC的通知,接收TD1的状态信息,PL2开始运行TD1。与此同时,PL2状态更改为PLon,工作模式更改为“空分复用模式”;
4、PRC响应PL1的通知,如图1所示,线B体现信息为没有可用PLoff,并体现PL2准备进入“时分复用模式”,准备接收下一个THREAD指令信息,并体现针对下一个THREAD指令的TTDM的值。与此同时,PRC更改对于TD数量的统计值,以及各PL的状态及工作模式。
应该说明的是,上述实施例均可根据需要自由组合。以上所述仅为本发明的优选实施方式,应该指出,对于本技术领域的普通技术人员来说,在不脱离发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.实现一种管理内核流水线资源的电路结构,其特征在于:
在内核中定义并实现PRC模块;
和/或
在内核中实现多条PL,每条PL均能独立执行程序;
和/或
内核中所有PL均能独立访问“代码耦合缓存”和“数据耦合缓存”;
和/或
PRC模块管理并控制线程对于PL资源的使用。
2.根据权利要求1,实现内核中同时执行多线程,其特征在于:
进程执行PMT指令;
和/或
进程执行THREAD指令。
3.根据权利要求2,实现多线程对于PL的“空分复用”,其特征在于:
PL具有两种工作状态,包括PLon状态和PLoff状态;
和/或
PL处于PLon状态下,具有两种工作模式,包括“空分复用模式”和“时分复用模式”;
和/或
PL处于PLoff状态下,相比PLon状态的PL具有更高的优先级去执行线程,并只执行该线程。
4.根据权利要求3,实现多线程对于PL的“时分复用”,其特征在于:
进程执行PMD指令;
和/或
PRC依据PMD指令所设置的PTDM,为PL提供TTDM;
和/或
PL依据TTDM进行TD的轮换。
5.根据权利要求3或者权利要求4,实现线程主动退出并释放所占用PL资源,其特征在于:
TD执行QUIT指令;
和/或
PRC修改TTDM的值;
和/或
执行QUIT指令的硬件PL更改自身工作状态或者工作模式。
6.根据权利要求3或者权利要求4,实现线程被动提出并释放所占用PL资源,其特征在于:
TD0执行KILL指令;
和/或
目标PL工作状态转为PLoff状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409313.4A CN112395066A (zh) | 2020-12-06 | 2020-12-06 | 一种流水线时分复用和空分复用的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409313.4A CN112395066A (zh) | 2020-12-06 | 2020-12-06 | 一种流水线时分复用和空分复用的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112395066A true CN112395066A (zh) | 2021-02-23 |
Family
ID=74604339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011409313.4A Pending CN112395066A (zh) | 2020-12-06 | 2020-12-06 | 一种流水线时分复用和空分复用的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395066A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1570855A (zh) * | 2004-04-30 | 2005-01-26 | 浙江大学 | Arm处理器架构的微内核设计方法 |
US20070101102A1 (en) * | 2005-10-27 | 2007-05-03 | Dierks Herman D Jr | Selectively pausing a software thread |
US20070234009A1 (en) * | 2000-08-31 | 2007-10-04 | Intel Corporation | Processor having a dedicated hash unit integrated within |
CN101667138A (zh) * | 2008-09-04 | 2010-03-10 | 国际商业机器公司 | 混合计算环境以及混合计算环境中的数据处理方法 |
CN107430530A (zh) * | 2015-01-29 | 2017-12-01 | 弩锋股份有限公司 | 在芯片计算系统上向网络处理器映射的过程 |
-
2020
- 2020-12-06 CN CN202011409313.4A patent/CN112395066A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234009A1 (en) * | 2000-08-31 | 2007-10-04 | Intel Corporation | Processor having a dedicated hash unit integrated within |
CN1570855A (zh) * | 2004-04-30 | 2005-01-26 | 浙江大学 | Arm处理器架构的微内核设计方法 |
US20070101102A1 (en) * | 2005-10-27 | 2007-05-03 | Dierks Herman D Jr | Selectively pausing a software thread |
CN101667138A (zh) * | 2008-09-04 | 2010-03-10 | 国际商业机器公司 | 混合计算环境以及混合计算环境中的数据处理方法 |
CN107430530A (zh) * | 2015-01-29 | 2017-12-01 | 弩锋股份有限公司 | 在芯片计算系统上向网络处理器映射的过程 |
Non-Patent Citations (2)
Title |
---|
SHUAI WEIYI等: "Parallelization method of digital signal processing based on multi-core pipeline", 《2017 IEEE 17TH INTERNATIONAL CONFERENCE ON COMMUNICATION TECHNOLOGY (ICCT)》, 17 May 2018 (2018-05-17), pages 350 - 354 * |
胡晓静等: "面向众核的空分系统结构研究", 《机械科学与技术》, 15 June 2013 (2013-06-15), pages 868 - 872 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762694B2 (en) | System and method of providing system jobs within a compute environment | |
CN101443733B (zh) | 用于执行基于图的计算的方法和系统 | |
US8132031B2 (en) | Power adjustment based on completion times in a parallel computing system | |
EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
CN100449478C (zh) | 用于实时多线程处理的方法和装置 | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
CN101251792B (zh) | 用于受应用管理的线程单元的结构化异常处理 | |
WO2016155335A1 (zh) | 异构多核可重构计算平台上任务调度的方法和装置 | |
CN103019802B (zh) | 一种虚拟机管理方法及平台 | |
CN110046039A (zh) | 任务调度方法及系统、调度中心服务器和存储介质 | |
CN111682973B (zh) | 一种边缘云的编排方法及系统 | |
CN104714846A (zh) | 资源处理方法、操作系统及设备 | |
US10866832B2 (en) | Workflow scheduling system, workflow scheduling method, and electronic apparatus | |
CN104662515A (zh) | 可动态构建的计算机系统 | |
CN103649932A (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
KR20160046623A (ko) | 재구성 가능 프로세서 및 그 동작 방법 | |
JP5885481B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US20070088828A1 (en) | System, method and program product for executing an application | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
CN100440153C (zh) | 处理器 | |
CN105100180A (zh) | 集群节点动态加载的方法、装置及系统 | |
CN112395066A (zh) | 一种流水线时分复用和空分复用的方法 | |
CN102387137B (zh) | 多个网络设备智能操作逻辑的实现方法和系统 | |
JP3429582B2 (ja) | マルチプロセッサシステム | |
US9436503B2 (en) | Concurrency control mechanisms for highly multi-threaded systems |
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 |