存储器存取指令的管理方法与管理系统的制作方法

文档序号:6489776阅读:193来源:国知局
存储器存取指令的管理方法与管理系统的制作方法
【专利摘要】一种存储器存取指令的管理方法,用于包括多个库的随机存取存储器。此方法包括以下步骤。接收多个存取指令,这些存取指令包括第一存取指令,其是要存取第一库的第一行。存取第一库的上一个存取指令为第二存取指令。判断第一行是否为启动;若不,将接收第一存取指令与执行第二存取指令之间的时间区间设为第一库所对应的计数值。判断计数值是否大于一个临界值以决定库转换耗尽变数。根据库转换耗尽变数产生第一存取指令的优先级值。根据存取指令所各自对应的优先级值,决定存取指令的执行顺序。藉此,可以增加随机存取存储器的频宽使用率。
【专利说明】存储器存取指令的管理方法与管理系统
【技术领域】
[0001]本发明是有关于一种管理方法,且特别是有关于一种用于随机存取存储器的管理方法与管理系统。
【背景技术】
[0002]一个随机存取存储器可以让多个客户端来存取。然而,在一般情况下,随机存取存储器同一时间只能让一个客户端来存取。因此,当每个客户端都要存取随机存取存储器时,一个控制单元会决定由哪一个客户端来存取随机存取存储器。一种作法是,轮流的让每一个客户端存取随机存取存储器,也就是每一个客户端会被分配到相同的时间。但此作法并不能有效的利用随机存取存储器的频宽。因此,如何有效的让这些客户端存取随机存取存储器,同时也增加随机存取存储器的频宽使用率,为此领域技术人员所关心的议题。

【发明内容】

