CN1735860A - 用于指令压缩的方法和装置 - Google Patents

用于指令压缩的方法和装置 Download PDF

Info

Publication number
CN1735860A
CN1735860A CNA2004800020476A CN200480002047A CN1735860A CN 1735860 A CN1735860 A CN 1735860A CN A2004800020476 A CNA2004800020476 A CN A2004800020476A CN 200480002047 A CN200480002047 A CN 200480002047A CN 1735860 A CN1735860 A CN 1735860A
Authority
CN
China
Prior art keywords
instruction
instruction set
processor
compression
dictionary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2004800020476A
Other languages
English (en)
Inventor
莱恩·T·霍洛韦
纳迪姆·马利克
阿维吉特·萨哈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1735860A publication Critical patent/CN1735860A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于处理指令集的方法、装置和计算机指令,其中该指令集包括操作码和操作数。标识在该指令集中的顺序操作码的重复序列来形成操作码的标识序列。使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。

Description

用于指令压缩的方法和装置
技术领域
本发明涉及指令集的压缩。
背景技术
许多数据处理系统包含精简指令集计算机(RISC)处理器。这种类型的计算机结构通过使用更简单的指令减少了芯片复杂度。编译器生成软件例程(routine)来执行先前由硬件执行的复杂的指令。RISC型的处理器固有地承受低代码密度。进行了许多尝试通过对线性代码段应用压缩来增加RISC处理器的代码密度。这些尝试包括使用字典(dictionary)途径来压缩指令。然而,这种类型的途径不提供最优压缩,这是因为RISC处理器的指令的本质是这样的:在指令的前一半对应于小的操作码(又称为“op码”)集的同时,指令的后一半可以是任意数量的寄存器或数据操作数。用于这种类型结构的指令包括操作码和操作数。操作码是告诉计算机如何去做(例如输入、加或产生转移)的机器指令部分。操作数是引用数据或外部设备的机器指令部分。操作码起到动词的角色,而操作数起到对其采取动作的名词的角色。这种类型的指令导致操作码和操作数组合的可能的集合非常庞大。结果,在指令级上可用的重复很低。
发明内容
根据第一方面,提供了一种在数据处理系统中用于处理指令集的方法,其中该指令集包括操作码和操作数,所述方法包括:标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
最好提供一种改进的方法、装置和计算机指令,用于处理器压缩和解压缩指令。
最好标识在该指令集内的操作数的重复序列来形成操作数的标识序列;并且最好使用操作数的标识序列来压缩指令。
在优选实施例中,生成用于解压缩该指令集的字典。
在优选实施例中,在与处理器相关的高速缓存中存储该压缩指令集和字典。
在优选实施例中,在标识顺序操作码的重复序列之前生成字典,并且该字典用于标识顺序操作码的重复序列。
最好,响应标识顺序操作码的重复序列来动态地生成字典中的条目。
在优选实施例中,由处理器执行该压缩指令集。最好在执行该压缩指令集期间,当遇到压缩指令时,对用于执行的压缩指令解压缩。
最好,操作码的标识序列是一对操作码。
在优选实施例中,标识在该指令集内的操作数的重复序列来形成操作数的标识序列。最好使用操作数的标识序列压缩指令来形成由处理器执行的压缩指令集。
在优选实施例中,将该压缩指令集的一部分载入与处理器相关的高速缓存中,并且最好响应标识要被发送到处理器来执行的、该压缩指令集内的指令,确定该指令是否为压缩指令。最好响应作为压缩指令的该指令,解压缩该指令来形成解压缩指令,并且最好将用于执行的该解压缩指令发送到处理器。
根据优选实施例,提供了一种用于处理指令集的数据处理系统,其中,该指令集包括操作码和操作数,该数据处理系统包括:总线系统;连接到总线系统的通信单元;连接到总线系统的存储器,其中存储器包含指令集;和连接到总线系统的处理单元,其中,处理单元执行指令集标识在指令集内的顺序操作码的重复序列来形成操作码的标识序列,并且使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
根据第二方面,提供了一种用于处理指令集的数据处理系统,其中,该指令集包括操作码和操作数,该数据处理系统包括:标识设备,用于标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和压缩设备,用于使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
根据第三方面,提供了一种用于处理指令集的计算机程序产品,其中,该指令集包括操作码和操作数,该计算机程序产品包括:第一指令,用于标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和第二指令,用于使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
根据第四方面,提供一种用于处理指令集的计算机程序,其中,该指令集包括操作码和操作数,该计算机程序包括:第一指令,用于标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和第二指令,用于使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
附图说明
现在将参照附图仅仅通过示例的方式对本发明的优选实施例进行描述,在附图中:
图1是可以根据本发明的优选实施例来实施本发明的数据处理系统的图示标识;
图2是可以根据优选实施例来实施本发明的数据处理系统的方框图;
图3是图解根据本发明的优选实施例的、在压缩和解压缩处理器的指令中使用的部件的方框图;
图4A到4C是图解根据本发明的优选实施例的压缩处理的图表;
图5A到5C是图解根据本发明的优选实施例的压缩处理的图表;
图6是根据本发明的优选实施例的、使用静态字典的压缩代码处理的流程图;
图7是根据本发明的优选实施例的、使用动态字典压缩代码的处理的流程图;和
图8是是根据本发明的优选实施例的、处理从高速缓存传输到处理器的指令的过程的流程图。
具体实施例
现在参照附图,尤其参照图1,根据本发明的优选实施例图示了可以实施本发明的数据处理系统的图示表示。图示了计算机100,其包括系统单元102、视频显示终端104、键盘106、可以包括软盘驱动器或者其他类型的永久性和可抽取式存储介质在内的存储设备108以及鼠标110。额外的输入设备可以由个人计算机100包括,例如游戏手柄、触摸垫(touch pad)、触摸屏、跟踪球、麦克风等等。可以使用任何适当的计算机来实现计算机100,例如IBM eServer计算机或IntelliStation计算机,它们是位于纽约阿芒克的国际商业机器公司的产品。尽管图示的示意图显示了计算机,但可以在诸如网络计算机之类的其他类型的数据处理系统中实施本发明的其他实施例。计算机100最好还包括图形用户接口(GUI),图形用户接口可以通过计算机100中运行的驻留在计算机可读介质中的软件来实现。
现在参照图2,其显示了可以根据本发明的优选实施例来实施本发明的数据处理系统的方框图。数据处理系统200是例如诸如图1中的计算机100之类的计算机,其中可以放置有用于实施优选实施例的处理的代码或指令。数据处理系统200采取外设部件互连(PCI)局部总线结构。尽管图示的例子采用PCI总线,但也可以使用其他诸如加速图形接口(AGP)和工业标准结构(ISA)之类的总线结构。处理器202和主存储器204通过PCI桥208连接到PCI局部总线206。PCI桥208还可以包括用于处理器202的集成的存储控制器和高速缓冲存储器。可以通过直接部件互连或者通过内装板(add-inboard)进行到PCI局部总线206的额外连接。
在图示的例子中,局域网(LAN)适配器210、小型计算机系统接口SCSI主机总线适配器212和扩充总线接口214通过直接部件连接来连接到PCI局部总线206。相反,音频适配器216、图形适配器218和音频/视频适配器219通过插入扩展插槽的内装板连接到PCI局部总线206。扩展总线接口214为键盘和鼠标适配器220、调制解调器222和额外的存储器224提供连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228和CD-ROM驱动器230提供连接。
操作系统运行在处理器202上,用于协调并提供对图2中的数据处理系统200内的各种部件的控制。操作系统可以是能商业得到的操作系统,例如可以从国际商业机器公司得到的AIX。用于操作系统和应用或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并且可以载入主存储器204中来由处理器执行。
本领域普通技术人员应当理解,图2中的硬件可以根据实现而不同。除了图2所示的硬件之外可以使用其他诸如闪速只读存储器(ROM)、等效的非易失性存储器或光盘驱动器等等之类的内部硬件或外部设备,或者后者可以取代前者。此外,可以将优选实施例的处理可以应用到多处理器数据处理系统。
例如,如果任选地将数据处理系统200配置为网络计算机,则其可能不包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228和CD-ROM驱动器230。在这种情况下,计算机(更恰当地称为客户计算机)包括某种类型的网络通信接口,例如LAN适配器210、调制解调器222等等。作为另一个例子,数据处理系统200可以是配置成可以不依靠某种类型的网络通信接口而启动的孤立的系统,而不管数据处理系统200是否包括某种类型的网络通信接口。作为另一例子,数据处理系统200可以是个人数字助理(PDA),配有ROM和/或闪速ROM来提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
图2中所示的例子和上述例子并非意欲暗示结构限制。例如,数据处理系统200除了采用PDA的形式外,还可以是笔记本计算机或手持计算机。数据处理系统200还可以是公用信息站(kiosk)或者万维网设备。
由处理器202使用计算机执行的指令来执行优选实施例的处理,该指令可以位于诸如主存储器204、存储器224之类的存储器中或者一个或多个外部设备226-230中。
根据优选实施例,本发明提供一种用于为诸如RISC处理器之类的处理器压缩和解压缩指令的改进的方法、装置和计算机指令。除了RISC处理器结构,本发明还可以应用于其他处理器结构,例如基于复杂指令集计算机(CISC)的处理器。优选实施例的机制认识到许多指令和程序成对出现。认识到这个事实,优选实施例的机制通过程序中的顺序的指令中分别压缩操作码字段和操作数字段来增加压缩。这种类型的压缩以很小开销增长增加了程序的代码密度。此外,随着这种在代码密度上的增加,也增加了高速缓存的命中机会,这是因为可以将更多的数据以压缩形式放入高速缓存区。通过增加高速缓存命中率,处理器花费更少的时间等待信息在高速缓存中以及随后在处理器中出现。
现在转到图3,根据本发明的优选实施例图示了图解在压缩和解压缩处理器的指令中使用的部件的方框图。在这个例子中,处理器300、高速缓存302和主存储器304是在诸如图2中的数据处理系统200之类的数据处理系统中可以发现的部件。主存储器304中的程序306包含将要由处理器300执行的指令。代码308是来自程序306的指令的子集,存储在高速缓存302内以减少获取由处理器300处理的指令所需的时间。此外,在这个例子中,字典310也位于高速缓存302中,并且提供用于压缩和解压缩代码308内指令的数据结构。在这些例子中,由代码管理单元312执行压缩和解压缩指令的处理。在这个示例中,代码管理单元是软件部件。
在这些例子中,代码管理单元312对主内存304中的程序306执行压缩处理。使用标识的顺序指令的重复序列来分析程序306中的指令。这些重复序列可以是指令,或者在本发明的优选实施例中,该重复序列根据在指令中的顺序操作码或操作符的重复序列来标识。
在压缩程序306后,接着将程序306的部分传输到高速缓存302来形成代码308。如果发生高速缓存命中,则检查代码308中的指令来确定指令是否经过压缩。如果该特定的指令经过压缩,则由代码管理单元执行解压缩,接着将解压缩指令发送到处理器300来执行。字典310用于执行代码308的解压缩。在这个例子中,字典310位于高速缓存302中。当然,根据特定的实现,字典310也可以位于其他位置,例如主存储器304中。
字典310根据特定的实现可以采用静态字典或动态字典的形式。如果字典310采用静态字典的形式,则只压缩匹配字典310内的条目的程序306内的指令。在字典310是动态的情况下,随着分析程序306并由代码管理单元312对其压缩,生成字典。在这种情况下,每次将顺序的多个指令标识为在程序306内重复时创建条目。在动态字典和静态字典中,条目包括标识为重复的指令或者指令的部分以及用于替代重复操作数或操作码的代码或关键字。
在这些例子中,可以通过标识成对出现的顺序操作数或操作码而发生压缩。当然,也可以标识其他多个操作数或操作码用来压缩。例如,顺序的操作数集可以采用三个或四个操作数的形式,而不是两个。那么,任何其他的顺序指令的重复序列都用于压缩程序306中的指令。
现在转到图4A-4C,根据本发明的优选实施例图示了图解压缩处理的图表。在这个例子中,使用包含诸如图4A中的条目400之类的条目的静态字典执行压缩处理。可以使用例如图3中的代码管理单元312这样的压缩/解压缩单元来执行在这些例子中所执行的压缩。
在这个例子中,条目400包括定义402和关键字404。图4B中的代码406是来自可以使用静态字典对其压缩的程序的解压缩代码的示例。该字典可以是例如图3中的字典310。在这个例子中,行408和410中的指令对应于条目400中的定义402。结果,代码管理单元压缩图4B中的代码406来形成图4C中的代码412。可以看出,在这种情况下,将两行代码压缩成一个关键字,对于诸如处理器的高速缓存之类的容量可能受限的存储器,节省了存储器。
现在转到图5A-5C,根据本发明的优选实施例图示了图解压缩处理的图表。在这个例子中,使用动态字典来进行压缩处理。可以使用例如图3中的代码管理单元312这样的压缩/解压缩单元来执行在这些例子中所执行的压缩。
在这个例子中,代码500是程序的一部分,其中将行502和504中的操作码标识为在程序内其他地方重复的顺序操作码。同样,将行506和508中的操作码标识为在程序内其他地方重复的顺序指令。此外,行506和508中的操作数位于在程序代码中的其他重复的顺序指令中。
作为这些标识的结果,如图5B所示,代码管理单元生成包含条目510、512和514的字典。在这种情况下,定义516和条目510包含来自行502和504上的指令的操作码,同时为条目510分配关键字518。在条目512中,来自行506和508的操作码形成定义520,同时为条目512分配关键字522。来自指令506和508的操作数用于形成条目514中的定义524,同时为条目514分配关键字526。使用这些条目压缩代码500来形成图5C中的代码528。
在这个例子中可以看出,分别将操作码和操作数作为压缩处理的部分处理。之所以使用这种操作码和操作数分开的分叉方式(bifurcation),是因为根据优选实施例的本发明认识到,操作码在程序中的其他地方常常可以标识为重复的,而包括操作码和操作数的整个指令的情况则较少发生。使用自程序内的重复的顺序指令的标识生成的条目来压缩整个程序。通过顺序地重复,两个或多个诸如在图5A的行506和508中找到的ADD和STR指令之类的顺序指令,可以在程序中的其他地方再次找到。当然,这些例子显示了成对的顺序指令的使用。除了成对,顺序指令还可以采用其他的数目。例如,可以将三个或四个顺序指令标识为重复的,并用于压缩。
现在转到图6,根据本发明的优选实施例图示了使用静态字典的压缩代码处理的流程图。可以在诸如图3中的代码管理单元312之类的解压缩/压缩处理中实现图6中图解的处理。
处理由读取程序文件开始(步骤600)。然后,对程序执行搜索匹配字典序列的指令序列(步骤602)。然后,确定是否找到匹配(步骤604)。如果找到了匹配,则用对应于字典中的该序列的关键字替换该序列(步骤606)。然后确定是否完成文件处理(步骤608)。在步骤608,如果在程序中搜索了字典中所有的定义,则完成处理。否则,处理回到步骤602来继续使用字典中的另一个定义搜索。
重新回到步骤604,如果没有找到匹配,则如上所述,处理前进到步骤608。
接下来参照图7,根据本发明的优选实施例图示了使用动态字典的压缩代码处理的流程图。可以使用诸如图3中的代码管理单元312之类的解压缩/压缩处理来实现图6中图解的处理。
处理由读取程序文件开始(步骤700)。然后,执行对顺序指令的重复序列的搜索(步骤702)。然后,确定是否找到顺序指令的重复序列(步骤704)。如果找到了顺序指令的重复序列,则为该序列生成关键字(步骤706)。然后在字典中为关键字和序列生成条目(步骤708),然后处理回到上述的步骤702。再次参照步骤704,如果在程序文件中没有找到顺序指令的重复序列,则结束处理。
现在转到图8,根据本发明的优选实施例图示了处理从高速缓存传输到处理器的指令的过程的流程图。可以在诸如图3中的代码管理单元312之类的解压缩/压缩处理中实现图6中图解的处理。
处理由从高速缓存中读取匹配高速缓存命中的指令开始(步骤800)。然后确定该指令是否经压缩(步骤802)。通过将该指令与字典中的条目比较来做出确定。如果字典中的关键字匹配该指令,则将该指令标识为经压缩的。根据特定的实施例,可以对指令的操作数和操作码部分进行比较。
如果标识该指令为经压缩的,则使用字典解压缩该指令(步骤804)。通过用字典中的定义替代关键字或从高速缓存获得的指令进行步骤804中的解压缩。然后,将解压缩指令发送到处理器(步骤806),随后结束处理。
重新参照步骤802,如果没有标识该指令为经压缩的,则处理前进到上述步骤806。
因此,根据优选实施例,本发明提供一种用于压缩和解压缩指令的改进的方法、装置和计算机指令。优选实施例的机制在程序中标识在程序中重复的顺序指令。用关键字替代这些顺序指令。在所示的例子中,该处理可以采用静态或动态的字典。此外,通过分别处理操作码和操作数,可以在压缩中将指令分成两部分。优选实施例的机制通过这种类型的压缩增加代码密度。这样,可以将更多的数据以压缩的形式放入高速缓存区,增加了高速缓存命中的可能性。由于高速缓存命中的可能性增加,处理器花费更少的时间等待信息在高速缓存中出现。
值得注意的是,尽管以全功能的数据处理系统的背景来描述了本发明,但本领域普通技术人员应当理解,本发明的处理能够以具有指令的计算机可读介质的形式和各种形式进行分发,并且本发明可以同等地应用,而与实际用来实现分发的特定类型的信号承载介质无关。计算机可读介质的例子包括:可记录型介质,例如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM;以及传输型介质,例如,使用诸如射频和光波传输的传输形式的数字和模拟通信链路、有线或无线通信链路。计算机可读介质可以采用编码的格式的形式,在特定的数据系统对其解码以供实际使用。
为了说明和描述的目的对本发明进行了描述,并不意欲在公开的形式上穷举或限制本发明。本领域普通技术人员应当明白各种修改和变型。挑选并描述实施例以便最好地说明本发明的原理和实际应用,并且使得本领域其他普通技术人员理解具有适合于特定预期的用途的本发明的各种实施例的各种变型。

Claims (20)

1.一种在数据处理系统中用于处理指令集的方法,其中该指令集包括操作码和操作数,所述方法包括:
标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和
使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
2.如权利要求1所述的方法,还包括:
标识在该指令集内的操作数的重复序列来形成操作数的标识序列;和
使用操作数的标识序列来压缩指令。
3.如权利要求1所述的方法,还包括:
生成用于解压缩该指令集的字典。
4.如权利要求3所述的方法,其中,在与处理器相关的高速缓存中存储该压缩指令集和字典。
5.如权利要求3所述的方法,其中,在标识顺序操作码的重复序列之前生成字典,并且该字典用于标识顺序操作码的重复序列。
6.如权利要求3所述的方法,其中,响应标识顺序操作码的重复序列来动态地生成字典中的条目。
7.如权利要求1所述的方法,还包括:
由处理器执行该压缩指令集;和
在执行该压缩指令集期间,当遇到压缩指令时,对用于执行的压缩指令解压缩。
8.如权利要求1所述的方法,其中,操作码的标识序列是一对操作码。
9.如权利要求1所述的方法,其中,将该压缩指令集的一部分载入与处理器相关的高速缓存中,并且还包括:
响应标识要被发送到处理器执行的、该压缩指令集内的指令,确定该指令是否为压缩指令;
响应作为压缩指令的指令,解压缩该指令来形成解压缩指令;和
将用于执行的该解压缩指令发送到处理器。
10.一种用于处理指令集的数据处理系统,其中,该指令集包括操作码和操作数,该数据处理系统包括:
标识设备,用于标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和
压缩设备,用于使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
11.如权利要求10所述的数据处理系统,其中,标识设备是第一标识设备并且压缩设备是第一压缩设备,还包括:
第二标识设备,用于在该指令集内的标识操作数的重复序列,来形成操作数的标识序列;和
第二压缩设备,用于使用操作数的标识序列来压缩指令。
12.如权利要求10所述的数据处理系统,还包括:
生成设备,用于生成用于解压缩该指令集的字典。
13.如权利要求12所述的数据处理系统,其中,在与处理器相关的高速缓存中存储该压缩指令集和字典。
14.如权利要求12所述的数据处理系统,其中,在标识顺序操作码的重复序列之前生成字典,并且该字典用于标识顺序操作码的重复序列。
15.如权利要求12所述的数据处理系统,其中,响应标识顺序操作码的重复序列来动态地生成字典中的条目。
16.如权利要求10所述的数据处理系统,还包括:
执行设备,用于通过处理器执行该压缩指令集;和
解压缩设备,用于在执行该压缩指令集期间,当遇到压缩指令时,对用于执行的压缩指令解压缩。
17.如权利要求10所述的数据处理系统,其中,操作码的标识序列是一对操作码。
18.如权利要求10所述的数据处理系统,其中,将该压缩指令集的一部分载入与处理器相关的高速缓存中,并且还包括:
确定设备,用于响应标识要被发送到处理器来执行的、该压缩指令集内的指令来确定该指令是否为压缩指令;
解压缩设备,用于响应作为压缩指令的指令来解压缩指令,以形成解压缩指令;和
发送设备,用于将用于执行的该解压缩指令发送到处理器。
19.一种用于处理指令集的计算机程序产品,其中,该指令集包括操作码和操作数,该计算机程序产品包括:
第一指令,用于标识在该指令集内的顺序操作码的重复序列来形成操作码的标识序列;和
第二指令,用于使用操作码的标识序列压缩该指令集来形成由处理器执行的压缩指令集。
20.一种计算机程序,包括:当所述程序在计算机上运行时,适于执行权利要求1到10中任一权利要求的方法的程序代码设备。
CNA2004800020476A 2003-01-09 2004-01-09 用于指令压缩的方法和装置 Pending CN1735860A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/339,763 2003-01-09
US10/339,763 US20040139298A1 (en) 2003-01-09 2003-01-09 Method and apparatus for instruction compression and decompression in a cache memory

