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
Q

The Heap

A

Segment for data structures that grow and shrink. Placed next in memory.

26
Q

Halfwords

A

16 bit quantities

27
Q

PC-Relative Addressing

A

Addressing regime in which address is sum of PC + constant in instruction.

28
Q

Addressing Mode

A

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
Q

Register Addressing

A

Operand is register.

30
Q

Immediate Addressing

A

Operand is constant within instruction.

31
Q

Base/Displacement Addressing

A

Operand is at memory location whose address is sum of register + constant in instruction.

32
Q

Data Race

A

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
Q

Assembly Language

A

Symbolic language that can be translated into binary machine language.

34
Q

Pseudoinstruction

A

Common variation of assembly language instructions often treated as if it were an instruction in its own right.

35
Q

Symbol Table

A

Table that matches names of labels to addresses of memory words that instructions occupy.

36
Q

Linker/Link Editor

A

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
Q

Exectuable File

A

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
Q

Loader

A

Systems program that places object program in main memory so it’s ready to execute.

39
Q

Dynamically Linked Libraries (DLLs)

A

Library routines linked to program during execution.

40
Q

Java Bytecode

A

Instruction from instruction set designed to interpret java programs.

41
Q

Java Virtual Machine (JVM)

A

Program that interprets java bytecodes. Interpreters improve portability but reduce performance.

42
Q

Just In Time Compiler (JIT)

A

Compiler that operates at runtime, translating interpreted code segments into native comp code. Preserves portability + improve execution speed compared to JVM.

43
Q

Object Oriented Language

A

Programming language that is oriented around objects rather than actions, or data vs logic.

44
Q

General Purpose Register

A

Register that can be used for addresses/data with virtually any instruction.

45
Q

Load-store Architecture/Register Architecture

A

Instruction set architecture in which all operations are between registers + data memory may only be accessed via loads/stores.