MIPS32 34K多线程处理器内核系列

 34K内核使 用可少量硬件支持多线程,避免出现导致传统单线程处理器运行速度降低的上下文转换问题。该内核可提供线程上下文(TC),它们虽然都使用普通执行单元,但 是都拥有自身的程序计算器和内核寄存器文件,以便它们每个都能利用软件处理线程。这些TC被分配到虚拟处理元件(VPE)块,其中包含用于缓存的转换旁视 缓冲器(TLB),以至于看起来像一个独立的处理器。这将有助于不同的操作系统,特别是现有的软件能够在这个单核上运行。34K内核可以用两个VPE支持 多达9个TC,并为系统设计者以最佳方式的运行时间进行分割。

34K内核的可能配置可以用实时单元的一个TC实现单线程运行,也可以利用4个以上的 线程运行用于系统控制的SMP Linux等传统的非实时多线程操作系统。MIPS科技为34K内核提供SMP Linux来强调VPE接口的作用,从而不必改动高级别的API。这意味着在新内核上运行的现有代码可以不被改变。MIPS已经开发出SMP Linux的改进版,叫做SMTC(线程上下文对称多处理) Linux。SMTC Linux能理解轻量级TC的概念,并能因此减少某些与SMP Linux相关的开销。

对于希望开发新软件的设计者而言,TC也可以用于实时处理,每个TC运行自己的处理线程,并由一个中断信号驱动来实现不同任务间的转换。

TC 的“上下文转换”是由处理器流水线的一个额外级处理的。在传统的第一指令(IF)级和第二指令(IS)级之外,已经增加了第三指令(IT)级。每个TC都 有一个存储了8个指令的缓冲区。这将有助于内核在IT级的线程间进行转换,而无需转换开销,它由一个简单的轮叫调度方案或可编程QoS管理器控制。该内核 也能在发生停止的时候反转指令,避免去重新提取已经被执行的指令,从而避免更多的总线竞争。

内核效率的提升能够进一步解决系统的问题。但是这里仍然存在潜在的风险。多线程都需要在同一时间访问同一个数据缓存线,从而引发系统停止情形。不过,指令提取缓冲区将有助于解决这个潜在的问题,使冲突期间一个线程提取数据的时候另一个数据可以继续运行。

你可能感兴趣的:(多线程,编程,linux,api,存储,任务)