掌桥专利:专业的专利平台
掌桥专利
首页

一种读取系统及方法

文献发布时间:2024-04-18 20:01:23


一种读取系统及方法

技术领域

本申请涉及半导体技术领域,尤其涉及一种读取系统及方法。

背景技术

动态随机存取存储器(Dynamic Random Access Memory,DRAM)是与CPU直接交换数据的内部存储器,可以随时进行数据的读取和写入。

DRAM拥有数百万个存储单元,当某一个存储单元发生故障时,导致该存储单元的数据无法及时读出,影响读取效率。

发明内容

本申请提供一种读取系统及方法,用以解决存储单元发生故障时导致存储单元无法及时读出的问题。

根据一些实施例,本公开第一方面提供一种读取系统,包括:

寄存单元,用于存储发生故障的存储单元的故障地址;

比较单元,其与所述寄存单元以及控制器连接,用于将所述寄存单元中存储的故障地址与所述控制器发送的读操作地址进行比较,并生成比较结果;

冗余地址产生器,其与所述比较单元连接,用于在所述比较结果指示所述读操作地址和所述故障地址一致时,产生冗余地址,以使所述控制器根据所述冗余地址读取对应的存储单元。

可选的,所述比较单元还用于在所述比较结果指示所述读操作地址和所述故障地址不一致时,输出所述读操作地址,以使所述控制器读取所述读操作地址对应的存储单元。

可选的,所述寄存单元包括多个寄存器,所述比较单元包括多个比较器,所述寄存器与所述比较器一一对应;

每个所述寄存器具体用于存储发生故障的一个存储单元的故障地址;

每个所述比较器具体用于将所述读操作地址与对应的寄存器中存储的故障地址进行比较。

可选的,所述冗余地址产生器具体用于在所述比较结果指示所述读操作地址和所述故障地址一致时,根据生成比较结果的比较器对应的地址产生冗余地址。

可选的,所述冗余地址产生器具体用于在所述比较结果指示所述读操作地址和所述故障地址一致时,产生冗余地址和匹配指令。

可选的,所述系统还包括:

数据选择器,其与所述冗余地址产生器和所述控制器连接,用于在接收到所述冗余地址产生器发送的冗余地址时,将所述所冗余地址发送至所述控制器。

可选的,所述数据选择器具体用于在接收到所述冗余地址产生器发送的冗余地址和匹配指令时,将所述冗余地址发送至所述控制器。

可选的,所述系统还包括:

校验单元,所述校验单元用于对写入每个存储单元的写入数据和从每个存储单元中读取的读取数据进行校验。

可选的,所述校验单元包括第一校验器,所述第一校验器用于对所述写入每个存储单元的写入数据进行第一校验。

可选的,所述系统还包括:

与所述第一校验器连接的第一锁存器,所述第一锁存器用于存储所述写入数据,并在接收到所述第一校验器发送的校验成功信号后,将所述写入数据写入对应的存储单元中。

可选的,所述第一校验器具体用于在对所述写入数据进行第一校验失败后,发出第一警告信号。

可选的,所述校验单元包括第二校验器,所述第二校验器用于对所述从每个存储单元中读取的读取数据进行第二校验。

可选的,所述系统还包括:

与所述第二校验器连接的第二锁存器,所述第二锁存器用于存储所述从每个存储单元中读取的读取数据,并在接收到所述第二校验器发生的校验成功信号后,输出所述读取数据。

可选的,所述第二校验器具体用于在对所述读取数据进行第二校验失败后,发出第二警告信号。

根据一些实施例,本公开第二方面提供一种读取方法,所述方法应用于比较单元,所述比较单元与寄存单元连接,所述比较单元还与冗余地址产生器连接,所述比较单元还与控制器连接,所述方法包括:

将所述寄存单元中存储的故障地址与所述控制器发送的读操作地址进行比较,并生成比较结果;

若所述比较结果指示所述读操作地址和所述故障地址一致时,激发所述冗余地址产生器产生冗余地址,以使所述控制器根据所述冗余地址读取对应的存储单元。

可选的,所述方法还包括:

所述比较结果指示所述读操作地址和所述故障地址不一致时,输出所述读操作地址,以使所述控制器根据所述读操作地址读取对应的存储单元。

本申请提供的读取系统,包括:寄存单元,与寄存单元以及控制器连接的比较单元,以及与比较单元连接的冗余地址产生器。比较单元将寄存单元中存储的发生故障的存储单元的故障地址与控制器发生的读操作地址进行比较,并生成比较结果,并在比较结果指示读操作地址和故障地址一致时,将比较结果发生至冗余地址产生器,使得冗余地址产生器产生冗余地址并将冗余地址发送至控制器,使得控制器根据冗余地址读取对应的存储单元。这样,通过将读操作地址与寄存器中存储的故障地址进行比较,以判断读操作地址对应的存储单元是否可以进行读取操作,并在读操作地址对应的存储单元无法进行读取操作时,利用冗余地址替换读操作地址,使得控制器能够及时获取数据,提高读取效率。

附图说明

图1为本申请一实施例提供的一种读取系统的结构示意图;

图2为本申请一实施例提供的一种读取系统的结构示意图;

图3为本申请一实施例提供的一种读取系统的结构示意图;

图4为本申请一实施例提供的一种读取系统的结构示意图;

图5为本申请一实施例提供的一种读取方法的流程图。

具体实施方式

下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

随机存储器(Random Access Memory,RAM)是与CPU直接交换数据的内部存储器,可以从任意一个指定的存储单元中写入或读取数据,具有数据易失性,即一旦断电所存储的数据随之丢失。随机存储器根据存储单元的工作原理,包括静态随机存储器(StaticRandom-Access Memory,SRAM)和动态随机存储器(Dynamic Random Access Memory,DRAM)。

动态随机存储器是一种半导体存储器,主要是利用电容内存储电荷的多寡来代表一个二进制比特(bit)是1还是0。动态随机存储器包括多个存储单元,一个存储单元即一个二进制比特,一个二进制比特包括一个晶体管和一个电容。动态随机存储器在进行读操作时,位线(biteline,BL)先充电至操作电压的一半,打开晶体管使得位线和电容产生电荷共享的现象,若存储的值为1,则位线的电压会被抬高从而高于操作电压的一半,若存储的值为0,则位线的电压会被拉低从而低于操作电压的一半,而后可以根据位线的电压判断存储的值为1或0。动态随机存储器在进行写操作时,打开晶体管,若要写入1,则会将位线的电压抬高至操作电压使得电容上存储有操作电压,若要写入0,则会将位线的电压降低至零使得电容内部没有电荷。

通常,在对动态随机存储器中的存储单元进行读操作之前,对该存储单元进行读校验,以判断该存储单元是否可以进行读操作。以及在对动态随机存储器中的存储单元进行写操作之前,对该存储单元进行写校验,以判断该存储单元是否可以进行写操作。例如,DDR4-SDRAM(Double Data Rate Synchronous Dynamic Random-access Memory,双倍速率同步动态随机存储器)支持写数据的校验,DDR5-SDRAM支持写数据和读数据的校验。

但是,现有的方法对存储单元进行读校验判断出存储单元无法进行读操作后,没有有效的方法对该存储单元进行有效修复,导致无法及时读取该存储单元,影响读取效率。

为此,本申请提出了一种读取系统,包括:寄存单元,与寄存单元以及控制器连接的比较单元,以及与比较单元连接的冗余地址产生器。寄存单元存储发生故障的存储单元的故障地址,比较单元将寄存单元中存储的发生故障的存储单元的故障地址与控制器发生的读操作地址进行比较,并生成比较结果,并在比较结果指示读操作地址和故障地址一致时,将比较结果发生至冗余地址产生器,使得冗余地址产生器产生冗余地址并将冗余地址发送至控制器,使得控制器根据冗余地址读取对应的存储单元。这样,通过将读操作地址与寄存器中存储的故障地址进行比较,以判断读操作地址对应的存储单元是否可以进行读取操作,并在读操作地址对应的存储单元无法进行读取操作时,利用冗余地址替换读操作地址,使得控制器能够及时获取数据,提高读取效率。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1示出了本申请一实施例提供的一种读取系统的结构示意图。本实施例的系统包括:

寄存单元101,用于存储发生故障的存储单元的故障地址;

比较单元102,其与寄存单元101以及控制器103连接,用于将寄存单元101中存储的故障地址与控制器103发送的读操作地址进行比较,并生成比较结果;

冗余地址产生器104,其与比较单元102连接,用于在比较结果指示读操作地址和故障地址一致时,产生冗余地址,以使控制器103根据冗余地址读取对应的存储单元。

存储器中包括多个存储单元,每一个存储单元有一个地址,该地址包括行地址(word line address)和列地址(bit line address),行地址或列地址是一个整数编码。例如存储器包括128个存储单元,则行地址为0-127,列地址为0-127。

寄存单元(register or fuse,ROF)101用于存储故障地址(damage address),故障地址可以理解为在对存储单元进行读校验时,校验失败的存储单元的地址或行地址,则发生故障的存储单元可以理解为校验失败的存储单元。由于存储器中包括多个存储单元,每一个存储单元均可以进行读校验,则可能有多个校验失败的存储单元,即可能有多个故障地址需要存储在寄存单元101中。因此,寄存单元101可以包括多个寄存器,每一个寄存器存储一个故障地址。每一个寄存器包括多个具有存储功能的触发器,一个触发器用于存储1位二进制代码,存放n位二进制代码的寄存器,需用n个触发器来构成。

比较单元(compare)102与寄存单元101和控制器103连接,用于将控制器(controler)103发送的读操作地址与寄存单元101中存储的故障地址进行比较,并生成比较结果。控制器103在需要读取存储单元时,将该存储单元的地址即读操作地址发送至比较单元102。比较单元102将控制器103发送的读操作地址与寄存单元101中存储的故障地址进行比较。若故障地址为存储单元的地址时,比较单元102将控制器103发生的读操作地址与寄存单元101中存储的故障地址进行比较,若故障地址为存储单元的行地址时,比较单元102将控制器103发生的读操作地址的行地址与寄存单元101中存储的故障地址进行比较。若一致,表明寄存单元101中存储有该读操作地址,即无法对该读操作地址对应的存储单元进行读取操作。若不一致,表明寄存单元101中未存储有该读操作地址,即可以对该读操作地址对应的存储单元进行读取操作。

可以理解的是,若寄存单元101中存储有该读操作地址,表明在将读操作地址与故障地址进行比较之前,对该读操作地址对应的存储单元进行过校验且校验失败。若寄存单元101未存储该读操作地址,表明在将读操作地址与故障地址进行比较之前,对该读操作地址对应的存储单元进行过校验且校验成功,或未对该读操作地址对应的存储单元进行过校验。

本公开的一些实施例中,在将读操作地址与故障地址进行比较之后,若读操作地址与故障地址不一致,还可以对读操作地址对应的存储单元进行读校验,读校验成功后,直接读取读操作地址对应的存储单元,若校验失败,表明此读操作地址对应的存储单元在此次校验之前未进行过校验,可以将读操作地址存储在寄存单元101中。

比较单元102对读操作地址和故障地址进行比较后,生成比较结果。比较结果指示读操作地址和故障地址一致时,比较单元102将比较结果发送至冗余地址产生器104,使得冗余地址产生器104根据比较结果生成冗余地址,使得控制器103读取冗余地址对应的存储单元,从而使得控制器103能够及时获取发生故障的存储单元,提高读取效率。比较结果指示读操作地址和故障地址不一致时,比较单元102输出该读操作地址,使得控制器103读取该读操作地址对应的存储单元。

本公开的一些实施例中,比较结果指示读操作地址和故障地址不一致时,利用检验单元对读操作地址进行读校验,读校验失败后,将冗余地址产生指令发送至冗余地址产生器(redundancy address generator)104,使得冗余地址产生器104根据冗余地址产生指令生成冗余地址。

本公开的一些实施例中,比较单元102可以包括多个比较器,一个比较器与一个寄存器对应,一个寄存器存储有一个故障地址,每一个比较器将控制器103发送的读操作地址与对应的寄存器中的故障地址进行比较,每一个比较器能够生成一个比较结果,比较结果包括读操作地址与故障地址一致,或读操作地址与故障地址不一致。其中一个比较器的比较结果指示读操作地址与故障地址一致时,表明该读操作地址对应的存储单元无法正常进行读取操作,任何一个比较器的比较结果均指示读操作地址与故障地址不一致时,表明该读操作地址对应的存储单元可以进行读取操作。

例如,参考图2所示,比较单元102包括第一比较器121、第二比较器122、第三比较器123、第四比较器124、第五比较器125以及第六比较器126,寄存单元101包括第一寄存器111、第二寄存器112、第三寄存器113、第四寄存器114、第五寄存器115以及第六寄存器116,第一寄存器111、第二寄存器112、第三寄存器113、第四寄存器114、第五寄存器115以及第六寄存器116中分别存储有一个故障地址。第一比较器121和第一寄存器111对应,第二比较器122和第二寄存器112对应,第三比较器123和第三寄存器113对应,第四比较器124和第四寄存器114对应,第五比较器125和第五寄存器115对应,第六比较器126和第六寄存器116对应。第一比较器121用于将读操作地址与第一寄存器111中存储的故障地址进行比较,生成第一比较结果。第二比较器122用于将读操作地址与第二寄存器112中存储的故障地址进行比较,生成第二比较结果。第三比较器123用于将读操作地址与第三寄存器113中存储的故障地址进行比较,生成第三比较结果。第四比较器124用于将读操作地址与第四寄存器114中存储的故障地址进行比较,生成第四比较结果。第五比较器125用于将读操作地址与第五寄存器115中存储的故障地址进行比较,生成第五比较结果。第六比较器126用于将读操作地址与第六寄存器116中存储的故障地址进行比较,生成第六比较结果。若六个比较结果中存在一个比较结果指示读操作地址与故障地址一致,表明该读操作地址对应的存储单元无法正常进行读取操作。六个比较结果均指示读操作地址与故障地址不一致时,表明该读操作地址对应的存储单元可以进行读取操作。

冗余地址产生器104与比较单元102连接,用于在比较结果指示读操作地址和故障地址一致时,产生冗余地址,以使控制器103根据冗余地址读取对应的存储单元。冗余地址产生器104还可以用于在接收到校验单元发送冗余地址产生指令后产生冗余地址。

本公开的一些实施例中,冗余地址产生器104可以在接收到比较结果后,根据产生比较结果的比较器的位置生成冗余地址。每个比较器对应一个地址,每一个比较器生成一个比较结果,可以将比较结果显示读操作地址和故障地址一致的比较器对应的地址作为冗余地址。

本公开的一些实施例中,冗余地址产生器104在生成冗余地址的同时还可以生成匹配(hit)指令,并将冗余地址和匹配指令发送至控制器103,控制器103在接收到匹配指令以及冗余地址后,读取冗余地址对应的存储单元。控制器103收到匹配指令以及冗余地址后才可以读取冗余地址对应的存储单元,保证冗余地址的准确性,进而保证数据读取的准确性。

本公开的一些实施例中,还包括:与冗余地址产生器104和控制器103连接的数据选择器(multiplexer,MUX)105,参考图3所示,数据选择器105用于在接收到冗余地址产生器104发送的冗余地址时,将冗余地址发送至控制器103。数据选择器105是具有选择功能的器件,用于信号的切换,例如可以在激活(active)、预充电(precharge)、读取(read)、写入(write)等任意一个操作中,将操作地址或冗余地址发送至控制器103,操作地址是指待激活存储单元的地址,待预充电存储单元的地址,待读取存储单元的地址或待写入存储单元的地址,冗余地址是指操作地址的替换地址。当读操作地址为故障地址时,数据选择器105可以自动将冗余地址发生至控制器103,以提高操作效率。数据选择器105还可以在接收到冗余地址以及匹配指令后,再将冗余地址发送至控制器103,保证读操作地址与冗余地址的准确性。

读取系统还可以包括校验单元,利用校验单元对写入每个存储单元的写入数据以及从每个存储单元中读取的读取数据进行校验。对写入每个存储单元的写入数据进行校验,保证写入存储单元的数据的可靠性和准确性,对从每个存储单元中读取的读取数据进行校验,保证读取数据的可靠性和准确性。

本公开的一些实施例中,校验单元包括第一校验器201(check1),参考图4所示,第一校验器201用于对写入每个存储单元的写入数据进行第一校验,以保证写入每个存储单元的写入数据的准确性和可靠性。例如可以通过奇偶校验(Parity Check)对写入每个存储单元的写入数据进行校验。

奇偶校验是指在每一个字节之外又增加了一位作为校验位(parity)。在某字节中存储数据之后,在其8个位上存储的数据是固定的,由于位只有两种状态,假设存储的数据用位标示为1、1、1、0、0、1、0、1,将每个位相加1+1+1+0+0+1+0+1=5,结果为奇数。对于偶校验,校验位定义为1,对于奇校验,校验位定义为0。

例如需要传输11001110,数据中包括5个1,奇校验位为0,同时将110011100传输给接收方,接收方收到数据后再一次计算奇偶性,110011100中仍然包括5个1,接收方计算出的奇校验位还是0,与发送方一致,表示此次数据传输中未发生错误。例如需要传输11001110,数据中包括5个1,偶校验位为1,同时将110011100传输给接收方,接收方收到数据后再一次计算奇偶性,110011100中仍然包括5个1,接收方计算出的偶校验位还是1,与发送方一致,表示此次数据传输中未发生错误。例如需要传输11101110,数据中包括6个1,奇校验位为1,同时将11101110传输给接收方,接收方收到数据后再一次计算奇偶性,11101110中仍然包括6个1,接收方计算出的奇校验位为1,与发送方一致,表示此次数据传输中未发生错误。例如需要传输11101110,数据中包括6个1,偶校验位为0,同时将11101110传输给接收方,接收方收到数据后再一次计算奇偶性,11101110中仍然包括6个1,接收方计算出的偶校验位为0,与发送方一致,表示此次数据传输中未发生错误。

本公开的另一些实施例中,可以利用与第一校验器201连接的第一锁存器202(data latch1)存储写入数据,第一锁存器202对写入数据起到中转站的作用,即在将写入数据写入存储单元之前,先暂时将写入数据存储在第一锁存器202中,第一校验器201对第一锁存器202中的写入数据进行第一校验,若第一校验成功,向第一锁存器202发送第一校验成功信号,使得第一锁存器202将写入数据写入存储单元中,若第一校验失败,发出第一警告信号,以使得第一锁存器202不会将写入数据写入存储单元中。

本公开的一些实施例中,校验单元包括第二校验器203(check2),参考图4所示,第二校验器203用于对每个存储单元中读取的读取数据进行第二校验,以保证从每个存储单元中读取的读取数据的准确性和可靠性。第二校验器在对读取数据进行第二校验时,若第二校验成功,则正常读取存储单元中的读取数据,若第二校验失败,则将第二校验失败的存储单元的地址发送至寄存单元101中,使得寄存单元101存储失败的存储单元的地址。

本公开的一些实施例中,在对存储单元进行第二校验且第二校验失败后,需要将故障地址存储在寄存器中。存储方法可以为,检测寄存器中是否存储有故障地址,若没有,则直接将故障地址存储在该寄存器中。若有,则继续检测下一个寄存器中是否存储有故障地址,直至检测到未存储有故障地址的寄存器,将故障地址存储在该寄存器中。例如,寄存单元101包括多个寄存器时,当某一个存储单元第二校验失败后,可以同时检测各个寄存器是否存储有故障地址,将该存储单元的地址存储在一个未存储故障地址的寄存器中;也可以依次检测各个寄存器,当检测到未存储有故障地址的寄存器时,将故障地址存储在该寄存器中。

本公开的另一些实施例中,可以利用与第二校验器203连接的第二锁存器(datalatch2)204存储从每个存储单元中读取的读取数据,第二锁存器204对读取数据起到中转站的作用,即正常读取数据之前,先暂时将读取存储在第二锁存器204中,第二校验器203对第二锁存器204中的读取进行第二校验后,若第二校验成功,则正常读取存储单元的读取数据,若第二校验失败,则发出第二警告信号,使得无法从第二锁存器204中读取数据,同时将校验失败的存储单元的地址发送至寄存单元101中,使得寄存单元101存储校验失败的存储单元的地址,即故障地址。

以上对本申请实施例提供的读取系统进行了详细的描述,通过将读操作地址与寄存器中存储的故障地址进行比较,以判断读操作地址对应的存储单元是否可以进行读取操作,并在读操作地址对应的存储单元无法进行读取操作时,利用冗余地址替换读操作地址,使得控制器能够及时获取数据,提高读取效率。

本申请一实施例还提供一种读取方法,参考图5所示,图5示出了本申请一实施例提供的一种读取方法的流程图。本实施例的方法用于比较单元,比较单元与寄存单元连接,比较单元还与冗余地址产生器连接,比较单元还与控制器连接,可以包括如下步骤:

S101、将寄存单元中存储的故障地址与控制器发送的读操作地址进行比较,并生成比较结果。

比较单元在接收到控制器发送的读操作地址后,将读操作地址与寄存单元中存储的故障地址进行比较,并生成比较结果。例如,比较单元可以包括多个比较器,寄存单元包括多个寄存器,每一个寄存器与一个比较器对应,每一个寄存器中存储一个故障地址,每一个比较器可以将读操作地址与对应的寄存器中的故障地址进行比较,每一个比较器可以生成一个比较结果。

比较结果指示读操作地址和故障地址一致时,执行步骤S102,比较结果指示读操作地址和故障地址不一致时,执行步骤S103。

S102、激发冗余地址产生器产生冗余地址,以使控制器根据所述冗余地址读取对应的存储单元。

S103、输出读操作地址,使得控制器根据读操作地址读取对应的存储单元。

本申请提供的读取方法,通过将读操作地址与寄存器中存储的故障地址进行比较,以判断读操作地址对应的存储单元是否可以进行读取操作,并在读操作地址对应的存储单元无法进行读取操作时,利用冗余地址替换读操作地址,使得控制器能够及时获取数据,提高读取效率。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

技术分类

06120116551637