CN116991764B - 一种高性能的Flash控制器和嵌入式系统 - Google Patents

一种高性能的Flash控制器和嵌入式系统 Download PDF

Info

Publication number
CN116991764B
CN116991764B CN202310974197.8A CN202310974197A CN116991764B CN 116991764 B CN116991764 B CN 116991764B CN 202310974197 A CN202310974197 A CN 202310974197A CN 116991764 B CN116991764 B CN 116991764B
Authority
CN
China
Prior art keywords
register
module
configuration information
flash
flash controller
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
CN202310974197.8A
Other languages
English (en)
Other versions
CN116991764A (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.)
Guangzhou Ankai Microelectronics Co ltd
Original Assignee
Guangzhou Ankai Microelectronics 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 Guangzhou Ankai Microelectronics Co ltd filed Critical Guangzhou Ankai Microelectronics Co ltd
Priority to CN202310974197.8A priority Critical patent/CN116991764B/zh
Publication of CN116991764A publication Critical patent/CN116991764A/zh
Application granted granted Critical
Publication of CN116991764B publication Critical patent/CN116991764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)

Abstract

本申请涉及一种高性能的Flash控制器和嵌入式系统。Flash控制器包括配置模块和状态机模块;配置模块接收中央处理器发送的目标操作对应的共享配置信息和多组独立配置信息,根据共享配置信息配置共享寄存器组中的各寄存器及根据各独立配置信息分别配置各独立寄存器组中的各寄存器;共享配置信息为执行目标操作相关的多个目标指令所共用的配置信息,各组独立配置信息为执行各目标指令所分别单独使用的配置信息;状态机模块根据共享配置信息和多组独立配置信息控制Flash控制器按序执行各目标指令以向Flash器件发起目标操作,并自动在最后一个目标指令执行结束时通过配置模块向中央处理器发送中断信号。采用该Flash控制器能够降低中央处理器的开销以及提升系统性能。

Description

一种高性能的Flash控制器和嵌入式系统
技术领域
本申请涉及集成电路技术领域,特别是涉及一种高性能的Flash控制器和嵌入式系统。
背景技术
随着信息时代的发展,社会对数据存储的需求日趋增长。Flash作为一种非易失存储,具有成本低、数据密度大以及体积小等优点,因而在数据存储领域有重要的作用。为提升系统访问Flash器件时的性能,传统的Flash控制器所存在的增加中央处理器的开销以及降低系统性能的问题亟需解决。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低中央处理器的开销以及提升系统性能的高性能的Flash控制器和嵌入式系统。
第一方面,本申请提供了一种Flash控制器。该Flash控制器包括配置模块和状态机模块;该配置模块包括一组共享寄存器组和多组独立寄存器组;该配置模块,用于接收中央处理器发送的与目标操作对应的共享配置信息和多组独立配置信息,并根据该共享配置信息配置该共享寄存器组中的各寄存器,以及根据各独立配置信息分别配置各独立寄存器组中的各寄存器;其中,该共享配置信息为执行该目标操作相关的多个目标指令所共用的配置信息,各组该独立配置信息为执行各目标指令所分别单独使用的配置信息;该状态机模块,用于从配置模块获取该共享配置信息和多组该独立配置信息,根据该共享配置信息和多组该独立配置信息控制该Flash控制器按序执行各目标指令以向Flash器件发起该目标操作,并自动在最后一个目标指令执行结束时通过该配置模块向该中央处理器发送中断信号。
在其中一个实施例中,各独立寄存器组包括传输间隔寄存器,各独立配置信息包括用于配置该传输间隔寄存器的传输间隔时间;该传输间隔时间为该Flash器件执行完上一目标指令后到发起下一目标指令的时间间隔;该状态机模块,具体用于在针对该Flash器件执行最后一个目标指令后,基于执行该最后一个目标指令所对应的传输间隔寄存器的传输间隔时间进行计时,并在计时完成后确定该最后一个目标指令执行结束,并通过该配置模块向该中央处理器发送该中断信号。
在其中一个实施例中,该传输间隔时间为预设的最大指令执行时间。
在其中一个实施例中,该目标指令的处理阶段包括命令阶段、地址阶段、模式位阶段、无效周期阶段和数据阶段;该独立寄存器组还包括传输属性寄存器、传输长度寄存器、指令寄存器、地址寄存器、模式位寄存器和无效周期寄存器;该传输属性寄存器被配置用于开启或关闭各处理阶段;该传输长度寄存器被配置用于定义各处理阶段的长度;该指令寄存器被配置用于定义目标指令;该地址寄存器被配置用于定义操作Flash器件的地址;该模式位寄存器被配置用于定义操作Flash器件的模式位;该无效周期寄存器被配置用于定义操作Flash器件的无效周期数。
在其中一个实施例中,各独立寄存器组中还包括数据寄存器;该Flash控制器用于将该数据寄存器中的第一交互数据写入该Flash器件,或者,将从该Flash器件读取的第二交互数据写入该数据寄存器存储。
在其中一个实施例中,该Flash控制器还包括缓存模块;该共享寄存器组包括CPU传输寄存器;该Flash控制器的工作模式包括CPU模式;在该CPU模式下,该配置模块用于将该中央处理器发送至该CPU传输寄存器中的第三交互数据写入至该缓存模块;以及,从该缓存模块获取读取于该Flash器件的第四交互数据并发送至该中央处理器。
在其中一个实施例中,该Flash控制器还包括与外接的内存设备连接的DMA模块;该Flash控制器的工作模式还包括DMA模式;在该DMA模式下,该DMA模块用于从该配置模块中获取与DMA操作相关的DMA配置信息,以基于该DMA配置信息发起DMA操作;该DMA操作包括:从该缓存模块获取读取于该Flash器件的第五交互数据并将该第五交互数据写入该内存设备,或,读取该内存设备中的第六交互数据并写入该缓存模块。
在其中一个实施例中,该Flash控制器还包括XIP模块;该Flash控制器的工作模式还包括XIP模式;在该XIP模式下,该XIP模块用于接收中央处理器发送的XIP请求以及从该配置模块中获取与XIP模式相关的XIP配置信息,并基于该XIP配置信息处理该XIP请求,以从该缓存模块获取读取于该Flash器件的第七交互数据并将该第七交互数据返回给该中央处理器。
在其中一个实施例中,该Flash控制器还包括时钟控制模块;该时钟控制模块,用于在执行该目标指令时,获取目标指令对应的共享配置信息和独立配置信息,以基于该目标指令对应的共享配置信息和独立配置信息生成符合驱动该Flash器件要求的时钟信号。
在其中一个实施例中,该Flash控制器还包括缓存模块;该状态机模块,还用于在该缓存模块的发送缓存空间为空或者接收缓存空间为满的情况下生成延伸控制信号,并将该延伸控制信号发送至该时钟控制模块;该时钟控制模块,用于根据该延伸控制信号进行时钟延伸处理;该时钟延伸处理指保持当前的时钟信号的电平保持不变。
在其中一个实施例中,该Flash控制器还包括Flash接口控制模块;该状态机模块,具体用于在执行该目标指令时,根据该目标指令对应的共享配置信息和独立配置信息生成器件控制信号,并将该器件控制信号发送至该Flash接口控制模块;该时钟控制信号用于将生成的时钟信号发送至该Flash接口控制模块;该Flash接口控制模块,用于基于Flash接口的时序要求,根据该器件控制信号和该时钟信号,对该Flash器件进行控制和数据交互。
第二方面,本申请还提供了一种嵌入式系统,包括中央处理器、内存设备、Flash器件以及与该中央处理器、内存设备和Flash器件连接的如上述第一方面任一项所述的Flash控制器。
上述高性能的Flash控制器和嵌入式系统,Flash控制器包括配置模块和状态机模块;配置模块包括一组共享寄存器组和多组独立寄存器组;配置模块用于接收中央处理器发送的与目标操作对应的共享配置信息和多组独立配置信息,并根据执行目标操作相关的多个目标指令所共用的共享配置信息配置共享寄存器组中的各寄存器,以及根据执行各目标指令所分别单独使用的各独立配置信息分别配置各独立寄存器组中的各寄存器;状态机模块用于从配置模块获取共享配置信息和多组独立配置信息,根据共享配置信息和多组独立配置信息控制Flash控制器按序执行各目标指令以向Flash器件发起目标操作,并自动在最后一个目标指令执行结束时通过配置模块向中央处理器发送中断信号。这样,当中央处理器指示Flash控制器向Flash器件执行目标操作时,可直接将实现目标操作所需执行的各目标指令的配置信息一次性发送至配置模块,状态机可在各个目标指令均执行完成后向中央处理器发送中断信号,使得中央处理器得知当前执行完目标操作。该过程中,无需Flash控制器在执行目标操作的过程中频繁向中央处理器报告中断信号,也即是中央处理器无需频繁处理中断信号,另外也无需中央处理器实时监控Flash控制器是否完成目标操作,而是在接收到中断信号后可确定目标操作执行完成,由此有效降低中央处理器的开销,进而提升系统的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中Flash控制器的结构示意图;
图2为一个实施例中指令处理阶段的操作时序示意图;
图3为一个实施例中对Flash器件执行擦除操作时的软件硬件交互流程示意图;
图4为一个实施例中对Flash器件执行编程操作时的软件硬件交互流程示意图;
图5为一个实施例中另一种Flash控制器的结构示意图;
图6为一个实施例中另一种Flash控制器的结构示意图;
图7为一个实施例中另一种Flash控制器的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着信息时代的发展,社会对数据存储的需求日趋增长。Flash作为一种非易失存储,具有成本低、数据密度大以及体积小等优点,因而在数据存储领域有重要的作用。为提升系统访问Flash器件时的性能,有必要对传统的Flash控制器的架构进行优化。
其中,Flash器件完成某次编程操作或配置操作往往需要若干不同指令的组合,在传统Flash控制器的工作模式下,Flash控制器需要多次配置和多次中断中央处理器,因而增加了中央处理器的开销以及降低了系统性能。另外,在传统Flash控制器的工作模式下,中央处理器需要内部计时或周期性监测Flash器件的状态位,以确定某次Flash的操作是否执行完成,这同样增加了中央处理器的开销以及降低了系统性能。
为解决传统Flash控制器进行涉及多指令组合的操作时需要频繁上报中断的问题,本申请实施例提供的一种高性能的Flash控制器引入“单配置多传输”机制,可避免因该问题而增加中央处理器的开销与降低系统性能。另外,本申请实施例提供的Flash控制器也引入“传输完成自动计时”机制,可避免中央处理器通过内部计时或周期性监测Flash的状态位以确定某次Flash的操作是否执行完成而增加中央处理器的开销。
下面对本申请实施例提供的Flash控制器进行说明。
在一个实施例中,如图1所示,示出了本申请实施例提供的一种Flash控制器的结构示意图。Flash控制器100包括配置模块101和状态机模块102;配置模块包括一组共享寄存器组101a和多组独立寄存器组101b;配置模块101,用于接收中央处理器发送的与目标操作对应的共享配置信息和多组独立配置信息,并根据共享配置信息配置共享寄存器组101a中的各寄存器,以及根据各独立配置信息分别配置各独立寄存器组101b中的各寄存器;其中,共享配置信息为执行目标操作相关的多个目标指令所共用的配置信息,各组独立配置信息为执行各目标指令所分别单独使用的配置信息;状态机模块102,用于从配置模块101获取共享配置信息和多组独立配置信息,根据共享配置信息和多组独立配置信息控制Flash控制器100按序执行各目标指令以向Flash器件发起目标操作,并自动在最后一个目标指令执行结束时通过配置模块101向中央处理器发送中断信号。
其中,Flash器件也即是Flash存储器,是内存器件的一种,其为一种非易失性(Non-Volatile)内存。
目标操作指针对Flash器件的操作。例如为针对Flash器件的读操作、写操作、擦除操作、编程操作等,在此不做具体限定。可选的,目标操作为通过多个指令的组合而实现的操作。例如,为实现对Flash器件的擦除操作,需要执行写使能指令和擦除指令。那么,可以理解的是,示例性的,若目标操作为擦除操作,则与目标操作相关的多个目标指令即为写使能指令和擦除指令。
当中央处理器(CPU,Central Processing Unit)指示Flash控制器100对Flash器件执行目标操作时,中央处理器可将与目标操作对应的共享配置信息和多组独立配置信息发送至Flash控制器100。其中,各目标指令分别对应一组独立配置信息。
为实现目标操作,需要按序执行各目标指令。对于各目标指令,可能存在执行各目标指令时所共用的一些配置信息,而共享配置信息即为这些共用的配置信息。
共享配置信息中包括共享寄存器组101a中的各寄存器分别对应的配置数据,因此,配置模块101可将共享寄存器组101a中的各寄存器分别对应的配置数据写入各寄存器中。
另外,对于各目标指令,执行各目标指令时需要各目标指令单独对应的一些配置信息,也即是各目标指令分别对应的一组独立配置信息。其中,一组独立寄存器组101b对应一个目标指令,因此,配置模块101在接收到各组独立配置信息时,将各组独立配置信息分别写入对应的一组独立寄存器组101b中。同样的,一组独立配置信息中包括一组独立寄存器组101b中的各寄存器分别对应的配置数据,因此,对于一组独立寄存器组101b,配置模块101是将这一组独立寄存器组101b中的各寄存器分别对应的配置数据写入各寄存器中。
状态机模块102与配置模块101连接,例如通信连接或者线连接。
可选的,在执行第一个目标指令时,配置模块101可从寄存器中读取该目标指令对应的共享配置信息和独立配置信息,并发送至状态机模块102,状态机模块102根据接收到的配置信息同步控制Flash控制器100中的其他模块工作,以使得Flash控制器100通过各模块的组合工作,向Flash器件发起第一个目标指令的处理;当状态机模块102确定Flash器件处理完第一个目标指令后,向配置模块101报告完成信号,然后配置模块101可读取第二个目标指令对应的共享配置信息和独立配置信息,并发送至状态机模块102,状态机模块102根据接收到的配置信息同步控制Flash控制器100中的其他模块工作,以使得向Flash器件发起第二个目标指令的处理;执行同样的过程,直至最后一个目标指令执行完成,实现对Flash器件的目标操作。
其中,最后一个目标指令执行完成为Flash器件执行完最后一个目标指令的处理。可选的,由于Flash器件在完成某些指令的处理后,需要间隔一段时间才能执行下一条指令,因此,最后一个目标指令执行结束可指Flash完成最后一个目标指令的处理并可以继续处理下一个操作对应的其他指令的时刻。这样,状态机模块102通过配置模块101上报中断信号至中央处理器,使得中央处理器无需再内部计时或者周期性检测Flash器件的状态,即可确定Flash器件的操作已经执行完成,减小中央处理器的开销。
可选的,在接收并配置完共享配置信息和独立配置信息后,Flash控制器100即可开始执行目标操作,也即是按序执行各目标指令。
可选的,配置模块101和状态机模块102可通过硬件或者软件与硬件结合的方式实现。
需要说明的是,图1中仅以包括三个独立寄存器组101b作为示例,并不用于限定本申请。独立寄存器组101b可以有多个,可根据目标操作相关的目标指令的数量配置对应数量的独立寄存器组101b。可选的,在执行目标操作时,并未进行配置的独立寄存器组101b可用于其他作用。
可选的,该Flash控制器100中还包括其他模块,例如XIP模块、DMA模块、时钟控制模块、缓存模块、Flash接口控制模块等,具体参见下文的说明。
上述Flash控制器,Flash控制器包括配置模块和状态机模块;配置模块包括一组共享寄存器组和多组独立寄存器组;配置模块用于接收中央处理器发送的与目标操作对应的共享配置信息和多组独立配置信息,并根据执行目标操作相关的多个目标指令所共用的共享配置信息配置共享寄存器组中的各寄存器,以及根据执行各目标指令所分别单独使用的各独立配置信息分别配置各独立寄存器组中的各寄存器,实现单配置多传输机制;状态机模块用于从配置模块获取共享配置信息和多组独立配置信息,根据共享配置信息和多组独立配置信息控制Flash控制器按序执行各目标指令以向Flash器件发起目标操作,并自动在最后一个目标指令执行结束时通过配置模块向中央处理器发送中断信号。这样,当中央处理器指示Flash控制器向Flash器件执行目标操作时,可直接将实现目标操作所需执行的各目标指令的配置信息一次性发送至配置模块,状态机可在各个目标指令均执行完成后向中央处理器发送中断信号,使得中央处理器得知当前执行完目标操作。该过程中,无需Flash控制器在执行目标操作的过程中频繁向中央处理器报告中断信号,也即是中央处理器无需频繁处理中断信号,另外也无需中央处理器实时监控Flash控制器是否完成目标操作,而是在接收到中断信号后可确定目标操作执行完成,由此有效降低中央处理器的开销,进而提升系统的性能。
在一个实施例中,各独立寄存器组101b包括传输间隔寄存器,各独立配置信息包括用于配置传输间隔寄存器的传输间隔时间;传输间隔时间为Flash器件执行完上一目标指令后到发起下一目标指令的时间间隔;状态机模块102,具体用于在针对Flash器件执行最后一个目标指令后,基于执行最后一个目标指令所对应的传输间隔寄存器的传输间隔时间进行计时,并在计时完成后确定最后一个目标指令执行结束,并通过配置模块101向中央处理器发送中断信号。
各独立寄存器组101b对应的一组独立配置信息中均包括传输间隔时间,该传输间隔时间为Flash器件执行完上一目标指令后到发起下一目标指令的时间间隔。上文所说的Flash器件在完成某些指令的处理后,需要间隔一段时间才能执行下一条指令,也就是该传输间隔时间。
具体的,在执行上一个目标指令时,当状态机模块102控制其他模块同步工作以向Flash器件发起该上一个目标指令后,状态机模块102开始计时,当计时时长达到该传输间隔时间时,状态机模块102确定该Flash器件已经处理完该上一个目标指令,可以开始处理下一个目标指令,则可向配置模块101报告完成信号,并获取下一个目标指令的配置信号,以执行该下一个目标指令。直至基于最后一个目标指令对应的配置信息中的传输间隔时间计时完成后,即可上报中断信号至配置模块101,配置模块101再发送中断信号至中央处理器,实现传输自动计时机制。
可选的,各目标指令对应的独立配置信息中的传输间隔时间的时长可以不同。
本申请实施例中,通过独立寄存器中的传输间隔寄存器来定义Flash操作完成上一目标指令后报中断或开始下一目标指令的时间间隔,使得状态机模块可以自动上报中断信号,且对于一个目标操作,仅需上报一次中断信号,从而可避免对Flash发起操作后中央处理器需要周期性监测Flash器件的状态位而增加中央处理器的开销,那么,中央处理器针对系统内其他处理的开销即可提升,从而提升了系统性能。
在一个可选实施例中,传输间隔时间为预设的最大指令执行时间。
其中,中央处理器可设置最大指令执行时间作为传输间隔时间。可选的,不同目标指令对应的最大指令执行时间的时长可以不同。
示例性的,可预先监测Flash器件处理不同指令直至可以处理下一指令所需的最大时长,得到各个指令对应的最大指令执行时间,并将得到的各最大指令执行时间预存至中央处理器中,中央处理器在确定目标操作相关的目标指令后,直接获取各目标指令对应的预设的最大指令执行时间,作为传输间隔时间,以用于对传输间隔寄存器的配置。
通过设定传输间隔时间为预设的最大指令执行时间,为Flash器件处理各目标指令留出冗余时间,确保Flash器件的正常运行。
综合上文可知,本申请实施例中,通过一次配置Flash控制器,允许Flash控制器连续发起多次对Flash器件的不同指令且只会向中央处理器上报一次中断信号,实现“单配置多传输”机制,可避免Flash控制器在完成一系列传输时多次中断中央处理器的情况。以及,Flash控制器往Flash器件执行完某条指令后,状态机模块内部自动根据传输间隔时间计时,达到配置的时长后上报中断信号,实现“传输完成自动计时”机制,可避免中央处理器通过内部计时或周期性监测Flash的状态位以确定某次Flash器件的操作是否执行完成而增加中央处理器的开销,提升系统性能。
下面对Flash控制器100执行一个目标指令所需进行的处理阶段进行说明。
在一个实施例中,目标指令的处理阶段包括命令阶段、地址阶段、模式位阶段、无效周期阶段和数据阶段。其中,各阶段的操作时序如图2所示。其中,CS#为片选信号,SCLK为时钟信号,IO为输入输出信号。
一组独立寄存器组101b除了包括上述传输寄存器外,其还可包括传输属性寄存器、传输长度寄存器、指令寄存器、地址寄存器、模式位寄存器和无效周期寄存器。根据对应的目标指令的五个处理阶段的相关特性,配置对应的独立寄存器组101b内的各寄存器。
其中,传输属性寄存器被配置用于开启或关闭各处理阶段;也即是,根据传输属性寄存器的配置数据,可确定何时开始或者关闭各处理阶段。示例性的,传输属性寄存器的位宽可以为17bits,其中,Bit 0对应传输方向标志位,Bit 1对应指令DDR传输标志位,Bit 2对应地址/模式位/无效周期DDR传输标志位,Bit 3对应数据DDR传输标志位,Bit 4对应指令阶段使能位,Bit 5对应地址阶段使能位,Bit 6对应模式位阶段使能位,Bit 7对应无效周期阶段使能位,Bit 8对应数据阶段使能位,Bit[10:9]对应指令阶段传输位宽(1/2/4/8线),Bit[12:11]对应地址/模式位/无效周期传输位宽(1/2/4/8线),Bit[14:13]对应数据传输位宽(1/2/4/8线),Bit 15对应控制器Flash操作时数据交互的中间介质,中间介质例如为数据寄存器或者缓存模块(参见下文的说明),Bit 16对应独立寄存器组101b有效标志位。
传输长度寄存器被配置用于定义各处理阶段的长度。示例性的,传输长度寄存器的位宽可以为32bits,其中,Bit[1:0]对应目标指令的长度,Bit[3:2]对应地址的长度,Bit[5:4]对应模式位的长度,Bit[31:6]对应数据的长度。
指令寄存器被配置用于定义目标指令。
地址寄存器被配置用于定义操作Flash器件的地址。也即是,执行目标指令时对应操作Flash器件的地址。
模式位寄存器被配置用于定义操作Flash器件的模式位。
无效周期寄存器被配置用于定义操作Flash器件的无效周期数。
在一个实施例中,将不同目标指令共用的状态信息和配置信息分配在共享寄存器组101a中。其中,该共享寄存器组101a可包括状态寄存器、中断使能寄存器、工作模式寄存器、时钟配置寄存器、DMA传输寄存器、CPU传输寄存器和传输启动寄存器。可以理解的是,共享寄存器组101a的配置信息对向Flash器件连续多次发起的各目标指令的相关操作都有效。示例性的,共享寄存器组101a中各寄存器的说明可参见表1所示。
(表1)
在一个实施例中,各独立寄存器组101b中还包括数据寄存器。Flash控制器100用于将数据寄存器中的第一交互数据写入Flash器件,或者,将从Flash器件读取的第二交互数据写入数据寄存器存储。
其中,该Flash控制器100中还可包括缓存模块,Flash控制器100通过缓存模块以缓存与Flash器件进行交互的数据。该缓存模块可包括发送缓存区域与接收缓存区域,以分别缓存向Flash写入的数据以及从Flash读出的数据。可选的,该缓存模块可与状态机模块102通信连接或者线连接,以收状态机模块102的控制与Flash器件进行数据交互。
除了支持通过缓存模块与Flash器件进行数据交互,还支持通过独立寄存器组101b内的数据寄存器而直接与Flash器件进行数据交互。也即是,某次与Flash交互的数据直接来源于数据寄存器或直接写至数据寄存器。
可选的,一次与Flash器件进行数据的数据量不超过4字节。
可选的,通过配置传输属性寄存器的Bit 15可选择交互数据的介质,例如,当Bit15为1时交互数据的中间介质为数据寄存器,当Bit 15为0时交互数据的中间介质为缓存模块。
本申请实施例中,通过数据寄存器进行存储,可扩展Flash控制器的存储空间,以及提升Flash及控制器与Flash器件交互数据的灵活性,避免因缓存模块存储为满时导致的数据交互失败的问题出现。
示例性的,一组独立寄存器组101b中各寄存器的说明可参见表2所示。
(表2)
针对上文的说明,示例性的,请参考图3,示出了本申请实施例提供的一种对Flash器件执行擦除操作时的软件硬件交互流程示意图。请参考图4,示出了本申请实施例提供的一种对Flash器件执行编程操作时的软件硬件交互流程示意图。
请参考图5,其示出了本申请实施例提供的另一种Flash控制器的结构示意图。其中,该Flash控制器100还包括缓存模块103、与外接的内存设备连接的DMA模块104、XIP模块105。本申请实施例中,Flash控制器100的工作模式可包括CPU模式、DMA(Direct MemoryAccess,直接存储器访问)模式和XIP(Executed in Place,本地执行)模式。下面对各模式下的工作过程进行说明。
在一个实施例中,在CPU模式下,配置模块101用于将中央处理器发送至CPU传输寄存器中的第三交互数据写入至缓存模块103;以及,从缓存模块103获取读取于Flash器件的第四交互数据并发送至中央处理器。
其中,所谓的CPU模式是指中央处理器通过配置模块101相应寄存器实现与Flash器件的数据交互。具体的,配置模块101将中央处理器发送到CPU传输寄存器的数据(记为第三交互数据)写入缓存模块103的发送缓存区域;或者,可以将中央处理器需要接收的数据(记为第四交互数据)通过CPU传输寄存器从缓存模块103的接收缓存区域中取出。
在一个实施例中,在DMA模式下,DMA模块104用于从配置模块101中获取与DMA操作相关的DMA配置信息,以基于DMA配置信息发起DMA操作;DMA操作包括:从缓存模块103获取读取于Flash器件的第五交互数据并将第五交互数据写入内存设备,或,读取内存设备中的第六交互数据并写入缓存模块103。
可选的,DMA模块104与外接的内存设备以及缓存模块103通信连接或者线连接。
所谓的DMA模式是指DMA模块104从配置模块101接收关于DMA操作的相关的DMA配置信息后发起DMA操作,以与Flash器件进行数据交互。具体的,DMA模块104可将从内存设备下载的数据(记为第六交互数据)写入发送缓存区域,以在需要的时候写入至Flash器件中。或者,也可以将从Flash器件读取的需上传至内存设备的数据从接收缓存区域中取出。
在一个实施例中,在XIP模式下,XIP模块105用于接收中央处理器发送的XIP请求以及从配置模块101中获取与XIP模式相关的XIP配置信息,并基于XIP配置信息处理XIP请求,以从缓存模块103获取读取于Flash器件的第七交互数据并将第七交互数据返回给中央处理器。
其中,XIP模块105与中央处理器、配置模块101以及缓存模块103连接。
所谓的XIP模式是指XIP模块105从配置模块101接收关于XIP模式的相关的XIP配置信息后,处理中央处理器发起的XIP请求,以实现从Flash中读取数据。具体的,XIP模块105可将中央处理器发起的XIP请求解析后转发到状态机模块102,并从接收缓存区域返回数据(记为第七交互数据)给中央处理器。
本申请实施例中,Flash控制器可处于不同的模式,从而可以灵活的处理数据的交互,提升数据处理的灵活性,便于中央处理器存储数据或者获取数据。
在一个实施例中,在执行目标指令时,状态机模块102可独立控制操作Flash器件的五个阶段,其中,状态机模块102需要根据配置模块101关于上述五个阶段的配置信息控制Flash控制器100中的时钟控制模块、缓存模块103与Flash接口控制模块等同步工作。其中,状态机模块102主要包含空闲状态、指令状态、地址状态、模式位状态、无效周期状态和数据状态。
可选的,Flash控制器100支持对Flash器件的1、2、4或者8线操作,对应的,状态机模块102需要根据不同阶段传输的位宽,进行相应的移位输入/输出操作。其中,状态机模块102内含移位寄存器,用于对各处理阶段的数据进行移位操作。
下面对时钟控制模块和Flash接口控制模块的工作过程进行说明。
请参考图6,其示出了本申请实施例提供的另一种Flash控制器的结构示意图。在一个实施例中,Flash控制器100还包括时钟控制模块106;时钟控制模块106用于在执行目标指令时,获取目标指令对应的共享配置信息和独立配置信息,以基于目标指令对应的共享配置信息和独立配置信息生成符合驱动Flash器件要求的时钟信号。
其中,时钟控制模块106与状态机模块102连接。
时钟控制模块106主要用于根据配置模块101的配置信息产生符合驱动Flash器件要求的时钟信号。具体的,在执行某一目标指令时,时钟控制模块106可获取状态机模块102发送的该目标指令对应的配置信息,基于此,生成与目标指令对应的成符合驱动Flash器件要求的时钟信号。
在一个实施例中,状态机模块102还用于在缓存模块103的发送缓存空间为空或者接收缓存空间为满的情况下生成延伸控制信号,并将延伸控制信号发送至时钟控制模块106;时钟控制模块106用于根据延伸控制信号进行时钟延伸处理。
也即是,时钟控制模块106可接收状态机模块102的控制,在接收到延伸控制信号的情况下,需要进行时钟延伸,以暂停数据的交互。
其中,时钟延伸处理指保持当前的时钟信号的电平保持不变,由此,可避免产生有效的驱动沿或采样沿。
请参考图7,其示出了本申请实施例提供的另一种Flash控制器的结构示意图。其中,Flash控制器100还包括Flash接口控制模块107。其中,状态机模块102具体用于在执行目标指令时,根据目标指令对应的共享配置信息和独立配置信息生成器件控制信号,并将器件控制信号发送至Flash接口控制模块107;时钟控制信号用于将生成的时钟信号发送至Flash接口控制模块107;Flash接口控制模块107用于基于Flash接口的时序要求,根据器件控制信号和时钟信号,对Flash器件进行控制和数据交互。
也即是,Flash接口控制模块107与状态机模块102和时钟控制模块106均连接,并且Flash接口控制模块107与外接的Flash器件连接。其可接收状态机模块102与时钟控制模块106的信号,并在器件控制信号和时钟信号的控制下,按照Flash接口时序要求,对Flash器件进行控制和数据交互。
换言之,Flash控制器100通过Flash接口控制模块107与Flash器件数据交互。
其中,由于直接与系统外接的Flash器件交互,所以该Flash接口控制模块107需要严格地进行物理布局与布线。
另外,Flash控制器100中的各模块可通过硬件或者软件与硬件结合的方式实现。
为便于理解,下面以一个详细的实施例对本申请实施例提供的高性能的Flash控制器进行说明。Flash控制器包括:
配置模块;包含寄存器组,用以实现对控制器工作模式与数据传输方式等进行配置以及协调中央处理器与Flash器件间进行数据交互。具体的,配置模块的寄存器组包含共享寄存器组与数目可配置的独立寄存器组,以实现中央处理器进行一次配置后能对Flash器件连续发起多次不同操作;配置模块的共享寄存器组主要包含状态寄存器、中断使能寄存器、工作模式寄存器、时钟配置寄存器、DMA传输寄存器、CPU传输寄存器和传输启动寄存器,共享寄存器的配置信息对向Flash器件连续多次发起的操作都有效;配置模块的一组独立寄存器组主要包含指令寄存器、地址寄存器、模式位寄存器、无效周期寄存器、数据寄存器、传输长度寄存器、传输属性寄存器和传输间隔寄存器,对Flash器件的每次配置或数据交互需要用到额外一组独立寄存器。
XIP模块;用于将缓存模块的数据返回给中央处理器以处理中央处理器对Flash器件的读数据请求。
DMA模块;用于将内存数据写入缓存模块或将缓存模块数据读出至内存以协调内存与Flash器件间的数据交互。
时钟控制模块;用于根据配置模块的配置信息产生符合驱动Flash器件要求的时钟信号。
缓存模块;用于缓存来自中央处理器、内存或Flash器件的数据,其包含发送缓存与接收缓存。
状态机模块;用于解析配置模块的配置信息,以产生控制Flash器件的控制信息与配置信息,协调数据在缓存模块与Flash器件之间的交互。其中,状态机模块内含传输完成自动计时逻辑,其可实现数据在缓存模块/数据寄存器与Flash器件间交互完成并达到配置的传输间隔时间后再反馈相应的中断状态信息给中央处理器。
Flash接口控制模块;用于接收状态机模块与时钟控制模块的信号并按照Flash接口时序要求对Flash器件进行控制和数据交互。
其中,根据不同操作五个阶段的相关特性配置对应独立寄存器组内的寄存器。具体的,通过配置传输属性寄存器来开启/关闭某个阶段、通过配置传输长度寄存器来定义某个阶段的长度以及通过配置指令寄存器/地址寄存器/模式位寄存器/无效周期数寄存器来定义指令/地址/模式位/无效周期长度;
本申请实施例通过独立寄存器中的传输间隔寄存器来定义Flash操作完成后报中断或开始下一指令的间隔,软件端可配置擦除或编程操作等的最大指令执行时间到该寄存器。
本申请实施例将控制器的工作模式划分为CPU模式、DMA模式和XIP模式。所谓的CPU模式是指中央处理器通过配置模块相应寄存器实现与Flash器件的数据交互。所谓的DMA模式是指DMA模块从配置模块接收关于DMA操作的相关配置信息后发起DMA操作以与Flash器件进行数据交互。所谓的XIP模式是指XIP模块从配置模块接收关于XIP模式的相关配置信息后处理中央处理器发起的XIP请求来实现从Flash中读取数据。
本申请实施例提供的Flash控制器引入“单配置多传输”机制(一次配置Flash控制器后Flash控制器可连续发次多次不同的Flash器件配置与数据交互且只会中断中央处理器一次),可避免Flash控制器在完成一系列传输时频繁中断中央处理器而增加中央处理器开销与降低系统性能。以及,本申请实施例Flash控制器引入“传输完成自动计时”机制(Flash控制器往Flash执行完某条指令并拉高片选信号后,内部自动计时,达到配置的阈值才上报中断信号至中央处理器),从而可避免中央处理器通过内部计时或周期性监测Flash的状态位以确定某次Flash的操作是否执行完成而增加中央处理器的开销,提升系统性能。
基于同样的发明构思,本申请实施例还提供了一种包括上述Flash控制器的嵌入式系统。该嵌入式系统所提供的解决问题的实现方案与上述Flash控制器相关实施例中所记载的实现方案相似,故下面所提供的一个或多个嵌入式系统实施例中的具体限定可以参见上文中对于Flash控制器的限定,在此不再赘述。
在一个实施例中,提供了一种嵌入式系统,该嵌入式系统包括中央处理器、内存设备、Flash器件以及与中央处理器、内存设备和Flash器件连接的如上述任一实施例中的Flash控制器。
本领域技术人员可以理解,上述实施例中示出的结构图,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请中的Flash控制器的结构的具体限定,具体的Flash控制器的结构可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (12)

1.一种Flash控制器,其特征在于,所述Flash控制器包括配置模块和状态机模块;所述配置模块包括一组共享寄存器组和多组独立寄存器组;
所述配置模块,用于接收中央处理器发送的与目标操作对应的共享配置信息和多组独立配置信息,并根据所述共享配置信息配置所述共享寄存器组中的各寄存器,以及根据各所述独立配置信息分别配置各所述独立寄存器组中的各寄存器;其中,所述共享配置信息为执行所述目标操作相关的多个目标指令所共用的配置信息,各组所述独立配置信息为执行各所述目标指令所分别单独使用的配置信息;
所述状态机模块,用于从配置模块获取所述共享配置信息和多组所述独立配置信息,根据所述共享配置信息和多组所述独立配置信息控制所述Flash控制器按序执行各所述目标指令以向Flash器件发起所述目标操作,并自动在最后一个目标指令执行结束时通过所述配置模块向所述中央处理器发送中断信号。
2.根据权利要求1所述的Flash控制器,其特征在于,各所述独立寄存器组包括传输间隔寄存器,各所述独立配置信息包括用于配置所述传输间隔寄存器的传输间隔时间;所述传输间隔时间为所述Flash器件执行完上一目标指令后到发起下一目标指令的时间间隔;
所述状态机模块,具体用于在针对所述Flash器件执行最后一个目标指令后,基于执行所述最后一个目标指令所对应的传输间隔寄存器的传输间隔时间进行计时,并在计时完成后确定所述最后一个目标指令执行结束,并通过所述配置模块向所述中央处理器发送所述中断信号。
3.根据权利要求2所述的Flash控制器,其特征在于,所述传输间隔时间为预设的最大指令执行时间。
4.根据权利要求2所述的Flash控制器,其特征在于,所述目标指令的处理阶段包括命令阶段、地址阶段、模式位阶段、无效周期阶段和数据阶段;所述独立寄存器组还包括传输属性寄存器、传输长度寄存器、指令寄存器、地址寄存器、模式位寄存器和无效周期寄存器;
所述传输属性寄存器被配置用于开启或关闭各处理阶段;
所述传输长度寄存器被配置用于定义各处理阶段的长度;
所述指令寄存器被配置用于定义目标指令;
所述地址寄存器被配置用于定义操作Flash器件的地址;
所述模式位寄存器被配置用于定义操作Flash器件的模式位;
所述无效周期寄存器被配置用于定义操作Flash器件的无效周期数。
5.根据权利要求2所述的Flash控制器,其特征在于,各所述独立寄存器组中还包括数据寄存器;
所述Flash控制器用于将所述数据寄存器中的第一交互数据写入所述Flash器件,或者,将从所述Flash器件读取的第二交互数据写入所述数据寄存器存储。
6.根据权利要求1所述的Flash控制器,其特征在于,所述Flash控制器还包括缓存模块;所述共享寄存器组包括CPU传输寄存器;所述Flash控制器的工作模式包括CPU模式;
在所述CPU模式下,所述配置模块用于将所述中央处理器发送至所述CPU传输寄存器中的第三交互数据写入至所述缓存模块;以及,从所述缓存模块获取读取于所述Flash器件的第四交互数据并发送至所述中央处理器。
7.根据权利要求6所述的Flash控制器,其特征在于,所述Flash控制器还包括与外接的内存设备连接的DMA模块;所述Flash控制器的工作模式还包括DMA模式;
在所述DMA模式下,所述DMA模块用于从所述配置模块中获取与DMA操作相关的DMA配置信息,以基于所述DMA配置信息发起DMA操作;所述DMA操作包括:从所述缓存模块获取读取于所述Flash器件的第五交互数据并将所述第五交互数据写入所述内存设备,或,读取所述内存设备中的第六交互数据并写入所述缓存模块。
8.根据权利要求6所述的Flash控制器,其特征在于,所述Flash控制器还包括XIP模块;所述Flash控制器的工作模式还包括XIP模式;
在所述XIP模式下,所述XIP模块用于接收中央处理器发送的XIP请求以及从所述配置模块中获取与XIP模式相关的XIP配置信息,并基于所述XIP配置信息处理所述XIP请求,以从所述缓存模块获取读取于所述Flash器件的第七交互数据并将所述第七交互数据返回给所述中央处理器。
9.根据权利要求1所述的Flash控制器,其特征在于,所述Flash控制器还包括时钟控制模块;
所述时钟控制模块,用于在执行所述目标指令时,获取目标指令对应的共享配置信息和独立配置信息,以基于所述目标指令对应的共享配置信息和独立配置信息生成符合驱动所述Flash器件要求的时钟信号。
10.根据权利要求9所述的Flash控制器,其特征在于,所述Flash控制器还包括缓存模块;
所述状态机模块,还用于在所述缓存模块的发送缓存空间为空或者接收缓存空间为满的情况下生成延伸控制信号,并将所述延伸控制信号发送至所述时钟控制模块;
所述时钟控制模块,用于根据所述延伸控制信号进行时钟延伸处理;所述时钟延伸处理指保持当前的时钟信号的电平保持不变。
11.根据权利要求9所述的Flash控制器,其特征在于,所述Flash控制器还包括Flash接口控制模块;
所述状态机模块,具体用于在执行所述目标指令时,根据所述目标指令对应的共享配置信息和独立配置信息生成器件控制信号,并将所述器件控制信号发送至所述Flash接口控制模块;
所述时钟控制模块,用于将生成的时钟信号发送至所述Flash接口控制模块;
所述Flash接口控制模块,用于基于Flash接口的时序要求,根据所述器件控制信号和所述时钟信号,对所述Flash器件进行控制和数据交互。
12.一种嵌入式系统,其特征在于,包括中央处理器、内存设备、Flash器件以及与所述中央处理器、所述内存设备和所述Flash器件连接的如权利要求1至11任一所述的Flash控制器。
CN202310974197.8A 2023-08-03 2023-08-03 一种高性能的Flash控制器和嵌入式系统 Active CN116991764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310974197.8A CN116991764B (zh) 2023-08-03 2023-08-03 一种高性能的Flash控制器和嵌入式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310974197.8A CN116991764B (zh) 2023-08-03 2023-08-03 一种高性能的Flash控制器和嵌入式系统

Publications (2)

Publication Number Publication Date
CN116991764A CN116991764A (zh) 2023-11-03
CN116991764B true CN116991764B (zh) 2024-04-05

Family

ID=88526275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310974197.8A Active CN116991764B (zh) 2023-08-03 2023-08-03 一种高性能的Flash控制器和嵌入式系统

Country Status (1)

Country Link
CN (1) CN116991764B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992007335A1 (en) * 1990-10-19 1992-04-30 Cray Research, Inc. A scalable parallel vector computer system
WO2016202114A1 (zh) * 2015-06-16 2016-12-22 深圳市中兴微电子技术有限公司 一种数据传输方法、装置及存储介质
CN111651384A (zh) * 2020-06-05 2020-09-11 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端
CN114139476A (zh) * 2020-09-04 2022-03-04 Oppo广东移动通信有限公司 一种寄存器验证方法、装置、设备及存储介质
CN115858431A (zh) * 2023-02-21 2023-03-28 北京国科环宇科技股份有限公司 数据传输控制方法、控制器及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992007335A1 (en) * 1990-10-19 1992-04-30 Cray Research, Inc. A scalable parallel vector computer system
WO2016202114A1 (zh) * 2015-06-16 2016-12-22 深圳市中兴微电子技术有限公司 一种数据传输方法、装置及存储介质
CN111651384A (zh) * 2020-06-05 2020-09-11 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端
WO2021244194A1 (zh) * 2020-06-05 2021-12-09 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端
CN114139476A (zh) * 2020-09-04 2022-03-04 Oppo广东移动通信有限公司 一种寄存器验证方法、装置、设备及存储介质
CN115858431A (zh) * 2023-02-21 2023-03-28 北京国科环宇科技股份有限公司 数据传输控制方法、控制器及电子设备

Also Published As

Publication number Publication date
CN116991764A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US8310880B2 (en) Virtual channel support in a nonvolatile memory controller
US20040054864A1 (en) Memory controller
US7450461B2 (en) Semiconductor memory device and transmission/reception system provided with the same
EP2372530A1 (en) Data processing method and device
CN113220108B (zh) 计算机可读取存储介质、操作频率调整方法及装置
CN114490460B (zh) 一种用于asic的flash控制器及其控制方法
US20230280929A1 (en) FLASH MEMORY DEVICE, CONTROLLER, AND METHOD CAPABLE OF PERFORMING ACCESS OPERATION UPON DATA UNIT(s) OF MULTIPLE PLANES OF FLASH MEMORY DEVICE IN RESPONSE ONE SIMPLIFIED COMMAND SEQUENCE
US11977776B2 (en) Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes
CN111782027B (zh) Ddr存储器运行频率调整方法及装置
CN101504567B (zh) 一种cpu、cpu指令系统及降低cpu功耗的方法
US20220365892A1 (en) Accelerating Method of Executing Comparison Functions and Accelerating System of Executing Comparison Functions
CN112256203B (zh) Flash存储器的写入方法、装置、设备、介质及系统
CN116991764B (zh) 一种高性能的Flash控制器和嵌入式系统
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
CN111158753A (zh) 具有数据预取功能的Flash控制器结构及其实现方法
WO2020223849A1 (en) Memory control system with a sequence processing unit
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法
US10977196B2 (en) Communication interface control system
CN114641763B (zh) 协议转换器模块系统和使用该协议转换器模块系统的方法
CN116644009A (zh) 指令结构配置方法、控制器及计算机可读存储介质
CN117369870A (zh) 一种子实时处理器、实时处理器和系统级芯片
US20090287860A1 (en) Programmable Direct Memory Access Controller
JP2022002164A (ja) 非順次的ページ連続リード
CN115729863A (zh) 数据传输方法、装置、电子设备及介质
CN118035157A (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