非易失性存储器加速器及存取加速方法与流程

文档序号:11590235阅读:161来源:国知局

本发明涉及一种非易失性存储器加速器及加速方法,且特别涉及一种多层次的非易失性存储器加速器及加速方法。



背景技术:

为提供长效性的数据记忆媒介,非易失性存储器已成为电子装置中不可或缺的记忆装置。而随着日益增加的电子装置的效能需求,要如何快速的由非易失性存储器中读取到所需的数据,成为一个重要的课题。



技术实现要素:

本发明提供一种非易失性存储器加速器及加速方法,有效提升非易失性存储器的读取效率。

本发明的非易失性存储器加速器包括数据预取单元、快取单元以及存取接口电路。数据预取单元具有多个线缓冲器,依据读取命令由线缓冲器的其中之一提供读取数据,或者,依据读取命令读取至少一快取数据以作为读取数据。快取单元耦接至数据预取单元,用以存储至少一快取数据以及存储连续地址的多个预存数据。数据预取单元并依据读取命令在线缓冲器的至少其中之一存储连续地址的多个预存数据。存取接口电路耦接至数据预取单元、快取单元以及非易失性存储器,作为存取非易失性存储器的接口电路。

本发明的非易失性存储器的存取加速方法,包括:提供多个线缓冲器,依据读取命令由线缓冲器的其中之一来提供读取数据,并依据读取命令在线缓冲器的至少其中之一存储连续地址的多个预存数据;以及,提供快取单元,用以存储至少一快取数据以及连续地址的预存数据,并依据读取命令提供至少一快取数据以作为读取数据。

基于上述,本发明提供线缓冲器以及快取单元来配合非易失性存储器来形成三层的数据存取架构。并通过线缓冲器以及快取单元来分别提供连续地址的数据以及跳跃式地址的数据,有效提升非易失性存储器中的数据的存取 效率。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1绘示本发明一实施例的非易失性存储器加速器的示意图。

图2绘示本发明实施例的数据预取单元110的实施方式的示意图。

图3绘示本发明一实施例的非易失性存储器的存取加速方法的流程图。

图4~图6分别绘示非易失性存储器的存取加速方法不同步骤的多个实施细节。

【符号说明】

100:非易失性存储器加速器

101:非易失性存储器

110:数据预取单元

120:快取单元

130:存取接口电路

rcmd:读取命令

rdata:读取数据

lbuf1~lbufn:线缓冲器

dout:快取数据

add:存储器地址

111:多工器

112:控制器

s310~s320、s410~s472、s510~s560:存取加速方法的步骤

具体实施方式

请参照图1,图1绘示本发明一实施例的非易失性存储器加速器的示意图。非易失性存储器加速器100耦接至非易失性存储器101,并用来加速对非易失性存储器101所进行的数据读取动作。非易失性存储器加速器100包括数据预取单元110、快取单元120以及存取接口电路130。数据预取单元110具有多个线缓冲器lbuf1~lbufn。数据预取单元110可由外界接收读取命 令rcmd,并依据所接收的读取命令rcmd以由线缓冲器lbuf1~lbufn的其中之一来提供读取数据rdata。并且,数据预取单元110还可依据读取命令rcmd在线缓冲器lbuf1~lbufn的至少其中之一中存储多个预存数据。其中,线缓冲器lbuf1~lbufn中所存储的预存数据可以是连续地址的预存数据。在此,所谓的连续地址的预存数据指的是非易失性存储器加速器100外部的中央处理器所抓取的具有连续性地址的多个数据。也就是存储在非易失性存储器101中的连续地址的多个数据。或者,在另一方面,数据预取单元110依据读取命令读取至少一快取数据dout。其中,快取数据dout中的数据彼此间可以是跳跃式地址的数据也可以是连续性地址的数据。所谓的跳跃式地址的数据为非易失性存储器加速器100外部的中央处理器所抓取的与前一笔数据地址不连续的地址的数据。也就是存储在非易失性存储器101中的不连续地址的多个数据。

快取单元120耦接至数据预取单元110。快取单元120可用以存储一笔或多笔的快取数据。存取接口电路130则耦接至数据预取单元110、快取单元120以及非易失性存储器101。存取接口电路130用来执行针对非易失性存储器101进行存取所需要的动作,以作为对非易失性存储器进行存取的接口。

附带一提的,在本实施例中,线缓冲器lbuf1~lbufn所提供的数据存储的容量小于快取单元120所能提供的数据存储的容量。

