throbber
ORACLE EXHIBIT 1002
`
`ORACLE EXHIBIT 1002
`
`PART 3
`
`PART 3
`
`
`
`

`
`'“K)9DW3788
`
`PCUUS90/0471]
`
`-80-
`
`To commence the transfer of the next segment of the
`block of data to be transferred,
`the master drives
`Ds0* low 739 and, after a predetermined period of
`time, drives DSO* high 741.
`'-In response to the
`transition of DSO* from high to low,
`respectivelyv739
`and 741, the slave latches the data being broadcast by
`the master over data lines D00 through D31, 743.
`The
`master places the next
`segment of
`the data to be
`transferred on data lines D00 through D31, 745,
`_
`awaits receipt of a DTACK* signal
`in the form of a
`high to low transition, 747.
`after
`The slave then drives DTACK* low, 749, and,
`a predetermined period of time, drives DTACK* high,
`751.. The data latched by the slave, 743,
`is written
`to the device selected to store the data and the
`device address is incremented 753.
`The slave waits
`for another transition of DSO* from high to low 737.
`The transfer of data will continue in the above-
`described manner until all of
`the data has been
`transferred from the master to the slave.
`After all.
`of
`the data has been transferred,
`the master will
`release the address lines, address modifier
`lines,
`data lines,
`IACK* line, LWORD*
`line and DSO*
`line,
`755.
`’The master will
`then wait for receipt of a
`DTACK* high to low transition 757.
`The slave will
`drive DTACK*
`low,
`759 and, after
`a predetermined
`period of time, drive DTACK* high 761.
`In response to
`the receipt of the DTAcK* high to low transition, the
`master will drive As* high 763 and then release the
`As* line 765.
`
`Fig.
`is
`a
`flowchart
`8, parts
`A
`through C.
`illustrating the operations involved in accomplishing
`the fast
`transfer protocol BLOCK READ cycle.
`To
`initiate-a BLOCK READ cycle, the master broadcasts the
`memory address of the data to be transferred and the
`address modifier across the DTB bus 801.
`The master
`
`sussnturs sues .
`
`Oracle Ex. 1002, pg. 1201
`
`

`
`WO 91/03788
`
`PCT/US90/0471 1
`
`_81_
`
`drives the LWORD* signal low and the IACK* signal high
`801.
`
`As noted previously, a special address modifier
`indicates to the slave module that the fast transfer
`
`'protocol will be used to accomplish the BLOCK READ.
`The slave modules connected to the DTB receive the
`
`address and the address modifier broadcast by the
`
`master across the bus and receive LWORD* low and IACK*
`
`high 803. Shortly after broadcasting the address and
`address modifier 801, the master drives the AS* signal
`low 805.
`607.
`
`The slave modules receive the As* low signal
`
`Each slave individually determines whether it
`
`will participate in the data transfer by determining
`whether the broadcasted address is valid for the slave
`If the address is not valid,
`the
`
`in question 809.
`data transfer does not involve that particular slave
`
`the data transfer
`and it ignores the remainder of
`4
`cycle.
`The master drives WRITE* high to indicate that the
`
`transfer cycle about to occur is a READ operation 811.
`The slave receives the WRITE* high signal 813 and,
`knowing that the data transfer operation is a READ
`operation, places the first segment of the data to be
`transferred on data lines D00 through D31 819.
`The
`master will wait until both DTACK* and BERR* are high
`
`818, which indicates that the previous slave is no
`longer driving the DTB.
`The raster then drives DSO* low 821 and, after a
`The »
`drives DSO* high 823.
`
`predete mined interval,
`master then awaits a high to low transition on the
`As
`shown in Fig.
`
`the
`8B,
`line 824.
`DTACK* signal
`slave then drives the DTACK* signal low 825 and, after
`a predetermined period of
`time, drives the DTACK*
`signal high 827.
`
`In response to the transition of DTACK* from high
`to low, respectively 825 and 827,
`the master latches"
`the data being transmitted by the slave over data
`
`sussmune sum
`
`Oracle Ex. 1002, pg. 1202
`
`

`
`W091/03788
`
`PCI'IUS90/0471]
`
`-82-
`
`The data latched by the
`lines n'oo through D31, 331.
`master, 831,
`is written to a device, which has been
`selected to store, the data the device address
`is
`incremented 833.
`A
`
`The slave places the next segment of the data to be
`
`transferred on data lines D00 through D31, 829, and
`then waits for another transition of DSO* from high to
`low 837.
`'
`V
`
`To commence the transfer of the next segment of the
`block of data to be transferred,
`the master drives
`DSO*
`low 839 and, after a predetermined period of
`time, drives DSO* high 841. The master then waits for
`
`the DTACK* line to transition from high to low, 843.
`_The ‘slave drives nmczv law, 845, and, after a
`predetermined period of time, drives DTACK* high, 847.
`In response to the transition of DTACK* from high to
`low, respectively 839 and 841,
`the master latches the
`
`data being transmitted by the slave over data lines
`D00 through D31, 845. The data latched by the master,
`845,
`is written to the device selected to store the
`data,
`851
`in Fig.
`8C,
`and the device address
`is
`
`incremented. The slave places the next segment of the
`data to be transferred on data lines D00 through D31,
`849.
`,
`The transfer of data will continue in the above-
`described manner until all
`of
`the data
`to be
`
`transferred from the slave to the master has been
`
`written into the device selected to store the data.
`
`After all of
`
`the data to be transferred has been
`the master will
`
`written into the storage device,
`lines,
`release the address lines, address modifier
`data lines,
`the Izicrv line,
`the LWORD line and nso*
`line 852.
`The master will then wait for receipt of a
`DTACK* high to low transition 853.
`The_slave will
`drive DTACK* low 855 and, after a predetermined period
`.of time, drive DTACK* high 857.
`In response to the
`
`SUHSTITUTE SHEET
`
`Oracle Ex. 1002, pg. 1203
`
`

`
`W0 91/03788
`
`PC!‘IUS90/047] 1
`
`-33-
`
`receipt of
`
`the DTACK* high to low transition,
`
`the
`
`master will drive AS* high 859 and release the AS*
`line 861.
`
`implement
`transfer protocol,
`a
`fast
`the
`To
`conventional 64 mA tri—state driver is substituted for
`
`the 48 mA open collector driver conventionally used in
`
`VME slave modules to drive DTACK*.
`
`Similarly,
`
`the
`
`conventional VMEbus data drivers are replaced with 64
`The latter
`
`.mA tri-state drivers in SD-type packages.
`
`modification reduces the ground lead inductance of the
`reduces
`actual driver package
`itself
`and,
`thus,
`“ground bounce" effects which contribute to
`between data,
`
`DSO* and DTACK*,
`
`In addition,
`
`skew
`
`signal
`
`return inductance along the bus backplane is reduced
`
`by using a connector system having a greater number of
`
`ground pins so as to minimize signal return and mated-
`
`pair pin inductance. One such connector system is the
`connector,
`
`Model No. 420-8015-
`
`“High Density Plus“
`
`000, manufactured by Teradyne Corporation.
`I
`
`Oracle Ex. 1002, pg. 1204
`
`

`
`W0 91/03788
`
`PCH7US9&flM71t-
`
`The parity FIFOs 240, 260 and 270 (on the network
`controllers
`and
`and
`(on
`110),
`544
`554
`storage
`
`processors 114) are each implemented as an ASIC. All
`
`the parity FIFOs are identical, and are configured on
`
`power-up or-during normal operation for the particular
`
`function desired.
`
`The parity FIFO is designed to
`
`allow speed matching between buses of different speed,
`
`and to perform the parity generation and correction
`for the parallel SCSI drives.
`
`The FIFO comprises two bidirectional data ports,
`Port A and Port 3, with 36 x 64 bits of RAM buffer
`between them.
`Port A is 8 bits wide and Port B is 32
`
`bits wide.
`
`The RAM buffer is divided into two parts,
`each 36 x 32 hits,
`
`designated RAM X and RAM Y.
`
`The
`
`two ports
`
`the buffer
`Vaccess different halves of
`alternating to the other half when available. when
`
`the chip is configured as a parallel parity chip (e.g.
`
`one of the-FIFOs 544 on SP 1143), all accesses on Port
`
`3 are monitored and parity is accumulated in RAM X
`and RAM Y alternately.
`
`The chip also has a CPU interface, which may be 8
`or 16 bits wide.
`
`In 16 bit mode the Port A pins are‘
`
`used as the most significant data bits of the CPU
`
`interface and are only actually used when reading or
`
`writing to the Fife Data Register inside the chip.
`
`A REQ, ACK handshake is used for data transfer on
`both Ports A and. B.
`The chip may be configured as
`either a master or a slave on Port A in the sense
`
`that,
`
`in master node the Port A ACK / RDY output
`
`signifies that the chip is ready to transfer data on
`
`Port A, and the Port A REQ input specifies that the
`
`slave is responding.
`
`In slave node, however, the Port
`
`A REQ input specifies that the master requires a data
`
`$_llB_S_T!TllTE SHEET
`
`Oracle Ex. 1002, pg. 1205
`
`

`
`\V()9l/03788
`
`PCT/US90/04711
`
`-35-
`
`transfer, and the chip responds with Port A ACK / RDY
`
`The chip is a master on Port
`when data is available.
`B since it raises Port B REQ and waits for Port B ACK
`
`to indicate completion of the data transfer.
`
`EI£NAL_D£§QBIEIIQNfi
`
`Port A 0-7, P
`
`Port'A is the 8 bit data port. Port A P, if used,
`is the odd parity bit for this port.
`
`A Req,
`
`A Ack/Rdy
`
`These two signals are used in the data transfer
`mode to control the handshake of data on Port A.
`
`uP Data 0-7, uP Data P, uPAdd 0-2,
`
`CS
`
`These signals are used by a microprocessor
`
`to
`
`address the programmable registers within the chip.
`
`The odd parity signal uP Data P is only checked when
`data is written to the Fifo Data or Checksum Registers
`and microprocessor parity is enabled.
`
`Clk
`
`The clock input
`
`is used to generate some of the
`
`is expected to be in the 10-20 Mhz
`
`chip timing. It
`range.
`
`Read En, Write En
`
`During microprocessor accesses, while CS is true,
`these
`the
`direction of
`the
`
`signals
`
`determine
`
`microprocessor accesses. During data transfers in the
`
`these signals are data 'strobes used in
`WD mode
`conjunction with Port A Ack.
`'
`
`SUBSTITIITE SHEET
`
`Oracle Ex. 1002, pg. 1206
`
`

`
`W0 9]/03788
`
`PC!‘IU590/0471 I
`
`-35-
`
`Port B 60-07, 10-17, 20-27, 30-37,
`Port B is a 32 bit data port.
`Port B OP is the parity of
`
`0P—3P
`
`There is one odd
`
`parity bit for each byte.
`bits 00-O7, PortB 1P is the parity of hits 10-17, Port-
`
`B 2P is the parity of hits 20-27, and Port B 3P is the
`
`parity of bits 30-37.
`
`B Select, B Reg, E Ack, Parity Sync, B Output Enable
`These signals are used in the data transfer mode to
`control the handshake of data on Port B. Port B Reg
`
`and Port B Ack are both gated with Port 3 select.
`
`The Port B Ack signal is used to strobe the data on
`the Port B data lines.
`The parity sync signal is
`
`used to indicate to a chip configured as the parity
`
`chip to indicate that-the last words of data involved
`in the parity accumulation are on Part B.
`The Port E
`data lines will only be driven by the Fifo chip if all
`conditions are met:
`
`of the following
`a.
`the data
`
`transfer is from Port A to Port B;
`
`b.
`
`c.
`
`d.
`
`Reset
`
`the Port
`
`the Port
`
`B select signal is true;
`
`B output enable signal is true; and
`
`the chip
`is not configured as the parity chip
`the Parity
`or it is in parity correct mode and
`.sync signal is true.
`
`This signal resets all the registers within the
`
`chip and causes all bidirectional pins to be in a high
`impedance state;
`
`DE§§BlRIIQN_Q£_QEEEAIIQE
`
`a
`Normally the chip acts as
`’ ngrma1_Lm§;g;ign.
`A FIFO is simulated by using two
`‘simple FIFO chip.
`RAM buffers
`in a
`
`It
`
`is
`
`simple ping-pong mode.
`
`that data is burst into
`intended, but not mandatory,
`or out of the FIFO on Part B. This is done by holding
`
`low and pulsing the Port B Abk
`Port B Sel signal
`signal. When transferring data from Port B to Port A,
`
`mum saw a
`
`Oracle Ex. 1002, pg. 1207
`
`

