存取多端口存储器模块的方法及相关的存储器控制器的制造方法

文档序号:10697581阅读:511来源:国知局
存取多端口存储器模块的方法及相关的存储器控制器的制造方法
【专利摘要】本发明提供一种存取多端口存储器模块的方法及相关的存储器控制器。存储器控制器耦接于多端口存储器模块,其中多端口存储器模块包含了多个存储库,且存储器控制器用来产生多个校验码,并分别将多个校验码写入至多个存储库中,其中每一个校验码是根据一部分存储库中的比特位所产生的。本发明的存取多端口存储器模块的方法及相关的存储器控制器可以降低存储库冲突的发生机率,减少存取次数。
【专利说明】
存取多端口存储器模块的方法及相关的存储器控制器
[0001 ] 交叉引用
[0002] 本申请要求申请日为2015年4月22日,美国临时申请号为62/150,862的美国临时 申请案的优先权,上述临时申请案的内容一并并入本申请。
技术领域
[0003] 本发明有关于存储器,尤指一种存取多端口存储器模块的方法及相关的存储器控 制器。
【背景技术】
[0004] -般来说,一个多端口存储器模块会包含多个用来储存数据的存储库,且每一个 存储库都可W独立地被存取,然而,当存储器接收到两个或更多个读取命令,W要求存取单 一存储库中的多个不同地址时,则会有存储库冲突(bank conflict)的情形发生,而造成该 多个读取命令需要被循序地执行,进而造成存储器存取延迟W及更糟的存取效率。为了解 决该问题,传统的多端口存储器模块会使用定制的电路来使能多个存取端口,或是指派多 个存储器单元W支持多个同时存取的操作。然而,运些方法会增加设计制造的成本,且/或 增加忍片面积W及功率消耗,因此,如何提供一种存储器存取方法W有效率地支持多个存 取指令是一个重要的课题。

【发明内容】

