输入位宽可伸缩的编码/编解码存储系统的制作方法与工艺

文档序号:12013510阅读:163来源:国知局
输入位宽可伸缩的编码/编解码存储系统的制作方法与工艺
本发明涉及集成电路技术领域,尤其涉及一种输入位宽可伸缩的编码/编解码存储系统。

背景技术:
存储器是电子系统的重要组成部分,其核心是存储单元阵列,用于存储数据或指令。随着半导体存储器的用途越来越广泛,其内部数据编码的应用需求也日趋多样化。例如,为了提高可靠性和成品率产生了容错编解码需求,而多媒体数据存储产生了压缩编解码的需求等。存储器的编解码定义如下:存储器的编码是一种将输入的原始数据经过编码处理后再写入存储阵列的机制。存储器的解码是一种将存储阵列中的数据经过解码后输出的机制。在《JournalofNetworkandComputerApplications》2010年发表的文章“Asurveyofmemoryerrorcorrectingtechniquesforimprovedreliability”中提到目前存储器采用的最常用的编解码为线性分组码。线性分组码在编码前后的数据具有一一对应的线性关系。存储器的编解码技术研究在国内外都十分活跃。国外对于常见的编解码方案如奇偶校验码、汉明码等码制的理论基础和实现方式都展开了深入的研究。目前国内也对于存储器的编解码技术进行了研究。图1为现有技术编解码存储系统的结构示意图。对于图1所示的编解码存储系统,其编码模块和解码模块都由逻辑电路或时序电路组成,其待编码的数据全部来自外部输入,无法实现一部分待编码数据来自外部输入,一部分待编码数据来自存储阵列的位宽可伸缩编码形式。参考文献1(专利号:200910087520.X)提出了一种基于汉明码对静态随机存储器多位翻转进行容错的方法。在该方法中,其编解码要求输入的位宽固定,输出纠错后的码位和错误标示位,其中并没有在通用嵌入式存储器的外围进行改造,而是改变了通用存储器内部的结构,在存储器上实现了错误纠错码(ErrorCorrectionCode,简称ECC)。参考文件2(专利号201110274888.4)提出了一种另一中国专利基于汉明码对静态随机存储器多位翻转进行容错的方法,其中的编解码存储系统包括了输入编码模块、存储阵列模块和输出解码模块,其编解码同样要求输入的位宽固定,输出纠错后的码位和错误标示位,其中的SRAM与通用的嵌入式存储器一致。然而,在实现本发明的过程中,申请人发现现有技术编解码存储系统具有如下技术缺陷:(1)对于同一存储器,要求编码的位宽是固定的,即必须得到存储阵列单位编码字节的所有数据,才可以进行编码得出校验位,完成编码后数据的存储,即外部数据提供的写入数据不足存储器要求的位宽位时,则无法实现编码,无法进行正确写入阵列的操作;(2)以上所列的现有的存储器编解码的硬件实现中,其编码电路对于输入的建立时间有较大的影响,造成了电路时序关系的恶化。

技术实现要素:
(一)要解决的技术问题鉴于上述技术问题,本发明提供了一种编码/编解码存储系统,以实现在外部提供的需写入数据的位宽不足存储器要求的位宽时,同样能够正确的编码和存储。(二)技术方案根据本发明的一个方面,提供了一种输入位宽可伸缩的编码存储系统。该编码存储系统包括:读写控制电路、存储器、编码电路105、数据缓存器108、级联的一级地址缓存器120和二级地址缓存器109、级联的一级写使能缓存器122和二级写使能缓存器110和控制电路111。其中:读写控制电路用于将外部输入待编码数据和外部输入写使能数据传输至双端口存储器,其中,当n<m时,该读写控制电路将n位的外部输入待编码数据信号增加若干位从而转换为m位的数据信号[m-1:0],并将其在第一端口输出;将n位的外部写使能信号转换为m位的写使能信号[m-1:0],并将其在第二端口输出,其中,m为最大编码位宽,n为实际输入的待编码数据位宽;存储器,其至少包括:存储阵列、第一端口和第二端口。其中,所述第一端口用于完成存储器读写操作功能,包括:输入数据端口,连接至所述读写控制电路的第一端口,用于接收所述数据信号[m-1:0];输入写使能端口,连接至所述读写控制电路的第二端口,用于接收写使能信号[m-1:0],其中,由输入数据端口输入的数据信号[m-1:0]被写入至存储器中存储阵列的预设位置;输出数据端口,用于从预设位置读取待编码数据[m-1:0]。第二端口,用于将编码后的数据写入存储阵列,包括:输入数据端口,连接至数据缓存器的输出端;输入写使能端口,连接至所述控制电路111的输出端;输入地址信号,连接至二级地址缓存器109的输出端;编码电路105,其输入端口连接至存储器第一端口的输出数据端口,用于将所述数据信号[m-1:0]编码,编码后的信号为[m+k-1:0],其采用编码机制的延时小于存储器的工作周期,k为校验位的位宽;数据缓存器108,其输入端连接至所述编码电路105的输出端;级联的一级地址缓存器120和二级地址缓存器109,其中,所述一级地址缓存器120的输入端连接至外部输入地址信号[i:0];级联的一级写使能缓存器122和二级写使能缓存器110,其中,所述一级写使能缓存器122的输入端连接至外部输入写使能信号[n-1:0];控制电路111,其四输入端分别输入外部输入地址信号[i:0]、外部输入写使能信号[n-1:0]、所述二级写使能缓存器110的输出、所述二级地址缓存器109的输出,用于避免所述第一端口和第二端口对同一地址进行写操作;其中,所述存储器第一端口、存储器第二端口、数据缓存器、一级地址缓存器、二级地址缓存器、一级写使能缓存器、二级写使能缓存器的输入时钟均连接至外界输入的时钟信号。根据本发明的另一个方面,提供了一种输入位宽可伸缩的编解码存储系统。该编解码存储系统包括:上述的编码存储系统以及解码电路107。其中:所述存储器第一端口的输出数据端口为[m+k-1:0]位端口。解码电路107,其输入端口连接至存储器第一端口的输出数据端口,用于对从存储阵列127中与外部输入地址信号[i:0]对应的地址读取的数据进行解码,该解码与所述编码电路105的编码相对应。(三)有益效果从上述技术方案可以看出,本发明输入位宽可伸缩的编码/编解码存储系统具有以下有益效果:(1)使用缓存编解码机制,实现了存储阵列和缓存器之间的交互存储,在外部提供的需写入数据的位宽不足存储器要求的位宽,即编码数据一部分来自外部输入一部分来自存储阵列时,可以实现正确的编解码,且纠错能力在不同的位宽条件下相互一致,进行正常写入读出存储阵列的操作;(2)采用数据缓存器、地址缓存器和写使能缓存器后,进行编码操作时对于电路的建立时间的影响十分微弱,得到了一个时序优于普通编解码结构的存储系统。避免采用时钟延迟,而通过对于端口信号采取缓存的办法来实现可伸缩编解码,可以减少工艺和温度带来的影响,增强系统的稳定性;(3)利用数据缓存器、地址缓存器和写使能缓存器来实现可伸缩位宽的编码,可以在极大程度的提高存储器应用的灵活性的同时,不会引起大的面积开销;(4)采用通用的双端口同步存储器可以尽量减少设计的风险和设计周期。在可能的情况下,尽力使用已有的嵌入式存储器的成熟设计,减少存储器设计的风险,提高设计效率。尽可能采用自动化的设计流程,增强设计的可移植性。一旦本发明提出的电路系统结构的代码得以实现,就可以将由一种工艺移植到另一种工艺,二代目不需要改变或略作修改。这种可以移植的设计大大提高了设计生产的效率。附图说明图1为现有技术编解码存储系统的结构示意图;图2为根据本发明实施例输入位宽可伸缩的编解码存储系统的结构示意图;图3为根据本发明实施例编解码存储系统中各组成部分的时序关系图;图4为根据本发明实施例编解码存储系统进行写数据操作的流程图;图5为根据本发明实施例编解码存储系统中控制电路的控制逻辑示意图;图6为根据本发明实施例编解码存储系统进行读数据操作的流程图;图7为根据本发明实施例编解码存储系统中输出选择电路的控制逻辑示意图。【主要元件、信号符号说明】101-外部输入待编码数据信号;102-外部输入写使能信号;103-外部输入地址信号;104-外部输入时钟信号;105-编码电路;106-双端口存储器;107-解码电路;108-数据缓存器109-二级地址缓存器;110-二级写使能缓存器;111-控制电路;112-控制电路的输出信号;113-二级地址缓存器的输出信号;114-数据缓存器的输出信号;116-输出选择电路的输出信号;118-数据输出端的输出信号;120-一级地址缓存器;121-一级地址缓存器的输出信号;122-一级写使能缓存器;123-一级写使能缓存器的输出信号;124-二级写使能缓存器的输出信号;125-输出选择电路。126-读写控制电路;127-存储阵列;128-第一端口输入数据信号;129-第一端口输入写使能信号;130-第一端口输入地址信号;131-解码电路输出数据信号。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本发明的保护范围。本发明采用缓存编解码机制,可以在外部提供的需写入数据的位宽不足存储器要求的位宽时,可以实现正确的编解码,进行正常写入读出存储阵列的操作。在本发明的一个示例性实施例中,提供了一种输入位宽可伸缩的编解码存储系统。图2为根据本发明实施例输入位宽可伸缩的编解码存储系统的结构示意图。请参照图2,该编解码存储系统包括:读写控制电路126、双端口存储器106、编码电路105、解码电路107、输出选择电路125、数据缓存器108、一级地址缓存器120和二级地址缓存器109、一级写使能缓存器122和二级写使能缓存器110、控制电路111。请参照图2,不同于现有技术编解码系统中写入时钟信号及写入地址和使能信号输入双端口存储器,而写入数据输入编码器,本实施例编码存储系统中,输入数据信号101先进入双端口存储器106,而后再由双端口存储器输出给编码电路105等。以下对本实施例编解码存储系统的各个组成部分进行详细说明。读写控制电路126将外部输入数据101和外部输入写使能数据102传输至双端口存储器。其中,当n<m时,读写控制电路将n位的外部输入待编码数据101转换为m位的数据信号[m-1:0]128,并在第一端口输出,该n位外部输入待编码数据101在该m位数据128中的位置由用户设定;将n位的外部写使能信号102转换为m位的写使能信号[m-1:0]129。当n=m时,按照普通流程处理,不增加数据的位数,即该读写控制电路将该m位的外部输入待编码数据信号由其第一端口输出,并同时将m位的外部写使能信号由其第二端口输出。需要说明的是,该n位数据101在该m位数据128中的位置可进行存储阵列的上半部分、下半部分等划分,从而实现存储阵列容量的充分利用。双端口存储器106的端口设置与常用的通用嵌入式存储器相一致。其中的双端口包括第一端口和第二端口两个部分。其中第一端口包括:[m+k-1:0]位输入数据端口、[m+k-1:0]位输入写使能端口、[i:0]位输入地址端口、时钟信号端口和[m+k-1]位输出数据端口。其中第二端口包括:[m+k-1:0]位输入数据端口、[m+k-1:0]位输入写使能端口、[i:0]位输入地址端口、时钟端口和[m+k-1]位输出数据端口。其中第一端口和第二端口的每位输入写使能信号与每位输入数据信号一一对应,控制对应地址的读写状态。来自读写控制电路的第一端口输入的数据信号[m-1:0]128与第一端口输入数据端口对应得数据位相连,来自读写控制电路的第一端口输入的写使能信号[m-1:0]129与第一端口写使能信号端口相连,外部输入时钟信号104与第一端口时钟信号端口及第二端口时钟信号端口相连。其中,由第一端口的输入数据端口输入的数据信号[m-1:0]被写入至存储器中存储阵列的预设位置。其中,参数m表示采用本发明编码机制所设定的最大位宽,此数值由用户需求决定,其大小取决于存储阵列的字宽和采用的编解码种类。k代表了校验位的位宽,其大小取决于m的大小和采用的编解码种类。n代表实际输入的待编码数据位宽,其必须满足n≤m这一条件。i代表输入的地址信号位宽,代表存储阵列的地址容量为2i。第二端口写使能信号与控制电路的输出信号112相连,第二端口地址信号与二级地址缓存器的输出113相连,第二端口输入数据与数据缓存器的输出114相连。双端口存储器中存储的内容包括编码后的数据位和校验位两部分内容。双端口存储器第一端口用来进行存储器外部操作的正常读写操作,第二端口将编码完成后包括数据位和校验位的完整数据存储入存储阵列。其中,第二端口不影响存储器的正常工作读写,属于后台机制。本系统支持的编码方式为线性分组码,即其无需时序电路控制,完全通过组合电路实现,数据位和校验位在编码后的数据里是各自独立的。输出方式为同步输出,即在时钟上升沿时,将对应地址(写入或者读出)的数据输出。与常用的嵌入式双端口存储器相同,双端口存储器106也不支持两个端口同时对于同一地址写入数据,在两个端口对于同一地址一写一读的时候存储新的数据,读出刚写入的新数据。编码电路105支持所有线性分组码的编码。实现方式与常用固定位宽的线性编码电路一致。线性编码电路要求编码后输出的数据与输入的待编码数据呈线性关系,因此,编码电路的输入不包含时钟及其相关信号。其输入信号为存储阵列中对应的需要编码的全部数据共计m位,输出信号108为完成编码的数据位和校验位共计m+k位。解码电路107用于根据电路系统的工作状态,对于需要解码的数据进行选择。其解码的数据来源来自第一端口的全部输出数据,即包括[m+k-1:0]位第一端口输出数据118。其输出数据的为[m-1:0]位信号116。其解码机制与编码机制要求匹配,其实现方式与常用固定位宽的线性解码电路一致。线性解码电路要求输出解码后的数据与输入的需解码数据呈线性关系,因此,解码电路的输入不包含时钟及其相关信号。本发明解码电路中包含对于第一端口的数据输出端的输出信号118进行是否解码选择的功能,从而输出[m-1:0]位数据信号116。数据缓存器108的输入时钟来自于外部输入时钟信号104。输入数据来自于编码电路的输出数据信号m+k位信号108,输出数据与[m+k-1:0]位信号114相连。其工作机制与普通缓存器一致,即当时钟上升沿到来时,输出值更新为输入编码后数据的值。一级地址缓存器120的输入时钟来自于信号104。输入数据来自于外部输入的地址信号[i:0]位信号103,输出数据来自于[i:0]位信号121。其工作机制与普通缓存器一致,即当时钟上升沿到来时,输出数据的值更新为输入数据的值。其缓存的数据内容与双端口输入的地址信号一致。二级地址缓存器109的输入时钟来自于信号104。输入数据来自于一级地址缓存器的输出信号[i:0]位信号121,输出数据来自于[i:0]位信号113。其工作机制与普通缓存器一致,即当时钟上升沿到来时,输出数据的值更新为输入数据的值。其缓存的数据内容与需要进行编码后数据重新写入操作的地址信号一致。一级写使能缓存器122的输入时钟来自于信号104。输入数据信号来自于外部输入的写使能信号[n-1:0](n≤m)位信号108,输出信号为1位信号123。当时钟上升沿到来时,根据输入的写使能信号判断输入状态为写状态还是读状态,将输出的值更新为判断得出的写状态或读状态的值,用1比特数据表示,并传送到解码电路或二级写使能缓存器中。二级写使能缓存器110的输入时钟来自于信号104。输入数据来自于一级写使能缓存器122电路的输出信号1位信号123,输出数据是1位写使能信号124。当时钟上升沿到来时,若一级写使能缓存器传输过来的信号是写状态,则输出数据124的值的更新为写状态,若一级写使能缓存器传输过来的信号是读状态,则输出数据124的值的更新为读状态。一控制电路111。其输入的信号包括:外部输入写使能信号[n-1:0](n≤m)位信号102,外部输入地址信号[i:0]位信号103,1位二级写使能缓存器的输出信号124,[i:0]位二级地址缓存输出信号113,输出信号112为[m+k-1:0]位第二端口输入写使能信号。此模块的目的是为了避免双端口同时写入同一地址,发生写入冲突。本发明控制电路实现原理本发明利用控制电路对于第二端口的输入写使能信号进行控制,避免出现从第一端口和第二端口同时对于双端口存储器同一地址写入数据的情况的发生。输出选择电路125的输入的信号包括输入写使能信号102,解码电路输出数据信号131及双端口存储器第一端口的输出数据端口[m+k-1:0],其输出信号为存储器最终的输出数据116。输出选择电路主要目的是实现了存储器输出数据的随出功能,即在写入数据时,输出的数据为写入的数据数值,在读出数据时,输出的数据位为所需要读出的数据数值。图3为根据本发明实施例编解码存储系统中各组成部分的时序关系图。下面结合图3,对本系统电路进行正常读写时的时序关系进行说明。比较图3中如下的信号:外部输入数据信号和第一端口输入数据信号,外部输入地址信号和第一端口输入地址信号,外部输入写使能信号和第一端口输入写使能信号,这三组信号完全一致。即第一端口的输入信号,全部来自外部输入信号。比较图3中如下几对信号:数据缓存器108和第二端口输入数据信号114,二级地址缓存器109和第二端口输入地址信号113,这两组信号完全一致,即第二端口的输入数据信号来自于数据缓存器,第二端口的输入地址信号来自于二级地址缓存器。数据缓存器108、二级地址缓存器109和二级写使能缓存器110所存的数据、地址和写使能信号是相互匹配的。比较图3中如下几对信号:在t1时刻的外部输入数据信号101、外部输入地址信号103和外部输入写使能信号102,经过双端口存储器和缓存器,在两个周期后的t3时刻,将编码完成的数据,通过第二端口写入相应的地址上。比较图3中如下几对信号:第二端口输入写使能信号112和二级写使能缓存器110在各个周期上升沿对应的值,只在t7上升沿时刻不同,控制电路111将二级写使能缓存器110中的写状态变成了第二端口输入写使能信号112中的读状态。这是因为此时第一端口和第二端口的输入地址信号相同,且第一端口和缓存中的写使能信号均为写状态,为了避免双端口同时向双端口同一地址写入数据的情况发生,控制电路将第二端口的写使能状态设置为读状态。以下通过一个一个写数据操作实施例和读数据操作实施例,来进一步详细说明图1所示系统实施例的特点。(一)写数据操作图4为根据本发明实施例编解码存储系统进行写数据操作的流程图。请参照图4,该写数据操作包括:步骤410:当外部输入的写使能状态为写的时候,在t1时刻时钟上升沿到来时,外部输入的数据信号D1、外部输入的地址信号A1和外部输入的写使能信号W1由第一端口写入双端口存储器,因此第一端口的输出在T1周期内恒定维持定值,且其输出数据中数据位的值为D1。外部输入的地址信号A1和输入的写使能信号W1,分别存入一级地址缓存器120和一级写使能缓存器122,其中一级写使能缓存器中存储写状态W。步骤420:在T1周期内,编码电路105对于输出数据118中的[m-1:0]位输出数据中的数据位信号进行编码,得到[m+k-1:0]位完整的编码后数据信号,其中包括数据位和校验位。步骤430:在t2时刻时钟上升沿到来时,编码电路105的输出数据DQ1存入数据缓存器108中,一级地址缓存器120中的地址数据A1存入二级地址缓存器109,一级写使能缓存器122中的写状态W存储二级写使能缓存器110中。步骤440:在t3时刻时钟上升沿到来时,二级地址缓存器109、二级写使能缓存器109和数据缓存器108的A1、W和D1从第二端口写入双端口存储器。为了防止双端口存储器两端同时对于同一存储空间进行写访问操作,需要使用控制电路对于第二端口的读使能信号进行控制。图5为根据本发明实施例编解码存储器中控制电路的控制逻辑示意图。请参照图5,本发明编解码存储系统中控制电路的控制逻辑包括:步骤S510:判断第一端口的输入写使能信号102以及二级写使能缓存器110的状态是否都是写状态,如果为是,执行步骤S520,如果为否,执行步骤S530;步骤S520:第一端口的输入写使能信号102和二级写使能缓存器110均为写状态,则判断判断第一端口的输入地址信号103和二级地址缓存器109的取值是否相同,如果否,执行步骤S530,如果是,执行步骤S540;步骤S530:输出到第二端口写使能输入端的信号112来自二级写使能缓存器110,控制逻辑结束,其中,该处理结果包括以下几种情况:(1)第一端口的输入写使能信号102为写状态,二级写使能缓存器110的状态是读状态;(2)第一端口的输入写使能信号102为读状态,二级写使能缓存器110的状态是写状态;(3)第一端口的输入写使能信号102为读状态,二级写使能缓存器110的状态是读状态;(4)第一端口的输入写使能信号102为写状态,二级写使能缓存器110的状态是写状态,且第一端口的输入地址信号103与二级地址缓存器109中的值不相同。步骤S540,输出至第二端口写使能输入端的信号112置为读状态,控制逻辑结束,其中,该处理结果包括以下一种情况:(1)第一端口的输入写使能信号102为写状态,二级写使能缓存器110的状态是写状态,且第一端口的输入地址信号103与二级地址缓存器109中的相同。(二)读数据操作图6为根据本发明实施例编解码存储系统进行读数据操作的流程图。请参照图6,该读数据操作包括:步骤610:当外部输入的写使能状态为读的时候,在t2时刻时钟上升沿到来时,外部输入的数据信号D2、外部输入的地址信号A2和外部输入的写使能信号R2由第一端口写入双端口存储器,因此第一端口的输出在T1周期内恒定维持定值,且其输出数据中数据位的值为D2。外部输入的地址信号A2和输入的写使能信号R2,分别存入一级地址缓存器120和一级写使能缓存器122,其中一级写使能缓存器中存储写状态R。步骤620:在T2周期内,解码电路107对于输出数据118中的[m+k-1:0]位输出数据中的数据位和校验位信号进行解码,得到[m-1:0]位完整的解码后数据信号,只包括数据位。由于本发明中的数据进行了缓存处理,因此需要输出选择电路模块来决定输出数据的来源。下面结合图7,对本发明的输出选择电路原理进行详细说明:步骤710:判断第一端口的一级写使能缓存器122的状态为写或是读状态,若状态为读,则执行步骤S720,若状态为写,则执行步骤S730;步骤720:将解码电路输出的数据,即由第一端口的输出数据端口输出的数据118进行解码后输出,作为输出数据116;步骤730:将第一端口的输出数据端口输出的数据118中的低数据[m-1:0]位输出,作为输出数据116。至此,已经结合附图对本实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明输入位宽可伸缩的编码/编解码存储系统有了清楚的认识。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:(1)可以删除其中的解码电路,直接外部输出以编码完成后的数据和校验信号,从而利用本系统只进行可伸缩编码部分,实现只编码输出的功能。(2)其中的双端口存储器可以用任意大于两个端口的存储器来代替;综上所述,本发明编解码存储系统采用缓存编解码机制,不仅实现了写入数据的位宽不足存储器要求的位宽时的正确的编解码,并且避免了时钟延迟、提升了存储器的灵活性和设计效率,具有极强的推广应用价值。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1