CN102541678B - 多通道与非型快闪并行存储控制器 - Google Patents

多通道与非型快闪并行存储控制器 Download PDF

Info

Publication number
CN102541678B
CN102541678B CN 201110453683 CN201110453683A CN102541678B CN 102541678 B CN102541678 B CN 102541678B CN 201110453683 CN201110453683 CN 201110453683 CN 201110453683 A CN201110453683 A CN 201110453683A CN 102541678 B CN102541678 B CN 102541678B
Authority
CN
China
Prior art keywords
ecc
state
data
chip
control logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201110453683
Other languages
English (en)
Other versions
CN102541678A (zh
Inventor
肖侬
赖明澈
黄立波
刘芳
陈志广
欧洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN 201110453683 priority Critical patent/CN102541678B/zh
Publication of CN102541678A publication Critical patent/CN102541678A/zh
Application granted granted Critical
Publication of CN102541678B publication Critical patent/CN102541678B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种多通道与非型快闪并行存储控制器,目的是提供一种能提供更高聚合带宽,数据读写可靠性高的存储控制器。本发明由交换结构模块和n个底层存储控制器组成,交换结构模块由请求队列、传输仲裁部件和交叉开关组成,对多通道的请求进行传输仲裁,底层存储控制器由主控逻辑模块和ECC模块组成,产生符合芯片时序要求的控制信号并对数据进行ECC校验;主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成,ECC模块由ECC主控逻辑、ECC校验码生成器和错误地址产生器组成。本发明实现了多通道与非型快闪芯片的并行访问机制,有效地提高了聚合带宽,适应于数据密集型计算对于带宽的高要求,且实现了ECC检错纠错功能,提高了数据可靠性。

Description

多通道与非型快闪并行存储控制器
技术领域
本发明涉及一种存储控制器,尤其是一种多通道与非(NAND)型快闪并行存储控制器。
背景技术
随着网络、计算、存储等技术的飞速发展,数据呈现出几何级数爆炸式增长,数据密集型应用已经广泛地出现在社会生活之中,例如Facebook平台。这类应用需要花费大量的时间来进行数据的I/O传输,特别是针对海量数据中小块数据的随机访问。传统的数据中心使用机械硬盘作为其存储介质,但是机械硬盘的高功耗、高延迟和低带宽已经不能适应数据密集型应用的需求。另一方面,相比于机械硬盘,与非型快闪存储器拥有更低的功耗、更好的抗震性,特别是由于与非型快闪不存在寻道时间和旋转时间,对于小数据的随机访问比机械硬盘要快很多。同时,随着与非型快闪生产工艺的进步,其单位密度不断增加,成本也大幅下降。目前,与非型快闪正逐步取代机械硬盘成为构建数据中心的存储介质,并且这种趋势已成为未来不可阻挡的潮流。
与非型快闪存储器已经广泛应用于海量数据存储,对与非型快闪存储器的访问需要严格按照其特殊操作时序才能对存储体进行访存,且与非型快闪存储器的地址、数据和命令复用同一个I/O接口,因此需要特殊的时序控制逻辑。另外,与非型快闪存储器还存在位交换现象,因此,需要错误检测和纠错控制逻辑以提高其可靠性,使与非型快闪存储器本身具有的高带宽低访存延迟等优点得以更好地发挥。当前,数据密集型计算重点强调高I/O带宽,但是单块的与非型快闪存储器的最高带宽在40MB/s左右。为了缓解I/O所带来的系统性能瓶颈,目前的国内外相关工作主要通过设计与非型快闪存储器的并行机制来解决这一问题。主要包含两类控制器结构:
1)芯片级的交叉存取控制器
由于与非型快闪存储器的写页操作具有很长的等待时间,而在该段等待时间内,总线实际处于空闲状态。因此,可以有效利用这段时间,使得其他存储器能够在等待时间内进行操作,从而实现各块与非型快闪存储器之间的交叉存取。Jin Hyuk Yoon等人在文章"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"中将芯片级和总线级的交叉存取技术相结合,进一步提高了聚合带宽。其主要思想是:从不同总线上选取一块与非型快闪存储器,从而组成一块“超级芯片”,对于一块芯片的操作扩展为对一块“超级芯片”的操作,实现总线级的交叉存取。另一方面,利用芯片级交叉存取的技术,实现“超级芯片”间的并行。但是这种控制器对于随机的操作流效率较低,不能适应数据密集型随机访问较多的特点。
这两种控制器虽然针对与非型快闪存储器采取了并行访存机制,但是都忽略了数据密集型计算对于带宽的高要求。芯片级交叉存取控制器受限于与非型快闪总线的带宽,只能提高总线带宽的利用率;总线级交叉存取控制器的聚合带宽仍然受限于单通道访问,通用性较差,对于随机访问并不适用。因此,迫切需要一种具有高聚合带宽的与非型快闪存储控制器。
发明内容
本发明要解决的技术问题是针对现有与非型快闪存储控制器不能满足数据密集型计算的高带宽要求,提出了一种多通道与非型快闪并行存储控制器。这种控制器适用于多种工作负载,为主机存储提供更高的聚合带宽,适应数据密集型计算的需求;同时针对与非型快闪访问时序特性,在保证对与非型快闪正常访问的同时,提高其数据读写的可靠性。
本发明安装在与非型快闪存储器芯片和主机的传输转换层之间,本发明根据传输转换层发来的输入通道请求,建立起主机端到与非型快闪存储器芯片(即目标芯片,简称芯片)之间的数据传输路径。本发明由一个交换结构模块和n个底层存储控制器组成,n是目标芯片的块数。
交换结构模块与n个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求-包括请求的命令、地址、数据以及控制信号,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器。n个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片,以完成读页、写页和块擦除等操作请求。
交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成。
请求队列是个能存放待执行请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连。请求队列接收来自传输转换层的输入通道请求,输入通道请求最多为n路,将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号,在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁。
传输仲裁部件是一个仲裁电路,它对从主机端来的输入通道请求是否执行进行仲裁,与请求队列、交叉开关相连。传输仲裁部件,接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关。传输仲裁部件由2个寄存器组和仲裁逻辑电路组成。第一寄存器组与仲裁逻辑电路和交叉开关相连,由n个1位的寄存器组成,保存从交叉开关接收的n路输入通道的工作状态。第二寄存器组与仲裁逻辑电路和交叉开关相连,也由n个1位的寄存器组成,保存通过交叉开关读出的n个底层存储控制器的忙闲状态。仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和传输队列相连,接收第一寄存器组和第二寄存器组的内容。仲裁逻辑电路从请求队列读取第m路输入通道所对应的请求(1≤m≤n)所指的目标芯片地址,若该地址是j(1≤j≤n),则查看第二寄存器组中寄存器j中的内容:如果寄存器j为0,表示底层存储控制器j处于空闲状态,第m路输入通道所对应的请求可以被执行,仲裁逻辑电路向请求队列发送该请求出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立第m路输入通道所对应的请求与底层存储控制器j之间的数据传输路径。
交叉开关是n×n的交叉开关,与传输转换层、传输仲裁部件、请求队列、n个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中。交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径。在建立好数据传输路径之后,交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器(若请求队列接收的第m路输入通道所对应的请求所指的目标芯片地址是j,则将该请求发送给底层存储控制器j),交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径。
底层存储控制器由主控逻辑模块和ECC模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验。
主控逻辑模块是产生符合芯片时序要求的控制信号的功能部件,与交换结构模块、ECC模块相连,从交换结构模块接收待执行的输入通道请求,遵循芯片基本操作的逻辑时序要求,产生符合芯片时序要求的地址使能、命令使能、片使能、读使能以及写使能控制信号,将这些控制信号和从交换结构模块来的数据发送给ECC模块。
主控逻辑模块由数据缓冲器、第三寄存器组和主控制器组成。数据缓冲器与主控制器相连,大小与目标芯片的页大小相同,用以存储主机待写入的数据。第三寄存器组与主控制器相连,由命令寄存器、地址寄存器和状态寄存器组成,分别存放本次请求的命令操作码、目标地址和当前操作的完成状态,命令、地址的发送都必须提供对应寄存器的地址,以对命令和地址进行识别。
主控制器与交换结构模块的交叉开关、数据缓冲器、第三寄存器组和ECC模块相连,从交叉开关接收输入通道请求的命令、地址和数据,将命令、地址存入第三寄存器组,将主机待写入数据存入数据缓冲器,产生控制信号并发送给ECC模块。当从交叉开关得到的命令是读页命令时,主控制器将从ECC模块返回的数据发送给数据缓冲器;当从交叉开关得到的命令是写页命令时,主控制器先将数据写入数据缓冲器,而后将数据顺序写入芯片中;当读页操作时,主控制器将从目标芯片读出的数据先存入数据缓冲器,再通过总线将数据顺序读出,如果主控制器从ECC模块接收的错误指示信号有效,表明读出数据发生错误,此时主控制器从ECC模块接收错误地址信息,根据此信息对数据缓冲器中的数据进行纠错。
主控制器是一个能产生符合芯片时序要求的控制信号的状态机,它由读页操作、写页操作和块擦除操作三个子状态机组成。三个子状态机之间相互独立,互不窜扰,在同一时间只有一个子状态机工作。主控制器在上电复位后处于初始状态,从交换结构模块的交叉开关接收命令信号,若命令信号是读页命令(对与非型闪存而言,读页命令是00h和30h),主控制器由初始状态进入读页操作子状态机,直至读页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是写页命令(对与非型闪存而言,写页命令是80h和10h),主控制器由初始状态进入写页操作子状态机,直至写页操作子状态机执行完毕,主控制器再次进入初始状态;若命令信号是块擦除命令(对与非型闪存而言,读块擦除命令是60h和d0h),主控制器由初始状态进入块擦除操作子状态机,直至块擦除操作子状态机执行完毕,主控制器再次进入初始状态。
主控制器在初始状态下,当从交换结构模块的交叉开关接收命令信号为读页命令时,主控制器进入读页操作子状态机。读页操作子状态机由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是本发明的总体结构框图。本发明安装在与非型快闪存储器芯片和主机的传输转换层之间,本发明根据传输转换层发来的输入通道请求,建立起主机端到与非型快闪存储器芯片之间的数据传输路径。本发明由一个交换结构模块和n个底层存储控制器组成,n是目标芯片的块数。
交换结构模块与n个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器。n个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片,以完成读页、写页和块擦除等操作请求。
交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成。
请求队列是个能存放n个请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连。请求队列接收来自传输转换层的输入通道请求(最多为n路),将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号,在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁。
传输仲裁部件是一个仲裁电路,它对从主机端来的输入通道请求是否执行进行仲裁,与请求队列、交叉开关相连。传输仲裁部件,接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关。传输仲裁部件由2个寄存器组和仲裁逻辑电路组成。第一寄存器组与仲裁逻辑电路和交叉开关相连,由n个1位的寄存器组成,保存从交叉开关接收的n路输入通道的工作状态。第二寄存器组与仲裁逻辑电路和交叉开关相连,也由n个1位的寄存器组成,保存通过交叉开关读出的n个底层存储控制器的忙闲状态。仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和传输队列相连,接收第一寄存器组和第二寄存器组的内容。仲裁逻辑电路从请求队列读取第m路输入通道所对应的请求(1≤m≤n)所指的目标芯片地址,若该地址是j(1≤j≤n),则查看第二寄存器组中寄存器j中的内容:如果寄存器j为0,表示底层存储控制器j处于空闲状态,第m路输入通道所对应的请求可以被执行,仲裁逻辑电路向请求队列发送该请求出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立第m路输入通道所对应的请求与底层存储控制器j之间的数据传输路径。
交叉开关是n×n的交叉开关,与传输转换层、传输仲裁部件、请求队列、n个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中。交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径。在建立好数据传输路径之后,交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器(若请求队列接收的第m路输入通道所对应的请求所指的目标芯片地址是j,则将该请求发送给底层存储控制器j),交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径。
底层存储控制器由主控逻辑模块和ECC模块组成,它产生符合芯片时序要求的控制信号并对主机端写入和从目标芯片读出的数据进行ECC校验。
图2是本发明底层存储控制器结构框图。底层存储控制器由主控逻辑模块和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主控逻辑再次进入初始状态。
图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”。