关于非易失性存储器加速器100的动作细节,数据预取单元110可以接收由外部的电子装置(例如处理器)所发送的读取命令rcmd。并且,数据预取单元110可先由线缓冲器lbuf1~lbufn中进行搜寻,并检查出对应读取命令rcmd的需求数据是否已预存在线缓冲器lbuf1~lbufn的其中之一中。若搜寻的结果发现线缓冲器lbuf1~lbufn的其中之一(例如线缓冲器lbuf1)有预存需求数据时,数据预取单元110可使线缓冲器lbuf1输出这个需求数据来做为读取数据rdata,并将读取数据rdata提供给外部电子装置。

值得一提的是,本实施例中,各线缓冲器lbuf1~lbufn可存储连续地址的多笔预存数据。因此,当外部电子装置需求的多笔需求数据为连续地址的数据时,可由线缓冲器lbuf1~lbufn的其中之一进行连续的读取动作,以快速的获取所需的需求数据。

相反的,若上述的搜寻结果发现所有的线缓冲器lbuf1~lbufn都没有预存需求数据时,数据预取单元110则可针对快取单元120执行数据查找动作。若数据预取单元110查找出快取单元120中有存储对应读取命令rcmd的需求数据时,则由快取单元120中为需求数据的快取数据dout读出,并使所读出的需求数据为读取数据rdata并传送至外部电子装置。在另一方面,数据预取单元110还可将由快取单元120所读出的快取数据dout转存至线缓冲器lbuf1~lbufn中被判定为闲置的线缓冲器中。

当数据预取单元110将快取数据dout转存至线缓冲器(例如线缓冲器lbuf1)中时,数据预取单元110还可由非易失性存储器101将与快取数据dout地址相连续的一笔或多笔的数据读出,并存储在线缓冲器lbuf1以及快取单元120中。如此一来,当外部电子装置要进行与快取数据dout地址相连续的多笔需求数据的读取动作时,数据预取单元110则可由线缓冲器lbuf1中快速的提供读取数据rdata至外部电子装置,提升读取的效率。

在本发明实施例中,快取单元120中可存储一个或多个的快取数据。这些快取数据包括跳跃式地址以及连续地址的快取数据。也就是说,快取单元120中的多个快取数据间的地址可不相连续,也可以是相连续的。

另外,关于针对快取单元120进行数据查找的部分,快取单元120可以是一个标签存储器(tagmemory),数据预取单元110可将需求数据的存储器地址add传送给快取单元120,快取单元120可判断其内部是否有存储这个存储器地址add的数据,并据以传送命中(hit)或失误(miss)的查找结果。当快取单元120的查找结果为命中时,快取单元120可将对应存储器地址add的快取数据dout读出。

在另一方面,若快取单元120的查找结果为失误时,表示对应读取命令rcmd的需求数据并不存在于快取单元120中。此时,数据预取单元110则可通过存取界面电路130由非易失性存储器101来读取需求数据,并作为读取数据rdata以提供给外部电子装置。

值得一提的是,上述由非易失性存储器101中所读取需求数据可被更新至快取单元120以及线缓冲器lbuf1~lbufn中为闲置的线缓冲器中,以提供外部电子装置下一次的读取。

此外,快取单元120可以利用简化式的快取存储器来建构,其中,本发明实施例中的快取单元120仅需提供数据读出及写入以及数据查找功能即 可。

以下请参照图2,图2绘示本发明实施例的数据预取单元110的实施方式的示意图。数据预取单元110包括多工器111、线缓冲器lbuf1~lbufn以及控制器112。多工器111的输入端耦接至线缓冲器lbuf1~lbufn的输出端,多工器111的输出端则产生读取数据rdata,其中,多工器111可选择线缓冲器lbuf1~lbufn的其中之一中的数据以作为读取数据rdata进行输出。线缓冲器lbuf1~lbufn的输入端则耦接至控制器112。控制器112则与外部电子装置(未绘示)直接或间接的耦接,并接收外部电子装置所传送的读取命令rcmd。

在本实施方式中,控制器112可依据读取命令rcmd进行线缓冲器lbuf1~lbufn中的数据搜寻动作,并决定多工器111输出选择。另外,当线缓冲器lbuf1~lbufn不存在需求数据时,控制器112并可使快取单元120执行数据的查找动作,而在当快取单元120也不存在需求数据的状态下,控制器112也可藉由存取接口电路130由非易失性存储器101读取需求数据。

另外,控制器112可进行将由非易失性存储器101中读出的需求数据更新至线缓冲器lbuf1~lbufn及快取单元120的动作。其中,控制器112可先判断线缓冲器lbuf1~lbufn中是否有闲置的线缓冲器,并将需求数据更新至闲置的线缓冲器中。

