于多模处理器中以串行位决定指令长度的装置及方法

文档序号:6611972阅读:137来源:国知局
专利名称:于多模处理器中以串行位决定指令长度的装置及方法
技术领域
本发明涉及处理器的技术领域,尤指一种于多模处理器中以串行 位决定指令长度的装置及方法。
背景技术
一般多模处理器具有2N位及N位的指令模式,并在此两种模式 切换执行,以节省程序码储存所需的空间。
在己知的专利文献中,美国专利7,149,879号公告案利用同位位 来进行上述切换,每一 N位字组包含P位的同位位及(N-P)位的指令, 当所撷取的2N位字组表示一偶同位时,其2N位字组视为2个(N-P)位 的指令,反之,当所撷取的2N位字组表示一奇同位时,其2N位字组 视为单一的2(N-P)位的指令。
美国专利5, 758, 115号公告案是以程序计数器(Program Counter, PC)中的T位决定该处理器执行于X位或Y位指令模式,并利用分枝 (Branch)指令来切换程序计数器中T位的值。美国专利6, 209, 079号 公告案利用特定位辨别所撷取的2N位字组为二个N位指令或一个2N 位指令。
然而,现有技术在数据架构确认后,很难再延长数据的长度,并 且于存放数据时,需对齐单一宽度以方便辨识,如此将造成长度不同 的数据无法交错存放,使数据存放密度难以提升,增加编译器的复杂 度,因此程序码储存空间无法获得最佳化。

发明内容
本发明的目的是提供一种以串行位决定指令长度的装置及方法, 以于多模指令的处理器中决定指令长度。
本发明的主要目的是提供一种于多模处理器中以串行位决定指令 长度的装置,从而能于mXN位模式执行mXN位指令,m、 N为大于或 等于1的整数,mXN位指令由m个N位数据所组成,每一 N位数据包
含至少一串行位,此指令长度决定装置包含指令输入装置、指令撷取 装置、指令长度判断逻辑及指令串行装置,其中,指令输入装置包含 储存指令或数据的存储空间,以供储存多个N位数据;指令撷取装置 用以由指令输入装置撷取N位数据;指令长度判断逻辑依据指令撷取 装置所撷取的N位数据的串行位是否为一预定值,判断指令长度;以 及指令串行装置依据指令长度判断逻辑的判断,进而选择性地将所撷 取的连续整数个N位数据串行并输出;
其中,当指令长度判断逻辑判断指令撷取装置撷取的N位数据的 串行位不为预定值时,将N位数据判定为一完整指令,指令串行装置
输出N位数据,否则,保留N位数据,且指令撷取装置撷取下一个N 位数据;当指令长度判断逻辑判断下一个N位数据的串行位为预定值 时,判定N位数据与下一个N位组成一完整指令,指令串行装置将N 位数据与下一个N位串行并输出,否则,保留下一个N位数据,再撷 取下一个N位数据,直至指令长度判断逻辑判断撷取的N位数据的串 行位为预定值时,判定最后撷取的N位数据与先前保留的所有N位数 据组成一完整指令,指令串行装置将最后撷取的N位数据与先前保留 的所有N位数据串行并输出。
依照本发明的优选实施例所述指令长度决定装置,上述的N值为 16,串行位预设值为T bl。
依照本发明的优选实施例所述指令长度决定装置,上述的串行位 位于该N位数据中的特定位置。
依照本发明的优选实施例所述指令长度决定装置,上述的串行位 的位数为大于或等于1的整数。
本发明的另一 目的是提供一种于多模处理器中以串行位决定指令 长度的方法,处理器可于mXN位模式执行mXN位指令,m、 N为大于 或等于1的整数,多模处理器具有一可变长度指令集,其提供不同长 度的mXN位指令,mXN位指令由m个N位数据所组成,每一个N位数 据包含至少一串行位,方法包括以下步骤
(A)撷取一个N位数据;(B)判断撷取的N位数据的串行位是否为一 预定值,否则,判定撷取的N位数据为一完整1XN位指令,若是,则 执行步骤(C); (C)保留撷取的N位数据,并撷取下一个N位数据;(D)
判断撷取的下一个N位数据的串行位是否为预定值,若否,执行步骤
(C),若是,则执行步骤(E);以及(E)判定最后撷取的N位数据与 先前保留的所有N位数据串行组成一完整的mX N位指令。
依照本发明的优选实施例所述方法,上述的N值为16,串行位预 设值为l位的l。
依照本发明的优选实施例所述方法,上述的串行位位于N位数据 中的任一特定位置。
依照本发明的优选实施例所述方法,上述的串行位的位数为大于 或等于l。


图1是本发明一优选实施例的于多模处理器中以串行位决定指令 长度的装置示意图。
图2是本发明一优选实施例的于多模处理器中以串行位决定指令 长度的方法流程图。
图3A至3E是本发明一优选实施例的于多模处理器中以串行位决 定指令长度的指令串行范例。
具体实施例方式
请参见图1,图1为本发明一优选实施例的于多模处理器中以串行 位决定指令长度的装置示意图。处理器可于mXN位模式下执行mXN 位指令,mXN位指令由m个N位数据所组成,m、 N为大于或等于1的 整数,每一个N位数据包含至少一串行位,本实施例中以N二16、串行 位宽度为1位为例作说明,而处理器可于16位模式(m二l) 、 32位模式 (m=2) 、 48位模式(iif3)…等多种模式执行。指令长度决定装置100包 含指令输入装置110、指令撷取装置120、指令长度判断逻辑130及指 令串行装置140。指令输入装置110包含储存指令或数据的存储空间, 用以提供储存多个16位数据;指令撷取装置120用以由指令输入装置 110撷取16位数据;指令长度判断逻辑130依据指令撷取装置120所 撷取的16位数据的串行位是否为一预定值,进行指令长度的判断,其 中本实施例中预定值为1;以及指令串行装置140依据指令长度判断逻 辑130的判断,进而选择性地将所撷取的连续整数个16位数据串行并输出;
其中,当指令长度判断逻辑130判断指令撷取装置120的撷取16 位数据的串行位不为l时,判定该16位数据为一完整指令,指令串行 装置140输出16位数据,否则,保留该16位数据,且指令撷取装置 120撷取下一个16位数据;当指令长度判断逻辑130判断下一个16 位数据的串行位为1时,判定16位数据与下一个16位组成一完整指 令,指令串行装置140将16位数据与下一个16位串行并输出,否则, 保留下一个16位数据,再撷取下一个16位数据,直至指令长度判断 逻辑130判断撷取的16位数据的串行位为1时,判定最后撷取的16 位数据与先前保留的所有16位数据组成一完整指令,指令串行装置 140将最后撷取的16位数据与先前保留的所有16位数据串行并输出。
其中,串行位可位于所撷取的16位数据中的任一特定位置,本实 施例是在16位数据的起始位置处,且串行位的位数可以是大于或等于 1的整数。
请参见图2,图2为本发明一优选实施例的于多模处理器中以串行 位决定指令长度的方法流程图,处理器可于mXN位模式执行mXN位 指令,m、 N为大于或等于1的整数,多模处理器具有一可变长度指令 集,其提供不同长度的mXN位指令,mXN位指令由m个N位数据所组 成,每一个N位数据包含至少一串行位,其中串行位的位数为大于或 等于1的整数,方法包括以下步骤
撷取一个N位数据(步骤S201);判断所撷取的N位数据的串行位 是否为一预定值(步骤S203),若否,判定所撷取的N位数据为一完整 的1XN位指令,并输出所撷取的N位数据(步骤S205),若是,则保 留所撷取的N位数据,并撷取下一个N位数据(步骤S207);判断撷取 的下一个N位数据的串行位是否为预定值(步骤S209),若否,执行步 骤207,若是,则判定最后所撷取的N位数据与先前保留的所有N位数 据串行组成一完整的mXN位指令(步骤S211)。
于本发明的优选实施例中,上述的N值优选为16,串行位预设值 优选为r bl。故在此以N二16、串行位的位数为l、及预定值为l来 举例说明,请先参见图3A,首先撷取一16位数据310, 16位数据310 包含一串行位312,其中该串行位312其值为0,位于位数据310的起始位置,接着判断所撷取的16位数据310的串行位312是否为预定值 1,由于16位数据310的串行位312不为1,输出撷取的16位数据310, 代表此时处理器工作于16位模式。
请参见图3B,首先撷取一个16位的数据320, 16位数据320包含 一宽度为l位的串行位322,其位于16位数据320的起始位置,接着 判断撷取的16位数据320的串行位322是否为预定值1,由于判断结 果为16位数据320的串行位322为预定值1,保留撷取的16位数据 320,并撷取下一个16位数据330 (参见图3C), 16位数据330包含一 串行位332,判断所撷取的16位数据330的串行位332是否为预定值 1,由于16位数据330的串行位332为预定值1,将撷取的16位数据 330与先前保留的16位数据320串行并输出,即为一个32位数据,代 表此时处理器工作于32位模式。
若撷取的16位数据330中的串行位332非为预定值1时(参见图 3D,串行位332为0),保留所撷取的16位数据330并撷取下一个16 位数据340 (参见图3E,串行位342为1),判断所撷取16位数据340 的串行位是否为预定值1,由于撷取16位数据340的串行位为预定值 1,将撷取的16位数据340与先前保留的所有16位数据(16位数据 320、 16位数据330)串行并输出,成为一48位数据,代表此时处理 器系工作于48位模式。
由于在多模指令的处理器中,指令宽度可能有16位、32位、48 位等各种长度可能性,于本实施例中则是以16位为基本数据长度作说 明,而基本数据中包含一个串行位,剩余15位为数据可用内容,将16 位数据相互串行后可形成如16位、32位、48位等各种长度指令,增 加其使用弹性及扩充性。
因此,本发明可将原先固定长度的数据相互串行,形成不同长度 的指令或数据,另外,利用串行位的不重复性,当要从存储体读取或 储存数据时,可不对齐存取线的宽度,以增进数据存放密度,并减轻 编译器的复杂度。此外,由于串行位的位置及长度可变,因此位置或 长度本身可做为数据安全性防护在编译及反向编译运作时的参考。
由上述可知,本发明无论就目的、手段及功效,在均显示其迥异 于现有技术的特征,极具实用价值。但是应注意的是,上述诸多实施
例仅为了便于说明而举例而已,本发明所主张的权利范围自应以申请 专利范围所述为准,而非仅限于上述实施例。
权利要求
1. 一种于多模处理器中利用串行位决定指令长度的装置,使该多模处理器可于m×N位模式下执行m×N位指令,m、N为大于或等于1的整数,该m×N位指令由m个N位数据所组成,每一该N位数据包含至少一串行位,该指令长度决定装置包含指令输入装置,具有存储空间,用以供储存多个N位数据;指令撷取装置,用以由该指令输入装置撷取前述N位数据;指令长度判断逻辑,其依据所撷取的前述N位数据的串行位是否为预定值,用以判断指令长度;以及指令串行装置,依据该指令长度判断逻辑的输出,进而选择性地将所撷取的该些N位数据串行并输出;其中,当指令长度判断逻辑判断指令撷取装置所撷取的前述N位数据的串行位不为该预定值时,判定该N位数据为完整指令,该指令串行装置输出该N位数据,否则,保留该N位数据,且该指令撷取装置再撷取下一个N位数据;当该指令长度判断逻辑判断该下一个N位数据的串行位为该预定值时,判定该N位数据与该下一个N位组成完整指令,该指令串行装置将该N位数据与该下一个N位串行并输出,否则,保留该下一个N位数据,再撷取下一个N位数据,直至该指令长度判断逻辑判断所撷取的前述N位数据的串行位为该预定值时,将最后所撷取的前述N位数据与先前所有保留的该些N位数据判定为完整指令,该指令串行装置将最后所撷取的前述N位数据与先前所有保留的该些N位数据串行并输出。
2. 根据权利要求l所述的决定指令长度的装置,其中,N为16,该 串行位预设值为l'bl。
3. 根据权利要求l所述的决定指令长度的装置,其中,该串行位位 于该N位数据中的特定位置。
4. 根据权利要求3所述的决定指令长度的装置,其中,该特定位置 为该N位数据的起始位置。
5. 根据权利要求l所述的指令长度决定装置,其中,该串行位的位 数为大于或等于l。
6. —种于多模处理器中利用串行位决定指令长度的方法,该多模 处理器可于mXN位模式下执行mXN位指令,其中,m、 N为大于或等 于1的整数,该多模处理器具有可变长度指令集,其提供不同长度的m XN位指令,该mXN位指令由m个N位数据所组成,每一个前述N位数 据包含至少一串行位,该方法包括以下步骤(A) 撷取一个N位数据;(B) 判断所撷取的前述N位数据的串行位是否为预定值,若否, 判定所撷取的前述N位数据为一完整位指令,否则,则执行步骤(C);(C) 保留所撷取的前述N位数据,并撷取下一个N位数据;(D) 判断所撷取的该下一个N位数据的串行位是否为该预定值, 若否,执行步骤(C),否则,则执行步骤(E);以及(E) 判定最后所撷取的N位数据与先前所有保留的该些N位数据 完整地串行组成前述完整位指令。
7. 根据权利要求6所述的方法,其中,N为16,该串行位预设值为 l,bl。
8. 根据权利要求6所述的方法,其中,该串行位位于该N位数据中 的特定位置。
9. 根据权利要求8所述的方法,其中,该特定位置为该N位数据的 起始位置。
10. 根据权利要求6所述的方法,其中,该串行位的位数为大于或 等于l。
11. 一种于多模处理器中利用串行位决定指令长度的装置,使该 多模处理器可于16N位模式下执行16N位指令,该16N位指令由N个16 位数据所组成,每一该16位数据包含至少一串行位,其中,N为整数, 该指令长度决定装置包含指令输入装置,具有存储空间,用以储存多个16位数据; 指令撷取装置,用以由该指令输入装置撷取前述16位数据; 指令长度判断逻辑,其依据所撷取的前述16位数据的串行位是否为预定值,用以判断指令长度;以及指令串行装置,依据该指令长度判断逻辑的输出,进而选择性地将所撷取的该些16位数据串行并输出;其中,当指令长度判断逻辑判断指令撷取装置所撷取的前述16位 数据的串行位不为该预定值时,判定该16位数据为完整指令,该指令 串行装置输出该16位数据,否则,保留该16位数据,且该指令撷取装置撷取下一个16位数据;当该指令长度判断逻辑判断该下一个16位数据的串行位为该预定值时,判定该16位数据与该下一个16位组成完整 指令,该指令串行装置将该16位数据与该下一16位数据串行并输出, 否则,保留该下一个16位数据,撷取再下一个16位数据,直至该指令 长度判断逻辑判断所撷取的前述再下一个16位数据的串行位为该预定 值时,将前述再下一个16位数据与先前所有保留的该些16位数据判定 为该完整指令进而串行并输出。
全文摘要
一种在多模处理器中以串行位决定指令长度的装置及方法。当指令长度判断逻辑判断指令撷取装置撷取的N位数据的串行位不为预定值时,判定N位数据为完整指令,指令串行装置输出N位数据,否则保留N位数据,且指令撷取装置撷取下一个N位数据;当指令长度判断逻辑判断下一个N位数据的串行位为预定值时,判定N位数据与下一个N位组成完整指令,指令串行装置将N位数据与下一个N位串行并输出,否则保留下一个N位数据,再撷取下一个N位数据,直至指令长度判断逻辑判断撷取的N位数据的串行位为预定值时,判定最后撷取的N位数据与先前保留的所有N位数据组成完整指令,指令串行装置将最后撷取的N位数据与先前保留的所有N位数据串行并输出。
文档编号G06F9/38GK101377735SQ20071014776
公开日2009年3月4日 申请日期2007年8月28日 优先权日2007年8月28日
发明者宋莉安 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1