一种访问外部存储器的方法

文档序号:6464091阅读:148来源:国知局
专利名称:一种访问外部存储器的方法
技术领域
本发明涉及存储器处理技术,尤指 一种访问外部存储器的方法。
技术背景在片上集成系统(SoC)中,包括如处理器、DMA、硬件加速器、外设 等多个并行处理功能模块,这些功能模块会根据需要访问片外存储器如 SDRAM、 DDR存储器等。由于处理器、DMA、硬件加速器等功能模块各自独立运行,因此在实 际应用中,SDRAM存储器有可能被多个功能模块同时访问,但是,根据 SDRAM存储器的物理特性,在同一时刻,SDRAM存储器只允许存在一个 读写访问。为了解决这个问题,对外部存储器的访问需要通过总线仲裁单元 根据一定的选择策略,将外部存储器访问权限授予某一个功能模块的访问请 求,同时临时挂起其他功能模块的访问请求,直到处理完所有访问请求。显 然,SDRAM的这种小系统带宽的工作方式,影响了存储器的存储效率。在复杂的SoC芯片中,并行处理功能模块越来越多,功能模块的运算 处理能力越来越强,SDRAM存储器存储效率和系统带宽渐渐成为SoC芯片 性能的瓶颈。SDRAM存储器总线分为数据总线和地址总线,其中,数据总线用于传 输访问的数据;地址总线用于传输访问的地址和向SDRAM存储器发出的命 令。对SDRAM存储器的访问特点是SDRAM存储器将访问的地址分为块 (Bank)地址,4亍(row);也址和歹'J (column)地址。每次访问SDRAM存 储器时,需要先对访问地址所在的块预充电(precharge),再激活(active) 访问地址所在的行,然后才能根据列地址访问出该访问地址所在存储单元。也就是说,每次访问SDRAM存储器时,如果没有预充电bank和激活row, 必须通过地址总线上发命令处理,然后再通过地址总线发出列地址,等待一 定时间后,再通过数据总线传输数据。如果访问地址所在的Bank已^皮充电且没有关闭,可以省去块pre charge 步骤,>A而节省块pre charge的时间。如果访问地址所在的Bank已4皮充电 且该地址所在的row 已被激活,可以节省行active的时间。而且,SDRAM存储器的输入和输出一般复用同一数据总线,即数据总 线是双向的。当执行间隔读写操作时,SDRAM需要额外的时间开销来切换 总线。综上所述,由于SDRAM存储器的器件物理特性,访问SDRAM存储器 的延迟除了 SDRAM内部数据传输延迟,还包含块pre charge,行active和 总线双向切换延迟。目前, 一般SoC中的总线仲裁单元是根据先后请求顺序或主设备的模 块优先级,从多个主设备的请求中仲裁出某一请求直接送给SDRAM存储 器,没有考虑SDRAM存储器自身特有的延迟特性。而在外部设备如复杂的 SoC芯片中并行功能模块越来越多,功能模块的运算处理能力越来越强的情 况下,SDRAM存储器自身的低存储效率直接严重降低了外部设备的访问效 率。发明内容有鉴于此,本发明的主要目的在于提供一种访问外部存储器的方法,能 够通过改善外部存储器自身的存储效率,提高设备访问外部存储器的效率。 为达到上述目的,本发明的技术方案具体是这样实现的 一种访问外部存储器的方法,包括A.设置体现外部存储器自身物理特性的带宽优先级属性,和模块优先 级属性;判断当前访问请求中是否存在满足带宽优先级属性的访问请求,如 果存在,则进入步骤B;否则进入步骤C;B. 按照带宽优先级属性设置访问优先级,并授予访问优先级最高的访 问请求访问权限,结束本流程;C. 按照模块优先级属性设置访问优先级,并授予访问优先级最高的请 求访问权限。所述带宽优先级属性包括激活地址属性,用于表示外部存储器已完成预充电的块地址,以及其已 被激活的行地址的;和/或块地址属性,用于表示上一次访问请求所访问的块地址; 和/或读写状态属性,用于表示上一次访问请求所访问的读写状态。当所述带宽优先级属性包括有激活地址属性时,步骤A中所述判断的 方法为判断当前访问请求中是否存在与当前外部存储器已预充电的块地址、以 及已激活的行地址相同的请求,如果有,则判定该访问请求为满足带宽优先 级属性的访问请求。当所述带宽优先级属性包括有块地址属性时,步骤A中所述判断的方 法为判断当前访问请求中是否存在与前一次访问的块地址不同的请求,如果 有,则判定该访问请求为满足带宽优先级属'性的访问请求。当所述带宽优先级属性包括有读写状态属性时,步骤A中所述判断的 方法为判断当前访问请求中是否存在与前一访问的读写状态相同的请求,如果 有,则判定该访问请求为满足带宽优先级属性的访问请求。所述带宽优先级属性包括激活地址属性、块地址属性和读写状态属性, 步骤A中所述判断的方法为Al.判断当前访问请求中是否存在与当前外部存储器已预充电的块地 址、以及已激活的行地址相同的请求,如果有,则进入步骤B;否则,进入 步骤A2;A2.判断当前访问请求中是否存在与前一次访问的块地址不同的请求, 如果有,则进入步骤B;否则进入步骤A3;A3.判断当前访问请求中是否存在与前一访问的读写状态相同的请求, 如果有,则进入步骤B;否则进入步骤C。所述步骤B具体包括将满足带宽优先级属性的访问请求设置为最高访 问优先级,获得访问权限。所述步骤C具体包括将模块优先级最高的访问请求设置为最高访问优 先级,获得访问权限。该方法还包括保存当前未能获得访问权限的访问请求。所述保存的方法为为所述未能获得访问权限的各访问请求调整存储优 先级并存储;当外部存储器空闲时,根据经过调整后的各个访问请求的存储优先级, 选择存储优先级最高的访问请求获得访问权限。 所述存储优先级设置在存储优先级寄存器中;所述存储优先级寄存器包括同块同行域、不同快域、同读写状态域和模 块优先级域;其中,同块同行域,用于表示访问请求与当前外部存储器已预充电的块地址以 及已激活的行地址是否都相同;不同块域,用于表示访问请求的块地址与前一次访问的块地址是否不同;同读写状态域,用于表示访问请求的的读写状态与前一访问的读写状态 是否相同。当存在多个所述存储优先级相等且都处在当前最高优先级时,通过硬件 连线位置选择其中的 一 个访问请求获得访问权限。由上述技术方案可见,本发明通过设置体现外部存储器自身物理特性的 带宽优先级属性,并根据体现了外部存储器自身物理特性的带宽优先级属性 判断决定是否赋予当前访问请求的访问权P艮,提高了设备访问外部存储器的效率最大可能地使得连续的数据访问尽量落在了同 一个块的同 一个行上, 极大提高了连续访问外部存储器的效率;在上一请求执行数据传输时,并行 发出当前访问请求的命令和地址,减少了传输的命令延迟时间开销;通过保 证连续的数据访问都是读或者写,减少了总线切换的时间开销。


图1是本发明访问外部存储器的流程图;图2是本发明访问外部存储器的实施例的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 较佳实施例,对本发明进一步详细说明。总线仲裁单元随时保存当前外部存储器已预充电的块、已激活的行、前 一次访问的块地址,以及前一次访问的读写状态等带宽优先级属性。这些带 宽优先级属性体现了外部存储器自身物理特性。为描述方便,以下以外部存 储器为SDRAM为例进行描述。其中,当前SDRAM已预充电的块,表示当前SDRAM块已经处于预充 电完毕的状态。如果当前访问请求是访问该块,可以节省预充电时间开销;当前SDRAM已激活的行,表示当前SDRAM行已经处于激活的状态, 该行所在的块也处于预充电完毕的状态。如果当前访问请求是访问该行,可 以节省预充电时间和行激活时间开销;前一次访问的块地址,表示上一访问请求访问的块地址。如果当前访问 请求访问的块地址与上一请求访问的不同,可以在上一请求执行数据传输 时,并行发出当前访问请求的命令和地址,这样,可以节省预充电时间、行 激活和发地址的时间开销;前一次访问的读写状态,表示上一访问请求是读操作或写操作。如果当前访问请求的读写要求与上一 次访问请求相同,即比如上一次访问请求是读 操作,那么要求当前的访问请求也是读操作。那么可以节省双向总线切换的 时间开销。此外,总线仲裁单元还设置模块优先级属性,该模块优先级属性用于表 示模块本身的优先级,比如当执行运算任务时,可以将处理器的模块优先级属性设置为最高优先级;当执行数据存储时,可以将外设的模块优先级属性设置 为最高优先级等,模块优先级属性可通过软件配置。需要说明的是,上述带宽优先级属性可以只记录一个,或者记录任意组 合个,或者全部记录。图1是本发明访问外部存储器的流程图,如图1所示,包括以下步骤步骤100:设置带宽优先级属性和模块优先级属性。在总线仲裁单元中,对应每个访问外部存储器的功能模块都有各自的配 置寄存器,可以通过软件配置各功能模块的模块优先级属性;此外,总线仲裁单元中,预先设置有一组激活地址(Active Address )寄 存器、 一个块地址(Last Bank)寄存器和一个读写状态(Last Write)寄存 器,分别用于存储体现外部存储器自身物理特性的带宽优先级属性。同,每个激活地址寄存器用于保存某一个外部存储器如SDRAM的已完成预 充电的块地址,以及其已被激活的行地址,本文中将激活地址寄存器中存储 的带宽优先级属性称为激活地址属性;块地址寄存器,用于保存上一次访问请求所访问的块地址;本文中将块 地址寄存器中存储的带宽优先级属性称为块地址属性;读写状态寄存器,用于保存上一次访问请求所访问的读写状态,本文中 将读写状态寄存器中存储的带宽优先级属性称为读写状态属性;步骤101:判断当前的访问请求中是否存在满足带宽优先级属性的访问 请求,如果存在,则进入步骤102;否则进入步骤103。判断是否满足带宽优先级属性的方法包括(1) 首先判断当前访问请求中是否存在与当前外部存储器如SDRAM已 预充电的块地址、以及已激活的行地址相同的请求,如果有,则判定该请求 为满足带宽优先级属性的访问请求;(2) 如果条件(l)不满足,判断当前访问请求中是否存在与前一次访问的 块地址不同的请求,如果有,则判定该请求为满足带宽优先级属性的访问请求;(3) 如果条件(1)和条件(2)均不满足,判断当前访问请求中是否存在与前 一访问的读写状态相同的请求,如果有,则判定该请求为满足带宽优先级属 性的访问请求。从步骤101中第(1)点的实现容易看出,本发明方法最大可能地使得连续 的数据访问尽量落在了同 一个块的同 一个行上,极大提高了连续访问外部存 储器如SDRAM的效率。通过第(2)点的实现容易看出,在当前访问请求访问的块地址与上一请求 访问的不同时,通过在上一请求执行数据传输时,提前激活下一次访问请求 的块和行即并行发出当前访问请求的命令和地址,节省预充电时间、行激活 和发地址的时间开销,也就是减少了传输的命令延迟时间开销。通过第(3)点的实现容易看出,使得连续的数据访问都是读或者写,减少 了总线切换的时间开销。步骤102:按照带宽优先级属性设置访问优先级,并授予访问优先级最 高的请求访问权限,结束本流程。将步骤101中满足带宽优先级属性的访问请求设置为最高访问优先级, 获得访问权限,也就是说该请求将立马申请到访问SDRAM。步骤103:按照模块优先级属性设置访问优先级,并授予访问优先级最 高的请求访问权限,具体为将模块优先级最高的访问请求设置为最高访问优 先级,获得访问权限。如果步骤101中(1) (3)的条件都不满足,则根据模块优先级属性,选择模块优先级最高的访问请求获得访问权限,即可申请到访问SDRAM。其它不满足带宽优先级属性和模块优先级属性的访问请求将被保存在 总线仲裁单元中,具体实现请参见下文。需要强调的是,步骤101中,只要存在任一条件判断,都能达到本发明 通过改善外部存储器自身的存储效率,提高设备访问外部存储器的效率的目的,而且步骤101中个判断条件的任意组合也能实现本发明目的,当步骤 101中的三个判断条件都存在时,能达到最好的效果。图2是本发明访问外部存储器的实施例的流程图,假设外部存储器为 SDRAM,带宽优先级属性包括当前SDRAM已预充电的块、已激活的行、 前一次访问的块地址,以及前一次访问的读写状态,如图2所示,包括以下 步骤步骤200:判断当前的访问请求中是否存在与预充电块和已激活行相同 地址的请求,如果是,则满足条件,进入步骤203;否则,进入步骤204。步骤201:判断当前的访问请求中是否存在与前一次访问的块地址不相 同的请求,如果是,则满足条件,进入步骤203;否则,进入步骤204。步骤202:判断当前的访问请求中是否存在与前一次访问的读写状态相 同的请求,如果是,则满足条件,进入步骤203;否则,进入步骤204。步骤203:将满足条件的访问请求设置为最高访问优先级,并授予该访 问请求访问权限,结束本流程。步骤204:按照访问请求的模块的模块优先级授予访问权限。本发明通过设置体现外部存储器自身物理特性的带宽优先级属性,并根 据带宽优先级属性判断决定是否赋予当前访问请求的访问权限,提高了设备 访问外部存储器的效率最大可能地使得连续的数据访问尽量落在了同一个 块的同一个行上,极大提高了连续访问外部存储器的效率;在上一请求执行 数据传输时,并行发出当前访问请求的命令和地址,减少了传输的命令延迟 时间开销;通过保证连续的数据访问都是读或者写,减少了总线切换的时间 开销。如果功能模块的访问请求无法在当前时刻获得访问权限,这些此次不能获得访问权的请求将被保存在总线仲裁单元中,以便在下次仲裁时发出申请。其存储优先级根据下面的方法进行调整和排队每个模块的优先级采用一个多位存储优先级寄存器表示,其数值越大, 代表其优先级越大。优先级由4个域组成,即同块同行域、不同快域、同读 写状态域和模块优先级域,如表1所示。同块同行不同块同读写状态模块优先级表1其中,同块同行域,用于表示访问请求与当前外部存储器已预充电的块 地址以及已激活的行地址是否都相同,当某激活地址寄存器中保存有当访问请求的块地址和行地址时,该域为1,否则为0。该域处于调整后存储优先级的最高位,当其为1时,该访问请求调整后的存储优先级最高。不同块域,用于表示访问请求的块地址与前 一 次访问的块地址是否不 同,当访问请求的块地址与块地址寄存器中保存的值不同时,该域为1,否则为o。不同块域处于调整后优先级的次高位,当所有访问请求的同块同行域都相同,而某一访问请求的不同块域为1,则该访问请求调整后的存储优 先级最高。同读写状态域,用于表示访问请求的的读写状态与前一访问的读写状态 是否相同,当访问请求的读写状态与读写状态寄存器中保存的值相同时,该域为1,否则为0。同读写状态域处于调整后优先级的第三高位,当所有访问请求的同块同行域和不同块域的值都相同,而某一访问请求的同读写状态 域为1,则该访问请求调整后的存储优先级最高。模块优先级域,用于表示模块本身的优先级,模块优先级域的值越大表 示该模块的模块优先级越高。在同块同行域、不同块域和同读写状态域均相 同的条件下,访问请求所在模块的模块优先级域值越大,则该模块的访问请 求的优先级最高,该模块对应的访问请求调整后的存储优先级最高。总线仲裁单元在外部存储器访问期间不处理新的访问请求,当外部存储 器空闲时,根据经过调整后的各个访问请求的存储优先级进行仲裁,存储优先级寄存器的数值最高的模块的访问请求获得访问权限,如果有多个模块的 存储优先级相等且都处在当前最高优先级,则通过硬件连线位置选择其中的 一个,即可以预先按照带宽使用情况、对外部存储器的访问频繁度等设置模块在存储优先级相同下优先级更高。比如,对于SoC中的CPU、解码器和外 设如USB,针对视频处理应用来讲,解码器需要的带宽最大,会经常访问外 部存储器,CPU次之,USB相比对最少,因此,可以预先设置在CPU、解码 器和USB存储优先级相同的情况下,解码器获取访问权限的优先级最高, CPU次之,最后是USB。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1. 一种访问外部存储器的方法,其特征在于,包括A.设置体现外部存储器自身物理特性的带宽优先级属性,和模块优先级属性;判断当前访问请求中是否存在满足带宽优先级属性的访问请求,如果存在,则进入步骤B;否则进入步骤C;B.按照带宽优先级属性设置访问优先级,并授予访问优先级最高的访问请求访问权限,结束本流程;C.按照模块优先级属性设置访问优先级,并授予访问优先级最高的请求访问权限。
2. 根据l所述的方法,其特征在于,所述带宽优先级属性包括 激活地址属性,用于表示外部存储器已完成预充电的块地址,以及其已4皮激活的4于地址;和/或块地址属性,用于表示上一次访问请求所访问的块地址;和/或读写状态属性,用于表示上 一 次访问请求所访问的读写状态。
3. 根据权利要求1所述的方法,其特征在于,当所述带宽优先级属性 包括有激活地址属性时,步骤A中所述判断的方法为判断当前访问请求中是否存在与当前外部存储器已预充电的块地址、以 及已激活的行地址相同的请求,如果有,则判定该访问请求为满足带宽优先 级属性的访问请求。
4. 根据权利要求1所述的方法,其特征在于,当所述带宽优先级属性 包括有块地址属性时,步骤A中所述判断的方法为判断当前访问请求中是否存在与前一次访问的块地址不同的请求,如果 有,则判定该访问请求为满足带宽优先级属性的访问请求。
5. 根据权利要求其所述的方法,其特征在于,当所述带宽优先级属性 包括有读写状态属性时,步骤A中所述判断的方法为判断当前访问请求中是否存在与前一访问的读写状态相同的请求,如果有,则判定该访问请求为满足带宽优先级属性的访问请求。
6. 根据权利要求1所述的方法,其特征在于,所述带宽优先级属性包 括激活地址属性、块地址属性和读写状态属性,步骤A中所述判断的方法 为Al.判断当前访问请求中是否存在与当前外部存储器已预充电的块地 址、以及已激活的行地址相同的请求,如果有,则进入步骤B;否则,进入 步骤A2;A2.判断当前访问请求中是否存在与前一次访问的块地址不同的请求, 如果有,则进入步骤B;否则进入步骤A3;A3.判断当前访问请求中是否存在与前一访问的读写状态相同的请求, 如果有,则进入步骤B;否则进入步骤C。
7. 根据权利要求l、 3、 4、 5或6所述的方法,其特征在于,所述步骤 B具体包括将满足带宽优先级属性的访问请求设置为最高访问优先级,获 得访问权限。
8. 根据权利要求l、 3、 4、 5或6所述的方法,其特征在于,所述步骤 C具体包括将模块优先级最高的访问请求设置为最高访问优先级,获得访 问权限。
9. 根据权利要求1所述的方法,其特征在于,该方法还包括保存当 前未能获得访问权限的访问请求。
10. 根据权利要求9所述的方法,其特征在于,所述保存的方法为 为所述未能获得访问权限的各访问请求调整存储优先级并存储;当外部存储器空闲时,根据经过调整后的各个访问请求的存储优先级, 选择存储优先级最高的访问请求获得访问权限。
11. 根据10所述的方法,其特征在于,所述存储优先级设置在存储优 先级寄存器中;所述存储优先级寄存器包括同块同行域、不同块域、同读写状态域和模 块优先级域;其中,同块同行域,用于表示访问请求与当前外部存储器已预充电的块地址以及已激活的行地址是否都相同;不同块域,用于表示访问请求的块地址与前 一 次访问的块地址是否不同;同读写状态域,用于表示访问请求的的读写状态与前一访问的读写状态 是否相同。
12. 根据权利要求IO所述的方法,其特征在于,当存在多个所述存储优先级相等且都处在当前最高优先级时,通过硬件连线位置选择其中的一个 访问请求获得访问权限。
全文摘要
本发明公开了一种访问外部存储器的方法,本发明通过设置体现外部存储器自身物理特性的带宽优先级属性,并根据体现外部存储器自身物理特性的带宽优先级属性判断决定是否赋予当前访问请求的访问权限,提高了设备访问外部存储器的效率最大可能地使得连续的数据访问尽量落在了同一个块的同一个行上,极大提高了连续访问外部存储器的效率;在上一请求执行数据传输时,并行发出当前访问请求的命令和地址,减少了传输的命令延迟时间开销;通过保证连续的数据访问都是读或者写,减少了总线切换的时间开销。
文档编号G06F13/16GK101271435SQ20081011198
公开日2008年9月24日 申请日期2008年5月20日 优先权日2008年5月20日
发明者川 林 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1