在本发明实施例中,各线缓冲器lbuf1~lbufn可存储128位的数据(当然各线缓冲器lbuf1~lbufn所存储的数据的位数也可不是128个位),而其中的每一笔数据可以用数据的字元(word)来记数。另外,各线缓冲器(以线缓冲器lbuf1为范例)中存储对应非易失性存储器的地址以及该地址对应的由非易失性存储器读出的预存数据,并且,线缓冲器lbuf1中还存储有效标志。其中,有效标志用以指示线缓冲器lbuf1中的数据可否提供以进行读取。举例来说明,在当非易失性存储器被抹除(erase)时,线缓冲器lbuf1中的有效标志对应被设定为“0”。此时,由于线缓冲器lbuf1中的预存数据可能已经不是非易失性存储器中的数据,所以通过设定为“0”的有效标志,可以防止线缓冲器lbuf1中的旧的预存数据被读出而产生错误。相对的,当有新的数据被更新至线缓冲器lbuf1时,线缓冲器lbuf1中的有效标志则可对应被更新为“1”。

以下请参照图3,图3绘示本发明一实施例的非易失性存储器的存取加 速方法的流程图。其中,步骤s310提供多个线缓冲器,依据读取命令由上述的线缓冲器的其中之一来提供读取数据,并依据读取命令在线缓冲器的至少其中之一存储连续地址的多个预存数据。并且,步骤s320提供快取单元以存储至少一快取数据以及存储连续地址的多个预存数据,并依据读取命令提供所述的至少一快取数据以作为读取数据。

关于上述步骤的实施细节,请参照图4~图6,图4~图6分别绘示非易失性存储器的存取加速方法不同步骤的多个实施细节。请先参照图4的数据输出流程,在图4中,步骤s410为闲置状态,而在步骤s420中则判断有无接收到新的读取命令,为无接收到新的读取命令则持续执行步骤s420,而若接收到新的读取命令则依序执行步骤s430至步骤s450。步骤s430至步骤s450依序针对多个线缓冲器1~线缓冲器n进行数据搜寻的动作,并在当步骤s430至步骤s450中的其中之一搜寻到对应的线缓冲器(线缓冲器1~线缓冲器n)有需求数据时,将对应的线缓冲器的数据输出为读取数据(步骤s431~s451)。相对的,若所有的步骤s430至步骤s450中,线缓冲器1~线缓冲器n都没有搜寻到有需求数据时,则执行步骤s460。

在步骤s460中,则进行快取单元的数据查找动作,并在步骤s470中判断查找动作为命中或失误(未命中)。当步骤s470的判断结果为命中时,则执行步骤s472以输出快取单元中的数据,并将快取单元中的数据更新至闲置的线缓冲器中。相对的,若步骤s470的判断结果为失误时,则执行步骤s471以读取非易失性快闪存储器来获得需求数据。

接着请参照图5,图5绘示地址发布(addressissue)流程。步骤s510为闲置状态,并且,步骤s520判断是否需要发布新的读取地址,若判断结果为否,则持续执行步骤s520。相对的,若判断结果为是,则执行步骤s530。在步骤s530中,则执行非易失性存储器的地址n是否被发布中的判断动作,若判断结果为否,则进行非易失性存储器的地址n的读取动作(步骤s531),并在步骤s531完成后执行步骤s550。而若判断结果为是,则执行步骤s540以中止非易失性存储器的地址n的发布,并执行地址n+1的发布动作。接着,执行步骤s550以判断地址n+1是否被发布中,若步骤s550的判断结果为是,中止地址n+1的处理动作(步骤s551)并回到步骤s520。相对的,若步骤s550的判断结果为否,则执行步骤s560以使用地址n+1来进行非易失性存储器的读取动作。

以下请参照图6,图6绘示数据读取流程。步骤s610为闲置状态,在步骤s620则判断是否由发易失性存储器来读取数据,若判断结果为否则持续执行步骤s620,相对的,若步骤s620的判断结果为是,则执行步骤s630。在步骤s630中,则进行非易失性存储器的读取动作。接着,在步骤s640中,进行由非易失性存储器所读出的数据是否已备妥的判断动作。若步骤s640的判断结果为否,持续执行步骤s640,一旦步骤s640判断出数据已备妥,则执行步骤s650将由非易失性存储器所读出的数据更新至闲置的线缓冲器中。接着,在步骤s660中判断快取单元当时有无被读取(有无其他使用者对快取单元进行查找动作),若步骤s660的判断结果为否,则进行步骤s670将上述由非易失性存储器所读出的数据更新至快取单元中。相对的,若步骤s660的查找结果为是,则取消更新数据至快取单元的动作(步骤s661)并回到步骤s620。

综上所述,本发明提供多个线缓冲器以及快取单元,通过利用线缓冲器以及快取单元来分别存储连续地址的预存数据以及跳跃式地址的快取数据。当有读取数据的需求时,可利用线缓冲器以及快取单元两层式的架构来快速的提供需求数据,有效的提升非易失性存储器的读取速率。

虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1