电脑系统的制作方法

文档序号:9765854阅读:350来源:国知局
电脑系统的制作方法
【专利说明】电脑系统
[0001]优先权
[0002]本申请要求2014年10月20日申请的申请号为62/065,780的美国临时案的优先权,该申请整体以参考形式纳入本申请。
技术领域
[0003]本发明所的实施例有关于一种程序线程之间的软件信令(程序线程可在同一处理单元或在不同处理单元上运行),更具体地,尤指一种用于通过缓存隐藏(cashstashing)来通知信号变化事件的电脑系统。
【背景技术】
[0004]在并行电脑系统中具有多个处理单元,多个程序线程通常依靠信号来从其他线程获取注意并同步工作的流程。在第一处理单元上运行的第一程序线程所产生的信号的变化要获取在第二处理单元上运行的第二程序线程的注意,需通过由第二处理单元启动的查询操作(polling operat1n)或是由第一处理单元启动的中断操作(interrupt operat1n)来实现。但是,由查询操作或中断操作所引起的额外延迟会在线程级的并行度更细微密集时变得愈发显著。
[0005]因此,需要一种新的信令设计,其能够在一个程序线程与另一个程序线程间传递信号变化事件时减少延迟。

【发明内容】

[0006]根据本发明的实施例,提出一种电脑系统以解决上述问题。
[0007]根据本发明的第一实施例提供一种电脑系统,包含:缓存单元;以及第一处理单元,用于运行第一程序线程,并执行指令来将信号变化事件的信息通过缓存隐藏操作储存进缓存单元,其中该信号变化事件由该第一程序线程启动来提醒第二程序线程。
[0008]根据本发明的第二实施例提供一种电脑系统,包含:缓存单元,用于储存信号变化事件的信息,以回应缓存隐藏操作,其中该信号变化事件由第一程序线程启动;以及第一处理单元,用于运行第二程序线程,并执行由该第二程序线程启动的指令,来获取该信号变化事件的信息。
[0009]本发明所公开的电脑系统能够有效减少程序线程间传递信号变化事件时的延迟。
[0010]本发明的这些及其他的目的对于本领域的技术人员来说,在阅读了下述优选实施例的详细说明以后是很容易理解和明白的,所述优选实施例通过多幅图予以揭示。
【附图说明】
[0011]图1显示本发明第一实施例的电脑系统的示意图。
[0012]图2显示本发明第二实施例的电脑系统的示意图。
[0013]图3显示本发明第三实施例的电脑系统的示意图。
[0014]图4显示本发明第四实施例的电脑系统的示意图。
[0015]图5显示本发明第五实施例的电脑系统的示意图。
[0016]图6显示本发明第六实施例的电脑系统的示意图。
【具体实施方式】
[0017]本说明书及权利要求书使用了某些词语代指特定的组件。本领域的技术人员可理解的是,制造商可能使用不同的名称代指同一组件。本文件不通过名字的差别,而通过功能的差别来区分组件。在以下的说明书和权利要求书中,词语“包括”是开放式的,因此其应理解为“包括,但不限于...”。
[0018]本发明提出一种使用缓存隐藏的软件信令方法。并且,提出的信令设计通过缓存隐藏机制将信号变化事件从一个程序线程(可运行在一个处理单元)传递给另一个程序线程(可运行在同一个处理单元或在另一个处理单元)。具体地,提出的信令设计基于生产者-消费者模型,其包含一个或多个生产者来变化一个信号以及一个或多个消费者收到信号变化的警报。由一个生产者(例如一个程序线程)发出的信号变化可需要转换为一个逻辑事件来提醒一个或多个消费者(例如一个或多个程序线程)。一个消费者需要在由一个或多个生产者变化的一个或多个信号的一定的信号变化条件下等待。缓存隐藏机制用来对由一个生产者启动的信号变化事件传递(signal change event delivery)与由一个消费者启动的信号变化事件获取(signal change event acquisit1n)进行协调。依靠缓存隐藏机制的帮助,消费者可在由生产者启动的信号变化事件传递之前或之后启动信号变化事件获取。如此,一旦信号变化事件获取并未在生产者启动信号变化传递时启动,消费者的处理器执行流可不停止(halted)或被困住(trapped),如此利用查询操作或中断操作解决了传统信令设计中碰到的延迟问题。下面将介绍提出的信令设计的具体细节。
[0019]图1显示本发明的第一实施例的电脑系统的示意图。电脑系统100是一个并行计算系统,因此包含了多个处理单元(例如处理器核心)。为了清楚及简便起见,所示电脑系统100包含两个处理单元102与104,它们通过外部总线110互相通信,其中处理单元104中有一个缓存单元106。如图1所示,一个程序线程107_1运行于处理单元102之上,另一个程序线程107_2运行于处理单元104之上。可是,这仅仅是为了展示,并非本发明的限制。另外,程序线程107_1与107_2可在同一个处理单元104上运行。在本实施例中,处理单元102执行一个信号-存储-释放指令来传递一个由程序线程107_1启动的信号变化事件,以提醒运行在处理单元104上的程序线程107_2。并且,处理单元102扮演“生产者”处理单元,处理单元104扮演“消费者”处理单元。在一个实施例中,信号-存储-释放指令是一个应用在地址区域的信令操作专用的存储-释放指令。在另一个实施例中,信号-存储-释放指令是一个信令操作专用的存储-释放类型的指令。需要注意的是,一个存储-释放指令会保证所有之前的指令都在存储-释放指令完成之前完成。
[0020]对于扮演“消费者”处理单元处理单元104来说,其执行由程序线程107_2启动的等待-信号(wait-on-signal)指令(例如,信号-加载-获取指令),用来获取信号变化事件的信息。在一个实施例中,信号-加载-获取指令是用在地址区域的信令操作专用的加载-获取指令。在另一个实施例中,信号-加载-获取指令是一个信令操作专用的加载-获取类型的指令。需要注意的是,除非观察到期望的信号变化事件,一个信号-加载-获取指令才会结束。而且,加载-获取指令会保证只有在加载-获取指令完成后所有后续指令才完成。
[0021]在第一种情形中,当程序线程107_1启动信号-存储-释放指令时,程序线程107_2启动信号-加载-获取指令,进入的信号变化事件被当下执行的信号-加载-获取指令及时观察到。而且,信号变化事件与其相关的变化的数值被程序线程107_2即刻接收到,而没有隐藏到缓存单元106中。也就是说,当程序线程107_2在有进入的信号变化事件的情况下启动信号-加载-获取指令时,由程序线程107_1启动的信号-存储-释放指令被硬件(例如缓存单元)转化为缓存隐藏操作,但是没有被信令状态机108所记录来影响任何缓存单元106的任何缓存状态,该信令状态机108与缓存单元106相关。
[0022]在第二种情形下,当程序线程107_2在程序线程107_1启动信号_存储_释放指令之后启动信号-加载-获取指令,由程序线程107_1启动的信号-存储-释放指令被硬件(例如处理单元104)转化为执行的缓存隐藏操作。换句话说,当进入的信号变化事件并不立刻由处理单元104接收时(具体是程序线程107_2),缓存单元106 (具体是与缓存单元106相关的信令状态机108)储存由处理单元104接收的信号变化事件的信息,其为在处理单元102上由信号-存储-释放指令启动的缓存隐藏操作,其中信号变化事件是由程序线程107_1启动的,用于提醒在处理单元104上运行的程序线程107_2。在此实施例中,缓存单元106具有该信令状态机108来指派预定状态“Change-Locked”给缓存入口 109,以作为对信号变化事件的信息的缓存隐藏的回应,其中预定状态“Change-Locked”是用来指示信号变化事件的信息已经在相关的缓存入口 109被记录了。当程序线程107_2在信号变化事件的?目息被缓存隐臧进缓存单兀106后启动彳目号_加载_获取指令,因缓存单兀106中的“Change-Locked”缓存入口 109的匹配而观察到信号变化事件,并且信号-加载-获取指令从缓存单元106加载信号变化事件的信息来完成此刻的执行。而且,一个记录缓存状态的“matching”表示记录的缓存状态是一个信号操作的信号变量与信号-加载-获取指令操作的信号变量是一样的。
[0023]在第三种情形下,其中程序线程107_2在程序线程107_1启动信号-存储-释放指令之前启动信号-加载-获取指令,处理单元104的处理器指令流被停止来等待在处理单元102上运行的程序线程107_1所启动的信号变化事件。并且,当程序线程107_1启动信号-存储-释放指令要传递信号变化事件时,进入的信号变化事件被观察到,信号-加载-获取指令获取到信号变化事件来完成其执行。
[0024]在此实施例中,信号-加载-获取指令用来与一信号变化事件匹配来继续信号变化探测(signal change sensing)。相比于将存储的数据从一个指定的地址直接/无条件地加载的传统的加载-获取指令,信号-加载-获取指令只有在当其匹配“Change-Locked”缓存入口或一个进入的信号变化事件时,将储存的数据加载以完成其执行。另外,信号-加载-获取指令可有另外具有一期望值(expected value)的条件码(condit1nal code)来与信号的预期的变化值(prospective changed value)相匹配。也就是说,信号-加载-获取指令仅在信号变化事件被观察到具有与期望值匹配的变化值时才完成其执行。
[0025]图2显示根据本发明第二实施例的电脑系统的示意图。电脑系统200是一个并行电脑系统,并包含多个处理单元(例如处理器核心)。为了清楚与简便起见,所示的电脑系统200包含处理单元204与前述的处理单元
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1