1 / 15

ECE 4110–5110 Digital System Design

ECE 4110–5110 Digital System Design. Lecture #31 Agenda von Neumann Stored Program Computer Architecture Announcements 1. N/A. von Neumann Computer.

Download Presentation

ECE 4110–5110 Digital System Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 4110–5110 Digital System Design Lecture #31 • Agenda • von Neumann Stored Program Computer Architecture • Announcements 1. N/A.

  2. von Neumann Computer • Register Loads- each register in the processing unit can be loaded by the control unit- the input to most registers is Bus2- the CCR input is the ALU- the loads are synchronous to clock and occur on the following state- we can make a register in RTL as follows:MAR_Register : process (Clock, Reset) begin if (Reset = '0') then MAR <= "0000"; elsif (Clock'event and Clock='1') then if (MAR_Load = '1') then MAR <= Bus2; end if; end if; end process;

  3. von Neumann Computer • Control Signals- the Bus1 and Bus2 control lines come from the control unit and drive the multiplexers- the WRITE line is a synchronous load to memory from Memory_Out- CCR_Load will load the status bits (NZVC), whose values depend on the previous ALU operation- the ALU_Sel line tells the ALU which function to perform (AND, ADD, …) • Test Signals- the Instruction Register (IR) holds the Opcode for the Control Unit to base state decisions on- the CCR_Result is the NZVC status bits from an ALU operation and influence state decisions

  4. Control Unit Sub-Operations • Fetch • Get next instruction into IR • PC: program counter, always points to next instruction • IR: holds the fetched instruction Processor Control unit Datapath ALU Controller Control /Status Registers 4 Y PC IR 100 MAR X load X, I/O 100 load X, 101 123 102 ADD X, Y

  5. Control Unit Sub-Operations • Decode • Determine what the instruction means Processor Control unit Datapath ALU Controller Control /Status Registers 4 Y PC IR 100 MAR X load X, I/O Memory 100 load X, 101 123 102 ADD X,Y

  6. Control Unit Sub-Operations • Fetch operands • Move data from memory to data-path register Processor Control unit Datapath ALU Controller Control /Status Registers 4 Y 101 123 PC IR 100 X MAR load X, I/O Memory 100 load X, 101 123 102 ADD X,Y

  7. Control Unit Sub-Operations • Execute • Move data through the ALU • This particular instruction does nothing during this sub-operation Processor Control unit Datapath ALU Controller Control /Status Registers 4 Y 123 PC IR 100 MAR X load X, I/O Memory 100 load X, 101 123 102 ADD X,Y

  8. Control Unit Sub-Operations • Store results • Write data from register to memory • This particular instruction does nothing during this sub-operation Processor Control unit Datapath ALU Controller Control /Status Registers 4 Y 123 PC IR 100 MAR X load X, I/O Memory 100 load X, 101 123 102 ADD X,Y

  9. Processor Control unit Datapath ALU Controller Control /Status Registers Y PC IR X MAR I/O Memory 100 load X, 101 123 102 ADD X,Y Control Unit Sub-Operations PC=100 4 123 100

  10. Processor Control unit Datapath ALU Controller Control /Status Registers Y PC IR X MAR I/O Memory 100 load X, 101 123 102 ADD X,Y Instruction Cycles PC=100 PC=101 4 123 101

  11. Processor Control unit Datapath ALU Controller Control /Status Registers Y PC IR X MAR I/O Memory 100 load X, 101 123 102 ADD X,Y Instruction Cycles PC=100 PC=101 4 127 102 PC=102

  12. Processor Control unit Datapath ALU Controller Control /Status Registers Y PC IR X MAR I/O Memory 100 load X, 101 123 102 ADD X,Y Instruction Cycles PC=100 PC=101 4 127 102 PC=102

  13. von Neumann Computer (again) • CPU 1) Control Unit2) Processing Unit3) Control Signals4) Test Signals

  14. von Neumann Computer • Instruction ExecutionState 0- put the current Program Counter value on the Memory Address Bus to read the first Opcode RTL: MAR <= PC Control: Bus1_Sel = PC Bus2_Sel = Bus1 MAR_LoadState 1- bring in the contents of memory (the Opcode) and put into the IR- increment PC to point at either the Operand or next Opcode in memory RTL: IR <= Memory_Out PC = PC + 1 Control: Bus2_Sel = Memory_Out IR_Load PC_Inc

  15. von Neumann Computer • Instruction ExecutionState 2- the Control Unit now decodes IR- this dictates the next state and which control signals are asserted (IR = ADD_XY) (IR = LDX_IMM) RTL: Z <= X RTL: MAR <= PC Control: Bus1_Sel = X Control: Bus1_Sel = PC Bus2_Sel = Bus1 Bus2_Sel = Bus1Z_LoadMAR_LoadState 3 RTL: ALU = ADD RTL: X <= Memory_Out Control: Bus1_Sel = Y Control: Bus2_Sel = Memory_Out Bus2_Sel = ALU X_LoadALU_Sel = ADD PC_IncX_LoadCCR_Load

More Related