内核优化1:多核支持 现在,为了实现最佳单位面积计算能力(MIPS/每平方毫米)和最佳单位功耗计算能力(MIPS/mW),许多处理器都利用了多核技术,在几个以较低时钟频率运行的内核间分配处理负载。这些应用能够以对称多处理(SMP)的方式进行分配,其中一项任务是内核间的基本平分;或者采用非对称多处理(AMP),在这里特定任务被分配给一个特定内核。不论是哪种方式,Linux内核中必须有适当的支持允许实现这些编程模型,同时对应用开发者尽可能的透明。 MIPS科技的多线程34K内核和多线程/多处理1004K内核所要求的方式,与内核内的多核管理方法略微不同,因为34K内核能够在单一内核的物理实例中提供多个虚拟内核或虚拟处理单元(VPE),而1004K内核则可提供多核器件的一致执行。 对于每个内核,我们执行的Linux内核多核支持和优化都必须能够正确识别所使用的内核,并妥善初始化和无缝实现特定的多核功能。必须明白,执行基于 34K器件的任务共享模型时,一个物理内核实际上是以多于一个虚拟内核的形式出现的,这些内核并不会自动进行一致性管理。这种多核环境在某些情况下比较适合AMP环境,如每个VPE 运行一个独立操作系统。1004K 内核真正的一致性多核设计使传统的SMP模式更具吸引力,在这里一个操作系统可以完全控制两个内核。 内核优化2:电源管理 在今天的绿色计算环境中,电源管理日渐重要,不仅体现在要求最大限度延长电池寿命的便携式设备方面,而且体现在需要尽量减少能源浪费和热量的AC 供电系统中。目前Linux内核电源管理支持主要集中在通过ACPI的标准 PC。但是ACPI 接口并不适合先进的多核SoC,因为后者必须将一致性电源管理方案扩展至多个内核、内部SoC外设以及最后的外部系统外设(如 RF 功率放大器)。 在MIPS,我们执行了一个先进的电源管理IP块,称为组群电源控制器(CPC),在具体的1004K执行中,它允许对每个内核的单独控制,使内核可以进入或离开一致性操作,并在需要的情况下彻底关掉电源。这样的电源管理模式能够进一步扩展,使内核电压和频率调制处于操作系统本身的控制之下。这个CPC块的功能还必须扩展至Linux内核。我们现在正在构建这个电源管理结构的基础,以实现针对 Linux内核本身及在标准Linux应用领域下运行的其他应用的全面API。 Linux开发工具 当考虑处理器对OS的支持时,开发工具很重要。 备受称赞的内核评测工具是Linux事件分析器,能够剖析整个系统。通常这些工具可捕获目标内发生的用户选择的 Linux 事件,然后根据时间通过图形显示这些事件。这些捕获有时能够收集高达20秒的 Linux系统活动。 不管应用如何,开发者都应该确保他们选择的处理器架构包含一个无缝的开发环境,包括编译器、调试器、性能和剖析工具。这种性质的工具必须满足上市时间要求,并从一个嵌入式系统设计中获取最大的性能。 |