预测存储器存取的装置及其方法

文档序号:6461193阅读:99来源:国知局

专利名称::预测存储器存取的装置及其方法
技术领域
:本发明涉及一种存储器存取机制,尤其是涉及一种预测存储器存取的装置及其方法。
背景技术
:图1为已知数据处理系统10的示意图。如图1所示,数据处理系统100包含有一处理器核心101、一存储器102、一闪存103、一外部存储器接口104与一外部存储器105。处理器核心101,用来处理运算数据;存储器102耦接至处理器核心101,用来储存处理器核心101所要处理的指令(instruction)或数据;闪存103为一储存容量小但存取速度较快的存储器装置,也耦接至处理器核心101,用来寄存处理器核心101所要处理的指令或数据;外部存储器接口104,耦接至处理器核心101,用来作为外部存储器105与内部元件沟通的管道;外部存储器105耦接至外部存储器接口l(M,为一容量较大但存取速度较慢的存储器。一般来说,处理器核心101会先至闪存103撷取所需的指令或数据,当在闪存103中无法苋得所需的指令或数据时,才会至存储器102撷取所需的指令或数据。同样地,当在存储器102中无法觅得所需的指令或数据时,才会至外部存储器105撷取所需的指令或数据。在处理器核心101至存储器撷取指令或数据的过程中,可视系统需要而酉己置一;l也i止i十算单元及一存^f诸器管J里单元(memorymanagementunit,MMU)(两者于图中未示出),其中,地址计算单元依据系统的任务(task)产生一虚拟地址(virtualaddress/logicaddress),而存储器管理单元用以将该虛拟地址转换成一实体地址(PhysicalAddress),然后再依该实体地址去整个搜寻存储器以撷取所需的指令或数据。然而,在层层存储器中搜寻所需的指令或数据的过程,不但费时,且又耗电,大大降低了系统的整体效能及表现。因此,如何提升存储器的存取效能,且又能降低功率的消耗,便成为设计上的一项重要课题。
发明内容有鉴于此,本发明的目的之一在于提供一种预测存储器存取的装置及其方法,以解决已知技术所面临的问题,提高预测的准确性、以及降低存储器系统的功率消耗。根据本发明的一实施例,其提供一种预测存储器存取的方法,其每一数据处理程序由多个阶段来分段处理,且所述阶段至少包含有一第一阶段与一第二阶段,该方法包含有将一存储器划分为多个存储器区块;依据一第一位置信息正确值在该第一阶段期间产生一第二位置信息预测值;依据该第二位置信息预测值存取所述存储器区块中相对应的存储器区块;以及判断该第二位置信息预测值正确与否来决定是否重新存取该存储器;其中,在同一数据处理程序的所述阶段中,该第一阶段发生在该第二阶段之前。根据本发明的另一实施例,其提供一种数据处理装置,具有一预测存储器存取机制,其每一数据处理程序由多个阶段来分段处理,且所述阶段至少包含有一第一阶段与一第二阶段,该装置包含有一存储器,包含有多个存储器区块;一预测单元,耦接于该存储器,在该第一阶段期间依据一第一位置信息正确值产生一第二位置信息预测值,以存取该存储器中相对应位置的存储器区块;以及一确定单元,耦接于该预测单元,在该第二阶段期间用以判定一第二位置信息正确值与该第二位置信息预测值是否相同;其中,在同一数据处理程序的所述阶段中,该第一阶段发生在该第二阶段之前。图1为已知数据处理系统的示意图。图2为本发明预测存储器存取的装置的一实施例的示意图。图3为本发明预测存储器存取的装置的一实施例应用于数据处理系统的示意图。图4为本发明预测存储器存取的方法的一实施例的流程图。图5为本发明预测存储器存取的装置于一数据处理系统的管线处理下的一操作实施例的示意图。图6为本发明预测存储器存取的一操作实施例的示意图。图7~12为本发明预测存储器存取的一操作实施例的预测表内容示意图。附图符号说明10数据处理系统101处理器核心102存储器103闪存104外部存储器接口105外部存储器20预测存储器存取的装置200存取历史记录队列202预测表204确定单元206存储器单元208地址计算单元501、502、503、504、505记录具体实施方式为了提高数据存取的效率及降低功率的消耗,本发明提供一数据存取预测方法与其装置于上述系统中,用来解决前述所述问题以提升整体效能及表现。请参考图2,图2为本发明预测存储器存取的装置20的一实施例的示意图。装置20包含有一存取历史记录队列200(AccessHistoi-yQueue,AHQ)、一预测表202(predictiontable)、一确定单元204与一存储器单元206。在一实施例中,存储器单元206被划分为多个存储器区块(假设为4个存储器区块,分别为存储器区块l、存储器区块2、存储器区块3及存储器区块4)。由于存储器单元206被规划为4个存储器区块,故存取历史记录队列200每次所接收的存储器区块的实体地址以2位即可代表,且采用一6位的先进先出(FIFO)寄存器来实现存取历史记录队列200,亦即只储存3个存储器区块的实体地址。预测表202依据存取历史记录队列200的位数而规划成64(26=64)个登录项(entry),且每一登录项用以储存一存储器区块的实体地址。为方便理解起见,于此对欲存取的存储器区块的实体地址以PHYADD-NEXT来表示,且本发明中欲存取的存储器区块的实体地址的预测值以PHYADD-NEXT-PREDICTION来表示,并以流程的方式来作阐述。此流程请参考图3,图3为本发明预测存储器存取的方法的一实施例的流程图。步骤310:存取历史记录队列200尚未接收到欲存取的存储器区块的实体地址PHYADD-NEXT前,就以存取历史记录队列200的6位数据作为一索引(index),去预测表202中撷取与该索引相对应的登录项中的内容,用以作为欲存取的存储器区块的实体地址的预测值PHYADD—NEXT-PREDICTION。步骤320:依据该存储器区块的实体地址的预测值PHYADD-NEXT-PREDICTION去存取存储器单元206中相对应的存储器区块,以撷取所需的指令与数据。于此同时,存取历史记录队列200接收到欲存取的存储器区块的实体地址PHYADD-NEXT,并以先进先出(FIFO)方式来予以储存。步骤330:确定单元204比对存储器区块的实体地址PHYADD-NEXT与存储器区块的实体地址的预测值PHYADD—NEXT-PREDICTION是否相同。若相同,即预测正确,并到步骤310;若相异,即预测错误,则到步骤340。步骤340:依据该存储器区块的实体地址PHYADD-NEXT去存取存储器单元206中相对应的存储器区块,以撷取所需的指令与数据。在另一实施例中,装置20还可包含一地址产生模块,用以产生欲存取的存储器区块的实体地址PHYADD—NEXT于存取历史记录队列200,但此仅用以例说,并非用以限制本发明。请参考图4,图4为本发明预测存储器存取的装置20的一实施例在数据处理系统100中运作的示意图。在一实施例中,装置20还包含有一地址计算模块208,应用于具有一管线(pipeline)机制的系统中。对于每一指令的数据处理程序,该管线机制以指令撷取(Instructionfetch,I)、指令译码(Decode,D)、执行(Execution,E)、存储器存耳又(Memoryaccess,M)及写回(Writeback,W)等五个阶段(stage)来分段依序处理,但这也是仅为例说,并不作为本发明的限制,亦即可视实际应用,而作种种的变更及规划。于此,再对管线机制稍作简介,以利后续的说明及理解。假设数据处理系统10有5个任务(分别为taskl、Usk2、task3、task4及task5)需处理。执行时,第1个任务(taskl)执行时,会先在指令撷取阶段中来撷取相关的指令;然后,在第1个任务在指令译码阶段中对指令进行译码时,第2个任务(task2)同时在指令撷取阶段中撷取相关的指令;接着,第1个任务在执行阶段依据在指令译码阶段所得到的结果来进行相关的运作,第2个任务同时在指令译码阶段中对指令进行译码,第3个任务(task3)同时在指令撷取阶段中撷取所需的指令;接着,第1个任务在存储器存取阶段去存储器中撷取所需的数据,第2个任务同时在执行阶段依据在指令译码阶段所得到的结果来进行相关的运作,第3个任务同时在指令译码阶段中对指令进行译码,第4个任务(task4)同时在指令撷取阶段中撷取相关的指令;接着,第1个任务在写回阶段中将运算所得的数据存回到存储器中,第2个任务同时在存储器存取阶段去存储器中撷取所需的数据,第3个任务同时在指令执行阶段中依据在指令译码阶段所得到的结果来进行相关的运作,第4个任务同时在指令译码阶段中对指令进行译码,第5个任务(task5)同时在指令撷取阶段中撷取所需的指令;余以此类推,请参考图5以利理解。然而,同样为了简洁起见,于此不再赘述。在对管线机制作一简介后,接续上述本发明预测存储器存取的装置的一实施例的说明。在执行阶段期间,地址计算模块208依据系统的任务(task)产生一虚拟地址,而并将该虛拟地址转换成一实体地址,同时,本发明预测存储器存取的装置20依据存取历史记录队列200与预测表202对欲存取的存储器区块进行预先存取;在存储器存取阶段,则判断为预测失误或预测命中,然后根据预测的状态(亦即为预测失误或预测命中)来施行在图3中所述的本发明预测存储器存取的方法。而其余的阶段的相关运作,为简洁起见,故于此不再赘述。上述在存取存储器区块时,仅依据存储器的实体地址来开启存储器206中相对应的存储器区块,其余的存储器区块都为关闭。因此,当预测命中(hit)时,仅开启与存储器区块的实体地址的预测值PHYADD-NEXT-PREDICTION相对应的存〗诸器区块;而当预测失误(miss)时,也仅开启过与存储器区块的实体地址的预测值PHYADD_NEXT_PREDICTION及存储器区块的实体地址PHYADD-NEXT相对应的两存储器区块,但此仅为范例,并非用以限制本发明,亦即可视实际应用而作适当的变更及设计。由上述可知,此不仅大幅降低功率的消耗,也提升系统的整体效能及表现,然而,本发明并不以此为限。值得注意的是,在上述实施例中,存储器206以一紧密耦合存储器(TightlyCoupledMemory,TCM)来加以实作,然而,此仅为范例说明,并非用以限制本发明,亦即,上述的预测机制也可应用于其它种类的存储器,但为了简洁起见,故于此不再赘述。请参考图2、图6至图12,图6为本发明预测存储器存取的一操作实施例的示意图,而图7至图12为本发明预测存储器存取的一操作实施例的预测表内容示意图。在本实施例中,首先,请参考图6与图7,存取历史记录队列200与预测表202的内容都为初始值,其中存取历史记录队列200的位排列为rBsBABAB",表示所存取过的存储器区块的实体地址依序为"B,B。"、"BA"及"B5B4,,;请参考图6,在记录501中,存取历史记录队列200为r000000」的存取顺序组合,故依据存取历史记录队列200的内容为索引去预测表202的索引位置「000000」中撷取存储器区块的实体地址的预测值PHYADD-NEXT-PREDICTION(图7中的预测表202的索引位置r000000」的初始值内容为「00」),然后对实体地址为「O(H的存储器区块进行预先存取,于此,所欲存取的存储器区块的实体地址PHYADD_NEXT也为「00」(请参考图6),故表示此为一预测命中,此外,并将该存储器区块的实体地址PHYADD—NEXT「00」以先进先出的方式来加载存取历史记录队列200的B5B4中,以及将预测表202中索引位置r000000」的初始值内容设定为r00」(请参考图8);接着,进行第二次存储器存取(请参考图6及图8),如记录502所示,存取历史记录队列200依然为「000000J,仍依据存取历史记录队列200的内容为索引来对预测表202进行存取(图8中的预测表202中索引位置为「000000」的初始值内容为「00」),故此次的存储器区块的实体地址的预测值PHYADD_NEXT-PREDICTION为「00」,所以对实体地址为「00」的存储器区块进行预先存取,但此次的所欲存取的存储器区块的实体地址PHYADD—NEXT为「01」(请参考图6),故表示此为一预测失误,因此,则须对实体地址为「01」的存储器区块进行存取以取得正确的指令及数据,此外,并将该存储器区块的实体地址PHYADD一NEXT「01」以先进先出的方式来加载存取历史记录队列300中的B5B4,以及将预测表202中索引位置「000000」的初始值内容设定为「01」(请参考图9);接着,进行第三次存储器存取(请参考图6及图9),如记录503所示,存取历史记录队列200为r010000」,仍依据存取历史记录队列200的内容为索引来对预测表202进行存取(图9中的预测表202的登录项「010000」的初始值内容为「OOJ),故此次的存储器区块的实体地址的预测4直PHYADD—NEXT_PREDICTION为「00」,所以对实体地址为「OOJ的存储器区块进行预先存取,但此次的所欲存取的存储器区块的实体地址PHYADD-NEXT为r11」(请参考图6),故表示此为一预测失误,因此,则须对实体地址为「11」的存储器区块进行存取以取得正确的指令及数据,此外,并将该存储器区块的实体地址PHYADD—NEXTr11」以先进先出的方式来加载存取历史记录队列200中的BA(此时的存取历史记录队列200的内容为「110100」),以及将预测表202中索引位置「010000」的初始值内容设定为「ll"请参考图10);如记录504所示,存取历史记录队列200为「110100」,仍依据存取历史记录队列200的内容为索引来对预测表202进行存取(图9中的预测表202的登录项「110100」的初始值内容为「00J),故此次的存储器区块的实体地址的预测值PHYADD-NEXT-PREDICTION为「00J,所以对实体地址为「00」的存储器区块进行预先存取,而此次所欲存取的存储器区块的实体地址PHYADD-NEXT为r00」(请参考图6),故表示为一预测命中,此外,并将该存储器区块的实体地址PHYADD-NEXT「00」以先进先出的方式来加载存取历史记录队列200中的B5B4(此时的存取历史记录队列200的内容为「OOllOH),以及将预测表202中索引位置「110100」的初始值内容设定为r00」(请参考图11);余其它存取次数的操作方式可以此类推而出;于此,值得注意的是记录505,存取历史记录队列200为「001101」,仍依据存取历史记录队列200的内容为索引来对预测表202进行存取(图11中的预测表202的索引位置为「001101」的内容为r01」),故此次的存储器区块的实体地址的预测itPHYADD_NEXT—PREDICTION为「01J,所以对实体地址为「01」的存储器区块进行预先存取,而此次所欲存取的存储器区块的实体地址PHYADD—NEXT为「01」(请参考图6),故表示为一预测命中,此外,将该存储器区块的实体地址PHYADD-NEXT「01」以先进先出的方式来加载存取历史记录队列200中的BsB/此时的存取历史记录队列200的内容为「010011J),但因为预测表202中索引位置「001101」的内容早已设定为「01」(请参考图12),故不予以作设定。由上述可得知,经适当程序来建立预测表202,便可精确地预测下一个欲存取的存储器区块。请注意,在此一实施例中,存取历史记录队列200仅记录连续3笔的存储器区块的实体地址PHYADD-NEXT,但此仅作为范例说明的用,并非用以限制本发明,亦非限定预测表202所采用的实施方式。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。权利要求1.一种预测存储器存取的方法,其每一数据处理程序由多个阶段来分段处理,且所述阶段至少包含有一第一阶段与一第二阶段,该方法包含有将一存储器划分为多个存储器区决;依据一第一位置信息正确值在该第一阶段期间产生一第二位置信息预测值;依据该第二位置信息预测值存取所述存储器区块中相对应的存储器区块;以及判断该第二位置信息预测值正确与否来决定是否重新存取该存储器;其中,在同一数据处理程序的所述阶段中,该第一阶段发生在该第二阶段之前。2.如权利要求1所述的方法,其中该判断该第二位置信息预测值是否正确的步骤,还包含有产生一第二位置信息正确值;以及判断同一数据处理程序中的该第二位置信息正确值与该第二位置信息预测值相同。3.如权利要求2所述的方法,其中该判断同一数据处理程序中的该第二位置信息正确值与该第二位置信息预测值相同的步骤还包含有若该第二位置信息正确值等于该第二位置信息预测值,为预测命中,则不需在该第二阶段期间依据该第二位置信息正确值来存取该存储器中相对应位置的存储器区块取得所需的数据。4.如权利要求2所述的方法,其中该判断同一数据处理程序中的该第二位置信息正确值与该第二位置信息预测值相同的步骤还包含有若该第二位置信息正确值不同于该第二位置信息预测值,为预测失误,则需在该第二阶段期间依据该第二位置信息正确值来存取该存储器中相对应位置的存储器区块取得所需的数据。5.如权利要求1所述的方法,其中该依据一第一位置信息正确值在该第一阶段期间产生一第二位置信息预测值的步骤还包含有提供一存取历史记录单元,用以接收该第一位置信息正确值,并予以储存而产生一存储器存取历史记录;其中,该第二位置信息预测值由该存储器存取历史记录所产生。6.如权利要求5所述的方法,其中该依据一第一位置信息正确值在该第一阶段期间产生一第二位置信息预测值的步骤还包含有提供一预测单元,包含有多个登录项,以该存储器存取历史记录为一索引,来取得该预测单元中与该索引相对应登录项中的内容,作为该第二位置信息预测值;其中,所述登录项内容为所述存储器区块的位置信息。7.如权利要求2所述的方法,还包含有在该第二阶段期间以该第二位置信息正确值更新与该索引相对应的登录项的内容。8.—种数据处理装置,具有一预测存储器存取机制,其每一数据处理程序由多个阶段来分段处理,且所述阶段至少包含有一第一阶段与一第二阶段,该装置包含有一存储器,包含有多个存储器区块;一预测单元,耦接于该存储器,在该第一阶段期间依据一第一位置信息正确值产生一第二位置信息预测值,以存取该存储器中相对应位置的存储器区块;以及一确定单元,耦接于该预测单元,在该第二阶段期间用以判定一第二位置信息正确值与该第二位置信息预测值是否相同;其中,在同一数据处理程序的所述阶段中,该第一阶段发生在该第二阶段之前。9.如权利要求8所述的装置,其中若同一数据处理程序中的该第二位置信息正确值与该第二位置信息预测值相同,则不需在该第二阶段期间依据该第二位置信息正确值来存取该存储器中相对应位置的存储器区块,以取得所需的数据。10.如权利要求8所述的装置,还包含有一存取历史记录单元,用以接收该第一位置信息正确值,并予以储存而产生一存储器存取历史记录,其中该第二位置信息预测值由该存储器存取历史记录所产生。11.如权利要求10所述的装置,其中该第二位置信息正确值用以产生下一数据处理程序的该第一阶段期间的一第三位置信息预测值。12.如权利要求8所述的装置,其中该预测单元还包含有多个登录项,用以储存所述存储器区块中的至少一存储器区块的位置信自、13.如权利要求IO所述的装置,其中该存储器存取历史记录作为存取该预测单元的一索引,来取得该预测单元中与该索引相对应登录项中的内容,以作为该第二位置信息预测值。14.如权利要求9所述的装置,其中在该第二阶段期间,该第二位置信息预测值与该第二位置信息正确值若相同,则为预测命中,若相异,则为预测失误。15.如权利要求13所述的装置,其中当预测失误时,则在该第二阶段期间依据该第二位置信息正确值来存取该存储器中相对应位置的存储器区块,以取得所需的正确数据。16.如权利要求12所述的装置,其中在该第二阶段期间以该第二位置信息正确值更新与该索引相对应的登录项的内容。全文摘要本发明提供一种预测存储器存取的方法,其每一数据处理程序由多个阶段来分段处理,且所述阶段至少包含有一第一阶段与一第二阶段,该方法包含有将一存储器划分为多个存储器区块;依据一第一位置信息正确值在该第一阶段期间产生一第二位置信息预测值;依据该第二位置信息预测值存取所述存储器区块中相对应的存储器区块;以及判断该第二位置信息预测值正确与否来决定是否重新存取该存储器;其中,在同一数据处理程序的所述阶段中,该第一阶段发生在该第二阶段之前。文档编号G06F9/312GK101515230SQ200810080780公开日2009年8月26日申请日期2008年2月18日优先权日2008年2月18日发明者卢彦儒,张育铭申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1