处理器单元、访问内存的方法、计算机主板和计算机系统与流程

文档序号:27632889发布日期:2021-11-29 16:35阅读:165来源:国知局
处理器单元、访问内存的方法、计算机主板和计算机系统与流程

1.本公开内容总体上涉及计算机技术领域,尤其涉及一种处理器单元、访问内存的方法、计算机主板和计算机系统。


背景技术:

2.现有技术中通常采用在pcb上安装内存的方式,即所谓的板载内存,板载内存的容量较大,但是位宽低,数据传输效率低。cpu只能调用内存中的数据进行处理,并将数据返回到内存中,但cpu的速度远大于内存,因此内存较低的数据传输速度会影响处理数据的速度,cpu的运算速度和需要的内存的数据供应能力之间存在鸿沟,从而形成了“内存墙”。为解决cpu和内存间速度差异较大的问题,引入了高速缓存(cache),用于处理器cpu和内存间的数据交换。cache的速度在cpu和内存之间,数据的传输方式变为:内存中的数据先调用到cache中,cpu再提取cache中的数据。cpu、cache、内存三者的速度排列是从快到慢,数据容量的大小是从小到大。
3.在第63届国际电子器件大会(iedm 2020)上公开发表的题为《采用3d混合键合技术具有34gb/s/1gb带宽和0.88pj/b能效接口的异质集成嵌入式lpddr4/lpddr4x dram》(a stacked embedded dram array for lpddr4/4xusing hybrid bonding 3d integration with 34gb/s/1gb 0.88pj/b logic

to

memory interface)的技术论文中公开了sedram(stacking embedded dynamic random access memory,三维堆叠嵌入式动态随机存储器)。sedram是一种dram结构,通过将edram(enhanced dynamic random access memory,增强动态随机存取存储器)与cpu(中央处理器)上的ball(球状格栅)进行互连(即键合),获得更高的位宽与数据传输速度。sedram的数据容量大小与cpu的面积有关,现有的cpu面积一般在70

140mm2间,因此sedram的数据容量在512mb

2gb之间。sedram与cpu之间通过凸点连接的方式,带宽高,位宽可以达到1024*8位(而常用的在主板上的内存的连接方式位宽为64*4位),并且避免了pcb上走线对数据传输带来的影响。sedram可实现超大带宽、超低功耗、超大容量的嵌入式dram。
4.一方面,可以考虑将sedram直接作为cache使用,其容量比cpu芯片上集成的缓存要大。图1示意性地示出了将sedram作为cache使用的处理器单元的架构示意图。处理器100包括cache控制器102和sedram接口104,cache控制器102与sedram接口104连接,sedram接口104与处理器外部的sedram裸晶(die)110连接。处理器单元100与sedram裸晶(die)110最终被封装在同一块芯片10中。
5.另一方面,虽然可以直接将sedram作为内存使用,但是sedram的最大数据容量为2gb,远小于在pcb板上连接的板载内存(8

32gb)的存储容量。sedram做内存的方式,优点在于位宽高、数据传输速度快,但是存储空间小。
6.采用在pcb上安装内存的方式(板载内存),内存容量较大,但是位宽低,数据传输效率低。sedram做内存的方式,位宽高,数据传输速度快,但是存储空间小。
7.背景技术部分的内容仅仅是发明人所知晓的技术,并不当然代表本领域的现有技
术。


技术实现要素:

8.为了解决现有技术的问题,本公开内容实施例的目的之一在于提供一种使得处理器能够高效地读写数据的解决方案。本公开内容的核心构思是,将sedram作为第一内存使用,将板载内存作为第二内存使用。cpu包含第一内存控制器、第二内存控制器,第一内存控制器与sedram的裸晶连接,第二内存控制器与板载内存连接。
9.在一方面,本发明的实施方式提供一种处理器单元。该处理器单元包括缓存控制器、片内缓存、第一内存控制器、第二内存控制器和第一sedram接口。片内缓存、第一内存控制器和第二内存控制器均与缓存控制器连接,第一内存控制器与第一sedram接口连接,第一sedram接口用于连接用作第一内存的第一sedram存储器,第二内存控制器用于连接用作第二内存的板载内存。
10.在一个实施例中,缓存控制器还与第二sedram接口连接,第二sedram接口用于连接用作末级缓存的第二sedram存储器。
11.在一个实施例中,第一sedram接口和第二sedram接口是同一个或者不同的sedram接口。
12.在一个实施例中,第一sedram存储器和第二sedram存储器实现在同一块sedram存储器或者sedram晶圆的不同部分上。
13.在一个实施例中,第一sedram存储器和第二sedram存储器是动态地或者静态地划分的。
14.在一个实施例中,第一内存和第二内存是静态分配的或者动态分配的。例如,缓存控制器被配置为动态地调度第一内存控制器和第二内存控制器进行数据读写。
15.在一个实施例中,用作第一内存的sedram存储器和处理器单元键合在一起。
16.在另一方面,本发明的实施方式提供一种处理器单元访问内存的方法。该处理器单元包括缓存控制器、片内缓存、第一内存控制器、第二内存控制器和第一sedram接口,其中片内缓存、第一内存控制器和第二内存控制器均与缓存控制器连接,第一内存控制器与第一sedram接口连接,第一sedram接口用于连接用作第一内存的第一sedram存储器,第二内存控制器用于连接用作第二内存的板载内存。该方法包括如下步骤:s1:所述处理器单元访问片内缓存以读取数据;s2:在访问片内缓存未命中数据的情况下,判断所述数据的存储位置;以及s3:如果所述数据存储在所述第一内存中,则所述处理器单元向所述第一内存控制器发送控制命令,所述第一内存控制器通过所述第一sedram接口访问所述第一内存,将所述数据发送到所述片内缓存;如果所述数据存储在所述第二内存中,则所述处理器单元向所述第二内存控制器发送控制命令,所述第二内存控制器访问所述第二内存,将所述数据发送到所述片内缓存。
17.在另一方面,本发明的实施方式提供一种计算机主板,其包括处理器芯片以及第二内存的安装槽。该处理器芯片包括前述的处理器单元以及与该处理器单元键合的用作第一内存的第一sedram存储器。
18.在又一方面,本发明的实施方式提供一种计算机系统,其包括前述的处理器单元
或者前述的计算机主板。
19.根据本发明的各种实施方式,将sedram作为第一内存使用,并且将板载内存作为第二内存使用,第一内存和第二内存共同为处理器的缓存提供数据。可将关键的或常用的数据放入读写效率更高的第一内存中,cpu和内存之间的数据读写速率得以改善,从而能够提供cpu的计算速率。通过将sedram的一部分用作末级缓存,能够提高cache的容量。
附图说明
20.在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:图1示意性地示出了将sedram作为cache使用的计算机系统架构示意图;图2示意性示出了根据本发明实施方式的处理器单元包括第二内存控制器和第一内存控制器的计算机系统架构示意图;图3示意性示出了根据本发明实施方式的处理器单元访问内存的方法的示意图;图4示意性示出了根据本发明实施方式的sedram用作第一内存和末级缓存的计算机系统架构示意图;以及图5示意性示出了根据本发明实施方式的示例性计算机系统的结构框图。
具体实施方式
21.下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
22.应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
23.在本公开的描述中,需理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,所以不能理解为对本公开的限制。此外,术语“第一”、“第二”或者“一级”、“二级”等仅用于描述目的,而不能将其理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”或者“一级”、“二级”的特征可以明示或隐含地包括一个或者更多个特征。
24.在本公开中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
25.在本公开中,“示例性”一词用来表示“用作例子、例证或说明”。本公开中被描述为

示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本公开,给出了以下描述。在以下描述中,本公开为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,即使在不使用这些特定细节的情况下也可以实现本公开。在其它的实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本公开的描述变得晦涩。因此,本公开并非旨在限于所示的实施例,而是应与符合本公开所公开的原理和特征的最广范围相一致。
26.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
27.需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
28.以下结合附图对本公开的具体实施例进行详细说明。应当理解,此处所描述的具体实施例仅用于说明和解释本发明的实施方式,并不用于限定本发明的实施方式。
29.参考图2,其示意性示出了根据本发明实施方式的包括第一内存和第二内存的计算机系统架构示意图。
30.处理器单元(cpu)200包括缓存控制器202、片内缓存204、第一内存控制器206、第二内存控制器208和sedram接口210。片内缓存204、第一内存控制器206和第二内存控制器208均与缓存控制器202连接,第一内存控制器206与sedram接口210连接,sedram接口210用于连接用作第一内存的第一sedram存储器220,第二内存控制器208用于连接用作第二内存的板载内存230。
31.处理器单元可以向第一内存控制器及第二内存控制器发出相应的操作命令及数据交互请求,第一内存控制器控制读出或写入sedram单元的内容,第二内存控制器控制读出或写入板载内存的内容。
32.通过将sedram做第一内存,将板载内存做第二内存,在cpu的体系中存在两套内存访问体系,第一内存为sedram,其带宽高、速度快、容量小,第二内存为连接在pcb板上的板载内存,其带宽低、速度较慢、容量较大,sedram的数据传输速率相比于pcb上的内存更高,但是数据容量更小,在512mb

