Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Computer Design: Understanding Processing Units and Data Manipulation, Exams of Design

Data ProcessingComputer ArchitectureDigital Logic DesignDigital Electronics

An overview of computer design, focusing on the processing unit and data manipulation. Topics include the structure of a computer, the role of control and datapath, finite state machines, data manipulation operations, and register transfer control. It also covers the concept of arithmetic circuits and memory organization in both Harvard and Princeton architectures.

What you will learn

  • What are the components of a computer and how do they interact?
  • What is the role of finite state machines in computer design?
  • How does data manipulation occur in a computer?

Typology: Exams

2021/2022

Uploaded on 09/12/2022

kiras
kiras 🇬🇧

4.7

(21)

68 documents

1 / 6

Toggle sidebar

Related documents


Partial preview of the text

Download Computer Design: Understanding Processing Units and Data Manipulation and more Exams Design in PDF only on Docsity!             Computer design – an application of digital logic design procedures  Computer = processing unit + memory system  Processing unit = control + datapath  Control = finite state machine  inputs = machine instruction, datapath conditions  outputs = register transfer control signals, ALU operation codes  instruction interpretation = instruction fetch, decode, execute  Datapath = functional units + registers  functional units = ALU, multipliers, dividers, etc.  registers = program counter, shifters, storage registers                                                    Block diagram view                  !     " "  #        $%     &       '        $% () (* (+ (, (- (. (/ (0 ! ) * + , - . / 0 !1    Selectively loaded – EN or LD input  Output enable – OE input  Multiple registers – group 4 or 8 in parallel           Point-to-point connection  dedicated wires  muxes on inputs of each register  Common input from multiplexer  load enables for each register  control signals for multiplexer  Common bus with output enables  output enables and load enables for each register  2  2  2 3, 2  2   3, 4    3,       3% 34 35 6% 64 65 - . / 0 (- (. (/ (0    Collections of registers in one package  two-dimensional array of FFs  address used as index to a particular word  can have separate read and write addresses so can do both at same time  4 by 4 register file  16 D-FFs  organized as four words of four bits each  write-enable (load)  read-enable (output enable)       3 63 57 58 5) 5* 5+ 5, 5- 5. 5. 5/ 50 9$- 9$. 9$/ 9$0    Larger collections of storage elements  implemented not as FFs but as much more efficient latches  high-density memories use 1 to 5 switches (transitors) per memory bit  Static RAM – 1024 words each 4 bits wide  once written, memory holds forever (not true for denser dynamic RAM)  address lines to select word (10 lines for 1024 words)  read enable  same as output enable  often called chip select  permits connection of many chips into larger array  write enable (same as load enable)  bi-directional data lines  output when reading, input when writing       !    "   Example – an instruction to add the contents of two registers (Rx and Ry) and place result in a third register (Rz)  Step 1: get the ADD instruction from memory into an instruction register  Step 2: decode instruction  instruction in IR has the code of an ADD instruction  register indices used to generate output enables for registers Rx and Ry  register index used to generate load signal for register Rz  Step 3: execute instruction  enable Rx and Ry output and direct to ALU  setup ALU to perform ADD operation  direct result to Rz so that it can be loaded into register      # !     $   Data manipulation  add, subtract  increment, decrement  multiply  shift, rotate  immediate operands  Data staging  load/store data to/from memory  register-to-register move  Control  conditional/unconditional branches in program flow  subroutine call and return      %     &     '(      )  Standard FSM elements  state register  next-state logic  output logic (datapath/control signalling)  Moore or synchronous Mealy machine to avoid loops unbroken by FF  Plus additional "control" registers  instruction register (IR)  program counter (PC)  Inputs/outputs  outputs control elements of data path  inputs from data path used to alter flow of program (test if zero)       3  9   :   3 "  "3  4 ; <# 4 <# !    *    Control state diagram (for each diagram)  reset  fetch instruction  decode  execute  Instructions partitioned into three classes  branch  load/store  register-to-register  Different sequence through diagram for each instruction type 9   9 = 2%( 9 = !   4 9=          5  4     5 >5 5  4       >5 +   &'&&$)  Arithmetic circuits constructed in hierarchical and modular fashion  each bit in datapath is functionally identical  4-bit, 8-bit, 16-bit, 32-bit datapaths       /* /* 5 4  ?; $   /* +   &',-.)  ALU block diagram  input: data and operation to perform  output: result of operation and status information       6    7*  '  82)  Step 2           6    7*  '  82)  Step 3         42    Control  transfer data between registers by asserting appropriate control signals  Register transfer notation - work from register to register  instruction fetch: mabus ← PC; – move PC to memory address bus (PCmaEN, ALUmaEN) memory read; – assert memory read signal (mr, RegBmdEN) IR ← memory; – load IR from memory data bus (IRld) op ← add – send PC into A input, 1 into B input, add (srcA, srcB0, scrB1, op) PC ← ALUout – load result of incrementing in ALU into PC (PCld, PCsel)  instruction decode: IR to controller values of A and B read from register file (rs, rt)  instruction execution: op ← add – send regA into A input, regB into B input, add (srcA, srcB0, scrB1, op) rd ← ALUout – store result of add into destination register (regWrite, wrDataSel, wrRegSel)      #   42  '  82)  How many states are needed to accomplish these transfers?  data dependencies (where do values that are needed come from?)  resource conflicts (ALU, busses, etc.)  In our case, it takes three cycles  one for each step  all operation within a cycle occur between rising edges of the clock  How do we set all of the control signals to be output by the state machine?  depends on the type of machine (Mealy, Moore, synchronous Mealy)      % 49 :     /  .  -     93← BC' ← D/' ← 5D45←  4←     "    E       F                 !6 6 5 A   :     5.'(  : )  First pass at deriving the state diagram (Moore machine)  these will be further refined into sub-states           :     5.' 2 ; &)  Assume Moore machine  outputs associated with states rather than arcs  Reset state and instruction fetch sequence  On reset (go to Fetch state)  start fetching instructions  PC will set itself to zero mabus ← PC; memory read; IR ← memory data bus; PC ← PC + 1;              :     5.'2 2)  Operation decode state  next state branch based on operation code in instruction  read two operands out of register file  what if the instruction doesn’t have two operands?        &&  G  9 B/+H/-C9 B-H0C        :     5.'    *  )  For add instruction  configure ALU and store result in register rd ← A + B  other instructions may require multiple cycles             :     5.'22    )  Putting it all together and closing the loop  the famous instruction fetch decode execute cycle                           :     5.  Now we need to repeat this for all the instructions of our processor  fetch and decode states stay the same  different execution states for each instruction  some may require multiple states if available register transfer paths require sequencing of steps      
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved