定时端口的制作方法

文档序号:6477564阅读:442来源:国知局
专利名称:定时端口的制作方法
技术领域
本发明涉及具有至少一个定时端口的处理器,且具体涉及用于 与其他处理器或外部装置连4妄的4妄口处理器。
背景技术
处理器设计者所面临的一个挑战是,处理希望与处理器通信的 数量不断增加的外部装置。通常,这通过为处理器纟是供某种中断处 理能力以便处理在与外部装置连接的端口处出现的活动来实现。越 来越多地,在这些端口处使用更为复杂的接口逻辑(电路),以便例 如在-争个端口安排多个外部装置。
在许多不同情况中都需要接口连接。这里通过背景技术实例讨 i仑的 一种情况是移动应用处理。
图1示出了移动应用处理器2的示例性应用。应用处理器2包 括CPU 4和与多个外围设备8连接的多个接口控制器6。接口控制 器包括用于与硬盘驱动器(HDD ) 8a及SDRAM存储器8b连接 的存储器控制器6a;用于与照相机8c连接的视频控制器6b;用于 与LCD显示器8d连接的显示控制器6c;用于与麦克风8e、扬声器 8f及头戴式耳4几8g连4妄的音频控制器6d;以及用于与4建盘8h、通 用串行总线(USB )装置8i、安全数字(SD )卡8j 、多媒体卡(MMC ) 8k及通用异步接收器/发送器(UART)装置81连接的连通控制器
14(connectivity controller ) 6e。 4妄口控制器6通常经由总线3连4妄至 CPU4。系统还包4舌功率控制器IO和无线处理器12。
注意,接口控制器6多少是示意性地示出的,但是通常代表某 些类型的专用I/O逻辑或特定构造的端口。
按照惯例,采用中断(interrupt,中断信号)或通过4仑询技术来 实现外部接口。当采用中断时,外部的外围设备发出信号以告知处 理器其有数据准备输入至处理器或者其需要来自处理器的数据。 当使用轮询技术时,处理器不断检查装置的状态,以判断其是否准
备供应或接收数据。
执行应用处理器2 (例如图1的应用处理器)的一种可能性是, 使用专用集成电路(ASIC)微控制器。ASIC是硬连线的装置,其 可能包4舌专用于特定应用并^皮最^M匕为适应此净争定应用的纟敬处理 器。对于给定的功能,与其他选择相比,它们通常更便宜并且能耗 更低。然而,它们的设计复杂,必须预先设计并且不能轻易地重新 构造。
另一种可能性是使用现场可编程门阵列(FPGA)装置。FPGA 是能够在制造之后"在现场"被构造的半导体装置。为了构造FPGA, 首先,利用计算机例如通过绘制示意图或创建描述功能的文本文件 来建才莫想要的逻辑功能。FPGA包括通过静态构造的互连来进行通 信的查阅表阵列。用FPGA厂商提供的软件来编译计算机模型,这 产生可被下载到FPGA查阅表中的二进制文件。这允许装置的制造 商对l;PGA进行改编以满足其自身的个性化需求。
在此实例中,接口控制器6用作FPGA。这具有这样的好处 移动电话制造商可购买普通的FPGA装置2,然后就地(即"在现场,,)将其构造成专用于他们所期望的应用。然而,FPGA的缺点是, 其比ASIC更贵、更慢并且能耗更高。
在一弄^实例中,可在FPGA中l吏用整个芯片2,或者,芯片2 可以是通用处理器,在芯片2与各外围设备8之间连接有独立的 FPGA芯片。然而,这些选才奪可能更为昂贵并且能碑毛更高——对于 多数移动电话和其他消费装置都是限制的。
以ASIC的价格、速度、范围和能耗水平实现FPGA的可构造 性将是有利的。实现此目的所涉及的一个具体挑战是,为处理器与 其环境之间的交互作用4是供适当的定时。

发明内容
才艮才居本发明的 一个方面,才是供了 一种具有才妾口部分和内部环i竟 的处理器,其中,冲妻口部分包者舌至少一个端口, 一皮布置为4妻收当 前时间值;与所述端口相关联的第一寄存器,被布置为存储触发时 间值;以及比4交逻辑电^各,;陂构造为4全测当前时间值是否与触发时 间值匹配,如果检测到所述匹配,则在端口与外部环境之间传送数 据并改变就绪信号以指示此传送;并且其中,内部环境包括用于 在至少一个端口与内部环境之间传送数据的执行单元;以及用于调 度由执行单元执行的多个线程的线程调度器(thread scheduler),每 个线程包括一系列指令,所述调度包括调度一个或多个所述线程, 以便根据就绪信号运行。
这有利地允许线程的调度与数据传送的定时紧密连4妄,从而提 供对响应时间的精确控制,以输入和输出由那些线程处理的操作。
在实施方式中,线程调度器可被构造为保持一组可运行的线程, 并且,并且由线程调度器实现的所述调度可包括通过将一线程^v所述组去除而暂停(suspending)该线程。对于当要求快速反应时间时 所使用的中断来说此暂停线程方法是优选的。使用暂停的线程,线 程调度器可准备执行预期关联活动中的线程,这表示,处理器"开 始"准备反应。相反地,使用中断,执行单元被来自外部装置的信 号中断,同时运4亍一些可能不相关的^码。在中断的情况下,在中 断起作用之前必须^f呆存当前程序状态。因此,4吏用中断的反应时间 非常慢。轮询技术的能效更差,因为需要不断询问和响应。
处理器可包括被布置为用于输出当前时间值的计数器,所述至 少 一 个端口被布置为从计数器接收当前时间值。
处理器可包括多个端口和多个第一寄存器,每个第一寄存器与 相应的端口相关联并被布置为用于存储相应的触发时间值,其中, 由线程调度器实现的所述调度可包括调度一个或多个所述线程以便
于根据就绪信号运行。
所述传送可包括输入操作,由此将数据从外部环境捕获至所述 至少一个端口 ,并且所述改变可包括将所述就绪信号设置成第一状 态,这指示出数据可输入至内部环境中。所述传送可包括输出操作, 由此将凄t据,人每个所述至少一个端口传送至外部环i竟,并且所述改 变可包括将所述就绪信号设置成第二状态,这指示至少一个端口可 用于与内部环境进^亍进一步的凄t据传送。
寺丸行单元可适于4丸4亍将数据,人端口输入至内部环境的输入指 令,只要所述就绪信号中的相应一个处于第一状态,所述输入指令 就是所述 一 个或多个相关耳关线程的顺序的组成指令(constituent instruction )。执行单元可适于执行将数据从内部环境输出至端口的 输出指令,只要所述就绪信号中的相应一个处于第二状态,所述输 出指令就是所述一个或多个相关联线程的顺序的组成指令。才九行单元可适于在完成输入指令时将所述相应的就绪信号设置 成第二状态。^U于单元可适于在完成输出指令时将所述相应的就绪 信号设置成第一状态。
由线程调度器实现的所述调度可包括,暂停输入指令线程的执 行,直到相应的就绪信号被设置为所述第一状态为止。由线程调度 器实现的所述调度可包括,暂停输出指令线程的执行,直到相应的 就绪信号 一皮_没置为所述第二状态为止。
传送可包括输入操作和输出操作,并且执行单元可被布置为执 行输入指令和输出指令。
执行单元可一皮构造为4丸行i殳置触发时间指令,其在所述第一寄 存器的一个中存储触发时间值。
所述外部环境可包括容纳有所述处理器的集成电^各的至少一个 引脚。所述外部环境可包括位于容纳有所述处理器的集成电^各上的 另 一处理器。端口与内部环境之间的数据传送可包括端口与执行单 元之间的传送。内部环境可包括总线,并且端口与内部之间的数据 传送可包括端口与总线之间的传送。内部可包括多组第二寄存器, 每组第二寄存器存储与所述多个线程中的相应一个相关的信息,并 且端口与内部环境之间的传送可包括端口与所述第二寄存器中的一 个之间的传送。
所述至少 一 个端口可在时间戳模式中操作,从而端口使得时间 戮与端口和外部环境之间的数据传送相关联。接口部分可包括与所 述至少一个端口相关联的第三寄存器,时间戳的所述关联包括在执 行加有时间戳的传送时在第三寄存器中存储当前时间值。执行单元 可被构造为将时间戳从第三寄存器传送至与加有时间戳的传送相关 if关的线程的所述第二寄存器中的一个。执行单元可被布置为用于读取与从端口输入的数据相关联的时 间戳,并且将触发时间值设置为时间戳加上特定时间间隔,以便在 间隔过去之后触发从端口至外部环境的数据输出。
处理器可包括至少一个定时器,该定时器被布置为将当前时间 传送至执行单元。定时器可包括第四寄存器和比较逻辑电路,该第 四寄存器被布置为存储唤醒时间值,该比较逻辑电路被构造为如果
当前时间值与唤醒时间值匹配则产生指示;其中,由线程调度器实
现的所述调度可包括调度定时线程的暂停运行,直到收到指示为止。 执行单元可被构造为响应于指示从定时器中读取当前时间。
所述指示可包括:故传送至线程调度器的线程标识符,线程标识 符识別定时线程。所述指示可包括#皮传送至#1行单元的连续点矢量, 连续点矢量指定定时线程中将重新开始执行的点。执行单元可被构 造为用于执行设置矢量指令,所述指令设置所述连续点矢量。
根据本发明的另 一方面,提供了 一种调度具有4妻口部分和内部 环境的处理器中的线程的方法,接口部分包括至少一个端口和与所 述端口相关联的第 一寄存器,并且内部环境包括执行单元和线程调
度器,本方法包括在端口处接收当前时间值;在第一寄存器中存 储触发时间值;以及将当前时间值与触发时间值进行比较,以才全测 当前时间值是否与触发时间值匹配;如果4全测到所述匹配,则在端 口与外部环境之间传送数据并改变就绪信号以指示传送;操作线程 调度器以调度多个线程,以便由执行单元运行,每个线程包括一系 列指令,所述调度包括调度一个或多个所述线程,以便才艮据就绪信 号运4亍;以及才喿作才丸4亍单元,以在至少一个端口与内部环J竟之间传 送数据。
根据本发明的另一方面,提供了一种具有移动应用处理器、至 少 一 个外围设备、以及连接于移动应用处理器与外围设备之间的接口处理器的移动乡冬端,4妄口处理器具有4妄口部分和内部环境,其中,
接口部分包括至少一个端口,被布置为接收当前时间值;第一寄 存器,与所述端口相关耳关,^皮布置为存^f诸触发时间值;以及比4交逻 辑电路,被构造为一企测当前时间值是否与触发时间值匹配,如果枱r 测到所述匹配,则在端口与移动应用处理器或外围设备之间传送数 据并改变就绪信号以指示此传送;并且其中,内部环境包括用于 在至少一个端口与内部环境之间传送数据的执行单元;以及用于调 度由执行单元执行的多个线程的线程调度器,每个线程包括一 系列 指令,所述调度包括调度一个或多个所述线程,以便根据就绪信号 运行。
根据本发明的另一方面,提供了一种互连处理器阵列,所述处 理器中的至少一个具有接口部分和内部环境,其中,接口部分包括 至少一个端口, 一皮布置为接收当前时间值;第一寄存器,与所述端 口相关联,被布置为存储触发时间值;以及比较逻辑电路,被构造 为检测当前时间值是否与触发时间值匹配,如果冲企测到所述匹配, 则在端口与阵列中的另 一处理器之间传送凄t据并改变就绪信号以指 示此传送;并且其中,内部环:t竟包4舌用于在至少一个端口与内部 环境之间传送数据的执行单元;以及用于调度由执行单元执行的多 个线程的线程调度器,每个线程包括一系列指令,所述调度包括调 度一个或多个所述线程,以便才艮据就绪信号运行。
根据本发明的另 一方面,提供了 一种具有接口部分和内部环境 的处理器,其中,4妾口部分包括端口装置,故布置为4妻收当前时 间值;寄存器装置,与所述端口装置相关联,用于存储触发时间值; 以及比较装置,用于检测当前时间值是否与触发时间值匹配,如果 检测到所述匹配,则在端口装置与外部环境之间传送数据并改变就 绪信号以指示此传送;并且其中,内部环境包括用于在至少一个
端口与内部环境之间传送数据的执行装置;以及用于调度由执行单元执行的多个线程的线程调度装置,每个线程包括一系列指令,所 述调度包括调度一个或多个所述线程,以便根据就绪信号运行。
才艮据本发明的另 一方面,l是供了 一种用于调度具有接口部分和 内部环境的处理器中的线程的计算机程序产品,接口部分包括至少 一个端口和与所述端口相关联的第 一寄存器,并且内部环境包括对丸 行单元和线程调度器,所述程序包^"在计算才几上扭J于时运^f于以下步
骤的代码在端口处接收当前时间值;在第一寄存器中存储触发时 间值;以^将当前时间值与触发时间值进行比较,以检测当前时间 值是否与触发时间值匹配;如果4企测到所述匹配,则在端口与外部 环境之间传送数据并改变就绪信号以指示此传送;操作线程调度器 以调度由执行单元执行的多个线程,每个线程包括一系列指令,所 述调度包括调度一个或多个所述线程,以<更+艮据就绪信号运4亍;以 及在至少一个端口与内部环境之间传送数据。
为了更好地理解本发明以及示出本发明如何实施,现在将通过 实例参照相应附图"i兌明。


图1示出了本领i或中已知的FPGA装置的实例应用,
图2示出了接口处理器的实例应用,
图2a示出了接口处理器的另一实例应用,
图3是接口处理器的架构的图示,
图4是定时端口的图示,
图5是线程寄存器组的图示,图6是定时器的图示,
图7是示出了定时端口的才喿作的流程图;以及 图8是示出了定时器的操作的流程图。
具体实施例方式
图2示出了移动电话中的接口处理器的示例性应用。移动应用 处理器2需要与多个外围设备8通信。与图l中相同,应用处理器 2包括总线3、 CPU 4、用于与硬盘驱动器(HDD) 8a及SDRAM 存储器8b连接的存储器控制器6a,以及功率控制器10和无线电处 理器12。
然而,耳又代专用控制器6,图2的布置允许CPU4通过通用端 口 7与外部通信。在此实例中,才是供了通用端口 7a和7b,用于与 照相机8c和LCD显示器8d连接;提供了通用端口7c,用于与麦 克风8e、扬声器8f和头戴式耳机8g连接;并且提供了通用端口 7d, 用于与键盘8h、通用串行总线(USB)装置8i、安全数字(SD) 卡8j、多媒体卡(MMC) 8k及通用异步接收器/发送器(UART) 装置81连孑妻。
在图2中,冲妄口处理器14a、 14b和14c被布置于相关端口 7 的输出处,其中第一4妄口处理器14a连冲妾在图^象装置8c-8d与通用 端口 7a-7b之间,第二接口处理器14b连接在音频装置8e-8g之间, 并且第三接口处理器14c连接在通用端口 7d与各种连通装置8h-8m 之间。端口74又需是通用端口,因为专用显示、音频和连通功能是 由4妄口处理器14a-14c以下面描述的方式实^L的。端口 7不需4吏用 l''PGA逻辑电^各,因为4妻口处理器14才是供灵活性和可构造性(否则 该灵活性和可构造性要由FPGA提供)。接口处理器14a具有连接至端口 7a和7b的端口 22a和22b,以及连4妄至外部装置8c和8g 的端口 22c、 22d、 22e和22f。 4妄口处理器14b和14c具有类4以端 口 ,未在图2中示出。
接口处理器典型地涉及寺丸行用于通过接口传送lt据的具体协 议,重新格式化数据(包括在并行格式(parallel format)和串行才各式 (serial format)之间转换),以及可能更高水平的功能,例如对其进 ^亍编;马、压缩或力口密。
一接口处理器的另一种应用是,在图2a所示的多处理器芯片202 中作为瓦(tile)。这种芯片202使用高性能互连204 (该高性能互连 支持芯片202上的处理器14之间的通信)和芯片间链路206,从而 可用多个芯片轻+;^也构造系统。每个处理器14通过端口 22连4妄至 其芯片间链路206和高性能互连204。
以下更全面地讨论的接口处理器的重要特征是,其管理端口 22 处的活动的能力。每个接口处理器包括CPU、存储器和通信装置。 为了允许CPU与端口之间的直接且作出响应的连通,每个处理器具 有用于执行大量并发程序线程的硬件支持,每个线程都包括一系列 指令,并且至少其中一部分专门负责处理端口处的活动。如下面将 更全面地讨论的,硬件支持包括
一用于每个线程的一组寄存器,
-动态地选择执行哪个线程的线程调度器,
-用于输入和输出的一组端口 (端口22),
-用于使I/0与外部时域同步的一组时钟发生器,以及
-控制实时执行的一组定时器。在每个处理器上使用一小组线程可用来允许与处理器处理的其 他未决任务一起处理通信或输入/输出,并且通过允许一些线程继续 而其他线程暂停与远程^妄口处理器之间的未决通信,来允许互连中
的等4寺隐藏(latency hiding )。
图3示意性地示出了根据本发明的一个实施方式的接口处理器 14的示例性架构。处理器14包括用于在线程调度器18的控制下执 行指令的线程的执行单元16。处理器14还包括总线13、用于保存 程序代码和其他数据的随才几存取存储器(RAM) 24,以及用于存4诸 永久信息(例如,启动代码)的只读存4诸器(ROM)(未示出)。
线程调度器18动态地选择执行单元16应执行哪个线程。按惯 例,线程调度器的功能将仅仅是从程序存储器中调度线程,以保持 处理器被完全占用。然而,才艮据本发明,由线程调度器18实现的调 度也涉及端口 22处的活动。这方面应该注意的是,线程调度器可直 4妄连4妄(coupled to )至端口 22 ,以{更当由于端口处的l命入或l命出活 动而使得线程变得可运4于时,将延迟最小化。
线程调度器18所考虑的m个线程中的每个线程由寄存器库20 中的各组线程寄存器20….20m代表,线程调度器18可访问寄存器 库20。还提供了指令緩冲器(INSTR) 19,以在从存储器24取得 的指令随后传入执行单元16之前暂时保存该指令。后面将讨论这些 寄存器和緩冲器的细节。
在m个线程中,线程调度器18保持一组n个可运行的线程, 该组线程被称为"运行",优选地以循环方式依次乂人该组中冲是耳又指令。 当线程不能继续时,通过将其从运行组中去除而暂停该线程。这样 做的原因可以是,例如,因为该线程在等待以下类型活动中的一个 或多个-在线程能够运行之前其寄存器纟皮初始化,
-线程尝试乂人未就绪或没有可用凄t据的端口l命入,
-线程尝试对未就绪或没有用于数据的空间的端口输出,
-线程运行了导致其等待一个或多个事件的指令,所述事件可 能在端口准备好输入时产生。
注意,这里使用的术语"事件"指的是特殊类型的操作,其与
基本的输入-输出操作略有不同。以下结合图4和图5讨论所述区另'J。
处理器还包括第一时钟发生器1715其输出第一时钟信号ckl 形式的第一定时信号;多个第二时钟发生器172,每个笫二时钟发 生器分别输出第二时4中信号ck2、 ck2,和ck2"形式的相应第二定时 信号;以及第三时钟发生器173,其输出第三时钟信号ck3形式的第 三定时信号。为了简化术语,端口 22和第二时钟ck2、 ck2,和ck2" 可示意性地被认为是处理器的接口部分;而执行单元16、线程调度 器18、第一时钟17p第三时钟173以及其他部件(例如,总线13 和存储器24)可示意性地^皮认为是处理器的内部环境。与处理器相 互作用的4壬〗可外部装置,实体或刺纟敫因素(stimulus),均可一皮i人为 是外部环境的一部分。
第一和第三时钟发生器17,和173优选是时钟脉沖源。第二时钟 发生器172中的每个被布置为从第一时钟信号ckl、第三时钟信号 ck3及通过一位端口4妄收的外部时4H言号中的4壬一个得到其相应的 时钟信号ck2、 ck2,和ck2,,。第二时钟发生器172中的每个还具有八 位除法器(divider),其用于通过特定因凄t可选地分割接收到的时钟 信号。为了选择接收到的时钟信号,每个时钟发生器172包括源寄 存器SID,其存储由该发生器使用的相应时钟脉沖源的标识符。开关箱56被布置为使得第一时钟信号ckl或外部时钟信号连接至相应的第二时钟发生器172。因此,第二时钟发生器172中的每个可具有不同的时钟脉沖源和/或除法因( division factor )。
冲丸行单元16和线程调度器18由第一时钟信号ckl计时。这意味着,以与第一时钟信号ckl合拍的方式依次从运行组中调度线程;并且,那些线程的指令从存储器24中被取出,被发至执行单元16并与第一时钟信号ckl合拍地执行。这些指令中的一些指令将包括输入和输出指令,从而,与第一时钟信号ckl合拍地执行内部与端口之间的数据传送。也就是说,由第一时钟信号ckl的边沿触发这些任务。
如果是在计时模式中,那么由所选择的第二时钟信号对每个端口 22计时。可选4奪第二信号ck2、 ck2,和ck2,,中的任何一个,以通过开关箱52输出至任何端口 22。为了便于选冲奪,每个端口 22与存储第二时钟发生器172之一的标识符的相应寄存器CKID 54相关。开关箱52被布置为将来自所标识的时钟发生器的第二时钟信号供应至相应端口。为了以下讨i仑的目的,将夺支i殳,选4奪第二时钟信号ck2为端口22计时。这意p木着,数据以与第二时钟信号ck2合拍的方式在端口 22与外部环境之间传送,并且还意味着以与第二时钟信号ck2合拍的方式用信号告知用于输入的数据的可用性和用于输出的端口的可用性。也就是说,由第二时钟信号ck2的边沿触发这些任务。以下结合图4更详细地讨论端口 22的操作。
注意,当在时域之间传送数据时,将需要某种类型的同步化以避免亚稳定性,亚稳定性是当数据信号正在改变状态时如果不小心读取了该数据的话所出现的问题。用于避免亚稳定性的同步化技术在本领域中是非常公知的,在这里不再进一步讨论。除了时钟发生器172以外,处理器14还包括由第一时钟信号ckl
计时的计数器57。与简单地断断续续振荡的时钟信号不同,计数器输出的值在第一时钟信号ckl的多个循环上逐渐累加。因此,由此计数器57输出的值代表当前系统时间(tm),这是自计数器上一次
#皮复位后所经过时间量的测量值。
连同该系统时间计数器57 —起提供了多个定时器58。这些定时器58本身不计算时间值,而是每个定时器58可用来将时间值从计数器57传送至执行单元16 (通过未示出的连接)。如果定时器处于无条件才莫式下,那么执行单元可通过定时器58简单地读耳又当前时间值tm。如果定时器58处于有条件模式下,那么只有当时间值处于存储于与该定时器相关的寄存器TIME59中的触发时间值之后时,执行单元才从定时器58读取该时间值。相应的线程可中止,直到触发时间值与当前时间值匹配为止。定时器也可用来产生事件,如下面结合图6所"i寸i仑的。
此夕卜,时间计数器57可用来控制通过端口 22输入和输出数据的定时。如果是在定时模式中,那么端口 22通过特定时间的检测而触发,而不是由第二时钟信号ck2的边沿触发。这有利地使得当与外部装置相互作用时能够4青确控制响应时间。单独的相应TIME寄存器55与每个端口 22相关联,用于存储触发时间值。每个端口 22从计数器57接收当前系统时间值,并且每个端口 22包含比较逻辑电i 各,比專交逻辑电鴻4皮构造成〗吏得,当端口处于定时才莫式而非计时模式时,仅在当前时间值tm与存储在相应TIME寄存器55中的触发时间值匹配时才在端口与外部环境之间传送数据。也就是说,当检测到匹配时,来自外部环境的输入数据被取样到端口中,或者从端口输出的凄t据呈现至外部环境。当才企测到匹配时,也4又发信号告知端口与外部环境之间的此传送。这代替了由第二时钟信号ck2的边沿触发而传送和发信号。此外,与时间计数器57的连接允许每个端口用输入时间对输入
数据加时间戳,并使得该时间戳可用于线程。
有利地,为了有助于快速反应时间,在线程调度器18与批J亍单 元16之间提供直接的硬线连接28,以允许线程调度器18控制执行 单元16应耳又出并运4亍哪个线程或哪些线程。在线程调度器18与每 个端口 22之间还i殳置有直^妄的石更线^各径30a、 30b、 30c;并且在线 程调度器18与每个寄存器20之间设置直接的硬线路径29卜.29m。 这些直接路径优选地提供控制路径,其允许线程调度器将相应线程 与一个或多个端口 22相关耳关,并且特别地当发生某种活动时允许就 绪指示从端口返回,允许处理器快速响应于发生在端口 22处的活动 或刺激。以下将参照图4和图6讨i仑线^i调度器相对于端口的才喿作。
寺丸4亍单元16还通过直4矣连4妻27和31访问每个端口 22a-22c和 每个寄存器20,-20m,从而在芯处理器、寄存器和外部环境之间提供 直接连接。优选地,这些直接路径提供进一步的控制路径,以允许 #^亍单元将条件传送至端口 。下面参照图4进一步详细地对其进4亍 讨论。直接路径27和31也可允许数据在线程寄存器20与端口 22 之间直4妻输入和l叙出,从而允许线程与外部环境直冲妄通信。例如, 可从外部装置将数据直接写入线程的操作数寄存器之一,而不是写 入存储器24中然后取出。相反地,在运算之后,可由执行单元16 拾取来自操作数寄存器的数据,并将其直接从端口 22发出。这显著 才是高了反应时间。
注意,通过"直接连接"或"直接路径",其表示与执行单元和 程序存储器24之间的连4妄分开的连接。因此,例如,线程调度器 18和执行单元16可使用从端口 22输入的数据,而不必将数据存储 在存储器24中以及随后从其中取出。具体地,如果执行单元16与 存储器24之间是通过总线13连接的,则"直接"连接或路径表示 与总线分开的一种连4妄或路径。因此,端口22、寄存器20、线程调度器18和#1行单元16之间的各种通信都不需要总线仲裁Y更可发生, 改进了反应时间。端口 22也可设置有与总线13的额外连接(未示出)。
本申请中使用的术语"端口"可指"引脚端口 (pin port)"或 "数据端口"。引脚端口是针对单个引脚的直接接口。引脚端口是负 责检测在处理器芯片的物理边界的引脚处发生的信号的单独的逻辑 转换(即,上升边沿和下降边沿)的逻辑电路。数据端口是"高水 平",因为它们可处理典型地累积在I/O緩冲器中且典型地组成凄t据 (例如,字)一部分的一位或多位。取代检测上升边沿和下降边沿, 数据端口在特定时刻处理一位或多位的状态或逻辑电平。数据端口
可以是开/关芯片(on/offchip),或者可以是针对嵌在同一芯片上的
另一处理器的端口。
图4示意性地示出了根据本发明的优选实施方式的端口 22。端 口 22包括I/O緩冲器32,用于将输入数据传送至处理器14并从处 理器14传送输出数据。另外,每个端口 22包括活动处理逻辑电路 36,用于监测发生在端口处的活动并通过至少一个,尤绪4立或#尤绪冲示 记37用信号告知特定活动的发生。优选地通过直接路径30将就绪 标记37发信号告知线程调度器,也可通过直接连接31由执行单元 来控制就绪标记37。注意,直4妾连4妻31优选地包括多个连^^,如 图4所示。端口可能4全测到的潜在活动包括
-已将n据iir入至端口, -已将某些特定凄t据输入至端口, -端口已经可用于4lr出,和/或 -已达到特定时间。
29为了有助于才企测这种活动,端口 22 i殳置有一组寄存器38。这 些寄存器包括用于存储相关线程的标识的线程标识符(TID)寄存 器、用于存储一个或多个条件的控制(CTRL)寄存器、用于存储 程序中暂停执行处的位置的连续点矢量(VECTOR)寄存器,以及 用于存储与条件相关联的任何数据的数据(DATA)寄存器。由线 程调度器18通过直接路径30(在图3中直接路径是30a、 30b、 30c ) 将值TID写入寄存器38,并且由冲丸行单元16通过直4妾3各径31将值 VECTOR、 CTRL和DATA写入。 一旦才企测到所需活动,TID就返 回至线程调度器18,以便识别相关联的线程。寄存器38还包括识 别用于端口的时钟发生器172的时钟发生器标识符寄存器CKID 54、 存储特定时间值的触发时间寄存器TIME 55、以及时间戳寄存器 TSTAMP。活动逻辑电路还包括启用标记(enable flag) 39,在下面 只于其进4亍进——步详细i寸"i仑o
注意,虽然在图4中示出了寄存器38包含在端口 22内,{旦是 事实上,其可位于处理器14内的其他位置并简单地与端口 22相关联。
对于外部环境来说I/O緩冲器的内容物是可见的。也就是说, 如杲端口是芯片外端口 ,那么1/0緩沖器32中的凄史据将出现在引脚 上,并且如果端口是另一处理器的芯片上端口,那么i/o緩沖器中 的数据将出现在处理器之间的互连204上。I/O緩沖器中的数据也 将出现在总线13的总线驱动器的输入处,并且也可由冲丸4亍单元16 通过直孑妄连4妾(如J^口 31 ) 问。
执行单元16、线程调度器18和总线13由第一时钟信号ckl计 时。如果端口 22处于计时模式中,那么如下所述,I/O緩冲器32 和活动逻辑电路36由选择的第二时钟信号ck2计时。当冲丸行输入时,在第二时钟信号ck2的边沿上将凄t据从外部环 境(例如,从引脚)捕获至I/0緩冲器。活动逻辑电^各36还判断就 绪位37在第二时钟信号的边沿上有效。由线程调度器通过直接连接 30检测到就绪位37位于第一时钟信号ckl的边沿上。通过4企测到 判断有效的就绪位,线程调度器确保相关线程处于运行组中。然后, 通过完成该线程的输入指令的执行(通过将数据放入才丸行单元的寄 存器(可能包括线程寄存器20)的一个或多个中、或放置在总线13 上),由执4亍单元以与第一时钟信号ckl合拍的方式对输入数据起作 用。 一旦完成输入,执行单元16就通过直接路径31判断就绪位37 在第一时4中〗言号ckl的边沿上无步丈。
还注意,如果在CTRL和DATA寄存器38中i殳置条件,那么 在第一时钟ckl的边沿上捕获的数据与该条件相比较,并且仅当由 活动逻辑电路36发现满足该条件时设置就绪位37。
为了执行输出,必须无效就绪位37,以指示出I/O緩沖器32 当前不涉及输入并且也不涉及此前的输出。,支i殳就绪位37净皮无效, 这由第一时钟信号ckl边沿上的线程调度器通过直接路径30检测 到。通过一会测无效的就绪位,线程调度器确^呆相关线程位于运行组 中。然后,以与第一时钟信号ckl合拍的方式,通过完成该线程的 输出指令的运行(或通过从一个或多个执行单元的寄存器(可能包 括线程寄存器20)呈现数据、或使得可从总线13得到数据),执行 单元16使得输出数据可用于I/O緩冲器32。 一旦运行输出指令, 执行单元16也通过直4妄^各径31判断就绪位37有效,其指示出I/O 緩冲器32正^皮输出占用并且还不可用于其他后续输出。然后,将输 出数据计时在第二时钟信号ck2的边沿上的I/O緩沖器32中,使得 对于外部环境可见。活动逻辑电^各36再次4吏得就绪位37在第二时 钟信号ck2的边沿上无效,以指示出该输出已净皮呈现至外部环境。另一方面,如果端口 22处于定时才莫式中,那么如下所述,I/O 緩沖器32和活动逻辑电路36由特定时间触发。
当运行输入时,当活动逻辑电路36检测到从系统时间计数器 57接收的当前系统时间值tm与存储在TIME寄存器55中的触发时 间值匹配时,将数据从外部环境(例如,从引脚)捕获到I/O緩沖 器中。 一旦检测此匹配,则活动逻辑电路36还判断就绪位37有效。 由线程调度器通过直接连接30检测到就绪位37位于第一时钟信号 ckl的边沿上。通过4企测到有效的就绪位,线程调度器确保相关线 程在运行组中。然后,通过完成该线程的输入指令的运行(通过将 数据放入一个或多个执行单元的寄存器(可能包括线程寄存器20 ) 中、或放置在总线13上),由执行单元以与第一时钟信号ckl合拍 的方式对输入数据起作用。 一旦完成输入,执行单元16就通过直接 路径31判断就绪位37在第一时钟信号ckl的边沿上无效。
为了执行输出,如上所述,必须无效就绪位37,以指示出I/O 緩冲器32当前不涉及输入并且也不涉及此前的输出。々i设就绪位 37被无效,这由第一时钟信号ckl边沿上的线程调度器通过直4妻^各 径30来一企测。通过4企测无效的就绪位,线程调度器确保相关线程位 于运行组中。
然后,通过以与第一时钟信号ckl合拍的方式完成该线程的输 出指令的运行(通过从一个或多个执行单元的寄存器(可能包括线 程寄存器20)呈现数据、或使得可从总线13得到数据),执行单元 16再一次使得输出数据可用于I/O緩冲器32。 一旦运行输出指令, 执行单元16也通过直^妻^各径31判断就绪位37有效,其指示出I/O 緩冲器32正被输出占用并且还不可用于其他后续输出。当活动逻辑 电路36才全测到/人系统时间计婆丈器57接收的当前系统时间值tm与 存储在TIME寄存器55中的触发时间值匹配时,其触发I/0緩沖器 32以从内部环境取出输出数据,从而使得数据从外部环境可见。一旦才企测此匹配,活动逻辑电^各36还会无效就绪位37,以指示出该 输出已被呈现至外部环境。
当端口处于定时才莫式中时,忽略CTRL和DATA寄存器中的任
何条件。
端口 22还具有时间戳才莫式,由此活动逻辑电^各36在将数据从 外部环境捕获至I/O緩沖器32的时刻记录系统时间值tm。此时间 戳被存储在与端口相关联的时间戳寄存器TSTAMP中。执行单元 16可用来从TSTAMP寄存器中读耳又时间戳,并将其存储在正处理 输入的线程的操作数寄存器OP (见下文)之一中。如果端口处于时 间戳模式中,那么,不清除就绪位37,直到已读取TSTAMP寄存 器为止。
因此,此时间戳特征和用于每个相应线程的一组寄存器一起有 利地允许在端口处对输入加时间戳,然后将该时间戳传送至负责该 输入的线程的寄存器。
在本发明的尤其有利的实施方式中,加有时间戳的输入可与定 时输出 一起使用,以便精确地控制由特定线程处理的输出与输入之 间的相对定时。也就是说,本发明可使线程在输入之后执行一定数 量循环的输出。在此情况下,线程从端口 22的TSTAMP寄存器中 读取时间戳,然后将(相同端口的或另一端口的)TIME寄存器55 中的触发时间值设置为时间戳加上所述数量的循环。
图5示出了用来代表线程的示例性线程寄存器库20。库20包 括对应于当前由线程调度器16所考虑的各线程T!至Tm的多组寄存 器。在此优选实例中,每个线程的状态由18个寄存器4戈表2个控 制寄存器、4个存取寄存器和12个操作数寄存器。这些寄存器如下所述。控制寄存器
-PC是程序计数器
-SR是状态寄存器 存取寄存器
-GP是全局公用指针(global pool pointer )
-DP是数据指针 -SP是栈指针 -LR是链接寄存器
才喿作数寄存器OPl…OP12
控制寄存器存储关于线程状态的信息并用于控制线程的运行。 特别地,线程接受事件或中断的能力由保存在线程状态寄存器SR 中的信息控制。存取寄存器包括用于程序的局部变量的栈指针、 通常用于程序之间共享数据的数据指针、以及用于存取大常凄t和程 序入口点的常数公用指针。操作数寄存器OPl…OP12由执行算术 运算和逻辑运算、存取数据结构和调用子程序的指令使用。另外, 当使用加有时间戳的输入时,线程将时间戳读入到线程操作数寄存 器OP的一个中。
还提供了多个指令緩冲器(INSTR) 19,以用于暂时存储线程 的实际指令。每个指令緩冲器优选地是64位长,每个指令优选地是 16位长,每个緩沖器允许存储4个指令。在线程调度器18的控制 下从程序存储器24取出指令,并将其暂时存放在指令緩冲器19中。
执行单元可使用寄存器20和緩冲器19中的每个。此外,线程 调度器18可至少使用每个线程的状态寄存器SR。如上所述,这里所用的术语"事件,,表示特定类型的纟喿作,或 表示与该特定类型的操作相对应的活动。基于操作的事件与基本输 入-输出操作稍微不同,并以如下方式工作。通过将来自执行单元
16的连续点矢量以及将来自线程调度器18的线程标识符传送至与 端口 22相关耳关的VECTOR和TID寄存器38(优选地经由直^妄^各径 31和30),来首先为线程设置事件。关联的条件和条件数据也可写 入端口 22的CTRL和DATA寄存器38。因此在端口处设置事件, 但是不必启用。为了使端口能够产生事件的指示,还必须判断端口 的启用标记39有效,优选地由线程调度器18通过直接^各径30判断。 此外,为了使线程本身能够接受事件,必须将线程的相应状态寄存 器SR中的线程事件启用(EE)标记设置为事件启用的。 一旦由此 设置并启用事件,线程就可以使用基于事件的等待指令暂停等待事 件,该基于事件的等待指令作用于线程调度器18。此时,可从相关 的指令緩沖器19中删除当前等待指令。当事件发生时,例如一些数 据被输入至端口 ,通过使线程标识符和连续点矢量从端口 22返回到 线程调度器18和冲丸4亍单元16,发出信号告知该发生,允"i午乂人禾呈序 存储器24中取出连续点矢量处的指令并使其进入指令緩冲器19, 并且在代码中的适当点处恢复运行。当事件发生时,相应状态寄存 器SR中的线程的EE标记可i殳置为事件禁止,以防止线程在事件发 生后立即对事件做出反应。作为事件发生时线程执行指令的结果, 启用标记39可^皮无效。
在设置多个端口以便为等待来自 一个或多个端口的事件作准备 时,可以判断启用标记39有效。在启用一组端口启用标记之前线程 的EE标i己也可^皮i殳置为事件启用的,并且在ot匕情况下,就绪的即 将启用的第 一端口将生成事件,该事件使当前指令被废除并通过在 连续点矢量处立即耳又出和运行指令而继续运行。端口的启用标记39和状态寄存器EE标记的优点在于,事件的 启用和禁止是与事件设立和通过等待指令暂停线程分离的,对于特
定线程和/或对于各种不同线程,允许容易地转换开启和关闭不同的 输入和输出条件。例如,即4吏事件一皮禁止,该事件也可在端口 22 处设立。因此,事件可由线程重新使用,因为虽然事件已发生过一 次,但是线程标识符、连续点矢量和条件仍存储在端口 22的TID、 VECTOR、 CTRL和DATA寄存器38中。因此,如果线程需要重新 使用事件,那么端口的寄存器38不需要被重新写入,但是,端口的 启用标记39可简单地-波再次判断有效和/或线禾呈的状态寄存器SR中 的EE标记可一皮重新^殳置为事件启用的。然后,另一个等待指令将 暂停线程,等待同一事件的再次发生。
此外,连续点矢量的使用允许每个线程启用多个事件。也就是 说,给定线程可通过将连续点矢量传送至一个端口 22a而在该端口 处设立一个事件,通过将不同的连续点矢量传送至另一端口 22b而 在该另一端口处^L立另一个事件,等等。线程还可通过对每个相应 端口的不同启用标记39分别判断有效或无-文而独立i也启用和禁止 各个事件。然后,等待指令将使线程暂停,等待任何被启用的事件。
与事件对比,使用基本I/0操作,线程调度器18不将连续点矢 量传送至VECTOR寄存器,并且不使用端口的启用标记39或状态 寄存器SR中的EE标记。替代地,等待指令仅留在指令緩沖器19 中,并且如果必需的话,^又中止才丸行,以等祠4叙入或丰命出端口的可 用性,如就绪标记37所指示的。在实施方式中,^f义要求TID寄存 器根据基本I/O进行调度。基本I/O可能使用或可能不使用CTRL 和DATA寄存器中的条件。如果不使用这种条件,那么端口一就绪, I/O就将会完成。
还要注意, 一旦线程的运^f亍在事件之后^皮恢复,则当然随后可 执行基本I/0操作。相反地, 一旦线程在基本I/O之后被恢复,那
36么其随后可包4舌事件4喿作。4壬4可这种事件和I/O的链可包括在线程
中。例如,在事件净皮禁止的同时(即,在端口的启用标记39和/或 状态寄存器的EE标记纟皮无效的同时),〗旦是在事件矢量和条件仍保 留设置在寄存器38内的同时,基本I/0操作可在两个基于事件的等 待操作之间交叉进行。也就是说,事件可在完成第一个基于事件的 等待操作之后被禁止,随后运行的基本I/O使用相同端口 ,然后同 一事件被重新启用,用于在第二基于事件的等待#:作。如上所述, 基本I/O操作中止和解除中止该线程,^f旦是不影响端口的启用标记 39或状态寄存器中的EE标记,也不将控制传送至事件矢量。
定时器58也可用来产生事件。图6中示出了一个示例性定时器 58。如上所述,定时器58本身不产生定时器值tm,而是乂人系统时 间计数器57冲妻收该值。定时器58可^皮i人为与这样的闹钟类似只 要当前系统时间值tm与存储在TIME寄存器59中的触发时间值匹
配,就产生指示。
与端口 22类似,每个定时器58包括具有就绪标记37,和定时 器事件启用标记39,的活动逻辑电^各36,。每个定时器58还包括寄 存器38,其包括与端口 22中一样的CTRL、 TID和VECTOR寄存 器。寄存器38还包括TIME寄存器59,在条件数据即为触发时间 的意义上,其对应于端口 22的DATA寄存器。
为了对线程设立定时器事件,并且对定时器设置定时器事件启 用标记39,。执行单元还将控制寄存器CTRL构造为指示出定时器 输出在触发时间上是有条件的,将触发时间存储在TIME寄存器59 中,并将线程的连续点矢量存储在VECTOR寄存器中。线程调度器 18将线程标识符存储在TID寄存器中。最后,由于^^丸行等待指令, 冲丸ff单元16在线考呈的状态寄存器SR中纟殳置线程事件启用标记EE。 当活动逻辑电路36,检测到从时间计数器57接收的当前系统时间tm 与存储在TIME寄存器59中的触发时间匹配时,其判断就绪标记37,有效,将线程标识符从TID寄存器返回至线程调度器18,并将 连续点矢量从VECTOR寄存器返回至执行单元16。然后,在线程 调度器18的指导下,执行单元在由连续点矢量为该线程指定的代码 中的点处继续净丸4亍线程。
因此,可以看到定时器58如4可用来以与端口 22类合乂的方式产 生事件。这种定时器事件可用来,例如,在每个指定时间周期(例 如,每毫秒)p奐醒线禾呈一次。
如果不对定时器59设置定时器事件启用标记39,,那么TIME 寄存器59 ^f又用来确定这样的时间,在所述时间之后4丸4亍单元能够/人 定时器58读取系统时间tm,如结合图3所讨论的。这将导致如 果当前时间在该时间之前,那么线#呈尝试读取定时器以中止。
现在,参照图7的流程图描述使用定时端口 22的数据的示例性 传送。在步骤100,执行单元16开始在线程调度器18的指导下执 行线程。在步骤102,执行单元16将触发时间值传送至端口 22的 TIME寄存器55。在步骤104,执行单元将端口 22设置成定时模式。 在步骤106,执行单元遇到线程内的输入或输出指令。在输出指令 的情况下,执行单元将通过4吏I/O緩冲器32可用到输出数据而部分 地完成输出指令。^^设还未达到触发时间,也将不设置端口 22的就 绪位37。线程调度器18 4企测到此情况并通过将该线程乂人运4于组中 去除而中止线^f呈。现在,端口 22对线^艮负责,而不是线;f呈调度器 18对线程负责。在步骤108,端口 22的活动逻辑电路36从系统时 间计数器57接收当前系统时间值tm。在步骤110,活动逻辑电路 36判断当前系统时间值tm是否与存储在TIME寄存器55中的触发 时间值匹配。如果不匹配,那么该方法返回至步骤108,在该步骤 中,端口继续读耳又计凄丈器57,同时当前时间^f直tm增力口。然而,如果当前时间与触发时间匹配,那么该方法分支到步骤
114,其中,在将输入数据从外部环境捕获至I/O緩沖器32的情况
下使得输入数据可用于内部环境,并且,在将输出数据从内部环境
捕获至I/O緩沖器32的情况下使得输出数据对于外部环境可见。在 步骤116,活动逻辑电^各36判断就绪位37有效以指示该传送。在 步骤118,线程调度器检测就绪位37并将线程返回至运行组,导致 执行单元16恢复线程的4丸4于。在输入情况下,恢复的冲丸行将包括完 成输入指令,该指令将数据从I/O緩沖器32输入至内部环境中,例 如,输入至线程的操作数寄存器OP的一个中。
现在,参照图8描述定时器58产生事件的示例性使用。在步骤 120,冲丸行单元16开始在线程调度器18的指导下运4于线程。在步骤 122,执行单元16和线程调度器18通过如下方式为定时器58设立 事件将连续点矢量、条件和触发时间从执行单元16传送至 VECTOR 、 CTRL和TIME寄存器38,;以及将相关线禾呈对丰lT入的线 程标识符从线程调度器18传送至TID寄存器38,。步骤122还包括 在线程的状态寄存器SR中设置线程事件启用标记,并设置定时器 事件启用标记39,(如果还未设置的话)。在步骤124,执行单元16 执行等待指令,该指令导致线程调度器通过将线程从运行组中去除 而暂停该线程的才丸4亍。现在,定时器58对线程负责,而不是线程调 度器18对线程负责。在步骤126,定时器58的活动逻辑电路36, 从系统时间计数器57接收当前系统时间值tm。在步骤128,活动 逻辑电路36判断当前系统时间值tm是否与存储在TIME寄存器59 中的触发时间值匹配。如果不匹配,那么该方法返回至步骤126, 在该步骤中,定时器58继续读耳又计^t器57,同时当前时间值tm增 加。
然而,^口果当前时间与触发时间匹配,那么该方法分支到步-骤 132,其中,活动逻辑电^各36,判断就绪位37,有效以指示该传送。在步骤134,活动逻辑电路36,将连续矢量从VECTOR寄存器返回 至才丸行单元16,并将线程标识符/人TID寄存器返回至线程调度器。 注意,步骤136和134可基本上同时执行。在步骤136,线程调度 器18将线程返回至运-行组,导致护^行单元继续线程的护、行。
接口处理器由于其基于线程的结构而可支持若干种编程方法。 接口处理器可以作为执4亍标准输入和输出的单个常少见处理器,或者 其可被编程为凄t百个通信部件的并行阵列的一部分。纟是供了支持这 些选择的指令集。指令集包括支持初始化、终止、开始和停止线程 以及提供输入/输出通信的特殊指令。输入和输出指令允许与外部装 置非常快地通信。它们支持高速、低时延输入和输出以及高级协同 编程技术。以下将更全面地讨论它们在处理端口活动中的应用,其 中描述了可用来实现本发明的实例指令。
端口可在输入或输出才莫式下使用。在输入才莫式中,条件可用来 过滤传送给线程的H据。如下面所述,当凄t据可用时,端口可用来 产生事件或中断。这允许线程监测若干端口,仅为那些就绪的端口 服务。然后一旦就绪,输入和输出指令IN和OUT可用来将数据传 送至端口或/人端口传送lt据。在此情况下,IN指令/人n位端口输入 并零扩展n个最不重要的位,OUT指令输出该n个最不重要的位。
两个另外的指令INSHR和OUTSHR最优化数据传送。INSHR 指令将寄存器(例如,才喿作数寄存器)的内容向右移n位,用从n 位端口输入的数据填补最左侧的n位。OUTSHR指令将数据的n个 最不重要的位输出至n位端口 ,并将寄存器的内容向右移n位。
OUTSHR端口 端口 < s[位0宽度(端口 )]; 从其输出
s — s宽度(端口 )端口和移位 INSHR端口 s<~s 宽度(d); 移位和llr入
40端口 [> s[位(每字位-宽度(d))宽度(d)] 来自端口
其中,"D>"代表条件输入,"<T代表条件输出。
INSHR指令可用来通过端口的宽度移位数据。这允许从一个端 口输入的数据被移位,然后,与从另一端口输入至相同寄存器的数
据连接。
在使用端口前必须对其进行构造。用SETC指令对其进行构造, 该指令用来定义端口的若干独立设置。每种设置都具有缺省模式, 并且,仅在需要不同的模式时才需要构造。
SETC 端口 ,模式端口 [ctrl] <~模式 设置端口控制
SETC模式设置的作用如下所述。每种设置的首项是缺省模式。
模式 作用
OFF 端口无效;引脚高阻抗
ON 有效
IN 端口是输入
OUT 端口是输出(但是输入返回当前引脚值)
RAW 数据直接传送至引脚或从引脚直接传送数据
CLOCKED 数据传送与时钟同步
TIMED 对ft据传送定时
EVENT 端口 一寻引起事4牛
INTERRUPT 端口将引起中断DRIVE
PULLDOWN
PULLUP
RISING FALLING
亏1脚被高驱动和低驱动 引躲卩下^立(H立,否则为高阻4元 引脚上^立1^立,否则为高阻拍二
端口时钟的上升边沿是第一(捕获)边沿 端口时钟的下降边沿是第一(捕获)边沿
DATAPORT 端口用作标准端口
CLOCKPORT 端口时4中净皮其车俞出直4妄牵制
NOSTAMP 未4丸4亍时间戳
S TAMPED 启用时间戳
UNCOND
EQUAL
NE
TRANSITION GR
端口始终就绪;iir入立即完成
当端口值等于其DATA值时,端口就绪 当端口值与其DATA值不同时,端口就绪
当端口值向其DATA值改变时,端口就绪 当端口值大于其DATA^直时,端口就绪
当端口值小于其DATA值时,端口就绪
DRIVE、 PULLDOWN和PULLUP才莫式^又当端口方向是OUT 时是相关的。TRANSITION条件仅对1位端口是相关的,并且GR 和LS条件仅对1位以上的端口是相关的。
每个端口具有就绪位37,其用来控制通过端口的数据流,并定
义端口是否能够完成^r入或丰lr出指令。耳又决于端口构造,以不同方
式设置就绪位。当执行SETC、 SETD或SETV指令中的任何指令时,
清除就绪^立。输入模式中的端口可被构造为执行条件输入。条件过滤输入数 据,从而仅使符合条件的数据返回至程序。当设置条件时,IN和
INSHR指令将仅当端口就绪时完成。如上所述,在未就绪的端口上 执行输入指令将中止线程。当就绪时,端口设置其就绪位,这通过 信号告知线程调度器。线程恢复并重新执行输入指令。这一次,端
口就绪,返回数据并清除就绪位37。
一旦设置端口就绪位,满足条件的凄t据值:帔捕获,,人而软件得 到符合条件的值,即使端口上的值随后会改变。当执行IN或INSHR 指令并设置就绪位时,则返回数据并清除就绪位。如果不设置就绪 位,那么线程中止,直到设置就绪位为止。如果设置条件,那么将 数据与条件比较,并且仅当符合条件时才设置就绪位。
当执行OUT或OUTSHR指令时,如果清除就绪位,那么端口 提取数据并设置就绪位。如果设置就绪位,那么线程中止,直到就
绪4立,皮端口清除为止。
事件和中断允许端口自动地将控制传送至预定的事件控制器 (handler )。线程接受事件或中断的能力由保持在线程状态寄存器 SR中的信息控制(见图4 ),并可用TSE和TSD指令明确地控制。 此信息包4舌事件启用标i己(EE)和中断启用标^己(IE)。
TSE s SR<~SRvs 线禾呈一犬态启用
TSD s SR<~SRa,s 线禾呈习犬态禁止
这些指令的操作数应是以下中的一个
EE 启用或禁止事件 IE 启用或禁止中断
43事件是在其^皮i殳立的同一范围内^皮处理。因此,对于所有线禾呈 的状态都有效的事件,允许线程对事件快速反应。线程可用端口执 行输入和输出操作,端口产生事件,同时不改变部分或所有事件信 息。这允许线程完成处理事件,并立即等待另一类似事件。
必须在使用SETV指令启用事件之前设置事件控制器的程序位 置。端口具有确定何时将产生事件的条件;用SETC和SETD指令
设置这些条件。
可用无条件事件启用(EEU)指令来启用通过特定端口的事件 产生,并可用无条件事件禁止(EDU)指令将其禁止。如果事件条 件操作数为真,那么真事件启用(EET)指令启用事件,否则禁止 该事件;相反地,如果事件条件操作数为假,那么假事件启用(EEF) 指令启用事件,否则禁止该事件。这些指令被用来使安全输入的执 行最优化。以下是一些用于在端口上构造事件的指令才各式实例。
SETV 端口,v端口[矢量]卄v i殳置事4牛矢量 SETD 端口,d端口[数据]—d 设置事件数据 SETC 端口,c端口[ctrl]仨c i殳置事件控制 EET端口,b 端口[启用]仨b;端口 [ tid]—线程真事件启用 EEF端口,b端口[启用]仨b;端口 [ tid] <~线程作支事件启用 EDU端口端口[启用]<~假;端口[tid]—线程 事件禁止 EEU端口 端口[启用]<~真;端口[tid]—线程 事件启用
已经在一个或多个端口上启用事件,线程可4吏用WAITEU指令 来等待至少一个事件。随着控制被传送至由相应事件矢量指定的事 件控制器,这可能导致事件立即发生,且事件是通过清除EE (事件启用)标记而禁止。替代地,可暂停线程,直到事件发生为止——
在此情况下,当事件发生时将清除EE标记,并且线程恢复4丸4亍。
WAITETb如果b贝'J SR[EE]—真 如果真则事件等4寺 WAITEFb如果-b则SR[EE] <~真 如果4叚则事件等4寺 WAITEU SR[EE]仨真 事件等待
CLRE SR[EE]—々支; 禁止所有事件 对所有端口 对线程 如果端口[tid]:线程则端口[启用]—假
为了最优化重复等待一个或多个事件直到条件发生的常见情 形,提供了事件等待指令的条件形式。仅当其条件操作数为真时 WAITET指令等待,且仅当其条件操作数为假时WAITEF等待。
可用单个CLRE指令禁止由线程启用的所有事件。这会在所有 端口中禁止事件产生,所述端口具有由线程启用的事件。CLRE指
令还清除线程的状态寄存器中的事件启用状态。
为了最优化线程对高优先级端口的响应度,在随后开始启用端 口并使用 一个事件等待指令之前,TSE EE指令可用来首先启用线程 上的事件。这样,处理器可4要优先级顺序扫描端口。这可能导致事 件一一皮启用就立即^皮处理。
与事件相比,中断不在当前范围内净皮处理,因此必须在中断处 理器的执行之前保存当前的PC和SR (以及潜在的一些或所有其他 寄存器)。在由端口 r产生中断时,自动出现以下代码
SAVEPC <~ PC;SAVESR — SR; SR[EE]—假; SR[IE] <~假; PC仨r[矢量]
当处理器完成时,中断线程的执行可由RFINT指令实现。
RFINT PC — SAVEPC; /人中断返回 SR —SAVESR
每个处理器优选地具有以lOOMHz记录的时钟(第三时钟173 )。 通过内部产生的时钟或者通过外部4是供的时钟,这可同步进4亍输入 和输出操作。提供一组时钟发生器172来进行此操作,每个时钟发 生器可用时4中173、时4中17i或外部一4立时4中作为其时4中源。
每个时钟发生器还具有八位除法器。当其设置为零时,源信号 直接通向其输出。源时钟的上升边沿用来才丸行除法。因此,设置值 1将导致来自改变输入的每个上升边沿的时钟发生器的输出,减半 输入频率f;并且,i殳置值i将产生输出频率f/2i。
处理器^f呆持用于线禾呈的一组可用源,例如,时4中发生器、定时 器和端口 。资源被分配以由带有GETR指令的线程使用。提供一组 时钟发生器172来进行此操作,每个时钟发生器可使用处理器时钟 17,、另一内部时钟173或外部一位时钟作为其时钟源。
用SETCLK指令设置时钟发生器172的源。如果操作数指定一 位端口,那么该端口用作时钟输入。如果揭:作数指定定时器ID,那 么时钟输入被设置为从定时器接收输入。用SETD指令设置除法因 数。使用操作数的最低八位,忽略剩下的。
46SETCLK发生器发生器[sid]仨s设置时钟发生器的源
一旦时钟发生器已被构造,那么从时钟发生器计时的输入端口需要被连接至其上。这也可用端口上的SETCLK指令来连接,将时钟发生器ID指定为另 一操作数。
SETCLK端口 端口 [ckid] <~ s 设置端口的时钟发生器
当从时钟发生器172驱动输出端口 22时,引脚上的数据与相应的时钟信号(例如,ck2)的边沿同时改变状态。如果若干输出端口由相同的时钟信号计时,那么它们将表现为用作单个输出端口 ,虽然处理器可在不同时间对它们提供数据。类似地,如果从时钟发生器172驱动输入端口 22,那么将与相应的时钟信号的边沿同步地对数据采样,并且如果若干输入端口由相同的时钟信号计时,那么它们将表现为用作单个输入端口 ,虽然处理器可在不同时间乂人那些端口获得数据。替代地,每个端口可由不同的第二时钟信号ck2、 ck2'、ck2"等计时。例如,每个端口可由/人不同的外部时4中源产生的时4中信号计时。
因此,计时端口的使用从输入和输出接口的同步操作去耦输入和输出,呈序4丸4亍的内部定时。
当端口i殳置为CLOCKED模式时对端口计时。时钟專lr入来自时钟发生器,并用SETCLK指令设置,将时钟发生器ID作为操作数。
通过"i殳置由EDGE i殳置^直决定的RISING和FALLING模式而设置时钟脉冲边沿,凄t据捕获于所述时钟脉沖边沿上并呈现在输出处。当模式被构造为RISING时,上升边沿是第一边沿,而下降边沿是第二边沿。当模式被构造为FALLING时,下降边沿是第一边沿,而上升边沿是第二边沿。从第一边沿上的引脚捕获输入凄t据。在此边沿上,也i殳置就绪
位。当执行IN或INSHR指令并且设置就绪位时,返回数据并清除就绪位。如果不设置就绪位,那么中止线程,直到设置就绪位为止。
如果设置条件,那么将时钟脉冲边沿上所捕获的数据与该条件进行比较,并且仅当符合条件时设置就绪位。
在第二边沿上发送输出数据。此边沿还清除就绪位。当运行OUT或OUTSHR指令时,如果清除就绪位,那么记录数据并设置就绪位,并且如果设置就绪位,那么中止线程,直到清除其为止。
如果设置时钟发生器以从外部时钟源产生第二时钟信号,那么根据外部时钟参考,可解除中止的输入和输出。这便于对外部刺激快速反应。
端口的CLOCKPORT才莫式导致所选4奪的第二时4f^[言号ck2 (而不是数据)从相应端口被输出。此模式可用来使处理器和其所连接的外部装置之间的接口同步。例如,此特征可用来使图2A所示的阵列中的两个接口处理器14的第二时钟信号同步,以使它们之间的接口由共同的第二时钟信号计时,但是每个处理器14根据其本身相应的第 一 时4中在内部运4亍。在DATAPORT才莫式中,端口简单地丰lr入或输出数据。
处理器还具有一组定时器58,这些定时器可由线程用来读耳又当前时间或等〗寺直到^见定时间为止。
用GETR TIMER指令分配定时器。可用SETC指令对其进行构造,并且其可构造成的两种模式是
UNCOND 定时器始终就绪——立即从定时器读取时间,以及
48AFTER 当时间在其TIME值之后时,定时器就绪。
在UNCOND (无条件)模式中,IN指令读取定时器的当前值。在AFTER模式中,IN指令等待,直到系统时间计数器57的值在定时器的TIME寄存器中的值之后(晚于定时器的TIME寄存器中的值)为止。可用SETD指令设置定时器的TIME寄存器中的值。
定时端口与计时端口类々乂,不同之处在于,不4吏用时4中l命入,而l吏用来自系统时间计H器57的丰lr入。用SETPTIME(设置端口时间)指令设置时间值。定时端口通常与加有时间戳的端口共同使用,
因为这允许对响应时间的精确控制。用GETTSTMP指令读取时间
卿减。
SETPTIME端口 端口 [时间]—s设置端口时间GETTSTMP端口,d d <~端口 [tstamp] 获4寻时间戳
在输入模式中,从外部环境(例如,引脚)捕获数据,并且当存储的数据值与当前时间匹配时,设置就绪位;忽略条件。当执行IN或INSHR指令并设置就绪位时,返回捕获的凄t据并清除就绪位。如果不i殳置就绪位,那么线程中止,直到i殳置就绪位为止。在输入模式中,SETPTIME指令从不中止。
在输出模式中,记录的数据对于外部环境可见(例如,放置于引脚)并当存储的数据值与当前时间匹配时,设置就绪位。当执行OUT或OUTSHR指令时,如果清除就绪位,那么记录数据并设置就绪位。如果i殳置就绪位,那么线程中止,直到清除其为止。
在输出模式中,如果设置就绪位,那么SETTSTMP指令将中止,直到清除其为止。这确保了端口的存储时间在完成等待输出之
前不会改变。当端口处于时间戳模式中时,那么从外部环境捕获数据的时间
被记录在时间戳寄存器中。用GETTSTMP指令读取时间戳寄存器。当处于时间戳模式中时,IN和INSHR指令不清除就绪位——<又有
厂、T\ >m 士匕>^、\^~ U入壬i^ 乂;
^xi二丄i o i丄v丄厂 <日'"7 /巧(小't/u^j 'i工。
在定时端口和时间戳的以下实例中,l命出端口 (outport)在输_入端口 ( inport )改变状态之后的定时器循环的某一间隔时改变状态。
IN
SETC SETCSETDSETC

IN
GETTSTMP
ADD
SETTIME
OUT
BBU
inport, v
inport, STAMPED
inport, NEinport, voutport, TIMED
i叩ort , vinport, tt,t,间隔outport, t
outport, v
环 //分支
以下是示出了定时端口和时间戳的使用的另一实例。从i叩ort获得数据,用来访问查找表中的相应输出值,然后通过outport输出该4直。当夕卜吾卩端口 ckport变高时,耳又4寻凄U居。乂人ckport端口只于inport端口计时,并且ckport的状态改变#皮加有时 戳,因此乂人inport耳又得的数据将与此时间戳相对应。最后,通过定时端口 outport在^见定
数量的定时器循环之后输出数据。
GETR
SETC
SETC
SETD
SETQLK
SETC
SETCLK
SETC

IN
GETTSTMPIN
LDWADD
SETTIME
OUT
BBU
ck, CLOCKckport, STAMPEDckport, TRANSITIONckport, 1ck, ckport
inport, CLOCKED
inport, ck
outport, TIMED
ckport, dckport, ti叩ort, d
q,查找表,dt,t,间隔
〃从查找表载入寄存器中
outport, toutport, d

从以上描述和实例中,可看到本发明如何允许在线程的执行、管理和调度中精确定时,并因此4是供对由那些线程处理的输入和输出才喿作的响应时间的4青确控制。可以理解,以上实施方式仅通过实例进行描述。作为时钟信号
的智4戈,ckl、 ck2、 ck2,、 ck2"等中的一个或多个可由不失见则定时信号或选通信号^,代。当前时间的不同源(位于处理器的内部或外部),也可用来对端口和/或定时器计时。虽然仅相对于输入描述过时间戳,但是其原理也可延伸至时间戳输出才喿作。在其他实施方式中,可根据芯片的期望规格提供不同的寄存器组和指令集。在一些实施方式中,线程标识符不需要传送至端口,但是可保持线程调度器的响应度,或存储在别的地方。替代地,可以在端口为每个线程提供单独的就绪标记,以使线程标识符被传送至端口从而选择正确的就绪信号,但是线程标识符不需要在活动检测后返回至线程调度器。此外,条件和/或条件数据不需要传送至端口。相反地,可在端口处预先构造条件和/或可在线程调度器处或其他地方评价条件。可在来自端口和定时器以外的其他源的活动的基础上调度线程。可在
处理器的各种部件之间4是供不同的互连。同样,本发明并非专用于带有移动应用处理器的移动终端中。对于本领域的技术人员来说,其他应用和构造将是显而易见的。本发明的范围不限于所述实施方式,而是由所附^又利要求限制。
5权利要求
1.一种具有接口部分和内部环境的处理器,其中,所述接口部分包括至少一个端口,被布置为接收当前时间值;第一寄存器,与所述端口相关联,被布置为存储触发时间值;以及比较逻辑电路,被构造为检测当前时间值是否与触发时间值匹配,如果检测到所述匹配,则在端口与外部环境之间传送数据并改变就绪信号以指示所述传送;并且其中,内部环境包括执行单元,用于在至少一个端口与内部环境之间传送数据;以及线程调度器,用于调度多个线程以便由执行单元执行,每个线程包括一系列指令,所述调度包括调度一个或多个所述线程以便根据就绪信号执行。
2. 根据权利要求1所述的处理器,包括被布置为输出当前时间值 的计数器,所述至少 一 个端口被布置为接收来自所述计数器的当前时间-f直。
3. 根据权利要求2所述的处理器,包括多个端口和多个第一寄存 器,每个第一寄存器与相应的端口相关联并被布置为存储相应 的触发时间值,其中,由所述线程调度器实现的所述调度包括 调度一个或多个所述线程以便才艮据就绪信号寺丸行。
4. 根据权利要求1所述的处理器,其中,所述传送包括输入操作, 由此将凄t据乂人外部环境捕获至所述至少一个端口 ,并且所述改 变包括将所述就绪信号或信号设置成第一状态,所述第一状态 指示输入至内部环境的所述ft据的有效性。
5. 根据权利要求1所述的处理器,其中,所述传送包括输出操作,由此将数据从所述至少一个端口中的每个呈现至外部环境,并 且所述改变包括将所述就绪信号或信号设置成第二状态,所述 第二状态指示与内部环境进一 步传送数据的至少 一个端口的有效性。
6. 根据权利要求4所述的处理器,其中,所述执行单元适于执行 将凄t据从端口输入至内部环境的输入指令,只要所述就绪信号 或信号中相应的一个处于所述第一状态,所述输入指令是所述 一个或多个线^t的顺序的组成指令。
7. 根据权利要求5所述的处理器,其中,所述执行单元适于执行 将数据从内部环境输出至端口的输出指令,只要所述就绪信号 或信号中相应的一个处于所述第二状态,所述输出指令是所述 一个或多个线程的顺序的组成指令。
8. 根据权利要求6所述的处理器,其中,所述寸丸行单元适于在完 成输入指令时将所述相应的就绪信号设置成所述第二状态。
9. 才艮据4又利要求7所述的处理器,其中,所述才丸4亍单元适于在完 成输出指令时将所述相应的就绪信号设置成所述第一状态。
10. 根据权利要求6所述的处理器,其中,由所述线程调度器实现 的所述调度包括暂停输入指令线程的执行,直到相应的就绪信 号被设置为所述第一状态。
11. 根据权利要求7所述的处理器,其中,由所述线程调度器实现 的所述调度包括暂停输出指令线程的执行,直到相应的就绪信 号被设置为所述第二状态。
12. 根据权利要求8和9所述的处理器,其中,所述传送包括输入 操作和输出操作,并且所述执行单元被布置为执行输入指令和 输出指令。
13. 4艮据斥又利要求1所述的处理器,其中,所述#1^亍单元#皮构造为 执行设置触发时间指令,所述设置触发时间指令将触发时间值 存储在所述第一寄存器的一个中。
14. 根据权利要求1所述的处理器,其中,所述外部环境包括容纳 有所述处理器的集成电路的至少一个引脚。
15. 才艮据一又利要求1所述的处理器,其中,所述外部环境包括位于 容纳有所述处理器的集成电路上的另 一处理器。
16. 根据权利要求1所述的处理器,其中,端口与内部环境之间的 数据传送包4舌端口与所述才丸行单元之间的传送。
17. 根据权利要求1所述的处理器,其中,所述内部环境包括总线, 并且端口与内部之间的数据传送包括端口与总线之间的传送。
18. 根据权利要求1所述的处理器,其中,内部包括多组第二寄存 器,每组存储与所述多个线程中的相应一个线程相关的信息, 并且端口与内部环境之间的传送包括端口与所述第二寄存器 中之一之间的4专送。
19. 根据权利要求1所述的处理器,其中,所述线程调度器被构造为保持一组可运行线程,并且由所述线程调度器实现的所述调 度包括通过将一线程从所述组中去除而暂停该线程。
20. 才艮据卄又利要求1所述的处理器,其中,所述至少一个端口能够 在时间戳模式下操作,因而端口使得时间戳与端口和外部环境 之间的数据传送相关联。
21. 才艮据^L利要求20所述的处理器,其中,所述"f妄口部分包^"与 所述至少一个端口相关联的第三寄存器,时间戳的所述关联包 括在执行加有时间戳的传送时将当前时间值存储在所述第三寄存器中。
22. 根据权利要求18、 20和21所述的处理器,其中,所述执行单 元被构造为将时间戳从所述第三寄存器传送至与加有时间戳 的传送相关联的线程的所述第二寄存器的一个中。
23. 根据权利要求20所述的处理器,其中,所述执行单元被布置 为读取与来自端口的数据输入相关联的时间戳,并且将触发时 间值设置为时间戳加上特定时间间隔,以便在所述间隔过去之 后触发乂人端口至外部环:境的彩J居^T出。
24. 根据^又利要求1所述的处理器,包括至少一个定时器,所述定 时器被布置为将当前时间传送至所述执行单元。
25. 根据权利要求24所述的处理器,其中,所述定时器包括第 四寄存器,被布置为存储唤醒时间值;以及比较逻辑电路,被 构造为只要当前时间值与唤醒时间值匹酉己,则产生指示;其中, 由所述线程调度器实现的所述调度包括调度定时线程的暂停 执行,直到收到所述指示。
26. 4艮据4又利要求25所述的处理器,其中,所述才丸4亍单元寻皮构造 为响应于所述指示A人所述定时器读取当前时间。
27. 根据权利要求25所述的处理器,其中,所述指示包括被传送 至所述线程调度器的线程标识符,所述线程标识符识别定时线程。
28. 根据权利要求25所述的处理器,其中,所述指示包括被传送 至所述执行单元的连续点矢量,所述连续点矢量指定定时线程 中重新开始执行的点。
29. 根据权利要求28所述的处理器,其中,所述冲丸行单元4皮构造 为执行设置所述连续点矢量的设置矢量指令。
30. —种调度处理器中的线程方法,所述处理器具有4妻口部分和内 部环境,所述^妻口部分包4舌至少 一个端口和与所述端口相关联: 的第 一 寄存器,并且所述内部环境包括#1行单元和线程调度 器,所述方法包括在端口处4妻收当前时间值;在所述第一寄存器中存储触发时间值;以及将当前时间值与触发时间值进行比较,以检测当前时间值 是否与触发时间值匹配;如果检测到所述匹配,则在端口与外部环境之间传送数据 并改变就绪信号以指示所述传送;操作所述线程调度器以调度多个线程以便由执行单元执 行,每个线程包括一系列指令,所述调度包括调度一个或多个 所述线程以便4艮据就绪信号才丸4亍;以及才喿作所述4丸4亍单元,以在至少一个端口与内部环境之间传送数据。
31. 根据权利要求30所述的方法,其中,处理器包括被布置为输 出当前时间值的计数器,并且所述方法包括将来自计数器的当 前时间佳j是供至所述至少一个端口 。
32. 根据权利要求31所述的方法,其中,所述处理器包括多个端 口和多个第一寄存器,每个第一寄存器与相应的端口相关联,其中,所述方法包括将相应的触发时间值存储在每个第一寄存 器中,并且由所述线程调度器实现的所述调度包括调度一个或 多个所述线程以便根据就绪信号执行。
33. 根据权利要求30所述的方法,其中,所述传送包括输入操作, 由此将数据从外部环境捕获至所述至少一个端口 ,并且所述改 变包括将所述就绪信号或信号设置成第一状态,所述第一状态 指示输入至内部环境的所述数据的有效性。
34. 根据权利要求30所述的方法,其中,所述传送包括输出操作, 由此将数据从所述至少一个端口中的每个呈现至外部环境,并第二状态指示与内部环境进一步传送凄t据的至少 一个端口的有效性。
35. 根据权利要求33所述的方法,包括操作所述执行单元以执行 将数据从端口输入至内部环境的输入指令,只要所述就绪信号 或信号中相应的一个处于所述第一状态,所述输入指令是所述 一个或多个线考呈的顺序的组成指令。
36. 根据权利要求34所述的方法,包括操作所述执行单元以执行将数据从内部环境输出至端口的输出指令,只要所述就绪信号或信号中相应的一个处于所述第二状态,所述输出指令是所述一个或多个线^E的顺序的组成指令。
37. 根据权利要求35所述的方法,包括操作所述执行单元以在完成输入指令时将所述相应的就绪信号设置成所述第二状态。
38. 根据权利要求36所述的方法,包括操作所述执行单元以在完成输出指令时将所述相应的就绪信号设置成所述第一状态。
39. 根据权利要求35所述的方法,其中,由所述线程调度器实现的所述调度包括暂停输入指令线程的执行,直到相应的就绪信号被设置为所述第 一状态。
40. 根据权利要求36所述的方法,其中,由所述线程调度器实现的所述调度包括暂停输出指令线程的执行,直到相应的就绪信号被设置为所述第二状态。
41. 根据权利要求37和38所述的方法,其中,所述传送包括输入操作和输出才喿作,并且所述方法包4舌才喿作所述净丸4亍单元以才丸4亍输入指令和输出指令。
42. 根据权利要求30所述的方法,其中,所述执行单元被构造为执行设置触发时间指令,所述设置触发时间指令将触发时间值存储在所述第一寄存器的一个中。
43. 根据权利要求30所述的方法,其中,所述外部环境包括容纳有所述处理器的集成电3各的至少一个引肚卩。
44. 根据权利要求30所述的方法,其中,所述外部环境包括位于容纳有所述处理器的集成电路上的另 一处理器。
45. 根据权利要求30所述的方法,其中,端口与内部环境之间的数据传送包4舌端口与所述4丸4亍单元之间的传送。
46. 根据权利要求30所述的方法,其中,所述内部环境包括总线,并且端口与内部之间的数据传送包括端口与总线之间的传送。
47. 根据权利要求30所述的方法,其中,内部包括多组第二寄存器,每组存储与所述多个线程中的相应 一个线程相关的信息,并且端口与内部环境之间的传送包4舌端口与所述第二寄存器中之一之间的传送。
48. 根据权利要求30所述的方法,包括操作所述线程调度器以保持一组可运行线程,其中,由所述线程调度器实现的所述调度包4舌通过一夸一线^呈/人所述ia中去除而暂4亭该线,呈。
49. 根据权利要求30所述的方法,包括使时间戳与端口和外部环境之间的数据传送相关联。
50. 根据权利要求49所述的方法,其中,所述接口部分包括与所述至少一个端口相关联的第三寄存器,时间戳的所述关联包括在执行加有时间戳的传送时将当前时间值存储在所述第三寄存器中。
51. 根据权利要求47、 49和50所述的方法,包括操作所述执行单元以将时间翟^人所述第三寄存器传送至与加有时间戳的传送相关联的线程的所述第二寄存器的一个中。
52. 根据权利要求49所述的方法,包括操作所述执行单元以读取与来自端口的数据输入相关联的时间戳,并且将触发时间值设置为时间戳加上特定时间间隔,以1更在所述间隔过去之后触发从端口至外部环境的数据输出。
53. 根据权利要求30所述的方法,其中,所述处理器包括至少一个定时器,所述方法包括将当前时间从所述计数器传送至所述执行单元。
54. 才艮据^l利要求53所述的方法,其中,所述定时器包^^第四寄存器,并且所迷方法包括在所述第四寄存器中存储唤醒时间值,将当前时间值与唤醒时间值比较,以才企测当前时间值是否与p奐醒时间〗直匹S己,以及如果才全测到所述匹配,则产生指示,其中,所述线程调度器实现的所述调度包括暂停定时线程的执行,直到收到所述指示。
55. 4艮据权利要求54所述的方法,包括才喿作所述冲丸行单元以响应于所述指示,人所述定时器读耳又当前时间。
56. 根据权利要求54所述的方法,其中,所述指示的产生包括将一线程标识符传送至所述线程调度器,所述线程标识符识别定时线禾呈。
57. 根据权利要求54所述的方法,其中,所述指示的产生包括将一连续点矢量传送至所述#^于单元,所述连续点矢量指定定时线程中重新开始执行的点。
58. 根据权利要求57所述的方法,包括操作所述执行单元以执行 设置所述连续点矢量的设置矢量指令。
59. —种移动终端,所述移动终端具有移动应用处理器、至少一个 夕卜围设备、以及连接在所述移动应用处理器与所述外围设备之 间的^妻口处理器,所述接口处理器具有接口部分和内部环境, 其中,所述接口部分包括至少一个端口,帔布置为4妄收当前时间4直;第一寄存器,与所述端口相关联,被布置为存储触发时间 值;以及比较逻辑电路,被构造为检测当前时间值是否与触发时间 值匹配,如果并企测到所述匹配,则在端口与移动应用处理器或 外围设备之间传送数据并改变就绪信号以指示所述传送;并且其中,所述内部环境包括才丸行单元,用于在至少一个端口与内部环境之间传送数 据;以及线程调度器,用于调度多个线程以1更由才丸^亍单元#^亍,每 个线程包括一 系列指令,所述调度包括调度一个或多个所述线 程以便根据就绪信号执行。
60. —种互连处理器阵列,所述处理器中的至少一个具有4妻口部分 和内部环境,其中,所述^妻口部分包括至少一个端口,被布置为接收当前时间值;第一寄存器,与所述端口相关联,被布置为存储触发时间 值;以及比较逻辑电路,净皮构造为检测当前时间值是否与触发时间 值匹配,如果^^测到所述匹配,则在端口与阵列中的另一处理器之间传送数据并改变就绪信号以指示所述传送;并且 其中,所述内部环境包括#1行单元,用于在至少一个端口与内部环境之间传送数据;以及线程调度器,用于调度多个线程以便由执行单元执行,每 个线程包括一系列指令,所述调度包括调度一个或多个所述线 程以便根据就绪信号执行。
61. —种具有4妻口部分和内部环境的处理器,其中,所述4妄口部分 包括端口装置,被布置为接收当前时间值;寄存器装置,与所述端口装置相关联,用于存储触发时间 值;以及比较装置,用于检测当前时间值是否与触发时间值匹配, 如果;f企测到所述匹配,则在端口装置与外部环境之间传送数据 并改变就绪信号以指示所述传送;并且其中,所述内部环3竟包4舌4丸行装置,用于在至少一个端口与内部环境之间传送凄t 据;以及线程调度器装置,用于调度多个线程以便由^丸行单元执 行,每个线程包括一系列指令,所述调度包括调度一个或多个 所述线程以便根据就绪信号寺丸行。
62. —种用于调度具有4妻口部分和内部环境的处理器中的线程的 计算机程序产品,所述接口部分包括至少 一个端口和与所述端口相关联的第 一寄存器,并且所述内部环境包括执行单元和线 程调度器,所述程序包括在计算机上执行时运行以下步骤的代码在端口处接收当前时间值;在所述第一寄存器中存储触发时间值;将当前时间值与触发时间值进行比较,以检测当前时间值 是否与角虫发时间^直匹酉己;如果检测到所述匹配,则在端口与外部环境之间传送数据 并改变就绪信号以指示所述传送;操作所述线程调度器以调度多个线程以便由执行单元执 行,每个线程包括一系列指令,所述调度包括调度一个或多个 所述线程以便根据就绪信号执行;以及在至少一个端口与内部环境之间传送凄丈据。
全文摘要
一种处理器,具有接口部分和内部环境。接口部分包括至少一个端口,被布置为接收当前时间值;第一寄存器,与端口相关联并被布置为存储触发时间值;以及比较逻辑电路,被构造为检测当前时间值是否与触发时间值匹配,如果检测到所述匹配,则在端口与外部环境之间传送数据并改变就绪信号以指示此传送。内部环境包括用于在至少一个端口与内部环境之间传送数据的执行单元;以及用于调度多个线程以便由执行单元执行的线程调度器,每个线程包括一系列指令。所述调度包括调度一个或多个所述线程以便根据就绪信号执行。
文档编号G06F13/20GK101689157SQ200880020679
公开日2010年3月31日 申请日期2008年4月15日 优先权日2007年4月17日
发明者彼得·赫丁格, 迈克尔·戴维·梅, 阿拉斯泰尔·狄克逊 申请人:Xmos有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1