Computer Memory Calculation

  1. Can you guys please show me how to calculate with details ?
    I have no clue how to do it, and where to start ?
    I'm an international student and I really don't understand.
    Thank you.

    1. Suppose that we have a memory system with 16-bit cells of memory. If we use sign/magnitude notation to store numbers, what is the largest number (in absolute value) that we can store in one memory cell? Two memory cells?

    2. Assuming a square two-dimensional memory organization, what are the dimensions of a memory unit containing 4 MB (222 bytes) of storage? How large would the MAR be? How many columns would be sent to the row and column decoders? How many output lines would the decoders have?

    3. Assume that we have an arithmetic/logic unit that handles 36 distinct operations. Describe exactly what kind of multiplexor circuit would be required to select exactly one of those 36 operations. Include the number of input lines required and the number of selector lines required.

    4. Consider an instruction register that has 8-bits for the opcode and two address components that have 16-bits each (for a total of 8+16+16=40 bits). What is the maximum number of distinct operations that this processor may perform? What is the maximum memory size of the machine?
  2. jcsd
  3. Zryn

    Zryn 322
    Gold Member

    Are you familiar with a) binary counting, and b) signed binary counting?

    Do you know how to calculate how many numbers (different combinations of 0's and 1's) there are when using 16 digits and what happens when you represent positive and negative instead of just positive numbers?
  4. You mean with positive 3 digits.
    0 000
    1 001
    2 010
    3 011

    You mean with negative 3 digits.
    -0 100
    -1 101
    -2 110
    -3 111

    But I don't know how to get with 16 digits.
    Can you show me how with examples with 4 digits, 8 digits ?
  5. Zryn

    Zryn 322
    Gold Member

    The positive 3 digits are correct, however the negative 3 digits are a bit off.

    When you used signed notation, the Most Significant Bit (MSB) is commonly used to indicate 0 with a 0, and -# with a 1, where # is half(max). In the case of using 3 digits (8 combinations) this MSB represents 1/2(8) = 4, therefore 0 with a 0 and -4 with a 1.

    100 = -4*1 + 2*0 + 1*0 = -4
    101 = -4*1 + 2*0 + 1*1 = -3
    110 = -4*1 + 2*1 + 1*0 = -2
    111 = -4*1 + 2*1 + 1*1 = -1

    This is called using 2's complement, and it differs slightly from 1's complement because it only has 1 value for 0 (i.e. 000) whereas 1's complement has 2 values for 0 (i.e. 000 = +0 and 111 = -0).

    This also means that 2's complement can have 1 more number than 1's complement (since there is only one value for 0) and so it has half(max) negative numbers and half(max) - 1 positive numbers, i.e. 1/2(8) = 4 negative numbers and 1/2(8) - 1 = 3 positive numbers.

    This information should assist you in figuring out how 16 digits can be calculated.
  6. Mark44

    Staff: Mentor

    222 bytes? Where did you get that? 4 MB is a lot bigger than 222 bytes.
    You can represent 32 distinct numbers with 5 bits, so to represent 36 distinct operations you'll need ?? bits. I think this is where they're heading with this problem.
  7. so would 16-bit cells of memory in sign/magnitude notation with largest absolute value is 0,111,111,111,111,111 right ?

    but it's asking for 1 memory cell and 2 memory cell.
    So how should I answer it ?
    One memory cell : It is simply asking for one's complement ?
    Two memory cells : It is simply asking for two's complement ?
  8. I put wrong question, I meant to put 2^22.
  9. Mark44

    Staff: Mentor

    Are the memory cells 16 bits as in the first problem?
  10. yes it is.
  11. Zryn

    Zryn 322
    Gold Member

    For one 16-bit memory cell you would indeed be able to store 0111 1111 1111 1111 (its good to group binary numbers in lots of four, and you will see why when you start using binary octal and hexadecimal conversions). The question asks for the decimal number though I think.

    For two 16-bit memory cells you would have twice as many bits!
  12. Mark44

    Staff: Mentor

    In #2, 4 MB = 2KB x 2KB.
    A block of memory of this size that represents a square matrix would have 2048 bytes in each of 2048 rows. How many memory cells is this? How many bits would you need to identify the column? How many to identify the row?
  13. so 2048 bytes = 16384 bits

    since 4mb of a square matrix(meaning it has two cells ????)

    16384 bits = 16384 rows
    16384 bits = 16384 columns

    How about #4 ?
    Since it is asking for maximum memory size of the machine, would it be 2^40-1 ???
    What is the maximum number of distinct operations that this processor may perform? <---- I don't understand
  14. Mark44

    Staff: Mentor

    Yes, but so what? I don't see that this fact is of any importance at all.

    No, no, no! The block of memory has 2048 rows, each consisiting of 2048 bytes. As you said earlier, a memory cell is two bytes, so how many memory cells are in each row? How many memory cells are there altogether? (Two is NOT the answer!) How many bits are required to count all the memory cells? How many bits are required to identify a particular row? A particular column?
    The 40 bits are divided up into 8 bits for opcode and 16 bits each for two addresses. How many opcodes can there be? Each 16 bit address can address how large a block of memory?
Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook