Page 161 - DCAP210_INTRODUCTION__TO_MICROPROCESSORS
P. 161

Unit 11: Counters and Time Delays


            In figure, the PC value is either loaded with an updated version of itself, or else it is loaded with  Notes
            a new Branch Address. For simplification we do not show the control signals to the MUX.

            11.2.2 Offset Branching

            An offset branch is a branch where a value is added (or subtracted) to the current PC value to
            produce the new value. This is typically used in systems where the PC value is larger then a
            register value or an immediate value, and it is not possible to load a complete value into the PC.

                                      Figure 11.4: Offset Branching






















            In figure, there is a second ALU unit. Notice that we could simplify this circuit and remove the
            second ALU unit if we use the configuration mentioned in Figure 11.5:

                                     Figure 11.5: ALU Configuration


















            These are just two possible configurations for this circuit.

                          Offset branch is used to support reloadable binaries which may be loaded at
                          an arbitrary base address.


            11.2.3 Offset and Non-Offset Branching
            Many systems have capabilities to use both offset and non-offset branching. Some systems may
            differentiate between the two as “far jump” and “near jump”, respectively, although this
            terminology is archaic.






                                             LOVELY PROFESSIONAL UNIVERSITY                                   155
   156   157   158   159   160   161   162   163   164   165   166