会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 4. 发明授权
    • Compressing and accessing a microcode ROM
    • 压缩和访问微码ROM
    • US08099587B2
    • 2012-01-17
    • US11186240
    • 2005-07-20
    • Youfeng WuSangwook KimMauricio Breternitz, Jr.Herbert Hum
    • Youfeng WuSangwook KimMauricio Breternitz, Jr.Herbert Hum
    • G06F9/00
    • G06F12/06G06F8/4436G06F9/30178G06F2212/401
    • An arrangement is provided for compressing microcode ROM (“uROM”) in a processor and for efficiently accessing a compressed “uROM”. A clustering-based approach may be used to effectively compress a uROM. The approach groups similar columns of microcode into different clusters and identifies unique patterns within each cluster. Only unique patterns identified in each cluster are stored in a pattern storage. Indices, which help map an address of a microcode word (“uOP”) to be fetched from a uROM to unique patterns required for the uOP, may be stored in an index storage. Typically it takes a longer time to fetch a uOP from a compressed uROM than from an uncompressed uROM. The compressed uROM may be so designed that the process of fetching a uOP (or uOPs) from a compressed uROM may be fully-pipelined to reduce the access latency.
    • 提供了一种用于在处理器中压缩微代码ROM(“uROM”)并有效访问压缩的“uROM”的装置。 可以使用基于聚类的方法来有效地压缩uROM。 该方法将相似的微代码列组合成不同的集群,并识别每个集群内的唯一模式。 每个集群中唯一标识的模式都存储在模式存储中。 帮助将从uROM获取的微代码字(“uOP”)的地址映射到uOP所需的唯一模式的索引可以存储在索引存储器中。 通常,从压缩的uROM获取uop比从未压缩的uROM获取更长的时间。 压缩的uROM可以被设计成使得从压缩的uROM获取uop(或uop)的过程可以被完全流水线化以减少访问等待时间。
    • 5. 发明申请
    • Rewriting Branch Instructions Using Branch Stubs
    • 使用分支存根重写分支指令
    • US20110321002A1
    • 2011-12-29
    • US12823204
    • 2010-06-25
    • Tong ChenBrian FlachsBrad W. MichaelMark R. NutterJohn K.P. O'BrienKathryn M. O'BrienTao Zhang
    • Tong ChenBrian FlachsBrad W. MichaelMark R. NutterJohn K.P. O'BrienKathryn M. O'BrienTao Zhang
    • G06F9/44G06F9/45
    • G06F8/4436G06F8/433G06F8/4442
    • Mechanisms are provided for rewriting branch instructions in a portion of code. The mechanisms receive a portion of source code having an original branch instruction. The mechanisms generate a branch stub for the original branch instruction. The branch stub stores information about the original branch instruction including an original target address of the original branch instruction. Moreover, the mechanisms rewrite the original branch instruction so that a target of the rewritten branch instruction references the branch stub. In addition, the mechanisms output compiled code including the rewritten branch instruction and the branch stub for execution by a computing device. The branch stub is utilized by the computing device at runtime to determine if execution of the rewritten branch instruction can be redirected directly to a target instruction corresponding to the original target address in an instruction cache of the computing device without intervention by an instruction cache runtime system.
    • 提供了用于在一部分代码中重写分支指令的机制。 该机制接收一部分具有原始分支指令的源代码。 机制为原始分支指令生成分支存根。 分支存根存储关于原始分支指令的信息,包括原始分支指令的原始目标地址。 此外,机制重写原始分支指令,使得重写的分支指令的目标引用分支存根。 此外,机制输出编译代码,包括重写的分支指令和分支存根,以供计算设备执行。 计算设备在运行时利用分支存根来确定重写的分支指令的执行是否可以被直接重定向到与计算设备的指令高速缓存中的原始目标地址相对应的目标指令,而无需指令高速缓存运行时系统的干预 。
    • 7. 发明授权
    • Compiling source code
    • 编译源代码
    • US07213238B2
    • 2007-05-01
    • US10199366
    • 2002-07-18
    • Robert M. N. KlarerSandor C. A. Mathe
    • Robert M. N. KlarerSandor C. A. Mathe
    • G06F9/45
    • G06F8/4436
    • The invention provides a compiler for compiling source code files to generate corresponding object code files, the source code files including a first source code file and a second source code file, the first source code file having an initial occurrence of a unit of source code, and the second source code file having a subsequent occurrence of the unit of source code, the compiler including means for compiling the first source code file to generate the first object code file having a first unit of object code representing the initial occurrence of the unit of source code, and means for compiling the second source code file to generate the second object code file having a pointer to the first unit of object code, whereby the pointer supplants a second unit of object code representing the subsequent occurrence of the unit of source code.
    • 本发明提供了一种用于编译源代码文件以生成相应对象代码文件的编译器,源代码文件包括第一源代码文件和第二源代码文件,第一源代码文件具有源代码单元的初始出现, 并且所述第二源代码文件随后出现所述源代码单元,所述编译器包括用于编译所述第一源代码文件以生成所述第一目标代码文件的装置,所述第一目标代码文件具有表示所述单元的初始出现的第一单元的目标代码 源代码和用于编译第二源代码文件以生成具有指向目标代码的第一单元的指针的第二目标代码文件的装置,由此指针代替表示源代码单元的后续出现的第二单元的目标代码 。
    • 8. 发明申请
    • Process and system for sharing program fragments
    • 共享程序片段的过程和系统
    • US20050186625A1
    • 2005-08-25
    • US11100790
    • 2005-04-06
    • Beat Heeb
    • Beat Heeb
    • G06F9/42G06F9/445G06F9/45C12Q1/68G06F19/00G01N33/48G01N33/50
    • G06F8/447G06F8/443G06F8/4436G06F8/52G06F9/44589G06F9/449
    • A technique for sharing code fragments involves detecting identical code fragments, then replacing code fragments with references to an identical code fragment. A process according to the technique may include detecting identical code fragments in one or more modules, presenting at runtime a single code fragment that is identical to the identical code fragments, and automatically sharing the single code fragment among the one or more modules. A system according to the technique may include a code fragments database that may includes code fragments and a code server configured to receive requests for a program and provide references to one or more of the code fragments in the code fragments database. Another system according to the technique may include a first object, a second object, and a method object, wherein a reference associated with a first method of the first object and the reference associated with a second method of the second object are pointers to the method object.
    • 用于共享代码片段的技术涉及检测相同的代码片段,然后用相同代码片段的引用代替代码片段。 根据技术的过程可以包括检测一个或多个模块中的相同代码片段,在运行时呈现与相同代码片段相同的单个代码片段,并且在一个或多个模块之间自动共享单个代码片段。 根据该技术的系统可以包括可以包括代码片段的代码片段数据库和被配置为接收对程序的请求并提供对代码片段数据库中的一个或多个代码片段的引用的代码服务器。 根据该技术的另一系统可以包括第一对象,第二对象和方法对象,其中与第一对象的第一方法相关联的引用和与第二对象的第二方法相关联的引用是指向该方法的指针 目的。
    • 9. 发明授权
    • Dynamic microcode for embedded processors
    • 嵌入式处理器的动态微码
    • US06263429B1
    • 2001-07-17
    • US09164256
    • 1998-09-30
    • Charles P. Siska
    • Charles P. Siska
    • G06F738
    • G06F8/4436G06F9/30145
    • A method of compressing programs, especially those used in embedded systems, is provided which allows greater program compression without significantly degrading system performance. The method provides: first, examining an entire program for sequences of lines of code, which may or may not constitute basic blocks; determining which sequences are identical or are identical except for a variation in a predetermined number of Elements within the sequence; designating and saving one uncompressed version of the identified sequences in memory as a specific microroutine, saving the Elements which differentiate the saved sequence from the various nearly identical sequences; and, assembling a version of the program consisting of original lines of code and microcalls. The microcall is a line of code which instructs a processor to implement a previously saved microroutine and provides an indication as to which Elements in the microroutine are to be replaced and where to find the substitute Elements. In a preferred embodiment, the Elements replaced are parameters such as register values. However, the present invention may be suitably modified to accommodate substitutions of any portion of a code including sequences and/or lines of instruction, operands, opcodes, or the like. Additionally, in an alternative embodiment, the determination of when the end of a microroutine code has been reached is facilitated by providing a single bit indicator table which corresponds to the lines of code stored as microroutines in memory, such that when the single bit reads a particular value, the last instruction of the microroutine has been reached.
    • 提供了一种压缩程序的方法,特别是嵌入式系统中使用的程序,可以实现更大的程序压缩,而不会显着降低系统性能。 该方法提供:首先,检查整个程序的代码行序列,其可以或可以不构成基本块; 确定哪些序列相同或相同,除了序列内的预定数量的元素的变化; 将存储器中识别的序列的一个未压缩版本指定并保存为特定的微阵列,从而保存将保存的序列与各种几乎相同的序列区分开的元素; 并组装由原始代码行和微型计算机组成的程序版本。 微型呼叫器是一行代码,它指示处理器实现先前保存的微程序,并提供关于要替换微程序中的哪些元素以及哪里可以找到替代元素的指示。 在优选实施例中,替换的元素是诸如寄存器值的参数。 然而,本发明可以被适当地修改以适应包括指令序列和/或行,操作数,操作码等的代码的任何部分的替换。 另外,在替代实施例中,通过提供与存储在存储器中作为微循环存储的代码行相对应的单个位指示符表,便于通过提供一个单个位指示符表来确定何时已经达到微程序代码的结束,使得当单个位读取 特定的值,已经达到了microroutine的最后一个指令。