350 Exam 1

Ace your homework & exams now with Quizwiz!

Typical, ARMv8 R-Type arithmetic instructions have exactly _______ operands.

3

Which of the following references would the linker NOT have to relocate?

"B.NE func", where func is defined in the same assembly file

Typical, ARMv8 I-Type arithmetic instructions have exactly _______ operands and an immediate.

2

Imagine you have converted a single threaded program to multi-threaded so it can execute on a multi-core processor. You can support as many threads as there are processors but there remains a 5% overhead which cannot be parallelized. What is the maximum speedup you can expect with an infinite core machine?

20x

Conditional branches in ARMv8 are limited in the maximum distance the branch destination can be from the current PC. If a (somewhat) larger range is needed the _______ instruction can be used in combination with a conditional branch to get a greater range.

B

Assuming Fetch has placed an instruction on the bus called I[31:0] (in Verilog notation), which wires should be connected to "Read Addr 2" on the register file for the proper execution of R-Type instructions.

I[20:16]

For the code in problem 4, the two items which must be stored on the stack are __ __ and ___ ___ .

LR, X30

The compiler permanently assigns each register to one and only one variable at compile time. That register is never used for anything else.

False

The processor directly executes the code you write in C, Java, C++, etc.

False

The registerfile does not produce any output on Read Data 1 and Read Data 2 for the B instruction.

False

Energy and power consumption in the data center (server computers) is a critical concern.

True

In general, control flow instructions do no work, i.e. they manipulate no data.

True Control flow instructions choose which instruction will be executed next but they do not change the state of the processor otherwise.

The ________ transforms C code into assembly.

compiler

Which of the following is _not_ true of programs that use dynamically linked libraries (shared libraries)

The make the program faster to run.

If a function calls a subsequent function, it must save _______ on the stack.

LR X30

The "Loader" is actually part of the ______ on your computer.

operating system

The ___________ wall was a primary driver of the transition to multi-core processors.

power

In the event that more than eight arguments must be passed to a function, the first eight will use the X0-X7 registers and the rest will use the _____________.

stack

Moore's Law states that ______________ count increases over time.

transistors

___________ is a good measure of the time a processor spent on a given job.

CPU time

64-bit Processors are always faster than 32-bit processors.

False

In the LDUR and STUR instructions, the ALU is used for effective __________ calculation.

address

Given two different computers A and B of the same ISA, running the same application binary, what is the speedup of A over B? A: CPI = 1.5, Frequency = 2GHz B: CPI = 1, Frequency = 1.5GHz

0.89

Given the following mix of instruction classes and CPIs, calculate the weighted average CPI for the program on a given CPU. Class A: percentage: 30% CPI: 2 Class B: percentage: 20% CPI: 3 Class C: percentage: 50% CPI: 1

1.7

The Raspberry Pi system, similar to your smart phone and M1-Apple Mac's, has a processor that runs the ____ instruction set.

ARMv8

A higher frequency processor will always have higher performance than a lower frequency processor.

False

A particular sized two's compliment representation of an integer has a greater maximal positive value than the same size (in bits) unsigned integer.

False

ARMv8 assembly strongly enforces type on registers.

False

Decreasing response time should have no impact on throughput.

False

Moore's Law states that processors will get faster and consume less energy with each process technology generation.

False

ARMv8 and many other RISC ISAs are considered to be a "Load/Store Architecture" because many computational instructions operate directly on the memory.

False CISC instructions often operate directly on the memory, RISC instructions are load/store because they must first move from memory with a separate load instruction, perform the computation and store back with a store instruction.

Computer processor cores directly execute the high-level code you write

False Code has to be translated into the instruction set language of the processor you have.

The instruction: ADD X1, X2, #4 Is an R-Type Instruction.

False Its actually an I-Type instruction because it has a constant in it.

When an x is in the logic map for the control unit it means that the signal should not be driven.

False Logic is rarely "off" unless explicitly power gated (which takes extra logic and time). We sometimes use an x to aid in logic minimization.

We split programs into multiple files because it make the first time compile of the program faster.

False No, it makes compiles go faster while doing development/debugging since only those parts of the program that are touched need be recompiled.

The S appended to arithmetic operations is only needed to set the condition codes for CBZ and CBNZ.

False SUBS and etc. are used to set condition codes for use in B.XX branches.

The fastest path through the logic determines its critical path and hence its clock frequency.

False The slowest path determines the critical path and clock frequency.

If the X9 register is used by the callee, they must be saved by the callee.

False X9 is a "caller save" register, meaning that the contents of the register are not guaranteed to to remain across calls, if the caller wants to keep the value, the caller needs to save it.

Which of the following is not a characteristic of the RISC philosophy?

Variable instruction length

_______ modes define where the operands come from.

addressing

A ___________ is a sequence of instructions that starts with a branch target and ends with a branch.

basic block

Power increases dramatically with frequency because capacitance is increasing with successive process technology generations.

False

The stack and heap grow in the same direction.

False

There is a one-to-one matching between lines of C and lines of an assembly language.

False

Hand-written assembly is always better than compiler output

False Optimizing compilers do a fairly good job of producing optimized code, so often it can be better than unoptimized hand written assembly. Experienced assembly programmers can probably do better but at a high cost in programmer effort/time.

When constructing the destination of an unconditional branch from the machine code of a B instruction, the top four bits of the destination address should be set to 0x0.

False The offset encoded in the instruction is left shifted by two and added to the PC of the branch.

The stack grows by increasing the SP every time something is saved (pushed) on it.

False The stack grows down from high addresses to low ones.

Which one of the following is not a reason we program in higher level languages

The compiler will always produce better performing assembly than a human can.

For all R-Type instruction, Read Data 2 is connected to the ALU.

True

The job of the linker is to take a set of already compiled ".o" files and merge them, together with any needed library files, into a single executable binary for execution.

True

The reason why ARMv8 convention has some registers not saved on a function call is to improve performance.

True

There is a one-to-one matching between lines of an assembly language and lines of its machine language.

True

An easy way to reduce the energy consumption needed to compute a given job is to decrease its ___________.

frequency

Dynamically allocated memory is stored on the ___________.

heap


Related study sets

MULTIPLE CHOICE -Chapter 13 Exam - Commercial Crime Insurance and Bonds

View Set

CHAPTER 21 STUDY GUIDE ENLIGHTENMENT AND REVOLUTION TEST REVIEW

View Set

Week 14 - PrepU Transplant & Burn Questions

View Set