Advanced Microprocessors Growth from 16 bits to 32 bits did not bring entirely new architectures, as did the change from 4 bits to 8 bits, or the change from 8 bits to 16 bits. This permits programs from earlier microprocessors to run (usually a lot faster) on the new-generation microprocessor. The advanced microprocessors are very powerful computing devices. General Purpose Computers Typically, products which use these microprocessors are configured as general-purpose computers. CPU is connected to a bus along with memory, mass storage, general-purpose I/O, and a user interface. The user interface include an graphic display system and data entry system. The general purpose architecture lets you use a wide variety of general-purpose software to make the unit do the job you need to perform. Dedicated System Dedicated systems with advanced microprocessors typically need a great deal of computing power. For example, the 32-bit microprocessors are very popular for graphic display systems. A graphic presentation can be described as a multidimensional array with x and y dimensions describing the different points of the display. The z axis is used to define attributes such as color and intensity. To manipulate these images, you must quickly process multidimensional arrays. Numeric Coprocessor Frequently, advanced microprocessors are supported by a numeric coprocessor. It perform such arithmetic functions as add, subtract, multiply and divide on two variables. It returns a result much faster than a generalpurpose CPU may also be busy handling a display or managing mass storage devices while the coprocessor is working. Advanced Microprocessors Often products using advanced microprocessors also require sophisticated operating and application software. All of this means that, to understand and advanced microprocessor-based system, you may require more system knowledge than hardware knowledge. Multi-user and Multi-tasking One of the common applications for advanced microprocessors is with multi-user and multitasking operating systems. A multi-user operating system allows more than one user to appear to use the CPU at one time. Likewise, a multi-tasking operating system allows more than one task to appear to use the CPU at one time. Multi-user and Multi-tasking When a microprocessor is used in this mode, it is important to make sure that the individual users or tasks do not have access to the program performing the switching between users or tasks. To do this, an advanced microprocessors offer a special way of operating which is called supervisory, protected, or privileged mode. The advanced microprocessor may have access to a number of special instruction, additional registers and other features. Privileged Layer Kernel – most privileged System Services Operating System Application Software – less privileged More Privileged Multi-user and Multi-tasking Often virtual memory techniques is used where a software require access to large quantities of data. These data are much larger than the amount of physical memory available to the processor. The additional memory space is really on a disk, but through sophisticated memory addressing techniques. Advanced microprocessors often include special instructions and internal hardware to ensure the programs work properly. Intel X86 Family During the late 1970s, Intel introduced the 8088 and 8086. Internally, these two 16-bit microprocessors have identical architectures. The difference between the two is the size of the external data bus. The 8088 has an 8-bit external data bus, and the 8086 uses a 16-bit external data bus. 8088 and 8086 In 1981 IBM introduced a PC based on the Intel 8088. The 8088 and 8086 evolved into faster versions with wider external data buses, versions with greater memory addressing space, versions with advanced computing functions, and versions which process 32-bit data words. Because these versions also have a very similar architecture, they have a common numbering system. 80286 to 80486 The 80286 followed the original introductions, and it was soon followed by the 80386 and then the Intel 486. The latest introduction broke the numbering rule: It is simply known as the Pentium. Often people speak of these microprocessors by their last three digits i.e. 286, 386, 486 Major Attributes of the X86 Scan page 230 8088 and 8086 8086 and 8088 were introduced in the year 1978. When it came time to pick a 16-bit microprocessor for the first IBM PC, the Intel 8088 was chosen because its 8-bit data bus made it easy to use the low-cost 8-bit peripheral devices built for use with the 8080/8085 and other 8-bit microprocessors. PC/AT The next major introduction was the Intel 80286. IBM introduced the PC/AT (personal computer/ advanced technology) version of its PC using the 286 in 1984. One of the features introduced with the 286 was real and protected modes of operation. In the real mode, the processor can address only 1 Mbytes of memory, whereas in the protected mode it can address 16 Mbytes. Another new feature was the ability to work with up to 1Gbyte of virtual memory, and yet another feature added hardware multitasking. 80386 The 80386 was a major next step in the X86 family. The 80386 is a full 32-bit microprocessor. It has a 32-bit data bus and a 32-bit address bus, and it uses 32-bit internal registers. The base 386 internal architecture is, in many ways, very much like the 8088, 8086, and 286 architectures. The major difference in the base architecture is that there are a few more registers and some register sets are now 32 bit rather than 16 bit. 386SX and 386DX Intel introduced a special version of the 386 called 386SX. It uses a 16-bit data bus. The original 80386 processor was renamed the 386DX. In addition to 32-bit processing, the 386 microprocessors offered advanced virtual memory, advanced protected mode. And higher speed. 386SL, 386DX2, 386DX4 Another variation of the 386DX is the 386SL. This is a low-power version. The 386SL can operate on either 3 or 5Vdc and has special power-management circuits which allow the processor to shut down when not being used. Other versions of 386 are the 386DX2 and 386DX4. The DX2 version doubles the internal clock speed, thus speeding up many calculations and operation. The I/O, however continues to operate at lower speed, so there are no external interface problems if a 386DX2 is substituted for a 386DX. The 386DX4 triples the internal clock speed. 486 The 486 is basically a large integrated circuit which contains a fast 386 processor, a math coprocessor, a memory management unit (MMU), and an 8kbytes cache memory. It is most frequently called the 486 or the i486. All 486 processors have a 32-bit data bus. 486 Like the 386, the 486 has SL, DX2, and DX4 versions which are low-power, clock-doubled, and clock-tripling versions respectively. The 486 achieves its high-speed operation from fast clock speeds, an internal pipelined architectures, and the use of reduced instruction set computing (RISC) to speed up the internal microcode Pentium Neither the 386 nor the 486 was ever licensed to another IC manufacturer by Intel. However, they are number of IC manufacturers with their own versions of the 386 and 486 processors, They are clones, not licensed identical copies. The Pentium is the next Intel member of the X86 family. Pentium The Pentium introduces a number of new features. The use of superscalar architecture incorporates a dual-pipelined processor which lets the Pentium process more than one instruction per clock cycle. The addition of both data and code caches on chip is also a feature designed to improve processing speed. Branch Prediction A new advanced computing technique used in the Pentium is called branch prediction. Using branch prediction, the Pentium makes an educated guess where the next instruction following a conditional instruction will be. The Pentium has a 64-bit data bus. This means that it can perform data transfers with an external device (memory, for example) twice as fast as a processor with a 32-bit data bus. Questions Q1: The first microprocessor in the X86 family to support an onchip instruction cache a. 8088 b. 286 c. 386DX d. Pentium Q2: The maximum physical memory space which can be addressed by the 286 is a. 640kbytes b. 1Mbytes c. 16Mbytes d. 4Gbytes (Answer: Q1 a, Q2 c) Programming Model The 8080 and the 8086 define the base programming model for the entire X86 family. The newer members of the X86 family of advanced microprocessors have greater computing power because they are faster, they use 32-bit registers instead of 16-bit registers used in earlier advanced microprocessors (8088, 8086, 80286). Basic Programming Model Once you understand the basic programming model for the 8088 and 8086 processors, you will be able to understand the improvements made with the newer models. The base programming model of the 16-bit (8088, 8086 and 286) and 32-bit (386 and 486) processors is very much the same. The difference is in register length, extra data segment registers, and added features. Three Register Group The base programming model is made up of three register group. The first set contains eight general purpose registers called the A, B, C, D, SI (source index), DI (destination index), SP (stack pointer) and BP (base pointer) register. Depending on the specific processor, these are either 16- or 32-bit registers. X86 Programming Model Scan pg 233 General-Purpose Registers The lower two bytes of the A, B, C, and D registers are broken into low and high bytes called AL, BL, CL, DL and AH, BH, CH, and DH respectively. The full 16 bits are referred to as AX, BX, CX, and DX, where X stands for extended. The SI, DI, BP, and SP registers are always treated as 16-bit register. 32-bit Registers When the microprocessor uses 32-bit registers, the eight general-purpose registers are called the EAX, EBX, ECX, EDX, ESI, EDI, ESP, and EBP registers. The E tells us that these registers have extended length. The ALU works with these register to give the X86 microprocessors their computation and data movement capability. Second Set of Registers The second set of registers are the segment registers. This set of register consists of the code segment (CS) and stack segment (SS) registers, and either two (286) or four data segment register (80386). The data segment registers are called DS, ES, FS, and GS. The X86 registers manage operations with external memory. Address computation and data movement are performed here. A second ALU is dedicated to processing memory address data which works with the segment registers. The Third Set of Registers The third set of registers includes the instruction pointer (program counter) and flags register. The instruction pointer is either a 16-bit or a 32-bit (for the 386 and newer processors) register. The first five bits are identical to the flag it in the 8085 8-bit microprocessor (CF, PF, and AF). See next page. The 6 to 11 were introduced with the 8088/8086. (ZF, SF, TF (Trap), IF, DF (Direction , OF) 32-bit Status Register Scan pg 234 32-bit Status Register .. The 12 to 14 (I/O privilege level and nested task flag) were introduced with the 286. The flags in bits 16 and 17 ( Resume and virtual mode flag) were introduced with the 386, and the flag in bit 18(alignment check) was introduced with the 486. These three register groups and their support circuits let the X86 processors manage memory operations and compute at the same time. Pre-fetching and Data Caching To give the X86 processors even greater speed, the processors include various levels of instruction pre-fetching and data caching. The newer processors have significant amounts of internal memory in which they can cache data as well as code (instruction). The next few instructions are pre-fetched whenever the address and data buses are available. The additional instructions are fetched and stored in the processor’s pre-fetch queue or code cache. Pre-fetching These pre-fetched instructions are immediately available for processing once the current instruction is complete; therefore, when executing this software, the processor does not wait for a fetch cycle. Prefetching can significantly speed up execution time. This process may not work for every instruction because software does not always execute one instruction after the other. For example, branching may cause the next instruction to come from a very different location in memory. Prefetching .. The most advanced members of the X86 family have special logic which analyzes the prefetched instructions and attempts to anticipate branching and other such changes so that the correct instructions are prefetched. The more advanced X86 processors also store frequently used data in memory which is on board the processor. Again, having this data right at hand, in a data cache, avoids the need for an external memory access cycle and therefore speeds up processing time. Questions The main difference between the older and newer versions of the X86 advanced microprocessors is that the general purpose registers in the newer processors are a. 8 bit b. 16-bit c. 32-bit d. 64-bit Answer: c Question 2 You will find data segment registers called the FS and GS registers on the ________ microprocessor. a. 8088 b. 8086 c. 80286 d. 80386 Answer: d Question 3 The length of the 8088 instruction pointer is a. 4 bits b. 8 bits c. 16 bits d. 32 bits Answer: c Question 4 A prefetch queue or code cache first appeared on the a. 8088 b. 8086 c. 286 d. 486 Answer: a Question 5 A separate ALU is used with the _______ registers to perform memory location calculation. a. Segment b. Flag c. Instruction Pointer d. General-purpose Answer: a