CN102169466A - 一种基于页操作的可编程Nandflash控制器 - Google Patents
一种基于页操作的可编程Nandflash控制器 Download PDFInfo
- Publication number
- CN102169466A CN102169466A CN2010102066715A CN201010206671A CN102169466A CN 102169466 A CN102169466 A CN 102169466A CN 2010102066715 A CN2010102066715 A CN 2010102066715A CN 201010206671 A CN201010206671 A CN 201010206671A CN 102169466 A CN102169466 A CN 102169466A
- Authority
- CN
- China
- Prior art keywords
- nandflash
- controller
- descriptor
- nandflash controller
- cpu processor
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出了一种适用于片上系统的基于页操作的可编程Nandflash控制器。在可编程Nandflash控制器和CPU处理器之间增加一块高速异步SRAM,并定义一组描述符,采用软件可编程方式,以Nandflash的页为单位进行访问操作,相对于传统的Nandflash控制器,不仅减少了CPU处理器和Nandflash控制器之间的交互次数,而且能够提高系统访问Nandflash的速度。
Description
技术领域:
本发明所涉及的是一种片上系统的基于页操作的可编程Nandflash控制器,特别适用于采用MLC类型的Nandflash。
背景技术:
对于Nandflash控制器,尤其是MLC类型的Nandflash控制器,受Nandflash Spare空间大小的限制和BCH译码复杂度与数据长度直接相关,截至目前,基本上都是以512字节(8位Nandflash)或256半字(16位Nandflash)为单位进行处理。随着制造工艺水平的提升,Nandflash的容量是越来越大,其对应的页容量大小也越来越大,比如4KB和8KB等,甚至更大。
这就存在一个问题,CPU处理器每次要访问Nandflash的数据时,也必须以512Byte或256HWord为单元进行访问操作。如图1所示,假如要对Nandflash编程一个2KByte的页数据,CPU处理器需要和Nandflash控制器之间进行9次交互操作,极大地影响了系统的访问效率。
此外,近年来片上系统CPU处理器的频率越来越快,已经有1GHz以上的嵌入式处理器,由于Nandflash的接口频率没有太大变化,因此Nandflash控制器的频率一般在133MHz左右,他们之间的频率差距在逐渐增大,如果CPU处理器和Nandflash控制器之间的时钟关系是异步的,那么直接由CPU处理器通过Nandflash控制器来访问外部Nandflash将浪费更多CPU处理器的资源,也直接影响了系统的访问效率。
从上面的分析可以看出,只有同时解决好Nandflash译码块单位偏小和CPU处理器与Nandflash控制器之间频率不平衡的问题,才能有效地提高系统访问Nandflash的速度,同时又没有占用较多的CPU处理器资源。
发明内容:
有鉴于此,本发明基于页操作的可编程Nandflash控制器以增加较少的硬 件资源,采用可编程方式,解决了上面所述的问题。本发明在CPU处理器和Nandflash控制器之间定义一组描述符,CPU处理器把参考图1中需要完成的操作通过描述符方式一次性地指示给Nandflash控制器,由Nandflash控制器自已去解析每个描述符,实现图1对Nandflash页编程操作,在完成编程后通知CPU处理器。
如图2所示,在Nandflash控制器和CPU处理器之间增加一块小容量的高速异步SRAM,高速异步SRAM和CPU处理器之间是以CPU处理器的频率进行访问操作,高速异步SRAM和Nandflash控制器之间以Nandflash控制器的频率进行访问操作,高速异步SRAM的作用是存储Nandflash操作的描述符。为解析描述符,Nandflash控制器内部需要一个描述符控制器和SDMA,完成描述符的解析并实现如图1的页编程操作。
采用高速异步SRAM后,CPU处理器要对Nandflash进行操作时,面对就是一个高速的内部SRAM,而不是较慢的外部Nandflash,因此CPU处理器就能够以处理器的工作频率很快地完成对Nandflash操作所需要描述符的编程,完成编程后使能Nandflash控制器即可,CPU处理器就可以去执行别的系统任务。而Nandflash控制器接收到CPU处理器的指示后,描述符控制器就会去访问高速异步SRAM并解析描述符,调度Nandflash控制器的SDMA,完成对外部Nandflash的访问操作。
参考图1,Nandflash控制器只有在全部完成对外部Nandflash的页编程后才会提中断给CPU处理器,而且对Nandflash的整个编程过程全部由Nandflash控制器完成,执行效率能够有较大的提高,与传统的做法相比具有非常明显的优势。
参考图2,本发明具有的一个特征是向下兼容性,CPU处理器仍然能够通过寄存器控制逻辑,按照原来的方式完成如图1的页编程操作,不影响已有的软件系统体系。
本发明还具有的一个特征是有很强的灵活性和扩展性,由于采用软件编程方式,可以建立一个或多个页的访问操作,能够适应不同类型的Nandflash。
附图说明:
图1为页大小为2KB的Nandflash的页编程过程的示意图;
图2为本发明基于页操作的可编程Nandflash控制器的结构示意图;
图3为本发明描述符的格式说明图;
图4为对Nandflash编程时的描述符编程过程示意图;
图5为对Nandflash读取时的描述符编程过程示意图;
图6为对页大小512字节的Nandflash进行编程时的所建立的描述符。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步说明。
本发明的描述符具有的格式如图3所示,本发明共定义了5类描述符,每个描述符占用8字节空间,包括5个域:
保留域,方便以后扩展应用;
类型域,指示该描述符的操作类型,本发明定义了5种操作类型,包括NAND_REGS、NAND_SDMA、NAND_NXTP、NAND_ECCD和NAND_DEND。
标志位域,结合类型域完成具体的操作;
地址域,主要用来指示访问Nandflash控制器寄存器的地址;
数据域,主要用来指示访问Nandflash控制器寄存器的数据、SDMA访问的系统地址等。
图4和图5分别给出了基于本发明的可编程描述符,对Nandflash进行编程和读取时描述符的建立过程。
对于编程操作,参考图4,首先完成对Nandflash控制器相关寄存器的配置,比如ECC类型和ECC模块的复位等;然后设置访问外部Nandflash的地址;接着启动控制器的SDMA传输数据到Nandfash的主数据空间(Main Data Space),如果数据块不是页的最后一个数据块,把ECC的状态结果写到系统空间,如果数据块是页的最后一个数据块,则控制器会把存在系统空间的ECC状态写到Nandflash的从数据空间(Spare Data Space);完成全部页数据中数据块的传输后,进行编程命令操作和编程状态确认;最后判断描述符是否结束,如果是最后一个描述符,则结束操作并通知CPU,否则继续执行下一个页数据 的描述符操作。
对于读取操作,与编程过程略有不同,是一个相反的过程,需要先从Nandflash中读取一个页的ECC状态并存到系统空间,在每个512数据块操作时,控制器会自动从系统空间读取其ECC状态并配置到对应的寄存器。
图6是给出了对512字节页大小Nandflash编程的描述符,参考图6,描述如下:
第0行调用Nandflash控制器寄存器配置的描述符(NAND_REGS),地址域是寄存器地址的偏移量,数据域是寄存器的配置值,也就是写0x01000000到地址0x00的寄存器(寄存器为NFCONF),配置ECC类型;
第l行,写0x0000080到地址0x08的寄存器(寄存器为NFCMD),也就是往Nandflash发起80h编程命令;
第2到5行,连续写4个0x00000000到地址0x0C的寄存器(寄存器为NFADDR),也就是往Nandflash发起4个地址命令,如图1的地址周期;
第6行,写0x000000F0到地址0x04的寄存器(寄存器为NFCONT),复位控制器内部的ECC模块;
第7行,写0x00000040到地址0x04的寄存器(寄存器为NFCONT),设置ECCLOCK信号为有效,指示ECC模块进行编码;
第8到11行,调用配置SDMA寄存器的描述符(NAND_SDMA),让SDMA从系统地址0x40000000传输512字节数据到Nandflash的Main Data空间;
第12到13行,调用配置SDMA寄存器的描述符(NAND_SDMA),让SDMA把ECC的状态结果(NFMECC0/1/2)写回到系统地址0x41000008;
第14行,写0x000000C0到地址0x04的寄存器(寄存器为NFCONT),设置ECCLOCK信号为无效,指示ECC模块结束编码;
第15到21行,让SDMA从系统地址0x41000000传输16字节数据到Nandflash的Spare Data空间,其中0x41000000到0x41000007为系统信息,0x41000008到0x4100000F为前面SDMA写回的ECC状态结果;
第22行,写0x0000010到地址0x08的寄存器(寄存器为NFCMD),也就是往Nandflash发起10h编程命令,由于Nandflash编程需要一段时间,因此这里需要设置标志位FLAG[2],Nandflash控制器检测到此标志位,会自动判 断RnB的状态,直到RnB不忙才会执行下一个描述符;
第23行,写0x0000070到地址0x08的寄存器(寄存器为NFCMD),也就是往Nandflash发起70h状态查询命令;
第24行,是编程状态结果确认描述符;
第25行,是调用NAND_DEND描述符,即结束描述符。
CPU处理器建立好描述符后,使能Nandflash控制器,Nandflash控制器会依次解析上次描述符,实现对外部Nandflash完成512字节编程的全部过程,结束后提中断给CPU处理器。
以上介绍是基于本发明的一个具体实施例,其中的可编程描述符方式和高速异步SRAM,可适应于不同片上系统的处理器和Nandflash,并不限定于具体的处理器结构和Nandflash。采用同种方式应用于不同的片上系统进行Nandflash操作不超出本发明的提供以及保护范围。
Claims (6)
1.一种基于页操作的可编程Nandflash控制器,在CPU处理器和Nandflash控制器之间增加一块高速异步SRAM,Nandflash控制器内部添加一个描述符控制器和SDMA,其特征在于:
通过所述的高速异步SRAM,在CPU处理器和Nandflash控制器之间定义一组描述符,CPU处理器把需要完成的操作通过描述符方式一次性地指示给Nandflash控制器,由Nandflash控制器自己去解析每个描述符,并在操作结束后通知CPU处理器。
2.根据权利要求1所述的一种基于页操作的可编程Nandflash控制器,其特征在于:
所述高速异步SRAM,和CPU处理器对接的访问速度是CPU处理器的工作频率,和Nandflash控制器对接的访问速度是Nandflash控制器的工作频率。
3.根据权利要求1所述的基于页操作的可编程Nandflash控制器,其特征在于:
所述的描述符由5类描述符构成,包括NAND_REGS、NAND_SDMA、NAND_NXTP、NAND_ECCD和NAND_DEND。
每个描述符由5个域组成,包括保留域、类型域、标志位域、地址域和数据域。
4.根据权利要求1所述的基于页操作的可编程Nandflash控制器,其特征在于:
向下兼容性,CPU处理器仍然能够通过所述可编程Nandflash控制器的寄存器控制逻辑,按照原来的方式完成操作,不影响已有的软件系统体系。
5.根据权利要求2所述的基于页操作的可编程Nandflash控制器,其特征在于:
所述高速异步SRAM是指通用的高速异步SRAM,并不限定于某个具体大小的高速异步SRAM。
6.根据权利要求3所述的基于页操作的可编程Nandflash控制器,其特征在于:
采用描述符机制的软件编程方式,可以建立一个或多个页的访问操作,适应不同类型的Nandflash。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102066715A CN102169466A (zh) | 2010-06-22 | 2010-06-22 | 一种基于页操作的可编程Nandflash控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102066715A CN102169466A (zh) | 2010-06-22 | 2010-06-22 | 一种基于页操作的可编程Nandflash控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102169466A true CN102169466A (zh) | 2011-08-31 |
Family
ID=44490630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102066715A Pending CN102169466A (zh) | 2010-06-22 | 2010-06-22 | 一种基于页操作的可编程Nandflash控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102169466A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010167A (zh) * | 2019-03-26 | 2019-07-12 | 记忆科技(深圳)有限公司 | 一种提高获取描述符状态的方法、装置、计算机设备及存储介质 |
CN113419674A (zh) * | 2021-06-11 | 2021-09-21 | 联芸科技(杭州)有限公司 | 数据编程管理方法、存储器及其控制器,以及计算机系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334758A (zh) * | 2008-07-03 | 2008-12-31 | 深圳市中兴集成电路设计有限责任公司 | 用于嵌入式系统扩展存储空间的装置和方法 |
US20090168525A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Flash memory controller having reduced pinout |
CN101568904A (zh) * | 2006-12-21 | 2009-10-28 | 英特尔公司 | 非易失性存储器的成扇形展开的高速系统体系结构和输入/输出电路 |
-
2010
- 2010-06-22 CN CN2010102066715A patent/CN102169466A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101568904A (zh) * | 2006-12-21 | 2009-10-28 | 英特尔公司 | 非易失性存储器的成扇形展开的高速系统体系结构和输入/输出电路 |
US20090168525A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Flash memory controller having reduced pinout |
CN101334758A (zh) * | 2008-07-03 | 2008-12-31 | 深圳市中兴集成电路设计有限责任公司 | 用于嵌入式系统扩展存储空间的装置和方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010167A (zh) * | 2019-03-26 | 2019-07-12 | 记忆科技(深圳)有限公司 | 一种提高获取描述符状态的方法、装置、计算机设备及存储介质 |
CN113419674A (zh) * | 2021-06-11 | 2021-09-21 | 联芸科技(杭州)有限公司 | 数据编程管理方法、存储器及其控制器,以及计算机系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102207916B (zh) | 一种基于指令预取的多核共享存储器控制设备 | |
RU2550558C2 (ru) | Сравнение и замена позиции таблицы динамической трансляции адреса | |
CN101344840B (zh) | 一种微处理器及在微处理器中执行指令的方法 | |
EP2546757B1 (en) | Flexible flash commands | |
CN101727414B (zh) | 用于在计算机系统中传递中断的技术 | |
CN102184151B (zh) | Pci-e转pci桥装置及其主动预取数据的方法 | |
CN101882119A (zh) | 与非型闪存控制器及其数据传输方法 | |
TW200921510A (en) | System for native code execution | |
US11868780B2 (en) | Central processor-coprocessor synchronization | |
CN101630276A (zh) | 一种高效的内存访问方法 | |
CN103116551A (zh) | 应用于CLB总线的NorFLASH存储接口模块 | |
EP3077911A1 (en) | Methods and systems for autonomous memory | |
CN101071403A (zh) | 动态更新自适应的空闲计时器 | |
US11055220B2 (en) | Hybrid memory systems with cache management | |
TW201835757A (zh) | 垃圾回收方法以及使用該方法的裝置 | |
CN103729142A (zh) | 内存数据的推送方法及装置 | |
US11526441B2 (en) | Hybrid memory systems with cache management | |
CN102169466A (zh) | 一种基于页操作的可编程Nandflash控制器 | |
CN105527889A (zh) | 一种采用stt-mram作为单一存储器的微控制器 | |
CN101751268B (zh) | 主板、储存装置及其控制器与开机方法 | |
CN102654855A (zh) | 一种对Nandflash指令执行进行编程的Nandflash控制器 | |
CN101196808A (zh) | 一种8位微控制器 | |
CN101720040A (zh) | 融合高速存储器和dma通道的视频解码优化方法 | |
CN104035898A (zh) | 一种基于vliw类型处理器的访存系统 | |
CN111158753A (zh) | 具有数据预取功能的Flash控制器结构及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 201203, 11, Lane 572, Lane 115, blue wave road, Zhangjiang hi tech park, Shanghai Applicant after: Shanghai InfoTM Microelectronics Co., Ltd. Address before: 201203, 11, Lane 572, Lane 115, blue wave road, Zhangjiang hi tech park, Shanghai Applicant before: Shanghai InfoTM Microelectronics Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SHANGHAI INFOT MICROELECTRONICS CO., LTD. TO: SHANGHAI INFOTM MICROELECTRONICS CO., LTD. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110831 |