60158800A_3300_Training_Manual_Volume_2_Aug68 60158800A 3300 Training Manual Volume 2 Aug68
60158800A_3300_Training_Manual_Volume_2_Aug68 60158800A_3300_Training_Manual_Volume_2_Aug68
User Manual: Pdf 60158800A_3300_Training_Manual_Volume_2_Aug68
Open the PDF directly: View PDF .
Page Count: 389
Download | ![]() |
Open PDF In Browser | View PDF |
CONTROL DATA EDUCATION INSTITUTES SECOND EDITION TRAINING MANUAL Volume n 3300 COMPUTER TRAINING MANUAL SECOND EDITION FOR TRAINING PURPOSES ONLY This manual was compiled and written by ins tructional personnel of CONTROL DATA INSTITUTE CONTROL DATA CORPORATION Publication Number e0158800A August, 1968 This manual obsoletes the 3300 Computer Training Manual, Volumes II and III, Publication Number 60158800, Printed November, 1965. Copyright 1968, Control Data Corporation Printed in the United States of America. CONTENTS CHAPTER 4. STORAGE . . . . . . . . . . . . . . . Description and General Information Storage Capacity . • . . . 3309 Storage Module. • 3302 Storage Module. Storage Word Format . . . Storage Parity . . . . . . Storage Module Description Storage Registers . . Read/Write Controls . Storage Module Control Panel. Buss ing System. . . . . • S Bus . . . . • . Data Bus . . . . Storage Protection . 3309 Theory of Operation Control Select • . . . . Scanner. . . . • . . Delay Line . . . . • . . Delay Line Timing. Memory Planes and Wafers . Memory Stack . . • . . . • . Drive Lines . . . . . . Stack Construction (Field 0, 4K). Drive Compensator . Inhibit Lines. . . . . Inhibit Compensator. • Sense Lines . . . . . . S Register . . . . . . • . Line Driver Selection . Address Translation. Drive Line Selection. • 0 67 67 67 67 67 68 68 70 70 70 70 71 71 74 74 74 76 76 78 78 79 80 82 82 84 84 84 85 85 85 87 91 iii CONTENTS (continued) 1\ 94 95 Storage Address Selection \Vorksheet. Read/Write Storage . . . . . . . . • . . . . Z Register and Read/Write Controls . . Z Register . . Read Control . . . . . • • . . . . . . . Write Control. . . . • . . . Read/Write Timing Worksheet. Read Storage Timing . . Write Storage Timing . . . . . • Interface . . • • . . . . . . . . . 3300 Memory Power Supply 3302 Storage Module . . . . Storage Worksheet #1 . . . . . . Storage Worksheet #2 • . . . . . Self-Evaluation Quiz on Chapter 4 109 110 112 112 114 118 122 CHAPTER 5. MULTIPROGRAMM£NG MODULE . . General Information. . . . . Word-Organized Memories . . Two Core Bits Organization . . . . . . . . . Stack . . . . . . . . . . . . . Read and Write Drivers Logic Translator S Register . . . . . • . . . Sense Amplifiers Z Register . . . • . Overall Selection Timing . . . . . . . Theory of Operation. . Write Page Index . . . Read Page Index. . . . Illegal Storage Reference Detection . . Read Page Index O. Partial Page Adder Storage Request . . Special Cycle . . . No Change . . . . . Self-Evaluation Quiz on Chapter 5 123 125 125 126 128 128 132 133 133 133 134 134 135 142 142 142 144 145 145 146 146 146 146 CHAPTER 6. LOGIC TIMING AND KEYBOARD ENTRY Computer Timing . . . . . . . . . Master Clock and Clock Pyramid. Resynchronizing . . Resync Counter Start. . . . Test Mode . . . Static Controls. Keyboard Entry Controls Register Selection . Entry of Data into C Timing for 24-Bit Entry. Timing for l!1-Bit Entry into B1, B2, B3, or P* . . . . Ivlanual Entry Timing \Vorksheet . . . . . 147 147 147 148 148 148 149 150 150 152 153 153 156 158 96 96 96 96 108 109 CONTENTS (continued) Manual Timing Chain. . . . . . . . . Review of Transfer Sequence . . Keyboard Entry Worksheet .• Manual Read Storage. . • • . . . . . . . • . . Manual Write Storage . . . • . . . Questions on Manual Read/Write Operation. Self-Evaluation Quiz on Chapter 6 . . . . 160 162 163 164 166 170 171 CHAPTER 7. READ NEXT INSTRUCTION SEQUENCE Four Major Functions Detailed Timing Entrance to RNI Initiate RNI. • • Update P • • • • . Obtain Bus Priority . . Address (8) Bus . Reply from Storage. . . . • . • Release Bus System . . Breakpoint Stop . Enable Data Bus to F Register. . . Decode Instruction. . . . . .... . Interrupt Recognition End RNI . . Summary . . . . . Review . . . . . . RNI Worksheet. Self-Evaluation Quiz on Chapter 7 . . 173 173 176 176 177 178 180 180 182 184 184 184 186 186 186 187 188 189 192 CHAPTER 8. READ ADDRESS SEQUENCE • . . Description. . . • . . . . . . . Detailed Timing . . . . . . • . Read Address Storage Reference Read Address Sequence . . . . . KOOO/001 (Request Bus FF) . Reply from Storage. . . . . . . . Release the Bus . . . . . . . . . . Enable Data Bus to Lower F Register . . Redecode Instruction. End RADR . • . . . • • • • . . . . Review . . . . . • • • • . . • • • . Self-Evaluation Quiz on Chapter 8. 193 193 194 197 197 197 199 200 200 202 202 203 204 CHAPTER 9. READ OPERAND SEQUENCE . Introd.uction. . . . . . . . . . . Detailed Timing . . . . . . . . Start ROP; Request Bus System . . Request Storage . . . . Reply from Storage . . . . . . . . . Release Bus System . . . . . . . • Enable Data Bus to DBR and Start Arithmetic Self- Evaluatio1J. Quiz on Chapter 9. 205 205 206 208 209 211 212 213 217 CHAPTER 10. STORE OPERAND SEQUENCE . . Introd.uction. . . • . . . . • . . Detailed Timing . • . • . . . . . Start STO; Request Bus System. 219 219 220 223 v CONTENTS vi (co~tinued) Request Storage and Start Arithmetic . Start Arithmetic . . . . . . . . Request Storage . . . . . . . . . . . . . . Write Signal and Illegal Write. . Write Designators . . Word to Bus . . . . . . . . . . . . . . Reply from Storage. . . . . . . . . . Storage Reply Resync Circuit . . . Release Bus System End STO. . . . . . . . . . . . . . . Review . . . . . . . . . . . . . . . . . Self-Evalu:ltio:1 Quiz on Ch:lpter 10 223 223 225 226 226 228 230 230 231 231 232 234 CHAPTER 11. SEQUENCE PROGRESSIONS . . Sequences Worksheet. Clues . . . . . . . . . . . 235 243 246 CHAPTER 12. ARITHMETIC CONTROLS General Description Al Register Q1 Register A2 Register Q2 Register X Register . . . Inverter Ranks . Adder . . . . . . . Binary Arithmetic Theory of the Adder Stage-Generated Signals. Gro'.lp-Gen.erated Signals Multiple-Gro'.lp Pass an:l Carry Generation . . End-Aro:md Carry. Group Carry Inp·.lts . . . . . Stage Carry Inp·lts . • . • . . Generation of Fimil. OutP'.lts . Adder Worksheet . . • . Double-Precision EAC Logical Product . . . Arithmetic Controls . F2 Register . . . . . . Address Modification (F ADR) . . . • . Op9rations in the Arithmetic Section . . Jump and Skip Instructions (02-05; 10.1-10.7) A, Q, Bb Jumps and Skips (03-05). . . • . . Incremental/Decremental Index Jumps and Skips (02.1-02.3; 02.5-02.7; 10.1-10.7) . . . Copy Instrllctio'ls (77.2 ch 000; 77.3 ch 000) Single-Precision Interregister Transfer (53) Storage Shift (10.0) . . . . . . Enter Ins tructions (11, i4). . LDA (20) Instruction. . . LACH (22) Instruction. LCA (24) Instruction . . LDAQ (2;:») Tnstrl1ctio'1 . LCAQ (26) Instruction . . LUL (~7) InstrlJction . . . . 249 249 250 250 250 251 252 252 252 253 253 253 254 254 255 255 255 255 256 257 257 258 258 259 261 262 262 262 263 263 264 265 265 265 265 265 265 265 CONTENTS (continued) CHAPTER 13. LDQ (21) Instructio'J.. . LDCH (23) Instruction. LDI (54) Instrllctio'J. . . ST A (40) Instrllction . . SACH (42) Instruction SW A (44) Instruction. . SCHA (46) Instruction STAQ (45) Instruction . STQ (41) Instruction .. SQCH (43) Instruction . STI (47) Instruction . . Ari thmetic Ins tructions. . . . . . . . ADA (30) Instruction. . . ..... . SBA (31) Instructio'J.. . . ......•. ADAQ (32) Instrllction . . ......... . SBAQ (33) Instrllction . . ...••. Static Enables and Timed Transfers Worksheet #1 Static Enables and Timed Transfers Worksheet #2 Static Enables and Timed Transfers Worksheet #3 Static Enables and Timed Transfers Worksheet #4 Static Enables and Timed Transfers Worksheet #5 . Static Enables and Timed Transfers Worksheet #6 Static Enables a'J.d Timed Transfers Worksheet #7 Static Enables and Timed Transfers Worksheet #8 CPR Compare (within Lim,its Test) ..... . MEQ Masked Equality Search. . ........... . MTH Masked Threshold Search . . Shift Instruction. . . . . . . . . . . Timing for Shift Instructions . . . . . . . . . . . . . . Single-Precision Multiply . . Timing for Multiply A Instruction. . Complement and/or Swap. . . . . . . . . . . . . • .' Swap Cycle. . . . . . . . . . . . . . . . .......•. Comparison of Main CO'J.trol and Arithmetic~ Timing Multipfy Timing Worksheet. . . . . . . . Single-Precision Divide . • . • • • . • . • Timing for the Divide A Instruction . . General Arithmetic Timing for Divide Self-Evaluation Quiz on Chapter 12 . . . . 267 267 267 267 267 267 267 267 267 267 267 272 272 272 272 273 274 274 275 275 276 276 277 277 278 279 279 284 285 287 289 291 291 292 292 293 296 297 298 FLOATING POINT/DOUBLE PRECISION OPTION Enabling the 4S-Bit Adder • • . DO'J.ble-Precision Multiply . . . Instruction Description . . . . . Six-Bit Example for Multiply . . Detailed Timing . . . . . . . . . Detailed Timing for Initialize FADR . . . . . . • • Multiply Step . . . . . . • . Complement Step . . . . . . Double-Precision Divide .• Instruction Descriptio'J. Six-Bit Example for Divide. Detailed Timing . . . . . . . . Detailed Timing for Initialize . 299 299 302 302 302 303 303 303 307 307 308 308 308 309 309 vii CONT ENTS (continued) CHAPTER 14. viii FADR . . . . . Divide Step . . Complement. Floating-Point Multiply. Instruction Description Detailed Timing. . . . . . . . . Phase 1 . . . . . . . . . . Phase 2: First Arithmetic Pass. . Phase 2: Second Arithmetic Pass. Phase 3: Initialize. . . Phase 3: Multiply Step. . . . Round . . . . . . . . . . . . . Adder Output from Round . Floating-Point Divide . . . . Instruction Description Detailed Timing . . . . . . . . . . . . . . Phase 1 . . . . . . . . Phase 2: First Arithmetic Pass. . . . Phase 2: Second Arithmetic Pass. Phase 3: Initialize. . . . . . . Divide Step . . . . . . . . . . . . . Swap AQ and E: First Pass . . . Swap AQ and E: Second Pass Round . . . . . . . . . . . . . . Floating-Point Add . . . . . . . Instruction Description Detailed Timing . . . . . . . Phase 1 . . . . . . . . Phase 2: First Arithmetic Pass . . Phase 2: Second Arithmetic Pass. Phase 3: Initialize. . . . . . . Phase 3: Equalize Exponents Phase 3: Add Coefficients. Phase 3: Round . . . . Floating-Point Subtraction. Instruction Description Detailed Timing . . . . . . Phase 1 . . . . . . . . Phase 2: First Arithmetic Pass. Phase 2: Second Arithmetic Pass. Phase 3: Initialize. . . . . . . . Phase 3: Equalize Exponents . . . . • . • . Phase 3: Subtract Coefficients . . . . . Phase 3: Round . . . . . • . . . . Phase 3: Common Timing: Normalize Phase 3: Adjust Exponent . Phase 3: Merge . . . . . Phase 3: Complement. . . . Problems . . Self-EvaluaLiou Quiz Oil Chapter 13 311 313 315 315 315 316 316 316 319 319 320 321 321 322 322 323 323 323 325 325 326 327 329 329 329 329 330 330 332 334 334 335 335 336 337 337 339 339 339 341 342 342 343 344 344 346 346 347 347 INTERRUPT . . . . General Description Types . . . . . . . . Abnormal Interrupts 349 349 349 348 34D CONTENTS (continued) Normal Interrupts . . . . . . Trapped Instruction Interrupt . . . . . . . . . . Abnormal Interrupt Sequence. . Interrupt on Storage Parity or Storage Not Available. Illegal Storage Reference Interrupt . . Power Fail Interrupt . . . . . . . . . . Abnormal Interrupt Sequence Timing Normal Interrupt Sequence. . . . Executive Interrupt. . . . . . . . Optional Arithmetic Interrupts. . Floating-Point Fault . . . . . • BCD Fault . . . . . . . . . . Interrupt Adj acent Processor Internal Interrupts . . External Interrupts. . . . . . Interrupt Selection . . . . . . . Normal Interrupt Sequence Timing. . . Trapped Instruction Interrupt . . . . . Trap Sequence Timing . Interrupt Sensing . . . . . . . . . Pause Instruction. . Clearing Interrupt . Interrupt Worksheet Self-Evaluation Quiz on Chapter 14 350 350 350 350 350 350 351 352 353 353 353 353 353 353 354 354 357 358 359 360 360 361 362 363 CHAPTER 15. BLOCK CONTROL . . . . . . . . . Registers. . . . . . . . • . . . . . . ..•. CIR (3-Bit Channel Index Register) . . SO, Sl (6-Bit Double Rank Register) S2 (20-Bit Current Address Register). . . Zl (27-Bit Register) . . Z 0 (24-Bit Register). . Block Operations . . Requests Priority . . Timing . . Busy . . Block Operations . . . . . . . Input/ Output . . . I/O Operations with Storage. I/O Operations with A Typewriter . . . . . . . Timing . . . . . . . . . I/O Word Modification . . Block Control Worksheet . . Timing Charts . . . . . . . . . . • • . . . • . Timing for Activate Search or Move Buffer (71 or 72 Instructions). . Self-Evaluation Quiz on Chapter 15 . . . . . . • . . . 365 366 366 366 366 366 366 366 367 367 368 368 368 369 369 371 371 371 380 381 382 384 386 CHAPTER 16. COMMUNICATION MODULES . General Description . . . . . . 3306 Communications Channel . Functional Description. Operation . . . . . . . . Programming. . . . Theory of Operation Data Paths . . . . . 387 387 388 388 388 388 389 389 ix CONTENTS (continued) Theory of Operation . . . . . . . . . Connect or Function Operation . . . • . Write Operation . . . . . . • . . . Output Buffer Cycle. . . . • . . . • . Block Control Services A Request. Operation Complete . • • . • . • . Reply from External Equipment. . Read Operation Word Count Control. • • • • • • Status Operation . . . . Status Checking. . . . Internal Status . • External Status. Parity Checking . . Connect, Function, and Write . . Read . . . . . . • • • • Interrupts. . . . . . . . . . • • External I/O Interrupts . I/O Channel Interrupts. Clearing Circuits . . • . . . • Input/Output Channels Worksheet #1. Input/Output Channels Worksheet #2. Theory of Operation for 3307 Communication Channel 3307 Timing for Write No Assembly/Disassembly: Instructions (75) (H = 0+1) or (76) (N = 1) . . Activate I/O Operation. . • • . . . . . . • Buffer Cycle . . . • . . If Operation Complete . . . If Operation Complete . . General Flow for a 3-Word Output on a 76 (24 to 12) Disassembly (Forward) . . . . . . . . • . . . . . . . . . • • . . . . . . . . . • . 3307 Timing for Write Disassembly: Instruction (76) (N = 0) Forward •. Activate I/O Operation Buffer Cycle . . First Reply. . . Second Reply. . . Buffer Cycle . • Third Reply • . . Buffer Cycle . . Fourth Reply. . . Fifth Reply. . • Sixth Reply. • . . • . . • 3307 Timing for Read No Assembly/Disassembly: Instructions (73) (H = 0 + 1) or (74) (N = 1) • • • •••• Activate I/O Operation. . .... First Reply . . Buffer Cycle . Second Reply. . Buffer Cycle . Operation Complete Signal. No Operation Compiete Signal. . Number 1 . . . . • • . . . . . . . Number 2 . . . . • • . . . . . Read and 12 to 24 Assembly Forward . Self-Evaluation Quiz on Chapter 16 •. x APPENDIX A. ANSWERS TO QUESTIONS IN VOLUl\IE II 391 391 396 398 398 400 400 401 404 404 406 406 406 406 407 408 408 409 409 409 411 411 412 412 412 412 412 412 413 413 413 413 414 414 414 414 414 415 415 415 415 415 416 416 416 416 416 41G 417 417 417 4~4 A-I ILLUSTRATIONS Title 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 3309 Storage Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3302 Storage Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Storage Word Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8K Storage Module Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16K Storage Module Control Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use of Control Select Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8K Storage Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . Bus Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Function of S-Bus Bits when Referencing 3302 . . . . . . . . . . . . . . . . . . . . . . Function of S-Bus Bits when Referencing 3309 . . . . . . . . . . . . . . . . . . . . . . S-Bus Scheme if Multiprogramming Module Present . . . . . . . . . . . . . . . . . . S-Bus Scheme if Multiprogramming Module Not Present . . . . . . . . . . . . . . . System Power Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Storage Reference Cycle Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control Select Switch and Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Left and Right Address Bus to S-Control Logic . . . . . . . . . . . . . . . . . . . . . S-Register Input Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pulse Generator, Activate Read, and Gate Logic • . . . . . . . . . . . . . . . . . . . Busy FF and Left Address Bus to S-Control Logic • . . . . . . . . . . . . . . . . . . 3309 Master Clear Control Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . 8K Memory Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . Memory Wafer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-Drive Line Configuration (Front View) • . . . . . . . . . . . . . . . . . . . . . . . . Y -Drive Line Configuration (Rear View) . . . . . . . . . . . . . . . . . . . . . . . . . Even Memory Core Array, Field 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Even Memory Core Array, Field 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memory Wafer - Inhibit Stripes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simplified Sense Quadrant . . . . . . . . . . . . . . . . . . . . . . . . . . • . . • . . . . . Storage Address Bit Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Gates and Transformer Drivers . . . . . . . . . . • . . . . . . . . . . . . . . . . . . Page 68 69 69 70 71 71 72 72 73 73 73 74 75 76 76 77 78 79 79 79 80 80 81 81 83 83 84 85 86 86 xi ILLusTRATIONS (continued) Figure 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 ~nn .L'::;C 129 130 131 132 133 ;~1J. Title Transformer Card with Pin Numbers . . . X Drive Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . . . . . .. Y Drive Line . . . . . . . . . . . Y Gates . . . . . . . . . . . . . . Field Selection . . . . . . . . . . Y Transformer Drivers . . . . Drive Line Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . Simplified Gate and Transformer Circuits. . . . . . . . . . . . . . . . . . . . . . . . . Drive Transformer Operation for Read. . . . . . . . . . . . . . . . . . . . . . . . . . . Drive Transformer Operation for Write . . . . . . . . . . . . . . . . . . . . . . . . . . K760/761 FF . . . . . . . . . . . . . . . . • . . . . • . . . . . . . . . . . . . . . . . . . . . . Delay Line Time B4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . Data Bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Z-Register Inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . • . . . Delay Line Time B6 . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . Strobe-Shaper Network . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . . Delay Line Time B7 . . . . . . . . . . . • . . . . • . . . . . . . . . • . . . . • . . . . . . • Partial Write Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Possible Methods for Setting the Z Register . . . . . . . . . . . . . . . . . . . . . . • Delay Line Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delay Line Times . . . . . . . . . . . . . . . • . . . . . . • . . . . . . . . . • . . . . • . . . Inhibit Scheme for Bits 2 and 3 in Detail. . . . . . . . . • . . . . . . . . . • . . . . .• Inhibit Selection Logic. . . . . . • . . . . . • . . . . . . . . . . . • . • . . • . . . . . . .. Partial Listing of Inhibit Line Selection .. . . . . . . • . . . . . . . . . • . . . . . .. Parity Bit Inhibit Selection. . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . • . •. Dummy Load Enables . . . . . . . . . . . . . . . . . . . • . . . . . . . • . . . . . . . . • . Write Cycle Turn On . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . .. Parity Strobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . • • . .• Circuitry Showing Method Used to Determine if a Parity Bit must be Stored .. Write Designator Bit Clear Enable. . . . . . . . . . . . . . • . . . . . . . . . . . . . .. Data Bus Transmitters Off . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . .• Data Bus Transmitter Enables . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . Clear Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . Clear "s" Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Driver Discharge Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Driver Discharge Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . •. Busy Clear Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . • • Storage Reference Timing . . . . . . . . . . . • . . . . . . • . . • . . . • • . • . . . . • . 8K Memory Module Flexprint Assignments . . . . . . . . . . . . . . . . . . . . . . .• Additional 3300 Circuits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 16K Stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . • . • . . . . . . . . . . . . • . .. Troubleshooting Flow Chart =In • . • . . • . . • • • . • . • • . • • • • . • . • • . . . . •. Troubleshooting Flow Chart #2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3311 Multiprogramming Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page Inqex File Block Diagram . . . . . . . . . . . . . . . . . . . . . • . • . . . . . . . 3300 Physical Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . .. Word-Organized Memory Matrix. . . . . . . . . . . . . . . . . . . . . . . . • . . . . .• Matrix of Two-Core Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ,!'wo-Core Bits· . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Close-Up of Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Register File Block Diagram . . . . . . . . . . • . . . . . . •. \Vo1'<:1 Line \Viring . . . . . . . . . . . . . . . • . . • . • . . • . . 87 88 89 90 90 91 92 92 93 93 95 95 95 96 96 96 96 97 98 99 99 100 101 101 101 102 102 102 103 104 104 105 105 106 106 106 107 110 111 112 113 117 121 123 124 125 125 127 127 128 128 129 129 ILLUSTRATIONS (continued) Figure 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 Title Digit and Sense Line Wiring • . . . . . . . . . . . • . . . . . . . . . . . . . . • . . • . Word Line Selection . . . . . . . . . . . • . . . . . . . . . • . . . . . . . . . • . . . . . Logic Representation of Drive Line Selection . • . . . . • . . . . . . • . • . . • . Gate and Driver. . . . . . . . . . . . . . . . . . . . . . . • . . • . . . . . . . . . • . . . Logic Translator (Section) . . . . • . . • . • . . • . . . . . . . . . • . . . . . . . . . • Sense Amplifier . . . . . . . . . . • . . . . . . . . . . . . • . . . . • . • . . • . . . . • Digit Driver . . . . . . . . • . . . . . . . • . . . . . . • . . • . . . . • . . . . • . . . . • Timing Figure . . . . . . . . . . . . . . . . • . . . . . . . • . • . . . . . . • • . . . . • Page Index File Assembly and Designations . . . . • . . . . . . . . . . . . . . . . Register File Operation Example . . . . • . . • . . . . • . . . . . . . . . . . . . . . Read Board Schematic Type 24419200 . . • . . . . . . . . . • . • . . • . • . . . . . Write Board Schematic Type 24419500 . . • . . . . . . • . . • . • . . . . . . . • . Register File Test Points . . . . . . . . . . . . . . . . • . . . . • . . . . . . . . . • . Logic Translator Schematic Type 24418700 . • . . . . . . . . . . . . . . • . . . . Diode Matrix Schematic Type 24418900 . . . . . . . . . . . . . • . . . . . . . • . . Data and Control Signal Transmissions for Write Page File . • . . . . . . . . Address Flow for Executive Mode . . . . . . . . • . . . . . . . . . . . . . . • . . . . liZ Even" Illegal Write Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . E Bit nlegal Write Test . . . . . . . . • . . . . . . . . . • . . . . • . . • . . . . . . • Z Even Page Length Test . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . .. Page Index Zero Test . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . • . . Partial Page Adder Addition Chart . . . . . . . . . . . . . . . . . . . . . . • . . . . Special Cycle Bit 24 Test . . . . . • . . . . • . . . . . . . . . . . . . . . . . . . • . . Resync . . . . . . . . . Resync Input Resync Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Go Logic . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . • . . . . . . . • . . . . Time 2 of Resync Timing .. . . . . . . . . • . . . . . . . • . . . . . . . . . • . . • . Digit Counter . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . • . . . . C Register Enables . . . . . • . . . . . . . • . . . . . . . . . • . . . . • . • . . . . • . C Register Digit Enables . . • . • . . • . . . . . . • . . • . . . . • . . . . • . . • . • Digit Sequence . . • . . . . • . . . . . . . • . . . . • . . . . . . • . . . . • . . . . . . • Sequence Counter . • . . . . • . . . . • . . . . • . . . . • . . . . • . • . . . . . . . •• Last Digit Logic . . . . . . . . . . . . . . . . . . • . . . . • . . . . • . . • . • . . • . • 12- or 15-Bit Override Logic . . . • . . . . • . . . . • . • . . . . . . . • . • . . • • Manual Entry into A . . . . • . • . . • . . . . . . . . . . . . . . . . • . . . . . • • . C Register Display for Digit 7 . . . • . . • . . . . . . • . . . . • . . • . • . • • . • . Keyboard . • . . . . . . . . . . . . . . . . . . . • . . . . . . • . . . . • . . • . • . . . . . Register Selection Logic . . . • . • . . • . • . . • . . . . • . • . . • . • . . . . • . . . Waveform Timing for 24-Bit Entry . . • . • • . • . . . . • . . • . • . . . . • . . . . Waveform Timing for 15-Bit Entry . • . • . . • . • . . • . • . . • . • . . • . • . . • Transfer Logic . . . . . . . . . . . • . . . . . . . • . • . . • . • . . • . • • . • . . ..• Keyboard Bus Priority . . . . . . . . • . . . . . . . . . • . . • . • • . . . . . . • . • • C Register Enables. . . . . . . • . . • . • . • • . • . . • . • . • • . • . • • . • . . •.• DBR Enables . . . . . . . . . • . • . . • . • . . . . . . • • . • . • • . . . • • . • . . • . AQ Entry Logic . . . . . • . . • . • • . . . • • . • . • . . • . • • . • . • • • • . • . . • • Manual Timing Chain . . . . . . • . . . . . . . . . • . . . . . . . . . • . . . . • . • . • B Register Entry Logic . • • . • . . . . . . • . . • . • . . • . • . • . . • . • • . • . . B Register Enables. . . . . • . . • . • . • . . • . • . . • . • . . . . • . . • . • . . • . • P Register Entry Logic. . . . . . . .•.•.••.•.••.•.••••.•.••.••• P Register Enables. . • . . . . • . . • . • . . • . • . . • . • . • • . • . . • . • . . • . • Sweep Page Index File . . . . • . . . • • . • . . • . • • . • . • . • • . • . • • . • . • . Data Flow Path • . . • . • . • • . • . . • . • . . • . • . • • . • . • • . • . • •.•.•.• 3300 Address Flow . . • . • • . • • • • . • • • • . • . • • . • . • • . • . • . . • . • • . . Page 130 131 131 132 133 134 134 134 135 136 137 138 139 140 141 142 143 144 144 145 145 145 146 148 148 148 149 149 150 150 151 151 152 152 152 152 152 153 153 155 158 159 159 159 160 160 160 161 161 161 162 169 174 175 xiii ILLUSTRATIONS (continued) Figure 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 xiv Title Flow Chart . . . . . . • . . . . • . Major Timing of RNI Sequence. • . . . . . . . . . . . . • . . . . • . . . . • . . . . . Entry to RNI Sequence . . • . • . . . . . . . . . • . . . . • . . . . . . . . . • . • . . . Initiate RNI Logic. . . . • . . • . • . . • . . . . • . • • . • . • . . • . • . • • • • • . . . Update P (+1, +2) Logic . • . . . . • . . . . • . . . . . . • . . . . • . . . . . . . . . . Jump Logic. . . . . • . . . . . . . . . . . . . . . . . . . . . . . . • . . • . . . . . . . . . Bus Priority Logic. . . . . . . . . . . . . . . . • . . . . . . . . . • . . . . . . . . . . . Address Transmission Logic. . . • . . . . • . . . . . . . . . • . . . . . . . • . . . . Storage Request Logic .•. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Breakpoint Logic . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . Resync Logic . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . • . . . . Access Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Release Bus System . . • . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . F1 to F2 Logic . • . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . Instruction Data Path. . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . • Data Flow for RNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Decode Instruction and Sense Interrupt . . • . . . . . . . . . . . . . . . . . . . . . Interrupt Recognition . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . . . . . End RNI . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . RNI Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indirect Addressing Routine. . . . . . . . . . • . . • . . . . • . . . . . . . . . . . . . Data Flow for RADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3300 Address Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flow Chart of RADR Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Major Timing of RADR Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . Address Transmission for RADR . • . . . . . . . . . . . . . . • . . . . • . . . . . . Bus Priority Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Storage Request Logic . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . • . • Reply Resync Logic . . . . . . . . . . . • . . . . . . . . . • . . . . • . . . . . . . . . • Clear Bus Request . . . . • . . . . . . . • . • . . . . • . . . . . . . . . . . . • . • . . • F Register Enables . • . . . . • . . . . . . • . . • . . . . • . . . . • . . • . • . . • . • V008 Time . . . . . . . . . . • . . . . . . . • . • . . • . • . . . . • . . • . . . . . . . . . RADR Data Path ".. . • . . . . . . . • . . . . . . • . . . . • . . • . . . . • . • . . • . Data Transmission for RADR. • . . • . • . • . . • . • . . • . • • . • . • . . . . • . . End RADR:' Time . . • . . . . • . . . . • . . . . . . . . . . . . . . . . • . . • . . . . . . Sequence Controls Advance . • . . • . • . . • . . . . • . • • . • . • • . • . . . . • . . RADR Big Picture . . . . . • . . . . • . . . . • . • . . . . • . . • . • . . . . • • . • . . Data and Address Flow. • . • . . . . . . . . . . . . • . . . . . . . . . . . . . . • . . . 3300 Address Flow. . . . . . . . • . . . . . . . . . . . • . . . . . . . . . . . . . . • . . Flow Chart of ROP Sequence . • . . . . . . . • . . . . . . . . . . . • . . • . . . . • . Major Timing of ROP Sequence . . • . . . . . . . . . . . . . . . . . . . • . . . . . . Sequence Progression from End of RADR . . . . . . . • . . . . • . • . . . . • . . Bus Priority . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . Address Flow . . . . . . . . . . . . . . . . . . . . • . . . . . . . • . • . . . . . . . . . . Storage Request . . • . . . . . . . . . . . . • . . . . • . . . . . . . . . . . . . . • . . . Breakpoint Tests . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . • . . Reply Resync Logic . . • . . . . . . . . . • . . . . . . . . . . . • . . • . . . . • . . . . Breakpoint Tcsts Stop. . . . . . . . . . . . . . . . . . . . . . . _ _ , , , . , , , , , . , DBR Enables, . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . Receiver to DBR Circuits Showing Possible Shifts. . . . . . . . . . . . . . . . . DBR Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Data Flow for ROP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start Arithmetic on ROP • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . , , 176 177 177 178 179 179 180 181 181 182 183 183 184 185 185 185 186 187 187 188 194 195 196 197 197 198 199 199 199 200 201 201 201 202 202 203 204 206 207 208 208 209 209 210 211 211 211 212 212 213 214 215 215 ILLUSTRATIONS (continued) Title 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 Page End ROP Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... . ROP Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Detailed Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3300 Address Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flow Chart of STO Sequence . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Major Timing of STO Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STO Sequence Initiation • . • . . . . . . . . . • . • . . • . . . . • . . . . • . . . . • . . Arithmetic Start on STO . • . . . . • . . . . • . • . . . . . . . • . • . . . . • . . • . • Address Transmission for STO . . . . . . . . . . • . . . . . . . . . . . . . . • . . . Storage Request on STO . . • . . . . . . . • . • . . . . . . . . . . . . . . . . . . . • • Write Signal Path . . . • . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Partial Write Bit Transmission . . • . • . . . . . . • . . • . . . . . . . . . . . • . . Breakpoint and Illegal Write Test . • . . . . • . . . . . . . • . • . . . . . . . . . . . DBR Transfers . . • . . . . . . . . . . . . . . . . . . . . . . . . • . • . . . . . . . . . • Operand Transmission for STO Sequence . • . • . . . . • . • • . • . . . . • . • . . Data Transmission for STO . . . . . . . • . • . . . . • . • . . • . . . . • . • . . . . • Storage Reply Resync Circuit . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . Breakpoint Stop Logic . • . . . . • . . . . . . . . . . . . . . • . . . . . . . . . . . • . Release the Bus System . . . . . . . . . . . . • . . . . . . . . . . . . • . . . . . . . . End STO Timing . . . . . . . • . . . . . . . . • • . . . . . . • . . . . . . . . . • . . . . STO Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . • . • . . . Block Diagram of Sequence Progressions . . • . • . • . . • . . . . • . • . . . . • Example of Bus System Usage • . • . . . . . . . . . • . . . . . . • • . . . . • . • . . 3300 Block Diagram . . . . . . . . . . . . . . . . . . • . . . . . . . • . . . . . . . . • . System Block Diagram • . . . . . . . . . . . • . . . . . . . • . . . . • . . . . •.•.. Arithmetic Inputs and Outputs . . . . . . . . • . . . . . . . . . . . . . . • . . . . . • Standard Arithmetic . . . . . . . . . . . . . . . • . . . . . . . . . . . . • . . . . . . • . Adder Pyramid . • . . . . . . . . . • . . . . • . • . . • . . . . • . • . . . . • . '•..•. Logic for End-Around Carry . . . • . . . . . . . • . . . . . . • . . . . . . . • . • . . Logical Product Generation • . . . . . . • . . • . . . . . . . . . . . . . . • . . . . • . Selective Complement Generation . . . . . . • . . . . . . . • . • • . • . . . . . . . • Fl to F2 Logic . . . . . . . . . . • . . • . • . . • . • . . • . • . . . . • . . • . • . . . . F 1 to F2 Duplication . . . • . • . . • . • . . . . • . . • . • . . • . • . . . . • . • • . • Arithmetic Timing Chain (Simplified). • . • . • . . • . • . . • . • . . • . • • . • . • KI00/I0l or KI04/105 Set . . . • . • • . • . • • . • . • . . • . • . . • . • • . • . • . • Flow Path for FADR . • . • . • . . . . . . . • . • . . • . • . . • . • • . . . . . . • . • • Load Instructions, Sequences, and Data Paths. . • • . • . • • . • . . •.•.•.• Store Instructions, Sequences, and Data Paths • . • . • . . . . • • . • . . . . •. CPR Compare . . . • . • . • • . . . . • . • . • . . . . • • . Flow Chart for CPR Compare .••.•. • . . . . • . • . . . . • • . • • . • . • . . • MEQ . . . . . . . . . . . . . . • . • . . . . . . . . . • . . • . . . . • . • . • • . • . . • . . MTH • . . • . . • . • . . . . • . • • . • . . • . . . . • . • . • • . • • • • • • • • • . • . • . Flow Charts for 06 and 07 Instructions . • . . . . • . • . . • . • . . • . • • . • . . Data Path for Forming Shift Count . . . • . • • . • . • . • • . • . • • • • . . • . • • Shifting Paths for A . . • . . . . • . • . . • . . . . • . • • . • . • . . . . • . • . . • . • Shifting Paths for Q . • • . • . . . . . . • . . • . • • . • . • • • • . • . • • . • • • • . • Flow Charts for Multiply A . . • . • . . . . . . . • . • . . • . • . . • . • . . • . . . . Data Flow for Multiply Step . . . • . • . . . . • . • . . . . • . . • . • • . • . . . • • . Short Cycle Timing . . . . . • . . . . . . • . • . . • . . • . • . • . . • . • • . • . • • • • Data Flow for Complement Cycle . . • . • . . • . • . . • . • . • • . . • . • . . . • • Data Flow for Swap Cycle . . • . . • . • . . • . . . . • . • . . • . • . . • . • . . • • • Divide Flow Charts . . . . • . • . • • . • . . • . • . • • • • . • • • • . • • • . . • . • • • Data Flow for Initialization . • . . • . • . . . . • . . • . • • . . . • . • Data Flow for Divide Step • . . . . . . • . • . . • . • . . • . . . . . . • . . • .•.•• 0 ••••••••••••••• 0 ••••••• 216 216 220 221 222 222 223 224 225 226 226 227 228 229 229 229 230 230 231 232 233 238 241 242 249 250 251 254 255 257 258 258 259 259 259 260 266 270 278 278 279 279 280 285 286 286 288 289 291 291 291 294 295 295 xv ILLUSTRATIONS (continued) Title Figure 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 I1.A!") tJ':ttJ 344 345 346 347 348 AV L Path for Quotient Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Physical Location of the FP/DP Option . . . . . . . . . . . . . . . . . . . . . . . . . Block Diagram of Arithmetic Section with Floating POint/Double Precision Option Present . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Enabling the 48-Bit Adder . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . Operand Format for Double-Precision Multiply . . . . . . . . . . . . . . . . . . . Flow Chart for Double-Precision Multiply . . . . . . . . . . . . . . . . . . . . . . . Graphic Representation of Parallel Timing for 56. X . . . . . . . . . . . . . . . . Data Flow for Initialize Multiplier to E 1 . . . . . . . . . . . . . . . . . . . . . . . . AQ Negative (Positive Form of Multiplicand to A1Q1) . . . . . . . . . . . . . . . Multiplicand to X2X1 . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . Enables for Multiply Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operand Format for Double-Precision Divide . . . . . . . . . . . . . . . . . . . . Flow Chart for Double-Precision Divide . . . . . . . . . . . . . . . . . . • . • . . • Parallel Timing for 57. X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Divisor to X2X1. . . . . . Complement AQE . . . . . . Enables for Divide Step . Quotient Bit Translations Operand Format for Floating-Point Multiply . . . . . . . . . . . . . . . . . . . . . Pencil and Paper Example of Floating-Point Multiplication Parallel Timing for 62. X . . . . . . . . . Enabling the II-Bit Adder . . . . . . . . . Enables for Add Exponents . . . . . . . . . (AQE) After Multiply Step . • . . . . . . . . . . . . Enables for Round . . . . . . . . . . Plus 1 Logic for Round . . . . . . . . . FDV Operand Format . . . . . Pencil and Paper Example of Floating-Point Divide .•. Parallel Timing for 63. X . Enables for Divide Step . . . . . . . . . . . . . Example of Divide Step . Terminating Divide Step. Quotient to AQ Operand Format for Round . . . . . . . Pencil and Paper Example of Floating-Point Addition . • . . . . . . . . . • . . . Parallel Timing for 60. X . . . . . . . . . . . . . . . . . • • . • . . . . . . . . . . . . . Enabling the II-Bit Adder . . . . . . . . . . . . . . . . . • . • Data Flow for Subtract Exponents .. Enables for Add Coefficients . Operand Format for Floating-Point Subtraction. Pencil and Paper Example of Floating-Point Subtraction . . . • . . . . . Parallel Timing for 61. X . . . Enabling the II-Bit Adder Enables for Difference of Exponents to SCR .. Enables for Subtract Coefficients. . . . . . . . . . . . Enabling 10's Shifts o . Power Failure Detection . . . . Interrupt Cycle Flow Chart Interrupt Recognition Flow Chart Trapped Instruction Detection .. Sensing Network Block Control, Front View Block Control, Block Diagram .• 0 • • • 0 • • 0 • 0 •• 0 • • • • • • 0 • • 0 • • • • 0 •• • 0 • • • • 0 • • • • • • • 0 • 0 • • • • • 0 ••••••• 0 0 • • • • • • • • 0 • 0 • • • • 0 • • 0 • 0 • 0 •• 0 •• 0 •• 0 • 0 0 0 ••••• 0 •••••••••••••• 0 •••••• 0 •••• 0 • 0 • 0 • • • • • • 0 • 0 • • 0 • 0 • 0 •• 0 • 0 0 • 0 •••• 0 ••••• 0 ••••••••••••••••• 0 0 0 0 0 • • • • • • •• •••• • •••• 0 •• 0 • • • 0 • • • • • • 0 0 0 • 0 • 0 ••••••• •• ••••••••••• ••••• 0 •••••••••••••••• 0 ••••• 0 • 0 • • • • 0 •• 0 • 0 • • 0 • 0 •• 0 • 0 0 • • • • 0 • • • • 0 • • • • • • 0 • • • • • • 0 • 0 0 • 0 •••• 0 • 0 0 •• 0 •••••••••• 0 0 • 0 • 0 • ••••••••• • • • 0 • • • • • 0 • • • • 0 • • • • • • • • • • • • • • • 0 ••••••• • • 0 •••••••••••••• 0 •••••••••••••••• • • • • • • 0 0 • • • • • • 0 0 • • 0" • • • • • • •••••••••• • • • • • • • • • • • 0 • • 0 • • • • • • • ••••••• 0 • • •• 0 • 0 • • • • • • • • • 0 • • •••• 0 • • • • • 0 •• 0 • • • • 0 ••••••• • • • 0 •••• •• 0 • 0 0 0 0 • • • • 0 •••••••••• 0 • 0 •• 0 • 0 0 ••••• 0 ••• 0 • 0 ••• 0 •••••• 0 0 ••••••••• 0 •• 0 •• ••••••• •••••••••••••• • • 0 • 0 •••• ••• • 0 0 • 0 0 0 0 • 0 0 0 • 0 ••• ••••• 0 •• 0 ••••••••••• 0 0 0 • 0 0 0 • 0 0 0 0 • • 0 •••• 0 0 0 •• 0 0 • ••• 0 0 0 • 0 • 0 0 • 0 •• 0 • 0 • 0 0 • 0 • 0 •••• 0 0 0 0 0 • 0 • 0 • • • • • • • 0 • 0 • • • • • • 0 0 0 • 0 0 • • 0 • 0 0 0 ••• 0 • 0 •• 0 •• 0 •••• 0 ••• ••• • ••••••••• • 0 •• 0 • 0 0 00 • 0 •••• 0 • 0 •• 0 • 0 0 • 0 0 0 0 • 0 0 ••• 0 0 0 • 0 0 • 0 0 • 0 • 0 •• 0 •• 0 • 0 0 • •• 0 • 0 0 ••• 0 0 0 0 • 0 ••••••••• 0 •• 0 •• 0 • 0 0 0 • 0 0 0 0 •• 0 • 0 0 • 0 ••••••• 0 • 0 0 0 •• 0 • 0 0 • 0 0 0 • 0 • 0 0 •• • 0 0 • 0 •• 0 0 0 • 0 • 0 297 299 300 301 302 304 305 306 306 306 307 308 310 311 312 312 313 314 316 317 318 318 319 321 321 321 322 323 324 327 328 328 329 330 331 332 333 333 336 337 338 339 340 340 343 345 349 356 359 361 365 366 ILL USTRATIONS (continued) Figure 349 350 351 352 353 354 355 356 357 358A 358B 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 Title Timing for Register File Enables . . . . . . . . . . . . . . . . . . . . . . . . . .. . Flow Chart for Updating Real Time Clock . . . . . . . . . . . . . . . . . . . . . . Flow Chart for Connect (77. OC) and Function (77. lC) Instructions . . . . . . Flow Chart for Activate Search (71) or Move (72) Instructions . . . • . . • • Flow Chart for Output Buffer Cycle . . . . . . . . . . . . . . . . . . . . . . . . .. Flow Chart for Input Buffer Cycle . . . . . . . . . . . . . . . • . . . . • . • . . . . Flow Chart for Character Search Buffer Cycle . . . . . . . • . . . . . . . . . . . Flow Chart for Move Buffer Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . Flow Chart for IRT with Register File . . . . . . . . . . . . . . . . . . . . . . . . . Contents of OX Register . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . Contents of IX Register . . . . . . . . . • . • . . • . . . . . . • . . . . • . . . . . . . Communications Modules . . . . • . . . . . . . . . . . . . . . . . . . . . . • . . . . . 3300 Computer Physical Layout . . . . . . . . . . . . . . . • . . . . . . • . . . . . . 3300 Communications Module Block Diagram . . . . . . . . . . . . . . . . . . . . Generalized Flow Chart of Operations . . . . . . . • . . . . . . . . . • . . . . . .. Detailed Flow Chart of Sequence Operation . . . . • . . . . . . . . . . . . . . . . Data Bus Transmitter Logic . . . . . . . . . . • . . . . . . . . . . . . . . • . . . . . . 3304 Processor with Data Bus Emphasized . . . . . . • . • . . . . . . . . . . . . I/O Data Flow . . . . . . . . . . . . . . . . . . . . . . . • . . . • . . . . • . . . . . . . Connect Sequence . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . Function Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . o Register Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . Channel Busy to Processor • . • . . • . • . . • . • . . . . • . . • . • . . . . • . . . . Clear 0 Register Enable . • • • . . • . . . . . . • . . . . . . . . . . . . . . . . . . . . Clear 0 Register Enable . . • . . . . . . . . . . . . . . . . . . . • . . . . . . • . . . . Bus to 0 Register Enable . • . . . . • . . . . • . • . . . . . . . • . • . . . . • . . . . Channel Preset Status . . . • . . . . . . • . • . . . . • . . • . • . . . . • . . . . • . . Reject and Parity Error Clear Enables . • . . . . • . . . . . . . . . • . . . . • . . o Register to External Equipment Enables . . . . . . . . . . . . . • . . . . . . • . Connect and Function Signals . . . . . . • . . . . . . . • . • . • . . . . . . . • . • . . Channel Preset Enables . . . . . • . . • . • . . . . . . . . . • . . . . . . • . . • . . . Channel Preset Status . . • . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . Reply on Connect or Function. . . . . . . • . . . . . . . . . . . • . . • . . . . • . . . External Reject on Connect or Function . . . . • . • . . . . . . . • . • . . • . . . External Reject Status . . . . . . . . . . . . . . . . . . . . . . • . • . . • . . . . • . . Reject Signal to CPU . . . . . . . . . . . . . • . . . . . . • . . . • . • . . • . . . . • . . External Reject Enables . . . . . . . . . . . . . • . . • . • . • . . • . • • . • . • . . . No Response Reject FF . . . . . . . . . • . • . . . . • . • • . • . • . . • . • . . • . • Channel Enable . . . . . . . . . . . . . . . • . . . . . . . . . • . . . . • . . . . . . . . . Block Control Request upon Activate Write . . . . . . . . . . • . • . . • . • . . . Timing for Connect or Function for Even Channel (70.0 + 77.1) ••.•.••. Write FF and Transmitter . . . . . . • . . . . . . • . • . . • . • . . • . • . . . . . . Channel Preset Clear Enable . . . . . . . . . . . . . . . • . . . . • . • . . • . • . • . Graphic Representation of a Write Operation . • . . . . • . . . . • . . • . . . • . Clearing the Block Control Request .. • . . • . • . • . . • . • . . • . • . . . . . . Data Signal FF Enables . . . . . . . . • . . . . • . . . . • . • • . • . • . • • . • • . . o Register to External Equipment Enables . . . • . . • . . . . . . • . • . . • . • • Data Signal Transmitter . . • . . . . . . . . . • . • . . • . • . • . . • . • . . • • • • . Terminate FF Enables . . . . . . . . • . • . . • . • . . • . • . • • . • . • . . • . • . . Data Signal Transmitter . . • . . . . • . • . . • . • . . • . • • • • . • . • . . • . . • • Block Control Request upon Reply . • . . • . . . • . . • . • • • • . • • . . . • . . . o Register to External Equipment Enable . . • . . • . • . • • . • . • • . • . • • . o Register to External Equipment Enables . . • . • • . • . . • . • . • • . • . • • • Read Operation . . . . . . . • . . . . • . • . . • . . . . • . • . . • • • . . • . • . • • • . Page 368 370 373 374 375 376 377 378 379 380 380 387 388 388 389 390 390 391 391 392 393 393 393 394 394 394 394 394 395 395 395 395 395 395 395 395 396 396 396 396 397 397 398 399 399 400 400 400 400 400 400 400 400 401 xvii ILLUSTRATIONS (continued) Title 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 xviii Channel Enable Enables . . . . . . . . . . . . . . . • . . . . . . • . • . . . . . . . . . • . . Clear Channel Preset FF Enable . . . . . . . . . . . . . • . • . . . . . . . . . • . . Read Signal to Controller . . . . . . . . . . • . . . . . . . . . • . . . . . . . . . . . . Data Signal Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . External Equipment to 0 Register Enables . . . . • . . . . . . . . . . . . . . . . . Block Control Request upon Reply. . . . . . . . . . . . . . . . . . . . . . . . . • . . Block Control Request Lockout Enable. . . . . . . . . . . . . . . . . . . . . . . .. o Register to Bus Enable ... . . . . . . . . . . • . . . . • . . . . . . • . . . . • . . Clear 0 Register Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminate Enable upon Operation Complete . . . . . . . . . . . . . . . . . . . . . Channel Terminate Signal to CPU . . . . . . . . . . . . . . . . . . . . . . • . . . . . Blocking Block Control Requests upon Termination . . • . • . . . . • . • . . . . Terminate Enable upon End of Record . . . . . . . . . . • . . . . . . • . . . . • . . Status and Sense Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Graphic Representation of a Sense Operation . . . . . . . . . . . . . . . . . . . • Internal Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . External Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . Parity Error Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . Internal Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . Channel Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . . . • Interrupt Signal Circuitry . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . Clearing Circuits . . . . . . . . . . . . . . • . • . . . . . . . . . . . . . . • . . . . . . External I/O Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I/O Channel Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3307 Data Flow on Output (Without Disassembly) . • . . . . . . . . . . . . . . . . 3307 Data Flow on Output (With Disassembly) . . . . . . . . . . . . . . . . . . . . 3307 Data Flow on Input (Without Disassembly) . . . . . . . . . . . . . . . . . . . 3307 Data Flow on Input (With Assembly) . . . . . . . . . . . . . . . . . . . . . . I/O Signals on Read (Assembly) with 3307 . . • . . . . . . • . . . . . . . . . • . . I/O Signals on Write (No Disassembly) with 3307 . • . . . . . . . . . . . . . . . . I/O Signals on Read Buffer Cycle (Assembly) with 3307 . • . . . . • . . . . • . . I/O Signals on Activate Read (Assembly) with 3307 . . . . . . . . • . . . . • . . I/O Signals on Write Buffer Cycle (Disassembly) with 3307 . . . . . . • . . . . I/O Signals on Write Buffer Cycle (Disassembly) with 3307 . . • . . . . . . . . 3306 Forward (73 OR 74) Data Flow . . . • . . . . • . . . . • . . . . . . . . . . . • 3306 Forward (75 OR 76) Data Flow . . . . . . . . . . . . . . . . . . . . . . . • . • 3307 Forward (73 OR 74) Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . 3307 Forward (75 OR 76) Data Flow . . . . . . . . . . . . . • . . . . . . . . . . . . o Register 402 402 402 403 403 403 403 403 403 403 404 404 404 404 405 405 406 407 407 408 408 409 409 410 410 412 413 415 417 418 419 420 421 422 423 424 425 426 427 TABLES Table 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Title Drive Transformer Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partial Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . • . . . . . . Interface Signals . . . . . . . . . . . . . . . . • . . . . • . • . . • . • . . • . . . . . . . Digit Position Selection . . . . . . . . . . . • . . . . . . . . . • . • . . . . . . . • . . Read Storage Timing Chart . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . AND Gates for Sequence Progression . . • . . . . • . • . . . . • . . . . . . . . . . Inverter Rank Transfer Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A, Q, and Bb Jump and Skip Instructions . . . . . . . . . . . • . . • . . . . . . . • MTH Count Example. . . . . • . . . . • . . . . . . . . . • . • . . . . . . • • . • . • . . SCR Count Example . • . . . . . . . . . . . . . . . . . . . • . . . . • . • . . . . . . . . Floating-Point/Double-Precision Instructions • . . . • . . . . . . . • . . . . . . • Representative Interrupt ID Codes . . . . . . • . • . . . . . . . . . • . • . . . . . . Parity Error Interrupt Codes • . . . . . . . • . • . • . . • . . . . • . • . . . . • . . . Interrupt Mask Register Bit Assignments . . . . . . • . . • . • . • • . • . . . . . List of Trapped Instructions. . . . . . . . . . . . . • . . . . . . . . . . • • . • • . • . Busy Comparison Mask. . . . . . . . . . • . • . . . . • • . • . • . . • . • • . • . • . . Clear Instructions - Mask Bit Assignments . . . . . . • . • . . . . • • . • . • • . Register Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Scanner States . . . . . . . . . . . . . . . . . . . . • . • . . . . . . . . . • . . • . . . • Input/ Output Instructions. . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3300 I/O Related Instructions . • . . . . . . . . . . . . . . . . . . . • . . . . . . . . . Bidirectional Signals. . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . Signals from Channel to External Equipment . . . . . . . . . . • . . . . . . . . . . Signals from External Equipment to Channel. . • . . • . . . . • . . . . . . . . . . 87 98 110 151 164 239 252 262 279 285 300 352 353 354 358 360 362 366 367 369 388 428 428 431 xix CHAPTER 4 DESCRIPTION AND GENERAL INFORMATION STORAGE STORAGE CAPACITY The maximum internal storage capacity of a 3300 Computer System is 262,084 28-bit words. The minimum internal stor age capacity is 8, 192 28-bit words. The storage capacity of an 8K system may be increased to 16,384 words by adding an additional 8K module to the basic system. Any additional increments beyond 16, 384 words must be made by adding 16K modules. Therefore, there are two types of storage modules available, the 3309 Storage Module (8K) and the 3302 Storage Module (16K). 3309 Storage Module One 3309 (8K storage) is included as part of each processor. No more than two 3309 1 s maybe attached to anyone system. Figure 51 shows the 3309 Storage Module 0 3302 Storage Module A 3302 provides 16,384 words of storage capacity; it has a 16K stack, not two 8K stacks. Therefore in this text the 3309 and 3302 must be treated separately. Figure 52 shows the 3302 Storage Module. 67 Figure 51. 3309 Storage Module STORAGE WORD FORMAT The 28-bit storage word (figure 53) contains 24 bits of data, which may be exchanged with the processor, and four parity bits, which are generated and checked only in the storage module. The storage word can be considered to be four 6-bit characters ann fonr parity hite:; (one p~t'ity bit associated '.vith each character). STORAGE PARITY Each character within a storage word has one 68 parity bit associated with it (figure 53). During each write cycle, a parity bit is stored along with each character. When part or all of a word is next read from storage, parity is checked for a loss or gain of bits. The 3300 uses odd parity; that means the number of l' s in a character, plus the parity bit, always totals an odd number. Any f:J.ilure to produce cor-' rect parity read operations cuases a memory fault indication on the storage module control panel and the console, followed immediately by a program halt. If the console PARITY STOP switch is inactive, parity Figure 52. 27 26 25 24 3302 Storage Module 18 23 CHARACTER 0 17 12 CHARACTER 06 II CHARACTER PARITY BIT FOR CHARACTER 3 PARITY BIT FOR CHARACTER PARITY BIT FOR CHARACTER PARITY BIT FOR CHARACTER 2 I 0 2 05 CHARACTER 00 3 Figure 53. Storage Word Format 69 will still be generated, but the program will not halt because of a parily error. The storage module control panels, figures 54 and 55, contain lights which display each bit of the current storage word, including four lights for display of the parity bits. Complete the following table. Show whether the parity bits of each character is a 1 or a O. 24-Bit Word To Be Stored 01234567 20356016 10667201 00010233 60731065 06731026 Parity Bit Parity Bit Parity Bit Parity Bit for for for for Char 1 Char 3 Char 0 Char 2 STORAGE MODULE DESCRIPTION Storage Registers Two registers, Sand Z, are associated with each storage module. 1. S Register - The S register contains the address of the word currently being processed. The 3309 has a 13-bit S register; the 3302 has a 14-bit S register. The address is transmitted from the processor or the multiprogramming module. 2. Z Register - The 2S-bit Z register is the storage restoration and modification register. A storage word may be read into Z and the 24 bits of data transmitted to the processor via the data bus or the processor may send a new 24-bit word (or portion of a word) over the data bus to storage where the word is placed in Z, then written into storage with the correct parity. Read/Write Controls During a normal memory read cycle, all bits of a word referenced by (S)* are read out of core storage in parallel, loaded into Z, used for some purpose, and written back into storage intact. A memory write cycle is performed just like a read cycle except that certain groups of bits are blocked from Z register initially and new data from the processor is placed in these bits of Z (Z) is then written back into storage. The correct parity for the new data is also generated and written into storage. Five modes of storage modification (partial writes) are possible in t.he 3203/3209. In all cases, assume that Z is clear. Z regisLel' is cleared only aL the beginning of each memory cycle (except when master cleared). lfthe program stops as the result ofa parity error the operator can examine (Z) via the storage module control panel (figure 54). The storage modification mode s are: 1. Single-Character Mode - Anyone 6-bit character may be ignored during read cycle. New data is then loaded into the corresponding character position of Z and the whole (Z) is stored. 2. Double-Character Mode - The upper, middle, or lower half (12 bits) of a word is ignored during read cycle. New data is loaded into the unfilled half of Z and the whole (Z) is stored. 3. Triple-Character Mode - Either of the two possible triple -character groups may be ignored during read cycle. New data is then loaded into the corresponding character positions of Z and the whole (Z) is stored. 4. Full-WordMode - The whole 24-bit wordisignored during read cycle. A new word is entered into Z and (Z) is stored. 5. Address Mode - The lower 15 or 17 bits of a word may be ignored during read cycle. A new word or character address is then loaded into A and the whole (Z) is stored. 0 *Parentheses signify "contents of. " 70 Figure 54. SK Storage Module Control Panel Storage Module Control Panel Figurc 51 shows thc storage control panel which is mounted at the top of each SK storage module. Figure 55 shows the storage control panel for the 16K slorage module. The drive voltage control permits the adjustment of the drive voltage to 26v. The drive voltage meter Figure 55. 16K Storage Module Control Panel indicates drive voltage. It reads ,:t20% and is adjusted to read 0% (most modules require approximately 22. 5v to provide the best margins). The panel contains indicator lamps to display the contents of the S register, the contents of the Z register (including the four parity bits), and three storage faults: x or y drive line voltage failures and storage parity fault. The panel also contains a three-position switch labeled CONTROL SELECT (figure 56). The storage module may communicate with one or both of the processors (or pieces of special equipment), depending on the setting of the CO~TROL SELECT switch. The switch settings are: 10 The storage module communicates with the processor located to the left (as you face the control panel) of the module. Refer to figure 56 and note that the arrow for setting 1 points to the left. 2. The storage module communicates with the processor located to the right of the module. Note that the arrow for setting 2 points to the right. 3. The storage module may be shared by both processors. Note that arrows point in both directions for this switch setting (figure 56). PROCESSOR PROCESSOR 3209 Figure 56. Use of Control Select Switch A two-position scanner determines whichprocessor communicates with the storage module at any given time. If the storage module is being used by one processor, a request from the other processor must wait. Control is then surrendered to the waiting processor at the end of the current cycle. When a storage module is to be used by one processor only, the CONTROL SELECT switch should be set to point toward that processor. This disables the scanner and locks out the unused access path. BUSSING SYSTEM Figure 57 is a hlock diagram of an 8K storage module and shows the signaJ..g exchanged with aprocessor. In figure 57 the dotted lines represent control operations while the solid lines represent transmissions. The heavy solid lines represent data transmissions. Information and control signals are exchanged between a processor and storage modules over a system of twisted-pair wires known as the bus system. Figure 58 is a photograph of bus wires in chassis 1. S Bus The S bus system is an I8-bit bus which supplies a Storage Request Signal and a 17 -bit address to storage. The 17 -bit address consists of a 3-bit Module Select code and a 14-bit Coordinate address 71 x DRIVE (&'1 LINES) r - - - .. I L -_ _ _ _ _ _~ , , , I I I , , r----' I L_ -- , , I , , Y DRIVE 164 LINES PER FIELD) . SENSE FIELD 0 FIELD 0 LF rL (409& WORDS) FIELD I SENSE FIELD I (40S& WORDS) I I I I I I I I PARITY I t r ---, L_ s i INHIBIT I I REGISTER J ' - - . - -_ _ _{_13_B_ITS_)_ _~----' I r----------------~ I I I I I I I I I I t~ -----l· ----------- STO~AGEO I LEfT S BUS Z REGISTER f----- CONTROL RIGHT S BUS I -----~44-/~'-' _..:)~,L (24 BITS) r LEFT DATA BUS RIGHT DATA BUS RIGHT LEFT BUS MAIN CONTROL _ STORAGE _ STORAGE MAIN CONTROL BUS { REQUEST. READ OR WRITE, MASTER CLEAR, WRITE CHARACTER DESIGNATORS. DISABLE PARITY REPLY, IIUSY, PAR,n for referencing a 3302. For referencing a 3309, the lower 17 bits of the S bus contain a 4-bit Module Select code and I3-bit Coordinate address. If the Multiprogramming module is not present in a 3300 system the following characteristics exist: 1. Maximum internal storage capacity is 131K. 2. Only one bus system exists. 3. The storage address and storage request go directly from the processor to storage. If the Multiprogramming module is present the following characteristics exist: 1. Maximum internal storage capacity is 262K. 2. Two distinct buses exist, one defined as the right bus (allows access to addresses 000000 through 377777), the other defined as the left bus (which allows access to addresses 400000 through 777777). 3. The storage address and storage request are placed on the storage S bus by the Multiprogramming module. 72 fAt"_~ Figure 57. 8K Storage Block Diagram BUS WIRES Figure 58. Bus Wires Figure 59 graphically represents the S bus scheme if the Multiprogramming module is not present whereas figure 60 represents the S bus scheme if the Multiprogramming module is present. 117 16 In figures 61 and 62, notice that any address placed on the storage S bus becomes available to all stor age modules in the system; however, Storage Request (bit 17) goes only to the right or to the left. 14 13 00 I ~~--------------,~----------------~I L 14 BIT COORDINATE ADDRESS 3 BIT MODULE SELECT I CODE Figure 59. Function of S Bus Bits When Referencing 3302 STORAG E REQUEST 13 12 /17 16 ~ 001 1\~------------~vr----------------~I L13 BIT COORDINATE ADDRESS I L -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _... Figure 60. Function of S Bus Bits When Referencing 3309 4 BIT MODULE SELECT CODE STORAGE REQUEST CPU CPU S BUS LOW CORE MULTIPROG. MODUL TORAGE MODULE TORAGE MODULE ,---- .... )~STORAGE S BUS STORAG MODULE MODULE HIGH CORE Figure 61. S Bus Scheme if Multiprogramming Module Present 73 CPU " IS-BIT S BUS STORAG MODULE MODULE STORAG MODULE TORAG MODULE Figure 62. S Bus Scheme if Multiprogramming Module Not Present For a unique module to honor a storage request, the Module Select code must match the setting of MODULE SELECT switches. Data Bus The data bus transmits 24 bits of data to and from the processor and storage register Z. As in the case of the S bus, the data bus is tied in parallel to all storage modules and is also tied into each communication channel. However, the data bus is used only by the module which receives a request from the processor. that prevents alteration of a block of storage addresses. When logic in the computation section has determined that a reference is about to be made to a protected location, it changes the write signal (previously sent to storage but not yet used) into a read signal. Therefore, the contents of that location are not altered. The storage module is given no other indication that any addresses are being protected. Figure 63 shows the system power panel with the STORAGE PROTECT switches. STORAGE PROTECTION Storage protection is the feature of the 3200 System 3309 THEORY OF OPERATION Two processors may share use of a storage module. To reference storage a processor sends the address of the word desired accompanied by a request signal. A scanner determines which computer has first access to the storage module. The request lines are monitored consecutively, insuring that each processor will be acknowledged in turn, free from interference. If only one processor is used the CONTROL SELECT switch locks the scanner to continually monitor only the right or left bus. ¥/hen tl request is received storage control gates the Lj;..blt address trom tile S bus Into the SregIsterwhere it is translated to select the proper drive lines for a memory reference. Each of the two memory operations--read from memory and write into m~mory - -consists 0[: 74 1. A read phase, during which a word of information is removed from an addre s s in memory, followed by 2. A write phase, during which a word of information (either the same word or a new word) is written into memory at the same address. The processor will specify either read from mem0ry or write into memory. 1. Read from memory. Memory performs a read/re- store cycle in which a word is taken from memory, entered into Z register, and re -stored in its original memory location. While the word is in Z register it is also transmitted to the equipment via the data bus. 2. Write into memory. Memory performs a read cycle, with entry to Z register blocked for all or certain portions of the word from storage. The por- Figure 63. System Power Panel tions of the word to be blocked from Z are determined by the type of partial write mode selected (selection depends on the instruction or cycle being executed}. The processor transmits updated information via the data bus into Z register and then into the original memory location. Figure 64 maps out the theory of operation. It shows the basic steps in one complete memory cycle: 1. Set busy FF. 2. Turn on read current. 3. Gate the contents of a storage cell into Z register via the sense amplifiers. 4. Turn off read current. 5. Turn on inhibit current. (Prepare for re-storing information. ) 6. Turn on write current. (Re-store information.) 7. Strobe for parity errors. (Parity is only checked early in the write cycle.) 8. Turn off write and inhibit currents. (Re-storing is completed.) 9. Clear busy FF. (Cycle completed.) Information access time for memory is approximately 750 nsec. A complete storage reference cycle takes 1. 25 usec. There are other timing pulses in the memory cycle but the ones listed above are most important. 75 v ~ ---~ TIME~ 3 12 4 t--- 5 / 1\ 6 8 7 The next portion of the chapter analyzes circuitry in each portion of the memory cycle. CONTROL SELECT As described earlier, a storage module may communicate with a proce s sor via the right bus or left bus, or the module may be shared by two processors, one using the right bus and one using the left bus. The CONTROL SELECT switch (figure 65) is used to select right bus, left bus, or priority (a scanner controls use of right bus or left bus in this case). In the logic shown in figure 65, CONTROL SELECT places a ground on the input ot one of the G18x terms, allowing it to output a 1 to indicate which bus is se1ected. Note that the Yl8x: terms are sections of a filter card (HAI7) and only remove noise from the signal. They do not delay or invert. The following discussion of the scanner explains the use of the signals from G18x. Scanner Two processor modules may share a storage module. One processor communicates with the storage module via the left bus, the other processor communicates with storage via the right bus. Storage requests are serviced on a first-come, first-served basis by the storage module. A two-position scanner determines which computer has access to the storage module at any given instant. The scanner first checks one line, then the other for a request. When a request is detected (R620 or R621 = 0), the scanner is disabled. K792/793 is then held clear for a left bus request or held set for a right bus request. (See figure 66.) If the scanner recognizes a left bus request and the busy signal is not present, inverters G070-G072 output l's, gating the address on the left address bus into S register where it is translated. G072 sets: ~ Figure 64. Storage Reference Cycle Timing 9 1. K796/797 - indicates left bus selected. 2. Reply, K780/781 - indicates acknowledgement of request. 3. Pulse generator, K750/751 - starts storage reference sequence. When a right bus request is recognized and busy is down, inverters G080-G082 output 1 's which gate an address from the right address bus to S register. The 1 from G082 sets: 1. Reply, K780/781, and 2. Pulse generator, K750/751. It also clears K796/797 to indicate right bus selected. The scanner reactivates when the request is dropped (which occurs under central processor control after it receives the reply pulse from the storage module). The scanner is active only when CONTR OL SE LECT is set to priority. If only one processor is being used CONTROL SELECT should be set to select the related bus. This will disable the scanner. Review the circuitry that has been covered so far by reading these statements: 1. Control select circuitry causes the following scanner actions according to switch settings: Position 1 disables the scanner (K792/793 clear, K794/795 clear) and selects left bus (G182 sends constant clearing input to K792/793). Position 2 disables the scanner (K792/793 set, K794/795 set) and selects right bus (G183 sends constant setting input to K792/793). Position 3 causes the scanner to flip back and forth constantly and to lock when a request comes from the processor. Receivers R620 and R621 statically have 0' s out which will allow the scanner to run. Receipt of either request, left or right, causes the output of G176 or G177 to drop to a zero, stopping and locking out the scanner to one of the following positions: ~41B 1S40C 1S25A SELECT SWITCH LEFT BUS ~41A ~40B ~PR'OR!TY i:¥I'~,~l'A,~S.ElE~J ~~~q;'4;;tc;<:,-htf:< .A!!~;.;&;,'~",;,:<~~<, m" ~: '".', RIGHT BUS ,"";J;~,\;;,~ Figure 65. 75 Control Select Switch and Logic Gl82 ~ [8--11 R614 I LEFT ADDRESS BUS ----.. S LEFT BUS REQUEST *T65- B---l G070~ GI83 - RIGHT BUS SCANNER G080 K777 K794 037 *T65RIGHT BUS REQUEST K795 G072 K'796 LEFT BUS 027 G----l G082 K797 RIGHT BUS GI82 - LEFT BUS RIGHT ADDRESS BUS G()'!2 -+ S 0082 E3I2 Gl71 ~ K792 LEFT BUS - GI82 K773 Gl83 GI76 GI77 0.1 usee. Figure 66. Left and Right Address Bus ---+ S Control Logic l!. left request (G176 output going to a zero), the scanner will not set K792/793, leaving it cleared. K794/795 is also clear and the scanner remains that way until the request drops. This stopped position is thatwhich the scanner assumes if CONTROL SELECT is in position 1. 2. The scanner locks into a position and a left or right request allows the outputs of G070, 071, 072, or G080, 081, 082 terms to come to al leveL This allows the address (13 bits) on the S bus to enter the S register. Assume Bit 00 is to be set. The central processor holds the 13-bit address on the S bus line (either left or right). When G070 or G080 outputs 1, information is transferred from the S bus via the receiver cards to the S register. The S register is cleared at the end of a memory cycle if there was no parity er- ror or if parity error recognition has been disabled. 3. The output of G072 going to 1 sets the left/ right bus FF (K796/797). The output of G082 going to 1 clears the left/right bus FF (K796/ 797). The output of either G072 or G082 sets the reply FF (K790/791). The reply FF informs the processor that storage has received and is processing the request. Within the CPU, the reply signal drops the request to storage and causes sampling of the data bus if necessary. With the request dropped, the scanner again runs if CONTROL SELECT is in the priority position. Outputs of either G072 or G082 going to a 1 also cause the memory cycle delay line to start. 77 BIT 00 T600 8000 8001 BIT 01 T601 8010 8011 BIT 02 T602 8(l20 8021 BIT 03 T603 8030 8031 BIT 04 T604 8040 8041 BIT 05 T605 8050 8051 G090 Clear 8 G070 G080 Left Bus to 8 Right Bus to 8 Figure 67. S Register Input Logic DELAY LINE The memory delay line supplies necessary time intervals to accomplish reading out of information from memory and writing back of information into memory. Before proceeding, review the major timing intervals of a storage reference cycle (figure 64). The 3300 Computer System uses coincident storage principles. When read or write current is turned on, a previous gating or selecting process must be used to select the X and Y drive lines that will carry read or write current. These and other operations will be devdvp(;d dS a puls~ is follO\\~ed down the delay 1in'~. Each operation will be covered when the pulse reaches that point in the delay line. Considerable time will be spent in each area and all circuitry involved then will be covered. It is a good idea to "step back" occasionally to keep track of our objective, which is to read the contents of a memory location and re-store it in memory. It is also a good idea to review operations and circuitry previously discussed 0 Assume, for example, that the processor needs to use storage 0 Our study of the circuitry has shown: 1. How the request was received. 20 How storage notified the processor that the request had been received and was being processed (reply). 3. How the necessary information from the S bus, the field and coordinate address, was sent to S register 0 Now let s take a look at the actual memory cycle delay line. I Delay Line Timing The timing for a storage reference cycle is provided by a pulse traveling down a delay line. Signals are available at various taps on the line as the pulse passes by them. These signals are used to time the storage reference cycle. The input to the delay line is normally held at a steady 1 by D150 (see figure 68A) .When the pulse generator FF is set (by either G072 or G082), its set output drops the output of D150 (a CA08 card) to a 0, starting a pulse down the delay line. (For further information refer to 3000 Printed Circuits,Manual. The clear output of the pulse generator simultaneously causes Z to clear. The first tap (A3) from the delay line (time 1 of figure 64) will: 1. Set Activate Read FF (K700/701, figure 68B) which enables the 8elected line drivers. 2. Set Gate FF (K710/711, figure 68C) which enables the selected gates to the drive transformers to begin the read phase of the cycle. 3. Set Busy FF (K770/771) which turns on the storage active status display. The Busy FF (K770/771) clear output is inverted by K773 and disables the B07x and G08x inverters to prevent a new address from being transferred off bus to S. This can be seen in figure 66. Figure 69 is a circuit within the 3309 that generates a Master Clear if the module has been busy longer than two microseconds. This logic also prevents Master Clears from occurring during a memory cy cleo The output of Gl69 will be a 1 only if storage is Not Busy (Busy) or if the Busy signal has been up longer than 2 usec. Return for a moment to the Activate Read FF (K700/ 701, figure 68). When this FF sets, the selected line drivers are turned on. Gate FF (K710/711) turns on the gates. How the drivers and gates were selected is the next topic to be discussed. ADDRESS SELECTION Information stored in memory is held in cores located at intersections of X and Y half-current drive GI82 K773 K793 G072 ------. Pulse G082 E300 A. G173 LEFT BUS - Activate Read E303 GI82 GI76 N06A GI77 r;;;:;AA-i----<___~ K704 K706 026A E314 lines. The 4096-word memory module has 64 X and 64 Y drive lines. In order to reference a location, the 13-bit address in Sregistermust be translated so that one X and one Y drive line are energized. The outside appearance of an SK memory stack is shown in figure 71. An SK stack is made up of two identical 4K fields. In figure 71 visually follow the cable coming up from the lower right corner and note the flanged area immediately behind it. This flange separates the two fields. They can be disassembled by removing the cables and then the connecting bolts. MC G171 - - - - ' B. HOlLl<. E303 H02A E334 G171 _ _...J MEMORY PLANES AND WAFERS The wires threading the memory cores are strung across the center areas of square mounting frames to form memory planes. The wires used to drive and sense the cores are also used to hold the cores in place. A memory plane is a matrix of 4096 cores representing one bit of the 2S-bit computer word. Each plane has 64 X drive lines passing through 64 columns of cores with each drive line threading all 64 cores in one column. The Y drive lines are threaded similarly but at a 900 angle to the X drive lines. G01A G01B C. Figure 68. Pulse Generator, Activate Read, and Gate Logic 004A Figure 69. Busy FF and Left Address Bus -... S Control Logic 2!04B BUSY K771 MASTER CLEAR M40A 40.0 mSEC. g)30D POWER ON M.C. Figure 70. 3309 Master Clear Control Logic 79 A memory wafer is formed by wiring a four-section frame so that it contains four distinct bit planes (figure 72). Each memory plane contains one bit of a word, so a wafer contains four bits. MEMORY STACK The cubic memory stack is formed by nine wafers mounted one behind another. The front wafer, the input or terminal wafer, serves as a terminal point for the X and Y drive lines. The bit plane wafers follow and may be numbered sequentially from front to back beginning with O. Bits 0-23 are contained in the first six bit plane wafers (0-5). Wafer 6 contains the bit planes for the four parity bits. The last wafer serves as a transposition plane where X and Y drive lines are transposed from one section of the stack to another. The 64 X or Y drive lines are arranged in four stripes of 16 lines each, eight even and eight odd. Each stripe is associated with one inhibit line. To reduce noise the odd drive lines within each stripe are transposed at the transposition wafer. The first four odd drive lines change relative positions with the last four so they return to the input wafer threaded between different even-numbered drive lines. Exploded views of the stack are shown in figures 73 and 74. Figure 71. 8K Memory Stack XOO (OR I VE FROM TRANSFORMERS) XOO COMING BACK UP ~THROUGH THE FIELD. BIT I ro~ BIT 0 ~ ~ TERMINAT~I~O~Nr---~--------------~~~---------+--------------~~~--~,YOO COMING ~ " J UP THROUGH THE FIELD CO-ORDINATE_----J'- , "0000" BIT 3 BIT 2 I THREADS THROUGH THE 1/ ~,----+'--------------~l~~~'--------~l-.--.-------.---"--. .-..--"----~~~~~"4J----~I~~~~::;~:~~- Figure 72. Memory Wafer TO fiELD I 80 THREADS DOWN THROUGH THE FIELD Figure 73. X Drive Line Configuration (Front View) N 32 EVEN X DRIVE LINES l FROM 32 TRANSFORMERS) TERMINAL WAFER l\NPUTjOUTPUT) EVEN CORE BITS (~~) ODD CORE ARRAY BITS (~ ~) EVEN CORE ARRAY BITS (91\ 108) ODD CORE ARRAY BITS (13 32 ODD X DRIVE LINES (FROM 32 TRANSFORMERS) 12) 14 15 / EVEN CORE ARRAY BITS (17 16) 19 18 ODD CORE ARRAY BITS (21 23 X DRIVE THEN GOES TO THE INPUT WAFER OF FIELD I AND THROUGH FIELD I TO THE TERMINATING RESISTORS. 20) 22 EVEN CORE ARRAY BITS (25 24) 27 26 TRANSPOSITION WAFER 32 ODD X DRIVE TERMINATING RESISTORS w (THE EVEN X DRIVE TERMINATING RESISTORS ARE NOT SHOWN) E TRANSPOSITION WAFER EVEN CORE ARRAY BITS (25 24) \27 26 ~ ODD CORE ARRAY BITS (21 20) \23 22 ~ Figure 74. Y Dr.ive Line Configuration (Rear View) EVEN CORE ARRAY BITS (17 19 ~ 16) 18 ODD CORE ARRAY BITS (13 12) 15 14 EVEN CORE ARRAY BITS ~ C~ I~) 0 DO CORE ARRAY BITS (~ :) EVEN CORE ARRAY BITS (~ ~) TERMI NAL WAFER ~ (INPUT/OUTPUT) _ 32 ODD Y DRIVE LINES (FROM 32 TRANSFORMERS) 32 ODD Y DRIVE TERMINATING RESISTORS (THE EVEN Y DRIVE TERMINATING RESISTORS ARE NOT SHOWN) 32 EVEN Y DRIVE LINES (FROM 32 TRANSFORMERS) s 81 Two 4096-word stacks (fields 0 and 1) are mounted face to face, making one 8192-word stack. These memories work together with common X drive lines and separate Y drive lines. Although the two stacks are physically identical, for easier wiring the bit planes of field 1 are rotated 900 clockwise from those of field O. The X drive lines of field 1 are inverted from those of field 0 (figures 75 and 76). The odd Y drive lines enter fields o and 1 from the left. The even Y drive lines enter fields 0 and 1 from the right (figures 75 and 76). Terminating resistors for the X drive lines are mounted on me rear panel of the stack and those for the Y drive lines are on the side panels. Figure 72 is a simplified layout of four bits and the selection method via X and Y coordinates in field O. Note that the Y drives terminate in this field (0) while the X drive line continues into the next field (1). Separate connections are made to the sense and inhibit lines of each memory bit plane. Each sense line extends to a pair of tabs at a corner ofthe memory board. These tabs are connected to the sense amplifier circuits by twisted -pair wiring. Each inhibit line is brought out to a pair of tabs on the memory board. The se tabs are connected to the inhibit circuits by twisted -pair wiring. Drive Lines The 64 X drive lines enter the two right planes of wafer 0 from the terminating wafer and thread through all the cores in the 14 right planes. Each drive line threads all the cores in one columnof a plane, then is jumpered to the corresponding column of cores in the next plane. At the last wafer the X drive lines are transposed and returned to the input wafer through the left planes of the memorywafers. The X drive lines are common to fields 1 and O. Fields 1 and 0 have separate Y drive lines. Only the Y drive lines for the selected field are energized at any one time. These lines thread the wafers in much the same manner as the X drive lines are threaded. The Y drive lines in field 0 run from input wafer to transposition wafer through the lower two planes and return through the upper two planes. The Y drive lines for field 1 are threaded from input wafer to transposition wafer through the upper two planes and return through the lower two planes. For easier construction the even -numbered drive lines enter one side of a wafer while the odd-numbered drive lines enter from the opposite side (figures 75 and 76). The half-current drive lines are energized in the same manner as transmission lines. Characteristic impedance of ;l drive line is approxima.tely 130Q, so each line is terminated with a 130Q, lOw, nonillductive resister. The lines are energized by pulses of 22-25v and the lesulting half currents are about 340 rna. 82 STACK CONSTRUCTION (field 0, 4K) 1. Each connector on the north (top) side of field 0 serves the following purpose: A. Odd X drive to CHASS IS field 1 S I DE B. Even CD 0 @& c9 NORTH X dri ve s from transformers C. Inhibit stripes 2 and 3 (28 wires) D. Inhibit stripes 0 and 1 (28 wires) E. Sense (7 twisted pairs) 2. Each connector on the east (right) side of field 0 serves the following purpose: e A. Even @G Y drive lines input from transformers B. Inhibit stripes 2 and 3 C. Inhibit stripes 0 and 1 D. Sense CHASS IS SIDE (oJ EAST 3. Each connector on the south (bottom) side of field 0 serves the following purpose: A. Even X drive output to field 1 (!) @ @ CD CD CHASS IS SIDE SOUTH B. Odd X drive from transformers C. Inhibit stripes 0 and 1 D. Inhibit stripes 2 and 3 E. Sense 4. Each connector on the west (left) side of field 0 serves the following purpose: CHAS SI S SIDE II~I( \ I ~'VI WEST A. Odd Y drive lines from transformers B. Inhibit stripes 0 and 1 Inhibit t:>tripes and 3 D. Sense '\....I. 1. ODD X DRIVE ODD X DRIVE (FROM CORE ARRAY I) (FROM FIELD 0 VIA INPUT WAFER) INHIBIT STRIPE 2 INH IBIT STRIPE I SENSE BIT 3 INHIBIT STRIPE 3 INHIBIT STRIPE 0 S INHIBIT SENSE BIT INHIBIT STRIPE 4096 CORES (64 X 64) ODD Y DRIVE (FROM 32 FTORR~NESRS INHIBIT STRIPE 2 VIA INPUT INHIBIT STRIPE 3 WAFER) BIT PLANE 3 4096 CORES (64 X 64) 1 4 - + - - - - - - - EVEN Y DRIVE (FROM 32 XFORMERS VIA INPUT WAFER) BIT PLANE I INHIBIT STRIPE ODD Y DR IVE - - - - - - - 1 - - + 1 (FROM CORE ARRAY I) SENSE BIT 24--~ 4096 CORES (64 X 64) 0 INHIBIT STRIPE 4096 CORES (64 X 64) ~t------- EVEN Y DRIVE INHIBI';F~~MpC£FW ARRAY I) BIT PLANE 2 INHIBIT STRIPE 3 INHIBIT STRIPE 3 SENSE BLT 0 INHIBIT STRIPE I INHIBIT STRIPE: 2 EVEN X DRIVE EVEN X DRIVE (FROM CORE ARRAY I) (FROM FIELD 0 VIA INPUT WAFER) Figure 75. Even Memory Core Array, Field 0 EVEN X DRIVE EVEN X DRIVE (FROM CPRE ARRAY I) (FROM 32 XFORMERS VIA INPUT WAFER) INHIBIT STRIPE 2 INHIBIT STRIPE I INHIBIT STRIPE 3 I HIBIT STRIPEO SENSE BIT 0 ~-L~~~~N~__~~~~ INHIBIT STRIPE 3 SENSE BIT I ODD Y DR IVE ------------+~ (FROM CORE ARRAY I) 4096 CORES (64 X 64) 4096 CORES (64 X 64) BIT PLANE I BIT PLANE 0 INHIBIT STRIPE 2 1 4 - + - - - - - - - EVEN Y DRIVE ~---'INHIBIT (FROM CORE ARRAY I) STRIPE I INHIBIT STRIPE 0 INHIBIT STRIPE 3 INHIBIT STRIPE 2 ODD Y DRIVE f~~~s :"2 -------+-~ INHIBIT STRIPE FORMERS VIA INPUT INHIBIT STRIPE 0 WAFER) 4096 CORES (64 X 64) BIT PLANE 3 4096 CORES 14-+------EVEN Y DRIVE (64 X 64) (FROM 32 TRANSFORMERS VIA INPUT BIT PLANE 2 ~--+SENSE BIT 2 WAFER) INHIBIT STRIPE 0 INHIBIT STRIPE I INHIBIT STRIPE 2 ODD X DRIVE ODD X DRIVE (FROM CORE ARRAY I ) (FROM 32 TRANSFORMERS VIA INPUT WAFER) SENSE BIT 3 Figure 76. Even Memory Core Array, Field 1 83 Drive Compensator In order to hold a constant load on the memory power supplies, load compensator circuits are enabled when the memory drive circuits are not carrying current. When neither read nor write is being performed the X and Y drive lines are turned off and the load compensator is enabled. The load compensator consists of two C03 line driver cards (two sections per card). Each section drives a current of approximately 400 rna through a 50Q, lOw, noninductive load resistor. line threads 1024 cores in a 4K field. Inhibit stripes are common to fields 1 and 0; thus, each inhibit stripe threads 2048 cores in an 8K stack. Four inhibit lines are needed to thread the 4096 cores for each plane (figure 77). The inhibits are not jumpered together and each inhibit winding appears in one plane only. Use of four stripes per plane reduces the number of cores disturbed by an inhibit pulse, thus reducing noise generated in the sense amplifier windings. Inhibit Line s Since the drive lines affect simultaneously all 28 cores in a selected storage location it is necessary to negate those lines affecting any bit position which must remain in the clear state. The inhibit line carries a 340 rna current parallel to one of the half-current drive lines, but in a direction opposite to the half-write current. Therefore, if the inhibit current is flowing duringwrite phase it will cancel one of the half-write currents and will prevent any core through which it passes from being switched to the set state. The inhibit lines in each plane are arranged in four groups or stripes. Each stripe is 16 cores wide and extends all the way across the plane; thus, each inhibit Inhibit Compensator As in the case of the drive lines, load compensator circuits are enabled during times when the inhibit circuits are not carrying current. This holds a constant load on the memory power supplies. The inhibit circuits include a load compensator for each plane in the inhibit driver selection scheme. Four inhibit driver circuits are required per plane and a fifth circuit is included as a compensator. This fifth circuit is an inhibit compensator, card type C09. The inhibit circuits are selected one at a time through translations from Sand Z registers. When all four inhibits to a plane are turned off, the inhibit compensator is enabled. The compensator circuit drives 340macurrent TO INHIBIT GENERATORS ~ ______~A~______~ .... .... x 0 40 x .... 0 x x 10 V ..,.... x 0 N x .... INHIBITS OPPOSE X DRIVE IN BIT PLANES I, 5, 9, ETC. AND 2, 6, 10, ETC. 0 x 0x NO TE: UPPER 2 BITS OF DRIVE LINE DESIGNATOR INDICATES INHIBIT STRIPE. Y77 E ~ STRIPE 3 16 LINES .., 00 wW o.Z ~::J 1-40 00_ N 00 WW o.:!: ~-' 1-40 00_ - VI W WZ 0.- ~-' 1-40 00- 0 00 wW o.~ ~-' 1-10 (/j- Y60 STRIPE 2 16 LINES Y57 STRIPE I 16 LINES Y37 STRIPE 0 16 LINES YI7 Y4 o Y20 YO o PLANE 0 I NHIBITS OPPOSE Y DR IVE IN BIT PLANES 0, 4,8, ETC AND 3, 7, II, ETC. Y77 STRIPE 3 16 LINES Y60 TO INHIBIT GENERATORS 000 wW o.~ ~-' 1-10 00- I YOO I I IIIIII III! 11111 ~ .............. J~~]!I x x ~ I The inhibit stripes in planes 0 and 3 oppose the Y drive lines while the inhibit stripes in planes 1 and 2 oppose the X drive lines. Figure 77. Memory 'Wafer-Inhibit Stripes through a 133Q, 25w, noninductive resistor. The 133Q resistor is approximately equal to the sum of the 13Q DC resistance and 120Q terminating resistance of an inhibit line. Sense Lines A simplified example of a sense winding is shown in figure 78. One sense line threads all cores in a memory plane. The ends of this continuous line are extended to terminals near a corner of the plane. The rapid flux change which occurs when a core switches state induces a voltage of approximately 35 mv on the sense line. This voltage appears across the differential amplifier inputs of the sense amplifier (card type HAI8) and results in a logical 1 at the amplifier output terminals. This output occurs when any core in the plane switches state in either direction, but the output is sampled only during read phase. The flux density of half-selected cores is changed slightly by a read drive pulse and induces noise voltage on the sense line. Noise voltage is reduced by threading the sense line through the cores of a plane so that noise signals from half-selected cores cancel each other. Using the previous material as an introduction to physical characteristics of a memory stack, we now come to the actual electronics of the stack. Each circuit will be studied completely and actual prints will be used to show selections. HALF-C URRENT DRIVE LINES 44 V, 340 rna Half-current Drive Lines 44 V, 340 rna SENSE AMP \ 1 output when the core switches TWISTED PAIR 1 INHIBIT LINES, 40 V, 340 rna Figure 78. Simplified Sense Quadrant S Register The S (storage address) register holds the storage address during a storage reference. The r~gister consists of 13 single-rank flip-flop stages and has no properties other than storage An address may be entered into S from either the right or the left address bus. These addresses are gated into S (by the G070, G080 terms) at the same time a signal is sent to begin delay line timing. S is cleared at the end of each memory cycle if there is no parity error. 0 Line Driver Selection Three bits from S register select the line driver circuits (figure 79:) and either read or write. Bits 0, 3, and 5 select the two circuits in the X coordinate. Bits 6, 9, and 11 select the circuits in the Y coordinate. The translation is such that the selected pair of line driver circuits will have all 0 inputs. The circuitry in figure 80 selects the X drivers and gates: Bits 0-5 of S register determine which X line is selected. For the time being, it will require persistence to get the outputs from the terms in the X gates and X transformer drivers. Inverters G300-G305 must output O's to be considered turned on(assume E336 is 0). The X gate inverters (GOOO-G007) must have O's 85 X GATES Y GATES Y x DRIVERS DRIVERS S REGISTER The storage address converts directly, giving the selected drive line numbers in octal. Bits 00 through 05 select the X drive line; bits 06 through 11 select the Y drive line; bit 12 selects the Field. Figure 79. storage Address Bit Assignment in to turn. on. The X transformer drivers (DOOO-DOI5) also need all O's in to turn on. One gate and two drivers must be turned on to select a drive line. G302 = G303 = G300 = G301 = 3. Which X transformer drivers would be outputting logical l' s? (K700 has been discussed previously and K730 will be discussed later. For this problem, K700 will be 0 and K730 will be 1.) and Work the following problem through the circuitry for address 03765: 1. Which X gate card would output a I? (The K712 and K715terms are from the outputs of gate FF, K710j 711, discussed earlier.) ---- Carry these outputs to the following circuits, showing the X drive transformer. Determine which T card will turn on. To turn it on, you will need the X gate and two X transformer drivers. You should have arrived at T326. If you did not, check yourwork. There are Y drive lines to consider yet, and we may as well enter into these. 2. What would be the outputs of these terms? (The K701 term comes from activate read FF discussed earlier. The K731 term comes from activate write FFwhich will be presented later; for now consider the output of K731 to be 0.) x X GATES ~H07A ACTIVATE T-eJ G3~0 GATE UI3 G304 G305 "EAD' ACTIVATE WRITE TRANSFORMER DRIVERS --+-..1 K70. - . . . . -_ _ _ _ _ _ _ '73. -+--,--_ _ _ _ _ _j-.-.J ~H08A :l GOOI f I~ Kl13 ~A f---- J ~-- G002 1 G35' I-'04A 5000 5030 I~ G3~2 K713 I 036 • DRIVER DISCHARGE r UHIOA ::J G003 f 6353 GATE K 715 635. ~HIIA 04 f l-S-l -aJ K113 SOOO S031 5001 5030 )( TRANSFORMER DRIVER SELECTION S REGISTER BITS 05,03,00 nHI2A J6oo5 1 ;~ K715 5001 5031 G355 SO~O GHI3A J GOO6 T K71~ -aJ 5051 G3~6 nHI4A ....., G007 "T ~f-tl-t-I-tl---+--+-.-.J I 5L 151. 5040 11 5020 ." I I"':;A~ ~I'='-:~A:-:-:TE:-:G:-: 'T= -E SIJ~I 50~O 5010 , '------..vr-----J1 x 8305 K701 ~ ACTIVATE GATE SELECTIO N 5 REGISTER BITS 04,02.01 ~1'31 ! I I REAO ': ACTIVATE WRITE G303 Figure 80. 86 ~b' X Gates and Transformer Drivers G305 G302 Address Translation Logical translation is such that the number of the selected X drive line is identical to the number contained in bits 0-5 of the 13-bit storage address. Bits 6 -11 specify the Y drive line number. This may easily be seen by converting to octal. Bit 12 of the storage address selects the field to be used. Bit 12 is a 1 to select field 1 and a 0 to select field O. Look at the top of T326 again. On the right side at the top you will find a 53 (decimal) and a 65 (octal). The same will be true for any address line for either Xor Y. To further break the transformer card down, a circuit is described in figure 81. It is a transformer card with the pins numbered. HI ADDRESS LO ADDRESS GATE TRANSFORMER Input Pins Addresses 1 and 15 10 and 6 1 and 6 10 and 15 Read 10 Write 10 Read hi Write hi TRANSFORMER I{) DRIVERS 15 DRIVERS Figure 81. Transformer Card with Pin Numbers GATE Gate numbers are quickly determined by lifting out the specific bits that select the gate and aligning them in binary, then reading them in octal. The example that was worked through used G006. Take bits 4, 2, and 1 from S register for the address we want (65) and consider what they represent: Table 10 shows that driver A is always on during a read operation and driver B is always on during a write operation. C or D determines whether a Hi or Lo address is read or written. IS 110 I Bit 4 1 101 c 1\ Bit 2 Bit 1 1 0 G) If) (!) = 6 or G006 [till m - - If) 0 0 <:) 0 0 C CD If) ~ <:) i "a"f ----- You should have had T437, GI07 for both read and write, Dl12, Dl15for read, Dl13, Dl14 for write. If you didn't, check yourself by working the actual circuit. The only aspect of circuitry left to simplify is finding some easy way of determining which transformer drivers will be turned on. The following table will help, if you remember Hi and Lo address lines (Lo =00-37, Hi = 40-77). It) 0 0 0 0 m If) ~ <:) f f "0" Table 10. DRIVE TRANSFORMER SELECTION OPERATION DESIRED Transformer for read _ _ (Were you in the right field?) for write Gate for read --(Were you inthe right field?) for write Transformer drivers for read _ _ _ _ and _ _ __ for write and _ _ __ N "e" "A" Find the transformer number that will be used for Y lines for address 03765. Use the following circuitry and the octal shortcut: [00 15 - 0 Read Lo address Write Lo address Read Hi address Write Hi address TRANSFORMER DRIVERS ON A D C B Yes No Yes No No Yes No Yes No Yes Yes No Yes No No Yes It can be seen in the table that Driver A is always on in a Read operation, and Driver B is always on in a Write operation. If Driver A is always on for a Read operation, the difference between reading a Hi or Low address is determined by the selection of C or D. The same prinCiple applies to writing. B is always on during a Write operation and Hi or Lo is controlled by C and D. 87 23 27 31 37 55 67 1 T T T ij GI8B 1 HI4A ~ r J 21 ~ GI8A B-1 r J 17 21 J'1 49 61 8--f 'r J T324 L GI7A r 7 ~ 8-f r T322 J 'f.. ,J 3 I,:j GI58 I B-1 'r 'J 01 J I J-, GI5A 1 T I~ \... J l h 45 T 1332 JI T l l J HI1A i 43 II ~ h TT h T331 HIS8 i 9 II 41 51 ,T1330Tl II I HI6A I i r , I «[fljJ_ 0 0 (l) Figure 82. C)(:71 47 T333 13 ~ UU r HI7B T TL T32(.) [ HI8A ~. 33 41 I T334 Tf I f T H08A T Il 35 T321 57 71 i r 8--1 i 31 GI6A H09A h HI8B 15 h 1 5 59 T335 J-, 39 GIGB 'I' -:J J [ T323 ,J r 25 31 1 YT HilA [ HI9A ~ T T ~ I T336 1 T h I J I Ir J, 27 GI7B ,r f,Jr I 51 T325 8---f I TT I. TT ~ I 61 75 r 19 HI2A H07A i I HI3A IGOOO HI9B 29 T326 1 T337 53 TT J HIOA ~ h T327 63 77 0 0 ~ I I «[ill]1O - ~ 10 «[ill]' - !II 10 o - (l) I 0 I N 0 0 N I 0 0 I !II X Drive line - - 0 0 0 - !II 0 3i 63 77 31 37 37 63 77 H38A H38A ~~------------~--+-----~ ~ Z9 35 ~~-------------+~~--~ 61 75 H37A H37A ~~------~~------------~ Z7 33 ~~------4--+----------~ 59 73 H36A H36A ~~------;--+--~--+-----~ Z5 31 ~~------~~--~~;-----~ Z5 31 57 71 57 71 H35A H35A ~~------~-+------------~ 15 17 ~~------~~~----------~ 47 57 H34A H34A ~~------~~--~-+----~ 13 15 ~~------~~--~~4-----~ 45 55 H33A H33A ~~------~4-----------~ II 13 ~~-------+~~----------~ 43 53 H3ZA H3ZA ~~------+--+---+--~----~ 9 \I ~~-------+--~--~~-----9 II 41 51 41 51 H31A H31A ~ ~ C[ .., N CI ~ 0 .., 0 CD N ,...., C[ of" on CD C[ C) C) 0 0 C) H .., ..,,.. Figure 83. CD N CD (II N N 0 0 CD CD N H ..,~ H CD ;;; H Y Drive Line 89 E338 Y DRIVER DISCHARGE H22A 5060 5090 +--o-~ H22B 5060 5091 -J--...---o-~ H23A Y TRANS FORME DRIVER SELECTION 5 RE t--_ _ _ _ _~~BITS 11,06,09 H-t--t-t--.l~~ 5061 5090 5061 5091 K731 5110 5111 K731 5111 110 K701 "ACTIVATE READ K731" ACTIVATE WRITE 5101 SOBI S071 I K714 ACTIVATE GATE 5100 5080 5070 v Y GATE SELECTION 5 REGISTER BITS 10,08.07 SELECT FIELD 0 L21A Figure 84. Y Gates G071 (LEFT BUS'" 5) 1 - - - - - - 0 - - - - - - - . MEMORY FI ELD ,SELECT BIT 12 5120 r - - - - - - - - - - - . J t-----(}--~ SELECT FIELD I L21B Ll7 (RIGHT BUS-+S) G081 Figure 85. 90 Field Selection G091 CLEAR 5 , L20B ~'SI25l Y TRANSFORMER Y FIEL 0 0 5123 DRIVERS TRANSFORMER FIELD I 5122 DRIVERS JI32 lG38 A K704 ~OIOOJ --Activate Read - - - K704 J 0101 J K734 W --Activate Write-- G38 1 -K734 ] :J 0117 , -.J :J ~, o---J I ~ ~I o---J 0107 G26A H2-;"B lH30 A 0126 WJ J ~G3IB 1 ..J J G32B 1 H30 B ln6 G32A 0113 W 71 0127 ' W ~ 1 0123 , 0125 G31A 0111 I43 A 0122 , :J ~ U G26B ~IIOJ .1 .1 B lH25 A 1 DI09 1 I 0121 , U1:43B ~ W B8 A 0120 ] 8 1 I ~ lH44A J , 0119 1 J 0105 .. H39 B I I I37 A 0118 ~B G43 B lH39A J I32 B 1 G43 A DI03 W Oll~ W ~ A .:I A 0128 1 0129 1 U1:26B ~ G37A A ~ ~B 0130 0115 :J 0131 U1:3IB 5125 5124 FIELD I FiELOO G310 G310 G311 G311 G312 G312 G313 G313 G314 G314 G315 G315 Figure 86. Y Transformer Drivers Drive Line Selection Drive line transformers, card type CIO, can drive anyone of the four X and Y drive lines. Two C03 line driver cards (two sections per card) and two COS gate cards are needed to select the four drive lines which may be energized by one drive line transformer card. One gate card selects one of the .two sections of the drive line transformer card, and two line driver sections select one of the two lines in that section. In figure 86, if the lines marked with an X are selected, -44v will appear at pin 3 of the CIO card and drive line 32 (408) will be energized. 91 4 CIO CARDS NOTE: THE TWO CRCUITS IN THE SELECT 16 DRIVE LINES FOR READ OR WRITE DASl-ED BOX ARE BOTH CONTAINED ON ONE CIO CARD r- '--,--...'-r-- ~ TO 6 ADDITIONAL C05 GATE CARDS BIT IN S 4 S041 2 S021 T SOlO (EACH C05 GATE CARD SELECTS ONE OF THE TWO CIRCUITS ON A CIO CARD.) ~_r-L--~_ _ _ _ _ _ _ _ _ _ _ _r-+-r-~__- 4__~~~r-+-~ TO 3 ADDITIONAL CIO TRANSFORMER CIRCUITS C05 GATE CARD 6 4 2 S041 S021 ~~~--~~X~---------+__r-______~______-4~~~ SOli X X K712 ACTIVATE GATE 0 0 r- :.: 0 ex III It: III l- ~ i= ~ III I- ~ ~ III I- ~ i= ex 0 10 110 I- I- Selection is shown for the X coordinate; Y coordinate is similar. *S050 S051 = = m m LO WHEN A"O" HI WHEN A "I" Figure 87. Drive Line Selection • • 340 Me MEMORY STACK ~ DRIVERS EITHER CONNECT OR CONNECT TO GROUND Figure 88. Simplified Gate and Transformer Circuits Since this manual is not devoterl to hask electronics, operation of gate cards and transformer cards will be covered very simply. To study the actual circuitry refer to Printed Circuits Manual, #60042900. Figure 88 oepicts simply the operation of gate and transformer cards. 92 TERMINATING RESISTOR CIRCUITS CONTAINED ON ONE SECTION OF A CIO CARD - r 1 450 Mo ~_____L~~9~0~0__ M_Q____~____~____~+ D+ DB Figure 89. Drive Transformer Operation for Read If DA and DD and the gate are on, current will flow in the primary and secondary of the transformers as shown. The winding in the secondary that is tied to pin 2 would actually be series winding, thus the -44v. The other winding is actually series opposing, thus there is little or no voltage or current. , I OUTPUT PIN 2 = -44V, 340 Mo ON READ LOW + • OUTPUT PIN 3 L r CIRCUITS CONTAINED ON ONE SECTION OF A CiO CARD • I + +20 V 900 Ma -, • PIN 4 ). + + + Figure 90. Drive Transformer Operation for Write 450 Ma 450 Ma If DB and DC and the gate are on, current will flow in the primary and secondary of the transformer as shown. The winding tied to pin 2 is now series aiding, thus +44v. The winding tied to pin 3 is now acting as series opposing, thus there is little or no current. r - • + L...-_--«:+ + • + • 1 OUTPUT PIN 2 = +44V I WRITE LOW OUTPUT PIN 3 L _ _ _ _ _ _ _ _ _ -.1 93 Worksheet: STORAGE ADDRESS SELECTION 1. During an RNI cycle with (P) =01571, indicate the terms that would be used within storage module 0 by filling in the following table: X Gate Y Gate X Xformer Y Xformer X Drivers Y Drivers Read phase Write phase 2. During an RAD cycle with (F) = 20425673 and 16K storage, indicate the terms that would be used within the appropriate module by filling the following table: (Assume that the system contains two 3309 Storage modules. ) Y Gate X Xformer Y Xformer X Drivers X Gate Y Drivers Read phase Write phase 3. During an ROP cycle with (F) = 30057434 and 32K storage, indicate the terms that would be used within the appropriate module by filling in the following table: (Assume that the system contains four 3309 Storage modules.) X Gate Y Gate X Xformer Y Xformer X Drivers Y Drivers Read phase Write phase 4. During an STO cycle with (F) = 40073746 and 32K storage, indicate the terms that would be used within the appropriate module by filling in the following table: (four 3309 modules) X Gate Y Gate X Xformer Y Xformer X Drivers Y Drivers Read phase Write phase 5. For questions 2, 3, and 4, what changes would have to be made in the selected terms if the systems had contained only 8K storage? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ r TIME -+ II 12 \_----~~/ Up to this point, we have: 1. Set busy FF. 2. Turn on read current. K795 PULSE GENERATOR M39A WRITE - LEFT BUS E30 READ STORAGE K760 WRITE - RIGHT BUS M33A DELAY LINE A2 AI GI73 L37 K796 K761 WRITE STORAGE CLEAR R/W G091 Figure 91. K760/76l FF When E303 (A3) outputs a 1, the Activate Read, Gate and Busy FF's Set. The first tap off the delay line feeds E (HAI2 card), a delay line amplifier. Statically 1 the delay line is fed a constant 1 (-IOv) and thus the constant outputs of the delay line amplifiers are O's. Now, however, we will have a 1 out of the delay line amplifier because 0 (near ground) has been put into the delay line by the inverted set output of pulse generator FF. As the pulse travels down the delay line the following signals are produced: E300, tap A4, 50 nsec 1. E300 clears pulse generator FF, thus defining the trailing edge of the delay line pulse. E309, tap AlO, 200 usec. 2. K760/761 (read/write storage) is set for any read or remains clear for any write. This flip-flop is set at this time if the memory cycle is a write into a protected area. (Main control senses this and changes write to read.) The protected area could be the auto load/ auto dump area or an address block protected by the STORAGE PROTECTION ADDRESS switches. Attempting to set K760/761 at E allows sufficient time for address comparison (protected addresses compared to actual addresses referenced). Setting the flip -flop at this time is necessary because K760/761 is forced clear by a pulse occurring later along the delay line. Figure 93. Data Bus Read/Write Storage Read/write storage FF (K760/761) is set by a read signal transmitted from either processor via the right or left bus. It is cleared at the end of a storage cycle. The set output of this flip-flop is used as an input to Z to data bus FFto determine whether or not the data in Z is to be gated to a data bus. The clear (write) output is used to determine whether or not data is to be gated from either data bus to Z. When K760, E312, and K797 are all 1 's, left data bus to Z is enabled. K760, E312, and K796 enable right data bus to Z. The clear output of read/write storage is ANDed with G174 and inverted to provide a clear input to the write designator bit FFs. M38B 300- DELA Y LINE ~ BUS. BUS -+ Z Figure 92. Delay Line Time B4 Tap B4, E312: 10 Enables (Z) to the transmitters that lead to the data bus register. (Although the information has not yet been read into Z register, it will be read into Z long before the data bus is sampled by the central processor. ) 2. Clears the reply FF. Z-+ BUS, BUS-+Z E312 READ K761 TRANSM ITTERS OFF Z E 330 MC 6171 SELECT LEFT BUS K797 K796 SELECT RIGHT BUS GI40 K29A} GI41 K29B GI42 K30A -+-..........~--:-l GISO Z-+LEFT DATA BUS M29A} GISI M29B GIS2 K30B Z~RIGHT DATA BUS 95 ""'~ AMP F03 G401 FIELD 0 - 1 G411 FIELD 1 - - 1 G041 LEFT BUS __ 1 G051 GI51 1 __ RIGHT BUS Figure 94. Z-Register Inputs GI41 G061 CLEAR 1 M34A 350- DELAY LINE ** STROBE FIELD 0 (FEEDS 1 __ LEFT BUS E343) Figure 95. Delay Line Time B6 Tap B5, E310: Partially enables G40- gates to gate the contents of field 1 sense amplifiers to Z (only if field 1 is being referenced). E311 is a C07 card (emitter follower) fh which does not invert. E343 is a C85 card which feeds R774 (a receiver). These two cards form a strobeshaper network (figure 96). R774 outputs 0 for approximately 50 nsec during the sense -.Z time. -0.6:"1" L -IOV: "0" Jf----1 "0" LUlU PULSE FROM DELAY LINE Figure 96. 375- DELAY LINE ** STROBE FIELD I (FEEDS C5O=l -I.IV : "0" -I ---1"" ;~'L-. -5.BV ="I" Strobe-Shaper Network E344) Figure 97. Delay Line Time B7 Tap B6, E311: Partially enables G41- gates to gate the contents of field 1 sense amplifiers to Z (only if field 1 is being referenced). E311 is a C07 card (emitter follower) and does not invert. E344 and R775 (receiver for field 1) also form a strobe-shaper network. The theory of its operation is the same as that of E 343 and R 77 4. Z REGISTER AND READ/WRITE CONTROLS Z Register The 28-bit Z register is the storage re-storing and modifying register. Data can be entered into Z from field 0 or field 1 sense amplifiers and the left or right data bus. Read Control During a normal memory cycle all bits of the word referenced by (S) are rean ont of "ore storage in parallel and gated from the sense amplifiers into Z. Data from field 0 is gated to Z by the G40X inverters while data from field 1 is gated by the G41X inverters. The word in Z is placed on the selected data bus, then is written back into the storage location under reference. 9R Write Control When a new word is to be written into storage, (Z) must be modified during the read phase of the write cycle. The modified word in Z is then written back into storage during the write phase. Five modes of storage modification (partial writes) are possible: 1. Single -character mode - anyone of the four characters (six bits per character) of the word in Z may be replaced by a new character. 2. Double-character mode - the lower, middle, or upper two characters of a word in Z may be replaced by new data. 3. Triple-character mode - the upper three or lower three characters of the word in Z may be replaced by new data. 4. Full-word mode - a complete new word (four characters) may be plac~d in Z, then written into storage. The previous contents of this storage location are discarded. 5. Address mode - the lower 15 or 17 bits of the word in Z may be replaced by a new address Storage is modified (partial write) by blocking the input sense gates to Z for a character or group of characters during a read cycle, thus holding the corres0 LEFT T(o(oO +\R'40 I I J..o I ---5.)-----_, 1<760 E312 1<797 CHAR 3 T640 B \R"" I-I----::o---~ BUS~Z 1<740 L22 1<741 J642 CHAR 2 1<742 Jf04.1 L23 1<743 1<745 1<749 J"" CHAR I J'-45 1<744 L24 L27B 1<745 J ..4 .. 1<745 1<748 ---------+~_+-~~I__, CHAR 0 JM7 -------_+-~__!}-+__+___+I 1<746 L25 1<747 J ..... -------+--::0-+--+-+---, ADDRESS J .. 49 ---------+-_+---£H>----~ 1<748 L26 1<749 G072 LEFT S BUS S RIGHT S BUS - * TERM LOCATED IN MAIN CONTROL - CHASSIS I NOTE: The Gxxx terms on this page are not gates, but inverters whose outputs need to beT" s to enable an input into z. S G082 11126B Me WRITE GI74 1<760 PARTIAL WRITE CLEAR E323 ponding bits of Z in clear. New data is then gated from the data bus into unfilled bits of Z and the whole (Z) is stored. Write character signals determine storage modification by entering storage via R64x rank of receivers. Table Ilshows the signals necessary for various partial writes. These signals set write designator bit FFs (K74x/74x). The outputs of these flip-flops determine the gating of data to Z register by selectively enabling and blocking input gates to Z. The flip-flop outputs control G40x inverter rank which gates data from field 0 Figure 98. Partial Write Bits to Z, G41x rank which gates field 1 to Z, G04x rank which gates information from the left data bus to Z, and G05x rank which gates the right data bus to Z. In a full-word re-store cycle all 24 bits are read and returned thus: = Core storage (24 bits) = Z register 97 Table 11. PARTIAL WRITES I PARTIAL WRITE I BITS WRITE CHAR 3 WRITE CHAR 2 WRITE CHAR 1 WRITE CHAR 0 WRITE ADDR R642-R643 R640-R641 R644-R645 R646-R647 R648-R649 00-05 06-11 12-17 18-23 X 00-11 06-17 12-23 00-17 06-23 00-23 X 00-14 Word address Character address 00-16 Character Character Character Character 3 2 1 0 Lower 12 bits Middle 12 bits Upper 12 bits Lower 18 bits Upper 18 bits All bits X X X X X X X X X X X X X X X X X X X X X X X X X FIELD 0 ~z K741 G410 FIELD I - Z G040 LEFT BUS_Z G050 RIGHT BUS _ Z Z_ G060 CLEAR Z 6150 RIGHT BUS GI40 Z - LEFT BUS G21 B K743 In a read cycle, with one character changed by instruction execution, 24 bits are read. However, the lower character (3) is not allowed to feed Z register. Instead, the character from the data bus is allowed to enter Z register and during the re -store cycle the newly created 24-bit word will be stored. -+--1~ K745 - + - - l - - , K 74 9 -+---i~ G23B K 765 -+--l--t = Core storage (24 bits) F36A = Z register F36B K 74 7 -i-+---t The write designator FFs are set by the central processor, depending on what instruction or cycle is being executed The following circuitry represents the write designator FF and enabling of either the sense amplifier or the data bus to Z register. .. _.. .•... 'roo", ,,--_+__-_ _____+____+--___+__+_-~ ·f {} --------------'f.,. I' 7 \J pP e .s ~ fl rr~' 131 word line. To select anyone of these word lines a driver and a gate must be enabled. To select address 74, for example, a logic translator would enable read gate 4 while another enabled read drive 7. When the current is applied, it will flow from -2Ov (read drive 7), through diode B along the word line, tarn i ilisiile Ih g !lie I lj;jJL, through diode ·A to +2Ov (read gate 4). When the write current is applied, write gate 4 and write drive. 7 are enabled, allowing current to flow through the word line from diode D to diode C. Diodes A and B are the same diode matrix as are diodes C and D. The other diode matrix serves in the same manner except that they are connected to all of 1 the odd address word lines. Read and Write Drivers Mounted on either side oj' the register file (figures 130 and 131) are the read and write drive boards. The circuits for the two are identical except for pin numbering. Figure 137 illustrates a driver and a gate. The control signal input is the output of a logic translator. The logic translator will enabie a path from ground to the +2Ov connected to the primary of the interstage transformer and force the transistor into conduction. The conduction of the transistors will allow the drive current to flow from the -2Ov at the driver + + 20V 4000pf I. TP 20V 100 22pf J'\- 4 CONTROL SIGNAL IN DRIVE CURRENT ...,. n------ "., 10K GATE -20V + 20V + 20V 15 }LH 10K TP 4000pf I. 8P. f .I. ~---~----o DRIVE CURRENT .... CU'4 CONTROL SIGNA L IN o~·~· -20V Figure 137. Gate and Driver DRIVER 132 through the diode matrix (one diode), through the stock, through the diode matrix (the other diode of the pair), and through the gate to +2Ov . conducts, Cl will bypass the current-limiting network and allow a large initial flow of current. At this time the current will be limited by the inductance of the transformer The base circuitry, R 1, R2, and C R5, provide s bias ing for the transistor and level shifting for operating from -1. Iv and -5. 8v logic leve Is . The diode s CR 1, CR2, and CR4 provide a means of translating S register 0 LOGIC TRANSLATOR Four identical logic translators are used in the register file. Their purpose is to decode the output of S register in order to enable the proper gate and driver. A section of the logic translator is shown in figure contents. The biasing is arranged such that if a logical appears at the cathodes of all the diodes, a positive voltage is applied to the base of Ql and it conducts. If the cathodes of any of the diodes have -5. 8v (1) on them, the transistor will remain cut off. The arrangement of the diodes and the transistor is known as a NOR circuit. Therefore, the inputs to the trans1ator will be data. o (-l.lv) 138. Transistor Ql is used as a switch to allow current to flow from +2Ov through the primary of the gate or driver transformer to ground. Resistors R4, R5, and R6 form a current-limiting network for the circuit, while R3 reduces the collector voltage to prevent the transistor from burning out. When the transistor first o 2 - ....-----, CRI +20V CR2 + 20V 1 I -'_ I",~ I '- - -" c- - +~, "'I. ,~ -"t ;-~ \. 0- - " - _~' ~ - - - "- I .... / t t L - CR3 QI WILL CONDUCT IF THE DIGIT TRANSLATED IS A 6 AND THE GATE INPUT IS AT A ZERO LEVEL. GATE-------~ CR4 Figure 138. Logic Translator (Section) S REGISTER The 6 -bit double -ranked S register (Logic Diagrams, page 1-95) is used to hold the address to be referenced. The first rank (SI) will send its outputs to the read logic translators and to the second rank (S2). S2 will hold the address for the write logic translators. The lower three bits of SI and S2 send their outputs to the logic translators that enable the gates while the upper three bits go to the driver translators. The function of S register in regard to individual instructions is explained later in this chapter. SENSE AMPLIFIERS The 24 sense amplifiers are type HA16 cards. A detailed description of their function is found in the Printed Circuits Manual, Publication #60042900. 133 A logical representation of the sense amplifier is shown in figure 139. The sense amplifier detects and amplifies the O.lv output from a switching core. A strobe pulse (sense ZI) may be applied through aninverting circuit to the AND gate in order to gate the sense amplifiers to the Z register. If pin 4 is positive relative to pin 5 when the strobe pulse is applied, the AND ,- I Sense line _ _~~ DIGIT DRIVERS The 24 digit drivers are type HA14 cards. A detailed description of their function is found in Printed Circuits Manual. A logical representation of the digit driver is shown in figure 140. If transistors A and D are switched on, current will flow from pin 14 through the digit line to pin 13. If transistors Band C are turned on, current will flow from pin 13 through the digit line to pin 14. In this manner the digit driver is able to provide a bidirectional output on the digit line. The digit drivers are in Logic Diagrams, page 1-98. Differential amplifier Inverter Sense to ZI - gate will be made. Making the AND gate will send a 1 to the corresponding flip-flop in ZI register. If pin 4 is negative relative to pin 5, the AND gate will not be made and the output of the sense amplifier will be a O. The sense amplifiers are in Logic Diagrams, page 1-98. -..J Figure 139. Sense Amplifier c A y I + 20V .,/ I DIGIT I I -20V LINE Figure 140. Digit Driver o B Z REGISTER Z register is a 24-bit double-ranked register that is used for moving data into or out of the Page Index file. Pages 1-99 through 1-102 of Logic Diagrams show the two ranks of Z register. Zl receives its inputs from: 1. The sense amplifiers (for reading data out of the register file). 2. The data bus (for writing in new data). from driver to gate but in the opposite direction. Read IlL...----.-J Word li:;.:;:n~e_---I current Write .....------ Sense line 0 11-.-_ -----I OVERALL SELECTION The lower three bits of Sl are sent to a logic translator which in turn activates a gate. On the other side of the word line a driver has been activated by a translator which received its input from the upper three bits of :::11. Read dnve current flows from the driver to the gate. When the write portion of the cycle is started, the lower three bits of S2 have enabled a gate the upper thre~ bits have enabled a driver. Again current flows 134 Sense l~ 1 Digit current, writing a ~ Core B 0 ! ! -COreA -- Core A .-----, Digit current, writing a~ Figure 141. Timing Figure 1 Core B rl---- TIMING Figure 141 shows the overall timing and current directions for a memory cycle. When read current is applied to the word line, the sense amplifier will receive an input as shown onfigure 141. Note that the sense line voltage is the same magnitude for a 1 as for a 0 but in the opposite direction. At the conclusion of the read operation the fields of the cores at the selected address are in R direction (figure FROM s2 REGISTER (LOWER 3 BITS) 129). When write current is applied the digit drivers will also be turned on. The direction of the digit current will determine which core will be returned to the R state (figure 129). When writing a 0, core B receives inhibiting digit current and core A receives augmenting digit current. When writing a 1, core B receives the augmenting digit current and switches while core A does not. FROM DIGIT DRIVERS FROM sl REGISTER (LOWER 3 BITS) I WRITE BOARD READ STACK FROM s2 TO SENSE AMPS. REGISTER (UPPER 3 BI TS) FROM 51 REGISTER (UPPER 3 BITS) NOTE: I. J9-J12 ARE CDC 24549707 2. J13-J16 ARE CDC 24554802 3. J17-J18 ARE CDC 24554801 Figure 142. Page Index File Assembly and Designations 135 I'OWIIIt IIUIITOII IDOnia. COl 14111410 CURRENT COMPENSATION .. I I .. I I I 1'0 I I I,. * iliAD - CONPU .... TOII 0" :~~ITTf D~~:;~N::~::"O::TOII I I 1" I ..... I t:-;"'~TI Cilil I TOTAL r--T-----T----------ly ~:--------r--::-l--l I TWO CIRCUIT' UIID '011 0.' AM .. "" :~~l C~~:~~~T~I~:I~O:O:·;.:~'::IIIIIT:TTAO\AL 0" II T" L ____ ____ -=~D~"~N~~M~'__ ______ ~ Sit'",,";. .. I i IIIIIITOfI lOll 10. I +lOv I 1 04:~1 II I I I I I I I -IOV I I I I I I +~~I I I . IT I I I ...v CIIN ~ II I I I COl' I COl'1 "I.T -lOY I I I I I I flOWlll IIIIIITOR CDC!"554IZ' IOnIO_ POW!II IIUIITOIII COCZ.Sl410. I "'.In lOW I I I. IIVZUIU: CDCI4IU700' IEKIf! _ Z ' I.. -~ ____________ I.. '.'VZlKU COC:Z4U4IOO ---!~ _ _ _......._ _....J I I I __________ --.J ------...:.:.:.'----'- (1 R22.! ,l",~L' 014 +?ClV .-20" t TI4 /t-.~ 13 r > - - - - - - I - - - , 4 ~ L'-+-----o . TPll 12 33~--------~------------+-----~---4-~~ ~n~l6~~~.~)~~~~~44 R?3 i TPI4 +20V -t. 20V 015 15 r > - - - - - + - - , Tl5 : II ~ '--+------ > ~~ 2 + E.4 E; (!) LOGIC TRANSLATOR TEST POINT (ADDRESS 01,11,21, .. ··711 I ~5 ~ E/ ~2 e· TP~ e·EJ TP02 TP04 2.4 e·G 2.6 e·EJ ~O 3~ ~2 3.3 3: 3; 3.6 3/ Ef Q2 04 07 - TP07 II e·E] -:G·8 e·E] !EJ·e E)·a ~EJ· e - TPI2 TPII 13 -15 TPI4 TPI3 17 TPI5 ~G·e El E!O ".0 Z.5 E.4 2/ 7,5 ".' ~6 E/ ".3 E.e ".2 E.9 ".5 ".4 DRIVERS ".5 4,,3 E!O ".4 ".6 Ell "l "l E!2 4,.G ~I E!2 1,0 ~ ".2 TPI7 E~I READ E; TP05 :EJ·B TPIO E,.G e E.2 E/ WRITE GATE TEST POINT E: . EI3 READ DRIVER TO DIODE MATRIX CONNECTIONS BOARD WRITE GATE TO DIODE MATRIX CONNECTION TPOO 6·EJ!- GJ8 Q9 01 T9_ TP;I 00 6 ~~r8 TP02 P03 TP03 iit TP06 ~ 7,1 e EJ· e T2 • 003~ ~ - ~5 E.4 WRITE REM GATE TO DIODE MATRIX CONNECTION ~~.0 ~ TPOI 19 7,3 Ei6 E!5 REM GATE TEST POINTS READ ~o LOGIC TRANSLATOR TEST POINT (ADDRESS 01,11,21,· .. • 711 _ 05 TP04 TP05 07 TP06 TP07 - 8·6 :' EJ·G 8·6: B·e 8·8 -: Ere 8·EJ~ EtG 8 .EJ~ Ere TPII TPI3 TPI5 - GATES II TPIO 13 TPI2 3.z TPI4 3.4 -~ 17 1,0 ~3 ~5 DRIVERS 3l 3j 8·EJ~ ,'P17 E~4 WRITE DRIVER TO DIODE MATRIX CONNECTION DIODE MATRIX WRITE TYPICAL TRACE AT BOARD £ffi EI m ~~:~ ~~;:TSH"HIH~~O.OV SCOPE SETTINGS 20 V/CM - INVERTED 0.1 USEC/CM (CHASS IS 1 20V / CM - INVERTED NORTH J07 ~ 0.1 USEC /CM 000 ADDRESS ODD ADDRESS READ ~ WRITE II) II) a: ~ a: Joe . ~ 0 a: WEST 0 III '" ~ a g A4 AIO AI2 f- z J05 ~ EAST .'" 0 ..J 0.. EVEN ADDRESS WRITE AI '"z I' \ is in Executive mode. 4. The 3311 is chassis -"'---5. The 3311 connects to the CPU via flex jumpers. 6. The 3J.J1 relays the Storage Request signal to high aIm low core. 7. The 3311 is referenced during each storage ·f reference if the system is in Executive mode. " 8. The Page Inoex Fil e segments storage into 2K pages. 9. The Page Index File is a word-organized storage unit. )0. An advantage of all word-organized storage x:, units is that the same number of cores switch P11. 12. r: 146 F 14. r 15. '1 16 . ( 17. 18. 1 19 . 20. /, for every storage reference. There are 24 cores on each word line. There are .~ i.f cores on each digit drive line. t :J.. The Page Index File stack consists of a cubic matrix containing ~ x ;>., x ~ bits. A current of 21 is necessary to switch a core. Odd parity is used in the 3311. Each word line passes through a given core twice. Two read/write cycles occur each time the~" Page Index File is referenced. ',J The 3311 samples , bits of the data bus. If an Illegal Write is sensed by the 3311, the Write signal is converted to a Read signal. The address of the page index to be referenced is obtained from the lower seven bits of the S bus for either read or write page file. * :1?" CHAPTER 6 LOGIC TIMING AND KEYBOARD ENTRY COMPUTER TIMING All computer operations must be timed and signals must occur in the proper sequence. Timing is provided by the clock and -clock pyramid and by the resynchronizing circuits which are timed by the -clock. MASTER CLOCK AND CWCK PYRAMID The master clock operates continuouslywhen power is applied to the computer; it provides the timing pulses used throughout the computer. Timing of all -signals is determined directly or indirectly by this clock. The Clock system :consists of a master oscillator feeding four ranks of clock amplifiers in an oscillatoramplifier pyramid The oscillator and amplifiers are contained on the type COl card. The pyramid connection and -circuit operation are discussed in the Printed Circuits Manual, publication no. 60042900. The oscillator operates at 8 megacycles and provides four sine wave outputs. Two of these are 180 degrees out of phase with the remaining two. One set of outputs is designated even raw clock, the other set is odd raw clock. The raw clock outputs used for timing logic are available only from the clock amplifiers in the fourth rank of the pyramid Clock signals are placed on one -way AND gates as well as mUltiple input AND gates to time the output of control delays and single inverters. These are always deSignated as HXXX, VXXX, or NXXX terms. When 0 o 147 the raw clock signal goes to a 0 (-3v to +lv), the inverter outputs a logicall for 62.5 nsee. The inverter circuits clip the raw clock signal to convert the sine wave to a rectangular wave. All odd numbered NXXX and VXXX terms have an odd raw clock input. The logical 1 from these terms occurs at odd time. Likewise, even numbered NXXX and VXXX terms are fed by even raw clock and output a logical 1 at even time. The master clock and pyramid must be tuned to a frequency of 8 megacycles. Procedure for tuning the clock pyramid is presented in Printed Circuits Manual. Ranks 1, 2, 3, and 4 are ranks of amplifiers. In terms of hardware, the circuits are the same for both the amplifiers and the master oscillator. The master oscillator drives two amplifiers and each amplifier may drive four more amplifiers. RESYNCHRONIZING External equipment and switches provide signals which are asynchronous to the timing of the computer and must be resynchronized. This involves insuring that only one synchronized pulse results from an asynchronous signal, regardless of the duration of such a signal. In addition, resynchronization prevents the possibility of marginal timing due to the occurrence of runt pulses. Resync Counter The resync counter is composed of a free -running chain of four control delays. This chain begins counting when the first odd clock pulse is produced by the clock pyramid. A 62.5 nsec pulse is produced by one of the control delays each phase time (figure 158). Each control delay produces a pulse every quarter microsecond. The resync pulses synchronize signals by conditioning AND gates throughout the computer. An asynchronous signal is sampled tv form a synchronous (62.5 nsec) 1 when a resync pulse completes the AND gate. A synchronous pulse is not produced when a runt pulse is sampled, for this type of signal does not have sufficient amplitude to definitely indicate 1 or O. The resync pulse occurs again in 0.25 usec. If the input has settled to a steady 1 by this time, a synchronous pulse is produced. INPUT TO H070 H070 V070 H071 V071 H072 V072 H073 V073 ___ = LOGICAL ONE Figure 160. Resync Timing Figure 158. Resync The first control delay of the timing chain has a threeway ANDed input. 1. N053: Odd clock slave outputs a logical one 62.5 nsec every odd phase time. 2. H071 and H072: These are outputs from the A side of the H07X term. Their output will go to o for 2 Y' times after the H07X term receives an input. This is true of all control delays. N053 H071 H072 Figure 159. Resync Input 14~ H070 V070 V074 Start The RNI sequence provides for most manual and pro gram starts and stops. The computer may be started by pressing GO switch if normal program operationis desired, or by pressing SW /EN CONT switch if a sweep or enter operation is to be performed. These switches are mutually exclusive although they both set Initiate Go FF (K304/305). The output of Initiate Go is timed with a resync pulse to set the, Go sync FF. The output of this FF then sets Go (K090/091) and the output of Go allows a start pulse to begin an RNI to read the first instruction of a program. (The logic discussed above is found in Logic Diagrams, page 2-15). The computer may also ~ started from halt by pressing CYCLE STEP, INSTRUCTION STEP, or AUTO STEP switches on the console. Operation of the computer in these modes is discussed elsewhere in this manual. D. J302 SW + EN SW7ENCoiiT - 7 08 ~K070 ~K012 SW/EN CONT-7 Operator V071 (tl): (t2) (t3) V070 (to): (tl) N072 (t2): V073 (t3): pushes GO, set K304/30S. Set K078/079 (go sync). Set K090/091 (go). Outputs a logical 1. This is the start pulse for the processor. Set K092/093 (go lockout). K090 Go Logic H073 H072 V071 Figure 161. V072 V076 - - - - . . I N072 K093 N072 will have only a lout at t2 after setting of K090/091 and before setting K092/093. GO LOCKOUT Figure 162. Time 2 of Resync Timing TEST MODE Test mode is available with the 3300 Computer for the convenience of maintenance personnel; it performs a three-step operation consisting of Stop, Master Clear, and Go. The repetition rate of this three-step operation may be switch-selected at a 1 msec. rate or at an auto-step rate. TEST MODE switches are at location 1 T23 in the main frame. The C section of the switch card controls the repetition rate; the D section enables Test mode. L Stop - . MC - . Go L-. _ _ _ _ _--\~ J )r--------- Turn on Test Mode M338 and M339 = 1. Clear Go Initiate FF (K304/305) and stop FF (K306/307). Real Time clock (J793 = 1) or Auto Step (Y859 = 1) Set K386/387 ~M329 = 1. Set Stop FF (K306/307). ~M339 = O. Remove clear from Stop FF. T after 2 msec duration: ~M337 = 0, M309 = 1 (Master Clear) I A~er 5 msec duration: Set K388/389 ~ M328 = 1. Set Fo Initiate FF (K304/305). M339 = 1. Clear Stop FF (K306/307). M338 = O. Remove clear input from Go Initiate FF (K304/305). M329 = O. Remove output of M309 from input to J280, dropping Master Clear. Next V071, Set Go Sync FF (K078/079). Next V070, Set Go FF (K090/091). Continue in ~ Go condition for time deter, mined by Real Time Clock or after 5 msec duration: Clear K386/387, K388/389 M328 = O. Remove set input to Go Initiate FF (K304/305). M338 = 1. Clear Go Initiate FF (K304/ 305). 149 STATIC CONTROLS The static controls are used to enter data from the keyboard. These include the keyboard entry controls and the breakpoint controls. KEYBOARD ENTRY CONTROLS The keyboard entry controls are used to control (1) entry of data into C register from the keyboard, and (2) transfer of this data to the various registers. COMMUNICATIONS REGISTER CONTROLS Entry of data from the keyboard to C register is controlled by C register controls which include the digit counter, the sequence counter, the digit sequence chain, and various timing networks. J943 M314 -12 BIT "'05 "Sl7 J,IO Figure 163. Digit Counter The digit counter is a chain of six flip -flops which controls the entry of successive digits into C. The counter operates by moving a combination of setting and clearing inputs down the chain. The various combinations are translated by the J320 to J327 translators. A translator outputs a 0 when its inputs are satisfied. This allows a corresponding J340 to J347 term to output a 1 to turn on the proper light driver card to light the blue background indicator in the desk console display. This background indicator shows the digit position to be filled next. DIGIT K3Z7 K;!I28 K;!I31 K329 K331 K329 K331 K;!I2~ K327 K;!I29 K325 K3Z!I K327 Inputs from the digit counter Additional digit counter translators K323 K3Z!I K336 K;!IZI K3Z3 L850 to L857 are the light drivers for the field digits of C register. K321 K322 ~;,'i~-- K 320 \... K336 ,j Digit counter translators ./ J320-J327 Figure 164. C Register Enables 150 The flip-flop combinations necessary to select each digit position are shown below. IH301 I H303 From digit counter tr anslators Table 13. DIGIT POSITION SELECTION Flip-flops in Set State Digit Position 7 (First to be filled for a 24-bit entry) 6 All flip-flops clear First flip-flop in the chain, K320/321 First and second Second and third 5 4 (First to be filled for a 15-bit entry) 3 (First to be filled for a 12-bit entry) 2 1 0 J320 J321 J322 J323 J324 J32S J326 J327 N301 N303 N30S N307 N309 N311 N313 N31S N301 gates digit key to digit 0 position of the { C register. N31S gates digit key to digit 7 position of the { C register. Figure 165. C Register Digit Enables Third and fourth logical O. This output is used to permit gating the digit from the pressed digit key into C register. Fourth and fifth Fifth and sixth Sixth Depending on the state of the digit counter, one of the J32X (digit counter translators) terms nrool1ces a J368 2A2 EI-E7 READ STO LAST DIGIT _ SW KBYD ACTIVE K336 V076 J311 J314 Removing the blocking input to the N3XX gate which then comes up and gates the digit position in C register. The digit sequence is a chain of three flip -flops and a control delay. The control delay, H301, H303 is drawn complete in figure 166. DIGIT SEQUENCE DIGIT KEY DEPRESSED V070 K309 K312 I---o-~ DIGIT Figure 166. Digit Sequence Whena digit key is pressed, K300/301 (digit key depressed FF) is set. The signal is advanced down the chain to pulse H301 which then clocks out a pulse to set the selected digit in the digit position indicated by the digit counter and as translated by the digit counter translators. The sequence counter is a pair of flip -flops which indicate whether an odd or even number of digits has been entered into C. When the digit key is pressed, the first flip -flop is set or cleared depending on the state of the second flip -flop. After the first flip -flop has stabilized, its state is copied by the second flip - flop. Both flip-flops are set to indicate an odd number of digits entered. N308 and N310 translate the state of the sequence counter FFS. After each digit is entered in C, a pulse is clocked from one or the other of these inverters to advance the digit counter. When the last digit has been loaded into C the last SET SELECTED DIGIT K312 K313 J309 digit FF is set. This prevents the end -around entry of C by breaking the input to the digit key pressed FF The set output of last digit is gated to control delay H30S which clears the digit counter. Last digit is cleared Selection of a IS-bit register may be overridden by selection of a 24-bit register. K3S4/3SS is set when a IS -bit register is selected. If a 24 - bit register se1ection is then made before C has been fully loaded, K3S6/3S7 sets to complete anAND gate to H30S. H30S then clears the keyboard controls. Clearing of keyboard controls will reset the digit counter. This will reset the digit designator field light. when the contents of C are transferred to the selected register. It is also cleared by a keyboard clear or a master clear. When last digit flip-flop has set, the pressing of any digit key or keys will not affect the contents of C register and all digit designator field lights will be out. 0 151 SEQUENCE COUNTER K334 K334 K309 K333 K335 K333 K335 N331 V076 K300 K333 K335 K332 K334 Figure 167. Sequence Counter 15 ow. . . " Figure 168. Last Digit Logic liT .I.[CTJOII JM4 'ION \1074 12 .IT + 'I liT J!OJ ii'7"iI"To? Figure 169. 12 or 15 Bit Override Logic V317 .1365 ."ITE STO Register Selection Data may be entered from the keyboard into P, BI, B2, B3, A, and Q registers via the communications register. A register is selected by pressing one of the register switches on the keyboard. Selecting a register enables the keyboard active signals, the digit indicators (blue background lights), and the console display of C register. In this exam pIe manual entry is being made into A register. Figure 170. Manual Entry into "A" 152 Selecting A register enabled the indicator for digit 7 of C register 0 Figure 171. C Register Display for Digit 7 Except for P register, a register may be selected only when the machine is stopped. P register may be selected when the machine is running or stopped and will be displayed in both cases. When the computer is running and P has not been selected, all keyboard switches but STOP, READ STO, WRITE STO, and KYBD C LEAR are disabled. Consider manual entry into A register as an example of register entry. This will be a 24 -bit entry, as A is a 24 -bit register. (Bl, B2, B3 and Pare IS-bit entries.) Entry into A register will be discussed in two parts. 1. Digits from digit keys to C register 2. Transfer ofC register to Selected register (A regis rer in example) Entry of Data into C Entry of data into C is performed using keyboard switches and C register controls. Manual entry timing is as follows: 1. Computer must be stopped in order to perform manual register entry. 2. Press the keyboard clear switch to clear K366/ 337 (last digit FF), the digit counter FFs, K332/ 333 (sequence counter 1 FF), and C register. Note: N310 = 1. A keyboard clear is performed to initialize the C register controls. The A, Q, EU, or E L register (24-bit registers) switch on the console keyboard is pressed to select the register and activate the keyboard. The A register is selected for the example. Since a 24 -bit register has been selected, all digit counter FF s are in the clear state. The digit counter translation drops 1327 to a 0, allowing 1347 to output a 1 to the L8S7 light driver. This light driver lights the blue background light in digit position seven of the C register console display. Selecting a register causes a keyboard active indication. This is required for the following timing to take place. Note that selecting a register will not cause a keyboard active condition if the computer is running. The AND gate into 1313 will be broken as 1090 = 0 when the computer is running. READ 5TO J368 >>- Figure 172. Keyboard KY'BO ACTIVE 2R&2C 15-9ITII310~~ 81 I T&SA 12-81T Tj-7~ 116 M314-~--:t"i'5~ iTT 15 BIT J294 J369 .. 753 ITS5F i2-7~ 2A2 85 u ITC5E I T66C i5"iiT-7 i3-7>---EJ .1369 REAO ... WRiTE 5TO 11753 REG Figure 173. Register Selection Logic The following timing chart shows the entry of a single digit into C. Format will be that of the command timing charts. This will aid in understanding the commanding timing charts for the instruction set of 3300 Computer. (Refer to 3300 CE Diagrams, page 2-21. ) TIMING FOR 24-BIT ENTRY TIME Async* V076(t2) TERM COMMAND Start YS50 K330/301 Set digit key pressed FF CONDITION REMARKS One of the digit keys (0-7) is pressed. Provides 30 ms delay. (Sweep) (Last Digit) (t3) (to) V071(tl) K30S/309 Set digit sequence 1 (t2) V073 (t3) V070(to) When K309 = 1, set K332/333 (first FF of the sequence counter). N30S = 0, N310 = 0; disables advance of digit counter. K312/313Iset digit sequence 2 H301 Set selected digit 153 TIMING FOR 24-BIT ENTRY (Cont) TERM TIME COMMAND CONDITION REMARKS Locks out double pulses. N315 outputs a 1 at odd time to set the selected digit in position 7, (flip-flops C930/931, C920/921, and C910/ 911, or digit 5, 3, or 1 if not first pass). Operator releases digit switch. V071(tl) K30S/309 (Odd time) Async K300/301 V074 (to) (tl) V076(t2) K334/335 Clear digit key pressed FF Set second F F of sequence counter When this flip-flop sets, the translation of the sequence counter is such that N308 outputs a 1. All digit counter FFs are clear so J315 and J317 also = 1. These terms are ANDed to set K320/321, the first flip-flop of the digit counter. Digit counter translation drops J326 to a 0, allowing J346 to output a 1 to the LS56 light driver. This moves the indicator from digit seven position to the digit six position (or 5 to 4 or 3 to 2 or 1 to 0). K312/313 V073 (t3) Clear K312/313 Next digit may now be entered. One of the digit switches (1-7) is pressed. Provides 30 ms delay. Async Y850 K300/301 V076 (t2) (t3) (to) V071(tl) (t2) V073 (t3) Set digit key press FF K30S/309 Set digit sequence 1 K312/313 Set digit sequence 2 V070(to) H301 Set selected digit V071(tl) K30S/309 Clear digit sequence 1 (Sweep) (Last digit) WhenK309 = 1, clear K332/333 (first flip-flop of the sequence counter); N30S = 0, N310 = O. Locks out double pulses. N313 (for digit 6) outputs a 1 at odd time to set the selected digit in position 6 or position 4, 2, or 0 if not first pass. When the last digit is entered (digit 0) K336/ 337 (last digit FF) is set. This prevents the end-around entry into C register. Operator releases digit key. Async V074(to) K300/301 (tl) V076 (t2) K334/335 . V073(t3) . K312/313 I I Clear digit key pressed FF Clear second flipflop of sequence counter IClear digit sequence 2 I. When this flip-flop clears, translation of the sequence counter is such that N310 outputs a 1. Advnace digit counter. I I Return to * for next odd digit if K336/337 is I clear. 154 I I' TIMING FOR 24-BIT ENTRY (Cont) TIME V070(tO) H305 REMARKS CONDITION COMMAND TERM Input occurs if K336/337 (last digit) is set. The indicator in C register will have moved right one digit position and disappear after entering digit 0 position. Clear C register Clears digit counter and sequence counter N331 At this time C register will hold the data to obe placed in A register. If the operator made an error, KYBD CLEAR will clear C register and controls. The logic will be initialized to the same state as when A register was first selected. If the data in C register is correct, the next opera- KYBD Sel CLEAR A Digit 7 P Digit 6 Digit 5 RPRPR Digit 4 tion required is transferring (C) to the selected register (A in this case). Figure 174 is the waveform timing for 24-bit entry. This could be the first part of manually enter A or Q. This will be the same also for enter or write storage which will be discussed later. Digit 3 PRP Digit 2 Digit 1 RPRP Digit 0 RPR K320/321 K322/323 K324/325 0A-_I-_-+_ _-+_--I Digit counter K326/327 K328/329 K330/331 ~ K332/333 Jquence counter K334/335 Last digit flip -flop K336/337 N308 '~_~_.v ~ '/,;j...-_-I j N310 lJ J315 J316 Additional digit counter translators J317 P =digit key pressed R = digit key released Sequence counter translators ~ flip -flop set or a term r s output is 1. Figure 174. Waveform Timing for 24-hit Entry 155 Entry of a 15 -bit quantity into C is similar to 24 -bit entry. The major difference is that the digit counter is set to enter the first digit in digit position 4. This is done by setting K322/323 and K324/32S when a 15bit register is selected. 1. The computer must be stopped in order to perform manual entry into the registers. 2. Press KYBD CLEAR switch to clear K336/337 (last digit), the digit counter FFs, K332/333 (sequence counter 1), and C register. Not e t hat N310 = l. 3. Select P, Bl, B2, or B3 at the keyboard. Clear K334/33S (sequence counter 2) at 12. Set K332/ 323 (digit counter FF); N308 = 1. Set K324/32S (digit counter FF) and set K3S4/3SS (IS-bit selection record). TIMING FOR 15-BIT ENTRY INTO B1, B2, B3, or P* TERM TIME COMMAND CONDITION One of the digit keys (0-7) is pressed. Provides 30 ms delay. **Async V076 (t2) YS50 K300/301 (t3) (to) V071(tl) K30S/309 Set digit sequence 1 V073 (t3) K312/313 V070(to) V071(tl) H301 K30S/309 Set digit sequence 2 Set selected digit Clear K30S/309 Async V074 (to) K300/301 Clear digit key pressed (tl) V076 (t2) K334/335 V073 (t3) K312/313 Set second flipflop of sequence counter Clear digit sequence 2 Set digit key press FF (Sweep) (Last digit) When K309 = 1, set K332/333 (first flip-flop of the sequence counter). N30S = 0, N310 = 0, disables advance of digit counter. (t2) V070(tO) Lacks out double pulses. N30X term gates M33X terms to digit position 4, 2, or 0 in C register. Set K336/337 (last digit) if entering digit O. Operator releases digit key. N310 = 1, advance digit counter The next digit may now be entered if K336/ 337 (last digit) not set. Input occurs if K336/337 (last digit) set. Clear C register control H305 V305 Async Clear digit counter and sequence counter. Operator presses digit key. Provides 30 ms delay. Y850 K300/301 V076 (t2) REMARKS Set digit key Press FF (Sweep) (Last digit) (t3) (to) Iv071 (U) 1 K308/309 (t2) V073(t3) K312/313 V070(tO) H301 156 I Set digit sequence 1 Set digit sequence 2 Set selected digit ¥lh~n K~oq = 1 01~::t-r K~~2/~~~ (fi-rRt flip-I flop of the sequence counter). . N308 = 0, N310 = O. I' TIMING FOR 15-BIT ENTRY INTO B1, B2, B3, or P* (Cont) TIME V071(tl) TERM K30S/309 COMMAND Clear digit sequence 1 Async V074(tO) K300/301 Clear digit key pressed (t1) V076(t2) K334/335 Clear second flipflop of sequence counter CONDITION REMARKS Locks out double pulses. N3 OX term gates M33X terms to digit position 3 or 1 in C register. Operator releases digit key. When this flip-flop clears, the translation of the sequence counter is such that N30S outputs a 1 advance digit counter. The indicator in the C register will have moved right one digit position. Return to ** for next digit • ... 157 MANUAL ENTRY TIMING Worksheet: IS-Bit Register In the following chart indicate state of flip-flops and output of the terms listed as five digit keys are pressed sequentially. Digit 4 Me Sel P P Digit 3 R P Digit 2 R P Digit 1 R P Digit 0 R P R K320/321 K322/323 K324/32S K326/327 K330/331 K332/333 K334/33S K336/337 N30B N310 J31S J316 J317 P = Digit key pressed R = Digit key released ~ = flip-flop set or a term's output is 1. Figure 175. Waveform Timing for 15-hit Entry 158 Transfer Sequence After data has been entered into C, it must be transferred to the selected register. Pressing TRANSFER initiates the transfer sequence. This sequence is performed using the manual timing chain and the keyboard controls (Logic Diagrams, page 2-19). .AIT PR lOR I TY Figure 176. Transfer Logic 1/074 J For transfer to A or Q; press TRANSFER to set transfer FF. The signal then passes down the chain of flip-flops to set keyboard bus priority. V071 (tl): Set K302/303 (transfer). (t2) (t3) V074 (to): Set K310/311 (transfer lockout). (tl) V076 (t2): Set K358/359 (wait priority). V073 (t3): Set K314/315 (enable C register). The processor must be stopped for manual entry into a register. Main control will not be using the bus system at the time but the block control could be using it. An input or output operation could be taking place even with the processor stopped. Since DB register will be used during the transfer sequence, it will be necessary to request the bus system and wait until priority is granted. Priority granted is indicated by setting of K342/343 (keyboard bus priority). (to) V075 (tl) If K210/211 (block control bus priority) is set, test again at resync tl. If K210/2ll is clear, set K342/343 (keyboard bus pri0rity) and continue. When K342/343 is set, gate (C) to the C7X2 inverters. Force the EXX2 inverters to l' s • 301 J 332 = (go )(SW+EN)(block control priority )(wait priority)(read + write storage). The flow for manual entry to A register is: Digit keys to C to C7X2 to Ui3R to r4 to X to adder to rO to A register. Trace this path on the block diagram. Setting of K342/343 (keyboard bus priority) drives I975 1657 STORE INTERRUP~ TRANSLATION READ + .R'TE STO J369 Figure 178. C Register Enables J332 is the setting input that will be used. V01!5 -u-----<-----< KYIO IuS ,..tlORITY oI'S32: Z351 N051 .1350 ~2.10 1(341 use J348 to a logical O. J350 will output a logical 1 enabling the clear side of C register (C) to the C7X2 inverter rank. The J350 term's output of a logicall will disable the inputs to the EXX2 inverter rank, the output of which will be logical l' s. N440 will be one of the gating terms which gate C7X2 inverters to DB register. Figure 177. Keyboard Bus Priority 159 I'~O (INTE,UWPT TRANSLATION) Select A Select Q Me oJ••' Figure 180. AQ Entry Logic , a-J (t2) V073 (t3): V310: I I i ~ Input to H310. Clear K310/ 311 (transfer lockout) and K358/359 (wait priority); setK568/569 (enter A) or K566/567 (enter Q) and K570/571 (F1 to F2). Setting of enter A FF or enter Q FF will force a 20 or 21 into arithmetic register F2. The arithmetic section will simulate a load A or load Q instruction. Figure 179. DBR Enables MANUAL TIMING CHAIN V073 J361 - READ J332 + WRITE STO J308 Figure 181. Manual Timing Chain V311 V312 V313: V314: V126: V315: V316: 160 Input H400, Input H126. Input H401 (clear DBR) Set KI04/105 (start arith 2) Clear DBR, Input H440. EXX2· C7X2 in DBR. The arithmetic section will execute a load A or load Q sequence, DBR to X to A or DBR to X to Q. (Arithmetic timing is discussed in chapter 12.) J331 J361 V317: Clear K342/343 (keyboard bus priority), clear C register and its associated controIs, and clear K336/337 (last digit). Async: Operator releases TRANSFER. V071 (t1): (t2) V073 (t3): Clear K302/303 (transfer). Clear K314/315 (enable C to selected register. If the register selected is Bl, B2, or B3 the timing for the transfer sequence will be the same to V310 time. The following timing is for manually entering a B (index) register during V3I0 through V3I7 time. Operator presses TRANSFER. Transfer timing is the same as for A register. R E-AO S TO SYNC J207 C--2~Bb '5 BIT ..1294 K"IBD ACTIVE J396 oo01~---li 2~75 V312 C102 F354 1:001 C112 ClERR Bb Fe. 08 11018 ..1285 !'Ie -o>-+-,- - - - - - , ClR Bb BKPT l.OCKOUT K136 Rap K085 11006 (511 .0-511.3 J FII20 (AFlITH BUSY) F356 ~2~96 N295 2~73e F021 -O-r;::t:====~41l Z~O 1:002 C1U ii1 f351 B2 F353 F031 IOO' C1U V3I0: Input H24I (clear B). N240 N270 Figure 183. N211---....J 7ci F368 IU.SUIIE 195Z BOP V9e. 0 RES'1NC F355 If the register selected is P, timing for the transfer will be the same as manually enter A to V310 time. The following timing is for manually enter P register from V3I0 to V317 time. i3 Figure 182. B Register Entry Logic One of the terms F35I, F353, or F355 will have a o for its output. This is caused by pressing the respective Bl, B2, or B3 button on the keyboard when selecting the register. V311: V312: V313: V314 V315 V3I6 V3I7: B Register Enables N241 - - - - - - - Clear B (index register). Input H245 (C to Bb). C7X2 to Bb. Static enable for Same as for enter A register. C to C7X2. V310 V311 V312: Input H2I5 (clear PI). V313: Clear PI, input H210 (complement to PI). V314: C7X2 to PI (static enable for C to C7X2). Input H221 (PI to P2). V315: PI to P2 is a forced transfer to equalize a tworank register. V3I6 V3I7: Clear K342/343 (keyboard bus priority), clear C register and its associated controls, and clear K336/337 (last digit). KYBD ACTIVE J314 P SELECTED M318 - - - - , _ - -_ _ _ _ _ _ _ _ _ _ _---, READ STO SYNC J207 K957 N060 K959 J711 MC J281 V075 AUTO LOAD + AUTO DUMP J050 AUTO LOADI DUMP SYNC K038 N232 N221 N223 N225 N227 MC J285 Figure 184. P Register Entry Logic N229 Figure 184 161 Bit 0 Bit 0 PI C702~ POOO N210 N277 POOl P2 H P500 ......------- '-----~ P501 "-------' N221 Figure 185. P Register Enables Review of Transfer Sequence After data has been entered into C, it must be transferred to the selected register. Pressing TRANSFER initiates the transfer sequence. This sequence is performed using the manual timing chain and the keyboard controls (Logic Diagrams, page 2-19). For transfer to Bl, B2, B3, or P, press TRANSFE R switch to set transfer FF. The signal then passes down the flip -flop chain to set keyboard bus priority. H3I0 is pulsed to start the manual timing chain. As 162 the signal passes down the timing chain: DB register is cleared. Bb (if selected) is cleared. Contents of C is gated to DB register. PI (if selected) is cleared. Contents of C are gated to PI or to selected B register. PI is gated to P2 (if P is selected), C register and controIs are cleared. For Transfer to A or Q: Press TRANSFER to set transfer FF. The signal passes down the flip -flop chain to set keyboard bus priority. H3I0 is pulsed to start the manual timing chain. As the signal pas se s down the timing chain: Enter Al FF is set and F2 register is forced to a 20 (function code for load A) or enter Ql FF is set and F2 is forced to a 21 (function code for load Q). DB register is cleared; (C) is gated to DB register. The arithmetic timing chain is started. X and A2 registers are cleared. DB register is gated through 14 to X; nothing is gated to A2. (X) and (A2) begin to propagate through the adder. C register and its controls are cleared. Al or Ql is cleared. (X) is gated through II to Ql or the STI:Infrom the adder is gated to Al through 10 . KEYBOARD ENTRY Worksheet 1. Indicate the state of the digit counter FFs for each position of C register by filling in the following chart. K320j321 Digit Digit Digit Digit Digit Digit Digit Digit K322/323 K324/325 K326/327 K328/329 K330/331 7 6 5 4 3 2 1 0 2. Indicate three manual operations which will cause C register to be cleared. 9. What is the significance of the preceding answer during manual register entry operations performed at the keyboard? 3. With a select register key pressed on the keyboard, what condition must exist in order to obtain_ a keyboard active status? 10. With the computer stopped and a keyboard master clear already performed, list the sequence of switches that must be pressed to place the quantity 03,000,000 into Q register. 4. What is the function performed by K336/337 (last digit FF)? 11. What prevents simultaneous selection of more than one register at the keyboard? 5. Briefly describe the need for flip-flops K354/355 and K356/357. 6. What function is performed by the flip -flop specifled at the times given? P Register Previously Selected Resync Resync Resync Resync Resync A Register Now Selected T2 T3 TO Tl T2 12. Why is it necessary to obtain bus priority during a transfer sequence (i. e ., what malfunction could occur if bus priority were omitted)? 13. List the operations that occur within the program control section as a result of performing a master clear at the keyboard. (Assume that the machine is stopped.) 14. Under what conditions can go FF be set? 7. What are the transfer operations between C register and the register selected at the keyboard? 8. With the keyboard active after the computer has been stopped and A register selected, what would occur if TRANSFER were pressed and released twice in succession? 14. Under what conditions can go F F be cleared? (Inelude the output translation for J071.) -----------------------163 MANUAL READ STORAGE Read storage enables the operator to monitor the contents of one particular storage location while the computer is either running or stopped. During a read storage operation the storage location set on the BREAKPOINT Address Selector switches is read and its contents displayed in C register. This location is continually monitored at a rate determined by the auto step oscillator. The command timing chart on the following page is for a manual read operation. Refer to Logic Diagrams as you progress through the operation. To perform read storage: 1. Set the address to be referenced on the BREAKPOINT Address Selector switches. This is an address in either main memory or one of the 64 locations in register file memory. 2. Set the Mode Selector switch to STO if referencing main memory or to RE G if referencing register file memory. 3. Press keyboard switch READ STO. 4. When the auto step oscillator puts out a signal, transfer FF is set. If the computer is running there is a delay while the current instruction is executed; if the computer is stopped there is no delay. The contents of the designated location are read and displayed in the C register by use of the manual timing chain and controls. When the data has been displayed, normal operation continues. (If the computer is not running, nothing occurs.) When the signal from the oscillator again comes up, the cycle is repeated. The designated location is continually monitored at the auto step rate until another keyboard switch is pressed to release READ STO. Table 14. READ STORAGE TIMING CHART TERM TIME COMMAND CONDITION REMARKS Set the BREAKPOINT Address Selector switches to the address to be referenced. (This may be a main memory address or one of the 64 registers in the register file.) Set the Mode Selector switch to STO to reference main memory or to REG to reference register file memory. I Async Press keyboard switch READ STO V073, N319 K316/317 Transfer FF clear Set read storage sync (puts J368 to a 1). V071 K302/303 M358 = 0 Set transfer when the auto step oscillator signal goes to 1. V074 K310/311 K314/315 clear Set transfer lockout. V076 K358/359 K314/315 clear Set wait priority . ----- Computer running Wait until the instruction currently being processed is completed. CUlllpULCl RNI next. Set K340/341 viet J301 or via keyboard bus request. Computer stopped. Set K340/341 via 1357. ---- V082, V084, V086 V072 161 IK340/341 0 K340/341 I Ull1llng • READ STORAGE TIMING CHART (Cont) TIME COMMAND TERM V073 K314/315 Odd time K342/343 CONDITION Set enable C to selected register. K210 = 1 Set keyboard bus request if block control does not have bus priority. Transmit read via T655. Gate breakpoint address (M6XX and M7XX) to EXXS, from EXXS to T6XX transmitters. Hl17 K212/213 clear, no register selected Keyboard operation obtains bus priority. Clear K310/311 K342/343 set Clear transfer lockout. Request bus Transmit read Transmit storage address on S bus N050 and V074 Clear K35S/359 Vl17 REMARKS Clear wait priority. Set K212/213 Set Kl16/117 Even time N050 Hl15 Vl15 K012/013 Transmit a storage request to the selected module via one of the T65X transmitters. Enable data bus Set K012/013 to lock out multiple pulses. ---1-------- Main control now waits for the selected storage module to provide a reply. Async R555 Reply received and used as an input to the resync circuit. V061 H310 Reply Resynchronized reply provided to start the manual timing chain. V310 V311 K004/005 V314 K340/341 Set address mode (word) V311-V314 provide idle time while the word is read from storage and placed on the data bus. Clear keyboard bus request. V315 V316 H317 Clear C and controls V316 H401 Clear DB register 165 READ STORAGE TIMING CHART (Cont) ! I TIME TERM V317 K012/013 Clear storage request lockout. V317 Clear Kl16/117 DB and C registers are cleared. Clear storage request. N401 H410 EXX2 to DB register V317 Clear K342/343 H318 Direct COMMAND REMARKS CONDITION E XX2 to C Clear keyboard bus priority. N41X Gate the data from the bus into DB register (EXX2 to DB register). N32X Gate the data from the bus into C register (EXX2 to C). =0 V071 Clear K302/303 Y858 V073 Clear K314/315 K302/303 clear Clear transfer when the auto step oscillator signal goes to a O. Clear enable C to selected register. If processor is running when K342/343 is cleared (V317 time), program control may obtain the bus and continue processing instructions. Read storage again occurs on the next cycle of the auto step oscillator and will continue until a keyboard switch is pressed to realease READ STO. MANUAL WRITE STORAGE Write storage enables the operator to store information in one particular storage location in main memory or in register file memory. Write storage may occur while the computer is either running or stopped. During a write storage operation, information contained in C register is stored in the location specified by the BREAKPOINT Address Selector switches. Storage occurs when TRANSFER is pressed. The command timing chart on the following page is for a manual write operation. Refer to T,ogic Diagrams as you progress through lhe operation. Then answer the questions following the chart. To perform write storage: 1. Set the address to be entered on the BREAKPOINT Address Selector switches. This is either an address in main memory or one of the 64 locations in 166 register file memory. 2. Set the Mode Selector switch to STO if referencing main memory or to REG if referencing register file memory. 3. Press keyboard switch WRITE STO. 4. Load the data to be stored into C register. 5. Press TRANSFER. 6. If the computer is running there is a delay until the current instruction has been executed; if the computer is stopped, there is no delay. The manual timing chain and controls are used to store the data in the designated storage location. Then normal operation continues. Write storage may be performed again by pressing TRANSFER. Another keyboard selector switch must be pressed to release WRITE STO. WRITE STORAGE TIMING CHART TIME TERM COMMAND CONDITION REMARKS The address to be referenced must be set on the BREAKPOINT Address Selector switches. The Mode Selector switch must be set to STO or REG. WRITE STO is pressed. V073, N319 K318/319 Transfer clear Set write storage sync (puts J365 to a 1). Async. The data to be stored is loaded into C register. Async. Press TRANSFER. V071 K302/303 V070-4 K310/311 V072-6 K358/359 Set transfer. K314/315 clear Set transfer lockout. - - - - r------ - - Computer running Set wait priority. Wait until the instruction currentlybeingprocessed is completed. V082, K340/341 V084, or V086 Computer running RNI next K358/359 set Set K340/341 via J301 or via keyboard bus request V072 K340/341 Computer stopped Set K340/341 via J357. V073 K314/315 Odd time K342/343 N051 Even time N050 H117 V117 K212/213 Set K116/117 /V070-4 Clear K310/311, Set enable C to selected register. Request bus K340/341 set K210 = 1 Obtain bus priority if block control does not have bus priority. Transmit write Transmit a write signal to storage via T655. Transmit write character designators Transmit write character designators to storage via the T66X transmitters. Transmit storage address on S bus Gate the breakpoint address to EXX8, EXX8 to T6XX transmitters. No register selected Storage request Transmit a storage request. Clear transfer lockout. 167 WRITE STORAGE TIMING CHART (Cont) I TIME TERM COMMAND CONDITION Clear wait priority. K358/359 Even time N050 Hl15 Vl15 K012/013 H400 KOO4/005 REMARKS Set lockout to prevent multiple pulses. Set address mode. N400 H401 Clear DB register N407 H440 CXX2 to DB register DB register is cleared. N440 CXX2 is gated to the DB register «C) to CXX2 was enabled earlier), (DBR) to the T5XX data bus transmitters. Force EXX2 to output Is. ---- Wait for a reply. Async R555 V061 H310 Reply received by resync circuit. Reply Resynchronized reply provided to start the manual timing chain .• V310-V314 provide idle time while the data on the bus is being accepted by the storage module. V310 iV314 Clear keyboard bus request. K340/341 V315 V317 Clear K012/013 Kl16/117 Release bus Drop storage request V317 Clear K342/343 Clear keyboard bus priority Program control may now continue normal program execution if the processor is running. Clear C N33X READ STO, SW, EN, KYBD OFF, or a register switch must be pressed to release WRITE STO. Async V073 1.68 Clear K318/319 K302/303 clear Clear write storage sync. TRANSfER GO SWEEP GO SW .1092 K353 EN K350 SW K352 ~V316 .1356 N072 K353 NH2 N 224 BLOCK P N 226 CIR. pi N228 KEYBOARD BUS PRIORITY SWEEP K353 H 31S N320 } N 322 N 333 N335 N 337 l N 339 } CI. N 324 C N 326 E XX2- C Questions on Manual Read/Write Operation 1. List the steps necessary to allow you to observe the contents of location 20603 while the computer is running and while the computer is stopped. Running Stopped Enter Page Index File Sequence -- timing begins with Enter PF switch depressed and C equal to the quantity to be entered. Depress TRANSFER V07l: Set K302/303 (Transfer) V072 V073 V070/V074: Set K3l0/3ll (Transfer Lockout FF) V07l V072/076: Set K358/359 (Wait Priority FF) N072/K35l: Set K340/34l (Keyboard Bus Request FF) (if Go) (start here for Go) *N05l/V073: Set K3l4/3l5, Set K342/343 (Keyboard Bus Priority FF) N050: Input Hl17 Vl17: Set Kl16/ll7 (Storage Request FF) Set K2l2/2l3 (Block Control Priority 2 FF) N050: Input Hl15 Vl15: Set K012/0l3 (Storage Request Lockout FF) Input H400 170 2. If you want to change the contents of location 23 in the register file, what steps must be performed? List in order the buttons that must be pushed and the operations that must be performed. N400: N40l: N440: N4ll: Input H40l Clear DBR, Input H440 C7X2 to DBR, Input H4ll Set K2l4/2l5 (DelayedSTORequest FF) Transmit a Storage Request to the Multiprogramming module. V06l: Resynced Storage Reply, Input H3l0 V3l0: Clear Block P K200/20l (first time) V3ll V3l2 V3l3 V3l4: Clear K340/34l V3l5 V3l6: Input H307 N239/V3l7: AdvanceP2, Clear: K012/0l3, K116/ll7, C; Input H308; Clear: K2l4/2l5, K2l2/2l3, K342/343; Input H220. N220/V308: P2 to Pl, Set K340/34l if Go and return to *. SELF-EVALUATION QUIZ ON CHAPTER 6 TRUE OR FALSE OR FILL IN THE BLANKS 1. A different card type is used for the master clock and the clock amplifiers. 2. One cycle of the master clock defines one phase time. 3. The clock outputs are available any time power is on. 4. The output of the resync network is available only when the computer is running. 5. For a sweep continuous operation the Go FF will be set. 6. The correct sequence for Test mode is Master Clear, Go, then stop. 7. The Test mode repetition rate is switch-selectable at 1 ms or at an auto-step rate. 8. If a change in selection is made from a 15-bit register to a 24-bit register, the background indicator will move from digit position 8 7 to 84 • 9. The C register is part of the transfer path for all keyboard operation. 10. The presence of the background indicator specifies which digit position will be entered when the digit key is depressed. 11. The C register is the only register whose contents may be displayed when the computer is running. 12. When K342/343 is set, the keyboard has bus priority. 13. During the B2 manual entry sequence, ----will be a 0 to allow gating from C to B2. 14. A P1 to P2 transfer is not necessary during manual entry into P. 15. The Arithmetic timing chain is not started for manual entry into A or Q. 171 CHAPTER 7 READ NEXT INSTRUCTION SEQUENCE FOUR MAJOR FUNCTIONS The 3300 Computer has four major storage sequences' RNI, RADR, ROP, and STO. The first seque nee , RNI (read next instruction) has four main functions: 1. To read an instruction word from storage and place the instruction in F register. 2. To insure proper updating of P register. 3. To sense for all types of interrupts. 4. To start/stop. Let's consider the first function of RNI, to read an instruction word from storage and place it in F . In order to visualize the data flow path for the address look at figure 188. Notice the heavy black line originating at the P register. This line defines data flow for the address. Now let's consider the data flow path for the instruction word coming from storage. Again look at figure 187, but this time notice the heavy dashed line originating at Z register of module o. This line defines the data flow path for the instruction word. The second function of RNI is to insure proper updating of P register. P may be updated at times other than when in RNI, but RNI must always update P. Four cases to be considered in updating Pare: 1. P + 1. 2. P + 2. (SKIP) 3. Jump. 4. Block advance P. 173 BLOCK CONTROL MAtti CONTROL 10 :IIO CHAMS CHANNEL REQUEST """ A 8 ! E E' COIITIK c~u~~ ADD!! 'ITS 0'-10 Z. • IE I flTEll""T IUS Figure 187. Data Flow Path Each case will be discussed in detail at V014 time of RNI sequence in this text. The third function of RNI is to sense for all types of interrupts. This includes powerfail, illegal write, STOparity error, normal interrupt, andtrap sequence, all of which will be discussed in detail in chapter 11. Note that RNI timing assigns priority to Interrupts. The RNT times associated \vith these are: 1. V004 - Sense for illegal storage reference, STO parity error 2. V006 - Sense for power fail 3. NOlO - Sense for normal interrupt 4. V080 Sense for trap 174 The fourth function of RNI is start/stop. When GO on the keyboard is pressed an RNI is normally the first sequence entered. The computer may be stopped by clearing go FF • With the exception of a stop during cycle step or after a storage parity error, all stops are m::loe at the end of an instruction. A stop will occur: 1. When a program stop is required. 2. After one instruction is executed i.n jnstruction step mode. 3. When breakpoint stop occurs. 4. When the ge sync FF is cleared by pressing STOP on the console keyboard. 5, After. one memory sequence is executed in cycle step mode. F REGISTER I/O CYCLE BK PT SWITCHES [lPROG. STATEl][( RNI+ RAORl+ (ROP+STO + BOP OP. CY.)(O=-~SR=-=S:-::E""'L=EC?!c:= + (STO 8 RTJ)] EXECUTIVE + MONITOR [(RNI+RADR)+(ST08RTJ)+ (ROP+STO+ BOP OP. CY.)(OSR SELECTED)~ ===::::....,::===""~~10::O::::9~~'""=8.::.::.::.::.::.::.:::;:.::.::.::.::.::-=oq3, INPUT TO RELOCATION PAGE FILE 23 00 12 " 000 001 z. Zo 176 L . -_ _- ._ _- - ' -_ _- - ._ _--..II77 I~--+_--- ADDER (NO END AROUND CARRY) :::-:::::;~=:::==::::::;:::=====09~ TO MODULE OUTPUT FROM RELOCATION 8K SELECT COORDINATE SWITCHES ADDRESS ~-----~> STORAGE REQUEST RIGHT OR LEFT Figure 188. STORAGE S BUS --- 6) + 01.0 + ~;~~ (77.5X)(.55)+(77.6) VOIl (XI.X)+77.7+55.0(XOO) VI20 V960 BDP RESYNC 10.1-10.7 _ _ _ _ F510 GO LOCKOUT K092 ~~~~RNI LOCKOUT K002 2S12A 2SIIA K0031------. F558 77.0 + 77.1 VI71 BLOCK CONTROL REPLY INITIATE RNI VI03 01. (I-3)+ (03-05)+(10.1-10.7)+(13.4 - 13..7) F416 HOl6 _~~~=;::====L=_=_=_=-=-=-=-=-=-=:-fI~.r~::H~0~1~2~_-_-_-~--1 02+(l1-133)+(l4-17)+53X(XOO)+[55.(XOO)+70J[TRA~ F510 BDP"INST NI51 J 140 F701 2POI 2P04 2P05 2Q02A 2QIOA END OF ROP 10.0+34 START FROM {N072 DEAD STOP ~r~~ INT+ PWRFL+TRAP JI40 RNI K081 '"'"'KY-:-::B=D-::B=-U--S--'RE~Q K 340 REQUEST ,..-L--L-....L..:;BUS KOOO 2Q44A F311 01 INDEXED F500 RNI NEXT voa2 END RADR KI02 2Q45BA KI03 NOOO Figure 192. Initiate RNI Logic UPDATE P o o Initiate RNI, Request the Bus System Update P. The P register holds the address of the current instruction or the address of the first instruction at V014 time. At this time RNI must insure proper updating of P register. The four cases to be considered are: 1. p + 1. 2. P+2(skip). 3. Jump. 4. Block advance P. To execute a P+l, refer to figure 193 and consider this tiilling: 17R V014: Set KOOO/OOl, input H23l. N231: Advance P2 (+1), input H220. N220: P2" Pl. To accomplish a P + 2 the skip FF (K10S/109) must be setbefore V014 time. Instructions 04 to 10.7, 52, 71 to 76, 77.0 to 77.4, and77.6 provideforP + 2when a certain condition exists. For all but the 7X instructions the skip translators (logic diagrams 2-13) determine if a skip condition exists. For the 7X instructions the skip condition is tested in the interrupt or block control sections. When a skip condition exists during the execution of an instruction with skip capabilities, skip FF will be set. To understand a P + 2 refer to figure 193 and consider the timing below. Note that a skip (P + 2) adds 4 0 times to the RNI sequence. V014: N239: N226: N229: V014: KIOS/I09 (skip) is set. Do not set KOOO/OOl; input H23l. Advance P2 (+1), input H220. P2 - . PI, input H229. Clear KI08/l09 (skip); input H012. Set KOOO/OOl; input H23l. SKIP KIIS - r-. KIOS f-+ KI09 REQUEST BUS r--a. KOOO NOOO- ~ KOOI INITIATE RNI 4 ADVANCE HOl2 p2 p2~pl H307 ~. H014 I VOl4 BLOCK pT· K200 JUMP KI06 ~H220 H23J N239 N231 K200 KI20 (~H217 1 N220 INTERRUPT SYNC f-- N207 N222 N233 N224 N235 N226 f--- N237 Figure 193. Update P (+1, +2) Logic N239: Advance P2, input H220. N226: P2 - . Pl. next RNI. To understand how a jump is accomplished refer to figure 194 and consider the timing below: To accomplish a jump, the jump FF (Kl06/l07) must be set before V014 time. The instructions OO.X-03.X and 70.(4 to 6) have jump capabilities. For setting of jump FF refer to Logic Diagrams, page 1-3. Executing a jump will not increase the time required for the V014: Set KOOO/OOl, input H2ll. N211: S~t PI, input H230. P3. N230: Fl ..... Pl, input H221. P2 N22l: Pl~P2. BLOCK P K2o-0 K201 LI~ HOl2 HOl2 F ----'pl SET -pI START RNI VOl4 pi -----'p2 9 H221 :J H230 N211 N230 N221 N213 N232 N223 N225 p2 ----.p3 JUMP KI06 J080 KI07 K952 KI07 t N207 CLR N227 ~ H750 F Figure 194. Jump Logic 179 To accomplish a block advance P the block P FF (K200j201) must be set before V014 time. Block P will be set for: 1. Master clear. 2. Manual entry into P register. 3. Console switch DISABLE ADVANCE P pressed. 4. Instructions 06 and 07 . When block P sets, inputs to H231 and H2l1 (Logic Diagrams, page 2-47) will be disabled. Therefore, P + 1, and P + 2, cannot be accomplished. 1. P register - The address in P specifies location of instruction to be read in an RNI sequence. The address from P will always be a word address. 2. F register - The contents of F specify location of the operand for an ROP sequence J location of the address for an RADR sequence, or address at which a word is to be stored in an STO sequence. (Each sequence is discussed in detail in its own chapter in this manual.) 3. S2 (current address register) in block control - An address is provided for block control access to storage. Obtain Bus Priority NaSI: Set Kala/all (main control priority) if block control does not have priority. Input to H220 and advance P2 (Logic Diagrams, p. 2-47) except first time after a master clear, jump, etc. If K211 = 1, repeat preceding test at the next NOSl time because block control has priority" If K209= 1: Set KOI0/0ll (program or main control priority), gate PI to EXXS to T6XX to S bus. This places an address on the S bus. Gate EXXS to EXX7 to EXX6. This allows for generation of the proper module request. T655 (READ) is off. (This absence of a write signal is in fact a read signal to storage. ) NaSa: Input to H 117 . 4. M6XX - M7XX inverter rank - The BREAKPOINT Address Selector switch provides an address via this rank during a read / write storage operation. Breakpoint operations are discussed elsewhere. Either a character address or a word address may be provided by Fregister. P and M6XX-M7XXmay provide only a word address. S2 will always provide a character address. Addresses from these four sources are brought into the EXX8 inverter rank. The address is gated into EXX8 from the desired source by the WOXX gates. The complement of the storage address is then transmitted from EXXS to the relocation chassis via the T6XXtransmitter rank. Setting Kala/all indicates that main control has bus priority. Setting KOIO/OII enables (P) to the S bus (see figure 204for the flow path). The address on the S bus, now available to storage, is the address of the next instruction. (Note that if block control were using the bus system Kala/all would not be set until block control lost its priority and released the bus by clearing K20S/209. ) REQUEST STORAGE CD Initiate RNI, request the bus system Address (S) Bus The S bus (Logic Diagrams, page 1-19) provides a path for transmission of a storage address from main control to a storage module. DISABLE PARITY + @ Update P. CD Request storage. PARITY ERROR MOVE CYCLE I REQUEST BUS JOl2 Z356 KOOI MAIN CONTROL PRIORITY KOIO N005 KOII REGISTER SELECTED J335 KYBD BUS PRIORITY K34-:;-3~;P-...-L---, VI17 Figure 195. Bus Priority Logic N050 K212 Q40A FOR RNI, P REGISTER- POOl FOR RADR, ROP, STO _ _ _... .f00 I F REGISTER FOR INPUT/OUTPUT OPERATI~S201 CURRENT ADDRESS REG. S FOR READ/WRITE STORAGE • .. M601 BKPT SWITCHES POll FOil J981 S211 M611 P021 F021 S221 KYBD BUS PRIO J242 RNI J290 M621 J299-----....-.., SW+EN J395 J002 MCPRiO DISABLE SHOWN ARE BITS 0 TO 2 OF THE EXX8 INVERTER RANK AND THE S BUS TRANSMITTERS. Figure 196. Address Transmission Logic PARITY pARI I Y ERROR JOl2 REQUEST BUS KOOI BC PRIORITY K208 MOVE CYCLE I 2356 Vl17: 2R46A Set Kl16/117(storagerequest); transmit a request to the appropriate storage module. 1030B J335 RE G SEL K343 KYBD BUS MAIN CONTROL PRIORITY J973 (ENTER PAGE FILE) (EXEC) K351 ENTER J300 KYBD BUS PRIORITY 2M38A R/W MC PRIOR 2P54A BLOCK CONTROL PRIORITY I 2P54A L-...L..Jo"'----------, N050 F654 JOII K087 1---o-_J290 RNI J060 KYBD BUS PRIO J242 MAIN CONT PRIO KOIO BC BUS REQ KI51 K208 PF VI25 STORAGE REQUEST 2R85A 1 - - - + - - - - - - - - - - - + - - - 0 - - - + 1 K 116 2Q57 2Q50 K209 STORkGE REQUEST VI17 N051 BLOCK BLOCK CONTROL CONTRO PRIORITY 3 PRIORITY 2 L...().--+-~ K210 ~----o-~ K212 2R51B 2M50 2R50B NI52 --4-~ K211 N005 NI52 V317 K213 Figure 197. Storage Request Logic 181 While main control waits for the reply from storage, it will compare the breakpoint address with the address transmitted to storage for equality . NOSO: Input to HIlS. VIIS: Set K012/013 (request lockout) and K004/00S (word address mode). Input H116. V116: Test for breakpoint comparison if BPI is selected and K136/137 is clear. (If breakpoint stop were selected and a stop occurred on previous RNI, K136/137 would now set. ) To review what has occurred so far fill in the blanks: CD------------ 1. CD--------------------CD--------------------------------------2. What is on the bus system at this time? 3. What is the state of main control at this time? K012/013 (enable data bus) is set by VIIS. The purpose of this flip-flop is to break the inputs to HIlS while K2I2/2I3 (priority delay) breaks the input to HII7, thus preventing multiple outputs from the control delays. They are fed by NOSO, a raw clock which comes up every other phase time. K004/00S (word address mode) is set unconditionally during RNI. It is used during ROP and STO and will be discussed at that time. K134/13S (breakpoint stop) will set if the address on the S bus matches the breakpoint address, BPI is selected, and breakpoint lockout is not set. K136/137 (breakpoint lockout) being clear indicates that this is not the first storage reference after a breakpoint stop. NOTE: !fit is the first storage reference after a breakpoint stop, K134/13S (breakpoint stop FF) will be prevented from setting to allow the computer to continue with the program. To say it another way, K134/13S will not be set during the comparison to prevent stopping the second consecutive time on the same address. Main control then waits for the selected storage module to signal a reply. The waiting time varies with the status of the memory module. N050 4. Considering major timing of the RNI sequence, what should occur next? REPLY FROM STORAGE Refer to figure 188 to reinforce your concept of how the logic accomplished the previous steps of RNI. 1 CD Initiate RNI, request the bus system CD Update p. CD Request storage. o BREAKPOINT COMPARISON BREAKPOI NT LOCK OUT Reply from storage. E279 JI36 NO 50 J090 BREAKPOINT STO KII7 STORAGE REQUENCE BREAKPOINT LOCKOUT 1----(>-...... KI36 VI15 VII6 KI35 ENABLE DATA BUS iKOl3 1 CLEAR DATA BUS REGISTER N400 Figure 198. Breakpoint Logic lS2 EVE N TIM E GO KI37 STORAGE SUPPLY OR PSEUDO REPLY IP56A R5551 IQ56C 1 ·JJ06S I I IQ52 ,. H060 IQ53A A IQ55A H061 V061 ~ 10498 C493 H062 B H064 C H066 D H06S E -.. -.. j IQ56B N071: Figure 199. Resync Logic Main control was hung up until the reply signal came from storage. The S bus held the contents of P register, waiting for pickup by the storage module. The processor must wait for the reply signal from the storage module. The reply signal indicate s that storage is processing the request and will have the information on the data bus after a predictable delay. (This delay time can be predicted because it is known that when the storage module sends the reply signal it is also referencing the location desired, and the time for a memory cycle is known.) R555 (storage reply) ~receiver) V061 (resynced storage reply) Reply signal R55S indicates that the storage module is processing the request and after access time the instruction will be available on the data bus. A reply from anyone of four storage modules is received by RSS5. The asynchronous reply (logical 1) is fed to H060 along with a timing pulse from N07!. H060/62/64/66/68 and H061 convert the reply to alogic signal which produces a I output from V061 during an odd clock phase. This output is 62. S nsec long and is not repeated regardless of duration of input. The timing pulse is produced by C493, an independently tuned clock amplifier. This amplifier is fed by the clock pyramid but must be individually tuned so that an output from V061 occurs exactly at odd time. The procedure for tuning this amplifier is presented in the 3300 Printed Circuits Manual. The resynchronized storage reply signals the main timing chain, the manual timing chain, or the block control timing chain that the storage module is processing the request and will accept a word during a write operation, or that the storage module will place a word on the data bus during a read operation. VOOO-VOOS: Clear KOOO/OOI (request bus) gives the storage module access time to store the information from the data bus. The timing from VOOO to VOOS is called "time -out for aceess". Its purpose is to permit storage to reference an address and place a word on the data bus. MAIN CONTROL HAS THE BuS Figure 200. Access Time One of the first things to occur after the reply signal has been received by the processor is the clearing of request bus FF. Clearing request FF neither clears nor releases the bus system. If main control needs the bus system, it requests it via KOOO/OOI (request bus FF). If the bus system is not busy main control is given bus priority and sends a request for storage. Storage acknowledges the request by signaling that the request has been received and is being processed. However, the request for storage must be completely processed before storage can transmit the requested information. Essentially one might say that main control needs the bus, requests it, and storage starts processing the request. At that point the bus request --not the bus system--will be released. Clearing KOOO/OOI (request bus) allows block control the possibility of requesting the bus now. It is important to note that releasing the bus request is not the same as releaSing the bus system. Main control still needs the bus system to get the information that is coming from the storage module, thus the bus system itself has not been released. After the access time-out and after main control has received the information it requested from storage, then the bus system will be released. 183 RE LEASE BUS SYSTEM During an RNI sequence, if the storage address matches the breakpoint address, breakpoint stop FF (K134/135) is set. Kl35 is ANDed with V003 to clear the go FF and stop the computer. K135 also holds V007 to 0, disabling the main timing chain. CD ENABLE DATA BUS TO F REGISTER Initiate RNI, request the bus system o Update P. CD Request storage. o o Reply from storage. Refer to figure 188 and review all previous steps. Release bus system. K086 STO Figure 20l. Relea8e Bus System V006: Input to H201 (Logic Diagrams, page 2-29 if J138 = 1. Test for powerfail (see chapter 11). V007, NOOS: Clear KOIO/OII (main control priority), FI, K212/213 (priority delay), K116/117 (storage request), and K012/013 (request lockout); input H200. NOSO: Clear K122/123 (initiate storage request). Operations depending on V007 will not occur if the breakpoint stop condition exists. After access time has ela sed and as the information from storage is taken, from the bus system, main control will release the bus system. Releasing the bus system as soon as possible is important because block control and main control share the same bus system. If the othe r control area needs the bus system, the sooner it is released the sooner it L:dll oc Ubt::U. Further discussiun of thi6 bus-sharing operation is supplied in chapter 15. Breakpoint Stop When BPI is selected the breakpoint address is continually compared to the storage address on the S bus. o o o o o o Initiate RNI, Request the Bus System Update P. Request storage. Reply from storage. Release bus system. Enable the instruction to the F register V007: Set K572/S73 (wait function). (N209) V008: Set K570/571 (F1 F2 enable) (N208) EXX2 to F1 These two flip-flops are used in the arithmetic section of the processor and will be discussed in chapter 12. The output of N208 and N209 setting K570/571 (copy code FF) and KS72/S73 (wait function FF) occurs during each RNI sequence. The names of the flip-flops describe their functions. Near the end of RNI, after the instruction has been placed in F 1 register, the upper nine bits of Flare duplicated in F2 in the standard arithmetic section of the processor. Since the arithmetic section can run independently during some arithmetic operations, F2 register provides the only source for the function translations. The function translations are needed to provide enables and permit gating during, for example, the mUltiply and divide operations. The data bus to receivers to EXX2 is a static enable. See figure 204 for the block diagram flow. See figure 202 for the simplified logic. Note on figure 204 that EXX2 10 iii tItt! flU'vv path fi'UW btOidgt:: to llHiln control as well as to the standard arithmetic section. EXX2 could actually be considered the first branching point for the flow. In this case EXX2 feeds F register. Note that EXX2 a] so feeds the OB register. CLR --"" " "" / FI ~ ,,-----------------------_/ ,,- ------ - -- WAIT FUNCTION K572 ODD TIME 1-2 VI09 INITIATE FI- F 2 t---...()...-.... H 518 K570 K571 K573 I~N=T=E=R...;"..R-,.U'='P=T----"S""""y""""'N"""C V 5 18 V519 TRAP SYNC POWERFA1L 1-35 N55N554 V520 IIIAt-N CONTROL Circuitry shown below the dotted line is discussed in greater detail in chapter 12. Figure 202. OAT. BUS F1 to F2 Logic. R E x X X 2 -TO TO Xl TO OIR VIA 17 Figure 203. Instruction Data Path STORAGE Figure 204. Data Flow for RNI. TR 6 lilTS CPU~P ADOII BITS 011-10 z, Z£ • INTERRUPT IUS 185 Transfer to DB register occurs during all RNI sequences but is only used on the second RNI sequence for the 71 to 76 instructions. These instructions are 48 bits long and occupy two sequential memory addresses. Reading 71 to 76 instructions from memory follows this sequence during RNI: 1. First half of the 71 to 76 instruction is placed in F register and also in DB register. 2. The instruction in F register is translated and another RNI sequence is initiated. 3. P register is advanced and, during the second RNI sequence, the second half of the instruction word is read and placed in DB register. (The enable from storage to F register is not present during the sec0nd RNI of 71 to 76 instructions.) These are the reasons for transfer to DB register during the RNI sequence. The execution of these 48bit instructions will be discussed in chapter 15. DECODE INSTRUCTION o o Initiate RNI, request the bus system. Update P. CD Request storage. ® Reply from storage. o Interrupt Recognition An interrupt signal, generated by an external equipment or the control section of the computer, is a request for special action to handle a special condition which has occurred. The main program is suspended temporarily while a special routine of instructions is performed. The interrupt request may be acknowledged and an interrupt routine initiated during RNI or the RADR sequences. An interrupt may be sensed only at NOlO time of the RNI sequence. When arithmetic section is not busy NOlO time will automatically come up only once in the cycle 1 ~ time after an RNI pulse enters HOlO. This would mean that an interrupt could be sensed only during the one time NOlO was up. K008j009 remedies this situation. Suppose the RNI pulse enters HOlO; 1 ~ time later it senses for an interrupt and there is none. The RNI pulse continues down the timing chain and sets Kl12/ll3 but cannot enter HllO because the arithmetic section is busy. Now, assume an interrupt Signal occurs after the RNI pulse has reached this point. K008j009 permits the computer to accomplish an interrupt sequence while waiting for arithmetic to complete an operation. If an interrupt is active NOlO will set K120j 121 (interrupt sync, see chapter 11) which will allow the interrupt to be processed. K008j009 would not have been set at V009 time if the arithmetic section were not busy, therefore NOlOwould have tested for an interrupt active only once. Figure 206 shows a flow chart of interrupt recognition. END RNI Release bus system. ® Enable the instruction to the F register. G) Decode instruction. V009: Set K008/009 (sense interrupt during arithmetic) if arithmetic section is busy. VOlO, NOlO: Test for an interrupt condition. VOll: Input to H080. 1(01!l6 Sfi) I I~TE"RUPT o Initiate RNI, request the bus system. CD Update P. CD Request storage. o Reply from storage. @ Release bus system. ~ ,SYNC l"'f<; I ~ Figure 205. Decode Instruction and Sense Interrupt IS6 o ~ F,n~hlp thp inf:1trlldion to thp 'F rpgigtpr, 0) Decode instruction. ®End RNI. Is arithmetic section busy? Yes V009 sets K008/009 to allow constant sample for interrupt actives (NOlO) until arithmetic section is bus • NOlO samples for interrupt active. Clear K008/009 if arithmetic goes 'iii'SY. Yes Process the interrupt via program Yes Continue sequence. Figure 206. Interrupt Recognition The arithmetic section would also be started if address modification were necessary. Address modification is called FADR (form address) and is discussed in chapter 12. Figure 207. End RNI RAOR NEXT ROP NEXT V080: Progress to next storage reference according to (Fl). NOTE: V080 could start the arithmetic section if necessary -- for example, RNI to RNI progressions such as shift or enter operations. STO NEXT V080 may initiate a trap sequence if the instruction just re ad up is trans lated as floating point, double precis ion multiply or divide, or a BCD instruction (55 to 70), and the respective option is not present in the system. The trap sequence does not execute these instructions. It performs an operation similar to return jump to a software routine that simulates the execution of the instruction. The trap sequence is discussed in chapter 14. SUMMARY This completes your excursion through the RNI sequence. So that you can see the forest in spite of the trees let's review the four major functions of RNI. 1. Read an instruction word from storage and place the instruction in F register. 2. Insure proper updating of P register. 3. Sense for all types of interrupts. 4. Start/ stop. 187 e AD NEX, INSTRUCTION RNI REVIEW Scan the by-now-familiar RNI sequence diagram and fill in the blanks without referring back to the text. INITIATE A STORAGE REFERENCE OBTAIN BUS USAGE CD------------------Q)----------------------- CD--------------------CD-------------------- CD------------------------0-------------------- CD--------------------CD------------------- STORAGE READ CONTENTS OF ADORES SIGNED BY (S) ARE AD INlO Z ez)", 9JS+EXX2+OBR EXX2 GATED TO Now refer to figure 208, a different representation of RNI sequence. We will supplement this figure in the chapters on RADR, ROP, and STO so that you can visualize the areas unique to each sequence and common to all. The next couple of pages provide a handy list of problems to fill your leisure hours. lse F Figure 208. RNI Big Picture RNI Worksheet 1. Define the purpose and application of block P FF, (K200/201) . 11. Would less time be required to execute a selective jump instruction if the switch were set than if it were not set? ------------------ 2. Why must the PI to P2 transfer always follow gating of F to P? 12. At best, the selective jump instruction requires ~times) usec, to accomplish its execution. ------ 13. Is the arithmetic section used for the ]3b =I 0 decision of the index jump instruction? 3. During the RNI sequence at address 15000, what ranks of inverters, transmitters, and receivers provide a path from Z register to F register? a. Storage Z register b. Transmitters c. Receivers d. Inverters e. Main control 14. Does the increment / decrement of the 02. X instruction lengthen its execution time? 15. At best, the index jump instruction requires ______ ~times, usec, to accomplish its execution. 16. Does execution of a 03.5XXXXX require starting of the arithmetic section to accomplish its exe cution? 4. At best, how much time is necessary for an RNI sequence from initiation (VO 14) to end RNI (V080)? ~ times) usec. 17. Does the 03.5 XXXXX instruction take more time for execution than the 03.2 XXXX instruction? 5. What two factors can delay the amount of time it takes to complete an RNI sequence? a. 18. At best, the 03. X instruction requires ----~ times, usec, to be executed. ------ b. 6. What would the console indication be if a reply signal didn It come back to the processor? 7. List as many items as you can that could prevent the reply signal from returning and entering HOOO? a. b. c. d. e. 8. What is the purpose for releasing the bus system at V007 time rather than at the end of RNI? 9. After executing a 00. 015000 instruction located in memory at location 10077, what are the contents of the following registers? (F) = (P) = _ _ _ _ __ 10. What registers, if any, will instruction 00.015000 affect besides P and F? The following problems are imaginary malfunctions in the RNI sequence. Study each carefully and, after analyzing the indications, list areas that should be checked. Use LogicDiagrams, 3200CommandTiming Charts, and this manual for references. NOTE: Consider each of the problems separately. 19. Indications: a. F register does not get cleared of the old instruction. b. Z register in the storage module shows that a new instruction was read out of storage. c. The following flip-flops remain set during the RNI sequence: KOOO/OOI (request bus) K080/081 (RNI); RNIconsole indicator stays lit K002/003 RNI lockout FF remains set KOIO/Oll (main control priority) K212/213 (priority 3) Kl16/l17 (storage request) K122/l23 (initiate storage request) K012/0l3 (enable data bus) There are at least four possible circuits that could give these indications. Ust each one with the reason why it could be at fault. 189 Ao _ _ _ _ _ _ _ _ because _ _ _ _ _ __ B. - - - - - - - - - because --------- C. __________ because ___________ D. ----------- because ----------- CLUES: Did you request storage? Did you get a reply back from storage? If the reply did get back, did the processor recognize it? 20. Indications: a. F register does not get cleared of the old instruction. b. Z register in storage shows that the new instruction was read out. c. The following flip-flops remain set during the RNI sequence: K080/081 (RNI) K002/003 (RNI lockout) KOIO/OII (main control priority) K212/213 (priority delay) K116/117 (storage request) K122/123 (initiate storage request) K012/013 (enable data bus) d. KOOO/OOI (request bus) is clear. The area of trouble that would give these indications must be between H and V ----- CLUES: Was a storage request initiated? Did a reply come back from storage? Did the processor acknowledge the reply? If the reply did get back and the processor acknow ledged it, how far did it get? 21. Indications: a o F register receives the new instruction e be The following flip-flops are clear: KOIO/OII (main control priority) K012/013 (storage request lockout) K122/123 (initiate storage request) K116/117 (storage request) K212/213 (priority 3) c. K002/003 (RNI lockout) is set. The area of trouble must be from H V to ---- CLUE: Storage was requested and the reply Signal must have come back with the information or else F would not have received the new instruction. 220 Indications: a o RNI FF stays set. be The old instruction stays in F register. Co Z register in storage contains the data from the last storage reference. de The following flip-flops stay set during RNI sequence: KOOO/OOI (request bus) K002/003 (RNI lockout) KOIO/OII (main control priority) K122/123 (initiate storage request) K116/117 (storage request) K212/213 (priority 3) K012/013 (storage request lockout) The area of trouble must be from H B . (No clues for this problem.) to -~-- NOTE: The times given for these answers were figured from the simplified logic page included in this chapter. If your answer does not agree exactly with the answer given here, consider the time for transmitter and receiver cards, flip-flop settings and clearings, etc. 190 Some instructions are executed during RNI to RNI. A few of these are shown on this page with their flow charts. Read the flow charts and trace the instructions throughonthelogicdiagrams, using the 3300Command Timing Charts as a guide. 00.0 Unconditional stop and jump to "m" upon restart: RNI and decode Set SE LECT JUMP and clear go Manual NOTE: This instruction is executed regardless of the state of the arithmetic section. J-------{~-___I 00.1 to 00.6 Selective jump: Adv P RNI and decode NOTE: This instruction is executed regardless of the state of the arithmetic section. RNI Set P 02 Index jump: Adv P NOTE: This instruction will not execute unless the arithmetic section is busy. Notice that the arithmetic operationoccurs parallel to RNI. RNI Set P Yes ~ANDGate Arith busy Sum to Bh 03 A jump· -- Arith busy RNI and decode N0 - (A) + - ... (Q) .. \ ...- Adv P Condition met? Yes Sense adder or (A) or (A) and (Q) 1 l RNI ...- Set P NOTE: This instruction will n ot execute unless the arithmetic section is busy. The arithmetic operatIOn must occur before RNI may be initiated. 191 SELF-EVALUATION QUIZ ON CHAPTER 7 TRUE OR FALSE: 1. P register may be updated only during RNI. 2. Updating P register by 2 adds 4 tion execution. ~ 9. The CPU sends an absolute address directly to storage if the system is in Executive mode and the Multiprogramming module is present. 10. The function of the Breakpoint Lockout FF is to insure that a restart may be accomplished after a breakpoint stop. times to instruc- 3. Setting KOOO/001 gives main control priority of the bus system. 4. The block advance P FF is set by a master clear to insure that the first RNI is at the address in P . 5. The execution of ajump adds 4 ~ times to instructions for which the jump is optional. 11. The reply from storage starts the main timing chain and indicates in all cases that storage has acknowledged the storage request. 12. F1 to F2 transfer is necessary because the Arithmetic Section can run independently. TRUE OR FALSE OR FILL IN BLANKS 13. Main control receives Data from storage during RNI. 6. The P3 register holds the last jump address (Program State). 7. If the system is in Non-executive mode, the upper 3 bits of the S bus, as sensed at the output of the T cards, will be _ _ _ _ __ 15. Interrupt is sensed every VOIO time if the RNI FF is set. The rank of inverters has 2 inputs to the T6XX cards so that to ______ address conversion may be accomplished. &ore yourself: Missed none or one? Excellent! Missed two? Below average Missed three or more? Too bad--you've failed! 14. The transfer of EXX2 to Fl occurs for every RNI. 8. CHAPTER 8 READ ADDRESS SEQUENCE DESCRIPTION The read address (RADR) sequence is used when indirect addressing, used only with instructions that use execution address m, is required. After an RNI (and possibly indexing), an RADR sequence is used to procure the execution address of an instruction. Several levels (or steps) of indirect addressing may be used to reach the execution address. Indirect addressing is specified for applicable instructions when bit 17 is a 1. Figure 209 shows the indirect addressing routine for the 3300. Figure 210 is a system block diagram. The heavy black line originating at Fregister indicates the transfer path for the lower 15 bits ofthe address. The upper 3 bits of the address will be O's if the system is non executive or in monitor state. The upper 3 bits of the address will be (ISR) if in program state. Originating at Z register of module 0 represents transfer path for data from storage. Steps in the RADR sequence are: 1. At the end of RNI request bus priority. 2. Obtain bus priority. 3. Transmit aread signal. Transmit storage address 4. Transmit storage request. Wait for selected storage module to reply. (Waiting time varies depending on memory module status.) 5. Receive and resync storage reply; use this signal to start main timing chain. 6. Clear lower 18 bits of F and clear DB register. 7. Gate data from the bus to F and DB register. 8. Test for interrupt. 193 9. End RADR. Set the correct storage sequence control FF to execute the neA"i appropriate sequence. Ifanother step of indirect addressing is required, RADR remains set and another RADR sequence is executed. End of RNI RADR is nearly identical to RNI. The flow of information is identical. The only differences are that the storage address comes from F register instead of P, and informa tion from storage goe s to only the lower 18 bits of F instead of all of F • Original instruction may contain a and/or b. 1 No This operation, FADR (form address), is covered in chapter 10. Add the contents of to m to obtain M. a = 1 for indirect addressing b = index designator m = unmodified execution address Bh No This operation is handled by RADR sequence. Yes Go to address M; acquire Execute the instruction using address M. new terms a, b, * and mo *The b designator is not changed on a 47 or 54 instruction. DETAILED TIMING To read an address from storage, several operations must occur: 1. Request bus system. (F lower 15 bits is the address to be referenced. ) 2. Obtain bus priority. 3. Transmit address in the lower 15 bits of F to storage via the S bus. 4. Do not transmit write signal. (Absence of a write signal is a read signal.) 5. Transmit storage request. 6. Do not test for breakpoint stop. 7. Wait and resync reply from storage. b. Clear request bus. 9. Time out access to allow storage to read and place word on data bus. 191 Yes Figure 209. Indirect Addressing Routine 10. 11. 12. 13. Sense for interrupt Clear "F" lower Gate data bus to "F" lower Test for stop (cycle step mode, or instruction step and end of instruction, or STOP pressed and end of instruction) . 14. Advance storage reference controls to RNI + RADR + Rap + STO. 15. Progress to next storage reference if not stop. NOTE: The lower 18 bits of F are cleared and EXX2 is gated to these bits for all instructions requiring indirect addressing exr.ept 47 and 54. For thcDC LI,VU instructions only, bits 0-14 and 17 are cleared and replaced with respective bits from memory. BLOCK CONTROL CHANNEL REQUEST MAIM CONTROL If; 4 ~ . 6 7 CPU~P ADDR lilTS 09-10 Z. • Z£ 1NTERIIUPT IUS Figure 210. Data Flow for RADR 195 F REGISTER 110 CYCLE BK PT SWITCHES [ 1 l I STORAGE REQUEST RIGHT OR LEFT ------- ---+ r-- V007 N005 f- J280 MC ENABLE DATA BUS KOl2 N40~ KOl3 RE LEASE BUS SYSTEM STORAGE REQUEST KII6 ~ I ~ CLR.II F JI ""H ~ 201 N201 N203 KI34 JI44 RNI +RADR KII7 N205 MAIN CONTROL PRIORITY r KOIO N207 N209 JIOO (RNI + ~ KO" PRIORITY DELAY K212 KOSO (RNI) , 6 +F) (Me) Note: N208 and N209 will not emit a pulse this time, leaving the original function or upper 6 bits of F1 the same. --. K213 Figure 219. F Register Enables V008: EXX2 to the lower 18 bits of Fl; EXX2 to DB register; test interrupt be considered the first branching point for data flow. In this case EXX2 feeds F register. You will note EXX2 feeding DB register also, but the transfer is not used for this sequence 0 lSTO) K086 ~ Figure 220. V008 Time DATA BUS The data bus to receivers to EXX2 path is maintained by a static enable. Note on the block diagram that EXX2 is in the flow path from storage to main control as well as to standard arithmetic. EXX2 could actually R 5 X X - E X X ~ 2 F Figure 221. RADR Data Path 201 VA'M CONTROL TO xl TO DaR VIA 11 Figure 222. Data Transmission for RADR REDECODE INSTRUCTION 1 READ ADDRESS SEQUENCE CD Start RADR, o CV o G) o request bus system V009: Input to H082, test stop. (RAORl "'3 V008: ~ r~ _ H082 Figure 223. End RADR Time Reply from storage. Redecode time is less than decode time from RNI because function translation is static; the only new bit that can affect the translators is bit 17. Bit 17 is translated rapidly (fewer inverters) and will be translated by V082 time. Re1f~Ase END RADR Request storage. hm: system. Enable data bus to lower F register a Redecode instruction. o CD o o Start RADR, request bus system Request storage. o o Redecode instruction. EndRADR Reply from storage. Release bus system. CD Enable data bus to lower F register. V082: Progress to the next storage reference cycle according to the (Fl). V082 will set Kl12/113 (no index) \vhich \vill allow another sequence to be initiated o Which sequence is initiated depends on which sequence control FF is set. ABNORMAL INT. JI42 RADR FF will not be cleared + INTE R RUPT SYNC. if another RADR sequence + is required. After RADR TRAP sequence the sequence progression can occur in any of the following ways: (RADR) K083 V082 NEXT MEMORY REFERENCE RNI RNI F50(l---+-~~ K080 NEXT K081 RADR RADR to RADR if another level of indirect addressing is required; RADR to RNI if the instruction was initially a 01.4; RADR to ROP or RADR to STO for all instructions which use ROP + sro and can use RADR. K082 K083 RADR F501 NEXT ROP ROP F400 NEXT -+-~aI REVIEW You should be able to fill in the blanks without referring back to the text. 1 0----------------------- K084 K085 STO F402 NEXT --~aI K086 K087 Figure 224. Sequence Controls Advance GJ----------------------0----------------------0---------0--------0----------------------G)----------------------203 SELF-EVALUATION QUIZ ON CHAPTER 8 E NE)(~ 6B REA AD INSTRUCTION ADDRESS RADR RNI TRUE OR FALSE: 1. RADR sequence is available for all instructions in the 3300 repertoire. INITIATE A STORAGE 2. RADR sequence may be entered only from RNI sequence. REFERENCE 3. If the system is in Program state, the upper three bits of address are supplied by ISR. 4. For a 47 or 54 instruction, RADR does not modify bits 15 and 16 of F. 5. An illegal write signal may never occur during RADR. OBTAIN BUS USAGE 6. Interrupts are not sensed during RADR at VOI0 time. 7. During RADR, storage places only the lower 18 bits of the selected address on the data bus. STORAGE READ CONTENTS OF ADORES [ESIGNED BY (51 ARE READ INTO Z 8. If indexing and RADR are both specified by the instruction in F, indexing will occur first. 9. Indexing will never occur after RADR. (Z). BUS+EXX2+0BR 10. More than one level of indirect addressing is permissible with the 3300. EXX2 GATED TO F EXX2 GATED 10 FL Notice the similarity between RNI and RADR. Figure 225. RADR Big Picture ~U4 .Score yourself: You should not have missed a single one. If you missed one, you probably were careless. If you missed two or more, you'd better study the chapter again. CHAPTER 9 READ OPERAND SEQUENCE INTRODUCTION During the read operand sequence the lower 15 bits of address is obtained from Flower 15 while the upper 3 bits may be obtained from OSR, ISR, or they maybe Os depending on the Mode and State of the computer. In many cases the lower 15 bits of address may be modified by indexing. For more information about specific instructions refer to the 3300 Reference Manual. The steps in ROP sequence are: 1. At the end of RNI or RADR or a previous ROP sequence, start ROP and request ,bus priority. 2. Obtain bus priority. 3. Transmit a READ signal and transmit the storage address via the CPU S bus. 4. Transmit a storage request. 5. Test breakpoint. Set Breakpoint Stop if BPO is selected and the breakpoint address equals the operand address. (Main control waits for the selected storage module to reply. ) 6. Receive and resynchronize a storage reply; use this signal to start the main timing chain. 7. Stop if Breakpoint Stop is set. S. Clear the DBR. 9. Gate data from the bus to the DBR. 10. Start arithmetic section. Arithmetic section then performs the operation specified by F code. 11. End ROP. Set the correct storage sequence control FF to execute the appropriate sequence next. If another ROP is necessary, as after the first cycle of a 4S-bit precision load, ROP remains set and another ROP sequence is performed. 205 Figure 226 is a System Block Diagram. Note the heavy black line originating at the F register which illustrates the transfer path for the address to storage. Also note the heavy dashed line originating at the Z register of the Storage module. This line which terminates at the A register depicts the transfer path for data if we were doing a Load A instruction. Figure 227 is a simplified Address Flow diagram for the 3300 if relocation is to take place. DETAILED TIMING Rap is used for load, add, subtract, multiply, and divide instructions. To read an operand from storage, several steps must occur: 1. Request Bus System (KOOO/OOl) (F Lower holds address of the operand.) 2. Obtain Bus Priority (KOI0/0ll). 3. Transmit Address in FLower on S Bus to the Mul tiprogramming module. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Do not transmit Write signal (T655 = 0). Transmit Storage Request (Kl16/117). Test for breakpoint stop if BPO (K134/135). Wait and resync reply from storage (V061). Clear request bus (KOOO/OOI by NOOO). Time out access to allow storage to read and place word on data bus. Clear DB register (V007). Stop if BPO. Gate data bus to DB register (bus to EXX2 to DB register) • Set start arith 2. Test for stop (cycle step mode 0r instruction step and end of instruction or STOP pressed and end of instruction) . Advance storage reference controls to RNI + Rap + STO. Progress to next storage reference if not stop. MAIN CONTROL BASIC ARITHMETIC STORAGE Figure 226. Data and Address Flow F REGISTER I/O CYCLE BK PT SWITCHES DPROG. STATE>}[( RNI+ RAOR)+ {ROP+STO+BOP OP. CY.HO=--=SR=--==S""'E"....L=EC?:s::= + (STO 8RTJ)] EXECUTIVE + MONITOR [(RNI+RADR)+{ST08RTJ)+ (ROP+STO+ BOP OP. CY.)(OSR SELECTED)] ~=:::::.-:;===I:;I,~~=09;-08~, '"======::;======_oq:::;, INPUT TO RELOCATION PAGE FILE 23 00 12 II 001 000 Ze Zo 176'--_ _, -_ _---1..._ _--,.._ _- - 1 177 CPU ADOR. ~ I~--+---- ADDER (NO END AROUND CARRY) t ~~rr----"------, I ~ 13 '-----v-----" 100908 09 OUTPUT FROM RELOCATION , I TO MODULE SELECT SWITCHES "----STORAGE REQUEST RIGHT OR LEFT STORAGE S BUS ------ }[< RNI+ RADRl+ (ROP+STO+BDP OP. CY.)(O~":'SR~S:-::E'"""L=EC?!o:= + (STO S RTJ1] EXECUTIVE + MONITOR [(RNI+RADR)+(STOSRTJ)+ (ROP+STO+ BOP OP. CY.)(OSR SELECTED)] ==::::::.-:;.===11;-,~~=09~~~8======::;:======oq:;, INPUT TO RELOCATION PAGE FILE 23 00 12 11 000 001 z. zo 176 L-----r----L.----.---~ 177 I~--+_--- , '-----,~j I ~ 13 ADDER (NO END AROUND CARRY) O~ OUTPUT FROM RELOCATION 10 0908 ~~J.,~======~======~, I TO MODULE SELECT SWITCHES L COO::'OATE -> ADDRESS ~-----~> STORAGE S BUS STORAGE REQUEST RIGHT OR LEFT Figure 245. Address Flow 221 11. Clear request bus (KOOO/OOI). 12. Time out access to allow storage module to store word. 13. Stop if BPO. 14. Advance storage reference controls to RNI + STO. 15. Progress to next storage reference if not stop. Figure 246 graphically shows the STO sequence of events. During STO main control must place an operand on the data bus, making it available to storage. Main control will start the arithmetic section about the same time as storage is requested. The arithmetic section will move the contents of A or Q register to X register from where it will be enabled to 17 to EXX2 and then gated to DB register. To store an operand in core, several steps must occur: 1. Request bus system (KOOO/OOl); set start arith. Lower F holds address of operand. 2. Obtain bus priority (KOIO/OII). 3. Transmit address from lower F on S bus to storage. 4. Transmit write signal and write designators (T655 = 1). 5. Transmit storage request (KI16/117). 6. Enable DB register to bus. 7. Test for breakpoint stop if BPO (KI34/135); drop write signal if breakpoint stop. 8. Clear DB register. 9. GateEXX2 to DB register. 17 is enabledtoEXX2. 10. Wait and resync reply from storage (V061). Storage reply Bus priority granted From RNI + RADR +ROP +STO sequence --. Request bus priority ~l-~ ~ Start arithmetic if replace F register to S bus via EXX8 ~ Transmit storage request .--b- Clear bus request - 1 " Transmit write signal and designators Test for ....... BPO stop and ...... illegal address Drop write if BPO or illegal address ~, Enable DB register to bus f-+ Clear DB ~ EXX2-+DB register register IXX7-+EXX2 BPO stop - Access time-out Release bus, drop request for storage and write Step + stop - Advance sequence controls FL + I-+F L first cycle of double precision Initiate next storage cycle (RNI + STO) as determined by the instruction in F Figure 246. Flow Chart of STO Sequence G) Start store (STO); request bus system. i CD I Request storage; start arithmetic. G) Word to bus. }iguJ:tJ :::;'i I. i'viajul Timing ui STO Sequence er> Reply from storage. CD Release bus system. o 222 End STO. START STO; REQUEST BUS SYSTEM o Start store (STO); request bus system. V380/V080 (end of RNI) or V082 (end of RADR) or V084 (end of ROP): Set K086/087 (STO); clear K084/ 085 (ROP); set Kl12/113 (RNI Index). Note that the end of any previous sequence could start STO. VI09: Input to HII0 V210: Set KOOO/OOI (request bus); clear Kl12/113 input to HI05. If no address modification is needed, Kl12/ll3 (no index) will set at the end of RNIor RADR or for the two replace instructions at the end of ROP. Notice that STO is the third sequence which requires V210 to set request bus FF. What were the other two sequences? _________________________________ What term did the one remaining sequence, STO, require to set KOOO/OOI (request bus)? ____________ Input to HllO cannot be made if the arithmetic section is busy from a previous instruction. VI09 ARITH BUSY K572 WAIT FUNCTION REQUEST BUS KO 0 0 (VO BO)RNI-+STO (VOB2) RADR.STO (VOB4) ROP--' STO 1-----4--CJ-Ia.! KII3 KOOI {V080)RNI ---'STO {VOS2)RADR ~STO (V084)ROP ~STO H 106 VI05 H 126 Figure 248. STO Sequence Initiation REQUEST STORAGE AND START ARITHMETIC Start Arithmetic N05l: 1 o STORE OPERAND SEQUENCE SJ Start store (STO); request bus system. CD Request storage; start arithmetic. Set KOIO/Oll (p. l-3*)if K208 =1. If K209 =1, repeat this test at next N05l time: Whenpriority is granted (indicated by setting of K010/0Il) gate Fl to EXX8 to T6XX to S bus; gate EXX8 to EXX7 to EXX6; T655 (read) is on; transmit write designators of 011112. V126: Set KI04/105; start arith 2. The arithmet1c, once started, will transfer the contents of A register or Q register to X register. Main control can cause the enables for X to 17 to EXX2. * Logic Diagrams 223 ODD RAW CL.OCK MAIN CONTROL PRIORITY I~EQUEST BUS K 000/001 r-----------------------------l KOIO I Arithmetic timing will be covered in chapter 12. KOII K208 Z356 JOl2 V2'IO ~ crq. ~ "i CD t...:l ~ MAIN CONTROL MOVE CYCLE I PARITY ERROR PRIORITY + PARITY I VI05 VI06 ;0 > ~. c+ ::T S CD DISABLED START ARITH 2 KI04 34+ 10.1 F503 ---r~ STO J087 VI26 c+ o· VI09 ARITH BUSY K572 WAIT FUNCTION I ~ "i :;::$ r:n J-3 V511 __ II r:n 0 I~X{A-X) I VI04 c+ c+ STORE USING 0 a ,----------------I A2 V510 0 START V521 ARITH I KIOO WAIT FUNCTION STORE USING A .K573 --~ r------- '--O--I"HI-O ----I ' I~~-_OJ ~------~ IHI- I ----, ARITHMETIC ~------, 'r+i HI I I~~~J SECTION 5 ----I I I I~~~J 6 " TIMES t I I I I L _________________________________________________________________ JI ISII+O! CIR+S( INT NA STAT' ID t TO Fl. SUi lOP ADO C~U~P ADDR BITS 09-10 Z. • Z£ IIITEIt.UI'T BUS ST':' _ Figure 250. Address Transmission for STO Request Storage N050: Input to Hl17; at this time V126 is setting K104/ 105 (start arith 2). Vl17: Set K212/213 (Priority 2). Set Kl16/117 (storage request). Transmit a request to the Multiprogramming module. What has happened up to this point of the STO sequence? 1. Arithmetic --section has been started and is gating (A) to X register. 2. A storage request has been transmitted along with a write signal and the write designators to the storage module. 3. Main control is comparing the breakpoint address with that on the S bus for possible SPO stop. 4. The address on S bus is being compared with the STORAGE PROTECT switches; checking for illegal write. The Multiprogramming module will also check for illegal write. 225 STORAGE REQUEST J217 J214 EVEN RAW CLOCK ODD RAW CLOCK MAIN CONTROL PRIORITY REQUEST BUS STORAGE REQUEST KI16 KOOO KI17 KOOI K212 K208 BLOCK CONTROL PRIORITY Z356 MOVE CYCLE I JOl2 PARITY ERROR + PARITY DISABLED Figure 251. Storage Request on STO Write Signal and Illegal Write During a storage reference in which data is to be stored, the storage module receives a write signal which is generated in the CPU and relayed by the Multiprogramming module. If this write reference is illegal, the write signal will be changed to a read signal. If the system is in Executive mode when an illegal write occurs, an abnormal interrupt will be generated. In the CPU, J132 senses for an illegal write; in the Multiprogramming module, J440 senses for an illegal write. J132 goes to 0 when: 1. (Exec) (DIsable Storage Protect) (storage protect C.P.U. switches compare with the Address on the CPU S bus). 2. (Exec) (address on the CPU S bus is in the Auto Load or Auto Dump Area). 3. (Program State 0) (Disable Storage Protect) (storage protect switches compare with the lower 15 bits on the CPU S bus). 4. (Exec) (Keyboard Bus Priority) (address on the CPU S bus is in the Executive Auto Load or Auto Dump area). J440 goes to 0 when: 1. E=1. 2. Bits 09 and 10 of the CPU S bus :> PL. I MULTI-PROGRAMMING STORAGE MODULE K796 RIGHT BUS WRITE JI30 STORAGE .-------, K760 I LLEGAL WRITE JI32 M.C. + T1050· PARITY ERROR K761 WRITE STORAGE Figure 252. Write Signal Path \\irite Design?-tors ForlI1.structlons using character addressing, the character translations from E008, E018, E208, and E218 determine the write character designators (0-3) which are transmitted to storage to determine the character (s) to be written during a store character 226 operation. Referring to figure 25~ ~ During 81'0 sequence of a word-addressed instruction, T660to T663 transmitters will he turned on. This will be a full-word write of all four character positions. The J295 to J298 terms will have their inputs all at a zero level. J292 Zl- BIT 19+EN CH 0+2+4+6 2HI 2R88B F5 F6 MC PRI0+2ND STO CYCLE JI28 r ~~?g CHAR 2 ;, RB1~~!~E >-L~ 3 F5,F6 DES'GNATORSl ~~?g --c>----+-~ CHAR ADDR+ RNI WI51---+--...----' B C - 24 BIT J773 - - - 1 1 - - - - - - - ' WR!TE MC PRIO+CPU WAIT 1981 Z838 Zl-BIT 19 J980 EN CH 0+2+4+-6 EOl8 -<'l---~ E20S CHAR DESIGNATORS EOOS -c___+-~ EOt8 JOII MC PRIO F425 (46){2ND STO CYCLE) WI51 EN CH 0 +2+4+6 I m3 J129 15 BIT WRITE F609 2R89A 2~RJ F7,F8 . WRITE 2H2 ADDR ~LB F7,F8 F609 15 BIT WRITE JOII MAIN CONTROL PRIORITY F425 t46)(2ND STO CYCLE) Figure 253. Partial Write Bit Transmission For a store A character, the position at which the character is to be stored determines the transmitter that will be turned on. E008 and E018 are the complement of the character position. E208 and E218 are character position. The other terms are used with store word address, store character address, interrupt sequences, or input operations If BPO is set, the address on the digit switches is compared to the address on the S bus. If these addresses are equal during STO, the computer will stop. Sensing of Breakpoint Stop takes place at VI16 time. K134/I35 (Breakpoint Stop) sets if: The address on the S bus compares with the address in the Breakpoint switch, BPO is selected, and Breakpoint Lockout is not set. If K136/I37 (Breakpoint Lockout) is not set this indicates this is not the first storage reference after a breakpoint stop. Note: If it is the first storage reference after a breakpoint stop, setting of K134/I35 (Breakpoint Stop FF) is blocked to prevent stopping a second time at the same address. The character translators also determine setting or clearing of E204/205 and E214/215. During a write character operation, the outputs of these flip-flops determine the character transposition necessary to gate a character from the EXX2 to the lower bit positions of DB register. EXX2 is also fed by the r7 rank of the processor. This provides a path for transmission of data from the processor to DB register. The data from EXX2 is gated into DB register. Character shifting is performed between the EXX2 rank and DB register. Data can be transferred directly 227 or right shifted (end-around) one, two, or three character positions. These shifts are controlled by the H4XO control delays. During character addressing, one of these delays is pulsed on the basis of the translation of the lower two bits of the character address. This then gates the selected character from EXX2 into the lower six bit positions of DB register. N050: Input to Hl15 Vl15: Set K012/013 (request lockout) and K004/005 (word addressing mode); input to H400. Set K042/043. V116: Test for breakpoint comparison if BPO has been selected and K136 = 1; input to H401. N401: Clear DB register; input to H410 (if 24-bit store). J272 ILL WRITE 00.7 STO CYCLE R312 ILLEGAL WRITE .-------, FROM PAGE FILE RADR K083 SAMPLE STO PROTECTV216 EXEC J223 ILLEGAL WRITE I KI32 F845 CLR ILL. WRITE BREAKPOINT STOP N050 K116/117 -..(")----.t BREAKPOINT LOCKOUT KI34 KI36 KI35 KI37 N050 E279 BKPT K090 GO COMPARISON CLR DBR KOl2 \ - - - - H4XO (EXX2 TO DBR) KOl3 Figure 254. Breakpoint and Illegal Write Test WORD TO BUS 1 o o o 22R STORE OPEH.AND SEQUENCE Start Store (STO); request bus system. Request storage; start arithmetic. Word to bus. N410: Gate EXX2 to DB register (static enable of X to 17 to EXX2); transmit the contents of DB register on the data bus. Clear K042/043. The transfer from EXX2 to DB register may be straight or end-around right one, two, or three characters. The store sequencefor a word-addressed instruction will always be a straight or direct transfer from EXX2 to DB register (as, for example, in 40, 41, and 44-47 instructions) • N40X-------, E - -2 --- DBR STRAIGHT TRANSFER E204 LOWEST TWO BITS OF "S" BUS E205 E214 ~ CHAR POSITION TRANSLATORS E--2 ...... DBR RIGHT SHIFT 3 CHAR POSITIONS K005- WORD ADDRESSING Figure 255. DBR Transfers Character-addressed instructions may require any of four possible transfers between EXX2 and DB register. Which transfer path is used is determined by the position into which the character will be stored. Examples of the four possible transfers are shown below. The store A character is used but store Q character would be the same. TO POS 2 TO POS I TO POS 0 TO POS 3 Figure 256. Operand Transmission for STO Sequence DBR to the T5XX and T7XX transmitter enables is turned on when K012/013 (Enable Data Bus FF) sets. Figure 257. Data Transmission for STO LOW IQ ~Err STORAGE TERIII. CABLE TERM· 3 BITS C.SL~ HIGH U I L.el 229 Review the progress of STO to this time: 0---------0---------0---------Main control is hung up at this point. It cannot accomplish anything else until the reply signal arrives from the storage module. 1 Start Store (STO); request bus system. Request storage; start arithmetic. Word to bus. Reply from storage. V061 (resynced storage reply) VOOO-V005: Clear KOOO/OOI (request bus) gives the storage module access time to store the information from the data bus. Storage Reply Resync Circuit A reply from anyone of four storage modules is received by R555. The asynchronous reply (logical 1) is fed to H060 along with a timing pulse from N071. H060/ 62/64/66/68 and H061 convert the reply to a logic signal which produces a 1 output from V061 during an odd clock phase. This output is 62.5 nsec long and is not repeated regardless of duration of input. REPLY FROM STORAGE STORE OP[l o CD o o SEQUENCE R555 .. i "[CEIVE A REPLY F"O ANY STORAGE MODULE J068 1 . - CARD TYPE CA65 CARD TYPE CA64 H060 CARD TYPE CA66 , H062 H061 H064 V061 f---+ PRODUCES 62.5 nSEC. "I" (RESYNCHRONIZED REPLY) AT 000 TIME H066 H06S C493 N071 ~ THE RESYNC ORCUIT USES POSITIVE LOGIC LEVELS. SPECIALLY TUNED CLOCI< AMPLI FIER Figure 258. Storage Reply Resync Circuit KOII MAIN CONTROL PRIORITY Me J280 REQUEST BUS GO KOOO KOO I I I I BREAKPOINT LOCKOUT BREAKPOINT STOP JI35 BREAKPOINT I STOP. KI34 BREAKPOINT LOCKOUT K090 KI36 K091 BREAKPOINT STOP KI34 I" KI37~1"::"_"" Figure 259. 230 KI37 Breakpoint Stop Logic The time from VOOO to VOOS is called "time-out for access". It permits storage to reference the data bus and to store the information One of the first things to occur after the reply signal has been received by the processor is clearing of request bus FF. Clearing request bus FF neither clears nor releases the bus. Main control and block control share the same bus system. Main control needs the bus system, requests it via KOOO/OOI (request bus FF), and storage starts processing the request. After the requested information is returned the bus request is released, but bus priority is retained. V003 time will clear K090/091 (go FF) if a breakpoint stop is required. When BPO is set, the breakpoint address is continually compared to the storage addre-ss on the S bus. During an STO sequence, if the storage address matches the breakpoint address, breakpoint stop (KI34/13S) is set. Kl3S is ANDed with V003 to clear go and stop the computer. 0 STORAGE REOUEST IIIAIN CONTROL PRiORITY Figure 260 Release the Bus System PRIORITY DELAY END STO RE LEASE BUS SYSTEM .TORE 011 1 ~QUENCE 1 CD Start Store (STO); request bus system. CD Request storage; start arithmetic. CD Word to bus. o Start Store (STO); request bus system o CD o o Request storage; start arithmetic. Word to bus. Reply from storage. Release bus system. V006 V007: Input to H086; clear KOIO/OII, KI16/117, and KOI2/013; test stop; end transmission of the DB register to Storage; clear K212/213. After storage ,reply and access time has elapsed, main control will release the bus at V007 time. Releasing the bus system as soon as possible is important. Block control and main control use the same bus systern The enable set up earlier (DB register to storage) will drop out now. 0 o @ o Reply from storage. Release bus system. EndSTO. V086: Clear K086/087 (STO); set K080/081 (RNI); input to H087. V087: Input to HOI4; perform RNI if computer is going. K340/341 blocks the progression from STO to RNI during manual store operation. For a discussion of manual store operation and timing see chapter 6. The input from V007 to HOl4 must make it through the AND gate with K081 (RNI FF). This AND gate can be made if the next sequence is RNI. Other inputs that come into H087 (not illustrated) require the AND gate for other operations (discussed elsewhere in this manual). 231 The sequence progression FFs are always affected the same way at the end of the STO sequence. STO is cleared and RNI is set. There is no other progression path possible except STO to RNI, unless it is a double- precision operation which would be RNI - STO - STO RNIat which time J063 tD~ will be a 1 blocking the output of V086 until the double -precisIOn operation is complete. INITIATE r:(J ~HO~ HOl4 '1081 '1014 K341 STO Figure 261. REVIEW You should be able to fill in the blanks without referring back to the text. End STO Timing G)----------------------(0------------------------ G)------------------------ CD----------------------G)----------------------- Q)----------------------- 232 6B e BASIC ADDRESS RNI Figure 262 is a graphic representation of all four basic sequences. Note the areas unique to each sequence and common to all. CONTROL SEQUENCE EA EAD NEXj INSTRUCTION RADR OPERAND EREAD, ROP 6 TORE , OPERAND STO STORAGE READ CONTENTS OF ADORES DESIGNED BY (5) ARE READ INTO Z (Z) .. BUS*EXX2+DBR EXX2 GATED TO F 2 GATED TO ft. DATA TRANSMISSION TO STORAGE IS DROPPED lPON RElEASE THE BUS Figure 262. STO Big Picture 233 SELF-EVALUATION QUIZ ON CHAPTER 10 TRUE OR FALSE 1. The STO sequence may be entered from RNI, RADR, ROP, or another STO sequence. 9. The only exit from STO is to RNI. 10. For a store character 2 operation, gatingof EXX2 2. If the system is in the Monitor state and operand relocation is not selected, ISR will be referenced for the upper three address bits during STO. 3. If the system is in the Monitor state an illegal write cannot occur during STO. 4. The Write signal, which is generated by main control during STO, is relayed to storage by the Multiprogramming module. 5. If an illegal Write is sensed during STO, storage reference is aborted and a pseudo-reply is generated. 6. If the system is in the Program state, storage protect switches can be used to protect logical addresses OXXXXXS' 7. For character store operations, it is the responsibility of main control to properly position the character to be stored. S. For every STO, main control must send a Write signal and Write Designators to storage. 234 to DB register will be right 3. 11. During STO, main control sends Data to storage via the data bus cable. 12. A BPO is possible on the second STO of a store AQ instruction. 13. If the system is in Non-Executive mode, an STO in the upper 40 S locations of available storage would be an illegal write. 14. If the system is in Executive mode, an STO in the upper 100S locations of page 0 would generate an illegal write. 15. A storage request is always sent to storage as soon as Kl16/117 sets during STO. Score yourself: After studying chapters 5, 6, and 7 you shouldn't have missed any questions. If you missed one or more, you've failed! CHAPTER 11 SEQUENCE PROGRESSIONS This chapter lists all possible cycle progressions for the 3300 Computer. It will be to your advantage to use 3300 Command Timing Charts and 3300 Computer System Logic Diagrams in conjunction with this chapter. You will find that sequences of the 3300 will take on more meaning if you try a few sample cases of sequence progression. SEQUENCE PROGRESSIONS Chapters 7 through 10 individually covered the sequences, RNI, RADR, ROP, and STO. This chapter emphasizes the progression of sequences used during execution of instructions. Some instructions use only one sequence, others use two or more, and one instruction could use all four sequences. The following pages are groupings of instructions that use a definite sequence progression in their execution. 235 These instructions use only RNI: Stop 00.0 Unconditional stop Jumps 00 02 03 Miscellaneous jump Index jump (IJ) AQ jump (AZJ, AQ]) Skips 04 05 10 A, Q, or nb = Y*, skip A, Q, or Bb = Y, skip Index skip Shift or scale (may be indexed) 12 Shift A (SHA) Shift Q (SHQ) Shift AQ (SHAQ) Scale AQ (SCAQ) 13 No address, arithmetic, enter, or logic 11 14 15 16 17 Enter A with 17 -bit address Enter A, Q, or Bb with Y Increase A, Q, or J3h by Y Selective complement (exclusive OR) of A, Q, or Bb with Y Logical product (AND) of A, Q, or Bh with Y IRT 53 55 55.0 55.4 Interregister transfer (24-bit precision) Interregister transfer (48-bit precision) Select ISR Select OSR BCD-shift E, E jump, set 0 60 Shift E, E zero jump, set D 77 instruction* * 77 Sensing, selecting, interrupt, and control functions These instructions use RNI to RNI. second instruction word. Block operations 71 72 73 74 75 76 The first RNI reads the first instruction word, the second RNI reads the Search Move Input, character Input, word Output, character Output, word The instruction progression in one instruction is RNI to RADR. IJnconditional jump 01.4 Unconditiona 1 jump *y = operand (lower 15 bits of the instruction word) **77.64 (Write PF) and 77.65 (Read PF) fall in this group only if Multiprogramming module is not present. 77.610000 (Test Memory Availability) is excluded from this group. 236 These instructions use RNI to ROP progression. The RADR sequence is optional and depends on the programmer's choice. Indexing may be used to modify the indirect address and/or the execution address. Loads 20 21 22 23 24 27 54 Arithmetic or logical 30 31 35 36 37 50 51 52 77.61 77.65 Load Load Load Load Load Load Load A (LDA) Q (LDQ) A character (LACH) Q character (LQCH) A complement (LCA) logical (LDL) index (LDI) Add (ADA) Subtract (SBA) Selective set (SSA) Selective complement (SCA) Logical product (LPA) Multiply (MUA) Divide (DVA) Compare (CPR) (within limits test) Test memory availability Read Page File These instructions use RNI to STO progression. The RADR sequence is optional for the 4X instructions but neither indexing nor RADR is possible for the 00. 7 instruction. Indexing may be used to modify the indirect address and/or the execution address. 00.7 Store 40 41 42 43 44 46 47 77.64 Return Jump Store A (STA) Store Q (STQ) Store A character (SACH) Store Q character (SQCH) Store lower 15 bits (SWA) Store lower 17 bits (SCHA) Store index (STI) Write Page File (APF) One instruction uses RNI to ROP to STO sequence progression. struction. The instruction is: Storage shift 10.0 Indirect addressing does not apply to this in- Storage shift (SSH) One instruction has a sequence progression of RNI to RADR to ROP to STO. Inclusion of RADR is for indirect addressing. It would not always be necessary; it depends on programmer's choice. Indexing maybe used to modify the indirect and/or execution address. Replace add 34 Replace add (RAD) 237 Double-precision load instructions use RNI to ROP to ROP sequence progression. RADR sequence could be used with indirect addressing. Indexing may be used to modify the indirect and/or execution address. The instructions are: Load or arithmetic, 48-bit precision 25 26 32 33 57 Load AQ (LDAQ) Load AQ, complement (LCAQ) Add to AQ (ADAQ) Subtract from AQ (SBAQ) Multiply AQ (MUAQ) Divide AQ (DV AQ) 60 61 62 63 Floating-point Floating-point Floating-point Floating-point 56 Floating-point arithmetic addition to AQ (FAD) subtraction from AQ (FSB) multiplication of AQ (FMU) division of AQ (FDV) There is one double-precision store instruction. It uses RNI to STO to STO sequence progression. RADR sequence could be used with indirect addressing. Indexing may be used to modify the indirect and/or execution address. The double-precision store instruction is: 48-bit store 45 Store AQ (STAQ) Two instructions have optional sequence progressions. Normal progression is RNI to ROP to ROP ... to Rap during the search operations; however, if an interrupt occurs, the Rap to Rap sequence is broken and RNI is initiated. These two instructions are: Search 06 07 Masked Equality Search (MEQ) Masked Threshold Search (MTH) Figure 263 is a block diagram of the possible sequence progressions for instructions in the 3300 Computer. There are several AND gates (A through R) shown on figure 263. These AND gates (based on instruction function translators) determine which sequence pro- gression will be used by the instruction being executed. Table 15 is a worksheet based on figure 263, the 3300 Computer System Logic Diagrams, and the previous pages of this chapter. NOTE: AND gates A and C have been filled in for you and are meant to serve as a guide in filling out the other AND gates. 0 ~ , ~ ( L l1 STO Q J P or Figure 263. Block Diagram of Sequence Progressions ?3B STO d Table 15. AND GATES FOR SEQUENCE PROGRESSIONS TRANSLATION GATE LOGIC TERM Arithmetic not busy A LOGIC PAGE VlO9 2-7 FSS8 and V17l 2-5 B C D E 71 throUlrh 76 F G H I J K L M N 0 P Q R The following information traces one instruction through its entire execution. Check it for accuracy against the prints in Logic Diagrams and answer the questions. Timing for a replace add instruction with one indirect address: RNI N072 V087 V014 NOSI NOSO Vl17 NOSO VIIS Vl16 NOSI NOSO V06l VOOO VOOI VOO2 VOO3 VOO4 VOOS VOO6 VOO7 VOO8 VOO9 VOlO VOll V080 Resynced manual start Input to RNI Request bus on RNI Obtain bus priority Address stabilization Request storage Breakpoint comparison timing Breakpoint comparison timing Test BPI Storage reply Drop bus request Access time -out Access time-out Access time -out Access time-out Access time-out Access time-out Clear F and release bus Instruction to F Instruction decode Test interrupt Instruction decode End of RNI RADR VlO9 VllO NOSI NOSO Vl17 NOSO VIIS Vl16 NOSO NOSI V061 VOOO VOOI VOO2 VOO3 VOO4 VOOS VOO6 VOO7 VOO8 VOO9 V082 Arithmetic not busy Request bus on RADR Obtain bus priority Address stabilization Request storage Storage reply Drop bus request Access time-out Access time-out Access time-out Access time-out Access time-out Access time-out Clear lower F and release bus Bus to lower F via EXX2 F decode End of RADR 239 Arithmetic not busy Request bus on ROP Obtain bus priority Address stabilization Request storage Breakpoint comparison timing Breakpoint comparison timing Test BPO ROP VI09 VllO NOSI NOSO Vll7 NOSO VIIS Vl16 NOSI NOSO V061 VOOO VOOI V002 VOO3 V004 VOOS V006 VOO7 VOOS V009 VOS4 Storage reply Drop bus request Access time-out Access time -out Access time-out Access time-out Access time-out Access time-out Clear DB register and release bus Bus to DB register and start arithmetic N691 End of ROP VSOO STO VI09 VllO NOSI NOSO Vl17 NOSO VIIS Vll6 NOSI NOSO V061 VOOO VOOI V002 V003 V004 VOOS V006 V007 VOS6 Arithmetic not busy Request bus on STO Obtain bus Address stabilization Request storage Breakpoint comparison timing Breakpoint comparison timing Test BPO; N400 N401 (Clear DBR) N41X (EXX2 -+-DBR, direct) Storage reply; Drop bus request; Access time-out Access time-out Access time -out Access time-out Access time -out Access time-out Release bus End of STO 2. At best, RADR requires usec. 3. At best, ROP requires usec. VSOI VS02 VS03 VS04 VSOS VS30 VS31 VOS7 Input to RNI V014 Request bus on RNI For problems 1 through 14 assume Multiprogramming module not present and system not in Executive mode. 1. At best, RNT rE"qllirPR _ _ _ _ _ _ _~_0 timeR. ______ usec. 240 ~ times, ~ times, ~ times, 4. At best, STO requires usec. ~ times, S. At best, the total is usec. -----6. Without indirect address ing the total is _ _ _ __ ~ times, usec. 7. At best, bus priority per cycle is _ _ _ _ __ ~ times, usec. S. Would the best time you determined for RNI apply to all RNI sequences? 9. Would the best time you determined for RADR apply to all RADR sequences? _ _ _ _ _ _ _ _ __ 10. Would the best time you determined for ROP apply to all ROP sequences? _ _ _ _ _ _ _ _ _ __ II. Would the be st time you determined for STO apply to all STO sequences? 12. At best, how much more time wOl}ld be added to the execution ofthe replace add il\"$t\-uction if two levels of indirect addressing were u·sed? _ _ __ Three levels? _ _ _ _ _ _ _ __ 13. Question S asks what the best total time would be for an RAD instruction. What different factors could make the total time longer, not counting RADR sequences? a. Obtaining the bus during RNI. b. Storage reply. c. Arithmetic busy at entry to ROP sequence. d. e. f. g. 14. Whywould obtaining the bus cause so much delay? 15. How much time would the use of the relocation feature of the 3300 Computer add to a sequence? Remember, there is only one bus system. It is shared by program control and block control, each having equal priority to obtain it. Figure 264 shows how the bus system could be used. It is important to keep in mind that figure 264 is only meant to show how the bus system could be used. It is not meant to show all the uses of the system; the bus system never follows that type of progression. Main control ~ has the bus to accomplish an RNI sequence. Block control has the bus to accomplish or process an input. ~ Main control ~ Block control ~ Main control --. Main control has the bus has the bus has the bus has the bus to accomplish to accomplish to accomplish to accomplish an RADR anROP an output. anSTO sequence. sequence. sequence. Figure 264. Example of Bus System Usage 241 CTiii BASIC ARITHMETIC MA IN CONTROL BLOCK CONTROL TO XlO tHAN' O1lI"u3 ~ 9:':S 1"i'"+72----...._-' MC F! CHAN/'I;EI HEQUE.ST ., '0"" 20+21 (KYIO £.NTI'IY OF A 01'1 ~I :\ 4 - , i ' 6- SH CT !'lEG 1{ :f.I")M cnNS(~' t ..f BUS r,)/f- GENERAL BLOCK DIAGRAM SYSTEM ~/"}M II: \LEXPRINTS ffi t::J TERM • ..J \. J \. J \. J L---.J DATA BUS _ _ _ _ ADDRESS ~ o 1'1 : [ B ~Eft +- ~::=:~LE DISPLAY CONTI'IOL "ULTI~09 PHYSICAL LAYOUT FLOATING ARIBTAH' .. '[CTIC POINT AI'IITH !!o .. .lIN CONTROL MODULE aUSINUI DATA ~ROCEI'OI'I . INTUIIUf'T aus CONTROL 0·1 2-3 8US _ _ SEQUENCES Worksheet Assume that the Multiprogramming module is not present and the system is not in Executive mode for this problem. You, the maintenance man, are sum)TIoned to the console by the computer operator. He tells you that the load Q instruction from memory location 14063 is not operating properly . He executes a21 0 14063 and says, "See, the uppermost bit, bit 23, always comes up a O. " (Q) is 12106034 is all the information he can supply. One of the first things a good maintenance man would do would be to verify that a load Q will not work. Figure 265, (page 242) is an unmarked block diagram of the system. Draw in the data flow path for an operand moving from storage to Q register Do this first, then continue. Study the block diagram, then list the steps of the operation you would perform to verify the trouble. Reread the problem, make another choice (from a to d above), and follow the directions given. (2) After execution of the (9 0 This knowledge is important! What circuitry is common to both a load A and a load Q? (List the common flow paths. ) The following list contains some logical first steps, one of which you might possibly have written above. Look through the list for the operation you would have performed. If the operation you listed is there, follow the directions given. @ a. b. c. d. e. You entered (via keyboard to storage) a load A from location 14063 (the same address referenced by the load Q) . You then executed the load A. If load A was your choice, go to step 2, item a. You manually entered (via keyboard) all 7s to Q register (at least to the upper digit position). If this was your choice, go to step 2, item b. You swept contents.:pf location 14063 to C register for observation'. If this was your choice, go to step 2, item c ..You entered (via key'board) ~11 7s into A register and stored the contents" of A in memory . Then you executed a load A from that location in storage. If this was your choice, go to step 2, item d. If the operation you performed was not listed above perhaps your choice was not one of the most logical ones you could have made. Analyze your operation. What help is it to you in verifying that a load Q does not work? Perhaps the operation you chose would have helped you and it was just not listed above. Either way, now that you have read through the list of logical choices supplied above, which one of them do you feel is the most logical? load A from memory location 14063 the contents of A register is 12106034. Knowledge gained: The uppermost bit coming to A register as a 0 could be significant. How do you knO~lJ that t.lJe uppermost bit (bit 23) in memory is a I? You do not know, do you? You possibly wasted a bit of time here, especially if the bit in memory is a O! All is not wasted though. It's possible that you have learned some important things, even if they are not obvious to you at this point. If an error does exist it has to be in some circuitry that is common to both a load A and a load Q instruction. You should have listed storage, transmitters, receivers, EXX2, DB register, r4, and Xl. Study the block diagram in figure 265 and verify that these are the only common circuits. Keep in mind what you might have learned in this step, go back to step 1, and make another choice. Remember, you are trying to verify the existence of an error. (2) After keyboard entry of all 7 s to Q register, (Q) ~ is 37777777. C register contained all 7s when TRANSFER was pushed. Knowledge gained: Q itself could be bad. The flip-flop for bit 23 possibly does not hold a 1 even if it gets there. There is circuitry other than Q involved during keyboard entry to Q. List the steps of the flow path for keyboard entry to Q. Use figure 265 for reference. It is known that an error exists. Further, it is known that the error has to be in one of the following circuits in the Q flow path: Keyboard, MXXX, C, C7X2, DB register (EXX2 enable), 14 , Xl, II, or Ql. Because the 7s got to C correctly, three circuits can be eliminated. On figure 265 draw a line through the circuits that can be eliminated. 243 The original problem was a load Q not operating. It is known that an error exists now because manual entry failed. C7X2 is used on the manual entry to Q path, but not on a load Q, thus C7X2 can be eliminated also. (It should be crossed out on figure 265, as should M33X and C register. The error must exist in one of the following circuits: EXX2, DB register, 14, Xl, Ll and Ql. It is also known that storage is okay (unless there are two errors) because keyboard entry does not involve storage; the enter operation is failing, thus the error could not be in storage. Go to step 3 . (2) After you swept the contents of location 0" 14603 to C register for observation you found that C contained 52106034. Knowledge gained: You know memory contains a 1 bit in position 23. You also know that the path from storage to C register is okay. Referring to figure 265, what is the path for information traveling from storage to C? You should have listed storage, transmitters, receivers, EXX2, and C. You now know there is a fault. Further, you know it is not in the storage circuits because the information comes to C register correctly. What would be a logical choice of operations now? Look through the following list for the operation you chose and for the directions given: 1) You entered (via keyboard to storage) a load A from location 14063 (the same address referenced by the load Q) . You then executed the load A. If load A was your chOice, go to step 5 • 2) You manually entered (via keyboard) all 7s to Q register (at least to the upper digit position). If this was your choice, go to step 2 , item b. 3 ) You entered (via keyboard) all 7 s into A register and stored (A) in memory. Then you executed a load A from that location in storage. If-{;fl:iH-was- YOUr "ehuiee, go~tosteP" -:2 ,":item" d • If the operation you performed was not listed above perhaps your choice was not one of the most logical ones you could have made. Analyze your operation. What help is it to you? Perhaps the operation you chose would have helped you, but it was just not listed above. Either way, now that you have read through the list of logical choices supplied above, which one of them doyoil feel is the most logical? Reread the problem, make another choice (from a to c above), and follow the directions given. G) As you enter (via keyboard) all 7s to A register @5 you notice that A always comes up with a 37777777, yet C is always all 7s at the time of transfer. There is no need to do the store A or load A because something is wrong in the path from the keyboard to A, and this path does not use storage. Referring to figure 265, list the steps in the flow path for keyboard entry to A register. It is known that an error exists. Further, it is known that the error has to be inone of these circuits in the A flow path: keyboard, MXXX, C, C7X2, DB register (EXX2 enable), 14 , Xl, adder, 10 , AI. Because the 7s got to C correctly, three circuits can be eliminated. On figure 265, draw a line through the three that can be eliminated. The original problem was a load Q not operating properly. It is known that an error exists now because manual entry failed. C7X2 is used on the manual entry to A path but not on the load Q path, thus C7X2 can be eliminated also. The error must exist in one of the following circuits: EXX2, DB register, 14, Xl, adder, 10 or AI. The adder is used for entry to A but not for a load Q, thus the adder can be eliminated, as can 10 and AI. This leaves just EXX2, DB register, 14, or Xl. Go to step 4 . CD enter You know an error exists because you executed an to (via keyboard) and it did not function Q properly. You have already localized the problem and started eliminating circuitry. You know the error has to be in one of the following circuits: EXX2, DB register, 14 , Xl, II, or Ql. What operation could you perform that would eliminate II and QI? ----------------------- To inject a thought here - -why not try keyboard entry to A with all 7s? If it fails, then the fault could not be II or Ql; instead it would have to be in some circuitry common to both an enter to A o and an enter to Q. If it does not fail, then the error has to be in either II or Ql. Assuming that you tookthe bait, when you tried to enter to A, C got all 7s but A got 37777777. II and Ql cannot be faulty. Cross them out on Figure 265. Now it is known that both an enter to A and an enter to Q fail. The error has to be in circuitry common to both. The following common circuitry could be at fault: C7X2, DB register (EXX2 enable), 14 , and Xl. C7X2 was eliminated in step 2, item b. EXX2 can be eliminated for a slightly different reason. EXX2 is in the load Q path, but not in the enter path which also fails, therefore EXX2 could not be at fault. (Cross it out on figure 265.) This leaves DB register, 14 , and Xl to be eliminated. Go to step 6 . You know an error exists because you executed an enter to A (via keyboard) and it did not function proper ly . You have already localized the problem and started eliminating circuitry • You know the error has be be in one of the following circuits: EXX2, DB register, 14 , Xl. EXX2 can be eliminated for a reason similar to the one for which C7X2 was eliminated earlier EXX2 is in the load Q path, but it's not in the enter to A path which also failed. Therefore, EXX2 could not be at fault. This leaves DB register, 14 , and Xl to be eliminated. Go to step 6 . 0 @ After execution of the load A from memory location 14063, (A) is 12106034. Knowledge gained: The uppermost bit coming to A register as a 0 has eliminated considerable circuitry. An error does exist and it has to be in some circuitryconunQ';tO both a load A and a load Q instruction. This knowledge initself is important. What circuitry is common to a load A and a load Q? (List the steps in the common flow path.) o Go to step 6 . The bad circuit has been narrowed down to DB register, 14 , or Xl. Keep in mind that the fastest troubleshooting procedure is to eliminate as much circuitry as possible with operations executed from the console. What operation could be performed to point at or to eliminate Xl? ------------------------- Another hint: X is fed by inverter ranks 2, 3, 4, and 6. (Look at figure 265.) It doesn't figure that X could be eliminated if an oper ation that used X also used 14; so choose an operation that does not use 14. Ranks 1, 2, and 3 are in the A and Q circuits, and so far it has not been possible to get bit 23 into either of these registers, so that pretty much leaves you with 16 • 16 feeds Xl and 16 is fed by the B boxes and IS • IS seems like a good bet. Enter an enter Q instruction with a negative number and sign extension, then execute it. Doing an enter Q leaves all 7s in Q. Xl must be okay (cross it out on figure 265), leaving DB register and 14 as possibles. Go to step 7 . (2) Some more facts are known. The error has to be in either DB register or 14. It is possible to get all 7s into Q via the enter instruction with sign extension. Considerable benefit comes from being able to get all 7s into the register. Now the 7 s can be stored from Q and further circuits can be eliminated. When a store is followed by a sweep to C, all 7 s return to C. Which circuit, DB register or I~, can be eliminated? Cross it out on figure 265. DB register should be okay because the path for a store Q is: ------------------------- Ql ~13--'Xl~ 7-. EXX2-. DBR-.storage Ql, 13 , Xl, 17, and storage are not involved in You should have listed storage, transmitters, receivers, EXX2, DB register, 14 and Xl. Study figure 265 and verify that these are the only common circuits. The sweep operation that you performed ear lier eliminated the storage circuits and an inverter rank. What three circuits have not been eliminated? the circuits that are to be eliminated. error has to be in Go to step 8 . Thus the ------------------------ CD YEP! 14. Now what? Locate the logic card and replace it. What manual would you use to find the physical location of the 23rd bit of 14? ------------------ -----------------------------------245 The logic diagrams for the 3304 Basic Processor would be a good bet. Look in the table of contents for 14 (standard arithmetic section). Turn to that page in the diagrams and locate the 23rd bit and list its physical location. You should have 2K88A. Go ahead, replace that card and try a load Q from location 14063. After execution, Q contains a 52106034, which is correct. Congratulations for fixing the trouble. There were many steps to this problem. You possibly did not agree with the sequence of steps through which you were led in diagnosing the problem but if you remember these important things, you'll do well. 1. Always prove or disprove the first assumption before you fix anything. 2. Localize the problem to one area of the system as rapidly as possible by performing operations that use common circuits. 3. First try to eliminate all possible commoncircuitry via the console. It's faster than probing around with a scope. Besides, if you can push a few buttons, you make a better impression than when you state it must be so-and-so and replace it without even using a scope. 4. Repair the faulty component. Only a very few instructions in the entire repertoire may be executed. All other instructions" die" leaving the console in the following configuration depending on which sequence the failing instruction would use to accomplish its execution. If RADR, ROP, or STO sequence were required, the console would be dark except for the appropriate sequence indicator being lit. Instructions that can be executed are all common to RNI sequence: Stops Jumps Skips Shifts or scale No-address arithmetic instructions, enters or logic Intraregister transfers 77 series (connect, senses, etc.) It is also possible to initiate block operation. It should be already apparent that RNI is okay. Whatever is wrong must be common to all other sequences. CLUES: 1. C01Jld stQX~ge be at fault? If th~_prQgram were written so that all of the instructions were in storage module 0 and all operands were in module 1, could storage be at fault? _ _ _ _ __ 24R 2. This problem is common to several sequences. The most logical place to look for the fault would be in control. Most of the common circuitry for the sequences is shown on page _ _ _ _ _ _ __ of Logic Diagrams. 3. Could the arithmetic section be at fault? ____ If RADR and RNI worked and only ROP and STO failed, could the arithmetic section be at fault? _ _ Why? ___________________________ In your own words relate what you think would be at fault: __________________________ In diagnosing a problem you have discovered the following facts: 1. 2. 3. 4. The arithmetic area works; it adds, subtracts, multiplies and divides. It also shifts correctly. You can store and retrieve information from memory because you keyed in a ST A and a LDQ instruction and they both operated correctly. The computer reads and executes instructions correctly. Proof is in item 2. Instruction address modification works because you b-modified an instruction and it worked. From the facts you have learned in the four operations you performed you feel quite sure the error is in one sequence. What sequences are checked by item 2? _____ and What sequence is checked by item 3? ------and ----Are any additional sequences checked by item 4? ----- What sequence has not been checked? ----Supply one instruction that will check the remaining sequences. It appears that a modified load A instruction is not operating correctty. The instruenoii arrives iii F register properly, in program control. When the instruction is executed the number that arrives in A register is not the proper one. Listed below are the internal sub-sections of the 3300 processor. If the sub-section could be at fault, write in yes. If not, write no. explain why. Block Control? Whether your answer is yes ~ no ---------------, because ---------Multiprogramming module? _ _ _ _ _ _ _ _ _ __ because _________________________________ Program Control? _____________ , because I/O? _____________ , because __________ Standard arithmetic, first pass? be cause_________________________ S bus? _________, because _________ Standard arithmetic, second pass? _________ because ________________________________ D bus? _________, because _ _ _ _ _ _ __ Storage? _______________ , because _________ 247 STORAGE ADDRESS BUS I STORAGE COMPUTATION MODULE SECTION H CONSOLE I DATAlaus I 1 COMMUNICATIONS MODULE PROCESSOR Figure 266. System Block Diagram CHAPTER 12 ARITHMETIC CONTRa LS GENERAL DESCRIPTION The standard arithmetic section of the processor is located within the computer section of the system (figure 266). The system block diagram of the 3204 Processor is shown in figure 267. Note the inputs to and outputs from the standard arithmetic section. Figure 268 shows the detailed block diagram of the standard arithmetic section. Throughout this chapter references are made to figures 267 and 268. Study them now and refer back to them each time they are mentioned. The arithmetic section performs all loads, stores, shifting, scaling, logical, and arithmetic operations. This chapter discusses the logical operation of the arithmetic registers, the adder pyramid, the arithmetic timing controls, and the arithmetic sensing fog1:c .. Figure 268 is a block diagram of the arithmetic section which shows all paths for data exchange within the arithmetic section. REGISTERS The arithmetic registers provide temporary storage for the operands used in program execution. The arithmetic section has five registers: A1, A2, Q1, Q2, and X. The contents of A1 and Q1 are normally displayed on the console when the computer is stopped. As each register is described in the following discussions, refer to figure 268 to place it in the proper perspective to the entire section. Also, refer to it in 3300 Logic Diagrams to see all hits represented. 249 BASIC ARITHMETIC 9;I~S ~ MC E~ (FP) FORCED F' ~ ,- 20+21 (KVat) EIITRY OFAOItQ\ SH CT RE6 RK 1 Figure 267. Arithmetic Inputs and Outputs Al Register The 24-bit Al (arithmetic) register is used in nearly all arithmetic and logical operations. (AI) may be transferred to A2 and (A2) added to the contents of a storage location or the contents of another register. The sum is then placed in Al or it can be placed in storage. (AI) may be shifted right or left, and separately or in conjunction with Ql. Al may also hold a control quantity which conditions certain jump, skip and search instructions. Inputs to Al are made from: 1. J4XX inverters andM4XX FFs. These inputs transfer the internal status code to bits 00-11 of A1 and the contents of the interrupt mask register to bits 12-23. 2. 1 0 inverter rank. The sum from the main adder, sum from the optional adder, and (Q2) are transferred through 10 into Al directly. (A2) is transferred through 10 into Al either directly, left shifted (end-around) one place, or right shifted (end-off, sign extended) one place. 3. II inverter rank. Bit 23 of II feeds bit 0 of Al . qt!rtnga J~ft .sbHtAQQrJ.eft .shift. A. 4. E175-E177 and E185-187 inverters. These inputs are used to transfer the contents of the condition register, ISR, and OSR to AL. Refer to Logic Diagrams, page 2-127, for bits 0-7 of Al register and 10 inverter rank. 250 QI Register The 24-bit QI register (auxiliary arithmetic) assists Al register in performing arithmetic and logical operations. (QI) may be shifted right or left, separately or in conjunction with AI. QI may also be used with Al register to form double-length register AQ. QI serves as a mask register for certain instructions. Inputs to QI are made from: 1. E L (optional arithmetic) register. The inputs are E4XX, E5XX, and E6XX. 2. I I inverter rank. The sum from the main adder and (X) are transferred through I I directly into QI. (Q2) and (A2) are transferred through II into QI either directly, left shifted (end-around) one place, or right shifted (end-off, sign extended) one place. 3. 10 inverter rank. This rank is used together with the II rank when shifting Q or AQ. Refer to 3300 Logic Diagrams, page 2-133, for bits 0-7 of Q1 register and 11 inverter rank. A2 Register The 24-bit A2 regh::ter is used pr-imarily as one of l-itt;; tt~.f fei;:HJe:i:o" Qui;l:i piti:CtHin AZ cHiU XiHiHieHi ~ ately begins to propagate through the adder. A2 is also used in conjunction with Al register for operations involving a shift of A or AQ and to allow an exchange of (A) and (Q) during the execution of multiply and divide instructions. POSITIVE INTERRUPT MASK I/O STATUS,CIR, CR,ISR,OSR a ZERO ARITHMETIC SECTION NEGATIVE (OPTIONAL) RIGHT I LEFT I RIGHT I LEFT I INVERTERS OPT ADDER UI24 ~U147 "02 ~ A2~ A2 X ADDER (OPTIONAL) I85X -+---<)--1 RIGHT lOa LEFT lOa RIGHT lOa LEFT lOa POSITIVE OPTIONAL x"Wl'ie-reasme' aOde:rlrotll1()"STomerControi Data computers are subtractive accumulators. There are 24 stages in the adder, one stage associated with each bit in the tWG> feeder registers, A2 and X. Inputs to the adder are made only from these regis2!i2 INVERTER RANKS Most of the parallel transmission paths between registers involve a rank of inverters. The major parallel transmission paths and inverter ranks of the arithmetic section are shown in figure 268. 10, 11, 12 , 13 , and 14 are the arithmetic section inverter ranks which serve as the main feeders to registers AI, QI, A2, Q2, and X. The various transfer paths for the inverter ranks are listed in table 16. Al (direct, left 1, or right 1); shift count register; bit 23. bit 0 of QI; bit O.bit 23 of QI; lower 15 or 17 bits to F1 index registers BI, B2, B3 QI (direct, left 1, or right 1); bit 23 . . bit 0 of Al X, A2 (direct, left lOS, or right lOS); bits l6-23.bit 0-7 of Q2; bits 0-7.bits 16-23 of Q2 X, Q2 (direct, left lOS or right lOS); bits 16-23... bits 0-7 of A'l. X ters. The data is gated into the feeder registers. Operations within the adder are not clocked, so four phase times (including the time that data is being placed in the feeders) are allowed for adder propagation before the output of the adder is sampled. 0<•. The 3300 Adderis-'Clesigne'a so that Timely tended in size to 4S bits without increasing adder propagation time. The optional f]oating-point/douhle-precision hardware package contains the logic necessary to do this. be ex- The expanded adder is used only for the floatingpoint/double-precision instructions. When any other instruction is being executed the optional adder is disregarded. * One operation that occurs quite frequently in the 3300 computer is that of using the adder as a data path in which case a value is added to zero. The sum (equal to original value) is transferred to A register (example-the LDA lnst.)o No real addition has occurred but DATA has been moved. *Note: The double precision add or subtract do not require optional hardware. BINARY ARITHMETIC The binary number system is the basis for the representation and manipulation of all information within the computer. The 3300 Computer uses l's complement binary arithmetic. The adder forms the sum of two numbers by adding them directly. For example: 0111 +0100 0011 1 1011 augend addend partial sum carry sum Subtraction is performed by the "adding the complement" method. The difference of two numbers is found by first complementing the number to be subtracted, then adding the complement of the subtrahend to the minuend. For example: 1100 - 0010 1010 minuend subtrahend difference The computer performs the subtraction thus: 1100 minuend + 1101 complement of the subtrahend 1001 partial difference + 1 end -around carry 1010 difference These references contain a further description of number systems, including binary arithmetic: 3300 Reference Manual (see appendix section) and An Introduction to Digital Computers. THEORY OF THE ADDER The adder generates and recognizes the carry signals ' which occur when two numbers are added. There are four cases which must be considered in binary addition. These are: *The double-precision add or subtract do not require 0ptional hardware. 2. Pass 1. Satisfy Augend Addend Sum a a +0 +1 1 o 3. Pass 1 +0 4. Generate 1 +1 a with a carry of 1 to the next higher stage 1 Satisfy: For case 1, the stage will satisfy an incoming carry. That is, the stage does not generate a carry during addition and, if a carry input is received, it will not be passed on to the next higher stage. Pass: For cases 2 and 3, a carry input cannot be satisfied within the stage and must be passed on to the next higher stage. Thus, a pas s is generated by all stages with unlike input signals from A2 and X. Generate: For the addition of 1 + 1, case 4, a partial sum of 0 is obtained and a carry is generated and passed on to the next higher stage. A carry input is not satis fied by a stage of this type for it always generates a carry of its own. Signals within the adder form a double pyramid as shown in figure 269. The adder has 24 input stages, one for each bit of A2 and X. These stages are combined into eight 3-bit groups Stages and groups are checked for carry generation and ability to pass a carry. Multiple-group generate and pass signals are then formed. Group carry inputs and stage carry inputs are generated next. Finally, the stage-generated signals are compared with the carry input signals at a rank of output inverters. These inverters produce the complement of the sum of X and A2. The generation of individual signals is treated more fully in the discussion which follows. If the double-precision/floating point option is present, an identical 24 bit adder unit is wired to the left, or above the standard arithmetic adder. This provides: 48 stages (0-47) 16 groups (0-15) 4 sections (0-3) The standard arithmetic adder is sometimes referred to as the right adder and the expanded adder as the left adder. In any case the adder works as a 48 -bit adder, the output of which is always 0 sum. Stage -Generated Signals During addition* the first level of adder translation *The description to follow is concerned with the use of the adder in true addition only. The adder can also form the logical product and the selective complement of two numbers, but this is discussed elsewhere. 253 Outputs to 24 stages of 10 24 stages (0 to 23) Stage outputs Stage carry inputs Group carry inputs (including end -around carry) Section pass and carry generation 8 groups (0 to 7) 3 stages per group 2 sections (0 and 1) 4 groups per section Figure 269. Adder Pyramid occurs at the individual stages. All 24 input stages generate three types of signals: 1. Generate: A stage carry is generated by the LOXX terms (where XX is the number of the stage) when the corresponding bits of A2 and X are both 1 's. L) Bit 0- A2 A500 Bit 0- X XOOO Stage 0 LOOO Pass Group 0 Generate 2. Group Generate: A group carry is generated (L40X = 1) only if one of the stages within that group generates a carry and no higher stage within the group generates a satisfy . Stage 2 Carry L002 Stage 1 Carry L001 Stage 2 Pass U002 Stage 0 Like 3. Like: The U2XX inverters output a 1 when the corresponding bits of A2 and X are both alike. There is no distinction made between both l' s or both 0 's. In this case, the bit in the true sum will be a 0 unless a carry input is made. Group-Generated Signals Second-level translations are made on eight groups of three stages each. Two types of translations are made: 1. Group Pass: A group pass (U3XX = 1) occurs only when there is no satisfy within the group. If both bits of any stage within the group are 0, U300 is driven to a O. There is then a group satisfy. 254 Group 0 Stage 1 Stage 2 2. Unlike: The UOXX inverters output a 1 when the corresponding bits of A2 and X are unlike. This signifies a stage pass condition. In this case, this bit in the true sum will be a 1 unless a carry input is made. A501 X001 Stage 0 Generate Group 0 Stage 0 Carry LOOO Group 0 Pass U300 MUltiple-group Pass and Carry Generation Third-level translations are made on multiples of groups. The translations are: 1. Multiple-group Pass: The U6XX inverters generate mUltiple-group pass signals. These indicate that several consecutive groups contain no satisfy . I Pass Group 1 U401 ~ U612 Pass Pass Group 2 U402--.l . Groups 1-2 2. Group Generate and Multiple-group Pass: The eight groups are considered as two sections, one containing groups 0-3, the other containing groups 4-7. Pass translations from groups 8 -15 are present Generate Group 0 Pass Group 1 U401 Pass Group 2 L300 U402 Pass Group 3 order groups in that section pass the carry_ Generate Group 0 and Pass Groups 1-3 End-Around Carry An end-around carry is generated when any group produces a carry and that carry is passed by all higher groups, including group 7 (group 15 for floating-point/ double-precision). Figure 270 shows the logic which recognizes and inserts the end -around carry . Special logic is required to handle the end -around carry for 48 -bit precision add and subtract (32 and 33 instructions) . U403 only when floating-pointjdouble-precision hardware is in the computer. The L50X inverters come up only when a group generates a carry and all higher FADRl +32+73 F99a F'iUiRl J521 CARR~ fROM £liP !lDDER U702{J) F!i97 CARRY lNH! 1 FROf'l GR01JP ' (! LSDoa' 1 L5C1 2 '.sO;: , U 00 l U304 PASS GRPS \l -7 U3CS UJ06 J 2D1~B K535 U6l'0 (II) U30"1 I PASS L15S in 5:~(~ U200 I L7. 5T5 ° uooc [a) UNLIKE 51G 0 , PA5SUOOO SHIGE ° +1 LOOO ' SUI'! = 4 -15 ~32+3J)(FADR1J >i cWfl-----t-l-------~~-, Cs= L',~~13A _______ --<.t----@0aA I I 2009'1 I f (FP 6U5~)(~)US01 (Fp 6 L403---r7-'--------J 2012B 3~ -LA-~~~ [~:~~~RDUND 'I ( 1(5 -D BUSY)(PASS 12-1S)US02 Ol DP FI'IDR 1 J521 END-I'IROUND CI'IRR'f +1 'I LS04 5 L505 6 LS06 7 L407-------' GENERATE PASS UDOl 1 2 f----------G--HlU102 IOP U700 U701 1 1 F9 98 TII1E 5 GEN LflOl V595 l 1- --=-EN=D----:-:I'IR:-::-O:-::UN=D-,C-I'I-=-:RR=.., CRRRY FROM i INPUT GROUP - - - - (9) r __1' GROUP STRGE CRRRY--CRRRY- - iNPUT INPUT Figure 270. Group Carry Inputs The fanout of adder signals begins with these fourthlevel translations. The carries and group pass signals have now been determined. Atthis level, the multiple .. group pass and generate signals are translated for each output group by inverter networks (shown in the diagrams), to determine if that group has an incoming carry from a lower group. The end-around carry is the group carry input for group O. (See figure270). Stage Carry Inputs Carry inputs are made to the rank of output inverters. These are compared with the original stage translations to determine the final sum. The group carry input is inserted into the lower stage of each group, thus effectively serving as the stage carry input. A stage carry input to the second stage of each group is made if the lower stage generates a carry or passes an incoming group carry . A stage carry input to the third stage of each group is made if the lower stages generate and pass a carry, or if they pass an incoming group carry. stage carry translators are shown in figure 270 (L10X, L20X). ~L002 LIKE - -- - SiAGE GEN 2 j -SUM Logic for End-Around Carry Generation of Final Outputs The output of the adder is obtained from the UIXX inverter rank (figure 270).. This output is the complement of the true sum. The determination of the final output is made at this rank. The original stage translations, like and unlike, are compared with the group and stage carry translations. Four possible cases must be translated (two AND gates required) to determine the output. Two conditions produce a true sum of 1 (UIXX = 0): 1. A2 and X unlike (UOOO =1), no carry input (LI00 = 1). 2. A2 and X like (U200 = 1), carry input (L200 = 1). Stage o Group 0 Carry Unlike LI00 UOOO Stage o Group 0 Carry Like L200 U200 J UiOO The other two possible conditions produce a true sum of 0 (UI00 = 1): 1. A2 and X unlike (UOOO = 1), carry input (L100=0). 2. A2 and X like (U200 = 1), no carry input (L200=0). Note that the last two conditions will cause both gates into U100 to be disabled by zeros. 255 ADDER Worksheet The following two programs are intended to provide static additions that will help in troubleshooting the adder. All of the terms in each rank will provide the same output under normal conditions. Indicate the SIGNAL output for each rank for each program by filling in the table below. Master clear and press GO for each of the following separate programs. PROGRAM #1 00000: 14.400000 00001: 15.400000 00002: 77. 770000 PROGRAM #2 00000: 14.400000 00001: 15.477777 00002: 77.777070 LOXX: Stage generate UOXX: Stage unlike U2XX: Stage like L3XX: Not group generate L4XX: Group generate U3XX: Group pass U4XX: Not group pass L5XX: Section generate U5XX: Not groups pass U6XX: Groups pass U7XX: Not group carry input L2XX: Group carry input Stage carry input L1XX: Not group carry input Not stage carry input U1XX: Not sum IOXX: Sum This worksheet will familiarize the student with the adder and, when completed, the sheet will aid in troubleshooting adder malfunctions. Referring to Logic Diagrams (Adder, pages2-119to 2-125 and the previous discussion in this chapter, circle the proper answers for each question based on the following problem. Problem: Add 77777777 to 77777777 1. All LOXX terms will be outputting 1 's/O's because all stages/groups are/are not generating. 2. The UOXX terms will be outputting 1 's/O's because all bits are/are not the same. 3. The U2XX terms will be outputting l's/O 's all stage s are I are not identic al . becaus~ 4. The U3XX terms will be outputting 1 's/O's because they are/are not satisfying in the stages/groups. 5. The L50X terms have 1 's/O 's out because all/none of the stages/groups are/are not generating. DOUBLE-PRECISION EAC A special case of end-around carry is double-precision add or subtract explained below. A 48-bit add or subtract is performed using two, three, or four passes through the adder. The steps necessary for the add portion of the instructions are: LOGICAL PRODUCT The adder is used to form the logical product (AND function) of two numbers for instructions 17, 27, 37, and the search 2 cycle of the 06 and 07 instructions. The logical product is formed according to the following rules: 1. The upper 24 bits of the two 48-bit operands [(A) and (M)] are added during the first pass through the adder. An end-around carry is blocked because the +1 FFisclear, holdingL200to a 0 (figure 269). Ifanend-around carry occurs (U700 or U701 = 0)" EAC (end-around carry) FFand the +1 FF are set. 2. On the second pass through the adder the lower 24 bits of the two operands [(Q) and (M+1)] are added. A carry from the upper bits (if present) is inserted into group 0 of the adder (+1 FF is set, so L200 = 1). This addition may also produce an end-around carry. If so, EAC and +1 are set; otherwise they are cleared. 3. A third pass through the adder then begins, but is allowed to continue only if an end-around carry has occurred. On this pass, +1, the carry from the lower 24 bits is added to the upper 24 bits of the 48 - bit sum. Once again this addition can produce an end around carry. EAC and +1 are allowed to remain set if carry occurs, or cleared if it does not occur. 4. A fourth pass is now made. The carry from the upper bits is added to the lower 24 bits of the sum. There can be no more carries so EAC and +1 are cleared. A fifth adder pass begins but it is blocked. An example of 48 -bit addition thattakes four passes through the adder is shown below; A2 X Logical product o o o 0 1 1 o 1 1 o 0 1 The translation of a 17, 27, or 37 allows r070 _I078 to output l's (figure 271). All stage and gnmp carry inputs are held to 0 by these inverters, locking out all interaction between the 24 stages. The logical product is determined then only by input stage translations. As shown in figure 271, a bit in the logical product is a 1 only if a carry is generated by the input stage. Bit 0 Final Output Rank Input Stage 0 A2 and X = 1 A500 XOOO LP Generate Sel. Comp .. 1080 F979 17+27+37 + Search 2 Cycle Figure 271. Logical Product Generation Upper 24 bits 777777778 000000008 777777778 Lower 24 bits 777777778 000000018 First Pass 000000008 Second Pass Carry +18 / Third Pass Carry 18 000000008 I Carry +18 000000008 Fourth Pass 00000000 000000018 Final Sum SELECTIVE COMPLEMENT The adder is used to form the selective complement (exclusive OR function) for instructions 16 and 36. Ex..,. clusive OR means one term or the other but not both). The selective complement is formed according to the following rules: A2 X Selective complement 0 0 0 0 1 1 1 0 1 1 1 0 The translation of a 16 or 36 allows 1080_1082 to output l's (figure 272). These inverters prevent input carrygenerationby holding all LOXX (generate) terms to O. Since stage carries are locked out, there is no interaction between adjacent stages. 257 As shown in figure 2 7~, a bit in the selective com pIe ment is a 1 only if A2 and X are unlike. Adder output is the complement of the selective complement. Bit 0 Generate 16+36 F97I Selective Complement )--+-I~:':"::....J-_...;;U~n1=i=k=e....V"t...:..::..:..:.J SC A2 +X A500 XOOO Carry input LIOO Figure 272. Selective Complement Generation ARITHMETIC CONTROLS All arithmetic operations must be timed and signals must occur in proper sequence. Timing and sequencing is determined by arit~metic controls which include F2 register, arithmetic function translators, arithmetic timing chain, shift cycle timing chain, complement and swap cycle timing chain, inverter enables, flip-flop translations, and the shift count register. Although the arithmetic section contains independent timing logic, it is directed by the main control section. Main control reads an instruction from storage and, if the execution of that instruction involves an arithmetic operation, main control sends a start pulse to the arith metic section at the proper time. Once indexing and/or indirect addressing have been performed, the final execution of enter, shift, increase, logical, load, and arithmetic instructions is performed entirely by the arithmetic section with no aid from main control. This frees main control to read the next instruction while arithmetic simultaneously completes the current instruction. A relatively long time is required to process certain instructions. It is possible that main control will have read another instruction before arithmetic has finished processing the current one. Therefore arithmetic busy FF is set ¢ormultiply, divide, shift, BCD, and floatingpoint and some double -precision instructions) to lock out . all¥--fw:thcI .sta.r.t. _..pu.ls.cs_- . Jf.-tr..c-IlCW--lr..suuction requires use of the arithmetic section, operations in main control halt after RNI and do not continue until arithmetic operations are finished and arithmetic busy signal drops. If an arithmetic reference is not required 258 by the new instruction, main control continues to operate and will execute that instruction. F2 REGISTER The contents of the upper nine bits of F 1 are duplicated in F2 arithmetic register when an instruction is read from memory. This takes place during every RNI. F2 register which controls the arithmetic enables is decoded separately from the main control function translations. To understand the necessity for using F2 for arithmetic function translations consider this case: 1. Main control reads an instruction which requires a lengthy arithmetic operation. 2. Main control duplicates (F 1) in F2 and starts the arithmetic timing chain. Main control has no further operations to perform in executing this instruction. 3. Therefore main control initiates a memory reference for a new instruction word while the arithmetic se~tion is executing the present instruction. 4. The new instruction word is received by main control and gated into F 1 while the arithmetic section is still executing the previous instruction. (F 1) is not duplicated in F2 until the arithmetic section has completed execution of the previous instruction. Note that step 3 effectively decreases program execution time, while step 4 insures proper instruction execution of the new instruction in F 1. The function code in FI is duplicated in F2 by the logic shQwn in figure 273. The gating signal which transfers the new word into F 1 (N206) also sets initiate Fl-+F2 and the wait function. Wait function locks out a start arithmetic pulse until the upper nine bits of F 1 have been duplicated in F2 and decoded. Figure 273. Fl to F2 Logic During the first odd time after initiate F 1 ..... F2 FF is set, a pulse H518 begins the F code transfer. However, this pulse is blocked under two conditions: 1. Interrupt sync, trap sync, or powerfail FFs are set. The current instruction is superseded by one of these operations and is reread when the interrupt has been processed. 2. Arithmetic is busy (V 109 = 0). F 1 ~F2 is blocked until busy signal drops. If main control must start arithmetic before doing the next RNI~ it hangs up ~.atk.~-~1.tf~~ u.RtU~-d:ro.ps,.1l1""E2 occurs, and wait function is cleared. This hangup occurs at the N6XX terms (start arithmetic). If it is not necessary to use arithmetic, main control continues instruction execution (figure 274). Shown are three bits of F2 which duplicate bits 18, 19, and 20 of F1 register. N550 is the gating term. N552 gates bits 21, 22, and 23. N554 gates bits 15, 16, and 17. Thus, every RNI sequence will cause F1 to be duplicated in F2. the contents of the upper nine bits of F1 are put into F2 whether or not the arithmetic section is to be used. F'as FZ03 Figure 274. F1 to F2 Duplication As the signal passes down the chain (figure 275) the control delay slave inverters gate F 1 ~ F2. The timing chain consisting of H518, H519, and H520 serves to initialize the arithmetic section. Initializing of the arithmetic section involves clearing shift count register and sensing the signs of A and Q registers. If (A) or (Q) were negative the fact would be recorded in flip-flops.. This initializing of arithmetic occurs each RNI sequence even if arithmetic is not to be used. The arithmetic section function translators (F8XX and F9XX) translate the 6-bit function code (from F2) and the three designator bits. The results of the translations are used to gate the commands which carry out the required arithmetic operations. (See Logic Diagrams, page 1-35.) The major arithmetic timing consists of six control delays. In most cases one pass for arithmetic timing will be six ~ times long. Shown are some of the common transfers that are part of arithmetic timing. Note that clearing of registers occurs at an even time and transfer occurs at an odd time. Only in a few special cases will you find the opposite. N691 (CLR A2X ADDER-FEEDERS CLR Q2) ~ATE I~TO A2 10 X CLR AI ,Q I GATE 19 TO AI 11 TO Qj I TOQ2 Figure 275. Arithmetic Timing Chain (Simplified) The arithmetic timing chain can be started by main control, block control, or manual timing. In any case, to start the arithmetic timing chain one of two flip-flops must be set. Either KIOO/I0l (gtartarith .1) or KI04/105 (start arith 2) will be ~et to cause the start pulse from N687, N691, N693, and N659 (figure 276). K100/101(startarith 1) andK104/105 - (start arith 2) are shown in Logic Diagrams, page 2-7. ~+---+--f H5'1 INT + TRAP + POWEItf'AIL K~13 .1140 .1506 .1319 .OU WAIT FUNCTION KYBD ACTIV[ i+"'Q START iOlOciOOl Figure 276 . K100/101 OR K104/105 Set ADDRESS MODIFICATION (FADR) There are two uses for the F ADR cycle. The first is the adding together of address portion of an instruction word and contents of an index register (Bb ) to form a new address. The sum of m and Bb is gated back to the lower portion of the F register to be used as the address for a storage reference. m+sb=M The index register to be used can be determined by the b designator of the instruction word (e .g., 20.1 or 20~2) or by the function code (e.g., fixed-index instructions 22.4 or 42. 4) • Indexing may be required for a RADR, ROP, or STe:> sequence. Thus, indexing will be initiated only at the end of RNI or RADR sequence. Address modification will be referred to as FADR (form address). F or the FADR operation there will be a function translation of indexing. This will cause a static enable of the designated Bindex (clear side) to the 16XX inverter rank in main control. There will also be a static enable of the lower 15 or 17 bits of F 1 register to 15XX inverter 259 rank. These enables will be static during the FADR operation (figure 277). r-------------, ---+bc Bb ---+ I6 I ~Adder---..IO__+!FL FL~ I5~? : I I I I L_Ar~~~~ic s:.c~~_J The lower 15 bits of Fl register are used for a wordaddressed instruction and the lower. .l7 bits are used with a character -addressed instruction. For all F ADRs main control will extend the sign on the value from :sb and FL: Example: Values added B1 = 34567 00034567 = B1 with sign F = 20.177760 77777760 = F L with sign Figure 2'77. The Flow Path for FADR TIMING FOR FADR TIME V080 or V082 TERM K100/101 COMMAND Start arith 1 CONDITION Indexing REMARKS Provides entry to the indexing sequence at the end of RNI or RADR. When KIOl=l, it will set K536/ 537 (FADR 1) and K596/597 (FADR 2) FFs. The arithmetic section will perform the same operation determined by translation of the instructions function code. If F 1 and F2 registers hold a 50.2 the trans1ators tell arithmetic to do a mUltiply. This is not what N691 N691 HI00 H510 V5IOjV530 H501 Clear X and A2 V100 H57l H54l KIlO/Ill Clear KlOO/lOl KIlO/Ill V501 H502 (Arith busy) (Wait function) X and A2 are cleared. A2 is cleared by N520, N522, and N524 (Logic Diagrams, page 1-29). The output of the HXXX terms on the AND gate to these N52X terms is a logical 1 in a stable state. H510 going to a 0 because of its input will V530 V530 VIOO V100 arithmetic should do to form address M for anFADR. When set, the purpose of FADR 1 and FADR 2 FFs is to cancel function translations for the arithmetic sections. The flip-flops remain set during FADR. permit N520, N522, and N524 to output 1 's, clearing A2 at the next even time (effectively, V500). N640, N642 and N644 will clear X register. At the same time the following is taking place: 15XX to A2 16XX to Xl I OXX to F Enable 10 to F Clear start arith. I . Permits gating sum (M) to FL later. I6XX is gated to X and I5XX is gated to A2. x=sb with sign extension and A2 = FL with sign extension The sum of A2 and X will be formed by the adder. A static enable from the adder IS output to the 10 inverter 260 rank is caused by J825, J826, andJ827 (Logic Diagrams, page 1-34). TllvlING FOR F ADR COMMAND REMARKS CONDITION TllvlE TERM: VS02 VS02 H503 H201 VS03/VS23 VS23 HS04 HIIO V554 VS04 VIIO VIIO K596/597 HSOS KOOO/OOI H271 VIIO HIOS H271 (IO to F, 1-10) VSOS VIOS NOSI HI02 HI06 KOIO/Oll Gate rOXX to F; FL = M = m+Bb End arithmetic at V 505 time. Indexing is completed and the selected sequence is continued. VI02 Clear KS36/S37 Clear KIlO/Ill VI06 H201, clear F, 1-10* Clear F (lower 15 or 17 bits). Word address-- Lower 15 bits of F are cleared. Character] __ ~ .-- Lower 17 bits of F are cleared. address Clear FADR 2 FF Set request bus IOXX to F L Initiate a storage reference. Set main control priority Clear FADR I Clear enable IO~F While the arithmetic section was doing FADR, main control was awaiting arithmetic time 3 (VS23) to input HIIO. VIIO is required to setKOOO/OOI (request bus) TllvlE 20 1XXXXX (FADR) COMMAND V080 N691 VSOO Set start arith I Start arithmetic pulse Clear A2 and X (adder feeders) VSOI IS to A2 JE to IS static) 16 to X (J3b to 16 static) whether FADR has or has not been completed. Let's compare the major points of timing for the 20.IXXXXX and 20. OXXXXX instructions 0 20 OXXXXX (FADR) n 0 TIM:E COMMAND V080 VI09 VIIO -r-- Set Kl12/113 Input HllO Set KOOO/OOI ~~ 4 ~ times difference VS02 VS03 VS04/VIIO VSOS Clear FL and input HIIO Set KOOO/OOI (request bus) 10 to FL (adder to 10 static) Four phase times are added to the instruction execution time for each FADR. How many microseconds isthis? _____________________________________ This process involves adding +1 to (FL) to form an address M+ 1. The second operation is the forming of the second operand address for the 32 and 33 instructions (also for double-precision and floating-point arithmetic if the option is present). OPERATIONS IN THE ARITHM:ETIC SECTION Instructions for the 3300 may be divided into several groups in which the instructions require similar arithmetic operations. These are, in order of complexity: jumps and skips, copy, interregister transfer, storage shift, enter, load, increase, logical, replace add, store, masked search, compare, shift and scale, add, * Logic Diagrams 261 subtract, multiply, and divide. The arithmetic operations required by each of these groups are discussed in this chapter. In most cases the main control operations involved for each instruction are not detailed, as it is assumed that you have read about main control. The 3300 command timing charts provide a complete phase -time by phase -time description of the execution of each instruction. The instructions in the optional DeD and floatingpoint/double -precision packages also require use of the standard arithmetic section. JUMP AND SKIP INSTRUCTIONS (02 -OS, 10.1-10.7) During execution of jump and skip instructions the arithmetic section is used to add two operands to form a quantity which conditions certain operations. The addition performed here is not for the purpose of forming a usable sum; rather, a comparison is made by using the addition process. These instructions are executed during RNI, so indexing and indirect addressing cannot be performed at that time. A, Q, Bb Jumps and Skips (03-05) The jump and skip instructions listed in table 17 require one pass through the adder during instruction Table 17. CODE execution. The general steps for executing these instructions and the arithmetic operation for each is shown in table 17. 1. Jump or skip instruction is obtained from storage and decoded during RNI. 2. Start arithmetic. 3. Clear X and A2 (adder feeders). 4. Gate operands to be added to form control quantity (listed for each instruction in table 17 into A2 and X. 5. Form sum in adder. (Sum is actually difference because the complement of one operand is gated into X.) 6. Test sum for required condition. Set jump FF or skip FF if test is satisfied. Sum is not gated from adder but is tested by jump or skip sensing network. 7. Perform a jump or skip exit to next RNI if condition is satisfied. Normal exit is made to next RNI if test condition is not satisfied. Incremental/Decremental Index Jumps and Skips (02.1-3, 02.5-7, 10.1-7)* The index jump and index skip instructions are conditional on the contents of a selected index register. *02.0 and 02.4 are no-ops. A, Q, AND sb JUMP AND SKIP INSTRUCTIONS INSTRUCTION CONTROL QUANTITY FORMED BY ADDER TEST MADE 03 .. (0-3) Compare A with zero, jump Test* for (AI) equal, unequal, greater, or less than zero. Arithmetic timing chain is started, but adder is not used. (AI) is sensed directly. . (4 -7) Compare A with Q, jump Test* for (AI) equal, unequal, greater, or less than (Q1). Sum = (AI) + (Ql) (£) = equal + = greater than - = less than (Bb) - Y ::;: O? (AI) -.y ::;: O? (Q1) - Y ::;: O? Sum Sum Sum (Bh) - y ::;: O? (AI) - y ::;: O? (QI) - Y = ()? Sum = (sb) + Y Sum = (AI) + v** Sum::;: (QI) + y** 04. .(0-3) .(4,6) • (5, 7) 05. .(0-3) .(4-6) .(5-7) Skip next instruction if (sb) = y (A) = y (Q) = y Skip next instruction if (sb) = y (A) = y (Qf==y *Test condition determined by designator j, bits 15-17. **y is sign extended for XX. 4 and XX. 5. 262 = (sb) +y = (AI) + y** = (Q1) + r* The state of this index register is sensed to determine if a jump or skip is to be taken, and also if an increment/ decrement index operation should be performed. Index Jump: (Bb) is sensed for equality with zero. If (Bb) = 0, the test condition is not satisfied and a normal RNI from P+1 is performed. If (sb) f 0, sb is incremented (02 .1-02.3) or decremented (02.5 -02. 7), and a jump to address m is performed. The steps in execution of index jump are: 1. Instruction is obtained from storage and decoded during RNI. 2. Set jump FF if Bb f O. (State sb is sensed by indexsensing networks.) 3. Start arithmetic timing (occurs regardless of state of sb). 4. RNI from address m if (sb) f a and jump FF is set. RNI from P+1 if (sb) = O. Arithmetic section now completes execution of index jump while main control simultaneously performs RNI. 5. Clear X and A2. 6. Gate (Bb ) to X via 16 . Gate output of IS to A2 (+1 for incrementalindex jump ~ -1 for decremental jump). 7. Form sum. 8. Clear Bb. (This command is blocked when jump FF is not set.) 9. Gate sum through 10 into sb. (This command also is blocked when jump is clear.) Index Skip: (Bb) is compared with y for an index skip. If (13b) = y, Bb is cleared and a skip to P+2 is performed. If (Bb) :f y, Bb is incremented (10 .1-10.3) or decremented (10.5-10.7) and an RNI is made from P+1. (This instruction will skip only if y = 00000 or if y = 77777 for 10.4.) The steps in execution of index skip are: 1. Instruction is taken from storage and decoded during and RNI enable. 2. (F). IS and (Bb) "16 . 3. Start arithmetic timing. 4. Clear X and A2. 5. Gate F L into A2 via IS; gate (Bb) into X via 16 • 6. Add (Bb) andy. Yis FL. (Both F and Bb are sign extended). This operation subtracts (y) from (Bb); If sum = 0, they were equal. 7. Enable +1 (incremental skip) or -1 (decremental skip) from IS • 8. Set skip FF if sum = a(Bb = y). Output of adder is sensed by skip-sensing network. 9. Set skip 2 FF is skip FF is set. 10. Start arithmetic. 11. RNI from P+1 if skip condition is not met «Bb ) f y), from P+2 if skip condition is met = y). Arithmetic simultaneously completes execution of index skip. 12. Clear X and A2. 13. Gate (Bb) into X via 16 . Gate +1 (incremental skip) or -1 (decremental skip) into A2 via IS. 14. Form the sum of (Bb) + 1. 15. Clear Bb. (sO 16. Gate the sum from adder to Bb via 10 . (This command is blocked when skip 2 is set.) COPY INSTRUCTIONS (77.2 ch 0000, 77.3 ch 0000) The copy instructions load the contents of interrupt mask register into the upper 12 bits of Al and the external status code for 77.2 (ch) 0000 instruction or internal status code for a 77.3 (ch) 0000 instruction into the lower 12 bits of AI. The steps in executing copy instructions are: 1. Obtain instruction from storage. 2. Set status~A FF. 3. Clear AI. 4. Gate contents of interrupt mask register and status to AI. (External status code from I/O channel ch for 77 .2 (ch) 0000, internal status code for 77.3 (0000). 5. Clear status ~ A FF 0 6. RNI from P + 1. SINGLE-PRECISION INTERREGISTER TRANSFER(53) The interregister transfer instruction is used to move data between Al and Ql registers, index registers, and register file. The single -precision interregister transfer instruction is composed of eleven subinstructions, each of which performs a separate transfer. These instructions and the steps in their execution are: 1. Transfer (sb) to Al (53.0 (1-3) 0). 2. Obtain instruction from storage (RNI). 3. Start arithmetic, then RNI from P+1 while arithme tic completes execution of instruction. 4. Clear X and A2. 5. Gate (Bb) to X via 16 . A2 remains clear. 6. Form sum, (Bb) + 0 = (sb)o 70 Clear AI. 80 Gate sum, (Bb), into Al via 10 • 9. Transfer (AI) to )3b (53.1 (1-30) 0). 10. Obtain instruction from storage. 11. Start arithmetic, then RNI from P+l while arithmetic completes execution of instruction. 12. Clear X and A2. 13. Gate (AI) into X via 12. A2 remains cleared. 14. Form sum. 15. Clear Bb. 16. Gate sum, (AI), into Bb via 10 • 17. Transfer (register m) to Q (53. 01). 18. Obtain instruction from storage. 19. Start arithmetic, then RNI from P+1 while arithmetic completes execution of instruction. 20. Register file reads (register m) into ZO. 21. Clear DB register. 22. Gate (ZO) through 17 and EXX2 into DB register. 23. Clear X and A2. 24. Gate (DBR) and (register m) into X via 14. 25. Clear Ql. 263 26. Gate (X) into Ql via II. Ql now contains (register m). 27. Transfer (Q) to register m (53.41). 28. Obtain instruction from 1:)torage. 29. Start arithmetic. 30. Clear X and A2. 31. Gate (Ql) into X via 13 . Meanwhile, block control prepares register file to receive word by loading address into S, issuing a register file write, and starting delay line timing. 32. RN1 from P+1 while block control simultaneously completes execution of instruction. 33. Clear DB register. 34. Gate (X) into DB register via 17 and EXX20 «Ql) now in DB register.) 35. Clear Zl (block control register). 36. Gate (DBR) into Z1. 37. Write word, (Ql), from ZI into register m. 38. Transfer (register m) to Al (53.02). 39. Obtain instruction from storage. 40. Start arithmetic, then RNI from P+ 1 while arithmetic completes execution of instruction. 41. Register file reads (register m) into ZOo 42. Clear DB register. 43. Gate (ZO) into DB register via 17 and EXX2. 44. Clear X and A2. 45. Gate (DBR) into X via 14. 46. Clear AI. 47. Gate (X) through the adder to 1° and AI. Al now contains (register m). 48. Transfer (A) to register m (53.42). 49. Obtain instruction from storage. 50. Start arithmetic. 51. Clear X and A2. 52. Gate (AI) into X via 12. Meanwhile, block control prepares register file to receive word by loading address into S, issuing a register file write, and starting delay line timing. 53. RNI from P+1 while block control simultaneously completes execution of instruction. 54. Clear DB register. 55. Gate (X) into DB register via 17 and EXX2. (AI) now in DB register.) 56. Clear Z 1 (block control register). 57. Gate (DBR) into Zl. 58. Write word, (AI), from Z1 into register m. 59. Transfer (register m) to sb (53. (1-3) 3). 60. Obtain the instruction from storage. 61. Start arithmetic, then RNI from P+l while arithmetic and block control complete execution of instruction. 62. The register file reads (register m) into ZO. O~. Gate (ZO) into DB register via 17 and EXX2. 64. Clear X and A2. 65. Gate (DBR) into X via 14 0 A2 remains cleared. 66. (X) propagates through ackler and is statically enabled to 10. 67. Clear Bb. 264 Gate s urn into Bb via 10 0 sb now contains (register m). 69. Transfer (sb) to register m (53. (5-7) 3). 70. Obtain instruction from storage. 71. (Bb) to 16 , 16 to 17 , 17 to EXX2 are statically enabled. 720 Start arithmetic (arithmetic timing not used for this instruction), then RNI from P+l while block control completes execution of instruction. 73. Clear DB register. 74. Gate (sb) from EXX2 into DB register. 75. Clear Zl. 76. Gate (DBR) into Z1. 77. Write word, (sb), from Zl into register m. 78. Transfer (A) plus (Q) to A (53.04). 79. Obtain instruction from storage. 80. Start arithmetic, then RNI from P+1 while arithmetic completes execution of instruction. 81. Clear X and A2. 82. Gate (Ql) to X via 13 Gate (AI) to A2 via 12 83. Form sum. 84. Clear AI. 85. Gate sum into Al via 10 • Al now contains (AI) + (Ql). 86. Transfer (A) plus (Bh) to A (53. (1-3) 4). 87. Obtain instruction from storage. 88. Start arithmetic, then RNI from P+1 while arithmetic completes execution of instruction. 89. Clear X and A2. 90. Gate (sb, -sign extended) into X via 16 . Gate (AI) into A2 via 12. 91. Form sum. 92. Clear AI. 93. Gate sum into Al via 10 . Al now contains (sb) + (AI). 94. Transfer (A) plus (sb) to sb (53. (5-7) 4). 95. Obtain instruction from storage. 96. Start arithmetic, then RNI from P+l while arithmetic completes execution of instruction. 97 . Clear X and A2. 98. Gate (sb, -sign extended) into X via 16 . Gate (AI) into A2 via 12 99. Form sum. 100. Clear Bb 101. Gate sum into sb via 10 . Bb now contains (AI) + (Bb). 68. 0 0 0 STORAGE SHIFT (10.0) The storage shift instruction reads a word (m) from storage, senses the sign bit and sets skip if the sign is negative, shifts the word one place left (end -around), then replaces it in storage. The next instruction is read· fr()m P+ 1 if the sign is positive. If the sign is negative and skip is set, a skip to P+2 is performed. The steps in the execution of the storage shift are: 1. Instruction is obtained during RNI. ROP is then 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. performed to read word at location m. This word is placed in DB register. Begin STO. Start arithmetic. While arithmetic completes shift of (m), main control prepares for return of word to storage by obtaining bus priority and transmitting a write and the storage address to memory . Clear X and A2. Gate (DBR) to X via 14. Set skip if the sign of (m) is negative. (Sign was checked in DBR). Gate (X) into Q2left. This transfer always places (X) shifted one place end -around into Q2. Clear X and A2. Gate (Q2) into X via 14. This places (m - left 1) back in X ready for return to storage. Enable (DBR) to data bus transmitters. Clear DB register. Gate (X) into DB register via 17 and EXX2. Because (DBR) has already been enabled to transmitters, (m - left 1) is immediately transmitted to storage. Main control then waits until reply from storage starts storage time -out chain. Drop bus priority and storage request. RNI from P + 1 if skip is clear (original sign of (m) positive), or RNI from P+2 if skip is set (sign of (m) negative). ENTER INSTRUCTIONS (11, 14) The 14 instructions place a quantity y (lower bits of the instruction word) into AI, Ql, or:sb. The 11 instruction places a quantity r (lower 17 bits of the instruction word) into Al . The steps in execution of enter character address into A (11) are: 1. Instruction is obtained and decoded during RNI. 2. Start arithmetic, then RNI from P+l while arithmetic completes execution of instruction. 3. Clear X and A2. 4. Gate lower 17 bits of F (sign extended for bit 17 = 1) into A2 via IS. X remains cleared. 5. Form sum (FLI7). 6. Gate sum, (F L), into Al via 10 • The steps in execution of enter A, Q, or sb with y (14) are: 1. Instruction is obtained and decoded during RNI. 2. Start arithmetic, then RNI from P+l while arithmetic completes execution of instruction. (Arithmetic timing occurs but is not used for enter Bb with y.) 3. Clear X and A2. To execute enter A with y (14.4 or 14.6), gate y, lower 15 bits of F (sign extended for 14.4), intoA2 via IS. X remains clear. Form sum. (This is done in all cases, but output of adder is used only for enter A.) To execute enter Q with y (14.5 or 14.7), gate y, lower 15 bits of F (sign extended for 14.5), into lower X v;ia 16 • A2 remains clear. Enter sb with y (14.0-14.3). Clear she Enter Enter Enter Enter Enter Al with y (14.4 or 14.6). Clear AI. QI with y (14. 5 or 14.7). Clear QI. Bb with y. Gate lower 15 bits of F into Bb. Al with y. Gate sum, (F L)' into Al via 10 . QI with y. Gate (X) and (F L) into Ql via II. LDA (20) Instruction Setting of KI04/I05 (start arith 2 FF) at V008 time will cause N691 to start the arithmetic timing chain,. The arithmetic timing chain will enable: Clear to A 2 - - - - -...... } DBR to 14 to XI Sum to 10 to Al _ _- J LACH (22) Instruction Identical to LDA (20) instruction with one exception: I4 L6 to X instead of I4 to X. (Referto Logic Diagrams, page 2-93). F967 will knock down N643, N645, and N647. LCA (24) Instruction Identical to LDA (20) instruction with one exception: DBR~ 14 instead of DBR to 14 (Refer to Logic Diagrams, page 2-151). F802, F823, and F882 input a 1 to 1904, knocking it down and causing an output from 1905 to 1908. 0 LDAQ (25) Instruction In this instruction we are concerned with an ROP to ROP. In the first ROP two things occur: 1. ClearA2~ DBR to 14 to X~ Sum to 10 to A 2. An FADR operation is started by setting KIOO/IOI (start arith 1 FF) at V002 time. K060/061 enabled setting of KIOO/IOI and also forced 16 to output a +1. FADR consists of adding +1 to M to form the address for loading (QI). In the second ROP, DBR to 14 to Xl to II to QI is caused by setting of KI04/I05 at V008 time. NOTE: K502/503 (originally called loadop, now LDAC + LDAQ) helps to enable data paths on the second ROP. LCAQ (26) Instruction Identical to LDAQ (25) instruction with one exception: DBR to 14 instead of DBR to 14. (Refer to Loglc Diagrams, page 2-151.) F802, F823, and F882 input a 1 to 1904, knocking it down and causing an output from 1905 to 1908. LD L (27) Instruction Identical to the LDA (20) instruction with two exceptions: 1. QI to 12 to A2 instead of O' s to A2. (Refer to Logic Diagrams, page 2-139.) K5II, F940, F915, and 265 RADR RNI and decode F ;;: 20, 21, 24, 25, 26, 27 ,. .... ~ No ..... Yes b = 07 .... ~~ a = 07 No ..... RNI and decode F = 22, 23 .. Yes FL15 + sb to FL15 ~ m+sb=M .... .. . F L15 + Bl to FLI5 m+sb=M RNI and decode F = 54 54**** 20 22* 24** 25 26** 27*** LDQ LQCH 21 23* } LDAQ 25 LCAQ 26** ROP Clear A2 _ _ __ ~- DBR to 14 to Xl~ Sum to 10 to Al DBR to 14 to Xl to II to Ql Substitute: *14 L6 to X4 **DBR to 14 ***~I to ~2 to A2 lI'>i (A), RNI from addreSR P + 1; if not, 2. Subtract (Q) from (1\:1). If (Q) > (1\:1), RNI from P + 2; if not, 3. RNI from address P + 3. Comments: The final state of the (A) and (Q) registers remains unchanged. (A) must be > (Q) initially or the test cannot be satisfied. 77777777 is not sensed as negative zero. means more It should be noted that the symbol 90sitive than for this instruction. This Advance P is a Special Case for This Instruction. Advance P Occurs Normally in RNI not ROP. ROP Advance P (A) - (M) no If Sum Positive (A) > (lVI) yes Is Sum Negative? If Sum Negative (1\1) was> (A) (M) - (Q) no Is Sum Negative? p yes Set Skip RNI at p-r- 1 RNI at P+2 If Sum was Negative (Q) > (M) RNI at P";"3 '---___ J (A» (M» (Q) The following items are of note for a 52 instruction: 1. At V004 time of ROP, H231 is pulsed to advance P. <, started to perform (A) - (1\1). If the sum is negative but! not -0, (IVl) is greater than (A). This is sensed by the hard\vare by K584/585 (CPR Out of Limits) remaining set at Arithmetic time 5. III this case the Block P FF will be set and an RNI 278 Figure 281. Flow Chart for CPR Compare will be initiated at P + 1. 3. If (1\:1) ~ (A) a second Arithmetic pass, which is the sum is negative but not -0, (1\1) is less than (Q). This is sensed by the hardware by K584/585 (C PR Out of Limits) remaining set at Arithmetic time 5. In this case a normal exit to RKI is performed and RNI will occur at P + 20 Instruction Description: (A) is compared with the logical product of (Q) and (M). This instruction uses index register B2 exclusively. m is modified just prior to step 3 in the test below. 4. If the sum is positive or -0 at time 5 of the second Arithmetic pass (M) is within limits. In this case the Skip FF is set and an RNI is performed at P + 3. 5. If (1\1) (A) the second Arithmetic pass is blocked at the input to H501 byK584/585 (CPR Out of Limits) being set. 6. The CPR Out of Limits FF is set at time 4 of each Arithmetic pass. It is cleared at time 5 if a within limits condition exists by J564 and V585. Instruction Sequence: 1. Decrement (B2) by 1. (Refer to table belmv. ) 2. If (B2) changed sign from positive to negative, RNI from P + 1; if not, 3. Test to see if (A) >- (Q) ,. (lVI). 1\1 = m + (B2). If (A)'::: (Q) • (M)~ RNI from P + 2; if not, 4. Repeat the sequence. MEQ MASKED EQUALITY SEARCH 23 18 17 15 14 00 m 06 i = interval designator, 0 to 7 m = storage address Figure 282. Comments: i is represented by 3 bits permitting a decrement interval selection from 1 to 8. Address modification may not be used. MEQ Instruction Description: (A) is compared with thE' logical product of (Q) and (M). This instruction uses index register Bl exclusively 0 M is modified just prior to step 3 in the te st below. Table 18. Instruction Sequence: MTH COUNT EXAMPLE Designator i Decrement interval 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 10 Decrement (Bl) by L (Refer to table below. ) 20 If (Bl) changed sign from positive to negative, RNI from P + 1; if not, 3. Test to see if (A) = (Q) (M). M = m + (Bl). If (A) = (Q) (M), RNI from P + 2; if not, 4. Repeat the sequence. Comments: i is represented by 3 bits, permitting a decrement interval selection from 1 to 8. Address modification may not be used. MTH MASKED THRESHOLD SEARCH 23 18 17 15 14 07 i m The following is a brief summary of the first five arithmetic passes for an 06 or 07 instruction. They do not include a pass for indexing which could be specified by the instruction. The data flow and set times of important FFs are noted. 00 m = interval designator, 0 to 7 = storage address Figure 283. MTH VIII V080 End RNI V500 First pass V501 V502 (B ) + F L 15 to F L 15 > ign Ext C FLI5~I5 A2 I K006/K007 Disable Storage Request Adder~IO V503 Bb~J6Cxl Sign Ext V504 279 Start RNI at P+l RNI and Decode FL ~ Bl-----. FL (06) FL-'-B2~ IF Once ROP started decrement Bb occurs simultaneousl Decrement FL Start ROP 07 yes 06 = Decrement Bl 07 = Decrement B2 ( 1 no Logical Product of (Q) and (M) RNI at PT2 Figure 284. Second pass V500 V501 V502 Flow Charts for 06 and 07 Instructions (the 06 uses Bl and the 07 uses B2) > Sig.ll Ext r 2 FLI5~I ~A - 5 i~J6l-X Adder- 10 Is Ext K576/K577 Arithmetic Search 1 V503 V505 Third pass V500 r Is Ext V501 1_I5~A2 V502 Bh- 16~X Adder~IO V503 V504 IO~ Bb V505 2RO J V505 l The next two pas se s are made only if (Bb - i = pos or ~O) KD16/0l7 Search Decrement Index V500 Fourth pass V50l DBR ....... I4~ Xl Logical product V502 QL_~I2 .... A2 of (Ql) & (M) V503 KDlS/K019 Wait Compare if B - i = pos or:::-O I ~ I V504 Adder (logical product) V5D5 f3_Q2 Fifth pass K500/K50l V5DO V5Dl Al ....... V5D2 Q2~ I2~A2 > I~ K5DD/K50l I K562/K563 Diable Logical Product Adder ti- Xl I I K574/K575 Arithmetic Search 2 V503 V5D4 [ Sense re suIt for se arch met note +0 = -0. .J V5D5 These clear on the next Bb + FL15 of the 0.6 or 07 or on the next F 1 - . F 2 transfer. Timing for Search instructions, 06 and 0.7, beginning with VOOS of RNI. These instructions provide a static indexing translation, (F604 = 1) and F424 = 1). VD97.: Set K5727573 VODS: EXX2 ..... Fl Set K570/571 V009 : If Arith Busy, set KDDS/OD9 Vl09: If Arith Busy, input to H518 Vo. 10.: Test interrupts, clear Ko.02/ 0.0.3 V5lS: Fl ~ F 2 , clear K57D/571 VDil: InputHDSO, set KOD6/0D7 V5l9: Vo.SD:. Clear KDSo./DSl, set Ko.S4/o.S5, set Klo.o./IDl V52D: Clear K572/573 Vl09: Input HlOO if Arith 1st Arith pass 13iiSY VlOO: Clear KlDD/lDl, set KllD/lll N659: Start Arith, input H5DD and H5ID, set K536/537 FADR 1, set K596/ 597 FADR 2 V5DD: Clear Xl and A2' input H541, H57l 2Sl V50l: :r5 ..... A2 r6 (Bb )+F L15 to F L15 (F .... 15 ) ~Xl (B l ~r6 if 06) (B-2 .... 16 if 07) Clear K574/575, set K576/577 Arithmetic Search 1 2nd Arith pass (F L 15) - i to FL15 Input H20l if Breakpoint stop V502: N20l: Clear F L15 , input HllO V503: VllO-V2l0: Input H449, Hl05, Block setting of KOOO/OOI Request Bus FF V504: Clear K596/597 FADR 2 Vl05: IO~ F L15 if sum = Hl02, input Hl14 V505-V585: :to, input Vl06-Vl02-V202-Vl14: Clear KllO/ 111, clear K006/007, set KIOO/ 101, input Hl03 Clear K536/537 FADR 1 Vl03-Vl09: Input HIOO N659: Start Arith, input H500 and H5l0, set K536/537 FADR 1, set K596/ 597 FADR 2 VlOO: Clear KlOO/lOl, set KIlO/Ill V500: Clear Xl and A2 , input H54l, H57l i Is ext + F L15 sign ext Input H20l V502: N20l: Clear F L 15 ' input HllO, input H018 as K006/007 is clear V503-V523: VllO - V2l0 - V018: Input H019, set KOOO/OOI Request Bus (to start the ROP), input H449 V504: Clear K596/597 F ADR 2 V019-Vl05: IO~ F 15 if sum -:} :to, input H126 ank Hl02, set KOIO/ 011, transmit F L15 on S bus V505-V585: Vl02-V202-V126: Clear KIlO/Ill, set K 1 04/105 Start Arith 2, set K016/0l7, input Hl17 and Kl03 Clear K536/537 FADR 1 ( Vl09 - Vl03 - Vl17: ! (FL15 ~I5) V50l: :r5~A2 si~ eXt r6~ Xl (Is ext (i ..... r6) as J018 = 0, this forces F52l and F522 to output Is which in turn forces J28l and J282 to output Os blocking a Bb --:r6 Input Hl04, set N659: Start Arith, input H500 and H5l0 Kll fl/117 ~pnrl Rtnr~?:p RPflllPRt T650 = 1 Vl04-N050: Input Hl15, Clear Kl04/ 105 282 V500: Clear Xl and A2 , input H54l and H57l j 3 rd Arith pas (Bb ) - i to Bb Vl15: Set K012/013 i 1s ext + Bb Os ext V501: 15 ~ A2 Is ext (i r6 ..... Xl Os ext ]31 rS) B2 r6 16 if 06 if 07 Vl16: Test Breakpoint Stop if BPO selected K134/135 V502: V061: Resynced storage Reply, input H018, input HOOO V503-V523: VOOO-V018: Clear KOOO/OOI Request Bus, input H241, input H019 V504: V001-V019: Clear Bb , input H244, input H102 V505-V585: Clear K576/577 Arithmetic Search 1 V002 - V102 - V202: rO~ Bb if sum ±O, input H103 I V003-V103: If (Bb) -i = positive result (+0 = -0), set K018/019 Wait Compare ROP V004: V005: V006: Input H401 V007-N005-N401: Clear KO 10/011, Kl16/117, K012/013, clear DBR, input H410 V008-N410: Set K104/105 if (B b ) - i, Result was positive (K018/019 set) EXX2 DBR l 4th Arith pass V009: Input H084 End ROP V109: Input H104 N659: Start Arith, input H500 and H510 V084: Occurs only if K018/ 019 was clear, clear K084/085 and K01B/ 017, set K080/081, input H087 V104: Clear K104/105, J063 blocks V084 V500: Clear Xl and A2 , input H531 and H551 V087: Input H014 V014: RNI @ P + 1 if field exhausted V502: Set K500/5011ogical product M . Q1 V503: Input H512 V504: Clear Q2, input H513 if result 1-0 283 l V5l3-V505-V585: r3 ~ Q2(Adder ~ 13 ), set K574/575 Arith Search 2, input H5l0 Input H102 5th Arith pass Vl02: Clear K016/0l7, input Hl03 V5l0-V530: Clear Xl and A2 , input H50l, H55l and H53l, set K562/563, Disable Logical Product Vl09: Clear K018/0l9 V50l: 12 ~ A2 (AI ~ I2) t1 ~Xl (Q2~ ti) V502: Compare Al to Ql . M V503: Clear K500/50l Al (Ql • M) Sum V504: V505-V585: fuput Hl02 (Search met) (No interrupt) (Search met) (futerrupt) Search met (NOTE: +0 = -0) Vl02: Input Hl03 Set K088/089 Vl03: fuput Hl14 (Short cycle ROP ROP) Block input H084 fuput H084 fuput H084 Vl14: Set KlOO/lOl V084: Set K080/08l, Clear K084/085, set K200/20l Block P V084: Set K 0 8 0/081, Clear K 084/085, set Kl08/l09 Skip RNI@ P RNI @ P + 2 Return to Decrement FL Sequence SHIFT INSTRUCTION There are a number of instructions which require shifting such as shift, scale, multiply: and divide. The instructions to be discussed here will be the 12.0 to 13.3 series. This includes shift A, shift Q, and shift AQ. The shift instructions are described in the refere nee manual. Execution of a shift instruction can be divided into 1. Forming the shift count. a. Number of places to shift a register. b. Direction of shift, left or right. 2. The shift cycle. 284: Forming shift count is similar to F ADR . Form shift count: K = k + :sb FADR: M = m + Bb The lower 15 bits of the instruction are k. Bb and k will be totaled in the adder and both k and Bb will be sign extended. The shift count may come from 10 to SC register or from thp 8rlrlpr to SC rpp-iRtpr. Whirh m'lth iR t::1kpn depenci~ on th~ sum~f 1<: :nd Bb. . -- ". .. - -- Referring to figure 241, you will note that the SC register will hold the complement of the shift count. This is true for shift instructions 12.0 to 13.3. F L15 toI5toA2~ Bf5 to 16 to X~ Adder to IO------~ )e--- Sum pos Figure 2S5. Data Path for Forming Shitt Count Translations are made from SC register to determine when the shift is complete. As an example: Instruction 12.000001 is executed, a shift of one place. The value that would go to SC register would be 76 which is the 6-bit complement of the shift count. When the shift 1 takes place, SC register is advanced by 1 and then holds a 77 which indicates shift complete. Shift count register is a 6 -bit counter, but for the shift instructions is considered as two 3 -bit counters. In Logic Diagrams, page 2-115, the left -hand group of flip-flops (B700/701 to B722/723) is the 1 's counter. When the contents of a register is shifted 1 place left or right, this counter will be advanced by 1. When the 1 's counter holds 7 it indicates that the 1 's shifts are complete. The right-hand flip-flops (same page) are the lOs counter (B730/731 to B752/753). When the contents of a register is shifted lOS octal places, this counter will be advanced by 1. Using the shift cycle timing chain, shifting will be accomplished by a numb2r of passes through the shift cycle. One pass can shift a quantity 1 place, 109 places or lIS places. There is no other combination possible. As you go through the timing which follows, refer to figures 242 and 243 and Logic Diagrams. Verify the paths. Look for the end -around path for left shift A and Q and AQ. Also trace the path for drawing sign on the right shift. An example of how SCR counts is significant. For the example assume a desired shift of 13 s o The count shown for SCR is the count that would exist at the end of that pass. Table 19. SCR COUNT EXA-MPLE SCR 64 75 76 77 77 Comments Initial 1st pass--Shift lIS 2nd pass--Shift 1 3rd pass--Shift 1 4th pass--used to clear Arith Busy FF Note that only three passes were needed to complete the shifting. The additional pass is a "housekeeping" pass and would occur any time a Is shift occurs as the last shift. Shift Count Register Sum neg (SCR is on p .2-115in Logic Diagrams. ) Timing for Shift Instructions The RNI sequence for a shift instruction has taken place. V3S0 (End RNI): Set KIOO/lOl (start arith 1). N6S7, N691, N693: Start arithmetic, input H500 (start arithmetic timing chainL Input H510 (clear A2 and X). V500: Clear adder feeders A2 and X. Input H541 (1 6 to X) and H571 (IS to A2). V501: Gate IS to A2 (static enable F to IS). Gate 16 to X (static enable Bb to 16). If the instruction is 12.0 or 13.0 (no index) the output of 16 will be D's. VS02 V503: Set K546/547 (transfer lOs enable). Shift count is gated to rank: 10f SC register and then must be transferred to rank: 2 so that advance SC register will take place properly. Transfer of 1 's always happens at the first time of shift cycle, and on the first pass transfer of lOs must also take place to initialize the lOs counter. VS04 V50S: If K is positive, gate adder to SC register (p. 1-3 ). SetK512/513 (shift left) or, if K is negative, gate 10 to SC register. Set K510/511 (shift right). Input H600 and H610 (start shift cycle). Bit 23 of the sum is sensed to determine left or right shift. Shift Cycle V600: Clear A2 and Q2. Transfer l's count, transfer lOs count first pass only. Set K560/561 (busy), set K57S/579 shift cycle. If SCR f. 7X, lOs complete. Input to H561 OR H523. If SCR = 7X, lOs complete. Input to H551 OR H513. In Logic Diagrams, page 2-99, note the inputto H561 (12 to A2 shifted). This input will be made if lOs is not complete and the instruction is shift A or shift AQ The input to H523 (1 3 to Q2 shifted) will be made if lOs is not complete and the instruction is shift Q or shift AQ. The lOs shift takes place between 12 , A2 and/or 13 , Q2. If lOs is complete the transfer from 12 13 to A2Q2 0 2S5 10 to Al RS1 ----___ _+_' l' s complete 1(2) Al direct transfer .........--'--. no shift &~""""I---4---- II to Q1 RS1 1 's complete II Ql direct transfer-no shift Sign of A2 - - - - - - -.. . . A2 Q2 12 to A2 RS10S-----.........1-" lOs complete direct transfer Sign of A1------J Figure 286. Shifting Paths for A Al r-'--"'-1 Ql 10 to Al-----4f--+---H. ' - t - - - - t - - - - I 1 to Q 1 LS 1 ~~--l's complete ------I~-( LS 1 ..-L-~....., direct transfer '--------1023 no shift A2 Q2 12 to A2 LS lOS '---+------ 13 to Q2 LS lOS ~----I215-1223 Al Q1 Fig-ure 2R7, Rhifting Paths for Q will be direct. See page 2-95 for inputs to H551 and H513. V601: If lOs complete, advance lOs counter and gate 12 to A2 (enable Al to 12) and 13 to Q2 (enable Ql to 13 ). The transfers will be right or left lOS enabled by shift left FF or shift right FF being set (p. 2-99). If lOs complete, gate 12 to A2 (AI to 12) and 13 to Q2 (Ql to 13). Clear K546/547 (transfer lOs enable). V602: Clear .l1... 1 and Ql. Transfer lOs count. If SCR "f X7 (l's comRlete), input H525 (IO toAI shifted 1) and H565 (I I to Ql shifted 1), p. 1-31. If SCR = X7 (l's complete), input H515 (IO to AI) and H555 (II to Ql). If SCR = 77 (shift complete), clear K560/561 (busy). V603: If 1 's complete, gate 10 to Al (enable A2 to 10 ) and II to Ql (enable Q2 to II) shifted 1. Advance l's counter. If l's complete, gate 10 to Al and II to Ql straight. The enables to 10 and I I are the same whether shifted or not shifted. If SCR "f 77 (shift complete), input H600 to repeat shift cycle. Single -Precision Multiply The multiply A instruction, function code 50, win multiply the contents of A register and the contents of a 24-bit memory location, leaving a 4S-bit product in AQ registers. (Chapter 3 describes this instruction.) The multiply operation can be subdivided into three parts. Refer to figure 244. 1. Initialization. a. Makes (A) positive if negative and places it in Q register. This is the multiplier. b. Makes multiplicand from memory positive if negative and places it in X register. c. Records if original signs of multiplicand and multiplier were unlike. d. Checks first multiplier bit (MB); the multiplier bit is the least significant bit of the multiplier. 2. Multiply step. __ a. If MB = 1, add X and A2. Enable sum to 10 . b. If MB = 0, enable A2 to 10. c. Shift 1011 right 1 to AIQl. d. Check next MB e. Return to step 2a 2310 times for the 2410 multiply steps. The multiply step will form the 4S-bit product in AQ registers. After the mUltiply step, A and Q registers will be swapped for programing convenience. The product is formed through a series of additions and shifts. 3. Complement and/or swap a. Complement AQ, the product if unlike signed operands were multiplied. Note: Since the arithmetic section can mUltiply only positive numbers,. the product must be positive at this time. If either or both the multiplier and multiplicand were negative before the multiply step, the numbers were complemented during ini tialization. b. Swap A and Q so that the most significant bits of the product are in Q. This will always take place. In the following example of the multiply step 6-bit registers will simply be used. Finding the product v·lill require sLx multiply steps. Example 1 12S x 30S = ? (A) = 30 = multiplier (M) = 12 = multiplicand Initialization is complete: A = 00, Q = 30, X = 12 A 1st Step o0 000 0 Q 0 1 1 0 O[Q] MB = 0 \\\\\ \ \\\\'\ 0 000 00 1 10 0 o0 shift AQ right 1 \\\\\\\\\\0{illMB = 0 3rd Step \0 \\\0\\\\\l{ill MB 0 o O~ 000 0000 11shift AQ right 1 2nd Step o0 0 000 0 0 0 1 1 0 shift AQ right 1 = 4th Step 0 0 0 0 0 0 X= 001010 o0 1 0 1 0 0 0 0 0 1m MB = 1 t 0 0 0 0 1 1 Add A and X 0\\\\\\\\\\\ shift 1right 5th Step 000 1 0 1 X= 001010 o0 1 1 1 1 ';\\\\ \ o0 0 1 1 1 6th Step 0 0 0 1 1 1 00 0 0 t1 o[] MB = 1 0 0 0 0 0 1 Add A and X \\~~~ 1 0 0 0 0 0 shift 1 right 1 0 0 0 0[QJ MB = 0 \\\\~ \ \~~\~ o0 0 0 11 1 1 0 0 0 0 Shift AQ right 1 AQ ;:; 0360 before swap. The pencil and paper method: 12 x30 00 36 360 The answers match. Example 2 (Negative times positive) (M) = 35 A = 60 Initialization is complete: A = 00, Q = 17, X = 35 287 RNI and decode RNI at P+l GENERAL FLOW Initialize __---I~ Clear A2 and Xl t------4~ Complement and/or swap 14 to Xl A. INITIALIZE 12 to A2 DBR to 14 Clear AIQl Record unlike if A sign :f M sign. B. MULTIPLY STEP Transfer SCR Record next MB ~------, Clear A2Q2 Clear AIQl C. COMPLEMENT AND/OR SWAP AIQl to A2Q2 I--..,..-I~ Clear AIQl via 12 and 13 Yes Clear busy Complement Clear A2Q2 Figure288. AIQl to A2Q2 via 12 and 13 t----I~ A2Q2 to AIQl Clear AIQl t----I~ via 10 and II Flow Charts for Multiply A Note: Using 6 bit registers, bit 05 is the sign bit. Thus 60= - 17. Initialize cycle makes all numbers positive. A Q 1st Step 0 0 0 0 0 0 0 0 1 1 llIJ MB = 1 X= 011101 o 1 1 1 0 1\0 0 1 1 1 1 Add A and X + 0\ 1 1 1 0 2nd Step 0 0 1 1 1 0 0 0 1 1 1 1\hift 1 right * 1 0 0 1 llIJ MB = 1 X= 011101 1 0 1 0 1 \ 1 0 0 1 1 1 Add A and X d\ 0 101 1 1 0 0 1 l\Shift 1 right 3rd Step 0 1 0 1 0 1 X= 011101 1 10 0 10 1 1 0 0 1 [] MB = 1 • 1 1 0 0 1 1 Add A and X 0\ 1 0 0 1 \ 1 1 0 0 1\hift 1 right 4th Step 0 1 1 0 0 1 X= 011101 1 10 1 10 \ o1 \ 10 1 1 0 1 1 0 0[1 MB = 1 0 1 1 0 0 1 Add A and X \.. 0 0 1 1 0 0 ShIft 1 rIght 5th Step 0 1 1 0 1 1, 0 0 1 1 0 ~MB = 0 o 0 1 1 0 1 ~ 1 0 0 1 1 0 shift 1 right 6th Step 0 0 1 1 0 1,_ 1 0 0 1 l~MB = 0 o 0 0 1 1 0 "1 1 0 0 1 1 shift 1 right AQ = product = 0663 AQ holds a positive product which must be complemented to equal -0663. The pencil and paper method: +35 x -17 313 35 -663 After the complement and swap cycle AQ would hold 7114 with the most significant bits in Q and least significant bits in A ):,egister. Swapping AQ to leave the least significant bits in A is justified in that, in most case, the product with sign can be contained in A register. Thus, in most cases, the programmer can follow a multiply instruction with an add or subtract A instruction. What is the decimal equivalent of the largest signed number that can be displayed in a 24 -bit register?_ '--_--JT Figure 289. X Data Flow for Multiply Step The multiplier bit sampled to determine the input to 10 inverter rank is effectively the least significant bit of Ql, which holds the multiplier. The first MB is sampled during initialization (bit 0 of II). The remaining MB, bit 1 of Q2 register, will be sampled at Q510 and Q511. This is necessary because the sampling occurs prior to the shift. Bit 01 will be shifted into bit 00 position after the sample but before the next addition. The multiply will be perfo.lJlle_d~--.2A-±9- multiply steps. Shift count register will count the steps and will terminate multiply step when SCR = 308 . Timing for Multiply A Instruction Refer to figure 244. Main control's responsibility for single -precision multiply is: 1. To read the instruction from memory (R N I sequence) and decode. 2. To read the operand from memory (ROP sequence) and gate the operand to DB register. 3. To start the arithmetic section when the operand has arrived. Main control will then initiate an RNI sequence for the next instruction. Complete timing is given in the command timing charts. In the arithmetic section, main control has just performed the RNI sequence. We will pick up the timing at V008 of ROP sequence. V008: Gate EXX2 to DBR (DBR = (M». Set K104/105 (start arith 2). The next odd time that arithmetic is not busy and not wait function the arithmetic timing chain will receive a start pulse: N687, N691, or N693 (p. 1-29). * * Logic Diagrams 289 (N687, N691, N693, and N659 are the start arithmetic terms.) Refer to the logic diagrams pages 2-93. N659, N687, N691 & N693: Start Arith. Input H510 (clear adder feeders A2 and X). Set K518/519 (A2 to I 1)toprovidea path for the multiplier during initialization. The flow path for a positive multiplier is: Al to 12 to A2 to II to Al The flow path for a negative multiplier is: Al to 12 to A2 to II to Ql Note: An inverter rank inverts its input. Set K532/533 (unlike signs 1) via J520 if sign of multiplier is not the same as sign of multiplicand. Set K516/517 (AI to 12) if multiplier is negative. Provides for complementing (A). The arithmetic section has completed initialization. 1. Ql register holds a positive multiplier. 2. Xl register holds a positive multiplicand. 3. A sign flip-flop "remembers" if like or unlike Signed operands are to be multiplied. MU LTIPLY STEP Static enables that will be up during multiply step are: Al to 12 Ql to 13 A2 and X to adder (These transfer paths exist at all times and are never disabled). Q2 to II V500, V512, V522: Clear A2 and Q2. Set K510/511 (right shift); multiply uses right shift only. Clear K518/519 (A2 to II) used only on initialize. Input H513 (13 to Q2). Input H551 (12 to A2). V510, V530: Clear adder feeders A2 and X. Set K560/561 (arithmetic busy) to prevent another start pulse to the arithmetic section during multiply operation. Input H531 (1 4 to Xl). , - - - - - Input H503 if MB = ° (short cycle) or Input H551 (1 2 to A2). V531, V551: Gate 12 to A2 (A positive: static enable - - - - input H501 if MB = 1 (long cycle) to allow adder propagation time (figure 290). Al to 12; A negative: static enable Al to 12 (p. 2-139). Referring to figure 289, you will notice that if If K516/517 is set, J865, J866, and 1867 = 1 's, and J880, J881, and J882 = O's. If K516/517 is MB = 0, A2 is enabled to 1° inverter rank. clear, the opposite occurs. All that happens when the MB = 0 is a right shift of AQ, 1 bit position. Gate 14 to Xl (M positive: static enable DBR to 14; M negative: static enable DBR to 14 I (p. 2-151). V501, V513, V551: Set K530/531 (static enable ~ to 10). For the multiply instruction 1904 translates a Gate 12 to A2 (static enable Al to 12) and 13 to 1 for 50 (M positive). The 1904 output of a 1 Q2 (static enable Ql to 13). will drop DBR to 14 enable (]905-1908 =O's) and V502: Wait for adder. bring up the DBR to 14 enable Q915-J918 = 1 's). V503: Advance SCR. Input H514 (clear AI). Gate K532/533 to K514/515 (unlike signs 1 to Input H524 (clear Ql). unlike signs 2). V513, V531 if MB = 0; gate 12 to A2 and 13 to Q2. Input H514 (clear AI). V504: Clear Al and Ql. Input H524 (clear Ql). Transfer SCR. Set K520/521 (static enable A2 to 10) if MB = (j). V514, V524: Clear Al and Ql. Input H525 (10 to Al shifted 1) ~ Occurs if MB= Input H555 (lIto Ql). Input H565 (1 1 to Q 1 shifted 1) j <2> or 1 Clear K516/517 (AI toI2). Drop enable to comV505, V575: Gate 10 to Al RSI. (Static enable: if plement multiplier. MB = 0, A2 to 10; if MB = 1, adder to 10.) V555: Gate II to Ql (static enable A2 to II). Ql now Gate II to Ql RSI (static enable Q2 to II). holels the positive multiplier. Test bit lof Q2 for next: ~vlB, Set K528/529 if MB = 1. Sense first MB; if MB = 1, set K528/529. Input H500 to restart timing chain. Input H500 to start multiply step. Input 11512 (clear Q2). Input H512 (clear Q2). Input H522 (clear A2). Input HS22 (clear A2). 2~O The enables now present are for swap cycle which must follow complement cycle. Short Cycle V6I3: MB = 1 Figure 290. Short Cycle Timing If SCR l' 308 (24I~ repeat multiply step. If SCR = 30 8 , set K520/521 (A2 to 1° enable). Multiply step is complete. COMPLEMENT AND/OR SWAP If sign of multiplier is the same as the multiplicand, set K588/589 to 13 and QT to 12) static enables for swap cycle. The timing for swap is continued following the complement cycle timing. If unlike signed operands were multiplied, set K516/ 517 (static enable Al to 12) and K526/527 (static enable Ql to 13). This provides the enables to be used in complementing the product. orr A2 Q2 Gate 10 to Al (static enable A2 to 10) and I I to Q 1 (static enable Q2 to II). This transfer will place the complemented product in AQ but will not take place if complementing would produce a 48 -bit -0. Input H620 to start swap cycle. SWAP CYCLE V620: Clear A2 and Q2. Set K586/587 (complement cycle lockout) to stop timing chain when swap has been completed. This is also V500 time if like signed operands were multiplied. V500: Set K586/587 (complement cycle lockout). Block input H50I. Input H6II (starts swap cycle). V6II: Gate 12 to A2 (static enable QT to 12) and 13 to Q2 (static enable Al to 13). Set K556/557 (block 10 to AI) and K558/559 (block l I to QI). These two flip -flops are dis cussed at V6II of complement cycle. The flipflops could have been set during complement cycle (p. 2-101). V6I2: Clear Al and QI. Clear K560/561 (arithmetic busy). After duplicatin~ Fl into F2and clearing wait function FF, the arithmetic section will be available should the next instruction require it. Remember that arithmetic has been running' independent of main control Main control has been performing RNI for the next instruction. 0 Al Figure 291. Data Flow for Complement Cycle V500: Clear A2 and Q2. Input H611 (p. 2-101) to start complement cycle timing. Block input to H501 (stops multiply step timing). V6II: Gate 12 to A2 (static enable Al to 12) and 13 to Q2 (static enable QI to 13 ). Set K556/557 (block 10 to AI) if AQ = 0. Set K558/559 (block II to QI) if AQ = 0. Setting of these two flip-flops will occur if the product in AQ is 0. At this time the swap has not taken place nor has the sign been corrected (complement cycle). This will prevent a -0 as a product even if unlike signed operands were multiplied. QI Figure 292. V6I2: Clear Al and QI. Clearing Al and Ql is done by N500, N502, N504 and N5I0, N5I2, N5I4, respectively (p. 2-95). NOTE: H6I2 on their input AND gates. ClearK5I6/5I7 (drop enable Al to 12 , p.2-139) andK526/527 (drop enable Ql to 13 , p.2-145). Set K588/589 (enable Al to 13 and Ql to 12 ). Al Data Flow for Swap Cycle Summary of arithmetic phase times for a multiply operation: Initialize = 5 10 times Multiply step = 96 to 142 10 times depending on MBs Swap = 4 10 times 291 V613: Gate 10 to Al (A2 to 10) and II to QI (Q2 to II). These transfers are blocked if AQ is holding all O's at V 611 time. The mUltiply instruction has now been executed and the product with proper sign is in AQ register. COMPARISON OF MAIN CONTROL AND ARITHMETIC TIMING VOO8 VOO9 V084 V087 V014 NOSI NOSO VI17 NOSO VIIS VI16 NOSI NOSO V061 VOOO VOOI VOO2 V003 VOO4 VOOS VOO6 VOO7 V008 (M) to DBR N691 VS10 VS31 VS14 VSSS End ROP of multiply instruction Set request bus Set main control priority [SOD Set storage request Set lockout long cycle like signs Resync reply short VSOI cycle VS02 VSO VS04 VS05 VSOO V611 V612 V613 V620 611 V612 clear busy V613 Initialize, 1 pass S Ii-' times } Multiply step, 24 passes 6 Ii-' times, long cycle 4 Ii-' times, short cycle Complement cycle, optional 1 pass 4 Ii-' times Swap cycle, 1 pass 4 !i-' times Next instruction to F 1 (best case) Summary of arithmetic phase (0) times for a multiply operation: Initialize -= 50t Multiply step = 96 to 1420t depending on MBs Complement = 40t Swap = 40t MULTIPLY TIMING Worksheet Indicate what complementing is required after multiply step and the number of short cycles. 1. (A) = 10000000 (M) = S7777777 Complement required: _ _ Number of short cycles: S. (A) = 40000000 (M) = 00040000 2. (A) = 37777777 (M) = 37777777 Complement required: _ _ Number of short cycles: _ __ List the five preceding multiply operations by number below in order of least time to most time required. 3. (A) = 77777777 (M) == 00000001 Complement required: _ _ Number of short cycles: 4. (A) == 77777777 (Ivl) = 40000000 Complement required: Number of short cycles: 292 --- Complement required: Number of short cycles-:- --- Least time ----- Most time SINGLE -PRECISION DIVIDE Divide A instruction, function code 51, will divide (AQ) registers by a 24 -bit divisor located at address M in memory. On completion of divide, the quotient with sign will be in A register and the remainder with sign will be in Q register. (See chapter 3 for description of instruction.) The divide operation can be sub-divided into three parts. Refer to the flow chart for divide. 1. Initialization. a. Makes (AQ) positive if negative and returns it to AQ as part of the first divide step. This is the dividend. b. Makes the divisor negative, if positive, and places it in the X register. (A divide is a series of subtractions, thus, divisor must be negative). c. Records if original signs of divisor and dividend are unlike. d. Records sign of dividend. This determines sign of remainder. 2. Divide Step. a. Subtracts divisor from dividend. b. Ifresult is negative, enable A2 to 1°. If result is positive, enable sum to 1°. c. Shift 10 II left 1 to AIQ1. d. Form quotient bit (QB) of D if result was negative. Form QB of 1 if result was positive and insert QB into least significant end of Q reg. bit 00. The quotient is assembled in the Q register. e. Continue divide step. A total of 24 passes will be made. 3. Complement and/or swap. (Complement cycle is optional but used when necessary; results of executing divide instruction follow the rules of mathematies. ) a. Complement quotient if unlike signed operands were divided. b. Complement remainder if dividend was negative. c. Prevent -0 for both quotient and remainder. d. Swap A and Q to place the quotient in A and the remainder in Q. Swapping A and Q registers at the end of a divide instruction is done for programing convenience. The multiply A instruction can follow directly. In many cases the remainder is not important and the quotient can be incremented or decremented following divide. The divide operation will be performed with successive subtraction and left shifting. The arithmetic adder is additive, so to subtract it is necessary to complement and add. That is the reason for insuring that the divisor is negative during initialization. The following is an example of divide step. Six -bit registers will again be used to simplify the example. Six divide steps plus one partial step will be needed to divide a number. Problem: After step: 361 +- 12 =? AQ = 0361 = dividend M = 12 = divisor initialization~ whieh is part of the first divide x = 110101 Q A 1 1 o~o 0 0 1st Step X= 1 1 1 0 0 0 o0 1 1 0 0 0 1 Sum is negative; shift AQ left 1. 1 0 0 0 1[Q] QB = 0 /1111 '- 0 1 1.t 100.0 10 2nd Step X= 1 1 1 0 0 o0 1 1 1 1 1 0 0 0 1 0 Sum is negative; shift AQ left 1. 0 0 0 1 O[QJ QB = 0 / IIIII 3rd Step 0 0 1 1 1 1 X= 110101 _ _ _+_1 o0 0 1 0 1 0 0 0 1 0 0 I .. End-around carry 0 0 0 1 0 0 Sum is positive; I iii I / I'I /1 shift AQ left 1. 1 0 1 0 0 0 lOOm QB 1 o0 = 4th Step 0 0 1 0 1 0 X= 110101 0 0 1 0 0 1 + /1///jl rffl~:i*:~:: 11111 o0 0 0 0 0 5th Step 000000 X= 0 1 0 0 1 [] QB = 1 010011 1 0101 01o~o 11 Sum is negative; I IIIII shift AQ left 1. o 0 0 0 0 0 1 0 0 1 1[QJ QB 0 = 6th Step X= 100110 1 1 0 1 0 1 o0 + . 1 0 0 1 1 0 S urn·IS negatlVe; shift AQ left 1. 0 0 1 1 0[Q] QB = 0 / II , ,'- 0 0 0 1 7th Step 0 0 0 0 0 1 0 0 1 1 0 0 X= 110101) 1 1 0 1 0 1 0 0 1 1 0 0 Sum is negative; shift Q left 1 o 0 0 0 0 1 0 1 1 0 O[Q] QB = 0 *The sum, -0, will be gated back to A register during the shift as +0 0 293 ---. RNI RNI and decode Initialize and divide step >---:::r-,-----t~ Complement and/or swap 12 to A2 13 to A2 Clear A2Q2 No Al to r2 Ql to 13 r--...._--I~W ait adder Transfer SCR 14 to Xl Set unlike if - -;- - DBR to 14 11--...,....----..., A. INITIALIZE AND DIVIDE STEP 1° A2 to if QB = ° Advance SCR Yes Adder to 10 if QB = 1 rO to AI, left shift 1 except lass pass II to Ql, left shift 1 (Q2 to II) Clear A2Q2 ~ I .~ ..--~ A2~o/\J ,----------, Clear A2Q2 AIQl to A2Q2 via 12 r3 Clear AIQl B. COMPLEMENT AND/OR SWAP A2Q2 to AIQl via IOrl Figure 293. Divide Flow Charts The last divide step is different only in that A is not shifted. The sensing of sum positive or negative, the forcing of quotient bit, and the shifting of Q are all exactly the same. This is necessary in order to leave the remainder in tact in "A" yet shift the final QB into Q. U sing the pencil and paper method, check the answer. 30 12 ) 361 36 01 Q = 30 and A = 01 is a quotient of 30 with a remainder of 1. Since complement is not needed in this case, swap cycle would follow divide step. Swap cycle would present the result as the programmer would see it. Initialization insures a positive dividend and a negative divisor. Divisor 1. 2. 3. 4. 5. Static enables for divide step: Al to 12 QItbI3 Q2 to II A2 and X to adder If the sum is positive, enable adder to 10 (the--out--put of the adder is sum) or, if the sum is negative, enable A2 to 10 • M neg M pos -UBR DBR Figure 294. Data Flow for Initialization QB: Sum pos = 1 Sum neg = 0 Sum neg - - - - - - - { Q2 Al Ql Figure 295. Data Flow for Divide Step A divide fault may occur when the divide instruction is executed. The arithmetic section will sense for a divide fault on the first and second divide step. Divide fault will occur if the sum is positive on the first or second divide step. Both of these two passes must find the sum negative and force a QB = O. (The divide step does use the left shift but it is not endaround.) Divide fault occurs when quotientwith sign cannot be contained in a 24 -bit register. The following two examples show a divide fault on the fir st pas s . 295 00 / 1745 or + 0 divided into any number L Q A 001 1 1 1 X=111111 (001 1 1 0 100 101 command timing charts. For this discussion, timing covered will that of the arithmetic section. The RNI sequence of a 510 X and the ROP sequence to V008 time has taken place. V008: . ----I.~+1 .. o0 2. The next odd time that the arithmetic section is not busy and not wait function, the arithmetic timing chain will receive a start pulse, N687, N691, N693 and N659. (p. 1-29-). A Q 001 1 1 1 X=111101 (001100 '----.~ 100 101 +1 1 1 0 1 positive on first pass In the 3300 Computer when a divide fault occurs on the first pass, it indicates that the quotient would be more than 24 bits in length. Below is an example of divide fault on the second pass: 42 3 / 146 1st Pass X= A Q 000001 100110 N687, N691, N693: Start arithmetic. Input H5000 Input H51 0 (clear adder feeders A2 and X). Input H512 (clear Q2). (Initialization occurs during the first divide step.) Set K516/517 (enable Al to 12) and K526/527 (enable Ql to 13) if Al is negative; this will permit complementing a negative dividend. Set K532/533 (unlike signs 1) if dividing unlike signed numbers. Clear K538/539 (divide fault). If the divide fault FF is set at this time, it indicates that a fault occurred on a previous divide instruction. Since the flip -flop is cleared during initialization of the divide, its being set at the end of the divide indicates that this instruction produced the divide fault. V500: ~ 100110 Sum negative; shift AQ left 1 o 0 001 1 / QB = 0 11101 2nd Pass 0 0 0 0 1 1 X= 111100 1 111 11 o0 0000 111~1fo Clear A2 and Q2. Clear K530/531 (enable sum to 10 ). If SCR t- 30, clear K520/521 (enable A2 to 10). Input H513 (13 to Q2). Input H551 (1 2 to A2). First pass only: Clear X. Set K512 /513 (shift left). Set K560/561 (busy). Input H531 (1 4 to X). 0 0 1 10 0 / + 0 0 1 1 0 0 Sum sensed pos; I'~" shiftO'stoA, Q Ll 0 1 1 0 0 1 QB = 1 If K538/539 (divide fault) is set, block input to H501 and clear K560/561 (busy). This stops arithmetic timing and terminates the divide operation. V501: When the divide fault is sensed on first or second pass, that pass is completed. In the 3200 Computer, a divide fault on the second pass indicates that the quotient would have been 24 bits long excluding sign. Timing for the Divide A Instruction Refer to figure 293. Main control r s responsibility for single -precision divide: 1. Read the instruction from memory (RNI sequence) 2. Read the divisor from memory (ROP sequence) and gate divisor to DB register. 3. Start arithmetic section. ~lain control will then initiate an RNI sequence for the next instruction. Complete timing is given in the 296 Set 1 1 1 1 positive on first pass 307 5 / 1745 17 2 o0 Gate EXX2 to DB register (DBR = (M). K104/105 (start arith 2) • V502: V503: 12 to A2 (AI to 12) and 13 to Q2 (Ql to 13 ) 0 First pass only: If A is negative, gate Al to 12 , block Al to 12 , gate Ql to 13 , block Ql to 13 . 14 to Xl: If M is positive,DBR to 14; if M is negative,DBR to 14. Gate K532/533 to K514/ 5150 (unlike signs I-unlike signs 2). At this time there will be a positive. Dividend in A2 Q2 and a negative divisor in X. Transfer SC register (p. 2-115). Input H514 (clear AI). Input H524 (clear Ql). First pass only: Set K532/533 if dividend is n~gqtiy~gIlQ,divtqir.g Uk~ sjgr s " Gleety 1(5261 527 (Ql to 13) used if complemented dividend. Set K550/551 (block last shift A) ifSCR rank 2 ;: 24100; actually, this would be the 25th half pass, which is the same as the 24 previous passes except A is not shifted. (Last QB shifted into QOO). V504: Clear AIQl. First pass only: Clear K516/517 (AI to 12 ), used if complemented dividend. Input H565 (l I to Ql shifted). If K550/551 is clear, input H525 (1 0 to Al shifted). If K550/551 is set, input H515 (IO to Al direct); this would be the last pass. V505: 10 to Al (LSI, exceptlastpass). If sumispos. . A Tn ItlVe, a dde1' to TO· .L ; 11 sum IS negatIve, 1\.L. to l~. II to Ql (LSI), Q2 to II. If sum is positive, insert quotient bit of 1; if sum is negative, insert quotient bit of O. 1: • • V612: Clear Al if K542/543 is clear. Clear QI if K592/593 is clear. Clear K516/517 (AI to 12) and K526/527 (Ql to 13 ) as complement enables no longer needed. Set K588/589 (AI to 13 and Ql to 12) enables for swap. V613: Gate 10 to Al (A2 to 10 ) if K542/543 and K556/ 557 are clear. (The N5XX gating terms are on p. 2-95 and the flip-flops are on p. 2-127.)Gate I 1 toQl(Q2 to Il)ifK592/593 andK558/559 are clear. Input H620 to start swap cycle timing. V500: Block input H501 if complement cycle not required or V620: if complement cycle just completed. Clear K542/543 (block clear AI) and K592/593 (block clear Ql) Clear A2 and Q2. Set K586/587 (complement cycle lockout). Input H611. n QOOO QOOI Sum to 10 (When sum pos) Figure 296, A2 to 10 (When sum neg) 0 Left I (II to Ql) For the divide, 1023 = QB. The path for the quotient bit looks complex, but it allows for other transfers also, such as AQ end -around left shift. Input H500 (to continue timing). Input H512 (clear Q2). Input H522 (clear A2). If SCR rank 2 f:. 24 10 , repeat divide step. If SCR rank 2 = 2410, continue to complement and/ or swap. If K532/533 (unlike signs 1) is clear, proceed to swap (V500) as divided positive by positive. If K532/533 (unlike signs 2) is set, continue with complement cycle. The flip-flop's being set indicates unlike signed operands where divisor and/or dividend were negative. Set K516/5I7 (AI to 12) enable for the complement. Set K526/527 (Ql to 13 ). V500: V611: Gate 12 to A2 (AI to 12) and 13 to A2 (AI to 13 ). V6I2: Clear Al and QI; clear K560/56I (busy), K556/ 557 (block 10 to AI), and K558/559 (block II to QI). V613: Gate 10 to AI(A2 to 10 ) and II to Ql (Q2 to II). Path for Quotient Bit Clear A2 and Q2. Input H611 (starts complement cycle timing). Block input to H501 (stops main arithmetic timing). V6I1, V621: (See p. 2-101). Gate 12 to A2 (AI to 12 enable) and 13 to Q2 (Ql to 13 enable). Actual complementing of data occurs right here. If dividend (original (A» is positive, set K542/543 (block clear AI) to leave the remainder positive. If dividend (original (A» is negative, set K592/ 593 (block clear Ql) to leave the quotient positive. If Al = 0, set K556/557 (block rO to AI) to prevent a remainder of -0. rO contains complemented (AI) at this time). If Ql = 0, set K558/559 (block II to Ql) to prevent a quotient of -0. II contains complemented (Ql) at this time). General Arithmetic Timing for Divide N687, N691, N693 V500 V50I V502 V503 V504 V505 L--_ _ _ _ _ _ _ _ Start Set busy on first pass. Transfer SCR RSI to RS2. Advance SCR RS2 to RSI. If SCR RS2 f 24, repeat divide step. 1£ SCR RS2 = 24 (divide . . . - - - - - - - - - - step complete) and + -;- + or ~C-V-50-0------}- V611 V6I2 V613 V620 } V500 V611 V6I2 Clear busy V6I3 + -;- - or - -;- + or - -;- Complement cycle (40 times) Swap cycle (4 0 times) 1. How long would K560/561 (arithmetic busy) be set if divide fault were sensed on the first divide step? _ _ _ _ _ On the second divide step? _ _ _ __ 20 How long would K560/561 (arithmetic busy) be set if the divide operation included the complement cycle? 297 SE LF -EVALUATION QUIZ ON CHAPTER 12 TRUE OR FALSE: 1. The arithmetic section of the 3300 is partially independent of main control since it has its own tim ing chain and its own F register. 13. An interrupt may not be sensed during execution of an 06 instruction because Rap to Rap cycle progression is used. 2. The 3300Adderis subtractive in nature and yields an output of sum. 14. A -+0 does not equal -0 for the 07 instruction. 3. If -0 were added to -0 in the 3300Adder, the sum would be -+0. 4. A selective complement is an exclusive OR function. 5. A logical product is a boolean AND function and does not require the adder. 6. Optional hardware is necessary to perform a 48bit precision add in the 3300. 7. The adder is not used in the execution of a single precision load instruction. 8. The adder forms part of the transfer path for the enter A instruction. 9. An 10 to sb transfer is necessary for the load I instruction. 15. A swap cycle will always occur at the end of the single -precision multiply instruction. 16. The multiplier for the single - precision multiply instruction is located at M and M + 1 and this quantity will affect the amount of time necessary to execute the instruction. 17. The divide step of a single - precision divide instruction require 318 arithmetic passes. 18. A swap cycle is optional at the end of the singleprecision divide instruction. 19. Adder propagation requires 4 III times. 20. Both the 50 and 51 instructions set K560/561 (arithmetic busy) to insure that main control will not generate additional start pulses while the instruc tions are being executed. 10. The transfer path Xl to l I to Ql is used for the load Q instruction. 11. The 52 instruction will advance P during its first Rap. 12. The compare out-of-limits FF will set for each arithmetic pass of the 52 instruction. Score Yourself: This was a good quiz. If you missed none or one, congratulations! If you missed two or three, you're okay. If you missed four or more--I don't know you! POWER PANEL MULTIPROG. MODULE FP/DP OPTION STANDARD ARITHMETIC BLOCK CONTROL MAIN CONTROL 110 CH. P 0 W E R P A N E L INTERRUPT I Figure 297. Physical Location of the FP/DP Option CHAPTER 13 FLOATING-POINT / DOUBLE-PRECISION OPTION The F.P/DP Option gives the 3300 System hardware capabilities for executing the instructions listed in table 20. The FP /DP Option is designated 3310 and becomes part of the CPU when added to the system. Physically, the FP /DP option is located in chassis 4 and consists primarily of a 24-bit optional adder and a 48-bit E register. The optional or left adder is disabled during single precision operations but during double precision operation the optional adder operates on the higher order 24 bits. Figure 297 shows the physical location of the FP /DP option. Figure 298 is a block diagram of the arithmetic section w.ith the FP /DP option present. ENABLING THE 48 -BIT ADDER During the 56, 57, and 60 -63 instructions the 48bit adder is enabled by setting K804/805 (optional arithmetic busy). Figure 299 is a simplified logic diagram showing how optional arithmetic busy affec.ts the adder Reference figure 299 and consider the following cases: 0 Case 1. Assume optional arithmetic busy set and a 48 -bit operation in which group 8 is a generate and groups 9 -15 are passes. See the diagram below. Note that these conditions generate a carry input to group O. The hardware operation begins with optional 299 Table 20. FLOATING-POINT/DOUBLE -PRECISION INSTRUCTIONS ADDRESS FIELD OPERATION FIELD 55 ELQ QEL EUA AEU EAQ AQE 56 MUAQ, I 57 DVAQ, I 60 FAD, I 61 FSB, I 62 FMU, I 63 EMD, I - - - - - - - - INTERPRET ATION Transfer (E L) to Q Transfer (Q) to E L Transfer (EU) to A Transfer (A) to EU Transfer (E) to AQ Transfer (AQ) to E Multiply AQ Divide AQ FP addition to AQ FP subtraction from AQ FP multiplication of AQ EP division of AQ - - - - - - - - - - - - - - - m, m, m, m, m, m, b b b b b b * * I i XI X2 LEn~I "'- /' /' ~/ ( ./ ('// E~ E~ I l __)_-~~--~r-----'------ _)-.--_24_BIT5 ~ _ _ _ _ _ _. . . ._ " " " "_ _ _ _ _ _" " , _ , , EI U E~ ""-'I EI L ,..~-_-~-~_-;-=-G-IS-_~-E_-R-__ .......... ~'~"'_-;-'Tl-R-E-G-IS-~-~-~-_"_-~"'] _ -_... ......,--_.•._-- ~/ ! E-- 5 x' A --' FLOATING POINT EXPONENT ONLY " 10 ( 8. 'i I I 10 8 I , I4 INVERTERS LT--r~r,I I I~ A' AI XI XI SHIFT COUNT -----y---' EXPONENT SH I FT COUNT E[ BUS BUS Ql ONLY * OPTIONAL ARITHMETI C LOGIC Figure 298. Block Diagram of Arithmetic Section With Floating-Point/Double-Precision Option Present 300 o GROUP 0 LikE U200 o UNLIKE UOOO PASS GROUPS 4 -15 t06A U3.o4 U30S U306 U307 --- (F.P./D.P. 8USY)(PASS 12- 15) U~OZ . 4 L504 5 1.505 CARRY INPUT FROM GROUP '-025 {8) U026 L~08 GENERATE GROUP '" AND PASS GRO-tJPS 9-15 L024 U508 1..508 {9J L509 (10) LSW ut) LSII (l3) l513 (14) LSJ..4 ..(-is.) L515 ~~:rDIIA U310 050! U311 PASS GROUPS 8-1J _ U912 ~~~:reIlB U3J4 U502 -PASS GROUPS 12-J5 U315 'tJ8-12 Figure 299. Enabling the 48-Bit Adder For this case L508 = 1 which forces U702 = O. U702 breaks the input to L200 and L200 = 1 which indicates that group 0 has a carry input. arithmetic busy being set which drive s U81 0 and U812 to O. U810 being a 0 enables L508 through L515 to sense for generate and pass conditions in the optional adder. 15 14 13 12 11 10 9 8 \~-------------------~~----------------------~I V Optional adder Case 2. Assume optional arithmetic busy set and a 48-bitoperationinwhichgroup3 is a generate, groups 4 through 7 are passes and group 8 is a pass. See diagram below. These conditions would generate a carry input for a 24-bit adder but not for the 48 -bit adder. First consider case 2 for the 24 -bit adder. Optional arithmetic busy is clear therefore U812 = 1 forcing U501 and U502 to O. Groups 4 through 7 being passes 7 6 5 4 3 2 1 0 Groups \~--------------~V~--------------~I Standard adder drives U500 to 0 and U600 goes to 1. L403 = 1 since group 3 is agenerate; therefore L403 and U600 drives U700toa 0 which breaks the input to L200. L200 goes to 1 which says carry input to group O. If performing a 48-bit add, optional arithmetic busy is set, therefore U812 = 0 allowing U501 and U502 respectively to sense for pass groups 8 -11 and pass groups 12 -15. Forcase 2 U501 would sense group 8 pass and go to 1 which drives U600 to 0 and group 0 would not sense a carry input for this case. 301 x x x x x x x \15 14 13 12 11 10 9 I pa'0af;})a£a:};a2Gen I x 8 / V Optional adder \ 7 6 4 5 3 2 V x X 1 0 / Standard adder DOUBLE-PRECISION MULTIPLY 23 18 17 16 15 14 00 Instruction Description Multiply (AQ) by the 48 -bit operand in addresses M and M + 1. The 96-bit product is displayed in AQE. Refer to figure 300 for operand formats. For every 0 bit in the multiplier the evecution time is decreased by 125 nsec. MUAQ multiply AQIL-~56~......I~a.;.....a..1~b---LI_~m~---I1 a = addressing mode designator b = index register designator m = storage address; M = m + (Bh) Multiplicand 48 -bit 47 I 23 I 00 A \ 00 23 00 I A register Q register I Multiplier 48 -bit 47 00 A I 23 I 23 00 I M 00 23 A register \ 00 23 00 M + 1 I 47 Q reg!ster 00 E register V 96-Bit product Figure 300. Operand Format for Double-Precision Multiply SIX-BIT EXAMPLE FOR MULTIPLY In order to realize the steps that the computer must take to execute a multiply instruction assume you have a 6 -bit machine and attempt a double -precision multiply with pencil and paper. The following conditions exist: (A) = 40 (Q) = 25 multiplicand (:M + 1) = 05 ~1.11tip1icr (M) = 35 With pencil and paper, position the operand thus: 40258 multiplicand 35058 multiplier The multiplicand is a negative number and must be complemented before performing a mUltiply. If the multiplier had been negative it would have been necessary to complement it as well. The computer must perform the multiply with positive operands. The corn puter would have performed the same steps. The problem has been initialized and appears as: (- )37528 multiplicand (+)35058 multiplier Perform the multiply step. ( - )3752S multiplicand X (+)35058 multiplier 23622 23622 13676 ( - ) 16304022 The product shown is correct in actual value, but since it is negative it must be complemented to be represented in the computer. The third and final step of a double -precision multiply becomes complement. The final result would be: 6 147 3 755 Note that a three -step operation was necessary . 1. Initialize - gives positive form of multiplier and multiplicand properly positioned for mUltiply. 2. Multiply step - performs actual multiplication and always yields a positive product. 3. Complement - necessary any time the product is to be negative. DETAILED TThlING Figure 301 is a detailed flow chart of double -preci sion multiply. In order to accomplish the three major steps of double -precision multiply, several steps are involved and some operations take place in parallel. Figure 302 is a graphic representation of parallel tim ing chains involved. Vl15: Vl16: N207: N206: Vl09: V5l8: V5l9: V520: Set K012/0l3. Test breakpoint stop if BPO selected. Set K572/573 (wait function). Set K570/57l (initiate Fl to ?). If arithmetic not busy, input to H5l8. Fl to F 2 , clear K570/57l. Clear K552/553 (sign of A) Clear K572/573; clear SCR; setK552/553 if(A) negative. Resynced storage reply, set K060/061. Clear KOOO/OOI (request bus) V061: VOOO: VOOl: V002: Set KlOO/lOl (start arithmetic 1). V003; Vl09: Input to HIOO. V004; VlOO: Clear KIlO/Ill (main control priority); (enable 10 to F). V005: Set K062/063 (2nd cycle). V006: Input to H40l, input to H20l. V007: Clear KOIO/Oll, K012/0l2, Kl16/ll7; clear DBR, clear F , input to H4l0; L15 input to HllO. V008; VllO: EXX2 to DBR, input to H449. Second ROP Set KOOO/OOl, set KI04/l05 (start arithmetic 2). V009; Vl05; N05l: Input to H084, input to Hl02; if K2l0 = 1, set KOIO/Oll; gate F to S bus, T655 off. DETAILED TIMING FOR INITIALIZE At V008 time (M) is gated to DBR, which places the highest order bits of the multiplier at an entrance p:::>int to the arithmetic section. Also, at V008 (VllO) time the new address, M + 1, is gated to Flower 15 so that at V009 time the proper address for the 2nd ROP is on the S bus. Detailed timing starts at V007 time of RNI. FADR V007 VOOS: V009: VOI0: VOll: Set K536/537, set K596/597. N687, N691, N693, N659: start arithmetic. V500: Clear Xl and ~. static enables: + I to V502: V503: F"to EXX2 to Flo If arithmetic busy, set KOOS/009. Test interrupts, clear K002/003. Input to HOSO. L First ROP V080: Vl09: VllO: N05l: N050: Vll7: N050: Set K084/085 (ROP); set Kl12/ll3 (no index~ clear K080/08l (RNI). Input to HllO. Set KOOO/OOI (request buss); clear Kl12/ll3. If K2l0 = 1, set KOIO/Oll, gate Fto the s bus, T655 off. Input to Hl17. Set K2l2/2l3 (priority 2); set Kl16/ll7 (storage request); transmit a storage request. Input to Hl15. V504: V505: 6 5 1 I Clear K596/597; set K850/851 if (M) ne~ative; set K850/85l (DBR--.t± enable)if (M) negative. N687, N691, N693: start arithmetic; if sign of A f. M, set K532/533; input to Hl04. The arithmetic timing shown above forms the address M + 1 and records whether or not numbers with unlike signs are being multiplied. VI06; Vl04; N050: Clear KIlO/Ill, clear Kl04/105; (VI02) input to Hl17, block V084. 303 Arithmetic busy RNI and decode ROP at M +1 ROP atM RNI at P+l Form M +1 Record (M) negative XZXl--.Einv Einv-+E1 (M) ___ E 1 = Multiplier Xl--'XZ Record sign of (A) Complement (AIQl) AIQl-'AZQZ El-+EZ EZ...... Einv Einv--.. E1 AZQZ .....AIQl Left add~IO Right add-..I 1 I°-.Al Right 1 Figure 301, Flow Chart for Double-Precision :i04 ~\ilultiply Il..... Ql Right 1 EZ .... El Right 1 INITIALIZE MULTIPLY STEP I I COMPLEMENT I I RNI I db++l READ MULTIPLY STEP 48 PASSES 10 I ARITH I I ARITH ~1-.-_----=~ I COMPLEMENT AQE IF NECESSARY I I Figure 302. Graphic Representation of Parallel Timing for 56. X V117: N050: V115: V116: ~b At the first N051 time above, storage is requested for (M+l). Notice that at Vl16 time a breakpoint operand is possible. Clear Xl and A2 ; clear K536/537. V501: 14 to Xl: M positive, '0BR to M negative, DBR to input to H854. Clear X2 , input to H855. Xl to X2 , set K800/801 (wait word 2). V502: V503: V504: V505: r4; r; V084: Clear K084/085, clear Kl04/l05, '3et KOSO/081 (RNI is to be next); input to H087. V087: Input to H014. V014: RNI at P + 1. Access is timed out for the 2nd ROPandat V008 (M+l), which is the lower order bits of the multiplier, is gated to DBR. The arithmetic start which occurs at V009 time will be used to complete the initialization phase. At V087 time VOl4 is entered to initiate RNI. If the next instruction requires the use of the arithmetic section its execution will be held up until the completion of the double precision multiply. N687; N69l; N693: V500: The arithmetic timing shown above places the positive value of M in X2. V06l: VOOO: VOOI: V002: V003: V004: V005: V006: V007: COMPLEMENT AQ ""----IF NECESSARY Set K212/213 (priority 2); set K116/117 (storage request) transmit a storage request. Input to H115. Set K012/013 (enable data bus). Test breakpoint stop if BPO selected. V500: ---_,-....; Resynced Storage Reply. Clear KOOO/OOI (request buss). Clear K060/06l (1st cycle). Clear K062/063 (2nd cycle). Input to H401. Clear K019/0ll, K012/0l3, Kl16/ll7; clear DBR, input to H4l0. V008: EXX2 to DBR, set Kl04/l05 (start arithmetic 2~ V009; Vl09: Input to Hl04 and H084; the arithmetic section receives a start pulse that is coincident with V009. V50l: V502: V503: V504: V505: V611: V612: V613: Input to H500, H5l0 and H512; start arithmetic coincident with V009 time of the 2nd ROPcycle; if a negative setK852/853 (Complement AQE). Clear Xl and ~Q2; input to H6l1. If K852/ 853 is set, input H53l, set K560/56l ar-ithmetic busy. to Xl: If K850/85l set, DBR to 14; if K850/85l clear, DBR to 14. Clear K850/85l (DBR to 14 enable); setK802/ 803 (word 2). Input H834; input to H6l2 if K852/853 is set. Set K804/805 (busy), clear E I ; input to H9l5. Einv to El (X2 X l to Einv.); (M and M+l) --. X2Xl-.El = multiplier). 2 2 3 3 I to A2 (AI to I ); I to Q2 (Ql to I ). Clear AI~; input to H613. 10 to Al (A2 to 10); II to Q 1 (Q2 to II); first pass only: input to H810. r The arithmetic timing is used to place the multiplier in its positive form in EI. Refer to figure 303 for a simplified data flow diagram. At V 501 time of the 305 The arithmetic timing is used to place the multiplier in its positive form in EI (figure 303). At V501 time of first pass of multiply step the positive form of the multiplicand will be placed in X2 Xl and initialization is completed (figure 305). At V500 time K560j561 (arith busy) is set, which will exclude main control from the arithmetic section until execution of this instruction is completed. The above timing involves the complement and swap timing chain. This timing would occur only if it were necessary to complement the multiplicandinAIQI (figure 304). E INV ,-----I r----- I -- ..... I I I L- _ (M) P~S (M) NEG (M+l)-Figure 303. Data Flow for Initialize Multiplier to E 1 (M) DBR Figure 305. Multiplicand to X2Xl ~'--'--T-~t31 ~__~t i~----~ Figure 304. AQ Negative (Positive Form of l\Iultiplicand to AIQl) Figure 305 shows the enables and transfer paths for multiply step. Become familiar with this before going through the detailed timing of multiply step. RIGHT I Xl Figure 306. Enables for Multiply Step MULTIPLY STEP Clear E2, input to H871; clear A2Q2; input to H611 (blocked first pass). *Clear Xl and X2, input to H811; clear K800/801 (wait word 2). *Al to X2, 12 to Xl (Ql to 12 ). V50l: El to E2; short 12 to A2 (Ql to 12) blocked first pass; cycle 13 to Q2 (AI to 13 ) blocked first pass. lV502 :'\1503: Clear K898/899 (short cycle), advance SCR; input to H612 and H895. Clear K802/803 (word 2); set K810/811 (multiply 2). V504: Clear AIQIEl: transfer SCR; input to H525, H565, and H895; set K898/899 (short cycle) if bit 1 of E2 = 1. V505: E2 to El RSl, 10 to Al RSl, II to Ql RSl; if MB = 0, Q2 to 10, A2 to II; if MB = 1, left adder to 10, right adder to II; input to H500, H620, and H820; if SCR =/- 608' repeat multiply step; if SCR = 608' setK852/853 (complementAQE); clear K898/899 (short cycle). :V500: MULTI PLI CAND N GTE: Optional adder to 1° Standard adder to II X2 and Q2 to optional adder Xl and A2 to standard adder Refer to arithmetic chapter for a detailed analysis of a computer multiply. The main items in multiply step are: 1. Long and short cycle capabilities. A long cycle consists of 6 ~ times and is necessarily long to allow for adder propagation. The short cycle consists of 4 ~ times and is used when the multiplier bit is a 0. The time for a 56 instruction is dependent on the multiplier (M, M + 1) 0 2. Shift count register. 4810 or 608 passes must be made during multiply step. It is the responsibility of the SC register to keep count of the passes. A count of 608 indicates terminate. 3. A long cycle will always occur on the first pass. Onpasses 1-47, E201 will be tested for short cycle on the next pass. MB for the present pass will always be E2000 This determines the enables into l0ll; e.g., "Q2A2 or sum. 4. On the first pass A2Q2 is cleared and AIQl is not gates to Q2A2. This insures that if the first multiplier bit were a 1 that the multiplicand would be added to all zeros. COMPLEMENT STEP *First pass only. V500: Clear A2Q2E2, clear K806/807 (multiply 1); clear K810/811 (multiply 2); input to H611 and H871. 307 V501: El to E2; 12 to A2 (AI to 12); 13 to Q2 (Ql to 13). V502 V503: If signs unlike, input to H612 and H834. V504, Clear AIQIEI; input to H915 and H613 if AQE f O. V505: Input to H864. Einv to El (E2 to Einv); 10 to Al (A2 to 10) lIto Q 1 (Q2 to II). V684: Clear K560/561 (arith busy). Clear K804/805 (optional arith busy). a = addressing mode designator b = index register designator m = storage address; M = m + (Bb ) Instruction Description Divide (AQE) by the 48 -bit operand in addresses M and M + 1. The quotient is displayed in AQ. The remainder with its sign extended is displayed in E. If a divide fault occurs, program execution advances to the next address. The final contents of AQ and E are meaningless if a divide fault occurs. Refer to figure 307 for operand formats. SIX-BIT EXAMPLE FOR DIVIDE In order to visualize the steps that the computer must take to execute a divide instruction assume you have a 6-bit machine and attempt a double-precision divide with pencil and paper. The following conditions exist: The clearing of K560/561 at V684 time frees the arithmetic section for use by main control. The arithmetic timing shown will occur regardless of whether or not a negative product must be formed. The data transfers shown below occur only if the complement is necessary. (A) E1 to E2 to Einv to El; Al to 12 to "A2 to 10 to AI; Q1 to 13 to Q! to II to Ql. = 61 (Q) = 47 (E) = 3756 + 1) = 05 (M) = 35 (M With pencil and paper, position the operands thus: divisor 3505) 61473756 DOUBLE -PRECISION DIVIDE 23 DVAQ divide AQ ~ I 57 18 17 16 15 14 a b I I Dividend Divisor The dividend is a negative number and must be complemented before performing a division. If the divisor had been negative, it would have been complemen ted for the pencil and paper example as well. The com- 00 I dividend m 96-bit dividend ________________________________________ __________________________________________ --JA~ ~5 ~ \ 00 00 23 23 00 A register 00 47 E register Q register ~ 48 -bit divisor ________________ __________________ --JA~ / ~ \ 47 00 23 I 00 0023 M M+1 r--_ _ _ _ _ _ _4_8_--JbX quotient I \ 47 00 23 I 00 0023 A regitlter Q register 48 -bit remainder ~----------------~I\~--------------------~\ {7 I 308 00 E l"egi::;ter Figure 807. Operand Format for Double"-Precision Divide puter divides by a series of subtractions, thus always requires the negative form of the divisor. For this example the computer has to perform the same steps as above plus complementing the divisor. The problem would appear as: divisor (+)3505) ( -)16304021 dividend DETAILED TIMING Figure 308 is a detailed flow chart of the doubleprecision divide. In order to accomplish the four major steps of the double -precision divide, several operations are involved and some take place in parallel. Figure 309 shows parallel timing and the individual timing chains involved. Perform the divide step. divisor 3751 +3505) (-)16304021 12717 33650 31343 23052 22131 7211 3505 3504 ~----:---:---:-~- quotient dividend remainder The main items in divide step are: 1. When the computer executes the divide step, the quotient is in E and the remainder in AQ. The programmer prefers the quotient be in AQ so hardware performs a step called swap. Swap, which follows divide step, places the quotient in AQ and the remainder in E. After swap we have: (AQ) (E) 2. = 3751 = 3504 quotient remainder The computer always performs the divide step with positive dividend. At the termination of divide step the positive value of the operands is available in AQ and E. The law of signs for division states: Only when dividing unlike signs is the quotient negative; the remainder always has the same sign as the dividend. In order to form a negative answer, the computer must perform a complement step. After complement step the final result is: (AQ) = 4026 (E) = 4273 quotient remainder For this example note that four-step operation was necessary. 1. Initialize - yields the positive form of the dividend and divisor properly positioned for the divide step. 2. Divide step - performs the actual division and always yields a positive qnotient and a positive remainder. 3. Swap - places the positive form of the quotient in AQ and the positive value of the remainder in E. 4. Complement - forms a negative quotient and/ or negative remainder. DETAILED TIlVITNG FOR I},TITLA>.LIZE Detailed timing starts at V007 time of RNI. V007: V008: EXX2 to Fl. V009: If arith busy, set K008/009 (sense interrupt during arithmetic busy). VOlO: Test interrupts, clr K002/003 (RNI lockout). VOll: Input to H080 V080: Set K084/085 (RaP), set Kl12/ll3 (no index) clear K080/08l (Rt-."'I). Vl09: Input to HllO. VllO: SetKOOO/OOl, (request bus) clear Kl12/ll3 N05l: IfK2l0 ="1", set KOIO/Oll, (main control priority) gate F to the liS" bus, T655 OFF (read request) N050: Input to Hl17 Nl17: Set K2l2/2l3 (priority 2) Set Kl16/ll7, transmit a storage request (T650). N050: Input to Hl15. Vl15: Set K012/0l3 (enable data bus). Vl16: Test breakpoint stop if BPO selected. N207: Set K572/573 (wait function). N206: Set K570/57l (initiate Fl to F2). Vl09: If arith not busy, input to H5l8. V5l8: Fl to F2, clear K570/57l. V5l9: Clear K552/553 (sign of A). V520: Clear K572/573. Clear SCR Set K552/553 if (A) negative V06l: Resynced storage reply, set K060/06l (1st cycle). VOOO: Clear KOOO/OOI (request bus). VOOl: V002: Set KlOO/lOI. V003, Vl09: Input to HlOO. V004, VlOO: Clear KlOO/lOl, set KIlO/Ill. V005: Set K062/063 (second cycle). V006: Input to H40l, input to H20l. V007: Clear KOlO/Oll, K012/0l3, Kl16/ll7, clear DBR, clear FL15, input to H4l0, input to HllO. V008, VllO: EXX2 to DBR, input to H27l 2nd Rap set KOOO/OOl, (request bus) setKl04/l05 V009, Vl05, N05l: Input to H084, input to Hl02 if K2l0 = "I", set KOIO/Oli. Gate F to "S" bus, T655 off (read) input Hl04. 309 I RNI DIVIDE STEP 4910 PASSES a.~1 ARITH ARITH '------' FORM M+ I (M) TO : SWAP ARITH : COMPLEMENT I I I I I I ARITH I ARITH ~-----'~......--~--........---I TO i Xl COMPLEMENT AQE - - - I F NECESSARY Figure 309. Parallel Timing for 57 • X -----fa FADR V500: Clear Xl and A 2 . Clear K536/537. V50l: 14 to Xl: (M) negative, DBR to 14 (M) positive, DBR to 14 Input to H5S4. V502: Clear X2 , input to H355. V503: Xl to X 2 , set KSOO/SOI (wait word 2). V504: V505: Set K536/537, set K596/597. N6S7, N69l, N693: Start arith. V500: Clear Xl and A2 . V50l: 15 to A2, 16 to Xl V502: Static enables: +1 to 16 . V503: FL to 15. V504: Clear K596/597, if (M) positive set KS50/S5l V505: N6S7, N69l, N693: Start arithmetic, ifsignof A = M, set K532/533. The arithmetic timing shown above forms the address M + 1 and records whether or not operands with unlike signs are being divided. At VOOS time (M) is gated to DBR, which places the highest order bits of the dividend at an entrance point to the arithmetic section. Also at VOOS/VllO time the new address, M + 1, is gated to Flower 15 so that at V009 time the proper address for the second ROP is on the S bus. The setting of K060/06l and K062/063 (first and second cycle FF's) allows J063 (logic'diagrams 2-5) to go to "1fT. J063 being "1 fT blocks VOS4 (end ROP) and allows ROP to ROP cycle progression by preventing the clearing of the ROP FF. Vl06, Vl04, N050: Clear KIlO/Ill, clear Kl04/l05. (Vl02) Input to Hl17, block VOS4. Vl17: Set K2l2/2l3 (priority 2). Set Kl16/ll7, transmit a storage request (T650). N050: Input to Hl15. Vl15: Set K012/0l3 (enable data bus). Vl16: Test breakpoint stop if BPO selected. At the first N05l time shown above, storage is requested for (M + 1). Notice that at Vl16 time a breakpoint operand is possible. I --------I The arithmetic timing shown above places (M), the highest order bits of the divisor, in ~. V06l: VOOO: VOOl: V002: V003: V004: V005: V006: V007: Resynced storage reply. Clear KOOO/OOI (request bus). Clear K060/06l (first cycle). Clear K062/063 (second cycle). Input to H40l. Clear KOIO/Oll, K012/0l3, (enable data bus) Kl16/1l7 (STO request). Clear DBR, input to H4l0. VOOS: EXX2 to DBR, set Kl04/l05. V009: Vl09: Input to Hl04 and HOS4. The arithmetic section receives a start pulse that is coincident with V 009. The timing continues on the next page. VOS4: Clear KOS4/0S5, clear Kl04/l05, set KOSO/OSl, input to HOS7. VOS7: Input to H014. V014: RNI at P + l. Access is timed out for the second ROP and at VOOS time (M + 1), which is the lower order bits of the divisor, is gated to DBR. The arithmetic start which 311 occurs at V009 time will be used to complete the initializationphase. At V087 time V014 is entered to initiate RNI. If the next instruction requires the use of the arithmetic section its execution will be held up until the completion of the double precis ion divide. N659, N687, N691, N693: Start arithmetic coincident with V009 time of the second ROP. If (A) negative set K852/853. Input to H500, H510, H512, H820. V500: Clear A2 Q2 E2 and Xl. Input to H871, set K560/561 (arithmetic busy) V501: 14 to Xl: If K850/851 set, DBR to 14. If K850/851 clear, DBR to 14. E1 to E 2 . V502: Clear K850/851 (bus to 14 enable). Set K802/803 (word 2) V503: Input to H612 if K852/853 (comp AQE FF) is set. Input to H834 if K852/853 is set. V554: Set K804/805 (busy). V505: Set K808/809 (divide I). Input to H500, H620, H820. Clear K852/853 (compl AQE). (M) POS. Input H61l if K852/853 (comp AQE FF) is set. V611: 12 to A2 (AI to 12). 13 to Q2 (Q1 to 13 ). Clear AI' Q1, E1· Input to H612 and H915 if K853 is set. 10 to Al (A2 to 10). II to Q1 (Q2 to II). Einv to E1 (E2 to einv). The arithmetic timing shown above completes the initialization phase by -placing (M + 1) in Xl. Refer to figure 310 for the dataflow of the divisor into X 1X2. At V500 time K560/561 (arithmetic busy) is set,which insures that main control cannot get into the arithmetic section until the execution of this instruction is complete. The above timing involves the complement and swap timing chain. This timing would occur only if it were necessary to complement the dividend which is in Al Q1 E 1. Refer to figure 311 for a simplified data flow diagram. {M)NEG. - - - - -Flow for (M) - - - - - Flow for (M + 1) Figure 3 I O. Divisor to X2Xl 312 Figure 311. Complement AQE DIVIDE STEP - Remainder in AQ; Quotient in El QUOTIENT BIT ~--~~~------------- LEFT I DIVISOR Figure 312 shows the enables and transfer path for divide step. Become familiar with this before proceeding through the detailed timing of divide step. V500: Clear A2, Q2, E2; clear KSOO/S01 (wait word 2); input to H611 and HS71. V501: 12 to A2(QI to 12); 13 to Q2(AI to 13);EltoE2. V502: If last cycle and :E2 bit 46 or 47 is set, set K53S/539, (divide fault). V503: Input to H612 and H834.Clr KS02/S03 (word 2). V504: Clear AI, Ql, and El; input to H905; if last cycle input H525 and H565. Figure 312. Enables for Divide Step Note: Optional Adder to 1° Standard Adder to I I X2 and Q2 to Optional Adder Xl and A2 to Standard Adder If SCR = 60S, set KS12/S13 (last cycle). Advance SC -register. Transfer SC register. If last cycle (sum f -0), input to H613; set KS44/S45 (swap AQE 1). V505: E2 to El LSI; 1° to A2 LSI except last cycle, II to Ql LSI except last cycle. If sum positive: QB = 1, 0881 to E400; left adder to 1°, right adder to II. If sum negative: QB = 0, OSSl to E400; Q2 to 10, A2 to II. Input to H500, H620 and HS20; if last cycle, repeat divide step; if last cycle, input to HSI0 and proceed to swap. 313 For a step-by-step analysis of a computer divide, refer to the arithmetic chapter of this text. The main items for divide step are: 1. Shift count register - Arithmetic passes 4910 or 618 are necessary for divide step. The quotient is positioned correctly on the sixty-first pass. The SC register keeps count of the passes. A count of 618 says terminate. 2. Quotient bit - The divide step consists primarily of a series of subtractions and left shifts. With each subtraction the result is sensed; if it is positive the quotient bit is a 1. Figure 313 shows how the quotient bit is set during divide step. Translations of the inputs to 0881 and examples of the cases represented are shown. During divide step a result of -0 must be treated as a positive result. E2 to El left 1 E400 E401 474645 474645 1 1X 1 1X o1X o1X (2 47 unlike • 246 gen) = L259 -----I.(sum negative) (2 47 unlike' 246 unlike' 245 gen) + 474645 101 III L245 = carry input to group 15 ....---c~--L260 = (divide step) (adder -:j: -0) (2 45 unlike . unlike' 247 unlike) 474645 001 011 47464n o 1 0 Carry input 001 Adder -:j: -0 = L175 Divide step = 0875 247 stage carry lnput = L147 Divide sum negative 247 unlike = U047 474645 OXX 1X X Figure 313. Quotient Bit Translations 3. Divide fault - Occurs when the upper 48 bits of the dividend left shifted 1 is greated than or equal to the divisor. Two 6 bit examples of divide fault are shown below. 47464n 1 1 0 Carry input 101 Note: Examination of the actual logic prints (p. 4-11) shows more inputs to 0887 than are shown here. These other inputs are for functions other than D. P. divide and as such are of no consequence during this discussion. In double -precision divide the quotient is being formed in E register. During the last cycle E247 or E246 being set will cause the divide fault FF to be set. (Logic Diagrams 2-103). 100 01)0100 this quotient could not be expressed in a 6-bit register. 40 10)0040 this quotient could not be expressed in a 6-bit register. 311 Divide sum negative SWAP V500: Clear A2, Q2, E2, X2, and Xl; clear K812/813 (last cycle). V501: El to E2. V502: Set K846/847 (swap AQE 2); input to H811. - to I2 ); input to H834. V503: Al to X2; I2 to Xl (Ql V504: ClearEl; input to H915. V505: Einv to El (X2Xl to Einv); clear K844/845 (swap AQE 1); input to H500, H620, andH810. The arithmetic timing shown above accomplishes the following: 1. The quotient inEl is transferredtoE2. E2 serves as a holding register for the quotient while the remainder is transferred to E 1. 2. The remainder in AQ at the end of divide step is transferred to El during this pass. The transfer is: Al Ql to X2Xl to Einv to El V500: V501: V502: V503: V504: V505: Clear A2, Q2, X2, and Xl; input to H821. Set K548/549 (swap AQE 3); E2 upper to X2. Clear K846/847 (swap AQE 2). Input to H814 and H844. Clear Al and QI; input to H515. 10 to Al (left adder to 10); E 2 lower to Q I; set K852/853 (complement AQE); input to H500, H620, and H820. At V500 time the quotient is in E2. This pass will be used to place the quotient in Al Q1. The data transfers are: E2 upper to X2~ Optional adder to 10 to Al Q's to Q2---" E2Iower----------~.~ Ql COMPLEMENT V500: Clear A2 Q2 and E2; clear K848/849 (swapAQE 3); input to H611 and H871. V501: EI to E2; 12 to A2 (AI to 12); 13 to Q2 (QI to 13) V502 V503: Input to H864. Complement quotient Input to H611 if (unlike signs) (AQ t- 0). Complement remainder Input to H834 if Al original was negative and E I t- O. V504: Clear K804/805 (optional arith busy). Clear Al Ql; input to H613. Clear EI; input to H915. V505: Input to H864. 1° to Al (A2 to 10); II to Ql (Q2 to II). E inv to EI (E2 to Einv). The timing shown above is used only if it is necessary to express a negative quotient. The timing shown above is used only if it is necessary to express a negative remainder. V864: Clear K560/561 (arith busy) At V504 time the clearing of optional arith busy enable the adder to function as a 24 -bit adder. Clearing arith busy allows main control to use the arith metic section again. FLOATING-POINT MULTIPLY FMU FP multiplication of AQ 23 18 17 16 15 14 62 a b I I I I a = addressing mode designator . b = index register designator m = storage address; M = m + (Bb) 00 m Instruction Description Multiply the 48-bit floating-point operand in AQ by the floating -pOint operand located at storage addresses M and M + 1. The rounded and normalized product is displayed in AQ. Bits 12 -48 of E hold the lower 36 bits of the 72 -bit unnormalized product. The sign of this residue is the same as that of the product. See operand formats in figure 314. 315 12 11 23 22 00 00 23 (Q register) (A register) Vr-------------------~/ A ~ t II-bit biased exponent 36-bit coefficient sign of the coefficient + 11-bit biased exponent A 12V ll 23 '22 1\ 00 00\ 23 (M + 1) (M) 12 11 47 I 00 E register \ I 36-bit residue afte/FP multiply Figure 314. Operand Format for Floating-Point Multiply The f0110wingis a24-bit example of how floating-point multiplication could be performed by pencil and paper method. You should become familiar with this example before proceeding through the detailed timing of the 62 instruction. The original octal numbers are in the upper right-hand corner of the page. The heavy black lines define the flow path for the problem. The computer would start with the operands packed in floatingpoint format. The steps from this point are: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Obtain positive form of operands. Toggle bit 22 to obtain real exponents. Form the sum of the II-bit exponents. Place the sum of the exponents in a holding register. Multiply the coefficients Round the product by adding +1. Normalize the product. Adjust the exponent. Merge the exponent and coefficient. Toggle the bias bit to form biased exponent. Complement if a negative product is to be formed. V502: Clear Q3; input to H943. V503: Al exponent~Q3; clearF LIS ; set K870/87I (add exponent 1). V504: Clear K596/597 (FADR2); set KI04/I05 (start adith 2); set K850/851 if (M) is negative. V505: I ~FL15 At V501 time the enables come up to form M + 1. At V505 time M + 1 is gated to FL15 to be available for the second ROP. At V503, Al exponent is placed in the holding register Q3. During the transfer the bias is toggled to place the real exponent in Q3 if Al is positive or the complement of the real exponent in Q3 if Al is negative. 0 Phase 2: First Arithmetic Pass N687: Start arithmetic coincident with V009 time of the first ROP and V505 time of phase 1; set K532/533 (unlike signs 1) if sign of A 1= sign of M; input to H500, H510, and H512. V500: Clear A2, Q2, Xl; input to HS13 and H53I. In the lower left-hand corner of the page the original octal numbers are multiplied and the product is packed into floating-point format. The answer, 5767.3207, is the same one the computer would obtain. DETAILED TIMING Phase I N687: Start arithmetic coincident witt"'! V003 time of fhEt first ROP~ set K536/537 (if ADIt 1); set K596/597 (FADR 2); input to H500 and H510. V500: Clear A2 and Xl. V501: I5~A2, (FLlS~I5); I6-..X1, (+1-+16); input to H942. 316 V501: I4-'X1 (DB reg:!.ster -'14: if (M) negative); (DB register---.I4 if (M) positive); I3----+Q2 (A1---.I3) bits 0-11 and bit 23; I86X/87X Q2 bits 12-22 (Q3~186X/87X if (Q3) negative); (Q3----186X/87X if (Q3) positive); input to H8 54. V502: Clear X2; input to H821 and H855. VSU3: Xl~2 bits U-I1 and bit 23; 181X/82)(--""X2 bits 12-22"(Xl....... I8ix/82X); set K800/801 (wait word 2); set K872/873 (add exponent 2); input to H834. V504: Clear E1. V50S: Clear K870/871; input to H500 and H942. +44.44 8 Original octal numbers ~£L----- -4.111 8 2066.4444 5774.3666 =2006.4444 = I00; 1.1 4444 = 2003.4111 = 0003 • 4111 1 ~ to II-bit adder 0006 0003 100111 Hold .4444 ____ ~ .4111 4444 4444 4444 22220 .22735504 +1~ .2274 Greater than half, so round ~ .0100101111002 This number is not properly normalized. .1001011110002 Left shift 1; insert sign-bit into lowest bit position. + ~ • 4570 ::~~~ +44.44 -4.111 4444 4444 4444 22220 227.35504 = -227.4 I Adjust exponent by subtracting the shift count from it . 0010.4570 Merge exponent and coefficient 2010.4570 Toggle bias bit. 5757+3207 Since the original signs were unlike, complement. • = 5767.3207 Figure 315. Pencil and Paper Example of Floating Point Multiplication Phase 2 consists of two arithmetic passes and has three major functions: 1. (tvI)---.X2 - the detailed transfer path is shown. DB register (M)~egative Bits 12-22 j -----DB register l XI---181X/82X Xl Xl-------------~-.·X2 (tvI) positive Bits 0-11 and 23 317 PHASE 3 /~----------------------------------~~~--------------------------------~ R NI ~ ":AD ROUND MULTIPLY COEFFICIENTS 44aPASSES 1 'NORMALIZE I I ADJUSTED I EXPONET , I , COMPLEMENT MERGE (M) I ARITH I ARITH I f-IL------J~I----9"1 ARITH ARITH '----r--.... REMOVE BIAS BIT COMPL EMENT AQ I F NECESSARY ARlTH I ARITH ~~~~~~~----~~~----~ :W~HIFT PHASE I AI EXP -..Q3 I I I ~p (ALL EXPONENTS) PHASE 2 } SUM OF EXPONENTS -+Q3 ExTEND SIGN OF COEFFICIENTS IN AI AND X2 PREFME TO MULTIPLY THESE OPERATIONS ARE PERFORMED ON THE FIRST OPERANDS (A) 8 (M) WHILE WAITING FOR THE SECOND OPERAND (M+I) FROM STORAGE Figure 316. Parallel Timing for 62. X The transfer of Xl ~ 18lX/82X toggles the bias bit bit so that bits 12 -22 of X2 hold the real exponent at V503 time. 2. Add Exponents - The sum of the exponents is formed by forcing the 48 - bit adder to appear as an II-bit adder. This is accomplished by setting K872/873 (add exponent 2) at V503 time which causes groups 0-11 to appear as passes and not generates. Figure 317 is a simplified logic diagram of how group 12 of the adder is affected by the setting of add exponent 2. For the time interval defined by add exponent 2, U800 = 1, and U801 :: O. This insures that all inputs to U746, U747, and U748 are disabled; while all inputs to U749 are partially enabled. Therefore group 12 only sense fur carry inputs from groups 12, 13, 14, and 15. Figure 318 shows the data flow for add exponents. The operands are presented to the adder at V503 time of this arithmetic pass and sum will be sampled at V501 time of the next arithmetic pass. U800 (ADO EXP.I U300 U301 U302 U303 (2) 2 wili be used to extend the sign of the coefficient f()r both the multiplier arid multipHcand. ThIs sign extension will allow the computer to perform the multiplication of the coefficients in the same manner as the multiply step of double -precision multiply. At V505 time of the first arithmetic pass the ~~~~ ~ (31:ts~! (ADO U308 I CI5A EX~) D31A (4) ~;:: U309~ L555 U310 U517 _ U644 B-II(5}U544 U311 _ _ U801 .uece.s s:J,;q: bec.ause. the ilr.;tml. 1 division is a 36-bit divisor into a 72-bit dividend. Therefore the quotient is 37 -bit. At V505 time of this pass the lower 37 bits of E1 holds the quotient and the lower 37 bits of AQI hold the remainder left shifted 1 place. 32i1 3. Pass 38 - the function of the 3810 pass is to ascertain if a round operation is necessary. A subtract is performed on this pass and, if the result is positive' K884/885 (round up) will be set at V505 time. The· result of this subtract will not in any case be gated into AIQI. Instead A2Q2, which hold the proper remainder left shifted 1 place, will be right shifted 1 into AIQl. See figure 326 for an example of why passes 37 and 38 are needed. 4. Shift count register - SC register was cle ared during copy F 1 to F2 time of RNI and will be counted up to keep track of the arithmetic passes for divide step. At V500 time of pass 45 8 (SC register = 448) K8I2/813 (divide last cycle) will be set. 5. Termination - occurs after 3810 passes. At V500 Tjmp of P::lR.~ .17 divide last cYc:1e is set but since SC register = 448 at V502 time divide 1 cannot be cleared; therefore the enables for divide step remain up. On pass 37 SC register advances to 458' so at V502 time of pass 38 divide 1 is cleared, dropping the divide step enables 0 El Sum positive }------- Sum Q2 A2 E2 A2 El Ql X2 Xl ~,~11_ _ _ 00......;~3_ _ _ _ _ _ 0-JOI Sign extension of divisor Figure 325. Enables for Divide Step 36-bit divisor Swap AQ and E: First Pass El-+E2 V500: Quotient to E2, Al--+X2, X2Xl---..Einv-.E1, Ql-+12-.Xl. Remainder to E 1 V501: V502: V503: V504: V505: Clear A2, Q2, E2, X2, and Xl, clear K812/813 (divide last cycle); input to H871. El to E2. Set K846/847 (swap AQE 2): input to H811. Al to X2; 12 to Xl (Ql to 12); input to H834. Clear El; input to H915 X2XI to Einv to El; clear K844/845 (swap AQE 1); input to H500, H620, and H810. Swap AQ and E consists of two arithmetic passes and is used to place the coefficient of the quotient in AQ and the remainder in E. The timing shown above is the first pass of swap AQ and E and it accomplishes the following: 1. Places the quotient in E2. 2. Places the remainder in E 1. The data flow for this pass is shown above right. 327 110101.000000 1. 2. Subtract 3. Subtract 000010.000000 1000 10 -0110 10 --~ 4. Subtract 000010.000000 100 010 -010 010 _ _..J 5. Subtract 000010.000000 10 0010 -00 0010 Let's look at a 6 - bit example to determine why passes 37 and 38 are necessary for the 63 instruction. Since the computer must subtract to divide so must you. The subtraction is with real signed numbers and each time the difference is positive the appropriate bit in the quotient register is set. Seven steps were required to arrive at the correct quotient one step more than the number of bits. The eighth step was used to see if the answer should be rounded. After the eighth step the remainder must be shifted right 1 to bring it back to its proper value. 6. Subtract 7. Subtract but want to round so subtract again. 110100 100010 +010010 8. Subtract This result is positive so add' 1 to the quotient in order to round. Figure 326. Example of Divide Step \7800 SCR Divide 1 Divide last cycle K808 K812 K809 K813 f 44 V802 60-63 Figure 327. Terminating Divide Step 328 Swap AQ and E: Second Pass V500: Clear A2, Q2, X2, and Xl; input to H821. V501: E2 upper to X2; set K848/849 (swap AQE 3); clear K882/883 (shift right 1). V502: Clear K846/847 (swap AQE 2). V503: Input to H814 and H844. V504: Clear Al and Ql; input to H515. V505: 10 to Al (left adder to 10); E2 lower to Q1; set K822/823 (round); input to H500, H620, H810, and H820. Timing shown completes swap AQ and E by placing the quotient in AIQ1. Figure 328 is a block diagram of the transfer paths used. V502 V503: Input to H612. V504: Clear Al and Q1; set K898/899 (short cycle); input to H613 if sum =f -0. V505: If sum =f -0: 10 to Al (left adder to 10); II to Q1 (right adder to II); set K826/827 (normalize) which removes constant clear from K880j881 and K886j887. Input to H500, H600, H620, and H820. Timing for round occurs whether or not an actual round operation is to take place. The only possible case for rounding is plus 1. To accomplish plus 1, AIQl is transferred to Q2A2 and presented to the adder. X2Xl is forced to 0-" Oland presented to the adder. The logic for forcing X2Xl is shown in figure 321. If no rounding is required, X2Xl is cleared and a 48-bit add of the quotient and all zeros takes place, which preserves the original quotient. The timing for all floating-point instructions is common for normalize, adjust exponent, merge, and complement. Go to page 244 to complete the timing for this instruction. FLOATING-POINT ADD FAD Floating-point Addition to AQ I 23 18 60 17 IaI 16 15 14 b I 00 m a = addressing mode designator b = index designator m = storage address; M = m + (J3b) o o Q2 A2 Figure 328. Quotient to AQ 0--+0 Xl Upper E2 Lower ROUND V500: Clear A2, Q2, E2, X2, and Xl; input to H611. V501: 12 to A2 (Q1 to 12); 13 to Q2 to 13 ). X2Xl forced to a +1 if round up is set, otherwise X2Xl = O's. Adder propagation begins. orr Instruction Description Add the 48 -bit combined contents of M and M + 1 to (AQ). The rounded and normalized sum appears in AQ. The upper order bits of E hold the portion of the operand that was shifted into E during the equalization of exponents. Refer to figure 329 for operand format. The pencil and paper example of figure 330 shows how the computer performed a floating-point addition. The original octal numbers are in the upper right-hand corner of the page and the flow for the problem is defined by the heavy black lines. The computer would start with the operands packed in floating -point format. The steps are as follows: 1. Toggle the bias bit to obtain the real exponents. 2. Sent the exponents to an II-bit adder and perform a subtract. The magnitude of the difference indicates how much the smaller operand must be right shifted to align the octal points. The sign of 329 48 -bit 474.~--------------------------addendor----------------------------~~00 sum 23 00 12 11 22 00 23 Q register A register v,...------J/\'-----~V, - - - - - - - - - - - - - ' , \ Sign) 11-bit exponent of coefficient ') 23 / ~ __-JA____ 36 -bit coefficient ~ ~ \1 12 11 22 __________________ 00 ~A~-------------------------- ____ 23 ~\ 00 (M) (M + 1) 48-bit 474.~--------------------------augend --------------------------~.~OO __________________________________ residue r -__________________________________ ~A~ ~7 I ~~ 00' E register I Figure 329. Operand Format for Round 3. 4. 5. 6. 330 the difference indicates which operand is smaller. The exponent of the larger operand will be retained to form the result of the floating-point addition. Extend the sign of the coefficients. Shift the coefficient of the smaller number right to align the octal points. The bits shifted off are retained so that they may be used to determine if a round is necessary. These bits form the residue. Perform the addition of coefficients. Round. The residue is inspected for the round under the following rules: a. If the operand shifted right was negative and the highest order bit of the residue is a zero, add -1 to round. This operation is referred to as round down. b. If the operand shifted right was positive and the highest order bit of the residue is a 1, add +1 to round. This operation is referred to as round up. c. In any other case add all O's to round. d. Round down (-1) is the same as round up except it deals with negative numbers. Adding a -1 to a negaiive nurnber and cornpiementing is the same as complementing first and then adding a +1. 7. Normalize is not necessary for this example. 8. Adjust exponent is not necessary since normalize did not take place. 9. Merge the exponent and coefficient. 10. Toggle the bias bit. In the lower left-hand corner of figure 330 the original octal numbers are added and the sum is packed in floating-point format. Note that this is the same answer arrived at by using the computer method. Parallel timing for the instruction is shown in figure 331. DETAILED TIMING Phase 1 N687: Start arithmetic coincident with V003 time of first ROP; set K536/537 (FADR 1); set K596/597 (FADR 2); input to H500 and H510. V500: Clear A2 and Xl. V501: 15 -+A2 WLlS---"l;»); I6"' X1 (+1 -+1 6); input to H9420 -44.44 Original - 7.645 octal numbers Pack 1777110 ~3331 7774. 132 I to II-bit/ 0006/ Hold 3774 0002 177711 7777.3333 oo~~ /00132 This indicates a right shift of 3 to equal exponents }xtend sign 7777.3333 7777.7013(2) 0 Right shift 3 / Residue 7777.3333 7777.7013 7777 2346 +1 7777.2347 Add coefficients 7777.2347 -1 7777.2346 Round dmvn 111111111II.01~10 777 1 023( + 5771.2346 - 44.44 - 7.645 -54.305 = -54.31 = 5771.2346 Figure 330. Note that this number is properly normalized, therefore normalize and adjust exponent are not necessary. Merge Toggle Bias bit Note that these answers are equal. Pencil and Paper Example of Floating Point Addition V502: Clear Q3; input to H943. V503: Al exponent--'Q3; clear FLI5; set K870/871 (add exponent 1). V504: Clear K596/597 (FADR 2); set K104/I05 (start arithmetic 2). V505: IO~FLI5. At V501 time the enables come up to form M + 1. At V505 time M + 1 isgatedtoFL15so that it is available for the second ROP. At V503 time Al exponent is placed in t~e holding register Q3. During the transfer the bias bit is toggled, which places the real exponent in Q3 if Al is positive or the complement of the real exponent in Q3 if Al is negative. Phase 2: First Arithmetic Pass N659: Start arithmetic coincident with V009 of the second ROP and with V505 of phase l; input to H500, H510, and H512. V500: Clear A2, Q2, and Xl; input to H513 and H531. V501: 14~Xl (I5I3R--.I4); 13~Q2 orr--'I3) bits 0-11 and 23; 186X/87X~ Q2 bits 12-22 (Q3-+186X/87X if (Q3) negative); (Q3~I86X/87X if (Q3) positive); input to H854. 331 ,~ ____________________________ I , EQUALIZE I EXPONENTS I I ROP RN~ READ I \ (M+I) PHASE I AI EXP. ---...Q3 REMOVE BIAS BIT FORMM+I ADD COEFF. ROUND I PHASE 3 ~A~ __________________________ I NORMALIZE I ADJ. EXP. I MERGE ICOMPLEMENT I I I XI SUBTRACT EXPONENTS WHICH IS LARGER AND ALSO THE NUMBER OF SHIFTS REQUIRED TO EQUALIZE Figure 331. Parallel Timing for 60. X PHASE 2 LARGER EXP. ~ Q3 EXTEND SIGN OF COEFFICIENT IN AI AND X2 DIFFERENCE OF EXPONENTS SCR VS02: Clear X2; input to H821 and H8SS. VS03: Xl~X2, bits 0-11 and 23; 181X/82X~X2, bits 12-22 (Xl~181X/82Xif (Xl) positive); (Xl ......181/82X if (Xl) negative); set K800/801 (wait word 2); set K872/873 (add exp 2); enable II-bit adder; input to H834. VS04: Clear El. VSOS: Clear K870/871 (add exponent 1); input to HSOO and H942. Phase 2 consists of two arithmetic passes and has six functions listed as follows: 1. (M)-+X2 - The detailed transfer path is: bits 12 -22 XI-181X/82X~ DBR--+Xl Xl - .X2 BUsO-ll and 23 The transfer of Xl--.I81X/82X toggles the bias bit so that bits 12 -22 of X2 hold the real exponent at VS03 time. 332 ~, 2. Difference of exponents to SC register - The difference of the exponents is formed by forcing the 48 -bit adder to appear as an II-bit adder. This is accomplished by setting K872/873 (add exponent 2) at VS03 time, which causes groups 0-11 to appear as passes and not generates. Figure 332 is a simplified logic diagram of how group 12 of the adder is affected by the setting of add exponent 2. For the time interval defined by add exponent 2, U800 = 1 and U801 = O. This insures that all inputs to U746, 747, and 748 are disabled while all inputs to U749 are partially enabled. Therefore, group 12 only senses for carry inputs from groups 12, 13, 14, and 15. Figure 333 shows the data flow for subtract exponents. The operands are presented to the adder at VS03 time of the first arithmetic pass of phase 2 and m:mr is sampled at VSOI time of the second arithmetic pass of phase 2. At VS03 time of the second arithmetic pass the complement of the required number of shifts is placed in SC register so that the octal points can be aligned before the addition of coefficients. If the difference between exponents is greater than 778 , 1873 (Logic Q~~~~~, page 4-25) will block t_he. tran.:~fe!.... of Q3~SCreglster . Tfiend6re, 7'7 gshifts take place and the final answer will be the larger operand. 3. Larger Exponent to Q3 - At VS05 time of the sec0nd arithmetic pass of phase 2 one of the following will occur: .. a. If the sum of subtract exponents was positive, Al exponent is the larger exponent. Therefore Al exponent is gated to Q3 so that it will be available for adjust exponent. If (AI) is positive' the real exponent is placed in Q3; if (AI) is negative, the complement of the real exponent is placed in Q3. b. If the sum of subtract exponents was negative, M exponent is the larger exponent. The complement of M exponent is in X2 from subtract exponents. Therefore, gating X2 to Q3 places the M exponent in Q3 so it will be available for adjust exponent. The real exponent is placed in Q3. U800 (ADD EXP.) U300 U301 U302 U303 U304 U305 U306 U307 5. Larger Number to Xl - If the sum of subtract exponents was positive (M, M + 1) is smaller than (AQ) and must be right shifted to align the octal points. Since only AQE have shift capabilities (M, M + 1) must be placed in AQ as in item 4. In order to make room for this transfer (AQ) must be placed in X2Xl. During phase 2 (A) is transferred to Xl and then Xl is transferred sign extended into X2. The transfer path for Al to X2 is: The exchange of (AQ) and (M, M + 1) will be completed during the first arithmetic pass of phase 3. 6. Extend sign - At V505 time of the second arithmetic pass of phase 2 the operands are positioned with the upper 24 bits of the larger operand in Xl and the upper 24 bits of the smaller operand in Q2. The enables for extend sign are: Lower 12 bits Q2 -+ U308 U309 U'310 U511 U311 _ _ U801 (ADO EXP.) (6) ~~~~ (7) ~~ Lower 12 bits 1°---. Al Upper 12 bits Upper 12 bits i (II) L411 NOthing_I8lX/ 82 Nothing .... I O i A l (8) L558 X2 (9) L559 !lO)L560~ (Q2) negative (Xl) negative tlZ)l562 U643 L563 (13) U643 '872 I E!8A U749 ( 14)~~:j (15) ~:~53 -t--CARRY I.NPUT D I 08 Nothing (zeros) into the inverter ranks 10 and 18 equals all l's out. If a positive sign extension (O's) is required, the gates 10 ----.A1 and 18~X2 are simply not enabled. 0408 \:bDJ~ ~X:P.~ ::~~ ~ADD EXPONENTS Figure 332. Enabling the II-Bit Adder Sum positive -------t"\ Q3 Sum 0------negative Q3 4. Smaller number to Al = If the sum of subtract exponentwas positive, (M, M + 1) is smaller than (AQ) and must be right shifted to align the octal points. Since only AQE have shift capabilities (M, M + 1) must be placed in AQ and (AQ) will be placed in X2Xl. It is important to note that during subtract exponents the standard adder is functioning as a 24bit adder. The enables for placing (M) in Al are: Right adder~ 13 -'Q2; The exchange of (AQ) and (M, M + 1) will be completed during the first arithmetic pass of phase 3. Figure 333. Data Flow for Subtract Exponents 333 Phase 2: Second Arithmetic Pass If sum of subtract exponent positive A exponent > M exponent V500: Clear Q3; input to H943 V501: Left adder~3 (extend bit 10); set K874/875 (extend sign); input to H944. V502: Clear SC register; clear K872/873 (add exponent 2); input to H945. V503: I86X/87X--'SC register; set K814/815 (equalize exponent); clear K532/533 (unlike signs 1); input to H942. V504: Clear Q3; input to H943. V505: Input to H844 and H854. If sum of subtract exponent negative M exponent > A exponent Set K818/819 (swap Al and X2); input to H620. Clear A2 and Q2; input to H513. ~3~I86X/87X; Q3-+I86X/87X. I -+-Q2 (right adder.... I3); input to H8IO. Clear X2 and Xl; input to H511. I2--11--XI (Al-+I2); AI-+- Q3. X2-+Q3. V844, V854: Clear Al and X2; input to H555 and H855; if Xl negative, input to H821. V515, V855: IO-'Al, bits 0-11 (Q2-'IO); if Q2 negative, I0--'A1, bits 12-23 (nothing to 10); X1~X2, bits 0-11 and 23; if Xl negative, I81X/82X --'X2, bits 12 -23 (nothing to I81X/82X); set K820/821) (swap QI and Xl); set K800/802 (wait word 2). Phase 3 N687: Start arithmetic coincident with VOO9 of second ROP; input to H500, H510, and H512; clear K818/819 (swap Al and X2). V500: Clear A2, Q2, and Xl; set K560/561 (arithmetic busy); input to H531. Clear K874/875. V501: 14~XI (DBR-"14); set K802/803 (word 2); set K898/899 (short cycle). V502: Set K802/S03 (word 2); set K898/899 (short cycle). V503: V504: Set K804/805 (optional arithmetic busy); transfer 1 's count; transfer lOs count. V505: Set K814/815 (equalize exponent); clear K820/821 (swap QI and Xl); input to H500, H600, H620, and H820. The preceding aritilmetlc timing places(ivi + i) ill Xl at V501 time. At V504 time the shift count register is equalized so that it will count properly during equalize exponents. Remember that the complement of the required number of shifts was placed in rank I 334 If A exponent>M exponent Input to H513. I3~ Q2 (QI ~ 13); input to H524. Clear QI; input to H555. II-+Al (XI-+Xl); input to H810. Clear Xl; input to H531. The preceding enables occur only if Al exponent ~ M exponent which required that (M, M + 1) be placed in AQ to allow shifting. During phase 2 (AI) was placed of SC register during phase 2. The setting of optional arithmetic busy at V504 time enables the 48 - bit adder. The setting of K560/561 atV500time insures that main control cannot get into the arithmetic section until the execution of this instruction is complete. Phase 2: Egualize Exponents V500: Clear A2, Q2, and E2; clear K800/80l (wait word 2); V503: Clear K802/803 (word 2). in X2 and (Nl) was placed in AI. (Nl + 1) in Ql and (Ql) in X2. This timing places V600: If SC register ::f 7X, input to H523, H561, and H881; if SC register = 7X, input to HS13; HSSl; and H871. V601: Input to H514, H524, and H834; if SC Register ::f 7X: I2-'A2, right shift 10 (A1---'I2); r 3- . Q2, right shift 10 (Ql-.r 3 ); El---.E2, right shift 10; advance lOs count. If SC register = 7X: r 2--'A2 (A1-+ 12); r3--. Q2 (Q1-" 13); El~E2. V602: V504 V505: Input to H500, H600, H620, and H820; if SC register ::f 77, repeat shift cycle; if SC register = 77, set K816/817 (add/subtract coefficient); clear K898/899 (short cycle). The preceding arithmetic timing is a short cycle (4 ~ times) since K898/899 (short cycle) was set at V501 time of the previous arithmetic pass. Clear AI, Q1, and E1; transfer lOTs count; If SC register ::f X7, input to H525, H565, and H895; If SC register = X7, input to H515, H555, and H885. V603: If SC register :f X7: _ r0-'A1, right shift 1 (A1--' 10); 11-.. Q1, right shift 1 (Q2 ..... II); E2-' E1, right shift 1, advance l's count. If SC register = X7: r0-.,A1 (A1---.r O); r1~Q1 (Q2-.r 1); E2-+El. The preceding timing is from the shift timing chain. At the completion of equalize exponents the coefficient of the smaller operand will be positioned in AQE sign extended. That portion of the operand contained in E is called residue and will be used to determine if a round operation is necessary. If the difference of exponents is > 36 10' AQ will contain only the sign exten sion. Phase 3: Add Coefficients V500: Clear A2, Q2, E2; clear K814/815 (equalize exponents); input to H6l1. V501: I2~A2 (Ql~ 12); I3~ Q2 (AI-+- 13 ); set K884/885 (round up) if A223 = 0 (A is positive) and E247 = 1. V502: Set K890/89l (round down) if A223 = 1 (A is negative) and E247 = o. V503: Input to H612. V504: Clear Al and Q1; , input to H6l3. 335 V505: 10~AI (left adder~O). II-'QI (right adder-.l i ); set K822/823 (round); input to H500, H620, and H810; input H510 if round down. QI Al During this arithmetic pass the coefficients are added. Figure 334 shows the data flow for add coefficients. During this pass the enables for round are determined by the setting or not setting, round up or round down. If the residue is > one-half, around is necessary. Coefficient of smaller operand Figure 334. Phase 3: Round V500: Clear A2, Q2, Xl, and X2; clear K816/817 (add/ subtract coe fficient); input to H611. V501: 12 ~A2 (QI-+-12); 13-+ Q2 (AI-..I3); input to H944. V502: Clear SC register. V503: Input to H612. V504: Clear Al and QI; set K898/899 (short cycle); if sum = -0, input to H613. V505: If sum ., -0: IO~AI (left adder . . . IO); II-+-QI (right adder~II); set K826/827 (normalize); remove clear from K880/881 and K886/887; input to H500,· H600, H620, and H820. The timing for round occurs whether or not an adjJ~Btmcnt O,f the coc.fUcic.nt mu~ct be made .... .Rmu),d can be +1 or -1 for the 60 instruction. For a +1 operation the sum of the coefficients is placed in Q2A2, X2X1 is forced to 0-'01, and a 48-bit add is performed. For a -1 operation the sum of the coefficients is placed in Q2A2, X2X1 is forced to 7--..76, and a 48-bit add is Coefficient of larger operand Enables for Add Coefficients If round down, input to H531 and H821. 14-..XI (nothing to 14); 1400-.XOOO block by round down; 18IX/82X-+X2 Upper (nothing~18IX/82X); set X2 lower. (A -1 is thus forced into X2Xl. ) If round up. A +1 is forced to X2Xl. In both cases above, adder propagation occurs; is gated to l°ll. WID performed. If neither a +1 nor a -1 is required, X2X1 is t;?leareq prior. to the 48-hit ::lnn ::lnn thp nrigin::ll Rllm is preserved. The timing for all floating-point instructions is common for normalize, adjust exponent, merge, and complement. Go to page 244 to complete the timing for this instruction. F LOATING-POINT SUBTRACTION FSB Floating -point Subtraction From AQ ,.:;;2~3~--:1:.;;8~1:..;.7~1...;;.6--:1:.;;5;....,..;1;;..;4;....-__0.;..0.;., 6_1_...&I_a...&I__b_--'-__!11_--_---J1 L - I_ _ a = addressing mode designator b = index register de signator c = storage address; M = m + (IP) 48-bit minuend or difference 47~ 23 22 Instruction Description Subtract the 48 -bit floating-point operand located at storage addresses M and M + 1 from the floating -point operand in AQ. The rounded and normalized difference is displayed in AQ. The upper order bits of E hold the portion of the operand that was shifted into E during the equalization of exponents. Refer to figure 335 for operand format. 12 11 00 -00 23 00 A register Q re8:ister ~\ I v II-bit exponent 36 -bit coefficient sign of coefficient I 11 -bit ~xpone~t (M) 23 47~ 47~ 22 12 11 (M + 1) 00 23 00 48 -bit subtrahend .. 00 residue - 00 E register Figure 335. Operand Format for Floating Point Subtraction The pencil and paper exam pIe, figure 336 shows how the computer performs a floating-point subtraction. The original octal numbers are in the upper right corner of the page and the flow for the problem is defined by the heavy black lines. The computer would start with the operands packed in floating -point format. The steps are as follows: 1. Obtain the complement of the subtrahend. 2. Toggle the bias bit to obtain the real exponents. 3. Send the exponents to an II-bit adder, subtracting the exponent of the subtrahend from the exponent of the minuend. The magnitude of the difference indicates how much the smaller operand must be right shifted to align the octal points. The sign of the difference indicates which operand is smaller. The exponent of the larger operand will be retained to form the result of the floating- point subtraction. 4. Extend the sign of the coefficients. 5. Shift the smaller coefficient right to align the octal points. Note that the bits shifted off are retained so that they may be used to determine if a round is necessary. These bits form the residue. 6. Perform the subtraction. 7. The residue is inspected for the round under the following rules: a. If the operand shifted right was negative and the highest order bit of the residue is 0, add -1 to round. b. If the operand shifted right was positive and the highest order bit of the residue is 1, add +1 to round. c. In any other case add all O's to round. 8. Normalize; a left shift of 1 is required for this ex~ple. 9. Adjust exponent by subtracting 1 since the shift was left to normalize. 10. Merge the exponent and coefficient. 11. Toggle the bias bit. In the lower left-hand corner the original octal numbers are subtracted and the difference is packed in floating-point format. Note that this is the same answer arrived at by using the computer method. 337 +44.44 Original +5.325 octal numbers 2006.4444 ; 2006.4444 ; 2003.5325 = 5774.2452 0\44441 7774· 2452 To II-bit l E)tend Sign ~adder ) 0006 3774 0002 +1 0003 Hold 100061 0000.4444 7777.2452 /do ) Th IS III lcates a right shift of 3 to equalize exponents O 0000 .4444 7777 .7245 (2) Right shift 3 / 0000.4444 7777 .7245 0000 3711 +1 0000.3712 OOOO~3712 '\ Residue Subtract coeffic ients by adding Round down -1 0000.3711 ~ 000000000000.011111001001 I 000000000000011:110010010 Note that this number is not properly normalized Normalize Adjust exponent 0006 44.440 Subtract 5.325 37.113 Merge 2005~7622 Toggle bias bit ~ 2005.7622 Figure 336. 338 0005.7622 Note that these answer s are equal Pencil and Paper Example of Floating Point Subtraction PHASE 3 /~ ____________________________ I I I EQUALIZE SUBTRACT I I EXPONENTS I COEFF. I ROP RN~ READ I ROUND --JA~ __________ I NORMALIZE ~ _______________\ ADJ. EXP. I MERGE ICOMPLEMENT I I I I \ I \...----v~---' b l ~ :lc=Ji (M+1l PHASE I AI EXP. -..Q3 REMOVE BIAS BIT FORM M+ I il SHIFT i I~I I I XI SUBTRACT EXPONENT TO DETERMINE WHICH IS LARGER. ALSO HOW MANY SHIFTS NECESSARY TO EQUALIZE. PHASE 2 LARGER EXP. ~ Q3 EXTEND SIGN OF COEFFICIENT IN AI AND X2 DIFFERENCE OF EXPONENTS SC R Figure 337. Parallel Timing for 61. X DETAILED T1M]NG Phase 1 N687: Start arithmetic coincident with V003 time of first Rap; set KS36/S37 (FADR 1); set KS96/S97 (FADR 2); input to HSOO and HS10. VSOO: Clear A2 and Xl. VS01: IS-'A2 (!:.L1S--'1S); 16-'X1 (+1-+16 ); input to H942. VS02: Clear Q3; input to H943. VS03: Al exponent-+Q3; clear FL1S; set K870/871 (add exponent 1). VS04: Clear KS96/597 (FADR 2); set K104/105 (start arithmetic 2); set K850/851 (nB~14 enable). VS05: 10~ F LIS (sum --.rO) . At V501 time the enables come up to form M + 1. AtV505 timeM + lis gated to FLl5 so thatitis available for the second Rap. At V503 time Al exponent is placed in the holding register Q3 During the transfer the bias bit is toggled, which places the real exponent in Q3 if Al is positive or the complement of the real exponent in Q3 if Al is negative. 0 Phase 2: First Arithmetic Pas s N687: Start arithmetic coincident with V009 of the second Rap and with V505 of phase 1; input to H500, H510, and H512. V500: Clear A2, Q2, and Xl; input to HS13 and HS31. V501: I~X1 (DBR-+14); r3-'Q2 (A1-+13), bits 0-11 and 23; 186X/87X---"Q2, bits 12-23 (Q3---..186X/87X if (Q3) is negative); (Q3-.186X/87X if (Q3) positive); input to H8 54. VS02: Clear X2; input to H821 and H855. V503: X1-" X2 , bits 0-11 and 23; 181X/82X-..X2, bits 12-22 (X1~I81X/82X if (Xl) positive); (Xl-'I81X/82X if (Xl) negative); set K800/801 (wait word 2); set K872/873 (add exponent 2); input to H834. V504: Clear El. V505: Clear K870/871 (add exponent 1); input to H500 and H942 0 Phase 2 consists of two arithmetic passes and has six functions listed as follows: 339 1. (M)--.X2 - The detailed transfer path is shown below. time of the second arithmetic pass of phase 2 At V503 time of the second arithmetic pass the complement of the required number of shifts is placed in SC register so thatthll octal points canbe aligned before the subtract step. If the difference between exponents is greater than 778, 1873 (Logic Diagrams, page 4-25 will block the transfer of Q3 SC register Therefore, 778 shifts take place and the final answer will be the larger operand. 3. Larger Exponent to Q3 - At V505 time of the second arithmetic pass of phase 2 one of the following will occur: a. If the sum of subtract exponents was positive, Al exponent is the larger exponent. Therefore, Al exponent is gated to Q3 so that it will be available for adjust exponent. Note that if (AI) is positive, the real exponent is placed in Q3; if (Al)is negative, the complement of the real exponent is placed in Q3. b. If the sum of subtract exponents was negative, M exponent is the larger exponent. The complement of M exponent is in X2 from subtract exponents. Therefore, gating X2 to Q3 places M exponent in Q3 so that it will be available for adjust exponent. Note that the real exponent is placed in Q3. 4. Smaller number to Al - If the sum of subtract exponents was positive (M, M + 1) is smaller than (AQ) and must be right shifted to align the octal points. Since only AQE have shift capabilities (Ml , M + 1) must be placed in AQ and (AQ) will be placed in X2Xl. It is important to note that during sub0 Bits 12-22 DBR---.XI :: / 181X 82Xj • 0 Bits 0-11 and 23 The transfer of Xl-.I81X/82X toggles the bias so that bits 12-22 of X2 hold the real exponent at V503 time. 2. Difference of Exponent to SC Register - The differ ence of the exponents is formed by forcing the 48bit adder to appear as an II-bit adder. This is accomplished by setting K872/873 (add exponent 2) at V503 time which effectively causes groups 0-11 to appear as passes and not generates. Figure 338· is a simplified logic diagram of how group 12 of the adder is affected by the setting of add exponent 2. For the time interval defined by add exponent 2, U800 = 1 and U801 = O. This insures that all inputs to U746, U747, and U748 are disabled, while all inputs to U749 are partially enabled. Therefore, group 12 only senses for carry inputs from groups 12, 13, 14,. and 15. Figure 339 shows the data flow for subtract exponents. The operands are presented to the adder at V503 time of the first arithmetic pass of phase 2 and Siii1:1 is sampled at V501 UBOO \ADD EXP.l U300 U301 U302 U503 Rank 1 U304 U305 U306 U307 U3ee U309 U310 U311 Sum J..------negative Sum positive U5'71---~ ueol ",.00 EXP.) (6) ~:!~ m~~ (11) L411 \8 )L558 19~ ADO EXP 2 K872 L559 (lO)L560 133 (2) ~;~§ (13) ~~:; (l4)~~~ (15) ~:~53 -t--t;AftI'Cl FROM \'tbJ" 0108 .1.fIIIl"UI GROUP D40B ~X:ri.\ ::~~ ~A=0"-0[-XP-ON=EN=T! Figure 338. Enabling the II-bit Adder 340 J 22 I M exponent X2 12 _22 .1 12 I I Al exponent Q2 Figure 339. Enables for Difference of Exponents to SCR tract exponents the standard adder is functioning as a 24 -bit adder. The enables for placing (M) in Al are: Right adder ..... 13 .....Q2 6. Extend Sign - At V505 time of the secondarithmetic pass of phase 2 the operands are positioned with the upper 24 bits of the larger operand in Xl and the upper 24 bits of the smaller operand in Q2. The enables for extend sign are: Lower 12 bits Q2-..I°---'AI Q2--' I°--..AI The exchange of (AQ) and (tvI, M + 1) will be completed during the first arith pass of phase 3. 5. Larger Number to Xl - If the sum of subtract exponents was positive, (M, M + 1) is smaller than (AQ) and must be right shifted to align the octal points. Since only AQE have shift capabilities (M, M + 1) must be placed in AQ (as in item 4). In order to make room for this transfer (AQ) must be placed in X2XI. During phase 2 (A) is transferred to Xl and then will be transferred sign extended into X2. The transfer path for Al to Xl is: Upper 12 bits Nothing_lOll (Q2) negative Lower 12 bits X1--'X2 Upper 12 bits Nothing_ 18IX/82XYX2 The exchange of (AQ) and (M, M + 1) will be completed during the first arithmetic pass of phase 3. (Xl) negative Phase 2: Second Arithmetic Pass If sum of subtract exponent positive, A exponent > M exponent V500: Clear Q3; input to H943. V501: Left adder ...... Q3 (extend bit 10); set K874/875 (extend sign); input to H944. V502: Clear SC register; clear K872/873 (add exponent 2); input to H945. V503: I86X/87X....... SC register; set K814/815 (equalize exponent); clear K532/533 (unlike signs 1); input to H942. V504: Clear Q3; input to H943. V505: Input to H844 and H854. If sum of subtract exponent negative, M exponent> A exponent. Set K818/819 (swap Al and X2); input to H620. Clear A2 and Q2; input to H513. Q3~86X/87X; Q3-+ I86X/87X I3-+Q2 (right adder 13); input to H810. \ Clear X2 and Xl; Input to H511; I2 .....X1, (A1 .......I2 ); A1....... Q3. X2-+Q~ V844, V854: Clear Al and X2; input to H555 and H855; if Xl negative, input to H821. V515, V855: IG--'A1, bits 0-11 (Q2-+ 10); if Q2 negative, IO~A1, bits 12-23 (nothing to 10); X1--"X2, bits 0-11 and 23; if Xl negative, I81X/82X-..X2, bits 12-22 (nothing to 181X/82X); set K820/82l (swap Ql and Xl); set K800/80l (wait word 2). 341 Phase 3: Initialize N687: Start arithmetic coincident with V009 of sec0nd ROP; input H500, H510, and H512. clear K818/819 (swap Al and X2). V500: Clear A2, Q2, and Xl; clear K874/875; input to H531; set K560/561 (arithmetic busy). V501: I4--..Xl (DBR to 14); set K802/803 (word 2) set K898/899 (short cycle); clear K850/851 (bus--..I4 enabl~). V502: Set K802/803 (word 2); set K898/899 (short cycle); clear K850/851 (DBR -.14 enable). V503: V504: Set K804/805 (optional arithmetic busy); transfer 1 's count; transfer lOs count. V505: Set K814/815 (equalize exponent); clear K820/821 (swap Ql and Xl); input to H500, H600, H620, and H820. The preceding arithmetic timing places (M + 1) in Xl at V501 time. At V504 time the shift count register is equalized so that it will count properly during equalize exponents. Remember that the complement of the required number of shifts was placed in rank 1 of the SC register during phase 2. Setting of optional arith metic busy at V504 time enables the 48 - bit adder. Setting of K560/561 at V500 time excludes main control from the arithmetic section until execution of this instruction is complete. Phase 3: Equalize Exponents V500: Clear A2, Q2, and E2; Clear K800/801 (wait word 2). V503: V504 312 Clear K802/803 (word 2). If A exponent >M exponent, Input to H513. 13--.. Q2 (01-+1 3 ); Input to H524. Clear Ql; input to H555. Il--.Ql (X1--+ II); input to H810. Clear Xl; input to H531. The enables shown above occur only if A exponent > M exponent which required that (M, M + 1) be placed inAQ to allow shifting. During phase 2 (AI) was placed in X2 and (M) was placed in AI. This timing places (M + 1) in Ql and (Ql) in X2. V600: If SC register "f 7X, input to H523, H561, and H881; if SC register = 7X, input to H513, H551, and H871. V601: Input to H514, H524, and H834; if SC register "f 7X: I2~ A2, right shift 10 (AI --+-12 ), 13 .... Q2, right shift 10 (Ql ......I3), El "'E2, right shift 10; advance 1 Os count. If SC register = 7X: I2~A2 (Al-a.-I2), !3~Q2 (Ql ..... 13 ), El-tr-E2. V602: Clear AI, Ql, and El; transfer 10's count. if SC register "f X7, input to H525, H565, and H89S. If SC register::: X7, input to H51S, H5S5, and H88S. V505: Input H500, H600, H620, and H820; if SC register t: 77, repeat shift cycle; if SC register = 77, setK816/817 (add/subtract coefficient); clear K898/899 (short cycle). V603: If SC register t: X7: IO~A1, right 1 (A2~0), 11-. Q1, right 1 (Q2-+I 1), E2~E1, right l~ advance l's count. If SC register = X7: IO~ Al (A1-+IO), I1~Q1 (Q2-+-I1), E2-+E1. The preceding arithmetic timing is a short cycle (4 0 times), as K898/899 (short cycle) was set at V501 time of the previous arithmetic pass. The preceding timing is from the shift timing chain. At the completion of equalize exponents the coefficient of the smaller operand will be positioned in AQE sign extended. That portion of the operand contained in E is called residue and will be used to determine if a round operation is necessary. If the difference of exponents is >36 10, AQ will contain only the sign ex tension. Phase 3: Subtract Coefficients V500: Clear A2, Q2, E2; clear K814/815 (equalize exponents); input to H611 V501: I2-"A2 (Ql-' 12); I3-'Q2 (Al"'I3); set K884/885 (round up) if A223 = 0 (A regis47 ter positive) and E2 = l. V502: Set K890/891 (round down) if A223 = 1 (A is negative) and E247 = 0. V503: Input to H612. V504: Clear A1Ql; input to H613. V505: IO~A1 (left adder'" 10); II...... Q1 (right adder--.I1); set K822/823 (round); input to H500, H620, and H810; input to H510 if round down. 0 During this arithmetic pass the coefficients are subtracted. Remember that, in order to subtract, the subtrahend must be complemented and addition performed. The complement of the subtrahend was obtained by setting K850/851 (DB~I4 enable) at V504 time of phase 1. This insures that (NI, M + 1) is complemented as it is transferred into the arithmetic section. See figure 340 for data flow during subtract coefficients. During this pass the enables for round are determined by the setting or not setting of round up or round down. If the residue is > 1/2, a round is necessary. Remember: round up forces a +1 to X2X1 and round down forces a -1 to X2Xl. The adder propagates in both cases before transferring sum -+10. Al A2 Figure 340. Enables for Subtract Coefficients Coefficient of smaller operand X2 Xl Coefficient of larger operand 343 Phase 3: Round V500: Clear A2, Q2, Xl, and X2; clear K816/817 (addition/subtraction coefficient); input to H611. V501: r2~A2 (Ql-'r2 ); r3 -"Q2 (Al-.r3 ); input to H944. V502: Clear SC register. V503: Input to H612. V504: Clear Al and Ql; set K898/899 (short cycle); if sum :f -0, input to H613. V505: If sum :f -0: I0--"Al (left adder--'IO); Il--"Ql (right adder ... r 1); set K826/827 (normalize); remove clear from K880/881 and K886/887; input to H500, H600, H620, and H820. The timing for round occurs whether or not an adjustment of the coefficient must be made. Round can be +1 or -1 for the 61 instruction. For a +1 operation the difference of the coefficients is placed in Q2A2; X2X1 is forced to 0--'01, and a 48-bit add is performed. For a -1 operation the difference is placed in Q2A2, X2Xl is forced to 7--'76, and a 48-bit add Phase 3. Common Timing: Normalize Set short cycle FF for normalize. V500: Clear A2 and Q2. V503: If K886/887 (left lOs shift enabled) is clear and Ao4-l5 is alII's or all O's, set K880/88l (left shift lOs); if K880/881 (left lOs shift enabled) is clear and All = AI2, set K888/889 (shift 1 's); if K886/887 (left lOs shift enabled) is set and Q20-23 andAOO-05 is all I's or all D's, clear K880/881 (shift left lOs); if A 12 t: A13, set K882/883 (shift right 1) and set K888/889 (shift l's); if A 10-13 is all l's or all O's, set K878/879 (normalize complete); If (AQ) = 0, set K878/879 (normalize complete); transfer I's count. Y504' Porcc tnn13fcr 'K88()/~B 1 tn K~Rn/~P.7. If round down, input to H531 and H821. I4---'XI (nothing~4), I400-'XOOO blocked by round down, 181X/82X-"X2 upper (nothing--.I8IX/82X); set X2 lower. This equals a -1 in X2X1. If round up. Force X2X1 to +1. is performed. If neither a +1 nor a -1 is required, X2X1 is cleared prior to the 48-bit add and the original difference is preserved. The timing for all floating-point instructions is common for normalize, adjust exponent, merge, and complement. Go to page 244 to complete the timing for this instruction. V600: If K880/88l (shift left 10) is set, input to H523 and H561. If K880/881 (shift left 10) is clear, input to H513 and H551. V60l: If lOs enabled: I2-'A2, left shift 10 (A1~r2), 13~ Q2, left shift 10 (Ql~r3); advance lOs count. If lOs enabled: 12 --. A2 (AI ~2), 13~Q2 (Q1~I3). Vn02: Cle.::tT ~A.,l andQl; transfer lOs count; if K888/889 (shift l's) is set, input to H525 and H565; if K888/889 (shift l's) is clear, input to H5l5 and H555. V505: Input to H500, H600, and H620. If normalize complete: set K830/831 (adjust exponent); clear K898/899 (short cycle); input to H810; proceed to adjust exponent. If normalize complete: repeat shift cycle. V603: If shift l's and shift right 1: I°--.Al, left 1 (A2-.IO), I1-.Ql, left 1 (Q2-+Il); advance 1 's count. If shift l' s and shift right 1: I0-'Al, right 1 (A2--'IO), I4Ql, right 1 (Q2-+Il); advance 1 's count. If shift l's: 14Al (A2-+IO), r 1-"Ql (Q2-..r 1). Ao4-15 AnI's Left shift lOs enabled Normalize arithmetic time 3 Left lOs shift enabled Ao4-15 All O's K886 Left shift lOs enabled K887 Q20 -----..Ao5 _ _----I~ All O's Left shift lOs enabled Q20-+A05 AliI's Figure 341. Enabling lOs Shifts Left shift lOs enabled The timing for normalize is common to all floatingpoint instructions and consists of passes through the arithmetic and shift timing chains. The arithmetic passes are short cycles (4 0 times) since short cycle was set at V504 time of round. The main items for normalize are: 1. Right shift will never be more than 1 place and could occur for a 60, 61, or 63 instruction. A12 f A13 indicates that a right shift is necessary. 2. Left shift can be any number of shifts less than 36 10 and could occur for any floating-point instruction. 3. lOs shifts will always be left and will always be completed before any I' s shifts take place. Figure 341 is a simplified logic diagram of setting shift left lOs. Note that S835 is forced to a Ion the first pass by K886/887 and that S833 is forced to a 1 on all following lOs passes. 4. Normalize complete is defined byeither one of two conditions: AQ = or AI0-13 all alike. ° 345 Phase 3: Adjust Exponent V500: Clear A2, Q2, Xl, and X2; clear K826/827 (normalize); if no shift or left shifts were required during normalize, input to H821. V501: I3~Q2 (Al--'I3), bits 0-11 and 23; I86X/87X-'Q2, bits 12-22;if (Q3) is negative, Q3-----I86X/87X; if (Q3) is positive, Q3-+I86X/87X. V502 V503: Input to H942. V504: Clear Q3; input to H9430 V505: Sum ~Q3, set bit 11 of Q3; if exponent sum = -0 (A negative) or exponent sum ::f -0 (A positive), input to H500, H620, and H820; set K834/835 (merge). The following items are of note for adjust exponent: 1. If no shifts were required during normalize the real exponent is added to all O's and gated back to Q3 .. 2. If a right shift was required during normalize, adjustment of the exponent requires a +1. This is accomplished by forcing bits 22 -12 of X2 to 0--- 01 and performing an addition with the real exponent 3. If the shift was left to normalize the shift count 0 If left shift to normalize, If right shiftto normalize, Set X620/621. (X2 registe bits 12-22 set to a +1.) 181X/82X-.X2, bits 1222; SC register-+I81X/ 82X, lower 6; nothing--" 181X/82X, upper 6. (Complement shift count to adder via X2 register.) must be subtracted from the real exponents to adjust the exponent. This is accomplished by gating the complement of the shift count to X2 at V501 time and performing an addition with the real exponent. At V505 time of the last pass of normalize K830/831 (adjust exponent)was set which enables the 48-bit adder to function as an II-bit adder. K830/831 has the same effect on the adder as K872/873 (add exponent 2). Phase 3: Merge V500: Clear A2, Q2 and E2; clear K830/831 (adjust exponent); input to H611 and H871. V501: 12 -.. A2 (Ql--' 12); I3-+- Q2, bits 0-11 and 23 (AI ..... 13); I86X/87X-+-Q2, bits 12-22; if (Q3) positive (Q3~I86X/87X); if (Q3) negative (Q3-+- 186X/87X). V502 V503: If AQ t- 0, input to H612. V504: If AQ ::f 0, clear AIQl; input to H613. V505: If AQ t- 0, I°-.Al (Q2~ID), 11~QI (A2"'I 1); set K852/853 (complement AQE or last cycle); input to H500, H620, and H820. The data flow for merge is: Q3~ ~ - - ' \ ... TO ~4h t:..v IO'7V " /.....-"~"-"'/ '-" Q3~ The transfer of S"Uiii to Q3 at V505 time of adjust exponent toggled the bias bit so that the biased exponent is available for merge. Q2A2~IQl Bits 12 -22 (Q3) negative Bits 0-11 and 23 (Q3) positive Phase 3: Complement V500: Clear A2, Q2, and E2; clear KS04/S05 (optional arithmetic busy); input to H611, HS71. V501: r:l~A2 (AI-+r~); r3-+ Q2 (QI~ r3 ); EI~E2. V502 V503: If K532/533 is set (unlike signs), V504: Clear K804/805 (optional arithmetic busy). V505: rnputto H864. V864: Clear K560/561 (arithmetic busy). The complement of AQ would occur for floatingpoint multiply or divide when the signs of the coefficient were unlike. A complement of AQ will not occur for floating-point add or subtract. A complement of E would occur for a floating-point divide when the dividend was negative. K552/553 (sign of A) which input to H6I2. Clear Al and QI; input to H6I3. rO~AI (A2--.r O); rl-'QI (Q2-.II). If K552/553 (sign of A) is set and 63 instruction or if K532/533 (unlike sign 1) is set and 62 instruction, input to H834. Clear EI; input to H9I5. Einv~EI (E2-+Einv). indicates a negative dividend was set during copy F I--'F2 time of RNI if A23 was set. A complement of E would occur for a floating-point multiply if the product were to be negative. The clearing of arithmetic busy at V684 time frees the arithmetic section so that it may be used by main control. PROBLEMS 1. May normalize be either a right or left shift for the 62 instruction? Why or why not? 2. Assume that (AQ) is negative. During phase 1, Al exponent Q3 occurs. This places the complement of the real exponent in Q3. How are add exponents accomplished with read exponents in this case? 3. How is 247 of the adder affected during add exponents? 4. At the completion of the multiply step where is the product? Can you predict what the lowest 12 bits of El will be? 5. Why is +1 the only possibility for round of the 62 or 63 instructions? 347 SELF-EVALUATION QUIZ ON CHAPTER 13 TRUE OR FALSE OR FILL IN THE BLANKS: 13. 1. The FP /DP option is located in chassis ~--- 2. The FP /DP option is necessary to execute the _ _ _--', and _ _ _ _ _ _ _ _ __ through _ _ _ _ _ _ arithmetic instructions. 3. Primarily, the FP /DP option consists of a 48 -bit adder and the 48 -bit E register. arithmetic passes are required for divide step of a DVAQ • 14. The highest order bit of E is inspected to determine whether or not a round is necessary during the FMU. 15. Normalize for the FMU will always be right shift if any shifts are required. 4. The optional adder is enabled by setting of _ _ 16. If the product of an FMU has a negative coefficient and a positive exponent, complement will not occur. 5. The optional adder may function as an 11 -bit adder. 6. The multiplier for an MUAQ instruction is the quantity in AQ. 17. Divide fault cannot occur during execution of the FDV since the hardware can normalize. 18. The function of pass 3810 cf divide step on a FDV is to allow sensing for round. 7. The first pass of multiply step for the MUAQ instruction must be a long cycle. 19. Round on a FDV will always be -1. 8. The multiply step of the MUAQ instruction requires 608 passes. 20. If is set, the optional adder will function as an II-bit adder. 9. Complement is optional in the execution of the MUAQ instruction. 10. After the first multiply step of the MUAQ instruction, the multiplier hit is sensed at 21 of E2. 11. The amount of time necessary to execute a DVAQ depends on the number of 0 bits in the divisor. 12. The four steps required for execution of a DV AQ _ _ _ _ _ _ _ , and are initialize, Score Yourself This quiz was a good one. You may not agree, but you're entitled to that. None wrong is way above average. One wrong is above average. Two wrong is average. Three wrong- -you're slipping! Four or more wrong--you've slipped--into failure! CHAPTER 14 INTERRUPT GENERAL DESCRIPTION The interrupt feature of the 3300 Computer System allows automatic sensing for specific internal or external conditions whose existence requires special action on the part of the program. To recognize an interrupt condition as soon as possible, the hardware senses for interrupt during RNI and RADR. If an interrupt is recognized, execution of the main program is terminated, the contents of P are stored at a fixed location, and program control is transferred to a fixed location. TYPES There are three major groups of interrupts in the 3300 system. These groups listed in order of priority are: 1. Abnormal interrupts. 2. Normal interrupts. 3. Trapped instruction interrupts. ABNORMAL INTERRUPTS There are three interrupt conditions that are classified as abnormal. Listed in order of priority- these conditions are: 1. Interrupt on storage parity- error or storage not available. 2. Interrupt on illegal storage reference. 3. Interrupt on power failure. These interrupts are not masked and the interrupt system need not be enabled to recognize one of these interrupts. 349 NORMAL INTERRUPTS Tn general, to recognize one of these interrupts the interrupts system must be enabled, the mask bit must be set, and the interrupt counters must have counted to the proper count. The exceptions to these conditions are: 1. Associated processor and manual interrupts are not mask. 2. Executive interrupt is exclusive of all three stated conditions. External line interrupts and channel interrupts are equal in priority, that is, if the channel counter is active the line counter cannot be started; if the line counter is active, the channel counter cannot be started. To assign a priority to the normal interrupts, starting of the interrupt counter must be used as a time 1. 2. 3. *4. 5. 6. 7. 8. reference. The priority becomes: Executive interrupt. Arithmetic overflow or divide fault. Floating point fault or BDP fault. External line or channel interrupts. Search/move interrupt. Real time clock interrupt. Manual interrupt. Adjacent processor interrupt. TRAPPED INSTRUCTION INTERRUPT The trapped instruction interrupt occurs whenever an instruction that requires optional hardware is read into F and the optional hardware is not present. This interrupt is not masked and the interrupt system need not be enabled to recognize this interrupt. ABNORMAL INTERRUPT SEQUENCE INTERRUPT ONSTORAGE PARITY ERRORORSTORAG E NOT AVAILABLE This is the highest priority interrupt in the 3300 system and does not require the interrupt to be enabled. Interrupt on storage parity error is switchselectable from the console and recovery from this fault may not be possible. If the system is operating non-Executive when this interrupt is recognized, the hardware interrupt sequence will store the (P) in the lower 15 bits of address 000208. The upper 9 bits of address 000208 are not altered by this operation. An identifying code is stored in the lower 12 bits of address 000218 and then RNI at address 00021 8 , If the system is operating Executive when this interrupt is recognized, the hardware interrupt sequence will: 1. Disable the Condition register. 2. Transfer to Monitor State. 3. Store the (P) in the lower 15 bits of address 0000208; the upper 9 bits of address 0000208 are not altered. 4. Store an identifying code in the lower 12 bits of address 00021 8 , 5. RNI at address 000021 8 , ILLEGAL STORAGE REFERENCE INTERRUPT This is the second highest priority interrupt in the 3300 system and does not require the interrupt system to be enabled. If the system is operating Non-executive, this interrupt does not exist. If the system is operating Executive. there are four ccmdi.tic.Il.s v;Mch ..vUl g.c.n.cr.utc n.n nlcgaJ stnragn Reference interrupt. They are: 1. Program State 0 and the STORAGE PROTEC T switches compare with the lower 15 bits of the address placed on the S bus during a Write. This condition is sensed in Main Control. 2. Program State and the Page Index referenced has E = 1 and all other bits ::-: O. This condition is sensed in the Multiprogramming module and the interrupt would occur for either a Read or a Write. 3. Program state and the Page Index referenced has E = 1, any other bit = 1, and a Write is specified. This condition is sensed in the Multiprogramming module. 4. Program State and the available page length as spec ified by PL is exceeded. This condition is sensed in the Multiprogramming module and would occur for a Read or Write. When this interrupt is recognized the hardware interrupt sequence will: 1. Disable the Condition register. 2. Transfer to Monitor State. 3. Store the (P) in the lower 15 bits of addres s 0000148; the upper 9 bits of address 0000148 are not altered. 4. RNI at address 0000158' POWER FAIL INTERRUPT This is the third highest priority interrupt in the 3300 system and does not require the interrupt system to be enabled. The purpose of this interrupt is to allow the computer to save any pertinent data before shutdown due to a loss of line voltage. The logic for detecting a power failure is shown in figure 342. Source power of 110 vac provides power to the blowers in all the basic electronics cabinets. When this 110v power is brought up, a 24v holding relay (located *Regardless of channel, a lower-numbered line has priority over a higher-numbered line; a lower-numbered channel has priority over a higher-numbered channel. Figure 342. Power Failure Detection 1ST CYCLE V009 48-BIT KOOO V006 JI31 RNI + RADR ~Tl :ill till VI20 POWERFAIL 110 VAC A &:111.1 LOCKOUT III.IT I""'\UI"t.II'"4I. KI42 KI28 END OF STO VI86 KI29 V008 K456 K464 KI43 J289 Me on the power panel) is energizedo This relay holds the power up after the POWER ON switch is released. The 24 volts from the relay transformer is applied to J146 and J147 to normally prevent them from both outputting Is. If the 110 vac source power should drop, the input voltage to J146 and J147 falls from 24 vac to 0 vac, allowing both inverters to output Is. The Abnormal Interrupt FF is then set at V006 time RNI (provided that the RNI is not the second RNI sequence for a 71 to 76 instruction) or at V006 of RADR. Once Abnormal Interrupt has set, Powerfail Lockout will be set to prevent another input to the Abnormal Interrupt FF. A master clear must then be performed to again activate the powerfail detection circuit. If the system is operating non-Executive when this interrupt is recognized, the hardware interrupt sequence will store the (P) in the lower 15 bits of address 00002S and RNI at address 000038' The upper 9 bits of address 000028 are not altered by this operationo If the system is operating Executive when this interrupt is recognized, the hardware interrupt sequence will: 1. Disable the Condition register. 2. Transfer to Monitor state. 30 Store the (P) in the lower 15 bits of add res s 00002S' 4. RNI at address 00003S' ABNORMAL INTERRUPT SEQUENCE Timing begins with the Storage Reply during RNI or RADR. V061: VOOO: V001 V002 V003 V004: V005 V006: V007: V008: V009: V120: N120: N205: Resynced Storage Reply Clear KOOO/OOI (Request Bus) Set K12S/129 if P. E. or illegal storage reference If Power Failure Set K128/129 (.Abnormal Interrupt) Clear K010/011 (Main Control Priority), K012/013 (Storage Request Lockout), and Kl16/117 (Storage Request) EXX2 to F, if (Power Failure)' (illegal Storage Reference). (ParItY Error), set K142/143 (Powerfail Lockout). Input H120 Set K086/087 (STO), K106/107 (Jump), and K124/125 (Special STO Cycle). Clear K080/0S1 (RNI) and K082/083 (RADR). Input H201; transfer Condition Register to Subcondition Register. Set Disable IFF K094/095. Clear IF lower 18; Input H122 351 ABNORMAL INTERRUPT SEQUENCE (Cont) N122: Clear K05S/059 Program State II V122: Set KOOO/001 (Request Bus) if illegal Storage Reference; set K45S/459 (illegal Write Clear Enable); force Flower 15 to the appropriate interrupt address (00002 + 00014 + 00020). N051: Set K010/011, transmit address .... Flower 15 .... EXXS ..... T6XX ..... S bus; transmit Write signal and designators of 100112. Note that Storage Protect comparison is disabled. N050: Input Hl17. Vl17: Set Kl16/117 (Storage Request), set K212/213. N050: Input Hl15. Vl15: Set K012/013 (Storage Request Lockout); transmit 15 on the Data bus. Vl16: Test Breakpoint stop if BPO is selected. V061: Resynced Storage Reply. VOOO: Clear KOOO/001 (Request bus). V001-V005: Access time. V006: Set K126/127 (Second STO). V007: Set FOOO/001; clear K49S/499 (Interrupt Enabled)--this clears the line, Channel and Interrupt cOlUlters (if EXEC and Parity Error); Clear K496/497 (Interrupt Detected) if K498/499 cleared; input H086. V086, V1S6: Clear K086/087 (STO), K124/125 For Storage PE interrupt, a second Store Cycle is re(Special STO Cycle), K126/127 (Second quired to store the identifying interrupt code. For the STO Cycle), K128/129 (Abnormal Interrequired timing refer to the Normal interrupt timing rupt) , K464/465 (STO Parity Error); if (time V007) on page 26~ The code stored at address illegal Storage Reference Interrupt, clear 00021 varies with the type of sequence in progression K456/457 (illegal Write); input H087. and what control section had priority at time of interrupt. V087: Input H014. V014, NO 14 : RNI at the interrupt address since Jump is seto NORMAL INTERRUPT SEQUENCE The normal interrupts are treated as a group due to the fact that the hardware interrupt sequence processes all of these interrupts in the same basic manner. For all of these interrupts, the following takes place during the hardware interrupt sequence: 1. The (P) is stored in the lower 15 bits of address 00004S' 2. An Identification Code (I. D. code) is stored at address 000058' 3. RNI is performed at 00005S. It is the I. D. code which distinguishes between the normal interrupts. Table 21 lists the I. D. codes. Parity Error Interrupts (Abnormal Interrupt) also use the Second STO Cycle to store an ID code. Table 22 lists the Parity Error Interrupt Codes. Table 21. REPRESENTATIVE INT. J.D. CODES Conditions Codes External interrupt I/O channel interrupt Realtime clock interrupt Arithmetic overflow fault Divide Fault Exponent overflow fault BCD fault Search/move interrupt *Manual interrupt *As sociated proce ssor interrupt *Executive interrupt 001Ch 010Ch 0110 0111 0112 0113 0114 0115 0116 0117 0120 *These Interrupts are not masked. *See 3300 Command Timing Table 22. PARITY ERROR INTERRUPT CODES Reason for Interrupt Priority Operation Non-existent Memory Parity Error Non-existent Memory Block Control Block Control Block Control 73-76 73-76 71, 72, or typewriter I/O OOXO 00X2 01XO Parity Error Block Control 71, 72, or typewTiter I/O 01X2 Non-existent Memory Main Control RNI or RADR 00X1 Parity Error Main Control RNI or RADR 00X3 Non-existent Memory Parity Error Main Control Main Control ROP or STO ROP or STO 0005 00X7 Code X=ch X=ch (X=O, (X= 1, (X=3, (X=O, (X=l, (X=3, (X= 0, (X=2, (X= 0, (X=2, Search), Move), TWR) Search), Move), TWR) RNI) , RADR) RNI), RADR) (X= 0 or 1*) * If X = 1, the Parity Error occurred on the 00. 7 S TO Cycle. EXECUTIVE INTERRUPT The Executive interrupt occurs only if the system is operating Executive and Program State and one of the following instructions is executed. 00.0 53. (4 ~ 7)(1-.. 3)(XXOO -.. XX37) 71.X 72.X 73.X 74.X 75.X 76.X 77.Xbut not 77.71 or 77.72 The interrupt is removed when the hardware interrupt sequence transfers to Monitor State. Executive interrupt is the highest priority of the normal interrupts and the interrupt system need not be enabled to recognize this interrupt. Also it is not masked and does not reference the interrupt counters. When this interrupt is recognized, the following events occur: 1. Disable the Condition register. 2. Transfer to Monitor State. 3. Store (P) in the lower 15 bits of address 000004 8 . 4. Store the ID code in the lower 12 bits of address 0000058. 5. RNI at address 000005 8 . OPTIONAL ARITHMETIC INTERRUPTS An interrupt may be produced by a floating-point fault or a BCD fault. The fault is detected by the optional arithmetic hardware (when present) or, in the absence of the hardware, by the Simulator routine. FLOATING-POINT FAULT The Floating-point Fault FF, K420/421, is set to indicate that a floating-point fault has occurred. It may be set: 1. By the AND gate of V874 and S883 being made when floating-point hardware detects the fault, or 2. When instruction 77.71, Set Floating-Point Fault, is executed. The Simulator routine, used in lieu of hardware, recognizes any condition that would cause a fault and executes this instruction to set the FF. Thus, an interrupt may occur in the same manner as it would if floating point hardware were present in the computer. BCD FAULT The BCD Fault FF, K418/419, is set to indicate that a BCD fault has occurred. It may be set: 1. When a BCD fault has been detected by the BCD hardware, or 2. When instruction 77. 72, Set BCD Fault, is executed. This instruction is also used by the Simulator routine. INTERRUPT ADJACENT PROCESSOR Instruction 77.57, Interrupt Adjacent Processor, allows two processors to interrupt each other. When the function code of the instruction has been decoded, T148 outputs an Interrupt Adjacent Processor signal. This signal is received by the adjacent processor and sets K408/409 in the other processor. This FF remains set until the interrupt is recognized~ INTERNAL INTERRUPTS Eight internal conditions may be set to cause an interrupt. These conditions are: Executive Interrupt, Arithmetic Overflow fault, Divide fault, Exponent Overflow fault, BCD fault, I/O channel interrupts, Search/Move interrupt, and Real Time Clock interrupt. 353 EXTERNAL INTERRUPTS Three external conditions may cause interrupts. These are: External I/O interrupts (generated by a piece of I/O equipment), Manual interrupt (set by a switch on the console or a switch on the console typewriter), and the Associated Processor interrupt. The mask is selectively set with instruction 7752XXXX, and selectively cleared by instruction 7753XXXX (XXXX represents the mask bits). Master Clear does not affect the mask register. Table 23 gives the mask bit as signments. Table 23. INT. MASK REGISTER BIT ASSIGNMENTS INTERRUPT MASK REGISTER The programmer can choose to honor or ignore most normal interrupts by means of the Interrupt Mask register. The Mask register is a 12-bit, singlerank FF register with inputs from the lower 12 bits of the F register. The mask bit representing an interrupt condition must be set to a 1 for that interrupt condition to be recognized by the sensing network. BIT POSITIONS DE FINITIONS 00-07 I/O channel 0-7 interrupts (internal and external) Clock interrupt Exponent overflow or BCD fault Arithmetic overflow or divide fault Search/move completion interrupt 08 09 10 11 The manual interrupt and the associated processor interrupt are not masked and thus will always be recognized provided the interrupt system has been enabled. The interrupt system must be enabled for any normal interrupt except Executive to be recognized. Figure 343. INTERRUPT SELECTION The programmer has master control over the normal interrupt system. Instruction 7774---- must be executed to enable the system The translation of th·IS Interrupt Cycle Flow Chart External interrupt Interrupt from a peripheral cont roll e r detected ~ on 0 n e of e i g h t I/O channels The line counter scans the lines until it detects the line which carries the interrupt signal. Internal interrupt I/O channel interrupt (end of record or end of an input or output block). r-- Advance "the channel counter u n til it detects the numher of the interrupting channel. Arithmetic overflow, divide fault, exponent overflow Internal fault, BCD fault, interrupts real time clock interrupt, search / ~ move completion; I m,;:uJual mterrupt I External or interrupt from interrupts other computer " Interrupt counter advances to determine which interrupt is present. r---- Interrupt FF is set to i n d i cat e to main control that an interrupt f--Ihas been detected . . land ldentlfled . At the end of RNI main control recognize s the interrupt. --- Store sequence begins. PER FORMED BY instruction by M4l3 sets K454/455 at the end of the RNI sequence. The output of this FF, in turn, sets K498/499, the Enable Interrupt FF. Inthe clear state, this FF disables interrupt recognition by holding the inputs to the interrupt counters down. Instruction 7773---- clears Enable Interrupt. This FF is also cleared by J125 which comes up when Abnormal Interrupt, PE, and Disable (J855) = 1. (The interrupt section has identified an interrupt before main control enters an interrupt cycle.) Thus, while the main control section is processing an interrupt, all other normal interrupts are disabled. When leaving the interrupt subroutine, the program must execute another 7774---- instruction to again enable the interrupt system. The timing on setting Enable Interrupt is such that the interrupt system is not enabled immediately following the 7774---- instruction. Thus, after executing a 7774---- instruction, one more instruction is executed before another interrupt can occur. This insure s that the computer will return to the original program before the next interrupt. If this were not the case, and interrupts were to follow each other immediately, the original return address might be lost. K455 does not clear until (End RNI)(Indirect) of the next instruction after the 77.74 instruction. This blocks NOlO (page 2-7) and permits one more instruction before Interrupt control is fully enabled. INTERRUPT RECOGNITION Before an interrupt can be processed, the interrupt section must recognize the interrupt and determine its origin. An order of priority exists between the v;lrious interrupt conditions. When an active interrupt is received, the priority scanner, composed of three counters (Line, Channel and Interrupt counter), begins checking the priority list. The sensing networks compare the priority count with the active interrupt. \Vhen the Interrupt counter starts a resync network is pulsed and the output of the resync sets K496/497, Interrupt detected. This signals main control that an interrupt condition has been detected and identified. Figure 344 is a flow chart of the steps in interrupt recognition. ,- - - - - - - - - - - - - - - - - SOFTWARE CONSIDERATION Jump back to 00004 to obtain the address for return tot he main program. ~ I I 1 1 I t I I Process the interrupt using a routine previously stored. IL ________________ A J Contents 0 f P Address por ( dd f a ress 0 next tion of the ind . ----- struction in F ~ unexecut.e )1~ ~ ~ s t rue t Ion IS is set to 00004. store d at 00004 . Sec 0 nd Address por. . store se_ twn of the Inque nee - - - struction in F . . beglllS . IS set to 00005. ~ Interrupt t ran s lation (unique representation for each interrupt condition, obtained from RN I from translation of interrupt ---. add res s counter) is placed on 00005. data bus, then stored in the lower 12 bits of address 00005. HARDWARE-----------------------------------------------------------------------355 ~.:'JO ~~~ Internal If RNI + RADR Start interrupt Sequence NORMAL INTERRUPT SEQUENCE Timing begins with NOlO which could be VOIO time of RNI or VOOS time of RADR. NOlO: If Interrupt has been detected, set K496/497; set K120/l2l (Interrupt Sync). Note that this blocks End RNI and End RADR pulses. N053: Input H120. V120: Set KOS6/0S7 (STO), Kl06/l07 (Jump), K124/l25 (Special STO), and K094/095 (Disable I); clear KOSO/OSI (RNI) and KOS2/0S3 (RADR); Input H201. N053, N205: Clear F; Ll1put H122. V122: Clear K05S/059 (Program State II); Set KOOO/OOI (Request Bus), and F020/021. N05l: Set KOIO/Oll (Main Control Priority); transmit address 000004, F to EXXS to T6XX to S bus; transmit Write signal and Write designators of 100112 • N050: Input to Hl17. Vl17: Set Kl16/ll7; transmit a Storage Request. N050: Input to Hl15. NOTE: storage protect comparison is disabled. VI15: Set K012/0l3, Transmit P on Data Bus (P to T5XX). Vl16: Test Breakpoint stop if BPO selected. V06l: Resynced Storage Reply. VOOO: Clear KOOO/OOL VOOl-V005: Access Time. V006: Set K126/l27 (Second STO). Timing from this point on also applies to Parity Error Interrupt Sequence. V007: Clear KOIO/Oll, K012/0l3, Kl16/ll7; input to H086, input to H122, set FOOO/OOL V122: Block output from VOS6 and VlS6 (J063); set KOOO/OOL N05l: Set KOIO/Oll if K2l0 = 1; transmit address 00005, F to EXXS to T6XX to S bus; transmit Write signal and Write designators of 000112 • N050: Input to Hl17. Vl17: Set K2l2/2l3, Kl16/ll7; transmit a Storage Request. N050: Input to Hl15. Vl15: Set K012/0I3 (Enable DBR to T5XX); input Hl16, H400. Vl16, N400: Test Breakpoint Stop if BPO selected; input to H401. NOTE: storage Protect Comparison is Disabled. N40l: Clear DBR; input to H4l0. N4l0: EXX2 to DBR, (ID. to EXX2 to DBR to T5XX to Data bus). V06l: Resynced Storage Reply. VOOO: Clear KOOO/OOI. VOOl- V004: Access Time. V005: Clear K124/125 (Special STO), J063 = 0; clear K464/465 Storage Parity Error (if PE sequence). V006: Clear K49S/499 (Enable Interrupt) via J125. V007: Clear KOIO/Oll, K012/0l3, Kl16/ll7; input to HOS6. VOS6, VlS6: Clear K126/l27 (Second STO), K120/121 (Interrupt Sync), KOS6/0S7 (STO); set KOSO/OSI (RNI); input to H08 7• VOS7: Input to H014. V014: Jump and RNI at address 00005. 357 TRAPPED INSTRUCTION INTERRUPT All commands in the instruction repertoire of the 3300 Computer System may be used regardless of the size of the computer. However, a basic computer lacking the. optional floating-point 48-bit precision and/or the BCD package is not capable of directly proce ssing instructions that require this hardware. These instruction, implemented by software, are called trapped instructions. Trapped instructions fall into two groups, those that are trapped when the floating-point 48-bit precision option is missing and those that are trapped when the BCD option is absent. Table 24 lists the instructions which may be trapped. Table 24. LIST OF TRAPPED INSTRUCTIONS CODE MNEMONIC DESCRIPTION Floating-point 48-Bit Precision Package Missing 1---- 55 56 57 60 61 62 63 r - - - - - r - - - - - - - - - - --IRT, 48-bit precision Multiply AQ, 48-bit precision Divide AQ, 48-bit precision Floating-point add Floating-point subtract Floating-point mUltiply Floating-point divide MUAQ DVAQ FAD FSB FMU FDV BDP Package Missing i- - 64 65 66 67 70 - - - - LDE STE ADE SBE SFE EZJ, EQ EZJ, LT EOJ SET -- - ----- Load E Store E Add to E Subtract from E Shift E E zero jump (E = 0) E zero jump (E = 0) E overflow jump Set D register - -- Translator Jl18 (figure 345) determines when an instruction is to be trapped. When the function code of any optional instruction has been decoded the left AND gate to Jl18 is broken. The other two AND gates then test whether the necessary optional arithmetic package is present. If it is present there will be no interrupt and the instruction is handled by the hardware. If the necessary hardware is not present, Jl18 outputs a 1 which sets trap sync FF at the end of RNI. A trapped instruction interrupt then proceeds in much t.hp. R~mp. m~nnp.r ~ in R ::l norm~l intArrupt. ·The steps the trapped lnstrl.lC:tiofl interrupt cycle are: 1. At VOIO time of RNI a test is made for interrupt. 358 2. RNI ends; trap sycn FF is set if Jl18 indicates a trap cycle necessary. 3. Advance P2 to set the address of the next instruction in P2. 4. Start arith 1, start arith 2, no index, RNI, RADR, and Rap FFs are cleared. STO, special store cycle, and jump FFs are set. This sets up initial conditions for the trap cycle. 5. The lower bits of the F register are cleared. 6. (P2) is transferred to PI. 7. Set request bus FF. 8. F030/031 of Fregister is set. This places address 00010 in F. 9. Main control obtai~s bus priority. A write signal, write designators of 10011 2 (word address), and the storage address (00010) are transmitted to storage. 10. A storage request is sent to the selected module. 11. The complement of the contents of P (address of the current unexecuted instruction) is placed on the data bus. This address is then stored in location 00010. 12. A storage reply is received and resynchronized when the storage module has accepted the word. The resynchronized reply starts the storage timing chain. 13. Second store cycle FF is set. 14. The bus is released. 15. FOOO/OOI is set. This advances the address in F to 00011. 16. Request bus is set. 17. Bus priority is once again obtained. A write signal, write designators of 00001 2 (lower 6 bits), and the storage address (00011) are transmitted to storage. 18. A storage request is transmitted. 19. Data bus register is cleared. 20. Gate EXX2 to DB register, shifted right three character positions. (F to 17 to EXX2 to DB register. DB register to the T5XX transmitters of the data bus.) The storage module accepts the data and stores the upper 6 bits of F in the lower 6 bits of address 00011. The upper 18 bits of the word in 00011 are unchanged. 21. A storage reply is received and resynchronized. The resynchronized reply starts the timing chain. 22. Clear special store cycle FF. 23. The bus is released. 24. Second store cycle, trap sync, and SRO are cleared while R~I is set. 25. An RNI is now performed with a jump to address 00011. When the trapped instruction interrupt has hAp.n pror.p.RRp.d, 3 jump is wade back to address 00010 where the address for return to the main program is found. F361 56- 63 F366 (=55:-:-)(:-::-1~-3~+~5:---;;-7') . M169---o 56 - 63 6X.X ('=55=-0-)(-:-:'1--3:::-+-=5:---=C 7) 70 FPPresent F361 F365 F366 F368 Trap J687 STO PE I ~IlM1681 K120 Int Sync K142 --PW=-"'Re-:l:-:L"-oc"""'"k-ou-:-t 64-B7 F364 70 F368 J003 MC Priority K127 2nd STO Cycle V010 -+--O-~ 1iifSYiiC K122 K124 Second Store Cycle K126 Special Store Cycle N053 Odd Time Abnormal Int K138 K136 Breakpoint Lockout V016 Second store C cle STO PE J687 V186 (End of RNI) V380 K440l--_-o-_~ K441 I---o-~ K126 K125 K127 Vl86 Figure 345. Trapped Inst~ction V005 K136 Detection TRAP SEQUENCE Timing begins at V008 of RNI. V008: V009: YOlO: VOll: V080: N05l: V120: EXX2 to Flo Clear K002/003. Test Interrupt. Set K140/l4l (Trap Sync). Input to H080. Advance Storage Sequence Controls to the appropriate cycle. Set K440/441. Input to H120, Block Start Arith Pulses (J142). Apply clear pulses to: K080/08l (RNI) , K082/083 (RAD) , K084/085 (ROP), KlOO/lOl (Start Arith), Kl12/ll3 (Not RNI· Not INDEX). Block # setting of KIlO/Ill (IO to FEn.), KOOO/OOI (Request bus); set K086/087 (STO), K124/l25 (Special STO), Kl06/l07 (Jump), K094/095; Disable I (if Exec); input to H20l, H23l. N05l, N205: Clear F L , input to H122. P2 is advanced, input H220. V122: Set KOOO/OOI if K2l0 = 1. P2 to PI, clear K058/059 Program State II; set F030/03l F register bit 03 (Address 00010) N05l: Set KOlO/Oll if K2l0 = 1. Transmit address 00010, F to EXX8 to T6XX to S bus. Transmit Write signal and Write Designators of 100112 , N050: Input to Hl17. NOTE: Storage Protect Comparison is Disabled. Vl17: SetKll6/ll7, K212/213; transmit a Storage Request. N050: Input to Hl15. Vl15: Set K012/0l3, transmit P on Data Bus (1) to T5XX) Vl16: Test Breakpoint Stop if BPO selected. V06l: Resynced Storage Reply, (Block setting of K060/06l if DP instruction). VOOO: Clear KOOO/OOL VOOl-V005: Access Time. 359 TRAP SEQUENCE (Com) V006: V007: V122: N05l: Set K126/l27 (Second STO). Clear KOIO/Oll, K012/0l3, Kl16/ll7, K2l2/2l3; input to H086, input to H122, set FOOO/OOL Block output of V086 and V186 (J063); set KOOO/OOl, request bus. Set KOIO/Oll if K2l0 = 1. Transmit address 00011, F to EXX8 to T6XX to S bus. Transmit Write signal and Write Designators of 00001 2 • N050: Input to Hl17. NOTE: Storage Protect Comparison is Disabled. Vl17: Set Kl16/ll7, K2l2/2l3; transmit a storage request. N050: Input Hl15. Vl15: Set K012/013 (Enable DBR to T5XX); input to H400; set K042/043, first transfer to bus. N400: Input to H40l. N40l: Clear DBR, input to H440. N440: EXX2 to DBR (RS3), F to 17 to EXX2 to DBR to T5XX to Data bus; clear K042/043. V06l: Resynced storage Reply. VOOO: Clear KOOO/OOL VOOl-V004: Access Time. V005: Clear K124/l25 (Special STOle NOTE: J063 = O. V006: V007: Clear KOIO/Oll, K012/0l3, Kl16/ll7, K2l2/2l3; input to H086. V086, V186: Clear K126/l27 (Second STO),. Clear K140/l4l (Trap Sync), K440/44l; input to H087, clear K086/087 (STO), set K080/08l (RNI). V087: Input to H014. V014: Jump and RNI at Address 000111. INTERRUPT SENSING Normal interrupts may be selectively sensed, independently of the interrupt mask register. The interrupt status and fault sensing networks (Logic Diagrams, pages 2-207, 2-209 and 2-211) identify the various conditions. The instructions used for sensing are: (c 1. 2. 3. = I/o channel designator, XXXX = sense mask) 77. 2cXXXX - Sense status of I/o equipment. 77. 3cXXXX - Sense internal status. 77. 4cXXXX - Sense interrupt. The various interrupt conditions are identified in the sensing network (figure 346 shows a portion of this network), then the condition identified is compared to its corresponding mask bit. If the mask bit is a 1 for the active line, one of the J45X* inverters outputs a O. J455 of the comparison network also outputs a 0 to indicate comparison found. In this case, no further action is taken and program execution continues with an RNI from location P + 1. Upon execution of sense instruction, if the mask bit for the active line is not set or if no lines are active, J455 outputs a 1 to indicate no comparison. This output is *X =2 llSP(/ to spt skip 1<'1<', +4 +6 Proe-r:nn pxpcmtion thpn PA USE INSTRUCTION The sensing network is also used for the pause instruction, 77. 60XXXX (XXXX is the mask). The busy lines defined in table 25 are sensed and compared to the mask. Table 25. BUSY COMPARISON MASK COMPARISON MASK BIT POSITIONS 00-07 08 09 10 11 DEFINITION Channel 0-7 busy Typewriter busy Type finish Type repeat Search/move contr the controller which will SO(!)ll reply by placing a word or character in 0 register of the communications channel. Receipt of this word or *Contents of address specified by P 369 Register file busy Scanners must recognize and identify the re uest Read register file location 22 and increment 1--_ _ _ _-I~Write Zl back t-------I~ Read register into location 22 file location 32 b 1 Disable reset and release the scanners Clear clock request Figure 350. character will cause the communications channel to generate the block control request signal. A write signal causes the communications channel to generate the block control reque.st signal immediately. After block control has granted priority to the request, the delay line is started via the G659 (Logic Diagrams, page 2-177) input to Z332/333. Register OX, * which contains Ml, is read into Zl. The contents of ZI are then sent to the current address register (82) and to zo through the increment/decrement network. The network will increment or decrement Ml by 1, 2, or 4, depending on the type of instruction. At the same time, Z352/353 (Logic Diagrams, page 2-167) has been set in order to generate the storage reque st in main control. Register lX* (M2) is read out and placed in Zl. The comparison network (Logic Diagrams, page 1-103) "'Contents of address specified by P 370 Flow Chart for Updating Real Time Clock will test for Ml = M2. If equality does exist the comparison FF Z350/351 (Logic Diagrams, page 2-167) will be set. Setting the comparison FF does not terminate the operation until after the word or character currently being processed is delivered to or from storage. Transmission of the storage request will suspend the program while main control waits for bus system priority. The reply from memory originated by the request from block control will start the timing chain at H150 (Logic Diagrams, page 2-161). As each control delay is pulsed by the preceding one, certain enabling signals are transmitted. The data bus is connected to 0 register and the communications channel transmits or receives one word or character. After transmission of the word or character, the bus is released and the -----tt-l~ Write register I--_ _--I~ file location 32 No Yes ~--.t Record compare; set clock interrupt program resumes. The request procedure is repeated by the communications channel until the block of addresses is exhausted. I/o OPERATIONS WITH A An I/O operation with A begins in the same manner as those operations with storage. The request from the communications channel causes registers OX and IX to be read. A storage request is transmitted in order to gain access to the bus. A memory cycle is initiated but, as the lower 17 bits of the first instruction word are meaningless, the memory performs only a read. Arithmetic is started and the bus is enabled to 14. After propagating through the adder, the word or character is placed in the lower bits of A. The upper bits remain clear. If the operation is an OTA, the data path is A to I2 to Xl to 17 to EXX2 to DBR to Data bus. TYPEWRITER A type operation begins when the computer senses a 77.75 (type -in), a 77.76 (type -out) instruction, or when the operator presses TYPE LOAD or TYPE DUMP on the console or typewriter. Before this, the current and terminating address of the block must have been stored in register 23 and 33 of the register file. This storage is accomplished through the IRT instruction. Receipt by block control of a type-in or type-out signal (Logic Diagrams, page 2-169) 'will set a corresponding flip-flop (Z360/361 for type-in, Z362/363 for type-out). A block control request signal is then placed in the scanner network (for type -in, a character must be typed to initiate the request). After granting priority the delay line is started and register 23 (M1) is read out. A storage request is generated and, after mem0ry replies, the bus is connected to 0 register in the typewriter via transmitters and receivers in block control. A character is then sent to or from storage via the bus. During type -in a strobe signal indicates to block control that a character has been typed and is in 0 register of the typewriter. During type -out a busy signal will be sent by the typewriter indicating that it is ready to accept a new character. When the type load indicators on the typewriter and on the console go off it indicates type load operation (NIl = M2) is finished. The operator could continue to type but the data would be lost. TIMING See figure 350., }793 = 1 for 200 nsec (when C051 starts its positive swing and Z380/381 (clock request FF) sets. }793 is a pulse shaper (C089 card). G620 = 0; group 3 scanner goes set-set; G638 = 0; G641 = 1; group scanner goes set/clear; group/program scanner goes clear-clear. If Z390/391 has been clear 100 nsec, G657 and G659 will have 100 nsec pulses since G651 = 1 and G656 = O. SO is forced to a22; Z332/333 (start delay line FF) and Z348/349 (clock control FF) set. 371 Record buffer cycle with G642 = 1. (A3) E353: Read current on, clear S2. (A4) E388: Clear Z332/333 (start delay line FF). E351: Sense amps -.. ZI, set Z398/399 to disable scanners. (A7) E356: SO -.. 81, ZI ~ ZO, Zl -.. S2; clear ZOo (AI0) E359: ZI -.. ZO; clear Z380/381. (B3) E355: Clear ZI; set Z328(329 set Z390/391; increment all 24 bits by 1. (rescan 3 FF). (B4) E367: Advance SO to 32. (B6) E365: ZO -.. ZI; clear rescan 1 and 2 FFs. (B8) E360: Write and digit current on; clear rescan 3 FF. (C2) E367: Clear Z1. (C5) E370: Read current on. (C6) E371: Sense amps ...... Z1. (C9) E376: SO ....... SI. (D5) E375: If Z1 = ZO «22) = (32», set Z350/351 which sets Z378/379 (clock interrupt FF). (El) E380: Write and digit currents on. (E6) E387: Clear Z390/391 and Z350/351. (E7) E389: Clear Z348/349 (clock control FF). 372 Program priority \--_ _..... Request program priority Transmit channel enable to C, drop clear enable Yes IRelease block __- - - - - I.. control RNI at P + 1 Release block control Gate connect or function code from F register to Ore ister Transmit connect or function Wait for external equipment or channel response 100 nsec maximu .-----.t RNI at P + 2 Figure 351. Flow Chart for Connect (77.DC) and Function (77 .1C) Instructions The flow charts on the following pages show the progression for instructions 71 to 77.1 and the singleprecision interregister transfer instructions (figures 352-357). Complete timing for the instructions is given in the command timing charts. The 71 to 76 instructions are covered in two parts, activate and buffer cycle. During activate the instruction is in F register. Duringbuffer cycle main control may be executing the instructions of a program or may be stopped. Use the flow charts as you follow the respective instruction through the Command Timing Charts and Logic Diagrams. 373 Program priority I-----t. . 2nd instructiont-_ _---, ord to DBR Request program priority RNI at P + 2 No Release block control RNI at P+3 Activate search/move continuously r---e-t~ Store (DBR) at register 2X Destructive read phase at register 2X I----'---....-t ~--4!--""'" Store (DBR) at I------t~ Release register 3X Destructive read phase at register 3X Figure 352. Flow Chart for Activate Search (71) or Move (72) Instructions 374 block control Register file EiiSY I Scanners must recognize and identify the request Disable, reset, and l - - - - - - - - - - - - - - - - - - - - - - - - - - - - , release scanners Read (register OX), store in S2, increment/ decrement ZlZ0 - I Write (Zl) in register OX Read register IX to Zl No 1 J----~ Bus priority granted Transmit channel enable, and drop I------I~ clear enable Transmit S2 on S bus; transmit storage request; transmit read si nal Clear 0 register Yes DBR to bus, bus to 0 No A register to DBR via X L--_ _ _ _ _ _ _ _- I... Transmit operation complete RNI at P + 3 Figure 353. Flow Chart for Output Buffer Cycle 375 Disahle, res~, and~~~~~~~~~~~~~~~~~~~~~~~~~~ release scanners Register file busy Scanners must recognize and f--~--( identify the request Read (register OX) ~ store in S2, ) - . _...... increment/ decrement ZIZO Write (ZI) in register OX Read register IX to ZI Yes No Record compare Bus priority granted Transmit channel enable, and drop clear enable ransmit write signals Yes tart arithmetic ~--------~~BR~X~A Clear 0 register t--~~-----t Channel checks 1--_..., complete S2 to S bus) o register to DBR, DBR to data bus) data bus to memory register Z Time out access Yes No ~------------~--~~-~~~ Figure 354. Release block control Transmit operation complete Flow Chart for Input Buffer Cycle Disable, reset, and 1----------------------------release scanners Register file busy r-S-=c-a-nn-e-r.....s'--m-u-s-t""" recognize and identify the request Write (Zl) in register 20 Read register 30 to ZI Read register 20 )--.L.....t~increment/decrement ZIZ0~--oCD Yes (except 1st pass) (0----' 1-.-_", Clear search/move busy transmit read si nal No 1--_ _ _ _ _ _-...-tRelease block control Set Time out access Gate character to DBRL6 Clear search/move busy ~-------~~ search/move request Figure 355. Flow Chart for Character Search Buffer Cycle 377 Register file busy Disahle, reset, and release the scanners Scanners must recognize and identify the request r-.......~Read (21) I-----t~ I---_ _ _ _ _ Clear search/move request 1 rncrement ZlZ0 xcept 1st pass I-----I~ Zl to S2 word address ecrement character count Yes No Clear search/move busy Increment ZlZ0 except 1st pass Write (Zl) in 31 Memory to DBR via data bus Bus priority granted Gate character position into S2 register (S2) to S bus Simulate bus release Bus priority granted (S2) to S bus, (DBR) to data bus )O---I~ transmit write signal and designator(s) Set 1...--------_..... search/move request Figure 356. Flow Chart for Move Buffer Cycle 378 Release bus, release block control Arith busy Start arithmetic A or Q to Xl Xl or 16 to 17 No Yes I---+-~DBR 1- Kequest block control i Initiate RNI at P + I to Zl Clear DBR Block control priority granted '---_ _ _ _ _ _ _ _ _.......-I~Read register file to Zl and SO _I (Zl) in C0+ Write register file XX "'-IDBR to Zl I QJ-+ EXX2 to DBR ..- I J • IYeS(Read register file? Write (Zl) in register file XX .... No •• Release block control H. Start arithmetic ~ DBR to A, Q, Bb Write (Zl) in ~ register file XX ~ Read register file to Zl and ZO -.. Write (Zl) in register file XX Figure 357. Flow Chart for 1RT With Register File 379 I/O WORD MODIFICATION Activate I/O and S/M are two-word instructions which are read from storage and placed into the register file so that Block Control can accomplish the actual block operation. So that these instructions can access any portion of 262K of core storage, an 18-bit word address or 20-bit character address is necessary. The instruction format for the 71 through 76 instructions only allow for a 15-bit word address or a 17-bit character address. The upper 3 address bits for this instruction group are obtained from the lower 3 bits of the A register. Therefore, the words placed in the register file on activate will consist of 27 bits and, in appearance, will differ appreciably from the Activate instruction. For 73 through 76 instructions, on activate, (P) are stored in register IX and (P + 1) are stored in OX. Figure 358A and 358B illustrate the contents of OX and IX and the function which the bit positions represent. Note that bits 24 through 26 of OX and bits 21 through 23 of IX hold a quantity referenced as modified operation code. This quantity is derived from the original 6-bit operation code of the Activate instruction. The upper bit of the modified operation code is 0 for operations with storage and 1 for operations with A. The lower two bits of the modified operation code are the lower two bits of the original 6-bit operation code. 00 Current character address L.---------l. 1 for interrupt on completion L . . - - - - - - - -.... O for Assembly L.----------~1 for backward storage L . - - - - - - - - - - - - - 4 . 1 for word count control L-.--------------~Upper 3 bits of address L.---------------------I.Modified operation code Figure 358A. Contents of OX Register 001 --~--- ~--~---J'~--------~T~-------------J t. Last character address +1 for forward storage. Last character address -1 for backward storage Copy of bits 17 through 20 of (F) L.--------P L.-_ _ _ _ _ _ _ _ _ _----,. ~ . Modified operation code Meaningless - not used by buffer cycie not accessible to programmer Figure 358B. Contents of IX Register 380 BLOCK CONTROL Worksheet 1. Several sets of I/O instructions are shown below. Write them as they would appear in the register file. (A) = 00000001 73 000105 20 400100 (A) = 00000005 7-3 000105 21 000100 = 77777774 75 400105 21 000100 (A) (A) = 00000000 75 000105 27 000105 (A) = 00000006 74 000104 36 000100 (A) = 00000003 76 000104 37 000100 2. A move buffer cycle is in progress. Tne address portion of the word in the register file is: RF 21 = 32400013 RF 31 = 72000100 What would be the pseudo-character address used during the read portion of the move buffer cycle in order to have the character that is read from mem ory positioned in the proper place in DB register before the store cycle? 30 On a search instruction, a character is read from storage and compared to a character which is part of the instruction word in register file location 30. When this comparison takes place the character from storage is located at character position of register and the character from the instruction word is in the upper six bits of _ _ __ register. 4. If requests came into block control from program control, search/move, channel 0, channel 2, channel 7, and type, and block control is servicing the request from channel 0 first, in what order would the remaining requests be serviced? 1. 2. 3. 4. 5. (A) = 000000000 74 400104 37 000100 (A) = 00000002 76 000104 30 4{}0100 381 TIMING CHARTS Timing for Activate I/O, 73 through 76 instructions. V008: V009: V010: V011: V080: Timing begins at V008 of first RNI. EXX2 to Fl. Test interrupt. Input H080. Set K152/153 (Program Request); when J179 = 0 the Group/Program scanner will hang up set/set, indicating program priority. Asyncronous: Input H170 when Program Priority and R. F. Busy. V171: Set K168/169 (Program Register File Priority); input H016; initiate RNI to read second word of the instruction. N014: Set KOOO/OOI (Request Bus); input to H23l. N231/N051: Set K010/011 (Main Control Priority); advance P2; input H220. N220/N050: P2 to PI; input Hl17. Vl17: Set Kl16/117 (Storage Request). N050: Input Hl15. Vl15: Set K012/013 (Enable Data Bus). Vl16: Test BPI. Main Control now waits for Reply from storage. V061: Resynced Storage Reply; set K060/061 (1st Cycle) which blocks sensing interrupt for this RNI. VOOO: Clear KOOO/OOI (Request Bus). V001- V004: Access time. V005: Set K062/063 (2nd Cycle). V006: InpUt to H401; Block input to H20l. V007: Clear K010/011, K012/013, Kl16/117, DBR; input to H410; block input to H200. V008: EXX2 to DBR, EXX2 to F1 does not occur; set Kl64/165 (Read and Write). Note that at this point in the timing, F holds (P) and DBR holds (P + 1). Set K176/177 (Gate Channel 0); remove clear inputs from K15X Channel designator FFs; gate channel designation to K15X channel designator FFs. Note that the actual channel designated is the inclusive OR of CIR and bits 21, 22, and 23 of DBR. When the contents of the Channel Designator FFs have been translated (Logic Diagrams, page 2-165) a Channel Enable signal will be transmitted to the appropriate channel. V009: V010: V011: V080: Input H151; if selected channel Busy, set KI08/109 (Skip); if selected channel Busy, set K044/045 (Reject Read and Write). If Channel Busy Block Control Timing V151: Input H014; input H156. V156: Clear K 15 2 / 15 3 (Program Request); Clear K 16 4/165 (Activate Read and Write); clear K176/177 (Enable channel 0); drop the Channel Enable. V157: V158: Clear K168/169 (Program Register File Priority). Main Control Timing N014: Set KOOO/011 (Request Bus); input H231. N051/N231: Advance P2; set K010/011 (Main Control Priority); input H220. N050: P2 to PI; input H117; RNI at P + 2 is in progress. If Channel Busy. For this case, if i/o with A, three timing elements will be running simultaneously. This timing chart will not show the transfers associated with the Main Control timing but Main Control times will be listed to the left of the Block Control times. TIMING CHARTS (Cont) N161/V151: Input H152, H014; if Word Addressed instruction (Backward + 3307 selected) Word Addressed instruction (Straight Transfer + Character Addressed Instruction (12 to 24), set K368/369 (Force Character Address); set K180/181 (Program Load S). N014-V152: N239-V153: Vl54: Set K170/171 (End of 1st pass) The relationship of the timing shown below to Block Control timh"'1g is an approximation. G680, G682, G683, G686 pulse for 100 nsee, gate channel to SO lower 3. This is the OR of DBR upper 3 and CIR. Set Z332/333 (Start Delay Line), Z334/335 (Increment), Z 370/371 (Register File Write), and Z390/391 (Register File Busy). Record Activate at G642/G643/G644 by forcing G643 = 1 (3 state FF) • Clear Z1. (A3) E353: Read Current On, clear S2' (A4) E351: DBR to Zl, AL3 to Zl, clear ZO, Block Sense Amps to Z 1. E388: Clear Z332/333 (Start Delay Line). (A7) E356: Zl to ZO, Zl to S2, So to 81. N217-V155: Input H150. NOI4-V150: N051- V151: Input H400. N050-V152: Set K196/197 (Clear 0); input H401; set K174/175. Vl17-V153: SetK172/173 (2nd pass); clear DBR; input H410; set K048/049 (WCC) if (Read) (Bit 20). N050- V154: Clear KI98/197; EXX2 to DBR (F to r7 to (A10) E357: E359: (B3) E355: (B4) E367: (B6) E365: (B8) E363: If Interrupt on Completion, set K192/193. Block ZI to ZO (Increment/Decrement). Clear Z1. Force SO to IX. ZO to Z1. Write and Digit Currents On. (C2) E368: Clear Z1. EXX2). V115-V155: Set K194/195 (Bus to 0). (C5) E370: Read Current On. (C6). E371: DBR to Z1. Vl16-V156: Clear K180/181 (Program Load S); K170/ 171 (End of 1st Pass), K172/173 (2nd Pass), K152/153 (Program Request). (C9) E376: SO to S1. V061-V157: Clear K194/195 (Bus to 0), K174/175 (Read + Write)~ K048/049 (WCC). VOOo-V158: Clear K168/169 (Program Priority). RNI in progress at P + 3. (D8) (El) (E6) (E7) E385: E380: E387: E389: Clear Z334/335 (Increment). Write and Digit Current On. Clear Z390/391 (Register File Busy). Clear Z368/369 (Modify Address), Kl64/ 165 (Read + Write)~ K176/177 (Gate Channel 0), and K15X Channel Designator FFs and Drop Channel Enable. 383 TIMING FOR ACTIVATE SEARCH OR MOVE BUFFER, 71 OR 72 INSTRUCTIONS Timing begins at VOOS of the first RNI. VOOS: V009: VOlO: VOll: VOSO, EXX2 to Fl' Test interrupt. fuput to HOSO. VlSO, V2S0: Set K152/l53 (Program Request), J179 is driven to a O. Block Control's Priority Scanner will eventually recognize the request by hanging up with Z300/30l and Z302/303 in their set state. J799 = 1, delay Y95l = 1, Resync via H170/l71. fuput to H016; set K16S/169 (Program Priority Granted). Set KOOO/OOI (Bus Request); input to H231. Set KOlO/Oll (Bus Priority); Advance P 2 ; input to H220. fuput to Hl17; P 2 to Pl' Set Kl16/117 (Storage Request). Input to Hll5. Set K012/0l3 (Enable Data Bus); input to Hl16. Test Breakpoint stop if BPI selected. Resynced Storage Reply; set K060/06l (4S-bit 1st cycle). This blocks Sensing for all interrupts. Clear KOOO/OOL V17l: V014: N05l: N050: Vl17: N050: Vl15: Vl16: V06l: VOOO: VOOl: V002: V003: V004: V005: Set K062/063 (4S-bit 2nd cycle). V006: fuput to H40l; Block fuput to H20l. V007: Clear KOlO/Oll, K012/013, Kl16/1l7, DBR; input to H4l0; Block Input to H200. cleared. VOOS: EXX2 to DBR. NOTE: EXX2 to Fl does not occur. V009: VOlO: VOll: fuput to H080. VOSO, VlS0, V2S0: Input to H151; if S/M is not Busy, set KlOS/109 (Skip). Timing for S/M Not Busy is continued on next page. Timing for S/M Busy: V15l, N15l: Input to H014 •.• Input to H156. V014: Set KOOO/OOI (Bus Request); input to H231. N051: Set KOI0/0ll (Bus Priority); advance P 2 ; input to H220. N050: fuput to Hl17; P 2 to PI; RNI atP+2 (effective). Fl is not below. V156: Clear K152/153 (Program Request). (Priority Scanner looks for BFR Request). V157: V15S: Clear K16S/169 (Program Priority Granted). Block Control has been released and is free to honor BFR Requests. See next page for actual activation of a Search or Move Buffer. 384 NOTE: The following sequence occurs at the end of the 2nd RNI Cycle providing Search/Move Control is not Busy. N151: Input to HOI4. V151: Input to H152. N161: Set K180/181 (Program Load S), G682/ G683/G686: 100 nsec pulses. Force 21 or 20 to So (JI71/G67X); set Z334/335 (Increment), Z370/371 (Register File Write), Z 3 9 0/391 (Register File Busy), Z332/333 (Pulse Generator) a...l1d Clear Zl; Record Activate at G642/ G643/G644. (VOJ.4) V152: (H239) V153: (N226) V154: Set K170/171 (End of 1st Pass) (N229) V155: Input to H150. (VOI4) V150: (N051) V151, N153: Input to H400; if Search, clear Z340/341, if Move, set Z340/341, Z342/343 (S/M Request), Z336/337 (S/M 1st Character), and Z338/339 (S/M Busy). If (Move) (ml and m2 designate character 0) (Character count = XXXXX00 2 ), set Z330/331 (Word Move). (N050) V152, N400: Input to H401; setK196/197 (Clear (A3) E353: R~ad Current On; Clear S2. (A4) E388: Clear Z332/333 (Pulse Generator). (A4) E351: DBR to ZI; Clear ZO; Block Sense Amps to ZI. (A 7) E356: ZI to ZO' ZI to S2' So to SI. (AIO) E359: Block ZI to Zo (Increment/Decrement). (B3) E355: Clear ZI. (B4) E367: Advance So to 3X (30 + 31). (B6) E365: Zo to ZI. 0). (VI17)VI53, N401: Set K172/173 (2nd Pass); clear DBR; input to H410. (N050) VI54, N410: Clear K196/197 (Clear 0); EXX2 to DBR (F to I7 to EXX2). (VlI5) V155: Set K194/195 (Bus to 0). (VI16) V156: Clear K180/181 (Program Load S), K170/I71 (End of 1st Pass), K172/173 (2nd Pass), and K152/153 (Program Request). (V061) V157, V167: Clear K194/195 (Bus to 0). (VOOO) V158: Clear K168/169 (Program Priority). (VOOl) Access and Decode time for RNI at P + 3 (effective). (B8) E363: Write and Digit Currents On. (C2) E368: Clear ZI. (C5) E370: Read Current On. (C6) E371: DBR to Zl; set Z354/355 ifbit 17 = I (DBR); Block Sense Amps to Z 1. (C7)E376: SOtoS I . (D8) E385: Clear Z334/335 (Increment). (El) E380: Write and Digit Currents On. (E6) E387: Clear Z390/391 (Register File Busy). (E6) Block Control is free to honor incoming request of highest priority. 385 SELF-EVALUATION QUIZ ON CHAPTER 15 TRUE OR FALSE OR FILL IN THE BLANKS: 1. Block control contains a word -organized storage unit which has a x x matrix . 10. The current address of I/O cycles is always a character address. 2. Each time the register file is accessed, two read/ write cycles take place. 11. For 12 to 24 I/O operations increment/decrement is by 28 , 3. Locations 348 through 778 of the register file are available to the programmer for temporary storage. 12. Block requests and program requests have equal priority in accessing block control. 4. Location 228 of the register file could be used by the programmer. 13. During the second RNI of an activate the transfer of EXX2 to F1 does not occur. 5. Location 178 of the register file could be used for temporary storage in many systems. 14. The upper 3 bits of address for activate instructions is obtained from the lower 3 bits of the A register. 6. Both a search and a move may be in progress simultaneously. 7. The channel specified in coding an activate instruction is an absolute channel. 8. All 27 10 bits of a register file are accessible to the programmer by means of the IRT instructions. 9. During buffer cycle the increment/decrement network is used to update a1l20bits of the current address. 386 15. The upper three bits of location IX of the register file contain a modified code which specifies what type of input/output is in progress. Score Yourself: You could miss one of these and still be considered above average. You could miss two and be considered average. But if you missed more than two, don 't spread it around because you Ire below average! Figure 359. Communications Modules CHAPTER 16 COMMUNICATIONS MODULES GENERAL DESCRIPTION Figure 359 is a front view of two Communications channels. A maximum of eight channels may be attached to any single CPU. There are two types of I/O channels available for the 3300 System. The 3306 is a 12-bit bidirectional channel; a maximum of eight 3306s may be attached to a single CPU. The 3307 is a 24-bit bidirectional channel; a maximum of four 3307s may be- attached to a single CPU. If present in a system, 3307s will always be even-numbered channels. Each Communications module may contain two I/O channels. Figure 360 illustrates the physical position of the channels. 387 ~ 1_' I~ ,,~,,~ ,,,:::~;,, ., " ~ ..~OIlIITNHT CONTROL I'l108. ":IN CONTROL CONTROL II CH CH CH CH 0 I 2-3 4-5 6-7 P 1- POWER /I N I1IOOULE E L -_ _~_ _~L_ _ _ _ _ _~_ _ _ _-L~L~~~~L Figure 360. 3300 Computer Physical Layout Figure 361 is a block diagram of a Communications module. Figure 361. 3300 Communications Module Block Diagram "----y-----I CHANNEL TO EXT EQUIP I ~ CHANNEL 0 TO EXT EQUIP 3306 COMMUNICATIONS CHANNEL FUNCTIONAL DESCRIPTION Communication channels provide a buffer between the computation section and various peripheral equipment controllers. They prevent the computation section from the external equipment. A program must go through several instructions prior to exchanging data with a piece of external equipment. 1. It must connect the equipment to the channel. 2. It must set up and direct the equipment with external function codes. 3. It could sense internal and external status conditions. 4. It must initiate a read or write operation. A 3306 Communication Channel provides a 12-bit, bidirectional, buffered, input/output path between the processor and up to eight peripheral equipment controllers. Since there may be up to eight channels, one processor may communicate with up to 64 controllers. Each controller in turn may be attached to a number of units. For example, the 3329 Magnetic Tape Controller may be physically connected to eight tape transports. This makes it physically possible for one processor to communicate with 512 tapes, an unlikely situation, of course. All data is handled in bytes (groups of 12 bits) with one parity bit per byte. OPERATION An I/O module contains no indicators or controls, so all operation must be initiated by the program via the computation section of the computer. PROGRAMMING The 15 instructions listed in table 30 are directly related to the I/O operations of a 3300 Computer. For a detailed description of these instructions, refer to the 3300 Computer System Reference Manual. Table 30. 3300 I/O RELATED INSTRUCTIONS OPERATION FIELD 77.3 77.3 77.0 77.2 77.2 77.1 73 73 75 75 74 INS CINS CON EXS COpy SEL INPC, INT, B, H INAC, INT OUTC, INT, B, H OTAC, INT INPW, INT, B, N 74 It-T,-~W:. . I~T 76 OUTW, INT, B, N OTAW, INT 76 77.51 IOCL ADDRESS FIELD x, ch x, ch x, ch x, ch x, ch x, ch ch, r, s ch ch, r, s ch ch, m, n ~h ch, m, n ch x f 0 x f 0 XfO XfO INSTRUCTION Sense internal status Copy internal status into lower 12 bits of A Connect to external equipment Sense external status Copy external status into lower 12 bits of A Select function of external equipment Input character block to storage Input character to A Output character block from storage Output character from A Input word block to storage !~EIJ.~ word to A Output word block from storage Output word from A Selectively clear I/O channel For specific function codes and status bits refer to the 3000 Series Computer System Peripheral Equipment Codes. 388 THEORY OF OPERATION This area of the chapter describes the theory of operation of a 3306 Communication Channel. It is broken down into six main parts: 1. Datarpaths 2. Parity checking 3. Status checking 4. Clearing circuits 5. Interrupts 6. I/O operations The following paragraph is a rapid run -through of the sequence of events. Figure 362 is a flow chart of the sequence of events. In response to programed instructions, the computation section connects an I/O channel and one of its external equipments, and sets up the equipment for a read or write operation with function codes. The chan nel then proceeds with the read or write operation, obtaining access to storage or A register via block control (in central processor) when necessary to fetch or store information. The entire operation is performed by block control and the channel, allowing the computation section to ~ontlnue its main program. Central Processor Choose to perform I/O operation I/O Channel Block control and 3306 handle this operation, leaving central processor free to continue main program Read or write r=--:-----::-----::--:-----, Connect a channel Perform the read/ and a specific unit 1---.----...-,. write operation under on that channel channel control Function Perform the function required by the instruction Exit Central Processor Under program control the central processor can be 1. Interrupted (if programmed) when the operation is complete; or 2. The central processor can sense the status to see if the channel is inactive, signifying the operation is completed. All data exchanged between a 3300 and its external equipments is in the form of 12-bit bytes accompanied by one parity bit per byte. Odd parity is used exelusively. Six bit characters use only half of a channel the lower six bits. All assembly and disassembly of computer words is done by block control or the controller, not by the 3306. Figure 363 is a more detailed flow chart of the sequence of operations. DATA PATHS In each standard I/O section, there is anevenand an odd buffer (0) register, one for each 3306 Communication Channel. Each channel has its own set of receivers and transmitters between the 0 register and external equipment jacks. However, the pair of channels in each I/O section share the set of receivers and No Figure 362. Generalized Flow Chart of Operations transmitters between the data bus and their respective o registers. There is one other data path. The prope r 0 registers receive information from and transmit information to the data bus. This is done by the circuits in figure 364. Note that the communications channel uses common transmitters back to the data bus just as the 0 registers receive from the data bus via common receivers. A quick glance at figure 365 will convey what has just been coveredo Data which may consist of a connect code, a function code, or an operand, is gated from the data bus (in the processor) to 0 register (in the communication channel) by a signal from block control. The data moving from the communications channel to external equipment (the (0) to external equipment signal) is contrGllled by each channel. Input data is gated from external equipment to 0 register by a signal within the channel (figure 366). 389 Program priority granted Request program priority RNI and decode Transmit channel enable to 3306, drop clear enable l-----..J Drop connect or function Yes Gate connect or function code from F register to 0 register Transmit connect or function Wait for external equipment or channel response maximum 100 usec External reject or no response? No t-----I~ RNI at P + 2 Drop cQnnect or function Figure 363. Detailed Flow Chart of Sequence of Operation TO FflC~'_ :;SL 11 ~()t>1-y---- J I 111 O~ ~61T~ f I'lS 06 7 R507 8 1'lS08 i/JC7' ---t-j:'~ PS71~B r "'081-+---\}--i--~ 2 1'521 I'lS 02 ti031 3 1'531 I'lS 03 Data bus in central processor 9 I'lS 09 10 1'lS10 ~1J.l1 l'5u 1 I'lSIJ.l 216 01 -t---r--D-->I 01 1 1-t-D--+--~ 21051 5 0551 I'lS 05 jil611 J680 J II ~ BUS EVE.N 1'lS11 ..1681 J6B2 ~BU5 ODD ~ ~ BUS E.VEN Figure 364. Data Bus Transmitter Logic ~J683 i1J -~ BUS ODD Data bus in central processor STORAGE ADDRESS BUS 3309 STORAGE MODULE COMPUTATION SECTION CONSOLE TYPEWRITER 3304 BASIC PROCESSOR Figure 365. 3304 Processor with Data Bus Emphasized BOTH CONTROLLED BOTH CONTROLLED ....----. BY I/O CHANNEL..----..... BY PROCESSOR ~-~ EXT. I/O PROEQUIP. CHAN. CESSOR Figure 366. I/O Data Flow THEORY OF OPERATION The normal operation of a program might be: 1. Connect a specific piece of peripheral "equipm"ent to the channel. 2. Perform either a read or write operation. In the next portion we will discuss in detail only the even channel. Remember that the even and odd channels are identical in operation and each channel contains identical circuits. The circuits common to both are the receivers and tramsmitters coming from and going to the data bus in the central processor. The following section will cover, by individual circuit analysis, a connect or function operation on the even channel and a write operation on the even channel. Connect or Function Operation When the central processor executes either a 77.0 or 77. 1 instruction the function translators (in the central processor) will supply a constant control enable to the designated channel. This constant trans1ation of the 77.0 or 77.1 instruction (control enable) will remain up until another instruction is read to F register, which will start another RNI. While the 77.0 or 77.1 instruction is being executed several separate things must take place. For a quick glance of what must take place see figure 367. Refer back to this figure as the operation of a connect is explained. Figure 368 shows a function operation. Note the similarity between connects and functions. Only ~ nect is discussed in detail in this manual. A function operation is identical to a .;)nnect operation. A connect establishes contact or connection between the processor and apiece of peripheral equipment. Afunction instruction accomplishes some function, such as having a magnetic tape handler perform a rewind operation. The function operation may prepare the controller for certain controlling functions such as BCD or binary mode, write a file mark, etc. Function operation uses the same circuitry and the responses to a connect are the same as to a function. If a solid understanding of the connect operation is obtained in the next few pages, understanding a function operation will be second nature. The purpose of the connect operation is to establish a connection to a piece of external equipment. There are several signals that are transmitted to the communications channel from the processor, during the execution of the connect (or function) instruction Some signals are transmitted back to the processor from the communications channel also. A list of these signals with a brief description of the purpose of each is supplied on the following pages Read through them carefully to get the big picture. Remember, the .basic operation to be performed is to establish a connection between the processor and a piece of external equipment. 0 Channel Control Enable: This signal comes from the processor to one of eight channels to enable connect, function, and interrupt clear. Channel enable: The signal comes from the processor to one of eight possible channels. Clear enable: Statically the signal is always here to enable clearing the channel. It disappears now to allow test for busy. Either the channel is busy or not busy and the connection can or cannot be made. Clear 0: This signal is from the processor and clears the 0 register. Bus to 0: This signal enables the information to come from the processor to the channel. Connect or function: This signal from the processor tells which operation is to be done. o to external equipment: This signal from the channel relays the 0 to the controller. The connect or function signal is relayed to the controller at this time. Reply: Signal indicating connect or function operation has been accomplished. 391 I~7:±:17~1~0~13~1~2~1021~0::!::11~1''''41-----lnstruction in F Connect channel 3 to equipment via bus system Function translators 2~ unit 1 ,- ___________ 1 , Channel desi nator I I/O device 1 I/O I I I I BLOCK --Connect signal------.t onnect code and parity bit 1 CONTROL CHANNEL I-----connect signal---~ # 3 reject or reply----;----''--_ _..J --Channel enable (unique) Control enable (unique) 1. With the instruction read and trans1ated' a request is made to block control. When priority is established, the channel is checked for busy. a. If busy, the next instruction will be executed at P + 1. b. If busy, - - - - - - - - - - ' 4. The next instruction will be exe cuted at P + 2, and the status lines will be enabled back to the channel. 1- _ _ _ _ _ _ _ _ _ _ 3. The connect code and connect signal is sent to all of the equipments on the channel. Each equipment samples the upper three bits (211, 210, 29 ) of the connect code and system.---------~ compare them to its equipment select switch. ...4.------Reply - - - - - - - - - a. If comparison, the equipment will con n e c t and send a reply back to the channel. If no response from any of the"'411---b. Ifnocomparisonoraparequipments within 100 usec, ity error, the equipment the channel will generate an will disconnect and no internal reject. response is sent back to the channel. 2. A connect signal is sent to all channels. Only the channel w h i c h receives the unique channel enable will respond. A 12 - bit connect code along with a parity bit is transferred to the I/O channel via the bus The next instruction will be exe - 4---Reject cuted at P + 1. J Figure 3670 Connect Sequence Reject: Signal indicating connection is impossible at this time (unit not ready, for example). No response: Signal indicating connection is impossible (no unit exists, for example). While the connect or function instruction is being executed several signals are transmitted to the I/O channel by the central processor. One of the first is: 1. Channei enable - The processor is executing an input / output instruction and is enabling further communications with this particular channel. Channel enable causes output of J074 = 1. 392 I Channel reject---- If a multiunit equipment can· not connect because a unit is not present, a reject will be sent back to the channel. 2. Clear enable - This signal drops at this time. Normally a constant clear enable is held at certain circuits within the channel, but during communications with the processor this signal must drop to allow valid checking of the channel busy. Drop clear enable. R084 = 1 (see above). NorE: When the computer is on, clear enable is present at all times except when the processor is checking for channel busy. 171711 13 -10) 01310 1'-- Instruction in F Function translators '" Channel designator Function signal-----...-.I BLOCK CONTROL 1/0 Interrupt on Ready and Not Busy via Bus System Function code and parity bit CHANNEL 1 - - - - - - ~unction signal-----I~ EQUIP. Channel enable (unique) # 3 re ject or reply Channel enable (unique) # * *Previously connected equipment 3. The function code and function signal are sent to all of the equipments tied to the channel, but only the previously connected equipment will respond. The function code is decoded. a. If the function can be accomplished' a reply will 4. The next instruction will be ...4---------Reply - - - - - - - - - - - be sent back to the chanexecuted at P + 2 . nel. The next instruction will be ex - 4 Re ject b. If the function cannot be ecuted at reject address P+ 1. Channel reject accomplished, are j e c t will be sent back to the If no res po n s e within 100 ....411---- channel or no response will be returned. usec, the channel will generate an internal reject. Figure 368 . Function Sequence 1. With the instruction read and translated, a request to block control is made. When priority is established the channel is checked for busy. a. If busy, the reject instruction at P + 1 will be read. b. If not busy _ _ _ _ _ _ _.....1 2. A function signal is sent to all of the channels Only the one which receives the unique channel enable will respond. A 12 - bit function code along with a parity bit is transferred to the channel via the bus system. ________-.J 0 I J[H(Jl/HZO-10,11) (1)1'80- 6H13A 6f11A )~_ EVEN CH~N EN~BLEI 6li15B (I) T072---------;.~>____-____i.a 3. At this point the processor has tried to establish communications with the channel. One of two things could have occurred: either the channel is busy and cannot communicate now, or it is not busy and can communicate. The channel would be busy if it were doing a read, write, or master clear. READ J[GOl /620-5,6) (I) T073 CLEAR E KTERt-IAL I"IASTE.>l CLE.AR ~ ~I II .JCS01/G20-12,13) {I) 6li15C ) 61-115A 6F16A RE'lD IC60 TOB4---~)~~ ::LEAR E"lABLE Figure 369. 0 Register Enables WRITE >lEPL 1 8 >lEJECT 1-------4)>---- BlJ 51 Figure 370. Channel Busy to Processor 393 If channel not busy 0603 = 0) the central processor will perform the following transfers to the data bus transmitters: F to 17 to EXX2 to DBR to T5XX to transmit the connect or function code to the channel. (The channel is not busy if it is not doing a read, write, or master clear.) If channel busy, RNI at P + 1. Bus to 0 from block control (R072 = 0, J662 and J663 = 1). SIGNALS FROM PROCESSOR BUS --+ ~ READ 4. Clear 0 register: This signal clears the 0 register in preparation for the arrival of information from the data bus. On a connect or function it is the unique 12-bit code that will accomplish the operation. Clear 0 register from the block control (R073 = 0, J664 and J665 = 1). ------) >----.a CLEAR" CLEAR ~ --~)~~ IEVEN CHAN. ENABLE Figure 373. Bus to 0 Register Enable -----4)~ IEVIEN CHAN. IENABLE Figure 371. Clear 0 Register Enable When clear 0 pulse arrives (R073 = 0), and when the even channel is enabled (R074 = 1, J605 = 0), then the output of J664/665 is a logical 1, clearing o register. 6. Connect or function: This signal comes from the processor to the channel and then is relayed to the controller to indicate a connect or function code is on the lines. Connect or function from the block control (R081 or R082 = 1 and R086 = 1 to cause J602 = 1). -----4)~ CONNIECT JOBI BITS R08Z --~)~ R081 fUNCTION J600 ------})~ EVEN CONTROL ENABLE Figure 374. Channel Preset Status CLIEAR 0 • .., Clear 0 register At this point the connect or function instruction has been read by the processor and the connect or function code has been sent to the channel. The next action that must take place is the channel relaying the connect code to the external equipment controller and then the controller reacting. J604 = 1, clearing K620/621, K608/609, and K612/613. NO RESPONSE ------) >---.-0 REJECT rrnsr CHAN. CLEAR + MC ( UNCONDITIONAL) £'1IEN CHANNEL CLEAR + MC JI15 CHAN. CLEAR + MC+ (NO DATA SIGNAL) Ii CHAN. TERMINATE Figure 372. Clear 0 Register Enable J604~ EKt RIEJECT fK60el KIZ4 l ill.i!.-fS ,R071 5. Bus to 0: The signal comes from the processor and enables the specific code from the instruction to enter the 0 register in the channel. The clear 0 register signal will drop out at this time to allow the entry of. the code to the 0 register. 391 R061 J604 .cr:-- i'!,07,~ ~CC+MC+ ~ (C+flaBUS-~ K60$ I L----...I PARITY IERROR J610 Figure 375. Reject and Parity Error Clear Enables --J J604 Fl --t K~15 .. J 7. 0 to external equipment: This signal comes from block control to the channel. It enables the information (connect or function code) in the 0 register to the external equipment. K622/ 623 going set would cause a 1 on sense line 6 if a sense instruction were executed, bringing J678 to a 1. INT. STATUS _ SENSE L IflES (EVEN CHAN.) Bit READ INTER. STATUS M218/ ------7 M219/ ------7~ I J601 !II _ EXT. EQUI1'. 1C6Z2~~6 INT. STATUS _ tS - SENSE LlflES tOOD CHAfI.l £XT. £QUI P. J660 Figure 379. ROl3 REPLY Figure 376. 0 Register to External Equipment Enables During 0 to external equipment, J602 forces J612 to 0, J666 and J667 enable Oto external equipment. Only one bit of the 0 register is shown. After 0.2 usec, connect or function is sent to external equipment via T015 to TOI6. J602 J661 SENSE LINES To external equipment Figure 377. Connect and Function Signals Main control hangs up, waiting for one of the following three responses: Channel Preset Status T062 will transmit a reply to main control. Figure 380. Reply on Connect or Function ~:g~~(--- T---' ~::! ---o------J REPLY ·Ofl COt f the 3306 and block control. The major points to recognize in this area are: a. The need for the 3306 to request entrance to blockcontrol, which assures output of the word, sends it to the 3306, and checks to see if it is the last word. b. The 3306 sends the word on to the controller. c. The controller relays the word to the peripheral eqUipment and generates a reply signal. 1) If this is ~ the last word the reply signal will cause the channel to generate ..another block control request. (Go back to 2a and continue until last word.) 2) If this is the last word the reply signal cannot cause the channel to request block control because the channel is disconnected from the processor. The following area of circuit analYSis covers from point B on in figure 39.1. Block Control Services a Request (The block control request was from T031 in first cycle - -remember?) 1. Channel enable: R068=O, R074=0, J605 =0. The actual circuitry will not be shown here because it is identical to that shown previously. Refer back to the first cycle of a write operation or refer to the complete set of 3306 prints if you do not remember how it works. / Main program in central processor Set up block control for output Execution lstcYcle of a write operation Set up output circuits in 3306 Any instruction--4l---J Next instruction @ While the main program continues, the 3306 and block control of the processor will accomplish the outputting of data to 0. ~ ~ PROCESSOR Block control request 3306 will generate a block control request, indicating it is ready to receive data r-c • -1 ~ Block control busy? ,r Enable channel and transmit proper word ., ~~ 3306 retransmits ord to controller I I Disconnect channel; only last word will be transmitted I Yes ,r ~~ Controller relays word to peripheral equipment and generates a reply ~ Last word? No -- Data signal l Yes Shut off write controls 1 ;, 'F Reply --- - .... Figure 391. Graphic Representation of a Write Operation 2. Block control resume: R079 = 0, clear K602/603. K614/615 will clear onthe trailing edge of the bus to 0 signal. K602/603 going clear removes the block contr-ol request from T031. Figure 392. Clearing the Block Control Request 3. Clear 0: R073 =0, J664 and J665 clear 0 register. Again, the circuitry is not shown because it is identical to other clear 0 operations. 0 is being cleared in preparation for output of the word. 4. Bus to 0: Transmitting the word to be output to o register in the channel. R072 = 0, J662 and J663 enable bus to 0, parity bit to 0120/121; J635 = 1, set K606/607 (data signal precondition). The circuitry for a bus to 0 is not shown because it has been covered previously. A parity bit is transmitted at this time; however, the circuitry for it will be covered later when all of the parity circuits are covered. 399 Reply From External Equipment - R013 CHANNEL ENABLE J074 D.S. PRECONDITION DATA SIGNAL K606 K60 = 1, J606 = 1. 100 nsec later K610/611 is cleared, dropping the REPLY YO 3 data signal to the controller. K610 K6O!i J667~~ D~,IO ~~..... ~~~ K611 DATA SIGNAL 0.1 "SEC K607 K611 Figure 397. Data Signal Transmitter Figure 393. Data Signal FF Enables The data signal causes J666 and J667 (enable 0 to external equipment). 100 nsec later T017 = 1, data signal. TOil --.Data to controller J661 0--' EXT. EQUIP. Figure 394. 0 Register to External Equipment Enable P41A K6O!J J667~ K611 - ;:~~ D~,IO "191~~D"TASIU"L y~ O.I/LSEC Read or write ... .J600 Reply .~~-o-------------, Channel terminate".,K J(ROI/S44-12.131 ~~R80- ~ ~ Informs controller that the data is on the lines Figure 395. Data Signal Transmitter Now the two paths are sampled: If the channel were not terminated when reply returned, K602/603 would set and 100 nsec later K614/615 (lockout) would set; T031 would send block control request, asking for more data. Refer back to figure 391. Remember that bl~ck control sent the word to the 3306 and determined if this was the last word. The 3306 relayed the word to the controller whether it was or was not the last word, but if it was the last word the following would have occurred. Figure 398. Block Control Request upon Reply External equipment drops reply (loss of the data signal causes this operation). The actual circuitry that drops the reply is in the controller. J666 and J667 = 0, dropping 0 to external equipment enable. At this point return to the area describing block control services a request and redoes the cycles until operation complete signal is generated. If the channel was terminated when reply returned: Operation Complete - (m1 =m2) or (r =s). Bit J087 TERMINATE PRECONDITION K611 TERMINATE K624 K644 K625 K645 K615 Figure 396. Terminate FF Enables Channel terminate FF is set. Continue on ifor a 'moment to see how channel terminate either allows or disallows the next block control request. The channel transmitted the word to the controller and the controller must now respond with a reply signal. The return of the reply signal to the 3306 will sample two paths: either the channel has not been ter.minated or it has been terminated. if it has not been terminated, initiate a block control request; if it has been terminated,' clear out the write controls. 400 Figure 399. 0 Register to External Equipment Enable Refer to the above circuit (see figure 398). It can be seen that the block control request FF cannot be set because K644/645wouldhavebeenset by the operation complete signal. All that remains is to clear out write controls. Clear K604/605 by J615. J666 and J667 = 0, dropping 0 to external equipment enable. .1615 Figure 400. 0 Register to External Equipment Enable 1st cycle of a read operation / Main program in central processor ~ instruction? r------E----, Set up block control for input Any instruction Next instruction -~----,--..... @ Set up input circuits in 3306 While the main program continues, the 3306 and block control of the processor will accomplish the inputting of data to @. ® ~306 + will relay the read controls to the controller 3306 will generate a ..... +control r( Block busy? Yes J ~Ir 6wee Reply ... ; . Pick up information from the lines and store it at proper location .- End of record wee F igure 40l. Read 0 pe ration ..... 4,. 'r Controller will activate input to peripheral equipment and receive word to input and either Block control request block control request indicating the information is on the liJ;les ready for input I ~ Drop read controls and terminate channel This constitutes a complete write operation, from the original execution of an output instruction to the final termination of the channel. Refer back to figure 391 for a quick review of the operation. It is important to recognize that the output operation itself was handled independent of the central processor except for initiation and occasional needs for memory references. It is also important to recognize that it is the reply signal from the controller that initiates another block request, if one is necessary" Another important item to note is that all of the circuit analysis has been on the even channel. There is an odd channel, identical to the even channel, with its own controlling circuits that can be operating at the same time. The even channel control logic diagrams may be found on pages 7-3,5,7,9 and the even channel Oregister and status logic is on pages 7-19,21,23. Leave read control up -- t ~, No Last word? re s ~ -~ .~ Read Operation A readoperation is very similar to a write operation. The biggest differences are in direction of data flow and how the channel terminates. Data flows are opposite. On output the flow of information is from the computer to the peripheral equipment. On input operations, the flow is from the peripheral equipment to the computer. Channel termination on a write or output operation comes from the computer when the starting and terminating addresses are the same. Channel termination may come from an end of record signal from the external equipment or from the processor when the addresses are equal. Previous to any read operation there must be a connect operation. This connect sequence is the same as the connect operation discussed previously so it will not be discussed at this time. Remember, connect establishes a connection between controller and channel. 401 Assume that a connect peration has been performed and that the connection was made to the odd channel. Assume that the next instruction is an input (read) and that the instruction was made to an odd channel. (The odd channel was selected for this description to show the common circuitry between the odd and even channels. ) Remember, the flow of information on input is: External equipment~ontroller----channel"'processor Read through figure 401, keeping in mind: 1. Execution of an input instruction sets up the 3306 channel and block control. The processor goes about accomplishing the remainder of the program while the channel and block control handle the input. 2. a. As the words are read by peripheral equipment and relayed to the controller, the controller will signal the channel by a reply signal. The reply signal is in response to the data s ignal by the channel. If the read controls stay on, the input unit will continue to read information and send it to the controller. Each time another word is ready to be sent to the channel the controller will transmit a reply signal if the channel is requesting data. This operation continues until block control signifies that the word that it received was the last one. This signal causes the channel to terminate. b. Another signal could be sent from the controller to the channel. This signal is called the end of record signal and it literally means that there is either no information to input or the input information ran out before block control signaled that the last word had been read in. Channel Enable: R168=0, R174=0, J645=0. Drop the clear enable; J 184 = O. 000 CHAN. ENABLE ~J645 Figure 402. Channel Enable T084---?~ CLEAR ENABLE Read: J078 = 1. Clear 0: Because the _actual clear 0 circuitry has been shown previously it will not be shown here. Clecu O'signal now prepares for the arrival of the information from the controller. SIGNALS FROM PROCESSOR J675 J'018 .. 610 ~ EXT. EQUIF!: J' ~nT' EQUIP._~ Y912 J641 A graphic representation of read is shown in figure 401. Read through it carefully. Notice the similarity to the write (output) operation. Note the two ways that the channel can terminate. Assuming the connect instruction did receive a reply and the next ins truction is a read instruction, the following signals will be developed upon the execution of the input instruction. (Review figure 401 to point B (first cycle). 1. Channel enable I L I Clear enable i 2. Read 3. Clear 0 402 L--- n ~~ Figure 403. 0 Register Enables __ EXT. EQUIP. CP ___ EXT. EQUIP. J641 The combination of read and clear 0 signals will set K650/651. Note that the 0 to external equipment signal cannot come up because of J641. The set output of read FF will not enable external equipment to 0 until the reply signal Q646) comes back from the controller. The channel preset FF will clearwhen read FF sets. It was set by the connect operation. Ci-t_""fl... 0·~o:'>r""",)pn' ... ,.. PRESET i K672 I Figure 404. Clear Channel Preset FF Enable i ! ~ I The set output of the read FF will become the read signal to the controller. T27A 01,2 K651~f-- READ To controller .1669 Figure 405. Read Signal to Controller While the read signal is going to the controller, a data signal will also be sent to the controller. When K656/657 sets for the first time K660/661 and K690/ 691 will also set. K690/691 will remain set until the read is complete. K690/691 ANDed with K696 and J193 will transmit the data signal for a read operation. BUS TO I/J ~ .1172 REAO • K651 NOT TERMINATE ...... K694 ~~ l. Channel enable 2. r L o to bus 3. Clear 0 ____________________~r_l~______ L 4. Operation complete K656 09,10 Y669 .1193 DATA SIGNAL !'RECONDITION The block control request is accomplished by setting K652/653 and transmitting a block control request via T131. The reply signal or end of record signal from the controller will clear the data signal FF . Eventually block control will honor the request. The following shows the timing for the reading of the information from the channel to the processor. DATA SIGNAL K657 Figure 406. Data Signal Enables J063 The following is a description of figure 401 starting at point B. Eventually the peripheral equipment will have read the word and relayed it to the controller. The controller will signal the channel via the reply signal indicating the input information is on the lines and ready to be placed in 0 register. 5 . Bus to 0 -----"- Block control services the request. Channel Enable: J168 = 1, J174 = 1, J645 =0. The actual circuitry will not be shown here. Refer to first cycle of a read operation or a complete set of 3306 prints (off channel) for a review (p. 7-11,13,15,17). o to Bus Signal: R079 =0, clears K652/653. K652/ 653 going clear will clear K664/665 on the trailing edge of the bus to 0 signal. SIGNALS FROM EXTERNAL EQUIPMENT ,.I~~~ ~~~ 0.1 f'SEC Read ~~~______________-, R e p l y - - - - ~K694 Not terminate"""----- K652 .1095 Figure 409. Block Control Request Lockout Enable o to bus: .1170 .1671 .figure 407. External Equipment to 0 Register Enables J683 = 1 (moving the information from the channel to the processor)o The 0 to bus signal will remain up until R079 goes to a 1 . .1645 When the channel receives the reply signal from the controller it will request block control. Channel Busy .-.----.-.1093 ~ .1640 - 0 - - - - - - - - - - , Reply - - - ~ K694 Not terminate~ ··"T" 0 --+ BUS (ODD C HAILI Figure 410. 0 Register to Bus Enable A clear 0 signal will then arrive. 0 is cleared to prepare for the next word from external equipment. 8 .1645 Figure 408. Block Control Request upon Reply Figure 411. Clear 0 Register Enable R073 0580 0581 403 Refer back to figure 401. Remember that block control received the word from the channel and determined if this was the last word . If it was the last word the following would have occurred: Operation complete (r or Ml = s or m2). If J087 = 1, set K694/695 terminate precondition. J618~ K684WCC K674 RI74 K695 K675 Figure 412. Terminate Enable upon Operation Complete K665 The set output of K694/695 will transmit a terminate signal to the processor. IT063!l-----< f - - - K611S ~ R.63 CHANNEL TERM'NATE Figure 413. Channel Terminate Signal to CPU The setting of K694/695 will not allow the block control request FF to set because of the zero on the AND gate. J640 ~93-o--------------- K694 Figure 414. Blocking Block Control Requests upon Termination Read controls are shut off by the clear enable and no channel terminate. The data signal FF will be prevented from setting by K694. The clear enable is up all the time after the activate cycle. The clearing of the read FF drops the read signal that is constantly being transmitted to the controller. The channel could be terminated by another method; this is the end of record if WCC is not selected. The end of record signal comes when the inputting device has not found any information to input. K684 wee With the drop of the data signal, the EaR signal drops, letting J091 set K674/675 (terminate FF). The read FF clears when K674 = 0 and the channel operation is complete. WORD COUNT CONTROL The word count control FF (684/685) allows the channel to terminate only with the operation complete signal from block control; not with the EaR signal from the controller. This allows the programmer to' read several records from tape or several cards from the card reader with a single input instruction. When an EaR signal is received (and WCC) the data signal and the read signal are dropped momentarily, but the corresponding FFs are not cleared and the signals are re-enabled. The controller interprets the new read and data signals as a new instruction and initiates another read operation. This constitutes a complete read operation from the connect to the channel termination. Refer to figure 402 for a review of the read operation, paying particular attention to the block control request and channel termination. The only difference in the termination of the channels is how channel terminate FF gets set. This is a complete read operation, from connect to channel termination. Refer to figure 402 for a review of read operation, paying particular attention to the block control request and channel termination. STATUS OPERATION As was stated earlier, the central processor communicates with the I/O channel previous to actually using it. One of the first things that could have been done was to check the status of the channel or some equipment on the channel. Checking the status of the channel itself is called internal; checking the status of equipment attached to the channel is called external. (See figure 417.) Figure 416 shows the connections of the status lines to the processor. 1. Eight external interrupt lines. One from each controller, total of eight per channel. 2. Internal status for the channel (five lines, 0-4, 6, 7). Figure 415. Terminate Enable upon End of Record When end of record ls received (and W-CC) the 'data signal is up and the channel is waiting for a reply. EaR .(J618) is ANDed with K684 (WCC) to clear K656/ 657. This causes K660/661 to clear 100 nsec later. 404 3. External status for the channel, 12 external status lines parallel to all eight controllers. (Only the connected controller will enable its status to be sent orrthe line'S.) 4. Appropriate sense enable received from processor. S. Twelve sense lines for sensing internal or external status from odd or even channel. Channel internal interru t ® Processor Channel internal interr t Identical to channels 1 and 0 I ( M __------~J\~--------------__\ Figure 416. Status and Sense Lines EXTERNAL SENSE SEQUENCE I 7 t7 I 2 I 3 I 0 10 01 I 1......1 - - - _ Instruction in F; '-----v-_J ~,--/ Function translatorf3_~J sense equipment on channel 3 for ready and not busy. Channel designator Sense code INTERRUPT AND SENSING SECTION Sense enable (unique) 12 sense lines I/O CHANNEL *3 EQUIPMENT 12 sense lines (static) =It: ~----------------~ * *Previously connected equipment 1. After the instruction is read and translated, a sense enable is sent to the I/O channel via the interrupt and sensing section.------------.. 2. The 12 sense lines from the connected eqUipment which are statically enabled to the I/O channel are sent to the interrupt and sensing section.----, The 12 sense lines are compared to the sense code. a. If any bit compares, the instruction at P + 1 will be executed. b. If no bits compare, the instruction at P + 2 will be executed. Figure 417. Graphic Representation of a Sense Operation 405 STATUS CHECKING The communication channel status as well as the external equipment status may be checked by the program in the computation section. Internal Status Internal status of the I/O channel may be checked by the program at any time over seven of the 12 sense lines which lead from the I/O channel to the computation section. Strobing is done by signals from the computation section via 1678 Q679). The instruction for this operation is 773 (ch)XXXX, where ch represents the I/O channel and XXXX is a mask of the conditions being checked. Bits 0-7 in the mask correspond to sense lines 0-4,6,7. Bits 5,8-11 of the mask represent arithmetic faults within the computation section. When:XXXX is 0, the internal status information is copied into the lower 12 bits of the A register. SENSE LINES PARITY ERROR { o EYEN 000 {EYEN READ 000 { 2 EYEN WRITE 000 f f f f YEN External Status Status of the external equipment may be checked by the program at any time over the 12 sense lines which lead from the I/Ochannel to the computation section. Signals on these lines have meanings which generally are unique for each type of external equipment. The instruction for this operation is 772 (ch) XXXX, where ch represents the I/O channel and XXXX is a mask used for looking at individual lines or groups of lines. When XXXX is 0, the external status information is copied into the lower 12 bits of A register During the time that status is being strobed by the computation section via 1684-5 0686-7), a 1 is sent to the external equipment over transmitter (T022/T122). The status circuits are extremely important to the programmer. It is through these lines that the condition of the external equipment can be determined. Other checks can be made from the sense lines which reflect the condition of control within the channel. These conditions are set by the appropriate signals. The circuits for each and the sense lines affected are shown in figure 420. The parity error FF s can be set by two different methods. EXTERNAL REJECT YEN NO RESPONSE REJECT 40fl 4 ODD 6 YEN CHANNEL PRESET ODD 7 YEN CHANNEL INTERRUPT ODD INT. STATUS ---+ SENSE LINES (EVEN CHAN.) 1. Parity error on connect and function codes works the same as output or write. TO 3304 ODD 0 Output or Write. The controller receives a parity error during the output of the word from the channel. This is the external parity error signal and comes from the controller. 2. Input or Read. The channel transmitted the (0) register to the data bus in the processor and the data bus generates a parity bit. This is transmitted back to the channel and compared to the parity bit in the 0 register; if they disagree the parity-error Fl"wilt set. 3 Logic Diagrams, page 7-23 INT. STATUS----+ SENSE LINES (ODD CHAN.) Figure 418. Internal Status PARITY CHECJ\ING Parity is checked by one method for connect, function, and write operations and by a second method for read operations. EXT. STATUS ~ SENSE LINES (EVEN CHAN.) SAMPLE STATUS TIME SENSE LINES 11 EVEN r ODD f 12 LINES TOTAL FROM EXTERNAL EQUIPMENT Logic Diagrams, page 7-23 TO 3304 j EVEN II ODD Figure 419. External Status EXT. STATUS-+ SENSE LINES (ODD CHAN.) SAMPLE STATUS TIME Sense line 0 Figure 420. Parity Error Status Connect, Function, and Write During the connect, function, and write operations a parity bit is generated in the data bus circuit of the computation section and is sent to the external equipment via 0120/121 FF in 0 register. A parity bit is generated in the external equipment and compared with the parity bit from the computer. If an error exists, an external parity error signal is sent back to R016in the 3306. This sets the parity error FF (K612/613) and provides a 1 on sense line O. K612/613 is cleared every time that an attempt is made to perform a connect' function, read, or write operation with this channel. (Not all equipments send parity signals on a connect operation. Refer to manuals covering specific synchronizer for details.) It may also be channel cleared by the program or master cleared by the operator. 407 READ AND WRITE Even Odd READ ~ ~ WRITE fOol ~ (X'[ REJECT f08l ~I EXT. REJECT rmel bJ I I I Sense line 1 Sense line 2 Sense line 3 NO RESPONSE REJECT Fl bJ J Sense line 4 \ Sense line 5 Read During a read operation, a parity bit is generated by the external equipment and sent to the 3306 along with the 12 bits of data. The parity bit is held in 0120/121 FF of 0 register while the data is forwarded to the computation section. Parity is generated in the data bus circuit of the computation section and is sent back to the 3306. This new parity signal is compared with the parity signal, being held to 0120/121, which was generated by the external equipment. If an error exists, setting of parity error FF (K612/613) is enabled by a bus to 0 signal from the computation section. This provides a 1 on sense line O. K612/613 is cleared every time that an attempt is made to perform a connect, function, read, or write operation with this channel. It may also be channel cleared by the program or master cleared by the operator. The previous description shows that the condition of the channels, either odd or even, internal or external, can be determined through the use of a sense instruction. INTERRUPTS Consider for a moment the activate input or output operation. If the activate instruction carries the appropriate other bits it is possible for the channel to send an interrupt signal to the processor when the operation is complete. The following signals are identical to the ones presented previous to a read or write operation, with the addition of an interrupt on completion signal. Channel enable I I Read or write Isignal Clear enable Read or write CHANNEL PRESET rrnl bJ CHANNEL INTERRUPT ~ ~ CHANNEL PRESET 1~ ~ CHANNEL INTERRUPT poj ~ I I Ito odd or evenILloc...hUila...o...ololooe.....J _ _ __ .;;:In::;t;.;e;:r;:r~u;.cp;.;:.t..;o;.:;n:....;;;.co.;;;.m==.Ep;.;l.;;;.e.;;.;te;;..-._--'~times ..;:C;.:.le.::.;a=r::;....;;O~_ _ _ _ _ _---'~times Sense line 6 OJ 074 and J174 are channel enables. Odd Even IN~UPT~ON U CO"PLETION ENABLE a74 ,J Sense line 7 Figure 421. Internal Status 408 Activate , 085 1<626 1<621 - K625 JI74 JOBS ~676 P31 I ~ Figure 422. Channel Interrupt K675 Other interrupt signals can be developed. The circuitry for each is shown below. EXTERNAL INTERRUPT ODD CHANNEL EVEN CHANNEL INTER. LlNE 01,2 PIN I 03,4 2 O~~~ r PIN 01,2 I ~~~ I~~~ I/O Channel Interrupts Each channel contains a channel interrupt FF whose set output is monitored by interrupt control in the computation section. This FF is set by the channel terminate FF provided that the select interrupt on completion FF has been previously set by the computation section. The select interrupt on completion F F is set when bit 17 of the second word of an I/O (73-76) instruction contains a 1. The channel interrupt FF is cleared by either: Each line is from a different controller E3.4 10 E5,6 II 6~~~ 7~~~ E3.4 10 E5,6 II passed directly to interrupt control in the computation section via one of the receiver cards, R040-7, in the communication channel. There are eight interrupt lines per I/O channel, numbered 0-7, each corresponding to the equipment number switch setting on the peripheral equipment controllers. This interrupt signal remains active until the computation section clears it with a function code, or until the operator does an external master clear. ~~~. ~~~ 1. A programmed channel interrupt clear 2. An operator's external master clear Figure 423. Interrupt Signal Circuitry The select interrupt on completion FF will be cleared if the channel is not busy and either: Two types of interrupts are associated with an I/O operation. These are the external I/O interrupts and the I/O channel interrupts. 1. An IOCL or CLCA instruction is executed 2. Channel terminate is set (after busy drops) 3. An operator's master clear External I/O Interrupts The interrupt circuits in external equipment are enabled by the select function instruction 771(ch)XXXX. If an enabled interrupt becomes active, a Signal is CLEARING C IRC UITS Figure 424 shows the clearing circuits in a 3300 communication channel. CLEAR CHANNEL ACTIVITY EXTERNAL MASTER CLEAR EV CHAN CLEAR K678 CHAN TERM K624 --t--G.-t BuS~0 K679 5 usee CLEAR ENABLE .1084 R071 CONN+FCN J610 EVEN CHANNEL ENABLE R068 MC -----::o-~ NOTE: The clear enable is present at all times that the computer is on except for connect, function, and activate read or write operations. Figure 424. Clearing Circuits There are other circuits within the 3306 that allow assembly / disassembly, suppression of word mark, etc. The theory of these circuits is left to the reader. 409 INTERRUPT LINES ~ o FROM EXTERNAL EQUIPMENT R040 I ~ INTERRUPT CONTROL (TO 3304 ) EIGHT LINES PER CHANNEL TOTAL I 7 ~ ~ Figure 425. External I/O Interrupts CHAN. ENABLE CHAN. TERM. (FF) INTERRUPT ENABLE CHANNEL INTERRUPT CHAN. INTER. ON COMPLETION CH, K620 AN BUSY] MC MC+IOCL INTE RRUPT CONTROL (TO 3304 ) SENSE LINE 7 (TO 3304) INTERRUPT CLEAR EV CH CONTROL ENABLE + CLCA +TERM (CHAN. CLR. + MC) Figure 426. I/O Channel Interrupts 410 INPUT /OUTPUT CHANNELS Worksheet #1 Write the instruction which will accomplish each of the following operations, then answer the questions regarding each instruction. Reference: Computer reference manual, instruction descriptions associated with I/O and interrupt, and 3306 theory text. 1. Connect tape handler 3 and controller 5 to channel 7 . a. What signal would be transmitted to the processor if channel 7 were busy? b. What signal would be transmitted to the processor if channel 7 were not present in the system? c. What would happen if there weren't a synchronizer designated as 5 on channel 7? d. What would happen if there weren't a tape handler designated as 3 on synchronizer 5 on channel7? 2. Sense for channel 1 busy. What sense line would carry the signal to the processor? 3. Provided that tape handler 3 on synchronizer 5 were connected to channel 7, what instruction would sense for that tape handler at load point? What type of signal would be developed to indicate this? 4. Sense for illegal write. What sense line carries the signalindicating anillegal write has occurred? 5. Clear channel 5 and its peripheral equipment. INPUT/OUTPUT CHANNELS Worksheet #2 Any information you write on magnetic tape and then read in is wrong. You know the read circuitry itself is okay because you can correctly read tapes that were written several days ago. The fault appears to be in the write operation, somewhere between the processor and the 3306. List the steps you would perform to localize the trouble. CLUES: a. Remember, read operationworks, but write operation fails. Perhaps a comparison of the flow paths for each would help eliminate some circuit::i:y that is common to each. b. The basic operation of the channel must be good because you can connect to the proper unit for read operations. 411 THEORY OF OPERATION FOR 3307 COMMUNICATION CHANNEL The 3307 is a 24-bit bidirectional I/O channel which must be an even-numbered chal1nel. The purpose of the 3307 is two fold: 1. It facilitates convenient interface to a 24-bit I/O device. 2. It halves the number of storage references required when operating with ahigh speed 12-bit r!Odevice. The first purpose of the 3307 is self explanatory since the 3307 has a24-bitOregister and24 dataIines. To understand the second purpose of the 3307, remember thatwith the 3306 a buffer cycle, which referenced storage, was necessary for every data transfer. However, the 3307 has an assembly/disassembly feature for word addressed I/O enabling assembly of 12 bits to 24 or disassembly of 24 bits to 12, allowing the 3307 to initiate a buffer cycle for every other transfer (74 + 76)(N = 0). 0 The 3307 uses odd parity exclusively. There is a parity bit for the lower 12 bits of the 3307 and a parity bit for the upper 12 bits. In an I/O module that contains a 3307 and a 3306, the clear 0 signal is used as a control signal only and will not cause the 0 register to clear. Refer to the 3300 Logic Diagrams, pages 7-27 to 7-39 for the 3307 control circuits and pages 7-49 to 7-55 for the 3307 0 register. t---+-I..r:ONTROLLER Figure 427. 3307 Data Flow on Output (Without Disassembly) 3307 TIMING FOR WRITE NO ASSY /DSSY: INSTRUCTIONS (75)(H = 0 + 1) OR (76)(N = 1) Activate I/O Operation 1. Even Channel Enable (J310 = 1). 2. Drop Clear Enable (J308 = 0). 3. Clear 0 register signal (R300 = 0). 4. Write signal (J307 = 1) sets; Write FF K302/303 which sends Write signal to external equipment (T306 = 1); Block Control Request Enable FF K366/ 367; and Block Control Request FF K332/333. Set- 412 ting of K332/333 clears the Block Control Request Lockout FF K362/363 and sends a Block Control Request signal (T301 = 1). 5. If (75) (H = 0), suppress assembly / disassembly (J314 = 1) which sets the Suppress Assembly /Disassembly Synchronizer FF K308/309 and sends a Suppress Assembly/Disassembly signal (T313 = 1). 6. Wait for Block Control to service request. Buffer Cycle 1. Even Channel Enable (J310 = 1). 2. Block Control Resume (J352 = 1), causing J456 to generate a 1 for 100 ns. This clears the Block Control Request FF K332/333 and the Block Control Request Enable FF K366/367. 3. If operation complete, R313 = 0 which sets the Terminate Precondition FF K334/335. 4. Clear 0 Register (R300 = 0) which sets Block Control Request Enable FF K366/367 (if operation complete). 5. Bus to 0 Register (J301 = 1). This gates Data bus to the 0 Register; static 0 to external equipment transmitters; and sets 0 Loaded FF K340/341. 6. Trailing edge of Bus to 0 signal sets Data Signal Precondition FF K342/343. After 100 ns this sets: a. the Data Signal FF K344/345, which sets the Block Control Request Lockout FF K362/363. b. the Data Signal II FF K368/369, which sends a Data signal (T309 = 1). 7. Wait for Reply from external equipment. 8. External Reply (R400 = 0, R450=1, J400 = 1, J451=1, J452 = 1). This clears the 0 Loaded FF K340/341, clears the Data Signal Precondition FF K342/343, and sets the Block Control Request FF K332/333 (ifoperation complete). After 100 ns Y400 = 1 which clears the Data Signal FF K344/345. If Operation Complete Repeat Activate I/O Operation, step 6. If Operation Complete 1. Reply drops (R400 = 1). Afterl00nsJ450=Owhich sets Terminate FF K336/337, clears K368/369, and clears Write FF K302/303. 2. 100 ns after K302/303 clears, the Terminate Precondition FF K334/335 and the Terminate FF K336/ 337 clear. 3307 -- --- 1 ODD BYTE 1 BUS UI2 0 U to Ox TSXJ 0U U I2 FROM STORAGE BUS CONTROLLER T6X1 Ll2 ~ i 0L to 0X EVEN BYTE - - -- 76 (24 to 12) --- Figure 428. 3307 Data Flow on Output (With Disassembly) GENERAL FLOW FOR A 3-WORD OUTPUT ON A 76 (24 to 12) DISASSEMBLY (FORWARD) Step 1: Activate 76 (24 to 12) Forward a. Send Write signal to controller and request Block Control. b. Assembly/Disassembly counter = set, set. c. Set 12-24 A/D. Step 2: Serviced by Block Control a. Bus to 0U/OL. 0u to Ox to T6X1 L12 . b. Data signal to controller. c. Assembly/Disassembly counter = clear, set. Step 3: First Reply from Controller a. 0L to Ox to T6X1 L12 (Assembly/Disassembly = clear, clear). b. Data signal to controller, request Block Control. c. Assembly/Disassembly counter set, clear. Step 4: Second Reply from Controller a. Assembly/Disassembly counter = set, set. b. Wait for new word from Block Control. Step 5: Serviced by Block Control a. Bus to 0U/OL. 0u to Ox to T6Xl. b. Data signal to controller. c. Assembly/Disassembly counter = clear, set. Step 6: Third Reply from Controller a. 0L to Ox to T6X1 L12 (Assembly/Disassembly counter = clear, clear). b. Data signal to controller, request Block Control. c. Assembly/Disassembly counter = set, clear. Step 7: Serviced by Block Control a. Bus to 0U/OL. b. Send operation complete. Step 8: Fourth Reply from Controller a. 0u to Ox to T6X1 L12. (Assembly /Disas sembly counter = set, set). b. Data signal to controller. c. Assembly/Disassembly counter clear, set. Step 9: Fifth Reply from Controller a. 0L to Ox to T6X1 L12. (Assembly /Disassembly counter = clear, clear). b. Data signal to controller. (Don't request Block Control if operation complete. ) c. Assembly/Disassembly counter = set, clear. Step 10: Sixth Reply from Controller a. Assembly/Disassembly counter = set, set. b. Terminate operation, clear Assembly /Disassembly counter. 3307 TIMING FOR WRITE DISASSEMBLY: INSTRUCTION (76)(N = 0) FORWARD Activate I/O Operation 1. Even Channel Enable (J310 = 1). 2. Drop Clear Enable (J308 = 0). 3. a. Clear signal R300 = 0 which sets Block Control Request Enable FF K366/367. This FF clears the Block Control Lockout FF K362/363 and sends a Block Control Request (T301 = 1). b. Write signal (J307 = 1) which sets: 1) Write FF K302/303, Sending Write signal (T306 = 1). 2) Block Control Request FF K332/333. c. Assembly/Disassembly signal (J317 = 1) which sets Assembly/Disassembly FF K304/305 and AOOO/001 and BOOO/OOL 4. Wait for Block Control to service request. ° Buffer Cycle 1. Even Channel Enable J310 = 1. 2. Block Control Resume J352 = 1. This forces J456 to output a 100 ns logical 1 whic h clears: a. Block Control Request FF K332/333. b. Block Control Request Enable FF K366/367. 3. Clear signal (R300 = 0) and set Block Control Request Enable FF K366/367. ° 413 ° 4. Bus to signal (J301 = 1 and R301 = 0). R301 gates Dus to the register. J301 sets the Loaded FF K340/341. After 150 ns, J462 outputs a 100 ns logical 1 which: a. Gates 0u to Ox (OX to T static). This sets Suppress Word Mark FF K320/321 and drops Word Mark (T310 = 0). b. Sets the Data Signal Precondition FF K342/343. After 100 ns, this sets the Data Signal FF K344/ 345, K368/369, J462 outputs logical 1 for 100 ns which sends the Data signal (T309 = 1), clears AOOO/001, and sets the Block Control Lockout FF K362/363. 5. Wait for first Reply from external equipment. ° ° First Reply 1. R400 = O. After 100 ns Y400 =1 which clears Data Signal FF K344/345. 2. J451 = 1 for 100 ns. This: a. Clears the Loaded FF K340/341. b. Clears the Data Signal Precondition FF K342/ 343. c. Clears BOOO/OOl. d. Sets the Block Control Request FF K332/333, which sends a Block Control Request (T301 = 1) and clears the Block Control Request Lockout FF K362/363. 3. J400 = l. 4. J452 = 1 for 150 ns, after which time a. J454 = 1 for 100 ns. This enables 0L to Ox (0 to T static), clears the Suppress Word Mark FF K320/321 and sends Word Mark (T310 = 1). b. Sets the Data Signal Precondition FF K342/343 (K352). After 100 ns, this sets the Data Signal FF K344/345 (if Reply has dropped). J465 = 1 for 100 ns, which sets AOOO/OOl. 5. a. Wait for second Reply from I/O equipment. b. Wait for Block Control to service channel. (In this example, as sume that the Reply comes up first. ) ° Second Reply 1. a. R400 = O. After 100 ns Y400 = 1 which clears the Data Signal FF K344/345. b. J451 = 1 for 100 ns. This sets BOOO/OOI and clears the Data Signal Precondition FF K342/ 343. (The 0 Loaded FF K340/341 is still clear (J462 = 0); thus, 0u will not gate to OX' the Suppress Word Mark FF K340/341 will not set, the Data Signal Precondition FF K342/343 will not spt. n~n the Data Signal FF K344/345 will not set.) c. J400 = 1. d. J452 =- 1 for 150 ns. 2. Continue the wait for Block Control to service channel. 414 Buffer Cycle 1. Even Channel Enable J310 = l. 2. Block Control Resume- (J352 = 1) • This causes J456 to output a logical 1 for 100 ns which clears the Block Control Request FF K332/333 and Block Control Request Enable FF K366/367. 3. Clear signal (R300 = 0) and set Block Control Request Enable FF K366/367. 4. Bus to signal (J301 = 1, R301 = 0). R301 output gates Bus to Register. J301 output sets the Loaded FF K340/341 and after 150 ns, J462 = 1 for 100 ns. The output of J462: a. Gates 0u to Ox (OXto T static) which sets Suppress Word Mark FF K320/321 and drops Word Mark (T310 = 0). b. Sets the Data Signal Precondition FF K342/343. After 100 ns, this sets the Data Signal FF K344/ 345 which causes J465 to output a logical 1 for 100 ns and sends the Data signal (T309 = 1). This, in turn, clears AOOO/OOI and sets the Block Control Request Lockout FF K362/363. 5. Wait for third reply. ° ° ° ° Third Reply 1. a. R400 = o. b. c. d. 2. a. b. After 100 ns this causes Y400 = 1 which clears the Data Signal FF K344/345. J451 = 1 for 100 ns. This: 1) clears the Loaded FF K340/34l. 2) clears the Data Signal Precondition FF K342/ 343. 3) clears BOOO/OOl. 4) sets the Block Control, Request FF K332/333 which sends a Block Control Request (T301 = 1), and clears the Block Control Request Lockout FF K362/363. J400 = 1. J452 = 1 for 150 ns after which time J454 = 1 for 100 ns. This: 1) enables 0L to Ox (static Ox to T). This clears the Suppress Word Mark FF K320/321 and sends.a Word Mark (T310 = 1). 2) sets the Data Signal Precondition FF K342/ 343 (K352). After 100 ns, this sets the Data Signal FF K344/345 (if Reply has dropped). J465 = 1 for 100 ns which sets AOOO/OOl. Wait for the fourth Reply. Wait for Block Control to service channel. (Assume I/O equipment slow to reply and that Block Control services request and send another 24bit word to the channel.) ° BufferC;rcle 1. Even Channel Enable (J310 = 1). 2. Block Control Resume (J352 = 1), causing J456 to output a logical 1 for 100 ns. This clears the Block Control Request FF K 3 3 2 /3 3 3 which clea,rs the Block Control Enable FF K366/367. 3. Operation complete (R313 = 0, J363 = 1, and J313 = 1). J363 sets Terminate Precondition FF K334/ 335. 4. Clear Signal (R300 = 0). (Do not set Block Control Request Enable FF K366/367 since operation complete is up. ) 5. Bus to signal (J301 = 1) and (R301 = 0). R301 gates the bus to the Register. J301 sets Loaded FF K340/341. Since Ox is holding 12 bits, J462 will not come up since BOO 0/0 0 1 is still clear. Thus, no 0u to Ox transfer will take place until the next (fourth) Reply is received from the channel. 6. Continue wait for the fourth Reply. ° ° ° ° Fourth Reply 1. a. R400 = o. After 100 ns Y400 = 1 which clears the Data Signal FF K344/345. b. J451 = 1 for 100 us. This clears the Data Signal Precondition FF K342/343 and sets BOOO/ 001. After 150 us, J462 = 1 for 100 ns since the Loaded FF is still set. The output of J462: 1) gates 0u to Ox (OX to T static). This sets the Suppress Word Mark FF K320/321 and drops Word Mark (T310 = 0). 2) sets the Data Signal Precondition FF K342/ 343. After 100 ns, the Data Signal FF K344/ 345 sets. This, in turn, causes J465 to output a logical 1 for 100 ns and sends a Data signal (T309 = 1). The output of J465 clears AOOO/OOI and sets the Block Control Request Lockout FF K362/363. c. J400 = 1. d. J452 = 1 for 150 ns. 2. Reply drops (R400 = 1). After 100 ns Y450 = 1 and J450 = o. (Cannot set the Terminate FF K336/337 at this time since the Data Signal FF is set). 3. Wait for the fifth Reply. ° Fifth Reply 1. a. R400 = O. After 100 ns Y400 = 1 which clears the Data Signal FF K344/345. b. J451 = 1 for 100 ns. This: 1) clears the Loaded FF K340/341. 2) clears the Data Signal Precondition FF K342/ 343. 3) clears BOOO/OOL 4) cannot set the Block Control Request FF K332/333 since the Terminate Precondition FF is set. c. J400 = 1. d. J452 = 1 for 150 ns. After 150 ns, J454 = 1 for 100 ns. 2. Reply drops (R400 = 1). a. Enable 0L to Ox (static Ox to T) which clears the Suppress Word Mark FF and sends Word Mark (T310 = 1). The DataSignal Precondition ° FF K342/343 sets, after 100 ns, this causes: 1) J465 = 1 for 100 us, which sets AOOO/OOL 2) Data signal to be transmitted (T309 = 1). b. After 100 ns Y450 = 1, which causes J450 = O. (Cannot set the Terminate FFK336/337 yet since the Data Signal FF is set.) 3. Wait for the sixth (last) Reply. Sixth Reply 1. a. R400 = O. After 100 ns Y400 = 1 which clears the Data Signal FF 1\:344/345. b. J451 = 1 for 100 ns. This clears the Data Signal Precondition FF K342/343 and sets BOOO/ 001. After 150 ns J462 cannot output a logical 1 because the Loaded FF is set; therefore, the Data Signal Precondition FF will not set. c. J400 = 1. d. J452 = 1 for 150 ns. 2. Reply drops (R400 = 1). After 100 ns Y450 = 1 and J450 = O. This sets the Terminate FF K336/337 since the Data Signal FF is clear. J450 output causes: a. J866 = 1, which clears AOOO/001, BOOO/OOI and K368/369. b. J863 = 1 until the Terminate FF clears. J863 output clears the Assembly / Disassembly FF K304/305 and clears the Write FF K302/303. The Write FF, in turn, drops the Write signal (T306 = 0). After 100 ns the Terminate FF K336/337 and the Terminate Precondition FF K334/335 clear. ° Joe-G--I R6X I ~U-.:.::12'--__-CONTROLLER (Without Assembly) Figure 429. 3307 Data Flow on Input 3307 TIMING FOR READ NO ASSY/DSSY: INSTRUCTIONS (73)(H = 0 + 1) OR (74)(N= 1) Activate I/O Operation 1. Even Channel Enable (J310 = 1). 2. Drop Clear Enable (J308 = 0). 3. Clear signal (R300 = 0) and Read signal (J306 = 1). a. R300 sets the Block Control Request Enable FF K366/367. b. J306 sets: 1) Read FF K300/301 which sends a Read signal (T305 = 1). 2) K310/311 if word count control. 3) Unloaded FF K340/341. 4) Data Signal Precondition FF K342/343. This FF sets the Data Signal FF K344/345 and, after 100 ns, sets K368/369 which sends a Data signal (T309 = I). 4. Wait for fir st Reply. ° ° 415 First Reply 1. a. R400 = O. b. J451 = 1 for 100 ns. This clears the Data Signal Precondition .F.F K342/343, clears the 0 Unloaded FF K340/341, and sets the Block Control Request FF K332/333. FF K332/333: 1) clears the Block Control Request=L-o..... ck..-o-u..,..t FF K362/363. 2) sends a Block Control Request (T301 = 1). 3) after 100 us Y400 = 1, which clears the Data Signal FF K344/345. 2. Wait to be serviced by Block Control. Buffer Cycle 1. Even Channel Enable (J310 = 1). 2. 0 to Bus signal (J352 = 1) and J456 = 1 for 100 ns. J456 output: a. clears the Block Control Request FF K332/333. b. clears the Block Control Enable FF K366/367. c. gates 0U/OL to the Data bus. d. gates OU/OL parity bit into 0716/717 and 0836/ 837. Trailing edge of 0 to Bus signal forces J455 = 1 for 100 ns, which sets the 0 Unloaded FF K340/341. 3. Clear 0 signal (R300 = 0). This sets the Block Control Request Enable FF K366/367. 4. Bus to 0 signal (R301 = 0). a. R301 output controls the Check Parity Error FF K328/329. b. Trailing edge of the Bus to 0 signal forces J457 = 1 for 100 us and: 1) sets the Block Control Request Lockout FF K362/363. 2) sets the Data Signal Precondition FF K342/ 343. 3) set the Data Signal FF K344/345 if the Reply is down for 100 ns. 4) send data signal (T309 = 1) if K344/345 sets. 5. Wait for the second Reply. Second Reply 1. a. R400 = O. b. J451 = 1 for 100 ns. This: 1) clears the Data Signal Precondition FF K342/ 343. 2) clears the 0 Unloaded FF K340/341. 3) sets the Block Control Request FF K332/333. This FF clears the Block Control Request Lockout FF K362/363, sends aBlockControl Request (T301 = 1), and after 100 ns causes Y400 = 1 which clears the Data Signal FF K344/345. c. J400 = 1. d. J452 = 1 for 150 ns. e. J471 = 1 which gates the external receivers to OU/OL· 2. 'Wait to be serviced by Block Control 416 Buffer Cycle 1. Even Channel Enable (J310 = 1). 2. 0 to Bus signal (J352 = 1 and J456 = 1 for 100 ns). J456 output: a. clears the Block Control Request FF K332/333. b. clears the Block Control Request Enable FF K366/367. c. gates 0U/OL to the Data bus. d. gates OU/OLparitybits into 0716/717 and 0836/ 837. The trailing edge of the 0 to Bus signal forces J455 = 1 for lOOns. This setstheO Unloaded FF K340/ 341. Operation Complete Signal 1. R313 = O. 2. J363 = 1 which sets the Terminate Precondition FF K334/335. 3. Operation complete. 4. Clear 0 signal (R300 = 0). Cannot set the Block Control Request Enable FF K366/367. 5. Bus to 0 signal (R301 = 0) which controls the Check Parity Error FF K328/329. Trailing edge of the Bus to 0 signal: a. clears 0716/717 and 0836/837 for 100 us. b. sets the Block Control Request Lockout FF K362/363. c. sets the Data Signal Precondition FF K342/343. d. cannot set the Data Signal FF K344/345. This causes the Terminate FF K336/337 to set, forcing: 1) J866 = 1, which clears K368/369 and the Data Signal Precondition FF K342/343. 2) J863 = 1, which clears the Read FF K300/ 301. After 100 ns the Terminate Precondition F F K 3 3 4 /3 3 5 and the Terminate FF K336/337 clear. No Operation Complete Signal 1. Operation Complete. 2. Clear 0 signal (R300 = 0). This sets the Block Control Request Enable FF K366/367. 3. Bus to 0 signal (R301 = 0) which controls the Check Parity Error FF K328/329. Trailing edge of the Bus to 0 signal forces J457 = 1 for 100 ns. The output of J457: a. clears 0716/717 and 0836/837. b. sets the Block Control Request Lockout FF K362/363. c. sets the Data Signal Precondition FF K342/343. d. if Reply down for 100 ns, set the Data Signal FF K344/345which sends aData signal (T309 = 1). 4. Wait for third Reply. 5. If (End of Record) (W:;;';-o-r-';d~C:::-o-u-n~t--::C:::-o-n~tr-o-;-I), continue at number 1. 6. If (End of Record) (Word Count Control), continue at number 2. Number 1 1. End of Record signal (J402 = 1, R402 = 0, and J471 = 1. J402 output: a. sets the Terminate Precondition FF K334/335. b. cannot set the Block Control Request FF K332/ 333. c. clears the Data Signal Precondition FF K342/ 343. d. clears the a Unloaded FF K340/341 if ho Word Count Control. e. After 100 ns Y413 = 1 which clears the Data Signal FF K344/345. End of Record signal drops (R402 = 1). After 100 ns J450 = 0 which sets the Terminate FF K336/337 if no Word Count Control. 1) J450 output forces J866 = 1, clearing K368/ 369. 2) Terminate FF forces J863 = 1, clearing the Read FF K300/30l. After 100 ns the Terminate Precondition FF K334/335 and the Ter':" minate FF K336/337 clear. J471 output gates the external receivers to OU/OL. Number 2 1. a. End of Record signal J402 = 1 which: 1) cannot set the Terminate Precondition FF K334/335. 2) cannot set the Block Control Request FF K342/343. 3) allows the a Unloaded FFK340/341 to remain set. 4) after 100 ns Y413 = 1, clearing the Data Signal FF K344/345, and Y412 = 1, setting the End of Record I FF K338/339. b. R402 = O. c. J471 = 1 which gates the external receivers to OU/OL· 2. End of Record signal drops (R402 = 1). After 100 ns Y403 = 1 and J450 =0. The Terminate FF K336/ 337 cannot set. The cleared Terminate FF: a. forces J866 = 0, preventing K 3 6 8 /3 6 9 from clearing. b. forces J863 = 0, preventing the Read FF K300/ 301 from clearing. Y403 output: a. sets End of Record II FF K346/347 and forces J865=0, which drops the Read signal (T305=0). b. after 100 ns clears the End of Record IFF K338/ 339 and forces J865 = 1 which brings up the Read signal (T305 = 1). c. 100 ns after K338/339 clears, Y338 = 1 which sets the Data Signal Precondition FF K342/343. This, in turn, sets the Data Signal FF K344/345 and sends a new Data signal (T309 = 1). d. 100 ns after the Data signal was sent, Y464 = 1 which clears K346/347. 3. Wait for the next Reply. 1st REPLY DBR R01X Ll2 0x EXT. EQUIP. TO SlORAGE VIA BUS 2nd REPLY Figure 430. 3307 Data Flow on Input (With Assembly) READ AND 12 TO 24 ASSEMBLY FORWARD 1. Activate 74 (12 to 24) Forward. Send Read Signal to Peripheral Equipment. Assembly/Disassembly Counter Clear, Clear. 2. First Data Signal to Peripheral Equipment. Assembly/Disassembly Counter Set, Clear. 3. First Reply. R16X to Ox to aU, Assembly /Disassembly Counter Set, Set. 4. Second Data Signal to Peripheral Equipment. Assembly /Disassembly Counter Clear, Set. 5. Second Reply. R16X to Ox to OLD Assembly/Disassembly Counter Clear, Clear. Request Block Control. 417 I ~1 CH ENABLE: CLEAR ENJI,ElL:e: CLEAR 1\ Bus+1I READ I ~Jr-_-......!'}J------1r·J-;--~J~F-f----~JJ I ~f If J1----f~, I ~S~-+_--'""'115_5-+_-_jI~S II I 1J--.\-----If----f~H__ -----~ljj--~-~Jf5_'--~~J~~ IS ---~~~~--+-----~n~~I-~I~S H I WORD COU!!1T CONTROL ~ C:ONTROL K310/K3!! READ FF KanO/K30! I I _____~,~S---4--~r-~s B. C. REQ1.::;S~; LOCKOUT K362/K363 SICl.PR~;CONDITION K368/K369 1H------?~~ I I~ I I II .J IS IS J~1----f1 I I B. C. REQt'::;S1: 1I:332/K333 DATA SIG.K344/K345 {s--f----l5---lSo_S------ff~ I IJ-----fl II ALWAYS CLEAR DATA I ~~~~~$~~~~ ~f SUPP. W. NI. FF K3aO/K321 B. C. REQt'I!:S~r ENABLE K366/K3~7 f~ JH------?f----1~~ OPERA TION COMPLETE caT,J\'I:r :~J---fJ ----4~sr_-+--___jJ~~_+-_4~f_____1~: I 0+ BUS WORD I L,{~--1-_-I!~$---f~S--.....,.G~fII-----if~1---f5 ~ I I \~~f--------~S~~~J-f-----~HJ~-----------4--GII--+-~I}---1J r~~J-----f/f---_---,rJ 1~~1 I lS -------jI~f---r----4Jl~~--~I~~ II~~ II I I n 1rt___4~~~------~I1~-I-------------:-I I~rl--------~!~ ~~~f~---------jl~ .J .J I \\--fr-J.---------IIH----, . ~l-----f}______4~ H GI-f-+--i'~lr--_ _ _-'r~I_______4~, L,s ~~I-------//I~-~--~I~~I-----~II~I~Ir-----jJ~f----f1 --.J !~~~r--J II ¢ UNLOADlI::::> K340/K341 ~ r--1 -----~IJ1--r_~~, SS I ~ ~ r~ ~ fH---, I L - - -_____W{/////. I ~ I ~ Ijl~ If I TERMINAT,I:; PRJ!;CONDITION ------~Sl5_J----~----~J!~--~--_;S~rj----------~J1------_;!~~ TERMINAT,:; K336/K337 ------~H~--+_----~~~----~$~!~--------~~~------~I.~~~j______~rl I K338/K339 ------~U~----~----i!fl------_;I}______4~j----------'!l~------_;Irt___4~~!----------!Slr'""'I~--~~---I--- K346/K347 DATA SIGN,.\L T30e REPLY ------~fi5_S----~----~j}j------~I~!~--------~I.~l-I------j,~~~!----------ji~ ~' --~II__I~f-----'r~s__f______4~s GI-l ___"UH_-+~r~1 IJ-.r~~l If---{I r~ If ~ I E¢R ------~I,5_!----~----iJlI------~I~'~l----------+I\~-I----__4!~~sO_\--------~!I~ WORD MAliK STATIC 1" I #~J-f------iJ~S__lI--_1J·ll-----fj READ SIGrfA,L ACTIVATE READ lIST REPLY BUFFER CYCLE 2ND REPLY I BUFFER CYCLE I I ~r-I I ~ E0R TERMINATE IF WCC CONTINUE IF WCC 75 OR (711) (24 ~ CH ENABLE r CLEAR ENABLE ~~I--------~ L----\I I ~rl----------____f I I I I II L I I \ ~ j I i BUS - 0 ~L I r I sr------IL- WRITE ~ ~Irl---------~I If-- I (f CLEAR ~ sr----1L- B. C. RESUME S ~fJl----------i i s ~r, OPERATION COMPLETE S ~·rS---------___4 S I I ,~~A.- I-------{I ~f I I II S ~I ----f WRITE FF & WRITE SIG. SUPP. W. M. B. C. REQUEST ENABLE GATE BUS-+ -.J I -.J ! ~~~ ~ s S ~.~I-----Il___4 I I/J I r--------S~f-S_ _---..JI~ DATA SIG. PRECONDITION DATA SIG. ~;l-S-------~~ I, I ~f-I-------~ ~ K344/345 & DATA SIG. K368/369 ¢ LOADED K340/341 .1, TERMINATE PRECONDITION , ~~i----------~ I TERMINATE K336/337 WORD MARK L ALWAYS CLEAR K320/321 B. C. REQUEST K332/333 s -.J I I I II ! I j II f I Ir-------IL- r----{I I f-J I I I fl I II ~ I S~ ~ j I !~ s U I II ~ ALWAYS A "1" r----ll--, REPLY INITIA TE WRITE 1ST BUFFER CYCLE 2ND BUFFER CYCLE & ~ TERMINA TE f---fr----l CM ENABLE " j--- ¥---i CLl!;AR ENABLE CLEAR ~ I----i " BUS -+ II !---iT--- II -+BUS ~~ I OPERA110N COMPLETE r-+--i I I ALWAYS CLEAR IF WCC ALWAYS SET IF WCC WORD COUNT CONTROL K310/K311 " READ K300/301 SUPP. W. M. I B. C. REQUEST " B. C. REQUE8T~ B. C. REQUEST ENABLE " I I K320/321 " - I " I ~ I I r--!--i DATA8IG. K3>i4/345 I I I ~ I J I I I 1 ~ .1 ~ I 1 "" "" ~ " I ~ I 1 .1 I ~ " K368/36S I ~ 1 DATA 8IG. PRECONDITION I I H-4 " I I 7 I GATE ~x -+ lIu ''': l I I--t-i I I ~ I I I 1t~~s1 AOOO/OOI $\%\\\\\%\%§§I\\\\%~1»\\\\~\\\\~\t)\~~\\\\\\\\\\~ 1 BOOO/OOI («\\\\~««\«\~\<1\\\~\<<(1!it ~ I II UNLOADED ~ I TERMINATE PRECONDITION r---Ir--- TERMINATE K336/337 ~ - I DATA 81G. READ SIGNAL SS « REPLY WORD MARK " " T309 1'- I I f----iL ~ l-----\ " 1ST REPLY ~ 2ND REPLY REQUEST B. C. & REQUEST 3RD BYTE SERVICED BY BLOCK CONTHOL I I r-~r- l - CH ENABLE I CLEAR ENABLE r-~ n CLEAR 0 BUS Ij- I - -+ 0 I {f- +-- n j I/J -+ BUS I WORD COUNT CONTROL ~r- I- ASSY/DSSY ~r- I - WORD COUNT CONTROL/K310/K311 -.,J 1 WAIT j FOR 1ST READ K300/K301 ~ SUP. W. M. r-~ s S-- I S ~ s K320/K321 B. C. REQUEST K322/K323 B. C. REQUEST ~ B. C. REQUEST ENABLE REPLY I ~ S I-- I s s I I 1--1 GATE (J)I/J I >DATA BUS DATA SIG. PRECONDITION K344/K345 K368/K369 MOO/OOI BOOO/OOI T309 REPLY WORD MARK READ SIGNAL ! ~~ f-~ ~~ ~rJ s I/J UNLOADED FF DATA SIG. r-I I r--~ ~W , ---Ir- I- I r--l f-~ I s s s I j I S 1 s S 24) FORWARD ~r- l - HEAD DATA SIG. 74 (12 76 ~~ Lr~ ~f- ('II EX .. Bl.E ~ ~S I H S ~ S IS ~ ~ S IS S 'r--4 \ Ss I ~ " ! I S-- S {\ 5 « I S L ~S " s------1l- " ~ ~T - WIllTE I4} - ASSY/l:.SSY ENABLE 13. C. J'ESUME (0-BUS) OPER), nON LL SUP. '1\.• ~1. FF I ~ I K320/K321 R. C. l:E(;!UEST LL K3~~ -----s~~ ~~ -----s~ ASSY,' 'SSY K30 4/K305 ~~ -----4~ I UATA, ;IG I ~ I K368/I': 36f! I S I ! I " I ~ ~ 1 J I \ I ! S ~ (0 - T1 STATIC) ~~ I I x WRIT!' SIG. ~I ~ WORD MARK J ~ I I I II I ~ DATA HG. S {J ~I ~ I'i ! \ I \----fS ~s ~S ~l---II ~, ~s ~s " ~ (0 - T STATIC) 1 x ,-H- S It ~ I LOJi,DEJ FF K340/K341 \ ~~ I PRE CONDITION K342/K343 t ~ ~S ~,; .r-~~ S~ ~ " FF K344/K345 SI L ~, I I ~\ I I I IS ! I , I I S II BOOO/FOOl !~ \ -~~ -------1~ AOOO/" 00 J I ~ ~ I '"G K366/K367 B. C. ·(E.l;jUEST ENABLE S S I ~ K362/363 tEQUEST ~ DATA;JG ~ I co MPLETE K302 / WRIT!', YF K303 o 1~-------s!J I ~~ f-----5f----S CLEAH. 0 B. C. .il I r~ ~~ I CUI. '·NABLE BIT 18 I I \ I---ir-------Il-- , I ~I ~ 'r---$\ ; I ~', s r - ~~ ~S ~ ~(; ----.J TERlIILNATE P RECONDITION FF K334/K335 B. C. SERVICES REQUEST FIRST TER11i1'NATE K 336/K337 BUFFER CYCLE 0U--0x-EXT. 1ST REPLY REPL" (PREPARE TO TERMINATE) ~~ 2ND REPLY REQ. B. C. & ACTIVA TE WRITE 0 _ 0 x_EXT (FAST I/O EQUIP. B. C. SERVICES REQUEST ~~_EXT ~ 3RD REPLY REQ. B. C. 0-0-EXT I B. C. SERVICES REQUEST BEFORE NEXT REPLY (SLOW 1/01 I ~ K302/K303 WRITE F. F. 1 sUP. W. M. FF K 320/K3 21 B. C. REQ. FF K332/K33 I ~ " ~ S ~ B. C. REQ. ~ K3 62/K31l3 ~ I S I l, j S I ~ "".,.., F.NAFlLE lOR 6/K367 ASSY/DSSY K304/K305 I AOOOI AOOI I FloOO/FlOOI ~ I t"' I I DATA SIG. PRECONDlTION FF K342/K343 I DATA SIG. I FF K344/K345 K36S/K369 ° 1 LOADED FF K340/K341 GATE BUS _ ¢ ~ GATE 0u_ ¢ x (0x_ T STAcrIC) GATE ¢l-¢x ( ¢ x - T STATIC) I S ~ f __ L. I ~ ~ I r WORD MARK SIGNAL S (J WRITE SIGNAL DATA SIGNAL I TERMINATE PRECONDlTI ON Fl' K334/K335 TERMINATE FF K336/K3 37 S REPLY 4TH REPLY 0u-0x----- EXT 5TH REPLY 01-¢X-EXT (PREVENT B. C. REQ.) 6TH REPLY TERMINATE Controller INPC H = 0 Controller INPC H= 1 I\ Zeros C I C 33060 C I C DB R 1 Memory 2 3 1 Controller INPW N= 0 3 12 1 2 3 Controller INPW N=1 C C t 33060 1 DBR 0 2 11 Memory 0 C 3 2 C C 0 1 2 3 f Memory 2 1 C DBR 2 1 c 3306 0 C 3 Figure 137. 424 2 1 0 C --===}2 ~ 0 1 I 33060 , Zeros o C ::; 0 1 3306 Forward (73 OR 74) Data Flow 2 3 H=O OUTC OUTC storage Storage 0 DBR DBR 1 0 3 2 ~~ ~r ~ Zeros C C i Controller Zeros DBR] 2 3 J2 C C C C C C 33060 Zeros Controller C N=O OUTW Storage 1 0 1 "1------ DBR DBR 33060 OUTW Storage H=l 2 3 ~2 C N=l 0 1 2 3 0 1 2 3 C C DBR C 33060 33060 C C Controller I Controller C C C C Figure 438. 3306 Forward (75 OR 76) Data Flow 425 INPC INPC H = 0 H=l Controller Controller 6 bits 6 bits 6 bits 6 bits 3307 0 33070 0 2 1 1 0 3 2 First 3 Last DBR DBR 0 1 2 0 3 1 2 0 3 INPW 2 3 1 2 3 1 Memory o 1 INPW N=O N=l Controller 1- - 6 bits 6 bits I I Controller - - - - - - -- 24 bit possible 6 bits 6 bits I- - - - - - - - - - ~ 3307 0 0 1 2 3307 0 3 DBR 1 2 3 I Memory 0 1 3 Figure 439. 426 0 1 2 3 1 2 3 1 Memory 2 3 t DBR 0 2 1 0 0 3307 Forward (73 OR 74) Data Flow N=l OUTW Storage Storage 1 0 2 3 t DBR 1 0 3 t 1 0 ControHer - - 1 -- - - 0 1 2 3 0 1 2 3 0 1 2 3 DBR 2 33070 I N= 0 OUTW 33070 2 3 I -- * 1 2 Control ler I I I 24 Bit Possible C C C C 2 3 --------- OUTC Storage H=l OUTC Storage 1 0 2 1 DBR Zeros 33070 Zeros Zeros * Zeros 3 2 C C Controller C Figure 440. =0 1 0 DBR C * t H Zeros C 33070 C Zeros Zeros C Controller C Zeros C 3307 Forward (75 OR 76) Data Flow 427 Table 31. BIDIRECTIONAL SIGNALS SIGNAL DEFINITION Data bits Lines which carry data are bidirectional and perform as follows: 1. During a read (input) operation, data is transmitted from the external equipment to the channel. 2. During the write (output) operation, data is transmitted from the channel to the external equipment. 3. The connect code and function code are transmitted from the channel to the external equipment via the 12 data lines. Parity bit A parity bit accompanies each 12 bits transmitted between the channel and external equipment. Odd parity is used, so the total number of l's transmitted is always an odd number. Parity bits accompany the connect code, the function code, and each 12 bits of data. Table 32. SIGNALS FROM CHANNEL TO EXTERNAL EQUIPMENT SIGNAL Connect DEFINITION A 1 signal sent to external equipment when 12 -bit connect code is available on data lines. If the equipment is available, it connects and returns the reply signal. If it is not available, it returns the reject signal. The connect signal and code drop when the external equipment returns the reply or reject. A channel may have a maximum of eight external equipments attached to its set of I/O cables. Eight equipments receive the 12 -bit connect code and the connect signal but only one equipment (the one which has an equipment number switch setting matching the upper three bits of the connect code) will respond. (The other equipments do not return reject signals.) No response is returned by any of the equipments if the connect code contains a parity error; however, the transmission parity error indicators on all equipments will light. After 100 usec delay the channel generates its own internal reject. A connect code does not initiate action; it merely selects an external equipment. The upper three bits of the connect code select one of the eight possible equipments attached to the channel, and the lower nine bits specify the unit(if any) attached to that equipment. A connect code matching its equipment number switch setting will be accepted by an equipment if it is available, although it may be in the not reply condition. The connect code will be rejected only if the equipment is already connected to or reserved by another channel or is otherwise not available. The equipment will, however, enable its status lines to the channel which attempted to connect, so that the reason for the re ject may be determined by using the copy status instruction. The status lines remain enabled to that channel until it transmits another connect code to any of its external equipments. Once an equipment is connected to a channel, it remains connected until the channel initiates a disconnect. Any connect code which does not match its equipment number switch setting will disconnect the equipment, including its status lillei. Th.e -e.quilJmcnt ,must be ,-c flp.2.blc, o,f recognizing the corle [tr~ di~sl::,onr£rting less than 1 usec after receiving the connect signal. During selection the equipment must not return a reply or reject sooner than 2 usec after receiving the connect signal. 428 Table 32 (continued) SIGNAL DEFINITION Function A 1 signal sent to external equipment when 12 - bit function code is available on data lines. If the connected equipment is capable of executing the specified function when it receives the function signal, it initiates the function and returns the reply signal. If the equipment cannot perform the function, it returns the reject signal. The function signal and code drop when the external equipment returns the reply or reject. The 12 -bit function code and function signal are received by the equipments attached to the channel, but only the connected equipments will respond. If no equipment is connected, the function signal and code will be completely ignored. After a 100 usec delay the channel generates its own internal reject. The specified function will not be performed if a parity error exists on the function code; however, a parity error signal is returned by the connected eqUipment. Also, the transmission parity error indicator on the connected equipment will light. Once a function code is accepted, all other function codes will be locked out until the first one is acted on. An equipment does not hold or stack up the function codes; a reply or reject is returned immediately. If the second function code received is identical to the first, the second function code will be rejected unless the function can immediately be performed a second time. Channel busy Static 1 signal sent to external equipment while data channel is active during a read or write operation. When the processor initiates the read or write operation the channel busy signal becomes 1 immediately and remains up until the operation is finished and no further operation is specified. It does not drop when an end of record signal is received unless the end of rec0rd actually terminates the operation. When the channel busy line goes to 1 the connected equipment immediately becomes busy (status response bit 1) unless it is already busy or is not ready. If the equipment is still busy from a previous operation, it finishes that operation before beginning the new operation. The equipment does not become busy if it is not ready; however, if the equipment becomes ready while the channel busy signal is up, the equipment will become busy. Read Static 1 signal directing the connected equipment to begin reading information from its storage medium and to continue as long as the read signal is present. The read operation always starts at the beginning of a record. If the read signal drops before the complete record is read, data transmission stops but the external equipment continues its action until the end of record is reached. If the read signal drops and comes back up within a record, data transmission stops and does not begin again until the beginning of the next record. Write Static 1 signal directing the connected equipment to begin writing information into its storage medium, and to continue as long as the write signal is present. The write operation always starts at the beginning of a record. Each time the write signal drops, pxternal equipment automatically ends the record. Data signal A 1 signal used during read and write operations. Data signal drops when reply (or end of record) is received from external equipment. 1. During a read operation the data signal indicates that the channel is ready to accept data from the external equipment. 2. During a write operation the data signal indicates that the channel has placed output data on the data lines. 429 Table 32. (continued) DEFINITION SIGNAL Word mark A 1 Signal sent to external equipment coincident with the data signal to indicate the last byte of the computer word. The word mark drops when the data signal drops (on receipt of reply or end of record). Master clear A 1 signal from the 3304 which returns channel and external equipment to 0 initial conditions and disconnects external equipment. Initiated by console EXTERNAL MC or keyboard MC switches. Com puter running Static 1 when computer is running. Suppress assembly / disassembly A 1 signal to the controller to force single character data transfers (73 + 75) Clear external interrupt A 1 signal initiated by INCL instruction and transmitted by channel. Not used by Control Data peripheral equipment. Sample status time A 1 signal transmitted by channel while it is gating external status to sense lines. Not used by Control Data peripheral equipment. (H = 0). Table 33. SIGNALS FROM EXTERNAL EQUIPMENT TO CHANNE L SIGNAL DEFINITION Reply A 1 signal produced by external equipment in response to a connect, function, or data signal. Signal drops when connect, function, or data signal drops. 1. If connection can be made when connect signal is received, external equipment connects and returns a reply. 2. If specified function can be performed when function signal is received, external equipment initiates function and returns a reply. 3. During a read operation, external equipment sends a reply as soon as it has placed data on the data lines in response to the data signal. During a write operation, external equipment sends a reply as soon as it samples the data lines in response to the data signal. (If end of record is reached during a read operation, the reply is not returned in response to the data signal. Instead, the external equipment transmits the end of record signal.) Reject A 1 signal produced by external equipment in response to a connect or function signal if the connection cannot be made or the function cannot be performed at the time that the external equipment receives the respective signal. End of record A 1 signal produced (instead of reply) in response to the next data signal following the end of every record during a read operation. The end of record signal drops when the data signal drops. If the read signal drops before end of record, neither the end of record signal nor the remaining data in the record is transmitted although the external equipment continues its action to end of record. (This applies even though the read signal may have dropped and come back up again within a record. See definition for read signal.) Records of data written on magnetic tape are separated by blank spaces called interrecord gaps. In the case of punched cards, each card is a record. Parity error A 1 signal produced if channel does not send an odd number of l's in 12 bits plus parity bit. (A parity bit accompanies each 12 bits. The external equipment checks the 12 -bit portion and if there is an error it sends the parity error signal.) The following events occur when a parity error is detected. 1. Parity error on connect code: a. No equipment will connect. b. Any connected equipment will disconnect. c. No equipment returns a reply or reject. d. No equipment returns a parity error signal. e. The transmission parity error indicators on all equipments attached to the channel will light. 2. Parity error on function code: a. Nothing happens if no equipment is connected. b. If an equipment is connected, the following occurs: 1) It returns a parity error signal. 2) Its transmission parity error indicator will light. 3) It does not return a reply or reject. 4) It does not perform the function. 3. Parity error on data during write operation: .a. Nothing happens if no equipment is connected. b. If an equipment is connected, the following occurs: 1) It returns a parity error signal. 2) Its transmission parity error indicator will light. 3) It uses the data. 4) It returns a reply. 431 Table 33 (continued) SIGNAL Status bits DEFINITION The external equipment indicates its operating conditions by placing information on the 12 status lines. Each equipment has its own particular set of status response codes, some of which are unique to that equipment. However, several status indications are normally common to all equipments and therefore occupy the same bit positions in the status response codes for all equipments. Ready (bit 0 = 1) An equipment is ready if, when properly connected, a read or write signal can initiate a read or write operation. Conversely, equipment is not ready if, when properly connected, a read or write signal cannot initiate a read or write operation. Once ready, an equipment remains continually ready until operation is no longer possible; it then becomes not ready. An equipment cannot become not ready while it is actually transferring information; information transfer must first be halted. Any equipment which requires manual intervention in its nonnal operation (such as loading tape, cards, paper, etc.) is provided with switches to put it in either a manual mode or a computer controlled mode. When in the manual mode the equipment is not ready. An equipment that has become not ready because of the need for manual intervention automatically goes into manual mode. It becomes ready again only after it has been attended to and manually switched back into the computer controlled mode. Busy (bit 1 = 1) Any equipment is busy when it is in operation. The equipment becomes busy immediately on initiation of the read or write operation. Normally, an equipment remains busy until it has finished all activity and is ready to perform another operation; it then becomes not busy. However, an equipment will become not busy if a condition arises due to which the equipment can no longer continue the operation. (An example of such a condition is becoming not ready because of running out of cards, paper, etc. An equipment cannot be busy if it is not ready.) Error (bit 10 = 1) This signal indicates information errors produced and detected by the external equipment. It does not indicate parity errors on information received from the channel; the parity error line is reserved for this. It is not an indication of malfunction such as paper tearing or printed circuit card failure. If a read or write operation includes more than one record, the error bit is not cleared between records, but will indicate an error anywhere in the operation. The error indication is cleared by beginning a new operation. Reserved (bit 11 = 1) This bit is used by multichannel peripheral equipment to indicate that the equipment is reserved by one of the channels to which it is attached. Once a multichannel equipment has been connected by a channel, it remains reserved by that channel even though the operation may terminate, the equipment may become not busy, and/or the channel may connect another equipment. No other channel can communicate with the equipment until the first channel releases the reservation. This may be done using a master clear switch, the clear channel instruction, or by issuing the appropriate function code. 432 Table 33 (continued) SIGNAL Interrupt lines DEFINITION A 1 signal on an interrupt line indicates that an external equipment has reached a predetermined condition. A channel may communicate with a maximum of eight equipments and each equipment uses one interrupt line An interrupt signal may be dropped by reselecting the same selection or by clearing the selection. Each equipment has a set of conditions on which it will interrupt, if selected. Some of the interruptable conditions are common to all equipment and are described below. 0 Interrupt on End of Operation With this selected, interrupt will occur the next time an operation ends . The operation may be in progress at the time of the selection or it may be initiated later. Interrupt will not occur from an operation which has ended before the selection is made. Interrupt on end of operation can occur both at the end of an I/O read or write operation and at the end of an operation specified by a function code. If a function code is accepted to initiate an operation that is already completed, an end of operation interrupt will occur, if selected. An example is a function code to rewind tape when tape is on load point. Normally, the end of operation interrupt for a read or write operation will occur when all data has been transferred, the channel busy signal has dropped, reading or writing of the current record is completed, and all error checking is completed. In some cases, this interrupt may occur before the equipment becomes not busy. If for any reason (such as becoming not ready) the equipment is unable to continue the activilY, the equipment will end its operation and interrupt will occur. Interrupt on Abnormal End of Operation This directs the external equipment to interrupt if an operation ends under circumstances other than normal, such as becoming not ready or detecting an error. The operation may be in progress at the time of the selection or it may be initiated later. Interrupt will not occur from an operation which has ended before the selection is made, even though it may have ended under abnormal circumstances. However, if the equipment has become not ready before the interrupt is selected, an attempt to initiate another operation after the selection is made will cause the equipment to interrupt immediately. The equipment does not send the interrupt signal while information is being transferred. All activity and information transfer are stopped at the most consistent point (such as at the end of the current record); then the interrupt occurs. Automatic stopping on an error takes place only when this interrupt is selected. Interrupt on Ready, or Interrupt on Ready and Not Busy This interrupt indicates that the external equipment is ready to start a new operation. It is often used to indicate the completion of any manual intervention. 433 SELF -EVALUATION QUIZ ON CHAPTER 16 TRUE OR FALSE OR FILL IN THE BLANKS: 3307s may be used in a sys- 10. The end of record signal may terminate an input but not an output. 2. A channel clear will cause the channel to appear busy. 11. The communications modules check parity for every data transfer on a write operation. 3. The 3306 is a -bit data channel and the 3307 is a -bit data channel. 12. The 3307 is a truly independent buffer channel. 1. A maximum of tern. 4. The communications modules have direct access to the S bus. 5. The DB register has the capability of generating two parity bits to facilitate operations on the 24 -bit data channels. 6. The 3307 has assembly jdisassembly capabilities. 13. During a write operation the write signal pulses with the data signal. 14. On 24 to 6 write operations work mark accompanies each data transfer. 15. When doing a 12 to 24 operation with the 3307, block control will be requested for each data transfer. 7. The communications modules ignore word count control on output operation. 8. The communications modules will generate an internal reject if no response is received from the external equipment during a read or write. 9. The no response reject will occur 100 usee after a connect or function if no reply. is received. ·134 Score Yourself: None wrong is perfect, superior work One wrong is above average. Two wrong is average. Three or more wrong is below average. APPENDIX A ANSWERS TO QUESTIONS IN VOLUME II CHAPTER 4 Page 122, Self-Evaluation Quiz 1. False 11. False 12. False 2. True 13. 3 bit 3. False If False 14. True "7. 15. False 5. False 16. True 6. True 17. True 7. True 18. True 8. True 19. False 9. False 20. False 10. False CHAPTER 5 Page 146, Self-Evaluation Quiz 1L False 1. True 12. 128 2. False 13. 2 x 24 x.64 3. True 14. False 4~ 5 15. False 5. True 6. False 16. True 17. False 7. True 18. 12 8. True 9. True 19. True 10. False 20. True CHAPTER 6 Page 171~ Self-Evaluation Quiz 1. False 9. True 2. False 10. True 11. False 3. True 4. False 12. True 13. F354 5. True 6. False 14. False 7. True 15. False 8. True CHAPTER 7 Page 192, Self-Evaluation Quiz 1. False 9. False 2. True 10. True 3. False 11. False 4. True 12. True 5. False 13. False 6. True 14. False 15. False 7. 1112 8. EXX2, character, word Page 204, 1. False 2. False 3. True 4. True 5. False CHAPTER 8 Self-Evaluation Quiz 6. True 7. False 8. True 9. False 10. True CHAPTER 9 Page 217, Self-Evaluation Quiz 6. True 1. True 2. False 7. True 3. False 8. False 4. False 5. True 9. False 10. False CHAPTER 10 Page 234, Self-Evaluation Quiz 1. True 9. False 2. False 1{}. True 3. True 11. True 4. True 12. True 5. False 13. True 6. True 14. True 7. True 15. False 8. True CHAPTER 12 Page 298-, Self-Evaluation Quiz 1. True 10. True 2. False 11. True 3. True 12. True 4. True 13. False 5. False 14. False 6. False 15. True 7. Depends on which 16. False load instruction is 17. True executed 18. False 19. True 8. False 20. True 9. True CHAPTER 13 Page 348, Self-Evaluation Quiz 1. 3310, 4 11. True 2. 58, 57, 60, 63 12. Divide step, SWAP, 3. False complement 4. K804/805 (optional 13. 618 arithmetic busy) 14. True 15. False 5. True 16. False 6. False 7. True 17. False 18. True 8. True 9. True 19. False 10. True 20. K872/873 (add exp 2) CHAPTER 14 Page 363, Self-Evaluation Quiz 1. Abnormal Interrupt, 5. True normal interrupt, 6. True trapped instruction 7. True interrupt 8. True 2. True 9. False 3. False 10. True 4. False A-I Page 386, 1. 2, 27, 2. True 3. True 4. False 5. True 6. False 7. False 8. False CHAPTER 15 Self-Evaluation Quiz 64: 9. False 10. True 11. True 12. True 13. True 14. True 15. False CHAPTER 16 Page Self-Evaluation (}uiz 1. 4 9. True 10. True 2. True 3. 12, 24 11. False 4. False 12. False 13. False 5. True 6. True 14. True 7. True 15. False 8. False
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Create Date : 2004:09:10 22:58:24-07:00 Modify Date : 2018:05:07 14:29:13-07:00 Metadata Date : 2018:05:07 14:29:13-07:00 Producer : Adobe Acrobat 9.0 Paper Capture Plug-in Format : application/pdf Document ID : uuid:814e6ef9-e2d8-7449-a9af-130f9f62869f Instance ID : uuid:e9ed07d8-b86d-0d4f-9bd3-8fbf71050359 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 389EXIF Metadata provided by EXIF.tools