处理器内核越复杂,面积和功耗就越大。但是,随着处理器处理数据的方式变得更加复杂,复杂性并不是一个单一的衡量维度。在选择处理器IP内核时,为您的项目选择正确的复杂性很重要。
思考复杂性的一些方法包括:
字节长
执行单元
特权/保护
虚拟内存
安全功能
通常,字节越短,内核越小,功率越低,但是,并非总是如此。8位内核(例如8051)的门数可与最小的32位内核相比,但功耗通常更差。8位内核需要更多的存储器访问权限,这是因为每个时钟周期需要较少的计算量,需要更多的周期。最终的影响是它需要更多功能来完成计算。
处理器内核在其执行单元的复杂性方面差异很大。最简单的是基本的单个ALU,它们需要通过简单的指令来实现许多通用操作。例如,使用shift和add来实现乘法。因此,内核具有硬件乘法器和除法器是普遍的。如果需要良好的浮点性能,则添加硬件浮点单元将提供明显更好的性能。此选项可用于Codasip的Bk3和Bk5RISC-V内核,但价格更贵。
到目前为止,我们已经假设单个计算线程和标量处理单元可以一次执行一条指令。超标量体系结构具有指令级并行性,能够提取多个指令并将其发送到不同的执行单元。例如,Western Digital EH1和EH2 SweRV内核有两个执行单元。理论上,单线程双核处理器可以具有单核两倍的性能。但是,线程可能会挂起,这会使两个执行单元暂时处于非活动状态。如果有两个硬件线程,一个线程挂起后,另一个线程可以继续执行。
处理器的流水线深度可能有很大差异,并且深度与延迟之间存在直接关系。一些应用程序可以忍受高延迟,结果是对中断的响应变慢,以换取较高的时钟频率和吞吐量。其他应用程序需要对中断的快速响应,因此需要更短的流水线。
复杂性的另一个方面是特权模式。模式越多,核心逻辑就越复杂。许多嵌入式应用程序以机器模式运行,这意味着代码具有对内核的完全访问权限。例如Linux中的root特权。必须完全信任此类代码,以避免产生负面后果。在更复杂的应用程序中,可以提供一系列特权,例如机器,管理员和用户。普通应用程序将在具有最大保护程度的用户模式下运行,而一些需要更高权限的软件将使用管理员模式。Linux需要这三种模式,这就是Codasip开发具有Linux功能的Bk7内核的原因。
虚拟内存还需要其他处理器资源,例如内存管理单元(MUU)和转换后备缓冲器(TLB),以处理将虚拟内存地址转换为物理地址的操作。这在面积和功耗方面带来了额外的成本,而没有提高处理器的吞吐量。但是,虚拟内存对于使用丰富的操作系统(例如Linux)是必不可少的,该操作系统可以使用更复杂的软件。
因此,在选择处理器内核时,请确定所需的执行单元,内存管理,特权和安全性。这种结合将决定内核的复杂性。
责任编辑:lq6
-
处理器
+关注
关注
68文章
19281浏览量
229783 -
内核
+关注
关注
3文章
1372浏览量
40288
原文标题:如何选择合适的处理器内核
文章出处:【微信号:zhixinkeji2015,微信公众号:芯片逆向】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论