[0003]本发明的实施例提出一种存储器存取指令的管理方法与管理系统,用以增加随机存取存储器的频宽使用率。
[0004]本发明一实施例提出一种存储器存取指令的管理方法,用于随机存取存储器。此随机存取存储器包括多个库(bank)。此管理方法包括:接收用以存取随机存取存储器的多个存取指令。这些存取指令尚未被执行,其中包含第一存取指令。第一存取指令是要存取第一库的第一行。此外,接收第一存取指令的时间晚于接收第二存取指令的时间,并且第二存取指令是第一存取指令上一个要存取第一库的存取指令。此管理方法还包括:计算存取指令所各自对应的优先级值(Status),其中计算第一存取指令的优先级值的步骤更包含:根据第一库的第一行是否为启动,以产生一行命中变数(PGHit);当行命中变数不为启动时(If PGHit=O),将接收第一存取指令与第二存取指令之间的时间区间设为第一库所对应的一计数值(counter);判断计数值是否大于第一库所对应的一临界值,以决定一库转换耗尽变数(BKCHG OUT);以及,至少根据第一库所对应的库转换耗尽变数(BKCHG OUT)产生第一存取指令的优先级值(Status)。此管理方法还包括:根据存取指令所各自对应的优先级值(Status),决定存取指令的执行顺序。
[0005]在一实施例中,上述计算第一存取指令的优先级值的步骤更包含根据下列参数之一及其任意组合:最后读写变数(last_wrj)、行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)、库转换耗尽变数(BKCHG OUT)、延迟耗尽变数(LatenCy_0ut)与片计数耗尽变数(Slice_0Ut)。其中,最后读写变数表示该第一存取指令的前一个接收的一第三存取指令是否为写入指令。读写命中变数表示第三存取指令与第一存取指令是否同样为读取指令或写入指令。库转换变数表示第一存取指令与第三存取指令是否要存取不同的库。延迟耗尽变数表示第一存取指令所等待的时间是否已超过一个等待临界值。片计数耗尽变数表示连续的回应发送第一存取指令的一客户端的次数是否超过一个片计数临界值。
[0006]在一实施例中,上述的管理方法更包括:若第二存取指令为写入指令,临界值是基于下列参数之一及其和来决定:随机存取存储器的写入延迟时间、突发长度、写入恢复时间、额外等待时间、库预充电时间与行有效延迟时间。若第二存取指令为读取指令,临界值是基于下列参数之一及其和来决定:随机存取存储器的额外等待时间、读预充电时间、库预充电时间与行有效延迟时间。
[0007]在一实施例中,上述的管理方法更包括:对应于最后读写变数(last_Wrj),根据行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)建立一个读取真值表与一个写入真值表。读取真值表包括多个读取项次,每一个读取项次对应于至少一个第一操作。写入真值表包括多个写入项次,并且每一写入项次对应于至少一个第二操作。上述的管理方法更包括:根据第一操作设定每一个读取项次是对应于多个分数的其中之一;以及根据第二操作设定每一写入项次是对应于这些分数的其中之一。
[0008]在一实施例中,上述的计算第一存取指令的优先级值的步骤包括:根据对应于第一存取指令的最后读写变数、行命中变数、读写命中变数、库转换变数与库转换耗尽变数,取得上述分数中的第一分数;以及根据第一分数、对应于第一存取指令的延迟耗尽变数(Latency_out)与片计数耗尽变数(Slice_out)计算优先级值。
[0009]在一实施例中,上述的管理方法更包括:若第一分数与延迟耗尽变数符合一个预设条件时,延迟执行第一存取指令。
[0010]以另外一个角度来说,本发明一实施例提出一种存储器存取指令的管理系统,用于随机存取存储器。随机存取存储器包括多个库(bank),此管理系统包括:第一模块,用以接收用以存取随机存取存储器的多个存取指令。其中,这些存取指令尚未被执行,并且包含第一存取指令。第一存取指令是要存取第一库的第一行。接收第一存取指令的时间晚于接收第二存取指令的时间。第二存取指令是第一存取指令上一个要存取第一库的存取指令。此管理系统还包括第二模块,用以计算存取指令所各自对应的一优先级值(Status)。第二模块还用以:根据第一库的第一行是否为启动,以产生一行命中变数(PGHit);当行命中变数不为启动时(If PGHit=O),将接收第一存取指令与第二存取指令之间的时间区间设为第一库所对应的一计数值(counter);判断计数值(counter)是否大于第一库所对应的一个临界值,以决定库转换耗尽变数(BKCHG_0UT);以及至少根据第一库所对应的库转换耗尽变数(BKCHG_0UT)产生第一存取指令的优先级值(Status)。此管理系统还包括第三模块,用以根据存取指令所各自对应的优先级值(Status),决定存取指令的执行顺序。
[0011]在一实施例中,上述的第二模块更用以根据下列参数之一及其任意组合计算第一存取指令的优先级值:最后读写变数(last_Wrj)、行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)、库转换耗尽变数(BKCHG_0UT)、延迟耗尽变数(Latency_out)与片计数耗尽变数(Slice_0ut)。最后读写变数表示该第一存取指令的前一个接收的一第三存取指令是否为写入指令。读写命中变数表示第三存取指令与第一存取指令是否同样为读取指令或写入指令。库转换变数表示第一存取指令与该第三存取指令是否要存取不同的库。延迟耗尽变数表示第一存取指令所等待的时间是否已超过一个等待临界值。片计数耗尽变数表示连续的回应发送第一存取指令的客户端的次数是否超过片计数临界值。
[0012]在一实施例中,上述的管理系统更包括第四模块与第五模块。若第二存取指令为写入指令,第四模块用以设定临界值是基于下列参数之一及其和来决定:随机存取存储器的写入延迟时间、突发长度、写入恢复时间、额外等待时间、库预充电时间与行有效延迟时间。若第二存取指令为读取指令,第五模块用以设定临界值是基于下列参数之一及其和来决定:随机存取存储器的额外等待时间、读预充电时间、库预充电时间与行有效延迟时间。
[0013]在一实施例中,上述的管理系统更包括第六模块、第七模块、与第八模块。第六模块用以对应于一最后读写变数(last_Wrj),根据行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)建立读取真值表与写入真值表。读取真值表包括多个读取项次,每一个读取项次对应于至少一个第一操作。写入真值表包括多个写入项次,并且每一个写入项次对应于至少一个第二操作。第七模块用以根据第一操作设定每一个读取项次是对应于多个分数的其中之一。第八模块用以根据第二操作设定每一个写入项次是对应于所述分数的其中之一。
[0014]在一实施例中,上述的第二模块还用以:根据对应于第一存取指令的最后读写变数、行命中变数、读写命中变数、库转换变数与库转换耗尽变数,取得所述分数中的第一分数;以及根据第一分数、对应于第一存取指令的延迟耗尽变数(LatenCy_0ut)与片计数耗尽变数(Slice_out)计算第一存取指令的优先级值。
[0015]在一实施例中,上述的管理系统更包括:第九模块,若第一分数与延迟耗尽变数符合一预设条件时,用以延迟执行第一存取指令。
[0016]基于上述,本发明实施例提出的管理方法与管理系统,可以透过多个变数决定存取指令的执行顺序,藉此增加随机存取存储器的频宽使用率。
[0017]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
【专利附图】

【附图说明】
[0018]图1是根据一实施例说明电子装置的方块图。
[0019]图2是根据一实施例说明决定存取指令的执行顺序的示意图。
[0020]图3是根据一实施例绘示存储器存取指令的管理方法的流程图。
[0021]图4是根据一实施例绘示读取真值表的示意图。
[0022]图5是根据一实施例绘示化简读取真值表的示意图。
[0023]图6是根据一实施例绘示写入真值表的示意图。
[0024]主要元件符号说明
[0025]100:电子装置
[0026]110:传输接口
[0027]120:控制单元
[0028]130:随机存取存储器
[0029]131、132、133:库
[0030]201、202、203:存取指令
[0031]210、220、240、250:步骤
[0032]211、212、213、231:优先级值
[0033]S302、S304、S306、S308、S310、S312、S314、S316:存储器存取指令的管理方法的步
骤[0034]400:读取真值表
[0035]401?416:读取项次
[0036]500:表格
[0037]501:组合
[0038]600:与入真值表
[0039]601?616:写入项次
【具体实施方式】
[0040]图1是根据一实施例说明电子装置的方块图。
[0041]请参照图1,电子装置100包括传输接口 110,控制单元120,随机存取存储器130。例如,电子装置100为一个机顶盒(set-top box)、个人电脑、智能手机、平板电脑、或服务器。
[0042]传输接口 110是用以电性连接至其他电子装置。这些电子装置会透过传输接口110传送一或多个存取指令给控制单元120,用以存取随机存取存储器130。
[0043]控制单元120是用以控制电子装置100的整体操作。例如,控制单元120可为中央处理单兀(Central Processing Unit, CPU)、微处理器(Microprocessor)、数字信号处理器(Digital Signal Processor, DSP)、可编程控制器、特殊应用积体电路(ApplicationSpecif ic Integrated Circuits, ASIC)、或是可编程逻辑装置(Programmable Logic Device, PLD)。
[0044]在本发明的一实施例中,上述的随机存取存储器130为一种双倍资料率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDRSDRAM)。本发明并不限定随机存取存储器130的型态,其可以是其他形式的随机存取存储器,如单倍资料率同步动态随机存取存储器(SDR SDRAM),或是符合联合电子装置委员会(Joint Electron Device Council)所制订工业标准的其他随机存取存储器130。在本发明中,随机存取存储器130会包括多个库(bank),例如为库131、库132以及库133。每一个库会至少包括一个矩阵结构(由行与列来表示),此矩阵结构上的每一个元素可储存至少一个位元(bit)。当要读/写资料时,控制单元120会先执行预充电(precharge)的程序,然后启动一个行,接着才可以从被启动的行中读取/写入资料。
[0045]图2是根据一实施例说明决定存取指令的执行顺序的示意图。
[0046]请参照图2,首先,控制单元120会接收多个存取指令(例如,存取指令201、202与203,亦被称为存储器存取指令)。每一个存取指令是要存取一个库中的一个行。此时,这些接收到的存取指令尚未被执行。在步骤210中,控制单元120会将所接收到的存取指令与上一个执行的存取指令比较,以计算这些存取指令各自对应的优先级值(Status)。在本实施例中,优先级值211是对应存取指令201,优先级值212是对应存取指令202,并且优先级值213是对应存取指令203。
[0047]在步骤220中,控制单元120会从这些计算出的优先级值中挑选出一个优先级值231。例如,控制单元120是挑选数值最大的优先级值作为优先级值231。
[0048]在步骤240中,控制单元120会接受优先级值231对应的存取指令。举例来说,若所挑选的是优先级值211,则控制单元120会接受存取指令201。[0049]在步骤250中,控制单元120会根据所接收的存取指令来存取随机存取存储器130。藉此,控制单元120可以根据这些存取指令所各自对应的优先级值来决定这些存取指令的执行顺序。
[0050]特别的是,在计算一个存取指令的优先级值时,控制单元120会判断所要存取的行是否为启动。若不是,则会进一步判断此存取指令要存取的库对应的一个计数值(counter)是否大于一个临界值。若此计数值大于临界值,则控制单元120会调整此存取指令的优先级值,使得此存取指令会优先被接受。
[0051]具体来说,控制器120对于每一个库都会设定一个计数值。此计数值用以表示上一个执行于库的存取指令到目前接收的存取指令之间的时间区间。在此假设存取指令201 (亦称第一存取指令)是要存取库131 (亦称第一库)中的一个行(亦称第一行),而上一个执行于库131的存取指令被称为第二存取指令(即,接收存取指令201的时间晚于接收第二存取指令的时间)。而执行第二存取指令到接收存取指令201之间的时间区间会被设定为库131对应的计数值。
[0052]以计算存取指令201的优先级值为例。在接收到存取指令201以后,控制单元120会判断存取指令201所要存取的第一行目前是不是在启动(active)的状态,藉此产生一个行命中变数(PGHit)。此行命中变数是用以表示存取指令201所要存取的行是否为启动。若存取指令201所对应的行命中变数不为启动(If PGHit=O),控制单元120会将接收存取 指令201与执行第二存取指令之间的时间区间设为库131所对应的计数值。控制单元120会判断此计数值是否大于库131所对应的临界值。此临界值表示库131要经过多少时间才可以接收一个其行命中变数不为启动(PGHit=O)的存取指令。若库131所对应的计数值大于库131所对应的临界值,则表示库131已经可以接受存取指令201。另一方面,控制单元120会根据计数值是否大于临界值来决定一个库转换耗尽变数(BKCHG_0UT),并至少根据此库转换耗尽变数来产生存取指令201的优先级值。值得注意的是,在此实施例中,只有当存取指令201对应的行命中变数不为启动时,控制单元120才会比较计数值与临界值。
[0053]在一实施例中,控制单元120还会根据第二存取指令是写入指令或是读取指令来设定库131所对应的临界值。具体来说,若第二存取指令为写入指令,则控制单元120会根据以下方程式(I)来设定临界值。
[0054]TWCNT=WL+BL/2+tWR+AL+tRP+tRCD…(I)
[0055]其中,TWCNT是当第二存取指令为写入指令时所对应的临界值。WL为写入延迟时间(write latency)。BL为突发长度(burst length),例如为控制单元120的1、2、4或8个时钟周期(clock cycle) 4WR为写入恢复时间(Write recovery time),表示在一个启动的库中完成有效的写入操作及预充电前所必须等待的时间。AL为额外等待时间(additionallength),例如为O。tRP为库预充电时间,亦被称为指令预充电时间(prechargeco_andperiod),表示要预充电一个库所需的时间。tRCD为行有效延迟时间(activecommand tointernal read or write delay time),表示要使一个行有效(或称启动)所需的时间。
[0056]另一方面,若第二存取指令为读取指令,则控制单元120会根据以下方程式(2)来设定临界值。
[0057]TRCNT=AL+tRTP+AL+tRP+tRCD…(2)
[0058]其中,TRCNT是当第二存取指令为读取指令时所对应的临界值。tRTP为读预充电时间(internal read command to precharge command delay),表不在同一个库中,读取到启动所需的时间。
[0059]将上述方程式(I)与⑵合并以后可以产生以下方程式(3)。
[0060]BKCHG_0UT=! PGHit&[BKCHG_0UT counter) ((Write) ? TWCNT:TRCNY)]…(3)
[0061]其中,BKCHG_0UT是库转换耗尽变数,为一个布林值(boolean value)。PGHit为行命中变数,为一个布林值。BKCHG_0UT counter为一个库所对应的计数值,为一个实数。Write为一个布林值,表示第二存取指令是否为写入指令。换言之,当第二存取指令为写入指令时(Write=True),计数值BKCHG_0UT counter会与临界值TWCNT比较,反之与临界值TRCNY比较。并且只有在行命中变数不为启动时,库转换耗尽变数才有可能是启动。控制单元120会根据方程式(3)来产生对应的库转换耗尽变数。 [0062]值得注意的是,随着随机存取存储器130的型号,写入延迟时间、突发长度、写入恢复时间、额外等待时间、库预充电时间、行有效延迟时间、或是读预充电时间可能有不同的值。控制单元120会随着随机存取存储器130的型号而产生不同的临界值,本发明并不在此限。
[0063]在计算出每一个存取指令的库转换耗尽变数以后,控制单元120会至少根据库转换耗尽变数决定每一个存取指令的优先级值,并且根据这些优先级值决定存取指令的执行顺序。例如,控制单元120会优先选择库转换耗尽变数为启动的存取指令。
[0064]图3是根据一实施例绘示存储器存取指令的管理方法的流程图。
[0065]请参照图3,在步骤S302中,接收用以存取随机存取存储器的多个存取指令。在步骤S304中,对于每一个存取指令,根据存取指令所要存取的行是否为启动,产生一个行命中变数(PGHit)。在步骤S306中,判断行命中变数是否为启动。
[0066]若行命中变数为启动,在步骤S308中,产生每一个存取指令的优先级值。本发明并不限制在步骤S308要如何产生优先级值。
[0067]若行命中变数不为启动,在步骤S310中,将目前接收的存取指令与上一个执行的存取指令之间的时间区间设为所要存取的库所对应的一个计数值。在步骤S312中,判断计数值是否大于所对应的临界值,以决定一个库转换耗尽变数(BKCHG_0UT)。在步骤S314中,至少根据库转换耗尽变数(BKCHG_0UT)产生存取指令的优先级值。
[0068]在步骤S316中,根据存取指令所各自对应的优先级值,决定存取指令的执行顺序。
[0069]然而,图3中各步骤已详细说明如上,在此便不再赘述。
[0070][第二实施例]
[0071]第二实施例与第一实施例类似,在此仅描述不同之处。在第一实施例中,控制单元120是至少根据库转换耗尽变数(BKCHG_0UT)产生存取指令的优先级值。然而,在第二实施例中,控制单元120还可以将库转换耗尽变数与其他变数一起考虑来计算优先级值。具体来说,控制单元120可根据最后读写变数(last_Wrj)、行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)、库转换耗尽变数(BKCHG_0UT)、延迟耗尽变数(Latency_out)与片计数耗尽变数(Slice_out)的其中之一或其组合来计算一个存取指令的优先级值。
[0072]最后读写变数(last_Wr j)为一个布林值,用来表示上一个传送至控制单元120的存取指令是否为写入指令(即在存取指令201前一个接收的一第三存取指令)。例如,若第三存取指令为写入指令,则存取指令201对应的最后读写变数为启动。
[0073]读写命中变数(RWHit)为一个布林值,用来表示上一个存取指令是否与目前接受的存取指令同样为读取(或写入)指令。例如,若第三存取指令与存取指令201同样为读取(或写入)指令,则存取指令201对应的读写命中变数为启动。
[0074]库转换变数(BKCHG)为一个布林值,用来表示上一个存取指令与目前接受的存取指令是否要存取不同的库。例如,若第二存取指令与存取指令201要存取不同的库,则存取指令201对应的库转换变数为启动。
[0075]延迟耗尽变数(Latency_out)为一个布林值,用来表示目前接收的存取指令所等待的时间是否已超过一个等待临界值。此等待临界值可以由客户端设定。例如,若在接收存取指令201以后,其等待(尚未被执行)的时间超过等待临界值,则存取指令201对应的延迟耗尽变数为启动。
[0076]片计数耗尽变数(Slice_out)为一个布林值,用来表示控制单元120连续的回应了一个客户端的次数是否超过一个片计数临界值。例如,存取指令201是由一个第一客户端发出。在接收到存取指令201时,若控制单元120已经连续的回应(执行)第一客户端所发出的5个存取指令,而片计数临界值为4,则存取指令201所对应的片计数耗尽变数为启动。
[0077]具体来说,控制单元120会根据行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)来建立一个读取真值表。读取真值表中包括了多个读取项次,这些读取项次纪录了若上一个存取指令为读取指令,则执行目前的存取指令所需的操作。根据这些操作所需的时间,控制单元120会排序这些读取项次,并且设定每一个读取项次会对应到一个分数。而这些分数可用来计算优先级值。
[0078]图4是根据一实施例绘示读取真值表的示意图。
[0079]请参照图4,读取真值表400包括读取项次40广416。不同的读取项次会对应到不同的行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)。并且,每一个读取项次是对应到一或多个操作(亦称第一操作)。举例来说,读取项次401是对应于PGHit=O, RffHit=0, BKCHG_0UT=0, BKCHG=O,以及操作”预充电_>启动-> 写入”。读取项次401所代表的意思是,若上一个存取指令为读取指令,目前的存取指令为写入指令(读写命中变数RWHit=O),写入指令所要存取的行不为启动(行命中变数PGHit=O),写入指令所要存取的库与上一个存取指令所要存取的库不相同(库转换变数BKCHG=O),并且写入指令所要存取的库还不能接受行命中变数PGHit不为启动的存取指令(库转换耗尽变数BKCHG_0UT=0),此时所需要的操作为预充电,启动与写入操作。值得注意的是,读取项次404对应的操作包括”启动(可隐藏)”,其表示启动的操作可以隐藏在其他指令中,因此实际上所需的时间可能不包括启动所需的时间。另一方面,读取项次413与414对应的操作为”无缝执行”,其表示控制单元120不需要其他如预充电等操作便可以执行目前接收的存取指令。而读取项次411、412、415与416所对应的操作为”XXX”,其表示此情况并不会发生。这是因为读取项次411、412、415与416中对应的行命中变数(PGHit)与库转换耗尽变数(BKCHG_0UT)都为启动,在本实施例中并不会发生这样的情形(如以上方程式(3))。[0080]本领域有通常知识者,可以根据随机存取存储器130的型号来决定读取真值表400中各个操作所需花费的时间。藉此,可以根据所花费的时间(或是操作)来排序这些读取项次40f 416。例如,读取项次413与414所需花费的时间最少,因此其排序分别为I与2。例如,读取项次401、402、405与406所需花费的时间较多,因此其排序为9。控制单元120会根据这些操作,设定每一个读取项次会对应到一个分数。例如,读取项次414对应的分数为”1100”。在本实施例中,这些分数是用二进位来表示。值越大的分数,表示所花费的时间越少,因此控制单元120会优先的执行这些读取项次所对应的存取指令。
[0081]在一实施例中,读取真值表400所包含的资讯可以被化简为一或多个逻辑判断式。控制单元120可以根据这些逻辑判断式来计算一个存取指令的分数。例如,在本实施例中,一个分数是用4个位元来表示,因此对于每一个位元都可以产生对应的逻辑判断式。
[0082]图5是根据一实施例绘示化简读取真值表的示意图。
[0083]请同时参照图4与图5,在此以分数的最显著位元(most significant bit, MSB)为例。当分数的最显著位元为” I”或是”x”时,是对应至读取项次40^416。读取项次409^416的行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)可以对应至表格500上的一个位置,标示为” I”或”x”。另一方面,读取项次40f408所对应的分数的最显著位元为”0”,在表格500上是标示为”0”。表格500经过化简的步骤以后可以得到组合501,其代表的逻辑判断式为”PGHit”。也就是说,只要行命中变数(PGHit)为”1”,分数的最显著位元一定为” I”。分数的其他位元,也可以用化简的方式得到一个逻辑判断式,在此不再赘述。经过上述化简程序,读取真值表400所包含的资讯可以被表示为以下方程式(4广(7)。
[0084]Score [3] =PGHit...(4)
[0085]Score [2] =PGHi t&RWHit+BKCHG&BKCHT_OUT— (5)
[0086]Score[l] = !BKCHG&BKCHG_OUT…(6)
[0087]Score[0]=PGHit&!BKCHG+RWHit&BKCHG_0UT…(7)
[0088]其中Score [i]表示分数中的第i个位元(即,Score [3]为最显著位元)。然而,在其他实施例中,每一个分数也可以用数目更多或更少的位元来表示,本发明并不在此限。
[0089]另一方面,控制单元120也会根据行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)来建立一个写入真值表。读取真值表中包括了多个写入项次,这些写入项次纪录了若上一个存取指令为写入指令,则执行目前的存取指令所需的操作(亦称第二操作)。
[0090]图6是根据一实施例绘示写入真值表的示意图。
[0091]请参照图6,写入真值表600包括写入项次60广616。不同的写入项次会对应到不同的行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT)。并且,每一个写入项次是对应到一或多个操作。其中,”写入资料结束”是表示写入资料后到预充电之间需要等待的一段时间。然而,写入真值表600中的操作与读取真值表400中部份的操作相似,在此便不再赘述。
[0092]本领域有通常知识者,可以根据随机存取存储器130的型号来决定写入真值表600中各个操作所需花费的时间。藉此,可以根据所花费的时间(或是操作)来排序这些写入项次601~616。接着,控制单元120会设定每一个写入项次是对应到一个分数。相同的,经过化简以后,写入真值表600中包含的资讯可以被表示为以下方程式(8广(11)。
[0093]Score [3] = PGHit&RWHit+RWHit&PGCHG_OUT&BKCHG…(8)
[0094]Score[2]=PGHit+!RWHit&BKCHG_OUT&BKCHG…(9)
[0095]Score [I] =Ρ6ΗΗ&!.ΗΗ+ΒΚΟΚ_0υΤ&!ΒΚ(Μ>..(10)
[0096]Score[O]=PGHit&!BKCHG+BKCHG_OUT&BKCHG+RWHit&BKCHG_0UT…(11)
[0097]当接收存取指令201以后,控制单元120可以根据存取指令201对应的最后读写变数(last_wrj)、行命中变数(PGHit)、读写命中变数(RWHit)、库转换变数(BKCHG)与库转换耗尽变数(BKCHG_0UT),依照上述的方程式(4广(11)取得对应的分数。另一方面,控制单元120会根据取得的分数,存取指令201对应的延迟耗尽变数(LatenCy_0Ut)与片计数耗尽变数(Slice_0ut)来计算对应的优先值。例如,控制单元120可根据以下方程式(12广(17)来计算优先级值。
[0098]Status [5] =Latency_out…(12)
[0099]Status [4] = (Last_wrj) ? (RffHit&PGHit) I (RffHit&BKCHG_OUT&BKCHG):PGHit..(13)
[0100]Status[3] = ! Slice_out…(14)
[0101]Status [2] = (Last_wrj) ? PGHit I (! RffHi t&BKCHG_OUT&BKCHG):(RffHit&PGHit) I (BKCHG&BKCHG_OUT)…(15)
[0102]Status[I] = (Last_wrj) ? (!RffHit&PGHit) I (BKCHG_0UT&!BKCHG): (BKCHG_0UT&!BKCHG)…(16)
[0103]Status [0]: (Last_wrj) ? (! BKCHG&PGHit) I (BKCHG_OUT&BKCHG) I(RffHit&BKCHG_0UT): (!BKCHG&PGHit) I (RffHit&BKCHG_0UT)…(17)
[0104]其中,Status[i]表示优先级值中第i个位元的值。值得注意的是,将上述方程式(4)-(7)与方程式(8)-(11)合并以后,再加上最后读写变数(last_Wrj)便会成为方程式
(13)、(15)-(17)。换句话说,在本实施例中,优先级值中第4、2、个位元等同于分数的第
4、个位元。然而,本发明并不在此限,在其他实施例中,分数的四个位元也可以与延迟耗尽变数(Latency_out)与片计数耗尽变数(Slice_out)用其他方式结合而成为优先级值。若者,在其他实施例中,优先级值可以包含更多的位元,以考虑更多的其他因素。
[0105]在此实施例中,当接收到一个存取指令以后,控制单元120会根据方程式
(12)~(17)计算出每一个存取指令的优先级值。控制单元120会挑选最大的优先级值,接受并且执行对应的存取指令。然而,在一实施例中,若一个存取指令对应的分数与延迟耗尽变数(Latency_out)符合一个预设条件时,控制单元120会延迟执行此存取指令。例如,此预设条件是当延迟耗尽变数(LatenCy_0ut)为不启动并且分数的每一个位元都为”0”时成立。换句话说,在此实施例中,当一个优先级值的第5、4、2、1与O个位元为”0”时,控制单元120会延迟执行对应的存取指令。
[0106]在一实施例中,控制单元120的功能是实作为多个程式码(或多个模块),这些程式(或模块)会储存在一个存储器中,由一个处理器执行。这些模组的组合亦被称为一个存储器存取指令的管理系统。然而,本发明并不在此限,控制单元120的功能也可以实作为一或多个逻辑闸或电路。本发明并不限制用软体或是硬体的方式实作控制单元120的功能。
[0107]在其他实施例中,读取真值表400与写入真值表600的分数可以被设定为其他数值。如此一来,便可以产生不同于方程式(12)?(17)的逻辑判断式。本发明并不限制读取真值表400与写入真值表600中分数的值。此外,在一实施例中,随着随机存取存储器130的型号或是频率不同,读取真值表400与写入真值表600中每个操作所花费的时间也可能不同,藉此会产生不同的排序结果。本发明并不限制随机存取存储器130的型号与频率。
[0108]综上所述,本发明实施例提出的管理方法与电子装置,可以根据库转换耗尽变数为每一个存取指令决定一个优先级值,藉此决定存取指令的执行顺序。如此一来,可以提升随机存取存储器的频宽使用率。
[0109]虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属【技术领域】中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定的范围为准。
【权利要求】
1.一种存储器存取指令的管理方法,用于一随机存取存储器,其中该随机存取存储器包括多个库,该管理方法包括: 接收用以存取该随机存取存储器的多个存取指令,其中该些存取指令尚未被执行,该些存取指令包含一第一存取指令,该第一存取指令是要存取该些库中的一第一库的一第一行,接收该第一存取指令的时间晚于接收一第二存取指令的时间,并且该第二存取指令是该第一存取指令上一个要存取该第一库的存取指令; 计算该些存取指令所各自对应的一优先级值,其中计算该第一存取指令的优先级值的步骤更包含: 根据该第一库的该第一行是否为启动,以产生一行命中变数; 当该行命中变数不为启动时,将接收该第一存取指令与执行该第二存取指令之间的时间区间设为该 第一库所对应的一计数值; 判断该计数值是否大于该第一库所对应的一临界值,以决定一库转换耗尽变数;以及 至少根据该第一库所对应的该库转换耗尽变数产生该第一存取指令的优先级值;以及 根据该些存取指令所各自对应的该优先级值,决定该些存取指令的一执行顺序。
2.如权利要求1所述的管理方法,其中产生该第一存取指令的优先级值的步骤更包含根据下列参数之一及其任意组合:一最后读写变数、该行命中变数、一读写命中变数、一库转换变数、该库转换耗尽变数、一延迟耗尽变数与一片计数耗尽变数, 其中,该最后读写变数表示该第一存取指令的前一个接收的一第三存取指令是否为写入指令,该读写命中变数表示该第三存取指令与该第一存取指令是否同样为读取指令或写入指令,该库转换变数表示该第三存取指令是否要存取不同的该些库的其中之一,该延迟耗尽变数表示该第一存取指令所等待的时间是否已超过一等待临界值,并且该片计数耗尽变数表示连续的回应发送该第一存取指令的一客户端的次数是否超过一片计数临界值。
3.如权利要求1所述的管理方法,更包括: 若该第二存取指令为写入指令,该临界值是基于下列参数之一及其任意组合来决定:该随机存取存储器的写入延迟时间、突发长度、写入恢复时间、额外等待时间、库预充电时间与行有效延迟时间;以及 若该第二存取指令为读取指令,该临界值是基于下列参数之一及其任意组合来决定:该随机存取存储器的该额外等待时间、读预充电时间、该库预充电时间与该行有效延迟时间。
4.如权利要求1所述的管理方法,更包括: 对应于一最后读写变数,根据一行命中变数、一读写命中变数、一库转换变数与该库转换耗尽变数建立一读取真值表与一写入真值表,其中该读取真值表包括多个读取项次,每一该些读取项次对应于至少一第一操作,该写入真值表包括多个写入项次,并且每一该些写入项次对应于至少一第二操作; 根据该至少一第一操作设定每一该些读取项次是对应于多个分数的其中之一;以及 根据该至少一第二操作设定每一该些写入项次是对应于该些分数的其中之一。
5.如权利要求4所述的管理方法,其中计算该第一存取指令的优先级值的步骤包括: 根据对应于该第一存取指令的该最后读写变数、该行命中变数、该读写命中变数、该库转换变数与该库转换耗尽变数,取得该些分数中的一第一分数;以及根据该第一分数、对应于该第一存取指令的一延迟耗尽变数与一片计数耗尽变数计算该第一存取指令的该优先级值。
6.如权利要求5所述的管理方法,更包括: 若该第一分数与该延迟耗尽变数符合一预设条件时,延迟执行该第一存取指令。
7.一种存储器存取指令的管理系统,用于一随机存取存储器,其中该随机存取存储器包括多个库,该管理系统包括: 第一模块,用以接收用以存取该随机存取存储器的多个存取指令,其中该些存取指令尚未被执行,该些存取指令包含一第一存取指令,该第一存取指令是要存取该些库中的一第一库的一第一行,接收该第一存取指令的时间晚于接收一第二存取指令的时间,并且该第二存取指令是该第一存取指令上一个要存取该第一库的存取指令; 第二模块,用以计算该些存取指令所各自对应的一优先级值,其中该第二模块还用以: 根据该第一库的该第一行是否为启动,以产生一行命中变数; 当该行命中变数不为启动时,将接收该第一存取指令与该执行第二存取指令之间的时间区间设为该第一库所对应的一计数值; 判断该计数值是否大于该第一库所对应的一临界值,以决定一库转换耗尽变数;以及 至少根据该第一库所对应的该库转换耗尽变数产生该第一存取指令的优先级值;以及 第三模块,用以根据该些存取指令所各自对应的该优先级值,决定该些存取指令的一执行顺序。
8.如权利要求7所述的管理系统,其中该第二模块更用以根据下列参数之一及其任意组合产生该第一存取指令的优先级值:一最后读写变数、该行命中变数、一读写命中变数、一库转换变数、该库转换耗尽变数、一延迟耗尽变数与一片计数耗尽变数, 其中,该最后读写变数表示该第一存取指令的前一个接收的一第三存取指令是否为写入指令,该读写命中变数表示该第三存取指令与该第一存取指令是否同样为读取指令或写入指令,该库转换变数表示该第三存取指令是否要存取不同的该些库的其中之一,该延迟耗尽变数表示该第一存取指令所等待的时间是否已超过一等待临界值,并且该片计数耗尽变数表示连续的回应发送该第一存取指令的一客户端的次数是否超过一片计数临界值。
9.如权利要求7所述的管理系统,更包括: 第四模块,若该第二存取指令为写入指令,用以设定该临界值是基于下列参数之一及其任意组合来决定:该随机存取存储器的写入延迟时间、突发长度、写入恢复时间、额外等待时间、库预充电时间与行有效延迟时间;以及 第五模块,若该第二存取指令为读取指令,用以设定该临界值是基于下列参数之一及其任意组合来决定:该随机存取存储器的该额外等待时间、读预充电时间、该库预充电时间与该行有效延迟时间。
10.如权利要求7所述的管理系统,更包括: 第六模块,对应于一最后读写变数,根据一行命中变数、一读写命中变数、一库转换变数与该库转换耗尽变数建立一读取真值表与一写入真值表,其中该读取真值表包括多个读取项次,每一该些读取项次对应于至少一第一操作,该写入真值表包括多个写入项次,并且每一该些写入项次对应于一第二操作;第七模块,用以根据该至少一第一操作设定每一该些读取项次是对应于多个分数的其中之一;以及 第八模块,用以根据该至少一第二操作设定每一该些写入项次是对应于该些分数的其中之一。
11.如权利要求10所述的管理系统,其中该第二模块还用以: 根据对应于该第一存取指令的该最后读写变数、该行命中变数、该读写命中变数、该库转换变数与该库转换耗尽变数,取得该些分数中的一第一分数;以及 根据该第一分数、对应于该第一存取指令的一延迟耗尽变数与一片计数耗尽变数计算该第一存取指令的该优先级值。
12.如权利要求11所述的管理系统,更包括: 第九模块,若该第一分数 与该延迟耗尽变数符合一预设条件时,用以延迟执行该第一存取指令。
【文档编号】G06F13/16GK103729314SQ201210385322
【公开日】2014年4月16日 申请日期:2012年10月11日 优先权日:2012年10月11日
【发明者】田京京, 易冬柏 申请人:珠海扬智电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1