This invention generally relates to a digital bus multiplexer for controlling separate devices connected to a host controller, whereby devices can be selectively connected and/or isolated from the digital bus.
Configurations and methodologies for interconnecting a controller with one or more peripheral devices, via a common digital bus are generally known. “Controller”, as used herein, generally refers to a device that controls the transfer of data between a computing device and a peripheral device. A controller is sometimes called a “host”. “Computing device”, as used herein, generally refers to a programmable machine that responds to a specific set of instructions in a predictable manner and executes a prerecorded list of such instructions (e.g., a program or software). A computing device generally includes a processor, which generally include a Central Processing Unit (CPU). A CPU generally includes an arithmetic logic unit (ALU) that performs arithmetic and logical operations, and a control unit that extracts instructions (e.g., a program) from memory and decodes and executes them, calling on the ALU when necessary. Non-limiting examples of computing devices include personal computers and set-top boxes. Non-limiting examples of set-stop boxes include satellite and cable television receivers, and personal video recorders (PVRs). Set-top boxes typically further include conventional decoders for decoding data indicative of multimedia content. “Peripheral device” (or “device”), as used herein-below, generally refers to a machine or component that attaches to a computing device. Non-limiting examples of devices include disk drives (e.g., optical disc drives such as compact disc drives, DVD drives, and hard-drives), display screens, keyboards and printers. “Bus”, as used herein, generally refers to a digital bus or collection of electrical conductors through which signals indicative of data are transmitted.
Referring now to
Referring now also to
Referring now to
In some applications this may not be considered a significant drawback. However, in applications where data such as multimedia content is to be streamed to and/or from the devices 40, 40′, this drawback can limit data throughput and cause data being written to one device 40, 40′ to be lost, in the event problems arise with respect to the other device 40, 40′. This drawback may be exacerbated where different multimedia content is to be streamed simultaneously. For example, a scratch on a DVD disc being read by an optical drive may lead to a delayed reading from a hard disk drive connected to a common bus, as the bus is tied up by the optical drive longer than may have been anticipated.
A device and method that addresses the shortcomings of the prior art, and enables multiple devices coupled to a common host to operate in parallel, is desirable
According to an aspect of the present invention, as apparatus includes a first peripheral device coupled to a digital bus; a second peripheral device coupled to the digital bus; a controller coupled to the first and second peripheral devices via the digital bus, the digital bus including first and second switches disposed between the controller and the first and second peripheral devices, respectively, the controller controlling the state of the first and second switches, the controller transmitting to and receiving data from the first and second peripheral devices via the digital bus and the first and second switches, the controller isolating a selected one of the first and second peripheral devices by controlling the state of an associated one of the first and second switches when data is not being transmitted to or received from the selected one of the first and second peripheral devices.
According to another aspect of the present invention, a method for operating a plurality of peripheral devices coupled to a digital bus comprises selecting one of the devices, wherein the selecting reserves the bus for use with the selected device; releasing the bus from the selected device while the selected device executes at least one command, thereby enabling another device to communicate via the bus; re-acquiring the bus, wherein the re-acquiring reserves the bus for use with the selected device; transferring data associated with the executed at least one command via the bus; and, de-selecting the device, thereby releasing the bus.
According to another aspect, an apparatus comprises a controller; an optical disk drive; a hard disk drive; and a switch coupled to the controller and switchably coupled to the optical disc drive and the hard disk drive; wherein the switch selectively isolates one of the optical disc drive and hard disk drive from the controller during execution of a command by the one of the optical disc drive and hard disk, to enable controller communications with the other of the optical disc drive and hard disk drive in parallel with the command execution.
Understanding of the present invention will be facilitated by consideration of the following detailed description of the preferred embodiments of the present invention taken in conjunction with the accompanying drawings, wherein like numerals refer to like parts and:
It is to be understood that the figures and descriptions of the present invention have been simplified to illustrate elements that are relevant for a clear understanding of the present invention, while eliminating, for purposes of clarity, many other elements found in typical hosts, buses and devices. Those of ordinary skill in the art will recognize that other elements are desirable and/or required in order to implement the present invention. However, because such elements are well known in the art, and because they do not facilitate a better understanding of the present invention, a discussion of such elements is not provided herein. The disclosure herein is directed to all such variations and modifications to such elements and methods known to those skilled in the art.
Referring again to
Referring now also to
According to an aspect of the present invention, multiple instantiations of methodology 100 may be simultaneously executed. For example, in a first instantiation, processes 151, 152, 153 and 110 may be employed—such that a first selected device is triggered to employ process 154. While process 154 is being employed by the first selected device, a second instantiation of processes 151, 152, 153 and 110 may be employed—such that a second selected device is triggered to employ process 154. While process 154 is being employed by the second selected device, the first instantiation of processes 120, 155 and 156 maybe employed. Thereafter, the second instantiation of processes 120, 155 and 156 maybe employed. Thus, multiple devices may operate in parallel, with a common host and common bus. It is to be understood that parallel operation does not necessarily require that command execution occur simultaneously or concurrently over the entire duration, but merely parallel processing associated with the devices.
Referring now also to
Logic implementation 525 may take the form of hardware, such as an application specific integrated circuit (ASIC) and/or software (e.g., one or more programs) stored in a computer readable medium (e.g., a memory) suitable for execution by a controller or device integrated processor. Logic implementation 525 may take the form of a combination of hardware and software, such as firmware, for example. Medium 560 may take the form of any standard interface medium suitable for passing data and commands between controller 520 and multiplexer 550. Medium 560 may take the form of a plurality of electrically conductive wires analogous to a bus, for example. While configuration 500 is suitable for employing methodology 100, as will be understood by those possessing an ordinary skill in the pertinent arts, other configurations may of course be used.
Multiplexer 550 may take the form of hardware, such as an application specific integrated circuit (ASIC) and/or software (e.g., one or more programs) stored in a computer readable medium (e.g., a memory) suitable for execution by a processor. Such a processor may be integrated into a circuitry package that also includes conventional pin connections, for example. Multiplexer 550 may be coupled to buses 530, 530′ in a conventional manner, analogous to controller 20 (
Referring now to
As shown is
Referring now also to
When no device error is to be reported (process 622), device 540, when ready to transfer a data block, sets DRQ=1 in the status register (process 630). Thereafter, the device clears the busy indicator by setting BSY=0 in the status register (process 632). Device 540 then checks the nIEN bit in the control register to see if interrupts are enabled in the device 540 (process 634). If the nIEN bit is determined to be set to zero (process 632), device 540 asserts an interrupt request (e.g., sets field INTRQ) (process 636). Thereafter, host 520 again acquires the bus multiplexer 550 for device 540 (process 638), and reads the status register (process 640). Device 540 then negates the interrupt request (e.g., resets INTRQ) (process 642), and host 520 reads the data register (process 644) corresponding to device 540.
Device 540 then determines whether a block transfer corresponding to the data request (DRQ) has occurred (process 646). If such a transfer has not occurred, processing returns to process 644 until the block transfer is determined to have occurred. Once the transfer has been determined to have occurred (process 646), host 520 releases bus multiplexer 550 for use with other devices (process 648).
If the nIEN bit is determined to be set to 1 (process 632), host 520 acquires bus multiplexer 550 (process 650). Host 520 then reads the alternate status register, but disregards the results (process 652). As will be understood by those possessing an ordinary skill in the pertinent arts, this prevents a polling host from reading the status register before it is valid. Thereafter, host 520 reads the status register (process 654), and determines whether device 540 is busy and whether data is available for transfer by determining the value of the BSY and DRQ bits (process 656).
If device 540 is not busy (BSY=0) and data is available for transfer (DRQ=1), processing continues with process 644 described above. If device 540 is busy (BSY=1), or if data is not available for transfer (DRQ=0), then host 520 releases bus multiplexer 550 (process 658). After some period of time, host 520 reacquires bus multiplexer 550 for device 540 (process 660) and processing continues with process 654.
Referring now to
Referring still to
If all data has not been transferred (process 678), device 540 sets the device busy indicator (BSY=1) (process 686) and resets the data request indicator (DRQ=0). Thereafter, processing continues with step 622 (off page indicator A,
Referring now also to
More particularly, configuration 1000 includes a plurality of switches 1010, 1010′ communicatively interposed between ATA specification compliant interface pin configurations 1020 and 1030, 1030′. Pin configuration 1020 is largely analogous to a conventional ATA controller pin configuration, with the exception of pin 32 used to provide the HDD_NODD signal, duplicative interrupt request (INTRQ) signals being provided on pins 31 and 39, and duplicative reset (RESET) signals being provided on pins 1 and 29. Pin configuration 1020 may be coupled to switches 1010, 1010′ in an analogous manner as a conventional ATA host is coupled to conventional ATA devices (see, e.g.,
Switches 1010, 1010′ may each take the form of 24-bit bus exchange switches commercially available from Integrated Device Technology, Inc., under the model designation IDTFST163212. The HDD_NODD signal may be provided on the S1 control pin of each such integrated device. The S0 control pin of each switch is provided with a +5V signal. The S2 control pin of each switch is grounded. Additionally, pins 8 (GNTD), 19 (GND), 38 (GND) and 49 (GND) of each such device are grounded. The bus pins from pin configuration 1020 are communicatively coupled to the B bus pins of each switch.
Pin configurations 1030, 1030′ maybe largely analogous to conventional ATA device pin configurations. The ATA signals D15-D0, DIOR, DIOW, DA0-DA2, CS0-CS1, and IORDY may be arbitrarily spread across the two twelve-bit wide switches 1010, 1010′. In the illustrated case, device pin configuration 1030 is associated with a hard disk drive (HDD) and device pin configuration 1030′ is associated with an optical disc drive (ODD). The hard disk reset signal (HDD_RESET) provided on pin 1 of configuration 1020 is coupled to pin 1 of configuration 1030. Analogously, the optical disc drive reset signal (ODD_RESET) provided on pin 29 of configuration 1020 is provided on pin 1 of configuration 1030′. Further, the hard disk drive interrupt request signal (HDD_INTRQ) provided on pin 31 of configuration 1030 is provided on pin 31 of configuration 1020. The optical disc drive interrupt request signal (ODD_INTRQ) provided on pin 31 of configuration 1030′ is provided on pin 39 of configuration 1020. The bus pins of configuration 1030 are coupled to the A2 bus pins of switches 1010, 1010′. The bus pins of configuration 1030′ are coupled to the A1 bus pins of switches 1010, 1010′. The hard disk drive input/output (I/O) read (HDD_DIOR) signal on pin 25 and hard disk drive input/output (I/O) write (HDD_DIOW) signal on pin 23 of configuration 1030 are coupled to the A2 bus connection of switches 1010′, 1010′. While the optical disc drive input/output (I/O) read (ODD_DIOR) signal on pin 25 and optical disc drive input/output (I/O) write (ODD_DIOW) signal on pin 23 of configuration 1030′ are coupled to the A1 bus connection of switches 1010, 1010′.
In such a configuration, a low HDD_NODD state selects the device pin configuration 1030′ and a high HDD_NODD state selects the device pin configuration 1030.
According to an aspect of the present invention, an application specific integrated circuit (ASIC) for coupling the additional signals (e.g., duplicative reset and interrupt request signals and the HDD_NODD signal) onto an ATA standard pin configuration may be provided. Such an ASIC may optionally incorporate the switches, as well as other conventional components used in ATA compliant coupling, such as resistors.
It will be apparent to those skilled in the art that modifications and variations may be made in the apparatus and process of the present invention without departing from the spirit or scope of the invention. It is intended that the present invention cover the modification and variations of this invention provided they come within the scope of the appended claims and their equivalents.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US05/38755 | 10/25/2005 | WO | 4/27/2007 |
Number | Date | Country | |
---|---|---|---|
60622975 | Oct 2004 | US |