throbber
ID
`
`20
`
`25
`
`EP 0 067 556 B1
`
`second inputs oi Times 1 And Times 2 Multiply Shifter (MULTSHI-T12) 20366 and Times 4 And Times 8
`Multiply Shifter (MULTSHFT48l 20368. Outputs of MULTSHI-T12 and MULTSHFTB are connected.
`respectively, to first and second inputs of First Multiplier Arithmetic and Logic Unit (MULTALU1) 20370.
`MULTALU1 20370’s output is connected to input of Multiplier Working Register (MWR) 20372. Output of
`MWR 20372 is connected to a_ first input of Second Multiplier Arithmetic and Logic Unit (MULTALU2) 20374.
`A second input of MULTALU2 20374 is connected from output of RFR 20336. Output of MULTALU2 is
`connected to a second input of FRS 20362. As described above, first input of FR5 20362 is connected from
`output of NIBSHF 20368. Output of FRS 20362 is connected to input of RFR 20336.
`As described above, output of RFR 20338 is connected to second input of MULTALU2 20374. to iirst
`input of MULTRF 20350, to first input of MULTRM 20334, and to second input of FROM 20324. Output of
`RFR 20338 is also connected to input of Leading Zero Detector (LZD) 20376 of MULTCNTL 20318. and to
`inputs of Exception Logic (ECPT) 20378, CONSIZE 20352, and TSTINT 20320.
`
`4. Exponent Logic 20316
`Referring to EXP 20316. as previously described EXP 20316 performs certain operations with respect to
`exponent fields of single and double precision floating point number in EU 10122 floating point operations.
`EXP 20316 includes a second portion of EU 10122's general "register file, shown herein as Exponent Register '
`File (EXPRFl 20380. Although indicated as individual register files, MULTRF 20350 and EXPRF 20380
`comprise, as in GRF 10354, a unitary register file structure with common, parallel addressing of
`corresponding registers therein.
`Output of EXPHF 20380 is connected to a second inpLt of INSELA 20330. Aflrst input of EXPRF 20380 is
`connected from output of EXRM 20332. As previously described, a first input of EXRM 20332 is connected
`from second output of OPB 20322 through EXPO Bus 20325. A second input of EXRM 20332 is connected
`from output Sle Register (SCALER) 20338. A second input of EXPRF 203% is connected from output of
`Sign Logic (SIGN) 20382. lnput of SIGN 20382 is connected from second output of SCALER 20338.
`INSELA 20330. INSELB 20348, Exponent ALU (EXPALU) 20384 and SCALER 20338 comprise EXP
`20316's arithmetic circuitry for manipulating exponent fields of floating point numbers. INSEU-\ 20330 and
`INSELB 20348 select. respectively, first and second inputs to EXPALU 20384. As previously described. a first
`input of |NSEl..A 20330 is connected from second output of OPB 203% through EXPO Bus 20325. Second
`input of INSELA 20330 is connected from output of EXPRF 20380. Output of INSEIA 20330 is connected to
`first input of EXPALU 20384. First input of INSELB 20348 is. as previously described, connected from a
`second output of mCRD 20346. Second input of INSELB 20348 is connected from output of OPB 20322
`through EXPO Bus 20325. Third input of INSELB 20348 is connected from output of SCALER 20338 and
`fourth input of INSELB 20348 is connected from output of l.ZD 20376. Output of INSELB 20348 is connected
`to second input of EXFALU 20348. Output of EXPALU 20348 is connected to input of SCALER 20338.
`As previously described. second output of SCALER 20338 is connected with input of SIGN 20382 and
`first output is connected to second input of EXRM 20332 and to third input of INSELB 20348. First output of
`SCALER 20338 is also connected to EXPO Bus 20325, to first input of EXOM 20326, and to a second input of
`MULTCNT 20364.
`
`5. Multiplier Control 20318
`As previously described, MULTCNTL 20318 provides certain control signals and information for
`controlling and coordinating operation of EXP 20316 and MULT 20314 in performing arithmetic operations
`on floating point numbers. MULTCNTL 20318 includes LZD 20376 and MULTCNT 20364. Input of LZD 20376
`is connected from output of RFR 20336 through FR Bus 20337. Output of LZD 20376 are connected to a
`second input of MULTCNT 20364 and to fourth input of INSELB 20348. A second input of MULTCNT 20364
`is connected from output of SCALER 20338. As previously described, control output of MULTCNT 20364 is
`connected to control inputs of N|BSHF 20358.

`
`.60
`
`6. Test and Interface Logic 20&0
`Finally, TSTINT 20320 includes ECPT 20378, CONSIZE 20352, and Testing Condition Logic (TSTCON)
`20386. input of ECPT 20378 and first input of CONSlZE 20352 are connected from output of RFR 20336
`through FR Bus 20337. A second input of CONSIZE 20352 is connected from LENGTH Bus 20226. An output
`of CONSIZE 20352 is connected, together with other inputs from EU 10122 (not shown for clarity of
`presentation) to TSTCON 20386. Output of TSTCON 20386 (not shown for clarity of presentation) are
`connected to NAG 20340. TSTCON 20388 {and ECPT 20378 have outputs to and inputs from FU 10120's
`FUlNT 20298.
`Having described the overall structure of EU 10122 above, operation of EU 10122 will be described next
`below with aid of further diagrams which will be introduced as required. Finally, operation of TSTINT 20320
`will be described, including a description of the detailed control signal interface between EU 10122 and FU
`10120 through TSTlNT 20320 and FUINT 20298. In addition to defining the interface between EU 10122 and
`FU 10120, certain features of EU 10122 operation will be described wherein those operations are executed
`
`103
`
`Petitioner Apple Inc. - Ex. 1025, p. 4001
`
`Petitioner Apple Inc. - Ex. 1025, p. 4001
`
`

`
`' EP oos75se 31‘
`
`in cooperation with MEM 10112 and FU 10120. For example, EU 1o122's Stack Mechanisms, comprising in
`part portions of MULTRF 20350 and EXPRF 20380, resides partly in MEM 10112 so that operation of EU
`10122's Stack Mechanisms requires cooperative operations by EU 10122, MEM 10112 and FU 10120.
`
`b. Execute Unit 10122 Operation (Fig. 255)
`'
`1. Execute Unit Control Logic 20310 (Fig. 255)
`Referring to Fig. 255, a more detailed block diagram of EUCL 20310 is shown. As described above.
`EUCL 20310 receives EU 10122 Dispatch Pointers through EUDIS Bus 20206 from EUSDT 20266 and FUCTL
`_20214. EU 10122 Dispatch Pointers select certain EU 10122 micnoinstruction sequences for executing EU
`10122 arithmetic operations as required to execute user's programs, that is SOPs, and to assist in handling
`JP 10114 Events. As described above, major elements of EUCL 20310 include COMO 20342, EUSITT 20344,
`mCRD 20346. and NAG 20340.
`'
`
`-
`
`10
`
`15
`
`a.a. Command Queue 20342
`Inputs of COMO 20342 are connected from EUDlS Bus 20206 to receive and store EU 10122 Dispatch
`pointers provided from EUSDT 20266. Each such EU 10122 Dispatch Poimer is comprised of two
`information fields. A first information field contains a 10 bit starting address of a corresponding sequence
`of microinstructions residing in EUSITT 20344. Second field of each EU 10122 Dispatch Pointer is a 6 bit
`field containing certain control information. such as information identifying data format of corresponding
`operands to be operated upon. In this case unit dispatch pointer control field bits specify whether operands
`to be operated upon comprise signed or unsigned integer, packed or unpacked decimal, or single or double
`precision floating point numbers.
`COMO 20342 is comprised of two one word wide by two word deep register files. A first of these
`register fields is comprised of SOP Command Oueue Control Store (COOS) 25510 and SOP Command
`Queue Address Store (COASl 25512. Together, COCS 25510 and COAS 25512 comprise a one word wide by
`two word deep register file for receiving and storing EU 10122 Dispatch Pointers corresponding to SOPs,
`that is Dispatch Pointers for initiating EU 10122 operations direcfly concerned with executing a user's
`program. Address fields of these SOPs are received in COAS 25512, while control fields are received and
`stored in COCS 25510. COMO 20342 is thereby capable of receiving and storing up to two sequential EU
`10122 Dispatch Pointers corresponding to user program SOPs Those SOP derived Dispatch Pointers are
`executed in the order received from FU 10120. EU 10122 is thereby capable of receiving and storing one
`currently executing SOP Dispatch Pointer and one pending SOP Dispatch Pointer. Further SOP Dispatch
`Pointers may be read into COMO 20342 as previous SOPs are executed.
`
`b.b. Command Queue Event Control Store 25514 and Command Queue Event Address Control
`Store 2516
`Command Queue Event Control Store lCOCE) 25514 and command Queue Event Address Control
`Store (COAE) 25516 are similar in function and operation to, respectively, COCS 25510 ad COAS 25512.
`COCE 25514 and COAE 25516 receive and store. however, EU 10122 Dispatch Pointers initiating EU 10122
`operations requested by FU 10120 as required to handle JP 10114 Events. Again, COCE 25514 and COAE
`25516 comprise a one word wide by two word deep register file. COAE 25516 receives and stores address
`fields of Event Dispatch Pointers, while COCE 25514 receives and stores corresponding control fields of
`Event Dispatch Pointers. Again, COMO 20342 is capable of receiving and storing up to two sequential Event
`Dispatch Pointers at a time.
`'
`'
`As indicated in Fig. 255, outputs of COAS 25512 and COAE 25516, that is address fields of EU 10122
`Dispatch Pointers are provided as inputs to Select Case Multiplexer (SCASE) 25518 and Starting Address
`Select Multiplexer (SAS) 25520 and NAG 20340. which will be described further below. Control field
`outputs of (2065 25510 and COCE 25514 are provided as inputs to OPB 20322, described further below.
`
`55
`
`c.c. Execute Unit $—lnterpreter Table 20344
`Referring to EUSi'lT 20344, as described above EUSITT 20344 is a memory for storing sequences of
`microinstructions for controlling operation of EU 10122 in response to EU 10122 Dispatch Pointers received
`from FU 10120. These microinstruction sequences may, in general, direct operation of EU 1012210 execute
`arithmetic operations in response to SOPs of users programs, or aid direct execution of EU 10122
`operations required to service JP 10114 Events. EUSTTT 20344 may be, for example, a 60 bit wide by 1,280
`word long memory structured as pages of 128 words per page. A portion of EUSITT 20344’s pages may be
`contained in Read Only Memory, for example for storing sequence of microinstructions for handling JP
`10114 Events. Remaining portions of EUSl‘lT 20344 may be constructed of Random Access Memory, for
`example for storing sequences of microinstructions for executing EU 10122 operations in response to user
`program SOPs. This structure allows EU 10122 microinstruction sequences concerned with operation of JP
`10114's internal mechanisms, for example handling of JP 10114 Events. to be effectively permanently
`
`104
`
`Petitioner Apple Inc. - Ex. 1025, p. 4002
`
`Petitioner Apple Inc. - Ex. 1025, p. 4002
`
`

`
`an 0057 556 B1
`stored in EUSITT 20344. That portion of EUSITT 20344 constructed of Random Access MemOl'V 018V P9
`used to store sequences of micminstructions for executing SOPs. These Random Access Memories may be
`used as writable control store to allow sequences of microinstructions for executing SOPs of one or more
`S-Languages currently being utilized by CS 10110 to be written into EUSlTl' 20344 from MEM 10112 as
`required.
`As previously described, EUSITT 20344's second input is a Data (DATA) input connected from JPD Bus
`10142. EUSITT 20344's data input is utilized to write sequences of microinstructions into EUSl‘iT 20344
`from MEM 10112 through JPD Bus 10142. EUSITT 20344's first input is an address lADR) input connected
`from output of Address Driver (ADRD) 25522 and NAG 20340. Address inputs provided by ADRD 2552
`select word locations within EUSITT 20344 for writing of microinstructions into EUSl'lT 20344. or for
`reading of microinetructlons from EUSITT 20344 to mCRD 20346 to control operation of EU 10122.
`Generation of these address inputs to EUSITT 20344 by NAG 20340 will be described further below.
`
`15
`
`20
`
`25
`
`d.d. Microcode Control Decode Register 20346
`Output of EUSl'iT 20344 is connected to input of mCRD 20346. As previously described, mCRD 20346 is
`a register for receiving microinstructions from EUSITT 20344, and decoding logic for decoding those
`mlcrolnstructions and providing corresponding control signals to EU 10122. As indicated in Fig. 255,
`Diagnostic processor Micro-Program Register (DPmR) 25524 is a 60 bit register connected in par-allelwith
`output of EUSITT 20344 to input of mCRD 20346. DPmR 25524 may be loaded with 60 bit microinstructions
`by DP 10118. Diagnostic microinstructlons may thereby be provided directly to input of mCRD 20346 to
`provide direct microinstruction by microinstruction control of EU 10122.
`Outputs of mCRD 20346 are provided, in general, to all portions of EU 10122 to control detailed
`operations of EU 10122. Certain outputs of mCRD 20345 are connected to inputs of Next Address Source
`Select Multiplexer (NASSl 25526 and Long Branch Page Address Gate (LBPAGl 25528 and NAG 20340. As
`will be described further below, these outputs of mCFiD 23046 are used in generating address inputs to
`EUSI'lT 20344 when particular microinstructions sequences can for Jumps or Long Branches to other
`microinstruction sequences. Outputs of mCRD 20346 are also connected in parallel to inputs of Execution
`Unit Micro-lnstmction Parity Check Logic lEUmlPC) 25530. EUmlPC 25530 checks parity of all
`mlcroinstruction outputs of mCFlD 20346 to detected errors in mCRD 2034625 outputs.
`
`—
`e.e. Next Addrew Generator 20340
`As described above, read and write addresses to EUSITT 20344 provided by NAG 20340 through ADRD
`25522. Address inputs to ADRD 255R are provided from either NASS 25526 or Diagnostic Processor
`Address Register (DPAR) 25532. In normal operation. address inputs to EUSITT 20344 are provided from
`NASS 25526 as will be described momentarily. DP 10118, however, may load EUSITT 20344 addresses into
`DPAR 25532. These addresses may then be read from DPAR 25532 through ADRD 25522 to individually
`select address locations within EUSl'iT 20344. DPAR 25532 may be utilized. in particular, to provide
`addresses to allow stepping through of EU 10122 mlcroinstruction sequences microinstruction by
`microinstructicn.
`As described above, NASS 25526 is a multiplexer having inputs from three NAG 20340 address
`sources. NASS 25526's first address input is from Jump (JMP) output of mCRD 20346 and LBPAG 25523.
`These address inputs are utilized, in part, when a current microinstruction calls for a Jump or Long Branch
`to another microinstruction or microinstruction sequence. Second address source is provided from SAS
`25520 and. in general, is comprised of starting addresses of microinstruction sequences. SAS 25520 is a
`multiplexer having a first input from CQAS 25512 and COAE 25516, that is starting addresses of
`microinstruction sequences corresponding to SOPs or for servicing JP 10114 Events. A second SAS 25520
`input is provided from Sub—routine Return Address Stack (SUBRA) 25534. in general, and as will be
`described further below. SUBRA 25534 operates as a stack mechanism for storing current microinstruction
`addresses of interrupted microinstruction sequences. These stored addresses may subsequently be
`utilized to resume execution of those interrupted microinstructlon sequences. Third address source to
`NASS 25526 is provided from Sequential and Case Address Generator (SCAG) 25536. In general, SCAG
`25536 generates address to select sequential microinstructions within particular microinstruction
`sequences. SCAG 25536 also generates microinstruction address for microinstruction Case operations. As
`indicated in Fig. 255, outputs of SCAG 25536 and of SAS 25520 are bused together to comprise a single
`NASS 25526 input. Selection between outputs of SCAG 25536 and SAS 25520 are provided by control
`inputs (not shown for clarity of presentation) to SCAG 25536 and SAS 25520. Selection between NASS
`25526's address inputs is controlled by Next Address Source Select Control Logic (NASSC) 25538, which
`provides control inputs to NASS 25526. NASSC 25538 is effectively a multiplexer receiving control inputs
`from TSTCON 20386 and TSTINT 20320. As will be described further below. TSTCON 20386 monitors
`certain operating conditions or states within EU 10122 and provides corresponding inputs to NASSC 25533
`NASSC 25538 effectively decodes these control inputs from TSTCON 20386 to provide selection control
`input to NASS 25526.
`Having described overall structure and operation of NAG 20340, operation at NAG 20340 will be
`
`105
`
`Petitioner Apple Inc. - Ex. 1025, p. 4003
`
`Petitioner Apple Inc. - Ex. 1025, p. 4003
`
`

`
`10
`
`15
`
`20
`
`25
`
`er 0 067 555 31
`described in further detail next below.
`Fiefening first to NASS 25526's address inputs provided from JMP output of mCRD 20346 and LBPAG
`25528, this address source is provided to allow selection of a next microinstruction by a current
`microinstruction. JMP output of mCRD 20346 allows a current microinstruction to direct a Jump to another
`microinstruction within the same page of EUSITT 20344. NASS 25525's input through LBPAG 25528 is
`provided from another portion of mCRD 20346’: output specifying pages within EUSITT 20344. This input
`through LBPAG 25528 allows execution of Long Branch operations, that isjumps from a microinstruction in
`one page of EUSITT 20344 to a microinstruction in another page. In addition, NASS 25526’s input from JMP
`output of mCRD 20346 and through LBPAG 25528 is utilized to execute an idle, or Standby, routine when
`EU 1012 is not currently executing a microinstruction sequence requested by FU 10120. In this case, idle
`routine directs TSTCON 20386 to monitor EU 10122 Dispatch Pointer inputs to EU 10122 from FU 10120. If
`no EU 10122 Dispatch Pointers are present in COMO 20342, or none are pending, TSTCON 20386 will direct
`NASSC 25538 to provide control inputs to NASS 25526 to select NASS 25526's input from mCFiD 20346 and
`LBPAG 25528. idle routine will continually test for EU 10122 Dispatch pointer inputs until such a Dispatch
`Pointer is received into COMO 20342. At this time, TSTCON 20386 will detect the pending Dispatch Pointer
`and direct NASS 25538 to provide control outputs to NASS 25526 to select NASS 25526's input from, in
`general, SAS 25520. TSTCOND 20386 and NASSC 25538 will also direct NASS 25526 to select inputs from
`SAS 25520 upon return from a called microinstmction to a previously interrupted microinstruction
`sequence.
`
`As described above, SAS 25520 receives starting addresses from COMO 20342 and lrorn SUBRA
`255%. SAS 25520 will select the output of COAS 25512 or of COAE 25516 as the input to NASS 25526 when
`a new microinstruction sequence is to be initiated to execute a user's program SOP or to service a JP 10114
`Event. SAS 25520 will select an address output of SUBRA 25534 upon return from a called sub-routine to a
`previously executing but interrupted sub-routine. SUBRA 25534, as described above, is effectively a stack
`mechanism for storing addresses of currently executing microinstructions when those microinstruction
`sequences are interrupted. SUBRA 25534 is an 11 bit wide by 8 word deep register with certain registers
`dedicated for use In stacking Event Handling microinstruction sequences. other portions of SUBRA 25534
`are utilized for stacking of microinstruction sequences for executing SOPs. that
`is for stacking
`microinstruction sequences wherein a first microinstruction sequence calls for a second microinstruction
`sequence. SUBRA 25534 is not operated as a first-in-first out stack, but as a random access memory
`wherein address inputs selecting registers and SUBRA 25534 are provided by microinstmction control
`outputs of mCRD 20346. Operations of SUBRA 25534 as a stack mechanism is thereby controlled by the
`microinstruction sequences stored in EUSl'iT 20344. As indicated in Fig. 255, addresses of current
`rnicroinstructions of interruptedmicroinstruction sequences are provided to data input of SUBRA 25534
`from output of SCAG 25536, which will be described next below.
`sequential
`to select
`As described above, SCAG 25536 generates
`sequential addresses
`microinstructions within microinstruction sequences and to generate microinstruction addresses for Case
`operations. SCAG 25536 includes Next Address Register (NXTRD 25540, Next Address Arithmetic and Logic
`Unit (NAALU) 25542, and SCASE 25518. NAALU25542 is a 12 hit arithmetic and logic unit. Aflrst eleven bit
`input of NAALU 25542 is conneued from output of ADRD 255a and is thereby cunent address provided to
`EUSITIT 20344. A second four bit input to NAALU 25542 is provided front output of SCASE 25518. During
`sequential execution of a microinstruction sequence, output of SCASE 25518 is binary zeros and carry input
`of NAALU is forced to 1. Output of NAALU 25542 will thereby be and address one greater than the current
`microinstruction address provided to EUSITI’ 20344 and will thereby be the address of the next sequential
`microinstruction. As indicated in Fig. 255, SCASE 25518 receives an input from output of SCALER 20338.
`This input is utilized during Case operations and allows a data sensitive number to be selected as SCASE
`25518's output into second input of NAALU 25542. SCASE 2551_8_'s input from SCALER 20338 thereby
`allows NAG 20340 to perform microinstruction Case operations wherein Case Values are determined by the =
`contents of SCALER 20338.
`
`Next address outputs of NAALU 25542 are loaded into NXTR 25540, which is comprised of tri-state
`output registers. Next address outputs of NXTR 25540 are connected, in common with outputs of SAS
`25520, to second input of NASS 25526 as described above. During normal execution of microinstruction
`sequences,
`therefore, SCAG 25536 will, through NASS 25526 and ADRD 2552. select sequential
`microinstructions from EUSl1'T 20344. SCAG 25536 may also, as just described, provide next
`microinstruction addresses in microinstruction Case operations.
`In summary, NAG 20340 is capable of performing all usual microinstruction sequence addressing
`operations. For example, NAG 20340 allows
`selection of next microinstructions by current
`microinstructions, either for Jump operations or Long Branch operations, through NASS 25526's input
`from mCRD 20346's JMP or through LBPAG 25528. NAG 20340 may provide microinstruction sequence
`starting addresses through COMO 20342 and SAS 25520, or may provide return addresses to interrupted
`and stacked microinstruction sequences through SUBRA 25534 and SAS 25520. NAG 20340 may
`sequentially address microinstiuctions of a particular microinstruction sequence through operation of
`SCAG 25536, or may perform mciroinstruction Case operations through SCAG 25536.
`
`108
`
`Petitioner Apple Inc. - Ex. 1025, p. 4004
`
`Petitioner Apple Inc. - Ex. 1025, p. 4004
`
`

`
`EP 0 067 556 B1
`
`2. Operand Buffer 20322
`Having described structure and operation of EUCL 20310, structure and operation of OPB 20322 will be
`described next below. As previously described, OPB 20322 receives operands, that is data, from MEM
`10112 and FU 10120 through MOD Bus 10144 and JFD Bus 10142. OPB 20322 may then perform certain
`operand format translations to provide data to MULT 20314 and EXP 20316 in the formats most efficiently
`utilized by MULT 20314 and EXP 20316. As previously described, EU 10122 may perform arithmetic
`operations on integer, packed and unpacked decimal, and single or double precision floating point
`numbers.
`In summary, therefore, OPB 2032 is capable of accepting integer, single and double precision floating
`point, and packed and unpacked decimal operands from MEM 10112 and FU 10120 and providing
`appropriate fields of those operands to MULT 20314 and EXP 20316 in the formats most efficiently utilized
`by MULT 20314 and EXP 20316. in doing so, OPB 20322 extracts exponent and rnantissa fields from single
`and double precision floating point operands to provide exponent and mantissa fields of these operands to,
`respectively, EXP 20316 and MULT 20314, and also unpacks, or converts. unpacked decimal operands to
`packed decimal operands most afficiently utilized by MULT 20314.
`Having described structure and operation of OPB 20322, structure and operation of MULT 20314 will be
`described next below.
`
`3. Multiplier 20314 (Figs. 257. 258)
`MULT 20314, as previously described, performs addition, subtraction. multiplication, and division
`operations on mantissa fields of single and double precision floating point operands, integer operands, and
`decimal operands. As described above with reference to OPB 20322, OPB 20322 converts unpacked decimal
`operands to packed decimal operands to be operated upon by MULT 20314. MULT 20314 is thereby
`effectively capable of performing all arithmetic operations on unpacked decimal operands.
`
`a.a. Multiplier 20314 Data Paths and Memory (Fig. 257)
`Referring to Fig. 257, a more detailed block diagram of MULT 20314's data paths and memory is
`shown. As previously described, major elements of MULT 20314 include memory elements comprised of
`MULTRF 20350 and CONST 20360, operand input and result output multiplexing logic including MULTIM
`20328 and MULTRM 20334, and arithmetic operation logic. MULT 20314's operand input and result output
`multiplexing logic and memory elements will be dwcribed first, followed by description of MU LT 20314's
`arithmetic operation logic.
`_
`As previously described, input data, including operands, is provided to MULT 20314's arithmetic
`operation logic through MUL‘l1N Bus 20354. MUL11N Bus 20354 may be provided with data from three
`sources. A first source is CONST 20360 which is a 512 word by 32 bit wide Read Only Memory. CONST
`20360 is utilized to store constants used in arithmetic operations. In particular, CONST 20360 stores zone
`fields for unpacked decimal. that is ASCI character, operands. As previously described, unpacked decimal
`"operands are received by OPB 20322 and converted to packed decimal operands for more efficient
`utilization by MULT 20314. As such. final result outputs generated by MULT 20314 from such operands are
`in packed decimal format. As will be described below, MU LT 20314 may be utilized to convert these packed
`decimal results into unpacked decimal results by insertion of zone fields. As indicated in Fig. 257, address
`inputs are provided to CONST 20360 from EXPO Bus 20325 and from output of mCRD 20346. Selection
`between these address inputs is provided through CONST Address Multiplexer (CONSTAM) 291 0. CONST
`20360 addresses will, in general, be provided from EUCL 20310 but alternately may be provided from EXPO
`Bus 20325 for special operations.
`Operand data is provided to MULTIN Bus 20354 through MUL1'lM 20328, which is a dual input, 64 bit
`multiplexer. A first input of MULTIM 20328 is provided from OP0 Bus 20323 and is comprised of operand
`information provided from OPB 20322. OPO Bus 20323 is a 56 bit wide bus and operand data appearing
`thereon may be comprised of 32 bit integer operands; 32 bit packed decimal operands, either provided
`directly from OPB 20322 or as a result of OPB 20322‘s conversion of an unpacked decimal to a packed
`decimal operand; 24 bit single precision operand rnantissa fields; or 56 bit double precision floating point
`operand mantissa fields. As previously described, certain OPO Bus 20323 may be zero or sign extension
`filled, depending upon the particular operand.
`Second input of MULTIM 20328 is provided from MULTRF 20350. MULTRF 20350 is a 16 word by 64 bit
`wide random access memory. As indicated in Figs. 203 and 257, MULTFIF 20350 is connected between
`output of RFR 20336. through FR Bus 20337, and to input of MULT 20314's arithmetic operation logic
`through MULTIM 20328 and MULTIN Bus 20354. MULTRF 20350 may therefore be utilized as a scratch pad
`memory for storing intennediate results of arithmetic operations,
`including reiterative arithmetic
`operations. In addition, a portion of MULTRF 20350 is utilized. as in GHF 10354, as an EU 10122 Stack
`Mechanism slmilarto MIS 10368 and M05 10370 in FU 10120. Operation of EU 10122 Stack Mechanism will
`be described in a following descripion of EU 10122's interfaces to MEM 10112 and FU 10120. Address
`inputs (ADR) of MULTRF 20350 are provided. ,fror_n_.l\‘liultlpller. Register File Address Multiplexer
`(MULTRFAM) 25712.
`-
`
`107
`
`20
`
`35
`
`50
`
`.55
`
`Petitioner Apple Inc. - Ex. 1025, p. 4005
`
`Petitioner Apple Inc. - Ex. 1025, p. 4005
`
`

`
`EP 0 067 556 B1
`
`70
`
`30
`
`MULTRFAM 2912 is a dual four bit multiplexer comprised, for example, of SN74S258s. in addition to
`address inputs to MULTRF 20350, MULTRFAM 25712 provides address inputs to EXPRF 20380. As
`previously described. MULTRF 20350 and EXPRF 20380 together comprise an EU 10122 general register file
`similar to GRF 10354 and FU 10120. As such. MULTRF 20350 and EXPRF 20380 are addressed in parallel to
`read and write parallel entries from and to ‘MULTRF 20350 and EXPRF 20380. Address inputs to MULTRFAM
`25712 are provided, first, from outputs of mCRD 20346, thus providing microinstrucflon control of
`addressing of MULTRF 20350 and EXPRF 20380. Second address input to MULTRFAM 2912 is provided
`from output of Multiplier Register File Address Counter (MULTRFAC) 25714.
`MULTRFAC 26714 is a four bit counter and is used to generate sequential addresses to MULTRF 20350
`and EXPRF 20380. initial addresses are loaded into MULTRFAC 2914 from Multiplier Register File Address
`Counter Multiplexer (MULTRFACM) 2916. MULTRFACM 2916 is a dual four bit multiplexer. Inputs to
`MULTRFACM 25716 are provided. first, from outputs of mCRD 20346. This input allows microinstruction
`selection of an initial address to be loaded into MULTRFAC 2914 to be subsequently used and generating
`sequential MULTRF 20350 and EXPRF 20380 addresses. Second address input to MULTRFACM 25716 is
`provided from OPQ Bus 20323. MULTRFACM 2916's input from OPQ Bus 20323 allows a single address. or
`a starting address of a sequence of addresses, to be selected through JPD Bus 10142 or MOD Bus 10144, for
`example from MEM 10112 or FU 10120.
`lntenhediate and final result outputs of MULT 20314 arithmetic logic are provided to data inputs of
`MULTRF 20350 directly from FR Bus 20337 and from MULTRM 20334. inputs to MULTRM 20334, in turn. are
`provided from FR Bus 20337 and from output of CONSIZE 20352 and TSTINT 20320.
`FR Bus 20337 is a 64 bit bus connected from 64 bit output of RFR 20336 and carries final and
`intermediate results of- MULT 20314 arithmetic operations. As will become apparent in a following
`description of MULT 20314 arithmetic operation logic, RFR 20336 output. and thus FR Bus 20337, are 64 bits
`wide. Sixty-four bits are provided to insure retention of all significant data bits of certain MULT 20314
`arithmetic operation lntennediate results, in particular operations involving double precision floating point
`64 bit mantissa fields. In addition, as will be described momentarily and has been previously stated, MULT
`20314 may comrert a final result in packed decimal format into a final result in unpacked decimal format. in
`this operation. a single 32 bit, or one word, packed decimal result is convened into a 64 bit. or two word.
`unpacked decimal format by insertion of zone fields.
`As described above, two parallel data paths are provided to transfer information from FR Bus 20337
`into MULTRF 20350. First path is directly from FR Bus 20337 and second path is through Unpacked Decimal
`Multiplexer (UPDM) 2918 of MULTRM 2034. Direct path is utilized for thirty-two bits of information
`comprising bits 0 to 23 and bits 56 to 63 of FR Bus 20337. Data path through UPDM 2918 may comprise
`either bits 24 to 55 of FR Bus 20337, which are connected into a first input of UPDM 25718, or bits 40
`through 55 which are connected to a second input of UPDM 25718. Single precision floating point numbers
`are 32 bit numbers plustwo or more guard bits and are thus written into MULTRF 20350 through bits 0 to 23
`of the direct path into MULTRF 20350 and through first input (bits 24 to 55) of UPDM 2918. Double
`precision floating point numbers are 5 bits wide, plus guard bits, and thus utilize the direct path into
`MULTRF 20350 and the path through first input of UPDM 25718. Bits 56 to 63 of direct path are utilized for
`guard bits of double precision floating point numbers. Both integer and packed decimal numbers utilize
`bits 24 through 55 of FR Bus 20337, and are thus written into MULTRF 20350 through first Input of UPDM
`25718. As previously described, bits 0 to 23 of these operands are filled by sign extension.
`
`a.a.a. Container Size Check
`As stated above, MULTRM 20334 has an input from CONSlZE 20357. As will be described below with
`reference to TSTINT 20320, CONSIZE 20352 performs a "container size" check upon each store back of
`results from EU 10122 to MEM 101 12. CONSIZE 20352 compares the number of significant bits in a result to
`be stored back to the logical descripto

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