本发明涉及多线程处理器。更具体地,本发明涉及多线程处理器,其具有细化和动态线程分配的特性,使得可以动态地给每个线程分配可变百分比的中央处理单元(cpu)处理能力。
背景技术:
当系统运行多个进程时,多线程处理器被使用,每个进程以其自己单独的线程运行。现有技术的多线程处理器和使用的示例在美国专利第7,761,688、7,657,683和8,396,063号中描述。在使用示例专用两线程处理器进行无线通信的典型应用程序中,处理器在执行第一线程上的高优先级程序的指令与执行第二线程上的低优先级程序的指令之间交替执行周期,并且交替执行引起为每个线程分配50%的cpu处理能力。此外,为每个线程分配cpu带宽受到保护,因为在线程停止期间,如当第一线程访问外部外围设备并且必须等待数据返回时,第二线程可以继续执行,而不受第一线程停止的影响。
出现这样的问题,其中多线程处理器需要不均等地分配带宽,或者需要动态地改变分配。期望为每个任务提供线程利用的动态分配,使得在由一组处理器执行周期组成的每个间隔期间,该间隔期间的线程中的每个都接收固定百分比的cpu周期。在随后的间隔期间,可以添加或删除其他线程,或者可以改变每个线程的cpu周期百分比分配。还期望在多个线程之间提供不相等的cpu能力分配,并且要动态执行分配。
多线程处理器中的另一个问题是及时处置中断。在中断处置期间,将禁用新中断,使得可以完成对特定先前中断的处置。无法识别随后接收的中断,直到先前中断处置完成并且揭示中断。期望提供中断处置,其能够及时识别在先前中断的任务处置的未决期间到达的新中断。
发明目的
本发明的第一目的是具有一系列级联级的多线程超标量处理器,每个级联级将操作的结果提供给后续级,级联级中的第一个从由线程标识符和相关联的程序计数器引用的程序存储器地址接收指令,线程标识符由含有一序列线程标识符的线程映射寄存器提供,每个线程标识符指示由特定处理器级将使用程序计数器和寄存器文件中的哪个,使用提供到一序列管线式级(包括指令获取级、指令解码级、解码/执行级、执行级、加载/存储级和写回级)的线程标识符和每线程程序计数器选择特定指令,解码/执行级耦合到由线程标识符选择的寄存器文件。
本发明的第二目的是多线程超标量处理器,其可操作以处置多个中断进程,每个中断进程与特定线程相关联。
本发明的第三目的是具有线程映射寄存器的多线程超标量处理器,该线程映射寄存器是可重新编程的以动态地标识要执行的一序列线程,每个线程与程序计数器寄存器和寄存器文件相关联,程序计数器寄存器和寄存器文件耦合到至少一个后续级:预取级、指令获取级、指令解码级、解码/执行级、执行级、加载-存储级和可选的写回级。
本发明的第四目的是从第一协议进程到第二协议进程的线程带宽的动态分配,每个协议进程处置通过单独的接口到达并且由多线程处理器中的不同线程来处置的数据包,该多线程处理器具有对每个线程分配周期的细化控制。
本发明的第五目的是通信接口,其具有对不相关通信协议(诸如蓝牙和wlan)的并发处理,该蓝牙接口在规则的时间间隔期间处于活动状态,该规则的时间间隔由蓝牙协议不活动的间隙、用于wlan通信的蓝牙协议不活动的间隙分隔,在多线程处理器上运行的通信协议在活动蓝牙间隔期间将更大数量的线程周期的动态指定提供到蓝牙协议,并在活动wlan间隔期间将更大数量的线程周期的动态指定提供到wlan协议。
技术实现要素:
在本发明的一个示例中,超标量处理器具有(依次)预取级、获取级、解码级、解码/执行级、执行级、加载/存储级以及可选的写回级。预取级在线程映射寄存器的指导下接收由逐线程程序计数器提供的指令,该线程映射寄存器提供线程标识符的规范序列,这些标识符索引到逐线程程序计数器中以选择所标识的线程,并且选择的程序计数器指导预取级从指令存储器接收指令。解码/执行级耦合到寄存器文件,其选择与当时由解码/执行级执行的线程相关联的寄存器文件,从而寻址特定于线程的寄存器组。
线程映射寄存器标识正在执行的特定线程,其中线程映射寄存器可以指任意数量的不同线程,但要受逐线程程序计数器和逐线程寄存器文件的数量的限制。例如,线程映射寄存器可以含有10个条目,并且逐线程程序计数器和逐线程寄存器文件的数量可以是4。在这种情况下,可以将4个线程中每个的粒度指定为10%,使得线程_0可以接收1个周期,线程_1可以接收4个周期,线程_2可以接收3个周期,且线程3可以接收2个周期。线程寄存器(非限制性的)可以指定规范执行的[0,1,1,1,1,2,2,2,3,3]中的任一个。可以更新线程寄存器以改变线程数量或线程分配,诸如,通过将新值[0,0,0,0,1,2,2,2,3,3]写入到线程寄存器,线程0可以扩展并且线程1可以减少。
在本发明的另一示例中,在超标量多线程处理器上为逐线程提供中断掩蔽,使得每个线程具有其自己单独的中断寄存器。在本发明的此示例中,每个线程具有其自己单独的中断处理,使得对线程_0的中断被线程_0掩蔽,并且其他线程(诸如线程_1、线程_2、...、线程_n)继续执行,每个线程具有单独地处置指向每个相应线程的中断的能力。在此示例架构中,每个线程可以能够处置不同协议类型,例如,可以使用与具有通用数据包缓冲器接口的多协议基带处理器的处理器接口耦合的数据包缓冲器来处置无线协议wlan、蓝牙和zigbee数据包处置中的每个。在此示例中,多线程处理器可以处置确认和重传请求,其中每个都必须使用中断处理及时完成,每个协议类型在专用于单独线程的单独中断上进行,并且线程寄存器被根据需要重新写入,以在自适应的基础上分配更大的线程周期。
附图说明
图1示出具有逐线程程序计数器和逐线程寄存器文件的多线程超标量处理器的框图。
图1a示出用于逐线程程序计数器的组织的框图。
图1b示出用于线程映射寄存器的示例的框图。
图2a示出用于线程顺序映射和给定线程分配的线程映射寄存器的示例的线程映射寄存器。
图2b示出用于图2a的线程的非顺序映射的线程映射寄存器。
图3示出用于图1的多线程处理器的逐线程中断控制器和处置。
图4示出使用单独cpu的蓝牙和wlan处理器的框图。
图5示出使用多线程处理器的蓝牙和wlan处理器的框图。
图5a示出用于多线程处理器的程序代码和相关任务的示例分配。
图5b示出用于数据包缓冲器的ram的示例分配。
具体实施方式
图1示出超标量处理器100的本发明的示例,该超标量处理器100具有序列级:预取级102、获取级104、解码级106、解码/执行级108、执行级110、加载/存储级112和可选的写回级114。递送到预取级102的指令由每个后续级在单独的时钟周期上顺序执行,推进(carryingforward)下一级所需的任何上下文和中间结果。在本发明的一个示例中,线程映射寄存器103提供线程标识符(线程_id)的规范序列,以递送到逐线程程序计数器105,该逐线程程序计数器105将相关联的当前程序计数器105地址提供给预取级102,预取级102从指令存储器116检索相关联的指令并在随后时钟周期将其递送到获取级104。解码/执行级108耦合到逐线程寄存器文件118,该逐线程寄存器文件118响应于来自解码/执行级108的读取请求或来自级114的写回操作,其中的每个都是专用于线程,因此读取或写入到寄存器文件118中的数据对应于正在请求或提供该数据的线程_id。
图1a示出多个逐线程程序计数器105:用于线程_0的pc_t0、用于线程_1的pc_t1、...、用于线程n的pc_tn,一个程序计数器可操作以用于与每个线程一起使用。
图1b示出线程映射寄存器103,其包括规范执行的一序列线程标识符t0130至tn132。线程(每个线程是在特定级的cpu周期中执行的单独的进程)的数量为m,受寄存器文件118和程序计数器105的数量限制,而线程映射寄存器103可以支持m个线程以为线程均等分配cpu带宽,或者进行更大粒度的线程控制,可以提供n个时隙,其中n>m。例如,具有16个条目的线程映射可以支持4个线程,每个线程的粒度为可用cpu处理能力的1/16,并支持可用cpu处理能力的0/16到16/16之间的任意值(取决于cpu处理能力到剩余线程的分配)。
图2a示出在规范周期长度204上的示例16条目线程映射寄存器103,线程映射寄存器在每个16条目的末端规范地重复。图2a的本示例是针对4个线程和顺序映射示出的,这可以适用于例如在无线程停止情况下的应用,在这种情况下,由于从外部资源接收结果的延迟,线程无法执行顺序周期。对于n=16线程映射寄存器位置,线程映射寄存器为每个任务提供处理器应用的1/16分辨率,并且处理器可以在每个线程映射寄存器位置与一个线程一起使用,然而,这为每个线程提供固定时间分配。在优选的利用中,线程标识符的数量m小于线程映射寄存器位置的数量n,这提供了特定线程到任务的分配可以具有粒度p/n,其中n通常是固定的,而p可编程为分配到特定线程的周期的数量数并且可以从0到n变化,以向每个线程分配更多或更少的计算资源。在本发明的另一示例中,线程映射寄存器的长度n可以自身可编程以在任务周期管理中提供更大粒度,或者支持更大数量的线程。
图2a示出用于16位置线程映射寄存器202中的四线程处理器的示例线程映射寄存器,其中线程0、1、2和3(分别为t0、t1、t2、t3)和向每个相应线程分配12.5%、25%、50%和12.5%的处理器能力。出现这样的问题,其中特定线程必须等待外部资源响应(称为线程停止)。在图2a的示例中,解码/执行级108可能需要读取未示出的外部共享存储器或介质访问控制器(mac),并且读取外部资源的延迟可能需要4个时钟周期。在图2a中示出线程分配并且访问外部资源的线程为t0和t3的情况下,或者在读取或写入设备时受到延迟的情况下,t0将在操作208中处于线程停止,并且t3将在周期210处于线程停止214。在图2a中所示的线程标识符的布置的情况下,这将引起用于每个线程停止的原本可用cpu周期的损失。
图2b示出替代映射,其使用与图2a相同的时间分配,但对于与图2a所示相同线程停止情况,重新布置线程序列220。在图2b的布置中反映t0到位置0和7的重新布置以及t3到位置1和8的重新布置。仅当线程停止长于6个时钟周期224时才停止t0线程,而线程停止212是4个时钟周期,因此以图2b的布置执行t0的两次出现,而不是在图2a中的一个。类似地,除非线程停止具有持续时间226,否则在图2b中不出现引起图2a的第二t3周期推迟的t3停止。
图3示出本发明的另一方面,用于无线信号处理的示例,其中进程线程308可作为图1的多线程处理器上的不同线程执行,并且多线程处理器具有作为多线程cpu100的一部分的接口310,每个接口与特定的mac相关联。无线信号在天线301上接收和发送,在接收时转换为基带,或者在302发送时调制为rf,并提供到多协议基带处理器304。当数据包到达多协议mac的特定接口时,可以将用于特定线程的中断发送到中断控制器306,其中每个中断可由在多协议处理器中操作的相关联的进程308掩蔽。每个进程都能够控制相关联的中断掩蔽(示出为im0、im1、im2、im3),该中断掩蔽提供到中断控制器306以掩蔽中断,使得相关联的进程不处理新的中断,直到用于该进程的先前中断已完成。
中断的当前多任务处置具有优于现有技术的特定优点。在现有技术中,线程0上的中断服务例程可以正在处置针对多个数据包接口的数据包确认。在此任务中,在接收到数据包之后,检查接收缓冲器以检测序列中的任何丢失的数据包,并且该进程确认接收的数据包,或针对任何丢失的数据包而向发送方做出重发请求。存在与数据包确认和重传相关联的关键时序窗口,因此重要的是,在接收数据包后及时做出确认或重传请求。我们可以考虑以下情况:其中必须在收到数据包后30us之内做出重传请求,并且第一重传任务0需要5us来完成,第二重传任务1需要10us来处理和完成,并且第三重传任务3需要5us来处理和完成,并且单个进程在单个线程上处置三个任务。在其中三个任务由公共线程处置并且如现有技术那样使用公共中断掩蔽的此示例中,在接收到数据包后,线程0上的进程处置任务0掩蔽中断,以防止其他数据包确认减慢处置需要5us的当前确认。如果与线程0的任务1相关联的第二中断在处置任务0期间到达,则任务1不被处置,直到它到达后至少5us,因为线程0仍在忙于任务0。可能由于在不同接口上的突发数据包而进一步发生以下情况,在任务1(需要10us)正在等待任务0(需要5us)完成时,需要5us完成的第三任务3可能到达。当任务0完成时,移除中断掩蔽,任务1生成中断并被检测,再次断言该中断掩蔽,并且任务1的处理完成,此后清除中断掩蔽,并切通过断言其中断来检测任务2。此后,再次断言中断掩蔽,任务2在请求到达后至少15us时开始,并且在经过所需的重传请求窗口之后,请求在20us完成。任务2完成后,清除中断掩蔽,然而远程站未及时接收到来自任务2的重传请求,并且重传协议失败。处置较早的任务1和2之后任务2的等待时间延迟问题的现有技术解决方案是更快的处理器。另外,当多核处理器正在读取mac接口时,可以发生线程锁定,这可以通过先前如图2b所示的线程标识符的重新布置来避免。在此情况下,可以需要为确认和重传任务分配少量线程周期,但是将这三个任务分散到单独的线程中,每个线程分配少量时间,这将通过使每个线程与单独的中断和中断掩蔽相关联来克服接口读/写等待时间以及中断掩蔽的等待时间延迟。
在现有技术中,其中任务中的每个在单个线程上执行并且每个任务需要50mips,由于顺序处置中断的等待时间和延迟,成功处置三个任务需要300mips的处理能力,而用图3的新颖方法,仅需要大约150mips,从而将mips要求节省为原来的二分之一,从而降低功耗要求。
在图1的多协议处理器的另一个示例中,无线协议中的每个可以由单独的线程处置。例如,处置wlan、蓝牙和zigbee的进程可以各自在其自己线程上的单独的进程上操作,并且针对每个的重传进程可以由用于每种协议的单独的进程来处置,每个协议都在其自己的线程上操作。
在本发明的另一示例中,可以根据由单独的线程管理进程检测的进程需求来交互地改变线程映射寄存器。由于来自每个级的上下文都被转发到图1的后续级,因此可以在任何时间完成对线程映射寄存器的改变,这取决于用以接收确定性线程_id的预取级102和相关联的逐线程程序计数器105的同步时钟要求。
图4示出示例无线局域网(wlan)和蓝牙(bt)组合收发器,其具有用于与通信系统交换数据的接口480。由于每种协议所需的专用wlan和bt处理操作以及各自所需的响应及时性,因此每种接口类型都需要cpu。cpu对每个接口进行低等待时间处理的要求引起如由图4所示的系统架构执行的wlan和bt处理。
图4示出包括耦合到wlancpu424的模拟前端和mac401的wlan处理器,以及包括耦合到btcpu482的模拟前端和mac450的bt进程。每个wlancpu424和btcpu482能够及时响应中断和突发事件,该中断和突发事件需要与每个相应wlan处理器401和bt处理器450相关联的软件程序立即处理。
在wlan处理器401中,天线402耦合到发送/接收开关404,用于耦合至低噪声放大器406的接收信号和来自功率放大器414的发送信号。使用时钟源418、低通滤波410将输入信号混合408到基带,并用组合的adc和基带处理器412对模拟基带信号进行数字化和处理,这将接收的符号解调为数据流,该数据流由介质访问控制器(mac)422跨诸如到cpu424的串行数据接口(sdi)形成层2数据包。cpu424具有相关联的随机存取存储器(ram)428,用于存储接收的数据包和要发送的数据包、cpu424执行的程序代码以及系统在断电时的其他非持久性信息。只读存储器(rom)或闪存426用于存储通常在加电序列期间从闪存/rom下载到ram的程序指令。mac422接收在接口423(诸如串行数据接口(sdi))上发送的数据,并且将接收的数据包连同序列号一起提供到cpu424,使得cpu424可以检测和管理任何丢失数据的重传,以及设置任何wlan认证协议,执行任何需要的逐数据包操作,诸如封装和解封装、信道管理、数据包聚合以及连接管理和认证。
图4示出包括模拟前端和btmac的示例蓝牙处理器450,其类似地与天线452、发送/接收开关454、低噪声放大器456、混频器458、带通滤波器460以及模拟/数字转换器和基带处理器462一起操作,如同adc/基带处理器412对wlan802.11数据包做得那样,该模拟/数字转换器和基带处理器462可以将基带蓝牙跳频模式转换成数据流。蓝牙发送链包括基带处理器和dac470、使用调制时钟源468将基带跳频流调制到rf载波频率的混频器466和将调制后的蓝牙跳频流耦合到发送/接收开关454的功率放大器464。btcpu处置包括配对的各种连接管理。
wlanmac422经由数字接口423(诸如串行外围设备接口(spi))耦合到wlancpu424,并且btmac480经由数字接口481耦合到btcpu482。图4的架构因而为各自操作的wlan和蓝牙进程中的每一个提供单独的cpu处理功率,包括用于处理来自每个接口的连接或数据包请求的低等待时间。
图5示出图4的替代架构,其中wlanrf前端/mac504(对应于图4的处理401)和btrf前端/mac508(对应于图4的处理450)经由相应数字接口518和520耦合到多线程cpu510,该多线程cpu510本身耦合到rom/闪存512和ram514。可选地,存在线程映射寄存器516,其提供cpu周期到蓝牙或wlan进程的分配。在本发明的一个示例中,线程映射寄存器中的进程_id条目的数量固定,并且线程_id值的增加或减少数量可以出现在线程映射寄存器中以向与每个线程_id相关联的特定进程提供增加或减少的进程周期数。对于如前所述一次接收一条指令的管线式多线程处理器,接收由线程映射寄存器(其为每个指令发出下一个线程_id)确定的线程的每个指令的多线程处理器,对线程进程分配的控制的粒度是逐指令性的。由于线程映射寄存器以重复规范方式发布线程_id,因此进程到线程的分配具有非常精细的粒度,其等于线程映射寄存器可以支持的值的数量的倒数。在本发明的一个示例中,线程管理进程可以作为具有唯一线程_id的进程之一进行操作,该线程管理进程根据活动级别检查其他线程中的活动以增加或减少相应线程_id的条目数,并从线程映射寄存器指定和取消分配线程_id值。与通信处理器相关联的通信进程的活动级别可以例如由相关联的通信处理器发送或接收并由该线程处置的数据包的数量来确定,并且可以建立阈值以指示何时在线程映射寄存器中存在针对所述特定线程的更多或更少的线程_id值。具有唯一线程_id的进程线程的示例(该线程_id具有由线程管理进程动态放置在线程映射寄存器中的更多或更少的条目)包括链路层进程、网络层进程或应用层进程,其中每个链路层、网络层或应用层进程可以包括具有唯一阈值度量的多个进程,这些进程中的每个与特定通信处理器(诸如401、450、504或508)相关联。线程映射寄存器中增加的线程_id分配可以进行达阈值度量(诸如,数据包数据速率、剩余要处理的数据包的数量、线程负载度量或线程进程任务完成的百分比)超过阈值的一段时间。
图5a示出向存在的各种线程分配存储器(rom/闪存512或ram514)。一个线程可以是与图4中的wlancpu424执行的任务相对应的wlan代码,并且另一个线程可以是与图4中的btcpu482执行的任务相对应的bt代码。可以指定附加线程来管理线程映射寄存器,从而控制将各种任务的带宽分配给先前描述的线程映射寄存器103,并且附加任务可以执行数据包缓冲器的存储器管理和其他低优先级的很少执行的功能。线程映射管理任务可以定期检查bt和wlan接口的利用,并根据需要改变每个任务的cpu周期分配。在本发明的一个方面,蓝牙和wlan操作被排他地(exclusively)执行,并且针对接口的cpu线程分配(图5a的bt和wlan任务)专用于一个接口或另一个。
在本发明的另一个示例中,各个线程可以处置特定通信协议的不同部分。例如,一个线程可以处置层2和其他操作,并且另一个线程可以处置层3和特定协议的应用方面。在本发明的用于任何wlan协议的一个方面中,一个线程可以处置基本通信方面,其可以被统称为下层mac功能。wlan和蓝牙的下层mac功能包括数据包发送、数据包接收、清晰信道评估(cca)、帧间间隔、速率控制、请求发送和清除发送(rts/cts)交换、用于wlan和蓝牙的无线数据包确认data/ack,或特定于蓝牙的信道跳变。上层mac功能在数据链路层执行不由下层mac功能执行的其他iso(国际标准组织)层2功能。本说明书中的上层mac功能共同指代以下任何一项:wlan请求方(与加入或登录无线网络接入点相关联的任何协议)、wlan数据包重传和确认、安全功能,诸如在标准wpa或wpa2(无线保护访问)中描述的那些。iso层3(网络层)功能可以由单独的线程执行。层3功能包括ip数据包形成、tcp重传和确认、ssl加密和连接管理以及应用层操作,诸如特定应用层进程的数据包封装。在本发明的用于蓝牙的另一示例中,可以指定一个线程来处置蓝牙控制器、堆栈、重试和确认,并且可以指定另一个线程来处置应用层任务。以这种方式,用于特定协议的两个任务被分离并提供到单独的线程,并且可以使用通用接口(诸如sram)来将数据从一个线程传送到另一个线程。
在某些应用中,wlan通信和蓝牙通信可以共存并且并发运行。在此示例配置中,可以在处理wlan数据包时将cpu线程周期动态分配给wlan通信进程,并且在处理蓝牙数据包时将其动态分配给bt线程周期。可以使用唯一线程_id值创建与特定通信处理器401、450、504或508相关联的多个进程,将每个线程_id放入线程映射寄存器516中以为每个相关联的进程提供处理带宽,并且当未启用相关联的通信处理器时这些进程退出,并且从线程映射寄存器516中移除线程_id。可以通过依靠其中以规则的时隙间隔发送数据包的蓝牙通信的常规通信间隔来执行并发通信,并且可以在时间上以其中信道不用于bt通信的较大时间间隔将并发通信分隔开。在这些间隔期间,可以发送和确认wlan数据包,以免干扰bt通信窗口。可以动态改变线程映射寄存器103,以在蓝牙数据包间隔期间为bt提供更大百分比的cpu能力,然后在wlan数据包间隔期间为wlan提供更大百分比的cpu能力,从而降低图4的架构上的功耗。
图4和图5所示的示例针对wlan和蓝牙的特定不同通信协议,但应理解,这些仅用于说明目的。不同的通信协议是需要完全不同数据包处置的通信协议集。示例是蓝牙、wlan、zigbee、近场通信中的任一种,其他示例对于通信协议领域的技术人员是已知的。
1.一种通信处理器,其包括:
多个通信控制器,其可操作以参与无线通信,每个通信控制器具有用于发送和接收无线数据包的数据接口;
多线程处理器,其耦合到所述多个通信控制器,所述多线程处理器可操作以执行针对每个通信控制器的具有唯一线程_id的至少一个进程线程;
所述多线程处理器具有线程映射寄存器,其含有线程_id值并且以规范序列生成所述线程_id值,所述规范序列中的线程_id值的数量大于唯一线程_id值的数量;
所述多线程处理器根据由所述线程映射寄存器生成的相应线程_id值执行每个线程的每个指令;
线程管理控制器,其可操作以修改所述线程映射寄存器,从而与发送和接收更少量数据的通信控制器相关联的线程相比,使与发送和接收更大量数据的通信控制器相关联的线程含有更大数量的线程_id值。
2.根据权利要求1所述的通信处理器,其中至少一个通信控制器可操作以发送和接收无线局域网数据包即wlan数据包,所述通信控制器具有用于使用所述数据接口来发送和接收数据的介质访问控制器。
3.根据权利要求1所述的通信处理器,其中至少一个通信控制器可操作以发送和接收蓝牙数据包。
4.根据权利要求1所述的通信处理器,其中至少一个线程具有不处于连续线程映射寄存器位置的相关联的线程_id值。
5.根据权利要求1所述的通信处理器,其中所述多线程处理器通过单个数据接口耦合到所述多个通信控制器。
6.根据权利要求5所述的通信处理器,其中所述单个数据接口是串行数据接口。
7.根据权利要求1所述的通信处理器,其中至少一个通信控制器可操作以接收或发送无线局域网数据包即wlan数据包。
8.根据权利要求1所述的通信处理器,其中至少一个通信控制器可操作以接收或发送蓝牙数据包。
9.根据权利要求1所述的通信处理器,其中所述线程管理控制器监视与蓝牙接口的利用或wlan接口的利用相关联的至少一个网络参数。
10.一种在通信处理器中的多个进程线程上可操作的线程管理进程,所述通信处理器具有:
多个通信控制器,其可操作以参与无线通信,每个通信控制器具有用于发送和接收无线数据包的数据接口;
多线程处理器,其耦合到所述多个通信控制器,所述多线程处理器可操作以执行针对每个通信控制器的具有唯一线程_id的至少一个进程线程;
所述多线程处理器具有线程映射寄存器,其含有线程_id值并且以规范序列生成所述线程_id值,所述规范序列中的线程_id值的数量大于唯一线程_id值的数量;
所述多线程处理器根据由所述线程映射寄存器生成的相应线程_id值执行每个线程的每个指令;
所述线程管理进程包括:
确定在第一通信控制器上可操作的进程的第一活动度量以及在第二通信控制器上可操作的进程的第二活动度量;
确定所述第一活动度量或所述第二活动度量中的较大活动度量;
将与所述较大活动度量相关联的附加线程_id条目添加到所述线程映射寄存器中。
11.根据权利要求10所述的线程管理进程,其中至少一个通信处理器具有介质访问控制器和执行数据包的发送和接收的相关联的链路层通信进程,所述至少一个通信处理器还具有执行网络层数据包的网络层重传和确认的相关联的网络层进程。
12.根据权利要求11所述的线程管理进程,其中所述链路层通信进程由具有唯一线程_id的第一进程线程执行,并且所述网络层进程由具有与所述第一进程线程的线程_id不同的唯一线程_id的不同进程执行。
13.根据权利要求12所述的线程管理进程,其中当由相关联的至少一个通信处理器发送或接收的数据包的数量增加超出阈值时,所述线程映射寄存器中的第一进程线程_id值的数量增加,并且所述线程映射寄存器中的第二进程线程_id的数量增加。
14.根据权利要求10所述的线程管理进程,其中所述通信处理器具有由具有相关联的唯一线程_id的安全线程进程执行的安全功能,在所述安全功能期间,所述线程映射寄存器中的安全功能唯一线程_id条目的数量增加。
15.根据权利要求14所述的线程管理进程,其中所述安全功能是认证。
16.根据权利要求10所述的线程管理进程,其中至少一个通信处理器包括介质访问控制器即mac,并且与所述mac相关联的一个进程线程处置至少一个下层mac功能,并且与所述mac相关联的不同进程线程处置至少一个上层mac功能。
17.根据权利要求16所述的线程管理进程,其中来自处置所述至少一个下层mac功能的所述进程线程和处置所述至少一个上层mac功能的所述进程线程的信息共享与所述多线程处理器相关联的随机存取存储器中的数据。
18.根据权利要求10所述的线程管理进程,其中所述多个进程线程中的一个是线程管理进程,其创建新线程进程并将相关联的线程_id放置在所述线程映射寄存器中。
19.根据权利要求10所述的线程管理进程,其中当为无线通信协议启用通信处理器时,创建新线程进程。
20.根据权利要求10所述的线程管理进程,其中所述线程中的至少一个执行存储器管理进程,其包括分配和解除分配在所述多线程处理器可访问的随机存取存储器(ram)中的数据包缓冲存储器。
21.根据权利要求10所述的线程管理进程,其中所述多个进程线程中的至少一个是中断处置者进程。
技术总结