[0005] 有鉴于此,本发明特提供W下技术方案:
[0006] 本发明实施例提供一种存取多端口存储器模块的方法,其中多端口存储器模块包 含了多个存储库,且存取多端口存储器模块的方法包含有:产生多个校验码,其中每一个校 验码是根据一部分存储库中的比特位所产生的;W及分别将多个校验码写入至多个存储库 中。
[0007] 本发明实施例提供一种存储器控制器,禪接于多端口存储器模块,其中多端口存 储器模块包含了多个存储库,且存储器控制器用来产生多个校验码,并分别将多个校验码 写入至多个存储库中,其中每一个校验码是根据一部分存储库中的比特位所产生的。
[000引本发明实施例又提供一种存取多端口存储器模块的方法,其中多端口存储器模块 包含了多个存储库,且方法包含有:当对应到特定存储库中两个不同地址的比特位因为两 个读取命令而被要求读取时,直接读取特定存储库中两个不同地址中的其中之一的比特 位;W及通过读取其他存储库中的多个比特位来产生特定存储库中两个不同地址中的另外 之一的比特位。
[0009]本发明的存取多端口存储器模块的方法及相关的存储器控制器可W降低存储库 冲突的发生机率,减少存取次数。
【附图说明】
[0010] 图1为根据本发明实施例的存储器控制器的示意图。
[0011] 图2为根据本发明实施例的存储库中的数据布局的示意图。
[0012] 图3为根据本发明实施例的当存储器控制器传送一个写入命令W12W及两个读取 命令R20、R11W存取存储器模块的示意图。
[0013] 图4为根据本发明实施例的当存储器控制器另传送一个写入命令W23W及两个读 取命令R21、R22 W存取存储器模块的示意图。
[0014] 图5为根据本发明实施例的当存储器控制器另传送一个写入命令W16W及两个读 取命令R14、R15 W存取存储器模块的示意图。
[0015] 图6为根据本发明实施例的一种存一多端口存储器模块的方法的流程图。
【具体实施方式】
[0016] 在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技 术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书 并不W名称的差异来作为区分组件的方式,而是W组件在功能上的差异来作为区分的基 准。在通篇说明书及权利要求书当中所提及的"包含"是开放式的用语,故应解释成"包含但 不限定于"。另外,"禪接"一词在此包含任何直接及间接的电气连接手段。因此,若文中描述 第一装置禪接于第二装置,则代表第一装置可直接电气连接于第二装置,或通过其它装置 或连接手段间接地电气连接至第二装置。
[0017] 请参考图1,其为根据本发明一个实施例的存储器控制器110的示意图。如图1所 示,存储器控制器110禪接于存储器模块120,且另通过总线101来禪接到需要存取存储器模 块120的元件,例如中央处理器102W及图形处理器104。此外,存储器控制器110包含了地址 解码器112、处理电路114、写入/读取端口 116、控制逻辑118W及仲裁器119;且存储器模块 120包含写入/读取控制器122、多个暂存器124W及多个存储库126。在本实施例中,存储器 模块120是支持两个或更多个读取/写入操作的多端口存储器模块,且每一个存储库126具 有独立的读取/写入端口 W支持多个存取操作,且每一个存储库126允许被独立地存取。此 夕h存储器模块120可W是多端口的静态随机存取存储器(multi-port static random access memoir (SRAM))模块或是多端口的动态随机存取存储器(dynamic random access memory (DRAM))模块,但运并非是本发明的限制条件。
[0018] 关于存储器控制器110中元件的操作,地址解码器112用来对来自中央处理器102 或是图形处理器104或是其他需要存取存储器模块120中数据的接收信号进行解码,W产生 一个或多个读取命令及/或一个或多个写入命令;处理电路114用来管理及处理读取/写入 命令;写入/读取缓冲器116用来暂时储存需要写入到存储器模块120的数据,及/或是暂时 储存自存储器模块120读取的数据;控制逻辑118用来根据写入命令来产生比特位值及相对 应的校验码,且也用来根据读取命令W对自存储器模块120中所读取的数据进行解码来产 生比特位值;W及仲裁器119用来对写入命令及读取命令进行排程。
[0019] 关于存储器模块120中元件的操作,写入/读取控制器122可包含一行解码器(row decoder) W及一列解码器kolumn decoder),且用来对来自存储器控制器110的写入/读取 命令进行解码,W存取存储库126中对应于写入/读取命令的地址上的比特位值;暂存器124 用来暂时地储存校验码;W及每一个存储库126由一个或多个忍片来实施W储存数据。
[0020] 在本发明的实施例中,上述的多个校验码是根据储存在存储库126中的数据或是 准备要写入到存储库126中的数据所产生,且运些校验码是平均地被写入至存储库126中。 通过使用此方法,存储器控制器110可W同时地自单一存储库中的多个地址读取两个比特 位值,W减少存储库冲突的发生机率。本发明实施例的操作细节在W下会做具体的描述。
[0021] 请参考图2,其根据本发明一个实施例的存储库中的数据布局的示意图,其中图2 展示了多个存储库126包含了四个存储库BankO~Bank3,多个暂存器124包含了分别对应到 存储库BankO~Bank3的四个暂存器RegO~Re的,且每一个存储库包含了两个读取端口 W及 一个写入端口(2R1W),但运些特征并非是本发明的限制条件。如图2所示,Ξ个存储库的数 据分散在四个存储库BankO~Bank3中,且校验码是平均地分散在四个存储库BankO~Banks 中。详细来说,校验码P(b00,bl0,b20)通过对存储库BankO~Bank2中对应到地址AO的比特 位b00、bl0、b20作异或(exclusive-〇r,X0R)运算而得到,亦即 ΡΓοΟΟ, blO,b20) = b00?bl0?b20,其中是一个异或算子。接着,校验码P(b00, bl0,b20)被储存至存储库Bank3中对应于地址AO的单元中。
[0022] 类似地,校验码P(b01,bll,b21)通过对存储库BankO、Bankl、Bank3中对应到地址 A1的比特位b01、bll、b21作异或运算而得到,且校验码?(601,611,621)被储存至存储库 Bank2中对应于地址A1的单元中;校验码P(b02,bl2,b22)通过对存储库BankO、Bank2、Bank3 中对应到地址A2的比特位b02、bl2、b22作异或运算而得到,且校验码P(b02,bl2,b22)被储 存至存储库Bankl中对应于地址A2的单元中;校验码P(b03,bl3,b23)通过对存储库Bankl~ Bank3中对应到地址A3的比特位b03、bl3、b23作异或运算而得到,且校验码P(b03,bl3,b23) 被储存至存储库BankO中对应于地址A3的单元中;类似地,校验码P(b04,b 14,b24)、P(b05, 615,625)、?化06,616,626)、?(607,617,627)也分别地被写入到存储库8日扯3、8日扯2、 Bankl、BankO 中。
[0023] 图3为根据本发明一个实施例的当存储器控制器110传送一个写入命令W12W及两 个读取命令R20、R11W存取存储器模块120的示意图,其中写入命令W12控制存储器模块120 W将一个比特位bl2'写入到存储库Bank2中具有地址A2的单元中(亦即,使用比特位bl2'来 更新比特位bl2),且读取命令R20、R11则是控制存储器模块120 W分别自存储库Bank2、 Bankl中读取数据b20、bll。在图3中,由于读取命令R20、R11本身并没有存储库冲突的问题, 因此存储器控制器110可W直接地自存储库Bank2、Bankl中分别读取数据b20、bl 1。此外,当 比特位bl2'写入至存储库Bank2中具有地址A2的单元时,存储器控制器110另外从存储库 BankO、Bank3中分别读取比特位b02、b22,且对比特位612'、602、622进行异或运算^产生一 更新后校验码P'(b02,bl2',b22),并将此更新后校验码P'(b02,bl2',b22)储存至暂存器 Regl 中。
[0024] 图4为根据本发明一个实施例的当存储器控制器110另传送一个写入命令W23W及 两个读取命令R2UR22W存取存储器模块120的示意图,其中图4的实施例接续着图3的实施 例。在图4中,写入命令W23控制存储器模块120W将一个比特位b23'写入到存储库Bank3中 具有地址A3的单元中(亦即,使用比特位b23 '来更新比特位b23),且读取命令R21、R22则是 控制存储器模块120W自存储库中读取数据b21、b22。在本实施例中,由于比特位b21、b22是 位于同一个存储库Bank3中,因此会有存储库冲突的情形发生,而使得存储器控制器110无 法同时且直接地自存储库Bank3中读取比特位b21、b22,因此,存储器控制器110仅能直接自 存储库Bank3中读取比特位b21、b22的其中之一(在本实施例中,存储器控制器110直接读取 比特位b21),且另外一个比特位(亦即,b22)是在不读取比特位b22的情形下,通过对比特位 b02、bl2W及更新后校验码?'化02,612',622)进行异或运算后而得到,其中比特位602、612 分别自存储库BankO、Bank2中所读取,且更新后校验码P '(b02,bl2 ',b22)则自暂存器Regl 中所读取。通过使用上述的存取方法,两个存取相同存储库的读取命令可W同时地被执行 W得到两个比特位(例如,b21、b22),因此可W避免存储库冲突的事件发生。
[00巧]另外,关于写入命令W23,比特位b23'写入至存储库Bank3中具有地址A3的单元,而 存储器控制器110另外从存储库Bankl、Bank2中分别读取比特位b03、bl3,且对比特位b23'、 b03、bl3进行异或运算W产生更新后校验码P'(b03,bl3,b23'),并将此更新后校验码P' 化03,613,623')储存至暂存器1^邑0中。
[0026] 图5为根据本发明一个实施例的当存储器控制器110另传送一个写入命令W16W及 两个读取命令R14、R15W存取存储器模块120的示意图,其中图5的实施例接续着图4的实施 例。在图5中,写入命令W16控制存储器模块120W将一个比特位bl6'写入到存储库Bank2中 具有地址A6的单元中(亦即,使用比特位b 16 '来更新比特位b 16),且读取命令R14、R15则是 控制存储器模块120 W自存储库中读取数据b 14、b 15。在本实施例中,由于比特位b 14、b 15是 位于同一个存储库Bankl中,因此会有存储库冲突的情形发生,而使得存储器控制器110无 法同时且直接地自存储库Bankl中读取比特位bl4、bl5,因此,存储器控制器110仅能直接自 存储库Bankl中读取比特位bl4、bl5的其中之一(在本实施例中,存储器控制器110直接读取 比特位bl4),且另外一个比特位(亦即,bl5)是在不读取比特位bl5的情形下,通过对比特位 b05、b25W及校验码P(b05,bl5,b25)进行异或运算后而得到,其中比特位b05、b25分别自存 储库BankO、Bank3中所读取,且校验码P(b05,bl5,b25)则自存储库Bank2中所读取。通过使 用上述的存取方法,两个存取相同存储库的读取命令可W同时地被执行W得到两个比特位 (例如,bl4、bl5),因此可W避免存储库冲突的事件发生。
[0027] 另外,关于写入命令W16,比特位bl6 '被写入至存储库Bank2中具有地址A6的单元, 而存储器控制器110另外从存储库BankO、Bank3中分别读取比特位b06、b26,且对比特位 616'、606、626进行异或运算^产生更新后校验码?'化06,616',626)。同时,前一个更新后 校验码P '(b02,b 12 ',b22)则被移至存储库Bank 1中具有地址A2的单元中,且目前的更新后 校验码?'化06,616',626)则储存至暂存器1^旨1中。
[002引需注意的是,图2~5所示的"地址A0~A7"仅用来表示每一个存储库中多个单元的 位置偏移量,此外,本实施例中的"地址"一词并未限制是存储库的实体地址或是地址的索 引值,且一个比特位群组(例如b00,bl0,b20)及相对应的校验码(例如?(600,610,620))应 该被视为在存储库中具有相同的地址。
[0029] 图2~图5的实施例可W被归纳为图6所示的流程图,参考图2~图6,流程如下所 述:
[0030] 步骤600:流程开始。
[0031 ]步骤602:接收一个写入命令W及两个读取命令。
[0032]步骤604:在写入的流程中,将数据直接写入至其地址中,读取其他存储库中具有 相同地址(偏移量)的数据但不包含校验码,对所读取的数据W及写入的数据进行异或运算 W产生更新后校验码,并将更新后校验码储存至暂存器中。
[0033] 步骤606:在读取的流程中,判断读取命令是否存在着存储库冲突的状况,若是没 有存储库冲突,流程进入步骤608;若有存储库冲突,则流程进入步骤610。
[0034] 步骤608:直接读取数据。
[0035] 步骤610:直接自存储器模块读取对应到其中一个读取命令的数据;W及读取其他 存储库中具有相同地址(偏移量)的数据,并对所读取的数据进行异或运算W产生/回复对 应到另一个读取命令的数据。
[0036] 步骤612:流程结束。
[0037] 简要归纳本发明,在本发明的存取多端口存储器模块的方法中,每一个校验码是 通过对一部分存储库中对应到相同地址(偏移量)的数据进行异或运算来得到,且校验码被 储存到剩余存储库中具有相同地址(偏移量)的单元;此外,校验码分散地储存在存储库中。 通过使用本发明的技术,可W降低存储库冲突的发生机率W增进存取效率。
[0038] 尽管已经在文中使用不同的方法、设备W及系统来描述和示出了一些示例性的技 术,但是本领域普通技术人员应当理解的是:可W在不脱离所要求保护的主题的情况下进 行各种其它修改W及进行等同物替换。此外,在不脱离文中描述的中屯、构思的情况下,可W 进行许多修改W使特定的情况适应于所要求保护的主题的教导。因此,意在所要求保护的 主题不限制于所公开的特定示例,而且运样的要求保护的主题还可W包括落在所附权利要 求的范围内的所有实施及它们的等同物。
【主权项】
1. 一种存取多端口存储器模块的方法,其特征在于,所述多端口存储器模块包含多个 存储库,且所述存取多端口存储器模块的方法包含有: 产生多个校验码,其中每一个校验码是根据一部分存储库中的比特位所产生的;以及 分别将所述多个校验码写入至所述多个存储库中。2. 根据权利要求1所述的存取多端口存储器模块的方法,其特征在于,所述多个存储库 包含Μ个存储库,每一个存储库包含对应到N的地址的单元以分别储存N个比特位,且产生所 述多个校验码的步骤包含有: 根据(Μ-1)个存储库中对应到第Κ个地址的每一个比特位来产生第Κ个校验码,其中Κ为 小于Ν的任意正整数,并据以产生Ν个校验码;以及 分别将所述多个校验码写入至所述多个存储库中的步骤包含有: 将所述第Κ个校验码储存到剩余存储库中对应到所述第Κ个地址的单元中。3. 根据权利要求2所述的存取多端口存储器模块的方法,其特征在于,根据所述(Μ-1) 个存储库中对应到第Κ个地址的每一个比特位来产生所述第Κ个校验码的步骤包含有: 对所述(Μ-1)个存储库中对应到所述第Κ个地址的每一个比特位进行异或运算以产生 所述第Κ个校验码。4. 根据权利要求2所述的存取多端口存储器模块的方法,其特征在于,所述Ν个校验码 平均地被写入至所述Μ个存储库中。5. 根据权利要求2所述的存取多端口存储器模块的方法,其特征在于,所述的存取多端 口存储器模块的方法另包含有: 当所述(Μ-1)个存储库中的一个存储库,其对应到所述第Κ个地址的单元中的数据根据 写入命令而需要更新时: 根据所述(Μ-1)个存储库中对应到所述第Κ个地址的每一个比特位来产生一更新后第Κ 个校验码;以及 将所述更新后第Κ个校验码储存到所述剩余存储库中对应到所述第Κ个地址的单元中。6. 根据权利要求2所述的存取多端口存储器模块的方法,其特征在于,所述的存取多端 口存储器模块的方法另包含有: 当对应到特定存储库中的第X个地址以及第Υ个地址的两个比特位因为两个读取命令 而被要求读取时,直接自所述特定存储库中读取对应到该第X个地址的比特位,其中Χ、Υ为 小于Ν的两个任意不同的正整数;以及 通过读取其他存储库中对应于多个第Υ个地址的多个比特位来产生所述特定存储库中 对应到该第Υ个地址的该比特位。7. 根据权利要求6所述的存取多端口存储器模块的方法,其特征在于,所述特定存储库 中对应到该第Υ个地址的该比特位是在不读取所述特定存储库中对应到所述第Υ个地址的 所述比特位的情形下所产生。8. 根据权利要求1所述的存取多端口存储器模块的方法,其特征在于,所述多端口存储 器模块为多端口的静态存储器模块或是多端口的动态存储器模块,且每一个存储库均被允 许独立地存取。9. 一种存储器控制器,耦接于多端口存储器模块,其特征在于,所述多端口存储器模块 包含多个存储库,且所述存储器控制器用来产生多个校验码,并分别将所述多个校验码写 入至所述多个存储库中,其中每一个校验码是根据一部分存储库中的比特位所产生的。10. 根据权利要求9所述的存储器控制器,其特征在于,所述多个存储库包含Μ个存储 库,每一个存储库包含对应到Ν的地址的单元以分别储存Ν个比特位,且所述存储器控制器 根据(Μ-1)个存储库中对应到第Κ个地址的每一个比特位来产生第Κ个校验码,其中Κ为小于 Ν的任意正整数,并据以产生Ν个校验码;以及所述存储器控制器将所述第Κ个校验码储存到 剩余存储库中对应到该第Κ个地址的单元中。11. 根据权利要求10所述的存储器控制器,其特征在于,所述存储器控制器对该(Μ-1) 个存储库中对应到该第Κ个地址的每一个比特位进行异或运算以产生所述第Κ个校验码。12. 根据权利要求10所述的存储器控制器,其特征在于,所述Ν个校验码平均地被写入 至所述Μ个存储库中。13. 根据权利要求10所述的存储器控制器,其特征在于,当所述(Μ-1)个存储库中的一 个存储库,其对应到所述第Κ个地址的单元中的数据根据所述存储器控制器发送的写入命 令而需要更新时,所述存储器控制器根据所述(Μ-1)个存储库中对应到所述第Κ个地址的每 一个比特位来产生更新后第Κ个校验码,以及将所述更新后第Κ个校验码储存到所述剩余存 储库中对应到所述第Κ个地址的单元中。14. 根据权利要求10所述的存储器控制器,其特征在于,当存储器控制器被要求读取对 应到特定存储库中的第X个地址以及第Υ个地址的两个比特位时,所述存储器控制器直接自 所述特定存储库中读取对应到该第X个地址的比特位,其中Χ、Υ为小于Ν的两个任意不同的 正整数;以及所述存储器控制器通过读取其他存储库中对应于该第Υ个地址的比特位来产 生所述特定存储库中对应到该第Υ个地址的该比特位。15. 根据权利要求14所述的存储器控制器,其特征在于,所述特定存储库中对应到所述 第Υ个地址的所述比特位是在不读取所述特定存储库中对应到所述第Υ个地址的所述比特 位的情形下所产生的。16. 根据权利要求9所述的存储器控制器,其特征在于,所述多端口存储器模块为多端 口的静态存储器模块或是多端口的动态存储器模块,且每一个存储库均被允许独立地存 取。17. -种存取多端口存储器模块的方法,其特征在于,所述多端口存储器模块包含多个 存储库,且所述方法包含有: 当对应到特定存储库中两个不同地址的比特位因为两个读取命令而被要求读取时,直 接读取所述特定存储库中两个不同地址中的其中之一的比特位;以及 通过读取其他存储库中的多个比特位来产生所述特定存储库中两个不同地址中的另 外之一的比特位。18. 根据权利要求17所述的存取多端口存储器模块的方法,其特征在于,每一个存储库 包含对应到Ν个地址的单元以分别储存Ν个比特位,所述两个不同地址中的另外之一为第Υ 个地址,且通过读取其他存储库中的多个比特位来产生所述特定存储库中两个不同地址中 的另外之一的比特位的步骤包含有: 通过读取其他存储库中对应于所述第Υ个地址的比特位来产生所述特定存储库中对应 到所述第Υ个地址的比特位,其中Υ为小于Ν的正整数。19. 根据权利要求18所述的存取多端口存储器模块的方法,其特征在于,所述特定存储 库中对应到所述第Y个地址的所述比特位是在不读取所述特定存储库中对应到所述第Y个 地址的所述比特位的情形下所产生。20.根据权利要求18所述的存取多端口存储器模块的方法,其特征在于,所述多端口存 储器模块为多端口的静态存储器模块或是多端口的动态存储器模块,且每一个存储库均被 允许独立地存取。
【文档编号】G06F13/16GK106066833SQ201610255321
【公开日】2016年11月2日
【申请日】2016年4月22日 公开号201610255321.5, CN 106066833 A, CN 106066833A, CN 201610255321, CN-A-106066833, CN106066833 A, CN106066833A, CN201610255321, CN201610255321.5
【发明人】赖伯承, 林俊良, 吕国正
【申请人】联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1