throbber

`
`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
`
`ALA00138443
`
`Ex.1031.061
`
`DELL
`
`

`

`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
`
`ALA001 38444
`
`Ex.1031.062
`
`DELL
`
`

`

`...
`
`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
`
`ALA001 38445
`
`Ex.1031.063
`
`DELL
`
`

`

`

`

`

`

`

`

`.r:tar-n"r:inr"a.»rts:"r:attittrrs
`
`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 but] of the network processor‘s
`allocated memory, are defined.
`
`()0?
`
`04-
`
`08—
`
`0C—
`
`10—
`
`14_
`
`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 remaining
`unoleared 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 u Error bits are set
`Bit 30 — RCV — Receive has occurred
`
`Bit 29 — XMT # Transmit command complete
`Bit 25 — RMISS —- Receive drop occurred due to no buffers
`
`Interrupt Mask — Written by the host. Interrupts are masked for each
`of the bits in the interrupt stems 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.
`
`Header Buffer Address — Written by host to pass a set of header buffers to the
`INIC.
`
`Data Buffer Handle — First register to be written by the Host to transfer a receive
`data buffer to the INIC. This data is Host reference data. It is not used by the
`INIC, it is returned with the data buffer. 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.
`
`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—
`
`Command Buffer Address XMTO — Pointer to a set of command
`
`buffers sent by the Host. THIE NUCROPROCESSOR will DMA the buffers to
`local DRAM found on the FreeSType queue and queue the Command
`
`Provisional Par. App. of Alacritech. Inc.
`Inventors Murmur: B. Boucher et 31.
`Express Mail Label 3‘ EHTSGZSOIOSUS
`
`63
`
`mil-an
`
`
`
`sen-lows
`
`ALA00138449
`
`DELL Ex.1031.067
`Ex.1031.067
`
`DELL
`
`

`

`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 nvo 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
`
`
`
`.Iafl'i.est-rt?W’TJ'"1.2"»5"}H"l;“1""!iii!'53
`
`
`
`
`
`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
`
`Bonuses-o “Ill In
`
`ALA00138450
`
`DELL Ex.1031.068
`Ex.1031.068
`
`DELL
`
`

`

`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.
`
`to — Data Pointer — Points to the data buffer. This is used for both read and write data,
`determined by the command 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
`next bit is used to Specify an alternate processor, and the last two bits specify which
`processors are intended for the command.
`
`3‘:
`if;
`
`3 f
`
`:
`E
`E
`5"
`3.3,
`
`éfi
`
`;
`a?
`
`‘s
`
`7.2.1 Command Byte
`
`7 7- 3
`Command
`
`2
`Alt. Proc.
`
`1 - 0
`Processor
`
`7.2.2 Processor Bits
`
`00 — Any Processor
`01 _ Transmit Processor
`10 — Receive Processor
`
`1] — Utility Processor
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence B. Boucber et :11.
`
`Express Mail Label if Ell-1756230105115
`
`65
`
`' D'Wlfifittfi to @111! ll
`
`
`ALA00138451
`
`DELL Ex.1031.069
`Ex.1031.069
`
`DELL
`
`

`

`7.2.3 Alternate Processor
`
`This bit defines which processor should handle debug processing if the utility pr'ocessm
`is defined as the processor in debug.
`
`0 — Transmit Processor
`1 — Receive Processor
`
`7.2.4 Single Byte Commands
`
`(JO—Halt
`
`This command asynchronously halts the processor.
`
`08 — Run
`
`This command starts the processor.
`
`10 — Step
`
`This command steps the processor.
`
`a
`
`5 i
`
`7.2.5 Eight Byte Commands
`18 —Break
`
`o
`Command
`
`1
`Reserved
`
`2 — 3
`Count
`
`4:;
`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 alter that number of executions. The processor is halted just before
`executing the instruction. A count oft) 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 ~ 7
`Address
`
`5;;
`:2
`is
`
`a 1
`
`.;
`fe‘E
`
`Provisional Pet. App. of Alacritech. Inc.
`Inventors Laurence E. Beecher et 21.
`Express Mail Label it EH'i56230105US
`
`66
`
`Home We Inn: ©l. II '
`
`
`n
`
`ALA00138452
`
`DELL Ex.1031.070
`Ex.1031.070
`
`DELL
`
`

`

`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, 51 count, in four byte increments is specified. For descriptors utilizing an
`address the address field is specified.
`
`7.2.6 Descriptor
`
`00 F Register
`
`I'Eil
`
`This descriptor uses both count and address fields. Both fields are four byte based (3
`count of 1 ti’ansfers four bytes).
`
`
`
`
`
`ref.it"s-i1‘lii'11:51.7"i153:till3.31.?'5511HE.
`
`
`
`
`
`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
`
`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
`
`{IS—PC
`
`Provisional Pat. App. of Alacritech. too.
`Inventors laurence B. Boucher et 31.
`Express Mail Label # EH756230105US
`
`67
`
`- fliflflfifiiiflffifléfiiflillfi —
`
`
`ALA00138453
`
`DELL Ex.1031.071
`Ex.1031.071
`
`DELL
`
`

`

`06 — ADDR§REGA
`
`07 7 ADDR_REGB
`
`08 —- RAM_BASE
`
`09 — FILE_BASE
`
`0A — INSTR_REG_L
`
`OB - mS'I'R_REG_H
`
`0C — MAC_DATA
`
`0D — DMAfiEVENT
`
`0E — MISC_EVENT
`
`0F — Q_IN_RDY
`
`10 —- CLOU'I‘_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
`
`l
`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 [our byte increments is specified. For descriptors
`utilizing an address the address field is specified.
`
`7.2.7 Descriptor
`
`00 4 Register
`
`
`
`
`
`4":Iiiirll'n'lt'T“lE“'Ilia:HH'lT'53}Elliill“33
`
`This descriptor uses both count and address fields. Both fields are four byte based.
`
`Provisional Pat. App. of Macritoch. Inc.
`Inventors Laurence B. Boucher et a1.
`
`Express Mail Label 3 EH756230105US
`
`,
`
`68
`
`Bonnet ens-@131 IE
`
`n" "
`
`ALA00138454
`
`DELL Ex.1031.072
`Ex.1031.072
`
`DELL
`
`

`

`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.
`
`(IQ-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
`
`07 — FILE_BASE
`
`08 — MAC‘_DATA
`
`09 -— Q_[N_RDY
`
`0A — O_0UT_.RDY
`
`OB —» DBG_ADDR
`
`38 — Map
`
`
`
`.rtiT.titri-flfl'if}"ll?“lib[LilH"E71711PE][3*£31
`
`
`
`
`
`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 unneed. To reset a mapped out instruction, map it
`to location 00.
`
`0
`Command
`
`l - 3
`Address to
`Map To
`
`4 — 7
`Address to
`Map Our
`
`Provisional Pat. App. of Alacrltech. Inc.
`Inventors laurence B. Boucher et 31.
`Express Mail Label .i' EH756230£05US
`
`69
`
`DMWWB‘E» ail-e
`
`
`ALA00138455
`
`DELL Ex.1031.073
`Ex.1031.073
`
`DELL
`
`

`

`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 architecurre.
`
`- Host roe-roomr based communications reduce register accesses.
`
`- Host memory based interrupt status word reduces register room.
`
`- 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-endinn and little-endiau byte alignments supported.
`
`- Supports Expansion ROM.
`
`. Network Interface
`
`- Four internal 802.3 and ethernet compliant Macs.
`
`- Media Independent interface (Mil) supports external PHYS.
`
`— 103As‘a-T, lODBASE—TXIFX and 100BASE-T4 supported.
`
`— Full and halfouplex 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 rrmltiple unicast address detection.
`
`— Supports “huge packets” up to 32KB.
`
`- Mac—layer loop-back test mode.
`
`- Supports auto-negotiating Phys.
`
`si
`
`
`
`
`
`mi“.iiiu‘ittitiiiliit?"”flit.Eli3H'i-"TFill14TH]'l.
`
`
`
`
`
`Provisional Pat. App. of AlaCritOCh. Inc.
`Inventors Laurence B. Boucher et a1.
`Express Mail Label if EH756230105US
`
`70
`
`D‘@@u@;os“llou"""n"
`
`ALA00138456
`
`DELL Ex.1031.074
`Ex.1031.074
`
`DELL
`
`

`

`- 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 224MBls
`
`- Supports external FLASH ROM up to 4 MB, for diskless boot applications.
`
`- Supports external serial EEPROM for custom configuration and Mac addresses.
`
`- Protocol Processor
`
`- High speed. custom, 32—bit processor executes 66 million instructions per second.
`
`~ Processes 1P, TCP and NETBIOS protocols.
`
`- Supports up to 256 resident 'FCPIIP contexts.
`
`- Writahle control store (WCS) allows field updates for feature enhancements.
`
`lit-"it"5?ER'll?"Elli;fl1E3!it?"EllIi}El"5.!
`
`ll‘ -
`vl’.
`
`- Power
`
`— 3.3V chip operation.
`
`- PCI controlled 5.0V!3.3V U0 cell operation.
`
`0 Packaging
`
`- 212-pin plastic ball grid may.
`
`- 91 PCI signals.
`
`- 53 MI] signals.
`
`- 58 external memory signals.
`
`— l clock signal.
`
`— 54 signals split between power and grannd.
`
`- 272 total pins.
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors laureate B. Booster et a].
`Express Mail Label # EH7562‘30105US
`
`'Il
`
`D‘flmm‘ofi-ll-omn”
`
`ALA00138457
`
`DELL Ex.1031.075
`Ex.1031.075
`
`DELL
`
`

`

`GENERAL DESCRIPTION
`
`The microprocessor is a 32-bit, hill-duplex, four channel. 10f lilo-Megabit per second (mops). Intelligent
`Network Interface Controller. designed to provide high-speed protocol Wing 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 canbe 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 othernet nodes. It contains four 802.3lethemet compliant Macs, a PCI Bus Interface Unit (BIU),
`a memory controller. transmit fifos, receive fifos and a custom TCPfleNETBlOS protocol processor. The
`[MC supports lUBase-T . IUDBase-TX, motions—Flt and tOGBase-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 lUBASE-‘I‘, IUBASE-TZ,
`lOOBASE-TX,
`lflOBase—FX and lflOBASE-T4 as well as future interface standards. PHY identification and
`initialization is accomplished through host driver initialization routines. PHY status registers can be polled
`continuously by the IN'IC and detected P‘HY stauts changes reported to the host driver. The Mac can be
`configured to support a maximum frame size of 1518 bytes or 32768 bytes.
`
`_
`
`The 64-bit. multiplexed Bill provides a direct interface to the PCI bus for both slave and master functions.
`The [NIC is capable of operating in either a 64-bit or 32—bit PCI environment. while supporting 64-bit
`addrasing in either configuration. PCI bus frequenciec up to GoMHz are supported yielding instantaneous bus
`transfer rates of SSBMBls. Both 5.0V and 3.3V signaling environments can be utilized by the INIC.
`Configurable cache-line size up to 256]! will accommodate future architectures, and Expansion ROMfFlash
`support allows for disklas system booting. Non-PC applications are supported via programmable big and little
`end'tan modes. Host based communication has been utilized to provide the best system performance possible.
`
`The INIC supports Plug-N—Play aumonfiguration through the PCI configuration space. External pull-up and
`pull-down resistors. on the mention-y no pins, allow selection of various features during chip reset. Support of
`an external eeprorn allows for local storage of configuration information such as Mac addressee.
`
`External SDram provides frame buffering. which is configurable as 4MB, 8MB, 16MB or 32MB using the
`appropriate SIMMs. Use of -10 speed grades yields an external buffer bandwidth of 224mm. The buffer
`provides temporary storage of both incoming and outgoing frames. The protocol processor accesses the frames
`within the buffer in order to implement TCPllP and NEI'BIOS. Incoming frames are processed. assembled
`then transferred to host memory under the control of the protocol processor. For transmit. data is moved from
`host memory to buffers where various headers are created before being transported out via the Mac.
`
`
`
`"Eli-“i17%{LilHIE-l
`
`aMg;
`
`
`
`a:lliie'il'i"Ll":iii"if""
`
`Provisional Pat. App. of Alacritech, Inc.
`Inventors Laurence H. Beecher et a1.
`Express Mail Label if EH756230105US
`
`T2
`
`
`
`ALA00138458
`
`DELL Ex.1031.076
`Ex.1031.076
`
`DELL
`
`

`

`BLOCK DIAGRAM
`
`'MIIA
`
`MIIB
`
`MIIC
`
`MIID
`
`thA
`6':
`Rch
`Sen
`
`thB
`8:
`Rch
`S '
`I
`
`thC
`&
`Rch
`Se
`
`thD
`&
`Rch
`Se .
`
`
`
`
`
` «fl.iilrh“KCHI]?"fl?‘“iii3:?!:15?"U:'52"?!II]91“.!'55}!
`
`
`
`
`
`EXTERNAL
`MEMORY
`BUS
`
`“PROC
`
`lKB X 128 Sram
`& DMA Ctrl
`
`
`
`INTERFACE UNIT
`
`PCI BUS
`
`PCI BUS
`
`Provisional Pat. App. of Alacritech. Inc.
`Inventors Durance B. Boucher et a1.
`Express Mail Label a? EH756230105US
`
`'33
`
`' E @Qfifif w ,6) mm @110
`
`
`
`fi '
`
`ALA00138459
`
`DELL Ex.1031.077
`Ex.1031.077
`
`DELL
`
`

`

`OUTLINE
`
`o CoresiCeIls
`
`LSI Logic Ethernet-110 Core. mom 8-: 10133156 Mac with M1] interface.
`
`L51 Logic single port Sram, triple port Sram and ROM available.
`
`LS] Logic PCI 616MHz, 5V mmpafible [IO cell.
`
`LSI Logic PLL
`
`5‘;
`{E
`5.1
`
`5-,
`ii
`1::
`4:3
`
`5:;
`Q
`lflé
`
`:*
`-
`
`6 Die Size f Pin Count
`
`LSI Logic 610 process.
`
`MQDJILE
`
`DESEE
`
`EEEED
`
`Scratch RAM. nuns sport,
`
`4.3? 115 mm,
`
`WCS,
`MAP.
`
`ROM.
`REGS,
`Mars,
`PLL.
`
`BKX49
`123x“!
`
`sport.
`sport.
`
`6.40 ns norm,
`3.50 ns norm,
`
`5.00 as 110111.,
`6.10 ns nom.,
`
`“(149 32001,
`512x32 tpon.
`.75 mm2 x 4 =
`.5 01.11:1 a
`
`MISC LOGIC.
`TOTAL CORE
`
`117.260 gates I (5035 gates I mm” =
`
`(Core side)1
`Core side
`
`Die side
`
`Die area
`
`Pads needed
`LS! PBGA
`
`2 core side + 1.0 mm (U0 cells)
`
`= 8.5 mm x 8.5 mm
`
`: 220 signals is 1.25 (vss, vdcl)
`
`AREA
`
`06.2"? :an
`
`18.29 mm1
`00.24 mm”
`
`00.45 mm“
`03.49 mm2
`03 .30 mm"
`00.55 mm1
`
`73.29 mm”
`56.22 mm1
`
`56.22 mm2
`07.50 mm
`
`08.50 mm
`
`72.25 mm“
`
`275 pins
`272 pins
`
`=
`5
`
`=
`
`=
`
`==
`=
`
`Provisional Pat. App. of Alacrilech, Inc.
`inventors Laurence B. Boucher :1 3].
`Express Mail Label fl EH756230105US
`
`74
`
`B'QQ'IEWWfi-IHSHI
`
`ALA00138460
`
`DELL Ex.1031.078
`Ex.1031.078
`
`DELL
`
`

`

`e Datapath Bandwidth
`
`(lOMBIsIlUOB-ase) x 2 (full duplex} x 4 connections
`
`Average frame size
`Frame rate = SDMWsISIZB
`
`Cpu overhead I frame = (256 B context read) + (648 header read) +
`(1283 context write) + (1283 misc.)
`
`Total bandwidth = (51213 in) + (512B 011:) + (5123 Cpu}
`
`Dram Bandwidth required = (1 53613Iframe) 3: (156.250 framesIs)
`
`Dram Bandwidth @GOMEz = (32 bytes I 16713.5)
`
`Dram Bandwidth @ “MHz = (32 byte: I lSDns)
`
`PC] Bandwidth required
`
`PC! Bandwidth available a 30 M112, 32b, average
`
`PCl Bandwidth available @ 33 MHz, 32b, average
`
`PC] Bandwidth available @ 60 MRI, 321). average
`
`2|:
`
`PC] Bandwidth available @ 66 MHZ, 32h. average
`
`80 MBIs
`
`512 B
`
`156,150 frames I s
`
`SIZBIframe
`
`15363 I frame
`
`240M315
`
`202MBI5
`
`EMNIBIs
`
`SO‘MBIS
`
`46MBIS
`
`SGMBIS
`
`”MB-'5
`
`manners
`
`92MBIs
`
`100MBIS
`
`lflmls
`
`200MBIs
`
`m 1
`
`|
`
`I1
`
`l1
`
`PC! Bandwidth available @ 30 MHz, 64]), average
`
`PC] Bandwidth available (a 33 MHz. 64h, average
`
`PCI Bandwidth available @ 60 Mill, 64b. average
`
`PCI Bandwidth available @ 66 MHz, 64h. average
`
`1- Cpn Bandwidth
`
`Receive frame interval = 5123 I 40MBIs
`
`12.8us
`
`[instructions I frame @ 60m = films/frame) I (50ninnsn'uctinn)
`instructionsIframe
`
`Inmnctlnns I frame @ 66MB: == (12.8usfframe} I (45mlin511'ueti0n)
`instructionslfi'ame
`
`Required instructions I frame (per Clive)
`
`E
`
`150 “mathMIN
`
`
`
`,...::with"I“:iii"if~"125::1:11!iii:'Ti.‘.5“tim
`
`
`
`
`
`
`
`Provisional Pet. App. of Alaeritech, Inc.
`Inventors Laurence B. Rancher et 9.1.
`
`Express Mail Label if EH756230105US
`
`75
`
`Dianne/9
`
`"I'lfi
`
`ALA00138451
`
`DELL Ex.1031.079
`Ex.1031.079
`
`DELL
`
`

`

`. Performance Features
`
`- 512 registers improve performance through reduced scratch ram accesses and reduced instructions.
`
`- Register windowing eliminates context-switching overhead.
`
`- Separate instruction and data paths eliminate memory contention.
`
`- Totally resident control store eliminates stalling during instruction fetch.
`
`- Multiple logical processors eliminate context switching and improve realitime response.
`
`- Pipelined architecmre increases operating frequency.
`
`- Shared register and scratch ram improve inter-processor corrununication.
`
`— Fly-by state-Machine assists address compare and checkmm calculation.
`
`- 'l‘CPer—eontext caching reduces latency.
`
`- Hardware implemented queues reduce Cpu overhead and. latency.
`
`- Horizontal microcode greatly improves instruction efficiency.
`- Automatic frame DMA and status between Mac and dram buffer.
`
`- Deterministic architecture coupled with context switching eliminates processor stalls.
`
`31,;
`SW
`Fl:hi
`
`fi‘.
`9:;
`
`£3:
`
`a n
`
`;
`1::
`. .3
`. 1-"!
`
`
`
`Provisional Pat. App. of Alacritcch. Inc.
`Inventors lantern: B. Rancher et a1.
`Express Mail label {I EH756230105US
`
`76
`
`fl'ioflinfiitifino a E o
`
`'
`
`ALA00138462
`
`DELL Ex.1031.080
`Ex.1031.080
`
`DELL
`
`

`

`PROCESSOR
`
`The processor is a convenient means to provide a progranunabie state-machine which is capable of processing
`incoming frames, processing host commands. directing network traffic and directing PCI bus traffic. Three
`processors are implemented using shared hardware in a three—level pipelinetl architecuire which launches and
`completes a single instruction for

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