throbber
' .
`
`5 .1.3 Register Usage
`
`There will be 512 registers available. The first 256 will be used for process contexts. The
`remaining 256 will be split between the 3 sequencers as follows:
`257 - 320: 64 for RCV general processing I main loop.
`321 - 384: 64 for XMT general processing I main loop.
`385 - 512: 128 for 3rd sequencer use.
`
`5.2 Receive Pr ocessing
`
`5.2.l Main Loop
`The following is a summary of the main loop of Receive:
`
`forever {
`while there are any Receive events {
`if(anew event) {
`if(no new context available)
`ignore the event;
`
`}
`call appropriate event handler to service the event;
`this may make a waiting process runnable or set up
`a new process to be run (get free context, hddr buffer,
`TCB buffer, set the context up).
`
`}
`while any process contexts are runable {
`run them by jumping to the start/resume address;
`if (process complete)
`free the context;
`
`}
`
`5.2.2 Receive Events
`The events that will be processed on a given context are:
`• accept a context
`•
`release a context command (from the host via Transmit)
`•
`release a context request (from Transmit)
`•
`receive a valid frame; this will actually become 2 events based on the received frame
`- receive an ACK, receive a segment
`•
`receive an "invalid" frame i.e. one that causes the TCB to be flushed to the host
`• a valid ACK needs to be sent (delayed ACK timer expiry).
`• There are expected to be the following sources of events:
`l. Receive input queue: it is expected that hardware will automatically DMA arriving
`frames into frame buffers and queue an event into a RCV-event queue.
`2. Timer event queue: expiration of a timer will queue an event into this queue.
`3. Transmit sequencer queue: for requests from the transmit processor.
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence B. Boucher el al.
`Express Mail Label# EH756230105US
`
`52
`
`WISTRON CORP. EXHIBIT 1031.056
`
`

`

`For the sake of brevity the following only discusses receive-frame processing .
`
`5.2.3 Receive Details - Valid Context
`
`The base for the receive processing done by the INIC on an existing context is the fast(cid:173)
`path or "header prediction" code in the FreeBSD release. Thus the processing is divided
`into 3 parts: header validation and checksumming, TCP processing and subsequent SMB
`processing.
`
`5.2.3.1 Header Validation
`There is considerable hardware assist here. The first step in receive processing is to dma
`the frame header into an SRAM header buffer. It is useful for header validation to be
`implemented in conjunction with this dma by scanning the data as it flies by. The
`following tests need to be "passed":
`• MAC header: destination address is our MAC address (not MC or BC too), the
`Ethertype is IP.
`•
`IP header: header checksum is valid, header length = 5, IP length > header length,
`protocol = TCP, no fragmentation, destination IP is our IP address.
`• TCP header: checkswn is valid (incl. pseudo-header), header length = 5 or 8
`(timestamp option), length is valid, dest port = SMB or FTP data, no
`FIN/SYN/URG/PSWRST bits set, timestamp option is valid if present, segment is in
`sequence, the window size did not change, this is not a retransmission, it is a pure ACK
`or a pure receive segment, and most important, a valid context exists. The valid-context
`test is non-trivial in the amount of work involved to detennine it. Also note that·for pure
`ACKs, the window-size test will be relaxed. This is because initially the output PERSIST
`state is to be handled on the INIC.
`Many but perhaps not all of these tests will be performed in hardware - depending upon
`the embodiment
`
`5.2.3.2 TCP Processing
`
`Once a frame has passed the header validation tests, processing splits based on whether
`the frame is a pure ACK or a pure received segment.
`
`5.2.3.2.1 Pure RCV Packet
`
`The design is to split off headers into a small header buffer and pass the aligned data in
`separate large buffers. Since a frame bas been received, eventually some receiver process
`on the host will need to be informed. In the case of FTP, the frame is pure data and it is
`passed to the host immediately. This involves getting large buffers and dmaing the data
`into them, then setting the appropriate details in a small buffer that is used to notify the
`host. However for SMB, the INIC is performing reassembly of data when the fiiame
`consists of headers and data. So there may not yet be a complete SMB to pass to the host.
`In this case, a small buffer will be acquired and the header moved into it. If the received
`segment completes an SMB, then the procedures are pretty much as for FTP. Ifiit does
`not, then the scheme is to at least move the received data (not the headers) to the host to
`free the INIC buffers and to save latency. The list of in-progress host buffers is
`maintained in the TCB and moved to the header buffer when the SMB is complete.
`
`Provisional Pat. App. of AJacrit.ech, Inc.
`Inventors Laurence B. Boucher el al.
`Express Mail Label# EH756230105US
`
`53
`
`WISTRON CORP. EXHIBIT 1031.057
`
`

`

`

`

`

`

`• <
`
`5.3 Transmit Processing
`
`5.3. l Main Loop.
`
`The following is a summary of the main loop of Transmit:
`
`forever {
`while there are any Transmit events {
`if (a new event) {
`if(no new context available)
`ignore the event;
`
`}
`call appropriate event handler to service the event;
`this may make a waiting process runnable or set up
`a new process to be run (get free context, hddr buffer,
`TCB buffer, set the context up).
`
`}
`while any process contexts are runable {
`run them by jumping to the start/resume address;
`if (process complete)
`free the context;
`
`}
`
`5.3.2 Transmit Events
`
`The events that will be processed on a given context and their sources are:
`•
`accept a context (from the Host).
`•
`release a context command (from the Host).
`•
`release a context command (from Receive).
`• valid send request and window> 0 (from host or RCV sequencer).
`• valid send request and window= 0 (from host or RCV sequencer).
`•
`send a window update (host has accepted data).
`• persist timer expiration (persist timer).
`•
`context-release event e.g. window shrank (XMT processing or retransmission timer).
`•
`receive-release request ACK( from RCV sequencer).
`
`5.3.3 Transmit Details - Valid Context
`
`The following is an overview of the transmit flow:
`
`The host posts a transmit request to the INIC by filling in a command buffer with
`appropriate data pointers etc and posting it to the INIC via the Command Buffer Address
`register. Note that there is one host command buffer queue, but there are 4 phys.ical
`transmit lines. So each request needs to include an interface number as well as the context
`number. The INIC microcode will dma the command in and place it in l of 4 internal
`command queues which the transmit sequencer will work on. This is so that transmit
`processing can round-robin service these 4 queues to keep all 4 interfaces busy, and not
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence B. Boucher et al.
`Express Mail Label # EH756230l05US
`
`56
`
`WISTRON CORP. EXHIBIT 1031.060
`
`

`

`•
`
`t
`
`let a highly-active interface lock out the others (which would happen with a single
`queue).
`The transmit request may be a segment that is less than the MSS, or it may be as.much as
`a full 64K SMB READ. Obviously the fonner request will go out as one segment, the
`latter as a number ofMSS-sized segments. The transmitting TCB must hold on tp the
`request until all data in it has been transmitted and acked. Appropriate pointers to do this
`will be kept in the TCB. A large buffer is acquired from the free buffer fifo, and the MAC
`and TCP/IP headers are created in it. It may be quicker/simpler to keep a basic frame
`header set up in the TCB and either dma directly this into the frame each time. Then data
`is dmad from host memory into the frame to create an MSS-sized segment. This dma also
`checksums the data. Then the checksum is adjusted for the pseudo-header and placed into
`the TCP header, and the frame is queued to the MAC transmit interface which may be
`controlled by the third sequencer. The final step is to update various window fieids etc in
`the TCB. Eventually either the entire request will have been sent and acked, or a
`retransmission timer will expire in which case the context is flushed to the host. In either
`case, the INIC will place a command response in the Response queue containing the
`command buffer handle from the original transmit command and appropriate st&tus.
`The above discussion has dealt how an actual transmit occurs. However the real
`challenge in the transmit processor is to determine whether it is appropriate to transmit at
`the time a transmit request arrives. There are many reasons not to transmit: the receiver's
`window size is <= 0, the Persist timer has expired, the amount to send is less thap a full
`segment and an ACK is expected I outstanding, the receiver's window is not half-open
`etc. Much of the transmit processing will be in determining these conditions.
`
`5.3.4 Transmit Details - No Valid Context
`
`The main difference between this and a context-based transmit is that the queued request
`here will already have the appropriate MAC and TCP/IP (or whatever) headers in the
`frame to be output. Also the request is guaranteed not to be greater than MSS-sized in
`length. So the processing is fairly simple. A large buffer is acquired and the frame is
`dmad into it, at which time the checksum is also calculated. If the frame is TCP/IP, the
`checkswn will be appropriately adjusted ifnecessary (pseudo-header etc) and pfaced in
`the TCP header. The frame is then queued to the appropriate MAC transmit intepace.
`Then the command is immediately responded to with appropriate status through the
`Response queue.
`
`5.3.5 Transmit Notes
`
`1. Slow-start: the INIC will handle the slow-start algorithm that is now a part of the
`TCP standard. This obviates waiting until the connection is sending a full-rate
`before passing it to the INIC.
`2. Window Probe vs Window Update: an explanation for posterity ....
`A Window Probe is sent from the sending TCB to the receiving TCB, and it means the
`sender has the receiver in PERSIST state. Persist state is entered when the receiver
`advertises a zero window. It is tbus the state of the transmitting TCB. In this state, be
`sends periodic window probes to the receiver in case an ACK from the receiver bas been
`lost The receiver will return his latest window size in the ACK.
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence B. Boucher et al.
`Express Mail Label# EH756230105US
`
`57
`
`WISTRON CORP. EXHIBIT 1031.061
`
`

`

`A Window Update is sent from the receiving TCB to the sending TCB, usually to tell him
`that the receiving window has altered. It is mostly triggered by the upper layer when it
`accepts some data. This probably means the sending TCB is viewing the receiving TCB
`as being in PERSIST state.
`3. Persist state: it is designed to handle Persist state on the INIC. It seems
`unreasonable to throw a TCB back to the host just because its receiver advertised a
`zero window. This would nonnally be a transient situation, and would tent-1 to
`happen mostly with clients that do not support slow-start. Alternatively, tl:i.e code
`can easily be changed to throw the TCB back to the host as soon as a receiver
`advertises a zero window.
`4. MSS-sized frames: the INIC code will expect all transmit requests for which it has
`no TCB to not be greater than the MSS. If any request is, it will be dropped and an
`appropriate response status posted.
`S. Silly Window avoidance: as a receiver, the INIC will do the right thing here and
`not advertise small windows - this is easy. However it is necessary to also do
`things to avoid this as a sender, for the cases where a stupid client does advertise
`small windows. Without getting into too much detail here, the mechanism requires
`the INIC code to calculate the largest window advertisement ever advertised by the
`other end. It is an attempt to guess the size of the other end's receive buffer and
`assumes the other end never reduces the size of its receive buffer. See Stevens Vol.
`l pp. 325-326.
`
`6 The Utility Processor
`
`6.1 Summary
`
`The following is a summary of the main functions of the utility sequencer of the
`microprocessor:
`
`look at the event queues: Eventl3Type & Event23Type (we assume there will be an
`•
`event status bit for this -
`USE_EV13 and USE_EV23) in the events register; these
`are events from sequencers 1 and 2; they will mainly be XMIT requests from the XMT
`sequencer. Dequeue request and place the frame on the appropriate interface.
`• RCV-frame support: in the model, RCV is done through VinicReceiveO which is
`registered by the lower-edge driver, and is called at dispatch-level. This routine calls
`VinicTransferDataCompleteO to check if the xfer (possibly DMA) of the frame into host
`buffers is complete. Tue latter rtne is also called at dispatch level on a DMA-coi;npletion
`interrupt. It queues complete buffers to the RCV sequencer via the nonnal queue
`mechanism.
`• Other processes may also be employed here for supporting the RCV sequencer.
`•
`service the following registers: (this will probably involve micro-interrupts)
`Header Buffer Address register:
`buffers are 256 bytes long on 2?6-byte boundaries.
`31-8 - physical addr in host of a set of
`contiguous hddr buffers
`7-0 - number ofhddr buffers passed.
`Use contents to add to SmallHType queue
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence B. Boucher et al.
`Express Mail Label# EH75623010SUS
`
`58
`
`WISTRON CORP. EXHIBIT 1031.062
`
`

`

`...
`
`Data Buffer Handle & Data Buffer Address registers:
`buffers are 4K long aligned on 4K boundaries ...
`Use contents to add to the FreeType queue.
`
`Command Buffer Address register:
`buffers are multiple of32 bytes up to lK long (2**5 • 32)
`31-5 - physical add.r in host of cmd buffer
`4-0 - length of cmd in bytes/32
`(i.e. multiples of32 bytes)
`Points to host cmd; get FreeSType buffer and move
`command into it; queue to Xmit0-Xmit31'ype queues.
`
`Response Buffer Address register:
`buffers are 32 bytes long on 32-byte boundaries
`31-8 - physical addr in host of a set of
`contiguous resp buffers
`7-0 - number of resp buffers passed.
`Use contents to add to the ResponseType queue.
`
`low buffer threshold support: set approp bits in the ISR when the available-buffers
`•
`count in the various queues filled by the host falls below a threshold.
`
`6.2 Further Operations of the Utility Processor
`
`The utility processor of the microprocessor housed on the INIC is responsible for setting
`up and implementing all configuration space and memory mapped operations, and also as
`described below, for managing the debug interface.
`
`All data transfers, and other INlC initiated transfers will be done via OMA.
`Configuration space for both the network processor function and the utility processor
`function will define a single memory space for each. This memory space will d~fine the
`basic commwtlcation structure for the host. In general, writing to one of these memory
`locations will perform a request for service from the INIC. This is detailed in t.l1e
`memory description for each function. This section defines much of the operatibn of the
`Host interface, but should be read in conjunction with the Host lnterface Strategy for the
`Alacritech INIC to fully define the Host/INIC interface.
`
`Two registers, DMA hardware and an interrupt function comprise the INIC interface to
`the Host through PCI. The interrupt function is implemented via a four bit register
`(PCl_INT) tied to the PCI interrupt lines. This register is directly accessed by the
`microprocessor.
`
`THE MICROPROCESSOR uses two registers, the PCI_Data_Reg and the
`PCI_Address_Reg, to enable the Host to access Configuration Space and the memory
`space allocated to the INIC. These registers are not available to the HosL but are used by
`THE MICROPROCESSOR to enable Host reads and writes. The function of these two
`registers is as follows.
`
`Provisional Pat. App. of Alacritecb, Inc.
`Inventors Laurence B. Boucher et al.
`Express Mail Label# EH756230105US
`
`59
`
`WISTRON CORP. EXHIBIT 1031.063
`
`

`

`

`

`

`

`

`

`s:their"it:n“a""a.»r:s:"r:Eltrnl'fii
`
`processor will construct the data required and transfer it. Reads to this memory will
`generate 00 for data.
`
`6.2.2.1 Network Processor
`
`The following four byte registers, beginning at location 1100 of the network processor‘s
`allocated memory, are defined.
`
`00 e
`
`04 —
`
`Interrupt Status Pointer -- Initialized by the host to point to a four byte area
`where status is stored
`
`Interrupt Status — Returned status from host. Sent afier one or more
`status conditions have been reset. Also an interlock for storing any
`new status. Once status has been stored at the Interrupt Status Pointer
`location, no new status will be stored until the host writes the Interrupt
`Status Register. New status will be cred with any remitting
`uncleared status (as defined by the contents of the returned status)
`and stored again at the Interrupt Status Pointer location. Bits are
`as follows:
`Bit 31 -- ERR - Error bits are set
`Bit 30 v RCV — Receive has occurred
`
`Bit 29 — XMT # Transmit command complete
`Bit 25 — RMISS — Receive drop occurred due to no buffers
`
`08 —
`
`Interrupt Mask — Written by the host. Interrupts are masked for each
`of the bits in the interrupt status when the same bit in the mask
`register is set. When the Interrupt Mask register is Written and as
`a result a status bit is unmasked, an interrupt is generated. Also,
`when the Interrupt Status Register is written, enabling new status
`to be stored, when it is stored if a bit is stored that is not masked
`by the Interrupt Mask. an interrupt is generated.
`
`0C — Header Buffer Address — Written by host to pass a set of header buffers to the
`MC.
`
`10 — Data Buffer Handle — First register to be written by the Host to transfer a receive
`data buffer to the NC. This data is Host reference data. It is not used by the
`MC, it is returned with the data bufi'er. However, to insure integrity of the
`buffer, this register must be interlocked with the Data Buffer Address register.
`Once the Data Buffer Address register has been written, neither register can be
`written until after the Data Buffer Handle register has been read by THE
`MICROPROCESSOR.
`
`14 _ Data Buffer Address * Pointer to the data buffer being sent to the [NIC by the
`Host. Must be interlocked with the Data Buffer Handle
`
`register.
`
`18 n Command Buffer Address XMTO u Pointer to a set of command
`
`butters sent by the Host. THZE‘. MICROPROCESSOR will DMA the buffers to
`local DRAM found on the FreeSType queue and queue the Command
`
`vaisional Pet. App. at Maeritech. Inc.
`Inventors Laurence B. Boucher et 11.
`Express Mail Label ‘5 EH756230105US
`
`63
`
`WISTRON CORP. EXHIBIT 1031.067
`
`WISTRON CORP. EXHIBIT 1031.067
`
`

`

`
`
`.Iafl'i.est-rt?W’TJ'"1.2"»5"}H"l;“1""!iii!'53
`
`
`
`
`
`Buffer Address XMTO with the local address replacing the host
`Address.
`
`10 — Command Buffer Address SM'I‘l
`
`20 — Command Buffer Address SMT2
`
`24 a Command Buffer Address SMT3
`
`28 — Response Buffer Address -- Pointer to a set of reaponse butters sent
`by the Host. These will be heated in the same fashion as the
`Command Buffer Address registers.
`
`6.2.2.2 Utility Processor
`
`Ending status will be handled by the utility processor in the same fashion as it is handled
`by the network processor. At present tw0 ending status conditions are defined B31 —
`command complete, and B30 -— error. When end status is stored an interrupt is
`generated.
`
`Two additional registers are defined, Command Pointer and Data Pointer. The Host is
`responsible for insuring that the Data Pointer is valid and points to sufficient memory
`before storing a command pointer. Storing a command pointer initiates command decode
`and execution by the debug processor. The Host must not modify either command or
`Data Pointer until ending status has been received, at which point a new command may
`be initiated. Memory space is write only by the Host, reads will receive 00. The format
`is as follows:
`
`00 —
`
`Interrupt Status Pointer - Initialized by the host to point to a four byte area
`where status is stored
`
`04 —
`
`Interrupt Status — Returned steals from host. Sent after one or more
`status conditions have been reset. Also an interlock for storing any
`new status. Once status has been stored at the Interrupt Status Pointer
`location, no new status will be stored until the host writes the Interrupt
`Status Register. New status will be ored with any remaining
`nucleated status (as defined by the contents of the returned status)
`and stored again at the Interrupt Status Pointer location. Bits are
`as follows:
`
`Bit 31 — CC — Command Complete
`Bit 30 — ERR — Error
`Bit29 —- Transmit Processor Halted
`BitQB — Receive Processor Halted
`
`Bit27 — Utility Processor Halted
`
`08 -
`
`Interrupt Mask — Written by the host. Interrupts are masked for each
`of the bits in the interrupt status when the same bit in the mask
`register is set. When the Interrupt Mask register is written and as
`a result a status bit is unmasked, an interrupt is generated. Also,
`
`Provisional Pet. App. of Alacritech. Inc.
`Inventors laurenoe B. Boucher et at.
`Express Mail Label it EH756230105US
`
`64
`
`WISTRON CORP. EXHIBIT 1031.068
`
`WISTRON CORP. EXHIBIT 1031.068
`
`

`

`when the Interrupt Status Register is written, enabling new status
`to be stored, when it is stored if a bit is stored that is not masked
`by the Interrupt Mask, an interrupt is generated.
`
`0C — Command Pointer — Points to command to be executed. Storing
`this pointer initiates command decode and execution.
`
`10 — Data Pointer — Points to the data buffer. This is used for both read and write data,
`determined by the conunand function.
`:
`
`7 Debug Interface
`
`In order to provide a mechanism to debug the microcode running on the microprocessor
`sequencers, a debug process has been defined which will run on the utility sequencer.
`This processor will interface with a control program on the host processor over PCI.
`
`7.1
`
`PCI Interface
`
`This interface is defined in the combination of the Utility Processor and the Host
`Interface Strategy sections, above.
`
`7.2 Command Format
`
`The first byte of the command, the command byte, defines the structure of the remainder
`of the command. The first five bits of the command byte are the command itself. The
`nest bit is used to Specify an alternate processor, and the last two hits specify which
`processors are intended for the command.
`
`7.2.1 Command Byte
`
`7 ,_ 3
`Command
`
`2
`Alt. Proc.
`
`1 - 0
`Processor
`
`fittill‘3
`
`
`
`if...fish‘EF'If]"Ll?"'1E1it'llH?
`
`7.2.2 Processor Bits
`
`00 — Any Processor
`01 _ Transmit Processor
`10 — Receive Processor
`
`1] — Utility Processor
`
`Provisional Pet. App. of Alacritech, Inc.
`Inventors Laurence B. Boucber et a1.
`
`Express Mail Label if EH75623DIUSUS
`
`65
`
`WISTRON CORP. EXHIBIT 1031.069
`
`WISTRON CORP. EXHIBIT 1031.069
`
`

`

`.~ 4
`
`it}if‘5][Til3Ell
`
`
`.r‘i15.1:"it'53'£1"if'"fitill]
`
`7.2.3 Alternate Processor
`
`This bit defines which processor should handle debug processing if the utility processor
`is defined as the processor in debug.
`
`0 — Transmit Processor
`1 — Receive Processor
`
`7.2.4 Single Byte Commands
`
`00 — Halt
`
`This command asynchronously halts the processor.
`
`08 — Run
`
`This command starts the processor.
`
`IO—Step
`
`This command steps the processor.
`
`7.2.5 Eight Byte Commands
`
`18 — Break
`
`0
`Command
`
`1
`Reserved
`
`2—3
`Count
`
`4‘7
`Address
`
`This command sets a stop at the specified address. A count of 1 causes the specified
`processor to halt the first time it executes the instruction. A count of 2 or more causes the
`processor to halt after that number of executions. The processor is halted just before
`executing the instruction. A count ofO does not halt the processor, but causes a_ sync
`signal to be generated. If a second processor is set to the same break address, the count
`data from the first break request is used, and each time either processor executes the
`instruction the count is decremented.
`
`20 — Reset Break
`
`0
`Command
`
`1 - 3
`Reserved
`
`4 e 7
`Address
`
`Provisional Pet. App. of Alacritech. Inc.
`Inventors Laurence E. Beecher et 21.
`Express Mail Label it EH756230105US
`
`66
`
`WISTRON CORP. EXHIBIT 1031.070
`
`WISTRON CORP. EXHIBIT 1031.070
`
`

`

`I'Eil
`
`
`
`at".it‘s-i1“Ii?flitT"i152:{It25]1.?'EilHi.
`
`This command resets a previously set break point at the specified address. Reset break
`fully resets that address. If multiple processors Were set to that break point, all Will be
`reset.
`
`‘28 — Dump
`
`0
`
`1
`
`Command
`
`Descriptor
`
`2 - 3
`
`Count
`
`4 — 7
`
`Address
`
`This command transfers to the host the contents of the descriptor. For descriptors larger
`than four bytes, :1 count, in four byte increments is specified. For descriptors utilizing an
`address the address field is specified.
`
`7.2.6 Descriptor
`
`00 v Register
`
`This descriptor uses both count and address fields. Both fields are four byte based (3
`count of 1 transfers four bytes).
`
`01 — Sram
`
`This descriptor uses both count and address fields. Count is in four byte blocks. Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address.
`
`02 — Drain
`
`This descriptor uses both count and address fields. Count is in four byte blocks. Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address
`
`03 — Cstore
`
`This descriptor uses both count and address fields. Count is in four byte blocks. Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address
`
`Stand-alone descriptors:
`
`The following descriptors do not use either the count or address fields. They transfer the
`contents of the referenced register.
`
`04 — CPU‘STATUS
`
`IDS-PC
`
`Provisional Pat. App. of Alaeritech, Inc.
`Inventors Laurence B. Beecher or. 3].
`Express Mail Label d EH756230105US
`
`67
`
`WISTRON CORP. EXHIBIT 1031.071
`
`WISTRON CORP. EXHIBIT 1031.071
`
`

`

`
`
`431':Iifiu’i‘r'lr"a?“iif“'IE1:HHT5'53Eliiii“53
`
`05 — ADDR§REGA
`
`07 , ADDR_REGB
`
`08 — RAM_BASE
`
`09 — FILE_BASE
`
`0A — INSTR_REG_L
`
`OB - mSTR_REG_H
`
`0C — MAC_DATA
`
`0D — DMAfiEVENT
`
`OE — MISC_EVENT
`
`0F — Q_IN_RDY
`
`10 —- CLOUT_RDY
`
`11 — LOCK. STATUS
`
`12 — STACK - This returns 12 bytes
`
`13 — Sense _ Reg
`
`This register contains four bytes of data. If error status is posted for a command, if the
`next command that is issued reads this register, a code describing the error in more detail
`may be obtained. If any command other than a dump of this register is issued after error
`status, sense information will be reset.
`
`30 # Load
`
`0
`Command
`
`1
`Descriptor
`
`2 — 3
`Count
`
`4 ~- 7
`Address
`
`This command transfers from the host the contents of the descriptor. For descriptors
`larger than four bytes, a count, in four byte increments is specified. For deecrip‘tors
`utilizing an address the address field is specified.
`
`7.2.7 Descriptor
`
`00 4 Register
`
`This descriptor uses both count and address fields. Both fields are four byte based.
`
`Provisional Pat. App. of Macriteeh. Inc.
`Inventors Laurence B. Boucher et a1.
`
`Express Mail Label if EH756230105US
`
`,
`
`68
`
`WISTRON CORP. EXHIBIT 1031.072
`
`WISTRON CORP. EXHIBIT 1031.072
`
`

`

`
`
`
`
`£1TE'ih“i“t'E-‘E~hfi:‘.=~ir'“iii:anH"E7‘iliFE][W31
`
`01—Sram
`
`This descriptor uses both count and address fields. Count is in four byte blocks. . Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address.
`
`02-Dram
`
`This descriptor uses both count and address fields. Count is in four byte blocks. Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address
`
`03 — Cstore
`
`This descriptor uses both count and address fields. Count is in four byte blocks. Address
`is in bytes, but if it is not four byte aligned, it is forced to the lower four byte aligned
`address. This applies to WCS only.
`
`Stand-alone descriptors:
`
`The following descriptors do not use either the count or address fields. They transfer the
`contents of the referenced register.
`
`04 -— ADDR_REGA
`
`05 ~ ADDR_REGB
`
`06 «- RAM_BASE
`
`o7 — FILE_BASE
`
`08 — MACpATA
`
`09 -— Q_[N_RDY
`
`0A — O_0UT_.RDY
`
`OB -» DBG_ADDR
`
`38 — Map
`
`This command allows an instruction in ROM to be replaced by an instruction in WCS.
`The new instruction will be located in the Host buffer. It will be stored in the first eight
`bytes of the buffer, with the high bits unused. To rose: a mapped out instruction, map it
`to location 00.
`
`0
`Command
`
`1 - 3
`Address to
`Map To
`
`4 — 7
`Address to
`Map Our
`
`Provisional Pat. App. of Alacritech. Inc.
`Inventors laurence B. Bounher et 31.
`Express Mail Label # EH756230£05US
`
`69
`
`WISTRON CORP. EXHIBIT 1031.073
`
`WISTRON CORP. EXHIBIT 1031.073
`
`

`

`.-.i
`
`
`
`it”.ifu‘iittiii'fili'15"”3E1“Eifl'ii'flllt'iilii‘uiiifli.
`
`
`
`
`
`8
`
`HARDWARE SPECIFICATION
`
`FEATURES
`
`- Peripheral Component Interconnect (PCI) Interface
`
`- Universal PCl interface supports both 5.0V and 3.3V signaling environments.
`
`— Supports both 32-bit and 64 bit PCI interface.
`
`- Supports PCI clock frequencies from lSMI-Iz to 661MHz
`
`- High perfomtanoe bus mastering architecuire.
`
`- Host mentor)»r based communications reduce register accesses.
`
`- Host memory based interrupt status word reduces register reeds.
`
`- Plug and Play compatible.
`
`- PCI specification revision 2.1 compliant.
`
`- PCI bursts up to 512 bytes.
`
`- supports cache line operations up to 123 bytes.
`
`- Both big-endian and little-endian byte alignments supported.
`
`- Supports Expansion ROM.
`
`. Network Interface
`
`- Four internal 802.3 and ethernet compliant Macs.
`
`- Media Independent Interface (Mil) supports external PHYS.
`
`— lOBASB—T, lOGBASE—TXIFX and 100BASE-T4 supported.
`
`— Full and halfduplex modes supported.
`
`- Automatic PHY status polling notifies system of status change.
`~ Provides SNMP statistics counters.
`
`~ Supports broadcast and multicast packets.
`
`- Provides promiscuous mode for network monitoring or nmltiple unicast address detection.
`
`— Supports “huge packets” up to 32KB.
`
`- Mac—layer loop-back test mode.
`
`- Supports auto-negotiating Phys.
`
`Provisional Pat. App. of AlaCritOCh. Inc.
`Inventors Laurence B. Boucher et a1.
`Express Mail Label it EH756230I05US
`
`70
`
`WISTRON CORP. EXHIBIT 1031.074
`
`WISTRON CORP. EXHIBIT 1031.074
`
`

`

`
`
`
`
`.fh-"it"5?EP-‘ll?"iii;fl:3"ET“341I33Hill"5.!
`
`ll‘ -
`vl’.
`
`- Memory Interface
`
`- External Dram buffering of tranmit and receive packets.
`
`- Bufi'ering configurable as 4MB, 3MB. 16MB or 32MB.
`
`- 32-bit interface supports throughput of 224MBJ'5
`
`- Supports external FLASH ROM up to 4 MB, for diskless boot applications.
`
`- Supports external serial EEPROM for custom configuration and Mac addrcswc.
`
`- Protocol Processor
`
`- High speed. custom, 32—bit processor executes 66 million instructions per second.
`
`~ Processes IP, TCP and NETBIOS protocols.
`
`- Supports up to 256 resident 'FCPIIP contexts.
`
`- Writable control store (WCS) allows field updates for feature enhancements.
`
`0 Power
`
`— 3.3V chip operation.
`
`- PCI controlled 5.0V13.3V U0 cell operation.
`
`It Packaging
`
`- 212-pin plastic ball grid array.
`
`- 91 PCI signals.
`
`- 68 MI] signals.
`
`- 58 external memory signals.
`
`— l clock signal.
`
`— 54 signals split between power and ground.
`
`- 272 total pins.
`
`Provisional Pat. App. of Alacriteclt, Inc.
`Inventors Lamcncc B. Boucher ct 3].
`Express Mail Label all EH756230105US
`
`'Il
`
`WISTRON CORP. EXHIBIT 1031.075
`
`WISTRON CORP. EXHIBIT 1031.075
`
`

`

`"Eli-'25I?filltillHIE-l
`
`t.3g:
`
`
`
`
`
`a“:iii-rill"Ll":iii"if""
`
`GENERAL DESCRIPTION
`
`The microprocessor is a 32-bit, full-duplex, four channel. 10f lilo-Megabit per second [Mbpst Intelligent
`Network Interface Controller. designed to provide high-speed protocol processing for server applications. It
`combines the functions of a standard network interface controller and a protocol processor within a single
`chip. Although designed specifically for server applications. The microprocessor can. be used by; PCs.
`workstations and routers or anywhere that: 'I‘CPIIP protocols are being utilized.
`
`When combined with four 302.3!MII compliant Phys and Synchronous Dram (SDrarn), the INIC comprises
`four complete ethernet nodes. It contains four 802.3!ethemet compliant Macs, a PCI Bus Interface Unit (BIU),
`a memory controller. transmit fifos, receive fifos and a custom 'I‘CPFIPINETBIOS protocol processor. The
`[MC supports lUBase-T . IOOBase-TX, Immoe—FX and lOflBm-Ttt via the M11 interface attachment of
`appropriate Phys.
`
`The INIC Macs provide statistical information that may be used for SNMP. The Macs operate in promiswous
`mode allowing the [NIC to function as a network monitor, receive broadcast and multicast packets and
`implement multiple Mac addresses for each node.
`
`Any 802.3!MII compliant PHY can be utilized. allowing the lNIC to support lflBASE-T, IOBA

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket