CN101454755A - 具有提高的操作效率的计算机系统 - Google Patents
具有提高的操作效率的计算机系统 Download PDFInfo
- Publication number
- CN101454755A CN101454755A CNA200780000018XA CN200780000018A CN101454755A CN 101454755 A CN101454755 A CN 101454755A CN A200780000018X A CNA200780000018X A CN A200780000018XA CN 200780000018 A CN200780000018 A CN 200780000018A CN 101454755 A CN101454755 A CN 101454755A
- Authority
- CN
- China
- Prior art keywords
- processor
- input
- port
- register
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3209—Monitoring remote activity, e.g. over telephone lines or network connections
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
Abstract
一种微处理器系统,其中处理器阵列通过利用工作员模式功能来更有效地通信。不是当前正在执行代码的处理器保持在不活跃但警醒状态,直到由相邻处理器将任务发送至所述处理器。处理器还可以被编程为,暂时挂起任务以检验输入的任务或消息。
Description
相关申请
本申请要求2006年9月29日提交的名称为“SEAForth应用程序指南(SEAForth Application Guide)”的临时申请60/849,498的优先权,还要求2006年6月30日提交的临时申请60/818,084的优先权,并且本申请是2006年5月26日提交的序列号为11/441,818、名称为“用于监控计算机的输入的方法和装置(Method and Apparatusfor Monitoring Inputs to a Computer)”的申请的部分继续申请,本申请要求2006年5月3日提交的临时申请60/797,345的优先权,还要求2006年3月31日提交的临时申请60/788,265的优先权,并且本申请是2006年2月16日提交的序列号为11/355,513、名称为“异步节电计算机(Asychronous power Saving Computer)”的申请的部分继续申请。以上引用的所有申请的全部内容通过参考被合并于此。
技术领域
本发明涉及计算机和计算机处理器领域,具体涉及一种允许计算机执行从外部源接收到的指令而不需要先存储所述指令的方法和装置,以及一种利用该方法和装置来促进计算机之间的通信和计算机使用另一计算机的可用资源的能力的相关方法。本创造性直接执行方法和装置的当前主要应用是,在单个微芯片上与多台计算机相结合,其中操作效率很重要,这不仅是因为提高操作速度的需要,而且还因为更高效率所导致的省电和降低热量的缘故。
背景技术
在计算领域,处理速度是一种非常期望的品质,因此对创建更快计算机和处理器的探索一直在进行。不过,在业界,通常公认的是,提高微处理器速度的极限正被迅速逼近,至少对于利用目前已知的技术而言。因此,利用多处理器通过分享处理器中的计算任务来提高整体计算速度越来越引起大家的兴趣。
多处理器的使用需要处理器之间的通信。因此,有相当大的一部分时间花费于在处理器之间传输指令和数据的过程中。每条为了实现通信所必须被执行的附加指令,在处理过程中设置了一种递增的延迟,其累积起来可能是相当大的。将指令或数据从一台计算机传送到另一台计算机的常规方法包括:首先将数据或指令存储在接收计算机中,随后调用数据或指令以用于在所述计算机上执行(在为指令的情况下)或者操作(在为数据的情况下)。
在现有技术中,已知的是,有时必需“引起计算机的注意”。也就是说,有时候即使计算机可能忙于一个任务,但仍可能需要另一对时间敏感的任务,即可能必需使计算机暂时从第一任务移开。这种示例包括但不限于,将输入提供给计算机的情况。在这种情况下,计算机可能需要暂时对输入进行确认和/或根据输入进行响应。然后,计算机继续在输入之前正在进行的工作,或者基于该输入改变正在进行的工作。尽管在此处使用外部输入作为示例,不过当在计算机内部各方面之间存在用于引起ALU注意的潜在冲突时,也发生相同的状况。
当从I/O端口接收数据或状态改变时,在现有技术中已存在两种可用的方法。一种是“轮询”该端口,这包括以固定的间隔读取端口的状态,以确定是否已接收到任何数据或者状态改变已经发生。不过,轮询端口消耗相当多的时间和资源通常,较佳的可选方案是使用“中断”。当使用中断时,处理器可以着手执行其被分配的任务,并且当I/O端口/设备需要注意或状态变化时,它将中断请求(IRQ)发送到处理器。一旦处理器接收到中断请求,处理器例如就结束其当前指令,将少许事情放在堆栈中,然后执行适当的中断请求程序(ISR)。一旦ISR结束,处理器就返回至其离开的位置。利用这种方法,处理器不必要浪费时间来查看I/O设备是否需要注意,而是仅在设备需要注意时提供中断服务。不过,在许多情况下,使用中断远达不到期望,这是由于可能存在大量的与使用中断有关的开销。例如,每次发生中断时,计算机可能不得不暂时存储一定的与它之前试图实现的任务有关的数据,然后载入有关中断的数据,再然后一旦处理完中断,就再载入先前任务所需的数据。
利用基于Forth计算机语言的系统可以发现上述系统的改进。Forth系统已经能够使代码的一个以上的“线程”(thread)同时执行。这通常称为协作循环(round-robin)。线程利用中央处理单元(CPU)获得时机(turn)的顺序是固定的;例如,线程4总是在线程3之后且在线程5之前获得时机。每个线程都被允许占用CPU它想占用的时间,然后自愿地放弃它。线程通过调用字PAUSE来这样做。相对于在中断作用期间需要被节省的大量上下文,为了待被恢复的原始任务,在PAUSE作用期间仅有少许数据项需要被节省。
每个线程都可能有或没有工作要做。如果任务4有工作要做,并且循环中在它之前的任务(任务3)调用PAUSE,那么任务4将醒来并且工作,直到它确定再次PAUSE。如果任务4没有工作要做,则它将控制传递给任务5。当任务调用将执行输入/输出功能并将因此需要等待输入/输出完成的字时,PAUSE被内置于输入/输出调用中。
PAUSE的可预测性考虑到了十分有效的代码。基于Forth的协作循环经常可以在较之利用抢先多任务器来判断谁应该在下一次获得CPU所用的时间少的时间内,在CPU处给每条现有线程一时机。不过,特定的任务可能趋于覆盖或压倒CPU。
通过最小化计算机系统中的漏电流可以发现操作效率的另一方面。在使设备更小的探索中,随着绝缘层变薄,漏电流会增加。在不久的将来,泄漏功率可能高达有效功率的50%。一种抑制漏电流的尝试可以通过利用休眠(sleeping)晶体管来达到。休眠的晶体管用作在不需要电源与逻辑块时来隔离或断开电源与逻辑块的开关。这可以使泄漏功率降低2-1000倍,如同2006年7月14日公布在Embedded.Com上的Bob Crepps的名称为如何提供有效功率的体系结构(How to Provide a Power-Efficient Architecture)的文章中所揭示的一样。
不过,在利用休眠晶体管时存在若干缺点。为了有效使用这些晶体管,在系统中需要考虑许多因素。休眠晶体管的阈值电压需要很大;否则,休眠晶体管将具有很高的漏电流。这需要CMOS技术工艺中进行修改,以既支持用于休眠晶体管的高阈值电压器件,又支持用于逻辑门电路的低阈值电压器件。此外,大休眠晶体管增加了区域开销以及用于导通和截止晶体管所消耗的动能。
为了确保电路的适当功能性,休眠晶体管必须被小心地设计尺寸以减少它们导通时的压降。在不同时刻切换的两个门电路可以共享一个休眠晶体管。不过,这对大型电路来说是不太实际。确定用于大型电路的休眠晶体管的最佳实施方式的算法是必要的。
有关休眠晶体管的其它问题包括在电路中生成噪声,以及当用于将双稳态多谐振荡器与地或供给电压断开时的数据丢失,如同2004年公布的FarzanFallah等人的名称为CMOS VLSI电路中的备用和活动漏电流控制和最小化(Standby and Active Leakage Current Control and Minimization in CMOSVLSI Circuits)的文章中所揭示的一样。所需要的是一种减少漏电流并提供更有效且问题更少的计算机处理器系统的方法和/或装置。
发明内容
减少在计算机之间传送、接收然后使用数据或指令格式的信息所需的步骤数,将是十分有用的。减少或消除中断期间所消耗的时间和资源也将是需要的。此外,除了CPU之外,扩展PAUSE功能将是十分有利的。不过,据发明人所知,没有任何现有技术的系统以有效的方式简化了上述过程。
计算机处理器阵列被公开,其中功率使用和热量发散被最小化,而计算效率被最大化。这部分地通过计算机处理器阵列来实现,其中处理器,也称为节点或核在不处于操作模式时变成不活跃但警醒。不活跃的节点或核心在不活跃时基本上不消耗功率,并且当相邻节点或管脚试图与之通信时变成活跃。在执行输入的任务之后,节点将变回到不活跃的状态,直到另一任务被发送至该节点。
在核为当前执行代码或指令时也能实现阵列效率,并且相邻核与执行核通信。除了如常规计算系统一样中断执行核之外,核也可以被编程为,偶尔暂停以检验输入的消息。如果有输入的消息在等待,那么执行核可以在暂停之后作用于输入的消息,然后继续它原来的任务。
如同此处所描述的和在附图的几幅图中所图示的一样,考虑到对执行本发明的模式和其工业实用性的说明,对于本领域的技术人员来说,本发明的这些和其它目的和优点将变得清楚。所列出的目的和优点不是本发明所有可能优点的穷尽列举。而且,即使在一个或多个预计目的和/或优点在实际应用中可能缺少或者不需要的情况下,也将可能实现本发明。
进一步地,本领域的技术人员应该认识到本发明的各种实施例可以实现所描述的目的和/或优点中的一个或更多,但没有必要是全部。因此,这里所描述的目的和/或优点不是本发明的必要元素,也不应该作为限制来解释。
附图说明
图1是根据本发明的计算机阵列的简图;
图2是示出图1计算机的子集和图1中互连数据总线的更多详情的详细视图;
图3是描述图1和图2中的一台处理器的通用布局的框图;
图4是根据本创造性申请的指令字的图示;
图5是描述根据本发明的微循环示例的流程图;
图6是描述用于执行来自端口的指令创造性方法的示例的流程图;
图7是描述用于提警(alert)计算机的创造性改进方法的示例的流程图;
图8是描述用于唤醒处理器并将输入发送到执行处理器的方法的流程图;
图9是带有处理器或节点识别并且利用镜像与相邻处理器共享端口的图1中处理器阵列的简图;
图9a是带有附加端口细节的图9的局部视图;
图10是I/O寄存器的局部视图;
图11是描述工作员模式循环的流程图;和
图12是描述具有PAUSE例行程序的执行处理器的流程图。
具体实施方式
参照附图对本发明进行说明,在附图中,相同的标记表示相同或相似的元件。虽然按照用于实现本发明目的的方式对本发明进行描述,但是本领域的技术人员应该理解,可以根据这些所教授的东西在不脱离所要求的本发明的精神或范围的情况下做出各种修改。
此处所描述和/或在附图中所示的本发明的实施例和变形,仅通过示例的方式被呈现出来,并不用于限制本发明的范围。除非以另外的方式具体指出,否则由于本发明意在适于多种变化,所以本发明可以在保持所要求发明的精神和范围的同时,针对多种实际应用对本发明的各个方案和部件省略或修改。
以下发明中描述了这样的处理器(也称为计算机、节点或者核),即运行在称作“休眠但警醒”或“不活跃但警醒”的模式中,这两种模式都是指,处理器的功能已经被暂时地挂起、暂停或停止而基本上不使用任何功率的操作模式。同时,处理器是警醒的或者处于准备就绪的状态,从而当被指示进行处理功能时能立即开始处理功能。当不活跃处理器接收到处理指令时,称作“正被唤醒”或“变成激活”。
一种用于实现本发明的模式是各个计算机处理器的阵列。该阵列在图1的简图中被描述,并且在此处总地用附图标记10表示。处理器阵列10具有多个(在所示的示例中,为24个)计算机处理器12(在阵列的示例中,有时也称作“核”或“节点”)。在所示的示例中,所有处理器12都位于单个芯片(die)14上。根据本发明,每个处理器12通常都是独立运行的处理器,这在下文中将更详细地论述。处理器12通过多条(该数量将在下文中更详细地论述)互连数据总线16互连。在该示例中,数据总线16是双向、异步、高速、并行的数据总线,尽管针对此目的采用其它互连方式也落入本发明的范围中。在本实施例的阵列10中,不仅处理器12之间的数据通信是异步的,而且各个处理器12内部也以异步模式运行。这些已经由本发明人发现,从而提供重要的优势。例如,由于时钟信号不必要被分布在整个处理器阵列10上,因此就很省电。此外,不必发布时钟信号消除了许多定时问题,这些定时问题可能限制阵列10的尺寸或可能导致其它公知的麻烦。而且,各个计算机异步运行的事实,节省了大量的功率,这是由于每台计算机不执行指令时,将基本上不使用任何功率,原因在于其中不运行任何时钟。
本领域的技术人员应该认识到,出于清晰的考虑,芯片14上的额外部分在图1的视图中被省略了。这些额外部分包括但不限于电力总线、外部连接键盘和微处理器芯片的其它这类公共方面。
处理器12e是一个不位于阵列10周界上的处理器12的示例。也就是说,处理器12e具有四个垂直相邻的处理器12a、12b、12c和12d,尽管使用四个以上的相邻处理器也落入本发明的范围内。作为示例,对处理器12a-12e进行的这种分组将在下文中用于对阵列10的处理器12之间的通信进行更为详细的讨论。在图1的示图中可以看到的是,例如处理器12e的内部处理器将具有经由总线16与其直接通信的其它至少四个处理器12。在下面的论述中,所论述的原理将适用于所有的处理器12,除了位于阵列10周界上的处理器12将仅与其它三个处理器12直接通信之外,还除了边角处理器12将仅与其它两个处理器12直接通信。
图2是图1的一部分的更为详细的视图,其仅仅示出了一些处理器12,具体而言,仅仅包括处理器12a-12e。图2的示图还揭示出每条数据总线16均具有读取线18、写入线20和多条(在该示例中,为18条)数据线22。数据线22能够几乎同时地并行传输一个18比特的指令字的所有比特。应该注意的是,在本发明的一个实施例中,一些处理器12是相邻处理器的镜像。不过,不论处理器12是全部同一定向的或者是作为相邻计算机的镜像,都不是目前所描述发明的限制方案。
根据本发明的一个方案,例如处理器12e的处理器12可以将其读取线18中的一条、两条、三条或所有四条都设定为高电平,以便预备从相应的一台、两台、三台或四台相邻处理器12接收数据。类似地,处理器12将其写入线20中的一条、两条、三条或所有四条都设定为高电平也是可能的。当相邻处理器12a、12b、12c或12d中的一个将它本身与处理器12e之间的写入线20设定为高电平时,如果处理器12e已经将对应的读取线18设定为高电平,那么在相关数据线22上,字将从那个处理器12a、12b、12c或12d传输到处理器12e。然后,发送处理器12将释放写入线20,而接收处理器(在该示例中,为12e)将写入线20和读取线18都拉低。后一动作将向发送处理器12确认已经接收到数据。需要注意的是,上述描述意不在于必需按次序表示事件的顺序。在实际实践中,接收处理器可以在发送处理器12释放(停止拉高)其写入线20之前不久,就试图将写入线20设定为低电平。在这样的例子中,发送处理器12一旦释放其写入线20,写入线20就由接收处理器12e拉低。重要的是要注意到,当发送处理器12的写入线20变成高电平时,数据或代码已经被传输;因此,接收处理器(在该示例中,为12e)仅需要锁存该数据/代码,用于基本瞬时的响应。
如果处理器12e试图向处理器12a写入,那么处理器12e会将处理器12e与处理器12a之间的写入线20设定为高电平。如果处理器12e与处理器12a之间的读取线18那时还没有被处理器12a设定为高电平,那么处理器12e将只是等待,直到处理器12a确实将该读取线20设定为高电平。当相应的一对写入线18和读取线20都被设成高电平时,等待在数据线22上被传输的数据被传输。此后,发送处理器12e一旦释放写入线18,接收处理器12(在该示例中,是处理器12a)就将两个处理器(在该示例中,是12e和12a)之间的读取线18和写入线20都设定为低电平。
除非数据将要发送到的处理器12已经将其读取线18设置为高,在这种情况下,数据会被立即发送,否则,只要诸如处理器12e的处理器12已经将其写入线20中的一条设置为高以期望写入,它都将仅仅等待而几乎不耗电,直到数据如上文所述那样由合适的邻近处理器12“请求”。类似地,只要处理器12在期望读取过程中将其一或多条读取线18设定为高电平,它就只是等待而几乎不耗电,直到连接至所选择处理器12的写入线20成为高电平,以在这两个处理器12之间传输指令字。
如上所述,可能存在几种潜在的装置和/或方法,以使得处理器12如所描述的一样运行。不过,在本示例中,处理器12之所以这样运转,仅仅是因为它们在内部通常也异步运行(除了以所描述的异步方式在它们之间传输数据之外)。也就是说,指令通常被顺序地完成。当写入或读取指令出现时,可以不采取任何进一步的动作,直到指令被完成(或者,或许可选地,直到其被“重置”等中止)。在现有技术的意义中,并不存在规则的时钟脉冲。更确切地说,只有当正被执行的指令不是读取型或写入型指令(假定读取或写入型指令通常需要由另一实体完成)时,或者当读取型或写入型的操作实际上已经完成时,脉冲才产生以实现下一指令。
图3是描述图1和图2中一台处理器12示例的通用布局的框图。从图3的示图中可以看出,每台处理器12一般均为自身具有RAM24和ROM26的计算机。如之前所提到的是,处理器12有时还称为各个“节点”,在该示例中假定它们被组合在单个芯片上。
处理器12的其它基础部件是返回堆栈(return stack)28(包括下文中将论述的R寄存器29)、指令区域30、算术逻辑部件(“ALU”或“处理器”)32、数据堆栈34和用于解码指令的解码逻辑部分36。本领域的技术人员通常会熟悉基于堆栈的计算机的操作,例如本示例的处理器12。处理器12是具有数据堆栈34和分立的返回堆栈28的双堆栈处理器。图3还示出了分别用于返回堆栈和数据堆栈的循环寄存器阵列28a和34a,连同数据堆栈34的T寄存器44和S寄存器46。
在本发明的该实施例中,处理器12具有四个通信端口38,用于与相邻处理器12通信。通信端口38是三态驱动器,具有截止状态、接收状态(用于将信号驱动进入处理器12中)和发送状态(用于将信号驱动出处理器12)。如果特定的处理器12不位于阵列(图1)内部,例如处理器12e的示例,那么至少为了以上所描述的目的,在所述特定的处理器中将不会使用一个或多个通信端口38。不过,那些确实邻接芯片14边缘的通信端口38可以具有被设计在这种处理器12中或者被设计在处理器12的外部但与之相连的附加电路,从而使得这种通信端口38担当外部I/O端口39(图1)。这样的外部I/O端口39的示例包括但不限于USB(通用串行总线)端口、RS232串行总线端口、并行通信端口、模拟-数字和/或数字-模拟转换端口,和其它许多可能的变形。无论是什么类型的附加或修改电路应用于这个目的,根据本发明当前所描述的实施例,“外部”I/O端口39的对于从其接收到的指令和/或数据的处理的操作方法,将与此处关于“内部”通信端口38所描述的相似。在图1中,“边缘”处理器12f被描述为与相关接口电路80(示为块图形式)一起通过外部I/O端口39与外部设备82通信。
在当前所描述的实施例中,指令区域30包括许多寄存器40,在该示例中,包括有A寄存器40a、B寄存器40b,和P寄存器40c。在该示例中,A寄存器40a是满18位的寄存器,而B寄存器40b和P寄存器40c是9位的寄存器。I/O寄存器47(18位)位于存储器(ROM 26和RAM 24)与通信端口38之间。I/O寄存器47将在下文中更详细地进行公开。
尽管本发明不受该示例的限制,但是目前处理器12执行自然的Forth。熟悉Forth计算机语言的人员应该理解,被认为是Forth“字”的复杂Forth指令,由为计算机设计的自然处理器指令构成。Forth字的集合被认为是“字典(dictionary)”。如下文中将更详细描述的,处理器12每次从RAM24、ROM 26或直接从一条数据总线16(图2)读取18比特。由于在Forth中,大多数指令(被认为是无操作数指令)直接从堆栈28和34获得它们的操作数,所以它们通常在长度上只有五比特,以便在组中的最后指令选自只需要3比特的有限指令集合的状况下,有多达四条指令都可以被包括在单个18比特的指令字中。
图4是指令字48的图示。(应该注意的是,指令字48实际可以包含指令、数据,或它们的某种组合。)指令字48由18比特50组成。由于是二进制计算机,所以每个比特50都将为“1”或“0”。如在此之前所论述的,18比特宽的指令字48可以在称为时段零54a、时段一54b、时段二54c和时段三54d的四个时段54中包括多达四条指令52。在本发明的该实施例中,18比特的指令字48一直作为整体被读取。因此,由于在指令字48中一直存在具有多达四条指令的可能性,所以NOP(非操作)指令被包括在处理器12的指令集合中,以规定当使用所有可用时段54可能不必要或者甚至不需要时的情况。
除了此处之前论述的寄存器之外,指令区域30还具有用于存储当前正被使用的指令字48的18比特的指令寄存器30a;和在当前被执行的特定指令中针对指令的附加5比特操作码寄存器30b。
如前面所述,每条指令52的i4比特66根据该指令是读取还是写入型指令而被设置,相对于该指令是不需要任何输入还是不需要输出的一条指令。指令52中的其余比特50为该指令提供了特定操作码的剩余部分。在读取或写入型指令的情况下,在该特定处理器12中,一个或更多的比特可以用于指示数据将从何处读取或者写入何处。在本发明的该示例中,将被写入的数据一直来自于T寄存器44(数据堆栈34的顶部),但是数据可以有选择地被读入T寄存器44或者指令区域30,从此处可以执行数据。这是由于在本发明的该具体实施例中,数据或者指令可以以此处所描述的方式被传送,并且指令因此可以直接从数据总线16执行。
一个或者更多的比特50将被用于指示端口38的哪一个将被设置成读取或写入,如果有这样端口的话。可选地,后一操作通过利用一个或更多的比特来指定寄存器40,例如A寄存器40a、B寄存器40b等而被完成。在这样的示例中,所指定的寄存器40将被预载入数据,数据具有对应于每个端口38(并且还有处理器12可能试图与其通信的其它任何潜在实体,例如存储器(RAM 24或ROM 26)、外部通信端口39,等等)的比特。例如,特定寄存器40中的四个比特中的每个可以分别对应于上端口38a、右端口38b、左端口38c或下端口38d中的每个。在这种情况下,在那些比特的位置的任一处存在‘1’的地方,通信将被设定成通过相应端口38进行。在本发明的该实施例中,所期望的是,读取操作码可能在单个指令中设置一个以上的用于通信的端口38。
紧接下来的例子将假定处理器12e试图写入处理器12c的通信,尽管该示例适用于任何相邻处理器12之间的通信。当写入指令在写入处理器12e中被执行时,所选择的写入线20(在该示例中是处理器12e与12c之间的写入线20)被设定为高电平,如果相应的读取线18已经是高电平,那么数据从所选择的位置通过所选择的通信端口38被立即发送。或者,如果相应的读取线18还不是高电平,那么处理器12e将仅停止操作,直到相应的读取线18确定变成高电平。
至于当读取或写入型指令被完成时处理器12e的操作如何重新开始,这种机制是这样的:当处理器12e与12c之间的读取线18和相应的写入线20都为高电平时,那么线18和20都将由保持其为高电平的每个相应的处理器12释放。(在该示例中,发送处理器12e将保持写入线18为高电平,而接收处理器12c将保持读取线20为高电平)。然后,接收处理器12c将线18和20都拉低。在实际的实践中,接收处理器12c可能在发送处理器12e释放写入线18之前就试图将线18和20拉低。但是,由于线18和20被拉高并且仅被不牢靠地保持(锁存)为低电平,因此任何将线18和20拉低的企图实际上将无法成功,直到线18或20由正保持其为高电平的处理器12所释放。
当数据总线16中的线18和20都被拉低时,这为“确认”条件。基于这种确认条件,每一处理器12e和12c将它自己内部的确认线设定为高电平。
依照前面论述可以理解的是,不管处理器12e是首先试图向处理器12c写入还是处理器12c首先试图从处理器12e读取,这些操作在本质上是相同的。直到处理器12e和12c都预备好,并且无论哪一个处理器12e或者12c首先预备好第一个处理器12都仅仅“变为不活跃”直到另一处理器12e或12c完成传输,操作才能完成。观察前述过程的另一方式在于,实际上写入处理器12e和接收处理器12c当它们分别执行写入和读出指令时都变为不活跃,但是,当读取线18和写入线20都是高电平时,进行处理的后者几乎立即重新激活(reactivate),然而开始处理的第一处理器12可以几乎不确定地保持不活跃直到第二处理器12预备好完成该过程。
发明人相信的是,用于实现设备之间有效异步通信的关键特征在于确认信号或条件的类型。在现有技术中,大多数设备之间的通信被计时,并且对于发送设备来说并没有了解接收设备已正确接收到数据的直接方式。例如校验和的操作方法可能已经用于试图确保数据被正确接收到,但是发送设备没有操作完成的任何直接指示。如此处所描述的,本创造性的方法提供了必要的确认条件,其允许或至少使设备之间的异步通信实用化。此外,确认条件也使一或多台设备“变为不活跃”直到确认条件发生成为可能。确认条件可以通过正在处理器12之间发送(或者通过互连数据总线16或者通过单独的信号线)的单独信号而在处理器12之间被传送,并且这样的确认信号将在本发明的该方案的范围之内。然而,根据此处所描述的本发明的实施例,可以理解的是,这里存在甚至更多的经济利益,原因在于,用于确认的方法不需要任何额外的信号、时钟周期、定时脉冲,或除了上述之外的任何这类资源,来实际上影响通信。
由于四条指令52可以被包括在指令字48中,并且由于根据本发明,整个指令字48可以在处理器12之间被一次传送,这展示了用于在一个操作中传送非常小程序的理想机会。例如,多数小“For/Next”循环可以在单个指令字48中被实现。图5是微循环100的图示。不同于其它现有技术的循环,微循环100具有FOR指令102和NEXT指令104。由于指令字48(图4)包含多达四条指令52,因此指令字48可以在单个指令字48中包括三个操作指令106。操作指令106本质上可以是程序员可能想要将其包括在微循环100中的任何可用的指令。可以从一个处理器12传送到另一个的微循环100的典型示例可以是,用于读取或者写入第二个处理器12的RAM24的一组指令,以便第一处理器12可以“借出”可用的RAM24容量。
FOR指令102将表示所需迭代数的值压入返回堆栈28上。也就是说,数据堆栈34顶部的T寄存器44中的值被压入(PUSH)到返回堆栈28的R寄存器29中。FOR指令102可以被设置在任意时段54中。当FOR指令102没有被设置在时段三54d中时,该指令字48中的剩余指令52将在进行微循环100之前被执行,这通常将是下一次被载入的指令字48。
根据本发明当前所描述的实施例,在图5的示图中所描述的NEXT指令104是特定类型的NEXT指令104。这是因为它位于时段三54d(图4)中。根据本发明的该实施例,假定特定指令字40中所有遵照“普通”NEXT指令(未示出)的数据是地址(for/next循环开始的地址)。无论用于NEXT指令104的操作码位于四个时段54中的哪一个(除了很明显的例外,即如前面所论述的,如果其位于时段三54d,则前两位数被假定,而不是详细写出)中,它都是相同的。但是,由于当处于时段三54d中时没有任何遵照NEXT指令104的地址数据,因此也可以假定时段三54d中的NEXT指令104是MICRO-NEXT指令104a。MICRO-NEXT指令104a使用第一指令52的地址,其位于所在的同一指令字48的时段零54a中,作为其返回地址。MICRO-NEXT指令104a也可以取R寄存器29中的值(它最初由FOR指令压到这里),对它减1,然后将它返回到R寄存器29。当R寄存器29中的值达到预定值(例如0)时,那么MICRO-NEXT指令将载入下一个指令字48,并在此处如上所述继续进行。但是,当MICRO-NEXT指令104a从R寄存器29中读取的值大于预定值时,在自身指令字48的时段零54a处重新开始操作,并执行其中包含的位于在时段零到时段三中的三条指令52。也就是说,在本发明的该实施例中,MICRO-NEXT指令104a将一直执行三条操作指令106。在某些情况下,由于可能不需要使用所有三条潜在可用的指令52,因此按照需要,“NOP”指令可用于填充一个或两个时段54。
应该注意的是,微循环100可以整个被用于单个处理器12中。实际上,整组可用的机器语言指令都可以作为操作指令106使用,并且对微循环的应用和使用仅受限于程序员的构想。但是,当在单个指令字48中执行整个微循环100的能力,与允许处理器12将指令字48发送到相邻处理器12以在其中执行本质上直接来自数据总线16的指令52的能力相结合时,这提供了用于允许处理器12利用其相邻处理器的资源有力工具。
如此处所述,全部包含在单个数据字48中的小微循环100可以在处理器12之间被传送,并且其可以直接从接收处理器12的通信端口38被执行,如同此处所述的指令字48中所包含的其它任何指令组。这类“微循环”100虽然存在很多用途,但典型的用途在于一个处理器12想要将一些数据存储在相邻处理器12的存储器中。例如,它可以首先将指令发送到该相邻处理器,以告诉它将输入的数据字存储在特定的存储器地址,然后递增该地址,再然后重复给定的迭代数(数据字将被传送的次数)。为了读回数据,第一处理器将仅指令第二计算机(这里指用于存储的计算机)使用类似的微循环将已存储数据写回到第一处理器。
通过结合此处所述的直接执行方案来使用微循环100结构,处理器12可以使用另一休眠的相邻处理器12,用于当数据存储需要超过内置于单个处理器12中的相对较小容量时,存储超出数据。虽然该示例按照数据存储进行了描述,不过相同的技术可以等同地用于允许处理器12使其邻居共享其计算资源-通过创建微循环100来使其它处理器12执行一些操作,存储结果,并且重复给定次数。可以理解的是,本创造性的微循环100结构可以被使用的方式的数量几乎是无限的。
如在此之前所提到的,在本发明的当前所描述实施例中,数据或指令都可以通过此处所描述的方式进行通信,因此指令实质上可以直接从数据总线16被执行。也就是说,不需要在执行之前将指令存储到RAM24中,然后再调用它们。相反,根据本发明的这个方案,在通信端口38接收到的指令字48在本质上没有被视为与假设从RAM 24或ROM 26再调用的情况有所不同。
一种可用的机器语言指令是FETCH指令。FETCH指令使用A寄存器40a中的地址以确定从何处取出18比特的字。当然,将不得不为了在A寄存器40a中设置正确的地址而提供程序。如在此之前所论述的,A寄存器40a是18比特的寄存器,以便有足够的地址数据范围,以用于区别所述取出可能发生自哪个任何潜在资源。也就是说,存在分配给ROM的地址范围,分配给RAM的不同地址范围,并且存在用于每个端口38和用于外部I/O端口39的特定地址。FETCH指令一直将其取出的18比特设置在T寄存器44中。在此存在重要的优点,原因在于循环内部没有任何指令取出。因此,在效率上有接近30%的提高,并且在功耗上有相应的减少。
相反地,如在此之前所论述的,可执行指令(相对于数据)被暂时存储在指令寄存器30a中。不存在专用的命令,用于将18比特的指令字48“取”到指令寄存器30a中。相反,当在指令寄存器30a中未留下任何更多的可执行指令时,处理器将自动取出“下一”指令字48。“下一”指令所在位置是由“程序计数器”或“pc”,此处称为P寄存器40c来确定的。在从RAM24或ROM 26中取出指令字48序列的情况下,P寄存器40c通常自动递增。然而,对于这个总原则也有许多例外。例如,JUMP或CALL指令将导致P寄存器40c将被载入地址,该地址由JUMP或CALL指令后的当前载入指令字48的剩余部分中的数据所指定,而不是被递增。然后,当P寄存器40c被载入对应于一或更多端口38的地址时,那么下一指令字48将从端口38被载入指令寄存器30a。当指令字48刚从端口38被取回到指令寄存器30a时,P寄存器40c也不递增。相反,它将继续保持相同端口地址,直到执行专用JUMP或CALL指令,以改变P寄存器40c。也就是说,一旦告诉处理器12从端口38寻找它的下一条指令,那么它就将从同一端口38(或多个端口38)继续寻找指令,直到其被告知寻找其它地方,例如返回到存储器(RAM 24或ROM 26)以寻找它的下一指令字48。
如以上所应该注意的,在当前指令字48中未留下任何更多的可执行指令时,处理器12知道已取出的下一个18比特将被放置在指令寄存器30a中。在默认情况下,在JUMP或CALL指令(或者也在此处将不被具体论述的其它一些指令)之后,在当前指令字48中未留下任何更多的可执行指令,这是因为根据定义遵照JUMP或CALL指令的18比特的指令字的剩余部分被专用于由JUMP或CALL指令所引用的地址。另一种陈述方式是,前述过程在许多方式下是独一无二的,包括但不限于这种事实,即JUMP或CALL指令可选地到端口38而不是只到存储器地址等等。
应该记住的是,如在此之前所论述的,处理器12可以从一个端口38或从端口组38的任何一个寻找其下一条指令。因此,提供对应于端口38的各种组合的地址。例如,当处理器被告知从端口组38中取出指令时,它将从所选择端口38的任一个接受第一个可用指令字48。如果没有相邻处理器12试图向这些端口38中的任一个写入,如前面所详细描述的,所被考虑的是处理器12将“变为不活跃”,直到邻居确实向所选择的端口38写入为止。
图6是描述以上所述的直接执行方法120的示例的流程图。如在此之前所论述的,当指令寄存器30a中不再留下可执行指令时,操作的“正常(normal)”流程将开始。这时,如由“取出字”操作122所指示的,处理器12将“取出”另一指令字(注意这里所使用术语“取出”是普通含义上的,因为实际的FETCH指令并没有被使用)。该操作将按照P寄存器40c中的地址(由图6流程图中的“地址”判断操作124所指示)被完成。如果P寄存器40c中的地址是RAM 24或ROM 26地址,那么下一指令字48将在“从存储器中取出”的操作126中从指定的存储器位置被取回。另一方面,如果P寄存器40c中的地址是端口38或多个端口38的地址(不是存储器地址),那么下一指令字48将在“从端口取出”的操作128中从指定的端口位置被取回。在任一情况下,被取回的指令字48在“取回指令字”的操作130中被放置在指令寄存器30c中。如在此之前所描述的,在“执行指令字”的操作132中,指令字48的时段54中的指令依次被完成。
在“跳转”判断的操作134中,确定指令字48中的操作之一是JUMP指令,还是如在此之前所述的,其它的将操作从连续“正常”进程转移的指令。如果是,那么如图6的示图所示,在“载入P寄存器”的操作136中,在JUMP(或其它这种)指令之后,指令字48中所提供的地址被提供给P寄存器40c,并且在“取出字”的操作122中,序列再次开始。如果否,那么下一个动作取决于最后指令的取出是来自端口38还是来自存储器地址,如“端口地址”判断操作138中所示。如果最后指令的取出是来自端口38,那么不对P寄存器30a作任何修改,并且序列从“取出字”的操作122开始重复。另一方面,如果最后指令的取出是来自存储器地址(RAM 24或ROM26),那么在“取出字”的操作122完成之前,P寄存器30a中的地址被递增,如图6中的“递增P寄存器”操作140所示。
以上描述并不是用来表示实际的操作步骤。相反,它是由此产生的根据本发明所述实施例被执行的各种判断和操作的图示。实际上,该流程图不应该被理解成意味着每个所描述和所显示的步骤都需要分开的明显的顺序步骤。实际上,图6的流程图中的许多所述操作在实践中通常同时完成。
图7是描述用于提醒处理器的方法示例150的流程图。如在此之前所论述的,所述实施例中的处理器12在等待输入的同时将“变为不活跃”。这样的输入可以来自关于图1到图4所述实施例中的相邻处理器12。可选择地,也如同在此之前所论述的,具有邻接芯片14边缘的通信端口38的处理器12可以具有附加电路,所述附加电路设计在这种处理器12中或者设计在处理器12与之相连的外部,以使这种通信端口38担当外部I/O端口39。在任一情况下,本创造性的组合可以提供附加优点,即“不活跃”处理器12可以保持状态,并预备好在接收到输入时激活并跳转到一些规定的动作中。该过程称作工作员模式(worker mode)。
每台处理器12被编程为,跳转(JUMP)到其被启动时的地址,该地址是将启动该特定处理器12开始处理其指定工作的第一指令字48的地址。指令字可以位于,例如ROM 26中。在冷启动之后,处理器12可以载入程序,例如被认为是工作员模式循环的程序。用于中央处理器12、边缘处理器12和边角处理器12的工作员模式循环是不同的。此外,一些处理器12可以在与它们在阵列10内位置有关的ROM中的引导程序(boot-up)处具有专用任务。下文中将对工作员模式进行更详细地描述。
虽然有很多可以使用这种特征的方式,在图7的示图中仅示出一种示例用于图示这样的“计算机提醒方法”,并且在此处用附图标记150列出。从图7的示图中可以看出,在“不活跃但警醒状态”的操作152中,处理器12被促使“变为不活跃”,以便其正在等待来自相邻处理器12或者一台以上(可多达所有的四台)相邻计算机的输入,或者在“边缘”处理器12的情况下,等待外部输入,或者等待外部输入和/或来自邻居处理器12的输入的某种组合。如同在此之前所述的,处理器12可以在等待读取或写入操作的完成时“变为不活跃”。如同该示例中所描述的,当处理器12正被用于等待一些可能的“输入”时,那么自然会假定,等待处理器在等待来自邻居或外部源的“写入”时已将它的读取线18设定为高电平。实际上,目前所预期的是,这将是通常的状况。然而,等待处理器12将它的写入线20设定为高电平并且因此在邻居或外部源从其“读取”时将被激活,都在本发明的范围之内。
在“激活”的操作154中,不活跃的处理器12被促使重新开始操作,这是因为相邻处理器12或外部设备39已完成了正被等待的处理。如果正被等待的处理是接收将被执行的指令字48,那么处理器12将在此继续执行其中的指令。如果正被等待的处理是接收数据,那么处理器12将继续执行队列中的下一条指令,其将是目前指令字48的下一时段54中的指令,或者下一指令字48将被载入,并且下一指令将位于下一指令字48的时段0中。在任何情况下,既然以所描述的方式被使用,那么下一条指令将开始一条或多条指令的序列(sequence),用于处理刚接收到的输入。用于处理这种输入的选项可以包括,对执行某种内部预定功能的反应,与阵列10中的一台或多台其它处理器12通信,甚或是忽略输入(正如同常规现有技术一样,中断可以在规定的条件下被忽略)。选项在图7的示图中被描述为“作用于输入”的操作156。应该注意的是,在一些例子中,输入的内容可能不重要。例如,在一些情况下,外部设备试图进行感兴趣的通信可能才是事实。
本领域的技术人员人将认识到,前述操作模式将用作比使用常规中断更有效的替代方案。当处理器12已将其一条或多条读取线18(或写入线20)设定为高电平时,可以说是处于“警醒”状态。在警醒状态中,处理器12预备好立即执行在对应于被设定为高电平的一条或多条读取线18的数据总线16上被发送至此的任何指令,或者可选择地,作用于在数据总线16上被传输的数据。当有处理器12的阵列可用时,在任何给定时刻,一台或多台处理器将处于前述警醒状态,以便所规定的输入组中的任一个将触发它进行动作状态。优选地,使用常规中断技术来“引起处理器的注意”,这是因为中断将导致处理器必须响应于中断需求来存储一定数据,载入一定数据,等等。按照本发明,处理器可以被设置在警醒状态并专用于等待感兴趣的输入,以便在由这些输入触发的指令开始执行时,不会浪费一个指令周期。此外,注意到的是,在目前所述的实施例中,警醒状态中的处理器实际上将是“不活跃”,这意味着它们基本上不使用任何功率,但在它们会由输入立即触发进入动作方面,又是“警醒”的。不过,即使不处于“不活跃”状态,“警醒”状态仍可以体现在处理器中,这些都在本发明的该方案的范围之内。所描述的警醒状态基本上可以用于任何状况下,其中常规现有技术的中断(或者是硬件中断或者是软件中断)可能以其它方式被使用。
图8是计算机提警方法150a的另一示例。这只是一个示例,其中监控处理器12f(图1)与另一个被分配以其它某种任务的处理器12g(图1)之间的交互可能是需要的或必要的。从图8中的示图可见,有两个通常独立的流程图,分别对应处理器12f和12g。这指示出本发明的合作共同处理器方式的自然特性,其中每个处理器12自身通常独立执行地分配,除了此处描述的完成交互的情况之外。该发明提供了使用中断以处理输入的可选方案,无论这样的输入是来自于外部输入设备还是来自于阵列10中的另一处理器12。代替为了处理中断而使处理器12必须停止其正在进行的工作,此处所描述的本创造性组合将允许处理器12处于“不活跃但警醒”的状态,如先前所描述的一样。因此,一台或多台处理器12可以被分配以接收并作用于一定的输入。
对于处理器12f来说,“进入不活跃但警醒状态”的操作152,“激活”操作154和“作用于输入”的操作156中的每个,都如在此之前关于处理器提醒方法150的第一示例所描述的一样被实现。但是,由于该示例预期可能需要处理器12f与12g之间的交互,所以接着“作用于输入”的操作156的是,处理器12f进入“发送信息?”的判断操作158,其中其按照自己的程序,确定刚接收到的输入是否需要引起其它处理器12g的注意。如果否,那么处理器12f返回到不活跃但警醒状态,或者例如前所论述的其它一些可选择项。如果是,那么在“发送到其它”的操作160中,如此前详细描述的,处理器12f开始与处理器12g通信。应该注意的是,按照程序员的选择,处理器12f可以发送指令,例如可以发送响应于来自外部设备82的输入而在内部产生的指令。可选择地,处理器12f可以将数据传递到处理器12g,并且这些数据可以在处理器12内部产生,或者从外部设备82“经过”。另一可选方案还可以是,在一些状况下,处理器12f可能在接收来自外部设备82的输入时试图从处理器12g读取。所有这些可能程序员都可以使用。
如在“执行主要功能”操作162中所示的,处理器12g通常执行代码以完成它被分配的主要任务,无论是什么任务。然而,如果程序员确定需要处理器12f和12g之间的偶然交互处理,那么程序员将提供出,处理器12g偶然暂停以查看其一台或多台相邻处理器是否试图通信,如“寻找输入”操作166中所示。在存在通信等待(例如,处理器12f已开始向处理器12g写入)的情况下,进行“输入?”的判断操作168。如果存在已开始的通信(是),那么如此之前详细描述的,在“从其它接收”操作170中处理器12g将完成通信。如果否,那么处理器12g将返回执行其被分配功能,如图8所示。在“从其它接收”操作170之后,处理器12g将作用于在“作用于输入”操作172中接收到的输入。如前面提到的,程序员可能已经提供了处理器12g所期待的诸如输入之类的指令,在这种情况下,如同在此之前所描述的,处理器12g将执行指令。可选择地,处理器12g可以被编程以等待所作用的数据。
在图8示例中,示出了在“作用于输入”的操作172之后,处理器12g返回完成它的主要功能(也就是说,其返回到“执行主要功能”的操作162)。然而,一定存在甚至更复杂示例的可能性。例如,编程可以是这样的,即从处理器12f接收到的某种输入将导致其中断之前被分配的主要功能,并开始一个新功能,或者它可以简单地暂时停止并等待进一步的输入。本领域的技术人员将认识到,此处动作的各种可能性仅受限于程序员的构思。
应该注意的是,按照此处所描述的本发明的实施例,给定的处理器12当正执行任务时不需要被中断,这是因为另一处理器12被分配了监控和处理可能另外需要中断的输入的任务。但是,有趣的是,还注意到,忙于处理其它任务的处理器12也不能被打扰,除非并且直到它的程序提供了它查看其端口38以寻找输入。因此,有时将需要使处理器12暂停寻找其它输入。“Pause”的概念和如何使用将稍后进行更详细地描述。。
处理器12之间的每个端口38都包括数据线22、一条读取线18和一条写入线20,它们全部组成数据总线16。除了数据总线16之外,每个端口38还包括握手控制信号。数据总线22连接在两台相邻处理器12的端口38之间。例如,字或操作码可以在STORE(写入)指令期间驻留于T寄存器44中;处理器12e的写入线20然后将被设定为高电平。当处理器12c的读取线18被设定为高电平时,在FETCH(读取)指令的作用下数据被传输到处理器12c的T寄存器44中。在完成处理后,读取线18和写入线20都被设定为低电平。在该示例中,该数据当由P寄存器40c读取时变为指令。
当处理器12读取消息时,该消息可以采用数据、指令或信号格式。指令可以被存储在存储器中,并且稍后由同一处理器12使用,或者被存储在不同的处理器12中,并直接从端口38执行。如果处理器12正利用其P寄存器40c从存储器读取,那么它将通过将指令放入指令寄存器30a而立即执行指令,或者读取消息作为数据,并将其放入T寄存器44。FETCH指令当被指引到或寻址到端口38时,将读取消息作为数据。如果JUMP或CALL指令被指引到端口38,或者RETURN指令被指引到端口38地址,那么P寄存器40c将读取正写入端口38的内容作为指令,并且指令将被认为是可执行代码。
接收处理器12可以读取消息作为数据并且然后写入消息作为数据。被路由的(即通过中间处理器12从一台处理器12发送至非相邻处理器12)消息被解释成数据,并且被读取到每个顺序处理器12的T寄存器44中,直到到达预定的接受者,然后消息被解释成代码(从P寄存器40c读取),之后被执行。因此,如果在FETCH A(定义为读取A寄存器40a指定的存储器的内容)或FETCH A+(定义为读取A寄存器40a指定的存储器的内容,并将A寄存器40a加1)或FETCH P+(定义为读取P寄存器40c指定的存储器的内容,并将P寄存器40c加1)期间读取消息,那么消息被传输到进行读取的处理器12的T寄存器44中。如果处理器12正在从P寄存器40c读取消息,那么消息被传输到接收处理器12的指令寄存器30a中。
图1示出了位于单个芯片14上的互连处理器12的阵列10;作为示例给出了总数为24的处理器12,其中每个处理器12具有位于其外围的若干管脚。每个处理器12具有4个指定为右、下、左和上(RDLU)的端口38。在图1中,处理器12e具有4个相邻处理器12,其中相对于中心的处理器12e,处理器12b是右邻居,处理器12d是下邻居,处理器12c是左邻居,处理器12a是上邻居。即使边缘处理器12只有三个相邻的邻居,边角处理器12只有两个相邻的邻居,那么边缘和边角处理器12仍然具有4个也指定为RDLU的端口38。
图9是可替换阵列10a的简图描述。在本发明的这个示例中,阵列10a有二十四(24)个处理器12。另外,在本发明的这个实施例中,处理器12以被称为“镜像”的特定相对方位被排列。也就是说,在从阵列10a顶部的第二和第四行173中的处理器12已关于它们的x轴174被翻转(flip),以致下端口38d现在朝上。在相对于阵列10a左边的第二、第四和第六列176中的所有处理器12已关于它们的y轴178被翻转,以致右端口38b现在都朝向阵列10的左侧。这样使得处理器N6、N8、N10、N18、N20和N22保持它们初始的RDLU方位;处理器N0、N2、N4、N12、N14和N16已只是关于它们的x轴174被翻转;处理器N7、N9、N11、N19、N21和N23只是关于它们的y轴178被翻转;节点N1、N3、N5、N13、N15和N17已关于它们的x轴174和它们的y轴178被翻转。除了位于阵列10a的边角和边缘的处理器12以外,这些旋转使得所有的右端口38b彼此直接面对;所有的下端口38d彼此直接面对;所有的左端口38c彼此直接面对;以及所有的上端口38a彼此直接面对。如同下文中将要更加详述,这允许处理器12与其最近的相邻处理器12直接对准并相连,这是因为处理器12的互连“镜像”了相邻的连接邻近处理器12的互连。
为了有一种方式指示阵列10a中的方向,其中阵列10a不会随着其中处理器12被镜像的方式发生变化,本发明人选用术语North(北)、South(南)、East(东)和West(西)(NSEW)。即使利用镜像,方向North、South、East和West保持它们的相对方向。在路由期间,即先前被描述的通过中间处理器12将消息从处理器12发送到另一个非相邻处理器12,这是相对的。方向(NSEW)在位于ROM 26的表中。
当左端口38c和上端口38a在阵列10a的外部边界时,它们不连接到阵列10a内部的任何元件,尽管如在此之前所讨论的,它们可能连接到外部I/O端口39(图1)。只要行和列的数字是偶数,下端口38d和右端口38b总是连接到另一处理器12。作为一个示例,处理器N7有4个垂直相邻的邻居,即连接到右端口38b的N6,连接到下端口38d的N1,连接到左端口38c的N8,和连接到上端口38a的N13。图9a是图9中四个节点,即N7、N8、N13和N14的放大视图,具有右端口38b、下端口38d、左端口38c和上端口38a符号。
每个处理器12都具有18比特的I/O寄存器47,如图3所示。每个I/O寄存器47都包括关于相邻的邻居是从端口38正在读取还是正在写入它的端口38的信息,和其它事物。图10是处理器12的I/O寄存器47的部分视图。比特B9到B16指示了处理器12的读取和写入状态。I/O寄存器47包含在其通信端口38上的读取和写入握手状态位50。这些是只读位50。通过读取这些位,处理器12可查看邻居是处于等待写入其端口38中的一个的不活跃状态还是等待从端口38中的一个读取的不活跃状态。如果邻居正等待写入处理器12,那么处理器12的I/O寄存器47中写入线状态位将变为高电平,这指示出了来自其特定邻居的写入消息正等待发送。同样地,如果邻居正等待从处理器12中读取,那么处理器12的I/O寄存器47读取线状态位将变为高电平,这指示出了用于该特定邻居的读取消息正等待被接收。
接下来的参照图9、图9a和图10的示例将进一步示例以上步骤。用于节点7的I/O寄存器47指示右端口38b的读取和写入状态位(分别是B16和B15),右端口38b在该示例中连接至处理器N6。比特B14和B13分别是下端口38d(连接到处理器N1)的读取和写入状态位;比特B12和B11分别是左端口38c(连接到处理器N8)的读取和写入状态位;比特B10和B9分别是上端口38a(连接到处理器N13)的读取和写入状态位;在该示例中,比特16-9总是以右、下、左和上(RDLU)的顺序给出相邻节点的读取和写入状态。接下来继续参考图10对I/O寄存器47另外阐述,其示出用于Node7的局部I/O寄存器。如果比特B16是高电平,那么存在来自于处理器N6的读取请求;如果比特B15是高电平,那么存在来自于处理器N6的写入请求;如果比特B14是高电平,那么存在来自于处理器N1的读取请求等等。
如前面所讨论的,PAUSE导致处理器12暂时挂起其正在处理的任务或保持不活跃以检验输入数据或指令。有两个例子适用于PAUSE例行程序。第一个例子发生在处理器12从之前不活跃的状态被激活之后。第二个例子发生在处理器12正在执行程序但采取了中断、暂停以寻找新的消息的时候。
NOP(也称为“no-op”)是无操作指令,并且在指令代码中被指定为四个点(....)。返回参照图4,NOP可以被用在使用一些或所有可用时段54可能是不必要的或不需要的情况下。例如,在消息中,4个NOP(....)被用作消息头,这部分地因为丢弃头(如被激活后)以及执行头(如同已执行或采取执行处理器自身代码中的中断)必须是安全的,这两个条件都由NOP指令来满足。对于来自不同方向的多条消息来说,通常同时到达也必须是安全的。当每个消息以四个NOP开始时,由于每个处理器正在读取相同的消息头,所以两个或者更多不同消息的同步读取将不会是灾难性的。
处理器12可被指定为主要是工作员或“生产型”处理器12。在缺少其它任何指令的情况下,该处理器12可以默认为工作员,并且执行图11所述的工作员模式循环200,该循环位于ROM中。该工作员处理器12保持休眠或非活跃,直到在工作员模式循环200开始时,包括四个NOP的消息头被发送到工作员处理器12。图11是表示利用PAUSE例行程序的工作员模式循环200的示例的流程图。当工作员处理器12在默认的ROM中的工作员模式循环200中是非活跃时,消息头的四个NOP在“读取消息”的操作210中被作为数据读取。当消息到达时,FETCH A指令读取一个字作为数据,其是来自于相邻处理器12的四个NOP,被放置进工作员处理器12的T寄存器44中。读取这四个NOP将唤醒工作员处理器12,如图11的流程图中的“唤醒”操作211所示。“唤醒”消息将激活工作员处理器12。作为工作员模式循环200的一部分,B寄存器40b的内容或地址作为默认设置在I/O寄存器47处被指出,因此FETCH B指令将在“读取I/O寄存器”操作212中读取I/O寄存器47的内容,以确定消息从哪个端口发送。
在“开始暂停”的操作213中,工作员处理器12没有任何处理活动,以按照前一步212中读取出的I/O寄存器47的内容准备下一步的“检查适合端口”的操作214。接下来进行来自适合端口的“执行消息”的操作215的步骤。在所有的输入消息都被执行之后,PAUSE将在“结束暂停”操作216中结束。这时,工作处理器12在“休眠/非活跃”的操作217中将变为非活跃,并一直等待直到另一条消息头到达,以激活或唤醒工作员处理器12。
简而言之,所有的工作员处理器12都休眠并暂停(PAUSE)。在所有相邻处理器12的写入请求被检验,开始PAUSE,然后执行输入消息的情况下,工作员处理器12休眠、唤醒并读取I/O寄存器47。在输入消息的结尾,有一返回(;),或者带有返回(;)的到端口38的JUMP。工作员处理器12然后返回到PAUSE例行程序,为另一条消息检验I/O寄存器47中的下一比特,执行消息,如果有的话,然后返回到工作员循环并进入休眠以等待更多的消息。
消息被视为任务。PAUSE将当前的输入消息视为唤醒任务,并没有任何东西的端口38视为休眠任务。
图12示出了使用PAUSE的第二种情况,其中处理器12正处于“处理主要功能”的操作220中。有时,处理器12将在“读取I/O寄存器”的操作221中检验I/O寄存器47,以检验相邻处理器12的输入状态。如果I/O寄存器47指示有输入消息,那么处理器12将在“调用暂停”的操作222中PAUSE。然后,处理器12将在“检验用于输入的端口”的操作223中检验由I/O寄存器47指示的端口38。如在“输入?”的判断操作224中所示,如果在指定的端口38有消息,那么处理器12将“执行输入消息中的所有代码”的操作225,包括四个NOP。执行输入消息之后,“最后端口完成?”的判断操作226将执行,以确定是否有其它端口38等待发送消息。如果其它端口需要被检验可能的输入,那么操作将从“检验用于输入的端口”操作的步骤223开始重复。如果没有输入,如判断224所示,处理器12将返回其初始任务(步骤220),在那些条件下,它将永远不会进入休眠。在按照右、下、左和上(RDLU)的顺序检验用于输入消息和执行任何代码的所有的端口38之后,最后的端口将完成(步骤226),并且处理器12在步骤220处将返回到其初始的主要功能。
多数时候,不同处理器12的通信序列处理由一组处理器12来执行。如果相邻处理器12没有准备好接受消息,那么传送处理器12将休眠,或工作于其它任务,并需要轮询I/O寄存器47以寻找消息。但是,多数时候当一组正在进行不同处理器12的通信序列处理时,处理器12刚刚写入端口38而相邻处理器12刚刚从其端口38中读取。从所有四个端口38的读取可以由处理器12执行,然后处理器12进入休眠,直到四个相邻处理器12中的任何一个写入;读取处理器12需要检验I/O寄存器47以查看哪个处理器12在被唤醒之后写入。该处理器12通过数据读取被唤醒。处理器12可以用A寄存器40a(数据)或B寄存器40b(数据),或P寄存器40c(数据或代码)读取;用P寄存器40c读取整个消息意味着,将执行包括四个NOP的完整消息。
处理器12可以作为工作员读取所有四个端口38,然后如果没有等待消息(图11)就进入休眠。如果处理器12忙于执行任务(循环),那么PAUSE调用可以进入任务循环工作以挂起第一个任务。主任务将被挂起,并将读取四个端口38,这向任务循环中添加四个更多的任务,然后返回到被挂起的主任务(图12)。
具有所连接的I/O管脚的处理器在I/O端口39中具有用于设置并显示这些管脚状态的比特。一些管脚是只读的,并可以通过读取I/O端口39的比特来读取。一些管脚可被读取/写入的,并可以通过读取或写入I/O寄存器47中的比特来进行读取或写入。在完成读取或写入后,握手信号消失,并且在I/O寄存器47中不可读。连接到未连接端口的唤醒管脚握手电路的管脚,在I/O寄存器47将是不可见的。如果包括唤醒管脚的地址被读取,那么当信号出现在管脚时,处理器12将唤醒,但是如果I/O寄存器47被读取,那么处理器12将看不到唤醒握手。唤醒管脚只被连接到唤醒电路,而不连接到I/O寄存器47。因此,管脚必须直接读取,以了解管脚是否唤醒了处理器12。如果管脚读取为0(零),那么其它端口38中的一个唤醒了处理器12。这就是串行工作员处理器中的ROM代码如何运转的情况。
串行处理器具有连接到I/O寄存器比特(比特17)的串行输入管脚,在比特可以被作为数据读取的情况下,但是它们也连接到未连接的串行通信端口的握手线。当管脚上的数据告诉处理器12到管脚或幻像(phantom)端口的写入正在发生时,读取未连接的串行通信端口的处理器12将唤醒。当实际端口38被读取时,处理器12将休眠,直到它获得写入握手信号,然后唤醒,读取数据。处理器被唤醒后,ROM代码通过读取管脚来区别处理器12被管脚唤醒或被端口38唤醒。如果管脚是低电平,处理器12读取I/O寄存器47并暂停,如果管脚是高电平,处理器12执行串行引导代码。
当读取或写入开始时,就升高读取或写入握手位。当一对读取或写入握手位被其它处理器12升高时,所有由该处理器12升高的位被拉低,处理器12苏醒,并且数据被传输。在数据被传输之后,任何升高的读取/写入握手标志位被拉低。
如果处理器12 JUMP到RDLU(四个相邻端口38的地址名称),它试图在所有四个端口38上读取并升高读取标志。然后,它进入到实质上是无源模式的休眠。当邻居向一个或更多的这些端口38写入并升高写入标志时,所有端口38的标志被复位,并且第一处理器12唤醒。如果处理器12使用A寄存器40a或B寄存器40b以及数据FETCH或STORE来读取地址,那么将发生相同的情况。它将进入休眠,直到四个(三个或两个)邻居中的一个利用数据将它唤醒。
如果唤醒管脚作为四个端口38所读取的地址的一部分,并且管脚没有变高电平,那么处理器12就会了解唤醒是来自于其它三个邻居的一个。串行引导处理器12的ROM中的串行引导来自于唤醒处理器12的管脚;如果管脚是高电平,那么代码从串行管脚载入并由处理器12引导。
有一种推荐路由,其通过使用X0包而不与任何东西发生冲突。X0代表在RAM服务器的0节点上的执行;用于特定路径上的节点0的消息头被定义在ROM中。一个不能相对于彼此路由消息。PAUSE允许消息被安全地路由。RAM服务缓冲器(在节点6即RAM服务器的下一个节点上)允许输入消息到达RAM服务器的节点0以在节点6的RAM中被缓冲,以便它们不阻止和阻塞从RAM服务器中发出的消息。这是不与X0冲突的推荐的路由路径。
重要的是要认识到,此处所描述的是若干处理器12之间的“协作多任务”。一组任务驻留在一个或多个端口38以及本机存储器上。FETCH B和PAUSE将依次检验用于输入可执行代码的所有端口38,并将端口38视为任务。端口38的指令可以从端口38被直接执行,而不需要先载入到处理器的RAM中。
尽管此处参照Froth公开了多个处理器12之间的PAUSE例行程序,但是多个处理器12之间的PAUSE例行程序的所有概念也可以应用到其它程序语言中。
以上所有示例只是本发明可用实施例的一些示例。本领域的技术人员将容易观察到,在不脱离本发明的精神和范围的情况下,可以进行其它许多修改和替换。因此,此处的公开并不用于限定,而且所附权利要求书将被解释为包括本发明的整个范围。
Claims (38)
1、一种用于在多台计算机处理器之间通信的方法,包括:
提供第一处理器;
提供第二处理器;以及
将输入从所述第一处理器发送至所述第二处理器,其中所述发送不在所述第二处理器的处理功能中引起中断。
2、如权利要求1所述的方法,其中:
所述输入包括从所述第一处理器到所述第二处理器的写入功能。
3、如权利要求1所述的方法,其中:
所述多台处理器中的每台都包括多个通信端口。
4、如权利要求3所述的方法,其中:
所述多台处理器中的每台都进一步包括输入/输出(I/O)寄存器。
5、如权利要求4所述的方法,其中:
每个所述输入/输出(I/O)寄存器都包括读取和写入状态位。
6、如权利要求5所述的方法,进一步包括:
检验所述读取和写入状态位的状态的步骤。
7、如权利要求1所述的方法,其中:
所述多台处理器包括位于芯片上的处理器阵列。
8、如权利要求7所述的方法,其中:
所述发送经由所述第一处理器与所述第二处理器之间的数据总线被提供。
9、如权利要求7所述的方法,其中:
所述处理器阵列包括至少一台具有四个相邻邻居处理器的内部处理器。
10、如权利要求7所述的方法,其中:
所述处理器阵列包括至少一台位于所述阵列的周界上的处理器,并且其中所述的至少一台处理器进一步包括到输入/输出(I/O)管脚的连接并进一步包括输入/输出(I/O)状态位。
11、一种用于在多台处理器之间共享处理任务的方法,包括:
提供第一处理器;
提供第二处理器;
在所述第一处理器与所述第二处理器之间提供通信端口;
将输入从所述第一处理器发送至所述第二处理器;以及
由所述第二处理器从所述第一处理器接收所述输入,其中所述发送不中断所述第二处理器的处理功能。
12、如权利要求11所述的方法,其中:
当所述第二处理器在执行任务时,发生所述发送。
13、如权利要求12所述的方法,其中:
当所述第二处理器暂时暂停所述执行并从所述第一处理器接受所述发送时,所述接收被完成。
14、如权利要求12所述的方法,其中:
所述将输入从所述第一处理器发送的步骤进一步包括将输入标志位设置为高。
15、如权利要求12所述的方法,其中:
由所述第二处理器对接收到的所述输入进行响应的步骤包括直接从所述端口执行所接收到的所述输入的代码。
16、如权利要求15所述的方法,其中:
所述直接从所述端口执行代码的步骤,在所述直接执行代码的步骤之前不将所述代码存储在存储器位置的情况下被执行。
17、如权利要求12所述的方法,进一步包括:
一软件程序,其中所述软件程序包括暂时暂停执行所述第二处理器的任务并针对来自所述第一处理器的潜在输入检验所述端口的步骤。
18、一种方法,包括:
将输入从第一处理器发送至第二处理器,其中所述第二处理器在所述发送时不活跃;
唤醒所述第二处理器以接收所述输入;
由所述第二处理器检验输入/输出(I/O)寄存器,以确定所述输入的来源;
由所述第二处理器从所述第一处理器接收所述输入;以及
由所述第二处理器对来自所述第一处理器的所述输入进行响应。
19、如权利要求18所述的方法,其中:
所述方法由软件循环来执行。
20、如权利要求18所述的方法,其中:
所述唤醒包括在所述唤醒之后安全丢弃的消息头。
21、如权利要求18所述的方法,其中:
所述检验的步骤包括确定相邻处理器的读取和写入握手状态位的状态。
22、如权利要求21所述的方法,其中:
所述接收步骤之后,跟随着降低所述第一处理器和所述第二处理器的读取和写入握手状态位。
23、如权利要求18所述的方法,其中:
所述动作之后,跟随着所述第二处理器返回到不活跃模式。
24、如权利要求18所述的方法,其中:
所述唤醒由多端口读取功能引起。
25、如权利要求18所述的方法,其中:
所述唤醒由管脚引起。
26、如权利要求18所述的方法,其中:
所述接收包括读取所述输入作为数据语句。
27、如权利要求18所述的方法,其中:
所述方法位于ROM中。
28、如权利要求27所述的方法,其中:
所述方法是ROM中的引导任务的部分。
29、一种计算机可读介质,其中具有用于使电子设备执行权利要求18中的所述步骤的代码。
30、一种用于在多台计算机处理器之间通信的方法,包括:
提供第一处理器;
提供第二处理器,其中所述第二处理器处于警醒但不活跃的状态;
为所述多台计算机处理器中的每台提供I/O寄存器;
将输入从所述第一处理器发送至所述第二处理器,其中所述发送使所述第二处理器变到活跃状态;
读取所述第二处理器的I/O寄存器,以确定从哪个处理器发出所述输入;以及
由所述第二处理器直接执行所述输入。
31、如权利要求30所述的方法,进一步包括:
读取所述第二处理器的所述I/O寄存器以附加的次数,以确定附加输入是否已经被发送至所述第二处理器;以及
由所述第二处理器执行所述附加输入。
32、如权利要求31所述的方法,其中:
所述附加输入从第三处理器发出。
33、一种处理系统,包括:
互连的计算机处理器的阵列,其中每台处理器进一步包括:
I/O寄存器;
位于所述处理器的四侧中的每侧上的通信端口;
用于将输入发送至其它所述处理器的发送机制;和
用于从其它所述处理器接收输入的接收机制;
监控机制,其中每台用于接收所述输入的所述处理器可确定所述输入的来源;和
执行机制,其中每台用于接收所述输入的所述处理器可对所述输入进行响应。
34、如权利要求33所述的系统,其中:
所述发送机制包括位于发送所述输入的第一处理器上的第一端口,所述第一端口被设置为邻近预期的接收处理器;以及
所述接收机制包括位于所述预期接收处理器上的第二端口,所述第二端口被设置为邻近所述第一处理器。
35、如权利要求34所述的系统,其中:
所述接收机制进一步包括锁存机制,用于接收直接从所述第一端口到所述第二端口的所述输入。
36、如权利要求33所述的系统,其中:
第一处理器的所述监控机制挂起所述第一处理器的活跃执行任务,以确定输入是否正由第二处理器试图发送。
37、如权利要求33所述的系统,其中:
所述输入由接收处理器直接从发送处理器的端口接收。
38、如权利要求33所述的系统,其中:
所述发送机制具有将所述输入从一台处理器发送至非相邻接收处理器的能力。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/355,513 US7904695B2 (en) | 2006-02-16 | 2006-02-16 | Asynchronous power saving computer |
US11/355,513 | 2006-02-16 | ||
US11/355,495 | 2006-02-16 | ||
US60/788,265 | 2006-03-31 | ||
US60/797,345 | 2006-05-03 | ||
US11/441,818 | 2006-05-26 | ||
US11/441,784 | 2006-05-26 | ||
US11/441,812 | 2006-05-26 | ||
US60/818,084 | 2006-06-30 | ||
US60/849,498 | 2006-09-29 | ||
US11/653,187 | 2007-01-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101454755A true CN101454755A (zh) | 2009-06-10 |
Family
ID=38370171
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200780000018XA Pending CN101454755A (zh) | 2005-05-26 | 2007-02-16 | 具有提高的操作效率的计算机系统 |
CNA2007800000156A Pending CN101366003A (zh) | 2006-02-16 | 2007-02-16 | 微循环计算机指令 |
CNA2007800000137A Pending CN101479714A (zh) | 2006-02-16 | 2007-02-16 | 来自输入源的指令的直接执行 |
CNA2007800000160A Pending CN101563679A (zh) | 2006-02-16 | 2007-02-16 | 用于监控计算机的输入的方法和装置 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800000156A Pending CN101366003A (zh) | 2006-02-16 | 2007-02-16 | 微循环计算机指令 |
CNA2007800000137A Pending CN101479714A (zh) | 2006-02-16 | 2007-02-16 | 来自输入源的指令的直接执行 |
CNA2007800000160A Pending CN101563679A (zh) | 2006-02-16 | 2007-02-16 | 用于监控计算机的输入的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7904695B2 (zh) |
CN (4) | CN101454755A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650981A (zh) * | 2011-02-25 | 2012-08-29 | 西安邮电学院 | 可编程操作级并行单元之间的同步结构 |
CN103678213A (zh) * | 2013-03-28 | 2014-03-26 | 威盛电子股份有限公司 | 通用串行总线集线器及其控制方法 |
US10216253B2 (en) | 2013-03-28 | 2019-02-26 | Via Technologies, Inc. | Universal serial bus hub and control method thereof |
CN110457072A (zh) * | 2019-06-25 | 2019-11-15 | 珠海格力电器股份有限公司 | 防止系统挂死的方法、装置、设备及计算机可读介质 |
CN111353752A (zh) * | 2019-11-05 | 2020-06-30 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937557B2 (en) * | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
JP2010114483A (ja) * | 2008-11-04 | 2010-05-20 | Renesas Technology Corp | 通信装置及び通信システム |
KR101738641B1 (ko) | 2010-12-17 | 2017-05-23 | 삼성전자주식회사 | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 |
CN109388606A (zh) * | 2018-09-27 | 2019-02-26 | 浙江大学 | 一种芯片内可重构的串行总线控制器 |
Family Cites Families (162)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3868677A (en) * | 1972-06-21 | 1975-02-25 | Gen Electric | Phase-locked voltage-to-digital converter |
US4215422A (en) * | 1978-05-22 | 1980-07-29 | International Business Machines Corporation | Selectively modifiable phrase storage for a typewriter |
US4215401A (en) * | 1978-09-28 | 1980-07-29 | Environmental Research Institute Of Michigan | Cellular digital array processor |
US4593351A (en) * | 1981-06-12 | 1986-06-03 | International Business Machines Corporation | High speed machine for the physical design of very large scale integrated circuits |
US4462074A (en) * | 1981-11-19 | 1984-07-24 | Codex Corporation | Do loop circuit |
DE3379282D1 (en) * | 1982-12-17 | 1989-04-06 | Victor Company Of Japan | Spectrum display device for audio signals |
US4739474A (en) | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
US4821231A (en) * | 1983-04-18 | 1989-04-11 | Motorola, Inc. | Method and apparatus for selectively evaluating an effective address for a coprocessor |
US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
US4672331A (en) * | 1983-06-21 | 1987-06-09 | Cushing Vincent J | Signal conditioner for electromagnetic flowmeter |
US4591980A (en) | 1984-02-16 | 1986-05-27 | Xerox Corporation | Adaptive self-repairing processor array |
EP0185215B1 (en) * | 1984-11-21 | 1993-09-22 | Harris Corporation | Forth-like language microprocessor |
US4984151A (en) * | 1985-03-01 | 1991-01-08 | Advanced Micro Devices, Inc. | Flexible, next-address generation microprogram sequencer |
US4742511A (en) * | 1985-06-13 | 1988-05-03 | Texas Instruments Incorporated | Method and apparatus for routing packets in a multinode computer interconnect network |
US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
US4789927A (en) | 1986-04-07 | 1988-12-06 | Silicon Graphics, Inc. | Interleaved pipeline parallel processing architecture |
US4868745A (en) | 1986-05-30 | 1989-09-19 | Hewlett-Packard Company | Data processing system and method for the direct and indirect execution of uniformly structured object types |
US4943909A (en) | 1987-07-08 | 1990-07-24 | At&T Bell Laboratories | Computational origami |
US5222237A (en) | 1988-02-02 | 1993-06-22 | Thinking Machines Corporation | Apparatus for aligning the operation of a plurality of processors |
US5029124A (en) * | 1988-05-17 | 1991-07-02 | Digital Equipment Corporation | Method and apparatus for providing high speed parallel transfer of bursts of data |
US4961167A (en) * | 1988-08-26 | 1990-10-02 | Mitsubishi Denki Kabushiki Kaisha | Substrate bias generator in a dynamic random access memory with auto/self refresh functions and a method of generating a substrate bias therein |
DE3901457A1 (de) * | 1989-01-19 | 1990-08-02 | Strahlen Umweltforsch Gmbh | Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit |
DE58908974D1 (de) * | 1989-11-21 | 1995-03-16 | Itt Ind Gmbh Deutsche | Datengesteuerter Arrayprozessor. |
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
JP2543306Y2 (ja) | 1990-06-12 | 1997-08-06 | 市光工業株式会社 | 車両用前照灯の直射型光学系 |
DE4019040A1 (de) * | 1990-06-14 | 1991-12-19 | Philips Patentverwaltung | Multirechnersystem |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5765015A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
JP3190080B2 (ja) | 1990-11-30 | 2001-07-16 | 株式会社東芝 | サンプリング周波数変換装置 |
US5434989A (en) * | 1991-02-19 | 1995-07-18 | Matsushita Electric Industrial Co., Ltd. | Cache memory for efficient access with address selectors |
US5218682A (en) * | 1991-05-10 | 1993-06-08 | Chrysler Corporation | Two-way handshake circuit and method for communication between processors |
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
EP0519348B1 (en) * | 1991-06-19 | 1999-07-28 | Hewlett-Packard Company | Co-processor supporting architecture adapted to a processor which does not natively support co-processing |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
CA2073516A1 (en) | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
US5386585A (en) * | 1993-02-03 | 1995-01-31 | Intel Corporation | Self-timed data pipeline apparatus using asynchronous stages having toggle flip-flops |
US5473271A (en) * | 1993-02-09 | 1995-12-05 | Dallas Semiconductor Corporation | Microprocessor output driver |
US5937202A (en) | 1993-02-11 | 1999-08-10 | 3-D Computing, Inc. | High-speed, parallel, processor architecture for front-end electronics, based on a single type of ASIC, and method use thereof |
JPH0713945A (ja) | 1993-06-16 | 1995-01-17 | Nippon Sheet Glass Co Ltd | 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造 |
CA2129882A1 (en) * | 1993-08-12 | 1995-02-13 | Soheil Shams | Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same |
US5535417A (en) * | 1993-09-27 | 1996-07-09 | Hitachi America, Inc. | On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes |
US5583990A (en) * | 1993-12-10 | 1996-12-10 | Cray Research, Inc. | System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel |
US5893148A (en) * | 1994-03-03 | 1999-04-06 | International Business Machines Corporation | System and method for allocating cache memory storage space |
JP3212213B2 (ja) | 1994-03-16 | 2001-09-25 | 株式会社日立製作所 | データ処理装置 |
JP3308770B2 (ja) * | 1994-07-22 | 2002-07-29 | 三菱電機株式会社 | 情報処理装置および情報処理装置における計算方法 |
US5630154A (en) * | 1994-10-11 | 1997-05-13 | Hughes Aircraft Company | Programmable systolic array system arranged in a found arrangement for passing data through programmable number of cells in a time interleaved manner |
US5706491A (en) * | 1994-10-18 | 1998-01-06 | Cyrix Corporation | Branch processing unit with a return stack including repair using pointers from different pipe stages |
JP3647069B2 (ja) * | 1994-11-11 | 2005-05-11 | キヤノン株式会社 | デジタル信号再生装置 |
US5680597A (en) | 1995-01-26 | 1997-10-21 | International Business Machines Corporation | System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions |
GB2299422B (en) | 1995-03-30 | 2000-01-12 | Sony Uk Ltd | Object code allocation in multiple processor systems |
US5727194A (en) * | 1995-06-07 | 1998-03-10 | Hitachi America, Ltd. | Repeat-bit based, compact system and method for implementing zero-overhead loops |
US5870591A (en) | 1995-08-11 | 1999-02-09 | Fujitsu Limited | A/D with digital PLL |
US5550489A (en) * | 1995-09-29 | 1996-08-27 | Quantum Corporation | Secondary clock source for low power, fast response clocking |
US5832291A (en) | 1995-12-15 | 1998-11-03 | Raytheon Company | Data processor with dynamic and selectable interconnections between processor array, external memory and I/O ports |
US5752259A (en) * | 1996-03-26 | 1998-05-12 | Advanced Micro Devices, Inc. | Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache |
US6567564B1 (en) * | 1996-04-17 | 2003-05-20 | Sarnoff Corporation | Pipelined pyramid processor for image processing systems |
US6130602A (en) * | 1996-05-13 | 2000-10-10 | Micron Technology, Inc. | Radio frequency data communications device |
US6192388B1 (en) * | 1996-06-20 | 2001-02-20 | Avid Technology, Inc. | Detecting available computers to participate in computationally complex distributed processing problem |
US5818289A (en) * | 1996-07-18 | 1998-10-06 | Micron Technology, Inc. | Clocking scheme and charge transfer switch for increasing the efficiency of a charge pump or other circuit |
US5911082A (en) * | 1997-02-25 | 1999-06-08 | Audio Digitalimaging Inc. | Parallel processing building block chip |
GB9704068D0 (en) * | 1997-02-27 | 1997-04-16 | Sgs Thomson Microelectronics | Trigger sequencing controller |
US6023753A (en) * | 1997-06-30 | 2000-02-08 | Billion Of Operations Per Second, Inc. | Manifold array processor |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6173389B1 (en) * | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
KR100252136B1 (ko) * | 1997-12-29 | 2000-04-15 | 윤종용 | 디지털 신호 처리 칩에서의 반복 구문 실행 제어회로 |
US6057791A (en) * | 1998-02-18 | 2000-05-02 | Oasis Design, Inc. | Apparatus and method for clocking digital and analog circuits on a common substrate to enhance digital operation and reduce analog sampling error |
US6236645B1 (en) * | 1998-03-09 | 2001-05-22 | Broadcom Corporation | Apparatus for, and method of, reducing noise in a communications system |
US7072330B2 (en) * | 1998-04-03 | 2006-07-04 | Consolidated Ip Holdings, Inc. | Systems for voice and data communications having TDM and packet buses and telephony station cards including voltage generators |
US6404274B1 (en) * | 1998-04-09 | 2002-06-11 | Kabushiki Kaisha Toshiba | Internal voltage generating circuit capable of generating variable multi-level voltages |
US6219783B1 (en) * | 1998-04-21 | 2001-04-17 | Idea Corporation | Method and apparatus for executing a flush RS instruction to synchronize a register stack with instructions executed by a processor |
US7028163B2 (en) * | 1998-06-22 | 2006-04-11 | Samsung Electronics, Co., Ltd. | Apparatus for controlling multi-word stack operations using a multi-bank stack in digital data processors |
US6081215A (en) * | 1998-07-06 | 2000-06-27 | Motorola, Inc. | High speed interlaced analog interface |
US6353880B1 (en) * | 1998-07-22 | 2002-03-05 | Scenix Semiconductor, Inc. | Four stage pipeline processing for a microcontroller |
US6128678A (en) * | 1998-08-28 | 2000-10-03 | Theseus Logic, Inc. | FIFO using asynchronous logic to interface between clocked logic circuits |
US20020152060A1 (en) * | 1998-08-31 | 2002-10-17 | Tseng Ping-Sheng | Inter-chip communication system |
US6219685B1 (en) * | 1998-09-04 | 2001-04-17 | Intel Corporation | Method to detect IEEE overflow and underflow conditions |
JP3344345B2 (ja) | 1998-12-15 | 2002-11-11 | 日本電気株式会社 | 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体 |
US6507649B1 (en) * | 1998-12-18 | 2003-01-14 | Ericsson Inc. | Mechanism and method for distributing ISUP stacks over multiple loosely coupled processors |
US6857013B2 (en) * | 1999-01-29 | 2005-02-15 | Intermec Ip.Corp. | Remote anomaly diagnosis and reconfiguration of an automatic data collection device platform over a telecommunications network |
FR2789501B1 (fr) * | 1999-02-09 | 2001-04-13 | St Microelectronics Sa | Procede et dispositif de reduction de la consommation d'un microcontroleur |
US6232905B1 (en) * | 1999-03-08 | 2001-05-15 | Agere Systems Guardian Corp. | Clocking technique for reducing sampling noise in an analog-to-digital converter |
US6966002B1 (en) | 1999-04-30 | 2005-11-15 | Trymedia Systems, Inc. | Methods and apparatus for secure distribution of software |
US6094030A (en) | 1999-05-13 | 2000-07-25 | Deltatee Enterprises Ltd. | Resistance and charging monitor within a standby battery bank |
JP2000357391A (ja) * | 1999-06-14 | 2000-12-26 | Fujitsu Ltd | 半導体集積回路 |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6560716B1 (en) * | 1999-11-10 | 2003-05-06 | Lsi Logic Corporation | System for measuring delay of digital signal using clock generator and delay unit wherein a set of digital elements of clock generator identical to a set of digital elements of delay unit |
US6647027B1 (en) * | 1999-11-10 | 2003-11-11 | Lsi Logic Corporation | Method and apparatus for multi-channel data delay equalization |
US6675125B2 (en) * | 1999-11-29 | 2004-01-06 | Syfx | Statistics generator system and method |
US6502141B1 (en) | 1999-12-14 | 2002-12-31 | International Business Machines Corporation | Method and system for approximate, monotonic time synchronization for a multiple node NUMA system |
US6937538B2 (en) * | 2000-02-02 | 2005-08-30 | Broadcom Corporation | Asynchronously resettable decoder for a semiconductor memory |
US6965991B1 (en) | 2000-05-12 | 2005-11-15 | Pts Corporation | Methods and apparatus for power control in a scalable array of processor elements |
US6725361B1 (en) * | 2000-06-16 | 2004-04-20 | Transmeta Corporation | Method and apparatus for emulating a floating point stack in a translation process |
JP2002049605A (ja) * | 2000-08-02 | 2002-02-15 | Fujitsu Ltd | タイマ調整システム |
US6912626B1 (en) * | 2000-08-31 | 2005-06-28 | Micron Technology, Inc. | Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner |
US6732253B1 (en) * | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6388600B1 (en) * | 2000-11-13 | 2002-05-14 | Trw Inc. | Asynchronous superconductor serial multiply-accumulator |
JP4560205B2 (ja) * | 2000-12-18 | 2010-10-13 | キヤノン株式会社 | A/d変換器及びそれを用いた固体撮像装置 |
DE10102202A1 (de) * | 2001-01-18 | 2002-08-08 | Infineon Technologies Ag | Mikroprozessorschaltung für tragbare Datenträger |
US6993669B2 (en) * | 2001-04-18 | 2006-01-31 | Gallitzin Allegheny Llc | Low power clocking systems and methods |
US6930628B2 (en) | 2001-05-03 | 2005-08-16 | Coreoptics, Inc. | Amplitude detection for controlling the decision instant for sampling as a data flow |
US20060248360A1 (en) | 2001-05-18 | 2006-11-02 | Fung Henry T | Multi-server and multi-CPU power management system and method |
US6898721B2 (en) * | 2001-06-22 | 2005-05-24 | Gallitzin Allegheny Llc | Clock generation systems and methods |
US20030005168A1 (en) * | 2001-06-29 | 2003-01-02 | Leerssen Scott Alan | System and method for auditing system call events with system call wrappers |
JP2003016051A (ja) * | 2001-06-29 | 2003-01-17 | Nec Corp | 複素ベクトル演算プロセッサ |
US6874079B2 (en) * | 2001-07-25 | 2005-03-29 | Quicksilver Technology | Adaptive computing engine with dataflow graph based sequencing in reconfigurable mini-matrices of composite functional blocks |
US7249357B2 (en) | 2001-08-20 | 2007-07-24 | Silicon Graphics, Inc. | Transparent distribution and execution of data in a multiprocessor environment |
US7380100B2 (en) * | 2001-09-07 | 2008-05-27 | Ipflex Inc. | Data processing system and control method utilizing a plurality of date transfer means |
US6411152B1 (en) * | 2001-09-24 | 2002-06-25 | Broadcom Corporation | Conditional clock buffer circuit |
US6970895B2 (en) | 2001-10-01 | 2005-11-29 | Koninklijke Philips Electronics N.V. | Programmable delay indexed data path register file for array processing |
JP3656587B2 (ja) * | 2001-10-01 | 2005-06-08 | 日本電気株式会社 | 並列演算プロセッサ、その演算制御方法及びプログラム |
US6636122B2 (en) | 2001-10-09 | 2003-10-21 | Zilog, Inc. | Analog frequency locked loop with digital oversampling feedback control and filter |
US6522282B1 (en) * | 2001-11-07 | 2003-02-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Estimation of timing offsets in parallel A/D converters |
US6845412B1 (en) * | 2001-11-07 | 2005-01-18 | Lsi Logic Corporation | Method and system for a host processor to broadcast data to instruction or data memories of several processors in a multi-processor integrated circuit |
US6920545B2 (en) | 2002-01-17 | 2005-07-19 | Raytheon Company | Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster |
US7158141B2 (en) * | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
US20030179123A1 (en) | 2002-03-22 | 2003-09-25 | Devilbiss Alan D. | Analog-to-digital conversion using a counter |
US7254520B2 (en) | 2002-05-14 | 2007-08-07 | Analysis And Measurement Services Corporation | Testing of wire systems and end devices installed in industrial processes |
US7089438B2 (en) | 2002-06-25 | 2006-08-08 | Micron Technology, Inc. | Circuit, system and method for selectively turning off internal clock drivers |
JP3509023B2 (ja) * | 2002-06-26 | 2004-03-22 | 沖電気工業株式会社 | ループ制御回路及びループ制御方法 |
US7415594B2 (en) * | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
US7471643B2 (en) | 2002-07-01 | 2008-12-30 | Panasonic Corporation | Loosely-biased heterogeneous reconfigurable arrays |
JP3987784B2 (ja) * | 2002-10-30 | 2007-10-10 | Necエレクトロニクス株式会社 | アレイ型プロセッサ |
US6894463B2 (en) | 2002-11-14 | 2005-05-17 | Fyre Storm, Inc. | Switching power converter controller configured to provide load shedding |
US7365661B2 (en) * | 2002-11-14 | 2008-04-29 | Fyre Storm, Inc. | Power converter circuitry and method |
US7353501B2 (en) * | 2002-11-18 | 2008-04-01 | Microsoft Corporation | Generic wrapper scheme |
US7131113B2 (en) | 2002-12-12 | 2006-10-31 | International Business Machines Corporation | System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts |
SE525470C2 (sv) | 2003-01-15 | 2005-03-01 | Infineon Technologies Ag | Metod och anordning för att uppskatta tidsfel i ett system med tidssammanflätade A/D omvandlare |
US7673118B2 (en) | 2003-02-12 | 2010-03-02 | Swarztrauber Paul N | System and method for vector-parallel multiprocessor communication |
US7613900B2 (en) * | 2003-03-31 | 2009-11-03 | Stretch, Inc. | Systems and methods for selecting input/output configuration in an integrated circuit |
US7581081B2 (en) | 2003-03-31 | 2009-08-25 | Stretch, Inc. | Systems and methods for software extensible multi-processing |
GB2400198B (en) | 2003-04-04 | 2006-04-05 | Advanced Risc Mach Ltd | Controlling execution of a block of program instructions within a computer processing system |
US7574581B2 (en) | 2003-04-28 | 2009-08-11 | International Business Machines Corporation | Cross-chip communication mechanism in distributed node topology to access free-running scan registers in clock-controlled components |
US7162573B2 (en) * | 2003-06-25 | 2007-01-09 | Intel Corporation | Communication registers for processing elements |
JP4423953B2 (ja) * | 2003-07-09 | 2010-03-03 | 株式会社日立製作所 | 半導体集積回路 |
US7257560B2 (en) * | 2003-07-31 | 2007-08-14 | Cisco Technology, Inc. | Cost minimization of services provided by multiple service providers |
US7170315B2 (en) | 2003-07-31 | 2007-01-30 | Actel Corporation | Programmable system on a chip |
US7157934B2 (en) * | 2003-08-19 | 2007-01-02 | Cornell Research Foundation, Inc. | Programmable asynchronous pipeline arrays |
JP2005217837A (ja) * | 2004-01-30 | 2005-08-11 | Sony Corp | サンプリングレート変換装置およびその方法、並びに、オーディオ装置 |
CA2499163A1 (en) | 2004-03-03 | 2005-09-03 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communication Research Centre Canada | Curved wavelet transform for image and video compression |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US20050206648A1 (en) | 2004-03-16 | 2005-09-22 | Perry Ronald N | Pipeline and cache for processing data progressively |
US7255476B2 (en) * | 2004-04-14 | 2007-08-14 | International Business Machines Corporation | On chip temperature measuring and monitoring circuit and method |
US20050262278A1 (en) | 2004-05-20 | 2005-11-24 | Schmidt Dominik J | Integrated circuit with a plurality of host processor family types |
US7502240B2 (en) | 2004-07-27 | 2009-03-10 | Silicon Laboratories Inc. | Distributed power supply system with separate SYNC control for controlling remote digital DC/DC converters |
US7392366B2 (en) * | 2004-09-17 | 2008-06-24 | International Business Machines Corp. | Adaptive fetch gating in multithreaded processors, fetch control and method of controlling fetches |
DE102004049161B4 (de) * | 2004-10-08 | 2009-10-29 | Infineon Technologies Ag | Zeitversetzt arbeitender Analog-Digital-Wandler |
US7265640B1 (en) * | 2004-12-23 | 2007-09-04 | Xilinx, Inc. | Circuit approach for common mode control in high-frequency clocks |
US7774784B2 (en) | 2005-03-17 | 2010-08-10 | Microsoft Corporation | Determining an actual amount of time a processor consumes in executing a portion of code |
US7484041B2 (en) | 2005-04-04 | 2009-01-27 | Kabushiki Kaisha Toshiba | Systems and methods for loading data into the cache of one processor to improve performance of another processor in a multiprocessor system |
US7409570B2 (en) * | 2005-05-10 | 2008-08-05 | Sony Computer Entertainment Inc. | Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition |
US7299342B2 (en) | 2005-05-24 | 2007-11-20 | Coresonic Ab | Complex vector executing clustered SIMD micro-architecture DSP with accelerator coupled complex ALU paths each further including short multiplier/accumulator using two's complement |
US7292170B2 (en) | 2005-06-13 | 2007-11-06 | Texas Instruments Incorporated | System and method for improved time-interleaved analog-to-digital converter arrays |
US20070035611A1 (en) * | 2005-07-27 | 2007-02-15 | Chao-Hung Wu | Mobile audio/video data transmission system and method for the same |
US7403055B2 (en) * | 2005-08-31 | 2008-07-22 | Infineon Technologies Ag | Duty cycle detector with first and second oscillating signals |
US7330964B2 (en) * | 2005-11-14 | 2008-02-12 | Texas Instruments Incorporated | Microprocessor with independent SIMD loop buffer |
US7319355B2 (en) * | 2006-01-03 | 2008-01-15 | Taiwan Semiconductor Manufacturing Co., Ltd. | Pulse generator |
DE102006009644A1 (de) | 2006-01-04 | 2007-07-05 | Biotronik Crm Patent Ag | Phasenregelkreis |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7528756B2 (en) * | 2007-03-22 | 2009-05-05 | Vns Portfolio Llc | Analog-to-digital converter system with increased sampling frequency |
US7555637B2 (en) | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
-
2006
- 2006-02-16 US US11/355,513 patent/US7904695B2/en not_active Expired - Fee Related
-
2007
- 2007-02-16 CN CNA200780000018XA patent/CN101454755A/zh active Pending
- 2007-02-16 CN CNA2007800000156A patent/CN101366003A/zh active Pending
- 2007-02-16 CN CNA2007800000137A patent/CN101479714A/zh active Pending
- 2007-02-16 CN CNA2007800000160A patent/CN101563679A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650981A (zh) * | 2011-02-25 | 2012-08-29 | 西安邮电学院 | 可编程操作级并行单元之间的同步结构 |
CN103678213A (zh) * | 2013-03-28 | 2014-03-26 | 威盛电子股份有限公司 | 通用串行总线集线器及其控制方法 |
US10216253B2 (en) | 2013-03-28 | 2019-02-26 | Via Technologies, Inc. | Universal serial bus hub and control method thereof |
CN110457072A (zh) * | 2019-06-25 | 2019-11-15 | 珠海格力电器股份有限公司 | 防止系统挂死的方法、装置、设备及计算机可读介质 |
CN111353752A (zh) * | 2019-11-05 | 2020-06-30 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
CN111353752B (zh) * | 2019-11-05 | 2024-04-19 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101563679A (zh) | 2009-10-21 |
US7904695B2 (en) | 2011-03-08 |
CN101479714A (zh) | 2009-07-08 |
US20070192646A1 (en) | 2007-08-16 |
CN101366003A (zh) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101454755A (zh) | 具有提高的操作效率的计算机系统 | |
CN101410823A (zh) | 异步计算机通信 | |
EP1821211A2 (en) | Cooperative multitasking method in a multiprocessor system | |
JPS62159268A (ja) | マルチプロセツサシステム | |
CN101339544A (zh) | 用于将数据和指令载入计算机的方法及装置 | |
US7966481B2 (en) | Computer system and method for executing port communications without interrupting the receiving computer | |
US8468323B2 (en) | Clockless computer using a pulse generator that is triggered by an event other than a read or write instruction in place of a clock | |
EP1821199B1 (en) | Execution of microloop computer instructions received from an external source | |
US7934075B2 (en) | Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array | |
JP4738891B2 (ja) | データ処理装置およびそのポーリング・ループ管理方法 | |
EP1821217B1 (en) | Asynchronous computer communication | |
JP4293086B2 (ja) | マルチプロセッサシステム及びプロセッサの制御方法 | |
JPS62166463A (ja) | デ−タ転送方式 | |
WO2007098024A2 (en) | Allocation of resources among an array of computers | |
JPH05108368A (ja) | 局所性に基づいた計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090610 |