Abstract:
An apparatus and method for executing floating-point store instructions in a microprocessor is provided. If store data of a floating-point store instruction corresponds to a tiny number and an underflow exception is masked, then a trap routine can be executed to generate corrected store data and complete the store operation. In response to detecting that store data corresponds to a tiny number and the underflow exception is masked, the store data, store address information, and opcode information can be stored prior to initiating the trap routine. The trap routine can be configured to access the store data, store address information, and opcode information. The trap routine can be configured to generate corrected store data and complete the store operation using the store data, store address information, and opcode information.
Abstract:
A floating point arithmetic unit provides consistent propagation of NaNs le performing high precision calculations on hardware designed to perform lower precision calculations. In one embodiment, the floating point arithmetic unit is provided with a microcode memory that stores more than one set of NaN propagation rules. In operation, the floating point arithmetic unit accesses one of the sets of NaN propagation rules according to the precision of the calculation being performed. A method of performing calculations in a floating point arithmetic unit includes dynamically determining if a calculation to be performed is to be a quad precision calculation or a double precision calculation. If it is determined that a quad precision calculation is to be performed, quad precision NaN propagation rules are selected and a quad precision calculation is performed using the selected quad precision NaN propagation rules. Likewise, if it is determined that a double precision calculation is to be performed, double precision NaN propagation rules are selected and a double precision calculation is performed using the selected double precision NaN propagation rules. By providing more than one set of NaN propagation rules and selecting one of the sets of NaN propagation rules depending on the precision of the calculation being performed, propagation of NaNs in conformance with IEEE standards can be assured. The method and apparatus are easily extended to higher precision calculations to ensure proper propagation of NaNs regardless of the precision calculation.
Abstract:
An apparatus to improve the speed of handling of denormal numbers in a computer system, the apparatus comprising a mode bit and a selector, the mode bit set when denormals are to be replaced by zero, the selector having a first input and an output, the first input comprising a floating point number, the selector selecting zero to become the output when the floating point number is denormal and the mode bit is set, the selector selecting the floating point number to become the output otherwise.
Abstract:
A new Test FP Data Class operation is provided which utilizes a 12-bit mask to determine to which of the 12 possible data classes a floating point number belongs and sets a condition code accordingly. As preferably embodied, a typical IBM System 390 instruction format is adapted to implement a Test FP Data Class operation. The class and sign of the first operand are examined to select one bit from the second-operand address. A condition code of 0 or 1 is set according to whether the selected bit is 0 or 1. The second-operand address is not used to address data; instead, individual bits of the address are used to specify the applicable combinations of operand calls and sign.
Abstract translation:提供了一种新的测试FP数据类操作,其利用12位掩码来确定浮点数所属的12个可能数据类中的哪一个,并相应地设置条件代码。 如优选实施的,典型的IBM System 390指令格式适于实现测试FP数据类操作。 检查第一个操作数的类和符号以从第二操作数地址中选择一位。 根据所选位是0还是1来设置条件码0或1。第二操作数地址不用于寻址数据; 相反,地址的各个位用于指定操作数调用和符号的适用组合。
Abstract:
A method for signed integer division. Typically, the two's complement of the dividend is stored as an adjusted dividend. The upper half of the adjusted dividend is shifted left one bit. The LSB of the upper half of the adjusted dividend is set equal to the MSB of the lower half of the adjusted dividend. The lower half of the adjusted dividend is shifted left one bit. The LSB of the lower half of the adjusted dividend is set equal to zero. A temporary register stores the result of subtracting a constant from the adjusted divisor. The temporary register is updated by subtracting it from the adjusted upper dividend, The adjusted divisor is subtracted from the adjusted dividend, then the adjusted dividend is shifted left one bit and stored in the upper half of the adjusted dividend. A temporary remainder is set equal to the upper half of the adjusted dividend. A first temporary quotient is set equal to the lower half of the adjusted dividend. A second temporary quotient is set equal to the first temporary quotient if the sign of the dividend and divisor are equal; if not, the second temporary quotient is set equal to the complement of the first temporary quotient. If the dividend is negative, the remainder is set equal to the temporary remainder; if not, the remainder is set equal to the complement of the temporary remainder. The quotient is then set equal to the second temporary quotient.
Abstract:
An arithmetic logic unit (230) may be divided into a plurality of independent sections (301, 302, 303, 340). A bit zero of carry status signal corresponding to each section that is stored in a flags register (211), which preferably includes more bits than the maximum number of sections of the arithmetic logic unit (230). New status signals may overwrite the previous status signals or rotate the stored bits and store the new status signals. A status register (210) stores a size indicator that determines the a number of sections of the arithmetic logic unit (230). A status detector has a zero detector (321, 322, 323, 324) for each elementary section (301, 302, 303, 304) of the arithmetic logic unit (230). When there are fewer than the maximum number of sections, these zero signals are ANDed (331, 332, 341). A multiplexer couples the carry-out of an elementary (311, 312, 313, 314) to the carry-in of an adjacent elementary section (301, 302, 303, 304) or not depending on the selected number of sections. The status detector supplies carry outs from each elementary section (301, 302, 303, 304) not coupled to an adjacent elementary section (301, 302, 303, 304) to the flags register (211). Status signals stored in the flags register (211) influence the combination of inputs formed by the arithmetic logic unit (230) within corresponding sections. An expand circuit (238) expands selected bits of flags register (211) to form a third input to a three input arithmetic logic unit (230).
Abstract:
Binary outcome operations are performed on composite operands. A composite operand is an operand that includes plural multi-bit component data items. A binary outcome operation obtains, for each component, a flag bit that depends on the numerical value of the component. A binary outcome operation can be performed by performing an arithmetic operation in parallel on a composite operand in which each component includes more than one bit. The arithmetic operation can add a value, producing a carry signal if a component and the added value together exceed a maximum possible value. Or the arithmetic operation can subtract a value, producing a borrow signal if a component is less than the subtracted value. Also, if the arithmetic operation subtracts a value that is equal to the component, the resulting data item includes only zeros; an operation in parallel can then obtain a single flag bit that is a zero only if the resulting data item includes only zeros. The binary outcome operation can compare each component with a value or can determine whether each component is within a range.
Abstract:
An integrated circuit multiplier-accumulator architecture includes an M-bit wide register for inputting an X operand and an N-bit wide input register for inputting a Y operand to a multiplier. The multiplier can selectably multiply or concatenate the operands to produce a binary product in the form of a first array of M+N parallel bits. A binary adder adds the binary product to a second array of M+N+P+1 parallel bits and outputs the sum as a Z result in the form of a third array of M+N+P+1 parallel bits. The Z result is stored in a selected one of two accumulators. A feedback path is provided to output selected accumulator contents to the adder as the second binary array of M+N+P+1 bits. Output ports are provided for outputting a selected portion of the accumulator contents. Preferably, the output ports can output the entire M+N+P bits in parallel, as well as any selected portion thereof. Overflow logic can be provided which determines from the (M+ n+P+1)th bit whether an overflow has occurred in the M+N+P bit result. A format adjust circuit is provided between the accumulators and the output ports for shifting the entire output accumulator contents a predetermined number of bits within a range of zero to at least P bits, and preferably P+1 bits, in the direction of the most significant bit.
Abstract translation:集成电路乘法器 - 累加器架构包括用于输入X操作数的M位宽寄存器和用于将Y操作数输入到乘法器的N位宽输入寄存器。 乘法器可以可选地乘法或级联操作数,以产生M + N并行位的第一阵列形式的二进制乘积。 二进制加法器将二进制乘积加到M + N + P + 1并行比特的第二阵列上,并以M + N + P + 1并行比特的第三阵列的形式输出该和作为Z结果。 Z结果存储在两个累加器中选定的一个中。 提供反馈路径以将选择的累加器内容输出到加法器作为M + N + P + 1位的第二二进制数组。 输出端口用于输出累加器内容的选定部分。 优选地,输出端口可以并行地输出整个M + N + P位以及其任何选定部分。 可以提供从第(M + n + P + 1)位确定M + N + P位结果中是否发生溢出的溢出逻辑。 在累加器和输出端口之间提供格式调整电路,用于将整个输出累加器内容在0到至少P位的范围内移位预定数量的比特,并且最好是P + 1比特 位。
Abstract:
A digital data processing system has a memory organized into objects containing at least operands and instructions. Each object is identified by a unique and permanent identifier code which identifies the data processing system and the object. The system uses a protection technique to prevent unauthorized access to objects by users who are identified by a subject number which identifies the user, a process of the system for executing a user's procedure, and the type of operation of the system to be performed by the user's procedure. An access control list for each object includes an access control list entry for each subject having access rights to the object and means for confirming that a particular active subject has access rights to a particular object before permitting access to the object. The system also includes stacks for containing information relating to the current state of execution of the system.
Abstract:
An information processor is provided with a plurality of ALU chips under control of a microprogram and an ALU control circuit for controlling the ALU chips. The ALU control circuit responds to data bus information given thereto to select an ALU chip from which flag data is outputted. The ALU control circuit controls the ALU chip specified by the data bus information to operate it. When a carry is produced in the selected ALU chip, a carry generator is so controlled to produce a given carry signal toward a given ALU chip.