referring now to fig1 the computer system c according to the preferred embodiment is generally shown . the computer system c includes a processor 100 such as a pentium ® or 586 processor by intel or their equivalents . it is understood that other processors could of course be utilized . the processor 100 is connected to a second level or l2 cache 102 and to a memory and l2 cache controller and pci bridge 104 and address and data buffer 106 . the main memory 108 of the computer system c is connected between the memory and l2 cache controller 104 and the address and data buffer 106 . it is understood that the processor 100 , cache 102 , memory and cache controller 104 , address and data buffer 106 and main memory 108 form the processor system and processor to pci bus bridge according to a pci system . it is understood of course that alternate processor systems and high speed bus architectures could be utilized if desired . further , the address buffering could be included in the pci bridge 104 . the pci bridge 104 and address and data buffer 106 are connected to a pci bus 110 which performs the high speed high performance back bone of the computer system c . a pci to isa ( industry standard architecture ) bridge 110 is connected between the pci bridge 110 and an isa bus 114 . a floppy disk controller 116 is connected to the isa bus 114 , as is the system rom ( read only memory ) 118 . additionally , there may be a plurality of isa slots connected to the isa bus 114 for receiving interchangeable cards . the majority of the devices are connected to the pci bus 110 . for example , a scsi or ide ( intelligent drive electronics ) controller 122 is connected to the pci bus 110 and to the associated disk drives and other devices ( not shown ). a network interface card ( nic ) 124 is also connected to the pci bus 110 to allow high performance network connections . further , a video graphics system 126 is connected to the pci bus 110 and to an associated monitor 128 . a fax / modem dsp ( digital signal processor ) 138 can also be connected to the pci bus 110 for fax and modem data processing . as noted , this is an exemplary computer system architecture and is provided for explanation , variations being readily apparent to one skilled in the art . of interest to the present description , a serial bus host controller 130 is also connected to the pci bus 110 . the serial bus host controller 130 of the illustrated embodiment acts as both a host controller and a hub , with various hubs and functions connected to the host bus controller 130 . in the nomenclature of the invention , a &# 34 ; hub &# 34 ; is a device that acts as a wiring concentrator , thus converting a single attachment point into multiple attachment points . a &# 34 ; function &# 34 ; is a device that provides a capability to the computer system c , and a &# 34 ; device &# 34 ; refers generally to hubs or functions . a printer 132 is connected to one port of the serial bus host controller 130 , while an expansion hub 134 providing for further expansion capabilities is connected to a second port . a telephony interface 136 containing the necessary codec and daa components is connected to a third port and also receives a telephone line . the telephone line can be any of the available types such as an analog line , an isdn line , a pbx connection and so on , but for purposes of this description , the telephone line is conveniently an isdn line . in the illustrated embodiment , the monitor 128 further acts as a hub and as a node . the monitor 128 is thus connected to one port of the serial bus host controller 130 . the node or device function of the monitor 128 allows configuration of the monitor 128 independent from the high speed data utilized in the video system 126 . the monitor 128 preferably acts as a hub because of the conventional physical arrangement of a modern computer system . preferably , the system unit which contains the other devices is located under the desk or in a relatively remote location , with only the monitor 128 , a keyboard 140 , a pointing device such as a mouse 142 or pen 144 , a telephone handset 146 , and microphone and speakers relatively accessible to the user . as the monitor 128 effectively forms the central core of this unit , it is logically a proper location for a hub . the telephone handset 146 could be connected to one port of the monitor hub to receive digitized analog information either directly from the telephony interface 136 or as otherwise available , such as from an answering machine or voice mail function . the microphone is part of audio input circuitry 148 which is connected to a second port of the monitor hub , while audio output circuitry 150 contains the speakers used for audio output . the keyboard 140 further acts as a hub itself and a node , in that it is connected to the monitor hub but further contains ports to connect to the mouse 142 and a pen or stylus pointing device interface 144 . this further physical connection is appropriate as those are the primary input devices and they are in most cases generally relatively near the keyboard 140 to ease use or operation . thus it can be seen that the relatively lower data rate operations are connected to the serial bus host controller 130 according to the serial bus system . preferably , the printer 132 is set up and used with higher bandwidth asynchronous block transfers , while the telephony interface 136 , the phone handset 146 and , in most cases , the audio input circuitry 148 and the audio output circuitry 150 are isochronous devices . the keyboard 140 , mouse 142 and pen interface 144 can be treated as polled interrupt devices . in all cases , each one of the particular devices connected over the serial bus system includes control ports and configuration registers which need to be accessed by the processor 100 via the serial bus host controller 130 to allow control and setup of the individual devices . now referring to fig2 logical divisions of the serial bus host controller 130 and the telephone interface 136 are illustrated . the serial bus host controller 130 is shown logically divided into a device software portion 202 , a host interface portion 204 and a system software portion 200 . the device software 202 interacts with the system software module 200 for communicating with the computer system c . the device software 202 interacts with the system software 200 and the host interface 204 to provide host controller services , such as : bus enumeration and configuration ; isochronous data transfers ; asynchronous data transfers ; power management ; and device and bus management functions . the host interface 204 is the hardware layer providing various control and data logic for transferring data over a serial bus cable 206 . the host controller 130 is shown coupled to the isdn telephone interface 136 by the serial bus cable 206 . it is understood that the serial bus is a tiered star topology , and therefore while logically many devices are connected to the serial bus , physically only two devices are connected by a single point - to - point serial bus cable , such as the serial bus cable 206 . the serial bus preferably operates at a 12 mbps clock rate . in the telephone interface 136 a device interface 208 is connected to the serial bus cable 206 for communicating with the host controller 130 on the physical layer . the telephone interface 136 is logically divided into a device software portion 210 and a function portion 212 . the device software 210 interacts with the device interface 208 and the function 212 to transact control and data functions on the telephone interface 136 . an isdn telephone line 214 is connected to the function 212 for isdn communications at clock rate of 64 khz and an effective data rate of 192 kbps with data compression techniques . bus transactions between the host controller 130 and the telephone interface 136 , and other serial bus devices , involve the transmission of packets of data . preferably the packets are developed at the software layers 130 and 210 and transmitted on the serial bus 206 by the hardware layers 204 and 212 . three kinds of packets are supported : token packets ; data packets ; and handshake packets . all transfers over the serial bus begin by issuing a token packet . most transfers are followed by a data packet , which is followed by a handshake packet . turning now to fig3 one particular type of token packet is a start of frame ( sof ) packet 300 . start of frame packets are sent by the host controller 130 preferably every 1 . 0 ms ± 0 . 01 %. the sof packet 300 is received by every device connected to the serial bus , including the telephone interface 136 , for synchronizing the devices to the serial bus clock . thus , the host controller 130 is the clock master with regard to the other serial bus devices . in response to the sof packet 300 , one serial bus device , such as the telephone interface 136 , may issue a handshake or response to the sof packet 300 to command the host controller 130 to modify its clock rate . in this respect , the device responding to the sof packet becomes the clock master over the host controller . for an isochronous device this is particularly important since data is continuous and real - time in creation , delivery and consumption . timing is essential to maintain a steady rate of data at the rate required by the isochronous device , such as the isdn telephone 136 . thus , glitches or delivery delays may cause data loss or buffer overruns or underruns . further , since the isochronous device is clocked independently from the serial bus and a common denominator may not exist , there is further potential for data overruns or underruns as the data rates may be slightly out of synch . for example , the isdn clock rate of 64 khz can be divided by 64 to produce the 1 ms frame period , but it is contemplated that an isochronous device could have a clock rate not divisible as such . further , over a period of time , data overruns or underruns may develop as each clock may drift about its spaced frequency but still within its tolerance range . for asynchronous devices this is generally not a problem , as they have no sample rates as such . however , for certain isochronous devices , such the isdn telephone 136 which receives a very stable clock from the phone line , the isochronous device cannot adjust its data rate to synchronize to the serial bus clock . the differences in the clocks are typically very small , on the order of 0 . 1 %. therefore , by providing a mechanism for adjusting the host controller generated frame rate , the differences in the clock rates can be accounted for and the clocks can be effectively synchronized . the sof packet 300 has a packet identifier ( pid ) field 302 , a time stamp field 304 and a crc checksum field 306 . the first four bits of the pid 302 contain a packet number and the least significant four bits contain a check field to insure reliable decoding of the remainder of the packet the sof packet 300 further contains a time stamp 304 for indicating to all the serial bus devices that a new frame is starting . the time stamp 304 is essentially an 11 - bit clock tick incremented by the host controller every frame to distinguish sequential frames . the crc field 306 provides a check of the time stamp . the sof packet 300 is a token - only packet , meaning that it is not typically followed by a data packet or a handshake packet . there is one exception . the telephone interface 136 provides a sof response or handshake 308 upon receipt of the sof packet 300 to indicate the difference in data rates between the isdn clock and the serial bus clock or to indicate which way to adjust the serial bus clock . the four most significant bits of the sof response packet 308 contain a response code for indicating how much the serial bus frame period is to be modified and the four least significant bits contain a crc check code . by incrementing or decrementing the period of the frame , the data rate of the serial bus can be equalized or synchronized with respect to the data rate of the telephone interface 136 . other formats for the sof response are contemplated to provide an adjustment indication . now referring to fig4 the host controller 130 is shown to include a frame timer 400 for providing a frame tick or end of frame indication which is used for generating the start of frame packet . before each start of frame , the timer 400 receives a load indication for loading a counter value 402 which represents the number of serial bus clocks in a frame , preferably 11 , 999 for a 1 . 0 ms frame . a clock indication is received by the timer for counting down the frame time . the clock indication is preferably at the serial bus clock of 12 mhz , thus , a count of 11 , 999 to zero results in a 1 . 0 ms frame . the response packet 308 provides the response code for adjusting the counter value 402 according to the change in frame time desired . table 1 illustrates one example of counter values and response codes according to conveniently chosen response codes . table 1______________________________________response counter effective % change incode value divisor sof rate______________________________________0xb 0x2edb 11 , 996 + 0 . 0333 % 0xc 0x2edc 11 , 997 + 0 . 02500xd 0x2edd 11 , 998 + 0 . 01670xe 0x2ede 11 , 999 + 0 . 00830xf 0x2edf 12 , 000 0 . 00x0 0x2ee0 12 , 001 - 0 . 00830x1 0x2ee1 12 , 002 - 0 . 01670x2 0x2ee2 12 , 003 - 0 . 02500x3 0x2ee3 12 , 004 - 0 . 0333______________________________________ thus , for each frame a new counter value 402 is loaded into the frame timer 400 based on the response packet 308 . a preferred embodiment of the invention is best described with reference to fig5 a and 5b . turning first to fig5 a , the telephone interface 136 contains a pair of elasticity buffers 504 and 506 which are connected to respective ones of dual ported frame buffers 500 and 502 . as shown , the input frame buffer 500 and elasticity buffer 504 handle input data and the output frame buffer 502 and elasticity buffer 506 handle output data . since data is added and removed from a frame buffer at the same time , preferably the frame buffers 500 and 502 are sized to hold about two frame &# 39 ; s worth of data . the elasticity buffers 504 and 506 are conveniently provided to determine the small variances in the serial bus clock rate and isdn clock rate . since clock differences are normally very small , a 9 - bit elasticity buffer is conveniently adequate . however , other buffer sizes are contemplated . in the foregoing description of buffers 500 and 504 , it is understood that the output buffers 502 and 506 provide the similar functionality , but only operating in a reverse direction . in the operation of the isdn telephone 136 , the input frame buffer 500 receives a data packet each frame from the serial bus host controller 130 at the serial bus data rate . the serial bus data rate with respect to the telephone interface 136 is determined by dividing the number of data bits ( 192 bits ) sent each frame by the frame time period . for example , assuming a frame period of exactly 1 . 0 ms , the serial bus data rate is 192 / 1 . 0 ms , or 192 kbps . thus , if the serial bus clock and the isdn clock are in perfect synchronization , the data rates will be equal and overruns or underruns will not occur . in the preferred embodiment in fig5 a , data is removed from the frame buffer 500 and provided to the elasticity buffer 504 at the serial bus data rate , i . e . 192 bits / frame . the elasticity buffer 504 is preferably a fifo - style buffer and is initialized by conveniently filling the elasticity buffer 504 about half way . for example , for the preferred 9 - bit elasticity buffer , data is clocked into the first 5 bits . thereafter , data is removed from the elasticity buffer 504 at the isdn data rate , i . e . 192 kbps . because the telephone interface 136 is an isochronous device , data is continually being transmitted over the telephone line , thus , the elasticity buffer has a steady stream of data flowing through it . if the data rates are not exactly equal , data will either accumulate or withdraw from the elasticity buffer 504 over several frames . after the elasticity buffer is initialized , at each start of frame the number of data bits remaining in the elasticity buffer is determined . the remaining bits are then compared to the initialized number of bits to generate a response code . for example , the data bits remaining could result in response codes as shown in table 2 . table 2______________________________________ buffer response contents code______________________________________ 0 0xb 1 0xc 2 0xd 3 0xe 4 0xf 5 0x0 6 0x1 7 0x2 8 0x3______________________________________ in table 2 , the response codes are calculated by adding 0xb to the number of bits remaining at each start of frame . for example , if 4 bits remain in the elasticity buffer after a start of frame indication , the response code is 0xe . it is noted that if the number of bits remaining is less than 5 , then the serial bus data rate is slower with respect to the isdn data rate . if the number of bits remaining after a start of frame is greater than 5 , then the serial bus data rate is faster with respect to the isdn data rate . the response code is then provided back to the host controller 130 in the response packet 308 . in an alternative embodiment shown in fig5 b , the response code is determined by the difference in the number of incoming and outgoing data bits of a frame buffer 550 and 552 . a counter 554 counts incoming data bits to the frame buffer 550 and a counter 556 counts outgoing data bits . incoming data is supplied at the serial bus data rate and outgoing data is provided at the isdn data rate . upon receipt of a sof packet , the counts are compared by a comparator 562 to determine the difference in data rates and generate a response code , as for example , the response codes shown in table 2 . the response code is supplied back to the host controller 130 in the response packet 308 . each counter is also reset upon start of frame . it is understood that although counters 558 and 560 and comparator 564 circuitry are not described , they operate in a similar fashion to that of the input buffer circuitry . thus , in this alternative embodiment , the elasticity buffers are effectively included in the frame buffers to provide the same results . considering the above described preferred embodiment , the operation of the sof response packet can best be explained with reference to fig6 a and 6b . fig6 a illustrates a sequence of steps for generating the sof response by the telephone interface 136 . referring briefly to fig2 it is understood that sof response generation is a cooperative effort by the device interface 208 and the device software 210 . however , it is contemplated that the entire effort can be accomplished in the hardware based device interface 208 . the following sequence is described with reference to the input frame buffers of the telephone interface 136 , but it is understood that the output frame buffers operate similarly with an opposite data flow . the sequence starts at step 600 and proceeds to step 602 where the elasticity buffer is initialized . in the alternative embodiment , the counters are initialized , or reset . the sequence then proceeds to step 604 where a bit of data from the elasticity buffer is transmitted according to the isdn transfer rate . the sequence then proceeds to step 606 to determine if a sof packet was received . if not , the sequence returns to step 604 to transfer another bit of data . concurrently with steps 604 and 606 , it is understood that data is being received into the elasticity buffer at the serial bus data rate . the sequence of steps 604 and 606 continue for the entire frame . if at step 606 it is determined that an sof packet is received , then the sequence proceeds to step 608 where the response code is generated according to the above described embodiments . at this point , an entire frame of data has been transferred by the isochronous device . if the serial bus data rate is faster than the isdn data rate , a number of accumulated data bits will appear in the elasticity buffer . if the serial bus data rate is slower than the isdn data rate , the number of initialized data bits in the elasticity buffer will be reduced . for example , if the elasticity buffer was initialized with 5 data bits , locations 0 - 4 , and if after a frame transfer only four data bits remained in the elasticity buffer , then the serial bus data rate is slower than the isdn data rate . in this example , the next bit to be transferred is located in the third bit position and a response code of 0xe is thus generated . after the response code is determined , the sequence proceeds to step 610 where the sof response packet is sent to the host controller 130 in response to the sof packet . next , the sequence returns to step 604 to transmit the next frame of data . fig6 b illustrates a sequence of events for modifying the serial bus frame period . it is understood that the sof packet generation is a cooperative effort by the host interface 204 and the device software 202 . however , it is contemplated that the entire effort can be accomplished in the hardware based device interface 204 . the host controller 130 begins the sequence at step 650 and proceeds to step 652 where a start of frame packet is broadcast to all the serial bus devices . next the sequence proceeds to step 654 where it is determined if a response to the sof packet is received . generally , a response will not be sent by any serial bus device since most serial bus devices use the sof packet to synchronize to the serial bus . however , if an isochronous device with an external clock source is connected to the serial bus , such as the telephone interface 136 , a response may be provided . if at step 654 it is determined that a response was sent , then the sequence proceeds to step 656 where the response code is factored into the count value , as shown in table 1 . for example , if the response code was 0xe , a count value of 11 , 998 would be generated resulting in an effective frame period of 11 , 999 serial bus clock cycles . thus , with respect to the isdn clock rate , the serial bus clock rate has been increased by 0 . 0083 %, thereby increasing the serial bus data rate . the sequence then proceeds to step 658 where it is determined if the frame timer has counted down to the end of frame . if not , the sequence loops at step 658 . if so , the sequence returns to step 652 where the frame timer is loaded with the next count value . it is noted that the response code provided by the telephone interface 136 is not loaded into the frame timer until the next frame , so some delay is inherent . however , because the clock variations are very small and data accumulation or withdrawal with respect to the elasticity buffer builds gradually over many frames , the delay does not negatively impact the ability to counteract the variations . thus , since the telephone interface 136 cannot modify its isdn clock , the telephone interface 136 provides a sof response packet in response to the host controller 130 issued sof packet . thereby , the host controller 130 modifies the frame timing to synchronize the serial bus data rate to the isdn data rate . the foregoing disclosure and description of the invention are illustrative and explanatory thereof , and various changes in the size , shape , materials , components , circuit elements , wiring connections and contacts , as well as in the details of the illustrated circuitry and construction and method of operation may be made without departing from the spirit of the invention .