Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/27/06 22:55
Read: times


 
#113272 - Addressing 101
Responding to: ???'s previous message
A memory is an array of storage locations; eg,
  • An 8K x 16 memory has 8192 locations[1], each of which holds 16 bits;
  • A 2K x 8 memory has 2048 locations, each of which holds 8 bits.

    Clearly, we[2] need some way to distinguish all these locations; some way to uniquely identify each one. We call this identifier the address of the storage location:
  • The first storage location has address 0;
  • The next storage location has address 1;
  • The next storage location has address 2;
    etc, etc, etc,...

    In a digital system, a signal can have only one of two values - for convenience, we often represent these as '0' and '1'
    Thus a digital signal can be used to select one of two memory locations; say, "location 0" and "location 1" - we say that the signal addresses "location 0" or "location 1"

    If we want to be able to select from more than just two locations, then we must combine two or more signals; eg, to address four locations, we need two signals:
  • When both signals are '0', say we address "location 0"
  • When the 1st signal is '0' and the 2nd signal is '1', say we address "location 1"
  • When the 1st signal is '1' and the 2nd signal is '0', say we address "location 2"
  • When both signals are '1', say we address "location 3"

    We could call the 1st signal "Signal A", call the 2nd signal "Signal B", and write this as a table:
    Signal Signal
      A      B      Address
    ------ ------   -------
      0      0         0
      0      1         1
      1      0         2
      1      1         3
    With 3 signals, we can address eight locations:
    Signal Signal Signal
      A      B      C     Address
    ------ ------ ------  -------
      0      0      0        0
      0      0      1        1
      0      1      0        2
      0      1      1        3
      1      0      0        4
      1      0      1        5
      1      1      0        6
      1      1      1        7
    Thus the three signals - A, B, and C - carry a code that selects one (and only one) of the memory locations. The process of determining which location is addressed is known as Address Decoding

    Looking at the table, you can see that Address 0 is selected when A=0 AND B=0 AND C=0;
    Similarly, Address 1 is selected when A=0 AND B=0 AND C=1;
    etc

    Thus the logic expression describing when Address 0 is selected is:
       !A . !B . !C
    Or, to put it another way, this is the logic expression that decodes address 0


    The logic circuit that implements this decoding is called a Decoder

    I hope that helps a bit.

    Notes:
    [1] 'K' (uppercase) = 210 = 1024;
    'k' (lowercase) = 103 = 1000.

    [2] That's the pedagogical "we"


  • List of 58 messages in thread
    TopicAuthorDate
    How to decoder the memory address?            01/01/70 00:00      
       decoding already inside            01/01/70 00:00      
          That's not fair!            01/01/70 00:00      
             ???            01/01/70 00:00      
                Maybe unfair was the wrong way to put it            01/01/70 00:00      
                   why Flash esoteric ???            01/01/70 00:00      
                      So ... where's the decoding?            01/01/70 00:00      
                         decoding in practice            01/01/70 00:00      
                            This is not a personal attack, Peter            01/01/70 00:00      
                               actually            01/01/70 00:00      
                                  I don't disagree            01/01/70 00:00      
                                     hardly            01/01/70 00:00      
                                        what he asked was:            01/01/70 00:00      
                               R. E            01/01/70 00:00      
                                  Not exactly            01/01/70 00:00      
                                      Sorry Richard I was a little more            01/01/70 00:00      
                                  there is an ignore function available            01/01/70 00:00      
                                     that is how I currently do it            01/01/70 00:00      
                                        drop the flat mode, go threaded            01/01/70 00:00      
       There's a way, once you've decided            01/01/70 00:00      
       The first step            01/01/70 00:00      
          Requirements, a most important variable            01/01/70 00:00      
             I'm not a machine            01/01/70 00:00      
       RE: How to decoder the memory address?            01/01/70 00:00      
          it's bible time            01/01/70 00:00      
       Don't look bad each others please            01/01/70 00:00      
          74HC138            01/01/70 00:00      
          why do you refuse to read "the bible"            01/01/70 00:00      
             What chapter will answer his question?            01/01/70 00:00      
                I never answer that            01/01/70 00:00      
                   Who's joy? Yours??            01/01/70 00:00      
                      places "the bible"            01/01/70 00:00      
                         Just answer the question            01/01/70 00:00      
                            then why did you not give him an answer            01/01/70 00:00      
                               because I'm just as bad as you, Erik            01/01/70 00:00      
             Not this time            01/01/70 00:00      
                You're right, and he knows it            01/01/70 00:00      
          Interesting link            01/01/70 00:00      
          Example            01/01/70 00:00      
          questions, guesses and comments            01/01/70 00:00      
             Now, was that so hard?            01/01/70 00:00      
                silliness was never here            01/01/70 00:00      
                   Well, perhaps not, but ...            01/01/70 00:00      
                      So when?            01/01/70 00:00      
          RE: Don't look bad each others please            01/01/70 00:00      
       Don't look bad each others please            01/01/70 00:00      
       I do not understand            01/01/70 00:00      
       Addressing 101            01/01/70 00:00      
       Why using this processor pins left...?            01/01/70 00:00      
          What chips?            01/01/70 00:00      
          What is the problem?            01/01/70 00:00      
             Explaination            01/01/70 00:00      
                I just remembered 22V10            01/01/70 00:00      
                Be careful            01/01/70 00:00      
                   How many address buses do you see?            01/01/70 00:00      
                      On the busses            01/01/70 00:00      
                         The only purpose was...            01/01/70 00:00      
                            The question has been well addressed            01/01/70 00:00      

    Back to Subject List