控制闪存卡存取的计算机可读取存储介质、方法及装置与流程

文档序号:26786904发布日期:2021-09-28 21:11阅读:79来源:国知局
控制闪存卡存取的计算机可读取存储介质、方法及装置与流程

1.本发明涉及存储装置,尤指一种控制闪存卡存取的计算机可读取存储介质及、方法及装置。


背景技术:

2.通用串行总线(universal serial bus,usb)存储盘是一种数据存储装置,包含整合了usb接口的闪存,通常是可卸除、可重复写入,而且很小。存储容量可以从16千兆字节(gigabytes,gb)到1兆兆字节(terabytes,tb)不等。usb存储盘通常用于做计算机文件的存储、数据备份等。然而,随着闪存的数据存取速度提升,usb存储盘的温度可能高于可容许的操作范围,造成读取或写入命令在执行时发生不可预期的错误。因此,本发明提出一种控制闪存卡存取的计算机可读取存储介质及方法及装置,用于解决如上所述的问题。


技术实现要素:

3.有鉴于此,如何减轻或消除上述相关领域的缺陷,实为有待解决的问题。
4.本发明涉及一种控制闪存卡存取的计算机可读取存储介质,用于存储能够被桥接集成电路的处理单元加载并执行的程序代码,并且所述程序代码被所述处理单元执行时实现以下所述的步骤:从主机端接收主机读取或写入命令后,通过温度监控集成电路判断母板的温度是否超过阈值;当母板的温度超过阈值时,请求闪存卡进入休眠状态;以及当母板的温度不超过阈值时,指示闪存卡执行相应于主机读取或写入命令的操作。
5.本发明还涉及一种控制闪存卡存取的方法,由桥接集成电路的处理单元执行。所述方法包含:从主机端接收主机读取或写入命令后,通过温度监控集成电路判断母板的温度是否超过阈值;当母板的温度超过阈值时,请求闪存卡进入休眠状态;以及当母板的温度不超过阈值时,指示闪存卡执行相应于主机读取或写入命令的操作。
6.本发明还涉及一种控制闪存卡存取的装置,包含:主机接口,耦接主机端;装置接口,耦接闪存卡;输入输出接口,耦接温度控制集成电路;以及处理单元,耦接主机接口、装置接口和输入输出接口。处理单元通过主机接口从主机端接收主机读取或写入命令后,通过输入输出接口判断温度监控集成电路是否侦测到母板的温度超过阈值;当母板的温度超过阈值时,通过装置接口请求闪存卡进入休眠状态;以及当母板的温度不超过阈值时,通过装置接口指示闪存卡执行相应于主机读取或写入命令的操作。
7.桥接集成电路和温度监控集成电路设置在母板上,闪存卡插入母板上的卡槽,以及桥接集成电路通过母板中的电路耦接温度监控集成电路和闪存卡。
8.上述实施例的优点之一,通过如上所述的温度监控集成电路的设置以及相关于温度侦测与响应的步骤或操作的执行,可避免nand闪存卡因温度过高而失效。
9.本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。
11.图1为依据本发明实施例的通用串行总线存储盘的使用示意图。
12.图2为依据本发明实施例的通用串行总线存储盘的外观示意图。
13.图3为依据本发明实施例的主机端和通用串行总线存储盘的框图。
14.图4为依据本发明实施例的桥接集成电路和外部组件的框图。
15.图5为依据本发明实施例的控制闪存卡存取的方法流程图。
16.其中,附图中符号的简单说明如下:
17.110:计算机主机;115:usb端口;130:usb存储盘;210:usb连接器;230:母板;250:桥接ic;270:闪存卡;280:闪存控制器;290:温度监控ic;310:闪存模块;330:处理单元;410:总线架构;430:处理单元;450:ram;470:主机接口;480:装置接口;490:输入输出接口;s510~s580:方法步骤。
具体实施方式
18.以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
19.必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
20.本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
21.必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
22.参考图1。使用者将通用串行总线(universal serial bus,usb)存储盘(usb memory drive)130插入计算机主机110的usb端口115后,可从计算机主机110中的存储装置备份数据到usb存储盘130,复制usb存储盘130中的数据到计算机主机110中的存储装置,或者执行其他数据存取操作。usb存储盘130包含大容量的nand闪存卡,可以从16千兆字节(gigabytes,gb)到1兆兆字节(terabytes,tb)不等。随着存取速度的提升,nand闪存卡在数据存取时容易发热。然而,为了携带方便,usb存储盘130会被制造到尽可能小而造成散热不易,造成nand闪存卡会因为温度过高而让数据存取发生不可预期的错误,甚至让nand闪存卡失效。nand闪存卡失效可能会让计算机主机110在数据存取的过程中因得不到usb存储盘130的响应而误以为usb存储盘130毁损。虽然本发明实施例描述usb接口连接上计算机主机110作为示例,所属技术领域人员也可以应用到使用其他接口连接上计算机主机110的存储盘,例如ieee1394等,本发明并不因此局限。于另一些实施例中,所属技术领域人员可将计算机主机110替代地实施为笔记本计算机(laptop pc)、平板计算机、移动电话、数字相机、
数字摄影机等电子产品,本发明并不因此局限。
23.为解决如上所述的问题,本发明实施例在usb存储盘130中加上温度监控集成电路(integrate circuit,ic),用于侦测usb存储盘130在数据存取时的温度,并且在温度超过阈值时执行避免nand闪存卡失效的操作。详细来说,参考图2的上半部分(a),usb存储盘130包含usb连接器210和母板230,母板230的一端连接usb连接器210。母板230的一面上设置桥接集成电路(bridge ic)250,桥接ic 250通过母板230中的电路耦接usb连接器210。参考图2的下半部分(b),母板230的另一面上设置温度监控ic 290和卡槽260,温度监控ic 290通过母板230中的电路耦接桥接ic 250,而闪存卡270可被放置入卡槽260中并通过母板230中的电路耦接桥接ic 250。闪存卡270包含闪存控制器280和闪存模块。通常,母板230的尺寸小于3厘米乘2厘米时会发生散热不易的情形。
24.参考图3。计算机主机(以下简称主机端)110包含中央处理器330,而usb存储盘(以下简称存储盘)130包含桥接ic 250。存储盘130另包含温度监控ic 290,而闪存卡270包含闪存控制器280及闪存模块310。从一方面来说,桥接ic 250扮演中央处理器330的装置端角色,可通过usb通信协议和中央处理器330通信。从另一方面来说,桥接ic 250扮演闪存卡270的主机端角色,可通过快速外设组件互联(peripheral component interconnect express,pci-e)、通用闪存存储(universal flash storage,ufs)、快速非易失存储器(non-volatile memory express,nvme)、嵌入式多媒体卡(embedded multi-media card,emmc)等通信协议和闪存控制器280通信。闪存控制器280和闪存模块310可以双倍数据率(double data rate,ddr)通信协议彼此通信,例如,开放nand闪存(open nand flash interface,onfi)、双倍数据率开关(ddr toggle)或其他通信协议。中央处理器330可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。
25.桥接ic 250可通过集成电路间总线(inter-integrated circuit,i2c bus)和通用输入输出引脚(general-purpose input/output,gpio pin)连接温度监控ic 290。桥接ic 250可提供时钟信号clk给温度监控ic 290,用于启动温度监控ic 290。桥接ic 250可通过i2c总线的数据线data来将阈值设定到温度监控ic 290中的寄存器。温度监控ic 290会不断感测母板230中特定位置的温度,并且在感测到温度超过寄存器中设定的阈值时,通过gpio引脚发出警告信号(alert)给桥接ic 250,使得桥接ic 250可据以执行避免nand闪存卡失效的操作。
26.参考图4。桥接ic 250包含处理单元430、随机存取存储器(random access memory,ram)450、主机接口470、装置接口480、输入输出接口490,并且这些组件430、450、470、480和490以总线架构(bus architecture)410彼此耦接。总线架构410用于让组件430、450、470、480和490之间能够传递数据、地址、控制信号等。处理单元430可使用多种方式实施,如使用通用硬件(例如,单处理器、具并行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。处理单元430通过主机接口470从主机端110接收主机命令,例如读取命令(read command)、写入命令(write command)、抹除命令(erase command)等,调度并执行这些命令。ram 450可实施为动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器
(static random access memory,sram)或上述两者的结合,用于配置空间作为数据缓冲区,存储从主机端110读取并即将写入闪存卡270的用户数据(也可称为主机数据),以及从闪存卡270读取并即将输出给主机端110的用户数据。ram 450另可存储执行过程中需要的数据,例如,变量、数据表等。
27.闪存模块310提供大量的存储空间,通常是数百个gb,甚至是数个tb,用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块310中包含控制电路以及存储器数组,存储器数组中的存储单元可包含单层式单元(single level cells,slcs)、多层式单元(multiple level cells,mlcs)、三层式单元(triple level cells,tlcs)、四层式单元(quad-level cells,qlcs)或上述的任意组合。处理单元430通过装置接口480与闪存控制器280通信,用于写入指定逻辑位置的用户数据,以及读取指定逻辑位置的用户数据,逻辑位置可以逻辑区块地址(logical block address,lba)表示。
28.输入输出接口490包含如上所述的i2c总线和gpio引脚。处理单元430通过输入输出接口490设定阈值到温度监控ic 290,以及从温度监控ic 290接收警告信号,其指出目前母板230的温度已经超过阈值。处理单元430可在主机端110初始化存储盘130时设定阈值到温度监控ic 290,且阈值可设为摄氏70度到90度之间的任意数值。
29.搭配温度监控ic 290的设置,本发明实施例提出一种控制闪存卡存取的方法,由处理单元430加载和执行相关固件或软件指令时实施。参考图5,详细步骤说明如下:
30.步骤s510:通过主机接口470从主机端110接收读取或写入命令(也可称为主机读取或写入命令)。
31.由于一个主机读取或写入命令可指示读取或写入一段长的用户数据,因此实施例所述的方法可将整个主机读取或写入命令的执行依据lba区段分成数个批次,并且于执行前或者每个批次执行完后进行母板230的温度监控。例如,可将lba#100到lba#399的数据读取命令分成三个批次执行,第一批次执行lba#100到lba#199的数据读取操作,第二批次执行lba#200到lba#299的数据读取操作,而第三批次执行lba#300到lba#399的数据读取操作。
32.步骤s520:判断母板230的温度是否超过阈值。如果是,则进行步骤s550的处理。否则,进行步骤s530的处理。处理单元430可通过输入输出接口490的指定gpio引脚判断温度监控ic 290是否发出警告信号,一旦侦测到警告信号,则代表母板230的温度已经超过阈值。
33.步骤s530:执行一段lba区间的主机读取或写入命令。处理单元430可通过装置接口480发出相应于这段lba区间的主机读取或写入命令的一系列指令,指示闪存控制器280执行特定操作。针对一段lba区间的数据读取,处理单元430可通过装置接口480发出此段lba区间的读取指令给闪存控制器280,用于从闪存卡270读取此段lba区间的用户数据;暂存读取的用户数据在ram 450;并且回复此段lba区间的用户数据给主机端110。针对一段lba区间的数据写入,处理单元430可通过主机接口470从主机端110取得欲写入的此lba区间的用户数据;暂存取得的用户数据在ram 450;通过装置接口480发出此段lba区间的写入指令给闪存控制器280,用于将此段lba区间的用户数据写入闪存卡270;并且通过主机接口470回复写入完成的信息给主机端110。
34.步骤s540:判断是否完成主机读取或写入命令。如果是,则结束整个流程。否则,进
行步骤s520的处理。
35.步骤s550:请求闪存卡270进入休眠状态。例如,处理单元430可通过装置接口480发出指令给闪存控制器280,请求让闪存卡270进入ufs定义的冬眠状态(hibernate state)。当闪存卡270进入冬眠状态时,桥接ic 250和闪存控制器280之间以及闪存控制器280和闪存模块310之间会少有信息交换,并且闪存控制器280和闪存模块310中的组件也几乎不工作,使得母板230的温度可以下降。
36.当闪存卡270进入休眠状态后,实施例所述的方法可每隔一段时间就检查母板230的温度是否降到阈值以下,一旦母板230的温度降到阈值以下,则继续未完成的数据读取或写入操作。
37.步骤s560:经过一段等待时间。处理单元430可设定计数器来计数一段时间。当计数器到达此段时间时,发出信号通知处理单元430。
38.步骤s570:判断母板230的温度是否超过阈值。如果是,则进行步骤s560的处理。否则,进行步骤s580的处理。处理单元430可通过输入输出接口490的指定gpio引脚判断温度监控ic 290是否发出警告信号,一旦侦测到警告信号,则代表母板230的温度依然超过阈值。
39.步骤s580:请求将闪存卡270从休眠状态中唤醒,用于继续未完成的主机读取或写入命令的执行。例如,处理单元430可通过装置接口480发出指令给闪存控制器280,请求让闪存卡270从冬眠状态中唤醒。
40.本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如dvd、cd-rom、u盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
41.虽然图2至图3中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图5流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
42.以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本技术的权利要求书所界定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1