Simple SIC Hardware Organization (Separate I/O:Memory Bus and CPU:Memory Bus)

Simple SIC Hardware Organization (Separate I/O:Memory Bus and CPU:Memory Bus)

Organization Simple SIC Hardware Organization (separate I/O:memory bus and CPU:memory bus) MEMORY INPUT OUTPUT DEVICE (shared data and DEVICE instructions) PCIC CONTROL A Instruction Decode InstructionProgram CoCounterunter X IR L SW Instruction Register Working Registers Status Word (Accumulator, Index, MAR Link) Memory Address Reg Data Path MDR Memory Data Reg CPU Central Processing Unit Communications Link Y Z ALU (Arithmetic and Logic Unit including support registers) Organization Single Bus CPU Architecture for Implementing Simple SIC CPU BUS SW Instr Decoder M M PI I a & A D L X A Y ALU Z C R c Operand R R Address b C C C Address Data Control Lines Lines Lines for ADD, SUB, etc. ---------------- CPU-memory bus Register-Bus Gating A in---- ---- A out (enable) (enable) Data transfer example: Y A A A out, Yin Gating Signals: ICout, ICin, Addrout, IRin, MARin, MDRout, MDRin, A out, A in, X out, X in, L out, Lin, Yin, Zout, Zin Memory I/O control signals: Read, Write, WaitM (Wait for Memory) ALU commands: Add, Sub, Set carry (to 1), ShiftR Y, ShiftL Y, Clear Y, Compare, GT, LT, EQ, NE Organization A full microcode sequence for the ADD instruction to accumulate in A: ICout, MARin, Read, Clear Y, Set carry, Add, Zin Instruction Zout, ICin, WaitM fetch MDRout, IRin Operand Addr out, MARin, Read fetch A out, Yin, WaitM MDRout, Add, Zin Accumulate Zout, A in End Each line of microcode represents those signals which are "on". All others are presumed to be "off". The ALU command "Compare" activates a comparison of the value in register Y against the value from the bus and sets the lead bit of the status word SW to 0 for the case "=" and 1 for the case "¹". If the case is "¹", the next bit is also set, with 1 0 indicating "<" Y and 1 1 indicating ">" Y. This can be used to construct a machine language "compare to A" instruction COMP <addr> to compare the contents of register A against the data at the referenced address, setting the status word. The ALU instructions EQ, LT, GT, and NE operate as follows: For any of SW=1 0 and LT, SW=1 1 and GT, SW=0 - and EQ, SW=1 - and NE, ALU input from line "b" is routed to ALU output "c" and otherwise ALU input from line "a" is routed to ALU output "c"; i.e., LT, GT, EQ, and NE cause either the bus (input a) or register Y (input b) to be routed to the ALU output (output c) depending on the current value in the status word (SW). LT, GT, EQ, and NE allow the construction of conditional branch instructions. The routing patterns are summarized by the following diagram: ALU routing on SW (after Compare) EQ NE LT GT 0 0 Y ® Z bus ® Z bus ® Z bus ® Z = 0 1 Y ® Z bus ® Z bus ® Z bus ® Z 1 0 (bus < Y) bus ® Z Y ® Z Y ® Z bus ® Z ¹ 1 1 (bus > Y) bus ® Z Y ® Z bus ® Z Y ® Z Organization For example, assuming the status word was set by an earlier instruction (such as COMP), a microcode sequence such as "jump on greater than" JGT <addr> which causes a branch (or jump) to the referenced address if SW=1 1 can be constructed. Its format might be as follows: ICout, MARin, Read, Clear Y, Set carry, Add, Zin Instruction Zout, ICin, WaitM fetch MDRout, IRin Set branch Addr out, Yin options ICout, GT, Zin Set branch Z out, ICin End .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us