CN104598402B - 一种闪存控制器和闪存控制器的控制方法 - Google Patents

一种闪存控制器和闪存控制器的控制方法 Download PDF

Info

Publication number
CN104598402B
CN104598402B CN201410851175.3A CN201410851175A CN104598402B CN 104598402 B CN104598402 B CN 104598402B CN 201410851175 A CN201410851175 A CN 201410851175A CN 104598402 B CN104598402 B CN 104598402B
Authority
CN
China
Prior art keywords
access
read
flash memory
erasing
write access
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
CN201410851175.3A
Other languages
English (en)
Other versions
CN104598402A (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.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
GigaDevice Semiconductor Beijing Inc
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 GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN201410851175.3A priority Critical patent/CN104598402B/zh
Priority to EP15874628.9A priority patent/EP3242199B1/en
Priority to PCT/CN2015/071990 priority patent/WO2016106935A1/zh
Priority to US15/506,247 priority patent/US10289303B2/en
Publication of CN104598402A publication Critical patent/CN104598402A/zh
Application granted granted Critical
Publication of CN104598402B publication Critical patent/CN104598402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种闪存控制器和闪存控制器的控制方法,所述闪存控制器包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;读写访问过滤单元,用于接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;擦除访问过滤单元,用于接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;闪存控制单元,用于根据所述读写访问或擦除访问完成针对闪存的访问。本发明用以保护程序不被客户窃取,同时保护合作开发程序的公司不能相互窃取对方的程序。

Description

一种闪存控制器和闪存控制器的控制方法
技术领域
本发明涉及电子电路技术领域,特别是涉及一种闪存控制器和一种闪存控制器的控制方法。
背景技术
随着集成电路技术的不断提高,MCU(Micro Control Unit,微控制单元)芯片的应用越来越广泛,小到儿童玩具,大到工程机械,都需要用到MCU芯片。MCU芯片通常包含CPU(Central Processing Unit,中央处理器)、闪存(Flash Memory)、SRAM(Static RandomAccess Memory,静态随机存储器)和各种外围设备。在MCU芯片掉电时,闪存的内容不会丢失,而SRAM的内容则会丢失。闪存通常会被分为两个独立的区域:一个是闪存用户区,用来存储用户的程序;另一个是闪存信息区,用来存放MCU芯片的配置信息。SRAM一般用作片上缓存。
对于MCU芯片的方案商而言,也就是基于MCU芯片开发程序和外围电路的厂商,程序最终会烧写到MCU芯片的闪存用户区中,由于方案商的核心价值在于所开发的程序,故需要保证程序绝对安全,不能被他人窃取。MCU芯片的信息保护方案的目标就是保护闪存用户区的内容不被他人窃取。目前市场上的MCU芯片的产品在信息保护方案方面,都只是对其闪存用户区的内容整体地保护,无法满足多家公司合作开发程序的需求。因为它只能保护闪存用户区的内容不被客户窃取,而不能阻止合作开发程序的公司相互窃取对方的程序。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种闪存控制器,用以保护程序不被客户窃取,同时保护合作开发程序的公司不能相互窃取对方的程序。
发明内容
本发明实施例所要解决的技术问题是提供一种闪存控制器,用以保护程序不被客户窃取,同时保护合作开发程序的公司不能相互窃取对方的程序。
相应的,本发明实施例还提供了一种闪存控制器的控制方法,用以保证上述装置的实现及应用。
为了解决上述问题,本发明公开了一种闪存控制器,所述闪存控制器包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
读写访问过滤单元,用于接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
擦除访问过滤单元,用于接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
闪存控制单元,用于根据所述读写访问或擦除访问完成针对闪存的访问。
优选地,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;
读保护控制单元,用于接收选项字节;判断当前对闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对闪存用户区的访问是否来自调试手段等控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
分区保护控制单元,用于确定当前的分区保护工作方式。
优选地,所述闪存控制器还包括选项字节镜像和调试手段监测单元;
选项字节镜像,用于复制闪存信息区中的选项字节;
调试手段监测单元,用于监测当前对闪存用户区的访问是否来自调试手段。
优选地,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;
读写访问过滤单元,用于在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
优选地,所述读写访问包括更改选项字节的访问;
读写访问过滤单元,还用于在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
优选地,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;
擦除访问过滤单元,用于在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
擦除访问过滤单元,用于在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
优选地,所述配置寄存器包括擦除访问完成状态位;
配置寄存器,用于在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位;
优选地,所述配置寄存器包括出错标志位;
配置寄存器,用于在接收到所述失败擦除响应信号时,更改所述出错标志位。
优选地,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
优选地,所述闪存控制器包括主控单元,
所述主控单元,用于控制闪存控制器各个模块协调工作。
本发明实施例还公开了一种闪存控制器的控制方法,所述闪存控制器包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
采用所述读写访问过滤单元接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
采用所述擦除访问过滤单元接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
采用所述闪存控制单元根据所述读写访问或擦除访问完成针对闪存的访问。
优选地,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;所述的方法还包括:
采用读保护控制单元接收选项字节;判断当前对闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对闪存用户区的访问是否来自调试手段等控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
采用分区保护控制单元确定当前的分区保护工作方式。
优选地,所述闪存控制器还包括选项字节镜像和调试手段监测单元;所述的方法还包括:
采用选项字节镜像复制闪存信息区中的选项字节;
采用调试手段监测单元监测当前对闪存用户区的访问是否来自调试手段。
优选地,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;所述的方法还包括:
采用读写访问过滤单元在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
优选地,所述读写访问包括更改选项字节的访问;所述的方法还包括:
采用读写访问过滤单元在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
优选地,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;所述的方法还包括:
采用擦除访问过滤单元在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
采用擦除访问过滤单元在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
优选地,所述配置寄存器包括擦除访问完成状态位;所述的方法还包括:
采用配置寄存器在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位;
优选地,所述配置寄存器包括出错标志位;所述的方法还包括:
采用配置寄存器在接收到所述失败擦除响应信号时,更改所述出错标志位。
优选地,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
与现有技术相比,本发明实施例包括以下优点:
在本发明实施例中,读写访问过滤单元和擦除访问过滤单元根据接收到的控制信息,在接收到读写访问或者擦除访问时,可以根据控制信息判断是否将所述读写访问或者擦除访问传送给闪存控制单元,使得闪存控制单元根据所述读写访问或擦除访问完成针对闪存的访问。本发明实施例在多家公司合作开发程序时,根据控制信息确定是否允许访问闪存,从而可以保护在闪存用户区中的程序不被合作开发程序的其他公司窃取。
附图说明
图1是本发明的一种基于哈佛结构CPU的MCU芯片的系统结构示意图;
图2是本发明的一种闪存控制器实施例的结构框图;
图3是本发明的一种基于若干分区的MCU芯片闪存控制器的工作流程示意图;
图4是本发明的一种闪存控制器的控制方法实施例的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
下面介绍了本发明实施例的一种MCU芯片的信息保护方案。
通过闪存信息区的若干控制位来控制闪存控制器的读保护级别。闪存控制器的读保护级别分三级,各级别的特征如下:
零级读保护:闪存用户区完全开放,可以任意读、写和擦除。闪存信息区也一样完全开放。
一级读保护:从闪存用户区启动可以正常访问闪存用户区;其他启动方式(包括从其他位置启动以及JTAG(Joint Test Action Group,联合测试工作组))等调试手段均不能访问闪存用户区,读、写和擦除等操作都不行。在此级别下,可以访问闪存信息区,但如果修改控制位将闪存控制器的读保护级别改为零级,闪存用户区的内容会全部被擦除。
二级读保护:从闪存用户区启动可以正常访问闪存用户区;其他启动方式(包括从其他位置启动以及JTAG等调试手段)均不可用。在此级别下,闪存信息区只可读,不可写,也不可擦除。
上述的MCU芯片的信息保护方案是将闪存用户区作为一个整体来保护的。如果MCU芯片的程序完全由一家公司来开发,采用此方案可以满足需求。但随着MCU芯片应用日趋复杂,MCU芯片的程序会越来越复杂。将来会有多家公司合作开发程序的需求。而该MCU芯片信息保护方案是满足不了的。因为它只能保护闪存用户区的内容不被客户窃取,不能阻止合作开发程序的公司之间相互窃取对方的程序。基于这样的需求,本发明实施例进一步提出了一种MCU芯片的信息保护方案。
应用本发明实施例的MCU信息保护方案,可以满足两家公司合作开发MCU芯片程序的需求。本发明实施例将闪存用户区分为若干分区,合作开发程序的多家公司可分别将自己开发的程序烧写到属于自己的分区中。本发明实施例可以保证多家公司的程序之间既可以正常实现相互调用,又不能相互窃取对方分区中的程序,同时保护程序不被客户窃取。另外,如果SRAM和其他外围设备都由合作的多家公司共享,程序有可能通过这些共享资源被合作方窃取。对此,本发明实施例还可以将特定SRAM或外围设备划分给某一方作为私有设备,扩宽了本发明实施例的应用范围。
参照图1,示出了本发明的一种基于哈佛结构CPU的MCU芯片的系统结构示意图,MCU芯片通常包含CPU、总线、闪存、闪存控制器、SRAM、各种主设备和从设备(外围设备)等等。其中,所述总线可以包括指令总线、数据总线和系统总线。在具体实现中,CPU通过指令总线、数据总线和系统总线与总线互联矩阵相连。指令总线负责读取指令;数据总线负责数据访问;系统总线负责访问外围设备。
MCU芯片的闪存控制器是连接总线和闪存的桥梁。闪存控制器有同样的三条总线与总线互联矩阵相连,其中指令总线负责接受CPU的取指令访问;数据总线负责接受CPU的数据访问;它的配置寄存器是通过系统总线被访问的。SRAM以及各种外围设备都是连接在总线互联矩阵上的。在本发明实施例中,在多家公司合作开发MCU芯片的程序时,可以将若干分区分别划分给合作开发程序的多家公司,并且可以将外围设备设计为某一分区的私有设备,每个分区具有对应的分区使能信号,私有设备会受闪存控制器输出的分区使能信号控制。
所述“访问”包含所有的操作。MCU芯片的总线有读操作和写操作,那么总线访问包含读操作和写操作。闪存有读操作、写操作和擦除操作,那么对闪存的访问就包含读操作、写操作和擦除操作。
参照图2,示出了本发明的一种闪存控制器实施例的结构框图,所述闪存控制器可以包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
读写访问过滤单元,用于接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
擦除访问过滤单元,用于接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
闪存控制单元,用于根据所述读写访问或擦除访问完成针对闪存的访问。
在本发明的一种优选实施例中,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;
读写访问过滤单元,用于在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
读写访问过滤单元的作用是立即放行需要立即响应的读写访问,延迟放行需要延迟响应的读写访问,以及过滤不需要响应的读写访问。控制的依据是所述分区保护工作方式和读保护方法,以及控制通路6和控制通路7传来的控制信息。来自指令总线接口和数据总线接口的读写访问分别通过数据路径1和数据路径2传送给读写访问过滤单元;未被过滤掉的来自指令总线接口和数据总线接口的读写访问分别通过数据路径3和数据路径4传送给内部总线矩阵。对于需要立即响应的读写访问,读写访问过滤单元会立即将它们传送给内部总线矩阵,并在访问完成时将正确完成的响应信号发送给相应的总线接口(指令总线接口或数据总线接口)。对于需要延迟响应的读写访问,读写访问过滤单元会延迟特定的时间之后再将它们传送给内部总线矩阵,并在访问完成时将正确完成的响应信号发送给相应的总线接口。对于不需要响应的读写访问,读写访问过滤单元不会将他们传送给内部总线矩阵,而是直接将错误完成的响应信号发送给相应的总线接口。
在本发明实施例中,闪存控制单元的作用是根据闪存的控制方法和时序要求控制闪存,完成针对闪存的各种访问。
在本发明的一种优选实施例中,所述读写访问可以包括更改选项字节的访问;
读写访问过滤单元,还用于在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
在本发明实施例中,如果当前访问是需要响应的更改选项字节的访问,读写访问过滤单元会通过数据路径8将该访问传送给选项字节镜像。
在本发明的一种优选实施例中,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;
擦除访问过滤单元,用于在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
擦除访问过滤单元,用于在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
在本发明的一种优选实施例中,所述配置寄存器包括擦除访问完成状态位;
配置寄存器,用于在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位;
在本发明的一种可选实施例中,所述配置寄存器可以包括出错标志位;
配置寄存器,用于在接收到所述失败擦除响应信号时,更改所述出错标志位。
参照图2,指令总线接口连接指令总线,数据总线接口连接数据总线。它们的作用是遵循总线协议接受相应总线的访问,通过数据路径1和数据路径2将相应总线的读写访问传送给读写访问过滤单元,并根据读写访问过滤单元的状态产生总线响应信号。总线响应信号包含当前读写访问是否完成,以及当前读写访问完成得是否正确等信息。
系统总线接口连接系统总线。系统总线通过系统总线接口和数据路径6访问配置寄存器。配置寄存器包含闪存控制器的所有配置信息和状态信息。更改配置寄存器可以调整闪存控制器的工作模式,查询配置寄存器可以了解闪存控制器的工作状态。相关控制信息通过控制通路1与主控单元交互。对闪存的擦除访问是通过配置寄存器发起的。配置寄存器包含需要擦除的地址空间和擦除使能相关的配置位,还包含表征擦除访问是否完成的擦除访问完成状态位。相关控制信息通过控制通路2与擦除访问过滤单元交互。
擦除访问过滤单元的作用是放行需要响应的擦除访问和过滤不需要响应的擦除访问。控制的依据是所述分区保护工作方式和读保护方法,以及控制通路4和控制通路5传来的控制信息。需要响应的擦除访问由配置寄存器发起,通过控制通路2到达擦除访问过滤单元,再通过控制通路3到达闪存控制单元,由闪存控制单元控制闪存完成,完成信息通过控制通路3、擦除访问过滤单元和控制通路2反馈给配置寄存器,更新擦除访问完成状态位。不需要响应的擦除访问由配置寄存器发起,通过控制通路2到达擦除访问过滤单元,擦除访问过滤单元不是将该访问传送给闪存控制单元而是直接将完成信息通过控制通路2反馈给配置寄存器,更新擦除访问完成状态位。可选的,在本发明实施例中,如果配置寄存器中有擦除访问出错标志位,此时可将该标志位置1,表示擦除访问出错。
在本发明的一种优选实施例中,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
参照图2,内部总线矩阵就是普通的总线互联矩阵。它的作用是将两条总线(数据通路3和数据通路4)合为一条总线(数据通路5)。当数据路径3和数据路径4之中只有一条数据路径上有访问时,内部总线矩阵会直接通过数据路径5将该访问传送给闪存控制单元。当数据通路3和数据通路4上同时有访问时,内部总线矩阵会选择其中之一先通过数据路径5传送给闪存控制单元,等该访问完成后再将另一个访问通过数据路径5传送给闪存控制单元。选择的方法有很多,可以永远优先选择来自数据路径4的访问,也可以用其他选择方法,本发明实施例对此不做限制。
在本发明的一种优选实施例中,所述闪存控制器还可以包括主控单元,所述主控单元的作用是控制闪存控制器各模块协调工作。
在本发明的一种优选实施例中,所述闪存可以包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问可以包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息可以包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还可以包括分区保护控制单元和读保护控制单元;
读保护控制单元,用于接收选项字节;判断当前对所述闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对所述闪存用户区的访问是否来自调试手段等控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
分区保护控制单元,用于确定当前的分区保护工作方式。
参照图2,在本示例中读保护控制单元的作用是根据控制通路8传来的信息确定当前访问是否来自调试手段,根据控制通路9传来的信息确定当前的读保护级别和读保护状态,并将擦除访问过滤相关的控制信息通过控制通路5传送给擦除访问过滤单元,将读写访问过滤相关的控制信息通过控制通路7传送给读写访问过滤单元。
分区保护控制单元的作用是根据分区保护工作方式来确定当前处于什么分区工作状态,包括初始状态,各个分区的分区工作状态和过渡状态。并将当前的状态信息通过控制通路4传送给擦除访问过滤单元,通过控制通路6传送给读写访问过滤单元。
在本发明的一种优选实施例中,所述闪存控制器还包括选项字节镜像和调试手段监测单元;
选项字节镜像,用于复制所述闪存信息区中的选项字节;
调试手段监测单元,用于监测当前对所述闪存用户区的访问是否来自调试手段。
参照图2,在本示例中选项字节镜像是闪存信息区的选项字节的镜像寄存器。它的内容时刻与闪存信息区的选项字节保持一致。在芯片上电时,闪存控制单元会通过数据路径7自动将闪存信息区的选项字节内容复制到选项字节镜像中。在芯片运行时,如果要更改选项字节,读写访问过滤单元会通过数据路径8同时更改选项字节镜像。
调试手段监测单元的作用是监测当前对闪存用户区的访问是否来自调试手段。本发明实施例限制除CPU之外的其他主设备不能访问闪存用户区,所以对闪存用户区的访问只可能来自CPU。如果CPU从闪存用户区启动,则判断当前访问来自正常工作方式;如果CPU从其他位置(如片上SRAM)启动或各种调试接口(如JTAG)正在控制CPU,则判断当前访问来自调试手段。
应用本发明实施例,至少具有如下两个优点:第一,保护闪存的内容不被终端客户窃取;第二,确保合作开发程序的多家公司之间不能相互窃取对方的程序。
合作开发程序的多家公司一定有一家是开发主程序的,其他则是开发库函数的。此处将开发主程序的公司称为主公司,开发库函数的公司称为从公司。合作开发程序的多家公司分别对应的不同的分区。较佳地,主分区位于靠前段地址空间,从分区位于靠后段地址空间。这样便于MCU芯片启动时率先执行主公司的程序。本发明实施例的MCU芯片信息保护的方法可以分为三部分来描述:第一部分是分区保护工作方式;第二部分是读保护的定义及使用方法;第三部分是私有设备的实现方法。前两部分是在闪存控制器中实现的;第三部分是根据闪存控制器输出的分区使能信号在私有设备中实现的。
第一部分:分区保护工作方式。
在闪存用户区启动时,闪存用户区可以正常接受CPU指令总线的访问,并可以受限制的接受CPU数据总线的访问,但不接受其他主设备的访问。
参照图3所示的本发明的一种基于若干分区的MCU芯片闪存控制器的工作流程示意图,在本示例中,闪存用户区共有n个分区,每个分区分别具有对应工作状态、过渡状态以及一系列判断条件。在图3中只详细描述了第x分区工作状态,其他分区是类似的。在本发明实施例中有多少个分区,就可以有多少个分区状态,在以下的步骤中为了较好理解,只描述了第x分区工作状态、第y分区工作状态和第z分区工作状态,其他分区工作状态则略去了,但是不应当理解本发明实施例只有第x分区工作状态、第y分区工作状态和第z分区工作状态。其中,x,y,z,k都是大于等于1且小于等于n的任意正整数,x,y,z互不相等,且k不等于x。当n等于2这个特殊值时,1到n之间只有1和2两个正整数,在此情况下z不存在。具体的步骤如下所示:
在MCU芯片复位后,闪存控制器处于初始状态。在初始状态下,指令总线可以访问所有分区,数据总线不能访问任何分区。如果指令总线没有访问闪存用户区,则保持在初始状态;否则,根据指令总线所访问的地址属于哪个分区来跳转到对应该分区的分区工作状态。
在第x分区工作状态下,指令总线可以访问所有分区,数据总线可以访问第x分区但不能访问其他分区(若访问其他分区,返回错误响应)。如果指令总线没有访问闪存用户区,则保持在当前状态;否则,如果指令总线访问的是第x分区,则保持当前的分区工作状态,如果指令总线访问的是其他分区,则跳转到第x分区过渡状态。
在第x分区过渡状态下,首先要记录刚才指令总线访问的是哪个分区(设为第k分区),同时暂停响应指令总线,数据总线可以访问第x分区但不能访问其他分区(访问其他分区,返回错误响应)。如果还没有达到预设的等待时间,则保持在当前状态;否则,跳转到第k分区工作状态。
在本发明的具体应用的一种示例中,在过渡状态中的预设等待时间的长短与MCU芯片的CPU的特性相关。哈佛结构CPU通过指令总线读取指令,通过数据总线完成数据访问,两者是并行工作的。CPU通过指令总线取得要执行的指令,经过指令解析得出是否需要数据访问以及需要访问哪个地址的数据,然后通过数据总线完成相应数据访问。
从指令总线读取指令到数据总线完成相应数据访问要经过若干周期。过渡状态的作用就是在阻止针对其他分区的指令总线访问完成的同时,让之前针对当前工作分区的指令所对应的数据访问都完成,然后再跳转到新的工作分区。等待时间需足够长,以确保之前针对当前工作分区的指令所对应的数据访问都完成。以ARM Cortex-M3为例,等待时间可设置为20个CPU时钟周期。
第二部分:读保护的定义及使用方法。
在本发明的一种优选实施例中,所述MCU芯片可以包括闪存信息区,所述闪存信息区可以包括选项字节;所述闪存用户区可以具有读保护级别,所述若干分区可以分别具有对应的读保护状态;所述的方法还可以包括如下:
依据所述选项字节确定所述闪存用户区的读保护级别和各个分区的读保护状态。读保护的作用是限制各种调试手段对闪存用户区的访问。各种调试手段指,从除闪存用户区之外的其他位置启动,以及JTAG(Joint Test Action Group,联合测试工作组)等调试手段。在所述各种读保护级别和读保护状态下,从闪存用户区启动时,CPU都可以按分区保护工作方式访问闪存用户区。
读保护级别分为三级,分别是零级、一级和二级。读保护状态仅在一级读保护下有效,闪存用户区的每个分区都有对应的读保护状态,若干个分区对应的读保护状态可以同时有效或同时无效。选项字节控制读保护级别和读保护状态的方法随意,只要能区分不同的读保护级别和读保护状态并且方便读保护级别和读保护状态按上述要求切换即可。作为实施例介绍一种控制方法如下。由一个字节来控制读保护级别:当该字节为0xA5(0x代表A5是十六进制数)时,读保护级别为零级;当该字节为0xFF时,读保护级别为一级;当该字节为0x5A时,读保护级别为二级。由n个字节来分别控制n个分区对应的读保护状态:当其中某字节为0xFF时,对应分区的读保护状态为无效;当其中某字节为0x00时,对应分区的读保护状态为有效。
读保护级别和读保护状态的特征如下:
零级读保护是MCU芯片的出厂设置。在此级别下,闪存用户区可以接受各种调试手段的访问;选项字节可以接受读、写和擦除操作。
一级读保护是给合作开发程序的若干家公司用的。在此级别下,闪存用户区的每个分区都有对应的读保护状态。当读保护状态为无效时,对应分区可以接受各种调试手段的访问;当读保护状态为有效时,对应分区不能接受任何调试手段的访问。芯片的出厂设置是每个分区的读保护状态都为无效。选项字节可以接受读、写和擦除操作。也就是说,读保护状态和读保护级别都可以随意更改。但是,如果将已配置为有效的读保护状态更改为无效,对应分区的内容会在读保护状态变为无效之前自动被全部擦除;如果将读保护级别更改为零级,整个闪存用户区的内容会在读保护级别变为零级之前自动被全部擦除。
二级读保护是MCU芯片交到终端客户手中的形态。在此级别下,所有调试手段均不可用;选项字节只接受读操作,不接受写操作和擦除操作。
第三部分:私有设备的实现方法。
在本发明的一种优选实施例中,所述MCU芯片可以设计有私有设备,所述若干分区可以分别具有对应的分区使能信号,所述私有设备可以用于在接收到所述分区使能信号时正常工作。
在本发明实施例中,私有设备是通过闪存控制器输出的分区使能信号控制的设备。每个分区可以对应1比特分区使能信号。分区使能信号表示对应分区处于工作状态。例如,分区使能信号在对应分区的分区工作状态和分区过渡状态下为1,其他状态下为0。控制的方法就是根据特定分区使能信号的状态,开启或关闭相应设备的部分或全部功能。
例如,若想让某私有SRAM只允许主公司的程序读,可以用主分区使能信号来作为SRAM读通路的使能信号;若想让某私有设备的运算结果寄存器只允许某个从公司的程序读,可以用该从公司对应的从分区使能信号来选通结果寄存器的读通路;若想让某私有设备只允许主公司的程序配置,可以用主分区使能信号来作为设备寄存器的配置使能信号。
当然,在实际中也可以不设计私有设备。比如全部的设备可以为共享,本发明实施例对此不加以限制。
参照图4,示出了本发明的一种闪存控制器的控制实施例的步骤流程图,所述闪存控制器可以包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
步骤201,采用所述读写访问过滤单元接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
步骤202,采用所述擦除访问过滤单元接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
步骤203,采用所述闪存控制单元根据所述读写访问或擦除访问完成针对闪存的访问。
在本发明的一种优选实施例中,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;所述的方法还可以包括如下步骤:
采用读保护控制单元接收选项字节;判断当前对所述闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对所述闪存用户区的访问是否来自调试手段等控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
采用分区保护控制单元确定当前的分区保护工作方式。
在本发明的一种优选实施例中,所述闪存控制器还包括选项字节镜像和调试手段监测单元;所述的方法还可以包括如下步骤:
采用选项字节镜像复制所述闪存信息区中的选项字节;
采用调试手段监测单元监测当前对所述闪存用户区的访问是否来自调试手段。
在本发明的一种优选实施例中,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;所述的方法还可以包括如下步骤:
采用读写访问过滤单元在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
在本发明的一种优选实施例中,所述读写访问包括更改选项字节的访问;所述的方法还可以包括如下步骤:
采用读写访问过滤单元在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
在本发明的一种优选实施例中,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;所述的方法还可以包括如下步骤:
采用擦除访问过滤单元在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
采用擦除访问过滤单元在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
在本发明的一种优选实施例中于,所述配置寄存器包括擦除访问完成状态位;
采用配置寄存器在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位;
在本发明的一种优选实施例中,所述配置寄存器包括出错标志位;所述的方法还可以包括如下步骤:
采用配置寄存器在接收到所述失败擦除响应信号时,更改所述出错标志位。
在本发明的一种优选实施例中,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
在本发明的一种优选实施例中,所述闪存控制器包括主控单元,所述的方法还包括:
采用所述主控单元控制闪存控制器各个模块协调工作。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种闪存控制器和一种闪存控制器控制的方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1.一种闪存控制器,其特征在于,所述闪存控制器包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
读写访问过滤单元,用于接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
擦除访问过滤单元,用于接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
闪存控制单元,用于根据所述读写访问或擦除访问完成针对闪存的访问;
所述闪存控制器还包括选项字节镜像和调试手段监测单元;
选项字节镜像,用于复制闪存信息区中的选项字节;
调试手段监测单元,用于监测当前对闪存用户区的访问是否来自调试手段。
2.根据权利要求1所述的闪存控制器,其特征在于,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;
读保护控制单元,用于接收选项字节;判断当前对闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对闪存用户区的访问是否来自调试手段控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
分区保护控制单元,用于确定当前的分区保护工作方式。
3.根据权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需 要延迟响应的读写访问,以及不需要响应的读写访问;
读写访问过滤单元,用于在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
读写访问过滤单元,用于在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
4.根据权利要求1所述的闪存控制器,其特征在于,所述读写访问包括更改选项字节的访问;
读写访问过滤单元,还用于在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
5.根据权利要求1所述的闪存控制器,其特征在于,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;
擦除访问过滤单元,用于在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
擦除访问过滤单元,用于在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
6.根据权利要求5所述的闪存控制器,其特征在于,所述配置寄存器包括擦除访问完成状态位;
配置寄存器,用于在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位。
7.根据权利要求6所述的闪存控制器,其特征在于,所述配置寄存器包括出错标志位;
配置寄存器,用于在接收到所述失败擦除响应信号时,更改所述出错标志位。
8.根据权利要求3所述的闪存控制器,其特征在于,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
9.根据权利要求1或3所述的闪存控制器,其特征在于,所述闪存控制器包括主控单元,
所述主控单元,用于控制闪存控制器各个模块协调工作。
10.一种闪存控制器的控制方法,其特征在于,所述闪存控制器包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
采用所述读写访问过滤单元接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
采用所述擦除访问过滤单元接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
采用所述闪存控制单元根据所述读写访问或擦除访问完成针对闪存的访问;
所述闪存控制器还包括选项字节镜像和调试手段监测单元;所述的方法还包括:
采用选项字节镜像复制闪存信息区中的选项字节;
采用调试手段监测单元监测当前对闪存用户区的访问是否来自调试手段。
11.根据权利要求10所述的方法,其特征在于,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;所述的方法还包括:
采用读保护控制单元接收选项字节;判断当前对闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对闪存用户区的访问是否来自调试手段控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
采用分区保护控制单元确定当前的分区保护工作方式。
12.根据权利要求10所述的方法,其特征在于,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;所述的方法还包括:
采用读写访问过滤单元在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
和/或,
采用读写访问过滤单元在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
13.根据权利要求10所述的方法,其特征在于,所述读写访问包括更改选项字节的访问;所述的方法还包括:
采用读写访问过滤单元在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
14.根据权利要求10所述的方法,其特征在于,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;所述的方法还包括:
采用擦除访问过滤单元在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
和/或,
采用擦除访问过滤单元在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
15.根据权利要求14所述的方法,其特征在于,所述配置寄存器包括擦除访问完成状态位;所述的方法还包括:
采用配置寄存器在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位。
16.根据权利要求15所述的方法,其特征在于,所述配置寄存器包括出错标志位;所述的方法还包括:
采用配置寄存器在接收到所述失败擦除响应信号时,更改所述出错标志位。
17.根据权利要求12所述的方法,其特征在于,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
CN201410851175.3A 2014-12-30 2014-12-30 一种闪存控制器和闪存控制器的控制方法 Active CN104598402B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410851175.3A CN104598402B (zh) 2014-12-30 2014-12-30 一种闪存控制器和闪存控制器的控制方法
EP15874628.9A EP3242199B1 (en) 2014-12-30 2015-01-30 Flash memory controller and control method for flash memory controller
PCT/CN2015/071990 WO2016106935A1 (zh) 2014-12-30 2015-01-30 一种闪存控制器和闪存控制器的控制方法
US15/506,247 US10289303B2 (en) 2014-12-30 2015-01-30 Flash controller and control method for flash controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410851175.3A CN104598402B (zh) 2014-12-30 2014-12-30 一种闪存控制器和闪存控制器的控制方法

Publications (2)

Publication Number Publication Date
CN104598402A CN104598402A (zh) 2015-05-06
CN104598402B true CN104598402B (zh) 2017-11-10

Family

ID=53124207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410851175.3A Active CN104598402B (zh) 2014-12-30 2014-12-30 一种闪存控制器和闪存控制器的控制方法

Country Status (4)

Country Link
US (1) US10289303B2 (zh)
EP (1) EP3242199B1 (zh)
CN (1) CN104598402B (zh)
WO (1) WO2016106935A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106934258B (zh) * 2015-12-31 2023-12-15 兆易创新科技集团股份有限公司 一种嵌入式系统
EP3637253B1 (en) * 2018-08-10 2021-09-29 Shenzhen Goodix Technology Co., Ltd. Soc chip and bus access control method
CN110046105B (zh) * 2019-04-26 2021-10-22 中国科学院微电子研究所 一种3D NAND Flash
EP3751572B1 (en) * 2019-06-13 2021-12-01 Melexis Technologies NV Memory device
CN110321725A (zh) * 2019-07-12 2019-10-11 中孚信息股份有限公司 一种防止篡改系统数据与时钟的方法及装置
CN112106031A (zh) * 2019-10-28 2020-12-18 深圳市大疆创新科技有限公司 一种控制方法、设备、芯片及存储介质
CN111782290B (zh) * 2020-06-02 2023-10-27 青岛信芯微电子科技股份有限公司 一种数据处理方法及设备
CN111968693B (zh) * 2020-08-21 2022-08-05 广芯微电子(广州)股份有限公司 一种mcu及mcu调试接口控制方法
CN113436671B (zh) * 2021-06-30 2023-09-08 芯天下技术股份有限公司 Spi nor flash测试平台、测试方法、测试装置和电子设备
CN114220473A (zh) * 2021-12-23 2022-03-22 苏州洪芯集成电路有限公司 一种用于flash读保护改变的测试电路及方法
US12105958B2 (en) 2023-01-10 2024-10-01 Silicon Motion, Inc. Flash memory scheme capable of controlling flash memory device automatically generating debug information and transmitting debug information back to flash memory controller without making memory cell array generating errors
US12112816B2 (en) 2023-01-10 2024-10-08 Silicon Motion, Inc. Flash memory scheme capable of controlling flash memory device automatically generating debug information and transmitting debug information back to flash memory controller with making memory cell array generating errors
CN117406934B (zh) * 2023-12-13 2024-04-30 深圳市思远半导体有限公司 闪存数据访问方法、电量计算方法、装置及存储介质
CN117407928B (zh) * 2023-12-13 2024-03-22 合肥康芯威存储技术有限公司 存储装置、存储装置的数据保护方法、计算机设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490197B1 (en) * 2001-08-02 2002-12-03 Stmicroelectronics, Inc. Sector protection circuit and method for flash memory devices
CN1465161A (zh) * 2001-03-15 2003-12-31 索尼公司 使用存取控制权证的存储器存取控制系统及管理方法
CN1813229A (zh) * 2003-06-27 2006-08-02 英特尔公司 提供安全固件存储和服务访问的方法和装置
CN1856841A (zh) * 2003-09-26 2006-11-01 株式会社东芝 对每个存储块具有保护功能的非易失性半导体存储器件

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
JP2005107608A (ja) * 2003-09-29 2005-04-21 Nec Electronics Corp 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法
US7281103B2 (en) * 2003-10-01 2007-10-09 Kabushiki Kaisha Toshiba Microcomputer with a security function for accessing a program storage memory
US7287115B2 (en) * 2003-10-30 2007-10-23 Kabushiki Kaisha Toshiba Multi-chip package type memory system
US7412579B2 (en) * 2004-12-30 2008-08-12 O'connor Dennis M Secure memory controller
US8127147B2 (en) 2005-05-10 2012-02-28 Seagate Technology Llc Method and apparatus for securing data storage while insuring control by logical roles
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP4324810B2 (ja) * 2007-04-10 2009-09-02 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
JP2010267341A (ja) * 2009-05-15 2010-11-25 Renesas Electronics Corp 半導体装置
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110191562A1 (en) * 2010-02-02 2011-08-04 Broadcom Corporation Apparatus and method for partitioning, sandboxing and protecting external memories
CN102799391B (zh) * 2012-06-14 2015-05-27 记忆科技(深圳)有限公司 一种闪存控制器及其控制方法、闪存存储设备
GB2503470B (en) * 2012-06-27 2014-08-13 Nordic Semiconductor Asa Memory protection
CN102789403B (zh) * 2012-07-11 2015-08-12 忆正科技(武汉)有限公司 一种闪存控制器及其控制方法
US9390278B2 (en) * 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
GB2518884A (en) * 2013-10-04 2015-04-08 Ibm Network attached storage system and corresponding method for request handling in a network attached storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1465161A (zh) * 2001-03-15 2003-12-31 索尼公司 使用存取控制权证的存储器存取控制系统及管理方法
US6490197B1 (en) * 2001-08-02 2002-12-03 Stmicroelectronics, Inc. Sector protection circuit and method for flash memory devices
CN1813229A (zh) * 2003-06-27 2006-08-02 英特尔公司 提供安全固件存储和服务访问的方法和装置
CN1856841A (zh) * 2003-09-26 2006-11-01 株式会社东芝 对每个存储块具有保护功能的非易失性半导体存储器件

Also Published As

Publication number Publication date
EP3242199B1 (en) 2019-08-07
CN104598402A (zh) 2015-05-06
US10289303B2 (en) 2019-05-14
US20180217752A1 (en) 2018-08-02
EP3242199A1 (en) 2017-11-08
WO2016106935A1 (zh) 2016-07-07
EP3242199A4 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
CN104598402B (zh) 一种闪存控制器和闪存控制器的控制方法
CN104636275B (zh) 一种mcu芯片的信息保护方法和装置
KR102350538B1 (ko) Ddr 메모리 에러 복구
CN101221551B (zh) 用于对称多处理器互连的方法和设备以及多处理器
US7428603B2 (en) System and method for communicating with memory devices via plurality of state machines and a DMA controller
JP4805163B2 (ja) 多数の時間領域群を有するシステムでイベント群を時間順序付けする装置及び方法
KR102478527B1 (ko) 이기종 메모리 시스템용 시그널링
CN109669729A (zh) 一种处理器的启动引导方法
KR20230017865A (ko) Dram을 위한 리프레시 관리
KR102542493B1 (ko) 비휘발성 듀얼 인라인 메모리 모듈에 대한 커맨드 리플레이
KR20220116033A (ko) 비휘발성 메모리 모듈에 대한 오류 복구
CN115033444A (zh) 基于8051core在线调试电路控制装置及控制方法
CN104573421B (zh) 一种基于若干分区的mcu芯片信息保护方法和装置
CN102081570A (zh) 一种i2c设备的访问方法及装置
CN116049030A (zh) 用于数据访问的方法及装置、电子设备、存储介质
CN211878599U (zh) 应用于现场可编辑门阵列fpga的仿真验证系统
CN110362526A (zh) Spi从机设备、存储和适配方法及计算机存储介质
JP2020140380A (ja) 半導体装置及びデバッグシステム
CN112802527B (zh) 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程系统
JP2004021751A (ja) デバッグ装置、デバッグプログラム、およびデバッグプログラム記録媒体
Calvez et al. Real-time behavior monitoring for multi-processor systems
JPH05108406A (ja) マイコンプログラムデバツク装置
JP2001084157A (ja) マイクロコンピュータ装置およびマイクロコンピュータ装置の処理順序検査方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

CP03 Change of name, title or address