会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 2. 发明授权
    • Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring
    • 方法,系统和计算机程序产品,通过代码重组提供有效利用存储器层次结构
    • US06175957B1
    • 2001-01-16
    • US08987911
    • 1997-12-09
    • Dz Ching JuKalyan MuthukumarShankar RamaswamyBarbara Bluestein Simons
    • Dz Ching JuKalyan MuthukumarShankar RamaswamyBarbara Bluestein Simons
    • G06F9445
    • G06F8/4442
    • Code restructuring or reordering based on profiling information and memory hierarchy is provided by constructing a Program Execution Graph (PEG) corresponding to a level of the memory hierarchy, partitioning this PEG to reduce estimated memory overhead costs below an upper bound, and constructing a PEG for a next level of the memory hierarchy from the partitioned PEG. The PEG is constructed from control flow and frequency information from a profile of the program to be restructured. The PEG is a weighted undirected graph comprising nodes representing basic blocks and edges representing transfer of control between pairs of basic blocks. The weight of a node is the size of the basic block it represents and the weight of an edge is the frequency of transition between the pair of basic blocks it connects. The nodes of the PEG are partitioned or clustered into clusters such that the sum of the weights of the nodes in any cluster is no greater than an upper bound. A next PEG is then constructed from the clusters of the partitioned PEG such that a node in the next PEG corresponds to a cluster in the partitioned PEG, and such that there is an edge between two nodes in the next PEG if there is an edge between the clusters represented by the two nodes. Weights are assigned to the nodes and edges of the next PEG to produce a PEG, and then the PEG partitioning, basic block reordering, and PEG construction steps may be repeated for each level of the memory hierarchy. After the clustering is completed, the basic blocks are reordered in memory by grouping all of the nodes of a cluster in an adjacent order beginning at a boundary for all the levels of the memory hierarchy. Because clusters must not cross boundaries of memory hierarchies, NOPs are added to fill out the portion of a memory hierarchy level that is not filled by the clusters.
    • 通过构建对应于存储器层级的级别的程序执行图(PEG)来提供基于分析信息和存储器层次结构的代码重构或重新排序,对该PEG进行划分以减少低于上限的估计的内存开销成本,以及构建用于 来自分区PEG的内存层次结构的下一级别。 PEG由要重组程序的配置文件的控制流程和频率信息构成。 PEG是加权无向图,包括表示基本块的节点和表示基本块对之间的控制传输的边。 节点的权重是其表示的基本块的大小,边的权重是其连接的一对基本块之间的转换频率。 PEG的节点被分区或聚类成簇,使得任何簇中的节点的权重之和不大于上限。 然后从分隔的PEG的簇构建下一个PEG,使得下一个PEG中的节点对应于分离的PEG中的簇,并且使得在下一个PEG中的两个节点之间存在边缘,如果在 由两个节点代表的群集。 将权重分配给下一个PEG的节点和边缘以产生PEG,然后可以针对存储器层级的每个级别重复PEG划分,基本块重排序和PEG构建步骤。 在聚类完成之后,基本块在存储器中被重新排序,所以在存储器层次结构的所有级别的边界处以相邻顺序对簇的所有节点进行分组。 因为集群不能跨越内存层次结构的边界,所以添加NOP以填充未由集群填充的内存层次结构级别的部分。
    • 4. 发明授权
    • System, method, and program product for loop instruction scheduling
hardware lookahead
    • 系统,方法和程序产品用于循环指令调度硬件的前瞻
    • US6044222A
    • 2000-03-28
    • US882724
    • 1997-06-23
    • Barbara Bluestein SimonsVivek Sarkar
    • Barbara Bluestein SimonsVivek Sarkar
    • G06F9/45G06F9/44
    • G06F8/4452
    • Improved scheduling of instructions within a loop for execution by a computer system having hardware lookahead is provided. A dependence graph is constructed which contains all the nodes of a dependence graph corresponding to the loop, but which only contains loop-independent dependence edges. A start node simulating a previous iteration of the loop may be added to the dependence graph, and an end node simulating a next iteration of the loop may also added to the dependence graph. A loop-independent edge between a source node and the start node is added to the dependence graph, and a loop-independent edge between a sink node and the end node is added to the dependence graph. Loop-carried edges which satisfy a computed lower bound on the time required for a single loop iteration are eliminated from a dependence graph, and loop-carried edges which do not satisfy the computed lower bound are replaced by a pair of loop-independent edges. Instructions may be scheduled for execution based on the dependence graph.
    • 提供了改进的循环内的指令的调度,以便由具有硬件前瞻的计算机系统执行。 构造依赖图,其包含对应于循环的依赖图的所有节点,但是仅包含与循环无关的依赖性边。 模拟循环的先前迭代的起始节点可以被添加到依赖图,并且模拟循环的下一个迭代的结束节点也可以被添加到依赖图。 源节点和起始节点之间的环路无关的边缘被添加到依赖关系图中,并且汇点节点和终端节点之间的与环路无关的边缘被添加到依赖图中。 从依赖图中消除满足单循环迭代所需时间的计算下界的循环传送边,并且不满足计算下界的循环传送边被一对独立于循环的边替换。 可以根据依赖图计划执行指令。
    • 5. 发明授权
    • System, method, and program product for instruction scheduling in the
presence of hardware lookahead accomplished by the rescheduling of idle
slots
    • 在存在通过重新安排空闲插槽实现的硬件前瞻的情况下进行指令调度的系统,方法和程序产品
    • US5887174A
    • 1999-03-23
    • US666719
    • 1996-06-18
    • Barbara Bluestein SimonsVivek Sarkar
    • Barbara Bluestein SimonsVivek Sarkar
    • G06F9/45G06F9/44
    • G06F8/445
    • Instructions are scheduled for execution by a processor having a lookahead buffer by identifying an idle slot in a first instruction schedule of a first basic block of instructions, and by rescheduling the idle slot later in the first instruction schedule. The idle slot is rescheduled by determining if the first basic block of instructions may be rescheduled into a second instruction schedule in which the identified idle slot is scheduled later than in the first instruction schedule. The first basic block of instructions is rescheduled by determining a completion deadline of the first instruction schedule, decreasing the completion deadline, and determining the second instruction schedule based on the decreased completion deadline. Deadlines are determined by computing a rank of each node of a DAG corresponding to the first basic block of instructions; constructing an ordered list of the DAG nodes in nondecreasing rank order; and applying a greedy scheduling heuristic to the ordered list. An instruction in a second subsequent basic block of instructions may be rescheduled to execute in the rescheduled idle slot. This process may be repeated for each idle slot.
    • 通过在第一基本指令块的第一指令调度中识别空闲时隙,并且通过在第一指令调度中稍后再调度空闲时隙,调度具有前瞻缓冲器的处理器执行指令。 通过确定第一基本指令块是否可以重新安排到第二指令调度中来重新调度空闲时隙,其中所标识的空闲时隙晚于第一指令调度中的调度。 通过确定第一指令调度的完成期限,减少完成期限以及基于完成截止时间缩短来确定第二指令调度表来重新安排第一基本指令块。 通过计算与第一基本指令块相对应的DAG的每个节点的等级来确定截止日期; 以不降序的顺序构建DAG节点的有序列表; 并将贪心调度启发式应用于有序列表。 在第二后续基本指令块中的指令可以被重新调度以在重新安排的空闲时隙中执行。 可以针对每个空闲时隙重复该过程。