`
`W0 91/03788
`
`PCT/US90/047 1 1
`
`-37-
`
`data is first written into RAM X and when this is
`
`full,
`
`the data paths will he switched such that Port
`
`B may start writing to RAM Y. Meanwhile the chip will
`begin emptying RAM X to Port A.
`When RAM Yuis full
`
`and RAM X empty the data paths will he switched again
`such that Port B may reload RAM X and
`Port A may
`
`empty RAM Y.
`
`.
`
`£Q;t_A_§l5ge_Mgdg.
`
`This is the default mode and
`
`In this mode the
`the chip is reset to this condition.
`chip waits for a master
`such as one of
`the SCSI
`
`adapter chips 542 to raise Port A Request for data
`transfer.
`
`If data is available the Fifo chip will
`respond with Port A Ack/Rdy.
`.2Q££_A_H2_MQi£-
`The chip may be configured to run
`in the WD or Western Digital mode.
`In this mode the
`chip must be configured as a slave on Port A.
`It
`
`differs from the default slave node in that the chip
`with Read Enable
`Write Enable
`responds
`or
`as
`
`appropriate together with Port A Ack/Rdy. This mode
`is intended to allow the chip to be interfaced to the
`
`Western Digital 33C93A SCSI chip or the NCR 53C90 SCSI
`chip.
`
`2grt_A_fla§ter_Mgde. When the chip is configured as
`
`a master, it will raise Port A Ack/Rdy when it is
`ready for data transfer.
`This signal is expected to
`
`be tied to the Request input of a DNA controller which
`
`will respond with Port A Reg when data is available.
`
`In order to allow the DMA controller to burst,
`
`the
`
`Port A Ack/Rdy signal will only be negated after every
`8 or 16 bytes transferred.
`
`In parallel write
`
`mode, the chip is configured to be the parity chip for
`
`a parallel transfer from Port 3 to Port A.-
`mode,
`when Port B select and Port B Request are
`asserted, data is
`written into RAM X or RAM Y each
`
`In this
`
`time the Port B Ack signal is received. For the first
`
`_8_ll_B_STlTllTE SHEET
`
`R
`
`Oracle Ex. 1002, pg. 1208
`
`

`
`W0 91/03788
`
`PCI7US90NM7ll
`
`-33-
`
`128 bytes data is simply copied into the
`block of
`selected RAM. The next 128 bytes driven on Port B will
`be exclusive-0Red with the first 128 bytes.
`This
`
`procedure will be repeated for all drives such that
`The Parity
`the parity is accumulated in this chip.
`
`Sync signal should be asserted to the parallel chip
`
`together with the last block of
`
`128 bytes.
`
`This
`
`enables the chip to switch access to the other RAM and
`start accumulating a new 128 bytes of parity.
`E9rI_E_2aral1sl_Bsad_M2ds_:_§hs£h_Dara. This mode
`
`is set if all drives are being read and parity is to
`be checked.
`
`In this case the Parity Correct bit in
`the Data Transfer Configuration Register is not set.
`
`The parity chip will first read 128 bytes on Port A as
`in a normal read mode and then raise Port 8 Request.
`While
`it has
`this
`
`signal .asserted the chip will
`
`monitor the Port 8 Ask signals and exclusive—or the
`data on Port B with the data in its selected RAM. The
`
`Parity Sync should again be asserted with the last
`
`In this mode the chip will not
`block of 123 bytes.
`drive the Port B data lines but will check the output
`
`of its exclusive-or logic for zero.
`set at
`this time a parallel parity error will be
`
`If any hits are
`
`flagged.
`
`R9r1_E_2arallel_3sad_MQda_;_Q9rr§2t_Data-
`
`This
`
`mode is set by setting the Parity Correct hit in the
`
`In this case
`Data Transfer Configuration Register.
`the chip will work exactly as in the check mode except
`
`that when Port B Output Enable, Port B select and
`
`‘Parity Sync are true the data is driven onto the Port
`B data
`lines and a parallel parity check for zero is
`
`not performed.
`
`In the normal mode it is expected that
`A Eyte_§wap.
`Port B bits 00-07 are the first byte, bits 10-17 the
`
`second byte, bits 20-27 the third byte, and bits 30-37
`
`the last byte of each word. The order of these bytes
`
`gussmurasnm
`
`Oracle Ex. 1002, pg. 1209
`
`

`
`W0 91/D3788
`
`PC!‘/US90/0471 1
`
`-89-
`
`may be changed by writing to the byte swap bits in the
`configuration register such that the byte address bits
`are inverted.
`The way the bytes are written and read
`
`also depend on whether the CPU interface is configured
`as 16 or 3 bits.
`The following table shows the byte
`alignments. for the different possibilities for data
`transfer using the Port A Request
`/ Acknowledge
`handshake:
`CPU
`I/F
`
`Invert
`Addr 1
`
`Invert
`Addr 0
`
`Part B
`00-07
`
`Port B
`10-17
`
`Part B
`20-27
`
`Port B
`30-37
`
`3
`
`False
`
`False
`
`False
`
`True
`
`True
`
`False
`
`Tme
`
`True
`
`False
`
`False
`
`False
`
`True
`
`True
`
`False
`
`True
`
`True
`
`Port A
`byte 0
`
`Port A
`byte 1
`
`Port A -
`byte 2
`
`Port A
`byte 3
`
`Port A
`byte 0
`
`uProc
`byte 0
`
`Port A
`byte 1
`
`uProc
`byte 1
`
`Port A
`byte 1
`
`Port A
`byte 0
`
`Port A
`byte 3
`
`Port A
`byte 2
`
`uProc
`byte 0
`
`Port A
`byte 0
`
`uProc
`bytel
`
`Port A
`byte 1
`
`Port A
`byte 2
`
`Port A
`byte 3
`
`Port A
`byte 0
`
`Port A
`byte 1
`
`Port A
`byte 1
`
`uProc
`byte 1
`
`Port A
`byte 0
`
`uProc
`byte 0
`
`Port A
`byte 1
`
`Port A
`byte 2
`
`Port A
`byte 1
`
`Port A
`byte 0
`
`uProc
`byte 1
`
`Port A
`byte 1
`
`uProc
`byte 0
`
`Port A
`byte 0
`
`When the Fifo is accessed by reading or writing the
`Fifo Data Register through the microprocessor port in
`8 bit mode,
`the bytes are in the same order as the
`
`table above but the uProc data port is used instead of
`
`In 16 bit mode the table above applies.
`Port A.
` . If the data transfer is not
`
`a nultiple
`
`of
`
`32 words,
`
`or
`
`128
`
`bytes ,
`
`the
`
`microprocessor must manipulate the internal registers
`Port
`of the chip to ensure all data is transferred.
`A Ack and Port B Req are normally not asserted until
`
`SUBSTITUTE SHEET
`
`Oracle Ex. 1002, pg. 1210
`
`

`
`W0 9]/03788
`
`PCTIUS90/0471 I
`
`_gg_
`
`all 32 words of the selected RAM are available. These
`signals may be forced by writing to the appropriate
`RAM status bits of the Data Transfer status Register.
`
`When an odd length transfer has taken place the
`wait
`both ports
`are
`microprocessor must
`until
`
`It
`quiescent before manipulating any registers.
`should then reset both of the Enable Data Transfer
`
`bits for Port, A and Port B in the Data Transfer
`
`Control Register.
`
`It must then determine by reading
`
`their Address Registers and the RAM Access Control
`Register whether RAM X or RAM Y holds the odd length
`data.
`It should then set the corresponding Address
`
`Register to a value of 20 hexadecimal, forcing the RAM
`full hit and setting the address to the first word.
`
`Finally the microprocessor should set the Enable Data‘
`Transfer bits to allow the chip to complete the
`transfer.
`
`At this point the Fifo chip will think that there
`
`are now a full 128 bytes of data in the RAM and will
`
`transfer 128 bytes if allowed to do so. The fact that
`
`some of
`
`these
`
`128 bytes are not valid must be
`
`‘recognized externally to the FIFO chip.
`
`BL
`f
`
`IT
`'
`
`'
`
`‘
`
`V
`
`r
`
`W
`
`Register Address 0.
`
`This register is cleared by
`
`the reset signal.
`Set if data transfers are to
`Bit
`0
`E2_M9d§-
`use
`the Western Digital .‘WD33C93A
`protocol, otherwise
`the Adaptec
`6250
`protocol will he used.
`
`if this chip is to
`Set
`Parity Chip.
`accumulate Port B parities.
`
`if the parity
` . set
`chip is to correct parallel parity on
`Port B.
`
`$l.'BsTlT“TE 3”‘
`
`Oracle Ex. 1002, pg. 1211
`
`

`
`WO 91/03788
`
`PCT/US90/04711 -
`
`-91-
`
`the
` . If set.
`microprocessor data bits are combined
`with the Port A data bits to effectively
`produce a 16 bit Port. All accesses by
`the microprocessor as well as all data
`transferred using the Port A Request and
`Acknowledge handshake will
`transfer 16
`bits.
`
`to
` - ’ Set
`invert the least significant bit of Port
`A byte address.
`
`to
`Set
`Invert 29;; 3 byte address 1.
`invert the most significant bit of Port
`A byte address.
`*
`
` - Set to enable the
`carry out of the 16 bit checksum adder to
`carry back into the least significant bit
`of the adder.
`
`to this bit will
`Béigt. Writing a 1
`reset
`the other
`registers. This bit
`resets itself after a maximum of 2 clock
`cycles and will
`therefore normally be
`read as a 0. No other register should be
`written for a minimum of 4 clock cycles
`after writing to this bit.
`
`r
`
`'
`
`R
`
`Register Address 1.
`
`This register is cleared by
`
`the reset signal or by writing to the reset bit.
`Bit
`0 . Set to
`enable the Port A Req/Ack handshake.
`
`Bit
`
`Bit
`
`1
`
`2
`
` .v Set to
`enable the Port B Req/Ack handshake.
`
`If set, data transfer,
`£gzt_A_tg_£g:t_a.
`is from Port A to Part B.
`If reset, data
`transfer is from Port 3 to Port A.
`In
`order
`to avoid any glitches
`on
`the
`request
`lines,
`the state of
`this bit
`should not be altered at the same time as
`the enable data transfer bits 0 or
`1
`above.
`
`suasntufn sum
`
`Oracle Ex. 1002, pg. 1212
`
`

