多通道与非型快闪并行存储控制器的制作方法

文档序号:6444335阅读:138来源:国知局
专利名称:多通道与非型快闪并行存储控制器的制作方法
技术领域
本发明涉及一种存储控制器,尤其是一种多通道与非(NAND)型快闪并行存储控制器。
背景技术
随着网络、计算、存储等技术的飞速发展,数据呈现出几何级数爆炸式增长,数据密集型应用已经广泛地出现在社会生活之中,例如hcebook平台。这类应用需要花费大量的时间来进行数据的I/O传输,特别是针对海量数据中小块数据的随机访问。传统的数据中心使用机械硬盘作为其存储介质,但是机械硬盘的高功耗、高延迟和低带宽已经不能适应数据密集型应用的需求。另一方面,相比于机械硬盘,与非型快闪存储器拥有更低的功耗、更好的抗震性,特别是由于与非型快闪不存在寻道时间和旋转时间,对于小数据的随机访问比机械硬盘要快很多。同时,随着与非型快闪生产工艺的进步,其单位密度不断增加, 成本也大幅下降。目前,与非型快闪正逐步取代机械硬盘成为构建数据中心的存储介质,并且这种趋势已成为未来不可阻挡的潮流。与非型快闪存储器已经广泛应用于海量数据存储,对与非型快闪存储器的访问需要严格按照其特殊操作时序才能对存储体进行访存,且与非型快闪存储器的地址、数据和命令复用同一个I/O接口,因此需要特殊的时序控制逻辑。另外,与非型快闪存储器还存在位交换现象,因此,需要错误检测和纠错控制逻辑以提高其可靠性,使与非型快闪存储器本身具有的高带宽低访存延迟等优点得以更好地发挥。当前,数据密集型计算重点强调高I/ 0带宽,但是单块的与非型快闪存储器的最高带宽在40MB/S左右。为了缓解I/O所带来的系统性能瓶颈,目前的国内外相关工作主要通过设计与非型快闪存储器的并行机制来解决这一问题。主要包含两类控制器结构1)芯片级的交叉存取控制器由于与非型快闪存储器的写页操作具有很长的等待时间,而在该段等待时间内,总线实际处于空闲状态。因此,可以有效利用这段时间,使得其他存储器能够在等待时间内进行操作,从而实现各块与非型快闪存储器之间的交叉存取。Jin Hyuk ^on等人在文章“Chameleon :A High Performance Flash/FRAM Hybrid Solid State Disk Architecture"中指出,通过实现同一与非型快闪总线上多块与非型快闪存储器之间的交叉写操作从而提高总线带宽的有效利用率。但是这种控制器受限于与非型快闪总线的带宽,其总带宽不可能超过与非型快闪总线带宽。2)总线级的交叉存取控制器针对单路总线的限制,设计人员开始考虑单通道-多路总线情况下的与非型快闪并行机制。Y. J. Seong 等人在文章"Hydra :a block-mapped parallel flash memorysolid-state disk architecture"中将芯片级和总线级的交叉存取技术相结合, 进一步提高了聚合带宽。其主要思想是从不同总线上选取一块与非型快闪存储器,从而组成一块“超级芯片”,对于一块芯片的操作扩展为对一块“超级芯片”的操作,实现总线级的CN 102541678 A
交叉存取。另一方面,利用芯片级交叉存取的技术,实现“超级芯片”间的并行。但是这种控制器对于随机的操作流效率较低,不能适应数据密集型随机访问较多的特点。这两种控制器虽然针对与非型快闪存储器采取了并行访存机制,但是都忽略了数据密集型计算对于带宽的高要求。芯片级交叉存取控制器受限于与非型快闪总线的带宽, 只能提高总线带宽的利用率;总线级交叉存取控制器的聚合带宽仍然受限于单通道访问, 通用性较差,对于随机访问并不适用。因此,迫切需要一种具有高聚合带宽的与非型快闪存储控制器。

发明内容
本发明要解决的技术问题是针对现有与非型快闪存储控制器不能满足数据密集型计算的高带宽要求,提出了一种多通道与非型快闪并行存储控制器。这种控制器适用于多种工作负载,为主机存储提供更高的聚合带宽,适应数据密集型计算的需求;同时针对与非型快闪访问时序特性,在保证对与非型快闪正常访问的同时,提高其数据读写的可靠性。本发明安装在与非型快闪存储器芯片和主机的传输转换层之间,本发明根据传输转换层发来的输入通道请求,建立起主机端到与非型快闪存储器芯片(即目标芯片,简称芯片)之间的数据传输路径。本发明由一个交换结构模块和η个底层存储控制器组成,η是目标芯片的块数。交换结构模块与η个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求-包括请求的命令、地址、数据以及控制信号,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器。η个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片,以完成读页、写页和块擦除等操作请求。交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成。请求队列是个能存放待执行请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连。请求队列接收来自传输转换层的输入通道请求,输入通道请求最多为η路,将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号, 在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁。传输仲裁部件是一个仲裁电路,它对从主机端来的输入通道请求是否执行进行仲裁,与请求队列、交叉开关相连。传输仲裁部件,接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关。传输仲裁部件由2个寄存器组和仲裁逻辑电路组成。第一寄存器组与仲裁逻辑电路和交叉开关相连,由η个1位的寄存器组成,保存从交叉开关接收的η路输入通道的工作状态。第二寄存器组与仲裁逻辑电路和交叉开关相连,也由η个1位的寄存器组成,保存通过交叉开关读出的η个底层存储控制器的忙闲状态。仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和传输队列相连,接收第一寄存器组和第二寄存器组的内容。仲裁逻辑电路从请求队列读取输入通道请求m(l SmSn)所指的目标芯片地址,若该地址是j (1 ^ j ^ η),则查看第二寄存器组中寄存器j中的内容如果寄存器j为0,表示底层存储控制器j处于空闲状态,请求m可以被执行,仲裁逻辑电路向请求队列发送请求 m出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立输入通道请求m与底层存储控制器j之间的数据传输路径。交叉开关是nXn的交叉开关,与传输转换层、传输仲裁部件、请求队列、η个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中。交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径。在建立好数据传输路径之后,交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器(若请求队列接收的输入通道请求m所指的目标芯片地址是j,则将输入通道请求m发送给底层存储控制器 j),交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径。底层存储控制器由主控逻辑模块和ECC模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验。主控逻辑模块是产生符合芯片时序要求的控制信号的功能部件,与交换结构模块、ECC模块相连,从交换结构模块接收待执行的输入通道请求,遵循芯片基本操作的逻辑时序要求,产生符合芯片时序要求的地址使能、命令使能、片使能、读使能以及写使能控制信号,将这些控制信号和从交换结构模块来的数据发送给ECC模块。主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成。数据缓冲器与主控制器相连,大小与目标芯片的页大小相同,用以存储主机待写入的数据。第三寄存器组与主控制器相连,由命令寄存器、地址寄存器和状态寄存器组成,分别存放本次请求的命令操作码、目标地址和当前操作的完成状态,命令、地址的发送都必须提供对应寄存器的地址,以对命令和地址进行识别。主控制器与交换结构模块的交叉开关、数据缓冲器、第三寄存器组和ECC模块相连,从交叉开关接收输入通道请求的命令、地址和数据,将命令、地址存入第三寄存器组,将主机待写入数据存入数据缓冲器,产生控制信号并发送给ECC模块。当从交叉开关得到的命令是读页命令时,主控制器将从ECC模块返回的数据发送给数据缓冲器;当从交叉开关得到的命令是写页命令时,主控制器先将数据写入数据缓冲器,而后将数据顺序写入芯片中;当读页操作时,主控制器将从目标芯片读出的数据先存入数据缓冲器,再通过总线将数据顺序读出,如果主控制器从ECC模块接收的错误指示信号有效,表明读出数据发生错误, 此时主控制器从ECC模块接收错误地址信息,根据此信息对数据缓冲器中的数据进行纠

T曰O主控制器是一个能产生符合芯片时序要求的控制信号的状态机,它由读页操作、 写页操作和块擦除操作三个子状态机组成。三个子状态机之间相互独立,互不窜扰,在同一时间只有一个子状态机工作。主控制器在上电复位后处于初始状态,从交换结构模块的交叉开关接收命令信号,若命令信号是读页命令(对与非型闪存而言,读页命令是OOh和 30h),主控制器由初始状态进入读页操作子状态机,直至读页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是写页命令(对与非型闪存而言,写页命令是80h和IOh),主控制器由初始状态进入写页操作子状态机,直至写页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是块擦除命令(对与非型闪存而言,读块擦除命令是 60h和dOh),主控制器由初始状态进入块擦除操作子状态机,直至块擦除操作子状态机执行完毕,主控制器再次进入初始状态。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为读页命令时,主控制器进入读页操作子状态机。读页操作子状态机由9个状态组成,“00000”状态表示主控制器处于空闲状态;“00001”状态表示发出读页命令操作码;“00010”状态表示发出读页操作的目标页地址;“00011”状态表示等待数据读出;“00100”状态表示将数据从芯片中读出,同时产生ECC校验码;“00101”状态表示从芯片中读取原ECC校验码;“00110”状态表示检测读出数据是否出错;“00111”状态表示数据出错时产生错误地址;“01000”状态表示对数据进行纠错。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为读页命令时,转入状态“00001”。主控制器处于状态“00001”时,主控制器产生符合目标芯片时序逻辑的控制信号,包括片选使能、读使能、写使能、地址使能以及命令使能,将其中的片选使能、写使能和命令使能置为有效,并将读页命令操作码发送给目标芯片,随后转入状态“00010”。主控制器处于状态“00010”时,置片选使能、写使能和地址使能有效,将目标页发送给目标芯片,转入状态“00011 ”。主控制器处于状态“00011 ” 时,主控制器从目标芯片接收的忙闲状态信号为忙,表示目标芯片正在把目标页中的数据读往其内部的数据寄存器,直到芯片将忙闲状态信号变为闲,表明数据已经准备完毕,转入状态“00100”。主控制器处于状态“00100”时,读使能置为有效,将数据从目标芯片的内部数据寄存器中依次读到数据缓冲器,同时,将数据提供给ECC模块,由ECC模块产生新的 ECC校验码,而后转入状态“00101”。主控制器处于状态“00101”时,将存储在目标芯片的原ECC校验码读出,转入状态“00110”。主控制器处于状态“00110”时,发送比较使能信号给ECC模块,ECC模块对新旧两个校验码进行比较,当从ECC模块接收的错误指示信号无效时,表示数据没有出错,则主控制器转入空闲状态“00000”,读页操作执行完毕;否则,转入状态“00111”。主控制器处于状态“00111”时,从ECC模块接收数据发生错误的页内地址, 转入“01000”。主控制器处于状态“01000”时,主控制器根据ECC模块发送的错误地址,对数据缓冲器中的数据进行纠错,随后转入空闲状态“00000”,读页操作执行完毕。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为写页命令时,主控制器进入写页操作子状态机。写页操作子状态机共有7个状态,“00000”状态表示主控制器处于空闲状态;“01001”状态表示将数据写入主控逻辑模块的数据缓冲器中;“01010”状态表示发送写页命令的操作码;“01011”状态表示发送写页的目标页地址; “01100”状态表示将数据发送给芯片,同时产生相应的ECC校验码;“01101”状态表示将ECC 校验码发送给芯片;“01110”状态表示等待数据的写入芯片介质。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为写页命令时,转入状态 “01001”。主控制器处于状态“01001”时,主控制器接收来自交换结构模块的数据,并将其依次写入数据缓冲器中暂存,当数据写完后,转向状态“01010”。主控制器处于状态“01010” 时,将目标芯片的片选使能、写使能和命令使能置为有效,将写页命令的操作码发送给目标芯片,随后转向状态“01011”。主控制器处于状态“01011”时,将片选使能、写使能和地址使能置为有效,发送目标页地址给目标芯片,转向状态“01100”。主控制器处于状态“01100”时,将片选使能、写使能置为有效,其他的控制信号均无效,将数据缓冲器中的数据发送给 ECC模块,随后转向状态“01101”。主控制器处于状态“01101”时,等待ECC模块将ECC校验码发送给芯片,当从ECC模块接收的ECC完成信号有效时,转向状态“01110”。主控制器处于状态“01110”时,此时由目标芯片所反馈的忙闲状态信号为忙,表明数据正从芯片内部的数据寄存器中写入芯片介质,主控制器处于等待状态,直到芯片忙闲状态信号为闲,表明数据已经全部写入到目标芯片,随后转向状态“00000”,写页操作执行完毕。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为块擦除命令时,主控制器进入块擦除操作子状态机。块擦除操作子状态机由4个状态组成,“00000” 状态表示主控制器处于空闲状态;“01111”状态表示发出块擦除命令操作码;“10000”状态表示发出块擦除操作的目标页地址;“10001”状态表示等待块擦除操作完成。在上电复位以后,主控制器处于状态“00000”,若发现从交换结构模块的交叉开关接收到块擦除请求,转入状态“01111”。主控制器处于状态“01111”时,将芯片的片选使能、写使能和命令使能置为有效,将块擦除命令发送给目标芯片,随后转向状态“ 10000 ”。主控制器处于状态 “10000”时,将片选使能、写使能和地址使能置为有效,发送目标块地址给目标芯片,转向状态“10001”。主控制器处于状态“10001”时,此时由芯片所反馈的忙状态信号为忙,表明正在执行芯片块擦除操作,直到芯片忙状态信号恢复,随后转向状态“00000”,块擦除操作执行完毕。ECC模块与主控逻辑模块和目标芯片相连,ECC模块从主控逻辑模块接收控制信号和数据,将控制信号和数据发送给目标芯片。ECC模块对要写入目标芯片和从目标芯片读出的数据进行ECC校验。ECC模块若从主控逻辑模块接收到的命令是写页操作,则产生ECC 校验码发送给目标芯片;ECC模块若从主控逻辑模块接收到的命令是读页操作,则将从芯片中读出的数据发送给主控逻辑模块,并进行ECC校验,将校验结果发送给主控逻辑模块。ECC模块由ECC主控逻辑、ECC校验码生成器和错误地址产生器三部分组成。ECC校验码生成器是一个产生ECC校验码的功能电路,与ECC主控逻辑和错误地址产生器相连,接收来自ECC主控逻辑的数据和使能信号,产生ECC校验码,并将产生的校验码输出到ECC主控逻辑和错误地址产生器。ECC校验码生成器由第四寄存器组和ECC校验码生成电路组成。第四寄存器组与ECC校验码生成电路组成相连,由4个寄存器组成,用以存放从ECC校验码生成电路组成来的ECC校验码。ECC校验码生成电路是用异或门构成的逻辑电路,与第四寄存器组、ECC主控逻辑、错误地址产生器相连,在接收到来自ECC主控逻辑的ECC使能信号之后,逻辑电路在每个时钟周期对从ECC主控逻辑接收来的数据进行异或操作,将结果作为ECC校验码写入到第四寄存器组中;当逻辑电路接收到全部的一页数据之后,将第四寄存器组中的ECC校验码读出并发送给ECC主控逻辑和错误地址产生器。错误地址产生器是一个产生错误地址的功能电路,与ECC主控逻辑和ECC校验码生成器相连。错误地址产生器由原ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器以及检错逻辑组成。原ECC校验码寄存器与ECC主控逻辑和检错逻辑相连,从ECC主控逻辑中接收从芯片中读出的原ECC校验码,并暂存起来。检错逻辑与ECC校验码生成器、原 ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器和ECC主控逻辑相连,一方面从原ECC校验码寄存器读出原ECC校验码,一方面从ECC校验码生成器接收新生成的ECC校验码,对两个校验码的每一位依次进行异或对比,将比较结果存入比较结果寄存器中,再将比较结果寄存器的相邻位进行异或操作,将所得结果按位异或产生错误指示信号,发送给ECC 主控逻辑;同时检错逻辑将比较结果寄存器中的奇数位取出作为错误地址,存入错误地址信息寄存器中,并发送给ECC主控逻辑。ECC主控逻辑与主控逻辑模块的主控制器、ECC校验码生成器、错误地址产生器和目标芯片相连,从主控制器接收控制信号和数据并发送给目标芯片,同时产生ECC使能信号,连同从主控制器接收的数据发送给ECC校验码生成器,ECC主控逻辑还从目标芯片读出原ECC校验码并发送给错误地址产生器。ECC主控逻辑是一个嵌入ECC功能的状态机,由 ECC读页操作子状态机和ECC写页操作子状态机构成,这两个子状态机相互独立。ECC主控逻辑在上电复位后处于初始状态,当ECC主控逻辑从主控逻辑模块接受的命令信号是读页命令时,ECC主控逻辑进入ECC读页操作子状态机,直至ECC读页操作子状态机执行完毕, ECC主控逻辑再次进入初始状态;在初始状态下,当ECC主控逻辑从主控逻辑模块接受的命令信号是写页命令时,ECC主控逻辑进入ECC写页操作子状态机,直至ECC写页操作子状态机执行完毕,ECC主控逻辑再次进入初始状态。ECC主控逻辑在初始状态下,当从交换结构模块的交叉开关接收命令信号为读页命令时,ECC主控逻辑进入ECC读页操作子状态机。ECC读页操作子状态机由6个状态组成,“0000”状态表示ECC主控逻辑处于初始状态;“0001”状态表示发出控制信号给目标芯片等待数据读出;“0010”表示将数据从目标芯片中读出,同时产生ECC校验码;“0011”状态表示从芯片中读取原ECC校验码;“0100”状态表示检测读出数据是否出错;“0101”状态表示从错误地址产生器中读出错误地址。在上电复位以后,ECC主控逻辑处于状态“0000”, 若发现从主控逻辑模块的主控制器接收到的锁存信号、片选信号、读使能均有效以及数据输入为读页操作的第一个命令时,转入状态“0001”。ECC主控逻辑处于状态“0001”时,将从主控制器接收的控制信号和数据转发给目标芯片,发出控制信号将读页命令和目标页的地址写入芯片,等待数据从目标芯片中读出,当来自于目标芯片的忙闲状态信号为闲时转入状态“0010”。ECC主控逻辑处于状态“0010”时,将从主控制器接收的读控制信号发送给芯片,读出一页数据,并将数据发送给主控制器和ECC校验码生成器;ECC主控逻辑产生ECC 校验码生成器的控制信号使ECC校验码生成器对ECC码进行更新,转入状态“0011 ”。ECC主控逻辑处于状态“0011”时,产生控制信号并发送给目标芯片,从目标芯片中读出原ECC校验码并发送给ECC错误地址生成模块以生成错误地址,转入状态“0100”。ECC主控逻辑处于状态“0100”时,等待ECC错误地址产生器进行ECC码的比较,以确定有无错误发生,如果发生数据错误,ECC主控逻辑从错误地址产生器接收错误指示信号,将错误指示信号反馈回主控制器,而后转入状态“0101”如果没有发生错误,转入初始状态“0000”。ECC主控逻辑处于状态“0101”时,从错误地址产生器中读出错误地址信息,发送给主控制器,等待其进行纠错,随后转入初始状态“0000”。ECC主控逻辑在初始状态下,当从交换结构模块的交叉开关接收命令信号为写页命令时,ECC主控逻辑进入ECC写页操作子状态机。ECC写页操作子状态机共有5个状态, “0000”状态表示ECC主控逻辑处于初始状态;“0110”状态表示将地址、命令写入芯片,做好数据写入的准备;“0111”状态表示将数据发送给目标芯片;“1000”状态表示将ECC校验码发送给目标芯片;“1001”状态表示将写页操作的结束命令写入目标芯片。在上电复位以后,ECC主控逻辑处于状态“0000”,当从主控制器接收的锁存信号、片选信号、写使能均有效并且数据输入为写页的第一个命令时,转入状态“0110”。ECC主控逻辑处于状态“0110” 时,将从主控制器接收的控制和数据信号转发给目标芯片,发出控制信号将写页操作的第一个命令和目标页地址写入芯片,转向状态“0111”。ECC主控逻辑处于状态“0111”时,将从主控制器中接收的写控制信号和数据发给目标芯片,在写入数据的同时,将数据发送到ECC 校验码生成器,使ECC校验码生成器对ECC校验码进行更新,随后转向状态“ 1000”。ECC主控逻辑处于状态“1000”时,产生控制信号并发送到目标芯片,向芯片写入ECC校验码,转向状态“1001”。ECC主控逻辑处于状态“1001”时,产生控制信号,将写页操作的结束命令写入芯片随后转向状态“0000”。与现有技术相比,采用本发明可以达到以下技术效果(1)本发明通过交换结构模块实现了多通道与非型快闪芯片的并行访问机制,完成多通道对多芯片总线的访问请求,解决存在的访问冲突,从而有效地提高系统的聚合带宽,适应数据密集型计算对于带宽的高要求。(2)设计的底层存储控制器一方面能够产生符合与非型快闪芯片时序要求的控制信号,保证与非型快闪芯片访问请求的正确执行;一方面加入了 ECC模块,实现了 ECC检错纠错功能,提高了数据读写的可靠性。


图1是本发明的总体结构框图。图2是本发明底层存储控制器结构框图。图3是本发明主控制器的读页操作状态机结构图。图4是本发明主控制器的写页操作状态机结构图。图5是本发明主控制器的块擦除操作状态机结构图。图6是本发明ECC主控逻辑的读页操作状态机结构图。图7是本发明ECC主控逻辑的写页操作状态机结构图。
具体实施例方式图1是本发明的总体结构框图。本发明安装在与非型快闪存储器芯片和主机的传输转换层之间,本发明根据传输转换层发来的输入通道请求,建立起主机端到与非型快闪存储器芯片之间的数据传输路径。本发明由一个交换结构模块和η个底层存储控制器组成,η是目标芯片的块数。交换结构模块与η个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器。η个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片,以完成读页、写页和块擦除等操作请求。交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成。请求队列是个能存放η个请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连。请求队列接收来自传输转换层的输入通道请求(最多为η路),将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号,在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁。传输仲裁部件是一个仲裁电路,它对从主机端来的输入通道请求是否执行进行仲裁,与请求队列、交叉开关相连。传输仲裁部件,接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关。传输仲裁部件由2个寄存器组和仲裁逻辑电路组成。第一寄存器组与仲裁逻辑电路和交叉开关相连,由η个1位的寄存器组成,保存从交叉开关接收的η路输入通道的工作状态。第二寄存器组与仲裁逻辑电路和交叉开关相连,也由η个1位的寄存器组成,保存通过交叉开关读出的η个底层存储控制器的忙闲状态。仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和传输队列相连,接收第一寄存器组和第二寄存器组的内容。仲裁逻辑电路从请求队列读取输入通道请求m(l SmSn)所指的目标芯片地址,若该地址是j(l ^ j ^ η),则查看第二寄存器组中寄存器j中的内容如果寄存器j为0,表示底层存储控制器j处于空闲状态,请求m可以被执行,仲裁逻辑电路向请求队列发送请求 m出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立输入通道请求m与底层存储控制器j之间的数据传输路径。交叉开关是nXn的交叉开关,与传输转换层、传输仲裁部件、请求队列、η个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中。交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径。在建立好数据传输路径之后,交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器,交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径。底层存储控制器由主控逻辑模块和ECC模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验。图2是本发明底层存储控制器结构框图。底层存储控制器由主控逻辑模块和ECC 模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验。主控逻辑模块是产生符合芯片时序要求的控制信号的功能部件,与交换结构模块、ECC模块相连,从交换结构模块接收待执行的输入通道请求,遵循芯片基本操作的逻辑时序要求,产生符合芯片时序要求的地址使能、命令使能、片使能、读使能以及写使能控制信号,将这些控制信号和从交换结构模块来的数据发送给ECC模块。主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成。数据缓冲器与主控制器相连,大小与目标芯片的页大小相同,用以存储主机待写入的数据。第三寄存器组与主控制器相连,由命令寄存器、地址寄存器和状态寄存器组成,分别存放本次请求的命令操作码、目标地址和当前操作的完成状态,命令、地址的发送都必须提供对应寄存器的地址,以对命令和地址进行识别。主控制器与交换结构模块的交叉开关、数据缓冲器、第三寄存器组和ECC模块相连,从交叉开关接收输入通道请求的命令、地址和数据,将命令、地址存入第三寄存器组,将主机待写入数据存入数据缓冲器,产生控制信号并发送给ECC模块。当从交叉开关得到的命令是读页命令时,主控制器将从ECC模块返回的数据发送给数据缓冲器;当从交叉开关得到的命令是写页命令时,主控制器先将数据写入数据缓冲器,而后将数据顺序写入芯片中;当读页操作时,主控制器将从目标芯片读出的数据先存入数据缓冲器,再通过总线将数据顺序读出,如果主控制器从ECC模块接收的错误指示信号有效,表明读出数据发生错误, 此时主控制器从ECC模块接收错误地址信息,根据此信息对数据缓冲器中的数据进行纠

T曰O主控制器是一个能产生符合芯片时序要求的控制信号的状态机,它由读页操作、 写页操作和块擦除操作三个子状态机组成。三个子状态机之间相互独立,互不窜扰,在同一时间只有一个子状态机工作。主控制器上电复位后处于初始状态,从交换结构模块的交叉开关接收命令信号,若命令信号是读页命令,主控制器由初始状态进入读页操作子状态机, 直至读页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是写页命令,主控制器由初始状态进入写页操作子状态机,直至写页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是块擦除命令,主控制器由初始状态进入块擦除操作子状态机,直至块擦除操作子状态机执行完毕,主控制器再次进入初始状态。ECC模块由ECC主控逻辑、ECC校验码生成器和错误地址产生器三部分组成。ECC校验码生成器是一个产生ECC校验码的功能电路,与ECC主控逻辑和错误地址产生器相连,接收来自ECC主控逻辑的数据和使能信号,产生ECC校验码,并将产生的校验码输出到ECC主控逻辑和错误地址产生器。ECC校验码生成器由第四寄存器组和ECC校验码生成电路组成。第四寄存器组与ECC校验码生成电路组成相连,由4个寄存器组成,用以存放从ECC校验码生成电路组成来的ECC校验码。ECC校验码生成电路是用异或门构成的逻辑电路,与第四寄存器组、ECC主控逻辑、错误地址产生器相连,在接收到来自ECC主控逻辑的ECC使能信号之后,逻辑电路在每个时钟周期对从ECC主控逻辑接收来的数据进行异或操作,将结果作为ECC校验码写入到第四寄存器组中;当逻辑电路接收到全部的一页数据之后,将第四寄存器组中的ECC校验码读出并发送给ECC主控逻辑和错误地址产生器。错误地址产生器是一个产生错误地址的功能电路,与ECC主控逻辑和ECC校验码生成器相连。错误地址产生器由原ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器以及检错逻辑组成。原ECC校验码寄存器与ECC主控逻辑和检错逻辑相连,从ECC主控逻辑中接收从芯片中读出的原ECC校验码,并暂存起来。检错逻辑与ECC校验码生成器、原 ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器和ECC主控逻辑相连,一方面从原ECC校验码寄存接收原ECC校验码,一方面从ECC校验码生成器接收新生成的ECC校验码,对两个校验码的每一位依次进行异或对比,将比较结果存入比较结果寄存器中,再将比较结果寄存器的相邻位进行异或操作,将所得结果按位异或产生错误指示信号,发送给ECC 主控逻辑;同时检错逻辑将比较结果寄存器中的奇数位取出作为错误地址,存入错误地址信息寄存器中,并发送给ECC主控逻辑。ECC主控逻辑与主控逻辑模块的主控制器、ECC校验码生成器、错误地址产生器和目标芯片相连,从主控制器接收控制信号和数据并发送给目标芯片,同时产生ECC使能信号,连同从主控制器接收的数据发送给ECC校验码生成器,ECC主控逻辑还从目标芯片读出原ECC校验码并发送给错误地址产生器。ECC主控逻辑是一个嵌入ECC功能的状态机,由ECC读页操作子状态机和ECC写页操作子状态机构成,这两个子状态机相互独立。ECC主控逻辑在上电复位后处于初始状态,当ECC主控逻辑从主控逻辑模块接受的命令信号是读页命令时,ECC主控逻辑进入ECC读页操作子状态机,直至ECC读页操作子状态机执行完毕, ECC主控逻辑再次进入初始状态;在初始状态下,当ECC主控逻辑从主控逻辑模块接受的命令信号是写页命令时,ECC主控逻辑进入ECC写页操作子状态机,直至ECC写页操作子状态机执行完毕,ECC主控逻辑再次进入初始状态。图3是本发明主控制器的读页操作状态机结构图。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为读页命令时,主控制器进入读页操作子状态机。 读页操作子状态机由9个状态组成,“00000”状态表示主控制器处于空闲状态;“00001” 状态表示发出读页命令操作码;“00010”状态表示发出读页操作的目标页地址;“00011” 状态表示等待数据读出;“00100”状态表示将数据从芯片中读出,同时产生ECC校验码; “00101”状态表示从芯片中读取原ECC校验码;“00110”状态表示检测读出数据是否出错; “00111”状态表示数据出错时产生错误地址;“01000”状态表示对数据进行纠错。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为读页命令时,转入状态“00001”。主控制器处于状态“00001”时,主控制器产生符合目标芯片时序逻辑的控制信号,包括片选使能、读使能、写使能、地址使能以及命令使能,将其中的片选使能、写使能和命令使能置为有效,并将读页命令操作码发送给目标芯片,随后转入状态“00010”。主控制器处于状态“00010”时,置片选使能、写使能和地址使能有效,将目标页发送给目标芯片,转入状态“00011”。主控制器处于状态“00011”时,主控制器从目标芯片接收的忙闲状态信号为忙,表示目标芯片正在把目标页中的数据读往其内部的数据寄存器,直到芯片将忙闲状态信号变为闲,表明数据已经准备完毕,转入状态“00100”。主控制器处于状态“00100”时,读使能置为有效,将数据从目标芯片的内部数据寄存器中依次读到数据缓冲器,同时,将数据提供给ECC模块,由ECC模块产生新的ECC校验码,而后转入状态 “00101”。主控制器处于状态“00101”时,将存储在目标芯片的原ECC校验码读出,转入状态“00110”。主控制器处于状态“00110”时,发送比较使能信号给ECC模块,ECC模块对新旧两个校验码进行比较,当从ECC模块接收的错误指示信号无效时,表示数据没有出错,则主控制器转入空闲状态“00000”,读页操作执行完毕;否则,转入状态“00111”。主控制器处于状态“00111”时,从ECC模块接收数据发生错误的页内地址,转入“01000”。主控制器处于状态“01000”时,主控制器根据ECC模块发送的错误地址,对数据缓冲器中的数据进行纠错,随后转入空闲状态“00000”,读页操作执行完毕。图4是本发明主控制器的写页操作状态机结构图。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为写页命令时,主控制器进入写页操作子状态机。 写页操作子状态机共有7个状态,“00000”状态表示主控制器处于空闲状态;“01001”状态表示将数据写入主控逻辑模块的数据缓冲器中;“01010”状态表示发送写页命令的操作码;“01011”状态表示发送写页的目标页地址;“01100”状态表示将数据发送给芯片,同时产生相应的ECC校验码;“01101”状态表示将ECC校验码发送给芯片;“01110”状态表示等待数据的写入芯片介质。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为写页命令时,转入状态“01001”。主控制器处于状态“01001” 时,主控制器接收来自交换结构模块的数据,并将其依次写入数据缓冲器中暂存,当数据写完后,转向状态“01010”。主控制器处于状态“01010”时,将目标芯片的片选使能、写使能和命令使能置为有效,将写页命令的操作码发送给目标芯片,随后转向状态“01011”。主控制器处于状态“01011”时,将片选使能、写使能和地址使能置为有效,发送目标页地址给目标芯片,转向状态“01100”。主控制器处于状态“01100”时,将片选使能、写使能置为有效,其他的控制信号均无效,将数据缓冲器中的数据发送给ECC模块,随后转向状态“01101”。主控制器处于状态“01101”时,等待ECC模块将ECC校验码发送给芯片,当从ECC模块接收的 ECC完成信号有效时,转向状态“01110”。主控制器处于状态“01110”时,此时由目标芯片所反馈的忙闲状态信号为忙,表明数据正从芯片内部的数据寄存器中写入芯片介质,主控制器处于等待状态,直到芯片忙闲状态信号为闲,表明数据已经全部写入到目标芯片,随后转向状态“ 00000 ”,写页操作执行完毕。图5是本发明主控制器的块擦除操作状态机结构图。主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为块擦除命令时,主控制器进入块擦除操作子状态机。块擦除操作子状态机由4个状态组成,“00000”状态表示主控制器处于空闲状态; “01111”状态表示发出块擦除命令操作码;“10000”状态表示发出块擦除操作的目标页地址;“10001”状态表示等待块擦除操作完成。在上电复位以后,主控制器处于状态“00000”, 若发现从交换结构模块的交叉开关接收到块擦除请求,转入状态“01111”。主控制器处于状态“01111”时,将芯片的片选使能、写使能和命令使能置为有效,将块擦除命令发送给目标芯片,随后转向状态“10000”。主控制器处于状态“10000”时,将片选使能、写使能和地址使能置为有效,发送目标块地址给目标芯片,转向状态“10001”。主控制器处于状态“10001” 时,此时由芯片所反馈的忙状态信号为忙,表明正在执行芯片块擦除操作,直到芯片忙状态信号恢复,随后转向状态“00000”,块擦除操作执行完毕。图6是本发明ECC主控逻辑的读页操作状态机结构图。ECC主控逻辑在初始状态下,当从交换结构模块的交叉开关接收命令信号为读页命令时,ECC主控逻辑进入ECC读页操作子状态机。ECC读页操作子状态机由6个状态组成,"0000"状态表示ECC主控逻辑处于初始状态;“0001”状态表示发出控制信号给目标芯片等待数据读出;“0010”表示将数据从目标芯片中读出,同时产生ECC校验码;“0011”状态表示从芯片中读取原ECC校验码; “0100”状态表示检测读出数据是否出错;“0101”状态表示从错误地址产生器中读出错误地址。在上电复位以后,ECC主控逻辑处于状态“0000”,若发现从主控逻辑模块的主控制器接收到的锁存信号、片选信号、读使能均有效以及数据输入为读页操作的第一个命令时,转入状态“0001”。ECC主控逻辑处于状态“0001”时,将从主控制器接收的控制信号和数据转发给目标芯片,发出控制信号将读页命令和目标页的地址写入芯片,等待数据从目标芯片中读出,当来自于目标芯片的忙闲状态信号为闲时转入状态“0010”。ECC主控逻辑处于状态“0010”时,将从主控制器接收的读控制信号发送给芯片,读出一页数据,并将数据发送给主控制器和ECC校验码生成器;ECC主控逻辑产生ECC校验码生成器的控制信号使ECC校验码生成器对ECC码进行更新,转入状态“0011”。ECC主控逻辑处于状态“0011”时,产生控制信号并发送给目标芯片,从目标芯片中读出原ECC校验码并发送给ECC错误地址生成模块以生成错误地址,转入状态“0100”。ECC主控逻辑处于状态“0100”时,等待ECC错误地址产生器进行ECC码的比较,以确定有无错误发生,如果发生数据错误,ECC主控逻辑从错误地址产生器接收错误指示信号,将错误指示信号反馈回主控制器,而后转入状态“0101”如果没有发生错误,转入初始状态“0000”。ECC主控逻辑处于状态“0101”时,从错误地址产生器中读出错误地址信息,发送给主控制器,等待其进行纠错,随后转入初始状态“0000”。
图7是本发明ECC主控逻辑的写页操作状态机结构图。ECC主控逻辑在初始状态下,当从交换结构模块的交叉开关接收命令信号为写页命令时,ECC主控逻辑进入ECC写页操作子状态机。ECC写页操作子状态机共有5个状态,"0000"状态表示ECC主控逻辑处于初始状态;“0110”状态表示将地址、命令写入芯片,做好数据写入的准备;“0111”状态表示将数据发送给目标芯片;“1000”状态表示将ECC校验码发送给目标芯片;“1001”状态表示将写页操作的结束命令写入目标芯片。在上电复位以后,ECC主控逻辑处于状态“0000”,当从主控制器接收的锁存信号、片选信号、写使能均有效并且数据输入为写页的第一个命令时,转入状态“0110”。ECC主控逻辑处于状态“0110”时,将从主控制器接收的控制和数据信号转发给目标芯片,发出控制信号将写页操作的第一个命令和目标页地址写入芯片,转向状态“0111”。ECC主控逻辑处于状态“0111”时,将从主控制器中接收的写控制信号和数据发给目标芯片,在写入数据的同时,将数据发送到ECC校验码生成器,使ECC校验码生成器对ECC校验码进行更新,随后转向状态“1000”。ECC主控逻辑处于状态“1000”时,产生控制信号并发送到目标芯片,向芯片写入ECC校验码,转向状态“1001”。ECC主控逻辑处于状态“1001”时,产生控制信号,将写页操作的结束命令写入芯片随后转向状态“0000”。
权利要求
1. 一种多通道与非型快闪并行存储控制器,安装在与非型快闪存储器芯片即目标芯片和主机的传输转换层之间,其特征在于多通道与非型快闪并行存储控制器由一个交换结构模块和η个底层存储控制器组成,η是目标芯片的块数;交换结构模块与η个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求-包括请求的命令、地址和数据,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器;η个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片;交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成请求队列是个能存放待执行请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连,请求队列接收来自传输转换层的输入通道请求,输入通道请求最多为η路,将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号,在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁;传输仲裁部件是一个仲裁电路,与请求队列、交叉开关相连,传输仲裁部件接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关;传输仲裁部件由2个寄存器组和仲裁逻辑电路组成,第一寄存器组与仲裁逻辑电路和交叉开关相连,由η个1位的寄存器组成,保存从交叉开关接收的η路输入通道的工作状态;第二寄存器组也与仲裁逻辑电路和交叉开关相连,由η个1位的寄存器组成,保存通过交叉开关读出的η个底层存储控制器的忙闲状态;仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和请求队列相连,接收第一寄存器组和第二寄存器组的内容,仲裁逻辑电路从请求队列读取输入通道请求m所指的目标芯片地址,若该地址是j,1 < m < n,1 < j < n,则查看第二寄存器组中寄存器j中的内容 如果寄存器j为0,表示底层存储控制器j处于空闲状态,请求m可以被执行,仲裁逻辑电路向请求队列发送请求m出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立输入通道请求m与底层存储控制器j之间的数据传输路径;交叉开关是的nXn的交叉开关,与传输转换层、传输仲裁部件、请求队列、η个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中;交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径,在建立好数据传输路径之后, 交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器,交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径;底层存储控制器由主控逻辑模块和ECC模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验;主控逻辑模块是产生符合芯片时序要求的控制信号的功能部件,与交换结构模块、ECC 模块相连,从交换结构模块接收待执行的输入通道请求,遵循芯片基本操作的逻辑时序要求,产生符合芯片时序要求的地址使能、命令使能、片使能、读使能以及写使能控制信号,将这些控制信号和从交换结构模块来的数据发送给ECC模块。主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成,数据缓冲器与主控制器相连,大小与目标芯片的页大小相同,用以存储主机待写入的数据;第三寄存器组与主控制器相连,由命令寄存器、地址寄存器和状态寄存器组成,分别存放本次请求的命令操作码、 目标地址和当前操作的完成状态;主控制器与交换结构模块的交叉开关、数据缓冲器、第三寄存器组和ECC模块相连,从交叉开关接收输入通道请求的命令、地址和数据,将命令、地址存入第三寄存器组,将主机待写入数据存入数据缓冲器,产生控制信号并发送给ECC模块;当从交叉开关得到的命令是读页命令时,主控制器将从ECC模块返回的数据发送给数据缓冲器,当从交叉开关得到的命令是写页命令时,主控制器先将数据写入数据缓冲器,而后将数据顺序写入芯片中,当读页操作时,主控制器将从目标芯片读出的数据先存入数据缓冲器,再通过总线将数据顺序读出,如果主控制器从ECC模块接收的错误指示信号有效, 则从ECC模块接收错误地址信息,根据此信息对数据缓冲器中的数据进行纠错;主控制器是一个能产生符合芯片时序要求的控制信号的状态机,它由读页操作、写页操作和块擦除操作三个子状态机组成,三个子状态机之间相互独立,互不窜扰,在同一时间只有一个子状态机工作;主控制器在上电复位后处于初始状态,从交换结构模块的交叉开关接收命令信号,若命令信号是读页命令,主控制器由初始状态进入读页操作子状态机,直至读页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是写页命令,主控制器由初始状态进入写页操作子状态机,直至写页操作子状态机执行完毕,主控制器再次进入初始状态; 若命令信号是块擦除命令,主控制器由初始状态进入块擦除操作子状态机,直至块擦除操作子状态机执行完毕,主控制器再次进入初始状态;ECC模块与主控逻辑模块和目标芯片相连,ECC模块从主控逻辑模块接收控制信号和数据,将控制信号和数据发送给目标芯片,并对要写入目标芯片和从目标芯片读出的数据进行ECC校验;ECC模块若从主控逻辑模块接收到的命令是写页操作,则产生ECC校验码发送给目标芯片,若从主控逻辑模块接收到的命令是读页操作,则将从芯片中读出的数据发送给主控逻辑模块,并进行ECC校验,将校验结果发送给主控逻辑模块;ECC模块由ECC主控逻辑、ECC校验码生成器和错误地址产生器三部分组成;ECC校验码生成器是一个产生ECC校验码的功能电路,与ECC主控逻辑和错误地址产生器相连,接收来自ECC主控逻辑的数据和使能信号,产生ECC校验码,并将产生的校验码输出到ECC主控逻辑和错误地址产生器;ECC校验码生成器由第四寄存器组和ECC校验码生成电路组成;第四寄存器组与ECC校验码生成电路相连,由4个寄存器组成,用以存放从 ECC校验码生成电路来的ECC校验码;ECC校验码生成电路是用异或门构成的逻辑电路,与第四寄存器组、ECC主控逻辑、错误地址产生器相连,在接收到来自ECC主控逻辑的ECC使能信号之后,逻辑电路在每个时钟周期对从ECC主控逻辑接收来的数据进行异或操作,将结果作为ECC校验码写入到第四寄存器组中;当逻辑电路接收到全部的一页数据之后,将第四寄存器组中的ECC校验码读出并发送给ECC主控逻辑和错误地址产生器;错误地址产生器是一个产生错误地址的功能电路,与ECC主控逻辑和ECC校验码生成器相连;错误地址产生器由原ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器以及检错逻辑组成;原ECC校验码寄存器与ECC主控逻辑和检错逻辑相连,从ECC主控逻辑中接收从芯片中读出的原ECC校验码,并暂存起来;检错逻辑与ECC校验码生成器、原ECC校验码寄存器、比较结果寄存器、错误地址信息寄存器和ECC主控逻辑相连,一方面从原ECC 校验码寄存器接收原ECC校验码,一方面从ECC校验码生成器接收新生成的ECC校验码,对两个校验码的每一位依次进行异或对比,将比较结果存入比较结果寄存器中,再将比较结果寄存器的相邻位进行异或操作,将所得结果按位异或产生错误指示信号,发送给ECC主控逻辑;同时检错逻辑将比较结果寄存器中的奇数位取出作为错误地址,存入错误地址信息寄存器中,并发送给ECC主控逻辑;ECC主控逻辑与主控逻辑模块的主控制器、ECC校验码生成器、错误地址产生器和目标芯片相连,从主控制器接收控制信号和数据并发送给目标芯片,同时产生ECC使能信号,连同从主控制器接收的数据发送给ECC校验码生成器,ECC主控逻辑还从目标芯片读出原ECC 校验码并发送给错误地址产生器;ECC主控逻辑是一个嵌入ECC功能的状态机,由ECC读页操作子状态机和ECC写页操作子状态机构成,这两个子状态机相互独立;ECC主控逻辑在上电复位后处于初始状态,当ECC主控逻辑从主控逻辑模块接受的命令信号是读页命令时, ECC主控逻辑进入ECC读页操作子状态机,直至ECC读页操作子状态机执行完毕,ECC主控逻辑再次进入初始状态;在初始状态下,当ECC主控逻辑从主控逻辑模块接受的命令信号是写页命令时,ECC主控逻辑进入ECC写页操作子状态机,直至ECC写页操作子状态机执行完毕,ECC主控逻辑再次进入初始状态。
2.如权利要求1所述的多通道与非型快闪并行存储控制器,其特征在于所述读页操作子状态机由9个状态组成,“00000”状态表示主控制器处于空闲状态;“00001”状态表示发出读页命令操作码;“00010”状态表示发出读页操作的目标页地址;“00011”状态表示等待数据读出;“00100”状态表示将数据从芯片中读出,同时产生ECC校验码;“00101”状态表示从芯片中读取原ECC校验码;“00110”状态表示检测读出数据是否出错;“00111”状态表示数据出错时产生错误地址;“01000”状态表示对数据进行纠错。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为读页命令时,转入状态 “00001”。主控制器处于状态“00001”时,主控制器产生符合目标芯片时序逻辑的控制信号, 包括片选使能、读使能、写使能、地址使能以及命令使能,将其中的片选使能、写使能和命令使能置为有效,并将读页命令操作码发送给目标芯片,随后转入状态“00010”。主控制器处于状态“00010”时,置片选使能、写使能和地址使能有效,将目标页发送给目标芯片,转入状态“00011”。主控制器处于状态“00011”时,主控制器从目标芯片接收的忙闲状态信号为忙,表示目标芯片正在把目标页中的数据读往其内部的数据寄存器,直到芯片将忙闲状态信号变为闲,表明数据已经准备完毕,转入状态“00100”。主控制器处于状态“00100”时,读使能置为有效,将数据从目标芯片的内部数据寄存器中依次读到数据缓冲器,同时,将数据提供给ECC模块,由ECC模块产生新的ECC校验码,而后转入状态“00101”。主控制器处于状态“00101”时,将存储在目标芯片的原ECC校验码读出,转入状态“00110”。主控制器处于状态“00110”时,发送比较使能信号给ECC模块,ECC模块对新旧两个校验码进行比较, 当从ECC模块接收的错误指示信号无效时,表示数据没有出错,则主控制器转入空闲状态 “00000”,读页操作执行完毕;否则,转入状态“00111”。主控制器处于状态“00111”时,从 ECC模块接收数据发生错误的页内地址,转入“01000”。主控制器处于状态“01000”时,主控制器根据ECC模块发送的错误地址,对数据缓冲器中的数据进行纠错,随后转入空闲状态“00000”,读页操作执行完毕。
3.如权利要求1所述的多通道与非型快闪并行存储控制器,其特征在于所述写页操作子状态机共有7个状态,“00000”状态表示主控制器处于空闲状态;“01001”状态表示将数据写入主控逻辑模块的数据缓冲器中;“01010”状态表示发送写页命令的操作码;“01011” 状态表示发送写页的目标页地址;“01100”状态表示将数据发送给芯片,同时产生相应的 ECC校验码;“01101”状态表示将ECC校验码发送给芯片;“01110”状态表示等待数据的写入芯片介质。在上电复位以后,主控制器处于状态“00000”,当从交换结构模块的交叉开关接收命令信号为写页命令时,转入状态“01001”。主控制器处于状态“01001”时,主控制器接收来自交换结构模块的数据,并将其依次写入数据缓冲器中暂存,当数据写完后,转向状态“01010”。主控制器处于状态“01010”时,将目标芯片的片选使能、写使能和命令使能置为有效,将写页命令的操作码发送给目标芯片,随后转向状态“01011”。主控制器处于状态 “01011”时,将片选使能、写使能和地址使能置为有效,发送目标页地址给目标芯片,转向状态“01100”。主控制器处于状态“01100”时,将片选使能、写使能置为有效,其他的控制信号均无效,将数据缓冲器中的数据发送给ECC模块,随后转向状态“01101”。主控制器处于状态“01101”时,等待ECC模块将ECC校验码发送给芯片,当从ECC模块接收的ECC完成信号有效时,转向状态“01110”。主控制器处于状态“01110”时,此时由目标芯片所反馈的忙闲状态信号为忙,表明数据正从芯片内部的数据寄存器中写入芯片介质,主控制器处于等待状态,直到芯片忙闲状态信号为闲,表明数据已经全部写入到目标芯片,随后转向状态 “00000”,写页操作执行完毕。
4.如权利要求1所述的多通道与非型快闪并行存储控制器,其特征在于所述块擦除操作子状态机由4个状态组成,“00000”状态表示主控制器处于空闲状态;“01111”状态表示发出块擦除命令操作码;“10000”状态表示发出块擦除操作的目标页地址;“10001”状态表示等待块擦除操作完成。在上电复位以后,主控制器处于状态“00000”,若发现从交换结构模块的交叉开关接收到块擦除请求,转入状态“01111”。主控制器处于状态“01111”时,将芯片的片选使能、写使能和命令使能置为有效,将块擦除命令发送给目标芯片,随后转向状态“10000”。主控制器处于状态“10000”时,将片选使能、写使能和地址使能置为有效,发送目标块地址给目标芯片,转向状态“ 10001”。主控制器处于状态“ 10001”时,此时由芯片所反馈的忙状态信号为忙,表明正在执行芯片块擦除操作,直到芯片忙状态信号恢复,随后转向状态“00000”,块擦除操作执行完毕。
5.如权利要求1所述的多通道与非型快闪并行存储控制器,其特征在于所述ECC读页操作子状态机由6个状态组成,“0000”状态表示ECC主控逻辑处于初始状态;“0001”状态表示发出控制信号给目标芯片等待数据读出;“0010”表示将数据从目标芯片中读出,同时产生ECC校验码;“0011”状态表示从芯片中读取旧ECC校验码;“0100”状态表示检测读出数据是否出错;“0101”状态表示从错误地址产生器中读出错误地址;在上电复位以后,ECC 主控逻辑处于状态“0000”,若发现从主控逻辑模块的主控制器接收到的锁存信号、片选信号、读使能均有效以及数据输入为读页操作的第一个命令时,转入状态“0001” ;ECC主控逻辑处于状态“0001”时,将从主控制器接收的控制信号和数据转发给目标芯片,发出控制信号将读页命令和目标页的地址写入芯片,等待数据从目标芯片中读出,当来自于目标芯片的忙闲状态信号为闲时转入状态“0010” ;ECC主控逻辑处于状态“0010”时,将从主控制器接收的读控制信号发送给芯片,读出一页数据,并将数据发送给主控制器和ECC校验码生成器;ECC主控逻辑产生ECC校验码生成器的控制信号使ECC校验码生成器对ECC码进行更新,转入状态“0011” ;ECC主控逻辑处于状态“0011”时,产生控制信号并发送给目标芯片, 从目标芯片中读出原ECC校验码并发送给ECC错误地址生成模块以生成错误地址,转入状态“0100”;ECC主控逻辑处于状态“0100”时,等待ECC错误地址产生器进行ECC码的比较, 以确定有无错误发生,如果发生数据错误,ECC主控逻辑从错误地址产生器接收错误指示信号,将错误指示信号反馈回主控制器,而后转入状态“0101”如果没有发生错误,转入初始状态“0000”;ECC主控逻辑处于状态“0101”时,从错误地址产生器中读出错误地址信息,发送给主控制器,等待其进行纠错,随后转入初始状态“0000”。
6.如权利要求1所述的多通道与非型快闪并行存储控制器,其特征在于所述ECC写页操作子状态机共有5个状态,“0000”状态表示ECC主控逻辑处于初始状态;“0110”状态表示将地址、命令写入芯片,做好数据写入的准备;“0111”状态表示将数据发送给目标芯片; “1000”状态表示将ECC校验码发送给目标芯片;“1001”状态表示将写页操作的结束命令写入目标芯片;在上电复位以后,ECC主控逻辑处于状态“0000”,当从主控制器接收的锁存信号、片选信号、写使能均有效并且数据输入为写页的第一个命令时,转入状态“0110”;ECC 主控逻辑处于状态“0110”时,将从主控制器接收的控制和数据信号转发给目标芯片,发出控制信号将写页操作的第一个命令和目标页地址写入芯片,转向状态“0111 ”;ECC主控逻辑处于状态“0111”时,将从主控制器中接收的写控制信号和数据发给目标芯片,在写入数据的同时,将数据发送到ECC校验码生成器,使ECC校验码生成器对ECC校验码进行更新,随后转向状态“1000”;ECC主控逻辑处于状态“1000”时,产生控制信号并发送到目标芯片,向芯片写入ECC校验码,转向状态“ 1001” ;ECC主控逻辑处于状态“ 1001”时,产生控制信号, 将写页操作的结束命令写入芯片随后转向状态“0000”。
全文摘要
本发明公开了一种多通道与非型快闪并行存储控制器,目的是提供一种能提供更高聚合带宽,数据读写可靠性高的存储控制器。本发明由交换结构模块和n个底层存储控制器组成,交换结构模块由请求队列、传输仲裁部件和交叉开关组成,对多通道的请求进行传输仲裁,底层存储控制器由主控逻辑模块和ECC模块组成,产生符合芯片时序要求的控制信号并对数据进行ECC校验;主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成,ECC模块由ECC主控逻辑、ECC校验码生成器和错误地址产生器组成。本发明实现了多通道与非型快闪芯片的并行访问机制,有效地提高了聚合带宽,适应于数据密集型计算对于带宽的高要求,且实现了ECC检错纠错功能,提高了数据可靠性。
文档编号G06F13/18GK102541678SQ20111045368
公开日2012年7月4日 申请日期2011年12月30日 优先权日2011年12月30日
发明者刘芳, 欧洋, 肖侬, 赖明澈, 陈志广, 黄立波 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1