专利名称:支持连续/离散地址多数据并行访问的可配置存储器结构的制作方法
技术领域:
本发明涉及微电子学技术领域,尤其涉及一种支持连续/离散地址多数据并行访问的可配置存储器结构。
背景技术:
当前,设计者通常采用提高指令/数据处理并行性的方法来增强处理器的性能。 这样处理器可以在一个周期内对多个数据进行运算,大大增强了其处理数据的能力。但是 要使处理器能最大程度的发挥多数据处理的并行性,就需要与之相匹配的支持多数据并发 读写的存储器。现在市场上处理器内部的存储器,能够支持字节、短字、单字、双字甚至四字 形式进行的访问,但都是采用单一的地址来获取数据,不支持离散地址多数据灵活读写,不 能满足处理器对存储器进行高吞吐、高并行的数据访问需求。既然现存的存储器无法支持处理器对其进行多数据并行访问,那么提供这种支持 的存储器需要什么样的特征呢?要满足应用需求,支持多数据灵活读写,至少应具备以下 两点特征(1)、连续/离散地址多数据访问存储器不仅能够支持地址连续的多个数据的加 载和存储,而且要能够支持对地址离散的多个数据的加载和存储。(2)、多种访问方式可以进行数据多种分组的数据访问方式,这样存储器才能够 对算法不同粒度的并行性提供支持。
发明内容
(一)要解决的技术问题有鉴于此,本发明的主要目的在于提供一种支持连续/离散地址多数据并行访问 的可配置存储器结构,以满足处理器对存储器进行高吞吐、高并行的数据访问需求,使其能 够支持离散地址/连续地址的多个数据的多种访问方式。( 二 )技术方案为达到上述目的,本发明提供了一种支持连续/离散地址多数据并行访问的可配 置存储器结构,该结构包括存储阵列、处理数据输入输出的控制电路、处理读写信号的控制 电路、配置传输方式的控制寄存器和地址选通电路,其中存储阵列,用于储存数据,由存储单元按行和列排列构成,每个存储单元对应一个 唯一的行列地址;处理数据输入输出的控制电路,用于处理数据的读出和写入行为;处理读写信号的控制电路,用于产生读写行为需要的控制信号;配置传输方式的控制寄存器,用于设置访问存储器的方式,该方式是连续地址多 数据访问或离散地址多数据访问;地址选通电路,用于决定每个存储阵列使用哪组地址总线作为自己的地址线。上述方案中,所述每个存储阵列有一组地址总线,该组地址总线决定需要对存储阵列中那些存储单元进行选通。上述方案中,所述处理数据输入输出的控制电路结合所述处理读写信号的控制电 路的输出信号来工作,其内部结构包括输入寄存器、写驱动器、读出放大器、输出寄存器和 输出缓冲器。上述方案中,在将输入端口中数据写入存储单元时,所述处理读写信号的控制电 路产生 写有效信号,打开输入寄存器写入到存储阵列数据通路,此时数据端口中的数据能 够通过输入寄存器,再经过写驱动器将数据存入存储阵列;在将存储单元中数据读出到输 出端口,所述处理读写信号的控制电路产生读有效信号,打开存储阵列数据读出到输出端 口的数据通路,此时存储阵列中的数据能够写入到输出寄存器,再经过输出缓冲器传送到 数据端口。上述方案中,所述配置传输方式的控制寄存器包括配置寄存器和掩码寄存器,其 中配置寄存器用来表示需要访问的多个数据的离散程度,即将多个数据设置成离散 的几组,每组数据需要提供一组地址总线,组内数据的地址是连续的;掩码寄存器用于标示访问的多个数据的有效性,它的位数和存储器端口上的数据 总线组数相同,每位对应于一组数据总线;当对存储器进行数据访问时,如果与端口上某组 数据总线有数据交互,相应位需要置1。上述方案中,所述配置寄存器还用来对存储器进行逻辑上的分组,将存储器分成 2k组,k为1、2、……、lo&n,n为自然数,组内只能进行连续地址数据的访问。所述配置寄 存器有效位数是log2n。上述方案中,所述掩码寄存器中的一位和一个存储器块对应,其中,1表示需要从 该存储器块中读取数据或者需要向该存储器块中写入数据,根据读信号线和写信号线来确 定行为;0表示不需要对该存储器块进行数据访问。上述方案中,所述地址选通电路的选通方式是由配置传输方式的控制寄存器来确 定,当对η个地址离散的数据进行访问时,每个存储阵列使用不同的地址总线来选通数据; 当η个地址连续的数据进行访问时,所有存储阵列使用同一个地址总线来选通数据。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1、本发明提供的这种支持连续/离散地址多数据并行访问的可配置存储器结构, 通过对配置寄存器赋值,改变逻辑上的存储器的分组方式,实现了数据传输方式的多样化, 进而满足了处理器对存储器进行高吞吐、高并行的数据访问需求。2、本发明提供的这种支持连续/离散地址多数据并行访问的可配置存储器结构, 满足了处理器对存储器进行高吞吐、高并行的数据访问需求,使其能够支持离散地址/连 续地址的多个数据的多种访问方式。
图1是本发明提供的支持连续/离散地址多数据并行访问的可配置存储器结构的 示意图;图2是访问η个地址离散数据时存储器的示意图3是访问η个地址连续数据时存储器的示意图;图4是存储器分成两组,组内地址连续的数据访问示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。如图1所示,图1是本发明提供的支持连续/离散地址多数据并行访问的可配置 存储器结构的示意图,该结构包括存储阵列、处理数据输入输出的控制电路、处理读写信号 的控制电路、配置传输方式的控制寄存器和地址选通电路。其中存储阵列,主要是用来保存数据的存储单元阵列。存储单元按行和列排列起来组 成存储阵列。每个存储单元对应于一个唯一的行列地址。每个存储阵列有一组地址总线, 该组地址总线决定需要对存储阵列中那些存储单元进行选通。处理数据输入输出的控制电路主要用于处理数据的读出和写入行为,该电路结合 所述处理读写信号的控制电路的输出信号来工作,其内部结构和普通存储器中的处理数据 输入输出控制电路类似,一般包括输入寄存器、写驱动器、读出放大器、输出寄存器和输出 缓冲器。处理读写信号的控制电路,用来产生读写行为需要的控制信号线。当要把输入端 口数据写入存储单元,该电路产生写有效信号,打开输入寄存器写入到存储阵列数据通路。 此时数据端口中的数据可以通过输入寄存器,再经过写驱动器把数据存入存储阵列。当要 把存储单元中数据读出到输出端口,该电路产生读有效信号,打开存储阵列数据读出到输 出端口的数据通路。此时存储阵列中的数据可以写入到输出寄存器,再经过输出缓冲器传 送到数据端口。配置传输方式的控制寄存器,主要用来设置访问存储器的方式,可以是连续地址 多数据访问,也可以是离散地址多数据访问。如果是离散地址多数据访问,则可设置何种数 据离散方式。该配置传输方式的控制寄存器包括配置(C0NFIG_BIT)寄存器和掩码(MASK) 寄存器,其中,C0NFIG_BIT寄存器用来表示需要访问的多个数据的离散程度,即多个数据分 成离散的几组,每组数据需要提供一组地址总线,组内数据的地址是连续的。MASK寄存器用 于标示访问的多个数据的有效性,它的位数和存储器端口上的数据总线组数相同,每位对 应于一组数据总线(即一个数据)。当对存储器进行数据访问时,如果与端口上某组数据总 线有数据交互,相应位需要置1。地址选通电路,是决定每个存储阵列使用哪组地址总线作为自己的地址线。选通 方式是由配置传输方式的控制寄存器来确定。当对η个地址离散的数据进行访问时,每个 存储阵列需要使用不同的地址总线来选通数据。图2描述的就是这种情况。当η个地址连 续的数据进行访问时,所有存储阵列可以使用同一个地址总线来选通数据。图3描述的就 是这种情况。该存储器通过设置配置传输方式的控制寄存器来决定多数据的访问方式,从而选 择合适的地址选通电路,把地址总线送到相应的存储阵列中。读写信号经过处理,产生控 制读写通路的信号,来选择打开输出寄存器读出到数据端口的通路或者输入寄存器写入到 存储阵列的通路。上面这两个行为协同起来就实现了连续/离散地址多数据并行加载或存储。该存储器的接口与其他存储器相比,一样拥有地址总线、数据总线和读写信号线, 但是其地址数据宽度是普通存储器的n倍。同时该存储器还需要额外的信号线对两个控制 寄存器进行赋值。假设需要在存储器内部和存储器的外部接口之间传送η个数据(按照字节寻址为 ηΧ8位,按照字寻址为ηΧ32位),即存储器的数据端口是η组数据比特位。为了在一定功 耗约束下,支持离散和连续地址数据访问,需要对存储器进行分块(bank)。方法是把存储器 分成η块,然后根据存储器的空间大小,决定对应于每块需要多少根地址线,假设每块需要 m根地址信号线来选择数据,那么整个存储器的空间大小为nX2mXt bit (存储器按照字节 寻址t为8位,按照字寻址t为32)。为了满足算法不同粒度并行性的需求,存储器还需要支持多数据不同离散度的访 问方式。当算法需要η个地址连续的数据,那么把η个数据设置为一组,对存储器提供一个 地址可实现对η个地址连续数据进行读写。当算法需要η个地址离散的数据,那么把η个 数据分割为η组,对存储器提供η个地址可以对η个地址离散数据进行读写。存储器的可 分的组数为2k(k为1,2,……,lo&n)。本发 明在存储器内设置一个C0NFIG_BIT寄存器进 行组数的设置,其有效位数为log2n。根据应用需求,存储器还需要支持一个周期访问少于η个数据的方式,如η个数据 中只读写低η/2个数据。为了降低功耗,需要对无数据进行读写的总线设置为高阻,需要禁 止选通无数据读写的存储器块。该发明是在存储器内部设置一个MASK寄存器,通过它对数 据通道的开关控制来达到此目的。通过上面介绍的分割方式和下面要讲述的组织方式,可以实现对存储器不同分组 方式的地址连续/地址离散的多数据访问。下面参照附图及对配置寄存器的配置值,来清 楚地说明如何实现各种形式的数据访问方式。首先介绍该存储器和外部单元之间的关键接口,主要有如下几个重要信号接口。 除了读写信号线(RD、WR)和配置信号线(C0NFIG_BIT),每个存储器块(bank)对应于每种 信号线中的一组。比如bankO对应于DATAO,ADDRO及MASK中的第0位。具体含义如下DATA :nXt比特位,双向(按照字节寻址t等于8位,按照字寻址t等于32);MASK :ηΧ1比特位,对应每个bank是否需要有数据读出或者写入;C0NFIG_BIT :log2n比特位,存储器配置寄存器,决定了存储器逻辑上的分组方式, 每一组内的bank公用一组地址总线来选择数据;ADDR :n Xm比特位(m是每个bank提取数据需要地址线根数),在标量、向量连续 地址加载或存储操作中指定操作地址;RD:读信号线,该信号线有效,表示需要把存储器中的数据放置在DATA数据总线 上;WR:写信号线,该信号线有效,表示需要把DATA数据总线存储到存储器中的存储 单元中。接口中的信号MASK和C0NFIG_BIT对应于存储器中的两个寄存器MASK和C0NFIG_ BIT。这两个寄存器的示意图如下 MASK寄存器中的一位和一个Bank对应,为1表示需要从该Bank中读取数据或者 需要向该Bank中写入数据,根据RD和WR信号线来确定行为,而为0表示不需要对该bank 进行数据访问。
C0NFIG_BIT寄存器是用来对存储器进行逻辑上的分组,可以把存储器分成2k (k为 1,2,……,Iog2Ii)组,组内只能进行连续地址数据的访问。C0NFIG_BIT寄存器有效位数是 log2n。因为存储器的bank是按照低位进行分割的,所以当对同一组内的连续地址进行访 问时,只需要把组内bank的地址线连接到该组的地址线上就可以了。本发明的存储器是要实现以下目标支持连续地址/离散地址多数据并行访问, 支持多数据多种分组方式的灵活数据访问。具体地说通过发给存储的控制信号线C0NFIG_ BIT和MASK来决定需要通过什么方式来对存储器中数据空间进行读写。下面通过3个例子来说明实现方式1、如果需要对存储器中η个地址离散的数据进行访问,需要提供η组地址总线,并 对MASK和C0NFIG_BIT寄存器进行如下设置,这样就可以对η个存储器块(bank)选通相应 的存储阵列,实现一次对η个数据的读写操作。整个存储器的地址和数据示意图如图2所示。存储器的每个bank分别连接各自 的地址和数据信号线,在每个bank内部其数据的偏移量是不同的,访问的数据地址是离散 的,当然也可是连续的。如需要对η个地址离散数据中的某些数据访问,可把无数据访问的 存储器块对应的MASK寄存器位赋值成0。
2、如果需要对存储器读写η个地址连续的数据,只需要发送最低bank地址,对MASK和CONFIG_BIT寄存器进行如下配置就可以实现数据的访问。对于数据加载需要RD信 号有效,对于数据存储,只要把WR信号有效就可以实现相应的操作。存储器的每个bank的 地址线都连接到最低位的地址线上,这样存储/加载的数据都是从低位地址算起的η个连 续地址空间的数据。整个存储器的地址和数据示意图如图3所示。存储器的每个bank都连接到最低 bank对应的地址线上,由于存储器的bank是按照低位进行分割的,所以在每个bank内部其 数据的偏移量是相同的,访问的数据其地址也是连续的,这样就很容易实现对η个地址连 续的数据的访问操作。
MASK寄存器的值
CONFIG_BIT寄存器的值3、如果需要从存储器中访问两组地址离散的η个数据,只需要提供两个组地址 (每组的最低m根地址总线),并对MASK和C0NFIG_BIT寄存器进行如下设置就可以实现需 要的读写操作。整个存储器的地址和数据示意图如图4所示。C0NFIG_BIT寄存器值为2,表示存 储器块分成相等两组。0至n/2-l存储器块(n/2-l至n_l存储器块)为一组,这些存储器 块连接到同一组地址总线。这样就实现对该种组合方式的数据访问操作。
MASK寄存器的值
CONFIG_BIT寄存器的值 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。
权利要求
一种支持连续/离散地址多数据并行访问的可配置存储器结构,其特征在于,该结构包括存储阵列、处理数据输入输出的控制电路、处理读写信号的控制电路、配置传输方式的控制寄存器和地址选通电路,其中存储阵列,用于储存数据,由存储单元按行和列排列构成,每个存储单元对应一个唯一的行列地址;处理数据输入输出的控制电路,用于处理数据的读出和写入行为;处理读写信号的控制电路,用于产生读写行为需要的控制信号;配置传输方式的控制寄存器,用于设置访问存储器的方式,该方式是连续地址多数据访问或离散地址多数据访问;地址选通电路,用于决定每个存储阵列使用哪组地址总线作为自己的地址线。
2.根据权利要求1所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述每个存储阵列有一组地址总线,该组地址总线决定需要对存储阵列中那 些存储单元进行选通。
3.根据权利要求1所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述处理数据输入输出的控制电路结合所述处理读写信号的控制电路的输出 信号来工作,其内部结构包括输入寄存器、写驱动器、读出放大器、输出寄存器和输出缓冲器。
4.根据权利要求1所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,在将输入端口中数据写入存储单元时,所述处理读写信号的控制电路产生写有效信 号,打开输入寄存器写入到存储阵列数据通路,此时数据端口中的数据能够通过输入寄存 器,再经过写驱动器将数据存入存储阵列;在将存储单元中数据读出到输出端口,所述处理读写信号的控制电路产生读有效信 号,打开存储阵列数据读出到输出端口的数据通路,此时存储阵列中的数据能够写入到输 出寄存器,再经过输出缓冲器传送到数据端口。
5.根据权利要求1所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述配置传输方式的控制寄存器包括配置寄存器和掩码寄存器,其中配置寄存器用来表示需要访问的多个数据的离散程度,即将多个数据设置成离散的几 组,每组数据需要提供一组地址总线,组内数据的地址是连续的;掩码寄存器用于标示访问的多个数据的有效性,它的位数和存储器端口上的数据总线 组数相同,每位对应于一组数据总线;当对存储器进行数据访问时,如果与端口上某组数据 总线有数据交互,相应位需要置1。
6.根据权利要求5所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述配置寄存器还用来对存储器进行逻辑上的分组,将存储器分成2k组,k为 1、2........log2n, η为自然数,组内只能进行连续地址数据的访问。
7.根据权利要求6所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述配置寄存器有效位数是log2n。
8.根据权利要求5所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述掩码寄存器中的一位和一个存储器块对应,其中,1表示需要从该存储器块中读取数据或者需要向该存储器块中写入数据,根据读信号线和写信号线来确定行为;O 表示不需要对该存储器块进行数据访问。
9.根据权利要求1所述的支持连续/离散地址多数据并行访问的可配置存储器结构, 其特征在于,所述地址选通电路的选通方式是由配置传输方式的控制寄存器来确定,当对 η个地址离散的数据进行访问时,每个存储阵列使用不同的地址总线来选通数据,η为自然 数;当η个地址连续的数据进行访问时,所有存储阵列使用同一个地址总线来选通数据。
全文摘要
本发明公开了一种支持连续/离散地址多数据并行访问的可配置存储器结构,包括存储阵列,用于储存数据,由存储单元按行和列排列构成,每个存储单元对应一个唯一的行列地址;处理数据输入输出的控制电路,用于处理数据的读出和写入行为;处理读写信号的控制电路,用于产生读写行为需要的控制信号;配置传输方式的控制寄存器,用于设置访问存储器的方式,该方式是连续地址多数据访问或离散地址多数据访问;地址选通电路,用于决定每个存储阵列使用哪组地址总线作为自己的地址线。利用本发明,实现了数据传输方式的多样化,进而满足了处理器对存储器进行高吞吐、高并行的数据访问需求。
文档编号G06F12/06GK101840383SQ20101016219
公开日2010年9月22日 申请日期2010年4月28日 优先权日2010年4月28日
发明者尹志刚, 张志伟, 林啸, 王东琳, 薛晓军, 谢少林, 闫寒 申请人:中国科学院自动化研究所