`
`WO 91/037118
`
`'
`
`‘
`
`PCWUS90/04711 -
`
`-92-
`
` . Set if parity
`is to be checked on the microprocessor
`interface.
`It will only be checked when
`writing to the Fifo Data Register or
`reading from the Fifo Data or Checksum
`Registers,
`or
`during
`a
`Port
`A
`Request/Acknowledge transfer in 16 bit
`mode.
`The chip will, however, always
`re-generate parity ensuring that correct
`parity is written to the RAM or read on
`the microprocessor interface.
`
` . Set if parity is
`to be checked on Port A.
`It is checked
`when accessing the Fifo Data Register in
`16 bit mode,
`or
`during
`a Port
`A
`Request/Acknowledge transfer.
`The chip
`will, however, always re—generate parity
`ensuring that correct parity is written
`to the
`RAM or
`read on.
`the Port A
`interface.
`
`Port B
` . Set if
`If it is
`data has valid byte parities.
`generated
`not
`set, _byte parity is
`internally to the chip when writing to
`the RAMs.
`Byte parity is not checked
`when writing from Port B, but always
`checked when reading to Port B.
`
`Set to enable writing
`§hggk§um_£na§1g.
`to the 16 bit checksum register.
`This
`register accumulates a 16 hit checksum
`for all RAM accesses, including accesses
`to the Pifo Data Register, as well as all
`writes to the checksum register.
`This
`bit must be reset before reading from the
`Checksum Register.
`
`if Port A is to
` . set
`operate in the master node on Port A
`during the data transfer.
`
`km_ua
`Register Address 2.
`This register is cleared hy
`the reset signal or by writing to the reset bit.
`
`Bit
`
`O
`
`Y. Set if any bits
`r
`i
`are true in the RAM X, RAM Y, or Port A
`byte address registers.
`
`sussmure SHEET
`
`Oracle Ex. 1002, pg. 1213
`
`

`
`W0 91/03788
`
`PCl'/US90/0471 1
`
`-93-
`
`if the
` . set
`uProc Parity Enable bit
`is set and a
`parity
`error
`is
`detected
`on
`the
`microprocessor interface during any RAM
`access or write to-the Checksum Register
`in 16 bit mode.
`
`Set if the Port A
`is set and a parity
`Parity Enable bit
`error is detected on the Port A interface
`during any RAM access or write to the
`Checksum Register.
`
`Set if
`.
`39;; B garallgl Rarity Ergo:
`the‘ parity
`the chip is configured as
`chip, is not in parity correct mode, and
`a non zero result is detected when the
`Parity Sync signal is true.
`It is also
`set whenever data is read out onto Port
`B and the data being read back through
`the
`bidirectional
`buffer
`does
`not
`compare.
`
` . Set
`whenever the data being read out of the
`RAMS on the Port B side has bad parity.
`
`BanLA22§§£_Q2ntrQl_&&$huu;_lBeadLflritei
`
`Register Address 3. This register is cleared by
`the reset signal or-by writing to the reset hit.
`The
`
`Enable Data Transfer bits in the Data Transfer Control
`Register must be reset before attempting to write to
`
`this register, else the write will be ignored.
`Bit
`0 . This bit is the
`‘
`least significant byte address bit.
`It
`is read directly bypassing any inversion
`done by
`the invert bit
`in the Data
`Transfer Configuration Register.
`
`29;; 5 byte address L. This bit is the
`most significant byte address bit.
`It is
`read directly bypassing any inversion
`done by the invert bit
`in the Data
`Transfer Configuration Register.
`
`Pgr; A :9 33M 2.
`accessing RAM Y,
`accessing RAM X .
`
`if Port A is
`Set
`and reset
`if it
`is
`
`SUBSTITUTE SHEET
`
`Oracle Ex. 1002, pg. 1214
`
`

`
`WO 91103788
`
`_
`
`PCT/US90/04711 '
`
`-94-
`
`if Rort s is
` .‘ Set
`accessing RAM Y,
`and reset
`if
`it is
`accessing RAM X .
`
`If the chip is configured to
`Lgng_fln;s:.
`transfer data on Port A as a master, and
`this bit
`is reset,
`the chip will only
`negate Port A Ack/Rdy after every 8
`bytes, or 4 words in 16 bit mode, have
`been transferred.
`If this bit is set,
`Port A Ack/Rdy will be negated every 16
`bytes, or 8 words in 16 bit mode.
`'
`
`Bits 5-7 ngt_nsg§.
`
`am .|]
`.!
`E
`Bnlxam.
`This register is cleared by
`‘Register Address 4.
`the reset signal or by writing to the reset bit.
`The
`Enable Data Transfer bits in the Data Transfer Control
`
`[3
`
`Register must be reset before attempting to write to
`
`this register, else the write will be ignored.
`Bits O-4
`RAM X word address
`Bit
`5
`RAM X full
`Bits 6-7
`Not Used
`
`
`
`This register is cleared by
`Register Address 5.
`the reset signal or by writing to the reset bit.
`The
`Enable Data Transfer bits in the Data Transfer Control
`
`Register must_be reset before attempting to write to
`
`this register, else the write will be ignored.
`Bits 0-4
`RAM Y word address
`Bit
`5
`RAM Y full
`
`Bits 6-7
`
`Not Used
`
`&mJfia_
`
`Register Address 6.
`
`The Enable Data Transfer bits
`
`in the Data Transfer Control Register must be reset
`
`before attempting to write to this register, else the
`write will be ignored.
`The port A to Port B bit in
`
`SUBSTITUTE SHEET
`
`Oracle Ex. 1002, pg. 1215
`
`

`
`wo 9_1 l03788
`
`PCTIUS90l04711
`
`-95-
`
`the Data Transfer Control register must also be set
`If it is not,
`the RAM
`will be
`
`before writing this register.
`controls will be incremented but no data
`written to the RAM.
`
`For consistency,
`
`the Port A to
`
`PortE should be reset prior to reading this register.
`Bits 0-7 are Fifo Data.
`The microprocessor may
`
`-access the FIFO by reading or writing this register.
`The RAM control registers are updated as if the access
`
`was using Port A.
`bit CPU Interface the most significant byte will use
`the Port A 0-7 data lines, and each Port A access will
`
`If the chip is configured with a 16
`
`increment the Port A byte address by 2.
`
` mnm.
`
`Register Address 7.
`
`This register is cleared by
`
`the reset signal or by writing to the reset bit.
`Bits
`The
`0-7 are Checksum Data.
`chip will
`accumulate a 16 hit checksum for all Port A accesses.
`
`If the chip is configured with a 16 bit CPU interface,
`
`the most significant byte is read on the Port A 0-7
`If data is written directly
`to this
`
`data lines.
`
`register it is added to the current contents rather
`than overwriting them.
`It is important to note that
`the Checksum Enable bit in the Data.Transfer Control
`
`Register must be set to write this register and reset
`to read it.
`
`EEQQRAQMING [[‘_l-IE FIEQ QHIZ
`
`In general the fifo chip is programmed by writing
`to the data
`transfer
`configuration and
`control
`
`registers to enable a data transfer, and by reading
`the data transfer status register at the end of the
`
`transfer to check the completion status. Usually the
`
`take place with both the
`data transfer itself will
`Port A and the Port B handshakes enabled, and in this
`
`case the data transfer itself should be done without
`
`SUBSTITLITESHEET
`
`Oracle Ex. 1002, pg. 1216
`
`

`
`wo 9‘!/03788
`
`PCT/US90/0471 1. _
`
`-96-
`
`In
`interaction.
`any other microprocessor.
`applications, however,
`the Port A handshake may not be
`it will
`be
`the
`
`enabled ,
`
`and
`
`BONE
`
`necessary
`
`for
`
`microprocessor to fill or empty the fifo by repeatedly
`
`writing or reading the Fifo Data Register.
`
`Since the fifo chip has no knowledgeof any byte
`
`counts,
`
`there is no way of
`
`telling when any data
`
`transfer is complete by reading any register within
`this chip itself.
`Determination of whether the data
`
`transfer has been completed must therefore be done by
`some other circuitry outside this chip.
`
`The following C language routines illustrate how
`
`the parity FIFO chip may be programmed. The routines
`
`assume that both Port A and the microprocessor port
`
`are connected to the system microprocessor, and return
`
`a
`
`size code of
`
`16 bits, but
`
`that
`
`the hardware
`
`addresses the Fifo chip as long 32 bit registers.
`
`struct FlFO__regs {
`unsigned char config,a1,a2,a3 ;
`unsigned char controI,b1,b2,b3;
`unsigned char status,c1,c2,c3;
`unsigned char ram access_corrtrol,d1,d2,d3;
`unsigned char ram:X addr,e1.e2.e3;
`unsigned char ram_Y:addr,f1,f2,f3;
`unsigned long data;
`L}1nsigned Int checksum.h1;
`
`#define FIFO1 ((struct FIFO__regs*) F|F0_BASE;_ADDRESS)
`
`#deflne FlF0__RESET 0x80
`#define FIFO 16 srrs 0x08
`#define Flsojczmnv WRAP 0x40
`#deflne FlF0_PORT K_ENABLE 0x01
`#define FlFO_PORT:B_ENABLE 0x02
`#deflne FlFO_PORT_ENABLES oxoa
`#define FlF0_PORT A TO B 0x04 .
`#define FIFo_cHEcT<s‘uM"ENAsLE 0x40
`#define FlFO_DATA_lN_R/KM 0x01
`#dei_ine FlFO_FORCE_FIAM_FULL 0x20
`
`#define PORT A_TO PORT B(fifo) ((fifo-> control) & 0x04)
`#define POR‘l’:A_BYTE_ADfiRESS(fifo)' ((fifo—>ram_access_contro|) &
`0x03)
`'

`#dsfine PORT A_TO__RAM Y(fifo)
`#define PORT:B_T0_RAM_'_Y(fifo)
`
`0x04)
`((fifo->ram aocess_contra|) &
`((fifo-> rarr'f_access__oontrol) & 0x08)
`
`suasinura sum
`
`Oracle Ex. 1002, pg. 1217
`
`

`
`W0 91/03788
`
`PCTIUS90/0471 I
`
`-97-
`
`l***t*1*****tttttt**i*****fl'ktt*tttitt*ttt*iit*tt***fl*i'*******
`The following routine Initiates a File data transfer using two
`values passed to it.
`
`config__data
`
`This is the data to be written to the configuration register.
`
`controI_data This is the data to be written to the Data Transfer Control
`Register.
`If the data transfer is to take place
`automatically using both the Port Aand Port 3
`handshakes. both data transfer enables bits should be
`set in this parameter.
`I'f*i'fi**iIt&'kfi*‘k*tt*'IR*‘I*f'kCI‘I*2tflQ*fl*tltfifiittttfiifititttiifif
`
`FIFO initiate data transfer(config data, control_data)
`unsigTied char oonTig_data. control_data;
`{
`
`.
`FIFO1->oonfig = oontig data | FlFO_FlESEl';
`Configuration value & Reset 7/
`FIFO1->control = control data 8. (~FlFO_PORT_ENABLES):
`everything but enaBles */
`FlFO1->control = control_data;
`enables */
`
`/* Set
`
`/* Set
`
`-
`
`/* Set data transfer
`
`} l
`
`tt**i~l*i't‘fit*t***Ifl*ti'*t*i*tI‘t'ktfl'*if*ifi1*l'tkttiitiiflflifititfl
`The following routine forces the transfer of any odd bytes that
`have been left in the Frfo at the end of a data transfer.
`It first disables both ports, then forces the Ram Full bits, and then
`re-enables the appropriate Port.
`‘
`'ki*i'I'k**i§*#fi'IfQflf*f**Ii
`K*t*t* /
`
`FlFO_fcrce_cdd__length__transfer0
`{
`*
`
`.
`A
`FlFO1->control &= --FlF0_PORT_ENABLES; /* Disable Parts A & B
`
`if (PORT A TO POBT_B(F|FO1)) {
`i1'(POn'r" A TO_FlAM_Y(FIF01)) {
`FTF51->rarn_Y_addr = FlFO_FORCE_FlAM_FULL: /*
`
`Set RAM Y full -/
`
`} e
`
`lse FIFO1->ram_X_addr = FlFO_FORCE_RAM_FULL:
`RAM X full */
`FlFO1->control l= FIFO_POFlT_B_ENABLE;
`Re-Enable Port B */
`
`/* _Set
`
`/*
`
`} e
`
`lse {
`
`{
`if (POFlT_B T0_FtAM Y(Fll-'01))
`FIFGI->ram_7_addr = F|FO_FORCE_RAM__FULL;
`
`Set RAM Y full */
`
`/*
`
`} e
`
`lse FlFO1->ram_X_addr = FlFO_FOFlCE_RAM_FULL: /* Set
`RAM X full */
`
`EZSBSTITHTE SHEET
`
`Oracle Ex. 1002, pg. 1218
`
`

`
`W0 91/03788
`
`PCT/U590/04711
`
`-98-
`
`' FlFO1->control |= FlFO__PORT_A'__ENABLE;
`Re-Enable Port A */
`}
`
`/*
`
`} I
`
`ititttiiiiititiiiiiiiiiftiiiiittfiiiifl*Ifi**ii*iti**tii*iiii*
`The following routine returns how many odd bytes have been
`left in the Fifo at the end of a data transfer.
`iittikiiit**itiiiifittitti*t**t**!I**It*i*t*it**tfi*flIt**fli**/
`
`iitt FlF0_count_odd_bytes0
`int number odd_bytes;
`number_o<Td_bytes=O;
`if (FIFO1->status & FIFO DATA IN RAM)
`if (PoRT_A_To_PZ'JRT_B'(FIFo1)) {
`number odd bytes =
`(PORT_A_BYTE_ADDRES§(FlF61» ;
`if (POFlT_A_T0_FiAM Y(FlFO1))
`number__odd__Bytes + = (FlF01—>ram_Y_addr) *
`
`4 ;
`
`else number_odd_bytes + = (FIFO1->ram_X_addr) * 4 ;
`
`else {
`
`}
`
`if (PORT_B TO_FiAM v(r=n=o1))
`num'ber odd_Bytes = (FIFO1->ram,_Y_addr) * 4 ;
`else number_o3d_bytes = (FIFO1->ram_X_addr) * 4;
`I
`
`return (number_odd_bytes);
`
`} !
`
`*fifi**it****t******ii*iittiiiitiiiiiiiiltiiiiittttfiittfliifitf
`The following routine tests the microprocessor interiace of the
`It first writes and reads the first 6 registers.
`It then writes 1s. Os, and
`chip.
`an address pattern to the RAM, reading the data back and checking it.
`
`The test returns a bit significant error code where each bit
`represents the address of the registers that failed.
`
`Bit 0 = oonfig register tailed
`Bili = control register tailed
`Bit 2 = status register failed
`Bit 3 = ram access control register failed
`Bit 4 = ram X address register failed
`Bit 5 = ran1 Y address register failed
`Bit 6 = data register failed
`Bit 7 = checksum register failed
`ItiiI*iii*t*tit*IIttiiIt**t*i*t*ti*Qflii**ti*itit**I***fi**fiil
`
`#deiine RAM_DEPTH s4
`
`/* number of long words in Fife Flam’ *1
`
`reg_expected_data[6] = {Ox7F. D_xFF. 0x00, OX1 F. 0x3F. 0x3F };
`
`8lJll_S_TlT|liE SHEET
`
`Oracle Ex. 1002, pg. 1219
`
`

`
`W0 91/03788
`
`'
`
`PC!‘IUS90/0471 1
`
`-99-
`
`:{:har FlFO_uprocessor_interface_testo
`unsigned long test_data;
`char *register_addr;
`int I;
`char j,error;
`FIFO1->config = FiFO_RESEi';
`error=O;
`register_addr = (char *) FIFO1;
`i=1:
`
`/* first test registers 0 thru 5 */
`
`tor G=0; i<6; i++) {
`/* write test data */
`*register_addr = OxFF;
`it (‘register addr i= reg_expected__data[I]) error. | = J;
`*register_aHdr = 0:
`/* write us to register */
`if (*register_addr) error [= j;
`’
`/* write test data again */
`*register_addr = 0xFF;
`i1‘(*register_addri= reg_expected_datafi]) error |= 1;
`FIFO1->oonfig = FIFO RESEF;
`/* reset the chip */
`if (*reglster_addr) error'| = J; /' register should be 0 */
`register_addr+ +;
`/* go to next register */
`j < < =1;
`
`/" new test Ram data & checksum registers
`test is throughout Ram & then test Os */
`
`tor (test_data = -1; test_data l= 1; test_data+ +)
`& Os */
`
`{
`
`/* test for is
`
`FIFO1->oontig = FiFO.RESET | FIFO 16_BlTS;
`FIF01->oontrol = FIFO‘ POFiT_A_TO_§;
`for (i=0;i<RAM_DEPTH?i+ +)
`
`/* write data to RAM
`
`*/
`
`FiFO1->data = test_data;
`FiF01->oomrol = 0;
`for G=0;i<FtAM_DEPTH;i+ +)
`It (FIFO1->data != test_data) error |= j;
`
`check data */
`if (FIFO1->checksum) error |= 0x80;
`should = O */
`.
`}
`
`‘
`/* read &
`
`/* checksum
`
`/* new test Ram data with address pattern
`uses a different pattern for eve

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