可调适缓冲装置及其方法

文档序号:6467531阅读:111来源:国知局
专利名称:可调适缓冲装置及其方法
技术领域
本发明是有关于一种缓冲储存技术,特别是指一种可调适缓冲装置及其方法。
背景技术
参阅图1 , 一般电路设计中,处理器7会将运算数据写入外接存储器8中。但是,由 于处理器7速度普遍高出存储器8许多,所以通常采用内建缓冲装置71来暂存运算数据, 然后再继续往下执行指令,以避免因存储器8牵绊而降低效能。 已知一种缓冲装置接收处理器7传来的数笔相邻数据(数据宽度是一字(word)) 与对应地址后,会分别记录在多个分别具有一字储存宽度的数据项(entry)与多个地址项 目内。若该缓冲装置支持写入合并(write merge),则当其中部分相邻数据的对应地址递 增连续时,能合并成对系统总线(bus)9的单一写入命令,作为传送该等部分相邻数据的依 据。虽然此种做法不需一一传递每一笔数据的地址并可减少流经系统总线9的数据量,但 是该数据项的储存宽度因仅可容纳一笔数据,所以只有相邻数据的地址递增连续时才能进 行合并,而合并机率并不大。 已知另一种缓冲装置将数据项的储存宽度扩张为四字,当缓冲装置被写满前,可 将地址连续的数据记录在同一数据项。因此,即使地址连续的数据不是依序写入缓冲装置, 仍有机会合并在一起。不过,若是相邻数笔数据都非地址连续,则可能出现一数据项仅记录 一笔数据,造成储存空间极大的浪费。 此外,已知另有允许同一项目可被安排记录地址或是数据,而不似前述两种缓冲 装置必须准备地址项目和数据项。当前一地址与目前地址呈现递增连续时,只需记录目前 数据而不需记录目前地址,而目前数据与先前数据则可以合并成单一写入命令。然而,当不 满足递增连续时,则必须将地址和数据都予以记录。由于相邻数据才能合并,因此将导致系 统总线9的数据量仍难以减少。

发明内容
因此,本发明的目的,即在于提供一种可以弹性地调整储存结构的可调适缓冲装 置及其方法,能有效合并数据而使得系统总线的数据量下降,并且结构弹性有助于储存空 间使用率的提高。 于是,本发明的可调适缓冲装置,包含多个项目,每一个项目包括地址字段以及 记录区块;及控制单元,选择性地将每一个项目设定为一般状态或是转换状态;其中,当该 控制单元设定该些项目的第一项目为一般状态时,该第一项目的地址字段用以记录第一地 址,该第一项目的记录区块记录该第一地址所对应的数据以及相邻于该第一地址的其它地 址所对应的数据;当该控制单元设定该些项目的第二项目为转换状态时,该控制单元将该 第二项目的地址字段以及记录区块分为多个单元,其中每一个单元皆可分别用以记录第二 地址、该第二地址所对应的数据以及相邻于该第二地址所对应的数据。 而本发明的可调适缓冲方法,适用于可调适缓冲装置,该可调适缓冲装置包括多个项目,每一个项目包括用以记录地址相邻的数据的记录区块,该记录区块可设定为一般 状态或转换状态,该方法包含以下步骤接收并根据所接收数据对应的地址,判断是否可将 数据写入该记录区块的其中一个地址相邻的记录字段;若无法将数据写入该记录区块的任 一个地址相邻的记录字段,判断是否可将其中一个项目由一般状态变更为转换状态;以及 若没有任何项目可由一般状态变更为转换状态,则待该些记录字段的数据写出后,再将接 收数据写入;其中,由一般状态变更为转换状态是将每一个项目的地址字段和记录区块分 为多个单元,且其中至少有一个是未被写入数据的空白单元,而同一项目或同一单元的数 据可合并写出,以释出空白项目或单元。


图1是一方块图,说明处理器将运算数据写入外接存储器中; 图2是一方块图,说明本发明可调适缓冲装置的较佳实施例内建于处理器中,并 将数据写入存储器中; 图3是一流程图,说明本发明可调适缓冲方法的较佳实施例;
图4是一流程图,说明判断有无适当项目或单元可供数据写入; 图5是一示意图,说明各项目皆处于一般状态;
图6是一示意图,说明将数据写入于尚未有数据写入的项目内; 图7是一示意图,说明将其中一项目更动为转换状态; 图8是一示意图,说明数据写入于尚未有数据写入的单元内;及
图9是一示意图,说明将其中一项目的记录输出而空出一项目。
100处理器 3系统总线
1可调适缓冲装置 61 65步骤
611 613子步骤 s0记录字段 sl记录字段 s2记录字段 s3记录字段 s(n-l)记录字段 皿itl 3单元














ll控制单元 121有效字段 122状态区位 123致能字段 124地址字段 125记录区块 2存储器
具体实施例方式
有关本发明的前述及其它技术内容、特点与功效,在以下配合参考图式的一个较 佳实施例的详细说明中,将可清楚地呈现。 参阅图2,本发明的可调适缓冲装置的较佳实施例适用于处理器100中,能暂存处 理器100的运算数据,且通过系统总线3将数据传送到存储器2。 该可调适缓冲装置1包含控制单元11及多个项目。每一个项目包括一个有效字 段(field) 121、一个状态区位122、一个致能字段123、一个地址字段124及一个记录区块 125,且记录区块125包括n个记录字段s (n-l). . . s3、 s2、 sl、 s0。
该控制单元11可设定每一状态区位122的值,当设定其值为0时,可代表所对应 到的项目处于一般状态,则当设定其值为1时,可显示该项目处于转换状态。且本较佳实施 例是预设所有项目为一般状态。必须注意的是,文中所设定的值不论为0或是1,皆是用以 清楚表达实施例的操作内容,文内所述的任何设定数值皆非用以限定本发明的范畴。
当该控制单元11设定该项目为一般状态时,该项目的地址字段124可记录该控制 单元11写入的地址,而记录字段s(n-l) s 0可记录与该地址相关的至少一数据。该相 关的数据包括该地址所对应的数据或相邻于该地址的其它(n-l)个地址所对应的数据,其 中n为记录区块125的字段数。 在此举一例子说明假设n = 8,且地址字段124记录的地址为0x1000,且假设 相邻地址的地址差为4,则记录字段s0 s 7只能记录对应地址0xl000、0xl004、0x1008、 0xl00c、0xl010、0xl014、0xl018、0xl01c的数据,而这些数据就是与地址字段124所记录的 地址0x1000相关的数据。 当该控制单元11设定该项目为转换状态时,该控制单元11将该项目的地址字段 124和记录区块125分为多个单元,且每一单元用于记录该控制单元11写入的地址及与该 地址相关的至少一数据。而该相关的数据包括该地址所对应的数据或相邻于该地址的其它 (m-2)个地址所对应的数据,其中m是每一单元的字段数。 如参考图7的项目3,单元unit 1包括地址字段124与记录字段s 7、 s6,单元 皿it 2包括记录字段s5 s3,单元皿it 3包括记录字段s2 s0。 unit 1的地址字段 124用于记录地址,而记录字段s7、s6用于记录相关的数据。unit 2的记录字段s5用于记 录地址,而记录字段s4、s3用于记录相关的数据。unit 3的记录字段s2用于记录地址,而 记录字段sl、 s0用于记录相关的数据。 该控制单元11也设定每一有效字段121的值,当项目为一般状态时,该有效字段 121的值预设为100 ;当项目为转换状态时,有效字段121的该等位分别代表该项目中的该 等单元的有效性。如图7的项目3,当皿it 1、2有记录数据且皿it 3没有记录数据时,有 效字段121的值可设为110。 该控制单元11也设定每一致能字段123的值,该致能字段123的值具有多个位, 该等位分别对应记录字段s (n-l) s0是否有记录数据,当所对应的字段有记录数据时,位
值可设定为i,反之,位值则设定为o。 参阅图3,本发明可调适缓冲装置的较佳实施例所执行的可调适缓冲方法包含以 下步骤 步骤61 :控制单元11接收数据及与该数据相对应的地址,并判断有无适当项目或 单元的记录区块125可写入。 配合参阅图4,而步骤61包括以下子步骤 子步骤611 :判断接收数据所对应的地址与记录区块125中任一数据所对应的地 址是否属于同一个呈一般状态的项目的n个相邻地址。若是,则跳到步骤62 ;若否,则跳到 子步骤612。 子步骤612 :判断接收数据所对应的地址与记录区块125中任一数据所对应的地 址是否属于同一单元的(m-l)个相邻地址。若是,则跳到步骤62,若否,则跳到子步骤613。
而执行子步骤611 612的目的在于将地址连续或相邻的数据集中,以利后续记录于同一项目或单元,进而将这些集中的数据一起合并输出到存储器2。 子步骤613 :判断是否尚有未被写入数据的项目或单元,若是,跳到步骤62 ;若否,
则判断该数据无对应的项目或单元可写入并跳到步骤63。 步骤62 :控制单元11将接收数据或其所对应的地址写入步骤61判断出的对应项 目或单元中,接着跳回步骤61。 更详细地来说,当控制单元11在子步骤611判断出接收数据所对应的地址与记录 区块125中任一数据所对应的地址属于同一个呈一般状态的项目的n个相邻地址,便会将 接收数据写入记录区块125的项目中,并修改致能字段123的值。 而当控制单元11在子步骤612判断出接收数据所对应的地址与记录区块125中 任一数据所对应的地址属于同一单元的(m-l)个相邻地址,便会将接收数据写入记录区块 125的单元中,并修改致能字段123的值。 且当控制单元11在子步骤613判断出尚有未被写入数据的项目或单元,便会将接 收数据的对应地址转换成参考地址,并将该参考地址和接收数据写入空的项目或单元中。 并视需要修改致能字段123、有效字段121的值。值得注意的是,将接收数据的对应地址转 成参考地址的方式不限,只要在写入空的项目时使接收数据的对应地址属于n个相关该参 考地址的地址(其中n为每一记录区块的字段数),或是在写入空的单元时使接收数据的对 应地址属于m-l个相关该参考地址的地址即可(其中m为每一单元的字段数)。因此,该参 考地址的值也可以跟接收数据的对应地址一样,也就是说,不需进行转换,直接将接收数据 的对应地址和接收数据写入该项目中。例如若接收数据的对应地址是0x1534,则其参考 地址可为0x1520或0x1534等。 回归参阅图3,步骤63 :控制单元11依据各字段的记录情形,决定是否将其中一 项目更动为转换状态。若是,跳到步骤64,若否,直接跳到步骤65。本例是指更动最后一项 目,但不以此为限。 也就是说,若该些项目当中至少有一项目于转换状态下可包括未被写入数据的空 白单元,则控制单元11会将该项目设定为转换状态。若该些项目于转换状态下仍无法包括 未被写入数据的空白单元,则控制单元11不对该些项目执行转换,例如几乎记录区块125 的所有字段都被写入,不适宜再对记录区块125做调整,或例如即使执行状态转换后,仍 然无法挪出一单元供接收数据写入。 步骤64:将其中一项目设定为转换状态,因此使记录区块125分为多个单元,更将
该项目中原先已记录的数据与地址置于其中一单元,且视需要修改所记录的地址值。而且,
该等单元中,至少有一个是未被写入数据的空白单元,控制单元11可将接收数据的对应地
址转换成参考地址,并将该参考地址和接收数据写入该空白单元。此外,更进一步设定状态
区位122的值为l,且修改有效字段121和致能字段123,然后跳回步骤61。 在此举一例子说明,请参阅图6的项目3,假设原先项目3已记录了 Dll (相对应的
地址为0x00b0)和参考地址0x00a0。当项目3需被分为多个单元以继续记录下一笔数据时,
参阅图7的项目3,将项目3分为3个单元unit 1 皿it 3。且将Dll移至皿it l,即将
Dll由字段s4移到s6并修改地址字段124所记录的地址为0x00b0。此外,再将D12 (对应
的地址为0x6060)写入unit 2,即写入字段s3,并于字段s5写入地址0x6060。 步骤65 :控制单元11先短暂拖延(stall)处理器100的写入操作,同时通过系统总线3将其中一项目(如项目0)中的记录输出到存储器2,且将其它项目中的记录依序 往前移动而释出最后一个项目(如项目3)(亦即产生未被写入数据的项目),然后跳回步
骤62。值得注意的是,在输出时,对于一般状态的项目,是将该项目内所有数据一起合并后 再输出,而对于转换状态的项目,则将同一单元内的数据一起先合并后再输出,且可以每次 仅输出其中一单元的数据,而不需完全输出该项目的所有单元的数据,如此可产生未被写 入数据的单元。 在此举一简单例子说明可调适缓冲方法的流程,假设依序送入缓冲装置的数据为
D1、D2、. . . 、D13、D14,且D8 D14所对应的地址如下表所示
数据D8D9D10DllD12D13D14
地址0x10180x32000xl01c0x00b00x60600x60a00x1518 假设在D8写入前,Dl D7于项目中的写入关系如图5所示。
依据子步骤611,因为与项目0中已记录的地址0x1000相关的8 (n = 8)个地址分 别为0xl000、0xl004、0xl008、0xl00c、0xl010、0xl014、0xl018、0xl01c。而D8对应到的地 址为0x1018,属于这8个地址的其中之一,因此,依据步骤62, D8写入项目0的记录字段s 6(如图6)。且致能字段123的值将变为01011011。 接收到的下一数据D9的对应地址为0x3200,依据子步骤611,与项目1中已记录 的地址0x3200相同,因此依据步骤62,D9写入项目1的记录字段s0,且致能字段123的值 变为00001101 (如图6的项目1)。 同样,D10(对应到的地址为0xl01c)也依据子步骤611和步骤62写入项目0的 记录字段s 7中(如图6的项目0)。 而Dll (对应的地址为0x00b0)进行子步骤611和612的判断结果均为否,因此跳 到子步骤613。且因为项目3尚未有数据写入,因此如图6所示,依据步骤62将参考地址 0x00a0写入项目3的地址字段124,且将Dll写入s4。且修改致能字段123为00010000, 而状态区位122的值此时为O,有效字段121的值此时为100。 而下一数据D12(对应的地址为0x6060)因为子步骤611 613的判断结果都为 否,且步骤63判断可将项目3的状态做转换,所以执行步骤64,因此,如图7所示,控制单元 11将项目3分为3个单元,且先将Dll移至unit 1,并修改地址字段124所记录的地址为 0x00b0。此外,再将D12写入unit 2,并于字段s5写入参考地址0x6060。
流程接着跳回步骤61,以等待接收下一数据D13(对应的地址为0x60a 0)。因为 依据子步骤611、612的判断结果都为否,因此流程跳到子步骤613。因为子步骤613的判断 结果为是,所以如图8所示,将D13写入项目3的皿it3,即字段s0,且将地址0x60a0写入 字段s2,。 接收下一数据D14,且因为子步骤611 613与步骤63的判断结果都为否,所以进 行步骤65,如图9所示,将项目0中的记录输出,且将其它项目中记录的数据依序往前移,而 释出项目3。并跳回步骤62以将D14写入项目3。 综合上述,即使面对处理器100送出数据的对应地址不具规则性的情况,也能将 具有连续或相邻地址的数据记录于同一项目或单元中。然后将这些数据合并成对系统总线
83的单一写入命令,亦即只需通知一个地址,便能传送多个数据。因此,这样的安排能有效 提高数据合并输出的机率,而减少地址传递次数,且流经系统总线3的数据量也会随之降 低。此外,本实施例中的项目因为可由一般状态转换为转换状态,因此,可争取更多的记录 空间,也尽量避免了 一个项目仅记录一笔数据的窘境。 本发明的另一实施例在步骤63的判断结果为否时,可以选择先不执行步骤65,改 为判断其它项目是否可以分为多个单元,若可以,则跳到步骤64以分出其它单元。但若所 有项目中的记录区块125都呈现很满的状态,而无法再分为多个单元,此时则需执行步骤 65。 本发明的另一实施例也可以进一步判断目前仅剩几个项目还可以自由写入(也 就是说,还有几个项目的记录区块125完全为空白),并当判断出少于预定数目的项目可以 自由写入时,即将这些项目依步骤64设定成转换状态以分成多个单元来使用。值得注意的 是,决定分成多个单元的时间点不以上述所说为限。 本发明的另一实施例中,于步骤62中,将接收数据的对应地址转换成参考地址的 方式也可以采用另一方式计算接收数据的对应地址除以(地址差X记录字段的字段数) 的余数,且余数为0x00的,将所对应到的数据写入记录字段s0,余数为0x04的写入sl,余 数为0x08的写入s2,其余以此类推。且写入地址字段124中的参考地址则是指向记录字段 s0所记录的数据所对应到的地址。如图6的项目2,因为D6对应的地址为0x1534,而因为 0x1534除以(4X8 = )32的余数为0x14,所以将D6写入记录字段s5,而字段s0对应到的 地址为0x1520,因此写入地址字段124中的参考地址即为0x1520。值得注意的是,写入地 址字段124中的参考地址除了可以是指向记录字段s0之外,也可以指向其它具代表性的记 录字段,譬如记录字段内确实记录有数据者。 综上所述,本发明的可调适缓冲装置及其方法支持写入合并的做法,并允许可调 适转换来更改项目的记录结构,因而能降低流经系统总线3的数据量,并使缓冲装置11的 储存空间有较佳运用,故确实能达成本发明的目的。 惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范 围,即大凡依本发明权利要求范围及发明说明内容所作的简单的等效变化与修饰,皆仍属 本发明权利要求涵盖的范围内。
权利要求
一种可调适缓冲装置,包含多个项目,每一个项目包括地址字段以及记录区块;及控制单元,选择性地将每一个项目设定为一般状态或是转换状态;其中,当该控制单元设定该些项目的第一项目为一般状态时,该第一项目的地址字段用以记录第一地址,该第一项目的记录区块记录该第一地址所对应的数据以及相邻于该第一地址的其它地址所对应的数据;当该控制单元设定该些项目的第二项目为转换状态时,该控制单元将该第二项目的地址字段以及记录区块分为多个单元,其中每一个单元皆可分别用以记录第二地址、该第二地址所对应的数据以及相邻于该第二地址所对应的数据。
2. 根据权利要求l所述的可调适缓冲装置,其中,相邻于该第一地址的其它地址共 (n-l)个,其中n为该第一项目的记录区块的字段数。
3. 根据权利要求1所述的可调适缓冲装置,其中,相邻于该第二地址所对应的数据共 (m-2)个,其中m为每一个单元的字段数。
4. 根据权利要求1所述的可调适缓冲装置,其中,当所接收数据无法写入任何该些项 目或单元时,若该些项目当中至少有一第三项目于转换状态下可包括未被写入数据的单 元,则该控制单元将该第三项目设定为转换状态后,再继续执行写入操作;若该些项目于转 换状态下仍无法包括未被写入数据的单元,则该控制单元将待该些项目或该些单元中的记 录写出并产生未被写入数据的项目或单元后,再继续执行写入操作。
5. 根据权利要求4所述的可调适缓冲装置,其中,当接收数据所对应的地址与记录区 块中任一数据所对应的地址既不属于同一项目相邻的n个地址也不属于同一单元相邻的 (m-l)个地址,且无任何未被写入数据的项目或单元时,则表示所接收数据无法写入任何该 些项目或单元,其中n为每一个项目的记录区块的字段数,m为每一个单元的字段数。
6. 根据权利要求l所述的可调适缓冲装置,其中,该控制单元可将该第一项目内的数 据合并写出。
7. 根据权利要求l所述的可调适缓冲装置,其中,该控制单元可将该第二项目内属于 同一单元的数据合并写出。
8. 根据权利要求1所述的可调适缓冲装置,其中,该些项目的每一个项目还包括状态 区位,用以设定每一个项目目前状态为一般状态或是转换状态。
9. 一种可调适缓冲方法,适用于可调适缓冲装置,该可调适缓冲装置包括多个项目,每 一个项目包括用以记录地址相邻的数据的记录区块,该记录区块可设定为一般状态或转换 状态,该方法包含以下步骤接收并根据所接收数据对应的地址,判断是否可将数据写入该记录区块的其中一个地 址相邻的记录字段;若无法将数据写入该记录区块的任一个地址相邻的记录字段,判断是否可将其中一个 项目由一般状态变更为转换状态;以及若没有任何项目可由一般状态变更为转换状态,则待该些记录字段的数据写出后,再 将接收数据写入;其中,由一般状态变更为转换状态是将每一个项目的地址字段和记录区块分为多个单 元,且其中至少有一个是未被写入数据的空白单元,而同一项目或同一单元的数据可合并写出,以释出空白项目或单元。
10. 根据权利要求9所述的可调适缓冲方法,其中于一般状态下,每一个项目的记录区 块共有n个地址相邻的记录字段,用以记录n个地址相邻的数据。
11. 根据权利要求io所述的可调适缓冲方法,其中于转换状态下,每一个项目的地址字段以及记录区块被分为多个单元,每一个单元有m个字段,用以分别记录一个地址以及 所对应的(m-1)个地址相邻的数据。
12. 根据权利要求11所述的可调适缓冲方法,其中接收并根据所接收数据对应的地 址,判断是否可将数据写入该等记录区块的其中一个地址相邻的记录字段的步骤包括判断所接收数据对应的地址是否属于一般状态的项目中(n-1)个相邻的地址的其中 之一 ;判断所接收数据对应的地址是否属于转换状态的单元中(m-2)个相邻的地址的其中 之一 ;判断是否尚有未被写入数据的空白项目或单元。
13. 根据权利要求9所述的可调适缓冲方法,其中将接收数据写入未被写入数据的空 白项目或单元时,是将参考地址写入地址字段,并将该参考地址对应的数据写入其中一个 地址相邻的记录字段。
全文摘要
一种可调适缓冲装置,包含多个项目,每一项目包括地址字段及记录区块;及控制单元,选择性地将每一项目设定为一般状态或转换状态;其中,当控制单元设定第一项目为一般状态时,第一项目的地址字段记录第一地址,第一项目的记录区块记录第一地址所对应的数据及相邻于第一地址的地址所对应的数据;当控制单元设定第二项目为转换状态时,控制单元将第二项目的地址字段和记录区块分为多个单元,其中每一单元分别记录第二地址、第二地址所对应的数据及相邻于第二地址所对应的数据。此外,一种可调适缓冲方法也被揭露。
文档编号G06F12/08GK101739353SQ20081017106
公开日2010年6月16日 申请日期2008年11月6日 优先权日2008年11月6日
发明者卢彦儒 申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1