56
UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Embed Size (px)

Citation preview

Page 1: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

UNIT-I • 80386DX functional Block Diagram• PIN Description• Register set• Flags• Physical address space• Data types

Page 2: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

80386DX Feature • It supports 8/16/32 bit data operands• It has 32-bit internal registers• It supports 32-bit data bus and 32-bit non-multiplexed address bus• It supports

– Physical Address of 4GB– Virtual Address of 64TB– Maximum Segment size of 4GB

• It operates in 3 different modes– Real– Protected– Virtual 8086

• MMU provides virtual memory, paging and 4 levels of protection• Clock Frequency : 20,25 and 33MHz• It has 132 pin package

Page 3: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

80386DX functional Block Diagram

Page 4: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types
Page 5: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Internal Architecture

80386 is divided into three sections:• Central Processing Unit• Memory Management Unit• Bus Interface unit

Page 6: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Central Processing Unit The CPU divided into • Instruction Unit:

– It decodes the opcode bytes received from the 16-byte instruction queue and arranges them into a 3-decoded instruction queue.

– After decoding it is passed to control section for deriving necessary control signals

• Execution Unit:– It has 8 general purpose and 8 special purpose registers which

either handles data or addresses– The 64-bit barrel shifter increases the speed of all shift, rotate,

multiply and divide operations– The multiply/divide logic implements the bit-shift-rotate algorithms

to complete the operations in minimum time(Even 32bit multiplication is done in 1µs)

Page 7: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Elements of Execution Unit

• Arithmetic/logic unit (ALU): Performs the operation identified by ADD, SUB, AND, etc.

• Flags register: Holds status and control information• General-purpose registers: Holds address or data

information• Control ROM: Contains microcode sequences that

define operations performed by machine instructions

• Special multiply, shift, and barrel shift hardware: Accelerate multiply, divide, and rotate operations

Page 8: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Memory Management Unit • It consists of a segmentation unit and paging unit• Segmentation Unit:– It allows the use of two address components - segment

and offset – for relocability and sharing of data– It allows a maximum segment size of 4GB– It provides a 4-level protection mechanism for protecting

and isolating system’s code and data from those of application program

– The limit and attribute PLA checks segment limits and attributes at segment level to avoid invalid accesses to code and data in memory segment.

Page 9: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Memory Management Unit

• Paging Unit – It organizes physical memory in terms of pages of

4KB size– It works under the control of segmentation unit– It converts linear addresses into physical

addresses– The control and attribute PLA checks privileges at

page level.

Page 10: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Bus Interface Unit • It has a prioritizer to resolve the priority of

various bus requests. This controls the access of the bus

• The address driver drives the bus enable and address signals A2 – A31.

• The pipeline/bus size unit handles the control signals for pipelining and dynamic bus sizing units

• The data buffers interface the internal data bus with system bus

Page 11: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

Page 12: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

• # symbol indicates active low signal. • When no # is present, the signal is active high. Example: M/IO#• - High voltage indicates memory selected• - Low voltage indicates I/O selected

Page 13: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description• Clock (CLK2): It is divided by two internally to generate the

internal processor clock.• Data Bus (D0 through D31):

– It has three-state bidirectional signals.– It can transfer data on 32- and 16-bit buses using a data

bus sizing feature. • Address Bus (A2 through A31)

– These three-state outputs provide memory or I/O port addresses.

– It can access 4GB of physical memory from 00000000H to FFFFFFFFH

– Of the total 32-bits, only higher 30 are released by MP– A1 & A0 are used internally by MP to produce 4 bank enable

signals(BE3# - BE0#)

Page 14: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

• Byte Enable Outputs( BE0# -- BE3#)– enable 4 memory banks– indicates which bytes of the 32-bit data bus are

involved with the current transfer. – BE0# applies to D0-D7– BE1# applies to D8-D15– BE2# applies to D16-D23– BE3# applies to D24-D31– No. of Byte Enables asserted indicates physical size of

operand being transferred (1, 2, 3, or 4 bytes).

Page 15: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

Page 16: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN DescriptionBE3# BE2# BE1# BE0# Operation 1 1 1 1 No Operation 1 1 1 0 Bank0 (8-bit) 1 1 0 1 Bank1 (8-bit) 1 0 1 1 Bank2 (8-bit) 0 1 1 1 Bank3 (8-bit) 1 1 0 0 Bank 0,1 (16-bit) 1 0 0 1 Bank 1,2 (16-bit) 0 0 1 1 Bank 2,3 (16-bit) 1 0 0 0 Bank 0,1,2(24-bit)

0 0 0 1 Bank 1,2,3(24-bit)

0 0 0 0 Bank 0,1,2,3 (32-bit)

Page 17: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

• Bus Cycle Definition Signals (W/R#, D/C#, M/IO# , LOCK#)– three-state outputs – W/R# :distinguishes b/w write and read cycles. – D/C# :distinguishes b/w data and control cycles.

(interrupt, acknowledge, halt, and instruction fetching.)– M/IO# :distinguishes b/w memory and I/O cycles. – LOCK# :distinguishes b/w locked and unlocked bus cycles. It

enables CPU to prevent other bus masters (like coprocessor) from gaining the control of system bus.

Page 18: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description• Bus Control Signals(ADS#,READY#,NA#,BS16#):

– indicates when a bus cycle has begun and allow other system hardware to control address pipelining, data bus width and bus cycle termination.

– ADDRESS STATUS (ADS#) : indicates that a valid address is driven at 80386DX pins.

– TRANSFER ACKNOWLEDGE (READY#) : indicates that the previous bus cycle is complete and bus is ready for next bus cycle. It is useful for interfacing slow peripherals

– NEXT ADDRESS REQUEST (NA#) : This is used to enable address pipelining. It indicates that the system is prepared to accept the next address even if the end of current cycle is not being acknowledged on READY#. – BUS SIZE 16 (BS16#) : Asserting this input constrains current bus cycle to use only D0-D15 of data bus.

Page 19: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description• Bus Arbitration Signals (HOLD, HLDA)• HOLD : BUS HOLD REQUEST input allows another bus master to request control of the local bus• HLDA : BUS HOLD ACKNOWLEDGE output indicates that the Intel386 DX has surrendered control of its local bus to another bus master.

Page 20: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description• COPROCESSOR REQUEST (PEREQ) : PROCESSOR EXTENSION REQUEST– This input signal indicates a coprocessor request for a data

operand to be transferred to/from memory by Intel386 DX. • COPROCESSOR BUSY (BUSY#) : - This input indicates that coprocessor is still executing an instruction and is not yet able to accept another. – This sampling of BUSY# input prevents overrunning the

execution of a previous coprocessor instruction.

• COPROCESSOR ERROR (ERROR#) : - signals an error condition from a processor extension.

Page 21: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN DescriptionInterrupt Signals (INTR, NMI, RESET)

• MASKABLE INTERRUPT REQUEST (INTR): is a maskable input that signals the Intel386DX to suspend execution of the current program and execute an interrupt acknowledge function.• NON-MASKABLE INTERRUPT REQUEST(NMI): - non-maskable input that signals the Intel386 DX to suspend execution of the current program and execute an interrupt acknowledge function. • RESET (RESET) : suspends any operation in progress and places the Intel386DX in a known reset state. See Interrupt Signals for additionalinformation.

Page 22: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description• RESET (RESET) : – This input signal suspends any operation in progress

and places the Intel386 DX in a known reset state. – The Intel386 DX is reset by asserting RESET for 15 or

more CLK2 periods– When RESET is asserted, all other input pins are

ignored, and all other bus pins are driven to an idle bus state.

– If RESET and HOLD are both asserted at a point in time, RESET takes priority.

Page 23: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

PIN Description

• Vcc: These are system power supply lines• GND: These are return lines for the power

supply

Page 24: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Register Set The Intel386 DX has 32 register resources in thefollowing categories:• General Purpose Registers• Segment Registers• Instruction Pointer and Flags• Control Registers• System Address Registers• Debug Registers• Test Registers.

Page 25: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

• registers are a superset of the 8086, 80186 and 80286 registers,

• all 16-bit 8086, 80186 and 80286 registers are contained within the 32-bit Intel386

Page 26: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types
Page 27: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

General Purpose Registers• hold data or address values.• support data of 1, 8, 16, 32 and 64 bits. • 32-bit registers : EAX, EBX, ECX, EDX, ESI, EDI, EBP, and ESP. • The least significant 16 bits of the registers can be

accessed as in 8086 with names of the registers AX, BX, CX, DX, SI, DI, BP, and SP.

• When accessed as a 16-bit operand, the upper 16 bits of the register are neither used nor changed.

• 8-bit operations can be performed with AL, BL, CL and DL.• The higher bytes are AH, BH, CH and DH• The individual byte accessibility offers flexibility for data

operations.

Page 28: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types
Page 29: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Instruction Pointer

• It is a 32-bit register named EIP. • EIP holds the offset of the next instruction to

be executed. • The offset is always relative to the base of the

code segment (CS). • The lower 16 bits of EIP contain the 16-bit

instruction pointer named IP, which is used by 16-bit addressing.

Page 30: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Segment Registers

Page 31: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Segment Registers

• Six 16-bit segment registers hold segment selector values identifying the currently addressable memory segments.

• In Protected Mode, each segment may range in size from one byte up to the entire linear and physical space of the machine, 4 GB.

• In Real Address Mode, the maximum segment size is fixed at 64 Kbytes.

Page 32: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Segment Descriptor Registers

• The segment descriptor registers are not programmer visible. is associated with each programmer-visible segment register.

• Each descriptor register holds a 32-bit segment base address, a 32-bit segment limit, and the other necessary segment attributes.

• When a selector value is loaded into a segment register, the associated descriptor register is automatically updated with the correct information.

Page 33: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Segment Descriptor Registers• In Real Address Mode: only the base address is updated directly (by shifting the selector value four bits to the left), since the segment maximum limit and attributesare fixed in Real Mode. • In Protected Mode: the base address, the limit,

and the attributes are all updated per the contents of the segment descriptor indexed by the selector.

Page 34: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Flag Registers

Page 35: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Flag Registers

• VM(Virtual 8086 mode flag) : - If set while the Intel386 DX is in Protected Mode, the Intel386 DX will switch to Virtual 8086 operation.• RF(Resume Flag):

- The RF flag is used in conjunction with the debug register breakpoints. – When RF is set, it causes any debug fault to be ignored

on the next instruction. RF is then automatically reset at the successful completion of every instruction.

Page 36: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Flag Registers

• NT(Nested Task Flag):-set it indicates that one system task has invoked another through a CALL instruction .

• IOPL(Input /Output Privilege level flags).-This two-bit field applies to Protected Mode.IOPL indicates the numerically maximum CPL(current privilege level) value permitted to execute I/O instructions without generating an exception 13 fault or consulting the I/O PermissionBitmap.

Page 37: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Control Registers

• Intel386 DX has three control registers of 32 bits, CR0, CR2 and CR3, to hold machine state of a global nature

• These registers along with System Address Registers hold machine state that affects all tasks in the system.

• To access Control Registers, load and store instructions are defined.

Page 38: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Control Register (CR0)

Page 39: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

CR0 : Machine Control Register

• CR0 contains 6 defined bits for control and status purposes.

• The low-order 16 bits of CR0 is defined as Machine Status Word

• To operate only on the low-order 16-bits of CR0, LMSW and SMSW instructions are used.

• For 32-bit operations the system should use MOV CR0, Reg instruction.

Page 40: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

CR0 : Machine Control Register

• PG (Paging Enable, bit 31):the PG bit is set to enable the on-chip paging unit. It is reset to disable the on-chip paging unit.

• R (reserved, bit 4):This bit is reserved by Intel. When loading CR0 care should be taken to not alter the value of this bit.

Page 41: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

CR0 : Machine Control Register

• (TS Bit, Task Switched) : TS is automatically set whenever a task switch operation is performed.

• (EM Bit, Emulate Coprocessor) : This bit is set to cause all coprocessor opcodes to generate a Coprocessor Not Available fault (exception 7).

Page 42: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

CR0 : Machine Control Register

• MP Bit, Monitor Coprocessor) :– The MP bit is used with TS bit to determine if the

WAIT opcode will generate a Coprocessor Not Available fault (exception 7).

– When both MP = 1 and TS= 1, the WAIT opcode generates a trap which checks for the coprocessor availability.

• (PE Bit, Protection Enable) : – The PE bit is set to enable the Protected Mode. – If PE is reset, the processor operates in Real Mode.

Page 43: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Control Registers

• CR1 : Reserved :CR1 is reserved for use in future Intel processors

• CR2 : Page Fault Linear Address:CR2 holds the 32-bit linear address that caused the last page fault detected.

Page 44: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Control Registers

• CR3 : Page Directory Base Address:• physical base address of the page directory

table, always page-aligned (4 Kbyte-aligned). • Thus the lowest twelve bits of CR3 are

ignored.• A task switch through a TSS invalidates all

page table entries in paging unit cache.

Page 45: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

System Address Register

• Four special registers are defined to reference the tables or segments supported by the 80286 CPU

and Intel386 DX protection model. These tables or segments are:• GDT (Global Descriptor Table),• IDT (Interrupt Descriptor Table),• LDT (Local Descriptor Table),• TSS (Task State Segment).

Page 46: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

System Address Register

• The addresses of these tables and segments are stored in special registers, the System Address and System Segment Registers.

• These registers are named GDTR, IDTR, LDTR and TR, respectively

Page 47: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

System Address Register

Page 48: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

GDTR and IDTR

• These registers hold:–32-bit linear base address and– 16-bit limit of GDT and IDT

respectively. • GDT and IDT segments are global to all

tasks in the system.

Page 49: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

LDTR and TR

• These registers hold 16-bit selector for – LDT descriptor and– TSS descriptor

• Since they are task specific, they are defined by selector values stored in system segment registers.

• A system descriptor register, which is not visible to programmer, is associated with each system segment register

Page 50: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Debug and Test Registers

Page 51: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Debug and Test Registers • 80386 contains 6 debug registers to specify

– 4 breakpoints– Breakpoint Control options– Breakpoint Status

• Linear Breakpoint Address Registers The breakpoint addresses specified are 32-bit linear addresses While debugging, Intel 386 h/w continuously compares the linear breakpoint addresses in DR0-DR3 with the linear addresses generated by executing software.• The Debug Control Register DR7 is used to set the breakpoints • Debug Status : Register DR6, displays the current state of the breakpoints.

Page 52: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Debug and Test Registers • Test Registers:• Two registers are used to control the testing of

the RAM/CAM (Content Addressable Memories) in the Translation Look aside Buffer portion.

TR6 is the command test register TR7 is the data register which contains the data of the Translation Look aside buffer test.

Page 53: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

Physical Address Space Memory on the Intel386 DX is divided up into• 8-bit quantities (bytes)• 16-bit quantities (words)• 32-bit quantities (dwords). • Words are stored in two consecutive bytes in

memory address. • Dwords are stored in four consecutive bytes in

memory address.

Page 54: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

• the Intel386 DX supports two larger units of memory:

• pages and segments.• Memory can be divided up into one or• more variable length segments, which can be• swapped to disk or shared between programs.

Memory• can also be organized into one or more 4K byte• pages.

Page 55: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

DATA TYPES

• The Intel386 DX supports all of the data types commonly used in high level languages:• Bit: A single bit quantity.• Bit Field: A group of up to 32 contiguous bits,• which spans a maximum of four bytes.• Bit String: A set of contiguous bits, on the Intel386• DX bit strings can be up to 4 gigabits long.• Byte: A signed 8-bit quantity.• Unsigned Byte: An unsigned 8-bit quantity.• Integer (Word): A signed 16-bit quantity.• Long Integer (Double Word): A signed 32-bit quantity.• All operations assume a 2's complement representation.• Unsigned Integer (Word): An unsigned 16-bit

Page 56: UNIT-I 80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types

• Unsigned Long Integer (Double Word): An unsigned• 32-bit quantity.• Signed Quad Word: A signed 64-bit quantity.• Unsigned Quad Word: An unsigned 64-bit quantity.• Offset: A 16- or 32-bit offset only quantity which• indirectly references another memory location.• Pointer: A full pointer which consists of a 16-bit• segment selector and either a 16- or 32-bit offset.• Char: A byte representation of an ASCII Alphanumeric• or control character.• String: A contiguous sequence of bytes, words or• dwords. A string may contain between 1 byte and 4 Gbytes.• BCD: A byte (unpacked) representation of decimal• digits 0±9.• Packed BCD: A byte (packed) representation of• two decimal digits 0±9 storing one digit in each• nibble.