程序代写代做代考 assembly cache Wednesday, 13 May 2015

Wednesday, 13 May 2015

2.00pm – 4.00pm

(Duration: 2 hours)

DEGREES OF MSc, MSci, MEng, BEng, BSc, MA and MA (Social Sciences)

Systems and Networks

Answer ALL 3 Questions

This examination paper is worth a total of 60 marks

INSTRUCTIONS TO INVIGILATORS

Please collect all exam question papers and exam answer scripts

and retain for school to collect. Candidates must not remove exam

question papers.

CONTINUED OVERLEAF Page 1

1. (a) What number does the codeword $FD represent in:
i. 8-bit unsigned code

ii. 8-bit two’s complement code
Explain your reasoning in each case.

[4]

(b) Using a 32-bit binary word give the ranges of numbers that can be represented using: (a) an
unsigned; and (b) a two’s complement code. (You may express the answers in the form of powers
of 2.)

[2]

(c) Explain how a 32-bit numeric codeword would be stored in memory in a Sigma16 system? How
would it be stored in a 6811 system?

[3]

(d) A Sigma16 system has two arrays, X and Y, of 4 16-bit signed numbers in memory. Write an
assembly language program to form a third array, Z, whose i

th
element, zi, is formed by multiplying

the i
th

elements of X and Y together, i.e. zi = xi* yi
[6]

(e) With a view to maximising efficiency, modify your program in (d) to sum the elements of Z and

put the result in a variable called SPRDT.
[5]

For reference, this is part of the instruction set of the Sigma16 CPU.

lea Rd, x[Ra] Rd:= x +Ra
load Rd, x[Ra] Rd:= mem[x +Ra]
store Rd, x[Ra] mem[x +Ra]:=Rd
add Rd,Ra,Rb Rd:= Ra+Rb
sub Rd,Ra,Rb Rd:= Ra-Rb
mul Rd,Ra,Rb Rd:= Ra*Rb
div Rd,Ra,Rb Rd:= Ra/Rb
cmplt Rd,Ra,Rb Rd:= RaRb
jumpf Rd, x[Ra] If Rd=0 then PC:=x+Ra
jumpt Rd, x[Ra] If Rd<>0 then PC:=x+Ra
jal Rd, x[Ra] Rd:= pc, pc: =x +Ra
trap Rd,Ra,Rb PC:= interrupt handler
jump x[Ra] PC:= x +Ra

CONTINUED OVERLEAF Page 2

2. (a) In the memory hierarchy, explain how cache memory works. Clearly define the concepts of a

cache miss, cache hit and replacement policy
[6]

(b) What does the following Sigma16 program do?

[2]

(c) How many cycles are in the main loop?

[2]

(d) If a memory cycle takes 10ns, how long would this program take to execute?
[3]

(e) If a cache is introduced, how many hits will there be?

[2]

(f) If a cache cycle takes 1ns, how long would this program take to execute?
[2]

(g) Does it make sense to cache memory mapped I/O locations? Explain your answer.

[3]

; Initialise registers

LEA R1,1[R0] ; R1 = 1 (constant)

LEA R2,1[R0] ; i = 1

LOAD R3,n[R0] ; R3 = n

LEA R4,1[R0] ; x = 1

; For loop follows

FORLOOP CMPGT R5,R2,R3 ; IF i>n

JUMPT R5,OUT[R0] ; EXIT Loop

MUL R4,R4,R2 ; x = x*i

ADD R2,R2,R1 ; i = i + 1

JUMP FORLOOP[R0] ; Loop again

; Exit Loop and store result.

OUT STORE R4,x[R0] ; Store x

TRAP R0,R0,R0 ; Finish

; Data Area

n DATA 5

x DATA 0

END OF QUESTION PAPER Page 3

3. (a) What is the difference between a circuit-switched and packet-switched network. Explain
the role of the nodes in each case.

[4]

(b) Describe the layered structure of the Internet communications system, identifying the
layers and their functions.

[8]

(c) In a packet-switched network packets occasionally arrive in the wrong order or are lost
completely.

Explain how each of these problems might arise and how the communications system
would fix them

[4]

(d) Explain how the problems discussed in (c) would impact the following user applications:
i. A file transfer application

ii. A music streaming application

[4]