首页 > 范文大全 > 正文

KeyStone内存架构

开篇:润墨网以专业的文秘视角,为您筛选了一篇KeyStone内存架构范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

序言

随着全球大量的资料强烈冲击无线和有线网络,营运商面临着严峻的挑战,需要不断推出能满足当前与未来需求的网络。因此,通信基础建设设备制造商致力于降低每bit成本和功耗的同时,也不断寻求能够满足当前及未来需求的核心技术。TI最新推出的新型keystone多核心SoC架构即能满足这些挑战。

基于新型KeyStone多核心SoC架构的装置包含了多达8个TMS320C66x DSP CorePac,能够实现无与伦比的定点与浮点处理能力。KeyStone架构是一款精心设计且效率极高的多核心内存架构,能在执行任务的同时,允许所有的CorePac实现全速处理。本文探讨KeyStone内存层级,以及如何连结至SoC架构的其他部件,以实现多核心全速处理。

Keystone内存架构

TI积极创新以面对多核心soc技术挑战。TIKeyStone架构包含全新的C66x定点和浮点DSP核心、针对基于标准的优化功能和接口的可配置协处理器、层级内存架构、TeraNet切换结构以及可将上述各部件连结在一起的多核心导航器。KeyStone架构具备3种内存阶级;每个C66xCorePac均拥有自己的一级程序(L1P)和一级数据(L1D)内存。另外,每个CorePac还拥有本地(local)的二级统一内存。每个本地内存均能独立配置成内存映像的SRAM、快速缓冲贮存区,或是两者的组合。

KeyStone架构包含共享的内存子系统,是透过多核心共享内存控制器(MSMC)链接的内部和外部内存所组合而成。MSMC允许CorePac动态地分享程序和数据的内外部内存。

MSMC的内部RAM透过允许各部分被配置成共享的二级RAM或者共享三级(SL3)RAM,可提供程序设计师高度的灵活度。SL2 RAM仅能够在本地L1P和L1D快速缓冲贮存区中缓存,而SL3另外可在本地L2快速缓冲贮存区中进行缓存。

为提供软件执行一个快速路径,外部内存和内部共享内存一样,透过同一内存控制器进行链接,而并非像在嵌入式处理器架构上所进行的传统做法一与芯片系统实现相互链接。外部内存始终被视为SL3内存,并可在L1和L2中缓存。接下来将探讨在KeyStone架构中实现的各种效能提升。

储存效能提升

C66x CorePac的内部存储器架构是从上一代C6000 DSP系列产品达到四方面的提升,特别针对效能指标和实用性方面。这些改进实现以下优势:1)无论多个核心和资料I/O是否处于高度繁忙状态,都能提高内存各级的执行效率;2)更轻松地管理多个核心和数据I/O之间的缓存一致性;3)内存的保护与地址扩展,以及;4)将对软错误的保护进一步扩展至较高级的内存。

执行效率

C66x CorePac内存子系统在功能上相当于最新的C64x+和C67x系列DSP系列C64x+和C67x。每个本地L1内存均为32KB,并能够配置成全速缓存(隐含)、全内存映像SRAM,或是4、8或16KB快速缓冲贮存区选项的组合。L1P始终为直接映像,而L1D则始终为双向集合关联(two-way set--associative)。

相应地,本地L2内存是高达1MB的统一内存(最初宣布推出的装置为512KB或1MB)。此外,该内存也可配置为全快速缓冲贮存、全内存映像SRAM(隐含),或是32、64、128、256或512KB四路集合关联快速缓冲贮存选项的组合。

要到达共享存内存子系统的存取路径是经过精心的重新设计,能够显着降低至较高级内存的延迟,无论所有CorePac和数据I/O是否处于繁忙状态,均能维持相同的效率。

第二级内存效率

与之前的系列产品相比,LL2内存装置和控制器在更高频率下运行。C66x LL2内存以等同于CPU的时钟速率运行。更高的时钟速率可实现更快的存取,可减少了因L1快速缓冲贮存失效所造成的停滞,在此情况下必须从LL2快速缓冲贮存或SRAM获取内存。当从C64X+或C67X装置升级时,此项改变就自动地加速应用,而且无需为C66x指令集进行重新编译。

此外,无论是由使用者隐藏的还是由软件命令驱动的快速缓冲贮存一致性操作都会变得更高效,而且需要执行的周期数也更少。反之,这也意味着自动的快速缓冲贮存一致性操作(例如检测、驱逐)对处理器的干扰就更小,因此停滞周期数也更少。手动的快速缓冲贮存一致性操作(例如全局或区块回写和/或无效)占用较少的周期即可完成,这就意味着在为共享内存进行判优的同时,实现CorePac之间或CorePac与DMA主系统的同步将需要更短的等待时间。

共享内存效率

为进一步提高共享内存的执行效率,在CorePac内置了扩展内存控制器(XMC)。对共享内部存储器(SL2/SL3)和外部内存(DDR3 SRAM)来说,XMC是通往MSMC的途径,并建立在实施在之前装置的架构上,该装置具有共享二级(SL2)内存(比如TMS320C6472 DSP)。

在之前具有SL2内存的装置上,通往SL2的存取路径与通往LL2的存取路径一样,在邻近内部接口均有一个预取缓冲器。预取功能可隐藏对共享RAM库的存取延迟,并可优化程序代码执行及对只读取数据的存取(全面支持写入操作)。XMC虽然也遵循相同的目标,但是却进一步扩展添加了更加强大的预取功能,从而对程序执行和R/W数数据取提供了可与LL2相媲美的最佳效能。预取功能不仅能在造访内存之前,透过拉近内存和C66x DSP核心之间的距离来降低存取延迟,而且还能减缓其他CorePac和数据I/O透过MSMC争夺同一内存资源的竞争局面。

MSMC透过256位宽的汇流与XMC相连,而XMC则可直接连结至用于内部SL2/SL3 RAM的4个宽1024位内存组。内部存储器组使XMC中的预取逻辑功能,能够在未来每次存取物理RAM的要求之前获取程序和数据,从而避免后续访问停滞在XMC。MSMC可透过另一256位接口与外部内存接口控制器直接相连,进一步将CorePac的高带宽接口一直扩展到外部内存。

对于外部内存而言,KeyStone架构可透过与共享内部存储器相同的通道进行存取,显着地提升之前的架构。该信道的宽度是之前装置的两倍,而速度则为一半,能大幅降低到达外部DDR3内存控制器(透过XMC和MSMC)的延迟。在之前的C6000 DSP中以及众多的嵌入式处理器架构中,外部CPU和快速缓冲贮存存取是透过芯片级互连进行的,而XMC则可提供更为直接的最佳通道。当从外部内存执行程序时,其可大幅提高L1/L2快速缓冲贮存效率,并在多个核心与数据I/O对外部内存同时进行判优时,能够显着降低所带来的迟滞。

对于内部和外部内存,所有的数据I/O流量都 可透过多条直接信道进入MSMC到达芯片,而不是透过CorePac内存控制器,从而在当数据I/O要存取CorePacs当前没有存取(例如,当CorePac从SL2执行,而数据I/O往返于DDR3时)的内存端点时,能使两者处于完全正交的状态;而且在XMC预取缓冲器后可提供判优,以对CorePacs隐藏内存组之间的冲突。

此外,XMC还为数据和程序预取嵌入多串流预取缓冲器。程序预取缓冲器可为来自L1P和L2的读取请求提供服务,从而使其能够在CPU需要之前预取高达128字节的程序数据。数据预取缓冲器可为来自L1D和L2的读取请求提供服务。数据预取单元能够支持8个预取串流,且每个串流都能独立地从地址增加方向或减少方向预取数据。针对进入DSP核心的数据串流,预取功能能够有助于减少强制失效损失。在多核心环境中,预取功能还能透过分散带宽尖峰来提升效能。为在不增加负面影响的情况下利用预取实现效能提升,则可在16MB范围内,内存可被配置为启用或禁用预取属性。

外部内存效率

除了将外部内存链接到MSMC所带来的优势,Keystone外部内存还包含了对外部内存控制器(EMlF)的显着改进。KeyStone架构能够以1333MT/s以上的速率支持高效能DDR3 SDRAM内存。虽然汇排流可配置成16或32位(为节省电路板空间和功耗),但其实际支持的总线宽高达64位数据宽度。该架构相较于之前的,具有更大的宽度以及更快的速度,可允许多个更高效能的核心、加速器和数据I/O之整合。

快速缓冲贮存一致性控制

通常在多核心装置以及多装置系统内,数据作为处理的一部分在核心之间共享。KeyStone架构可提供一些改进措施,以简化共享内部与外部内存的一致性管理操作。

在KeyStone架构中,LL2内存始终与L1D快速缓冲贮存保持一致,所以不需要对一致性管理进行特殊的配置(虽然使用L1D一致性命令有可能实现一些效能优化)。而硬件无法保证SL2和SL3这两种共享内存与L1和L2快速缓冲贮存的同步,因此需要软件控制往返于数据I/O页面的传输,以及对多核心之间共享缓冲器的存取。

为简化该过程,已将围篱(fence)操作增加到CorePac中,以作为新的MFENCE指令。当与简单的CPU回路结合时,MFENCE可被使用于实施fence操作,以保证读/写存取群组之间的序列一致性,对可能从不同路径到达的特定端点之内存要求同步进行。此外,对于多处理器算法,还可使用于以特定顺序实现对内存的存取,而这一顺序从所有CPU角度来看都一样。这可大幅简化共享数据段所需的一致性协议。共享内存保护与地址扩展

内存保护在内部存储器中(L1、L2、SL2)均是C64x+和C67x DSP架构的一部分。KeyStone架构将内存保护扩展至外部内存的同时,还为内部存储器保护添增灵活度。另外,MSMC允许将外部内存的地址空间从32位扩展至36位。

每个C66x DSP都被分配一个独特的权限ID(PrivID)值。数据I/O主系统被分配一个PrivID,而EDMA则例外,但它可以继承为每次传输进行配置的主系统PrivID值。KeyStone装置总共可支持16个PrivID值。内存保护属性分别为管理员用户和普通用户分配了读/写/执行访问权限。

本地内存的储存保护

C66x CorePac可提供由软件控制的请求者到内存的灵活映像,进一步从之前的C6000架构扩展内存保护协议。所有内存请求者(C66x CPU、EDMA、导航器、PCle、sRlO等)均拥有相关连的特权ID。内部存储器控制器可以区分多达6个不同的请求者,并配置所有其他请求者。由于KeyStone装置整合了更多的核心以及更多的DMA主系统(I/O和加速器),这一数目已不敷使用。KeyStone CorePac允许将系统主控器的ID映像到保护逻辑中使用的ID,使应用能够获得量身打造的强大保护功能。

共享内存的内存保护

共享内存拥有多个内存保护和地址扩展(MPAX)单元。C66x DSP可透过XMC中的本地MPAX访问MSMC信道,而数据I/O则透过MSMC中的MPAX逻辑访问MSMC,并分别对内部共享内存和外部内存进行控制。

MPAX单元将内存保护和地址扩展结合成一步完成。正如对本地内存的存取一样,MPAX的操作基础为每个交易事务承载的特权ID,用以代表内存的请求者。对于每个PrivID,相关连的MPAX单元在内部共享内存和外部内存中均支持最多16个内存段的定义,每个内存段均独立配置,并提供各自的内存保护地址扩展属性。每个内存段的大小可以是2的任意次方,范围介于4KB到4GB之间。地址扩展功能可将外部储存空间从32位地址扩展至36位。

内存段的地址区间定义非常灵活,而且能够重迭以建立尺寸为非2的指数次方大小的段,以及附加的内存区域。

地址扩展功能可将32位地址重新映像到36位,以支持更大的外部内存。地址扩展能将DSP核心中相同的虚拟地址,映像到不同的物理地址,并将多个虚拟地址映像到同一物理地址,这对于同一个内存来说具有不同的语义。MPAX单元可将运行在不同DSP核心之上的操作系统和应用进行隔离,并能轻松支持共享程序。

图6显示了如何在KeyStone架构内,使用MPAX来建立多核心虚拟内存的实例。假设所有核心均运行同一应用,则可将该共享程序和静态数据加载至共享的内部和外部内存区域中。私有变量(如数据1)可以使用各个核心中的同一虚拟地址,同时MPAX将其映像至不同的物理内存地址。软件在运行时无需重新进行任何地址映像,即可使相同的代码影像在多个核心上执行。

错误侦测与纠正

专用于基础建设的几代C6000装置系列,内部存储器空间中包含了软错误纠正功能。KeyStone系列装置以该技术为基础,能够进一步将软错误保护扩展至内存的所有层级。

层级系统中的内存控制器可支持多层级保护,并可用于实现对代码段进行全面纠正,并对数据空间进行错误侦测。L1P、L2和SL2(或SL3内部RAM)均包含侦测和纠正128位或256位内存段内单一位错误的奇偶校验讯息。另外,还将能侦测到同一存取中的两个位错误并对存取CorePac触发异常。对于数据存取,仅能侦测到位误差,并触发异常。无论发生侦测还是纠正事件,讯息均被储存在错误存取的内存控制器中,以便为应用和/或主机恢复提供信息协助。

透过ECC逻辑可将软错误保护进一步扩展至外部内存空间。每64位数据有一个8位ECC码,根据选项可配置成支持32位和64位数据宽度。添加ECC需要支持32位数据宽度的额外4位DDR3 IC(实现36位接口),或额外的8位DDR3 IC(实现72位接口)以存放与整个外部数据空间相关的ECC值。

总结

新型KeyStone架构在内存架构方面具备各种优势,意味着无论在单一核心还是在多核心SoC执行环境中,都能够直接实现显着的效能提升。与前代产品相比,这些效能提升涉及各级内存,如本地L2、共享L2/L3,以及外部内存等。透过高效判优和预取机制,效能改进也体现在多核心、加速器以及数据I/O的同时存取方面。

针对核心之间以及核心与数据I/O之间的共享数据页面,快速缓冲贮存一致性控制的提升,可实现更简单的判优。实施内存保护和地址扩展可实现高度灵活的编程模型、更大范围的地址搜索,并为错误存取提供保护。针对各级内存的软错误保护可确保运行时,执行不受随机软错误事件的影响,而该事件会对所有嵌入式处理器造成影响。

Keystone架构在内存效能、易操作性以及灵活度方面实现的改进,可确保程序人员能够实现由功能强大的新型C66X DSP系列提供的全速效能优势。该架构具有卓越的可扩展性,其为具有各种数量的核心、加速器和数据I/O的SoC系列奠定了坚固基础。

如欲了解更多详情,敬请参访/c66muIticore