B261 Computer Architecture

Revision Exercises

Note that the 1996 B261 paper is relevant for revision, but not previous exam papers. The 1997 B10 paper is relevant, but not all questions. All other exam papers since 1997 are relevant for revision.

Consider also the following revision exercises.

1.

(a) What is meant by a cache?

(b) Describe in detail, with an example, the operations involved in reading from and writing to a cache. Be careful to specify the mapping employed between main memory and the cache.

(c) In general what is meant by saying that memory systems are organised hierarchically, and what are the reasons for such an architecture?

(d) How does a computer system cope with several different programs all demanding simultaneous access to the CPU?

2.

(a) What is meant by a RISC as opposed to a CISC processor?

(b) Write a procedure in C++ that takes three integer numbers and sorts them in ascending order. Write the same procedure in MIPS, being careful to show how the parameters are dealt with typically in the MIPS conventions.

(c) There is another procedure to sort 4 numbers. The strategy it adopts is to use the previous procedure to sort the first 3, and then decide where the 4th number is in the ordering. Write the MIPS procedure to do this, being careful to make use of the procedure written for (b).

(d) What is meant by a recursive function? Show how recursion might be handled in MIPS giving a complete example of a recursive function (for example, finding whether the number 99 exists in a list of numbers might be found by checking whether the first number in the list is 99, and if not then applying the same procedure recursively to the rest of the list).

3. Describe in detail how a computer program is represented in a computer system, and the process that leads to it being executed. Pay particular attention to storage of the computer program instructions, its relationship to memory, how the CPU operates in relation to program execution, how virtual memory fits into the scheme of things, and other such architectural issues. One way to answer this question would be to draw a block diagram of the functional components of a computer, and illustrate your answer in the provided context.

4. Describe how to represent each of the following numbers in the appropriate binary format assuming an 8bit word length.

10, 101,-45,-24.

Hence show how to find 10-24 in two's complement arithmetic.

Explain in detail how the IEEE floating point standard for 32-bit floating point numbers works, and give some illustrations of your explanation.

5. What is the symbolic representation of an 'and-gate' an 'or-gate', and a 'not-gate'?

Show how these gates could be used to represent the addition of two, 3-digit binary numbers.

In general, how might n-bit binary addition be carried out?

In which component of the computer would such operations be carried out?

What other types of operations would be carried out by this component?