基于超宽总线的芯片架构及其数据访问方法与流程

文档序号:12006927阅读:313来源:国知局
基于超宽总线的芯片架构及其数据访问方法与流程
本发明涉及计算机领域,尤其涉及一种基于超宽总线的芯片架构及所述芯片架构的数据访问方法。

背景技术:
系统芯片(System-on-a-chip,SoC)是在单个芯片上集成一个完整的系统,把所有或部分必要的功能集成进单个芯片的半导体技术。完整的系统一般包括中央处理器(CPU)、多个数字和模拟IP核、存储器以及外围部件电路等。遵循摩尔定律,深亚微米级(40/28/22nm)半导体技术制程已日趋成熟,系统芯片本身的时钟越来越快(高达GHz/秒),片内集成的IP核和CPU个数(多核)越来越多,使得SoC的整体性能越来越多地受限于片外内存的访问速度,即通常所谓的“内存墙”问题。“内存墙”指的是内存性能严重限制CPU性能发挥的现象。这是由于长期以来处理器的计算速度发展得比内存的存取速度快,这种不均衡的发展速度造成了内存瓶颈,制约了日益增长的高性能处理器,难以发挥出应有的功效。图1为一种现有技术系统级芯片架构的结构示意图。在如图1所示的典型SoC系统芯片中,多核中央处理器(CentralProcessingUnit,CPU)、图形运算单元(GraphicsProcessingUnit,GPU)、视频编解码器(videocodec)、图像数据处理器(ImageSignalProcessor,ISP)都需要对片外内存(DDR)进行读写。其中,系统带宽要求最高的通常是多媒体模块,例如:一路高清视频(1920x1080,30fps)所需带宽可高达500M字节/秒。而这些高带宽模块的内存访问请求和数据必须和其他内存访问请求一起经过数据总线仲裁(datafabric),仲裁胜者才得到机会去访问DDR。这种架构有两大缺陷。第一、系统性能受限于DDR数据总线宽度(例如:在手机系统中需要达到16bit或者32bit)。为了达到性能要求,DDR总线的频率必须很高(例如:高达800MHz)。而高频率势必会引起系统的高功耗。第二、由于总线仲裁器的介入,多个模块的地址总线来回切换会降低DDR数据的访问效率,而总线仲裁的引入本身也会带来额外的系统访问延时。本领域技术人员很早就认识到“内存墙”问题,并采取了多种针对性的措施。从最初的单纯依靠提高处理器频率来提升计算性能,到后来的利用多核心并行计算技术来提升计算性能,再到后来通过降低内存等待时间、提升内存带宽的方法。比如:公开号为CN101013407A的中国专利申请中,披露了一种支持多总线多类型存储器的内存仲裁实现系统和方法,通过修改仲裁算法,提高内存数据的访问效率。但上述方法均未能彻底、有效地解决内存瓶颈问题。

技术实现要素:
本发明所要解决的技术问题是如何提高内存数据的访问效率,提高系统整体性能,降低系统功耗。为了解决上述问题,根据本发明的一个方面,提供了一种基于超宽总线的芯片架构芯片,包括:芯片,所述芯片包括第一运算单元和至少一个第二运算单元;内存,所述内存包括第一访问单元和至少一个第二访问单元;第一总线,配置成适于将所述第一运算单元和第二运算单元连接至所述第一访问单元;第二总线,配置成适于将所述第二运算单元连接至相对应的第二访问单元。可选地,所述第一总线或第二总线为超宽总线;或者,所述第一总线和第二总线构成超宽总线或超宽总线的分路。可选地,所述第一访问单元由所述第一运算单元或至少一个第二运算单元通过所述超宽总线或超宽总线分路公共访问。可选地,所述第一运算单元仅能访问所述第一访问单元。可选地,还包括:地址管理单元,配置成适用于为与所述第二运算单元连接的第一访问单元和第二访问单元分配不同的地址。可选地,还包括:地址识别单元,配置成适用于根据所述地址管理单元分配的地址识别与所述地址相对应的访问单元。可选地,所述超宽总线的带宽大于64比特。可选地,所述内存包括:SDRAM、DDR、DDR2、DDR3、DDR4和RDRAM中的至少一种。可选地,所述第二运算单元的带宽需求高于所述第一运算单元的带宽需求。可选地,所述第二运算单元包括:图形运算单元、视频解编码器和图像数据处理器中的一种或多种。可选地,所述第二访问单元的数量与所述第二运算单元的数量相等。可选地,所述第二访问单元的存储容量与其相对应的第二运算单元的带宽需求成正比。可选地,所述第二访问单元的存储容量至少为一个存储阵列。可选地,还包括:数据总线仲裁器,配置成适于当对所述第一访问单元的数据请求大于1个时,根据仲裁规则确定通过所述第一总线访问所述第一访问单元的运算单元。根据本发明的另一个方面,还提供了一种基于超宽总线的芯片架构的数据访问方法,包括:当数据访问请求来自芯片中的第二运算单元时,识别数据存储于内存中的第一访问单元或相对应的第二访问单元;若所述数据存储于所述第二访问单元,则通过第二总线访问所述第二访问单元;若所述数据存储于所述第一访问单元,则通过第一总线访问所述第一访问单元。可选地,所述超宽总线的带宽大于64比特。可选地,所述内存包括:SDRAM、DDR、DDR2、DDR3、DDR4和RDRAM中的至少一种。可选地,所述识别所述数据存储于内存中的第一访问单元或第二访问单元包括:根据地址识别所述第一访问单元或第二访问单元。可选地,还包括:当所述数据访问请求来自芯片中的第一运算单元时,通过所述第一总线访问所述第一访问单元。可选地,还包括:当对所述第一访问单元的数据访问请求大于1个时,经数据总线仲裁确定通过所述第一总线访问所述第一访问单元的运算单元。可选地,所述第二运算单元的带宽需求高于第一运算单元的带宽需求。与现有技术相比,本发明的技术方案具有以下优点:把内存芯片划分第一访问单元和第二访问单元,第一访问单元为所有运算单元共用的公共空间,第二访问单元为第二运算单元的专用空间,把SoC系统中带宽需求大的数据分流到专用空间。第二运算单元通过专享的超宽总线访问专用空间实现数据读取,无需再和其他访存请求一起参与竞争内存带宽,保证了带宽需求大的第二运算单元能获得低的访问延迟和高的访存效率,从而大大提高了系统的整体性能。另一方面,由于将带宽需求大的数据分流出去,所以公共空间的访存竞争得以缓解,从而能降低系统硬件的要求,进而降低系统功耗。可选方案中,通过地址的不同,区分专用空间和公共空间,操作简单合理,仅需修改对应模块的驱动程序,在很大程度上避免了对操作系统和上层软件的影响。可选方案中,根据带宽需求分配各专用空间的存储容量,使得各专用空间的访问速度趋于平衡,能更充分地利用有效带宽,更有效地提高系统整体性能。附图说明图1为系统级芯片架构的一现有技术的结构示意图;图2为一种总线结构的电路示意图;图3为本发明芯片架构第一实施例的结构示意图;图4为本发明芯片架构第二实施例的结构示意图;图5为本发明数据访问方法第一实施例的流程示意图;图6为本发明数据访问方法第二实施例的流程示意图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。其次,本发明利用示意图进行详细描述,在详述本发明实施例时,为便于说明,所述示意图只是实例,其在此不应限制本发明保护的范围。相比上述单纯降低内存等待时间和提升内存带宽的现有技术,发明人致力于研究内存与处理器集成技术。随着超宽DDR数据总线的出现,发明人在相关超宽总线封装技术的基础上,提出了一种全新的系统级芯片架构,从而充分利用超宽总线带来的内存带宽优势,突破“内存墙”,在相同功耗下成倍提高系统级芯片的系统整体性能,或者在相同性能下大幅降低功耗(功耗在嵌入式应用,例如:手机、PAD、MIDI等中为最重要的性能指标)。图2为一种总线结构的电路示意图。如图2所示,所述总线结构包括:存储阵列10、控制逻辑电路20、接口转换逻辑电路30、原有总线40和超宽总线40’。所述存储阵列10包括:8个bank(bank0~bank7)即:存储体,bank(数量)=颗粒*位宽/64bit,用于存储数据。所述控制逻辑电路20包括:行地址锁存、存储阵列控制电路、列地址锁存、位选择逻辑电路等,用于控制所述存储阵列,实现对所述bank中特定存储单元的读写操作。所述接口转换逻辑电路30用于将从所述bank中读取出来的数据经过串并转换,从特定接口中传输出去。经过所述接口转换逻辑电路30的数据总线宽度将大大限缩。所述原有总线40包括:原有地址总线和原有数据总线。如图2所示,所述原有地址总线宽度一般在15比特左右,所述原有数据总线宽度一般为4、8、16比特。在本实施例中,所述接口逻辑转换电路串并转换前的原有数据总线宽度为16比特,经所述接口逻辑转换电路串并转换之后的原有数据总线宽度缩窄为了4比特。经串并转换后的原有数据总线将最终连接到信号焊盘(图未示)上,以满足传统芯片封装的需要。所述超宽总线40’包括:超宽地址总线和超宽数据总线。如图2所示,所述超宽总线40’的宽度明显宽于所述原有总线40。具体地,所述超宽地址总线可分为多路(比如:2、4、8路等,本实施例中仅以1路示意),每一路宽度在32比特左右。所述超宽数据总线也可分为多路,每路宽度可为64、128、256比特,甚至更宽。本实施例中,所述超宽数据总线的宽度为128比特。所述超宽数据总线不经过所述接口转换逻辑电路30,而是连同所述超宽地址总线一起,直接与微焊盘(图未示)连接,以满足传统芯片封装的需要。本电路的具体工作过程如下:首先,将需要进行读取/写入操作的存储单元的地址经所述超宽地址总线(宽度32比特)直接传输至所述行地址锁存和所述列地址锁存。所述行地址锁存经所述原有地址总线选中所述存储阵列中某一bank的对应行。所述列地址锁存经所述位选择逻辑,选中所述对应行中的对应列的存储单元。对所述存储单元进行读取/写入操作。所述存储单元内的数据直接经所述超宽数据总线(宽度128比特)传输至芯片的对外接口(即:微焊盘)。由于这种超宽总线直接从存储阵列的bank中引出,不经过串并转换,因此能大幅提高总线带宽。需要说明的是,本发明对总线结构的及形成方法不作具体限定,本领域技术人员可以理解,使用其他现有技术的超宽总线亦可应用本发明中,比如:应用于SamsungWide-IO存储器中的超宽总线等。本发明技术方案提供了一种基于超宽总线的芯片架构。图3为本发明芯片架构第一实施例的结构示意图。如图3所示,本实施例的芯片架构包括:芯片U11、片外内存U12、第一总线U13和第二总线U14。具体地,所述芯片U11包括:1个第一运算单元U111和3个第二运算单元U112a、U112b、U112C。所述第一运算单元U111为中央处理器CPU。所述第二运算单元为对系统带宽要求高的多媒体模块,其带宽需求明显高于所述第一运算单元。本实施例中,第二运算单元U112a为图形处理单元GPU,第二运算单元U112b为视频编解码器VideoCodec,第二运算单元U112c为图像数据处理器ISP。需要说明的是,本发明对第二运算单元的数量和所实现的逻辑功能均不做具体限定。本实施例中列举的第二运算单元,旨在具体说明本技术方案。事实上,第二运算单元可以是任何有高带宽需求的硬件模块,比如:网络数据包处理模块,音频处理单元等。继续参考图3,具体地,所述片外内存U12包括:1个第一访问单元U121和3个第二访问单元U122a、U122b和U122c。所述片外内存U12可以是SDRAM、DDR、DDR2、DDR3、DDR4和RDRAM中的至少一种,本发明对此不作具体限定,本实施例以DDR为例。所述第一访问单元U121为所述第一运算单元U111和所述第二运算单元U112a、U112b、U112C所共用的内存空间,用于各运算单元之间的数据交换,例如:当所述第二运算单元U112c处理完图像或视频数据,需要交给所述第二运行单元U112b继续处理时,所述第二运算单元U112c把处理结果写入所述第一访问单元U121,所述第二运算单元U112b从所述第一访问单元U121中读取所述处理结果。所述第二访问单元U122a、U122b和U122c为所述第二运算单元U112a、U112b、U112C各自专用的内存空间。所述第一运算单元U111访问不到所述第二访问单元U122a、U122b和U122c。具体地,所述第二访问单元U122a为所述第二运算单元U112a独用,所述第二访问单元U122b为所述第二运算单元U112b独用,所述第二访问单元U122c为所述第二运算单元U112c独用。所述第二访问单元U122a、U122b和U122c中可存储各自专用的第二运算单元处理所需的,且不需要和其他运算单元进行交换的中间计算数据。需要说明的是,本实施例中第二访问单元的数量与第二运算单元数量相同(即:每个第二运算单元独用一个第二访问单元),但本发明对此不做具体限定,在其他实施例中,可根据存储容量、运算速度等不同的实际需求,为一个第二运算单元分配多个第二访问单元,或者多个第二运算单元共享一个第二访问单元。继续参考图3,所述第一总线U13和第二总线U14可以构成超宽总线或者超宽总线的分路。比如:以图2所示的超宽总线为例,其中,超宽数据总线的宽度为128比特,共分为4路。可以将其中的2路作为第一总线U13使用,另2路作为第二总线U14使用。在其他实施例中,也可以是第一总线或第二总线为超宽总线或者超宽总线的分路。所述第一总线U13将所述第一运算单元U111和所述第二运算单元U112a、U112b、U112c连接至所述第一访问单元U121。所述第二总线U14独立地将所述第二运算单元U112a连接至所述第二访问单元U122a,所述第二运算单元U112b连接至所述第二访问单元U122b,所述第二运算单元U112c连接至所述第二访问单元U122c。需要说明的是,本实施例的芯片架构还包括:地址管理单元(图未示),用于为与各第二运算单元U112a、U112b、U112c连接的第一访问单元U121和第二访问单元U122a、U122b、U122c分配不同的地址。本实施例的芯片架构还包括:地址识别单元(图未示),根据分配的不同地址识别第二运算单元需要访问的是第一访问单元,还是其独用的第二访问单元。比如:为第一访问单元分配0~32M之间的低位地址,为各第二访问单元分配大于32M的高位地址。通过地址的不同,区分第一访问单元和第二访问单元,主要是考虑到把因芯片架构的改变而对整个软件系统的影响降至最低。为第一访问单元和第二访问单元分配不同的地址,使得操作系统内核提供的内存管理(分配和释放等)均不需要改动,对于操作系统以上的中间层和应用软件也没有影响。唯一需要改动的是第二运算单元对应的软件驱动程序。在本发明的芯片架构下,内存地址会分为公有(对应第一访问单元)和私有(对应第二访问单元)两种,第二运算单元的驱动程序需要区分第二运算单元需要访问的是第一访问单元,还是第二访问单元。本实施例按照带宽需求将运算单元分为一般带宽需要和高带宽需求两类,将整个内存划分为第一访问单元和多个第二访问单元。并将整个超宽数据总线分割为第一总线和第二总线,高带宽需求的运算单元通过其专用的第二总线访问其专用的第二访问单元,不用再经过总线仲裁和其他运算单元竞争内存带宽,因而享有极低的访问延迟和极高的内存访问效率。同时,由于第二访问单元的数据访问带宽通常占据整个系统级芯片带宽的大多数,将其专用化使得对第一访问单元的带宽要求也相应降低,从而大大改善第一访问单元的访存效率,大幅提高了系统整体性能,降低了系统功耗。图4为本发明芯片架构第二实施例的结构示意图。与前一实施例相同的部分,此处不再赘述。与前一实施例不同的是,本实施例中不仅增加了总线仲裁器,还示出了部分共享的第二访问单元以及存储容量与带宽需求之间的关系。如图4所示,本实施例包括:芯片U21、片外内存U22、第一总线U23、第二总线U24和数据总线仲裁器U25。具体地,所述芯片U21包括:2个第一运算单元U211a、U211b和3个第二运算单元U212a、U212b、U212c。所述第一运算单元U211a为中央处理器CPU,所述第一运算单元U211b为操作系统模块。所述第二运算单元212a为图形处理单元GPU,所述第二运算单元212b为视频编解码器VideoCodec、所述第二运算单元212c为图像数据处理器ISP。所述片外内存U22为一颗存储容量256M字节的DDR芯片,可提供512比特的数据总线宽度。具体地,所述片外内存U22由8个存储阵列(图中虚线所示)组成,每个存储阵列的存储容量均为32M字节。所述片外内存U22内部被分为1个第一访问单元U221和3个第二访问单元U222a、U222b和U222c。所述第一访问单元U221为2个第一运算单元U211a、U211b和3个第二运算单元U212a、U212b、U212c所共用,其由4个存储阵列组成,存储容量为128M字节(即:32M*4)。所述第二访问单元U222a为所述第二运算单元U212a所专用,其由2个存储阵列组成,存储容量为64M字节(即:32M*2)。所述第二访问单元U222b和U222c各由1个存储阵列组成,存储容量为32M字节。所述第二访问单元U222b和U222c是由所述第二运算单元U212b和U212c共享的内存空间。需要说明的是,本实施例中,为了更充分地利用内存空间,所述第二访问单元的存储容量与其相对应的第二运算单元的带宽需求成正比,带宽需求越高,为之分配的第二运算单元越大。本领域技术人员可以理解,内存分配存储容量一般以存储阵列为单位,因此,所述第二访问单元的存储容量至少为一个存储阵列。所述数据总线仲裁器25,配置成适于根据仲裁规则从对第一访问单元U221有数据访问请求的第一运算单元和第二运算单元中择一访问第一访问单元U221,本发明对仲裁规则不做具体限定。所述第一总线U23将所述第一运算单元U211a、U211b和第二运算单元U212a、U212b、U212c连接至所述第一访问单元U221。其中,所述第一访问单元U221可由所述第一运算单元U211a、U211b或所述第二运算单元U212a、U212b、U212c通过所述第一总线U23公共访问。所述第一运算单元U211a、U211b仅能访问所述第一访问单元U221,而不能访问所述第二访问单元U222a、U222b、U222c。具体地,所述第一运算单元U211a、U211b和第二运算单元U212a、U212b、U212c经所述第一总线U23连接至所述总线仲裁器U25,所述总线仲裁器U25经所述第一总线U23连接至所述第一访问单元U221。本实施例中包括多条独立的第二总线U24,其带宽与相对应的第二访问单元的带宽需求成正比。具体地,一条第二总线U24将所述第二运算单元U212a连接至所述第二访问单元U222a。另一条第二总线U24将所述第二运算单元U212b、U212c连接至所述第二访问单元U222b、U222c。由于所述第二运算单元U212a的带宽需求高于所述第二运算单元U212b和U212c的带宽需求,因此连接所述第二运算单元U212a的第二总线U24的带宽大于连接所述第二运算单元U212b和U212c的第二总线U24的带宽。本实施例中,根据第二运算单元带宽需求分配对应的第二访问单元的存储容量,使得内存的访存效率进一步提升,从而进一步提高SoC的整体性能。本实施例还为第二运算单元分配部分共享的第二访问单元,使得内存的分配更趋灵活合理。相应地,本发明还提供了一种基于超宽总线的芯片架构的数据访问方法。图5为本发明数据访问方法第一实施例的流程示意图。所述基于超宽总线的芯片架构可以是如图3或图4所示的芯片架构。如图5所示,本实施例包括以下步骤:执行步骤S101,判断数据访问请求是否来自芯片中的第二运算单元。具体地,所述第二运算单元包括:图形运算单元、视频解编码器、图像数据处理器中的一种或多种,所述第二运算单元的带宽需求高于第一运算单元的带宽需求。若是,则继续执行步骤S102,识别数据存储于内存中的第一访问单元,还是相对应的第二访问单元。具体地,所述超宽总线的带宽大于64比特。所述内存包括SDRAM、DDR、DDR2、DDR3、DDR4和RDRAM中的一种或多种,可根据地址识别数据存储于所述第一访问单元或第二访问单元。若所述数据存储于所述第二访问单元,则执行步骤S103,通过第二总线访问第二访问单元。具体地,所述第二运算单元数量与所述第二访问单元数量相等。所述第二访问单元的存储容量与相对应的第二运算单元的带宽需求成正比。所述第二访问单元的存储容量至少为一个存储阵列。若所述数据存储于所述第一访问单元,则执行步骤S104,通过第一总线访问第一访问单元。图6为本发明数据访问方法第二实施例的流程示意图。如图6所示,本实施例包括以下步骤:执行步骤S201,判断数据访问请求来自芯片中的第一运算单元,还是第二运算单元。具体地,所述第二运算单元的带宽需求高于所述第一运算单元的带宽需求。若所述数据访问请求来自所述第二运算单元,则执行步骤S202,判断数据存储于内存中的第一访问单元,还是相对应的第二访问单元。若所述数据存储于所述第二访问单元,则执行步骤S203,通过第二总线访问第二访问单元。若所述数据存储于所述第一访问单元或者所述数据访问请求来自所述第一运算单元,则执行步骤S204,判读对第一访问单元的数据访问请求是否大于1个。若对第一访问单元的数据访问请求小于等于1个,则执行步骤S205,通过第一总线访问第一访问单元。若对第一访问单元的数据访问请求大于1个,则执行步骤S206,经数据总线仲裁确定通过第一总线访问所述第一访问单元的运算单元。需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的部分或全部可借助软件并结合必需的通用硬件平台来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可包括其上存储有机器可执行指令的一个或多个机器可读介质,这些指令在由诸如计算机、计算机网络或其他电子设备等一个或多个机器执行时可使得该一个或多个机器根据本发明的实施例来执行操作。机器可读介质可包括,但不限于,软盘、光盘、CD-ROM(紧致盘-只读存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。需要说明的是,本领域技术人员可以理解,上述部分组件可以是可编程逻辑器件,包括:可编程阵列逻辑(ProgrammableArrayLogic,PAL)、通用阵列逻辑(GenericArrayLogic,GAL)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)中的一种或多种,本发明对此不做具体限制。本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1