Computer Architecture Flashcards

1
Q

What is a computer? What does a computer do?

A

Computer: A programmable electronic device that can store, retrieve and process data.
Can: Access input
Process data
Store data
Retrieve data
Produce output

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the components of a Computer? (Computer System)

A

Computer: Hardware, Software, and Device Drivers
Computer System: Hardware, software, peripherals

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the shell model of a computer system from inside to outside?

A

Applications/brower
Operating system
Device Drivers
Hardware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the components of computer hardware

A

CPU, Memory, Storage, Input, Output, Communications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the details of Memory in Computer Hardware? What does it do? What are the types?

A

RAM (random access memory)
ROM (read only memory)
- First instruction for CPU for where fetch
-BIOS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the two main categories of system storage? What’s included in each category?

A

Primary (fast but small and expensive)
-Registers, cache, main memory
Secondary (slow but large and cheap)
-Hard disk, SSD, DVD-Rom ect.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are storage devices

A

Hard disk, SSD, Flash Storage, DVD DVD-ROM, DVD-RW

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a Bus? What does it do? How are different types of buses distinguished and what are some examples?

A

Bus is a large # of parallel wires (Devices are electrically connected using multiple wires. Ex. CPU, Memory, Video Controller, Keyboard)
Bus is used as a bit highway to transmit binary information (data, address, control signals)
Each bus as a unique location accessed with an address Ex. Data bus, control bus, address bus

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a Chipset? What components does it have?

A

Components shared between subsystems. Has a North and a South Component .
North: Memory control hub and has graphics card
South: control input output and cables leading off-board

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What steps of the fetch-decode-execute cycle

A

RAM: fetch (step 1)
CPU: decode (control unit) (step 2)
CPU: execute (arithmetic/logic unit) (step 3)
RAM: execute/store (step 3)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does the fetch-decode-execute cycle work?

A

-Machine instruction is FETCHED from program memory.
-Instruction is the DECODED to determine it’s meaning.
-actions indicated through the decoding are ExECTUTED
-the cycle is driven by a series of CLOCK PURLSES (timing signals), where each pulse marks START of the fetch-decode-execute cycle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What do device drivers do?

A

Device through which hardware and software components communicate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a register and what are the two categories of registers? How many GP registers does our processor for the course have and how large are they?

A

Registers: Temporary storage for cpu
-General purpose registers
-Other (status, ect.)

In course, use 32 general purpose registers, each are 8 bits large

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

how long does RAM take to access memory from different places?

A

The same amount of time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a clock/timing signal

A

A periodic timing signal whose period is called a cycle (on/off cycle)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is pipeline instruction? What is a None Pipeline? How would a pipeline instruction affect the fetch-decode-execute cycle in terms of clock cycles?

A

Pipeline: When you are fetching multiple instructions. None Pipeline: When you are fetching one instruction.
Frequency: The numbers of cycles in a single second
In one cycle, fetch and decode will run, the in next cycle previous code will be executed and next instructions will be fetched and decoded

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

How does the fetch, decode, execute cycle fit into one clock cycle?

A

One clock cycle: Fetch, decode and execute

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is processor speed? What is frequency?

A

Processor speed: the frequency each processor operates at
Frequency: The numbers of cycles in a single second

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What doe the CPU/Processor do and what are it’s main components?

A

Coordinator of every computer system.
Controls most aspects
Processes data in small units
Performs arithmetic and logical operations
Stores and retrieves data from memory
Controls peripheral devices

Consists of:
Control Unit
ALU
Registers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does the control unit do? What system is a part of?

A

Part of CPU.
Decides what CPU components are to be used next
Keep track of current instruction it is executing, so executes instructions sequentially, fetches next instruction to execute.
Instructs ALU to perform add, multiply, AND, etc.

Loads data from main memory (RAM) into register
- Store data from register into main memory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is the ALU? What system is it apart of?

A

Arithmetic Logic Unit. part of CPU
-is sent data from control unit
-Adds/Subtracts/Divides/And/Or/Not
-Executes instruction contains circuitry for integer, floating point, and logic operations
Ex. Add, subtract, compare two numbers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the Registers? What system is it apart of?

A

Part of CPU
Very fast temporary memory inside the CPU
-Data needs to be brought to register from memory
Designed to use with instructions current;y being performed
Golds operands used by current ALU operations and holds the results
-Registers have multiple caches available for info (expesive and fast)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

what is the order of systems that the CPU checks for data?

A

CPU checks registers cache, then next cache ect.
If not there check RAM
If not there check memory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

How is memory normally organized (ie. in what form is it stored and accessed?)

A

Organized as a sequence of bytes or words, and accessed by address

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Where are instruction addresses normally stored? What changes after fetch?
in the PC (program counter) or IP (instruction pointer). After fetch PC/IP is updated to address of next instruction
26
What is memory mainly used for? What is the difference between Von Neuman Architecture and Harvard architecture?
Contains code of running program and contains data for running program. Von Neuman: Same memory is used for code and data Harvard: Code is one memory system, Data is a seperate memory system
27
What is memory heirarchy? What is the memory heirachy for search for a piece of data in computer hardware?
Memory hierarchy: Levels of fast and slow speed memories data is moved between to improve performance. First CPU checks cache for info, if it can't find it then checks Main Memory RAM, then checks hard drive/ssd
28
What are the two categories of primary storage and what is it's purpose? What is the main drawback of primary storage?
Cache and Main memory (RAM). Where data and instructions are stored when currently in use typically volatile (contents disapear when computer is turned off)
29
What are the differences between ROM vs RAM? What type of memory is RAM?
ROM: Read only memory -Non-volatile -CPU can look at any location at same speed, but can't modify (BIOS) RAM: Random Access Memory -CPU can look and change arbitrary values at same speed RAM is also called Main Memory
30
What is secondary storage? What is a feature of it and a drawback? What is an example?
Where data and instructions are stored outside primary memory Non-volatile and larger, but much slower than RAM/Primary storage Ex. SSds, installed harddrives ect.
31
How do you convert Binary, or octal, or hex to decimal? What numbers do each hex letter represent?
Binary to decimal by multiplying each binary digit (starting on the right) by increasing powers of 2 (2^0, then 2^1 and so on), then add them together Hex: A=10 B=11... F=15
32
What base would 072155 be in? What about 0x470?
1. Octal (represented with 0 or 0o) 2. Hex (represtned with 0x or $)
33
What is 1111 in hex? What is $B in binary? What is 1000 in decimal?
1111 is F in hex (15 in decimal) $B is 1011 in binary (11 in decimal) 1000 in decimal is 8
34
How do you convert from binary to octal or hex? How do you convert from octal or hex to binary?
From binary to octal or hex, make groups of 3 (or 4 for hex) of binary digits starting from the right, then change each binary sequence to the correct digit in hex/binary, and smush together From hex/octal to binary, change each hex/octal digit into it's correspondning 3/4 digit binary sequence
35
How do you convert from decimal to octal or hex or binary?
Repeated division. Divide decimal number by base digit you are converting to (2,8,16), then calculate the remainder (or for binary, whether remainder is 0(=0) or not(=1)), take said digit and form new number from right to left, continue diciding unil quotient is 0, then add extra zereos if needed
36
What is a bit? What is the least signifigant bit and most signifigant bit? What is a set of four bits called? Eight bits? 16 bits? 32?
bit: a binary digit four bits: nibble eight bits: byte sixteen: word thirty-two: double word Least signifigant bit: rightmost bit Most signifigant bit: leftmost bit
37
What is the change sign rule? Why is two's complement better than one's complement? What do they both do to a number?
Change sign rule: Find rightmost bit that is 1, then flip all bits left of that bit. One's complement is bad bc it has two zeros. Both are used to get a negative version of a binary number NOTE if binary number is less than 8 digits, add zeros at the begginging first for twos complement
38
What dos a NOT operation do to binary numbers? What is the symbol to represent it?
Inverts the digit of a bit (also a complement) ex. a = 0, NOT a = 1. Represented with a' or a with line on top
39
What dos a AND operation do to binary numbers? What dos a OR operation do to binary numbers? How are they both represented symbolically?
AND: result is true only is both operands are true (aka conjunction) ex. If a = 0, b = 1, a AND b = 0. If a = 0, b = 0, a AND b =0. If a = 1, b=1 a AND b = 1. Represented by ab or a*b OR: result is true if AT LEAST one operand is true (disjunction) ex. a=0, b=0 a OR b= 0. a=1,b=0 a OR b = 1. a=1,b=1 a AND b = 1. Represented by a+b
40
What dos a XOR operation do to binary numbers? How is it represented symbol wise?
XOR: result is true if EXACTLY ONE operand is true(exclusive or) ex. a=0, b=0 a OR b= 0. If a=1,b=0 a OR b = 1. a=1,b=1 a AND b = 0. Represented with a + b but there is a circle around the +
41
What does a NAND, NOR and XNOR operation do to binary numbers? How is it represented symbol wise?
NAND: true if a and b are BOTH not true NOR: true if NEITHER a or b are true (both are false) XNOR: true if BOTH a and b are true or BOTH a and b are false All represented the same as positive counterparts but with a line above them
42
What boolean operator is used for binary addition? What is important to note when using it for adding?
XOR. With it we don't carry the 1 when addong
43
What are masks? What are the used for? What boolean operation uses them and for what cause?
Masks are used to tell if certain bit/bits is true or false by creating another byte which will set every other value to 0 (ie. 0b10101010 mask of 00001000 to check 5th bit) Uses AND opperation on both original byte and mask byte, and result is selected bit
44
What is a bit shift operation? How is it done? What is a bit rotate operation? How is it done?
Bit shift: Shift value (1 or 0) over to the right/left by x positions (ex. 1000 shifting right 1 would be 0100). Use 0 for empty spaces Bit Rotate: Take last bit and move it to the front of binary number, continue for however many x's you are rotating by (ex. 11100101 rotated left by 3 is 00101111)
45
What is a AND 0 used to do? What is a OR 1 used to do? What is a XOR 1 used to do? What is a XOR a used to do?
a AND 0 is 0: force a bit to false a OR 1 is 1: force a bit to true a XOR 1 is NOT a: used to toggle bits (i.e., flip or invert) a XOR a is 0: reset bits
46
What bolean operation is used to set specific bits to true and how? Who about for flipping/toggling select bits?
OR to set specific bits true. Make masks with 1's in poitions that you want to set to 1, then original byte, after using OR operation will have those values set to 1 XOR to flip certain bits. Also make mask of bits you want to flip
47
What is big endian? What is little endian? What are they used for?
They are how bytes stored in memory represent a word/double word Big endian: Store most signifigant byte of word in address, least signifigant byte in address +1 Little endian: Store most signifigant byte of a word in address +1, and least signifigant byte in address
48
What is an assembler? What are the three things a programmer needs knowledge of to write a program with it?
A program that translates from human-readable and writeable machine code into binary files for exectution on computer artchitecture Program needs knowledge of: -Computer's architecture -Computer's ISA -Coding conventions used by assembler
49
How many registers are there in AVR assembly? How many can be used for opperations? What type of architecture is it?
32 registers, last 16 can be used for all operations. It uses Harvward architecture
50
in AVR assembly, what does LDI, ADD, DEC, MOV and RJUMP mean?
LDI: Load value into register ADD: add contents of two registers DEC: reduce value of contents of register by 1 MOV: Move contents from one reigster to another RJUMP: Essentially loop, will jump to following instruction
51
What is the difference between Flash memory and SRAM in Arduino Mega? what are their sizes?
Flash meory: 256 kb -programs code is loaded into flash memory Static random access memory (SRAM): 8kb -Main data memory
52
What is RISC? What are it's downsides and what instruction pipeline does it use? What processor uses it?
Reduced instruction set computer. Has fixed lengt instructions and load store memory access (must use load and store commands). Uses two-stage instruction pipeline (fetch/decode and execute cycles) AVR is one
53
What does a Program Counter do in AVR and when is it changed? What does an instruction register do?
PC: Keeps track of which program we are running and holds memory address of next instruction to be exectured. It is incremented at the end of a cycle Instruction register: When fetch an instruction it is temporarily stored in instruction register until it is done
54
What are microcontrollers? What are some examples?
Computers intended for controling a larger physical device. EX. AVR processor, phones, ovens, dishwashers, cards
55
How many bits long are instructions in AVR architecture? How is this memory addressed?
16 bits long. AKA a word, so the memory is word addressed
56
How many bits are general purpose registers (r0-r31)
8 bits in size
57
How many bits wide is the PC register? What address does it hold?
17 bits wide, must be able to address 280K word addresses. It holds the next instruction to be executed
58
What is encoding?
Step taken by assembler to covert the programers machine code into the equivalent bit sequence for the processor
59
What does the Z flag do?
set if the result from the previous operation is 0 or if two numbers are equal. if true (result is 0) then is set to 1, cleared if result is not 0 otherwiese
60
For the RJUMP instruction, what is the formula used for calulating PC and what value is k?
PC = PC +1 +k k=-1 or FFFF/FFF
61
What does the V flag do?
set if two's complement operation results in overflow
62
What does the C flag do? What abot the N flag?
C set if there was a carry from the MSB of the result, cleared otherwise N set if MSB of the result is set, cleared otherwise
63
What is the BRNE instruction and what does it do? What about BREQ?
BRNE Causes a branch if zero flag is false (result is not zero) example BRNE LOOP will jump to function LOOP if result is 0 (true) BREQ branch on equal to 0
64
What do CP and CPI commands do?
set and clear the 0 flag
65
What is direct addressing? What is indirect addressing? What is abolsute addressing? How do each of them store and access data?
Direct: Stored in register with an address and access through said address. Direct because you directly provide the address. Use LDS and STS Indirect: Value stored in X, can be either static or dynamic. Use X, Y, Z absolute: instruction specifies exact memory location of data it needs to access
66
Values stored in X can be either static or dynamic. What does static mean and what does dynamic mean? Does direct or indirect storage allow these to both be options?
static: known at assembly time dynamic: comuted at run time Indirect
67
When using pseudo registers (ie. X), where is the high byte value stored and where is the low byte value stored? (ex. X, R26:R27, which register holds which byte?)
Even number register holds the low byte, odd umber register holds the high byte
68
STS uses which type of addressing (direct or indriect?) what about ST?
STS: Direct addressing; must have destination address known at complile time ST: indirect addressing; uses address that may be constructed/computer at run time
69
When should we use direct addressing? When should be use indrect addressing?
Use direct when we know the source and destination of data at compile time (ie. which register is source or destination) (eg. LDI, MOV, LDS, STS) Use indrect If the source or destination of data address is only known at run time (eg. LD, ST)
70
Where does the address of internal SRAM start in memory? Where does I/O addresses start and how many registers are there?
SRAM it starts at 0200-21ff I/O registers: 0060-01ff, 64 registers
71
How many bits does each I/O port register have? How many registers does each port have? How are the pins set?
each register has 8 bits/pins, and each port has three registers (direction, input and output) each of the 8 port pins can be set to input or output, useing the direction register to control it
72
What does Memory mapped I/O refer to?
When LTS and STS can be used for all ports (A to L)
73
What are the registers in I/O called and hwat do they do? What is x?
DDRx - determine if a pin is an output or input register and sets to input or output PORTx: configures pin for output and writes 0 or 1 (0=port is used for set to false, 1=port is used to set to true) PINx configures pin for input and writes 0 or 1 (0=port has he value false, 1=port has the value true) x- represents the port (eg. DDA4 is bit 4 of DDR register for port A
74
How does the DDRx register initlaize a port to input or output
Uses a value of 1 at bit n to indicate that pin n is used for output Uses value of 0 and bit n to indicate port is used for input
75
What are the two ways of accessing I/O port registers?
Channels: one channel per port register, only ports A through H. Uses IN and OUT Data-Memory address (form of memory mapped I/O, uses any machine operation that reads or writes to data memory (LDS, STS, LD, ST) All port registers have address (A through L)
76
When using channels in I/O, does port-regster address need to be known at compile time or may it be determined at run time? What about data memory addreses in I/O?
Channels: Port register address must be known at compile time Data memory address: Port register address may be determined at run time (ie. in X, or Y in LD operations)
77
What does K represent in bytes? How would 32k bytes be calculated?
k = 1024 bytes, so 32k = 32x1024
78
What is the formula for calculating address range? What about finding specific address? What baout the formula for counting address lines?
Address range: Last address = starting address + size of memory -1 Finding address r17 = starting address + register number (17) Calclating address lines: 2^n = bytes needed, or log_2(n)
79
What is a Directive in Assmebly?
Directives: Allow program to define constants, set aside memory for variables and define addresses, organize memory Ex. .equ, .db, .cseg, .dseg
80
What does .cseg sections do? What do .desg sections do? What is the thing you are not allowed to do in them and why? Where do you write the main body of code?
.cseg: code segment defintion (informs assmebler that what follows is specific to code section of the program .desg: informs assemble that what follows is specific to data section of the program Can't use registers in either of these as they must be computed at compile time? Can write rest of coe in .org, including references registers
81
How do we represetned if statments in assmebly?
use branches, and functions like "cp" or "tst" cp Rd Rr is same as Rd - Rr but doesn't save answer. tst Rd is test if register is zero or negative Put line right above branch, and branch to function eg. brlo skip (if skip is a function after current code).
82
What do each of these represent?: BRLO, BRSH, BRLT,
BRLO is branch if low (ie. go to detination if carry flag is set) brsh: branch if same or higher (go to destination if carry flag is cleared BRLT: Branch if less than (signed), if signed flag is set then go to destination)
83
How far away can the detinations location be for RJMP to work? How far away can the destinations location be for branches?
RJMP: destinations location must be no more than 2K instructions away from current isnruction Branches: destinatinos location must be no more than 64 instructions away
84
What is program memory vs Data memory?
Program memory: Up to 4M words, actual program memory depends on size of implemented chip's PC (from 16 bits to 22 bits) Data memory: May be up to 64K bytes in size, contains 64K addresses the SRAM use with program data
85
Differences between RJMP and JMP?
RJMP Can only be used for instructions less than 2K away, encoded opcode is two bytes in size, and execution needs two cycles JMP larger range of instructions, opcode is four bytes in size, execution requires four cycles
86
When using the CALL instruction to call a function in your code, where is the current PC value stored? What happens when RET function is called at end of the function?
it is pushed onto the stack, address saved onto stack is the reutrn address. When RET is called, it overwrites the PC with the most recent values saved on the stack
87
As more values are added to the stack, does it grow towards high memory or low memory?
Grows towards low memory as more is added
88
What is a SP, where is it stored, what does it do and where is it initlized?
Stack pointer register, stored in the I/O area. Keeps track of top of the stack, and pointer gets intilized to highest point in memory and gets decremented as stack grows
89
How much storage does one data memory address refer to and in what type of strage? How much stoage does each program memory address refer to and in what type of storage?
Each data memory address referes to one byte of data memory sotage Each program memory address accesess one word of program memory storage (17 bits wide)
90
What is an Implcit operation?
Implcit: Do not need to inform CPU to do the operations, such as CALL and RET which tell the CPU to push addresses without us needing to tell it
91
How does stack size change when a value is PUSHED onto stack, and how does SP change? WHat about for POP?
PUSH: stack size increased by one, SP decremented by 1 POP: Stack size decreased by one, SP incremented by one
92
What is RAMEND? What is initlized/set up there?
RAMEND is the top of SRAM,and where a sack appears
93
How is a stack pointer initized? what is the difference between intilizing it using channels vs using memory?
the correct address is broken into two bytes, the two points are then initlized as low (RAMEND) and high (RAMEND), initlizing stack pointer to point to memory both use ldi r16 low(ramend) and ldi r17 high(ramend). Use SPL and SPH (stack pointer low and stack pointer high) Using channels ldi commands set sp to point to memory, then use out commands to set stack pointer to low value from above and another to set to high value from above. Defined in .org Using memory, ldi commands, then sts CPU commands to set pointer value. These are defined in .equ sections
94
What does .equ do/is used for? How does the rest of the program call/use it? What is the differnece between it and .set?
For setting absolute values to symbols (ie. setting variables) To access variables, code uses LPM (load from program memory to call the variable/assign it .set allows label to be redifined in the same program
95
What are the two ways return values can be saved/constructed?
1. Return value stored in designated general-purpose register 2. Return value placed on stack
96
When using return addresses in a general purpose register, how can you save the value the register otherwise holds?
By storing that register's value in another register, or by pushing it onto the stack before the call and popping it off after the return has been used and the register is free
97
When storing RET return addresses with a stack, what must be done to the stack before storing the address to maintain the rest of the data in it?
Must first POP out exisitng return addresses so stack is empty, then push return address, and then re-push prevous three addresses back,
98
What is a "caller" and what is a "callee"? What other games are they called? What is needed to pass information between them?
caller is a function that calls another function and provides arguments to the function (aka actual paramters), callee is a function that was called uses paramters to obtain values provided by the caller (aka formal parameters) Need paramters to pass information between caller and callee
99
What is call-by-value sematics for paramter passing? What is call-by-reference?
Call-by-value: When the caller's argument (ie. its value) is copied into the callee's paramter. (ie. paramter contains values of our program's quantities) Essentially using and referencing register's directly r17+r18 Call-by-reference: when the memory location of the caller's argument is used as the callee's paramter (ie. paramer contains addresses of memory locations that contain values of our programs quantities) Essentially when using variables that hold data sts A r17, sts B r18 , R17 + R18
100
How are paramter's stored in stacks?
Call by value pushes value on to stack Call by reference pushes address on to stack Callee data is top of stack, caller data is bottom. Uses push and pop
101
What is LDD? What is the stipulation it has? What is Param_offset? What is OUT?
LDD: Load with displacement (load indirect from data space to register using index Y) Can only be used with Y Param_offset: Helps find the start of memory in the stack for parameter values relative to current stack pointer (used with LDD to access variables in the stack without having to push them) OUT: store register content to I/O location
102
What is a stack frame? How does the code treat the stack when inside the callee?
The region of the stack that is specific to the callee's paramters as well as the callee's location Inside the callee code will treat stack as a block of memory holding paramter data. Code will access stack memory using LDD and oddset
103
With a stack frame, how can it be used for location stoage?
Set aside room on stack for local storage by subtracting the needed number of bytes from the stack pointer itself
104
What are ADIW and SBIW? Wich registers do they work with?
ADIW - add immediate to word SBIW - subtract immediate to word Works with last three regieters pairs. Meant for adding or subtracting small constants from psuedo registers
105
What is the code for setting up a stack frame called? What steps are usually needed for this?
Callee prologue code. It's code exectured before the actual code Push register values onto stack for later recovery (callee save registers) Increase size of stack to make room for local variables Update indirect pointer that will be used o access data in stack frame
106
What is callee eipoluge code? What steps happen in this code?
Code for tearing down a stack frame. The code after that which implements the actual algorithm Decrease size of the stack to remove memory set aside for local vaariables Use pop to recover value of any register saved in the prologue
107
How do stack frames work with recursion?
stack frames sit on top of stack frames, and don't need added code as it's in the prolgue and epilogue. Number of live stack frames reflects the recursive call depth