存储器控制器

文档序号:1477144 发布日期:2020-02-25 浏览:7次 >En<

阅读说明:本技术 存储器控制器 (Memory controller ) 是由 G·布里亚 于 2019-08-16 设计创作,主要内容包括:本公开涉及存储器控制器。一种设备包括可填充有存储器位置的内容的第一缓冲器和第二缓冲器。选择电路被配置为在同时填充缓冲器与顺序填充缓冲器之间选择填充模式。在一些示例中,该设备可以是包括非易失性存储器和处理器的片上系统。(The present disclosure relates to memory controllers. An apparatus includes a first buffer and a second buffer that may be filled with contents of memory locations. The selection circuit is configured to select a filling mode between simultaneously filling the buffers and sequentially filling the buffers. In some examples, the device may be a system on a chip including a non-volatile memory and a processor.)

存储器控制器

相关申请的交叉引用

本申请要求于2018年8月17日提交的法国专利申请No.1857517的优先权,由此该申请通过引用并入本文。

技术领域

本公开总体上涉及电子电路,并且更具体地涉及接收存储器位置的内容的设备,诸如存储器控制器。

背景技术

存储器控制器通常用在存储器与可以访问该存储器的电路之间,例如,在电子集成电路芯片中。

发明内容

实施例可以克服接收存储器位置的内容的已知设备(诸如存储器控制器)的全部或部分缺点。

因此,一个实施例提供了一种设备,其包括可填充有存储器位置的内容的两个缓冲器、以及在缓冲器的同时填充与缓冲器的顺序填充之间的填充模式的选择器。

根据一个实施例,每个位置的内容包括多个数据段,优选地是2个数据段。缓冲器中的每个缓冲器被配置为用多个数据段同时填充。

根据一个实施例,该设备包括用于通过与数据相同尺寸的总线发送数据段之一的电路。

根据一个实施例,两个缓冲器可填充有具有交替地址(优选地是逻辑的)的第一位置和第二位置的相应内容。

根据一个实施例,该设备还包括顺序地可填充有第一存储器位置和第二存储器位置的相应内容的地址的两个附加缓冲器。

根据一个实施例,该设备被配置为使得缓冲器的顺序填充是使用连续存储器位置的内容的填充。

另一实施例提供了一种电子芯片,其包括如上所述的设备。

另一实施例提供了一种方法,其包括使用存储器位置内容填充两个缓冲器的第一操作和第二操作。缓冲器在第一填充下被同时填充,并且在第二填充下被顺序填充。

根据一个实施例,每个位置的内容包括多个数据段,优选地是2个数据段。缓冲器中的每个缓冲器在第一填充操作和第二填充操作期间同时使用多个数据段被填充。

根据一个实施例,该方法包括通过与数据相同尺寸的总线发送数据段之一的步骤。

根据一个实施例,两个缓冲器分别填充有具有交替地址(优选地是逻辑的)的第一位置和第二位置。

根据一个实施例,该方法包括将第一位置和第二位置的地址之一存储到附加缓冲器中的步骤。

根据一个实施例,该方法包括验证请求地址与在存储步骤存储的地址之间的相等性的步骤。

根据一个实施例,读出位置之一的内容的步骤的存在是相等性验证步骤的结果的函数。

根据一个实施例,在第一填充下,使用连续存储器位置的相应内容填充缓冲器。

在结合附图对特定实施例的以下非限制性描述中,将详细讨论前述和其他特征和优点。

附图说明

图1部分地和示意性地示出了芯片,其包括接收存储器位置的内容的设备的一个实施例;

图2示意性地示出了由图1的设备实现的方法的一个实施例的步骤;

图3示意性地示出了由图1中的类型的芯片来实现图2的方法的一个示例;

图4示意性地示出了图3的示例中的图2的方法的步骤;

图5部分地和示意性地示出了芯片,其包括接收存储器位置的内容的设备的一个实施例;

图6示意性地示出了图5的设备的一部分;以及

图7示意性地示出了图5的设备的另一部分。

具体实施方式

在不同的附图中,相同的元素用相同的附图标记表示。特别地,不同实施例中共同的结构和/或功能元件可以用相同的附图标记表示,并且可以具有相同的结构、尺寸和材料特性。

为清楚起见,仅示出并且详细描述了对理解所描述的实施例有用的那些步骤和元件。

贯穿本公开,术语“连接”用于表示除了导体之外没有中间元件的电路元件之间的直接电连接,而术语“耦合”用于表示电路元件之间的电连接,其可以是直接的,或者可以是经由一个或多个中间元件。

