<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=MCA20_Cache</id>
	<title>MCA20 Cache - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=MCA20_Cache"/>
	<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=MCA20_Cache&amp;action=history"/>
	<updated>2026-09-17T17:26:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://gunkies.org/w/index.php?title=MCA20_Cache&amp;diff=31885&amp;oldid=prev</id>
		<title>Jnc: Reasonably complete</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=MCA20_Cache&amp;diff=31885&amp;oldid=prev"/>
		<updated>2023-11-14T16:09:40Z</updated>

		<summary type="html">&lt;p&gt;Reasonably complete&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;MCA20 Cache&amp;#039;&amp;#039;&amp;#039; is the optional original [[main memory]] [[cache]], used only for the [[fetch]]es of [[instruction]]s and [[operand]]s, etc, for the early [[KL10]] [[Central Processing Unit|CPU]]. (It was later replaced by the improved [[MCA25 KL Cache/Paging Upgrade‎]] on later KL10&amp;#039;s.) Many KL10 CPU models included the MCA20 by default, but there were some - e.g. the KL10-C - on which it was optional. &lt;br /&gt;
&lt;br /&gt;
There are actually two completely separate major caches in the KL10 (the KL10-Based Technical Manual says - in Section A.1 - that there are actually &amp;#039;&amp;#039;four&amp;#039;&amp;#039; caches in total, but it is not clear what the other two are): the &amp;#039;main memory&amp;#039; cache (above) and the &amp;#039;paging&amp;#039; cache (used for the operation of the KL10&amp;#039;s [[virtual memory]] mechanism, e.g. holding [[page table]] entries). The MCA20 includes only the former; the latter is included on all KL10&amp;#039;s, as part of the MBox unit of the CPU. (Without the cached page table entries, each paged memory reference would take several memory cycles (the KL10 TM says up to five - in Section A.3 - but I can only think of three: the UPT pointer to the page table, the page table entry, and then the actual memory reference), cutting the effective memory bandwidth by large factor, which is clearly undesirable.)&lt;br /&gt;
&lt;br /&gt;
The MCA20 cache is a 2,048 [[word]] cache, organized into 512 4-word location sets, because it operates on 4-word blocks (although the requested word will be handled first on refills). It is organized as a &amp;#039;four-way set associative&amp;#039; cache; it is divided into 4 &amp;#039;quarters&amp;#039;, and any location in main memory was associated with one entry (location set) in each quarter. When an entry is needed for new contents, it is selected by [[Least Recently Used replacement algorithm|LRU]] within each group of four entries. The cache is not &amp;#039;write-through&amp;#039; on write operations; modified words have to be written out before their entries can be re-used. The &amp;#039;paging&amp;#039; cache has 512 entries; the entry for each [[page]] in a [[process]]&amp;#039; [[virtual address|virtual]] [[address space]] can be stored in at most one cache entry (i.e. it is &amp;#039;one-way set associative&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
The MCA20 consists of 6 [[DEC card form factor|hex]] cards, of 3 types:&lt;br /&gt;
&lt;br /&gt;
* M8514 - Cache Address&lt;br /&gt;
* M8515 - Cache Extension&lt;br /&gt;
* 4 x M8521 - Cache Data&lt;br /&gt;
&lt;br /&gt;
These only hold the &amp;#039;&amp;#039;data&amp;#039;&amp;#039; of the cache; the &amp;#039;&amp;#039;control&amp;#039;&amp;#039; is elsewhere (including on the M8513 Cache Control card), and included in all KL10 CPUs.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp10/KL10/EK-OKL10-TM_KL10_TechRef_Aug84.pdf KL10-Based Technical Manual] (EK-OKL10-TM-002)&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp10/KL10/EK-MBOX-UD-004_May77.pdf MBox Storage Controller Unit Description] (EK-MBOX-UD-004) - the &amp;#039;paging&amp;#039; cache is covered in Section 1.2, and the MCA20 in 1.3, with introductions to both in Section 1.1&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp10/KL10/MP00267_MCA20_Nov76.pdf MCA20 Field Maintenance Print Set] (MP00267)&lt;br /&gt;
&lt;br /&gt;
[[Category: PDP-10 Processors]]&lt;/div&gt;</summary>
		<author><name>Jnc</name></author>
	</entry>
</feed>