中文 英语

“就地执行”发生了什么?

最初设想的概念不再适用。这就是为什么。

人气

直接从存储代码的非易失性存储器执行代码,极大地简化了计算体系结构——特别是对于像微控制器(mcu)这样的简单嵌入式设备。然而,内存和逻辑进程的分歧使得这在今天几乎是不可能的。

术语“执行 - 就地”或“XIP”起源于MCU中的嵌入式NOR记忆,使XIP可行。该术语仍然使用,但其意义变得模糊和困惑。

“在微芯片硅存储技术的许可营销副总裁Mark Reiten表示,”肯定存在这一概念。““今天,它真的像从缓存方案那样执行,这允许您从外部闪存快速进入页面的页面。否则,您无法真正以足够高的时钟速度运行。“

内存进程无法跟上逻辑进程的步伐。处理器的性能随着新一代处理器的出现而变化,但内存无法以那么快的速度存储代码。缓冲或缓存指令的各种策略,在高速处理器中很常见,甚至在所有级别的嵌入式处理器中也很普遍。尽管有这么多选择,XIP是否仍然是一个有意义的概念仍存在疑问。

和片上
Whlle服务器和桌面计算机历史上依赖于存储代码的硬盘驱动器(或固态驱动器),嵌入式系统已经闪存了内存 - 具体而是闪存。在早期,甚至今天在较低性能的MCU中,嵌入和闪存意味着,至少用于启动代码,指令直接向处理器传送,无需缓冲或缓存。“任何大于45nm的东西仍然在内部使用,”客观分析时的内存分析师Jim Syny Sandy,Memory Analyst。


图1:也不是闪光结构和布局。来源:维基百科

这使得NOR flash在编程上比NAND flash更具吸引力,因为分支和函数调用可能会中断指令流,而NAND flash必须一次检索一个页面。在嵌入flash时,mcu使用NOR flash。只要操作频率足够慢,闪存访问时间能够跟上,指令就可以直接从闪存中获取和执行,也就是所谓的就地执行。最初的想法是,你不需要在执行指令之前将它们缓冲到其他地方。


图2:NAND闪光结构和布局。来源:维基百科

嵌入式NOR内存仍然是有效的,尽管今天的节点容量更大,远不能被认为是逻辑的前沿。Reiten说:“55和65纳米的产量很大。他说:“我的峰值功耗仍然是180nm,但250 nm、350 nm和500nm仍在交付。90nm是个奇怪的节点。台积电做到了,但我的很多其他合作伙伴都跃升到了55/65。但是我们有一个很好的90度的体积,55/65很快就会超过它。40岁的人开始增多了。”

嵌入的能力也不小于外部或非外部或NAND中可用的容量。但是有一系列嵌入式的能力也不能满足。“我们看到的更大的内存实现是64 MB,”Reitein说。“还有128 MB嵌入式闪光设计,也有数十兆位的SRAM。”

根据Reiten的说法,通过访问时间为8ns或更少,越来越侵略性的嵌入式和实现可以支持120MHz的时钟速度。这不是流出的边缘,但这是一些设计的可行频率。

Reiten还指出,在安全和安全方面,更多的集成具有价值。“为了安全,在死亡中的一切都是一个更好的方法,因为你有完全控制,”他说。“你不必担心包级资格。”

也不是闪光落在后面
但嵌入式NOR闪存必须与MCU构建的CMOS逻辑过程保持兼容性,并且成为一个限制因素。“嵌入式闪光灯通常限制在约40nm,”吉迪恩境内,CTOadesto.。“有一些早期可用性28nm,但它非常昂贵。”

然而,微芯片试图继续缩放。“我们有一个为FinFET提出的一体化计划,”Reiten说。即便如此,由于嵌入式也没有受到容量限制和流程演变障碍的限制,许多设计师已经将其代码移入外部或闪存单元。

根据在Winbond的部门营销总监Cyed Hussain的说法,外部和闪光的成本大约是NAND Flash的两倍。“对大型企业不太有吸引力,因为它即将结束摩尔的律师事业,”哈斯尔说。事实上,这种应用的闪光的主要好处是其熟悉和更低的数据的粒度可用性。

然而,更高的成本是按比例为基础。NAND Flash有很大的尺寸。如果需要较小的尺寸,则在NAND闪存中可用,则外部和闪存设备可能不那么昂贵 - 即使它为每个位花费更多。

“对于超级简单、成本敏感的应用程序,外部NOR也比外部NAND便宜,”Handy说。

通过使用串行接口而不是外部或闪光灯和处理器之间的并行接口来了另一个微妙的变化。“当您想到执行的时,思维返回到平行,通常我们通常使用平行也不用于XIP,”观察到的Hussain。

这会产生其他问题。“通过进行连续,你得到一个较小的引脚,”Larry Song,产品营销经理说Synopsys对此。“使用旧的并行总线,你有一个地址总线和一个数据总线。当读取数据时——在本例中是一条指令——你可以应用下一个地址,而不一定是下一个连续地址。”

串行总线替换两个端口,单个串口是半双工的。因此,该方法在很大程度上加载了指令,然后转到总线,流媒体,直到需要在该流之外的内容。然后您需要停止流,再次转动总线加载新地址,然后恢复流媒体。

这是占据大型内存并将其转移到其他地方的好方法。管理执行流并不是很好,这可能涉及频繁的分支和循环 - 以及地址的快速变化。因此,从原始XIP概念避开了一步之遥。

缓存改变了一切
外部和闪光灯与嵌入式也不是闪光,在一个主要的方面,它针对大小和成本进行了优化,而不是性能。虽然较慢的处理器可以直接运行内部或闪光,外部也不会升离到微秒内的域中。一旦获取的块为流,吞吐量要快得多,并且某些公司具有两个内部缓冲区的连续流模式。虽然一个是流出,但另一个是为或多或少连续流来获取新页面。

但是如果你直接从内存执行,那么任何分支或循环到一个地址之外的连续馈送块将导致微秒延迟。这使得在内存中直接执行完全不可能。

因此,大多数新mcu都有缓存。因此,根据定义,您不再直接从任何非易失性内存中执行。从缓存中执行。你可以在图像中保留外部NOR,但指令要经过缓存才能到达处理器。这将存储器的速度从处理器的速度中抽象化。缓存是SRAM,它是由CMOS逻辑构建的,因此它与选择的逻辑处理节点保持同步。

同时,NAND继续向下发展到15nm节点,但3D NAND转换使其能够远低于成本和容量路径,而不是可能与之可能。3D方法与在高性能CMOS芯片上的单片集成并不一致,但即使使用平面单级细胞NAND细胞,每位的成本也仍然具有吸引力。“成本始终是第一个优先级”,“歌曲。

这导致了一种称为“阴影”的方法。例如,在手机中,NAND闪光灯未被NAND闪存取代。因为一个人无法直接从NAND闪存执行代码,所以代码首先将从NAND数组传输到DRAM中,并且代码从DRAM执行(通过缓存)。“NAND Flash可能非常快,”Intranter说。“我们正在谈论在Gigahertz水平上具有接口的NAND闪存设备。”

这听起来像是一个简单的虚拟内存练习,但在本例中并非如此。根据Handy的说法,智能手机最初将使用请求分页操作系统来管理指令的存储。

“需求分页虚拟内存不仅仅是缓存,”迈克尔弗兰克,研究员和首席建筑师动脉IP.。但随后Android可以免费提供,与计划的操作系统不同。因此,策略从需求分页中的一个改变,以将整个代码库从Flash移动到DRAM,然后使用SRAM高速缓存机制进一步管理指令访问时间 - 所有符合较低成本的兴趣。

跟踪增加了系统引导所需的时间,因为第一步是传输代码。当较大的主应用程序集加载时,需要快速运行的应用程序需要为关键的启动代码使用另一种策略。

在MCU轨迹之后,这一点提出了一个问题。如果设备没有片上或其他代码存储,并且还使用外部DRAM,这真的是MCU吗?例如,微芯片是指不再在内部具有微处理器的处理芯片,而不是微控制器。

“在那个更加出血的边缘下,微控制器产品现在看起来更像是微处理器加上外部闪光,”Reiten说。“现在可能有一些课程,这是真正的”微控制器 - leit“,这意味着他们的外部都是or。具有外部或内存的大多数产品也有NAND,也许他们有DDR4。他们不仅仅是一个裸露的骨头。他们正在运行一点较重的Linux,裸BLinux,他们只需要更多的内存。“

当处理器有多个核心和考虑因素时,这变得更大的区别。“28nm的大部分东西都有多个核心,”Reiten说。“他们正在进行处理器之间的缓存和一致性,他们正在展望前进和多线程。”在这种情况下,XIP的整个概念突破,因为有多个核心的多个指令流。

NAND作为其他非易失性的记忆
若干制造商使用的另一种策略是以一种方式构建NAND内存,其表现得像也不像内存,至少在某种程度上。NAND Flash始终需要更大页面的数据访问,但如果可以使用内部缓冲区隐藏,并且如果接口和命令集看起来也是如此,则处理器可以将其视为NOR闪存芯片 - 以及延迟时间甚至可能会改善误差,虽然它们保留在初始延迟的数微秒范围内。NAND设备可提供双,四边形和八进制SPI接口。


图3:从外部的过渡也不是NAND。来源:Winbond.

新的非易失性存储器(NVMS)也显示了字节寻址的承诺,靠近DRAM的访问时间,以及比闪存的读写更多对称的方法。

“一些新的架构至少提供了接近DRAM的价格承诺,”IP group的产品营销部门主管马克•格林伯格(Marc Greenberg)表示韵律。“它具有非波动性的好处,其中DRAM没有,并且访问时间比闪存更好的一个或两个数量级。”

实例是MRAM,RERAM和PCRAM的各种味道。这些存储器,而不是由纯CMOS逻辑构建,至少与CMOS兼容,以比闪存更少的方式。因此,承诺将有能力回到单片集成和“真实”XIP。

但是即使是嵌入式系统的代码基础已经大大增加 - 特别是如果系统运行Linux。如果片上放置足够的内存以满足所有这些需求,消除了DRAM和外部NVM,它将显着增加到模具区域。在积极的硅节点上,这将是昂贵的硅。

“逻辑芯片上的空间总是比内存芯片上的空间要珍贵,”Greenberg指出。“在逻辑芯片上,它仍将有10层以上的金属层。在DRAM过程中,他们通常使用三层金属过程。因此,在构建存储芯片时,晶圆的处理过程要少得多。”

人们提出了两种解决方案。一种是将芯片上的代码限制为引导代码或任何必须能够立即启动的代码。这可能包括在系统其余部分名义上关闭时必须保持可用的小功能。系统的这一部分可以直接从内存中执行。

或者,Arteris IP的弗兰克指出,3D单片集成的进步可能会让我们到我们在逻辑模具上层的点,而不是通过包装,而是作为单一的模具。额外的记忆力可以对模具的成本产生这种影响。但这还尚未得到可行和经济的可行性。

那么,XIP该怎么办呢?
熟悉XIP最初概念的工程师们仍然理解它的含义,至少是当时的理解。这意味着直接从非易失性内存中获取指令,并将它们直接发送给处理器。

“XIP意味着可以解决的设备,以便启动系统,然后再也不会看它,”Nantero的主要系统架构师Mill Gervasi说。这不包括在任何类型的缓存中停止。

如今,定义更加多样。两个版本一开始听起来不一样,但最终的意义是一样的。今天这个定义的简单版本是,几乎所有东西都符合XIP,除了DRAM影子。Hussain说:“当我们说执行到位时,它意味着你不需要DRAM,因为只需要非易失性存储器。”

Greenberg补充道:“我认为‘就地执行’更多地是在绕过DRAM的情况下进行的,这样即使你就地执行,你也可能会碰到本地缓存。”

这可能听起来有点任意,但弗兰克有一个不同的 - 而且同性恋的描述。他表示,它是任何执行,处理器使用的指令地址反映了原始的NVM地址。“我的执行定义是您没有地址更改的位置,您以缓存的方式执行,以及您的代码或数据的原始来源仍处于执行at的同一地址。”

这意味着任何缓存策略都不会影响XIP的状态。DRAM缓存(即请求分页)和SRAM缓存仍然让处理器使用原始的内存地址。这只是中间的缓存体系结构做了隐藏的地址转换,这样处理器可能会认为它从给定的地址得到指令,而实际上指令是从缓存中出来的。

不符合此标准的一个架构是DRAM阴影。在这种情况下,将Flash内容复制到DRAM中的某个位置。现在处理器正在使用DRAM地址,而不是原始闪存地址。因为地址基础已发生变化,所以这将不再是XIP。

XIP也是一个重要的概念吗?工程师仍然熟悉这个概念,但他们必须调整符合现代情况的含义。格林伯格说:“如果他们有能够瞬间的要求,仍然有利用它。”格林伯格说。但是,最重要的是,它似乎并不是系统架构师的重要考虑因素。在构建内存层次结构时,工程师会执行他们需要做的事情。它是否有资格作为XIP似乎已经变得有些学术。



留下一个回复


(注意:此名称将公开显示)