CN111966611B - 具有逻辑转物理地址架构的spi闪存控制芯片 - Google Patents
具有逻辑转物理地址架构的spi闪存控制芯片 Download PDFInfo
- Publication number
- CN111966611B CN111966611B CN202010765069.9A CN202010765069A CN111966611B CN 111966611 B CN111966611 B CN 111966611B CN 202010765069 A CN202010765069 A CN 202010765069A CN 111966611 B CN111966611 B CN 111966611B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- logical
- physical
- module
- 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
Links
- 238000013507 mapping Methods 0.000 claims abstract description 87
- 238000012937 correction Methods 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 12
- 238000012545 processing Methods 0.000 abstract description 10
- 238000013461 design Methods 0.000 abstract description 2
- 230000005611 electricity Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种具有逻辑转物理地址架构的SPI闪存控制芯片,包括:SPI协议模块、地址映射模块、微处理器模块、数据缓存模块、错误修正码模块、闪存协议模块。其中,地址映射模块采用依赖于逻辑物理映射表LPT和保留页表RPT以改变限定逻辑转物理地址范围大小的方式来实现”区域性的逻辑地址转物理地址”的功能。LPT和RPT为以记忆体(SRAM)方式来记录存放,以记忆体架构来节省暂存器的设计以降低硬件资源的消费,从而实现在特定的范围领域内实现热资料区的处理,让主芯片在应用上,能以最直观的方式来处理热资料,在特定的地址范围内直接对SPI NAND Flash进行读写,无需另外占用主芯片资源,具有省电、高效、快速的优点。
Description
技术领域
本发明涉及SPI闪存控制芯片,具体涉及一种具有逻辑转物理地址架构的SPI闪存控制芯片。
背景技术
NAND Flash控制芯片是用于控制NAND Flash存储器(诸如USB随身碟、SD卡、SSD、eMMC、UFS、SPI NAND等)并转换界面的角色。NAND Flash存储器本身使用上并不直观,资料的存取需要管理、以及ECC或LDPC演算法来做资料修复,还需要wear leveling、bad blockmanagement等管理算法支援提升使用寿命,使用上需非常复杂且消耗主芯片资源,所以要让一般使用者方便使用或减轻主芯片负担,就需要NAND Flash控制芯片来当中间的管理桥梁。现有的SPI NAND Flash有两种类型,一、NAND Flash本身对外接口为串口(SPI),称之为One die solution,二、并口的NAND Flash+SPI NAND Flash控制芯片,即为Two chipsolution。SPI NAND Flash跟并口的NAND Flash的差异,主要在于NAND Flash从原本的并口通讯改为串口通讯(SPI),其使用上主芯片仍需负担上述NAND Flash的管控机制。
SPI NAND Flash为小容量产品,常见的容量大小为SLC的1G bit,2G bit,4G bit,主要常见的封装大小为6x8mm WSON8,其特点在于体积小、接口数少,很适用于IoT应用的嵌入式系统。而标准的SPI NAND Flash跟并口的NAND Flash主要差于通讯界面,串口SPINAND Flash使用标准SPI NADN Flash命令格式,然而在操作上跟并口的NAND Flash一样,需要坏块管理(bad block management)和ECC的额外支援才能正常使用,并且执行”清除”、”写”、”读”资料时也得遵照NAND Flash的架构来操作。举例SPI NAND Flash 2G bit架构为Block=2048,Page 64,Page Size 2048+64Bytes,Erase(清除)单位为1个Block,写(Program)的单位为1个Page Size,读、写、清除命令都需等待NAND Flash busy结束,加上NAND Flash原厂产出是会有不可使用的Block存在,也就是坏块需避开,而且读写时需另加上错误修正码(ECC)来保护资料,以确保资料稳定性。
而NAND Flash在使用操作上需顾虑许多,需要另外分配或规划主芯片的资源来满足NAND Flash的运作条件,才能完成正确的资料存取,这在追求低成本、小型化的IoT嵌入式系统应用上是很大的资源耗费,甚至导致许多使用惯了NOR Flash操作的厂商无法升级使用大容量的SPI NAND Flash,而无法跟上市场变化或只能提高成本采用不符性价比的方案。
现有标准的SPI NAND Flash只加上了错误修正码(ECC)功能,可减少主芯片的编码负担,但操作上还是需要考虑以Page Size为单位进行一次写操作,而清除为Block为单位(64个Page的大小)的运作方式,在常态性更新资料管理上不易使用,并需要另外支付主芯片的资源才足以应付常态性资料更新(热资料区)的使用场景。在以往操作一般的SPINAND Flash行为中,在对已写过的Page要更新资料时,需先选定一个空的暂存Block(暂存块),并在之中的Page先写入(新资料),再把预定更新中地址的Block(目标块)中有写资料的其它Page(旧资料)再搬过去暂存的Block(暂存块)中,以保持资料的连续性,再把预定更新资料的地址Block(目标块)做清除(一次会清除64page),然后把刚才暂存资料的Block(暂存块)内的资料全部再写回更新资料地址的整个Block(目标块),最后再把暂存资料的Block(暂存块)清除,以供下次更新资料时使用。上述操作较为复杂,且使用者需要考虑NAND Flash的实际物理地址。
NAND Flash控制芯片提供逻辑转物理地址的功能常见于大容量的SD卡、eMMC、UFS、USB碟上,但都以纯固件来完成,程序复杂相对也需要大量的资源消耗,对于NANDFlash控制芯片的大小、功耗都会反映到成本并造成影响。一般的SPI NAND Flash不提供此功能,其原因主要在于SPI NAND Flash特点为通讯界面简单、小型化、省电、而热资料区处理需由主芯片自行管控,依据目标产品项使用主芯片的资源需求也不同;在用于IoT方案上,省电、高效能是整体性的表现,不能单单的只追求一方,主芯片和被使用方的SPI NANDFlash都有省电、高效的需求,然而以往SPI NAND Flash控制芯片的作法只是并口NANDFlash的界面转换,以追求省电、高效,而热资料区处理由主芯片吸收,或若提供如SD卡方式的全域逻辑物理地址转换,对SPI NAND Flash来说增加了不少功耗与成本,故以上两种都难以满足在IoT的应用。
发明内容
发明目的:本申请的目的在于提供一种具有逻辑转物理地址架构的SPI闪存控制芯片以解决现有控制芯片存在的主芯片负担大,功耗成本高,难以满足在IoT的应用的问题。
技术方案:本申请一方面提供了一种具有逻辑转物理地址架构的SPI闪存控制芯片,包括:
SPI协议模块,其被配置为接收来源于SPI主机的数据读写命令、待读写数据的逻辑地址以及待写入的数据,以及来源于数据缓存模块的待读取数据;将数据读写命令、待写入的数据发送至数据缓存模块;将数据读写命令、待读写数据的逻辑地址发送至地址映射模块;将待读取数据传输至SPI主机;
地址映射模块,其被配置为接收来源于SPI协议模块的数据读写命令、待读写数据的逻辑地址以及来源于数据缓存模块的逻辑物理映射表LPT;根据数据读写命令、逻辑地址、预先划分的逻辑地址区块以及逻辑物理映射表LPT将逻辑地址转换为物理地址并更新逻辑物理映射表LPT,以及将转换后的物理地址发送至微处理器模块;
微处理器模块,其被配置为接收来源于地址映射模块的物理地址及整理使用过的替换用物理地址并更新的逻辑物理映射表LPT;并将物理地址及更新的逻辑物理映射表LPT转发至数据缓存模块;
数据缓存模块,其被配置为接收来源于SPI协议模块的数据读写命令、待写入的数据,来源于微处理器模块的逻辑物理映射表LPT,以及来源于数据修正码模块的待读取数据;将数据读写命令、待写入的数据及其对应的物理地址转发至错误修正码模块;
错误修正码模块,其被配置为接收来源于数据缓存模块的待写入数据以及来源于闪存协议模块的待读取数据;将待写入数据加入ECC码或待读取数据依ECC进行错误修正后分别对应转发至闪存协议模块及数据缓存模块;
闪存协议模块,其被配置为接收并将来源于错误修正码模块的待写入的数据传输至外连的并口NAND Flash存储器,以及接收并将来源于外连的并口NAND Flash存储器的待写入数据传输至错误修正码模块。
进一步地,逻辑物理映射表LPT中包括已使用的逻辑地址到物理地址的映射信息,以及替换用的物理地址。
进一步地,数据缓存模块还存储有保留页表RPT,保留页表RPT记录有替换用物理地址的使用状态;
保留页RPT用于供地址映射模块判断替换用的物理地址是否已被使用;根据地址映射过程中的使用情况更新替换用的物理地址的使用状态,并经由微处理器模块更新存储至数据缓存模块。
进一步地,预先划分的逻辑地址区块包括资料热区和资料冷区;资料热区中的逻辑地址为逻辑转物理地址定义范围,对应常态性更新资料;资料冷区中的逻辑地址对应非常态性更新资料或只读资料;
其中,常态性更新资料与非常态性更新资料,可通过预设的更新频率进行预先界定。
进一步地,地址映射模块通过以下步骤将逻辑地址转换为物理地址:
(1)判断逻辑地址是否在资料热区内:
(11)若否,则按照逻辑地址等于物理地址的规则得到转换后的物理地址,并发送至微处理器模块;
(12)若是,则根据命令类型进行对应的地址转换:
(121)若命令类型为读,则:若逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址,并发送至微处理器模块;
(122)若命令类型为写,则根据其对应的逻辑地址是否被使用过,决定更新逻辑物理映射表LPT或进行预先设定的物理地址替换程序。
进一步地,步骤(122)中,
若逻辑地址尚未被使用,则根据逻辑地址等于物理地址的规则将该地址更新至逻辑物理映射表LPT,并将转换后的物理地址发送至微处理器模块;
若逻辑地址已被使用,则根据保留页表RPT判断所有替换用的物理地址是否均使用完毕:
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新保留页表RPT和逻辑物理映射表LPT,并将转换后的物理地址发送至微处理器模块;
若是,则向微处理器模块发送保留页表满载信号,并等待微处理器模块发送的整理恢复信号后,返回步骤(122)继续执行。
进一步地,微处理器模块包括固件,固件用于整理使用过的替换用的物理地址;在完成整理后更新逻辑物理映射表LPT和保留页表RPT,并发送至数据缓存模块供地址映射模块获取使用。
进一步地,控制芯片还包括模拟IP模块,其被配置为通过连接外部电源为控制芯片提供模拟电源和电流、电压及起点重置信号。
本申请另一方面提供一种基于SPI读写命令的逻辑物理地址转换方法,包括:
(1)判断逻辑地址是否在预先设定的逻辑转物理地址定义范围内:
若否,则按照逻辑地址等于物理地址的规则得到转换后的物理地址;
若是,则
(2)根据SPI命令类型进行对应的地址转换:
若命令类型为读,则:若逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址;
若命令类型为写,则
(3)判断其对应的逻辑地址是否被使用过:
若逻辑地址尚未被使用,则根据逻辑地址等于物理地址将该地址更新至逻辑物理映射表LPT;
若逻辑地址已被使用,则
(4)根据保留页表RPT判断所有替换用的物理地址是否均使用完毕:
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新保留页表RPT和逻辑物理映射表LPT;
若是,则整理使用过的替换用的物理地址;在完成整理后更新逻辑物理映射表LPT和保留页表RPT,返回步骤(2)继续执行。
本申请还提供一种计算机存储介质,存储介质中包括计算机可执行指令,指令被执行时用于实现上述逻辑物理地址转换方法。
有益效果:与现有技术相比,本申请的控制芯片具特定范围内的逻辑转物理地址硬件架构,简化了全逻辑转物理地址所需的庞大记忆体需求和固件执行程序的复杂度,大大的降低了SPI NAND Flash控制芯片的微处理器(固件运行)的耗能和硬件资源,能依此架构方法配合主芯片应用需求,取得最佳化LPT和RPT的记忆体大小,以改变限定逻辑转物理地址范唯大小的方式来实现”区域性的逻辑地址转物理地址”的功能。在特定的范围领域内实现热资料区的处理,让主芯片在应用上,能以最直观的方式来处理热资料,在特定的地址范围内直接对SPI NAND Flash进行读写,无需另外占用主芯片资源,具有省电、高效、快速的优点。
附图说明
图1为本申请的控制芯片的结构框图;
图2为地址映射模块将逻辑地址转换为物理地址的流程图;
图3为LPT的存储分配格式;
图4为RPT的存储分配格式;
图5为微控制器模块整理程序中固件与硬件的交互示意图;
图6为微控制器模块整理程序中固件整理的示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步描述:
本申请一方面提供了一种具有逻辑转物理地址架构的SPI闪存控制芯片,如图1所示,包括:SPI协议模块101、地址映射模块102、微处理器模块104、数据缓存模块103、错误修正码模块105、闪存协议模块106和模拟IP模块107。
SPI协议模块101连接外部SPI主机,用于接收来源于SPI主机的数据读写命令、待读写数据的逻辑地址以及待写入的数据,将待读取数据传输至SPI主机;以及接收来源于数据缓存模块103的待读取数据;将数据读写命令、待写入的数据发送至数据缓存模块103;将数据读写命令、待读写数据的逻辑地址发送至地址映射模块102。
地址映射模块102,用于接收来源于SPI协议模块101的数据读写命令、待读写数据的逻辑地址以及来源于数据缓存模块103的逻辑物理映射表LPT(Logic to PhysicalTable);根据数据读写命令、逻辑地址、预先划分的逻辑地址区块以及逻辑物理映射表LPT将逻辑地址转换为物理地址或更新逻辑物理映射表LPT,并将转换后的物理地址发送至微处理器模块104。具体地,预先划分的逻辑地址区块包括资料热区和资料冷区;资料热区中的逻辑地址为逻辑转物理地址定义范围(L2P Range),对应常态性更新资料;资料冷区中的逻辑地址对应非常态性更新资料或只读资料;其中,常态性更新资料与非常态性更新资料,可通过预设的更新频率进行预先界定。
逻辑物理映射表LPT中包括已使用的逻辑地址到物理地址的映射信息,以及替换用的物理地址。替换用的物理地址的使用状态通过存储在数据缓存模块103中的保留页表RPT(Reserved Page Table)进行记录。
微处理器模块104,用于接收来源于地址映射模块102的物理地址及整理使用过的替换用物理地址并更新的逻辑物理映射表LPT;并将物理地址及更新的逻辑物理映射表LPT转发至数据缓存模块103。微处理器模块104包括固件,固件用于整理使用过的替换用物理地址。
数据缓存模块103,用于接收来源于SPI协议模块101的数据读写命令、待写入的数据,来源于微处理器模块104的逻辑物理映射表LPT,以及来源于数据修正码模块的待读取数据;将数据读写命令、待写入的数据及其对应的物理地址转发至错误修正码模块105。数据缓存模块103存储有保留页表RPT,保留页表RPT记录有替换用物理地址的使用状态;保留页RPT用于供地址映射模块102判断替换用的物理地址是否已被使用;根据地址映射过程中的使用情况更新替换用的物理地址的使用状态,并经由微处理器模块104更新存储至数据缓存模块103。
错误修正码模块105,用于接收来源于数据缓存模块103的待写入数据以及来源于闪存协议模块106的待读取数据;将待写入数据加入ECC码或待读取数据依ECC进行错误修正后分别对应转发至闪存协议模块106及数据缓存模块103。
闪存协议模块106,用于接收并将来源于错误修正码模块105的待写入的数据传输至外连的并口NAND Flash存储器,以及接收并将来源于外连的并口NAND Flash存储器的待写入数据传输至错误修正码模块105。
控制芯片还包括模拟IP模块107,用于通过连接外部电源为控制芯片提供模拟电源和电流、电压及起点重置信号。
根据上述控制芯片的结构,对于写的过程,用户经由SPI主机写命令、逻辑地址以及待写入的数据通过SPI协议模块101下达至控制芯片;其中,待写入的数据暂存至数据缓存模块103,地址映射模块102根据写命令和逻辑地址,结合微处理模块104的控制获得转换后的物理地址发送至微处理器模块104,;微处理器模块104将转换得到的物理地址发送至数据缓存模块103,与待写入的数据一起经由错误修正码模块105加入ECC码后,通过闪存协议模块106传输并写入外部并口NAND Flash,完成数据写入。
根据上述控制芯片的结构,对于读的过程,用户经由SPI主机将读命令及逻辑地址通过SPI协议模块101下达至控制芯片,地址映射模块102根据读命令和逻辑地址,转化得到对应的物理地址并经由微处理器模块104、错误修正码模块105及闪存协议模块106发送至外部并口NAND Flash,从该并口NAND Flash读取对应的数据,经由闪存协议模块106传输至错误修正码模块105依ECC进行错误修正后,暂存至数据缓存模块103,并进而通过SPI协议模块101传输至SPI主机,完成数据读取。
本申请在上述结构的基础上在控制芯片的地址映射模块102提供预设区域的逻辑转物理地址的硬件加速功能,其实现方式如图2所示,地址映射模块102通过以下步骤将逻辑地址转换为物理地址:
S201判断逻辑地址是否在资料热区内,即是否在逻辑转物理地址定义范围(L2PRange)内:
若否,则按照“逻辑地址=物理地址”的规则得到转换后的物理地址,并发送至微处理器模块104;
若是,则
S202判断命令类型是读还是写:
若命令类型为读,则:若查询得知逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址,并发送至微处理器模块104;
若命令类型为写,则
S203查询LPT,判断对应的逻辑地址是否被使用过;具体地,查询LPT,若逻辑地址尚未被使用,则置LP_FIG=0;若逻辑地址已被使用,则置LP_FIG=1。
其中LP_FIG为Logic Physical Flag(逻辑物理旗标)用于标记此逻辑地址对映的物理地址是否尚未被使用过,如未被使用过LP_FIG=0,已被使用过LP_FIG=1(表示需进覆写逻辑地址程序)使用此旗标,可在转换逻辑物理地址时,同时检测是否为尚未使用过的地址,并先记录结果,以加快电路在判断为SPI写命令后的处理时间。
若LP_FIG=0,按照“逻辑地址=物理地址”得到转化的物理地址,并根据该地址映射关系更新逻辑物理映射表LPT,并将更新后的逻辑物理映射表LPT发送至微处理器模块104;
若LP_FIG=1,则:
S104根据保留页表RPT判断所有替换用的物理地址是否均使用完毕(即判断RPT是否已满):
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新保留页表RPT和逻辑物理映射表LPT,并发送至微处理器模块104;
若是,则向微处理器模块104发送保留页表RPT满载信号(full signal=1),微处理器模块104中的固件根据图5、6对使用过的替换用物理地址进行整理,501从硬件记忆体取得的物理地址后,502依据逻辑地址顺序把对应的物理地址的资料整理到TBP Block(Temp Block Pool,也就是”暂存块池”)暂存起来,其中资料可能来自“资料Block”和“RBPBlock”(Reserved Block Pool,“保留块池”,每一Block对应于替代用的64个物理Page地址),然后601把已整理完毕的资料Block清除后602再把先前整理好的在暂存块池(TBPBlock)中的资料进行资料回填至资料Block中,最后经603清除已整理过后已不需要的TBPBlock,并一同更新LPT和RPT表,而后当所有资料都已整理完毕后,固件通知硬件已整理完成。
在完成整理后,置满载信号为0(full signal=0),更新逻辑物理映射表LPT和保留页表RPT,并等待微处理器模块104发送的整理恢复信号后,返回步骤S204继续执行逻辑物理地址的转换。
微处理器模块104中的固件对地址映射模块102的运作程序为:等待地址映射模块102发出物理地址转换完成信号和整理需求信号;当固件收到物理地址转换完成讯号后,即可从硬件取得物理地址,并对并口NAND Flash进行写或读操作。而如果固件收到整理讯号后,即开始执行NAND Flash的操作,把资料依NAND Flash的Block为单位的物理地址顺序重新整理,并清除无用旧的替换用Block,以空出替换用物理地址,并同时更新LPT和RPT,再通知硬件进行转换物理地址。
“硬件”在地址映射模块102的运作程序如图2所示,而当SPI NAND Flash控制芯片通电后,开始等待SPI”写”和”读”命令和逻辑地址的到来,控制芯片从SPI协议模块101取得SPI命令和地址后,由地址映射模块102进行转换,先判断当前的SPI地址是否在特定的逻辑转物理地址的作用范围内,如果不是,即为逻辑地址等于物理地址,并通知微处理器模块104完成转换,也表示此地址可存放不经常变动的冷资料,如地图图资、声音档、还原备份资料等。
对于SPI地址在此控制芯片的逻辑转物理地址的作用范围内的情形,当SPI命令为”读”时,若经由LPT来查询并判断当前的逻辑转出的物理地址未存在LPT中,则逻辑地址等于物理地址,通知微控制处理器完成转换;若逻辑转出的物理地址已存在LPT中,则从LPT取得对应的物理地址并直接将转换完成的物理地址存放于暂存器中并通知微处理器。
对于SPI地址在此控制芯片的逻辑转物理地址的作用范围内的情形,当SPI命令为”写”时,若当前逻辑转出的物理地址未存在LPT中,则逻辑地址等于物理地址,把物理地址更新于LPT内再通知微处理器转换完成。以上物理地址未存在LPT中的情況发生於第一次开始使用本申请的具有逻辑转物理地址架构的SPI NAND Flash时。若逻辑转出的物理地址已存在LPT中,需要进行逻辑上复写程序,依NAND Flash操作方式,得寻找替代用的空的Page地址来代替新的物理地址,经由RPT来进行查询判断是否还有空的替换地址可用,如果寻找到空的替换地址,则逻辑地址等于替换的物理地址并更新LPT和RPT后,通知微处理器完成转换。如果RPT查询判断发现已没有空的替换地址可用,则通知微处理器执行NANDFlash的整理如上所述固件的运作程序,硬件等待固件完成整理通知并可取得空的替代用的物理地址后,即可接续完成地址转换。
实现逻辑转物理地址功能依赖于逻辑物理映射表LPT(Logic to PhysicalTable)和保留页表RPT(Reserved Page Table)。LPT和RPT为以记忆体(SRAM)方式来记录存放,以记忆体架构来节省暂存器的设计以降低硬件资源的消费。二表格格式如下所述。
LPT如图3所示,需以16位元来储存可替换的Page物理地址,并以301“记忆体地址”记忆体本身的地址顺序(例:0~511)来当对应的索引表示,而每一索引地址都对应一组16位元的空间,以存放替代用的物理地址如302所示。
RPT如图4所示,用以记录替代用物理地址(Page)是否已被使用过,同样以16位元宽的记忆体格式来表达,402为记忆体地址索引,表示为每16个替代物理址的使用状况,为记忆体内的16位元,其中每一位元表示一个替代用物理地址使用的状态,如为1:表示使用过,反之为0:表示未使用过。
上述的LPT和RPT可在设计规画本专利”SPI NAND Flash控制芯片”目标时,确定逻辑转物理地址范围(L2P Range)大小需求做调整,并流片,可产出不同可逻辑物理地址转换范围的芯片。
本申请提出的SPI NAND Flash控制芯片第一次使用前,在LPT内储存的物理地址的值预设为全为1,以表示未使用过即逻辑地址等于理地址,而RPT则预设全为0,以表示尚未使用过替代的物理地址(Page),以1表示使用过。
从记忆体中取得LPT取得对应的物理地址与RPT取得替换地址状态的方式可整理如下两个公式:
物理地址=LPT[(逻辑地址-设定起始地址)+替换区偏移地址]
替换状态=RPT[(替换地址>>16)]>>(替换地址&0x00FF)
本申请另一方面提供一种基于SPI读写命令的逻辑物理地址转换方法,包括:
(1)判断逻辑地址是否在预先设定的逻辑转物理地址定义范围内:
若否,则按照逻辑地址等于物理地址的规则得到转换后的物理地址;
若是,则
(2)根据SPI命令类型进行对应的地址转换:
若命令类型为读,则:若逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址;
若命令类型为写,则
(3)判断其对应的逻辑地址是否被使用过:
若逻辑地址尚未被使用,则根据逻辑地址等于物理地址将该地址更新至逻辑物理映射表LPT;
若逻辑地址已被使用,则
(4)根据保留页表RPT判断所有替换用的物理地址是否均使用完毕(即RPT是否已满):
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新保留页表RPT和逻辑物理映射表LPT;
若是,则整理使用过的替换用的物理地址;在完成整理后更新逻辑物理映射表LPT和保留页表RPT,返回步骤(4)继续判断执行。
本申请还提供一种计算机存储介质,存储介质中包括计算机可执行指令,指令被执行时用于实现上述逻辑物理地址转换方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (9)
1.一种具有逻辑转物理地址架构的SPI闪存控制芯片,其特征在于,包括:
SPI协议模块,其被配置为接收来源于SPI主机的数据读写命令、待读写数据的逻辑地址以及待写入的数据,以及来源于数据缓存模块的待读取数据;将所述数据读写命令、待写入的数据发送至数据缓存模块;将数据读写命令、待读写数据的逻辑地址发送至地址映射模块;将所述待读取数据传输至SPI主机;
地址映射模块,其被配置为接收来源于所述SPI协议模块的数据读写命令、待读写数据的逻辑地址以及来源于所述数据缓存模块的逻辑物理映射表LPT;根据所述数据读写命令、所述逻辑地址、预先划分的逻辑地址区块以及逻辑物理映射表LPT将所述逻辑地址转换为物理地址并更新逻辑物理映射表LPT,以及将所述转换后的物理地址发送至微处理器模块;所述预先划分的逻辑地址区块包括资料热区和资料冷区;所述地址映射模块通过以下步骤将所述逻辑地址转换为物理地址:
(1)判断逻辑地址是否在资料热区内:
(11)若否,则按照逻辑地址等于物理地址的规则得到转换后的物理地址,并发送至所述微处理器模块;
(12)若是,则根据命令类型进行对应的地址转换:
(121)若命令类型为读,则:若逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址,并发送至所述微处理器模块;
(122)若命令类型为写,则根据其对应的逻辑地址是否被使用过,决定更新逻辑物理映射表LPT或进行预先设定的物理地址替换程序;
微处理器模块,其被配置为接收来源于所述地址映射模块的物理地址及整理使用过的替换用物理地址并更新的逻辑物理映射表LPT;并将所述物理地址及更新的逻辑物理映射表LPT转发至数据缓存模块;
数据缓存模块,其被配置为接收来源于所述SPI协议模块的数据读写命令、待写入的数据,来源于所述微处理器模块的逻辑物理映射表LPT,以及来源于数据修正码模块的待读取数据;将数据读写命令、待写入的数据及其对应的物理地址转发至错误修正码模块;
错误修正码模块,其被配置为接收来源于所述数据缓存模块的待写入数据以及来源于闪存协议模块的待读取数据;将所述待写入数据加入ECC码或所述待读取数据依ECC进行错误修正后分别对应转发至所述闪存协议模块及所述数据缓存模块;
闪存协议模块,其被配置为接收并将来源于所述错误修正码模块的待写入的数据传输至外连的并口NAND Flash存储器,以及接收并将来源于外连的并口NAND Flash存储器的待写入数据传输至所述错误修正码模块。
2.根据权利要求1所述的控制芯片,其特征在于,所述逻辑物理映射表LPT中包括已使用的逻辑地址到物理地址的映射信息,以及替换用的物理地址。
3.根据权利要求2所述的控制芯片,其特征在于,所述数据缓存模块还存储有保留页表RPT,所述保留页表RPT记录有替换用物理地址的使用状态;
所述保留页表RPT用于供所述地址映射模块判断替换用的物理地址是否已被使用;根据地址映射过程中的使用情况更新替换用的物理地址的使用状态,并经由所述微处理器模块更新存储至所述数据缓存模块。
4.根据权利要求3所述的控制芯片,其特征在于,所述资料热区中的逻辑地址为逻辑转物理地址定义范围,对应常态性更新资料;所述资料冷区中的逻辑地址对应非常态性更新资料或只读资料;
其中,所述常态性更新资料与所述非常态性更新资料,可通过预设的更新频率进行预先界定。
5.根据权利要求4所述的控制芯片,其特征在于,步骤(122)中,
若所述逻辑地址尚未被使用,则根据逻辑地址等于物理地址的规则将该地址更新至逻辑物理映射表LPT,并将转换后的物理地址发送至所述微处理器模块;
若所述逻辑地址已被使用,则根据保留页表RPT判断所有替换用的物理地址是否均使用完毕:
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新所述保留页表RPT和所述逻辑物理映射表LPT,并将转换后的物理地址发送至所述微处理器模块;
若是,则向所述微处理器模块发送保留页表满载信号,并等待所述微处理器模块发送的整理恢复信号后,返回步骤(122)继续执行。
6.根据权利要求5所述的控制芯片,其特征在于,所述微处理器模块包括固件,所述固件用于整理使用过的替换用的物理地址;在完成整理后更新所述逻辑物理映射表LPT和所述保留页表RPT,并发送至所述数据缓存模块供所述地址映射模块获取使用。
7.根据权利要求1~6任一项所述的控制芯片,其特征在于,所述控制芯片还包括模拟IP模块,其被配置为通过连接外部电源为所述控制芯片提供模拟电源和电流、电压及起点重置信号。
8.一种基于SPI读写命令的逻辑物理地址转换方法,其特征在于,包括:
(1)判断逻辑地址是否在资料热区内:
若否,则按照逻辑地址等于物理地址的规则得到转换后的物理地址;
若是,则
(2)根据SPI命令类型进行对应的地址转换:
若命令类型为读,则:若逻辑地址未被使用过,则根据逻辑地址等于物理地址获得转换后的物理地址,否则,通过查询逻辑物理映射表LPT得到转换后的物理地址;
若命令类型为写,则
(3)判断其对应的逻辑地址是否被使用过:
若所述逻辑地址尚未被使用,则根据逻辑地址等于物理地址的规则将该地址更新至逻辑物理映射表LPT;
若所述逻辑地址已被使用,则
(4)根据保留页表RPT判断所有替换用的物理地址是否均使用完毕:所述保留页表RPT记录有替换用物理地址的使用状态,保留页表RPT用于供所述地址映射模块判断替换用的物理地址是否已被使用;
若否,则获取替换的物理地址作为逻辑地址对应的物理地址,更新所述保留页表RPT和所述逻辑物理映射表LPT;
若是,则整理使用过的替换用的物理地址;在完成整理后更新逻辑物理映射表LPT和保留页表RPT,返回步骤(2)继续执行。
9.一种计算机存储介质,其特征在于,所述存储介质中包括计算机可执行指令,所述指令被执行时用于实现权利要求8所述的逻辑物理地址转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010765069.9A CN111966611B (zh) | 2020-08-03 | 2020-08-03 | 具有逻辑转物理地址架构的spi闪存控制芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010765069.9A CN111966611B (zh) | 2020-08-03 | 2020-08-03 | 具有逻辑转物理地址架构的spi闪存控制芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966611A CN111966611A (zh) | 2020-11-20 |
CN111966611B true CN111966611B (zh) | 2023-12-12 |
Family
ID=73363365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010765069.9A Active CN111966611B (zh) | 2020-08-03 | 2020-08-03 | 具有逻辑转物理地址架构的spi闪存控制芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966611B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127402B (zh) * | 2021-04-29 | 2024-05-14 | 广东湾区智能终端工业设计研究院有限公司 | 一种spi访问控制方法、系统、计算设备及存储介质 |
CN115563026B (zh) * | 2022-12-07 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种映射表的重建方法及数据存储设备 |
CN116431530B (zh) * | 2023-02-08 | 2024-03-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002109895A (ja) * | 1996-02-29 | 2002-04-12 | Hitachi Ltd | 半導体記憶装置 |
KR20060129329A (ko) * | 2006-07-27 | 2006-12-15 | 트렉 2000 인터네셔널 엘티디. | 메모리 어드레스 맵핑 테이블을 이용한 휴대용 데이터 저장장치 |
CN101634967A (zh) * | 2008-07-24 | 2010-01-27 | 群联电子股份有限公司 | 用于闪存的区块管理方法、储存系统与控制器 |
KR20120011634A (ko) * | 2010-07-29 | 2012-02-08 | 엘지전자 주식회사 | 플래시 메모리장치 |
CN103034511A (zh) * | 2012-11-23 | 2013-04-10 | 华为技术有限公司 | 一种基本输入输出系统间的切换方法及装置 |
CN104317743A (zh) * | 2014-09-29 | 2015-01-28 | 上海华为技术有限公司 | 对spi flash的写保护方法和控制器 |
CN105279094A (zh) * | 2014-06-09 | 2016-01-27 | 中兴通讯股份有限公司 | NAND Flash操作处理方法、装置及逻辑器件 |
CN106569959A (zh) * | 2016-10-28 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种基于ssd的缓存替换方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140304453A1 (en) * | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
-
2020
- 2020-08-03 CN CN202010765069.9A patent/CN111966611B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002109895A (ja) * | 1996-02-29 | 2002-04-12 | Hitachi Ltd | 半導体記憶装置 |
KR20060129329A (ko) * | 2006-07-27 | 2006-12-15 | 트렉 2000 인터네셔널 엘티디. | 메모리 어드레스 맵핑 테이블을 이용한 휴대용 데이터 저장장치 |
CN101634967A (zh) * | 2008-07-24 | 2010-01-27 | 群联电子股份有限公司 | 用于闪存的区块管理方法、储存系统与控制器 |
KR20120011634A (ko) * | 2010-07-29 | 2012-02-08 | 엘지전자 주식회사 | 플래시 메모리장치 |
CN103034511A (zh) * | 2012-11-23 | 2013-04-10 | 华为技术有限公司 | 一种基本输入输出系统间的切换方法及装置 |
CN105279094A (zh) * | 2014-06-09 | 2016-01-27 | 中兴通讯股份有限公司 | NAND Flash操作处理方法、装置及逻辑器件 |
CN104317743A (zh) * | 2014-09-29 | 2015-01-28 | 上海华为技术有限公司 | 对spi flash的写保护方法和控制器 |
CN106569959A (zh) * | 2016-10-28 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种基于ssd的缓存替换方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111966611A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074175B1 (en) | Flash memory controller which assigns address and sends assigned address to host in connection with data write requests for use in issuing later read requests for the data | |
CN111966611B (zh) | 具有逻辑转物理地址架构的spi闪存控制芯片 | |
US8219776B2 (en) | Logical-to-physical address translation for solid state disks | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
US8214578B2 (en) | Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same | |
TWI584122B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
CN109840218B (zh) | 有效数据管理方法以及存储控制器 | |
TWI629590B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
WO2021035555A1 (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
CN112860193B (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
TW201908978A (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
JPWO2018142622A1 (ja) | 計算機 | |
JP2022143231A (ja) | ストレージデバイス、ストレージシステム、及び制御方法 | |
CN114238158A (zh) | 数据存储管理方法和存储装置 | |
CN113946277A (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 |