Publications (1)

Publication Number Publication Date
CN1735860A true CN1735860A (zh) 2006-02-15

Family

ID=32711167

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800020476A Pending CN1735860A (zh) 2003-01-09 2004-01-09 用于指令压缩的方法和装置

Country Status (7)

Country Link
US (1) US20040139298A1 (zh)
EP (1) EP1590732A2 (zh)
KR (1) KR20050089031A (zh)
CN (1) CN1735860A (zh)
CA (1) CA2511474A1 (zh)
TW (1) TWI289788B (zh)
WO (1) WO2004063834A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398752B (zh) * 2007-09-29 2011-08-31 国际商业机器公司 重叠指令存取单元和重叠指令存取方法
CN102934074A (zh) * 2010-06-27 2013-02-13 英特尔公司 经压缩代码的加速执行
WO2021120713A1 (zh) * 2019-12-16 2021-06-24 成都海光微电子技术有限公司 一种数据处理方法、解码电路及处理器

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0513433D0 (en) * 2005-06-30 2005-08-10 Nokia Corp Signal message compressor
GB0604136D0 (en) * 2006-03-01 2006-04-12 Symbian Software Ltd Improvements related to the delivery of embedded software and usage of memory in a computing device
WO2010084379A1 (en) * 2009-01-21 2010-07-29 Freescale Semiconductor, Inc. Microprocessor architecture and method of instruction decoding
JP5632315B2 (ja) * 2011-03-17 2014-11-26 株式会社オプティム 端末のリモート操作システム、リモート操作方法
US9348792B2 (en) 2012-05-11 2016-05-24 Samsung Electronics Co., Ltd. Coarse-grained reconfigurable processor and code decompression method thereof
US9672041B2 (en) * 2013-08-01 2017-06-06 Andes Technology Corporation Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table
US9612833B2 (en) * 2014-02-28 2017-04-04 Intel Corporation Handling compressed data over distributed cache fabric
US10983915B2 (en) * 2019-08-19 2021-04-20 Advanced Micro Devices, Inc. Flexible dictionary sharing for compressed caches

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
US5243341A (en) * 1992-06-01 1993-09-07 Hewlett Packard Company Lempel-Ziv compression scheme with enhanced adapation
US5815096A (en) * 1995-09-13 1998-09-29 Bmc Software, Inc. Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
US5951623A (en) * 1996-08-06 1999-09-14 Reynar; Jeffrey C. Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US5960465A (en) * 1997-02-27 1999-09-28 Novell, Inc. Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table
US5999949A (en) * 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US6883087B1 (en) * 2000-12-15 2005-04-19 Palm, Inc. Processing of binary data for compression
US20030086620A1 (en) * 2001-06-27 2003-05-08 Lucco Steven E. System and method for split-stream dictionary program compression and just-in-time translation
JP3729759B2 (ja) * 2001-08-07 2005-12-21 株式会社ルネサステクノロジ 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
US6892292B2 (en) * 2002-01-09 2005-05-10 Nec Corporation Apparatus for one-cycle decompression of compressed data and methods of operation thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398752B (zh) * 2007-09-29 2011-08-31 国际商业机器公司 重叠指令存取单元和重叠指令存取方法
CN102934074A (zh) * 2010-06-27 2013-02-13 英特尔公司 经压缩代码的加速执行
CN102934074B (zh) * 2010-06-27 2016-07-13 英特尔公司 经压缩代码的加速执行
WO2021120713A1 (zh) * 2019-12-16 2021-06-24 成都海光微电子技术有限公司 一种数据处理方法、解码电路及处理器

