Architecture Textbook 2 Flashcards

1
Q

Conditional Branches

A

Instruction that tests value + allows for subsequent transfer of control to new address in program based on test outcome.

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

Basic Block

A

Sequence of instructions without branches (except potentially at end) + without branch targets or branch labels (except possibly at start). One of earliest phase of compilation is to break program into these.

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

Condition codes/flags

A

4 extra bits that record what happened during instruction. Negative (N), zero (Z), overflow (V) + carry (C).

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

Negative (N)

A

Result that set condition code had 1 in most signif bit.

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

Zero (Z)

A

Result that set condition code had 0 in most signif bit

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

Overflow (V)

A

Result that set condition code overflowed.

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

Carry (C)

A

Result that set condition code had carry out of most signif bit or borrow into most signif bit.

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

Branch Address Table/Branch Table

A

Table of addresses of alternative instruction sequences. e.g. case/switch statement.

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

Procedure/Function

A

Stored subroutine that performs specific task based on parameters it’s provided with. e.g. Method.

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

Branch-and-Link Instruction

A

Instruction that branches to address + simultaneously saves address of following instruction in register.

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

Return Address

A

Link to calling site that allows procedure to return to proper address. In LEGv8, stored as register.

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

Caller

A

Program that instigates procedure + provides necessary parameter values.

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

Callee

A

Procedure that executes series of stored instructions based on parameters provided by caller + returns control to caller.

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

Program Counter (PC)

A

Register containing address of instruction in program being executed.

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

Stack

A

Data structure for spilling registers organised as last in first out queue.

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

Stack Pointer

A

Value denoting most recently allocated address in stack that shows where registers should be spilled/where old register values can be found. In LEGv8, it’s register SP.

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

Push

A

Add element to stack.

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

Pop

A

Remove element from stack.

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

Leaf Procedures

A

Procedures that don’t call others.

20
Q

Global Pointer

A

Register reserved to point to static area.

21
Q

Procedure Frame/Activation Record

A

Segment of stack containing procedure’s saved registers + local variables.

22
Q

Frame Pointer

A

Value denoting location of saved registers + local variables for given procedure. Some ARMv8 compilers use this to point to first doubleword of procedure frame.

23
Q

Text Segment

A

Segment of UNIX object file that contains machine language code for routines in source file. Home of LEGv8 machine code.

24
Q

Static Data Segment

A

Above code. Place for constants + other static variables..

25
The Heap
Segment for data structures that grow and shrink. Placed next in memory.
26
Halfwords
16 bit quantities
27
PC-Relative Addressing
Addressing regime in which address is sum of PC + constant in instruction.
28
Addressing Mode
1 of several addressing regimes delimited by their varied use of operands +/or addresses. e.g. immediate addressing, register addressing, base/displacement addressing, PC-relative addressing.
29
Register Addressing
Operand is register.
30
Immediate Addressing
Operand is constant within instruction.
31
Base/Displacement Addressing
Operand is at memory location whose address is sum of register + constant in instruction.
32
Data Race
2 memory accesses form data race if they're from diff threads to same location, at least 1 is write + occur 1 after another.
33
Assembly Language
Symbolic language that can be translated into binary machine language.
34
Pseudoinstruction
Common variation of assembly language instructions often treated as if it were an instruction in its own right.
35
Symbol Table
Table that matches names of labels to addresses of memory words that instructions occupy.
36
Linker/Link Editor
Systems program that combines independently assembled machine language programs + resolves all undefined labels into executable file. Places code + data modules symbolically in memory, determines addresses of data + instruction labels, then patches internal + external refs.
37
Exectuable File
Functional program in object file format that contains no unresolved refs. Can contain symbol tables + debugging info. Stripped executable doesn't contain those. Relocation info may be included for loader.
38
Loader
Systems program that places object program in main memory so it's ready to execute.
39
Dynamically Linked Libraries (DLLs)
Library routines linked to program during execution.
40
Java Bytecode
Instruction from instruction set designed to interpret java programs.
41
Java Virtual Machine (JVM)
Program that interprets java bytecodes. Interpreters improve portability but reduce performance.
42
Just In Time Compiler (JIT)
Compiler that operates at runtime, translating interpreted code segments into native comp code. Preserves portability + improve execution speed compared to JVM.
43
Object Oriented Language
Programming language that is oriented around objects rather than actions, or data vs logic.
44
General Purpose Register
Register that can be used for addresses/data with virtually any instruction.
45
Load-store Architecture/Register Architecture
Instruction set architecture in which all operations are between registers + data memory may only be accessed via loads/stores.