Claims (6)

1.一种多通道与非型快闪并行存储控制器,安装在与非型快闪存储器芯片即目标芯片和主机的传输转换层之间,其特征在于多通道与非型快闪并行存储控制器由一个交换结构模块和n个底层存储控制器组成,n是目标芯片的块数;交换结构模块与n个底层存储控制器和主机的传输转换层相连,交换结构模块接收传输转换层的输入通道请求-包括请求的命令、地址和数据,根据从底层存储控制器所反馈的目标芯片的工作状态,将请求输出到空闲的目标芯片所连接的底层存储控制器;n个底层存储控制器与目标芯片和交换结构模块相连,根据从交换结构模块接收到的请求和芯片所反馈的忙闲状态信号产生符合芯片时序特性的控制信号和数据,发送给目标芯片;
交换结构模块是对多通道的请求进行传输仲裁的功能部件,由请求队列、传输仲裁部件和交叉开关组成:
请求队列是个能存放待执行请求的缓冲器,与传输转换层、交叉开关、传输仲裁部件相连,请求队列接收来自传输转换层的输入通道请求,输入通道请求最多为n路,将输入通道请求按先入先出的顺序暂存起来,请求队列接收传输仲裁部件发出的出队使能信号,在出队使能信号有效地情况下将输入通道请求发送给交叉开关部件;若出队使能信号无效,则将输入通道请求暂时缓存在队列中等待下一次的仲裁;
传输仲裁部件是一个仲裁电路,与请求队列、交叉开关相连,传输仲裁部件接收来自交叉开关的芯片忙闲状态信号,根据这两个信号对请求进行仲裁,一边发送出队使能信号给请求队列,一边发送通道仲裁信号给交叉开关;传输仲裁部件由2个寄存器组和仲裁逻辑电路组成,第一寄存器组与仲裁逻辑电路和交叉开关相连,由n个1位的寄存器组成,保存从交叉开关接收的n路输入通道的工作状态;第二寄存器组也与仲裁逻辑电路和交叉开关相连,由n个1位的寄存器组成,保存通过交叉开关读出的n个底层存储控制器的忙闲状态;仲裁逻辑电路与第一寄存器组、第二寄存器组、交叉开关和请求队列相连,接收第一寄存器组和第二寄存器组的内容,仲裁逻辑电路从请求队列读取第m路输入通道所对应的请求所指的目标芯片地址,若该地址是j,1≤m≤n,1≤j≤n,则查看第二寄存器组中寄存器j中的内容:如果寄存器j为0,表示底层存储控制器j处于空闲状态,第m路输入通道所对应的请求可以被执行,仲裁逻辑电路向请求队列发送该请求出队信号,同时向交叉开关发送通道选择仲裁信号,指示交叉开关建立第m路输入通道所对应的请求与底层存储控制器j之间的数据传输路径;
交叉开关是n×n的交叉开关,与传输转换层、传输仲裁部件、请求队列、n个底层存储控制器相连,将底层存储控制器返回的芯片忙闲状态信号返回给传输仲裁部件,并根据从传输仲裁部件接收的通道选择仲裁信号,将从请求队列出队的输入通道请求输出到对应的底层存储控制器中;交叉开关接收来自请求队列所发出请求的地址、命令、数据,根据传输仲裁部件的通道选择仲裁信号建立或断开数据传输路径,在建立好数据传输路径之后,交叉开关将接收到的输入通道请求发送给请求对应的底层存储控制器,交叉开关从对应底层存储控制器中接收操作是否完成的信号,若操作完成,自动断开数据传输路径;
底层存储控制器由主控逻辑模块和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”。
CN 201110453683 2011-12-30 2011-12-30 多通道与非型快闪并行存储控制器 Active CN102541678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110453683 CN102541678B (zh) 2011-12-30 2011-12-30 多通道与非型快闪并行存储控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110453683 CN102541678B (zh) 2011-12-30 2011-12-30 多通道与非型快闪并行存储控制器

Publications (2)

Publication Number Publication Date
CN102541678A CN102541678A (zh) 2012-07-04
CN102541678B true CN102541678B (zh) 2013-09-18

Family

ID=46348631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110453683 Active CN102541678B (zh) 2011-12-30 2011-12-30 多通道与非型快闪并行存储控制器

Country Status (1)

Country Link
CN (1) CN102541678B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
TWI486963B (zh) * 2012-11-08 2015-06-01 Jmicron Technology Corp 錯誤檢查及校正方法以及錯誤檢查及校正電路
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
CN105934747B (zh) * 2013-11-07 2020-03-06 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的系统和方法
GB2528071B (en) * 2014-07-08 2021-04-07 Advanced Risc Mach Ltd Arbitrating and multiplexing circuitry
CN105912307B (zh) * 2016-04-27 2018-09-07 浪潮(北京)电子信息产业有限公司 一种Flash控制器数据处理方法及装置
CN108665939B (zh) * 2017-03-31 2021-01-05 厦门旌存半导体技术有限公司 为存储器提供ecc的方法与装置
CN108984280B (zh) * 2017-06-05 2022-04-22 深圳市中兴微电子技术有限公司 一种片外存储器的管理方法和装置、计算机可读存储介质
RU2653293C1 (ru) * 2017-07-11 2018-05-07 Акционерное общество "Федеральный научно-производственный центр "Нижегородский научно-исследовательский институт радиотехники" Устройство первичной обработки радиолокационной информации
CN109036493A (zh) * 2018-06-11 2018-12-18 西北工业大学 一种具有检错纠错机制的NAND Flash控制器
CN112069085B (zh) * 2019-06-10 2023-06-02 苏州库瀚信息科技有限公司 双模式闪存控制器和双模式存储器通信的系统、方法
CN111290977B (zh) * 2020-01-16 2021-11-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法
CN112000595B (zh) * 2020-07-06 2022-02-01 西安电子科技大学 一种阵列通道控制系统、方法、控制器、存储介质及应用
CN112114744A (zh) * 2020-08-10 2020-12-22 西安交通大学 一种多通道全互联架构的ssd固态盘及其控制方法
CN113343624A (zh) * 2021-06-28 2021-09-03 中国电子科技集团公司第五十八研究所 一种基于eeprom的模拟电路及加密方法
CN115563052A (zh) * 2021-07-02 2023-01-03 西安紫光国芯半导体有限公司 存储访问电路、集成芯片、电子设备及存储访问方法
CN114003526B (zh) * 2021-12-30 2022-04-01 中科声龙科技发展(北京)有限公司 访问片内存储控制单元的写数据通路的方法及电路
CN115086185B (zh) * 2022-06-10 2024-04-02 清华大学深圳国际研究生院 一种数据中心网络系统及数据中心传输方法
CN117349073A (zh) * 2022-06-28 2024-01-05 长鑫存储技术有限公司 数据转换电路及内存装置
CN117153831A (zh) * 2023-09-26 2023-12-01 湖南融创微电子有限公司 一种闪存芯片及控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710270A (zh) * 2009-11-27 2010-05-19 西安奇维测控科技有限公司 一种基于闪存的高速大容量存储器及芯片数据管理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
JP2008090433A (ja) * 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710270A (zh) * 2009-11-27 2010-05-19 西安奇维测控科技有限公司 一种基于闪存的高速大容量存储器及芯片数据管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Meteoric固态盘设计中的并行性策略研究;陈川等;《计算机研究与发展》;20110215;283-288 *
陈川等.Meteoric固态盘设计中的并行性策略研究.《计算机研究与发展》.2011,283-288.

Also Published As

Publication number Publication date
CN102541678A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541678B (zh) 多通道与非型快闪并行存储控制器
CN103176746B (zh) 用于数据存储系统中增强的控制器架构的系统和方法
JP5729774B2 (ja) いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
CN101828172B (zh) 串行接口nand
US7373471B2 (en) Executing background writes to idle DIMMs
CN102096647B (zh) 多芯片存储器系统和相关的数据传送方法
CN103246625B (zh) 一种数据与地址共用引脚自适应调整访存粒度的方法
CN103282887A (zh) 用于进行后台操作的控制器和方法
JP2016053983A (ja) メモリシステムコントローラを含む装置
CN103455440A (zh) 快闪内存装置及快闪内存的数据存取方法
CN105867840A (zh) 闪存组件及非易失性半导体存储器组件
CN102622192A (zh) 一种弱相关多端口并行存储控制器
US11294820B2 (en) Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
TW200941499A (en) Hybrid flash memory storage device and method of controlling the same
US20060095701A1 (en) System, method and storage medium for a memory subsystem with positional read data latency
CN103002046A (zh) 多系统数据拷贝的rdma架构
US20210191657A1 (en) Virtual controller memory buffer
CN111435291A (zh) 用于擦除非易失性存储器块中编程的数据的装置和方法
CN115083451A (zh) 多通道的数据处理方法、装置、设备及存储介质
CN102236625A (zh) 一种可同时进行读写操作的多通道NANDflash控制器
CN114286989B (zh) 一种固态硬盘混合读写的实现方法以及装置
US20150261448A1 (en) Memory system, memory controller and control method of non-volatile memory
CN103106155A (zh) 存储器储存装置、存储器控制器与其数据传输方法
CN104575589B (zh) 一种高可利用率抗辐射的sram自刷新电路及其自刷新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant