Shared Flashcard Set

Details

CS 413 Chapter 4
Chapter 4 of "Computer Organization and Architecture Themes and Variations" by Alan Clements, c2014
18
Computer Science
Undergraduate 3
01/24/2024

Additional Computer Science Flashcards

 


 

Cards

Term
Binding
Definition
this is the association of a variable name with a storage location. This can be a register or main memory location.
Term
What is static allocation?
Definition
It is when binding happens at compile time
Term
What is dynamic allocation?
Definition
It is when binding happens at run-time
Term
What is scope?
Definition
It defines the range of the variable's visibility or accessibility within a program
Term
Lifetime
Definition
As programs runs variables will come into existence, be used for a while and go away. The memory can be reallocated to new variables as the program executes. Memory "leaks" happen when memory that is no longer required is not released properly. Too many memory leaks leads to not having enough memory to run the program efficiently. The CPU and OS has to assume you need that memory and manages it that way.

[pare this down once the concept becomes clearer]
Term
What is an activation record?
Definition
A data structure that contains all the information necessary to execute a procedure (function, class or method). This allocation is done at runtime
used for languages that uses dynamic data storage
Also called a frame
Term
Stack pointer
Definition
always points to the top of the stack and is not effected when activation records are created or freed
Term
Frame pointer
Definition
is specific to a created frame (activation record) and point to the address of the base of the current stack frame.
Term
What does it mean if a function is reentrant?
Definition
It means that multiple invocations can run safely concurrently
Term
What does it mean if a function is recursive?
Definition
It calls itself
Term
What does an activation record/stack frame typically contain?
Definition
1. parameters
2. local variables
3. return address
4. Temporary data
5. Control link
6. dynamic link
7. return value
Term
What is Return-oriented programming (ROP)?
Definition
It's a type of attack where the hacker manipulates the call stack. Could overwrite the return address to point it to devious code
Term
How does a Pointer Authentication Code work?
Definition
It is added to the upper bits of the register and before returning, it is authenticated. If the check fails, an exception is generated
Term
What is privileged mode?
Definition
Allows full read-write access to the CPSR
Term
What is thumb?
Definition
It is an arm that has a shortened bus
Term
Why use thumb?
Definition
It is cheaper to buy, memory is cheaper, and I/O devices are cheaper
Term
What code is necessary to convert regular ARM to Thumb?
Definition
1. LDR r0, =Thumb + 1
2. Bx 0
3. .code 16
4. Thumb:
Term
What are some of the architectural differences between regular ARM and thumb?
Definition
1. Word is 2 bytes instead of 4 bytes
2. Registers: r0-r7 are directly mapped to the thumb state
3. No conditional execution
4. No shifted second operand
5. S suffix is dropped
6. Conditional branch- 8 bit offset, unconditional- 11 bit offset
Supporting users have an ad free experience!