`
`
`
`01d‘S'n£193!
`
`|._a
`1—3
`\3
`
`\[
`
`w\K
`
`O
`co
`
`
`
`Provisional Application Cover Sheet
`
`This is a request for filing a PROVISIONAL APPLICATION under 37 CFR l.53(b)(2).
`
`
`
`BOX PROVISIONAL
`APPLICATION, ASSISTANT
`COMMISSIONER FOR PATENTS,
`WASHINGTON, DC. 20231
`
`Docket Number
`1001-0080—V-US
`
`Type a plus sign (+)
`inside this box
`
`INVENTOR(S) APPLICANT(S)
`
`at g.*
`
`LAST NAME
`
`FIRST NAME
`
`(City and Either State or Foreign Country)
`Austin, Texas
`Austin, Texas
`Austin, Texas
`Austin, Texas
`
`TITLE OF THE INVENTION 7
`280 Characters Maximum a
`
`“COMPUTER COMIVIUNICATION LINK”
`
`CORRESPONDENCE ADDRESS
`
`Please mail all correspondence concerning this application to:
`
`Mark Zagorin
`Zagorin, O'Brien & Graham, L.L.P.
`1120 South Capital of Texas Hwy.
`Building 3, Suite 208
`Austin, TX 78746—6460
`
`Tel.: (512) 347-9030
`Fax: (512) 347—9031
`
`(USA
`
`S ENCLOSED APPLICATION PARTS (Check airman apply)
`
`Specification
`
`Claims
`
`Drawings
`
`Small Entity Statement
`
`Other: (Specify)
`
`Number of Pages
`
`69
`
`Number of Pages __45_
`
`Number of Sheets ___3Q
`
`METHOD OF PAYMENT (Check one)
`
`credit Deposit Account Number101-03 65 Large Entity $150
`
`gigggéglgAL
`
`AMOUNT
`
`D Small Entity $75
`
`
`
`E] 112::“1‘ ormoney orderis enclosed to cover the Provisional filing
`
`E The Commissioneris hereby authorized to charge filing fees and
`
`The invention was made by an agency of the United State Government or under a contract with an agency of the United States
`Government.
`
`ENO
`D Yes, the name of the U.S. Government agency and the Government contract number are:
`
`Respectfully submitteMe%
`Signature: ‘g; 2/ 31:55::
`
`Date: November 23, 1998
`
`Typed or Printed Name: Mark Zagorin
`
`Reg. No. 36,067
`
`E]
`
`Additional inventors are being named on separately numbered sheets attached hereto.
`
`PROVISIONAL APPLICATION FILING ONLY
`EXPRESS MAIL LABEL NO:
`EL151293014US
`
`SAMSUNG
`
`EX 1005, PAGE 1
`
`SAMSUNG
`EX 1005, PAGE 1
`
`
`
`Attorney Docket No.2
`
`1001-0080-V—US
`
`“Express Mail” mailing label number: ELlSlE‘lEUlHUS
`
`COMPUTER COMMUNICATION LINK
`
`Dale E. Gulick
`
`Larry D. Hewitt,
`Alfred Hartmann,
`
`Geoffrey SS, Strongin
`
`Related Applications
`
`
`
`
`This application relates to co-pending application serial no. 09/099,227, filed
`
`June 17, 1998, entitled METHOD OF MODE CONTROL IN A BUS OPTIMIZED
`
`FOR PERSONAL COMPUTER TRAFFIC, by Larry Hewitt; co-pending application
`
`serial no. 09/098,874, filed June 17, 1998, entitled BUS OPTIMIZED FOR
`
`PERSONAL COMPUTER TRAFFIC, by Larry Hewitt and Dale E. Gulick; co~
`
`pending application serial no. 09/098,360 filed June 17, 1998, entitled COMPUTER
`
`WITH HIGH VELOCITY—LOW PIN COUNT NORTH BRIDGE SOUTH BRIDGE
`
`LINK, by Larry Hewitt and Dale E. Gulick; co-pending application serial no.
`
`09/098,228 filed June 17, 1998, entitled CPU—NORTH BRIDGE INTEGRATION
`
`UTILIZING AN INTERCONNECTION BUS PROVIDING A HIGH SPEED-LOW
`
`PIN COUNT LINK by Dale E, Gulick and Larry Hewitt; and co—pending application
`
`serial no. 09/098,876 filed June 17, 1998, entitled WRITE ONLY BUS WITH
`
`WHOLE AND HALF BUS MODE OPERATION, by Larry D. Hewitt; which
`
`applications are incorporated herein by reference in their entirety.
`
`10
`
`15
`
`20
`
`BACKGROUND OF THE INVENTION
`
`Field of the Invention
`
`The invention relates to computer systems and more particularly to a computer
`
`system having a high speed communication link having multiple pipes (channels)
`
`25
`
`operating on the communication link.
`
`FINALAPP 0080
`Client Reference:
`
`'l'I'2704-PROV
`
`SAMSUNG
`
`EX 1005, PAGE 2
`
`SAMSUNG
`EX 1005, PAGE 2
`
`
`
`Attomey Docket No.:
`
`lOOl-OOSO—V-US
`
`Description of the Related Art
`
`Traditional personal computer architectures partition the computer system into
`
`the various blocks shown in the exemplary prior art system illustrated in Fig. 1. One
`
`central feature of this prior art architecture is the use of the Peripheral Component
`
`5
`
`Interface (PCI) bus 101 as the connection between the “north bridge” integrated
`
`circuit 103 and the “south bridge” integrated circuit 105. The north bridge functions
`
`generally as a switch connecting CPU 107, a graphics bus 109 such as the Advanced
`
`Graphics Port (AGP) bus, the PCI bus and main memory 111. The north bridge also
`
`contains the memory controller function.
`
`10
`
`The south bridge generally provides the interface to the input/output (I/O)
`
`portion of the system with the possible exception of video output as illustrated in
`
`Figure 1. Specifically, the south bridge 105 provides a bridge between the PCI bus
`
`and legacy PC—AT (Advanced Technology) logic. The south bridge also provides a
`
`bridge to the legacy ISA bus 115, the Integrated Device Electronics (IDE) disk
`
`15
`
`interface 117 and the Universal Serial Bus (USB) 119. In the illustrated prior art
`
`architecture, PCI bus 101 also functions as the major input/output bus for add—in
`
`functions such as network connections. The various busses and devices shown in
`
`Figure 1 are conventional in the personal computer industry and are not described
`
`further herein unless necessary for an understanding of the present invention.
`
`
`
`
`20
`
`In current and future personal computer systems, two basic types of data are
`
`transferred between integrated circuits: isochronous data and asynchronous data.
`
`Isochronous data refers to data used in real-time data streams such as audio data or
`
`motion—picture video data. Asynchronous data is used for all other transfers, such as
`
`central processing unit (CPU) accesses to peripherals or bulk data transmissions from
`
`25
`
`a hard drive into system memory.
`
`The PCI bus causes a lack of determinism in the system because any function
`
`on the PCI bus can become master of the bus and tie up the bus. Thus, the throughput
`
`available on the bus for a particular transfer and the latency that is involved for that
`
`transfer is unknown. Therefore, having a PCI bus as the major input/output bus
`
`30
`
`means that the major input/output bus of present day computer systems does not
`
`provide proper support for both isochronous and asynchronous data. If a computer
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`-2-
`
`SAMSUNG
`
`EX 1005, PAGE 3
`
`SAMSUNG
`EX 1005, PAGE 3
`
`
`
`Attorney Docket No:
`
`lOOl-OOSO-V-US
`
`system gives asynchronous data priority or treats isochronous data as asynchronous
`
`data, then those functions relying on real time data, such as motion-picture video, may
`
`not function satisfactorily. Alternatively, if a computer system prioritizes isochronous
`
`data, then the performance of the computer system can suffer since the latency of
`
`asynchronous data may become unacceptably long. As computer systems are called
`
`on to perform more and more real time activity, such as real time Video, it becomes
`
`more critical that asynchronous and isochronous data be treated in a manner that
`
`prevents problems from occurring in the real time tasks without adversely effecting
`
`other aspects of computer performance.
`
`10
`
`In addition, levels of integration continue to increase on as the number of
`
`functions integrated onto the integrated circuits of computer systems increases, the
`
`need for additional pins also increases. Supporting the host bus, the memory
`
`interface, the PCI bus and a graphics interface results in a north bridge integrated
`
`circuit having a relatively large number of pins that is relatively unpopulated in terms
`
`15
`
`of the number of transistors on the integrated circuit. The large number of pins
`
`requires the integrated circuit to be larger than would otherwise be necessary and
`
`therefore increases costs.
`
`It would be desirable therefore, to have a deterministic high speed major
`
`interconnect bus. It would also be desirable to reduce the pressure for additional pins
`
`2O
`
`on the integrated circuits making up the computer system.
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention may be better understood, and its numerous objects,
`
`features, and advantages made apparent to those skilled in the art by referencing the
`
`accompanying drawings.
`
`25
`
`Fig. 1 shows an exemplary prior art personal computer system.
`
`Fig. 2 shows a block diagram illustrating the pipe structure according to one
`
`embodiment of the present invention.
`
`Fig. 3 is a high level block diagram of a portion of an exemplary personal
`
`computer system that utilizes the communication link described herein.
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`-3-
`
`SAMSUNG
`
`EX 1005, PAGE 4
`
`SAMSUNG
`EX 1005, PAGE 4
`
`
`
`Attorney Docket No:
`
`lOOl-OOSO—V—US
`
`Fig. 4 shows an exemplary data bus and the interfaces of the communication
`
`link in greater detail.
`
`Fig. 5 illustrates the link layer, protocol layer and physical layer of the
`
`communication link.
`
`5
`
`Fig. 6 shows an exemplary address map for the processor module-interface
`
`module for an 'X86 environment utilizing an embodiment of the present invention.
`
`Figs. 7A - 7L show the packets used in various link transactions.
`
`Fig. 8 shows a flow diagram for determining a no tags free error condition.
`
`Fig. 9 shows one implementation of a circuit to detect the no tags free error
`
`10
`
`condition.
`
`Fig. 10 shows common pipe configurations used in various embodiments of
`
`the present invention.
`
`Fig. 11 shows a point to point pipe configuration.
`
`Fig. 12 illustrates a flow diagram of a write transaction across the link.
`
`15
`
`Fig. 13 illustrates a target distributor pipe configuration.
`
`a? r
`- n
`
`
`
`
`
`Fig. 14 illustrates a flow diagram of a read transactions across the link.
`
`Fig. 15 illustrates a source distributor pipe configuration.
`
`Fig. 16 illustrates a target concentrator pipe configuration.
`
`Fig. 17 illustrates a flow diagram of an interface module read transaction to
`
`20 memory.
`
`Fig. 18 illustrates the use of subordinate links in a computer system.
`
`Fig. 19 illustrates a pipe structure and associated functions of a typical
`
`computer system.
`
`FlNALAPP 0080
`Client Reference: TT2704—PROV
`
`SAMSUNG
`
`EX 1005, PAGE 5
`
`SAMSUNG
`EX 1005, PAGE 5
`
`
`
`Attorney Docket No.:
`
`lOOl-OO80-V-US
`
`Fig. 20 illustrates one implementation of the protocol layer transmit circuit.
`
`Fig. 21 illustrates one implementation of the protocol layer receive circuit.
`
`Fig. 22 illustrates a pipe source circuit structure.
`
`Fig. 22A illustrates a pipe source circuit structure that includes a pass through
`
`Fig. 23 illustrates a non-concentrated pipe target circuit structure.
`
`Fig. 23A illustrates a pipe target circuit structure that includes a pass through
`
`5
`
`queue.
`
`queue.
`
`
`
`it};
`
`
`
`Fig. 24 illustrates a concentrated pipe target circuit structure.
`
`10
`
`Fig. 25 shows a block diagram of a target distributor and its connections to
`
`common logic and to functions.
`
`Fig. 26 illustrates additional logic used in the target concentrator to map
`
`accesses to appropriate functions.
`
`Fig. 27 illustrates the software structure for the capabilities pointer.
`
`15
`
`Fig. 28 illustrates the basic configuration structure and register addressing
`
`strategy of a typical system according to one embodiment of the present invention.
`
`Fig. 29 illustrates a type 1 (bridge) header.
`
`Fig. 30 illustrates a type 0 (function) header.
`
`Fig. 31 illustrates the upstream and downstream link registers used for link
`
`20
`
`bridges.
`
`The use of the same reference symbols in different drawings indicates similar or
`
`identical items.
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`SAMSUNG
`
`EX 1005, PAGE 6
`
`SAMSUNG
`EX 1005, PAGE 6
`
`
`
`
`
`
`Attorney Docket No.: 1001-0080-V-US
`
`DESCRIPTION OF THE PREFERRED EMBODIMENT§SI
`
`Fig. 2, illustrates a generic system according to one embodiment of the present
`
`invention. The system includes module 201 and module 203 coupled by high speed
`
`link 205. High speed link 205 is in one embodiment a 10W pin count high speed point
`
`to point bus (generally referred to herein as a "link" to distinguish the point to point
`
`interconnect bus from a multi—drop bus) one example of which is described in
`
`application no. 09/098,874, entitled BUS OPTIMIZED FOR PERSONAL
`
`COMPUTER TRAFFIC, previously incorporated herein by reference. The term
`
`"interconnect bus“ is also used herein interchangeably with "link“ to avoid confiision
`
`when discussing the “link layer" of the communication link. Link 205 has a plurality
`
`of pipes 207 — 211. Each pipe (or channel), couples a function in module 201 to a
`
`function in module 203. Each pipe has a source end and a target end. For example,
`
`source end 215 of pipe 207 couples function A on module 201 to the target end 221 of
`
`pipe 0. The target end 221 of pipe of pipe 0 is in turn coupled to function D on
`
`module 203, thereby providing a path between function A and function D.
`
`A function is a circuit that provides a specific function in the computer system.
`
`For example, a CPU and memory controller on a processor module are examples of
`
`functions. A PCI bridge and 1394 host controller are further examples of functions on
`
`an interface module. A function can have any combination of target and source pipes.
`
`For example, in an exemplary system, the memory controller may only have targets,
`
`the CPU may only have sources, and the PCI bridge may have both.
`
`Each pipe source and pipe target communicate over bus 205 on a packet
`
`multiplexed basis using packets uniquely associated with the respective pipe. Before
`
`various aspects of the pipe architecture is examined in greater detail, certain details of
`
`exemplary bus 205 will be discussed to provide the appropriate context for use of the
`
`pipes.
`
`One way to achieve high speed is to utilize a point—to-point bus in which only
`
`two devices are present on the bus. A point-to-point bus can inherently run at higher
`
`speeds than a multi-drop bus such as the PCI bus since a point—to—point link has
`
`reduced electrical loading and reduced noise caused by reflections at tap points such
`
`as connectors. It is possible to provide a point to point link that operates at, e. g., 25
`
`FINALAPP 0080
`Client Reference: TT2704—PROV
`
`-6—
`
`10
`
`15
`
`20
`
`25
`
`30
`
`SAMSUNG
`
`EX 1005, PAGE 7
`
`SAMSUNG
`EX 1005, PAGE 7
`
`
`
`Attorney Docket No: 1001 -0080-V-US
`
`times the speed of the PCI bus. Given this, a 32-bit wide PCI bus can be replaced by
`
`a 16—bit (or even an 8-bit link) while still adding significant bandwidth.
`
`Referring to Fig. 3, a portion of a typical personal computer system is shown
`
`which utilizes link 205 to communicate between two integrated circuits 301 and 303.
`
`The computer system includes processor module 301 and interface module 303.
`
`Processor module 301 includes an link interface 305 which is coupled to link interface
`
`307 in interface module 303. Bus 205 provides guaranteed bandwidth and latency to
`
`each isochronous stream such as RAMDAC data, audio data, and 1394 isochronous
`
`streams while also attempting to minimize latency to asynchronous accesses such as
`
`10
`
`CPU-initiated accesses and POI—initiated accesses.
`
`One feature of the architecture shown in Fig. 3 is that the PCI bus no longer
`
`functions as the primary interface between the processor/memory controller and
`
`input/output filnctions. Link 205 has replaced the PCI bus as the primary interface
`
`and also carries both isochronous and asynchronous data.
`
`15
`
`20
`
`25
`
`The exemplary processor module 301 provides the major processing function
`
`in the computer system and includes system memory controller 309, a central
`
`processing unit (CPU) (such as the x86 processor AlVID K6“) and graphics interface
`
`306. Interface module 303 provides an interface between various input/output devices
`
`such as Video monitors, hard drives, scanners, printers, network connections, modems,
`
`and the processor module. The exemplary interface module 307 includes interface
`
`310 providing an interface to the industry standard architecture (ISA) bus, IEEE 1394
`
`interface 312, peripheral component interface (PCI) 314, RAMDAC 316 and
`
`Intelligent Drive Electronics (IDE) controller 318.
`
`Exemplary link 205 connecting processor module (PM) 301 and the interface
`
`module (1M) 303 includes data portion DB. Data bus DB includes two bi—directional
`
`data portions. In one embodiment, each data portion contains one byte (8 bits) of
`
`data. However, the number of bits on the data bus may be of size (211 —1 :0), where n is
`
`an integer > 0. Thus, a minimum implementation has one data bit in each direction.
`
`In the illustrated embodiment, n equals 4, with each data portion having one byte.
`
`
`
`
`
`FmALAPP 0080
`Client Reference: TT2704-PROV
`
`SAMSUNG
`
`EX 1005, PAGE 8
`
`SAMSUNG
`EX 1005, PAGE 8
`
`
`
`
`
`
`
`Attorney Docket No.: 1001 -0080—V-US
`
`The exemplary system is divided into two sides with processor module 301
`
`arbitrarily designated side A and interface module 303 designated as side B. Link 205
`
`also includes a unidirectional clock line CLKB2A and a unidirectional control line
`
`CTLBZA provided by link interface 307 to link interface 305. The “BZA”
`
`designation indicates that the signal is an output of side B and an input to side A.
`
`Link 205 also includes a second unidirectional clock line CLKA2B and a second
`
`unidirectional control line CTLA2B, which are provided by processor module 301 to
`
`interface module 303. The "AZB" designation indicates that the signal is an output of
`
`side A and an input to side B. The protocol uses clock-forwarding technology to
`
`reliably synchronize source data to a clock. CLKAZB and CLKBZA are preferably
`
`derived from the same source such that they are the same frequency and they do not
`
`drift.
`
`Referring to Fig. 4, the data bus DB and the link interfaces are shown in
`
`greater detail. Each side includes a transmit controller and a receive controller. Data
`
`always flows from the transmit controller on one side to the receive controller on the
`
`other side. Thus, side A link interface 305 includes transmit controller 415 and a
`
`receive controller 413. Side B link interface includes transmit controller 411 and
`
`receive controller 417. The two portions 407 and 409 of data bus portion DB are
`
`shown with arrows indicating their direction of transfer. Data bus portion 407
`
`transmits data from transmit controller 411 to receive controller 413 (from side B to
`
`side A) synchronous with CLKB2A. Data portion 409 of the data bus transmits data
`
`from transmit controller 415 to receive controller 417 (side A to side B),
`
`synchronously with CLKAZB.
`
`One main feature of bus 205 is that bus 205 provides a guaranteed minimum
`
`bandwidth and a maximum latency to data transferred over the bus. That is
`
`accomplished in one embodiment, as described in greater detail in application number
`
`09/098,874 (BUS OPTIMIZED FOR PERSONAL COMPUTER TRAFFIC), by
`
`transferring data over the high speed link in frames, with each frame guaranteeing a
`
`portion of the frame for isochronous data and a portion of the frame for asynchronous
`
`data. Guaranteeing maximum latency for various channels (or pipes) carried over the
`
`communication link is becoming more important as isochronous data streams are
`
`being conveyed between the south bridge and main memory. One source of such
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`-8—
`
`10
`
`15
`
`20
`
`25
`
`30
`
`SAMSUNG
`
`EX 1005, PAGE 9
`
`SAMSUNG
`EX 1005, PAGE 9
`
`
`
`
`
`
`
`
`
`
`
`Attorney Docket No.: 1001 -0080—V-US
`
`isochronous data is the IEEE 1394 bus. In order to provide the necessary isochronous
`
`bandwidth on the bus for isochronous streams, the isochronous streams are guaranteed
`
`a specified amount of bandwidth during each frame on the link.
`
`Maximum bandwidth requirements are specified for each isochronous stream
`
`in terms of bytes per frame. The sum of the isochronous-stream maximum—bandwidth
`
`requirements should be less than the theoretical total bandwidth. However, as a
`
`matter of practicality, the higher the percentage bandwidth of isochronous streams,
`
`the greater the probability that asynchronous traffic will incur latency. In the design
`
`of a balanced system, one expects the sum of typical asynchronous bandwidth and
`
`maximum isochronous bandwidth to be less than about 60 to 80 percent of the
`
`theoretical maximum bandwidth. If that is done, then average latency for
`
`asynchronous cycles will be minimized.
`
`lsochronous requesters should not send more bytes across the link, during a
`
`frame, than the programmed maximum bandwidth for that requester. Hardware may
`
`be implemented in the link layer to ensure that isochronous requesters comply with
`
`that requirement
`
`The side A transmit controller delivers clock CLKA2B to the side B receive
`
`controller, and the side B transmit controller delivers clock CLKBZA to the side A
`
`receive controller. Thus, the side A transmit controller and side B receive controller
`
`are included in the same time domain, called time domain A, and the side B transmit
`
`controller and the side A receive controller are included in the same time domain,
`
`called time domain B.
`
`In the illustrated embodiment, it is assumed that both side A and side B
`
`initialize to a mode of 16 bits wide and have an 800 megahertz data rate. The data
`
`rate is based on a clock (CLK) (meaning CLKAZB and CLKB2A) rate of 400
`
`megahertz with the data being provided on each edge of the clock. So, if clock is 400
`
`megahertz, this represents 800 million edges per second. Address phases and data
`
`phases of bus cycles transfer information at each edge of CLK. Thus, the edge rate of
`
`CLK specifies the maximum theoretical bandwidth of the bus rather than the cycle
`
`10
`
`15
`
`20
`
`25
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`SAMSUNG
`
`EX 1005, PAGE 10
`
`SAMSUNG
`EX 1005, PAGE 10
`
`
`
`_.;. a2::
`
`.2:
`er;
`
`
`
`Attorney Docket No.: 1001 —0080—V~US
`
`rate. In the illustrated embodiment, frames are several microseconds in length, e.g.
`
`five microseconds.
`
`Two kinds of traffic occur over bus 205: bus cycles and instant messages. The
`
`greatest amount of bandwidth is used by bus cycles or transactions, which are
`
`transfers of blocks of addressing information or addressing information and associated
`
`data sent from one link layer to the link layer on the other side. The addressing
`
`information determines where in the integrated circuit a particular access is targeted.
`
`The second type of bus traffic is messages, which are used to send protocol
`
`information across the link. In one embodiment, messages are aligned to the rising
`
`edge of CLK and consume one CLK cycle and can occur at any time, including in the
`
`middle of bus cycles.
`
`Link 205 is very useful in situations where high—bandwidth asynchronous
`
`traffic must be mixed with isochronous traffic. The bus protocol assumes (1) that
`
`system performance is adversely affected by the latency of asynchronous traffic, (2)
`
`asynchronous traffic can be delayed indefinitely without adversely affecting real-time
`
`data streams, (3) isochronous traffic should be guaranteed a specified amount of
`
`bandwidth and worst—case latency, and (4) as long as the bandwidth and latency
`
`requirements for isochronous traffic are met, then the latency between their requests
`
`and the transfer of the data has no adverse affect on system performance.
`
`The hardware on each side of the link includes a physical layer, a protocol
`
`layer, and a link layer. The protocol layers for both sides of the bus include the same
`
`hardware elements. In this way, the bus is symmetrical with no centralized resources
`
`(as opposed to, for example, the PCI bus arbiter which in prior art systems was
`
`typically located in the north bridge of the PCI bus and arbitrates for all masters).
`
`Referring to Fig. 5, bus (or link) 205 includes link layer 501, protocol layer
`
`503, and physical layer 505. The specific implementation of the physical layer
`
`depends on such factors as the frequency of the bus, the number of devices on the bus,
`
`the length of the bus, as is known to those of skill in the art. The specification for the
`
`physical layer and the protocol layer is generally device independent, except for
`
`variations of the bus Width and frequency.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`FINALAPP 0080
`Client Reference:
`
`'IT2704-PROV
`
`-10-
`
`SAMSUNG
`
`EX 1005, PAGE 11
`
`SAMSUNG
`EX 1005, PAGE 11
`
`
`
`
`
`
`Attorney Docket No.: 1001 ~0080-V—US
`
`In the illustrated embodiment, each channel or pipe is associated with one or
`
`more functions coupled through bus 205. For example, referring again to Fig. 3,
`
`processor module 301 may include separate pipes for the function CPU 311 and for
`
`the function system memory controller 309. One or more pipes may be provided for
`
`the various functions on the interface module 303 including 1394 host controller 312,
`
`the PCI bridge 314, RAMDAC 316 and IDE controller 318. The link layer also
`
`includes an arbiter 507 to determine the source of the next locally-generated bus cycle
`
`since there are typically multiple asynchronous and isochronous sources. The arbiters
`
`guarantee bandwidth to isochronous streams (within a maximum latency) while
`
`10
`
`minimizing latency to asynchronous accesses.
`
`Bus traffic is grouped into frames. In an exemplary system, two counters
`
`associated with frames are used in the local request arbitration logic (507 in Fig. 5).
`
`They are the elapsed frame counter, which is used to specify how much bandwidth
`
`remains in the frame, and the isochronous byte counter, which is used to specify how
`
`15
`
`much isochronous bandwidth remains to be transferred in the flame.
`
`The elapsed flame counter starts, at the beginning of each flame, at a value
`
`equal to the number of bytes that can be transferred across the flame (product of the
`
`width of the bus in bytes and the number of clock edges in the frame). For example,
`
`in a 16-bit, 800 megahertz implementation (data rate), with a two microsecond frame,
`
`the value of the counter would start out at (1600 bytes per microsecond) X (2
`
`microseconds per frame) = 3200. It counts down to zero over the course of the frame,
`
`reloads, counts down again, and so forth. When the elapsed-frame counter reaches
`
`zero, a new frame is defined to be started. This is true for both sides of the link.
`
`When the elapsed frame counter reaches zero, in certain embodiments a new frame
`
`(NewFrame) message to is sent across the link to side B, which causes B’s elapsed-
`
`frame counter to reset.
`
`The isochronous byte counter starts, at the beginning of each frame, at a value
`
`equal to the number of isochronous bytes that should be guaranteed to be transferred
`
`during the frame. It decrements with each isochronous byte transferred. It is
`
`programmed to be slightly higher than the actual maximum isochronous bandwidth of
`
`a frame. Shortly after the beginning of each flame, all the isochronous streams make
`
`20
`
`25
`
`30
`
`FlNALAPP 0080
`Client Reference: TT2704—PROV
`
`-11-
`
`SAMSUNG
`
`EX 1005, PAGE 12
`
`SAMSUNG
`EX 1005, PAGE 12
`
`
`
`
`
`Attorney Docket No.: 1001-0080~V~US
`
`their requests to send data across the bus during the next frame. The requests may be
`
`made in the illustrated embodiment Within a predetermined time period after the
`
`frame starts.
`
`Initially during a frame, asynchronous transfers are granted priority over
`
`isochronous transfers (to minimize the latency of the asynchronous transfers),
`
`(asynchronous priority mode). However, counter(s) track of how much isochronous
`
`traffic passes during the frame and if the isochronous streams are in danger of running
`
`out of the required bandwidth for the frame, arbitration priority switches to the
`
`isochronous traffic, (isochronous—priority mode). In that way, a minimum amount of
`
`isochronous bandwidth can be guaranteed while minimizing latencies for
`
`asynchronous transfer requests. After all the isochronous bus cycles for the frame are
`
`complete (which occurs before the end of the frame), the priority switches back to the
`
`asynchronous traffic.
`
`The local request arbiter operates as follows. At the beginning of each frame,
`
`all isochronous streams that will require bandwidth during the frame request the link
`
`fiom the local-request arbiter. They continue to request the link until they have
`
`completed all of their bus cycles for the frame.
`
`Typically, the total requested bandwidth for the vast majority of frames will be
`
`well under 100%. Generally, asynchronous transfers will be granted highest priority
`
`for the entire frame because of generally low rates of isochronous traffic relative to
`
`the available bandwidth on the link. Thus, as described above, asynchronous CPU
`
`accesses will most often be granted higher priority than isochronous transfers and
`
`therefore incur reduced average latency. In situations Where large blocks of bulk
`
`asynchronous data are being transferred across the link (for example, from the PCI
`
`bus), then the isochronous transfers will tend to come at the end of the frame, after the
`
`priority has switched to isochronous bus cycles. In this case, CPU latency will tend to
`
`increase as the CPU loses priority to the isochronous bus cycles and contends with the
`
`bulk asynchronous transfers.
`
`For each frame, the link either stays in asynchronous priority mode for the
`
`entire frame or (1) starts in asynchronous priority mode, (2) transitions to isochronous
`
`10
`
`15
`
`20
`
`25
`
`3O
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`-12-
`
`SAMSUNG
`
`EX 1005, PAGE 13
`
`SAMSUNG
`EX 1005, PAGE 13
`
`
`
`
`
`Attorney DOCket No.2 lOOl-OOSO-V‘US
`
`priority mode during the frame, and (3) then transitions again to asynchronous priority
`
`mode before the end of the frame.
`
`In one implementation, the rules for the local—request arbiter are:
`
`asynchronous requesters are higher priority than isochronous requesters during
`
`asynchronous-priority mode and only isochronous requesters are granted bus cycles
`
`during isochronous—priority mode. The arbitration method for the group of
`
`asynchronous requesters is not limited other than it is required to be fair and to not
`
`cause deadlock situations. The arbitration scheme for the group of isochronous
`
`requesters may utilize a fixed priority scheme.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`Detailed implementation of one embodiment of transmit and receive circuits in
`
`the protocol layer is described further herein. However, first the utilization of the
`
`high speed link will be examined in greater detail beginning with the transaction
`
`protocol. As described with relation to Fig. 2, the link includes a plurality of pipes,
`
`each pipe sharing the bus in a time division multiplexing scheme. The basic function
`
`of pipes is to carry transactions. The transactions can be reads, writes, or both. In one
`
`embodiment, reads and writes are carried across the link as memory-mapped
`
`transactions to a 40-bit address space.
`
`Each transaction includes a command and response packet. There are multiple
`
`types of command and response packets. A packet type field within each packet
`
`identifies the type of packet. It is advantageous if the first byte of the packet
`
`identifies a destination queue. That provides a particular advantage when the link is
`
`only 8—bits wide since the first byte contains necessary routing information.
`
`Otherwise, in an 8—bit link implementation, the target would have to wait for the
`
`second byte to determine the appropriate destination.
`
`Thus, in one embodiment, the first 8—bits of the packet include a 5—bit Pipe
`
`Identification (ID) field and the first 3-bits of a 6—bit Packet Type field. The Pipe ID
`
`field, which identifies the pipe on which the transaction is being carried, is used to
`
`route the packet to the correct pipe hardware and the first 2—bits of the Packet Type
`
`field identify the correct queue Within the pipe hardware. The pipe hardware includes
`
`are Command, Response, Write Data, and Read Data queues. The first bit (bit 0) of
`
`FINALAPP 0080
`Client Reference: TT2704-PROV
`
`-13-
`
`SAMSUNG
`
`EX 1005, PAGE 14
`
`SAMSUNG
`EX 1005, PAGE 14
`
`
`
`Attorney Docket No.:
`
`lOOl-OOSO-V—US
`
`the packet type field specifies whether the packet is a Command (0) from the source
`
`or Response (1) from the target. The second most significant bit (bit 1) specifies
`
`whether the operation is a Read (0) or Write (1) operation. The packet types for the
`
`command packets sent from the source to the target are shown in Table 1.
`
`5
`
`Ml
`
`
`
`Packet Type Code Command
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The response packets sent from a source to a target in response to a command
`
`are shown in Table 2.
`
`10
`
`
`Table 2
`
`
`
`Packet TJ'e Code
`.1 .
`____________________ 100999” Readtssapsase.
`
`.. 11000901 _ NQnrAdétssssdread resnmise
`
`
`
`...1..QQQ_1.O Rsadrsispt,
`.
`.
`
`Reserved
`"
`" ib'i'i’iil 100011’
`
`
`
`
`.””110009.Writseckmwlcdgg ..
`N m0..r_lru;100911
`WfitanegaireAChflswledge, .
`
`
`
`111111 - 111010 Reserved
`
`
`
`
`
`
`
`
`Transactions across the bus may be pipelined. The pipeline structures may
`
`support two different kinds ofpipelining, “in order” and “out of order” transactions.
`
`In order pipelining means that multiple transactions can be outstanding, but they are
`
`15
`
`strictly ordered, i.e., they are responded to by the target in the exact order that they
`
`FINALAPP 0080
`Client Reference: TT2704—PROV
`
`_ 14 _
`
`SAMSUNG
`
`EX 1005, PAGE 15
`
`SAMSUNG