WO1993016434A1 - Method and apparatus to reduce computer system bus interleave overhead - Google Patents
Method and apparatus to reduce computer system bus interleave overhead Download PDFInfo
- Publication number
- WO1993016434A1 WO1993016434A1 PCT/US1993/000160 US9300160W WO9316434A1 WO 1993016434 A1 WO1993016434 A1 WO 1993016434A1 US 9300160 W US9300160 W US 9300160W WO 9316434 A1 WO9316434 A1 WO 9316434A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- system bus
- critical
- access
- bus
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
Definitions
- This invention relates generally to the interleaving of system bus cycles between competing devices of a computer system and particularly to a method and apparatus for increasing the availability of the system bus to devices performing time-critical functions.
- ROM and the RAM can transfer data as fast as the CPU requires, the CPU can process data without interruption.
- other devices contend with the CPU for access to the system bus.
- a typical personal computer i.e., an IBM or compatible
- peripheral devices include floppy disk drives, hard disk drives, CD-ROM drives, video controllers, serial or parallel data ports or other interface hardware. All of these devices transfer data to the RAM or receive data from the RAM via the computer's system bus .
- One limitation in the single bus architecture described above is the inability of more than one processor device to communicate with the RAM via the system bus at one time.
- the CPU accesses RAM
- the system bus is not available to the other devices.
- the video controller cannot access the data it requires.
- data is being transferred from a CD-ROM drive to RAM
- data from RAM cannot be transferred to a serial port.
- the CPU cannot store to or retrieve data from RAM.
- bus arbitration A means for administering access to the system bus to solve the problem discussed above is well known in the art and is referred to as "bus arbitration. "
- bus arbitration in the above context is to prioritize access of processor devices to the system bus.
- the arbitration protocol grants access of a given device to the system bus, enabling transfer of data over the bus, and then releases the bus for access by another device.
- bus access might be allotted to the floppy disk controller to transfer a certain amount of information from a floppy disk to RAM.
- bus access might then be granted to the CPU to enable it to read some of this data from RAM into its internal registers for processing.
- Bus access might then be granted to the video controller to transfer data from RAM into video memory for display.
- the CPU might then be granted bus access in order to transfer the processed data back into RAM.
- a standard bus arbitration protocol allows for sequential bus access for multiple competing devices where the processes to be performed by the devices are not time critical. Since each device must wait its turn for access to the system bus, the overall speed of the computer system slows down as the number of devices increases. Certain devices may also perform processes which are time critical and thus require access to the system bus at specific times, or a specific intervals. Problems can occur in the computer system when time-critical devices are not able to have access to the bus when required.
- a multimedia computer environment comprises a CPU, along v. th standard interface circuitry, program and data memory, memory refresh circuitry, a video controller, an audio controller and a CD-ROM drive, for example.
- the CD-ROM drive of a multimedia computer system transfers data to RAM to be processed by the audio controller for the generation of sound, and to be processed by the video controller for the display of video images.
- Each of the CD-ROM drive, the audio controller and the video controller require access to the system bus at specified intervals, and for specified durations, so that sound may be played and video displayed in a continuous fashion without apparent interruption.
- memory refresh circuitry is required to "charge" the RAM at specific intervals so that data contained in the RAM is to dissipated and lost.
- Memory refresh circuitry is also provided to refresh the RAM every 15us, with a time for refresh of one clock cycle, for example. Every 15us the memory refresh circuitry must have access to the system bus for at least one clock cycle (e.g., 100ns) for the purpose of charging the RAM. If for some reason ' the memory refresh circuitry is not able to access the system bus, a portion of data stored in RAM will be lost. If the RAM is being refreshed every 15 us, and the time for refresh is 100ns, then for each second of system time, memory refresh takes 6.67ms of system bus time.
- a function of the DMA controller is to transfer data from the RAM to an audio controller of the multimedia system.
- a typical DMA controller requires 12 clock cycles to transfer 1 byte (8-bits) of data. If the DMA controller is operating at 2MHz, each clock cycle is 400ns and thus each byte of data takes 4.8us to transfer. If the audio controller requires a data rate of 22K bytes/sec for sound, then the audio controller requires 4.8us of bus access time every 45us to play sound. Thus, for each second of system time, the audio controller requires 105.6ms of system bus time.
- Another function of the DMA controller is to transfer data from a CD-ROM drive of the system to RAM.
- a CD-ROM drive transfers data in blocks of 2000 (2K) bytes at a data rate of 150K/ ⁇ ec.
- each block 2K block takes 9.6ms to transfer from the CD-ROM drive to RAM, and with a data rate of 150K/S, the transfer must occur within 13.3ms. If the CD-ROM drive must transfer 75-2K blocks per second, then for each second of system time, the CD-ROM drive requires 720ms of system bus time.
- a typical DMA controller is able to transfer data in either a "burst" mode or a "byte” mode.
- burst mode all of the data within a specified block is + ?,nsferred without releasing the system bus to other -avices.
- byte mode a specified block of data is transferred one byte at a time, releasing the system bus after the transfer of each byte.
- byte mode transfer is the preferred method.
- a problem with DMA byte mode transfer is that when the DMA controller releases the system bus at the end of each byte transfer, devices other than the memory refresh circuitry will access the system bus. For example, each time the DMA controller releases the system bus, the CPU will take control of the system bus for execution of its instructions.
- the instructions executed by the CPU between byte transfers by the DMA controller may take only one bus cycle, or alternatively may take as many as five hundred bus cycles. In the instance where each of the devices attempting to access the system bus are not time-critical devices, this interruption by the CPU is not problematic.
- the CD-ROM drive is a time-critical device which continues to deliver data at a rate of 150K/s.
- a bus arbitration scheme might handle the contention by granting 100ns of system bus time to the memory refresh circuitry, followed by .8us to a DMA controller to transfer data to the audio controller, 100ns to the memory refresh circuitry, and 9.6m ⁇ to the CD-ROM drive, thus interspersing memory refresh cycles during the byte mode transfer.
- interleaving Such allocation of cycles between time-critical devices is known as "interleaving.” As long as the sum total of the system bus access times required by the time-critical devices is less than one second, and as long as the DMA controller can service the CD-ROM drive at 150K/s, for example, successful processing of data is accomplished. However, as the total system bus time approaches 1 second, interleave overhead increases and adequate bus access is unable to be granted to time-critical devices. Accordingly, devices tend to lose data or memory tends to be lost because it is not being refreshed.
- burst mode and byte mode DMA data transfer techniques possess disadvantages when used in a multimedia computer system in which multiple time-critical devices are competing for system bus access.
- Burst mode transfer does not allow memory refresh circuitry to "recharge" RAM ' which can cause the system to crash.
- Byte mode DMA data transfer can result in monopolization of the system bus so as to prevent the DMA controller from servicing the CD-ROM drive at a data rate of a least 150K/s, for example, such that data read from the CD-ROM drive is lost.
- the CD-ROM drive then must reseek the data, causing a gap in the presentation of sound and video.
- a contending device of a computer system which is not performing time-critical functions, is temporarily disabled from contending for bus access at times when other devices need to perform time-critical functions, thereby increasing the availability of the bus to the other devices and reducing bus interleave overhead.
- a determination is made as to the status of the time-critical device with respect to the system bus.
- the device not performing time-critical functions is disabled from bus contention when the determined status of the time-critical device indicates that it has commenced access to the bus.
- the device not performing time-critical functions is reenabled for bus contention after completion of the functions of the time-critical device.
- apparatus for increasing the availability of the system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of bus contention by a plurality of devices, where at least one of the devices is not performing time-critical functions.
- the apparatus includes an arrangement for determining the status of the at least one time critical device, and an arrangement for disabling the non-time critical device form contending for the bus when the determined status of the time-critical device indicates it has commenced bus access.
- the time-critical device is a CD-ROM drive, which needs access to the system bus to perform direct memory access (DMA) data transfers.
- Other time-critical devices contending for bus access with the drive may include refresh circuitry, video and audio controllers of a multimedia environment, for example.
- a device not performing time-critical functions is the computer system central processing unit (CPU) .
- the CPU is disabled from bus contention by execution of a halt instruction contained in its instruction set when the drive commences the transfer of data, After completion of the data transfer by the drive, the CPU is reenabled for bus contention upon receiving an interrupt signal.
- the arrangement for determining the status of the non-time critical device includes a first indicator operative between a first condition and a second condition, which in the first condition indicates that bus access by ⁇ ⁇ time-critical device has not occurred, and in.the second condition indicates that bus access has either commenced or has ended.
- the arrangement further includes a second indicator operative between first and second conditions, such that when the first indicator is in its second condition, the second indicator, in its first condition, indicates that bus access has commenced, and in its second condition indicates that bus access has been completed by the time-critical devices.
- the apparatus for increasing the availability of system bus for access by time-critical devices includes a combination of circuitry and computer program instructions.
- a circuit is operative to indicate a first condition in which system bus access by at least one time-critical device has not occurred, and a second condition in which system bus access has either commenced or has ended.
- Program instructions for execution by the computer system operate to indicate whether system bus access has commenced or has ended, when the circuit indicates the second condition.
- Program instructions are further included to disable the non-time critical device when it is indicated that the time-critical device has commenced access to the system bus.
- Program instructions are further included for reenabling the non-time critical device after completion of the time-critical function of the time-critical device.
- An important technical advantage achieved with the present invention is the reduction of system bus interleave overhead when multiple devices, including devices performing time-critical functions, are contending for access to the system bus.
- a further technical advantage achieved with the present invention is that it offers improved system bus efficiency in a multimedia environment in which multiple time-critical devices require access to the bus during the performance of direct memory access (DMA) data transfers involving a CD-ROM drive.
- DMA direct memory access
- FIG. 1 is a functional block diagram of a multimedia environment
- FIG. 2 is a functional schematic of a hardware arrangement associated with detecting the state of data transfer from a CD-ROM drive in the multimedia environment . of FIG.l;
- FIG. 3 is a flow chart depicting the logic for controlling a processor device preinterrupt technique of the present invention utilized in the multimedia environment of FIG. 1;
- FIG.4 is a state table depicting the possible conditions that can exist with respect to data transfer from a CD-ROM drive in the multimedia environment of FIG.l. Description of the Preferred Embodiment
- the reference numeral 10 refers to a multimedia computing environment in which both audio and video data are processed and output to a user in the form of text, graphics, animation, photo-quality images, high-quality sound and voice or the like preferably utilizing a consistent graphical user interface.
- the environment 10 includes a computer system 12, and exemplary peripheral devices including a compact disk-read only memory (CD-ROM) drive 14, an audio controller 16, and a video controller 18.
- CD-ROM compact disk-read only memory
- a speaker 20 and a video display 22 are connected to the audio controller 16 and the video controller 18, respectively.
- a system bus 24 of the computer system 12 interconnects the various components of the system 12, discussed below, the drive 14, the audio controller 16 and the video controller 18.
- the computer system 12 reads data, including digitally encoded audio and video data, from a CD-ROM (not shown) inserted in the CD-ROM drive 14, processes it and provides the processed data to the audio controller 16 for producing sound on the speaker 20, and to the video controller 18 for display of images on the video display 22.
- data including digitally encoded audio and video data
- the system 12 includes a central processing unit (CPU) 26, a random access memory (RAM) 28, memory refresh circuitry 30, and a direct memory access (DMA) controller 32 interconnected by the system bus 24.
- the bus 24 • comprises address, data and control lines (not shown) for operationally interconnecting the above-described components of the environment 10.
- the memory refresh circuitry 30 is electrically connected to the RAM 28 via the bus 24.
- the other processor devices depicted in FIG. 1 transfer data to and from the RAM 28 on the bus 24 under the direction of the DMA controller 32.
- Such devices include the CD-ROM drive 14, the audio controller 16 and the video controller 18.
- the CD-ROM drive 14 transfers data from a CD-ROM (not shown) to the RAM 28 under the direction of the DMA controller 32 and via the bus 24.
- the audio controller 16 reads from the RAM 28 the data transferred from the CD-ROM drive 14 and processes the data for play on the speaker 20.
- the video controller 18 reads from the RAM 28 the data transferred from the CD-ROM drive 14 and processes the data for display on the video display 22. It is understood that the devices depicted in FIG. 1 are functional blocks only and, while not shown, include buffers, gates, power sources, timing circuitry, and other electronic components necessary for their operation that are well known in the art. It is also understood that other internal and peripheral devices which are not shown in FIG. 1 may be electrically connected to the RAM 28 via the bus 2 .
- contention may occur between the CPU 26, the memory refresh circuitry 30, the CD-ROM drive 14, the audio controller 16 and the video controller 18 for access to the system bus 24 when each such device simultaneously attempts to communicate with the RAM 28.
- the resulting "bottleneck" exists because only one device is able to have access to the bus 24 at a time.
- contention occurs in accessing the bus 24 when the CD-ROM drive 14 transfers data to the RAM 28.
- the CD-ROM drive 14 transfers 2000 (2K) bytes of data (one block), one byte at a time, under the direction of the DMA controller 32, via the bus 24, to the RAM 28.
- the data transfer from the CD-ROM drive 14 to the RAM 28 begins when the CPU 26 sends a command over the bus 24 to the CD-ROM drive 14 requesting data to be transferred to the RAM 28. Following this command, the CPU 26 initializes the DMA controller 32 to take control of the data transfer from the CD-ROM drive 14 to the RAM 28.
- the DMA controller 32 Upon initialization by the CPU 26, the DMA controller 32 gains access to the bus 24, establishes a data communication link with the CD-ROM drive 14, and transfers one byte of data from the CD-ROM drive 14 to the RAM 28. The DMA controller 32 then releases the bus 24 to the other devices. After release of the bus 24 -to the other devices, the DMA controller 32 immediately requests access to the bus 24 to transfer another byte of data. However, upon release of the bus 24 by the DMA controller 32, but before the DMA controller regains access to the bus, one or more of the other devices, such as the memory refresh circuitry 30 or the audio controller 16, for example, may take control of the bus.
- the other devices such as the memory refresh circuitry 30 or the audio controller 16, for example, may take control of the bus.
- the memory refresh circuitry 30 may again access the bus and transfer another byte of data to the RAM 28. This process of requesting, controlling and releasing the bus 28 by the DMA controller 32 continues until the entire 2K data block from the CD-ROM drive 14 is transferred to the RAM 28.
- the method of request/release of the bus 24 by the CD-ROM drive 14, the memory refresh circuitry 30 and the audio controller 16 is referred to as interleave.
- the method of byte mode transfer from the CD-ROM drive 14 to the RAM 28 by the DMA controller 32 is known as a DMA interleave.
- the CPU 26 in the computer system 12 is deactivated, i.e., disabled from accessing the bus 26, during DMA byte transfers from the CD-ROM drive 14 to the RAM 28 by the DMA controller 32.
- a combination of hardware and software is utilized to deactivate the CPU 26 at the beginning of a block transfer from the CD-ROM drive 14 to the RAM 28, and reactivate the CPU upon completion of the block transfer.
- the CPU 26 deactivates or turns itself “off” through the use of a "HALT" instruction that is part of the instruction set of the CPU.
- a "HALT" instruction is placed in a module of code (not shown) stored in the RAM 28, for example, and is executed at the start of a block transfer from the CD-ROM drive 14 to the RAM 28.
- the CPU 26 is reactivated or turned back “on” through the use of a signal on an interrupt line (described below) electrically connected to the CPU 26.
- An interrupt line that is used to turn the CPU 26 back "on” is an interrupt line from the CD-ROM drive 14 comprised of one of the control lines on the bus 24, or another interrupt line from dedicated timeout circuitry (not shown), for example.
- FIG. 2 a block schematic of hardware is shown which is utilized in the environment 10 to deactivate (“preinterrupt") the CPU 26.
- FIG. 2 shows the CD-ROM drive 14 electrically connected to the CPU 26, through a OR gate 34, and to a "one-shot” (D-flipflop) gate 36.
- the CD-ROM drive 14 is electrically connected to the gate 36 via a transfer bus 38.
- the CD-ROM drive 14 is also electrically connected to the CPU 26, via the OR gate 34 by an interrupt line 42.
- the gate 36 is electrically connected to tf ⁇ a CPU 26 via a reset line 44, a trigger status line 46, and a transfer acknowledge line 48.
- the reset line 44 allows the CPU 26 to rest the gate 36 upon a predetermined event.
- the trigger status line 46 provides information regarding the status of the gate 36 to ⁇ "e CPU 26.
- the transfer acknowledge line 48 notifies the C.-'J 26, via the OR gate 34, when the gate 36 has received data from the CD-ROM drive 14 via the transfer bus 38. It is understood that FIG. 2 is a block diagram only and, while not shown, includes buffers, latches and other timing related components as will be appreciated by those skilled in the art.
- the CD-ROM drive 14 is capable of providing an interrupt on the interrupt line 42 in one of two instances. The first instance occurs when the CD-ROM drive 14 completes the transfer of a block of data to the RAM 28. The second instance the CD-ROM drive 14 provides an interrupt on the interrupt line 42 is when there has been an error in transferring data from the CD-ROM drive 14 to the RAM 28. Thus, the CD-ROM drive 14 generates an interrupt at the end of a block transfer, and also in an error condition.
- the transfer acknowledge line 48 from the gate 36 is utilized to initiate execution of the module of code containing the "HALT" instruction, thereby turning the CPU 26 off.
- the interrupt line 42 from the CD-ROM drive 14 is utilized to turn the CPU 26 back on at the end of the block transfer, or if an error occurs.
- a hardware arrangement and software instructions are used to provide multistate logic information to the CPU to identify the status of such interrupt.
- the CPU 26 when the CPU 26 initiates a transfer of data from the CD-ROM drive 14 to the RAM 28, as part of an initialization routine (not shown), the CPU transmits a reset signal to the one-shot gate 36 via the reset line 44, thereby "setting" the gate 36 before data transfer begins.
- the gate 36 functions as an indicator of the condition of the drive 14.
- the indicator operates as a hardware "flag.”
- the CPU 26 can then check the status of the gate 36 via the trigger status line 46 to determine whether the gate 36 has been set or has fired.
- the gate 36 fires (triggering the hardware flag, or changing the state of the indicator) .
- the CPU 26 knows that data transfer has been requested, but has not yet begun.
- the gate 36 receives the first byte of data from the CD-ROM drive 14 via the transfer bus 38
- the gate 36 provides a data acknowledge signal to the CPU 26 via the OR gate 34 and the transfer acknowledge line 48.
- the CPU 26 executes a module of code (not shown) causing it to check the trigger status line 46 of the gate 36. If the gate 36 has not changed states the CPU 26 knows that the signal did not come from the CD-ROM drive 14 but rather, from other interrupt devices (not shown) within the computer system 100.
- the CPU 26 knows that the signal did come from either the CD-ROM drive 14, via the interrupt line 42, or from the gate 36 via the transfer acknowledge line 48, and that either data transfer has begun, transfer of data has been completed, or an error has occurred.
- a determination by the CPU 26 as to which of these interrupt conditions has occurred is accomplished utilizing a software program having a software flag, as discussed with respect to FIG. 3, so that the CPU executes the HALT instruction only when the date transfer has begun.
- the gate 36 via the trigger status line 46 provides a preinterrupt hardware flag to HALT the CPU 26, thereby freeing the system bus 24 for access by time-critical devices.
- FIG. 3 a flow chart depicting the logic for controlling the non-time critical device deactivation technique of the present invention is shown.
- the CPU 26 initiates a transfer of data from the CD-ROM drive 14 to the RAM 28.
- the gate 36 is set as described above.
- the CPU 26 also sets an indicator comprising a software flag to indicate that data transfer has been requested.
- the CD-ROM drive 14 then prepares for transferring data to the RAM 28.
- the gate 36 provides an interrupt signal to the CPU 26 via the transfer acknowledge line 48.
- the interrupt signal is received by the CPU 26, the CPU then immediately executes a software module (not shown) containing program instructions to determine whether to disable the CPU 28, according to the procedures discussed below.
- the software module operates to check the trigger status line 46 (FIG. 2) to determine if the hardware flag is set. If at step 56 the hardware flag is still set, the CPU 26 knows that the interrupt could not have come from the CD-ROM drive 14, because the flag would have been cleared as discussed above, and execution proceeds to step 58.
- a determination is made whether the software flag that was set in the initialization process above is still set. Since the interrupt did not come from the CD-ROM drive 14, as discovered in step 56, the CPU 26 knows that one of two conditions exist. Either a system fault in the computer system 12 has occurred, or a time-out counter (not shown) has interrupted the CPU 26. If at step 58 the software flag is still set, the CPU 26 knows that the time-out counter has generated the interrupt or an error has occurred, as indicated at step 60. This condition causes the CPU 26 to return to execution of the main application, as shown at step 62.
- step 58 the software flag has been cleared, the CPU 26 knows that a system fault must have occurred. This is because the software flag that was set in the initialization process has not been cleared by the CPU 26 as part of the "HALT" process and could not have been cleared in any way other than through a system fault.
- the recognition o- the system fault occurs at step 64.
- step 66 the CPU 26 returns to execution of the main application.
- step 56 the hardware flag is not set, the CPU 26 knows, via the transfer bus 38, that the CD-ROM drive 14 has begun data transfer to the RAM 28 because the gate 36 has fired. Execution of the CPU 26 then proceeds to step 68, At step 68, the CPU 26 checks to see of the software flag that was set in the initialization process is still set. If at step 66 the software flag is still set, execution proceeds to step 70. At step 70 the CPU 26 clears the software flag and executes the "HALT" instruction which turns the CPU off. Thus, with the non-time critical CPU deactivated, the system bus 24 is available for egress by time-critical devices such as the drive 14, refresh circuitry 30, the controllers 16, 18 or other devices.
- step 74 execution returns to step 56 to again execute the steps of the described software module.
- step 56 if the hardware flag is set, the CPU will proceed to step 58, as discussed above.
- step 56 If at step 56 the hardware flag is not set, execution of the CPU 26 proceeds to step 68.
- step 68 the CPU 26 checks to see if the software flag is set. Since at step 70 the software flag was cleared prior to execution by the CPU 26 of the "HALT" instruction, the software flag will still be cleared and execution proceeds to step 74.
- step 74 the software flag having been cleared, the CPU 26 knows that the interrupt came from the CD-ROM drive 14, since the hardware flag also has been cleared, and also that the data transfer is complete or an error has occurred.
- the CPU 26 can check a term count status register (not shown) associated with the DMA Controller 32 to determine whether the entire block of data has been transferred, or whether an error .has occurred prior to completion of the block transfer. In either case, the module returns execution to the main application, at step 76.
- the described combination of hardware and software-flags provide four different states or conditions that may occur after the CPU 26 has requested a data transfer from the drive 14.
- a first condition exists when both the hardware and the software flags have been cleared. In this instance, the CPU 26 knows that data transfer is complete, or that an error in data transfer has occurred.
- the interrupt could not have come from the CD-ROM drive 14, but rather, must have come from the time-out counter (not shown), or another interrupt device.
- the CPU 26 therefore knows that a time-out has occurred, and returns control to the main application.
- a CPU may be used that can be halted through the use of a hardware interrupt rather than through a software instruction.
- Hardware indicator(s) only, software indicator(s) only, or a combination thereof are contemplated to provide device status information.
- software registers could be used to store staf information regarding transfer of data from the CD-R- drive.
- one or more other time-critical devices other than a CD-ROM drive performing DMA data transfer may require access to the system bus in contention with other types of internal and peripheral time-critical devices.
- one or more non-time-critical devices other than the CPU may be deactivated to increase the effective bandwidth of the system bus.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
A method and apparatus for increasing the availability of a computer system bus to devices of the system needing access to the bus to perform time-critical functions at times when multiple devices are contending for the bus is disclosed. A non-time critical device such as a CPU is disabled from system bus contention at times when at least one time-critical device such as a CD-ROM drive is contending for bus access to perform DMA data transfer. A determination is made as to the status of the time-critical device with respect to the system bus. The device which is not performing time-critical functions is disabled from bus contention when the determined status of the time-critical device indicates that it has commenced access to the bus. The non-time critical device is reenabled for bus contention after completion of the time-critical functions of the time-critical device. Hardware and software indicators ('flags') are utilized to determine when the time-critical device has commenced bus access. Program instructions are utilized to disable the non-time critical device from bus access.
Description
METHOD AND APPARATUS TO REDUCE COMPUTER SYSTEM BUS INTERLEAVE OVERHEAD
Field of the Invention
This invention relates generally to the interleaving of system bus cycles between competing devices of a computer system and particularly to a method and apparatus for increasing the availability of the system bus to devices performing time-critical functions.
Background of the Invention
Most computer systems that are manufactured today are based on a Von Neuman architecture that provides for a central processing unit ("CPU") electrically connected to program read only memory ("ROM") and data random access memory ("RAM"). In general, the electrical connections between the CPU and the ROM and RAM comprise an address bus, a data bus and a control bus. These three buses are referred to collectively as the "system bus." Data is transferred to and from the CPU over the data bus, while the address bus and the control bus contain information relating to where the data is located and when the data is to be transferred.
In computer systems designed as above, as long as the ROM and the RAM can transfer data as fast as the CPU requires, the CPU can process data without interruption. However, in more complex computer systems, other devices contend with the CPU for access to the system bus. For example, a typical personal computer (i.e., an IBM or
compatible) may have many peripheral devices with processors that require access to the system bus in order to transfer data. Such peripheral devices include floppy disk drives, hard disk drives, CD-ROM drives, video controllers, serial or parallel data ports or other interface hardware. All of these devices transfer data to the RAM or receive data from the RAM via the computer's system bus .
One limitation in the single bus architecture described above is the inability of more than one processor device to communicate with the RAM via the system bus at one time. When the CPU accesses RAM, for example, the system bus is not available to the other devices. When data is being transferred from RAM to a hard disk, the video controller cannot access the data it requires. When data is being transferred from a CD-ROM drive to RAM, data from RAM cannot be transferred to a serial port. When data is being transferred from RAM to video memory, the CPU cannot store to or retrieve data from RAM. Thus, any device that requires access to the system bus for the purpose of transferring or reading data must share the system bus with other such devices. A means for administering access to the system bus to solve the problem discussed above is well known in the art and is referred to as "bus arbitration. "
The function of bus arbitration in the above context is to prioritize access of processor devices to the system bus. The arbitration protocol grants access of a given device to the system bus, enabling transfer of data over the bus, and then releases the bus for access by another device. For example, bus access might be allotted to the floppy disk controller to transfer a certain amount of information from a floppy disk to RAM. At the end of a specified period of time, bus access might then be granted to the CPU to enable it to read some of this data from RAM into its internal registers for processing. Bus access might then be granted to the video controller to transfer data from RAM into video memory for display. The CPU
might then be granted bus access in order to transfer the processed data back into RAM.
A standard bus arbitration protocol allows for sequential bus access for multiple competing devices where the processes to be performed by the devices are not time critical. Since each device must wait its turn for access to the system bus, the overall speed of the computer system slows down as the number of devices increases. Certain devices may also perform processes which are time critical and thus require access to the system bus at specific times, or a specific intervals. Problems can occur in the computer system when time-critical devices are not able to have access to the bus when required.
One such environment that contains multiple time-critical devices is a multimedia computer environment. A multimedia computer environment comprises a CPU, along v. th standard interface circuitry, program and data memory, memory refresh circuitry, a video controller, an audio controller and a CD-ROM drive, for example. In operation, the CD-ROM drive of a multimedia computer system transfers data to RAM to be processed by the audio controller for the generation of sound, and to be processed by the video controller for the display of video images. Each of the CD-ROM drive, the audio controller and the video controller require access to the system bus at specified intervals, and for specified durations, so that sound may be played and video displayed in a continuous fashion without apparent interruption. In addition, memory refresh circuitry is required to "charge" the RAM at specific intervals so that data contained in the RAM is to dissipated and lost.
Significant problems occur when the foregoing devices cannot access the system bus at their required intervals. If the CD-ROM drive cannot transfer data to RAM at specified intervals, the CD-ROM drive must initiate a reseek of the data being read from the compact disk. This creates a delay in the processing of the audio and video data. If the audio and video controllers cannot access
their data at specified intervals, the result is "noise" or loss of screen image of the appropriate sound or picture. Further, if the memory refresh circuitry cannot "charge" the RAM at specific intervals, data in RAM may be lost causing the system to crash.
The problems associated with contention for bus access of time-critical devices in a computer system is further illustrated with reference to an exemplary multimedia computer system having a CPU which comprises a 10MHz processor and a DMA controller operating at 2.5MHz for administering the transfer of data from one device to another, or to RAM. Memory refresh circuitry is also provided to refresh the RAM every 15us, with a time for refresh of one clock cycle, for example. Every 15us the memory refresh circuitry must have access to the system bus for at least one clock cycle (e.g., 100ns) for the purpose of charging the RAM. If for some reason 'the memory refresh circuitry is not able to access the system bus, a portion of data stored in RAM will be lost. If the RAM is being refreshed every 15 us, and the time for refresh is 100ns, then for each second of system time, memory refresh takes 6.67ms of system bus time.
A function of the DMA controller is to transfer data from the RAM to an audio controller of the multimedia system. A typical DMA controller requires 12 clock cycles to transfer 1 byte (8-bits) of data. If the DMA controller is operating at 2MHz, each clock cycle is 400ns and thus each byte of data takes 4.8us to transfer. If the audio controller requires a data rate of 22K bytes/sec for sound, then the audio controller requires 4.8us of bus access time every 45us to play sound. Thus, for each second of system time, the audio controller requires 105.6ms of system bus time.
Another function of the DMA controller is to transfer data from a CD-ROM drive of the system to RAM. In a typical system, a CD-ROM drive transfers data in blocks of 2000 (2K) bytes at a data rate of 150K/εec. Thus, each block 2K block takes 9.6ms to transfer from the CD-ROM
drive to RAM, and with a data rate of 150K/S, the transfer must occur within 13.3ms. If the CD-ROM drive must transfer 75-2K blocks per second, then for each second of system time, the CD-ROM drive requires 720ms of system bus time.
It is apparent from the above that is the system bus were completely dedicated to the CD-ROM drive during its 2K block transfer, which takes 9.6ms, then all data in memory would be lost because the memory refresh circuitry would not have been able to refresh the memory every 15us.
It is appreciated that a typical DMA controller is able to transfer data in either a "burst" mode or a "byte" mode. In the burst mode, all of the data within a specified block is + ?,nsferred without releasing the system bus to other -avices. In the byte mode, a specified block of data is transferred one byte at a time, releasing the system bus after the transfer of each byte. Thus, to allow for memory refresh in typical computer systems, byte mode transfer is the preferred method.
A problem with DMA byte mode transfer, however, is that when the DMA controller releases the system bus at the end of each byte transfer, devices other than the memory refresh circuitry will access the system bus. For example, each time the DMA controller releases the system bus, the CPU will take control of the system bus for execution of its instructions. The instructions executed by the CPU between byte transfers by the DMA controller may take only one bus cycle, or alternatively may take as many as five hundred bus cycles. In the instance where each of the devices attempting to access the system bus are not time-critical devices, this interruption by the CPU is not problematic. However, in the present instance, the CD-ROM drive is a time-critical device which continues to deliver data at a rate of 150K/s. If the DMA controller cannot access the system bus and transfer the delivered data to RAM at 150K/s, data will be lost. When the DMA controller releases the system bus at the end of a byte transfer, the memory refresh circuitry, the CPU and
the video controller may all be contending for access to the system bus. A bus arbitration scheme might handle the contention by granting 100ns of system bus time to the memory refresh circuitry, followed by .8us to a DMA controller to transfer data to the audio controller, 100ns to the memory refresh circuitry, and 9.6mε to the CD-ROM drive, thus interspersing memory refresh cycles during the byte mode transfer. Such allocation of cycles between time-critical devices is known as "interleaving." As long as the sum total of the system bus access times required by the time-critical devices is less than one second, and as long as the DMA controller can service the CD-ROM drive at 150K/s, for example, successful processing of data is accomplished. However, as the total system bus time approaches 1 second, interleave overhead increases and adequate bus access is unable to be granted to time-critical devices. Accordingly, devices tend to lose data or memory tends to be lost because it is not being refreshed.
Thus, both burst mode and byte mode DMA data transfer techniques possess disadvantages when used in a multimedia computer system in which multiple time-critical devices are competing for system bus access. Burst mode transfer does not allow memory refresh circuitry to "recharge" RAM ' which can cause the system to crash. Byte mode DMA data transfer can result in monopolization of the system bus so as to prevent the DMA controller from servicing the CD-ROM drive at a data rate of a least 150K/s, for example, such that data read from the CD-ROM drive is lost. The CD-ROM drive then must reseek the data, causing a gap in the presentation of sound and video.
In a multimedia computing environment as just described and in other applications where multiple time-critical devices must compete for system bus access, it would be desirable to improve the arrangement for allocating bus access between the devices, thereby improving the effective "bandwidth" or efficiency of system bus utilization.
Summary of the Invention The foregoing problems are solved and a technical advance is achieved by method and apparatus of the present invention in which the availability of a computer system bus is increased to devices of the system needing access to the bus to perform time-critical functions, at times when multiple devices are contending for bus access. In a departure from the art, a contending device of a computer system, which is not performing time-critical functions, is temporarily disabled from contending for bus access at times when other devices need to perform time-critical functions, thereby increasing the availability of the bus to the other devices and reducing bus interleave overhead. Specifically, a determination is made as to the status of the time-critical device with respect to the system bus. The device not performing time-critical functions is disabled from bus contention when the determined status of the time-critical device indicates that it has commenced access to the bus. The device not performing time-critical functions is reenabled for bus contention after completion of the functions of the time-critical device.
In an illustrative embodiment, apparatus is provided for increasing the availability of the system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of bus contention by a plurality of devices, where at least one of the devices is not performing time-critical functions. The apparatus includes an arrangement for determining the status of the at least one time critical device, and an arrangement for disabling the non-time critical device form contending for the bus when the determined status of the time-critical device indicates it has commenced bus access.
In one aspect, the time-critical device is a CD-ROM drive, which needs access to the system bus to perform direct memory access (DMA) data transfers. Other time-critical devices contending for bus access with the
drive may include refresh circuitry, video and audio controllers of a multimedia environment, for example. A device not performing time-critical functions is the computer system central processing unit (CPU) . The CPU is disabled from bus contention by execution of a halt instruction contained in its instruction set when the drive commences the transfer of data, After completion of the data transfer by the drive, the CPU is reenabled for bus contention upon receiving an interrupt signal.
In another aspect, the arrangement for determining the status of the non-time critical device includes a first indicator operative between a first condition and a second condition, which in the first condition indicates that bus access by ♦ ι time-critical device has not occurred, and in.the second condition indicates that bus access has either commenced or has ended. The arrangement further includes a second indicator operative between first and second conditions, such that when the first indicator is in its second condition, the second indicator, in its first condition, indicates that bus access has commenced, and in its second condition indicates that bus access has been completed by the time-critical devices.
In another embodiment, the apparatus for increasing the availability of system bus for access by time-critical devices includes a combination of circuitry and computer program instructions. A circuit is operative to indicate a first condition in which system bus access by at least one time-critical device has not occurred, and a second condition in which system bus access has either commenced or has ended. Program instructions for execution by the computer system operate to indicate whether system bus access has commenced or has ended, when the circuit indicates the second condition. Program instructions are further included to disable the non-time critical device when it is indicated that the time-critical device has commenced access to the system bus. Program instructions are further included for reenabling the non-time critical
device after completion of the time-critical function of the time-critical device.
An important technical advantage achieved with the present invention is the reduction of system bus interleave overhead when multiple devices, including devices performing time-critical functions, are contending for access to the system bus.
A further technical advantage achieved with the present invention is that it offers improved system bus efficiency in a multimedia environment in which multiple time-critical devices require access to the bus during the performance of direct memory access (DMA) data transfers involving a CD-ROM drive.
Description of the Drawings
FIG. 1 is a functional block diagram of a multimedia environment;
FIG. 2 is a functional schematic of a hardware arrangement associated with detecting the state of data transfer from a CD-ROM drive in the multimedia environment . of FIG.l;
FIG. 3 is a flow chart depicting the logic for controlling a processor device preinterrupt technique of the present invention utilized in the multimedia environment of FIG. 1; and
FIG.4 is a state table depicting the possible conditions that can exist with respect to data transfer from a CD-ROM drive in the multimedia environment of FIG.l. Description of the Preferred Embodiment
In FIG.l, the reference numeral 10 refers to a multimedia computing environment in which both audio and video data are processed and output to a user in the form of text, graphics, animation, photo-quality images, high-quality sound and voice or the like preferably utilizing a consistent graphical user interface. The environment 10 includes a computer system 12, and exemplary peripheral devices including a compact disk-read only memory (CD-ROM) drive 14, an audio controller 16, and a video controller 18. A speaker 20 and a video display
22 are connected to the audio controller 16 and the video controller 18, respectively. A system bus 24 of the computer system 12 interconnects the various components of the system 12, discussed below, the drive 14, the audio controller 16 and the video controller 18. As addressed below, the computer system 12 reads data, including digitally encoded audio and video data, from a CD-ROM (not shown) inserted in the CD-ROM drive 14, processes it and provides the processed data to the audio controller 16 for producing sound on the speaker 20, and to the video controller 18 for display of images on the video display 22.
The system 12 includes a central processing unit (CPU) 26, a random access memory (RAM) 28, memory refresh circuitry 30, and a direct memory access (DMA) controller 32 interconnected by the system bus 24. The bus 24 • comprises address, data and control lines (not shown) for operationally interconnecting the above-described components of the environment 10. For example, the memory refresh circuitry 30 is electrically connected to the RAM 28 via the bus 24. The other processor devices depicted in FIG. 1 transfer data to and from the RAM 28 on the bus 24 under the direction of the DMA controller 32. Such devices include the CD-ROM drive 14, the audio controller 16 and the video controller 18. The CD-ROM drive 14 transfers data from a CD-ROM (not shown) to the RAM 28 under the direction of the DMA controller 32 and via the bus 24. The audio controller 16 reads from the RAM 28 the data transferred from the CD-ROM drive 14 and processes the data for play on the speaker 20. The video controller 18 reads from the RAM 28 the data transferred from the CD-ROM drive 14 and processes the data for display on the video display 22. It is understood that the devices depicted in FIG. 1 are functional blocks only and, while not shown, include buffers, gates, power sources, timing circuitry, and other electronic components necessary for their operation that are well known in the art. It is also understood that other internal and peripheral devices
which are not shown in FIG. 1 may be electrically connected to the RAM 28 via the bus 2 .
It is appreciated that contention may occur between the CPU 26, the memory refresh circuitry 30, the CD-ROM drive 14, the audio controller 16 and the video controller 18 for access to the system bus 24 when each such device simultaneously attempts to communicate with the RAM 28. The resulting "bottleneck" exists because only one device is able to have access to the bus 24 at a time. In particular, contention occurs in accessing the bus 24 when the CD-ROM drive 14 transfers data to the RAM 28. During such a transfer, the CD-ROM drive 14 transfers 2000 (2K) bytes of data (one block), one byte at a time, under the direction of the DMA controller 32, via the bus 24, to the RAM 28. The data transfer from the CD-ROM drive 14 to the RAM 28 begins when the CPU 26 sends a command over the bus 24 to the CD-ROM drive 14 requesting data to be transferred to the RAM 28. Following this command, the CPU 26 initializes the DMA controller 32 to take control of the data transfer from the CD-ROM drive 14 to the RAM 28.
Upon initialization by the CPU 26, the DMA controller 32 gains access to the bus 24, establishes a data communication link with the CD-ROM drive 14, and transfers one byte of data from the CD-ROM drive 14 to the RAM 28. The DMA controller 32 then releases the bus 24 to the other devices. After release of the bus 24 -to the other devices, the DMA controller 32 immediately requests access to the bus 24 to transfer another byte of data. However, upon release of the bus 24 by the DMA controller 32, but before the DMA controller regains access to the bus, one or more of the other devices, such as the memory refresh circuitry 30 or the audio controller 16, for example, may take control of the bus. This allows the memory refresh circuitry 30 to "recharge" the RAM 28 and allows the audio controller 16 to transfer data from the RAM 28 for play on the speaker 20. Upon their release of the bus 24, the DMA controller 32 may again access the bus and transfer
another byte of data to the RAM 28. This process of requesting, controlling and releasing the bus 28 by the DMA controller 32 continues until the entire 2K data block from the CD-ROM drive 14 is transferred to the RAM 28. The method of request/release of the bus 24 by the CD-ROM drive 14, the memory refresh circuitry 30 and the audio controller 16 is referred to as interleave. The method of byte mode transfer from the CD-ROM drive 14 to the RAM 28 by the DMA controller 32 is known as a DMA interleave. It is understood that other devices (not shown) in addition to the CPU 26, the memory referesh circuitry 30, the CD-ROM drive 14, the audio controller 16 and the video controller 18, may contend for access to the bus 24. As multiple devices contend for access to the bus 24, the number of interleave operations to be performed increases, which can result in significan ,interleave overhead in the system 12, The present invention reduces interleave overhead as discussed in detail below.
In one embodiment of the present invention, the CPU 26 in the computer system 12 is deactivated, i.e., disabled from accessing the bus 26, during DMA byte transfers from the CD-ROM drive 14 to the RAM 28 by the DMA controller 32. This reduces the number of processor devices competing for the bus 28 during the DMA interleave operation and therefore increases the effective bandwidth, or utilization, of the bus 24 during such interleave with respect to signals for time-critical processor devices. More specifically, a combination of hardware and software is utilized to deactivate the CPU 26 at the beginning of a block transfer from the CD-ROM drive 14 to the RAM 28, and reactivate the CPU upon completion of the block transfer.
In the present embodiment, the CPU 26 deactivates or turns itself "off" through the use of a "HALT" instruction that is part of the instruction set of the CPU. A "HALT" instruction is placed in a module of code (not shown) stored in the RAM 28, for example, and is executed at the start of a block transfer from the CD-ROM drive 14 to the RAM 28. The CPU 26 is reactivated or turned back "on"
through the use of a signal on an interrupt line (described below) electrically connected to the CPU 26. An interrupt line that is used to turn the CPU 26 back "on" is an interrupt line from the CD-ROM drive 14 comprised of one of the control lines on the bus 24, or another interrupt line from dedicated timeout circuitry (not shown), for example.
Referring to FIG. 2, a block schematic of hardware is shown which is utilized in the environment 10 to deactivate ("preinterrupt") the CPU 26. FIG. 2 shows the CD-ROM drive 14 electrically connected to the CPU 26, through a OR gate 34, and to a "one-shot" (D-flipflop) gate 36. The CD-ROM drive 14 is electrically connected to the gate 36 via a transfer bus 38. The CD-ROM drive 14 is also electrically connected to the CPU 26, via the OR gate 34 by an interrupt line 42. The gate 36 is electrically connected to tf\a CPU 26 via a reset line 44, a trigger status line 46, and a transfer acknowledge line 48. The reset line 44 allows the CPU 26 to rest the gate 36 upon a predetermined event. The trigger status line 46 provides information regarding the status of the gate 36 to Λ"e CPU 26. The transfer acknowledge line 48 notifies the C.-'J 26, via the OR gate 34, when the gate 36 has received data from the CD-ROM drive 14 via the transfer bus 38. It is understood that FIG. 2 is a block diagram only and, while not shown, includes buffers, latches and other timing related components as will be appreciated by those skilled in the art.
The CD-ROM drive 14 is capable of providing an interrupt on the interrupt line 42 in one of two instances. The first instance occurs when the CD-ROM drive 14 completes the transfer of a block of data to the RAM 28. The second instance the CD-ROM drive 14 provides an interrupt on the interrupt line 42 is when there has been an error in transferring data from the CD-ROM drive 14 to the RAM 28. Thus, the CD-ROM drive 14 generates an interrupt at the end of a block transfer, and also in an error condition.
The transfer acknowledge line 48 from the gate 36 is utilized to initiate execution of the module of code containing the "HALT" instruction, thereby turning the CPU 26 off. The interrupt line 42 from the CD-ROM drive 14 is utilized to turn the CPU 26 back on at the end of the block transfer, or if an error occurs. To prevent the CPU 25 from turning itself off after an error condition occurs, or at the end of data transfer, a hardware arrangement and software instructions are used to provide multistate logic information to the CPU to identify the status of such interrupt.
Referring to FIG. 2, when the CPU 26 initiates a transfer of data from the CD-ROM drive 14 to the RAM 28, as part of an initialization routine (not shown), the CPU transmits a reset signal to the one-shot gate 36 via the reset line 44, thereby "setting" the gate 36 before data transfer begins. The gate 36 functions as an indicator of the condition of the drive 14. The indicator operates as a hardware "flag." The CPU 26 can then check the status of the gate 36 via the trigger status line 46 to determine whether the gate 36 has been set or has fired. When the CD-ROM drive 14 begins transferring data to the RAM 28, via the transfer bus 38, the gate 36 fires (triggering the hardware flag, or changing the state of the indicator) . Thus, when the gate 36 is set, the CPU 26 knows that data transfer has been requested, but has not yet begun, In addition, when the gate 36 receives the first byte of data from the CD-ROM drive 14 via the transfer bus 38, the gate 36 provides a data acknowledge signal to the CPU 26 via the OR gate 34 and the transfer acknowledge line 48. When the CPU 26 receives a signal from the OR gate 34 it executes a module of code (not shown) causing it to check the trigger status line 46 of the gate 36. If the gate 36 has not changed states the CPU 26 knows that the signal did not come from the CD-ROM drive 14 but rather, from other interrupt devices (not shown) within the computer system 100. If the gate 36 has fired, the CPU 26 knows that the signal did come from either the CD-ROM drive 14,
via the interrupt line 42, or from the gate 36 via the transfer acknowledge line 48, and that either data transfer has begun, transfer of data has been completed, or an error has occurred. A determination by the CPU 26 as to which of these interrupt conditions has occurred is accomplished utilizing a software program having a software flag, as discussed with respect to FIG. 3, so that the CPU executes the HALT instruction only when the date transfer has begun. Thus, the gate 36, via the trigger status line 46 provides a preinterrupt hardware flag to HALT the CPU 26, thereby freeing the system bus 24 for access by time-critical devices.
Referring to FIG. 3, a flow chart depicting the logic for controlling the non-time critical device deactivation technique of the present invention is shown. At step 50, the CPU 26 initiates a transfer of data from the CD-ROM drive 14 to the RAM 28. At that time, the gate 36" is set as described above. At step 52 the CPU 26 also sets an indicator comprising a software flag to indicate that data transfer has been requested. The CD-ROM drive 14 then prepares for transferring data to the RAM 28. At step 54, when the CD-ROM drive 14 begins transferring data to the RAM 28, the gate 36 provides an interrupt signal to the CPU 26 via the transfer acknowledge line 48. At step 54, when the interrupt signal is received by the CPU 26, the CPU then immediately executes a software module (not shown) containing program instructions to determine whether to disable the CPU 28, according to the procedures discussed below.
At step 56 the software module operates to check the trigger status line 46 (FIG. 2) to determine if the hardware flag is set. If at step 56 the hardware flag is still set, the CPU 26 knows that the interrupt could not have come from the CD-ROM drive 14, because the flag would have been cleared as discussed above, and execution proceeds to step 58. At step 58, a determination is made whether the software flag that was set in the initialization process above is still set. Since the
interrupt did not come from the CD-ROM drive 14, as discovered in step 56, the CPU 26 knows that one of two conditions exist. Either a system fault in the computer system 12 has occurred, or a time-out counter (not shown) has interrupted the CPU 26. If at step 58 the software flag is still set, the CPU 26 knows that the time-out counter has generated the interrupt or an error has occurred, as indicated at step 60. This condition causes the CPU 26 to return to execution of the main application, as shown at step 62.
If at step 58 the software flag has been cleared, the CPU 26 knows that a system fault must have occurred. This is because the software flag that was set in the initialization process has not been cleared by the CPU 26 as part of the "HALT" process and could not have been cleared in any way other than through a system fault. The recognition o- the system fault occurs at step 64. At step 66, the CPU 26 returns to execution of the main application.
If at step 56 the hardware flag is not set, the CPU 26 knows, via the transfer bus 38, that the CD-ROM drive 14 has begun data transfer to the RAM 28 because the gate 36 has fired. Execution of the CPU 26 then proceeds to step 68, At step 68, the CPU 26 checks to see of the software flag that was set in the initialization process is still set. If at step 66 the software flag is still set, execution proceeds to step 70. At step 70 the CPU 26 clears the software flag and executes the "HALT" instruction which turns the CPU off. Thus, with the non-time critical CPU deactivated, the system bus 24 is available for egress by time-critical devices such as the drive 14, refresh circuitry 30, the controllers 16, 18 or other devices.
Upon the next occurrence of an interrupt received by the CPU 26, the CPU is reactivated causing the CPU to turn back on. At step 74, execution returns to step 56 to again execute the steps of the described software module.
At stop 56, if the hardware flag is set, the CPU will proceed to step 58, as discussed above.
If at step 56 the hardware flag is not set, execution of the CPU 26 proceeds to step 68. At step 68, the CPU 26 checks to see if the software flag is set. Since at step 70 the software flag was cleared prior to execution by the CPU 26 of the "HALT" instruction, the software flag will still be cleared and execution proceeds to step 74. At step 74, the software flag having been cleared, the CPU 26 knows that the interrupt came from the CD-ROM drive 14, since the hardware flag also has been cleared, and also that the data transfer is complete or an error has occurred. At step 74, the CPU 26 can check a term count status register (not shown) associated with the DMA Controller 32 to determine whether the entire block of data has been transferred, or whether an error .has occurred prior to completion of the block transfer. In either case, the module returns execution to the main application, at step 76.
Referring to FIG. 4, the described combination of hardware and software-flags provide four different states or conditions that may occur after the CPU 26 has requested a data transfer from the drive 14. A first condition exists when both the hardware and the software flags have been cleared. In this instance, the CPU 26 knows that data transfer is complete, or that an error in data transfer has occurred.
A second condition exists when the hardware flag is not set, but the software flag is set. In this condition, the CPU 26 knows that data transfer from the drive 14 has begun. Therefore, the CPU 26 clears the software flag and executes the HALT instruction to turn itself off.
A third condition exists when the hardware flag is set, but the software flag has been cleared. Since this condition is contrary to the logic of the software module, the CPU 26 knows that a system fault has occurred.
A fourth condition exists when both the hardware and software flags are still set. In this instance, the
interrupt could not have come from the CD-ROM drive 14, but rather, must have come from the time-out counter (not shown), or another interrupt device. The CPU 26 therefore knows that a time-out has occurred, and returns control to the main application.
It is understood that variations may be made in the present invention without departing from the spirit and scope of the invention. For example, a CPU may be used that can be halted through the use of a hardware interrupt rather than through a software instruction. Hardware indicator(s) only, software indicator(s) only, or a combination thereof are contemplated to provide device status information. Moreover, software registers could be used to store staf information regarding transfer of data from the CD-R- drive. Likewise, one or more other time-critical devices other than a CD-ROM drive performing DMA data transfer may require access to the system bus in contention with other types of internal and peripheral time-critical devices. Further, it is contemplated that one or more non-time-critical devices other than the CPU may be deactivated to increase the effective bandwidth of the system bus.
Although illustrative embodiments of the present invention have been shown and described, a latitude of modification, change and substitution is intended in the foregoing disclosure, and in certain instances some features of the invention will be employed without a corresponding use of other features. Accordingly, is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention.
Claims
1. Apparatus for increasing the availability of a system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of the devices contending for bus access is not performing time-critical functions, the apparatus comprising: means for determining the status of said at least one time-critical device; and means for disabling said at least one non-time critical device from contending for access to said system bus when the determined status of said at least one time-critical device indicates it has commenced access to said system bus.
2. An apparatus of claim 1 further comprising: means for reenabling said at least one non-time critical device for system bus contention upon completion of the time-critical functions of said at least one time-critical device.
3. An apparatus of claim 1 wherein one of said at least one time-critical device is a CD-ROM drive.
4. An apparatus of claim 3 wherein system bus access is required by said drive for the purpose of transfer of data in said computer system.
5. An apparatus of claim 1 wherein one of said at least one non-time critical devices is a central processing unit.
6. An apparatus of claim 5 wherein said disabling means disables said central processing unit by placing said central processing unit in a halted condition.
7. An apparatus of claim 1 wherein said disabling means comprises computer program instructions.
8. An apparatus of claim 1 wherein said status determining means comprises: a first indicator operative between a first condition and a second condition, which in said first condition indicates that bus access by said at least one time-critical device has not occurred, and in said second condition indicates that bus access by said at least one time-critical device has either commenced or has ended.
9. An apparatus of claim 8 wherein said status determining means further comprises: a second indicator operative between a first condition and a second condition, such that when said first indicator is in said second condition, said second indicator, when in said first condition indicates that bus access has commenced, and when in said second condition indicates said bus access has been completed.
10. An apparatus of claim 8 wherein said first indicator comprises a gate.
11. An apparatus of claim 10 wherein said gate is electrically connected between said at least one time-critical device and a central processing unit of said computer system.
12. An apparatus of claim 9 wherein said second indicator comprises a software flag.
13. Apparatus for increasing the availability of a system bus in a computer system to devices needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of said time-critical devices contending for bus access is a CD-ROM drive performing data transfer, and at least one of said devices contending for bus access is a central processing unit which is not performing time-critical functions, the apparatus comprising: at least one indicator for determining the data transfer status of said drive; and program instructions for execution by said central processing unit to disable said central processing unit from contending for access to said system bus when the determined status of said drive indicates it has commenced data transfer on said system bus.
14. An apparatus of claim 13 further comprising: program instructions for execution by said central processing unit to reenable said central processing unit for system bus contention upon completion of the data transfer of said drive.
15. An apparatus of c. m 13 wherein said at least one indicator comprises a g< i operative between a set condition and a fired condition.
16. An apparatus of claim 13 wherein said at least one indicator comprises a software flag.
17. An apparatus of claim 13 wherein said central processing unit is disabled by placing said central processing unit in a halted condition.
18. An apparatus of claim 17 wherein said unit is placed in said halted condition by execution of a halt instruction of the central pr -essing unit's instruction set.
19. An apparatus of claim 14 wherein said central processing unit is reenabled by an interrupt command when the data transfer status indicates data transfer has been completed.
20. Apparatus for increasing the availability of a system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of the devices contending for bus access is not performing time-critical functions, the apparatus comprising: a circuit operative to indicate a first condition in which system bus access by said at least one time-critical device has not occurred, and a second condition in which system bus access by said at least one time-critical device has either commenced or has ended; program instructions for execution by said computer system, which when said second condition is indicated by said circuit, operate to indicate whether system bus access has commenced or whether system bus access has been completed by said at least one time-critical device; and program instructions for execution by said computer system to disable said at least one non-time critical device from contending for access to said system bus when the determined status of said at least one time-critical device indicates it has commenced access to said system bus; and program instructions for execution by said computer system for reenabling said at least one non-time critical device for system bus contention after completion of the time-critical function of said at least one time-critical device.
21. A method for increasing the availability of a system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of the devices contending for bus access is not performing time-critical functions, the method comprising: determining the status of said at least one time-critical device; and disabling said at least one non-time critical device from contending for access to said system bus when the determined status of said at least one time-critical device indicates it has commenced access to said system bus.
22. A method of claim 21 further comprising: for reenabling said at least one non-time critical device for system bus contention upon completion of the time-critical functions of said at least one time-critical device.
23. A method for increasing the availability of a system bus in a computer system to devices needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of said time-critical devices contending for bus access is a CD-ROM drive, and at least one of said devices contending for bus access is a central processing unit which is not performing time-critical functions, the method comprising: determining the data transfer status of said drive; and disabling said central processing unit from contending for access to said system bus when the determined status of said drive indicates it has commenced data transfer on said system bus.
24. A method of claim 23 further comprising: reenabling said central processing unit for system bus contention upon completion of the data transfer of said drive.
25. A method of claim 23 wherein said central processing unit is disabled by placing said central processing unit in a halted condition.
26. A method " claim 25 wherein said central processing unit is ..aced in said halted condition by execution of a halt instruction of the central processing unit's instruction set'.
27. A method of claim 24 wherein said central processing unit is reenabled by an interrupt command when said data transfer status indicates data transfer has been completed.
28. A method for increasing the availability of a system bus in a computer system to at least one device needing system bus access to perform time-critical functions during periods of contention for bus access by a plurality of devices, where at least one of the devices contending for bus access is not performing time-critical functions, the method comprising the steps of: indicating the existence of either a first condition in which system bus access by said at least one time-critical device has not occurred, or a second condition in which system bus access by said at least one time-critical device; disabling said at least one non-time critical device from contending for access to said system bus when it is determined that the status of said at least one time-critical device has commenced access to said system bus; and reenabling said at least one non-time critical device for system bus contention after completion of the time-critical function of said at least one time-critical device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83528192A | 1992-02-13 | 1992-02-13 | |
US07/835,281 | 1992-02-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1993016434A1 true WO1993016434A1 (en) | 1993-08-19 |
Family
ID=25269107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1993/000160 WO1993016434A1 (en) | 1992-02-13 | 1993-01-08 | Method and apparatus to reduce computer system bus interleave overhead |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO1993016434A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041271A1 (en) * | 1995-06-07 | 1996-12-19 | Advanced Micro Devices, Inc. | Programmable bus arbiter including real time priority indicator fields for arbitration priority selection |
US5754807A (en) * | 1995-11-20 | 1998-05-19 | Advanced Micro Devices, Inc. | Computer system including a multimedia bus which utilizes a separate local expansion bus for addressing and control cycles |
US5761452A (en) * | 1996-03-18 | 1998-06-02 | Advanced Micro Devices, Inc. | Bus arbiter method and system |
US5778200A (en) * | 1995-11-21 | 1998-07-07 | Advanced Micro Devices, Inc. | Bus arbiter including aging factor counters to dynamically vary arbitration priority |
US5802330A (en) * | 1996-05-01 | 1998-09-01 | Advanced Micro Devices, Inc. | Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms |
US5805840A (en) * | 1996-03-26 | 1998-09-08 | Advanced Micro Devices, Inc. | Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority |
US5935232A (en) * | 1995-11-20 | 1999-08-10 | Advanced Micro Devices, Inc. | Variable latency and bandwidth communication pathways |
US5956493A (en) * | 1996-03-08 | 1999-09-21 | Advanced Micro Devices, Inc. | Bus arbiter including programmable request latency counters for varying arbitration priority |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4409656A (en) * | 1980-03-13 | 1983-10-11 | Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of National Defense | Serial data bus communication system |
EP0094140A1 (en) * | 1980-02-11 | 1983-11-16 | Data General Corporation | Data processing system with system bus for transfer of information |
-
1993
- 1993-01-08 WO PCT/US1993/000160 patent/WO1993016434A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0094140A1 (en) * | 1980-02-11 | 1983-11-16 | Data General Corporation | Data processing system with system bus for transfer of information |
US4409656A (en) * | 1980-03-13 | 1983-10-11 | Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of National Defense | Serial data bus communication system |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041271A1 (en) * | 1995-06-07 | 1996-12-19 | Advanced Micro Devices, Inc. | Programmable bus arbiter including real time priority indicator fields for arbitration priority selection |
US5754807A (en) * | 1995-11-20 | 1998-05-19 | Advanced Micro Devices, Inc. | Computer system including a multimedia bus which utilizes a separate local expansion bus for addressing and control cycles |
US5935232A (en) * | 1995-11-20 | 1999-08-10 | Advanced Micro Devices, Inc. | Variable latency and bandwidth communication pathways |
US5778200A (en) * | 1995-11-21 | 1998-07-07 | Advanced Micro Devices, Inc. | Bus arbiter including aging factor counters to dynamically vary arbitration priority |
US5956493A (en) * | 1996-03-08 | 1999-09-21 | Advanced Micro Devices, Inc. | Bus arbiter including programmable request latency counters for varying arbitration priority |
US5761452A (en) * | 1996-03-18 | 1998-06-02 | Advanced Micro Devices, Inc. | Bus arbiter method and system |
US5805840A (en) * | 1996-03-26 | 1998-09-08 | Advanced Micro Devices, Inc. | Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority |
US5802330A (en) * | 1996-05-01 | 1998-09-01 | Advanced Micro Devices, Inc. | Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6496890B1 (en) | Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters | |
US5655151A (en) | DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer | |
US5805927A (en) | Direct memory access channel architecture and method for reception of network information | |
US5828856A (en) | Dual bus concurrent multi-channel direct memory access controller and method | |
US4797815A (en) | Interleaved synchronous bus access protocol for a shared memory multi-processor system | |
US5596729A (en) | First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus | |
US5590299A (en) | Multiprocessor system bus protocol for optimized accessing of interleaved storage modules | |
US7752374B2 (en) | Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices | |
US5528767A (en) | Programmable multi-level bus arbitration apparatus in a data processing system | |
US8095744B2 (en) | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages | |
US20010007999A1 (en) | High-throughput interface between a system memory controller and a peripheral device | |
EP0730235A1 (en) | Improved direct memory access controller having programmable timing | |
JPS6041783B2 (en) | Shared bus system with priority | |
US5948094A (en) | Method and apparatus for executing multiple transactions within a single arbitration cycle | |
WO1993016434A1 (en) | Method and apparatus to reduce computer system bus interleave overhead | |
US20040267992A1 (en) | Look ahead split release for a data bus | |
US5255373A (en) | Decreasing average time to access a computer bus by eliminating arbitration delay when the bus is idle | |
US6748505B1 (en) | Efficient system bus architecture for memory and register transfers | |
USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
JPH11238033A (en) | Bus for information processor, and method and unit for bus control | |
US6327636B1 (en) | Ordering for pipelined read transfers | |
US5931937A (en) | Symmetric parallel multi-processing bus architecture | |
JPH0656602B2 (en) | Priority control system for processors with cache | |
US6240474B1 (en) | Pipelined read transfers | |
JP3240863B2 (en) | Arbitration circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase |