Virtual Memory. Invented on Manchester atlas 1962 It embodied many pioneering features, which we now take for granted. These include system features such.

Slides:



Advertisements
Similar presentations
Intel 8086.
Advertisements

Memory.
Memory Management Unit
Register In computer architecture, a processor register is a small amount of storage available on the CPU whose contents can be accessed more quickly than.
Registers of the 8086/ /2002 JNM.
MICROPROCESSORS TWO TYPES OF MODELS ARE USED :  PROGRAMMER’S MODEL :- THIS MODEL SHOWS FEATURES, SUCH AS INTERNAL REGISTERS, ADDRESS,DATA & CONTROL BUSES.
Introduction to 8086 Microprocessor
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#3) By Dr. Syed Noman.
Intel MP.
Azir ALIU 1 What is an assembly language?. Azir ALIU 2 Inside the CPU.
Operating Systems: Segments 1 Segmentation Hardware Support single user program system: – wish somehow to relocate address 0 to after operating system.
1 Hardware and Software Architecture Chapter 2 n The Intel Processor Architecture n History of PC Memory Usage (Real Mode)
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 2 The Microprocessor and its Architecture.
3-1 ECE 424 Design of Microprocessor-Based Systems Haibo Wang ECE Department Southern Illinois University Carbondale, IL Intel 8088 (8086) Microprocessor.
Chapter 3.2 : Virtual Memory
Vacuum tubes Transistor 1948 –Smaller, Cheaper, Less heat dissipation, Made from Silicon (Sand) –Invented at Bell Labs –Shockley, Brittain, Bardeen ICs.
CS2422 Assembly Language & System Programming September 22, 2005.
Microprocessor Systems Design I Instructor: Dr. Michael Geiger Fall 2012 Lecture 15: Protected mode intro.
80x86 Processor Architecture
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
The 8086 Microprocessor The 8086, announced in 1978, was the first 16-bit microprocessor introduced by Intel Corporation 8086 is 16-bit MPU. Externally.
An Introduction to 8086 Microprocessor.
The Pentium Processor.
The Pentium Processor Chapter 3 S. Dandamudi To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer,
The Pentium Processor Chapter 3 S. Dandamudi.
The Intel Microprocessors. Real Mode Memory Addressing Real mode, also called real address mode, is an operating mode of and later x86-compatible.
1 Chapter 3.2 : Virtual Memory What is virtual memory? What is virtual memory? Virtual memory management schemes Virtual memory management schemes Paging.
Types of Registers (8086 Microprocessor Based)
Chapter 2 Instruction Addressing and Execution. Lesson plan Review some concepts in the first week First assembly program with EMU8086 Related concepts.
CS 6560 Operating System Design Lecture 8: Memory Management.
UHD:CS2401: A. Berrached1 The Intel x86 Hardware Organization.
Chapter 2 Parts of a Computer System. 2.1 PC Hardware: Memory.
Intel 8086 (8088) Microprocessor Structure
INTRODUCTION TO INTEL X-86 FAMILY
University of Sargodha, Lahore Campus Prepared by Ali Saeed.
MODULE 5 INTEL TODAY WE ARE GOING TO DISCUSS ABOUT, FEATURES OF 8086 LOGICAL PIN DIAGRAM INTERNAL ARCHITECTURE REGISTERS AND FLAGS OPERATING MODES.
Internal Programming Architecture or Model
1 x86 Programming Model Microprocessor Computer Architectures Lab Components of any Computer System Control – logic that controls fetching/execution of.
Computer Organization & Assembly Language University of Sargodha, Lahore Campus Prepared by Ali Saeed.
BITS Pilani Pilani Campus Pawan Sharma Lecture / ES C263 INSTR/CS/EEE F241 Microprocessor Programming and Interfacing.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University Dr. Jia Uddin, CSE, BRAC University.
I NTEL 8086 M icroprocessor بسم الله الرحمن الرحيم 1.
Computer Science 516 Intel x86 Overview. Intel x86 Family Eight-bit 8080, 8085 – 1970s 16-bit 8086 – was internally 16 bits, externally 8 bits.
ΜComputer Structure μProcessor Memory Bus System I/O Ports.
Chapter 2 Instruction Addressing and Execution. Lesson plan Review some concepts in the first week First assembly program with EMU8086 Related concepts.
Part of the Assembler Language Programmers Toolbox
History – 2 Intel 8086.
Introduction to 8086 Microprocessor
8086 Microprocessor.
Computer Organization & Assembly Language Chapter 3
University of Gujrat Department of Computer Science
Intel 8088 (8086) Microprocessor Structure
1st micro 1971 calculator 2300 transistors 4-bit microprocessor
Symbolic Instruction and Addressing
Subject Name: Microprocesor Subject Code: 10CS45
Introduction to Assembly Language
Intel 8088 (8086) Microprocessor Structure
8086 Registers Module M14.2 Sections 9.2, 10.1.
CS-401 Computer Architecture & Assembly Language Programming
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Symbolic Instruction and Addressing
CS 301 Fall 2002 Computer Organization
The Microprocessor & Its Architecture
Symbolic Instruction and Addressing
Assembly Language (CSW 353)
Computer Architecture CST 250
Unit-I 80386DX Architecture
Chapter 6 –Symbolic Instruction and Addressing
Process.
Intel 8086.
Presentation transcript:

Virtual Memory

