Professional Documents
Culture Documents
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.
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.
page
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
286 registers
General Purpose Registers Segment Registers
AX BX CX DX
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. 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.
Segmented vm
Segment selector
A selector is loaded into the segment register and triggers the acces to the segment tables
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
Segmentation mechanism
Linear addr
32 bit
Paging mechanism
Contrast
Segments
Variable sized Strongly typed
Pages
Fixed size Weakly typed
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.
On chip associative page address registers. This is small, only about 64 of them
Physical address Chip boundary