5. Assume a computer has a physical memory organized into 64-bit words. Give the word address and offset within the word for each of the following byte addresses: 0, 9, 27, 31,120, and 256.

6. Extend the above exercise by writing a computer program that computes the answer. The program should take a series of inputs that each consist of two values: a word size specified in bits and a byte address. For each input, the program should generate a word address and offset within the word. Note: although it is specified in bits, the word size must be a power of two bytes.

Respuesta :

Answer:

see explaination and attachment

Explanation:

5.

To convert any byte address, By, to word address, Wo, first divide By by No, the no. of bytes/word, and ignores the remainder. To calculate a byte offset, O, in word, calculate the remainder of By divided by No.

i) 0 : word address = 0/8 = 0 and offset, O = 0 mod 8 = 0

ii) 9 : word address = 9/8 = 1 and offset, O = 9 mod 8 = 1

iii) 27 : word address = 27/8 = 3 and offset, O = 27 mod 8 = 3

iv) 31 : word address = 31/8 = 3 and offset, O = 31 mod 8 = 7

v) 120 : word address = 120/8 = 15 and offset, O = 120 mod 8 = 0

vi) 256 :word address = 256/8 = 32 and offset, O = 256 mod 8 = 0

6. see attachment for the python programming screen shot and output

Ver imagen kendrich
Ver imagen kendrich

The word address is the integer division of the physical address by 8, while the offset is the remainder of the physical address divided by 8.

(a) Calculate the word address and offset

The number of bit is given as 64.

So, we have:

[tex]2^n = 64[/tex]

Express 64 as a base of 2

[tex]2^n = 2^8[/tex]

Cancel out the base of 2

[tex]n = 8[/tex]

So, we have:

(i) Physical address: 0

  • Word address = 0\8 = 0
  • Offset = 0 mod 8 = 0

(ii) Physical address: 9

  • Word address = 9\8 = 1
  • Offset = 9 mod 8 = 1

(iii) Physical address: 27

  • Word address = 27/8 = 3
  • Offset = 27 mod 8 = 3

(iv) Physical address: 31

  • Word address = 31/8 = 3
  • Offset = 31 mod 8 = 7

(v) Physical address: 120

  • Word address = 120/8 = 15
  • Offset = 120 mod 8 = 0

(v) Physical address: 256

  • Word address = 256/8 = 32
  • Offset = 256 mod 8 = 0

(b) The program

The program written in Python, where comments are used to explain each line is as follows:

#This creates a list of physical address

pA = [0, 9, 27, 31,120, 256]

#This iterates through the list

for i in range(len(pA)):

   #This prints the word address

   print("Word Address:",(pA[i]//8))

   #This prints the offset

   print("Offset:",(pA[i]%8))

Read more about word address at:

https://brainly.com/question/17493537

ACCESS MORE