`
`12. -20·-0)
`
`A} prov
`
`PTO/SB/16 (02-01)
`Approved for use through 10/31/2002 0MB 0651-0032
`Patent and Trademark Office, U S DEPARTMENT OF COMMERCE
`Under the Paperwork Reduction Act of 1995, no persons are required to respond to a col\ectIon of information unless 11 displays a valid 0MB control number
`PROVISIONAL APPLICATION FOR PATENT COVER SHEET
`This is a request for filing a PROVISIONAL APPLICATION FOR PATENT under 37 CFR 1.53 (c).
`I Express Mail Label No. EL696998940US
`
`Given Name (first and middle [if any])
`Edward
`
`Family Name or Surname
`Balassanian
`
`INVENTOR(S)
`
`Residence
`(Citv and either State or Foreign Country)
`Redmond, Washington
`
`:!
`
`~ ·-
`
`0 Additional inventors are being named on the
`separately numbered sheets attached hereto
`TITLE OF THE INVENTION (280 characters max)
`STRINGS SYNCHRONIZATION MODEL
`
`CORRESPONDENCE ADDRESS
`
`Direct all correspondence to:
`
`~ Customer Number
`
`OR
`
`I
`
`25096
`Type Customer Number here
`
`I
`
`(cid:141)
`
`I llllll lllll lllll llll lllll llll llll
`25096
`
`PATENT TRADEMARK OFFICE
`
`(cid:143)
`
`Firm or
`Individual Name
`
`I Perkins Coie LLP
`ENCLOSED APPLICATION PARTS (check all that apply)
`121 Specification Number of Pages
`0 Drawing(s) Number of Sheets
`D Application Data Sheet. See 37 CFR 1.76
`
`3
`
`0 CO(s), Number
`12] other ( specify) Postcard
`
`METHOD OF PAYMENT OF FILING FEES FOR THIS PROVISIONAL APPLICATION FOR PATENT
`121 Applicant claims small entity status. See 37 CFR 1.27.
`121 A check or money order is enclosed to cover the filing fees
`~ The Commissioner is hereby authorized to charge additional filing
`fees or credit any overpayment to Deposit Account No. 50-0665.
`(cid:143) Payment by credit card. Form PTO-2038 is attached.
`
`FILING FEE
`AMOUNT($)
`
`$80.00
`
`and the Government contract number are: __
`
`.
`
`""
`
`Date
`
`_
`
`I
`
`I December 17, 2001
`REGISTRATION NO. I 33,273
`(If appropriate}
`Docket Number: I 29451-8013US
`USE ONLY FOR FILING A PROVISIONAL APPLICATION FOR PATENT
`This collect,on of information 1s required by 37 CFR 1.51 The mfonnabon 1s used by the public to file (and by the PTO to process) a provisional application
`Conf1dent1ahty ,s governed by 35 USC 122 and 37 CFR 1 14 This collecbon ,s esllma!l!d to take 8 hours to complete, mclud1ng gathenng, prepanng, and subm1ttmg
`the complete prov1s1onal applicabon to the PTO Time will vary depend mg upon the md1v1dual case Any comments on the amount of bme you require to complete this
`form and/or suggestions for reducing tilts burden, should be sent to the Chief Information Qff,cer, U S Patent and Trademark Office, U S Department of Commerce,
`
`Washington, DC, 20231 DO NOT SEND FEES OR COMPLETED FORMS TO THIS ADDRESS SEND TO. Box Provisional App\icat1on, Comm1ss1oner for Paten!S,
`Washington, D C 20231
`
`The invention was made by an agency of the United States Government or under a contract with an agency of
`the United States Government.
`~ No.
`0 Yes, the name of the U.S. Governme~cy
`1/_' " ~
`
`Respectfully submi~~
`SIGNATURE
`'
`'
`I
`
`TYPED or PRINTED NAME =M=a=u=ri=c~e~J .....
`
`'--P-in=·o ______
`
`.......i-.
`
`TELEPHONE
`
`(206) 583-8888
`
`
`PAGE 1 OF 4
`
`SONOS EXHIBIT 1008
`IPR of U.S. Pat. No. 8,942,252
`
`
`
`• '
`
`EXPRESS MAIL NO. EL696998940US
`
`BeComm Corporation
`
`Strings Synchronization Model
`
`Synopsis
`
`This document describes a collection of beads and conventions developed to support
`multi-host synchronization in Strings.
`
`Overview
`
`The synchronization model consists of the following components:
`
`i)
`
`ii)
`
`iii)
`
`An inter-host clock monitoring protocol, implemented in timesync, which
`determines the relative system-clock offset for each synchronized host.
`A sample-clock implementation (sampleclock), which distributes stream(cid:173)
`position information across all cooperating hosts. Each playout node has a
`'master' clock, which records the idealized playout position, and a 'render'
`which records the actual playout position. The clocksync bead provides a
`mechanism for propagating the path clocks across network boundaries, using
`data collected by timesync to convert remote system clock values into local
`system clock values.
`A media-specific mechanism for adjusting the playout rate of a given media
`type. For rgb video, the rghvideo times frame deliver based on the master
`clock, and sets the render clock. For pcm audio, the speaker bead sets the
`render clock, and the audiosync bead adjusts the playout rate of the sample
`stream to try to minimize the error between the master and render clocks.
`
`One playout node is identified as the time master. For simple audio/video playout,
`generally the master will be the audio stream, since audio playout rates are effectively
`regulated by the consumption rate of the audio output device.
`
`The master clock for synchronized streams is a reference to the single render clock for
`the master time source. Thus, the time master's clocks will match. All other streams
`vary playout rate to try to minimize the error between the render and master clocks.
`
`Rate Adjustment
`
`Consumer
`
`Master Clock
`
`-1-
`
`Render Clock
`
`PAGE 2 OF 4
`
`SONOS EXHIBIT 1008
`IPR of U.S. Pat. No. 8,942,252
`
`
`
`•
`
`TimeSync
`The TimeSync bead is used to create a database of clock offsets for all strings machines
`on the network. The protocol used to estimate clock offsets is based on the NTP
`protocol.
`
`Periodically, each host broadcasts the current time, plus a list of all known remote hosts.
`The broadcast includes:
`1. A psuedo-random host identifier,
`2. The local system time at the time of sending.
`
`For remote hosts known by the sender, the broadcast also includes:
`1. The unique identifier of the remote host,
`2. The send time from the most recently received broadcast from that host.
`3. The local system time when the most recent broadcast was received.
`
`Computation of inter-host clock offset occurs whenever a broadcast is received from a
`remote host containing a host entry for the local host. Timing is derived from the round(cid:173)
`trip consisting of a prior broadcast from the local machine (BO) followed by the remote
`machines broadcast (Bl) which includes values from BO.
`TO is local time when BO was sent,
`Tl is the remote time when BO was received,
`T2 is the remote time when B 1 was sent,
`T3 is the local time when B 1 was received.
`
`We want to compute an estimation for Toffset, such that Tremote + Toffset = Tlocal.
`Network latency is unknown and variable.
`LO is the latency for BO,
`L 1 is the latency for B 1.
`such that
`Tl+Toffset =TO+ LO
`T2+Toffset = T3 - Ll
`
`From this we can determine bounds for Toffset:
`(Tl+Toffset) >= TO
`T2 >=Tl
`T3 >== (T2+Toffset)
`
`And so:
`Toffset > TO-Tl
`Toffset < T3 - T2
`Since we have no way to devolve the effects of LO and LI, we assume they are
`approximately equal, and so
`Toffset ~= ( (T3-T2)- (TO-Tl))/ 2
`
`Since latency does vary substantially over time, we reduce the error by averaging
`subsequent observations. Currently timesync uses the average of the last 8 observations.
`
`~2-
`
`
`PAGE 3 OF 4
`
`SONOS EXHIBIT 1008
`IPR of U.S. Pat. No. 8,942,252
`
`
`
`·>
`
`Related Issues
`
`Use of Durable Values
`To minimize the effects of latency on synchronization accuracy, all shared information is
`exchanged in terms of stationary or durable values - i.e. values that do not change rapidly
`over time, and do not assume instantaneous delivery. For example, sample clocks are
`computed from the following information:
`
`1. The local system clock value at which the stream position was recorded,
`2. The sample position at that time,
`3. The nominal frequency at which the sample count is expected to be progressing.
`
`From these three values the current playout position of a remote stream can be estimated
`based on the most recently received sample clock information. Assuming the actual
`playout rate is close to the nominal playout rate, the accuracy of the estimate does not
`degrade greatly with increased delivery latency. Use of this principal greatly increases
`the robustness of the synchronization model.
`
`Clock Uncertainty
`The following types of timing uncertainties complicate synchronization:
`1. System clock values between machines may have a large relative offset, and a
`small drift relative to each other.
`2. Output devices do not necessarily consume media at exactly the correct rate. The
`output rate for audio is typically regulated by a DSP clock, not the system clock,
`and there may be substantial differences between them.
`
`-3-
`
`
`PAGE 4 OF 4
`
`SONOS EXHIBIT 1008
`IPR of U.S. Pat. No. 8,942,252
`
`