2gb左右,可与cpu进行更快的数据交换。
33.软件可以通过操作系统地址空间的划分,将经常使用、对性能要求高的程序和数据通过地址空间的分配放在第一内存中,将其他程序和数据放在第二内存中。当程序和数据量较小时(小于第一内存sedram的大小)可全部直接在第一内存中进行操作,实现更高速的数据读取,处理速度更快。
34.如果数据量超过sedram的容量,可将关键的数据(操作系统、核心的控制逻辑等常用的重要的数据)放入第一内存中,从而cpu对关键数据的读取速度会更快。
35.sedram的效率比第二内存高一个数量级。通过采用sedram存储器220,例如sedram裸晶,用作第一内存的sedram存储器220与处理器单元100键合在一起,可以被封装在同一块芯片20中。
36.第一内存和第二内存是cpu能够直接寻址的存储空间,并置地作为片内缓存的数据源。片内缓存在第一内存与处理器单元之间以及在第二内存与处理器单元之间进行高速数据交换。处理器单元可以被配置为,在访问片内缓存未命中数据的情况下,通过第一内存控制器和第一sedram接口访问第一内存、或者通过第二内存控制器访问第二内存,命令第一内存或者第二内存将数据发送到片内缓存。
37.在一个实施例中,第一内存控制器可以单通道也可以多通道并行访问sedram存储器。
38.图3示意性示出了根据本发明实施方式的处理器单元访问内存的方法30的示意图。该处理器单元包括缓存控制器、片内缓存、第一内存控制器、第二内存控制器和第一sedram接口,其中片内缓存、第一内存控制器和第二内存控制器均与缓存控制器连接,第一内存控制器与第一sedram接口连接,第一sedram接口用于连接用作第一内存的第一sedram存储器,第二内存控制器用于连接用作第二内存的板载内存。该方法30包括如下步骤:步骤s1:处理器单元访问片内缓存以读取数据;步骤s2:在访问片内缓存未命中数据的情况下,判断数据的存储位置;步骤s31:如果数据存储在第一内存中,则处理器单元向第一内存控制器发送控制命令,第一内存控制器通过第一sedram接口访问第一内存,将数据发送到所述片内缓存;以及步骤s32:如果数据存储在第二内存中,则处理器单元向第二内存控制器发送控制命令,第二内存控制器访问第二内存,将数据发送到片内缓存。
39.下面具体说明处理器单元cpu访问内存的一个非限制性实例。cpu发出指令,cache访问未命中,需从内存中访问数据,通过判断访存地址,确认数据在第一内存还是第二内存。
40.(1)如果数据在第一内存sedram中,向第一内存控制器发送指令,sedram快速将数据送到cache中,进行后续操作;(2)如果数据在第二内存中,向第二内存控制器发出指令,第二内存将数据送到cache中;(3)如果数据不在内存中,需要从硬盘调用,从硬盘中根据地址空间进行判断数据存入第一还是第二内存,如果数据存入第二内存,将数据调入第二内存,如果数据存入第一内存,将数据送到sedram中。
41.在一个实施例中,软件在地址空间分配时,可以将常用的数据放入sedram中,不常用的数据放入第二内存中,在后续的使用过程中,通过地址空间判断,由哪部分将数据发送到cpu中。
42.在一个实施例中,第一内存和第二内存可以是静态分配的或者动态分配的。例如,缓存控制器被配置为动态地调度第一内存控制器和第二内存控制器进行数据读写。
43.根据本发明的实施方式,通过将sedram做第一内存,将板载内存做第二内存,提高了cpu处理数据的速度,提高了运算能力。如果要处理的程序和数据较小,或是核心的程序和数据,可以通过第一内存完成存取等操作,快于在pcb上的第二内存的数据处理速度。当数据量大时,可以通过程序判断常用的关键数据,将关键数据调入第一内存中,通过sedram与cpu进行数据交互,提高交互速度,其余数据存放在第二内存中,保证了内存的容量,避免
了因为内存空间不够,多次对sedram中的数据进行覆盖导致速度降低。
44.在待处理数据小于sedram的空间的情况下,数据交互效率提高。在待处理数据大于sedram的空间,在保证内存空间(第一内存和第二内存加起来)足够的前提下,一部分数据存入第一内存中,其余数据存入第二内存中,第二内存中的数据交互速度和现有技术一致,常用数据和/或核心数据在sedram中交互速度更高,系统的数据交互效率提高。
45.参考图4,其示意性示出了根据本发明实施方式的sedram用作第一内存和末级缓存的计算机系统架构示意图。
46.处理器单元(cpu)400包括缓存控制器202、片内缓存204、第一内存控制器206、第二内存控制器208、第一sedram接口210和第二sedram接口212。片内缓存204、第一内存控制器206和第二内存控制器210均与缓存控制器202连接,第一内存控制器206与第一sedram接口210连接,第一sedram接口210用于连接用作第一内存的第一sedram存储器220,第二内存控制器用于连接用作第二内存的板载内存230。缓存控制器202还连接有第二sedram接口212,sedram接口212用于连接外部的用作末级缓存的第二sedram存储器222。
47.在一个实施例中,第一sedram接口210和第二sedram接口212可以是同一个sedram接口、或者不同的sedram接口。
48.在一个实施例中,第一sedram存储器220和第二sedram存储器222实现在同一块sedram存储器(或者sedram晶圆)的不同部分上。在具体实现时,第一sedram存储器和第二sedram存储器可以是动态地或者静态地划分的。如此,sedram一部分做为cache,另一部分作为内存使用。sedram的cache部分可以作为最后一级缓存,其大小可通过程序根据实际情况对sedram的存储空间进行灵活切分。作为缓存的部分通过缓存控制器与cpu上集成的缓存进行数据交互,作为内存的部分先将数据传输到缓存部分,再通过缓存部分与cpu上的cache进行数据交互。
49.根据本公开的实施方式,当sedram中cache部分的数据命中时,cache控制器将数据调用到cpu上的cache中。当sedram中cache部分的数据没有命中,从sedram内存部分或第二内存或硬盘中调取相应数据。第一和第二内存中的数据直接进入sedram的cache部分;硬盘中数据先进入内存中再进入cache。数据先存放到sedram的cache中,再调用到cpu上的cache内。
50.在使用过程中,若数据过大,sedram的cache部分容量不足,则可以通过设定好的程序,将sedram上内存部分的空间分配给cache部分。
51.根据本发明的实施方式,可以将sedram的一部分作为最后一级缓存,另一部分作为内存使用,作为缓存的部分容量大于cpu上集成的cache,并且内存部分仍有较为合理的容量存储一部分数据,使得sedram的功能更加灵活。
52.在另一方面,本发明的实施方式提供一种计算机主板,其包括处理器芯片以及第二内存的安装槽,该处理器芯片包括前述的处理器单元以及与处理器单元键合的用作第一内存的第一sedram存储器。
53.在又一方面,本发明的实施方式提供一种计算机系统,其包括前述的处理器单元或者前述的计算机主板。参考图5,其示意性示出了根据本发明实施方式的示例性计算机系统的结构框图。计算机系统50是可以应用于本发明的各方面的硬件设备的示例。计算机系统旨在表示各种形式的数字电子的计算机设备,诸如,数据中心服务器、笔记本电脑、瘦客
户机、膝上型计算机、台式计算机、工作站、个人数字助理、刀片式服务器、大型计算机、和其它适合的计算机。计算机系统还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
54.如图5所示,计算机系统50包括处理器单元501,其可以根据存储在第一内存502、第二内存503或者硬盘504中的计算机程序和/或数据来执行各种适当的动作和处理。处理器单元501包括片内缓存520。在处理器单元运行过程中,第一内存502、第二内存503或者硬盘504中的各种程序和数据被加载到缓存520中。处理器单元501、第一内存502、第二内存503或者硬盘504通过总线509彼此相连。输入/输出(i/o)接口505也连接至总线509。处理器单元501(包括缓存520)、第一内存502和第二内存503之间的通信和数据交互可以采用前述的系统架构。
55.计算机系统50中的多个部件连接至i/o接口505,包括:输入单元506、输出单元507、存储单元508以及通信单元508。输入单元506可以是能向计算机系统50输入信息的任何类型的设备,输入单元506可以接收输入的数字或字符信息,以及产生与计算机系统的用户设置和/或功能控制有关的键信号输入。输出单元507可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元508可以包括但不限于磁盘、光盘。通信单元508允许计算机系统50通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
56.处理器单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器单元501的一些示例包括但不限于中央处理器单元(cpu)、图形处理器单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器单元501执行上文所描述的各个方法和处理。
57.虽然已经参考目前考虑到的实施方式描述了本发明,但是应该理解本发明不限于所公开的实施方式。相反,本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。以下权利要求的范围符合最广泛解释,以便包含所有这样的修改及等同结构和功能。
58.以上所述仅为本公开的优选实施例而已,并不用于限制本公开,尽管参照前述实施例对本公开进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1