Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Architecture Assembly Language

Similar presentations


Presentation on theme: "Computer Architecture Assembly Language"— Presentation transcript:

1 Computer Architecture Assembly Language
Computer executes a PROGRAM stored in MEMORY. Basic scheme is - DO FOREVER: FETCH an instruction (from memory). EXECUTE the instruction. This is the FETCH-EXECUTE cycle. More complicated in REAL machines (e.g. interrupts). FETCH EXECUTE

2 Block Diagram of a Computer
CENTRAL PROCESSING UNIT (CPU) MEMORY INPUT-OUTPUT (I/O)

3 Refined Block Diagram MEMORY INPUT-OUTPUT (I/O) DEVICE CENTRAL
PROCESSING UNIT (CPU) MEMORY INPUT-OUTPUT (I/O) CONTROL 32 / ADDRESS DATA DEVICE

4 Data path Contains: registers, program counter,
ALU, and address/data interconnections or BUSes.

5 Registers (Accumulators)
Basic operations: WRITE and READ. Important properties: WIDTH (in bits) and ACCESS TIME. Sometimes - other operations possible (e.g. shift, compare, increment, mask). Most CPUs have 1 to 32 registers. CNTRL REG 2k-1 ADDR 1 OUT 1 REGISTER FILE . ADDR 2 OUT 2 ADDR 3 IN REG 0

6 Flags Each FLAG represents a BIT of important information:
MACHINE STATUS (error, interrupt, mode) COMPUTATION STATUS (carry, overflow, zero, sign) Usually also ``packed'' into a special ``register''

7 Arithmetic Logic Unit (ALU)
Performs actual computations: Arithmetic (add, subtract, multiply, negate) Logical (bitwise or, and, invert) Example: bitwise and 1 OPERAND 1 / W W OUT / OPERAND 2 / W OPERATION SELECT (CONTROL)

8 Instruction Sequencing
Instructions usually fetched from consecutive memory locations. Use ``incrementer'' to advance PC Except for JUMP, CALL, or INTERRUPT. PC TO BUS INTERFACE MUX +m

9 Bus Interface Data Interface Address Control BIU 32
MMU To the Cache Internal Bus 32 BIU To the Prefetch Unit Microprocessor System Bus To the CU

10 Control Generates control/timing signals
Selects OPERATIONS performed in: ALU - select function Register file - which to read, where to write Program counter - advance or jump? Bus control: memory address from where? Read or write? Interrupts

11 Performance Timing is based on a CLOCK CYCLE or FREQUENCY (e.g. 4GHz). Every action takes 1 or more clock cycle. Main memory access usually more than 1 cycle - memory ACCESS TIME is critical! EXECUTION contains several steps - may require MEMORY ACCESS. Performance depends heavily on: How many instructions to execute program or function? How many cycles per instruction? Thus, PERFORMANCE ENHANCEMENTS: instruction prefetch, cache, pipelining, etc. V t

12 Programming in Assembly Language
ASSEMBLY LANGUAGE is (almost) 1 to 1 with MACHINE CODE Assembly language constructs are: Symbolic version of machine instructions Labels (standing for constants and memory addresses) Pseudo-operations ASSEMBLER converts program to object file in 2 passes: Pass I: translate symbolic instructions into binary code, create SYMBOL TABLE of labels. Pass II: translate labels into (relocatable) addresses, fix binary code, and create object file with relocation information.


Download ppt "Computer Architecture Assembly Language"

Similar presentations


Ads by Google