A memory in 64bit architecture has size 1,024Mbytes (note that 1,024 =

2^10).

1)How many 64-bit words is its capacity? How much is this capacity in bits? How
much is the same capacity in bytes?

2)How many cells does this memory have? If we want to be able to reference every
cell of this memory, how many digit addresses shall we use?

3)If we want additionally to reference every 2-bytes of every 64-bit word in this memory with binary addresses how much should be the length of the addresses? Give the address (in binary, or hexadecimal ) of the second pair of bytes in the 257th cell of this memory.

To answer these questions, we need to understand the concepts of bits, words, cells, and addressing in 64-bit architecture.

1) Capacity of memory in words, bits, and bytes:
A 64-bit architecture means each word in memory is 64 bits long.

To find the number of 64-bit words in the memory, we divide the total capacity (1,024 Mbytes) by the size of each word (64 bits):
Capacity in words = 1,024 Mbytes / 64 = 16 Mwords

To find the capacity of the memory in bits, we multiply the number of words by the word size:
Capacity in bits = Capacity in words * 64 = 16 Mwords * 64 = 1,048,576 Mbits

To find the capacity of the memory in bytes, we divide the total capacity (1,024 Mbytes) by the size of each word (64 bits) and multiply by the number of bytes in a word (8 bytes):
Capacity in bytes = (1,024 Mbytes / 64) * 8 = 128 Mbytes

2) Number of cells and addresses:
Each word in the memory represents a cell. So, the number of cells is equal to the number of words.

Number of cells = Capacity in words = 16 Mwords

To be able to reference every cell, we need to use unique addresses for each cell. For 16 Mwords, we need to calculate the number of digits required to represent this number in binary.

Number of address digits = log2(16 Mwords)
= log2(2^(24))
= 24

Therefore, if we want to reference every cell, we need to use 24-digit addresses.

3) Address length for referencing every 2-bytes:
In a 64-bit word, there are 8 bytes (8 * 8 = 64 bits). If we want to reference every 2 bytes (16 bits) in a word, we need to use half the address length required for referencing cells (12 digits instead of 24 digits).

The address of the second pair of bytes in the 257th cell can be calculated as follows:
- The offset of the 257th cell is 256 (since we start counting from 0).
- The offset of the second pair of bytes in a cell is 1 (since we start counting from 0).

To convert the offset to a 12-digit binary address, we divide the offset by 2 (since each digit represents 2 bytes).

Offset in binary = 256 / 2 = 128 = 10000000 in binary

Therefore, the address of the second pair of bytes in the 257th cell is 10000000 in binary.