在以下描述中,除非另有说明,否则当提及限定绝对位置的术语(诸如术语“前”、“后”、“顶”、“底”、“左”、“右”等)、或者限定相对位置的术语(诸如术语“上方”、“下方”、“上”、“下”等)、或者限定方向的术语(诸如术语“水平”、“竖直”等)时,参考附图的定向。

本文中使用术语“约”、“大体上”和“近似”来表示所讨论的值的正或10%、优选地正负5%的公差。

图1示意性地示出了例如集成电路芯片的设备,其包括接收存储器110的内容的设备100的一个实施例,存储器110优选地是所谓的“闪存”类型的可重写非易失性存储器。

芯片优选地是所谓的SOC(“片上系统”)类型。SOC型芯片特别地用于搭载或移动应用,诸如移动电话、连接的对象、家用电器或运输。

设备100耦合(例如连接)到数据总线120。优选地,诸如微处理器130(CPU)之类的数据处理单元耦合到总线120。总线120特别地使得能够从存储器向处理单元传送数据。各种***设备(未示出,诸如传感器、或与芯片外部的元件通信的电路)可以耦合或连接到总线120。优选地,设备100与总线120之间的耦合并行地传送数据段的所有位(例如32位)。优选地,数据总线120的尺寸(即,并行的位数)等于每个数据段的位数。

优选地,微处理器130包括或耦合到高速缓冲存储器132(CACHE)。例如,高速缓冲存储器是访问时间比存储器110的访问时间短的存储器,并且该存储器用作总线120与微处理器130之间的缓冲器。

存储器110包括一连串的位置112和114。优选地,存储器位置112和114按照它们的地址(优选地它们的逻辑地址)的顺序以交替的方式彼此跟随。作为一个示例,位置112和114具有相同的位数,优选地为64位。然后例如,地址对于位置112具有形式0x...8,并且对于位置114具有形式0x...0,其中“0x”意指十六进制符号,并且“...”表示所考虑的地址的十六进制数字。位置112和114中的每个位置的内容对应于一个或多个数据段。优选地,位置112和114中的每个位置包含2个数据段。优选地,每个数据段对应于所考虑的存储器位置的32个最低或最高有效位。

设备100包括缓冲器102(BUFA)和缓冲器104(BUFB)。术语“缓冲器”用于表示缓冲器电路,诸如缓冲存储器,例如触发器的组件。优选地,每个缓冲器102、104包含与存储器位置112、114之一相同的位数。

缓冲器102和104可填充有存储器位置112和114的相应内容。优选地,缓冲器102被配置或布置为填充有从位置112中可选择的位置的内容。优选地,缓冲器104被配置或布置为填充有从位置114中可选择的位置的内容。

优选地,在填充每个缓冲器102和104时,由存储器位置的内容的所有位同时执行填充。具体地,在每个位置包括多个数据段的情况下,那么由存储器位置的内容的所有数据同时执行填充。

设备100还包括缓冲器102和104的填充模式的选择器140。在第一填充模式下,缓冲器102和104被同时填充,即,每个缓冲器102、104在与另一个相同的时间加载存储器位置112、114之一的相应内容。在第二填充模式下,缓冲器102和104被顺序填充,即,在填充缓冲器之一期间,另一缓冲器的内容保持不变。

优选地,选择器140包括控制相应缓冲器102和104的填充的两个多路复用器152和154。作为一个示例,缓冲器102和104的填充由相应的信号162和164控制。多路复用器152和154由填充模式选择信号SEL控制。这里的多路复用器具有根据多路复用器控制信号的高或低状态可选择的输入I0和I1。可以交换输入I0和I1、以及控制信号的低电平和高电平。多路复用器152和154的输入I1耦合到同一信号READ_END的施加节点。例如,多路复用器152和154的输入I0耦合到不同的相应信号READ_ENDA和READ_ENDB的施加节点。优选地,如下文所说明的,设备被配置用于不同时传送信号READ_ENDA和READ_ENDB。

图2示意性地示出了由图1的接收设备100实现的方法的一个实施例的步骤。

优选地,在步骤200,设备100接收请求地址ADDR、优选地是逻辑地址。例如,当微处理器130和/或高速缓冲存储器132需要位于存储器110中的请求地址处的数据段时,该地址由微处理器130和/或高速缓冲存储器132传送。请求地址ADDR还可以由耦合到总线120的任何设备传送,该任何设备诸如为直接访问DMA类型(“直接存储器访问”)存储器的设备。为了接收请求地址,设备100优选地耦合(例如连接)到未示出的地址总线。然后,微处理器130耦合到该地址总线。

