Method and system for deferring exceptions generated during speculative
execution
    1.
    发明授权
    Method and system for deferring exceptions generated during speculative execution 失效
    用于推迟在投机执行期间产生的异常的方法和系统

    公开(公告)号:US5692169A

    公开(公告)日:1997-11-25

    申请号:US324940

    申请日:1994-10-18

    摘要: A method for supporting speculative execution includes designating operations as speculative or non-speculative, and then deferring exceptions generated by speculative operations while immediately reporting exceptions by non-speculative operations. If a speculative operation uses a result of a speculative operation that has generated an exception, the exception is propagated. Deferred exceptions are detected and reported using a check operation either incorporated into a non-speculative operation or inserted as a separate check operation. A system for supporting speculative execution includes a functional unit for recognizing a speculative operation and deferring any exceptions generated by such an operation. The functional unit may defer an exception by storing information indicating an error has occurred in the register file. To check for deferred exceptions, the functional unit then reads the register file.

    摘要翻译: 支持投机执行的方法包括将操作指定为投机或非投机性,然后推迟由投机操作产生的异常,同时立即通过非投机操作报告异常。 如果推测操作使用产生异常的推测操作的结果,则会传播该异常。 使用检查操作检测和报告延期异常,并将其合并到非推测操作中或作为单独检查操作插入。 用于支持推测执行的系统包括用于识别投机操作并推迟由这种操作产生的任何异常的功能单元。 功能单元可以通过存储指示在寄存器文件中发生错误的信息来延迟异常。 要检查延迟异常,功能单元然后读取寄存器文件。

    Method and system for propagating exception status in data registers and
for detecting exceptions from speculative operations with
non-speculative operations
    2.
    发明授权
    Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations 失效
    在数据寄存器中传播异常状态的方法和系统,以及用非投机操作检测投机操作的异常

    公开(公告)号:US5778219A

    公开(公告)日:1998-07-07

    申请号:US597784

    申请日:1996-02-07

    IPC分类号: G06F9/318 G06F9/38

    摘要: A method for supporting speculative execution includes designating operations as speculative or non-speculative, and then deferring exceptions generated by speculative operations while immediately reporting exceptions by non-speculative operations. If a speculative operation uses a result of a speculative operation that has generated an exception, the exception is propagated. Deferred exceptions are detected and reported using a check operation either incorporated into a non-speculative operation or inserted as a separate check operation. A system for supporting speculative execution includes a functional unit for recognizing a speculative operation and deferring any exceptions generated by such an operation. The functional unit may defer an exception by storing information indicating an error has occurred in the register file. To check for deferred exceptions, the functional unit then reads the register file. If an exception is detected, then the exception is processed and one or more of the speculative operation are re-executed (in a non-speculative mode) where necessary to process the exception.

    摘要翻译: 支持投机执行的方法包括将操作指定为投机或非投机性,然后推迟由投机操作产生的异常,同时立即通过非投机操作报告异常。 如果推测操作使用产生异常的推测操作的结果,则会传播该异常。 使用检查操作检测和报告延期异常,并将其合并到非推测操作中或作为单独检查操作插入。 用于支持推测执行的系统包括用于识别投机操作并推迟由这种操作产生的任何异常的功能单元。 功能单元可以通过存储指示在寄存器文件中发生错误的信息来延迟异常。 要检查延迟异常,功能单元然后读取寄存器文件。 如果检测到异常,则处理异常,并且在需要处理异常的情况下重新执行一个或多个推测操作(以非推测模式)。

    Memory processor that prevents errors when load instructions are moved
in the execution sequence
    3.
    发明授权
    Memory processor that prevents errors when load instructions are moved in the execution sequence 失效
    内存处理器可以在执行顺序中移动加载指令时防止错误

    公开(公告)号:US5475823A

    公开(公告)日:1995-12-12

    申请号:US261647

    申请日:1994-06-17

    CPC分类号: G06F9/30043 G06F9/3834

    摘要: A memory processor which prevents errors when the compiler advances long latency load instructions in the instruction sequence to reduce the loss of efficiency resulting from the latency time. The memory processor intercepts all load and store instructions prior to the instructions entering the memory pipeline. The memory processor stores load instructions for a period of time sufficient to determine if any subsequent store instruction that would have been executed prior to the load instruction, had the load instruction not been moved, references the same address as that specified in the load instruction. If a store instruction references the load instruction address, the invention returns the same data as the load instruction would have if it was not moved by the compiler.

    摘要翻译: 一种存储器处理器,当编译器在指令序列中前进长延迟加载指令时,可以防止错误,以减少延迟时间导致的效率损失。 存储器处理器在指令进入存储器管线之前拦截所有的加载和存储指令。 存储器处理器将加载指令存储一段时间,足以确定在加载指令之前已经执行的加载指令是否有任何后续存储指令,如果加载指令未被移动,则引用与加载指令中指定的地址相同的地址。 如果存储指令引用加载指令地址,则本发明返回与加载指令不被编译器移动的数据相同的数据。

    Vector memory operations
    4.
    发明授权
    Vector memory operations 失效
    矢量内存操作

    公开(公告)号:US5689653A

    公开(公告)日:1997-11-18

    申请号:US384308

    申请日:1995-02-06

    摘要: The op-code bandwidth limitation of computer systems is alleviated by providing one or more vector buffers. Data is transferred between memory and processor registers in a two part process using the vector buffers. In a first part, a vector request instruction initiates buffering of data by storing data in control registers identifying a set of data elements (a vector) in the memory. When the identifying information is loaded in the control registers, a vector prefetch controller transfers elements of the vector between the memory and a vector buffer. In a second part, vector element operation instructions transfer a next element of the vector between the vector buffer and a specified processor register for use in arithmetic or logic operations.

    摘要翻译: 通过提供一个或多个向量缓冲器来减轻计算机系统的操作码带宽限制。 数据在存储器和处理器寄存器之间使用向量缓冲区在两部分进程中传输。 在第一部分中,向量请求指令通过将数据存储在识别存储器中的一组数据元素(矢量)的控制寄存器中来发起数据的缓冲。 当识别信息被加载到控制寄存器中时,向量预取控制器在存储器和向量缓冲器之间传送向量的元素。 在第二部分中,向量元素操作指令将矢量的下一个元素传送到矢量缓冲器和指定的处理器寄存器之间,用于算术或逻辑运算。

    Information processing apparatus with prefetch control for prefetching
data structure from memory through cache memory
    5.
    发明授权
    Information processing apparatus with prefetch control for prefetching data structure from memory through cache memory 失效
    具有预取控制的信息处理装置,用于通过高速缓冲存储器从存储器预取数据结构

    公开(公告)号:US5721865A

    公开(公告)日:1998-02-24

    申请号:US588503

    申请日:1996-01-18

    摘要: To improve the function of a circuit for prefetching data accessed by a processor, a prefetch unit incorporates therein a circuit for issuing a request to read out one group of data to be prefetched and registers for holding the group of data read in response to the read request therein. The group of data are read out from a cache memory or a main memory under the control of a cache request unit. A plurality of groups of data can be prefetched. When data designation is made, the processor requests the cache memory to read a block to which the data to be prefetched belongs. A circuit is also included in the prefetch unit, wherein when prefetched data is subsequently updated by the processor, its updated data is made invalid. Elements of a vector complex in structure, such as an indexed vector or the like can be also read out. It is also possible to cope with an interrupt generated within the processor.

    摘要翻译: 为了改进用于预取由处理器访问的数据的电路的功能,预取单元在其中结合有用于发出读取需要预取的一组数据的请求的电路,并且用于保存响应于读取读取的数据组的寄存器 请求。 在高速缓存请求单元的控制下,从高速缓冲存储器或主存储器读出数据组。 可以预取多组数据。 当进行数据指定时,处理器请求高速缓冲存储器读取要预取的数据所属的块。 预取单元中还包括一个电路,其中当处理器随后更新预取的数据时,其更新的数据变为无效。 也可以读出结构中的向量复合体的元素,例如索引向量等。 也可以处理处理器内产生的中断。

    Cache system for reducing memory latency times
    6.
    发明授权
    Cache system for reducing memory latency times 失效
    缓存系统,用于减少内存延迟时间

    公开(公告)号:US5404484A

    公开(公告)日:1995-04-04

    申请号:US945561

    申请日:1992-09-16

    IPC分类号: G06F9/38 G06F12/08 G06F12/12

    摘要: The improved cache system reduces the effects of latency times by utilizing a preload instruction inserted by the compiler into the code. The preload instruction is sent sufficiently in advance of the corresponding load instruction to guarantee that the relevant data is in the cache memory when the load instruction is received. In addition, the invention prevents the pollution of the cache with data that will only be used once during the expected lifetime of the data in the cache. This second feature of the invention assures that a large number of references to data that will only be used once does not result in the contents of the cache being replaced with the subsequent need to reload the contents after the data references have been completed.

    摘要翻译: 改进的缓存系统通过利用编译器插入到代码中的预加载指令来减少延迟时间的影响。 预加载指令在相应的加载指令之前被充分发送,以便在接收到加载指令时保证相关数据在高速缓冲存储器中。 此外,本发明通过在高速缓存中的数据的期望寿命期间仅使用一次的数据来防止高速缓存的污染。 本发明的第二个特征确保了大量仅仅使用一次的数据的引用不会导致高速缓存的内容被替换为在数据引用完成之后随后需要重新加载内容。

    Computer architecture for reducing delays due to branch instructions
    7.
    发明授权
    Computer architecture for reducing delays due to branch instructions 失效
    用于减少分支指令导致的延迟的计算机体系结构

    公开(公告)号:US5615386A

    公开(公告)日:1997-03-25

    申请号:US588151

    申请日:1996-01-18

    IPC分类号: G06F9/32 G06F9/38

    摘要: An improved data processing system for executing branch instructions which has lower latency times and which only rarely requires the instruction pipeline to be flushed is disclosed. The data processing system utilizes a register file to hold the information needed to execute a branch instruction. The information is loaded into the register file in advance of the branch instruction. This allows the system to prepare more than one branch instruction at any given time. The present invention may be used to cause the cache line containing the target address of the branch instruction to be loaded soon as the target address is available for the branch instruction. Since the outcome of the branch instruction is almost always known when the branch instruction enters the instruction pipeline, the instruction pipeline only rarely needs to be flushed.

    摘要翻译: 公开了一种用于执行具有较低等待时间并且很少需要刷新指令流水线的分支指令的改进的数据处理系统。 数据处理系统利用寄存器文件来保存执行分支指令所需的信息。 信息在分支指令之前被加载到寄存器文件中。 这允许系统在任何给定时间准备多个分支指令。 本发明可以用于使得包含分支指令的目标地址的高速缓存线在目标地址对于分支指令可用时很快被加载。 由于分支指令的结果在分支指令进入指令流水线时几乎总是被知道,所以指令流水线很少需要刷新。

    Dynamic allocation of registers to procedures in a digital computer
    8.
    发明授权
    Dynamic allocation of registers to procedures in a digital computer 失效
    动态分配寄存器到数字计算机中的程序

    公开(公告)号:US5564031A

    公开(公告)日:1996-10-08

    申请号:US629041

    申请日:1996-04-12

    摘要: In a digital computer, a circular queue of registers in a register file are allocated as temporary local storage for procedures rather than using the known caller/callee save convention in order to minimize main memory references. A called procedure dynamically allocates local registers as needed without regard to registers used by the caller of the procedure or by any callee of the procedure, whereby register allocation is not restricted by any predetermined window size. Local registers, including parameter passing registers, are allocated in the called procedure, rather than a priori at compile time, by adjusting register stack pointer values. Only the number of registers actually required by the procedure need by allocated. Optionally, rotating registers may be allocated among the local registers. Stack pointer values are stored in one of the parameter passing registers when a procedure is called. Hardware register file access circuitry maps virtual register numbers used by the procedures into the hardware register file. Upon return from a procedure, registers are deallocated by adjusting the register stack pointers to the values stored when the procedure was called.

    摘要翻译: 在数字计算机中,寄存器文件中的寄存器的循环队列被分配为用于过程的临时本地存储器,而不是使用已知的调用者/被调用者保存约定来最小化主存储器引用。 被调用的过程根据需要动态地分配本地寄存器,而不考虑由过程的调用者使用的寄存器或过程的任何被调用者,由此寄存器分配不受任何预定窗口大小的限制。 本地寄存器(包括参数传递寄存器)在调用过程中被分配,而不是在编译时通过调整寄存器堆栈指针值来先验地分配。 只有实际需要的寄存器数量需要分配。 可选地,可以在本地寄存器之间分配旋转寄存器。 调用过程时,堆栈指针值存储在参数传递寄存器之一中。 硬件寄存器文件访问电路将程序使用的虚拟寄存器编号映射到硬件寄存器文件中。 从过程返回时,通过将寄存器堆栈指针调整到调用过程时存储的值来释放寄存器。

    Out-of-order execution using encoded dependencies between instructions
in queues to determine stall values that control issurance of
instructions from the queues
    10.
    发明授权
    Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues 失效
    使用队列中的指令之间的编码相关性来确定停止值,从而控制排队指令的发布,从而执行乱序执行

    公开(公告)号:US5941983A

    公开(公告)日:1999-08-24

    申请号:US881244

    申请日:1997-06-24

    IPC分类号: G06F9/38

    摘要: A method for executing instructions out-of-order to improve performance of a processor includes compiling the instructions of a program into separate queues along with encoded dependencies between instructions in the different queues. The processor then issues instructions from each of these queues independently, except that it enforces the encoded dependencies among instructions from different queues. If an instruction is dependent on instructions in other queues, the processor waits to issue it until the instructions on which it depends are issued. The processor includes a stall unit, comprised of a number of instruction counters for each queue, that enforces the dependencies between instructions in different queues.

    摘要翻译: 用于执行无序的指令以改善处理器的性能的方法包括将程序的指令与不同队列中的指令之间的编码的依赖关系一起编译成单独的队列。 然后处理器独立地从每个这些队列发出指令,除了它强制来自不同队列的指令之间的编码依赖性。 如果指令依赖于其他队列中的指令,则处理器等待发出,直到发出依赖于其的指令。 该处理器包括一个停顿单元,包括用于每个队列的多个指令计数器,其强制在不同队列中的指令之间的依赖性。