Invented on Manchester atlas 1962 It embodied many pioneering features, which we now take for granted. These include system features such as, Timesharing of several concurrent computing and peripheral operations, Multiprogramming, and the One-Level Store (Virtual Store). Design features included, High-speed arithmetic, Asynchronous control, interleaved stores, paging, Fixed store (ROM), and autonomous transfer units. These both required and enabled Software developments such as the Supervisor (Operating System), the Compiler-Compiler and High level languages.

Reason was economic Two technologies were available Magnetic cores and Magnetic drums The economics of the available store technology was quite simple. One bit of Magnetic Core store cost three shillings whilst one bit of magnetic drum store cost six pennies. Core was six times more expensive than drum. Therefore the main storage was a combination of the two technologies.

Core store It consisted of several stacks. Each stack had 4096 words of 48 bits operating with a cycle time of 2 microseconds. Arranging the store into pairs of stacks, with a selection mechanism for each stack reduces the effective access time. Each pair consists of an Even and an Odd stack. The even stack contains words with even addresses and the odd stack the words with odd addresses. Consecutive words in a block are thus stored alternately in even and odd stacks of the pair containing the block.

1971 Ladybird book of computers for primary schools

Pages Each block consisted of 512 words and was contained in a page of the core store. There were 16 pages in each pair of stacks.

Drum store The Magnetic Drum Store was the backing store. There were four drums each of 24k words, giving a total of 96k words. The revolution time was 12 milliseconds, a drum latency of six milliseconds. The rate of transfer was one block of 512 words per two milliseconds.

Lady bird book drum store

One Level Store The Drum and Main Core Store were referred to as the Main Store of the machine. Words within this store were addressed in blocks of 512 words up to 192 blocks, the drum capacity. When a block was transferred into a page of the core store, the block address was recorded in a Page Address Register located in the core store controller.

Page address registers There were 32 such registers, one for each page in the core store. When an address was decoded as referring to a word in the store, the block address bits were compared with the Page Address Registers. page PAR high low Associative memory access

Page faulting If the block was in the core store an Equivalence signal would cause the word transfer to occur. If the block was not down in the core store a Non Equivalence signal would cause the main program to be held up, or interrupted, and a drum transfer routine entered to bring the block down from the drum. After the drum transfer the main program would continue and this time an Equivalence signal would permit the word transfer.

Fault handler The page fault handler was held in a separate read only memory or ROM 1.It reads in a page from drum into a core page 2.It loads the page address register with the pages drum address 3.It returns from interrupt

Retry At this point the instruction restarts and in this case one PAR returns Equivalence Enables the read Note that the PAGE FAULT interrupt must return to the instruction that caused the fault. This is unlike an ordinary interrupt that returns to the next instruction

Intel 286 first micro with virtual memory

286 registers General Purpose Registers Segment Registers AH/AL AX Accumulator CS Code Segment BH/BL BX Base DS Data Segment CH/CL CX Counter SS Stack Segment DH/DL DX Data ES Extra Segment Pointer Registers Stack Registers SI Source Index SP Stack Pointer DI Destination Index BP Base Pointer IP Instruction Pointer

Segmented addressing All addresses were 32 bits long and split into two parts Segment:Offset Each was 16 bits in length The Segment came from a segment register and the Offset from a pointer register, or a constant in the instruction

Examples Mov ax, DS:100h loads word at 100hex in the data segment into ax Add ax,ES:[SI] adds the word in the Extra segment at the offset in the SI register to the ax register

Virtual memory A 286 expanded addressable physical memory to 16MB and addressable virtual memory to 1GB.MBGB This was done by using the segment registers only for storing an index to a segment table. There were two such tables, the GDT and the LDT, holding each up to 8192 segment descriptors, each segment giving access to up to 64 KB of memory.GDTLDT

Segmented vm

Look up descriptor table On the 386, 486 and 586 offset is 32 bits, on 286 it was 16

Segment selector A selector is loaded into the segment register and triggers the acces to the segment tables

Fault on load seg reg The virtual memory fault occurs when the segment register is loaded. Thus Mov es,ax moves ax to the es register. If the segment table shows the segment as being absent there will be an interrupt

Hidden and visible parts Segment registers have a hidden part that is loaded by hardware when the user loads the selector field

Segment descriptors The segment tables contain descriptors to the segments

Protection Attempt to access beyond segment limit causes segment fault Unlimited recursion on routine cause stack segment fault Attempt to execute data segment cause fault Attempt to write to code segment will cause fault

2 level translation ( from 386 on) offset Segmentation mechanism Linear addr Paging mechanism RAM addr seg 48 bit 32 bit < 32 bit

Page table mechanism

Page directory entry

Contrast Segments Variable sized Strongly typed Pages Fixed size Weakly typed

Why two mechanisms Two different operating system design philosophies IBM OS/2 and early versions of Windows used segments Linux and recent versions of Windows use only the paging system This was a hangover from the DEC Vax processor from which they were ported which had only pages

Efficiency Key feature of any VM system is that one must make memory access fast. You can not afford multiple real memory acceses for each virtual memory access attempted by the program Atlas got round this by using associative memory registers

Segment approach The segmented memory system gains efficiency by only doing a check when the segment register is loaded. It can then be used many times : For example, point the segment register at the base of an array, then subsequently each individual array access has no overhead.

Page translation cache on Pentium Linear addr registers On chip associative page address registers. This is small, only about 64 of them Chip boundary Physical address

Use of the page trans cache This is similar to the approach of the Atlas except that the associative registers are loaded by hardware from the page directory in main memory. A software interrupt only occurs if the page directory marks page as absent Most memory accesses are within a page and so use only the associative registers