优选地,在步骤210(HIT?),设备100确定缓冲器102和104之一是否已经包含存储器中的对应地址的数据。如果不是这种情况(框210的输出N),则方法行进到步骤220。

在步骤220,在同时填充模式(例如,当信号SEL处于高电平“1”时)与顺序填充模式(例如,当信号SEL处于低电平“0”时)之间选择填充模式。如果选择同时填充模式,则方法行进到步骤230。如果选择顺序填充模式,则方法行进到步骤240。可以交换步骤210和220的顺序。

在步骤230(READ_A&B),优选地同时从存储器110读取位置112和114的内容。优选地,这些位置是连续的并且包含位于请求地址处的数据。优选地,当读取结束时,传送读取结束信号。优选地,读取结束信号是控制缓冲器的同时填充的信号READ_END。然后,方法行进到同时填充缓冲器102和104的步骤250(FILL_BUFA&B)。

优选地,在步骤240(ADDR(3)),设备100在位置112的集合与位置114的集合之间选择包含位于请求地址处的数据的集合。在各自包含64位的存储器位置112和114的示例中,例如,设备确定从最低有效位开始的第4位(位ADDR(3),这些位通常从0编号)。如果位ADDR(3)等于0,则请求地址处包含的数据位于位置112之一中。如果位ADDR(3)等于1,则请求地址处包含的数据位于位置114之一中。该示例可以适用于每个位置112、114的任何位数,例如32或128位。

如果请求地址处包含的数据位于位置112之一中,则优选地在步骤262(READ_A)读出该位置112的内容。优选地,当读取结束时,传送读取结束信号。该信号优选地是控制仅缓冲器102的填充的信号READ_ENDA。方法行进到使用所考虑的位置112的内容填充缓冲器102的步骤272(FILL_BUFA)。缓冲器104的内容在该阶段保持不变。

如果请求地址处包含的数据位于位置114之一中,则优选地在步骤264(READ_B)读出该位置114的内容。优选地,当读取结束时,传送读取结束信号。该信号优选地是控制仅缓冲器104的填充的信号READ_ENDB。方法行进到使用所考虑的位置114的内容填充缓冲器104的步骤274(FILL_BUFA)。同时,不修改缓冲器102的内容。

优选地,在步骤250、272和274之后,方法行进到步骤280(SELECT_DATA)。在该步骤,设备100确定缓冲器102和104中与请求地址相对应的数据的位置。优选地,4个位置是可能的:缓冲器102的最低有效位;缓冲器102的最高有效位;缓冲器104的最低有效位;以及缓冲器104的最高有效位。

优选地,在接下来的步骤290(SEND_DATA),通过数据总线120发送在步骤280确定的位置处的包含在缓冲器102和104中的数据。然后,发送的数据可以由微处理器130和/或高速缓冲存储器132使用。在步骤290之后,优选地,方法在步骤200重新开始,以接收新的请求地址。

如果在步骤210,位于新请求地址处的数据已经在缓冲器102和104之一中(框210的输出Y),则方法直接行进到步骤280。

优选地,在方法的未示出步骤处,修改信号SEL。这样实现的循环方法包括同时填充缓冲器,以及填充两个缓冲器中的仅一个缓冲器并且然后填充两个缓冲器中的仅另一缓冲器。该方法使得能够通过总线120依次发送位于在步骤200接收的各种请求地址处的数据。

在一个优选实施例中,位置112位于第一存储器组中,并且位置114位于第二存储器组中。当所选择的填充模式是顺序填充时,针对每个请求地址,从两个组中的单个组中读出最多一个内容。与针对每个请求地址读取两个组的内容相比,这使得能够降低功耗。当所选择的填充模式是同时填充时,与顺序填充相比,两个填充的缓冲器使得能够节省时间,例如,当处理单元130和/或高速缓冲存储器132需要位于连续地址处的数据时。因此可以优化在执行速度与功耗之间的折衷。

图3示意性地示出了当顺序填充缓冲器时,由图1中的类型的芯片实现图2的方法的一个示例。

在该示例中,数据是32位字,数据总线120是32位总线,存储器110的位置112和114各自包含64位,并且高速缓冲存储器132包含位置302,每个位置302包含128位。因此,高速缓冲存储器的每个位置302可以包含4个数据段。例如,每个位置旨在接收存储器110中位于相应逻辑地址0x...0、0x...4、0x...8和0x...C处的数据。

假定微处理器需要位于逻辑地址0x...4处的数据,该数据不存在于高速缓冲存储器132中。然后完全填充高速缓冲存储器的位置302之一。为此目的,向设备100发送依次请求,以便设备100通过总线120依次发送4个对应数据段。第一请求涉及地址0x...4。这使得对应数据D1能够尽可能快地可用于微处理器。接下来的请求依次具有地址0x...8、0x...C和0x...0。

图4示意性地示出了图3的示例中的图2的方法的步骤。

在步骤200(ADDR=0x...4)接收请求地址0x...4。位于请求地址0x...4处的数据D1被包含在位置112之一中。该位置112还包含位于地址0x...0处的数据D4。该方法经过读出位置112的内容的步骤262(READ_A),并且然后经过使用该内容填充缓冲器102的步骤272。结果,于是缓冲器102包含2个数据段D1和D4。数据D1在接下来的步骤290(SEND_D1)被发送。

然后,在步骤200(ADDR=0x...8)接收请求地址0x...8。位于请求地址0x...8处的数据D2被包含在位置114之一中。该位置114还包含位于地址0x...C处的数据D3。该方法经过读出该位置114的内容的步骤264(READ_B),并且然后经过使用该内容填充缓冲器104的步骤274。结果,于是缓冲器104包含2个数据段D2和D3。数据D2在接下来的步骤290(SEND_D2)被发送。

然后,在步骤200(ADDR=0x...C)接收请求地址0x...C。在步骤210(HIT)之后,由于对应数据D3被包含在缓冲器104中的事实,方法直接行进到发送数据D3的步骤290(SEND_D3)。

最后,在步骤200(ADDR=0x...0)接收请求地址0x...0。在步骤210(HIT)之后,由于对应数据D4被包含在缓冲器102中的事实,方法直接行进到发送数据D4的步骤290(SEND_D4)。

因此,通过仅执行读出位置112的内容的步骤和读出位置114的内容的步骤,4个数据段D1、D2、D3和D4按照该顺序被发送。如果只有一个缓冲器可填充有位置112和114的内容,则需要3个读出步骤。因此,该方法使得能够比使用单个缓冲器更快地发送存储器内容。此外,与具有同时填充两个缓冲器的操作模式和可以填充两个缓冲器中的仅一个缓冲器的操作模式的设备相比,可以改善执行速度与功耗之间的折衷。

对于除图3和图4的示例中公开的请求地址之外的其他连串的请求地址,该方法特别快。该优点特别存在于以下情况:省略高速缓冲存储器132,并且微处理器130交替地需要包含在相同位置112和相同位置114中的数据。在这种情况下,一旦填充了缓冲器102和104,就通过总线120发送数据,而没有存储器内容读出步骤。

图5部分地和示意性地示出了芯片,该芯片包括接收存储器位置的内容的设备的一个实施例。

存储器110优选地包括存储器组110A(BANKA)和存储器组110B(BANKB),存储器组110A具有位于其中的位置112,存储器组110B具有位于其中的位置114。

优选地,存储器组110A将存储器位置的内容提供给多路复用器502的输入I0。在通过其地址进行选择并且从存储器读出之后,提供内容。作为一个示例,组110B类似地将存储器位置的内容提供给多路复用器502的输入I1。例如,多路复用器502由信号ADDR(3)/0控制。例如,当选择同时填充模式时,信号ADDR(3)/0具有低电平。优选地,当选择顺序填充模式时,信号ADDR(3)/0的电平使得能够选择包含位于请求地址ADDR处的数据的组。然后,信号ADDR(3)/0优选地对应于位ADDR(3)。多路复用器502的输出耦合到多路复用器512、522和524的输入I1。作为一个示例,纠错电路532(ECC)位于多路复用器502的输出与多路复用器512、522和524的输入之间。多路复用器512和522各自在输入I0上接收缓冲器102的内容。多路复用器512由信号READ_END控制。多路复用器522由信号READ_ENDA控制。然后,多路复用器152(图1)接收多路复用器512和522的输出。

优选地,由组110B提供的内容由多路复用器514的输入I1接收。作为一个示例,纠错电路534(ECC)位于组110B的输出与多路复用器514的输入I1之间。多路复用器514和524各自在输入I0上接收缓冲器104的内容。多路复用器514由信号READ_END控制。多路复用器524由信号READ_ENDB控制。然后,多路复用器154(图1)接收多路复用器514和524的输出。

作为一个示例,缓冲器102的最低有效位耦合到多路复用器550的输入I00;缓冲器102的最高有效位耦合到多路复用器550的输入I01;缓冲器104的最低有效位耦合到多路复用器550的输入I10;并且缓冲器104的最高有效位耦合到多路复用器550的输入I11。例如,多路复用器550由请求地址的从最低有效位开始的第三位和第四位的集合ADDR(3:2)控制。优选地,输入I00、I01、I10和I11根据位ADDR(3:2)的相应状态‘00’、‘01’、‘10’和‘11’来选择。多路复用器550的输出耦合到总线120。

优选地,组110A和110B、多路复用器152、154、502、512、514、522和524、以及缓冲器102和104之间的链路可以并行传送存储器位置内容的所有位。

优选地,缓冲器102和104、多路复用器550、以及总线120之间的链路可以并行传送数据段的所有位,优选地为32位。

图6和图7示意性地示出了图5的接收设备的部分,其使得能够实现图2的方法的步骤210(HIT?)。

该设备包括用于存储请求地址的两个缓冲器602(ADDRBUFA)和604(ADDRBUFB)。请求地址由多路复用器612、614、622和624的输入I1接收。多路复用器612和614在输入I0上接收缓冲器602的内容。多路复用器612和614的输出耦合到多路复用器632的输入,多路复用器632由信号SEL控制。多路复用器622和624在输入I0上接收缓冲器604的内容。多路复用器622和624的输出耦合到多路复用器634的输入,多路复用器634由信号SEL控制。多路复用器612和622分别由READ_ENDA和READ_ENDB控制。多路复用器614和624由信号READ_END一起控制。

在操作中,当选择同时缓冲器填充模式时,两个缓冲器602和604填充有与缓冲器102和104的填充相关联的请求地址(图2的方法的步骤250)。当选择顺序填充模式时,缓冲器602或604填充有与相应缓冲器102或104的填充相关联的请求地址(步骤262或264)。在填充两个缓冲器602和604之一时,两个缓冲器602和604中的另一个缓冲器的内容保持不变。

因此,缓冲器602和604的内容对应于与缓冲器602和604的填充相关联的请求地址。

在图7中,缓冲器602耦合到电路702(EQ)的输入,电路702在另一输入上接收请求地址。电路702是用于验证在其两个输入上接收的值之间的相等性的电路。优选地,电路702在接收的值相等时提供高电平,而在接收的值不同时提供低电平。电路702的输出耦合到与门(AND门)710的输入。与门710在另一输入处接收信号OKA&B。电路702的输出还耦合到与门712。与门712在另一输入处接收信号OKA。

缓冲器604耦合到电路704(EQ)的输入,电路704用于验证两个输入之间的相等性。电路704在其两个输入中的另一个输入上接收请求地址。电路704的输出耦合到与门714的输入。与门714在另一输入处接收信号OKB。

与门712和714的输出耦合到或门(OR门)720的输入。或门720和与门710的输出耦合到多路复用器730。多路复用器730由信号SEL控制。多路复用器730提供信号HIT。

当满足涉及以下项的有效条件时,信号OKA、OKB和OKA&B中的每个信号被激活(例如,设置为高电平):针对信号OKA的缓冲器102和602;针对信号OKB的缓冲器104和604;以及针对信号OKA&B的4个缓冲器。例如,这样的条件是缺乏以下项:对相关缓冲器的持续填充,从存储器中持续读出,缓冲器中的有效数据的存在,等等。

在操作中,当存储器中位于请求地址处的数据已经存在于缓冲器102和104的内容中时,信号HIT被激活。然后,在图2的方法的步骤210(HIT?)处使用信号HIT。

可以使用使得能够执行图2的方法的步骤210的任何电路,来代替图6和图7的电路。优选地,这种电路被配置为将填充缓冲器的内容的地址存储到缓冲器中。然后,电路确定所存储的地址是否对应于新请求的地址。作为一个变型,可以省略步骤210。

已经描述了各种实施例和变型。本领域技术人员将理解,可以组合该各种实施例和变型的某些特征,并且本领域技术人员将想到其他变型。

最后,基于上文中给出的功能指示,所描述的实施例和变型的实际实现方式在本领域技术人员的能力范围内。

这些更改、修改和改进旨在成为本公开的一部分,并且旨在处于本发明的精神和范围内。因此,前面的描述仅是通过示例的方式,而不旨在是限制性的。仅如所附权利要求及其等同物中所限定的那样来限制本发明。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:分布式块存储低延迟控制方法、系统及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!