Difference between revisions of "KK11-A Cache Memory"

From Computer History Wiki
Jump to: navigation, search
(A good start, need to add registers)
 
(Add registers)
Line 6: Line 6:
  
 
Each cache entry was 28 bits wide, containing two data bytes; a tag field for cache entries, 7 bits wide (covering [[UNIBUS]] address bits 17-11); 3 parity bits (one for the tag); and two valid bits (to allow the entire cache to be cleared by switching to a previously cleared set of valid bits).
 
Each cache entry was 28 bits wide, containing two data bytes; a tag field for cache entries, 7 bits wide (covering [[UNIBUS]] address bits 17-11); 3 parity bits (one for the tag); and two valid bits (to allow the entire cache to be cleared by switching to a previously cleared set of valid bits).
 +
 +
==Registers==
 +
 +
{| border=1
 +
! Register !! Abbreviation !! Address
 +
|-
 +
|Cache Memory Error Register    || CME || 777744
 +
|-
 +
|Cache Control Register        || CCR || 777746
 +
|-
 +
|Cache Maintenance Register    || CMR || 777750
 +
|-
 +
|Cache Hit Register            || CHR || 777752
 +
|}
 +
 +
 +
In the register contents (below), read-write bits are shown in normal font, read-only in ''italics'', and write-only in '''bold'''.
 +
 +
===777744: Cache Memory Error Register (CME)===
 +
{{16bit-header}}
 +
| colspan=8 | Unused || ''High Byte Parity'' || ''Low Byte Parity'' || ''Tag Parity'' || colspan=4 | Unused || ''CPU Abort''
 +
{{16bit-bitout}}
 +
 +
''Note: The manual says the 'CPU Abort' bit in the CME is bit 1, but the drawings show it as bit 0. Also, no indication is given as to whether these bits are read-only or not; likely they are.''
 +
 +
===777746: Cache Control Register (CCR)===
 +
{{16bit-header}}
 +
| colspan=2 | Unused || ''Valid Store In Use'' || ''Valid Clear In Progress'' || Unused || Write Wrong Parity Tag || Unconditional Cache Bypass || '''Flush Cache''' || Parity Error Abort || Write Wrong Parity Data || colspan=2 | Unused || Force Miss High || Force Miss Low || Unused || Disable Cache Parity Interrupt
 +
{{16bit-bitout}}
 +
 +
===777750: Cache Maintenance Register (CMR)===
 +
{{16bit-header}}
 +
| colspan=15 | Unused || Write Tag All Ones
 +
{{16bit-bitout}}
 +
 +
===777752: Cache Hit Register (CHR)===
 +
{{16bit-header}}
 +
| colspan=7 | ''Tag Address'' || colspan=3 | Unused || colspan=6 | ''Hit Register''
 +
{{16bit-bitout}}
  
 
{{PDP-11}}
 
{{PDP-11}}

Revision as of 00:22, 7 December 2017

The KK11-A Cache Memory was an option for the KD11-EA CPU, one which added a high-speed cache to the CPU.

Physically, it was a single hex board, the M8268, interfaced to the CPU through an 'over-the-back' connector. (This was because the PDP-11/34 could be field-upgraded from a KD11-E CPU, which did not support the cache, to a KD11-EA, which did - but the original backplane was retained.)

The KK11-A contained 1024 cache entries of high-speed DRAM, in the form of 28 1024x1 DRAM chips. The cache was a direct-mapped cache (i.e. there was only one possible cache entry in which any given word of main memory could be found), with write-through, and a block size of one word.

Each cache entry was 28 bits wide, containing two data bytes; a tag field for cache entries, 7 bits wide (covering UNIBUS address bits 17-11); 3 parity bits (one for the tag); and two valid bits (to allow the entire cache to be cleared by switching to a previously cleared set of valid bits).

Registers

Register Abbreviation Address
Cache Memory Error Register CME 777744
Cache Control Register CCR 777746
Cache Maintenance Register CMR 777750
Cache Hit Register CHR 777752


In the register contents (below), read-write bits are shown in normal font, read-only in italics, and write-only in bold.

777744: Cache Memory Error Register (CME)

Unused High Byte Parity Low Byte Parity Tag Parity Unused CPU Abort
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Note: The manual says the 'CPU Abort' bit in the CME is bit 1, but the drawings show it as bit 0. Also, no indication is given as to whether these bits are read-only or not; likely they are.

777746: Cache Control Register (CCR)

Unused Valid Store In Use Valid Clear In Progress Unused Write Wrong Parity Tag Unconditional Cache Bypass Flush Cache Parity Error Abort Write Wrong Parity Data Unused Force Miss High Force Miss Low Unused Disable Cache Parity Interrupt
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777750: Cache Maintenance Register (CMR)

Unused Write Tag All Ones
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777752: Cache Hit Register (CHR)

Tag Address Unused Hit Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00