Also Published As

Publication number Publication date
CA2511474A1 (en) 2004-07-29
TWI289788B (en) 2007-11-11
TW200511115A (en) 2005-03-16
EP1590732A2 (en) 2005-11-02
KR20050089031A (ko) 2005-09-07
WO2004063834A2 (en) 2004-07-29
WO2004063834A3 (en) 2004-12-02
US20040139298A1 (en) 2004-07-15

Similar Documents

Publication Publication Date Title
CN1145264C (zh) 与串搜索交错进行即时字典更新的数据压缩和解压缩系统
Korodi et al. An efficient normalized maximum likelihood algorithm for DNA sequence compression
CN1214341C (zh) 数字墨水的压缩
CN1126034C (zh) 通过指令集结构转换的指令集模拟
CA2132762C (en) Method and apparatus for data compression
EP3120266B1 (en) Ozip compression and decompression
JP3225638B2 (ja) データを圧縮するための装置及び方法並びにデータ処理システム
US7661102B2 (en) Method for reducing binary image update package sizes
CN104737165B (zh) 用于内存数据库查询处理的最优数据表示和辅助结构
CN1735860A (zh) 用于指令压缩的方法和装置
CN102334097B (zh) 使用simd指令的rdp位图散列加速
CN1234560A (zh) 用于执行重排指令的系统和方法
CN1933334A (zh) 从比例二进制编码十进制转换到十进制浮点的系统和方法
JP2001526853A (ja) データ符号化ネットワーク
JP2009542092A (ja) データ圧縮の方法
CN1806225A (zh) 在具有多指令集的数据处理设备内的指令编码
CN110198473B (zh) 视频处理方法、装置、电子设备及计算机可读存储介质
CN1148657C (zh) 文件处理方法和数据处理装置
US20030112161A1 (en) Method and apparatus for compressing data in which dictionary sizes are reduced
CN103365648A (zh) 压缩和解压缩系统及方法,压缩装置,和解压缩装置
KR100968675B1 (ko) Jpeg 어플리케이션의 가변 길이 코드 디코딩
White et al. Compressing DNA sequence databases with coil
CN1290886A (zh) 优化单字节字符处理的方法、系统及计算机程序产品
Li et al. Erasing-based lossless compression method for streaming floating-point time series
US20210157485A1 (en) Pattern-based cache block compression

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication