Page 138 - A Practical Guide from Design Planning to Manufacturing
P. 138

Computer Architecture  111

        addresses, limiting each program to 4 GB, but it used 36-bit physical
        addresses, allowing systems to use up to 64 GB of physical memory.
          A physical address smaller than the virtual address simply means a
        program cannot have all of its virtual pages in memory at the same time.
        The EPIC architecture supports 64-bit virtual addresses, but only 50-
                               5
        bit physical addresses. Luckily the physical address size can be
        increased from one implementation to the next while maintaining soft-
        ware compatibility. Increasing virtual addresses requires recompiling
        or rewriting programs if they are to make use of the larger address
        space. The operating system must support both the virtual and physi-
        cal address sizes, since it will determine the locations of the pages and
        the permissions for accessing them.
          Virtual memory is one of the most important innovations in computer
        architecture. Standard desktops today commonly run dozens of programs
        simultaneously; this would not be possible without virtual memory.
        However, virtual memory makes very specific requirements upon the
        processor. Registers as well as functional units used in computing
        addresses must be able to support the virtual address size. In the worst
        case, virtual memory would require two memory accesses for each memory
        operand. The first would be required to read the translation from the
        virtual memory lookup table and the second to access the correct physi-
        cal address. To prevent this, all processors supporting virtual memory
        include a cache of the most recently accessed virtual pages and their
        physical page translations. This cache is called the translation lookaside
        buffer (TLB) and provides translations without having to access main
        memory. Only on a TLB miss, when a needed translation is not found, is
        an extra memory access required. The operating system manages virtual
        memory, but it is processor support that makes it practical.


        Control flow instructions
        Control flow instructions affect which instructions will be executed next.
        They allow the linear flow of the program to be altered. Some common
        control flow instructions are shown in Table 4-13.

          5
           McNairy and Soltis, “Itanium 2 Processor Microarchitecture,” 51.

        TABLE 4-13 Control Flow Instructions

        JMP       Unconditional jump to another instruction
        BR        Branch to instruction if condition is met
        CALL      Call a procedure
        RET       Return from procedure
        INT       Software interrupt
   133   134   135   136   137   138   139   140   141   142   143