存储器控制器及存储器访问方法与流程

未命名 10-10 阅读:181 评论:0


1.本公开涉及存储器控制器和存储器访问方法,并且具体涉及抑制无用访问的发生的存储器控制器和存储器访问方法。


背景技术:

2.在计算机中,为了减少由于访问诸如cpu(中央处理单元)的处理器上的诸如闪存的存储设备而导致的负载,在处理器和存储设备之间设置高速缓存存储器。高速缓存存储器管理多个连续字作为一行,并且在高速缓存未命中时,一起读出多个字。此时,突发传送用于从存储设备传送数据。
3.此外,存储器的分层已经进展,并且有时在高速缓存存储器和存储设备之间设置预取缓冲器。
4.专利文献1公开了一种预取(pre-fetch)电路,当产生大小彼此不同的环绕式存储器访问请求时,该预取电路以减小处理器的停顿周期(stall cycle)的方式转换开始地址。
5.[引用列表]
[0006]
[专利文献]
[0007]
[专利文献1]
[0008]
日本专利公开号2012-146139


技术实现要素:

[0009]
[技术问题]
[0010]
顺便说一下,对存储设备的无用访问增加了功耗。
[0011]
鉴于如上所述的这种情形做出本公开并且抑制无用访问的发生。
[0012]
[问题的解决方案]
[0013]
本公开的存储器控制器是一种存储器控制器,包括:读出控制部,响应于对存储器的突发访问请求,在不取决于突发访问请求的完成的情况下开始从存储器读出数据;缓冲器,存储读出的多条数据;以及输出控制部,根据输出目的地的协议输出存储在缓冲器中的多条数据。
[0014]
本公开的存储器访问方法是由存储器控制器执行的存储器访问方法,包括:响应于对存储器的突发访问请求,在不取决于突发访问请求的完成的情况下开始从存储器读出数据;将所读出的多条数据存储到缓冲器中;并且根据输出目的地的协议,输出存储在缓冲器中的多条数据。
[0015]
在本公开中,响应于对存储器的突发访问请求,在不取决于突发访问请求的完成的情况下开始从存储器读出数据。然后,将读出的多条数据存储在缓冲器中,并且根据输出目的地的协议输出存储在缓冲器中的多条数据。
附图说明
[0016]
图1是示出了使用蓝牙的tws的视图。
[0017]
图2是示出lsi的配置的示例的框图。
[0018]
图3是描述存储器控制器的功能配置的示例的框图。
[0019]
图4是示出存储器访问过程的流程的流程图。
[0020]
图5是描述响应于正常总线请求读出数据的示例的示图。
[0021]
图6为示出响应于在高速缓存未命中时进行的总线请求读出数据的示例的示图。
[0022]
图7是示出响应于突发访问请求的存储器访问过程的流程的流程图。
具体实施方式
[0023]
在下文中,描述用于执行本公开的模式(在下文中称为实施例)。应注意,按照以下顺序给出描述。
[0024]
1.使用蓝牙的tws及其挑战
[0025]
2.lsi和存储器控制器的配置
[0026]
3.存储器访问过程流程
[0027]
4.变形
[0028]
《1.使用蓝牙的tws及其挑战》
[0029]
近年来,用于智能电话的耳机已经用作使用蓝牙(bluetooth)(注册商标)的tws(true wireless stereo)迅速普及。
[0030]
图1是示出了使用蓝牙的tws的视图。在图1中,描述了安装在左耳和右耳上的耳机1l和1r以及智能电话2。
[0031]
耳机1l和1r在它们彼此配对的状态下使用ble(蓝牙低功耗)与智能电话2进行无线通信以再现音乐。
[0032]
具体地,例如,耳机1r从智能电话2接收音乐数据并且将音乐数据分成左右声音。分别由耳机1r和耳机1l彼此同步地再现作为每个分离的声音的右声音和左声音。应注意,来自智能电话2的音乐数据可以其他方式由耳机1l接收。
[0033]
对于如上所述的耳机1l和1r,要求功耗低,因为它们具有小的壳体并且还具有小的电池体积。
[0034]
这里,作为示例,其中源自安装在右耳上的耳机1r上的操作的ui命令被反映在耳机1l和1r两者上,检查了响应于耳机1r上的操作而开始从耳机1l和1r中的每一个再现音乐的情况。
[0035]
在这种情况下,不满足特定响应速度会给用户带来这样的焦虑:ui不适当地反应,从而导致使用困难。因此,即使在耳机1l和1r以低频时钟操作的这种低功率状态下(如在待机状态下),在生成如上所述的这种ui命令的情况下,需要在短时间段内执行该过程。
[0036]
另一方面,虽然可以通过增加时钟频率来改善处理性能,但是这也增加了功耗。
[0037]
此外,例如,在处理器取决于代码大小将存储在闪存(flash memory)中的执行代码(execution code)展开成sram(静态随机存取存储器)等的情况下,需要增加sram的容量或面积,从而可能影响外壳尺寸的减小。
[0038]
因此,为了在实现功耗和尺寸的降低的同时保留处理性能,构造了包括闪存的系
统,执行代码将被存储在闪存中,在外部并通过使用高速缓存存储器来操作。在这种情况下,对外部闪存的无用访问增加了功耗。
[0039]
在下文中,描述了抑制无用访问的发生的存储器控制器和存储器访问方法。
[0040]
《2.lsi和存储器控制器的配置》
[0041]
(lsi的配置的示例)
[0042]
图2是描绘lsi(大规模集成)的配置的示例的框图,lsi包括应用根据本发明的技术的存储器控制器。
[0043]
例如,图2中描述的lsi10构建在图1中示出的耳机1l和1r中并且执行与音乐的再现等有关的处理。lsi10与作为设置在外部的外部代码存储器的存储器20电连接。存储器20是非易失性存储器,并且例如,包括闪存。应注意,lsi10可被配置为不仅构建在图1所示的耳机1l和1r中,而且构建在需要降低功耗和尺寸的任何电子设备中并执行预定处理。
[0044]
lsi10包括cpu30、高速缓存存储器40、总线50、处理器61、dmac(直接存储器访问控制器)62、存储器控制器100和sram111。
[0045]
cpu30根据程序的命令执行处理。程序的这种命令被保存在存储器20的命令保留区域中。同时,在存储器20的数据保留区域中保留处理所需的多条数据。
[0046]
高速缓存存储器40保留存储器20的命令保留区域和数据保留区域的一些内容的副本。
[0047]
总线50被配置作为使高速缓存存储器40、处理器61、dmac62、存储器控制器100和sram111彼此连接的存储器总线。
[0048]
处理器61执行与由cpu30执行的处理不同的处理。dmac62根据cpu30的命令控制在cpu30与存储器20之间的数据的传输。
[0049]
存储器控制器100控制对存储器20的访问。存储器20经由存储器控制器100由cpu30和处理器61共用。
[0050]
sram111是非易失性ram,并且与存储器20相比等待时间小且容量小。具体地,虽然存储器20允许以较大大小为单位对其的数据访问,但是sram111允许以较小的单位对其的高速随机访问。
[0051]
(存储器控制器的配置的示例)
[0052]
图3是描述存储器控制器100的功能配置的示例的框图。
[0053]
存储器控制器100包括总线i/f(接口)210、存储器i/f220、缓冲器230和控制部240。
[0054]
总线i/f210通过总线50与cpu30相互交换数据和命令。
[0055]
存储器i/f220与存储器20相互交换数据和命令。
[0056]
缓冲器230临时存储由存储器i/f220从存储器20读出的数据。
[0057]
控制部240包括微处理器等,并且控制整个存储器控制器100。控制部240执行预定程序,以实现读出控制部241和输出控制部242。
[0058]
读出控制部241响应于对存储器20的数据访问请求,控制存储器i/f220以控制从存储器20读出数据。读出的数据经由总线i/f210输出到总线50,并且临时存储在缓冲器230中。
[0059]
输出控制部242控制总线i/f210将通过存储器i/f220从存储器20读出的数据或临
时存储在缓冲器230中的数据输出到总线50。输出控制部242根据作为输出目的地的总线50的总线协议输出数据。
[0060]
《3.存储器访问过程流程》
[0061]
现在,参照图4的流程图描述由存储器控制器100进行的存储器访问过程的流程。
[0062]
在步骤s1中,总线i/f210通过总线50从cpu30接收总线请求。
[0063]
在步骤s2中,控制部240根据高速缓存存储器40中的高速缓存未命中确定来自cpu30的总线请求是否是访问请求(突发访问请求)。根据是否从总线50的边带信号(side band signal)给出添加指示高速缓存未命中的发生的标志的通知来确定总线请求是否是根据高速缓存未命中的访问请求。
[0064]
在根据高速缓存未命中确定总线请求不是访问请求的情况下,处理进行至步骤s3。
[0065]
在步骤s3中,读出控制部241响应于访问请求,控制存储器i/f220访问存储器20,从而读出作为存储器20的访问单元的一个字的数据。
[0066]
在步骤s4中,输出控制部242控制总线i/f210将从存储器i/f220读出的一个字的数据输出到总线50。在步骤s4之后,处理返回至接收下一总线请求的步骤s1。
[0067]
图5是描述响应于普通总线(ordinary bus)请求读出数据的示例的示图。
[0068]
在图5的示例中,接收八个字的数据的访问请求作为总线请求。总线请求是在与时钟一致的定时生成的。在图5中,参考标号“a1”至“a8”表示存储器20的地址。
[0069]
如图5所示,响应于总线请求,从存储器20中逐字地读出与地址“a1”至“a8”对应的多条数据。例如,可根据arm limited的ahb协议来执行这种存储器访问,或者可根据一些其他总线协议(例如,axi协议或ocp协议)来执行这种存储器访问。
[0070]
再次参照图4的流程图进行描述,在步骤s2中根据高速缓存未命中确定来自cpu30的总线请求是访问请求的情况下,处理进行至步骤s11。
[0071]
由于高速缓存未命中时的总线请求是对高速缓存行大小的数据的读出请求,所以读出控制部241在步骤s11中控制存储器i/f220以开始高速缓存行大小的数据的读出。高速缓存行大小例如是32字节(8个字)。
[0072]
这里,在不取决于总线请求的完成的情况下,预先顺序地读出高速缓存行大小的多条数据。
[0073]
在步骤s12中,读出控制部241将存储器i/f220读出的数据存储到缓冲器230中。
[0074]
在步骤s13中,控制部240确定根据总线时钟从cpu30接收的总线请求是否是可应用于存储在缓冲器230中的数据的请求。
[0075]
在确定来自cpu30的总线请求是可应用于存储在缓冲器230中的数据的请求的情况下,处理进行到步骤s14。
[0076]
在步骤s14中,输出控制部242控制总线i/f210向总线50输出可应用于来自cpu30的总线请求的缓冲器230中的一个字的数据。
[0077]
此后,在步骤s15中,总线i/f210通过总线50从cpu30接收下一总线请求。在接收到下一总线请求之后,处理返回到步骤s13,在步骤s13中,确定接收到的总线请求是否是可应用于存储在缓冲器230中的数据的请求。
[0078]
重复步骤s13至s15中的处理,直到存储在缓冲器230中的高速缓存行大小的多条
数据全部输出到总线50。
[0079]
当在此之后在步骤s15中接收到普通总线请求时,在步骤s13中确定总线请求不是可应用于存储在缓冲器230中的数据的请求,并且处理返回到步骤s3。
[0080]
图6为示出根据在高速缓存未命中时进行的总线请求读出数据的示例的示图。
[0081]
在图6的示例中,高速缓存行大小(八个字)的数据的突发访问请求被接收作为总线请求。在图6中,参考标号“b1”至“b8”表示存储器20的地址。
[0082]
如图6所示,参照总线请求中的第一字的地址“b1”,预先从存储器20中读出与用于高速缓存行大小的地址“b1”至“b8”对应的多条数据,并且将其存储到缓冲器230中。与缓冲器230中存储的地址“b1”至“b8”对应的多条数据在符合根据总线协议的总线请求的定时逐字输出。
[0083]
根据上述处理,在高速缓存未命中时,预先开始高速缓存行大小的数据的读出,并且将读出的数据顺序地存储到缓冲器230中。因此,可以使高速缓存未命中时的未命中惩罚(时间损失)最小化,由此抑制无用访问的发生。因此,可以在不增加时钟频率的情况下抑制功耗的增加,并且例如,可以实现功耗和尺寸的降低并保留lsi中的处理性能,lsi被结合在诸如使用蓝牙的tws的电子设备中。
[0084]
《4.变形》
[0085]
在下文中,描述了根据上述本公开内容的实施例的变形。
[0086]
(响应于突发访问请求的存储器访问过程)
[0087]
上述存储器控制器100的存储器访问过程不仅可应用于在高速缓存未命中时进行的总线请求,还可应用于参考单个地址连续访问多条数据的突发访问请求。
[0088]
图7是示出响应于突发访问请求的存储器访问过程的流程的流程图。
[0089]
在步骤s21中,总线i/f210通过总线50从cpu30接收突发访问请求。例如,这里的突发访问请求是在系统启动时根据sram等的固件的展开的请求或对音频数据的访问请求。
[0090]
在步骤s22中,读出控制部241控制存储器i/f220开始读出根据突发访问请求的大小的数据。根据突发访问请求的大小的数据是预先确定访问顺序的数据,诸如展开成sram等的固件或音频数据。
[0091]
在步骤s23中,读出控制部241将存储器i/f220读出的数据存储到缓冲器230中。
[0092]
在步骤s24中,输出控制部242根据总线协议控制总线i/f210将缓冲器230中的多条数据顺次输出至总线50。
[0093]
根据上述处理,能够抑制针对事先确定访问顺序的数据的突发访问请求发生无用访问,由此抑制功耗的增加。
[0094]
(环绕式存储器访问的应用)
[0095]
在上述实施例中,参考总线请求中的第一字的地址开始读出数据。这不是限制性的,并且执行环绕式存储器访问的存储器控制器可以参考总线请求中的第一字的地址和环绕式访问信息开始从所需地址读出数据。
[0096]
(存储器的不同示例)
[0097]
尽管上述实施例中的存储器20包括闪存,但是它可以另外地包括不同类型的非易失性存储器,诸如mram(磁阻随机存取存储器)、reram(电阻式ram)、feram(铁电ram)或相变存储器。
[0098]
另外,虽然说明了存储器20是外部代码存储器,但也可以是lsi10上设置的片上存储器。
[0099]
应用根据本公开的技术的存储器控制器不仅设置在内置于使用蓝牙的tws中的lsi中,而且设置在任何lsi中。
[0100]
换言之,根据本公开的技术的实施例不限于上述实施例,并且在不背离根据本公开的技术的主题的情况下可以各种方式改变。
[0101]
此外,本说明书中描述的有益效果在最后是示例性的,而不是限制性的,并且其他有益效果可以是可用的。
[0102]
此外,根据本公开内容的技术可以采取以下配置。
[0103]
(1)
[0104]
一种存储器控制器,包括:
[0105]
读出控制部,响应于对存储器的突发访问请求,在不取决于突发访问请求的完成的情况下开始从存储器读出数据;
[0106]
缓冲器,存储读出的多条数据;以及
[0107]
输出控制部,根据输出目的地的协议输出存储在缓冲器中的多条数据。
[0108]
(2)
[0109]
根据(1)所述的存储器控制器,其中,
[0110]
突发访问请求是根据高速缓存存储器中的高速缓存未命中的总线请求。
[0111]
(3)
[0112]
根据(2)所述的存储器控制器,其中,
[0113]
读出控制部响应于总线请求开始读出高速缓存行大小的数据。
[0114]
(4)
[0115]
根据(3)所述的存储器控制器,其中,
[0116]
读出控制部参考总线请求中的第一字的地址开始读出高速缓存行大小的数据。
[0117]
(5)
[0118]
根据(3)所述的存储器控制器,其中,
[0119]
读出控制部参考总线请求中的第一字的地址和环绕式访问信息开始读出高速缓存行大小的数据。
[0120]
(6)
[0121]
根据(2)至(5)中任一项所述的存储器控制器,其中,
[0122]
输出控制部根据总线协议输出存储在缓冲器中的多条数据。
[0123]
(7)
[0124]
根据(6)所述的存储器控制器,其中,
[0125]
输出控制部逐字地输出存储在缓冲器中的多条数据。
[0126]
(8)
[0127]
根据(1)所述的存储器控制器,其中,
[0128]
突发访问请求是在系统启动时根据固件的展开的请求。
[0129]
(9)
[0130]
根据(1)所述的存储器控制器,其中,
[0131]
突发访问请求是对音频数据的访问请求。
[0132]
(10)
[0133]
根据(1)至(9)中任一项所述的存储器控制器,其中,
[0134]
存储器包括非易失性存储器。
[0135]
(11)
[0136]
根据(10)所述的存储器控制器,其中,
[0137]
非易失性存储器包括闪存、mram、reram、feram或者相变存储器。
[0138]
(12)
[0139]
一种通过存储器控制器的存储器访问方法,包括:
[0140]
响应于对存储器的突发访问请求,在不取决于突发访问请求的完成的情况下开始从存储器读出数据;
[0141]
将所读出的多条数据存储到缓冲器中;并且
[0142]
根据输出目的地的协议,输出存储在缓冲器中的多条数据。
[0143]
[参考标号列表]
[0144]
1l、1r 耳机
[0145]
10 lsi
[0146]
20 存储器
[0147]
30 cpu
[0148]
40 高速缓存存储器
[0149]
50 总线
[0150]
61 处理器
[0151]
62 dmac
[0152]
100 存储器控制器
[0153]
111 sram
[0154]
210 总线i/f
[0155]
220 存储器i/f
[0156]
230 缓冲器
[0157]
240 控制部
[0158]
241 读出控制部242输出控制部。

技术特征:
1.一种存储器控制器,包括:读出控制部,响应于对存储器的突发访问请求,在不取决于所述突发访问请求的完成的情况下开始从所述存储器读出数据;缓冲器,存储读出的多条数据;以及输出控制部,根据输出目的地的协议输出存储在所述缓冲器中的多条数据。2.根据权利要求1所述的存储器控制器,其中,所述突发访问请求是根据高速缓存存储器中的高速缓存未命中的总线请求。3.根据权利要求2所述的存储器控制器,其中,所述读出控制部响应于所述总线请求开始读出高速缓存行大小的数据。4.根据权利要求3所述的存储器控制器,其中,所述读出控制部参考所述总线请求中的第一字的地址开始读出所述高速缓存行大小的数据。5.根据权利要求3所述的存储器控制器,其中,所述读出控制部参考所述总线请求中的第一字的地址和环绕式访问信息开始读出所述高速缓存行大小的数据。6.根据权利要求2所述的存储器控制器,其中,所述输出控制部根据总线协议输出存储在所述缓冲器中的所述多条数据。7.根据权利要求6所述的存储器控制器,其中,所述输出控制部逐字地输出存储在所述缓冲器中的所述多条数据。8.根据权利要求1所述的存储器控制器,其中,所述突发访问请求是在系统启动时根据固件的展开的请求。9.根据权利要求1所述的存储器控制器,其中,所述突发访问请求是对音频数据的访问请求。10.根据权利要求1所述的存储器控制器,其中,所述存储器包括非易失性存储器。11.根据权利要求10所述的存储器控制器,其中,所述非易失性存储器包括闪存、mram、reram、feram或者相变存储器。12.一种存储器访问方法,其中:存储器控制器,响应于对存储器的突发访问请求,在不取决于所述突发访问请求的完成的情况下开始从所述存储器读出数据;将所读出的多条数据存储到缓冲器中;并且根据输出目的地的协议,输出存储在所述缓冲器中的所述多条数据。

技术总结
本公开涉及能够防止发生浪费访问的存储器控制器和存储器访问方法。本公开提供:读出控制单元,响应于对存储器的突发访问请求(无论突发访问请求是否完成)开始从存储器读出数据;缓冲器,存储由此读出的多条数据;和输出控制单元,根据输出目的地的协议输出存储在缓冲器中的多条数据。例如,根据本公开的技术可应用于内置于使用蓝牙的TWS设备中的LSI。用于内置于使用蓝牙的TWS设备中的LSI。用于内置于使用蓝牙的TWS设备中的LSI。


技术研发人员:杉森靖史
受保护的技术使用者:索尼半导体解决方案公司
技术研发日:2022.01.06
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