TP3: Computer Architecture
TP3: Computer Architecture
1. What is the role of a bus in a CPU, and why is it crucial for computer operation?
2. Explain the differences between the CPUs address bus, data bus, and control bus.
3. Research question: How do modern CPUs efficiently manage high-speed data
transfers using bus architectures like PCIe or HyperTransport? (researching question)
4. What are arithmetic operations? Please provide examples of these operations and
describe what they do.
5. What are logic operations? Please provide an example of these operations and
explain what they do.
6. Describe the role of the Accumulator (AC) register in arithmetic and logic operations.
7. What is the purpose of What is the Instruction Register (IR), and how does it help in
executing instructions?
8. Explain how the status or flag register operates and how it aids in decision-making
within the CPU.
9. What is the memory address register, And what is the function of the memory
address register (MAR)?
10. What is the memory buffer register, And what is the function of the memory buffer
register (MBR or memory data register MAR) ?
11. Please explain the instruction below with the flow of smz32v50 (simulator test) (fetch-
decode-execute in smz32v50):
Assume we have:
- First instructions:
MOV AL, 2:
ADD AL, 3:
- Second instructions: - Third instructions:
MOV AL, 2: MOV CL, 4:
PUSH AL: MOV BL, 2:
MOV BL, 2: DIV AL, BL:
MUL AL, BL:
POP AL:
ANSWER
Flow:
1. Fetch: CPU fetches MOV AL, 2 → and stores 2 in AL.
2. Decode: it decodes ADD AL, 3.
3. Execute: and then adds 3 to AL, updating AL to 5.
Second Instructions:
MOV AL, 2 : Load AL with 2
PUSH AL : Store AL in stack
MOV BL, 2 : Load BL with 2
MUL AL, BL : Multiply AL by BL
POP AL : Retrieve AL from stack
Flow:
1. Fetch: CPU loads MOV AL, 2.
2. Decode & Execute: Stores AL (2) in the stack.
3. Fetch: Loads BL = 2.
4. Execute: AL * BL = 4.
5. POP AL: Restores AL from stack (back to 2).
Third Instructions:
MOV CL, 4 : Load CL with 4
MOV BL, 2 : Load BL with 2
DIV AL, BL : Divide AL by BL
Flow:
1. Fetch: MOV CL, 4 → CL = 4.
2. Fetch: MOV BL, 2 → BL = 2.
3. Decode & Execute: AL / BL → AL stores quotient, remainder in another register.