摘要:
A method and apparatus for performing mis-aligned read and write operations to a stack involves providing a memory array (110). The memory array is split into a high byte memory array (116) and a low byte memory array (112). Each memory array (112 and 116) has its own bus interface unit (114 and 118) respectively. The high byte bus interface unit (118) increments the address bits to the high byte memory array (116) on every access to compensate for mis-aligned data. However, the low byte bus interface unit (114) does not increment the address value before accessing the memory array (112). By doing so, memory is read from the memory arrays (112 and 116) in either 8 bit sizes or 16 bit sizes regardless of whether the stack structure implemented in memory array (112 and/or 116) contains aligned data or mis-aligned data.
摘要:
A method and apparatus for unstacking registers in a data processing system (100). In one form, the present invention is a more time efficient solution to the problem of unstacking and stacking registers (154-158) during interrupt processing in a data processing system (100). By taking advantage of the fact that pulling a register value off of the stack does not change any of the values stored in the memory which is being used as the stack, the present invention reduces the unstacking and stacking each time that two interrupts are processed back to back with no non-interrupt processing in between. The present invention eliminates the unstacking of the program counter register (158) and the restacking of registers (154-158) by changing the value of the stack pointer register (161) without any corresponding stacking or unstacking operation.
摘要:
A data processor (12) has built-in circuitry for scan testing certain circuits. The data processor generates and stores test vectors in a memory system (22) normally used for data and instruction storage. These vectors can be much larger than the size of any scan chain. During testing, the stored vectors are automatically routed to the circuits to be tested (36, 38) and the outputs compared to a benchmark. The data processor (12) need not pause to generate additional test vectors. Therefore, the data processor (12) can use a single circuit to generate scan data and compress scan results with minimal timing or size implications.
摘要:
A queue memory system (10) provides a flexible memory transfer system which uses a single transaction to either store a memory value in a queue or to retrieve the memory value from the queue. A queue controller (20) controls the transfer of data between a queue memory (18) and the peripheral devices (22, 24). The queue controller generally includes a register (52, 62) which indicates an address to be accessed and a direction control signal. Additionally, each peripheral device has a queue control register which is configured to access a selected channel of the queue memory. The queue memory system described herein also efficiently uses the cycle time of a central processing unit (12) of the system to perform queue accesses without disrupting more general processing steps. For example, the queue memory system will wait (for up to thirty-two timing cycles) for a timing cycle in which the central processing unit does not require use of a bus. At that time, the queue memory system will transfer data between the queue and a peripheral device. An alternate option is to force the central processing unit to freeze operation so that data will be transferred immediately.
摘要:
A data processing system (10) performs indexed addressing, autoincrementing, and autodecrementing using power of two byte boundaries. For example, a 5-bit offset allows a user to progress sixteen bytes either forward or backward through a table of data. An instruction specifying an operation to be performed, a pointer register (58, 60), and an offset value is provided to an execution unit (14). The pointer register (58, 60) stores a first address value and the offset value has a sign and a magnitude. An arithmetic logic unit, ALU, (52) inverts the sign of the offset value to provide an inverted sign value. A plurality of adders (100, 102, 104, 106, and 108) adds the offset value, the first address value, and the inverted sign value to generate an offset sum. A positive offset value is increased by one to generate a symmetric power of two offset range.
摘要:
A method for accessing a control register in a data processing system which ignores a first write to sensitive control bits when in a first mode, but allows subsequent writes to the sensitive control bits. When operating in a user mode, the method allows a first write to the sensitive control bits, but does not allow any subsequent writes. When a write access is made to the sensitive control bits during test mode only non-initial writes are effective. When a write access is made to the sensitive control bits during user mode only an initial write is effective. The method is effective in a data processing system having a control register write access scheme.
摘要:
A register having a selective wait feature includes logic for receiving a new value to be stored and logic for selectively delaying the appearance of the new value at the output of the register until some predetermined event has occurred. The register can also be read to determine whether the event has occurred. The register is disclosed in the context of a microprocessor-controlled digital timer apparatus which responds to an incoming pulse train. Certain control bits in the apparatus determine whether the digital timer is responsive to rising edges of the pulse train, falling edges, any edges, or no edges. The microprocessor determines, at the time new values are stored to those control bit locations, whether the new values are to become effective immediately or are to be delayed until some intervening event has occurred. The register permits control over the time at which transitions between different operating modes are made in order to assure orderly operation.
摘要:
A data processing system (10) capable of generating an output waveform (22) that has enhanced pulse width resolution. In one form, the system uses a counter (34) which is incremented by an input clock (20) running at an operating frequency of the system. Instead of incrementing the counter (34) by one, the counter (34) is incremented by a power of two so that the counter (34) appears to be counting a power of two faster. However, in order to increase the effective resolution of the counter (34), the second edge of the output waveform (22) must be correctly adjusted depending on the desired duty cycle and period. The end result is a counter (34) that can produce a power of two greater resolution while still using the operating frequency of the system as an input clock (20).
摘要:
A digital timer apparatus incorporates a free running counter, an interval timer, a capture register, a pulse accumulator and holding logic. A rising or falling edge of an external signal causes the current contents of the free running counter to be loaded into the capture register and causes the pulse accumulator to be incremented. The output of the interval timer can cause the contents of the pulse accumulator and capture register to be stored into the holding logic. The timer apparatus is particularly well suited to performing tasks related to the determination of the speed of rotation of a rotating member and may be used, for instance, in detecting wheel rotational speeds in an anti-lock brake system or detecting shaft rotation speeds in an automatic transmission.
摘要:
A microcomputer with an external bus interface for providing communication with external peripheral devices such as memory and the like is provided with on-board chip select logic and programmable bus stretching capability. The chip select logic provides chip select signals to external devices when addresses fall within pre-selected ranges, eliminating the "glue" logic normally required for this purpose. The programmable bus stretching feature inserts a pre-selected number of "wait states" into any external bus cycle for which it is programmed by stretching, or freezing, the central processing unit and external bus interface unit clocks. Other internal clocks, such as those which drive timers and/or serial interface baud rate generators are not frozen by the bus stretch.