CN112347003B - 一种高效的闪存颗粒微码控制方法 - Google Patents

一种高效的闪存颗粒微码控制方法 Download PDF

Info

Publication number
CN112347003B
CN112347003B CN202011355213.8A CN202011355213A CN112347003B CN 112347003 B CN112347003 B CN 112347003B CN 202011355213 A CN202011355213 A CN 202011355213A CN 112347003 B CN112347003 B CN 112347003B
Authority
CN
China
Prior art keywords
instruction
module
data
microcode
sends
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
CN202011355213.8A
Other languages
English (en)
Other versions
CN112347003A (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.)
Beijing Zeshi Technology Co ltd
Original Assignee
Beijing Zeshi Technology Co ltd
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 Beijing Zeshi Technology Co ltd filed Critical Beijing Zeshi Technology Co ltd
Priority to CN202011355213.8A priority Critical patent/CN112347003B/zh
Publication of CN112347003A publication Critical patent/CN112347003A/zh
Application granted granted Critical
Publication of CN112347003B publication Critical patent/CN112347003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种高效的闪存颗粒微码控制方法,其包括以下步骤:将微码指令集设置成包括发送命令字指令、闪存颗粒数据写入指令、闪存颗粒数据读取指令、写寄存器指令、跳转指令、延时指令、比较指令、任务切换指令、复制指令、基本运算操作指令、加载寄存器数据指令、以及结束指令;固件发送模块描述符给数据控制模块;所述数据控制模块通过所述描述符获取用于微码执行的第一指针;微码控制模块根据所述第一指针依次执行指令,直到遇到所述结束指令,结束当前操作。

Description

一种高效的闪存颗粒微码控制方法
技术领域
本发明涉及闪存控制器技术领域,特别涉及一种高效的闪存颗粒微码控制方法。
背景技术
为了适配各个厂家的闪存颗粒,很多存储控制器都会使用微码控制产生适配该闪存颗粒的时序,一般主要控制包括命令字段的字节数,命令字以及每个字节之间的延时等,微码本身一般不会参与数据调度。
现在闪存颗粒的时序产生逻辑有的是直接用通用的CPU完成,这样CPU的开销太大,大部分是用硬件自定义的微码实现,在硬件实现的微码控制逻辑中一般只用于产生闪存颗粒适配的时序,而其他的操作比如数据调度,查询完成状态等要么是软件控制的,要么是固定的硬件模块控制,如果使用软件控制会加大CPU的负担,硬件固定控制不太灵活。
图1示出了现有技术中的一种闪存颗粒控制模块的结构示意图。如图1所示,以编程流程为例,固件发送模块指令给数据控制模块,数据控制模块解析指令后来做下一步操作,解析数据缓存,检查数据缓存的状态,数据准备好以后通知固件,然后固件根据需要发送微码指针给闪存控制单元,闪存控制单元根据微码指针来执行一段微码,生成闪存颗粒编程所需要的时序,然后固件等待一段时间以后再发送轮训状态的微码,等待一个编程命令的结束。
发明内容
针对现有技术的不足,本发明公开了一种高效的闪存颗粒微码控制方法,其中采用非通用CPU硬件实现的可编程的微码来控制除闪存颗粒时序相关的其他硬件模块,既可以减小CPU的负担,又可以保持灵活性。
具体而言,本发明涉及一种高效的闪存颗粒微码控制方法,其包括以下步骤:
将微码指令集设置成包括发送命令字指令、闪存颗粒数据写入指令、闪存颗粒数据读取指令、写寄存器指令、跳转指令、延时指令、比较指令、任务切换指令、复制指令、基本运算操作指令、加载寄存器数据指令、以及结束指令;
固件发送模块描述符给数据控制模块;
所述数据控制模块通过所述描述符获取用于微码执行的第一指针;
微码控制模块根据所述第一指针依次执行指令,直到遇到所述结束指令,结束当前操作。
其中,所述指令由32bit数据组成。
其中,所述23bit数据中的低4比特被设置用于指示所述指令的类型。
其中,所述指令中的bit数据由硬件完成。
进一步地,所述数据控制模块将解析出来的指令发送给取指模块,并将数据完成状态发送给执行模块;
硬件模块在数据缓存器准备好后将预定寄存器设置为1;
所述取指模块将收到的所述指令发送给译码模块,所述译码模块在解析到比较指令后,将解析信息发送给所述执行模块;
所述执行模块根据来自所述译码模块的解析信息判断是否准备好;
所述取指模块在获取所述比较指令后,继续获取下一条闪存颗粒数据写入指令;
所述译码模块解析所述闪存颗粒数据写入指令的信息,并将解析信息发送给所述执行模块;
所述执行模块将数据从数据缓存器转移到闪存颗粒;
所述取指模块获取任务切换指令,并将其发送给译码模块;
所述译码模块解析所述任务切换指令的信息,并将解析信息发送给所述执行模块;
所述执行模块自动执行轮询状态微码,直到查询到编程状态并送回数据控制模块。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图来获得其他的附图。
图1示出了现有技术中的一种闪存颗粒控制模块的结构示意图;
图2示出了根据本发明的闪存颗粒控制模块的结构示意图。
具体实施方式
在下文中,本发明的示例性实施例将参照附图来详细描述。下面的实施例以举例的方式提供,以便充分传达本发明的精神给本发明所属领域的技术人员。因此,本发明不限于本文公开的实施例。
图2示出了根据本发明的闪存颗粒控制模块的结构示意图。
在本发明的闪存颗粒微码控制方法中,将微码指令集设置成包括以下12种指令:发送命令字(OPC_SEND_CMD_ADDR)、闪存颗粒数据写入(OPC_NAND_DATA_WR)、闪存颗粒数据读取(OPC_NAND_DATA_RD)、写寄存器(OPC_WR_REG)、跳转(OPC_JUMP)、延时(OPC_DELAY)、比较(OPC_COMPARE)、任务切换(OPC_TS)、复制(OPC_COPY)、基本运算操作(OPC_OP)、加载寄存器数据(OPC_LOAD)、以及结束(OPC_END)。其中,每个指令由32bit数据组成,其中低4比特用来指示指令的类型,表示是指令集里面的哪一种指令。
其中,发送命令字(OPC_SEND_CMD_ADDR)、闪存颗粒数据写入(OPC_NAND_DATA_WR)、闪存颗粒数据读取(OPC_NAND_DATA_RD)等指令的定义可以如下表所示:
在本发明中,指令里面所有bit的解析全部由硬件独立完成,由此提高效率。
以编程流程为例,固件发送模块描述符给数据控制模块,数据控制模块通过描述符拿到微码执行的首指针,即操作的第一个指令,接下来微码控制模块会根据首指针依次执行指令,直到遇到OPC_END,表示当前的操作结束。其中,编程流程可以如下:
数据控制模块将解析出来的指令发送到取指模块,同时将数据完成状态发送给执行模块,数据缓存器准备好后,硬件模块会将特定的寄存器设置为1。
取指模块将取到的指令送到译码模块,译码模块解析到OPC_COMPARE以后将解析的信息发送给执行模块。
执行模块通过译码模块的信息来执行判断是否准备好。
取指模块取完OPC_COMPARE的指令后会继续取下一条指令OPC_NAND_DATA_WR。
译码模块解析OPC_NAND_DATA_WR的指令信息发送给执行模块。
执行模块会执行数据从数据缓存器搬到闪存颗粒的操作。
取指模块会取到OPC_TS的指令,发送给译码模块,译码解析出对应的信息后发送给执行模块。
执行模块会在硬件的后台自动执行轮询状态的微码,直到查询到编程状态送回给数据控制模块。
在本发明的控制方法中,整个过程不需要CPU参与,减少CPU的开销,同时由于是微码控制的,什么时候执行对应的微码都是可以配置的。比如调换上述步骤的顺序(如果有必要),在上述步骤中插入新的步骤,只要是硬件支持的指令都是可以的,非常灵活。
在本发明中,微码指令可以参与数据调度以及自动查询完成状态等其他操作;且微码由于都是硬件实现,可以极大的减少CPU的开销,提升闪存颗粒的读写性能,控制器面积也有所减小功耗也会相应减少;此外,本发明的微码指令由于数据调度等操作的执行顺序和指令数据都是可配置的,可以将数据调度等操作变得比一般的硬件实现更加灵活。
尽管前面结合附图通过具体实施例对本发明进行了说明,但是,本领域技术人员容易认识到,上述实施例仅仅是示例性的,用于说明本发明的原理,其并不会对本发明的范围造成限制,本领域技术人员可以对上述实施例进行各种组合、修改和等同替换,而不脱离本发明的精神和范围。

Claims (1)

1.一种高效的闪存颗粒微码控制方法,其包括以下步骤:
将微码指令集设置成包括发送命令字指令、闪存颗粒数据写入指令、闪存颗粒数据读取指令、写寄存器指令、跳转指令、延时指令、比较指令、任务切换指令、复制指令、基本运算操作指令、加载寄存器数据指令、以及结束指令;
固件发送模块描述符给数据控制模块;
所述数据控制模块通过所述描述符获取用于微码执行的第一指针;
微码控制模块根据所述第一指针依次执行指令,直到遇到所述结束指令,结束当前操作;
所述指令由32bit数据组成;
所述32bit数据中的低4比特被设置用于指示所述指令的类型;
所述指令中的bit数据由硬件完成;
所述数据控制模块将解析出来的指令发送给取指模块,并将数据完成状态发送给执行模块;
硬件模块在数据缓存器准备好后将预定寄存器设置为1;
所述取指模块将收到的所述指令发送给译码模块,所述译码模块在解析到比较指令后,将解析信息发送给所述执行模块;
所述执行模块根据来自所述译码模块的解析信息判断是否准备好;
所述取指模块在获取所述比较指令后,继续获取下一条闪存颗粒数据写入指令;
所述译码模块解析所述闪存颗粒数据写入指令的信息,并将解析信息发送给所述执行模块;
所述执行模块将数据从数据缓存器转移到闪存颗粒;
所述取指模块获取任务切换指令,并将其发送给译码模块;
所述译码模块解析所述任务切换指令的信息,并将解析信息发送给所述执行模块;
所述执行模块自动执行轮询状态微码,直到查询到编程状态并送回数据控制模块。
CN202011355213.8A 2020-11-26 2020-11-26 一种高效的闪存颗粒微码控制方法 Active CN112347003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011355213.8A CN112347003B (zh) 2020-11-26 2020-11-26 一种高效的闪存颗粒微码控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011355213.8A CN112347003B (zh) 2020-11-26 2020-11-26 一种高效的闪存颗粒微码控制方法

Publications (2)

Publication Number Publication Date
CN112347003A CN112347003A (zh) 2021-02-09
CN112347003B true CN112347003B (zh) 2024-05-14

Family

ID=74364910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011355213.8A Active CN112347003B (zh) 2020-11-26 2020-11-26 一种高效的闪存颗粒微码控制方法

Country Status (1)

Country Link
CN (1) CN112347003B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578234B (zh) * 2023-04-27 2023-11-14 珠海妙存科技有限公司 闪存访问系统及方法
CN116185892B (zh) * 2023-04-27 2023-07-21 珠海妙存科技有限公司 闪存控制器及其访问闪存颗粒的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0067556A2 (en) * 1981-05-22 1982-12-22 Data General Corporation Digital data processing system
CN1488105A (zh) * 2001-01-31 2004-04-07 �Ҵ���˾ 控制数据处理系统间经由存储器的数据流的方法和装置
CN102902644A (zh) * 2012-09-28 2013-01-30 忆正科技(武汉)有限公司 一种闪存控制器以及闪存控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0067556A2 (en) * 1981-05-22 1982-12-22 Data General Corporation Digital data processing system
CN1488105A (zh) * 2001-01-31 2004-04-07 �Ҵ���˾ 控制数据处理系统间经由存储器的数据流的方法和装置
CN102902644A (zh) * 2012-09-28 2013-01-30 忆正科技(武汉)有限公司 一种闪存控制器以及闪存控制方法

Also Published As

Publication number Publication date
CN112347003A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
CN112347003B (zh) 一种高效的闪存颗粒微码控制方法
CN110634530B (zh) 芯片的测试系统和测试方法
US10552047B2 (en) Memory system
US9411521B2 (en) Method and apparatus for improving sequential memory read preformance
CN101303884B (zh) 与非型闪存控制器和读写控制系统及方法
US7836382B2 (en) Bufferless writing of data to memory
CN102609222B (zh) 基于命令描述符的闪存控制方法
US20180068734A1 (en) Methods for read retries and apparatuses using the same
CN109669729A (zh) 一种处理器的启动引导方法
US8856497B2 (en) Central processor for memory tag
KR100829788B1 (ko) 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법
JPH1078889A (ja) マイクロコンピュータ
US20090106509A1 (en) Memory system and method of driving the same
US20030023836A1 (en) Shadow register array control instructions
CN115586867B (zh) NVMe控制器
US20090198876A1 (en) Programmable Command Sequencer
TWI762908B (zh) 串接式擴增裝置及包含其之串接式系統
US20030126484A1 (en) Reduced power option
TWI716909B (zh) 記憶體控制系統及操作記憶體控制系統的方法
US8166228B2 (en) Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods
US20120124272A1 (en) Flash memory apparatus
CN109086003B (zh) 降低集成电路功耗的方法及其介质接口控制器
US7272680B2 (en) Method of transferring data between computer peripherals
KR20080002419A (ko) n비트의 CPU 및 이를 이용한 데이터 버스트 리드 방법
CN117043747A (zh) 用于促进高效的硬件-固件交互的装置、系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant