一种读写控制电路、控制方法、芯片及电子设备与流程



1.本技术涉及电子技术领域,尤其涉及一种读写控制电路、控制方法、芯片及电子设备。


背景技术:



2.ahb(advanced high performance bus,高级高性能总线)可以通过发起读操作或写操作,触发对sram(static random-access memory,静态随机存取存储器)的访问。
3.在ahb总线访问sram时,如果写操作后,紧接着读操作,由于sram写入需要时间,会导致读操作发生等待,系统访问效率受到影响。


技术实现要素:



4.为了解决现有技术的问题,本技术实施例提供了一种读写控制电路、控制方法、芯片及电子设备,可以提高系统访问效率。技术方案如下:
5.根据本技术的一方面,提供了一种读写控制电路,所述读写控制电路包括缓存模块;
6.所述读写控制电路被配置为:
7.当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;
8.从所述缓存模块中将写操作对应的数据写入存储器。
9.可选的,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;
10.所述读写控制电路被配置为:
11.当存在写操作时,将写操作对应的数据存储在所述第一级写缓存单元中;
12.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
13.可选的,所述读写控制电路被配置为:
14.接收第一操作指令,并确定所述第一操作指令为写操作,则执行所述第一操作指令并将所述第一操作指令对应的数据存储在所述第一级写缓存单元中;
15.接收第二操作指令,并确定所述第二操作指令为读操作,若所述第一操作指令处于执行状态,则将所述第一操作指令挂起,执行所述第二操作指令以获取所述第二操作指令所需的数据并写回;
16.所述第二操作指令执行完毕后,若当前不存在待执行的读操作,则将挂起的所述第一操作指令执行,并执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
17.可选的,所述读写控制电路被配置为:
18.接收第三操作指令,并确定所述第三操作指令为读操作,则执行所述第三操作指令以获取所述第三操作指令所需的数据并写回;
19.接收第四操作指令,并确定所述第四操作指令为写操作,则在所述第三操作指令执行完毕后,执行所述第四操作指令并将所述第四操作指令对应的数据存储在所述第一级写缓存单元中;
20.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
21.可选的,所述读写控制电路还被配置为:
22.接收第五操作指令,并确定所述第五操作指令为写操作,则执行所述第五操作指令并将所述第五操作指令对应的数据存储在所述第一级写缓存单元中;
23.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
24.可选的,所述读写控制电路还被配置为:
25.在执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作时,将所述第一级写缓存单元当前存储的数据作为第一数据,如果所述第二级写缓存单元当前存储有第二数据,则判断所述第一数据对应的写地址与所述第二数据对应的写地址是否满足相邻条件,所述相邻条件是指在所述存储器中的存储位置相邻;
26.若满足所述相邻条件,则将所述第一数据和所述第二数据写入所述存储器;
27.若不满足所述相邻条件,则将所述第二数据写入所述存储器,将所述第一数据写入所述第二级写缓存单元。
28.可选的,所述读写控制电路还被配置为:
29.在总线空闲时,将所述缓存模块中当前存储的数据写入所述存储器。
30.可选的,所述读写控制电路被配置为:
31.当所述缓存模块中存在读操作所需的数据时,从所述缓存模块中获取所述所需的数据;
32.当所述缓存模块中不存在读操作所需的数据时,从所述存储器中读取所述所需的数据。
33.可选的,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;
34.所述读写控制电路被配置为:
35.对于所述第一级写缓存单元:判断当前读操作对应的读地址与所述第一级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第一级写缓存单元中获取当前读操作的数据;如果不相同,则进入如下对于所述第二级写缓存单元的判断;
36.对于所述第二级写缓存单元:判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第二级写缓存单元中获取当前读操作的数据。
37.可选的,所述缓存模块还包括读缓存单元;
38.所述读写控制电路还被配置为:
39.在所述判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的地址是否相同之后,如果不相同,则进入如下对于所述读缓存单元的判断;
40.对于所述读缓存单元:判断当前读操作对应的读地址与所述读缓存单元的数据对应的地址是否相同,如果相同,则从所述读缓存单元中获取当前读操作的数据;如果不相
同,则从所述存储器中读取所述所需的数据。
41.可选的,所述缓存模块还包括读缓存单元;
42.所述读写控制电路还被配置为:
43.基于当前读操作对应的读地址,从所述存储器中读取所述读地址及其相邻存储位置的数据;
44.将所述读地址的数据作为当前读操作所需的数据写回,并将所述相邻存储位置的数据写入所述读缓存单元。
45.可选的,所述缓存模块包括第一级写缓存单元、第二级写缓存单元和读缓存单元,所述读写控制电路还包括第一数据选择器、第二数据选择器、第三数据选择器、第四数据选择器和写数据选择控制电路;
46.所述第一级写缓存单元的输入端与总线连接,输出端分别连接所述第一数据选择器的输入端和所述第二数据选择器的输入端;
47.所述第二级写缓存单元的输入端与所述第一数据选择器的输出端连接,输出端分别连接所述写数据选择控制电路的输入端和所述第三数据选择器的输入端;
48.所述读缓存单元的输入端与所述存储器连接,输出端与所述第四数据选择器的输入端连接;
49.所述第一数据选择器的输入端还与总线连接,输出端还与所述写数据选择控制电路连接;
50.所述第二数据选择器的输入端还与所述第三数据选择器的输出端连接,输出端与总线连接;
51.所述第三数据选择器的输入端还与所述第四数据选择器的输出端连接;
52.所述第四数据选择器的输入端还与所述存储器连接;
53.所述写数据选择控制电路的输出端还与所述存储器连接。
54.根据本技术的另一方面,提供了一种读写控制电路的控制方法,所述读写控制电路包括缓存模块;
55.所述方法包括:
56.当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;
57.从所述缓存模块中将写操作对应的数据写入存储器。
58.根据本技术的另一方面,提供了一种芯片,包括上述读写控制电路。
59.根据本技术的另一方面,提供了一种电子设备,包括上述读写控制电路。
60.本技术中,当存在连续的读写操作时,写操作的数据可以缓存在缓存模块中,优先读取读操作的数据,此后才将写操作的数据写入存储器,消除了写操作在前时读操作的等待时间,提升了系统访问效率。
附图说明
61.在下面结合附图对于示例性实施例的描述中,本技术的更多细节、特征和优点被公开,在附图中:
62.图1示出了根据本技术示例性实施例提供的读写控制电路示意图;
63.图2示出了根据本技术示例性实施例提供的缓存模块示意图;
64.图3示出了根据本技术示例性实施例提供的缓存模块示意图;
65.图4示出了根据本技术示例性实施例提供的缓存模块示意图;
66.图5示出了根据本技术示例性实施例提供的读写控制电路示意图;
67.图6示出了未采用本技术提供的读写控制电路时的系统时序图;
68.图7示出了采用本技术提供的读写控制电路后的系统时序图;
69.图8示出了未采用本技术提供的读写控制电路时的系统时序图;
70.图9示出了采用本技术提供的读写控制电路后的系统时序图;
71.图10示出了根据本技术示例性实施例提供的读写控制电路的控制方法流程图。
具体实施方式
72.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
73.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本技术中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
74.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
75.本技术实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
76.本技术实施例提供了一种读写控制电路,该读写控制电路可以集成在芯片中,或者设置在电子设备中。
77.参照图1所示的读写控制电路示意图,该读写控制电路可以包括缓存模块。
78.读写控制电路可以被配置为:
79.当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在缓存模块中;
80.从缓存模块中将写操作对应的数据写入存储器。
81.在一种可能的实施方式中,读写控制电路可以设置在总线和存储器之间,在两者之间传输数据。具体的,上述总线可以是指ahb总线,存储器可以是指sram。作为一种示例,读写控制电路可以应用于32位mcu(microcontroller unit,微控制单元)设计中,sram每个地址存储数据为64bit。
82.当总线发出连续的读写操作时,通过配置,使得读写控制电路可以先执行读操作,读出读操作所需的数据,而后执行写操作,将写操作对应的数据存储在缓存模块中,并将写操作的数据写入存储器。
83.当存在连续的读写操作,特别是连续的写+读操作时,消除了写操作在前时读操作的等待时间,提升了系统访问效率。
84.下面将对读写控制电路的写操作相关配置进行介绍。
85.参照图2所示的缓存模块示意图,缓存模块可以包括第一级写缓存单元和第二级写缓存单元。作为一种示例,第一级写缓存单元和第二级写缓存单元存储的数据可以为32bit。
86.在此基础上,读写控制电路可以被配置为:
87.当存在写操作时,将写操作对应的数据存储在第一级写缓存单元中;
88.若当前不存在待执行的读操作,则执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
89.在一种可能的实施方式中,每当总线发出写操作时,首先将写操作对应的数据存入第一级写缓存单元,在总线下一次非读地址相位(也即是不存在待执行的读操作)时,将第一级写缓存单元的数据写入第二级写缓存单元。也即是说,如果总线中写地址相位的下一个时钟周期为读地址相位(即触发读操作),则将写操作暂时挂起,优先读sram,等待总线没有读地址相位时,再将挂起的写操作执行,即写入第二级写缓存单元。作为一种示例,参照图6,hwrite为高电平且haddr存在地址相位时表示ahb总线发出写操作,此时的地址相位为写地址相位;hwrite为低电平且haddr存在地址相位时表示ahb总线发出读操作,此时的地址相位为读地址相位。
90.可选的,在将第一级写缓存单元的数据写入第二级写缓存单元之后,可以将第一级写缓存单元清空。
91.下面将分别对触发操作的各个情况进行介绍。
92.情况一:触发连续的写+读操作,即写操作在前,读操作在后。
93.此种情况下,读写控制电路可以被配置为:
94.接收第一操作指令,并确定第一操作指令为写操作,则执行第一操作指令并将第一操作指令对应的数据存储在第一级写缓存单元中;
95.接收第二操作指令,并确定第二操作指令为读操作,若第一操作指令处于执行状态,则将第一操作指令挂起,执行第二操作指令以获取第二操作指令所需的数据并写回;
96.第二操作指令执行完毕后,若当前不存在待执行的读操作,则将挂起的第一操作指令执行,并执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
97.在一种可能的实施方式中,在第一个时钟周期,总线中触发写操作对应的第一操作指令,则可以接收到该第一操作指令并确定指令类型为写操作,进而读写控制电路可以执行该写操作,将写操作对应的数据存入第一级写缓存单元。接下来的第二个时钟周期,总线中触发读操作对应的第二操作指令,则可以接收到该第二操作指令并确定指令类型为写操作,进而读写控制电路可以将上述写操作挂起,执行该读操作,获取该读操作所需的数据并作为第二操作指令的结果写回。接下来的第三个时钟周期,若总线中触发另一写操作或者不触发任何操作,此时总线中没有读地址相位,则读写控制电路可以将挂起的写操作执行,也即是执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
98.此外,在上述第三个时钟周期中,若总线中触发另一读操作,该读操作与挂起的写操作仍然存在访问存储器的冲突(即写操作在前时读操作存在等待时间),仍然符合上述情
况一。此时,可以继续保持写操作挂起,直至总线中不存在待执行的读操作,则执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
99.情况二:触发连续的读+写操作,即读操作在前,写操作在后。
100.此种情况下,读写控制电路可以被配置为:
101.接收第三操作指令,并确定第三操作指令为读操作,则执行第三操作指令以获取第三操作指令所需的数据并写回;
102.接收第四操作指令,并确定第四操作指令为写操作,则在第三操作指令执行完毕后,执行第四操作指令并将第四操作指令对应的数据存储在第一级写缓存单元中;
103.若当前不存在待执行的读操作,则执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
104.在一种可能的实施方式中,在第一个时钟周期,总线中触发读操作对应的第三操作指令,则可以接收到该第三操作指令并确定指令类型为读操作,进而读写控制电路可以执行该读操作,获取该读操作所需的数据并作为第三操作指令的结果写回。接下来的第二个时钟周期,总线中触发写操作对应的第四操作指令,则可以接收到该第四操作指令并确定指令类型为写操作,并确定上述读操作是否执行完毕。在上述读操作执行完毕后,读写控制电路可以执行第四操作指令对应的写操作,将该写操作对应的数据存入第一级写缓存单元。接下来的第三个时钟周期,若总线中触发另一写操作或者不触发任何操作,此时总线中没有读地址相位,则读写控制电路可以执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
105.同样,在上述第三个时钟周期中,若总线中触发另一读操作,该读操作与第四操作指令对应的写操作存在访问存储器的冲突(即写操作在前时读操作存在等待时间),符合上述情况一。此时,可以将该写操作挂起,直至总线中不存在待执行的读操作,则执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
106.情况三:触发连续的写+写操作或单独的写操作。
107.此种情况下,读写控制电路可以被配置为:
108.接收第五操作指令,并确定第五操作指令为写操作,则执行第五操作指令并将第五操作指令对应的数据存储在第一级写缓存单元中;
109.若当前不存在待执行的读操作,则执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。
110.在一种可能的实施方式中,在第一个时钟周期,总线中触发写操作对应的第五操作指令,则可以接收到该第五操作指令并确定指令类型为写操作,进而读写控制电路可以执行该写操作,将该写操作对应的数据存入第一级写缓存单元。接下来的第二个时钟周期,总线中触发另一写操作对应的第六操作指令或不触发任何操作(即不存在待执行的读操作),则读写控制电路可以执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作。此后,对应于接收到第六操作指令的情况,读写控制电路还可以清空第一级写缓存单元,将第六操作指令的写操作对应的数据存入第一级写缓存单元。
111.可选的,上述执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作的具体处理可以如下:
112.将第一级写缓存单元当前存储的数据作为第一数据,判断第二级写缓存单元是否
存储有第二数据;
113.如果第二级写缓存单元当前存储有第二数据,则判断第一数据对应的写地址与第二数据对应的写地址是否满足相邻条件,相邻条件是指在存储器中的存储位置相邻;若满足相邻条件,则将第一数据和第二数据写入存储器;若不满足相邻条件,则将第二数据写入存储器,将第一数据写入第二级写缓存单元;
114.如果第二级写缓存单元当前未存储第二数据,则将第一级写缓存单元当前存储的数据写入第二级写缓存单元。此时,第二级写缓存单元存储的该数据,可以作为下一次执行将第一级写缓存单元当前存储的数据写入第二级写缓存单元的操作时的第二数据。
115.作为一种示例,ahb总线发起的读写操作的地址可以如0xxxxx_xxx0、0xxxxx_xxx4、0xxxxx_xxx8和0xxxxx_xxxc,每个地址对应32bit的数据,其中,0xxxxx_xxx0和0xxxxx_xxx4相邻,0xxxxx_xxx8和0xxxxx_xxxc相邻。相邻的两个地址可以在sram(位宽为64bit)中寻址到同一物理地址,相邻的两个地址对应的共64bit的数据存储在寻址到的同一物理地址中,也即是满足相邻条件。
116.每当需要将数据写入第二级写缓存单元时,可以依靠缓存的空满标志判断第二级写缓存单元是否缓存满。如果缓存满,则不可写入,此时可以判断当前待写入数据(即上述第一数据)的地址是否和已缓存于第二级写缓存单元的数据(即上述第二数据)的地址满足上述相邻条件。
117.如果满足,表明在sram中寻址一次即可访问到相应位置,并将64bit的数据写入sram。
118.如果不满足,则将已缓存于第二级写缓存单元的32bit的数据写入sram,将当前待写入的32bit的数据写入第二级写缓存单元,等待与其相邻的另一32bit的数据一齐写入sram。
119.通过上述配置,第二级写缓存单元可以用于缓存等待相邻地址的数据,当连续两次写入的是相邻的两个地址的数据时,可以一齐将两个地址的数据写入存储器,减少了访问存储器的次数,从而降低系统功耗。
120.此后,可以在总线空闲时将数据写入存储器,在此基础上,读写控制电路还可以被配置为:在总线空闲时,将缓存模块中当前存储的数据写入存储器。可选的,将数据写入存储器后,可以将缓存模块中的相应数据删除,即清空缓存模块。
121.通过上述配置,当存在连续的读写操作时,写操作的数据可以缓存在缓存模块中,优先读取读操作的数据,此后才将写操作的数据写入存储器,消除了写操作在前时读操作的等待时间,提升了系统访问效率。
122.下面将对读写控制电路的读操作相关配置进行介绍。
123.对于读操作,读写控制电路可以被配置为:
124.当缓存模块中存在读操作所需的数据时,从缓存模块中获取该所需的数据;
125.当缓存模块中不存在读操作所需的数据时,从存储器中读取该所需的数据。
126.在一种可能的实施方式中,可以基于读操作的地址和已缓存于缓存模块中的数据的地址判断是否为读操作所需的数据。如果缓存模块中存在与读操作相同地址的数据,表明该数据为读操作所需的数据,则可以从缓存模块中获取该数据作为读操作的结果并写回。如果不存在,则可以访问存储器,读取读操作所需的数据并写回。
127.通过上述配置,也可以减少访问存储器的次数,降低系统功耗。
128.可选的,当缓存模块包括第一级写缓存单元和第二级写缓存单元时,读写控制电路可以被配置为:
129.对于第一级写缓存单元:判断当前读操作对应的读地址与第一级写缓存单元的数据对应的写地址是否相同,如果相同,则从第一级写缓存单元中获取当前读操作的数据;如果不相同,则进入如下对于第二级写缓存单元的判断;
130.对于第二级写缓存单元:判断当前读操作对应的读地址与第二级写缓存单元的数据对应的写地址是否相同,如果相同,则从第二级写缓存单元中获取当前读操作的数据。
131.也即是说,可以依次判断第一级写缓存单元和第二级写缓存单元是否存储读操作所需的数据,如果是,则读操作的数据来源于相应的写缓存单元。
132.如果第二级写缓存单元中仍然未查到所需数据,则可以从存储器中读取所需的数据,或者,采用下文提供的技术方案继续查。
133.为了进一步降低系统功耗,与上文中一齐写入相邻的两个地址的数据的技术方案相类似的,还可以通过缓存模块一齐将相邻的两个地址的数据读出,将读操作所需的数据取走后,将相邻存储位置的数据写入缓存模块。在判断缓存模块中是否存在读操作所需的数据时,还可以通过判断前一次读操作是否将当前读操作所需的数据一齐读出,从而判断是否为所需数据。
134.在此基础上,作为一种可选方案,参照图3所示的缓存模块示意图,缓存模块还可以包括读缓存单元,读缓存单元可以用于存储上述相邻存储位置的数据。作为一种示例,读缓存单元存储的数据可以为32bit。
135.当读缓存单元与上述第一级写缓存单元、第二级写缓存单元相结合时,如图4所示。在此基础上,读写控制电路还可以被配置为:
136.在判断当前读操作对应的读地址与第二级写缓存单元的数据对应的地址是否相同之后,如果不相同,则进入如下对于读缓存单元的判断;
137.对于读缓存单元:判断当前读操作对应的读地址与读缓存单元的数据对应的地址是否相同,如果相同,则从读缓存单元中获取当前读操作的数据;如果不相同,则从存储器中读取所需的数据。
138.也即是说,可以依次判断第一级写缓存单元、第二级写缓存单元和读缓存单元是否存储读操作所需的数据,如果是,则读操作的数据来源于相应的缓存单元。
139.其中,判断当前读操作对应的读地址与读缓存单元的数据对应的地址是否相同的处理,也可以是通过判断当前读操作对应的读地址与前一次读操作对应的读地址是否满足上述相邻条件实现,如果满足,则表明当前读操作对应的读地址与读缓存单元的数据对应的地址相同。
140.此后,如果仍然未查到所需数据,则可以从存储器中读取所需的数据。
141.当需要从存储器读取数据时,读写控制电路可以被配置为:
142.基于当前读操作对应的读地址,从存储器中读取读地址及其相邻存储位置的数据;
143.将读地址的数据作为当前读操作所需的数据写回后,将相邻存储位置的数据写入读缓存单元。
144.作为一种具体的示例,参照图5示出的读写控制电路示意图,该读写控制电路具体可以由第一级写缓存单元、第二级写缓存单元、读缓存单元、第一数据选择器、第二数据选择器、第三数据选择器、第四数据选择器和写数据选择控制电路构成,其中,第一级写缓存单元、第二级写缓存单元和读缓存单元可以对应于上述缓存模块,可以通过第一数据选择器、第二数据选择器、第三数据选择器、第四数据选择器和写数据选择控制电路实现上述读写控制电路的配置。
145.第一级写缓存单元的输入端可以与ahb总线连接,输出端分别与第一数据选择器和第二数据选择器连接。
146.第二级写缓存单元的输入端可以与第一数据选择器连接,输出端分别与写数据选择控制电路、第三数据选择器连接。
147.读缓存单元的输入端可以与sram连接,输出端与第四数据选择器连接。
148.第一数据选择器的输入端可以分别与ahb总线、第一级写缓存单元连接,输出端分别与第二级写缓存单元、写数据选择控制电路连接。
149.第二数据选择器的输入端可以分别与第一级写缓存单元、第三数据选择器连接,输出端与ahb总线连接。
150.第三数据选择器的输入端可以分别与第二级写缓存单元、第四数据选择器连接,输出端与第二数据选择器连接。
151.第四数据选择器的输入端可以分别与sram、读缓存单元连接,输出端与第三数据选择器连接。
152.写数据选择控制电路的输入端可以分别与第一数据选择器、第二级写缓存单元连接,输出端与sram连接。
153.本技术实施例可以取得如下有益效果:
154.(1)当存在连续的读写操作时,写操作的数据可以缓存在缓存模块中,优先读取读操作的数据,此后才将写操作的数据写入存储器,消除了写操作在前时读操作的等待时间,提升了系统访问效率。
155.图6示出了未采用本技术提供的读写控制电路时的系统时序图,其中,hwrite为高电平且haddr存在地址相位时表示ahb总线发出写操作,hwrite为低电平且haddr存在地址相位时表示ahb总线发出读操作,图6中写操作和读操作连续、且写操作在前。通过时序图可以看到,sram首先触发写操作wr,而后触发读操作rd,但是,由于sram写入需要时间,触发读操作rd时hreadyout为低电平,表明未准备好读取数据(hrdata中的阴影部分示意),读操作延迟一拍后读出数据(hrdata中的rdata示意,未在rd的下一拍读出rdata)。
156.图7示出了采用本技术提供的读写控制电路后的系统时序图,其中,sram首先触发读操作rd,而后触发写操作wr,rdata可以在rd的下一拍读出,消除了等待写操作wr写入的时间。
157.(2)当连续两次写入的是相邻的两个地址的数据时,可以一齐将两个地址的数据写入存储器,和/或,可以一齐将相邻的两个地址的数据读出,当连续两次读取的是相邻的两个地址的数据时,可以从缓存模块获取数据,减少了访问存储器的次数,从而降低系统功耗。
158.图8示出了未采用本技术提供的读写控制电路时的系统时序图,其中,addr0和
addr1为相邻的两个写地址,addr2和addr3为相邻的两个读地址,可以看到每次ahb总线读写都会触发sram读写(每个wr对应一个写地址,每个rd对应一个读地址),系统功耗较高。
159.图9示出了采用本技术提供的读写控制电路后的系统时序图,其中,可以看到ahb总线的2次读操作/写操作仅触发了sram的1次读操作/写操作(addr0和addr1触发一个wr,addr2和addr3触发一个rd),降低了系统功耗。
160.本技术实施例还提供了一种读写控制电路的控制方法,可以用于控制上述读写控制电路,该读写控制电路包括缓存模块。参照图10所示的读写控制电路的控制方法流程图,该方法可以包括如下步骤1001-1002:
161.步骤1001,当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;
162.步骤1002,从所述缓存模块中将写操作对应的数据写入存储器。
163.可选的,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;
164.所述将写操作对应的数据存储在所述缓存模块中,包括:
165.当存在写操作时,将写操作对应的数据存储在所述第一级写缓存单元中;
166.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
167.可选的,所述当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中,包括:
168.接收第一操作指令,并确定所述第一操作指令为写操作,则执行所述第一操作指令并将所述第一操作指令对应的数据存储在所述第一级写缓存单元中;
169.接收第二操作指令,并确定所述第二操作指令为读操作,若所述第一操作指令处于执行状态,则将所述第一操作指令挂起,执行所述第二操作指令以获取所述第二操作指令所需的数据并写回;
170.所述第二操作指令执行完毕后,若当前不存在待执行的读操作,则将挂起的所述第一操作指令执行,并执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
171.可选的,所述当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中,包括:
172.接收第三操作指令,并确定所述第三操作指令为读操作,则执行所述第三操作指令以获取所述第三操作指令所需的数据并写回;
173.接收第四操作指令,并确定所述第四操作指令为写操作,则在所述第三操作指令执行完毕后,执行所述第四操作指令并将所述第四操作指令对应的数据存储在所述第一级写缓存单元中;
174.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。
175.可选的,所述方法还包括:
176.接收第五操作指令,并确定所述第五操作指令为写操作,则执行所述第五操作指令并将所述第五操作指令对应的数据存储在所述第一级写缓存单元中;
177.若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据
写入所述第二级写缓存单元的操作。
178.可选的,所述执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作,包括:
179.将所述第一级写缓存单元当前存储的数据作为第一数据,如果所述第二级写缓存单元当前存储有第二数据,则判断所述第一数据对应的写地址与所述第二数据对应的写地址是否满足相邻条件,所述相邻条件是指在所述存储器中的存储位置相邻;
180.若满足所述相邻条件,则将所述第一数据和所述第二数据写入所述存储器;
181.若不满足所述相邻条件,则将所述第二数据写入所述存储器,将所述第一数据写入所述第二级写缓存单元。
182.可选的,所述方法还包括:
183.在总线空闲时,将所述缓存模块中当前存储的数据写入所述存储器。
184.可选的,所述执行读操作,包括:
185.当所述缓存模块中存在读操作所需的数据时,从所述缓存模块中获取所述所需的数据;
186.当所述缓存模块中不存在读操作所需的数据时,从所述存储器中读取所述所需的数据。
187.可选的,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;
188.所述当所述缓存模块中存在所述读操作所需的数据时,从所述缓存模块中获取所述所需的数据,包括:
189.对于所述第一级写缓存单元:判断当前读操作对应的读地址与所述第一级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第一级写缓存单元中获取当前读操作的数据;如果不相同,则进入如下对于所述第二级写缓存单元的判断;
190.对于所述第二级写缓存单元:判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第二级写缓存单元中获取当前读操作的数据。
191.可选的,所述缓存模块还包括读缓存单元;
192.所述方法还包括:
193.在所述判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的地址是否相同之后,如果不相同,则进入如下对于所述读缓存单元的判断;
194.对于所述读缓存单元:判断当前读操作对应的读地址与所述读缓存单元的数据对应的地址是否相同,如果相同,则从所述读缓存单元中获取当前读操作的数据;如果不相同,则从所述存储器中读取所述所需的数据。
195.可选的,所述方法还包括:
196.基于当前读操作对应的读地址,从所述存储器中读取所述读地址及其相邻存储位置的数据;
197.将所述读地址的数据作为当前读操作所需的数据写回,并将所述相邻存储位置的数据写入所述读缓存单元。
198.本技术实施例中,当存在连续的读写操作时,写操作的数据可以缓存在缓存模块中,优先读取读操作的数据,此后才将写操作的数据写入存储器,消除了写操作在前时读操
作的等待时间,提升了系统访问效率。
199.本技术实施例还提供一种芯片,包括本技术实施例提供的读写控制电路。该芯片可以是但不限于是soc(system on chip,芯片级系统)芯片、sip(system in package,系统级封装)芯片。该芯片通过配置上述读写控制电路,使得系统访问效率提高。
200.本技术实施例还提供一种电子设备,该电子设备包括设备主体以及设于设备主题内的如上述的芯片。电子设备可以是但不限于体重秤、体脂秤、营养秤、红外电子体温计、脉搏血氧仪、人体成分分析仪、移动电源、无线充电器、快充充电器、车载充电器、适配器、显示器、usb(universal serial bus,通用串行总线)扩展坞、触控笔、真无线耳机、汽车中控屏、汽车、智能穿戴设备、移动终端、智能家居设备。智能穿戴设备包括但不限于智能手表、智能手环、颈椎按摩仪。移动终端包括但不限于智能手机、笔记本电脑、平板电脑、pos(point of sales terminal,销售点终端)机。智能家居设备包括但不限于智能插座、智能电饭煲、智能扫地机、智能灯。该电子设备通过配置上述读写控制电路,使得电子设备系统访问效率提高。
201.以上,仅是本技术的较佳实施例而已,并非对本技术作任何形式上的限制,虽然本技术已以较佳实施例揭示如上,然而并非用以限定本技术,任何本领域技术人员,在不脱离本技术技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本技术技术方案内容,依据本技术的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本技术技术方案的范围内。

技术特征:


1.一种读写控制电路,其特征在于,所述读写控制电路包括缓存模块;所述读写控制电路被配置为:当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;从所述缓存模块中将写操作对应的数据写入存储器。2.根据权利要求1所述的读写控制电路,其特征在于,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;所述读写控制电路被配置为:当存在写操作时,将写操作对应的数据存储在所述第一级写缓存单元中;若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。3.根据权利要求2所述的读写控制电路,其特征在于,所述读写控制电路被配置为:接收第一操作指令,并确定所述第一操作指令为写操作,则执行所述第一操作指令并将所述第一操作指令对应的数据存储在所述第一级写缓存单元中;接收第二操作指令,并确定所述第二操作指令为读操作,若所述第一操作指令处于执行状态,则将所述第一操作指令挂起,执行所述第二操作指令以获取所述第二操作指令所需的数据并写回;所述第二操作指令执行完毕后,若当前不存在待执行的读操作,则将挂起的所述第一操作指令执行,并执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。4.根据权利要求2所述的读写控制电路,其特征在于,所述读写控制电路被配置为:接收第三操作指令,并确定所述第三操作指令为读操作,则执行所述第三操作指令以获取所述第三操作指令所需的数据并写回;接收第四操作指令,并确定所述第四操作指令为写操作,则在所述第三操作指令执行完毕后,执行所述第四操作指令并将所述第四操作指令对应的数据存储在所述第一级写缓存单元中;若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。5.根据权利要求2所述的读写控制电路,其特征在于,所述读写控制电路还被配置为:接收第五操作指令,并确定所述第五操作指令为写操作,则执行所述第五操作指令并将所述第五操作指令对应的数据存储在所述第一级写缓存单元中;若当前不存在待执行的读操作,则执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作。6.根据权利要求2-5任一项所述的读写控制电路,其特征在于,所述读写控制电路还被配置为:在执行将所述第一级写缓存单元当前存储的数据写入所述第二级写缓存单元的操作时,将所述第一级写缓存单元当前存储的数据作为第一数据,如果所述第二级写缓存单元当前存储有第二数据,则判断所述第一数据对应的写地址与所述第二数据对应的写地址是否满足相邻条件,所述相邻条件是指在所述存储器中的存储位置相邻;
若满足所述相邻条件,则将所述第一数据和所述第二数据写入所述存储器;若不满足所述相邻条件,则将所述第二数据写入所述存储器,将所述第一数据写入所述第二级写缓存单元。7.根据权利要求1所述的读写控制电路,其特征在于,所述读写控制电路还被配置为:在总线空闲时,将所述缓存模块中当前存储的数据写入所述存储器。8.根据权利要求1所述的读写控制电路,其特征在于,所述读写控制电路被配置为:当所述缓存模块中存在读操作所需的数据时,从所述缓存模块中获取所述所需的数据;当所述缓存模块中不存在读操作所需的数据时,从所述存储器中读取所述所需的数据。9.根据权利要求8所述的读写控制电路,其特征在于,所述缓存模块包括第一级写缓存单元和第二级写缓存单元;所述读写控制电路被配置为:对于所述第一级写缓存单元:判断当前读操作对应的读地址与所述第一级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第一级写缓存单元中获取当前读操作的数据;如果不相同,则进入如下对于所述第二级写缓存单元的判断;对于所述第二级写缓存单元:判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的写地址是否相同,如果相同,则从所述第二级写缓存单元中获取当前读操作的数据。10.根据权利要求9所述的读写控制电路,其特征在于,所述缓存模块还包括读缓存单元;所述读写控制电路还被配置为:在所述判断当前读操作对应的读地址与所述第二级写缓存单元的数据对应的地址是否相同之后,如果不相同,则进入如下对于所述读缓存单元的判断;对于所述读缓存单元:判断当前读操作对应的读地址与所述读缓存单元的数据对应的地址是否相同,如果相同,则从所述读缓存单元中获取当前读操作的数据;如果不相同,则从所述存储器中读取所述所需的数据。11.根据权利要求8所述的读写控制电路,其特征在于,所述缓存模块还包括读缓存单元;所述读写控制电路还被配置为:基于当前读操作对应的读地址,从所述存储器中读取所述读地址及其相邻存储位置的数据;将所述读地址的数据作为当前读操作所需的数据写回,并将所述相邻存储位置的数据写入所述读缓存单元。12.根据权利要求1所述的读写控制电路,其特征在于,所述缓存模块包括第一级写缓存单元、第二级写缓存单元和读缓存单元,所述读写控制电路还包括第一数据选择器、第二数据选择器、第三数据选择器、第四数据选择器和写数据选择控制电路;所述第一级写缓存单元的输入端与总线连接,输出端分别连接所述第一数据选择器的输入端和所述第二数据选择器的输入端;
所述第二级写缓存单元的输入端与所述第一数据选择器的输出端连接,输出端分别连接所述写数据选择控制电路的输入端和所述第三数据选择器的输入端;所述读缓存单元的输入端与所述存储器连接,输出端与所述第四数据选择器的输入端连接;所述第一数据选择器的输入端还与总线连接,输出端还与所述写数据选择控制电路连接;所述第二数据选择器的输入端还与所述第三数据选择器的输出端连接,输出端与总线连接;所述第三数据选择器的输入端还与所述第四数据选择器的输出端连接;所述第四数据选择器的输入端还与所述存储器连接;所述写数据选择控制电路的输出端还与所述存储器连接。13.一种读写控制电路的控制方法,其特征在于,所述读写控制电路包括缓存模块;所述方法包括:当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;从所述缓存模块中将写操作对应的数据写入存储器。14.一种芯片,其特征在于,包括如权利要求1-12中至少一个项所述的读写控制电路。15.一种电子设备,其特征在于,包括如权利要求1-12中至少一个项所述的读写控制电路。

技术总结


本申请提供一种读写控制电路、控制方法、芯片及电子设备,属于电子技术领域。所述读写控制电路包括缓存模块;所述读写控制电路被配置为:当存在连续的读写操作时,执行读操作,并将写操作对应的数据存储在所述缓存模块中;从所述缓存模块中将写操作对应的数据写入存储器。采用本申请,可以提高系统访问效率。可以提高系统访问效率。可以提高系统访问效率。


技术研发人员:

布恩辉 王世好 欧阳帆 杨丽宁

受保护的技术使用者:

西安芯海微电子科技有限公司

技术研发日:

2022.07.06

技术公布日:

2022/9/13

本文发布于:2024-09-25 22:27:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/22264.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   缓存   操作   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议